From 93beb0b85a4a0e301d9bfae9edee1fe7bdabba12 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Tue, 27 Oct 2009 19:53:34 +0000 Subject: Commit of the sculpt patch (#19672). Further development will be in this branch until we merge to trunk. --- source/blender/blenkernel/BKE_DerivedMesh.h | 2 +- source/blender/blenkernel/BKE_paint.h | 7 +- source/blender/blenkernel/intern/cdderivedmesh.c | 91 ++- source/blender/blenkernel/intern/object.c | 10 +- source/blender/blenkernel/intern/subsurf_ccg.c | 2 +- source/blender/blenlib/BLI_pbvh.h | 62 ++ source/blender/blenlib/CMakeLists.txt | 1 + source/blender/blenlib/SConscript | 2 +- source/blender/blenlib/intern/arithb.c | 2 +- source/blender/blenlib/intern/pbvh.c | 665 +++++++++++++++++++ source/blender/editors/include/ED_sculpt.h | 7 + source/blender/editors/include/ED_view3d.h | 6 +- source/blender/editors/object/object_modifier.c | 2 + source/blender/editors/physics/particle_edit.c | 2 +- source/blender/editors/sculpt_paint/paint_intern.h | 4 +- source/blender/editors/sculpt_paint/paint_stroke.c | 27 +- source/blender/editors/sculpt_paint/paint_vertex.c | 4 +- source/blender/editors/sculpt_paint/sculpt.c | 736 +++++++++++---------- source/blender/editors/space_view3d/drawobject.c | 34 +- source/blender/editors/space_view3d/view3d_draw.c | 39 +- source/blender/editors/space_view3d/view3d_edit.c | 47 +- .../blender/editors/space_view3d/view3d_select.c | 14 +- source/blender/editors/space_view3d/view3d_view.c | 39 ++ source/blender/gpu/gpu_buffers.h | 11 + source/blender/gpu/intern/gpu_buffers.c | 151 +++++ 25 files changed, 1486 insertions(+), 481 deletions(-) create mode 100644 source/blender/blenlib/BLI_pbvh.h create mode 100644 source/blender/blenlib/intern/pbvh.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 076747cb845..75d9ae7f360 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -204,7 +204,7 @@ struct DerivedMesh { * * Also called for *final* editmode DerivedMeshes */ - void (*drawFacesSolid)(DerivedMesh *dm, + void (*drawFacesSolid)(DerivedMesh *dm, void *tree, float (*partial_redraw_planes)[4], int (*setMaterial)(int, void *attribs)); /* Draw all faces diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index ba42aca1872..558659b520f 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -34,6 +34,7 @@ struct MultireModifierData; struct MVert; struct Object; struct Paint; +struct PBVH; struct Scene; struct StrokeCache; @@ -76,8 +77,10 @@ typedef struct SculptSession { /* Used temporarily per-stroke */ float *vertexcosnos; - ListBase damaged_rects; - ListBase damaged_verts; + + /* Partial redraw */ + struct PBVH *tree; + int partial_redraw; /* Used to cache the render of the active texture */ unsigned int texcache_side, *texcache, texcache_actual; diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index e38bb00fe8d..6ae1057767d 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -49,7 +49,7 @@ #include "BLI_blenlib.h" #include "BLI_edgehash.h" #include "BLI_editVert.h" -#include "BLI_ghash.h" +#include "BLI_pbvh.h" #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" @@ -360,7 +360,68 @@ static void cdDM_drawLooseEdges(DerivedMesh *dm) } } -static void cdDM_drawFacesSolid(DerivedMesh *dm, int (*setMaterial)(int, void *attribs)) +static int nodes_drawn = 0; +static int is_partial = 0; +/* XXX: Just a temporary replacement for the real drawing code */ +static void draw_partial_cb(const int *face_indices, + const int *vert_indices, + int totface, int totvert, void *data_v) +{ + /* XXX: Just some quick code to show leaf nodes in different colors */ + /*float col[3]; int i; + if(is_partial) { + col[0] = (rand() / (float)RAND_MAX); col[1] = col[2] = 0.6; + } + else { + srand((long long)data_v); + for(i = 0; i < 3; ++i) + col[i] = (rand() / (float)RAND_MAX) * 0.3 + 0.7; + } + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col); + + glColor3f(1, 0, 0);*/ + GPU_draw_buffers(data_v); + ++nodes_drawn; +} + +int find_all(float bb_min[3], float bb_max[3], void *data) +{ + return 1; +} + +/* Adapted from: + http://www.gamedev.net/community/forums/topic.asp?topic_id=512123 + Returns true if the AABB is at least partially within the frustum + (ok, not a real frustum), false otherwise. +*/ +int planes_contain_AABB(float bb_min[3], float bb_max[3], void *data) +{ + float (*planes)[4] = data; + int i, axis; + float vmin[3], vmax[3]; + + for(i = 0; i < 4; ++i) { + for(axis = 0; axis < 3; ++axis) { + if(planes[i][axis] > 0) { + vmin[axis] = bb_min[axis]; + vmax[axis] = bb_max[axis]; + } + else { + vmin[axis] = bb_max[axis]; + vmax[axis] = bb_min[axis]; + } + } + + if(Inpf(planes[i], vmin) + planes[i][3] > 0) + return 0; + } + + return 1; +} + +static void cdDM_drawFacesSolid(DerivedMesh *dm, void *tree, + float (*partial_redraw_planes)[4], + int (*setMaterial)(int, void *attribs)) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; MVert *mvert = cddm->mvert; @@ -376,6 +437,32 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, int (*setMaterial)(int, void *a glVertex3fv(mvert[index].co); \ } + if(tree) { + BLI_pbvh_search(tree, BLI_pbvh_update_search_cb, + PBVH_NodeData, NULL, NULL, + PBVH_SEARCH_UPDATE); + + if(partial_redraw_planes) { + BLI_pbvh_search(tree, planes_contain_AABB, + partial_redraw_planes, + draw_partial_cb, PBVH_DrawData, + PBVH_SEARCH_MODIFIED); + } + else { + BLI_pbvh_search(tree, find_all, NULL, + draw_partial_cb, PBVH_DrawData, + PBVH_SEARCH_NORMAL); + + } + + is_partial = !!partial_redraw_planes; + + //printf("nodes drawn=%d\n", nodes_drawn); + nodes_drawn = 0; + + return; + } + if( GPU_buffer_legacy(dm) ) { DEBUG_VBO( "Using legacy code. cdDM_drawFacesSolid\n" ); glBegin(glmode = GL_QUADS); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index ba8d41f54bb..5c3419fb488 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -72,6 +72,8 @@ #include "BLI_blenlib.h" #include "BLI_arithb.h" #include "BLI_editVert.h" +#include "BLI_ghash.h" +#include "BLI_pbvh.h" #include "BKE_utildefines.h" @@ -228,8 +230,6 @@ void free_sculptsession(SculptSession **ssp) { if(ssp && *ssp) { SculptSession *ss = *ssp; - if(ss->projverts) - MEM_freeN(ss->projverts); if(ss->fmap) MEM_freeN(ss->fmap); @@ -246,6 +246,12 @@ void free_sculptsession(SculptSession **ssp) if(ss->mesh_co_orig) MEM_freeN(ss->mesh_co_orig); + if(ss->tree) + BLI_pbvh_free(ss->tree); + + if(ss->face_normals) + MEM_freeN(ss->face_normals); + MEM_freeN(ss); *ssp = NULL; diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 6e95fe7ebc7..7c83431ebd8 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1615,7 +1615,7 @@ static void ccgDM_glNormalFast(float *a, float *b, float *c, float *d) } /* Only used by non-editmesh types */ -static void ccgDM_drawFacesSolid(DerivedMesh *dm, int (*setMaterial)(int, void *attribs)) { +static void ccgDM_drawFacesSolid(DerivedMesh *dm, void *tree, float (*partial_redraw_planes)[4], int (*setMaterial)(int, void *attribs)) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; CCGSubSurf *ss = ccgdm->ss; CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss); diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h new file mode 100644 index 00000000000..edc363e65a3 --- /dev/null +++ b/source/blender/blenlib/BLI_pbvh.h @@ -0,0 +1,62 @@ +struct MFace; +struct MVert; +struct PBVH; + +/* Returns 1 if the search should continue from this node, 0 otherwise */ +typedef int (*BLI_pbvh_SearchCallback)(float bb_min[3], float bb_max[3], + void *data); + +typedef void (*BLI_pbvh_HitCallback)(const int *face_indices, + const int *vert_indices, + int totface, int totvert, void *data); +int BLI_pbvh_search_range(float bb_min[3], float bb_max[3], void *data_v); + +typedef enum { + PBVH_SEARCH_NORMAL, + + /* When the callback returns a 1 for a leaf node, that node will be + marked as modified */ + PBVH_SEARCH_MARK_MODIFIED, + + /* Update gpu data for modified nodes. Also clears the Modified flag. */ + PBVH_SEARCH_MODIFIED, + + + PBVH_SEARCH_UPDATE +} PBVH_SearchMode; + +/* Pass the node as data to the callback */ +#define PBVH_NodeData (void*)0xa +/* Pass the draw buffers as data to the callback */ +#define PBVH_DrawData (void*)0xb + +void BLI_pbvh_search(struct PBVH *bvh, BLI_pbvh_SearchCallback scb, + void *search_data, BLI_pbvh_HitCallback hcb, + void *hit_data, PBVH_SearchMode mode); + +/* The hit callback is called for all leaf nodes intersecting the ray; + it's up to the callback to find the primitive within the leaves that is + hit first */ +void BLI_pbvh_raycast(struct PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, + float ray_start[3], float ray_normal[3]); + + +int BLI_pbvh_update_search_cb(float bb_min[3], float bb_max[3], void *data_v); + +/* Get the bounding box around all nodes that have been marked as modified. */ +void BLI_pbvh_modified_bounding_box(struct PBVH *bvh, + float bb_min[3], float bb_max[3]); +void BLI_pbvh_reset_modified_bounding_box(struct PBVH *bvh); + +/* Lock is off by default, turn on to stop redraw from clearing the modified + flag from nodes */ +void BLI_pbvh_toggle_modified_lock(struct PBVH *bvh); + + + +struct PBVH *BLI_pbvh_new(BLI_pbvh_HitCallback update_cb, void *update_cb_data); +void BLI_pbvh_build(struct PBVH *bvh, struct MFace *faces, struct MVert *verts, + int totface, int totvert); +void BLI_pbvh_free(struct PBVH *bvh); + +void BLI_pbvh_set_source(struct PBVH *bvh, struct MVert *, struct MFace *mface); diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt index 4ed9eb4b007..00a5440bc75 100644 --- a/source/blender/blenlib/CMakeLists.txt +++ b/source/blender/blenlib/CMakeLists.txt @@ -28,6 +28,7 @@ FILE(GLOB SRC intern/*.c) SET(INC . ../makesdna ../blenkernel ../../../intern/guardedalloc ../include + ../gpu ${FREETYPE_INCLUDE_DIRS} ${ZLIB_INC} ) diff --git a/source/blender/blenlib/SConscript b/source/blender/blenlib/SConscript index fc586de5085..bca9399bc27 100644 --- a/source/blender/blenlib/SConscript +++ b/source/blender/blenlib/SConscript @@ -4,7 +4,7 @@ Import ('env') sources = env.Glob('intern/*.c') cflags='' -incs = '. ../makesdna ../blenkernel #/intern/guardedalloc ../editors/include' +incs = '. ../makesdna ../blenkernel #/intern/guardedalloc ../editors/include ../gpu' incs += ' ' + env['BF_FREETYPE_INC'] incs += ' ' + env['BF_ZLIB_INC'] defs = '' diff --git a/source/blender/blenlib/intern/arithb.c b/source/blender/blenlib/intern/arithb.c index 6c9ae78bac4..85cd46e6f33 100644 --- a/source/blender/blenlib/intern/arithb.c +++ b/source/blender/blenlib/intern/arithb.c @@ -4324,7 +4324,7 @@ int RayIntersectsTriangle(float p1[3], float d[3], float v0[3], float v1[3], flo Crossf(p, d, e2); a = Inpf(e1, p); - if ((a > -0.000001) && (a < 0.000001)) return 0; + if ((a > -FLT_EPSILON) && (a < FLT_EPSILON)) return 0; f = 1.0f/a; VecSubf(s, p1, v0); diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c new file mode 100644 index 00000000000..98492a8f429 --- /dev/null +++ b/source/blender/blenlib/intern/pbvh.c @@ -0,0 +1,665 @@ +#include "MEM_guardedalloc.h" + +#include "DNA_meshdata_types.h" + +#include "BLI_arithb.h" +#include "BLI_ghash.h" +#include "BLI_pbvh.h" + +#include "BKE_utildefines.h" + +#include "gpu_buffers.h" + +#include +#include +#include + +#define LEAF_LIMIT 10000 + +//#define PERFCNTRS + +/* Bitmap */ +typedef char* BLI_bitmap; + +BLI_bitmap BLI_bitmap_new(int tot) +{ + return MEM_callocN((tot >> 3) + 1, "BLI bitmap"); +} + +int BLI_bitmap_get(BLI_bitmap b, int index) +{ + return b[index >> 3] & (1 << (index & 7)); +} + +void BLI_bitmap_set(BLI_bitmap b, int index) +{ + b[index >> 3] |= (1 << (index & 7)); +} + +void BLI_bitmap_clear(BLI_bitmap b, int index) +{ + b[index >> 3] &= ~(1 << (index & 7)); +} + +typedef enum { + PBVH_Leaf = 1, + PBVH_Modified = 2 +} NodeFlags; + +/* Axis-aligned bounding box */ +typedef struct { + float bmin[3], bmax[3]; +} BB; + +/* Axis-aligned bounding box with centroid */ +typedef struct { + float bmin[3], bmax[3], bcentroid[3]; +} BBC; + +typedef struct { + /* Opaque handle for drawing code */ + void *draw_buffers; + + int *vert_indices; + + /* Voxel bounds */ + BB vb; + + /* For internal nodes */ + int children_offset; + + /* Range of faces used in the node */ + int face_offset; + + unsigned short totface; + unsigned short uniq_verts, face_verts; + + char flag; +} Node; + +typedef struct PBVH { + Node *nodes; + int node_mem_count, totnode; + + int *face_indices; + int totface; + + BB modified_bb; + + BLI_pbvh_HitCallback update_cb; + void *update_cb_data; + + /* Mesh data */ + MVert *verts; + MFace *faces; + + int modified_lock; + + /* Only used during BVH build and update, + don't need to remain valid after */ + BLI_bitmap vert_bitmap; + +#ifdef PERFCNTRS + int perf_modified; +#endif +} PBVH; + +static void BB_reset(BB *bb) +{ + bb->bmin[0] = bb->bmin[1] = bb->bmin[2] = FLT_MAX; + bb->bmax[0] = bb->bmax[1] = bb->bmax[2] = -FLT_MAX; +} + +/* Expand the bounding box to include a new coordinate */ +static void BB_expand(BB *bb, float co[3]) +{ + if(co[0] < bb->bmin[0]) bb->bmin[0] = co[0]; + if(co[1] < bb->bmin[1]) bb->bmin[1] = co[1]; + if(co[2] < bb->bmin[2]) bb->bmin[2] = co[2]; + + if(co[0] > bb->bmax[0]) bb->bmax[0] = co[0]; + if(co[1] > bb->bmax[1]) bb->bmax[1] = co[1]; + if(co[2] > bb->bmax[2]) bb->bmax[2] = co[2]; +} + +/* Expand the bounding box to include another bounding box */ +static void BB_expand_with_bb(BB *bb, BB *bb2) +{ + int i; + for(i = 0; i < 3; ++i) { + bb->bmin[i] = MIN2(bb->bmin[i], bb2->bmin[i]); + bb->bmax[i] = MAX2(bb->bmax[i], bb2->bmax[i]); + } +} + +/* Return 0, 1, or 2 to indicate the widest axis of the bounding box */ +static int BB_widest_axis(BB *bb) +{ + float dim[3]; + int i; + + for(i = 0; i < 3; ++i) + dim[i] = bb->bmax[i] - bb->bmin[i]; + + if(dim[0] > dim[1]) { + if(dim[0] > dim[2]) + return 0; + else + return 2; + } + else { + if(dim[1] > dim[2]) + return 1; + else + return 2; + } +} + +static void BBC_update_centroid(BBC *bbc) +{ + int i; + for(i = 0; i < 3; ++i) + bbc->bcentroid[i] = (bbc->bmin[i] + bbc->bmax[i]) * 0.5f; +} + +/* Not recursive */ +static void update_node_vb(PBVH *bvh, Node *node) +{ + BB_reset(&node->vb); + + if(node->flag & PBVH_Leaf) { + int i, j; + for(i = node->face_offset + node->totface - 1; + i >= node->face_offset; --i) { + MFace *f = bvh->faces + bvh->face_indices[i]; + const int sides = f->v4 ? 4 : 3; + + for(j = 0; j < sides; ++j) + BB_expand(&node->vb, + bvh->verts[*((&f->v1) + j)].co); + } + } + else { + BB_expand_with_bb(&node->vb, + &bvh->nodes[node->children_offset].vb); + BB_expand_with_bb(&node->vb, + &bvh->nodes[node->children_offset + 1].vb); + } +} + +/* Adapted from BLI_kdopbvh.c */ +/* Returns the index of the first element on the right of the partition */ +static int partition_indices(int *face_indices, int lo, int hi, int axis, + float mid, BBC *prim_bbc) +{ + int i=lo, j=hi; + for(;;) { + for(; prim_bbc[face_indices[i]].bcentroid[axis] < mid; i++); + for(; mid < prim_bbc[face_indices[j]].bcentroid[axis]; j--); + + if(!(i < j)) + return i; + + SWAP(int, face_indices[i], face_indices[j]); + i++; + } +} + +void check_partitioning(int *face_indices, int lo, int hi, int axis, + float mid, BBC *prim_bbc, int index_of_2nd_partition) +{ + int i; + for(i = lo; i <= hi; ++i) { + const float c = prim_bbc[face_indices[i]].bcentroid[axis]; + + if((i < index_of_2nd_partition && c > mid) || + (i > index_of_2nd_partition && c < mid)) { + printf("fail\n"); + } + } +} + +static void grow_nodes(PBVH *bvh, int totnode) +{ + if(totnode > bvh->node_mem_count) { + Node *prev = bvh->nodes; + bvh->node_mem_count *= 1.33; + if(bvh->node_mem_count < totnode) + bvh->node_mem_count = totnode; + bvh->nodes = MEM_callocN(sizeof(Node) * bvh->node_mem_count, + "bvh nodes"); + memcpy(bvh->nodes, prev, bvh->totnode * sizeof(Node)); + MEM_freeN(prev); + } + + bvh->totnode = totnode; +} + +/* Add a vertex to the map, with a positive value for unique vertices and + a negative value for additional vertices */ +static void map_insert_vert(PBVH *bvh, GHash *map, + unsigned short *face_verts, + unsigned short *uniq_verts, int vertex) +{ + void *value, *key = SET_INT_IN_POINTER(vertex); + + if(!BLI_ghash_haskey(map, key)) { + if(BLI_bitmap_get(bvh->vert_bitmap, vertex)) { + value = SET_INT_IN_POINTER(-(*face_verts) - 1); + ++(*face_verts); + } + else { + BLI_bitmap_set(bvh->vert_bitmap, vertex); + value = SET_INT_IN_POINTER(*uniq_verts); + ++(*uniq_verts); + } + + BLI_ghash_insert(map, key, value); + } +} + +/* Find vertices used by the faces in this node and update the draw buffers */ +static void build_leaf_node(PBVH *bvh, Node *node) +{ + GHashIterator *iter; + GHash *map; + int i, j; + + map = BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp); + + node->uniq_verts = node->face_verts = 0; + + for(i = node->face_offset + node->totface - 1; + i >= node->face_offset; --i) { + MFace *f = bvh->faces + bvh->face_indices[i]; + int sides = f->v4 ? 4 : 3; + + for(j = 0; j < sides; ++j) { + map_insert_vert(bvh, map, &node->face_verts, + &node->uniq_verts, (&f->v1)[j]); + } + } + + node->vert_indices = MEM_callocN(sizeof(int) * + (node->uniq_verts + node->face_verts), + "bvh node vert indices"); + + /* Build the vertex list, unique verts first */ + for(iter = BLI_ghashIterator_new(map), i = 0; + !BLI_ghashIterator_isDone(iter); + BLI_ghashIterator_step(iter), ++i) { + void *value = BLI_ghashIterator_getValue(iter); + int ndx = GET_INT_FROM_POINTER(value); + + if(ndx < 0) + ndx = -ndx + node->uniq_verts - 1; + + node->vert_indices[ndx] = + GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(iter)); + } + + node->draw_buffers = + GPU_build_buffers(map, bvh->verts, bvh->faces, + bvh->face_indices + node->face_offset, + node->totface, node->vert_indices, + node->uniq_verts, + node->uniq_verts + node->face_verts); + + BLI_ghash_free(map, NULL, NULL); +} + +/* Recursively build a node in the tree + + vb is the voxel box around all of the primitives contained in + this node. + + cb is the bounding box around all the centroids of the primitives + contained in this node + + offset and start indicate a range in the array of primitive indices +*/ + +void build_sub(PBVH *bvh, int node_index, BB *cb, BBC *prim_bbc, + int offset, int count) +{ + int i, axis, end; + BB cb_backing; + + /* Decide whether this is a leaf or not */ + if(count <= LEAF_LIMIT) { + bvh->nodes[node_index].flag |= PBVH_Leaf; + + bvh->nodes[node_index].face_offset = offset; + bvh->nodes[node_index].totface = count; + + /* Still need vb for searches */ + BB_reset(&bvh->nodes[node_index].vb); + for(i = offset + count - 1; i >= offset; --i) { + BB_expand_with_bb(&bvh->nodes[node_index].vb, + (BB*)(prim_bbc + + bvh->face_indices[i])); + } + + build_leaf_node(bvh, bvh->nodes + node_index); + + /* Done with this subtree */ + return; + } + else { + BB_reset(&bvh->nodes[node_index].vb); + bvh->nodes[node_index].children_offset = bvh->totnode; + grow_nodes(bvh, bvh->totnode + 2); + + if(!cb) { + cb = &cb_backing; + BB_reset(cb); + for(i = offset + count - 1; i >= offset; --i) + BB_expand(cb, prim_bbc[bvh->face_indices[i]].bcentroid); + } + } + + axis = BB_widest_axis(cb); + + for(i = offset + count - 1; i >= offset; --i) { + BB_expand_with_bb(&bvh->nodes[node_index].vb, + (BB*)(prim_bbc + bvh->face_indices[i])); + } + + end = partition_indices(bvh->face_indices, offset, offset + count - 1, + axis, + (cb->bmax[axis] + cb->bmin[axis]) * 0.5f, + prim_bbc); + check_partitioning(bvh->face_indices, offset, offset + count - 1, + axis, + (cb->bmax[axis] + cb->bmin[axis]) * 0.5f, + prim_bbc, end); + + build_sub(bvh, bvh->nodes[node_index].children_offset, NULL, + prim_bbc, offset, end - offset); + build_sub(bvh, bvh->nodes[node_index].children_offset + 1, NULL, + prim_bbc, end, offset + count - end); +} + +/* Do a full rebuild */ +void BLI_pbvh_build(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totvert) +{ + BBC *prim_bbc = NULL; + BB cb; + int i, j; + + if(totface != bvh->totface) { + bvh->totface = totface; + if(bvh->nodes) MEM_freeN(bvh->nodes); + if(bvh->face_indices) MEM_freeN(bvh->face_indices); + bvh->face_indices = MEM_callocN(sizeof(int) * totface, + "bvh face indices"); + for(i = 0; i < totface; ++i) + bvh->face_indices[i] = i; + bvh->totnode = 0; + if(bvh->node_mem_count < 100) { + bvh->node_mem_count = 100; + bvh->nodes = MEM_callocN(sizeof(Node) * + bvh->node_mem_count, + "bvh initial nodes"); + } + } + + bvh->faces = faces; + bvh->verts = verts; + bvh->vert_bitmap = BLI_bitmap_new(totvert); + + BB_reset(&bvh->modified_bb); + + BB_reset(&cb); + + /* For each face, store the AABB and the AABB centroid */ + prim_bbc = MEM_mallocN(sizeof(BBC) * totface, "prim_bbc"); + + for(i = 0; i < totface; ++i) { + MFace *f = faces + i; + const int sides = f->v4 ? 4 : 3; + BBC *bbc = prim_bbc + i; + + BB_reset((BB*)bbc); + + for(j = 0; j < sides; ++j) + BB_expand((BB*)bbc, verts[(&f->v1)[j]].co); + + BBC_update_centroid(bbc); + + BB_expand(&cb, bbc->bcentroid); + } + + bvh->totnode = 1; + build_sub(bvh, 0, &cb, prim_bbc, 0, totface); + + MEM_freeN(prim_bbc); + MEM_freeN(bvh->vert_bitmap); +} + +PBVH *BLI_pbvh_new(BLI_pbvh_HitCallback update_cb, void *update_cb_data) +{ + PBVH *bvh = MEM_callocN(sizeof(PBVH), "pbvh"); + + bvh->update_cb = update_cb; + bvh->update_cb_data = update_cb_data; + + return bvh; +} + +void BLI_pbvh_free(PBVH *bvh) +{ + int i; + + for(i = 0; i < bvh->totnode; ++i) { + if(bvh->nodes[i].flag & PBVH_Leaf) { + GPU_free_buffers(bvh->nodes[i].draw_buffers); + MEM_freeN(bvh->nodes[i].vert_indices); + } + } + + MEM_freeN(bvh->nodes); + MEM_freeN(bvh->face_indices); + MEM_freeN(bvh); +} + +void BLI_pbvh_set_source(PBVH *bvh, MVert *mvert, MFace *mface) +{ + bvh->verts = mvert; + bvh->faces = mface; +} + +static void do_hit_callback(PBVH *bvh, Node *node, + BLI_pbvh_HitCallback cb, void *data) +{ + if(cb) { + cb(bvh->face_indices + node->face_offset, node->vert_indices, + node->totface, node->uniq_verts, data); + } +} + +static int search_sub(PBVH *bvh, Node *node, + BLI_pbvh_SearchCallback scb, void *search_data_f, + BLI_pbvh_HitCallback hcb, void *hit_data_f, + PBVH_SearchMode mode) +{ + void *search_data = search_data_f; + void *hit_data = hit_data_f; + + if(search_data_f == PBVH_NodeData) + search_data = &node->flag; + if(hit_data_f == PBVH_DrawData) + hit_data = node->draw_buffers; + + if(scb(node->vb.bmin, node->vb.bmax, search_data)) { + if(node->flag & PBVH_Leaf) { + switch(mode) { + case PBVH_SEARCH_MARK_MODIFIED: + node->flag |= PBVH_Modified; +#ifdef PERFCNTRS + ++bvh->perf_modified; +#endif + break; + case PBVH_SEARCH_MODIFIED: + if(node->flag & PBVH_Modified) { + if(bvh->update_cb) { + do_hit_callback + (bvh, node, + bvh->update_cb, + bvh->update_cb_data); + } + + GPU_update_buffers(node->draw_buffers, + bvh->verts, + node->vert_indices, + node->uniq_verts + + node->face_verts); + } + default: + break; + } + + do_hit_callback(bvh, node, hcb, hit_data); + } + else { + int mod = 0; + if(search_sub(bvh, bvh->nodes + node->children_offset, + scb, search_data_f, hcb,hit_data_f, mode)) + mod = 1; + if(search_sub(bvh, + bvh->nodes + node->children_offset + 1, + scb, search_data_f, hcb,hit_data_f, mode)) + mod = 1; + + if(mod) + node->flag |= PBVH_Modified; + } + } + + if(mode == PBVH_SEARCH_MODIFIED) { +#ifdef PERFCNTRS + if(node->flag & PBVH_Modified && node->flag & PBVH_Leaf) + --bvh->perf_modified; +#endif + if(!bvh->modified_lock) + node->flag &= ~PBVH_Modified; + } + else if(mode == PBVH_SEARCH_UPDATE) { + if(node->flag & PBVH_Modified) { + update_node_vb(bvh, node); + if(node->flag & PBVH_Leaf) + BB_expand_with_bb(&bvh->modified_bb, &node->vb); + } + } + + return node->flag & PBVH_Modified; +} + +void BLI_pbvh_search(PBVH *bvh, BLI_pbvh_SearchCallback scb, void *search_data, + BLI_pbvh_HitCallback hcb, void *hit_data, + PBVH_SearchMode mode) +{ +#ifdef PERFCNTRS + printf("search mode=%s\n", + mode==PBVH_SEARCH_MARK_MODIFIED?"mark-modified": + mode==PBVH_SEARCH_MODIFIED?"modified": + mode==PBVH_SEARCH_UPDATE?"update": + mode==PBVH_SEARCH_NORMAL?"normal":"unknown-mode"); + if(mode == PBVH_SEARCH_MARK_MODIFIED) + bvh->perf_modified = 0; +#endif + + search_sub(bvh, bvh->nodes, scb, search_data, hcb, hit_data, mode); +#ifdef PERFCNTRS + printf("%d nodes marked modified\n", bvh->perf_modified); + printf("search complete\n\n"); +#endif +} + +typedef struct { + /* Ray */ + float start[3]; + int sign[3]; + float inv_dir[3]; +} RaycastData; + +/* Adapted from here: http://www.gamedev.net/community/forums/topic.asp?topic_id=459973 */ +static int ray_aabb_intersect(float bb_min[3], float bb_max[3], void *data_v) +{ + RaycastData *ray = data_v; + float bbox[2][3]; + float tmin, tmax, tymin, tymax, tzmin, tzmax; + + VecCopyf(bbox[0], bb_min); + VecCopyf(bbox[1], bb_max); + + tmin = (bbox[ray->sign[0]][0] - ray->start[0]) * ray->inv_dir[0]; + tmax = (bbox[1-ray->sign[0]][0] - ray->start[0]) * ray->inv_dir[0]; + + tymin = (bbox[ray->sign[1]][1] - ray->start[1]) * ray->inv_dir[1]; + tymax = (bbox[1-ray->sign[1]][1] - ray->start[1]) * ray->inv_dir[1]; + + if((tmin > tymax) || (tymin > tmax)) + return 0; + if(tymin > tmin) + tmin = tymin; + if(tymax < tmax) + tmax = tymax; + + tzmin = (bbox[ray->sign[2]][2] - ray->start[2]) * ray->inv_dir[2]; + tzmax = (bbox[1-ray->sign[2]][2] - ray->start[2]) * ray->inv_dir[2]; + + if((tmin > tzmax) || (tzmin > tmax)) + return 0; + + return 1; + + /* XXX: Not sure about this? + if(tzmin > tmin) + tmin = tzmin; + if(tzmax < tmax) + tmax = tzmax; + return ((tmin < t1) && (tmax > t0)); + */ + +} + +void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, + float ray_start[3], float ray_normal[3]) +{ + RaycastData rcd; + + VecCopyf(rcd.start, ray_start); + rcd.inv_dir[0] = 1.0f / ray_normal[0]; + rcd.inv_dir[1] = 1.0f / ray_normal[1]; + rcd.inv_dir[2] = 1.0f / ray_normal[2]; + rcd.sign[0] = rcd.inv_dir[0] < 0; + rcd.sign[1] = rcd.inv_dir[1] < 0; + rcd.sign[2] = rcd.inv_dir[2] < 0; + + BLI_pbvh_search(bvh, ray_aabb_intersect, &rcd, cb, data, + PBVH_SEARCH_NORMAL); +} + +int BLI_pbvh_update_search_cb(float bb_min[3], float bb_max[3], void *data_v) +{ + int *data = data_v; + + return ((*data) & PBVH_Modified); +} + +void BLI_pbvh_modified_bounding_box(PBVH *bvh, float bb_min[3], float bb_max[3]) +{ + VecCopyf(bb_min, bvh->modified_bb.bmin); + VecCopyf(bb_max, bvh->modified_bb.bmax); +} + +void BLI_pbvh_reset_modified_bounding_box(PBVH *bvh) +{ + BB_reset(&bvh->modified_bb); +} + +void BLI_pbvh_toggle_modified_lock(PBVH *bvh) +{ + bvh->modified_lock = !bvh->modified_lock; +} diff --git a/source/blender/editors/include/ED_sculpt.h b/source/blender/editors/include/ED_sculpt.h index 764efb4ef0c..12ebd74b64b 100644 --- a/source/blender/editors/include/ED_sculpt.h +++ b/source/blender/editors/include/ED_sculpt.h @@ -28,11 +28,18 @@ #ifndef ED_SCULPT_H #define ED_SCULPT_H +struct ARegion; struct bContext; +struct Object; +struct RegionView3D; struct wmKeyConfig; +struct wmWindowManager; /* sculpt.c */ void ED_operatortypes_sculpt(void); +void sculpt_get_redraw_planes(float planes[4][4], struct ARegion *ar, + struct RegionView3D *rv3d, struct Object *ob); + /* paint_ops.c */ void ED_operatortypes_paint(void); diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index be2822d8c49..d9220387073 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -30,6 +30,7 @@ /* ********* exports for space_view3d/ module ********** */ struct ARegion; +struct BoundBox; struct View3D; struct RegionView3D; struct ViewContext; @@ -44,6 +45,7 @@ struct ImBuf; struct Scene; struct bContext; struct Main; +struct rcti; /* for derivedmesh drawing callbacks, for view3d_select, .... */ typedef struct ViewContext { @@ -80,6 +82,8 @@ void request_depth_update(struct RegionView3D *rv3d); /* Projection */ #define IS_CLIPPED 12000 +void view3d_calculate_clipping(struct BoundBox *bb, float planes[4][4], struct bglMats *mats, struct rcti *rect); + void project_short(struct ARegion *ar, float *vec, short *adr); void project_short_noclip(struct ARegion *ar, float *vec, short *adr); @@ -125,7 +129,7 @@ short view3d_opengl_select(struct ViewContext *vc, unsigned int *buffer, unsigne void view3d_set_viewcontext(struct bContext *C, struct ViewContext *vc); void view3d_operator_needs_opengl(const struct bContext *C); void view3d_get_view_aligned_coordinate(struct ViewContext *vc, float *fp, short mval[2]); -void view3d_get_transformation(struct ViewContext *vc, struct Object *ob, struct bglMats *mats); +void view3d_get_transformation(struct ARegion *ar, struct RegionView3D *rv3d, struct Object *ob, struct bglMats *mats); /* XXX should move to arithb.c */ int edge_inside_circle(short centx, short centy, short rad, short x1, short y1, short x2, short y2); diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 1b0dc95480a..39a8a026afb 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -718,6 +718,8 @@ static int multires_subdivide_exec(bContext *C, wmOperator *op) MultiresModifierData *mmd= ptr.data; multiresModifier_subdivide(mmd, ob, 1, 0, mmd->simple); + + DAG_id_flush_update(&ob->id, OB_RECALC_DATA); WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); return OPERATOR_FINISHED; diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index ee1a21db7e5..0681cf0fe0d 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -362,7 +362,7 @@ static void PE_set_view3d_data(bContext *C, PEData *data) PE_set_data(C, data); view3d_set_viewcontext(C, &data->vc); - view3d_get_transformation(&data->vc, data->ob, &data->mats); + view3d_get_transformation(data->vc.ar, data->vc.rv3d, data->ob, &data->mats); if((data->vc.v3d->drawtype>OB_WIRE) && (data->vc.v3d->flag & V3D_ZBUF_SELECT)) view3d_validate_backbuf(&data->vc); diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h index b5748d7bc88..0689e8e63d7 100644 --- a/source/blender/editors/sculpt_paint/paint_intern.h +++ b/source/blender/editors/sculpt_paint/paint_intern.h @@ -43,11 +43,13 @@ struct ARegion; struct VPaint; /* paint_stroke.c */ +typedef int (*StrokeGetLocation)(struct bContext *C, struct PaintStroke *stroke, float location[3], float mouse[2]); typedef int (*StrokeTestStart)(struct bContext *C, struct wmOperator *op, struct wmEvent *event); typedef void (*StrokeUpdateStep)(struct bContext *C, struct PaintStroke *stroke, struct PointerRNA *itemptr); typedef void (*StrokeDone)(struct bContext *C, struct PaintStroke *stroke); -struct PaintStroke *paint_stroke_new(struct bContext *C, StrokeTestStart test_start, +struct PaintStroke *paint_stroke_new(struct bContext *C, + StrokeGetLocation get_location, StrokeTestStart test_start, StrokeUpdateStep update_step, StrokeDone done); int paint_stroke_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event); int paint_stroke_exec(struct bContext *C, struct wmOperator *op); diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index 6e256bee7f2..f8ffaacc0b7 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -73,6 +73,7 @@ typedef struct PaintStroke { passes over the mesh */ int stroke_started; + StrokeGetLocation get_location; StrokeTestStart test_start; StrokeUpdateStep update_step; StrokeDone done; @@ -118,12 +119,13 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *customdata) static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *event, float mouse[2]) { PointerRNA itemptr; - float cur_depth, pressure = 1; - float center[3]; + float pressure = 1; + float center[3] = {0, 0, 0}; PaintStroke *stroke = op->customdata; - cur_depth = read_cached_depth(&stroke->vc, mouse[0], mouse[1]); - view3d_unproject(&stroke->mats, center, mouse[0], mouse[1], cur_depth); + /* XXX: can remove the if statement once all modes have this */ + if(stroke->get_location) + stroke->get_location(C, stroke, center, mouse); /* Tablet */ if(event->custom == EVT_DATA_TABLET) { @@ -208,15 +210,19 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const /**** Public API ****/ -PaintStroke *paint_stroke_new(bContext *C, StrokeTestStart test_start, - StrokeUpdateStep update_step, StrokeDone done) +PaintStroke *paint_stroke_new(bContext *C, + StrokeGetLocation get_location, + StrokeTestStart test_start, + StrokeUpdateStep update_step, + StrokeDone done) { PaintStroke *stroke = MEM_callocN(sizeof(PaintStroke), "PaintStroke"); stroke->brush = paint_brush(paint_get_active(CTX_data_scene(C))); view3d_set_viewcontext(C, &stroke->vc); - view3d_get_transformation(&stroke->vc, stroke->vc.obact, &stroke->mats); + view3d_get_transformation(stroke->vc.ar, stroke->vc.rv3d, stroke->vc.obact, &stroke->mats); + stroke->get_location = get_location; stroke->test_start = test_start; stroke->update_step = update_step; stroke->done = done; @@ -226,7 +232,6 @@ PaintStroke *paint_stroke_new(bContext *C, StrokeTestStart test_start, int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) { - ARegion *ar = CTX_wm_region(C); PaintStroke *stroke = op->customdata; float mouse[2]; @@ -246,20 +251,20 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) stroke->timer = WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, stroke->brush->rate); } - ED_region_tag_redraw(ar); + //ED_region_tag_redraw(ar); } if(stroke->stroke_started) { if(paint_smooth_stroke(stroke, mouse, event)) { if(paint_space_stroke_enabled(stroke->brush)) { if(!paint_space_stroke(C, op, event, mouse)) - ED_region_tag_redraw(ar); + ;//ED_region_tag_redraw(ar); } else paint_brush_stroke_add_step(C, op, event, mouse); } else - ED_region_tag_redraw(ar); + ;//ED_region_tag_redraw(ar); } /* TODO: fix hardcoded event here */ diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index 1dac98780da..c4379ac187b 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -1493,7 +1493,7 @@ static void wpaint_stroke_done(bContext *C, struct PaintStroke *stroke) static int wpaint_invoke(bContext *C, wmOperator *op, wmEvent *event) { - op->customdata = paint_stroke_new(C, wpaint_stroke_test_start, + op->customdata = paint_stroke_new(C, NULL, wpaint_stroke_test_start, wpaint_stroke_update_step, wpaint_stroke_done); @@ -1792,7 +1792,7 @@ static void vpaint_stroke_done(bContext *C, struct PaintStroke *stroke) static int vpaint_invoke(bContext *C, wmOperator *op, wmEvent *event) { - op->customdata = paint_stroke_new(C, vpaint_stroke_test_start, + op->customdata = paint_stroke_new(C, NULL, vpaint_stroke_test_start, vpaint_stroke_update_step, vpaint_stroke_done); diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index c4c7f436f12..b4b002283fd 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -35,6 +35,8 @@ #include "BLI_arithb.h" #include "BLI_blenlib.h" #include "BLI_dynstr.h" +#include "BLI_ghash.h" +#include "BLI_pbvh.h" #include "DNA_armature_types.h" #include "DNA_brush_types.h" @@ -52,6 +54,7 @@ #include "DNA_color_types.h" #include "BKE_brush.h" +#include "BKE_cdderivedmesh.h" #include "BKE_context.h" #include "BKE_customdata.h" #include "BKE_DerivedMesh.h" @@ -131,7 +134,6 @@ typedef struct StrokeCache { int flag; float clip_tolerance[3]; float initial_mouse[2]; - float depth; /* Variants */ float radius; @@ -147,6 +149,10 @@ typedef struct StrokeCache { bglMats *mats; + /* Clean this up! */ + ViewContext *vc; + Brush *brush; + short (*orig_norms)[3]; /* Copy of the mesh vertices' normals */ float (*face_norms)[3]; /* Copy of the mesh faces' normals */ float rotation; /* Texture rotation (radians) for anchored and rake modes */ @@ -159,20 +165,6 @@ typedef struct StrokeCache { int last_rake[2]; /* Last location of updating rake rotation */ } StrokeCache; -typedef struct RectNode { - struct RectNode *next, *prev; - rcti r; -} RectNode; - -/* Used to store to 2D screen coordinates of each vertex in the mesh. */ -typedef struct ProjVert { - short co[2]; - - /* Used to mark whether a vertex is inside a rough bounding box - containing the brush. */ - char inside; -} ProjVert; - /* ===== OPENGL ===== * * Simple functions to get data from the GL @@ -189,7 +181,7 @@ static void projectf(bglMats *mats, const float v[3], float p[2]) p[1]= uy; } -static void project(bglMats *mats, const float v[3], short p[2]) +/*XXX: static void project(bglMats *mats, const float v[3], short p[2]) { float f[2]; projectf(mats, v, f); @@ -197,6 +189,120 @@ static void project(bglMats *mats, const float v[3], short p[2]) p[0]= f[0]; p[1]= f[1]; } +*/ + +/*** BVH Tree ***/ + +/* Updates all the face and vertex normals in a node + + Note: the correctness of some vertex normals will be a little + off, not sure if this will be noticeable or not */ +static void sculpt_update_normals(const int *face_indices, + const int *vert_indices, + int totface, int totvert, void *data) +{ + SculptSession *ss = data; + int i; + + /* Update face normals */ + for(i = 0; i < totface; ++i) { + MFace *f = ss->mface + face_indices[i]; + float *fn = ss->face_normals + face_indices[i] * 3; + + if(f->v4) + CalcNormFloat4(ss->mvert[f->v1].co, ss->mvert[f->v2].co, + ss->mvert[f->v3].co, ss->mvert[f->v4].co, fn); + else + CalcNormFloat(ss->mvert[f->v1].co, ss->mvert[f->v2].co, + ss->mvert[f->v3].co, fn); + } + + /* Update vertex normals */ + for(i = 0; i < totvert; ++i) { + const int v = vert_indices[i]; + float no[3] = {0,0,0}; + IndexNode *face; + + for(face = ss->fmap[v].first; face; face = face->next) + VecAddf(no, no, ss->face_normals + face->index*3); + + Normalize(no); + + ss->mvert[v].no[0] = no[0] * 32767; + ss->mvert[v].no[1] = no[1] * 32767; + ss->mvert[v].no[2] = no[2] * 32767; + } +} + +static void sculpt_rebuild_tree(SculptSession *ss) +{ + if(ss->tree) + BLI_pbvh_free(ss->tree); + + ss->tree = BLI_pbvh_new(sculpt_update_normals, ss); + BLI_pbvh_build(ss->tree, ss->mface, ss->mvert, ss->totface, + ss->totvert); +} + +/* Get a screen-space rectangle of the modified area */ +int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d, + Object *ob, rcti *rect) +{ + float bb_min[3], bb_max[3], pmat[4][4]; + int i, j, k; + + view3d_get_object_project_mat(rv3d, ob, pmat); + + BLI_pbvh_modified_bounding_box(ob->sculpt->tree, bb_min, bb_max); + + rect->xmin = rect->ymin = INT_MAX; + rect->xmax = rect->ymax = INT_MIN; + + for(i = 0; i < 2; ++i) { + for(j = 0; j < 2; ++j) { + for(k = 0; k < 2; ++k) { + float vec[3], proj[2]; + vec[0] = i ? bb_min[0] : bb_max[0]; + vec[1] = j ? bb_min[1] : bb_max[1]; + vec[2] = k ? bb_min[2] : bb_max[2]; + view3d_project_float(ar, vec, proj, pmat); + rect->xmin = MIN2(rect->xmin, proj[0]); + rect->xmax = MAX2(rect->xmax, proj[0]); + rect->ymin = MIN2(rect->ymin, proj[1]); + rect->ymax = MAX2(rect->ymax, proj[1]); + } + } + } + + return rect->xmin < rect->xmax && rect->ymin < rect->ymax; +} + +void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar, + RegionView3D *rv3d, Object *ob) +{ + BoundBox *bb = MEM_callocN(sizeof(BoundBox), "sculpt boundbox"); + bglMats mats; + int i; + rcti rect; + + view3d_get_transformation(ar, rv3d, ob, &mats); + sculpt_get_redraw_rect(ar, rv3d,ob, &rect); + BLI_pbvh_reset_modified_bounding_box(ob->sculpt->tree); + + + rect.xmin += 2; + rect.xmax -= 2; + rect.ymin += 2; + rect.ymax -= 2; + + view3d_calculate_clipping(bb, planes, &mats, &rect); + + for(i = 0; i < 16; ++i) + ((float*)planes)[i] = -((float*)planes)[i]; + + MEM_freeN(bb); +} + /* ===== Sculpting ===== * @@ -306,12 +412,9 @@ static void do_draw_brush(Sculpt *sd, SculptSession *ss, const ListBase* active_ { float area_normal[3]; ActiveData *node= active_verts->first; - float* buffer; calc_area_normal(sd, ss, area_normal, active_verts); - buffer = ss->drawobject!=0?(float *)GPU_buffer_lock( ss->drawobject->vertices ):0; - while(node){ float *co= ss->mvert[node->Index].co; @@ -319,20 +422,10 @@ static void do_draw_brush(Sculpt *sd, SculptSession *ss, const ListBase* active_ co[1]+area_normal[1]*ss->cache->radius*node->Fade*ss->cache->scale[1], co[2]+area_normal[2]*ss->cache->radius*node->Fade*ss->cache->scale[2]}; - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[node->Index]; - while( cur != 0 && cur->element != -1 ) { - sculpt_clip(sd, ss, &buffer[cur->element*3], val); - cur = cur->next; - } - } - sculpt_clip(sd, ss, co, val); node= node->next; } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->vertices ); } /* For the smooth brush, uses the neighboring vertices around vert to calculate @@ -382,7 +475,6 @@ static void neighbor_average(SculptSession *ss, float avg[3], const int vert) static void do_smooth_brush(Sculpt *s, SculptSession *ss, const ListBase* active_verts) { ActiveData *node= active_verts->first; - float *buffer = ss->drawobject!=0?(float *)GPU_buffer_lock( ss->drawobject->vertices ):0; int i; for(i = 0; i < 2; ++i) { @@ -396,24 +488,15 @@ static void do_smooth_brush(Sculpt *s, SculptSession *ss, const ListBase* active val[2] = co[2]+(avg[2]-co[2])*node->Fade; sculpt_clip(s, ss, co, val); - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[node->Index]; - while( cur != 0 && cur->element != -1 ) { - sculpt_clip(s, ss, &buffer[cur->element*3], val); - cur = cur->next; - } - } + node= node->next; } } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->vertices ); } static void do_pinch_brush(Sculpt *s, SculptSession *ss, const ListBase* active_verts) { ActiveData *node= active_verts->first; - float *buffer = ss->drawobject!=0?(float *)GPU_buffer_lock( ss->drawobject->vertices ):0; while(node) { float *co= ss->mvert[node->Index].co; @@ -421,19 +504,9 @@ static void do_pinch_brush(Sculpt *s, SculptSession *ss, const ListBase* active_ co[1]+(ss->cache->location[1]-co[1])*node->Fade, co[2]+(ss->cache->location[2]-co[2])*node->Fade}; - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[node->Index]; - while( cur != 0 && cur->element != -1 ) { - sculpt_clip(s, ss, &buffer[cur->element*3], val); - cur = cur->next; - } - } - sculpt_clip(s, ss, co, val); node= node->next; } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->vertices ); } static void do_grab_brush(Sculpt *sd, SculptSession *ss) @@ -441,7 +514,6 @@ static void do_grab_brush(Sculpt *sd, SculptSession *ss) ActiveData *node= ss->cache->grab_active_verts[ss->cache->symmetry].first; float add[3]; float grab_delta[3]; - float *buffer = ss->drawobject!=0?(float *)GPU_buffer_lock( ss->drawobject->vertices ):0; VecCopyf(grab_delta, ss->cache->grab_delta_symmetry); @@ -452,28 +524,16 @@ static void do_grab_brush(Sculpt *sd, SculptSession *ss) VecMulf(add, node->Fade); VecAddf(add, add, co); - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[node->Index]; - while( cur != 0 && cur->element != -1 ) { - sculpt_clip(sd, ss, &buffer[cur->element*3], add); - cur = cur->next; - } - } - sculpt_clip(sd, ss, co, add); node= node->next; } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->vertices ); - } static void do_layer_brush(Sculpt *sd, SculptSession *ss, const ListBase *active_verts) { float area_normal[3]; ActiveData *node= active_verts->first; - float *buffer; float lim= ss->cache->radius / 4; if(ss->cache->flip) @@ -481,7 +541,6 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, const ListBase *active calc_area_normal(sd, ss, area_normal, active_verts); - buffer = ss->drawobject!=0?(float *)GPU_buffer_lock( ss->drawobject->vertices ):0; while(node){ float *disp= &ss->layer_disps[node->Index]; float *co= ss->mvert[node->Index].co; @@ -497,27 +556,16 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, const ListBase *active val[1] = ss->mesh_co_orig[node->Index][1]+area_normal[1] * *disp*ss->cache->scale[1]; val[2] = ss->mesh_co_orig[node->Index][2]+area_normal[2] * *disp*ss->cache->scale[2]; - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[node->Index]; - while( cur != 0 && cur->element != -1 ) { - sculpt_clip(sd, ss, &buffer[cur->element*3], val); - cur = cur->next; - } - } - sculpt_clip(sd, ss, co, val); node= node->next; } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->vertices ); } static void do_inflate_brush(Sculpt *s, SculptSession *ss, const ListBase *active_verts) { ActiveData *node= active_verts->first; float add[3]; - float *buffer = ss->drawobject!=0?(float *)GPU_buffer_lock( ss->drawobject->vertices ):0; while(node) { float *co= ss->mvert[node->Index].co; @@ -532,20 +580,10 @@ static void do_inflate_brush(Sculpt *s, SculptSession *ss, const ListBase *activ add[2]*= ss->cache->scale[2]; VecAddf(add, add, co); - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[node->Index]; - while( cur != 0 && cur->element != -1 ) { - sculpt_clip(s, ss, &buffer[cur->element*3], add); - cur = cur->next; - } - } - sculpt_clip(s, ss, co, add); node= node->next; } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->vertices ); } static void calc_flatten_center(SculptSession *ss, ActiveData *node, float co[3]) @@ -606,7 +644,6 @@ static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, const ListBase float area_normal[3]; float cntr[3], cntr2[3], bstr = 0; int flip = 0; - float *buffer; calc_area_normal(sd, ss, area_normal, active_verts); calc_flatten_center(ss, node, cntr); @@ -619,8 +656,6 @@ static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, const ListBase flip = bstr < 0; } - buffer = ss->drawobject!=0?(float *)GPU_buffer_lock( ss->drawobject->vertices ):0; - while(node){ float *co= ss->mvert[node->Index].co; float intr[3], val[3]; @@ -646,21 +681,12 @@ static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, const ListBase VecAddf(val, val, co); - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[node->Index]; - while( cur != 0 && cur->element != -1 ) { - sculpt_clip(sd, ss, &buffer[cur->element*3], val); - cur = cur->next; - } - } sculpt_clip(sd, ss, co, val); } node= node->next; } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->vertices ); } /* Uses symm to selectively flip any axis of a coordinate. */ @@ -718,9 +744,8 @@ static float get_texcache_pixel_bilinear(const SculptSession *ss, float u, float } /* Return a multiplier for brush strength on a particular vertex. */ -static float tex_strength(Sculpt *sd, SculptSession *ss, float *point, const float len) +static float tex_strength(SculptSession *ss, Brush *br, float *point, const float len) { - Brush *br = paint_brush(&sd->paint); MTex *tex = NULL; float avg= 1; @@ -795,111 +820,124 @@ static float tex_strength(Sculpt *sd, SculptSession *ss, float *point, const flo return avg; } -/* Mark area around the brush as damaged. projverts are marked if they are - inside the area and the damaged rectangle in 2D screen coordinates is - added to damaged_rects. */ -static void sculpt_add_damaged_rect(SculptSession *ss) +typedef struct { + SculptSession *ss; + float radius_squared; + ListBase *active_verts; +} SculptSearchSphereData; + +/* Test AABB against sphere */ +static int sculpt_search_sphere_cb(float bb_min[3], float bb_max[3], + void *data_v) { - short p[2]; - RectNode *rn= MEM_mallocN(sizeof(RectNode),"RectNode"); - const float radius = MAX2(ss->cache->pixel_radius, ss->cache->previous_pixel_radius); - unsigned i; + SculptSearchSphereData *data = data_v; + float *center = data->ss->cache->location, nearest[3]; + float t[3]; + int i; - /* Find center */ - project(ss->cache->mats, ss->cache->location, p); - rn->r.xmin= p[0] - radius; - rn->r.ymin= p[1] - radius; - rn->r.xmax= p[0] + radius; - rn->r.ymax= p[1] + radius; + for(i = 0; i < 3; ++i) { + if(bb_min[i] > center[i]) + nearest[i] = bb_min[i]; + else if(bb_max[i] < center[i]) + nearest[i] = bb_max[i]; + else + nearest[i] = center[i]; + } + + VecSubf(t, center, nearest); - BLI_addtail(&ss->damaged_rects, rn); + return t[0] * t[0] + t[1] * t[1] + t[2] * t[2] < data->radius_squared; +} - /* Update insides */ - for(i=0; itotvert; ++i) { - if(!ss->projverts[i].inside) { - if(ss->projverts[i].co[0] > rn->r.xmin && ss->projverts[i].co[1] > rn->r.ymin && - ss->projverts[i].co[0] < rn->r.xmax && ss->projverts[i].co[1] < rn->r.ymax) { - ss->projverts[i].inside= 1; - } +static void sculpt_brush_hit_cb(const int *face_indices, + const int *vert_indices, + int totface, int totvert, void *data_v) +{ + SculptSearchSphereData *data = data_v; + int i; + + /* XXX: for now we still make an active vert list, + can be fixed later */ + + for(i = 0; i < totvert; ++i) { + int v = vert_indices[i]; + float delta[3], dsq; + + VecSubf(delta, data->ss->mvert[v].co, + data->ss->cache->location); + dsq = Inpf(delta, delta); + + if(dsq < data->radius_squared) { + ActiveData *adata = + (ActiveData*)MEM_mallocN(sizeof(ActiveData), + "ActiveData"); + adata->Index = v; + adata->dist = sqrt(dsq); + BLI_addtail(data->active_verts, adata); } - // XXX: remember to fix this! - // temporary pass - ss->projverts[i].inside = 1; } } static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache) { Brush *brush = paint_brush(&sd->paint); - float av_dist; - ListBase active_verts={0,0}; + ListBase local_active_verts = {0, 0}; ListBase *grab_active_verts = &ss->cache->grab_active_verts[ss->cache->symmetry]; - ActiveData *adata= 0; - float *vert; - Mesh *me= NULL; /*XXX: get_mesh(OBACT); */ + ListBase *active_verts = &local_active_verts; const float bstrength= brush_strength(sd, cache); - KeyBlock *keyblock= NULL; /*XXX: ob_get_keyblock(OBACT); */ - Brush *b = brush; - int i; - - sculpt_add_damaged_rect(ss); + //KeyBlock *keyblock= NULL; /*XXX: ob_get_keyblock(OBACT); */ + ActiveData *adata; + + /* For grab brush, only find active vertices once */ + if(brush->sculpt_tool == SCULPT_TOOL_GRAB) + active_verts = grab_active_verts; /* Build a list of all vertices that are potentially within the brush's - area of influence. Only do this once for the grab brush. */ - if((b->sculpt_tool != SCULPT_TOOL_GRAB) || cache->first_time) { - for(i=0; itotvert; ++i) { - /* Projverts.inside provides a rough bounding box */ - if(ss->multires || ss->projverts[i].inside) { - //vert= ss->vertexcosnos ? &ss->vertexcosnos[i*6] : a->verts[i].co; - vert= ss->mvert[i].co; - av_dist= VecLenf(ss->cache->location, vert); - if(av_dist < cache->radius) { - adata= (ActiveData*)MEM_mallocN(sizeof(ActiveData), "ActiveData"); - - adata->Index = i; - /* Fade is used to store the final strength at which the brush - should modify a particular vertex. */ - adata->Fade= tex_strength(sd, ss, vert, av_dist) * bstrength; - adata->dist = av_dist; - - if(b->sculpt_tool == SCULPT_TOOL_GRAB && cache->first_time) - BLI_addtail(grab_active_verts, adata); - else - BLI_addtail(&active_verts, adata); - } - } - } + area of influence */ + if(brush->sculpt_tool != SCULPT_TOOL_GRAB || cache->first_time) { + SculptSearchSphereData data; + data.ss = ss; + data.radius_squared = ss->cache->radius * ss->cache->radius; + data.active_verts = active_verts; + BLI_pbvh_search(ss->tree, sculpt_search_sphere_cb, &data, + sculpt_brush_hit_cb, &data, + PBVH_SEARCH_MARK_MODIFIED); + + /* Update brush strength for each vertex */ + for(adata = active_verts->first; adata; adata = adata->next) + adata->Fade = tex_strength(ss, brush, ss->mvert[adata->Index].co, adata->dist) * bstrength; } /* Only act if some verts are inside the brush area */ - if(active_verts.first || (b->sculpt_tool == SCULPT_TOOL_GRAB && grab_active_verts->first)) { + if(active_verts->first) { /* Apply one type of brush action */ - switch(b->sculpt_tool){ + switch(brush->sculpt_tool){ case SCULPT_TOOL_DRAW: - do_draw_brush(sd, ss, &active_verts); + do_draw_brush(sd, ss, active_verts); break; case SCULPT_TOOL_SMOOTH: - do_smooth_brush(sd, ss, &active_verts); + do_smooth_brush(sd, ss, active_verts); break; case SCULPT_TOOL_PINCH: - do_pinch_brush(sd, ss, &active_verts); + do_pinch_brush(sd, ss, active_verts); break; case SCULPT_TOOL_INFLATE: - do_inflate_brush(sd, ss, &active_verts); + do_inflate_brush(sd, ss, active_verts); break; case SCULPT_TOOL_GRAB: do_grab_brush(sd, ss); break; case SCULPT_TOOL_LAYER: - do_layer_brush(sd, ss, &active_verts); + do_layer_brush(sd, ss, active_verts); break; case SCULPT_TOOL_FLATTEN: - do_flatten_clay_brush(sd, ss, &active_verts, 0); + do_flatten_clay_brush(sd, ss, active_verts, 0); break; case SCULPT_TOOL_CLAY: - do_flatten_clay_brush(sd, ss, &active_verts, 1); + do_flatten_clay_brush(sd, ss, active_verts, 1); } +#if 0 /* Copy the modified vertices from mesh to the active key */ if(keyblock && !ss->multires) { float *co= keyblock->data; @@ -919,9 +957,13 @@ static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache) BLI_freelistN(&active_verts); else { if(b->sculpt_tool != SCULPT_TOOL_GRAB) - addlisttolist(&ss->damaged_verts, &active_verts); + addlisttolist(&ss->modified_verts, &active_verts); } - } +#endif + + BLI_freelistN(&local_active_verts); + + } } /* Flip all the editdata across the axis/axes specified by symm. Used to @@ -955,110 +997,6 @@ static void do_symmetrical_brush_actions(Sculpt *sd, SculptSession *ss) cache->first_time = 0; } -static void add_face_normal(vec3f *norm, MVert *mvert, const MFace* face, float *fn) -{ - vec3f c= {mvert[face->v1].co[0],mvert[face->v1].co[1],mvert[face->v1].co[2]}; - vec3f b= {mvert[face->v2].co[0],mvert[face->v2].co[1],mvert[face->v2].co[2]}; - vec3f a= {mvert[face->v3].co[0],mvert[face->v3].co[1],mvert[face->v3].co[2]}; - vec3f s1, s2; - float final[3]; - - VecSubf(&s1.x,&a.x,&b.x); - VecSubf(&s2.x,&c.x,&b.x); - - final[0] = s1.y * s2.z - s1.z * s2.y; - final[1] = s1.z * s2.x - s1.x * s2.z; - final[2] = s1.x * s2.y - s1.y * s2.x; - - if(fn) - VecCopyf(fn, final); - - norm->x+= final[0]; - norm->y+= final[1]; - norm->z+= final[2]; -} - -static void update_damaged_vert(SculptSession *ss, ListBase *lb) -{ - ActiveData *vert; - - float *buffer = ss->drawobject!=0?(float *)GPU_buffer_lock( ss->drawobject->normals ):0; - for(vert= lb->first; vert; vert= vert->next) { - vec3f norm= {0,0,0}; - IndexNode *face= ss->fmap[vert->Index].first; - - while(face){ - float *fn = NULL; - if(ss->face_normals) - fn = &ss->face_normals[face->index*3]; - add_face_normal(&norm, ss->mvert, &ss->mface[face->index], fn); - face= face->next; - } - Normalize(&norm.x); - - ss->mvert[vert->Index].no[0]=norm.x*32767; - ss->mvert[vert->Index].no[1]=norm.y*32767; - ss->mvert[vert->Index].no[2]=norm.z*32767; - - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[vert->Index]; - while( cur != 0 && cur->element != -1 ) { - int i = ss->drawobject->faceRemap[cur->element/3]; - if( ss->mface[i].flag & ME_SMOOTH ) { - VECCOPY(&buffer[cur->element*3],ss->mvert[vert->Index].no); - } - else { - float norm[3]; - if( ss->mface[i].v4 ) - CalcNormFloat4(ss->mvert[ss->mface[i].v1].co, ss->mvert[ss->mface[i].v2].co, ss->mvert[ss->mface[i].v3].co, ss->mvert[ss->mface[i].v4].co, norm); - else - CalcNormFloat(ss->mvert[ss->mface[i].v1].co, ss->mvert[ss->mface[i].v2].co, ss->mvert[ss->mface[i].v3].co, norm); - VECCOPY(&buffer[(cur->element-cur->element%3)*3],norm); - VECCOPY(&buffer[(cur->element-cur->element%3+1)*3],norm); - VECCOPY(&buffer[(cur->element-cur->element%3+2)*3],norm); - - /* maybe this was a quad - need to update the other triangle of the quad */ - if( ss->drawobject->faceRemap[cur->element/3-1] == i ) { - VECCOPY(&buffer[(cur->element-cur->element%3-3)*3],norm); - VECCOPY(&buffer[(cur->element-cur->element%3-2)*3],norm); - VECCOPY(&buffer[(cur->element-cur->element%3-1)*3],norm); - } - if( ss->drawobject->faceRemap[cur->element/3+1] == i ) { - VECCOPY(&buffer[(cur->element-cur->element%3+3)*3],norm); - VECCOPY(&buffer[(cur->element-cur->element%3+4)*3],norm); - VECCOPY(&buffer[(cur->element-cur->element%3+5)*3],norm); - } - } - - //VECCOPY(&buffer[cur->element*3],ss->mvert[vert->Index].no); - cur = cur->next; - } - } - } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->normals ); -} - -static void calc_damaged_verts(SculptSession *ss) -{ - int i; - - for(i=0; i<8; ++i) - update_damaged_vert(ss, &ss->cache->grab_active_verts[i]); - update_damaged_vert(ss, &ss->damaged_verts); - BLI_freelistN(&ss->damaged_verts); - ss->damaged_verts.first = ss->damaged_verts.last = NULL; -} - -#if 0 -static void projverts_clear_inside(SculptSession *ss) -{ - int i; - for(i = 0; i < ss->totvert; ++i) - ss->projverts[i].inside = 0; -} -#endif - static void sculpt_update_tex(Sculpt *sd, SculptSession *ss) { Brush *brush = paint_brush(&sd->paint); @@ -1076,20 +1014,6 @@ static void sculpt_update_tex(Sculpt *sd, SculptSession *ss) } } -static void sculptmode_update_all_projverts(SculptSession *ss) -{ - unsigned i; - - if(!ss->projverts) - ss->projverts = MEM_mallocN(sizeof(ProjVert)*ss->totvert,"ProjVerts"); - - for(i=0; itotvert; ++i) { - project(ss->cache->mats, ss->vertexcosnos ? &ss->vertexcosnos[i * 6] : ss->mvert[i].co, - ss->projverts[i].co); - ss->projverts[i].inside= 0; - } -} - /* Checks whether full update mode (slower) needs to be used to work with modifiers */ char sculpt_modifiers_active(Object *ob) { @@ -1132,10 +1056,9 @@ static void sculpt_update_mesh_elements(bContext *C) Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; int oldtotvert = ss->totvert; - DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, CD_MASK_BAREMESH); if((ss->multires = sculpt_multires_active(ob))) { - //DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, CD_MASK_BAREMESH); + DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, CD_MASK_BAREMESH); ss->totvert = dm->getNumVerts(dm); ss->totface = dm->getNumFaces(dm); ss->mvert = dm->getVertDataArray(dm, CD_MVERT); @@ -1148,23 +1071,20 @@ static void sculpt_update_mesh_elements(bContext *C) ss->totface = me->totface; ss->mvert = me->mvert; ss->mface = me->mface; - ss->face_normals = NULL; - } - if( GPU_buffer_legacy( dm ) ) { - ss->drawobject = 0; - } - else { - ss->drawobject = dm->drawObject; + if(!ss->face_normals) + ss->face_normals = MEM_callocN(sizeof(float) * 3 * me->totface, "sculpt face normals"); } - if(ss->totvert != oldtotvert) { - if(ss->projverts) MEM_freeN(ss->projverts); - ss->projverts = NULL; + if(ss->tree) + BLI_pbvh_set_source(ss->tree, ss->mvert, ss->mface); + if(ss->totvert != oldtotvert) { if(ss->fmap) MEM_freeN(ss->fmap); if(ss->fmap_mem) MEM_freeN(ss->fmap_mem); create_vert_face_map(&ss->fmap, &ss->fmap_mem, ss->mface, ss->totvert, ss->totface); ss->fmap_size = ss->totvert; + + sculpt_rebuild_tree(ss); } } @@ -1251,15 +1171,13 @@ static void SCULPT_OT_radial_control(wmOperatorType *ot) /**** Operator for applying a stroke (various attributes including mouse path) using the current brush. ****/ -static float unproject_brush_radius(SculptSession *ss, float offset) +static float unproject_brush_radius(ViewContext *vc, float center[3], float offset) { - float brush_edge[3]; - - /* In anchored mode, brush size changes with mouse loc, otherwise it's fixed using the brush radius */ - view3d_unproject(ss->cache->mats, brush_edge, ss->cache->initial_mouse[0] + offset, - ss->cache->initial_mouse[1], ss->cache->depth); + float delta[3]; - return VecLenf(ss->cache->true_location, brush_edge); + initgrabz(vc->rv3d, center[0], center[1], center[2]); + window_to_3d_delta(vc->ar, delta, offset, 0); + return VecLength(delta); } static void sculpt_cache_free(StrokeCache *cache) @@ -1290,15 +1208,17 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte cache->flag = RNA_int_get(op->ptr, "flag"); RNA_float_get_array(op->ptr, "clip_tolerance", cache->clip_tolerance); RNA_float_get_array(op->ptr, "initial_mouse", cache->initial_mouse); - cache->depth = RNA_float_get(op->ptr, "depth"); cache->mouse[0] = cache->initial_mouse[0]; cache->mouse[1] = cache->initial_mouse[1]; /* Truly temporary data that isn't stored in properties */ + cache->vc = vc; + cache->brush = brush; + cache->mats = MEM_callocN(sizeof(bglMats), "sculpt bglMats"); - view3d_get_transformation(vc, vc->obact, cache->mats); + view3d_get_transformation(vc->ar, vc->rv3d, vc->obact, cache->mats); sculpt_update_mesh_elements(C); @@ -1338,14 +1258,14 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte } } - view3d_unproject(cache->mats, cache->true_location, cache->initial_mouse[0], cache->initial_mouse[1], cache->depth); - cache->initial_radius = unproject_brush_radius(ss, brush->size); + //view3d_unproject(cache->mats, cache->true_location, cache->initial_mouse[0], cache->initial_mouse[1], cache->depth); + cache->initial_radius = unproject_brush_radius(vc, cache->true_location, brush->size); cache->rotation = 0; cache->first_time = 1; } /* Initialize the stroke cache variants from operator properties */ -static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, PointerRNA *ptr) +static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct PaintStroke *stroke, PointerRNA *ptr) { StrokeCache *cache = ss->cache; Brush *brush = paint_brush(&sd->paint); @@ -1375,7 +1295,8 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, PointerR dx = cache->mouse[0] - cache->initial_mouse[0]; dy = cache->mouse[1] - cache->initial_mouse[1]; cache->pixel_radius = sqrt(dx*dx + dy*dy); - cache->radius = unproject_brush_radius(ss, cache->pixel_radius); + cache->radius = unproject_brush_radius(paint_stroke_view_context(stroke), + cache->true_location, cache->pixel_radius); cache->rotation = atan2(dy, dx); } else if(brush->flag & BRUSH_RAKE) { @@ -1398,13 +1319,103 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, PointerR /* Find the grab delta */ if(brush->sculpt_tool == SCULPT_TOOL_GRAB) { - view3d_unproject(cache->mats, grab_location, cache->mouse[0], cache->mouse[1], cache->depth); + // XXX: view3d_unproject(cache->mats, grab_location, cache->mouse[0], cache->mouse[1], cache->depth); + initgrabz(cache->vc->rv3d, cache->true_location[0], cache->true_location[1], cache->true_location[2]); + window_to_3d_delta(cache->vc->ar, grab_location, cache->mouse[0], cache->mouse[1]); + if(!cache->first_time) VecSubf(cache->grab_delta, grab_location, cache->old_grab_location); VecCopyf(cache->old_grab_location, grab_location); } } +/* XXX: Code largely copied from bvhutils.c, should be unified */ +/* Returns 1 if a better intersection has been found */ +static int ray_face_intersection(float ray_start[3], float ray_normal[3], + float *t0, float *t1, float *t2, float *t3, + float *fdist) +{ + int hit = 0; + + do + { + float dist = FLT_MAX; + + if(!RayIntersectsTriangle(ray_start, ray_normal, t0, t1, t2, + &dist, NULL)) + dist = FLT_MAX; + + if(dist >= 0 && dist < *fdist) { + hit = 1; + *fdist = dist; + } + + t1 = t2; + t2 = t3; + t3 = NULL; + + } while(t2); + + return hit; +} + +typedef struct { + SculptSession *ss; + float *ray_start, *ray_normal; + int hit; + float dist; +} SculptRaycastData; + +void sculpt_raycast_cb(const int *face_indices, + const int *vert_indices, + int totface, int totvert, void *data_v) +{ + SculptRaycastData *srd = data_v; + MVert *vert = srd->ss->mvert; + int i; + + for(i = 0; i < totface; ++i) { + MFace *f = srd->ss->mface + face_indices[i]; + if(ray_face_intersection(srd->ray_start, srd->ray_normal, + vert[f->v1].co, + vert[f->v2].co, + vert[f->v3].co, + f->v4 ? vert[f->v4].co : NULL, + &srd->dist)) { + srd->hit = face_indices[i]; + } + } +} + +/* Do a raycast in the tree to find the 3d brush location + (This allows us to ignore the GL depth buffer) + Returns 0 if the ray doesn't hit the mesh, non-zero otherwise + */ +int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float out[3], float mouse[2]) +{ + ViewContext *vc = paint_stroke_view_context(stroke); + float ray_start[3], ray_normal[3]; + float mval[2] = {mouse[0] - vc->ar->winrct.xmin, + mouse[1] - vc->ar->winrct.ymin}; + SculptRaycastData srd; + + viewray(vc->ar, vc->v3d, mval, ray_start, ray_normal); + + srd.ss = vc->obact->sculpt; + srd.ray_start = ray_start; + srd.ray_normal = ray_normal; + srd.dist = FLT_MAX; + srd.hit = -1; + BLI_pbvh_raycast(vc->obact->sculpt->tree, sculpt_raycast_cb, &srd, + ray_start, ray_normal); + + VecCopyf(out, ray_normal); + VecMulf(out, srd.dist); + VecAddf(out, out, ray_start); + + return srd.hit != -1; +} + /* Initialize stroke operator properties */ static void sculpt_brush_stroke_init_properties(bContext *C, wmOperator *op, wmEvent *event, SculptSession *ss) { @@ -1442,9 +1453,6 @@ static void sculpt_brush_stroke_init_properties(bContext *C, wmOperator *op, wmE mouse[1] = event->y; RNA_float_set_array(op->ptr, "initial_mouse", mouse); - /* Initial screen depth under the mouse */ - RNA_float_set(op->ptr, "depth", read_cached_depth(paint_stroke_view_context(op->customdata), event->x, event->y)); - sculpt_update_cache_invariants(sd, ss, C, op); } @@ -1467,30 +1475,16 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) { StrokeCache *cache = ss->cache; Brush *brush = paint_brush(&sd->paint); - float *buffer= NULL; int i; /* Restore the mesh before continuing with anchored stroke */ if((brush->flag & BRUSH_ANCHORED) && ss->mesh_co_orig) { - - if(ss->drawobject) - buffer= (float *)GPU_buffer_lock(ss->drawobject->normals); - for(i = 0; i < ss->totvert; ++i) { VecCopyf(ss->mvert[i].co, ss->mesh_co_orig[i]); ss->mvert[i].no[0] = cache->orig_norms[i][0]; ss->mvert[i].no[1] = cache->orig_norms[i][1]; ss->mvert[i].no[2] = cache->orig_norms[i][2]; - if( buffer != 0 ) { - IndexLink *cur = &ss->drawobject->indices[i]; - while( cur != 0 && cur->element != -1 ) { - VECCOPY(&buffer[cur->element*3],cache->orig_norms[i]); - cur = cur->next; - } - } } - if( buffer != 0 ) - GPU_buffer_unlock( ss->drawobject->normals ); if(ss->face_normals) { float *fn = ss->face_normals; @@ -1503,20 +1497,14 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) } } -static void sculpt_post_stroke_free(SculptSession *ss) -{ - BLI_freelistN(&ss->damaged_rects); - BLI_freelistN(&ss->damaged_verts); -} - static void sculpt_flush_update(bContext *C) { Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; ARegion *ar = CTX_wm_region(C); MultiresModifierData *mmd = ss->multires; - - calc_damaged_verts(ss); + rcti r; + int redraw = 0; if(mmd) { if(mmd->undo_verts && mmd->undo_verts != ss->mvert) @@ -1527,23 +1515,46 @@ static void sculpt_flush_update(bContext *C) multires_mark_as_modified(ob); } - ED_region_tag_redraw(ar); + redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r); + + if(!redraw) { + BLI_pbvh_search(ss->tree, BLI_pbvh_update_search_cb, + PBVH_NodeData, NULL, NULL, + PBVH_SEARCH_UPDATE); + + redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), + ob, &r); + } + + if(redraw) { + r.xmin += ar->winrct.xmin + 1; + r.xmax += ar->winrct.xmin - 1; + r.ymin += ar->winrct.ymin + 1; + r.ymax += ar->winrct.ymin - 1; + + ss->partial_redraw = 1; + ED_region_tag_redraw_partial(ar, &r); + } } static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op, wmEvent *event) { - ViewContext vc; - float cur_depth; - - view3d_set_viewcontext(C, &vc); - cur_depth = read_cached_depth(&vc, event->x, event->y); + float mouse[2] = {event->x, event->y}, location[3]; + int over_mesh; - /* Don't start the stroke until a valid depth is found */ - if(cur_depth < 1.0 - FLT_EPSILON) { - SculptSession *ss = CTX_data_active_object(C)->sculpt; + over_mesh = sculpt_stroke_get_location(C, op->customdata, location, mouse); + + /* Don't start the stroke until mouse goes over the mesh */ + if(over_mesh) { + Object *ob = CTX_data_active_object(C); + SculptSession *ss = ob->sculpt; + + if(paint_brush(&CTX_data_tool_settings(C)->sculpt->paint)->sculpt_tool == SCULPT_TOOL_GRAB) + BLI_pbvh_toggle_modified_lock(ss->tree); + + ED_view3d_init_mats_rv3d(ob, CTX_wm_region_view3d(C)); sculpt_brush_stroke_init_properties(C, op, event, ss); - sculptmode_update_all_projverts(ss); return 1; } @@ -1556,13 +1567,12 @@ static void sculpt_stroke_update_step(bContext *C, struct PaintStroke *stroke, P Sculpt *sd = CTX_data_tool_settings(C)->sculpt; SculptSession *ss = CTX_data_active_object(C)->sculpt; - sculpt_update_cache_variants(sd, ss, itemptr); + sculpt_update_cache_variants(sd, ss, stroke, itemptr); sculpt_restore_mesh(sd, ss); do_symmetrical_brush_actions(sd, ss); /* Cleanup */ sculpt_flush_update(C); - sculpt_post_stroke_free(ss); } static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke) @@ -1571,9 +1581,11 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke) /* Finished */ if(ss->cache) { - Sculpt *sd = CTX_data_tool_settings(C)->sculpt; + Sculpt *sd = CTX_data_tool_settings(C)->sculpt; + + if(paint_brush(&CTX_data_tool_settings(C)->sculpt->paint)->sculpt_tool == SCULPT_TOOL_GRAB) + BLI_pbvh_toggle_modified_lock(ss->tree); - request_depth_update(paint_stroke_view_context(stroke)->rv3d); sculpt_cache_free(ss->cache); ss->cache = NULL; sculpt_undo_push(C, sd); @@ -1584,7 +1596,8 @@ static int sculpt_brush_stroke_invoke(bContext *C, wmOperator *op, wmEvent *even { sculpt_brush_stroke_init(C); - op->customdata = paint_stroke_new(C, sculpt_stroke_test_start, + op->customdata = paint_stroke_new(C, sculpt_stroke_get_location, + sculpt_stroke_test_start, sculpt_stroke_update_step, sculpt_stroke_done); @@ -1601,12 +1614,12 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op) Sculpt *sd = CTX_data_tool_settings(C)->sculpt; SculptSession *ss = CTX_data_active_object(C)->sculpt; - op->customdata = paint_stroke_new(C, sculpt_stroke_test_start, sculpt_stroke_update_step, sculpt_stroke_done); + op->customdata = paint_stroke_new(C, sculpt_stroke_get_location, sculpt_stroke_test_start, + sculpt_stroke_update_step, sculpt_stroke_done); sculpt_brush_stroke_init(C); sculpt_update_cache_invariants(sd, ss, C, op); - sculptmode_update_all_projverts(ss); paint_stroke_exec(C, op); @@ -1649,9 +1662,6 @@ static void SCULPT_OT_brush_stroke(wmOperatorType *ot) /* The initial 2D location of the mouse */ RNA_def_float_vector(ot->srna, "initial_mouse", 2, NULL, INT_MIN, INT_MAX, "initial_mouse", "", INT_MIN, INT_MAX); - - /* The initial screen depth of the mouse */ - RNA_def_float(ot->srna, "depth", 0.0f, 0.0f, FLT_MAX, "depth", "", 0.0f, FLT_MAX); } /**** Reset the copy of the mesh that is being sculpted on (currently just for the layer brush) ****/ @@ -1688,6 +1698,13 @@ static void SCULPT_OT_set_persistent_base(wmOperatorType *ot) /**** Toggle operator for turning sculpt mode on or off ****/ +static void sculpt_init_session(bContext *C, Object *ob) +{ + ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session"); + + sculpt_update_mesh_elements(C); +} + static int sculpt_toggle_mode(bContext *C, wmOperator *op) { ToolSettings *ts = CTX_data_tool_settings(C); @@ -1713,7 +1730,8 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *op) /* Create sculpt mode session data */ if(ob->sculpt) free_sculptsession(&ob->sculpt); - ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session"); + + sculpt_init_session(C, ob); paint_init(&ts->sculpt->paint, PAINT_CURSOR_SCULPT); diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 22fd77afd88..5d7e5932bd8 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -107,6 +107,7 @@ #include "ED_mesh.h" #include "ED_particle.h" #include "ED_screen.h" +#include "ED_sculpt.h" #include "ED_types.h" #include "ED_util.h" @@ -2691,7 +2692,7 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm) drawFacesSolid() doesn't draw the transparent faces */ if(ob->dtx & OB_DRAWTRANSP) { glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - dm->drawFacesSolid(dm, GPU_enable_material); + dm->drawFacesSolid(dm, NULL, NULL, GPU_enable_material); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); GPU_disable_material(); } @@ -2710,7 +2711,7 @@ static int wpaint__setSolidDrawOptions(void *userData, int index, int *drawSmoot return 1; } -static void draw_mesh_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, int dt, int flag) +static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base, int dt, int flag) { Object *ob= base->object; Mesh *me = ob->data; @@ -2783,7 +2784,7 @@ static void draw_mesh_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base } } else if(dt==OB_SOLID) { - if((v3d->flag&V3D_SELECT_OUTLINE) && (base->flag&SELECT) && !draw_wire) + if((v3d->flag&V3D_SELECT_OUTLINE) && (base->flag&SELECT) && !draw_wire && !ob->sculpt) draw_mesh_object_outline(v3d, ob, dm); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, me->flag & ME_TWOSIDED ); @@ -2791,7 +2792,21 @@ static void draw_mesh_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base glEnable(GL_LIGHTING); glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW); - dm->drawFacesSolid(dm, GPU_enable_material); + if(ob->sculpt) { + float planes[4][4]; + float (*fpl)[4] = NULL; + + if(ob->sculpt->partial_redraw) { + sculpt_get_redraw_planes(planes, ar, rv3d, ob); + fpl = planes; + ob->sculpt->partial_redraw = 0; + } + + dm->drawFacesSolid(dm, ob->sculpt->tree, fpl, GPU_enable_material); + } + else + dm->drawFacesSolid(dm, NULL, NULL, GPU_enable_material); + GPU_disable_material(); glFrontFace(GL_CCW); @@ -2802,7 +2817,8 @@ static void draw_mesh_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base } else { UI_ThemeColor(TH_WIRE); } - dm->drawLooseEdges(dm); + if(!ob->sculpt) + dm->drawLooseEdges(dm); } else if(dt==OB_SHADED) { int do_draw= 1; /* to resolve all G.f settings below... */ @@ -2920,7 +2936,7 @@ static void draw_mesh_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base } /* returns 1 if nothing was drawn, for detecting to draw an object center */ -static int draw_mesh_object(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, int dt, int flag) +static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base, int dt, int flag) { Object *ob= base->object; Object *obedit= scene->obedit; @@ -2970,7 +2986,7 @@ static int draw_mesh_object(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base (check_alpha)? &do_alpha_pass: NULL); } - draw_mesh_fancy(scene, v3d, rv3d, base, dt, flag); + draw_mesh_fancy(scene, ar, v3d, rv3d, base, dt, flag); GPU_end_object_materials(); @@ -5566,7 +5582,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) switch( ob->type) { case OB_MESH: - empty_object= draw_mesh_object(scene, v3d, rv3d, base, dt, flag); + empty_object= draw_mesh_object(scene, ar, v3d, rv3d, base, dt, flag); if(flag!=DRAW_CONSTCOLOR) dtx &= ~OB_DRAWWIRE; // mesh draws wire itself break; @@ -6260,7 +6276,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r glEnable(GL_LIGHTING); if(dm) { - dm->drawFacesSolid(dm, GPU_enable_material); + dm->drawFacesSolid(dm, NULL, NULL, GPU_enable_material); GPU_end_object_materials(); } else if(edm) diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 15e41a66981..05de5ce1169 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1642,37 +1642,6 @@ void view3d_update_depths(ARegion *ar, View3D *v3d) } } -/* Enable sculpting in wireframe mode by drawing sculpt object only to the depth buffer */ -static void draw_sculpt_depths(Scene *scene, ARegion *ar, View3D *v3d) -{ - Object *ob = OBACT; - - int dt= MIN2(v3d->drawtype, ob->dt); - if(v3d->zbuf==0 && dt>OB_WIRE) - dt= OB_WIRE; - if(dt == OB_WIRE) { - GLboolean depth_on; - int orig_vdt = v3d->drawtype; - int orig_zbuf = v3d->zbuf; - int orig_odt = ob->dt; - - glGetBooleanv(GL_DEPTH_TEST, &depth_on); - v3d->drawtype = ob->dt = OB_SOLID; - v3d->zbuf = 1; - - glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); - glEnable(GL_DEPTH_TEST); - draw_object(scene, ar, v3d, BASACT, 0); - glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - if(!depth_on) - glDisable(GL_DEPTH_TEST); - - v3d->drawtype = orig_vdt; - v3d->zbuf = orig_zbuf; - ob->dt = orig_odt; - } -} - void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *)) { RegionView3D *rv3d= ar->regiondata; @@ -2038,7 +2007,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) } // retopo= retopo_mesh_check() || retopo_curve_check(); - sculptparticle= (obact && obact->mode & (OB_MODE_SCULPT|OB_MODE_PARTICLE_EDIT)) && !scene->obedit; + sculptparticle= (obact && obact->mode & (OB_MODE_PARTICLE_EDIT)) && !scene->obedit; if(retopo) view3d_update_depths(ar, v3d); @@ -2051,8 +2020,6 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) } if(!retopo && sculptparticle && !(obact && (obact->dtx & OB_DRAWXRAY))) { - if(obact && obact->mode & OB_MODE_SCULPT) - draw_sculpt_depths(scene, ar, v3d); view3d_update_depths(ar, v3d); } @@ -2067,8 +2034,6 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) view3d_draw_xray(scene, ar, v3d, 1); // clears zbuffer if it is used! if(!retopo && sculptparticle && (obact && (OBACT->dtx & OB_DRAWXRAY))) { - if(obact && obact->mode & OB_MODE_SCULPT) - draw_sculpt_depths(scene, ar, v3d); view3d_update_depths(ar, v3d); } @@ -2090,8 +2055,6 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) ED_region_pixelspace(ar); - /* Draw Sculpt Mode brush XXX (removed) */ - // retopo_paint_view_update(v3d); // retopo_draw_paint_lines(); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 51f257da432..45aa2434897 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1802,12 +1802,9 @@ void VIEW3D_OT_view_persportho(wmOperatorType *ot) static int view3d_clipping_exec(bContext *C, wmOperator *op) { RegionView3D *rv3d= CTX_wm_region_view3d(C); + ViewContext vc; + bglMats mats; rcti rect; - double mvmatrix[16]; - double projmatrix[16]; - double xs, ys, p[3]; - GLint viewport[4]; - short val; rect.xmin= RNA_int_get(op->ptr, "xmin"); rect.ymin= RNA_int_get(op->ptr, "ymin"); @@ -1820,44 +1817,10 @@ static int view3d_clipping_exec(bContext *C, wmOperator *op) /* note; otherwise opengl won't work */ view3d_operator_needs_opengl(C); - /* Get the matrices needed for gluUnProject */ - glGetIntegerv(GL_VIEWPORT, viewport); - glGetDoublev(GL_MODELVIEW_MATRIX, mvmatrix); - glGetDoublev(GL_PROJECTION_MATRIX, projmatrix); - - /* near zero floating point values can give issues with gluUnProject - in side view on some implementations */ - if(fabs(mvmatrix[0]) < 1e-6) mvmatrix[0]= 0.0; - if(fabs(mvmatrix[5]) < 1e-6) mvmatrix[5]= 0.0; - - /* Set up viewport so that gluUnProject will give correct values */ - viewport[0] = 0; - viewport[1] = 0; - - /* four clipping planes and bounding volume */ - /* first do the bounding volume */ - for(val=0; val<4; val++) { - - xs= (val==0||val==3)?rect.xmin:rect.xmax; - ys= (val==0||val==1)?rect.ymin:rect.ymax; - - gluUnProject(xs, ys, 0.0, mvmatrix, projmatrix, viewport, &p[0], &p[1], &p[2]); - VECCOPY(rv3d->clipbb->vec[val], p); + view3d_set_viewcontext(C, &vc); + view3d_get_transformation(vc.ar, vc.rv3d, vc.obact, &mats); + view3d_calculate_clipping(rv3d->clipbb, rv3d->clip, &mats, &rect); - gluUnProject(xs, ys, 1.0, mvmatrix, projmatrix, viewport, &p[0], &p[1], &p[2]); - VECCOPY(rv3d->clipbb->vec[4+val], p); - } - - /* then plane equations */ - for(val=0; val<4; val++) { - - CalcNormFloat(rv3d->clipbb->vec[val], rv3d->clipbb->vec[val==3?0:val+1], rv3d->clipbb->vec[val+4], - rv3d->clip[val]); - - rv3d->clip[val][3]= - rv3d->clip[val][0]*rv3d->clipbb->vec[val][0] - - rv3d->clip[val][1]*rv3d->clipbb->vec[val][1] - - rv3d->clip[val][2]*rv3d->clipbb->vec[val][2]; - } return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index b13d83c0157..1f7d50e00ed 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -124,24 +124,24 @@ void view3d_get_view_aligned_coordinate(ViewContext *vc, float *fp, short mval[2 } } -void view3d_get_transformation(ViewContext *vc, Object *ob, bglMats *mats) +void view3d_get_transformation(ARegion *ar, RegionView3D *rv3d, Object *ob, bglMats *mats) { float cpy[4][4]; int i, j; - Mat4MulMat4(cpy, ob->obmat, vc->rv3d->viewmat); + Mat4MulMat4(cpy, ob->obmat, rv3d->viewmat); for(i = 0; i < 4; ++i) { for(j = 0; j < 4; ++j) { - mats->projection[i*4+j] = vc->rv3d->winmat[i][j]; + mats->projection[i*4+j] = rv3d->winmat[i][j]; mats->modelview[i*4+j] = cpy[i][j]; } } - mats->viewport[0] = vc->ar->winrct.xmin; - mats->viewport[1] = vc->ar->winrct.ymin; - mats->viewport[2] = vc->ar->winx; - mats->viewport[3] = vc->ar->winy; + mats->viewport[0] = ar->winrct.xmin; + mats->viewport[1] = ar->winrct.ymin; + mats->viewport[2] = ar->winx; + mats->viewport[3] = ar->winy; } /* ********************** view3d_select: selection manipulations ********************* */ diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 12654bdac14..77833ceb5c5 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -481,6 +481,45 @@ void VIEW3D_OT_setobjectascamera(wmOperatorType *ot) } /* ********************************** */ +void view3d_calculate_clipping(BoundBox *bb, float planes[4][4], bglMats *mats, rcti *rect) +{ + double xs, ys, p[3]; + short val; + + /* near zero floating point values can give issues with gluUnProject + in side view on some implementations */ + if(fabs(mats->modelview[0]) < 1e-6) mats->modelview[0]= 0.0; + if(fabs(mats->modelview[5]) < 1e-6) mats->modelview[5]= 0.0; + + /* Set up viewport so that gluUnProject will give correct values */ + mats->viewport[0] = 0; + mats->viewport[1] = 0; + + /* four clipping planes and bounding volume */ + /* first do the bounding volume */ + for(val=0; val<4; val++) { + xs= (val==0||val==3)?rect->xmin:rect->xmax; + ys= (val==0||val==1)?rect->ymin:rect->ymax; + + gluUnProject(xs, ys, 0.0, mats->modelview, mats->projection, mats->viewport, &p[0], &p[1], &p[2]); + VECCOPY(bb->vec[val], p); + + gluUnProject(xs, ys, 1.0, mats->modelview, mats->projection, mats->viewport, &p[0], &p[1], &p[2]); + VECCOPY(bb->vec[4+val], p); + } + + /* then plane equations */ + for(val=0; val<4; val++) { + + CalcNormFloat(bb->vec[val], bb->vec[val==3?0:val+1], bb->vec[val+4], + planes[val]); + + planes[val][3]= - planes[val][0]*bb->vec[val][0] + - planes[val][1]*bb->vec[val][1] + - planes[val][2]*bb->vec[val][2]; + } +} + /* create intersection coordinates in view Z direction at mouse coordinates */ void viewline(ARegion *ar, View3D *v3d, float mval[2], float ray_start[3], float ray_end[3]) { diff --git a/source/blender/gpu/gpu_buffers.h b/source/blender/gpu/gpu_buffers.h index 662912f9c19..eceb0cdeca4 100644 --- a/source/blender/gpu/gpu_buffers.h +++ b/source/blender/gpu/gpu_buffers.h @@ -43,6 +43,7 @@ #endif struct DerivedMesh; +struct GHash; /* V - vertex, N - normal, T - uv, C - color F - float, UB - unsigned byte */ @@ -124,6 +125,16 @@ void GPU_buffer_free( GPUBuffer *buffer, GPUBufferPool *pool ); GPUDrawObject *GPU_drawobject_new( struct DerivedMesh *dm ); void GPU_drawobject_free( struct DerivedMesh *dm ); +/* Buffers for non-DerivedMesh drawing */ +void *GPU_build_buffers(struct GHash *map, struct MVert *mvert, + struct MFace *mface, int *face_indices, + int totface, int *vert_indices, int uniq_verts, + int totvert); +void GPU_draw_buffers(void *buffers); +void GPU_update_buffers(void *buffers, struct MVert *mvert, + int *vert_indices, int totvert); +void GPU_free_buffers(void *buffers); + /* called before drawing */ void GPU_vertex_setup( struct DerivedMesh *dm ); void GPU_normal_setup( struct DerivedMesh *dm ); diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 9e164f46e4c..14f2c1b6d5b 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -37,6 +37,7 @@ #include "MEM_guardedalloc.h" #include "BLI_arithb.h" +#include "BLI_ghash.h" #include "DNA_meshdata_types.h" @@ -376,6 +377,156 @@ void GPU_drawobject_free( DerivedMesh *dm ) dm->drawObject = 0; } +/* Convenience struct for building the VBO. + TODO: check that (lack-of) padding is OK, + also check performance of short vs float for normals */ +typedef struct { + float co[3]; + short no[3]; + + char pad[14]; +} VertexBufferFormat; + +typedef struct { + unsigned int vert_buf, tri_buf; + unsigned short tot_tri; +} GPU_Buffers; + +void GPU_update_buffers2(void *buffers_v, MVert *mvert, + int *vert_indices, int totvert) +{ + GPU_Buffers *buffers = buffers_v; + VertexBufferFormat *vert_data; + int i; + + vert_data = MEM_callocN(sizeof(VertexBufferFormat) * totvert, "bad"); + + for(i = 0; i < totvert; ++i) { + MVert *v = mvert + vert_indices[i]; + VertexBufferFormat *out = vert_data + i; + + VecCopyf(out->co, v->co); + memcpy(out->no, v->no, sizeof(short) * 3); + } + + glBindBuffer(GL_ARRAY_BUFFER, buffers->vert_buf); + glBufferData(GL_ARRAY_BUFFER, + sizeof(VertexBufferFormat) * totvert, + vert_data, GL_STATIC_DRAW); + + MEM_freeN(vert_data); +} + +void GPU_update_buffers(void *buffers_v, MVert *mvert, + int *vert_indices, int totvert) +{ + GPU_Buffers *buffers = buffers_v; + VertexBufferFormat *vert_data; + int i; + + /* Build VBO */ + glBindBuffer(GL_ARRAY_BUFFER, buffers->vert_buf); + glBufferData(GL_ARRAY_BUFFER, + sizeof(VertexBufferFormat) * totvert, + NULL, GL_STATIC_DRAW); + vert_data = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); + + for(i = 0; i < totvert; ++i) { + MVert *v = mvert + vert_indices[i]; + VertexBufferFormat *out = vert_data + i; + + VecCopyf(out->co, v->co); + memcpy(out->no, v->no, sizeof(short) * 3); + } + glUnmapBuffer(GL_ARRAY_BUFFER); + + //printf("node updated %p\n", buffers_v); +} + +void *GPU_build_buffers(GHash *map, MVert *mvert, MFace *mface, + int *face_indices, int totface, + int *vert_indices, int tot_uniq_verts, + int totvert) +{ + GPU_Buffers *buffers; + unsigned short *tri_data; + int i, j, k, tottri; + + buffers = MEM_callocN(sizeof(GPU_Buffers), "GPU_Buffers"); + + /* Count the number of triangles */ + for(i = 0, tottri = 0; i < totface; ++i) + tottri += mface[face_indices[i]].v4 ? 2 : 1; + + /* Generate index buffer object */ + glGenBuffers(1, &buffers->tri_buf); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffers->tri_buf); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, + sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW); + + /* Fill the triangle buffer */ + tri_data = glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_WRITE_ONLY); + for(i = 0; i < totface; ++i) { + MFace *f = mface + face_indices[i]; + int v[3] = {f->v1, f->v2, f->v3}; + + for(j = 0; j < (f->v4 ? 2 : 1); ++j) { + for(k = 0; k < 3; ++k) { + void *value, *key = SET_INT_IN_POINTER(v[k]); + int vbo_index; + + value = BLI_ghash_lookup(map, key); + vbo_index = GET_INT_FROM_POINTER(value); + + if(vbo_index < 0) { + vbo_index = -vbo_index + + tot_uniq_verts - 1; + } + + *tri_data = vbo_index; + ++tri_data; + } + v[0] = f->v4; + v[1] = f->v1; + v[2] = f->v3; + } + } + glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); + + /* Build VBO */ + glGenBuffers(1, &buffers->vert_buf); + GPU_update_buffers(buffers, mvert, vert_indices, totvert); + + buffers->tot_tri = tottri; + + return buffers; +} + +void GPU_draw_buffers(void *buffers_v) +{ + GPU_Buffers *buffers = buffers_v; + + glBindBuffer(GL_ARRAY_BUFFER, buffers->vert_buf); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffers->tri_buf); + + glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat), 0); + glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat), (void*)12); + + glDrawElements(GL_TRIANGLES, buffers->tot_tri * 3, GL_UNSIGNED_SHORT, 0); +} + +void GPU_free_buffers(void *buffers_v) +{ + if(buffers_v) { + GPU_Buffers *buffers = buffers_v; + + glDeleteBuffers(1, &buffers->vert_buf); + glDeleteBuffers(1, &buffers->tri_buf); + + MEM_freeN(buffers); + } +} + GPUBuffer *GPU_buffer_setup( DerivedMesh *dm, GPUDrawObject *object, int size, GLenum target, void *user, void (*copy_f)(DerivedMesh *, float *, int *, int *, void *) ) { GPUBuffer *buffer; -- cgit v1.2.3 From 243c73e96e18c126227d43728e2d3639c9f7ee41 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Wed, 28 Oct 2009 06:06:05 +0000 Subject: Moved the PBVH from sculpt session to DerivedMesh/CDDM. * Multires sculpting appears to work now * PBVH gets recalculated in some cases where it shouldn't, haven't looked into this yet --- source/blender/blenkernel/BKE_DerivedMesh.h | 13 ++- source/blender/blenkernel/BKE_paint.h | 4 +- source/blender/blenkernel/intern/cdderivedmesh.c | 107 +++++++++++++++++++++-- source/blender/blenkernel/intern/object.c | 11 --- source/blender/blenkernel/intern/subsurf_ccg.c | 2 +- source/blender/editors/sculpt_paint/sculpt.c | 67 +------------- source/blender/editors/space_view3d/drawobject.c | 8 +- 7 files changed, 122 insertions(+), 90 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 75d9ae7f360..d9b0c4bc357 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -59,6 +59,8 @@ struct MCol; struct ColorBand; struct GPUVertexAttribs; struct GPUDrawObject; +struct ListBase; +struct PBVH; /* number of sub-elements each mesh element has (for interpolation) */ #define SUB_ELEMS_VERT 0 @@ -73,6 +75,7 @@ struct DerivedMesh { int needsFree; /* checked on ->release, is set to 0 for cached results */ int deformedOnly; /* set by modifier stack if only deformed from original */ BVHCache bvhCache; + struct GPUDrawObject *drawObject; /* Misc. Queries */ @@ -180,6 +183,14 @@ struct DerivedMesh { /* Get vertex normal, undefined if index is not valid */ void (*getVertNo)(DerivedMesh *dm, int index, float no_r[3]); + /* Get a map of vertices to faces + */ + struct ListBase *(*getFaceMap)(DerivedMesh *dm); + + /* Get the BVH used for paint modes + */ + struct PBVH *(*getPBVH)(DerivedMesh *dm); + /* Drawing Operations */ /* Draw all vertices as bgl points (no options) */ @@ -204,7 +215,7 @@ struct DerivedMesh { * * Also called for *final* editmode DerivedMeshes */ - void (*drawFacesSolid)(DerivedMesh *dm, void *tree, float (*partial_redraw_planes)[4], + void (*drawFacesSolid)(DerivedMesh *dm, float (*partial_redraw_planes)[4], int (*setMaterial)(int, void *attribs)); /* Draw all faces diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index 558659b520f..5bca174628d 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -69,17 +69,15 @@ typedef struct SculptSession { struct MFace *mface; int totvert, totface; float *face_normals; + struct PBVH *tree; /* Mesh connectivity */ struct ListBase *fmap; - struct IndexNode *fmap_mem; - int fmap_size; /* Used temporarily per-stroke */ float *vertexcosnos; /* Partial redraw */ - struct PBVH *tree; int partial_redraw; /* Used to cache the render of the active texture */ diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 6ae1057767d..66e09022ff5 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -77,6 +77,12 @@ typedef struct { MVert *mvert; MEdge *medge; MFace *mface; + + /* Cached */ + struct PBVH *pbvh; + /* Mesh connectivity */ + struct ListBase *fmap; + struct IndexNode *fmap_mem; } CDDerivedMesh; /**************** DerivedMesh interface functions ****************/ @@ -171,6 +177,82 @@ static void cdDM_getVertNo(DerivedMesh *dm, int index, float no_r[3]) no_r[2] = no[2]/32767.f; } +/* Updates all the face and vertex normals in a node + + Note: the correctness of some vertex normals will be a little + off, not sure if this will be noticeable or not */ +static void update_node_normals(const int *face_indices, + const int *vert_indices, + int totface, int totvert, void *data) +{ + DerivedMesh *dm = data; + CDDerivedMesh *cddm = data; + float (*face_nors)[3]; + int i; + + /* make a face normal layer if not present */ + face_nors = CustomData_get_layer(&dm->faceData, CD_NORMAL); + if(!face_nors) + face_nors = CustomData_add_layer(&dm->faceData, CD_NORMAL, CD_CALLOC, + NULL, dm->numFaceData); + + /* Update face normals */ + for(i = 0; i < totface; ++i) { + MFace *f = cddm->mface + face_indices[i]; + float *fn = face_nors[face_indices[i]]; + + if(f->v4) + CalcNormFloat4(cddm->mvert[f->v1].co, cddm->mvert[f->v2].co, + cddm->mvert[f->v3].co, cddm->mvert[f->v4].co, fn); + else + CalcNormFloat(cddm->mvert[f->v1].co, cddm->mvert[f->v2].co, + cddm->mvert[f->v3].co, fn); + } + + /* Update vertex normals */ + for(i = 0; i < totvert; ++i) { + const int v = vert_indices[i]; + float no[3] = {0,0,0}; + IndexNode *face; + + for(face = cddm->fmap[v].first; face; face = face->next) + VecAddf(no, no, face_nors[face->index]); + + Normalize(no); + + cddm->mvert[v].no[0] = no[0] * 32767; + cddm->mvert[v].no[1] = no[1] * 32767; + cddm->mvert[v].no[2] = no[2] * 32767; + } +} + +static ListBase *cdDM_getFaceMap(DerivedMesh *dm) +{ + CDDerivedMesh *cddm = (CDDerivedMesh*) dm; + + if(!cddm->fmap) { + create_vert_face_map(&cddm->fmap, &cddm->fmap_mem, cddm->mface, + dm->getNumVerts(dm), dm->getNumFaces(dm)); + printf("rebuild fmap\n"); + } + + return cddm->fmap; +} + +static struct PBVH *cdDM_getPBVH(DerivedMesh *dm) +{ + CDDerivedMesh *cddm = (CDDerivedMesh*) dm; + + if(!cddm->pbvh) { + cddm->pbvh = BLI_pbvh_new(update_node_normals, cddm); + BLI_pbvh_build(cddm->pbvh, cddm->mface, cddm->mvert, + dm->getNumFaces(dm), dm->getNumVerts(dm)); + printf("rebuild pbvh\n"); + } + + return cddm->pbvh; +} + static void cdDM_drawVerts(DerivedMesh *dm) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; @@ -419,7 +501,7 @@ int planes_contain_AABB(float bb_min[3], float bb_max[3], void *data) return 1; } -static void cdDM_drawFacesSolid(DerivedMesh *dm, void *tree, +static void cdDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes)[4], int (*setMaterial)(int, void *attribs)) { @@ -437,19 +519,19 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, void *tree, glVertex3fv(mvert[index].co); \ } - if(tree) { - BLI_pbvh_search(tree, BLI_pbvh_update_search_cb, + if(cddm->pbvh) { + BLI_pbvh_search(cddm->pbvh, BLI_pbvh_update_search_cb, PBVH_NodeData, NULL, NULL, PBVH_SEARCH_UPDATE); if(partial_redraw_planes) { - BLI_pbvh_search(tree, planes_contain_AABB, + BLI_pbvh_search(cddm->pbvh, planes_contain_AABB, partial_redraw_planes, draw_partial_cb, PBVH_DrawData, PBVH_SEARCH_MODIFIED); } else { - BLI_pbvh_search(tree, find_all, NULL, + BLI_pbvh_search(cddm->pbvh, find_all, NULL, draw_partial_cb, PBVH_DrawData, PBVH_SEARCH_NORMAL); @@ -1376,12 +1458,21 @@ static void cdDM_foreachMappedFaceCenter( } } +static void cdDM_free_internal(CDDerivedMesh *cddm) +{ + if(cddm->pbvh) BLI_pbvh_free(cddm->pbvh); + if(cddm->fmap) MEM_freeN(cddm->fmap); + if(cddm->fmap_mem) MEM_freeN(cddm->fmap_mem); +} + static void cdDM_release(DerivedMesh *dm) { CDDerivedMesh *cddm = (CDDerivedMesh*)dm; - if (DM_release(dm)) + if (DM_release(dm)) { + cdDM_free_internal(cddm); MEM_freeN(cddm); + } } /**************** CDDM interface functions ****************/ @@ -1416,6 +1507,9 @@ static CDDerivedMesh *cdDM_create(const char *desc) dm->getVertCo = cdDM_getVertCo; dm->getVertNo = cdDM_getVertNo; + dm->getPBVH = cdDM_getPBVH; + dm->getFaceMap = cdDM_getFaceMap; + dm->drawVerts = cdDM_drawVerts; dm->drawUVEdges = cdDM_drawUVEdges; @@ -1901,6 +1995,7 @@ static void MultiresDM_release(DerivedMesh *dm) } if(DM_release(dm)) { + cdDM_free_internal(&mrdm->cddm); MEM_freeN(mrdm->subco); MEM_freeN(mrdm->orco); if(mrdm->vert_face_map) diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 5c3419fb488..c1b9634e5ec 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -72,8 +72,6 @@ #include "BLI_blenlib.h" #include "BLI_arithb.h" #include "BLI_editVert.h" -#include "BLI_ghash.h" -#include "BLI_pbvh.h" #include "BKE_utildefines.h" @@ -231,12 +229,6 @@ void free_sculptsession(SculptSession **ssp) if(ssp && *ssp) { SculptSession *ss = *ssp; - if(ss->fmap) - MEM_freeN(ss->fmap); - - if(ss->fmap_mem) - MEM_freeN(ss->fmap_mem); - if(ss->texcache) MEM_freeN(ss->texcache); @@ -246,9 +238,6 @@ void free_sculptsession(SculptSession **ssp) if(ss->mesh_co_orig) MEM_freeN(ss->mesh_co_orig); - if(ss->tree) - BLI_pbvh_free(ss->tree); - if(ss->face_normals) MEM_freeN(ss->face_normals); diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 7c83431ebd8..1482bd75ff2 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1615,7 +1615,7 @@ static void ccgDM_glNormalFast(float *a, float *b, float *c, float *d) } /* Only used by non-editmesh types */ -static void ccgDM_drawFacesSolid(DerivedMesh *dm, void *tree, float (*partial_redraw_planes)[4], int (*setMaterial)(int, void *attribs)) { +static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes)[4], int (*setMaterial)(int, void *attribs)) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; CCGSubSurf *ss = ccgdm->ss; CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss); diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index b4b002283fd..28ca5d2fecf 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -193,57 +193,6 @@ static void projectf(bglMats *mats, const float v[3], float p[2]) /*** BVH Tree ***/ -/* Updates all the face and vertex normals in a node - - Note: the correctness of some vertex normals will be a little - off, not sure if this will be noticeable or not */ -static void sculpt_update_normals(const int *face_indices, - const int *vert_indices, - int totface, int totvert, void *data) -{ - SculptSession *ss = data; - int i; - - /* Update face normals */ - for(i = 0; i < totface; ++i) { - MFace *f = ss->mface + face_indices[i]; - float *fn = ss->face_normals + face_indices[i] * 3; - - if(f->v4) - CalcNormFloat4(ss->mvert[f->v1].co, ss->mvert[f->v2].co, - ss->mvert[f->v3].co, ss->mvert[f->v4].co, fn); - else - CalcNormFloat(ss->mvert[f->v1].co, ss->mvert[f->v2].co, - ss->mvert[f->v3].co, fn); - } - - /* Update vertex normals */ - for(i = 0; i < totvert; ++i) { - const int v = vert_indices[i]; - float no[3] = {0,0,0}; - IndexNode *face; - - for(face = ss->fmap[v].first; face; face = face->next) - VecAddf(no, no, ss->face_normals + face->index*3); - - Normalize(no); - - ss->mvert[v].no[0] = no[0] * 32767; - ss->mvert[v].no[1] = no[1] * 32767; - ss->mvert[v].no[2] = no[2] * 32767; - } -} - -static void sculpt_rebuild_tree(SculptSession *ss) -{ - if(ss->tree) - BLI_pbvh_free(ss->tree); - - ss->tree = BLI_pbvh_new(sculpt_update_normals, ss); - BLI_pbvh_build(ss->tree, ss->mface, ss->mvert, ss->totface, - ss->totvert); -} - /* Get a screen-space rectangle of the modified area */ int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d, Object *ob, rcti *rect) @@ -1054,11 +1003,10 @@ static struct MultiresModifierData *sculpt_multires_active(Object *ob) static void sculpt_update_mesh_elements(bContext *C) { Object *ob = CTX_data_active_object(C); + DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, CD_MASK_BAREMESH); SculptSession *ss = ob->sculpt; - int oldtotvert = ss->totvert; if((ss->multires = sculpt_multires_active(ob))) { - DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, CD_MASK_BAREMESH); ss->totvert = dm->getNumVerts(dm); ss->totface = dm->getNumFaces(dm); ss->mvert = dm->getVertDataArray(dm, CD_MVERT); @@ -1075,17 +1023,8 @@ static void sculpt_update_mesh_elements(bContext *C) ss->face_normals = MEM_callocN(sizeof(float) * 3 * me->totface, "sculpt face normals"); } - if(ss->tree) - BLI_pbvh_set_source(ss->tree, ss->mvert, ss->mface); - - if(ss->totvert != oldtotvert) { - if(ss->fmap) MEM_freeN(ss->fmap); - if(ss->fmap_mem) MEM_freeN(ss->fmap_mem); - create_vert_face_map(&ss->fmap, &ss->fmap_mem, ss->mface, ss->totvert, ss->totface); - ss->fmap_size = ss->totvert; - - sculpt_rebuild_tree(ss); - } + ss->tree = dm->getPBVH(dm); + ss->fmap = dm->getFaceMap(dm); } static int sculpt_mode_poll(bContext *C) diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 5d7e5932bd8..f7dba10200a 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2692,7 +2692,7 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm) drawFacesSolid() doesn't draw the transparent faces */ if(ob->dtx & OB_DRAWTRANSP) { glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - dm->drawFacesSolid(dm, NULL, NULL, GPU_enable_material); + dm->drawFacesSolid(dm, NULL, GPU_enable_material); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); GPU_disable_material(); } @@ -2802,10 +2802,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D ob->sculpt->partial_redraw = 0; } - dm->drawFacesSolid(dm, ob->sculpt->tree, fpl, GPU_enable_material); + dm->drawFacesSolid(dm, fpl, GPU_enable_material); } else - dm->drawFacesSolid(dm, NULL, NULL, GPU_enable_material); + dm->drawFacesSolid(dm, NULL, GPU_enable_material); GPU_disable_material(); @@ -6276,7 +6276,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r glEnable(GL_LIGHTING); if(dm) { - dm->drawFacesSolid(dm, NULL, NULL, GPU_enable_material); + dm->drawFacesSolid(dm, NULL, GPU_enable_material); GPU_end_object_materials(); } else if(edm) -- cgit v1.2.3 From 7ce5c951c5bb3607cac2bc603ed9a1fbcc5299dd Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Wed, 28 Oct 2009 07:15:01 +0000 Subject: Avoid an unecessary rebuild of the pbvh. --- source/blender/editors/sculpt_paint/sculpt.c | 4 +++- source/blender/editors/space_view3d/view3d_draw.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 28ca5d2fecf..74762379202 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1003,7 +1003,9 @@ static struct MultiresModifierData *sculpt_multires_active(Object *ob) static void sculpt_update_mesh_elements(bContext *C) { Object *ob = CTX_data_active_object(C); - DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, CD_MASK_BAREMESH); + DerivedMesh *dm = + mesh_get_derived_final(CTX_data_scene(C), ob, + CTX_wm_view3d(C)->customdata_mask); SculptSession *ss = ob->sculpt; if((ss->multires = sculpt_multires_active(ob))) { diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 05de5ce1169..202f7634584 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1859,8 +1859,8 @@ static CustomDataMask get_viewedit_datamask(bScreen *screen, Scene *scene, Objec mask |= CD_MASK_MCOL; if(ob->mode & OB_MODE_WEIGHT_PAINT) mask |= CD_MASK_WEIGHT_MCOL; - if(ob->mode & OB_MODE_SCULPT) - mask |= CD_MASK_MDISPS; + //if(ob->mode & OB_MODE_SCULPT) + // mask |= CD_MASK_MDISPS; } return mask; -- cgit v1.2.3 From 00d5fd9cb780bb7de0b23f94ec80971d6f8c7646 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 29 Oct 2009 11:12:59 +0000 Subject: Sculpt: fix first partial redraw giving wrong bounds. --- source/blender/editors/sculpt_paint/sculpt.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 74762379202..2f4d2d9e8bf 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -207,6 +207,9 @@ int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d, rect->xmin = rect->ymin = INT_MAX; rect->xmax = rect->ymax = INT_MIN; + if(bb_min[0] > bb_max[0] || bb_min[1] > bb_max[1] || bb_min[2] > bb_max[2]) + return 0; + for(i = 0; i < 2; ++i) { for(j = 0; j < 2; ++j) { for(k = 0; k < 2; ++k) { -- cgit v1.2.3 From 3078c806358c4c802e0d2df66a2b9a13471128c1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 2 Nov 2009 18:47:03 +0000 Subject: Sculpt: Multithreading & PBVH Changes * Sculpting, normal update and bounding box code is now multithreaded using OpenMP. * Fix a number of update issues: normals on node boundaries, outdated bounding boxes, partial redraw, .. . There's probably still a few left, but should be better now. * Clicking once now does a single paint instead of two (was also painting on mouse up event). * Smooth shading now is enabled for the full mesh when the first face uses it (so it can be tested at least). Implementation Notes: * PBVH search can now be done either using a callback or bt gathering the nodes in an array. The latter makes multithreading with OpenMP easier. * Normals update code is now inside PBVH, was doing it per node before but should do all faces first and only then vertices. * Instead of using search modes + 1 modified flag, now nodes get 4 flags to indicate what needs to be updated for them, found that this makes it easier for me to understand the code and fix update bugs. * PBVHNode is now exposed as an abstract type, I think this makes it more clear what is happening than having it's data passed as part of callback functions. * Active_verts list was replaced by looping over nodes and the vertices inside them. However the grab brush still uses the active_verts system, will fix that later. * Some micro-optimizations, like avoiding a few multiplications/divisions, using local variables instead of pointers, or looping over fewer vertices to update the bounding boxes. --- source/blender/blenkernel/BKE_mesh.h | 1 + source/blender/blenkernel/intern/brush.c | 2 +- source/blender/blenkernel/intern/cdderivedmesh.c | 95 +-- source/blender/blenlib/BLI_pbvh.h | 116 ++- source/blender/blenlib/intern/arithb.c | 9 +- source/blender/blenlib/intern/pbvh.c | 556 +++++++++---- source/blender/editors/sculpt_paint/paint_stroke.c | 35 +- source/blender/editors/sculpt_paint/sculpt.c | 871 ++++++++++++--------- 8 files changed, 1030 insertions(+), 655 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index 09c1ab9f7d6..edb4e2cf2a9 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -47,6 +47,7 @@ struct Object; struct MTFace; struct VecNor; struct CustomData; +struct Scene; #ifdef __cplusplus extern "C" { diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index 115d31b587c..8a4ffca8244 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -83,7 +83,7 @@ Brush *add_brush(const char *name) brush->clone.alpha= 0.5; brush->sculpt_tool = SCULPT_TOOL_DRAW; - brush_curve_preset(brush, BRUSH_PRESET_SHARP); + brush_curve_preset(brush, BRUSH_PRESET_SMOOTH); /* enable fake user by default */ brush->id.flag |= LIB_FAKEUSER; diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 66e09022ff5..b7234a86af9 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -177,55 +177,6 @@ static void cdDM_getVertNo(DerivedMesh *dm, int index, float no_r[3]) no_r[2] = no[2]/32767.f; } -/* Updates all the face and vertex normals in a node - - Note: the correctness of some vertex normals will be a little - off, not sure if this will be noticeable or not */ -static void update_node_normals(const int *face_indices, - const int *vert_indices, - int totface, int totvert, void *data) -{ - DerivedMesh *dm = data; - CDDerivedMesh *cddm = data; - float (*face_nors)[3]; - int i; - - /* make a face normal layer if not present */ - face_nors = CustomData_get_layer(&dm->faceData, CD_NORMAL); - if(!face_nors) - face_nors = CustomData_add_layer(&dm->faceData, CD_NORMAL, CD_CALLOC, - NULL, dm->numFaceData); - - /* Update face normals */ - for(i = 0; i < totface; ++i) { - MFace *f = cddm->mface + face_indices[i]; - float *fn = face_nors[face_indices[i]]; - - if(f->v4) - CalcNormFloat4(cddm->mvert[f->v1].co, cddm->mvert[f->v2].co, - cddm->mvert[f->v3].co, cddm->mvert[f->v4].co, fn); - else - CalcNormFloat(cddm->mvert[f->v1].co, cddm->mvert[f->v2].co, - cddm->mvert[f->v3].co, fn); - } - - /* Update vertex normals */ - for(i = 0; i < totvert; ++i) { - const int v = vert_indices[i]; - float no[3] = {0,0,0}; - IndexNode *face; - - for(face = cddm->fmap[v].first; face; face = face->next) - VecAddf(no, no, face_nors[face->index]); - - Normalize(no); - - cddm->mvert[v].no[0] = no[0] * 32767; - cddm->mvert[v].no[1] = no[1] * 32767; - cddm->mvert[v].no[2] = no[2] * 32767; - } -} - static ListBase *cdDM_getFaceMap(DerivedMesh *dm) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; @@ -244,7 +195,7 @@ static struct PBVH *cdDM_getPBVH(DerivedMesh *dm) CDDerivedMesh *cddm = (CDDerivedMesh*) dm; if(!cddm->pbvh) { - cddm->pbvh = BLI_pbvh_new(update_node_normals, cddm); + cddm->pbvh = BLI_pbvh_new(); BLI_pbvh_build(cddm->pbvh, cddm->mface, cddm->mvert, dm->getNumFaces(dm), dm->getNumVerts(dm)); printf("rebuild pbvh\n"); @@ -445,9 +396,7 @@ static void cdDM_drawLooseEdges(DerivedMesh *dm) static int nodes_drawn = 0; static int is_partial = 0; /* XXX: Just a temporary replacement for the real drawing code */ -static void draw_partial_cb(const int *face_indices, - const int *vert_indices, - int totface, int totvert, void *data_v) +static void draw_partial_cb(PBVHNode *node, void *data) { /* XXX: Just some quick code to show leaf nodes in different colors */ /*float col[3]; int i; @@ -462,21 +411,16 @@ static void draw_partial_cb(const int *face_indices, glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col); glColor3f(1, 0, 0);*/ - GPU_draw_buffers(data_v); + GPU_draw_buffers(BLI_pbvh_node_get_draw_buffers(node)); ++nodes_drawn; } -int find_all(float bb_min[3], float bb_max[3], void *data) -{ - return 1; -} - /* Adapted from: http://www.gamedev.net/community/forums/topic.asp?topic_id=512123 Returns true if the AABB is at least partially within the frustum (ok, not a real frustum), false otherwise. */ -int planes_contain_AABB(float bb_min[3], float bb_max[3], void *data) +int planes_contain_AABB(PBVHNode *node, float bb_min[3], float bb_max[3], void *data) { float (*planes)[4] = data; int i, axis; @@ -520,21 +464,28 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, } if(cddm->pbvh) { - BLI_pbvh_search(cddm->pbvh, BLI_pbvh_update_search_cb, - PBVH_NodeData, NULL, NULL, - PBVH_SEARCH_UPDATE); + float (*face_nors)[3]; + + /* make a face normal layer if not present */ + face_nors = CustomData_get_layer(&dm->faceData, CD_NORMAL); + if(!face_nors) + face_nors = CustomData_add_layer(&dm->faceData, CD_NORMAL, CD_CALLOC, + NULL, dm->numFaceData); + + BLI_pbvh_update(cddm->pbvh, PBVH_UpdateNormals|PBVH_UpdateDrawBuffers, + face_nors, cdDM_getFaceMap(dm)); + + /* should be per face */ + if(dm->numFaceData && mface->flag & ME_SMOOTH) + glShadeModel(GL_SMOOTH); if(partial_redraw_planes) { - BLI_pbvh_search(cddm->pbvh, planes_contain_AABB, - partial_redraw_planes, - draw_partial_cb, PBVH_DrawData, - PBVH_SEARCH_MODIFIED); + BLI_pbvh_search_callback(cddm->pbvh, planes_contain_AABB, + partial_redraw_planes, draw_partial_cb, NULL); } else { - BLI_pbvh_search(cddm->pbvh, find_all, NULL, - draw_partial_cb, PBVH_DrawData, - PBVH_SEARCH_NORMAL); - + BLI_pbvh_search_callback(cddm->pbvh, NULL, NULL, + draw_partial_cb, NULL); } is_partial = !!partial_redraw_planes; @@ -542,6 +493,8 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, //printf("nodes drawn=%d\n", nodes_drawn); nodes_drawn = 0; + glShadeModel(GL_FLAT); + return; } diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h index edc363e65a3..78e2a9b8745 100644 --- a/source/blender/blenlib/BLI_pbvh.h +++ b/source/blender/blenlib/BLI_pbvh.h @@ -1,62 +1,98 @@ +/** + * A BVH for high poly meshes. + * + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef BLI_PBVH_H +#define BLI_PBVH_H + struct MFace; struct MVert; struct PBVH; +struct PBVHNode; +struct ListBase; -/* Returns 1 if the search should continue from this node, 0 otherwise */ -typedef int (*BLI_pbvh_SearchCallback)(float bb_min[3], float bb_max[3], - void *data); +typedef struct PBVH PBVH; +typedef struct PBVHNode PBVHNode; -typedef void (*BLI_pbvh_HitCallback)(const int *face_indices, - const int *vert_indices, - int totface, int totvert, void *data); -int BLI_pbvh_search_range(float bb_min[3], float bb_max[3], void *data_v); +/* Callbacks */ -typedef enum { - PBVH_SEARCH_NORMAL, +/* returns 1 if the search should continue from this node, 0 otherwise */ +typedef int (*BLI_pbvh_SearchCallback)(PBVHNode *node, + float bb_min[3], float bb_max[3], void *data); + +typedef void (*BLI_pbvh_HitCallback)(PBVHNode *node, void *data); + +/* Building */ + +PBVH *BLI_pbvh_new(void); +void BLI_pbvh_build(PBVH *bvh, struct MFace *faces, struct MVert *verts, + int totface, int totvert); +void BLI_pbvh_free(PBVH *bvh); - /* When the callback returns a 1 for a leaf node, that node will be - marked as modified */ - PBVH_SEARCH_MARK_MODIFIED, - - /* Update gpu data for modified nodes. Also clears the Modified flag. */ - PBVH_SEARCH_MODIFIED, +void BLI_pbvh_set_source(PBVH *bvh, struct MVert *, struct MFace *mface); - - PBVH_SEARCH_UPDATE -} PBVH_SearchMode; +/* Hierarchical Search in the BVH, two methods: + * for each hit calling a callback + * gather nodes in an array (easy to multithread) */ -/* Pass the node as data to the callback */ -#define PBVH_NodeData (void*)0xa -/* Pass the draw buffers as data to the callback */ -#define PBVH_DrawData (void*)0xb +void BLI_pbvh_search_callback(PBVH *bvh, + BLI_pbvh_SearchCallback scb, void *search_data, + BLI_pbvh_HitCallback hcb, void *hit_data); -void BLI_pbvh_search(struct PBVH *bvh, BLI_pbvh_SearchCallback scb, - void *search_data, BLI_pbvh_HitCallback hcb, - void *hit_data, PBVH_SearchMode mode); +void BLI_pbvh_search_gather(PBVH *bvh, + BLI_pbvh_SearchCallback scb, void *search_data, + PBVHNode ***array, int *tot); -/* The hit callback is called for all leaf nodes intersecting the ray; +/* Raycast + the hit callback is called for all leaf nodes intersecting the ray; it's up to the callback to find the primitive within the leaves that is hit first */ -void BLI_pbvh_raycast(struct PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, + +void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, float ray_start[3], float ray_normal[3]); +/* Node Access */ -int BLI_pbvh_update_search_cb(float bb_min[3], float bb_max[3], void *data_v); +typedef enum { + PBVH_Leaf = 1, -/* Get the bounding box around all nodes that have been marked as modified. */ -void BLI_pbvh_modified_bounding_box(struct PBVH *bvh, - float bb_min[3], float bb_max[3]); -void BLI_pbvh_reset_modified_bounding_box(struct PBVH *bvh); + PBVH_UpdateNormals = 2, + PBVH_UpdateBB = 4, + PBVH_UpdateDrawBuffers = 8, + PBVH_UpdateRedraw = 16 +} PBVHNodeFlags; -/* Lock is off by default, turn on to stop redraw from clearing the modified - flag from nodes */ -void BLI_pbvh_toggle_modified_lock(struct PBVH *bvh); +void BLI_pbvh_node_mark_update(PBVHNode *node); +void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, int *totvert); +void BLI_pbvh_node_get_faces(PBVHNode *node, int **face_indices, int *totface); +void *BLI_pbvh_node_get_draw_buffers(PBVHNode *node); +/* Update Normals/Bounding Box/Draw Buffers/Redraw and clear flags */ -struct PBVH *BLI_pbvh_new(BLI_pbvh_HitCallback update_cb, void *update_cb_data); -void BLI_pbvh_build(struct PBVH *bvh, struct MFace *faces, struct MVert *verts, - int totface, int totvert); -void BLI_pbvh_free(struct PBVH *bvh); +void BLI_pbvh_update(PBVH *bvh, int flags, + float (*face_nors)[3], struct ListBase *fmap); +void BLI_pbvh_redraw_bounding_box(PBVH *bvh, float bb_min[3], float bb_max[3]); + +#endif /* BLI_PBVH_H */ -void BLI_pbvh_set_source(struct PBVH *bvh, struct MVert *, struct MFace *mface); diff --git a/source/blender/blenlib/intern/arithb.c b/source/blender/blenlib/intern/arithb.c index f353a90ab21..20c2b6d95be 100644 --- a/source/blender/blenlib/intern/arithb.c +++ b/source/blender/blenlib/intern/arithb.c @@ -114,16 +114,17 @@ float sasqrtf(float fac) float Normalize(float *n) { - float d; + float d, invd; d= n[0]*n[0]+n[1]*n[1]+n[2]*n[2]; /* A larger value causes normalize errors in a scaled down models with camera xtreme close */ if(d>1.0e-35f) { d= (float)sqrt(d); + invd= 1.0f/d; - n[0]/=d; - n[1]/=d; - n[2]/=d; + n[0]*=invd; + n[1]*=invd; + n[2]*=invd; } else { n[0]=n[1]=n[2]= 0.0f; d= 0.0f; diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index 98492a8f429..b707343bebb 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -1,3 +1,29 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include +#include + #include "MEM_guardedalloc.h" #include "DNA_meshdata_types.h" @@ -6,14 +32,11 @@ #include "BLI_ghash.h" #include "BLI_pbvh.h" +#include "BKE_mesh.h" #include "BKE_utildefines.h" #include "gpu_buffers.h" -#include -#include -#include - #define LEAF_LIMIT 10000 //#define PERFCNTRS @@ -41,11 +64,6 @@ void BLI_bitmap_clear(BLI_bitmap b, int index) b[index >> 3] &= ~(1 << (index & 7)); } -typedef enum { - PBVH_Leaf = 1, - PBVH_Modified = 2 -} NodeFlags; - /* Axis-aligned bounding box */ typedef struct { float bmin[3], bmax[3]; @@ -56,7 +74,7 @@ typedef struct { float bmin[3], bmax[3], bcentroid[3]; } BBC; -typedef struct { +struct PBVHNode { /* Opaque handle for drawing code */ void *draw_buffers; @@ -68,33 +86,26 @@ typedef struct { /* For internal nodes */ int children_offset; - /* Range of faces used in the node */ - int face_offset; + /* Pointer into bvh face_indices */ + int *face_indices; unsigned short totface; unsigned short uniq_verts, face_verts; char flag; -} Node; +}; -typedef struct PBVH { - Node *nodes; +struct PBVH { + PBVHNode *nodes; int node_mem_count, totnode; int *face_indices; int totface; - BB modified_bb; - - BLI_pbvh_HitCallback update_cb; - void *update_cb_data; - /* Mesh data */ MVert *verts; MFace *faces; - int modified_lock; - /* Only used during BVH build and update, don't need to remain valid after */ BLI_bitmap vert_bitmap; @@ -102,7 +113,26 @@ typedef struct PBVH { #ifdef PERFCNTRS int perf_modified; #endif -} PBVH; +}; + +#define STACK_FIXED_DEPTH 100 + +typedef struct PBVHStack { + PBVHNode *node; + int revisiting; +} PBVHStack; + +typedef struct PBVHIter { + PBVH *bvh; + BLI_pbvh_SearchCallback scb; + void *search_data; + + PBVHStack *stack; + int stacksize; + + PBVHStack stackfixed[STACK_FIXED_DEPTH]; + int stackspace; +} PBVHIter; static void BB_reset(BB *bb) { @@ -113,13 +143,11 @@ static void BB_reset(BB *bb) /* Expand the bounding box to include a new coordinate */ static void BB_expand(BB *bb, float co[3]) { - if(co[0] < bb->bmin[0]) bb->bmin[0] = co[0]; - if(co[1] < bb->bmin[1]) bb->bmin[1] = co[1]; - if(co[2] < bb->bmin[2]) bb->bmin[2] = co[2]; - - if(co[0] > bb->bmax[0]) bb->bmax[0] = co[0]; - if(co[1] > bb->bmax[1]) bb->bmax[1] = co[1]; - if(co[2] > bb->bmax[2]) bb->bmax[2] = co[2]; + int i; + for(i = 0; i < 3; ++i) { + bb->bmin[i] = MIN2(bb->bmin[i], co[i]); + bb->bmax[i] = MAX2(bb->bmax[i], co[i]); + } } /* Expand the bounding box to include another bounding box */ @@ -163,28 +191,28 @@ static void BBC_update_centroid(BBC *bbc) } /* Not recursive */ -static void update_node_vb(PBVH *bvh, Node *node) +static void update_node_vb(PBVH *bvh, PBVHNode *node) { - BB_reset(&node->vb); + BB vb; + + BB_reset(&vb); if(node->flag & PBVH_Leaf) { - int i, j; - for(i = node->face_offset + node->totface - 1; - i >= node->face_offset; --i) { - MFace *f = bvh->faces + bvh->face_indices[i]; - const int sides = f->v4 ? 4 : 3; - - for(j = 0; j < sides; ++j) - BB_expand(&node->vb, - bvh->verts[*((&f->v1) + j)].co); + int i, totvert= node->uniq_verts + node->face_verts; + + for(i = 0; i < totvert; ++i) { + float *co= bvh->verts[node->vert_indices[i]].co; + BB_expand(&vb, co); } } else { - BB_expand_with_bb(&node->vb, + BB_expand_with_bb(&vb, &bvh->nodes[node->children_offset].vb); - BB_expand_with_bb(&node->vb, + BB_expand_with_bb(&vb, &bvh->nodes[node->children_offset + 1].vb); } + + node->vb= vb; } /* Adapted from BLI_kdopbvh.c */ @@ -222,13 +250,13 @@ void check_partitioning(int *face_indices, int lo, int hi, int axis, static void grow_nodes(PBVH *bvh, int totnode) { if(totnode > bvh->node_mem_count) { - Node *prev = bvh->nodes; + PBVHNode *prev = bvh->nodes; bvh->node_mem_count *= 1.33; if(bvh->node_mem_count < totnode) bvh->node_mem_count = totnode; - bvh->nodes = MEM_callocN(sizeof(Node) * bvh->node_mem_count, + bvh->nodes = MEM_callocN(sizeof(PBVHNode) * bvh->node_mem_count, "bvh nodes"); - memcpy(bvh->nodes, prev, bvh->totnode * sizeof(Node)); + memcpy(bvh->nodes, prev, bvh->totnode * sizeof(PBVHNode)); MEM_freeN(prev); } @@ -259,19 +287,19 @@ static void map_insert_vert(PBVH *bvh, GHash *map, } /* Find vertices used by the faces in this node and update the draw buffers */ -static void build_leaf_node(PBVH *bvh, Node *node) +static void build_leaf_node(PBVH *bvh, PBVHNode *node) { GHashIterator *iter; GHash *map; - int i, j; + int i, j, totface; map = BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp); node->uniq_verts = node->face_verts = 0; + totface= node->totface; - for(i = node->face_offset + node->totface - 1; - i >= node->face_offset; --i) { - MFace *f = bvh->faces + bvh->face_indices[i]; + for(i = 0; i < totface; ++i) { + MFace *f = bvh->faces + node->face_indices[i]; int sides = f->v4 ? 4 : 3; for(j = 0; j < sides; ++j) { @@ -300,7 +328,7 @@ static void build_leaf_node(PBVH *bvh, Node *node) node->draw_buffers = GPU_build_buffers(map, bvh->verts, bvh->faces, - bvh->face_indices + node->face_offset, + node->face_indices, node->totface, node->vert_indices, node->uniq_verts, node->uniq_verts + node->face_verts); @@ -329,7 +357,7 @@ void build_sub(PBVH *bvh, int node_index, BB *cb, BBC *prim_bbc, if(count <= LEAF_LIMIT) { bvh->nodes[node_index].flag |= PBVH_Leaf; - bvh->nodes[node_index].face_offset = offset; + bvh->nodes[node_index].face_indices = bvh->face_indices + offset; bvh->nodes[node_index].totface = count; /* Still need vb for searches */ @@ -398,7 +426,7 @@ void BLI_pbvh_build(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totv bvh->totnode = 0; if(bvh->node_mem_count < 100) { bvh->node_mem_count = 100; - bvh->nodes = MEM_callocN(sizeof(Node) * + bvh->nodes = MEM_callocN(sizeof(PBVHNode) * bvh->node_mem_count, "bvh initial nodes"); } @@ -408,8 +436,6 @@ void BLI_pbvh_build(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totv bvh->verts = verts; bvh->vert_bitmap = BLI_bitmap_new(totvert); - BB_reset(&bvh->modified_bb); - BB_reset(&cb); /* For each face, store the AABB and the AABB centroid */ @@ -437,12 +463,9 @@ void BLI_pbvh_build(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totv MEM_freeN(bvh->vert_bitmap); } -PBVH *BLI_pbvh_new(BLI_pbvh_HitCallback update_cb, void *update_cb_data) +PBVH *BLI_pbvh_new(void) { PBVH *bvh = MEM_callocN(sizeof(PBVH), "pbvh"); - - bvh->update_cb = update_cb; - bvh->update_cb_data = update_cb_data; return bvh; } @@ -469,113 +492,339 @@ void BLI_pbvh_set_source(PBVH *bvh, MVert *mvert, MFace *mface) bvh->faces = mface; } -static void do_hit_callback(PBVH *bvh, Node *node, +static void do_hit_callback(PBVH *bvh, PBVHNode *node, BLI_pbvh_HitCallback cb, void *data) { - if(cb) { - cb(bvh->face_indices + node->face_offset, node->vert_indices, - node->totface, node->uniq_verts, data); + if(cb) + cb(node, data); +} + +static void pbvh_iter_begin(PBVHIter *iter, PBVH *bvh, BLI_pbvh_SearchCallback scb, void *search_data) +{ + iter->bvh= bvh; + iter->scb= scb; + iter->search_data= search_data; + + iter->stack= iter->stackfixed; + iter->stackspace= STACK_FIXED_DEPTH; + + iter->stack[0].node= bvh->nodes; + iter->stack[0].revisiting= 0; + iter->stacksize= 1; +} + +static void pbvh_iter_end(PBVHIter *iter) +{ + if(iter->stackspace > STACK_FIXED_DEPTH) + MEM_freeN(iter->stack); +} + +static void pbvh_stack_push(PBVHIter *iter, PBVHNode *node, int revisiting) +{ + if(iter->stacksize == iter->stackspace) { + PBVHStack *newstack; + + iter->stackspace *= 2; + newstack= MEM_callocN(sizeof(PBVHStack)*iter->stackspace, "PBVHStack"); + memcpy(newstack, iter->stack, sizeof(PBVHStack)*iter->stacksize); + + if(iter->stackspace > STACK_FIXED_DEPTH) + MEM_freeN(iter->stack); + iter->stack= newstack; } + + iter->stack[iter->stacksize].node= node; + iter->stack[iter->stacksize].revisiting= revisiting; + iter->stacksize++; } -static int search_sub(PBVH *bvh, Node *node, - BLI_pbvh_SearchCallback scb, void *search_data_f, - BLI_pbvh_HitCallback hcb, void *hit_data_f, - PBVH_SearchMode mode) +static PBVHNode *pbvh_iter_next(PBVHIter *iter) { - void *search_data = search_data_f; - void *hit_data = hit_data_f; + PBVHNode *node; + int revisiting; + void *search_data; + + /* purpose here is to traverse tree, visiting child nodes before their + parents, this order is necessary for e.g. computing bounding boxes */ + + while(iter->stacksize) { + /* pop node */ + iter->stacksize--; + node= iter->stack[iter->stacksize].node; + revisiting= iter->stack[iter->stacksize].revisiting; - if(search_data_f == PBVH_NodeData) - search_data = &node->flag; - if(hit_data_f == PBVH_DrawData) - hit_data = node->draw_buffers; + /* revisiting node already checked */ + if(revisiting) + return node; + + /* check search callback */ + search_data= iter->search_data; + + if(iter->scb && !iter->scb(node, node->vb.bmin, node->vb.bmax, search_data)) + continue; /* don't traverse, outside of search zone */ - if(scb(node->vb.bmin, node->vb.bmax, search_data)) { if(node->flag & PBVH_Leaf) { - switch(mode) { - case PBVH_SEARCH_MARK_MODIFIED: - node->flag |= PBVH_Modified; -#ifdef PERFCNTRS - ++bvh->perf_modified; -#endif - break; - case PBVH_SEARCH_MODIFIED: - if(node->flag & PBVH_Modified) { - if(bvh->update_cb) { - do_hit_callback - (bvh, node, - bvh->update_cb, - bvh->update_cb_data); - } - - GPU_update_buffers(node->draw_buffers, - bvh->verts, - node->vert_indices, - node->uniq_verts + - node->face_verts); + /* immediately hit leaf node */ + return node; + } + else { + /* come back later when children are done */ + pbvh_stack_push(iter, node, 1); + + /* push two child nodes on the stack */ + pbvh_stack_push(iter, iter->bvh->nodes+node->children_offset+1, 0); + pbvh_stack_push(iter, iter->bvh->nodes+node->children_offset, 0); + } + } + + return NULL; +} + +void BLI_pbvh_search_gather(PBVH *bvh, + BLI_pbvh_SearchCallback scb, void *search_data, + PBVHNode ***r_array, int *r_tot) +{ + PBVHIter iter; + PBVHNode **array= NULL, **newarray, *node; + int tot= 0, space= 0; + + pbvh_iter_begin(&iter, bvh, scb, search_data); + + while((node=pbvh_iter_next(&iter))) { + if(node->flag & PBVH_Leaf) { + if(tot == space) { + /* resize array if needed */ + space= (tot == 0)? 32: space*2; + newarray= MEM_callocN(sizeof(PBVHNode)*space, "PBVHNodeSearch"); + + if(array) { + memcpy(newarray, array, sizeof(PBVHNode)*tot); + MEM_freeN(array); } - default: - break; + + array= newarray; } + array[tot]= node; + tot++; + } + } + + pbvh_iter_end(&iter); + + *r_array= array; + *r_tot= tot; +} + +void BLI_pbvh_search_callback(PBVH *bvh, + BLI_pbvh_SearchCallback scb, void *search_data, + BLI_pbvh_HitCallback hcb, void *hit_data) +{ + PBVHIter iter; + PBVHNode *node; + + pbvh_iter_begin(&iter, bvh, scb, search_data); + + while((node=pbvh_iter_next(&iter))) + if(node->flag & PBVH_Leaf) do_hit_callback(bvh, node, hcb, hit_data); + + pbvh_iter_end(&iter); +} + +static int update_search_cb(PBVHNode *node, + float bb_min[3], float bb_max[3], void *data_v) +{ + if(node->flag & PBVH_Leaf) + return (node->flag & (PBVH_UpdateNormals|PBVH_UpdateBB|PBVH_UpdateDrawBuffers|PBVH_UpdateRedraw)); + + return 1; +} + +static void pbvh_update_face_normals(PBVH *bvh, PBVHNode **nodes, + int totnode, float (*face_nors)[3]) +{ + PBVHNode *node; + int n; + + #pragma omp parallel for private(n) schedule(static) + for(n = 0; n < totnode; n++) { + node= nodes[n]; + + if((node->flag & PBVH_UpdateNormals)) { + int i, totface, *faces; + + BLI_pbvh_node_get_faces(node, &faces, &totface); + + for(i = 0; i < totface; ++i) { + MFace *f = bvh->faces + faces[i]; + float *fn = face_nors[faces[i]]; + + if(f->v4) + CalcNormFloat4(bvh->verts[f->v1].co, bvh->verts[f->v2].co, + bvh->verts[f->v3].co, bvh->verts[f->v4].co, fn); + else + CalcNormFloat(bvh->verts[f->v1].co, bvh->verts[f->v2].co, + bvh->verts[f->v3].co, fn); + } } - else { - int mod = 0; - if(search_sub(bvh, bvh->nodes + node->children_offset, - scb, search_data_f, hcb,hit_data_f, mode)) - mod = 1; - if(search_sub(bvh, - bvh->nodes + node->children_offset + 1, - scb, search_data_f, hcb,hit_data_f, mode)) - mod = 1; - - if(mod) - node->flag |= PBVH_Modified; + } +} + +static void pbvh_update_BB_normals(PBVH *bvh, PBVHNode **nodes, + int totnode, int flag, float (*face_nors)[3], ListBase *fmap) +{ + PBVHNode *node; + int n; + + /* update BB, vertex normals, redraw flag */ + #pragma omp parallel for private(n) schedule(static) + for(n = 0; n < totnode; n++) { + node= nodes[n]; + + if((flag & PBVH_UpdateBB) && (node->flag & PBVH_UpdateBB)) { + update_node_vb(bvh, node); + /* don't clear flag yet, leave it for flushing later */ + } + + if((flag & PBVH_UpdateNormals) && (node->flag & PBVH_UpdateNormals)) { + int i, *verts, totvert; + + BLI_pbvh_node_get_verts(node, &verts, &totvert); + + for(i = 0; i < totvert; ++i) { + const int v = verts[i]; + float no[3] = {0,0,0}; + IndexNode *face; + + for(face = fmap[v].first; face; face = face->next) + VecAddf(no, no, face_nors[face->index]); + + Normalize(no); + + bvh->verts[v].no[0] = no[0] * 32767; + bvh->verts[v].no[1] = no[1] * 32767; + bvh->verts[v].no[2] = no[2] * 32767; + } + + node->flag &= ~PBVH_UpdateNormals; } + + if((flag & PBVH_UpdateRedraw) && (node->flag & PBVH_UpdateRedraw)) + node->flag &= ~PBVH_UpdateRedraw; } +} - if(mode == PBVH_SEARCH_MODIFIED) { -#ifdef PERFCNTRS - if(node->flag & PBVH_Modified && node->flag & PBVH_Leaf) - --bvh->perf_modified; -#endif - if(!bvh->modified_lock) - node->flag &= ~PBVH_Modified; +static void pbvh_update_draw_buffers(PBVH *bvh, PBVHNode **nodes, int totnode) +{ + PBVHNode *node; + int n; + + /* can't be done in parallel with OpenGL */ + for(n = 0; n < totnode; n++) { + node= nodes[n]; + + if(node->flag & PBVH_UpdateDrawBuffers) { + GPU_update_buffers(node->draw_buffers, + bvh->verts, + node->vert_indices, + node->uniq_verts + + node->face_verts); + + node->flag &= ~PBVH_UpdateDrawBuffers; + } } - else if(mode == PBVH_SEARCH_UPDATE) { - if(node->flag & PBVH_Modified) { +} + +static int pbvh_flush_bb(PBVH *bvh, PBVHNode *node) +{ + int update= 0; + + /* difficult to multithread well, we just do single threaded recursive */ + if(node->flag & PBVH_Leaf) { + update= (node->flag & PBVH_UpdateBB); + node->flag &= ~PBVH_UpdateBB; + return update; + } + else { + update |= pbvh_flush_bb(bvh, bvh->nodes + node->children_offset); + update |= pbvh_flush_bb(bvh, bvh->nodes + node->children_offset + 1); + + if(update) update_node_vb(bvh, node); - if(node->flag & PBVH_Leaf) - BB_expand_with_bb(&bvh->modified_bb, &node->vb); - } } - return node->flag & PBVH_Modified; + return update; } -void BLI_pbvh_search(PBVH *bvh, BLI_pbvh_SearchCallback scb, void *search_data, - BLI_pbvh_HitCallback hcb, void *hit_data, - PBVH_SearchMode mode) +void BLI_pbvh_update(PBVH *bvh, int flag, float (*face_nors)[3], ListBase *fmap) { -#ifdef PERFCNTRS - printf("search mode=%s\n", - mode==PBVH_SEARCH_MARK_MODIFIED?"mark-modified": - mode==PBVH_SEARCH_MODIFIED?"modified": - mode==PBVH_SEARCH_UPDATE?"update": - mode==PBVH_SEARCH_NORMAL?"normal":"unknown-mode"); - if(mode == PBVH_SEARCH_MARK_MODIFIED) - bvh->perf_modified = 0; -#endif + PBVHNode **nodes; + int totnode; - search_sub(bvh, bvh->nodes, scb, search_data, hcb, hit_data, mode); -#ifdef PERFCNTRS - printf("%d nodes marked modified\n", bvh->perf_modified); - printf("search complete\n\n"); -#endif + BLI_pbvh_search_gather(bvh, update_search_cb, NULL, &nodes, &totnode); + + if(flag & PBVH_UpdateNormals) + pbvh_update_face_normals(bvh, nodes, totnode, face_nors); + + if(flag & (PBVH_UpdateNormals|PBVH_UpdateBB|PBVH_UpdateRedraw)) + pbvh_update_BB_normals(bvh, nodes, totnode, flag, face_nors, fmap); + + if(flag & PBVH_UpdateDrawBuffers) + pbvh_update_draw_buffers(bvh, nodes, totnode); + + if(flag & PBVH_UpdateBB) + pbvh_flush_bb(bvh, bvh->nodes); + + if(nodes) MEM_freeN(nodes); } +void BLI_pbvh_redraw_bounding_box(PBVH *bvh, float bb_min[3], float bb_max[3]) +{ + PBVHIter iter; + PBVHNode *node; + BB bb; + + BB_reset(&bb); + + pbvh_iter_begin(&iter, bvh, NULL, NULL); + + while((node=pbvh_iter_next(&iter))) + if(node->flag & PBVH_UpdateRedraw) + BB_expand_with_bb(&bb, &node->vb); + + pbvh_iter_end(&iter); + + VecCopyf(bb_min, bb.bmin); + VecCopyf(bb_max, bb.bmax); +} + +/***************************** Node Access ***********************************/ + +void BLI_pbvh_node_mark_update(PBVHNode *node) +{ + node->flag |= PBVH_UpdateNormals|PBVH_UpdateBB|PBVH_UpdateDrawBuffers|PBVH_UpdateRedraw; +} + +void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, int *totvert) +{ + *vert_indices= node->vert_indices; + *totvert= node->uniq_verts; +} + +void BLI_pbvh_node_get_faces(PBVHNode *node, int **face_indices, int *totface) +{ + *face_indices= node->face_indices; + *totface= node->totface; +} + +void *BLI_pbvh_node_get_draw_buffers(PBVHNode *node) +{ + return node->draw_buffers; +} + +/********************************* Raycast ***********************************/ + typedef struct { /* Ray */ float start[3]; @@ -584,7 +833,7 @@ typedef struct { } RaycastData; /* Adapted from here: http://www.gamedev.net/community/forums/topic.asp?topic_id=459973 */ -static int ray_aabb_intersect(float bb_min[3], float bb_max[3], void *data_v) +static int ray_aabb_intersect(PBVHNode *node, float bb_min[3], float bb_max[3], void *data_v) { RaycastData *ray = data_v; float bbox[2][3]; @@ -637,29 +886,6 @@ void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, rcd.sign[1] = rcd.inv_dir[1] < 0; rcd.sign[2] = rcd.inv_dir[2] < 0; - BLI_pbvh_search(bvh, ray_aabb_intersect, &rcd, cb, data, - PBVH_SEARCH_NORMAL); -} - -int BLI_pbvh_update_search_cb(float bb_min[3], float bb_max[3], void *data_v) -{ - int *data = data_v; - - return ((*data) & PBVH_Modified); -} - -void BLI_pbvh_modified_bounding_box(PBVH *bvh, float bb_min[3], float bb_max[3]) -{ - VecCopyf(bb_min, bvh->modified_bb.bmin); - VecCopyf(bb_max, bvh->modified_bb.bmax); + BLI_pbvh_search_callback(bvh, ray_aabb_intersect, &rcd, cb, data); } -void BLI_pbvh_reset_modified_bounding_box(PBVH *bvh) -{ - BB_reset(&bvh->modified_bb); -} - -void BLI_pbvh_toggle_modified_lock(PBVH *bvh) -{ - bvh->modified_lock = !bvh->modified_lock; -} diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index f8ffaacc0b7..c2d22089442 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -234,9 +234,7 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) { PaintStroke *stroke = op->customdata; float mouse[2]; - - if(event->type == TIMER && (event->customdata != stroke->timer)) - return OPERATOR_RUNNING_MODAL; + int first= 0; if(!stroke->stroke_started) { stroke->last_mouse_position[0] = event->x; @@ -251,26 +249,27 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) stroke->timer = WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, stroke->brush->rate); } + first= 1; //ED_region_tag_redraw(ar); } - if(stroke->stroke_started) { - if(paint_smooth_stroke(stroke, mouse, event)) { - if(paint_space_stroke_enabled(stroke->brush)) { - if(!paint_space_stroke(C, op, event, mouse)) - ;//ED_region_tag_redraw(ar); + /* TODO: fix hardcoded event here */ + if(first || event->type == MOUSEMOVE || (event->type == TIMER && (event->customdata == stroke->timer))) { + if(stroke->stroke_started) { + if(paint_smooth_stroke(stroke, mouse, event)) { + if(paint_space_stroke_enabled(stroke->brush)) { + if(!paint_space_stroke(C, op, event, mouse)) + ;//ED_region_tag_redraw(ar); + } + else + paint_brush_stroke_add_step(C, op, event, mouse); } else - paint_brush_stroke_add_step(C, op, event, mouse); + ;//ED_region_tag_redraw(ar); } - else - ;//ED_region_tag_redraw(ar); } - - /* TODO: fix hardcoded event here */ - if(event->type == LEFTMOUSE && event->val == KM_RELEASE) { - /* Exit stroke, free data */ - + else if(event->type == LEFTMOUSE && event->val == KM_RELEASE) { + /* exit stroke, free data */ if(stroke->smooth_stroke_cursor) WM_paint_cursor_end(CTX_wm_manager(C), stroke->smooth_stroke_cursor); @@ -281,8 +280,8 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) MEM_freeN(stroke); return OPERATOR_FINISHED; } - else - return OPERATOR_RUNNING_MODAL; + + return OPERATOR_RUNNING_MODAL; } int paint_stroke_exec(bContext *C, wmOperator *op) diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 2f4d2d9e8bf..e29f0d56ba2 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -142,6 +142,7 @@ typedef struct StrokeCache { float flip; float pressure; float mouse[2]; + float bstrength; /* The rest is temporary storage that isn't saved as a property */ @@ -158,6 +159,8 @@ typedef struct StrokeCache { float rotation; /* Texture rotation (radians) for anchored and rake modes */ int pixel_radius, previous_pixel_radius; ListBase grab_active_verts[8]; /* The same list of verts is used throught grab stroke */ + PBVHNode **grab_active_nodes[8]; + int grab_active_totnode[8]; float grab_delta[3], grab_delta_symmetry[3]; float old_grab_location[3]; int symmetry; /* Symmetry index between 0 and 7 */ @@ -202,7 +205,7 @@ int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d, view3d_get_object_project_mat(rv3d, ob, pmat); - BLI_pbvh_modified_bounding_box(ob->sculpt->tree, bb_min, bb_max); + BLI_pbvh_redraw_bounding_box(ob->sculpt->tree, bb_min, bb_max); rect->xmin = rect->ymin = INT_MAX; rect->xmax = rect->ymax = INT_MIN; @@ -239,13 +242,21 @@ void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar, view3d_get_transformation(ar, rv3d, ob, &mats); sculpt_get_redraw_rect(ar, rv3d,ob, &rect); - BLI_pbvh_reset_modified_bounding_box(ob->sculpt->tree); - +#if 1 + /* use some extra space just in case */ + rect.xmin -= 2; + rect.xmax += 2; + rect.ymin -= 2; + rect.ymax += 2; +#else + /* it was doing this before, allows to redraw a smaller + part of the screen but also gives artifaces .. */ rect.xmin += 2; rect.xmax -= 2; rect.ymin += 2; rect.ymax -= 2; +#endif view3d_calculate_clipping(bb, planes, &mats, &rect); @@ -253,8 +264,55 @@ void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar, ((float*)planes)[i] = -((float*)planes)[i]; MEM_freeN(bb); + + /* clear redraw flag from nodes */ + BLI_pbvh_update(ob->sculpt->tree, PBVH_UpdateRedraw, NULL, NULL); +} + +/*** Looping Over Nodes in a BVH Node ***/ + +typedef struct SculptVertexData { + float radius_squared; + float location[3]; + + MVert *mvert; + int *verts; + int i, index, totvert; + + float *co; + short *no; + float dist; +} SculptVertexData; + +static void sculpt_node_verts_init(Sculpt *sd, SculptSession *ss, PBVHNode *node, SculptVertexData *vd) +{ + vd->radius_squared= ss->cache->radius*ss->cache->radius; + VecCopyf(vd->location, ss->cache->location); + + vd->mvert= ss->mvert; + vd->i= 0; + BLI_pbvh_node_get_verts(node, &vd->verts, &vd->totvert); } +static int sculpt_node_verts_next(SculptVertexData *vd) +{ + while(vd->i < vd->totvert) { + float delta[3], dsq; + + vd->index= vd->verts[vd->i++]; + vd->co= vd->mvert[vd->index].co; + vd->no= vd->mvert[vd->index].no; + VECSUB(delta, vd->co, vd->location); + dsq = INPR(delta, delta); + + if(dsq < vd->radius_squared) { + vd->dist = sqrt(dsq); + return 1; + } + } + + return 0; +} /* ===== Sculpting ===== * @@ -294,6 +352,168 @@ static float brush_strength(Sculpt *sd, StrokeCache *cache) } } +/* Uses symm to selectively flip any axis of a coordinate. */ +static void flip_coord(float out[3], float in[3], const char symm) +{ + if(symm & SCULPT_SYMM_X) + out[0]= -in[0]; + else + out[0]= in[0]; + if(symm & SCULPT_SYMM_Y) + out[1]= -in[1]; + else + out[1]= in[1]; + if(symm & SCULPT_SYMM_Z) + out[2]= -in[2]; + else + out[2]= in[2]; +} + +/* Get a pixel from the texcache at (px, py) */ +static unsigned char get_texcache_pixel(const SculptSession *ss, int px, int py) +{ + unsigned *p; + p = ss->texcache + py * ss->texcache_side + px; + return ((unsigned char*)(p))[0]; +} + +static float get_texcache_pixel_bilinear(const SculptSession *ss, float u, float v) +{ + int x, y, x2, y2; + const int tc_max = ss->texcache_side - 1; + float urat, vrat, uopp; + + if(u < 0) u = 0; + else if(u >= ss->texcache_side) u = tc_max; + if(v < 0) v = 0; + else if(v >= ss->texcache_side) v = tc_max; + + x = floor(u); + y = floor(v); + x2 = x + 1; + y2 = y + 1; + + if(x2 > ss->texcache_side) x2 = tc_max; + if(y2 > ss->texcache_side) y2 = tc_max; + + urat = u - x; + vrat = v - y; + uopp = 1 - urat; + + return ((get_texcache_pixel(ss, x, y) * uopp + + get_texcache_pixel(ss, x2, y) * urat) * (1 - vrat) + + (get_texcache_pixel(ss, x, y2) * uopp + + get_texcache_pixel(ss, x2, y2) * urat) * vrat) / 255.0; +} + +/* Return a multiplier for brush strength on a particular vertex. */ +static float tex_strength(SculptSession *ss, Brush *br, float *point, const float len) +{ + MTex *tex = NULL; + float avg= 1; + + if(br->texact >= 0) + tex = br->mtex[br->texact]; + + if(!tex) { + avg= 1; + } + else if(tex->brush_map_mode == MTEX_MAP_MODE_3D) { + float jnk; + + /* Get strength by feeding the vertex + location directly into a texture */ + externtex(tex, point, &avg, + &jnk, &jnk, &jnk, &jnk); + } + else if(ss->texcache) { + const float bsize= ss->cache->pixel_radius * 2; + const float rot= tex->rot + ss->cache->rotation; + int px, py; + float flip[3], point_2d[2]; + + /* If the active area is being applied for symmetry, flip it + across the symmetry axis in order to project it. This insures + that the brush texture will be oriented correctly. */ + VecCopyf(flip, point); + flip_coord(flip, flip, ss->cache->symmetry); + projectf(ss->cache->mats, flip, point_2d); + + /* For Tile and Drag modes, get the 2D screen coordinates of the + and scale them up or down to the texture size. */ + if(tex->brush_map_mode == MTEX_MAP_MODE_TILED) { + const int sx= (const int)tex->size[0]; + const int sy= (const int)tex->size[1]; + + float fx= point_2d[0]; + float fy= point_2d[1]; + + float angle= atan2(fy, fx) - rot; + float flen= sqrtf(fx*fx + fy*fy); + + if(rot<0.001 && rot>-0.001) { + px= point_2d[0]; + py= point_2d[1]; + } else { + px= flen * cos(angle) + 2000; + py= flen * sin(angle) + 2000; + } + if(sx != 1) + px %= sx-1; + if(sy != 1) + py %= sy-1; + avg= get_texcache_pixel_bilinear(ss, ss->texcache_side*px/sx, ss->texcache_side*py/sy); + } + else if(tex->brush_map_mode == MTEX_MAP_MODE_FIXED) { + float fx= (point_2d[0] - ss->cache->mouse[0]) / bsize; + float fy= (point_2d[1] - ss->cache->mouse[1]) / bsize; + + float angle= atan2(fy, fx) - rot; + float flen= sqrtf(fx*fx + fy*fy); + + fx = flen * cos(angle) + 0.5; + fy = flen * sin(angle) + 0.5; + + avg= get_texcache_pixel_bilinear(ss, fx * ss->texcache_side, fy * ss->texcache_side); + } + } + + avg*= brush_curve_strength(br, len, ss->cache->radius); /* Falloff curve */ + + return avg; +} + +typedef struct { + Sculpt *sd; + SculptSession *ss; + float radius_squared; + ListBase *active_verts; + float area_normal[3]; +} SculptSearchSphereData; + +/* Test AABB against sphere */ +static int sculpt_search_sphere_cb(PBVHNode *node, + float bb_min[3], float bb_max[3], void *data_v) +{ + SculptSearchSphereData *data = data_v; + float *center = data->ss->cache->location, nearest[3]; + float t[3]; + int i; + + for(i = 0; i < 3; ++i) { + if(bb_min[i] > center[i]) + nearest[i] = bb_min[i]; + else if(bb_max[i] < center[i]) + nearest[i] = bb_max[i]; + else + nearest[i] = center[i]; + } + + VecSubf(t, center, nearest); + + return t[0] * t[0] + t[1] * t[1] + t[2] * t[2] < data->radius_squared; +} + /* Handles clipping against a mirror modifier and SCULPT_LOCK axis flags */ static void sculpt_clip(Sculpt *sd, SculptSession *ss, float *co, const float val[3]) { @@ -323,26 +543,41 @@ static void add_norm_if(float view_vec[3], float out[3], float out_flip[3], cons } } -/* Currently only for the draw brush; finds average normal for all active - vertices */ -static void calc_area_normal(Sculpt *sd, SculptSession *ss, float out[3], const ListBase* active_verts) +/* For draw/layer/flatten; finds average normal for all active vertices */ +static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3], PBVHNode **nodes, int totnode) { Brush *brush = paint_brush(&sd->paint); StrokeCache *cache = ss->cache; - ActiveData *node = active_verts->first; const int view = 0; /* XXX: should probably be a flag, not number: brush_type==SCULPT_TOOL_DRAW ? sculptmode_brush()->view : 0; */ - float out_flip[3]; - float *out_dir = cache->view_normal_symmetry; - - out[0]=out[1]=out[2] = out_flip[0]=out_flip[1]=out_flip[2] = 0; + float out[3] = {0.0f, 0.0f, 0.0f}; + float out_flip[3] = {0.0f, 0.0f, 0.0f}; + float out_dir[3]; + int n; + + VecCopyf(out_dir, cache->view_normal_symmetry); + + /* threaded loop over nodes */ + #pragma omp parallel for private(n) schedule(static) + for(n=0; nflag & BRUSH_ANCHORED) { - for(; node; node = node->next) - add_norm_if(out_dir, out, out_flip, cache->orig_norms[node->Index]); - } - else { - for(; node; node = node->next) - add_norm_if(out_dir, out, out_flip, ss->mvert[node->Index].no); + if(brush->flag & BRUSH_ANCHORED) { + while(sculpt_node_verts_next(&vd)) + add_norm_if(out_dir, nout, nout_flip, cache->orig_norms[vd.index]); + } + else { + while(sculpt_node_verts_next(&vd)) + add_norm_if(out_dir, nout, nout_flip, ss->mvert[vd.index].no); + } + + /* we sum per node and add together later for threads */ + #pragma omp critical + VecAddf(out, out, nout); + VecAddf(out_flip, out_flip, nout_flip); } if (out[0]==0.0 && out[1]==0.0 && out[2]==0.0) { @@ -351,32 +586,47 @@ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float out[3], const Normalize(out); - if(out_dir) { - out[0] = out_dir[0] * view + out[0] * (10-view); - out[1] = out_dir[1] * view + out[1] * (10-view); - out[2] = out_dir[2] * view + out[2] * (10-view); - } + out[0] = out_dir[0] * view + out[0] * (10-view); + out[1] = out_dir[1] * view + out[1] * (10-view); + out[2] = out_dir[2] * view + out[2] * (10-view); Normalize(out); + VecCopyf(area_normal, out); } -static void do_draw_brush(Sculpt *sd, SculptSession *ss, const ListBase* active_verts) +static void do_draw_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) { - float area_normal[3]; - ActiveData *node= active_verts->first; - - calc_area_normal(sd, ss, area_normal, active_verts); - - while(node){ - float *co= ss->mvert[node->Index].co; + Brush *brush = paint_brush(&sd->paint); + float offset[3], area_normal[3]; + float bstrength= ss->cache->bstrength; + int n; + + /* area normal */ + calc_area_normal(sd, ss, area_normal, nodes, totnode); + + /* offset with as much as possible factored in already */ + offset[0]= area_normal[0]*ss->cache->radius*ss->cache->scale[0]*bstrength; + offset[1]= area_normal[1]*ss->cache->radius*ss->cache->scale[1]*bstrength; + offset[2]= area_normal[2]*ss->cache->radius*ss->cache->scale[2]*bstrength; + + /* threaded loop over nodes */ + #pragma omp parallel for private(n) schedule(static) + for(n=0; ncache->radius*node->Fade*ss->cache->scale[0], - co[1]+area_normal[1]*ss->cache->radius*node->Fade*ss->cache->scale[1], - co[2]+area_normal[2]*ss->cache->radius*node->Fade*ss->cache->scale[2]}; + while(sculpt_node_verts_next(&vd)) { + /* offset vertex */ + const float fade = tex_strength(ss, brush, vd.co, vd.dist); + const float val[3]= {vd.co[0] + offset[0]*fade, + vd.co[1] + offset[1]*fade, + vd.co[2] + offset[2]*fade}; - sculpt_clip(sd, ss, co, val); + sculpt_clip(sd, ss, vd.co, val); + } - node= node->next; + BLI_pbvh_node_mark_update(nodes[n]); } } @@ -424,48 +674,67 @@ static void neighbor_average(SculptSession *ss, float avg[3], const int vert) VecCopyf(avg, ss->mvert[vert].co); } -static void do_smooth_brush(Sculpt *s, SculptSession *ss, const ListBase* active_verts) +static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) { - ActiveData *node= active_verts->first; - int i; - - for(i = 0; i < 2; ++i) { - while(node){ - float *co= ss->mvert[node->Index].co; - float avg[3], val[3]; - - neighbor_average(ss, avg, node->Index); - val[0] = co[0]+(avg[0]-co[0])*node->Fade; - val[1] = co[1]+(avg[1]-co[1])*node->Fade; - val[2] = co[2]+(avg[2]-co[2])*node->Fade; + Brush *brush = paint_brush(&sd->paint); + float bstrength= ss->cache->bstrength; + int iteration, n; + + for(iteration = 0; iteration < 2; ++iteration) { + #pragma omp parallel for private(n) schedule(static) + for(n=0; nnext; + BLI_pbvh_node_mark_update(nodes[n]); } } } -static void do_pinch_brush(Sculpt *s, SculptSession *ss, const ListBase* active_verts) +static void do_pinch_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) { - ActiveData *node= active_verts->first; + Brush *brush = paint_brush(&sd->paint); + float bstrength= ss->cache->bstrength; + int n; - while(node) { - float *co= ss->mvert[node->Index].co; - const float val[3]= {co[0]+(ss->cache->location[0]-co[0])*node->Fade, - co[1]+(ss->cache->location[1]-co[1])*node->Fade, - co[2]+(ss->cache->location[2]-co[2])*node->Fade}; + #pragma omp parallel for private(n) schedule(static) + for(n=0; nnext; + while(sculpt_node_verts_next(&vd)) { + const float fade = tex_strength(ss, brush, vd.co, vd.dist)*bstrength; + const float val[3]= {vd.co[0]+(vd.location[0]-vd.co[0])*fade, + vd.co[1]+(vd.location[1]-vd.co[1])*fade, + vd.co[2]+(vd.location[2]-vd.co[2])*fade}; + + sculpt_clip(sd, ss, vd.co, val); + } + + BLI_pbvh_node_mark_update(nodes[n]); } } -static void do_grab_brush(Sculpt *sd, SculptSession *ss) +static void do_grab_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) { ActiveData *node= ss->cache->grab_active_verts[ss->cache->symmetry].first; float add[3]; float grab_delta[3]; + int n; VecCopyf(grab_delta, ss->cache->grab_delta_symmetry); @@ -480,84 +749,116 @@ static void do_grab_brush(Sculpt *sd, SculptSession *ss) node= node->next; } + + for(n=0; npaint); + float bstrength= ss->cache->bstrength; float area_normal[3]; - ActiveData *node= active_verts->first; float lim= ss->cache->radius / 4; + int n; if(ss->cache->flip) lim = -lim; - calc_area_normal(sd, ss, area_normal, active_verts); + calc_area_normal(sd, ss, area_normal, nodes, totnode); - while(node){ - float *disp= &ss->layer_disps[node->Index]; - float *co= ss->mvert[node->Index].co; - float val[3]; - - *disp+= node->Fade; + #pragma omp parallel for private(n) schedule(static) + for(n=0; n 0 && *disp > lim)) - *disp = lim; - - val[0] = ss->mesh_co_orig[node->Index][0]+area_normal[0] * *disp*ss->cache->scale[0]; - val[1] = ss->mesh_co_orig[node->Index][1]+area_normal[1] * *disp*ss->cache->scale[1]; - val[2] = ss->mesh_co_orig[node->Index][2]+area_normal[2] * *disp*ss->cache->scale[2]; + sculpt_node_verts_init(sd, ss, nodes[n], &vd); - sculpt_clip(sd, ss, co, val); + while(sculpt_node_verts_next(&vd)) { + const float fade = tex_strength(ss, brush, vd.co, vd.dist)*bstrength; + float *disp= &ss->layer_disps[vd.index]; + float val[3]; + + *disp+= fade; + + /* Don't let the displacement go past the limit */ + if((lim < 0 && *disp < lim) || (lim > 0 && *disp > lim)) + *disp = lim; + + val[0] = ss->mesh_co_orig[vd.index][0]+area_normal[0] * *disp*ss->cache->scale[0]; + val[1] = ss->mesh_co_orig[vd.index][1]+area_normal[1] * *disp*ss->cache->scale[1]; + val[2] = ss->mesh_co_orig[vd.index][2]+area_normal[2] * *disp*ss->cache->scale[2]; - node= node->next; + sculpt_clip(sd, ss, vd.co, val); + } + + BLI_pbvh_node_mark_update(nodes[n]); } } -static void do_inflate_brush(Sculpt *s, SculptSession *ss, const ListBase *active_verts) +static void do_inflate_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) { - ActiveData *node= active_verts->first; - float add[3]; + Brush *brush = paint_brush(&sd->paint); + float bstrength= ss->cache->bstrength; + int n; - while(node) { - float *co= ss->mvert[node->Index].co; - short *no= ss->mvert[node->Index].no; - - add[0]= no[0]/ 32767.0f; - add[1]= no[1]/ 32767.0f; - add[2]= no[2]/ 32767.0f; - VecMulf(add, node->Fade * ss->cache->radius); - add[0]*= ss->cache->scale[0]; - add[1]*= ss->cache->scale[1]; - add[2]*= ss->cache->scale[2]; - VecAddf(add, add, co); + #pragma omp parallel for private(n) schedule(static) + for(n=0; nnext; + while(sculpt_node_verts_next(&vd)) { + const float fade = tex_strength(ss, brush, vd.co, vd.dist)*bstrength; + float add[3]; + + add[0]= vd.no[0]/32767.0f; + add[1]= vd.no[1]/32767.0f; + add[2]= vd.no[2]/32767.0f; + VecMulf(add, fade * ss->cache->radius); + add[0]*= ss->cache->scale[0]; + add[1]*= ss->cache->scale[1]; + add[2]*= ss->cache->scale[2]; + VecAddf(add, add, vd.co); + + sculpt_clip(sd, ss, vd.co, add); + } + + BLI_pbvh_node_mark_update(nodes[n]); } } -static void calc_flatten_center(SculptSession *ss, ActiveData *node, float co[3]) +static void calc_flatten_center(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, float co[3]) { - ActiveData *outer[FLATTEN_SAMPLE_SIZE]; - int i; + float outer_dist[FLATTEN_SAMPLE_SIZE]; + int outer_index[FLATTEN_SAMPLE_SIZE]; + int i, n; - for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) - outer[i] = node; + for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) { + outer_index[i] = 0; + outer_dist[i]= -1.0f; + } + + #pragma omp parallel for private(n) schedule(static) + for(n=0; nnext) { - for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) { - if(node->dist > outer[i]->dist) { - outer[i] = node; - break; + sculpt_node_verts_init(sd, ss, nodes[n], &vd); + + while(sculpt_node_verts_next(&vd)) { + for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) { + if(vd.dist > outer_dist[i]) { + outer_index[i] = vd.index; + break; + } } } + + BLI_pbvh_node_mark_update(nodes[n]); } co[0] = co[1] = co[2] = 0.0f; for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) - VecAddf(co, co, ss->mvert[outer[i]->Index].co); + VecAddf(co, co, ss->mvert[outer_index[i]].co); VecMulf(co, 1.0f / FLATTEN_SAMPLE_SIZE); } @@ -589,15 +890,17 @@ static int plane_point_side(float co[3], float plane_normal[3], float plane_cent return d <= 0.0f; } -static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, const ListBase *active_verts, int clay) +static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, int clay) { - ActiveData *node= active_verts->first; /* area_normal and cntr define the plane towards which vertices are squashed */ + Brush *brush = paint_brush(&sd->paint); + float bstrength= ss->cache->bstrength; float area_normal[3]; float cntr[3], cntr2[3], bstr = 0; - int flip = 0; - calc_area_normal(sd, ss, area_normal, active_verts); - calc_flatten_center(ss, node, cntr); + int n, flip = 0; + + calc_area_normal(sd, ss, area_normal, nodes, totnode); + calc_flatten_center(sd, ss, nodes, totnode, cntr); if(clay) { bstr= brush_strength(sd, ss->cache); @@ -608,211 +911,58 @@ static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, const ListBase flip = bstr < 0; } - while(node){ - float *co= ss->mvert[node->Index].co; - float intr[3], val[3]; + #pragma omp parallel for private(n) schedule(static) + for(n=0; n FLT_EPSILON) - VecMulf(val, node->Fade / bstr); + while(sculpt_node_verts_next(&vd)) { + float intr[3], val[3]; + + if(!clay || plane_point_side(vd.co, area_normal, cntr2, flip)) { + const float fade = tex_strength(ss, brush, vd.co, vd.dist)*bstrength; + + /* Find the intersection between squash-plane and vertex (along the area normal) */ + point_plane_project(intr, vd.co, area_normal, cntr); + + VecSubf(val, intr, vd.co); + + if(clay) { + if(bstr > FLT_EPSILON) + VecMulf(val, fade / bstr); + else + VecMulf(val, fade); + /* Clay displacement */ + val[0]+=area_normal[0] * ss->cache->scale[0]*fade; + val[1]+=area_normal[1] * ss->cache->scale[1]*fade; + val[2]+=area_normal[2] * ss->cache->scale[2]*fade; + } else - VecMulf(val, node->Fade); - /* Clay displacement */ - val[0]+=area_normal[0] * ss->cache->scale[0]*node->Fade; - val[1]+=area_normal[1] * ss->cache->scale[1]*node->Fade; - val[2]+=area_normal[2] * ss->cache->scale[2]*node->Fade; - } - else - VecMulf(val, fabs(node->Fade)); - - VecAddf(val, val, co); - - sculpt_clip(sd, ss, co, val); - - } - - node= node->next; - } -} - -/* Uses symm to selectively flip any axis of a coordinate. */ -static void flip_coord(float out[3], float in[3], const char symm) -{ - if(symm & SCULPT_SYMM_X) - out[0]= -in[0]; - else - out[0]= in[0]; - if(symm & SCULPT_SYMM_Y) - out[1]= -in[1]; - else - out[1]= in[1]; - if(symm & SCULPT_SYMM_Z) - out[2]= -in[2]; - else - out[2]= in[2]; -} - -/* Get a pixel from the texcache at (px, py) */ -static unsigned char get_texcache_pixel(const SculptSession *ss, int px, int py) -{ - unsigned *p; - p = ss->texcache + py * ss->texcache_side + px; - return ((unsigned char*)(p))[0]; -} - -static float get_texcache_pixel_bilinear(const SculptSession *ss, float u, float v) -{ - int x, y, x2, y2; - const int tc_max = ss->texcache_side - 1; - float urat, vrat, uopp; - - if(u < 0) u = 0; - else if(u >= ss->texcache_side) u = tc_max; - if(v < 0) v = 0; - else if(v >= ss->texcache_side) v = tc_max; - - x = floor(u); - y = floor(v); - x2 = x + 1; - y2 = y + 1; - - if(x2 > ss->texcache_side) x2 = tc_max; - if(y2 > ss->texcache_side) y2 = tc_max; - - urat = u - x; - vrat = v - y; - uopp = 1 - urat; - - return ((get_texcache_pixel(ss, x, y) * uopp + - get_texcache_pixel(ss, x2, y) * urat) * (1 - vrat) + - (get_texcache_pixel(ss, x, y2) * uopp + - get_texcache_pixel(ss, x2, y2) * urat) * vrat) / 255.0; -} - -/* Return a multiplier for brush strength on a particular vertex. */ -static float tex_strength(SculptSession *ss, Brush *br, float *point, const float len) -{ - MTex *tex = NULL; - float avg= 1; - - if(br->texact >= 0) - tex = br->mtex[br->texact]; - - if(!tex) { - avg= 1; - } - else if(tex->brush_map_mode == MTEX_MAP_MODE_3D) { - float jnk; + VecMulf(val, fabs(fade)); - /* Get strength by feeding the vertex - location directly into a texture */ - externtex(tex, point, &avg, - &jnk, &jnk, &jnk, &jnk); - } - else if(ss->texcache) { - const float bsize= ss->cache->pixel_radius * 2; - const float rot= tex->rot + ss->cache->rotation; - int px, py; - float flip[3], point_2d[2]; - - /* If the active area is being applied for symmetry, flip it - across the symmetry axis in order to project it. This insures - that the brush texture will be oriented correctly. */ - VecCopyf(flip, point); - flip_coord(flip, flip, ss->cache->symmetry); - projectf(ss->cache->mats, flip, point_2d); + VecAddf(val, val, vd.co); - /* For Tile and Drag modes, get the 2D screen coordinates of the - and scale them up or down to the texture size. */ - if(tex->brush_map_mode == MTEX_MAP_MODE_TILED) { - const int sx= (const int)tex->size[0]; - const int sy= (const int)tex->size[1]; - - float fx= point_2d[0]; - float fy= point_2d[1]; - - float angle= atan2(fy, fx) - rot; - float flen= sqrtf(fx*fx + fy*fy); - - if(rot<0.001 && rot>-0.001) { - px= point_2d[0]; - py= point_2d[1]; - } else { - px= flen * cos(angle) + 2000; - py= flen * sin(angle) + 2000; + sculpt_clip(sd, ss, vd.co, val); } - if(sx != 1) - px %= sx-1; - if(sy != 1) - py %= sy-1; - avg= get_texcache_pixel_bilinear(ss, ss->texcache_side*px/sx, ss->texcache_side*py/sy); } - else if(tex->brush_map_mode == MTEX_MAP_MODE_FIXED) { - float fx= (point_2d[0] - ss->cache->mouse[0]) / bsize; - float fy= (point_2d[1] - ss->cache->mouse[1]) / bsize; - - float angle= atan2(fy, fx) - rot; - float flen= sqrtf(fx*fx + fy*fy); - - fx = flen * cos(angle) + 0.5; - fy = flen * sin(angle) + 0.5; - avg= get_texcache_pixel_bilinear(ss, fx * ss->texcache_side, fy * ss->texcache_side); - } + BLI_pbvh_node_mark_update(nodes[n]); } - - avg*= brush_curve_strength(br, len, ss->cache->radius); /* Falloff curve */ - - return avg; } -typedef struct { - SculptSession *ss; - float radius_squared; - ListBase *active_verts; -} SculptSearchSphereData; - -/* Test AABB against sphere */ -static int sculpt_search_sphere_cb(float bb_min[3], float bb_max[3], - void *data_v) +static void sculpt_brush_hit_cb(PBVHNode *node, void *data_v) { SculptSearchSphereData *data = data_v; - float *center = data->ss->cache->location, nearest[3]; - float t[3]; - int i; - - for(i = 0; i < 3; ++i) { - if(bb_min[i] > center[i]) - nearest[i] = bb_min[i]; - else if(bb_max[i] < center[i]) - nearest[i] = bb_max[i]; - else - nearest[i] = center[i]; - } - - VecSubf(t, center, nearest); + int i, totvert, *verts; - return t[0] * t[0] + t[1] * t[1] + t[2] * t[2] < data->radius_squared; -} + BLI_pbvh_node_get_verts(node, &verts, &totvert); -static void sculpt_brush_hit_cb(const int *face_indices, - const int *vert_indices, - int totface, int totvert, void *data_v) -{ - SculptSearchSphereData *data = data_v; - int i; - - /* XXX: for now we still make an active vert list, - can be fixed later */ + /* XXX: for now grab brush still uses an active vert list, + will be fixed later */ for(i = 0; i < totvert; ++i) { - int v = vert_indices[i]; + int v = verts[i]; float delta[3], dsq; VecSubf(delta, data->ss->mvert[v].co, @@ -828,65 +978,82 @@ static void sculpt_brush_hit_cb(const int *face_indices, BLI_addtail(data->active_verts, adata); } } + + BLI_pbvh_node_mark_update(node); } static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache) { Brush *brush = paint_brush(&sd->paint); - ListBase local_active_verts = {0, 0}; - ListBase *grab_active_verts = &ss->cache->grab_active_verts[ss->cache->symmetry]; - ListBase *active_verts = &local_active_verts; - const float bstrength= brush_strength(sd, cache); //KeyBlock *keyblock= NULL; /*XXX: ob_get_keyblock(OBACT); */ - ActiveData *adata; - - /* For grab brush, only find active vertices once */ - if(brush->sculpt_tool == SCULPT_TOOL_GRAB) - active_verts = grab_active_verts; + PBVHNode **nodes= NULL; + int totnode; + SculptSearchSphereData data; + + data.ss = ss; + data.sd = sd; + data.radius_squared = ss->cache->radius * ss->cache->radius; /* Build a list of all vertices that are potentially within the brush's area of influence */ - if(brush->sculpt_tool != SCULPT_TOOL_GRAB || cache->first_time) { - SculptSearchSphereData data; - data.ss = ss; - data.radius_squared = ss->cache->radius * ss->cache->radius; - data.active_verts = active_verts; - BLI_pbvh_search(ss->tree, sculpt_search_sphere_cb, &data, - sculpt_brush_hit_cb, &data, - PBVH_SEARCH_MARK_MODIFIED); - - /* Update brush strength for each vertex */ - for(adata = active_verts->first; adata; adata = adata->next) - adata->Fade = tex_strength(ss, brush, ss->mvert[adata->Index].co, adata->dist) * bstrength; + if(brush->sculpt_tool == SCULPT_TOOL_GRAB) { + if(cache->first_time) { + const float bstrength= brush_strength(sd, cache); + ListBase *grab_active_verts = &ss->cache->grab_active_verts[ss->cache->symmetry]; + ActiveData *adata; + + data.active_verts = grab_active_verts; + BLI_pbvh_search_callback(ss->tree, sculpt_search_sphere_cb, &data, + sculpt_brush_hit_cb, &data); + + BLI_pbvh_search_gather(ss->tree, sculpt_search_sphere_cb, &data, + &nodes, &totnode); + + ss->cache->grab_active_nodes[ss->cache->symmetry]= nodes; + ss->cache->grab_active_totnode[ss->cache->symmetry]= totnode; + + /* Update brush strength for each vertex */ + for(adata = data.active_verts->first; adata; adata = adata->next) + adata->Fade = tex_strength(ss, brush, ss->mvert[adata->Index].co, adata->dist) * bstrength; + } + else { + nodes= ss->cache->grab_active_nodes[ss->cache->symmetry]; + totnode= ss->cache->grab_active_totnode[ss->cache->symmetry]; + } + } + else { + BLI_pbvh_search_gather(ss->tree, sculpt_search_sphere_cb, &data, + &nodes, &totnode); } /* Only act if some verts are inside the brush area */ - if(active_verts->first) { + if(totnode) { /* Apply one type of brush action */ switch(brush->sculpt_tool){ case SCULPT_TOOL_DRAW: - do_draw_brush(sd, ss, active_verts); + do_draw_brush(sd, ss, nodes, totnode); break; case SCULPT_TOOL_SMOOTH: - do_smooth_brush(sd, ss, active_verts); + do_smooth_brush(sd, ss, nodes, totnode); break; case SCULPT_TOOL_PINCH: - do_pinch_brush(sd, ss, active_verts); + do_pinch_brush(sd, ss, nodes, totnode); break; case SCULPT_TOOL_INFLATE: - do_inflate_brush(sd, ss, active_verts); + do_inflate_brush(sd, ss, nodes, totnode); break; case SCULPT_TOOL_GRAB: - do_grab_brush(sd, ss); + do_grab_brush(sd, ss, nodes, totnode); break; case SCULPT_TOOL_LAYER: - do_layer_brush(sd, ss, active_verts); + do_layer_brush(sd, ss, nodes, totnode); break; case SCULPT_TOOL_FLATTEN: - do_flatten_clay_brush(sd, ss, active_verts, 0); + do_flatten_clay_brush(sd, ss, nodes, totnode, 0); break; case SCULPT_TOOL_CLAY: - do_flatten_clay_brush(sd, ss, active_verts, 1); + do_flatten_clay_brush(sd, ss, nodes, totnode, 1); + break; } #if 0 @@ -912,9 +1079,10 @@ static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache) addlisttolist(&ss->modified_verts, &active_verts); } #endif - - BLI_freelistN(&local_active_verts); - + + if(brush->sculpt_tool != SCULPT_TOOL_GRAB) + if(nodes) + MEM_freeN(nodes); } } @@ -937,6 +1105,7 @@ static void do_symmetrical_brush_actions(Sculpt *sd, SculptSession *ss) VecCopyf(cache->location, cache->true_location); VecCopyf(cache->grab_delta_symmetry, cache->grab_delta); cache->symmetry = 0; + cache->bstrength = brush_strength(sd, cache); do_brush_action(sd, ss, cache); for(i = 1; i <= symm; ++i) { @@ -1133,8 +1302,11 @@ static void sculpt_cache_free(StrokeCache *cache) MEM_freeN(cache->face_norms); if(cache->mats) MEM_freeN(cache->mats); - for(i = 0; i < 8; ++i) + for(i = 0; i < 8; ++i) { BLI_freelistN(&cache->grab_active_verts[i]); + if(cache->grab_active_nodes[i]) + MEM_freeN(cache->grab_active_nodes[i]); + } MEM_freeN(cache); } @@ -1310,23 +1482,23 @@ typedef struct { float dist; } SculptRaycastData; -void sculpt_raycast_cb(const int *face_indices, - const int *vert_indices, - int totface, int totvert, void *data_v) +void sculpt_raycast_cb(PBVHNode *node, void *data_v) { SculptRaycastData *srd = data_v; MVert *vert = srd->ss->mvert; - int i; + int i, totface, *faces; + + BLI_pbvh_node_get_faces(node, &faces, &totface); for(i = 0; i < totface; ++i) { - MFace *f = srd->ss->mface + face_indices[i]; + MFace *f = srd->ss->mface + faces[i]; if(ray_face_intersection(srd->ray_start, srd->ray_normal, vert[f->v1].co, vert[f->v2].co, vert[f->v3].co, f->v4 ? vert[f->v4].co : NULL, &srd->dist)) { - srd->hit = face_indices[i]; + srd->hit = faces[i]; } } } @@ -1352,7 +1524,7 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou srd.hit = -1; BLI_pbvh_raycast(vc->obact->sculpt->tree, sculpt_raycast_cb, &srd, ray_start, ray_normal); - + VecCopyf(out, ray_normal); VecMulf(out, srd.dist); VecAddf(out, out, ray_start); @@ -1459,17 +1631,9 @@ static void sculpt_flush_update(bContext *C) multires_mark_as_modified(ob); } + BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL, NULL); redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r); - if(!redraw) { - BLI_pbvh_search(ss->tree, BLI_pbvh_update_search_cb, - PBVH_NodeData, NULL, NULL, - PBVH_SEARCH_UPDATE); - - redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), - ob, &r); - } - if(redraw) { r.xmin += ar->winrct.xmin + 1; r.xmax += ar->winrct.xmin - 1; @@ -1493,9 +1657,6 @@ static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op, wmEvent Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; - if(paint_brush(&CTX_data_tool_settings(C)->sculpt->paint)->sculpt_tool == SCULPT_TOOL_GRAB) - BLI_pbvh_toggle_modified_lock(ss->tree); - ED_view3d_init_mats_rv3d(ob, CTX_wm_region_view3d(C)); sculpt_brush_stroke_init_properties(C, op, event, ss); @@ -1527,9 +1688,6 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke) if(ss->cache) { Sculpt *sd = CTX_data_tool_settings(C)->sculpt; - if(paint_brush(&CTX_data_tool_settings(C)->sculpt->paint)->sculpt_tool == SCULPT_TOOL_GRAB) - BLI_pbvh_toggle_modified_lock(ss->tree); - sculpt_cache_free(ss->cache); ss->cache = NULL; sculpt_undo_push(C, sd); @@ -1707,3 +1865,4 @@ void ED_operatortypes_sculpt() WM_operatortype_append(SCULPT_OT_sculptmode_toggle); WM_operatortype_append(SCULPT_OT_set_persistent_base); } + -- cgit v1.2.3 From f20b3b3102f2cdb250b77b06a9d3287efcbc82ba Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Tue, 3 Nov 2009 21:58:24 +0000 Subject: Removed the unused partial redraw flag from sculpt. It's original purpose was to work around graphics cards that didn't support the old partial redraw method, but that should no longer be an issue. --- source/blender/editors/space_view3d/drawobject.c | 4 ---- source/blender/makesdna/DNA_scene_types.h | 1 - source/blender/makesrna/intern/rna_sculpt_paint.c | 4 ---- 3 files changed, 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index f7dba10200a..4f41b6e5045 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2971,10 +2971,6 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D if (obedit!=ob && finalDM) finalDM->release(finalDM); } -// else if(!em && (G.f & G_SCULPTMODE) &&(scene->sculptdata.flags & SCULPT_DRAW_FAST) && -// OBACT==ob && !sculpt_modifiers_active(ob)) { -// XXX sculptmode_draw_mesh(0); -// } else { /* don't create boundbox here with mesh_get_bb(), the derived system will make it, puts deformed bb's OK */ if(me->totface<=4 || boundbox_clip(rv3d, ob->obmat, (ob->bb)? ob->bb: me->bb)) { diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index bafe8cc3162..c39712078c2 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1052,7 +1052,6 @@ typedef enum SculptFlags { SCULPT_SYMM_Y = 2, SCULPT_SYMM_Z = 4, SCULPT_INPUT_SMOOTH = 8, - SCULPT_DRAW_FAST = 16, SCULPT_DRAW_BRUSH = 32, SCULPT_LOCK_X = 64, SCULPT_LOCK_Y = 128, diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index 481abc983c2..5155090b67b 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -207,10 +207,6 @@ static void rna_def_sculpt(BlenderRNA *brna) prop= RNA_def_property(srna, "show_brush", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", SCULPT_DRAW_BRUSH); RNA_def_property_ui_text(prop, "Show Brush", ""); - - prop= RNA_def_property(srna, "partial_redraw", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flags", SCULPT_DRAW_FAST); - RNA_def_property_ui_text(prop, "Partial Redraw", "Optimize sculpting by only refreshing modified faces."); } static void rna_def_vertex_paint(BlenderRNA *brna) -- cgit v1.2.3 From a4e91f8f1a820f0c6d063d601ff8042eca13a501 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Tue, 3 Nov 2009 22:50:09 +0000 Subject: Moved the show brush flag from sculpt to paint, and it now shows/hides the brush as expected. Also fixed some errors in the UI scripts. --- source/blender/blenkernel/intern/paint.c | 2 ++ source/blender/editors/sculpt_paint/paint_stroke.c | 6 +++++- source/blender/makesdna/DNA_scene_types.h | 10 +++++++--- source/blender/makesrna/intern/rna_sculpt_paint.c | 8 ++++---- 4 files changed, 18 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 3dfe3966e2f..5cc2190c088 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -175,6 +175,8 @@ void paint_init(Paint *p, const char col[3]) memcpy(p->paint_cursor_col, col, 3); p->paint_cursor_col[3] = 128; + + p->flags |= PAINT_SHOW_BRUSH; } void free_paint(Paint *paint) diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index c2d22089442..c47b83b7e70 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -101,7 +101,11 @@ static void paint_draw_smooth_stroke(bContext *C, int x, int y, void *customdata static void paint_draw_cursor(bContext *C, int x, int y, void *customdata) { - Brush *brush = paint_brush(paint_get_active(CTX_data_scene(C))); + Paint *paint = paint_get_active(CTX_data_scene(C)); + Brush *brush = paint_brush(paint); + + if(!(paint->flags & PAINT_SHOW_BRUSH)) + return; glColor4ubv(paint_get_active(CTX_data_scene(C))->paint_cursor_col); glEnable(GL_LINE_SMOOTH); diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index c39712078c2..810b34a746e 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -481,7 +481,7 @@ typedef struct Paint { void *paint_cursor; unsigned char paint_cursor_col[4]; - int pad; + int flags; } Paint; typedef struct ImagePaintSettings { @@ -1046,13 +1046,17 @@ typedef struct Scene { #define FFMPEG_MULTIPLEX_AUDIO 1 #define FFMPEG_AUTOSPLIT_OUTPUT 2 +/* Paint.flags */ +typedef enum { + PAINT_SHOW_BRUSH = 1 +} PaintFlags; + /* Sculpt.flags */ +/* These can eventually be moved to paint flags? */ typedef enum SculptFlags { SCULPT_SYMM_X = 1, SCULPT_SYMM_Y = 2, SCULPT_SYMM_Z = 4, - SCULPT_INPUT_SMOOTH = 8, - SCULPT_DRAW_BRUSH = 32, SCULPT_LOCK_X = 64, SCULPT_LOCK_Y = 128, SCULPT_LOCK_Z = 256 diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index 5155090b67b..89e29596746 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -170,6 +170,10 @@ static void rna_def_paint(BlenderRNA *brna) RNA_def_property_pointer_funcs(prop, "rna_Paint_active_brush_get", "rna_Paint_active_brush_set", NULL); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Brush", "Active paint brush."); + + prop= RNA_def_property(srna, "show_brush", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flags", PAINT_SHOW_BRUSH); + RNA_def_property_ui_text(prop, "Show Brush", ""); } static void rna_def_sculpt(BlenderRNA *brna) @@ -203,10 +207,6 @@ static void rna_def_sculpt(BlenderRNA *brna) prop= RNA_def_property(srna, "lock_z", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", SCULPT_LOCK_Z); RNA_def_property_ui_text(prop, "Lock Z", "Disallow changes to the Z axis of vertices."); - - prop= RNA_def_property(srna, "show_brush", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flags", SCULPT_DRAW_BRUSH); - RNA_def_property_ui_text(prop, "Show Brush", ""); } static void rna_def_vertex_paint(BlenderRNA *brna) -- cgit v1.2.3 From 8b8f8fc11e8369b740ca00e27db771077b0ffbb5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 Nov 2009 20:15:17 +0000 Subject: Sculpt: fix bug where mouse release event was not caught in some cases. --- source/blender/editors/sculpt_paint/paint_stroke.c | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index c47b83b7e70..6d7fd826534 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -257,8 +257,20 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) //ED_region_tag_redraw(ar); } - /* TODO: fix hardcoded event here */ - if(first || event->type == MOUSEMOVE || (event->type == TIMER && (event->customdata == stroke->timer))) { + /* TODO: fix hardcoded events here */ + if(event->type == LEFTMOUSE && event->val == KM_RELEASE) { + /* exit stroke, free data */ + if(stroke->smooth_stroke_cursor) + WM_paint_cursor_end(CTX_wm_manager(C), stroke->smooth_stroke_cursor); + + if(stroke->timer) + WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), stroke->timer); + + stroke->done(C, stroke); + MEM_freeN(stroke); + return OPERATOR_FINISHED; + } + else if(first || event->type == MOUSEMOVE || (event->type == TIMER && (event->customdata == stroke->timer))) { if(stroke->stroke_started) { if(paint_smooth_stroke(stroke, mouse, event)) { if(paint_space_stroke_enabled(stroke->brush)) { @@ -272,18 +284,6 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event) ;//ED_region_tag_redraw(ar); } } - else if(event->type == LEFTMOUSE && event->val == KM_RELEASE) { - /* exit stroke, free data */ - if(stroke->smooth_stroke_cursor) - WM_paint_cursor_end(CTX_wm_manager(C), stroke->smooth_stroke_cursor); - - if(stroke->timer) - WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), stroke->timer); - - stroke->done(C, stroke); - MEM_freeN(stroke); - return OPERATOR_FINISHED; - } return OPERATOR_RUNNING_MODAL; } -- cgit v1.2.3 From 4bdfa8a7d71c7b982a1f13191cfc4ee07502d473 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 Nov 2009 20:19:41 +0000 Subject: Sculpt: split generic part of image paint undo system into separate paint_undo.c file, to be reused for sculpt. --- source/blender/editors/include/ED_sculpt.h | 9 +- source/blender/editors/sculpt_paint/paint_image.c | 212 ++++--------------- source/blender/editors/sculpt_paint/paint_intern.h | 10 + source/blender/editors/sculpt_paint/paint_undo.c | 231 +++++++++++++++++++++ .../blender/editors/space_view3d/view3d_header.c | 2 +- source/blender/editors/util/ed_util.c | 2 +- source/blender/editors/util/undo.c | 4 +- 7 files changed, 296 insertions(+), 174 deletions(-) create mode 100644 source/blender/editors/sculpt_paint/paint_undo.c (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_sculpt.h b/source/blender/editors/include/ED_sculpt.h index 12ebd74b64b..085c8e894f8 100644 --- a/source/blender/editors/include/ED_sculpt.h +++ b/source/blender/editors/include/ED_sculpt.h @@ -45,8 +45,11 @@ void sculpt_get_redraw_planes(float planes[4][4], struct ARegion *ar, void ED_operatortypes_paint(void); void ED_keymap_paint(struct wmKeyConfig *keyconf); -/* paint_image.c */ -void undo_imagepaint_step(int step); -void undo_imagepaint_clear(void); +/* paint_undo.c */ +#define UNDO_PAINT_IMAGE 0 +#define UNDO_PAINT_MESH 1 + +void ED_undo_paint_step(struct bContext *C, int type, int step); +void ED_undo_paint_free(void); #endif diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 929f854242f..d8c4d505fc9 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -86,6 +86,7 @@ #include "ED_image.h" #include "ED_object.h" #include "ED_screen.h" +#include "ED_sculpt.h" #include "ED_view3d.h" #include "WM_api.h" @@ -113,8 +114,6 @@ #define IMAPAINT_TILE_SIZE (1 << IMAPAINT_TILE_BITS) #define IMAPAINT_TILE_NUMBER(size) (((size)+IMAPAINT_TILE_SIZE-1) >> IMAPAINT_TILE_BITS) -#define MAXUNDONAME 64 - static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, short texpaint); @@ -204,7 +203,7 @@ typedef struct ProjPaintImage { Image *ima; ImBuf *ibuf; ImagePaintPartialRedraw *partRedrawRect; - struct UndoTile **undoRect; /* only used to build undo tiles after painting */ + void **undoRect; /* only used to build undo tiles after painting */ int touch; } ProjPaintImage; @@ -332,32 +331,20 @@ typedef struct ProjPixelClone { /* Finish projection painting structs */ +typedef struct UndoImageTile { + struct UndoImageTile *next, *prev; + + char idname[MAX_ID_NAME]; /* name instead of pointer*/ -typedef struct UndoTile { - struct UndoTile *next, *prev; - ID id; void *rect; int x, y; -} UndoTile; - -typedef struct UndoElem { - struct UndoElem *next, *prev; - char name[MAXUNDONAME]; - uintptr_t undosize; +} UndoImageTile; - ImBuf *ibuf; - ListBase tiles; -} UndoElem; - -static ListBase undobase = {NULL, NULL}; -static UndoElem *curundo = NULL; static ImagePaintPartialRedraw imapaintpartial = {0, 0, 0, 0, 0}; /* UNDO */ -/* internal functions */ - -static void undo_copy_tile(UndoTile *tile, ImBuf *tmpibuf, ImBuf *ibuf, int restore) +static void undo_copy_tile(UndoImageTile *tile, ImBuf *tmpibuf, ImBuf *ibuf, int restore) { /* copy or swap contents of tile->rect and region in ibuf->rect */ IMB_rectcpy(tmpibuf, ibuf, 0, 0, tile->x*IMAPAINT_TILE_SIZE, @@ -374,49 +361,52 @@ static void undo_copy_tile(UndoTile *tile, ImBuf *tmpibuf, ImBuf *ibuf, int rest tile->y*IMAPAINT_TILE_SIZE, 0, 0, IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE); } -static UndoTile *undo_init_tile(ID *id, ImBuf *ibuf, ImBuf **tmpibuf, int x_tile, int y_tile) +static void *image_undo_push_tile(Image *ima, ImBuf *ibuf, ImBuf **tmpibuf, int x_tile, int y_tile) { - UndoTile *tile; + ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_IMAGE); + UndoImageTile *tile; int allocsize; + + for(tile=lb->first; tile; tile=tile->next) + if(tile->x == x_tile && tile->y == y_tile && strcmp(tile->idname, ima->id.name)==0) + return tile->rect; if (*tmpibuf==NULL) *tmpibuf = IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, IB_rectfloat|IB_rect, 0); - tile= MEM_callocN(sizeof(UndoTile), "ImaUndoTile"); - tile->id= *id; + tile= MEM_callocN(sizeof(UndoImageTile), "UndoImageTile"); + strcpy(tile->idname, ima->id.name); tile->x= x_tile; tile->y= y_tile; allocsize= IMAPAINT_TILE_SIZE*IMAPAINT_TILE_SIZE*4; allocsize *= (ibuf->rect_float)? sizeof(float): sizeof(char); - tile->rect= MEM_mapallocN(allocsize, "ImaUndoRect"); + tile->rect= MEM_mapallocN(allocsize, "UndeImageTile.rect"); undo_copy_tile(tile, *tmpibuf, ibuf, 0); - curundo->undosize += allocsize; + undo_paint_push_count_alloc(UNDO_PAINT_IMAGE, allocsize); - BLI_addtail(&curundo->tiles, tile); + BLI_addtail(lb, tile); - return tile; + return tile->rect; } -static void undo_restore(UndoElem *undo) +static void image_undo_restore(bContext *C, ListBase *lb) { + Main *bmain= CTX_data_main(C); Image *ima = NULL; ImBuf *ibuf, *tmpibuf; - UndoTile *tile; - - if(!undo) - return; + UndoImageTile *tile; tmpibuf= IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, IB_rectfloat|IB_rect, 0); - for(tile=undo->tiles.first; tile; tile=tile->next) { + for(tile=lb->first; tile; tile=tile->next) { /* find image based on name, pointer becomes invalid with global undo */ - if(ima && strcmp(tile->id.name, ima->id.name)==0); + if(ima && strcmp(tile->idname, ima->id.name)==0); else { - for(ima=G.main->image.first; ima; ima=ima->id.next) - if(strcmp(tile->id.name, ima->id.name)==0) + for(ima=bmain->image.first; ima; ima=ima->id.next) + if(strcmp(tile->idname, ima->id.name)==0) break; } @@ -435,117 +425,12 @@ static void undo_restore(UndoElem *undo) IMB_freeImBuf(tmpibuf); } -static void undo_free(UndoElem *undo) +static void image_undo_free(ListBase *lb) { - UndoTile *tile; + UndoImageTile *tile; - for(tile=undo->tiles.first; tile; tile=tile->next) + for(tile=lb->first; tile; tile=tile->next) MEM_freeN(tile->rect); - BLI_freelistN(&undo->tiles); -} - -static void undo_imagepaint_push_begin(char *name) -{ - UndoElem *uel; - int nr; - - /* Undo push is split up in begin and end, the reason is that as painting - * happens more tiles are added to the list, and at the very end we know - * how much memory the undo used to remove old undo elements */ - - /* remove all undos after (also when curundo==NULL) */ - while(undobase.last != curundo) { - uel= undobase.last; - undo_free(uel); - BLI_freelinkN(&undobase, uel); - } - - /* make new */ - curundo= uel= MEM_callocN(sizeof(UndoElem), "undo file"); - BLI_addtail(&undobase, uel); - - /* name can be a dynamic string */ - strncpy(uel->name, name, MAXUNDONAME-1); - - /* limit amount to the maximum amount*/ - nr= 0; - uel= undobase.last; - while(uel) { - nr++; - if(nr==U.undosteps) break; - uel= uel->prev; - } - if(uel) { - while(undobase.first!=uel) { - UndoElem *first= undobase.first; - undo_free(first); - BLI_freelinkN(&undobase, first); - } - } -} - -static void undo_imagepaint_push_end() -{ - UndoElem *uel; - uintptr_t totmem, maxmem; - - if(U.undomemory != 0) { - /* limit to maximum memory (afterwards, we can't know in advance) */ - totmem= 0; - maxmem= ((uintptr_t)U.undomemory)*1024*1024; - - uel= undobase.last; - while(uel) { - totmem+= uel->undosize; - if(totmem>maxmem) break; - uel= uel->prev; - } - - if(uel) { - while(undobase.first!=uel) { - UndoElem *first= undobase.first; - undo_free(first); - BLI_freelinkN(&undobase, first); - } - } - } -} - -void undo_imagepaint_step(int step) -{ - UndoElem *undo; - - if(step==1) { - if(curundo==NULL); - else { - if(G.f & G_DEBUG) printf("undo %s\n", curundo->name); - undo_restore(curundo); - curundo= curundo->prev; - } - } - else if(step==-1) { - if((curundo!=NULL && curundo->next==NULL) || undobase.first==NULL); - else { - undo= (curundo && curundo->next)? curundo->next: undobase.first; - undo_restore(undo); - curundo= undo; - if(G.f & G_DEBUG) printf("redo %s\n", undo->name); - } - } -} - -void undo_imagepaint_clear(void) -{ - UndoElem *uel; - - uel= undobase.first; - while(uel) { - undo_free(uel); - uel= uel->next; - } - - BLI_freelistN(&undobase); - curundo= NULL; } /* fast projection bucket array lookup, use the safe version for bound checking */ @@ -3316,7 +3201,7 @@ static void project_paint_end(ProjPaintState *ps) ProjPixel *projPixel; ImBuf *tmpibuf = NULL, *tmpibuf_float = NULL; LinkNode *pixel_node; - UndoTile *tile; + void *tilerect; MemArena *arena = ps->arena_mt[0]; /* threaded arena re-used for non threaded case */ int bucket_tot = (ps->buckets_x * ps->buckets_y); /* we could get an X/Y but easier to loop through all possible buckets */ @@ -3332,8 +3217,8 @@ static void project_paint_end(ProjPaintState *ps) int last_tile_width=0; for(a=0, last_projIma=ps->projImages; a < ps->image_tot; a++, last_projIma++) { - int size = sizeof(UndoTile **) * IMAPAINT_TILE_NUMBER(last_projIma->ibuf->x) * IMAPAINT_TILE_NUMBER(last_projIma->ibuf->y); - last_projIma->undoRect = (UndoTile **) BLI_memarena_alloc(arena, size); + int size = sizeof(void **) * IMAPAINT_TILE_NUMBER(last_projIma->ibuf->x) * IMAPAINT_TILE_NUMBER(last_projIma->ibuf->y); + last_projIma->undoRect = (void **) BLI_memarena_alloc(arena, size); memset(last_projIma->undoRect, 0, size); last_projIma->ibuf->userflags |= IB_BITMAPDIRTY; } @@ -3373,21 +3258,21 @@ static void project_paint_end(ProjPaintState *ps) if (last_projIma->undoRect[tile_index]==NULL) { /* add the undo tile from the modified image, then write the original colors back into it */ - tile = last_projIma->undoRect[tile_index] = undo_init_tile(&last_projIma->ima->id, last_projIma->ibuf, is_float ? (&tmpibuf_float):(&tmpibuf) , x_tile, y_tile); + tilerect = last_projIma->undoRect[tile_index] = image_undo_push_tile(last_projIma->ima, last_projIma->ibuf, is_float ? (&tmpibuf_float):(&tmpibuf) , x_tile, y_tile); } else { - tile = last_projIma->undoRect[tile_index]; + tilerect = last_projIma->undoRect[tile_index]; } /* This is a BIT ODD, but overwrite the undo tiles image info with this pixels original color * because allocating the tiles allong the way slows down painting */ if (is_float) { - float *rgba_fp = (float *)tile->rect + (((projPixel->x_px - x_round) + (projPixel->y_px - y_round) * IMAPAINT_TILE_SIZE)) * 4; + float *rgba_fp = (float *)tilerect + (((projPixel->x_px - x_round) + (projPixel->y_px - y_round) * IMAPAINT_TILE_SIZE)) * 4; QUATCOPY(rgba_fp, projPixel->origColor.f); } else { - ((unsigned int *)tile->rect)[ (projPixel->x_px - x_round) + (projPixel->y_px - y_round) * IMAPAINT_TILE_SIZE ] = projPixel->origColor.uint; + ((unsigned int *)tilerect)[ (projPixel->x_px - x_round) + (projPixel->y_px - y_round) * IMAPAINT_TILE_SIZE ] = projPixel->origColor.uint; } } } @@ -3958,7 +3843,6 @@ static void imapaint_clear_partial_redraw() static void imapaint_dirty_region(Image *ima, ImBuf *ibuf, int x, int y, int w, int h) { ImBuf *tmpibuf = NULL; - UndoTile *tile; int srcx= 0, srcy= 0, origx; IMB_rectclip(ibuf, NULL, &x, &y, &srcx, &srcy, &w, &h); @@ -3985,17 +3869,9 @@ static void imapaint_dirty_region(Image *ima, ImBuf *ibuf, int x, int y, int w, origx = (x >> IMAPAINT_TILE_BITS); y = (y >> IMAPAINT_TILE_BITS); - for (; y <= h; y++) { - for (x=origx; x <= w; x++) { - for(tile=curundo->tiles.first; tile; tile=tile->next) - if(tile->x == x && tile->y == y && strcmp(tile->id.name, ima->id.name)==0) - break; - - if(!tile) { - undo_init_tile(&ima->id, ibuf, &tmpibuf, x, y); - } - } - } + for (; y <= h; y++) + for (x=origx; x <= w; x++) + image_undo_push_tile(ima, ibuf, &tmpibuf, x, y); ibuf->userflags |= IB_BITMAPDIRTY; @@ -4593,7 +4469,8 @@ static int texture_paint_init(bContext *C, wmOperator *op) } settings->imapaint.flag |= IMAGEPAINT_DRAWING; - undo_imagepaint_push_begin("Image Paint"); + undo_paint_push_begin(UNDO_PAINT_IMAGE, "Image Paint", + image_undo_restore, image_undo_free); /* create painter */ pop->painter= brush_painter_new(pop->s.brush); @@ -4657,7 +4534,7 @@ static void paint_exit(bContext *C, wmOperator *op) } paint_redraw(C, &pop->s, 1); - undo_imagepaint_push_end(); + undo_paint_push_end(UNDO_PAINT_IMAGE); if(pop->s.warnmultifile) BKE_reportf(op->reports, RPT_WARNING, "Image requires 4 color channels to paint: %s", pop->s.warnmultifile); @@ -5256,3 +5133,4 @@ int facemask_paint_poll(bContext *C) { return paint_facesel_test(CTX_data_active_object(C)); } + diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h index 0689e8e63d7..46f073243e5 100644 --- a/source/blender/editors/sculpt_paint/paint_intern.h +++ b/source/blender/editors/sculpt_paint/paint_intern.h @@ -41,6 +41,7 @@ struct wmOperator; struct wmOperatorType; struct ARegion; struct VPaint; +struct ListBase; /* paint_stroke.c */ typedef int (*StrokeGetLocation)(struct bContext *C, struct PaintStroke *stroke, float location[3], float mouse[2]); @@ -102,5 +103,14 @@ void PAINT_OT_face_deselect_all(struct wmOperatorType *ot); int facemask_paint_poll(struct bContext *C); +/* paint_undo.c */ +typedef void (*UndoRestoreCb)(struct bContext *C, struct ListBase *lb); +typedef void (*UndoFreeCb)(struct ListBase *lb); + +void undo_paint_push_begin(int type, char *name, UndoRestoreCb restore, UndoFreeCb free); +struct ListBase *undo_paint_push_get_list(int type); +void undo_paint_push_count_alloc(int type, int size); +void undo_paint_push_end(int type); + #endif /* ED_PAINT_INTERN_H */ diff --git a/source/blender/editors/sculpt_paint/paint_undo.c b/source/blender/editors/sculpt_paint/paint_undo.c new file mode 100644 index 00000000000..9bc6cacbb16 --- /dev/null +++ b/source/blender/editors/sculpt_paint/paint_undo.c @@ -0,0 +1,231 @@ +/** + * $Id$ + * + * Undo system for painting and sculpting. + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_userdef_types.h" + +#include "BLI_listbase.h" + +#include "BKE_context.h" +#include "BKE_global.h" + +#include "ED_sculpt.h" + +#include "paint_intern.h" + +#define MAXUNDONAME 64 + +typedef struct UndoElem { + struct UndoElem *next, *prev; + char name[MAXUNDONAME]; + uintptr_t undosize; + + ListBase elems; + + UndoRestoreCb restore; + UndoFreeCb free; +} UndoElem; + +typedef struct UndoStack { + int type; + ListBase elems; + UndoElem *current; +} UndoStack; + +static UndoStack ImageUndoStack = {UNDO_PAINT_IMAGE, {NULL, NULL}, NULL}; +static UndoStack MeshUndoStack = {UNDO_PAINT_MESH, {NULL, NULL}, NULL}; + +/* Generic */ + +static void undo_restore(bContext *C, UndoStack *stack, UndoElem *uel) +{ + if(uel && uel->restore) + uel->restore(C, &uel->elems); +} + +static void undo_elem_free(UndoStack *stack, UndoElem *uel) +{ + if(uel && uel->free) { + uel->free(&uel->elems); + BLI_freelistN(&uel->elems); + } +} + +static void undo_stack_push_begin(UndoStack *stack, char *name, UndoRestoreCb restore, UndoFreeCb free) +{ + UndoElem *uel; + int nr; + + /* Undo push is split up in begin and end, the reason is that as painting + * happens more tiles/nodes are added to the list, and at the very end we + * know how much memory the undo used to remove old undo elements */ + + /* remove all undos after (also when stack->current==NULL) */ + while(stack->elems.last != stack->current) { + uel= stack->elems.last; + undo_elem_free(stack, uel); + BLI_freelinkN(&stack->elems, uel); + } + + /* make new */ + stack->current= uel= MEM_callocN(sizeof(UndoElem), "undo file"); + uel->restore= restore; + uel->free= free; + BLI_addtail(&stack->elems, uel); + + /* name can be a dynamic string */ + strncpy(uel->name, name, MAXUNDONAME-1); + + /* limit amount to the maximum amount*/ + nr= 0; + uel= stack->elems.last; + while(uel) { + nr++; + if(nr==U.undosteps) break; + uel= uel->prev; + } + if(uel) { + while(stack->elems.first!=uel) { + UndoElem *first= stack->elems.first; + undo_elem_free(stack, first); + BLI_freelinkN(&stack->elems, first); + } + } +} + +static void undo_stack_push_end(UndoStack *stack) +{ + UndoElem *uel; + uintptr_t totmem, maxmem; + + if(U.undomemory != 0) { + /* limit to maximum memory (afterwards, we can't know in advance) */ + totmem= 0; + maxmem= ((uintptr_t)U.undomemory)*1024*1024; + + uel= stack->elems.last; + while(uel) { + totmem+= uel->undosize; + if(totmem>maxmem) break; + uel= uel->prev; + } + + if(uel) { + while(stack->elems.first!=uel) { + UndoElem *first= stack->elems.first; + undo_elem_free(stack, first); + BLI_freelinkN(&stack->elems, first); + } + } + } +} + +static void undo_stack_step(bContext *C, UndoStack *stack, int step) +{ + UndoElem *undo; + + if(step==1) { + if(stack->current==NULL); + else { + if(G.f & G_DEBUG) printf("undo %s\n", stack->current->name); + undo_restore(C, stack, stack->current); + stack->current= stack->current->prev; + } + } + else if(step==-1) { + if((stack->current!=NULL && stack->current->next==NULL) || stack->elems.first==NULL); + else { + undo= (stack->current && stack->current->next)? stack->current->next: stack->elems.first; + undo_restore(C, stack, undo); + stack->current= undo; + if(G.f & G_DEBUG) printf("redo %s\n", undo->name); + } + } +} + +static void undo_stack_free(UndoStack *stack) +{ + UndoElem *uel; + + for(uel=stack->elems.first; uel; uel=uel->next) + undo_elem_free(stack, uel); + + BLI_freelistN(&stack->elems); + stack->current= NULL; +} + +/* Exported Functions */ + +void undo_paint_push_begin(int type, char *name, UndoRestoreCb restore, UndoFreeCb free) +{ + if(type == UNDO_PAINT_IMAGE) + undo_stack_push_begin(&ImageUndoStack, name, restore, free); + else if(type == UNDO_PAINT_MESH) + undo_stack_push_begin(&MeshUndoStack, name, restore, free); +} + +ListBase *undo_paint_push_get_list(int type) +{ + if(type == UNDO_PAINT_IMAGE) + return &ImageUndoStack.current->elems; + else if(type == UNDO_PAINT_MESH) + return &MeshUndoStack.current->elems; + + return NULL; +} + +void undo_paint_push_count_alloc(int type, int size) +{ + if(type == UNDO_PAINT_IMAGE) + ImageUndoStack.current->undosize += size; + else if(type == UNDO_PAINT_MESH) + MeshUndoStack.current->undosize += size; +} + +void undo_paint_push_end(int type) +{ + if(type == UNDO_PAINT_IMAGE) + undo_stack_push_end(&ImageUndoStack); + else if(type == UNDO_PAINT_MESH) + undo_stack_push_end(&MeshUndoStack); +} + +void ED_undo_paint_step(bContext *C, int type, int step) +{ + if(type == UNDO_PAINT_IMAGE) + undo_stack_step(C, &ImageUndoStack, step); + else if(type == UNDO_PAINT_MESH) + undo_stack_step(C, &MeshUndoStack, step); +} + +void ED_undo_paint_free(void) +{ + undo_stack_free(&ImageUndoStack); + undo_stack_free(&MeshUndoStack); +} + diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 9b1b239be70..a953afde0d5 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -1411,7 +1411,7 @@ static void do_view3d_tpaintmenu(bContext *C, void *arg, int event) #if 0 switch(event) { case 0: /* undo image painting */ - undo_imagepaint_step(1); + ED_paint_undo_step(UNDO_PAINT_IMAGE, 1); break; } diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c index ae1e932bb81..fc2576eef5d 100644 --- a/source/blender/editors/util/ed_util.c +++ b/source/blender/editors/util/ed_util.c @@ -60,7 +60,7 @@ void ED_editors_exit(bContext *C) /* frees all editmode undos */ undo_editmode_clear(); - undo_imagepaint_clear(); + ED_undo_paint_free(); for(sce=G.main->scene.first; sce; sce= sce->id.next) { if(sce->obedit) { diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c index d26f7a7a484..18e3304c191 100644 --- a/source/blender/editors/util/undo.c +++ b/source/blender/editors/util/undo.c @@ -124,7 +124,7 @@ static int ed_undo_step(bContext *C, int step, const char *undoname) SpaceImage *sima= (SpaceImage *)sa->spacedata.first; if((obact && obact->mode & OB_MODE_TEXTURE_PAINT) || sima->flag & SI_DRAWTOOL) { - undo_imagepaint_step(step); + ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step); WM_event_add_notifier(C, NC_WINDOW, NULL); return OPERATOR_FINISHED; @@ -146,7 +146,7 @@ static int ed_undo_step(bContext *C, int step, const char *undoname) int do_glob_undo= 0; if(obact && obact->mode & OB_MODE_TEXTURE_PAINT) - undo_imagepaint_step(step); + ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step); else if(obact && obact->mode & OB_MODE_PARTICLE_EDIT) { if(step==1) PE_undo(CTX_data_scene(C)); -- cgit v1.2.3 From b90d8ec0f454dfdd12f1284aabaff12b4cc93481 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 Nov 2009 20:23:48 +0000 Subject: Sculpt: derivedmesh no longer created CD_ORIGINDEX layer when there is no modifier, saving some memory. --- source/blender/blenkernel/intern/cdderivedmesh.c | 37 ++++++++++------------ source/blender/blenkernel/intern/constraint.c | 7 ++-- source/blender/blenkernel/intern/modifier.c | 2 +- source/blender/blenkernel/intern/object.c | 8 +++-- source/blender/blenkernel/intern/particle.c | 10 +++--- source/blender/blenkernel/intern/subsurf_ccg.c | 18 +++++------ source/blender/editors/sculpt_paint/paint_utils.c | 6 ++-- source/blender/editors/space_view3d/drawobject.c | 6 ++-- .../blender/render/intern/source/convertblender.c | 6 +++- 9 files changed, 51 insertions(+), 49 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index b7234a86af9..c9c035ba6d1 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -1017,7 +1017,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo continue; } else if(setDrawOptions) { - orig = index[a]; + orig = (index)? index[a]: a; if(orig == ORIGINDEX_NONE) continue; @@ -1514,17 +1514,12 @@ DerivedMesh *CDDM_from_mesh(Mesh *mesh, Object *ob) CDDerivedMesh *cddm = cdDM_create("CDDM_from_mesh dm"); DerivedMesh *dm = &cddm->dm; CustomDataMask mask = CD_MASK_MESH & (~CD_MASK_MDISPS); - int i, *index, alloctype; + int alloctype; - /* this does a referenced copy, the only new layers being ORIGINDEX, - * with an exception for fluidsim */ + /* this does a referenced copy, with an exception for fluidsim */ DM_init(dm, mesh->totvert, mesh->totedge, mesh->totface); - CustomData_add_layer(&dm->vertData, CD_ORIGINDEX, CD_CALLOC, NULL, mesh->totvert); - CustomData_add_layer(&dm->edgeData, CD_ORIGINDEX, CD_CALLOC, NULL, mesh->totedge); - CustomData_add_layer(&dm->faceData, CD_ORIGINDEX, CD_CALLOC, NULL, mesh->totface); - dm->deformedOnly = 1; alloctype= CD_REFERENCE; @@ -1540,18 +1535,6 @@ DerivedMesh *CDDM_from_mesh(Mesh *mesh, Object *ob) cddm->medge = CustomData_get_layer(&dm->edgeData, CD_MEDGE); cddm->mface = CustomData_get_layer(&dm->faceData, CD_MFACE); - index = CustomData_get_layer(&dm->vertData, CD_ORIGINDEX); - for(i = 0; i < mesh->totvert; ++i, ++index) - *index = i; - - index = CustomData_get_layer(&dm->edgeData, CD_ORIGINDEX); - for(i = 0; i < mesh->totedge; ++i, ++index) - *index = i; - - index = CustomData_get_layer(&dm->faceData, CD_ORIGINDEX); - for(i = 0; i < mesh->totface; ++i, ++index) - *index = i; - return dm; } @@ -1696,6 +1679,13 @@ DerivedMesh *CDDM_from_template(DerivedMesh *source, CustomData_add_layer(&dm->edgeData, CD_MEDGE, CD_CALLOC, NULL, numEdges); CustomData_add_layer(&dm->faceData, CD_MFACE, CD_CALLOC, NULL, numFaces); + if(!CustomData_get_layer(&dm->vertData, CD_ORIGINDEX)) + CustomData_add_layer(&dm->vertData, CD_ORIGINDEX, CD_CALLOC, NULL, numVerts); + if(!CustomData_get_layer(&dm->edgeData, CD_ORIGINDEX)) + CustomData_add_layer(&dm->edgeData, CD_ORIGINDEX, CD_CALLOC, NULL, numEdges); + if(!CustomData_get_layer(&dm->faceData, CD_ORIGINDEX)) + CustomData_add_layer(&dm->faceData, CD_ORIGINDEX, CD_CALLOC, NULL, numFaces); + cddm->mvert = CustomData_get_layer(&dm->vertData, CD_MVERT); cddm->medge = CustomData_get_layer(&dm->edgeData, CD_MEDGE); cddm->mface = CustomData_get_layer(&dm->faceData, CD_MFACE); @@ -2000,6 +1990,13 @@ DerivedMesh *MultiresDM_new(MultiresSubsurf *ms, DerivedMesh *orig, int numVerts else DM_init(dm, numVerts, numEdges, numFaces); + if(!CustomData_get_layer(&dm->vertData, CD_ORIGINDEX)) + CustomData_add_layer(&dm->vertData, CD_ORIGINDEX, CD_CALLOC, NULL, numVerts); + if(!CustomData_get_layer(&dm->edgeData, CD_ORIGINDEX)) + CustomData_add_layer(&dm->edgeData, CD_ORIGINDEX, CD_CALLOC, NULL, numEdges); + if(!CustomData_get_layer(&dm->faceData, CD_ORIGINDEX)) + CustomData_add_layer(&dm->faceData, CD_ORIGINDEX, CD_CALLOC, NULL, numFaces); + CustomData_add_layer(&dm->vertData, CD_MVERT, CD_CALLOC, NULL, numVerts); CustomData_add_layer(&dm->edgeData, CD_MEDGE, CD_CALLOC, NULL, numEdges); CustomData_add_layer(&dm->faceData, CD_MFACE, CD_CALLOC, NULL, numFaces); diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index a319838a56f..a94fd8f6bd2 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -440,15 +440,14 @@ static void contarget_get_mesh_mat (Scene *scene, Object *ob, char *substring, f /* only continue if there's a valid DerivedMesh */ if (dm) { MDeformVert *dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); - int *index = (int *)dm->getVertDataArray(dm, CD_ORIGINDEX); int numVerts = dm->getNumVerts(dm); int i, j, count = 0; float co[3], nor[3]; - /* check that dvert and index are valid pointers (just in case) */ - if (dvert && index) { + /* check that dvert is a valid pointers (just in case) */ + if (dvert) { /* get the average of all verts with that are in the vertex-group */ - for (i = 0; i < numVerts; i++, index++) { + for (i = 0; i < numVerts; i++) { for (j = 0; j < dvert[i].totweight; j++) { /* does this vertex belong to nominated vertex group? */ if (dvert[i].dw[j].def_nr == dgroup) { diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index a445b6986f6..639797564cc 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -5695,7 +5695,7 @@ static void hookModifier_deformVerts( /* if DerivedMesh is present and has original index data, * use it */ - if(dm && dm->getVertData(dm, 0, CD_ORIGINDEX)) { + if(dm && dm->getVertDataArray(dm, CD_ORIGINDEX)) { int j; int orig_index; for(j = 0; j < numVerts; ++j) { diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index c1b9634e5ec..7ed120c3cfb 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -1781,13 +1781,15 @@ static void give_parvert(Object *par, int nr, float *vec) DerivedMesh *dm = par->derivedFinal; if(dm) { - int i, count = 0, numVerts = dm->getNumVerts(dm); + int i, count = 0, vindex, numVerts = dm->getNumVerts(dm); int *index = (int *)dm->getVertDataArray(dm, CD_ORIGINDEX); float co[3]; /* get the average of all verts with (original index == nr) */ - for(i = 0; i < numVerts; ++i, ++index) { - if(*index == nr) { + for(i = 0; i < numVerts; ++i) { + vindex= (index)? *index: i; + + if(vindex == nr) { dm->getVertCo(dm, i, co); VecAddf(vec, vec, co); count++; diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 43a624b3013..6bd2a03a628 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -790,7 +790,7 @@ int psys_render_simplify_distribution(ParticleThreadContext *ctx, int tot) totface= dm->getNumFaces(dm); totorigface= me->totface; - if(totface == 0 || totorigface == 0 || origindex == NULL) + if(totface == 0 || totorigface == 0) return tot; facearea= MEM_callocN(sizeof(float)*totorigface, "SimplifyFaceArea"); @@ -807,14 +807,14 @@ int psys_render_simplify_distribution(ParticleThreadContext *ctx, int tot) /* compute number of children per original face */ for(a=0; aindex[a]]; + b= (origindex)? origindex[ctx->index[a]]: ctx->index[a]; if(b != -1) elems[b].totchild++; } /* compute areas and centers of original faces */ for(mf=mface, a=0; av1].co); @@ -910,7 +910,7 @@ int psys_render_simplify_distribution(ParticleThreadContext *ctx, int tot) skipped= 0; for(a=0, newtot=0; aindex[a]]; + b= (origindex)? origindex[ctx->index[a]]: ctx->index[a]; if(b != -1) { if(elems[b].curchild++ < ceil(elems[b].lambda*elems[b].totchild)) { ctx->index[newtot]= ctx->index[a]; @@ -943,7 +943,7 @@ int psys_render_simplify_params(ParticleSystem *psys, ChildParticle *cpa, float if(!data->dosimplify) return 0; - b= data->origindex[cpa->num]; + b= (data->origindex)? data->origindex[cpa->num]: cpa->num; if(b == -1) return 0; diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 1482bd75ff2..125c8a0c464 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -546,7 +546,7 @@ static DerivedMesh *ss_to_cdderivedmesh(CCGSubSurf *ss, int ssFromEditmesh, // load verts faceBase = i = 0; mvert = CDDM_get_verts(result); - origIndex = result->getVertData(result, 0, CD_ORIGINDEX); + origIndex = result->getVertDataArray(result, CD_ORIGINDEX); for(index = 0; index < totface; index++) { CCGFace *f = faceMap2[index]; @@ -663,7 +663,7 @@ static DerivedMesh *ss_to_cdderivedmesh(CCGSubSurf *ss, int ssFromEditmesh, // load edges i = 0; med = CDDM_get_edges(result); - origIndex = result->getEdgeData(result, 0, CD_ORIGINDEX); + origIndex = result->getEdgeDataArray(result, CD_ORIGINDEX); for(index = 0; index < totface; index++) { CCGFace *f = faceMap2[index]; @@ -738,7 +738,7 @@ static DerivedMesh *ss_to_cdderivedmesh(CCGSubSurf *ss, int ssFromEditmesh, // load faces i = 0; mf = CDDM_get_faces(result); - origIndex = result->getFaceData(result, 0, CD_ORIGINDEX); + origIndex = result->getFaceDataArray(result, CD_ORIGINDEX); for(index = 0; index < totface; index++) { CCGFace *f = faceMap2[index]; @@ -846,7 +846,7 @@ static void ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm, mv = mvert; index = (int *)dm->getVertDataArray(dm, CD_ORIGINDEX); - for(i = 0; i < totvert; i++, mv++, index++) { + for(i = 0; i < totvert; i++, mv++) { CCGVert *v; if(vertexCos) { @@ -855,12 +855,12 @@ static void ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm, ccgSubSurf_syncVert(ss, SET_INT_IN_POINTER(i), mv->co, 0, &v); } - ((int*)ccgSubSurf_getVertUserData(ss, v))[1] = *index; + ((int*)ccgSubSurf_getVertUserData(ss, v))[1] = (index)? *index++: i; } me = medge; index = (int *)dm->getEdgeDataArray(dm, CD_ORIGINDEX); - for(i = 0; i < totedge; i++, me++, index++) { + for(i = 0; i < totedge; i++, me++) { CCGEdge *e; float crease; @@ -870,12 +870,12 @@ static void ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm, ccgSubSurf_syncEdge(ss, SET_INT_IN_POINTER(i), SET_INT_IN_POINTER(me->v1), SET_INT_IN_POINTER(me->v2), crease, &e); - ((int*)ccgSubSurf_getEdgeUserData(ss, e))[1] = *index; + ((int*)ccgSubSurf_getEdgeUserData(ss, e))[1] = (index)? *index++: i; } mf = mface; index = (int *)dm->getFaceDataArray(dm, CD_ORIGINDEX); - for (i = 0; i < totface; i++, mf++, index++) { + for (i = 0; i < totface; i++, mf++) { CCGFace *f; fVerts[0] = SET_INT_IN_POINTER(mf->v1); @@ -901,7 +901,7 @@ static void ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm, return; } - ((int*)ccgSubSurf_getFaceUserData(ss, f))[1] = *index; + ((int*)ccgSubSurf_getFaceUserData(ss, f))[1] = (index)? *index++: i; } ccgSubSurf_processSync(ss); diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c index 15104068350..210d6e0ff95 100644 --- a/source/blender/editors/sculpt_paint/paint_utils.c +++ b/source/blender/editors/sculpt_paint/paint_utils.c @@ -96,7 +96,7 @@ void imapaint_pick_uv(Scene *scene, Object *ob, Mesh *mesh, unsigned int faceind DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH); int *index = dm->getFaceDataArray(dm, CD_ORIGINDEX); MTFace *tface = dm->getFaceDataArray(dm, CD_MTFACE), *tf; - int numfaces = dm->getNumFaces(dm), a; + int numfaces = dm->getNumFaces(dm), a, findex; float p[2], w[3], absw, minabsw; MFace mf; MVert mv[4]; @@ -106,7 +106,9 @@ void imapaint_pick_uv(Scene *scene, Object *ob, Mesh *mesh, unsigned int faceind /* test all faces in the derivedmesh with the original index of the picked face */ for(a = 0; a < numfaces; a++) { - if(index[a] == faceindex) { + findex= (index)? index[a]: a; + + if(findex == faceindex) { dm->getFace(dm, a, &mf); dm->getVert(dm, mf.v1, &mv[0]); diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 4f41b6e5045..1eecefdcf0f 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -6142,10 +6142,8 @@ static void bbs_mesh_solid(Scene *scene, View3D *v3d, Object *ob) int ind; colors = MEM_mallocN(dm->getNumFaces(dm)*sizeof(MCol)*4,"bbs_mesh_solid"); for(i=0;igetNumFaces(dm);i++) { - if( index != 0 ) - ind = index[i]; - else - ind = i; + ind= ( index )? index[i]: i; + if (face_sel_mode==0 || !(me->mface[ind].flag&ME_HIDE)) { unsigned int fbindex = index_to_framebuffer(ind+1); for(j=0;j<4;j++) { diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 072083e58a7..cb8970a356f 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1710,8 +1710,12 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem if(origindex) { for(a=0; atotbound= MAX2(strandbuf->totbound, origindex[a]); - strandbuf->totbound++; } + else { + for(a=0; atotbound= MAX2(strandbuf->totbound, a); + } + strandbuf->totbound++; strandbuf->bound= MEM_callocN(sizeof(StrandBound)*strandbuf->totbound, "StrandBound"); sbound= strandbuf->bound; -- cgit v1.2.3 From 636fe9068094668dd4bfe28dd144b1217ec7e0c8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 Nov 2009 20:36:38 +0000 Subject: Sculpt: updating normals now no longer uses the vert-face map, to save memory. The weak point now is the thread-safe atomic access to normals from multiple threads, did not seem to be a bottleneck in my tests but I don't really trust it to be fast. --- source/blender/blenkernel/intern/cdderivedmesh.c | 2 +- source/blender/blenlib/BLI_pbvh.h | 3 +- source/blender/blenlib/intern/pbvh.c | 116 ++++++++++++++++------- source/blender/editors/sculpt_paint/sculpt.c | 9 +- source/blender/makesdna/DNA_meshdata_types.h | 7 +- 5 files changed, 93 insertions(+), 44 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index c9c035ba6d1..5d671c79183 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -473,7 +473,7 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, NULL, dm->numFaceData); BLI_pbvh_update(cddm->pbvh, PBVH_UpdateNormals|PBVH_UpdateDrawBuffers, - face_nors, cdDM_getFaceMap(dm)); + face_nors); /* should be per face */ if(dm->numFaceData && mface->flag & ME_SMOOTH) diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h index 78e2a9b8745..ba9de462b3d 100644 --- a/source/blender/blenlib/BLI_pbvh.h +++ b/source/blender/blenlib/BLI_pbvh.h @@ -90,8 +90,7 @@ void *BLI_pbvh_node_get_draw_buffers(PBVHNode *node); /* Update Normals/Bounding Box/Draw Buffers/Redraw and clear flags */ -void BLI_pbvh_update(PBVH *bvh, int flags, - float (*face_nors)[3], struct ListBase *fmap); +void BLI_pbvh_update(PBVH *bvh, int flags, float (*face_nors)[3]); void BLI_pbvh_redraw_bounding_box(PBVH *bvh, float bb_min[3], float bb_max[3]); #endif /* BLI_PBVH_H */ diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index b707343bebb..2a1f1484daa 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -101,6 +101,7 @@ struct PBVH { int *face_indices; int totface; + int totvert; /* Mesh data */ MVert *verts; @@ -435,6 +436,7 @@ void BLI_pbvh_build(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totv bvh->faces = faces; bvh->verts = verts; bvh->vert_bitmap = BLI_bitmap_new(totvert); + bvh->totvert= totvert; BB_reset(&cb); @@ -641,24 +643,40 @@ static int update_search_cb(PBVHNode *node, return 1; } -static void pbvh_update_face_normals(PBVH *bvh, PBVHNode **nodes, +static void pbvh_update_normals(PBVH *bvh, PBVHNode **nodes, int totnode, float (*face_nors)[3]) { - PBVHNode *node; + float (*vnor)[3]; int n; + /* could be per node to save some memory, but also means + we have to store for each vertex which node it is in */ + vnor= MEM_callocN(sizeof(float)*3*bvh->totvert, "bvh temp vnors"); + + /* subtle assumptions: + - We know that for all edited vertices, the nodes with faces + adjacent to these vertices have been marked with PBVH_UpdateNormals. + This is true because if the vertex is inside the brush radius, the + bounding box of it's adjacent faces will be as well. + - However this is only true for the vertices that have actually been + edited, not for all vertices in the nodes marked for update, so we + can only update vertices marked with ME_VERT_PBVH_UPDATE. + */ + #pragma omp parallel for private(n) schedule(static) for(n = 0; n < totnode; n++) { - node= nodes[n]; + PBVHNode *node= nodes[n]; if((node->flag & PBVH_UpdateNormals)) { - int i, totface, *faces; + int i, j, totface, *faces; BLI_pbvh_node_get_faces(node, &faces, &totface); for(i = 0; i < totface; ++i) { - MFace *f = bvh->faces + faces[i]; - float *fn = face_nors[faces[i]]; + MFace *f= bvh->faces + faces[i]; + float fn[3]; + unsigned int *fv = &f->v1; + int sides= (f->v4)? 4: 3; if(f->v4) CalcNormFloat4(bvh->verts[f->v1].co, bvh->verts[f->v2].co, @@ -666,49 +684,75 @@ static void pbvh_update_face_normals(PBVH *bvh, PBVHNode **nodes, else CalcNormFloat(bvh->verts[f->v1].co, bvh->verts[f->v2].co, bvh->verts[f->v3].co, fn); + + for(j = 0; j < sides; ++j) { + int v= fv[j]; + + if(bvh->verts[v].flag & ME_VERT_PBVH_UPDATE) { + /* this seems like it could be very slow but profile + does not show this, so just leave it for now? */ + #pragma omp atomic + vnor[v][0] += fn[0]; + #pragma omp atomic + vnor[v][1] += fn[1]; + #pragma omp atomic + vnor[v][2] += fn[2]; + } + } + + if(face_nors) + VECCOPY(face_nors[faces[i]], fn); } } } -} -static void pbvh_update_BB_normals(PBVH *bvh, PBVHNode **nodes, - int totnode, int flag, float (*face_nors)[3], ListBase *fmap) -{ - PBVHNode *node; - int n; - - /* update BB, vertex normals, redraw flag */ #pragma omp parallel for private(n) schedule(static) for(n = 0; n < totnode; n++) { - node= nodes[n]; - - if((flag & PBVH_UpdateBB) && (node->flag & PBVH_UpdateBB)) { - update_node_vb(bvh, node); - /* don't clear flag yet, leave it for flushing later */ - } + PBVHNode *node= nodes[n]; - if((flag & PBVH_UpdateNormals) && (node->flag & PBVH_UpdateNormals)) { + if(node->flag & PBVH_UpdateNormals) { int i, *verts, totvert; BLI_pbvh_node_get_verts(node, &verts, &totvert); for(i = 0; i < totvert; ++i) { const int v = verts[i]; - float no[3] = {0,0,0}; - IndexNode *face; - - for(face = fmap[v].first; face; face = face->next) - VecAddf(no, no, face_nors[face->index]); - - Normalize(no); - - bvh->verts[v].no[0] = no[0] * 32767; - bvh->verts[v].no[1] = no[1] * 32767; - bvh->verts[v].no[2] = no[2] * 32767; + MVert *mvert= &bvh->verts[v]; + + if(mvert->flag & ME_VERT_PBVH_UPDATE) { + float no[3]; + + VECCOPY(no, vnor[v]); + Normalize(no); + + mvert->no[0] = (short)(no[0]*32767.0f); + mvert->no[1] = (short)(no[1]*32767.0f); + mvert->no[2] = (short)(no[2]*32767.0f); + + mvert->flag &= ~ME_VERT_PBVH_UPDATE; + } } node->flag &= ~PBVH_UpdateNormals; } + } + + MEM_freeN(vnor); +} + +static void pbvh_update_BB_redraw(PBVH *bvh, PBVHNode **nodes, + int totnode, int flag) +{ + int n; + + /* update BB, redraw flag */ + #pragma omp parallel for private(n) schedule(static) + for(n = 0; n < totnode; n++) { + PBVHNode *node= nodes[n]; + + if((flag & PBVH_UpdateBB) && (node->flag & PBVH_UpdateBB)) + /* don't clear flag yet, leave it for flushing later */ + update_node_vb(bvh, node); if((flag & PBVH_UpdateRedraw) && (node->flag & PBVH_UpdateRedraw)) node->flag &= ~PBVH_UpdateRedraw; @@ -757,7 +801,7 @@ static int pbvh_flush_bb(PBVH *bvh, PBVHNode *node) return update; } -void BLI_pbvh_update(PBVH *bvh, int flag, float (*face_nors)[3], ListBase *fmap) +void BLI_pbvh_update(PBVH *bvh, int flag, float (*face_nors)[3]) { PBVHNode **nodes; int totnode; @@ -765,10 +809,10 @@ void BLI_pbvh_update(PBVH *bvh, int flag, float (*face_nors)[3], ListBase *fmap) BLI_pbvh_search_gather(bvh, update_search_cb, NULL, &nodes, &totnode); if(flag & PBVH_UpdateNormals) - pbvh_update_face_normals(bvh, nodes, totnode, face_nors); + pbvh_update_normals(bvh, nodes, totnode, face_nors); - if(flag & (PBVH_UpdateNormals|PBVH_UpdateBB|PBVH_UpdateRedraw)) - pbvh_update_BB_normals(bvh, nodes, totnode, flag, face_nors, fmap); + if(flag & (PBVH_UpdateBB|PBVH_UpdateRedraw)) + pbvh_update_BB_redraw(bvh, nodes, totnode, flag); if(flag & PBVH_UpdateDrawBuffers) pbvh_update_draw_buffers(bvh, nodes, totnode); diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index e29f0d56ba2..c8bfbec4e8b 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -266,7 +266,7 @@ void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar, MEM_freeN(bb); /* clear redraw flag from nodes */ - BLI_pbvh_update(ob->sculpt->tree, PBVH_UpdateRedraw, NULL, NULL); + BLI_pbvh_update(ob->sculpt->tree, PBVH_UpdateRedraw, NULL); } /*** Looping Over Nodes in a BVH Node ***/ @@ -624,6 +624,7 @@ static void do_draw_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int t vd.co[2] + offset[2]*fade}; sculpt_clip(sd, ss, vd.co, val); + ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; } BLI_pbvh_node_mark_update(nodes[n]); @@ -697,6 +698,7 @@ static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int val[2] = vd.co[2]+(avg[2]-vd.co[2])*fade; sculpt_clip(sd, ss, vd.co, val); + ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; } BLI_pbvh_node_mark_update(nodes[n]); @@ -723,6 +725,7 @@ static void do_pinch_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int vd.co[2]+(vd.location[2]-vd.co[2])*fade}; sculpt_clip(sd, ss, vd.co, val); + ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; } BLI_pbvh_node_mark_update(nodes[n]); @@ -821,6 +824,7 @@ static void do_inflate_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, in VecAddf(add, add, vd.co); sculpt_clip(sd, ss, vd.co, add); + ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; } BLI_pbvh_node_mark_update(nodes[n]); @@ -944,6 +948,7 @@ static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, PBVHNode **node VecAddf(val, val, vd.co); sculpt_clip(sd, ss, vd.co, val); + ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; } } @@ -1631,7 +1636,7 @@ static void sculpt_flush_update(bContext *C) multires_mark_as_modified(ob); } - BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL, NULL); + BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL); redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r); if(redraw) { diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h index d53a7833d0e..48e361afdae 100644 --- a/source/blender/makesdna/DNA_meshdata_types.h +++ b/source/blender/makesdna/DNA_meshdata_types.h @@ -182,10 +182,11 @@ typedef struct PartialVisibility { } PartialVisibility; /* mvert->flag (1=SELECT) */ -#define ME_SPHERETEST 2 -#define ME_SPHERETEMP 4 -#define ME_HIDE 16 +#define ME_SPHERETEST 2 +#define ME_SPHERETEMP 4 +#define ME_HIDE 16 #define ME_VERT_MERGED (1<<6) +#define ME_VERT_PBVH_UPDATE (1<<7) /* medge->flag (1=SELECT)*/ #define ME_EDGEDRAW (1<<1) -- cgit v1.2.3 From 55611fb2e6ff42daf2b74b212e13ed5db04283a7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 Nov 2009 20:40:15 +0000 Subject: Sculpt: don't create DM face normals in sculpt mode, only update them if they exist already, to save memory. --- source/blender/blenkernel/intern/cdderivedmesh.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 5d671c79183..7cc46d39158 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -464,13 +464,7 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, } if(cddm->pbvh) { - float (*face_nors)[3]; - - /* make a face normal layer if not present */ - face_nors = CustomData_get_layer(&dm->faceData, CD_NORMAL); - if(!face_nors) - face_nors = CustomData_add_layer(&dm->faceData, CD_NORMAL, CD_CALLOC, - NULL, dm->numFaceData); + float (*face_nors)[3] = CustomData_get_layer(&dm->faceData, CD_NORMAL); BLI_pbvh_update(cddm->pbvh, PBVH_UpdateNormals|PBVH_UpdateDrawBuffers, face_nors); -- cgit v1.2.3 From 678d37fe4e2f68d57022fb210281031025150b0f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 Nov 2009 20:56:46 +0000 Subject: Sculpt: now uses it's own Undo stack like editmesh. The main advantage here is that it is able to store changes in the mesh more compact than global undo. It doesn't integrate well with multires yet, will tackle that when I start looking into multires, for now still focusing on sculpt on regular meshes. --- source/blender/blenkernel/BKE_paint.h | 1 + source/blender/editors/sculpt_paint/sculpt.c | 217 +++++++++++++++++---- .../blender/editors/sculpt_paint/sculpt_intern.h | 3 + source/blender/editors/util/undo.c | 2 + 4 files changed, 189 insertions(+), 34 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index 5bca174628d..ffb4e6ae743 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -70,6 +70,7 @@ typedef struct SculptSession { int totvert, totface; float *face_normals; struct PBVH *tree; + struct Object *ob; /* Mesh connectivity */ struct ListBase *fmap; diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index c8bfbec4e8b..0841fdfec22 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -37,6 +37,7 @@ #include "BLI_dynstr.h" #include "BLI_ghash.h" #include "BLI_pbvh.h" +#include "BLI_threads.h" #include "DNA_armature_types.h" #include "DNA_brush_types.h" @@ -269,7 +270,133 @@ void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar, BLI_pbvh_update(ob->sculpt->tree, PBVH_UpdateRedraw, NULL); } -/*** Looping Over Nodes in a BVH Node ***/ +/************************** Undo *************************/ + +typedef struct SculptUndoNode { + struct SculptUndoNode *next, *prev; + + char idname[MAX_ID_NAME]; /* name instead of pointer*/ + int maxvert; /* to verify if totvert it still the same */ + void *node; /* only during push, not valid afterwards! */ + + float (*co)[3]; + int *index; + int totvert; +} SculptUndoNode; + +static void update_cb(PBVHNode *node, void *data) +{ + BLI_pbvh_node_mark_update(node); +} + +static void sculpt_undo_restore(bContext *C, ListBase *lb) +{ + Object *ob = CTX_data_active_object(C); + SculptSession *ss = ob->sculpt; + SculptUndoNode *unode; + MVert *mvert; + MultiresModifierData *mmd; + int *index; + int i, totvert, update= 0; + + sculpt_update_mesh_elements(C, 0); + + for(unode=lb->first; unode; unode=unode->next) { + if(!(strcmp(unode->idname, ob->id.name)==0)) + continue; + if(ss->totvert != unode->maxvert) + continue; + + index= unode->index; + totvert= unode->totvert; + mvert= ss->mvert; + + for(i=0; ico[i]) + VECCOPY(unode->co[i], tmp); + + mvert[index[i]].flag |= ME_VERT_PBVH_UPDATE; + } + + update= 1; + } + + if(update) { + /* we update all nodes still, should be more clever, but also + needs to work correct when exiting/entering sculpt mode and + the nodes get recreated, though in that case it could do all */ + BLI_pbvh_search_callback(ss->tree, NULL, NULL, update_cb, NULL); + BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL); + + /* not really convinced this is correct .. */ + if((mmd=sculpt_multires_active(ob))) { + mmd->undo_verts = ss->mvert; + mmd->undo_verts_tot = ss->totvert; + mmd->undo_signal = !!mmd->undo_verts; + + multires_force_update(ob); + DAG_id_flush_update(&ob->id, OB_RECALC_DATA); + } + } +} + +static void sculpt_undo_free(ListBase *lb) +{ + SculptUndoNode *unode; + + for(unode=lb->first; unode; unode=unode->next) { + if(unode->co) + MEM_freeN(unode->co); + if(unode->index) + MEM_freeN(unode->index); + } +} + +static float (*sculpt_undo_push_node(SculptSession *ss, PBVHNode *node))[3] +{ + ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); + Object *ob= ss->ob; + SculptUndoNode *unode; + int i, totvert, *verts; + + BLI_pbvh_node_get_verts(node, &verts, &totvert); + + /* list is manipulated by multiple threads, so we lock */ + BLI_lock_thread(LOCK_CUSTOM1); + + for(unode=lb->first; unode; unode=unode->next) { + if(unode->node == node && strcmp(unode->idname, ob->id.name)==0) { + BLI_unlock_thread(LOCK_CUSTOM1); + return unode->co; + } + } + + unode= MEM_callocN(sizeof(SculptUndoNode), "SculptUndoNode"); + strcpy(unode->idname, ob->id.name); + unode->node= node; + + unode->totvert= totvert; + unode->maxvert= ss->totvert; + /* we will use this while sculpting, is mapalloc slow to access then? */ + unode->co= MEM_mapallocN(sizeof(float)*3*totvert, "SculptUndoNode.co"); + unode->index= MEM_mapallocN(sizeof(int)*totvert, "SculptUndoNode.index"); + undo_paint_push_count_alloc(UNDO_PAINT_MESH, (sizeof(float)*3 + sizeof(int))*totvert); + BLI_addtail(lb, unode); + + BLI_unlock_thread(LOCK_CUSTOM1); + + /* copy threaded, hopefully this is the performance critical part */ + memcpy(unode->index, verts, sizeof(int)*totvert); + for(i=0; ico[i], ss->mvert[verts[i]].co) + + return unode->co; +} + +/************************ Looping Over Verts in a BVH Node *******************/ typedef struct SculptVertexData { float radius_squared; @@ -277,38 +404,47 @@ typedef struct SculptVertexData { MVert *mvert; int *verts; + float (*origvert)[3]; int i, index, totvert; float *co; + float *origco; short *no; float dist; } SculptVertexData; -static void sculpt_node_verts_init(Sculpt *sd, SculptSession *ss, PBVHNode *node, SculptVertexData *vd) +static void sculpt_node_verts_init(Sculpt *sd, SculptSession *ss, + PBVHNode *node, float (*origvert)[3], SculptVertexData *vd) { vd->radius_squared= ss->cache->radius*ss->cache->radius; VecCopyf(vd->location, ss->cache->location); vd->mvert= ss->mvert; - vd->i= 0; + vd->origvert= origvert; + vd->i= -1; BLI_pbvh_node_get_verts(node, &vd->verts, &vd->totvert); } static int sculpt_node_verts_next(SculptVertexData *vd) { + vd->i++; + while(vd->i < vd->totvert) { float delta[3], dsq; - vd->index= vd->verts[vd->i++]; + vd->index= vd->verts[vd->i]; vd->co= vd->mvert[vd->index].co; + vd->origco= (vd->origvert)? vd->origvert[vd->i]: vd->co; vd->no= vd->mvert[vd->index].no; - VECSUB(delta, vd->co, vd->location); + VECSUB(delta, vd->origco, vd->location); dsq = INPR(delta, delta); if(dsq < vd->radius_squared) { vd->dist = sqrt(dsq); return 1; } + + vd->i++; } return 0; @@ -563,7 +699,7 @@ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3] float nout[3] = {0.0f, 0.0f, 0.0f}; float nout_flip[3] = {0.0f, 0.0f, 0.0f}; - sculpt_node_verts_init(sd, ss, nodes[n], &vd); + sculpt_node_verts_init(sd, ss, nodes[n], NULL, &vd); if(brush->flag & BRUSH_ANCHORED) { while(sculpt_node_verts_next(&vd)) @@ -614,7 +750,8 @@ static void do_draw_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int t for(n=0; ncustomdata_mask); SculptSession *ss = ob->sculpt; - + if((ss->multires = sculpt_multires_active(ob))) { ss->totvert = dm->getNumVerts(dm); ss->totface = dm->getNumFaces(dm); @@ -1198,12 +1339,12 @@ static void sculpt_update_mesh_elements(bContext *C) ss->totface = me->totface; ss->mvert = me->mvert; ss->mface = me->mface; - if(!ss->face_normals) - ss->face_normals = MEM_callocN(sizeof(float) * 3 * me->totface, "sculpt face normals"); + ss->face_normals = NULL; } + ss->ob = ob; ss->tree = dm->getPBVH(dm); - ss->fmap = dm->getFaceMap(dm); + ss->fmap = (need_fmap)? dm->getFaceMap(dm): NULL; } static int sculpt_mode_poll(bContext *C) @@ -1217,27 +1358,27 @@ int sculpt_poll(bContext *C) return sculpt_mode_poll(C) && paint_poll(C); } -static void sculpt_undo_push(bContext *C, Sculpt *sd) +static char *sculpt_tool_name(Sculpt *sd) { Brush *brush = paint_brush(&sd->paint); switch(brush->sculpt_tool) { case SCULPT_TOOL_DRAW: - ED_undo_push(C, "Draw Brush"); break; + return "Draw Brush"; break; case SCULPT_TOOL_SMOOTH: - ED_undo_push(C, "Smooth Brush"); break; + return "Smooth Brush"; break; case SCULPT_TOOL_PINCH: - ED_undo_push(C, "Pinch Brush"); break; + return "Pinch Brush"; break; case SCULPT_TOOL_INFLATE: - ED_undo_push(C, "Inflate Brush"); break; + return "Inflate Brush"; break; case SCULPT_TOOL_GRAB: - ED_undo_push(C, "Grab Brush"); break; + return "Grab Brush"; break; case SCULPT_TOOL_LAYER: - ED_undo_push(C, "Layer Brush"); break; + return "Layer Brush"; break; case SCULPT_TOOL_FLATTEN: - ED_undo_push(C, "Flatten Brush"); break; + return "Flatten Brush"; break; default: - ED_undo_push(C, "Sculpting"); break; + return "Sculpting"; break; } } @@ -1341,7 +1482,7 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte cache->mats = MEM_callocN(sizeof(bglMats), "sculpt bglMats"); view3d_get_transformation(vc->ar, vc->rv3d, vc->obact, cache->mats); - sculpt_update_mesh_elements(C); + sculpt_update_mesh_elements(C, 0); /* Initialize layer brush displacements */ if(brush->sculpt_tool == SCULPT_TOOL_LAYER && @@ -1589,7 +1730,7 @@ static void sculpt_brush_stroke_init(bContext *C) changes are made to the texture. */ sculpt_update_tex(sd, ss); - sculpt_update_mesh_elements(C); + sculpt_update_mesh_elements(C, 1); } static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) @@ -1661,11 +1802,17 @@ static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op, wmEvent if(over_mesh) { Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; + Sculpt *sd = CTX_data_tool_settings(C)->sculpt; ED_view3d_init_mats_rv3d(ob, CTX_wm_region_view3d(C)); sculpt_brush_stroke_init_properties(C, op, event, ss); + sculpt_update_cache_invariants(sd, ss, C, op); + + undo_paint_push_begin(UNDO_PAINT_MESH, sculpt_tool_name(sd), + sculpt_undo_restore, sculpt_undo_free); + return 1; } else @@ -1691,11 +1838,13 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke) /* Finished */ if(ss->cache) { - Sculpt *sd = CTX_data_tool_settings(C)->sculpt; + // Sculpt *sd = CTX_data_tool_settings(C)->sculpt; sculpt_cache_free(ss->cache); ss->cache = NULL; - sculpt_undo_push(C, sd); + + undo_paint_push_end(UNDO_PAINT_MESH); + // XXX ED_undo_push(C, sculpt_tool_name(sd)); } } @@ -1733,7 +1882,7 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op) sculpt_flush_update(C); sculpt_cache_free(ss->cache); - sculpt_undo_push(C, sd); + // XXX ED_undo_push(C, sculpt_tool_name(sd)); return OPERATOR_FINISHED; } @@ -1809,7 +1958,7 @@ static void sculpt_init_session(bContext *C, Object *ob) { ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session"); - sculpt_update_mesh_elements(C); + sculpt_update_mesh_elements(C, 0); } static int sculpt_toggle_mode(bContext *C, wmOperator *op) diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.h b/source/blender/editors/sculpt_paint/sculpt_intern.h index 15ccacc294a..d0eeacf5ea3 100644 --- a/source/blender/editors/sculpt_paint/sculpt_intern.h +++ b/source/blender/editors/sculpt_paint/sculpt_intern.h @@ -40,6 +40,7 @@ struct Object; struct Scene; struct Sculpt; struct SculptStroke; +struct MultiresModifierData; /* Interface */ void sculptmode_selectbrush_menu(void); @@ -47,6 +48,7 @@ void sculptmode_draw_mesh(int); void sculpt_paint_brush(char clear); void sculpt_stroke_draw(struct SculptStroke *); void sculpt_radialcontrol_start(int mode); +struct MultiresModifierData *sculpt_multires_active(struct Object *ob); struct Brush *sculptmode_brush(void); //void do_symmetrical_brush_actions(struct Sculpt *sd, struct wmOperator *wm, struct BrushAction *a, short *, short *); @@ -55,6 +57,7 @@ char sculpt_modifiers_active(struct Object *ob); void sculpt(Sculpt *sd); int sculpt_poll(struct bContext *C); +void sculpt_update_mesh_elements(struct bContext *C, int need_fmap); /* Stroke */ struct SculptStroke *sculpt_stroke_new(const int max); diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c index 18e3304c191..e20c88ba41f 100644 --- a/source/blender/editors/util/undo.c +++ b/source/blender/editors/util/undo.c @@ -147,6 +147,8 @@ static int ed_undo_step(bContext *C, int step, const char *undoname) if(obact && obact->mode & OB_MODE_TEXTURE_PAINT) ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step); + else if(obact && obact->mode & OB_MODE_SCULPT) + ED_undo_paint_step(C, UNDO_PAINT_MESH, step); else if(obact && obact->mode & OB_MODE_PARTICLE_EDIT) { if(step==1) PE_undo(CTX_data_scene(C)); -- cgit v1.2.3 From 68278f35e8ae7e6ca387695d752a907ade5f8c4e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 4 Nov 2009 21:10:28 +0000 Subject: Sculpt: tool updates for latest changes * Smooth: vert-face map is now only created when this tool is used, would be best to also avoid using it here to avoid a sudden increase in memory, but is not trivial. * Grab: now no longer uses active verts list and loops over nodes like other tools. * Layer: uses original coordinates from undo now to save memory when not using persistent layer. * Anchored: this option works again now, though is still quite slow as it loops over all verts/faces. Smooth, layer tools and the anchored option could still be improved to use less memory and/or work faster by only doing things per node. --- source/blender/blenkernel/BKE_paint.h | 2 +- source/blender/blenkernel/intern/object.c | 7 +- source/blender/editors/sculpt_paint/sculpt.c | 206 +++++++++++++-------------- 3 files changed, 99 insertions(+), 116 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index ffb4e6ae743..2b4fb9d938d 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -85,7 +85,7 @@ typedef struct SculptSession { unsigned int texcache_side, *texcache, texcache_actual; /* Layer brush persistence between strokes */ - float (*mesh_co_orig)[3]; /* Copy of the mesh vertices' locations */ + float (*layer_co)[3]; /* Copy of the mesh vertices' locations */ float *layer_disps; /* Displacements for each vertex */ struct SculptStroke *stroke; diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 7ed120c3cfb..6f0749e0fcd 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -235,11 +235,8 @@ void free_sculptsession(SculptSession **ssp) if(ss->layer_disps) MEM_freeN(ss->layer_disps); - if(ss->mesh_co_orig) - MEM_freeN(ss->mesh_co_orig); - - if(ss->face_normals) - MEM_freeN(ss->face_normals); + if(ss->layer_co) + MEM_freeN(ss->layer_co); MEM_freeN(ss); diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 0841fdfec22..fd614555fcb 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -159,9 +159,9 @@ typedef struct StrokeCache { float (*face_norms)[3]; /* Copy of the mesh faces' normals */ float rotation; /* Texture rotation (radians) for anchored and rake modes */ int pixel_radius, previous_pixel_radius; - ListBase grab_active_verts[8]; /* The same list of verts is used throught grab stroke */ - PBVHNode **grab_active_nodes[8]; + PBVHNode **grab_active_nodes[8]; /* The same list of nodes is used throught grab stroke */ int grab_active_totnode[8]; + float grab_active_location[8][3]; float grab_delta[3], grab_delta_symmetry[3]; float old_grab_location[3]; int symmetry; /* Symmetry index between 0 and 7 */ @@ -873,34 +873,39 @@ static void do_pinch_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int static void do_grab_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) { - ActiveData *node= ss->cache->grab_active_verts[ss->cache->symmetry].first; - float add[3]; - float grab_delta[3]; + Brush *brush = paint_brush(&sd->paint); + float bstrength= ss->cache->bstrength; + float grab_delta[3], (*origco)[3]; int n; VecCopyf(grab_delta, ss->cache->grab_delta_symmetry); - - while(node) { - float *co= ss->mvert[node->Index].co; + + #pragma omp parallel for private(n) schedule(static) + for(n=0; nFade); - VecAddf(add, add, co); + origco= sculpt_undo_push_node(ss, nodes[n]); + sculpt_node_verts_init(sd, ss, nodes[n], origco, &vd); - sculpt_clip(sd, ss, co, add); + while(sculpt_node_verts_next(&vd)) { + const float fade = tex_strength(ss, brush, origco[vd.i], vd.dist)*bstrength; + const float add[3]= {vd.co[0]+fade*grab_delta[0], + vd.co[1]+fade*grab_delta[1], + vd.co[2]+fade*grab_delta[2]}; - node= node->next; - } + sculpt_clip(sd, ss, vd.co, add); + ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; + } - for(n=0; npaint); float bstrength= ss->cache->bstrength; - float area_normal[3]; + float area_normal[3], offset[3]; float lim= ss->cache->radius / 4; int n; @@ -909,10 +914,16 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int calc_area_normal(sd, ss, area_normal, nodes, totnode); + offset[0]= ss->cache->scale[0]*area_normal[0]; + offset[1]= ss->cache->scale[1]*area_normal[1]; + offset[2]= ss->cache->scale[2]*area_normal[2]; + #pragma omp parallel for private(n) schedule(static) for(n=0; n 0 && *disp > lim)) *disp = lim; - val[0] = ss->mesh_co_orig[vd.index][0]+area_normal[0] * *disp*ss->cache->scale[0]; - val[1] = ss->mesh_co_orig[vd.index][1]+area_normal[1] * *disp*ss->cache->scale[1]; - val[2] = ss->mesh_co_orig[vd.index][2]+area_normal[2] * *disp*ss->cache->scale[2]; + if(ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) { + /* persistent base */ + val[0] = ss->layer_co[vd.index][0] + (*disp)*offset[0]; + val[1] = ss->layer_co[vd.index][1] + (*disp)*offset[1]; + val[2] = ss->layer_co[vd.index][2] + (*disp)*offset[2]; + } + else { + val[0] = origco[vd.i][0] + (*disp)*offset[0]; + val[1] = origco[vd.i][1] + (*disp)*offset[1]; + val[2] = origco[vd.i][2] + (*disp)*offset[2]; + } sculpt_clip(sd, ss, vd.co, val); + ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; } BLI_pbvh_node_mark_update(nodes[n]); @@ -1097,74 +1117,35 @@ static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, PBVHNode **node } } -static void sculpt_brush_hit_cb(PBVHNode *node, void *data_v) -{ - SculptSearchSphereData *data = data_v; - int i, totvert, *verts; - - BLI_pbvh_node_get_verts(node, &verts, &totvert); - - /* XXX: for now grab brush still uses an active vert list, - will be fixed later */ - - for(i = 0; i < totvert; ++i) { - int v = verts[i]; - float delta[3], dsq; - - VecSubf(delta, data->ss->mvert[v].co, - data->ss->cache->location); - dsq = Inpf(delta, delta); - - if(dsq < data->radius_squared) { - ActiveData *adata = - (ActiveData*)MEM_mallocN(sizeof(ActiveData), - "ActiveData"); - adata->Index = v; - adata->dist = sqrt(dsq); - BLI_addtail(data->active_verts, adata); - } - } - - BLI_pbvh_node_mark_update(node); -} - static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache) { + SculptSearchSphereData data; Brush *brush = paint_brush(&sd->paint); //KeyBlock *keyblock= NULL; /*XXX: ob_get_keyblock(OBACT); */ PBVHNode **nodes= NULL; int totnode; - SculptSearchSphereData data; data.ss = ss; data.sd = sd; data.radius_squared = ss->cache->radius * ss->cache->radius; - /* Build a list of all vertices that are potentially within the brush's + /* Build a list of all nodes that are potentially within the brush's area of influence */ if(brush->sculpt_tool == SCULPT_TOOL_GRAB) { if(cache->first_time) { - const float bstrength= brush_strength(sd, cache); - ListBase *grab_active_verts = &ss->cache->grab_active_verts[ss->cache->symmetry]; - ActiveData *adata; - - data.active_verts = grab_active_verts; - BLI_pbvh_search_callback(ss->tree, sculpt_search_sphere_cb, &data, - sculpt_brush_hit_cb, &data); - + /* For the grab tool we store these nodes once in the beginning + and then reuse them. */ BLI_pbvh_search_gather(ss->tree, sculpt_search_sphere_cb, &data, &nodes, &totnode); ss->cache->grab_active_nodes[ss->cache->symmetry]= nodes; ss->cache->grab_active_totnode[ss->cache->symmetry]= totnode; - - /* Update brush strength for each vertex */ - for(adata = data.active_verts->first; adata; adata = adata->next) - adata->Fade = tex_strength(ss, brush, ss->mvert[adata->Index].co, adata->dist) * bstrength; + VecCopyf(ss->cache->grab_active_location[ss->cache->symmetry], ss->cache->location); } else { nodes= ss->cache->grab_active_nodes[ss->cache->symmetry]; totnode= ss->cache->grab_active_totnode[ss->cache->symmetry]; + VecCopyf(ss->cache->location, ss->cache->grab_active_location[ss->cache->symmetry]); } } else { @@ -1226,9 +1207,8 @@ static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache) } #endif - if(brush->sculpt_tool != SCULPT_TOOL_GRAB) - if(nodes) - MEM_freeN(nodes); + if((brush->sculpt_tool != SCULPT_TOOL_GRAB) && nodes) + MEM_freeN(nodes); } } @@ -1449,7 +1429,6 @@ static void sculpt_cache_free(StrokeCache *cache) if(cache->mats) MEM_freeN(cache->mats); for(i = 0; i < 8; ++i) { - BLI_freelistN(&cache->grab_active_verts[i]); if(cache->grab_active_nodes[i]) MEM_freeN(cache->grab_active_nodes[i]); } @@ -1482,46 +1461,39 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte cache->mats = MEM_callocN(sizeof(bglMats), "sculpt bglMats"); view3d_get_transformation(vc->ar, vc->rv3d, vc->obact, cache->mats); - sculpt_update_mesh_elements(C, 0); - - /* Initialize layer brush displacements */ - if(brush->sculpt_tool == SCULPT_TOOL_LAYER && - (!ss->layer_disps || !(brush->flag & BRUSH_PERSISTENT))) { - if(ss->layer_disps) - MEM_freeN(ss->layer_disps); - ss->layer_disps = MEM_callocN(sizeof(float) * ss->totvert, "layer brush displacements"); - } - - /* Make copies of the mesh vertex locations and normals for some tools */ - if(brush->sculpt_tool == SCULPT_TOOL_LAYER || (brush->flag & BRUSH_ANCHORED)) { - if(brush->sculpt_tool != SCULPT_TOOL_LAYER || - !ss->mesh_co_orig || !(brush->flag & BRUSH_PERSISTENT)) { - if(!ss->mesh_co_orig) - ss->mesh_co_orig= MEM_mallocN(sizeof(float) * 3 * ss->totvert, + /* Initialize layer brush displacements and persistent coords */ + if(brush->sculpt_tool == SCULPT_TOOL_LAYER) { + if(!ss->layer_disps || !(brush->flag & BRUSH_PERSISTENT)) { + if(ss->layer_disps) + MEM_freeN(ss->layer_disps); + ss->layer_disps = MEM_callocN(sizeof(float) * ss->totvert, "layer brush displacements"); + } + if(!ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) { + if(!ss->layer_co) + ss->layer_co= MEM_mallocN(sizeof(float) * 3 * ss->totvert, "sculpt mesh vertices copy"); for(i = 0; i < ss->totvert; ++i) - VecCopyf(ss->mesh_co_orig[i], ss->mvert[i].co); + VecCopyf(ss->layer_co[i], ss->mvert[i].co); } + } - if(brush->flag & BRUSH_ANCHORED) { - cache->orig_norms= MEM_mallocN(sizeof(short) * 3 * ss->totvert, "Sculpt orig norm"); - for(i = 0; i < ss->totvert; ++i) { - cache->orig_norms[i][0] = ss->mvert[i].no[0]; - cache->orig_norms[i][1] = ss->mvert[i].no[1]; - cache->orig_norms[i][2] = ss->mvert[i].no[2]; - } + /* Make copies of the mesh vertex locations and normals for some tools */ + if(brush->flag & BRUSH_ANCHORED) { + cache->orig_norms= MEM_mallocN(sizeof(short) * 3 * ss->totvert, "Sculpt orig norm"); + for(i = 0; i < ss->totvert; ++i) { + cache->orig_norms[i][0] = ss->mvert[i].no[0]; + cache->orig_norms[i][1] = ss->mvert[i].no[1]; + cache->orig_norms[i][2] = ss->mvert[i].no[2]; + } - if(ss->face_normals) { - float *fn = ss->face_normals; - cache->face_norms= MEM_mallocN(sizeof(float) * 3 * ss->totface, "Sculpt face norms"); - for(i = 0; i < ss->totface; ++i, fn += 3) - VecCopyf(cache->face_norms[i], fn); - } + if(ss->face_normals) { + float *fn = ss->face_normals; + cache->face_norms= MEM_mallocN(sizeof(float) * 3 * ss->totface, "Sculpt face norms"); + for(i = 0; i < ss->totface; ++i, fn += 3) + VecCopyf(cache->face_norms[i], fn); } } - //view3d_unproject(cache->mats, cache->true_location, cache->initial_mouse[0], cache->initial_mouse[1], cache->depth); - cache->initial_radius = unproject_brush_radius(vc, cache->true_location, brush->size); cache->rotation = 0; cache->first_time = 1; } @@ -1535,7 +1507,7 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P int dx, dy; - if(!(brush->flag & BRUSH_ANCHORED)) + if(!(brush->flag & BRUSH_ANCHORED) || cache->first_time) RNA_float_get_array(ptr, "location", cache->true_location); cache->flip = RNA_boolean_get(ptr, "flip"); RNA_float_get_array(ptr, "mouse", cache->mouse); @@ -1546,6 +1518,9 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P cache->previous_pixel_radius = cache->pixel_radius; cache->pixel_radius = brush->size; + if(cache->first_time) + cache->initial_radius = unproject_brush_radius(cache->vc, cache->true_location, brush->size); + if(brush->flag & BRUSH_SIZE_PRESSURE) { cache->pixel_radius *= cache->pressure; cache->radius = cache->initial_radius * cache->pressure; @@ -1681,7 +1656,6 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou /* Initialize stroke operator properties */ static void sculpt_brush_stroke_init_properties(bContext *C, wmOperator *op, wmEvent *event, SculptSession *ss) { - Sculpt *sd = CTX_data_tool_settings(C)->sculpt; Object *ob= CTX_data_active_object(C); ModifierData *md; float scale[3], clip_tolerance[3] = {0,0,0}; @@ -1714,14 +1688,13 @@ static void sculpt_brush_stroke_init_properties(bContext *C, wmOperator *op, wmE mouse[0] = event->x; mouse[1] = event->y; RNA_float_set_array(op->ptr, "initial_mouse", mouse); - - sculpt_update_cache_invariants(sd, ss, C, op); } static void sculpt_brush_stroke_init(bContext *C) { Sculpt *sd = CTX_data_tool_settings(C)->sculpt; SculptSession *ss = CTX_data_active_object(C)->sculpt; + Brush *brush = paint_brush(&sd->paint); view3d_operator_needs_opengl(C); @@ -1730,7 +1703,7 @@ static void sculpt_brush_stroke_init(bContext *C) changes are made to the texture. */ sculpt_update_tex(sd, ss); - sculpt_update_mesh_elements(C, 1); + sculpt_update_mesh_elements(C, brush->sculpt_tool == SCULPT_TOOL_SMOOTH); } static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) @@ -1740,9 +1713,22 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) int i; /* Restore the mesh before continuing with anchored stroke */ - if((brush->flag & BRUSH_ANCHORED) && ss->mesh_co_orig) { + if((brush->flag & BRUSH_ANCHORED) && cache->orig_norms) { + ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); + SculptUndoNode *unode; + + /* this could benefit from multithreading... */ + + for(unode = lb->first; unode; unode = unode->next) { + float (*co)[3]= unode->co; + int *index= unode->index; + int totvert= unode->totvert; + + for(i = 0; i < totvert; ++i) + VECCOPY(ss->mvert[index[i]].co, co[i]); + } + for(i = 0; i < ss->totvert; ++i) { - VecCopyf(ss->mvert[i].co, ss->mesh_co_orig[i]); ss->mvert[i].no[0] = cache->orig_norms[i][0]; ss->mvert[i].no[1] = cache->orig_norms[i][1]; ss->mvert[i].no[2] = cache->orig_norms[i][2]; @@ -1931,9 +1917,9 @@ static int sculpt_set_persistent_base(bContext *C, wmOperator *op) MEM_freeN(ss->layer_disps); ss->layer_disps = NULL; - if(ss->mesh_co_orig) - MEM_freeN(ss->mesh_co_orig); - ss->mesh_co_orig = NULL; + if(ss->layer_co) + MEM_freeN(ss->layer_co); + ss->layer_co = NULL; } return OPERATOR_FINISHED; -- cgit v1.2.3 From 132783328209f24873629113665f01b35364fdd0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 6 Nov 2009 16:46:35 +0000 Subject: Sculpt: WIP brush behavior changes * Draw/Inflate/Layer now keep working on the original mesh coordinates and normals from when the stroke started. This helps avoid the mesh blowing up, but can still be better. The old behavior is still available as "Accumulate" in the UI. * This requires some more memory usage for the BVH, would like to find a way to avoid that. * Smooth falloff is now the default. * Spacing is now enabled by default, with a value of 7.5. * Anchored now stores normals per node to save some memory. --- source/blender/blenkernel/intern/brush.c | 3 +- source/blender/blenkernel/intern/cdderivedmesh.c | 6 +- source/blender/blenlib/BLI_pbvh.h | 16 +- source/blender/blenlib/intern/pbvh.c | 115 +++++++++---- source/blender/editors/sculpt_paint/paint_undo.c | 12 +- source/blender/editors/sculpt_paint/sculpt.c | 207 +++++++++++++++-------- source/blender/makesdna/DNA_brush_types.h | 13 +- source/blender/makesrna/intern/rna_brush.c | 5 + 8 files changed, 259 insertions(+), 118 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index 8a4ffca8244..b415e7b7b17 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -75,13 +75,14 @@ Brush *add_brush(const char *name) brush->rgb[2]= 1.0f; brush->alpha= 0.2f; brush->size= 25; - brush->spacing= 10.0f; + brush->spacing= 7.5f; brush->smooth_stroke_radius= 75; brush->smooth_stroke_factor= 0.9; brush->rate= 0.1f; brush->jitter= 0.0f; brush->clone.alpha= 0.5; brush->sculpt_tool = SCULPT_TOOL_DRAW; + brush->flag |= BRUSH_SPACE; brush_curve_preset(brush, BRUSH_PRESET_SMOOTH); diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 7cc46d39158..7acf77c6f90 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -420,11 +420,13 @@ static void draw_partial_cb(PBVHNode *node, void *data) Returns true if the AABB is at least partially within the frustum (ok, not a real frustum), false otherwise. */ -int planes_contain_AABB(PBVHNode *node, float bb_min[3], float bb_max[3], void *data) +int planes_contain_AABB(PBVHNode *node, void *data) { float (*planes)[4] = data; int i, axis; - float vmin[3], vmax[3]; + float vmin[3], vmax[3], bb_min[3], bb_max[3]; + + BLI_pbvh_node_get_BB(node, bb_min, bb_max); for(i = 0; i < 4; ++i) { for(axis = 0; axis < 3; ++axis) { diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h index ba9de462b3d..360a9937498 100644 --- a/source/blender/blenlib/BLI_pbvh.h +++ b/source/blender/blenlib/BLI_pbvh.h @@ -37,8 +37,7 @@ typedef struct PBVHNode PBVHNode; /* Callbacks */ /* returns 1 if the search should continue from this node, 0 otherwise */ -typedef int (*BLI_pbvh_SearchCallback)(PBVHNode *node, - float bb_min[3], float bb_max[3], void *data); +typedef int (*BLI_pbvh_SearchCallback)(PBVHNode *node, void *data); typedef void (*BLI_pbvh_HitCallback)(PBVHNode *node, void *data); @@ -69,7 +68,7 @@ void BLI_pbvh_search_gather(PBVH *bvh, hit first */ void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, - float ray_start[3], float ray_normal[3]); + float ray_start[3], float ray_normal[3], int original); /* Node Access */ @@ -78,20 +77,25 @@ typedef enum { PBVH_UpdateNormals = 2, PBVH_UpdateBB = 4, + PBVH_UpdateOriginalBB = 4, PBVH_UpdateDrawBuffers = 8, PBVH_UpdateRedraw = 16 } PBVHNodeFlags; void BLI_pbvh_node_mark_update(PBVHNode *node); -void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, int *totvert); -void BLI_pbvh_node_get_faces(PBVHNode *node, int **face_indices, int *totface); +void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, + int *totvert, int *allverts); +void BLI_pbvh_node_get_faces(PBVHNode *node, int **face_indices, + int **face_vert_indices, int *totface); void *BLI_pbvh_node_get_draw_buffers(PBVHNode *node); +void BLI_pbvh_node_get_BB(PBVHNode *node, float bb_min[3], float bb_max[3]); +void BLI_pbvh_node_get_original_BB(PBVHNode *node, float bb_min[3], float bb_max[3]); /* Update Normals/Bounding Box/Draw Buffers/Redraw and clear flags */ void BLI_pbvh_update(PBVH *bvh, int flags, float (*face_nors)[3]); -void BLI_pbvh_redraw_bounding_box(PBVH *bvh, float bb_min[3], float bb_max[3]); +void BLI_pbvh_redraw_BB(PBVH *bvh, float bb_min[3], float bb_max[3]); #endif /* BLI_PBVH_H */ diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index 2a1f1484daa..4cf278d219e 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -82,12 +82,14 @@ struct PBVHNode { /* Voxel bounds */ BB vb; + BB orig_vb; /* For internal nodes */ int children_offset; /* Pointer into bvh face_indices */ int *face_indices; + int *face_vert_indices; unsigned short totface; unsigned short uniq_verts, face_verts; @@ -266,7 +268,7 @@ static void grow_nodes(PBVH *bvh, int totnode) /* Add a vertex to the map, with a positive value for unique vertices and a negative value for additional vertices */ -static void map_insert_vert(PBVH *bvh, GHash *map, +static int map_insert_vert(PBVH *bvh, GHash *map, unsigned short *face_verts, unsigned short *uniq_verts, int vertex) { @@ -284,7 +286,10 @@ static void map_insert_vert(PBVH *bvh, GHash *map, } BLI_ghash_insert(map, key, value); + return GET_INT_FROM_POINTER(value); } + else + return GET_INT_FROM_POINTER(BLI_ghash_lookup(map, key)); } /* Find vertices used by the faces in this node and update the draw buffers */ @@ -299,13 +304,17 @@ static void build_leaf_node(PBVH *bvh, PBVHNode *node) node->uniq_verts = node->face_verts = 0; totface= node->totface; + node->face_vert_indices = MEM_callocN(sizeof(int) * + 4*totface, "bvh node face vert indices"); + for(i = 0; i < totface; ++i) { MFace *f = bvh->faces + node->face_indices[i]; int sides = f->v4 ? 4 : 3; for(j = 0; j < sides; ++j) { - map_insert_vert(bvh, map, &node->face_verts, - &node->uniq_verts, (&f->v1)[j]); + node->face_vert_indices[i*4 + j]= + map_insert_vert(bvh, map, &node->face_verts, + &node->uniq_verts, (&f->v1)[j]); } } @@ -327,6 +336,10 @@ static void build_leaf_node(PBVH *bvh, PBVHNode *node) GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(iter)); } + for(i = 0; i < totface*4; ++i) + if(node->face_vert_indices[i] < 0) + node->face_vert_indices[i]= -node->face_vert_indices[i] + node->uniq_verts - 1; + node->draw_buffers = GPU_build_buffers(map, bvh->verts, bvh->faces, node->face_indices, @@ -370,6 +383,7 @@ void build_sub(PBVH *bvh, int node_index, BB *cb, BBC *prim_bbc, } build_leaf_node(bvh, bvh->nodes + node_index); + bvh->nodes[node_index].orig_vb= bvh->nodes[node_index].vb; /* Done with this subtree */ return; @@ -394,6 +408,8 @@ void build_sub(PBVH *bvh, int node_index, BB *cb, BBC *prim_bbc, (BB*)(prim_bbc + bvh->face_indices[i])); } + bvh->nodes[node_index].orig_vb= bvh->nodes[node_index].vb; + end = partition_indices(bvh->face_indices, offset, offset + count - 1, axis, (cb->bmax[axis] + cb->bmin[axis]) * 0.5f, @@ -480,6 +496,7 @@ void BLI_pbvh_free(PBVH *bvh) if(bvh->nodes[i].flag & PBVH_Leaf) { GPU_free_buffers(bvh->nodes[i].draw_buffers); MEM_freeN(bvh->nodes[i].vert_indices); + MEM_freeN(bvh->nodes[i].face_vert_indices); } } @@ -562,7 +579,7 @@ static PBVHNode *pbvh_iter_next(PBVHIter *iter) /* check search callback */ search_data= iter->search_data; - if(iter->scb && !iter->scb(node, node->vb.bmin, node->vb.bmax, search_data)) + if(iter->scb && !iter->scb(node, search_data)) continue; /* don't traverse, outside of search zone */ if(node->flag & PBVH_Leaf) { @@ -634,11 +651,12 @@ void BLI_pbvh_search_callback(PBVH *bvh, pbvh_iter_end(&iter); } -static int update_search_cb(PBVHNode *node, - float bb_min[3], float bb_max[3], void *data_v) +static int update_search_cb(PBVHNode *node, void *data_v) { + int flag= GET_INT_FROM_POINTER(data_v); + if(node->flag & PBVH_Leaf) - return (node->flag & (PBVH_UpdateNormals|PBVH_UpdateBB|PBVH_UpdateDrawBuffers|PBVH_UpdateRedraw)); + return (node->flag & flag); return 1; } @@ -670,7 +688,8 @@ static void pbvh_update_normals(PBVH *bvh, PBVHNode **nodes, if((node->flag & PBVH_UpdateNormals)) { int i, j, totface, *faces; - BLI_pbvh_node_get_faces(node, &faces, &totface); + faces= node->face_indices; + totface= node->totface; for(i = 0; i < totface; ++i) { MFace *f= bvh->faces + faces[i]; @@ -713,7 +732,8 @@ static void pbvh_update_normals(PBVH *bvh, PBVHNode **nodes, if(node->flag & PBVH_UpdateNormals) { int i, *verts, totvert; - BLI_pbvh_node_get_verts(node, &verts, &totvert); + verts= node->vert_indices; + totvert= node->uniq_verts; for(i = 0; i < totvert; ++i) { const int v = verts[i]; @@ -754,6 +774,9 @@ static void pbvh_update_BB_redraw(PBVH *bvh, PBVHNode **nodes, /* don't clear flag yet, leave it for flushing later */ update_node_vb(bvh, node); + if((flag & PBVH_UpdateOriginalBB) && (node->flag & PBVH_UpdateOriginalBB)) + node->orig_vb= node->vb; + if((flag & PBVH_UpdateRedraw) && (node->flag & PBVH_UpdateRedraw)) node->flag &= ~PBVH_UpdateRedraw; } @@ -780,22 +803,32 @@ static void pbvh_update_draw_buffers(PBVH *bvh, PBVHNode **nodes, int totnode) } } -static int pbvh_flush_bb(PBVH *bvh, PBVHNode *node) +static int pbvh_flush_bb(PBVH *bvh, PBVHNode *node, int flag) { int update= 0; /* difficult to multithread well, we just do single threaded recursive */ if(node->flag & PBVH_Leaf) { - update= (node->flag & PBVH_UpdateBB); - node->flag &= ~PBVH_UpdateBB; + if(flag & PBVH_UpdateBB) { + update |= (node->flag & PBVH_UpdateBB); + node->flag &= ~PBVH_UpdateBB; + } + + if(flag & PBVH_UpdateOriginalBB) { + update |= (node->flag & PBVH_UpdateOriginalBB); + node->flag &= ~PBVH_UpdateOriginalBB; + } + return update; } else { - update |= pbvh_flush_bb(bvh, bvh->nodes + node->children_offset); - update |= pbvh_flush_bb(bvh, bvh->nodes + node->children_offset + 1); + update |= pbvh_flush_bb(bvh, bvh->nodes + node->children_offset, flag); + update |= pbvh_flush_bb(bvh, bvh->nodes + node->children_offset + 1, flag); - if(update) + if(update & PBVH_UpdateBB) update_node_vb(bvh, node); + if(update & PBVH_UpdateOriginalBB) + node->orig_vb= node->vb; } return update; @@ -806,24 +839,25 @@ void BLI_pbvh_update(PBVH *bvh, int flag, float (*face_nors)[3]) PBVHNode **nodes; int totnode; - BLI_pbvh_search_gather(bvh, update_search_cb, NULL, &nodes, &totnode); + BLI_pbvh_search_gather(bvh, update_search_cb, SET_INT_IN_POINTER(flag), + &nodes, &totnode); if(flag & PBVH_UpdateNormals) pbvh_update_normals(bvh, nodes, totnode, face_nors); - if(flag & (PBVH_UpdateBB|PBVH_UpdateRedraw)) + if(flag & (PBVH_UpdateBB|PBVH_UpdateOriginalBB|PBVH_UpdateRedraw)) pbvh_update_BB_redraw(bvh, nodes, totnode, flag); if(flag & PBVH_UpdateDrawBuffers) pbvh_update_draw_buffers(bvh, nodes, totnode); - if(flag & PBVH_UpdateBB) - pbvh_flush_bb(bvh, bvh->nodes); + if(flag & (PBVH_UpdateBB|PBVH_UpdateOriginalBB)) + pbvh_flush_bb(bvh, bvh->nodes, flag); if(nodes) MEM_freeN(nodes); } -void BLI_pbvh_redraw_bounding_box(PBVH *bvh, float bb_min[3], float bb_max[3]) +void BLI_pbvh_redraw_BB(PBVH *bvh, float bb_min[3], float bb_max[3]) { PBVHIter iter; PBVHNode *node; @@ -847,19 +881,21 @@ void BLI_pbvh_redraw_bounding_box(PBVH *bvh, float bb_min[3], float bb_max[3]) void BLI_pbvh_node_mark_update(PBVHNode *node) { - node->flag |= PBVH_UpdateNormals|PBVH_UpdateBB|PBVH_UpdateDrawBuffers|PBVH_UpdateRedraw; + node->flag |= PBVH_UpdateNormals|PBVH_UpdateBB|PBVH_UpdateOriginalBB|PBVH_UpdateDrawBuffers|PBVH_UpdateRedraw; } -void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, int *totvert) +void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, int *totvert, int *allvert) { - *vert_indices= node->vert_indices; - *totvert= node->uniq_verts; + if(vert_indices) *vert_indices= node->vert_indices; + if(totvert) *totvert= node->uniq_verts; + if(allvert) *allvert= node->uniq_verts + node->face_verts; } -void BLI_pbvh_node_get_faces(PBVHNode *node, int **face_indices, int *totface) +void BLI_pbvh_node_get_faces(PBVHNode *node, int **face_indices, int **face_vert_indices, int *totface) { - *face_indices= node->face_indices; - *totface= node->totface; + if(face_indices) *face_indices= node->face_indices; + if(face_vert_indices) *face_vert_indices= node->face_vert_indices; + if(totface) *totface= node->totface; } void *BLI_pbvh_node_get_draw_buffers(PBVHNode *node) @@ -867,6 +903,18 @@ void *BLI_pbvh_node_get_draw_buffers(PBVHNode *node) return node->draw_buffers; } +void BLI_pbvh_node_get_BB(PBVHNode *node, float bb_min[3], float bb_max[3]) +{ + VecCopyf(bb_min, node->vb.bmin); + VecCopyf(bb_max, node->vb.bmax); +} + +void BLI_pbvh_node_get_original_BB(PBVHNode *node, float bb_min[3], float bb_max[3]) +{ + VecCopyf(bb_min, node->orig_vb.bmin); + VecCopyf(bb_max, node->orig_vb.bmax); +} + /********************************* Raycast ***********************************/ typedef struct { @@ -874,15 +922,21 @@ typedef struct { float start[3]; int sign[3]; float inv_dir[3]; + int original; } RaycastData; /* Adapted from here: http://www.gamedev.net/community/forums/topic.asp?topic_id=459973 */ -static int ray_aabb_intersect(PBVHNode *node, float bb_min[3], float bb_max[3], void *data_v) +static int ray_aabb_intersect(PBVHNode *node, void *data_v) { RaycastData *ray = data_v; - float bbox[2][3]; + float bb_min[3], bb_max[3], bbox[2][3]; float tmin, tmax, tymin, tymax, tzmin, tzmax; + if(ray->original) + BLI_pbvh_node_get_original_BB(node, bb_min, bb_max); + else + BLI_pbvh_node_get_BB(node, bb_min, bb_max); + VecCopyf(bbox[0], bb_min); VecCopyf(bbox[1], bb_max); @@ -918,7 +972,7 @@ static int ray_aabb_intersect(PBVHNode *node, float bb_min[3], float bb_max[3], } void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, - float ray_start[3], float ray_normal[3]) + float ray_start[3], float ray_normal[3], int original) { RaycastData rcd; @@ -929,6 +983,7 @@ void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, rcd.sign[0] = rcd.inv_dir[0] < 0; rcd.sign[1] = rcd.inv_dir[1] < 0; rcd.sign[2] = rcd.inv_dir[2] < 0; + rcd.original = original; BLI_pbvh_search_callback(bvh, ray_aabb_intersect, &rcd, cb, data); } diff --git a/source/blender/editors/sculpt_paint/paint_undo.c b/source/blender/editors/sculpt_paint/paint_undo.c index 9bc6cacbb16..05f2b565e82 100644 --- a/source/blender/editors/sculpt_paint/paint_undo.c +++ b/source/blender/editors/sculpt_paint/paint_undo.c @@ -191,10 +191,14 @@ void undo_paint_push_begin(int type, char *name, UndoRestoreCb restore, UndoFree ListBase *undo_paint_push_get_list(int type) { - if(type == UNDO_PAINT_IMAGE) - return &ImageUndoStack.current->elems; - else if(type == UNDO_PAINT_MESH) - return &MeshUndoStack.current->elems; + if(type == UNDO_PAINT_IMAGE) { + if(ImageUndoStack.current) + return &ImageUndoStack.current->elems; + } + else if(type == UNDO_PAINT_MESH) { + if(MeshUndoStack.current) + return &MeshUndoStack.current->elems; + } return NULL; } diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index fd614555fcb..d307b08385b 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -108,15 +108,6 @@ * */ -/* ActiveData stores an Index into the mvert array of Mesh, plus Fade, which - stores how far the vertex is from the brush center, scaled to the range [0,1]. */ -typedef struct ActiveData { - struct ActiveData *next, *prev; - unsigned int Index; - float Fade; - float dist; -} ActiveData; - typedef enum StrokeFlags { CLIP_X = 1, CLIP_Y = 2, @@ -155,7 +146,6 @@ typedef struct StrokeCache { ViewContext *vc; Brush *brush; - short (*orig_norms)[3]; /* Copy of the mesh vertices' normals */ float (*face_norms)[3]; /* Copy of the mesh faces' normals */ float rotation; /* Texture rotation (radians) for anchored and rake modes */ int pixel_radius, previous_pixel_radius; @@ -167,6 +157,7 @@ typedef struct StrokeCache { int symmetry; /* Symmetry index between 0 and 7 */ float view_normal[3], view_normal_symmetry[3]; int last_rake[2]; /* Last location of updating rake rotation */ + int original; } StrokeCache; /* ===== OPENGL ===== @@ -206,7 +197,7 @@ int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d, view3d_get_object_project_mat(rv3d, ob, pmat); - BLI_pbvh_redraw_bounding_box(ob->sculpt->tree, bb_min, bb_max); + BLI_pbvh_redraw_BB(ob->sculpt->tree, bb_min, bb_max); rect->xmin = rect->ymin = INT_MAX; rect->xmax = rect->ymax = INT_MIN; @@ -280,6 +271,7 @@ typedef struct SculptUndoNode { void *node; /* only during push, not valid afterwards! */ float (*co)[3]; + short (*no)[3]; int *index; int totvert; } SculptUndoNode; @@ -329,7 +321,7 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb) needs to work correct when exiting/entering sculpt mode and the nodes get recreated, though in that case it could do all */ BLI_pbvh_search_callback(ss->tree, NULL, NULL, update_cb, NULL); - BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL); + BLI_pbvh_update(ss->tree, PBVH_UpdateBB|PBVH_UpdateOriginalBB|PBVH_UpdateRedraw, NULL); /* not really convinced this is correct .. */ if((mmd=sculpt_multires_active(ob))) { @@ -350,28 +342,43 @@ static void sculpt_undo_free(ListBase *lb) for(unode=lb->first; unode; unode=unode->next) { if(unode->co) MEM_freeN(unode->co); + if(unode->no) + MEM_freeN(unode->no); if(unode->index) MEM_freeN(unode->index); } } -static float (*sculpt_undo_push_node(SculptSession *ss, PBVHNode *node))[3] +static SculptUndoNode *sculpt_undo_get_node(SculptSession *ss, PBVHNode *node) +{ + ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); + SculptUndoNode *unode; + + if(!lb) + return NULL; + + for(unode=lb->first; unode; unode=unode->next) + if(unode->node == node) + return unode; + + return NULL; +} + +static SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node) { ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); Object *ob= ss->ob; SculptUndoNode *unode; - int i, totvert, *verts; + int i, totvert, allvert, *verts; - BLI_pbvh_node_get_verts(node, &verts, &totvert); + BLI_pbvh_node_get_verts(node, &verts, &totvert, &allvert); /* list is manipulated by multiple threads, so we lock */ BLI_lock_thread(LOCK_CUSTOM1); - for(unode=lb->first; unode; unode=unode->next) { - if(unode->node == node && strcmp(unode->idname, ob->id.name)==0) { - BLI_unlock_thread(LOCK_CUSTOM1); - return unode->co; - } + if((unode= sculpt_undo_get_node(ss, node))) { + BLI_unlock_thread(LOCK_CUSTOM1); + return unode; } unode= MEM_callocN(sizeof(SculptUndoNode), "SculptUndoNode"); @@ -381,19 +388,44 @@ static float (*sculpt_undo_push_node(SculptSession *ss, PBVHNode *node))[3] unode->totvert= totvert; unode->maxvert= ss->totvert; /* we will use this while sculpting, is mapalloc slow to access then? */ - unode->co= MEM_mapallocN(sizeof(float)*3*totvert, "SculptUndoNode.co"); - unode->index= MEM_mapallocN(sizeof(int)*totvert, "SculptUndoNode.index"); - undo_paint_push_count_alloc(UNDO_PAINT_MESH, (sizeof(float)*3 + sizeof(int))*totvert); + unode->co= MEM_mapallocN(sizeof(float)*3*allvert, "SculptUndoNode.co"); + unode->no= MEM_mapallocN(sizeof(short)*3*allvert, "SculptUndoNode.no"); + unode->index= MEM_mapallocN(sizeof(int)*allvert, "SculptUndoNode.index"); + undo_paint_push_count_alloc(UNDO_PAINT_MESH, (sizeof(float)*3 + sizeof(short)*3 + sizeof(int))*allvert); BLI_addtail(lb, unode); BLI_unlock_thread(LOCK_CUSTOM1); /* copy threaded, hopefully this is the performance critical part */ - memcpy(unode->index, verts, sizeof(int)*totvert); - for(i=0; iindex, verts, sizeof(int)*allvert); + for(i=0; ico[i], ss->mvert[verts[i]].co) + VECCOPY(unode->no[i], ss->mvert[verts[i]].no) + } - return unode->co; + return unode; +} + +static void sculpt_undo_push_begin(SculptSession *ss, char *name) +{ + undo_paint_push_begin(UNDO_PAINT_MESH, name, + sculpt_undo_restore, sculpt_undo_free); +} + +static void sculpt_undo_push_end(SculptSession *ss) +{ + ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); + SculptUndoNode *unode; + + /* we don't need normals in the undo stack */ + for(unode=lb->first; unode; unode=unode->next) { + if(unode->no) { + MEM_freeN(unode->no); + unode->no= NULL; + } + } + + undo_paint_push_end(UNDO_PAINT_MESH); } /************************ Looping Over Verts in a BVH Node *******************/ @@ -422,7 +454,7 @@ static void sculpt_node_verts_init(Sculpt *sd, SculptSession *ss, vd->mvert= ss->mvert; vd->origvert= origvert; vd->i= -1; - BLI_pbvh_node_get_verts(node, &vd->verts, &vd->totvert); + BLI_pbvh_node_get_verts(node, &vd->verts, &vd->totvert, NULL); } static int sculpt_node_verts_next(SculptVertexData *vd) @@ -628,14 +660,16 @@ typedef struct { } SculptSearchSphereData; /* Test AABB against sphere */ -static int sculpt_search_sphere_cb(PBVHNode *node, - float bb_min[3], float bb_max[3], void *data_v) +static int sculpt_search_sphere_cb(PBVHNode *node, void *data_v) { SculptSearchSphereData *data = data_v; float *center = data->ss->cache->location, nearest[3]; - float t[3]; + float t[3], bb_min[3], bb_max[3]; int i; + //BLI_pbvh_node_get_original_BB(node, bb_min, bb_max); + BLI_pbvh_node_get_BB(node, bb_min, bb_max); + for(i = 0; i < 3; ++i) { if(bb_min[i] > center[i]) nearest[i] = bb_min[i]; @@ -682,7 +716,6 @@ static void add_norm_if(float view_vec[3], float out[3], float out_flip[3], cons /* For draw/layer/flatten; finds average normal for all active vertices */ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3], PBVHNode **nodes, int totnode) { - Brush *brush = paint_brush(&sd->paint); StrokeCache *cache = ss->cache; const int view = 0; /* XXX: should probably be a flag, not number: brush_type==SCULPT_TOOL_DRAW ? sculptmode_brush()->view : 0; */ float out[3] = {0.0f, 0.0f, 0.0f}; @@ -696,24 +729,30 @@ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3] #pragma omp parallel for private(n) schedule(static) for(n=0; nflag & BRUSH_ANCHORED) { + if(unode && ss->cache->original) { while(sculpt_node_verts_next(&vd)) - add_norm_if(out_dir, nout, nout_flip, cache->orig_norms[vd.index]); + add_norm_if(out_dir, nout, nout_flip, unode->no[vd.i]); } else { while(sculpt_node_verts_next(&vd)) add_norm_if(out_dir, nout, nout_flip, ss->mvert[vd.index].no); } - /* we sum per node and add together later for threads */ - #pragma omp critical - VecAddf(out, out, nout); - VecAddf(out_flip, out_flip, nout_flip); + { + /* we sum per node and add together later for threads */ + #pragma omp critical + VecAddf(out, out, nout); + VecAddf(out_flip, out_flip, nout_flip); + } } if (out[0]==0.0 && out[1]==0.0 && out[2]==0.0) { @@ -875,7 +914,7 @@ static void do_grab_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int t { Brush *brush = paint_brush(&sd->paint); float bstrength= ss->cache->bstrength; - float grab_delta[3], (*origco)[3]; + float grab_delta[3]; int n; VecCopyf(grab_delta, ss->cache->grab_delta_symmetry); @@ -883,8 +922,11 @@ static void do_grab_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int t #pragma omp parallel for private(n) schedule(static) for(n=0; nco; sculpt_node_verts_init(sd, ss, nodes[n], origco, &vd); while(sculpt_node_verts_next(&vd)) { @@ -921,9 +963,11 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int #pragma omp parallel for private(n) schedule(static) for(n=0; nco; sculpt_node_verts_init(sd, ss, nodes[n], NULL, &vd); while(sculpt_node_verts_next(&vd)) { @@ -1422,8 +1466,6 @@ static float unproject_brush_radius(ViewContext *vc, float center[3], float offs static void sculpt_cache_free(StrokeCache *cache) { int i; - if(cache->orig_norms) - MEM_freeN(cache->orig_norms); if(cache->face_norms) MEM_freeN(cache->face_norms); if(cache->mats) @@ -1479,21 +1521,20 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte /* Make copies of the mesh vertex locations and normals for some tools */ if(brush->flag & BRUSH_ANCHORED) { - cache->orig_norms= MEM_mallocN(sizeof(short) * 3 * ss->totvert, "Sculpt orig norm"); - for(i = 0; i < ss->totvert; ++i) { - cache->orig_norms[i][0] = ss->mvert[i].no[0]; - cache->orig_norms[i][1] = ss->mvert[i].no[1]; - cache->orig_norms[i][2] = ss->mvert[i].no[2]; - } - if(ss->face_normals) { float *fn = ss->face_normals; cache->face_norms= MEM_mallocN(sizeof(float) * 3 * ss->totface, "Sculpt face norms"); for(i = 0; i < ss->totface; ++i, fn += 3) VecCopyf(cache->face_norms[i], fn); } + + cache->original = 1; } + if(ELEM3(brush->sculpt_tool, SCULPT_TOOL_DRAW, SCULPT_TOOL_LAYER, SCULPT_TOOL_INFLATE)) + if(!(brush->flag & BRUSH_ACCUMULATE)) + cache->original = 1; + cache->rotation = 0; cache->first_time = 1; } @@ -1601,15 +1642,47 @@ typedef struct { float *ray_start, *ray_normal; int hit; float dist; + int original; } SculptRaycastData; void sculpt_raycast_cb(PBVHNode *node, void *data_v) { SculptRaycastData *srd = data_v; MVert *vert = srd->ss->mvert; - int i, totface, *faces; + int i, totface, *faces, *face_verts; + + if(srd->original && srd->ss->cache) { + SculptUndoNode *unode; - BLI_pbvh_node_get_faces(node, &faces, &totface); + unode= sculpt_undo_get_node(srd->ss, node); + + if(unode) { + /* intersect with coordinates from before we started stroke */ + BLI_pbvh_node_get_faces(node, &faces, &face_verts, &totface); + + for(i = 0; i < totface; ++i) { + MFace *f = srd->ss->mface + faces[i]; + /*if(face_verts[i*4 + 0] >= unode->totvert) abort(); + if(face_verts[i*4 + 1] >= unode->totvert) abort(); + if(face_verts[i*4 + 2] >= unode->totvert) abort(); + if(f->v4 && face_verts[i*4 + 3] >= unode->totvert) abort();*/ + + if(ray_face_intersection(srd->ray_start, srd->ray_normal, + unode->co[face_verts[i*4+0]], + unode->co[face_verts[i*4+1]], + unode->co[face_verts[i*4+2]], + f->v4? unode->co[face_verts[i*4+3]]: NULL, + &srd->dist)) { + srd->hit = faces[i]; + } + } + + return; + } + } + + /* intersect with current coordinates */ + BLI_pbvh_node_get_faces(node, &faces, NULL, &totface); for(i = 0; i < totface; ++i) { MFace *f = srd->ss->mface + faces[i]; @@ -1631,6 +1704,8 @@ void sculpt_raycast_cb(PBVHNode *node, void *data_v) int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float out[3], float mouse[2]) { ViewContext *vc = paint_stroke_view_context(stroke); + SculptSession *ss= vc->obact->sculpt; + StrokeCache *cache= ss->cache; float ray_start[3], ray_normal[3]; float mval[2] = {mouse[0] - vc->ar->winrct.xmin, mouse[1] - vc->ar->winrct.ymin}; @@ -1643,8 +1718,9 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou srd.ray_normal = ray_normal; srd.dist = FLT_MAX; srd.hit = -1; - BLI_pbvh_raycast(vc->obact->sculpt->tree, sculpt_raycast_cb, &srd, - ray_start, ray_normal); + srd.original = (cache)? cache->original: 0; + BLI_pbvh_raycast(ss->tree, sculpt_raycast_cb, &srd, + ray_start, ray_normal, srd.original); VecCopyf(out, ray_normal); VecMulf(out, srd.dist); @@ -1713,7 +1789,7 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) int i; /* Restore the mesh before continuing with anchored stroke */ - if((brush->flag & BRUSH_ANCHORED) && cache->orig_norms) { + if(brush->flag & BRUSH_ANCHORED) { ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); SculptUndoNode *unode; @@ -1721,17 +1797,14 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) for(unode = lb->first; unode; unode = unode->next) { float (*co)[3]= unode->co; + short (*no)[3]= unode->no; int *index= unode->index; int totvert= unode->totvert; - for(i = 0; i < totvert; ++i) + for(i = 0; i < totvert; ++i) { VECCOPY(ss->mvert[index[i]].co, co[i]); - } - - for(i = 0; i < ss->totvert; ++i) { - ss->mvert[i].no[0] = cache->orig_norms[i][0]; - ss->mvert[i].no[1] = cache->orig_norms[i][1]; - ss->mvert[i].no[2] = cache->orig_norms[i][2]; + VECCOPY(ss->mvert[index[i]].no, no[i]); + } } if(ss->face_normals) { @@ -1796,8 +1869,7 @@ static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op, wmEvent sculpt_update_cache_invariants(sd, ss, C, op); - undo_paint_push_begin(UNDO_PAINT_MESH, sculpt_tool_name(sd), - sculpt_undo_restore, sculpt_undo_free); + sculpt_undo_push_begin(ss, sculpt_tool_name(sd)); return 1; } @@ -1824,13 +1896,12 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke) /* Finished */ if(ss->cache) { - // Sculpt *sd = CTX_data_tool_settings(C)->sculpt; - sculpt_cache_free(ss->cache); ss->cache = NULL; - undo_paint_push_end(UNDO_PAINT_MESH); - // XXX ED_undo_push(C, sculpt_tool_name(sd)); + sculpt_undo_push_end(ss); + + BLI_pbvh_update(ss->tree, PBVH_UpdateOriginalBB, NULL); } } @@ -1868,8 +1939,6 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op) sculpt_flush_update(C); sculpt_cache_free(ss->cache); - // XXX ED_undo_push(C, sculpt_tool_name(sd)); - return OPERATOR_FINISHED; } diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h index 1bbccd20486..c8fc14ca0f0 100644 --- a/source/blender/makesdna/DNA_brush_types.h +++ b/source/blender/makesdna/DNA_brush_types.h @@ -79,12 +79,13 @@ typedef struct Brush { #define BRUSH_JITTER_PRESSURE 16 /* was BRUSH_RAD_PRESSURE */ #define BRUSH_SPACING_PRESSURE 32 #define BRUSH_FIXED_TEX 64 -#define BRUSH_RAKE 128 -#define BRUSH_ANCHORED 256 -#define BRUSH_DIR_IN 512 -#define BRUSH_SPACE 1024 -#define BRUSH_SMOOTH_STROKE 2048 -#define BRUSH_PERSISTENT 4096 +#define BRUSH_RAKE 128 +#define BRUSH_ANCHORED 256 +#define BRUSH_DIR_IN 512 +#define BRUSH_SPACE 1024 +#define BRUSH_SMOOTH_STROKE 2048 +#define BRUSH_PERSISTENT 4096 +#define BRUSH_ACCUMULATE 8192 /* Brush.sculpt_tool */ #define SCULPT_TOOL_DRAW 1 diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c index e9744c7f5ed..714526eb280 100644 --- a/source/blender/makesrna/intern/rna_brush.c +++ b/source/blender/makesrna/intern/rna_brush.c @@ -273,6 +273,11 @@ static void rna_def_brush(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flag", BRUSH_PERSISTENT); RNA_def_property_ui_text(prop, "Persistent", "Sculpts on a persistent layer of the mesh."); RNA_def_property_update(prop, 0, "rna_Brush_update"); + + prop= RNA_def_property(srna, "use_accumulate", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", BRUSH_ACCUMULATE); + RNA_def_property_ui_text(prop, "Accumulate", "Accumulate stroke dabs on top of each other."); + RNA_def_property_update(prop, 0, "rna_Brush_update"); /* not exposed in the interface yet prop= RNA_def_property(srna, "fixed_tex", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From 7fe52eedba00a3008d56ad0d689ed27fcf658220 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Tue, 10 Nov 2009 03:45:52 +0000 Subject: Removed an unused function and changed the VBO functions to use the ARB name for consistency with the rest of the file. --- source/blender/gpu/intern/gpu_buffers.c | 57 +++++++++------------------------ 1 file changed, 16 insertions(+), 41 deletions(-) (limited to 'source/blender') diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 14f2c1b6d5b..c3d9e32036c 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -392,31 +392,6 @@ typedef struct { unsigned short tot_tri; } GPU_Buffers; -void GPU_update_buffers2(void *buffers_v, MVert *mvert, - int *vert_indices, int totvert) -{ - GPU_Buffers *buffers = buffers_v; - VertexBufferFormat *vert_data; - int i; - - vert_data = MEM_callocN(sizeof(VertexBufferFormat) * totvert, "bad"); - - for(i = 0; i < totvert; ++i) { - MVert *v = mvert + vert_indices[i]; - VertexBufferFormat *out = vert_data + i; - - VecCopyf(out->co, v->co); - memcpy(out->no, v->no, sizeof(short) * 3); - } - - glBindBuffer(GL_ARRAY_BUFFER, buffers->vert_buf); - glBufferData(GL_ARRAY_BUFFER, - sizeof(VertexBufferFormat) * totvert, - vert_data, GL_STATIC_DRAW); - - MEM_freeN(vert_data); -} - void GPU_update_buffers(void *buffers_v, MVert *mvert, int *vert_indices, int totvert) { @@ -425,11 +400,11 @@ void GPU_update_buffers(void *buffers_v, MVert *mvert, int i; /* Build VBO */ - glBindBuffer(GL_ARRAY_BUFFER, buffers->vert_buf); - glBufferData(GL_ARRAY_BUFFER, + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(VertexBufferFormat) * totvert, - NULL, GL_STATIC_DRAW); - vert_data = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); + NULL, GL_STATIC_DRAW_ARB); + vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); for(i = 0; i < totvert; ++i) { MVert *v = mvert + vert_indices[i]; @@ -438,7 +413,7 @@ void GPU_update_buffers(void *buffers_v, MVert *mvert, VecCopyf(out->co, v->co); memcpy(out->no, v->no, sizeof(short) * 3); } - glUnmapBuffer(GL_ARRAY_BUFFER); + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); //printf("node updated %p\n", buffers_v); } @@ -459,13 +434,13 @@ void *GPU_build_buffers(GHash *map, MVert *mvert, MFace *mface, tottri += mface[face_indices[i]].v4 ? 2 : 1; /* Generate index buffer object */ - glGenBuffers(1, &buffers->tri_buf); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffers->tri_buf); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, - sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW); + glGenBuffersARB(1, &buffers->tri_buf); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->tri_buf); + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW_ARB); /* Fill the triangle buffer */ - tri_data = glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_WRITE_ONLY); + tri_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); for(i = 0; i < totface; ++i) { MFace *f = mface + face_indices[i]; int v[3] = {f->v1, f->v2, f->v3}; @@ -491,10 +466,10 @@ void *GPU_build_buffers(GHash *map, MVert *mvert, MFace *mface, v[2] = f->v3; } } - glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); /* Build VBO */ - glGenBuffers(1, &buffers->vert_buf); + glGenBuffersARB(1, &buffers->vert_buf); GPU_update_buffers(buffers, mvert, vert_indices, totvert); buffers->tot_tri = tottri; @@ -506,8 +481,8 @@ void GPU_draw_buffers(void *buffers_v) { GPU_Buffers *buffers = buffers_v; - glBindBuffer(GL_ARRAY_BUFFER, buffers->vert_buf); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffers->tri_buf); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->tri_buf); glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat), 0); glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat), (void*)12); @@ -520,8 +495,8 @@ void GPU_free_buffers(void *buffers_v) if(buffers_v) { GPU_Buffers *buffers = buffers_v; - glDeleteBuffers(1, &buffers->vert_buf); - glDeleteBuffers(1, &buffers->tri_buf); + glDeleteBuffersARB(1, &buffers->vert_buf); + glDeleteBuffersARB(1, &buffers->tri_buf); MEM_freeN(buffers); } -- cgit v1.2.3 From a1c8d9215151f4dd5f6af27f6bbb5ca426f0ba41 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sat, 21 Nov 2009 17:22:03 +0000 Subject: Sculpt branch: Corrected the calculation of the center of the flatten effect. --- source/blender/editors/sculpt_paint/sculpt.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 4b63a388f76..763ef401217 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1056,6 +1056,7 @@ static void calc_flatten_center(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) { if(vd.dist > outer_dist[i]) { outer_index[i] = vd.index; + outer_dist[i] = vd.dist; break; } } -- cgit v1.2.3 From e65fee2f6595494ba592366c947b47dee3b718d9 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Sat, 21 Nov 2009 21:34:00 +0000 Subject: Sculpt branch: Fixed grab brush, was creating holes in the mesh due to uninitialized values. --- source/blender/editors/sculpt_paint/sculpt.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 763ef401217..1f230b5cd65 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -153,7 +153,7 @@ typedef struct StrokeCache { int grab_active_totnode[8]; float grab_active_location[8][3]; float grab_delta[3], grab_delta_symmetry[3]; - float old_grab_location[3]; + float old_grab_location[3], orig_grab_location[3]; int symmetry; /* Symmetry index between 0 and 7 */ float view_normal[3], view_normal_symmetry[3]; int last_rake[2]; /* Last location of updating rake rotation */ @@ -932,8 +932,8 @@ static void do_grab_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int t while(sculpt_node_verts_next(&vd)) { const float fade = tex_strength(ss, brush, origco[vd.i], vd.dist)*bstrength; const float add[3]= {vd.co[0]+fade*grab_delta[0], - vd.co[1]+fade*grab_delta[1], - vd.co[2]+fade*grab_delta[2]}; + vd.co[1]+fade*grab_delta[1], + vd.co[2]+fade*grab_delta[2]}; sculpt_clip(sd, ss, vd.co, add); ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; @@ -1545,7 +1545,6 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P { StrokeCache *cache = ss->cache; Brush *brush = paint_brush(&sd->paint); - float grab_location[3]; int dx, dy; @@ -1598,8 +1597,12 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P /* Find the grab delta */ if(brush->sculpt_tool == SCULPT_TOOL_GRAB) { - // XXX: view3d_unproject(cache->mats, grab_location, cache->mouse[0], cache->mouse[1], cache->depth); - initgrabz(cache->vc->rv3d, cache->true_location[0], cache->true_location[1], cache->true_location[2]); + float grab_location[3]; + + if(cache->first_time) + copy_v3_v3(cache->orig_grab_location, cache->true_location); + + initgrabz(cache->vc->rv3d, cache->orig_grab_location[0], cache->orig_grab_location[1], cache->orig_grab_location[2]); window_to_3d_delta(cache->vc->ar, grab_location, cache->mouse[0], cache->mouse[1]); if(!cache->first_time) -- cgit v1.2.3 From 9a31f37d19de8ab6f45ac0622bd620e80cff9abf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Nov 2009 12:04:11 +0000 Subject: Sculpt: math lib functions * swap v2/v3 * multiply-and-add (madd) v3 * inline v3 short/float conversion --- source/blender/blenlib/BLI_math_matrix.h | 1 + source/blender/blenlib/BLI_math_vector.h | 12 ++++- source/blender/blenlib/intern/math_matrix.c | 18 ++++--- source/blender/blenlib/intern/math_vector.c | 14 ----- source/blender/blenlib/intern/math_vector_inline.c | 59 +++++++++++++++++++++- 5 files changed, 79 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_matrix.h b/source/blender/blenlib/BLI_math_matrix.h index 53476e4d03c..5667fb79332 100644 --- a/source/blender/blenlib/BLI_math_matrix.h +++ b/source/blender/blenlib/BLI_math_matrix.h @@ -82,6 +82,7 @@ void mul_m4_v4(float M[4][4], float r[3]); void mul_project_m4_v4(float M[4][4], float r[3]); void mul_m3_v3(float M[3][3], float r[3]); +void mul_v3_m3v3(float r[3], float M[3][3], float a[3]); void mul_transposed_m3_v3(float M[3][3], float r[3]); void mul_m3_v3_double(float M[3][3], double r[3]); diff --git a/source/blender/blenlib/BLI_math_vector.h b/source/blender/blenlib/BLI_math_vector.h index 26602353425..d1d88b29630 100644 --- a/source/blender/blenlib/BLI_math_vector.h +++ b/source/blender/blenlib/BLI_math_vector.h @@ -54,6 +54,9 @@ MINLINE void zero_v3(float r[3]); MINLINE void copy_v2_v2(float r[2], float a[2]); MINLINE void copy_v3_v3(float r[3], float a[3]); +MINLINE void swap_v2_v2(float a[2], float b[2]); +MINLINE void swap_v3_v3(float a[3], float b[3]); + /********************************* Arithmetic ********************************/ MINLINE void add_v2_v2(float r[2], float a[2]); @@ -72,6 +75,11 @@ MINLINE void mul_v3_v3fl(float r[3], float a[3], float f); MINLINE void mul_v3_v3(float r[3], float a[3]); MINLINE void mul_v3_v3v3(float r[3], float a[3], float b[3]); +MINLINE void madd_v3_v3fl(float r[3], float a[3], float f); +MINLINE void madd_v3_v3v3(float r[3], float a[3], float b[3]); +MINLINE void madd_v3_v3v3fl(float r[3], float a[3], float b[3], float f); +MINLINE void madd_v3_v3v3v3(float r[3], float a[3], float b[3], float c[3]); + MINLINE void negate_v3(float r[3]); MINLINE void negate_v3_v3(float r[3], float a[3]); @@ -136,8 +144,8 @@ void print_v2(char *str, float a[2]); void print_v3(char *str, float a[3]); void print_v4(char *str, float a[4]); -void normal_short_to_float_v3(float r[3], short n[3]); -void normal_float_to_short_v3(short r[3], float n[3]); +MINLINE void normal_short_to_float_v3(float r[3], short n[3]); +MINLINE void normal_float_to_short_v3(short r[3], float n[3]); void minmax_v3_v3v3(float r[3], float min[3], float max[3]); diff --git a/source/blender/blenlib/intern/math_matrix.c b/source/blender/blenlib/intern/math_matrix.c index edab1cc2440..47b99bce8ab 100644 --- a/source/blender/blenlib/intern/math_matrix.c +++ b/source/blender/blenlib/intern/math_matrix.c @@ -338,15 +338,19 @@ void mul_m4_v4(float mat[][4], float *vec) vec[3]=x*mat[0][3] + y*mat[1][3] + z*mat[2][3] + mat[3][3]*vec[3]; } -void mul_m3_v3(float mat[][3], float *vec) +void mul_v3_m3v3(float r[3], float M[3][3], float a[3]) { - float x,y; + r[0]= M[0][0]*a[0] + M[1][0]*a[1] + M[2][0]*a[2]; + r[1]= M[0][1]*a[0] + M[1][1]*a[1] + M[2][1]*a[2]; + r[2]= M[0][2]*a[0] + M[1][2]*a[1] + M[2][2]*a[2]; +} - x=vec[0]; - y=vec[1]; - vec[0]= x*mat[0][0] + y*mat[1][0] + mat[2][0]*vec[2]; - vec[1]= x*mat[0][1] + y*mat[1][1] + mat[2][1]*vec[2]; - vec[2]= x*mat[0][2] + y*mat[1][2] + mat[2][2]*vec[2]; +void mul_m3_v3(float M[3][3], float r[3]) +{ + float tmp[3]; + + mul_v3_m3v3(tmp, M, r); + copy_v3_v3(r, tmp); } void mul_transposed_m3_v3(float mat[][3], float *vec) diff --git a/source/blender/blenlib/intern/math_vector.c b/source/blender/blenlib/intern/math_vector.c index 8d36c3ac524..366380b5276 100644 --- a/source/blender/blenlib/intern/math_vector.c +++ b/source/blender/blenlib/intern/math_vector.c @@ -283,20 +283,6 @@ void print_v4(char *str, float v[4]) printf("%s: %.3f %.3f %.3f %.3f\n", str, v[0], v[1], v[2], v[3]); } -void normal_short_to_float_v3(float *out, short *in) -{ - out[0] = in[0]*(1.0f/32767.0f); - out[1] = in[1]*(1.0f/32767.0f); - out[2] = in[2]*(1.0f/32767.0f); -} - -void normal_float_to_short_v3(short *out, float *in) -{ - out[0] = (short)(in[0]*32767.0f); - out[1] = (short)(in[1]*32767.0f); - out[2] = (short)(in[2]*32767.0f); -} - void minmax_v3_v3v3(float *min, float *max, float *vec) { if(min[0]>vec[0]) min[0]= vec[0]; diff --git a/source/blender/blenlib/intern/math_vector_inline.c b/source/blender/blenlib/intern/math_vector_inline.c index 6830f44ae1b..cb629312712 100644 --- a/source/blender/blenlib/intern/math_vector_inline.c +++ b/source/blender/blenlib/intern/math_vector_inline.c @@ -58,6 +58,19 @@ MINLINE void copy_v3_v3(float r[3], float a[3]) r[2]= a[2]; } +MINLINE void swap_v2_v2(float a[2], float b[2]) +{ + SWAP(float, a[0], b[0]); + SWAP(float, a[1], b[1]); +} + +MINLINE void swap_v3_v3(float a[3], float b[3]) +{ + SWAP(float, a[0], b[0]); + SWAP(float, a[1], b[1]); + SWAP(float, a[2], b[2]); +} + /********************************* Arithmetic ********************************/ MINLINE void add_v2_v2(float *r, float *a) @@ -76,7 +89,7 @@ MINLINE void add_v3_v3(float *r, float *a) { r[0] += a[0]; r[1] += a[1]; - r[1] += a[1]; + r[2] += a[2]; } MINLINE void add_v3_v3v3(float *r, float *a, float *b) @@ -102,7 +115,7 @@ MINLINE void sub_v3_v3(float *r, float *a) { r[0] -= a[0]; r[1] -= a[1]; - r[1] -= a[1]; + r[2] -= a[2]; } MINLINE void sub_v3_v3v3(float *r, float *a, float *b) @@ -139,6 +152,34 @@ MINLINE void mul_v3_v3(float r[3], float a[3]) r[2] *= a[2]; } +MINLINE void madd_v3_v3fl(float r[3], float a[3], float f) +{ + r[0] += a[0]*f; + r[1] += a[1]*f; + r[2] += a[2]*f; +} + +MINLINE void madd_v3_v3v3(float r[3], float a[3], float b[3]) +{ + r[0] += a[0]*b[0]; + r[1] += a[1]*b[1]; + r[2] += a[2]*b[2]; +} + +MINLINE void madd_v3_v3v3fl(float r[3], float a[3], float b[3], float f) +{ + r[0] = a[0] + b[0]*f; + r[1] = a[1] + b[1]*f; + r[2] = a[2] + b[2]*f; +} + +MINLINE void madd_v3_v3v3v3(float r[3], float a[3], float b[3], float c[3]) +{ + r[0] = a[0] + b[0]*c[0]; + r[1] = a[1] + b[1]*c[1]; + r[2] = a[2] + b[2]*c[2]; +} + MINLINE void mul_v3_v3v3(float *v, float *v1, float *v2) { v[0] = v1[0] * v2[0]; @@ -254,5 +295,19 @@ MINLINE float normalize_v3(float n[3]) return d; } +MINLINE void normal_short_to_float_v3(float *out, short *in) +{ + out[0] = in[0]*(1.0f/32767.0f); + out[1] = in[1]*(1.0f/32767.0f); + out[2] = in[2]*(1.0f/32767.0f); +} + +MINLINE void normal_float_to_short_v3(short *out, float *in) +{ + out[0] = (short)(in[0]*32767.0f); + out[1] = (short)(in[1]*32767.0f); + out[2] = (short)(in[2]*32767.0f); +} + #endif /* BLI_MATH_VECTOR_INLINE */ -- cgit v1.2.3 From 90cc7c8abd7b4c36002031edba8b75207fb98086 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Nov 2009 12:27:21 +0000 Subject: Sculpt: CCGSubsurf new functions to update normals, update subdivision levels, copy coordinates from face grids, and stitch together face grids. --- source/blender/blenkernel/intern/CCGSubSurf.c | 1470 +++++++++++++++---------- source/blender/blenkernel/intern/CCGSubSurf.h | 5 + 2 files changed, 903 insertions(+), 572 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c index cee032f364e..86595dea8fb 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.c +++ b/source/blender/blenkernel/intern/CCGSubSurf.c @@ -1130,6 +1130,643 @@ CCGError ccgSubSurf_processSync(CCGSubSurf *ss) { return eCCGError_None; } +#define FACE_getIFNo(f, lvl, S, x, y) _face_getIFNo(f, lvl, S, x, y, subdivLevels, vertDataSize, normalDataOffset) +#define FACE_calcIFNo(f, lvl, S, x, y, no) _face_calcIFNo(f, lvl, S, x, y, no, subdivLevels, vertDataSize) +static void ccgSubSurf__calcVertNormals(CCGSubSurf *ss, + CCGVert **effectedV, CCGEdge **effectedE, CCGFace **effectedF, + int numEffectedV, int numEffectedE, int numEffectedF) { + int i,ptrIdx; + int subdivLevels = ss->subdivLevels; + int lvl = ss->subdivLevels; + int edgeSize = 1 + (1<normalDataOffset; + int vertDataSize = ss->meshIFC.vertDataSize; + + for (ptrIdx=0; ptrIdxnumVerts; S++) { + for (y=0; ynumVerts)%f->numVerts]->flags&Edge_eEffected) + for (x=0; xflags&Edge_eEffected) + for (y=0; yflags&Vert_eEffected) + NormZero(FACE_getIFNo(f, lvl, S, gridSize-1, gridSize-1)); + } + } + + for (ptrIdx=0; ptrIdxnumVerts; S++) { + int yLimit = !(FACE_getEdges(f)[(S-1+f->numVerts)%f->numVerts]->flags&Edge_eEffected); + int xLimit = !(FACE_getEdges(f)[S]->flags&Edge_eEffected); + int yLimitNext = xLimit; + int xLimitPrev = yLimit; + + for (y=0; yflags&Vert_eEffected) { + NormAdd(FACE_getIFNo(f, lvl, S, x+1, y+1), no); + } + } + + if (x==0 && y==0) { + int K; + + if (!yLimitNext || 1numVerts, 0, 1), no); + if (!xLimitPrev || 1numVerts)%f->numVerts, 1, 0), no); + + for (K=0; KnumVerts; K++) { + if (K!=S) { + NormAdd(FACE_getIFNo(f, lvl, K, 0, 0), no); + } + } + } else if (y==0) { + NormAdd(FACE_getIFNo(f, lvl, (S+1)%f->numVerts, 0, x), no); + if (!yLimitNext || xnumVerts, 0, x+1), no); + } else if (x==0) { + NormAdd(FACE_getIFNo(f, lvl, (S-1+f->numVerts)%f->numVerts, y, 0), no); + if (!xLimitPrev || ynumVerts)%f->numVerts, y+1, 0), no); + } + } + } + } + } + // XXX can I reduce the number of normalisations here? + for (ptrIdx=0; ptrIdxnumFaces; i++) { + CCGFace *f = v->faces[i]; + NormAdd(no, FACE_getIFNo(f, lvl, _face_getVertIndex(f,v), gridSize-1, gridSize-1)); + } + + length = sqrt(no[0]*no[0] + no[1]*no[1] + no[2]*no[2]); + + if (length>FLT_EPSILON) { + float invLength = 1.0f/length; + no[0] *= invLength; + no[1] *= invLength; + no[2] *= invLength; + } else { + NormZero(no); + } + + for (i=0; inumFaces; i++) { + CCGFace *f = v->faces[i]; + NormCopy(FACE_getIFNo(f, lvl, _face_getVertIndex(f,v), gridSize-1, gridSize-1), no); + } + } + for (ptrIdx=0; ptrIdxnumFaces) { + CCGFace *fLast = e->faces[e->numFaces-1]; + int x; + + for (i=0; inumFaces-1; i++) { + CCGFace *f = e->faces[i]; + + for (x=1; xnumFaces-1; i++) { + CCGFace *f = e->faces[i]; + + for (x=1; xnumVerts; S++) { + NormCopy(FACE_getIFNo(f, lvl, (S+1)%f->numVerts, 0, gridSize-1), + FACE_getIFNo(f, lvl, S, gridSize-1, 0)); + } + } + for (ptrIdx=0; ptrIdxnumVerts; S++) { + for (y=0; yFLT_EPSILON) { + float invLength = 1.0f/length; + no[0] *= invLength; + no[1] *= invLength; + no[2] *= invLength; + } else { + NormZero(no); + } + } + } + } + } +} +#undef FACE_getIFNo + +#define VERT_getCo(v, lvl) _vert_getCo(v, lvl, vertDataSize) +#define EDGE_getCo(e, lvl, x) _edge_getCo(e, lvl, x, vertDataSize) +#define FACE_getIECo(f, lvl, S, x) _face_getIECo(f, lvl, S, x, subdivLevels, vertDataSize) +#define FACE_getIFCo(f, lvl, S, x, y) _face_getIFCo(f, lvl, S, x, y, subdivLevels, vertDataSize) +static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, + CCGVert **effectedV, CCGEdge **effectedE, CCGFace **effectedF, + int numEffectedV, int numEffectedE, int numEffectedF, int curLvl) { + int subdivLevels = ss->subdivLevels; + int edgeSize = 1 + (1<q, *r = ss->r; + int vertDataSize = ss->meshIFC.vertDataSize; + + for (ptrIdx=0; ptrIdxnumVerts; S++) { + for (y=0; ynumVerts; S++) { + for (x=0; xnumVerts, 1, fx); + void *co3 = FACE_getIFCo(f, nextLvl, S, fx, 1); + void *co = FACE_getIECo(f, nextLvl, S, fx); + + VertDataAvg4(co, co0, co1, co2, co3); + } + + /* interior face interior edge midpoints + * o old interior face points + * o new interior face midpoints + */ + + /* vertical */ + for (x=1; x1.0) { + for (x=0; xnumFaces; i++) { + CCGFace *f = e->faces[i]; + VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx, 1, subdivLevels, vertDataSize)); + numFaces++; + } + + VertDataMulN(q, 1.0f/(2.0f+numFaces)); + + VertDataCopy(r, co0); + VertDataAdd(r, co1); + VertDataMulN(r, 0.5); + + VertDataCopy(co, q); + VertDataSub(r, q); + VertDataMulN(r, sharpness); + VertDataAdd(co, r); + } + } + } + + /* exterior vertex shift + * o old vertex points (shifting) + * o old exterior edge points + * o new interior face midpoints + */ + for (ptrIdx=0; ptrIdxnumEdges; i++) { + CCGEdge *e = v->edges[i]; + float sharpness = EDGE_getSharpness(e, curLvl); + + if (seam && _edge_isBoundary(e)) + seamEdges++; + + if (sharpness!=0.0f) { + sharpCount++; + avgSharpness += sharpness; + } else { + allSharp = 0; + } + } + + if(sharpCount) { + avgSharpness /= sharpCount; + if (avgSharpness>1.0) { + avgSharpness = 1.0; + } + } + + if (seam && seamEdges < 2) + seam = 0; + + if (!v->numEdges) { + VertDataCopy(nCo, co); + } else if (_vert_isBoundary(v)) { + int numBoundary = 0; + + VertDataZero(r); + for (i=0; inumEdges; i++) { + CCGEdge *e = v->edges[i]; + if (_edge_isBoundary(e)) { + VertDataAdd(r, _edge_getCoVert(e, v, curLvl, 1, vertDataSize)); + numBoundary++; + } + } + + VertDataCopy(nCo, co); + VertDataMulN(nCo, 0.75); + VertDataMulN(r, 0.25f/numBoundary); + VertDataAdd(nCo, r); + } else { + int cornerIdx = (1 + (1<<(curLvl))) - 2; + int numEdges = 0, numFaces = 0; + + VertDataZero(q); + for (i=0; inumFaces; i++) { + CCGFace *f = v->faces[i]; + VertDataAdd(q, FACE_getIFCo(f, nextLvl, _face_getVertIndex(f,v), cornerIdx, cornerIdx)); + numFaces++; + } + VertDataMulN(q, 1.0f/numFaces); + VertDataZero(r); + for (i=0; inumEdges; i++) { + CCGEdge *e = v->edges[i]; + VertDataAdd(r, _edge_getCoVert(e, v, curLvl, 1,vertDataSize)); + numEdges++; + } + VertDataMulN(r, 1.0f/numEdges); + + VertDataCopy(nCo, co); + VertDataMulN(nCo, numEdges-2.0f); + VertDataAdd(nCo, q); + VertDataAdd(nCo, r); + VertDataMulN(nCo, 1.0f/numEdges); + } + + if ((sharpCount>1 && v->numFaces) || seam) { + VertDataZero(q); + + if (seam) { + avgSharpness = 1.0f; + sharpCount = seamEdges; + allSharp = 1; + } + + for (i=0; inumEdges; i++) { + CCGEdge *e = v->edges[i]; + float sharpness = EDGE_getSharpness(e, curLvl); + + if (seam) { + if (_edge_isBoundary(e)) + VertDataAdd(q, _edge_getCoVert(e, v, curLvl, 1, vertDataSize)); + } else if (sharpness != 0.0) { + VertDataAdd(q, _edge_getCoVert(e, v, curLvl, 1, vertDataSize)); + } + } + + VertDataMulN(q, (float) 1/sharpCount); + + if (sharpCount!=2 || allSharp) { + // q = q + (co-q)*avgSharpness + VertDataCopy(r, co); + VertDataSub(r, q); + VertDataMulN(r, avgSharpness); + VertDataAdd(q, r); + } + + // r = co*.75 + q*.25 + VertDataCopy(r, co); + VertDataMulN(r, .75); + VertDataMulN(q, .25); + VertDataAdd(r, q); + + // nCo = nCo + (r-nCo)*avgSharpness + VertDataSub(r, nCo); + VertDataMulN(r, avgSharpness); + VertDataAdd(nCo, r); + } + } + + /* exterior edge interior shift + * o old exterior edge midpoints (shifting) + * o old exterior edge midpoints + * o new interior face midpoints + */ + for (ptrIdx=0; ptrIdx1.0) { + avgSharpness = 1.0; + } + } else { + sharpCount = 0; + avgSharpness = 0; + } + + if (_edge_isBoundary(e) && (!e->numFaces || sharpCount<2)) { + for (x=1; xnumFaces; i++) { + CCGFace *f = e->faces[i]; + VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx-1, 1, subdivLevels, vertDataSize)); + VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx+1, 1, subdivLevels, vertDataSize)); + + VertDataAdd(r, _face_getIFCoEdge(f, e, curLvl, x, 1, subdivLevels, vertDataSize)); + numFaces++; + } + VertDataMulN(q, 1.0/(numFaces*2.0f)); + VertDataMulN(r, 1.0/(2.0f + numFaces)); + + VertDataCopy(nCo, co); + VertDataMulN(nCo, (float) numFaces); + VertDataAdd(nCo, q); + VertDataAdd(nCo, r); + VertDataMulN(nCo, 1.0f/(2+numFaces)); + + if (sharpCount==2) { + VertDataCopy(q, co); + VertDataMulN(q, 6.0f); + VertDataAdd(q, EDGE_getCo(e, curLvl, x-1)); + VertDataAdd(q, EDGE_getCo(e, curLvl, x+1)); + VertDataMulN(q, 1/8.0f); + + VertDataSub(q, nCo); + VertDataMulN(q, avgSharpness); + VertDataAdd(nCo, q); + } + } + } + } + + for (ptrIdx=0; ptrIdxnumVerts; S++) { + VertDataAdd(q, FACE_getIFCo(f, nextLvl, S, 1, 1)); + } + VertDataMulN(q, 1.0f/f->numVerts); + VertDataZero(r); + for (S=0; SnumVerts; S++) { + VertDataAdd(r, FACE_getIECo(f, curLvl, S, 1)); + } + VertDataMulN(r, 1.0f/f->numVerts); + + VertDataMulN(FACE_getCenterData(f), f->numVerts-2.0f); + VertDataAdd(FACE_getCenterData(f), q); + VertDataAdd(FACE_getCenterData(f), r); + VertDataMulN(FACE_getCenterData(f), 1.0f/f->numVerts); + + for (S=0; SnumVerts; S++) { + /* interior face shift + * o old interior face point (shifting) + * o new interior edge midpoints + * o new interior face midpoints + */ + for (x=1; xnumVerts, 1, fx-1), + FACE_getIFCo(f, nextLvl, (S+1)%f->numVerts, 1, fx+1), + FACE_getIFCo(f, nextLvl, S, fx+1, +1), + FACE_getIFCo(f, nextLvl, S, fx-1, +1)); + + VertDataAvg4(r, FACE_getIECo(f, nextLvl, S, fx-1), + FACE_getIECo(f, nextLvl, S, fx+1), + FACE_getIFCo(f, nextLvl, (S+1)%f->numVerts, 1, fx), + FACE_getIFCo(f, nextLvl, S, fx, 1)); + + VertDataCopy(nCo, co); + VertDataSub(nCo, q); + VertDataMulN(nCo, 0.25f); + VertDataAdd(nCo, r); + } + } + } + + /* copy down */ + edgeSize = 1 + (1<<(nextLvl)); + gridSize = 1 + (1<<((nextLvl)-1)); + cornerIdx = gridSize-1; + for (i=0; iv0, nextLvl)); + VertDataCopy(EDGE_getCo(e, nextLvl, edgeSize-1), VERT_getCo(e->v1, nextLvl)); + } + for (i=0; inumVerts; S++) { + CCGEdge *e = FACE_getEdges(f)[S]; + CCGEdge *prevE = FACE_getEdges(f)[(S+f->numVerts-1)%f->numVerts]; + + VertDataCopy(FACE_getIFCo(f, nextLvl, S, 0, 0), FACE_getCenterData(f)); + VertDataCopy(FACE_getIECo(f, nextLvl, S, 0), FACE_getCenterData(f)); + VertDataCopy(FACE_getIFCo(f, nextLvl, S, cornerIdx, cornerIdx), VERT_getCo(FACE_getVerts(f)[S], nextLvl)); + VertDataCopy(FACE_getIECo(f, nextLvl, S, cornerIdx), EDGE_getCo(FACE_getEdges(f)[S], nextLvl, cornerIdx)); + for (x=1; xnumVerts, 0, x), co); + } + for (x=0; xsubdivLevels; int vertDataSize = ss->meshIFC.vertDataSize; - int i,ptrIdx,cornerIdx; - int S,x,y; - void *q = ss->q, *r = ss->r; + int i, j, ptrIdx, S; int curLvl, nextLvl; - int j; + void *q = ss->q, *r = ss->r; effectedV = CCGSUBSURF_alloc(ss, sizeof(*effectedV)*ss->vMap->numEntries); effectedE = CCGSUBSURF_alloc(ss, sizeof(*effectedE)*ss->eMap->numEntries); @@ -1172,10 +1807,6 @@ static void ccgSubSurf__sync(CCGSubSurf *ss) { } } -#define VERT_getCo(v, lvl) _vert_getCo(v, lvl, vertDataSize) -#define EDGE_getCo(e, lvl, x) _edge_getCo(e, lvl, x, vertDataSize) -#define FACE_getIECo(f, lvl, S, x) _face_getIECo(f, lvl, S, x, subdivLevels, vertDataSize) -#define FACE_getIFCo(f, lvl, S, x, y) _face_getIFCo(f, lvl, S, x, y, subdivLevels, vertDataSize) curLvl = 0; nextLvl = curLvl+1; @@ -1388,645 +2019,340 @@ static void ccgSubSurf__sync(CCGSubSurf *ss) { } for (curLvl=1; curLvlcalcVertNormals) + ccgSubSurf__calcVertNormals(ss, + effectedV, effectedE, effectedF, + numEffectedV, numEffectedE, numEffectedF); - /* interior face midpoints - * o old interior face points - */ - for (S=0; SnumVerts; S++) { - for (y=0; yflags = 0; + } + for (ptrIdx=0; ptrIdxflags = 0; + } - /* interior edge midpoints - * o old interior edge points - * o new interior face midpoints - */ - for (S=0; SnumVerts; S++) { - for (x=0; xnumVerts, 1, fx); - void *co3 = FACE_getIFCo(f, nextLvl, S, fx, 1); - void *co = FACE_getIECo(f, nextLvl, S, fx); - - VertDataAvg4(co, co0, co1, co2, co3); - } + CCGSUBSURF_free(ss, effectedF); + CCGSUBSURF_free(ss, effectedE); + CCGSUBSURF_free(ss, effectedV); +} - /* interior face interior edge midpoints - * o old interior face points - * o new interior face midpoints - */ - - /* vertical */ - for (x=1; xfMap->numEntries); + num = 0; + for (i=0; ifMap->curSize; i++) { + CCGFace *f = (CCGFace*) ss->fMap->buckets[i]; + + for (; f; f = f->next) + array[num++] = f; } - /* exterior edge midpoints - * o old exterior edge points - * o new interior face midpoints - */ - for (ptrIdx=0; ptrIdx1.0) { - for (x=0; xnumFaces; i++) { - CCGFace *f = e->faces[i]; - VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx, 1, subdivLevels, vertDataSize)); - numFaces++; - } + arrayV = CCGSUBSURF_alloc(ss, sizeof(*arrayV)*ss->vMap->numEntries); + arrayE = CCGSUBSURF_alloc(ss, sizeof(*arrayE)*ss->eMap->numEntries); + numV = numE = 0; - VertDataMulN(q, 1.0f/(2.0f+numFaces)); + for (i=0; iflags |= Face_eEffected; + } - VertDataCopy(r, co0); - VertDataAdd(r, co1); - VertDataMulN(r, 0.5); + for (i=0; ivMap->curSize; i++) { + CCGVert *v = (CCGVert*) ss->vMap->buckets[i]; - VertDataCopy(co, q); - VertDataSub(r, q); - VertDataMulN(r, sharpness); - VertDataAdd(co, r); - } + for (; v; v = v->next) { + for(j=0; jnumFaces; j++) + if(!(v->faces[j]->flags & Face_eEffected)) + break; + + if(j == v->numFaces) { + arrayV[numV++] = v; + v->flags |= Vert_eEffected; } } + } - /* exterior vertex shift - * o old vertex points (shifting) - * o old exterior edge points - * o new interior face midpoints - */ - for (ptrIdx=0; ptrIdxeMap->curSize; i++) { + CCGEdge *e = (CCGEdge*) ss->eMap->buckets[i]; - for (i=0; inumEdges; i++) { - CCGEdge *e = v->edges[i]; - float sharpness = EDGE_getSharpness(e, curLvl); + for (; e; e = e->next) { + for(j=0; jnumFaces; j++) + if(!(e->faces[j]->flags & Face_eEffected)) + break; + + if(j == e->numFaces) { + e->flags |= Edge_eEffected; + arrayE[numE++] = e; + } + } + } - if (seam && _edge_isBoundary(e)) - seamEdges++; + *verts = arrayV; + *numVerts = numV; + *edges = arrayE; + *numEdges = numE; +} - if (sharpness!=0.0f) { - sharpCount++; - avgSharpness += sharpness; - } else { - allSharp = 0; - } - } +/* copy face grid coordinates to other places */ +CCGError ccgSubSurf_updateFromFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, int numEffectedF) +{ + int i, S, x, gridSize, cornerIdx, subdivLevels; + int vertDataSize = ss->meshIFC.vertDataSize, freeF; - if(sharpCount) { - avgSharpness /= sharpCount; - if (avgSharpness>1.0) { - avgSharpness = 1.0; - } - } + subdivLevels = ss->subdivLevels; + lvl = (lvl)? lvl: subdivLevels; + gridSize = 1 + (1<<(lvl-1)); + cornerIdx = gridSize-1; - if (seam && seamEdges < 2) - seam = 0; + ccgSubSurf__allFaces(ss, &effectedF, &numEffectedF, &freeF); - if (!v->numEdges) { - VertDataCopy(nCo, co); - } else if (_vert_isBoundary(v)) { - int numBoundary = 0; + for (i=0; inumEdges; i++) { - CCGEdge *e = v->edges[i]; - if (_edge_isBoundary(e)) { - VertDataAdd(r, _edge_getCoVert(e, v, curLvl, 1, vertDataSize)); - numBoundary++; - } - } + for (S=0; SnumVerts; S++) { + CCGEdge *e = FACE_getEdges(f)[S]; + CCGEdge *prevE = FACE_getEdges(f)[(S+f->numVerts-1)%f->numVerts]; - VertDataCopy(nCo, co); - VertDataMulN(nCo, 0.75); - VertDataMulN(r, 0.25f/numBoundary); - VertDataAdd(nCo, r); - } else { - int cornerIdx = (1 + (1<<(curLvl))) - 2; - int numEdges = 0, numFaces = 0; + VertDataCopy(FACE_getCenterData(f), FACE_getIFCo(f, lvl, S, 0, 0)); + VertDataCopy(VERT_getCo(FACE_getVerts(f)[S], lvl), FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx)); - VertDataZero(q); - for (i=0; inumFaces; i++) { - CCGFace *f = v->faces[i]; - VertDataAdd(q, FACE_getIFCo(f, nextLvl, _face_getVertIndex(f,v), cornerIdx, cornerIdx)); - numFaces++; - } - VertDataMulN(q, 1.0f/numFaces); - VertDataZero(r); - for (i=0; inumEdges; i++) { - CCGEdge *e = v->edges[i]; - VertDataAdd(r, _edge_getCoVert(e, v, curLvl, 1,vertDataSize)); - numEdges++; - } - VertDataMulN(r, 1.0f/numEdges); + for (x=0; x1 && v->numFaces) || seam) { - VertDataZero(q); - - if (seam) { - avgSharpness = 1.0f; - sharpCount = seamEdges; - allSharp = 1; - } + if(freeF) CCGSUBSURF_free(ss, effectedF); - for (i=0; inumEdges; i++) { - CCGEdge *e = v->edges[i]; - float sharpness = EDGE_getSharpness(e, curLvl); + return eCCGError_None; +} - if (seam) { - if (_edge_isBoundary(e)) - VertDataAdd(q, _edge_getCoVert(e, v, curLvl, 1, vertDataSize)); - } else if (sharpness != 0.0) { - VertDataAdd(q, _edge_getCoVert(e, v, curLvl, 1, vertDataSize)); - } - } +/* stitch together face grids, averaging coordinates at edges + and vertices, for multires displacements */ +CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, int numEffectedF) +{ + CCGVert **effectedV; + CCGEdge **effectedE; + int numEffectedV, numEffectedE, freeF; + int i, S, x, gridSize, cornerIdx, subdivLevels, edgeSize; + int vertDataSize = ss->meshIFC.vertDataSize; - VertDataMulN(q, (float) 1/sharpCount); + subdivLevels = ss->subdivLevels; + lvl = (lvl)? lvl: subdivLevels; + gridSize = 1 + (1<<(lvl-1)); + edgeSize = 1 + (1<1.0) { - avgSharpness = 1.0; - } - } else { - sharpCount = 0; - avgSharpness = 0; - } + VertDataZero(FACE_getCenterData(f)); - if (_edge_isBoundary(e) && (!e->numFaces || sharpCount<2)) { - for (x=1; xnumFaces; i++) { - CCGFace *f = e->faces[i]; - VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx-1, 1, subdivLevels, vertDataSize)); - VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx+1, 1, subdivLevels, vertDataSize)); - - VertDataAdd(r, _face_getIFCoEdge(f, e, curLvl, x, 1, subdivLevels, vertDataSize)); - numFaces++; - } - VertDataMulN(q, 1.0/(numFaces*2.0f)); - VertDataMulN(r, 1.0/(2.0f + numFaces)); + for (S=0; SnumVerts; S++) + for (x=0; xnumVerts; S++) { + int prevS = (S+f->numVerts-1)%f->numVerts; + CCGEdge *e = FACE_getEdges(f)[S]; + CCGEdge *prevE = FACE_getEdges(f)[prevS]; - for (ptrIdx=0; ptrIdxnumVerts; S++) { - VertDataAdd(q, FACE_getIFCo(f, nextLvl, S, 1, 1)); - } - VertDataMulN(q, 1.0f/f->numVerts); - VertDataZero(r); - for (S=0; SnumVerts; S++) { - VertDataAdd(r, FACE_getIECo(f, curLvl, S, 1)); + for (x=1; xnumVerts); - - VertDataMulN(FACE_getCenterData(f), f->numVerts-2.0f); - VertDataAdd(FACE_getCenterData(f), q); - VertDataAdd(FACE_getCenterData(f), r); - VertDataMulN(FACE_getCenterData(f), 1.0f/f->numVerts); - - for (S=0; SnumVerts; S++) { - /* interior face shift - * o old interior face point (shifting) - * o new interior edge midpoints - * o new interior face midpoints - */ - for (x=1; xnumVerts, 1, fx-1), - FACE_getIFCo(f, nextLvl, (S+1)%f->numVerts, 1, fx+1), - FACE_getIFCo(f, nextLvl, S, fx+1, +1), - FACE_getIFCo(f, nextLvl, S, fx-1, +1)); - VertDataAvg4(r, FACE_getIECo(f, nextLvl, S, fx-1), - FACE_getIECo(f, nextLvl, S, fx+1), - FACE_getIFCo(f, nextLvl, (S+1)%f->numVerts, 1, fx), - FACE_getIFCo(f, nextLvl, S, fx, 1)); - - VertDataCopy(nCo, co); - VertDataSub(nCo, q); - VertDataMulN(nCo, 0.25f); - VertDataAdd(nCo, r); - } + for (x=0; xv0, nextLvl)); - VertDataCopy(EDGE_getCo(e, nextLvl, edgeSize-1), VERT_getCo(e->v1, nextLvl)); - } - for (i=0; inumVerts; S++) { - CCGEdge *e = FACE_getEdges(f)[S]; - CCGEdge *prevE = FACE_getEdges(f)[(S+f->numVerts-1)%f->numVerts]; - - VertDataCopy(FACE_getIFCo(f, nextLvl, S, 0, 0), FACE_getCenterData(f)); - VertDataCopy(FACE_getIECo(f, nextLvl, S, 0), FACE_getCenterData(f)); - VertDataCopy(FACE_getIFCo(f, nextLvl, S, cornerIdx, cornerIdx), VERT_getCo(FACE_getVerts(f)[S], nextLvl)); - VertDataCopy(FACE_getIECo(f, nextLvl, S, cornerIdx), EDGE_getCo(FACE_getEdges(f)[S], nextLvl, cornerIdx)); - for (x=1; xnumVerts, 0, x), co); - } - for (x=0; xnumFaces); } -#define FACE_getIFNo(f, lvl, S, x, y) _face_getIFNo(f, lvl, S, x, y, subdivLevels, vertDataSize, normalDataOffset) -#define FACE_calcIFNo(f, lvl, S, x, y, no) _face_calcIFNo(f, lvl, S, x, y, no, subdivLevels, vertDataSize) - if (ss->calcVertNormals) { - int lvl = ss->subdivLevels; - int edgeSize = 1 + (1<normalDataOffset; + for (i=0; iv0, lvl)); + VertDataCopy(EDGE_getCo(e, lvl, edgeSize-1), VERT_getCo(e->v1, lvl)); - for (S=0; SnumVerts; S++) { - for (y=0; ynumVerts)%f->numVerts]->flags&Edge_eEffected) - for (x=0; xflags&Edge_eEffected) - for (y=0; yflags&Vert_eEffected) - NormZero(FACE_getIFNo(f, lvl, S, gridSize-1, gridSize-1)); - } - } + for (x=1; xnumFaces); + } - for (ptrIdx=0; ptrIdxnumVerts; S++) { - int yLimit = !(FACE_getEdges(f)[(S-1+f->numVerts)%f->numVerts]->flags&Edge_eEffected); - int xLimit = !(FACE_getEdges(f)[S]->flags&Edge_eEffected); - int yLimitNext = xLimit; - int xLimitPrev = yLimit; - - for (y=0; yflags&Vert_eEffected) { - NormAdd(FACE_getIFNo(f, lvl, S, x+1, y+1), no); - } - } + VertDataMulN(FACE_getCenterData(f), 1.0f/f->numVerts); - if (x==0 && y==0) { - int K; + for (S=0; SnumVerts; S++) + for (x=1; xnumVerts, 0, 1), no); - if (!xLimitPrev || 1numVerts)%f->numVerts, 1, 0), no); + for (S=0; SnumVerts; S++) { + int prevS = (S+f->numVerts-1)%f->numVerts; + CCGEdge *e = FACE_getEdges(f)[S]; + CCGEdge *prevE = FACE_getEdges(f)[prevS]; - for (K=0; KnumVerts; K++) { - if (K!=S) { - NormAdd(FACE_getIFNo(f, lvl, K, 0, 0), no); - } - } - } else if (y==0) { - NormAdd(FACE_getIFNo(f, lvl, (S+1)%f->numVerts, 0, x), no); - if (!yLimitNext || xnumVerts, 0, x+1), no); - } else if (x==0) { - NormAdd(FACE_getIFNo(f, lvl, (S-1+f->numVerts)%f->numVerts, y, 0), no); - if (!xLimitPrev || ynumVerts)%f->numVerts, y+1, 0), no); - } - } - } + VertDataCopy(FACE_getIFCo(f, lvl, S, 0, 0), FACE_getCenterData(f)); + VertDataCopy(FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx), VERT_getCo(FACE_getVerts(f)[S], lvl)); + + for (x=1; xflags = 0; + for (i=0; iflags = 0; + for (i=0; iflags = 0; - for (i=0; inumFaces; i++) { - CCGFace *f = v->faces[i]; - NormAdd(no, FACE_getIFNo(f, lvl, _face_getVertIndex(f,v), gridSize-1, gridSize-1)); - } + CCGSUBSURF_free(ss, effectedE); + CCGSUBSURF_free(ss, effectedV); + if(freeF) CCGSUBSURF_free(ss, effectedF); - length = sqrt(no[0]*no[0] + no[1]*no[1] + no[2]*no[2]); + return eCCGError_None; +} - if (length>FLT_EPSILON) { - float invLength = 1.0f/length; - no[0] *= invLength; - no[1] *= invLength; - no[2] *= invLength; - } else { - NormZero(no); - } +/* update normals for specified faces */ +CCGError ccgSubSurf_updateNormals(CCGSubSurf *ss, CCGFace **effectedF, int numEffectedF) { + CCGVert **effectedV; + CCGEdge **effectedE; + int i, numEffectedV, numEffectedE, freeF; - for (i=0; inumFaces; i++) { - CCGFace *f = v->faces[i]; - NormCopy(FACE_getIFNo(f, lvl, _face_getVertIndex(f,v), gridSize-1, gridSize-1), no); - } - } - for (ptrIdx=0; ptrIdxnumFaces) { - CCGFace *fLast = e->faces[e->numFaces-1]; - int x; + if (ss->calcVertNormals) + ccgSubSurf__calcVertNormals(ss, + effectedV, effectedE, effectedF, + numEffectedV, numEffectedE, numEffectedF); - for (i=0; inumFaces-1; i++) { - CCGFace *f = e->faces[i]; + for (i=0; iflags = 0; + for (i=0; iflags = 0; + for (i=0; iflags = 0; - for (x=1; xnumFaces-1; i++) { - CCGFace *f = e->faces[i]; + return eCCGError_None; +} - for (x=1; xsubdivLevels; - for (S=0; SnumVerts; S++) { - NormCopy(FACE_getIFNo(f, lvl, (S+1)%f->numVerts, 0, gridSize-1), - FACE_getIFNo(f, lvl, S, gridSize-1, 0)); - } - } - for (ptrIdx=0; ptrIdxnumVerts; S++) { - for (y=0; yFLT_EPSILON) { - float invLength = 1.0f/length; - no[0] *= invLength; - no[1] *= invLength; - no[2] *= invLength; - } else { - NormZero(no); - } - } - } - } - } - } -#undef FACE_getIFNo + ccgSubSurf__allFaces(ss, &effectedF, &numEffectedF, &freeF); + ccgSubSurf__effectedFaceNeighbours(ss, effectedF, numEffectedF, + &effectedV, &numEffectedV, &effectedE, &numEffectedE); - for (ptrIdx=0; ptrIdxflags = 0; - } - for (ptrIdx=0; ptrIdxflags = 0; + for (curLvl=lvl; curLvlflags = 0; + for (i=0; iflags = 0; + for (i=0; iflags = 0; - CCGSUBSURF_free(ss, effectedF); CCGSUBSURF_free(ss, effectedE); CCGSUBSURF_free(ss, effectedV); + if(freeF) CCGSUBSURF_free(ss, effectedF); + + return eCCGError_None; } +#undef VERT_getCo +#undef EDGE_getCo +#undef FACE_getIECo +#undef FACE_getIFCo + /*** External API accessor functions ***/ int ccgSubSurf_getNumVerts(CCGSubSurf *ss) { diff --git a/source/blender/blenkernel/intern/CCGSubSurf.h b/source/blender/blenkernel/intern/CCGSubSurf.h index fbd0aecc0a5..d51cf0128c3 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.h +++ b/source/blender/blenkernel/intern/CCGSubSurf.h @@ -59,6 +59,11 @@ CCGError ccgSubSurf_syncFaceDel (CCGSubSurf *ss, CCGFaceHDL fHDL); CCGError ccgSubSurf_processSync (CCGSubSurf *ss); +CCGError ccgSubSurf_updateFromFaces(CCGSubSurf *ss, int lvl, CCGFace **faces, int numFaces); +CCGError ccgSubSurf_updateNormals(CCGSubSurf *ss, CCGFace **faces, int numFaces); +CCGError ccgSubSurf_updateLevels(CCGSubSurf *ss, int lvl, CCGFace **faces, int numFaces); +CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **faces, int numFaces); + CCGError ccgSubSurf_setSubdivisionLevels (CCGSubSurf *ss, int subdivisionLevels); CCGError ccgSubSurf_setAllowEdgeCreation (CCGSubSurf *ss, int allowEdgeCreation, float defaultCreaseValue, void *defaultUserData); -- cgit v1.2.3 From a1bf207be31f4bb578e920bc472cc3471a6554ca Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Nov 2009 13:11:44 +0000 Subject: Sculpt: Subsurf * Now uses the CCG DerivedMesh also in object mode, used to be edit mode only. * Create CD_ORIGINDEX layer on demand, to save memory. * Removed ss_to_cdderivedmesh function, and instead create ccgdm and then convert that to cddm, to avoid code duplication. * Added and implement DerivedMesh interface functions to obtain face grids. * Store edge/face flags more memory efficient. * Export CCGDerivedMesh struct in BKE_subsurf.h --- source/blender/blenkernel/BKE_DerivedMesh.h | 18 +- source/blender/blenkernel/BKE_subsurf.h | 53 +- source/blender/blenkernel/intern/DerivedMesh.c | 2 +- source/blender/blenkernel/intern/cdderivedmesh.c | 17 +- source/blender/blenkernel/intern/multires.c | 4 +- source/blender/blenkernel/intern/particle_system.c | 7 +- source/blender/blenkernel/intern/subsurf_ccg.c | 961 +++++++++------------ source/blender/editors/mesh/editface.c | 10 +- source/blender/editors/sculpt_paint/sculpt.c | 2 +- 9 files changed, 495 insertions(+), 579 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index d9b0c4bc357..6bce7575556 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -67,6 +67,16 @@ struct PBVH; #define SUB_ELEMS_EDGE 2 #define SUB_ELEMS_FACE 4 +typedef struct DMGridData { + float co[3]; + float no[3]; +} DMGridData; + +typedef struct DMGridAdjacency { + int index[4]; + int rotation[4]; +} DMGridAdjacency; + typedef struct DerivedMesh DerivedMesh; struct DerivedMesh { /* Private DerivedMesh data, only for internal DerivedMesh use */ @@ -135,6 +145,12 @@ struct DerivedMesh { void *(*getEdgeDataArray)(DerivedMesh *dm, int type); void *(*getFaceDataArray)(DerivedMesh *dm, int type); + /* optional grid access for subsurf */ + int (*getNumGrids)(DerivedMesh *dm); + int (*getGridSize)(DerivedMesh *dm); + DMGridData **(*getGridData)(DerivedMesh *dm); + DMGridAdjacency *(*getGridAdjacency)(DerivedMesh *dm); + /* Iterate over each mapped vertex in the derived mesh, calling the * given function with the original vert and the mapped vert's new * coordinate and normal. For historical reasons the normal can be @@ -189,7 +205,7 @@ struct DerivedMesh { /* Get the BVH used for paint modes */ - struct PBVH *(*getPBVH)(DerivedMesh *dm); + struct PBVH *(*getPBVH)(struct Object *ob, DerivedMesh *dm); /* Drawing Operations */ diff --git a/source/blender/blenkernel/BKE_subsurf.h b/source/blender/blenkernel/BKE_subsurf.h index f6dc22f650a..7b8adb7cb8e 100644 --- a/source/blender/blenkernel/BKE_subsurf.h +++ b/source/blender/blenkernel/BKE_subsurf.h @@ -34,21 +34,60 @@ struct DerivedMesh; struct EditMesh; struct MultiresSubsurf; struct SubsurfModifierData; +struct _CCGSubsurf; +struct _CCGVert; +struct _CCGEdge; +struct _CCGFace; +struct PBVH; +struct DMGridData; +struct DMGridAdjacency; -struct DerivedMesh *subsurf_make_derived_from_derived( - struct DerivedMesh *dm, - struct SubsurfModifierData *smd, - int useRenderParams, float (*vertCos)[3], - int isFinalCalc, int editMode); +/**************************** External *****************************/ -struct DerivedMesh *subsurf_make_derived_from_derived_with_multires( +struct DerivedMesh *subsurf_make_derived_from_derived( struct DerivedMesh *dm, struct SubsurfModifierData *smd, - struct MultiresSubsurf *ms, int useRenderParams, float (*vertCos)[3], int isFinalCalc, int editMode); void subsurf_calculate_limit_positions(Mesh *me, float (*positions_r)[3]); +/**************************** Internal *****************************/ + +typedef struct CCGDerivedMesh { + DerivedMesh dm; + + struct _CCGSubSurf *ss; + int freeSS; + int drawInteriorEdges, useSubsurfUv; + + struct {int startVert; struct _CCGVert *vert;} *vertMap; + struct {int startVert; int startEdge; struct _CCGEdge *edge;} *edgeMap; + struct {int startVert; int startEdge; + int startFace; struct _CCGFace *face;} *faceMap; + + short *edgeFlags; + char *faceFlags; + + struct PBVH *pbvh; + + struct DMGridData **gridData; + struct DMGridAdjacency *gridAdjacency; + struct _CCGFace **gridFaces; + + struct { + struct MultiresModifierData *mmd; + int local_mmd; + + int lvl, totlvl; + float (*orco)[3]; + + Object *ob; + int modified; + + void (*update)(DerivedMesh*); + } multires; +} CCGDerivedMesh; + #endif diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index f9abaa9da02..5a911fcb13b 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1886,7 +1886,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos mask &= ~CD_MASK_ORCO; DM_set_only_copy(orcodm, mask); - ndm = mti->applyModifier(md, ob, orcodm, useRenderParams, !inputVertexCos); + ndm = mti->applyModifier(md, ob, orcodm, useRenderParams, 0); if(ndm) { /* if the modifier returned a new dm, release the old one */ diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index a07965c2a58..e64d8a24934 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -184,21 +184,21 @@ static ListBase *cdDM_getFaceMap(DerivedMesh *dm) if(!cddm->fmap) { create_vert_face_map(&cddm->fmap, &cddm->fmap_mem, cddm->mface, dm->getNumVerts(dm), dm->getNumFaces(dm)); - printf("rebuild fmap\n"); } return cddm->fmap; } -static struct PBVH *cdDM_getPBVH(DerivedMesh *dm) +static struct PBVH *cdDM_getPBVH(Object *ob, DerivedMesh *dm) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; - if(!cddm->pbvh) { + if(!cddm->pbvh && ob->type == OB_MESH) { + Mesh *me= ob->data; + cddm->pbvh = BLI_pbvh_new(); - BLI_pbvh_build(cddm->pbvh, cddm->mface, cddm->mvert, - dm->getNumFaces(dm), dm->getNumVerts(dm)); - printf("rebuild pbvh\n"); + BLI_pbvh_build(cddm->pbvh, me->mface, me->mvert, + me->totface, me->totvert); } return cddm->pbvh; @@ -1627,6 +1627,11 @@ DerivedMesh *CDDM_copy(DerivedMesh *source) int numEdges = source->numEdgeData; int numFaces = source->numFaceData; + /* ensure these are created if they are made on demand */ + source->getVertDataArray(source, CD_ORIGINDEX); + source->getEdgeDataArray(source, CD_ORIGINDEX); + source->getFaceDataArray(source, CD_ORIGINDEX); + /* this initializes dm, and copies all non mvert/medge/mface layers */ DM_from_template(dm, source, numVerts, numEdges, numFaces); dm->deformedOnly = source->deformedOnly; diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 47b2914b0f5..fc14afaf07f 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -193,7 +193,7 @@ static DerivedMesh *multires_subdisp_pre(DerivedMesh *mrdm, int distance, int si if(simple) smd.subdivType = ME_SIMPLE_SUBSURF; - final = subsurf_make_derived_from_derived_with_multires(mrdm, &smd, NULL, 0, NULL, 0, 0); + final = NULL; // XXX subsurf_make_derived_from_derived_with_multires(mrdm, &smd, NULL, 0, NULL, 0, 0); return final; } @@ -1247,7 +1247,7 @@ struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, i smd.levels = smd.renderLevels = mmd->lvl - 1; smd.flags |= eSubsurfModifierFlag_SubsurfUv; - result = subsurf_make_derived_from_derived_with_multires(dm, &smd, &ms, useRenderParams, NULL, isFinalCalc, 0); + result = NULL; // XXX subsurf_make_derived_from_derived_with_multires(dm, &smd, &ms, useRenderParams, NULL, isFinalCalc, 0); for(i = 0; i < result->getNumVerts(result); ++i) MultiresDM_get_subco(result)[i] = CDDM_get_verts(result)[i]; multiresModifier_disp_run(result, MultiresDM_get_subco(result), 0); diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 075c6f6207f..ffb35d5cf2f 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -287,12 +287,12 @@ void psys_calc_dmcache(Object *ob, DerivedMesh *dm, ParticleSystem *psys) if(psys->part->from == PART_FROM_VERT) { totdmelem= dm->getNumVerts(dm); totelem= me->totvert; - origindex= DM_get_vert_data_layer(dm, CD_ORIGINDEX); + origindex= dm->getVertDataArray(dm, CD_ORIGINDEX); } else { /* FROM_FACE/FROM_VOLUME */ totdmelem= dm->getNumFaces(dm); totelem= me->totface; - origindex= DM_get_face_data_layer(dm, CD_ORIGINDEX); + origindex= dm->getFaceDataArray(dm, CD_ORIGINDEX); } nodedmelem= MEM_callocN(sizeof(LinkNode)*totdmelem, "psys node elems"); @@ -948,7 +948,8 @@ static int psys_threads_init_distribution(ParticleThread *threads, Scene *scene, if(totpart==0) return 0; - if (!finaldm->deformedOnly && !CustomData_has_layer( &finaldm->faceData, CD_ORIGINDEX ) ) { + if (!finaldm->deformedOnly && !finaldm->getFaceDataArray(finaldm, CD_ORIGINDEX)) { + printf("Can't create particles with the current modifier stack, disable destructive modifiers\n"); // XXX error("Can't paint with the current modifier stack, disable destructive modifiers"); return 0; } diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 7197437bfd4..e465d17f498 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -53,11 +53,12 @@ #include "BKE_subsurf.h" #include "BLI_blenlib.h" +#include "BLI_edgehash.h" #include "BLI_editVert.h" -#include "BLI_math.h" #include "BLI_linklist.h" +#include "BLI_math.h" #include "BLI_memarena.h" -#include "BLI_edgehash.h" +#include "BLI_pbvh.h" #include "BIF_gl.h" #include "BIF_glutil.h" @@ -68,25 +69,6 @@ #include "CCGSubSurf.h" -typedef struct _VertData { - float co[3]; - float no[3]; -} VertData; - -struct CCGDerivedMesh { - DerivedMesh dm; - - CCGSubSurf *ss; - int drawInteriorEdges, useSubsurfUv; - - struct {int startVert; CCGVert *vert;} *vertMap; - struct {int startVert; int startEdge; CCGEdge *edge;} *edgeMap; - struct {int startVert; int startEdge; - int startFace; CCGFace *face;} *faceMap; -}; - -typedef struct CCGDerivedMesh CCGDerivedMesh; - static int ccgDM_getVertMapIndex(CCGSubSurf *ss, CCGVert *v); static int ccgDM_getEdgeMapIndex(CCGSubSurf *ss, CCGEdge *e); static int ccgDM_getFaceMapIndex(CCGSubSurf *ss, CCGFace *f); @@ -136,7 +118,7 @@ static CCGSubSurf *_getSubSurf(CCGSubSurf *prevSS, int subdivLevels, int useAgin } else { ifc.vertUserSize = ifc.edgeUserSize = ifc.faceUserSize = 8; } - ifc.vertDataSize = sizeof(VertData); + ifc.vertDataSize = sizeof(DMGridData); if (useArena) { CCGAllocatorIFC allocatorIFC; @@ -156,7 +138,7 @@ static CCGSubSurf *_getSubSurf(CCGSubSurf *prevSS, int subdivLevels, int useAgin ccgSubSurf_setUseAgeCounts(ccgSS, 1, 8, 8, 8); } - ccgSubSurf_setCalcVertexNormals(ccgSS, 1, BLI_STRUCT_OFFSET(VertData, no)); + ccgSubSurf_setCalcVertexNormals(ccgSS, 1, BLI_STRUCT_OFFSET(DMGridData, no)); return ccgSS; } @@ -340,7 +322,7 @@ static void set_subsurf_uv(CCGSubSurf *ss, DerivedMesh *dm, DerivedMesh *result, if(!dmtface || !tface) return; - /* create a CCGSubsurf from uv's */ + /* create a CCGSubSurf from uv's */ uvss = _getSubSurf(NULL, ccgSubSurf_getSubdivisionLevels(ss), 0, 1, 0); if(!ss_sync_from_uv(uvss, ss, dm, dmtface)) { @@ -348,7 +330,7 @@ static void set_subsurf_uv(CCGSubSurf *ss, DerivedMesh *dm, DerivedMesh *result, return; } - /* get some info from CCGSubsurf */ + /* get some info from CCGSubSurf */ totface = ccgSubSurf_getNumFaces(uvss); edgeSize = ccgSubSurf_getEdgeSize(uvss); gridSize = ccgSubSurf_getGridSize(uvss); @@ -372,7 +354,7 @@ static void set_subsurf_uv(CCGSubSurf *ss, DerivedMesh *dm, DerivedMesh *result, int numVerts = ccgSubSurf_getFaceNumVerts(f); for (S=0; Sseam) { - flags |= ME_SEAM; - } - } else { - if (edgeIdx!=-1) { - MEdge *origMed = &medge[edgeIdx]; - - if (dlm) { - flags |= origMed->flag&~ME_EDGE_STEPINDEX; - } else { - flags |= (origMed->flag&ME_SEAM)|ME_EDGEDRAW|ME_EDGERENDER; - } - } - } - - return flags; -} -#endif - /* face weighting */ static void calc_ss_weights(int gridFaces, FaceVertWeight **qweight, FaceVertWeight **tweight) @@ -471,360 +422,6 @@ static void calc_ss_weights(int gridFaces, } } -static DerivedMesh *ss_to_cdderivedmesh(CCGSubSurf *ss, int ssFromEditmesh, - int drawInteriorEdges, int useSubsurfUv, - DerivedMesh *dm, MultiresSubsurf *ms) -{ - DerivedMesh *result; - int edgeSize = ccgSubSurf_getEdgeSize(ss); - int gridSize = ccgSubSurf_getGridSize(ss); - int gridFaces = gridSize - 1; - int edgeBase, faceBase; - int i, j, k, S, x, y, index; - CCGVertIterator *vi; - CCGEdgeIterator *ei; - CCGFaceIterator *fi; - CCGFace **faceMap2; - CCGEdge **edgeMap2; - CCGVert **vertMap2; - int totvert, totedge, totface; - MVert *mvert; - MEdge *med; - MFace *mf; - int *origIndex; - FaceVertWeight *qweight, *tweight; - - calc_ss_weights(gridFaces, &qweight, &tweight); - - /* vert map */ - totvert = ccgSubSurf_getNumVerts(ss); - vertMap2 = MEM_mallocN(totvert*sizeof(*vertMap2), "vertmap"); - vi = ccgSubSurf_getVertIterator(ss); - for(; !ccgVertIterator_isStopped(vi); ccgVertIterator_next(vi)) { - CCGVert *v = ccgVertIterator_getCurrent(vi); - - vertMap2[GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v))] = v; - } - ccgVertIterator_free(vi); - - totedge = ccgSubSurf_getNumEdges(ss); - edgeMap2 = MEM_mallocN(totedge*sizeof(*edgeMap2), "edgemap"); - ei = ccgSubSurf_getEdgeIterator(ss); - for(; !ccgEdgeIterator_isStopped(ei); ccgEdgeIterator_next(ei)) { - CCGEdge *e = ccgEdgeIterator_getCurrent(ei); - - edgeMap2[GET_INT_FROM_POINTER(ccgSubSurf_getEdgeEdgeHandle(e))] = e; - } - - totface = ccgSubSurf_getNumFaces(ss); - faceMap2 = MEM_mallocN(totface*sizeof(*faceMap2), "facemap"); - fi = ccgSubSurf_getFaceIterator(ss); - for(; !ccgFaceIterator_isStopped(fi); ccgFaceIterator_next(fi)) { - CCGFace *f = ccgFaceIterator_getCurrent(fi); - - faceMap2[GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f))] = f; - } - ccgFaceIterator_free(fi); - - if(ms) { - result = MultiresDM_new(ms, dm, ccgSubSurf_getNumFinalVerts(ss), - ccgSubSurf_getNumFinalEdges(ss), - ccgSubSurf_getNumFinalFaces(ss)); - } - else { - if(dm) { - result = CDDM_from_template(dm, ccgSubSurf_getNumFinalVerts(ss), - ccgSubSurf_getNumFinalEdges(ss), - ccgSubSurf_getNumFinalFaces(ss)); - } else { - result = CDDM_new(ccgSubSurf_getNumFinalVerts(ss), - ccgSubSurf_getNumFinalEdges(ss), - ccgSubSurf_getNumFinalFaces(ss)); - } - } - - // load verts - faceBase = i = 0; - mvert = CDDM_get_verts(result); - origIndex = result->getVertDataArray(result, CD_ORIGINDEX); - - for(index = 0; index < totface; index++) { - CCGFace *f = faceMap2[index]; - int x, y, S, numVerts = ccgSubSurf_getFaceNumVerts(f); - FaceVertWeight *weight = (numVerts == 4) ? qweight : tweight; - int vertIdx[4]; - - for(S = 0; S < numVerts; S++) { - CCGVert *v = ccgSubSurf_getFaceVert(ss, f, S); - - vertIdx[S] = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v)); - } - - DM_interp_vert_data(dm, result, vertIdx, weight[0][0], numVerts, i); - copy_v3_v3(mvert->co, ccgSubSurf_getFaceCenterData(f)); - *origIndex = ORIGINDEX_NONE; - ++mvert; - ++origIndex; - i++; - - for(S = 0; S < numVerts; S++) { - int prevS = (S - 1 + numVerts) % numVerts; - int nextS = (S + 1) % numVerts; - int otherS = (numVerts == 4) ? (S + 2) % numVerts : 3; - - for(x = 1; x < gridFaces; x++) { - float w[4]; - w[prevS] = weight[x][0][0]; - w[S] = weight[x][0][1]; - w[nextS] = weight[x][0][2]; - w[otherS] = weight[x][0][3]; - DM_interp_vert_data(dm, result, vertIdx, w, numVerts, i); - copy_v3_v3(mvert->co, - ccgSubSurf_getFaceGridEdgeData(ss, f, S, x)); - - *origIndex = ORIGINDEX_NONE; - ++mvert; - ++origIndex; - i++; - } - } - - for(S = 0; S < numVerts; S++) { - int prevS = (S - 1 + numVerts) % numVerts; - int nextS = (S + 1) % numVerts; - int otherS = (numVerts == 4) ? (S + 2) % numVerts : 3; - - for(y = 1; y < gridFaces; y++) { - for(x = 1; x < gridFaces; x++) { - float w[4]; - w[prevS] = weight[y * gridFaces + x][0][0]; - w[S] = weight[y * gridFaces + x][0][1]; - w[nextS] = weight[y * gridFaces + x][0][2]; - w[otherS] = weight[y * gridFaces + x][0][3]; - DM_interp_vert_data(dm, result, vertIdx, w, numVerts, i); - copy_v3_v3(mvert->co, - ccgSubSurf_getFaceGridData(ss, f, S, x, y)); - *origIndex = ORIGINDEX_NONE; - ++mvert; - ++origIndex; - i++; - } - } - } - - *((int*)ccgSubSurf_getFaceUserData(ss, f)) = faceBase; - faceBase += 1 + numVerts * ((gridSize-2) + (gridSize-2) * (gridSize-2)); - } - - edgeBase = i; - for(index = 0; index < totedge; index++) { - CCGEdge *e = edgeMap2[index]; - int x; - int vertIdx[2]; - - CCGVert *v; - v = ccgSubSurf_getEdgeVert0(e); - vertIdx[0] = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v)); - v = ccgSubSurf_getEdgeVert1(e); - vertIdx[1] = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v)); - - for(x = 1; x < edgeSize - 1; x++) { - float w[2]; - w[1] = (float) x / (edgeSize - 1); - w[0] = 1 - w[1]; - DM_interp_vert_data(dm, result, vertIdx, w, 2, i); - copy_v3_v3(mvert->co, ccgSubSurf_getEdgeData(ss, e, x)); - *origIndex = ORIGINDEX_NONE; - ++mvert; - ++origIndex; - i++; - } - - *((int*)ccgSubSurf_getEdgeUserData(ss, e)) = edgeBase; - edgeBase += edgeSize-2; - } - - for(index = 0; index < totvert; index++) { - CCGVert *v = vertMap2[index]; - int vertIdx; - - vertIdx = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v)); - - DM_copy_vert_data(dm, result, vertIdx, i, 1); - copy_v3_v3(mvert->co, ccgSubSurf_getVertData(ss, v)); - - *((int*)ccgSubSurf_getVertUserData(ss, v)) = i; - *origIndex = ccgDM_getVertMapIndex(ss, v); - ++mvert; - ++origIndex; - i++; - } - - // load edges - i = 0; - med = CDDM_get_edges(result); - origIndex = result->getEdgeDataArray(result, CD_ORIGINDEX); - - for(index = 0; index < totface; index++) { - CCGFace *f = faceMap2[index]; - int numVerts = ccgSubSurf_getFaceNumVerts(f); - - for(k = 0; k < numVerts; k++) { - for(x = 0; x < gridFaces; x++) { - if(drawInteriorEdges) med->flag = ME_EDGEDRAW | ME_EDGERENDER; - med->v1 = getFaceIndex(ss, f, k, x, 0, edgeSize, gridSize); - med->v2 = getFaceIndex(ss, f, k, x+1, 0, edgeSize, gridSize); - *origIndex = ORIGINDEX_NONE; - ++med; - ++origIndex; - i++; - } - - for(x = 1; x < gridFaces; x++) { - for(y = 0; y < gridFaces; y++) { - if(drawInteriorEdges) - med->flag = ME_EDGEDRAW | ME_EDGERENDER; - med->v1 = getFaceIndex(ss, f, k, x, y, edgeSize, gridSize); - med->v2 = getFaceIndex(ss, f, k, x, y + 1, - edgeSize, gridSize); - *origIndex = ORIGINDEX_NONE; - ++med; - ++origIndex; - i++; - - if(drawInteriorEdges) - med->flag = ME_EDGEDRAW | ME_EDGERENDER; - med->v1 = getFaceIndex(ss, f, k, y, x, edgeSize, gridSize); - med->v2 = getFaceIndex(ss, f, k, y + 1, x, - edgeSize, gridSize); - *origIndex = ORIGINDEX_NONE; - ++med; - ++origIndex; - i++; - } - } - } - } - - for(index = 0; index < totedge; index++) { - CCGEdge *e = edgeMap2[index]; - unsigned int flags = 0; - char bweight = 0; - int edgeIdx = GET_INT_FROM_POINTER(ccgSubSurf_getEdgeEdgeHandle(e)); - - if(!ccgSubSurf_getEdgeNumFaces(e)) flags |= ME_LOOSEEDGE; - - - if(edgeIdx != -1 && dm) { - MEdge origMed; - dm->getEdge(dm, edgeIdx, &origMed); - - flags |= origMed.flag; - bweight = origMed.bweight; - } - - for(x = 0; x < edgeSize - 1; x++) { - med->v1 = getEdgeIndex(ss, e, x, edgeSize); - med->v2 = getEdgeIndex(ss, e, x + 1, edgeSize); - med->flag = flags; - med->bweight = bweight; - *origIndex = ccgDM_getEdgeMapIndex(ss, e); - ++med; - ++origIndex; - i++; - } - } - - // load faces - i = 0; - mf = CDDM_get_faces(result); - origIndex = result->getFaceDataArray(result, CD_ORIGINDEX); - - for(index = 0; index < totface; index++) { - CCGFace *f = faceMap2[index]; - int numVerts = ccgSubSurf_getFaceNumVerts(f); - int mat_nr; - int flag; - int mapIndex = ccgDM_getFaceMapIndex(ss, f); - int faceIdx = GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f)); - - if(!ssFromEditmesh) { - MFace origMFace; - dm->getFace(dm, faceIdx, &origMFace); - - mat_nr = origMFace.mat_nr; - flag = origMFace.flag; - } else { - EditFace *ef = ccgSubSurf_getFaceFaceHandle(ss, f); - mat_nr = ef->mat_nr; - flag = ef->flag; - } - - for(S = 0; S < numVerts; S++) { - FaceVertWeight *weight = (numVerts == 4) ? qweight : tweight; - - for(y = 0; y < gridFaces; y++) { - for(x = 0; x < gridFaces; x++) { - mf->v1 = getFaceIndex(ss, f, S, x + 0, y + 0, - edgeSize, gridSize); - mf->v2 = getFaceIndex(ss, f, S, x + 0, y + 1, - edgeSize, gridSize); - mf->v3 = getFaceIndex(ss, f, S, x + 1, y + 1, - edgeSize, gridSize); - mf->v4 = getFaceIndex(ss, f, S, x + 1, y + 0, - edgeSize, gridSize); - mf->mat_nr = mat_nr; - mf->flag = flag; - - if(dm) { - int prevS = (S - 1 + numVerts) % numVerts; - int nextS = (S + 1) % numVerts; - int otherS = (numVerts == 4) ? (S + 2) % numVerts : 3; - FaceVertWeight w; - - for(j = 0; j < 4; ++j) { - w[j][prevS] = (*weight)[j][0]; - w[j][S] = (*weight)[j][1]; - w[j][nextS] = (*weight)[j][2]; - w[j][otherS] = (*weight)[j][3]; - } - - DM_interp_face_data(dm, result, &faceIdx, NULL, - &w, 1, i); - weight++; - } - - *origIndex = mapIndex; - ++mf; - ++origIndex; - i++; - } - } - } - } - - MEM_freeN(faceMap2); - MEM_freeN(edgeMap2); - MEM_freeN(vertMap2); - - MEM_freeN(tweight); - MEM_freeN(qweight); - - if(useSubsurfUv) { - CustomData *fdata = &result->faceData; - CustomData *dmfdata = &dm->faceData; - int numlayer = CustomData_number_of_layers(fdata, CD_MTFACE); - int dmnumlayer = CustomData_number_of_layers(dmfdata, CD_MTFACE); - - for (i=0; iedgeMap[0].startEdge) / (edgeSize - 1); @@ -1121,7 +719,7 @@ static void ccgDM_getFinalEdge(DerivedMesh *dm, int edgeNum, MEdge *med) med->v1 = getEdgeIndex(ss, e, x, edgeSize); med->v2 = getEdgeIndex(ss, e, x+1, edgeSize); - edgeFlag = dm->getEdgeData(dm, edgeNum, CD_FLAGS); + edgeFlag = (ccgdm->edgeFlags)? &ccgdm->edgeFlags[i]: NULL; if(edgeFlag) flags |= (*edgeFlag & (ME_SEAM | ME_SHARP)) | ME_EDGEDRAW | ME_EDGERENDER; @@ -1147,7 +745,7 @@ static void ccgDM_getFinalFace(DerivedMesh *dm, int faceNum, MFace *mf) int grid; int x, y; int lastface = ccgSubSurf_getNumFaces(ss) - 1; - char *faceFlags = dm->getFaceDataArray(dm, CD_FLAGS); + char *faceFlags = ccgdm->faceFlags; memset(mf, 0, sizeof(*mf)); @@ -1169,7 +767,7 @@ static void ccgDM_getFinalFace(DerivedMesh *dm, int faceNum, MFace *mf) mf->v3 = getFaceIndex(ss, f, grid, x+1, y+1, edgeSize, gridSize); mf->v4 = getFaceIndex(ss, f, grid, x+1, y+0, edgeSize, gridSize); - if(faceFlags) mf->flag = faceFlags[i*4]; + if(faceFlags) mf->flag = faceFlags[i*2]; else mf->flag = ME_SMOOTH; } @@ -1177,6 +775,7 @@ static void ccgDM_copyFinalVertArray(DerivedMesh *dm, MVert *mvert) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; CCGSubSurf *ss = ccgdm->ss; + DMGridData *vd; int index; int totvert, totedge, totface; int gridSize = ccgSubSurf_getGridSize(ss); @@ -1188,20 +787,25 @@ static void ccgDM_copyFinalVertArray(DerivedMesh *dm, MVert *mvert) CCGFace *f = ccgdm->faceMap[index].face; int x, y, S, numVerts = ccgSubSurf_getFaceNumVerts(f); - copy_v3_v3(mvert[i++].co, ccgSubSurf_getFaceCenterData(f)); + vd= ccgSubSurf_getFaceCenterData(f); + copy_v3_v3(mvert[i].co, vd->co); + normal_float_to_short_v3(mvert[i].no, vd->no); + i++; for(S = 0; S < numVerts; S++) { - for(x = 1; x < gridSize - 1; x++) { - copy_v3_v3(mvert[i++].co, - ccgSubSurf_getFaceGridEdgeData(ss, f, S, x)); + for(x = 1; x < gridSize - 1; x++, i++) { + vd= ccgSubSurf_getFaceGridEdgeData(ss, f, S, x); + copy_v3_v3(mvert[i].co, vd->co); + normal_float_to_short_v3(mvert[i].no, vd->no); } } for(S = 0; S < numVerts; S++) { for(y = 1; y < gridSize - 1; y++) { - for(x = 1; x < gridSize - 1; x++) { - copy_v3_v3(mvert[i++].co, - ccgSubSurf_getFaceGridData(ss, f, S, x, y)); + for(x = 1; x < gridSize - 1; x++, i++) { + vd= ccgSubSurf_getFaceGridData(ss, f, S, x, y); + copy_v3_v3(mvert[i].co, vd->co); + normal_float_to_short_v3(mvert[i].no, vd->no); } } } @@ -1212,8 +816,10 @@ static void ccgDM_copyFinalVertArray(DerivedMesh *dm, MVert *mvert) CCGEdge *e = ccgdm->edgeMap[index].edge; int x; - for(x = 1; x < edgeSize - 1; x++) { - copy_v3_v3(mvert[i++].co, ccgSubSurf_getEdgeData(ss, e, x)); + for(x = 1; x < edgeSize - 1; x++, i++) { + vd= ccgSubSurf_getEdgeData(ss, e, x); + copy_v3_v3(mvert[i].co, vd->co); + normal_float_to_short_v3(mvert[i].no, vd->no); } } @@ -1221,8 +827,9 @@ static void ccgDM_copyFinalVertArray(DerivedMesh *dm, MVert *mvert) for(index = 0; index < totvert; index++) { CCGVert *v = ccgdm->vertMap[index].vert; - copy_v3_v3(mvert[i].co, ccgSubSurf_getVertData(ss, v)); - + vd= ccgSubSurf_getVertData(ss, v); + copy_v3_v3(mvert[i].co, vd->co); + normal_float_to_short_v3(mvert[i].no, vd->no); i++; } } @@ -1236,7 +843,7 @@ static void ccgDM_copyFinalEdgeArray(DerivedMesh *dm, MEdge *medge) int gridSize = ccgSubSurf_getGridSize(ss); int edgeSize = ccgSubSurf_getEdgeSize(ss); int i = 0; - int *edgeFlags = dm->getEdgeDataArray(dm, CD_FLAGS); + short *edgeFlags = ccgdm->edgeFlags; totface = ccgSubSurf_getNumFaces(ss); for(index = 0; index < totface; index++) { @@ -1291,7 +898,7 @@ static void ccgDM_copyFinalEdgeArray(DerivedMesh *dm, MEdge *medge) if(edgeFlags) { if(edgeIdx != -1) { - flags |= (edgeFlags[i] & (ME_SEAM | ME_SHARP)) + flags |= (edgeFlags[index] & (ME_SEAM | ME_SHARP)) | ME_EDGEDRAW | ME_EDGERENDER; } } else { @@ -1317,7 +924,7 @@ static void ccgDM_copyFinalFaceArray(DerivedMesh *dm, MFace *mface) int gridSize = ccgSubSurf_getGridSize(ss); int edgeSize = ccgSubSurf_getEdgeSize(ss); int i = 0; - char *faceFlags = dm->getFaceDataArray(dm, CD_FLAGS); + char *faceFlags = ccgdm->faceFlags; totface = ccgSubSurf_getNumFaces(ss); for(index = 0; index < totface; index++) { @@ -1339,7 +946,7 @@ static void ccgDM_copyFinalFaceArray(DerivedMesh *dm, MFace *mface) mf->v4 = getFaceIndex(ss, f, S, x + 1, y + 0, edgeSize, gridSize); mf->mat_nr = mat_nr; - if(faceFlags) mf->flag = faceFlags[index*4]; + if(faceFlags) mf->flag = faceFlags[index*2]; else mf->flag = flag; i++; @@ -1438,7 +1045,7 @@ static void ccgDM_foreachMappedVert(DerivedMesh *dm, void (*func)(void *userData for (; !ccgVertIterator_isStopped(vi); ccgVertIterator_next(vi)) { CCGVert *v = ccgVertIterator_getCurrent(vi); - VertData *vd = ccgSubSurf_getVertData(ccgdm->ss, v); + DMGridData *vd = ccgSubSurf_getVertData(ccgdm->ss, v); int index = ccgDM_getVertMapIndex(ccgdm->ss, v); if (index!=-1) @@ -1455,7 +1062,7 @@ static void ccgDM_foreachMappedEdge(DerivedMesh *dm, void (*func)(void *userData for (; !ccgEdgeIterator_isStopped(ei); ccgEdgeIterator_next(ei)) { CCGEdge *e = ccgEdgeIterator_getCurrent(ei); - VertData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); + DMGridData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); int index = ccgDM_getEdgeMapIndex(ss, e); if (index!=-1) { @@ -1524,7 +1131,7 @@ static void ccgDM_drawEdges(DerivedMesh *dm, int drawLooseEdges) { for (; !ccgEdgeIterator_isStopped(ei); ccgEdgeIterator_next(ei)) { CCGEdge *e = ccgEdgeIterator_getCurrent(ei); - VertData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); + DMGridData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); if (!drawLooseEdges && !ccgSubSurf_getEdgeNumFaces(e)) continue; @@ -1552,7 +1159,7 @@ static void ccgDM_drawEdges(DerivedMesh *dm, int drawLooseEdges) { int S, x, y, numVerts = ccgSubSurf_getFaceNumVerts(f); for (S=0; Sss; - CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss); + CCGFaceIterator *fi; int gridSize = ccgSubSurf_getGridSize(ss); - char *faceFlags = DM_get_face_data_layer(dm, CD_FLAGS); + char *faceFlags = ccgdm->faceFlags; + int step = 1; //(fast)? gridSize-1: 1; +#if 0 + if(ccgdm->pbvh && ccgdm->multires.mmd && !fast) { + CCGFace **faces; + int totface; + + BLI_pbvh_get_grid_updates(ccgdm->pbvh, (void***)&faces, &totface); + if(totface) { + ccgSubSurf_updateFromFaces(ss, 0, faces, totface); + ccgSubSurf_updateNormals(ss, faces, totface); + MEM_freeN(faces); + } + + /* should be per face */ + if(faceFlags && faceFlags[0] & ME_SMOOTH) + glShadeModel(GL_SMOOTH); + + BLI_pbvh_draw(ccgdm->pbvh, partial_redraw_planes, NULL); + + glShadeModel(GL_FLAT); + + return; + } +#endif + + fi = ccgSubSurf_getFaceIterator(ss); for (; !ccgFaceIterator_isStopped(fi); ccgFaceIterator_next(fi)) { CCGFace *f = ccgFaceIterator_getCurrent(fi); int S, x, y, numVerts = ccgSubSurf_getFaceNumVerts(f); @@ -1629,8 +1262,8 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes) int drawSmooth, mat_nr; if(faceFlags) { - drawSmooth = (faceFlags[index*4] & ME_SMOOTH); - mat_nr= faceFlags[index*4 + 1]; + drawSmooth = (faceFlags[index*2] & ME_SMOOTH); + mat_nr= faceFlags[index*2 + 1]; } else { drawSmooth = 1; @@ -1642,14 +1275,14 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes) glShadeModel(drawSmooth? GL_SMOOTH: GL_FLAT); for (S=0; Sno); glVertex3fv(a->co); @@ -1660,12 +1293,12 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes) } } else { glBegin(GL_QUADS); - for (y=0; yfaceFlags; int a, b, i, doDraw, numVerts, matnr, new_matnr, totface; doDraw = 0; @@ -1737,8 +1370,8 @@ static void ccgDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, v numVerts = ccgSubSurf_getFaceNumVerts(f); if(faceFlags) { - drawSmooth = (faceFlags[index*4] & ME_SMOOTH); - new_matnr= faceFlags[index*4 + 1] + 1; + drawSmooth = (faceFlags[index*2] & ME_SMOOTH); + new_matnr= faceFlags[index*2 + 1] + 1; } else { drawSmooth = 1; @@ -1770,8 +1403,8 @@ static void ccgDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, v glShadeModel(drawSmooth? GL_SMOOTH: GL_FLAT); for (S=0; Sss; MCol *mcol = DM_get_face_data_layer(dm, CD_MCOL); MTFace *tf = DM_get_face_data_layer(dm, CD_MTFACE); - char *faceFlags = DM_get_face_data_layer(dm, CD_FLAGS); + char *faceFlags = ccgdm->faceFlags; int i, totface, flag, gridSize = ccgSubSurf_getGridSize(ss); int gridFaces = gridSize - 1; @@ -1932,8 +1565,8 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm, int mat_nr; if(faceFlags) { - drawSmooth = (faceFlags[origIndex*4] & ME_SMOOTH); - mat_nr= faceFlags[origIndex*4 + 1]; + drawSmooth = (faceFlags[origIndex*2] & ME_SMOOTH); + mat_nr= faceFlags[origIndex*2 + 1]; } else { drawSmooth = 1; @@ -1958,8 +1591,8 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm, } for (S=0; Sss; CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss); int i, gridSize = ccgSubSurf_getGridSize(ss); - char *faceFlags = dm->getFaceDataArray(dm, CD_FLAGS); + char *faceFlags = ccgdm->faceFlags; for (i=0; !ccgFaceIterator_isStopped(fi); i++,ccgFaceIterator_next(fi)) { CCGFace *f = ccgFaceIterator_getCurrent(fi); @@ -2099,7 +1732,7 @@ static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *u origIndex = GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f)); - if(faceFlags) drawSmooth = (faceFlags[origIndex*4] & ME_SMOOTH); + if(faceFlags) drawSmooth = (faceFlags[origIndex*2] & ME_SMOOTH); else drawSmooth = 1; if (index!=-1) { @@ -2113,14 +1746,14 @@ static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *u } for (S=0; Sno); glVertex3fv(a->co); @@ -2174,7 +1807,7 @@ static void ccgDM_drawMappedEdges(DerivedMesh *dm, int (*setDrawOptions)(void *u for (; !ccgEdgeIterator_isStopped(ei); ccgEdgeIterator_next(ei)) { CCGEdge *e = ccgEdgeIterator_getCurrent(ei); - VertData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); + DMGridData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); int index = ccgDM_getEdgeMapIndex(ss, e); glBegin(GL_LINE_STRIP); @@ -2204,7 +1837,7 @@ static void ccgDM_drawMappedEdgesInterp(DerivedMesh *dm, int (*setDrawOptions)(v for (; !ccgEdgeIterator_isStopped(ei); ccgEdgeIterator_next(ei)) { CCGEdge *e = ccgEdgeIterator_getCurrent(ei); - VertData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); + DMGridData *edgeData = ccgSubSurf_getEdgeDataArray(ss, e); int index = ccgDM_getEdgeMapIndex(ss, e); glBegin(GL_LINE_STRIP); @@ -2236,7 +1869,7 @@ static void ccgDM_foreachMappedFaceCenter(DerivedMesh *dm, void (*func)(void *us if (index!=-1) { /* Face center data normal isn't updated atm. */ - VertData *vd = ccgSubSurf_getFaceGridData(ss, f, 0, 0, 0); + DMGridData *vd = ccgSubSurf_getFaceGridData(ss, f, 0, 0, 0); func(userData, index, vd->co, vd->no); } @@ -2249,6 +1882,22 @@ static void ccgDM_release(DerivedMesh *dm) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; if (DM_release(dm)) { + /* Before freeing, need to update the displacement map */ + if(ccgdm->multires.modified) { + /* Check that mmd still exists */ + if(!ccgdm->multires.local_mmd && BLI_findindex(&ccgdm->multires.ob->modifiers, ccgdm->multires.mmd) < 0) + ccgdm->multires.mmd = NULL; + if(ccgdm->multires.mmd) + ccgdm->multires.update(dm); + } + + if(ccgdm->pbvh) BLI_pbvh_free(ccgdm->pbvh); + if(ccgdm->gridFaces) MEM_freeN(ccgdm->gridFaces); + if(ccgdm->gridData) MEM_freeN(ccgdm->gridData); + if(ccgdm->gridAdjacency) MEM_freeN(ccgdm->gridAdjacency); + if(ccgdm->freeSS) ccgSubSurf_free(ccgdm->ss); + MEM_freeN(ccgdm->edgeFlags); + MEM_freeN(ccgdm->faceFlags); MEM_freeN(ccgdm->vertMap); MEM_freeN(ccgdm->edgeMap); MEM_freeN(ccgdm->faceMap); @@ -2256,6 +1905,262 @@ static void ccgDM_release(DerivedMesh *dm) { } } +static void *ccgDM_get_vert_data_layer(DerivedMesh *dm, int type) +{ + if(type == CD_ORIGINDEX) { + /* create origindex on demand to save memory */ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + CCGSubSurf *ss= ccgdm->ss; + int *origindex; + int a, index, totnone, totorig; + + DM_add_vert_layer(dm, CD_ORIGINDEX, CD_CALLOC, NULL); + origindex= DM_get_vert_data_layer(dm, CD_ORIGINDEX); + + totorig = ccgSubSurf_getNumVerts(ss); + totnone= dm->numVertData - totorig; + + /* original vertices are at the end */ + for(a=0; avertMap[index].vert; + origindex[a] = ccgDM_getVertMapIndex(ccgdm->ss, v); + } + + return origindex; + } + + return DM_get_vert_data_layer(dm, type); +} + +static void *ccgDM_get_edge_data_layer(DerivedMesh *dm, int type) +{ + if(type == CD_ORIGINDEX) { + /* create origindex on demand to save memory */ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + CCGSubSurf *ss= ccgdm->ss; + int *origindex; + int a, i, index, totnone, totorig, totedge; + int edgeSize= ccgSubSurf_getEdgeSize(ss); + + DM_add_edge_layer(dm, CD_ORIGINDEX, CD_CALLOC, NULL); + origindex= DM_get_edge_data_layer(dm, CD_ORIGINDEX); + + totedge= ccgSubSurf_getNumEdges(ss); + totorig= totedge*(edgeSize - 1); + totnone= dm->numEdgeData - totorig; + + /* original edges are at the end */ + for(a=0; aedgeMap[index].edge; + int mapIndex= ccgDM_getEdgeMapIndex(ss, e); + + for(i = 0; i < edgeSize - 1; i++, a++) + origindex[a]= mapIndex; + } + + return origindex; + } + + return DM_get_edge_data_layer(dm, type); +} + +static void *ccgDM_get_face_data_layer(DerivedMesh *dm, int type) +{ + if(type == CD_ORIGINDEX) { + /* create origindex on demand to save memory */ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + CCGSubSurf *ss= ccgdm->ss; + int *origindex; + int a, i, index, totface; + int gridFaces = ccgSubSurf_getGridSize(ss) - 1; + + DM_add_face_layer(dm, CD_ORIGINDEX, CD_CALLOC, NULL); + origindex= DM_get_face_data_layer(dm, CD_ORIGINDEX); + + totface= ccgSubSurf_getNumFaces(ss); + + for(a=0, index=0; indexfaceMap[index].face; + int numVerts = ccgSubSurf_getFaceNumVerts(f); + int mapIndex = ccgDM_getFaceMapIndex(ss, f); + + for(i=0; iss); + numGrids= 0; + + for(index=0; indexfaceMap[index].face; + numGrids += ccgSubSurf_getFaceNumVerts(f); + } + + return numGrids; +} + +static int ccgDM_getGridSize(DerivedMesh *dm) +{ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + return ccgSubSurf_getGridSize(ccgdm->ss); +} + +static int ccgdm_adjacent_grid(CCGSubSurf *ss, int *gridOffset, CCGFace *f, int S, int offset) +{ + CCGFace *adjf; + CCGEdge *e; + int i, j= 0, numFaces, fIndex, numEdges= 0; + + e = ccgSubSurf_getFaceEdge(ss, f, S); + numFaces = ccgSubSurf_getEdgeNumFaces(e); + + if(numFaces != 2) + return -1; + + for(i = 0; i < numFaces; i++) { + adjf = ccgSubSurf_getEdgeFace(e, i); + + if(adjf != f) { + numEdges = ccgSubSurf_getFaceNumVerts(adjf); + for(j = 0; j < numEdges; j++) + if(ccgSubSurf_getFaceEdge(ss, adjf, j) == e) + break; + + if(j != numEdges) + break; + } + } + + fIndex = GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, adjf)); + + return gridOffset[fIndex] + (j + offset)%numEdges; +} + +static void ccgdm_create_grids(DerivedMesh *dm) +{ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + CCGSubSurf *ss= ccgdm->ss; + DMGridData **gridData; + DMGridAdjacency *gridAdjacency, *adj; + CCGFace **gridFaces; + int *gridOffset; + int index, numFaces, numGrids, S, gIndex, gridSize; + + if(ccgdm->gridData) + return; + + numGrids = ccgDM_getNumGrids(dm); + numFaces = ccgSubSurf_getNumFaces(ss); + gridSize = ccgDM_getGridSize(dm); + + /* compute offset into grid array for each face */ + gridOffset = MEM_mallocN(sizeof(int)*numFaces, "ccgdm.gridOffset"); + + for(gIndex = 0, index = 0; index < numFaces; index++) { + CCGFace *f = ccgdm->faceMap[index].face; + int numVerts = ccgSubSurf_getFaceNumVerts(f); + + gridOffset[index] = gIndex; + gIndex += numVerts; + } + + /* compute grid data */ + gridData = MEM_mallocN(sizeof(DMGridData*)*numGrids, "ccgdm.gridData"); + gridAdjacency = MEM_mallocN(sizeof(DMGridAdjacency)*numGrids, "ccgdm.gridAdjacency"); + gridFaces = MEM_mallocN(sizeof(CCGFace*)*numGrids, "ccgdm.gridFaces"); + + for(gIndex = 0, index = 0; index < numFaces; index++) { + CCGFace *f = ccgdm->faceMap[index].face; + int numVerts = ccgSubSurf_getFaceNumVerts(f); + + for(S = 0; S < numVerts; S++, gIndex++) { + int prevS = (S - 1 + numVerts) % numVerts; + int nextS = (S + 1 + numVerts) % numVerts; + + gridData[gIndex] = ccgSubSurf_getFaceGridDataArray(ss, f, S); + gridFaces[gIndex] = f; + + adj = &gridAdjacency[gIndex]; + + adj->index[0] = gIndex - S + nextS; + adj->rotation[0] = 3; + adj->index[1] = ccgdm_adjacent_grid(ss, gridOffset, f, prevS, 0); + adj->rotation[1] = 1; + adj->index[2] = ccgdm_adjacent_grid(ss, gridOffset, f, S, 1); + adj->rotation[2] = 3; + adj->index[3] = gIndex - S + prevS; + adj->rotation[3] = 1; + } + } + + ccgdm->gridData = gridData; + ccgdm->gridFaces = gridFaces; + ccgdm->gridAdjacency = gridAdjacency; + MEM_freeN(gridOffset); +} + +static DMGridData **ccgDM_getGridData(DerivedMesh *dm) +{ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + + ccgdm_create_grids(dm); + return ccgdm->gridData; +} + +static DMGridAdjacency *ccgDM_getGridAdjacency(DerivedMesh *dm) +{ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + + ccgdm_create_grids(dm); + return ccgdm->gridAdjacency; +} + +static struct PBVH *ccgDM_getPBVH(Object *ob, DerivedMesh *dm) +{ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + //int gridSize, numGrids; + + if(ccgdm->pbvh) + return ccgdm->pbvh; + + /*if(ccgdm->multires.mmd) { + ccgdm_create_grids(dm); + + gridSize = ccgDM_getGridSize(dm); + numGrids = ccgDM_getNumGrids(dm); + + ccgdm->pbvh = BLI_pbvh_new(); + BLI_pbvh_build_grids(ccgdm->pbvh, ccgdm->gridData, numGrids, gridSize, + (void**)ccgdm->gridFaces); + } + else*/ if(ob->type == OB_MESH) { + Mesh *me= ob->data; + + ccgdm->pbvh = BLI_pbvh_new(); + BLI_pbvh_build(ccgdm->pbvh, me->mface, me->mvert, + me->totface, me->totvert); + } + + return ccgdm->pbvh; +} + static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, int drawInteriorEdges, int useSubsurfUv, @@ -2268,17 +2173,14 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, int index, totvert, totedge, totface; int i; int vertNum, edgeNum, faceNum; - int *vertOrigIndex, *faceOrigIndex; /* *edgeOrigIndex - as yet, unused */ - int *edgeFlags; + short *edgeFlags; char *faceFlags; int edgeSize; int gridSize; int gridFaces; int gridSideVerts; - /*int gridInternalVerts; - as yet unused */ int gridSideEdges; int gridInternalEdges; - /* MVert *mvert = NULL; - as yet unused */ MEdge *medge = NULL; MFace *mface = NULL; FaceVertWeight *qweight, *tweight; @@ -2286,11 +2188,6 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, DM_from_template(&ccgdm->dm, dm, ccgSubSurf_getNumFinalVerts(ss), ccgSubSurf_getNumFinalEdges(ss), ccgSubSurf_getNumFinalFaces(ss)); - DM_add_face_layer(&ccgdm->dm, CD_FLAGS, CD_CALLOC, NULL); - DM_add_edge_layer(&ccgdm->dm, CD_FLAGS, CD_CALLOC, NULL); - - CustomData_set_layer_flag(&ccgdm->dm.faceData, CD_FLAGS, CD_FLAG_NOCOPY); - CustomData_set_layer_flag(&ccgdm->dm.edgeData, CD_FLAGS, CD_FLAG_NOCOPY); ccgdm->dm.getMinMax = ccgDM_getMinMax; ccgdm->dm.getNumVerts = ccgDM_getNumVerts; @@ -2306,9 +2203,14 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, ccgdm->dm.getVertData = DM_get_vert_data; ccgdm->dm.getEdgeData = DM_get_edge_data; ccgdm->dm.getFaceData = DM_get_face_data; - ccgdm->dm.getVertDataArray = DM_get_vert_data_layer; - ccgdm->dm.getEdgeDataArray = DM_get_edge_data_layer; - ccgdm->dm.getFaceDataArray = DM_get_face_data_layer; + ccgdm->dm.getVertDataArray = ccgDM_get_vert_data_layer; + ccgdm->dm.getEdgeDataArray = ccgDM_get_edge_data_layer; + ccgdm->dm.getFaceDataArray = ccgDM_get_face_data_layer; + ccgdm->dm.getNumGrids = ccgDM_getNumGrids; + ccgdm->dm.getGridSize = ccgDM_getGridSize; + ccgdm->dm.getGridData = ccgDM_getGridData; + ccgdm->dm.getGridAdjacency = ccgDM_getGridAdjacency; + ccgdm->dm.getPBVH = ccgDM_getPBVH; ccgdm->dm.getVertCos = ccgdm_getVertCos; ccgdm->dm.foreachMappedVert = ccgDM_foreachMappedVert; @@ -2383,17 +2285,12 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, medge = dm->getEdgeArray(dm); mface = dm->getFaceArray(dm); - vertOrigIndex = DM_get_vert_data_layer(&ccgdm->dm, CD_ORIGINDEX); - /*edgeOrigIndex = DM_get_edge_data_layer(&ccgdm->dm, CD_ORIGINDEX);*/ - faceOrigIndex = DM_get_face_data_layer(&ccgdm->dm, CD_ORIGINDEX); - - faceFlags = DM_get_face_data_layer(&ccgdm->dm, CD_FLAGS); + faceFlags = ccgdm->faceFlags = MEM_callocN(sizeof(char)*2*totface, "faceFlags"); for(index = 0; index < totface; ++index) { CCGFace *f = ccgdm->faceMap[index].face; int numVerts = ccgSubSurf_getFaceNumVerts(f); int numFinalEdges = numVerts * (gridSideEdges + gridInternalEdges); - int mapIndex = ccgDM_getFaceMapIndex(ss, f); int origIndex = GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f)); FaceVertWeight *weight = (numVerts == 4) ? qweight : tweight; int S, x, y; @@ -2414,8 +2311,6 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, DM_interp_vert_data(dm, &ccgdm->dm, vertIdx, weight[0][0], numVerts, vertNum); - *vertOrigIndex = ORIGINDEX_NONE; - ++vertOrigIndex; ++vertNum; for(S = 0; S < numVerts; S++) { @@ -2430,8 +2325,6 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, w[otherS] = weight[x][0][3]; DM_interp_vert_data(dm, &ccgdm->dm, vertIdx, w, numVerts, vertNum); - *vertOrigIndex = ORIGINDEX_NONE; - ++vertOrigIndex; ++vertNum; } } @@ -2449,17 +2342,11 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, w[otherS] = weight[y * gridFaces + x][0][3]; DM_interp_vert_data(dm, &ccgdm->dm, vertIdx, w, numVerts, vertNum); - *vertOrigIndex = ORIGINDEX_NONE; - ++vertOrigIndex; ++vertNum; } } } - for(i = 0; i < numFinalEdges; ++i) - *(int *)DM_get_edge_data(&ccgdm->dm, edgeNum + i, - CD_ORIGINDEX) = ORIGINDEX_NONE; - for(S = 0; S < numVerts; S++) { int prevS = (S - 1 + numVerts) % numVerts; int nextS = (S + 1) % numVerts; @@ -2483,16 +2370,13 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, &w, 1, faceNum); weight++; - *faceOrigIndex = mapIndex; - - ++faceOrigIndex; ++faceNum; } } } - faceFlags[index*4] = mface[origIndex].flag; - faceFlags[index*4 + 1] = mface[origIndex].mat_nr; + faceFlags[index*2] = mface[origIndex].flag; + faceFlags[index*2 + 1] = mface[origIndex].mat_nr; edgeNum += numFinalEdges; } @@ -2507,12 +2391,11 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, set_subsurf_uv(ss, dm, &ccgdm->dm, i); } - edgeFlags = DM_get_edge_data_layer(&ccgdm->dm, CD_FLAGS); + edgeFlags = ccgdm->edgeFlags = MEM_callocN(sizeof(short)*totedge, "edgeFlags"); for(index = 0; index < totedge; ++index) { CCGEdge *e = ccgdm->edgeMap[index].edge; int numFinalEdges = edgeSize - 1; - int mapIndex = ccgDM_getEdgeMapIndex(ss, e); int x; int vertIdx[2]; int edgeIdx = GET_INT_FROM_POINTER(ccgSubSurf_getEdgeEdgeHandle(e)); @@ -2534,25 +2417,16 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, w[1] = (float) x / (edgeSize - 1); w[0] = 1 - w[1]; DM_interp_vert_data(dm, &ccgdm->dm, vertIdx, w, 2, vertNum); - *vertOrigIndex = ORIGINDEX_NONE; - ++vertOrigIndex; ++vertNum; } - for(i = 0; i < numFinalEdges; ++i) { - if(edgeIdx >= 0 && edgeFlags) - edgeFlags[edgeNum + i] = medge[edgeIdx].flag; - - *(int *)DM_get_edge_data(&ccgdm->dm, edgeNum + i, - CD_ORIGINDEX) = mapIndex; - } + edgeFlags[index]= medge[edgeIdx].flag; edgeNum += numFinalEdges; } for(index = 0; index < totvert; ++index) { CCGVert *v = ccgdm->vertMap[index].vert; - int mapIndex = ccgDM_getVertMapIndex(ccgdm->ss, v); int vertIdx; vertIdx = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v)); @@ -2564,8 +2438,6 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, DM_copy_vert_data(dm, &ccgdm->dm, vertIdx, vertNum, 1); - *vertOrigIndex = mapIndex; - ++vertOrigIndex; ++vertNum; } @@ -2577,10 +2449,9 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, /***/ -struct DerivedMesh *subsurf_make_derived_from_derived_with_multires( +struct DerivedMesh *subsurf_make_derived_from_derived( struct DerivedMesh *dm, struct SubsurfModifierData *smd, - struct MultiresSubsurf *ms, int useRenderParams, float (*vertCos)[3], int isFinalCalc, int editMode) { @@ -2588,16 +2459,16 @@ struct DerivedMesh *subsurf_make_derived_from_derived_with_multires( int useAging = smd->flags & eSubsurfModifierFlag_DebugIncr; int useSubsurfUv = smd->flags & eSubsurfModifierFlag_SubsurfUv; int drawInteriorEdges = !(smd->flags & eSubsurfModifierFlag_ControlEdges); - DerivedMesh *result; + CCGDerivedMesh *result; if(editMode) { smd->emCache = _getSubSurf(smd->emCache, smd->levels, useAging, 0, useSimple); ss_sync_from_derivedmesh(smd->emCache, dm, vertCos, useSimple); - return (DerivedMesh *)getCCGDerivedMesh(smd->emCache, - drawInteriorEdges, - useSubsurfUv, dm); + result = getCCGDerivedMesh(smd->emCache, + drawInteriorEdges, + useSubsurfUv, dm); } else if(useRenderParams) { /* Do not use cache in render mode. */ CCGSubSurf *ss; @@ -2611,12 +2482,10 @@ struct DerivedMesh *subsurf_make_derived_from_derived_with_multires( ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple); - result = ss_to_cdderivedmesh(ss, 0, drawInteriorEdges, - useSubsurfUv, dm, ms); + result = getCCGDerivedMesh(ss, + drawInteriorEdges, useSubsurfUv, dm); - ccgSubSurf_free(ss); - - return result; + result->freeSS = 1; } else { int useIncremental = (smd->flags & eSubsurfModifierFlag_Incremental); int useAging = smd->flags & eSubsurfModifierFlag_DebugIncr; @@ -2641,13 +2510,9 @@ struct DerivedMesh *subsurf_make_derived_from_derived_with_multires( ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple); - - return ss_to_cdderivedmesh(ss, 0, drawInteriorEdges, - useSubsurfUv, dm, ms); - - /*return (DerivedMesh *)getCCGDerivedMesh(smd->mCache, - drawInteriorEdges, - useSubsurfUv, dm);*/ + result = getCCGDerivedMesh(smd->mCache, + drawInteriorEdges, + useSubsurfUv, dm); } else { if (smd->mCache && isFinalCalc) { ccgSubSurf_free(smd->mCache); @@ -2657,28 +2522,16 @@ struct DerivedMesh *subsurf_make_derived_from_derived_with_multires( ss = _getSubSurf(NULL, smd->levels, 0, 1, useSimple); ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple); - /*smd->mCache = ss; - result = (DerivedMesh *)getCCGDerivedMesh(smd->mCache, - drawInteriorEdges, - useSubsurfUv, dm);*/ - - result = ss_to_cdderivedmesh(ss, 0, drawInteriorEdges, - useSubsurfUv, dm, ms); + result = getCCGDerivedMesh(ss, drawInteriorEdges, useSubsurfUv, dm); - ccgSubSurf_free(ss); - - return result; + if(isFinalCalc) + smd->mCache = ss; + else + result->freeSS = 1; } } -} -struct DerivedMesh *subsurf_make_derived_from_derived( - struct DerivedMesh *dm, - struct SubsurfModifierData *smd, - int useRenderParams, float (*vertCos)[3], - int isFinalCalc, int editMode) -{ - return subsurf_make_derived_from_derived_with_multires(dm, smd, NULL, useRenderParams, vertCos, isFinalCalc, editMode); + return (DerivedMesh*)result; } void subsurf_calculate_limit_positions(Mesh *me, float (*positions_r)[3]) diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index 5d94fb32438..cda15c606ed 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -99,15 +99,17 @@ void object_facesel_flush_dm(Object *ob) int totface; int i; - - if(me==NULL || dm==NULL || !CustomData_has_layer( &dm->faceData, CD_ORIGINDEX)) + if(me==NULL || dm==NULL) + return; + + index_array = dm->getFaceDataArray(dm, CD_ORIGINDEX); + + if(!index_array) return; faces = dm->getFaceArray(dm); totface = dm->getNumFaces(dm); - index_array = dm->getFaceDataArray(dm, CD_ORIGINDEX); - mf= faces; for (i= 0; iob = ob; - ss->tree = dm->getPBVH(dm); + ss->tree = dm->getPBVH(ob, dm); ss->fmap = (need_fmap)? dm->getFaceMap(dm): NULL; } -- cgit v1.2.3 From 134935a8db7fe6137bb8a508771757beeb68b2b3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Nov 2009 13:40:43 +0000 Subject: Sculpt: Grid based PBVH * PBVH can now be created contain both from face grids or standard meshes. The former is much quicker to build for high res meshes. * Moved some drawing code into pbvh (mostly for the frustum test). * Moved ray intersection code into pbvh. * GPU buffers also can be built from either mesh or grids now. * Updated sculpt code to work with this. The ugly part is that there is now a macro for iterating over vertices, to handle both cases, and some duplicated code for e.g. undo. * Smooth brush does not work yet with grids. --- source/blender/blenkernel/intern/cdderivedmesh.c | 73 +-- source/blender/blenkernel/intern/subsurf_ccg.c | 13 +- source/blender/blenlib/BLI_pbvh.h | 110 +++- source/blender/blenlib/intern/pbvh.c | 487 ++++++++++++++--- source/blender/editors/sculpt_paint/sculpt.c | 643 ++++++++++++----------- source/blender/gpu/gpu_buffers.h | 10 +- source/blender/gpu/intern/gpu_buffers.c | 134 ++++- 7 files changed, 969 insertions(+), 501 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index e64d8a24934..3007564e333 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -197,7 +197,7 @@ static struct PBVH *cdDM_getPBVH(Object *ob, DerivedMesh *dm) Mesh *me= ob->data; cddm->pbvh = BLI_pbvh_new(); - BLI_pbvh_build(cddm->pbvh, me->mface, me->mvert, + BLI_pbvh_build_mesh(cddm->pbvh, me->mface, me->mvert, me->totface, me->totvert); } @@ -393,60 +393,6 @@ static void cdDM_drawLooseEdges(DerivedMesh *dm) } } -static int nodes_drawn = 0; -static int is_partial = 0; -/* XXX: Just a temporary replacement for the real drawing code */ -static void draw_partial_cb(PBVHNode *node, void *data) -{ - /* XXX: Just some quick code to show leaf nodes in different colors */ - /*float col[3]; int i; - if(is_partial) { - col[0] = (rand() / (float)RAND_MAX); col[1] = col[2] = 0.6; - } - else { - srand((long long)data_v); - for(i = 0; i < 3; ++i) - col[i] = (rand() / (float)RAND_MAX) * 0.3 + 0.7; - } - glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col); - - glColor3f(1, 0, 0);*/ - GPU_draw_buffers(BLI_pbvh_node_get_draw_buffers(node)); - ++nodes_drawn; -} - -/* Adapted from: - http://www.gamedev.net/community/forums/topic.asp?topic_id=512123 - Returns true if the AABB is at least partially within the frustum - (ok, not a real frustum), false otherwise. -*/ -int planes_contain_AABB(PBVHNode *node, void *data) -{ - float (*planes)[4] = data; - int i, axis; - float vmin[3], vmax[3], bb_min[3], bb_max[3]; - - BLI_pbvh_node_get_BB(node, bb_min, bb_max); - - for(i = 0; i < 4; ++i) { - for(axis = 0; axis < 3; ++axis) { - if(planes[i][axis] > 0) { - vmin[axis] = bb_min[axis]; - vmax[axis] = bb_max[axis]; - } - else { - vmin[axis] = bb_max[axis]; - vmax[axis] = bb_min[axis]; - } - } - - if(dot_v3v3(planes[i], vmin) + planes[i][3] > 0) - return 0; - } - - return 1; -} - static void cdDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes)[4], int (*setMaterial)(int, void *attribs)) @@ -468,26 +414,11 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, if(cddm->pbvh) { float (*face_nors)[3] = CustomData_get_layer(&dm->faceData, CD_NORMAL); - BLI_pbvh_update(cddm->pbvh, PBVH_UpdateNormals|PBVH_UpdateDrawBuffers, - face_nors); - /* should be per face */ if(dm->numFaceData && mface->flag & ME_SMOOTH) glShadeModel(GL_SMOOTH); - if(partial_redraw_planes) { - BLI_pbvh_search_callback(cddm->pbvh, planes_contain_AABB, - partial_redraw_planes, draw_partial_cb, NULL); - } - else { - BLI_pbvh_search_callback(cddm->pbvh, NULL, NULL, - draw_partial_cb, NULL); - } - - is_partial = !!partial_redraw_planes; - - //printf("nodes drawn=%d\n", nodes_drawn); - nodes_drawn = 0; + BLI_pbvh_draw(cddm->pbvh, partial_redraw_planes, face_nors); glShadeModel(GL_FLAT); diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index e465d17f498..30766931a0b 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -819,6 +819,7 @@ static void ccgDM_copyFinalVertArray(DerivedMesh *dm, MVert *mvert) for(x = 1; x < edgeSize - 1; x++, i++) { vd= ccgSubSurf_getEdgeData(ss, e, x); copy_v3_v3(mvert[i].co, vd->co); + /* TODO CCGSubsurf does not set these */ normal_float_to_short_v3(mvert[i].no, vd->no); } } @@ -1230,8 +1231,7 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes) char *faceFlags = ccgdm->faceFlags; int step = 1; //(fast)? gridSize-1: 1; -#if 0 - if(ccgdm->pbvh && ccgdm->multires.mmd && !fast) { + if(ccgdm->pbvh && ccgdm->multires.mmd) { // && !fast) { CCGFace **faces; int totface; @@ -1252,7 +1252,6 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes) return; } -#endif fi = ccgSubSurf_getFaceIterator(ss); for (; !ccgFaceIterator_isStopped(fi); ccgFaceIterator_next(fi)) { @@ -2135,12 +2134,12 @@ static DMGridAdjacency *ccgDM_getGridAdjacency(DerivedMesh *dm) static struct PBVH *ccgDM_getPBVH(Object *ob, DerivedMesh *dm) { CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; - //int gridSize, numGrids; + int gridSize, numGrids; if(ccgdm->pbvh) return ccgdm->pbvh; - /*if(ccgdm->multires.mmd) { + if(ccgdm->multires.mmd) { ccgdm_create_grids(dm); gridSize = ccgDM_getGridSize(dm); @@ -2150,11 +2149,11 @@ static struct PBVH *ccgDM_getPBVH(Object *ob, DerivedMesh *dm) BLI_pbvh_build_grids(ccgdm->pbvh, ccgdm->gridData, numGrids, gridSize, (void**)ccgdm->gridFaces); } - else*/ if(ob->type == OB_MESH) { + else if(ob->type == OB_MESH) { Mesh *me= ob->data; ccgdm->pbvh = BLI_pbvh_new(); - BLI_pbvh_build(ccgdm->pbvh, me->mface, me->mvert, + BLI_pbvh_build_mesh(ccgdm->pbvh, me->mface, me->mvert, me->totface, me->totvert); } diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h index 360a9937498..5c5277dc091 100644 --- a/source/blender/blenlib/BLI_pbvh.h +++ b/source/blender/blenlib/BLI_pbvh.h @@ -27,6 +27,7 @@ struct MFace; struct MVert; +struct DMGridData; struct PBVH; struct PBVHNode; struct ListBase; @@ -44,12 +45,12 @@ typedef void (*BLI_pbvh_HitCallback)(PBVHNode *node, void *data); /* Building */ PBVH *BLI_pbvh_new(void); -void BLI_pbvh_build(PBVH *bvh, struct MFace *faces, struct MVert *verts, +void BLI_pbvh_build_mesh(PBVH *bvh, struct MFace *faces, struct MVert *verts, int totface, int totvert); +void BLI_pbvh_build_grids(PBVH *bvh, struct DMGridData **grids, int totgrid, + int gridsize, void **gridfaces); void BLI_pbvh_free(PBVH *bvh); -void BLI_pbvh_set_source(PBVH *bvh, struct MVert *, struct MFace *mface); - /* Hierarchical Search in the BVH, two methods: * for each hit calling a callback * gather nodes in an array (easy to multithread) */ @@ -69,6 +70,14 @@ void BLI_pbvh_search_gather(PBVH *bvh, void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, float ray_start[3], float ray_normal[3], int original); +int BLI_pbvh_node_raycast(PBVH *bvh, PBVHNode *node, float (*origco)[3], + float ray_start[3], float ray_normal[3], float *dist); + +/* Drawing */ + +void BLI_pbvh_node_draw(PBVHNode *node, void *data); +int BLI_pbvh_node_planes_contain_AABB(PBVHNode *node, void *data); +void BLI_pbvh_draw(PBVH *bvh, float (*planes)[4], float (*face_nors)[3]); /* Node Access */ @@ -84,11 +93,11 @@ typedef enum { void BLI_pbvh_node_mark_update(PBVHNode *node); -void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, - int *totvert, int *allverts); -void BLI_pbvh_node_get_faces(PBVHNode *node, int **face_indices, - int **face_vert_indices, int *totface); -void *BLI_pbvh_node_get_draw_buffers(PBVHNode *node); +void BLI_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, + int **grid_indices, int *totgrid, int *maxgrid, int *gridsize); +void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, + int *uniquevert, int *totvert); + void BLI_pbvh_node_get_BB(PBVHNode *node, float bb_min[3], float bb_max[3]); void BLI_pbvh_node_get_original_BB(PBVHNode *node, float bb_min[3], float bb_max[3]); @@ -96,6 +105,91 @@ void BLI_pbvh_node_get_original_BB(PBVHNode *node, float bb_min[3], float bb_max void BLI_pbvh_update(PBVH *bvh, int flags, float (*face_nors)[3]); void BLI_pbvh_redraw_BB(PBVH *bvh, float bb_min[3], float bb_max[3]); +void BLI_pbvh_get_grid_updates(PBVH *bvh, void ***gridfaces, int *totface); + +/* Vertex Iterator */ + +/* this iterator has quite a lot of code, but it's designed to: + - allow the compiler to eliminate dead code and variables + - spend most of the time in the relatively simple inner loop */ + +#define PBVH_ITER_ALL 0 +#define PBVH_ITER_UNIQUE 1 + +typedef struct PBVHVertexIter { + /* iteration */ + int g; + int width; + int height; + int skip; + int gx; + int gy; + int i; + + /* grid */ + struct DMGridData **grids; + struct DMGridData *grid; + int *grid_indices; + int totgrid; + int gridsize; + + /* mesh */ + struct MVert *mverts; + int totvert; + int *vert_indices; + + /* result: these are all computed in the macro, but we assume + that compiler optimizations will skip the ones we don't use */ + struct MVert *mvert; + float *co; + short *no; + float *fno; +} PBVHVertexIter; + +void BLI_pbvh_node_verts_iter_init(PBVH *bvh, PBVHNode *node, PBVHVertexIter *vi, int mode); + +#define BLI_pbvh_vertex_iter_begin(bvh, node, vi, mode) \ + /* XXX breaks aliasing! */ \ + BLI_pbvh_node_verts_iter_init(bvh, node, &vi, mode); \ + \ + for(vi.i=0, vi.g=0; vi.ggrid.offset; \ + vi.skip= subm->grid.skip; \ + vi.grid -= skip; \ + }*/ \ + } \ + else { \ + vi.width= vi.totvert; \ + vi.height= 1; \ + } \ + \ + for(vi.gy=0; vi.gyco; \ + vi.fno= vi.grid->no; \ + vi.grid++; \ + } \ + else { \ + vi.mvert= &vi.mverts[vi.vert_indices[vi.gx]]; \ + vi.co= vi.mvert->co; \ + vi.no= vi.mvert->no; \ + } \ + +#define BLI_pbvh_vertex_iter_end \ + } \ + } \ + } + #endif /* BLI_PBVH_H */ diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index c2f0705d8c2..023db54eb1c 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -32,6 +32,7 @@ #include "BLI_ghash.h" #include "BLI_pbvh.h" +#include "BKE_DerivedMesh.h" #include "BKE_mesh.h" #include "BKE_utildefines.h" @@ -87,12 +88,12 @@ struct PBVHNode { /* For internal nodes */ int children_offset; - /* Pointer into bvh face_indices */ - int *face_indices; + /* Pointer into bvh prim_indices */ + int *prim_indices; int *face_vert_indices; - unsigned short totface; - unsigned short uniq_verts, face_verts; + unsigned int totprim; + unsigned int uniq_verts, face_verts; char flag; }; @@ -101,14 +102,22 @@ struct PBVH { PBVHNode *nodes; int node_mem_count, totnode; - int *face_indices; - int totface; + int *prim_indices; + int totprim; int totvert; + int leaf_limit; + /* Mesh data */ MVert *verts; MFace *faces; + /* Grid Data */ + DMGridData **grids; + void **gridfaces; + int totgrid; + int gridsize; + /* Only used during BVH build and update, don't need to remain valid after */ BLI_bitmap vert_bitmap; @@ -201,12 +210,12 @@ static void update_node_vb(PBVH *bvh, PBVHNode *node) BB_reset(&vb); if(node->flag & PBVH_Leaf) { - int i, totvert= node->uniq_verts + node->face_verts; + PBVHVertexIter vd; - for(i = 0; i < totvert; ++i) { - float *co= bvh->verts[node->vert_indices[i]].co; - BB_expand(&vb, co); + BLI_pbvh_vertex_iter_begin(bvh, node, vd, PBVH_ITER_ALL) { + BB_expand(&vb, vd.co); } + BLI_pbvh_vertex_iter_end; } else { BB_expand_with_bb(&vb, @@ -220,28 +229,28 @@ static void update_node_vb(PBVH *bvh, PBVHNode *node) /* Adapted from BLI_kdopbvh.c */ /* Returns the index of the first element on the right of the partition */ -static int partition_indices(int *face_indices, int lo, int hi, int axis, +static int partition_indices(int *prim_indices, int lo, int hi, int axis, float mid, BBC *prim_bbc) { int i=lo, j=hi; for(;;) { - for(; prim_bbc[face_indices[i]].bcentroid[axis] < mid; i++); - for(; mid < prim_bbc[face_indices[j]].bcentroid[axis]; j--); + for(; prim_bbc[prim_indices[i]].bcentroid[axis] < mid; i++); + for(; mid < prim_bbc[prim_indices[j]].bcentroid[axis]; j--); if(!(i < j)) return i; - SWAP(int, face_indices[i], face_indices[j]); + SWAP(int, prim_indices[i], prim_indices[j]); i++; } } -void check_partitioning(int *face_indices, int lo, int hi, int axis, +void check_partitioning(int *prim_indices, int lo, int hi, int axis, float mid, BBC *prim_bbc, int index_of_2nd_partition) { int i; for(i = lo; i <= hi; ++i) { - const float c = prim_bbc[face_indices[i]].bcentroid[axis]; + const float c = prim_bbc[prim_indices[i]].bcentroid[axis]; if((i < index_of_2nd_partition && c > mid) || (i > index_of_2nd_partition && c < mid)) { @@ -269,8 +278,8 @@ static void grow_nodes(PBVH *bvh, int totnode) /* Add a vertex to the map, with a positive value for unique vertices and a negative value for additional vertices */ static int map_insert_vert(PBVH *bvh, GHash *map, - unsigned short *face_verts, - unsigned short *uniq_verts, int vertex) + unsigned int *face_verts, + unsigned int *uniq_verts, int vertex) { void *value, *key = SET_INT_IN_POINTER(vertex); @@ -293,7 +302,7 @@ static int map_insert_vert(PBVH *bvh, GHash *map, } /* Find vertices used by the faces in this node and update the draw buffers */ -static void build_leaf_node(PBVH *bvh, PBVHNode *node) +static void build_mesh_leaf_node(PBVH *bvh, PBVHNode *node) { GHashIterator *iter; GHash *map; @@ -302,13 +311,13 @@ static void build_leaf_node(PBVH *bvh, PBVHNode *node) map = BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp); node->uniq_verts = node->face_verts = 0; - totface= node->totface; + totface= node->totprim; node->face_vert_indices = MEM_callocN(sizeof(int) * 4*totface, "bvh node face vert indices"); for(i = 0; i < totface; ++i) { - MFace *f = bvh->faces + node->face_indices[i]; + MFace *f = bvh->faces + node->prim_indices[i]; int sides = f->v4 ? 4 : 3; for(j = 0; j < sides; ++j) { @@ -341,15 +350,22 @@ static void build_leaf_node(PBVH *bvh, PBVHNode *node) node->face_vert_indices[i]= -node->face_vert_indices[i] + node->uniq_verts - 1; node->draw_buffers = - GPU_build_buffers(map, bvh->verts, bvh->faces, - node->face_indices, - node->totface, node->vert_indices, + GPU_build_mesh_buffers(map, bvh->verts, bvh->faces, + node->prim_indices, + node->totprim, node->vert_indices, node->uniq_verts, node->uniq_verts + node->face_verts); BLI_ghash_free(map, NULL, NULL); } +static void build_grids_leaf_node(PBVH *bvh, PBVHNode *node) +{ + node->draw_buffers = + GPU_build_grid_buffers(bvh->grids, node->prim_indices, + node->totprim, bvh->gridsize); +} + /* Recursively build a node in the tree vb is the voxel box around all of the primitives contained in @@ -368,21 +384,25 @@ void build_sub(PBVH *bvh, int node_index, BB *cb, BBC *prim_bbc, BB cb_backing; /* Decide whether this is a leaf or not */ - if(count <= LEAF_LIMIT) { + // XXX adapt leaf limit for grids + if(count <= bvh->leaf_limit) { bvh->nodes[node_index].flag |= PBVH_Leaf; - bvh->nodes[node_index].face_indices = bvh->face_indices + offset; - bvh->nodes[node_index].totface = count; + bvh->nodes[node_index].prim_indices = bvh->prim_indices + offset; + bvh->nodes[node_index].totprim = count; /* Still need vb for searches */ BB_reset(&bvh->nodes[node_index].vb); for(i = offset + count - 1; i >= offset; --i) { BB_expand_with_bb(&bvh->nodes[node_index].vb, (BB*)(prim_bbc + - bvh->face_indices[i])); + bvh->prim_indices[i])); } - build_leaf_node(bvh, bvh->nodes + node_index); + if(bvh->faces) + build_mesh_leaf_node(bvh, bvh->nodes + node_index); + else + build_grids_leaf_node(bvh, bvh->nodes + node_index); bvh->nodes[node_index].orig_vb= bvh->nodes[node_index].vb; /* Done with this subtree */ @@ -397,7 +417,7 @@ void build_sub(PBVH *bvh, int node_index, BB *cb, BBC *prim_bbc, cb = &cb_backing; BB_reset(cb); for(i = offset + count - 1; i >= offset; --i) - BB_expand(cb, prim_bbc[bvh->face_indices[i]].bcentroid); + BB_expand(cb, prim_bbc[bvh->prim_indices[i]].bcentroid); } } @@ -405,16 +425,16 @@ void build_sub(PBVH *bvh, int node_index, BB *cb, BBC *prim_bbc, for(i = offset + count - 1; i >= offset; --i) { BB_expand_with_bb(&bvh->nodes[node_index].vb, - (BB*)(prim_bbc + bvh->face_indices[i])); + (BB*)(prim_bbc + bvh->prim_indices[i])); } bvh->nodes[node_index].orig_vb= bvh->nodes[node_index].vb; - end = partition_indices(bvh->face_indices, offset, offset + count - 1, + end = partition_indices(bvh->prim_indices, offset, offset + count - 1, axis, (cb->bmax[axis] + cb->bmin[axis]) * 0.5f, prim_bbc); - check_partitioning(bvh->face_indices, offset, offset + count - 1, + check_partitioning(bvh->prim_indices, offset, offset + count - 1, axis, (cb->bmax[axis] + cb->bmin[axis]) * 0.5f, prim_bbc, end); @@ -425,21 +445,18 @@ void build_sub(PBVH *bvh, int node_index, BB *cb, BBC *prim_bbc, prim_bbc, end, offset + count - end); } -/* Do a full rebuild */ -void BLI_pbvh_build(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totvert) +static void pbvh_build(PBVH *bvh, BB *cb, BBC *prim_bbc, int totprim) { - BBC *prim_bbc = NULL; - BB cb; - int i, j; + int i; - if(totface != bvh->totface) { - bvh->totface = totface; + if(totprim != bvh->totprim) { + bvh->totprim = totprim; if(bvh->nodes) MEM_freeN(bvh->nodes); - if(bvh->face_indices) MEM_freeN(bvh->face_indices); - bvh->face_indices = MEM_callocN(sizeof(int) * totface, - "bvh face indices"); - for(i = 0; i < totface; ++i) - bvh->face_indices[i] = i; + if(bvh->prim_indices) MEM_freeN(bvh->prim_indices); + bvh->prim_indices = MEM_callocN(sizeof(int) * totprim, + "bvh prim indices"); + for(i = 0; i < totprim; ++i) + bvh->prim_indices[i] = i; bvh->totnode = 0; if(bvh->node_mem_count < 100) { bvh->node_mem_count = 100; @@ -449,10 +466,22 @@ void BLI_pbvh_build(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totv } } + bvh->totnode = 1; + build_sub(bvh, 0, cb, prim_bbc, 0, totprim); +} + +/* Do a full rebuild with on Mesh data structure */ +void BLI_pbvh_build_mesh(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totvert) +{ + BBC *prim_bbc = NULL; + BB cb; + int i, j; + bvh->faces = faces; bvh->verts = verts; bvh->vert_bitmap = BLI_bitmap_new(totvert); - bvh->totvert= totvert; + bvh->totvert = totvert; + bvh->leaf_limit = LEAF_LIMIT; BB_reset(&cb); @@ -474,13 +503,50 @@ void BLI_pbvh_build(PBVH *bvh, MFace *faces, MVert *verts, int totface, int totv BB_expand(&cb, bbc->bcentroid); } - bvh->totnode = 1; - build_sub(bvh, 0, &cb, prim_bbc, 0, totface); + pbvh_build(bvh, &cb, prim_bbc, totface); MEM_freeN(prim_bbc); MEM_freeN(bvh->vert_bitmap); } +/* Do a full rebuild with on Grids data structure */ +void BLI_pbvh_build_grids(PBVH *bvh, DMGridData **grids, int totgrid, + int gridsize, void **gridfaces) +{ + BBC *prim_bbc = NULL; + BB cb; + int i, j; + + bvh->grids= grids; + bvh->gridfaces= gridfaces; + bvh->totgrid= totgrid; + bvh->gridsize= gridsize; + bvh->leaf_limit = MAX2(LEAF_LIMIT/((gridsize-1)*(gridsize-1)), 1); + + BB_reset(&cb); + + /* For each grid, store the AABB and the AABB centroid */ + prim_bbc = MEM_mallocN(sizeof(BBC) * totgrid, "prim_bbc"); + + for(i = 0; i < totgrid; ++i) { + DMGridData *grid= grids[i]; + BBC *bbc = prim_bbc + i; + + BB_reset((BB*)bbc); + + for(j = 0; j < gridsize*gridsize; ++j) + BB_expand((BB*)bbc, grid[j].co); + + BBC_update_centroid(bbc); + + BB_expand(&cb, bbc->bcentroid); + } + + pbvh_build(bvh, &cb, prim_bbc, totgrid); + + MEM_freeN(prim_bbc); +} + PBVH *BLI_pbvh_new(void) { PBVH *bvh = MEM_callocN(sizeof(PBVH), "pbvh"); @@ -490,34 +556,27 @@ PBVH *BLI_pbvh_new(void) void BLI_pbvh_free(PBVH *bvh) { + PBVHNode *node; int i; for(i = 0; i < bvh->totnode; ++i) { - if(bvh->nodes[i].flag & PBVH_Leaf) { - GPU_free_buffers(bvh->nodes[i].draw_buffers); - MEM_freeN(bvh->nodes[i].vert_indices); - MEM_freeN(bvh->nodes[i].face_vert_indices); + node= &bvh->nodes[i]; + + if(node->flag & PBVH_Leaf) { + if(node->draw_buffers) + GPU_free_buffers(node->draw_buffers); + if(node->vert_indices) + MEM_freeN(node->vert_indices); + if(node->face_vert_indices) + MEM_freeN(node->face_vert_indices); } } MEM_freeN(bvh->nodes); - MEM_freeN(bvh->face_indices); + MEM_freeN(bvh->prim_indices); MEM_freeN(bvh); } -void BLI_pbvh_set_source(PBVH *bvh, MVert *mvert, MFace *mface) -{ - bvh->verts = mvert; - bvh->faces = mface; -} - -static void do_hit_callback(PBVH *bvh, PBVHNode *node, - BLI_pbvh_HitCallback cb, void *data) -{ - if(cb) - cb(node, data); -} - static void pbvh_iter_begin(PBVHIter *iter, PBVH *bvh, BLI_pbvh_SearchCallback scb, void *search_data) { iter->bvh= bvh; @@ -646,7 +705,7 @@ void BLI_pbvh_search_callback(PBVH *bvh, while((node=pbvh_iter_next(&iter))) if(node->flag & PBVH_Leaf) - do_hit_callback(bvh, node, hcb, hit_data); + hcb(node, hit_data); pbvh_iter_end(&iter); } @@ -667,6 +726,9 @@ static void pbvh_update_normals(PBVH *bvh, PBVHNode **nodes, float (*vnor)[3]; int n; + if(bvh->grids) + return; + /* could be per node to save some memory, but also means we have to store for each vertex which node it is in */ vnor= MEM_callocN(sizeof(float)*3*bvh->totvert, "bvh temp vnors"); @@ -688,8 +750,8 @@ static void pbvh_update_normals(PBVH *bvh, PBVHNode **nodes, if((node->flag & PBVH_UpdateNormals)) { int i, j, totface, *faces; - faces= node->face_indices; - totface= node->totface; + faces= node->prim_indices; + totface= node->totprim; for(i = 0; i < totface; ++i) { MFace *f= bvh->faces + faces[i]; @@ -792,11 +854,20 @@ static void pbvh_update_draw_buffers(PBVH *bvh, PBVHNode **nodes, int totnode) node= nodes[n]; if(node->flag & PBVH_UpdateDrawBuffers) { - GPU_update_buffers(node->draw_buffers, - bvh->verts, - node->vert_indices, - node->uniq_verts + - node->face_verts); + if(bvh->grids) { + GPU_update_grid_buffers(node->draw_buffers, + bvh->grids, + node->prim_indices, + node->totprim, + bvh->gridsize); + } + else { + GPU_update_mesh_buffers(node->draw_buffers, + bvh->verts, + node->vert_indices, + node->uniq_verts + + node->face_verts); + } node->flag &= ~PBVH_UpdateDrawBuffers; } @@ -877,6 +948,53 @@ void BLI_pbvh_redraw_BB(PBVH *bvh, float bb_min[3], float bb_max[3]) copy_v3_v3(bb_max, bb.bmax); } +void BLI_pbvh_get_grid_updates(PBVH *bvh, void ***gridfaces, int *totface) +{ + PBVHIter iter; + PBVHNode *node; + GHashIterator *hiter; + GHash *map; + void *face, **faces; + int i, tot; + + map = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp); + + pbvh_iter_begin(&iter, bvh, NULL, NULL); + + while((node=pbvh_iter_next(&iter))) { + if(node->flag & PBVH_UpdateNormals) { + for(i = 0; i < node->totprim; ++i) { + face= bvh->gridfaces[node->prim_indices[i]]; + BLI_ghash_insert(map, face, face); + } + + node->flag &= ~PBVH_UpdateNormals; + } + } + + pbvh_iter_end(&iter); + + tot= BLI_ghash_size(map); + if(tot == 0) { + *totface= 0; + *gridfaces= NULL; + BLI_ghash_free(map, NULL, NULL); + return; + } + + faces= MEM_callocN(sizeof(void*)*tot, "PBVH Grid Faces"); + + for(hiter = BLI_ghashIterator_new(map), i = 0; + !BLI_ghashIterator_isDone(hiter); + BLI_ghashIterator_step(hiter), ++i) + faces[i]= BLI_ghashIterator_getKey(hiter); + + BLI_ghash_free(map, NULL, NULL); + + *totface= tot; + *gridfaces= faces; +} + /***************************** Node Access ***********************************/ void BLI_pbvh_node_mark_update(PBVHNode *node) @@ -891,16 +1009,32 @@ void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, int *totvert, i if(allvert) *allvert= node->uniq_verts + node->face_verts; } -void BLI_pbvh_node_get_faces(PBVHNode *node, int **face_indices, int **face_vert_indices, int *totface) +void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *totvert) { - if(face_indices) *face_indices= node->face_indices; - if(face_vert_indices) *face_vert_indices= node->face_vert_indices; - if(totface) *totface= node->totface; + if(bvh->grids) { + *totvert= node->totprim*bvh->gridsize*bvh->gridsize; + *uniquevert= *totvert; + } + else { + *uniquevert= node->uniq_verts; + *totvert= node->uniq_verts + node->face_verts; + } } -void *BLI_pbvh_node_get_draw_buffers(PBVHNode *node) +void BLI_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, int **grid_indices, int *totgrid, int *maxgrid, int *gridsize) { - return node->draw_buffers; + if(bvh->grids) { + if(grid_indices) *grid_indices= node->prim_indices; + if(totgrid) *totgrid= node->totprim; + if(maxgrid) *maxgrid= bvh->totgrid; + if(gridsize) *gridsize= bvh->gridsize; + } + else { + *grid_indices= NULL; + *totgrid= 0; + *maxgrid= 0; + *gridsize= 0; + } } void BLI_pbvh_node_get_BB(PBVHNode *node, float bb_min[3], float bb_max[3]) @@ -936,7 +1070,7 @@ static int ray_aabb_intersect(PBVHNode *node, void *data_v) BLI_pbvh_node_get_original_BB(node, bb_min, bb_max); else BLI_pbvh_node_get_BB(node, bb_min, bb_max); - + copy_v3_v3(bbox[0], bb_min); copy_v3_v3(bbox[1], bb_max); @@ -988,3 +1122,194 @@ void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitCallback cb, void *data, BLI_pbvh_search_callback(bvh, ray_aabb_intersect, &rcd, cb, data); } +/* XXX: Code largely copied from bvhutils.c, could be unified */ +/* Returns 1 if a better intersection has been found */ +static int ray_face_intersection(float ray_start[3], float ray_normal[3], + float *t0, float *t1, float *t2, float *t3, + float *fdist) +{ + int hit = 0; + + do + { + float dist = FLT_MAX; + + if(!isect_ray_tri_v3(ray_start, ray_normal, t0, t1, t2, + &dist, NULL)) + dist = FLT_MAX; + + if(dist >= 0 && dist < *fdist) { + hit = 1; + *fdist = dist; + } + + t1 = t2; + t2 = t3; + t3 = NULL; + + } while(t2); + + return hit; +} + +int BLI_pbvh_node_raycast(PBVH *bvh, PBVHNode *node, float (*origco)[3], + float ray_start[3], float ray_normal[3], float *dist) +{ + int hit= 0; + + if(bvh->faces) { + MVert *vert = bvh->verts; + int *faces= node->prim_indices; + int *face_verts= node->face_vert_indices; + int totface= node->totprim; + int i; + + for(i = 0; i < totface; ++i) { + MFace *f = bvh->faces + faces[i]; + + if(origco) { + /* intersect with backuped original coordinates */ + hit |= ray_face_intersection(ray_start, ray_normal, + origco[face_verts[i*4+0]], + origco[face_verts[i*4+1]], + origco[face_verts[i*4+2]], + f->v4? origco[face_verts[i*4+3]]: NULL, + dist); + } + else { + /* intersect with current coordinates */ + hit |= ray_face_intersection(ray_start, ray_normal, + vert[f->v1].co, + vert[f->v2].co, + vert[f->v3].co, + f->v4 ? vert[f->v4].co : NULL, + dist); + } + } + } + else { + int totgrid= node->totprim; + int gridsize= bvh->gridsize; + int i, x, y; + + for(i = 0; i < totgrid; ++i) { + DMGridData *grid= bvh->grids[node->prim_indices[i]]; + + for(y = 0; y < gridsize-1; ++y) { + for(x = 0; x < gridsize-1; ++x) { + if(origco) { + hit |= ray_face_intersection(ray_start, ray_normal, + origco[y*gridsize + x], + origco[y*gridsize + x+1], + origco[(y+1)*gridsize + x+1], + origco[(y+1)*gridsize + x], + dist); + } + else { + hit |= ray_face_intersection(ray_start, ray_normal, + grid[y*gridsize + x].co, + grid[y*gridsize + x+1].co, + grid[(y+1)*gridsize + x+1].co, + grid[(y+1)*gridsize + x].co, + dist); + } + } + } + + if(origco) + origco += gridsize*gridsize; + } + } + + return hit; +} + +#if 0 +static int nodes_drawn = 0; +static int is_partial = 0; +/* XXX: Just a temporary replacement for the real drawing code */ +static void draw_partial_cb(PBVHNode *node, void *data) + + /* XXX: Just some quick code to show leaf nodes in different colors */ + /*float col[3]; int i; + if(is_partial) { + col[0] = (rand() / (float)RAND_MAX); col[1] = col[2] = 0.6; + } + else { + srand((long long)data_v); + for(i = 0; i < 3; ++i) + col[i] = (rand() / (float)RAND_MAX) * 0.3 + 0.7; + } + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col); + + glColor3f(1, 0, 0);*/ + GPU_draw_buffers(BLI_pbvh_node_get_draw_buffers(node)); + ++nodes_drawn; +} +#endif + +void BLI_pbvh_node_draw(PBVHNode *node, void *data) +{ + GPU_draw_buffers(node->draw_buffers); +} + +/* Adapted from: + http://www.gamedev.net/community/forums/topic.asp?topic_id=512123 + Returns true if the AABB is at least partially within the frustum + (ok, not a real frustum), false otherwise. +*/ +int BLI_pbvh_node_planes_contain_AABB(PBVHNode *node, void *data) +{ + float (*planes)[4] = data; + int i, axis; + float vmin[3], vmax[3], bb_min[3], bb_max[3]; + + BLI_pbvh_node_get_BB(node, bb_min, bb_max); + + for(i = 0; i < 4; ++i) { + for(axis = 0; axis < 3; ++axis) { + if(planes[i][axis] > 0) { + vmin[axis] = bb_min[axis]; + vmax[axis] = bb_max[axis]; + } + else { + vmin[axis] = bb_max[axis]; + vmax[axis] = bb_min[axis]; + } + } + + if(dot_v3v3(planes[i], vmin) + planes[i][3] > 0) + return 0; + } + + return 1; +} + +void BLI_pbvh_draw(PBVH *bvh, float (*planes)[4], float (*face_nors)[3]) +{ + BLI_pbvh_update(bvh, PBVH_UpdateNormals|PBVH_UpdateDrawBuffers, face_nors); + + if(planes) { + BLI_pbvh_search_callback(bvh, BLI_pbvh_node_planes_contain_AABB, + planes, BLI_pbvh_node_draw, NULL); + } + else { + BLI_pbvh_search_callback(bvh, NULL, NULL, BLI_pbvh_node_draw, NULL); + } +} + +void BLI_pbvh_node_verts_iter_init(PBVH *bvh, PBVHNode *node, PBVHVertexIter *vi, int mode) +{ + memset(vi, 0, sizeof(PBVHVertexIter)); + vi->grids= bvh->grids; + vi->grid_indices= node->prim_indices; + vi->totgrid= (bvh->grids)? node->totprim: 1; + vi->gridsize= bvh->gridsize; + + vi->totvert= node->uniq_verts; + if(mode == PBVH_ITER_ALL) + vi->totvert += node->face_verts; + vi->vert_indices= node->vert_indices; + vi->mverts= bvh->verts; +} + diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 873bbc2baa6..c9e351458ad 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -267,13 +267,21 @@ typedef struct SculptUndoNode { struct SculptUndoNode *next, *prev; char idname[MAX_ID_NAME]; /* name instead of pointer*/ - int maxvert; /* to verify if totvert it still the same */ void *node; /* only during push, not valid afterwards! */ float (*co)[3]; short (*no)[3]; - int *index; int totvert; + + /* non-multires */ + int maxvert; /* to verify if totvert it still the same */ + int *index; /* to restore into right location */ + + /* multires */ + int maxgrid; /* same for grid */ + int gridsize; /* same for grid */ + int totgrid; /* to restore into right location */ + int *grids; /* to restore into right location */ } SculptUndoNode; static void update_cb(PBVHNode *node, void *data) @@ -284,33 +292,54 @@ static void update_cb(PBVHNode *node, void *data) static void sculpt_undo_restore(bContext *C, ListBase *lb) { Object *ob = CTX_data_active_object(C); + DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, 0); SculptSession *ss = ob->sculpt; SculptUndoNode *unode; MVert *mvert; MultiresModifierData *mmd; int *index; - int i, totvert, update= 0; + int i, j, update= 0; sculpt_update_mesh_elements(C, 0); for(unode=lb->first; unode; unode=unode->next) { if(!(strcmp(unode->idname, ob->id.name)==0)) continue; - if(ss->totvert != unode->maxvert) - continue; - index= unode->index; - totvert= unode->totvert; - mvert= ss->mvert; + if(unode->maxvert) { + /* regular mesh restore */ + if(ss->totvert != unode->maxvert) + continue; - for(i=0; iindex; + mvert= ss->mvert; - copy_v3_v3(tmp, mvert[index[i]].co); - copy_v3_v3(mvert[index[i]].co, unode->co[i]); - copy_v3_v3(unode->co[i], tmp); - - mvert[index[i]].flag |= ME_VERT_PBVH_UPDATE; + for(i=0; itotvert; i++) { + swap_v3_v3(mvert[index[i]].co, unode->co[i]); + mvert[index[i]].flag |= ME_VERT_PBVH_UPDATE; + } + } + else if(unode->maxgrid) { + /* multires restore */ + DMGridData **grids, *grid; + float (*co)[3]; + int gridsize; + + if(dm->getNumGrids(dm) != unode->maxgrid) + continue; + if(dm->getGridSize(dm) != unode->gridsize) + continue; + + grids= dm->getGridData(dm); + gridsize= dm->getGridSize(dm); + + co = unode->co; + for(j=0; jtotgrid; j++) { + grid= grids[unode->grids[j]]; + + for(i=0; itree, NULL, NULL, update_cb, NULL); BLI_pbvh_update(ss->tree, PBVH_UpdateBB|PBVH_UpdateOriginalBB|PBVH_UpdateRedraw, NULL); - /* not really convinced this is correct .. */ - if((mmd=sculpt_multires_active(ob))) { - mmd->undo_verts = ss->mvert; - mmd->undo_verts_tot = ss->totvert; - mmd->undo_signal = !!mmd->undo_verts; - - multires_force_update(ob); - DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - } + if((mmd=sculpt_multires_active(ob))) + multires_mark_as_modified(ob); } } @@ -346,6 +368,8 @@ static void sculpt_undo_free(ListBase *lb) MEM_freeN(unode->no); if(unode->index) MEM_freeN(unode->index); + if(unode->grids) + MEM_freeN(unode->grids); } } @@ -369,9 +393,7 @@ static SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node) ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); Object *ob= ss->ob; SculptUndoNode *unode; - int i, totvert, allvert, *verts; - - BLI_pbvh_node_get_verts(node, &verts, &totvert, &allvert); + int totvert, allvert, totgrid, maxgrid, gridsize, *grids; /* list is manipulated by multiple threads, so we lock */ BLI_lock_thread(LOCK_CUSTOM1); @@ -385,23 +407,46 @@ static SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node) strcpy(unode->idname, ob->id.name); unode->node= node; + BLI_pbvh_node_num_verts(ss->tree, node, &totvert, &allvert); + BLI_pbvh_node_get_grids(ss->tree, node, &grids, &totgrid, &maxgrid, &gridsize); + unode->totvert= totvert; - unode->maxvert= ss->totvert; /* we will use this while sculpting, is mapalloc slow to access then? */ unode->co= MEM_mapallocN(sizeof(float)*3*allvert, "SculptUndoNode.co"); unode->no= MEM_mapallocN(sizeof(short)*3*allvert, "SculptUndoNode.no"); - unode->index= MEM_mapallocN(sizeof(int)*allvert, "SculptUndoNode.index"); undo_paint_push_count_alloc(UNDO_PAINT_MESH, (sizeof(float)*3 + sizeof(short)*3 + sizeof(int))*allvert); BLI_addtail(lb, unode); + if(maxgrid) { + /* multires */ + unode->maxgrid= maxgrid; + unode->totgrid= totgrid; + unode->gridsize= gridsize; + unode->grids= MEM_mapallocN(sizeof(int)*totgrid, "SculptUndoNode.grids"); + } + else { + /* regular mesh */ + unode->maxvert= ss->totvert; + unode->index= MEM_mapallocN(sizeof(int)*allvert, "SculptUndoNode.index"); + } + BLI_unlock_thread(LOCK_CUSTOM1); /* copy threaded, hopefully this is the performance critical part */ - memcpy(unode->index, verts, sizeof(int)*allvert); - for(i=0; ico[i], ss->mvert[verts[i]].co); - VECCOPY(unode->no[i], ss->mvert[verts[i]].no); + { + PBVHVertexIter vd; + + BLI_pbvh_vertex_iter_begin(ss->tree, node, vd, PBVH_ITER_ALL) { + copy_v3_v3(unode->co[vd.i], vd.co); + if(vd.no) VECCOPY(unode->no[vd.i], vd.no) + else normal_float_to_short_v3(unode->no[vd.i], vd.fno); + if(vd.vert_indices) unode->index[vd.i]= vd.vert_indices[vd.i]; + } + BLI_pbvh_vertex_iter_end; } + + if(unode->grids) + memcpy(unode->grids, grids, sizeof(int)*totgrid); return unode; } @@ -428,57 +473,41 @@ static void sculpt_undo_push_end(SculptSession *ss) undo_paint_push_end(UNDO_PAINT_MESH); } -/************************ Looping Over Verts in a BVH Node *******************/ +void ED_sculpt_force_update(bContext *C) +{ + Object *ob= CTX_data_active_object(C); -typedef struct SculptVertexData { + if(ob && (ob->mode & OB_MODE_SCULPT)) + multires_force_update(ob); +} + +/************************ Brush Testing *******************/ + +typedef struct SculptBrushTest { float radius_squared; float location[3]; - MVert *mvert; - int *verts; - float (*origvert)[3]; - int i, index, totvert; - - float *co; - float *origco; - short *no; float dist; -} SculptVertexData; +} SculptBrushTest; -static void sculpt_node_verts_init(Sculpt *sd, SculptSession *ss, - PBVHNode *node, float (*origvert)[3], SculptVertexData *vd) +static void sculpt_brush_test_init(SculptSession *ss, SculptBrushTest *test) { - vd->radius_squared= ss->cache->radius*ss->cache->radius; - copy_v3_v3(vd->location, ss->cache->location); - - vd->mvert= ss->mvert; - vd->origvert= origvert; - vd->i= -1; - BLI_pbvh_node_get_verts(node, &vd->verts, &vd->totvert, NULL); + test->radius_squared= ss->cache->radius*ss->cache->radius; + copy_v3_v3(test->location, ss->cache->location); } -static int sculpt_node_verts_next(SculptVertexData *vd) +static int sculpt_brush_test(SculptBrushTest *test, float co[3]) { - vd->i++; - - while(vd->i < vd->totvert) { - float delta[3], dsq; + float distsq, delta[3]; - vd->index= vd->verts[vd->i]; - vd->co= vd->mvert[vd->index].co; - vd->origco= (vd->origvert)? vd->origvert[vd->i]: vd->co; - vd->no= vd->mvert[vd->index].no; - sub_v3_v3v3(delta, vd->origco, vd->location); - dsq = INPR(delta, delta); + sub_v3_v3v3(delta, co, test->location); + distsq = INPR(delta, delta); - if(dsq < vd->radius_squared) { - vd->dist = sqrt(dsq); - return 1; - } - - vd->i++; + if(distsq < test->radius_squared) { + test->dist = sqrt(distsq); + return 1; } - + return 0; } @@ -667,7 +696,6 @@ static int sculpt_search_sphere_cb(PBVHNode *node, void *data_v) float t[3], bb_min[3], bb_max[3]; int i; - //BLI_pbvh_node_get_original_BB(node, bb_min, bb_max); BLI_pbvh_node_get_BB(node, bb_min, bb_max); for(i = 0; i < 3; ++i) { @@ -700,12 +728,8 @@ static void sculpt_clip(Sculpt *sd, SculptSession *ss, float *co, const float va } } -static void add_norm_if(float view_vec[3], float out[3], float out_flip[3], const short no[3]) +static void add_norm_if(float view_vec[3], float out[3], float out_flip[3], float fno[3]) { - float fno[3] = {no[0], no[1], no[2]}; - - normalize_v3(fno); - if((dot_v3v3(view_vec, fno)) > 0) { add_v3_v3v3(out, out, fno); } else { @@ -716,6 +740,7 @@ static void add_norm_if(float view_vec[3], float out[3], float out_flip[3], cons /* For draw/layer/flatten; finds average normal for all active vertices */ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3], PBVHNode **nodes, int totnode) { + PBVH *bvh= ss->tree; StrokeCache *cache = ss->cache; const int view = 0; /* XXX: should probably be a flag, not number: brush_type==SCULPT_TOOL_DRAW ? sculptmode_brush()->view : 0; */ float out[3] = {0.0f, 0.0f, 0.0f}; @@ -728,23 +753,39 @@ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3] /* threaded loop over nodes */ #pragma omp parallel for private(n) schedule(static) for(n=0; ncache->original) { - while(sculpt_node_verts_next(&vd)) - add_norm_if(out_dir, nout, nout_flip, unode->no[vd.i]); + if(ss->cache->original) { + BLI_pbvh_vertex_iter_begin(bvh, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, unode->co[vd.i])) { + normal_short_to_float_v3(fno, unode->no[vd.i]); + add_norm_if(out_dir, nout, nout_flip, fno); + } + } + BLI_pbvh_vertex_iter_end; } else { - while(sculpt_node_verts_next(&vd)) - add_norm_if(out_dir, nout, nout_flip, ss->mvert[vd.index].no); + BLI_pbvh_vertex_iter_begin(bvh, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + if(vd.no) { + normal_short_to_float_v3(fno, vd.no); + add_norm_if(out_dir, nout, nout_flip, fno); + } + else + add_norm_if(out_dir, nout, nout_flip, vd.fno); + } + } + BLI_pbvh_vertex_iter_end; } { @@ -787,21 +828,25 @@ static void do_draw_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int t /* threaded loop over nodes */ #pragma omp parallel for private(n) schedule(static) for(n=0; ntree, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + /* offset vertex */ + float fade = tex_strength(ss, brush, vd.co, test.dist); + float val[3]= {vd.co[0] + offset[0]*fade, + vd.co[1] + offset[1]*fade, + vd.co[2] + offset[2]*fade}; - sculpt_clip(sd, ss, vd.co, val); - ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; + sculpt_clip(sd, ss, vd.co, val); + if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + } } + BLI_pbvh_vertex_iter_end; BLI_pbvh_node_mark_update(nodes[n]); } @@ -860,23 +905,27 @@ static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int for(iteration = 0; iteration < 2; ++iteration) { #pragma omp parallel for private(n) schedule(static) for(n=0; nmvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; + sculpt_brush_test_init(ss, &test); + + BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; + float avg[3], val[3]; + + neighbor_average(ss, avg, vd.vert_indices[vd.i]); + val[0] = vd.co[0]+(avg[0]-vd.co[0])*fade; + val[1] = vd.co[1]+(avg[1]-vd.co[1])*fade; + val[2] = vd.co[2]+(avg[2]-vd.co[2])*fade; + + sculpt_clip(sd, ss, vd.co, val); + if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + } } + BLI_pbvh_vertex_iter_end; BLI_pbvh_node_mark_update(nodes[n]); } @@ -891,20 +940,24 @@ static void do_pinch_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int #pragma omp parallel for private(n) schedule(static) for(n=0; nmvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; + sculpt_brush_test_init(ss, &test); + + BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; + float val[3]= {vd.co[0]+(test.location[0]-vd.co[0])*fade, + vd.co[1]+(test.location[1]-vd.co[1])*fade, + vd.co[2]+(test.location[2]-vd.co[2])*fade}; + + sculpt_clip(sd, ss, vd.co, val); + if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + } } + BLI_pbvh_vertex_iter_end; BLI_pbvh_node_mark_update(nodes[n]); } @@ -921,26 +974,29 @@ static void do_grab_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int t #pragma omp parallel for private(n) schedule(static) for(n=0; nco; - sculpt_node_verts_init(sd, ss, nodes[n], origco, &vd); - - while(sculpt_node_verts_next(&vd)) { - const float fade = tex_strength(ss, brush, origco[vd.i], vd.dist)*bstrength; - const float add[3]= {vd.co[0]+fade*grab_delta[0], - vd.co[1]+fade*grab_delta[1], - vd.co[2]+fade*grab_delta[2]}; - - sculpt_clip(sd, ss, vd.co, add); - ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; + origco= sculpt_undo_push_node(ss, nodes[n])->co; + sculpt_brush_test_init(ss, &test); + + BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, origco[vd.i])) { + float fade = tex_strength(ss, brush, origco[vd.i], test.dist)*bstrength; + float add[3]= {vd.co[0]+fade*grab_delta[0], + vd.co[1]+fade*grab_delta[1], + vd.co[2]+fade*grab_delta[2]}; + + sculpt_clip(sd, ss, vd.co, add); + if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + } } + BLI_pbvh_vertex_iter_end; BLI_pbvh_node_mark_update(nodes[n]); } + } static void do_layer_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) @@ -962,40 +1018,43 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int #pragma omp parallel for private(n) schedule(static) for(n=0; nco; - sculpt_node_verts_init(sd, ss, nodes[n], NULL, &vd); + origco= sculpt_undo_push_node(ss, nodes[n])->co; + sculpt_brush_test_init(ss, &test); + + BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; + int index= vd.vert_indices[vd.i]; + float *disp= &ss->layer_disps[index]; + float val[3]; + + *disp+= fade; + + /* Don't let the displacement go past the limit */ + if((lim < 0 && *disp < lim) || (lim > 0 && *disp > lim)) + *disp = lim; + + if(ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) { + /* persistent base */ + val[0] = ss->layer_co[index][0] + (*disp)*offset[0]; + val[1] = ss->layer_co[index][1] + (*disp)*offset[1]; + val[2] = ss->layer_co[index][2] + (*disp)*offset[2]; + } + else { + val[0] = origco[vd.i][0] + (*disp)*offset[0]; + val[1] = origco[vd.i][1] + (*disp)*offset[1]; + val[2] = origco[vd.i][2] + (*disp)*offset[2]; + } - while(sculpt_node_verts_next(&vd)) { - const float fade = tex_strength(ss, brush, vd.co, vd.dist)*bstrength; - float *disp= &ss->layer_disps[vd.index]; - float val[3]; - - *disp+= fade; - - /* Don't let the displacement go past the limit */ - if((lim < 0 && *disp < lim) || (lim > 0 && *disp > lim)) - *disp = lim; - - if(ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) { - /* persistent base */ - val[0] = ss->layer_co[vd.index][0] + (*disp)*offset[0]; - val[1] = ss->layer_co[vd.index][1] + (*disp)*offset[1]; - val[2] = ss->layer_co[vd.index][2] + (*disp)*offset[2]; - } - else { - val[0] = origco[vd.i][0] + (*disp)*offset[0]; - val[1] = origco[vd.i][1] + (*disp)*offset[1]; - val[2] = origco[vd.i][2] + (*disp)*offset[2]; + sculpt_clip(sd, ss, vd.co, val); + if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; } - - sculpt_clip(sd, ss, vd.co, val); - ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; } + BLI_pbvh_vertex_iter_end; BLI_pbvh_node_mark_update(nodes[n]); } @@ -1009,27 +1068,31 @@ static void do_inflate_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, in #pragma omp parallel for private(n) schedule(static) for(n=0; ncache->radius); - add[0]*= ss->cache->scale[0]; - add[1]*= ss->cache->scale[1]; - add[2]*= ss->cache->scale[2]; - add_v3_v3v3(add, add, vd.co); - - sculpt_clip(sd, ss, vd.co, add); - ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; + BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; + float add[3]; + + add[0]= vd.no[0]/32767.0f; + add[1]= vd.no[1]/32767.0f; + add[2]= vd.no[2]/32767.0f; + mul_v3_fl(add, fade * ss->cache->radius); + add[0]*= ss->cache->scale[0]; + add[1]*= ss->cache->scale[1]; + add[2]*= ss->cache->scale[2]; + add_v3_v3v3(add, add, vd.co); + + sculpt_clip(sd, ss, vd.co, add); + if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + } } + BLI_pbvh_vertex_iter_end; BLI_pbvh_node_mark_update(nodes[n]); } @@ -1038,36 +1101,42 @@ static void do_inflate_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, in static void calc_flatten_center(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, float co[3]) { float outer_dist[FLATTEN_SAMPLE_SIZE]; - int outer_index[FLATTEN_SAMPLE_SIZE]; + float outer_co[FLATTEN_SAMPLE_SIZE][3]; int i, n; for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) { - outer_index[i] = 0; + zero_v3(outer_co[i]); outer_dist[i]= -1.0f; } #pragma omp parallel for private(n) schedule(static) for(n=0; n outer_dist[i]) { - outer_index[i] = vd.index; - outer_dist[i] = vd.dist; - break; + sculpt_undo_push_node(ss, nodes[n]); + sculpt_brush_test_init(ss, &test); + + BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) { + if(test.dist > outer_dist[i]) { + copy_v3_v3(outer_co[i], vd.co); + outer_dist[i] = test.dist; + break; + } } } } + BLI_pbvh_vertex_iter_end; BLI_pbvh_node_mark_update(nodes[n]); } co[0] = co[1] = co[2] = 0.0f; for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) - add_v3_v3v3(co, co, ss->mvert[outer_index[i]].co); + if(outer_dist[i] >= 0.0f) + add_v3_v3v3(co, co, outer_co[i]); mul_v3_fl(co, 1.0f / FLATTEN_SAMPLE_SIZE); } @@ -1122,41 +1191,45 @@ static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, PBVHNode **node #pragma omp parallel for private(n) schedule(static) for(n=0; n FLT_EPSILON) - mul_v3_fl(val, fade / bstr); + BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + float intr[3], val[3]; + + if(!clay || plane_point_side(vd.co, area_normal, cntr2, flip)) { + const float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; + + /* Find the intersection between squash-plane and vertex (along the area normal) */ + point_plane_project(intr, vd.co, area_normal, cntr); + + sub_v3_v3v3(val, intr, vd.co); + + if(clay) { + if(bstr > FLT_EPSILON) + mul_v3_fl(val, fade / bstr); + else + mul_v3_fl(val, fade); + /* Clay displacement */ + val[0]+=area_normal[0] * ss->cache->scale[0]*fade; + val[1]+=area_normal[1] * ss->cache->scale[1]*fade; + val[2]+=area_normal[2] * ss->cache->scale[2]*fade; + } else - mul_v3_fl(val, fade); - /* Clay displacement */ - val[0]+=area_normal[0] * ss->cache->scale[0]*fade; - val[1]+=area_normal[1] * ss->cache->scale[1]*fade; - val[2]+=area_normal[2] * ss->cache->scale[2]*fade; - } - else - mul_v3_fl(val, fabs(fade)); + mul_v3_fl(val, fabs(fade)); - add_v3_v3v3(val, val, vd.co); + add_v3_v3v3(val, val, vd.co); - sculpt_clip(sd, ss, vd.co, val); - ss->mvert[vd.index].flag |= ME_VERT_PBVH_UPDATE; + sculpt_clip(sd, ss, vd.co, val); + if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + } } } + BLI_pbvh_vertex_iter_end; BLI_pbvh_node_mark_update(nodes[n]); } @@ -1312,7 +1385,7 @@ char sculpt_modifiers_active(Object *ob) ModifierData *md; for(md= modifiers_getVirtualModifierList(ob); md; md= md->next) { - if(md->mode & eModifierMode_Realtime && md->type != eModifierType_Multires) + if(modifier_isEnabled(md, eModifierMode_Realtime) && md->type != eModifierType_Multires) return 1; } @@ -1346,9 +1419,7 @@ struct MultiresModifierData *sculpt_multires_active(Object *ob) void sculpt_update_mesh_elements(bContext *C, int need_fmap) { Object *ob = CTX_data_active_object(C); - DerivedMesh *dm = - mesh_get_derived_final(CTX_data_scene(C), ob, - CTX_wm_view3d(C)->customdata_mask); + DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, 0); SculptSession *ss = ob->sculpt; if((ss->multires = sculpt_multires_active(ob))) { @@ -1611,36 +1682,6 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P } } -/* XXX: Code largely copied from bvhutils.c, should be unified */ -/* Returns 1 if a better intersection has been found */ -static int ray_face_intersection(float ray_start[3], float ray_normal[3], - float *t0, float *t1, float *t2, float *t3, - float *fdist) -{ - int hit = 0; - - do - { - float dist = FLT_MAX; - - if(!isect_ray_tri_v3(ray_start, ray_normal, t0, t1, t2, - &dist, NULL)) - dist = FLT_MAX; - - if(dist >= 0 && dist < *fdist) { - hit = 1; - *fdist = dist; - } - - t1 = t2; - t2 = t3; - t3 = NULL; - - } while(t2); - - return hit; -} - typedef struct { SculptSession *ss; float *ray_start, *ray_normal; @@ -1652,53 +1693,16 @@ typedef struct { void sculpt_raycast_cb(PBVHNode *node, void *data_v) { SculptRaycastData *srd = data_v; - MVert *vert = srd->ss->mvert; - int i, totface, *faces, *face_verts; + float (*origco)[3]= NULL; if(srd->original && srd->ss->cache) { - SculptUndoNode *unode; - - unode= sculpt_undo_get_node(srd->ss, node); - - if(unode) { - /* intersect with coordinates from before we started stroke */ - BLI_pbvh_node_get_faces(node, &faces, &face_verts, &totface); - - for(i = 0; i < totface; ++i) { - MFace *f = srd->ss->mface + faces[i]; - /*if(face_verts[i*4 + 0] >= unode->totvert) abort(); - if(face_verts[i*4 + 1] >= unode->totvert) abort(); - if(face_verts[i*4 + 2] >= unode->totvert) abort(); - if(f->v4 && face_verts[i*4 + 3] >= unode->totvert) abort();*/ - - if(ray_face_intersection(srd->ray_start, srd->ray_normal, - unode->co[face_verts[i*4+0]], - unode->co[face_verts[i*4+1]], - unode->co[face_verts[i*4+2]], - f->v4? unode->co[face_verts[i*4+3]]: NULL, - &srd->dist)) { - srd->hit = faces[i]; - } - } - - return; - } + /* intersect with coordinates from before we started stroke */ + SculptUndoNode *unode= sculpt_undo_get_node(srd->ss, node); + origco= (unode)? unode->co: NULL; } - /* intersect with current coordinates */ - BLI_pbvh_node_get_faces(node, &faces, NULL, &totface); - - for(i = 0; i < totface; ++i) { - MFace *f = srd->ss->mface + faces[i]; - if(ray_face_intersection(srd->ray_start, srd->ray_normal, - vert[f->v1].co, - vert[f->v2].co, - vert[f->v3].co, - f->v4 ? vert[f->v4].co : NULL, - &srd->dist)) { - srd->hit = faces[i]; - } - } + srd->hit |= BLI_pbvh_node_raycast(srd->ss->tree, node, origco, + srd->ray_start, srd->ray_normal, &srd->dist); } /* Do a raycast in the tree to find the 3d brush location @@ -1721,7 +1725,7 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou srd.ray_start = ray_start; srd.ray_normal = ray_normal; srd.dist = FLT_MAX; - srd.hit = -1; + srd.hit = 0; srd.original = (cache)? cache->original: 0; BLI_pbvh_raycast(ss->tree, sculpt_raycast_cb, &srd, ray_start, ray_normal, srd.original); @@ -1730,7 +1734,7 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou mul_v3_fl(out, srd.dist); add_v3_v3v3(out, out, ray_start); - return srd.hit != -1; + return srd.hit; } /* Initialize stroke operator properties */ @@ -1794,20 +1798,25 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) /* Restore the mesh before continuing with anchored stroke */ if(brush->flag & BRUSH_ANCHORED) { - ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH); - SculptUndoNode *unode; - - /* this could benefit from multithreading... */ + PBVHNode **nodes; + int n, totnode; - for(unode = lb->first; unode; unode = unode->next) { - float (*co)[3]= unode->co; - short (*no)[3]= unode->no; - int *index= unode->index; - int totvert= unode->totvert; + BLI_pbvh_search_gather(ss->tree, NULL, NULL, &nodes, &totnode); - for(i = 0; i < totvert; ++i) { - copy_v3_v3(ss->mvert[index[i]].co, co[i]); - VECCOPY(ss->mvert[index[i]].no, no[i]); + #pragma omp parallel for private(n) schedule(static) + for(n=0; ntree, nodes[n], vd, PBVH_ITER_UNIQUE) { + copy_v3_v3(vd.co, unode->co[vd.i]); + if(vd.no) VECCOPY(vd.no, unode->no[vd.i]) + else normal_short_to_float_v3(vd.fno, unode->no[vd.i]); + } + BLI_pbvh_vertex_iter_end; } } @@ -1831,14 +1840,8 @@ static void sculpt_flush_update(bContext *C) rcti r; int redraw = 0; - if(mmd) { - if(mmd->undo_verts && mmd->undo_verts != ss->mvert) - MEM_freeN(mmd->undo_verts); - - mmd->undo_verts = ss->mvert; - mmd->undo_verts_tot = ss->totvert; + if(mmd) multires_mark_as_modified(ob); - } BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL); redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r); @@ -2024,10 +2027,14 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *op) { ToolSettings *ts = CTX_data_tool_settings(C); Object *ob = CTX_data_active_object(C); + //MultiresModifierData *mmd = sculpt_multires_active(ob); if(ob->mode & OB_MODE_SCULPT) { multires_force_update(ob); + /*if(mmd && mmd->sculptlvl != mmd->lvl) + DAG_id_flush_update(&ob->id, OB_RECALC_DATA);*/ + /* Leave sculptmode */ ob->mode &= ~OB_MODE_SCULPT; @@ -2035,8 +2042,10 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *op) } else { /* Enter sculptmode */ - ob->mode |= OB_MODE_SCULPT; + + /*if(mmd && mmd->sculptlvl != mmd->lvl) + DAG_id_flush_update(&ob->id, OB_RECALC_DATA);*/ /* Create persistent sculpt mode data */ if(!ts->sculpt) diff --git a/source/blender/gpu/gpu_buffers.h b/source/blender/gpu/gpu_buffers.h index eceb0cdeca4..5531ccc813b 100644 --- a/source/blender/gpu/gpu_buffers.h +++ b/source/blender/gpu/gpu_buffers.h @@ -126,13 +126,17 @@ GPUDrawObject *GPU_drawobject_new( struct DerivedMesh *dm ); void GPU_drawobject_free( struct DerivedMesh *dm ); /* Buffers for non-DerivedMesh drawing */ -void *GPU_build_buffers(struct GHash *map, struct MVert *mvert, +void *GPU_build_mesh_buffers(struct GHash *map, struct MVert *mvert, struct MFace *mface, int *face_indices, int totface, int *vert_indices, int uniq_verts, int totvert); -void GPU_draw_buffers(void *buffers); -void GPU_update_buffers(void *buffers, struct MVert *mvert, +void GPU_update_mesh_buffers(void *buffers, struct MVert *mvert, int *vert_indices, int totvert); +void *GPU_build_grid_buffers(struct DMGridData **grids, + int *grid_indices, int totgrid, int gridsize); +void GPU_update_grid_buffers(void *buffers_v, struct DMGridData **grids, + int *grid_indices, int totgrid, int gridsize); +void GPU_draw_buffers(void *buffers); void GPU_free_buffers(void *buffers); /* called before drawing */ diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index a6adf8a16a1..65b81835cf9 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -30,6 +30,7 @@ * ***** END GPL LICENSE BLOCK ***** */ +#include #include #include "GL/glew.h" @@ -388,11 +389,12 @@ typedef struct { } VertexBufferFormat; typedef struct { - unsigned int vert_buf, tri_buf; - unsigned short tot_tri; + GLuint vert_buf, index_buf; + GLenum index_type; + unsigned int tot_tri, tot_quad; } GPU_Buffers; -void GPU_update_buffers(void *buffers_v, MVert *mvert, +void GPU_update_mesh_buffers(void *buffers_v, MVert *mvert, int *vert_indices, int totvert) { GPU_Buffers *buffers = buffers_v; @@ -414,11 +416,9 @@ void GPU_update_buffers(void *buffers_v, MVert *mvert, memcpy(out->no, v->no, sizeof(short) * 3); } glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); - - //printf("node updated %p\n", buffers_v); } -void *GPU_build_buffers(GHash *map, MVert *mvert, MFace *mface, +void *GPU_build_mesh_buffers(GHash *map, MVert *mvert, MFace *mface, int *face_indices, int totface, int *vert_indices, int tot_uniq_verts, int totvert) @@ -428,14 +428,15 @@ void *GPU_build_buffers(GHash *map, MVert *mvert, MFace *mface, int i, j, k, tottri; buffers = MEM_callocN(sizeof(GPU_Buffers), "GPU_Buffers"); + buffers->index_type = GL_UNSIGNED_SHORT; /* Count the number of triangles */ for(i = 0, tottri = 0; i < totface; ++i) tottri += mface[face_indices[i]].v4 ? 2 : 1; /* Generate index buffer object */ - glGenBuffersARB(1, &buffers->tri_buf); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->tri_buf); + glGenBuffersARB(1, &buffers->index_buf); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW_ARB); @@ -470,24 +471,129 @@ void *GPU_build_buffers(GHash *map, MVert *mvert, MFace *mface, /* Build VBO */ glGenBuffersARB(1, &buffers->vert_buf); - GPU_update_buffers(buffers, mvert, vert_indices, totvert); + GPU_update_mesh_buffers(buffers, mvert, vert_indices, totvert); buffers->tot_tri = tottri; return buffers; } +void GPU_update_grid_buffers(void *buffers_v, DMGridData **grids, + int *grid_indices, int totgrid, int gridsize) +{ + GPU_Buffers *buffers = buffers_v; + DMGridData *vert_data; + int i, totvert; + + totvert= gridsize*gridsize*totgrid; + + /* Build VBO */ + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, + sizeof(DMGridData) * totvert, + NULL, GL_STATIC_DRAW_ARB); + vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + + for(i = 0; i < totgrid; ++i) { + DMGridData *grid= grids[grid_indices[i]]; + memcpy(vert_data, grid, sizeof(DMGridData)*gridsize*gridsize); + vert_data += gridsize*gridsize; + } + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + + //printf("node updated %p\n", buffers_v); +} + +void *GPU_build_grid_buffers(DMGridData **grids, + int *grid_indices, int totgrid, int gridsize) +{ + GPU_Buffers *buffers; + int i, j, k, totquad, offset= 0; + + buffers = MEM_callocN(sizeof(GPU_Buffers), "GPU_Buffers"); + + /* Count the number of quads */ + totquad= (gridsize-1)*(gridsize-1)*totgrid; + + /* Generate index buffer object */ + glGenBuffersARB(1, &buffers->index_buf); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + + if(totquad < USHRT_MAX) { + unsigned short *quad_data; + + buffers->index_type = GL_UNSIGNED_SHORT; + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned short) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); + + /* Fill the quad buffer */ + quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + for(i = 0; i < totgrid; ++i) { + for(j = 0; j < gridsize-1; ++j) { + for(k = 0; k < gridsize-1; ++k) { + *(quad_data++)= offset + j*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k+1; + *(quad_data++)= offset + j*gridsize + k+1; + } + } + + offset += gridsize*gridsize; + } + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + } + else { + unsigned int *quad_data; + + buffers->index_type = GL_UNSIGNED_INT; + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned int) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); + + /* Fill the quad buffer */ + quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + for(i = 0; i < totgrid; ++i) { + for(j = 0; j < gridsize-1; ++j) { + for(k = 0; k < gridsize-1; ++k) { + *(quad_data++)= offset + j*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k+1; + *(quad_data++)= offset + j*gridsize + k+1; + } + } + + offset += gridsize*gridsize; + } + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + } + + /* Build VBO */ + glGenBuffersARB(1, &buffers->vert_buf); + GPU_update_grid_buffers(buffers, grids, grid_indices, totgrid, gridsize); + + buffers->tot_quad = totquad; + + return buffers; +} + void GPU_draw_buffers(void *buffers_v) { GPU_Buffers *buffers = buffers_v; glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->tri_buf); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + + if(buffers->tot_quad) { + glVertexPointer(3, GL_FLOAT, sizeof(DMGridData), 0); + glNormalPointer(GL_FLOAT, sizeof(DMGridData), (void*)offsetof(DMGridData, no)); - glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat), 0); - glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat), (void*)12); + glDrawElements(GL_QUADS, buffers->tot_quad * 4, buffers->index_type, 0); + } + else { + glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat), 0); + glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat), (void*)offsetof(VertexBufferFormat, no)); - glDrawElements(GL_TRIANGLES, buffers->tot_tri * 3, GL_UNSIGNED_SHORT, 0); + glDrawElements(GL_TRIANGLES, buffers->tot_tri * 3, buffers->index_type, 0); + } } void GPU_free_buffers(void *buffers_v) @@ -496,7 +602,7 @@ void GPU_free_buffers(void *buffers_v) GPU_Buffers *buffers = buffers_v; glDeleteBuffersARB(1, &buffers->vert_buf); - glDeleteBuffersARB(1, &buffers->tri_buf); + glDeleteBuffersARB(1, &buffers->index_buf); MEM_freeN(buffers); } -- cgit v1.2.3 From fffce6c5545c3072d2dd266dfe5c133b760baebe Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Nov 2009 14:07:12 +0000 Subject: Sculpt: Multires * Displacement coordinates are now stored differently, as a grid per face corner. This means there is duplication of coordinates, especially at low subdivision levels, but the simpler implementation justifies it I think. * ToDo: conversion of existing multires files (2.4x or 2.5x), loading them may even crash now. * Editmode preservation/interpolation code also has not been updated yet. * Multires now works on the CCGDerivedMesh grids instead of CDDerivedMesh, which should be more memory efficient. * There are still bad memory peaks (if you're using 32bit) when subdividing or propagating displacements. Though at least there should be no huge memory blocks allocated, which windows is now to have trouble with. * Still found some weird spike artifacts at lower multires levels, some also happening before this commit. Perhaps computation of tangents needs to be tweaked more. * Multires modifier now has viewport, sculpt and render levels. Also the levels have been made consistent with subsurf, previously the same level of subdivision was one less for multires. * Both multires and subsurf modifier now can have their subdivision level set to 0 for no subdivision. --- source/blender/blenkernel/BKE_modifier.h | 2 +- source/blender/blenkernel/BKE_multires.h | 20 +- source/blender/blenkernel/intern/DerivedMesh.c | 2 +- source/blender/blenkernel/intern/cdderivedmesh.c | 212 ---- source/blender/blenkernel/intern/customdata.c | 8 + source/blender/blenkernel/intern/displist.c | 6 +- source/blender/blenkernel/intern/lattice.c | 2 +- source/blender/blenkernel/intern/modifier.c | 95 +- source/blender/blenkernel/intern/multires.c | 1396 +++++++--------------- source/blender/blenloader/intern/readfile.c | 14 +- source/blender/blenloader/intern/writefile.c | 6 - source/blender/editors/object/object_modifier.c | 13 +- source/blender/editors/sculpt_paint/sculpt.c | 10 +- source/blender/makesdna/DNA_modifier_types.h | 8 +- source/blender/makesrna/intern/rna_modifier.c | 64 +- 15 files changed, 582 insertions(+), 1276 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h index 245db7e35ff..3018f89178e 100644 --- a/source/blender/blenkernel/BKE_modifier.h +++ b/source/blender/blenkernel/BKE_modifier.h @@ -228,7 +228,7 @@ typedef struct ModifierTypeInfo { * * This function is optional (assumes never disabled if not present). */ - int (*isDisabled)(struct ModifierData *md); + int (*isDisabled)(struct ModifierData *md, int userRenderParams); /* Add the appropriate relations to the DEP graph depending on the * modifier data. diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index a331479cad1..53ead3a5eda 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -39,23 +39,6 @@ typedef struct MultiresSubsurf { int local_mmd; } MultiresSubsurf; -/* MultiresDM */ -struct Object *MultiresDM_get_object(struct DerivedMesh *dm); -struct Mesh *MultiresDM_get_mesh(struct DerivedMesh *dm); -struct DerivedMesh *MultiresDM_new(struct MultiresSubsurf *, struct DerivedMesh*, int, int, int); -void *MultiresDM_get_vertnorm(struct DerivedMesh *); -void *MultiresDM_get_orco(struct DerivedMesh *); -struct MVert *MultiresDM_get_subco(struct DerivedMesh *); -struct ListBase *MultiresDM_get_vert_face_map(struct DerivedMesh *); -struct ListBase *MultiresDM_get_vert_edge_map(struct DerivedMesh *); -int *MultiresDM_get_face_offsets(struct DerivedMesh *); -int MultiresDM_get_totlvl(struct DerivedMesh *); -int MultiresDM_get_lvl(struct DerivedMesh *); -void MultiresDM_set_update(struct DerivedMesh *, void (*)(struct DerivedMesh*)); - -/* The displacements will only be updated when - the MultiresDM has been marked as modified */ -void MultiresDM_mark_as_modified(struct DerivedMesh *); void multires_mark_as_modified(struct Object *ob); void multires_force_update(struct Object *ob); @@ -64,10 +47,9 @@ struct DerivedMesh *multires_dm_create_from_derived(struct MultiresModifierData* struct Object *, int, int); struct MultiresModifierData *find_multires_modifier(struct Object *ob); -int multiresModifier_switch_level(struct Object *, const int); void multiresModifier_join(struct Object *); void multiresModifier_del_levels(struct MultiresModifierData *, struct Object *, int direction); -void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct Object *ob, int distance, +void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct Object *ob, int updateblock, int simple); int multiresModifier_reshape(struct MultiresModifierData *mmd, struct Object *dst, struct Object *src); diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 5a911fcb13b..b715b1531de 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1535,7 +1535,7 @@ DerivedMesh *mesh_create_derived_for_modifier(Scene *scene, Object *ob, Modifier md->scene= scene; if (!(md->mode&eModifierMode_Realtime)) return NULL; - if (mti->isDisabled && mti->isDisabled(md)) return NULL; + if (mti->isDisabled && mti->isDisabled(md, 0)) return NULL; if (mti->type==eModifierTypeType_OnlyDeform) { int numVerts; diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 3007564e333..b3e75549028 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -1810,215 +1810,3 @@ MFace *CDDM_get_faces(DerivedMesh *dm) return ((CDDerivedMesh*)dm)->mface; } -/* Multires DerivedMesh, extends CDDM */ -typedef struct MultiresDM { - CDDerivedMesh cddm; - - MultiresModifierData *mmd; - int local_mmd; - - int lvl, totlvl; - float (*orco)[3]; - MVert *subco; - - ListBase *vert_face_map, *vert_edge_map; - IndexNode *vert_face_map_mem, *vert_edge_map_mem; - int *face_offsets; - - Object *ob; - int modified; - - void (*update)(DerivedMesh*); -} MultiresDM; - -static void MultiresDM_release(DerivedMesh *dm) -{ - MultiresDM *mrdm = (MultiresDM*)dm; - int mvert_layer; - - /* Before freeing, need to update the displacement map */ - if(dm->needsFree && mrdm->modified) { - /* Check that mmd still exists */ - if(!mrdm->local_mmd && BLI_findindex(&mrdm->ob->modifiers, mrdm->mmd) < 0) - mrdm->mmd = NULL; - if(mrdm->mmd) - mrdm->update(dm); - } - - /* If the MVert data is being used as the sculpt undo store, don't free it */ - mvert_layer = CustomData_get_layer_index(&dm->vertData, CD_MVERT); - if(mvert_layer != -1) { - CustomDataLayer *cd = &dm->vertData.layers[mvert_layer]; - if(mrdm->mmd && cd->data == mrdm->mmd->undo_verts) - cd->flag |= CD_FLAG_NOFREE; - } - - if(DM_release(dm)) { - cdDM_free_internal(&mrdm->cddm); - MEM_freeN(mrdm->subco); - MEM_freeN(mrdm->orco); - if(mrdm->vert_face_map) - MEM_freeN(mrdm->vert_face_map); - if(mrdm->vert_face_map_mem) - MEM_freeN(mrdm->vert_face_map_mem); - if(mrdm->vert_edge_map) - MEM_freeN(mrdm->vert_edge_map); - if(mrdm->vert_edge_map_mem) - MEM_freeN(mrdm->vert_edge_map_mem); - if(mrdm->face_offsets) - MEM_freeN(mrdm->face_offsets); - MEM_freeN(mrdm); - } -} - -DerivedMesh *MultiresDM_new(MultiresSubsurf *ms, DerivedMesh *orig, int numVerts, int numEdges, int numFaces) -{ - MultiresDM *mrdm = MEM_callocN(sizeof(MultiresDM), "MultiresDM"); - CDDerivedMesh *cddm = cdDM_create("MultiresDM CDDM"); - DerivedMesh *dm = NULL; - - mrdm->cddm = *cddm; - MEM_freeN(cddm); - dm = &mrdm->cddm.dm; - - mrdm->mmd = ms->mmd; - mrdm->ob = ms->ob; - mrdm->local_mmd = ms->local_mmd; - - if(dm) { - MDisps *disps; - MVert *mvert; - int i; - - DM_from_template(dm, orig, numVerts, numEdges, numFaces); - CustomData_free_layers(&dm->faceData, CD_MDISPS, numFaces); - - disps = CustomData_get_layer(&orig->faceData, CD_MDISPS); - if(disps) - CustomData_add_layer(&dm->faceData, CD_MDISPS, CD_REFERENCE, disps, numFaces); - - - mvert = CustomData_get_layer(&orig->vertData, CD_MVERT); - mrdm->orco = MEM_callocN(sizeof(float) * 3 * orig->getNumVerts(orig), "multires orco"); - for(i = 0; i < orig->getNumVerts(orig); ++i) - copy_v3_v3(mrdm->orco[i], mvert[i].co); - } - else - DM_init(dm, numVerts, numEdges, numFaces); - - if(!CustomData_get_layer(&dm->vertData, CD_ORIGINDEX)) - CustomData_add_layer(&dm->vertData, CD_ORIGINDEX, CD_CALLOC, NULL, numVerts); - if(!CustomData_get_layer(&dm->edgeData, CD_ORIGINDEX)) - CustomData_add_layer(&dm->edgeData, CD_ORIGINDEX, CD_CALLOC, NULL, numEdges); - if(!CustomData_get_layer(&dm->faceData, CD_ORIGINDEX)) - CustomData_add_layer(&dm->faceData, CD_ORIGINDEX, CD_CALLOC, NULL, numFaces); - - CustomData_add_layer(&dm->vertData, CD_MVERT, CD_CALLOC, NULL, numVerts); - CustomData_add_layer(&dm->edgeData, CD_MEDGE, CD_CALLOC, NULL, numEdges); - CustomData_add_layer(&dm->faceData, CD_MFACE, CD_CALLOC, NULL, numFaces); - - mrdm->cddm.mvert = CustomData_get_layer(&dm->vertData, CD_MVERT); - mrdm->cddm.medge = CustomData_get_layer(&dm->edgeData, CD_MEDGE); - mrdm->cddm.mface = CustomData_get_layer(&dm->faceData, CD_MFACE); - - mrdm->lvl = ms->mmd->lvl; - mrdm->totlvl = ms->mmd->totlvl; - mrdm->subco = MEM_callocN(sizeof(MVert)*numVerts, "multires subdivided verts"); - mrdm->modified = 0; - - dm->release = MultiresDM_release; - - return dm; -} - -Mesh *MultiresDM_get_mesh(DerivedMesh *dm) -{ - return get_mesh(((MultiresDM*)dm)->ob); -} - -Object *MultiresDM_get_object(DerivedMesh *dm) -{ - return ((MultiresDM*)dm)->ob; -} - -void *MultiresDM_get_orco(DerivedMesh *dm) -{ - return ((MultiresDM*)dm)->orco; - -} - -MVert *MultiresDM_get_subco(DerivedMesh *dm) -{ - return ((MultiresDM*)dm)->subco; -} - -int MultiresDM_get_totlvl(DerivedMesh *dm) -{ - return ((MultiresDM*)dm)->totlvl; -} - -int MultiresDM_get_lvl(DerivedMesh *dm) -{ - return ((MultiresDM*)dm)->lvl; -} - -void MultiresDM_set_orco(DerivedMesh *dm, float (*orco)[3]) -{ - ((MultiresDM*)dm)->orco = orco; -} - -void MultiresDM_set_update(DerivedMesh *dm, void (*update)(DerivedMesh*)) -{ - ((MultiresDM*)dm)->update = update; -} - -ListBase *MultiresDM_get_vert_face_map(DerivedMesh *dm) -{ - MultiresDM *mrdm = (MultiresDM*)dm; - Mesh *me = mrdm->ob->data; - - if(!mrdm->vert_face_map) - create_vert_face_map(&mrdm->vert_face_map, &mrdm->vert_face_map_mem, me->mface, - me->totvert, me->totface); - - return mrdm->vert_face_map; -} - -ListBase *MultiresDM_get_vert_edge_map(DerivedMesh *dm) -{ - MultiresDM *mrdm = (MultiresDM*)dm; - Mesh *me = mrdm->ob->data; - - if(!mrdm->vert_edge_map) - create_vert_edge_map(&mrdm->vert_edge_map, &mrdm->vert_edge_map_mem, me->medge, - me->totvert, me->totedge); - - return mrdm->vert_edge_map; -} - -int *MultiresDM_get_face_offsets(DerivedMesh *dm) -{ - MultiresDM *mrdm = (MultiresDM*)dm; - Mesh *me = mrdm->ob->data; - int i, accum = 0; - - if(!mrdm->face_offsets) { - int len = (int)pow(2, mrdm->lvl - 2) - 1; - int area = len * len; - int t = 1 + len * 3 + area * 3, q = t + len + area; - - mrdm->face_offsets = MEM_callocN(sizeof(int) * me->totface, "mrdm face offsets"); - for(i = 0; i < me->totface; ++i) { - mrdm->face_offsets[i] = accum; - - accum += (me->mface[i].v4 ? q : t); - } - } - - return mrdm->face_offsets; -} - -void MultiresDM_mark_as_modified(DerivedMesh *dm) -{ - ((MultiresDM*)dm)->modified = 1; -} diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 7b754025b6c..4844595513f 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -381,6 +381,7 @@ static void layerDefault_origspace_face(void *data, int count) osf[i] = default_osf; } +#if 0 /* Adapted from sculptmode.c */ static void mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v) { @@ -426,9 +427,12 @@ static void mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, fl add_v3_v3v3(out, d2[0], d2[1]); } +#endif static void layerSwap_mdisps(void *data, int *ci) { + // XXX +#if 0 MDisps *s = data; float (*d)[3] = NULL; int x, y, st; @@ -447,11 +451,14 @@ static void layerSwap_mdisps(void *data, int *ci) if(s->disps) MEM_freeN(s->disps); s->disps = d; +#endif } static void layerInterp_mdisps(void **sources, float *weights, float *sub_weights, int count, void *dest) { + // XXX +#if 0 MDisps *d = dest; MDisps *s = NULL; int st, stl; @@ -496,6 +503,7 @@ static void layerInterp_mdisps(void **sources, float *weights, float *sub_weight copy_v3_v3(d->disps[y * st + x], srcdisp); } } +#endif } static void layerCopy_mdisps(const void *source, void *dest, int count) diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 48fb283c404..b35cf917895 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -1225,7 +1225,7 @@ static ModifierData *curve_get_tesselate_point(Object *ob, int forRender, int ed ModifierTypeInfo *mti = modifierType_getInfo(md->type); if ((md->mode & required_mode) != required_mode) continue; - if (mti->isDisabled && mti->isDisabled(md)) continue; + if (mti->isDisabled && mti->isDisabled(md, forRender)) continue; if (ELEM3(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_MeshDeform)) { preTesselatePoint = md; @@ -1275,7 +1275,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl md->scene= scene; if ((md->mode & required_mode) != required_mode) continue; - if (mti->isDisabled && mti->isDisabled(md)) continue; + if (mti->isDisabled && mti->isDisabled(md, forRender)) continue; if (mti->type!=eModifierTypeType_OnlyDeform) continue; if (!deformedVerts) { @@ -1330,7 +1330,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba md->scene= scene; if ((md->mode & required_mode) != required_mode) continue; - if (mti->isDisabled && mti->isDisabled(md)) continue; + if (mti->isDisabled && mti->isDisabled(md, forRender)) continue; if (mti->type!=eModifierTypeType_OnlyDeform && mti->type!=eModifierTypeType_DeformOrConstruct) continue; /* need to put all verts in 1 block for curve deform */ diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c index dc548edbb25..e963b2e9fb6 100644 --- a/source/blender/blenkernel/intern/lattice.c +++ b/source/blender/blenkernel/intern/lattice.c @@ -1002,7 +1002,7 @@ void lattice_calc_modifiers(Scene *scene, Object *ob) if (!(md->mode&eModifierMode_Realtime)) continue; if (editmode && !(md->mode&eModifierMode_Editmode)) continue; - if (mti->isDisabled && mti->isDisabled(md)) continue; + if (mti->isDisabled && mti->isDisabled(md, 0)) continue; if (mti->type!=eModifierTypeType_OnlyDeform) continue; if (!vertexCos) vertexCos = lattice_getVertexCos(ob, &numVerts); diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 50c907fd1ca..d8c05c30cfe 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -187,7 +187,7 @@ static DerivedMesh *get_original_dm(Scene *scene, Object *ob, float (*vertexCos) /***/ -static int noneModifier_isDisabled(ModifierData *md) +static int noneModifier_isDisabled(ModifierData *md, int userRenderParams) { return 1; } @@ -222,7 +222,7 @@ static CustomDataMask curveModifier_requiredDataMask(Object *ob, ModifierData *m return dataMask; } -static int curveModifier_isDisabled(ModifierData *md) +static int curveModifier_isDisabled(ModifierData *md, int userRenderParams) { CurveModifierData *cmd = (CurveModifierData*) md; @@ -298,7 +298,7 @@ static CustomDataMask latticeModifier_requiredDataMask(Object *ob, ModifierData return dataMask; } -static int latticeModifier_isDisabled(ModifierData *md) +static int latticeModifier_isDisabled(ModifierData *md, int userRenderParams) { LatticeModifierData *lmd = (LatticeModifierData*) md; @@ -402,6 +402,13 @@ static void subsurfModifier_freeData(ModifierData *md) } } +static int subsurfModifier_isDisabled(ModifierData *md, int useRenderParams) +{ + SubsurfModifierData *smd = (SubsurfModifierData*) md; + + return (useRenderParams)? (smd->renderLevels == 0): (smd->levels == 0); +} + static DerivedMesh *subsurfModifier_applyModifier( ModifierData *md, Object *ob, DerivedMesh *derivedData, int useRenderParams, int isFinalCalc) @@ -410,8 +417,13 @@ static DerivedMesh *subsurfModifier_applyModifier( DerivedMesh *result; result = subsurf_make_derived_from_derived(derivedData, smd, - useRenderParams, NULL, - isFinalCalc, 0); + useRenderParams, NULL, isFinalCalc, 0); + + if(useRenderParams || !isFinalCalc) { + DerivedMesh *cddm= CDDM_copy(result); + result->release(result); + result= cddm; + } return result; } @@ -3524,7 +3536,7 @@ static void displaceModifier_foreachIDLink(ModifierData *md, Object *ob, displaceModifier_foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); } -static int displaceModifier_isDisabled(ModifierData *md) +static int displaceModifier_isDisabled(ModifierData *md, int useRenderParams) { DisplaceModifierData *dmd = (DisplaceModifierData*) md; @@ -4268,7 +4280,7 @@ static void smoothModifier_copyData(ModifierData *md, ModifierData *target) strncpy(tsmd->defgrp_name, smd->defgrp_name, 32); } -static int smoothModifier_isDisabled(ModifierData *md) +static int smoothModifier_isDisabled(ModifierData *md, int useRenderParams) { SmoothModifierData *smd = (SmoothModifierData*) md; short flag; @@ -4498,7 +4510,7 @@ static void castModifier_copyData(ModifierData *md, ModifierData *target) strncpy(tcmd->defgrp_name, cmd->defgrp_name, 32); } -static int castModifier_isDisabled(ModifierData *md) +static int castModifier_isDisabled(ModifierData *md, int useRenderParams) { CastModifierData *cmd = (CastModifierData*) md; short flag; @@ -5487,7 +5499,7 @@ static CustomDataMask armatureModifier_requiredDataMask(Object *ob, ModifierData return dataMask; } -static int armatureModifier_isDisabled(ModifierData *md) +static int armatureModifier_isDisabled(ModifierData *md, int useRenderParams) { ArmatureModifierData *amd = (ArmatureModifierData*) md; @@ -5610,7 +5622,7 @@ static void hookModifier_freeData(ModifierData *md) if (hmd->indexar) MEM_freeN(hmd->indexar); } -static int hookModifier_isDisabled(ModifierData *md) +static int hookModifier_isDisabled(ModifierData *md, int useRenderParams) { HookModifierData *hmd = (HookModifierData*) md; @@ -6308,7 +6320,7 @@ static void booleanModifier_copyData(ModifierData *md, ModifierData *target) tbmd->operation = bmd->operation; } -static int booleanModifier_isDisabled(ModifierData *md) +static int booleanModifier_isDisabled(ModifierData *md, int useRenderParams) { BooleanModifierData *bmd = (BooleanModifierData*) md; @@ -7757,7 +7769,7 @@ static CustomDataMask meshdeformModifier_requiredDataMask(Object *ob, ModifierDa return dataMask; } -static int meshdeformModifier_isDisabled(ModifierData *md) +static int meshdeformModifier_isDisabled(ModifierData *md, int useRenderParams) { MeshDeformModifierData *mmd = (MeshDeformModifierData*) md; @@ -8047,15 +8059,10 @@ static void multiresModifier_initData(ModifierData *md) { MultiresModifierData *mmd = (MultiresModifierData*)md; - mmd->lvl = mmd->totlvl = 1; -} - -static void multiresModifier_freeData(ModifierData *md) -{ - MultiresModifierData *mmd = (MultiresModifierData*)md; - - if(mmd->undo_verts) - MEM_freeN(mmd->undo_verts); + mmd->lvl = 0; + mmd->sculptlvl = 0; + mmd->renderlvl = 0; + mmd->totlvl = 0; } static void multiresModifier_copyData(ModifierData *md, ModifierData *target) @@ -8063,37 +8070,35 @@ static void multiresModifier_copyData(ModifierData *md, ModifierData *target) MultiresModifierData *mmd = (MultiresModifierData*) md; MultiresModifierData *tmmd = (MultiresModifierData*) target; - tmmd->totlvl = mmd->totlvl; tmmd->lvl = mmd->lvl; + tmmd->sculptlvl = mmd->sculptlvl; + tmmd->renderlvl = mmd->renderlvl; + tmmd->totlvl = mmd->totlvl; } static DerivedMesh *multiresModifier_applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm, int useRenderParams, int isFinalCalc) { MultiresModifierData *mmd = (MultiresModifierData*)md; - DerivedMesh *final; + DerivedMesh *result; - /* TODO: for now just skip a level1 mesh */ - if(mmd->lvl == 1) - return dm; + result = multires_dm_create_from_derived(mmd, 0, dm, ob, useRenderParams, isFinalCalc); - final = multires_dm_create_from_derived(mmd, 0, dm, ob, useRenderParams, isFinalCalc); - if(mmd->undo_signal && mmd->undo_verts && mmd->undo_verts_tot == final->getNumVerts(final)) { - int i; - MVert *dst = CDDM_get_verts(final); - for(i = 0; i < mmd->undo_verts_tot; ++i) { - copy_v3_v3(dst[i].co, mmd->undo_verts[i].co); - } - CDDM_calc_normals(final); - - MultiresDM_mark_as_modified(final); + if(result == dm) + return dm; - MEM_freeN(mmd->undo_verts); - mmd->undo_signal = 0; - mmd->undo_verts = NULL; + if(useRenderParams || !isFinalCalc) { + DerivedMesh *cddm= CDDM_copy(result); + result->release(result); + result= cddm; + } + else if(ob->mode & OB_MODE_SCULPT) { + /* would be created on the fly too, just nicer this + way on first stroke after e.g. switching levels */ + result->getPBVH(ob, result); } - return final; + return result; } /* Shrinkwrap */ @@ -8142,7 +8147,7 @@ static CustomDataMask shrinkwrapModifier_requiredDataMask(Object *ob, ModifierDa return dataMask; } -static int shrinkwrapModifier_isDisabled(ModifierData *md) +static int shrinkwrapModifier_isDisabled(ModifierData *md, int useRenderParams) { ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) md; return !smd->target; @@ -8438,6 +8443,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type) mti->initData = subsurfModifier_initData; mti->copyData = subsurfModifier_copyData; mti->freeData = subsurfModifier_freeData; + mti->isDisabled = subsurfModifier_isDisabled; mti->applyModifier = subsurfModifier_applyModifier; mti->applyModifierEM = subsurfModifier_applyModifierEM; @@ -8770,7 +8776,6 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type) mti->type = eModifierTypeType_Constructive; mti->flags = eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_RequiresOriginalData; mti->initData = multiresModifier_initData; - mti->freeData = multiresModifier_freeData; mti->copyData = multiresModifier_copyData; mti->applyModifier = multiresModifier_applyModifier; @@ -8920,7 +8925,7 @@ int modifier_couldBeCage(ModifierData *md) return ( (md->mode & eModifierMode_Realtime) && (md->mode & eModifierMode_Editmode) && - (!mti->isDisabled || !mti->isDisabled(md)) && + (!mti->isDisabled || !mti->isDisabled(md, 0)) && modifier_supportsMapping(md)); } @@ -8957,7 +8962,7 @@ int modifiers_getCageIndex(Object *ob, int *lastPossibleCageIndex_r, int virtual if (!(md->mode & eModifierMode_Realtime)) continue; if (!(md->mode & eModifierMode_Editmode)) continue; - if (mti->isDisabled && mti->isDisabled(md)) continue; + if (mti->isDisabled && mti->isDisabled(md, 0)) continue; if (!(mti->flags & eModifierTypeFlag_SupportsEditmode)) continue; if (md->mode & eModifierMode_DisableTemporary) continue; @@ -8999,7 +9004,7 @@ int modifier_isEnabled(ModifierData *md, int required_mode) ModifierTypeInfo *mti = modifierType_getInfo(md->type); if((md->mode & required_mode) != required_mode) return 0; - if(mti->isDisabled && mti->isDisabled(md)) return 0; + if(mti->isDisabled && mti->isDisabled(md, required_mode == eModifierMode_Render)) return 0; if(md->mode & eModifierMode_DisableTemporary) return 0; if(required_mode & eModifierMode_Editmode) if(!(mti->flags & eModifierTypeFlag_SupportsEditmode)) return 0; diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index fc14afaf07f..2518d4bc3ca 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -40,6 +40,7 @@ #include "BLI_math.h" #include "BLI_blenlib.h" +#include "BKE_btex.h" #include "BKE_cdderivedmesh.h" #include "BKE_customdata.h" #include "BKE_depsgraph.h" @@ -50,14 +51,19 @@ #include "BKE_multires.h" #include "BKE_object.h" #include "BKE_subsurf.h" +#include "BKE_utildefines.h" + +#include "CCGSubSurf.h" #include #include /* MULTIRES MODIFIER */ static const int multires_max_levels = 13; -static const int multires_quad_tot[] = {4, 9, 25, 81, 289, 1089, 4225, 16641, 66049, 263169, 1050625, 4198401, 16785409}; -static const int multires_side_tot[] = {2, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097}; +static const int multires_grid_tot[] = {1, 4, 9, 25, 81, 289, 1089, 4225, 16641, 66049, 263169, 1050625, 4198401, 16785409}; +static const int multires_side_tot[] = {1, 2, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097}; + +static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, int invert, int add, DMGridData **oldGridData, int totlvl); MultiresModifierData *find_multires_modifier(Object *ob) { @@ -72,23 +78,32 @@ MultiresModifierData *find_multires_modifier(Object *ob) } return mmd; +} +static int multires_get_level(Object *ob, MultiresModifierData *mmd, int render) +{ + if(render) + return mmd->renderlvl; + else if(ob->mode == OB_MODE_SCULPT) + return mmd->sculptlvl; + else + return mmd->lvl; } -int multiresModifier_switch_level(Object *ob, const int distance) +static void multires_set_tot_level(Object *ob, MultiresModifierData *mmd, int lvl) { - MultiresModifierData *mmd = find_multires_modifier(ob); - - if(mmd) { - mmd->lvl += distance; - if(mmd->lvl < 1) mmd->lvl = 1; - else if(mmd->lvl > mmd->totlvl) mmd->lvl = mmd->totlvl; - /* XXX: DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - object_handle_update(ob);*/ - return 1; + mmd->totlvl = lvl; + + if(ob->mode != OB_MODE_SCULPT) { + mmd->lvl = MAX2(mmd->lvl, lvl); + CLAMP(mmd->lvl, 0, mmd->totlvl); } - else - return 0; + + mmd->sculptlvl = MAX2(mmd->sculptlvl, lvl); + CLAMP(mmd->sculptlvl, 0, mmd->totlvl); + + mmd->renderlvl = MAX2(mmd->renderlvl, lvl); + CLAMP(mmd->renderlvl, 0, mmd->totlvl); } /* XXX */ @@ -156,6 +171,8 @@ void multiresModifier_join(Object *ob) /* Returns 0 on success, 1 if the src's totvert doesn't match */ int multiresModifier_reshape(MultiresModifierData *mmd, Object *dst, Object *src) { + /* XXX */ +#if 0 Mesh *src_me = get_mesh(src); DerivedMesh *mrdm = dst->derivedFinal; @@ -172,319 +189,139 @@ int multiresModifier_reshape(MultiresModifierData *mmd, Object *dst, Object *src return 0; } +#endif return 1; } -static void Mat3FromColVecs(float mat[][3], float v1[3], float v2[3], float v3[3]) +static void column_vectors_to_mat3(float mat[][3], float v1[3], float v2[3], float v3[3]) { copy_v3_v3(mat[0], v1); copy_v3_v3(mat[1], v2); copy_v3_v3(mat[2], v3); } -static DerivedMesh *multires_subdisp_pre(DerivedMesh *mrdm, int distance, int simple) +static void multires_copy_grid(float (*gridA)[3], float (*gridB)[3], int sizeA, int sizeB) { - DerivedMesh *final; - SubsurfModifierData smd; - - memset(&smd, 0, sizeof(SubsurfModifierData)); - smd.levels = distance; - if(simple) - smd.subdivType = ME_SIMPLE_SUBSURF; + int x, y, j, skip; - final = NULL; // XXX subsurf_make_derived_from_derived_with_multires(mrdm, &smd, NULL, 0, NULL, 0, 0); + if(sizeA > sizeB) { + skip = (sizeA-1)/(sizeB-1); - return final; -} + for(j = 0, y = 0; y < sizeB; y++) + for(x = 0; x < sizeB; x++, j++) + copy_v3_v3(gridA[y*skip*sizeA + x*skip], gridB[j]); + } + else { + skip = (sizeB-1)/(sizeA-1); -static void VecAddUf(float a[3], float b[3]) -{ - a[0] += b[0]; - a[1] += b[1]; - a[2] += b[2]; + for(j = 0, y = 0; y < sizeA; y++) + for(x = 0; x < sizeA; x++, j++) + copy_v3_v3(gridA[j], gridB[y*skip*sizeB + x*skip]); + } } -static void multires_subdisp(DerivedMesh *orig, Object *ob, DerivedMesh *final, int lvl, int totlvl, - int totsubvert, int totsubedge, int totsubface, int addverts) +static void multires_copy_dm_grid(DMGridData *gridA, DMGridData *gridB, int sizeA, int sizeB) { - DerivedMesh *mrdm; - Mesh *me = ob->data; - MultiresModifierData mmd_sub; - MVert *mvs = CDDM_get_verts(final); - MVert *mvd, *mvd_f1, *mvs_f1, *mvd_f3, *mvd_f4; - MVert *mvd_f2, *mvs_f2, *mvs_e1, *mvd_e1, *mvs_e2; - int totvert; - int slo1 = multires_side_tot[lvl - 1]; - int sll = slo1 / 2; - int slo2 = multires_side_tot[totlvl - 2]; - int shi2 = multires_side_tot[totlvl - 1]; - int skip = multires_side_tot[totlvl - lvl] - 1; - int i, j, k; - - memset(&mmd_sub, 0, sizeof(MultiresModifierData)); - mmd_sub.lvl = mmd_sub.totlvl = totlvl; - mrdm = multires_dm_create_from_derived(&mmd_sub, 1, orig, ob, 0, 0); - - mvd = CDDM_get_verts(mrdm); - /* Need to map from ccg to mrdm */ - totvert = mrdm->getNumVerts(mrdm); - - if(!addverts) { - for(i = 0; i < totvert; ++i) { - float z[3] = {0,0,0}; - copy_v3_v3(mvd[i].co, z); - } - } - - /* Load base verts */ - for(i = 0; i < me->totvert; ++i) - VecAddUf(mvd[totvert - me->totvert + i].co, mvs[totvert - me->totvert + i].co); - - mvd_f1 = mvd; - mvs_f1 = mvs; - mvd_f2 = mvd; - mvs_f2 = mvs + totvert - totsubvert; - mvs_e1 = mvs + totsubface * (skip-1) * (skip-1); - - for(i = 0; i < me->totface; ++i) { - const int end = me->mface[i].v4 ? 4 : 3; - int x, y, x2, y2, mov= 0; - - mvd_f1 += 1 + end * (slo2-2); //center+edgecross - mvd_f3 = mvd_f4 = mvd_f1; - - for(j = 0; j < end; ++j) { - mvd_f1 += (skip/2 - 1) * (slo2 - 2) + (skip/2 - 1); - /* Update sub faces */ - for(y = 0; y < sll; ++y) { - for(x = 0; x < sll; ++x) { - /* Face center */ - VecAddUf(mvd_f1->co, mvs_f1->co); - mvs_f1 += 1; - - /* Now we hold the center of the subface at mvd_f1 - and offset it to the edge cross and face verts */ - - /* Edge cross */ - for(k = 0; k < 4; ++k) { - if(k == 0) mov = -1; - else if(k == 1) mov = slo2 - 2; - else if(k == 2) mov = 1; - else if(k == 3) mov = -(slo2 - 2); - - for(x2 = 1; x2 < skip/2; ++x2) { - VecAddUf((mvd_f1 + mov * x2)->co, mvs_f1->co); - ++mvs_f1; - } - } + int x, y, j, skip; - /* Main face verts */ - for(k = 0; k < 4; ++k) { - int movx= 0, movy= 0; - - if(k == 0) { movx = -1; movy = -(slo2 - 2); } - else if(k == 1) { movx = slo2 - 2; movy = -1; } - else if(k == 2) { movx = 1; movy = slo2 - 2; } - else if(k == 3) { movx = -(slo2 - 2); movy = 1; } - - for(y2 = 1; y2 < skip/2; ++y2) { - for(x2 = 1; x2 < skip/2; ++x2) { - VecAddUf((mvd_f1 + movy * y2 + movx * x2)->co, mvs_f1->co); - ++mvs_f1; - } - } - } - - mvd_f1 += skip; - } - mvd_f1 += (skip - 1) * (slo2 - 2) - 1; - } - mvd_f1 -= (skip - 1) * (slo2 - 2) - 1 + skip; - mvd_f1 += (slo2 - 2) * (skip/2-1) + skip/2-1 + 1; - } - - /* update face center verts */ - VecAddUf(mvd_f2->co, mvs_f2->co); - - mvd_f2 += 1; - mvs_f2 += 1; - - /* update face edge verts */ - for(j = 0; j < end; ++j) { - MVert *restore; - - /* Super-face edge cross */ - for(k = 0; k < skip-1; ++k) { - VecAddUf(mvd_f2->co, mvs_e1->co); - mvd_f2++; - mvs_e1++; - } - for(x = 1; x < sll; ++x) { - VecAddUf(mvd_f2->co, mvs_f2->co); - mvd_f2++; - mvs_f2++; - - for(k = 0; k < skip-1; ++k) { - VecAddUf(mvd_f2->co, mvs_e1->co); - mvd_f2++; - mvs_e1++; - } - } - - restore = mvs_e1; - for(y = 0; y < sll - 1; ++y) { - for(x = 0; x < sll; ++x) { - for(k = 0; k < skip - 1; ++k) { - VecAddUf(mvd_f3[(skip-1)+(y*skip) + (x*skip+k)*(slo2-2)].co, - mvs_e1->co); - ++mvs_e1; - } - mvs_e1 += skip-1; - } - } - - mvs_e1 = restore + skip - 1; - for(y = 0; y < sll - 1; ++y) { - for(x = 0; x < sll; ++x) { - for(k = 0; k < skip - 1; ++k) { - VecAddUf(mvd_f3[(slo2-2)*(skip-1)+(x*skip)+k + y*skip*(slo2-2)].co, - mvs_e1->co); - ++mvs_e1; - } - mvs_e1 += skip - 1; - } - } - - mvd_f3 += (slo2-2)*(slo2-2); - mvs_e1 -= skip - 1; - } + if(sizeA > sizeB) { + skip = (sizeA-1)/(sizeB-1); - /* update base (2) face verts */ - for(j = 0; j < end; ++j) { - mvd_f2 += (slo2 - 1) * (skip - 1); - for(y = 0; y < sll - 1; ++y) { - for(x = 0; x < sll - 1; ++x) { - VecAddUf(mvd_f2->co, mvs_f2->co); - mvd_f2 += skip; - ++mvs_f2; - } - mvd_f2 += (slo2 - 1) * (skip - 1); - } - mvd_f2 -= (skip - 1); - } + for(j = 0, y = 0; y < sizeB; y++) + for(x = 0; x < sizeB; x++, j++) + copy_v3_v3(gridA[y*skip*sizeA + x*skip].co, gridB[j].co); } + else { + skip = (sizeB-1)/(sizeA-1); - /* edges */ - mvd_e1 = mvd + totvert - me->totvert - me->totedge * (shi2-2); - mvs_e2 = mvs + totvert - me->totvert - me->totedge * (slo1-2); - for(i = 0; i < me->totedge; ++i) { - for(j = 0; j < skip - 1; ++j) { - VecAddUf(mvd_e1->co, mvs_e1->co); - mvd_e1++; - mvs_e1++; - } - for(j = 0; j < slo1 - 2; j++) { - VecAddUf(mvd_e1->co, mvs_e2->co); - mvd_e1++; - mvs_e2++; - - for(k = 0; k < skip - 1; ++k) { - VecAddUf(mvd_e1->co, mvs_e1->co); - mvd_e1++; - mvs_e1++; - } - } + for(j = 0, y = 0; y < sizeA; y++) + for(x = 0; x < sizeA; x++, j++) + copy_v3_v3(gridA[j].co, gridB[y*skip*sizeB + x*skip].co); } - - final->needsFree = 1; - final->release(final); - mrdm->needsFree = 1; - MultiresDM_mark_as_modified(mrdm); - mrdm->release(mrdm); } /* direction=1 for delete higher, direction=0 for lower (not implemented yet) */ void multiresModifier_del_levels(struct MultiresModifierData *mmd, struct Object *ob, int direction) { Mesh *me = get_mesh(ob); - int distance = mmd->totlvl - mmd->lvl; - MDisps *mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS); + int lvl = multires_get_level(ob, mmd, 0); + int levels = mmd->totlvl - lvl; + MDisps *mdisps; + + // XXX CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); + mdisps= CustomData_get_layer(&me->fdata, CD_MDISPS); multires_force_update(ob); - if(mdisps && distance > 0 && direction == 1) { - int skip = multires_side_tot[distance] - 1; - int st = multires_side_tot[mmd->totlvl - 1]; - int totdisp = multires_quad_tot[mmd->lvl - 1]; - int i, j, x, y; + if(mdisps && levels > 0 && direction == 1) { + int nsize = multires_side_tot[lvl]; + int hsize = multires_side_tot[mmd->totlvl]; + int i; for(i = 0; i < me->totface; ++i) { - float (*disps)[3] = MEM_callocN(sizeof(float) * 3 * totdisp, "multires del disps"); - - for(j = 0, y = 0; y < st; y += skip) { - for(x = 0; x < st; x += skip) { - copy_v3_v3(disps[j], mdisps[i].disps[y * st + x]); - ++j; - } + MDisps *mdisp= &mdisps[i]; + float (*disps)[3], (*ndisps)[3], (*hdisps)[3]; + int nvert = (me->mface[i].v4)? 4: 3; + int totdisp = multires_grid_tot[lvl]*nvert; + int S; + + disps = MEM_callocN(sizeof(float) * 3 * totdisp, "multires disps"); + + ndisps = disps; + hdisps = mdisp->disps; + + for(S = 0; S < nvert; S++) { + multires_copy_grid(ndisps, hdisps, nsize, hsize); + + ndisps += nsize*nsize; + hdisps += hsize*hsize; } - MEM_freeN(mdisps[i].disps); - mdisps[i].disps = disps; - mdisps[i].totdisp = totdisp; + MEM_freeN(mdisp->disps); + mdisp->disps = disps; + mdisp->totdisp = totdisp; } } - mmd->totlvl = mmd->lvl; + multires_set_tot_level(ob, mmd, lvl); } -void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int distance, int updateblock, int simple) +static DerivedMesh *multires_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int totlvl, int simple) { - DerivedMesh *final = NULL; - int totsubvert = 0, totsubface = 0, totsubedge = 0; - Mesh *me = get_mesh(ob); - MDisps *mdisps; - int i; + MultiresModifierData mmd; - if(distance == 0) - return; + memset(&mmd, 0, sizeof(MultiresModifierData)); + mmd.lvl = lvl; + mmd.sculptlvl = lvl; + mmd.renderlvl = lvl; + mmd.totlvl = totlvl; + mmd.simple = simple; - if(mmd->totlvl > multires_max_levels) - mmd->totlvl = multires_max_levels; - if(mmd->lvl > multires_max_levels) - mmd->lvl = multires_max_levels; + return multires_dm_create_from_derived(&mmd, 1, dm, ob, 0, 0); +} - multires_force_update(ob); +static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple) +{ + SubsurfModifierData smd; - mmd->lvl = mmd->totlvl; - mmd->totlvl += distance; + memset(&smd, 0, sizeof(SubsurfModifierData)); + smd.levels = smd.renderLevels = lvl; + smd.flags |= eSubsurfModifierFlag_SubsurfUv; + if(simple) + smd.subdivType = ME_SIMPLE_SUBSURF; - mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS); - if(!mdisps) - mdisps = CustomData_add_layer(&me->fdata, CD_MDISPS, CD_DEFAULT, NULL, me->totface); + return subsurf_make_derived_from_derived(dm, &smd, 0, NULL, 0, 0); +} - if(mdisps->disps && !updateblock && mmd->totlvl > 2) { - DerivedMesh *orig, *mrdm; - MultiresModifierData mmd_sub; - - orig = CDDM_from_mesh(me, NULL); - memset(&mmd_sub, 0, sizeof(MultiresModifierData)); - mmd_sub.lvl = mmd_sub.totlvl = mmd->lvl; - mmd_sub.simple = simple; - mrdm = multires_dm_create_from_derived(&mmd_sub, 1, orig, ob, 0, 0); - totsubvert = mrdm->getNumVerts(mrdm); - totsubedge = mrdm->getNumEdges(mrdm); - totsubface = mrdm->getNumFaces(mrdm); - orig->needsFree = 1; - orig->release(orig); - - final = multires_subdisp_pre(mrdm, distance, simple); - mrdm->needsFree = 1; - mrdm->release(mrdm); - } +static void multires_reallocate_mdisps(Mesh *me, MDisps *mdisps, int lvl) +{ + int i; + /* reallocate displacements to be filled in */ for(i = 0; i < me->totface; ++i) { - const int totdisp = multires_quad_tot[mmd->totlvl - 1]; + int nvert = (me->mface[i].v4)? 4: 3; + int totdisp = multires_grid_tot[lvl]*nvert; float (*disps)[3] = MEM_callocN(sizeof(float) * 3 * totdisp, "multires disps"); if(mdisps[i].disps) @@ -493,732 +330,353 @@ void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int dista mdisps[i].disps = disps; mdisps[i].totdisp = totdisp; } - - - if(final) { - DerivedMesh *orig; - - orig = CDDM_from_mesh(me, NULL); - - multires_subdisp(orig, ob, final, mmd->lvl, mmd->totlvl, totsubvert, totsubedge, totsubface, 0); - - orig->needsFree = 1; - orig->release(orig); - } - - mmd->lvl = mmd->totlvl; } -typedef struct DisplacerEdges { - /* DerivedMesh index at the start of each edge (using face x/y directions to define the start) */ - int base[4]; - /* 1 if edge moves in the positive x or y direction, -1 otherwise */ - int dir[4]; -} DisplacerEdges; - -typedef struct DisplacerSpill { - /* Index of face (in base mesh), -1 for none */ - int face; - - /* Spill flag */ - /* 1 = Negative variable axis */ - /* 2 = Near fixed axis */ - /* 4 = Flip axes */ - int f; - - /* Neighboring edges */ - DisplacerEdges edges; -} DisplacerSpill; - -typedef struct MultiresDisplacer { - Mesh *me; - MDisps *grid; - MFace *face; - - int dm_first_base_vert_index; - - int spacing; - int sidetot, interior_st, disp_st; - int sidendx; - int type; - int invert; - MVert *subco; - int subco_index, face_index; - float weight; - - /* Valence for each corner */ - int valence[4]; - - /* Neighboring edges for current face */ - DisplacerEdges edges_primary; - - /* Neighboring faces */ - DisplacerSpill spill_x, spill_y; - - int *face_offsets; - - int x, y, ax, ay; -} MultiresDisplacer; - -static int mface_v(MFace *f, int v) +void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int updateblock, int simple) { - return v == 0 ? f->v1 : v == 1 ? f->v2 : v == 2 ? f->v3 : v == 3 ? f->v4 : -1; -} + Mesh *me = ob->data; + MDisps *mdisps; + int lvl= mmd->totlvl; + int totlvl= mmd->totlvl+1; -/* Get the edges (and their directions) */ -static void find_displacer_edges(MultiresDisplacer *d, DerivedMesh *dm, DisplacerEdges *de, MFace *f) -{ - ListBase *emap = MultiresDM_get_vert_edge_map(dm); - IndexNode *n; - int i, end = f->v4 ? 4 : 3; - int offset = dm->getNumVerts(dm) - d->me->totvert - d->me->totedge * d->interior_st; + if(totlvl > multires_max_levels) + return; - for(i = 0; i < end; ++i) { - int vcur = mface_v(f, i); - int vnext = mface_v(f, i == end - 1 ? 0 : i + 1); + multires_force_update(ob); - de->dir[i] = 1; - - for(n = emap[vcur].first; n; n = n->next) { - MEdge *e = &d->me->medge[n->index]; - - if(e->v1 == vnext || e->v2 == vnext) { - de->base[i] = n->index * d->interior_st; - if(((i == 0 || i == 1) && e->v1 == vnext) || - ((i == 2 || i == 3) && e->v2 == vnext)) { - de->dir[i] = -1; - de->base[i] += d->interior_st - 1; - } - de->base[i] += offset; - break; - } - } - } -} + mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS); + if(!mdisps) + mdisps = CustomData_add_layer(&me->fdata, CD_MDISPS, CD_DEFAULT, NULL, me->totface); -/* Returns in out the corners [0-3] that use v1 and v2 */ -static void find_face_corners(MFace *f, int v1, int v2, int out[2]) -{ - int i, end = f->v4 ? 4 : 3; - - for(i = 0; i < end; ++i) { - int corner = mface_v(f, i); - if(corner == v1) - out[0] = i; - if(corner == v2) - out[1] = i; - } -} + if(mdisps->disps && !updateblock && totlvl > 1) { + /* upsample */ + DerivedMesh *lowdm, *cddm, *highdm; + DMGridData **highGridData, **lowGridData, **subGridData; + CCGSubSurf *ss; + int i, numGrids, highGridSize, lowGridSize; + + /* create subsurf DM from original mesh at high level */ + cddm = CDDM_from_mesh(me, NULL); + highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple); + + /* create multires DM from original mesh at low level */ + lowdm = multires_dm_create_local(ob, cddm, lvl, lvl, simple); + cddm->release(cddm); + + /* copy subsurf grids and replace them with low displaced grids */ + numGrids = highdm->getNumGrids(highdm); + highGridSize = highdm->getGridSize(highdm); + highGridData = highdm->getGridData(highdm); + lowGridSize = lowdm->getGridSize(lowdm); + lowGridData = lowdm->getGridData(lowdm); + + subGridData = MEM_callocN(sizeof(float*)*numGrids, "subGridData*"); + + for(i = 0; i < numGrids; ++i) { + /* backup subsurf grids */ + subGridData[i] = MEM_callocN(sizeof(DMGridData)*highGridSize*highGridSize, "subGridData"); + memcpy(subGridData[i], highGridData[i], sizeof(DMGridData)*highGridSize*highGridSize); + + /* overwrite with current displaced grids */ + multires_copy_dm_grid(highGridData[i], lowGridData[i], highGridSize, lowGridSize); + } -static void multires_displacer_get_spill_faces(MultiresDisplacer *d, DerivedMesh *dm, MFace *mface) -{ - ListBase *map = MultiresDM_get_vert_face_map(dm); - IndexNode *n1, *n2; - int v4 = d->face->v4 ? d->face->v4 : d->face->v1; - int crn[2], lv; + /* low lower level dm no longer needed at this point */ + lowdm->release(lowdm); - memset(&d->spill_x, 0, sizeof(DisplacerSpill)); - memset(&d->spill_y, 0, sizeof(DisplacerSpill)); - d->spill_x.face = d->spill_y.face = -1; + /* subsurf higher levels again with displaced data */ + ss= ((CCGDerivedMesh*)highdm)->ss; + ccgSubSurf_updateFromFaces(ss, lvl, NULL, 0); + ccgSubSurf_updateLevels(ss, lvl, NULL, 0); - for(n1 = map[d->face->v3].first; n1; n1 = n1->next) { - if(n1->index == d->face_index) - continue; + /* reallocate displacements */ + multires_reallocate_mdisps(me, mdisps, totlvl); - for(n2 = map[d->face->v2].first; n2; n2 = n2->next) { - if(n1->index == n2->index) - d->spill_x.face = n1->index; - } - for(n2 = map[v4].first; n2; n2 = n2->next) { - if(n1->index == n2->index) - d->spill_y.face = n1->index; - } - } + /* compute displacements */ + multiresModifier_disp_run(highdm, me, 1, 0, subGridData, totlvl); - if(d->spill_x.face != -1) { - /* Neighbor of v2/v3 found, find flip and orientation */ - find_face_corners(&mface[d->spill_x.face], d->face->v2, d->face->v3, crn); - lv = mface[d->spill_x.face].v4 ? 3 : 2; - - if(crn[0] == 0 && crn[1] == lv) - d->spill_x.f = 0+2+0; - else if(crn[0] == lv && crn[1] == 0) - d->spill_x.f = 1+2+0; - else if(crn[0] == 1 && crn[1] == 0) - d->spill_x.f = 1+2+4; - else if(crn[0] == 0 && crn[1] == 1) - d->spill_x.f = 0+2+4; - else if(crn[0] == 2 && crn[1] == 1) - d->spill_x.f = 1+0+0; - else if(crn[0] == 1 && crn[1] == 2) - d->spill_x.f = 0+0+0; - else if(crn[0] == 3 && crn[1] == 2) - d->spill_x.f = 0+0+4; - else if(crn[0] == 2 && crn[1] == 3) - d->spill_x.f = 1+0+4; - - find_displacer_edges(d, dm, &d->spill_x.edges, &mface[d->spill_x.face]); + /* free */ + highdm->release(highdm); + for(i = 0; i < numGrids; ++i) + MEM_freeN(subGridData[i]); + MEM_freeN(subGridData); } - - if(d->spill_y.face != -1) { - /* Neighbor of v3/v4 found, find flip and orientation */ - find_face_corners(&mface[d->spill_y.face], d->face->v3, v4, crn); - lv = mface[d->spill_y.face].v4 ? 3 : 2; - - if(crn[0] == 1 && crn[1] == 0) - d->spill_y.f = 1+2+0; - else if(crn[0] == 0 && crn[1] == 1) - d->spill_y.f = 0+2+0; - else if(crn[0] == 2 && crn[1] == 1) - d->spill_y.f = 1+0+4; - else if(crn[0] == 1 && crn[1] == 2) - d->spill_y.f = 0+0+4; - else if(crn[0] == 3 && crn[1] == 2) - d->spill_y.f = 0+0+0; - else if(crn[0] == 2 && crn[1] == 3) - d->spill_y.f = 1+0+0; - else if(crn[0] == 0 && crn[1] == lv) - d->spill_y.f = 0+2+4; - else if(crn[0] == lv && crn[1] == 0) - d->spill_y.f = 1+2+4; - - find_displacer_edges(d, dm, &d->spill_y.edges, &mface[d->spill_y.face]); + else { + /* only reallocate, nothing to upsample */ + multires_reallocate_mdisps(me, mdisps, totlvl); } -} - -static void find_corner_valences(MultiresDisplacer *d, DerivedMesh *dm) -{ - int i; - - d->valence[3] = -1; - /* Set the vertex valence for the corners */ - for(i = 0; i < (d->face->v4 ? 4 : 3); ++i) - d->valence[i] = BLI_countlist(&MultiresDM_get_vert_edge_map(dm)[mface_v(d->face, i)]); + multires_set_tot_level(ob, mmd, totlvl); } -static void multires_displacer_init(MultiresDisplacer *d, DerivedMesh *dm, - const int face_index, const int invert) +static void grid_adjacent_rotate(int rotation, int gridSize, int *x, int *y) { - Mesh *me = MultiresDM_get_mesh(dm); - - d->me = me; - d->face = me->mface + face_index; - d->face_index = face_index; - d->face_offsets = MultiresDM_get_face_offsets(dm); - /* Get the multires grid from customdata */ - d->grid = CustomData_get_layer(&me->fdata, CD_MDISPS); - if(d->grid) - d->grid += face_index; - - d->spacing = pow(2, MultiresDM_get_totlvl(dm) - MultiresDM_get_lvl(dm)); - d->sidetot = multires_side_tot[MultiresDM_get_lvl(dm) - 1]; - d->interior_st = d->sidetot - 2; - d->disp_st = multires_side_tot[MultiresDM_get_totlvl(dm) - 1]; - d->invert = invert; - - multires_displacer_get_spill_faces(d, dm, me->mface); - find_displacer_edges(d, dm, &d->edges_primary, d->face); - find_corner_valences(d, dm); - - d->dm_first_base_vert_index = dm->getNumVerts(dm) - me->totvert; -} + /* we rotate (rotation * 90°) counterclockwise around center */ + int nx, ny; + + switch(rotation) { + case 0: nx = *x; ny = *y; break; + case 1: nx = *y; ny = *x; break; + case 2: nx = *x; ny = *y; break; //gridSize - 1 - *x; ny = gridSize - 1 - *y; break; + case 3: nx = *y; ny = *x; break; + } -static void multires_displacer_weight(MultiresDisplacer *d, const float w) -{ - d->weight = w; + *x = nx; + *y = ny; } -static void multires_displacer_anchor(MultiresDisplacer *d, const int type, const int side_index) +static void grid_adjacent_jump(DMGridAdjacency *adj, int gridSize, int *index, int *x, int *y) { - d->sidendx = side_index; - d->x = d->y = d->sidetot / 2; - d->type = type; - - if(type == 2) { - if(side_index == 0) - d->y -= 1; - else if(side_index == 1) - d->x += 1; - else if(side_index == 2) - d->y += 1; - else if(side_index == 3) - d->x -= 1; - } - else if(type == 3) { - if(side_index == 0) { - d->x -= 1; - d->y -= 1; + if(*x < 0) { + if(adj->index[3] == -1) { + /* no adjacent grid, clamp */ + *x = 0; } - else if(side_index == 1) { - d->x += 1; - d->y -= 1; + else { + /* jump to adjacent grid */ + *index = adj->index[3]; + *x += gridSize; + grid_adjacent_rotate(adj->rotation[3], gridSize, x, y); } - else if(side_index == 2) { - d->x += 1; - d->y += 1; + } + else if(*x >= gridSize) { + if(adj->index[1] == -1) { + /* no adjacent grid, take a step back */ + *x = gridSize - 1; } - else if(side_index == 3) { - d->x -= 1; - d->y += 1; + else { + /* jump to adjacent grid */ + *index = adj->index[1]; + *x -= gridSize; + grid_adjacent_rotate(adj->rotation[1], gridSize, x, y); } } - - d->ax = d->x; - d->ay = d->y; -} - -static void multires_displacer_anchor_edge(MultiresDisplacer *d, int v1, int v2, int x) -{ - d->type = 4; - - if(v1 == d->face->v1) { - d->x = 0; - d->y = 0; - if(v2 == d->face->v2) - d->x += x; - else if(v2 == d->face->v3) { - if(x < d->sidetot / 2) - d->y = x; - else { - d->x = x; - d->y = d->sidetot - 1; - } + else if(*y < 0) { + if(adj->index[0] == -1) { + /* no adjacent grid, clamp */ + *y = 0; } - else - d->y += x; - } - else if(v1 == d->face->v2) { - d->x = d->sidetot - 1; - d->y = 0; - if(v2 == d->face->v1) - d->x -= x; - else - d->y += x; - } - else if(v1 == d->face->v3) { - d->x = d->sidetot - 1; - d->y = d->sidetot - 1; - if(v2 == d->face->v2) - d->y -= x; - else if(v2 == d->face->v1) { - if(x < d->sidetot / 2) - d->x -= x; - else { - d->x = 0; - d->y -= x; - } + else { + /* jump to adjacent grid */ + *index = adj->index[0]; + *y += gridSize; + grid_adjacent_rotate(adj->rotation[0], gridSize, x, y); } - else - d->x -= x; } - else if(v1 == d->face->v4) { - d->x = 0; - d->y = d->sidetot - 1; - if(v2 == d->face->v3) - d->x += x; - else - d->y -= x; + else if(*y >= gridSize) { + if(adj->index[2] == -1) { + /* no adjacent grid, take a step back */ + *y = gridSize - 1; + } + else { + /* jump to adjacent grid */ + *index = adj->index[2]; + *y -= gridSize; + grid_adjacent_rotate(adj->rotation[2], gridSize, x, y); + } } } -static void multires_displacer_anchor_vert(MultiresDisplacer *d, const int v) -{ - const int e = d->sidetot - 1; - - d->type = 5; - - d->x = d->y = 0; - if(v == d->face->v2) - d->x = e; - else if(v == d->face->v3) - d->x = d->y = e; - else if(v == d->face->v4) - d->y = e; -} - -static void multires_displacer_jump(MultiresDisplacer *d) +static void grid_tangent(DMGridAdjacency *adj, int gridSize, int index, int x, int y, int axis, DMGridData **gridData, float t[3]) { - if(d->sidendx == 0) { - d->x -= 1; - d->y = d->ay; - } - else if(d->sidendx == 1) { - d->x = d->ax; - d->y -= 1; - } - else if(d->sidendx == 2) { - d->x += 1; - d->y = d->ay; - } - else if(d->sidendx == 3) { - d->x = d->ax; - d->y += 1; + int jindex = index, jx = x, jy = y; + + if(axis == 0) { + if(adj->index[1] == -1 && x == gridSize - 1) { + if(adj->index[2] == -1 && y == gridSize - 1) + sub_v3_v3v3(t, gridData[index][x + gridSize*(y - 1)].co, gridData[index][x - 1 + gridSize*(y - 1)].co); + else + sub_v3_v3v3(t, gridData[index][x + gridSize*y].co, gridData[index][x - 1 + gridSize*y].co); + } + else { + jx += 1; + grid_adjacent_jump(adj, gridSize, &jindex, &jx, &jy); + sub_v3_v3v3(t, gridData[jindex][jx + gridSize*jy].co, gridData[index][x + gridSize*y].co); + } } -} - -/* Treating v1 as (0,0) and v3 as (st-1,st-1), - returns the index of the vertex at (x,y). - If x or y is >= st, wraps over to the adjacent face, - or if there is no adjacent face, returns -2. */ -static int multires_index_at_loc(int face_index, int x, int y, MultiresDisplacer *d, DisplacerEdges *de) -{ - int coord_edge = d->sidetot - 1; /* Max value of x/y at edge of grid */ - int mid = d->sidetot / 2; - int lim = mid - 1; - int qtot = lim * lim; - int base = d->face_offsets[face_index]; - - /* Edge spillover */ - if(x == d->sidetot || y == d->sidetot) { - int flags, v_axis, f_axis, lx, ly; - - if(x == d->sidetot && d->spill_x.face != -1) { - flags = d->spill_x.f; - - /* Handle triangle seam between v1 and v3 */ - if(!d->me->mface[d->spill_x.face].v4 && - ((flags == 2 && y >= mid) || (flags == 3 && y < mid))) - flags += 2; - - v_axis = (flags & 1) ? d->sidetot - 1 - y : y; - f_axis = (flags & 2) ? 1 : d->sidetot - 2; - lx = f_axis, ly = v_axis; - - if(flags & 4) { - lx = v_axis; - ly = f_axis; + else if(axis == 1) { + if(adj->index[2] == -1 && y == gridSize - 1) { + if(adj->index[1] == -1 && x == gridSize - 1) { + sub_v3_v3v3(t, gridData[index][x - 1 + gridSize*y].co, gridData[index][x - 1 + gridSize*(y - 1)].co); } - - return multires_index_at_loc(d->spill_x.face, lx, ly, d, &d->spill_x.edges); - } - else if(y == d->sidetot && d->spill_y.face != -1) { - flags = d->spill_y.f; - - /* Handle triangle seam between v1 and v3 */ - if(!d->me->mface[d->spill_y.face].v4 && - ((flags == 6 && x >= mid) || (flags == 7 && x < mid))) - flags = ~flags; - - v_axis = (flags & 1) ? x : d->sidetot - 1 - x; - f_axis = (flags & 2) ? 1 : d->sidetot - 2; - lx = v_axis, ly = f_axis; - - if(flags & 4) { - lx = f_axis; - ly = v_axis; + else { + sub_v3_v3v3(t, gridData[index][x + gridSize*y].co, gridData[index][x + gridSize*(y - 1)].co); } - - return multires_index_at_loc(d->spill_y.face, lx, ly, d, &d->spill_y.edges); } - else - return -2; - } - /* Corners */ - else if(x == 0 && y == 0) - return d->dm_first_base_vert_index + d->face->v1; - else if(x == coord_edge && y == 0) - return d->dm_first_base_vert_index + d->face->v2; - else if(x == coord_edge && y == coord_edge) - return d->dm_first_base_vert_index + d->face->v3; - else if(x == 0 && y == coord_edge) - return d->dm_first_base_vert_index + d->face->v4; - /* Edges */ - else if(x == 0) { - if(d->face->v4) - return de->base[3] + de->dir[3] * (y - 1); - else - return de->base[2] + de->dir[2] * (y - 1); - } - else if(y == 0) - return de->base[0] + de->dir[0] * (x - 1); - else if(x == d->sidetot - 1) - return de->base[1] + de->dir[1] * (y - 1); - else if(y == d->sidetot - 1) - return de->base[2] + de->dir[2] * (x - 1); - /* Face center */ - else if(x == mid && y == mid) - return base; - /* Cross */ - else if(x == mid && y < mid) - return base + (mid - y); - else if(y == mid && x > mid) - return base + lim + (x - mid); - else if(x == mid && y > mid) - return base + lim*2 + (y - mid); - else if(y == mid && x < mid) { - if(d->face->v4) - return base + lim*3 + (mid - x); - else - return base + lim*2 + (mid - x); - } - /* Quarters */ - else { - int offset = base + lim * (d->face->v4 ? 4 : 3); - if(x < mid && y < mid) - return offset + ((mid - x - 1)*lim + (mid - y)); - else if(x > mid && y < mid) - return offset + qtot + ((mid - y - 1)*lim + (x - mid)); - else if(x > mid && y > mid) - return offset + qtot*2 + ((x - mid - 1)*lim + (y - mid)); - else if(x < mid && y > mid) - return offset + qtot*3 + ((y - mid - 1)*lim + (mid - x)); - } - - return -1; -} - -/* Calculate the TS matrix used for applying displacements. - Uses the undisplaced subdivided mesh's curvature to find a - smoothly normal and tangents. */ -static void calc_disp_mat(MultiresDisplacer *d, float mat[3][3]) -{ - int u = multires_index_at_loc(d->face_index, d->x + 1, d->y, d, &d->edges_primary); - int v = multires_index_at_loc(d->face_index, d->x, d->y + 1, d, &d->edges_primary); - float norm[3], t1[3], t2[3], inv[3][3]; - MVert *base = d->subco + d->subco_index; - - //printf("f=%d, x=%d, y=%d, i=%d, u=%d, v=%d ", d->face_index, d->x, d->y, d->subco_index, u, v); - - norm[0] = base->no[0] / 32767.0f; - norm[1] = base->no[1] / 32767.0f; - norm[2] = base->no[2] / 32767.0f; - - /* Special handling for vertices of valence 3 */ - if(d->valence[1] == 3 && d->x == d->sidetot - 1 && d->y == 0) - u = -1; - else if(d->valence[2] == 3 && d->x == d->sidetot - 1 && d->y == d->sidetot - 1) - u = v = -1; - else if(d->valence[3] == 3 && d->x == 0 && d->y == d->sidetot - 1) - v = -1; - - /* If either u or v is -2, it's on a boundary. In this - case, back up by one row/column and use the same - vector as the preceeding sub-edge. */ - - if(u < 0) { - u = multires_index_at_loc(d->face_index, d->x - 1, d->y, d, &d->edges_primary); - sub_v3_v3v3(t1, base->co, d->subco[u].co); - } - else - sub_v3_v3v3(t1, d->subco[u].co, base->co); - - if(v < 0) { - v = multires_index_at_loc(d->face_index, d->x, d->y - 1, d, &d->edges_primary); - sub_v3_v3v3(t2, base->co, d->subco[v].co); - } - else - sub_v3_v3v3(t2, d->subco[v].co, base->co); - - //printf("uu=%d, vv=%d\n", u, v); - - normalize_v3(t1); - normalize_v3(t2); - Mat3FromColVecs(mat, t1, t2, norm); - - if(d->invert) { - invert_m3_m3(inv, mat); - copy_m3_m3(mat, inv); + else { + jy += 1; + grid_adjacent_jump(adj, gridSize, &jindex, &jx, &jy); + sub_v3_v3v3(t, gridData[jindex][jx + gridSize*jy].co, gridData[index][x + gridSize*y].co); + } } } -static void multires_displace(MultiresDisplacer *d, float co[3]) +static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, int invert, int add, DMGridData **oldGridData, int totlvl) { - float disp[3], mat[3][3]; - float *data; - MVert *subco = &d->subco[d->subco_index]; - - if(!d->grid || !d->grid->disps) return; - - data = d->grid->disps[(d->y * d->spacing) * d->disp_st + (d->x * d->spacing)]; - - if(d->invert) - sub_v3_v3v3(disp, co, subco->co); - else - copy_v3_v3(disp, data); - - - /* Apply ts matrix to displacement */ - calc_disp_mat(d, mat); - mul_m3_v3(mat, disp); - - if(d->invert) { - copy_v3_v3(data, disp); - - } - else { - if(d->type == 4 || d->type == 5) - mul_v3_fl(disp, d->weight); - add_v3_v3v3(co, co, disp); - } + CCGDerivedMesh *ccgdm = (CCGDerivedMesh*)dm; + DMGridData **gridData, **subGridData; + DMGridAdjacency *gridAdjacency; + MFace *mface = me->mface; + MDisps *mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS); + int i, S, x, y, numGrids, gIndex, gridSize, dGridSize, dSkip; - if(d->type == 2) { - if(d->sidendx == 0) - d->y -= 1; - else if(d->sidendx == 1) - d->x += 1; - else if(d->sidendx == 2) - d->y += 1; - else if(d->sidendx == 3) - d->x -= 1; - } - else if(d->type == 3) { - if(d->sidendx == 0) - d->y -= 1; - else if(d->sidendx == 1) - d->x += 1; - else if(d->sidendx == 2) - d->y += 1; - else if(d->sidendx == 3) - d->x -= 1; - } -} + numGrids = dm->getNumGrids(dm); + gridSize = dm->getGridSize(dm); + gridData = dm->getGridData(dm); + gridAdjacency = dm->getGridAdjacency(dm); + subGridData = (oldGridData)? oldGridData: gridData; -static void multiresModifier_disp_run(DerivedMesh *dm, MVert *subco, int invert) -{ - const int lvl = MultiresDM_get_lvl(dm); - const int gridFaces = multires_side_tot[lvl - 2] - 1; - const int edgeSize = multires_side_tot[lvl - 1] - 1; - MVert *mvert = CDDM_get_verts(dm); - MEdge *medge = MultiresDM_get_mesh(dm)->medge; - MFace *mface = MultiresDM_get_mesh(dm)->mface; - ListBase *map = MultiresDM_get_vert_face_map(dm); - Mesh *me = MultiresDM_get_mesh(dm); - MultiresDisplacer d; - int i, S, x, y; - - d.subco = subco; - d.subco_index = 0; + dGridSize = multires_side_tot[totlvl]; + dSkip = (dGridSize-1)/(gridSize-1); - for(i = 0; i < me->totface; ++i) { + for(gIndex = 0, i = 0; i < me->totface; ++i) { const int numVerts = mface[i].v4 ? 4 : 3; - - /* Center */ - multires_displacer_init(&d, dm, i, invert); - multires_displacer_anchor(&d, 1, 0); - multires_displace(&d, mvert->co); - ++mvert; - ++d.subco_index; - - /* Cross */ - for(S = 0; S < numVerts; ++S) { - multires_displacer_anchor(&d, 2, S); - for(x = 1; x < gridFaces; ++x) { - multires_displace(&d, mvert->co); - ++mvert; - ++d.subco_index; - } - } - - /* Quarters */ - for(S = 0; S < numVerts; S++) { - multires_displacer_anchor(&d, 3, S); - for(y = 1; y < gridFaces; y++) { - for(x = 1; x < gridFaces; x++) { - multires_displace(&d, mvert->co); - ++mvert; - ++d.subco_index; - } - multires_displacer_jump(&d); - } - } - } - - for(i = 0; i < me->totedge; ++i) { - const MEdge *e = &medge[i]; - for(x = 1; x < edgeSize; ++x) { - IndexNode *n1, *n2; - int numFaces = 0; - for(n1 = map[e->v1].first; n1; n1 = n1->next) { - for(n2 = map[e->v2].first; n2; n2 = n2->next) { - if(n1->index == n2->index) - ++numFaces; - } - } - multires_displacer_weight(&d, 1.0f / numFaces); - /* TODO: Better to have these loops outside the x loop */ - for(n1 = map[e->v1].first; n1; n1 = n1->next) { - for(n2 = map[e->v2].first; n2; n2 = n2->next) { - if(n1->index == n2->index) { - multires_displacer_init(&d, dm, n1->index, invert); - multires_displacer_anchor_edge(&d, e->v1, e->v2, x); - multires_displace(&d, mvert->co); + MDisps *mdisp = &mdisps[i]; + + for(S = 0; S < numVerts; ++S, ++gIndex) { + DMGridData *grid = gridData[gIndex]; + DMGridData *subgrid = subGridData[gIndex]; + DMGridAdjacency *adj = &gridAdjacency[gIndex]; + float (*dispgrid)[3] = &mdisp->disps[S*dGridSize*dGridSize]; + + for(y = 0; y < gridSize; y++) { + for(x = 0; x < gridSize; x++) { + float *co = grid[x + y*gridSize].co; + float *sco = subgrid[x + y*gridSize].co; + float *no = subgrid[x + y*gridSize].no; + float *data = dispgrid[dGridSize*y*dSkip + x*dSkip]; + float mat[3][3], tx[3], ty[3], disp[3], d[3]; + + /* construct tangent space matrix */ + grid_tangent(adj, gridSize, gIndex, x, y, 0, subGridData, tx); + normalize_v3(tx); + + grid_tangent(adj, gridSize, gIndex, x, y, 1, subGridData, ty); + normalize_v3(ty); + + column_vectors_to_mat3(mat, tx, ty, no); + + if(!invert) { + /* convert to object space and add */ + mul_v3_m3v3(disp, mat, data); + add_v3_v3v3(co, sco, disp); + } + else if(!add) { + /* convert difference to tangent space */ + sub_v3_v3v3(disp, co, sco); + invert_m3(mat); + mul_v3_m3v3(data, mat, disp); + } + else { + /* convert difference to tangent space */ + invert_m3(mat); + mul_v3_m3v3(d, mat, co); + add_v3_v3(data, d); } } } - ++mvert; - ++d.subco_index; - } - } - - for(i = 0; i < me->totvert; ++i) { - IndexNode *n; - multires_displacer_weight(&d, 1.0f / BLI_countlist(&map[i])); - for(n = map[i].first; n; n = n->next) { - multires_displacer_init(&d, dm, n->index, invert); - multires_displacer_anchor_vert(&d, i); - multires_displace(&d, mvert->co); } - ++mvert; - ++d.subco_index; } - if(!invert) - CDDM_calc_normals(dm); + if(!invert) { + ccgSubSurf_stitchFaces(ccgdm->ss, 0, NULL, 0); + ccgSubSurf_updateNormals(ccgdm->ss, NULL, 0); + } } static void multiresModifier_update(DerivedMesh *dm) { + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; Object *ob; Mesh *me; MDisps *mdisps; + MultiresModifierData *mmd; - ob = MultiresDM_get_object(dm); - me = MultiresDM_get_mesh(dm); + ob = ccgdm->multires.ob; + me = ccgdm->multires.ob->data; + mmd = ccgdm->multires.mmd; + // XXX CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS); if(mdisps) { - const int lvl = MultiresDM_get_lvl(dm); - const int totlvl = MultiresDM_get_totlvl(dm); + int lvl = ccgdm->multires.lvl; + int totlvl = ccgdm->multires.totlvl; if(lvl < totlvl) { - /* Propagate disps upwards */ - DerivedMesh *final, *subco_dm, *orig; - MVert *verts_new = NULL, *cur_lvl_orig_verts = NULL; - MultiresModifierData mmd; - int i; - - orig = CDDM_from_mesh(me, NULL); - - /* Regenerate the current level's vertex coordinates - (includes older displacements but not new sculpts) */ - mmd.totlvl = totlvl; - mmd.lvl = lvl; - subco_dm = multires_dm_create_from_derived(&mmd, 1, orig, ob, 0, 0); - cur_lvl_orig_verts = CDDM_get_verts(subco_dm); - - /* Subtract the original vertex cos from the new vertex cos */ - verts_new = CDDM_get_verts(dm); - for(i = 0; i < dm->getNumVerts(dm); ++i) - sub_v3_v3v3(verts_new[i].co, verts_new[i].co, cur_lvl_orig_verts[i].co); - - final = multires_subdisp_pre(dm, totlvl - lvl, 0); - - multires_subdisp(orig, ob, final, lvl, totlvl, dm->getNumVerts(dm), dm->getNumEdges(dm), - dm->getNumFaces(dm), 1); - - subco_dm->release(subco_dm); - orig->release(orig); + Mesh *me = ob->data; + DerivedMesh *lowdm, *cddm, *highdm; + DMGridData **highGridData, **lowGridData, **subGridData, **gridData, *diffGrid; + CCGSubSurf *ss; + int i, j, numGrids, highGridSize, lowGridSize; + + /* create subsurf DM from original mesh at high level */ + cddm = CDDM_from_mesh(me, NULL); + highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple); + + /* create multires DM from original mesh and displacements */ + lowdm = multires_dm_create_local(ob, cddm, lvl, totlvl, mmd->simple); + cddm->release(cddm); + + /* gather grid data */ + numGrids = highdm->getNumGrids(highdm); + highGridSize = highdm->getGridSize(highdm); + highGridData = highdm->getGridData(highdm); + lowGridSize = lowdm->getGridSize(lowdm); + lowGridData = lowdm->getGridData(lowdm); + gridData = dm->getGridData(dm); + + subGridData = MEM_callocN(sizeof(DMGridData*)*numGrids, "subGridData*"); + diffGrid = MEM_callocN(sizeof(DMGridData)*lowGridSize*lowGridSize, "diff"); + + for(i = 0; i < numGrids; ++i) { + /* backup subsurf grids */ + subGridData[i] = MEM_callocN(sizeof(DMGridData)*highGridSize*highGridSize, "subGridData"); + memcpy(subGridData[i], highGridData[i], sizeof(DMGridData)*highGridSize*highGridSize); + + /* write difference of subsurf and displaced low level into high subsurf */ + for(j = 0; j < lowGridSize*lowGridSize; ++j) + sub_v3_v3v3(diffGrid[j].co, gridData[i][j].co, lowGridData[i][j].co); + + multires_copy_dm_grid(highGridData[i], diffGrid, highGridSize, lowGridSize); + } + + /* lower level dm no longer needed at this point */ + MEM_freeN(diffGrid); + lowdm->release(lowdm); + + /* subsurf higher levels again with difference of coordinates */ + ss= ((CCGDerivedMesh*)highdm)->ss; + ccgSubSurf_updateFromFaces(ss, lvl, NULL, 0); + ccgSubSurf_updateLevels(ss, lvl, NULL, 0); + + /* add to displacements */ + multiresModifier_disp_run(highdm, me, 1, 1, subGridData, mmd->totlvl); + + /* free */ + highdm->release(highdm); + for(i = 0; i < numGrids; ++i) + MEM_freeN(subGridData[i]); + MEM_freeN(subGridData); + } + else { + DerivedMesh *cddm, *subdm; + + cddm = CDDM_from_mesh(me, NULL); + subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple); + cddm->release(cddm); + + multiresModifier_disp_run(dm, me, 1, 0, subdm->getGridData(subdm), mmd->totlvl); + + subdm->release(subdm); } - else - multiresModifier_disp_run(dm, MultiresDM_get_subco(dm), 1); } } void multires_mark_as_modified(struct Object *ob) { if(ob && ob->derivedFinal) { - MultiresDM_mark_as_modified(ob->derivedFinal); + CCGDerivedMesh *ccgdm = (CCGDerivedMesh*)ob->derivedFinal; + ccgdm->multires.modified = 1; } } @@ -1234,24 +692,47 @@ void multires_force_update(Object *ob) struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int local_mmd, DerivedMesh *dm, Object *ob, int useRenderParams, int isFinalCalc) { - SubsurfModifierData smd; - MultiresSubsurf ms; + //Mesh *me= ob->data; DerivedMesh *result; - int i; + CCGDerivedMesh *ccgdm; + DMGridData **gridData, **subGridData; + int lvl= multires_get_level(ob, mmd, useRenderParams); + int i, gridSize, numGrids; + + if(lvl == 0) + return dm; + + result = subsurf_dm_create_local(ob, dm, lvl, 0); + + if(!local_mmd) { + ccgdm = (CCGDerivedMesh*)result; + + ccgdm->multires.ob = ob; + ccgdm->multires.mmd = mmd; + ccgdm->multires.local_mmd = local_mmd; + ccgdm->multires.lvl = lvl; + ccgdm->multires.totlvl = mmd->totlvl; + ccgdm->multires.modified = 0; + ccgdm->multires.update = multiresModifier_update; + } - ms.mmd = mmd; - ms.ob = ob; - ms.local_mmd = local_mmd; + numGrids = result->getNumGrids(result); + gridSize = result->getGridSize(result); + gridData = result->getGridData(result); - memset(&smd, 0, sizeof(SubsurfModifierData)); - smd.levels = smd.renderLevels = mmd->lvl - 1; - smd.flags |= eSubsurfModifierFlag_SubsurfUv; + subGridData = MEM_callocN(sizeof(DMGridData*)*numGrids, "subGridData*"); - result = NULL; // XXX subsurf_make_derived_from_derived_with_multires(dm, &smd, &ms, useRenderParams, NULL, isFinalCalc, 0); - for(i = 0; i < result->getNumVerts(result); ++i) - MultiresDM_get_subco(result)[i] = CDDM_get_verts(result)[i]; - multiresModifier_disp_run(result, MultiresDM_get_subco(result), 0); - MultiresDM_set_update(result, multiresModifier_update); + for(i = 0; i < numGrids; i++) { + subGridData[i] = MEM_callocN(sizeof(DMGridData)*gridSize*gridSize, "subGridData"); + memcpy(subGridData[i], gridData[i], sizeof(DMGridData)*gridSize*gridSize); + } + + // XXX CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); + multiresModifier_disp_run(result, ob->data, 0, 0, subGridData, mmd->totlvl); + + for(i = 0; i < numGrids; i++) + MEM_freeN(subGridData[i]); + MEM_freeN(subGridData); return result; } @@ -1425,9 +906,9 @@ void multires_load_old(DerivedMesh *dm, Multires *mr) MultiresLevel *lvl, *lvl1; MVert *vsrc, *vdst; int src, dst; - int totlvl = MultiresDM_get_totlvl(dm); - int st = multires_side_tot[totlvl - 2] - 1; - int extedgelen = multires_side_tot[totlvl - 1] - 2; + int totlvl = 2; // XXX MultiresDM_get_totlvl(dm); + int st = multires_side_tot[totlvl - 1] - 1; + int extedgelen = multires_side_tot[totlvl] - 2; int *vvmap; // inorder for dst, map to src int crossedgelen; int i, j, s, x, totvert, tottri, totquad; @@ -1454,9 +935,9 @@ void multires_load_old(DerivedMesh *dm, Multires *mr) lvl = lvl1->next; for(j = 2; j <= mr->level_count; ++j) { - int base = multires_side_tot[totlvl - j] - 2; - int skip = multires_side_tot[totlvl - j + 1] - 1; - int st = multires_side_tot[j - 2] - 1; + int base = multires_side_tot[totlvl - j + 1] - 2; + int skip = multires_side_tot[totlvl - j + 2] - 1; + int st = multires_side_tot[j - 1] - 1; for(x = 0; x < st; ++x) vvmap[ldst + base + x * skip] = lsrc + st * i + x; @@ -1483,7 +964,7 @@ void multires_load_old(DerivedMesh *dm, Multires *mr) /* Face edge cross */ tottri = totquad = 0; - crossedgelen = multires_side_tot[totlvl - 2] - 2; + crossedgelen = multires_side_tot[totlvl - 1] - 2; dst = 0; for(i = 0; i < lvl1->totface; ++i) { int sides = lvl1->faces[i].v[3] ? 4 : 3; @@ -1492,8 +973,8 @@ void multires_load_old(DerivedMesh *dm, Multires *mr) ++dst; for(j = 3; j <= mr->level_count; ++j) { - int base = multires_side_tot[totlvl - j] - 2; - int skip = multires_side_tot[totlvl - j + 1] - 1; + int base = multires_side_tot[totlvl - j + 1] - 2; + int skip = multires_side_tot[totlvl - j + 2] - 1; int st = pow(2, j - 2); int st2 = pow(2, j - 3); int lsrc = lvl->prev->totvert; @@ -1541,8 +1022,8 @@ void multires_load_old(DerivedMesh *dm, Multires *mr) int ldst = dst + 1 + sides * (st - 1); for(s = 0; s < sides; ++s) { - int st2 = multires_side_tot[totlvl - 2] - 2; - int st3 = multires_side_tot[totlvl - 3] - 2; + int st2 = multires_side_tot[totlvl - 1] - 2; + int st3 = multires_side_tot[totlvl - 2] - 2; int st4 = st3 == 0 ? 1 : (st3 + 1) / 2; int mid = ldst + st2 * st3 + st3; int cv = lvl1->faces[j].v[s]; @@ -1583,3 +1064,4 @@ void multires_load_old(DerivedMesh *dm, Multires *mr) MEM_freeN(vvmap); } + diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1fa9090ba45..a9ceb77ad9f 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3922,12 +3922,6 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) SWITCH_INT(mmd->dynverts[a]) } } - else if (md->type==eModifierType_Multires) { - MultiresModifierData *mmd = (MultiresModifierData*) md; - - mmd->undo_verts = newdataadr(fd, mmd->undo_verts); - mmd->undo_signal = !!mmd->undo_verts; - } } } @@ -9595,7 +9589,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) ToolSettings *ts; //PTCacheID *pid; //ListBase pidlist; - int i, a; + int /*i, */a; for(ob = main->object.first; ob; ob = ob->id.next) { //BKE_ptcache_ids_from_object(&pidlist, ob); @@ -9613,6 +9607,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main) ob->data = me; if(me && me->id.lib==NULL && me->mr) { /* XXX - library meshes crash on loading most yoFrankie levels, the multires pointer gets invalid - Campbell */ + // XXX +#if 0 MultiresLevel *lvl; ModifierData *md; MultiresModifierData *mmd; @@ -9648,7 +9644,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main) mmd = (MultiresModifierData*)modifier_new(eModifierType_Multires); BLI_insertlinkbefore(&ob->modifiers, md, mmd); - multiresModifier_subdivide(mmd, ob, me->mr->level_count - 1, 1, 0); + for(i = 0; i < me->mr->level_count - 1; ++i) + multiresModifier_subdivide(mmd, ob, 1, 0); mmd->lvl = mmd->totlvl; orig = CDDM_from_mesh(me, NULL); @@ -9662,6 +9659,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* Remove the old multires */ multires_free(me->mr); +#endif me->mr = NULL; } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index b2147221f9f..b00cd10c6a7 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1214,12 +1214,6 @@ static void write_modifiers(WriteData *wd, ListBase *modbase) writestruct(wd, DATA, "MDefInfluence", mmd->totinfluence, mmd->dyninfluences); writedata(wd, DATA, sizeof(int)*mmd->totvert, mmd->dynverts); } - else if (md->type==eModifierType_Multires) { - MultiresModifierData *mmd = (MultiresModifierData*) md; - - if(mmd->undo_verts) - writestruct(wd, DATA, "MVert", mmd->undo_verts_tot, mmd->undo_verts); - } } } diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index c4304056017..9da7fa94295 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -373,7 +373,7 @@ int ED_object_modifier_apply(ReportList *reports, Scene *scene, Object *ob, Modi BKE_report(reports, RPT_INFO, "Applied modifier only changed CV points, not tesselated/bevel vertices"); - if (!(md->mode&eModifierMode_Realtime) || (mti->isDisabled && mti->isDisabled(md))) { + if (!(md->mode&eModifierMode_Realtime) || (mti->isDisabled && mti->isDisabled(md, 0))) { BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); return 0; } @@ -684,6 +684,13 @@ void OBJECT_OT_modifier_copy(wmOperatorType *ot) /************* multires delete higher levels operator ****************/ +static int multires_poll(bContext *C) +{ + PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier); + ID *id= ptr.id.data; + return (ptr.data && id && !id->lib); +} + static int multires_higher_levels_delete_exec(bContext *C, wmOperator *op) { PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier); @@ -702,8 +709,8 @@ void OBJECT_OT_multires_higher_levels_delete(wmOperatorType *ot) { ot->name= "Delete Higher Levels"; ot->idname= "OBJECT_OT_multires_higher_levels_delete"; - ot->poll= ED_operator_object_active; + ot->poll= multires_poll; ot->exec= multires_higher_levels_delete_exec; /* flags */ @@ -718,7 +725,7 @@ static int multires_subdivide_exec(bContext *C, wmOperator *op) Object *ob= ptr.id.data; MultiresModifierData *mmd= ptr.data; - multiresModifier_subdivide(mmd, ob, 1, 0, mmd->simple); + multiresModifier_subdivide(mmd, ob, 0, mmd->simple); DAG_id_flush_update(&ob->id, OB_RECALC_DATA); WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index c9e351458ad..82893b48af0 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -2027,13 +2027,13 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *op) { ToolSettings *ts = CTX_data_tool_settings(C); Object *ob = CTX_data_active_object(C); - //MultiresModifierData *mmd = sculpt_multires_active(ob); + MultiresModifierData *mmd = sculpt_multires_active(ob); if(ob->mode & OB_MODE_SCULPT) { multires_force_update(ob); - /*if(mmd && mmd->sculptlvl != mmd->lvl) - DAG_id_flush_update(&ob->id, OB_RECALC_DATA);*/ + if(mmd && mmd->sculptlvl != mmd->lvl) + DAG_id_flush_update(&ob->id, OB_RECALC_DATA); /* Leave sculptmode */ ob->mode &= ~OB_MODE_SCULPT; @@ -2044,8 +2044,8 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *op) /* Enter sculptmode */ ob->mode |= OB_MODE_SCULPT; - /*if(mmd && mmd->sculptlvl != mmd->lvl) - DAG_id_flush_update(&ob->id, OB_RECALC_DATA);*/ + if(mmd && mmd->sculptlvl != mmd->lvl) + DAG_id_flush_update(&ob->id, OB_RECALC_DATA); /* Create persistent sculpt mode data */ if(!ts->sculpt) diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index fe6a5b050e3..d6e7992d435 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -581,12 +581,8 @@ typedef struct ExplodeModifierData { typedef struct MultiresModifierData { ModifierData modifier; - struct MVert *undo_verts; /* Store DerivedMesh vertices for multires undo */ - int undo_verts_tot; /* Length of undo_verts array */ - char undo_signal; /* If true, signals to replace verts with undo verts */ - - char lvl, totlvl; - char simple; + char lvl, sculptlvl, renderlvl, totlvl; + char simple, pad[3]; } MultiresModifierData; typedef struct FluidsimModifierData { diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index 93972894ef1..689599c5cdf 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -39,6 +39,7 @@ #include "BKE_animsys.h" #include "BKE_bmesh.h" /* For BevelModifierData */ +#include "BKE_global.h" #include "BKE_smoke.h" /* For smokeModifier_free & smokeModifier_createType */ #include "WM_api.h" @@ -335,10 +336,36 @@ static void rna_MultiresModifier_level_range(PointerRNA *ptr, int *min, int *max { MultiresModifierData *mmd = (MultiresModifierData*)ptr->data; - *min = 1; + *min = 0; *max = mmd->totlvl; } +/*static int rna_MultiresModifier_external_get(PointerRNA *ptr) +{ + Object *ob= (Object*)ptr->id.data; + Mesh *me= ob->data; + + return CustomData_external_test(&me->fdata, CD_MDISPS); +} + +static void rna_MultiresModifier_external_set(PointerRNA *ptr, int value) +{ + Object *ob= (Object*)ptr->id.data; + Mesh *me= ob->data; + + if(CustomData_external_test(&me->fdata, CD_MDISPS) && !value) + CustomData_external_remove(&me->fdata, CD_MDISPS, me->totface); + else if(!CustomData_external_test(&me->fdata, CD_MDISPS) && value) + CustomData_external_add(&me->fdata, CD_MDISPS, me->id.name+2, me->totface); +} + +static int rna_MultiresModifier_external_editable(PointerRNA *ptr) +{ + MultiresModifierData *mmd = ptr->data; + + return (G.save_over && mmd->totlvl > 0); +}*/ + static void modifier_object_set(Object *self, Object **ob_p, int type, PointerRNA value) { Object *ob= value.data; @@ -487,17 +514,15 @@ static void rna_def_modifier_subsurf(BlenderRNA *brna) rna_def_property_subdivision_common(srna, "subdivType"); - prop= RNA_def_property(srna, "levels", PROP_INT, PROP_NONE); + prop= RNA_def_property(srna, "levels", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "levels"); - RNA_def_property_range(prop, 1, 6); - RNA_def_property_ui_range(prop, 1, 6, 1, 0); + RNA_def_property_ui_range(prop, 0, 6, 1, 0); RNA_def_property_ui_text(prop, "Levels", "Number of subdivisions to perform."); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "render_levels", PROP_INT, PROP_NONE); + prop= RNA_def_property(srna, "render_levels", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "renderLevels"); - RNA_def_property_range(prop, 1, 6); - RNA_def_property_ui_range(prop, 1, 6, 1, 0); + RNA_def_property_ui_range(prop, 0, 6, 1, 0); RNA_def_property_ui_text(prop, "Render Levels", "Number of subdivisions to perform when rendering."); prop= RNA_def_property(srna, "optimal_draw", PROP_BOOLEAN, PROP_NONE); @@ -523,11 +548,32 @@ static void rna_def_modifier_multires(BlenderRNA *brna) rna_def_property_subdivision_common(srna, "simple"); - prop= RNA_def_property(srna, "level", PROP_INT, PROP_NONE); + prop= RNA_def_property(srna, "levels", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "lvl"); - RNA_def_property_ui_text(prop, "Level", ""); + RNA_def_property_ui_text(prop, "Levels", "Number of subdivisions to use in the viewport."); + RNA_def_property_int_funcs(prop, NULL, NULL, "rna_MultiresModifier_level_range"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "sculpt_levels", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "sculptlvl"); + RNA_def_property_ui_text(prop, "Sculpt Levels", "Number of subdivisions to use in sculpt mode."); RNA_def_property_int_funcs(prop, NULL, NULL, "rna_MultiresModifier_level_range"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "render_levels", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "renderlvl"); + RNA_def_property_ui_text(prop, "Render Levels", ""); + RNA_def_property_int_funcs(prop, NULL, NULL, "rna_MultiresModifier_level_range"); + + prop= RNA_def_property(srna, "total_levels", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "totlvl"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Total Levels", "Number of subdivisions for which displacements are stored."); + + /*prop= RNA_def_property(srna, "external", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_funcs(prop, "rna_MultiresModifier_external_get", "rna_MultiresModifier_external_set"); + RNA_def_property_editable_func(prop, "rna_MultiresModifier_external_editable"); + RNA_def_property_ui_text(prop, "External", "Store multires displacements outside the .blend file, to save memory.");*/ } static void rna_def_modifier_lattice(BlenderRNA *brna) -- cgit v1.2.3 From 436969ce49bc17573e8f87a87ef89d1d036d5f4e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Nov 2009 14:13:43 +0000 Subject: Sculpt: Fast Navigate option for multires. This will show the lowest multires level when rotating/panning/zooming the viewport, and only draw the full thing at the end, to make the viewport more interactive. --- source/blender/blenkernel/BKE_DerivedMesh.h | 2 +- source/blender/blenkernel/intern/cdderivedmesh.c | 2 +- source/blender/blenkernel/intern/subsurf_ccg.c | 6 ++-- source/blender/editors/space_view3d/drawobject.c | 10 ++++--- source/blender/editors/space_view3d/view3d_edit.c | 34 +++++++++++++++-------- source/blender/editors/space_view3d/view3d_view.c | 7 +++-- source/blender/makesdna/DNA_scene_types.h | 3 +- source/blender/makesdna/DNA_view3d_types.h | 1 + source/blender/makesrna/intern/rna_sculpt_paint.c | 4 +++ 9 files changed, 45 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 6bce7575556..bb14ac7e803 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -232,7 +232,7 @@ struct DerivedMesh { * Also called for *final* editmode DerivedMeshes */ void (*drawFacesSolid)(DerivedMesh *dm, float (*partial_redraw_planes)[4], - int (*setMaterial)(int, void *attribs)); + int fast, int (*setMaterial)(int, void *attribs)); /* Draw all faces * o If useTwoSided, draw front and back using col arrays diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index b3e75549028..77ad9fb7a7b 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -395,7 +395,7 @@ static void cdDM_drawLooseEdges(DerivedMesh *dm) static void cdDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes)[4], - int (*setMaterial)(int, void *attribs)) + int fast, int (*setMaterial)(int, void *attribs)) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; MVert *mvert = cddm->mvert; diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 30766931a0b..716229e6ead 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1223,15 +1223,15 @@ static void ccgDM_glNormalFast(float *a, float *b, float *c, float *d) } /* Only used by non-editmesh types */ -static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes)[4]/*, int fast*/, int (*setMaterial)(int, void *attribs)) { +static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes)[4], int fast, int (*setMaterial)(int, void *attribs)) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; CCGSubSurf *ss = ccgdm->ss; CCGFaceIterator *fi; int gridSize = ccgSubSurf_getGridSize(ss); char *faceFlags = ccgdm->faceFlags; - int step = 1; //(fast)? gridSize-1: 1; + int step = (fast)? gridSize-1: 1; - if(ccgdm->pbvh && ccgdm->multires.mmd) { // && !fast) { + if(ccgdm->pbvh && ccgdm->multires.mmd && !fast) { CCGFace **faces; int totface; diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 491559bf13d..01af339e7f7 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2692,7 +2692,7 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm) drawFacesSolid() doesn't draw the transparent faces */ if(ob->dtx & OB_DRAWTRANSP) { glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - dm->drawFacesSolid(dm, NULL, GPU_enable_material); + dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); GPU_disable_material(); } @@ -2793,8 +2793,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW); if(ob->sculpt) { + Paint *p = paint_get_active(scene); float planes[4][4]; float (*fpl)[4] = NULL; + int fast= (p->flags & PAINT_FAST_NAVIGATE) && (rv3d->rflag & RV3D_NAVIGATING); if(ob->sculpt->partial_redraw) { sculpt_get_redraw_planes(planes, ar, rv3d, ob); @@ -2802,10 +2804,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D ob->sculpt->partial_redraw = 0; } - dm->drawFacesSolid(dm, fpl, GPU_enable_material); + dm->drawFacesSolid(dm, fpl, fast, GPU_enable_material); } else - dm->drawFacesSolid(dm, NULL, GPU_enable_material); + dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material); GPU_disable_material(); @@ -6270,7 +6272,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r glEnable(GL_LIGHTING); if(dm) { - dm->drawFacesSolid(dm, NULL, GPU_enable_material); + dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material); GPU_end_object_materials(); } else if(edm) diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 937a662e274..b0cbba9efc5 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -275,7 +275,7 @@ static void calctrackballvec(rcti *rect, int mx, int my, float *vec) } -static void viewops_data(bContext *C, wmOperator *op, wmEvent *event) +static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event) { static float lastofs[3] = {0,0,0}; View3D *v3d = CTX_wm_view3d(C); @@ -314,6 +314,21 @@ static void viewops_data(bContext *C, wmOperator *op, wmEvent *event) if (rv3d->persmat[2][1] < 0.0f) vod->reverse= -1.0f; + rv3d->rflag |= RV3D_NAVIGATING; +} + +static void viewops_data_free(bContext *C, wmOperator *op) +{ + Paint *p = paint_get_active(CTX_data_scene(C)); + ViewOpsData *vod= op->customdata; + + vod->rv3d->rflag &= ~RV3D_NAVIGATING; + + if(p && (p->flags & PAINT_FAST_NAVIGATE)) + ED_region_tag_redraw(vod->ar); + + MEM_freeN(vod); + op->customdata= NULL; } /* ************************** viewrotate **********************************/ @@ -578,9 +593,7 @@ static int viewrotate_modal(bContext *C, wmOperator *op, wmEvent *event) } else if (event_code==VIEW_CONFIRM) { request_depth_update(CTX_wm_region_view3d(C)); - - MEM_freeN(vod); - op->customdata= NULL; + viewops_data_free(C, op); return OPERATOR_FINISHED; } @@ -597,7 +610,7 @@ static int viewrotate_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_CANCELLED; /* makes op->customdata */ - viewops_data(C, op, event); + viewops_data_create(C, op, event); vod= op->customdata; /* switch from camera view when: */ @@ -718,8 +731,7 @@ static int viewmove_modal(bContext *C, wmOperator *op, wmEvent *event) else if (event_code==VIEW_CONFIRM) { request_depth_update(CTX_wm_region_view3d(C)); - MEM_freeN(vod); - op->customdata= NULL; + viewops_data_free(C, op); return OPERATOR_FINISHED; } @@ -730,7 +742,7 @@ static int viewmove_modal(bContext *C, wmOperator *op, wmEvent *event) static int viewmove_invoke(bContext *C, wmOperator *op, wmEvent *event) { /* makes op->customdata */ - viewops_data(C, op, event); + viewops_data_create(C, op, event); /* add temp handler */ WM_event_add_modal_handler(C, op); @@ -911,9 +923,7 @@ static int viewzoom_modal(bContext *C, wmOperator *op, wmEvent *event) } else if (event_code==VIEW_CONFIRM) { request_depth_update(CTX_wm_region_view3d(C)); - - MEM_freeN(vod); - op->customdata= NULL; + viewops_data_free(C, op); return OPERATOR_FINISHED; } @@ -974,7 +984,7 @@ static int viewzoom_invoke(bContext *C, wmOperator *op, wmEvent *event) } else { /* makes op->customdata */ - viewops_data(C, op, event); + viewops_data_create(C, op, event); /* add temp handler */ WM_event_add_modal_handler(C, op); diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index cf34cf74296..3ba2145e9d0 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -286,6 +286,8 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo /* ensure it shows correct */ if(sms.to_camera) rv3d->persp= RV3D_PERSP; + + rv3d->rflag |= RV3D_NAVIGATING; /* keep track of running timer! */ if(rv3d->sms==NULL) @@ -348,6 +350,7 @@ static int view3d_smoothview_invoke(bContext *C, wmOperator *op, wmEvent *event) WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), rv3d->smooth_timer); rv3d->smooth_timer= NULL; + rv3d->rflag &= ~RV3D_NAVIGATING; } else { int i; @@ -1885,7 +1888,7 @@ int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *event) fly->time_lastdraw= fly->time_lastwheel= PIL_check_seconds_timer(); - fly->rv3d->rflag |= RV3D_FLYMODE; /* so we draw the corner margins */ + fly->rv3d->rflag |= RV3D_FLYMODE|RV3D_NAVIGATING; /* so we draw the corner margins */ /* detect weather to start with Z locking */ upvec[0]=1.0f; upvec[1]=0.0f; upvec[2]=0.0f; @@ -1985,7 +1988,7 @@ static int flyEnd(bContext *C, FlyInfo *fly) /*Done with correcting for the dist */ } - rv3d->rflag &= ~RV3D_FLYMODE; + rv3d->rflag &= ~(RV3D_FLYMODE|RV3D_NAVIGATING); //XXX2.5 BIF_view3d_previewrender_signal(fly->sa, PR_DBASE|PR_DISPRECT); /* not working at the moment not sure why */ diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 037a8c46222..bc592387a64 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1047,7 +1047,8 @@ typedef struct Scene { /* Paint.flags */ typedef enum { - PAINT_SHOW_BRUSH = 1 + PAINT_SHOW_BRUSH = 1, + PAINT_FAST_NAVIGATE = 2 } PaintFlags; /* Sculpt.flags */ diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 422c56fe4c1..9c1f01f12b4 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -210,6 +210,7 @@ typedef struct View3D { /* RegionView3d->rflag */ #define RV3D_FLYMODE 2 #define RV3D_CLIPPING 4 +#define RV3D_NAVIGATING 8 /* RegionView3d->viewlock */ #define RV3D_LOCKED 1 diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index 89e29596746..f365f053e79 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -174,6 +174,10 @@ static void rna_def_paint(BlenderRNA *brna) prop= RNA_def_property(srna, "show_brush", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", PAINT_SHOW_BRUSH); RNA_def_property_ui_text(prop, "Show Brush", ""); + + prop= RNA_def_property(srna, "fast_navigate", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flags", PAINT_FAST_NAVIGATE); + RNA_def_property_ui_text(prop, "Fast Navigate", "For multires, show low resolution while navigating the view."); } static void rna_def_sculpt(BlenderRNA *brna) -- cgit v1.2.3 From 077edbb384e3845f27cc06618046a08c7101cc4c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Nov 2009 14:27:50 +0000 Subject: Sculpt: external file storage for multires * This is experimental, the file format may change still! * Helps reduce memory usage, keeps .blend files smaller, and makes saving quicker when not editing multires. * This is implemented at the customdata level, currently only the multires displacements can be stored externally. ToDo * Better integration with object duplication/removal/.. * Memory is not yet freed when exiting sculpt mode. * Loading only lower levels is not supported yet. --- source/blender/blenkernel/BKE_btex.h | 64 ++++ source/blender/blenkernel/BKE_customdata.h | 16 + source/blender/blenkernel/intern/btex.c | 482 +++++++++++++++++++++++++ source/blender/blenkernel/intern/customdata.c | 305 +++++++++++++++- source/blender/blenkernel/intern/multires.c | 8 +- source/blender/blenkernel/intern/pointcache.c | 9 +- source/blender/blenlib/BLI_string.h | 3 + source/blender/blenlib/intern/string.c | 15 + source/blender/blenloader/intern/readfile.c | 10 +- source/blender/blenloader/intern/writefile.c | 19 +- source/blender/editors/include/ED_sculpt.h | 2 +- source/blender/makesdna/DNA_customdata_types.h | 17 +- source/blender/makesrna/intern/rna_modifier.c | 8 +- source/blender/windowmanager/intern/wm_files.c | 2 + 14 files changed, 924 insertions(+), 36 deletions(-) create mode 100644 source/blender/blenkernel/BKE_btex.h create mode 100644 source/blender/blenkernel/intern/btex.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_btex.h b/source/blender/blenkernel/BKE_btex.h new file mode 100644 index 00000000000..cb73fd160d7 --- /dev/null +++ b/source/blender/blenkernel/BKE_btex.h @@ -0,0 +1,64 @@ +/* + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef BKE_BTEX_H +#define BKE_BTEX_H + +#define BTEX_TYPE_IMAGE 0 +#define BTEX_TYPE_MESH 1 + +#define BTEX_LAYER_NAME_MAX 64 + +typedef struct BTex BTex; +typedef struct BTexLayer BTexLayer; + +/* Create/Free */ + +BTex *btex_create(int type); +void btex_free(BTex *btex); + +/* File read/write/remove */ + +int btex_read_open(BTex *btex, char *filename); +int btex_read_layer(BTex *btex, BTexLayer *blay); +int btex_read_data(BTex *btex, int size, void *data); +void btex_read_close(BTex *btex); + +int btex_write_open(BTex *btex, char *filename); +int btex_write_layer(BTex *btex, BTexLayer *blay); +int btex_write_data(BTex *btex, int size, void *data); +void btex_write_close(BTex *btex); + +void btex_remove(char *filename); + +/* Layers */ + +BTexLayer *btex_layer_find(BTex *btex, int type, char *name); +BTexLayer *btex_layer_add(BTex *btex, int type, char *name); +void btex_layer_remove(BTex *btex, BTexLayer *blay); + +/* Mesh */ + +void btex_mesh_set_grids(BTex *btex, int totgrid, int gridsize, int datasize); + +#endif /* BKE_BTEX_H */ + diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h index 95ee918a888..5ce4b396f0e 100644 --- a/source/blender/blenkernel/BKE_customdata.h +++ b/source/blender/blenkernel/BKE_customdata.h @@ -278,4 +278,20 @@ int CustomData_verify_versions(struct CustomData *data, int index); void CustomData_to_bmeshpoly(struct CustomData *fdata, struct CustomData *pdata, struct CustomData *ldata); void CustomData_from_bmeshpoly(struct CustomData *fdata, struct CustomData *pdata, struct CustomData *ldata, int total); void CustomData_bmesh_init_pool(struct CustomData *data, int allocsize); + +/* External file storage */ + +void CustomData_external_add(struct CustomData *data, + int type, const char *name, int totelem); +void CustomData_external_remove(struct CustomData *data, + int type, int totelem); +void CustomData_external_remove_object(struct CustomData *data); +int CustomData_external_test(struct CustomData *data, int type); + +void CustomData_external_write(struct CustomData *data, + CustomDataMask mask, int totelem, int free); +void CustomData_external_read(struct CustomData *data, + CustomDataMask mask, int totelem); + #endif + diff --git a/source/blender/blenkernel/intern/btex.c b/source/blender/blenkernel/intern/btex.c new file mode 100644 index 00000000000..363e515f6e2 --- /dev/null +++ b/source/blender/blenkernel/intern/btex.c @@ -0,0 +1,482 @@ +/* + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "BLI_fileops.h" +#include "BLI_string.h" + +#include "BKE_btex.h" +#include "BKE_global.h" +#include "BKE_utildefines.h" + +/************************* File Format Definitions ***************************/ + +#define BTEX_ENDIAN_LITTLE 0 +#define BTEX_ENDIAN_BIG 1 + +#define BTEX_DATA_FLOAT 0 + +typedef struct BTexHeader { + char ID[4]; /* "BTEX" */ + char endian; /* little, big */ + char version; /* non-compatible versions */ + char subversion; /* compatible sub versions */ + char pad; /* padding */ + + int structbytes; /* size of this struct in bytes */ + int type; /* image, mesh */ + int totlayer; /* number of layers in the file */ +} BTexHeader; + +typedef struct BTexImageHeader { + int structbytes; /* size of this struct in bytes */ + int width; /* image width */ + int height; /* image height */ + int tile_size; /* tile size (required power of 2) */ +} BTexImageHeader; + +typedef struct BTexMeshHeader { + int structbytes; /* size of this struct in bytes */ + int totgrid; /* number of grids */ + int gridsize; /* width of grids */ +} BTexMeshHeader; + +struct BTexLayer { + int structbytes; /* size of this struct in bytes */ + int datatype; /* only float for now */ + int datasize; /* size of data in layer */ + int type; /* layer type */ + char name[BTEX_LAYER_NAME_MAX]; /* layer name */ +}; + +/**************************** Other Definitions ******************************/ + +#define BTEX_VERSION 0 +#define BTEX_SUBVERSION 0 +#define BTEX_TILE_SIZE 64 + +struct BTex { + int type; + + BTexHeader header; + union { + BTexImageHeader image; + BTexMeshHeader mesh; + } btype; + + BTexLayer *layer; + int totlayer; + + FILE *readf; + FILE *writef; + int switchendian; + size_t dataoffset; +}; + +/********************************* Create/Free *******************************/ + +static int btex_endian(void) +{ + if(ENDIAN_ORDER == L_ENDIAN) + return BTEX_ENDIAN_LITTLE; + else + return BTEX_ENDIAN_BIG; +} + +/*static int btex_data_type_size(int datatype) +{ + if(datatype == BTEX_DATA_FLOAT) + return sizeof(float); + + return 0; +}*/ + +BTex *btex_create(int type) +{ + BTex *btex= MEM_callocN(sizeof(BTex), "BTex"); + + btex->type= type; + + return btex; +} + +void btex_free(BTex *btex) +{ + btex_read_close(btex); + btex_write_close(btex); + + if(btex->layer) + MEM_freeN(btex->layer); + + MEM_freeN(btex); +} + +/********************************* Read/Write ********************************/ + +static int btex_read_header(BTex *btex) +{ + BTexHeader *header; + BTexImageHeader *image; + BTexMeshHeader *mesh; + BTexLayer *layer; + FILE *f= btex->readf; + size_t offset = 0; + int a; + + header= &btex->header; + + if(!fread(header, sizeof(BTexHeader), 1, btex->readf)) + return 0; + + if(memcmp(header->ID, "BTEX", sizeof(header->ID)) != 0) + return 0; + if(header->version > BTEX_VERSION) + return 0; + + btex->switchendian= header->endian != btex_endian(); + header->endian= btex_endian(); + + if(btex->switchendian) { + SWITCH_INT(header->type); + SWITCH_INT(header->totlayer); + SWITCH_INT(header->structbytes); + } + + if(!ELEM(header->type, BTEX_TYPE_IMAGE, BTEX_TYPE_MESH)) + return 0; + + offset += header->structbytes; + header->structbytes= sizeof(BTexHeader); + + if(fseek(f, offset, SEEK_SET) != 0) + return 0; + + if(header->type == BTEX_TYPE_IMAGE) { + image= &btex->btype.image; + if(!fread(image, sizeof(BTexImageHeader), 1, f)) + return 0; + + if(btex->switchendian) { + SWITCH_INT(image->width); + SWITCH_INT(image->height); + SWITCH_INT(image->tile_size); + SWITCH_INT(image->structbytes); + } + + offset += image->structbytes; + image->structbytes= sizeof(BTexImageHeader); + } + else if(header->type == BTEX_TYPE_MESH) { + mesh= &btex->btype.mesh; + if(!fread(mesh, sizeof(BTexMeshHeader), 1, f)) + return 0; + + if(btex->switchendian) { + SWITCH_INT(mesh->totgrid); + SWITCH_INT(mesh->gridsize); + SWITCH_INT(mesh->structbytes); + } + + offset += mesh->structbytes; + mesh->structbytes= sizeof(BTexMeshHeader); + } + + if(fseek(f, offset, SEEK_SET) != 0) + return 0; + + btex->layer= MEM_callocN(sizeof(BTexLayer)*header->totlayer, "BTexLayer"); + btex->totlayer= header->totlayer; + + for(a=0; atotlayer; a++) { + layer= &btex->layer[a]; + + if(!fread(layer, sizeof(BTexLayer), 1, f)) + return 0; + + if(btex->switchendian) { + SWITCH_INT(layer->type); + SWITCH_INT(layer->datatype); + SWITCH_INT(layer->datasize); + SWITCH_INT(layer->structbytes); + } + + if(layer->datatype != BTEX_DATA_FLOAT) + return 0; + + offset += layer->structbytes; + layer->structbytes= sizeof(BTexLayer); + + if(fseek(f, offset, SEEK_SET) != 0) + return 0; + } + + btex->dataoffset= offset; + + return 1; +} + +static int btex_write_header(BTex *btex) +{ + BTexHeader *header; + BTexImageHeader *image; + BTexMeshHeader *mesh; + BTexLayer *layer; + FILE *f= btex->writef; + int a; + + header= &btex->header; + + if(!fwrite(header, sizeof(BTexHeader), 1, f)) + return 0; + + if(header->type == BTEX_TYPE_IMAGE) { + image= &btex->btype.image; + if(!fwrite(image, sizeof(BTexImageHeader), 1, f)) + return 0; + } + else if(header->type == BTEX_TYPE_MESH) { + mesh= &btex->btype.mesh; + if(!fwrite(mesh, sizeof(BTexMeshHeader), 1, f)) + return 0; + } + + for(a=0; atotlayer; a++) { + layer= &btex->layer[a]; + + if(!fwrite(layer, sizeof(BTexLayer), 1, f)) + return 0; + } + + return 1; +} + +int btex_read_open(BTex *btex, char *filename) +{ + FILE *f; + + f= fopen(filename, "rb"); + if(!f) + return 0; + + btex->readf= f; + + if(!btex_read_header(btex)) { + btex_read_close(btex); + return 0; + } + + if(btex->header.type != btex->type) { + btex_read_close(btex); + return 0; + } + + return 1; +} + +int btex_read_layer(BTex *btex, BTexLayer *blay) +{ + size_t offset; + int a; + + /* seek to right location in file */ + offset= btex->dataoffset; + for(a=0; atotlayer; a++) { + if(&btex->layer[a] == blay) + break; + else + offset += btex->layer[a].datasize; + } + + return (fseek(btex->readf, offset, SEEK_SET) == 0); +} + +int btex_read_data(BTex *btex, int size, void *data) +{ + float *fdata; + int a; + + /* read data */ + if(!fread(data, size, 1, btex->readf)) + return 0; + + /* switch endian if necessary */ + if(btex->switchendian) { + fdata= data; + + for(a=0; areadf) { + fclose(btex->readf); + btex->readf= NULL; + } +} + +int btex_write_open(BTex *btex, char *filename) +{ + BTexHeader *header; + BTexImageHeader *image; + BTexMeshHeader *mesh; + FILE *f; + + f= fopen(filename, "wb"); + if(!f) + return 0; + + btex->writef= f; + + /* fill header */ + header= &btex->header; + strcpy(header->ID, "BTEX"); + header->endian= btex_endian(); + header->version= BTEX_VERSION; + header->subversion= BTEX_SUBVERSION; + + header->structbytes= sizeof(BTexHeader); + header->type= btex->type; + header->totlayer= btex->totlayer; + + if(btex->type == BTEX_TYPE_IMAGE) { + /* fill image header */ + image= &btex->btype.image; + image->structbytes= sizeof(BTexImageHeader); + image->tile_size= BTEX_TILE_SIZE; + } + else if(btex->type == BTEX_TYPE_MESH) { + /* fill mesh header */ + mesh= &btex->btype.mesh; + mesh->structbytes= sizeof(BTexMeshHeader); + } + + btex_write_header(btex); + + return 1; +} + +int btex_write_layer(BTex *btex, BTexLayer *blay) +{ + return 1; +} + +int btex_write_data(BTex *btex, int size, void *data) +{ + /* write data */ + if(!fwrite(data, size, 1, btex->writef)) + return 0; + + return 1; +} + +void btex_write_close(BTex *btex) +{ + if(btex->writef) { + fclose(btex->writef); + btex->writef= NULL; + } +} + +void btex_remove(char *filename) +{ + BLI_delete(filename, 0, 0); +} + +/********************************** Layers ***********************************/ + +BTexLayer *btex_layer_find(BTex *btex, int type, char *name) +{ + BTexLayer *layer; + int a; + + for(a=0; atotlayer; a++) { + layer= &btex->layer[a]; + + if(layer->type == type && strcmp(layer->name, name) == 0) + return layer; + } + + return NULL; +} + +BTexLayer *btex_layer_add(BTex *btex, int type, char *name) +{ + BTexLayer *newlayer, *layer; + + /* expand array */ + newlayer= MEM_callocN(sizeof(BTexLayer)*(btex->totlayer+1), "BTexLayer"); + memcpy(newlayer, btex->layer, sizeof(BTexLayer)*btex->totlayer); + btex->layer= newlayer; + + btex->totlayer++; + + /* fill in new layer */ + layer= &btex->layer[btex->totlayer-1]; + layer->structbytes= sizeof(BTexLayer); + layer->datatype= BTEX_DATA_FLOAT; + layer->type= type; + BLI_strncpy(layer->name, name, BTEX_LAYER_NAME_MAX); + + return layer; +} + +void btex_layer_remove(BTex *btex, BTexLayer *layer) +{ + BTexLayer *newlayer; + int index= layer - btex->layer; + + /* expand array */ + newlayer= MEM_callocN(sizeof(BTexLayer)*(btex->totlayer-1), "BTexLayer"); + if(index > 0) + memcpy(newlayer, btex->layer, sizeof(BTexLayer)*index); + if(index+1 < btex->totlayer) + memcpy(newlayer+index, btex->layer+index+1, sizeof(BTexLayer)*(btex->totlayer-(index+1))); + btex->layer= newlayer; + + btex->totlayer--; +} + +/********************************* Mesh **************************************/ + +void btex_mesh_set_grids(BTex *btex, int totgrid, int gridsize, int datasize) +{ + BTexLayer *layer; + int a; + + btex->btype.mesh.totgrid= totgrid; + btex->btype.mesh.gridsize= gridsize; + + for(a=0; atotlayer; a++) { + layer= &btex->layer[a]; + layer->datasize= datasize; + } +} + diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 4844595513f..8f167310741 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -32,21 +32,26 @@ * */ -#include "BKE_customdata.h" -#include "BKE_utildefines.h" // CLAMP -#include "BLI_math.h" -#include "BLI_blenlib.h" -#include "BLI_linklist.h" -#include "BLI_mempool.h" +#include +#include + +#include "MEM_guardedalloc.h" #include "DNA_customdata_types.h" #include "DNA_listBase.h" #include "DNA_meshdata_types.h" +#include "DNA_ID.h" -#include "MEM_guardedalloc.h" +#include "BLI_blenlib.h" +#include "BLI_linklist.h" +#include "BLI_math.h" +#include "BLI_mempool.h" +#include "BLI_string.h" -#include -#include +#include "BKE_btex.h" +#include "BKE_customdata.h" +#include "BKE_global.h" +#include "BKE_utildefines.h" /* number of layers to add when growing a CustomData object */ #define CUSTOMDATA_GROW 5 @@ -89,6 +94,12 @@ typedef struct LayerTypeInfo { /* a function to set a layer's data to default values. if NULL, the default is assumed to be all zeros */ void (*set_default)(void *data, int count); + + /* a function to read data from a btex file */ + int (*read)(BTex *btex, void *data, int count); + + /* a function to write data to a btex file */ + int (*write)(BTex *btex, void *data, int count); } LayerTypeInfo; static void layerCopy_mdeformvert(const void *source, void *dest, @@ -538,6 +549,39 @@ static void layerFree_mdisps(void *data, int count, int size) } } +static int layerRead_mdisps(BTex *btex, void *data, int count) +{ + MDisps *d = data; + int i; + + for(i = 0; i < count; ++i) { + if(!d[i].disps) + d[i].disps = MEM_callocN(sizeof(float)*3*d[i].totdisp, "mdisps read"); + + if(!btex_read_data(btex, d[i].totdisp*3*sizeof(float), d[i].disps)) { + printf("failed to read %d/%d %d\n", i, count, d[i].totdisp); + return 0; + } + } + + return 1; +} + +static int layerWrite_mdisps(BTex *btex, void *data, int count) +{ + MDisps *d = data; + int i; + + for(i = 0; i < count; ++i) { + if(!btex_write_data(btex, d[i].totdisp*3*sizeof(float), d[i].disps)) { + printf("failed to write %d/%d %d\n", i, count, d[i].totdisp); + return 0; + } + } + + return 1; +} + /* --------- */ static void layerDefault_mloopcol(void *data, int count) @@ -731,7 +775,7 @@ const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { {sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL, layerDefault_mloopcol}, {sizeof(float)*3*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps, - layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL}, + layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps}, {sizeof(MCol)*4, "MCol", 4, "WeightCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, {sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol, @@ -793,6 +837,8 @@ void CustomData_merge(const struct CustomData *source, struct CustomData *dest, CustomDataLayer *layer, *newlayer; int i, type, number = 0, lasttype = -1, lastactive = 0, lastrender = 0, lastclone = 0, lastmask = 0; + CustomData_external_read(dest, mask, totelem); + for(i = 0; i < source->totlayer; ++i) { layer = &source->layers[i]; typeInfo = layerType_getInfo(layer->type); @@ -853,6 +899,14 @@ static void customData_free_layer__internal(CustomDataLayer *layer, int totelem) } } +static void CustomData_external_free(CustomData *data) +{ + if(data->external) { + MEM_freeN(data->external); + data->external= NULL; + } +} + void CustomData_free(CustomData *data, int totelem) { int i; @@ -863,6 +917,8 @@ void CustomData_free(CustomData *data, int totelem) if(data->layers) MEM_freeN(data->layers); + CustomData_external_free(data); + memset(data, 0, sizeof(*data)); } @@ -2238,3 +2294,232 @@ int CustomData_verify_versions(struct CustomData *data, int index) return keeplayer; } +/****************************** External Files *******************************/ + +static void customdata_external_filename(char filename[FILE_MAX], CustomDataExternal *external) +{ + BLI_strncpy(filename, external->filename, FILE_MAX); + BLI_convertstringcode(filename, G.sce); +} + +void CustomData_external_read(CustomData *data, CustomDataMask mask, int totelem) +{ + CustomDataExternal *external= data->external; + CustomDataLayer *layer; + BTex *btex; + BTexLayer *blay; + char filename[FILE_MAX]; + const LayerTypeInfo *typeInfo; + int i, update = 0; + + if(!external) + return; + + for(i=0; itotlayer; i++) { + layer = &data->layers[i]; + typeInfo = layerType_getInfo(layer->type); + + if(!(mask & (1<type))); + else if(layer->flag & CD_FLAG_IN_MEMORY); + else if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->read) + update= 1; + } + + if(!update) + return; + + customdata_external_filename(filename, external); + + btex= btex_create(BTEX_TYPE_MESH); + if(!btex_read_open(btex, filename)) + return; + + for(i=0; itotlayer; i++) { + layer = &data->layers[i]; + typeInfo = layerType_getInfo(layer->type); + + if(!(mask & (1<type))); + else if(layer->flag & CD_FLAG_IN_MEMORY); + else if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->read) { + blay= btex_layer_find(btex, layer->type, layer->name); + + if(blay) { + if(btex_read_layer(btex, blay)) { + if(typeInfo->read(btex, layer->data, totelem)); + else break; + layer->flag |= CD_FLAG_IN_MEMORY; + } + else + break; + } + } + } + + btex_read_close(btex); + btex_free(btex); +} + +void CustomData_external_write(CustomData *data, CustomDataMask mask, int totelem, int free) +{ + CustomDataExternal *external= data->external; + CustomDataLayer *layer; + BTex *btex; + BTexLayer *blay; + const LayerTypeInfo *typeInfo; + int i, update = 0; + char filename[FILE_MAX]; + + if(!external) + return; + + for(i=0; itotlayer; i++) { + layer = &data->layers[i]; + typeInfo = layerType_getInfo(layer->type); + + if(!(mask & (1<type))); + else if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->write) + update= 1; + } + + if(!update) + return; + + CustomData_external_read(data, mask, totelem); + + btex= btex_create(BTEX_TYPE_MESH); + + for(i=0; itotlayer; i++) { + layer = &data->layers[i]; + typeInfo = layerType_getInfo(layer->type); + + if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->write) + btex_layer_add(btex, layer->type, layer->name); + } + + customdata_external_filename(filename, external); + if(!btex_write_open(btex, filename)) + return; + + for(i=0; itotlayer; i++) { + layer = &data->layers[i]; + typeInfo = layerType_getInfo(layer->type); + + if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->write) { + blay= btex_layer_find(btex, layer->type, layer->name); + + if(btex_write_layer(btex, blay)) { + if(typeInfo->write(btex, layer->data, totelem)); + else break; + } + else + break; + } + } + + if(i != data->totlayer) { + btex_free(btex); + return; + } + + for(i=0; itotlayer; i++) { + layer = &data->layers[i]; + typeInfo = layerType_getInfo(layer->type); + + if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->write) { + if(free) { + if(typeInfo->free) + typeInfo->free(layer->data, totelem, typeInfo->size); + layer->flag &= ~CD_FLAG_IN_MEMORY; + } + } + } + + btex_write_close(btex); + btex_free(btex); +} + +void CustomData_external_add(CustomData *data, int type, const char *name, int totelem) +{ + CustomDataExternal *external= data->external; + CustomDataLayer *layer; + int layer_index; + + layer_index = CustomData_get_active_layer_index(data, type); + if(layer_index < 0) return; + + layer = &data->layers[layer_index]; + + if(layer->flag & CD_FLAG_EXTERNAL) + return; + + if(!external) { + char hex[MAX_ID_NAME*2]; + + external= MEM_callocN(sizeof(CustomDataExternal), "CustomDataExternal"); + BLI_strhex(hex, sizeof(hex), name); + BLI_snprintf(external->filename, sizeof(external->filename), "//%s_mesh.btex", hex); + data->external= external; + } + + layer->flag |= CD_FLAG_EXTERNAL|CD_FLAG_IN_MEMORY; +} + +void CustomData_external_remove(CustomData *data, int type, int totelem) +{ + CustomDataExternal *external= data->external; + CustomDataLayer *layer; + char filename[FILE_MAX]; + int layer_index, i, remove_file; + + layer_index = CustomData_get_active_layer_index(data, type); + if(layer_index < 0) return; + + layer = &data->layers[layer_index]; + + if(!external) + return; + + if(layer->flag & CD_FLAG_EXTERNAL) { + if(!(layer->flag & CD_FLAG_IN_MEMORY)) + CustomData_external_read(data, (1<type), totelem); + + layer->flag &= ~CD_FLAG_EXTERNAL; + + remove_file= 1; + for(i=0; itotlayer; i++) + if(data->layers[i].flag & CD_FLAG_EXTERNAL) + remove_file= 0; + + if(remove_file) { + customdata_external_filename(filename, external); + btex_remove(filename); + CustomData_external_free(data); + } + } +} + +int CustomData_external_test(CustomData *data, int type) +{ + CustomDataLayer *layer; + int layer_index; + + layer_index = CustomData_get_active_layer_index(data, type); + if(layer_index < 0) return 0; + + layer = &data->layers[layer_index]; + return (layer->flag & CD_FLAG_EXTERNAL); +} + +void CustomData_external_remove_object(CustomData *data) +{ + CustomDataExternal *external= data->external; + char filename[FILE_MAX]; + + if(!external) + return; + + customdata_external_filename(filename, external); + btex_remove(filename); + CustomData_external_free(data); +} + diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 2518d4bc3ca..a709b45f60c 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -249,7 +249,7 @@ void multiresModifier_del_levels(struct MultiresModifierData *mmd, struct Object int levels = mmd->totlvl - lvl; MDisps *mdisps; - // XXX CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); + CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); mdisps= CustomData_get_layer(&me->fdata, CD_MDISPS); multires_force_update(ob); @@ -595,7 +595,7 @@ static void multiresModifier_update(DerivedMesh *dm) ob = ccgdm->multires.ob; me = ccgdm->multires.ob->data; mmd = ccgdm->multires.mmd; - // XXX CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); + CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS); if(mdisps) { @@ -692,7 +692,7 @@ void multires_force_update(Object *ob) struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int local_mmd, DerivedMesh *dm, Object *ob, int useRenderParams, int isFinalCalc) { - //Mesh *me= ob->data; + Mesh *me= ob->data; DerivedMesh *result; CCGDerivedMesh *ccgdm; DMGridData **gridData, **subGridData; @@ -727,7 +727,7 @@ struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, i memcpy(subGridData[i], gridData[i], sizeof(DMGridData)*gridSize*gridSize); } - // XXX CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); + CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); multiresModifier_disp_run(result, ob->data, 0, 0, subGridData, mmd->totlvl); for(i = 0; i < numGrids; i++) diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index c2798b4a746..e552f08f350 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -1075,12 +1075,11 @@ static int BKE_ptcache_id_filename(PTCacheID *pid, char *filename, int cfra, sho } if(strcmp(pid->cache->name, "")==0 && (pid->cache->flag & PTCACHE_EXTERNAL)==0) { idname = (pid->ob->id.name+2); + /* convert chars to hex so they are always a valid filename */ - while('\0' != *idname) { - snprintf(newname, MAX_PTCACHE_FILE, "%02X", (char)(*idname++)); - newname+=2; - len += 2; - } + BLI_strhex(newname, MAX_PTCACHE_FILE - len, idname); + len += strlen(newname); + newname = filename + len; } else { int temp = (int)strlen(pid->cache->name); diff --git a/source/blender/blenlib/BLI_string.h b/source/blender/blenlib/BLI_string.h index fb345de72e9..fad3c337355 100644 --- a/source/blender/blenlib/BLI_string.h +++ b/source/blender/blenlib/BLI_string.h @@ -123,6 +123,9 @@ int BLI_natstrcmp(const char *s1, const char *s2); void BLI_timestr(double _time, char *str); /* time var is global */ + /* Convert to hex string valid for file writing (2x length of original) */ +void BLI_strhex(char *hex, int maxlen, const char *str); + #ifdef __cplusplus } #endif diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c index 405f8c6db97..2ecdda2de35 100644 --- a/source/blender/blenlib/intern/string.c +++ b/source/blender/blenlib/intern/string.c @@ -329,3 +329,18 @@ void BLI_timestr(double _time, char *str) str[11]=0; } + +void BLI_strhex(char *hex, int maxlen, const char *str) +{ + int len = 0; + + while('\0' != *str && len+3 < maxlen) { + snprintf(hex, maxlen, "%02X", *str++); + hex += 2; + len += 2; + } + + if(maxlen) + hex[0]= '\0'; +} + diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index a9ceb77ad9f..c47ea8838c7 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3311,14 +3311,14 @@ static void direct_link_dverts(FileData *fd, int count, MDeformVert *mdverts) } } -static void direct_link_mdisps(FileData *fd, int count, MDisps *mdisps) +static void direct_link_mdisps(FileData *fd, int count, MDisps *mdisps, int external) { if(mdisps) { int i; for(i = 0; i < count; ++i) { mdisps[i].disps = newdataadr(fd, mdisps[i].disps); - if(!mdisps[i].disps) + if(!external && !mdisps[i].disps) mdisps[i].totdisp = 0; } } @@ -3329,14 +3329,18 @@ static void direct_link_customdata(FileData *fd, CustomData *data, int count) int i = 0; data->layers= newdataadr(fd, data->layers); + data->external= newdataadr(fd, data->external); while (i < data->totlayer) { CustomDataLayer *layer = &data->layers[i]; + if(layer->flag & CD_FLAG_EXTERNAL) + layer->flag &= ~CD_FLAG_IN_MEMORY; + if (CustomData_verify_versions(data, i)) { layer->data = newdataadr(fd, layer->data); if(layer->type == CD_MDISPS) - direct_link_mdisps(fd, count, layer->data); + direct_link_mdisps(fd, count, layer->data, layer->flag & CD_FLAG_EXTERNAL); i++; } } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index b00cd10c6a7..0a4f22c1fd5 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1434,15 +1434,17 @@ static void write_dverts(WriteData *wd, int count, MDeformVert *dvlist) } } -static void write_mdisps(WriteData *wd, int count, MDisps *mdlist) +static void write_mdisps(WriteData *wd, int count, MDisps *mdlist, int external) { if(mdlist) { int i; writestruct(wd, DATA, "MDisps", count, mdlist); - for(i = 0; i < count; ++i) { - if(mdlist[i].disps) - writedata(wd, DATA, sizeof(float)*3*mdlist[i].totdisp, mdlist[i].disps); + if(!external) { + for(i = 0; i < count; ++i) { + if(mdlist[i].disps) + writedata(wd, DATA, sizeof(float)*3*mdlist[i].totdisp, mdlist[i].disps); + } } } } @@ -1451,6 +1453,10 @@ static void write_customdata(WriteData *wd, int count, CustomData *data, int par { int i; + /* write external customdata */ + if(data->external && !wd->current) + CustomData_external_write(data, CD_MASK_MESH, count, 0); + writestruct(wd, DATA, "CustomDataLayer", data->maxlayer, data->layers); for (i=0; itotlayer; i++) { @@ -1463,7 +1469,7 @@ static void write_customdata(WriteData *wd, int count, CustomData *data, int par write_dverts(wd, count, layer->data); } else if (layer->type == CD_MDISPS) { - write_mdisps(wd, count, layer->data); + write_mdisps(wd, count, layer->data, layer->flag & CD_FLAG_EXTERNAL); } else { CustomData_file_write_info(layer->type, &structname, &structnum); @@ -1480,6 +1486,9 @@ static void write_customdata(WriteData *wd, int count, CustomData *data, int par printf("error: this CustomDataLayer must not be written to file\n"); } } + + if(data->external) + writestruct(wd, DATA, "CustomDataExternal", 1, data->external); } static void write_meshs(WriteData *wd, ListBase *idbase) diff --git a/source/blender/editors/include/ED_sculpt.h b/source/blender/editors/include/ED_sculpt.h index 085c8e894f8..aae79e9a1de 100644 --- a/source/blender/editors/include/ED_sculpt.h +++ b/source/blender/editors/include/ED_sculpt.h @@ -39,7 +39,7 @@ struct wmWindowManager; void ED_operatortypes_sculpt(void); void sculpt_get_redraw_planes(float planes[4][4], struct ARegion *ar, struct RegionView3D *rv3d, struct Object *ob); - +void ED_sculpt_force_update(struct bContext *C); /* paint_ops.c */ void ED_operatortypes_paint(void); diff --git a/source/blender/makesdna/DNA_customdata_types.h b/source/blender/makesdna/DNA_customdata_types.h index ad686e37097..91e4cefce80 100644 --- a/source/blender/makesdna/DNA_customdata_types.h +++ b/source/blender/makesdna/DNA_customdata_types.h @@ -44,14 +44,19 @@ typedef struct CustomDataLayer { void *data; /* layer data */ } CustomDataLayer; +typedef struct CustomDataExternal { + char filename[240]; /* FILE_MAX */ +} CustomDataExternal; + /* structure which stores custom element data associated with mesh elements * (vertices, edges or faces). The custom data is organised into a series of * layers, each with a data type (e.g. MTFace, MDeformVert, etc.). */ typedef struct CustomData { - CustomDataLayer *layers; /* CustomDataLayers, ordered by type */ - int totlayer, maxlayer; /* number of layers, size of layers array */ - int totsize, pad; /* in editmode, total size of all data layers */ - void *pool; /* for Bmesh: Memory pool for allocation of blocks*/ + CustomDataLayer *layers; /* CustomDataLayers, ordered by type */ + int totlayer, maxlayer; /* number of layers, size of layers array */ + int totsize, pad; /* in editmode, total size of all data layers */ + void *pool; /* Bmesh: Memory pool for allocation of blocks */ + CustomDataExternal *external; /* external file storing customdata layers */ } CustomData; /* CustomData.type */ @@ -115,6 +120,10 @@ typedef struct CustomData { #define CD_FLAG_NOFREE (1<<1) /* indicates the layer is only temporary, also implies no copy */ #define CD_FLAG_TEMPORARY ((1<<2)|CD_FLAG_NOCOPY) +/* indicates the layer is stored in an external file */ +#define CD_FLAG_EXTERNAL (1<<3) +/* indicates external data is read into memory */ +#define CD_FLAG_IN_MEMORY (1<<4) /* Limits */ #define MAX_MTFACE 8 diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index 689599c5cdf..208ba522502 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -340,7 +340,7 @@ static void rna_MultiresModifier_level_range(PointerRNA *ptr, int *min, int *max *max = mmd->totlvl; } -/*static int rna_MultiresModifier_external_get(PointerRNA *ptr) +static int rna_MultiresModifier_external_get(PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; Mesh *me= ob->data; @@ -364,7 +364,7 @@ static int rna_MultiresModifier_external_editable(PointerRNA *ptr) MultiresModifierData *mmd = ptr->data; return (G.save_over && mmd->totlvl > 0); -}*/ +} static void modifier_object_set(Object *self, Object **ob_p, int type, PointerRNA value) { @@ -570,10 +570,10 @@ static void rna_def_modifier_multires(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Total Levels", "Number of subdivisions for which displacements are stored."); - /*prop= RNA_def_property(srna, "external", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "external", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_MultiresModifier_external_get", "rna_MultiresModifier_external_set"); RNA_def_property_editable_func(prop, "rna_MultiresModifier_external_editable"); - RNA_def_property_ui_text(prop, "External", "Store multires displacements outside the .blend file, to save memory.");*/ + RNA_def_property_ui_text(prop, "External", "Store multires displacements outside the .blend file, to save memory."); } static void rna_def_modifier_lattice(BlenderRNA *brna) diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 6348e1a2717..21b894ee46b 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -81,6 +81,7 @@ #include "ED_datafiles.h" #include "ED_object.h" #include "ED_screen.h" +#include "ED_sculpt.h" #include "ED_util.h" #include "GHOST_C-api.h" @@ -492,6 +493,7 @@ void WM_write_file(bContext *C, char *target, int fileflags, ReportList *reports } ED_object_exit_editmode(C, EM_DO_UNDO); + ED_sculpt_force_update(C); do_history(di, reports); -- cgit v1.2.3 From 2582e3a90019d5d594be13c178b1054b7f3c71af Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Nov 2009 18:20:46 +0000 Subject: Sculpt: fix windows compile issues, pointed out by JMS, thanks! --- source/blender/blenlib/intern/string.c | 3 +++ source/blender/gpu/intern/gpu_buffers.c | 1 + 2 files changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c index 2ecdda2de35..3dc12174bd7 100644 --- a/source/blender/blenlib/intern/string.c +++ b/source/blender/blenlib/intern/string.c @@ -42,6 +42,9 @@ #include "BLI_dynstr.h" #include "BLI_string.h" +#ifdef WIN32 +#include "BLI_winstuff.h" +#endif char *BLI_strdupn(const char *str, int len) { char *n= MEM_mallocN(len+1, "strdup"); diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 65b81835cf9..9db7f9b1ce9 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -31,6 +31,7 @@ */ #include +#include #include #include "GL/glew.h" -- cgit v1.2.3 From a22cfe99db567fb34047b1cf3cacde1be271efac Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Sun, 29 Nov 2009 18:14:16 +0000 Subject: == Sequencer == Brought back default effect fading: (adding a wipe effect makes it wipe by default for the length of the strip) First round in upgrading IPOs from older versions. (works for non-IPO case now and sets at least the new "default effect fade"-flag) Still non-working for old IPOs, since Sequence-Strips aren't real IDs! And: non-frame-lock case should stretch the FCurve to the right length! --- source/blender/blenkernel/intern/ipo.c | 57 ++++++++++++++++++++++ source/blender/blenkernel/intern/sequence.c | 34 +++++++------ .../editors/space_sequencer/sequencer_add.c | 2 + source/blender/makesdna/DNA_ipo_types.h | 2 + source/blender/makesdna/DNA_sequence_types.h | 1 + source/blender/makesrna/intern/rna_sequence.c | 8 ++- 6 files changed, 89 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 18a8210c68d..6fc3fc547df 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -885,6 +885,17 @@ static char *get_rna_access (int blocktype, int adrcode, char actname[], char co case ID_SEQ: /* sequencer strip */ //SEQ_FAC1: + switch (adrcode) { + case SEQ_FAC1: + propname= "effect_fader"; + break; + case SEQ_FAC_SPEED: + propname= "speed_fader"; + break; + case SEQ_FAC_OPACITY: + propname= "blend_opacity"; + break; + } // poin= &(seq->facf0); // XXX this doesn't seem to be included anywhere in sequencer RNA... break; @@ -1604,6 +1615,7 @@ void do_versions_ipos_to_animato(Main *main) ListBase drivers = {NULL, NULL}; ID *id; AnimData *adt; + Scene *scene; if (main == NULL) { printf("Argh! Main is NULL in do_versions_ipos_to_animato() \n"); @@ -1781,6 +1793,51 @@ void do_versions_ipos_to_animato(Main *main) } } + /* sequence strips */ + for(scene = main->scene.first; scene; scene = scene->id.next) { + if(scene->ed && scene->ed->seqbasep) { + Sequence * seq; + + for(seq = scene->ed->seqbasep->first; + seq; seq = seq->next) { + short adrcode = SEQ_FAC1; + + if (G.f & G_DEBUG) + printf("\tconverting sequence strip %s \n", seq->name+2); + + if (!seq->ipo || !seq->ipo->curve.first) { + seq->flag |= + SEQ_USE_EFFECT_DEFAULT_FADE; + continue; + } + + /* patch adrcode, so that we can map + to different DNA variables later + (semi-hack (tm) ) + */ + switch(seq->type) { + case SEQ_IMAGE: + case SEQ_META: + case SEQ_SCENE: + case SEQ_MOVIE: + case SEQ_COLOR: + adrcode = SEQ_FAC_OPACITY; + break; + case SEQ_SPEED: + adrcode = SEQ_FAC_SPEED; + break; + } + ((IpoCurve*) seq->ipo->curve.first) + ->adrcode = adrcode; + ipo_to_animdata((ID*) seq, seq->ipo, + NULL, NULL); + seq->ipo->id.us--; + seq->ipo = NULL; + } + } + } + + /* textures */ for (id= main->tex.first; id; id= id->next) { Tex *te= (Tex *)id; diff --git a/source/blender/blenkernel/intern/sequence.c b/source/blender/blenkernel/intern/sequence.c index 1920e82b4ab..39b911d1c37 100644 --- a/source/blender/blenkernel/intern/sequence.c +++ b/source/blender/blenkernel/intern/sequence.c @@ -820,16 +820,19 @@ static void do_effect(Scene *scene, int cfra, Sequence *seq, TStripElem * se) return; } - fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, - "effect_fader", 0); - - if (!fcu) { + if ((seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) != 0) { sh.get_default_fac(seq, cfra, &fac, &facf); if( scene->r.mode & R_FIELDS ); else facf= fac; } else { - fac = facf = evaluate_fcurve(fcu, cfra); - if( scene->r.mode & R_FIELDS ) { - facf = evaluate_fcurve(fcu, cfra + 0.5); + fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, + "effect_fader", 0); + if (fcu) { + fac = facf = evaluate_fcurve(fcu, cfra); + if( scene->r.mode & R_FIELDS ) { + facf = evaluate_fcurve(fcu, cfra + 0.5); + } + } else { + fac = facf = seq->effect_fader; } } @@ -2122,16 +2125,19 @@ static void do_effect_seq_recursively(Scene *scene, Sequence *seq, TStripElem *s se->se2 = 0; se->se3 = 0; - fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, - "effect_fader", 0); - - if (!fcu) { + if ((seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) != 0) { sh.get_default_fac(seq, cfra, &fac, &facf); if( scene->r.mode & R_FIELDS ); else facf= fac; } else { - fac = facf = evaluate_fcurve(fcu, cfra); - if( scene->r.mode & R_FIELDS ) { - facf = evaluate_fcurve(fcu, cfra + 0.5); + fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, + "effect_fader", 0); + if (fcu) { + fac = facf = evaluate_fcurve(fcu, cfra); + if( scene->r.mode & R_FIELDS ) { + facf = evaluate_fcurve(fcu, cfra + 0.5); + } + } else { + fac = facf = seq->effect_fader; } } diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index cfce8aeb8ed..ba3735834bc 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -513,6 +513,8 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) seq_tx_set_final_right(seq, end_frame); } + seq->flag |= SEQ_USE_EFFECT_DEFAULT_FADE; + calc_sequence(seq); /* basic defaults */ diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h index 58c26f06e4c..cf3d713c690 100644 --- a/source/blender/makesdna/DNA_ipo_types.h +++ b/source/blender/makesdna/DNA_ipo_types.h @@ -275,6 +275,8 @@ typedef struct Ipo { #define SEQ_TOTNAM 1 #define SEQ_FAC1 1 +#define SEQ_FAC_SPEED 2 +#define SEQ_FAC_OPACITY 3 /* ********* Curve (ID_CU) *********** */ diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 9b38ad6b8cf..3b8182b8759 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -268,6 +268,7 @@ typedef struct SpeedControlVars { #define SEQ_USE_COLOR_BALANCE 262144 #define SEQ_USE_PROXY_CUSTOM_DIR 524288 #define SEQ_USE_PROXY_CUSTOM_FILE 2097152 +#define SEQ_USE_EFFECT_DEFAULT_FADE 4194304 /* deprecated, dont use a flag anymore*/ /*#define SEQ_ACTIVE 1048576*/ diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 9f9298c66f6..2e31facfd19 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -538,6 +538,12 @@ static void rna_def_sequence(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Effect fader position", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + prop= RNA_def_property(srna, "use_effect_default_fade", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_EFFECT_DEFAULT_FADE); + RNA_def_property_ui_text(prop, "Use Default Fade", "Fade effect using the builtin default (usually make transition as long as effect strip)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + + prop= RNA_def_property(srna, "speed_fader", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "speed_fader"); RNA_def_property_ui_text(prop, "Speed effect fader position", ""); @@ -637,7 +643,7 @@ static void rna_def_filter_video(StructRNA *srna) RNA_def_property_ui_text(prop, "Use Translation", "Translate image before processing."); RNA_def_property_boolean_funcs(prop, NULL, "rna_SequenceEditor_use_translation_set"); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); - + prop= RNA_def_property(srna, "transform", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "strip->transform"); RNA_def_property_ui_text(prop, "Transform", ""); -- cgit v1.2.3 From edf32a6fb0213bf35748890dfbc84b20d384298e Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sun, 29 Nov 2009 18:20:26 +0000 Subject: Gimbal orientation defaults to Normal instead of Global when bone or object is not using euler orientation (Normal is bone axis for pose and Local axis for object, so this is more useful than defaulting to Global). --- source/blender/editors/transform/transform.h | 2 +- .../editors/transform/transform_manipulator.c | 100 +++++++++++---------- .../editors/transform/transform_orientations.c | 7 +- 3 files changed, 59 insertions(+), 50 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index bf3562cbe65..4b7d24dc1fa 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -534,7 +534,7 @@ void flushTransNodes(TransInfo *t); void flushTransSeq(TransInfo *t); /*********************** exported from transform_manipulator.c ********** */ -void gimbal_axis(struct Object *ob, float gmat[][3]); +int gimbal_axis(struct Object *ob, float gmat[][3]); /* return 0 when no gimbal for selection */ int calc_manipulator_stats(const struct bContext *C); float get_drawsize(struct ARegion *ar, float *co); diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c index fe79e9b4285..7530e015496 100644 --- a/source/blender/editors/transform/transform_manipulator.c +++ b/source/blender/editors/transform/transform_manipulator.c @@ -182,60 +182,67 @@ static int test_rotmode_euler(short rotmode) return (ELEM(rotmode, ROT_MODE_AXISANGLE, ROT_MODE_QUAT)) ? 0:1; } -void gimbal_axis(Object *ob, float gmat[][3]) +int gimbal_axis(Object *ob, float gmat[][3]) { - if(ob->mode & OB_MODE_POSE) - { - bPoseChannel *pchan= get_active_posechannel(ob); + if (ob) { + if(ob->mode & OB_MODE_POSE) + { + bPoseChannel *pchan= get_active_posechannel(ob); - if(pchan && test_rotmode_euler(pchan->rotmode)) { - float mat[3][3], tmat[3][3], obmat[3][3]; + if(pchan && test_rotmode_euler(pchan->rotmode)) { + float mat[3][3], tmat[3][3], obmat[3][3]; - eulO_to_gimbal_axis(mat, pchan->eul, pchan->rotmode); + eulO_to_gimbal_axis(mat, pchan->eul, pchan->rotmode); - /* apply bone transformation */ - mul_m3_m3m3(tmat, pchan->bone->bone_mat, mat); - - if (pchan->parent) - { - float parent_mat[3][3]; + /* apply bone transformation */ + mul_m3_m3m3(tmat, pchan->bone->bone_mat, mat); - copy_m3_m4(parent_mat, pchan->parent->pose_mat); - mul_m3_m3m3(mat, parent_mat, tmat); + if (pchan->parent) + { + float parent_mat[3][3]; - /* needed if object transformation isn't identity */ - copy_m3_m4(obmat, ob->obmat); - mul_m3_m3m3(gmat, obmat, mat); - } - else - { - /* needed if object transformation isn't identity */ - copy_m3_m4(obmat, ob->obmat); - mul_m3_m3m3(gmat, obmat, tmat); - } + copy_m3_m4(parent_mat, pchan->parent->pose_mat); + mul_m3_m3m3(mat, parent_mat, tmat); - normalize_m3(gmat); + /* needed if object transformation isn't identity */ + copy_m3_m4(obmat, ob->obmat); + mul_m3_m3m3(gmat, obmat, mat); + } + else + { + /* needed if object transformation isn't identity */ + copy_m3_m4(obmat, ob->obmat); + mul_m3_m3m3(gmat, obmat, tmat); + } + + normalize_m3(gmat); + return 1; + } } - } - else { - if(test_rotmode_euler(ob->rotmode)) { - - - if (ob->parent) - { - float parent_mat[3][3], amat[3][3]; + else { + if(test_rotmode_euler(ob->rotmode)) { + - eulO_to_gimbal_axis(amat, ob->rot, ob->rotmode); - copy_m3_m4(parent_mat, ob->parent->obmat); - normalize_m3(parent_mat); - mul_m3_m3m3(gmat, parent_mat, amat); - } - else - { - eulO_to_gimbal_axis(gmat, ob->rot, ob->rotmode); + if (ob->parent) + { + float parent_mat[3][3], amat[3][3]; + + eulO_to_gimbal_axis(amat, ob->rot, ob->rotmode); + copy_m3_m4(parent_mat, ob->parent->obmat); + normalize_m3(parent_mat); + mul_m3_m3m3(gmat, parent_mat, amat); + return 1; + } + else + { + eulO_to_gimbal_axis(gmat, ob->rot, ob->rotmode); + return 1; + } } } } + + return 0; } @@ -481,10 +488,11 @@ int calc_manipulator_stats(const bContext *C) case V3D_MANIP_GIMBAL: { float mat[3][3]; - unit_m3(mat); - gimbal_axis(ob, mat); - copy_m4_m3(rv3d->twmat, mat); - break; + if (gimbal_axis(ob, mat)) { + copy_m4_m3(rv3d->twmat, mat); + break; + } + /* if not gimbal, fall through to normal */ } case V3D_MANIP_NORMAL: if(obedit || ob->mode & OB_MODE_POSE) { diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c index 8847d0ccd58..98067291e07 100644 --- a/source/blender/editors/transform/transform_orientations.c +++ b/source/blender/editors/transform/transform_orientations.c @@ -523,9 +523,10 @@ void initTransformOrientation(bContext *C, TransInfo *t) case V3D_MANIP_GIMBAL: unit_m3(t->spacemtx); - if(ob) - gimbal_axis(ob, t->spacemtx); - break; + if (gimbal_axis(ob, t->spacemtx)) { + break; + } + /* no gimbal fallthrough to normal */ case V3D_MANIP_NORMAL: if(obedit || (ob && ob->mode & OB_MODE_POSE)) { strcpy(t->spacename, "normal"); -- cgit v1.2.3 From 92b4316708bad0448f4c433ef9c6c2d3cc1f4fb5 Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Sun, 29 Nov 2009 19:16:52 +0000 Subject: Merge from COLLADA branch into trunk of -c 24572 (cmake and scons for OpenCollada @ 675, Linux) and 25001 (bone animation import). See corresponding log entries for more detail. --- source/blender/blenkernel/BKE_texture.h | 2 +- source/blender/blenkernel/intern/texture.c | 2 +- source/blender/blenlib/BLI_util.h | 2 +- source/blender/blenlib/intern/util.c | 2 +- source/blender/collada/DocumentExporter.cpp | 2 +- source/blender/collada/DocumentImporter.cpp | 1046 +++++++++++++++++++++++---- source/blender/collada/collada_internal.h | 11 +- 7 files changed, 903 insertions(+), 164 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_texture.h b/source/blender/blenkernel/BKE_texture.h index b9dc5916e69..95ada45f5d8 100644 --- a/source/blender/blenkernel/BKE_texture.h +++ b/source/blender/blenkernel/BKE_texture.h @@ -62,7 +62,7 @@ int do_colorband(struct ColorBand *coba, float in, float out[4]); void colorband_table_RGBA(struct ColorBand *coba, float **array, int *size); void default_tex(struct Tex *tex); -struct Tex *add_texture(char *name); +struct Tex *add_texture(const char *name); void default_mtex(struct MTex *mtex); struct MTex *add_mtex(void); struct Tex *copy_texture(struct Tex *tex); diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 0171c58f2c6..818e6195049 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -518,7 +518,7 @@ void default_tex(Tex *tex) /* ------------------------------------------------------------------------- */ -Tex *add_texture(char *name) +Tex *add_texture(const char *name) { Tex *tex; diff --git a/source/blender/blenlib/BLI_util.h b/source/blender/blenlib/BLI_util.h index 7642b71eea0..ca483903d46 100644 --- a/source/blender/blenlib/BLI_util.h +++ b/source/blender/blenlib/BLI_util.h @@ -61,7 +61,7 @@ void BLI_split_dirfile_basic(const char *string, char *dir, char *file); void BLI_join_dirfile(char *string, const char *dir, const char *file); void BLI_getlastdir(const char* dir, char *last, int maxlen); int BLI_testextensie(const char *str, const char *ext); -void BLI_uniquename(struct ListBase *list, void *vlink, char defname[], char delim, short name_offs, short len); +void BLI_uniquename(struct ListBase *list, void *vlink, const char defname[], char delim, short name_offs, short len); void BLI_newname(char * name, int add); int BLI_stringdec(char *string, char *kop, char *start, unsigned short *numlen); void BLI_stringenc(char *string, char *kop, char *start, unsigned short numlen, int pic); diff --git a/source/blender/blenlib/intern/util.c b/source/blender/blenlib/intern/util.c index 39afced92bc..5ff4dfe4e96 100644 --- a/source/blender/blenlib/intern/util.c +++ b/source/blender/blenlib/intern/util.c @@ -223,7 +223,7 @@ void BLI_newname(char *name, int add) * defname: the name that should be used by default if none is specified already * delim: the character which acts as a delimeter between parts of the name */ -void BLI_uniquename(ListBase *list, void *vlink, char defname[], char delim, short name_offs, short len) +void BLI_uniquename(ListBase *list, void *vlink, const char defname[], char delim, short name_offs, short len) { Link *link; char tempname[128]; diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index fac7b2c882a..c3550dfd408 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -673,7 +673,7 @@ protected: copy_m4_m4(local, mat); } - TransformBase::decompose(local, loc, rot, size); + TransformBase::decompose(local, loc, rot, NULL, size); /* // this code used to create a single representing object rotation diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index f50df355a82..9ebcc8b191f 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -1,3 +1,7 @@ +// TODO: +// * name imported objects +// * import object rotation as euler + #include "COLLADAFWRoot.h" #include "COLLADAFWIWriter.h" #include "COLLADAFWStableHeaders.h" @@ -51,6 +55,7 @@ extern "C" #include "BLI_util.h" #include "BKE_displist.h" #include "BLI_math.h" +#include "BKE_scene.h" } #include "BKE_armature.h" #include "BKE_mesh.h" @@ -91,6 +96,7 @@ extern "C" #include // #define COLLADA_DEBUG +#define ARMATURE_TEST char *CustomData_get_layer_name(const struct CustomData *data, int type, int n); @@ -129,8 +135,10 @@ const char *geomTypeToStr(COLLADAFW::Geometry::GeometryType type) return "SPLINE"; case COLLADAFW::Geometry::GEO_TYPE_CONVEX_MESH: return "CONVEX_MESH"; + case COLLADAFW::Geometry::GEO_TYPE_UNKNOWN: + default: + return "UNKNOWN"; } - return "UNKNOWN"; } // works for COLLADAFW::Node, COLLADAFW::Geometry @@ -193,41 +201,16 @@ public: switch(type) { case COLLADAFW::Transformation::TRANSLATE: - { - COLLADAFW::Translate *tra = (COLLADAFW::Translate*)tm; - COLLADABU::Math::Vector3& t = tra->getTranslation(); - - unit_m4(cur); - cur[3][0] = (float)t[0]; - cur[3][1] = (float)t[1]; - cur[3][2] = (float)t[2]; - } + dae_translate_to_mat4(tm, cur); break; case COLLADAFW::Transformation::ROTATE: - { - COLLADAFW::Rotate *ro = (COLLADAFW::Rotate*)tm; - COLLADABU::Math::Vector3& raxis = ro->getRotationAxis(); - float angle = (float)(ro->getRotationAngle() * M_PI / 180.0f); - float axis[] = {raxis[0], raxis[1], raxis[2]}; - float quat[4]; - float rot_copy[3][3]; - float mat[3][3]; - axis_angle_to_quat(quat, axis, angle); - - quat_to_mat4( cur,quat); - } + dae_rotate_to_mat4(tm, cur); break; case COLLADAFW::Transformation::SCALE: - { - COLLADABU::Math::Vector3& s = ((COLLADAFW::Scale*)tm)->getScale(); - float size[3] = {(float)s[0], (float)s[1], (float)s[2]}; - size_to_mat4( cur,size); - } + dae_scale_to_mat4(tm, cur); break; case COLLADAFW::Transformation::MATRIX: - { - unit_converter->mat4_from_dae(cur, ((COLLADAFW::Matrix*)tm)->getMatrix()); - } + dae_matrix_to_mat4(tm, cur); break; case COLLADAFW::Transformation::LOOKAT: case COLLADAFW::Transformation::SKEW: @@ -248,6 +231,42 @@ public: } } } + + void dae_rotate_to_mat4(COLLADAFW::Transformation *tm, float m[][4]) + { + COLLADAFW::Rotate *ro = (COLLADAFW::Rotate*)tm; + COLLADABU::Math::Vector3& axis = ro->getRotationAxis(); + float angle = (float)(ro->getRotationAngle() * M_PI / 180.0f); + float ax[] = {axis[0], axis[1], axis[2]}; + // float quat[4]; + // axis_angle_to_quat(quat, axis, angle); + // quat_to_mat4(m, quat); + axis_angle_to_mat4(m, ax, angle); + } + + void dae_translate_to_mat4(COLLADAFW::Transformation *tm, float m[][4]) + { + COLLADAFW::Translate *tra = (COLLADAFW::Translate*)tm; + COLLADABU::Math::Vector3& t = tra->getTranslation(); + + unit_m4(m); + + m[3][0] = (float)t[0]; + m[3][1] = (float)t[1]; + m[3][2] = (float)t[2]; + } + + void dae_scale_to_mat4(COLLADAFW::Transformation *tm, float m[][4]) + { + COLLADABU::Math::Vector3& s = ((COLLADAFW::Scale*)tm)->getScale(); + float size[3] = {(float)s[0], (float)s[1], (float)s[2]}; + size_to_mat4(m, size); + } + + void dae_matrix_to_mat4(COLLADAFW::Transformation *tm, float m[][4]) + { + unit_converter->dae_matrix_to_mat4(m, ((COLLADAFW::Matrix*)tm)->getMatrix()); + } }; // only for ArmatureImporter to "see" MeshImporter::get_object_by_geom_uid @@ -261,7 +280,7 @@ public: class AnimationImporterBase { public: - virtual void change_eul_to_quat(Object *ob, bAction *act) = 0; + // virtual void change_eul_to_quat(Object *ob, bAction *act) = 0; }; class ArmatureImporter : private TransformReader @@ -387,7 +406,7 @@ private: for (int i = 0; i < weight.getValuesCount(); i++) weights.push_back(get_float_value(weight, i)); - unit_converter->mat4_from_dae(bind_shape_matrix, skin->getBindShapeMatrix()); + unit_converter->dae_matrix_to_mat4(bind_shape_matrix, skin->getBindShapeMatrix()); } void free() @@ -404,7 +423,7 @@ private: void add_joint(const COLLADABU::Math::Matrix4& matrix) { JointData jd; - unit_converter->mat4_from_dae(jd.inv_bind_mat, matrix); + unit_converter->dae_matrix_to_mat4(jd.inv_bind_mat, matrix); joint_data.push_back(jd); } @@ -478,7 +497,7 @@ private: void link_armature(bContext *C, Object *ob, std::map& joint_by_uid, TransformReader *tm) { - tm->decompose(bind_shape_matrix, ob->loc, ob->rot, ob->size); + tm->decompose(bind_shape_matrix, ob->loc, ob->rot, NULL, ob->size); ob->parent = ob_arm; ob->partype = PARSKEL; @@ -705,6 +724,7 @@ private: } } +#if 0 void set_euler_rotmode() { // just set rotmode = ROT_MODE_EUL on pose channel for each joint @@ -735,6 +755,7 @@ private: } } } +#endif Object *get_empty_for_leaves() { @@ -817,7 +838,7 @@ private: set_leaf_bone_shapes(ob_arm); - set_euler_rotmode(); + // set_euler_rotmode(); } @@ -989,6 +1010,7 @@ public: BLI_snprintf(joint_path, count, "pose.bones[\"%s\"]", get_joint_name(node)); } +#if 0 void fix_animation() { /* Change Euler rotation to Quaternion for bone animation */ @@ -999,6 +1021,23 @@ public: anim_importer->change_eul_to_quat(ob, ob->adt->action); } } +#endif + + // gives a world-space mat + bool get_joint_bind_mat(float m[][4], COLLADAFW::Node *joint) + { + std::map::iterator it; + bool found = false; + for (it = skin_by_data_uid.begin(); it != skin_by_data_uid.end(); it++) { + SkinInfo& skin = it->second; + if ((found = skin.get_joint_inv_bind_matrix(m, joint))) { + invert_m4(m); + break; + } + } + + return found; + } }; class MeshImporter : public MeshImporterBase @@ -1077,6 +1116,9 @@ private: } break; + case COLLADAFW::MeshVertexData::DATA_TYPE_UNKNOWN: + default: + fprintf(stderr, "MeshImporter.getUV(): unknown data type\n"); } } }; @@ -1317,7 +1359,7 @@ private: int count_new_tris(COLLADAFW::Mesh *mesh, Mesh *me) { COLLADAFW::MeshPrimitiveArray& prim_arr = mesh->getMeshPrimitives(); - int i, j, k; + int i, j; int tottri = 0; for (i = 0; i < prim_arr.getCount(); i++) { @@ -1727,11 +1769,14 @@ private: ArmatureImporter *armature_importer; Scene *scene; - std::map > uid_fcurve_map; + std::map > curve_map; std::map uid_animated_map; - std::map > fcurves_actionGroup_map; + // std::map > fcurves_actionGroup_map; + std::map animlist_map; + std::vector unused_curves; + std::map joint_objects; - FCurve *create_fcurve(int array_index, char *rna_path) + FCurve *create_fcurve(int array_index, const char *rna_path) { FCurve *fcu = (FCurve*)MEM_callocN(sizeof(FCurve), "FCurve"); @@ -1754,6 +1799,105 @@ private: calchandles_fcurve(fcu); } + // create one or several fcurves depending on the number of parameters being animated + void animation_to_fcurves(COLLADAFW::AnimationCurve *curve) + { + COLLADAFW::FloatOrDoubleArray& input = curve->getInputValues(); + COLLADAFW::FloatOrDoubleArray& output = curve->getOutputValues(); + // COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); + // COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); + float fps = (float)FPS; + size_t dim = curve->getOutDimension(); + int i; + + std::vector& fcurves = curve_map[curve->getUniqueId()]; + + if (dim == 1) { + FCurve *fcu = (FCurve*)MEM_callocN(sizeof(FCurve), "FCurve"); + + fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); + // fcu->rna_path = BLI_strdupn(path, strlen(path)); + fcu->array_index = 0; + //fcu->totvert = curve->getKeyCount(); + + // create beztriple for each key + for (i = 0; i < curve->getKeyCount(); i++) { + BezTriple bez; + memset(&bez, 0, sizeof(BezTriple)); + + // intangent + // bez.vec[0][0] = get_float_value(intan, i + i) * fps; + // bez.vec[0][1] = get_float_value(intan, i + i + 1); + + // input, output + bez.vec[1][0] = get_float_value(input, i) * fps; + bez.vec[1][1] = get_float_value(output, i); + + // outtangent + // bez.vec[2][0] = get_float_value(outtan, i + i) * fps; + // bez.vec[2][1] = get_float_value(outtan, i + i + 1); + + bez.ipo = U.ipo_new; /* use default interpolation mode here... */ + bez.f1 = bez.f2 = bez.f3 = SELECT; + bez.h1 = bez.h2 = HD_AUTO; + insert_bezt_fcurve(fcu, &bez, 0); + } + + calchandles_fcurve(fcu); + + fcurves.push_back(fcu); + } + else if(dim == 3) { + for (i = 0; i < dim; i++ ) { + FCurve *fcu = (FCurve*)MEM_callocN(sizeof(FCurve), "FCurve"); + + fcu->flag = (FCURVE_VISIBLE|FCURVE_AUTO_HANDLES|FCURVE_SELECTED); + // fcu->rna_path = BLI_strdupn(path, strlen(path)); + fcu->array_index = 0; + //fcu->totvert = curve->getKeyCount(); + + // create beztriple for each key + for (int j = 0; j < curve->getKeyCount(); j++) { + BezTriple bez; + memset(&bez, 0, sizeof(BezTriple)); + + // intangent + // bez.vec[0][0] = get_float_value(intan, j * 6 + i + i) * fps; + // bez.vec[0][1] = get_float_value(intan, j * 6 + i + i + 1); + + // input, output + bez.vec[1][0] = get_float_value(input, j) * fps; + bez.vec[1][1] = get_float_value(output, j * 3 + i); + + // outtangent + // bez.vec[2][0] = get_float_value(outtan, j * 6 + i + i) * fps; + // bez.vec[2][1] = get_float_value(outtan, j * 6 + i + i + 1); + + bez.ipo = U.ipo_new; /* use default interpolation mode here... */ + bez.f1 = bez.f2 = bez.f3 = SELECT; + bez.h1 = bez.h2 = HD_AUTO; + insert_bezt_fcurve(fcu, &bez, 0); + } + + calchandles_fcurve(fcu); + + fcurves.push_back(fcu); + } + } + + for (std::vector::iterator it = fcurves.begin(); it != fcurves.end(); it++) + unused_curves.push_back(*it); + } + + void fcurve_deg_to_rad(FCurve *cu) + { + for (int i = 0; i < cu->totvert; i++) { + // TODO convert handles too + cu->bezt[i].vec[1][1] *= M_PI / 180.0f; + } + } + +#if 0 void make_fcurves_from_animation(COLLADAFW::AnimationCurve *curve, COLLADAFW::FloatOrDoubleArray& input, COLLADAFW::FloatOrDoubleArray& output, @@ -1762,7 +1906,7 @@ private: { int i; // char *path = "location"; - std::vector& fcurves = uid_fcurve_map[curve->getUniqueId()]; + std::vector& fcurves = curve_map[curve->getUniqueId()]; if (dim == 1) { // create fcurve @@ -1831,49 +1975,36 @@ private: } } } +#endif void add_fcurves_to_object(Object *ob, std::vector& curves, char *rna_path, int array_index, Animation *animated) { - ID *id = &ob->id; bAction *act; - bActionGroup *grp = NULL; - if (!ob->adt || !ob->adt->action) act = verify_adt_action(id, 1); - else act = verify_adt_action(id, 0); - - if (!ob->adt || !ob->adt->action) { - fprintf(stderr, "Cannot create anim data or action for this object. \n"); - return; - } + if (!ob->adt || !ob->adt->action) act = verify_adt_action((ID*)&ob->id, 1); + else act = ob->adt->action; - FCurve *fcu; std::vector::iterator it; - int i = 0; + int i; +#if 0 char *p = strstr(rna_path, "rotation_euler"); bool is_rotation = p && *(p + strlen("rotation_euler")) == '\0'; + + // convert degrees to radians for rotation + if (is_rotation) + fcurve_deg_to_rad(fcu); +#endif - for (it = curves.begin(); it != curves.end(); it++) { - fcu = *it; + for (it = curves.begin(), i = 0; it != curves.end(); it++, i++) { + FCurve *fcu = *it; fcu->rna_path = BLI_strdupn(rna_path, strlen(rna_path)); if (array_index == -1) fcu->array_index = i; else fcu->array_index = array_index; - - // convert degrees to radians for rotation - if (is_rotation) { - for(int j = 0; j < fcu->totvert; j++) { - float rot_intan = fcu->bezt[j].vec[0][1]; - float rot_output = fcu->bezt[j].vec[1][1]; - float rot_outtan = fcu->bezt[j].vec[2][1]; - fcu->bezt[j].vec[0][1] = rot_intan * M_PI / 180.0f; - fcu->bezt[j].vec[1][1] = rot_output * M_PI / 180.0f; - fcu->bezt[j].vec[2][1] = rot_outtan * M_PI / 180.0f; - } - } - + if (ob->type == OB_ARMATURE) { - bAction *act = ob->adt->action; + bActionGroup *grp = NULL; const char *bone_name = get_joint_name(animated->node); if (bone_name) { @@ -1886,7 +2017,7 @@ private: grp = (bActionGroup*)MEM_callocN(sizeof(bActionGroup), "bActionGroup"); grp->flag = AGRP_SELECTED; - BLI_snprintf(grp->name, sizeof(grp->name), bone_name); + BLI_strncpy(grp->name, bone_name, sizeof(grp->name)); BLI_addtail(&act->groups, grp); BLI_uniquename(&act->groups, grp, "Group", '.', offsetof(bActionGroup, name), 64); @@ -1896,15 +2027,18 @@ private: action_groups_add_channel(act, grp, fcu); } +#if 0 if (is_rotation) { fcurves_actionGroup_map[grp].push_back(fcu); } +#endif } else { BLI_addtail(&act->curves, fcu); } - i++; + // curve is used, so remove it from unused_curves + unused_curves.erase(std::remove(unused_curves.begin(), unused_curves.end(), fcu), unused_curves.end()); } } public: @@ -1912,13 +2046,20 @@ public: AnimationImporter(UnitConverter *conv, ArmatureImporter *arm, Scene *scene) : TransformReader(conv), armature_importer(arm), scene(scene) { } - bool write_animation( const COLLADAFW::Animation* anim ) + ~AnimationImporter() { - float fps = (float)FPS; + // free unused FCurves + for (std::vector::iterator it = unused_curves.begin(); it != unused_curves.end(); it++) + free_fcurve(*it); + + if (unused_curves.size()) + fprintf(stderr, "removed %u unused curves\n", unused_curves.size()); + } + bool write_animation(const COLLADAFW::Animation* anim) + { if (anim->getAnimationType() == COLLADAFW::Animation::ANIMATION_CURVE) { COLLADAFW::AnimationCurve *curve = (COLLADAFW::AnimationCurve*)anim; - size_t dim = curve->getOutDimension(); // XXX Don't know if it's necessary // Should we check outPhysicalDimension? @@ -1927,11 +2068,6 @@ public: return true; } - COLLADAFW::FloatOrDoubleArray& input = curve->getInputValues(); - COLLADAFW::FloatOrDoubleArray& output = curve->getOutputValues(); - COLLADAFW::FloatOrDoubleArray& intan = curve->getInTangentValues(); - COLLADAFW::FloatOrDoubleArray& outtan = curve->getOutTangentValues(); - // a curve can have mixed interpolation type, // in this case curve->getInterpolationTypes returns a list of interpolation types per key COLLADAFW::AnimationCurve::InterpolationType interp = curve->getInterpolationType(); @@ -1939,17 +2075,11 @@ public: if (interp != COLLADAFW::AnimationCurve::INTERPOLATION_MIXED) { switch (interp) { case COLLADAFW::AnimationCurve::INTERPOLATION_LINEAR: - // support this - make_fcurves_from_animation(curve, input, output, intan, outtan, dim, fps); - break; case COLLADAFW::AnimationCurve::INTERPOLATION_BEZIER: - // and this - make_fcurves_from_animation(curve, input, output, intan, outtan, dim, fps); + animation_to_fcurves(curve); break; - case COLLADAFW::AnimationCurve::INTERPOLATION_CARDINAL: - case COLLADAFW::AnimationCurve::INTERPOLATION_HERMITE: - case COLLADAFW::AnimationCurve::INTERPOLATION_BSPLINE: - case COLLADAFW::AnimationCurve::INTERPOLATION_STEP: + default: + // TODO there're also CARDINAL, HERMITE, BSPLINE and STEP types fprintf(stderr, "CARDINAL, HERMITE, BSPLINE and STEP anim interpolation types not supported yet.\n"); break; } @@ -1967,19 +2097,22 @@ public: } // called on post-process stage after writeVisualScenes - bool write_animation_list( const COLLADAFW::AnimationList* animationList ) + bool write_animation_list(const COLLADAFW::AnimationList* animlist) { - const COLLADAFW::UniqueId& anim_list_id = animationList->getUniqueId(); + const COLLADAFW::UniqueId& animlist_id = animlist->getUniqueId(); + + animlist_map[animlist_id] = animlist; - // possible in case we cannot interpret some transform - if (uid_animated_map.find(anim_list_id) == uid_animated_map.end()) { +#if 0 + // should not happen + if (uid_animated_map.find(animlist_id) == uid_animated_map.end()) { return true; } // for bones rna_path is like: pose.bones["bone-name"].rotation // what does this AnimationList animate? - Animation& animated = uid_animated_map[anim_list_id]; + Animation& animated = uid_animated_map[animlist_id]; Object *ob = animated.ob; char rna_path[100]; @@ -2000,26 +2133,28 @@ public: is_joint = true; } - const COLLADAFW::AnimationList::AnimationBindings& bindings = animationList->getAnimationBindings(); + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); switch (animated.tm->getTransformationType()) { case COLLADAFW::Transformation::TRANSLATE: + case COLLADAFW::Transformation::SCALE: { + bool loc = animated.tm->getTransformationType() == COLLADAFW::Transformation::TRANSLATE; if (is_joint) - BLI_snprintf(rna_path, sizeof(rna_path), "%s.location", joint_path); + BLI_snprintf(rna_path, sizeof(rna_path), "%s.%s", joint_path, loc ? "location" : "scale"); else - BLI_strncpy(rna_path, "location", sizeof(rna_path)); + BLI_strncpy(rna_path, loc ? "location" : "scale", sizeof(rna_path)); for (int i = 0; i < bindings.getCount(); i++) { const COLLADAFW::AnimationList::AnimationBinding& binding = bindings[i]; COLLADAFW::UniqueId anim_uid = binding.animation; - if (uid_fcurve_map.find(anim_uid) == uid_fcurve_map.end()) { + if (curve_map.find(anim_uid) == curve_map.end()) { fprintf(stderr, "Cannot find FCurve by animation UID.\n"); continue; } - std::vector& fcurves = uid_fcurve_map[anim_uid]; + std::vector& fcurves = curve_map[anim_uid]; switch (binding.animationClass) { case COLLADAFW::AnimationList::POSITION_X: @@ -2035,8 +2170,8 @@ public: add_fcurves_to_object(ob, fcurves, rna_path, -1, &animated); break; default: - fprintf(stderr, "AnimationClass %d is not supported for TRANSLATE transformation.\n", - binding.animationClass); + fprintf(stderr, "AnimationClass %d is not supported for %s.\n", + binding.animationClass, loc ? "TRANSLATE" : "SCALE"); } } } @@ -2055,12 +2190,12 @@ public: const COLLADAFW::AnimationList::AnimationBinding& binding = bindings[i]; COLLADAFW::UniqueId anim_uid = binding.animation; - if (uid_fcurve_map.find(anim_uid) == uid_fcurve_map.end()) { + if (curve_map.find(anim_uid) == curve_map.end()) { fprintf(stderr, "Cannot find FCurve by animation UID.\n"); continue; } - std::vector& fcurves = uid_fcurve_map[anim_uid]; + std::vector& fcurves = curve_map[anim_uid]; switch (binding.animationClass) { case COLLADAFW::AnimationList::ANGLE: @@ -2083,51 +2218,13 @@ public: } } break; - case COLLADAFW::Transformation::SCALE: - { - if (is_joint) - BLI_snprintf(rna_path, sizeof(rna_path), "%s.scale", joint_path); - else - BLI_strncpy(rna_path, "scale", sizeof(rna_path)); - - // same as for TRANSLATE - for (int i = 0; i < bindings.getCount(); i++) { - const COLLADAFW::AnimationList::AnimationBinding& binding = bindings[i]; - COLLADAFW::UniqueId anim_uid = binding.animation; - - if (uid_fcurve_map.find(anim_uid) == uid_fcurve_map.end()) { - fprintf(stderr, "Cannot find FCurve by animation UID.\n"); - continue; - } - - std::vector& fcurves = uid_fcurve_map[anim_uid]; - - switch (binding.animationClass) { - case COLLADAFW::AnimationList::POSITION_X: - add_fcurves_to_object(ob, fcurves, rna_path, 0, &animated); - break; - case COLLADAFW::AnimationList::POSITION_Y: - add_fcurves_to_object(ob, fcurves, rna_path, 1, &animated); - break; - case COLLADAFW::AnimationList::POSITION_Z: - add_fcurves_to_object(ob, fcurves, rna_path, 2, &animated); - break; - case COLLADAFW::AnimationList::POSITION_XYZ: - add_fcurves_to_object(ob, fcurves, rna_path, -1, &animated); - break; - default: - fprintf(stderr, "AnimationClass %d is not supported for SCALE transformation.\n", - binding.animationClass); - } - } - } - break; case COLLADAFW::Transformation::MATRIX: case COLLADAFW::Transformation::SKEW: case COLLADAFW::Transformation::LOOKAT: fprintf(stderr, "Animation of MATRIX, SKEW and LOOKAT transformations is not supported yet.\n"); break; } +#endif return true; } @@ -2137,9 +2234,10 @@ public: float mat[4][4]; TransformReader::get_node_mat(mat, node, &uid_animated_map, ob); if (ob) - TransformReader::decompose(mat, ob->loc, ob->rot, ob->size); + TransformReader::decompose(mat, ob->loc, ob->rot, NULL, ob->size); } +#if 0 virtual void change_eul_to_quat(Object *ob, bAction *act) { bActionGroup *grp; @@ -2163,7 +2261,7 @@ public: char rna_path[100]; BLI_snprintf(joint_path, sizeof(joint_path), "pose.bones[\"%s\"]", grp->name); - BLI_snprintf(rna_path, sizeof(rna_path), "%s.rotation_euler", joint_path); + BLI_snprintf(rna_path, sizeof(rna_path), "%s.rotation_quaternion", joint_path); FCurve *quatcu[4] = { create_fcurve(0, rna_path), @@ -2172,6 +2270,12 @@ public: create_fcurve(3, rna_path) }; + bPoseChannel *chan = get_pose_channel(ob->pose, grp->name); + + float m4[4][4], irest[3][3]; + invert_m4_m4(m4, chan->bone->arm_mat); + copy_m3_m4(irest, m4); + for (i = 0; i < 3; i++) { FCurve *cu = eulcu[i]; @@ -2187,9 +2291,17 @@ public: eulcu[2] ? evaluate_fcurve(eulcu[2], frame) : 0.0f }; - float quat[4]; + // make eul relative to bone rest pose + float rot[3][3], rel[3][3], quat[4]; + + /*eul_to_mat3(rot, eul); + + mul_m3_m3m3(rel, irest, rot); - eul_to_quat( quat,eul); + mat3_to_quat(quat, rel); + */ + + eul_to_quat(quat, eul); for (int k = 0; k < 4; k++) create_bezt(quatcu[k], frame, quat[k]); @@ -2205,7 +2317,7 @@ public: free_fcurve(eulcu[i]); } - get_pose_channel(ob->pose, grp->name)->rotmode = ROT_MODE_QUAT; + chan->rotmode = ROT_MODE_QUAT; for (i = 0; i < 4; i++) action_groups_add_channel(act, grp, quatcu[i]); @@ -2215,7 +2327,581 @@ public: for (pchan = (bPoseChannel*)ob->pose->chanbase.first; pchan; pchan = pchan->next) { pchan->rotmode = ROT_MODE_QUAT; } - } + } +#endif + + // prerequisites: + // animlist_map - map animlist id -> animlist + // curve_map - map anim id -> curve(s) +#ifdef ARMATURE_TEST + Object *translate_animation(COLLADAFW::Node *node, + std::map& object_map, + std::map& root_map, + COLLADAFW::Transformation::TransformationType tm_type, + Object *par_job = NULL) +#else + void translate_animation(COLLADAFW::Node *node, + std::map& object_map, + std::map& root_map, + COLLADAFW::Transformation::TransformationType tm_type) +#endif + { + bool is_rotation = tm_type == COLLADAFW::Transformation::ROTATE; + bool is_joint = node->getType() == COLLADAFW::Node::JOINT; + COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; + Object *ob = is_joint ? armature_importer->get_armature_for_joint(node) : object_map[node->getUniqueId()]; + const char *bone_name = is_joint ? get_joint_name(node) : NULL; + + if (!ob) { + fprintf(stderr, "cannot find Object for Node with id=\"%s\"\n", node->getOriginalId().c_str()); +#ifdef ARMATURE_TEST + return NULL; +#else + return; +#endif + } + + // frames at which to sample + std::vector frames; + + // for each , , etc. there is a separate Transformation + const COLLADAFW::TransformationPointerArray& tms = node->getTransformations(); + + std::vector old_curves; + + int i; + + // find frames at which to sample plus convert all keys to radians + for (i = 0; i < tms.getCount(); i++) { + COLLADAFW::Transformation *tm = tms[i]; + COLLADAFW::Transformation::TransformationType type = tm->getTransformationType(); + + if (type == tm_type) { + const COLLADAFW::UniqueId& listid = tm->getAnimationList(); + + if (animlist_map.find(listid) != animlist_map.end()) { + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + + if (bindings.getCount()) { + for (int j = 0; j < bindings.getCount(); j++) { + std::vector& curves = curve_map[bindings[j].animation]; + bool xyz = ((type == COLLADAFW::Transformation::TRANSLATE || type == COLLADAFW::Transformation::SCALE) && bindings[j].animationClass == COLLADAFW::AnimationList::POSITION_XYZ); + + if ((!xyz && curves.size() == 1) || (xyz && curves.size() == 3)) { + std::vector::iterator iter; + + for (iter = curves.begin(); iter != curves.end(); iter++) { + FCurve *fcu = *iter; + + if (is_rotation) + fcurve_deg_to_rad(fcu); + + for (int k = 0; k < fcu->totvert; k++) { + float fra = fcu->bezt[k].vec[1][0]; + if (std::find(frames.begin(), frames.end(), fra) == frames.end()) + frames.push_back(fra); + } + } + } + else { + fprintf(stderr, "expected 1 or 3 curves, got %u\n", curves.size()); + } + + for (std::vector::iterator it = curves.begin(); it != curves.end(); it++) + old_curves.push_back(*it); + } + } + } + } + } + + sort(frames.begin(), frames.end()); + + float irest_dae[4][4]; + float rest[4][4], irest[4][4]; + + if (is_joint) { + if (is_joint) + get_joint_rest_mat(irest_dae, root, node); + else + evaluate_transform_at_frame(irest_dae, node, 0.0f); + invert_m4(irest_dae); + + Bone *bone = get_named_bone((bArmature*)ob->data, bone_name); + if (!bone) { + fprintf(stderr, "cannot find bone \"%s\"", bone_name); +#ifdef ARMATURE_TEST + return NULL; +#else + return; +#endif + } + + unit_m4(rest); + copy_m4_m4(rest, bone->arm_mat); + invert_m4_m4(irest, rest); + } + + char rna_path[200]; + +#ifdef ARMATURE_TEST + Object *job = get_joint_object(root, node, par_job); + FCurve *job_curves[4]; +#endif + + if (frames.size() == 0) { +#ifdef ARMATURE_TEST + return job; +#else + return; +#endif + } + + const char *tm_str = NULL; + switch (tm_type) { + case COLLADAFW::Transformation::ROTATE: + tm_str = "rotation_quaternion"; + break; + case COLLADAFW::Transformation::SCALE: + tm_str = "scale"; + break; + case COLLADAFW::Transformation::TRANSLATE: + tm_str = "location"; + break; + default: +#ifdef ARMATURE_TEST + return job; +#else + return; +#endif + } + + if (is_joint) { + char joint_path[200]; + armature_importer->get_rna_path_for_joint(node, joint_path, sizeof(joint_path)); + BLI_snprintf(rna_path, sizeof(rna_path), "%s.%s", joint_path, tm_str); + } + else { + strcpy(rna_path, tm_str); + } + + // new curves + FCurve *newcu[4]; + int totcu = is_rotation ? 4 : 3; + + for (i = 0; i < totcu; i++) { + newcu[i] = create_fcurve(i, rna_path); +#ifdef ARMATURE_TEST + job_curves[i] = create_fcurve(i, tm_str); +#endif + } + + std::vector::iterator it; + + // sample values at each frame + for (it = frames.begin(); it != frames.end(); it++) { + float fra = *it; + + float mat[4][4]; + + unit_m4(mat); + + // calc object-space mat + evaluate_transform_at_frame(mat, node, fra); + + // for joints, we need a special matrix + if (is_joint) { + // special matrix: iR * M * iR_dae * R + // where R, iR are bone rest and inverse rest mats in world space (Blender bones), + // iR_dae is joint inverse rest matrix (DAE) and M is an evaluated joint world-space matrix (DAE) + float temp[4][4], par[4][4]; + + // calc M + calc_joint_parent_mat_rest(par, NULL, root, node); + mul_m4_m4m4(temp, mat, par); + + // evaluate_joint_world_transform_at_frame(temp, NULL, , node, fra); + + // calc special matrix + mul_serie_m4(mat, irest, temp, irest_dae, rest, NULL, NULL, NULL, NULL); + } + + float val[4]; + + switch (tm_type) { + case COLLADAFW::Transformation::ROTATE: + mat4_to_quat(val, mat); + break; + case COLLADAFW::Transformation::SCALE: + mat4_to_size(val, mat); + break; + case COLLADAFW::Transformation::TRANSLATE: + copy_v3_v3(val, mat[3]); + break; + default: + break; + } + + // add 4 or 3 keys + for (i = 0; i < totcu; i++) { + add_bezt(newcu[i], fra, val[i]); + } + +#ifdef ARMATURE_TEST + if (is_joint) { + evaluate_transform_at_frame(mat, node, fra); + + switch (tm_type) { + case COLLADAFW::Transformation::ROTATE: + mat4_to_quat(val, mat); + break; + case COLLADAFW::Transformation::SCALE: + mat4_to_size(val, mat); + break; + case COLLADAFW::Transformation::TRANSLATE: + copy_v3_v3(val, mat[3]); + break; + default: + break; + } + + for (i = 0; i < totcu; i++) + add_bezt(job_curves[i], fra, val[i]); + } +#endif + } + + verify_adt_action((ID*)&ob->id, 1); + + ListBase *curves = &ob->adt->action->curves; + // no longer needed +#if 0 + // remove old curves + for (std::vector::iterator it = old_curves.begin(); it != old_curves.end(); it++) { + if (is_joint) + action_groups_remove_channel(ob->adt->action, *it); + else + BLI_remlink(curves, *it); + + // std::remove(unused_curves.begin(), unused_curves.end(), *it); + // free_fcurve(*it); + } +#endif + + // add curves + for (i = 0; i < totcu; i++) { + if (is_joint) + add_bone_fcurve(ob, node, newcu[i]); + else + BLI_addtail(curves, newcu[i]); + +#ifdef ARMATURE_TEST + if (is_joint) + BLI_addtail(&job->adt->action->curves, job_curves[i]); +#endif + } + + if (is_rotation) { + if (is_joint) { + bPoseChannel *chan = get_pose_channel(ob->pose, bone_name); + chan->rotmode = ROT_MODE_QUAT; + } + else { + ob->rotmode = ROT_MODE_QUAT; + } + } + +#ifdef ARMATURE_TEST + return job; +#endif + } + + // internal, better make it private + // warning: evaluates only rotation + // prerequisites: animlist_map, curve_map + void evaluate_transform_at_frame(float mat[4][4], COLLADAFW::Node *node, float fra) + { + const COLLADAFW::TransformationPointerArray& tms = node->getTransformations(); + + unit_m4(mat); + + for (int i = 0; i < tms.getCount(); i++) { + COLLADAFW::Transformation *tm = tms[i]; + COLLADAFW::Transformation::TransformationType type = tm->getTransformationType(); + float m[4][4]; + + unit_m4(m); + + if (!evaluate_animation(tm, m, fra)) { + switch (type) { + case COLLADAFW::Transformation::ROTATE: + dae_rotate_to_mat4(tm, m); + break; + case COLLADAFW::Transformation::TRANSLATE: + dae_translate_to_mat4(tm, m); + break; + case COLLADAFW::Transformation::SCALE: + dae_scale_to_mat4(tm, m); + break; + case COLLADAFW::Transformation::MATRIX: + dae_matrix_to_mat4(tm, m); + break; + default: + fprintf(stderr, "unsupported transformation type %d\n", type); + } + } + + float temp[4][4]; + copy_m4_m4(temp, mat); + + mul_m4_m4m4(mat, m, temp); + } + } + + bool evaluate_animation(COLLADAFW::Transformation *tm, float mat[4][4], float fra) + { + const COLLADAFW::UniqueId& listid = tm->getAnimationList(); + + if (animlist_map.find(listid) != animlist_map.end()) { + const COLLADAFW::AnimationList *animlist = animlist_map[listid]; + const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings(); + + if (bindings.getCount()) { + for (int j = 0; j < bindings.getCount(); j++) { + std::vector& curves = curve_map[bindings[j].animation]; + COLLADAFW::AnimationList::AnimationClass animclass = bindings[j].animationClass; + COLLADAFW::Transformation::TransformationType type = tm->getTransformationType(); + bool xyz = ((type == COLLADAFW::Transformation::TRANSLATE || type == COLLADAFW::Transformation::SCALE) && bindings[j].animationClass == COLLADAFW::AnimationList::POSITION_XYZ); + + if (type == COLLADAFW::Transformation::ROTATE) { + if (curves.size() != 1) { + fprintf(stderr, "expected 1 curve, got %u\n", curves.size()); + } + else { + if (animclass == COLLADAFW::AnimationList::ANGLE) { + COLLADABU::Math::Vector3& axis = ((COLLADAFW::Rotate*)tm)->getRotationAxis(); + float ax[3] = {axis[0], axis[1], axis[2]}; + float angle = evaluate_fcurve(curves[0], fra); + axis_angle_to_mat4(mat, ax, angle); + + return true; + } + else { + // TODO support other animclasses + fprintf(stderr, " animclass %d is not supported yet\n", bindings[j].animationClass); + } + } + } + else if (type == COLLADAFW::Transformation::SCALE || type == COLLADAFW::Transformation::TRANSLATE) { + if ((!xyz && curves.size() == 1) || (xyz && curves.size() == 3)) { + bool animated = true; + bool scale = (type == COLLADAFW::Transformation::SCALE); + + float vec[3] = {0.0f, 0.0f, 0.0f}; + if (scale) + vec[0] = vec[1] = vec[2] = 1.0f; + + switch (animclass) { + case COLLADAFW::AnimationList::POSITION_X: + vec[0] = evaluate_fcurve(curves[0], fra); + break; + case COLLADAFW::AnimationList::POSITION_Y: + vec[1] = evaluate_fcurve(curves[0], fra); + break; + case COLLADAFW::AnimationList::POSITION_Z: + vec[2] = evaluate_fcurve(curves[0], fra); + break; + case COLLADAFW::AnimationList::POSITION_XYZ: + vec[0] = evaluate_fcurve(curves[0], fra); + vec[1] = evaluate_fcurve(curves[1], fra); + vec[2] = evaluate_fcurve(curves[2], fra); + break; + default: + fprintf(stderr, "<%s> animclass %d is not supported yet\n", scale ? "scale" : "translate", animclass); + animated = false; + break; + } + + if (animated) { + if (scale) + size_to_mat4(mat, vec); + else + copy_v3_v3(mat[3], vec); + } + + return animated; + } + else { + fprintf(stderr, "expected 1 or 3 curves, got %u, animclass is %d\n", curves.size(), animclass); + } + } + else { + // not very useful for user + fprintf(stderr, "animation of transformation %d is not supported yet\n", type); + } + } + } + } + + return false; + } + + // gives a world-space mat of joint at rest position + void get_joint_rest_mat(float mat[4][4], COLLADAFW::Node *root, COLLADAFW::Node *node) + { + // if bind mat is not available, + // use "current" node transform, i.e. all those tms listed inside + if (!armature_importer->get_joint_bind_mat(mat, node)) { + float par[4][4], m[4][4]; + + calc_joint_parent_mat_rest(par, NULL, root, node); + get_node_mat(m, node, NULL, NULL); + mul_m4_m4m4(mat, m, par); + } + } + + // gives a world-space mat, end's mat not included + bool calc_joint_parent_mat_rest(float mat[4][4], float par[4][4], COLLADAFW::Node *node, COLLADAFW::Node *end) + { + float m[4][4]; + + if (node == end) { + par ? copy_m4_m4(mat, par) : unit_m4(mat); + return true; + } + + // use bind matrix if available or calc "current" world mat + if (!armature_importer->get_joint_bind_mat(m, node)) { + float temp[4][4]; + get_node_mat(temp, node, NULL, NULL); + mul_m4_m4m4(m, temp, par); + } + + COLLADAFW::NodePointerArray& children = node->getChildNodes(); + for (int i = 0; i < children.getCount(); i++) { + if (calc_joint_parent_mat_rest(mat, m, children[i], end)) + return true; + } + + return false; + } + +#ifdef ARMATURE_TEST + Object *get_joint_object(COLLADAFW::Node *root, COLLADAFW::Node *node, Object *par_job) + { + if (joint_objects.find(node->getUniqueId()) == joint_objects.end()) { + Object *job = add_object(scene, OB_EMPTY); + + rename_id((ID*)&job->id, (char*)get_joint_name(node)); + + job->lay = object_in_scene(job, scene)->lay = 2; + + mul_v3_fl(job->size, 0.5f); + job->recalc |= OB_RECALC_OB; + + verify_adt_action((ID*)&job->id, 1); + + job->rotmode = ROT_MODE_QUAT; + + float mat[4][4]; + get_joint_rest_mat(mat, root, node); + + if (par_job) { + float temp[4][4], ipar[4][4]; + invert_m4_m4(ipar, par_job->obmat); + copy_m4_m4(temp, mat); + mul_m4_m4m4(mat, temp, ipar); + } + + TransformBase::decompose(mat, job->loc, NULL, job->quat, job->size); + + if (par_job) { + job->parent = par_job; + + par_job->recalc |= OB_RECALC_OB; + job->parsubstr[0] = 0; + } + + where_is_object(scene, job); + + // after parenting and layer change + DAG_scene_sort(scene); + + joint_objects[node->getUniqueId()] = job; + } + + return joint_objects[node->getUniqueId()]; + } +#endif + +#if 0 + // recursively evaluates joint tree until end is found, mat then is world-space matrix of end + // mat must be identity on enter, node must be root + bool evaluate_joint_world_transform_at_frame(float mat[4][4], float par[4][4], COLLADAFW::Node *node, COLLADAFW::Node *end, float fra) + { + float m[4][4]; + if (par) { + float temp[4][4]; + evaluate_transform_at_frame(temp, node, node == end ? fra : 0.0f); + mul_m4_m4m4(m, temp, par); + } + else { + evaluate_transform_at_frame(m, node, node == end ? fra : 0.0f); + } + + if (node == end) { + copy_m4_m4(mat, m); + return true; + } + else { + COLLADAFW::NodePointerArray& children = node->getChildNodes(); + for (int i = 0; i < children.getCount(); i++) { + if (evaluate_joint_world_transform_at_frame(mat, m, children[i], end, fra)) + return true; + } + } + + return false; + } +#endif + + void add_bone_fcurve(Object *ob, COLLADAFW::Node *node, FCurve *fcu) + { + const char *bone_name = get_joint_name(node); + bAction *act = ob->adt->action; + + /* try to find group */ + bActionGroup *grp = action_groups_find_named(act, bone_name); + + /* no matching groups, so add one */ + if (grp == NULL) { + /* Add a new group, and make it active */ + grp = (bActionGroup*)MEM_callocN(sizeof(bActionGroup), "bActionGroup"); + + grp->flag = AGRP_SELECTED; + BLI_strncpy(grp->name, bone_name, sizeof(grp->name)); + + BLI_addtail(&act->groups, grp); + BLI_uniquename(&act->groups, grp, "Group", '.', offsetof(bActionGroup, name), 64); + } + + /* add F-Curve to group */ + action_groups_add_channel(act, grp, fcu); + } + + void add_bezt(FCurve *fcu, float fra, float value) + { + BezTriple bez; + memset(&bez, 0, sizeof(BezTriple)); + bez.vec[1][0] = fra; + bez.vec[1][1] = value; + bez.ipo = U.ipo_new; /* use default interpolation mode here... */ + bez.f1 = bez.f2 = bez.f3 = SELECT; + bez.h1 = bez.h2 = HD_AUTO; + insert_bezt_fcurve(fcu, &bez, 0); + calchandles_fcurve(fcu); + } }; /* @@ -2245,6 +2931,11 @@ private: std::map uid_camera_map; std::map uid_lamp_map; std::map material_texture_mapping_map; + std::map object_map; + std::vector vscenes; + + std::map root_map; // find root joint by child joint uid, for bone tree evaluation during resampling + // animation // std::map > uid_fcurve_map; // Nodes don't share AnimationLists (Arystan) @@ -2253,7 +2944,7 @@ private: public: /** Constructor. */ - Writer(bContext *C, const char *filename) : mContext(C), mFilename(filename), + Writer(bContext *C, const char *filename) : mFilename(filename), mContext(C), armature_importer(&unit_converter, &mesh_importer, &anim_importer, CTX_data_scene(C)), mesh_importer(&armature_importer, CTX_data_scene(C)), anim_importer(&unit_converter, &armature_importer, CTX_data_scene(C)) {} @@ -2295,8 +2986,51 @@ public: /** This method is called after the last write* method. No other methods will be called after this.*/ virtual void finish() { +#if 0 armature_importer.fix_animation(); +#endif + + for (std::vector::iterator it = vscenes.begin(); it != vscenes.end(); it++) { + const COLLADAFW::NodePointerArray& roots = (*it)->getRootNodes(); + + for (int i = 0; i < roots.getCount(); i++) + translate_anim_recursive(roots[i]); + } + + } + + +#ifdef ARMATURE_TEST + void translate_anim_recursive(COLLADAFW::Node *node, COLLADAFW::Node *par = NULL, Object *parob = NULL) + { + if (par && par->getType() == COLLADAFW::Node::JOINT) { + // par is root if there's no corresp. key in root_map + if (root_map.find(par->getUniqueId()) == root_map.end()) + root_map[node->getUniqueId()] = par; + else + root_map[node->getUniqueId()] = root_map[par->getUniqueId()]; + } + + COLLADAFW::Transformation::TransformationType types[] = { + COLLADAFW::Transformation::ROTATE, + COLLADAFW::Transformation::SCALE, + COLLADAFW::Transformation::TRANSLATE + }; + + int i; + Object *ob; + + for (i = 0; i < 3; i++) + ob = anim_importer.translate_animation(node, object_map, root_map, types[i]); + + COLLADAFW::NodePointerArray &children = node->getChildNodes(); + for (int i = 0; i < children.getCount(); i++) { + translate_anim_recursive(children[i], node, ob); + } } +#else + +#endif /** When this method is called, the writer must write the global document asset. @return The writer should return true, if writing succeeded, false otherwise.*/ @@ -2396,11 +3130,11 @@ public: // check if object is not NULL if (!ob) return; + + object_map[node->getUniqueId()] = ob; // if par was given make this object child of the previous if (par && ob) { - Object workob; - ob->parent = par; // doing what 'set parent' operator does @@ -2424,7 +3158,7 @@ public: @return The writer should return true, if writing succeeded, false otherwise.*/ virtual bool writeVisualScene ( const COLLADAFW::VisualScene* visualScene ) { - // This method is guaranteed to be called _after_ writeGeometry, writeMaterial, etc. + // this method called on post process after writeGeometry, writeMaterial, etc. // for each in : // create an Object @@ -2434,15 +3168,15 @@ public: // writeGeometry because does not reference , // we link Objects with Meshes here + vscenes.push_back(visualScene); + // TODO: create a new scene except the selected - use current blender // scene for it Scene *sce = CTX_data_scene(mContext); + const COLLADAFW::NodePointerArray& roots = visualScene->getRootNodes(); - for (int i = 0; i < visualScene->getRootNodes().getCount(); i++) { - COLLADAFW::Node *node = visualScene->getRootNodes()[i]; - const COLLADAFW::Node::NodeType& type = node->getType(); - - write_node(node, NULL, sce, NULL); + for (int i = 0; i < roots.getCount(); i++) { + write_node(roots[i], NULL, sce, NULL); } armature_importer.make_armatures(mContext); @@ -2494,7 +3228,7 @@ public: ma->mtex[i] = add_mtex(); ma->mtex[i]->texco = TEXCO_UV; - ma->mtex[i]->tex = add_texture("texture"); + ma->mtex[i]->tex = add_texture("Texture"); ma->mtex[i]->tex->type = TEX_IMAGE; ma->mtex[i]->tex->imaflag &= ~TEX_USEALPHA; ma->mtex[i]->tex->ima = uid_image_map[ima_uid]; @@ -2799,12 +3533,14 @@ public: // this function is called only for animations that pass COLLADAFW::validate virtual bool writeAnimation( const COLLADAFW::Animation* anim ) { + // return true; return anim_importer.write_animation(anim); } // called on post-process stage after writeVisualScenes virtual bool writeAnimationList( const COLLADAFW::AnimationList* animationList ) { + // return true; return anim_importer.write_animation_list(animationList); } diff --git a/source/blender/collada/collada_internal.h b/source/blender/collada/collada_internal.h index 32c3e7af874..278cd37ac66 100644 --- a/source/blender/collada/collada_internal.h +++ b/source/blender/collada/collada_internal.h @@ -26,7 +26,7 @@ public: // TODO need also for angle conversion, time conversion... - void mat4_from_dae(float out[][4], const COLLADABU::Math::Matrix4& in) + void dae_matrix_to_mat4(float out[][4], const COLLADABU::Math::Matrix4& in) { // in DAE, matrices use columns vectors, (see comments in COLLADABUMathMatrix4.h) // so here, to make a blender matrix, we swap columns and rows @@ -58,10 +58,13 @@ public: class TransformBase { public: - void decompose(float mat[][4], float *loc, float *rot, float *size) + void decompose(float mat[][4], float *loc, float eul[3], float quat[4], float *size) { - mat4_to_size( size,mat); - mat4_to_eul( rot,mat); + mat4_to_size(size, mat); + if (eul) + mat4_to_eul(eul, mat); + if (quat) + mat4_to_quat(quat, mat); copy_v3_v3(loc, mat[3]); } }; -- cgit v1.2.3 From cd154da9732962870339952898499ed1b1c32d93 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sun, 29 Nov 2009 22:16:29 +0000 Subject: 1. Extend option for 3d view border select now does something (default True to keep same behavior) 2. Add action parameter to Select_All_Toggle operators, rename to Select_All. Options are Toggle (default), Select, Deselect, Invert (same as select swap). This makes it possible to map separate hotkeys for select all and deselect all. NOTE for Aligorith: I didn't change animation operators for select_all which already had an Invert operator. These should be fixed eventually. --- source/blender/editors/animation/anim_markers.c | 51 +++++++------- source/blender/editors/armature/armature_intern.h | 4 +- source/blender/editors/armature/armature_ops.c | 8 +-- source/blender/editors/armature/editarmature.c | 70 ++++++++++++------ source/blender/editors/curve/curve_intern.h | 2 +- source/blender/editors/curve/curve_ops.c | 4 +- source/blender/editors/curve/editcurve.c | 82 +++++++++++++++++++--- source/blender/editors/include/ED_curve.h | 4 ++ source/blender/editors/include/ED_mesh.h | 5 +- source/blender/editors/include/ED_object.h | 4 ++ source/blender/editors/include/ED_particle.h | 2 +- source/blender/editors/mesh/editface.c | 50 ++++++++----- source/blender/editors/mesh/editmesh_mods.c | 33 +++++++-- source/blender/editors/mesh/mesh_intern.h | 2 +- source/blender/editors/mesh/mesh_ops.c | 4 +- source/blender/editors/metaball/mball_edit.c | 46 +++++++----- source/blender/editors/metaball/mball_intern.h | 2 +- source/blender/editors/metaball/mball_ops.c | 4 +- source/blender/editors/object/object_intern.h | 4 +- source/blender/editors/object/object_lattice.c | 70 ++++++++++++------ source/blender/editors/object/object_ops.c | 8 +-- source/blender/editors/object/object_select.c | 55 +++++++++------ source/blender/editors/physics/particle_edit.c | 69 +++++++++++++----- source/blender/editors/physics/physics_intern.h | 2 +- source/blender/editors/physics/physics_ops.c | 4 +- source/blender/editors/sculpt_paint/paint_intern.h | 2 +- source/blender/editors/sculpt_paint/paint_ops.c | 4 +- source/blender/editors/sculpt_paint/paint_utils.c | 16 +++-- .../blender/editors/space_view3d/view3d_select.c | 70 +++++++++++++++--- source/blender/editors/uvedit/uvedit_ops.c | 77 ++++++++++++++------ source/blender/windowmanager/WM_api.h | 7 ++ source/blender/windowmanager/intern/wm_operators.c | 14 +++- 32 files changed, 558 insertions(+), 221 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index 463518a32ff..721fa928e44 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -878,27 +878,37 @@ static int ed_marker_select_all_exec(bContext *C, wmOperator *op) { ListBase *markers= context_get_markers(C); TimeMarker *marker; - int select= RNA_int_get(op->ptr, "select_type"); + int action = RNA_enum_get(op->ptr, "action"); if(markers == NULL) return OPERATOR_CANCELLED; - - if(RNA_boolean_get(op->ptr, "select_swap")) { + + if (action == SEL_TOGGLE) { + action = SEL_SELECT; for(marker= markers->first; marker; marker= marker->next) { - if(marker->flag & SELECT) + if(marker->flag & SELECT) { + action = SEL_DESELECT; break; + } } - if(marker) - select= 0; - else - select= 1; } for(marker= markers->first; marker; marker= marker->next) { - if(select) + switch (action) { + case SEL_SELECT: marker->flag |= SELECT; - else + break; + case SEL_DESELECT: marker->flag &= ~SELECT; + break; + case SEL_INVERT: + if (marker->flag & SELECT) { + marker->flag &= ~SELECT; + } else { + marker->flag |= SELECT; + } + break; + } } WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL); @@ -906,31 +916,22 @@ static int ed_marker_select_all_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -static int ed_marker_select_all_invoke(bContext *C, wmOperator *op, wmEvent *evt) -{ - RNA_boolean_set(op->ptr, "select_swap", 1); - - return ed_marker_select_all_exec(C, op); -} - -static void MARKER_OT_select_all_toggle(wmOperatorType *ot) +static void MARKER_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "(De)select all markers"; - ot->description= "(de)select all time markers."; - ot->idname= "MARKER_OT_select_all_toggle"; + ot->description= "Change selection of all time markers."; + ot->idname= "MARKER_OT_select_all"; /* api callbacks */ ot->exec= ed_marker_select_all_exec; - ot->invoke= ed_marker_select_all_invoke; ot->poll= ED_operator_areaactive; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* rna */ - RNA_def_boolean(ot->srna, "select_swap", 0, "Select Swap", ""); - RNA_def_int(ot->srna, "select_type", 0, INT_MIN, INT_MAX, "Select Type", "", INT_MIN, INT_MAX); + WM_operator_properties_select_all(ot); } /* ******************************* remove marker ***************** */ @@ -987,7 +988,7 @@ void ED_operatortypes_marker(void) WM_operatortype_append(MARKER_OT_duplicate); WM_operatortype_append(MARKER_OT_select); WM_operatortype_append(MARKER_OT_select_border); - WM_operatortype_append(MARKER_OT_select_all_toggle); + WM_operatortype_append(MARKER_OT_select_all); WM_operatortype_append(MARKER_OT_delete); } @@ -1002,7 +1003,7 @@ void ED_marker_keymap(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, 0, 0); RNA_boolean_set(WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", 1); WM_keymap_verify_item(keymap, "MARKER_OT_select_border", BKEY, KM_PRESS, 0, 0); - WM_keymap_verify_item(keymap, "MARKER_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_verify_item(keymap, "MARKER_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_verify_item(keymap, "MARKER_OT_delete", XKEY, KM_PRESS, 0, 0); WM_keymap_verify_item(keymap, "MARKER_OT_delete", DELKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h index f53b70120d5..c65d4637dcf 100644 --- a/source/blender/editors/armature/armature_intern.h +++ b/source/blender/editors/armature/armature_intern.h @@ -45,7 +45,7 @@ void ARMATURE_OT_subdivide_multi(struct wmOperatorType *ot); void ARMATURE_OT_parent_set(struct wmOperatorType *ot); void ARMATURE_OT_parent_clear(struct wmOperatorType *ot); -void ARMATURE_OT_select_all_toggle(struct wmOperatorType *ot); +void ARMATURE_OT_select_all(struct wmOperatorType *ot); void ARMATURE_OT_select_inverse(struct wmOperatorType *ot); void ARMATURE_OT_select_hierarchy(struct wmOperatorType *ot); void ARMATURE_OT_select_linked(struct wmOperatorType *ot); @@ -80,7 +80,7 @@ void POSE_OT_scale_clear(struct wmOperatorType *ot); void POSE_OT_copy(struct wmOperatorType *ot); void POSE_OT_paste(struct wmOperatorType *ot); -void POSE_OT_select_all_toggle(struct wmOperatorType *ot); +void POSE_OT_select_all(struct wmOperatorType *ot); void POSE_OT_select_inverse(struct wmOperatorType *ot); void POSE_OT_select_parent(struct wmOperatorType *ot); void POSE_OT_select_hierarchy(struct wmOperatorType *ot); diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index e3c823283d1..d1c50439c01 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -77,7 +77,7 @@ void ED_operatortypes_armature(void) WM_operatortype_append(ARMATURE_OT_parent_set); WM_operatortype_append(ARMATURE_OT_parent_clear); - WM_operatortype_append(ARMATURE_OT_select_all_toggle); + WM_operatortype_append(ARMATURE_OT_select_all); WM_operatortype_append(ARMATURE_OT_select_inverse); WM_operatortype_append(ARMATURE_OT_select_hierarchy); WM_operatortype_append(ARMATURE_OT_select_linked); @@ -120,7 +120,7 @@ void ED_operatortypes_armature(void) WM_operatortype_append(POSE_OT_copy); WM_operatortype_append(POSE_OT_paste); - WM_operatortype_append(POSE_OT_select_all_toggle); + WM_operatortype_append(POSE_OT_select_all); WM_operatortype_append(POSE_OT_select_inverse); WM_operatortype_append(POSE_OT_select_parent); @@ -219,7 +219,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "ARMATURE_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "ARMATURE_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "ARMATURE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "ARMATURE_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "ARMATURE_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0); kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0); @@ -295,7 +295,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf) kmi= WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); RNA_boolean_set(kmi->ptr, "flipped", 1); - WM_keymap_add_item(keymap, "POSE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "POSE_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "POSE_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "POSE_OT_select_parent", PKEY, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 95b743a7b27..38daa22bbc7 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -3993,25 +3993,38 @@ void ARMATURE_OT_select_inverse(wmOperatorType *ot) } static int armature_de_select_all_exec(bContext *C, wmOperator *op) { - int sel=1; + int action = RNA_enum_get(op->ptr, "action"); - /* Determine if there are any selected bones - And therefore whether we are selecting or deselecting */ - if (CTX_DATA_COUNT(C, selected_bones) > 0) sel=0; + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + /* Determine if there are any selected bones + And therefore whether we are selecting or deselecting */ + if (CTX_DATA_COUNT(C, selected_bones) > 0) + action = SEL_DESELECT; + } /* Set the flags */ CTX_DATA_BEGIN(C, EditBone *, ebone, visible_bones) { /* ignore bone if selection can't change */ if ((ebone->flag & BONE_UNSELECTABLE) == 0) { - if (sel==1) { - /* select bone */ + switch (action) { + case SEL_SELECT: ebone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); if(ebone->parent) ebone->parent->flag |= (BONE_TIPSEL); - } - else { - /* deselect bone */ + break; + case SEL_DESELECT: ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); + break; + case SEL_INVERT: + if (ebone->flag & BONE_SELECTED) { + ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); + } else { + ebone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); + if(ebone->parent) + ebone->parent->flag |= (BONE_TIPSEL); + } + break; } } } @@ -4022,12 +4035,12 @@ static int armature_de_select_all_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void ARMATURE_OT_select_all_toggle(wmOperatorType *ot) +void ARMATURE_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "deselect all editbone"; - ot->idname= "ARMATURE_OT_select_all_toggle"; + ot->idname= "ARMATURE_OT_select_all"; /* api callbacks */ ot->exec= armature_de_select_all_exec; @@ -4036,6 +4049,7 @@ void ARMATURE_OT_select_all_toggle(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + WM_operator_properties_select_all(ot); } /* ********************* select hierarchy operator ************** */ @@ -5077,20 +5091,35 @@ void POSE_OT_select_inverse(wmOperatorType *ot) } static int pose_de_select_all_exec(bContext *C, wmOperator *op) { - int sel=1; + int action = RNA_enum_get(op->ptr, "action"); - /* Determine if there are any selected bones and therefore whether we are selecting or deselecting */ - // NOTE: we have to check for > 1 not > 0, since there is almost always an active bone that can't be cleared... - if (CTX_DATA_COUNT(C, selected_pose_bones) > 1) sel=0; + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + /* Determine if there are any selected bones and therefore whether we are selecting or deselecting */ + // NOTE: we have to check for > 1 not > 0, since there is almost always an active bone that can't be cleared... + if (CTX_DATA_COUNT(C, selected_pose_bones) > 1) + action = SEL_DESELECT; + } /* Set the flags */ CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) { /* select pchan only if selectable, but deselect works always */ - if (sel==0) { + switch (action) { + case SEL_SELECT: + if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) + pchan->bone->flag |= BONE_SELECTED; + break; + case SEL_DESELECT: pchan->bone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL); + break; + case SEL_INVERT: + if (pchan->bone->flag & BONE_SELECTED) { + pchan->bone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL); + } else if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) { + pchan->bone->flag |= BONE_SELECTED; + } + break; } - else if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) - pchan->bone->flag |= BONE_SELECTED; } CTX_DATA_END; @@ -5099,12 +5128,12 @@ static int pose_de_select_all_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void POSE_OT_select_all_toggle(wmOperatorType *ot) +void POSE_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "deselect all bones"; - ot->idname= "POSE_OT_select_all_toggle"; + ot->idname= "POSE_OT_select_all"; /* api callbacks */ ot->exec= pose_de_select_all_exec; @@ -5113,6 +5142,7 @@ void POSE_OT_select_all_toggle(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + WM_operator_properties_select_all(ot); } static int pose_select_parent_exec(bContext *C, wmOperator *op) diff --git a/source/blender/editors/curve/curve_intern.h b/source/blender/editors/curve/curve_intern.h index ad3e9427861..6c477bd011a 100644 --- a/source/blender/editors/curve/curve_intern.h +++ b/source/blender/editors/curve/curve_intern.h @@ -84,7 +84,7 @@ void CURVE_OT_smooth_radius(struct wmOperatorType *ot); void CURVE_OT_de_select_first(struct wmOperatorType *ot); void CURVE_OT_de_select_last(struct wmOperatorType *ot); -void CURVE_OT_select_all_toggle(struct wmOperatorType *ot); +void CURVE_OT_select_all(struct wmOperatorType *ot); void CURVE_OT_select_inverse(struct wmOperatorType *ot); void CURVE_OT_select_linked(struct wmOperatorType *ot); void CURVE_OT_select_row(struct wmOperatorType *ot); diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c index 15ff971b9cf..c54739902d0 100644 --- a/source/blender/editors/curve/curve_ops.c +++ b/source/blender/editors/curve/curve_ops.c @@ -139,7 +139,7 @@ void ED_operatortypes_curve(void) WM_operatortype_append(CURVE_OT_de_select_first); WM_operatortype_append(CURVE_OT_de_select_last); - WM_operatortype_append(CURVE_OT_select_all_toggle); + WM_operatortype_append(CURVE_OT_select_all); WM_operatortype_append(CURVE_OT_select_inverse); WM_operatortype_append(CURVE_OT_select_linked); WM_operatortype_append(CURVE_OT_select_row); @@ -222,7 +222,7 @@ void ED_keymap_curve(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "OBJECT_OT_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "CURVE_OT_vertex_add", LEFTMOUSE, KM_CLICK, KM_CTRL, 0); - WM_keymap_add_item(keymap, "CURVE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "CURVE_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "CURVE_OT_select_row", RKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "CURVE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "CURVE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0); diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index e53b419c6ea..a65e1164a27 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -83,6 +83,9 @@ #include "RNA_access.h" #include "RNA_define.h" +void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatus); +static void select_adjacent_cp(ListBase *editnurb, short next, short cont, short selstatus); + /* still need to eradicate a few :( */ #define callocstructN(x,y,name) (x*)MEM_callocN((y)* sizeof(x),name) @@ -363,6 +366,26 @@ void free_editNurb(Object *obedit) } } +void CU_deselect_all(Object *obedit) +{ + ListBase *editnurb= curve_get_editcurve(obedit); + + if (editnurb) { + selectend_nurb(obedit, FIRST, 0, DESELECT); /* set first control points as unselected */ + select_adjacent_cp(editnurb, 1, 1, DESELECT); /* cascade selection */ + } +} + +void CU_select_all(Object *obedit) +{ + ListBase *editnurb= curve_get_editcurve(obedit); + + if (editnurb) { + selectend_nurb(obedit, FIRST, 0, DESELECT); /* set first control points as unselected */ + select_adjacent_cp(editnurb, 1, 1, DESELECT); /* cascade selection */ + } +} + /******************** separate operator ***********************/ static int separate_exec(bContext *C, wmOperator *op) @@ -1580,26 +1603,67 @@ static int de_select_all_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); ListBase *editnurb= curve_get_editcurve(obedit); + int action = RNA_enum_get(op->ptr, "action"); - if(nurb_has_selected_cps(editnurb)) { /* deselect all */ - selectend_nurb(obedit, FIRST, 0, DESELECT); /* set first control points as unselected */ - select_adjacent_cp(editnurb, 1, 1, DESELECT); /* cascade selection */ + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + if(nurb_has_selected_cps(editnurb)) + action = SEL_DESELECT; + } + + switch (action) { + case SEL_SELECT: + CU_select_all(obedit); + break; + case SEL_DESELECT: + CU_deselect_all(obedit); + break; + case SEL_INVERT: + { + Curve *cu= obedit->data; + Nurb *nu; + BPoint *bp; + BezTriple *bezt; + int a; + + for(nu= editnurb->first; nu; nu= nu->next) { + if(nu->type == CU_BEZIER) { + bezt= nu->bezt; + a= nu->pntsu; + while(a--) { + if(bezt->hide==0) { + bezt->f2 ^= SELECT; /* always do the center point */ + if((cu->drawflag & CU_HIDE_HANDLES)==0) { + bezt->f1 ^= SELECT; + bezt->f3 ^= SELECT; + } + } + bezt++; + } + } + else { + bp= nu->bp; + a= nu->pntsu*nu->pntsv; + while(a--) { + swap_selection_bpoint(bp); + bp++; + } + } + } + break; + } } - else { /* select all */ - selectend_nurb(obedit, FIRST, 0, SELECT); /* set first control points as selected */ - select_adjacent_cp(editnurb, 1, 1, SELECT); /* cascade selection */ - } WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); return OPERATOR_FINISHED; } -void CURVE_OT_select_all_toggle(wmOperatorType *ot) +void CURVE_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "Select or Deselect All"; - ot->idname= "CURVE_OT_select_all_toggle"; + ot->idname= "CURVE_OT_select_all"; /* api callbacks */ ot->exec= de_select_all_exec; diff --git a/source/blender/editors/include/ED_curve.h b/source/blender/editors/include/ED_curve.h index 66a481ca5ac..3166f77815c 100644 --- a/source/blender/editors/include/ED_curve.h +++ b/source/blender/editors/include/ED_curve.h @@ -43,6 +43,10 @@ void ED_operatortypes_curve(void); void ED_keymap_curve (struct wmKeyConfig *keyconf); /* editcurve.c */ +void CU_deselect_all(struct Object *obedit); +void CU_select_all(struct Object *obedit); + + void undo_push_curve (struct bContext *C, char *name); ListBase *curve_get_editcurve(struct Object *ob); diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index ba26104a555..58f4a566ff7 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -126,6 +126,7 @@ void EM_select_face_fgon(struct EditMesh *em, struct EditFace *efa, int val); void EM_select_swap(struct EditMesh *em); void EM_toggle_select_all(struct EditMesh *em); void EM_select_all(struct EditMesh *em); +void EM_deselect_all(struct EditMesh *em); void EM_selectmode_flush(struct EditMesh *em); void EM_deselect_flush(struct EditMesh *em); void EM_selectmode_set(struct EditMesh *em); @@ -168,8 +169,8 @@ void EM_automerge(struct Scene *scene, struct Object *obedit, int update); /* editface.c */ struct MTFace *EM_get_active_mtface(struct EditMesh *em, struct EditFace **act_efa, struct MCol **mcol, int sloppy); int face_select(struct bContext *C, struct Object *ob, short mval[2], int extend); -void face_borderselect(struct bContext *C, struct Object *ob, struct rcti *rect, int select); -void deselectall_tface(struct Object *ob); +void face_borderselect(struct bContext *C, struct Object *ob, struct rcti *rect, int select, int extend); +void selectall_tface(struct Object *ob, int action); void select_linked_tfaces(struct bContext *C, struct Object *ob, short mval[2], int mode); /* object_vgroup.c */ diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h index 69b478c6dfa..1b77d298e3a 100644 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@ -115,6 +115,10 @@ void latt_to_key(struct Lattice *lt, struct KeyBlock *kb); void key_to_curve(struct KeyBlock *kb, struct Curve *cu, struct ListBase *nurb); void curve_to_key(struct Curve *cu, struct KeyBlock *kb, struct ListBase *nurb); +/* object_lattice.c */ + +void ED_setflagsLatt(struct Object *obedit, int flag); + /* object_modifier.c */ enum { MODIFIER_APPLY_DATA=1, diff --git a/source/blender/editors/include/ED_particle.h b/source/blender/editors/include/ED_particle.h index fcdaf8cb59d..6dd54fd9b1a 100644 --- a/source/blender/editors/include/ED_particle.h +++ b/source/blender/editors/include/ED_particle.h @@ -57,7 +57,7 @@ void PE_update_object(struct Scene *scene, struct Object *ob, int useflag); /* selection tools */ int PE_mouse_particles(struct bContext *C, short *mval, int extend); -int PE_border_select(struct bContext *C, struct rcti *rect, int select); +int PE_border_select(struct bContext *C, struct rcti *rect, int select, int extend); int PE_circle_select(struct bContext *C, int selecting, short *mval, float rad); int PE_lasso_select(struct bContext *C, short mcords[][2], short moves, short select); diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index 5d94fb32438..d034fe4a783 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -378,34 +378,44 @@ void select_linked_tfaces(bContext *C, Object *ob, short mval[2], int mode) object_facesel_flush_dm(ob); } -void deselectall_tface(Object *ob) +void selectall_tface(Object *ob, int action) { Mesh *me; MFace *mface; - int a, sel; + int a; me= get_mesh(ob); if(me==0) return; - mface= me->mface; - a= me->totface; - sel= 0; - while(a--) { - if(mface->flag & ME_HIDE); - else if(mface->flag & ME_FACE_SEL) { - sel= 1; - break; + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + + mface= me->mface; + a= me->totface; + while(a--) { + if((mface->flag & ME_HIDE) == 0 && mface->flag & ME_FACE_SEL) { + action = SEL_DESELECT; + break; + } + mface++; } - mface++; } mface= me->mface; a= me->totface; while(a--) { - if(mface->flag & ME_HIDE); - else { - if(sel) mface->flag &= ~ME_FACE_SEL; - else mface->flag |= ME_FACE_SEL; + if((mface->flag & ME_HIDE) == 0) { + switch (action) { + case SEL_SELECT: + mface->flag |= ME_FACE_SEL; + break; + case SEL_DESELECT: + mface->flag &= ~ME_FACE_SEL; + break; + case SEL_INVERT: + mface->flag ^= ME_FACE_SEL; + break; + } } mface++; } @@ -815,7 +825,7 @@ int face_select(struct bContext *C, Object *ob, short mval[2], int extend) return 1; } -void face_borderselect(struct bContext *C, Object *ob, rcti *rect, int select) +void face_borderselect(struct bContext *C, Object *ob, rcti *rect, int select, int extend) { Mesh *me; MFace *mface; @@ -837,6 +847,14 @@ void face_borderselect(struct bContext *C, Object *ob, rcti *rect, int select) sy= (rect->ymax-rect->ymin+1); if(sx*sy<=0) return; + if (extend == 0 && select) { + mface= me->mface; + for(a=1; a<=me->totface; a++, mface++) { + if((mface->flag & ME_HIDE) == 0) + mface->flag &= ~ME_FACE_SEL; + } + } + view3d_validate_backbuf(&vc); ibuf = IMB_allocImBuf(sx,sy,32,IB_rect,0); diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 8501b7fba92..c79ef342150 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -3372,12 +3372,31 @@ void EM_select_all(EditMesh *em) EM_set_flag_all(em, SELECT); } -static int toggle_select_all_exec(bContext *C, wmOperator *op) +void EM_deselect_all(EditMesh *em) +{ + EM_clear_flag_all(em, SELECT); +} + +static int select_all_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); + int action = RNA_enum_get(op->ptr, "action"); - EM_toggle_select_all(em); + switch (action) { + case SEL_TOGGLE: + EM_toggle_select_all(em); + break; + case SEL_SELECT: + EM_select_all(em); + break; + case SEL_DESELECT: + EM_deselect_all(em); + break; + case SEL_INVERT: + EM_select_swap(em); + break; + } WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); BKE_mesh_end_editmesh(obedit->data, em); @@ -3385,19 +3404,21 @@ static int toggle_select_all_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_select_all_toggle(wmOperatorType *ot) +void MESH_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "Select/Deselect All"; - ot->description= "(de)select all vertices, edges or faces."; - ot->idname= "MESH_OT_select_all_toggle"; + ot->description= "Change selection of all vertices, edges or faces."; + ot->idname= "MESH_OT_select_all"; /* api callbacks */ - ot->exec= toggle_select_all_exec; + ot->exec= select_all_exec; ot->poll= ED_operator_editmesh; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + WM_operator_properties_select_all(ot); } /* ******************** **************** */ diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h index 3f79b9b4370..4ce9afaf237 100644 --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@ -141,7 +141,7 @@ void MESH_OT_knife_cut(struct wmOperatorType *ot); /* ******************* editmesh_mods.c */ void MESH_OT_loop_select(struct wmOperatorType *ot); -void MESH_OT_select_all_toggle(struct wmOperatorType *ot); +void MESH_OT_select_all(struct wmOperatorType *ot); void MESH_OT_select_more(struct wmOperatorType *ot); void MESH_OT_select_less(struct wmOperatorType *ot); void MESH_OT_select_inverse(struct wmOperatorType *ot); diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index 1363d8b2102..866638d2f20 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -68,7 +68,7 @@ void ED_operatortypes_mesh(void) { - WM_operatortype_append(MESH_OT_select_all_toggle); + WM_operatortype_append(MESH_OT_select_all); WM_operatortype_append(MESH_OT_select_more); WM_operatortype_append(MESH_OT_select_less); WM_operatortype_append(MESH_OT_select_inverse); @@ -222,7 +222,7 @@ void ED_keymap_mesh(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MESH_OT_select_shortest_path", SELECTMOUSE, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "MESH_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MESH_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "MESH_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "MESH_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0); diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c index 09200514c0f..d4ad833d11e 100644 --- a/source/blender/editors/metaball/mball_edit.c +++ b/source/blender/editors/metaball/mball_edit.c @@ -189,49 +189,63 @@ MetaElem *add_metaball_primitive(bContext *C, int type, int newname) /***************************** Select/Deselect operator *****************************/ /* Select or deselect all MetaElements */ -static int select_deselect_all_metaelems_exec(bContext *C, wmOperator *op) +static int select_all_exec(bContext *C, wmOperator *op) { //Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); MetaBall *mb = (MetaBall*)obedit->data; MetaElem *ml; - int any_sel= 0; - - /* Is any metaelem selected? */ + int action = RNA_enum_get(op->ptr, "action"); + ml= mb->editelems->first; if(ml) { - while(ml) { - if(ml->flag & SELECT) break; - ml= ml->next; + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + while(ml) { + if(ml->flag & SELECT) { + action = SEL_DESELECT; + break; + } + ml= ml->next; + } } - if(ml) any_sel= 1; ml= mb->editelems->first; while(ml) { - if(any_sel) ml->flag &= ~SELECT; - else ml->flag |= SELECT; + switch (action) { + case SEL_SELECT: + ml->flag |= SELECT; + break; + case SEL_DESELECT: + ml->flag &= ~SELECT; + break; + case SEL_INVERT: + ml->flag ^= SELECT; + break; + } ml= ml->next; } WM_event_add_notifier(C, NC_GEOM|ND_SELECT, mb); - //DAG_id_flush_update(obedit->data, OB_RECALC_DATA); } return OPERATOR_FINISHED; } -void MBALL_OT_select_deselect_all_metaelems(wmOperatorType *ot) +void MBALL_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "Select/Deselect All"; - ot->description= "(de)select all metaelements."; - ot->idname= "MBALL_OT_select_deselect_all_metaelems"; + ot->description= "Change selection of all meta elements."; + ot->idname= "MBALL_OT_select_all"; /* callback functions */ - ot->exec= select_deselect_all_metaelems_exec; + ot->exec= select_all_exec; ot->poll= ED_operator_editmball; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + WM_operator_properties_select_all(ot); } /***************************** Select inverse operator *****************************/ diff --git a/source/blender/editors/metaball/mball_intern.h b/source/blender/editors/metaball/mball_intern.h index 8cf749733dd..fca9fc7e650 100644 --- a/source/blender/editors/metaball/mball_intern.h +++ b/source/blender/editors/metaball/mball_intern.h @@ -39,7 +39,7 @@ void MBALL_OT_reveal_metaelems(struct wmOperatorType *ot); void MBALL_OT_delete_metaelems(struct wmOperatorType *ot); void MBALL_OT_duplicate_metaelems(struct wmOperatorType *ot); -void MBALL_OT_select_deselect_all_metaelems(struct wmOperatorType *ot); +void MBALL_OT_select_all(struct wmOperatorType *ot); void MBALL_OT_select_inverse_metaelems(struct wmOperatorType *ot); void MBALL_OT_select_random_metaelems(struct wmOperatorType *ot); diff --git a/source/blender/editors/metaball/mball_ops.c b/source/blender/editors/metaball/mball_ops.c index 01da90212a0..b638eaecbc2 100644 --- a/source/blender/editors/metaball/mball_ops.c +++ b/source/blender/editors/metaball/mball_ops.c @@ -46,7 +46,7 @@ void ED_operatortypes_metaball(void) WM_operatortype_append(MBALL_OT_hide_metaelems); WM_operatortype_append(MBALL_OT_reveal_metaelems); - WM_operatortype_append(MBALL_OT_select_deselect_all_metaelems); + WM_operatortype_append(MBALL_OT_select_all); WM_operatortype_append(MBALL_OT_select_inverse_metaelems); WM_operatortype_append(MBALL_OT_select_random_metaelems); } @@ -68,7 +68,7 @@ void ED_keymap_metaball(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", DELKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MBALL_OT_duplicate_metaelems", DKEY, KM_PRESS, KM_SHIFT, 0); - WM_keymap_add_item(keymap, "MBALL_OT_select_deselect_all_metaelems", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "MBALL_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MBALL_OT_select_inverse_metaelems", IKEY, KM_PRESS, KM_CTRL, 0); } diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index 9230dca7ba2..ebd8261f207 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -81,7 +81,7 @@ void OBJECT_OT_shade_smooth(struct wmOperatorType *ot); void OBJECT_OT_shade_flat(struct wmOperatorType *ot); /* object_select.c */ -void OBJECT_OT_select_all_toggle(struct wmOperatorType *ot); +void OBJECT_OT_select_all(struct wmOperatorType *ot); void OBJECT_OT_select_inverse(struct wmOperatorType *ot); void OBJECT_OT_select_random(struct wmOperatorType *ot); void OBJECT_OT_select_by_type(struct wmOperatorType *ot); @@ -124,7 +124,7 @@ void make_editLatt(Object *obedit); void load_editLatt(Object *obedit); void remake_editLatt(Object *obedit); -void LATTICE_OT_select_all_toggle(struct wmOperatorType *ot); +void LATTICE_OT_select_all(struct wmOperatorType *ot); void LATTICE_OT_make_regular(struct wmOperatorType *ot); /* object_group.c */ diff --git a/source/blender/editors/object/object_lattice.c b/source/blender/editors/object/object_lattice.c index 3f27ea407a2..1cda843845a 100644 --- a/source/blender/editors/object/object_lattice.c +++ b/source/blender/editors/object/object_lattice.c @@ -38,6 +38,8 @@ #include "DNA_object_types.h" #include "DNA_scene_types.h" +#include "RNA_access.h" + #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_key.h" @@ -154,7 +156,7 @@ void load_editLatt(Object *obedit) /************************** Operators *************************/ -static void setflagsLatt(Object *obedit, int flag) +void ED_setflagsLatt(Object *obedit, int flag) { Lattice *lt= obedit->data; BPoint *bp; @@ -172,49 +174,71 @@ static void setflagsLatt(Object *obedit, int flag) } } -int de_select_all_exec(bContext *C, wmOperator *op) +int select_all_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); Lattice *lt= obedit->data; BPoint *bp; - int a, deselect= 0; - - bp= lt->editlatt->def; - a= lt->editlatt->pntsu*lt->editlatt->pntsv*lt->editlatt->pntsw; - - while(a--) { - if(bp->hide==0) { - if(bp->f1) { - deselect= 1; - break; + int a; + int action = RNA_enum_get(op->ptr, "action"); + + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + + bp= lt->editlatt->def; + a= lt->editlatt->pntsu*lt->editlatt->pntsv*lt->editlatt->pntsw; + + while(a--) { + if(bp->hide==0) { + if(bp->f1) { + action = SEL_DESELECT; + break; + } } + bp++; } - bp++; } - if(deselect) - setflagsLatt(obedit, 0); - else - setflagsLatt(obedit, 1); - + switch (action) { + case SEL_SELECT: + ED_setflagsLatt(obedit, 1); + break; + case SEL_DESELECT: + ED_setflagsLatt(obedit, 0); + break; + case SEL_INVERT: + bp= lt->editlatt->def; + a= lt->editlatt->pntsu*lt->editlatt->pntsv*lt->editlatt->pntsw; + + while(a--) { + if(bp->hide==0) { + bp->f1 ^= 1; + } + bp++; + } + break; + } + WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); return OPERATOR_FINISHED; } -void LATTICE_OT_select_all_toggle(wmOperatorType *ot) +void LATTICE_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "Select or Deselect All"; - ot->description= "Toggle (de)select all UVW control points."; - ot->idname= "LATTICE_OT_select_all_toggle"; + ot->description= "Change selection of all UVW control points."; + ot->idname= "LATTICE_OT_select_all"; /* api callbacks */ - ot->exec= de_select_all_exec; + ot->exec= select_all_exec; ot->poll= ED_operator_editlattice; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + WM_operator_properties_select_all(ot); } int make_regular_poll(bContext *C) @@ -308,7 +332,7 @@ int mouse_lattice(bContext *C, short mval[2], int extend) if(bp) { if(extend==0) { - setflagsLatt(vc.obedit, 0); + ED_setflagsLatt(vc.obedit, 0); bp->f1 |= SELECT; } else diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 4dcecc92880..8d407b0e571 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -98,7 +98,7 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_select_inverse); WM_operatortype_append(OBJECT_OT_select_random); - WM_operatortype_append(OBJECT_OT_select_all_toggle); + WM_operatortype_append(OBJECT_OT_select_all); WM_operatortype_append(OBJECT_OT_select_by_type); WM_operatortype_append(OBJECT_OT_select_by_layer); WM_operatortype_append(OBJECT_OT_select_linked); @@ -180,7 +180,7 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_shape_key_mirror); WM_operatortype_append(OBJECT_OT_shape_key_move); - WM_operatortype_append(LATTICE_OT_select_all_toggle); + WM_operatortype_append(LATTICE_OT_select_all); WM_operatortype_append(LATTICE_OT_make_regular); WM_operatortype_append(OBJECT_OT_group_add); @@ -261,7 +261,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) /* object mode supports PET now */ ED_object_generic_keymap(keyconf, keymap, TRUE); - WM_keymap_add_item(keymap, "OBJECT_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "OBJECT_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "OBJECT_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "OBJECT_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "OBJECT_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0); @@ -329,7 +329,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) keymap= WM_keymap_find(keyconf, "Lattice", 0, 0); keymap->poll= ED_operator_editlattice; - WM_keymap_add_item(keymap, "LATTICE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "LATTICE_OT_select_all", AKEY, KM_PRESS, 0, 0); /* menus */ WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0); diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index 20f3ea3df9e..5366446c8ae 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -707,49 +707,64 @@ void OBJECT_OT_select_inverse(wmOperatorType *ot) /**************************** (De)select All ****************************/ -static int object_select_de_select_all_exec(bContext *C, wmOperator *op) +static int object_select_all_exec(bContext *C, wmOperator *op) { + int action = RNA_enum_get(op->ptr, "action"); - int a=0, ok=0; - - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { - if (base->flag & SELECT) { - ok= a= 1; - break; + /* passthrough if no objects are visible */ + if (CTX_DATA_COUNT(C, visible_bases) == 0) return OPERATOR_PASS_THROUGH; + + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + if (base->flag & SELECT) { + action = SEL_DESELECT; + break; + } } - else ok=1; + CTX_DATA_END; } - CTX_DATA_END; - - if (!ok) return OPERATOR_PASS_THROUGH; - + CTX_DATA_BEGIN(C, Base*, base, visible_bases) { - if (a) ED_base_object_select(base, BA_DESELECT); - else ED_base_object_select(base, BA_SELECT); + switch (action) { + case SEL_SELECT: + ED_base_object_select(base, BA_SELECT); + break; + case SEL_DESELECT: + ED_base_object_select(base, BA_DESELECT); + break; + case SEL_INVERT: + if (base->flag & SELECT) { + ED_base_object_select(base, BA_DESELECT); + } else { + ED_base_object_select(base, BA_SELECT); + } + break; + } } CTX_DATA_END; - /* undo? */ WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } -void OBJECT_OT_select_all_toggle(wmOperatorType *ot) +void OBJECT_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "deselect all"; - ot->description = "(de)select all visible objects in scene."; - ot->idname= "OBJECT_OT_select_all_toggle"; + ot->description = "Change selection of all visible objects in scene."; + ot->idname= "OBJECT_OT_select_all"; /* api callbacks */ - ot->exec= object_select_de_select_all_exec; + ot->exec= object_select_all_exec; ot->poll= ED_operator_scene_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - + + WM_operator_properties_select_all(ot); } /**************************** Select Mirror ****************************/ diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index b5007ff72ce..68e673c31b1 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -1261,29 +1261,51 @@ static void toggle_key_select(PEData *data, int point_index, int key_index) /************************ de select all operator ************************/ -static int de_select_all_exec(bContext *C, wmOperator *op) +static int select_all_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); Object *ob= CTX_data_active_object(C); PTCacheEdit *edit= PE_get_current(scene, ob); POINT_P; KEY_K; - int sel= 0; - - LOOP_VISIBLE_POINTS { - LOOP_SELECTED_KEYS { - sel= 1; - key->flag &= ~PEK_SELECT; - point->flag |= PEP_EDIT_RECALC; + int action = RNA_enum_get(op->ptr, "action"); + + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + LOOP_VISIBLE_POINTS { + LOOP_SELECTED_KEYS { + action = SEL_DESELECT; + break; + } + + if (action == SEL_DESELECT) + break; } } - if(sel==0) { - LOOP_VISIBLE_POINTS { - LOOP_KEYS { - if(!(key->flag & PEK_SELECT)) { + LOOP_VISIBLE_POINTS { + LOOP_VISIBLE_KEYS { + switch (action) { + case SEL_SELECT: + if ((key->flag & PEK_SELECT) == 0) { key->flag |= PEK_SELECT; point->flag |= PEP_EDIT_RECALC; } + break; + case SEL_DESELECT: + if (key->flag & PEK_SELECT) { + key->flag &= ~PEK_SELECT; + point->flag |= PEP_EDIT_RECALC; + } + break; + case SEL_INVERT: + if ((key->flag & PEK_SELECT) == 0) { + key->flag |= PEK_SELECT; + point->flag |= PEP_EDIT_RECALC; + } else { + key->flag &= ~PEK_SELECT; + point->flag |= PEP_EDIT_RECALC; + } + break; } } } @@ -1294,18 +1316,20 @@ static int de_select_all_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void PARTICLE_OT_select_all_toggle(wmOperatorType *ot) +void PARTICLE_OT_select_all(wmOperatorType *ot) { /* identifiers */ - ot->name= "Select or Deselect All"; - ot->idname= "PARTICLE_OT_select_all_toggle"; + ot->name= "Selection of all particles"; + ot->idname= "PARTICLE_OT_select_all"; /* api callbacks */ - ot->exec= de_select_all_exec; + ot->exec= select_all_exec; ot->poll= PE_poll; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + WM_operator_properties_select_all(ot); } /************************ pick select operator ************************/ @@ -1472,7 +1496,7 @@ void PARTICLE_OT_select_linked(wmOperatorType *ot) /************************ border select operator ************************/ -int PE_border_select(bContext *C, rcti *rect, int select) +int PE_border_select(bContext *C, rcti *rect, int select, int extend) { Scene *scene= CTX_data_scene(C); Object *ob= CTX_data_active_object(C); @@ -1482,6 +1506,17 @@ int PE_border_select(bContext *C, rcti *rect, int select) if(!PE_start_edit(edit)) return OPERATOR_CANCELLED; + if (extend == 0 && select) { + POINT_P; KEY_K; + + LOOP_VISIBLE_POINTS { + LOOP_SELECTED_KEYS { + key->flag &= ~PEK_SELECT; + point->flag |= PEP_EDIT_RECALC; + } + } + } + PE_set_view3d_data(C, &data); data.rect= rect; data.select= select; diff --git a/source/blender/editors/physics/physics_intern.h b/source/blender/editors/physics/physics_intern.h index e7543cbb83e..085332b1788 100644 --- a/source/blender/editors/physics/physics_intern.h +++ b/source/blender/editors/physics/physics_intern.h @@ -36,7 +36,7 @@ struct wmOperatorType; /* particle_edit.c */ -void PARTICLE_OT_select_all_toggle(struct wmOperatorType *ot); +void PARTICLE_OT_select_all(struct wmOperatorType *ot); void PARTICLE_OT_select_first(struct wmOperatorType *ot); void PARTICLE_OT_select_last(struct wmOperatorType *ot); void PARTICLE_OT_select_linked(struct wmOperatorType *ot); diff --git a/source/blender/editors/physics/physics_ops.c b/source/blender/editors/physics/physics_ops.c index b0d804da457..09b4ebec7a2 100644 --- a/source/blender/editors/physics/physics_ops.c +++ b/source/blender/editors/physics/physics_ops.c @@ -43,7 +43,7 @@ static void operatortypes_particle(void) { - WM_operatortype_append(PARTICLE_OT_select_all_toggle); + WM_operatortype_append(PARTICLE_OT_select_all); WM_operatortype_append(PARTICLE_OT_select_first); WM_operatortype_append(PARTICLE_OT_select_last); WM_operatortype_append(PARTICLE_OT_select_linked); @@ -94,7 +94,7 @@ static void keymap_particle(wmKeyConfig *keyconf) keymap= WM_keymap_find(keyconf, "Particle", 0, 0); keymap->poll= PE_poll; - WM_keymap_add_item(keymap, "PARTICLE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "PARTICLE_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "PARTICLE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "PARTICLE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "PARTICLE_OT_select_linked", LKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h index b5748d7bc88..f86e1077ef3 100644 --- a/source/blender/editors/sculpt_paint/paint_intern.h +++ b/source/blender/editors/sculpt_paint/paint_intern.h @@ -96,7 +96,7 @@ void BRUSH_OT_curve_preset(struct wmOperatorType *ot); void PAINT_OT_face_select_linked(struct wmOperatorType *ot); void PAINT_OT_face_select_linked_pick(struct wmOperatorType *ot); -void PAINT_OT_face_deselect_all(struct wmOperatorType *ot); +void PAINT_OT_face_select_all(struct wmOperatorType *ot); int facemask_paint_poll(struct bContext *C); diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index 256d114fbdc..92812c2ab08 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -137,7 +137,7 @@ void ED_operatortypes_paint(void) /* face-select */ WM_operatortype_append(PAINT_OT_face_select_linked); WM_operatortype_append(PAINT_OT_face_select_linked_pick); - WM_operatortype_append(PAINT_OT_face_deselect_all); + WM_operatortype_append(PAINT_OT_face_select_all); } static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *path) @@ -238,7 +238,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf) keymap= WM_keymap_find(keyconf, "Face Mask", 0, 0); keymap->poll= facemask_paint_poll; - WM_keymap_add_item(keymap, "PAINT_OT_face_deselect_all", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "PAINT_OT_face_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked", LKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked_pick", LKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c index 24d9e0f4bc1..496d15d793f 100644 --- a/source/blender/editors/sculpt_paint/paint_utils.c +++ b/source/blender/editors/sculpt_paint/paint_utils.c @@ -273,22 +273,24 @@ void PAINT_OT_face_select_linked_pick(wmOperatorType *ot) } -static int face_deselect_all_exec(bContext *C, wmOperator *op) +static int face_select_all_exec(bContext *C, wmOperator *op) { - deselectall_tface(CTX_data_active_object(C)); + selectall_tface(CTX_data_active_object(C), RNA_enum_get(op->ptr, "action")); ED_region_tag_redraw(CTX_wm_region(C)); return OPERATOR_FINISHED; } -void PAINT_OT_face_deselect_all(wmOperatorType *ot) +void PAINT_OT_face_select_all(wmOperatorType *ot) { - ot->name= "Select Linked"; - ot->description= "Select linked faces under the mouse."; - ot->idname= "PAINT_OT_face_deselect_all"; + ot->name= "Face Selection"; + ot->description= "Change selection for all faces."; + ot->idname= "PAINT_OT_face_select_all"; - ot->exec= face_deselect_all_exec; + ot->exec= face_select_all_exec; ot->poll= facemask_paint_poll; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + WM_operator_properties_select_all(ot); } diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 2b45cfef6e1..54038853775 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1262,7 +1262,7 @@ static void do_nurbs_box_select__doSelect(void *userData, Nurb *nu, BPoint *bp, } } } -static void do_nurbs_box_select(ViewContext *vc, rcti *rect, int select) +static void do_nurbs_box_select(ViewContext *vc, rcti *rect, int select, int extend) { struct { ViewContext vc; rcti *rect; int select; } data; @@ -1270,6 +1270,10 @@ static void do_nurbs_box_select(ViewContext *vc, rcti *rect, int select) data.rect = rect; data.select = select; + if (extend == 0 && select) { + CU_deselect_all(vc->obedit); + } + ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ nurbs_foreachScreenVert(vc, do_nurbs_box_select__doSelect, &data); } @@ -1282,7 +1286,7 @@ static void do_lattice_box_select__doSelect(void *userData, BPoint *bp, int x, i bp->f1 = data->select?(bp->f1|SELECT):(bp->f1&~SELECT); } } -static void do_lattice_box_select(ViewContext *vc, rcti *rect, int select) +static void do_lattice_box_select(ViewContext *vc, rcti *rect, int select, int extend) { struct { ViewContext vc; rcti *rect; int select, pass, done; } data; @@ -1290,6 +1294,10 @@ static void do_lattice_box_select(ViewContext *vc, rcti *rect, int select) data.rect = rect; data.select = select; + if (extend == 0 && select) { + ED_setflagsLatt(vc->obedit, 0); + } + ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ lattice_foreachScreenVert(vc, do_lattice_box_select__doSelect, &data); } @@ -1327,7 +1335,7 @@ static void do_mesh_box_select__doSelectFace(void *userData, EditFace *efa, int EM_select_face_fgon(data->vc.em, efa, data->select); } } -static void do_mesh_box_select(ViewContext *vc, rcti *rect, int select) +static void do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int extend) { struct { ViewContext vc; rcti *rect; short select, pass, done; } data; ToolSettings *ts= vc->scene->toolsettings; @@ -1339,6 +1347,11 @@ static void do_mesh_box_select(ViewContext *vc, rcti *rect, int select) data.pass = 0; data.done = 0; + if (extend == 0 && select) + { + EM_deselect_all(vc->em); + } + bbsel= EM_init_backbuf_border(vc, rect->xmin, rect->ymin, rect->xmax, rect->ymax); ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ @@ -1387,6 +1400,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) MetaElem *ml; unsigned int buffer[4*MAXPICKBUF]; int a, index; + int extend; short hits, selecting; view3d_operator_needs_opengl(C); @@ -1399,31 +1413,41 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) rect.ymin= RNA_int_get(op->ptr, "ymin"); rect.xmax= RNA_int_get(op->ptr, "xmax"); rect.ymax= RNA_int_get(op->ptr, "ymax"); + extend = RNA_boolean_get(op->ptr, "extend"); if(obedit==NULL && (paint_facesel_test(OBACT))) { - face_borderselect(C, obact, &rect, selecting); + face_borderselect(C, obact, &rect, selecting, extend); return OPERATOR_FINISHED; } else if(obedit==NULL && (obact && obact->mode & OB_MODE_PARTICLE_EDIT)) { - return PE_border_select(C, &rect, selecting); + return PE_border_select(C, &rect, selecting, extend); } if(obedit) { if(obedit->type==OB_MESH) { Mesh *me= obedit->data; vc.em= me->edit_mesh; - do_mesh_box_select(&vc, &rect, selecting); + do_mesh_box_select(&vc, &rect, selecting, extend); // if (EM_texFaceCheck()) WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); } else if(ELEM(obedit->type, OB_CURVE, OB_SURF)) { - do_nurbs_box_select(&vc, &rect, selecting); + do_nurbs_box_select(&vc, &rect, selecting, extend); } else if(obedit->type==OB_MBALL) { MetaBall *mb = (MetaBall*)obedit->data; hits= view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect); + if (extend == 0 && selecting) { + ml= mb->editelems->first; + + while(ml) { + ml->flag &= ~SELECT; + ml= ml->next; + } + } + ml= mb->editelems->first; while(ml) { @@ -1452,6 +1476,17 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) for(ebone= arm->edbo->first; ebone; ebone= ebone->next) ebone->flag &= ~BONE_DONE; + if (extend==0 && selecting) { + /* Set the flags */ + CTX_DATA_BEGIN(C, EditBone *, ebone, visible_bones) { + /* ignore bone if selection can't change */ + if ((ebone->flag & BONE_UNSELECTABLE) == 0) { + ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); + } + } + CTX_DATA_END; + } + hits= view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect); /* first we only check points inside the border */ @@ -1500,7 +1535,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) ED_armature_sync_selection(arm->edbo); } else if(obedit->type==OB_LATTICE) { - do_lattice_box_select(&vc, &rect, selecting); + do_lattice_box_select(&vc, &rect, selecting, extend); } } else { /* no editmode, unified for bones and objects */ @@ -1516,6 +1551,25 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) else bone_only= 0; + if (extend == 0 && selecting) { + base= FIRSTBASE; + + if (bone_only) { + CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) { + pchan->bone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL); + } + CTX_DATA_END; + } else { + while(base) { + Base *next = base->next; + if(base->lay & v3d->lay) { + ED_base_object_select(base, BA_DESELECT); + } + base= next; + } + } + } + /* selection buffer now has bones potentially too, so we add MAXPICKBUF */ vbuffer = MEM_mallocN(4 * (totobj+MAXPICKBUF) * sizeof(unsigned int), "selection buffer"); hits= view3d_opengl_select(&vc, vbuffer, 4*(totobj+MAXPICKBUF), &rect); diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index 623ddaae188..fb02f5100b6 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -1323,7 +1323,7 @@ void UV_OT_select_inverse(wmOperatorType *ot) /* ******************** (de)select all operator **************** */ -static int de_select_all_exec(bContext *C, wmOperator *op) +static int select_all_exec(bContext *C, wmOperator *op) { Scene *scene; ToolSettings *ts; @@ -1332,7 +1332,7 @@ static int de_select_all_exec(bContext *C, wmOperator *op) EditFace *efa; Image *ima; MTFace *tf; - int sel; + int action = RNA_enum_get(op->ptr, "action"); scene= CTX_data_scene(C); ts= CTX_data_tool_settings(C); @@ -1341,18 +1341,33 @@ static int de_select_all_exec(bContext *C, wmOperator *op) ima= CTX_data_edit_image(C); if(ts->uv_flag & UV_SYNC_SELECTION) { - EM_toggle_select_all(em); + switch (action) { + case SEL_TOGGLE: + EM_toggle_select_all(em); + break; + case SEL_SELECT: + EM_select_all(em); + break; + case SEL_DESELECT: + EM_deselect_all(em); + break; + case SEL_INVERT: + EM_select_swap(em); + break; + } } else { - sel= 0; - for(efa= em->faces.first; efa; efa= efa->next) { - tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + if (action == SEL_TOGGLE) { + action = SEL_SELECT; + for(efa= em->faces.first; efa; efa= efa->next) { + tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); - if(uvedit_face_visible(scene, ima, efa, tf)) { - if(tf->flag & (TF_SEL1+TF_SEL2+TF_SEL3+TF_SEL4)) { - sel= 1; - break; + if(uvedit_face_visible(scene, ima, efa, tf)) { + if(tf->flag & (TF_SEL1+TF_SEL2+TF_SEL3+TF_SEL4)) { + action = SEL_DESELECT; + break; + } } } } @@ -1361,13 +1376,27 @@ static int de_select_all_exec(bContext *C, wmOperator *op) tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); if(uvedit_face_visible(scene, ima, efa, tf)) { - if(efa->v4) { - if(sel) tf->flag &= ~(TF_SEL1+TF_SEL2+TF_SEL3+TF_SEL4); - else tf->flag |= (TF_SEL1+TF_SEL2+TF_SEL3+TF_SEL4); - } - else { - if(sel) tf->flag &= ~(TF_SEL1+TF_SEL2+TF_SEL3+TF_SEL4); - else tf->flag |= (TF_SEL1+TF_SEL2+TF_SEL3); + char select_flag; + + if(efa->v4) + select_flag = (TF_SEL1+TF_SEL2+TF_SEL3+TF_SEL4); + else + select_flag = (TF_SEL1+TF_SEL2+TF_SEL3); + + switch (action) { + case SEL_SELECT: + tf->flag |= select_flag; + break; + case SEL_DESELECT: + tf->flag &= ~select_flag; + break; + case SEL_INVERT: + if ((tf->flag & select_flag) == select_flag) { + tf->flag &= ~select_flag; + } else { + tf->flag &= ~select_flag; + } + break; } } } @@ -1379,17 +1408,19 @@ static int de_select_all_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void UV_OT_select_all_toggle(wmOperatorType *ot) +void UV_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "Select or Deselect All"; - ot->description= "(de)select all UV vertices."; - ot->idname= "UV_OT_select_all_toggle"; + ot->description= "Change selection of all UV vertices."; + ot->idname= "UV_OT_select_all"; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* api callbacks */ - ot->exec= de_select_all_exec; + ot->exec= select_all_exec; ot->poll= ED_operator_uvedit; + + WM_operator_properties_select_all(ot); } /* ******************** mouse select operator **************** */ @@ -3065,7 +3096,7 @@ void UV_OT_tile_set(wmOperatorType *ot) void ED_operatortypes_uvedit(void) { - WM_operatortype_append(UV_OT_select_all_toggle); + WM_operatortype_append(UV_OT_select_all); WM_operatortype_append(UV_OT_select_inverse); WM_operatortype_append(UV_OT_select); WM_operatortype_append(UV_OT_select_loop); @@ -3121,7 +3152,7 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf) /* selection manipulation */ WM_keymap_add_item(keymap, "UV_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "UV_OT_unlink_selection", LKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "UV_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "UV_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "UV_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "UV_OT_select_pinned", PKEY, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index a965b484087..22820d578a5 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -197,6 +197,13 @@ void WM_operator_properties_create_ptr(struct PointerRNA *ptr, struct wmOperato void WM_operator_properties_free(struct PointerRNA *ptr); void WM_operator_properties_filesel(struct wmOperatorType *ot, int filter, short type); void WM_operator_properties_gesture_border(wmOperatorType *ot, int extend); +void WM_operator_properties_select_all(wmOperatorType *ot); + +/* MOVE THIS SOMEWHERE ELSE */ +#define SEL_TOGGLE 0 +#define SEL_SELECT 1 +#define SEL_DESELECT 2 +#define SEL_INVERT 3 /* operator as a python command (resultuing string must be free'd) */ char *WM_operator_pystring(struct bContext *C, struct wmOperatorType *ot, struct PointerRNA *opptr, int all_args); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 15e27f45d5e..ab4355bc524 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -668,6 +668,18 @@ void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type) RNA_def_property_flag(prop, PROP_HIDDEN); } +void WM_operator_properties_select_all(wmOperatorType *ot) { + static EnumPropertyItem select_all_actions[] = { + {SEL_TOGGLE, "TOGGLE", 0, "Toggle", "Toggle selection for all elements"}, + {SEL_SELECT, "SELECT", 0, "Select", "Select all elements"}, + {SEL_DESELECT, "DESELECT", 0, "Deselect", "Deselect all elements"}, + {SEL_INVERT, "INVERT", 0, "Invert", "Invert selection of all elements"}, + {0, NULL, 0, NULL, NULL} + }; + + RNA_def_enum(ot->srna, "action", select_all_actions, SEL_TOGGLE, "Action", "Selection action to execute"); +} + void WM_operator_properties_gesture_border(wmOperatorType *ot, int extend) { RNA_def_int(ot->srna, "gesture_mode", 0, INT_MIN, INT_MAX, "Gesture Mode", "", INT_MIN, INT_MAX); @@ -677,7 +689,7 @@ void WM_operator_properties_gesture_border(wmOperatorType *ot, int extend) RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX); if(extend) - RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend selection instead of deselecting everything first."); + RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection instead of deselecting everything first."); } -- cgit v1.2.3 From d98093a91ac7ce96ab6b1e14168493f9f69f379d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 29 Nov 2009 22:42:33 +0000 Subject: - added a new math function double_round, useful for rounding a number to a number of decimal places. - added Mathutils vector method, vec.asTuple(round), since this is tedious in python and fairly common task. --- source/blender/blenlib/BLI_math_base.h | 2 ++ source/blender/blenlib/intern/math_base.c | 31 +++++++++++++++++++++++++++++++ source/blender/python/generic/vector.c | 26 ++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_base.h b/source/blender/blenlib/BLI_math_base.h index 4e845ae35d9..af301386920 100644 --- a/source/blender/blenlib/BLI_math_base.h +++ b/source/blender/blenlib/BLI_math_base.h @@ -148,6 +148,8 @@ float power_of_2(float f); float shell_angle_to_dist(float angle); +double double_round(double x, int ndigits); + #ifdef __cplusplus } #endif diff --git a/source/blender/blenlib/intern/math_base.c b/source/blender/blenlib/intern/math_base.c index f3fe09c088f..e1a53a09d40 100644 --- a/source/blender/blenlib/intern/math_base.c +++ b/source/blender/blenlib/intern/math_base.c @@ -109,3 +109,34 @@ float power_of_2(float val) return (float)pow(2, ceil(log(val) / log(2))); } +/* from python 3.1 floatobject.c + * ndigits must be between 0 and 21 */ +double double_round(double x, int ndigits) { + double pow1, pow2, y, z; + if (ndigits >= 0) { + pow1 = pow(10.0, (double)ndigits); + pow2 = 1.0; + y = (x*pow1)*pow2; + /* if y overflows, then rounded value is exactly x */ + if (!finite(y)) + return x; + } + else { + pow1 = pow(10.0, (double)-ndigits); + pow2 = 1.0; /* unused; silences a gcc compiler warning */ + y = x / pow1; + } + + z = round(y); + if (fabs(y-z) == 0.5) + /* halfway between two integers; use round-half-even */ + z = 2.0*round(y/2.0); + + if (ndigits >= 0) + z = (z / pow2) / pow1; + else + z *= pow1; + + /* if computation resulted in overflow, raise OverflowError */ + return z; +} diff --git a/source/blender/python/generic/vector.c b/source/blender/python/generic/vector.c index b3e54ac2250..b8f2ca6f1df 100644 --- a/source/blender/python/generic/vector.c +++ b/source/blender/python/generic/vector.c @@ -48,6 +48,7 @@ static PyObject *Vector_Negate( VectorObject * self ); static PyObject *Vector_Resize2D( VectorObject * self ); static PyObject *Vector_Resize3D( VectorObject * self ); static PyObject *Vector_Resize4D( VectorObject * self ); +static PyObject *Vector_ToTuple( VectorObject * self, PyObject *value ); static PyObject *Vector_ToTrackQuat( VectorObject * self, PyObject * args ); static PyObject *Vector_Reflect( VectorObject *self, VectorObject *value ); static PyObject *Vector_Cross( VectorObject * self, VectorObject * value ); @@ -61,6 +62,7 @@ static struct PyMethodDef Vector_methods[] = { {"resize2D", (PyCFunction) Vector_Resize2D, METH_NOARGS, NULL}, {"resize3D", (PyCFunction) Vector_Resize3D, METH_NOARGS, NULL}, {"resize4D", (PyCFunction) Vector_Resize4D, METH_NOARGS, NULL}, + {"toTuple", (PyCFunction) Vector_ToTuple, METH_O, NULL}, {"toTrackQuat", ( PyCFunction ) Vector_ToTrackQuat, METH_VARARGS, NULL}, {"reflect", ( PyCFunction ) Vector_Reflect, METH_O, NULL}, {"cross", ( PyCFunction ) Vector_Cross, METH_O, NULL}, @@ -236,6 +238,30 @@ static PyObject *Vector_Resize4D(VectorObject * self) Py_INCREF(self); return (PyObject*)self; } + +/*----------------------------Vector.resize4D() ------------------ + resize the vector to x,y,z,w */ +static PyObject *Vector_ToTuple(VectorObject * self, PyObject *value) +{ + int ndigits= PyLong_AsSsize_t(value); + int x; + + PyObject *ret; + + if(ndigits > 22 || ndigits < 0) { /* accounts for non ints */ + PyErr_SetString(PyExc_TypeError, "vector.key(ndigits): ndigits must be between 0 and 21"); + return NULL; + } + + ret= PyTuple_New(self->size); + + for(x = 0; x < self->size; x++) { + PyTuple_SET_ITEM(ret, x, PyFloat_FromDouble(double_round((double)self->vec[x], ndigits))); + } + + return ret; +} + /*----------------------------Vector.toTrackQuat(track, up) ---------------------- extract a quaternion from the vector and the track and up axis */ static PyObject *Vector_ToTrackQuat( VectorObject * self, PyObject * args ) -- cgit v1.2.3 From 2bef608fb391fda4c87238abf10e2d3823a883d8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 29 Nov 2009 23:14:41 +0000 Subject: - new objects added from the rna api defaulted to quat rotation, not even using an identity quat. - making meshes in python isnt nice at the moment, added a helper function. mesh.from_pydata(verts, edges, faces) --- source/blender/blenkernel/intern/object.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 73a1d2023a2..69c57fb38fe 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -963,6 +963,7 @@ Object *add_only_object(int type, char *name) /* default object vars */ ob->type= type; /* ob->transflag= OB_QUAT; */ + ob->rotmode= ROT_MODE_EUL; #if 0 /* not used yet */ unit_qt(ob->quat); -- cgit v1.2.3 From a96f6f2e15af08a9eb2f0ea4567abaddecdf5ac0 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 29 Nov 2009 23:54:41 +0000 Subject: * Moved rotation initialisation code for new objects to 'the other' add object function that campbell fixed earlier. This should mean that the py-api does everything in the right way now. * Tried adding 'Load Factory Settings' to File menu, but I seem to be running up against some RNA bugs. Can be removed if is too problematic. --- source/blender/blenkernel/intern/object.c | 40 ++++++++++--------------------- 1 file changed, 13 insertions(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 69c57fb38fe..1e047380641 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -962,20 +962,22 @@ Object *add_only_object(int type, char *name) /* default object vars */ ob->type= type; - /* ob->transflag= OB_QUAT; */ - ob->rotmode= ROT_MODE_EUL; - -#if 0 /* not used yet */ - unit_qt(ob->quat); - unit_qt(ob->dquat); -#endif - + ob->col[0]= ob->col[1]= ob->col[2]= 1.0; ob->col[3]= 1.0; - - ob->loc[0]= ob->loc[1]= ob->loc[2]= 0.0; - ob->rot[0]= ob->rot[1]= ob->rot[2]= 0.0; + ob->size[0]= ob->size[1]= ob->size[2]= 1.0; + + /* objects should default to having Euler XYZ rotations, + * but rotations default to quaternions + */ + ob->rotmode= ROT_MODE_EUL; + /* axis-angle must not have a 0,0,0 axis, so set y-axis as default... */ + ob->rotAxis[1]= ob->drotAxis[1]= 1.0f; + /* quaternions should be 1,0,0,0 by default.... */ + ob->quat[0]= ob->dquat[0]= 1.0f; + /* rotation locks should be 4D for 4 component rotations by default... */ + ob->protectflag = OB_LOCK_ROT4D; unit_m4(ob->constinv); unit_m4(ob->parentinv); @@ -993,11 +995,6 @@ Object *add_only_object(int type, char *name) ob->upflag= OB_POSZ; } -#if 0 // XXX old animation system - ob->ipoflag = OB_OFFS_OB+OB_OFFS_PARENT; - ob->ipowin= ID_OB; /* the ipowin shown */ -#endif // XXX old animation system - ob->dupon= 1; ob->dupoff= 0; ob->dupsta= 1; ob->dupend= 100; ob->dupfacesca = 1.0; @@ -1039,17 +1036,6 @@ Object *add_object(struct Scene *scene, int type) ob->lay= scene->lay; - /* objects should default to having Euler XYZ rotations, - * but rotations default to quaternions - */ - ob->rotmode= ROT_MODE_EUL; - /* axis-angle must not have a 0,0,0 axis, so set y-axis as default... */ - ob->rotAxis[1]= ob->drotAxis[1]= 1.0f; - /* quaternions should be 1,0,0,0 by default.... */ - ob->quat[0]= 1.0f; - /* rotation locks should be 4D for 4 component rotations by default... */ - ob->protectflag = OB_LOCK_ROT4D; - base= scene_add_base(scene, ob); scene_select_base(scene, base); ob->recalc |= OB_RECALC; -- cgit v1.2.3 From 3d1f2974899308b5a58d28493da6f9eab966564c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 30 Nov 2009 00:18:36 +0000 Subject: Added temporary compiling fix for MSVC after Campbell's rounding commit. Copied (in if-defs - for msvc win32/64) the python math functions used for dealing with the lack of a 'round()' function. --- source/blender/blenlib/intern/math_base.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/math_base.c b/source/blender/blenlib/intern/math_base.c index e1a53a09d40..c5d0a1090b3 100644 --- a/source/blender/blenlib/intern/math_base.c +++ b/source/blender/blenlib/intern/math_base.c @@ -109,6 +109,35 @@ float power_of_2(float val) return (float)pow(2, ceil(log(val) / log(2))); } + +/* WARNING: MSVC compiling hack for double_round() */ +#if (WIN32 || WIN64) && !(FREE_WINDOWS) + +/* from python 3.1 pymath.c */ +double copysign(double x, double y) +{ + /* use atan2 to distinguish -0. from 0. */ + if (y > 0. || (y == 0. && atan2(y, -1.) > 0.)) { + return fabs(x); + } else { + return -fabs(x); + } +} + +/* from python 3.1 pymath.c */ +double round(double x) +{ + double absx, y; + absx = fabs(x); + y = floor(absx); + if (absx - y >= 0.5) + y += 1.0; + return copysign(y, x); +} + +#endif + + /* from python 3.1 floatobject.c * ndigits must be between 0 and 21 */ double double_round(double x, int ndigits) { -- cgit v1.2.3 From dc1af66d8a971ce5855ba5ceae1052e001acfae6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Nov 2009 01:13:46 +0000 Subject: - grease pencil drawing on the surface of objects (only when enable face snap & projection, a bit hidden I know) - retopo operator to convert grease pencil drawn topology into geometry, not in the convert menu yet since its not quite finished, use the operator search menu for retopo. will test this week and see what needs fixing. --- source/blender/editors/gpencil/gpencil_edit.c | 2 +- source/blender/editors/gpencil/gpencil_paint.c | 62 ++++++++++++++++------- source/blender/editors/include/ED_view3d.h | 5 ++ source/blender/editors/space_view3d/view3d_edit.c | 46 +++++++++++++++++ 4 files changed, 96 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index c2b9a1a4bb9..2f41d90b37c 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -531,7 +531,7 @@ static void gp_layer_to_curve (bContext *C, bGPdata *gpd, bGPDlayer *gpl, short } /* restore old active object */ - BASACT= base; + // BASACT= base; // removing since this is expected new objects are active. } /* --- */ diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 4229c66353c..dce49cc4845 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -151,6 +151,21 @@ static int gpencil_draw_poll (bContext *C) return (gpencil_data_get_pointers(C, NULL) != NULL); } +static int gpencil_project_check(tGPsdata *p) +{ + bGPdata *gpd= p->gpd; + + /* in 3d-space - pt->x/y/z are 3 side-by-side floats */ + if( (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && + (p->scene->toolsettings->snap_mode==SCE_SNAP_MODE_FACE) && + (p->scene->toolsettings->snap_flag & SCE_SNAP_PROJECT) ) + { + return 1; + } + + return 0; +} + /* ******************************************* */ /* Calculations/Conversions */ @@ -211,24 +226,29 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[]) /* in 3d-space - pt->x/y/z are 3 side-by-side floats */ if (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) { - const short mx=mval[0], my=mval[1]; - float rvec[3], dvec[3]; - - /* Current method just converts each point in screen-coordinates to - * 3D-coordinates using the 3D-cursor as reference. In general, this - * works OK, but it could of course be improved. - * - * TODO: - * - investigate using nearest point(s) on a previous stroke as - * reference point instead or as offset, for easier stroke matching - * - investigate projection onto geometry (ala retopo) - */ - gp_get_3d_reference(p, rvec); - - /* method taken from editview.c - mouse_cursor() */ - project_short_noclip(p->ar, rvec, mval); - window_to_3d_delta(p->ar, dvec, mval[0]-mx, mval[1]-my); - sub_v3_v3v3(out, rvec, dvec); + if(gpencil_project_check(p) && (view_autodist_simple(p->ar, mval, out))) { + /* pass */ + } + else { + const short mx=mval[0], my=mval[1]; + float rvec[3], dvec[3]; + + /* Current method just converts each point in screen-coordinates to + * 3D-coordinates using the 3D-cursor as reference. In general, this + * works OK, but it could of course be improved. + * + * TODO: + * - investigate using nearest point(s) on a previous stroke as + * reference point instead or as offset, for easier stroke matching + */ + + gp_get_3d_reference(p, rvec); + + /* method taken from editview.c - mouse_cursor() */ + project_short_noclip(p->ar, rvec, mval); + window_to_3d_delta(p->ar, dvec, mval[0]-mx, mval[1]-my); + sub_v3_v3v3(out, rvec, dvec); + } } /* 2d - on 'canvas' (assume that p->v2d is set) */ @@ -1114,6 +1134,12 @@ static void gpencil_draw_exit (bContext *C, wmOperator *op) } /* cleanup */ + if(gpencil_project_check(p)) { + View3D *v3d= p->sa->spacedata.first; + view3d_operator_needs_opengl(C); + view_autodist_init(p->scene, p->ar, v3d); + } + gp_paint_cleanup(p); gp_session_cleanup(p); diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index ecd2d69b7fb..38a1d5ef9eb 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -117,8 +117,13 @@ unsigned int view3d_sample_backbuf_rect(struct ViewContext *vc, short mval[2], i void *handle, unsigned int (*indextest)(void *handle, unsigned int index)); unsigned int view3d_sample_backbuf(struct ViewContext *vc, int x, int y); +/* draws and does a 4x4 sample */ int view_autodist(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, short *mval, float mouse_worldloc[3]); +/* only draw so view_autodist_simple can be called many times after */ +int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d); +int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3]); + /* select */ #define MAXPICKBUF 10000 short view3d_opengl_select(struct ViewContext *vc, unsigned int *buffer, unsigned int bufsize, rcti *input); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 2444c461bd0..9737e0cb167 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -2205,7 +2205,53 @@ int view_autodist(Scene *scene, ARegion *ar, View3D *v3d, short *mval, float mou return 1; } +int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d) //, float *autodist ) +{ + RegionView3D *rv3d= ar->regiondata; + + /* Get Z Depths, needed for perspective, nice for ortho */ + draw_depth(scene, ar, v3d, NULL); + + /* force updating */ + if (rv3d->depths) { + rv3d->depths->damaged = 1; + } + + view3d_update_depths(ar, v3d); + return 1; +} + +// no 4x4 sampling, run view_autodist_init first +int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3] ) //, float *autodist ) +{ + RegionView3D *rv3d= ar->regiondata; + bglMats mats; /* ZBuffer depth vars, could cache? */ + float depth; + double cent[2], p[3]; + + if (mval[0] < 0) return 0; + if (mval[1] < 0) return 0; + if (mval[0] >= rv3d->depths->w) return 0; + if (mval[1] >= rv3d->depths->h) return 0; + + /* Get Z Depths, needed for perspective, nice for ortho */ + bgl_get_mats(&mats); + depth= rv3d->depths->depths[mval[1]*rv3d->depths->w+mval[0]]; + if (depth==MAXFLOAT) + return 0; + + cent[0] = (double)mval[0]; + cent[1] = (double)mval[1]; + + if (!gluUnProject(cent[0], cent[1], depth, mats.modelview, mats.projection, (GLint *)mats.viewport, &p[0], &p[1], &p[2])) + return 0; + + mouse_worldloc[0] = (float)p[0]; + mouse_worldloc[1] = (float)p[1]; + mouse_worldloc[2] = (float)p[2]; + return 1; +} /* ********************* NDOF ************************ */ /* note: this code is confusing and unclear... (ton) */ -- cgit v1.2.3 From 9b0a3ee9ce7c2edf93d84457420a46703eb9c82f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Nov 2009 02:34:49 +0000 Subject: previous commit for retopo converted the strokes into a curve first, better to use the grease pencil data directly. renamed coordinates --> co, matching mesh verts --- source/blender/makesrna/intern/rna_gpencil.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 2a4ff112c3c..87900c943a9 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -77,7 +77,7 @@ static void rna_def_gpencil_stroke_point(BlenderRNA *brna) RNA_def_struct_sdna(srna, "bGPDspoint"); RNA_def_struct_ui_text(srna, "Grease Pencil Stroke Point", "Data point for freehand stroke curve."); - prop= RNA_def_property(srna, "coordinates", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "co", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "x"); RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Coordinates", ""); -- cgit v1.2.3 From caa11aae048639e6569d22c11af256447c8eb395 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 30 Nov 2009 02:42:10 +0000 Subject: Assorted tweaks for subdivide operator ranges - soft/hard ranges were swapped. --- source/blender/editors/armature/editarmature.c | 6 +++--- source/blender/editors/mesh/editmesh_tools.c | 4 ++-- source/blender/makesrna/intern/rna_scene.c | 1 - 3 files changed, 5 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 38daa22bbc7..a9efe4be9cb 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -1139,7 +1139,7 @@ static int separate_armature_exec (bContext *C, wmOperator *op) void ARMATURE_OT_separate (wmOperatorType *ot) { /* identifiers */ - ot->name= "Separate Armature"; + ot->name= "Separate Bones"; ot->idname= "ARMATURE_OT_separate"; ot->description= "Isolate selected bones into a separate armature."; @@ -3573,7 +3573,7 @@ void ARMATURE_OT_subdivide_multi(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* Properties */ - RNA_def_int(ot->srna, "number_cuts", 2, 1, 10, "Number of Cuts", "", 1, INT_MAX); + RNA_def_int(ot->srna, "number_cuts", 2, 1, INT_MAX, "Number of Cuts", "", 1, 10); } @@ -3631,7 +3631,7 @@ void ARMATURE_OT_subdivs(wmOperatorType *ot) RNA_def_enum(ot->srna, "type", type_items, 0, "Type", ""); /* this is temp, the ops are different, but they are called from subdivs, so all the possible props should be here as well*/ - RNA_def_int(ot->srna, "number_cuts", 2, 1, 10, "Number of Cuts", "", 1, INT_MAX); + RNA_def_int(ot->srna, "number_cuts", 2, 1, INT_MAX, "Number of Cuts", "", 1, 10); } /* ----------- */ diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index b89940fa882..e439968d380 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -6711,9 +6711,9 @@ void MESH_OT_subdivide(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ - RNA_def_int(ot->srna, "number_cuts", 1, 1, 10, "Number of Cuts", "", 1, INT_MAX); + RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10); RNA_def_float(ot->srna, "fractal", 0.0, 0.0f, FLT_MAX, "Fractal", "Fractal randomness factor.", 0.0f, 1000.0f); - RNA_def_float(ot->srna, "smoothness", 0.0f, 0.0f, 1000.0f, "Smoothness", "Smoothness factor.", 0.0f, FLT_MAX); + RNA_def_float(ot->srna, "smoothness", 0.0f, 0.0f, FLT_MAX, "Smoothness", "Smoothness factor.", 0.0f, 1000.0f); } /********************** Fill Operators *************************/ diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 7d5a74cbf68..433e0974d35 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -2314,7 +2314,6 @@ void RNA_def_scene(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; -// PropertyRNA *prop_act; FunctionRNA *func; static EnumPropertyItem audio_distance_model_items[] = { -- cgit v1.2.3 From 7fd2a2da6fe7c57aecfe615725f57156e1f37721 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 30 Nov 2009 03:10:46 +0000 Subject: * Grease Pencil drawing now works with Repeat Last operator. Stroke info is now saved when drawing strokes, but unfortunately, the post-draw settings tweaking doesn't work from the toolbar still (due to missing region context info) * Added some update callbacks/flags for F-Curve properties, so changing the colour of an F-Curve updates in realtime. --- source/blender/editors/armature/armature_ops.c | 2 +- source/blender/editors/gpencil/gpencil_paint.c | 27 +++++++++++++------------- source/blender/makesrna/intern/rna_fcurve.c | 7 ++++++- 3 files changed, 21 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index d1c50439c01..7caadf532e5 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -162,7 +162,7 @@ void ED_operatormacros_armature(void) wmOperatorType *ot; wmOperatorTypeMacro *otmacro; - ot= WM_operatortype_append_macro("ARMATURE_OT_duplicate_move", "Add Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); + ot= WM_operatortype_append_macro("ARMATURE_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "ARMATURE_OT_duplicate"); otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index dce49cc4845..3f9e3e04411 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -151,11 +151,11 @@ static int gpencil_draw_poll (bContext *C) return (gpencil_data_get_pointers(C, NULL) != NULL); } -static int gpencil_project_check(tGPsdata *p) +/* check if projecting strokes into 3d-geometry in the 3D-View */ +static int gpencil_project_check (tGPsdata *p) { bGPdata *gpd= p->gpd; - - /* in 3d-space - pt->x/y/z are 3 side-by-side floats */ + if( (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->scene->toolsettings->snap_mode==SCE_SNAP_MODE_FACE) && (p->scene->toolsettings->snap_flag & SCE_SNAP_PROJECT) ) @@ -227,12 +227,14 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[]) /* in 3d-space - pt->x/y/z are 3 side-by-side floats */ if (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) { if(gpencil_project_check(p) && (view_autodist_simple(p->ar, mval, out))) { - /* pass */ + /* projecting onto 3D-Geometry + * - nothing more needs to be done here, since view_autodist_simple() has already done it + */ } else { const short mx=mval[0], my=mval[1]; float rvec[3], dvec[3]; - + /* Current method just converts each point in screen-coordinates to * 3D-coordinates using the 3D-cursor as reference. In general, this * works OK, but it could of course be improved. @@ -241,9 +243,9 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[]) * - investigate using nearest point(s) on a previous stroke as * reference point instead or as offset, for easier stroke matching */ - + gp_get_3d_reference(p, rvec); - + /* method taken from editview.c - mouse_cursor() */ project_short_noclip(p->ar, rvec, mval); window_to_3d_delta(p->ar, dvec, mval[0]-mx, mval[1]-my); @@ -1136,6 +1138,8 @@ static void gpencil_draw_exit (bContext *C, wmOperator *op) /* cleanup */ if(gpencil_project_check(p)) { View3D *v3d= p->sa->spacedata.first; + + /* need to restore the original projection settings before packing up */ view3d_operator_needs_opengl(C); view_autodist_init(p->scene, p->ar, v3d); } @@ -1206,8 +1210,8 @@ static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *even { tGPsdata *p= op->customdata; ARegion *ar= p->ar; - //PointerRNA itemptr; - //float mousef[2]; + PointerRNA itemptr; + float mousef[2]; int tablet=0; /* convert from window-space to area-space mouse coordintes */ @@ -1242,7 +1246,6 @@ static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *even return; } -#if 0 // NOTE: disabled for now, since creating this data is currently useless anyways (and slows things down) /* fill in stroke data (not actually used directly by gpencil_draw_apply) */ RNA_collection_add(op->ptr, "stroke", &itemptr); @@ -1250,7 +1253,6 @@ static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *even mousef[1]= p->mval[1]; RNA_float_set_array(&itemptr, "mouse", mousef); RNA_float_set(&itemptr, "pressure", p->pressure); -#endif /* apply the current latest drawing point */ gpencil_draw_apply(C, op, p); @@ -1261,7 +1263,7 @@ static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *even /* ------------------------------- */ -/* operator 'redo' (i.e. after changing some properties) */ +/* operator 'redo' (i.e. after changing some properties, but also for repeat last) */ static int gpencil_draw_exec (bContext *C, wmOperator *op) { tGPsdata *p = NULL; @@ -1462,6 +1464,5 @@ void GPENCIL_OT_draw (wmOperatorType *ot) /* settings for drawing */ RNA_def_enum(ot->srna, "mode", prop_gpencil_drawmodes, 0, "Mode", "Way to intepret mouse movements."); - // xxx the stuff below is used only for redo operator, but is not really working RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", ""); } diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 88dfe358f98..fbf4a8b41c5 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -862,7 +862,7 @@ static void rna_def_fcurve_modifiers(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_property_struct_type(prop, "FModifier"); RNA_def_property_pointer_funcs(prop, "rna_FCurve_active_modifier_get", "rna_FCurve_active_modifier_set", NULL); RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Active fcurve modifier", "Active fcurve modifier."); + RNA_def_property_ui_text(prop, "Active F-Curve Modifier", "Active F-Curve Modifier."); /* Constraint collection */ func= RNA_def_function(srna, "new", "rna_FCurve_modifiers_new"); @@ -910,6 +910,7 @@ static void rna_def_fcurve(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "extend"); RNA_def_property_enum_items(prop, prop_mode_extend_items); RNA_def_property_ui_text(prop, "Extrapolation", ""); + RNA_def_property_update(prop, NC_ANIMATION, NULL); // XXX need an update callback for this so that animation gets evaluated /* Pointers */ prop= RNA_def_property(srna, "driver", PROP_POINTER, PROP_NONE); @@ -920,18 +921,22 @@ static void rna_def_fcurve(BlenderRNA *brna) prop= RNA_def_property(srna, "rna_path", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, "rna_FCurve_RnaPath_get", "rna_FCurve_RnaPath_length", "rna_FCurve_RnaPath_set"); RNA_def_property_ui_text(prop, "RNA Path", "RNA Path to property affected by F-Curve."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); // XXX need an update callback for this to that animation gets evaluated prop= RNA_def_property(srna, "array_index", PROP_INT, PROP_NONE); RNA_def_property_ui_text(prop, "RNA Array Index", "Index to the specific property affected by F-Curve if applicable."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); // XXX need an update callback for this so that animation gets evaluated /* Color */ prop= RNA_def_property(srna, "color_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, prop_mode_color_items); RNA_def_property_ui_text(prop, "Color Mode", "Method used to determine color of F-Curve in Graph Editor."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Color", "Color of the F-Curve in the Graph Editor."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* Collections */ prop= RNA_def_property(srna, "sampled_points", PROP_COLLECTION, PROP_NONE); -- cgit v1.2.3 From e5260470615635600b2cea2ff7f707453a21502e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Nov 2009 10:21:42 +0000 Subject: retopo: use a smaller scale for faces that are modeled where 1.0==1m, will eventually try to use a method that doesnt depend on scale like this grease pencil point.co wasnt a vector when it should be --- source/blender/makesrna/intern/rna_gpencil.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 87900c943a9..129fad4e98c 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -77,7 +77,7 @@ static void rna_def_gpencil_stroke_point(BlenderRNA *brna) RNA_def_struct_sdna(srna, "bGPDspoint"); RNA_def_struct_ui_text(srna, "Grease Pencil Stroke Point", "Data point for freehand stroke curve."); - prop= RNA_def_property(srna, "co", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "co", PROP_FLOAT, PROP_XYZ); RNA_def_property_float_sdna(prop, NULL, "x"); RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Coordinates", ""); -- cgit v1.2.3 From a2d757dc7d12ee6e58c853738a6a9a934da5b357 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 30 Nov 2009 11:10:03 +0000 Subject: Durian Requests for Graph Editor Visibility Toggles (2): Improved the hotkeys for toggling the visibility of channels in the keys area for the Graph Editor. * VKEY - this is now used for making only the selected channels visible, hiding everything else * Shift-VKEY - the old toggling behaviour In addition to this, I've made these toggling operators flush the visibility flags up/down the hierarchy, just like clicking on the channels manually do. There are still a few minor oddities to iron out, but it should be better than before. Also, fixed a bug with these toggling operators introduced during my earlier commit to make filtering work ok. It's always tricky getting these layers of checks just right, so hopefully nothing breaks now again... --- .../editors/animation/anim_channels_defines.c | 92 +--------- .../blender/editors/animation/anim_channels_edit.c | 190 ++++++++++++++++++++- source/blender/editors/animation/anim_filter.c | 10 +- source/blender/editors/include/ED_anim_api.h | 11 ++ 4 files changed, 210 insertions(+), 93 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 24a8fb445c7..c3044e03a2f 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -2340,13 +2340,10 @@ static void achannel_setting_widget_cb(bContext *C, void *poin, void *poin2) static void achannel_setting_visible_widget_cb(bContext *C, void *ale_npoin, void *dummy_poin) { bAnimListElem *ale_setting= (bAnimListElem *)ale_npoin; - int prevLevel=0, matchLevel=0; - short vizOn = 0; - bAnimContext ac; ListBase anim_data = {NULL, NULL}; - bAnimListElem *ale, *match=NULL; int filter; + short vizOn = 0; /* send notifiers before doing anything else... */ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); @@ -2374,91 +2371,8 @@ static void achannel_setting_visible_widget_cb(bContext *C, void *ale_npoin, voi filter= ANIMFILTER_CHANNELS; ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); - /* find the channel that got changed */ - for (ale= anim_data.first; ale; ale= ale->next) { - /* compare data, and type as main way of identifying the channel */ - if ((ale->data == ale_setting->data) && (ale->type == ale_setting->type)) { - /* we also have to check the ID, this is assigned to, since a block may have multiple users */ - // TODO: is the owner-data more revealing? - if (ale->id == ale_setting->id) { - match= ale; - break; - } - } - } - if (match == NULL) { - printf("ERROR: no channel matching the one changed was found \n"); - BLI_freelistN(&anim_data); - return; - } - else { - bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale_setting); - - /* get the level of the channel that was affected - * - we define the level as simply being the offset for the start of the channel - */ - matchLevel= (acf->get_offset)? acf->get_offset(&ac, ale_setting) : 0; - } - - /* flush up? - * - only flush up if the current state is now enabled - * (otherwise, it's too much work to force the parents to be inactive too) - */ - if (vizOn) { - /* go backwards in the list, until the highest-ranking element (by indention has been covered) */ - for (ale= match->prev; ale; ale= ale->prev) { - bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale); - int level; - - /* get the level of the current channel traversed - * - we define the level as simply being the offset for the start of the channel - */ - level= (acf->get_offset)? acf->get_offset(&ac, ale) : 0; - - /* if the level is 'less than' (i.e. more important) the previous channel, - * flush the new status... - */ - if (level < matchLevel) - ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, vizOn); - /* however, if the level is 'greater than' (i.e. less important than the previous channel, - * stop searching, since we've already reached the bottom of another hierarchy - */ - else if (level > matchLevel) - break; - - /* store this level as the 'old' level now */ - prevLevel= level; - } - } - - /* flush down (always) */ - { - /* go forwards in the list, until the lowest-ranking element (by indention has been covered) */ - for (ale= match->next; ale; ale= ale->next) { - bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale); - int level; - - /* get the level of the current channel traversed - * - we define the level as simply being the offset for the start of the channel - */ - level= (acf->get_offset)? acf->get_offset(&ac, ale) : 0; - - /* if the level is 'greater than' (i.e. less important) the channel that was changed, - * flush the new status... - */ - if (level > matchLevel) - ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, vizOn); - /* however, if the level is 'less than or equal to' the channel that was changed, - * (i.e. the current channel is as important if not more important than the changed channel) - * then we should stop, since we've found the last one of the children we should flush - */ - else - break; - - /* store this level as the 'old' level now */ - prevLevel= level; - } - } + /* call API method to flush the setting */ + ANIM_visibility_flush_anim_channels(&ac, &anim_data, ale_setting, vizOn); /* free temp data */ BLI_freelistN(&anim_data); diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 01ab7bd530c..e4ce26b6156 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -352,6 +352,106 @@ void ANIM_deselect_anim_channels (void *data, short datatype, short test, short BLI_freelistN(&anim_data); } +/* Flush visibility (for Graph Editor) changes up/down hierarchy for changes in the given setting + * - anim_data: list of the all the anim channels that can be chosen + * -> filtered using ANIMFILTER_CHANNELS only, since if we took VISIBLE too, + * then the channels under closed expanders get ignored... + * - ale_setting: the anim channel (not in the anim_data list directly, though occuring there) + * with the new state of the setting that we want flushed up/down the hierarchy + * - vizOn: whether the visibility setting has been enabled or disabled + */ +void ANIM_visibility_flush_anim_channels (bAnimContext *ac, ListBase *anim_data, bAnimListElem *ale_setting, short vizOn) +{ + bAnimListElem *ale, *match=NULL; + int prevLevel=0, matchLevel=0; + + /* find the channel that got changed */ + for (ale= anim_data->first; ale; ale= ale->next) { + /* compare data, and type as main way of identifying the channel */ + if ((ale->data == ale_setting->data) && (ale->type == ale_setting->type)) { + /* we also have to check the ID, this is assigned to, since a block may have multiple users */ + // TODO: is the owner-data more revealing? + if (ale->id == ale_setting->id) { + match= ale; + break; + } + } + } + if (match == NULL) { + printf("ERROR: no channel matching the one changed was found \n"); + return; + } + else { + bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale_setting); + + /* get the level of the channel that was affected + * - we define the level as simply being the offset for the start of the channel + */ + matchLevel= (acf->get_offset)? acf->get_offset(ac, ale_setting) : 0; + } + + /* flush up? + * - only flush up if the current state is now enabled + * (otherwise, it's too much work to force the parents to be inactive too) + */ + if (vizOn) { + /* go backwards in the list, until the highest-ranking element (by indention has been covered) */ + for (ale= match->prev; ale; ale= ale->prev) { + bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale); + int level; + + /* get the level of the current channel traversed + * - we define the level as simply being the offset for the start of the channel + */ + level= (acf->get_offset)? acf->get_offset(ac, ale) : 0; + + /* if the level is 'less than' (i.e. more important) the level we're matching + * but also 'less than' the level just tried (i.e. only the 1st group above grouped F-Curves, + * when toggling visibility of F-Curves, gets flushed), flush the new status... + */ + if (level < prevLevel) + ANIM_channel_setting_set(ac, ale, ACHANNEL_SETTING_VISIBLE, vizOn); + /* however, if the level is 'greater than' (i.e. less important than the previous channel, + * stop searching, since we've already reached the bottom of another hierarchy + */ + else if (level > matchLevel) + break; + + /* store this level as the 'old' level now */ + prevLevel= level; + } + } + + /* flush down (always) */ + { + /* go forwards in the list, until the lowest-ranking element (by indention has been covered) */ + for (ale= match->next; ale; ale= ale->next) { + bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale); + int level; + + /* get the level of the current channel traversed + * - we define the level as simply being the offset for the start of the channel + */ + level= (acf->get_offset)? acf->get_offset(ac, ale) : 0; + + /* if the level is 'greater than' (i.e. less important) the channel that was changed, + * flush the new status... + */ + if (level > matchLevel) + ANIM_channel_setting_set(ac, ale, ACHANNEL_SETTING_VISIBLE, vizOn); + /* however, if the level is 'less than or equal to' the channel that was changed, + * (i.e. the current channel is as important if not more important than the changed channel) + * then we should stop, since we've found the last one of the children we should flush + */ + else + break; + + /* store this level as the 'old' level now */ + prevLevel= level; + } + } +} + /* ************************************************************************** */ /* OPERATORS */ @@ -895,12 +995,87 @@ void ANIM_OT_channels_delete (wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/* ******************** Set Channel Visibility Operator *********************** */ +/* NOTE: this operator is only valid in the Graph Editor channels region */ + +static int animchannels_visibility_set_exec(bContext *C, wmOperator *op) +{ + bAnimContext ac; + ListBase anim_data = {NULL, NULL}; + ListBase all_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + /* get editor data */ + if (ANIM_animdata_get_context(C, &ac) == 0) + return OPERATOR_CANCELLED; + + + /* hide all channels not selected */ + filter= (ANIMFILTER_VISIBLE | ANIMFILTER_UNSEL); + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + for (ale= anim_data.first; ale; ale= ale->next) + ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, ACHANNEL_SETFLAG_CLEAR); + + BLI_freelistN(&anim_data); + + + /* get list of all channels that selection may need to be flushed to */ + filter= ANIMFILTER_CHANNELS; + ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype); + + /* make all the selected channels visible */ + filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL); + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + for (ale= anim_data.first; ale; ale= ale->next) { + /* hack: skip object channels for now, since flushing those will always flush everything, but they are always included */ + // TODO: find out why this is the case, and fix that + if (ale->type == ANIMTYPE_OBJECT) + continue; + + /* enable the setting */ + ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, ACHANNEL_SETFLAG_ADD); + + /* now, also flush selection status up/down as appropriate */ + ANIM_visibility_flush_anim_channels(&ac, &all_data, ale, 1); + } + + BLI_freelistN(&anim_data); + BLI_freelistN(&all_data); + + + /* send notifier that things have changed */ + WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); + + return OPERATOR_FINISHED; +} + +void ANIM_OT_channels_visibility_set (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Set Visibility"; + ot->idname= "ANIM_OT_channels_visibility_set"; + ot->description= "Make only the selected animation channels visible in the Graph Editor."; + + /* api callbacks */ + ot->exec= animchannels_visibility_set_exec; + ot->poll= ED_operator_ipo_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + + /* ******************** Toggle Channel Visibility Operator *********************** */ +/* NOTE: this operator is only valid in the Graph Editor channels region */ static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *op) { bAnimContext ac; ListBase anim_data = {NULL, NULL}; + ListBase all_data = {NULL, NULL}; bAnimListElem *ale; int filter; short vis= ACHANNEL_SETFLAG_ADD; @@ -909,6 +1084,10 @@ static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *op) if (ANIM_animdata_get_context(C, &ac) == 0) return OPERATOR_CANCELLED; + /* get list of all channels that selection may need to be flushed to */ + filter= ANIMFILTER_CHANNELS; + ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype); + /* filter data */ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); @@ -922,14 +1101,19 @@ static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *op) if (ANIM_channel_setting_get(&ac, ale, ACHANNEL_SETTING_VISIBLE)) vis= ACHANNEL_SETFLAG_CLEAR; } - + /* Now set the flags */ for (ale= anim_data.first; ale; ale= ale->next) { + /* change the setting */ ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, vis); + + /* now, also flush selection status up/down as appropriate */ + //ANIM_visibility_flush_anim_channels(&ac, &all_data, ale, (vis == ACHANNEL_SETFLAG_ADD)); } /* cleanup */ BLI_freelistN(&anim_data); + BLI_freelistN(&all_data); /* send notifier that things have changed */ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); @@ -1696,6 +1880,7 @@ void ED_operatortypes_animchannels(void) WM_operatortype_append(ANIM_OT_channels_collapse); WM_operatortype_append(ANIM_OT_channels_visibility_toggle); + WM_operatortype_append(ANIM_OT_channels_visibility_set); } void ED_keymap_animchannels(wmKeyConfig *keyconf) @@ -1742,7 +1927,8 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf) //WM_keymap_add_item(keymap, "ANIM_OT_channels_move_to_bottom", PAGEDOWNKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); /* Graph Editor only */ - WM_keymap_add_item(keymap, "ANIM_OT_channels_visibility_toggle", VKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "ANIM_OT_channels_visibility_set", VKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "ANIM_OT_channels_visibility_toggle", VKEY, KM_PRESS, KM_SHIFT, 0); } /* ************************************************************************** */ diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 6586317b6dc..544157c4030 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -859,10 +859,16 @@ static int animdata_filter_action (ListBase *anim_data, bDopeSheet *ads, bAction /* get the first F-Curve in this group we can start to use, * and if there isn't any F-Curve to start from, then don't * this group at all... + * + * exceptions for when we might not care whether there's anything inside this group or not + * - if we're interested in channels and their selections, in which case group channel should get considered too + * even if all its sub channels are hidden... */ first_fcu = animdata_filter_fcurve_next(ads, agrp->channels.first, agrp, filter_mode, owner_id); - if (first_fcu) { + if ( (filter_mode & (ANIMFILTER_SEL|ANIMFILTER_UNSEL)) || + (first_fcu) ) + { /* add this group as a channel first */ if ((filter_mode & ANIMFILTER_CHANNELS) || !(filter_mode & ANIMFILTER_CURVESONLY)) { /* check if filtering by selection */ @@ -1806,7 +1812,7 @@ static int animdata_filter_dopesheet (ListBase *anim_data, bAnimContext *ac, bDo /* additionally, dopesheet filtering also affects what objects to consider */ if (ads->filterflag) { /* check selection and object type filters */ - if ( (ads->filterflag & ADS_FILTER_ONLYSEL) && !((base->flag & SELECT) || (base == sce->basact)) ) { + if ( (ads->filterflag & ADS_FILTER_ONLYSEL) && !((base->flag & SELECT) /*|| (base == sce->basact)*/) ) { /* only selected should be shown */ continue; } diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 59efa01cc35..8a73e12f39b 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -377,6 +377,17 @@ short ANIM_channel_setting_get(bAnimContext *ac, bAnimListElem *ale, int setting void ANIM_channel_setting_set(bAnimContext *ac, bAnimListElem *ale, int setting, short mode); +/* Flush visibility (for Graph Editor) changes up/down hierarchy for changes in the given setting + * - anim_data: list of the all the anim channels that can be chosen + * -> filtered using ANIMFILTER_CHANNELS only, since if we took VISIBLE too, + * then the channels under closed expanders get ignored... + * - ale_setting: the anim channel (not in the anim_data list directly, though occuring there) + * with the new state of the setting that we want flushed up/down the hierarchy + * - vizOn: whether the visibility setting has been enabled or disabled + */ +void ANIM_visibility_flush_anim_channels(bAnimContext *ac, ListBase *anim_data, bAnimListElem *ale_setting, short vizOn); + + /* Deselect all animation channels */ void ANIM_deselect_anim_channels(void *data, short datatype, short test, short sel); -- cgit v1.2.3 From 679da5eb50651f9000333df424fbcdd73d129fc0 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 30 Nov 2009 11:37:27 +0000 Subject: Durian Graph Editor Request: Only show handles of selected keyframes This option for the Graph Editor means that only the handles for selected keyframes get shown in the view, eliminating clutter. Currently, the selection code isn't aware of this option, so clicking anywhere near where a handle might be may often trigger it to show up. This may/may not be desireable, but we'll see how Lee goes with this first :) --- source/blender/editors/space_graph/graph_draw.c | 46 ++++++++++++++++------- source/blender/editors/space_graph/graph_header.c | 1 + source/blender/makesdna/DNA_space_types.h | 1 + source/blender/makesrna/intern/rna_space.c | 6 +++ 4 files changed, 41 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index 3a7f9024510..9681d20c13b 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -235,7 +235,7 @@ static void draw_fcurve_handle_control (float x, float y, float xscale, float ys } /* helper func - draw handle vertices only for an F-Curve (if it is not protected) */ -static void draw_fcurve_vertices_handles (FCurve *fcu, View2D *v2d, short sel) +static void draw_fcurve_vertices_handles (SpaceIpo *sipo, FCurve *fcu, View2D *v2d, short sel) { BezTriple *bezt= fcu->bezt; BezTriple *prevbezt = NULL; @@ -255,19 +255,24 @@ static void draw_fcurve_vertices_handles (FCurve *fcu, View2D *v2d, short sel) glEnable(GL_BLEND); for (i=0; i < fcu->totvert; i++, prevbezt=bezt, bezt++) { - /* Draw the editmode handels for a bezier curve (others don't have handles) + /* Draw the editmode handles for a bezier curve (others don't have handles) * if their selection status matches the selection status we're drawing for * - first handle only if previous beztriple was bezier-mode * - second handle only if current beztriple is bezier-mode + * + * Also, need to take into account whether the keyframe was selected + * if a Graph Editor option to only show handles of selected keys is on. */ - if ( (!prevbezt && (bezt->ipo==BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo==BEZT_IPO_BEZ)) ) { - if ((bezt->f1 & SELECT) == sel)/* && v2d->cur.xmin < bezt->vec[0][0] < v2d->cur.xmax)*/ - draw_fcurve_handle_control(bezt->vec[0][0], bezt->vec[0][1], xscale, yscale, hsize); - } - - if (bezt->ipo==BEZT_IPO_BEZ) { - if ((bezt->f3 & SELECT) == sel)/* && v2d->cur.xmin < bezt->vec[2][0] < v2d->cur.xmax)*/ - draw_fcurve_handle_control(bezt->vec[2][0], bezt->vec[2][1], xscale, yscale, hsize); + if ( !(sipo->flag & SIPO_SELVHANDLESONLY) || BEZSELECTED(bezt) ) { + if ( (!prevbezt && (bezt->ipo==BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo==BEZT_IPO_BEZ)) ) { + if ((bezt->f1 & SELECT) == sel)/* && v2d->cur.xmin < bezt->vec[0][0] < v2d->cur.xmax)*/ + draw_fcurve_handle_control(bezt->vec[0][0], bezt->vec[0][1], xscale, yscale, hsize); + } + + if (bezt->ipo==BEZT_IPO_BEZ) { + if ((bezt->f3 & SELECT) == sel)/* && v2d->cur.xmin < bezt->vec[2][0] < v2d->cur.xmax)*/ + draw_fcurve_handle_control(bezt->vec[2][0], bezt->vec[2][1], xscale, yscale, hsize); + } } } @@ -313,10 +318,10 @@ void draw_fcurve_vertices (SpaceIpo *sipo, ARegion *ar, FCurve *fcu) (sipo->flag & SIPO_NOHANDLES)==0 && (fcu->totvert > 1)) { set_fcurve_vertex_color(sipo, fcu, 0); - draw_fcurve_vertices_handles(fcu, v2d, 0); + draw_fcurve_vertices_handles(sipo, fcu, v2d, 0); set_fcurve_vertex_color(sipo, fcu, 1); - draw_fcurve_vertices_handles(fcu, v2d, 1); + draw_fcurve_vertices_handles(sipo, fcu, v2d, 1); } /* draw keyframes over the handles */ @@ -347,13 +352,28 @@ static void draw_fcurve_handles (SpaceIpo *sipo, ARegion *ar, FCurve *fcu) */ glBegin(GL_LINES); - /* slightly hacky, but we want to draw unselected points before selected ones */ + /* slightly hacky, but we want to draw unselected points before selected ones + * so that selected points are clearly visible + */ for (sel= 0; sel < 2; sel++) { BezTriple *bezt=fcu->bezt, *prevbezt=NULL; unsigned int *col= (sel)? (nurbcol+4) : (nurbcol); float *fp; + /* if only selected keyframes have handles shown, skip the first round */ + if ((sel == 0) && (sipo->flag & SIPO_SELVHANDLESONLY)) + continue; + for (b= 0; b < fcu->totvert; b++, prevbezt=bezt, bezt++) { + /* if only selected keyframes can get their handles shown, + * check that keyframe is selected + */ + if (sipo->flag & SIPO_SELVHANDLESONLY) { + if (BEZSELECTED(bezt) == 0) + continue; + } + + /* draw handle with appropriate set of colors if selection is ok */ if ((bezt->f2 & SELECT)==sel) { fp= bezt->vec[0]; diff --git a/source/blender/editors/space_graph/graph_header.c b/source/blender/editors/space_graph/graph_header.c index e05e41f1b66..bf8777164c5 100644 --- a/source/blender/editors/space_graph/graph_header.c +++ b/source/blender/editors/space_graph/graph_header.c @@ -91,6 +91,7 @@ static void graph_viewmenu(bContext *C, uiLayout *layout, void *arg_unused) uiItemO(layout, "Show Handles", ICON_CHECKBOX_HLT, "GRAPH_OT_handles_view_toggle"); uiItemR(layout, NULL, 0, &spaceptr, "only_selected_curves_handles", 0); + uiItemR(layout, NULL, 0, &spaceptr, "only_selected_keyframe_handles", 0); if (sipo->flag & SIPO_DRAWTIME) diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index fd2e03e173e..7a76417fe4b 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -726,6 +726,7 @@ enum FileSortTypeE { #define SIPO_DRAWNAMES (1<<6) #define SIPO_SLIDERS (1<<7) #define SIPO_NODRAWCURSOR (1<<8) +#define SIPO_SELVHANDLESONLY (1<<9) /* SpaceIpo->mode (Graph Editor Mode) */ enum { diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index ea695880526..a5c02462ac2 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -93,6 +93,7 @@ static EnumPropertyItem transform_orientation_items[] = { #include "BKE_brush.h" #include "BKE_colortools.h" #include "BKE_context.h" +#include "BKE_depsgraph.h" #include "BKE_paint.h" #include "ED_image.h" @@ -1308,6 +1309,11 @@ static void rna_def_space_graph(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Only Selected Curve Keyframes", "Only keyframes of selected F-Curves are visible and editable."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); + prop= RNA_def_property(srna, "only_selected_keyframe_handles", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SIPO_SELVHANDLESONLY); + RNA_def_property_ui_text(prop, "Only Selected Keyframes Handles", "Only show and edit handles of selected keyframes."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); + /* editing */ prop= RNA_def_property(srna, "automerge_keyframes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NOTRANSKEYCULL); -- cgit v1.2.3 From 0f24af750680f7467433f1522d69a4fcc835fc93 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Nov 2009 12:50:22 +0000 Subject: curve select toggle was broken from recent select operator update --- source/blender/editors/curve/editcurve.c | 80 +++++++++++++++++-------------- source/blender/editors/include/ED_curve.h | 1 + 2 files changed, 46 insertions(+), 35 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index a65e1164a27..a139a75f844 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -381,8 +381,46 @@ void CU_select_all(Object *obedit) ListBase *editnurb= curve_get_editcurve(obedit); if (editnurb) { - selectend_nurb(obedit, FIRST, 0, DESELECT); /* set first control points as unselected */ - select_adjacent_cp(editnurb, 1, 1, DESELECT); /* cascade selection */ + selectend_nurb(obedit, FIRST, 0, SELECT); /* set first control points as unselected */ + select_adjacent_cp(editnurb, 1, 1, SELECT); /* cascade selection */ + } +} + +void CU_select_swap(Object *obedit) +{ + ListBase *editnurb= curve_get_editcurve(obedit); + + if (editnurb) { + Curve *cu= obedit->data; + Nurb *nu; + BPoint *bp; + BezTriple *bezt; + int a; + + for(nu= editnurb->first; nu; nu= nu->next) { + if(nu->type == CU_BEZIER) { + bezt= nu->bezt; + a= nu->pntsu; + while(a--) { + if(bezt->hide==0) { + bezt->f2 ^= SELECT; /* always do the center point */ + if((cu->drawflag & CU_HIDE_HANDLES)==0) { + bezt->f1 ^= SELECT; + bezt->f3 ^= SELECT; + } + } + bezt++; + } + } + else { + bp= nu->bp; + a= nu->pntsu*nu->pntsv; + while(a--) { + swap_selection_bpoint(bp); + bp++; + } + } + } } } @@ -1604,7 +1642,7 @@ static int de_select_all_exec(bContext *C, wmOperator *op) Object *obedit= CTX_data_edit_object(C); ListBase *editnurb= curve_get_editcurve(obedit); int action = RNA_enum_get(op->ptr, "action"); - + if (action == SEL_TOGGLE) { action = SEL_SELECT; if(nurb_has_selected_cps(editnurb)) @@ -1619,39 +1657,8 @@ static int de_select_all_exec(bContext *C, wmOperator *op) CU_deselect_all(obedit); break; case SEL_INVERT: - { - Curve *cu= obedit->data; - Nurb *nu; - BPoint *bp; - BezTriple *bezt; - int a; - - for(nu= editnurb->first; nu; nu= nu->next) { - if(nu->type == CU_BEZIER) { - bezt= nu->bezt; - a= nu->pntsu; - while(a--) { - if(bezt->hide==0) { - bezt->f2 ^= SELECT; /* always do the center point */ - if((cu->drawflag & CU_HIDE_HANDLES)==0) { - bezt->f1 ^= SELECT; - bezt->f3 ^= SELECT; - } - } - bezt++; - } - } - else { - bp= nu->bp; - a= nu->pntsu*nu->pntsv; - while(a--) { - swap_selection_bpoint(bp); - bp++; - } - } - } + CU_select_swap(obedit); break; - } } WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); @@ -1671,6 +1678,9 @@ void CURVE_OT_select_all(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* properties */ + WM_operator_properties_select_all(ot); } /********************** hide operator *********************/ diff --git a/source/blender/editors/include/ED_curve.h b/source/blender/editors/include/ED_curve.h index 3166f77815c..0cfa743b0fa 100644 --- a/source/blender/editors/include/ED_curve.h +++ b/source/blender/editors/include/ED_curve.h @@ -45,6 +45,7 @@ void ED_keymap_curve (struct wmKeyConfig *keyconf); /* editcurve.c */ void CU_deselect_all(struct Object *obedit); void CU_select_all(struct Object *obedit); +void CU_select_swap(struct Object *obedit); void undo_push_curve (struct bContext *C, char *name); -- cgit v1.2.3 From ab4a141560a221860cfce00c878d8fd0cff47b9c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Nov 2009 13:58:27 +0000 Subject: bugfix [#20083] Wrong position of splash screen on dualhead --- source/blender/windowmanager/intern/wm_init_exit.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index d5fe9d324c4..d62ed7dd13a 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -160,7 +160,11 @@ void WM_init_splash(bContext *C) wmWindow *prevwin= CTX_wm_window(C); if(wm->windows.first) { - CTX_wm_window_set(C, wm->windows.first); + CTX_wm_window_set(C, wm->windows.first); + + /* needed to get the right screen size for centering the splash */ + wm_window_process_events(C); + WM_operator_name_call(C, "WM_OT_splash", WM_OP_INVOKE_DEFAULT, NULL); CTX_wm_window_set(C, prevwin); } -- cgit v1.2.3 From b911d83091f607f56f34b0f4e72655f2b6ebbc6b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Nov 2009 14:10:46 +0000 Subject: better not process events early, could cause troubles later. added a function - wm_window_get_size_ghost(), which looks into the ghost window directly so events dont need processing first. --- source/blender/editors/interface/interface.c | 6 +++++- source/blender/windowmanager/intern/wm_init_exit.c | 4 ---- source/blender/windowmanager/intern/wm_window.c | 9 +++++++++ source/blender/windowmanager/wm_window.h | 1 + 4 files changed, 15 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 23ad50d448b..70bef5534a1 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -320,7 +320,11 @@ static void ui_centered_bounds_block(const bContext *C, uiBlock *block) int startx, starty; int width, height; - wm_window_get_size(window, &xmax, &ymax); + /* note: this is used for the splash where window bounds event has not been + * updated by ghost, get the window bounds from ghost directly */ + + // wm_window_get_size(window, &xmax, &ymax); + wm_window_get_size_ghost(window, &xmax, &ymax); ui_bounds_block(block); diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index d62ed7dd13a..09eecf2f425 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -161,10 +161,6 @@ void WM_init_splash(bContext *C) if(wm->windows.first) { CTX_wm_window_set(C, wm->windows.first); - - /* needed to get the right screen size for centering the splash */ - wm_window_process_events(C); - WM_operator_name_call(C, "WM_OT_splash", WM_OP_INVOKE_DEFAULT, NULL); CTX_wm_window_set(C, prevwin); } diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 78d70c96ad6..75325a1d9f9 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -936,6 +936,15 @@ void wm_window_get_size(wmWindow *win, int *width_r, int *height_r) *height_r= win->sizey; } +/* exceptional case: - splash is called before events are processed + * this means we dont actually know the window size so get this from GHOST */ +void wm_window_get_size_ghost(wmWindow *win, int *width_r, int *height_r) +{ + GHOST_RectangleHandle bounds= GHOST_GetClientBounds(win->ghostwin); + *width_r= GHOST_GetWidthRectangle(bounds); + *height_r= GHOST_GetHeightRectangle(bounds); +} + void wm_window_set_size(wmWindow *win, int width, int height) { GHOST_SetClientSize(win->ghostwin, width, height); diff --git a/source/blender/windowmanager/wm_window.h b/source/blender/windowmanager/wm_window.h index f0a2c0ec9a9..4328f915101 100644 --- a/source/blender/windowmanager/wm_window.h +++ b/source/blender/windowmanager/wm_window.h @@ -50,6 +50,7 @@ void wm_window_raise (wmWindow *win); void wm_window_lower (wmWindow *win); void wm_window_set_size (wmWindow *win, int width, int height); void wm_window_get_size (wmWindow *win, int *width_r, int *height_r); +void wm_window_get_size_ghost (wmWindow *win, int *width_r, int *height_r); void wm_window_get_position (wmWindow *win, int *posx_r, int *posy_r); void wm_window_set_title (wmWindow *win, char *title); void wm_window_swap_buffers (wmWindow *win); -- cgit v1.2.3 From e7beae56704c2e25923337354934e193fef42120 Mon Sep 17 00:00:00 2001 From: William Reynish Date: Mon, 30 Nov 2009 14:40:45 +0000 Subject: Rename Centroid to Origin, following discussions on mailing list. --- source/blender/makesrna/intern/rna_constraint.c | 2 +- source/blender/makesrna/intern/rna_curve.c | 4 ++-- source/blender/makesrna/intern/rna_group.c | 2 +- source/blender/makesrna/intern/rna_object.c | 2 +- source/blender/makesrna/intern/rna_space.c | 10 +++++----- source/blender/makesrna/intern/rna_userdef.c | 6 +++--- 6 files changed, 13 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index de306e21756..226554f9ee6 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -813,7 +813,7 @@ static void rna_def_constraint_minmax(BlenderRNA *brna) prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_DISTANCE); RNA_def_property_range(prop, 0.0, 100.f); - RNA_def_property_ui_text(prop, "Offset", "Offset of floor from object center."); + RNA_def_property_ui_text(prop, "Offset", "Offset of floor from object origin."); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); } diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 179bc8bcd7d..2925fe55a56 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -547,13 +547,13 @@ static void rna_def_font(BlenderRNA *brna, StructRNA *srna) prop= RNA_def_property(srna, "offset_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "xof"); RNA_def_property_range(prop, -50.0f, 50.0f); - RNA_def_property_ui_text(prop, "X Offset", "Horizontal offset from the object center"); + RNA_def_property_ui_text(prop, "X Offset", "Horizontal offset from the object origin"); RNA_def_property_update(prop, 0, "rna_Curve_update_data"); prop= RNA_def_property(srna, "offset_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "yof"); RNA_def_property_range(prop, -50.0f, 50.0f); - RNA_def_property_ui_text(prop, "Y Offset", "Vertical offset from the object center"); + RNA_def_property_ui_text(prop, "Y Offset", "Vertical offset from the object origin"); RNA_def_property_update(prop, 0, "rna_Curve_update_data"); prop= RNA_def_property(srna, "ul_position", PROP_FLOAT, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_group.c b/source/blender/makesrna/intern/rna_group.c index a05485986d1..f13eb4fedc1 100644 --- a/source/blender/makesrna/intern/rna_group.c +++ b/source/blender/makesrna/intern/rna_group.c @@ -114,7 +114,7 @@ void RNA_def_group(BlenderRNA *brna) prop= RNA_def_property(srna, "dupli_offset", PROP_FLOAT, PROP_TRANSLATION); RNA_def_property_float_sdna(prop, NULL, "dupli_ofs"); - RNA_def_property_ui_text(prop, "Dupli Offset", "Offset from the center to use when instancing as DupliGroup."); + RNA_def_property_ui_text(prop, "Dupli Offset", "Offset from the origin to use when instancing as DupliGroup."); RNA_def_property_ui_range(prop, -10000.0, 10000.0, 10, 4); prop= RNA_def_property(srna, "layer", PROP_BOOLEAN, PROP_LAYER); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 9b5e0e0a659..c90dc6749c9 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1868,7 +1868,7 @@ static void rna_def_object(BlenderRNA *brna) prop= RNA_def_property(srna, "draw_axis", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_AXIS); - RNA_def_property_ui_text(prop, "Draw Axis", "Displays the object's center and axis"); + RNA_def_property_ui_text(prop, "Draw Axis", "Displays the object's origin and axis"); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); prop= RNA_def_property(srna, "draw_texture_space", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index a5c02462ac2..7d8562e7272 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -632,12 +632,12 @@ static void rna_def_background_image(BlenderRNA *brna) prop= RNA_def_property(srna, "offset_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "xof"); - RNA_def_property_ui_text(prop, "X Offset", "Offsets image horizontally from the view center"); + RNA_def_property_ui_text(prop, "X Offset", "Offsets image horizontally from the world origin"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); prop= RNA_def_property(srna, "offset_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "yof"); - RNA_def_property_ui_text(prop, "Y Offset", "Offsets image vertically from the view center"); + RNA_def_property_ui_text(prop, "Y Offset", "Offsets image vertically from the world origin"); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); prop= RNA_def_property(srna, "size", PROP_FLOAT, PROP_NONE); @@ -669,7 +669,7 @@ static void rna_def_space_3dview(BlenderRNA *brna) static EnumPropertyItem pivot_items[] = { {V3D_CENTER, "BOUNDING_BOX_CENTER", ICON_ROTATE, "Bounding Box Center", ""}, {V3D_CURSOR, "CURSOR", ICON_CURSOR, "3D Cursor", ""}, - {V3D_LOCAL, "INDIVIDUAL_CENTERS", ICON_ROTATECOLLECTION, "Individual Centers", ""}, + {V3D_LOCAL, "INDIVIDUAL_ORIGINS", ICON_ROTATECOLLECTION, "Individual Origins", ""}, {V3D_CENTROID, "MEDIAN_POINT", ICON_ROTATECENTER, "Median Point", ""}, {V3D_ACTIVE, "ACTIVE_ELEMENT", ICON_ROTACTIVE, "Active Element", ""}, {0, NULL, 0, NULL, NULL}}; @@ -770,9 +770,9 @@ static void rna_def_space_3dview(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Outline Selected", "Show an outline highlight around selected objects in non-wireframe views."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); - prop= RNA_def_property(srna, "all_object_centers", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "all_object_origins", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_DRAW_CENTERS); - RNA_def_property_ui_text(prop, "All Object Centers", "Show the object center dot for all (selected and unselected) objects."); + RNA_def_property_ui_text(prop, "All Object Origins", "Show the object origin center dot for all (selected and unselected) objects."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); prop= RNA_def_property(srna, "relationship_lines", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 9f7d897d09c..f3be443ef60 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -1729,7 +1729,7 @@ static void rna_def_userdef_view(BlenderRNA *brna) prop= RNA_def_property(srna, "rotate_around_selection", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_ORBIT_SELECTION); - RNA_def_property_ui_text(prop, "Rotate Around Selection", "Use selection as the orbiting center."); + RNA_def_property_ui_text(prop, "Rotate Around Selection", "Use selection as the pivot point."); /* select with */ @@ -1804,10 +1804,10 @@ static void rna_def_userdef_view(BlenderRNA *brna) RNA_def_property_range(prop, 4, 40); RNA_def_property_ui_text(prop, "Manipulator Hotspot", "Hotspot in pixels for clicking widget handles."); - prop= RNA_def_property(srna, "object_center_size", PROP_INT, PROP_NONE); + prop= RNA_def_property(srna, "object_origin_size", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "obcenter_dia"); RNA_def_property_range(prop, 4, 10); - RNA_def_property_ui_text(prop, "Object Center Size", "Diameter in Pixels for Object/Lamp center display."); + RNA_def_property_ui_text(prop, "Object Origin Size", "Diameter in Pixels for Object/Lamp origin display."); RNA_def_property_update(prop, 0, "rna_userdef_update"); -- cgit v1.2.3 From e31810971476b74cf3413c909c12ffe9b1658150 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 30 Nov 2009 18:06:45 +0000 Subject: * Disabled "Shaded View" again, not working in 2.5 (yet). --- source/blender/makesrna/intern/rna_space.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 7d8562e7272..e7f9a8edcae 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -662,7 +662,7 @@ static void rna_def_space_3dview(BlenderRNA *brna) {OB_BOUNDBOX, "BOUNDBOX", ICON_BBOX, "Bounding Box", "Display the object's local bounding boxes only"}, {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"}, {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display the object solid, lit with default OpenGL lights"}, - {OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, + //{OB_SHADED, "SHADED", ICON_SMOOTH, "Shaded", "Display the object solid, with preview shading interpolated at vertices"}, {OB_TEXTURE, "TEXTURED", ICON_POTATO, "Textured", "Display the object solid, with face-assigned textures"}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From 4a4fff5b213bbd32d5c43d9e0a664b428cd16389 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 30 Nov 2009 18:26:53 +0000 Subject: Cleanup: * Deleted "Add" Prefix for mesh.duplicate_move in Toolbar. * Renamed "duplicate_ipo" property to "duplicate_fcurve" --- source/blender/makesrna/intern/rna_userdef.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index f3be443ef60..278d7855f3a 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -1981,9 +1981,9 @@ static void rna_def_userdef_edit(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "dupflag", USER_DUP_TEX); RNA_def_property_ui_text(prop, "Duplicate Texture", "Causes texture data to be duplicated with the object."); - prop= RNA_def_property(srna, "duplicate_ipo", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "duplicate_fcurve", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "dupflag", USER_DUP_IPO); - RNA_def_property_ui_text(prop, "Duplicate Ipo", "Causes ipo data to be duplicated with the object."); + RNA_def_property_ui_text(prop, "Duplicate F-Curve", "Causes F-curve data to be duplicated with the object."); prop= RNA_def_property(srna, "duplicate_action", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "dupflag", USER_DUP_ACT); -- cgit v1.2.3 From afe475b55b24ffdac9b9401bc81e5522ab901c4c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 30 Nov 2009 18:42:13 +0000 Subject: Approximate AO: Diffuse Bounce Hack This brings back the single bounce indirect diffuse lighting for AAO, it's not integrated well but that will be tackled later as part of shading system refactor and subdivision changes. The caveats are the same as AAO, with one extra thing, the diffuse lighting is sampled once per face, so it will not be accurate unless faces are subdivided. I'm committing this now so we can start testing it for Durian, and since changes need to make it work properly are planned. --- source/blender/makesdna/DNA_world_types.h | 1 + source/blender/makesrna/intern/rna_world.c | 6 + .../blender/render/extern/include/RE_shader_ext.h | 2 +- .../blender/render/intern/include/render_types.h | 3 +- source/blender/render/intern/source/occlusion.c | 221 ++++++++++++++------- source/blender/render/intern/source/shadeoutput.c | 1 + source/blender/render/intern/source/strand.c | 6 +- 7 files changed, 163 insertions(+), 77 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h index 64ff23dd1a8..11ecbf97d97 100644 --- a/source/blender/makesdna/DNA_world_types.h +++ b/source/blender/makesdna/DNA_world_types.h @@ -107,6 +107,7 @@ typedef struct World { short aomode, aosamp, aomix, aocolor; float ao_adapt_thresh, ao_adapt_speed_fac; float ao_approx_error, ao_approx_correction; + float ao_indirect_energy, aopad; short ao_samp_method, ao_gather_method, ao_approx_passes; /* assorted settings (in the middle of ambient occlusion settings for padding reasons) */ diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c index c0c9c1d6568..88992387148 100644 --- a/source/blender/makesrna/intern/rna_world.c +++ b/source/blender/makesrna/intern/rna_world.c @@ -312,6 +312,12 @@ static void rna_def_ambient_occlusion(BlenderRNA *brna) RNA_def_property_range(prop, 0, 10); RNA_def_property_ui_text(prop, "Passes", "Number of preprocessing passes to reduce overocclusion (for Approximate)."); RNA_def_property_update(prop, 0, "rna_World_update"); + + prop= RNA_def_property(srna, "indirect_energy", PROP_FLOAT, PROP_UNSIGNED); + RNA_def_property_float_sdna(prop, NULL, "ao_indirect_energy"); + RNA_def_property_ui_range(prop, 0, 10, 0.1, 3); + RNA_def_property_ui_text(prop, "Indirect", "Use approximate ambient occlusion for indirect diffuse lighting."); + RNA_def_property_update(prop, 0, "rna_World_update"); } static void rna_def_world_mist(BlenderRNA *brna) diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index b36163f57c0..2615be1440a 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -153,7 +153,7 @@ typedef struct ShadeInput float dxstrand, dystrand; /* AO is a pre-process now */ - float ao[3]; + float ao[3], indirect[3]; int xs, ys; /* pixel to be rendered */ int mask; /* subsample mask */ diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index 48bf34d0696..d41851db5ff 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -398,7 +398,8 @@ typedef struct StrandSurface { int (*face)[4]; float (*co)[3]; /* for occlusion caching */ - float (*col)[3]; + float (*ao)[3]; + float (*indirect)[3]; /* for speedvectors */ float (*prevco)[3], (*nextco)[3]; int totvert, totface; diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c index f62668b84c0..90929db2f74 100644 --- a/source/blender/render/intern/source/occlusion.c +++ b/source/blender/render/intern/source/occlusion.c @@ -64,7 +64,7 @@ #define CACHE_STEP 3 typedef struct OcclusionCacheSample { - float co[3], n[3], col[3], intensity, dist2; + float co[3], n[3], ao[3], indirect[3], intensity, dist2; int x, y, filled; } OcclusionCacheSample; @@ -81,7 +81,7 @@ typedef struct OccFace { typedef struct OccNode { float co[3], area; float sh[9], dco; - float occlusion; + float occlusion, rad[3]; int childflag; union { //OccFace face; @@ -97,6 +97,7 @@ typedef struct OcclusionTree { OccFace *face; /* instance and face indices */ float *occlusion; /* occlusion for faces */ + float (*rad)[3]; /* radiance for faces */ OccNode *root; @@ -117,7 +118,8 @@ typedef struct OcclusionTree { typedef struct OcclusionThread { Render *re; StrandSurface *mesh; - float (*facecol)[3]; + float (*faceao)[3]; + float (*faceindirect)[3]; int begin, end; int thread; } OcclusionThread; @@ -132,7 +134,6 @@ typedef struct OcclusionBuildThread { extern Render R; // meh -#if 0 static void occ_shade(ShadeSample *ssamp, ObjectInstanceRen *obi, VlakRen *vlr, float *rad) { ShadeInput *shi= ssamp->shi; @@ -160,7 +161,7 @@ static void occ_shade(ShadeSample *ssamp, ObjectInstanceRen *obi, VlakRen *vlr, shi->co[0]= l*v3[0]+u*v1[0]+v*v2[0]; shi->co[1]= l*v3[1]+u*v1[1]+v*v2[1]; shi->co[2]= l*v3[2]+u*v1[2]+v*v2[2]; - + shade_input_set_triangle_i(shi, obi, vlr, 0, 1, 2); /* set up view vector */ @@ -179,6 +180,8 @@ static void occ_shade(ShadeSample *ssamp, ObjectInstanceRen *obi, VlakRen *vlr, if(shi->flippednor) shade_input_flip_normals(shi); + madd_v3_v3fl(shi->co, shi->vn, 0.0001f); /* ugly.. */ + /* not a pretty solution, but fixes common cases */ if(shi->obr->ob && shi->obr->ob->transflag & OB_NEG_SCALE) { negate_v3(shi->vn); @@ -215,12 +218,11 @@ static void occ_build_shade(Render *re, OcclusionTree *tree) for(a=0; atotface; a++) { obi= &R.objectinstance[tree->face[a].obi]; - vlr= RE_findOrAddVlak(obi->obr, tree->face[a].vlr); + vlr= RE_findOrAddVlak(obi->obr, tree->face[a].facenr); occ_shade(&ssamp, obi, vlr, tree->rad[a]); } } -#endif /* ------------------------- Spherical Harmonics --------------------------- */ @@ -352,17 +354,19 @@ static void occ_face(const OccFace *face, float *co, float *normal, float *area) static void occ_sum_occlusion(OcclusionTree *tree, OccNode *node) { OccNode *child; - float occ, area, totarea; + float occ, area, totarea, rad[3]; int a, b; occ= 0.0f; totarea= 0.0f; + zero_v3(rad); for(b=0; bchildflag & (1<child[b].face; occ_face(&tree->face[a], 0, 0, &area); occ += area*tree->occlusion[a]; + madd_v3_v3fl(rad, tree->rad[a], area); totarea += area; } else if(node->child[b].node) { @@ -370,14 +374,18 @@ static void occ_sum_occlusion(OcclusionTree *tree, OccNode *node) occ_sum_occlusion(tree, child); occ += child->area*child->occlusion; + madd_v3_v3fl(rad, child->rad, child->area); totarea += child->area; } } - if(totarea != 0.0f) + if(totarea != 0.0f) { occ /= totarea; + mul_v3_fl(rad, 1.0f/totarea); + } node->occlusion= occ; + copy_v3_v3(node->rad, rad); } static int occ_find_bbox_axis(OcclusionTree *tree, int begin, int end, float *min, float *max) @@ -656,6 +664,9 @@ static OcclusionTree *occ_tree_build(Render *re) tree->co= MEM_callocN(sizeof(float)*3*totface, "OcclusionCo"); tree->occlusion= MEM_callocN(sizeof(float)*totface, "OcclusionOcclusion"); + if(re->wrld.ao_indirect_energy != 0.0f) + tree->rad= MEM_callocN(sizeof(float)*3*totface, "OcclusionRad"); + /* make array of face pointers */ for(b=0, c=0, obi=re->instancetable.first; obi; obi=obi->next, c++) { obr= obi->obr; @@ -682,12 +693,10 @@ static OcclusionTree *occ_tree_build(Render *re) tree->maxdepth= 1; occ_build_recursive(tree, tree->root, 0, totface, 1); -#if 0 - if(tree->doindirect) { + if(re->wrld.ao_indirect_energy != 0.0f) { occ_build_shade(re, tree); occ_sum_occlusion(tree, tree->root); } -#endif MEM_freeN(tree->co); tree->co= NULL; @@ -710,8 +719,9 @@ static void occ_free_tree(OcclusionTree *tree) if(tree->stack[a]) MEM_freeN(tree->stack[a]); if(tree->occlusion) MEM_freeN(tree->occlusion); - if(tree->face) MEM_freeN(tree->face); if(tree->cache) MEM_freeN(tree->cache); + if(tree->face) MEM_freeN(tree->face); + if(tree->rad) MEM_freeN(tree->rad); MEM_freeN(tree); } } @@ -1171,13 +1181,13 @@ static float occ_form_factor(OccFace *face, float *p, float *n) return contrib; } -static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude, float *pp, float *pn, float *occ, float *bentn) +static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude, float *pp, float *pn, float *occ, float rad[3], float bentn[3]) { OccNode *node, **stack; OccFace *face; - float resultocc, v[3], p[3], n[3], co[3], invd2; + float resultocc, resultrad[3], v[3], p[3], n[3], co[3], invd2; float distfac, fac, error, d2, weight, emitarea; - int b, totstack; + int b, f, totstack; /* init variables */ VECCOPY(p, pp); @@ -1185,12 +1195,13 @@ static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude, float VECADDFAC(p, p, n, 1e-4f); if(bentn) - VECCOPY(bentn, n); + copy_v3_v3(bentn, n); error= tree->error; distfac= tree->distfac; resultocc= 0.0f; + zero_v3(resultrad); /* init stack */ stack= tree->stack[thread]; @@ -1217,6 +1228,10 @@ static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude, float /* accumulate occlusion from spherical harmonics */ invd2 = 1.0f/sqrtf(d2); weight= occ_solid_angle(node, v, d2, invd2, n); + + if(rad) + madd_v3_v3fl(resultrad, node->rad, weight*fac); + weight *= node->occlusion; if(bentn) { @@ -1231,7 +1246,8 @@ static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude, float /* traverse into children */ for(b=0; bchildflag & (1<face+node->child[b].face; + f= node->child[b].face; + face= &tree->face[f]; /* accumulate occlusion with face form factor */ if(!exclude || !(face->obi == exclude->obi && face->facenr == exclude->facenr)) { @@ -1248,7 +1264,11 @@ static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude, float fac= 1.0f; weight= occ_form_factor(face, p, n); - weight *= tree->occlusion[node->child[b].face]; + + if(rad) + madd_v3_v3fl(resultrad, tree->rad[f], weight*fac); + + weight *= tree->occlusion[f]; if(bentn) { invd2= 1.0f/sqrtf(d2); @@ -1269,15 +1289,24 @@ static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude, float } if(occ) *occ= resultocc; + if(rad) copy_v3_v3(rad, resultrad); + /*if(rad && exclude) { + int a; + for(a=0; atotface; a++) + if((tree->face[a].obi == exclude->obi && tree->face[a].facenr == exclude->facenr)) + copy_v3_v3(rad, tree->rad[a]); + }*/ if(bentn) normalize_v3(bentn); } static void occ_compute_passes(Render *re, OcclusionTree *tree, int totpass) { - float *occ, co[3], n[3]; + float *occ, (*rad)[3]= NULL, co[3], n[3]; int pass, i; occ= MEM_callocN(sizeof(float)*tree->totface, "OcclusionPassOcc"); + if(tree->rad) + rad= MEM_callocN(sizeof(float)*3*tree->totface, "OcclusionPassRad"); for(pass=0; passtotface; i++) { @@ -1285,7 +1314,7 @@ static void occ_compute_passes(Render *re, OcclusionTree *tree, int totpass) negate_v3(n); VECADDFAC(co, co, n, 1e-8f); - occ_lookup(tree, 0, &tree->face[i], co, n, &occ[i], NULL); + occ_lookup(tree, 0, &tree->face[i], co, n, &occ[i], NULL, (rad)? rad[i]: NULL); if(re->test_break(re->tbh)) break; } @@ -1297,27 +1326,41 @@ static void occ_compute_passes(Render *re, OcclusionTree *tree, int totpass) tree->occlusion[i] -= occ[i]; //MAX2(1.0f-occ[i], 0.0f); if(tree->occlusion[i] < 0.0f) tree->occlusion[i]= 0.0f; + + if(rad) { + sub_v3_v3(tree->rad[i], rad[i]); + + if(tree->rad[i][0] < 0.0f) + tree->rad[i][0]= 0.0f; + if(tree->rad[i][1] < 0.0f) + tree->rad[i][1]= 0.0f; + if(tree->rad[i][2] < 0.0f) + tree->rad[i][2]= 0.0f; + } } occ_sum_occlusion(tree, tree->root); } MEM_freeN(occ); + if(rad) + MEM_freeN(rad); } -static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude, float *co, float *n, int thread, int onlyshadow, float *skycol) +static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude, float *co, float *n, int thread, int onlyshadow, float *ao, float *indirect) { - float nn[3], bn[3], fac, occ, occlusion, correction; - int aocolor; + float nn[3], bn[3], fac, occ, occlusion, correction, rad[3]; + int aocolor, aorad; aocolor= re->wrld.aocolor; if(onlyshadow) aocolor= WO_AOPLAIN; + aorad= (re->wrld.ao_indirect_energy != 0.0f); VECCOPY(nn, n); negate_v3(nn); - occ_lookup(tree, thread, exclude, co, nn, &occ, (aocolor)? bn: NULL); + occ_lookup(tree, thread, exclude, co, nn, &occ, (aorad)? rad: NULL, (aocolor)? bn: NULL); correction= re->wrld.ao_approx_correction; @@ -1330,9 +1373,9 @@ static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude, f /* sky shading using bent normal */ if(ELEM(aocolor, WO_AOSKYCOL, WO_AOSKYTEX)) { fac= 0.5*(1.0f+bn[0]*re->grvec[0]+ bn[1]*re->grvec[1]+ bn[2]*re->grvec[2]); - skycol[0]= (1.0f-fac)*re->wrld.horr + fac*re->wrld.zenr; - skycol[1]= (1.0f-fac)*re->wrld.horg + fac*re->wrld.zeng; - skycol[2]= (1.0f-fac)*re->wrld.horb + fac*re->wrld.zenb; + ao[0]= (1.0f-fac)*re->wrld.horr + fac*re->wrld.zenr; + ao[1]= (1.0f-fac)*re->wrld.horg + fac*re->wrld.zeng; + ao[2]= (1.0f-fac)*re->wrld.horb + fac*re->wrld.zenb; } #if 0 else { /* WO_AOSKYTEX */ @@ -1343,17 +1386,20 @@ static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude, f dxyview[0]= 1.0f; dxyview[1]= 1.0f; dxyview[2]= 0.0f; - shadeSkyView(skycol, co, bn, dxyview); + shadeSkyView(ao, co, bn, dxyview); } #endif - mul_v3_fl(skycol, occlusion); + mul_v3_fl(ao, occlusion); } else { - skycol[0]= occlusion; - skycol[1]= occlusion; - skycol[2]= occlusion; + ao[0]= occlusion; + ao[1]= occlusion; + ao[2]= occlusion; } + + if(aorad) copy_v3_v3(indirect, rad); + else zero_v3(indirect); } /* ---------------------------- Caching ------------------------------- */ @@ -1374,7 +1420,7 @@ static OcclusionCacheSample *find_occ_sample(OcclusionCache *cache, int x, int y return &cache->sample[y*cache->w + x]; } -static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int y, int thread, float *col) +static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int y, int thread, float *ao, float *indirect) { OcclusionCache *cache; OcclusionCacheSample *samples[4], *sample; @@ -1394,7 +1440,8 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int VECSUB(d, sample->co, co); dist2= INPR(d, d); if(dist2 < 0.5f*sample->dist2 && INPR(sample->n, n) > 0.98f) { - VECCOPY(col, sample->col); + VECCOPY(ao, sample->ao); + VECCOPY(indirect, sample->indirect); return 1; } } @@ -1420,7 +1467,8 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int return 0; /* compute weighted interpolation between samples */ - col[0]= col[1]= col[2]= 0.0f; + zero_v3(ao); + zero_v3(indirect); totw= 0.0f; x1= samples[0]->x; @@ -1446,16 +1494,14 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int w= wb[i]*wn[i]*wz[i]; totw += w; - col[0] += w*samples[i]->col[0]; - col[1] += w*samples[i]->col[1]; - col[2] += w*samples[i]->col[2]; + madd_v3_v3fl(ao, samples[i]->ao, w); + madd_v3_v3fl(indirect, samples[i]->indirect, w); } if(totw >= 0.9f) { totw= 1.0f/totw; - col[0] *= totw; - col[1] *= totw; - col[2] *= totw; + mul_v3_fl(ao, totw); + mul_v3_fl(indirect, totw); return 1; } @@ -1469,7 +1515,7 @@ static void sample_occ_surface(ShadeInput *shi) int *face, *index = RE_strandren_get_face(shi->obr, strand, 0); float w[4], *co1, *co2, *co3, *co4; - if(mesh && mesh->face && mesh->co && mesh->col && index) { + if(mesh && mesh->face && mesh->co && mesh->ao && index) { face= mesh->face[*index]; co1= mesh->co[face[0]]; @@ -1477,19 +1523,27 @@ static void sample_occ_surface(ShadeInput *shi) co3= mesh->co[face[2]]; co4= (face[3])? mesh->co[face[3]]: NULL; - interp_weights_face_v3( w,co1, co2, co3, co4, strand->vert->co); + interp_weights_face_v3(w, co1, co2, co3, co4, strand->vert->co); + + zero_v3(shi->ao); + zero_v3(shi->indirect); - shi->ao[0]= shi->ao[1]= shi->ao[2]= 0.0f; - VECADDFAC(shi->ao, shi->ao, mesh->col[face[0]], w[0]); - VECADDFAC(shi->ao, shi->ao, mesh->col[face[1]], w[1]); - VECADDFAC(shi->ao, shi->ao, mesh->col[face[2]], w[2]); - if(face[3]) - VECADDFAC(shi->ao, shi->ao, mesh->col[face[3]], w[3]); + madd_v3_v3fl(shi->ao, mesh->ao[face[0]], w[0]); + madd_v3_v3fl(shi->indirect, mesh->indirect[face[0]], w[0]); + madd_v3_v3fl(shi->ao, mesh->ao[face[1]], w[1]); + madd_v3_v3fl(shi->indirect, mesh->indirect[face[1]], w[1]); + madd_v3_v3fl(shi->ao, mesh->ao[face[2]], w[2]); + madd_v3_v3fl(shi->indirect, mesh->indirect[face[2]], w[2]); + if(face[3]) { + madd_v3_v3fl(shi->ao, mesh->ao[face[3]], w[3]); + madd_v3_v3fl(shi->indirect, mesh->indirect[face[3]], w[3]); + } } else { shi->ao[0]= 1.0f; shi->ao[1]= 1.0f; shi->ao[2]= 1.0f; + zero_v3(shi->indirect); } } @@ -1500,7 +1554,7 @@ static void *exec_strandsurface_sample(void *data) OcclusionThread *othread= (OcclusionThread*)data; Render *re= othread->re; StrandSurface *mesh= othread->mesh; - float col[3], co[3], n[3], *co1, *co2, *co3, *co4; + float ao[3], indirect[3], co[3], n[3], *co1, *co2, *co3, *co4; int a, *face; for(a=othread->begin; aend; a++) { @@ -1521,8 +1575,9 @@ static void *exec_strandsurface_sample(void *data) } negate_v3(n); - sample_occ_tree(re, re->occlusiontree, NULL, co, n, othread->thread, 0, col); - VECCOPY(othread->facecol[a], col); + sample_occ_tree(re, re->occlusiontree, NULL, co, n, othread->thread, 0, ao, indirect); + VECCOPY(othread->faceao[a], ao); + VECCOPY(othread->faceindirect[a], indirect); } return 0; @@ -1533,7 +1588,7 @@ void make_occ_tree(Render *re) OcclusionThread othreads[BLENDER_MAX_THREADS]; StrandSurface *mesh; ListBase threads; - float col[3], (*facecol)[3]; + float ao[3], indirect[3], (*faceao)[3], (*faceindirect)[3]; int a, totface, totthread, *face, *count; /* ugly, needed for occ_face */ @@ -1549,17 +1604,19 @@ void make_occ_tree(Render *re) occ_compute_passes(re, re->occlusiontree, re->wrld.ao_approx_passes); for(mesh=re->strandsurface.first; mesh; mesh=mesh->next) { - if(!mesh->face || !mesh->co || !mesh->col) + if(!mesh->face || !mesh->co || !mesh->ao) continue; count= MEM_callocN(sizeof(int)*mesh->totvert, "OcclusionCount"); - facecol= MEM_callocN(sizeof(float)*3*mesh->totface, "StrandSurfFaceCol"); + faceao= MEM_callocN(sizeof(float)*3*mesh->totface, "StrandSurfFaceAO"); + faceindirect= MEM_callocN(sizeof(float)*3*mesh->totface, "StrandSurfFaceIndirect"); totthread= (mesh->totface > 10000)? re->r.threads: 1; totface= mesh->totface/totthread; for(a=0; atotface; a++) { face= mesh->face[a]; - VECCOPY(col, facecol[a]); - VECADD(mesh->col[face[0]], mesh->col[face[0]], col); + VECCOPY(ao, faceao[a]); + VECCOPY(indirect, faceindirect[a]); + + VECADD(mesh->ao[face[0]], mesh->ao[face[0]], ao); + VECADD(mesh->indirect[face[0]], mesh->indirect[face[0]], indirect); count[face[0]]++; - VECADD(mesh->col[face[1]], mesh->col[face[1]], col); + VECADD(mesh->ao[face[1]], mesh->ao[face[1]], ao); + VECADD(mesh->indirect[face[1]], mesh->indirect[face[1]], indirect); count[face[1]]++; - VECADD(mesh->col[face[2]], mesh->col[face[2]], col); + VECADD(mesh->ao[face[2]], mesh->ao[face[2]], ao); + VECADD(mesh->indirect[face[2]], mesh->indirect[face[2]], indirect); count[face[2]]++; if(face[3]) { - VECADD(mesh->col[face[3]], mesh->col[face[3]], col); + VECADD(mesh->ao[face[3]], mesh->ao[face[3]], ao); + VECADD(mesh->indirect[face[3]], mesh->indirect[face[3]], indirect); count[face[3]]++; } } - for(a=0; atotvert; a++) - if(count[a]) - mul_v3_fl(mesh->col[a], 1.0f/count[a]); + for(a=0; atotvert; a++) { + if(count[a]) { + mul_v3_fl(mesh->ao[a], 1.0f/count[a]); + mul_v3_fl(mesh->indirect[a], 1.0f/count[a]); + } + } MEM_freeN(count); - MEM_freeN(facecol); + MEM_freeN(faceao); + MEM_freeN(faceindirect); } } } @@ -1626,12 +1693,12 @@ void sample_occ(Render *re, ShadeInput *shi) sample_occ_surface(shi); } /* try to get result from the cache if possible */ - else if(shi->depth!=0 || !sample_occ_cache(tree, shi->co, shi->vno, shi->xs, shi->ys, shi->thread, shi->ao)) { + else if(shi->depth!=0 || !sample_occ_cache(tree, shi->co, shi->vno, shi->xs, shi->ys, shi->thread, shi->ao, shi->indirect)) { /* no luck, let's sample the occlusion */ exclude.obi= shi->obi - re->objectinstance; exclude.facenr= shi->vlr->index; onlyshadow= (shi->mat->mode & MA_ONLYSHADOW); - sample_occ_tree(re, tree, &exclude, shi->co, shi->vno, shi->thread, onlyshadow, shi->ao); + sample_occ_tree(re, tree, &exclude, shi->co, shi->vno, shi->thread, onlyshadow, shi->ao, shi->indirect); /* fill result into sample, each time */ if(tree->cache) { @@ -1641,8 +1708,10 @@ void sample_occ(Render *re, ShadeInput *shi) sample= &cache->sample[(shi->ys-cache->y)*cache->w + (shi->xs-cache->x)]; VECCOPY(sample->co, shi->co); VECCOPY(sample->n, shi->vno); - VECCOPY(sample->col, shi->ao); - sample->intensity= MAX3(sample->col[0], sample->col[1], sample->col[2]); + VECCOPY(sample->ao, shi->ao); + VECCOPY(sample->indirect, shi->indirect); + sample->intensity= MAX3(sample->ao[0], sample->ao[1], sample->ao[2]); + sample->intensity= MAX2(sample->intensity, MAX3(sample->indirect[0], sample->indirect[1], sample->indirect[2])); sample->dist2= INPR(shi->dxco, shi->dxco) + INPR(shi->dyco, shi->dyco); sample->filled= 1; } @@ -1653,6 +1722,10 @@ void sample_occ(Render *re, ShadeInput *shi) shi->ao[0]= 1.0f; shi->ao[1]= 1.0f; shi->ao[2]= 1.0f; + + shi->indirect[0]= 0.0f; + shi->indirect[1]= 0.0f; + shi->indirect[2]= 0.0f; } } @@ -1720,12 +1793,14 @@ void cache_occ_samples(Render *re, RenderPart *pa, ShadeSample *ssamp) onlyshadow= (shi->mat->mode & MA_ONLYSHADOW); exclude.obi= shi->obi - re->objectinstance; exclude.facenr= shi->vlr->index; - sample_occ_tree(re, tree, &exclude, shi->co, shi->vno, shi->thread, onlyshadow, shi->ao); + sample_occ_tree(re, tree, &exclude, shi->co, shi->vno, shi->thread, onlyshadow, shi->ao, shi->indirect); VECCOPY(sample->co, shi->co); VECCOPY(sample->n, shi->vno); - VECCOPY(sample->col, shi->ao); - sample->intensity= MAX3(sample->col[0], sample->col[1], sample->col[2]); + VECCOPY(sample->ao, shi->ao); + VECCOPY(sample->indirect, shi->indirect); + sample->intensity= MAX3(sample->ao[0], sample->ao[1], sample->ao[2]); + sample->intensity= MAX2(sample->intensity, MAX3(sample->indirect[0], sample->indirect[1], sample->indirect[2])); sample->dist2= INPR(shi->dxco, shi->dxco) + INPR(shi->dyco, shi->dyco); sample->x= shi->xs; sample->y= shi->ys; diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c index f167122f497..958a2e34215 100644 --- a/source/blender/render/intern/source/shadeoutput.c +++ b/source/blender/render/intern/source/shadeoutput.c @@ -1041,6 +1041,7 @@ void ambient_occlusion_to_diffuse(ShadeInput *shi, float *diff) } VECMUL(diff, f); + madd_v3_v3fl(diff, shi->indirect, R.wrld.ao_indirect_energy*shi->amb); } else diff[0]= diff[1]= diff[2]= 0.0f; diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c index 47a7c052b18..ecea7360974 100644 --- a/source/blender/render/intern/source/strand.c +++ b/source/blender/render/intern/source/strand.c @@ -959,7 +959,8 @@ StrandSurface *cache_strand_surface(Render *re, ObjectRen *obr, DerivedMesh *dm, mesh->totvert= totvert; mesh->totface= totface; mesh->face= MEM_callocN(sizeof(int)*4*mesh->totface, "StrandSurfFaces"); - mesh->col= MEM_callocN(sizeof(float)*3*mesh->totvert, "StrandSurfCol"); + mesh->ao= MEM_callocN(sizeof(float)*3*mesh->totvert, "StrandSurfAO"); + mesh->indirect= MEM_callocN(sizeof(float)*3*mesh->totvert, "StrandSurfIndirect"); BLI_addtail(&re->strandsurface, mesh); } @@ -997,7 +998,8 @@ void free_strand_surface(Render *re) if(mesh->co) MEM_freeN(mesh->co); if(mesh->prevco) MEM_freeN(mesh->prevco); if(mesh->nextco) MEM_freeN(mesh->nextco); - if(mesh->col) MEM_freeN(mesh->col); + if(mesh->ao) MEM_freeN(mesh->ao); + if(mesh->indirect) MEM_freeN(mesh->indirect); if(mesh->face) MEM_freeN(mesh->face); } -- cgit v1.2.3 From 29f6357ddceb112159e2b2e388924ed3c451f6c0 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 30 Nov 2009 19:43:59 +0000 Subject: Bugfix: PET circle not drawn correctly in edit mode. --- source/blender/editors/transform/transform_constraints.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index f59803924d5..1a810d4adc3 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -668,6 +668,7 @@ void drawPropCircle(const struct bContext *C, TransInfo *t) if (t->flag & T_PROP_EDIT) { RegionView3D *rv3d = CTX_wm_region_view3d(C); float tmat[4][4], imat[4][4]; + float center[3]; UI_ThemeColor(TH_GRID); @@ -684,9 +685,11 @@ void drawPropCircle(const struct bContext *C, TransInfo *t) glPushMatrix(); + VECCOPY(center, t->center); + if((t->spacetype == SPACE_VIEW3D) && t->obedit) { - glMultMatrixf(t->obedit->obmat); /* because t->center is in local space */ + mul_m4_v3(t->obedit->obmat, center); /* because t->center is in local space */ } else if(t->spacetype == SPACE_IMAGE) { @@ -697,7 +700,7 @@ void drawPropCircle(const struct bContext *C, TransInfo *t) } set_inverted_drawing(1); - drawcircball(GL_LINE_LOOP, t->center, t->prop_size, imat); + drawcircball(GL_LINE_LOOP, center, t->prop_size, imat); set_inverted_drawing(0); glPopMatrix(); -- cgit v1.2.3 From 168fe0b4b53b048fa7c125f46112f53670610bd4 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 30 Nov 2009 20:20:00 +0000 Subject: Transform Modal Map: Adding events for X/Y/Z axis and planar constraints (always use the user orientation, not global first) and for turning constraints off. Built-in keys (toggle between global, user and off) are not in the map but can be overridden (any events handled by the modal keymap will not enter the built-in map). --- source/blender/editors/transform/transform.c | 113 +++++++++++++++++++++++++-- 1 file changed, 107 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index ce7076c691f..2e1922d8a07 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -502,14 +502,21 @@ static char *transform_to_undostr(TransInfo *t) /* ************************************************* */ /* NOTE: these defines are saved in keymap files, do not change values but just add new ones */ -#define TFM_MODAL_CANCEL 1 -#define TFM_MODAL_CONFIRM 2 -#define TFM_MODAL_TRANSLATE 3 -#define TFM_MODAL_ROTATE 4 -#define TFM_MODAL_RESIZE 5 +#define TFM_MODAL_CANCEL 1 +#define TFM_MODAL_CONFIRM 2 +#define TFM_MODAL_TRANSLATE 3 +#define TFM_MODAL_ROTATE 4 +#define TFM_MODAL_RESIZE 5 #define TFM_MODAL_SNAP_ON 6 -#define TFM_MODAL_SNAP_OFF 7 +#define TFM_MODAL_SNAP_OFF 7 #define TFM_MODAL_SNAP_TOGGLE 8 +#define TFM_MODAL_AXIS_X 9 +#define TFM_MODAL_AXIS_Y 10 +#define TFM_MODAL_AXIS_Z 11 +#define TFM_MODAL_PLANE_X 12 +#define TFM_MODAL_PLANE_Y 13 +#define TFM_MODAL_PLANE_Z 14 +#define TFM_MODAL_CONS_OFF 15 /* called in transform_ops.c, on each regeneration of keymaps */ void transform_modal_keymap(wmKeyConfig *keyconf) @@ -523,6 +530,13 @@ void transform_modal_keymap(wmKeyConfig *keyconf) {TFM_MODAL_SNAP_ON, "SNAP_ON", 0, "Snap On", ""}, {TFM_MODAL_SNAP_OFF, "SNAP_OFF", 0, "Snap Off", ""}, {TFM_MODAL_SNAP_TOGGLE, "SNAP_TOGGLE", 0, "Snap Toggle", ""}, + {TFM_MODAL_AXIS_X, "AXIS_X", 0, "Orientation X axis", ""}, + {TFM_MODAL_AXIS_Y, "AXIS_Y", 0, "Orientation Y axis", ""}, + {TFM_MODAL_AXIS_Z, "AXIS_Z", 0, "Orientation Z axis", ""}, + {TFM_MODAL_PLANE_X, "PLANE_X", 0, "Orientation X plane", ""}, + {TFM_MODAL_PLANE_Y, "PLANE_Y", 0, "Orientation Y plane", ""}, + {TFM_MODAL_PLANE_Z, "PLANE_Z", 0, "Orientation Z plane", ""}, + {TFM_MODAL_CONS_OFF, "CONS_OFF", 0, "Remove Constraints", ""}, {0, NULL, 0, NULL, NULL}}; wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "Transform Modal Map"); @@ -642,6 +656,93 @@ int transformEvent(TransInfo *t, wmEvent *event) t->modifiers ^= MOD_SNAP; t->redraw = 1; break; + case TFM_MODAL_AXIS_X: + if ((t->flag & T_NO_CONSTRAINT)==0) { + if (cmode == 'X') { + stopConstraint(t); + } + else { + if (t->flag & T_2D_EDIT) { + setConstraint(t, mati, (CON_AXIS0), "along X axis"); + } + else { + setUserConstraint(t, t->current_orientation, (CON_AXIS0), "along %s X"); + } + } + t->redraw = 1; + } + break; + case TFM_MODAL_AXIS_Y: + if ((t->flag & T_NO_CONSTRAINT)==0) { + if (cmode == 'Y') { + stopConstraint(t); + } + else { + if (t->flag & T_2D_EDIT) { + setConstraint(t, mati, (CON_AXIS1), "along Y axis"); + } + else { + setUserConstraint(t, t->current_orientation, (CON_AXIS1), "along %s Y"); + } + } + t->redraw = 1; + } + break; + case TFM_MODAL_AXIS_Z: + if ((t->flag & T_NO_CONSTRAINT)==0) { + if (cmode == 'Z') { + stopConstraint(t); + } + else { + if (t->flag & T_2D_EDIT) { + setConstraint(t, mati, (CON_AXIS0), "along Z axis"); + } + else { + setUserConstraint(t, t->current_orientation, (CON_AXIS2), "along %s Z"); + } + } + t->redraw = 1; + } + break; + case TFM_MODAL_PLANE_X: + if ((t->flag & (T_NO_CONSTRAINT|T_2D_EDIT))== 0) { + if (cmode == 'X') { + stopConstraint(t); + } + else { + setUserConstraint(t, t->current_orientation, (CON_AXIS1|CON_AXIS2), "locking %s X"); + } + t->redraw = 1; + } + break; + case TFM_MODAL_PLANE_Y: + if ((t->flag & (T_NO_CONSTRAINT|T_2D_EDIT))== 0) { + if (cmode == 'Y') { + stopConstraint(t); + } + else { + setUserConstraint(t, t->current_orientation, (CON_AXIS0|CON_AXIS2), "locking %s Y"); + } + t->redraw = 1; + } + break; + case TFM_MODAL_PLANE_Z: + if ((t->flag & (T_NO_CONSTRAINT|T_2D_EDIT))== 0) { + if (cmode == 'Z') { + stopConstraint(t); + } + else { + setUserConstraint(t, t->current_orientation, (CON_AXIS0|CON_AXIS1), "locking %s Z"); + } + t->redraw = 1; + } + break; + case TFM_MODAL_CONS_OFF: + if ((t->flag & T_NO_CONSTRAINT)==0) { + stopConstraint(t); + t->redraw = 1; + } + break; default: handled = 0; break; -- cgit v1.2.3 From 33c444f9651d8b726b6203c36051db21c24829b1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Nov 2009 22:32:04 +0000 Subject: User Script support added back. - the scripts path set in the user preferences or ~/.blender/scripts/ui (io, op, io etc..) will be used to load scripts. - the default home dir part probably only works in *nix os's - Added a missing sync callback to vector.toTuple() --- source/blender/python/generic/vector.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/generic/vector.c b/source/blender/python/generic/vector.c index b8f2ca6f1df..ae2c96fa86a 100644 --- a/source/blender/python/generic/vector.c +++ b/source/blender/python/generic/vector.c @@ -253,6 +253,9 @@ static PyObject *Vector_ToTuple(VectorObject * self, PyObject *value) return NULL; } + if(!BaseMath_ReadCallback(self)) + return NULL; + ret= PyTuple_New(self->size); for(x = 0; x < self->size; x++) { -- cgit v1.2.3 From 9f251ce3016b5b37e294c35f695e2b6345937764 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 1 Dec 2009 18:26:18 +0000 Subject: Additive snap for Transform. Easy snapping between two vertices, in the middle of three faces, ... A to add the current snapping point to the list Alt-A to remove the last one The resulting snapping point is the average of all snap points in the list (and the one under the mouse pointer, if valid). Snapping between two verts is a matter of moving over the first, pressing A, moving over the other, confirming transform. --- source/blender/editors/transform/transform.c | 15 ++++ source/blender/editors/transform/transform.h | 13 ++++ .../blender/editors/transform/transform_generics.c | 2 + source/blender/editors/transform/transform_snap.c | 82 +++++++++++++++++++--- 4 files changed, 102 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 2e1922d8a07..cbcb3953f49 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -517,6 +517,8 @@ static char *transform_to_undostr(TransInfo *t) #define TFM_MODAL_PLANE_Y 13 #define TFM_MODAL_PLANE_Z 14 #define TFM_MODAL_CONS_OFF 15 +#define TFM_MODAL_ADD_SNAP 16 +#define TFM_MODAL_REMOVE_SNAP 17 /* called in transform_ops.c, on each regeneration of keymaps */ void transform_modal_keymap(wmKeyConfig *keyconf) @@ -537,6 +539,8 @@ void transform_modal_keymap(wmKeyConfig *keyconf) {TFM_MODAL_PLANE_Y, "PLANE_Y", 0, "Orientation Y plane", ""}, {TFM_MODAL_PLANE_Z, "PLANE_Z", 0, "Orientation Z plane", ""}, {TFM_MODAL_CONS_OFF, "CONS_OFF", 0, "Remove Constraints", ""}, + {TFM_MODAL_ADD_SNAP, "ADD_SNAP", 0, "Add Snap Point", ""}, + {TFM_MODAL_REMOVE_SNAP, "REMOVE_SNAP", 0, "Remove Last Snap Point", ""}, {0, NULL, 0, NULL, NULL}}; wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "Transform Modal Map"); @@ -558,6 +562,9 @@ void transform_modal_keymap(wmKeyConfig *keyconf) WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_CLICK, KM_ANY, 0, TFM_MODAL_SNAP_TOGGLE); + WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, TFM_MODAL_ADD_SNAP); + WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ALT, 0, TFM_MODAL_REMOVE_SNAP); + /* assign map to operators */ WM_modalkeymap_assign(keymap, "TFM_OT_transform"); WM_modalkeymap_assign(keymap, "TFM_OT_translate"); @@ -743,6 +750,14 @@ int transformEvent(TransInfo *t, wmEvent *event) t->redraw = 1; } break; + case TFM_MODAL_ADD_SNAP: + addSnapPoint(t); + t->redraw = 1; + break; + case TFM_MODAL_REMOVE_SNAP: + removeSnapPoint(t); + t->redraw = 1; + break; default: handled = 0; break; diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 4b7d24dc1fa..1577c05cc88 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -32,6 +32,8 @@ #include "ED_transform.h" +#include "DNA_listBase.h" + #include "BLI_editVert.h" /* ************************** Types ***************************** */ @@ -82,6 +84,11 @@ typedef struct NumInput { Negative : number is negative */ +typedef struct TransSnapPoint { + struct TransSnapPoint *next,*prev; + float co[3]; +} TransSnapPoint; + typedef struct TransSnap { short mode; short modePoint; @@ -95,6 +102,7 @@ typedef struct TransSnap { float snapTarget[3]; /* to this point */ float snapNormal[3]; float snapTangent[3]; + ListBase points; float dist; // Distance from snapPoint to snapTarget double last; void (*applySnap)(struct TransInfo *, float *); @@ -417,6 +425,7 @@ typedef struct TransInfo { #define SNAP_FORCED 1 #define TARGET_INIT 2 #define POINT_INIT 4 +#define MULTI_POINTS 8 /* transsnap->modeTarget */ #define SNAP_CLOSEST 0 @@ -597,6 +606,10 @@ void drawSnapping(const struct bContext *C, TransInfo *t); int usingSnappingNormal(TransInfo *t); int validSnappingNormal(TransInfo *t); +void getSnapPoint(TransInfo *t, float vec[3]); +void addSnapPoint(TransInfo *t); +void removeSnapPoint(TransInfo *t); + /********************** Mouse Input ******************************/ typedef enum { diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 8b7c4b7503b..71a5affb573 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1095,6 +1095,8 @@ void postTrans (TransInfo *t) MEM_freeN(t->data); } + BLI_freelistN(&t->tsnap.points); + if (t->ext) MEM_freeN(t->ext); if (t->data2d) { MEM_freeN(t->data2d); diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index d36b7c9b903..7f1e67b62ac 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -123,9 +123,14 @@ int BIF_snappingSupported(Object *obedit) return status; } +int validSnap(TransInfo *t) { + return (t->tsnap.status & (POINT_INIT|TARGET_INIT)) == (POINT_INIT|TARGET_INIT) || + (t->tsnap.status & (MULTI_POINTS|TARGET_INIT)) == (MULTI_POINTS|TARGET_INIT); +} + void drawSnapping(const struct bContext *C, TransInfo *t) { - if ((t->tsnap.status & (POINT_INIT|TARGET_INIT)) == (POINT_INIT|TARGET_INIT) && + if (validSnap(t) && (t->modifiers & MOD_SNAP)) { @@ -134,6 +139,7 @@ void drawSnapping(const struct bContext *C, TransInfo *t) glColor4ub(col[0], col[1], col[2], 128); if (t->spacetype == SPACE_VIEW3D) { + TransSnapPoint *p; View3D *v3d = CTX_wm_view3d(C); RegionView3D *rv3d = CTX_wm_region_view3d(C); float tmat[4][4], imat[4][4]; @@ -141,14 +147,18 @@ void drawSnapping(const struct bContext *C, TransInfo *t) glDisable(GL_DEPTH_TEST); - size = get_drawsize(t->ar, t->tsnap.snapPoint); - - size *= 0.5f * UI_GetThemeValuef(TH_VERTEX_SIZE); + size = 0.5f * UI_GetThemeValuef(TH_VERTEX_SIZE); copy_m4_m4(tmat, rv3d->viewmat); invert_m4_m4(imat, tmat); - drawcircball(GL_LINE_LOOP, t->tsnap.snapPoint, size, imat); + for (p = t->tsnap.points.first; p; p = p->next) { + drawcircball(GL_LINE_LOOP, p->co, size * get_drawsize(t->ar, p->co), imat); + } + + if (t->tsnap.status & POINT_INIT) { + drawcircball(GL_LINE_LOOP, t->tsnap.snapPoint, size * get_drawsize(t->ar, t->tsnap.snapPoint), imat); + } /* draw normal if needed */ if (usingSnappingNormal(t) && validSnappingNormal(t)) @@ -302,7 +312,7 @@ void applySnapping(TransInfo *t, float *vec) t->tsnap.last = current; } - if ((t->tsnap.status & (POINT_INIT|TARGET_INIT)) == (POINT_INIT|TARGET_INIT)) + if (validSnap(t)) { t->tsnap.applySnap(t, vec); } @@ -331,7 +341,7 @@ int usingSnappingNormal(TransInfo *t) int validSnappingNormal(TransInfo *t) { - if ((t->tsnap.status & (POINT_INIT|TARGET_INIT)) == (POINT_INIT|TARGET_INIT)) + if (validSnap(t)) { if (dot_v3v3(t->tsnap.snapNormal, t->tsnap.snapNormal) > 0) { @@ -502,11 +512,59 @@ void setSnappingCallback(TransInfo *t, short snap_target) } } +void addSnapPoint(TransInfo *t) +{ + if (t->tsnap.status & POINT_INIT) { + TransSnapPoint *p = MEM_callocN(sizeof(TransSnapPoint), "SnapPoint"); + + VECCOPY(p->co, t->tsnap.snapPoint); + + BLI_addtail(&t->tsnap.points, p); + + t->tsnap.status |= MULTI_POINTS; + } +} + +void removeSnapPoint(TransInfo *t) +{ + if (t->tsnap.status & MULTI_POINTS) { + BLI_freelinkN(&t->tsnap.points, t->tsnap.points.last); + + if (t->tsnap.points.first == NULL) + t->tsnap.status &= ~MULTI_POINTS; + } +} + +void getSnapPoint(TransInfo *t, float vec[3]) +{ + if (t->tsnap.points.first) { + TransSnapPoint *p; + int total = 0; + + vec[0] = vec[1] = vec[2] = 0; + + for (p = t->tsnap.points.first; p; p = p->next, total++) { + add_v3_v3(vec, p->co); + } + + if (t->tsnap.status & POINT_INIT) { + add_v3_v3(vec, t->tsnap.snapPoint); + total++; + } + + mul_v3_fl(vec, 1.0f / total); + } else { + VECCOPY(vec, t->tsnap.snapPoint) + } +} + /********************** APPLY **************************/ void ApplySnapTranslation(TransInfo *t, float vec[3]) { - sub_v3_v3v3(vec, t->tsnap.snapPoint, t->tsnap.snapTarget); + float point[3]; + getSnapPoint(t, point); + sub_v3_v3v3(vec, point, t->tsnap.snapTarget); } void ApplySnapRotation(TransInfo *t, float *vec) @@ -515,7 +573,9 @@ void ApplySnapRotation(TransInfo *t, float *vec) *vec = t->tsnap.dist; } else { - *vec = RotationBetween(t, t->tsnap.snapTarget, t->tsnap.snapPoint); + float point[3]; + getSnapPoint(t, point); + *vec = RotationBetween(t, t->tsnap.snapTarget, point); } } @@ -525,7 +585,9 @@ void ApplySnapResize(TransInfo *t, float vec[3]) vec[0] = vec[1] = vec[2] = t->tsnap.dist; } else { - vec[0] = vec[1] = vec[2] = ResizeBetween(t, t->tsnap.snapTarget, t->tsnap.snapPoint); + float point[3]; + getSnapPoint(t, point); + vec[0] = vec[1] = vec[2] = ResizeBetween(t, t->tsnap.snapTarget, point); } } -- cgit v1.2.3 From 9bf3845539175bb03e05b75bc2db7e57e5e3139e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 1 Dec 2009 19:43:09 +0000 Subject: circle select modal operator wasnt returning FINISHED so it wasnt getting an undo push --- source/blender/windowmanager/intern/wm_operators.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index ab4355bc524..793250f390e 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1955,7 +1955,7 @@ int WM_gesture_circle_modal(bContext *C, wmOperator *op, wmEvent *event) case GESTURE_MODAL_CANCEL: case GESTURE_MODAL_CONFIRM: wm_gesture_end(C, op); - return OPERATOR_CANCELLED; + return OPERATOR_FINISHED; /* use finish or we dont get an undo */ } } // // Allow view navigation??? -- cgit v1.2.3 From ce13cded15bb8429d495c3976eeab2e2d46dd104 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Tue, 1 Dec 2009 20:37:26 +0000 Subject: fix for [#19990] file browser crash needed to fix jpg error handling to not return control to the library from jpg_error used as error exit. Needed to add structured exception handling (setjmp/longjmp) - not very nice but needed in this case. (Also recommended in example.c from libjpg and used in gimp ;) ) --- source/blender/imbuf/intern/jpeg.c | 121 +++++++++++++++++++++++++++---------- 1 file changed, 88 insertions(+), 33 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/jpeg.c b/source/blender/imbuf/intern/jpeg.c index 2f721e1d805..2df522ff4a2 100644 --- a/source/blender/imbuf/intern/jpeg.c +++ b/source/blender/imbuf/intern/jpeg.c @@ -32,6 +32,8 @@ /* This little block needed for linking to Blender... */ #include +#include + #include "BLI_blenlib.h" #include "imbuf.h" @@ -41,6 +43,7 @@ #include "IMB_imginfo.h" #include "IMB_jpeg.h" #include "jpeglib.h" +#include "jerror.h" /* the types are from the jpeg lib */ static void jpeg_error (j_common_ptr cinfo); @@ -66,7 +69,6 @@ type 3 is unsupported as of jul 05 2000 Frank. * 4. jmax - no scaling in the components */ -static int jpeg_failed = FALSE; static int jpeg_default_quality; static int ibuf_ftype; @@ -76,15 +78,30 @@ int imb_is_a_jpeg(unsigned char *mem) { return 0; } +//---------------------------------------------------------- +// JPG ERROR HANDLING +//---------------------------------------------------------- + +typedef struct my_error_mgr { + struct jpeg_error_mgr pub; /* "public" fields */ + + jmp_buf setjmp_buffer; /* for return to caller */ +} my_error_mgr; + +typedef my_error_mgr * my_error_ptr; + static void jpeg_error (j_common_ptr cinfo) { + my_error_ptr err = (my_error_ptr)cinfo->err; + /* Always display the message */ (*cinfo->err->output_message) (cinfo); /* Let the memory manager delete any temp files before we die */ jpeg_destroy(cinfo); - jpeg_failed = TRUE; + /* return control to the setjmp point */ + longjmp(err->setjmp_buffer, 1); } //---------------------------------------------------------- @@ -255,7 +272,7 @@ static ImBuf * ibJpegImageFromCinfo(struct jpeg_decompress_struct * cinfo, int f x = cinfo->image_width; y = cinfo->image_height; depth = cinfo->num_components; - + if (cinfo->jpeg_color_space == JCS_YCCK) cinfo->out_color_space = JCS_CMYK; jpeg_start_decompress(cinfo); @@ -407,14 +424,24 @@ next_stamp_marker: ImBuf * imb_ibJpegImageFromFilename (const char * filename, int flags) { struct jpeg_decompress_struct _cinfo, *cinfo = &_cinfo; - struct jpeg_error_mgr jerr; + struct my_error_mgr jerr; FILE * infile; ImBuf * ibuf; if ((infile = fopen(filename, "rb")) == NULL) return 0; - cinfo->err = jpeg_std_error(&jerr); - jerr.error_exit = jpeg_error; + cinfo->err = jpeg_std_error(&jerr.pub); + jerr.pub.error_exit = jpeg_error; + + /* Establish the setjmp return context for my_error_exit to use. */ + if (setjmp(jerr.setjmp_buffer)) { + /* If we get here, the JPEG code has signaled an error. + * We need to clean up the JPEG object, close the input file, and return. + */ + jpeg_destroy_decompress(cinfo); + fclose(infile); + return NULL; + } jpeg_create_decompress(cinfo); jpeg_stdio_src(cinfo, infile); @@ -428,11 +455,20 @@ ImBuf * imb_ibJpegImageFromFilename (const char * filename, int flags) ImBuf * imb_ibJpegImageFromMemory (unsigned char * buffer, int size, int flags) { struct jpeg_decompress_struct _cinfo, *cinfo = &_cinfo; - struct jpeg_error_mgr jerr; + struct my_error_mgr jerr; ImBuf * ibuf; - cinfo->err = jpeg_std_error(&jerr); - jerr.error_exit = jpeg_error; + cinfo->err = jpeg_std_error(&jerr.pub); + jerr.pub.error_exit = jpeg_error; + + /* Establish the setjmp return context for my_error_exit to use. */ + if (setjmp(jerr.setjmp_buffer)) { + /* If we get here, the JPEG code has signaled an error. + * We need to clean up the JPEG object, close the input file, and return. + */ + jpeg_destroy_decompress(cinfo); + return NULL; + } jpeg_create_decompress(cinfo); memory_source(cinfo, buffer, size); @@ -521,11 +557,9 @@ next_stamp_info: } jpeg_write_scanlines(cinfo, row_pointer, 1); - - if (jpeg_failed) break; } - if (jpeg_failed == FALSE) jpeg_finish_compress(cinfo); + jpeg_finish_compress(cinfo); free(row_pointer[0]); } @@ -577,13 +611,24 @@ static int save_stdjpeg(char * name, struct ImBuf * ibuf) { FILE * outfile; struct jpeg_compress_struct _cinfo, *cinfo = &_cinfo; - struct jpeg_error_mgr jerr; + struct my_error_mgr jerr; if ((outfile = fopen(name, "wb")) == NULL) return 0; jpeg_default_quality = 75; - cinfo->err = jpeg_std_error(&jerr); - jerr.error_exit = jpeg_error; + cinfo->err = jpeg_std_error(&jerr.pub); + jerr.pub.error_exit = jpeg_error; + + /* Establish the setjmp return context for jpeg_error to use. */ + if (setjmp(jerr.setjmp_buffer)) { + /* If we get here, the JPEG code has signaled an error. + * We need to clean up the JPEG object, close the input file, and return. + */ + jpeg_destroy_compress(cinfo); + fclose(outfile); + remove(name); + return 0; + } init_jpeg(outfile, cinfo, ibuf); @@ -592,10 +637,6 @@ static int save_stdjpeg(char * name, struct ImBuf * ibuf) fclose(outfile); jpeg_destroy_compress(cinfo); - if (jpeg_failed) { - remove(name); - return 0; - } return 1; } @@ -604,13 +645,24 @@ static int save_vidjpeg(char * name, struct ImBuf * ibuf) { FILE * outfile; struct jpeg_compress_struct _cinfo, *cinfo = &_cinfo; - struct jpeg_error_mgr jerr; + struct my_error_mgr jerr; if ((outfile = fopen(name, "wb")) == NULL) return 0; jpeg_default_quality = 90; - cinfo->err = jpeg_std_error(&jerr); - jerr.error_exit = jpeg_error; + cinfo->err = jpeg_std_error(&jerr.pub); + jerr.pub.error_exit = jpeg_error; + + /* Establish the setjmp return context for jpeg_error to use. */ + if (setjmp(jerr.setjmp_buffer)) { + /* If we get here, the JPEG code has signaled an error. + * We need to clean up the JPEG object, close the input file, and return. + */ + jpeg_destroy_compress(cinfo); + fclose(outfile); + remove(name); + return 0; + } init_jpeg(outfile, cinfo, ibuf); @@ -625,10 +677,6 @@ static int save_vidjpeg(char * name, struct ImBuf * ibuf) fclose(outfile); jpeg_destroy_compress(cinfo); - if (jpeg_failed) { - remove(name); - return 0; - } return 1; } @@ -667,13 +715,24 @@ static int save_maxjpeg(char * name, struct ImBuf * ibuf) { FILE * outfile; struct jpeg_compress_struct _cinfo, *cinfo = &_cinfo; - struct jpeg_error_mgr jerr; + struct my_error_mgr jerr; if ((outfile = fopen(name, "wb")) == NULL) return 0; jpeg_default_quality = 100; - cinfo->err = jpeg_std_error(&jerr); - jerr.error_exit = jpeg_error; + cinfo->err = jpeg_std_error(&jerr.pub); + jerr.pub.error_exit = jpeg_error; + + /* Establish the setjmp return context for jpeg_error to use. */ + if (setjmp(jerr.setjmp_buffer)) { + /* If we get here, the JPEG code has signaled an error. + * We need to clean up the JPEG object, close the input file, and return. + */ + jpeg_destroy_compress(cinfo); + fclose(outfile); + remove(name); + return 0; + } init_jpeg(outfile, cinfo, ibuf); @@ -688,10 +747,6 @@ static int save_maxjpeg(char * name, struct ImBuf * ibuf) fclose(outfile); jpeg_destroy_compress(cinfo); - if (jpeg_failed) { - remove(name); - return 0; - } return 1; } -- cgit v1.2.3 From 5d4b45e2d9513251989fde089f9495e1af900ab2 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 1 Dec 2009 23:55:33 +0000 Subject: * Fix for earlier fix, only check for basis metaball if the object's actually a metaball --- source/blender/render/intern/source/convertblender.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index f9d32f9c541..32c2e18197f 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4501,7 +4501,7 @@ static int allow_render_object(Render *re, Object *ob, int nolamps, int onlysele return 0; /* don't add non-basic meta objects, ends up having renderobjects with no geometry */ - if (ob!=find_basis_mball(re->scene, ob)) + if (ob->type == OB_MBALL && ob!=find_basis_mball(re->scene, ob)) return 0; if(nolamps && (ob->type==OB_LAMP)) -- cgit v1.2.3 From d86a27f7b6d7b226d7369f17df6bcc3f24325e73 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 2 Dec 2009 00:53:33 +0000 Subject: Bugfix: crash when no active object Misc fixes. --- source/blender/editors/transform/transform_conversions.c | 3 --- source/blender/editors/transform/transform_ops.c | 1 + source/blender/editors/transform/transform_snap.c | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 403d8449a67..33e37ec8536 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -5316,9 +5316,6 @@ void createTransData(bContext *C, TransInfo *t) } } else { - // t->flag &= ~T_PROP_EDIT; /* no proportional edit in object mode */ - t->options |= CTX_NO_PET; - createTransObject(C, t); t->flag |= T_OBJECT; diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 1b8b331af62..6ab2982b51e 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -269,6 +269,7 @@ static int transformops_data(bContext *C, wmOperator *op, wmEvent *event) if (op->type->idname == tmode->idname) { mode = tmode->mode; + break; } } diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 7f1e67b62ac..ae28986017f 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -432,7 +432,7 @@ void initSnapping(TransInfo *t, wmOperator *op) } /* Particles edit mode*/ else if (t->tsnap.applySnap != NULL && // A snapping function actually exist - (obedit == NULL && BASACT->object && BASACT->object->mode & OB_MODE_PARTICLE_EDIT )) + (obedit == NULL && BASACT && BASACT->object && BASACT->object->mode & OB_MODE_PARTICLE_EDIT )) { t->tsnap.modeSelect = SNAP_ALL; } -- cgit v1.2.3 From 5a3791ab5b2274fffde961bd01c75bacee74f634 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Wed, 2 Dec 2009 00:57:12 +0000 Subject: Apply patch [#20145] Ghost Win32 roundup patch: Minimum Window Size, Continuous Grab and Drag And Drop This nice patch by Matt D. (matd in #blendercoders) adds three nice features that can be seen already in the other supported OSes: * minimum window size: to prevent some bugs with the window manager of Blender, system windows cannot be resized smaller than the minimum size. * Continuous Grab is finally in Windows! Default settings since alpha 0 already have the feature enabled by default, so grab a new build and enjoy :) * GHOST support for drag and drop added. This prepares Blender for drag and drop from OS -> Blender. Currently not very useful, since wm needs to be readied for that. But it does work (do BF_GHOST_DEBUG=1 build and drag a file onto a Blender window). Thanks Matt D.! --- source/blender/windowmanager/intern/wm_cursors.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c index 6145871f9d4..7decf7b2ed2 100644 --- a/source/blender/windowmanager/intern/wm_cursors.c +++ b/source/blender/windowmanager/intern/wm_cursors.c @@ -172,12 +172,13 @@ void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds) if(hide) mode = GHOST_kGrabHide; else if(wrap) mode = GHOST_kGrabWrap; - if ((G.f & G_DEBUG) == 0) { if (win && win->ghostwin) { const GHOST_TabletData *tabletdata= GHOST_GetTabletData(win->ghostwin); - - if ((tabletdata) && (tabletdata->Active == GHOST_kTabletModeNone)) + // Note: There is no tabletdata on Windows if no tablet device is connected. + if (!tabletdata) + GHOST_SetCursorGrab(win->ghostwin, mode, bounds); + else if (tabletdata->Active == GHOST_kTabletModeNone) GHOST_SetCursorGrab(win->ghostwin, mode, bounds); } } -- cgit v1.2.3 From fa2ec6af38ef2fb451d02deca2e6c1353049c9af Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 2 Dec 2009 04:07:40 +0000 Subject: Restore new snap align icon that was lost in previous changes. --- source/blender/editors/datafiles/blenderbuttons.c | 13082 ++++++++++---------- 1 file changed, 6546 insertions(+), 6536 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/blenderbuttons.c b/source/blender/editors/datafiles/blenderbuttons.c index 4e57645b791..702641f4f99 100644 --- a/source/blender/editors/datafiles/blenderbuttons.c +++ b/source/blender/editors/datafiles/blenderbuttons.c @@ -1,6541 +1,6551 @@ /* DataToC output of file */ -int datatoc_blenderbuttons_size= 209099; +int datatoc_blenderbuttons_size= 209415; char datatoc_blenderbuttons[]= { -137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, - 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 0, 9,112, 72, 89,115, 0, 0, - 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, - 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, - 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142, -128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, - 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, - 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77, -155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, - 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, - 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0, -216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, - 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45, -113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0, -160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171, -112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, - 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125, -254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28, -207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140, -243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, - 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, - 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44, -192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205, -176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, - 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, - 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, - 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, - 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, - 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, - 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17, -249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73, -177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200, -133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52, -229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57, -205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71, -232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25, -199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169, -170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, - 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227, -188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61, -170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, - 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157, -166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58, -245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47, -253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, - 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198, -163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, - 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110, -133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176, -241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186, -125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, - 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130, -203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54, -238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, - 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, - 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, - 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65, -143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97, -139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222, -155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, - 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244, -133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29, -194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185, -132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147, -182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66, -166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239, -159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, - 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, - 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21, -127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150, -170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60, -184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52, -236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251, -109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, - 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123, -172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122, -252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, - 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178, -219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189, -181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22, -221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239, -220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, - 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209, -152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237, -193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152, -243,252, 99, 51, 45,219, 0, 0, 0, 32, 99, 72, 82, 77, 0, 0,122, 37, 0, 0,128,131, 0, 0,249,255, 0, 0,128,233, 0, 0, -117, 48, 0, 0,234, 96, 0, 0, 58,152, 0, 0, 23,111,146, 95,197, 70, 0, 3, 37,246, 73, 68, 65, 84,120,218,236, 93,117,184, - 84, 69, 31,126,231,236,217,222,219, 93,112,131,238, 70,186, 67,105,165,249, 16, 68, 12, 66, 76, 16, 12,148,144, 80, 36, 21,196, - 6, 20, 73, 5, 65, 41,165,187, 59, 37, 47,151,219,189, 29,103,190, 63,238,158,117,239,178,123,119, 47, 92, 16,113,222,231, 57, -207,238,169,247,204,156, 51,241,206,111,126, 51, 67, 40,165, 96, 96, 96, 96, 96, 96, 96, 96, 96, 40,123,112,236, 21, 48, 48, 48, - 48, 48, 48, 48, 48, 60, 34, 66,107,227,198,141, 62,155,192, 8, 33, 29,124,229,180,111,173, 31,117,206, 7, 24,119, 90,134,156, -173,237,156, 31,254, 75,194,217,250, 81,229, 20,227,235, 43,111,105, 56,125, 77, 83,165, 12, 39, 45,235,112, 62, 40,206,178,202, - 71,110,194, 73, 31,192,119,255,240, 95, 18,206,214,143, 26,167,107,250,241,133,183,180,156,190,164,169,123, 8, 39, 45,235,112, - 62, 40,206,251,205, 71, 37,132,147,222,111, 90,242,240,237, 63,196,127, 8,252,131, 18, 89,165, 65,215,174, 93,137, 19, 63,121, - 84, 57,157,223,131,200, 95,150, 97, 45, 67,236, 40,107, 78,151,247, 89, 86,248,176,107,215,174,100,227,198,141, 59, 1,180, 46, -203,184,151,197,119,119,137,107,153,240,150, 86,100,149,150,179,172,210,253,131,230, 44,171,188,228,202, 89, 22,233,222,221,119, -127,128,223,168,172,194, 89, 38,121,233, 65,164,121, 55,233,231,190,121, 93, 57,203, 34, 47,185,114,150, 69,186,127, 24,156,101, -145,151,220,113,150, 69,186,247,244,237,153, 69,235,225, 10, 2,215, 12,222,230, 81, 22, 68, 15, 74,108,250,106,129,121, 20, 56, -203,248, 27,125,104,231, 44,203,214, 77,155,178,250, 70, 15, 34,189, 59,115,150, 21,191, 43, 79, 89,124, 39,119,156,247, 27, 94, - 15,225, 44,243,184,223,111,186,127, 88,156,101,252,141,202, 36, 47,185,112,182, 41,227,198, 64, 27,167,253, 15,203,146,179,172, -242,146,155,112,222,247,119,114,199,121,191,225,245, 16,206, 50,143,123, 89,212, 33, 15,138,247,177,181,104, 61, 72,145,245,160, - 42,181,178,228,126, 16, 86,157, 7,101,121, 43, 43,171,142, 27,222,157,101, 72,183,163,172,195,105, 15, 31,121, 80,214,215, 71, - 29, 44, 47,177,188,244,168,229, 37,119,233,166,107,215,174, 31,110,220,184,241,131, 71,173, 17,237,204, 89, 86,130,200, 77,220, -239, 43, 47,185,222, 91, 22,121,201, 11, 39,121, 16,241, 47,235,252,196,132, 86, 41, 44, 69,101,220, 50, 65, 25, 91, 96, 30, 88, -188,203, 56,156,109, 30,132,133,240, 1,160,204,195,105,111, 41,127,240, 0,226,254,111,121,167, 44, 47,177,188,244,200,229, 37, -151, 52,217,166, 12, 45, 69,101,106,121,118,229, 44,139,103, 56,115,148, 85, 26,125,208,113, 47,203,188,244, 32,190,253,191, 14, -148,210, 7,182, 1,232,192, 56, 25, 39,227,100,156,140,147,113, 50, 78,198,249, 95,221,216,244, 14, 12, 12, 12, 12, 12, 12, 12, - 12, 15, 8,132, 77, 88,202,192,192,192,192,192,192,192,240, 96,224,209, 71, 43, 54, 54,118,131, 90,173,174,232,233,188, 86,171, -189,147,146,146,210,150,189, 66, 6, 6, 6,175, 45, 58, 66, 56,252, 61,202, 89, 0, 64, 41,107,229, 49, 48, 48,252,151,133,150, - 66,161, 72, 58,127,254,124,101, 65, 16, 96,179,217, 96,181, 90, 29,191, 38,147, 9,173, 90,181, 42,181, 35,125, 84, 84,212, 46, -137, 68,146, 80,154,123,108, 54,219,205,212,212,212, 22, 37, 20,224,251, 0, 36, 17, 66,156,143,149,248, 11, 32,197,108, 54,215, - 47,137,147, 16,146,228,202,231,129, 75,252, 95, 34,103, 80, 80,208, 17,158,231,227,220,113,121,250, 47, 8,194,213,244,244,244, -102, 44,153, 62, 28, 68, 69, 69,237,226,121,190,212,233,243,206,157, 59, 30,211,103, 76, 76,204,113,142,227, 98, 74, 65, 41, 17, - 4,225,226,157, 59,119, 90,120, 18, 34, 98,154,247, 34,108,138,253, 39,132, 36, 91,173,214,134,222,242, 81, 73, 92,110,210,104, -137,156,206, 34,139,231,249, 25, 17, 17, 17, 35,116, 58,157, 1, 0,149, 72, 36, 52, 52, 52, 84, 12, 27, 0,192,106,181,102,228, -228,228,212, 98, 41,145,129,129,225, 63, 33,180, 4, 65,224,140, 70, 35, 46, 93,186, 4, 15,229,189,237, 30,158, 87,249,232, 31, - 91, 35,252, 35, 34, 97, 53,155,161, 9, 11,119,112,167,157, 59, 3,171,197, 12,171,201,132,242,141,154,136,149, 24,106,212,168, - 33,241,194, 25, 55,115,230,204, 8,127,127,127, 24, 12, 6, 24, 12, 6, 24,141, 70, 24, 12, 6,152, 76, 38,152, 76, 38,152,205, -102,152,205,102, 88,173, 86, 24,141, 70,108,219,182,205, 91,216,227, 62,250,232,163,136,128,128, 0, 7,159,184,137,156, 34,175, -197, 98,129,193, 96,192,159,127,254, 89, 34, 39,207,243,113, 41, 41, 41, 17, 50,153, 12,148, 82, 8,130,224,206,185,176, 24, 42, - 84,168, 96,102, 73,244,161,162,242, 71,203, 55, 70, 4,170, 20,176, 10, 2,186,213,169,224, 56,113,245,235, 85,160, 86, 27, 4, -171, 21,149, 70, 15, 6,138, 76, 50,168, 94,189,122,137,233,147, 82, 26,255,209,242,141, 65,190,114,102,102,102,234,171, 85,171, -150,130,162,161,207,158, 44, 62,113,122,189, 62, 66, 12,131,171, 32,226, 56,174,216,182,121,243,102,116,235,214,205, 91,220,227, - 94,127,253,245, 8,139,197, 2,147,201, 4,163,209, 8,139,197, 2,171,213,234,216,108, 54,155, 99, 51,153, 76, 56,120,240,160, -175,150,172,153, 29, 59,118, 28,182,113,227, 70,205, 47,191,252,162, 73, 72, 72,128, 76, 38,131, 68, 34,129, 68, 34, 1,199,113, -224,121, 30, 79, 60,241, 4, 97, 73,144,129,129,225, 63, 35,180,140, 70,227,181,122,245,234, 81,251,255, 88,133, 66, 33,115, 41, - 64, 99, 42, 87,174,124,209,245, 62,111, 93,138,254, 17,145,152, 80, 46, 4, 0, 48,241, 70,150,163,130,248,184, 89, 93,199, 53, -147,111,231, 1, 0, 84, 42, 21,136,115, 51,218, 3, 52, 26, 13, 58,118,236, 8,185, 92,142,134, 13, 27, 66, 42,149,186,221,100, - 50, 25,164, 82,169, 47,149, 3,252,252,252, 48,105,210, 36, 81, 36, 65,163, 84,224,149,102, 13,161, 4,197,151,103, 46,195, 36, - 80,240, 60,239,216,124,225,148,201,100, 56,125,250, 52,120,158,135, 68, 34,113,252,138,255,215,175, 95,143, 62,125,250,128,231, -121,168, 84, 42,224, 63, 52,207,200,163,130, 64,149, 2, 67, 22,253, 12, 0,184, 53,103,180,227,219, 29, 28, 57,209,113, 77,252, -139,253, 64, 8,129, 84, 42, 5,199,113,101,198,153,157,157,173, 31, 48, 96,192, 30,127,127,255,205,249,249,249,240, 34,224,112, -235,214, 45,240, 60,239, 49,189,115, 28,135,217,179,103,227,202,149, 43, 62,197,221, 96, 48,224,171,175,190,130,205,102, 43,198, - 43,254,119, 61,230,163,200,154,218,169, 83,167,193, 27, 55,110, 12, 38,132,224,179,207, 62,131, 76, 38, 67,151, 46, 93, 16, 26, - 26,138, 45, 91,182, 64, 38,147, 97,220,184,113, 44,241, 49, 48, 48,148, 4, 41,128,186, 0,194,237,134,158, 2, 0, 65, 78,231, - 51,236,191,225, 78,251,135,221,240, 52,178, 95, 35,158, 23,247, 77, 0,228,110,142,103, 1, 80,217, 55, 35,128,125, 0,106, 58, - 61, 71,188, 15,158,158,203, 3, 69,235, 15, 1,216, 1,160,141, 56,137,222,157, 59,119,158,114,178,172,156,191,120,241, 98, 85, - 81,243,216,187, 16,101, 86,171,181,178,216,157, 40, 90,139, 58,116,232, 80, 98, 11,223,106, 54,223, 37, 64,220,105, 41,119,221, - 21,158, 4,140,217,108, 70,191,126,253,138,190,132,135, 74,199,121,243, 65,187,193,100, 50,129,231,121, 84, 41, 23,142,247, 59, -215, 67, 99,106,129,182,144,192,154,167, 69, 79, 63, 11,206, 87,175,143,197, 55, 51,112, 35,191, 16, 60,207,251,196, 41, 8,130, - 71,145, 37,145, 72,176,104,209, 34, 12, 24, 48, 0, 18,137,196, 39, 62,134,178,135, 85, 16,220,166, 67, 79,105,214,151,239,228, - 11,103,118,118,182,190, 91,183,110, 7, 20, 10,197,146,200,200,200,148,228,228,100,175, 66,203, 85,252,184, 54, 42, 62,253,244, - 83,204,159, 63, 31,109,219,182,245, 41,156, 70,163, 17,132, 16, 44, 94,188,248,174,115, 83,166, 76,185,235,121, 37,113,218, 27, - 72, 92, 76, 76,204,200, 77,155, 54, 5,136,215,134,133,133, 65, 42,149,162, 86,173, 90,240,247,247,199,158, 61,123, 96,179,217, -124,206,151, 12, 12, 12,143, 47,220,105, 17, 39,180,154, 48, 97, 66,195, 25, 51,102, 76,107,218,180,233, 79,251,246,237, 91, 78, - 8,217,224, 84, 38,118,179,151, 61, 27,156,246, 27,185,136, 30, 41,128,112, 66,200, 6,241,122,231,125,167,227, 29, 0,200,197, -253, 9, 19, 38,212,156, 49, 99,198,180,241,227,199,191, 51,125,250,116,217,132, 9, 19,106,207,152, 49, 99,154,248, 28,119,225, -112,103,209, 42,113, 86, 97,177, 27,241,194,133, 11,240,230,191, 74, 41, 45,177,180,212,132,133, 59, 44, 89,147,227, 67, 29,199, - 39, 37,231, 58, 42,176, 5, 13, 42, 66,163,209,160,243,228, 79,124,178, 20,153, 76, 38,164,167,167, 59,172, 12,222, 54, 95, 57, -213, 42, 37,182,189, 94, 11,183,178,228,248,112,127, 54, 54,158,184, 2,169, 84,138, 39,171,215,194, 83, 50,127,188, 23, 47,199, -235,151,175,195,226,163, 79, 47,165,212,173,192, 18,255,139, 93, 40, 76,104,253,115,232, 86,167,130,195,234,116,208,191,189,227, -120, 31,237,105,199, 55,121,115,209,199, 0,128,182,245,159,128, 47,254,220,222, 56,179,178,178,244, 45,218,183,217,105,211,155, -190, 31, 60,120,240,181,237,219,183,171,124,106,222,185, 17, 90,162,213, 86, 20, 89, 60,207,195,100, 50,249, 20,119,147,201,228, - 49,127,200,100,178, 82, 91,180, 0, 64,171,213,154,214,173, 91,135, 5, 11, 22, 32, 52, 52, 20,157, 58,117, 66,116,116, 52, 86, -173, 90, 5, 74, 41, 70,143, 30, 13,149, 74, 37, 90,175, 89, 2,100, 96,248,111,163, 36, 45,162,152, 49, 99,198, 52, 87, 33,227, -188,239, 44,160, 92,196,148,179, 88,171,233,165,254,223,224, 42,158,196,231, 18, 66, 54, 76,159, 62,189,155,151,112,100,120, 18, - 90, 37, 78,223,111, 52, 26,175,213,169, 83,199, 39, 53,161,211,233, 82,189,137, 13,119,173,122,103, 43,129,159,159, 31, 52, 1, -126,224,124, 44,119, 45, 22,139, 67,168,108,221,186, 21, 42,149, 10, 93,186,116,185, 47,139,150,217,108,134, 92, 38, 5, 23, 22, -137, 33,115,182, 35,171, 64,239,168, 96,118, 92,189,134, 99,105,233,120,189,105,123,104, 84,233, 40, 52,153,124,178,188, 9,130, -112,151,200,226,121, 30,253,250,245,115, 88, 19,156,253, 86,192,186, 14,255, 49,184, 75,159,174,199, 5, 23, 75,213,189,112,102, -101,101,233,187,117,235,118,192,166, 55,125,127,251,246,237, 3, 0,148,141, 27, 55, 46,181,208, 18, 5,150, 84, 42,197,236,217, -179, 49,127,254,124,199,121, 95,133,150,213,106, 45, 38,160, 46, 95,190, 92,236, 89,174,194,174,164,110, 83, 74, 41, 37,132, 8, - 0,132,164,164, 36,199, 61, 81, 81, 81, 8, 10, 10,130, 32, 8, 16, 4, 1, 74,165, 18, 42,149, 10, 50,153,140, 37, 58, 6, 6, -134,146,180,136,126,252,248,241,239, 16, 66, 54,216, 45, 75,103, 74, 16, 84,238,208,200, 69,172,101,120, 40,187,186,185, 19, 91, -206,255, 69, 76,152, 48,161,166,155,112, 28,246, 40,180, 92,166,221, 47, 6,231,110,196,178,170,196, 74,170,200,252,130, 2,160, -210,104, 32,145,112, 32,132, 80,111, 92,102,179,217, 81,240,143, 24, 49,162, 68,191, 21, 95,253,169,204,102, 51, 56, 94,130, 59, - 81,137,176,113,187, 29,247,138, 27,199, 75,113, 35,170, 42, 36, 23,142, 67,234, 99,133,235,106,209, 26, 61,122, 52,190,250,234, - 43,112, 28,231,120, 39, 60,207,163, 82,165, 74,184,118,237, 26,203,113,143,136,200,242,116,220,102, 19,124,182,194,184,187, 46, - 43, 43, 75,223,183,111,223,157,121,121,121,223,215,168, 81,227, 50,138,166, 63,224,124,229,227,121,190,152,192, 18, 69,214,188, -121,243,138,137, 34,139,197,226, 83, 67,192, 98,177,220, 37,120,102,205,154, 85,236, 23, 0,154, 53,107,230,147,101, 24, 0,229, - 56,142,202,100, 50,116,236,216, 17,181,107,215,198, 47,191,252, 2, 65, 16, 48,106,212, 40,168, 84, 42,204,157, 59, 23, 86,171, - 21, 51,103,206,100, 22, 45, 6, 6,134,146,180,136,113,250,244,233,103,166, 79,159,238,176, 44,185, 90,180, 60, 81,218, 69, 85, -184, 40,210, 80,228,107,117,184,132,186,186,155, 39, 1,230,124,108,198,140, 25,211,220,132,195,181,187,242,225,175,117,152,122, -246, 52, 62,105, 94, 15, 64,241,238,194, 69, 79, 84,133,198, 79, 3,141,191, 31,250,174,223, 13, 0,246, 66,127,188, 79, 22, 45, - 81,104,101,101,101,149, 40,178, 74, 99,209,226,228, 60, 86,199,229,128,202,165,224, 77,150, 98, 66, 75,194, 75,113, 43, 52, 17, -156, 84, 6,222,102,245,137,147, 82,122, 87, 87,225,208,161, 67, 65, 8,113,140, 16,171, 83,167,142, 51, 23,171,121, 30,118,250, - 60,242, 53,206,175, 25, 9, 0,104,161,213, 58,190,197, 71,117,254, 30,223, 49,231,244, 78,135,245,113, 50,222,186, 39,206,172, -172, 44,125,227,106, 53, 15,200, 66, 2,191,191,121,243,230, 1, 0, 92,255,254,253,131,234,212,169,227, 83,158, 20, 7, 87,184, -138, 44,103, 75,150,248,107,177, 88,124,138,187,232, 43,229, 13, 98, 55,162,183, 52, 79, 41,165, 33, 33, 33,224, 56, 14, 1, 1, - 1,240,243,243,115,140,184, 85, 42,149, 80,171,213, 14,255, 78, 31,133, 27, 3, 3,195,127, 23,193,162,208,177,139,165, 98,150, - 38, 74,105, 55,103, 49,228,169, 11,209,110,129,218,229,205,176,102, 23,104,110, 33, 90,214, 92,202,228, 13,158, 68, 26, 47, 42, - 72,231,223,232,232,232,223,253,252,252, 18,125,141,125,105, 38, 47,181, 89,204,119, 89,182, 8, 33,240,243,247,131,202, 79, 3, -149,191,159, 71,171, 87, 73, 66, 75,180, 20,137,149,206,146, 37, 75,224,231,231,135,231,158,123,174,212, 62, 90, 14,161, 37,227, -176, 69,241, 39, 36,114,190,152,200,226,121, 30, 18,169, 20,169,126,209,224,164, 82,240, 86,223,172,100,121,121,121,224,121, 30, -239,191,255,190,163, 5,239, 44,178, 74, 19,103,134, 7, 3,106,179,220,101,133,242,100,125,189, 87, 78,209,146, 37, 11, 9,252, -190,106,213,170, 14, 75,150, 90,173, 22, 71,155,122, 5,199,113,110, 69,150,235, 8, 65,158,231,139,210,178,151,209,145,206, 22, -173,233,211,167, 59,120,157, 45, 89, 34, 74,147,143,196,176,238,220,185, 19,199,142, 29,195,136, 17, 35,160, 82,169, 48,127,254, -124, 88,173, 86, 76,153, 50, 5, 42,149, 10,114,185,156, 37, 62, 6, 6,102,205, 42,166, 69, 92,144,225,226, 7, 69, 92, 68, 77, -134, 59,129,229,220, 77,232,244,223,226,134,215,228,210,165,232,122, 92,252,205,154, 62,125,250,118,209,146,229,116,188, 88, 56, -188, 90,180, 20, 10, 69,226,165, 75,151, 28,147,149,150,244,107, 50,153,208,182,109, 91,159, 45, 99,226,168, 67,158,151, 20, 19, - 22,106,127, 63,168, 3,252,161,242,243,115, 21, 28,196, 91, 33, 46,182,136,157,133,214, 7, 31,124, 0,158,231,241,213, 87, 95, - 1, 0,222,122,235, 45,159,125,180, 68, 78,216, 8,146,233, 95,168, 55,167, 15, 76, 63, 88,144,182,247, 36,120,158, 71, 68,147, -167, 32, 52,238, 3,157,202, 15,188,205,234,243,168,195,236,236,108, 92,187,118, 13, 18,137, 4,111,188,241, 70,177,185,142, 92, - 71,178,109,221,186,149, 89,180,254, 9,161, 37, 88,125, 18, 85,165,177, 58, 58,115,138, 62, 89,121,121,121,223,223,188,121,243, - 32, 0,110,240,224,193, 65,106,181, 26,223,124,243,141, 14,128,124,213,170, 85, 42,111,162, 72, 76, 55,222, 68,150, 84, 42, 45, - 74,203,190,196,157, 22,159,178,196,155, 99,188, 47,105, 94, 12, 43, 33, 4, 54,155, 13, 42,149,170,152, 37, 75,169, 84, 66,161, - 80,176,132,199,192,192,224, 13,135, 75,113,109, 35, 39,209,116,248, 30,121, 15,151, 85,192,121, 79, 66,195,104, 52,226,220,185, -115,190,242,248, 60,121,105,185,134, 79, 96,242,237, 60, 16, 66,240,101,179, 26,208, 4,248, 65,173,209,160,247, 47, 59, 29, 5, -247,233,105,111, 65,161,241, 67, 76,203, 78, 62, 21,228, 98,215,161,179,208,202,205,205,133, 84, 42,197,212,169, 83,193,113, 28, -102,206,156,137,216,216, 88,220,185,115, 7,171, 86,173,242,201,162, 37,177, 73, 16,253,108, 53,168,135, 6, 34,224,217, 86, 8, -238,248, 1,110,155,120,236, 51,168,209,202,112, 22,242, 45,243, 96, 18,108, 62,143,192,178, 90,173,216,185,115,167,171,195, 59, - 40,165,142, 89,247, 45, 22, 11,204,102, 51,102,206,156, 9,182, 66,201,195, 71,116,147,209, 8,111,248, 50, 0, 96,253,244,231, - 29,199,223, 63,253,119,250,156,253, 67,209, 2, 0, 85, 19, 58,149,138, 51, 43, 43, 75,255,100,219,102,187, 12,130,244,187, 90, -181,106, 21,179,100, 41,149, 74, 98,223,247, 73, 92,115, 28, 7,137, 68,114, 87,119,161, 39,177,229,139,143,150,213,106,117, 76, - 36, 90,146, 63,227,189, 88,180,158,127,254,121, 68, 71, 71, 59, 44, 89,147, 39, 79,134, 74,165,194,132, 9, 19, 96,177, 88, 48, -111,222, 60,150,248, 24, 24, 24,254, 9, 81,246,192,225,182, 36, 53, 24, 12,215,107,215,174, 13, 15,231, 98,149, 74,165,212,165, -144,142,169, 92,185,242, 69,215, 46, 68, 66, 72, 7, 74,233, 54,119,133, 58, 33, 4,254, 1,254, 80,250,105,160,118,177, 98, 41, -253, 3,160,240,243, 3, 39,147,186,171, 16,238,226, 20,125, 75,156,133,150,184,229,229,229, 65, 42,149, 98,193,130, 5, 8, 8, - 8,128,209,104,244,202, 41, 86, 58, 18,137, 4,186, 91, 5, 56, 63,109, 27,228,202,125,168,216,105, 0,162,165, 42,200,246,172, -133,222,102, 41,113,194, 82,119,156,149, 43, 87,198,196,137, 19,239,154,214,193, 19, 98, 99, 99,189,198,253,126,193, 56,221,115, -150, 52, 42, 86,132, 64,109,238,174,115,203, 41, 90,178, 12,130,244,187,107,215,174,137,150,172, 64,181, 90,141, 47,190,248, 66, - 7,128,155, 50,101,138, 58, 62, 62, 94,226, 75, 90,146, 72, 36,152, 51,103,142, 91,159, 44,119,162,171, 52,249,200,249,222,214, -173, 91,187,157,176,212,157,120,115,199, 41,134, 53, 52, 52,212, 97,201,178,217,108,142,209,134,226,236,243,158, 26, 21, 44,125, - 50, 78,198,249,223,225,124, 92,225,182,150, 79, 73, 73,121,210,211, 13, 21, 43, 86,188,116,233,210,165, 74,226, 82, 28,246,130, - 83,102, 48, 24, 42, 55,107,214,204,171,105, 71, 16, 4, 40, 20, 10, 80, 74,209,110,226, 12, 16, 14,224, 80,188, 18,139,104,222, - 30, 18, 9, 15,161,104,169, 15,175,163, 14,245,122,125,177,202,193,221, 86, 88, 88, 8,163,209,232,243,108,222, 6,131,161,216, - 20, 12,132, 10,184,241,199,202,187, 70, 31,138,155,175,126, 59, 74,165,178, 88,215, 79, 73,240, 54, 39, 25, 67,217, 67, 28,176, - 0, 0, 85,154,117,129, 32,216, 64,109,182, 98,203, 36, 85, 75,124, 18, 2,181,193,108,209,193,104, 52,122, 51, 59,146,204,204, - 76,125,223,190,125,119, 2,248,182,103,207,158, 23, 81, 52,226,133,250,249,249, 41,164, 82,169, 0, 32, 27, 0,205,201,201, 9, -188,125,251,182, 96, 48, 24,202,123, 11,231,198,141, 27,113,238,220, 57,180,108,217,178,216,114, 80,162, 85,212,121,118,119, 95, -210,167,216, 93,238,110, 70,120, 79, 66,206, 87, 72, 36, 18, 4, 6, 6, 66, 38,147, 97,234,212,169,144,201,100, 80,171,213, 0, -128,121,243,230, 57, 38, 95,101, 96, 96, 96,248,207, 8, 45,111,229,102, 9,221,138, 37,118, 33, 90,173,214,228,248,248,248, 82, - 61,204,102,179,165,121, 17,110,201,171, 86,173,146, 57, 91, 33,188,253, 82, 74,211,188, 84,182,201,235,215,175,151,185,179,110, -120, 90, 96,218, 27,167,205,102, 75, 78, 72, 72,240,104, 49,113, 7,139,197,114,155, 37,209,135, 7,155,205, 86, 66,250,124,247, - 94,211,231,229, 42, 85,170,220, 14, 10, 10,250, 45, 50, 50, 50,107,239,222,189,161,141, 26, 53, 10,117,190,166, 81,163, 70,209, - 46,183,153,224,121,157, 67, 16, 66,146,123,246,236,233, 54,205,139,162,201, 77,250, 76,246,150,230, 15, 29, 58, 36,115,190,223, - 19,191, 83, 62, 74,246, 65,184,222,168, 87,175, 30,231,204,227, 41,237, 91, 44,150, 12,150, 10, 25, 24, 24,254,243, 66, 75,175, -215,223,170, 93,187,182,213,195,185,155, 37,221,155,153,153,217,176,172, 35, 96, 54,155,155,253, 27, 56, 51, 50, 50, 26,178,228, -246,104,227, 65,124,163,180,180,180,198,101,205,105,181, 90,203, 60,125, 90, 44,150,102, 15,226,157,102,101,101, 53,101, 41,139, -129,129,129, 9,173, 82,192,215,105, 28, 24, 24, 24, 24, 24, 24, 24, 24,254,235,224,216, 43, 96, 96, 96, 96, 96, 96, 96, 96,120, - 48, 32, 40, 90,165,250, 46,148,102, 52, 1, 33,164, 67,105, 31,236,141,159,113, 50, 78,198,201, 56, 25, 39,227,100,156,143, 31, -167, 55,238,199,110, 52,163, 56,154,234, 65,108, 0, 58, 48, 78,198,201, 56, 25, 39,227,100,156,140,147,113,254, 87, 55,214,117, -200,192,192,192,192,192,192,192,240,128,192,179, 87,240,207,128, 16, 34,161,148,218,202,144, 50, 24,128,167, 5,227, 76, 0,114, -238, 37,152, 0,100,246, 77,156,232,200, 2,192,108,223,124,152,186,126, 18,151,146, 18, 92,147,218,164,141, 40, 33, 82, 65,192, -137,242,229,203, 29, 7,158, 52, 1,128, 95, 84,245,234,126, 26, 85, 7,163,217,148,168,144,202,207,229,106, 11,183, 26,210, 46, - 94,103, 41,132,129,225, 31, 41,151,186, 3,152,100,207,251,211, 41,165, 43,217, 91, 97, 96,120, 64, 66,203,223,223,255, 8,199, -113,113,222,230,231,113,202,160,176,217,108,201,217,217,217, 13,125,204,208, 60,128,190,126,126,126,109,165, 82,105,115, 0,176, - 88, 44,123, 11, 11, 11,183, 3, 88, 69, 41,181,222, 99, 65, 17, 0,160, 31,128, 65,246, 67, 63, 2, 88, 73, 41,205,191, 71,190, -218,129,129,129,107,164, 82, 41,205,204,204,108, 2, 0,161,161,161, 7, 44, 22, 11,201,207,207,239, 77, 41, 61, 85, 74, 62, 78, - 42,149,206,110,217,178,101, 43, 66,200,183,148,210, 5,101,244, 45, 21, 28,199,185, 21, 40,130, 32, 36,220, 3,159, 12, 64,224, -130, 5, 11, 66,151, 45, 91, 86, 47, 57, 57,185, 22, 0,196,197,197,157, 30, 60,120,240,241, 87, 94,121, 37, 11, 64,158, 93,112, -121, 68, 74, 74,112,205,244,212,171, 35,210,210,207,245, 3,128,168,232, 90, 43, 37, 18, 78, 22, 27,123,108,191, 58,108, 80, 88, -149,170, 21, 94,254,233,155, 5,178,132,196,114,248,115,223,177,186,175,188,250, 78, 77,101,100,149, 79,153,216,122,120, 8, 8, - 8, 56,194,113, 92, 92, 73,121,220, 93,158,183,217,108,201, 89, 89, 89, 13, 61,113,242, 60, 31, 87, 82,121,225,238,152, 32, 8, - 87, 51, 50, 50,220, 78, 53, 17, 24, 24,184,159,231,249, 68, 95,185,196, 95,171,213,154,236,105,106,153,192,192,192, 35, 18,137, - 36,174,164,120,186, 59, 39, 8,194,213,244,244,116, 79,225,188, 43,238,101, 17,206,123,225, 44, 41,156, 98,121, 4, 96, 94,104, -104,232, 19, 89, 89, 89,255, 3,240, 78,126,126,126, 29,137, 68,130,144,144,144,119, 8, 33, 87, 2, 3, 3,191,206,203,203,219, - 7,224, 85, 74,169,192,114, 12, 3, 67, 25, 9, 45,142,227,226,110,223,190, 29,161,209,104, 0,252,189, 30,159,184,152,180, 32, - 8,160,148, 58,126,173, 86, 43,170, 85,171,230,171,216,168, 21, 16, 16,176,122,194,132, 9,229,251,246,237, 43, 23,151,154, 73, - 73, 73,169,188,102,205,154,255, 77,157, 58,245, 3, 66, 72, 31, 74,233,105, 95,197, 11,128,246, 0,134,214,171, 87,239,153,201, -147, 39,203,218,181,107, 7,155,205,134,223,126,251,173,229,148, 41, 83, 22, 16, 66,214, 2,248, 30,192, 31,190, 22, 22,132,144, - 22, 81, 81, 81,203,247,236,217, 19,125,237,218, 53, 91,223,190,125, 87, 0,192,145, 35, 71,146,108, 54, 27,105,210,164,201, 70, - 66,200, 64, 74,233,158, 82,188,243,103,198,140, 25,211,127,244,232,209, 17,207, 61,247,220, 48, 0, 11,236,207, 34,246,247, 92, -218, 5, 14, 29,150, 44, 74,169,172,132,235,162, 74, 97,217,210, 92,187,118, 45,184, 89,179,102, 35,211,211,211, 95,119,230, 77, - 75, 75,195,209,163, 71,205,211,166, 77,155,179,111,223,190,133,137,137,137, 57, 0,180,158,136,168, 77,218, 40, 45,253, 92,191, - 86, 77, 23, 4, 2,192,170,245, 35, 7, 28, 58,158,225,191, 97,211,226,255,201,149, 50,227,178, 47,231,200, 42, 85, 76,192,142, - 35,151,113,240, 92, 54,169,213,162, 27,159,183, 97,105, 71, 0,139, 89,246,124, 56,144, 72, 36,177,201,201,201, 17,106,181,218, -237,194,241, 46,126, 25,226, 4,168,168, 92,185,178,231,130,133,231,227,110,223,190, 29,161, 84, 42, 29,101,135,107,153, 33,150, - 43,142,180, 66, 41,170, 84,169, 98, 46,161, 76,138,191,121,243,102,132, 90,173,118,240,184, 11,159,171,224,168, 82,165, 74, 73, -113, 47, 22, 78, 95, 56, 41,165,168, 84,169,146,205, 91,220,197, 21, 48,188,197, 91,228, 76, 76, 76,164,165,225,244, 37,156, 21, - 42, 84, 48,123,249,252,243, 46, 94,188, 56,186, 92,185,114,168, 84,169,210,190, 39,158,120, 34, 64,163,209, 96,211,166, 77,168, - 94,189,122,205,128,128,128,131,171, 86,173,146,142, 27, 55,174,238,119,223,125, 7, 0,175,176, 28,195,192, 80, 70, 66,139, 16, - 2,141, 70,131, 21, 43, 86,120, 92,142,195,249,127,249,242,229,125,122, 32, 33,164, 97, 98, 98,226,206, 61,123,246,168,162,163, -255,158, 16,219,100, 50, 33, 56, 56, 24,163, 70,141,146,119,239,222,189, 82,167, 78,157, 14, 16, 66, 90, 83, 74,143,120,225,123, - 38, 60, 60,252,179,247,223,127, 63,178,127,255,254, 8, 13, 45, 54,233, 54,250,246,237,139,222,189,123,203, 46, 94,188, 56, 96, -201,146, 37, 3, 22, 45, 90,148, 74, 8,121,133, 82,186,182, 36, 94,181, 90,221,179, 98,197,138, 95,236,217,179, 39, 34, 34, 34, - 2, 73, 73, 73,220,184,113,227, 42, 85,174, 92, 89, 21, 23, 23,199,221,185,115, 7,191,252,242, 75,236,192,129, 3, 87,203,229, -242,151, 77, 38,211, 58, 31,226, 46, 15, 13, 13,125,231,229,151, 95, 14,203,207,207,183, 30, 61,122,244,146,120, 92, 46,151, 79, -105,218,180,105, 35, 66,200, 15,148,210,175,239,197,146,101,183,218,185,174,101, 98, 17,207,251,104,217,146,159, 56,113, 34,164, -105,211,166,107,141, 70, 99,253, 17, 35, 70,220,156, 54,109,154, 42, 32, 32, 32, 0, 0,201,207,207,207,153, 52,105,146,105,238, -220,185,111, 87,175, 94,189,253,254,253,251,159,169, 91,183,174,197, 46,226,238, 22, 90,132, 56,194,115,235,118, 6,118,238, 19, -228, 19, 39,188, 21,247,241, 71,137, 55, 14,159,189, 37,240,170, 0,252,186,235, 12,210,178, 10,241,251,254,179,136, 10,245, 39, - 50,133,180,102, 80, 92,205,214,121,183,207,238,162,108,101,237, 7, 14, 66, 8,212,106, 53,126,253,245,215,187,150,174,114,183, -172, 21,207,243, 8, 10, 10,242,186,186,129, 82,169,196,214,173, 91,221,174,189,232,110, 73,159,192,192, 64,160,132, 69,181, 9, - 33, 80, 42,149,216,187,119, 47, 56,142,115,187, 52,144,235, 49,141, 70, 3,174,132,181,174, 68,206, 93,187,118,121,229, 18,127, -253,252,252, 0, 64, 82, 98,166, 84, 40,176,103,207, 30,143,113,118,253,239,103, 95,239,213, 27,231,222,189,123,139, 45,253,229, -186, 36,152,243,190, 70,163,113, 52,224, 60,182,210,130,131,155,196,197,197,225,208,161, 67, 88,181,106, 85, 72,205,154, 53,113, -249,242,101, 16, 66, 48,109,218, 52, 82,163, 70, 13,105,106,106, 42, 90,182,108,137,159,127,254,185, 25,203, 45, 12,255, 32,164, - 0,234, 2, 8, 71,209, 42, 52, 5, 0,130,236,117,143, 28, 64, 22, 0,149,125, 51, 2, 40, 4, 16,102,191, 55,211, 94,182, 56, - 11,132, 12, 20, 95,124,186,145,157, 91, 92,161, 34,220,233,156,248, 12,215,125,215, 95,183,220, 60, 0,108,220,184, 81,172,204, -218,116,237,218,117,103,177,152,249, 32,178,196,117,202, 92,243,180,155, 5,102, 21, 26,141,102,205,129, 3, 7, 84,225,225,127, -199,193,104, 52,162,160,160, 0,133,133,133, 40, 40, 40,128,191,191, 63, 86,173, 90,165,106,223,190,253, 26, 66, 72,101, 74,169, -209, 19, 39,128, 57,119,238,220,137,180, 90,173,144,203,229,158, 90,194,168, 86,173, 26,222,121,231, 29,116,238,220, 57,170,109, -219,182,115, 0,172, 45,129, 19,106,181,250,139,163, 71,143, 70,168,213,106, 92,186,116, 9,201,201,201,120,243,205, 55,203, 9, -130,128, 91,183,110,225,242,229,203,184,125,251, 54,150, 44, 89, 18,209,171, 87,175, 47, 0,172, 43, 41,238,118,140,120,253,245, -215,171, 6, 7, 7,115,159,124,242, 73,174, 86,171,253,220,126,124,226,252,249,243,159,109,213,170, 85,196,240,225,195, 41, 33, -100, 25,165,244, 46,225,226,194,233,206,146,101, 3,112,222,229,182,106, 46,150,174, 40,123, 34,204,117,195, 73, 0, 4,118,234, -212,233, 13,163,209, 88,127,207,158, 61, 87,154, 55,111, 30, 15,224,142,152,248, 2, 3, 3, 53,115,230,204,137,236,214,173,219, -197,118,237,218,213,239,212,169,211, 27, 25, 25, 25,211,236,231,169, 43,167, 32,224, 68, 84,116,173,149,187,246,191,210,111,199, - 94,147,236,173, 87, 63,184, 89,190, 92, 66,222,137, 75,217,182,179, 87, 51, 80,160,183,226,233,118, 69, 11,152, 55,169, 85, 30, -159,173,216,131, 81,175,189, 43, 93,187,114,105,239, 43, 20, 26, 0, 27, 75,120,159,247, 5,198,249,183,216, 16, 4, 1, 82,169, - 20, 79, 61,245, 20, 8, 33,119,173,229, 41,149, 74,177,127,255,126,180,107,215, 14, 82,169, 20,207, 63,255,188, 79,156, 60,207, -163, 83,167, 78,142,117, 20,157,249, 92, 69,131, 59, 77,224, 26,119, 74, 41,120,158, 7,199,113, 30, 23,210,118,229,244, 86, 46, -137,225, 44,137,203,249,156,183,112,138,214, 36, 95, 69,150,175,156, 98, 56,121,158, 71,179,102,205,112,252,248,241, 18, 69,151, - 59,125,233, 26,247,156,156,156, 33,149, 43, 87,222,181, 96,193,130, 16, 0,200,202,202,114, 44,120, 47,145, 72,112,225,194, 5, -152, 76, 38,124,248,225,135,230,252,252,252,225, 44, 31, 49,206, 7,201, 89,146, 22, 1,208,106,194,132, 9, 13,103,204,152, 49, -173,105,211,166, 63,237,219,183,111, 57, 33,100, 3,165,180,155,248, 59, 97,194,132,154, 51,102,204,152, 54,126,252,248,119,166, - 79,159,126,134, 16,178, 1, 0, 92,247,237,225,239,230, 34,226,194, 69, 30,123,158, 43,118,173,187,125,215, 95, 15,220,127, 91, -180,186,118,237, 74,236,145, 36,206,133,154,175, 66,203,151,181,251,120,158, 31, 61,109,218,180,200,146, 68, 86, 97, 97, 33, 82, - 82, 82, 16, 31, 31,143,231,159,127, 62,114,193,130, 5,163, 1,204, 42,129, 86, 38,145, 72,112,232,208, 33,164,167,167,163,118, -237,218, 72, 76, 76, 44,118,193, 95,127,253,133,223,126,251, 13,185,185,185,104,208,160, 1, 80,228,127,228, 22,117,235,214,253, -176, 90,181,106,157, 58,117,234,100, 85,169, 84, 56,113,226, 4,234,215,175,143, 21, 43, 86,160,124,249,242, 80,171,213,184,120, -241, 34,106,215,174,141,157, 59,119, 34, 60, 60, 28,245,234,213,179, 54,104,208, 96,119,118,118,246,246,235,215,175,127,232,161, -229, 44,139,141,141,253,224,165,151, 94,146,167,164,164, 8,223,127,255,253, 30, 74,233, 30, 66,200,232,119,223,125,119, 88,231, -206,157, 35,142, 29, 59,150,119,248,240,225,131,238, 68,150,143,150, 44,171,107,165,100,179,217,140,122,189,222,100, 52, 26, 45, - 28,199, 93, 39,132,152,108, 54,155,167, 62, 31,229,208,161, 67, 43,100,102,102,142,122,237,181,215,174,217, 69,214, 5, 20, 57, -192, 3, 0,172, 86,171,177,176,176, 48,191,105,211,166,241, 3, 7, 14,188,178,124,249,242, 81, 67,135, 14, 93,245,253,247,223, - 23, 2,208,187, 18,150, 47, 95,238,184, 68,194,201,180, 5, 33, 87, 87,175,250,250,245,223,214,143, 46,119,235,214,237, 74,161, - 97,225, 90,153, 95,120,202,170, 31,191, 59, 2,192,148,146,145,143, 83,127,165, 66, 42,149,224,220,173, 60,180,122,178,175,244, -202,165,143, 90,136, 66,139,225,129,130,138,139, 80,239,216,177,163, 68,139,214,254,253,251, 33,149, 74,161, 82,169, 48,119,238, -220, 18, 73, 69, 97, 32, 90,139,188,137, 25,142,227, 74, 44, 71, 68,177, 33, 46,244,238,186,125,254,249,231,120,237,181,215,138, - 61,195, 46, 54,136, 55, 78, 79,225,139, 79, 72, 64,122, 90, 90,177, 99,190, 44, 74,111,179,217, 32,149, 74,241,213, 87, 95,161, - 91,183,110,216,176, 97, 67,137,191, 79, 61,245, 20, 56,142,163,190,188,207,102,205,154,193,108, 54, 59,194,124,225,194, 5,183, -188,139, 22, 45,242,102,201,236, 14, 96, 82,253,250,245, 3,218,182,109,139, 93,187,118,161,119,239,222, 70,179,217,124,201, 94, - 39, 84, 89,176, 96,129,252,232,209,163, 8, 13, 13,149,222,188,121,243, 91, 66, 8,115,144,103,120,160,112,167, 69,196, 58,111, -198,140, 25,211, 92, 69,140, 51,196,243,132,144, 13,211,167, 79,239,230, 44,138,156,247,157,172, 78,206, 34,174,166,179, 69,202, - 89, 68,121, 18, 80, 46,245,173,243,245, 25,110,133,150, 61, 98,109,156,173, 64, 98,225,235, 77,100,121,106, 57,186, 34, 48, 48, -176,203,211, 79, 63,237, 16, 57, 6,131,193, 33,176, 68,145, 37,238, 95,188,120, 17, 13, 27, 54,148, 5, 6, 6,118,241, 34,180, - 68, 17,135,152,152, 24,100,102,102,226,244,233,211,136,143,143,135,197, 98,193,230,205,155,145,151,151, 7,169, 84, 10,153, 76, - 6,179,185,100,151,133,106,213,170, 61,181,108,217,178,134, 75,151, 46,205, 17, 91,116, 63,254,248, 35, 40,165, 8, 15, 15,135, - 78,167, 67, 90, 90, 26,182,111,223, 14,171,213, 10, 63, 63, 63, 36, 37, 37,201,123,246,236,217, 98,210,164, 73, 82, 0, 31,122, -160,110,214,187,119,239,192,128,128, 0,188,250,234,171,212,108, 54, 79, 39,132, 52,235,221,187,247, 7,175,188,242, 74,232,245, -235,215, 77, 47,188,240,194, 33,179,217,252,137,189, 16,148, 82, 74, 45, 94, 90, 20, 30, 45, 89, 22,139, 69,124,167,215, 10, 11, - 11, 17, 22, 22, 22,239,197,135, 11, 0,100,123,247,238,109, 6, 64, 50,101,202, 20, 37,128, 52,103,145,101, 50,153, 80, 88, 88, - 8,173, 86,107,201,203,203, 75, 31, 59,118,172,117,249,242,229, 18,251, 61,231,220, 9, 45,224, 73, 83,141, 26, 26, 57,165,146, -119, 23, 47, 94,236,215,185,115,103,206,207,207, 15, 5, 5, 5, 1,191,111,218,228,215,190,109,139,164,105, 51, 62,222, 18, 16, - 87, 59,109,239,137,171,184,157,154, 7,147,197,130,164,232,192, 34,123, 24,195, 3,135,125, 32,139,195,162,229, 44, 42,118,237, -218,133, 39,159,124,210,145,215,101, 50, 89, 49,203,151, 55, 78,158,231,241,228,147, 79,222,101,225,217,177, 99,135, 91,235,147, - 55, 56,139, 34, 87,113,228, 78,128,113, 28, 7,111,189,207,162, 53,207,157,216,114,182,234,187,136, 55,111,173,125,240, 60,143, - 87, 94,121, 5, 82,169, 20,227,198,141, 3,207,243,168, 87,175, 30,120,158, 71,211,166, 77, 33,149, 74,209,174, 93,187, 82,199, -253,192,129, 3,168, 95,191,190, 35, 76,245,234,213, 67,163, 70,141,192,243, 60, 90,182,108, 9,169, 84,138, 78,157, 58,249,194, -249, 78, 65, 65, 65, 29, 63, 63, 63, 92,188,120, 17, 18,137, 4,132,144,203,148,210, 58, 0,240,210, 75, 47, 93,209,233,116, 21, - 12, 6, 3, 94,122,233, 37, 98, 50,153,106,143, 27, 55,238, 93, 0, 76,104, 49, 60, 48,184,106, 17, 39,232,199,143, 31,255, 14, - 33,100,131,104,161,114,181, 60,185,219,119, 83, 54,137, 98, 72,236,218,107,228, 34,226,196,110,191,174, 37,220,107,114, 17, 86, -174, 93,135,135,125,182,104,137,133,175,175, 66,203, 27, 12, 6, 67,221,136,136, 8,143, 34,203,249,215,100, 50, 33, 49, 49, 17, - 6,131,161,110,105, 43,141,232,232,104,152,205,102,124,253,245,215,144,201,100,144,201,254,214, 23, 38, 83,201,198,162,179,103, -207, 94, 59,112,224, 64,253, 6, 13, 26, 4,255,252,243,207, 25,173, 91,183, 14,239,220,185, 51, 84, 42, 21,244,122, 61, 44, 22, - 11,154, 52,105,130,106,213,170, 33, 57, 57, 25,191,255,254,123,102,229,202,149,195, 14, 30, 60, 40,164,166,166,222, 40,129,186, - 99,251,246,237, 65, 8,193,166, 77,155, 50, 41,165,135,149, 74,229,111, 31,125,244, 81,176,201,100, 18, 6, 15, 30,124, 51, 59, - 59,251, 53, 0,102,133, 66, 49,191, 83,167, 78, 77, 37, 18,201, 15, 54,155,109,110,105, 19,170,235,187,213,106,181, 80, 42,149, -190, 76, 37, 33,205,206,206,174, 5, 0, 26,141, 38, 4,192, 21, 71, 10,215,235,139,137, 97,147,201,100, 8, 9, 9,209, 0,128, -253, 30,169,135,239, 17,174, 86,171, 87,223,184,113,213,223,217,127, 46, 40, 40, 8,131, 6, 14,228,154, 55,107, 38,175, 83,183, -110,167,247, 62, 93,186, 34, 38, 52,192,148, 20, 19, 10,139,205,130,109, 91, 54, 11, 84,176,108, 97,197,206,195, 17, 90,162,216, -112,181,104, 73,165, 82,236,220,185,243,174, 99, 50,153, 12, 95,126,249,165, 79,194, 64, 20, 85,158,186,206, 92,186,186,136, 55, - 1, 35,149, 74, 33,145, 72,240,213, 87, 95, 65, 16, 4,188,254,250,235,197,186, 19,157,249,125,236, 2,113,220, 83,237, 3, 1, -128, 9,201,179, 21,142,251, 93,195,107,191,199, 39, 43,217,130, 5, 11,124,178,104,117,237,218,213,171,112,117,238, 97,112, 14, -215,241,227,199,221,242, 46, 94,188,216,235,251,180,217,108,216,184,113,163, 67,164,138,120,255,253,247, 95,138,139,139,139,220, -189,123, 55, 82, 83, 83,161,213,106, 81, 88, 88,136, 38, 77,154, 36,117,232,208,225, 68,106,106,234,245,179,103,207, 62,205,114, - 15,195, 67,180,104, 25,167, 79,159,126,102,250,244,233,110, 45, 86,174,150,165,146, 44, 79, 78, 2,235, 48,236, 93,134,227,199, -143,127, 7, 69,110, 53,135,125,184, 87,238,218,117, 88,162, 33,200, 69, 69, 78,114, 87,248,250,210,125,232,163, 57,157, 39,132, -192, 96, 48,184, 21, 88,206,226,192,108, 54, 35, 59, 59, 27, 54,155,237,158,231,250,114,215,146,245, 38,180, 78,159, 62,253,220, -176, 97,195, 82, 2, 3, 3,235,100,100,100,164, 11,130,208,110,255,254,253,225, 60,207, 35, 32, 32, 0, 1, 1, 1,248,237,183, -223,160, 86,171,241,202, 43,175,164,219,108,182, 93,254,254,254,161,122,189,254,100,106,106,234,123, 30, 21,140, 84,218,169,101, -203,150, 56,122,244, 40,114,114,114,182, 18, 66,234, 13, 31, 62,252,201,114,229,202,145,143, 62,250,200,240,215, 95,127,205, 5, -144,174,209,104,150, 45, 91,182,172,109,131, 6, 13,252, 7, 15, 30, 12, 66,200, 98, 74,169,193,215, 56,107,181,218, 98, 2, 43, - 63, 63, 31, 5, 5, 5,208,104, 52, 86, 31,223,153, 20, 69,190, 86,162,191,149,227,219,216,173, 89,226,247,161, 60,207,211,162, - 75,168,212, 19,159, 70,163,153,178,116,233, 82,149,235, 32, 5,155,205,134,180,180, 52, 4, 4, 4,224,253,247,222,147, 77,126, -115,120,125,137, 95,228,126,142, 35, 48,153,105, 46, 21, 76,155,181,105,253,119,179, 98,231,225, 64, 20, 6, 61,122,244,184,171, -187, 80, 38,147, 97,235,214,173,232,213,171,151,163,225,210,160, 65, 3,175,141, 43, 81, 24,116,239,222,221, 97, 25,218,188,121, -179,219,110, 63,209, 34,229,139, 32, 20,175, 29, 51,102, 12,120,158,199,103,159,125,134, 55,222,120, 3, 28,199, 97,246,236,217, -224, 56, 14, 19, 39, 78,244, 89,100, 58, 11,152,235, 31, 23,253,198,189,145,143,172, 69,145, 0, 0,255,128, 0, 49, 66,165, 42, -123,120,158,119, 88,178,234,214,173, 11,169, 84,138,166, 77,155,130,231,121,135, 37,171, 75,151, 46,206,239,145,250,194,201,243, - 60, 46, 93,186,228, 8,115,211,166, 77,139, 89,178,120,158, 71,215,174, 93,125, 9,230,180,160,160,160, 73,213,170, 85,171, 62, -103,206, 28,169, 68, 34, 65,251,246,237,171,188,240,194, 11, 55, 66, 67, 67, 67,167, 76,153,162,118,115,143, 10, 64,157,234,213, -171,107, 88,174, 97,120,128, 22,173, 73,110, 78, 5, 59,251, 92,149,162, 33,185,193,249,122,145,195, 85, 28,217, 45,100,187,188, -113,185,187,215, 27,120, 81, 65,150,100, 82,247, 69,104,217,205,206, 37, 62, 76,173, 86,159, 74, 79, 79,111,170, 82,169,138,137, - 44,119,130, 75, 34,145, 32, 53, 53, 21,106,181,250, 84, 89,126, 68,111, 93,135,118, 81,243,166,211,139,237,208,165, 75,151,239, -183,110,221, 26,189,109,219, 54, 28, 60,120, 16,225,225,225, 88,176, 96,193,157,180,180,180,231, 40,165, 91,125,121,110,133, 10, - 21,106,249,249,249, 97,239,222,189, 0,176, 19,192,240, 81,163, 70, 17,139,197,130, 69,139, 22,105, 1,108, 10, 10, 10,218,184, -106,213,170,250,117,234,212,145,111,219,182, 45,255,224,193,131,127,248, 40,178,108,130, 32,220, 37,176,156,223,169,191,191,191, - 47, 22, 45, 75, 96, 96,224,233,252,252,252,190,122,189, 62, 95,161, 80,248,231,231,231, 27,157, 5,150,200,207,243,188,244,210, -165, 75, 41, 0,146, 2, 3, 3, 79,195,169,139,177, 88, 2,227,249,246,237,219,183,231, 93,191, 65, 90, 90, 26, 82, 83, 83, 97, - 54,155,209,160, 65, 3, 34, 33, 22, 73,246,205,147, 47,177, 98,230, 31,177,104, 81, 49,175,139,163, 4,221,141, 52,220,188,121, -179, 99,159,227, 56,216,135,251,123, 21, 69, 91,183,110, 45,209, 97,221,165,235,208,171,105, 92,188,126,225,194,133, 69,203, 91, -216, 45, 89, 28,199, 97,252,248,241, 80, 40, 20,248,232,163,143, 48,126,252,120,240, 60,239,181,235,208, 89,192, 36,140,211, 57, - 55,142,138, 50,133,221, 31,138, 16,226, 44,182,136,175,226,173, 36,107,158, 47, 61, 1,206,156,226,125, 74,165,210,163, 35,188, - 11, 39, 41, 33,222,191, 18, 66,174, 70, 71, 71,239,109,218,180,105,224,145, 35, 71, 48,123,246,108,153,209,104, 44,191,109,219, - 54,199,115,221,189, 47,173, 86,171, 98, 57,135,225, 65, 88,179, 74, 56,157,225,226, 95, 69,156,187,241, 74,248,117,189, 30, 78, -199,156,121, 51, 92,234, 49,231,227,174,226,202,245, 25,206,215,100,120,180,104,121, 43, 44,188, 9, 46, 95, 44, 90, 58,157,238, -143, 77,155, 54, 53, 26, 56,112, 32, 95, 82,183,161, 86,171, 69,100,100, 36,206,156, 57, 99,213,233,116,127,248, 96, 41, 43, 51, -161,229,166, 80,217, 22, 21, 21, 37,177, 88, 44,168, 84,169, 18, 98, 99, 99, 97, 48, 24,144,155,155, 43,241, 85,100, 17, 66,100, - 13, 27, 54,148, 0, 64,110,110, 46, 80, 52,212,180, 74,229,202,149,113,244,232, 81,100,103,103,175, 5,208,121,210,164, 73, 13, -154, 52,105, 34, 91,177, 98,133,110,196,136, 17,107, 45, 22,203,135, 62, 90, 35, 76, 86,171, 53,145,227, 56,115,110,110,238,109, -231,247, 25, 25, 25, 25,162,209,104, 72, 90, 90,154,197, 23,161, 85,167, 78,157, 67, 55,111,222,196,148, 41, 83, 50,166, 77,155, - 86,185,160,160, 32, 39, 47, 47,207,234, 44,182, 12, 6, 3, 23, 22, 22,166, 88,180,104,145, 10, 0,234,212,169,115,200,147,208, -210,106,181,229,212,234,191, 27,198, 70,163, 17,169,169,169, 72, 77, 77, 69, 90, 90, 26, 10, 10, 10,144,148,148, 4,157, 78, 23, -207,138,153,127, 76,104, 21,235, 62,115,206,223,206, 21,121,105,242,186,179,128,233,209,163,135,195,183, 75,180,144,137,219,234, -213,171, 93, 29,204,125, 18, 90, 11, 23, 46,196,152, 49, 99,160, 84, 42, 49,103,206,156, 98, 93,135,174,226, 64, 16, 4,226, 75, -220, 19,223,214, 35,117,126, 8,164, 82, 41, 66, 71,164, 21,235,162,115, 35, 56,124, 10,231,180,105,211,202,164,235,208,153, 51, - 62,190, 40,171,124,245,213, 87,232,219,183, 47,118,239,222,125,207, 93,135, 53,107,214,252,113,195,134, 13,129,103,207,158, 69, -126,126, 62, 50, 50, 50, 96, 52, 26,145,156,156,236,177, 87,192, 94,150, 43, 89,206, 97,120,200, 56,252,144,121,203,236,121,188, -151, 10,220,103,161,229,139, 69,203,104, 52,206,121,245,213, 87, 71,117,232,208, 33,196,223,223, 31, 41, 41, 41,119,137,172,194, -194, 66,248,249,249, 65,175,215, 99,253,250,245,249, 70,163,113,142, 55,113, 96,177, 88, 16, 17, 17,129,204,204, 76, 8, 30,252, -167, 57,142,131, 74,165, 66, 97, 97, 33, 60,137,130,146, 42, 12,179,217, 12,139,197, 2,139,197, 2,179,217,140, 82, 78,239,164, - 22, 39,126,213,106,181, 0,160,141,137,137,169,164, 84, 42,113,237,218, 53,160,104,100, 95,135, 39,159,124, 82,154,149,149, 69, - 95,120,225,133, 61,148,210,151,188,204,142,111,218,181,107, 87, 34, 0,168, 84,170,139, 0,144,156,156,108,201,205,205, 45,102, - 41, 84,171,213,180, 87,175, 94,209,148, 82,236,218,181, 43, 81, 38,147, 81,120,152,243, 10,128, 97,221,186,117,103, 3, 3, 3, -151,207,152, 49, 99, 96,183,110,221,206,212,170, 85, 43, 81,171,213,166,235,245,122,189,193, 96,160, 18,137, 68, 22, 28, 28,172, -220,178,101,203,149,253,251,247,119, 8, 8, 8, 88,190,110,221,186,179, 0,220, 90,222, 52, 26, 77,178, 78,167, 75, 16,191,169, -179,200, 74, 77, 77, 5,165, 20, 87,175, 94,133, 90,173,190,201,202,145,127, 14, 98,163,202,213,242,226,122,204, 87,145,229, 44, - 12,182,108,217, 82,226, 28, 90,190,114, 58,139,162, 55,222,120, 3,243,231,207,191,203,162,245,209, 71, 31, 1, 0,222,123,239, - 61,159,125,180, 68,235, 85,234,252, 16, 68,141,201, 46, 22,118, 0, 32, 98,248, 74, 57,165, 27,207,243,152, 50,101,202, 93, 78, -234,206, 93,123, 62,118,241, 21, 11,103,122,122, 58,120,158, 71, 72, 72, 8, 6, 13, 26,132, 78,157, 58, 57,186, 32, 75,203,123, -254,252,249,189,111,191,253,118,237,154, 53,107, 98,234,212,169,217, 65, 65, 65,254, 47,190,248, 34,159,155,155, 75, 74,178,104, - 49,161,197,192, 80, 6, 66, 75,204, 96,190,142, 58,116, 87, 88, 18, 66, 58, 56,207,181, 65, 41,205, 35,132, 12,234,216,177,227, -207, 43, 87,174, 84, 85,168, 80, 1,231,207,159, 71,118,118, 54, 76, 38, 19,100, 50, 25,162,163,163,145,155,155,139,239,190,251, - 78,175,211,233, 6, 81, 74,243, 74,226, 4,240,110,195,134, 13,191,152, 53,107,150,178, 94,189,122,200,206,206, 70, 97, 97, 97, -177, 89,172, 3, 2, 2,160, 82,169,112,232,208, 33,108,222,188, 89, 15,224, 93, 47,156,238,212, 28,204,102,179, 67,112,121, 19, - 90, 46,156, 26,209,170,163,211,233, 0,192, 82,174, 92,185, 40, 0,184,122,245, 42, 0, 92, 79, 74, 74,154, 84,161, 66, 5,178, -108,217, 50, 74, 41,221,236, 78,100,185,112,102,183,108,217, 50, 7, 64,148,201,100,146, 1, 64, 94, 94,158, 57, 44, 44, 44, 66, -161, 80, 8, 42,149, 74, 80, 42,149, 66, 74, 74,138,213,106,181,202, 0,160,101,203,150, 38, 0,169,112,242, 5,113,225, 20, 0, -228, 47, 94,188,120,210,224,193,131,155, 54,107,214,172,230,200,145, 35, 79,191,240,194, 11, 92,108,108,108,112, 65, 65,129,225, -242,229,203, 57,159,126,250,105,193,129, 3, 7, 58, 72,165,210, 27,139, 23, 47,158, 4, 32,223,126,239, 93,156, 86,171,245,143, -109,219,182, 61,215,173, 91, 55,254,246,237,219, 72, 75, 75,115,136,172,180,180, 52, 84,171, 86, 13,251,247,239,183,153,205,230, -109,165,120,159,101,101,201, 97,156, 69,141, 16, 42,230,117, 79, 2, 75,108, 76,249,202,233, 44,138,250,246,237, 91,204,138, 37, -147,201,176,102,205, 26,183,229,134,155, 25,206, 59,184,206, 39, 37,134,233,237,183,223, 46, 38,218,222,127,255,125,143, 65,243, -246, 62, 69,158,188,175, 98,139,143, 58,244,144,207, 75, 10,167, 88,118, 74,165, 82,188,255,254,251, 62, 91,180,224,226,163,229, -142, 83,140,123,235,214,173,161,211,233, 28, 66,214,147, 69,203,219,251,180,217,108, 99,230,207,159, 79, 3, 2, 2,158,200,207, -207,255,223,205,155, 55,151,232,116,186,198,121,121,121, 37, 90,180,140, 70,163,130,229, 35,198,249, 32,230,210,250, 79, 9, 45, -123, 37,137,114,229,202, 21, 91, 59,139,227,184, 98, 91,105,252, 12,236, 25,119, 11, 33,228,153,230,205,155,255, 48,102,204, 24, -255,122,245,234, 73, 19, 18, 18,160,213,106,113,237,218, 53,156, 57,115,198,186,110,221,186,124,157, 78,247, 63, 74,233, 22, 31, -248,150, 18, 66, 54,119,238,220,121, 98,147, 38, 77, 94,254,224,131, 15, 36, 85,170, 84, 65, 94, 94, 30,130,131,131, 17, 17, 17, -129, 11, 23, 46, 96,253,250,245,182,204,204,204, 47, 0, 76,166,148,102,148,182,193,111, 54,155, 49, 96,192, 0, 8,130,128,185, -115,231,130, 16, 82,154,230,173,217,108, 54, 83, 0, 36, 51, 51, 19, 0,116,246,217,165,113,249,242,101, 0,184,145,152,152,232, - 15, 0,219,182,109, 35, 0,124, 93,210,135, 58, 91,182,170, 85,171,118,205,181,112, 20, 45, 89,162, 21, 12,222, 23,130, 54,244, -235,215, 47, 93,167,211,117,126,227,141, 55, 38, 46, 92,184,112,224,194,133, 11,239,186, 40, 32, 32, 96,249,236,217,179, 39,247, -235,215, 47,221,147, 53,203,110,193,123,111,200,144, 33,253, 78,157, 58,229,175, 84, 42,161,213,106,145,149,149, 5,179,217,140, -164,164, 36,164,167,167, 99,233,210,165, 5,122,189,254, 67,150, 29,255, 25, 56, 11, 3, 79, 86, 45,111, 34,171, 36,171,206,175, -191,254,234,118,142,170,210,114,186,138, 13, 95,231,182, 42,169, 81, 36, 78, 75,227,110,202,136,210,148,107,238,120,121,158,199, - 39,159,124,226,152,180,213,157, 37,171, 52, 22, 45,145, 51, 36, 36,164,200, 76,110, 95, 50,169,107,215,174,247,204,107, 95,142, -236, 21,167,103, 76, 27, 59,118,236,164,106,213,170, 85, 1,160,112,126, 7,108,145, 6, 6,134, 50, 22, 90, 54,155, 45,185,106, -213,170,197, 10, 56,111,139,153, 90, 44,150,100, 31, 51,247,102, 66, 72,210,236,217,179, 95,213,104, 52, 29,116, 58, 93,109,123, -193,113, 74,171,213,110, 51, 26,141,243, 74,179, 8,180, 93, 56,141, 38,132,204,237,220,185,243, 71,237,218,181,235,243,230,155, -111, 18, 74, 41, 22, 45, 90, 68,255,250,235,175,213, 0,222,165,148,254,117, 47, 47, 41, 36, 36,228,236,119,223,125, 23,249,243, -207, 63,195, 98,177, 96,222,188,121,240,247,247, 63, 91,138,240,165,243, 60,255,125,179,102,205,158,221,191,127,255, 82, 74,233, - 73,185, 92,190,164, 69,139, 22, 67,246,239,223,255, 35,165,244, 12,207,243, 75,154, 52,105, 50,228,240,225,195,171, 40,165,199, - 75, 17, 60,135,101,203,106,117,223,211,232,206,146,229, 5,249,195,134, 13, 51, 15, 27, 54,236,205,126,253,250,125,125,248,240, -225,198,185,185,185,181, 1, 32, 40, 40,232, 84,163, 70,141, 14,173, 92,185,242,130,221,146,101,240,246,109, 8, 33,189,106,215, -174,189,118,234,212,169,154,154, 53,107,242,149, 42, 85,194,245,235,215,113,250,244,105,235,183,223,126, 91,168,215,235,123, 80, - 74,115, 88,118,252,231,132, 22,165, 20, 65, 65, 65,197, 26, 81,226,144,255,210,118, 23, 58, 87,204,226, 82, 61,174,188,158, 56, - 75,154, 54, 65,132,159,159,159, 99,114, 83, 95, 92, 22, 4,161,228,249,216, 40,165, 14, 78,113,243, 65,100,121, 29, 33,104, 95, - 2,199,103, 78, 95,166,119,208,104, 52,176, 88, 44, 14, 94, 31, 70,126,146, 82,126,179, 95, 1,252, 90,169, 82,165,203, 0, 42, - 50,113,197,192,240, 0,133, 86,118,118,118,195, 7,249, 96,187,144,154,108,223,202,138,243, 47, 0,253, 8, 33,179,254,252,243, - 79,177, 31, 97,138,183,245, 18,189,225,252,249,243,221,164, 82,233,151,203,151, 47,111, 66, 41, 69, 96, 96,224,129,235,215,175, -191, 88, 26, 14,171,213, 58,140, 16, 50, 74, 28, 69,104, 50,153,134, 17, 66, 94,165,148, 22, 58,157,119,236,151, 54,234, 0,140, -148,210, 24, 15,231,141,165, 16, 89, 14,203, 22, 0,211,202,149, 43, 11, 1,156,192,223,243,100, 89,236,155, 1, 78,221,133, 94, -190,203,118, 66, 72,165,247,223,127,127,154, 68, 34,105,175,213,106, 99, 53, 26,205, 45,171,213,250,135, 78,167,123,151, 82,154, -197,178,226, 63, 7,147,201,116,187,106,213,170,188,187, 6, 84, 73, 21,121, 73, 13, 43,155,205,150, 92,185,114,101,175,141, 51, - 55,156,183, 75, 72, 71, 55,146,146,146, 56, 95,185, 68,152,205,230,244,146,194,153,148,148,132,210,114,122,139,123, 98, 98,162, -219,184,123, 17,132,183, 75, 40, 63,238,137,179,164,247, 89, 18,244,122,125, 78,120,120,120,161,193, 96,144, 26,141, 70,169,213, -106, 45,102,126, 84,169, 84, 25, 44,231, 48, 48,220,167,208,250, 55,195, 46,172,186,151, 33,159, 17,192,179,101,192, 99,112,217, - 47, 44,105,191,148,120, 16, 22, 33, 1,128,174,140,222, 97, 38,128, 23, 88,150,123,244,144,153,153,249, 68, 89,115,102,101,101, -149,121, 67, 45, 35, 35,163,233, 3,136,123,195,255, 42,103, 73,184,125,251,246, 19, 44,103, 48, 48,148, 13, 56,246, 10, 24, 24, - 24, 24, 24, 24, 24, 24, 30, 12, 8,128, 14,238, 78,148,102, 52, 1, 33,164, 67,105, 31,236,141,159,113, 50, 78,198,201, 56, 25, - 39,227,100,156,143, 31,167, 55,238,199,110, 52, 35,165,244,129,109, 0, 58, 48, 78,198,201, 56, 25, 39,227,100,156,140,147,113, -254, 87, 55,214,117,200,192,192,192,192,192,192,192,240,128,192,132, 22, 3, 3, 3, 3, 3, 3, 3, 3, 19, 90, 12, 12, 12,255, - 70, 16, 66,170,148, 47, 95,254, 92,213,170, 85,111, 19, 66,134, 62,224,103, 13,106,218,180,105,150, 82,169,220, 66, 8,169,194, -222, 62, 3, 3, 3, 19, 90, 12, 12, 12,143,181,200,170, 93,187,246,158,243,231,207, 87,219,182,109, 91, 76,108,108,236,199, 15, -242,121, 13, 27, 54,156,185,123,247,238,144, 77,155, 54,117,140,138,138,218,117, 47, 98,139, 16, 82, 37, 62, 62,254, 92,213,170, - 85,147, 9, 33,131,202,248,125, 12,109,214,172, 89,182, 66,161,216,204,132, 32,195,127, 32,255,215, 34,132,212,102, 66,139,129, -129,129,225, 1,138,172,125,251,246,133, 26, 12, 6,156, 63,127, 30, 25, 25, 25,199, 31,228, 51, 47, 94,188,152,179,111,223, 62, -196,197,197,225,199, 31,127, 12, 79, 76, 76,220, 93, 26, 65, 35,134,249,220,185,115,213,182,109,219, 22, 27, 17, 17,241,105, 89, -134,175,113,227,198, 31,237,222,189, 59,120,203,150, 45,157,194,195,195,119, 49,177,197,240, 24,230,123, 5, 33,228, 89,142,227, - 14,213,170, 85,235, 84,205,154, 53, 79,114, 28,183,159, 16,210,151, 16,194,255, 39,223,137,184,196,194,198,141, 27,119, 2, 64, -215,174, 93, 91,179,164,194,192,192,112,159,133,109,205,154, 53,107, 30, 56,112,224,128, 90,175,215, 99,213,170, 85,248,224,131, - 15, 44,217,217,217,187, 1,104,221,220,114, 24,192,231,190, 44,189, 69, 8, 9, 0, 48, 10, 64, 35, 55,167, 53, 33, 33, 33, 45, - 39, 77,154, 36,125,242,201, 39, 97, 48, 24,208,187,119,111,195,197,139, 23,235, 81, 74, 47,250, 42, 12,245,122, 61,142, 28, 57, -130, 30, 61,122,108,177, 88, 44,157,203,234,189, 4, 6, 6,158,249,245,215, 95,107,196,196,196,224,234,213,171, 24, 50,100, 72, - 70, 90, 90, 90, 43,111, 97, 99, 96,248, 23,228,249, 4, 0, 47,251,249,249, 13,111,211,166, 77,112,143, 30, 61, 16, 26, 26, 10, -171,213,138, 91,183,110, 97,195,134, 13,216,183,111, 95,138,201,100,154, 15,224, 43, 74,105,174, 59,158,199, 81,139, 16, 74, 41, - 54,110,220, 72, 1,180,177, 71,110, 39, 75, 50, 12, 12, 12,247, 89,232,238,211,233,116, 77,117, 58, 29, 10, 10, 10, 80,174, 92, - 57, 72,165, 82,183,215,166,167,167, 99,239,222,189,120,229,149, 87,206,166,166,166,182, 42,105,221, 75, 66, 72,112,253,250,245, -247,109,223,190,189,138,191,191,191,227,184, 32, 8, 48,155,205,176, 88, 44, 48,155,205, 48, 26,141, 48, 26,141,144,203,229, 80, -169, 84, 8, 9, 9, 57, 77, 41,173,237,171,200, 58,118,236, 24, 6, 15, 30,156,145,149,149, 85,166, 34,136, 16, 82, 37, 34, 34, - 98,215,210,165, 75,195,147,146,146,112,243,230, 77, 60,255,252,243,153, 55,110,220,104,201,196, 22,195,191, 56,191,143,127,230, -153,103, 62,138,140,140,228,106,213,170,133,232,232,104, 24,141, 70,232,245,122, 80, 74,193,243, 60, 40,165,200,203,203,195,174, - 93,187,176,125,251,118, 99, 78, 78,206,119, 0,230, 81, 74, 47, 57,137,172,199, 82,139, 56,132, 86,215,174, 93, 9, 75, 46, 12, - 12, 12,101, 84,240,158,202,203,203,171,101, 52, 26,161,213,106,125,186,231,234,213,171, 24, 58,116,232,217,212,212,212,230,238, - 44, 91,132,144,128,250,245,235, 31,220,181,107, 87, 21,131,193,128,252,124,239,235,206,203,229,114, 40,149, 74,132,134,134,238, -167,148, 54,243,212, 18,175, 85,171,214,145,253,251,247,135,232,245,122, 28, 63,126, 28,131, 6, 13, 50,103,103,103,239,129,123, -235, 27, 0,100,163,104, 29,213, 27,110,248,226, 1,188, 10, 32,193,195,189,154,240,240,240, 22,203,150, 45,147, 85,168, 80, 1, - 58,157, 14,125,251,246,205,190,120,241, 98, 35, 74,233, 53,150,122, 24,254,133,249,253,226,249,243,231, 43,219,108, 54,100,102, -102,194,104, 52, 66,167,211, 57,132,150, 68, 34, 1,165, 20, 86,171,213,209, 48, 58,122,244, 40,182,109,219, 70,175, 94,189,250, - 1,165,116,138, 40,180, 30, 71, 45,194,179, 36,194,192,192,240, 0,208,175,113,227,198,199,127,255,253,119,165, 92, 46,199,250, -245,235, 61,118, 29, 70, 70, 70,214, 92,178,100, 73, 98, 82, 82, 18, 22, 44, 88, 80,163,119,239,222,163, 0, 76,115,195, 57,106, -251,246,237, 85, 12, 6, 3,142, 31, 63,142, 33, 67,134, 92, 75, 75, 75, 59,227, 42, 98, 18, 19, 19, 91,126,250,233,167,210, 6, - 13, 26, 32, 63, 63, 31, 29, 59,118,212, 1,120,185,132,176,142,222,177, 99, 71,136, 94,175, 71, 65, 65, 1,218,180,105,131,172, -172, 44, 25,128,118,158,110,208,235,245, 72, 72, 72,168, 2,224, 46,241, 22, 26, 26,250,205,205,155, 55,219,170, 84,170, 18, 95, -144,217,108, 70,114,114, 50,130,130,130,176, 97,195,134,144,138, 21, 43,190, 7, 96, 24, 75, 58, 12,255, 70,152, 76, 38,252,244, -211, 79,168, 95,191, 62,170, 87,175,142,194,194, 66,135,232, 50,153, 76, 14,145, 5, 0, 28,199,161, 81,163, 70,168, 92,185, 50, -121,253,245,215, 7, 1,152,242, 56,191, 27, 81,104, 77, 98, 62, 90, 12, 12, 12,101, 5, 74,233, 69, 66, 72,189, 14, 29, 58,236, - 94,189,122,117, 88,151, 46, 93, 80,177, 98, 69,233,211, 79, 63, 29,174,213,106,219,187,180,134,131,135, 12, 25,114,228,214,173, - 91,137,246, 67,141, 60,208, 54,242,247,247, 23,125,155,174,165,165,165, 53,116,237,102, 84, 40, 20,155, 79,156, 56, 33,149,203, -229, 56,124,248, 48,134, 14, 29,154,121,237,218, 53,111,221,114, 65, 38,147, 9, 18,137, 4, 0,144,156,156,236, 53,126, 55,111, -222,132, 32, 8, 70,119,231, 56,142, 83, 28, 61,122, 20, 49, 49, 49, 37,114,112, 28, 7,153, 76,230,124, 40,151,165, 28,134,127, - 41, 44, 38,147, 9, 13, 27, 54,196,181,107,215,112,244,232, 81,135,224,202,204,204, 68, 74, 74, 74,177,139, 15, 29, 58,132, 99, -199,142,161, 85,171, 86,174, 60,143,165, 22,225,237, 17,250,112,227,198,141, 76, 96, 49, 48, 48,148,181,216,106,217,189,123,247, - 93, 75,151, 46, 13, 47, 87,174, 28,252,253,253, 3,220, 92,151, 67, 8, 57, 35,149, 74, 19,125,229, 78, 75, 75, 59,227,206,151, - 43, 42, 42,170,158,201,100,194,177, 99,199, 48,104,208,160, 12,187,207,151, 55,223,167,169,237,219,183,239,190,101,203,150, 16, -165, 82,137, 51,103,206,248,210,117,120, 29,192, 60,119, 39, 50, 50, 50, 6,181,106,213,234,125, 0, 33, 30,238,213, 84,174, 92, -185,197,145, 35, 71,100,132, 16, 92,191,126, 29,125,251,246,205, 6,240, 25, 75, 53, 12,255, 82, 76,124,230,153,103,190, 29, 53, -106, 84, 96,147, 38, 77,144,156,156,236, 16, 92,245,234,213, 67,157, 58,117,240,215, 95,127, 97,243,230,205, 56,118,236, 24, 20, - 10, 5, 42, 86,172,136,194, 89,159, 2,159,194, 34,146, 60,174, 90,196, 49,234,144,129,129,129,225,129, 20, 50,132, 84,145,201, -100,115,195,195,195,235,222,190,125,251, 13, 74,233,143, 46,231,131,251,244,233,115,102,197,138, 21,209,215,175, 95, 71,133, 10, - 21,214, 83, 74,123,186,225, 89, 71, 41,237,113,245,234, 85, 52,111,222,220,173, 69,139, 16, 50, 52, 42, 42,106,114, 65, 65, 65, -158, 78,167,235,235,171,131, 57, 33,164, 74,165, 74,149,118,175, 95,191, 62, 76,173, 86,227,220,185,115, 15,204, 25,190,106,213, -170,123, 14, 29, 58, 20, 42,149, 74,113,248,240, 97, 12, 25, 50,132, 57,195, 51, 60, 14,249,220, 31,192,216,164,164,164,183, 70, -140, 24,161,168, 81,163, 6,146,147,147,145,145,145,129,156,156, 28, 28, 56,112, 0, 0, 16, 27, 27,139,216,216, 88, 92,184,112, - 1,123,247,238,205, 47, 44, 44, 28, 70, 41,253,249,177,126, 55, 76,104, 49, 48, 48, 60,228, 2, 57, 30, 78,206,226,125,250,244, -105,184,108,217,178,232,172,172, 44, 28, 60,120, 16,189,123,247,126,151, 82, 58,205,205,125,239,164,166,166,126, 4, 0,167, 79, -159,118,245,209,242,232,156, 94, 26, 17,148,144,144,176,123,213,170, 85, 97,161,161,161, 56,127,254, 60,250,246,237,123, 70,171, -213,214, 42,171,184,171,213,234, 45,169,169,169, 29,101, 50, 25,246,239,223,143, 65,131, 6,177,233, 29, 24, 30,183,252, 29, 1, -224,189, 26, 53,106,188, 60,124,248,112, 62, 62, 62, 30,183,111,223,198,159,127,254,137,138, 21, 43,226,214,173, 91,216,190,125, -187, 41, 35, 35, 99, 46,128, 25,148,210,188,199,254,165, 60,200, 21,171,193, 86, 54,103,156,140,147,113,222,125,221,230,179,103, -207, 82, 17, 54,155,141,222,190,125,155,110,217,178,133, 70, 69, 69,157, 1, 16,224,142, 19, 64, 64,245,234,213,207, 95,184,112, -129,222,188,121,147,154,205,102, 7,199,249,243,231, 41,128,157,247, 27, 78, 0, 85, 98, 99, 99,211,119,236,216, 65, 47, 92,184, - 64,163,162,162,110,149,101,220, 19, 18, 18,210, 51, 50, 50,232,159,127,254, 73,195,195,195,211, 1, 84, 97,105,137,113, 62,142, -156,246,134,212,178, 6, 13, 26,216,230,207,159, 79, 95,126,249,101, 26, 31, 31,111, 3,240, 13,128,216, 7,169, 61, 30,181,141, -141, 58,100, 96, 96,120,216, 80, 28, 56,112, 0, 10,133,194,113,224,228,201,147,206,243,104,229,123,104, 20,230, 19, 66,154,119, -233,210,101,247,252,249,243,171, 91, 44, 14,215, 14,236,216,177, 3, 0,140,101,208,240,188, 72, 8,105,213,185,115,231,121,161, -161,161,117, 83, 83, 83, 39,150,101,196,175, 95,191,254, 70,237,218,181,167, 21, 20, 20,228,151,166,107,147,129,225, 95,104,196, -185, 14, 96, 48, 33,228,227,163, 71,143,190, 11,128, 2,152, 74, 41, 61,247, 95,123, 23, 76,104, 49, 48, 48, 60,108, 12,125,225, -133, 23, 92,157,197,125,154, 25,222,238, 56,223,172,107,215,174,174, 51,195,123,116, 78,191, 23,177, 5,160,211, 3,170,124,126, - 4,240, 35, 75, 2, 12,255, 33,193,117, 6, 64,255,255,242, 59, 96, 66,139,129,129,225, 97, 23,188, 55, 0, 60,127, 31,247,231, -195,253, 60, 91, 12, 12, 12, 12,143, 28,216,162,210, 12, 12, 12, 12, 12, 12, 12, 12, 76,104, 49, 48, 48, 48, 48, 48, 48, 48,252, -187, 64, 0,116,112,119,130, 82,186,205,103, 18, 66, 58,148,246,193,222,248, 25, 39,227,100,156,140,147,113, 50, 78,198,249,248, -113,122,227, 46,141,254,248, 87,192,199, 97,156,132, 13,125,101,156,140,147,113, 50, 78,198,233, 11,167,189, 17, 79, 80,212,107, -194,137,251,143,248,116, 4,228, 81,141,251,127,133,243, 63, 57,189, 3, 33,196,241,178, 8, 33, 2, 0,129,150,193, 12,167,132, - 16,241, 67,148, 9, 31,195, 3, 48,117, 22,125, 35,242,183, 30,103,223,137,129,129,161, 84,101,135,196,169,178,181, 1,176, 17, - 66,240,168,149, 37,101, 89,207, 61,136,184,255,151, 57, 31, 23,240, 37,189, 48,137, 68,178, 37, 44, 44,172,109,102,102,166, 96, - 63, 14,185, 92, 14,142,227, 32,149, 74,245, 5, 5, 5, 1,247,240, 49,190,137,140,140, 28,154,149,149, 37,112, 28, 7,165, 82, - 9, 66,136,131, 51, 55, 55, 55,224,159,126, 41, 9, 9, 9, 57,122,189,222,207,245,184, 82,169, 52,220,184,113,195,255,191, 80, - 80,202,100,178,103, 66, 66, 66,130, 50, 50, 50,168,184,248,173, 68, 34, 17, 23,194,181,230,230,230,126,239, 43, 95, 72, 72,200, -161,144,144,144, 32,241,126, 66, 8,178,178,178,114,211,210,210, 26, 3,128, 74,165,218,171,209,104, 66,121,158,135, 68, 34,129, - 68, 34,129, 78,167,203,202,204,204,108,206,170,173,127, 39, 86,175, 94, 45,233, 28,251,124, 69,158,234,235,112, 28, 13, 20, 4, -146,103, 37,170,147,155,111,127,115,197,151,251,251,244,233, 99, 99,111,241,225, 65,161, 80,204,141,140,140, 28, 94, 88, 88,168, - 35,132, 80, 66, 8,138,170, 1,220,245,107,179,217,146, 51, 51, 51, 27,122,169,108,165,114,185,124,118, 84, 84,212, 16,157, 78, -167,179,243, 81, 66, 8,162,163,163,139,241, 1,128,197, 98, 73,206,200,200,104,232, 75, 88, 35, 34, 34, 22,171, 84,170,255,233, -116, 58,173, 93, 24, 57,247,208, 56, 87,230,127,101,100,100,180,244, 38, 12,228,114,249,188,200,200,200,231,236,113, 7, 33,132, -134,135,135,223,119,220, 35, 35, 35,135,104,181,218, 98,113,143,136,136,112,203,233, 41,238,238, 56,157,195, 73, 8, 65,120,120, -248,125,135,243, 81,228,124,236,133, 22, 0,142, 16,178,174,121,243,230,109,118,238,220,201,157, 63,127,158,171, 86,173, 26,108, - 54, 27, 4,161, 40, 93,199,197,197,169,239,161, 2, 95,210,178,101,203, 1,187,118,237,226,214,173, 91,199, 53,106,212, 8,132, - 16,216,108, 54,216,108, 54,212,170, 85, 75,117,159, 2,193,143,231,249,215,229,114,121,107,171,213, 90, 29, 0,164, 82,233, 57, -163,209,184,211,106,181,206,161,148, 22,250,194, 99, 54,155,213,233,233,233,119,189,155,164,164, 36,249,189,134, 45, 32, 32, 96, - 31,199,113, 73,142, 23,108, 23, 28,238, 50,179,248, 75, 41,189,154,145,145,209,204, 19,103,112,112,176,131,211, 19,135,235, 49, - 65, 16,174,166,167,167, 55,243, 34,178,122,183,108,217, 50,112,219,182,109,228,214,173, 91, 68,165, 82, 65, 16, 4,216,108, 54, - 88, 44, 22,212,168, 81,163, 84,211,130, 4, 5, 5, 5,140, 31, 63,190,226, 83, 79, 61,133, 53,107,214,224,217,103,159, 69,139, - 22, 45, 46,137,231, 53, 26, 77,232,217,179,103, 43,135,132,132, 64,167,211, 33, 47, 47, 15, 29, 59,118,252,215,103,174, 38,245, -203, 77, 37, 28,113,204, 21, 69,173,182,236, 3, 39,110,191,119,191,188, 65, 65, 65,199,228,114,121,164,248, 93, 57,142,115,251, -173,157,143, 25, 12,134,180,204,204,204,250, 94,242, 79, 2,128,238, 18,137,164, 18,207,243, 85, 1, 36, 88,173,214, 72, 0,144, -201,100,105, 18,137,228,186,197, 98,185, 96, 50,153, 46, 3,248,213, 62, 33,161, 91,116,142,125,190, 34,177,234,250, 20, 24,133, - 46,234, 10, 51,170,232,254, 26,127, 81,173,208,253,214, 57,246,249,213,190,138,173,127,176,161, 81, 5,192, 74, 20, 45, 40,253, -178,125, 30,160,251,225,139, 5,208, 3, 64, 21,153, 76,150,104, 54,155, 51, 1, 28, 5,176,141, 82,122,137, 16, 18, 31, 30, 30, -254,163, 32, 8,198,172,172,172,231,221, 45, 35,212,180, 97,249, 35, 28,199,197,193, 46, 35, 4,106, 75,222,127,228, 86,153, 84, - 80, 18,137,100,222,211, 79, 63,253,220,234,213,171,213, 71,143, 30, 85, 87,175, 94,221, 81, 62, 9,130, 0, 87, 67, 68, 98, 98, -137,107,127, 19, 0, 60,199,113,115,251,244,233, 51,112,217,178,101,234, 27, 55,110,168, 99, 98, 98, 28,156,206, 34, 78, 68, 76, - 76,140, 79, 97, 13, 13, 13,253,230,169,167,158, 26,188,116,233, 82,233,250,245,235, 85, 97, 97, 97, 8, 13, 13,133, 76, 38,187, -235,218,230,205,155, 11, 94,232, 56,142,227,230,245,236,217,115,240,138, 21, 43,212, 7, 15, 30, 84,215,170, 85, 11, 18,137,228, -190,227,222,171, 87,175,129, 63,253,244,147,250,212,169, 83,234, 74,149, 42,129,227, 56,112, 28,119, 23, 31,199,113, 40, 87,174, -156, 79,156, 61,122,244, 24,184,114,229, 74,245,177, 99,199,212, 85,171, 86,117,188, 79,167,110,187, 82,135,243, 17,231,124,124, -133,150,221,140,186,172,121,243,230,157,119,238,220, 41, 1,128, 99,199,142, 33, 59, 59, 27,177,177,177,240,243,243,131, 66,161, -128,193, 96,160,165, 44,108,190,177,139, 44, 41, 0,172,253, 95, 47, 92,149, 2,175,164,155, 32,147,201,240,215, 95,127, 65, 34, -145,208,251, 40,204, 90, 5, 4, 4, 44,253,249,231,159,131,235,215,175,207,101,102,102, 34, 49, 49, 17,217,217,217,141,119,237, -218,213,224,249,231,159,127,158, 16,242, 44,165,116,151,175,156,191,253,246, 27, 52, 26, 13,212,106, 53, 52, 26, 13, 76, 38, 19, -185,231, 23,205,243,113,215,175, 95,143,240,243,243,131, 32, 8,142,205,165,127,219, 1, 65, 16, 80,185,114,101,179,151, 2, 50, -238,198,141, 27, 17, 42,149, 10,148,210, 98,124, 54,155, 13, 10,133,194,185,229, 0,155,205,134,164,164, 36,179, 55, 75,150, 40, -178, 0, 96,249,242,229,136,138,138, 66, 68, 68, 4, 52, 26, 13, 84, 42, 85,177,138,221,199,130, 28,157, 59,119,198,135, 31,126, -136, 25, 51,102, 96,236,216,177,197, 10, 90,169, 84,138,144,144, 16,108,218,180, 9, 1, 1, 1,136,143,143,135, 84, 42,253,247, - 91, 6, 57, 18,178,255,200, 77,135,133,246,201,118,213,248, 38, 13,226, 23,218,191, 48, 56, 14, 16,132,162,170,147, 16, 80,171, - 69,200, 57,124,242,246, 68, 31,222,103,204,141, 27, 55, 34,156,103, 86, 47, 9, 54,155, 13,177,177,177, 18, 47,249,167, 75,205, -154, 53,215,142, 28, 57, 82, 86,169, 82, 37, 34,147,201,192,243, 60,120,158, 23,211, 99, 60,165, 52, 94, 16,132, 54,105,105,105, -116,193,130, 5, 31, 19, 66,158,166,148,254,230, 54,189, 83,125,157, 2,163,208,101,247,113, 52,238,211,225,109,108, 90, 53,190, -113,203,122, 2,252,213,250, 43, 0, 30, 89,161, 69, 8,169, 82,179,102,205,227, 7, 15, 30, 84,154,205,102, 52,105,210,228, 0, - 33,164,193,189,204,224, 78, 8, 9, 6,240,233,132, 9, 19, 6,143, 28, 57, 82, 18, 20, 20, 4,185, 92,142,130,130, 2, 92,185, -114,101,200,247,223,127, 79, 9, 33,159, 3,240,191,126,253,122,211, 67,135, 14,161,109,219,182,175, 2,120,253,110, 69, 32,137, -219,123,232, 90,132,184,223,163,115,109, 89,179, 70,241,105, 69, 13, 50,215,171, 41, 4,155,144,124,240,120,114, 67, 31,194,248, -241, 51,207, 60, 51,104,245,234,213,126, 0,176,104,209, 34, 60,243,204, 51, 8, 9, 9,129, 90,173,134, 76, 38,131, 84, 42, 45, -246,235,197, 66, 36, 1,240,113,255,254,253,251, 44, 91,182,204, 31, 0,150, 45, 91,134, 94,189,122, 33, 52, 52, 20,254,254,254, -144,203,229,144, 72, 36,165,254, 54,161,161,161,223,180,104,220,120,216,210,165, 75, 1, 0,239,190,246, 26,158,122,226, 9,248, -169, 85, 80,171,228, 16,223,133, 92, 34,197,147,175,140,241, 22,111, 14,192,172,103,158,121,166,223,138, 21, 43,252, 1,224,232, -209,163, 72, 79, 79, 71,100,100, 36, 84, 42, 21,228,114,185, 35,206,132, 16,168, 84, 42,159,226,254,204, 51,207,244,249,233,167, -159,252, 1, 96,201,146, 37,232,220,185,179, 35,238, 10,133, 2, 50,153,172,216,230, 42, 58,221,113, 62,253,244,211,125, 86,174, - 92,233, 15, 0,223,127,255, 61, 58,116,232,128,224,224, 96,199,251, 20,185, 74,243,141, 30,101,206,199, 90,104,137,190, 83,145, -145,145,253,118,239,222,205, 57,137, 4, 40, 20, 10, 40, 20, 10,200,229,114, 71,247, 97, 41, 10, 28, 18, 25, 25, 57,116,215,174, - 93,142,155, 76,244, 46,211,117,169, 43,112, 39,254, 14,109,219,182,253,105,195,134, 13, 74,153, 76, 6,189, 94,143, 51,103,206, - 32, 48, 48, 16,114,185, 28, 61,123,246,148, 52,111,222, 60,180, 77,155, 54,107, 8, 33, 3,125, 25,209, 64, 41,133,159,159, 95, - 49,161,117,191, 93,204, 42,149, 10,235,215,175,135, 68, 34,113, 91,128, 57,255,143,136,136,240, 37,222, 80, 40, 20,216,183,111, - 31, 36, 18, 9,164, 82, 41,120,158,135, 84, 42,197,198,141, 27,241,230,155,111, 34, 51, 51, 19,132, 16, 72,165, 82,248,251,123, -237,245, 36, 33, 33, 33, 65,162,200, 18, 69,144, 74,165,130, 84, 42, 37, 60,207, 19,177,107,143, 16, 66,124,237,115,231, 56, 14, - 63,252,240, 3,102,206,156,137,113,227,198, 97,241,226,197,168, 83,167,142,179, 8, 69,126,126, 62,130,131,131, 17, 28, 28, 12, -165, 82,121,207,105,225, 81,130,235,219,153, 61,103,190, 26, 2, 69,145, 19,136, 0, 8, 0, 5,133, 64, 5,164,221,190,130, 15, - 62,252,196,231,218, 71,161, 80, 96,239,222,189, 14, 49,196,243, 60, 8, 33,112, 22, 72,226, 22, 21, 21,229,149, 79, 38,147, 77, -250,229,151, 95,228, 63,252,240, 3, 86,172, 88,225, 72, 91, 26,141, 6, 65, 65, 65, 8, 13, 13,117,108,113,113,113,228,219,111, -191,149,213,169, 83,103, 18,128,223,220,127,115, 26,168,174, 48,163, 74,159, 14,111, 3, 0,250,188, 77,145,115,233,163,186, 92, -238,196,192, 71, 89,100,213,174, 93,123,207,190,125,251,148, 58,157, 14,130, 32,224,183,223,126, 83,119,232,208, 97, 55, 33,164, -101,105,197, 86, 66, 66,194,250,125,251,246, 53, 15, 15, 15, 71, 94, 94, 30,242,243,243, 97,177, 88, 32,145, 72, 16, 31, 31,143, -143, 63,254,152,244,236,217,115,244,144, 33, 67, 12, 42,149, 74,180,108, 36,120, 42,143,156,177,224,179,133, 65,148, 22,165, 31, - 42,208, 98,191,217,233,215,241,218, 27, 31,248, 20,198,114,229,202,189,188,102,205, 26, 63,103,203,146,179, 8,112, 46,163,196, -205,147, 48,176, 91, 53,184,242,229,203, 15,251,241,199, 31, 29,156, 97, 97, 97,142,114,137,231,121,112, 28,135,221,187,119, 99, -250,164, 9, 8, 14,143,193,252,207, 22,121, 13,103, 68, 68,196,226, 46, 93,186,252,111,201,146, 37,142, 99,181, 43, 84, 64,215, -230, 79, 32, 34, 44, 0, 97,193, 69,101, 27, 21, 8, 78, 94,184,230,181, 62, 2,192,149, 43, 87,238,249, 85,171, 86,249, 57, 55, - 8,197,184, 2,128, 78,167,115, 88,241, 77, 38, 19, 26, 54,108,232, 83,220,157, 57, 69,107,155, 40,218, 92,203,122,177, 33, 83, - 18,103,185,114,229,134,137, 66, 24, 0, 66, 66, 66,138,113, 72,165, 82,172,218,180,244,174,186,225,126, 57, 75,251,221, 93, 57, -175, 95,191,142,105,211,166, 57,202, 36,209,170, 71, 8, 65,108,108, 44,230,207,159, 95, 18,167, 59, 52, 2, 16,238,180,111, 2, - 32,119,250,205, 64,209, 10, 19,174,215,137,199,165, 0,234,218,207,217, 0, 20, 0, 8,114,195,231,137, 39, 19, 69,203, 8,133, -187, 92,239,250, 28,247, 66,107,227,198,141, 20, 0,214,175, 95,223,182, 71,143, 30,123, 51, 51, 51,133,243,231,207,115, 71,143, - 30,133, 84, 42, 69, 68, 68, 4, 26, 53,106, 36,118,171, 65, 42,149, 66,163,209,144,160,160,160, 52,177,226, 21, 95,162,115, 95, -187,147,160,225,178,179,179,133,173, 91,183,114,203,158,238, 4, 19, 5,234,189, 63, 29,157,187,117,195,230, 88, 57, 36, 0, 26, -159,207,132, 90,173,230,165, 82,169, 69,252, 24, 34,167,179,239,150,171, 72, 34,132,248,107, 52,154,111,127,253,245, 87, 37,199, -113, 40, 40, 40,128, 32, 8,104,222,188, 57, 56,142,195,233,211,167,241,238,187,239, 98,237,218,181,248,229,151, 95, 84,245,235, -215,255,150, 16, 82,157, 82, 90,224, 84,136,109,115,151, 72,253,253,253,161, 86,171, 29, 66, 75,140,179,179, 9, 92,188,158, 82, -122, 59, 51, 51,179, 65, 73,156, 54,155, 13,189,122,245, 2, 33, 4, 18,137,164, 88,225,227,252, 43,147,201,112,250,244,233,187, - 18,161, 59,129, 40, 8, 2, 90,180,104, 1, 0, 80,171,213,240,243,243, 19,215,125, 3, 0,212,171, 87, 15, 38,147, 9, 97, 97, - 97, 56,119,238,156,187, 2,188, 24,103, 70, 70, 6, 77, 73, 73, 33,203,150, 45,131, 84, 42, 69,104,104, 40,212,106, 53, 89,186, -116,233, 4,153, 76, 22,103, 48, 24, 4,147,201, 4,185, 92, 62, 95,180,110,241, 60,175,205,203,203, 11,245,196, 41,145, 72, 48, -114,228, 72,188,245,214, 91, 88,188,120, 49, 94,122,233,165,187, 44, 94, 6,131, 1, 97, 97, 97, 14,177,229, 75,220,239, 95, 8, - 61, 96, 78,129,226,204,177,205, 56,123,106, 27, 4,155, 0,155, 64, 65,169, 13,130, 21, 56,186,245, 64,229, 59, 87, 83, 98, 41, - 40, 96,239,224, 80,228, 21, 90,219,132, 41,170, 2, 88,183, 35,211, 56,215, 91,250,228,121, 30, 22,139, 5,191,254,250, 43,174, - 92,185,130, 45, 91,182, 64,175,215, 59,222, 99,211,166, 77, 49,108,216, 48,183, 66,203,149,147, 82,186,228,214,173, 91,245, 90, -180,104, 65,114,115,115,145,155,155, 11,189, 94, 15,155,205, 6,171,213, 10,158,231,161, 84, 42,161, 82,169, 16, 25, 25, 9,131, -193, 64,141, 70,227, 18, 79,156,130, 64,242,116,127,141,191,184,105,213,248,198,125,222,166, 88, 61,147,160, 98,121,133,238,143, - 35,254,195,214,237, 25,219, 17, 0, 21,236,218,129, 3,168,197, 38,100,190, 53,225,211,209, 15,253, 27,221, 45,178, 66,245,122, - 61, 10, 10,138,138, 7,185, 92,142,213,171, 87,135,117,239,222,125, 23, 33,164,149, 39,177,229,142,211,223,223, 63, 94, 34,145, -224,244,233,211,248,226,139, 47,240,199, 31,127, 32, 45, 45, 45, 39, 38, 38, 38,176, 77,155, 54,220,107,175,189,134,122,245,234, -225,187,239,190, 83,122,227,164,148,226,250,165,221,184,126,121, 15, 4,129, 58, 89,197,221,255,167, 62,198, 93,171,213, 26,142, - 31, 63,238,247,245,215, 95, 35, 34, 34, 2,137,137,137, 80,171,213, 80, 42,149,197, 42, 89,231,138,215, 91,222,212,235,245,134, -235,215,175,251,253,244,211, 79, 8, 13, 13, 69, 66, 66, 2,212,106, 53,228,114,185,163, 65,176,108,217, 50, 44,255,112, 16,174, - 95, 56,133, 94, 93, 59,122, 13,167, 90,173,254,223,146, 37, 75,138,153, 64, 34,131,131,193, 75, 57, 72,164, 4,193,237,159, 6, - 0,228,252,249,179,199,217, 33, 93, 56, 73, 65, 65,129,225,224,193,131,126, 71,142, 28,129, 32, 8, 72, 72, 72,128, 78,167, 67, - 64, 64,128, 35,254, 91,183,110, 69,207,158, 61,241,195, 15, 63,160,105,211,166, 94,227, 94, 88, 88,104, 56,117,234,148,223,143, - 63,254,136,144,144, 16,148, 43, 87,206, 17,119,113,147, 74,165,144, 72, 36, 72, 74, 74, 66, 94, 94, 30,252,252,252,188,126,163, -163, 71,143,250,253,248,227,143, 8, 14, 14, 70, 92, 92,156,195,226, 38,138,163,153, 11, 63, 44,198,161, 36,209,247,205, 89,218, -239,238,202,217,171, 87, 47, 84,172, 88, 17, 1, 1, 1,208,104, 52, 14,238,146, 56, 69, 45, 2,160, 77,215,174, 93,119,186,124, -194,112, 66,200, 6,167,231,119, 35,132,108,112,254,245,116,157,253,111,171, 9, 19, 38, 52,156, 49, 99,198,180,166, 77,155,254, -180,111,223,190,229,158,248, 60,241, 76,152, 48,161,230,140, 25, 51,166, 57, 95,239,230, 57,158, 45, 90, 93,187,118, 37,246, 72, -242, 0, 80,173, 90, 53,100,103,103, 67,161, 80,160, 81,163, 70,200,204,204,132,159,159, 31,100, 50, 25, 40,165, 24, 61,122,180, -100,236,216,177, 17, 28,199,193,106,181, 58, 10,126, 15,125,237, 2,199,113,104,214,172, 25,206,216,123,132, 58,119,235,134,184, -184, 56,136, 78, 30, 74,165, 18,163, 71,143, 38,111,190,249, 38, 47, 90, 51, 40,165,208,235,245,136,142,142, 86,149,208, 37,247, -218,154, 53,107, 2, 69,147,188,216,117, 38,145, 72,112,254,252,121,204,154, 53, 11, 67,134, 12,193,205,155, 55, 17, 19, 19,131, -183,222,122,203,111,198,140, 25,175, 1,152,236,173, 64,246,243,243,115,136, 44,181, 90,141,215, 94,123,141,111,222,188,121,132, -159,159, 31,252,253,253, 33,118, 3,218,108, 54, 84,168, 80,193,171, 52, 23, 4, 1,155, 55,111, 6,207,243, 94, 45, 90,246, 4, -232, 19,231,193,131, 7, 29, 34,205,185,149, 68, 8,193,153, 51,103, 28,162,206, 7, 78,202,113, 28, 52, 26, 13,162,162,162,160, - 82,169,160, 86,171,201, 79, 63,253,244, 94, 98, 98, 98,244,155,111,190,201,229,231,231,115,205,154, 53,195, 51,207, 60,195, 11, -130, 0,179,217,140,154, 53,107,122,181,188,237,220,185, 19, 95,124,241, 5, 94,122,233, 37,183, 22, 45,209, 89, 50, 32,224, 31, - 31, 11, 81,102, 16, 0,152,173, 22,232, 10,245,142,174, 93,155,205,134, 83, 59, 78, 84,190,122,226, 82,205, 13, 63,253, 32, 5, - 0,195,142,159,157,111,139,126,102,225,202, 42,109, 66,100, 7,119,100,155, 15,122,179, 20,142, 25, 51, 6, 19, 39, 78, 68,255, -254,253,177,117,235, 86,188,251,238,187,120,254,249,231,139, 89,180,124,129,197, 98,249,242,217,103,159,125,105,245,234,213, 85, -223,126,251,109, 78,180,104,169,213,106,209,199, 11, 70,163, 17,122,189, 30, 23, 46, 92, 16, 94,120,225,133,139, 38,147,233, 75, - 79,124, 86,162, 58,169, 86,232,126,171, 16,199, 85,212, 94,251,196,191,197, 19, 9,122,162,106,144,247,116,149, 14,180,203,208, -132, 96, 80, 10, 42, 0, 2, 5,140, 70, 45, 70,143,126, 85,242, 79,125, 39,103,145,101, 48, 24,112,252,248,113,180,109,219, 22, -183,110,221,194,185,115,231, 80,185,114,101, 44, 93,186, 52,124,224,192,129, 37,138, 45, 87,156, 58,117,106, 66,221,186,117,231, - 21, 22, 22,102, 23, 22, 22,206, 3,176,156, 82,154, 75, 8,169,126,229,202,149, 5,155, 55,111,110,249,193, 7, 31, 72, 92,124, -116, 36,158,204,163, 22,139, 21,122,189,177, 68,129, 37,238, 83, 42,248, 26,119, 90,181,106, 85,116,239,222, 29, 82,169,212,209, - 88,115,238, 54,115, 21, 92, 37,149, 31, 0, 4, 66, 8, 98, 98, 98,208,165, 75, 23,200,100,178, 98,156, 98,197,218,165, 75, 23, -140,153,252, 62,190, 28,211, 14, 95, 60, 91, 25, 29,166,166,149, 24, 78,157, 78, 87,184,125,251,118,213, 91, 47,189,132,186,149, - 42, 33, 44, 32, 0,229, 35,195,161, 82,200, 33,115, 14, 19,241,110,100,167,148, 82, 66,136, 32,145, 72, 80,171, 86, 45,164,165, -165,225,218,181,107,184,118,237, 26, 56,142, 67,139, 22, 45, 28, 86,152,203,151, 47, 99,242,228,201, 48, 26,141, 62,199,189, 82, -165, 74,104,215,174, 29,228,114, 57,212,106,117,177, 46, 67,241,157, 22, 20, 20,160, 98,197,138, 88,183,110, 29,170, 84,169,226, -149,179, 90,181,106,104,221,186,117,177,247,169, 82,169, 28,245, 6, 0,220, 58, 88,232,120, 70,108,108,108,169, 56,183, 28,186, -137,175,183,110,135,209, 36, 32, 95,103, 41,118, 67,116, 88, 0,246,252,248,182, 79,113, 23, 57,191,250,234, 43,228,230,230, 58, -202, 32,209,104, 34, 26, 41,202,149, 43,135, 69,139,220, 91, 50,157,180, 8,241,240,253,186,249,216,160, 18,175, 19, 19,151, 98, -198,140, 25,211, 92,239,247,198,231,124,222,229,126,147,139, 56, 75,243,169,235, 80,172, 31,196,204, 16, 27, 27, 11,209, 15, 68, -204, 40,142,130,212,106,197,218,181,107, 17, 17, 17,225,216, 2, 3, 3, 61, 38,108,209,143,104, 76, 70,145,139,208,166, 24, 25, -174, 3,232,154, 65, 29,126, 36, 54,155, 13,107,214,172,129,179,144,241,247,247, 47,177, 27, 73, 46,151,183,105,212,168, 17,103, - 52, 26,239, 18, 89, 51,102,204,192,192,129, 3, 81,165, 74, 21, 8,130,128,194,194, 66,180,109,219, 86, 58,127,254,252, 54,165, - 17, 90,106,117,145,223,191,201,100,194,142, 29, 59, 16, 28, 28,140,208,208, 80,132,132,132,192,223,223, 95, 28, 57, 73,189,137, - 13, 74, 41,122,245,234,229, 72,124,206, 86, 44, 87,209,181,111,223, 62,159,186,228, 40,165,120,226,137, 39,160,209,104,224,231, -231, 7, 63, 63, 63,108,222,188,217,113, 77,227,198,141, 33, 8, 2, 34, 34, 34,176,127,255,254, 18,187, 63, 41,165, 84, 38,147, - 57,174,151, 74,165,100,233,210,165, 19,146,146,146,162,223,120,227, 13, 78, 34,145,224,216,177, 99, 56,123,246, 44, 18, 18, 18, -124,246,217,202,205,205,189, 51, 97,194, 4,219,132, 9, 19, 0, 0, 53,107,214, 68,110,110,110,186,120, 62, 63, 63, 63,171, 83, -167, 78,197,252, 54, 50, 51, 51,179,254,245, 66, 75, 16, 96, 53, 91,161, 51, 24, 80, 88,160,115, 88,135,210, 83,210,130,222,126, -243,117,233,172,209,207, 1, 0,222,156,251, 25, 10, 22,255, 93,144,253,252,230,128,136,167, 63, 93, 49, 30, 64, 79, 47,149, 15, -140, 70, 35,226,227,227,113,232,208, 33, 20, 20, 20,160, 67,135, 14,197, 44,166,226, 59,245,102,162,167,148,154, 8, 33,205,187, -117,235,118,120,206,156, 57, 21,170, 87,175, 78,180, 90, 45,116, 58, 29,156,127, 79,157, 58, 69,151, 47, 95,126, 85,167,211, 53, -163,148,154, 60,241,109,190,253,205,149,206,177,207,175,254,227,152,164, 91, 68,197,139, 1,183,115, 42, 88,179,110, 43,180,249, -250, 11, 6, 27, 61, 11,106, 3,108, 16, 64,173, 2,108,246,110,175,127, 10, 42,149,106,193,158, 61,123, 66, 13, 6, 3,142, 30, - 61,138,193,131, 7,155, 50, 51, 51,229, 0,240,191,255,253,207,180,108,217, 50,121,197,138, 21,177,116,233,210,240,103,158,121, -102, 21,128, 90, 62, 22,244, 63, 0,248,193,245,120,104,104,232,252,155, 55,111,182,113,246,249, 17, 27,171, 0,220, 54, 42,169, - 0, 88, 44, 22,232,245, 70,228,229, 21,192,100,182,216,203, 76, 1, 54,155,213,254, 43,192,106, 47, 71,229, 50,222,191, 65,237, -232, 66, 74, 41, 56, 66,114,143,156,186, 83,206, 83,185,228,169,139,203, 23,107,150, 27,216,196, 81,102,161,161,161,144, 74,165, -248,225,135, 31,112,114,239,102,200, 37, 20, 54,171, 5, 86,139, 25, 54,139, 9, 82,137, 4,127, 28,187,134,142,213,188, 15,228, - 38,132,208,176,176, 48,116,109,218, 20,221,154, 54, 45, 26,222,198,243,240, 83, 40,160,150, 41,139, 44, 89, 0,168,141, 3,124, - 75, 74,130, 24,206,200,200, 72, 28, 57,114, 4, 99,198,140,193,204,153, 51,161, 82,169, 28,163,159,207,159, 63,143,149, 43, 87, -162, 99,199,142,165,142,187,104,193, 27, 63,126, 60, 82, 82, 82, 48,119,238, 92, 52,104,208, 0, 82,169, 20,185,185,185,104,214, -172, 25,210,210,210,124,226,116,238,222,147,203,229,197,172, 79,162, 0, 44,237, 55,114,230,124,174, 87, 52,214,239, 93, 14, 2, -130, 3, 63,190, 94,172, 46, 90,180, 98,119,169, 57, 39, 78,156, 88, 44,156,190, 88,179, 74,209, 48,218,224,139,216,114,186,238, -168,104,108, 29, 63,126,252, 59,132,144, 13,227,199,143,127,103,250,244,233,103,124,225,243,112,126,163,168, 11,157,142, 29,245, - 89,104, 81, 74,169, 92, 46,135, 32, 8,197,196,149,171,227,173,104, 10,116, 54, 53,122, 19, 5,130, 32, 56, 18,133,107,179, 77, - 34,145, 96,255,254,253,216,191,127,127,177,227, 95,127,253,117,137, 21,185,213,106,173,238,239,239, 95,204,154, 37,147,201, 48, -126,252,120, 12, 30, 60,216, 33,178,100, 50, 25,190,255,254,123, 52,108,216, 16, 38,147,169,186, 23,127, 21, 93, 84, 84, 20, 39, - 22, 68, 26,141,134,140, 25, 51, 70, 98,181, 90, 29,239, 68,220, 68,223, 53,111,137, 70, 28,197,178,101,203, 22,159, 44, 90,190, -250, 40, 81, 74,113,226,196,137, 98,226, 77, 28, 53, 3, 0, 39, 78,156,112,248,111,249,194, 41,145, 72, 96,179,217,160, 82,169, -136, 76, 38, 35, 50,153, 44, 78, 20, 89, 18,137,196,241,189,157,125,246,188,197,253,246,237,219,109, 75, 58,159,158,158,254,216, - 78,227, 96,182, 88,160,215,153, 80, 80,168,199,164,233,223, 21, 29,156,132,131, 0, 14, 54,127,121, 12, 70,118,238,216,206,197, - 15,192,151,130,198, 81, 57,174, 89,179, 6, 82,169, 20,235,214,173, 67, 64, 64, 0,122,244,232,129,128,128, 0,188,253,246,219, -232,223,191,191,207, 22, 45,123, 90,202, 35,132, 52,127,237,181,215, 14,127,242,201, 39,229,203,149, 43, 7,147,201, 4,179,217, - 12,147,201,132, 43, 87,174, 96,249,242,229,183,116, 58, 93,115, 74,105,158, 55,190,205,183,191,185,178,118,215,155, 41, 29,250, - 63,163, 63,159,182, 9,169,169, 89,176, 90,111, 67,176, 89, 97,182, 22,141, 96,182, 89,173,176, 90,109,144,201, 36, 1,159,124, -244,250, 86, 1, 20, 28, 71, 76,125,250,244,121,234, 97,125,163,160,160,160,154, 25, 25, 25,184,116,233, 18,134, 12, 25,146,154, -149,149,117, 14, 64,123, 0,200,202,202,218, 51,120,240,224,234, 75,150, 44,137, 74, 76, 76,132,159,159, 95,128, 15,223,199, 15, -192, 72, 0,157,236,126, 32, 34,178, 1, 76, 9, 15, 15, 87, 28, 61,122,244, 46,235,255,174, 93,187, 0,224,160,123,147,129,221, -162,101, 48, 32, 35, 43, 7,195, 95,126,207, 97, 74, 0,104, 49,113, 65, 65, 49,226, 21, 40, 1, 32, 51,237, 10,158, 27, 62, 70, -225,173, 65,224,174, 34, 44,133,143,142,179,165,200,145, 70,253,252,252,138,186,223,214, 45,199,198, 79, 95, 6,108,102, 80,139, - 30, 48,235, 0,115, 33, 4,147, 14, 68,166, 2, 44,122,159,132,150,159,159, 31,252, 84, 42, 68, 4, 5, 21, 77, 2, 41,145, 64, - 42,229, 33, 88, 0, 98, 35, 14, 65, 42,216,124, 74,235, 52, 44, 44, 12,130, 32, 64,165, 82,225,250,245,235, 24, 57,114, 36,204, -102, 51,122,245,234, 5,147,201, 4,131,193, 0,189, 94,143,164,164, 36,232,116, 58,159,226, 46,150,243, 98,239,207,235,175,191, -142,134, 13, 27, 98,242,228,201, 24, 55,110, 28,146,146,146, 48, 98,196, 8, 44, 95,190, 28, 53,107,214, 44,145,215,249,125,138, -156,226,119,113,237,226, 3, 80,234,111,228,202, 89, 52, 62, 0,119,125,247, 87,159,109, 95,106,206, 25, 51,102, 32, 35, 35,227, - 46, 75,150,248, 63, 54, 54, 22, 11, 23, 46,188,215,174,127,209,122, 20,233,206, 32,230,198, 18,213, 8, 69,190, 83,198,233,211, -167,159,153, 62,125,122, 55, 66,200,134,233,211,167,119, 43,193,162,213,213,139,197,171, 43,138,124,178,124, 2,239,210, 55,218, -198,217, 82, 34, 86,164, 98,133,238, 92,200,171,213,106,172, 93,187, 22,226, 8, 16,231,107, 74, 18, 90,191,133,219, 77,199,118, - 75,150,243,126,247,238,221,145,152,152, 88,204,154,165, 82,169, 74, 76, 60,130, 32,224,198,141, 27, 56,115,230, 12,154, 52,105, -130,188,188, 60, 72, 57, 14,111,158, 58,133, 26,207, 62, 11,147,221, 66, 35,151,203,241,210, 75, 47,249,228,208,126,237,218,181, - 96,231,253,176,176,176,228,150, 45, 91,198, 30, 58,116,200,225, 32,111,239, 86,115, 8, 14, 95, 68, 12,165, 20,189,123,247, 46, -102,197,114, 22, 89,206,219,166, 77,155,124,234, 58,164,148,162,101,203,150, 14,107,150,191,191, 63,126,249,229, 23,199,183,106, -213,170, 85,145, 63, 67,100,164, 79,156, 98, 60,236, 14,240, 48, 24, 12, 66, 65, 65, 1,119,244,232, 81,200,229,114,135, 5, 79, -165, 82, 65,169, 84, 66,161, 80,220,211, 8,162,255, 2, 40, 21, 96,178, 88,160,215,235, 81, 88, 88, 52,179,200,149,211,107,138, - 11, 49, 99,254, 61,243,139, 86,171,130,130, 2,252,241,199, 31,248,249,231,159,209,160, 65,131,187,156,225,125,177,104, 57,165, -167, 12, 66, 72,139,177, 99,199, 30,152, 58,117,106, 76, 72, 72, 8,204,102, 51,110,222,188,137,111,191,253, 54, 69,167,211,181, -160,148,102,248,254, 18, 0,139,197, 10,131,206,136,188,252, 2,124,248,209,247, 30,147, 30, 0,100,167, 95, 64,247, 30,125,229, - 15,243, 59,165,164,164,188,209,162, 69,139,143, 10, 10, 10,114,117, 58, 93, 95, 0,179,156, 13,135, 89, 89, 89, 45,123,244,232, - 49, 39, 36, 36,164, 65,122,122,250, 59, 62, 80,142,191,126,253,250, 59,241,241,241,197, 14,218,173,143, 85,210,211,211, 7,181, -106,213,234,125, 0, 33, 78,167,253, 1,108, 1,176,208, 83, 90, 18,187, 14, 11, 11,245, 8, 8,138,198,237,107, 59,189, 6, 68, - 38, 49,128, 10,130,215, 6,160, 59, 43,150,115,249, 84,138,244, 67, 69,159, 64,177,194,126,170,247,179,120,106,228, 12,168,165, -192,180,231,154, 35, 41, 8,128, 42, 4,178, 86,111,131, 4,217,223,209,200, 95,125,226, 31,247,197, 23, 56,118,169,104,102,152, -184,240,112,140,237,223, 31,212, 2,236, 59,123, 22, 43,182,111, 71,255,182,109,161, 86, 42,125,110,176,136,141,240, 43, 87,174, - 96,223,190,125,168, 86,173, 26, 46, 95,190, 92,108, 26, 10, 74,169, 79,241,167,148, 82,113, 16,147, 66,161,128, 84, 42, 69,106, -106, 42,186,117,235,230,104,232,239,220,185, 19, 99,199,142,197,176, 97,195,208,166, 77, 27,183,126,179,174,156,225,225,225, 14, - 3,130,235, 64, 5,231,238,220,210,124, 35,119,156, 34,238,245,187, 59,115, 78,157, 58,213,237,128, 10, 95, 56,157,181, 72, 9, - 56,234, 98, 77,130,232, 47, 37, 10, 35,215,125, 0,193,226,177,241,227,199,191,227,235,125,206,251,162, 69,172, 52, 93,152, 14, -161,213,181,107, 87,226,174,178, 21,205,200,238,160,209,104, 48,106,212, 40, 76,156, 56, 17, 97, 97, 97, 94,125,107, 68, 37, 91, - 18,126,253,245,238,204,182,110,221, 58,111, 93,135,231, 3, 3, 3, 27,182,109,219, 22,121,121,121,184,117,235, 22, 52, 26, 13, -106,124,250, 41, 78,141, 28,137,186, 95,124, 1,174, 93, 59,199,100,171,167, 78,157,130, 74,165, 58, 95, 90, 11,130,191,191, 63, -130,131,131, 29,125,238,162,224,114,178,104, 81, 31, 18, 35,126,251,237, 55,183,173,198,123,241,209, 18, 11,129, 3, 7, 14, 20, -243,207,114, 22, 62, 7, 14, 28,112, 88,180,196,219,124,233,242, 82,169, 84, 84,228, 83,171,213, 8, 9, 9,129, 66,161,128, 74, -165, 42, 38,178,124,177,230,121,155,144, 84,165, 82, 29,210,104, 52, 65,226,121,169, 84,138,130,130,130,220,172,172,172,198,255, -234,174, 67, 80, 88,205, 86,232,245, 6, 20, 22,232,203,156, 95, 28,152,178,118,237, 90, 60,241,196, 19,119,137, 44,241, 93,223, - 67,139, 49,153, 16,210,102,222,188,121, 7,103,207,158, 29, 92, 88, 88,136,239,190,251, 46,175,176,176,176, 13,165, 52,185, 84, - 92, 2,133,197,108,134,206, 96,132,182,176,232, 29,252,117,102,205, 35, 38,136,233,114, 0,203, 93, 45,134, 78,231,255, 2,208, -173, 20,148, 79,196,199,199, 35, 53, 53,181,216,193, 27, 55,110,192,102,179, 25,237,243,100, 61,239,244, 60, 9,165,212,230,173, -236, 48,219,187, 14, 11, 11,139,172, 32, 6,109,102,217,164, 83,187,216,240,228,147,117, 47, 93, 60,226, 72,103,137, 68,130,209, -163, 71,227,212,201,147,104, 31,147,143,164, 40,127,208,252,219,144,181,251, 0, 39, 50, 84,152, 53,231,183, 82,115,175,116, 26, -236, 51,107,229, 74,183,231,254,234,217,179, 84,113,191,120,241, 34, 84, 42, 21,108, 54,219, 93,245, 77,105,227,239, 44, 96,230, -204,153,131,177, 99,199,226,251,239,191,199,169, 83,167, 80,183,110, 93,116,232,208, 1,233,233,233, 56,121,242, 36,140, 70,163, -207,225,116,246,155,187,120,245, 44,182,237,251, 29, 55,146,175, 33, 37,245,214, 61,127,119,103, 78, 87,161,181,118,219,113,244, -238, 88,255,158, 56, 63,252,240, 67,164,167,167, 23,179,100, 57, 15, 32,243,100,209,114,213, 34, 46,200,116,241,133, 18,247, 77, - 46,162,199,117,223,245,122, 0, 72, 7, 32,241,114,159,235,126,230,244,233,211,119,136,150, 48, 59,175,196,155,127,150,219,174, - 67, 81, 20,137, 25,197,213, 82, 37,254,215,104, 52,240,247,247,135,191,191, 63, 2, 2, 2,188, 90,138, 68,161,213,242,106, 65, - 49, 95, 47,209,178, 5, 0,195,134, 13,187,203,162,229, 60,177,167, 59, 24,141,198,157, 59,119,238,172,215,189,123,119,201,249, -243,231, 33,145, 72, 32, 8, 2, 76, 77,155,162,238, 23, 95,224,244,235,175,163,245,245,235, 48,152,205, 80, 42,149,216,188,121, -179, 89,167,211,237, 44,109,185,225, 44,180, 52, 26, 13, 2, 3, 3, 29, 66,195, 23,149, 46,102,222,146,252, 31,196,205,121, 48, -128, 47,153, 90,172, 80,157,253,114, 8, 33,208,235,245, 14,167, 78, 95,172,142,206, 93,135,206, 25,144,227, 56, 4, 5, 5, 57, - 10, 15,209,162,229,171, 53,207,219,132,164,106,181, 58,224,194,133, 11, 21,197,233, 39, 50, 51, 51,209,174, 93,187, 75,255,122, -147,150, 0,152,173, 54, 20,234, 13, 40,212,235,202,140, 86, 76,107, 63,252,240, 3,174, 92,185, 2,179,217,140,233,211,167,223, - 37,176, 74,227, 12,239, 38, 93, 93,169, 95,191,190,240,228,147, 79,226,192,129, 3, 80, 40, 20, 22, 74,105,169,231,191, 18,168, - 0,179,213, 10,131, 94,143, 66,173,246,191, 98,204,116,168,234,115,231,206,193,100, 50, 97,242,228,201,182,195,135, 15,239, 0, -240,178,253, 27,114, 0, 6,181,110,221,122, 74,215,174, 93,131, 8, 33,175, 82, 74,191, 47, 41,159, 91,172,118,209, 94,134,239, - 81, 76, 75,158,202,164,123,153,102,197,185, 98, 21, 4, 1, 47,190,240, 2, 58,196,228,227,233, 6,225,208,222,185, 4,117, 96, - 56, 72, 80, 2,102,205,249, 13,103,174,250,236,138, 73, 1,224,201,214, 61, 81,167,218,221,211,131,181,104, 95,212, 38,219,243, -199, 33,164,101,166,148, 58,238, 90,173,214,163,229,202, 87,139,150,200, 41, 78,179, 34,149, 74, 81,175, 94, 61, 84,174, 92, 25, - 59,118,236, 64,253,250,245,113,249,242,101, 92,190,124, 25,215,175, 95,199,169, 83,167,144,147,147, 83,234,111,244,203,150, 21, -200, 41,200,134, 92, 38, 71,118,110, 38,110,220,190,134,200,208,168,251,254,238, 34,170,118,253, 16, 0, 16, 19, 30, 88, 42,161, -229,204,249,241,199, 31,223, 37,222,203, 96,202,158, 67, 94,246, 75,123,255, 67, 3,239,193, 74,164, 15, 9, 9, 81, 57,247,175, -114, 28,135,192,192, 64, 50,115,230, 76, 9,199,113,240,247,247, 71, 96, 96, 32, 68,115,161, 55,200,229,114,125, 66, 66,130, 74, - 76,136, 98, 70, 12, 8, 8,144,204,156, 57,147,124,253,245,215, 30,173, 92, 94,124,180,102, 15, 30, 60,248,249,228,228,228,224, -136,136, 8,220,185,115, 7,114,185,188, 40,115,180,109,139,150, 87,175,194, 92,228,115,132,139, 23, 47,226,203, 47,191,212, 26, -141,198,217,165,125, 81,126,126,126, 8, 13, 13,117,116, 25,138, 22, 29, 39,209,232,147, 11,102, 73, 38,122,177, 5,120, 47, 93, - 72,174, 98,235,229,151, 95, 46, 38,186,124,133, 76, 38,179,138, 51,191,115, 28, 7,179,217,140,250,245,235, 35, 61, 61,221,145, -105,156, 45,121,190, 8, 45,111, 19,146,242, 60, 15,147,201,132, 86,173, 90,129, 16,130,207, 62,251,236,241,232,142, 20, 4,226, -231, 23,138,152,152, 42, 8,143, 48, 64, 16,202,110, 85, 25,171,213,138, 17, 35, 70, 20,179, 96,137, 35, 27,197,174,127, 74, 41, - 44, 22,203, 61, 79,254, 42,230,235,251,153, 63,142, 2,142, 46, 47,173,214,240,175,251,132, 17, 17, 17, 77, 8, 33,235, 92, 14, -103, 3,152,226,110, 6,119, 59, 28, 31,250,214,173, 91,232,220,185, 51,126,255,253,119,201,207, 63,255,220,126,253,250,245,103, - 43, 86,172,120,171, 95,191,126,229, 94,122,233, 37, 69,171, 86,173,144,153,153,137, 6, 13, 26, 76, 2, 80,130,208,178,191, 71, -131, 17, 90,109,217, 91, 71, 75,106,240,221,143,128,155, 56,241,125,116,136,206, 69,175,186,129, 88,178, 97, 47, 6,213, 83, 1, - 38, 69,169,249,196,176,132,196, 36, 34,161,102,147,187,206, 43, 2,138,186,236, 18,106, 54, 1,119,235,114,169,227,238, 28,102, -215,242,242, 94, 44,122,206,239,115,248,240,225,120,251,237,183,209,169, 83, 39, 92,190,124, 25,187,118,237,194,229,203,151, 49, -102,204, 24,212,172, 89, 19,117,235,214, 45, 21,231,250,109,171,145, 95,152, 7,142,112,200,206,203,130,193,168,199,184, 17, 19, -239,251,187,139,184,182,109, 58, 0, 96,205,214, 99,247,204,249,238,187,239, 34, 53, 53,181,152, 37,235,126,252,178,254,237,112, - 43,180,178,178,178,220,246, 3,134,135,135,167,117,236,216, 49,226,206,157, 59,240,243,243,243, 42,178, 8, 33, 29,196,185, 54, - 82, 83, 83,221,114,250,251,251,155, 59,118,236, 40,141,142,142, 46, 54,218, 80,163,209,220,149,201, 92, 57,237,149, 64, 1, 33, -228,197,230,205,155, 47,217,180,105,147,186,114,229,202,200,207,207, 7,165, 20,223,127,255, 61, 70,143, 30, 13,165, 82,137,139, - 23, 47,162, 71,143, 30, 58,157, 78,247,162,243, 28, 90,238, 56, 61,181,208,196, 89,241,221,136,172, 18,227,238,156, 89,231,205, -155,135,105,211,166,225,157,119, 74,118,245, 88,188,120, 49,224,210,205,231,142,147, 82,138, 89,179,102,149, 25,103, 86, 86,214, -247, 46,214,168,207,158,126,250,105,254,214,173, 91,197,196,149,243,230,166, 96, 42,198,233,109, 66, 82,137, 68,130,200,200, 72, - 76,157, 58, 21,161,161,161,136,138,138,186,203, 18,227,237, 27,221, 99,101,240, 64, 57,109, 84, 56,250,201,140,247, 91,124,183, -108,189, 84, 33, 7,246,239, 90,131,252,156,226,221, 73, 70,243,223, 67,169,229,245,219,195,116,236, 15,159,194,105, 52, 26,241, -241,199, 31,227,195, 15, 63,196,135, 31,126,232,203,119,191,175,184,251, 34,182,220,114, 10,148,168, 53,193, 80,106, 98, 80,163, -102, 48, 4,106,125,164,190,145, 7, 28, 62,116,232, 80,143,208,208, 80, 36, 39, 39,135, 75,165,210, 30,197,204, 85,122, 61, 18, - 18, 18,170, 0,104,230,141,115,204,152, 49,198,247,222,123, 79, 49, 96,192, 0, 60,253,244,211, 24, 48, 96,128, 66, 38,147, 85, -162,148,194,108, 54, 35, 57, 57, 25,127,252,241, 7, 50, 50, 50,206,151, 20, 78,129, 82,162, 82, 7, 65,169,137, 70,141, 90, 65, - 16, 4,107,153,196, 93,172, 4, 93,173, 89,165,156,144,218,109, 89, 7, 0,135,255, 88,135,137,175,215,194,247, 27, 15, 98,254, - 33,160, 78, 80, 58,106,132,103, 64,200, 56,143,183, 6, 53,196,172, 31,143, 0, 0,118,237,244,250,141, 74,156, 31,217,160, 55, -223, 87,220,157, 45, 87,206,207,241,230,163,229,142, 83,108, 36, 22, 20, 20, 32, 55, 55, 23, 75,150, 44,193,115,207, 61,135,244, -244,116, 92,191,126, 29,151, 46, 93,194, 79, 63,253,228, 24,205, 94,218,111,244,230, 11,239,226,189, 89,111,128,130,162,106,197, - 26, 24, 63,242, 67, 52,170,211,244,190,191,187, 43,188, 89,179, 74,226,156, 59,119,238, 61,165,165,255,148,208, 42,169, 85,193, -113, 28,194,194,194, 28,137,196, 57, 1,222, 75,203, 87, 34,145,192,106,181, 58,124,127,196, 13, 0,186,119,239,142, 95,127,253, -213,151,145, 20,155, 8, 33,255,171, 94,189,250,183,147, 38, 77,242,107,221,186, 53, 31, 19, 19,131, 70,141, 26,225,226,197,139, -216,184,113,163,101,225,194,133, 90,157, 78, 55,140, 82,186,245, 94,202, 39,113, 73, 27,231,173, 52,173, 30,179,217,124,235,242, -229,203,209,179,102,205,146,112, 28,135,185,115,231, 58, 50,165, 56,225,171, 51,118,237,218,101, 21, 4,161,196,174, 26,139,197, -114,235,242,229,203,209,159,126,250,169,132, 16,226,224,228, 56, 14,206, 11, 56,151,134,211,157,200, 20, 7, 70,184,219,220,133, -221,221, 55, 46,105, 66, 82,158,231,113,241,226, 69, 76,156, 56, 17,132, 16,172, 89,179,230,177,200, 92,167,206,103,126, 93,183, - 70, 68,112,247,167, 90,212, 6, 33, 48,155,238,158, 13,193, 47,167,208, 33,178,158,254,116, 5,126,126,179,191, 47,162,231,202, -158, 61,123, 66, 62,254,248, 99, 94, 34,145, 96,206,156, 57,197, 38, 13,118,253,238,187,119,239,182,222, 75,183,159,152,159,205, -102, 51,244,250,123,179,162, 80, 74,247, 77,255,232,189,142, 75,127,248, 77, 74,136, 9,251,119,174, 65, 94,174,123,119, 6,185, -148,199,215, 75,214, 90,101, 82,201,173,127,248,211,125,222,171, 87,175, 1, 11, 22, 44,168,225,238,228,173, 91,183, 32, 8, 66, - 73,206, 53,215, 13, 6, 3,110,223,190, 13,157, 78,183,122,194,132, 9,230,223,126,251,237,249,103,158,121, 6,117,235,214, 69, -116,116, 52,238,220,185,131, 43, 87,174, 96,201,146, 37,116,239,222,189,171, 1,140,242,242, 30,215,205,248,232,189, 33, 75,126, -252, 77,206, 17, 51,246,239, 90,131, 60, 23,209,126,183,117, 90,138,111,190, 95,107,150,201,164, 23,188,149,235,206,214,172,178, -172, 24,123, 12, 30,137,167,231,205, 71,133, 70,157, 49, 99,102, 7,124,243, 81, 95,204,126, 82, 6,243,170, 65,168,211,103, 41, -150, 79,238, 2, 0,136,249,198, 71,107, 9, 47,195, 77, 55, 22,171,220, 60,165, 93,220,148,206,106, 42,198,189,164, 50,188,180, - 22, 45,142,227,144,152,152,136, 10, 21, 42,160,121,243,230,168, 95,191, 62,218,182,109,139,147, 39, 79,226,228,201,147, 24, 51, -102,140, 71,145,229,203, 55,106,211,172, 35, 14,182,188,112,223,223,198,245,187,151, 5,124, 73, 75, 35, 71,142, 4,128,255,148, -117,139,191,151,151, 40, 38,204,251, 93,146, 70,228, 52,153, 76,142, 46, 57,231,121,153, 68,231,120, 31, 71,244,109, 37,132,212, -124,255,253,247, 95, 87, 42,149,109,117, 58, 93, 21,187, 69,230,162,209,104,220,174,215,235,231, 80, 74,115,239, 39,172,206,211, - 57,184, 11, 66, 73,247,230,228,228,116,238,220,185,243, 86,158,231, 19, 93, 23,252,117,151,145, 5, 65,184,158,150,150, 86,226, - 16,247,172,172,172,206,157, 58,117,114,203,233,174,128,240,133,211,221,247, 17, 4,193,163,200,242,165, 32,242, 54, 33, 41,207, -243,208,104, 52,248,229,151, 95, 16, 22, 22,246, 88,101,176, 19,103,211, 63, 46,233,124,155, 48,197, 78, 0,225, 79,127,186,226, -230,142, 76, 83,124,155, 48,249,141,159,223,236, 95,190,164,123, 50, 51, 51, 59, 61,247,220,115,191,243, 60,159,232,250,254,221, -125, 11,171,213,122, 45, 53, 53,181,212,211, 37, 80, 74,113,225,194, 5, 97,248,240,225,153, 25, 25, 25,125,239, 37,254,227, 39, -206,159, 61,109,210,232,208, 39, 59, 54,105, 4, 14, 48,121,118,254,165, 4,160,188, 84,114,107,236, 59,115, 95,248, 39,191, 25, -165, 52,159, 16,210,188,119,239,222,163, 80, 52, 52,252, 46, 33, 5, 96, 94, 9, 20,243,202,149, 43, 87, 75, 34,145, 40, 0, 76, -164,148,222, 32,132,124,190,119,239,222, 78, 0,158,144, 72, 36,209, 54,155,237, 54,138,214,124, 92, 65, 41, 61,225, 61, 29,165, -189, 84,183,122,120,220,147, 29,158,232, 12, 66,168,201,100,244,210, 64, 2, 5,165, 84, 38,147, 94, 56,116, 34,165,142, 55,107, -189,125, 5,142, 50,239,178, 31, 53,106, 20, 70,141, 26,229, 72, 79,159,125,214, 18,171, 79,239, 65,159, 58,201, 48,126,217, 2, - 36,160,188,207, 13, 62, 0,120,247,253,225,101,105,217, 44, 54, 72,171,172,124,180, 36, 18, 9, 50, 51, 51,113,241,226, 69,164, -165,165, 65,167,211,225,220,185,115, 48,155,205,200,201,201, 65,173, 90,181,238, 57,156,101,245,141,254, 73,206,255, 98,247, 97, -169,132,150,213,106, 77,246,182,202,186,197, 98, 41,213,168, 36,169, 84,106,168, 92,185, 50,113, 55, 58, 65,252,175,209,104,244, - 62, 22,144,185, 0, 38, 2,152,104, 95,207, 10,217,217,217,247,173, 6,109, 54, 91, 74,124,124,188,196,147,128,177,191,155, 52, - 47, 97,211, 2,104, 90,198, 21, 66,153,115,186,249, 62,218,106,213,170, 57,124,189, 92,231, 68,177, 47,182, 90,162,119,174,183, - 9, 73,181, 90,237,157,206,157, 59,219,156,207, 59, 79,104,250, 88,131,208, 27, 93, 6, 60, 31,191, 35,211, 20, 15, 0,162,216, -130,103,255, 31, 80, 74,245, 0, 90, 63,232,160, 93,189,122,213,244,196, 19, 79,252, 80, 80, 80, 48,146, 82,122,207,222,252,239, -124,240,217, 59,255,182,207, 66, 41,205, 7, 48,237, 30,239,189, 1,160,157,203,177, 19, 0, 78,220, 79,152, 78,156,203, 40,243, -185,197,172, 86,107,114,133, 10, 21, 74,101,185,241, 86,198, 91, 44,150, 18,235,137, 51, 8,196, 59, 7,128,162,101,226,178,124, -226, 52, 24, 12,217, 77,155, 54,149,150, 50,110,233,190,198, 61, 58, 58, 26, 49, 49, 49,142, 95, 17,174,199,189,133,211,106,181, - 38,199,197,197, 33, 44, 44,204,227,140,239,174, 62, 89,190,112,150,245, 55, 42,137, 51, 38,102,105,153,115,150,149, 94,248, 79, - 8, 45,113, 13,195,178, 68, 90, 90,218, 3, 89,115,133,150,133,185,237,111,203, 81, 35,252, 71,145,149,149, 21,122,191, 28,222, - 38, 36, 77, 75, 75,107,251, 95,125,191, 59, 50, 76, 67,239, 58,102, 23, 93,255, 52,180, 90,109,121,111,211, 14,120, 66,159, 62, -125,108, 96,120,228,145,153,153, 89,230,101,250,131,168, 39,178,179,179,107,255, 87,227,254, 32,194,249,111,225,124, 92,192,188, -212, 24, 24, 24, 60, 53, 86,152, 88, 98, 96, 96, 96,184, 79, 16, 0, 29, 60, 20,178, 62,143,244, 33,132,116,184,135, 66,124, 27, -227,100,156,140,147,113, 50, 78,198,201, 56,255, 91,156,222,184,203,122,164,241,163,208,106,125, 96, 27,128, 14,140,147,113, 50, - 78,198,201, 56, 25, 39,227,100,156,255,213,141,117, 29, 50, 48, 48, 48, 48, 48, 48, 48, 60, 32, 48,161,197,192,192,192,192,192, -192,192,192,132, 22, 3, 3, 3, 3, 3, 3, 3, 3, 19, 90, 12, 12, 12, 12, 12, 12, 12, 12, 12, 76,104, 49, 48, 48, 48, 48, 48, - 48, 48, 60, 56,144, 50,156,215,147,129,129,129,129,129,129,129,129,193, 9, 60, 0,108,220,184,209,161,182,186,118,237, 74,216, -107, 97, 96, 96, 96, 96, 96, 96,120,152,120, 92,181, 8,207, 4, 22, 3, 3, 3, 3, 3, 3,195,163,128,199, 81,139,112,238,148, - 36, 3, 3, 3, 3, 3, 3, 3,195,195,198,227,168, 69,184,199, 89, 69, 50, 48, 48, 48, 48, 48, 48,252,123,240,216, 91,180,152, - 85,139,129,129,129,129,129,129,225,159,194,191, 85,139, 16, 66, 40, 33,132, 58,239, 59,254,179, 81,135, 12, 12, 12, 12, 12, 12, - 12, 12,247, 38,176, 40,165,196,211, 47,192,230,209, 98, 96, 96, 96, 96, 96, 96, 96,184, 39,136, 98,202,121,223,217,154,245,192, -133, 22, 33,164, 3,227,100,156,140,147,113, 50, 78,198,201, 56, 25,231,127, 69,112, 81, 74,137,243, 62,207, 94, 15, 3, 3, 3, - 3, 3, 3, 3,195,125,139, 79,234, 78,120, 49,161,197,192,192,192,192,192,192,192,112,159, 34,203, 89, 92, 49, 31, 45, 6, 6, - 6, 6, 6, 6, 6,134,135, 0,102,209, 98, 96, 96, 96, 96, 96, 96, 96,184, 15,184, 58,193,179,174, 67, 6, 6, 6, 6, 6, 6, - 6,134, 50, 22, 91,238,142, 19, 0, 29, 60,220,176,205, 87,242,123, 25,125,224,141,159,113, 50, 78,198,201, 56, 25, 39,227,100, -156,143, 31,167, 55,238,210,232,143, 71, 5,132,144,214, 0,118, 0,104, 99,255,253, 91,120, 81, 74, 31,216, 6,160, 3,227,100, -156,140,147,113, 50, 78,198,201, 56, 25,231,227,188, 21,201,169,191,127,157, 55,230, 12,207,224, 77,165,243,132, 16,254, 94,207, - 63, 44, 78, 6, 6, 6, 6, 6,134,127,184,190,164,226,175,179,191, 22,239,225,226, 74, 0,222, 1, 16,232,116,248, 16,165,116, -186,203,117, 63, 2, 80, 59, 29,210, 2,152, 76, 41,189,236, 67,152,100,118,126,133,125, 19, 0, 24, 0, 24, 1, 20, 0,176,176, -207,246,143, 39,154,166, 0,186,217,255,111,160,148,238, 47,205,249,135,197,249,176, 16, 19, 19,163, 10, 14, 14,238,116,236,216, - 49,249,185,115,231,176,123,247,110,250,245,215, 95,155,115,114,114,182,164,164,164,232, 89,138,121, 44,210,124,103, 0,227,237, -187, 51, 40,165,155,239,147,143,168,213,234, 49, 26,141,166,139, 66,161,136,177, 90,173, 68,167,211,165,104,181,218,173, 86,171, -245, 83, 74,169,112, 15,156, 61, 67, 66, 66,158,175, 90,181,106,165,235,215,175,223, 78, 73, 73,249, 17,192, 42, 0,125, 99, 98, - 98, 6, 37, 36, 36,196, 94,184,112,225,114,118,118,246, 55,148,210,117,255, 84, 56, 25, 24,254, 75,240,228,159,229, 81,104, 1, -152, 72, 41, 29,228,146, 17,239,186,168, 93,187,118, 61,182,108,217,162, 22, 4, 1,226,166, 82,169,172, 0,134,122, 9, 83,232, -190,125,251,226, 71,142, 28,249,116, 74, 74, 74,195,130,130,130,198, 0,160, 86,171, 15, 70, 68, 68, 28,158, 55,111,222, 79,157, - 58,117, 74,182, 11,174, 82, 89, 74,164, 82,233,115,193,193,193, 93,172, 86,107,125, 74, 41,164, 82,233,177,156,156,156,205, 22, -139,229, 27, 74,105,169,197, 27, 33, 68,206,243,252, 40,133, 66,209,217,106,181,214, 6, 0,158,231, 79, 25,141,198,205, 86,171, -245,115, 74,169,233, 30, 56,149,114,185,124, 84, 64, 64, 64, 71,147,201, 84, 27, 0,228,114,249,169,252,252,252,173, 38,147,233, -115, 74,169,225, 17,168,112,120, 0,221, 40,165, 82, 0,144, 72, 36, 61,155, 54,109, 26, 79, 8, 17,196,249, 65, 56,142,171,103, -179,217, 56,251,245,221, 8, 33,135, 41,165,214,210,112, 62,241,196, 19,229,120,158,167,246,153,116, 57,142,227,234,148,134,179, -172, 16, 30, 30, 62, 77, 16,132,152,146,174, 9, 12, 12,108,120,236,216,177,170, 43, 87,174,180,125,249,229,151,185,195,134, 13, -243, 27, 57,114, 36,255,217,103,159,125, 14,224, 85,215,235,195,194,194,102,115, 28, 23,230,203,243, 5, 65,200,204,204,204,124, -131, 21, 87,255, 56,198, 47,220, 86,208,138, 82, 96, 84, 71,127, 14,192,125, 9,173,216,216,216, 37, 67,134, 12, 25, 80,187,118, -109,158, 82, 10,139,197, 2,163,209, 88,117,255,254,253,109,214,172, 89,211, 16, 64,223, 82,230,203, 23,222,126,251,237,169, 83, -166, 76, 9,147, 74,165,196, 98,177, 84, 92,185,114,101,253,151, 94,122,233,181,197,139, 23,151,235,215,175,159,191,120,124,226, -196,137,141, 8, 33, 73,148,210, 79, 31,118, 56, 25, 24,254,131,141,180,214, 40,238,163, 53,137, 82,250, 97, 73, 66, 75, 99,191, - 49, 13,192, 33,209,162,229,122,209,159,127,254,185,158,231,121,209,162,213, 88,171,213, 70,186, 88,193,220, 33, 97,240,224,193, - 77, 87,175, 94, 61,173, 95,191,126,169,106,181,186,242, 51,207, 60, 83, 64, 8,145,172, 92,185,178, 94,133, 10, 21, 84,221,187, -119, 31,220,174, 93,187, 55,127,255,253,247,221, 0, 50,124,140,100,141,144,144,144,181, 31,127,252,113,124,231,206,157,101, 97, - 97, 97,160,148, 34, 37, 37, 37,118,227,198,141, 79, 78,154, 52,233, 77, 66, 72, 47, 74,233,217, 82,188,184, 70, 42,149,106,245, -164, 73,147,162,159,124,242, 73, 62, 42, 42, 10, 6,131, 1,231,206,157,235,176,121,243,230, 86,139, 23, 47,126,149, 16,210,135, - 82,122,184, 20,156,141, 3, 3, 3,215,124,247,246,219,145, 77,158,123,142, 15, 9, 9, 1,165, 20, 25, 25, 25, 29,246, 44, 93, -218,102,196,199, 31,191, 74, 8,233, 77, 41, 61,244, 40, 37, 34,185, 92,206, 45, 91,182,172,174, 92, 46, 7, 0,152, 76, 38,212, -172, 89,147,220, 15,167, 84, 42,229, 62,253,244,211,250, 60,207,195,108, 54, 11, 5, 5, 5,244,153,103,158,225,254,161, 76, 18, -151,146,146, 18, 40,147,201,220,158,183,217,108,104,213,170, 85,162, 76, 38,195,167,159,126,106,201,204,204,172,183, 96,193,130, - 99,203,151, 47, 15,251,252,243,207,251,184, 19, 90, 28,199,133, 37, 39, 39,187,229,180,217,108, 48,155,205,176, 90,173, 48,153, - 76,168, 94,189, 58, 43,169, 30, 13,196, 3,192,111, 39, 13, 0, 16,114,191,100, 26,141,166,218,192,129, 3,249,140,140, 12, 72, -165, 82,152,205,102,164,166,166,162,102,205,154,146, 31,126,248,161, 74,105,249, 42, 86,172, 56,108,198,140, 25,225,191,253,246, -155,121,217,178,101,166,142, 29, 59, 74,135, 13, 27, 22,208,170, 85,171,234,113,113,113,220,183,223,126,107,220,186,117,171,101, -240,224,193,242,233,211,167,135,111,220,184,177, 59,128, 79, 31,118, 56, 25, 24,254,131,216,225,186,168, 52,128, 18,133,150,136, - 67,148,210,158, 0, 32,147,201,234,149, 43, 87,110,137,213,106,141,178, 91,117, 82,165, 82,233,167,102,179,249,184,189,162, 90, - 39, 8, 66, 15,111,150,172,193,131, 7, 55,253,253,247,223,103,237,223,191, 63, 47, 43, 43, 43,106,253,250,245,134, 55,223,124, -243, 58, 0, 92,189,122, 53,169,123,247,238,177,163, 71,143, 78,238,212,169,211,188,182,109,219,190,178,125,251,246,173, 40,234, -146, 44, 81,100,213,172, 89,115,223,174, 93,187,252,131,130,130,138,171,186,132, 4,188,242,202, 43,178, 30, 61,122, 84,104,223, -190,253, 94, 66, 72, 75, 74,233,105, 95, 4, 81,165, 74,149,182,253,249,231,159,126,193,193,193,200,205,205, 69,106,106, 42,116, - 58, 29, 2, 2, 2,208,175, 95, 63, 89,235, 22,205,203,141, 30,243,234, 54, 66, 72, 7, 95,196, 22, 33,164,113,243, 26, 53,182, - 45,159, 62,221,207,114,243, 38, 84, 42, 21, 10, 11, 11, 1, 0,254,254,254,104,152,152,200, 31, 89,186, 52,118,208,184,113, 34, -231, 67, 23, 91,132, 16,133,221, 12,106, 36,132,108,144, 72, 36, 61,229,114, 57,215,179,103, 79,108,219,182,141, 24, 12, 6, 30, - 0,148, 74,165,181,103,207,158, 80,169, 84, 48,153, 76, 2,128, 13,158, 44, 79,238, 56,165, 82, 41,215,182,109, 91,221,161, 67, -135,178, 69, 78,181, 90,109,105,219,182,109,168, 92, 46, 87, 89,173, 86, 90, 18,231, 3, 18,147,184,114,229, 74,177, 99, 5, 5, - 5,200,200,200, 64, 86, 86, 22,140, 70, 35,114,115,115, 33, 8, 2, 81,169, 84, 25,130, 32,128,227,138,140,111,158, 56,101, 50, - 25, 46, 94,188, 88,236,152,213,106,133, 86,171,133,209,104,132,217,108, 70, 65, 65,129,202,223,223,191, 82,141, 26, 53,146, 1, -172,203,206,206,254, 52, 53, 53,245, 6, 43,183,254, 17,220,220,112,220, 80, 30,128, 9,192,181, 50,224, 19, 0, 96,247,238,221, - 72, 75, 75, 67,102,102, 38, 50, 50, 50, 16, 23, 23,135,123,233,142,187,114,229,202,194, 90,181,106,145, 51,103,206,108, 6,240, -217,202,149, 43,135,102,103,103,143, 31, 59,118,108,200, 39,159,124,146, 61,110,220,184, 25, 0,190, 95,185,114,229,203,213,170, - 85,235,114,254,252,249,197,255, 68, 56, 25, 24, 30, 0, 26, 1, 8,183,255,207,180,151,187,161, 78,251, 39,237,249, 86,188,206, - 4, 64,238,230, 87,132,184,159, 1,224,176,211,125,226,254,189,212,159,212,249,215,209,232, 6,128,141, 27, 55, 82,113,115,119, -115,100,100,228,152,118,237,218,205, 58,122,244,104,245, 59,119,238, 4,223,185,115, 39,248,232,209,163,213,219,181,107, 55, 43, - 50, 50,114,140,120,157,221,227, 30, 78,251,206, 67, 52,101,251,246,237,139, 95,187,118,237,140,109,219,182,229,213,171, 87,207, -244,231,159,127, 90, 59,117,234,148, 14,192, 10,192,218,169, 83,167,244,237,219,183,219,154, 52,105,162,250,253,247,223,111,237, -221,187,119,246,234,213,171, 35, 1, 72, 60,112,130, 16, 34, 13, 10, 10,250,101,231,206,157,119,137, 44,103,148, 43, 87, 14, 27, - 54,108, 8, 8, 10, 10, 90, 71, 8,145,149, 16, 78, 16, 66,148, 74,165,114,205,246,237,219,253,252,253,253,145,158,158, 14,169, - 84,138,136,136, 8,228,229,229, 33,245,206, 29,220,184,116, 9,156,201,132, 57, 31, 77,241, 87,169, 84,171, 9, 33,114,111,156, -129,129,129,107,150, 79,155,230,151,181,109, 27, 78, 76,157, 10,179,217,236,232,114, 53,155,205,216, 59,114, 36, 50,254,248, 3, -223, 78,156,232, 23, 24, 24,184,134, 16,162, 44,137,179, 44,224,204, 73, 8, 25, 9, 32, 27, 64, 54, 33,100, 36,165,116,127,205, -154, 53,143,158, 59,119, 14, 45, 91,182,196,170, 85,171,234,140, 29, 59,118,228,216,177, 99, 71,174, 90,181,170, 78,203,150, 45, -113,238,220, 57,212,172, 89,243,168,179, 47,149, 47,156, 59,119,238, 68,187,118,237,114, 86,173, 90,149, 52,113,226,196,105, 19, - 39, 78,156,182, 98,197,138, 10,237,218,181,203,153, 59,119,174,177, 36,206, 7, 17,119,103, 75,147,243, 38, 8,127,215, 49, 49, - 49, 49,233,107,215,174, 69,191,126,253, 56,185, 92,126,167,127,255,254,138, 61,123,246, 80, 0, 27, 74, 19, 78,131,193, 0,189, - 94, 15,173, 86,139,171, 87,175,170, 62,254,248,227, 22, 31,126,248, 97,197,109,219,182,197,190,243,206, 59, 35,194,195,195,143, - 69, 69, 69,197, 63,236,184, 51, 78, 0, 64, 42, 0,179,189,113,119,227,126, 56,219,183,111, 95,171, 98,197,138,145, 43,207, 4, - 35, 71, 86, 21,130, 44, 8,130, 44, 8,182,208, 70,184, 34,127, 10,229,203,151,143,244,247,247,111, 90, 26, 78, 74,233,178,211, -167, 79, 63, 65, 41,253,144, 82,154, 69, 41,157, 53,110,220,184, 73,132,144,221,227,198,141,155, 66, 41,157,101, 63, 62,245,220, -185,115, 77, 40,165,203,255,137,112,178,180,196, 56,239, 5, 94,180, 72, 56, 33,100, 3, 33,100,195,132, 9, 19,218, 2, 8,117, -217,111,230,124, 29, 0,185,187, 95,113,115, 58, 30, 14,160,171,211,125,225,247,248, 62,136,235, 86, 76,104, 1, 64,215,174, 93, - 73,215,174, 93,197, 19,135, 8, 33,235, 1, 28,146,201,100,245,234,214,173,219,115,211,166, 77,254,225,225,127, 63, 63, 60, 60, - 28,171, 87,175,246,175, 81,163, 70, 79,153, 76, 86, 15,192,161,128,128,128,245,112,211,197,104, 71,208,200,145, 35,159,126,246, -217,103,243,235,213,171, 7, 0,185,103,207,158, 85, 55,105,210, 68,107,181, 90,137,213,106, 37, 77,154, 52,209,158, 61,123, 86, -109,177, 88, 10, 26, 53,106,164,105,223,190,253,245, 55,222,120, 99, 48, 0,101, 9,241, 27, 56,115,230,204,184,224,224,224,146, - 94, 0, 10, 10, 10, 16, 25, 25,137,145, 35, 71, 70, 73,165,210,231, 75,122, 97, 60,207,143,154, 57,115,102, 68, 80, 80, 16,114, -114,114, 16, 23, 23, 7,147,201,132,139, 23, 47,194,160, 45,132,165, 32, 31,150,252, 92,100,252,117, 25, 65, 82, 30,131,123,116, -139,228,121,126,148, 23,107,201,168,111,198,141,139, 52, 93,191,142,171,171, 86,193,102,189,219, 80, 99, 53,155,113,234,171,175, - 96, 72, 78,198,140,225,195, 35,229,114,249,168,135,108,201,250,132, 82,170,162,148,170, 8, 33,243,154, 53,107,246,131, 74,165, - 26, 57,125,250,244,206, 91,182,108,121,114,215,174, 93,109,172, 86,171,212,106,181, 74,119,239,222,221,210, 96, 48,240, 10,133, - 2, 60,207, 83, 95, 57,155, 54,109,186, 68,165, 82,141, 88,180,104, 81,231,237,219,183, 15, 62,114,228,200, 40,155,205, 38,183, -217,108,242, 35, 71,142,188,164,215,235,165,148, 82,155, 39,206,135, 13,169, 84, 10,153, 76, 6,149, 74,133, 22, 45, 90,252,245, -245,215, 95, 91,226,226,226,164,107,214,172, 9,142,137,137,209,124,246,217,103,185, 5, 5, 5, 51,125,229, 51,155,205, 48, 26, -141,208,235,245, 48, 24, 12,248,243,207, 63, 19, 71,143, 30,205, 27, 12, 6, 91,247,238,221,179, 45, 22,139,113,220,184,113, 1, - 33, 33, 33,111,178, 6,236, 63, 2, 43,128, 66,187,208, 50, 58,167,101, 66, 72,109,209, 58,235, 11,114,115,115, 23,127,243,205, - 55,113,156, 34, 8,123, 76, 93,240,147, 48, 9, 91, 2, 63, 67,122,252, 91,136,136,171,136, 1, 3, 6, 68, 80, 74, 63, 43,131, - 10,111, 1,165,180, 21,165,116,222,189,220,255,160,195, 73, 8,137,247,243,243, 91, 21, 16, 16,176,199,207,207,111, 21, 33, 36, -254,126,227,220,169, 18,233,208,179,186, 36,185, 83, 69, 66,123, 86,151, 36,119,170, 84,250,185,158, 24, 30, 77,184,104, 17,103, -100, 80, 74,187, 81, 74,187,205,152, 49, 99,154, 83,250, 23,247, 85, 62,230,151,110,148,210,110, 46,105,116, 67, 25,212,161,212, -117,115,104, 10,103, 37, 41, 70,206,121,116, 97,185,114,229,150, 44, 89,178,196,223,149,244,206,157, 59,200,207,207,199,123,239, -189,231,255,236,179,207,190,122,235,214,173, 33, 94,194, 33, 79, 77, 77,173, 63,104,208, 32,165,217,108,206, 17, 4,129,203,207, -207,231, 3, 3, 3,109,226, 5,129,129,129,182,188,188, 60,169, 86,171,149,216,108, 54,227,179,207, 62, 43, 31, 62,124,120, 67, -103,139,214, 93, 18, 55, 60,188, 99,151, 46, 93,228,158,206, 91, 44, 22,104,181, 90,104,181, 90,152,205,102,180,104,209, 66,241, -245,215, 95,119, 2,176,200,211, 61, 10,133,162, 99,199,142, 29,165,217,217,217, 8, 12, 12,196,141, 27, 55,112,237,218, 53, 24, - 11, 11, 97, 46,204,135,185,176, 0,214,130,124,208,252, 60,100, 93,190,128, 38,213,170,202,126, 84, 40, 58, 3,152,237,137, 51, - 32, 32,160, 99,147,161, 67,121,141, 70,131, 54,131,138,198, 25,252, 94,173, 26,168,205, 6,193,102,131,205,106, 69,231,139, 23, - 97,177, 88,192,113, 28, 26,101,103,243, 1, 75,151,118, 4, 48,235,159, 72,236, 10,133,130, 95,182,108,217, 64,185, 92, 14, 74, - 41, 49,153, 76,216,178,101,203,125,115, 46, 93,186,116,176,200,105, 54,155,105,173, 90,181,238,202, 80, 70,163,145, 62, 42,153, - 94, 46,151, 67,169, 84,194,108, 54, 35, 33, 33, 65, 63,104,208,160,125, 31,125,244, 81,121,142,227, 52, 50,153,108, 83, 86, 86, -214,180,148,148,148,171,190,242, 89, 44, 22,152, 76, 38,152, 76, 38,232,245,122,252,245,215, 95, 81,137,137,137,100,228,200,145, - 54,157, 78,151, 52,127,254,252, 43, 91,182,108, 81,207,156, 57,243, 25, 0,175,176, 98,247,225,193,110,149, 14, 44, 31,202,107, -165, 18, 20, 2,240,183,139,130,103, 8, 33, 77,170, 87,175, 30,124,238,220,185, 28, 66,200, 1, 0, 63, 81, 74,239,148,196, 39, - 8, 2, 17, 4, 1, 47, 53,206,197,200,166, 18, 88, 44,121,200,203,203,195,141, 27, 55,112,246,236, 89, 28, 60,120,246,158,194, -169, 84, 42,159,247,243,243,235,164, 84, 42, 19,172, 86, 43, 87, 88, 88,120, 67,167,211,109, 19, 4, 97, 49,117,237, 86,240, 1, - 15, 42,156, 34, 52, 26,205,199,239,188,243, 78,243,192,192, 64, 28, 63,126, 60,105,197,138, 21, 31,227, 62,157,235,149, 82,238, -219,217,115, 63,139,141,141, 8,194,201, 93,191,198, 78,251, 98,229,183, 0,226, 88, 42,254,247,195, 89,139,184,224, 48,128,174, -246,209,232,221,238, 35,159,223,215,253, 37, 89,180, 92, 23,150,190, 75,104,121,136, 24,172, 86,107,148,179, 37,139, 82,138, 59, -119,238,224,246,237,219,200,200,200, 64,112,112, 48,204,102,115,148, 47,245,108, 65, 65, 65,227,208,208, 80,157, 84, 42, 53,234, -245,122,168,213,106, 65, 42,149, 82,251,115,136,125,212,162,205,104, 52, 18,158,231, 45,254,254,254,126, 70,163,177, 42, 74,240, - 37,163,148, 54, 14, 13, 13,117,123,206,104, 52,162,176,176, 16, 90,173, 22,133,133,133, 48, 26,141,136,140,140,132,213,106,173, - 95, 98,147,214,106,173, 29, 30, 30,142,148,148, 20,168, 84, 42, 36, 39, 39,195, 84, 88, 0,115, 65, 1,172,218,124,216,242,242, - 32,228,231, 67,208,230,195, 98,210, 33,182,114, 53,136, 35, 18, 61,193,100, 50,213, 14, 13, 13,133, 86,251,183,187, 25,181, 11, - 44,171,213, 10,171,221, 57, 90,236, 78, 12, 11, 11,131, 56, 34,241, 97,192,238, 63, 53,150,227,184,121, 10,133,130, 31, 49, 98, - 4,238,220,185, 83, 44, 77,140, 24, 49,194,225,147,213,170, 85,171,221, 74,165,210,154,145,145, 1,163,209, 40,245,133, 51, 33, - 33,225,198,123,239,189,119,200,100, 50,197,197,196,196, 4, 25,141, 70,125,149, 42, 85, 98, 84, 42, 85,164,201,100,178, 53,108, -216,112,177, 74,165,178, 20, 22, 22, 82,171,213, 74, 30,133, 76, 79, 8, 1, 33,164,232, 27, 89,173, 8, 11, 11,211,102,102,102, - 30,204,201,201, 25,120, 47,124, 22,139, 69, 28,209, 5,189, 94, 15, 74, 41,142, 31, 63, 14,165, 82, 41,181,217,108,103,172, 86, -171, 90, 42,149,130,179, 59,127, 49, 60,180,239,220,166,106,144,124,246,244, 38, 17, 65,117,187,107,180,106,185, 68, 43,220,168, -155,240,221, 39,103, 87, 60, 59,248,121,255,201,147, 39,199,135,133,133, 41,175, 92,185, 98,152, 50,101, 74,226,178,101,203,136, -183, 70,208,205,155, 55,127,126,231,157,119, 66,186,116,233,146,164, 80, 40, 72, 94, 94, 30, 50, 50, 50,144,150,150,134,107,215, -174,209,147, 39, 79,254,101, 52, 26, 87,149, 38,156, 49, 49, 49, 95,143, 30, 61,250,217, 6, 13, 26, 72, 69, 11,169, 86,171,173, -183,115,231,206, 30,191,255,254,123, 75, 0,165, 78,151,183,110,221, 90,245,238,187,239,106,158,122,234,169,170, 10,133,130, 43, -139,112, 58,131,227,184, 72, 63, 63, 63,108,219,182, 13, 65, 65, 65,224, 56, 46,242,126,191,151,193, 44,196,198, 68,133,194,176, -119, 54,170,134,199,195, 96, 22, 98, 89, 42,126,124, 44, 90, 30, 78, 53, 18, 45, 82, 94,196,146,126,252,248,241,239, 16, 66, 54, -140, 31, 63,254, 29,119, 22, 45,251, 95,155,243,117, 78,215, 27,203, 90,108,149,106, 82, 72, 65, 16,112,251,246,109,164,164,164, -224,246,237,219,200,202,202, 2,199,113, 37,206, 31,225, 28, 6, 66,136,176,117,235,214,224,125,251,246,105, 27, 53,106,148, 43, -250,191, 88,173, 86, 98,177, 88,136,221, 47,134,220,184,113, 67,182,103,207,158,160,243,231,207, 71,162,200, 97, 77,240, 18,185, -187,142,137, 2,203,121, 51, 24, 12, 80, 42,149, 62,197, 85,172, 8,143, 31, 61, 90, 36,178, 10, 11,236, 93,134,121,176,229,231, -129,106, 11, 32,183, 89, 32, 7, 5, 49,232,124,126,127,206, 16, 69,150,217, 46,180, 76, 38, 19, 44, 22, 11, 4, 65,128,213,106, -125,232, 9,156, 82,186,176, 94,189,122,245,127,254,249,231, 97,183,111,223,190,235,124,175, 94,189,240,202, 43,175, 96,244,232, -209,231,187,118,237,122,242,215, 95,127,197,168, 81,163, 32, 8, 66, 93, 66, 72, 30,165,244,247,146, 56,199,143, 31,127,228,214, -173, 91, 59, 46, 93,186, 52, 34, 34, 34, 66, 81,187,118,237,203,181,107,215,150,252,252,243,207,145, 47,188,240,194,209, 39,159, -124,242,250, 31,127,252, 17,178,109,219, 54,165, 32, 8, 13, 8, 33,183,255,233,121,180,140, 70,163,195, 2,101, 48, 24, 96, 54, -155,129, 18,156,223,189,165, 77,241,219, 90,173, 86,145,155,252,252,243, 90,236,222,189,155, 59,123,246, 76,220,136, 17, 35, 69, -135,123, 86,226, 62, 28,129,245,148,156, 35, 95,142,173, 27,170,124,179, 78,168, 86,206,147,194,139, 95,190, 83,120,173,124,128, - 54,178,156,218, 20,151, 24, 20, 51,109,218, 71,209,231,207, 95, 48,190,247,222,123,231,250,247,239, 31,241,230,155,111, 86, 95, -179,102, 77, 75, 66,200, 55,148,210, 92, 15,188,202,161, 67,135, 30,136,136,136, 72,252,226,139, 47,210,111,221,186, 21,108,177, - 88, 52,102,179, 89,208,106,181,215,244,122,253, 54,179,217,188,141, 82,122,180, 52,225,245,247,247,175, 51,116,232, 80,105,110, -110, 46,236,163,117,145,158,158,142,230,205,155, 75,214,175, 95, 95,227, 94,222, 65,118,118,246,108, 66,200,142,229,203,151,119, - 10, 8, 8,104,160, 80, 40,162, 0,216, 10, 10, 10,210,180, 90,237,137,123, 9,103,177,114,206,102, 75, 59,122,244,104,133,128, -128, 0,220,188,121, 19, 54,155, 45,237,126,191,155, 82,198,221, 58,181,107,125,185,106, 97,137,216,179,239, 0,148, 50,238, 22, - 75,205,143, 61, 68, 31, 42, 56, 11, 40, 55, 2,105,223,244,233,211, 85, 51,102,204,192,244,233,211,207,184,179,104,137,130,107, -250,244,233,103,196,235,156,174,223,117, 31,229,137,103,139, 86, 9, 10, 18, 60,207,167,102,100,100, 4, 7, 5, 5, 57, 4, 86, - 74, 74, 10, 82, 82, 82, 32,151,203,113,227,198, 13,200,229,242, 59,190, 52, 66, 84, 42,213,145,122,245,234, 85,185,122,245,170, -108,202,148, 41,229,142, 30, 61, 26,208,188,121,243, 90, 42,149,202, 70, 41,133,193, 96,224,206,157, 59,231, 55,107,214,172,216, -198,141, 27,155, 26, 55,110,124,108,229,202,149,122,148, 48,121, 41, 33,228,208,157, 59,119,146, 18, 18, 18, 68,209, 86, 76, 92, - 57, 11, 46,160,168,203,147,231,249, 99, 37, 5,148,231,249, 83, 23, 47, 94,236,160, 86, 42, 96, 42,200,135,185, 48, 31,214,130, - 2,216, 10,242, 96,203,203, 3,180,249,144, 91,173,144,218, 44, 80, 41,149,184,157,156, 12,158,231, 79,149,196, 41,151,203, 79, -165,165,165,117, 8, 10, 10,114, 84,162, 22,171,181,104,179,217, 96,178, 90, 29, 22, 45,169, 84,138, 91,183,110, 65, 46,151,159, -122,216, 41,153,227, 56,155, 56,133,131,135,120, 32, 50, 50, 82,104,210,164, 9, 70,141, 26, 5,155,205,102,255, 12,164, 13, 33, -100, 15,165,180,208, 19,167, 32, 8,220,185,115,231,158,190,114,229,138, 68, 42,149,114, 79, 60,241, 68,205, 22, 45, 90,152,228, -114, 57,100, 50, 25, 95, 88, 88,232,191,109,219, 54,165,197, 98, 33,118,206,135, 54,143,150,152,118,238,106, 26,217,157,214,245, -122, 61, 10, 11, 11,145,147,147,195,171, 84,170, 42,181,106,213, 58, 96, 50,153, 86, 89,173,214,111,175, 94,189,154,239,137,211, - 46,204, 28,162, 75, 16, 4, 80, 74, 97,179,217, 96,177, 88, 32,147,201,132,157, 59,119, 97,214,156,143,177,228,219,101,180, 71, -143, 30,100,253,250,245, 16, 4, 33,153,149,171, 15, 5,159,230,254,244,145, 18, 86,155,214,184,115,121,225, 15,151,242,181,147, -127,152,123,196, 36,151,228, 55,108, 29, 89, 59, 41,177,138, 36, 40, 40,152, 91,180,120, 94,214,143,203, 86, 95,185,121,243,102, -254,231,159,127,222,180, 74,149, 42,129, 39, 78,156,136, 5,224, 86,104,169,213,234, 74,207, 63,255,252,208,156,156, 28,217,146, - 37, 75, 86,222,185,115,231, 8,128,179,148, 82,173, 83,217,213,149, 16,242, 61,138, 70, 62, 69,218,203,185, 61,148,210, 41, 37, -181,215, 8, 33,216,190,125,251, 93,163, 3,133,251, 83,231, 65, 21, 43, 86,236,119,245,234,213,221,169,169,169,189,221,228,251, -201,149, 43, 87,238,124,230,204,153, 73,148,210,223, 74, 67,172,211,233,198,173, 94,189,250, 19,137, 68, 18, 99,179,217, 82,244, -122,253,184,251,182,104, 89,132,225,211, 23,173,248, 74,111,178,149, 87,201, 37, 55, 13, 22,225, 5,150,148, 31,107,107, 22, 96, -247,209, 18,255, 3, 32, 46,251, 39,236,255, 77, 78,215,102, 56, 89,177, 76, 46, 86, 48,119,231, 50,112,143,147,165,187, 27,113, - 40,138, 46, 79, 51,195, 79, 0,208, 24,192, 33,169, 84, 58,239,217,103,159,157,245,227,143, 63,250,231,231,231, 35, 45, 45, 13, -233,233,233,224,121, 30, 1, 1, 1, 88,184,112,161, 62, 45, 45,109,158,243, 61,174, 51,200,139,121, 35, 44, 44,236,200,178,101, -203,162,190,252,242, 75,126,200,144, 33, 55,186,118,237, 90,117,225,194,133, 87,101, 50, 25,181,217,108,196,104, 52,146,151, 94, -122,169,194,156, 57,115,174, 75, 36, 18,117,191,126,253,136, 70,163, 57,132, 34, 7, 85,247,111, 62, 35, 99,235, 47,191,252,242, -244, 27,111,188,161, 48,153, 76,110, 45, 89,226,177,160,160, 32,236,221,187,215,148,147,147,179,197,139, 21, 99,235,166,223, 54, -182,250, 95,255,254, 50, 75, 65, 62, 44, 5,249,176,230,231,195, 86,144, 11, 82,152, 15,169,205, 10,149, 76, 64, 84,156, 18, 86, -189, 31, 54, 30, 62, 97, 49, 26,141, 37, 78,108,152,159,159,191,117,207,146, 37,109, 26,199,199,243,123,199,140,129,217, 98,193, - 83, 23, 47, 58,196,149,217,108,198,186,218,181, 97, 35, 4,117, 95,124, 17,151,173, 86,107,126,126,254,214, 71, 49, 51,156, 60, -121, 50,125,208,160, 65, 71, 5, 65,168, 95, 26,235,142, 8, 63, 63,191,130,194,194, 66,100,102,102,218,178,178,178, 12, 0,144, -158,158,158,179,126,253,250,115,130, 32, 52,190, 23,206,178,128,197, 98,185,203, 26,101,179,217,138,172,142, 69,150, 3,249,198, -141, 27, 91,157, 59,119, 78,118,250,244,105,236,222,189,187,238,143, 63,254, 56, 33, 62, 62,190,246,141, 27, 55, 82,189,137, 55, -119,147,254,194,238,127,184,114,249, 42,188,252,242,203, 36, 53, 53, 21, 63,253,244, 19,188, 77,158,202, 80,102,208,194,106, 83, -153,118, 46, 47,236,250,219,205,130,253,119,244, 83, 0,108,166,122, 43, 45, 87,174,220,201, 6, 13,130,195, 0,192,104,176, 69, - 85,170, 84,169, 53,207,243,114,123, 26,110, 16, 26, 26,186, 16, 64, 11, 55,229,167,164,127,255,254, 77, 34, 34, 34,234,253,254, -251,239, 39,238,220,185,115,134, 82,122,208,245,186, 10, 21, 42,188,119,254,252,249, 70, 82,169,148,120, 73, 35, 0,128, 54,109, -218, 84,137,143,143, 15,253,237, 82, 32,242,101, 21, 65, 37,121, 0,175,132, 45,168, 14,110,200,170, 35, 46,238, 64,104, 80, 80, - 80,221,220,220,220, 19,165,172, 32,218, 62,253,244,211,223, 46, 89,178, 36,174,117,235,214,148, 16,194,185, 78,233, 80,161, 66, -133, 78,251,247,239,175,255,194, 11, 47,124, 97, 31, 61,236,179,243, 48,165,244, 6,128, 62,101,249,209,182, 92,166,219, 96,159, -243,140,225, 63,131,195, 15,232,218, 50,193,189,204, 12,223, 88, 16,132, 30, 28,199,193,108, 54, 79,143,140,140, 92,215,175, 95, -191, 94, 19, 38, 76,240, 11, 13, 13,117, 88,178, 22, 46, 92,168,191,118,237,218, 26,179,217,124,156, 16, 50, 49, 37, 37,165, 71, - 76,140,199,250,161, 96,254,252,249, 43,186,119,239, 62,228,197, 23, 95,212,215,174, 93, 59,160,106,213,170,186,125,251,246,249, -117,236,216, 49, 95, 34,145,208,189,123,247,250, 87,168, 80,193, 64, 8, 81,252,241,199, 31, 89, 7, 14, 28,168, 48,125,250,244, -111, 80, 52,220,218, 19,150, 79,157, 58,245,189, 30, 61,122, 84, 8, 13, 13, 69,126,126,126, 49,177, 37,254, 87, 42,149, 72, 77, - 77,197,218,181,107,239, 88, 44,150,111,188, 88, 54, 62,255,108,225,162, 87,219, 54,121, 34, 54, 64,173, 66,106,242, 13,216,242, -114, 0,109, 33,228, 86, 11, 84,114,138,216,138,106,240, 18, 13,174,164, 22, 98,201,190,195,169, 86,171,245,243,146, 56, 77, 38, -211,231,175,204,153,243,234,254, 69,139, 98,227,251,246,197,217,165, 75, 29, 93,133,162,208,178, 17,130,242,237,219,131, 11, 12, -196,180, 47,190, 72, 51,153, 76,159, 63,236,196, 34, 8,130,196,100, 50,149, 20, 15, 8,130,144,124,246,236,217, 21,132,144, 2, - 66, 72, 27,251,169, 29,238,172, 89,206,156, 28,199, 9,213,171, 87,255, 57, 50, 50,242,105, 0,218,234,213,171,255,172, 80, 40, -218,153, 76,166, 39, 4, 65, 72, 62,126,252,248, 90, 66, 72, 42, 33, 68,108,117, 60,212,121,180, 44, 22, 11, 38, 78,156,136, 25, - 51,102, 96,252,248,241,142,248,138,221,135,185,185,185,137,123,246,236,145,237,220,185,147,126,241,197, 23, 89, 67,134, 12, 9, -122,241,197, 23,131,190,252,242,203,215, 1,140,243,196, 57,110,220, 56,124,241,197, 23,120,249,229,151,239, 86, 89, 18,137,144, -156,124, 11, 6,131,129,206,159, 63, 63, 69, 42,149, 6,127,243,205, 55,170, 23, 94,120,129,176,114,245,161,224, 93,213,160,247, - 95,179,151, 49,243, 40,165, 59,196, 19, 1, 1, 1,170,159,127,254,133, 7,128, 53,171,215, 74, 41,165,129,226, 4,179, 63,252, -240,131,178,121,243,230, 17, 30, 10, 92,155, 82,169, 52,206,156, 57, 51,116,248,240,225, 79,254,249,231,159,193,132,144, 38, 0, -142, 0, 72,179,139,235, 8, 0,103,195,194,194, 2, 86,174, 92, 25,219,169, 83, 39,141,183,128, 22, 20, 20,124,179, 98,197,138, -132, 57,123, 2,241,155,246,105,220, 18,250,130, 6, 81,132, 68, 20,160,186,223, 77, 12, 28, 56, 48,102,222,188,121, 95, 1,104, - 80, 10,145, 53,176, 87,175, 94, 51,150, 44, 89, 18, 51,124,248,240,212, 99,199,142,165, 1, 88,226, 70,240,101, 62,251,236,179, -119,150, 46, 93, 26, 77, 41, 93, 68, 8,145, 83, 74,215,176,228,195,192,224,200, 75,173, 81, 52, 35,252, 93,226,139,184,243,111, - 34,132,172,179, 90,173, 61,120,158, 95,239, 60, 97,105,100,100,228,171, 38,147, 41,154, 16, 66,101, 50, 89,106, 90, 90,218, 60, -231, 9, 75,147,147,147,123,196,197,197, 57,238,177, 79,186,233, 60,215, 70,192, 83, 79, 61,213, 97,255,254,253, 11, 54,108,216, -144, 94, 80, 80,224,183,122,245,106,213,140, 25, 51,110, 8,130, 64,223,126,251,237,248,206,157, 59,235,108, 54,219,157, 23, 95, -124,177, 66, 98, 98,226,139,231,207,159,223,230, 44,180,220,112,130, 16, 82,163, 98,197,138,123,215,172, 89, 19, 16, 20, 20,132, -244,244,116,100,103,103, 67,171,213,194,102,179, 65, 42,149, 34, 35, 35, 3, 83,166, 76,201, 79, 73, 73,185,107,194, 82, 15,156, -141, 19, 98, 99,183,206,155, 52,209, 63,136,231,144,117,225, 28,172, 57, 89,144, 90, 45, 40, 87, 35, 16, 50,185, 10,151, 47, 22, -224,245,229,107, 11,110,102,231,222, 53, 97,169, 39,206,134,149, 42,109,251, 98,236, 88, 63,195,173, 91,136,126,238, 57,232,116, - 58,152,205,102,112, 28,135,191,230,205,131, 44, 60, 28,239,173, 92,169, 61,115,243,102,123,215, 9, 75,221,113,150, 65,226,112, -112, 18, 66, 70, 18, 66, 28,206,240,189,122,245, 42,118,237, 47,191,252,130, 69,139, 22,193,104, 52, 90, 41,165,175, 82, 74, 23, - 18, 66,252,236, 9,170,208, 27,103, 66, 66,194,205,154, 53,107, 30,182,217,108,188, 93,100,208,179,103,207, 54,184,118,237, 90, - 57, 23, 78,222,206,105,125, 88,113, 15, 13, 13,157,247,251,239,191, 39, 68, 68, 68, 16,231, 25,219,237, 66, 17, 0, 48,106,212, -168,246, 7, 14, 28, 80,212,171, 87,207,152,153,153,217, 40, 60, 60,252,207,101,203,150,133,245,235,215, 47,229,204,153, 51,177, -174,156, 97, 97, 97,179,214,172, 89, 83,177, 98,197,138,156,104, 21,115,237,158, 28, 54,108, 88,135,101,203,150,201,159,126,250, -105,163, 86,171,141,244,247,247,191,178,102,205,154,176,158, 61,123,166,158, 57,115, 38,250, 97,196,157,113,186, 71,205,154, 53, - 47,159, 57,115,166,162,184,175,215,235,145,145,145,129,204,204, 76, 4, 5, 5,161, 99,199,142,127, 93,187,118,173,162, 59, 78, - 66, 72,189, 62,125,250, 76,250,234,171,175, 58,104, 52, 26,217,174, 93,187,180,219,182,109, 51,220,184,113,195,106,177, 88,104, -116,116, 52,223,162, 69, 11,101,151, 46, 93, 52, 10,133,130,123,255,253,247, 51, 63,250,232,163, 48, 66,200,114,113,249, 51, 87, -206,250,245,235, 31,220,180,105, 83, 99, 66, 8, 36, 18, 9, 76, 38, 51,114,115,115,113,251,118, 50,206,158, 61,139,253,251,247, - 99,203,150, 45, 39, 10, 11, 11,235,249,152,223, 67, 1,236, 50, 26,141, 85,229,114,185,207,194,222,102,179,129,231,249, 11, 0, - 58, 81, 74,147, 89, 90, 98,156, 12,127,251,103,149,202, 25,222, 46,192, 26, 19, 66,214,217, 15, 29,114,157,194,129, 16, 50,129, - 16, 50,209,201, 10,230, 45, 44,249,191,255,254,251,238, 14, 29, 58,140,106,223,190,253,156, 78,157, 58,221,185,115,231, 78,210, -236,217,179,227,172, 86,171,249,236,217,179,220,149, 43, 87,110, 28, 57,114,164, 98,229,202,149, 95, 60,127,254,252, 78, 47,214, - 44, 49,172,103, 9, 33,205,219,182,109,187,246,197, 23, 95, 44,223,164, 73, 19,121, 80, 80, 16,120,158,199,213,171, 87,113,226, -196, 9,211,202,149, 43,147,115,115,115,125, 94,130,135, 82,122,136, 16,210,177,223,232, 87,215,188,216,171,123,216, 19, 85,171, -200,163,163,163, 1,189, 30, 23,110,166,226,192,133, 19,230,175,119, 31,200, 48, 26,141,189,125, 93,130,199,206,217,161,221,216, -177,107, 38,255,239,127,145,184,115,135,143,142,142,134, 92, 46,199,181,107,215,112, 69, 16,172, 51, 23, 47, 78,203,207,207,127, -232, 75,240,136,115, 94, 9,130,192, 3,128, 74,165,194, 43,175,188, 2,231, 37,119, 22, 45, 90, 4,189, 94, 15, 0, 60, 33,228, - 19, 66,200,183,158,172, 88, 30, 56,203,255,246,219,111,229,157, 57,171, 85,171,230,142,211,248,176, 51, 73,118,118,246,123, 79, - 61,245,212,116,158,231, 61,206,122, 27, 28, 28,140,130,130, 2, 88,173, 86,219,237,219,183, 47, 4, 7, 7, 67, 42,149,130, 82, -234, 54, 31,101,101,101,189,215,187,119,239,169, 28,199, 69,120,226, 12, 8, 8,184,241,231,159,127, 86,122,225,133, 23,184,239, -190,251,238,234,240,225,195, 21,127,254,249,167,141, 82,186,150, 21, 93,143, 22,156, 27,165,246, 70, 28, 45,225,218,227,132,144, - 57, 71,142, 28, 9, 31, 53,106, 84,210,255,254,247,191,128,182,109,219,250, 57, 95,163,215,235,133, 95,127,253, 85,187,104,209, -162,188,221,187,119, 95, 31, 54,108, 88, 19, 20,249,151,184,197,205,155, 55, 55, 78,155, 54, 45,176, 75,151, 46,149, 1, 56,252, -179, 50, 50, 50,112,227,198, 13,156, 62,125,250,134,217,108, 94, 95,138,248,100, 17, 66, 38, 15, 24, 48,224,147,165, 75,151,198, - 12, 31, 62, 60,117,229,202,149,167, 81, 52,193,176, 43,130,122,245,234, 85,123,233,210,165,209,195,135, 15, 79, 5, 48,133, 82, -202,252, 8, 25, 24,254, 70, 27, 87, 63,173, 18,125,180, 0,228, 9,130, 0,131,193, 16, 41, 8, 66, 15, 65, 16,224,231,231,231, -238,186,198, 41, 41, 41, 61,156, 23,149,134,151,229,114, 0,100,108,219,182,109,235,242,229,203,219,191,253,246,219,255,203,205, -205,109,124,242,228,201, 38, 0, 32,149, 74,247,107, 52,154,131,211,167, 79,127,110,220,184,113, 25,190,136, 44, 23,177, 85,125, -214,172, 89,101,182,168,180, 93, 24, 85,250,124,213,218, 81,223, 40, 20, 29, 93, 22,149,222,106, 95, 84,218,112, 47,156, 99,191, -250,106, 84,192,170, 85,143,236,162,210, 70,163,209,250,244,211, 79,127,195,113,156, 96,111,197,242, 70,163,241, 57,148,114,164, -170, 43,103,175, 94,189,190,147, 72, 36, 86,187,165,136, 51, 26,141,207,223, 15,103, 25, 86,162,133, 0, 70,151,116, 77,173, 90, -181,150,173, 95,191,126, 80,143, 30, 61,108,102,179, 57,189,123,247,238,252,193,131, 7, 41,199,113,219, 60,112, 26, 1,188, 85, - 18,103, 84, 84, 84,252,103,159,125,118,108,204,152, 49, 1,203,151, 47, 15,217,179,103,143,109,254,252,249,249,217,217,217,159, -178,114,235,209,130, 84, 42,133, 90,173,134,201,100, 66, 70, 70, 6,188, 77, 89, 69, 41,221, 78, 8,233, 50,118,236,216,103,198, -142, 29,219, 37, 42, 42,170, 66, 66, 66,130,154,227, 56,220,190,125,219,154,146,146,146,110,177, 88,182, 2, 88, 11, 0, 21, 42, - 84,120, 22,192,215,158,248,178,178,178,166, 18, 66,182, 47, 93,186,180,171, 70,163,169,174, 84, 42, 67, 44, 22, 11, 87, 80, 80, -144,173,215,235,207, 25, 12,134, 13,148,210,125,165, 76,247, 43, 9, 33,153, 67,134, 12,249,118,201,146, 37,113, 87,175, 94, 45, - 56,114,228,200, 83,174,215, 85,175, 94,125,207,210,165, 75,163, 95,120,225,133, 59, 43, 87,174, 44,149,143, 22, 3,195,127,164, - 33,182, 19, 30,252,139, 61, 85,112,211,228,114, 57, 15,251,226,210,162, 69,203,205,117,135, 92,124,178,242, 0, 76,243, 33, 76, -218,129, 3, 7, 94, 27, 56,112,224, 39,246, 48, 72, 80, 52,133,131, 21, 69, 30,255,102,120,153,210,193, 67, 68,173, 0,190,178, -111,101,245,242, 12, 40,154, 47,103,214,163,204, 89, 6, 97, 50, 18, 66,198, 18, 66, 62,177, 31, 26,123,252,248,241,133, 46, 22, -170,147,206,231,189, 89,158,220,113,158, 56,113,194,149,243,116,105, 56,255, 73,228,230,230,190,250,217,103,159, 29, 26, 63,126, -188, 98,232,208,161, 56,125,250, 52,102,204,152, 97,204,205,205, 93,126,175,156,169,169,169, 55,162,162,162,234,207,157, 59,247, -205, 57,115,230,244, 36,132,176,181, 14, 31, 17,232,245,250,191,234,212,169, 3, 82,228,176, 68,173, 86,171, 99,180,168,125,134, -255,191,124,177, 26, 1, 88,108,223, 64, 8, 9, 65,209, 40,195, 44, 74,169,107, 67,114,172, 15,124,251, 1,236, 47,227,188,191, -157, 16,242,220,149, 43, 87,166,253,245,215, 95,110,133,218,229,203,151,119,180,104,209,194,255,228,201,147,239, 82, 74, 55,178, -212,193,192,224, 59,120, 15, 25,239, 50,128,255,249,144, 65,167,223,199,179,109, 62, 88,191, 24, 30,174,216, 90, 72, 8,249,214, -201, 26, 83,170,243, 15,139,243,159, 66,114,114,114, 14, 0,199, 82, 36, 73, 73, 73,119,249,177,221,171,216, 66,209, 44,240,108, - 38,248, 71, 8, 87,175, 94,125,234, 1,228,177,236, 71, 52,239,239, 0,208,196,211,121,139,197, 50, 17,192, 68,150, 42, 24, 24, - 74, 15, 54,251, 52,131,107,129,107, 44, 73,240,120, 59,255,176, 56, 25, 24, 24, 24, 24, 24, 30, 21,184, 89,235,176,181,227, 28, -128, 14, 30, 42,191,109,165,120, 64,169, 23,244,244,198,207, 56, 25, 39,227,100,156,140,147,113, 50,206,199,143,211,137,123,142, -135, 83, 23, 92,248,190,252, 55, 10, 47,199,232, 67, 74,233, 3,219, 0,116, 96,156,140,147,113, 50, 78,198,201, 56, 25, 39,227, -188,199,231,188,248, 48,158, 83,198, 97,166, 0, 90,139,251, 60, 24, 24, 24, 24, 24, 24, 24, 24, 24,202, 4, 62,205,163,181,122, -245,106,137,248,127,192,128, 1,195,108, 54,155, 99,216,187, 68, 34,249,236,167,159,126,250,182,164,135,244,233,211,199, 86, 18, -167, 59,120,123,142, 59,206,154, 85, 2, 71,132, 6,170, 95,205,205,211,205,189,154, 98,219,109, 48, 24,170,139,231,148, 74,229, -185,111,191,253,246, 82, 89,135,115,216,176, 97,149, 93,159,147, 16, 39,109, 19,226,175,124, 37, 59,183,112,246,233, 75, 5, 95, -178,100,246, 96,209,183,111, 95, 73,105,174,191,118, 45,136, 59,134,232, 79, 3, 52,178,238,133, 90,203,167,182,163, 19, 23, 60, - 14,239, 33, 58, 58,186,106, 64, 64,192, 96, 0, 53,116, 58, 93,132, 90,173, 78, 7,112, 54, 63, 63,127,217,157, 59,119, 46,248, -202,211, 38,145,220, 0, 80,222,190,123,115,199, 53, 26,239,203, 57,111,232, 92,145, 24, 40,160, 32, 4,230,205,151,169, 99, 1, -205, 39, 43, 17,131, 64,239, 62,222,185, 18, 49, 81, 10, 25, 1,140,155,175, 80,229,227,146, 94, 9, 33, 1, 0, 58, 2,168, 9, -224, 36,128, 45,148, 82, 29,203,201, 12, 12,143, 15, 92, 39, 42,117,222,231, 61,136,137, 86, 50,158, 44,160,160, 65, 0, 13, 53, - 26,141, 82,185, 92, 14,147,201, 4,181, 90,245,249, 75,195,135, 77, 2,135, 92,139, 21,175,124,251,237,183,247,188,210,117,105, -158,211,167, 79,159,237,174,247, 7, 7,168,166,238,248,245,237,224, 86, 93,103,206, 48, 93,203, 28, 87, 80, 80,192, 41, 20, 10, - 24,141, 70, 4, 6, 6, 54, 31,241,226,139, 13, 56, 41, 53,201,100,154,125,115,230,204, 73,189,215,112,190,254,250,235, 81,102, -179,161,153, 32, 8,114,147,201,164,112,125, 78,160, 90, 51,115,199,175,111,171, 91,119,155, 49, 9, 0, 19, 90,143, 16,138, 68, - 86,212,151,175, 13,124, 98,232,199, 99, 58, 32,168,205,204,113, 0, 22,252,203, 51,180, 36, 41, 41,105, 84,124,124,124,255,197, -139, 23,203,146,146,146,160, 84, 42,161,215,235,163,255,250,235,175,232, 17, 35, 70,180,174, 80,161,194,138,171, 87,175,126, 78, - 41,181,249, 64, 89,126,199,247,239, 3, 0,154, 15,158, 82,158, 16,242, 22, 0, 29, 0,180, 78,248,251, 92,155,161, 83,202, 19, - 66,198,162,248,104,225, 59,148, 82,183,147,100, 82, 64,190, 97,233, 44,244,120,246, 45,158, 16, 50, 66, 60,222,165, 50,176,233, -135,121,120,114,192,171,197,142,119,174, 0,254,215,165,179,208,237,217,183, 60,174,106,254,100,101,206, 34, 8,212,163, 37,158, -227,136,117,243,101,234,110,129,225, 52, 74,233,102, 55,239,178, 51,138, 22,116,118,123,125,183,106,124,154,217, 98,115, 59,225, -172, 76, 42, 73,223,112,222,122,215,189, 67,235, 19,139,197, 86, 84,182,202,120,216, 2, 3, 3,119,188,251,238,187,124,183,110, -221,240,245,215, 95,183,248,242,203, 47, 95, 36,132,252, 1, 96, 61,165,244, 10,203,165, 12, 12,143,175,224,242, 40,180,120, 9, -190, 88,191,230,219,138,105,233,153, 24,242,194,155, 88,190,124, 57,114,114,114, 16, 28, 28, 12,185, 76, 38,157,251,201,251, 81, - 1, 1,154,168, 33, 47,142,251, 2, 64,213,123, 13, 80, 41,159, 83,233,174, 8,217, 39, 52,229, 37,156, 84, 46,151,115, 43, 86, -172, 64,110,110, 46,130,130,130, 32,151, 75,185, 57, 51, 38,168, 2, 2,252, 84,207,143, 28,223, 2,192,170,123, 13,167,201, 84, -216,226,231,229,223, 6,100,100,100, 96,232,203,227,224,250, 28,153, 76,102, 19, 43, 22,150,204,254, 57,100,102,102, 18, 0, 8, - 11, 11,163,197, 69, 86,147,161,115,222,232,132,215,103,111,129,206, 96,250,225,223, 30,207,164,164,164, 81,125,251,246,237, 63, -117,234, 84, 25,199, 21, 13, 28,214,106,181,208,235,245,136,141,141,197,142, 29, 59,100,239,189,247, 94,255, 95,126,249, 5, 0, -230,151,150,255,204,153, 51, 9,229,203,151, 55, 0, 64,247,218,254,174,231,226,197,115, 0,224,239,239,239,149, 47, 52, 72, 99, - 60,115,230, 64, 13,241,190, 81,237, 99,109, 30,142, 27, 0,168, 75,226, 18, 4,202,111, 89, 48,194,227,249, 23,166,254,104, 61, -185,106,119,213,164,164, 36,189,243,113, 15, 19, 46, 3, 64,100, 97, 97, 97,121,215,131,226,245,102,139, 45,194,211,243, 58,189, -178,200,173, 0,179,216,192,255,248,227,143, 0,128, 79,223, 26, 36,249,234, 96, 38,207,243, 69, 69,237, 39,159,124,130,201,147, - 39,203, 55,111,222,220,101,233,210,165, 93, 8, 33,115, 61, 9, 85, 6, 6,134,127,159,200,114,254, 45, 81,104,113,132,248, 7, -248,251,161,207,192,151,240,251,239,155,208,170, 85, 43,199,185,196,196, 68,244,237,221, 19, 63,125, 63, 7, 0,252,239, 39, 80, -247,251,156,156, 60,237, 7, 79,246, 95, 48,229,102,106,225,254, 13, 27, 54,160,101,203,150,197,238, 31,216,175, 15,126,248,230, - 19, 80, 74,101,247,245,242, 40, 39,243, 15,208, 96,192,144,151,225,238, 57, 47, 14,237,181,161,115,223,121, 29,210,178,180,115, - 88, 82,123,184, 56,127,254,188,196,104, 52, 14, 8, 8, 8,104, 34,149, 74, 35, 21, 65,229,133, 20,190,113, 86, 6, 73,186,154, - 30,161,107,245, 70,135,200, 39, 63,125,173, 45, 94,159,189, 5,115,151, 31,248,190, 62, 82,255,213,115, 1, 69, 71, 71, 87,141, -143,143, 47, 38,178, 10, 10, 10, 80, 88, 88,136,252,252,124, 20, 20, 20,128,227, 56,140, 27, 55, 78,182,115,231,206,254,209,209, -209,219,124,232, 70,188,217,124,240,148, 34,177, 33,145, 22, 78,156, 56,209, 24, 17, 17, 97, 84,171,213,148,151, 41, 10,218, 12, -157,226, 15, 0, 28, 47, 43,152, 59,119,174, 41, 54, 54,214,192,243,188,252,213, 87, 95,245,105,122, 24,163,209, 72,157, 57, 77, - 38,163,227,248,204,153, 51, 77,145,145,145, 70,181, 90, 77,205,102,147,207,239,225,212,181,108, 40,100, 18, 40,100, 18, 40,229, - 82,248, 39, 52,130, 34,231, 52,172, 86, 43, 62,254,248, 99,115, 84, 84,148, 73,173, 86, 83,185, 92, 46, 27, 51,102,140,215,112, - 14, 27, 54,140, 6, 5, 5,153,213,106,181,108,242,228,201,119,205,238,252,231,201,219, 80,201,165, 80, 43,120, 84, 74,140,131, -130,234,125, 14,171, 68, 82,188,167, 91,161, 80,160, 69,139, 22,168, 81,163, 6,214,173, 91,215, 6, 0, 19, 90, 12, 12,255,114, -184, 90,177,238, 18, 90, 27, 55,110,108, 13,251,170,211, 93,187,118, 45, 90,109, 26, 20, 99, 71,245,198,243, 67, 7,192,102, 19, - 28,203, 77, 16,142, 96,228,115, 93, 32, 8, 54, 95, 30,236,117,136,103,105,159,227,204, 73, 9, 39, 1,128,138,241,209,244,197, -231,255, 7,155, 32, 20, 77,131, 10, 0, 18,224,165,161, 79, 22, 29, 43,131,112, 74, 96,195,155, 35,158,129,187,231, 84,173, 24, -195, 89,205, 6, 16,167,197, 30, 31,196, 98,155,140,179, 56,246,237,219, 23,173, 86,171,103, 15, 26, 52, 40,102,204,152, 49,114, - 27, 31,196,175,222,159, 21,248,246,194,253, 49, 58,163, 89, 50,176,109, 2,222,248, 95,109,188, 49,247, 79, 81,100,189,152,152, -152,251,175,254, 70, 1, 1, 1,131, 23, 47, 94,124,151,200, 74, 75, 75,227, 10, 11, 11, 97, 54,155,133,130,130, 2,216,108, 54, -140, 31, 63, 94,250,222,123,239, 13, 38,132, 76,182,243, 24,221,113,238,184, 70,227, 9, 33, 99,207,156, 57, 19,255,238,187,239, -154,219,181,107,119, 51, 49, 49, 81, 43,145, 72, 16, 29, 29, 61,175, 99,199,142, 33, 83,167, 78, 53,119,233,210,229,186, 68, 34, - 65,165, 74,149,180,167, 79,159,142, 7,160,242, 53,238,206,156,223,254,249,153,216,234, 67,199,142, 29,111, 84,170, 84, 73, 43, -145, 72,112,233,215,153,212,215,247, 41,229, 57, 84,142, 13, 20,155,145,128,202, 15,200, 41,218,237,216,177, 99,114,213,170, 85, - 11, 57,142,195,169, 83,167,226, 0, 40,189,113,170, 84, 42,203,192,129, 3,111, 94,184,112,225,174,235, 1,128,151,112,104, 82, -213,110,192,138,173, 15, 36,239,241, 24, 78,169, 4,214,247, 70, 13,226,131,148,128,194, 63,204,152,159,159,143,128,128,128, 34, - 11,153,217,140,227,199,143,163,105,211,166,173, 87,173, 90,181,147,229,119,198,201, 56,255,134, 59, 45,242,111,179,102,137,130, -203,157,143,214, 14,215, 72,217,108, 86, 36,150,143,196,204,247,135,193,102, 19, 96,179,217, 96,181,255,218,108, 54, 88,204,230, - 50, 9,220,253, 60, 39, 56, 64, 53,117,211,138, 87,130,219,245,250,164,253,244,119,135,110,181,217, 0, 65,176,192, 98, 1,108, -130, 5,130,205, 6,139,197, 84, 38,225,180, 8, 2,226,227,162, 48,253,221,161,112,125,206,178,159, 86,117,255,115,253, 56,117, -171,110, 51,222, 4,240, 49,211,246, 15,199,146,165, 86,171,103, 47, 91,182, 44,190, 81,163, 70, 28, 0,236,190,104, 85,188,189, -112,127,204,230,233,205, 73,243, 26,161, 72,207, 53,226,213,207, 79,224,247,253,233,155, 92, 69,214,191, 24, 53,146,146,146,138, -137,172, 89,179,102,133, 45, 92,184, 48, 22, 0,122,247,238,125,187,125,251,246,153, 23, 47, 94, 68,116,116, 52,201,204,204,236, - 10,224, 85,123,198, 31, 75, 41, 93,232,129, 87, 91,190,124,121, 67,120,120,184, 81, 20, 68, 28,199,129,231,121,148, 47, 95,222, - 16, 17, 17, 97,172, 84,169,146, 86, 38,147,129,227, 56,136, 66,207,199, 2, 8, 18,137, 4, 34,167,171,181, 71,228, 44, 13,164, -188,211,245,244,110, 11, 18,199,113,110,159,231, 9, 74,165,146, 2,240,120,189,132,115, 42, 30,249,146, 61, 4,190, 63, 70,165, -132,144, 29,148, 82, 28, 59,118, 12, 87,175, 94,133, 76, 38, 67, 84, 84, 20, 38, 79,158, 12,163,177, 72,239,246,237,219,183, 53, -128, 83, 44, 55, 51, 48, 56,176,227,223, 38,176, 92,173, 90,238,124,180, 56, 55,106,210, 33,128,138,196,142, 27,241, 99,177,194, - 98, 49, 3, 94, 22, 85,245, 85,104,121,122,142,205, 38,148,248, 28,209, 71, 75, 16, 40,239, 86,100, 9, 2,172, 22, 75,153,188, - 64,193,102,129, 32, 88,224,238, 57,132,112, 54,123,129, 47, 99,249,228,225,192,104, 52, 14, 28, 48, 96, 64,140, 40,178, 0, 32, -179,192,194,235,140, 22, 73,243, 26,161, 92,131,182,125, 17, 17,164,192,202, 93,183, 17, 17,164,222,245,152,136, 44,232,116,186, - 8,165, 82, 9,173, 86,235,176,100, 45, 92,184, 48,214,100, 50,113, 38,147,137, 91,185,114, 85,220,242,173, 23,203, 45,219,124, -177,220,226,181, 71,203,229,228,228,213,160,148,170, 40,165, 42, 0,159, 16, 66, 20, 37,241,203,100, 50,135, 64,113, 22, 64, 10, -133,226,158, 4,140,163,160,177,139, 51,153, 76,230,246,184,107,247,154, 55,200,156,133, 22,104,145, 85,203, 69,108, 73, 36, 18, -136,190, 81,222, 32,151,203, 29,113,119, 7, 94,226,244, 60, 73,233, 93, 49,205,102, 51, 10, 11, 11,145,155,155,235, 92, 40, 67, - 20,193, 12, 12, 12,238,181,200,191, 85,108, 21, 43, 63, 92,213, 36,236,171, 79, 91, 45,102,183,226,103,213,175,123,113, 51, 85, -139,168,176, 67,160, 30, 86,170,246,132,254,253,251,127, 31, 29, 29,237, 88, 79, 75,161,242, 11,125,241,149, 15, 97,181,154,225, -175,226,240,194,224, 39,139,137,172, 34,139,150, 9,158,228, 92, 78,158,246,131, 39,251,206,159, 18, 24, 16,186,223, 85,252, 76, - 95,114,180, 79, 78,190, 49,142,227, 14, 35,135, 68,219,250,190,244,225, 48,167,194,253,228,138, 69, 19,223,240,249,197, 17, 78, -218,103,196,188, 23, 41,239, 87, 93,205, 21,236,122,123,232, 19, 63, 59,139,185,144,144,144, 13,157,250,204,237,144,150,205,124, -180, 30, 22,228,114,121,135, 49, 99,198, 20,171,241,194,252,165, 86,181, 66,106,219,123, 54,147, 28,221,190,138,219,125, 38, 83, - 80,202, 36, 52,156, 94, 77,122, 92,226,173, 86,171,211,117, 58, 93,180, 94,175, 71,126,126, 62,242,243,243,139, 11, 2,169,148, -188,248,242,232, 48,169, 76, 14,139,217,132,223,151,125,228,149,179, 77, 34,185,209, 58, 1,229,187,215,246,135, 68, 42, 47, 56, -155,148, 52,143,231,121,112, 28,135, 95, 63,127,251,213,181,179, 95,241, 7,128,147, 27, 62,207, 31, 48,238,179,249, 28,199,193, -104, 52, 42, 74, 19,238, 91,183,110,197, 25,141, 70,131, 93,160,137,166,117, 92,187,118,173,156,209,104,212, 59, 31,247, 5, 42, -181, 63, 16,148, 8,168, 35,238,178,158, 93,191,126, 61,198, 98,177,232,120,158,135,201,100,242, 73, 21,113, 28, 39, 59,117,234, - 84,156, 32, 8,110,175,175, 81, 33, 6,136,170, 13,200, 3, 75, 83,224,250,116,141,187, 22, 48, 3,195,127,221,178,133, 82,234, -139, 71, 65, 96,185,251,239, 44,180,218,108,220,184,145, 58,183, 16,173, 22,139, 93,100,253, 45,122,108, 54, 1, 41, 25, 6, 92, -188,120, 9,115,231,206,197,222, 3,111, 5, 78,157, 58, 85,241,222,123,239, 25,251,247,239, 63, 91, 16,132, 58, 28,199,157,236, -211,167,143,219, 86,154, 32, 8,229,142, 30, 61,234,168,244, 44, 22, 11,252,253,253,225,239,239,143,170,149,226,238, 18, 89, 54, -155, 13,230, 18,186, 14, 69, 31, 45, 66, 5,106,177,216, 96, 19, 4,135,248,201,201, 55,198,173,223,118,172,162,211,229, 85,196, - 63, 45, 26, 85,247, 44, 6, 71, 76,118,196, 99,197,162,137,111, 76,253,250,107, 69,142, 45,124,204,128, 62,207,215,236, 59, 96, - 48, 6, 62,243, 84,107,163,201,180, 78,194, 81,193,226,120, 30, 56, 80, 20,243,209, 98,120,112,200,204,204, 36,122,189, 62, 33, - 40, 40,168, 88,133, 21,173,209, 26,199,245,171,156,210,241,237, 61, 49, 6,179, 13, 10, 41, 71, 95,237, 25,159,114,240,151,149, -161,153,198, 76, 34,142, 70,252,151,227,236,149, 43, 87,162,203,149, 43,135,252,252,124, 88,173, 86,161,119,239,222,183,121, 94, - 26,199, 75,165,164,219,128,209, 66,106,106,138,133,227, 36,160,212,134,167,250,142, 32, 10,165, 74,102, 54,153,172, 0,198,122, - 88, 83,210,121, 10, 7,255,142, 29, 59,134,136, 35, 1,215,206,126,197,223,233, 92, 64,131, 6, 13, 66,156, 71, 29,250, 40,138, - 73,255,254,253, 85,229,203,151, 39, 0,112,120,217,187,162,245,140,116,239,222, 93, 89,190,124,145, 31,254, 31,159,251,190,166, -118,152,154, 2,121,215,128,188,235,119, 89,178,186,119,239,174, 72, 74, 74, 42, 85, 94,180, 59,192,123,156,187, 75,195, 91,129, -212, 99, 62,113, 13,173, 79, 44,239,182, 2, 63,251, 41, 14,114,191, 80, 99,147,183, 55, 31,100, 98,139,129,193, 39,184,104,145, -127, 15,236,107, 27,238, 0,208,198,254,139, 98, 62, 90, 93,187,118,221, 89, 76, 61, 82,192, 98, 53,223, 37,178,108, 54, 27,164, -196,136,185,115,231,226,181,215, 94, 3, 0,217, 27,111,188,241,243,212,169, 83,159, 22, 4,161, 14,165,180, 37, 33,164,164, 86, -227,142,232,232,232, 52, 74,169,148,227,184,150,159,127,254,121, 72,151, 46, 93,224,239,239, 15, 42,208,187, 68,150,205, 38,192, -108, 54,193,147, 73, 43, 56, 64, 53,117,211,170, 49,193,237,122,126,210,222, 38, 8, 91, 69,145, 37,216,108,128, 80,116, 83, 86, -250,109,108,249,125, 29,190, 88,244, 69, 14, 8, 61, 15, 10,129,227,184,147,158,194, 40, 8, 66,157, 61,135,207,181,108,209,168, - 58,166,126,253,181,226,204,209, 59, 63,143,126,253,157,154,125, 7, 12,198,170,159,150,129,179,230, 30,115, 22, 89, 54,139,128, -188,156,204,238,219,153,143,214, 63, 6,139,197,130,156,156, 28, 88, 10,115,172, 13,163,181,121, 31,246,141, 48,166,229, 24,120, -169,160,179, 86, 11, 72, 55,110,207,190, 46, 81,171,213,143, 69, 92,243,243,243,151,141, 24, 49,162,245,174, 93,187,100, 28,199, - 33, 63, 63, 31,109,219,182,205,204, 16, 98,149, 47,190, 60, 58, 44, 37,229,182, 53, 64,197, 27,101, 50, 41,210,211,211,133,214, - 93, 6,233, 7, 12,123, 45,230,181,119,167, 47, 78,217,187,112,161, 47,207,112, 30, 9,232,122,238,171,175,190, 50,197,198,198, - 26, 20, 10,133,124,232,208,161, 62,245, 31,154, 76, 38, 58,115,230, 76,163,235,232, 66,147,201, 68,231,206,157,107,138,139,139, - 51,170, 84, 42,106,177,120,247,251,228, 56, 98,125, 97,234,143, 86,171,213, 90,204,138, 37,138, 44,139, 64, 10, 23, 44, 88, 96, -142,139,139, 51,169,213,106,170, 80, 40,100,190,132,115,244,232,209, 52, 56, 56,216,172,209,104,100,227,198,141,187,175, 81,135, - 22, 27,248,169,159, 59,166,119, 80,248,251,251,163,160,160,192, 17,214,232,232,104, 38,182, 24, 24,220,224, 46, 45,242, 47,179, -194,121,242,209,114,235,192, 32, 0,133,105,233,153, 17, 97,145, 9,176, 90,173,246,205, 2,171,197,130, 49, 47, 13,192,236, 69, - 69,243, 61,218,197, 86,199, 55,222,120,227,103,184,248,123,185,195,138, 21, 43,166,188,241,198, 27, 1,105,105,105,155,191,255, -254,251,144, 65,131, 6, 97,236,216,177,248,228,147, 79, 32,149, 43, 17, 18, 94,206,241, 28,241,185,153, 25,217,160,160,133,110, - 21,164,221, 71,139, 82,240,161,225,241,176,216, 44, 16, 44, 22, 88, 44, 22, 16, 73, 81,212,182,252,190, 14,131,158, 27, 13,169, - 34, 32,248,179,185, 31,235,107, 54,140,126,250,189,225,195,141,222,229, 41,184, 51, 71,239,252, 60,250,181,113, 29, 69,145,181, -102,217,162,243,159,142,239,185, 92, 33,231, 29,207,177, 8, 2, 56, 78,194,124,180, 30, 34,194,194,194,104, 70, 70,198,245,220, -220,220, 42, 26,141, 6, 89, 89, 89,200,206,206, 70,110,110, 46,140,249, 57,214, 80, 91,174,150, 88,179,193,243, 60,210,111, 89, - 97,179,217, 82, 31, 19,107, 22,238,220,185,115,161, 66,133, 10, 43,222,121,231,157, 1,227,199,143,151, 10,130,128,139, 23, 47, - 2,132, 80,169, 76, 14,238,255,236, 93,117,120, 20,199, 27,126,103,207, 37, 23,247,132,132, 96, 73, 72,240,226,222, 98,197,139, -187, 91,177, 66,113, 40, 86, 40, 20, 43,197,138,148, 2,197,225, 7,197,139, 20,119, 8, 30,130, 4,226,238,114,185,156,238,252, -254, 32,151, 30,105,228, 46,161,165,208,125,159,103,159,189,155,221,125,119,102,118,119,246,221,111,190,249,134, 97, 32, 16,240, -145,145,145,201,202,172,108,227,180,148, 39, 19, 8, 69, 96,120,194,226,134, 9, 71,182, 24,252, 38,188, 3,195, 23,102, 25, 71, - 2, 10,133, 66,220, 60,176, 34,179,197,224,111,173, 1, 64, 40,150,166,181,105,211, 38,162,106,213,170,202,187,119,239,122,163, -192,168,195, 66,158, 79,125,215,193,211,120, 50,169, 68,217,186,117,235, 72, 35,103,248,217,117,153, 3,190,156, 77, 8, 79,164, -236,216,177, 99, 68, 96, 96,160,146,199,227,225,233,145,101,153, 93, 7, 79,147,144, 63,199,244,254, 5,167, 95,210, 17, 15, 15, - 92,241, 91,188,120,177,174,125,251,246, 81, 70,127,177,240,240,112,247, 14, 29, 58,136,127,248,225, 7, 93,135, 14, 29,162,171, - 85,171,150,205, 48, 12,130,130,130, 60,139,179, 84, 25, 33,149, 74,117,195,134, 13,139,124,252,248,113,169, 70, 29,150,132,114, -229,202,129,101, 89,180,108,217, 18,185,185,185,156,101,139, 3,135,143, 16, 5,227,104, 21, 27, 25, 94,167,215,141, 27, 53,113, -193, 58,128, 88,153,180, 2,127, 26,150, 40,200,148, 41, 95,203, 1, 72,141, 98,107,210,164, 73,105, 37,101,194, 68,100,125,210, -175, 95, 63,204,156, 57, 19, 43, 87,174, 52, 44, 95,190,156,247,236, 69,152,118,240,151,243,210, 11,156, 7, 20, 52,155,213,177, -227, 10,227, 75,203, 80,206,107,218, 97,233,130,152,132,156,171,131,199,204,201,111,189, 12, 0, 50,137,155, 1, 0, 54,254,244, -147, 82, 32,182,150,247,236, 51, 0, 0, 90,175, 91,189,236,240, 34,252, 92,178,216,162,196,127,220,164,105,118, 70,145,181,254, -135,197,143,109, 72,194,218,241, 95, 7,235, 76,207, 3, 0,246, 10, 28,110,218, 97,105,219,196, 84,229,143,220,173,246,207, 64, -163,209,156, 91,179,102, 77,249, 57,115,230,136, 82, 83, 83,145,156,156,140,180,180,180,252, 37, 59, 59, 27,174,174,174,248,253, -247,223,181,153,153,153, 55, 63,166,178,191,126,253,122,253,209,163, 71,113,233,210,165,222, 51,102,204, 16,184,186,186, 18, 27, -155, 4,162,211,106, 0, 80,154,148,148,196,202,172,108,227, 28, 93, 60, 35, 99,227, 19,253,117, 90, 13, 88,131,182, 72,111,243, -188,240, 14, 83,158, 60,121, 82,126,197,138, 21, 26,211,145,128,125,166,173, 91, 83,167, 78, 29,251,181,107,215,106, 58,118,236, - 24, 97,116, 94, 55,199, 25,254,204, 43, 76,124,242,228, 81, 64, 65,206, 22, 35, 87,108, 53,114,154,142, 70,236,244,245,166,173, -149, 43, 87,182, 15, 12, 12,140, 40,142,183, 66,133, 10, 42, 55, 55, 55,141,159,159, 95,182, 64, 32,120, 99,201,210,233,114, 42, - 84,168,192,186,184,184,104,170, 86,173,154,109,169,211,190, 84, 42,165, 70,171, 88, 97,176,100,212,161,128, 7,125,191,126,253, -242, 35,195, 79,169, 92, 57,110,192,128, 1,110,147, 39, 79,198,214,173, 91,113,237,218,181,212,130,199, 52,111,222, 28,151, 47, - 95, 94, 0, 96, 30,247,116,115,224,240,225,161,196, 56, 90, 5,177,109,219,206, 63, 96,226,211, 84, 24, 22, 45, 90, 36,206,179, -100,181,254,234,171,175,160, 82,169,236, 10, 81,119,173,140,177, 54, 10, 19, 89,203,150, 45,219, 67, 41,245, 4,208,196, 96, 96, -111,109,249,121, 91, 75, 51, 20, 99, 62, 39, 37, 12,143, 97, 72,182, 72, 64,239,255,180,121,235, 91, 17,191,243,156,223,125, 65, -240,112,221,234,101, 42, 0,173, 11,138,173, 30, 61,122,228, 20,228, 52, 98,244,152,209,249, 34,107,221,234,101,103, 3, 63,241, -250, 98,206,240,111, 11, 21,103,223,206, 27, 37,103, 24,210,200,212, 71,171, 48,206,119,160,150, 57,206, 60,136,197,226, 61,123, -247,238,109,223,180,105, 83,239, 26, 53,106, 48,169,169,169,200,206,206, 70,118,118,182,209,234,133,167, 79,159,178, 17, 17, 17, - 49, 98,177,120,239,199, 84,246,188,105,117,214,184,185,185,157,155, 59,119,238,128,228,228,228, 14,105,105,233, 14,199,183,125, -139,118, 61,199,144,230,237,251, 42, 53,148, 47,137,142, 75,240,187,120,114,183,253,169,125,235,161,213,104, 70, 17,242, 83,136, - 49,188, 67, 33,249,204, 49,134,113,240,243,243, 83,154, 10, 21, 47, 47,175, 92,119,119,119,117, 96, 96, 96,126,122, 97,163,249, - 10, 43,187,165,156,121,254, 95,202,146,234,211, 40,218, 10,134,141,144,201,100, 48,138, 47, 75,242,105, 58,218,178,208,134,178, -132, 81,135,166,156,219,239, 81,129,233,182,237,132,240,118,238,220,217,106,231,206,157,159, 0,184, 15,224, 12, 0, 93,222,113, -249, 78,243,148,210,249, 0,230,115,207, 59,199,249, 95,229,252,192,173, 89,205,145,231,155,149,135, 22,148,210, 75, 69, 10,173, -146, 96,116,124, 7,192, 76,154, 52, 41, 77,165, 82,217, 13, 24, 48,160,216, 99,226,227,227,183,238,216,177,227, 45,145,213,173, - 91,183, 33, 7, 15, 30, 60,151,152,152, 88,170,130,217, 89, 75, 23, 93, 58, 54,221,174,121,199,165, 95, 1, 88, 94,184,204, 4, - 27,248,137,219, 23,235, 86, 47, 59, 92, 64,108,253, 10,160, 91, 97,245, 5, 0,109, 62,239,130,221,219,214, 25,125,187,164,143, -239,198,156,234,125,111, 97,161,163, 21,109,173,196, 11,243,242, 49, 25,156,143,214, 63, 2,127,127,127,195,245,235,215, 39,143, - 25, 51,102,213,103,159,125,230,209,165, 75, 23, 97,185,114,229, 32, 22,139,241,234,213, 43, 92,185,114, 69,251,250,245,235,152, -156,156,156,201, 53,106,212, 48,124,140,117, 16, 23, 23,247, 44, 47, 24,233, 68,227,215,148, 88, 34, 21,246, 29,250,149,103,254, -168,195,125,235,161,206, 85, 1, 0,159, 16,178,156, 16,242, 75, 17, 14,241,111, 4, 5,159, 47,124,240,224,129,183,209,106,165, -213,106,197,198,244,187,119,239,122, 27, 99,107,229,230,230,154, 61,234,240,239,226,124,244,232,145,167,113,116,164,113,116, 33, -159,207, 23, 6, 5, 5,121, 26, 57,213,106,181, 89,163, 14, 69, 34,145,240,193,131, 7,158, 6,131,225,157,141, 58, 44, 32,140, - 79,231, 45,198, 70,217, 40,178,140, 62, 29, 92,183, 33, 7, 14, 31, 54, 46, 22,156, 84,218,168, 39, 74, 37,180,140,142,239, 22, - 40, 61,126,249,242,229,219,244,233,211,231, 45,145,213,163, 71, 15,195,161, 67,135, 46,186,185,185, 37, 48, 12,243,204,210,124, -228,251,104, 1,130,130,219, 24,134,121,216,164,110, 85, 48, 12,243,112,206,240,225,234, 69,248,249, 45,177,117,228,240,254,182, - 69,181,139, 0,224,224,236,129,126, 67,198,161,223,144,113,118, 0, 26, 3, 69,143, 86, 44, 46, 31, 28,254, 62, 52,106,212, 40, - 46, 36, 36,164,223,217,179,103,251, 94,190,124,185, 85, 78, 78, 78,121, 66, 8,164, 82,105,184, 70,163, 57, 39, 22,139,247,124, -172, 34,171, 40,104,181, 90,253,140, 5, 43,118,240,248, 66, 61,203,106,137, 86,171, 29,106,201,115, 62, 99,198, 12, 6,133,248, - 94,141, 31, 63,190,208,244,247,197, 57,107,214,172, 66, 71, 9,142, 31, 63,190,216,209,131, 69,225,235,175,191,126,103,163, 14, -205, 20, 95,156,160,226,192,225,227,179,106, 21,234, 11, 92, 42,161,197, 48,204,195, 66, 70, 23, 18, 0,180,176, 17,125,148, 82, - 61,143,199, 91, 96,107,107, 59, 74,169, 84,254,222,173, 91,183, 73, 61,122,244, 48, 0,111, 28,228, 75, 91,168,180, 12,229,188, - 22,157,190,159,156,158,173, 94, 91,112, 91, 65,203,147, 81,108,173,255,113,217,134,195, 7,247,246,136,143,141,222, 80, 84,217, -138, 18, 84, 69,141, 86,204,200, 84, 45,104,209,233,251,175,210, 50, 85,156,143,214,123,176,108, 1,216, 9, 96,103,193, 73,165, -255, 11,160,148,170, 9, 33, 83, 9, 33, 70,139,238,212,215, 23,126,220,240,231,131,191,230,145,233,182, 98,172, 89,113,230, 76, - 16, 93,216,113,197,109,251, 27, 56, 19,138,153, 32,186, 56, 36, 88,200,151, 0, 0, 66, 1, 47,177,168,201,163,133, 2, 94,226, - 59,186,134,198, 0,135, 11,184, 39,154, 3,135, 15,182, 45,182,204, 71,203, 40,130,138, 66, 81,113,178,138,131,193, 96,248, 30, -192,247,239,178, 96,143, 95,100,109, 6,176,217,220,253,243,124,178, 6,229, 45,133,231, 51,229,137,197,101,235,209,163,199, 70, - 0, 27,185, 91,237,159,193,129, 3, 7, 12, 92, 45,188,245,128,111, 32,132,252, 98, 20, 94,230,110, 43,176,223,209,191, 33, 95, -127, 7,231,233,127,146,239,120,136,222,229,125, 55,210, 28, 56,112,248,247,163, 48,107, 86,177,163, 14, 57,112,224,240,193,137, - 45,117,105,182,113,224,192,129, 3,135,119,247,177, 84,152,175, 37, 1,208,170,136,131,204, 30, 77, 64, 8,105, 85,138, 76,157, -227, 56, 57, 78,142,147,227,228, 56, 57, 78,142,243,191,197, 89, 18,183,233,241,132,144,145,148,210,205,248, 0, 80,228,128, 22, - 74,233,223,182, 0,104,197,113,114,156, 28, 39,199,201,113,114,156, 28, 39,199, 89,202,243,140,252, 39,206,243, 14,242, 73, 11, - 46,198,109, 92,215, 33,135,191, 29,158,158,158, 96, 89, 22, 12,195, 32, 58, 58,154,171, 16, 14, 28, 56,112,224,240, 81,193, 98, -103,120, 14,133,152, 4,189,187,206, 1,139, 89,111,254, 96, 25,141,252,109,254,127,162,220,132, 56, 2,232,168,144, 8, 59, 7, -216, 10, 27, 62, 78,201,189,174,212, 26,142, 1, 56, 66, 41, 77, 51,135,131,101, 89, 28, 59,118, 12,157, 58,117, 50,114, 2, 0, -220,220,220,112,236,216,177,252,253,234,212,169,147, 31,188,145, 3, 7, 14,127,243,179,109, 23, 80, 14,132, 12, 5,232,159,195, - 46, 89, 26, 76,211,159,110,123,107, 63,219,170, 67,192,144, 0,147, 36, 21, 40,182,208,180,224,168, 34,218, 12,227, 11,199, 54, - 52, 52,212,187, 82,165, 74, 17, 0,210, 11,236,246,151,109,180,152,135,159, 16, 66, 28, 43,212, 30, 40,147,200,190,212,104, 52, - 62, 86, 10, 69, 98,106, 74,210,198,212,200, 71,235, 77,118,179,190,117,235,150, 91,253,250,245, 99, 1,100,149,196,201,129,195, - 59,126, 87, 54,199,219, 1, 75,223,157, 51, 60,169,210,221, 7,122,102, 16, 40,250,131,224, 1,125,125,160,123,169,120, 42,117, -243, 0,203,175, 7,160, 54, 64,107,203,165,146, 90, 42,141, 54,145,165,116, 32, 13,221,119,223, 98,190, 10, 61, 79, 0,104, 95, -196,214, 5,244,245,126,203,132, 18, 75,103,223,185,124, 72,108, 43, 35,168, 84,167,219, 52,152, 68,112, 46,195,133,145, 2, 24, - 76, 8,249, 76, 38,147, 85,201,201,201, 9,167,148, 62, 2,176,129, 82, 26, 91, 74, 78, 6,192, 48, 43,185,188,157,183, 66, 84, - 59, 50, 57, 35, 38, 75,103,184, 2, 96,185,185,194,200,132, 75,228,109, 39,191,180,186, 79, 11,255,134, 1,149,193, 6, 95, 70, -174, 70,219,249, 98,116,118,231,121, 55, 98, 39, 19, 66,106, 83, 74, 53,230,242, 49, 12, 51,194,221,221,221,199,195,195, 35,108, - 93,231,154, 91,198, 29,125,128, 46, 93,186, 0,192, 8,150,101,125, 60, 60, 60,194, 8, 33, 91,204,109, 27, 9, 33,110, 0,248, -148,210,168,188,255,114, 0,129, 0, 42, 0,120, 13,224, 9,165, 84, 89,198,107,244, 65,112,122,122,122,186,179, 44, 59,220,197, -197,165, 67, 66, 66,194, 9,134, 97,126,142,142,142,142,125,207,109,207, 38,163,127,133,185,107, 0,163, 44, 57,129, 84, 42, 77, -200,205,205,117, 6, 0,137, 68,146,168, 82,169,254,182, 81,130,255,228,185,254,153, 55, 3, 70,156,185,250,164,157,105, 82,155, - 38, 1,133, 60,184, 36,224,204,213,224,102,111,239, 23,104, 40,172, 13,204,139,190,138, 5, 11, 22,144,133, 11, 23, 14,169, 88, -177, 98,101,134, 97,158,207,157, 59,247,173,208, 55, 5,183,205,155, 55,239,207,200,173,133,112,122,250, 54, 58,210,187, 79,207, - 22, 99, 71, 14,182,242,112,178, 66, 92,178,210,225,167,173, 59, 87,236,220,185,187,227,240,222,173,219, 1,192,183,223,126,219, -181, 92,185,114,229,121, 60, 94,216, 55,223,124,243,107,113,156, 28, 56,252, 13,176,108, 82,233, 18,159,207,128,158,114,228,210, - 30, 0, 25,220,188, 97,157, 38,163, 6,118, 34,148, 39, 65,223, 17,211,245, 22,115,149, 31, 34, 6, 79,181,168,122, 96,192,164, -158,157, 90, 49,159, 4,150,135,155,147, 13,192, 8,176,233,100,184,195,218,101,223,108, 0, 80,191, 20,217,108,255,234,198, 30, -196,165, 27, 64, 8, 64, 8,192, 16, 32, 59,151, 69,155,174,131,230, 89, 46,148, 8, 99, 43, 35,152,180, 39, 23, 0,120,239, 64, -100,213,118,114,114, 90, 63, 97,194, 4,187,234,213,171,187, 73, 36, 18,153, 74,165,170, 28, 26, 26,234, 51,103,206,156,214,132, -144,165,148,210, 67, 22,114,122, 85,242,116,223,191,118,210,176,122, 53, 42,120, 67,160,201, 6,171, 86,150,123, 17,250,178,225, -232, 13, 7, 70, 16, 66,250, 88, 56,101,194,236, 77,227, 7,250, 87, 83, 0,218, 39,215, 32,224,241, 32,179,177, 67,107, 62, 15, - 60,130,170,131, 78,135,207, 34,132,204, 43,169, 29,139,141,141, 53, 90,182,124,142, 29, 59, 22,208,169, 83, 39,212,243,241,196, -173, 78, 73,168,123, 36, 26, 0,242,211, 45, 40,235, 66, 0,179,242,218,225,221, 60, 30,239,108,171, 86,173,124,134, 15, 31, 78, -234,212,169,131,160,160,160, 10,123,246,236,105,197,231,243,195, 12, 6,195, 35, 0,207, 41,165, 58, 51,185, 5, 0,124,121, 60, - 94,245,127, 51,167,187,187,187, 84,163,209, 12,242,244,244, 28,217,185,115,231,234,157, 58,117, 34,190,190,190,120,246,236, 89, -157, 83,167, 78,205,171, 89,179,230,163,232,232,232,205, 34,145,104, 71,108,108,172,234, 61,124,225,141, 4,224,158,103,224, 88, - 96,198, 58, 22,192, 2, 74,105,156,185,231,200,205,205,117, 54,222,127,132, 16,231,191,179, 60,150,156,139, 16,242,148, 16, 98, -159,247, 27,197,173, 25,134,129, 94,175, 87,234,245,250,138, 37,112,250, 2, 96, 44,200, 50,165,148, 22, 23, 8, 90, 10, 0,109, - 26, 7,164,130, 32,216,104,209, 42,228, 35, 51, 56, 95,128, 81, 4,156,185, 22,108,255,150, 21,172, 0, 22, 44, 88, 64,230,205, -155,135,249,243,231,119, 2,208,148,101,217, 43,254,254,254,107,222,162,100,217,252,109,243,230,205,251,113,193,130, 5, 4, 64, -161, 13,137,125,249,154, 3,190,248,162, 75,139,197,179,199, 91,197,164,104,241, 32, 76, 5,123, 43, 33,230, 77, 29, 35, 82,171, -117, 13, 55,252,186,115,228,186,165,211,183, 24, 12,134, 79, 1,124, 98, 48, 24,238, 2,248,181, 56, 78, 14, 28,254, 6,180,176, -104, 82,233,162, 76,183,168,216,189, 25, 12, 24,236, 93,206,165,199,132,225,189,164,129,254,149,144, 11, 43,132, 39, 27,112,242, -248, 41, 0,216,103,153,213,169,247, 39,124, 33,118, 44,155, 63,213,175,105,189, 64, 60,142,209,225,110,140, 1, 57, 97, 58,240, - 24, 29, 12, 44, 5, 40,114, 75, 91,234,232, 52, 61,174, 62,215,128, 33, 0,143, 1, 24,134,128,199,148,146,140,213,188,248,118, -219,189,192,228, 4, 22, 96, 53, 47,202,248, 2,250,180, 74,149, 42,171, 23, 46, 92,232,154,144,144, 96,127,247,238, 93,136,197, - 98,216,217,217,241,221,221,221,253, 86,175, 94,157, 49,126,252,248,169,132,144,251,148,210,112, 51, 57,253,219,127, 82,253,250, -230,101,223,218,232,110,157, 66,250,222,255,129,199, 80, 8,229, 86,240,145, 74,113,234,139, 74,246, 61,142,135, 29, 34,132,248, - 83, 74, 99,204,225,172,228,234,208,166,186,191, 63,210, 14,175,195,131,180, 92,156,138, 85, 97,104,235, 6,168,102, 47, 69, 83, -189, 1,174,114,193,167,229,228,162,121,166,243,181,153,139,244, 59, 23,240, 32,237,175,151,214, 85, 46, 48,167,172,118, 0,166, -107, 52, 26, 70, 40, 20, 18,137, 68, 50, 96,241,226,197,218,190,125,251,230, 59,128, 53,109,218, 20, 77,155, 54, 37, 89, 89, 89, - 21, 46, 92,184, 80, 97,231,206,157,122, 66,200, 83, 74,233,145,162, 45, 22,178,200,220, 92, 85, 57,137, 84,154,243,211,134, 13, - 43,155, 53,107,198,138,197,127,206, 10, 83, 26, 78, 0,176,181,181,221, 82,165, 74, 21, 50,115,230,204,216,119,197,233,227,227, -115,166,105,211,166, 45,219,180,105,195,111,220,184, 49,220,221,221,243,183, 57, 58, 58,162,105,211,166, 36, 42, 42,170,198,149, - 43, 87, 54,156, 57,115,102,141,143,143,207,133,176,176,176, 54,255,100,171,147,103,169,130, 5,194,105,115, 33,129,144, 63, 76, - 99, 17, 33, 86,155, 54,109,114, 54,206,201,168,211,233, 96, 48, 24,242,215,198,133,101, 89, 24, 12, 6, 44, 94,188,216, 96,102, -157, 42,145, 23, 28,218,100, 97, 11, 91,139, 68, 34, 71, 51, 45, 91,193,110,226,244,170,114,185,220, 27, 64,251, 42, 85,170, 76, - 55,221, 92,217,233,205, 90,169, 84, 70,196,169,109,131, 1, 52, 43,238,118, 95,184,112,225,160,249,243,231,119,193,159,115, 86, - 86,239,217,179,231,133, 2,251, 85,207, 91, 43, 9, 33, 23, 25,134, 57, 6, 96, 27,128,191, 88,221,101, 50,171, 81, 19,190, 28, -110, 21,157,172,197,162, 67,201,216,118, 57, 19,131,154, 42, 48,233,115, 27,244,235,219, 91,126,224,127, 7, 71, 1,216, 98,114, -200, 51,127,127,127, 18, 18, 18,194,137,172,143, 11,117, 1, 56,153,252,215, 0, 48, 78,153,149,156,247, 92, 56, 20, 72, 55,221, -207,184, 78,202, 75,119,202, 59,142,154,240, 38, 1,184, 83,202,246,238, 82, 94, 30,254, 2, 62, 0,156, 56,113,130,118,232,208, -129, 24,215,133,183,236, 61, 78, 14,235,219,185, 93,135,207, 26,129,145,216,225, 69, 34,112, 35,146,130,207,232,192,128,226,214, -181, 11, 20,124,118, 71,129, 19, 23,105, 61, 33, 62, 61,190,174, 94, 45,240,251,159,151, 77,228, 61, 77,228, 99,219,149, 28,104, -115,179,145, 20, 31,137,196,216, 8,196, 69,191, 70, 76,228,235, 71, 0,153,103, 46,231, 95, 11, 14, 24,216,188,111, 64, 22,121, -245, 89,232,200,203,146, 57,181,202,144, 10,190,129,129,105, 34, 3,160, 85,134,152, 81,233,231,138,104,128, 91, 87,170, 84,105, -249,236,217,179, 61,159, 60,121, 98,173, 84, 42,149,167, 78,157,186, 20, 17, 17,225,226,234,234, 26, 53,102,204,152, 70, 30, 30, - 30,206, 93,187,118,149,237,223,191,127, 54,128,225,102,112, 6,118,110, 80,235,198,214, 53, 63,200, 83, 14,172,133, 38,244, 33, - 78,198, 41,113, 45, 33,135, 86,176, 17,147,113, 53,156, 96, 37,230,227,219,198,238, 86,237, 15,135,126, 15,160,159, 25,156,232, - 90,175, 90, 69,157, 42, 7,185, 42, 29,118, 60, 75, 85,157,141, 81, 58, 19,219,240,164, 53, 61, 26, 72,120, 73,177,240, 86,136, - 42, 47,104,232,142,246,135, 67,139, 44,187,167,167,231, 8,150,101,125,242,254,150, 55,174, 63,187,154,181,196,228,144,252,116, -162,112, 92,226,238,238, 14,134, 97,194,162,163,163,183,152,123,141, 36,146,194,103, 79,177,179,179, 67,243,230,205,225,239,239, -207,111,214,172, 89,117, 0, 71,138,226,212,106, 53,110, 44, 75,161, 80, 40,164, 14, 14, 14,118, 10,133, 34, 69,171,213,150,137, - 19, 0,236,237,237,187, 55,111,222,156,191,103,207,158,228,176,176,176, 91,125,251,246,125,109,109,109,253,150,245, 87, 46,151, -163,114,229,202,248,230,155,111,248,237,218,181, 43,145,211,197,197,165,245,206,157, 59, 65, 8,201,127,105, 23,132,183,183, 55, - 92, 93, 93,209,190,125,123,126,247,238,221, 91,151,246, 57,178,160,161, 57, 87,136, 69,107,193,219, 98,182,232,238,183,194,246, - 55,227,186, 39, 26,173, 75, 18,137, 36,177, 52,249, 44,128, 34,187, 59,197, 98,113,190, 21,170,224,185, 10,227,100, 24, 6,115, -230,204, 1, 33, 4, 2,129, 0, 66,161,176,208,117,139, 22, 45, 44,205,103, 20, 33,132, 17, 10,133,211,249,124,254,112,181, 90, -237, 41,145, 72, 98, 13, 6,195,118,181, 90,189, 56,207, 34,106, 91,216,189, 91, 20,167, 92, 46,247,126,241,226, 69,149,162, 42, - 69,173, 86,163,122,245,234,128, 26, 79,139,227, 12, 13, 13,245,174, 88,177,162, 47, 0,227, 20,109,151, 41,165,205, 76,254,155, -226, 50,165,244,243,188,223,207, 95,189,122,229,109, 20, 90,166,156, 58,173,214,199,211,217, 26, 15,194, 85,216,118, 57, 19,127, -204,118,199,103,139, 99,209,173, 54, 31,254, 94, 86,208,107,117,190, 61,123,246,220, 1,192, 55,239, 37,217,181,103,207,158,126, - 60, 30,239, 60,128,223, 0,100,252, 83,247, 60,199, 89, 54,148,160, 69,156, 8, 33,199, 77,206,223,209,248,127,198,140, 25,179, -150, 44, 89,242,132, 16,114,220, 52,221,116, 63,211,117, 94,123,115,156, 82,218,113,230,204,153,129, 75,151, 46,253,206,184,239, -223,161, 16, 45,233, 58,180, 78,202,149,227, 74,164, 53,248, 60, 3,248, 12, 1,159, 7,128, 18, 68,132,135, 34, 43, 51,253, 42, -125,253,191, 48,243, 44, 89, 61, 27,215,172, 85,125,217,238,213,211,152, 95,174,228, 32, 93,153,139,144,251, 23,113,231,226,111, -241, 6,189,225, 55, 16,122, 23, 96,130,240,154,125, 70,105,233,163,128,191, 17, 90,121,226,234, 45,177,245,222,190,114, 63,247, -243,243, 91, 50,103,206, 28,239,251,247,239, 43, 50, 51, 51,147,118,237,218,245, 76,173, 86,223, 7,240, 99,100,100,100,243, 31, -127,252, 81,182, 98,197,138, 54,213,171, 87,247, 61,112,224, 64,142, 25,156, 53,166, 14,238,119, 99,248,132,175, 36, 79,247,175, -135,232,105, 16,230, 60, 76, 54,252, 17,151, 51, 27,192,106, 68,101, 55, 78,202,213,159,253,161,121, 57,166,188, 66,136, 74,182, -162, 22,102,112, 98,234,224,126,136, 13, 11,229, 83,190, 4, 26,141, 30, 89, 26, 86, 3, 64,169,214,233,181, 84,238, 40, 1, 0, - 62, 67,248,121,156, 69, 27, 2,243,186, 11, 77,211,142, 29, 59, 38, 3,240, 23,103, 16,211,244,226,186, 17, 41,165,105,132,144, -239, 69, 34,209, 28, 66, 8,173, 91,183,238,131,106,213,170,101,219,217,217, 65,165, 82, 65,173, 86, 67, 40, 20, 66,165, 82, 33, - 34, 34, 2,183,110,221,130,157,157,157, 69,215, 42, 59, 59, 27, 10,133, 2, 44,203,150,153,211, 96, 48,144,141, 27, 55,202,159, - 60,121, 34, 63,120,240,160,203,164, 73,147, 82,170, 86,173,122,183,119,239,222, 47,157,157,157,213, 15, 31, 62,196,245,235,215, -145,150,150,134, 6, 13, 26,152,197,169,209,104,192,231,243,161, 82,169, 32, 22,139,193,231,243,161,215,235,193,178,108,190,248, -202,206,206, 70,106,106, 42,132, 66, 33, 52, 26,205, 63,126,191, 27, 45, 90,166, 40,174,251,173,176,253, 75,194,187,246,147, 42, -174,187, 51, 61, 61, 93,106,107,107, 59,221, 28, 11, 29, 33, 4, 60, 30, 15, 66,161, 16,132, 16, 52,107,214, 12,195,134, 13, 67, -237,218,181, 17, 26, 26,138,189,123,247,226,206,157, 59, 16, 8, 4,249,251,155,221, 63,209,162, 5, 79, 34,145, 92,239,220,185, -115,224,236,217,179, 37,229,203,151,199,211,167, 79,189,150, 46, 93, 58,253,220,185,115, 93, 8, 33,159, 80, 74,217,146,173,244, -121, 93,130,111,186, 11,219,171,213,106, 60,125,250,212,146, 99,254,106, 5,175, 84, 41,130, 97,152,151, 44,203, 94, 1, 80,157, - 82,218,140, 16,114, 10,128,188,192,174, 74, 74,233,231,132,144, 76, 0,143, 24,134,121,206,178,108, 68, 97,150,113,133, 66,145, - 20,157,152,233,226, 96, 37,193,192, 38, 86,248,108,113, 44,122,124, 34,134, 88, 72,240, 44, 44, 30,149, 42,150, 39, 15,174, 30, -249, 36, 79,100,213,141,139,139, 3,128, 79, 0,132, 69, 69, 69,185, 25,133, 22,135,143, 3, 5,197,144, 81, 64, 45, 89,178,164, - 99, 97,226,170,144,103,243,173,244,165, 75,151,126,103,242, 63,173, 12,109, 71,115,188,237, 12,223, 34,207,202,245,167,208, 58, -113,226, 68,241, 10,132, 69,183,227,135,246,220,252, 76, 75,188, 3,235, 52, 49,177, 14, 81, 4,221,186, 14,128,110, 55, 43, 51, -238,157,164,140, 76,190,125,227,119,227,153, 77, 23,115, 16, 21,155,136,235, 39,183, 35, 41, 46,124, 27, 64, 39,209,215, 7, 50, -203,220, 88, 86,232, 25,232,236,232,128, 92, 45, 5, 75, 1,252, 69,108,189, 23,145,213,201,215,215,119,225,141, 27, 55,188,115, -115,115, 21,215,174, 93, 75,223,185,115,231, 75,141, 70,243, 51,165,116, 87,222, 62, 71,147,147,147,191,165,148, 66,161, 80,240, - 5, 2,129,180, 56,103, 78, 66, 72,237,169,195, 7, 93,253,126,227, 86,201,203,199, 15,240,227,193,147, 72,207,201, 49, 92, 76, - 84,117,165,148, 30,207,219,231,252,189,100, 85, 12, 5, 45, 39, 96, 8,220,228, 2, 87, 66,136,132, 82,154, 91,164,200, 26, 62, - 8,223,111,220,138,105,131,251, 50, 58, 47, 31, 92,209,231,194,195, 65, 44,162, 73, 57,152, 49,168, 39,239,190, 74,135,107, 15, -159,194,209,202, 90,152,199,137,162,186, 15, 25,134, 9, 51, 17, 77,229,143, 29, 59, 38,235,212,169, 83, 14, 0,211, 46,209,191, -164, 51, 12, 19, 86,194,195, 54,151, 16,226,178, 99,199, 14, 70,167,211,101,135,134,134,194,213,213, 21, 46, 46, 46,176,177,177, - 65, 72, 72, 8,254,248,227, 15, 60,123,246, 12, 44,203,162,102,205,154, 22, 93,175,148,148, 20, 60,124,248, 16,237,219,119,152, -148,148,148,104,109,103,239,160,188,122,229,242,138,210,112,178, 44, 75, 0, 32, 48, 48, 16,129,129,129,146,152,152, 24,207,227, -199,143, 59, 47, 90,180, 40,210,219,219,123,183, 74,165,122,203,114, 96,174,208,202, 19, 46,249, 34, 80, 34,145, 64, 40, 20, 34, - 51, 51, 19, 9, 9, 9,200,202,202,122,211,151, 99,107,251, 94,132, 86, 97, 22,170,119,185,255,223, 41, 14, 11, 19, 83,132,144, -254, 0,166,155, 89, 22,232,245,122, 8,133, 66,212,175, 95, 31,107,215,174,197,157, 59,119,240,219,111,191,193,203,203, 11,131, - 7, 15, 6,195, 48,120,242,228,137,165, 89,100,111,220,184, 49,189,107,215,174,129, 59,118,236,144, 68, 68, 68,224,217,179,103, -176,181,181,197,218,181,107,197, 35, 71,142,172,116,225,194,133,185, 0,150,151, 88, 86,147,209,133,238,238,238,189,170, 87,175, -254,151,125, 92, 93, 93,109, 78,159, 62,237,108, 20, 96, 5, 71, 36, 22,130,244,185,115,231,254,224,239,239,191, 58,175,187,176, - 41, 0, 57,165,180,197,193,131, 7, 9, 0,244,232,209,131, 18, 66,140, 47,164, 71, 7, 14, 28,104, 25, 18, 18, 66,231,207,159, - 95,104, 59,151,148, 24,183,241,135,181,155,126,248,126,193, 84,209,228,246, 54,232,241,137, 0, 18, 33,129,181, 76,128,197,107, -182,232,238,221,186,252,208,205,205,237, 56,128,174,113,113,113,112,115,115,203, 6,240,156,199,227,133, 25, 12,134, 88,206, 23, -254,195, 66, 97, 90, 36,207,170, 28, 87,152, 80, 42,141, 80, 51,181,120, 25, 49,115,230,204,192, 37, 75,150,220, 46,139,200, 50, -117,130, 39,132, 80, 66, 72, 11, 74,233,165,124,143,165, 34,187, 12,243,109, 95,140,155,171,139,163,253,140,193,141,193,178,128, -222, 0,232, 13, 20,202, 28, 21,158, 62,190,147, 3, 9, 57,104, 86,142,196,162,101,139,102,127, 85,225, 65, 52,131,216, 52, 45, - 46, 29,217, 68,147,226,194,187,211,215,251,135,190, 43,145,229,234,236,120,113,207,166,111,113,231,181, 6, 6,246,141,206, 98, - 89,154,255,251, 61,188,112, 42, 59, 58, 58,174,184,121,243,102,121,177, 88,172,120,241,226,133,225,192,129, 3,177, 26,141,102, -131, 81,100,229,161,127,157, 58,117,116,114,185, 28,217,217,217,106,173, 86,155, 93,140,200,242,108, 81,187,198,229,239, 55,110, -149,228,106, 52,200, 80,169,193,115,112,126, 75,100,229,161, 81,203, 42, 30, 30, 68,162, 0, 5, 16,158,169,141, 45, 78,100,181, -168, 93, 3,223,111,220,138, 92,141, 6, 86, 54,182,140,231, 39, 45,240,201,196,181,200, 36, 10, 10, 0, 14,110, 30, 76,203, 47, - 23,163,221,143,151,160,100, 20,108, 30,103,145, 62, 90,209,209,209, 91, 98, 99, 99,103,198,198,198,206, 52, 17, 87,225, 0,102, - 86,181, 17,254, 37, 61,192, 86, 52, 51, 54, 54,118, 38,203,178, 91,204,168,218,216,126,253,250, 69, 7, 4, 4,100,248,251,251, -103,164,164,164, 32, 56, 56, 24,105,105,105,248,241,199, 31,241,244,233, 83,176,236, 27,101, 93, 88, 55,138, 25, 2, 9,105,105, -169, 86,148, 82,164,165,166,200,103,207,158,109, 83, 26, 78,131,193,240,214,179,229,225,225,129, 49, 99,198, 8,115,114,114,108, - 35, 35, 35,173, 77,183,153,203,169,209,104,242,235,156, 82, 10,141, 70,131,140,140, 12,104, 52, 26,188,124,249, 50, 95,100,229, -157,255,189, 89,180,140,191,165, 82,105,130,209, 65, 84, 34,145,128, 16, 82, 88,247,219, 59,137,254,108, 60, 23, 33,132, 74,165, -210,132, 82,136,195, 18,203, 99,230,117,135, 80, 40,196,176, 97,195,112,251,246,109,132,134,134,130,199,227, 65,169, 84, 34, 39, - 39, 7,173, 91,183,134, 72, 36,178,212,162, 69,133, 66, 97,255, 89,179,102, 73,194,194,194,144,156,156,108,116,166,135,193, 96, -192,164, 73,147,164, 98,177,184,191,165,166,251,216,216,216,182, 47, 94,188,240, 45,184,196,199,199,103,152,250, 20,150, 22, 7, - 15, 30, 36, 61,122,244,160, 61,122,244,160, 70,193,101, 46,210,163,131, 55,254,118,244,248,217,175,191, 89,150,157,163,204, 66, - 69,119, 41,178,179, 50,176,120,201,247,186, 27, 55,174, 92,156, 62,105,116,195, 3, 7, 14, 44, 5,240, 60,239,144,231, 7, 14, - 28, 24,244,205, 55,223,252,138,188, 48, 15, 28, 62, 28, 20,166, 69, 76,159,189,119,209,189, 87, 24, 71, 94,247,161,180,148,148, -198, 17,135,205,141,194, 43, 79,116, 93,124,203,162, 85,108,227, 83,169,119, 45, 23, 71,135, 11, 59,214, 45,176, 58,254, 24,136, -142, 10, 71, 82, 92, 4, 62,105,216, 2, 79, 31, 63, 0,171, 51, 28,162, 47, 14,148, 56, 60,157,248,244,172,226, 95, 53,224,203, -230, 13,171, 97,217,241,108,188, 8, 58,141,244,164,184,117, 52,108,255,161,119,113,129, 72,133,158,129, 46, 78,142, 23,127, 93, -191,208,254, 84, 48,131,168,168,112, 28,249,117, 53,116,218,191,232,138,147, 22, 55,222,172, 70,148,157,158, 0, 77,150, 1, 18, - 38, 71, 98,225, 69,125,233,228,228,180,227,135, 31,126, 24,221,176, 97, 67, 89,223,190,125, 95,164,165,165, 45,162,148,238, 55, -105,224, 63,245,245,245,157,178,110,221,186, 74, 81, 81, 81,248,227,143, 63, 94, 0,184, 91, 12,103, 52,143,199,219,240,199,175, - 91,166, 74, 43,248,225,199, 89, 95,235, 15,222, 9,238, 76, 41, 61,101,194,233,223,170,122,149,227,139,166,140,101,216,123,191, -227, 97, 68, 2, 94,103,168,255, 40,134, 19, 60, 30, 15,127,252,186, 5,210, 10,126, 8, 77, 87,234, 4, 98, 41,172, 92,203,227, - 69,182, 65,200,231,243,111, 15, 31, 62, 76,200,240,248, 96,248, 66, 4,167,229,234, 30, 38,241,240, 58,163,116, 83,233,189,200, - 54,128,207,231,195,217,249,207, 30,164,224, 52,139,198, 62, 88,221,190,125,155,225,241,120,111, 9,116, 83, 11,145,165,150, 34, - 75, 96, 46,103, 65,161,101,132, 94,175, 39,165,229, 84,171,213,133,138,219,194,124,181, 88,150,253, 91,202,111,137,133,202,180, -203,208,232, 79,151,155,155,235, 44,149, 74, 19,140,221,127,239,202,162, 85,150,145,136,197,117, 95, 90,146, 63,134, 97,192,178, - 44,132, 66, 33,106,214,172,137,227,199,143,195,222,222, 30,214,214,214,176,182,182,134, 84, 42,133,131,131, 67,190,208, 98, 24, -179, 71,233, 80,181, 90,237,229,229,229,133,151, 47, 95, 66, 34,145,228, 47, 98,177, 24,129,129,129, 80, 42,149, 30,239,207,118, -255,247, 96, 68,239, 86, 93,214,239, 60, 60,240,248,241, 19, 95,106,213,185,213,252,252,124,233,221, 27, 23, 30, 78,159, 52,186, - 29, 39, 77,254, 91, 48, 90,163, 76,125,173,102,204,152, 49,171,180,124, 51,102,204,152, 85,152,133,171,180,130, 11,111,186,250, -140,107,228, 11, 45,163,130, 44, 76, 73, 26, 69,214,182,181,243,173, 15,223, 7,162,163,195,112,118,255,154, 44,157, 86,147,198, -178, 58,239,215,207, 30, 0, 12,182,155,149, 5,134,214,235,210,190, 37, 57,251, 68,131,204,244, 36, 60,191,123, 58, 28, 42,209, -204,119, 41,178,118,172, 95, 96,127,236, 49, 65, 84, 84, 56, 78,237, 93,157,161,211,107, 63,165,175, 15,220, 47, 11,247, 0,145, -168, 75,239,170,182, 29,135, 55,141,133,129, 24,208,255,105,200,231,238, 77, 73,151,216, 43,197,143, 12, 51, 69, 82, 82,210, 98, - 43, 43, 43,102,249,242,229, 67,115,115,115,231, 83, 74, 15,154,220, 56,173, 43, 86,172,184,108,227,198,141,158,145,145,145,162, -171, 87,175,166, 94,188,120,145, 2, 88, 82,194, 11,124, 26, 33,132, 87,187,188,199,248,123,225, 49,157, 41,165,191,155,112, 6, -118,172, 19,112,109,235,146,185, 10,221,181,131,200,142,139,194,204,107,209,153, 0,102,150,244, 21,158,247,162,177,119,116,116, - 36, 3, 6, 12, 96,179,178,178, 32, 20,137, 88,157, 78,199,107,212,168,145,225,171,175,190, 98,226,227,227,145,153,149,205,239, -122, 44,193, 30, 64,106,105,234, 85, 40, 18, 65,167,211,193,195,195, 35, 63, 45, 51, 43, 27,132, 16,184,185,185,149,244,176, 45, - 4, 48,169, 81,163, 70,164,126,253,250,183, 86,175, 94,125,166, 56,177, 82, 26,139, 86, 73, 48,151,147,101,217, 66,223,162, 58, -157,142,148,150,211,212,162, 85,146,208,122,159, 22,173,194, 68,139,169, 72, 52, 21, 66,165,241,209,250, 59,197,161, 37, 34,172, - 48,235,176,209,162,245,224,193, 3,148, 43, 87, 14, 90,173, 22, 10,133, 2, 10,133, 2, 86, 86, 86,200,202,202,130, 64, 32,128, -133,101,102, 37, 18, 73,100,112,112,176,175,147,147, 19, 12, 6,195, 91, 98,235,197,139, 23,144,203,229, 49,150, 90,180,220,221, -221, 79,231,141, 58,124, 11,174,174,174, 54,239,162, 94, 77, 45, 89, 61,122,244, 40, 85,191,194,250, 37, 83,119, 2,216,217,179, -103,207, 29,143,110,156,248,196,205,205,237,132,191,191, 63, 1, 0,110,132,225,199,101,205, 42,162,135, 45,169,128, 37, 74, 99, -242, 63, 9, 0,201,251,159,100, 34,196, 76,127,107, 10, 73, 75, 89,178,100,201, 5, 19,255,174,164, 50, 22,193, 24,226,225, 45, - 95,104,126, 73,150, 44,103, 7,251, 11, 63,255, 56,223,122,127, 16, 16, 19, 21,134, 75,135,214,102,232, 13,218, 79,193,210,184, - 27,231, 14, 29, 4, 65, 14, 94, 31,188, 4,236, 55,163,137, 64,237,218, 85,189,241,219, 19, 29,146,162, 95,128, 82,118, 27, 77, -248, 53,167,204,141, 99,158,200,218,182,118,190,253,225, 7, 4,209, 81, 97, 56,187,127, 77,134,222,160,253,180, 52,193, 78,141, - 24, 78,136, 29, 79, 46,217, 48,176, 77,221, 94,222, 21, 61,193, 82, 29, 88, 33, 69,183,105,142,252,231,247,114,126,243,106,195, -219,207,102,179, 95, 70,223, 48, 47, 16,104,118,118,246,183,132,144,195,148,210,167, 38, 13,242,231,149, 42, 85,250,238,167,159, -126, 42, 31, 19, 19,163,184,119,239, 94,230,230,205,155,195, 88,150, 93, 72, 41, 45,113, 20, 21,165,244,107, 66,200,207,166,241, -114, 8, 33, 53,166, 14,237,119,163,223,144,225,146,176,115, 59, 97, 23,246, 20, 83,174,197, 26,158,167,105,250, 82, 74,227,205, -200,170,189, 88, 44, 62,120,242,228,201,151,181,107,215, 38, 74,165, 18, 58,157, 14,201,201,201, 56,124,248,112, 48,165, 20,118, -118,118, 56,121,242, 36,219,175, 95,191,131,106,181,186, 71, 81, 98,171,168, 81,135, 0,150,168, 84, 42,163,200,202, 79,183,182, -182, 94, 98,109,109,109,244,209,218, 82,196, 75,204, 24,222,129,228,133,119,104,240,251,239,191,135,180,107,215, 46,186, 48,177, - 34, 22,139,145,155,107, 89,148,144,162, 70, 49,150,134,179, 40,139, 86,193,116, 75, 56,141,221,151, 70, 39,248,130,233, 70,240, -120, 60,176, 44,251,151,244,127, 90,180,152,142, 14, 44,141,200,121,203,186, 92, 66,224,208,210,140, 68,124,215, 22, 45,227,181, - 16, 10,133, 56,122,244, 40,134, 12, 25, 2,131,193, 0,153, 76, 6, 43, 43, 43,200,229,114, 28, 58,116, 8,198,240, 15,150,100, - 81,167,211,237, 90,178,100,201,172,141, 27, 55, 74, 41,165, 16,137, 68,249, 66,107,254,252,249, 42,173, 86,187,203, 28,161,149, - 31,241,157,165,193,149,157,138, 31,117, 88,216, 49, 69,248,107,217, 46, 92,184,112, 16,203,178, 93, 80, 32,132, 67,129,253,222, - 10,253, 80, 92,120, 7, 0,118, 11, 23, 46, 28,193,178,172,113, 0,205, 91,163, 11, 77,246, 51,190, 75,124,123,246,236,185,163, -224,168, 67, 14, 31, 60,238,252,139,243,214,194, 36, 80, 41,201,107, 47,242, 5, 23,191,104,145,213,211,223,217,193,241,194,150, -213,243,173,119,223, 6, 98,163, 94,227,250,209,117, 25, 6, 86,103, 42, 94,154, 88,216,242,214,118,119,182, 69,234, 77, 21, 50, -147, 35, 1,138,123,101, 23, 89,189, 43, 59, 59, 58, 92,220,186,102,190,253,129,251, 12, 98, 34,195,112, 49, 79, 12,150, 69,100, - 13, 16,137,186, 4, 86,241,220,218,231,243,198,118, 54, 68, 15,125, 68, 8,126, 30,220, 11, 65,157,180,104,220,219, 6,245,218, - 43, 80,169,150,164,215,201, 45,169,159,185, 55, 37,195,205,181,110, 21, 16, 89,157,202,151, 47,191,224,214,173, 91,222, 44,203, - 42, 46, 93,186,148,181,113,227,198,215,185,185,185,107, 40,165, 39, 44,120, 57,152,138,172,218, 51, 70, 14,190,250,221, 79, 63, - 75,130,131,238, 96,217,174, 99, 80,233, 52,134,211,209,217, 61, 77,187, 21,139,131, 72, 36,250,246,252,249,243,242,234,213,171, -147,148,148,148,124, 43,137, 86,171, 69, 70, 70, 6,178,178,178,160, 86,171, 81,167, 78, 29,102,205,154, 53,242,241,227,199,127, - 11,224,203, 34, 94, 54,239,124,212, 97, 97, 80, 40, 20, 16, 10,133,208,106,181,249, 22, 45,177, 88, 12, 27, 27, 27,164,164,164, - 96,223,190,125, 40,201,242, 38, 20,138,226, 24,134,148,147,202,100,106,137, 68,194, 22,102, 85,179,148, 51, 15,209,159,127,254, -185,231,194,133, 11, 37,117,234,212,249,139, 69,171, 52,156,148,210,156, 54,109,218,200,214,172, 89, 3,111,111,111,104, 52,154, -183, 4, 21,195, 48, 16, 10,133,136,138,138,194,162, 69,139, 64, 41,205,249,167, 91, 30, 83,209, 98, 42,134,242,124,168,254, 34, -132,204,181, 24,149,212, 53,104,233, 72, 68, 83,225, 38, 22,139,145,158,158, 46, 37,132,244, 47, 34,130,189,217, 22, 45,163,208, -122,250,244, 41,118,236,216,129,246,237,219,195,206,206, 14,105,105,105,216,191,127, 63, 66, 66, 66, 32, 18,137, 64, 8,177,196, -170,197,214,175, 95,255,251, 43, 87,174,116,234,219,183,111,192,148, 41, 83,164,213,170, 85,195,243,231,207,177,112,225,194,220, -160,160,160, 80,149, 74,181, 16,230, 4, 54,205,139,248,110, 12, 70,106,214,168,195, 2,199, 20, 68, 17,225, 29, 62, 47,130,205, - 52,244,195, 91,225, 29, 76,113,253,250,117,159,242,229,203,251,227,205, 72, 66,227, 11,215,116,116,225, 91, 47,227,184,184,184, -186,224, 70, 29,114,248,103,219,186, 75,132,144,252,128,165, 70,241,245,151, 81,135,127, 61,146, 76,234, 59,120,164,245,174,219, - 4, 81, 17,161,184,123,114, 67, 65,145,101, 78, 99,211,202, 52,214,134, 68, 42,175,198,146, 55,195,153, 51,147,163, 0,202,179, - 88,104, 21,228, 4,101,191,238, 59,104,164,253,158,187, 4,177, 81,175,112,237,200,122,139, 69,150, 41,231, 0,145,232, 27, 1, -143,204,233,208,172,182,176, 73,173, 42,144, 39,134, 35, 62, 58, 22,251,158, 38,165,134,166,169,135, 95, 35, 90, 68,188, 82,255, -220,126,132,189,189,157,171, 0, 29, 71, 59,216,223, 60,150,249,155,199,167,140,150,106,233,146,216,171,116,126,161,249,252,235, - 57, 43, 91, 91, 91, 47, 15, 10, 10,114,146, 72, 36,214,119,239,222, 53,108,218,180, 41, 42, 55, 55,119, 5,165,116,175, 89,101, -255,235,118,207,186, 85, 42, 94,250,110,253, 22, 73,182, 50, 7, 74,141, 22, 98, 23, 55,195,225, 27,143,187, 23, 21, 0,179, 32, - 39, 33,164,229,208,161, 67,107,212,175, 95,159, 49, 21, 89, 26,141, 6,153,153,153,200,202,202, 66,102,102, 38, 50, 51, 51, 17, - 19, 19,131,230,205,155, 51, 53,106,212,168, 70, 8,105, 73, 41,189, 80,144,243, 93,141, 58, 52,229, 52, 9,239, 48, 11, 0, 67, - 8,185,243,224,193,131,236,118,237,218, 65, 42,149, 66,169, 84,194,203,203, 11,122,189, 30, 39, 79,158, 68, 80, 80,144,146,101, -217, 75, 0, 30, 20, 87,118,149, 42,199,139, 16,194,168,114,114,106, 14, 26, 52,168,249,228,201,147,223, 26,146,238,236,236, 12, -123,123,123,139, 56, 1, 32, 53, 53,181,234,239,191,255,254,213,131, 7, 15,190,110,223,190,189,205,172, 89,179,196, 62, 62, 62, - 48, 24, 12, 76,105, 57,211,210,210,108,238,221,187,183,162, 73,147, 38, 99,219,181,107,199,255,238,187,239, 96, 99, 99, 3,131, -193, 0,169, 84,138,204,204, 76, 44, 92,184, 16, 87,175, 94,213, 83, 74,215,103,100,100, 76,177,228, 94, 42,165, 5,171,224,189, - 84,168, 5,168, 40, 33, 84,216,254,255, 68, 62, 11, 8, 55,216,218,218, 78, 7, 48,189,136, 8,246, 48,247,217, 52, 10, 45, 30, -143,135,240,240,112,108,218,180,233, 47,113,180,140,225, 31, 10,227, 46,162,236,244,226,197,139, 6, 66, 72,195,187,119,239, 78, - 31, 56,112,224,112,165, 82,233, 41,151,203, 99,117, 58,221,118,149, 74,101,140,163, 37,180,164, 13, 81, 42,149, 17,133,141, 58, - 44,184, 15, 96, 91, 44,103,129,240, 14,111,133,112, 40,112,216, 91,161, 31, 10,134,119, 48,229,108,212,168, 81, 24,195, 48,207, -242,186,224,159,161,192,232, 66, 19, 78,223,184,184,184,186,110,110,110,151, 0,200, 10,142, 58,252, 39,238, 37,142,243,191, 45, -182, 80, 92,192,210,194,143,130,228,220,173,112,136,164,169,120,248,199, 54,139, 69, 86, 97, 80,231,230,132,206,221, 19, 89, 75, -163,206,133, 50, 35,225, 57, 13,219,155, 88,246,171, 13,249,185, 59, 17,144,200,211,113,255,220, 47,233, 6, 67,238,167, 52,244, -127, 15, 74, 79,135,153, 63,157, 58, 40, 36, 54,246,120,248,213, 16,196,166, 43,113,234,117,218,126,154,163,254,114,103,222, 92, -129,158, 13,201,149,173,179,227, 55, 52,237,102,211,203,209, 67,128, 85, 83,183, 67, 50,195, 65, 88,239,179,102,102,207,129,104, -116,144,255,241,199, 31,199, 52,109,218,212,170, 87,175, 94, 47, 82, 83, 83,223,114,144, 47,197,133,142, 38,132,252,116, 98,227, -202,169, 14,213, 27, 96,221, 55,211, 12,123,110, 60, 46, 56, 10, 17,197, 91,117,132, 45,102,204,152, 33, 84, 42,149,127, 17, 89, - 5,133, 86,102,102, 38, 30, 62,124,136,193,131, 7,139, 31, 60,120,208, 2,192,133,191,152,114,162,163,183,136, 68, 34, 4, 7, - 7,163,121,243,230, 75,242, 44, 86,225,215,175, 95,159,105,228,232,211,167, 79,126,250,184,113,227,102, 86,172, 88, 17,169,169, -169, 37,149,117, 46, 33,100, 35,222,204,117, 24,191,115,231,206,134, 71,142, 28,105, 56,105,210, 36, 97,251,246,237,113,243,230, - 77,156, 61,123, 86,171,213,106,111, 0,184, 97,238,180, 54,121,241,135,238, 17, 66, 30, 47, 91,182,172, 33,143,199,155,107,220, - 22, 28, 28,140,109,219,182,149,134, 83, 15, 96, 5, 33,228,167,157, 59,119,206, 61,119,238,220,208, 65,131, 6, 89,235,116, 58, - 60,125,250, 20,191,252,242, 75,105, 57,191,114,114,114,154,115,242,228,201,237,103,206,156,233, 58, 96,192, 0,102,194,132, 9, - 88,187,118, 45,254,247,191,255,177, 6,131,225,136, 64, 32, 24,148,148,148,164,124, 79, 13,207,230,188,105,117, 54, 91, 48,231, - 97,137,188,101,233, 26, 52, 51,223,113,101,110,150,242,202,209,162, 69,139,124, 43, 35,165,244, 45,191, 58,163,192,178,180,235, - 16,128,109,222,125,186, 30,192, 90,188, 29, 21,158,135, 63, 35,199,155,203, 24, 16,167,182, 13,134, 26, 79,139,159, 84,218, 22, -160, 8, 40,129, 45,125,238,220,185, 63,204,155, 55,239,135,130, 33, 28, 76,119, 42, 24,250, 97,193,130, 5, 40, 42,188, 3,128, -180,185,115,231,126, 15, 0,254,254,254, 36,175,187,240, 19,228,141, 46, 52,225,220,145,151, 46,155, 63,127,254, 64, 0,197,113, -114,224,240,143,161, 24, 31, 45, 58, 43,248,202, 30, 29, 0, 7, 16,102, 38,125,181, 47,184,204, 13, 24, 75,103,156,223, 61,127, - 45, 40,210,168, 65, 63,253,157,148,128,229,205, 14,190,178,155, 5,136, 45, 8, 51,131,190,250, 95,153,243, 73,108,236,145,181, -112, 12,254,247, 36,150,198, 43,117, 95,236,212,104,222,178, 6,229,249,100,245,118,111, 74,246,217,185, 11, 14,127,245,169, 3, - 57,145, 58,208,226,243, 36, 37, 37,125,103,101,101,197, 91,177, 98,197, 80,149, 74,245,150,131,124, 25, 94, 18,211, 8, 33,188, -122,149,189,199,223,126, 25,209,197,220,238, 66,147,198, 95,228,238,238,254, 56, 55, 55, 23,132, 16,168,213,234,124,129,149,149, -149,133,140,140,140,252,255, 90,173, 22, 73, 73, 73,240,242,242, 2, 33, 68, 88,220, 75,199,116,138, 24, 0,111,113,154,194,148, -211,194, 23,226,101, 66, 72,208,194,133, 11,155, 45, 92,184,176,102,158, 85,232,114,105,187,204,242, 4,207,101,169, 84, 22, 75, - 8,241, 20,138,196,202,235,215,175,159, 43, 35,103, 78,158,165,100,213,170, 85,171, 22,203,229,242,186,193,193,193,127,148,133, - 51, 79, 68,117,119,112,112,112,223,177, 99,199,129,173, 91,183, 54,224,243,249, 55, 9, 33, 61,211,211,211,223,247,164,210,163, - 96,222, 28,135, 37, 90,140,204,177,136,149, 22,127,135,112, 51, 24, 12,217,115,230,204, 73, 44, 40,188, 10, 90,175,140,255,181, - 90,109,174,153,207,167, 37,163, 40, 75, 16, 25, 36, 27, 0,222,204, 93,248,102, 90, 29,115, 39,149, 6, 80,228,220,153,243,230, -205,163, 11, 22, 44, 32, 12,195, 28, 1,240,156, 97,152,151, 5,157,213, 77,183, 45, 88,176, 0,243,230,205,163,243,231, 23,253, -141,106,228, 12, 9, 9,161, 60, 30,239, 15, 0, 97, 60, 30, 47,220,148,215, 52,221,120, 76,113,156, 28, 56,188,119,161, 69, 95, - 31,136, 2, 48,228,157,126, 41,134, 29, 56,135, 55,142,140,239,142, 51,124,111, 4,128, 1,239,138,143, 5,150, 15,175,215, 98, - 42, 0, 66,129, 85, 5, 69,150, 41, 98,175,208, 35,110,141,201,146,122,159, 53,155,148,103, 13,251,206,210,243, 21,230, 32,255, - 14,196,214, 95, 28,228, 45,120, 65,156,145, 74,165, 68,169, 84, 66,165, 82,189,101,189,202,204,204, 68, 78, 78, 14,178,179,179, -243, 29,206,179,179,179,141, 93, 86,180, 24, 78, 72,165,210,252,110, 68,134, 97,194,210,211,211,243, 57, 77,211, 77, 57, 75, 41, -100, 78, 17, 66,206, 80, 74, 13,239,162, 46, 85,170,156,114,121, 47, 56,222,187,226,204, 27,228, 48,252, 93,114,166,164,164,196, - 2,104, 84,169, 82, 37, 81,104,104,168,230,223,210,192,188, 11,235,208,223,141,119, 45,220,242, 62, 24,170,254, 13,117,249,252, - 29, 19,254,210,166, 73, 0, 15,166,177,131, 74,154, 84,218, 40,208, 40,126, 41, 34,143,148,188, 81,146, 20,192,142, 87,175, 94, -121,179, 44, 27, 81,136,101,233,173,109,243,231,207, 71, 81, 49, 3, 11,112, 2,192,111, 81, 81, 81,238, 6,131, 33,174, 0,239, - 91,233,197,113,114,224,240, 47,177,104,253, 55,177, 75,163,153, 7, 96,158,185,251,199, 93,163,179, 1,204, 46, 99, 3,250,244, - 93,151,163, 52, 34, 11, 0,116, 58,221,121, 0,112,114,114,130,147,147,147, 37,199,149,184,205,116,238, 66, 83, 12, 28, 56,112, -203, 59, 46,187,225,111,168,207, 15,130,243,223, 36,178, 56,252,187, 65,211,130,163, 0,124, 83,226,126, 37, 71,131,255,139, 48, -202,251,153, 6, 32,173, 8,173, 83,220,182,226, 56, 1, 32, 19, 64,102, 33,199, 22,149,206,129,195,123, 5,195, 85, 1, 7, 14, - 28, 56,112,224,192,129,195,223, 3, 2,160, 85, 17, 95, 16,102,143, 38, 32,132,180, 42,197,215,252, 57,142,147,227,228, 56, 57, - 78,142,147,227,228, 56,255, 91,156, 37,113, 23, 28,189,252,174,166,231,250, 71,197,149,105,190,141, 35, 97,254,142, 5, 64, 43, -142,147,227,228, 56, 57, 78,142,147,227,228, 56, 57,206, 82,158,103,228, 63,113,158,191,115,225,124,180, 56,112,224,192,129, 3, -135, 15, 8,173,125,137, 27,223, 0,230, 84, 40,141,121, 23,124,159, 87, 34, 30, 0,240,174,248,254,139, 32,132,184, 1,232, 96, -146,116,194, 56, 24,136, 19, 90, 31,238, 69,173, 12, 96, 22, 0, 27,147,228,219,148,210, 37, 5,246,219, 13, 64,102,146,164, 4, -176,144, 82,250,210,146,243,241,120,188, 37,205,154, 53,251,242,234,213,171, 43,117, 58,221,194, 82,228,215,219,205,205,237,123, - 66, 72, 29, 0, 2, 66,200,171,132,132,132, 37, 58,157,238, 92, 25,234,160,130,171,171,235, 82, 0,181, 24,134, 17, 16, 66, 66, - 19, 18, 18, 22,233,116,186,139,101,224, 84,184,184,184, 52,166,148,186, 2,224, 9, 4,130,148,152,152,152, 91,165, 29, 61,215, -115, 65,136, 48, 83,169, 23, 0,128,181,156,175, 59, 48,207, 95,107,110, 26,119,151,115,224,240,159,111,232,121, 5,147,218, 86, -196, 98, 66, 49,197, 0,144,182, 21,200,154,211, 97,152, 82,228,241,133, 13,184, 41,192,217,182, 34, 22, 83,250,134,163,109, 37, -178,226,244,171, 18, 6,119,153,193,105,196,102,128, 25,105,206, 4,231,127,195,192,160,247,128, 14,166, 93,156,121, 1,152, 55, -151, 40,180,250,248, 18, 55, 3, 31,252, 3,193, 52,202,248, 18, 2, 80, 19, 64,101, 0, 47, 1, 60,160,148,102,149, 81, 48,124, - 16,156,255, 66,204,165,148,246, 43, 80,238,191,236,244,233,167,159,118, 62,115,230,140,204, 56, 61, 11,203,178,144, 74,165,122, - 0,131, 45,168, 79,231,190,125,251,206,248,249,231,159,209,171, 87,175, 57,132,144, 31, 40,165,217,230, 30,111,111,111,223,163, - 66,133, 10,107,183,108,217,226,212,160, 65, 67, 34, 18,137,240,234, 85,168,231,168, 81,163,170,185,184,184, 28, 73, 72, 72, 24, -110,105,225, 29, 28, 28,250, 87,172, 88,113,213,166, 77,155, 28,155, 52,105, 2, 66, 8,130,130,130, 60,191,250,234,171,154,174, -174,174,123,227,227,227,199, 90,202,233,232,232, 88,165, 98,197,138, 45,215,173, 91, 39,109,220,184, 49, 36, 18, 9, 30, 60,120, - 96, 53,122,244,104, 87, 87, 87,215,167,241,241,241,151, 44, 21, 89,143,130,142,117,213,107,213,203, 0,128, 47, 20, 79,107,248, - 67,230,177,212,160,203,157, 74, 74,235,185, 0,191,113, 98,139, 3, 7, 14,166,232,239, 14, 87, 74, 49,245,204, 47,223, 48, 0, -208,102,232,183, 19,250,187, 99,229,174, 88,196,191, 35,190, 41,131, 60,176,118, 71, 12, 18,202,146,207,205, 0,243, 21,159, 63, -161, 94,253,250,142,227,174, 93, 11,213, 2,219,255, 35, 6,144,145,133,165, 23, 41,180,122, 4,144,133,224, 99, 22, 0,242,121, -101,178,247,108, 24,239, 74,235,214,173, 43, 13, 27, 54,140,212,174, 93, 27, 65, 65, 65, 85,246,238,221,219,129,207,231,135, 26, - 12,134, 32, 0, 79,204,141,106, 77, 8, 17, 0, 8,228,241,120,117,254,205,156,255,114,200,243,202,157, 0,224,182,209,162, 85, -112,167,243,231,207, 31,229,243,249, 70,139, 86, 61,165, 82,233, 82,192, 10,102, 14,202,235,116, 58, 60,123,246, 12, 12,195, 8, - 0,248,224,175, 83,106, 20,117, 93, 60, 61, 61, 61, 55,220,184, 29,228, 64,248, 82,164,229, 2,200,213, 66,100,229,130,159,183, -237,180,159, 60,113,108,119,107,107,235, 43,153,153,153,191, 90,112, 51,251,120,121,121,253,240,240,225, 67, 7,153, 76, 6,150, -101,145,149,149, 5, 87, 87, 87,108,217,178,197,118,242,228,201,253,164, 82,233, 69,149, 74,245, 63, 75,196,121,197,138, 21, 91, - 62,126,252, 88,106,156, 80, 90,163,209,192,211,211, 19,187,119,239, 22, 79,152, 48,161,170, 88, 44,142, 86,171,213,175,205,229, -204, 84,234, 5,122,173,122,217,142,245,243,203, 1,192,160,177,243,151,137,178,172, 79,154,147,150,169,212,159, 0,192, 9, 45, - 14,255,244,139,162,142,163,163,227,193,228,228,228, 75, 0,134,191,139, 16, 36,132, 16,119, 62,159,239, 67, 41,181,205,251,159, -174,215,235,195, 40,165,165, 14,168,235, 88,169,101, 39,136,101, 67, 64,217,154, 12, 0,194, 48, 15, 12,218,156,109,201,207, 47, - 28, 43, 19,167, 72, 58, 20,160, 53, 25,128, 37, 12,243,144,213,231,108, 73, 10,185,112,234,223,114,125,110,102,192,183,162,171, -249, 19, 99,190, 11,190, 62, 21,224,198,176, 96,118,135,195,236,110,197,241, 64,251,137, 19, 39,186,142,253,242, 75, 50,100,240, -224,202,151,174, 94, 37,205, 45,153,173,224, 3, 68,113, 14,251,133, 10,173,158, 1,196, 14,192,244,189,107,103, 49,124, 30,143, -244,157,184,164,223,214,245, 43,152,214,157,122,230,119,159, 52,109,218, 20, 77,155, 54, 37,203,150, 45,171,252,199, 31,127, 84, -222,189,123,183,158, 16,242,144, 82,186,175,168,147,181,171, 68, 84, 44, 32,233,224,199, 87,246,253,230,215, 77,245,235,215,135, - 88, 44, 70, 89, 56, 1,160, 77,101,222,235,246,245, 43, 61,236, 59,126,110, 68,131, 6,141,232,187,224,252,128,112,155, 82,218, - 37,175, 1,179,243,242,242,106,172,215,235, 37, 0,192,231,243,115, 1,140,167,121, 83, 7, 17, 66,142,176, 44,219,217,130, 6, -146, 1, 48,175,115,231,206,115,198,141, 27, 7, 47, 47, 47, 76,152, 48, 1, 58,157, 46,136, 16, 50, 23,192,210,146, 2, 2, 58, - 59, 59,207,221,176, 97,131, 61, 95, 36, 71,237,233, 97,136, 75,215, 3, 0,172,196,192,209, 49, 20, 19, 38, 76,176,190,123,247, -238, 34, 0,102, 11, 45,103,103,231,133, 91,182,108,177,151,201,100,160,148, 34, 59, 59, 27, 89, 89, 89,200,206,206, 70,118,118, - 54,198,142, 29,107,253,244,233,211,239, 1,152, 45,180, 92, 92, 92, 26,175, 91,183, 78, 42,145, 72,144,157,157, 45,212,106,181, - 36, 43, 43, 11, 57, 57, 57, 84,163,209,104,199,143, 31, 47,126,242,228, 73, 11, 0,175,193,225,223, 34, 10,120, 0,190, 16, 8, - 4,221, 42, 85,170,244,201,203,151, 47,239,235,245,250, 67, 0, 14,149,245, 99,138, 16,242,153,187,187,251,226,216,216,216,117, -148,210,157,255,149, 58,117,113,113, 57,116,253,250,245,114, 27, 54,108, 24,188,114,229,202,147,150, 60, 67, 69,124,252, 54,172, - 87,175,158, 99,183,110,221, 4,174,174,174,200,201,201, 65,104,104,168,236,220,185,115, 78, 18,137, 36, 69,173, 86,223,176,228, - 90, 57,250, 54,182, 2,223,122,111,195,150,173,154,244,234,254,133,194,197,193, 6, 42,141, 1, 47, 35,226,188,126, 63,121,180, -185,123,181, 14,215,181,218,140, 62,201,207,175,101, 91,202,217,178, 93,199, 38,173, 62,251, 76, 97, 99,107,131, 12,165, 22,175, -194, 99,188, 47,156, 61,214,212,173, 90,135,203, 44,209, 13, 72,120,116, 38,231,125, 94,155, 9, 0, 95, 41,113,168, 81,179, 81, -237,187,109,134, 45,250,132, 82, 10,134, 98, 77, 65,107,214, 4,128,191, 6,208, 91,202, 7, 74, 41, 33, 88, 97,106,205,202,239, - 86,100, 64,218,250,160,248,110, 74,227,251, 24, 16,219,218,219,215, 31, 61,114, 36,201,202,204,196,131, 7, 15,114, 10,138,172, - 31, 60, 32,188,204,160,252,145, 40,188,248,152,172, 89, 5,187, 14,141,255,205,142,163, 37,147,201, 10, 77,183,177,177, 65,203, -150, 45,177,100,201, 18, 62,128, 58, 5, 20,222,219,147,172, 2,226,227, 27,103,194, 70, 46,102,188,188,188, 20,214,214,214,101, -230,124,147,200,250, 52,242,162,159,223,249,117,214,224,115,187, 87, 5, 42,179,210, 5, 5,119,177,178,178,130,175,175, 47,230, -204,153, 99, 30,103,217,213,237, 63,202,233,230,230,230,215,180,105,211, 58,231, 47, 93,178,141,141,141, 21,199,198,198,138,207, -156, 63,111,219,176, 97,195, 58,110,110,110,126, 38, 28,150,228,243,219,245,235,215,207, 61,114,228, 8,211,180,105, 83,216,217, -217,161,101,203,150, 56,121,242, 36,127,229,202,149,223, 1,152, 83, 82, 62, 25,134,105,210,180,105, 83, 2, 74, 17,159,161,199, -173, 37,126,120,176,194, 31, 89,185, 20,169, 25,153, 80,169,114, 33,147,201, 36,121,221,189,230,150,189, 81,195,134, 13, 9,128, -124,113,149,149,245,102,201,206, 86, 66,163,209, 66, 44, 22, 43, 8, 33, 18,115, 57, 41,165,174,141, 27, 55, 6, 0,104,181,218, -252, 47,188,244,244,116,146,145,145, 1,141, 70, 3,129, 64, 32, 36,132,240,205,229,180,150,243,117,124,161,120,218,160,177,243, -163, 6,141,157, 31,197, 23,138,167,105, 20,153, 6,115,210,172,229,124,221,251,188, 63, 9, 33, 78, 60, 30,239,151, 74,149, 42, - 61,229,241,120, 59, 8, 33,174,101,225, 36,132,212, 37,132,124, 39,147,201,206, 85,173, 90, 53, 74, 46,151,159, 39,132, 44, 37, -132, 52, 44, 13, 39, 33, 68, 36,147,201,206,127,247,221,119, 7,238,223,191,223,235,143, 63,254,240,121,244,232, 81,247,101,203, -150,237,181,178,178,186, 66, 8,145,149,229,217,244,241,241,217,122,235,214,173,186,141, 26, 53,250,153, 16, 34,126, 23,207, 59, - 33,132, 71, 8,169, 69,204,156,107,232,159,190,238,132, 16,247,218,181,107,151,147, 72, 36,104,213,170, 21, 0,180, 40, 35,103, -195,209,163, 71,187, 78,158, 60, 89,240,224,193, 3,252,252,243,207, 56,114,228, 8, 18, 19, 19,209,177, 99, 71,225,167,159,126, -234, 42, 22,139, 27, 90,196,201,183,222, 59,241,171, 73,237,166, 78, 24,161,120, 24,169,197,182,115,145,248,237, 70, 28, 18,115, - 68,232,212,125,144, 77,219, 46,189,219,138,196, 54,123, 45,229,156, 49,125,122,187,145, 67,251, 41,130,227, 88, 28,189, 25,143, -155,207, 50,160, 23,216,162,125,247,225,118, 53, 27,183,235,192,135, 96,251,251,190, 70, 91,128, 6, 19, 39, 78,116,154,182, 98, -215, 53,247,186, 95,172, 73, 74, 67, 83, 83,225, 83, 5,176,181,151,203,191,120,214,188,249, 8,233,155, 57, 31,139,229,124,139, -175, 78,151,181,137,105,104,102,234,159,213,204, 30,149,243,186, 21,121,103,126,249,134,161, 4, 19,250,187,195,181,164,124, 94, - 4,122, 77,156, 52, 73, 96, 99,103,135,245,235,215, 67,173, 84,190,229, 51,251, 89, 57,180, 59, 39,227, 71, 87,240,247,124,218, -210,155, 92,249, 8, 63, 0, 71, 22,105,209, 58,113,226, 4,237,208,161, 3, 1,128, 3,193, 52,173, 71, 0,249,190,247,184,239, -230, 16,134,208,242,129,141,130, 61, 42, 6, 40, 29, 28, 28,144,147,147, 3,181, 90, 13,161, 80,136,220,220, 92, 68, 70, 70,226, -230,205,155,176,179,179,179, 40, 51,153,153,153,176,178,178,130,149,149,213, 59,225,156, 57,184,149,248, 85, 84,146,248,244,205, -139,205,127,252,242,127, 13, 42,214,106,241,232,179,222, 19, 30, 91, 59,185,231, 62,122,244, 8,215,175, 95, 71, 90, 90, 26,234, -215,175,255,177, 92,207,219,121,237,245,109, 66,136, 93,211,166, 77, 61, 79,159,187,108,151,157,203, 90,135, 39,232, 4, 44,203, - 66, 38,115,211,239, 59,120, 52,163, 87,247, 78,132, 16,146, 8,224,118,158,184,189, 93,194,141, 34, 1,224,215,163, 71,143, 25, - 95,126,249, 37, 66, 67, 67, 49, 98,196, 8,213,237,219,183, 83, 26, 53,106,228,176,101,203, 22,233,228,201,147,113,233,210,165, -121,132,144,195, 0,194, 40,165,185, 69, 52, 26, 66,161, 80, 8,125,158,108,208, 26,216,124,125,159,153,153, 9,170, 74,131, 80, - 40,228, 1,112, 2, 96,150, 31, 29,203,178, 66,129, 64,144, 47,178, 34, 19, 50, 17,153,152,131,204,108, 13, 84, 42, 61, 52, 42, - 10,158,204,129, 15,132,187, 0, 8, 55,179, 62,121, 18,137, 4,122,189, 62,127,254, 69,163,165, 76,163,209, 32, 35, 35, 3, 60, - 30,207, 10,128, 53,128, 84,115, 8,223, 56,185,227,183,188,110, 64,220,217,213,217,241,229,137,153,218, 30,243,159,230,167, 89, -203,249,186,131,147,171,242, 28, 60,107, 94,173,213,107,187,191, 49,237,125,250,103, 17, 66,196, 78, 78, 78, 23, 14, 28, 56, 80, -181,114,229,202, 8, 11, 11,243,239,217,179,103,125, 66, 72, 45, 75,231,100, 36,132,200, 24,134,249,126,200,144, 33, 95,246,237, -219,151, 84,169, 82, 5,124, 62, 31,122,189,222, 51, 52, 52,180,229,254,253,251,167,243,249,252, 45, 6,131,225,107,115,253,254, - 8, 33,140, 72, 36,218,183,105,211,166,102,245,235,215,199,142, 29, 59,112,251,246,109,182,110,221,186,204,192,129, 3,225,237, -237, 93,127,224,192,129,191, 17, 66,218,151,198,178, 69, 8,241,238,223,191,127, 57, 30,143,135, 70,141, 26, 9,175, 95,191, 94, - 27,192,245, 50,214,169,149,167,167,231,165, 22, 45, 90,212, 58,119,238,220, 61, 66, 72, 11, 75,252, 28, 9, 33, 93,220,221,221, -151,217,216,216,216, 89,208,198,230,196,196,196, 76,177, 96, 14,213, 6,117,234,212, 65, 68, 68, 4,252,252,252, 32, 20, 10, 27, - 18, 66, 70, 1,104, 7, 96,182, 37, 51, 88, 16, 66,220, 27, 54,108,232,216,162, 69, 11,178,116,233, 82, 0,128, 64, 32,128,193, - 96, 0,195, 48, 16, 8, 4,240,247,247, 39,175, 95,191,182, 39,132,184,155,211,141,232, 88,169,101,167, 70,159,181,107,210,172, -126, 13,102,229,193,151, 48,176, 6,240,136, 30,124,194,130,213,137, 33, 22,242, 80, 37,240, 19,222,179, 39, 15,235, 59,250,182, -238,148,252,252,236, 49,115, 56,219,117,234,220,180,170, 95, 21,230,199,223, 94, 33, 61,230,169, 33, 38,228,114, 50,195, 99, 80, -181,206,167,142, 85, 2,106,241,106,213,111, 33,136, 13,123,210,210,190,114,243, 86,169, 47, 47,157,123, 31,207,228, 2,128,231, -233,225,248, 69,199,214, 45,132,113,177,177,202,253, 7,143, 61,206,209,225, 38, 0, 92, 2, 72,123,160, 70,245,122,245,154,111, - 89,186,212,193,205,205, 77, 48,160,111, 95,253,230,123,247,238,141, 4, 12, 69,241, 57,186,186,182, 26, 61,122, 52, 47, 46, 54, -150,238, 63,116,226,145,145, 15, 0,100, 64,245, 26,158,254, 29,161,124,102, 81, 55,101, 39, 64,228,226,234, 90,117,212,168, 81, -136,143,141,197,142,157, 59,179,115,129, 27, 70, 43,214, 81, 30,214, 5, 84,116, 29, 50,109,120,103, 82,206,205, 17,163,231,109, -110,216, 82,155, 88,241, 2,254,180,108,153,106,145, 15, 85,100, 21, 20, 91, 69,126,157, 31, 12,166,115,173, 69,196,103,255,254, - 61, 76, 82,150, 86, 25, 26, 26, 10, 71, 71, 71,184,185,185,193,198,198, 6,193,193,193, 56,127,254, 60,158, 63,127, 14,150,101, - 81,179,102, 77,139, 50,148,156,156,140,135, 15, 31,194,206,206,238,157,113, 86, 44,231,132,113,229,156,132, 9, 41,153,194,115, -183,159,215,223, 60,179,123, 0,227,223,125,107,110,238,159, 26, 64,163,249, 56,102, 40, 49, 29, 93,232,229,229,213,120,219,182, -109, 66,181, 30,138, 42,163,110, 44, 87,230, 26,228, 0, 32,151,240,148, 65,203,124,191,254,246,219,111,149, 67,135, 14,245,143, -140,140, 92, 82, 18,175, 72, 36, 90,252,249,231,159, 79,165,148, 10, 38, 78,156, 8, 0, 24, 52,104, 80,230,205,155, 55,171, 80, - 74, 19, 9, 33,238,195,134, 13,123,113,225,194, 5,217,164, 73,147,120,122,189, 62,152,207,231, 83, 66,200, 66, 74,233,252,130, -124, 12,195,220,189,119,239, 94,121,119,111, 95,120, 59, 48,104, 58,231,205,116,109, 14, 50, 22,209,225,175, 16,242,232, 54, 92, - 93, 93,109,220,220,220,158,250,249,249,105, 99, 98, 98,166,103,103,103,111, 40, 46,143, 66,161,240, 65, 80, 80,144,155,183,183, - 55,178,179,179, 17,157,148,131, 9,135,100,200, 84,189, 49, 98, 8,160, 66,173,114,190, 10, 41,163,185,237,226,226,162,213,104, - 52,223,164,167,167, 23, 59,141,136, 64, 32, 72,121,244,232,145,149,151,151, 23,114,115,115,105,106,106, 42, 81, 42,149,200,202, -202, 34, 39, 78,156,232, 26, 23, 23, 87,215,199,199,135,120,122,122, 46,172, 92,185,178, 42, 38, 38,102,132, 57, 62, 96, 7,230, -249,107, 9, 33, 6, 62,159,191,114,228,200,145,189, 14, 31, 62,124,247,224,252,170, 93, 40,165,218,188, 7,210, 38, 48, 48,240, -116,141, 26, 1,238, 59, 87, 84, 95, 67, 41, 93,254, 47,184,189,134,204,154, 53,171,170,189,189, 61, 70,143, 30,141, 5, 11, 22, - 96,238,220,185,149, 71,143, 30, 61, 18,192, 15, 22, 52, 58, 82, 87, 87,215, 59, 63,254,248,163,127,227,198,141,113,242,228, 73, -236,217,179, 7,175, 95,191,214,251,248,248,240,235,215,175,143,121,243,230,161,109,219,182, 35,198,143, 31,223,156, 16, 82,219, - 76,241, 49,116,222,188,121, 93,154, 52,105,130,193,131, 7,171, 47, 94,188,216, 11,192,153,179,103,207,126,122,233,210,165,131, -187,118,237,146,126,247,221,119,173, 38, 79,158, 60, 26,192,218, 82,148,191,107,179,102,111,230, 80,110,210,164, 9,150, 45, 91, -214,182, 44, 66,139, 16, 34,114,112,112, 56,177, 99,199,142, 90,190,190,190, 24, 48, 96, 64,237, 94,189,122,157, 32,132,180,166, -148,154,213, 32,121,120,120,124,127,228,200,145, 74, 69,245, 44, 20, 6,181, 90,109,255,197, 23, 95, 44, 5, 96,145,208,218,189, -123, 55,166, 76,153,130,154, 53,107,214,104,208,160,193,198, 81,163, 70,161, 71,143, 30,159, 17, 66, 92, 40,165, 74,115,136,248, -124,190, 79,199,142, 29, 5,135, 14, 29,122, 99, 29,105,214, 12,173, 90,181,194,227,199,143,113,245,234, 85,240,120, 60,200,229, -114, 52,110,220, 88, 20, 27, 27,235, 3,160, 68,161,197,136,101, 67,186,116,108,175, 56,122, 51, 14, 6, 86,143, 79, 42, 89,163, -190,191, 51,158, 69,103, 34,232,105, 52, 12, 26, 33,172,237, 29,208,176,121, 27,251,248,152,215, 67, 0,148,236,175, 37,150, 13, -233,214,165,131,213,209, 27,177, 72,143, 13,161, 47,111, 31, 62,175,203, 85,142, 0,128,187,127,236,221,232,234, 32,109, 93,165, -206, 39,188, 22,173, 59,219, 29,218, 19, 63, 4,192,123, 17, 90,151,202, 97,147,183, 32,121,208,180,126, 77,169,192,206,243,182, - 66,167, 91,103,220,214, 22,104, 51,125,214,172, 6,195, 71,142,148,176, 44,139, 93,191,254,154,249,240,222,189,103,197,141,246, - 91, 7,120,247,234,210, 69,172,176,182,198, 87, 19, 38, 64,161,211, 93,200,175, 18,224,179,175,166, 78,109, 60,118,236, 88,233, -198,133, 95,222,109, 59,108, 81, 29,150, 82, 82, 88, 55,101, 65,156, 3,234, 14,235,210, 5, 10,107,107, 76,156, 56, 17, 68,171, - 61,109,220,118,156,143, 11, 67,187, 54,173,223,175, 83, 19, 16, 16,236, 57,126, 21, 47, 35,146, 30, 93,136,195,171,143,228,157, -108,153,143,150, 17, 89, 90, 36,124,214,161, 59,238,221,187, 7, 0, 72, 73, 73, 65, 74, 74, 10, 42, 85,170,132,181,107,223,110, -191, 74, 35, 96, 88,150,125,231,156, 0,224,226, 96,141, 1,237,235,241,175, 62,220, 35, 81, 38, 37, 73,172,172,172,114, 63, 54, -161,101, 10,189, 94, 47,241,241,241, 65,166, 10, 36, 35, 71,103,149,188,247,141,197,223,177,207, 69, 43,141, 70,195, 88, 89, 89, - 65,173, 86, 75,204,120, 33, 8,186,116,233, 50,117,223,190,125,130,144,144, 16, 84,172, 88, 17, 90,173, 22, 55,111,222,140,206, -155, 8, 25,148,210, 88, 30,143, 23,203,178,108,229,154, 53,107, 98,201,146, 37,240,247,247, 39,237,219,183,159,158, 39,182,222, -122,184,227,226,226,190, 31, 53,106,212,167,251, 15, 30,182,223,212, 91,133,204,140, 76,100,103,103,227,193,253,187, 72, 77,200, -197,230,205,155, 33,145, 72, 9, 0, 97, 98, 98,130,112,210,164, 73,107, 60, 61, 61,219, 69, 71, 71,119, 44, 42,159,177,177,177, -139,199,142, 29,219,112,239,222,189,182, 89, 89, 89, 80,169,114,145,170,148,225,233,234, 55,243,248, 86,253,234, 41,214,175,219, -192, 84, 47, 47,119,204,201,201,193,151, 95,126,185,202,221,221,189,113,108,108,236,176,162, 56, 99, 98, 98,110,141, 27, 55,206, -101,215,174, 93, 18,141, 70,163, 53, 24, 12, 80,169, 84,204,222,189,123,167,151, 47, 95,222,110,203,150, 45, 68, 34,145,230,237, - 27, 45, 28, 51,102,204, 62, 87, 87,215, 93,241,241,241,131, 75,234, 46,226,241,120,171,119,238,220, 57,176,119,239,222,138,184, -184,184,128, 35, 71,142,136, 1,168,242,118,113,107,221,186,117,249, 21, 43, 86, 56, 5, 6, 6, 78, 39,132, 8, 40,165,223,189, -207,251,201,209,209,113,124,151, 46, 93,176,116,233, 82, 28, 59,118,108,178,189,189,253,170, 5, 11, 22,192,221,221,125, 28, 33, -100,181, 5, 19,245, 46,255,225,135, 31,252,253,253,253, 49,104,208, 32,205,185,115,231,102, 1,248, 13, 64,196,149, 43, 87,188, -182,111,223,222,105,223,190,125, 75,127,252,241, 71,201,218,181,107, 43,117,239,222,125, 53,128, 97, 37, 62,223, 46, 46,147,250, -246,237,139, 21, 43, 86,224,226,197,139,221, 41,165, 39,243, 54,157, 34,132,116,250,238,187,239,254,152, 51,103, 14,126,248,225, -135,137,150, 10, 45, 66,136, 85,213,170, 85,191,105,215,174, 29,174, 92,185,130,166, 77,155,162, 97,195,134,147, 9, 33,107, 40, -165,201,165, 16, 89,140,149,149,213,190,109,219,182, 53, 45, 95,190, 60, 22, 45, 90,132,169, 83,167, 98,235,214,173, 77, 7, 12, - 24,176,143, 16,210,173,224, 51, 83, 24,108,108,108,172,100, 50, 25,166, 79,159, 78, 95,191,126,157, 86,210,254,229,202,149,179, - 91,181,106, 21,177,179,179,179, 49, 87, 20, 75, 36,146, 70,213,170, 85,195,188,121,243,112,246,236, 89,204,153, 51, 7,213,170, - 85, 67, 68, 68, 4,250,244,233, 35,155, 61,123,118, 15, 0,219,204,124,233,216, 56, 56, 56, 32, 49, 49, 17, 2,129, 0,141, 27, - 55,198,111,191,253, 6,181, 90, 13,103,103,103,164,167,167,163, 94,189,122, 70, 81,102, 99,230,171,172,154,163,189, 13, 18,159, -196,128, 15, 61,234, 84,113,196,133,199, 41,208,234, 88, 56, 59,216, 34, 62, 49, 1, 13,170,121, 66,163,241, 2,165,108, 53,115, - 24, 69, 60,166,142, 88, 34, 69,106, 86, 50, 98,158, 94, 76,209, 26,212,163,210, 95, 95,141, 2, 0,251,138,205, 70,221,189,122, -246,110,207, 14,205,156,179,149,229, 64, 40, 91,239,125, 60,143, 61,189, 80, 78, 46,225, 15, 58,190,105, 38,209,179, 44, 62, 31, -182,184,110, 59, 23,228, 32, 1,112, 2,124,122,246,233,211,232,235,175,191, 22,189, 8, 13,101, 39, 77,152,144,126,255,206,157, -139,191, 3,119,139,227,204, 6, 42,183,110,221, 26, 12,128,223,207,156, 81, 38, 3,209, 0,224, 2,148,235,252,197, 23,205,102, -205,152, 33,122, 21, 30,206,222, 12,205, 62,250, 42,145, 46,105,100,143,135,123, 35,222,236, 83, 28, 12, 64,117, 35,239,233,211, -167,169, 42, 47, 31, 45,202, 97, 92,219,198,129,245, 7,118,105,134,232,248, 20, 44,251,249, 40, 30,189,136, 59,237,192,162,255, -199,242, 30, 46, 46,130, 61, 99,198, 3,243,151,180,156,156,191,246, 30,148, 85,192,252, 29,156,133,225, 99, 20, 90, 70, 24, 39, -111,214,232, 88,104,116,172,241,171, 22, 42,149,202, 92, 69,174, 59,125,250,244,142, 9, 19, 38, 96,213,170, 85,120,241,226, 5, -132, 66, 33,170, 85,171,230, 70, 8,177, 50, 90, 96,234,212,169,227,204, 48, 12,158, 61,123,134,149, 43, 87, 98,232,208,161,244, -250,245,235, 91, 11,123, 97, 80, 74,239,167,166,166,174, 27, 53, 98,104,122, 90, 66, 36,116,170, 52, 36,198,188,130, 90,153,142, - 69, 75,190, 71,142,142,143,248, 12, 45,226, 51,180, 96,196,246,216,184,101, 27,175,106,213,170,237,248,124,126,199, 98,242,121, - 51, 33, 33, 97,203,152, 49, 99,210,227,227,227,243,203,167,209, 81,104,116,111,223,175, 50,153, 12,171, 87,175,182,169, 82,165, - 74, 23,129, 64,208,178, 24,206,184,168,168,168,144, 49, 99,198,104, 18, 18, 18,144,145,145,129,163, 71,143,118, 42, 95,190,188, -221,210,229,171,136, 82,203, 71,124,186, 22,241,233, 90,136,172,156,177,239,224, 97,158,175,175,111, 63,129, 64,208,176, 36,145, -181,107,215,174,129,189,123,247, 86, 44, 95,190, 60,245,200,145, 35,235, 41,165,166, 23,228,217,234,213,171,247,239,219,183, 47, -107,234,212,169,246,203,150, 45,155, 76, 8,153,245, 30, 27,139,150,189,123,247,246, 99, 89, 22, 7, 14, 28,120, 68, 41,253,225, -240,225,195,119,212,106, 53,250,244,233,227,147,215,141,100, 14, 79,221,126,253,250,125,217,180,105, 83,124,245,213, 87,218,115, -231,206,213,161,148,174,162,148,134,211, 55,136,160,148,174,185,116,233, 82,205,241,227,199,171,235,213,171,135,193,131, 7, 15, - 37,132, 52, 45,129,183, 81,223,190,125,253, 89,150,197,222,189,123, 31,154,136, 44,227,117, 60,127,240,224,193,155, 26,141, 6, -253,251,247,175, 64, 8,249,212,130,178, 11,197, 98,241,129,111,191,253,214, 54, 38, 38, 6, 3, 7, 14, 84, 63,123,246, 12,243, -231,207,151,218,216,216,156, 52, 62, 3,150, 64, 44, 22,111,254,233,167,159,186, 84,175, 94, 29, 99,198,140,209,108,216,176, 97, -194,151, 95,126,169,169, 83,167, 14,214,175, 95,223, 69, 36, 18, 89, 52,181, 72,108,108,108,122,112,112,176, 67, 73, 75,116,116, -116,130,153,101,150, 41, 20,138, 27,129,129,129,153,213,170, 85,251, 68,175,215, 35, 56, 56,248,213,142, 29, 59,216,106,213,170, - 97,221,186,117, 88,182,108, 25, 58,118,236, 8, 30,143,215,195,146,188, 42,149, 74, 72, 36, 18, 8,133, 66, 4, 5, 5, 65,173, - 86, 67, 38,147, 65, 34,145,128,199,227,193,214,214, 22, 10,133, 2, 48,115, 52, 26, 33,160,153, 57, 58, 8, 4, 12,248, 12,139, -144,136, 12,104,117, 44, 36, 66, 30, 4,124, 2, 80, 22,182,114, 1, 36, 34, 30, 24, 66, 88, 51, 57,145,161,212, 66, 36,100, 32, - 16,138, 8,163, 55, 72,243, 95,142,124,131, 84, 42, 21, 17, 71,107, 49, 36,194,127,209,180,192,228, 77,125, 13, 1, 4,114, 47, -175, 94, 43, 86,174, 20,101,102,103,163,123,247,238,169,225,119,238,236, 84, 1,119,154,151, 80,167, 12,159, 95,165, 69,243,230, - 8,186,119, 15, 89,105,105, 47,129, 55,206,241, 34,119,247,222,171, 87,175, 22,169,114,115,209,189, 91,183,244, 23, 87,175,238, -138,202,198,113,115, 68, 22, 0,240,132, 66, 87, 35,111, 70, 90, 90, 26,240, 38,132,132,139,147,213,210,177,253,218, 34, 43, 39, - 23,211,190,223,201,222, 11,137, 27,119, 37, 26, 29, 14,199, 34,227, 99,122, 7, 19, 66, 70,154, 46,102, 89,180,140, 86, 39,115, -196,138, 90,173,126,231, 2,168,172,156,133,137,196,178,114,254, 27,193,231,243,115,159, 63,127, 46,178,118,112,103, 29, 20,130, -180,242, 67,175,218, 0,128,189, 21, 63, 67,107,208,177,177,177,177, 16,139,197,185,230,112,229,230,230,142, 32,132, 44, 2, 16, -192,231,243,143,111,219,182,141,236,220,185,211,174,111,223,190,161,132,144,152,192,192, 64,239,109,219,182, 89, 3,192,154, 53, -107,232,190,125,251,218,226, 77,200,140, 34, 77,202,241,241,241,243, 5, 2,193,245,177, 99,199,174, 21,137, 68,118,114,185,220, -225,202,149, 43, 36, 87, 75, 81,119, 86, 68,254, 72, 68,107, 41,131,203, 51,173, 49,114,228, 72,222,211,167, 79,151, 0, 56, 94, - 12,231,116,177, 88,124,229,197,139, 23,171,108, 60,107, 57,201,189,103,217,212,159,249, 12, 0,224,237, 40, 0,147,215, 46,166, -167,167, 35, 41, 41, 9, 95,126,249,165, 93,104,104,232,116, 0, 23,138,226,140,142,142,190, 36, 22,139,163,159, 60,121,210, 66, - 32, 16,136,228,114,121,221, 27, 55,110,144, 92, 13,139, 26,211, 35,144,154,253, 38,159,246, 86,124,220,253,214, 5,227,198,141, -227,191,124,249,242,123, 0, 77, 10,109,204, 24,102,153,169,200,154, 54,109,218, 3, 0, 21, 8, 33,111,117,141, 26, 12, 6,210, -191,127,255,199, 0,170, 77,157, 58,213,158, 82, 58,153, 16,146, 74, 41,221,244, 79,223, 75,214,214,214, 75, 71,141, 26,133,125, -251,246, 33, 45, 45,109, 53, 0,100,102,102,254,176,123,247,238,189, 35, 70,140,192,175,191,254,186,148, 16,242,187, 25, 86,173, -207,251,244,233,131, 83,167, 78,225,143, 63,254,248,134, 82, 26, 92,196, 51,250,130, 16, 50,253,200,145, 35, 63,246,237,219, 23, -191,252,242, 75, 59, 0,197, 57,200,182,110,219,182, 45, 78,158, 60,137,148,148,148,245,133,237,144,158,158,190,225,232,209,163, - 13,218,182,109,139, 37, 75,150,180, 6,112,222,140, 6,210,223,198,198,102,219,143, 63,254, 88,183,122,245,234,232,215,175, 95, -174, 86,171,109, 55,117,234,212, 99,123,246,236, 81,236,216,177,227,147,145, 35, 71,222, 34,132, 12,167,148,222, 52,235,165,195, -227,125,183,118,237,218, 97, 45, 90,180,192,228,201,147,245,167, 79,159,238, 76, 41, 61, 67, 8, 9,157, 54,109,218,137,149, 43, - 87,242, 86,172, 88, 49,140,199,227, 37, 25, 12,134,247, 37,174,191, 93,179,102, 77,131, 54,109,218,224,213,171, 87,184,121,243, - 38,180, 90,237,175, 55,110,220,184, 92,185,114,229,111, 53, 26,205, 49,185, 92, 62, 72,161, 80, 4,214,170, 85,235, 83, 66,136, -204, 28, 63, 61, 66, 72,122,104,104,168,220,217,217, 25, 2,129, 0, 15, 31, 62,132,179,179, 51, 0, 32, 49, 49, 17,213,170, 85, - 3,143,199, 67,122,122, 58, 0,243, 94,182,132, 48,143, 66,195, 99, 43,216, 43,228,128, 65,130,251,207,162,225,228,104, 7, 3, - 97, 16, 31, 31,135, 90,126,158, 32,132, 32, 61, 37, 30,132,144,199,230,112, 26, 40, 27, 20, 25,155,232,225,160, 16,163,122,131, - 54, 14, 55,126, 79,218,105, 83,177,201, 72, 62,143,240,196, 18,235, 77,195, 6, 15,118,100, 89,138,244,148, 4,240, 25,230,246, -251,184, 64, 7, 34, 17,213,188,162,228,126,155, 97,139,106, 17, 10,170,210, 98,199, 47, 9, 72,147, 1,181,214,204,158,109,235, -224,232,136,126,253,250,177, 41, 49, 49,231,114, 0,179, 2, 43, 87,168, 92,217,197, 74,161,192,181,107,215,192, 3,194, 0, 96, - 43,224,191,108,218, 52, 7,103, 87, 87, 12, 29, 54,140, 77,136,140, 60,175, 50,163, 75,247, 45,222,138, 21, 5, 70, 94, 38,143, - 55,142,135, 9, 83, 59, 55, 21,203,165, 98,124,183,241, 48,162,146,149,123,111,196, 97,227,199,104,236, 40,209,162, 85,148,243, -217, 27,167,106, 89,177, 98, 69, 34,145,228, 91, 83, 44,248,210,123,231,156, 37,225,239,224,124,143,202,121, 38, 33,228, 8, 33, -100,102, 84, 84, 84,200,176, 97,195,180,122,173, 58,235,250,162, 10, 51,238, 45, 41, 63,230,198,124,183, 49,191, 77,176,153,145, -147,145,154,181,102,205, 26, 93, 84, 84, 84,136,233, 49, 37,220, 44,145,148,210,147,219,183,111,223,112,224,192, 1, 84,171, 86, - 13,193,193,193,206, 74,165,178,246,227,199,143,237,253,253,253,177,115,231, 78,236,219,183,111, 21,165,244,108,113, 34,203,196, -218,118, 46, 46, 46,206, 55, 34, 34,162,146,173,173,173,206,214,214, 22, 5, 71, 34,102,170, 88,164,164,103,192,222,222, 1,214, -214,214, 62, 37,113,170,213,234,147,113,113,113, 85, 88, 59,191,102, 85,146, 87,103, 4,125, 87, 14, 65,223,149,195,201,233,238, -112,179, 21, 33, 45, 45, 13, 73, 73, 73, 72, 74, 74, 2, 33, 4, 58,157,174,170, 25,156,175, 99, 99, 99,127,142,140,140, 60,226, -226,226, 2,133, 66, 1, 10, 32, 62, 93,135, 7, 43,252,241, 96,133, 63,226,211,117,200,204,202, 66,249,242,229,161, 80, 40,170, - 21,213,101,228,225,225,209,190,119,239,222, 10, 0,200, 19, 80,159, 81, 74,199, 20,178,140,214,235,245,141,141,251, 78,153, 50, -197, 30, 64,219,127,248,126,226, 17, 66,198,142, 24, 49,226, 19,137, 68,130,117,235,214,189, 6,176,203,216,214,111,216,176,225, - 25, 0, 76,152, 48, 33, 16,192,100, 82, 68, 36,104, 35,132, 66, 97,157,170, 85,171,226,198,141, 27, 0,112,184,132,211, 31,188, -126,253, 58, 42, 87,174, 12,137, 68, 82,183,132,125,125,202,149, 43,135,103,207,158, 1,192,253, 34,246,185,255,236,217, 51,148, - 43, 87, 14,132, 16, 31, 51,202,222,165, 77,155, 54,143, 46, 92,184, 80,183, 81,163, 70, 24, 54,108,152,230,214,173, 91,237, 41, -165,151,239,223,191,223,178,127,255,254,202, 42, 85,170,224,210,165, 75,254,253,251,247,191,206,227,241, 22,153,193, 57,116,225, -194,133, 51,187,118,237,138,133, 11, 23,210,253,251,247,247,163,148,158,201,123,190, 78,239,221,187,119,224,226,197,139,105,183, -110,221,176, 96,193,130,153,132,144, 49, 37, 88,135, 50, 12, 6, 3,148, 74,165, 89, 38,121,115,247,119,116,116,252,188, 77,155, - 54,152, 51,103, 14, 60, 60, 60,112,236,216, 49, 10,224, 56,165,244,138, 90,173,110, 70, 41, 93,169, 84, 42,127,187,113,227, 6, - 90,183,110, 45,196,219, 83,140, 20, 9,189, 94, 31,126,225,194, 5,173,131,131, 3, 60, 61, 61,225,229,229, 5,165, 82,137,244, -244,116, 84,171, 86, 13, 13, 26, 52,128, 82,169,196,241,227,199,181,233,233,233,102, 13, 88,209,107,148, 59,206,158, 56,148,225, -160, 16,195,211,217, 6,229, 61,236,145,157,158,140,164,248, 88,212,169,234,133,230,117,202, 35, 57, 67,131,211,199, 15,165,101, -101,229,236, 48,171, 23, 64,157,179,237,220,239,199, 50,236, 20, 66,248,250, 5,162,255,176, 9,181,106,213,174,127,182, 94,189, -198,167,151, 47,253,174,198,103, 13,171,146,232,228, 92,156, 58,126, 56, 45, 35, 51,115,219,251,104,235, 23, 0,188, 92,155, 42, -151,215, 31, 9,250, 57,160,221,136,159, 67,162,177, 26, 0,116, 60,158,127,251,207, 63, 71,116,116, 52, 14, 29, 56, 16,151, 3, - 60, 52,151, 79, 42,149, 50, 0,144,145,145, 1,241,155,217, 66,160, 7,252, 58,116,232,128,164,228,100,236,222,181, 43,233, 20, -112,207,146,124,118, 2, 68, 50,233, 27,131, 96, 70, 70, 6, 8,144, 9, 0,132,143,246,245,170, 85, 70, 82,106, 38, 46,220, 14, -201, 46,175,194,151,197,241,124,168,142,240,197,249,104,149,100, 15, 77,158, 60,121, 50,196, 98, 49,220,220,220,242,197,145, 81, -172,136, 68, 34,184,185,185, 65,175,215, 99,239,222,189, 0, 80,172, 15, 3, 3,168, 59,143, 89,194,170,117, 52, 71, 32, 16,188, - 19,206, 60,203,129,186,251,180, 95,216,223,175, 23, 62, 40,166, 52,156, 31, 0,234,229,197,196,170, 71, 41, 77, 11, 15, 15,143, -238,213,189,115, 70, 68,232,147,120,101,122,108, 92,102, 74, 84, 92,212,235,199,241,179,166, 79,206,136,142,142,142,202,139,165, - 85, 47, 54, 54,182, 51, 0,115,125, 13, 38,247,234,213,235,167, 17, 35, 70,208, 7, 15, 30, 0, 0,130,130,130, 48,120,240, 96, - 58,112,224,192,213, 0,102,148, 34,223, 74,149, 74,245,150, 53, 68,107, 96,243,187,252, 50, 51, 51, 17, 27, 27, 11,141, 70, 99, -182, 34,126,113,122,197,243,212,240,187,186, 64,111, 57, 2,189,229,240, 47, 39, 3,209,103,231,139,172,164,164, 36, 36, 36, 36, - 0, 64,174, 5,249,204, 84,171,213,111,229,211,180,107, 50, 51, 51, 19,241,241,241, 48, 24, 12,154, 34, 30, 58, 54, 38, 38,230, -244,190,125,251,178, 0, 96,249,242,229,169,132,144, 63, 8, 33, 63, 21,178,108,228,243,249,215,140,251,174, 88,177, 34, 21,192, -201,127, 80,100,117,173, 94,189,122,218,204,153, 51,215, 77,156, 56, 17, 27, 55,110, 68, 92, 92,220, 12, 74,169,222, 88,150,228, -228,228,105,235,215,175,199,144, 33, 67, 48,119,238,220, 21,181,107,215,206, 36,132, 20,233, 95,225,228,228,228,201,231,243,113, -239,222,189, 76, 74,233,171, 18, 26,168,248,123,247,238, 37, 16, 66,224,230,230, 86,177,184,125,237,237,237, 43, 41, 20, 10,196, -196,196, 0,121, 95,204,133, 32, 60, 54, 54,150,138, 68, 34,184,187,187, 87, 46,169,252,118,118,118,211,126,254,249,103,254,147, - 39, 79,240,217,103,159, 69, 95,186,116,169, 53,165,244, 98, 94,222,238, 5, 5, 5, 53,109,217,178,229,243,179,103,207,226,251, -239,191, 39, 53,107,214, 28, 83, 18,167,183,183,247,232,161, 67,135, 98,237,218,181,216,180,105,211, 24, 74,233,129, 2,101,222, -179,126,253,250, 9,155, 54,109,194,176, 97,195,224,227,227, 83,172,175, 74, 68, 68,196,244, 22, 45, 90, 4,189,120,241,194,172, - 25, 15,204,217,159, 16,210,178,126,253,250,149, 84, 42, 21,182,109,219,246,170, 82,165, 74,119, 14, 28, 56, 48,153, 82, 90,240, -133,253,219,161, 67,135, 48, 96,192, 0,212,172, 89,115, 27, 33,164,175, 25, 47,157,216,136,136,136,228,135, 15, 31,178, 60, 30, - 15,158,158,158,104,223,190, 61,250,244,233,131,154, 53,107, 34, 49, 49, 17,151, 47, 95,102, 67, 67, 67,147,205, 13, 92,154,252, -252,194,177,176,176,231,215,238,221,186,172,227,243, 24,120,185,217,227,139, 86,181, 48,188, 71, 99,212,241,247, 64, 68,162, 10, -231,207,159,213,133,133,189,186, 97,206,136, 67, 35,103, 72,240,195,235, 79,238, 93,213, 11,248, 4,254,126, 85, 48,103,214, 52, -187,197,243,166,219, 86,169,232,133,135,175, 51,112,246,204, 41, 93,108,116,212,133,247, 53,226,240, 18, 32,180, 18, 19, 57,143, - 97, 96, 96,196, 74, 94, 94, 32,227,106, 1, 1,190, 46,174,174, 56,113,226, 4, 24,224,169, 69,124, 86,111,122,193,179,179,179, - 97,228,171,228,231,231,231,229,237,141,147, 39, 78,128,199,178, 79,155, 91, 24, 96,244, 25, 32, 51,229, 37, 64,238,151,229,160, -168, 84,206,217,207,206, 70,142, 91, 15, 95, 66,173,163,183,119,165, 33, 7, 31, 33, 10,118, 27, 90,210,117,184,124,227,198,141, -245,126,254,249,231,214,147, 39, 79,182, 26, 52,104, 16, 36, 18, 9,114,114,114,224,233,233, 9,131,193,128,223,127,255, 29,119, -239,222,205,102, 89,246, 44, 10,132, 13, 32,132,180, 50,141,181,241,123, 40,149,190, 9,130,153, 83,239, 72,207,158,239,132, 19, - 0,172, 94,178,214, 41,229, 53, 59,215, 28,184,218,109,247,233,123,228,171,190,205,153, 58,126,229, 0, 0, 46, 46, 46,176,182, -182,182,152,243, 29, 84,250,223,206,105,218,173, 27, 23, 23,247,140, 16,146, 56, 98,196, 8,127,163,227,187, 88, 44,206,141,138, -138, 10, 49, 6, 44, 45,120, 76, 73,249,204, 27, 25,247, 37, 33,228,104, 70, 70,198,233,169, 83,167, 98,241,226,197, 56,118,236, - 88, 83, 74,233,181,210,148,157, 82,106,240,241,241, 73,191,125,251,182, 75,229,170,181, 81,193, 89,128,102,223,188, 0,165, 20, - 14, 50,138,172,244, 84,220,191,127, 15, 89, 89, 89,183, 44,201,167,187,187,123,122, 98, 98,162,163,179,179, 51, 82, 83, 83,145, -156,156,156, 47,178,210,210,210,144,154,154, 74, 9,121, 59,102, 75, 9,156,202, 74,149, 42,229,132,132,132,136, 92,202, 85, 70, - 69,103, 33,234,207,122, 6, 80, 10, 47,123, 6, 89,153,233,184,113,227, 6, 50, 50, 50, 46, 22,197,201,178,236,215,253,251,247, -231, 1, 24, 56,117,234, 84,123, 0, 53,167, 77,155,118,182,224,200, 66,129, 64,240,195,206,157, 59,171, 25,187, 24,167, 79,159, -190,138, 82,250,243, 63,117, 47, 57, 56, 56,124,125,226,196, 9,133, 86,171,197,154, 53,107,176,106,213,170,173,148,210,255, 21, -168,143, 19, 60, 30,111, 61,195, 48, 99,199,141, 27,135, 81,163, 70,201, 62,249,228,147,201, 38, 86,175,183, 56, 99, 98, 98,230, -212,169, 83,103,110, 98, 98,162, 89,142,253, 47, 94,188, 24, 89,167, 78,157, 57,137,137,137,203,138,187, 70,114,185, 92,110, 48, - 24, 16, 22, 22,150, 70, 41,205, 40,226,218,229, 86,169, 82, 37,198, 96, 48,120,202,100, 50,251,146,238,207,180,180,180,239, 62, -249,228,147,249, 9, 9, 9,103, 0, 44, 42, 24,170,132, 82,250,128, 16, 18, 56,113,226,196,241, 75,151, 46,237, 22, 31, 31,191, -183, 36,206,136,136,136,239, 90,182,108,249,205,243,231,207,183, 23,213, 5, 76, 41, 93, 71, 8,209,238,220,185,115, 76, 88, 88, -216,146,226, 56, 41,165,199, 81, 76, 87,122, 33,220,133,238,111,202,201,227,241,166, 45, 93,186,148,217,184,113, 35, 40,165, 43, -244,122,125, 81,249,124,200,227,241,118, 52,110,220,120,208,129, 3, 7, 36,129,129,129,163, 0,236, 41,233,254, 84,171,213, 55, -175, 95,191,222, 32, 60, 60,220,177,101,203,150, 66,227, 7, 74,122,122, 58,142, 31, 63,174, 13, 13, 13, 77, 86, 42,149, 55, 45, -105, 67,244,154,204,190,215,207, 31,217, 19,254,226,113,195, 22,237,186,216,105,180,158, 16,167,240,144,158, 18,143,223,143, 31, - 74, 11, 11,123,117, 35, 39, 39,189,175, 37,156, 90,117, 70,159, 27, 23,142,238,141, 14, 11,105,208,172,101,123,187, 92,141, 55, -196, 66, 6, 41, 9, 49,248,253,196,145,212,176,176,215, 87,114,117,234,193,239,171,157,231,249, 96, 17, 47,254,238,136,209,157, -106, 65,106,231,121, 95, 0,172,105, 12, 72, 29, 93, 92,132,121,207, 14,172,128, 8,115, 57, 19, 0, 81,229,188, 94,170,156,156, - 28, 8, 0,205, 16, 64,224,228,228, 36, 5,128,231,207,159, 67, 6, 68, 90,154,207,108, 64, 46, 51,225,101,128,156, 20, 62, 60, - 42, 89,203, 9, 0, 68,199,167, 64,163,195, 53,124,164, 48, 90,180, 10,115,138, 47, 41,248, 34, 11,224, 38, 33,228,222,178,101, -203,154,253,244,211, 79,205, 39, 77,154, 36,250,252,243,207,113,231,206, 29,156, 59,119, 78,163, 86,171, 47, 1,184,108, 28,174, -110, 70,102,222, 57,231,129, 55,251,245,170,231, 65,236,181,172,234,240,156,159, 78, 53, 41,239,106, 75,245, 6,150, 60,126,252, - 24,215,175, 95,183,152,243, 3,185,176, 0, 80,143, 16,114, 36, 47,233,118,193, 16, 14,121,221,133,245, 76,172, 96,165, 57,213, -125, 62,159, 79,253,252,252, 72,222,244, 52,193,101,201,119,124,124,124,191,233,211,167,159,217,127,240, 48,255,208, 56, 41, 50, -210, 51,222, 52,192, 25,233, 72, 73,136,197,249,243,231,181, 73, 73, 73,163, 44,225, 76, 74, 74,250,178,111,223,190,251,247,236, -217, 99,159,150,150,150, 47,180,210,210,210,192,178, 44,182,110,221,154,148,144,144, 48,219, 18,206,184,184,184, 97, 83,167, 78, - 61,184,123,239, 65,254,217, 25,118,200, 54, 70,159, 87,102, 32, 37, 49, 14,199,142, 29, 83, 39, 39, 39, 79, 44,230,250, 24, 8, - 33, 95,245,239,223, 31, 70,177,117,227,198,141, 9,132,144,117,198,151, 57, 33,164,194,215, 95,127,221,215,196,143,107,213, 63, - 61,234, 48, 37, 37,101,113,131, 6, 13, 86, 37, 37, 37,189,214,106,181, 7, 40,165,133, 70,233, 55, 24, 12,227, 8, 33,215,215, -173, 91,215,199,209,209,209, 37, 62, 62,126,169,165, 47,250,178,238, 31, 25, 25, 57,179, 78,157, 58,179, 18, 19, 19,151, 22,183, -223,203,151, 47,199,230,237,183,204,140,115,159, 0,112,162,132,125,244,120, 19,218,226, 7, 51,203,115, 4,192, 17, 51, 27,231, -205,239,163,253, 48, 24, 12,203,171, 87,175, 46,209,235,245,103, 75,242, 7,100, 89,118,228,164, 73,147,162,167, 76,153, 82,203, - 96, 48,152, 91, 7, 58, 0, 87, 8, 33,238,201,201,201, 62, 0,108, 1,128,207,231,167,167,167,167,151,106, 10,158,188,136,239, - 29, 29,125, 91,119, 58,176,125,237, 16,202, 26,106, 18, 66,192, 99,120, 15,178,178,115,182,153,107,201, 42,132,179,131,163,111, -235, 78, 9, 49, 17, 67, 41,107,168, 9, 16,150,207,103, 30,102,101,231,108, 73, 10, 57,251,222,166,224, 25,228, 1, 23, 30,193, -184, 51,191,124, 67, 0,160,245,208,111,107,149,183,133,149, 62, 29,233,200,107,203,227,226,226, 96, 7,164,153,203, 41, 3,244, -218, 60,159,232,180,212, 84,200, 0, 85, 28,192,203,243,187, 36, 9,241,241,176,178,128, 47,255,131, 17,208, 22,224,205, 0, 32, - 54,186,115,166,102, 42, 1,243,227, 26,126,144, 22,173,130,191,243, 5, 23,165,212,236, 5,111,230,215,251, 2,192,146,188,181, -188,132,253, 91,189, 15,206, 6,110,240,109, 85,137,132,180,247,227,167, 2,232,241, 46, 56, 45, 93,254,110, 78, 0,219, 53, 26, - 13,205,205,205,165, 57, 57, 57, 52, 59, 59,155, 2, 56, 82,200, 49, 71, 98, 99, 99,105,116,116, 52,141,140,140,164,225,225,225, - 20,192, 46, 75,243,105,109,109,253,115,207,158, 61, 13, 2,129, 96,237,187, 40,187,189,189,253,146,250,245,235,107,127,252,241, - 71,250,219,111,191,209, 45, 91,182,208,113,227,198,209,106,213,170,169,109,109,109,251,150,134,211,213,213,117,142,159,159, 95, -202,214,173, 91,233,174, 93,187,232,234,213,171,233,236,217,179, 13,158,158,158,241, 10,133,162,109,105, 56,157,157,157, 55, 55, -105,210, 68,187,121,243,102,122,246,236, 89,186,123,247,110,250,245,215, 95, 83,127,127,127,181, 92, 46,239,110, 14, 39, 0, 30, -159,207, 95, 57,122,244,232,120,119,119,247, 19, 5,182,201, 2, 2, 2,238,244,239,223, 63, 22,192,244,143,229,254,228, 56, 57, - 78,142,179,236,156, 3, 61,224,222,186, 2,244,244,242, 55,148, 94,254,134,182,170, 0,182,159, 59, 60, 40,192,147, 9,133,125, -154, 55,109,186, 66, 8,244,161, 0,175,208,165,176,124, 2, 60, 9,143,215,163,113,253,250, 43,132, 64, 95,227,190, 18, 30,175, - 71,243,166, 77, 87, 8,120,188, 1, 69,242, 21,195, 73, 1,158,144,207,159,222,184, 97,195,149,124, 96,150, 49,237,211, 10,228, -233,215,237,202,209,166,222,228,229, 0,103,200,138,227, 44,162, 62, 70,190,235, 58,254,167,151,210,222, 8,252,119,125, 19,126, - 40,156,255, 34,161, 85, 57,175,219,230,136,201, 50,179,144, 99,102, 22,216,103, 59,128,202,165,172, 79,233,187, 44, 59,128,234, -142,142,142,167, 42, 87,174,156, 84,190,124,249, 88, 59, 59,187, 61, 0, 60,203,200, 25,232,234,234,250,171,139,139,203, 11, 55, - 55,183,135,142,142,142, 63, 0,112, 42, 11,167, 64, 32,168,239,226,226,114,209,199,199, 39,221,219,219, 59,193,209,209,113, 47, - 0, 23, 75, 57, 1,184,161,144, 70, 5,128, 16,128, 27,247,210,225, 56, 57, 78,142,179,160,128,105, 83, 17, 75, 91, 87,128,190, -117, 5, 24,218,248,224, 7, 83,129,210, 17,144,150, 86, 20, 13, 6,196, 5,247, 47,145,175, 4, 78, 10,240, 26, 1, 86, 5,143, -105,239,137, 0,115, 56, 63,100,161,101,204,103, 94, 59, 63,210, 52,223,252,210,152,200,140, 78,178,239,184, 27,236,131,224,252, - 23,117, 27,190, 4, 74, 14,246,102, 26, 65,254, 29,156, 83,245,142,203,240, 8,192,231,239,152,243, 9,128,129,239,146, 83,171, -213,222,130,153,243,190,149,144,183,184, 98,124,225,226,192,129, 3, 7, 14,111, 55, 14,134,211,192,140,214,190,100, 13,223, 0, -230,212, 43, 26, 99,186,249,216,159,129,143, 45,226, 4,128,109,133, 76,207, 83, 42, 62, 19, 78, 0,184, 6,252,101,118,135, 19, -101,116, 55,249,192,222,205,113, 0, 54, 91, 20, 71,139, 3, 7, 14, 28, 56,112,224,240,254,112,246, 57,229, 62,196,254,253, 56, - 81, 96,142,195,124,191, 79, 2,160, 85, 17,170,204,236,145, 20,132,144, 86,165, 80,125,231, 56, 78,142,147,227,228, 56, 57, 78, -142,147,227,252,111,113,154,112, 23, 53,176,226, 89, 1,190,247, 50, 96,228, 93,129,152, 63,109, 89, 41,200, 63,208,176, 9, 28, - 39,199,201,113,114,156, 28, 39,199,201,113,254,179,156, 31,180,152,122,219,154,245,150, 64,228,186, 14, 57,112,224,192,129, 3, - 7, 14, 28,202,128,226,172,110,156,208,226,192,129, 3, 7, 14, 28, 56,112, 40, 3, 8, 33,110,120, 51, 69,213,137,188, 53,103, -209,226,192,129, 3, 7, 14, 28, 56,112,120, 71,232, 64, 41,221, 92, 88,100,120,134,171, 27, 14, 28, 56,112,224,192,129, 3,135, -178,193,232,167,101,233, 92,135, 28, 56,112,224,192,129, 3, 7, 14, 28,138, 65,113, 62, 90,111,141, 58, 60,113,226, 4,237,208, -161, 3,225,170,140, 3, 7, 14, 28, 56,112,224,240, 62,240, 33,106, 17, 19, 11,214,137,130,193,169, 57,139, 22, 7, 14, 28, 56, -112,224,192,129, 67, 25, 96,180,104,229,117, 27,190,149,198, 9, 45, 14, 28, 56,112,224,192,129, 3,135, 50,160, 56,139, 22, 3, -188, 49,211,113,213,196,129, 3, 7, 14, 28, 56,112,120, 95,248,144,181, 8,165,116,115,222,242,151,233,146,140,163, 14, 91,228, - 21,176, 5,119,169, 57,112,224,192,129, 3, 7, 14,239, 1, 31,172, 22, 33,132,184,229,117, 27,186,253,101,219,223, 57, 5, 15, - 7, 14, 28, 56,112,224,192,129,195,199, 14, 99,252,172,194,226,104,113, 66,139, 3, 7, 14, 28, 56,112,224,192,161,140, 66,171, - 96, 90,190,131, 60, 39,180, 56,112,224,192,129, 3, 7, 14, 28,254, 30,252,173,145,225, 9, 33,173, 56, 78,142,147,227,228, 56, - 57, 78,142,147,227,228, 56, 63,118, 24, 35,194, 23,180,110,113,225, 29, 56,112,224,192,129, 3, 7, 14, 28,202, 40,178, 76,125, -179, 76,255,115,115, 29,114,224,192,129, 3, 7, 14, 28, 56,252, 77,224, 44, 90, 28, 56,112,224,192,129, 3, 7, 14,101,128,113, -196,161,233,127, 78,104,113,224,192,129, 3, 7, 14, 28, 56,188, 67,177, 85, 88, 58,215,117,200,129, 3, 7, 14, 28, 56,112,224, - 80, 6, 20,116,128, 55,253, 79, 0,180, 42, 66,153,157,179,224, 4, 22,143, 62, 40,137,159,227,228, 56, 57, 78,142,147,227,228, - 56, 57,206,143,143,179, 36,110, 75,244,199,191, 73,104, 21,229, 12, 15, 74,233,223,182, 0,104,197,113,114,156, 28, 39,199,201, -113,114,156, 28, 39,199,249, 49, 47, 0,220, 0,140, 52, 89,220,140,219, 56, 31, 45, 14, 28, 62,116, 28, 36, 60,164,249,249,128, - 82,119,240, 68,113,136,123,244, 10,243, 40, 91,102,206,132, 0,111, 72,117, 46,208, 75,146,144,240,240,117,153, 57, 57,112,224, -192,225, 35, 69,222,100,210,133,250,104,113, 66,139, 3,135, 15, 29, 73,254,190,224, 99, 9, 24,184,129,106, 67,225, 20,176, 4, -192,227, 50,115, 10,217, 69, 48, 48,158,160,218,231,112,246, 91, 10, 32,152,171,108, 14, 28, 56,112,176, 12,255,184, 51,188, 64, - 32, 72, 32,132,176, 98,177,248, 80, 97,179, 92,115,224,240,174, 64, 8,113,147, 74,165,135, 8, 33,172, 80, 40, 76,248, 40, 11, -185,179,186, 12,140,225,115,141,142,245,248,253, 81,186,115,142,218,224, 11, 70,223, 30,191,248, 90,149,137,147, 79,218,228,106, - 89,175, 93,183,115, 92,148, 26,125, 85, 80,148,141,243,207,107, 98, 43, 18,137,126, 39,132, 56,114,119,232,199,137, 0, 66, 62, -169, 43, 16, 76,169, 74,200,167,132, 16,194,213, 8, 7, 78,104,253,195,208,235,245,206, 81, 81, 81,100,203,150, 45,157,173,173, -173, 67, 5, 2,193, 76, 66,136,240,191, 82,225, 10,133,226,186,141,141, 77,130,173,173,109,130,141,141,205,189,146,210, 63, 82, - 1,228,235,236,236, 28,225,224,224,240,220, 52,221,185,102,183, 70, 85,154, 12,154,231, 24,216,181,121, 25,249,133, 2,129, 96, -166,141,141, 77,232,230,205,155, 59,135,132,132, 16,157, 78,231,252, 81, 86,102, 46,235, 2,134,215,242, 73, 92,142, 44, 46, 83, -231, 18, 20,158,163, 0,120, 45,160, 65,233, 63, 98, 50, 88, 23,128,126,250, 32, 90, 37,191,158,234,228,114,229,149,218, 26, 12, -211, 18,185,196,181,204, 13, 14,195,140, 97, 89,182,181, 80, 40,252,138,107,126, 63, 78,136, 24,166,241,245,206,157, 23, 77,175, - 81, 99,188, 63,208,169, 48,177, 69,222, 96, 66,213,170, 85, 79, 17, 66,250,188,195,182,229,123,127,127,255, 24, 66,200, 68,238, - 74,112,248,135,223,107,181,141, 31,248,121,211,240,184, 89, 44,180,122, 86, 32,141,251, 85, 36,151,122, 87, 32, 89,125, 42,146, -236,129, 21,201,213, 30, 21,200,167,165,201,144,167,167, 39, 26, 53,106,196,139,140,140,148, 78,156, 56,113,158, 88, 44, 14, 35, -132,180, 45, 13,151, 76, 38,187, 43,151,203,163, 4, 2,193, 91,121,145,203,229,119,173,172,172,162, 4, 2,193,103,166,233,214, -214,214,215,109,108,108, 18,172,173,173,239, 21, 33,132,238,218,216,216, 36, 40, 20,138,187,166,233, 2,129,224, 51,133, 66, 17, -109,109,109, 93, 48,253, 83,107,107,235,168,130,233, 69, 65, 32, 16,120, 70, 69, 69, 57, 71, 71, 71, 59,139, 68, 34, 23,211,244, -200,200, 72,231,168,168,168,183,210, 45,129, 64, 32,248,212,202,202, 42, 74, 46,151,223, 45, 44,189, 96,153,138,130, 73,221,125, -106, 78,186,165, 34,171, 77,155, 54, 87,227,226,226,188,108,109,109,109, 77,183,217,219,216,182,253,117,235,250,201, 93,218,183, - 25,227, 28,240, 69,245, 82,242,183, 21,139,197, 97,147, 38, 77,154, 23, 29, 29, 45,173, 95,191, 62, 79, 40,252, 72,117,252,193, - 0, 33, 8,219,140,165,212,233,105, 76,174, 83,135,206, 61,249,247,163, 84, 78, 58,131,193, 30,224,181,192,246,242,226, 82,113, -242,117, 77, 89, 74, 93,254, 8, 23, 56,181,236, 53,158,119, 62,156,239,164, 51, 24, 28,192,160,121,169, 56,255,188, 54, 2, 30, -143, 55,121,229,202,149, 12,128,113,132, 16,209,127,169, 33,174,239, 65, 60, 62,171,204,191, 93,199,157, 52,126,135,141,123,160, - 92, 46,191, 75, 8,241,253,183,148, 83,195,178,207,246,190,126,125,122, 64,165, 74, 29,167,215,168, 49,164,160,216,202,251, 61, -125,233,210,165, 3,159, 60,121,226, 84,161, 66,133, 81,132, 16,230, 29,212,197,234,165, 75,151, 78,123,242,228,137,187,143,143, -207,130,119,193,201,225,223,165,225, 1,180, 4,208, 1,192,103, 0,234,229,253,174,155,183,116,192,155, 40, 10,166,235,186,121, -199, 26,183,215, 47,130,163, 67, 33,199,213, 53, 73, 55,253, 95,240,183, 17,181,243,214, 29,242, 70, 27,118,200,223, 66, 41,197, -241,227,199,169,233,186,224,210,219, 7,243,199, 55,242,200,121,122,108, 55,205,142,122, 77,211, 66,238,211,251,155,191,163,227, -235, 58,229,244,171,128,239, 45,244,204,167,148, 82,186,107,215, 46,122,254,252,121,154,158,158, 78,131,131,131,105,189,122,245, - 84, 50,153,236, 15, 0, 62,150,240, 41, 20,138,132, 63,254,248,131,182,105,211, 38,195,202,202,106, 5, 0,134, 82, 10,107,107, -235,132,107,215,174,209, 54,109,218,100, 40, 20,138,213, 0,120,148, 82,116,239,222, 61,145, 82, 74,157,156,156, 98, 11,227,235, -210,165, 75, 26,165,148,218,216,216, 36,228,229,151,167, 80, 40, 86,143, 29, 59, 54,251,206,157, 59,212,206,206,206,152,206, 88, - 91, 91,175, 24, 55,110, 92,118, 80, 80, 80,126,122, 73,139,189,189,125,148,193, 96,160,199,142, 29,163,206,206,206,249,121,176, -179,179,139, 50, 24, 12,244,200,145, 35, 69,230,173,152, 58,101,172,172,172,150, 15, 24, 48, 32, 43, 60, 60,156, 58, 56, 56, 36, -152,164,175, 24, 52,104, 80, 86,100,100, 36,117,116,116, 52, 43,143, 14, 14, 14, 9,215,175, 95,167,221,186,117,203, 52,173, 83, - 7, 7,135,132, 27, 55,110, 24,211,151, 27,211,139, 91,220,221,221, 71, 57, 59, 59,199, 58, 59, 59,199,218,218,218, 46,118,115, -115,139, 79, 74, 74,162,148, 82, 90,177, 98,197, 68, 74, 41,156,106,124,209,168,114,227,129,243,156, 3, 59, 79,218,120,224,198, -173,203,143, 83,146,106,180, 30,179,220,166, 70, 23, 27, 11,234,192, 71, 34,145,252,209,172, 89, 51, 85,120,120, 56,205,206,206, -166,119,239,222,165, 87,174, 92,161, 79,159, 62,165,121,247,221,199, 53,210,101,125,128, 39,221,228,183, 55,120,174, 87,200,229, -165,237,116, 52,252, 60,221, 61,196, 73,119,105,146, 71, 40,253,201,255,127,116, 83,213,114,165,226,252,169,234,238,135,179,189, -158,173, 93, 48, 65, 23, 17, 17, 65,167, 12,106,167, 63, 51,222,227, 21,221,232,127,160, 84,156,127, 94,163,190, 95,124,241, 69, -118,100,100, 36, 13, 8, 8, 80,242,120,188, 97,255,149, 17, 73,245,220,225,209,202, 87, 20,243,112,215, 20,182, 83,160, 44,165, -182, 27, 26,191,131, 81, 78,129,206,206,206,201,219,183,111,167, 10,133, 34, 17,128,239,191,100,244, 21,241, 7, 58,239,168, 81, -227, 8,219,163,135, 97, 71,141, 26, 71,252,129,206,120, 19, 78,136, 0,152,177,108,217,178, 32,157, 78, 23,180,109,219,182,160, -206,157, 59, 7, 1,152, 82,198,115,254,248,253,247,223, 83,157, 78, 71,183,109,219, 70, 59,119,238, 76, 1,172, 49,247,120, 43, - 43,171,202,213,171, 87,223, 25, 16, 16, 16, 89,179,102, 77, 77,213,170, 85,115,125,125,125,195, 3, 3, 3,183,139,197, 98, 31, -110, 84,221, 63,179,148,160, 69,234,205,152, 49, 99, 38, 0, 58, 99,198,140,153,148,210, 14,121,237,122, 7,211,223, 5,215,148, -210, 86,166,255, 11,227, 48, 46,133,113, 22,118,142, 2,191, 11,142, 58,116,203,251, 63, 50,127,155,177, 80,199,143, 31,111,126, -252,248,241, 75, 5, 11,215,179, 2, 26,141,111,228,161, 82, 37,197,209,199,223,125, 69, 47,180,244,164,215, 90,184,210,231,147, -191,160,113,187, 86,211, 47,107,217,229,244,168,128,150,150, 10,173, 67,135, 14,209, 35, 71,142,208,147, 39, 79,210,199,143, 31, -211,148,148, 20,186,107,215, 46,131,131,131,131, 74, 44, 22, 47, 5, 32, 53,135,207,218,218, 58,129, 82, 74,213,106, 53, 93,188, -120,113,174, 66,161,184, 7,192, 37, 79, 40,209,244,244,116,186,116,233,210, 92, 27, 27,155,135, 0,220, 29, 29, 29,163, 94,191, -126, 77, 93, 92, 92, 10, 21, 51,118,118,118, 9,207,158, 61,163,118,118,118, 9, 0, 60,236,236,236, 30, 31, 61,122, 84, 75, 41, -165,209,209,209,212,222,222, 62, 1,128,139,131,131,195,253,227,199,143,107, 41,165, 52, 54, 54,150,218,219,219,155, 45,180, 84, - 42, 21, 61,115,230,204, 91,121, 48,166,159, 58,117,234, 45, 1,102, 70,125,186,216,216,216, 4,237,219,183, 79, 99, 48, 24,232, -227,199,143,169,141,141, 77, 2, 0, 23, 91, 91,219,123, 7, 14, 28,208, 24, 12, 6, 26, 18, 18, 98,182, 24, 44, 95,190,124, 34, -165,148,234,245,122,186,113,227, 70,181,177, 78,141,233, 26,141,134,110,216,176, 65,109,109,109, 29, 4,192,165, 56, 46, 71, 71, -199, 88,141, 70, 67,211,211,211,105,253,250,245,179,175, 93,187, 70, 51, 51, 51, 41,165,148,230,241,193,175,249,176,111,111,189, -200,206, 28, 58,109,253,126,159,122,253,190, 59,125, 59, 38,250,231,223,238, 6, 57, 6,118,105,103, 70,249,165, 66,161,112,169, -155,155, 91,238,249,243,231, 13, 26,141,134,190,124,249,146, 94,191,126,157,222,188,121,147,222,189,123,151, 62,126,252,248,227, - 19, 90, 7,192,163,155,252,186,208, 77,126, 65,219, 7, 56, 38,103,221,219, 67,233,217,137,244,213,183, 21,232,220,118,138, 44, -118,147, 95, 16,221,228,223,131,206,111,206,183,136,115,115,213, 78,116,147, 95,208,247, 61,189, 83,238, 7,221,161,151, 46, 93, -162, 27, 86, 47,163,227, 91,121, 40,217, 77,126, 65,244,167,170,221, 44,226, 52, 89,196, 98,241,139,171, 87,175,210,203,151, 47, -211, 5, 11, 22, 80,153, 76, 22, 89,246,122,168, 42,164, 63,249,122,211, 45,190,205,233,214, 42,110,244, 98,233,242,246,119,139, -172,214,190,162,232,228,251,191, 81,154,250,146,198,175, 8,160,237,252, 4,101, 18, 91,121, 34, 43, 41, 60, 60,156,198,199,199, -211, 85,171, 86, 81,107,107,235,127,181,216,242, 3,186, 0,152,185,124,249,242,124,145,181,126,253,250,160, 71,143, 30, 5,121, -121,121,157, 44,195,185,214, 44, 95,190, 60, 95,100,173, 95,191,158, 62,122,244,136,122,123,123, 71,149,116,236,128, 1, 3,100, -141, 26, 53, 10,234,223,191,127,206,246,237,219,105,120,120, 56,125,248,240, 33, 93,190,124, 57,157, 55,111, 30,253,229,151, 95, -104,183,110,221,148,245,235,215,191,213,163, 71, 15,137,133,121,227, 83, 74, 69,121,139,128, 82,106, 20,154,124, 0, 2,227,199, - 63,183,188, 45,180,138,210, 34, 69,137,169,162, 4, 86,193,109,197, 8,177, 98, 5, 91, 73,231, 43, 40,170, 10, 91, 76, 77,171, - 23, 59,116,232,240, 23,223, 24, 62,197,194,145, 95,127, 43, 9,219,190, 10, 9,251,214,129,151,158, 0, 65, 86, 10,212, 87, 79, - 64,119,245, 40, 6, 54,108, 40,149, 18,178,200, 82, 27,160, 68, 34,129, 84, 42,133, 88, 44, 70,122,122, 58, 94,189,122,133, 70, -141, 26, 49,119,239,222,149,140, 28, 57,114,162, 84, 42,141, 36,132,116, 53,195, 92, 12, 0,184,126,253, 58, 70,140, 24, 33,222, -185,115,103, 77, 39, 39,167, 7, 6,131, 65, 4, 0, 33, 33, 33,232,221,187,183,120,207,158, 61,213,220,221,221,239,105,181, 90, -153, 88, 44, 6,143,199, 43,146, 79, 36, 18, 65,167,211,137,171, 84,169,242,240,193,131, 7,129, 29, 59,118, 20, 68, 68, 68,224, -245,235,215,208,233,116, 34, 95, 95,223, 71,247,238,221,171,217,161, 67, 7, 65, 84, 84, 20, 34, 34, 34, 96,174,207, 39, 33, 4, - 26,141, 6, 98,177, 24, 12,195,188,149,174, 86,171, 33, 18,137,204,230, 18, 8, 4,159,250,251,251, 63,122,240,224, 65,237, 46, - 93,186, 8,239,220,185,131,232,232,104, 24, 12, 6, 81,213,170, 85, 31, 61,120,240,160, 86,231,206,157,133, 15, 31, 62, 68, 66, - 66,194, 91,231, 43,193,143, 6, 0,240,224,193, 3,244,239,223, 95,244,251,239,191,215,114,115,115,123,168,215,235, 69, 0,240, -232,209, 35,244,238,221, 91,116,250,244,233,218,229,202,149,123, 88, 66, 87, 34, 15, 0,116, 58, 29, 70,141, 26, 37,183,182,182, - 70, 84, 84, 20, 88,150,133,193, 96, 0, 0,164,164,165, 60,122,240,232,113,200,192,190, 61,155,171,180,106,245,141,219,119,159, - 86, 44,239,237, 73, 8, 45, 95, 66, 93,118,149,201,100,145,223,127,255,253,164,176,176, 48,177,159,159, 31,243,240,225, 67,164, -167,167, 67, 36, 18, 65, 34,145, 64, 44, 22, 67, 32, 16,124,124, 70,244,204, 0, 7,176,104, 29,145,164, 17,139,109, 61, 21, 86, -110,190, 64,228,101, 84,112, 18,131,199,240, 36,119, 94,231,200, 1,218, 26, 94,201, 14,150,113,178,173, 95, 39,106,196, 58,251, -106, 86,238,158, 94, 72, 73, 73, 65,185,138,254,200, 21, 57,137,174,191, 84, 90,129, 88,200,249,231,181,106, 90,165, 74, 21,215, -202,149, 43, 35, 57, 57, 25,181,107,215,134,157,157,157, 29, 33,164,117,169,235, 96,123,121, 49, 50,209, 24, 96, 86,192, 64, 22, - 64,199, 95,130,151, 73,181,177,185,206,191,230,130,215,247, 32, 30,214, 86,162,155,123,246,238,243,112,240,170, 10,156, 24, 10, - 23, 91, 49,182,142,169,109,239,100, 35, 62, 82,154,110, 68, 66, 72,160,139,139,203,249, 91,183,110, 57, 74, 36, 18,220,187,119, - 15, 1, 1, 1, 88,181,106,149,147,157,157,221,229,127, 67, 55, 34,165,148,134, 0,199,190,127,248,112,219,206,208,208,227, 3, - 42, 85,234,216,223,215,119,241,232, 62,125,134, 77,152, 48, 1,203,150, 45,195,145, 35, 71,208,184,113, 99,140, 28, 57, 82, 23, - 25, 25,185,163,148,221,133,235, 86,172, 88, 49,126,226,196,137, 5, 57,181, 17, 17, 17,223, 23,119,108, 96, 96,160,231,139, 23, - 47, 98, 38, 79,158, 92,123,231,206,157, 82,153, 76,134,244,244,116,108,217,178, 5, 51,103,206, 4, 33, 4,148, 82,252,242,203, - 47,178, 33, 67,134,212, 11, 13, 13,141, 41, 95,190,188, 57,110, 29, 4,128, 4,128, 44,111,145, 3,144,237,217,179,199,166, 75, -151, 46,214,121,105, 82, 0, 82, 66,136, 24, 28, 10,162, 80, 45, 98,114,205,143, 23,184,215, 58, 22, 76, 43,184,141, 82,218,177, - 56, 14, 11,239,237,194,206,119,162, 96,100,248,183,222,169, 38,191, 91,156, 56,113,226,210, 95, 72,129, 26,174, 62,126,200, 56, -123, 0, 82, 62,129,148,151,183,240, 9,152, 87,143, 80, 78, 34,128,142,210,192,210, 8, 45,163,216,146, 74,165, 16, 10,133,200, -206,206,134, 78,167,195,172, 89,179,196,103,207,158,117, 96, 24,230,127, 37,241,152, 10,166,231,207,159,163,106,213,170,228,216, -177, 99, 46,227,198,141,147, 2,128, 72, 36, 66, 70, 70, 6, 42, 87,174, 76, 78,157, 58,229, 60,123,246,108,171,226,196, 12, 33, - 4, 66,161, 16, 19, 39, 78,148,222,190,125,219,222,221,221, 29,175, 94,189, 66,106,106, 42,172,172,172, 48,113,226, 68,233,173, - 91,183,156,220,221,221, 17, 30, 30,142,140,140, 12, 88, 89, 89, 89, 44,180,132, 66,225, 91,199, 16, 66,160,213,106, 33, 18,137, -204, 22, 68, 54, 54, 54,187,131,130,130,156,108,108,108,240,240,225, 67,232,245,122,216,216,216, 96,252,248,241,210,160,160, 32, - 39, 91, 91, 91,132,132,132, 24, 45,127, 22,229, 17, 0, 88,150, 69, 72, 72, 8,202,151, 47,143,203,151, 47, 59,143, 30, 61, 90, - 98, 76,127,249,242, 37, 60, 61, 61,113,249,242,101,103,185, 92,190,187, 40, 46,150,101, 17, 23, 23,135, 39, 79,158,224,213,171, - 87, 72, 74, 74, 66,114,114, 50,178,178,178,160,215,235,223,248,217,101,101,158,216,179,255,216, 3,169, 84, 42, 11,240,173,226, -245,232,113,112,162, 84, 42,149,121,123,121,249, 18,178,128, 41, 38,159,255, 11, 13, 13,117, 24, 50,100,136,240,197,139, 23,136, -141,141,133, 64, 32,200,191,183,140,139, 88,252,145,181,101,132, 16, 16, 77, 21, 16, 82,251,230, 43,165,125,211,142,125,133,120, -253, 59,192,234, 0,134,143, 22, 53, 60,249, 71, 30, 41, 93, 64, 81, 3,106,248, 3,102, 92,120, 66, 8,160,173, 12,144, 79,206, -188,208, 59, 52,254, 98,140, 48, 38, 38, 6, 66,161, 16, 98,177, 24,181, 63,237,206,223,243, 64,231, 10,130,154,208,194,207, 44, - 78, 19, 72,165,210,111,230,205,155, 39, 55,229, 28, 54,108,152,220,198,198,102, 94,169, 69,150, 82,214, 16,122, 58,241, 73, 76, - 78,249,197, 39,226,171,134, 38,170,252, 64,233,100, 64, 87,171,172, 98,139, 16,210, 66, 34,145,188, 38,132, 52, 41,147,200, 82, -136,110,236,221,187,207,195,190,220, 27,145, 5,125, 46, 32,144,194,213,201, 22, 91, 39,181,180,119,178,149, 90, 36,182,242, 68, -214, 31, 55,111,222,116,148, 72, 36, 8, 10, 10,130, 80, 40,132, 68, 34, 65,245,234,213,177,105,211, 38, 39,123,123,251,127,149, -216, 90,250,240,225,246, 37, 79,158, 60,159, 17, 24,232,223, 85, 46,183, 31,219,191,191,205,236,217,179,143, 31, 61,122,116, 91, -135, 14, 29,146,111,223,190,253, 3,165,244,128,133,215,135, 16, 66,214,175, 92,185,114,172, 81,184,205,158, 61,251,151,163, 71, -143, 46,233,208,161, 67,220,237,219,183, 39, 83, 74,215, 23,199,145,157,157,125,116,206,156, 57, 54, 95,124,241,133,241, 63,174, - 94,189,138, 29, 59,118, 64, 46,151,191,181,111,231,206,157, 49, 98,196, 8, 59,141, 70, 83,236, 59,201,197,197,229,179,155, 55, -111, 6, 0, 16, 2, 16, 27,133,214,227,199,143,109, 51, 51, 51,109,173,172,172,108,221,220,220, 20, 70,177,245,197, 23, 95,216, - 10, 4,130, 38,224,128,146,180,136,169,208, 49, 39,173,180,251,155, 43,182, 10,252,143, 43,106,158,195,183,132, 86,135, 14, 29, - 46, 1,104, 86,216, 78,218,212, 4,136, 97,128,148, 71, 32,227,153,136, 45,176,224,103, 36,162, 52, 3,120, 11,190, 12,165, 82, - 41, 36, 18, 9, 4, 2, 1,116, 58, 29, 50, 50, 50, 44, 18, 5,214,214,214,176,178,178,130, 74,165,130, 94,175,135, 68, 34, 49, -138, 17, 88, 91, 91, 67, 32, 16,228,191,132, 11, 90,147, 10, 90,115,132, 66, 33,228,114, 57,226,226,226, 16, 17, 17, 1,150,101, - 97,101,101, 5,185, 92, 14,145, 72,132,216,216, 88,196,198,198,130, 82, 10,185, 92, 14,185, 92,110,182, 56, 2, 0,131,193, 0, -145,232,175,126,192, 58,157,206, 34,139,150, 94,175,199,211,167, 79, 17, 25, 25, 9,137, 68,146, 95, 86,177, 88,140,151, 47, 95, - 34, 62, 62, 30, 50,153, 12,214,214,214,176,177,177, 49,155,215, 88, 22,133, 66, 1,169, 84,138,180,180, 52,228,228,228,228,215, -169,181,181, 53,228,114, 57, 50, 50, 50,144,152,152, 88,108,217, 13, 6, 3, 98, 99, 99,145,148,148,132,168,168, 40, 36, 39, 39, -231,139, 45,150, 45,123,252,203,203,151, 47,227,213,171, 87,198,174,169,252,235,107,186, 54,230,251,163,193,134, 64, 27,232, 4, -109,146,179,117,226, 36,173,208,198, 37,176, 21,240,250, 20,192,240, 1,137, 29, 26, 84,171,128,136, 52,131,252, 89,130, 70, 2, -130,182, 88,239,107,103, 22,167, 65,208, 58, 41, 75, 39, 14,215, 58, 89, 87,173, 81, 7, 9, 9, 9, 16,139,197, 16,139,197,248, -164,113, 43,188, 78, 49,200,130, 99, 84, 50, 80,180, 49,139,243,207,103,180,162,149,149, 85,195, 38, 77,154, 16, 83,206,246,237, -219,131, 16, 82,157, 16,226,111, 81,249,215, 86, 18, 65, 43,107, 0, 62,157, 24, 28,151,227,126,228,113,174,111,167,174,221,237, -127, 60,151, 88,245,105,188,218, 7, 84,247, 53,168,182, 78,105,197, 22, 33,164,185, 66,161, 56,190,118,237, 90, 31,137, 68,114, -138, 16,210,180, 52, 60, 86, 82,222,198,111,198,246,245,176, 51,138, 44, 93, 14,192,151, 2, 2, 41,192,151,194,213,217, 17,139, - 70,180,182,151, 73, 4,135, 44, 16,172,123,214,175, 95,239, 84, 80,100, 25,151,218,181,107, 99,238,220,185, 78,246,246,246,187, -223,243,183, 64, 27, 91, 91,219,157,173, 90,181,186, 25,171, 80,140,136,171, 83, 71,244,135,141, 77,198,103, 25, 25, 54,222,143, - 31,107,253,128, 71, 0, 54, 68, 69, 69,181, 51, 87,100, 17, 66,250,216,216,216, 4,181,106,213, 74,171, 80, 40, 34, 87,173, 90, -245,229,184,113,227,176,108,217, 50,204,153, 51,103, 11,128,225,148,210, 89, 81, 81, 81,238, 37,137, 44, 0,136,143,143,239, 55, -125,250,244,228,228,228,100, 0, 64,245,234,213,145,158,158,142, 41, 83,166,224,171,175,190, 2, 0,212,170, 85, 11,148, 82, 36, - 36, 36, 96,197,138, 21, 9,241,241,241,131, 75,104,219,163, 14, 28, 56, 80, 79,171,213,122,230,117, 15,138,211,211,211,173, 83, - 83, 83, 21, 90,173, 86,206,178,172,220,214,214,214, 10,128,108,224,192,129,252,224,224,224,170,122,189, 62,134,211, 86,127,162, - 56, 45, 82, 74,156, 40,139,229,170, 48,139, 88, 17,247,103,241, 22,173, 14, 29, 58, 16,211,245, 91, 22, 35,130,135,145,119, 47, -195, 62,176,206, 91,214, 44, 25,143, 64,106,109,131,215, 81, 17, 16,130, 60,177,180, 16, 70, 97, 85, 80,108,101,100,100, 96,204, -152, 49,170, 94,189,122,165,176, 44,219,221, 92, 81, 96, 99, 99, 3, 27, 27, 27, 4, 7, 7,211,110,221,186, 37,172, 90,181, 74, -101, 42,180,158, 63,127, 78,219,180,105,147, 56,111,222,188,236,226,132,150,209,162,181,116,233, 82, 85,139, 22, 45,146,158, 60, -121, 66,141, 98,202,202,202, 10, 43, 86,172, 80,181,108,217, 50,225,206,157, 59,212,152,102,137, 69,139, 97,152,124,161,101,122, - 12,195, 48, 96, 89,214, 34,161,165, 84, 42,251,117,232,208, 33, 33, 36, 36,132, 26,203,105, 99, 99,131, 85,171, 86,169, 90,183, -110,157,240,228,201, 19,106, 76,179,182,182, 54, 91, 12, 26,207,175, 80, 40, 96,109,109,141,224,224, 96,218,166, 77,155,132, 53, -107,214,228,154,166, 63,125,250,148,118,238,220, 57, 33, 43, 43,171, 95,113, 22,173, 87,175, 94,229, 91,176,114,115,115,145,156, -156,140,168,168,168,252,174, 67,149,220,186, 93,223, 94,157,106,170, 84,170,156,224,231, 47, 34,171, 87, 11,112, 86,169, 84, 57, - 17,145,145,207, 41,157,199, 22,243, 32,116, 31, 58,116,104,202,204,153, 51, 85,153,153,153,133,138, 44,227,250,163, 2,195,186, -130,208, 38, 87, 94,100,219,182,238,212, 91, 68,226,111, 3,218,108, 64,108, 7,136,237,192,151, 59,224,243,166,181,120,219,111, -102,186,130,178,141, 32, 20,123,150,200, 41,160, 46, 0,219,244,236,243, 92,187, 38, 61,198,139, 82, 83, 83,193,227,241,242, 69, -145, 76, 46,199,103, 93, 7, 50,191,220, 86,187, 2,180, 49, 8,207,211,220,236,138, 68,162,105,223,124,243,141, 48, 45, 45, 13, - 12,195,252,201, 41,147, 97,244,232,209, 98,107,107,235, 57,102,151,253, 96,128, 16, 2,113, 3,128,126,245, 44, 62,215,253,232, - 35,149,223,215, 75,183, 74, 3,107,213,195,168, 22,206,210,165, 39, 18, 3, 31, 68,169, 42, 0,134, 73,208,107, 62,177, 84,108, - 17, 66,154, 42, 20,138, 19,119,239,222,149,181,111,223, 30, 43, 86,172,144, 75,165,210, 83,132, 16,139, 27,126,101,182, 97,220, -194, 53,191, 38, 60,252,161, 45,160, 85,190, 17, 88, 38, 75, 98, 54,139,185, 91,207,103,232,116,180,175,185,156, 42,149,106,208, -240,225,195, 83, 14, 29, 58,244, 23,145, 37,145, 72, 16, 22, 22,134,197,139, 23,167,166,166,166, 14,126,159, 34,107,220,184,113, -139,163,163,163,253,206,158, 61,203, 79, 74, 74,114, 94,249,243,207, 25, 7, 51, 50, 82,151, 60,126,252,108, 86,181,106, 85,102, -212,168, 49,184,168,208, 15, 69,137,172,177, 99,199,238,137,142,142,174,125,238,220, 57, 65, 82, 82,146,231,216,177, 99,177,124, -249,114,204,153, 51,103, 19,128, 81, 52,207, 89,198, 92,104, 52,154,103,105,105,105, 29,219,182,109,155,158,150,150,134, 26, 53, -106,160, 83,167, 78,112,117,117,133,187,187, 59,186,116,233, 2, 95, 95, 95,164,164,164,160,111,223,190,169, 73, 73, 73,109, 41, -165,175,138,227, 76, 73, 73, 9,221,189,123,247,243,241,227,199,215,142,142,142,174, 10,192, 33, 43, 43, 75,158,149,149, 37,214, -104, 52, 82, 59, 59, 59,187, 90,181,106, 57,142, 28, 57,210,234,254,253,251, 85,163,163,163,179, 1, 68,112,242, 42, 95,100, 21, -169, 69, 0, 36,229, 9, 30, 77,129,117, 82, 9,219,204, 61,182,208,223,102,236,247,150,216, 50, 93,254, 98,209, 42, 10, 90, 96, -238,142, 3,219,115, 69, 94,149, 97,227, 87, 19, 50,137, 4, 82,145, 8, 82, 59, 7,168, 89, 22, 63,135,197,231, 40, 41,157, 99, -105,133,154,118, 27, 74, 36, 18,240,120, 60,108,216,176, 65,223,176, 97,195,220,243,231,207,175,205,201,201,241,162,148,254,102, -137, 40, 88,179,102, 77,206,196,137, 19, 31, 36, 38, 38,214,148, 72, 36, 26, 99,250,218,181,107,115, 6, 14, 28,248, 56, 58, 58, -186,182, 76, 38,203, 41,202, 63,203, 84,104,137,197, 98,117, 98, 98, 98,189, 97,195,134,133,108,216,176, 65, 41,147,201, 32,151, -203, 33, 22,139, 53,137,137,137, 53,191,252,242,203, 7,203,151, 47,207,145, 74,165,144,203,229, 22,117,203, 81, 74,255, 34,168, - 76,211,205,133, 78,167, 59,159,152,152, 88,115,226,196,137,247,127,252,241, 71,165, 81, 0,153,230,113,229,202,149, 57, 86, 86, - 86, 22, 89,180,140,251,201,229,114,172, 94,189, 58,103,252,248,241, 15, 18, 19, 19,107,138,197, 98,141, 73,186,114,220,184,113, -247, 19, 19, 19,107,234,116,186,243,197,124,225, 25, 50, 51, 51,193,231,243,241,248,241, 99,181, 80, 40, 4,195, 48,120,249,242, -101,190,208,178,183,183, 15,168, 89,189,154,255,175,123, 14, 92,146, 10,197,226,134,245, 62,169,250, 42, 60, 34,154, 82, 18, 94, -194, 23,199,111,185,185,185, 94, 87,175, 94, 93,219,182,109,219,220, 45, 91,182,232,249,124,254, 95, 94, 62, 31,159,208,130, 12, - 4,210, 23,137,106,133,132,209, 19, 60,255,237,141,200,146,216, 2, 18, 59, 64, 98, 7, 15, 15, 79,220, 14,203, 81,128,129, 8, - 6, 51, 98,136, 81, 42, 7,129,236,113, 2, 20, 2,145,148,196,199,199,231, 11, 34,227,226, 83,185, 42,238, 69,100, 91,129, 80, - 49,120,176, 36, 4, 73, 71, 7, 7, 7,126, 92, 92,220, 95, 56, 3, 2, 2,120, 58,157,206,252,208, 46,177, 6, 55,128, 29,251, - 60, 62,215,237,240, 3,165,223,164, 37,191, 72,165,134,116,224,238, 26, 4, 86,116,199,164, 30,181, 68,179,143, 38, 5,222, 9, -207,169, 8, 30, 29, 5, 54,219,201, 2,129,208, 68,161, 80,156,186,115,231,142, 76,161, 80,224,213,171, 87,168, 87,175, 30, 54, -111,222, 44,147,201,100, 39, 9, 33, 45, 44,185, 76, 55,227,105, 68,118,150,161,225,180, 3,145,241, 15,227,244,111,137,172, 36, - 37,197,240,239,143,166,167,101,230,118,191, 17, 89,244,243, 83,200, 61,127, 63, 61, 61,189,205,156, 57,115, 82,146,146,146,222, -186,199, 35, 34, 34,140,130,160, 5,165,244,201,251,186, 61,109,108,108,250, 47, 89,178, 4,119,238,220, 65,251,246,237,113,249, -242,101,164,166,166, 98,239,169, 83, 47,118,191,120, 49,203,232,179, 85, 88,232,135,162, 96,109,109,253,245,146, 37, 75,112,247, -238,221,124,206,148,148, 20, 44, 89,178, 36, 26,192, 24, 75, 69,150, 17, 9, 9, 9,183,159, 61,123,214,182, 70,141, 26, 79,215, -174, 93, 27,237,230,230,198,142, 28, 57, 18,195,135, 15,135,147,147,147, 97,245,234,213,145, 77,155, 54,125, 28, 26, 26,218, 74, -169, 84, 62, 50,227,250,208,228,228,228,235,155, 55,111,190,249,233,167,159,202, 6, 13, 26,228,116,228,200, 17,135,156,156, 28, -119,177, 88,236,172,209,104, 68, 79,159, 62,229, 29, 60,120,208, 53, 56, 56, 56, 76,165, 82,221, 46,109,222,255,131,184,147,103, -157, 58, 87, 96,125,167,132,109,230, 30, 91,212,239,146,246, 51,189,254,155, 77, 23,211, 13, 37, 46,253, 43, 98,254,232,106,138, -156,235, 3, 26,208,248,145, 77,104, 66,239,170,244,106,115,123, 58,172, 18, 81, 14, 42,101,120,135,152,152, 24,154,144,144, 64, - 83, 82, 82,232,190,125,251,168,171,171,171, 82,161, 80, 88, 28,222,193,213,213, 53, 33, 51, 51,147,214,173, 91, 55,213,201,201, - 41, 63, 20,129,155,155, 91,130, 82,169,164, 13, 26, 52, 72,117,118,118, 94,141,188, 17, 30,158,158,158, 81,148, 82,234,237,237, - 29, 91, 20,159, 94,175,167,174,174,174,198, 16, 9, 2,123,123,251,159,234,215,175,159,154,144,144, 64,221,220,220,242, 67, 39, - 56, 57, 57,173,168, 87,175,222, 91,233,102,228, 55, 42, 58, 58,154, 70, 71, 71,211,114,229,202,197,154,166, 71, 68, 68,208,136, -136, 8,234,233,233,105,113,120, 7, 39, 39,167,229, 5,243, 82,218, 60,122,121,121, 37,168, 84, 42,218,168, 81,163,183,234,212, -203,203, 43, 33, 55, 55,215,152,110, 86,120, 7,169, 84, 58, 74, 34,145,196, 74, 36,146, 88,177, 88,188,184,124,249,242,137,251, -247,239,167,171, 87,175,166, 10,133,226, 77,120,135,128,206, 13, 43, 55, 26, 60,203, 41,160,203,215,101, 9,239,160, 80, 40,254, -112,117,117, 85, 30, 60,120,144,170,213,106,170,211,233,168, 17,248,152, 70, 29,110,246,173, 76,127,242, 63, 26,186,208, 39,120, - 98, 51, 89,238,163, 69, 53, 41,253,223, 23,148,158, 28, 78,233,249,105,244,246,166,145,180,145,143,216,112,109, 74,185,231,116, -163,223, 97,179, 66, 50,108,174, 94,153,254,228,127,242,197, 2,159,224, 65, 77,221,115,127,222,176,154,222,186,117,139, 62,126, -252,152,190,122,245,138,158,252,109, 63,109, 84, 81,246,134,243, 39,255,163,150,132,121, 0,208, 88, 44, 22,103,175, 90,181,138, -222,188,121, 51,159,243,232,209,163, 84, 38,147,229, 0,102,142, 90, 6, 8,253, 41,160,171,126,131,223,149,217,173,173,178, 82, -142, 79,163,244,209,118, 74, 55, 7, 82,186,173, 62,165,251, 59, 80,122,108, 48,189,185,186, 7,109,236, 35,212,209,141,126,151, -233,166,128,214,230,230, 83, 32, 16,100, 30, 58,116,136,198,198,198,210,203,151, 47,211,187,119,239,210,144,144, 16, 26, 25, 25, - 73, 79,156, 56, 65, 5, 2, 65, 46, 0,139, 71, 53,214,119,129,119,171, 42,194,184, 7, 75, 27, 83,122,164, 47, 77,218,221,159, -118,172,166, 72,109, 80,142,255,105, 25, 70,218,213,114,112,112, 72, 62,113,226, 4, 13, 11, 11,163,151, 46, 93,162,206,206,206, -201, 0, 2,223,247,253,217,170, 85,171, 91,148,210,160,246,237,219, 7, 1,248,189, 85,171, 86, 65,175, 95,191, 14,170, 87,175, -222, 77, 20, 19,250,161, 56,206,207, 62,251, 76, 75, 41,165,237,219,183,167, 0, 98, 91,181,106, 69, 95,191,126, 77,235,213,171, -167,121, 71,163, 36,121, 0, 6, 11, 4,130,159,237,237,237, 47,216,217,217,157,231,241,120,155, 1, 12, 48,167,157, 43,134,211, - 29, 64, 0,128, 79,242,150,170,121,105,220,136,195,255,210,132,211,230,238,216,195, 7,141,135, 84, 36,151,250, 85, 64, 86,223, - 10,200, 30, 90,137, 92,237,238,131, 79, 45,157,221,219, 40,180, 82, 83, 83,233,253,251,247,105,243,230,205,149,114,185, 60, 6, - 64,219,210,204, 24,238,232,232,120,215,217,217, 57,138,207,127,187,209, 50, 73,255,204, 52,221,217,217,249,186,155,155, 91,130, -147,147,211,189,194, 56, 29, 29, 29,239,186,185,185, 37, 56, 58, 58,222, 53, 61,142,199,227,181,119,116,116,140, 41,152,206,231, -243, 63,117,118,118,142, 42,152,142, 34,102, 54,119,117,117,141,138,141,141,165, 73, 73, 73,212,203,203, 43,182,160, 0,139,143, -143,127, 75,128, 89, 50, 91,122, 81,121, 41, 42,189, 40, 78, 51,234,212,226,235,110,178,205,215,195,195, 35,113,229,202,149,212, -202,202, 42,209,116,155, 95,179,161,223,220,122,145,157, 57,124,250, 79,251,157,170,118,173, 94,154,153,226, 1,180,149,203,229, - 49, 45, 91,182, 84,190,124,249,178, 88,161,133, 15,100, 70,251,191,112, 30,168, 42,164,155,170, 54,166, 27,171,158, 8,153,231, -253,116,112,125,185, 58,104,101,123, 74,207, 79,163, 55,127, 26, 78, 27,250,136,222, 8,162, 77,254,167,232, 47,190,205,232,154, -138, 34,179, 56,127,174,212,148,110,242, 63, 21, 60,215,251,233, 23,117,156, 52,123,182,111,162, 47, 95,190,164, 71, 15,238,166, - 13, 42,228,137,172,141, 85,207,208,159,170,182, 52,139,179, 16,177,181,117,235, 86,250,242,229, 75,122,248,240, 97,179, 68,214, - 91,156, 38, 66,107,102, 43,171,244,225,245, 37,234,190,181, 68,154, 46,129, 66,109,155,202, 66,125, 35,111,190,161,166, 27,195, - 86,117, 2,109,227, 39, 85,211,141,126,151,233,198,170,109,205,205,167, 72, 36,138,132, 73, 76,157,130,139, 88, 44, 78, 42, 74, -104,149,116,221,235,187,192,187,149,175, 56,238,143,133,159,210, 78, 53, 20, 41,230,136,172,146, 56, 1,212,114,116,116, 76,222, -182,109, 27,117,113,113, 73, 50, 71,100,253, 19,247,167,141,141,205,206,236,236,236,160,211,167, 79, 7,181,106,213, 42,104,231, -206,157, 65, 87,175, 94, 13,146,201,100, 59,139, 10,253, 80,181, 64,251, 95,144,211,218,218, 58, 40, 43, 43,139,158, 62,125,154, -182,106,213,138,238,220,185,147, 94,189,122,149,202,100,178,160,127,213,179,201,113,254,119,197,212,155, 24, 90,111, 45, 22, 11, -173,119,117, 33, 0,208,244,244,116, 58,105,210, 36,141, 68, 34,201, 17, 10,133, 51, 1, 8,255, 43, 55,161,163,163,227,117, 23, - 23,151, 4, 23, 23,151,183,196,158,105,186,163,163,227,189,143,249, 1, 4,224, 43, 20, 10, 35, 4, 2,193,115,211,116,167,128, -206, 13, 43, 53, 30, 52,199, 37,176,243,231,101,201, 39, 0,161, 80, 40,156, 41,145, 72,114,166, 76,153,162,201,206,206,254,184, -132, 22,165,160,107, 42,138,140, 98,235,209, 28,239,144, 78,213,100,218,205,147,219,208,134,229, 11,136,172,109,222, 98,139, 56, -243,196,214,253,217, 94, 33, 45,125,173,244, 75,230, 76,162, 13, 42, 72,223, 22, 89,150,112, 22, 16, 91, 50,153, 44,107,222,188, -121,102, 91,178,254,194,249,179,159, 23,221,228,191,243,141,136, 42, 97,249,201,111, 11, 93,231,231,245,111,185,238,245, 93,224, -253,153,175,248,137,185,150, 44,115, 56, 1,212,178,179,179,123,106,174, 37,235,159, 40, 59,128, 54,163, 71,143, 14,122,253,250, -117,208,171, 87,175,130,174, 94,189, 26,212,181,107,215, 32, 0,109, 10,139,179,165,237,214, 77, 93,139, 97, 38,149,192,217,103, -244,232,209,244,245,235,215,244,213,171, 87,244,234,213,171,180,107,215,174, 20, 64, 31, 78,192,112, 66,235,223,190,240,255,233, - 78, 86,137, 68,146,104,107,107,235,100,101,101,117, 34, 55, 55,119, 60,165, 52,238,191,212,201,156,148,148,212,200,146,244,143, - 17,148,210,231, 0,188, 11,166, 39, 62, 57,114, 3,192,141,119,192,175, 5,176,132, 16,178, 99,211,166, 77,107, 87,172, 88,209, - 85, 34,145, 36,125, 84,149, 56, 62, 84,131,181,149,238, 66, 36, 90, 90,205, 67, 54,227,155,246,148, 44, 57,125,221,123, 89, 55, -231,200, 70,149,228, 97, 16,176,223,131,168,111, 99,112,184,218, 66,206,219,144,234,150,214, 44, 39,155,241, 93, 23,144,239, 79, -109,247, 94,222,213, 33,178, 81, 69,171, 72, 80,124, 15,113,206, 13,139, 56,223,190, 46,215, 8, 33,159,175, 92,185,114, 71, 78, - 78,206, 8, 74,233, 5,139, 73, 20, 76, 60,148,186,121,208,241,170,129, 66, 84,204,201,114,192,240, 30, 35, 17,255,154,201,196, -111,198,211, 8, 0,129,239,248, 89,186,159,215, 29,245,111,122,190,207, 16, 66,176,123,247,238,254,254,254,254, 21,131,131,131, - 95,229,228,228,236,162,148,158, 49,245,101, 34,132, 28,251,254,225, 67,229,186,224,224,107, 26,150,189, 86, 2,231,222, 60,206, -175,253,253,253, 3,131,131,131,159,228,228,228,172,164,148,238,229, 92,151, 56,252,219,241,143, 11, 45,149, 74,229,194, 85, 59, -135,127,168,193,143, 3,208,237,163, 45,160,137,216,170,227, 37, 29,127,104,180, 52, 7,148, 68, 67,192,174,182, 88,100, 21, 34, -182,234,121, 75,191, 58, 60, 74,154, 3,138,120, 80,252, 80, 22,145,101, 42,182, 0, 84, 40, 53, 65,143, 96, 45,128, 48, 16, 18, -142,249, 40,218,137,122, 62,242, 63,187, 57,188, 31,177, 5,224, 76, 9,251, 80, 0,231,243, 22,115, 56,247, 2,224,132, 21, 7, - 78,104,113,224,192,225, 31, 22, 91, 7, 3,238, 32,153, 55, 5, 12, 42, 0,250, 8, 40,245,241, 24, 31,174, 41, 35,231, 45, 36, -147,137,224,193, 23, 34,125, 40,178, 53,241, 24, 93, 6,206,191,225, 77,142, 55,190, 83,133, 99, 30,119,107,112,224,192,225,159, - 3, 33,100,164,233, 72, 67,211,255,156,208,226,192,225, 67,199, 27, 43, 79,116,222,242,239,229,228,192,129, 3,135,255,152,224, - 2,222,204,201,212,170,136, 15,198,115, 22, 16,183, 42,197, 7,233, 57,142,147,227,228, 56, 57, 78,142,147,227,228, 56,255, 91, -156, 37,113, 91,162, 63,254, 77, 2,171,144,114,108, 54,254,248, 71, 71, 29,114,156, 28, 39,199,201,113,114,156, 28, 39,199,201, -113,254, 87, 22, 6, 28, 56,112,224,192,129, 3, 7, 14, 28,202, 98,209,170,157,183,118,203,155,130,199,205,184,237,189,250,104, -201, 28,125,221,192,103,106, 16,150,250, 3, 0,101, 72, 8,244,236,195,156,228,231,101, 14,249,160,240,240,179,167, 16, 29, 32, -208,244,204,138,121,150, 90, 86,190,234,126, 54,221, 92, 28, 21,253,227, 83, 50,118, 60, 14,201, 58, 98,201,177,182,182,229,109, - 36,246,118, 61,212, 90, 93, 53,145, 80, 24,169, 77,207,220,156,154, 26,154,197,221,154, 28, 56,112,224,192,129,195, 71,129,218, - 0,238, 1,232, 64, 41,221,156,215,149, 88,188, 51,124,249,192,166,119, 36, 18,169, 15, 0,176,148,130,165,128, 50, 51, 61, 40, - 46,244, 78, 91, 0,112,242,169,115, 90, 32,177,174,195,210, 55,219, 13, 44,160,215,230,134,101,132,223,172,107, 78,142,172,156, -253,190,104,213,166, 85,183,142, 29, 59,248, 85,175, 86,189, 18, 0, 60,122,252, 40,244,248,241, 19,207,172,156,253, 14,101, 39, - 62, 59, 92,150, 18, 83, 72,190,253,228,147, 90, 77,238,222,189,183, 16,192,216,178,214,160,131,131,213,248, 51,255,155,210,236, -179,110, 43,228, 0, 44, 18, 90, 18,123,187, 30, 93, 58,181,171, 53,117,194,104,102,248,148,239,124,238, 92,187,184, 76,225, 94, - 45,157,178,186, 51,202,132,222, 87,138,155, 56,153, 3, 7, 14, 28, 56,112,224,240,175,199,137, 60,113,117,162,224,134, 34,133, -150, 68, 34,245,185,121,241,184,253,225,171, 81, 0,128, 86,181, 93, 49,107,209,218, 54,132,144,103, 0,208,121,248,124,223,133, - 51, 39,224,250,147, 68, 80, 74, 81,171,178, 3, 62,239,210,211,172,220, 72, 93, 3,234,246,238,213,171,223,148, 41, 95,119,126, -249,242,101,248,158, 61,123,174, 0, 64,211,102,205, 42,127,247,221,119,189, 86,216,217,139,165,174, 1, 49,170,248,224, 59,165, - 41,173,212,163,146, 71, 64,149, 26,253,247,253,178,150,105,209,182,123, 95,169, 71,165, 37,170,152,208, 24,115,142,117,114,114, -154, 40, 16, 8,108, 0,128,101,255,212, 63, 21,203,241, 92, 1, 64,111, 96, 21,246, 30,254, 89, 60,161,196, 32, 22, 11,131,179, -178,179,119,100, 68, 7,255, 92, 28,167, 90,167, 11,252,106,204, 16,230,254,171, 20,248, 4, 54,229,173, 94, 50, 27,172, 65,103, - 55,105,230,162, 30,119,111,237, 3, 48,239, 18,119,143,114,224,192,129, 3, 7, 14, 31, 38,242,226, 54,110, 54,249,191,185, 68, -161, 5, 0, 86, 82, 62,158,189,142, 7, 0,216, 74,129,241,163, 6, 33, 37, 57,201, 87,163,103, 49,116,208, 0,220, 11,137,195, -179,176, 36, 80, 74,225,235, 41, 51, 59, 67, 60,176,159, 12, 29, 54,180,249,233, 51,103,110,127, 51,231,155, 95, 9,121, 19, 13, -124,211,230, 45, 13,231,206,155, 59, 98,192,160, 1,173, 15, 30, 60,248, 4, 5,102,198, 54, 23,124,162, 88,187,124,233, 98, 81, -116,114,110,238,196, 41, 51,216,175, 39, 79, 92, 13,160,187, 57,199, 10, 4, 2,155,232,232,104, 43,134,121,219,125,237,251,197, - 51, 46,183,238,182,226, 69,120,100,250,253,211, 71,143,214, 13, 8, 8, 64,116, 76,124,227,101, 63,110,172,233, 86,169,238,144, -172, 76, 85, 55,101, 82,112,161, 81,168,197, 2,193,147, 5,203,126,170,197,218, 86,102,102,141,104,143,192, 74,238,136, 73, 76, - 71,179,182,157,249, 65,119,238,180, 1,192, 9, 45, 14, 28, 56,112,224,192,225, 3, 69,113,163, 14, 25, 0, 56,113,226, 68,161, -129,255, 12, 6,138,103, 97,113,120, 22, 22,135,219, 33, 73,208, 82, 1, 86, 47, 91,128,149, 75,230, 33, 85,197,224,240,245, 40, - 60, 15,139,199,243,176,120, 36,167,101, 23,166,240,222, 26,162,185,114,169,172,246,234,213, 54,203,219, 52,147,183,176,183,179, -179,123,241,228, 87,229,220,201, 9, 85, 23,124, 21, 37, 20,104,196,209,114, 43,121,163, 3, 7,246, 7,184, 56, 57,203,173,172, - 20,211,228,158,181,182,218,218,214,180, 41,142,179, 32,100, 46, 85, 59,119,238,208,238, 83, 87, 87, 23,118,244,234,160,144,106, - 85,253,117, 85, 42, 87,105, 44,115,241,237, 92,140, 18,205,231,100, 89, 22, 12,195, 32, 33, 33, 1,177,177,177,120,253,250, 53, -158, 63,127,142,168,168,240, 4,150, 82,129, 1, 44,227,230,230, 9, 62, 95, 4,159,242,222,248,105,245, 18,217,162,249,179,234, - 73,228,162, 35,132, 16, 82, 24,103,110,106,218,193,147,191,159,137, 57,181,231, 39, 3, 0, 36,166,101,227,252,157,151,184, 23, - 28,101,169, 98,126,231, 67, 94, 57, 78,142,147,227,228, 56, 57, 78,142,243,223,192, 89,148, 22,249, 16, 64, 41,221, 92,112, 49, -110, 43,118,212, 97,104, 84, 42,158,189,142, 71, 29,127, 15, 84, 42,239,134,219,207,211,176,235,124, 20,182,158,142,192,249, 7, - 73, 96,249, 10,196,103, 2, 47,194, 19,240, 34, 34,185,184, 56,205, 0, 0,158, 88,208,251,171,175, 50,166, 84, 15,200,108,112, -241,212,120,120, 56,189, 8,152, 62, 61,125, 60, 79, 44,232,109, 87, 78,177,103,198,148, 73,253, 21, 50,153, 72,163,214,160, 98, - 5,111,201,132,113,227,135, 16, 59,241, 30,115, 11,106,237, 25, 96, 39,150, 74,127, 94, 52,127,154,248,135,195, 47, 34,149, 26, - 40, 15,221, 72,120,245,245,140,185,169,124,129,228, 39,107,207, 0, 59,115,185,116, 58, 29,212,106, 53, 52, 26, 13,180, 90, 45, - 98,162,158,118,254,227,240,212,182, 21,202,217,183, 21, 75, 36,160, 0, 50, 85,122,188,142,203, 65,203,207, 90,243,234,212,174, - 29,104,229, 86,117, 88, 97, 92,233,233,225, 25, 44,229, 41,142,255,182,155,183,255,236,125,252,122,252, 14,142, 92,184,143,219, -151, 78,233, 41,171,203,159,166, 66,225, 94,197, 87,225, 94, 35, 66,225, 81, 51, 33,127,241,172,126,151,251, 86,224,192,129, 3, - 7, 14, 28,254,189,200, 27,105, 56,178,224,136, 67,160,152,174,195,220, 92, 85, 88,247,222, 3,224,230,236,106,213,165,197, 96, - 97, 80,104, 58,146,226, 34,240,242,249, 99,228,228,234, 32,180,171, 0, 72, 92, 81,222,199, 27, 15,159, 29,209,174, 89,126, 34, -155,213,171,195,138,226,235,210,197,221,211,205, 73,206, 44, 95,230,117,243,249,179,180, 58,187,231,108, 67,191,126, 86,142,203, -151,121,221, 12,127, 37,103,100, 18,218,104,200,160,190,132, 33, 20,211,167, 79, 65,151,142,237, 48,116,200, 64,178, 99,199,246, - 6,230, 22,148,133, 96,221,204,217, 11, 68, 9,233,122,205,237,231,217,106,153, 92, 42,189,246, 34, 91, 25,232,227, 37,109,223, -109,112,236,137, 3, 63,255, 0, 96,144, 57, 92, 70,129,165,211,233,160,213,106, 1,192, 0, 0, 12,243,102,157,146,165, 65, 98, -186, 26, 9,233,106,232, 13, 44,186,245, 30, 36,189,115,247,193, 32, 0, 69,248,107,177,172, 78,175,195,161,179,247, 16,115,231, - 32, 75, 24, 94,134,209, 25,222, 40,178, 92, 93,189, 46,119,236, 54,208, 73, 36,121,211, 13,155,165, 84, 99,199,198,101,220, 29, -204,129, 3, 7, 14, 28, 56,252,139, 81,112,250, 29, 66, 8, 74,156,130, 39,252,201,149,186, 0,224, 87,183,109,138,149,132,111, -207,103, 8, 18,162, 67,177, 99,197, 68,176, 44, 69,251, 17,203,161,240,113,133, 84,200,131, 58, 59, 37, 59,229,229, 69,135,226, -213,158,174,245,250, 77, 49, 62, 95,142,169,104,189,123,119,182, 0, 0,118,239,206, 22,140, 25, 93,206,122,195,166, 48,159,250, - 77,234,128, 26, 12,232,216,165, 59,122,247,233,141,240,248, 28,252,239,114, 36,148, 42,141, 89,243,171,201,156,170,214,116,118, -247,104,247,213,224,118,114, 62,143,144, 42,222, 54,188,168, 36,157,158,199, 19, 24,142,221,201,136,237,214,173,143,227,249,147, -251, 63,149, 57, 85,173,153,147,244,244, 65, 73,124,106,181, 26, 6,131, 1,106,181, 26, 58,157, 14,246,142, 21, 78,182,238,190, - 34, 58, 46, 62,235, 68,124, 90,110,125,165, 78,143,132,116, 53, 18,211,213, 72, 87,106,225,170,176,131, 94,167,169, 94,204, 69, -248,181,107,247, 1, 3, 1, 48,132,209,111,203,138,125,250,220,184,205, 40,178,218,117,233,231,116, 57, 40, 20, 47,239,158, 74, -163,172, 94,247,166,226, 88,110, 10, 20, 14, 28, 56,112,224,192,225, 95, 14, 19, 63,173, 19,121,206,241,120, 75,104, 25,251, 70, - 59,116,232, 64, 10, 30, 28,147,144, 10, 7, 43, 62,156,220,125,208,127,226, 74,252,250,195,100, 24, 12, 58, 80, 10,232, 13,230, - 69, 38,160, 84,112,118,236, 24, 31,255,242, 62, 60,167,254,253,100,170, 93,187,115,164,253,251,201, 84,213,170, 59,100,140, 29, -227, 19,150,149,235,213, 88,111, 48,224,218,147, 68, 60, 14,203,192,227,240, 76, 88, 73,205, 15,243,197, 19, 9,199, 44, 91,186, - 68,200,231, 17,242, 36, 34, 59, 59, 58, 69,159,205, 19, 8,180, 50,169,136,106, 40, 95, 29,158, 76, 83, 62,235, 58, 68,117,108, -231,143,195, 0,140, 43,138,199, 56,210,208,104,201, 50,174, 41,165,148, 0, 44, 75, 12,134,232,228, 92,100,107,117, 72, 72,251, - 83,104, 17,125,209, 61,167, 10,247, 42,190, 54,214,246,191,243,120, 60, 49,165,128, 78,171,239,165,112,175,210, 54, 43,246,197, -115, 83,145,117,243, 73, 44, 66,239,159, 75, 48,104,115, 6, 40, 19, 66,254,224,110, 91, 14, 28, 56,112,224,240, 95, 66,113, 90, -228,223, 14,163, 5,171, 80,139, 86,113, 5,162, 20,120, 17,145,140,242,158, 78,240, 44, 95, 9,207,159, 62,252,115, 27, 0,189, -193, 60,223,181, 35, 71, 98,163, 87,173,178, 97, 39, 79,206,104,184,108,153,215,141, 49,163,203,217, 84,171,238,144, 49,109, 90, -100,195, 85,171,108,110,156,189, 41, 48,208,188,120, 93,198,216, 92,121, 97,254,205, 4, 83,175,102, 64, 5,222,130,221, 47, 34, -255,120,148,149, 40, 20, 10,117,174,118, 18,162,176, 18,241,120,140, 64,164,214, 49,106,223,192,218,188, 99,204,155,232,173, 37, - 9,173,130, 93,135, 41, 73,161,157,207,252,111, 74,181, 22, 93,151,219,199, 36,169,144,161,225,229,119, 29,242, 24,130, 71, 79, - 35, 0,158,240,113, 97,156,214, 10,251,211,123,118,253,234,181,106,217, 98,104,245, 6,140,157,252, 13,134, 12, 26,112, 90,225, - 94,165,173,151,143, 95,208,149, 99,219,100,109, 71,255,132,136,103,119,227,245,234,204,189,156,200,226,192,129, 3, 7, 14,255, - 53,124,136,226,202,136, 2,163, 14, 11,183,104, 21, 7,111, 79, 23,220,122, 28,134,234,254, 21, 96, 99,173, 64, 72,104, 52,120, -140, 0, 12, 1,116,122,243,197, 16,213,234,246,173, 90,101,131,136, 48, 57,179,225,167, 48,159,177, 99,124,194, 86,173,178,185, - 65,181,186,125, 0, 6, 80,250,102,238, 69, 99,128, 84,131, 5, 97, 60, 41,171, 43,231, 98, 47,227,221,125,165, 76, 97, 24,158, -218,193, 70,194, 58,216,136, 25, 7,133, 72, 32, 20,240, 88, 61,101,180,158,206, 62,185,148,101,107,154,195,103,218,117,104, 48, - 24, 64, 8, 99,200, 19, 98,242,168, 20, 21, 50,114,121, 72, 72, 87, 35, 45, 75,139, 42, 30,114,156, 59,127, 48,199,160, 83,237, - 46,140,139, 39, 16,218, 84,242,241,196,172,111, 87, 65,165, 54,224, 69, 76, 54,132, 98,177,171,139,107,224,131, 1, 95,206, 16, - 79,216, 28,138, 97,159, 58, 96,242,149,208,152,156, 4,201, 12,238,113,227,192,129, 3, 7, 14, 28, 62, 28,152,250,104, 21,132, - 89, 66,203, 74, 38, 1,229, 73,112, 37, 40, 20,126, 1, 53,176,253,232,109, 84,174,222, 0,113, 89,122, 80, 48, 37,142, 54, 52, -226,235, 25, 57,247, 0,220,235,210,197,221,243,139, 47, 60, 90, 83, 42, 56,187, 97, 99, 70, 52, 0,252,180,183, 57, 40, 0,150, -165,160, 20,160,236, 27,193,101,190,156,228, 71,132,197,101,150,247,113,149, 35, 56, 90,171,150,139,133,140,157, 92,196,115,178, - 17, 9,133,124, 62, 12,148,168,227,226, 66,213, 4, 8, 55,135,174, 96,215,161,204,202,237,228,103, 93,151, 39,133, 71,102,220, -173,146,154, 83, 51, 67, 43, 2,165, 64, 21, 15, 57, 30,223, 60, 97, 72,136,121,249, 66,149,240,108, 99, 97, 92, 44, 11,158, 86, -207,226,193,171, 12,164, 43,117, 72,207,214,162,113,203, 78,194,198,173, 58,227,202,227,100,176,122, 29,150,109, 57,145,101,160, -186,222,148, 6,235,184, 91,150, 3, 7, 14, 28, 56,112,248,112,144, 55,210,176, 3,222, 68,134,239, 96, 42,190,204,154, 84,218, -192, 82, 56, 58,216, 67, 34,183, 70, 88,130, 22, 89,196, 25,105, 57, 20, 6,195, 27,139, 22, 91,244,137, 91, 21,150,126,228, 72, -108,244,111,191, 37,109, 61,114, 36,214,196,209,251, 79, 75, 86,254,154,165,102,115, 18,106, 56,119,244,212,197,140,206,245,157, -236, 24, 30, 79, 37, 20, 48,106,190,144,167, 21,242, 25,157,144,207,104, 92,172, 5,188,139,199,246,138, 40,193,197,146, 56,115, -115,115,209,170, 85, 43,180,111,223, 30, 93,186,116, 65,207,158, 61,225,235, 91,213,153,225, 17, 13, 37, 44,235, 36,202, 66, 37, - 39, 2,126,110, 20,254,216,251,125,206,227,107,191, 61, 48,168,115, 59, 81,147,190,206,183, 56, 41,101, 83, 51,212,200,213, 26, -144,150,173, 69,154, 82, 11,189, 83, 67,252,118, 61, 22, 42,141, 1, 17, 65, 7, 85, 73,241,209, 19,115, 19, 94,132,149,112, 33, - 91,253, 13, 55, 7,199,201,113,114,156, 28, 39,199,201,113,190,119,206, 15, 28, 29,242,132, 85,135,130,113,180,204,176,104, 81, - 84,116,147,163,178,135, 28,185, 90,103,228,106, 12, 80,230, 26,144,153,163, 69,102,142, 14, 97,241, 57,120,124,180,236, 57,124, - 99,197, 2, 72,222,111,144, 55, 2,207, 92,155,150, 72,171,249,118,229,178,239,122,237,173, 93, 75, 51,161,131, 91,185,135, 97, -154, 88, 66, 24, 21,195,227,235,236, 21,124, 65, 72,200,195,164, 27,151, 79, 54,147,232, 13, 3,139,227,209,235,245, 25, 30, 30, - 30, 0,222,158,130,167,106, 37,105,151,107, 39,166, 87,104,222,121,153,211, 15,139,167,228, 48, 60, 33, 75,248,194,199, 6,157, -106,143, 42,225,217, 79,180, 24,135, 50, 70, 40,121,122,235,126,112, 3, 91,251,114,120, 25,163,132, 50, 87, 15,173,158,133,157, -149, 16,209,143, 78,107,195, 66,238,238,207,138,121,176,157,187, 79, 57,112,224,192,129, 3,135, 15, 19, 70, 63, 45,227,186,196, -240, 14, 38,214,157,176, 38,173, 58,129,101, 41, 12, 20, 96, 13,121,150, 39,246, 79,235,147, 65,151, 27, 86,214, 12,178,172,225, -246,186,205, 91,219,215,174,215,156, 23,224,101,133,204,148,120,220,188,118, 65, 15,150,222, 48,231,248,228,228,231,217, 50,215, - 42,221,123,245,248,226,192,160,161,163,211,155,181,108, 41,119,118,118, 85, 71,199, 68,231,252,178,115,151,238,244,201, 35,205, - 88,232,251, 36, 39,191,200, 46,142, 39, 61, 61,253,199,194,210, 63,107, 82,174, 49,128, 10, 60, 62,209,228, 36, 62,151, 91, 82, -182,228,152,168,110,223,125, 59, 63,188,223,136, 73,162,138, 30,149,144,152,193, 67, 88,116, 60, 66, 46, 31, 81,199, 60,191,115, - 56, 51,250,222, 48,238, 22,229,192,129, 3, 7, 14, 28, 62, 76,148,201, 71, 43, 50,248, 77, 60,173,191, 27, 89,241,137, 3,182, -111,255,117,209,175, 59,247, 54,206,213,104, 60, 40,132, 81, 6,189,230, 82,182, 1,115,205,229,200,137,127,113,215,209,209,183, -218, 47, 91,214,205,254,101,235,134,230, 96, 13,254, 4, 8,167, 4, 23, 37, 58,195,160,146, 68, 86,241, 66, 46,107, 83,235,238, - 43, 84, 41, 41,217,191, 90,122,108, 78,114, 72,188,149, 75,197,114,155, 86,127,187,156, 97,120,109, 12, 6, 86,192, 26,116, 47, - 13,218,220,239, 85, 73,207,142, 82,203,134, 87,114,224,192,129, 3, 7, 14, 28,254, 69, 32,132,140, 44, 24,180,212,108,139,214, - 63,133,212,212,208, 44, 0, 19,202,202,147,156,252, 60, 27,192, 59, 31,185,247,232,121,198,255, 0,252,175,180,199,103, 39,188, - 74,130,153, 81,233, 57,112,224,192,129, 3, 7, 14, 31,190,224, 2,204,116,134,231,192,129, 3, 7, 14, 28, 56,112,224, 80,188, -200, 50, 93,231,167, 3, 40,116,228,128, 37, 51,115,151,102,244, 65, 73,252, 28, 39,199,201,113,114,156, 28, 39,199,201,113,126, -124,156, 37,113, 91,162, 63, 62, 8, 1,246,119,186, 7, 17, 66, 90,189,235, 10,227, 56, 57, 78,142,147,227,228, 56, 57, 78,142, -243,227,227,252,160,197, 84, 1, 43, 86,158, 96,252,119,249,104,113,224,192,129, 3, 7, 14,255, 20, 28, 29,125,173,128,124,191, -222, 18, 33,119, 10,112, 1, 0,101, 82,112, 2, 87,123, 28,138, 18, 85,133,249,104,149, 74,104, 17, 66, 4, 12, 95,244,149, 68, -106, 53,152, 48,176,206, 78, 79,246,248, 15,171, 88,226, 91, 94, 62,174, 92, 57,167,150,209, 49, 9, 59, 66, 94,229, 28,121, 31, -156, 86, 46, 21,157,136,200,238, 48, 97,213,223,101, 70, 63, 62,245,142,203, 40, 14, 8, 8,168, 5, 0,193,193,193,247, 41,165, -234,178,114,202, 93,252,250,218, 89,219,142,210,178, 26, 67,142, 50,231,167,236,248,231, 7,223,101,158, 21,238, 85, 28,192, 87, -108,132, 65,223, 18, 20, 60,240,248, 15,136, 58,119,120,102, 82,240,171,226,142,243,234,178,196,127, 88,175, 14,115,182,238, 63, -177, 40,242,200,204,144,130,219,237, 63, 95,171, 24, 63,176,205,244,245,123,143, 44, 77, 62, 58, 45,155,107, 94, 44,135, 87,147, -126,182,122,190, 43, 47,246,226,138, 20, 75,142,243,244,107,248, 68, 32, 16, 56,105,181,218,196,152,231, 55,171,153,115, 76, 57, -255, 70,247,120, 60,198,221,160,103,163,163,158, 93,255,132,171,253,146, 33,117,174,216, 16,122,253, 44, 10, 16, 16,254,202,220, -148, 87, 23,202,194,231,238,238, 46,181,177,177,105,102,109,109, 93, 78, 38,147, 73,210,210,210, 84,105,105,105,145, 17, 17, 17, -231, 41,165,250,247, 81, 70,185,139,223, 76, 34, 32,243,242,126, 47, 80, 38, 60, 91, 82,124,251,234,191,136, 48,116,102,222,239, - 37,217, 9, 33,115,254, 13,215, 74,226,234,231,205,163,152,192, 99,248,141,244,172,110,113, 78,194,243, 99,150, 28,111,111,111, -223,134,207,231, 75,141,255,245,122,189, 42, 53, 53,245, 12,247, 20,148,234, 61, 57,178,224,239, 82, 91,180, 8, 33, 60,129, 88, -118,181,223,208,177,213,150,206,159, 33, 89,189,245, 55, 72,172,236,130,115,179,211, 2,254,141,133,119,170, 88,255, 46,143,225, -121,154,166, 25, 88, 67,116,210,171, 91,239,164,209,245, 43, 47, 29, 54,123,218,128,201,125,123,181,242,110,213,113, 34, 1, 80, -168, 40, 82,120,213,189, 78, 8, 83,129, 33, 0,195, 16, 48, 4, 0,104,108,242,171, 91,181, 75,203,105,132,141,115,165, 10, 34, - 43,167,203, 77,186,140,117, 13, 58,183,107,187,220, 41,160,181, 50, 41,248,225, 59,184,113,156, 42, 85,170, 84,215,215,215,215, - 97,252,248,241, 66, 0,248,225,135, 31, 42, 87,174, 92, 57, 37, 52, 52,244, 14,165, 52,169, 84,141,156,179,255,128, 31, 87, 44, -252,245,243,207,219, 35, 54, 89,137,101,171,214,183,176,114,245,237,249,174,196,150,157, 93, 5,107,190,181,221,163,137,211, 22, - 58,183,107, 81,151,151,157,171,199,239,151,239, 55,221,181,126,225,109,107,167,128,122,197,137, 45, 54, 39, 99,142,139, 21,109, -199,230,100, 0, 64,223,130,219, 61,172,116,173,156,164,134,118,110, 98,254,125, 0,135, 74,204,139, 79,147,211, 2,177,216,155, - 97, 24, 24,175, 61,143,188,185,254, 58,173, 42, 34,250,233,229,182,255,134,231,196,218,187,126, 60,120,124, 7,134,252,153, 63, -146,119,159, 18, 74, 51,227,158, 95,113,120, 7,247,147, 77,181,202,182,129, 29, 26, 55,249,229,210,235, 84,185, 87,243, 73, 39, - 8,101, 54, 68, 92, 94,249,192,172,151,138, 68, 98,119,236,216, 49,167,118,237,218,217,184, 84,235,122,201,156, 99,172, 68,146, -128,227,199,143, 10,219,181,107,107,193,253,233,215, 26, 12,179,147, 0, 2,150,165, 63,240, 88,186, 63, 59,229,121,168,165, 97, - 88,100, 46,254,195, 24, 80,179,219, 25, 22,228,110, 78, 66,200,214,210,214,175, 64, 98,243,153, 64, 40,252,170,130,111,245,218, - 49,225, 47,239, 42,179,179, 86,233,114,211, 47, 89, 76,164,211, 79, 61,119, 37,232,115,190, 64, 64,218,125, 86,159, 7,160, 76, - 66,203,197,197,165,235,218,181,107, 43, 54,108,216,208,248, 50,183, 62,112,224,128,235,183,223,126, 43, 55,231, 25, 42,226, 94, -242,112,114,114,242, 18,137, 68, 30, 0,160,209,104, 98,146,146,146, 34, 41,165, 49, 37,222, 19,174,149, 28, 9,248, 11,175, 92, -190,204, 7,128,166, 77,155, 45,242,110, 58,222,142, 39,180, 82, 21, 90, 29,154, 44, 57,128, 73, 55,111,221, 32, 0,208,160,126, -195, 25,114,167,128,117,239,211,178, 37,117,241,175,207, 0,147, 27, 55,107,221,173,119,159, 1, 76, 96, 21, 47,180,105,253,233, -116, 0, 22, 9, 45, 62,159, 47,189,125,251,118, 37,134, 97,120,122,189, 62,183, 65,131, 6,145,101,201,151,135, 95,163,235, 4, - 76, 57,173, 94,179, 37,233,213,221, 69,148, 82,182,160,126,176, 41, 87,123, 54,120,252, 17, 44,203, 70,101, 70,220,105,244,177, - 89,180, 10,173,103, 75,201, 24,190,232,171,190, 67,190,172, 54,233,235, 89,146,137,171,207,227,196,250, 25,201,255, 86,145, 5, - 0, 60,134,231,121,250,204,105,103,153,136, 7, 0,200,206,213,227,243,118,237, 74, 60,206,214,167,254, 69,134, 16, 63,227, 84, -226, 6,189, 86,194, 23,136,114, 9, 0,144, 55,163, 8, 28,221,203,159,119,115,179,151,245,237,213,202,123,231,222,179,209,145, -209, 41, 69, 54,106, 12,195,243, 60,114,244,152,179,135,131, 4,124, 30, 65,182, 74,143,118,237, 59, 25, 10,219,215,205,205,190, - 67,223, 94,173,188,119,239, 59, 23, 25, 23,151,122,162,216,198,220,205,183,142,220,198,229,247,110,163,190,117,200,101,236, 49, -119,241,143,142,151, 79,237,190,212,188,195, 0, 54, 34, 34, 42,151, 18, 18,156,150, 26,247, 85,118,220,203,103,230, 10,105, 43, - 43,171,138, 86, 86, 86, 53, 63,255,252,115,201,148, 41, 83, 4, 45, 90,180,200,223, 62,114,228, 72,225,197,139, 23,221, 86,172, - 88,209,222,221,221, 61, 55, 59, 59,251, 65,118,118,246, 43, 74,169,193,220,107,226,234,234, 52,174,251, 23,157,240,105,183,177, - 48,176, 4, 35,191,156,132,211,167, 14,141, 6,240, 78,132,150, 78,102,253,237,136, 81, 83,156, 26,212,173,197, 91,184,251, 25, -164, 34, 62,218,126,226, 71,134,140,159, 99,187,117,205,194,159, 1, 52, 47,204,146,197,230,100,204,169,230,168,233,211,185, 97, - 5, 28,221,163,233,227,217,106, 58, 24,153, 77,190,101,171,210,231, 19, 20,118, 82,233, 90,119, 91,158,179,216,144,180,182,210, -231, 19,206,133,158, 90,147, 85,236,203, 79, 44,246,222,179,123,119, 21, 59,133, 16,124,134,128,199, 35,224,243, 24,228,106, 12, -232,217,171,207,187,250,146,226, 73,157,171,180,103,128, 33,111, 94,216,216,166, 74,124,113,210,146,107, 66,120, 66,135,227, 71, - 15,243,157,109,196,224,241, 8,120, 12,192, 99, 8,194, 19, 84, 24, 54,108,136, 77, 89, 5,251,231,141,157,235, 94, 92,215,188, -109,131,106,246, 53,246,221, 32, 54, 13, 62,239,237,144,156, 43, 27,188,247,200,133, 62, 94,205, 38,223,162,148, 93, 30,117,101, -117,177, 95,210,106,181, 58,161,109,187,207,173, 9, 95, 46, 59,247,219,246,102,124,134, 64,103,160,208, 27, 40, 12,121,115,163, -190,121, 94, 9, 24,134,128,178, 20, 35, 70, 12, 67,219,118,159,231,176,122, 54,218,252, 70,142,217,249,251,185,107, 78,106, 29, -139, 21,107,183, 46, 84,102, 36, 45,124, 29,226, 16, 46,115,241,157,148,147,240,220,236,121, 48, 24,208, 79,162, 94, 61, 30,181, -251,248, 77, 84, 11,168, 10, 3,251, 38,159,126,158,114,236, 62,113, 19,254,126,254,111,242,205, 82,248,150,179, 66,221, 79,234, - 2, 64,169,132,150, 64, 98, 61,183,121,135,129, 11, 58,246, 28, 10,103, 39, 39, 48, 84,215,241,220,137,221, 29, 5, 82,155,169, - 58, 85,198, 10,203,222, 24,134,252,247, 2,101,217, 50,187,151,184,187,187, 59,213,173,251,103, 56, 70,189, 94, 15, 31, 31, 31, -196,196,196,248,149,226, 94,146,185,185,185,117,216,180,105,147,115,251,246,237, 5,174,174,174, 0,128,248,248,120,143,223,127, -255,189,182,187,187,123, 98, 92, 92,220, 9, 74,105, 78, 81, 28, 6, 29, 35,100,248,224, 73, 36,178, 55,101, 4, 97,166,140, 27, - 88,195,197,205,189, 80, 75,125, 82, 82,188,104,218,216, 11,132,207, 23,230,237, 15,134, 82,150, 20, 99, 37,106, 37, 16, 8,164, -133,109,211,242,172, 27, 80,129,205,112,134,199,188,185, 89,245,186,164,212,136,160,170, 22, 88,226, 2, 5, 34,225, 79,253, 6, -141,106,212,163, 91, 23,184, 57,217,224,220,213,135, 24, 61,110,178, 78,175,213,173, 42,213, 59,146,199,227, 39, 38, 38,134,219, -217,217,185,150,253,125, 75, 42,156, 61,125,202,249,220, 31,231,103,172, 92,189,102,140,187,111, 83, 29, 75,105,254, 60,198, 94, -213, 62, 21,180,238,216,203,218,185, 82, 3,201,154,121,195, 5, 31,155, 69,171, 40,177,101,241, 67, 36,146, 42,122,125, 51,109, -188,228,219, 93, 55,113, 98,253,232,100,101, 70,146, 83,254,151,130,141,221,189,236,140,180,218,165,201,164,194,217,175, 33,225, -241, 71, 17, 30, 79, 78, 24, 34, 98, 13,108,148, 94,163, 89,148,147,252, 60,174,172, 21,192,178, 20,255,187,158,104, 89,165, 81, - 84,222,185,239,176,179,139,173, 24,185, 90, 3,122,247, 29,128, 95,127,253, 85,225,100, 35, 66,174, 70,143,229, 43, 87,102,101, -135,159,112, 14,143, 74,139,105,213,105,242,153, 87, 97,137,143, 35,227,114,247, 23,125, 17, 24, 56,219,136,177,120,239,115, 88, - 75, 5,176, 83, 8,193, 48,196,244, 34,229,119, 23,198,198,165,101,152,112,238, 42,242,161,115,171,222,214,198,206,125,207, 23, -163, 22,219,190, 72,228,131, 66,139, 80,107, 9,122, 13,158, 96, 93,209, 85, 10,185,132,103,251,127,246,206, 59, 44,170,163,109, -227,247,108, 99, 89,118, 97,233, 85, 64, 69, 17, 44,168,216,123, 47, 17,123,111,209, 24, 75, 76,140,137,198, 24, 91, 44,137, 26, -163,177,199, 88, 98,139,189, 27,123,239,137, 21, 20,197, 2, 74,145,222,217,222,203,124,127, 0,190,196, 80, 22, 53,223,251, 38, -153,223,117,157, 11,118,247,236,189,115,206,153,115,206,125,158,121,102, 38,225,101,154,207,180, 47,191,188, 33,245,172,209, 84, -158,253, 34,161,162,237,174, 90,181,106,255,158, 61,123, 58,124,241,197, 23,124,127,127,127,108,219,125, 32,176, 77,183, 65,189, -210, 51,178,252, 41,165,240,242,244, 76, 25,247,193,160,227,167, 78,157,122,153,146,146,194, 95,186,116,105,179, 35, 71,142,212, -169,204,147,169,133, 82,232,244, 22, 88,138,110,144, 57,114,125,101, 43, 52,241,243,243, 19,166,165,165,233,139,163, 12,132,144, - 87, 59, 83,226,215,176, 91,167,118,205,120, 27, 79, 39, 66,165,179, 64,108,207, 71, 98,150, 6,141, 27,134,145,159, 45,230, 6, -165,105,126, 56, 56, 98,142,151,132,118,239,221,162, 58, 60, 93, 28,176,245,199, 69, 56,118, 51,161,123,150,138,192,189,247,210, - 9, 62, 66, 94, 23, 15, 7,193,218,246,141,107,120,119,108, 20,136,187,141,107,120, 95,139,124, 22, 27, 54,120,197,167,105, 42, -254,133,252,211,159, 42, 75,191,240,112,224,234, 40,192,150,179, 47,225, 96,207,131,216,158, 7,177,176,240,111,201,227,255, 70, - 79,181,190,117,252,185, 86,203,135, 78,190,117, 62, 28, 58,120,144,239,240,161,131, 40,184, 28, 28, 56,116,188,207,174, 93, 59, - 51, 36,222, 33,155, 45, 28,238, 22,109,250,227,148, 10,247, 41, 7,240,148,218,225,203,205,143,224, 36,226,195,209,129, 15, 39, - 7, 62, 58,214,247, 0,151,243,198, 23, 30,151,143,250, 4,245,136,222,209,185, 67, 72,128, 36,248,193, 11,249,227, 15, 23,222, - 91,117, 69,214,225,243, 31, 87,214,113, 83,201, 12,188,185,211,198,241, 82,211,211, 59, 28, 56,126,181,163,111,211, 15,159,153, -141,234, 89,217, 15,246,151, 26,193, 77,121,250,123,120,149, 22,131,236,141, 42,211,195, 7,207, 82,107, 20,232,133,136, 73, 82, - 64,108,207,131,164,120,223,218,243, 32,182,231, 67, 98,207, 67,122,106, 34,242,213,220, 27,105,110,156, 14,244,202,239,149,106, -162,210, 25, 45,184,159,160, 66,213,144,134,240,241,241,133,161,199,136,170,183, 47, 29,250, 85,236, 83,251, 59,117,198,147, 89, -182,234,236, 62,113, 11, 51,166, 76,136, 36, 64, 84,209, 77, 58,124,238,146,117,141,190,153,241,201, 31,222,155,182, 96, 77,163, - 55,143,100, 57,205,233,216,239,227, 5,109,186,244,131, 50, 63, 11,191,159,219,143,110, 61, 7, 96,196,152,207,224,236,236,190, -140,111, 47,125, 96,210,201, 47,253,233,154,235, 83,187,117, 88,189,218,187,252,124,125,253,173,214,194, 89, 62, 40, 5, 90,183, -235,136,233,159,143,131,149, 82, 52, 8,111,218,177,199,208, 79, 41, 45,154, 13, 36, 55, 47, 87,253,236,233,227,206,218,172,167, -183,109,222,151, 58,157, 41, 39, 39, 7,247,239,223, 71,108,108, 44, 98, 98, 98,144,151,151, 7,169, 84,170,170,100,125,114,170, - 95,191,254,240, 75,151, 46,217,187,184,184,188,122,223, 96, 48,192,209,209, 17,195,135, 15,231,119,237,218,213, 47, 34, 34, 98, - 20, 33,100, 55,165, 84, 81,154,142, 54, 47, 46,221,201, 59,116, 67,187,246,237, 38, 2,128,200,201, 39, 97,237,182,227, 49,229, -158,107, 82,223,192,150, 45, 91,213, 0,165, 32,160,171,213,185,207, 50,203,137, 18,137,111,221,186, 21,196,229,114,121,255,185, - 7, 89,241,211,214,125,161,231,175, 63,236,191,100,217, 15,246, 78, 98, 33,114,228, 6,140, 29,209,207,230,123,176,131,119,104, -143, 86,173,218,253,250,205,130,175,121, 18,177, 24,231,110,199,227,211,207,191,212,101, 36, 61,250,129, 90,249,235,212,217,207, -178,223,242, 86,249, 78,122,198, 5, 87,145,192,177,119, 55,251,143,222,239,109,111, 48, 89, 32, 83,155,160, 55, 90, 96,177, 82, -200,213, 38, 60, 78, 86,194,221,201,238, 77,164,155, 0,240, 0,144, 3,224,238,107,175, 81,244, 63, 74,121,157, 91, 24, 30,129, - 27, 0, 3,128,146, 63, 94,252,186,172,247,139,191,255, 24, 64,237, 34, 77, 11,128, 59, 0, 10, 74, 51, 91,165, 69,185,120, 39, - 79,158,164, 17, 17, 17,175,174,248,175,191,126, 29,161,128,239, 43,150,122,128,210, 39, 40,113,111,131,151, 79,149,188,245, 27, -126,118,149,186,184,189,148, 23,228, 5, 22,253,200, 5, 91,110, 22, 60,194, 93,209,174,125,219,174, 19, 63,254, 24, 33, 65, 85, - 4, 22,139,133, 62,138, 77, 48,109,223,178,117,180,212, 63,108,149, 34,245,209,156,226, 16,100,101,123, 57, 88,172,150,212,215, - 35, 88, 22,171, 37,245,181,157,113,225,207, 59, 12,112,150,216, 97,195,233, 68, 80, 10, 16, 80, 72,197,124,236,189,146,138,132, -200,195,138,158, 13, 20,234,225, 75,230,119,236,208, 99,242,165,199, 47,116,251,179,179,117,103, 41,165,153,101,105,114, 8,192, -227, 18, 56, 57,240, 33,117, 16,192, 89, 44, 0, 41,113, 3, 43,217, 92,216,190,199,228,243,151,126,123, 57, 11, 64, 78,201,124, -168,146,154, 34,239,224, 38, 78,206, 85,246,247,159,184,212,241, 97,170, 25, 60, 46, 80,221, 91, 4, 87, 71, 1, 12,102,130,164, - 28, 99,209,153,227,140, 79,167, 45,112,157, 49,117,226, 41, 66,234,212,163,244,177,177,188,109,215,104, 52,118, 35, 71,142,228, -155, 76, 38,227,240,177,159,117,205,204,204,233,243,211,234,239,133,158,158, 94,208,232,204,136,140,121, 94,251,155,111, 22, 84, - 63,126,230,202,209,249, 95,126,244,107,247,238,221,165,251,246,237,179, 86,180, 63,255,240,132,152,149,251,227,214, 93, 7,119, -172,252, 97, 49,158,189, 44,192,150,141,235, 64, 45,230, 13, 21,132,101, 47,148,248,159,206,154, 53, 75,116,244,232,209, 42, 98, -177, 88,161,209,104,114,254, 16,143,224, 16, 94, 86,190, 6,238,142,118, 16,240, 56,240,114,177,135,167, 84, 8, 62, 23,224, 16, - 98, 41, 77,115,203,254,147, 11,173, 26, 57,142,237, 49, 12,221,250,227, 34,140,153, 52, 27,143,114,237,206,112, 28,164, 11, 63, - 25,218,127,134,135,200,210,221,215,153,227,217,177, 81, 85,136,237, 5,152, 57,121, 36,154, 70, 38,121,166,201,172,179,115,180, -220,134, 0,102,151,122,220, 57,133, 17, 44, 71, 7, 62,206,236, 90,150,173,150,231,200,139,155,228, 12,122,221, 75, 27, 67,210, - 23, 74,121,178,157,209,168, 97,253, 69, 19,199,127,200,105,213,162, 41,229,112,248,200, 85, 26, 8,165,192,231,159,126,132, 79, - 62, 26,231,157,146,158, 61,119,221,186, 13,115, 36,158,181,191, 85,101, 63,153, 95,158, 38,135, 20, 70,129, 36,246, 60, 72, 68, -133,198, 69, 98,207,131,206, 96, 1, 33,224,186, 4, 54,146,147,194, 72,110,122, 94, 82,233, 79,224,175,107,186, 6,212,189,120, - 62,193, 49,180, 96,127,193,205,196,244,152,133,145,209, 89,119, 40,165,249, 1,237,166,142, 50,154, 41, 84, 58, 51, 18,179, 52, - 48, 27, 41, 25,243, 94, 32,170, 13, 36, 33,139,183, 70,237, 32,132, 56, 21, 27,232,215, 53, 83,111, 30,208,185,135,245, 31,178, -114,205,198,187, 63, 44,154,205,205,149, 27, 96,165, 20,246,118, 92,136,236,120, 69, 11, 23, 90,181, 28,235,214,255,156,105, 6, -233, 79,175, 92, 49, 87,166,126,194, 74, 71,244,235,209,118, 47, 1,236, 8, 71,144,234, 27, 88, 53,176, 83,175,209,246,157,122, -143,132,197,108,152, 33,246, 10,189,172,206,122,122,209, 22,205,122,117,106,131, 0, 81,170,172,103, 31, 1,128,196, 43,100, 67, -104, 72,104,163,215,223,171, 89, 51,164,145, 45,199,189, 24,129,200,105,146,139,171,199,236,144,186, 13, 61,131,194,218, 17, 71, -183, 42, 72,140,187,143, 61,235,231,238,180,234, 12, 11, 46,158,220,191,104,213,150, 35,131, 59,117,239,135,173, 63,125, 63, 19, -192,165, 63,157, 71, 86,235,136,237,155, 55,249,243,237,132, 48,153,173, 48, 89,104,225, 95,179, 5,249,249, 5, 48,153,173,176, -119,112,132,217, 74, 96,178, 88, 97, 50, 91,161, 55,152,197, 31,141,140,248, 24,192,237,210,202, 89,165,118,251,179, 2,161, 48, -144,162,112,238, 90, 74, 41,184,102, 3,199,199,199,103, 55, 0, 8,133, 66, 8,133, 66, 88,173, 86, 68, 62,203,153,228, 17,218, -121, 34,138, 12,158,197,104,120, 89,144,120,163, 91, 89,219,238,237,237,221,235,117,147,165,211,233,160, 82,169,112,253,230, 93, -233,230, 29, 7,187, 39,190, 76, 13,178, 82,169,222,209, 51,168, 27,128, 94,101,237, 79, 69,230,211,143,253, 91,140,231,124,241, -201,168,154,107,182,159,184, 19,119,230,219,153,229, 85,137,234,157,103, 24,190,152, 48,160,241,146,213, 91,226,242,111,172,159, - 82,209, 49,226,241,120,252,156,156,156, 87,231,247,218,159,247, 52,142,122,150,214,119,213,202, 85,246,145,241, 74, 60, 76, 76, -199,168,206, 1,248,195, 77,160, 28, 77,137,119, 13,247, 26, 53, 66,119,175, 91,189,132, 23,151,174,195,143,135,239,224,210,175, - 27,174,103,102,223,238, 78, 51,211,181,111,114, 13,121, 91,163, 85,158,230,229,232, 92,168,116,102,232, 13,102,152,172, 20, 10, -141, 9,217, 50, 3, 20, 26, 35, 84, 90, 51, 70,117, 9, 40,245,123, 21,248, 17, 15, 66,200, 9, 74,105, 79, 20, 14, 75,101, 87, -226, 53, 8, 33, 39,138,202,245,135,215, 51,102,204,152,245,221,119,223,197, 20,175, 91,252,126,241,186,229,189, 95,226,251,110, - 51,103,206,172,183,100,201,146,197, 45, 90,180,216,251,251,239,191, 39,148,102,180,202,141,104, 21,111,204,201,147, 39,105, 5, - 79, 20, 65, 14, 78,110, 66, 39, 17, 31,213,171, 5,224,131, 89, 91,221,157, 92,189,178,237,237,120,220,211,167,207,184,230, 25, - 36,224,112,184,106,219,163, 88,181, 90,138, 68, 14, 39,151, 47, 95,142,161,189,218,136,146,115, 77,170,232,100,109,150,218, 0, -179,167, 71, 45,187,133,139,151, 72,150, 44, 93,246,201,137, 99, 86, 25,128,101,165, 55,241, 53,185,199, 37, 37,114,176, 8, 1, -181, 90, 82,243, 19,239, 52, 6,128,183,201,197, 82,233, 76,224, 22,229,214, 16, 2,104,116,102,112,185, 36, 91,246,108,255,227, -225,223, 46,236,184,115,239,249,116,202,113, 86,170,213,137, 14,148,210,212,242, 35, 6, 4, 10,141, 9, 82, 7, 62,156, 37,124, - 72,197, 2,112, 75,156,100,197,205,133, 59,247,156, 75,123,249, 50,239,110,145,201, 42, 83,147,199,229, 36, 80,139, 73, 71,169, -197,177,103, 19, 15,120, 58,219,193,199, 69, 8,161, 29, 15, 38, 51,160, 53, 88,161, 51, 88,144,148,173,133, 82, 43, 66, 88,187, - 65,213,221,124,238,233,221, 2,155, 28,205,123,121,183,127,185,230,212, 98,193,246,221, 7,107,166,167,103,245, 57,117,116,151, - 48, 71, 97, 66,116,146, 26,217, 50, 61,192,245,192,188,197, 63, 10,191,154, 50,190,239,246, 61,135, 94,118,106,211,236,101,101, -247,171, 58,251,233,206,176,150, 17, 27,122,246,236, 43,138,185,125, 10,113,247, 47, 46, 82,101,217,158,159, 69, 8,225, 28, 56, -112,192, 60,126,252,120,229,226,197,139,253,143, 29, 59, 86, 45, 39, 39,231, 62, 0,147,179,179,115,104,173,154,129, 15,206,157, - 57,237, 23,209,119, 16, 63, 53, 87, 11,169,131, 0,129,158, 14,184,121,253,172,201,206,142, 95,106,190, 73, 81,243,224,176, 42, -157,191,194,177,155, 9,221, 99,242,236,175,140,251,112,212,203,115,215,158,229,173,221,113,238,123, 63,137,233,190,189, 53,103, -237,189,198, 53,188,103,124, 58, 18,223,173,217,137,171,145,207,178,213, 28,159, 69, 25,122,243,249,249, 67,166,151, 17, 74, 47, - 52,216,142, 34, 62,212,138, 28,249,243,200,211,181,222, 81,164,122,212,185,163, 59, 57,249, 74, 19, 82,114,117, 36, 61, 95, 9, -139,149,194,217, 65, 0,179,149, 66,150,159, 75,118,237,220,129,187,119,111,114,192,229,140, 5, 48,191,220,102, 46, 82,216, 84, - 40,177,231, 23, 70,132, 68,133,127, 77, 22, 43, 66,106,214,192,166,181, 43,156,220, 61,189,208,186,109, 7,219,163,212,110,129, - 13,246,110, 91,139, 43,191, 71,181,191,186,234,199, 38, 18, 95,143, 53, 78, 85,234,252, 32,173,214, 69,167, 55, 90, 32,151, 21, -192,206,144,130,166,126, 57,112,117,176, 32, 73,225,131, 71,153,113,146,138,114,161,114, 31, 30,190,239, 81,175,223,156,131,199, - 47,125,215,173, 75,123, 60, 74, 82, 64,100,199,131,189, 29, 23,246,118, 92,240,137, 5, 43,214,111, 48, 21,200,149, 61,115, 31, - 29,205,125,131,250,121,161,232,233,183,240, 38,231, 21,228,177,115,205,156, 95,198, 77, 95,218,173,123,191,209,228,209,221,203, -179, 0, 92,180,237, 65,143,218,244,158,213,106,251, 61, 78,228,228,177,122,234,156,101,147,187,246, 28, 4, 46,151, 7,147,201, -132, 67,251,118, 98,219,143,243,158, 26, 84,121,163, 41,165, 86, 66, 92,199,239,223,185,126,208,244,185, 43, 72,189, 6, 77,155, -149,234, 39,185,100,227,251, 31, 78, 24,226,229,229,229,248,159,136, 22, 69,173,144, 58,232,209,123, 0,206,254,122, 4,143, 99, -162, 97,165,133,134,201,106,165,144, 21,228,101,154, 77,134,237,101,182,120,216,219, 7,110,221,182, 35,152,195, 33, 48,154,172, - 48,152,173,152,242,241, 7,134,143, 62,159,213,186, 71,215,118, 49,118, 92, 40,146,146, 51,156,111, 70, 61, 9,179,242, 37,254, - 31, 78, 91, 33,208,233, 45,144,107, 76, 56,181,165,108,175, 35,114, 13,108,209,160,101,223, 15, 63,250,122,147, 80,200,229, 24, -235,214,242, 79,104,215,188,110, 74,128,175,187,242,155, 37, 63, 54,189,113, 59,170,199,224,225, 31,218,143, 10,109, 68,124,221, - 68,142, 31, 12,239, 87, 95,236, 22,240,190, 58, 47,185,204, 41,211,248, 14, 46,178,128,106, 53, 53,255,137, 24,133, 28, 38, 20, -213,255,112,227, 36, 72,208,100, 62,235, 15, 0, 62,190, 1, 58,190,208, 73, 89, 9, 35, 66, 1, 96,205,207,123, 26, 63,136, 77, - 31,183,114,229, 42,135,200,120, 37,238,199,203, 33, 20,112, 96, 52, 89, 65,108, 12,106, 91, 41,119,194,236,153, 51,156, 10,212, - 22, 92,137,206, 65,204,189,203,212,160,210, 13,119, 48, 59,245, 23,123,133,188, 15,160, 6,128, 23,132,208,141,234, 44,239, 95, - 41,189, 82,233, 78, 6, 86,107,225,243,178,212,179, 70,117, 11, 79,216,131,111, 39,110, 65, 8,173, 75, 40, 92, 0,154,150, 87, -116, 79,181,213,169,169,179, 98,177,116,241, 92,172,222,124, 4,233,121, 58, 72, 45, 41,248,117,203, 66,124,241,221,110,104,245, -101,103, 53, 84,228, 71, 74, 51, 70,175, 27,174,226,255,139,215,251,238,187,239,122,190,118,108,122,150,113,204,254,180, 94,241, -247,151, 44, 89,178,184,196,231, 26, 91, 77,214, 43,163, 85,188, 81, 21,108, 92, 45, 15,159,192,223,127, 61,122,216,165, 64,101, -132,189,128,139,128,106, 53, 49,127,237,175, 30,239, 53,118, 71,174, 81,138, 61,155,126,200,215,105,148,251,108,186, 88,120,133, - 54,115,116,116, 60,117,248,208, 17, 4, 5,120, 10,118, 93,207, 79,140, 74,208,190, 10,245, 42,114, 94,218, 85,115,210,240,250, -247,235,231,112,241,210,229,207,203, 50, 90, 92,194,173,242,243,142, 67,158,142, 34, 62, 8, 1,148, 90, 51,198,189, 63,224,237, -111, 99,212,202,253,112,244, 40,144, 34,147,165,200,203,196,172,175, 62,214,137, 77,113,143,147,147,146,211, 58,247,250,226,162, - 66, 69,116, 67, 70,126,124,247,113,236,119, 5, 21,215, 98, 83,106,143,136, 30,130,194,200, 1,192, 37, 4, 86,106,205, 10,169, - 38,249,244, 79,205,133,153,250,159, 43, 50,110,202,180,103,249,142, 62, 97, 3,119, 46,159,244,179,175,151,167,155, 68, 44,162, - 18, 7, 33,169, 27, 26, 44,104,222,188,165, 93,181,144,250,130,235, 79,180, 72,206,209, 34, 33, 93, 14,161, 87, 67,222,208,142, -239, 97,231,170,105,237, 9, 33,156,215,147, 20, 95,231,252,149, 91,189, 54,175, 95, 41,204,146, 25,241, 52, 89,133,204, 2, 29, - 50, 10,244,200,204,215, 65, 34,226,163,109,239,241,194,147,191,110,236,213,169, 77,179, 53,111,178,123, 19, 18, 18, 79, 38,165, -101, 12,170, 31,222, 20, 59,127,217,214,198,197,165,186, 83, 65, 65,130,194,214,163,179,112,225, 66,187, 37, 75,150,240,214,174, - 93,171,104,222,188,185,247,204,153, 51,187,101,103,103,223,169, 90,181,106,200,217,195,219, 47, 53,108,219,167, 9,172, 70,143, - 54,237, 58, 8,132, 86, 30,206,157, 56, 97,220,191,111, 87,158, 86,171,252,168, 92,195,225, 32, 93,152,165, 34,240,240,243,139, -145,216, 89,186,240, 56,178,216,252,211,159,238, 0,112,184,198,123,147, 47, 92,190,247, 44,182,113,100,146,231,165,200,231,217, -249, 26, 99,173, 23,167,167,150,123,225,229, 18, 2, 62,151, 3, 71, 17, 15,156,162,171,170,163, 95,131,231, 32,196,163, 56,114, - 74, 64,138,254, 2,132, 32, 61,255,101,148, 13, 57, 27,132, 90, 41,240, 44, 85, 13,149,174, 48, 52, 95,197,221, 1, 57, 89,169, -248,105,205,118, 68,221,187,139,174,239,245,198,186,159,119, 97,220,251,131,116, 21,169,113, 56, 69, 17,173, 18,209, 44,137,136, - 7,128, 64,166, 54,225,208,141, 20,212,168,206,177,249,198, 0, 0,142, 18, 7,200,149, 90,112, 4,142,120, 17,121,202,225,244, -229,219, 51,231,124,187,242,203,130,140,232,228,231, 15,175, 35,196, 93,142,234,126, 70,196,100, 58,225, 94, 94, 53,132,212, 12, - 2, 71,112,215, 38,237,220,152,176,165,191,114, 14,245,108,220,176, 78,139, 64, 79,103,104, 13,150,162,168, 22, 23,219,182,238, - 64, 82, 98,234,135,185, 49, 71,163,222,133,163, 85,101,197,231,216,123, 5,127,242,240,246,197,132,126,195, 63,129,143, 95, 64, -131,202,164, 45,216,242,158,197, 70,163,101, 39,118,153, 57,109,238,242,201, 93, 35, 6,226,214,245,139,184, 31,243, 2,205,154, - 53,193,123,125,135, 66,169,200, 15, 61,176, 99, 85, 23, 0,103,121, 66,243,228,166, 45, 59, 18,171,197,130,184,167,143, 94,148, -166,165, 73,127,122, 31,128,211, 31,154,167, 60,106, 55,144, 72, 93,239,235,141, 22,164,165,165,226,183,223,175,132, 23,173,103, - 51, 66, 1, 23,231,162,178, 97, 52, 89, 97, 52, 91,209,182, 93, 23,131,128,163,111,179,104,229,214,230, 25,233, 25, 28,177,147, -187,213,213,175,182,192, 71,104,212, 63,136,151, 11,140, 38, 43,130,124,197,229,106,122,248,214, 92, 60,109,218,148,218, 92,129, - 8, 74,181,222,144,145,158,230,189,105,207,101,213,147,167, 15,253,170,120, 74,157,190, 95,181, 81,160,208, 17,100,203,245,200, - 87, 42,200,240, 9,211,125, 55,255,248,221, 8, 0, 54,207, 77, 75, 40,170,159, 60,119, 61,212,197, 81, 64, 84, 58,179, 53, 79, - 97,180, 12,239,219,225,173,234, 78,145,201, 26,191,114,197, 42,135,168,120, 37, 30,196,203, 97, 47,224,194, 78,192,129,193,100, -133, 45,167, 19, 33,132, 83,189, 94,187,143, 90, 54, 14,195,217,251,185,224,114, 57,208, 42, 11, 52, 60,228,197, 54,110,223,213, -161, 81,211,230,232,208,190, 29,158,199, 62, 11, 56,113,236, 80,167,155,191, 93,205,148,120,134, 76, 82,101, 63, 59, 82,169,122, -174,209,112, 77,118,222, 31,248,248, 85,109,213,127,232, 7,210,192, 0, 63,226,233,238, 6, 51,229, 97,252,251, 3,108, 62,243, - 11,141, 57,176,228,219,153,208,235, 13,240,112,182, 3,165,192,214, 53,243, 97, 48, 24,224,235, 38,132, 92,109, 42,243,251, 21, -249,145,178,162, 80,149,108,134, 62, 81,154,217,122,253,125, 66,200,137, 25, 51,102,204, 2, 64,103,204,152, 49,171,248,245,119, -223,125,167, 5,144, 94, 94,211, 97, 73,227,197, 43,185,113,101, 22,202,206, 46,196,221, 39,240,230,185,179,103,164, 71, 31, 88, -113,235,200, 61, 68, 52,243,129,128,199,129,131,212, 23, 15, 18,229, 56,121,120,189,236,215,189, 27,211,244,122,253,178,138,219, -154,131, 27, 59,138,157,206,254,178,115,159,213,221,205,141,243,211,185,156,248, 60,165,249, 85,147, 86,236,237, 99,214,123,103, - 55,249, 80,144, 51,246,246,246, 53, 13, 6,131, 75, 69, 7,118,235,185,151, 69, 73,188,228, 93, 92, 91, 65,184, 92,203,206, 93, - 59,225,238,100, 7,189,201,138, 25, 95,126,166, 29,213, 85, 34, 27, 62,120,104,199, 14, 61, 38, 95,226,139,131, 47,182, 12, 15, -166, 13, 27, 54,148,113,185,220, 10,245,242, 18,238,252,169,119, 69,104, 53,135,177,179,167,143,154, 93, 74,115,161, 77,137,187, -202,140,135, 55, 0,252, 33, 66, 66,106,212,176,219,125,224,215,207, 6, 14, 30, 50,199,175, 65, 95, 73, 98,134, 28, 2, 98, 68, -147,218, 62,184,124,230, 8, 77, 77,138,157, 82,145,201, 2,128,236,156,124,127, 15, 15, 47, 68, 37,168,144,150,167, 69,102,145, -201,202, 40,208, 67,169, 85,162,126,160, 47,100,114,185,255, 27,239, 95,224,200,217,179,103, 7,245,232, 51, 4,147,191, 92,208, -122,203,250, 31,162, 37,222,181,198,168, 50, 99,175,216,242,164, 72, 8,201,255,234,171,175,106,252,252,243,207,156, 17, 35, 70, -104,195,194,194,236, 71,142, 28,217,122,199,142, 29,246, 14, 14,246,218, 7,215,143,205, 25,251,233,140, 62,155, 86, 47,108, 80, - 80, 80, 64,204, 38,211,105, 99, 65,193, 12,101, 5,102, 46,249,215,153, 79, 73,157, 5,163,187,180,241, 56,230,234,192,169, 43, -164,134,161,164,206,130,125,244,241, 60,227,139,211,107,148, 97,131, 87,124,154, 46,179,206,214,113, 60, 23, 85,100,178, 0,128, -195, 37, 48,152, 45,112, 20,241,193,225,112,138, 77,188,207,182,125,167, 29, 60,164,118,224,115, 57,224,113, 11,163,157,185, 10, - 35, 62,249,160,143,205, 79, 2,102, 11,133,214, 96,134,166,232,233, 80,169,200,197,204, 47,167,226,189, 94,253, 48,246,163,169, - 40,208, 2,247, 18,148, 48,154, 76, 21,158, 20, 28,194,129, 70,111,198,152,174,129,200, 87, 25,161,214,154, 97, 48, 91,225, 96, -199, 3,159,199,129,216,158, 7, 39, 7, 62, 64,169,160,248, 98,194,231,243,117, 70,163,113,103, 57,199, 9,213,252,189,160, 53, -113,208,116,200, 15,232,220,162, 22, 98,110, 28,226, 93,189,245,176,250,231, 95,206,198,103,227,122,225,224,211, 26,112,245, 12, -132, 68, 44,130,137,114, 0,216, 54,116, 8,165,243,172, 62,161,253,135,109,248,121,235,179,111,230,206,176,151,169, 9,132, 2, - 46, 46, 93,188,128,155,183,239,173,206,137, 57,186, 19,239, 16, 62,229,120, 57, 57, 57,193,222,142, 11,131, 81,111,176, 61,117, -129,130, 2,225, 18,175,144, 13, 69, 79,252,225, 22, 43, 74,121,175, 98,163,197, 23, 73,103, 76,254,106,225,226,174, 17, 3,113, -238,196, 65, 28, 56,184,207,210,162,251,135,220, 93,219,214,163,117,231,222,104,221,117, 8, 78, 31,217, 49,149, 47,146,214, 25, -255,217,215,223,182,237,216, 3,231, 78, 30, 68, 86,102,234,114, 91,203,203,229,147,201, 29,187,244,130,206, 96, 65,155, 78, 61, -113,230,248,145, 79, 81,212,201,194,246,155,216,107,215,103,112,204, 83,167, 76,230,103,203, 12,252, 28,133, 1,169, 57, 26, 36, -102,105,240,235,222, 45,212,246,235,133,161, 73,219,250, 85,248,227,151, 94, 74,241,175,226,163,231,235,181,162,216, 23,241,161, - 99, 63, 24,197,175, 94, 51,148,147, 45,215, 35, 71,174, 71,174, 92, 15,149,206,140,154, 85,130, 57, 38, 51,105, 81,217,227,236, - 46,181,227,175, 59,158, 0, 39, 49, 31, 45, 67,223,188,163,173,213,106,253,143,201, 90, 89,104,178,162, 19,228, 16, 10,184, 16, - 10, 56, 16, 10,184, 48, 91,168, 77, 15, 46, 34,207, 90, 61, 62,153,244,177,175,193, 12,228,201, 13,224,113, 9, 60,221, 93,196, - 77, 26, 12,195,214, 31, 62, 5, 0,140,251,234, 39,140, 29, 51, 18,181,235,134, 65, 86, 80,224, 61,108, 96,143,149, 0,142,216, - 90,214, 83,231,174, 4,156,187, 22,245,213, 39,211,230, 73, 6,247,234,192,189, 31, 47, 71, 70,190, 30, 47, 98,149,149,138,188, - 1,128,217, 98, 5, 5,197,246,125, 39, 32,178,227, 33, 71,110, 4,165, 20, 11,215,238,135,163,136,143,140,130,194,230,254,242, - 40,207,143,148, 23,145,170, 68,180,177, 39, 10,115,185, 60,108,141,104,125,247,221,119, 49,223,125,247, 93,169, 17,178, 98,147, -245,198,147, 74,219,217, 73, 66,221,221,124,111,157, 59,115,202,241,200, 3, 11, 46, 63,200,195,192, 54, 85,160,202, 79,198,178, - 47, 7,231, 19, 80, 3,135,203,149,233,181,154,195, 90,173,122, 17,165,212, 88,174,201,242, 9, 9, 23,139,156, 46,172,219,244, -139,217,221,211, 19, 59,175,231,167, 22,168,205,166,255, 52, 91,153,200,189,179,155,170,155,173,166,238,218,204,184, 10, 31,111, -173, 20,130,239,214,255, 10,128,194,106,181,130, 90,173,224,219, 75,196, 30, 53, 90,100, 21, 93,232,236,121, 28,162, 43,121, 5, -160, 86,115,106, 78,124,249, 97, 80, 2, 64,234,192,199,190,171,105, 0,144,197, 85, 70, 62, 25, 62,184,176,185, 80,103,176, 87, -212,173, 81,131, 54,105,210, 68, 38, 18,137,222,248, 96, 87,182,185,208,166, 10,244,226,133, 1,192, 82,223,144, 54,253,186, 73, -234, 55,181,227, 8,208, 40,196, 7,151,207, 30,165,183,206,108, 29,167,201,122,246,139,141, 21, 17, 42,157, 9,233,121, 58,164, -229,233,144, 89,160, 67,102,190, 30,153, 5, 58, 16, 66,160, 51,188,221,240, 55,234,236,103, 7,118,254,178,185,183,222,136,161, -109,187,246,195,212,121,235, 2,119,110, 88,114, 65,228, 21,218,202,150, 68, 91, 74,169,133, 16,146,244,193, 7, 31, 52,216,179, -103, 15,183, 94,189,122,218, 39, 79,158, 56, 0,176, 2, 48, 74, 36, 14,162, 45, 63,126,119,182,105,211,166,123,211, 98,159, 94, - 2, 80, 96, 75,247,252,170,237, 63, 16,134, 58,229,143, 15, 16,183,236, 22,228,237,128, 0,177,178, 91,168,228,193, 50,207, 78, -159, 47,206,190,184, 42, 59, 67,111, 62,159,163,229, 54, 76, 83,241,109,202, 21, 52,233,117, 47,251, 15, 28, 10, 46,225,192,168, -211,188, 44,174, 92,158, 82, 59,204,223,245, 20, 18,123, 62, 28, 69, 60, 72, 68,124,180,174,227,138, 74, 92,207,168,201, 98,133, - 70,111,129, 86,111,134,206, 96,134,187,191, 11,126,222,121, 0,201,217, 90,252,122, 55, 23,207, 94, 42, 17, 92, 69, 12, 74, 43, -190, 76, 90, 45, 38,117,175, 1, 35, 28,185, 28, 2, 46,135,112,234,132,214, 66,190,202, 8, 1,143, 3,129,189, 8, 98, 33, 15, - 78, 34, 62, 4, 2, 62,178,179,179,161,215,235, 17, 16, 16, 96, 95,190, 21,164,112,148,136, 16, 92,221, 23, 70,147, 25,167,174, - 61,198,162, 41,253,209,165,109, 99, 16,190, 4, 79,245,225,112,116,117,132,149,195,129,209,108,133,193,104, 1,192, 41, 51,250, - 22, 16, 16,208, 81, 44, 22,139, 53, 26,141,242,229,203,151, 87, 50,158, 30, 78,246,172,219,119,252,153,115,151,118,246,124,175, - 11,162,162, 99,112,240,200,177,235,185,110,242,105,197,223,169, 87,175, 94,115,119,119,119, 73, 94, 94,158,226,225,195,135,119, -222,240,233,151,136,189, 66, 63,111,209,186, 61, 84,178,108,100,165, 36,218,252, 20, 93, 59,208, 17, 95,127,183,174, 81, 72,173, -144, 70, 22, 90,104,188,234, 4, 56,226,139,121,107, 26,213, 8,174,213,168,184, 67, 72,237, 0, 73,249, 38, 75,236,212,245,253, -241, 95,124,215,123,224,104, 92, 58,119, 12, 43, 22,125,185, 83, 44,245,168,237,234, 34,109, 88,175,121, 87, 92,191,112, 12,246, -142,222,112,113,243,110, 61, 98,204,164,206, 3, 71, 76,192,205,235, 23,176,122,201,172, 29, 22,189,114,183, 45,101,149,120, 5, -121, 52,108,210,118,184,163,171, 23,100,114, 37, 28, 93, 60, 81,187,126,147,225, 18,175,160,175, 84, 89,241, 57,111,122,174, 91, - 41,133,222, 72, 81,160, 50, 34, 37, 71,139,164,204, 66,163,101,181, 86, 34, 39,200, 98, 37, 18,123, 30,207,213,244, 60,224,225, -133, 75, 52,208,223,139, 44,253,246, 75,174, 17,246,200,145, 21,154,172, 28,133, 1, 57,114, 3, 84, 58, 19, 92,197, 60, 88, 45, -214, 74, 63,117, 23,168,140,112, 44,202,163,181, 88,223, 60, 55,124,253,182,125, 33, 15, 98,211,251,174, 88,177,202,225,126, 66, - 9,147,197, 47,140,102, 9, 5, 92, 88,172,214,162, 59, 77, 5, 6,155,199,159,220,167, 71,103,164,228,106, 11,123, 45,115, 8, -130,195,154,194, 93,100, 69,167, 33, 51, 0, 0,189,122, 20, 14, 95,146,144,161,198,241, 91, 57,192, 31, 19,187,203,191, 22,107, -181,220, 77,187, 78,126,126, 96,255, 94,169,206,194,195,198,211, 73,208,232,205,176, 23,112, 33, 20,112, 33, 18,112,255,144,143, - 93,177,209, 42,204,185, 75,206, 53, 65,163,211, 65,161, 53,129, 2,184,243, 92, 5,173,193, 12,185,218,132,230,161, 46,111,251, -236,115, 18, 64,196,235,134,232,117,179, 84, 34, 34, 85, 26,119, 75,106, 20,175, 95,150,145, 43,153,179, 5,160, 82, 61,184,120, -175, 59,199,146,175,237, 36,174,181,165,110, 30,183,206,156, 62, 33, 57,242,192,138, 43,209,133, 38,203,164,205,197,242,175,134, -165, 42,100,185, 29, 40,165,241,182,254,152,216,163, 78,125,145,131,195,165,239, 87,109, 52,122,122,249, 89, 15,223,146,101,203, - 53,150, 63,196, 16, 45,122, 61,135, 90,169,192, 22,147, 85,212,228, 97,156,247,105, 63, 88, 41,197,252, 85, 7,176,120,218, 16, - 72, 68, 35, 28, 8, 33, 14,106,157, 25, 83, 22,108,198,242,175, 63,116,116, 16,242, 64, 8,160, 51, 88,240,254,208,126,182, 85, - 64,157, 25, 47,110,239, 81, 41, 19, 78, 60, 41,217, 92,216,172,245,123,247,154, 53,107, 38,115,113,113,129, 72, 36,250, 79,164, -194,198,139,118,105,189, 11,179,101, 72,117,116,116,108,231,228,228, 84, 82, 79, 45,147,201,142,190, 73, 45, 84,202,114, 47,101, - 38, 61,108,218,170, 67, 47, 92, 57,123,148,222, 58,189,101, 92,101,198,232,113,113,117, 73,137,124,248,162, 54, 33,174,133, 17, -173, 34,147,101, 48, 89, 17,232,229,128,148,164, 23,112,150, 74, 83,108,213,115,240, 12,237, 67, 56,244, 35, 2,186, 85,149, 25, -123,160,200,244, 12, 19,123,135, 70,199, 60,186,191,168,231,240,201,188,174, 3, 63,230,110,248,110,210, 44,188,150,196, 90, 14, -198,103,207,158, 61,254,240,195, 15, 91,222,188,121,211, 2, 64, 67, 8, 49,113,185, 92, 7,131,193, 32,232,208,161,131,252,233, -211,167, 87, 81, 74,210,226,235,180, 25,115,208,157, 8,149,239,213, 8,110, 50, 44,208, 81,217,165, 67,155, 22,104, 81,215, 31, - 41,109, 90, 0,192,228,151, 42, 73, 72,235,137, 91,246, 85,247,168,114,106,195,182,227,139,199, 13,233, 60,197,183,215,130, 21, -233,199,231,149,155,136,154,252,248, 74,183,210,108, 60,143,203,129,163,136, 15,137,136, 7, 71, 17, 31,142,246,124,152,204,180, - 50, 79,142,212,100,182, 22, 70,180, 12,102,168,180,102, 92,186,159,133, 76,185, 1, 50,165, 17, 90,163, 5, 20,180,240,105,212, -134,171,121,118,220, 13,231, 87,199, 62,176,145,124,211,218, 31,156, 14,221, 72,125,213,163, 79,234, 96, 7, 71,135,194,222,216, -215,174, 93,131,155, 91,197, 79,251, 86,171, 21, 7,207,220,193,138,237,151,112,102,235,116,216, 11,184,168,223,103, 1, 70,247, -109, 6, 43,181,226,197,179,152,172,224, 58, 13,188, 56, 28, 17, 56,132, 64,111,178, 2,160,101,238, 79,131,193,224,150,156,156, -172,168, 89,179,166,183,159,159,223, 64, 46,151, 75,133,128,254,232,222,124,205,197, 19,187, 29,212, 90,189,197,193, 44,223, 90, - 51, 67, 27, 17, 28, 28, 12, 66, 8,117,119,119, 23, 92,186,116, 73, 21, 22, 22,230,241,134, 38,139, 35,242,172,181,122,236,196, -207, 7,214, 8, 10,194,129,221, 91, 65, 41, 57,100,235,247,119, 29,191,137,111,103,254,177,135,225, 23,243,214, 52, 90,190, 96, -242, 31,222,155, 56,115, 69,185,189, 14, 69, 66,201,180,254,195,198,227,222,157,223,177,108,193, 23,123,245,170,252,209, 38,179, -105, 80,126, 70,194,222,234,117,154,129, 26,149, 56,183,255, 7, 12, 25, 57, 78,216,181,231, 64,220,188,126, 1,139,103, 77,220, -165,145,101,127, 96,235,248, 95, 86,202,255,168, 67,183,190,124,173,222,136, 53, 75,231, 98,194,180, 69,104,222,177, 23,255,209, -253, 91, 31, 1,248,198,214,109,214, 27, 45,232, 16,230, 94,104,158, 77, 86, 28, 75,224,242, 74,171,129, 60, 46,225, 52, 12,114, -134,214, 96,134, 66, 99, 42,255, 70, 37,224,103,202,228,138,170, 63, 46,254,156,171,214,153,145, 35, 55, 32, 91,174, 71,174,236, - 63, 6, 43, 87,174, 71,142,220, 0, 62,143, 32, 54,254, 37, 56,124, 94,165,243,243, 10, 84, 38, 52,173,229, 82,120,142,190, 97, -235,136,137,231,212,236,204,213, 7,253, 87,172, 88,105,255, 32, 81,137,232, 4, 69, 81, 36,139, 11, 33,159, 3,187,162,255, 45, - 86,160,162,159,144,122,214,168, 62,234,195,113,157,156, 36, 34,164,199,101,131,199, 45, 28, 34, 70,234,233, 15,169, 80,135, 73, - 19,199,195,221,205, 25,201,185,122,172, 62, 18,139,232,199,207, 97,213, 86,110,179,215,108,220,219,125,236, 39, 95, 56,115,248, -118,216,113, 54,177,176,156, 92, 11,158,222, 58,174, 75,127,241, 80,173, 82,228, 81, 80,139,141, 1, 0, 66,205,150,194,234,182, -120,254, 12,236,221,254, 19,206, 70,102,191, 74,222,186,113,104, 57, 62,159,185, 16,185, 10, 67, 81,213, 47, 63,146,245,218,235, -156, 18,145,168, 63,189, 46, 97,142, 74,123, 77,138, 94, 27,202,208, 48,188,102,174, 12,175,189,111,120, 77,239, 65, 41, 15,255, -155, 42,108, 58,252,147, 41,114,241,172, 39,117,148,254,126,250,244,113,241,209,104,250,202,100, 25, 53,185,116,209,228, 94,169, - 10, 89, 78,215, 74,153, 44,207, 90,245,132, 98,241,213, 57, 11, 87,235,189,252,170,154, 79,221, 87,228, 41,117,150, 63,133, 69, - 4, 14, 98,139, 88,234,161,115, 14, 12, 95,193,215, 26,230,230,228, 60, 86, 87, 20,121,178, 82,138, 19,183, 51, 65,105,225, 35, -210,254,107,105, 40,122, 50,135,197, 90,216,172,114,254,126, 54,120, 69,121, 40,182,134,191,215,111,252, 73, 17, 17, 38, 87, 15, - 95, 60,255, 85,115, 97,243, 6,133,145, 44, 39, 39, 39, 56, 59, 59, 67, 34,145,192,150,166,195, 98,202,234, 93,232,232,232,216, -238,254,253,251,246, 78, 78, 78,224,114,185,208,235,245,168, 91,183,238, 27,157,232, 18,239,208, 79,154,118,236, 55,171,117,199, - 94,184,116,230, 48,189,117,102,219,248,202, 14,132, 24,209,185,229,241,111,191,157, 95,125,206,162, 31,133,142,246, 60, 60, 81, - 25,192, 33, 4,129, 94, 14,112, 19,115,112,229,232, 14,221,144, 94, 45,109, 30, 28,207,223,223,111,231,242,181,155,196,203,151, - 44,232,224,232, 23,114, 73,153,246, 44, 31, 0,212,153, 79,151, 58,120,135, 62,174,242,251,185, 83, 13,218,245,131,151,111, 80, -151, 74,132,127, 41, 33, 68, 19, 31, 31,159, 48,103,206,156,144, 37, 75,150, 80, 46,151,107, 5, 32, 92,181,106,149, 38, 46, 46, -238, 62, 10,187,230,162,162,155, 77,167, 46,117,167, 72,236, 44,205, 93, 29, 56,117,131,188, 29,208,162,110, 97,171,232,144,136, -214,240, 15, 8, 64,124,166,166, 97,190,198,202, 87, 25,184, 65,235, 54, 70,223,173,230,206, 29,103,214, 26, 30,163,130,193,100, -203,170,179,197, 9,242,197,209, 44, 71, 17, 31,214,194, 27,123,165,140,150,222,104,129, 86,111,129,214, 96,134,218, 96,129,198, - 96,129,149, 22,158, 19,132, 16, 24,205, 86,216,244,216,252, 90,221,119,114,117, 71, 80,181,194, 94,178,142,162,194,161, 30,156, - 28,248,133,125,164,221,220,224,233,233,105, 83, 84,212, 96, 44, 60,197, 13, 38,235,171,102,125,131,209, 12, 74, 41, 98, 99,159, - 77, 79, 74, 72,232, 83, 51,184,102,219, 58,245, 27,184, 58, 8, 57, 0, 80,166,209,210,104, 52, 22, 71, 71, 71, 79, 87, 87, 87, - 78, 90, 90,218, 43,243, 92,179, 97, 7,243,145,195,135,208,191,127, 63,213,147, 59, 15, 94,117,113,215,106,181,164, 85,171, 86, - 78,254,254,254, 28,189, 94,175,168,220, 62, 32, 68,236, 81,171,175,127,104,203, 69,239,127, 48,161, 86,135,206,221,113,249,226, - 57,252,122,120,207, 47,234,236,103, 54,143,156, 29, 18, 18,250,167, 94,135, 53,130,107,253,169,215, 97,213,234,193,229, 26,173, - 58,245,155, 52,163,132,135,179, 39,246, 83, 29,199, 56,177, 48,225,157,236,223,183,254,235,111,134,125, 52,179, 70,143,222,195, -240,254,200,209,224,241,184,184,114,254, 56,150, 47,152,122, 82, 37,207, 30,101, 75,154, 0, 0,144, 58,117, 4, 53, 3,170,126, - 22, 80,163, 30, 34,111, 93,199,139,216, 71, 49, 15,238,222,172, 91, 51,172, 57, 60,124, 3, 63, 35,117,234, 44,161,143, 31, 27, - 43,210, 49,232,116, 47, 71,143, 26,137,146,189, 14, 91,132,135,184,145,215, 79, 0, 0, 26,101,182,113,203, 15, 83,226,138,123, - 29, 90,141,134,151,101,233,202, 11,114, 14, 94,249,237,246,180, 62, 17,221, 57,185, 10, 67, 97, 4, 75,110, 40, 90,244,200, 45, -254, 95,161, 71,176,175, 4,207, 98, 34,173, 58,121,238,161, 74,158,151,186,209,131,186, 61, 46,174,187, 86, 43, 5, 1,116,149, - 61,191, 41,223,105,252,210,101, 43,236, 31, 36,168, 16,157,168, 40,108, 42,228,115, 11, 13, 22,159,243,202,116, 21,246,102,175, - 32, 58, 68,184,139,199,140, 26,138, 92,133, 17, 86, 43,192,227,114,138, 22, 1,146,149, 4, 41, 74, 13,114, 11,114,144,144,244, - 18,178,204, 23,224,112, 56,112,247,173, 5, 91,195,143, 22,106,231,163, 49,208,176,129, 17,109,121,135,127,207,128,131,144, 7, -189, 50, 11,167,247,253,144,163, 87, 41, 22,105, 53,170,195,218,188,184,116, 91,183,157, 67, 72,142, 66,165,243, 18,242,185, 56, -176,253, 71, 12, 26, 61,177,104,167, 20,254,153, 62,251, 91,128, 67,144, 95,160, 4, 33,164,178, 81,210,187, 21,188,126, 19,222, -133, 6, 74, 51, 87,127,120, 80, 40,251,105,148,158, 62,119,230,184,248, 70,146, 16,119,158,101, 20,153,172, 28,235,194, 79, 35, - 82,149,242,252,110,148,210,216, 74,149,128,195,233, 54,100,204,180,152,160, 90,117,244,151, 31,169, 18,101,106, 83,153,121, 14, - 45, 6,206,137,185,119,114,109, 15,185, 41,254, 99,137,111, 93,139,213,108, 94,170,201,126,182,160,140,166, 67,187, 5,171, 15, -188,106, 54,252,106,201,142,194,255, 45, 22, 88,168, 21,212, 10, 76,250,122, 61,204, 86, 11,172, 22, 11,172, 22, 10,147,133, 58, - 84, 84, 92, 79,223,170,135, 11,158,238, 15, 29,254,205,159,155, 11,157,157,157,225,230,230, 6, 55, 55, 55, 20, 27,163,183,109, - 46,116,114,114,130, 68, 34,193,245,235,215, 33, 18,137, 32, 22,139, 43,165, 91,194,100,125,220,164,125,159, 31, 59,246,254, 16, -231, 15,111,164,119,175, 29,159,160,201,122,182,217,230, 8,189,197, 66, 76, 38, 19, 34,186,182,127, 25, 21,243,252,204,236,105, - 31,117,111,217,115,130,176, 69,136, 31,116, 6, 11, 82,147, 94,224,202,209,109,186, 90,213,125,206,118,106,211,236,165,201,100, -130,197, 98,169,240, 70,174, 51, 24,115,185,124,145,120,232,208,225,252,187,119,238, 28,146,120,214, 58, 96, 33,156, 7,132, 90, -235, 19, 66,250,215,175, 95, 27, 70,147, 21, 26,141,162,160,178,219,172, 84, 42, 19,182,110,221, 90,125,212,168, 81, 14,117,234, -212,225,191,120,241, 2,203,151, 47,207, 83, 42,149, 9,182,106,156,187,246,108, 21,143, 20,196,217, 89,141,195, 2, 29,149, 93, -146, 91,183,192,208,158,173,177,247,228, 13, 92,185,126, 19, 47, 85,146,251, 42, 51,239,104,202,203,116,125, 93, 87,197,161,222, - 45,170,114, 15,108, 47, 56,228,217, 97,230, 96, 74,133,231,114,174,204, 83,219,126, 19, 7,148, 90, 19,156, 28, 10,199,123, 42, -142,108,113, 9,177,217, 17, 17, 32,225,250,205,200,122,141,131,235, 32, 42, 65,142,108,153, 30, 90,189, 25, 86, 43,133, 21, 20, -110,142,118,176, 23,112,144,156,148, 0, 43, 53, 38, 86,242,114,145,211,174,109, 59, 30, 64, 64, 8,229,241,121, 60, 80, 20,142, -175, 40, 18,137, 84,158,158,158, 54, 69,180,140,102, 51,250,119,111,134,230, 77,234,163,207,132,194, 49, 51, 47,254, 50, 3, 46, - 18, 62,246,238,220,140,228,171, 43,119, 6,181,156,120,238,209,195,152, 1, 49, 81,191, 15,127,175,145,168,161, 55, 47, 93, 80, -150,158, 74,165, 58, 68, 8,177, 19, 8, 4,221,219,182,109,235,122,232,208, 33,153,187,187,187,213, 78, 32,200,233,221,171,167, -149, 47, 16,228, 23,175,251,219,111,191,241, 39, 76,152,224, 88, 80, 80,144,156,149,149,117,147, 82,106, 42,255, 65, 48,180, 51, - 56,216, 3, 66,236, 37, 34,135,151, 45, 58, 15,245,109,210,188,153,180,111,255, 65, 16,218, 9,113,254,220, 25,172, 89,185,100, -191, 42,227,201,152,202,236,201,119,213,235, 48, 53, 57, 49, 65,163,213,135,213,107,220,158, 92, 63,119,116, 50, 33, 30, 43,185, - 66,167, 31, 58,247,159, 88, 35, 33, 93,133, 53,223, 77,135,139, 84,140,196, 23, 79,181,113, 79, 30,174, 55,233, 20,211,109, 53, - 89, 0,224,144,103, 25,208, 98,100,119, 23,189,209,130,107,151, 78,234,172,102,107,247,155, 87, 79,189,168, 82,171,137,125,189, - 38,157, 92,114,127,221,220, 31,192,222,138,116, 82,159,252, 57,130, 27, 16,210, 52,241,226,165, 11, 82,175,192,186, 92, 2, 2, -163, 94,135,156,248,187,102, 77,214, 83,133, 60,245,161, 77,189,112,243, 82,240,245,204,121,223,127,220,164,113, 99, 49,133,253, - 31, 34, 88,197, 6, 43, 87, 97,128,187,163, 29,180,138, 28,196,221, 61,163,211,228,112,203, 29,239,204,108, 80, 59,228,102,103, -189,106, 98, 83,101, 61,107, 94,222,250,185,217, 89,118,102,131,218,161,226, 91, 29, 23, 78, 98, 59, 60, 76, 76,123,149,248, 46, -228, 23,230,102,217,241,185,175,242,180,138,175, 5, 21,208, 94, 96,239,140,180, 60, 29, 8, 40,172, 22, 51,204, 38, 3,148, 10, - 5,210,210, 51,145,149,153, 5,165, 82, 6, 7,137, 11,234, 53,108, 10, 71,177, 61, 30, 92,217, 15, 74,169, 77,227, 26,154, 8, - 63,164, 73,243, 54,194, 71, 73,133,185, 88,246,124,138,227,123,150,228,169, 20,217,109,148,233,177,113,149,189, 22,155, 45,150, - 11,209,143,227,234, 86,241,169, 70,238,191,144, 99,231,207,107, 97, 40,138,108,154, 76, 22, 60, 74, 86, 35, 35, 95,131,228,248, - 39,212,106,177,252,107, 38,164,230,149, 29, 0, 4,175,126,189,218,232, 58,162, 47,126,250,105, 61,226, 19,146,172,139, 38,247, - 72, 86, 41,101,239,217,106,178, 74,206,238,173,206,124,186,116,204, 79,137,169,199,162,242, 57, 90, 67,249,243, 91,217,123, 4, -162,205,152,229,103,181,202,124, 59,139, 94,195, 59,190,115,204,158,210, 52, 11, 29, 52, 12,139,190, 24, 2,137,136, 7, 66, 8, -138,155, 11,215,125, 59, 30, 14,194,194,182,101,173,222,140, 17, 83, 86, 96,231,138,169,160, 0,134, 13,186,161, 41,171,156, 37, -154,246,170,188, 76,202, 78,235,220,235,139,139, 58,163, 80,223,179,223,168,123,141, 27, 55,150,137, 68, 34,136, 68, 34, 56, 57, - 57,193,197,197, 5,206,206,206, 21,110,123,153,131,145,150,232, 93,200,225,112,192,225,112, 32, 22,139, 33,145, 72, 32, 22,139, -203,213, 44,211,100,181,235,189,174, 83,159,177, 56,127,120, 19,189,123,237,248, 71,154,172,103, 63,219,122,140,138,154,123, 30, -244,239,223, 63,108,194,132, 9,130,121,211, 38,156, 61,121,238, 74,236,129, 19,155,122, 21, 20,200,252, 41,165,112,150, 74, 83, -134,244,106,121,188, 67,171, 38, 47, 47, 94,188,104,221,179,103,143,158, 16,242,176,162,114,230,102,103,255,114,241,194,165,249, -109,218,181,199,230,237,123,218,197, 60,126,210,238,197,139, 56,248, 7, 6,161, 90,245, 96,104,136, 11, 46, 93,189, 14,149, 44, -251, 23, 91,202,249, 90, 84,139, 20, 20, 20,252, 62,100,200,144,174, 55,110,220,224, 12, 25, 50, 68,147,155,155,251, 91,241,115, - 84, 89,209,172,146,154,191,175,239,155, 3,224,151,170,237, 63,216,159,102,148,125, 6, 96, 73, 64, 96, 0,174, 92,191,137,155, - 55,110,175,207,117, 8, 88, 48,102,196, 7,227,171,246,230,142,237,221,162, 42,215,211,197, 1,187, 55, 45,231, 30,187,153,180, - 34, 41,207,178, 25,192,183,182, 28,163, 87, 55, 14,165, 17,173,106,187,194,100,161,176,210,194, 11,174,163, 61,191,212, 11,111, -105,154, 60,131,112,204, 71, 19, 38,188,168, 87,191,225,231, 35, 62,248, 72,208, 48,200, 31,119,158,203, 0, 66,224,234, 45, 70, - 70, 70, 6,174, 29,220,100, 46, 72,123,186,158,203,181,126, 83,153,186,148,159, 20, 85,179,196,122,227,115,115,115,113,229,202, - 21, 20, 27, 44, 15, 15,143, 82,141,214,235,154,121, 89,233,191,125,187,108, 99,171,113,239,247, 67,207,246,117,113,245,238, 11, - 24,138,198,107, 42,238, 74,158,112,115,131,221,103, 67,130, 12, 31,247,175,165,208,154,236,146,190, 78,148, 95, 43,217, 43,246, -117, 77, 74,169,129, 16,114,236,217,179,103,173, 27, 52,104, 80,245,212,169, 83,249, 49,183,207, 78, 46, 89,142, 47,190,248, 66, -242,211, 79, 63, 57, 80, 74,127,211,235,245,241, 54,109, 59, 7,187, 35,239,221,115, 51,154,172,184,126,251, 65,237, 78,173, 26, -194, 74,129,187,119,239, 98,243,150,205,186,135,209,247,127, 80,103,121,127, 83,150,121, 41,107,127, 90,222,162,215, 97, 73,205, -140,180,164, 31,206,159, 60,184,179, 73,187, 94, 24, 62,233,155,111,174,156,220, 51,191, 81,155,158,156,218, 77,186, 34,242,230, - 37, 92, 56,117,230,123,163, 42,127,126, 69,243,144,150, 85, 78,161,200,225,211, 58,141,218, 33,249,101, 18, 18,227, 30,253,162, -205,139, 75,151,120,135,254,146,158,250,242,163,234,117, 91,225,198,217,189,147,203, 50, 90, 21,213,121,127, 15,209,166, 83, 39, -142, 13, 77, 77,221,224,173,214,234,132,148, 82,157,208,142,151, 41,225,148,221, 67,253,207,199,253,177, 81,236, 90,173,255,160, - 17, 31,157, 92,179,102, 37,223,203,217, 1,153, 5, 58, 40,180, 70, 40, 53, 70,112, 8, 65, 77, 95, 49, 52,202,124, 92, 61,184, -204,100, 80, 21, 12,161,244,185,177, 44, 77,137, 87,232, 66,128, 78,250, 98,226,101,216, 73,253,125,171,119,154, 85,110,180, 78, -153, 30,221,235,139,137,199, 67, 40,165,157, 36, 94,161,202,226,185, 14, 75,219,118, 66, 10,207,239,225, 29,252, 97, 52, 23,142, - 63,102,182, 2, 22,171,181, 40,202, 7,208, 87,237,249,164,130,109, 39,214,125, 39,127, 67,122,150, 12, 90,131, 9,122,131, 25, - 70,147, 5, 28, 46, 23,206, 46,206, 8,174, 22, 14,169,179, 19,178, 50,211,113,243,226, 49,196, 70, 95,253,141, 80, 44,208,100, -199, 94,180,229, 24, 9, 68,206, 33, 62,190,222,156, 12,133, 1, 34, 59, 46,238, 95, 61,101, 52, 25,244, 63,216, 98,178, 74,211, -148,229,229,175,248,124,218,151,195,182,109,221,238, 29, 86,221, 9,169,185, 90,164,230,232,160,212,153,138,140,152, 21,122, 85, - 46,162, 47,109,207,180,232,148, 43,254,245, 70,203,108,212, 41, 15,157,185,227, 54, 99,254, 50,238,243, 23,241,166,133,159, 69, -164,106, 85,138, 30,149,142,100,149, 96,235,199,213,246, 86,238, 27, 69, 67,154,124,147, 84,254,243,247,235,205,133,212, 10, 43, -165, 56,126, 59,243, 85,115,161,181, 40,243, 50,234,133,172, 82, 77,123,209,207,148,187,180,218, 44,233,211,231, 63, 20, 0, 0, -151,203,125,181, 20,231, 82,233,116, 58,195,155, 52, 23,190,158,248,110,181, 90,225,228,228, 4,145, 72, 84,233, 38, 73,177, 87, -200,208, 38,237,251,252,216,169,239, 56, 92, 56,242, 51,189,123,245,216, 68, 77,246,179, 77,149,206, 81, 40, 40,136, 33,132,196, -253,240,195, 15, 13, 55,111,222, 92,125,218,180,105,241, 59,126,156,191, 6, 0,242,242, 10,231, 0,142,138,138,162, 19, 39, 78, -212,235,116,186,132,130,130,130,200,138, 58, 64, 0,128, 54,199, 97,241,230,117, 75,234,165,164,101,244, 11,170,215, 20, 30,213, -155,194,187,102, 51, 20, 40,141,184,243, 60, 29,241, 79, 46,226,201,245,131,167, 52, 18,243,252,202,150,185, 65,131, 6,254, 28, - 14,167,154, 74,165,242,174, 83,167, 78, 3,177, 88, 28,213,160, 65,131,112, 30,143,151,122,239,222,189,164,202,104, 37, 93,217, -166,175,218,254,131,213, 47,149,142, 29,226, 51, 53,225, 47,149,142, 81, 26,161,116,106,246,197, 85,122,175,174, 63,172,160,198, -220,152, 3,219, 21,135,118,111, 90,206, 29, 49,254, 11,203, 35,185,203,103, 60,145,221,249,239, 70,135, 85,162, 89,138,147,241, -241,168, 62,255, 25,222,161, 40,146, 85,244,191, 77, 97,122,153,236,129, 28,192, 87, 34,223,186, 63, 62,250,108,194,183,245,155, -180, 26,217,246,189, 33, 28,179, 64,130,179, 71, 54,208,132,232, 75, 7,120,212, 50, 91, 99,195,108, 0, 21, 54, 7, 25, 12, 21, -154,172, 82,155,123, 82,196,237, 15,236,217, 50,250,208,145,195,223,245,237,221,199,109,221,215,131,177,108,227, 81,136, 69, 66, - 80,171, 21, 67, 58, 6, 12,124,178,167, 91, 47,127, 47,123,191, 67,151, 83,175, 77, 90,249,232, 43,141,198, 24, 91, 81, 36,166, -200, 56, 95,119,116,116,204,105,221,186,117,115,161, 80, 72,114,115,115,121,158,158,158,102,169, 84,106, 72, 77, 77,213,232,245, -250, 67,148, 82,117,101,182,211,104,178, 34, 49, 75,135, 95, 15, 31,194,131,219, 23,241,228,201, 51,229,147,199, 79,214, 18, 30, - 93,169,202,140,205,127,147,125,103, 45,181,215, 33,173,116,175, 67,139, 94,185,123,199,250,133, 29, 53, 58,253,232, 6, 45, 35, - 80,181,118, 43,142,209,100,193,195,187,151,113,249,224,202,101, 6,101,222,140,183, 57,198,190, 85,170, 7, 83,174, 29,126,191, -114, 18,212,106, 93, 15, 0,212,106, 93, 31,117,227,212, 71,205,122,140,133,171,103,213, 6,132, 16, 82,217,249, 30, 1, 64,192, -227,168, 79, 31,218,118, 36, 49, 49, 17, 79,159, 62,197,243,231,207,145,159,159,143,221,187, 19, 43,117,124,212,249,137,231, 37, -110, 65,221, 6, 12, 30,126,124,224,208,247,237,171, 7,135,113, 66,170,184,192, 77,194,195,179,231, 73,136,189, 23,109,125,118, -231,148,206,168,200,238,171,201, 79, 44,211,248,137, 61,234,120, 17, 14,157, 81, 60,119, 97,139, 22,173, 66,190, 92,244, 93,115, - 55, 15,207, 82,175,227,121, 57,217,118,211, 39, 29, 11,185,121,235,119,155,230, 58,180, 90, 44,121,227, 71, 15,177,114, 11, 39, - 10,197,171, 56, 53, 41, 60,216,133, 15, 83,133,239, 83,171,185,194, 8,254, 7,253,218,192,108,181, 66,173, 53, 66,161,214, 67, -174,212, 33, 35, 59, 15, 15,162,163,113,245,248, 49,188,120,246, 32,193,100, 48,156,227,112,200, 65, 77,230,179,171,149,107,105, -226, 85,119,115,117, 69, 66,190, 10,246,118, 60, 36,197,222,211,171, 21,242, 93,111, 90,143, 52,185,177, 25, 98,175,144,174, 67, -134, 12, 61,211,177, 91,111,105,147,150,157, 29,220,157,156, 33,224, 81,196, 37,166, 35,242,183, 51,234,248, 7,215, 20, 38,131, -170,251,187,152,245,229,127, 25,155,122, 29, 26,245,234, 94,195,250,180, 59,204,229,242,236,172, 86,179,222,104,208, 15,120, 27, -147,245, 87, 65,169, 37,117,244,176,126,127,120, 54, 48, 91,169,104,216,160,179,218,146,207, 10, 38, 11,117, 24, 54,232, 55, 77, -225, 5,164,236,196,190, 87, 77,123,123,207,167,190,124,153,119, 55, 63, 95,127,249,109,123, 2,150,156,187,176,156,222,133,234, -208,208,208, 87,230,138,203,229,194, 98,177,216,124, 33, 18, 8, 69,227, 58,246,254,144, 92, 56,250, 51,189,115,229,232,199,154, -236,216,141,111,209,206,108, 4,112,155, 16,242,104,246,236,217, 77,188,188,188,188,230,206,157,107,175, 80, 40,248,235,214,173, -211,229,230,230,102, 42, 20,138,155,148, 82,173,237,154,145, 38, 0,253, 37, 94,181, 58,208, 67, 63,119,113,118,247,235, 42,245, -168, 82, 67,150,147,150, 32,207, 73, 63, 7,224, 66,209, 64,145,149, 34, 60, 60, 60,136,195,225, 12, 1, 80, 79, 44, 22,215,148, - 72, 36, 66, 74,105, 40, 33, 36,198,106,181, 70,215,169, 83,231, 4,128, 74, 29,191,164, 43,219,244,109, 63,222,178, 39, 95, 99, - 21, 24, 56,130, 61, 73, 87,182,233, 1, 32,235,220, 52, 13,128, 95,189, 58,204,232,127,236,102,210,154,152, 2,233,228,236,203, -139,143, 85,182,204,178,148,251, 53,223, 85,253,215,166,199,164, 2, 24, 45,246, 10, 89,254, 48,234,230, 60, 66,193,183,192,188, - 80,147, 21,119,239, 93,232,243,249,124,157,159,159, 95,169,189, 11,133, 66,161,174,252, 99,126,197, 12, 96, 51, 33,237,183, 31, -222,191,125,244,209, 99,191,126,215,182, 83, 95, 55,251, 42, 85, 80,205,147, 96,251,140, 70,147, 47, 70,229,220,233,253,229,181, -159,226,211,117,209,148,210, 74,229,195, 40,149,202, 88, 66, 72,129, 74,165,234, 67, 41, 77, 33,132,248, 23, 20, 20,220, 55,153, - 76, 15, 43,109, 8,172, 24,222,162, 69,211,221,132, 16, 30, 53, 91,151,222,228,115,247,232, 50,158,164,190,137,177, 40, 73, 88, - 53, 39, 76,153,187,186, 81,141,154,181, 26, 21,207,117, 88,183,170, 35, 38,124,181,188, 81,213,234,193,141,254, 51,255,161,164, -162,115,146, 18, 66,198, 28,222,178,244, 90,212,173,203,179,220,125,170, 86,205, 76,141,127,146,242,252,254,183,102,173,252,240, -219, 30,231,196,231, 49, 43, 55,255,240,213,180,140,180,132,205,234,236,216, 71, 0,160,206,142,125,228,224, 85,235,235,220,204, -212,105,121,217,241, 63,188,233,190, 80,171,213,233,187,118,237,114,110,213,170, 21,199,203,203, 11, 57, 57, 57,184,124,249,178, -213,106,181,166, 85, 86, 75,149, 23,127,153,144, 26,174,191,108,252,113,169, 64,236,216,195,108, 54,251, 82, 10,240,120,188, 12, -131, 70,113, 70,201, 17,127, 73,243, 19, 43,168,151, 86, 2,128, 83, 60,119,161,213,106, 37, 75,215,108, 79,226,219, 59,150, 58, - 63,162, 73,167,116,176, 90,173, 54,207,117, 88,240,242, 94,141,119,118,179,166,116, 65,131,198,205,103,153, 76, 70, 29, 10,243, -197,116, 0,116,148, 34,143,195, 33, 87,185, 86,211, 89,249, 91, 60, 76, 17, 2, 39, 74,120,112, 20,241, 64, 64,160,146,231,211, -202,228,100,149,122,188,179,158,197, 16,210, 62,240,180, 97,255,168, 75,231, 79, 13,178, 88, 44,213,138,106, 78,162, 94,171, 62, -160,202,112,249,133,210,187,102,252,243, 57, 89,108,182,120,229,156,216,177, 40,156,219,231,127,154,188,132, 59,141,223,165, 94, - 70, 86,254,246,110,125,167,209,196,164,236, 59,201,153,250, 95, 74, 78,171,243,182,154, 41, 41, 57,151,139,154, 11,245,127,142, - 80,188, 89,239,194, 87,198, 88,167,253,126,213,236,161,208,105,213, 59, 52,217,177,219,223,141,137,165, 90, 0, 87, 9, 33,210, -143, 63,254, 56, 92, 34,145,240,115,115,115,111, 83, 74,229,111,170,169,202,138,189, 12,224, 50,128, 25,239,162,140, 81, 81, 81, -241, 13, 27, 54,220,201,225,112,170, 81, 74,189, 40,165,210, 34, 35,155,203,227,241,210, 30, 63,126,156,246, 70,219,174,119, 60, -173, 50,112,131,205,212,229,204,159,204,135,155,231,249,151,249,150,159,185, 98,251,255,153, 28, 3,117,214,179, 24, 0, 3,222, -181,110,121,227,100,217, 94,143,254, 99,184,174,156,220, 54,154, 99, 39, 93,216, 41, 68,167,233,250,121,218,183,215, 31,230,220, -166,148, 42,223,162,142,230,216,217,217,105, 9, 33,254, 2,129, 64,107, 48, 24,162,223,104,255, 21,154,124,143,119,185,239,172, - 32,247, 26, 53,106, 92,169,245,109,136,228,109, 47, 90,222, 41,170,204,167,223,162,168,249,251, 15, 17,138,172,216,133, 0, 22, -190,141,246,221,187,119,143,255,240,195, 15,242, 53,107,214, 4, 88, 44, 22, 7,131,193,160,209,106,181,137,169,169,169,191,191, -217, 49,127, 97, 0,240, 89,209,242, 6, 81,151,167,153, 18,175, 90,171, 91,182,104,249, 89,225, 3, 58, 93,157,120,117,245,148, -242,190, 35,241,170,165, 45,185,126,121,115, 29,190,211,227,146, 29,187, 30,192,250,191, 46, 82, 97,205, 25, 62,176, 15, 80, 52, - 48,183,213,108,206,121, 39,178,133,231,252, 22,188,225, 36,233,255, 4, 40,165, 25, 0, 54, 21, 25,102,250,151,253,144,173,249, - 42, 76,147,105, 50,205,127,151,166, 45,179, 19,176,253,201, 52,255, 74, 77,145,111, 29,127, 0,176,101,210,245,178,214,103,251, -147,254,107, 18,218,109,216, 31,227, 75, 49, 91,182, 13, 88,202, 96, 48, 24,127,193,211,158,149,237, 5,198,127, 19, 91, 13,214, -155,174,207,248,215, 93,211,202,204,137, 38, 40,156, 5,187,180, 47,217,236, 84, 9, 33,157,223,160, 80, 23,152, 38,211,100,154, - 76,147,105, 50, 77,166,249,239,210,172, 72,251,239, 24, 41, 43, 37,162,117,178,168,249,176,112, 96,182,191,106, 1,208,153,105, - 50, 77,166,201, 52,153, 38,211,100,154, 76,243,223,180, 0, 24, 95,252, 63, 7, 12, 6,131,193, 96, 48, 24,140,191, 4,150,163, -197, 96, 48, 24, 12, 6,131,241, 22,148,214,116,200,140, 22,131,193, 96, 48, 24, 12,198, 59,160,188,100,120,214,116,200, 96, 48, - 24, 12, 6,131,241, 22, 20, 71,180, 8, 33, 62,132,144,241, 37, 35, 92,204,104, 49, 24, 12, 6,131,193, 96,188, 3, 40,165, 25, -175, 71,183, 8,165, 20, 39, 79,158,164, 17, 17, 17, 4,192, 31,254,103, 48, 24, 12, 6,131,193,248,255,224,239,236, 69, 8, 33, - 62, 0, 34, 74,110, 78,241,240, 14,156,146, 27,200, 14, 51,131,193, 96, 48, 24,140,255,166,217,250, 59,150,187, 56,146, 85, 98, -121, 53,105,246, 43,163, 21, 17, 17, 65,152,217, 98, 48, 24, 12, 6,131,241,223,226,159,232, 69, 56,175,111, 32, 59,204, 12, 6, -131,193, 96, 48,254,155,102,235,159,180, 61,108,120, 7, 6,131,193, 96, 48, 24,140,183,160,188, 28, 45, 82, 52, 84, 60,131,193, - 96, 48, 24, 12, 6,227,205,140,214,248,146,189, 13, 75,190,102, 17, 45, 6,131,193, 96, 48, 24,140,119, 96,182, 74,125,159, 69, -180, 24, 12, 6,131,193, 96, 48,254, 26,254,210, 1, 75, 9, 33,157,153, 38,211,100,154, 76,147,105, 50, 77,166,201, 52,255,201, - 20,143, 8, 95,244,255,248,162,156,173,191,222,104, 49, 24, 12, 6,131,193, 96,252, 11,136,160,148,110, 42,145,155, 21,193,140, - 22,131,193, 96, 48, 24, 12,198, 59,164,180,201,165,153,209, 98, 48, 24, 12, 6,131,193,120,135, 6,171,228,107,102,180, 24, 12, - 6,131,193, 96, 48,254, 34,152,209, 98, 48, 24, 12, 6,131,193,248,139, 32, 0, 74,237, 57, 64, 41,189, 96,179,200, 27,244, 62, -168, 72,159,105, 50, 77,166,201, 52,153, 38,211,100,154,255, 60,205,138,180, 43,227, 63,254,103,204,212,127, 70,134, 63, 89,244, -247, 63,205,135,148,210,191,108, 1,208,153,105, 50, 77,166,201, 52,153, 38,211,100,154, 76,243,159,188, 0, 24, 95,242,111,201, -133, 53, 29, 50, 24, 12, 6,131,193, 96,188,125, 84,171,228, 56, 90,175, 70,137,103, 83,240, 48, 24, 12, 6,131,193, 96,188, 5, -165, 13,235, 80, 12,139,104, 49, 24, 12, 6,131,193, 96,188, 5,175,207,115, 88,242, 53, 51, 90, 12, 6,131,193, 96, 48, 24,127, -129,225, 98, 70,139,193, 96, 48, 24, 12, 6,227, 29,154,172, 63, 69,183,138,178,228,113,242,228, 73, 26, 17, 17, 65,216,174, 98, - 48, 24, 12, 6,131,241,223,224,159,232, 69, 56, 37, 55,236,228,201,147,148, 29,102, 6,131,193, 96, 48, 24,255, 45,147,245,119, -244, 34,132, 16,159,226,222,134, 69,139, 79,241,103,172,215, 33,131,193, 96, 48, 24, 12,198,219, 17, 81,178,231, 97, 81,243,225, - 38,102,180, 24, 12, 6,131,193, 96, 48,222, 1,165, 37,194, 3, 44, 71,139,193, 96, 48, 24, 12,198,255, 8,255, 68, 47,242,202, -104, 49, 24, 12, 6,131,193, 96, 48,222,192, 76,149, 18,205, 42,110, 74,100, 70,139,193, 96, 48, 24, 12, 6,227, 29, 25,174,215, - 71,137,103,227,104, 49, 24, 12, 6,131,193, 96,252, 5, 38,235, 47, 55, 90,132,144,206, 76,147,105, 50, 77,166,201, 52,153, 38, -211,100,154,255,116,147, 85,252,151, 77, 42,205, 96, 48, 24, 12, 6,131,241, 14, 97,147, 74, 51, 24, 12, 6,131,193, 96,252, 69, -176, 73,165, 25, 12, 6,131,193, 96, 48,254,159, 13, 23, 51, 90, 12, 6,131,193, 96, 48, 24,239,208,100,189,110,182, 88,142, 22, -131,193, 96, 48, 24, 12,198, 91, 80, 94,142, 22, 1,208,185,140, 47, 93,168,132,139,235,252, 6,133,186,192, 52,153, 38,211,100, -154, 76,147,105, 50,205,127,151,102, 69,218,149,241, 31,255,171,252, 97,168, 7, 74,233, 95,182, 0,232,204, 52,153, 38,211,100, -154, 76,147,105, 50, 77,166,249,111, 90, 0,140, 47,254,159, 53, 29, 50, 24, 12, 6,131,193, 96,188,101, 4,171,172,207,152,209, - 98, 48, 24, 12, 6,131,193,120, 11,216, 56, 90, 12, 6,131,193, 96, 48, 24,127, 17,132, 16,159,162, 17,225,139,255,134, 51,163, -197, 96, 48, 24, 12, 6,131,241,110,136, 40,138,106, 21,255,101, 70,139,193, 96, 48, 24, 12, 6,227, 93, 81,214, 56, 90,132, 82, -138,147, 39, 79,210,162,215,237, 35, 34, 34,174,178,221,197, 96, 48, 24, 12, 6,227,255,147,127,170, 23,121, 21,209,138,136,136, - 32, 0,174,176, 67,205, 96, 48, 24, 12, 6,227,191,193, 63,209,139,112, 94,115,146,237,217, 97,102, 48, 24, 12, 6,131,241,223, -224,159,232, 69,120,175,185, 72, 6,131,193, 96, 48, 24,140,255, 10,127, 87, 47, 66, 8,241, 1, 16, 1,224,100,209,223, 87, 67, - 62,176,113,180, 24, 12, 6,131,193, 96, 48,222,210, 35, 82, 74, 55,253, 97,234,157, 98, 19, 86, 52, 84, 60,131,193, 96, 48, 24, - 12, 6,227, 13, 40,109,100,248, 98,195,197,140, 22,131,193, 96, 48, 24, 12,198, 95, 4,107, 58,100, 48, 24, 12, 6,131,193,120, - 75, 74, 70,181, 74, 54, 31,114,254,226, 31,237,204, 52,153, 38,211,100,154, 76,147,105, 50, 77,166,249, 79, 55, 89,148,210, 77, -197, 75, 73,211,197, 70,134,103, 48, 24, 12, 6,131,193,248,139, 96, 77,135, 12, 6,131,193, 96, 48, 24,111,193,235, 81,172,146, - 77,135,204,104, 49, 24, 12, 6,131,193, 96,188, 3,179, 85,218,251,172,233,144,193, 96, 48, 24, 12, 6,227, 45, 40,109,120, 7, -102,180, 24, 12, 6,131,193, 96, 48,254, 98,195, 69, 0,148,218,115,128, 82,122,161, 18,194,149,238,125, 80,145, 62,211,100,154, - 76,147,105, 50, 77,166,201, 52,255,121,154, 21,105, 87,198,127,252, 47, 27,172, 87, 77,137,148,210,191,108, 1,208,153,105, 50, - 77,166,201, 52,153, 38,211,100,154, 76,243,223,186,176,166, 67, 6,131,193, 96, 48, 24,140,191, 8,155,141, 22, 33,196,131,207, -231,207,114,112,112,248,201,193,193, 97, 35,159,207,255,129, 16,226, 82,217, 31,148, 72, 36,147,125,124,124,158,250,248,248,164, - 6, 6, 6,158,114,114, 18,127, 94,195,158,180, 37,132,240,223, 65,232,142, 67, 8, 9, 33,132,124,238,224,224,240, 68, 36, 18, - 37, 17, 66,118, 18, 66, 62, 39,132,184,191,141,246, 66, 63, 50, 32,230,243,190, 71, 23,250,145, 1,175,253,102,132,183,183,247, -117, 66, 72,215,119,117, 80,134,137, 73,231, 65, 18,146, 60, 72, 66,146,135,137,223,124, 80, 56, 39, 39,167,145,190,190,190, 55, -221,221,221,211,124,125,125,127, 19,137, 68, 3, 43,185, 63, 61,189,189,189,151, 5, 4, 4,196,250,249,249,173, 42,154,157,252, -127,150,182,246,164, 77, 11,123,146,211, 82, 72,148,173,133,228,167,150, 66,210,165, 43, 33, 14,111, 88,151, 90, 19, 66, 14, 74, -165,210,251,124, 62,255, 4, 33,164,127, 81,253,234,207,231,243, 79, 72,165,210,251,132,144,131,132,144,214,111, 88, 79,151, 17, - 66,210, 8, 33,139,139, 94,127, 26, 16, 16,160,108,208,160, 65, 82,131, 6, 13,182, 5, 7, 7,191,111,171,158, 88, 44,238, 18, - 16, 16,112, 40, 48, 48, 48,169,101,203,150,249, 85,170, 84,121,230,239,239,191,221,222,222,190, 61,187,196, 49, 24, 12,198,127, - 25, 27,194,131,189, 0,124, 7, 96,109,116,116,116, 36,165, 52,146, 82, 26, 25, 29, 29, 29, 9,224, 39, 0, 75, 80, 70, 8,241, -245,247,221,220,220, 22, 44, 92,184, 80,151,145,145, 65,115,114,114,104,108,108, 44, 93, 57,231, 43,107, 55, 87, 30, 13,242,112, -209,248,248,248,188, 8,172, 82,101,111, 93, 9,231, 43, 0, 53, 42, 19,174, 4,224, 34, 18,137,110,207,153, 51, 71,117,253,250, -117,149,193, 96, 80, 89,173, 86, 85,122,122,186,234,194,133, 11,170, 86,173, 90,169, 0, 76, 1,192,125,147, 16,232, 55,190,184, - 74,183,124, 77,191,241,197,213,146,239,135,134,134, 62,182, 90,173,116,192,128, 1,122, 0,126,111, 19, 86,245, 3,236,235, 58, -193,121,160, 4, 89,230,237,223, 82,186,110, 26, 29, 40, 70,242,155,104,122,122,122,254, 58,121,242,100, 69, 90, 90, 26,213,235, -245, 52, 57, 57,153, 78,152, 48, 65,238,233,233,185,203,198,253,233, 22, 22, 22,150,117,243,230, 77,171, 76, 38,163, 87,174, 92, -177,214,171, 87, 47, 11,128, 79,101, 67,202,158,158,158,155,124,125,125, 79, 85,102,241,244,244,220, 92,217, 99,212, 76,136,100, - 99,228,101, 74,239,158,163,199, 6,180,160, 43, 27, 87,161,253, 93,237,100,173,237,240,105, 59,128, 87,137,186, 52,168, 93,187, -118,234,135, 15, 31, 90,242,242,242,232,227,199,143,173,227,198,141,211, 1,136, 25, 55,110,156,238,241,227,199,214,188,188, 60, -250,240,225, 67, 75,187,118,237,212, 0,198,218, 90,206,162,135,155,173,243,231,207,167,148, 82,186,112,225, 66, 90,191,126,125, -218,177, 99, 71,170, 82,169, 40,165, 52,137, 82,186,205,108, 54,143,182, 69, 83, 42,149,142,156, 60,121,178, 74,163,209,208, 98, -172, 86, 43,149,201,100,116,237,218,181,106,111,111,239, 83, 0,220, 89,243, 4,211,100,154, 76,147, 53, 29,254,165,169, 82, 62, - 0,198,151, 88, 94,221, 43, 43,250,226,176,175,190,250,170,216, 84,157,110,221,186,245,157,209,163, 71, 71,142, 30, 61, 58,178, -117,235,214, 87, 0,156,189,119,239, 94,228,244,233,211, 35, 1, 12, 43,239, 64, 0,112,105,217,178,165, 44, 51, 51,147, 6, 7, - 7,211,170, 85,171,210,204,204, 76, 74, 41,165,119, 7, 53,162, 23,107,131,166, 92, 59, 77,207, 29, 57, 72,199,249,240,104, 27, - 31,169,201,199,219, 59,207,221,221,125, 17,138, 38,191, 46,235,224, 2,232, 87,187,118,109,101, 76, 76,140, 42, 46, 46, 78,181, - 96,193, 2, 85,199,142, 29, 85, 97, 97, 97,170,254,253,251,171,214,172, 89,163, 50, 26,141,170,205,155, 55,171,156,156,156, 98, - 94, 55, 91,111, 99,180,120, 60,222,234,232,232,104,250,226,197, 11, 10, 96, 89, 89,154, 0,164,206,206,206,221, 93, 92, 92,166, - 56, 59, 59,119, 7, 32,165,148, 34, 24,144, 52,144, 34,224,211, 6, 65,161, 39,134,117,174,177,182,115,147, 70, 3, 29, 57, 50, -211,143,211, 40, 29, 16,240, 70, 70, 75, 42,149,142,252,252,243,207,149,122,189,158,106, 52, 26,170, 82,169,168, 70,163,161, 74, -165,146, 14, 27, 54, 76, 97,111,111,223,175, 34, 77,119,119,247,111,175, 93,187,102,206,204,204,164,215,174, 93,163,167, 78,157, -162,235,214,173,179,122,122,122,174,168,236, 9,232,237,237,125,254,220,185,115,145, 81, 81, 81,145,183,111,223,142, 52,153, 76, -145, 70,163, 49,210,104, 52, 70,158, 56,113, 34,242,240,225,195,145,251,246,237,139, 52, 24, 12,145, 6,131, 33, 82,175,215, 71, - 86,175, 94,253, 76,101,143, 81, 83, 33, 82, 12,215,143, 81,186,226, 19, 42,255,126, 34,149, 77,237, 65,179, 39,180,165, 63, 53, -169, 66,219,138,112,188,100, 61, 42, 79,147,207,231, 95, 77, 74, 74,178,206,156, 57,211, 80,167, 78, 29,249,152, 49, 99,116,122, -189,158, 82, 74,169, 94,175,167, 99,198,140,209,213,169, 83, 71, 62,115,230, 76, 67, 98, 98,162,149,199,227, 93,168,132,209, 90, - 82,108,178,174, 94,189, 74, 75,162, 82,169,104,199,142, 29,147,234,215,175,191,173, 90,181,106,195, 43,210,148, 72, 36,125,102, -204,152,161,162,165, 96, 50,153,168, 82,169,164,137,137,137,214,170, 85,171,166, 3,112, 99, 23,115,166,201, 52,153, 38, 51, 90, -127,153,209, 26, 95,214,235,114,119,226,244,233,211, 35, 41,165,145,179,103,207,142, 44,138,108, 9, 0, 72,138, 22, 30,128,161, - 51,102,204,136,164,148, 70,126,245,213, 87,145, 0,122,149, 99,180,122, 29, 56,112,192,184,106,213, 42,234,229,229, 69,189,189, -189,233,234,213,171,169,213,106,165,153, 39,118,209,139,181, 65,159,204, 26, 69, 41,165, 52,118,209, 36,122,177, 54,104,252,250, -111,232,136, 17, 35, 52, 14, 14, 14,195,202, 49, 48,174,141, 26, 53, 82,106,181, 90,213,246,237,219, 85, 14, 14, 14,119, 1,212, - 1,192, 71, 97,175, 74, 9,128,247,235,212,169,163,120,244,232,145,106,207,158, 61, 42, 0, 11,108,140,108,212, 0,208, 65, 44, - 22,247,159,225,199,143,163, 91,190,166, 51,188,240, 16, 64, 61, 0, 30, 69,235,248,126,245,213, 87,148, 82, 74,253,253,253,175, -149,177,237,210,176,176,176,175,226,226,226,230,153, 76,166,121, 81, 81, 81,243,106,213,170, 53,179,119,117,159, 22, 71,135,117, - 9,151,127, 51, 49,156, 46,159, 26,246,195,123, 77, 59,239, 29,210,126,216, 7,213,220,175,143,241,180,215, 12,150,114,149, 67, - 29,254,160, 99, 83,197,246,243,243,187,157,156,156,252,202, 92, 41,149, 74,154,150,150, 70, 19, 18, 18,232,245,235,215,169,143, -143,207,197,138, 52,189,189,189, 31, 39, 39, 39,211,245, 43, 87,210, 1,245, 66,105, 91,103, 71,218,206,197,145, 54,150,216,171, -107, 3,141, 43,107,180,238,223,191, 31, 9, 32, 18, 64,100, 94, 94, 94,100, 94, 94, 94,100, 65, 65,193,171,247, 0, 68,202,229, -242, 72,185, 92, 30,105, 48, 24, 34,131,130,130, 42,109,180, 90,217,163, 85, 51,123,228,183, 16, 66,219,203,207, 61,125, 98,117, -119,203,173, 97, 45,104,193, 39, 29,233,170,112, 63,218,218, 14,159,218,120,220,123,217,217,217, 93, 1, 48, 13, 0, 23,192,168, -238,221,187,107, 40,165,180,123,247,238, 26, 0,163,138,222,255,156,199,227, 93, 0,208,221,150,114, 2,224,212,172, 89, 83, 93, - 28,201, 2,240,123,205,154, 53,213,245,235,215,167,245,235,215,167,254,254,254, 74, 0,163,108,189,160,213,168, 81, 35, 86,171, -213,190, 50,128, 50,153,140,166,167,167,211,248,248,120, 26, 19, 19, 67,239,222,189, 75,147,146,146,232,254,253,251, 45,206,206, -206, 39,217,197,156,105, 50, 77,166,201,140,214, 95,103,180, 94, 95,254,100,180, 78,156, 56, 65, 95,251,210,247,247,238,221,139, -156, 49, 99, 70,228,235, 78,237,117,241,217,179,103, 23, 71,189,190, 43,231,230,191, 57, 54, 54,150,142, 26, 53,138,134,132,132, -208,144,144, 16, 58,122,244,104, 42,151,203,169,234,249, 35,122,177, 54,232,221,193,141, 41,165,148, 42,159, 68,209,139,181, 65, - 35, 71,180,164, 15, 30, 60,160, 85,170, 84, 57, 87,206,239, 31,255,237,183,223,114,118,237,218,149, 9, 96,103,145,193,106, 14, - 96,181, 72, 36,218, 90,212, 92, 88, 21,128, 75,112,112,112,190, 70,163, 81, 13, 24, 48, 64, 5, 32,160, 28,205,118, 33, 33, 33, - 47, 54,111,222, 76,179,179,179,105,126,126, 62, 93,218,170, 22,165, 91,190,166, 11, 27, 87,181,174, 95,191, 94, 63,109,218, 52, -181,171,171,235, 9, 0,190, 3, 6, 12, 48, 83, 74,105,219,182,109,179, 74,211,115,118,118,238, 30, 23, 23, 55, 79,167,211,205, -147,201,100,243,242,243,243,231, 29, 59,122,116, 94,183,122,181, 70,201,191,153, 24,126,116, 88,151,240,247,252, 92,250,175,232, -218,228,163,180,153, 99, 7,204,110, 89,231,137,110,201,103,151, 7, 85,247, 90,246, 38, 7,220,195,195, 35, 67,175,215, 83, 0, -127, 90, 94,188,120, 65,221,220,220,146, 43,210,112,117,117,157,253,249,208, 33,150,126, 85,253,232,139, 85,115,168,233,252, 30, -106, 58,181,157, 62,255,126, 42,237,237,237,174,104, 46,224,204,176,181, 60,222,222,222,231,111,223,190,253, 7,163, 85, 80, 80, - 80,170,209, 82, 40, 20,145, 6,131, 33,178,102,205,154,103,222,182,226, 55,183, 67, 80, 59, 17,247,110,212,168, 54, 52,103, 98, - 71,218, 93,202, 79,122,139,147,104, 40,128, 43, 0, 70, 84,242,123, 28, 0, 75,138, 13,213,247,223,127, 79, 41,165,180,102,205, -154,106, 0,156,183, 40,143, 52, 52, 52, 52, 97,236,216,177,230,218,181,107,103,183,106,213, 74,118,231,206, 29,122,245,234, 85, -122,234,212, 41,122,240,224, 65,250,232,209, 35,154,150,150, 70, 99, 99, 99,105, 68, 68,132, 12, 64, 59,118, 65,100, 11, 91,216, -242,191,188,188,238, 69,254, 49,189, 14, 79,158, 60, 73, 35, 34, 34,200,201,147, 39,105, 81,178,174, 20,128,125,227,198,141,115, -150, 44, 89,178,188,104, 14, 31, 82,159, 71, 6,117,114,224, 63,232,228,192,127, 80,159, 71, 6, 17, 66, 8,165,116,211,162, 69, -139,190,173, 95,191,126, 6, 0, 17, 33,196,187,140, 92,176, 54,110,110,110, 72, 78, 78,134, 84, 42,133, 84, 42, 69,114,114, 50, - 40,165, 48, 83,192, 68, 1,189,209, 8,173, 86, 11,157,149, 66,107, 5, 20, 42, 21,188,189,189, 97, 52, 26,131,202, 72, 42,110, - 48,120,240,224,160,176,176,176,156,233,211,167,167, 3, 24, 11, 96,235,135, 31,126,120,254,247,223,127, 15, 83,169, 84,249, 49, - 49, 49,186,122,245,234,117, 7,224, 29, 23, 23, 55,114,237,218,181, 24, 53,106, 20, 0,180, 43, 67,179, 94, 68, 68,196,169, 71, -143, 30, 5,141, 24, 49, 2, 87,174, 92,193,210,165, 75,145,155,155, 75, 1, 64,175,215, 83,139,197, 98,108,217,178,165,113,213, -170, 85, 77,219,182,109,123,187,122,245,234, 92, 0, 72, 72, 72,120, 94,134,102,173,192,192, 64,232,245,122,228,228,228,224,209, -163, 71,112,148, 74, 17,157,158,235,213,126,197,250,188, 89, 71,207,243,135, 54, 13,115,157,210,165,149,126,241,185, 43,193,117, -124,189,188, 12, 70,147,119,108, 70, 86,250,155,228,221, 9, 4,130,228,220,220, 92, 24, 12, 6,104,181, 90, 40, 20, 10,228,229, -229, 33, 55, 55, 23,233,233,233, 16, 8, 4, 47, 42, 76,164,207,207,191,150,240,219, 85,178,127,195,247, 8, 50,231,131,119,104, - 53,120,191,254,132, 26,134, 28,108,156, 51,193,209,224,230, 49, 95,234,228, 84,224,226,226,178,137, 16, 82,179, 34,189,240,240, -112,228,229,229, 33, 47, 47, 15,110,110,110,112,113,113,129,139,139, 11,100, 50, 25,228,114, 57, 20, 10, 5,130,131,131,209,160, - 65, 3,236,216,177,227,157,228, 31,222,212,211,120, 51, 44, 19,207, 63, 75,135, 64, 44, 70,117, 23, 73, 96, 83, 71,226, 90, 78, -146,122, 71,129, 64,112,192,205,205,237, 28, 33,228, 19, 66,136,152, 16,242,137,155,155,219, 57, 62,159,223, 23,192, 66, 74,233, -174, 74, 22, 99,241,252,249,243,191,138,139,139,115,120,240,224, 1,166, 79,159,142, 5, 11, 22,224,249,243,231, 63, 82, 74,173, - 69,191,251,177,187,187,251, 9, 46,151,251, 51, 33,164, 7, 33,164,187,175,175,111,167, 10,116,251, 78,155, 54, 77,215,168, 81, -163,216, 39, 79,158,244,253,237,183,223, 26, 79,157, 58, 85,254,242,229, 75,196,198,198,194,199,199, 7,254,254,254, 80,169, 84, - 40, 40, 40, 64,223,190,125,165, 78, 78, 78,195, 88, 86, 42,131,193,248, 95,229,117, 47,242,119,226,245,113,180, 74,190, 46,181, -215,161,131,131,195,252,200,200,200, 22,245,235,215,231, 1,216, 15, 0, 97, 92, 12,236,219,178,225,214,163,155,190,175,127,120, -213,156,250,221,234, 7,111, 13,227,162,184, 23,219,137,198,141, 27,187, 68, 70, 70,182, 20, 10,133,159,150,149,119, 15, 0, 46, - 46, 46,144, 74,165,112,118,118,134,139,139, 11,172, 86, 43, 84, 26, 29,212, 22, 64,169, 51, 64, 46,151, 67, 89,244, 90,165, 55, - 66,173, 86,191,250,110, 41,180, 31, 59,118,108,206,218,181,107,179, 51, 50, 50,190, 7, 80,111,212,168, 81,125,214,172, 89,131, - 75,151, 46,233,122,132,212,112, 91,212,166,225,183,117, 50,158,207, 11,225, 99, 28,128,107,215,174, 93, 67,203,150, 45, 65, 8, - 25, 82,154,160, 72, 36,250,105,239,222,189,162,152,152, 24,212,168, 81, 35,102,200,144, 33,131,190,255,254,251, 32,177, 42,255, - 6, 0,152,243, 50, 99, 38, 77,154,244,245,162, 69,139,114,114,114,114,140, 26,141,198,179,119,239,222, 72, 78, 78, 70, 90, 90, -218,239,101,152,204,216,168,168, 40, 42,151,203, 17, 31, 31,143,168,168, 40,209,215, 95,127,221,212,194,225,244, 73,133,227, 7, -163, 90, 53,110, 58,162,121, 67,236,186,249, 64,112,253, 89,130,115,227,170,126, 46,247, 83, 50,170,153, 8, 94,188,201, 1, 87, - 42,149,171,191,253,246, 91,149, 74,165, 66,106,106, 42, 30, 62,124,136, 39, 79,158, 32, 41, 41, 9, 75,151, 46, 85,229,231,231, -175,169, 72,195,215,158,247,197,178,169, 31, 18,222,227,223,129, 7, 87, 1,141, 18,208,170,160,127, 26,137,109, 79, 51,177,238, -208, 17,187,151,201,201,206,251,246,237, 27, 27, 16, 16, 16, 73, 8, 9,174,168,211, 5, 0,112, 56,156,215, 43, 39, 56, 28,142, - 18, 64,166, 88, 44, 78,113,116,116, 76,225,112, 56,153,148, 82,245,187,168,252, 28, 51,140,224,114, 1, 59, 17, 56,124, 94,121, - 39,201,160, 33, 67,134,236, 77, 73, 73,233, 22, 31, 31,223, 98,205,154, 53,223,218,219,219, 71,175, 89,179,230,219,248,248,248, - 22, 41, 41, 41,221,134, 12, 25,178,151, 16,242,126,101,126,191,102,205,154,147,230,205,155,135,165, 75,151,162, 65,131, 6, 8, - 14, 14,214,204,159, 63,127, 53,128, 57,132,144, 79,131,131,131,111, 76,154, 52,105, 76,118,118,182,119,106,106,106,131, 31,127, -252,113,194,234,213,171,155,164,167,167,219, 87, 32,221,186,107,215,174, 56,125,250, 52, 0,100, 80, 74,227,243,242,242,204,233, -233,233, 8, 13, 13, 69,211,166, 77,161, 82,169,160, 82,169, 32,147,201, 16, 24, 24, 8,171,213,218,130, 93,202, 25, 12, 6,227, -255,207,112,149,105,180,236,237,237, 93,194,195,195, 81,189,122,117,151,162, 92, 44,184,217,241,102, 78, 25, 59,212, 65, 18,121, - 6, 36,234, 34,134,180,169,235,224,102,199,155, 89,244, 21, 94, 96, 96,160, 48, 60, 60, 28, 98,177,216,175,140,223,191,146,153, -153,137,240,240,112, 56, 59, 59, 67, 42,149, 34, 60, 60, 28, 70,163, 17,114,165, 18,106, 11,160, 49, 89, 33,151,203,145,159,147, - 5,141, 5, 48, 59,186, 33, 41, 41, 9, 92, 46, 55,161, 12, 77,159, 26, 53,106,228, 68, 71, 71,231, 0,184, 6,224,163, 5, 11, - 22, 96,198,140, 25,152, 59,119,238, 94,135,140,196,174,123, 79,255,234,182,123,254,199, 30,193,118,100, 40, 0, 99, 74, 74, 10, -156,157,157, 33, 22,139, 75, 53, 6,109,219,182,109, 36, 22,139,177,125,251,118,154,154,154,218,138, 82,122,144, 82,154, 64, 72, -161,217, 19,113, 32,167,148,174,142,140,140,108,246,245,215, 95, 63,235,220,185, 51,191,121,243,230, 88,184,112, 33, 0,156, 40, - 77, 83, 38,147,221,122,255,253,247, 13,151, 47, 95,198,211,167, 79,197, 71,143, 30, 29,184,112,225,194,186, 47, 95,190, 20, 30, - 63,117,230,189,157, 41,138,129,223,159,187,110,191,232,236,149, 91,238, 78,226, 58,213,220, 93, 17,245, 50, 77, 96,225,226, 78, - 69, 7,181,185,128, 55,182,131,136, 31,213,214,158,155,209, 65,196,143,108, 42,224,125,168, 80, 40,246, 29, 59,118,236,236,212, -169, 83, 85,217,217,217,112,116,116, 68, 94, 94, 30, 22, 47, 94,172,138,138,138, 58,164,215,235,143, 87,164,107,177,210, 70,254, - 85, 3,128, 23,209,175,222, 51, 90, 41,238, 24, 4,232,249,209,103, 8, 9, 13,133,193, 96, 64,189,122,245,200,130, 5, 11,196, - 82,169,244,203, 10, 77, 15,231, 79,213,205, 76, 8,201,164,148,166,169, 84,170, 84,145, 72,244, 82, 32, 16,188,204,207,207, 79, -165,148,102,189,131, 10,207,161, 28,124,209,178, 94, 77, 64, 40,194,203, 60, 85,250, 29, 37,205, 47,109, 93, 71, 71,199, 15,215, -173, 91,103,191,101,203, 22,211,164, 73,147,244, 19, 38, 76,224,107,181, 90,207, 9, 19, 38,240, 39, 77,154,164,223,178,101,139, -105,221,186,117,246, 18,137,164,255,155,148,197,100, 50, 33, 58, 58,250,251,184,184, 56, 49,165,244,115, 0,159,205,159, 63,127, - 84, 92, 92,156,253,218,181,107,113,240,224, 65, 28, 60,120, 16,125,250,244,193,228,201,147, 49,111,222,188,242,182,203,161,126, -253,250,225,110,110,110,184,122,245,106, 58,165,244, 37, 33,164,145, 68, 34,113,236,211,167, 15,186,117,235, 6,157, 78, 7,163, -209,248,202,104,113,185, 92, 56, 59, 59,187,177,203, 32,131,193, 96,252,181, 38,235,117,179,197, 3,128,226, 80, 93, 68, 68, 4, - 41,239,198,104, 41,200,134, 76,173, 65,146, 92,131,228, 2,235, 31, 62,179, 90,173,229, 22, 32, 61, 61,253,248,205,155, 55, 63, - 12, 15, 15,231,165,167, 23,182,136,133,135,135, 67,163,209, 32,253,193,109,168,173,128,184, 70, 24,212,106, 53, 10,158,220,135, -164,126, 11,184, 69,140,192,138,181,107,245,121,121,121, 27, 74,211,180,179,179,227, 87,169, 82, 37, 39, 33, 33,193, 12, 32, 95, - 42,149,118, 13, 8, 8,192,149, 43, 87, 0, 96, 23, 5,150, 33,234, 50,112,245, 48,104, 97, 72, 69, 18, 24, 24,136,236,236,108, -168, 84,170, 43,165,105,222,188,121, 51,206,100, 50,213,235,221,187, 55,249,229,151, 95,246, 19, 66,230, 2,120, 56,203, 27,220, - 7, 41, 89, 80, 91, 96, 79, 8,233,226,226,226,242,249,188,121,243, 58, 77,154, 52, 9,199,142, 29,195,185,115,231,140, 40,204, - 5,187, 89, 74, 52, 71, 78, 8,217, 56,109,218,180,230, 28, 14,231,163,243,231,207,155,131,131,131, 21, 70,163,209, 82, 43, 36, -132, 51,119,193, 55,130, 79, 62, 26,239,156,167,193,227,110,181,124, 90, 18, 2, 60, 78,203,126, 25,167,164,121,229,237,211,118, - 66,222,137, 33,109,234,183,253,112, 72, 47,137,184, 70, 29,168, 31,221,246,222,120,224,212,138,246, 34, 94,207, 44,173,185,143, - 84, 42, 29,120,229,202,149, 79, 12, 6, 67,117,161, 80,248, 66, 38,147,173, 82, 42,149, 21,154, 44, 30,143, 23, 17,230, 95,197, - 69,150,159, 15,251,162, 72,148,194,100, 69,174,222,140,167,206,193, 24, 86,197,255, 85, 51,104,102,102, 38,188,189,189,137,197, - 98,233, 85,158,230,185,115,231,208,179,103,207, 98,227, 9, 66, 8, 8, 33,185, 33, 33, 33, 89, 66,161, 48, 79, 32, 16, 40,150, - 45, 91,166,211,233,116,224,241,120,246, 22,139,133,251, 54, 21,190,153,152,120,182, 21,145,159, 38,244,238,208,185, 65,157, 80, -122,237,238, 3, 82,160,209,109, 43, 39, 10,248, 99,205,154, 53,121,249,249,249,199, 1, 60, 53,153, 76,187,247,239,223,111, 63, -114,228, 72,221,129, 3, 7,134, 3, 8, 90,190,124,249, 64,149, 74,181,169, 50,229,120,254,252,249,143,139, 22, 45,250,106,246, -236,217,216,177, 99,199, 36, 0, 51,138, 34, 93,125,230,205,155,135,101,203,150, 97,199,142, 29,214,167, 79,159,158,178, 90,173, -207,167, 78,157, 90,223,203,203, 43, 55, 35, 35,227,249,130, 5, 11,202,146,109,220,189,123,119,253,141, 27, 55,236,148, 74,229, -117, 66,200,231, 19, 39, 78, 28,219,172, 89, 51,197,144, 33, 67, 36,249,249,249, 50, 7, 7, 7,187,205,155, 55,187,240,120, 60, -168,213,106, 16, 66,160, 84, 42, 13,236, 82,200, 96, 48,254, 87, 41,203,139,252, 29,120, 53,221, 78,105,247,212,210, 54, 80,163, -209,100, 37, 39, 39,135,166,165,165,153, 1,152, 1, 32,207, 96,254,110,209,230,195, 91,250, 55,175, 41,206, 48,153,112,244,110, -140, 38,207, 96,254,174, 56, 50,145,150,150,166,124,249,242,165,163, 86,171, 85,149,241, 91,191,255,244,211, 79,218,203,151, 47, - 59,198,199,199,195, 98,177,160, 81,163, 70,136,141,141, 69,193,211,104,136, 67, 27, 65,220,174, 39, 98, 34,239, 34,234,220, 5, - 36,170, 12,230,103,115, 22,201, 85,106,245, 60,131,193,112,180, 52, 65, 62,159,159, 95,184,125,212, 2, 0, 10,133,226,161, 74, -165,106,227,229,229,133,199,143, 31,139,213, 22, 76, 30, 56,115,197, 26, 74,169, 69, 80,216, 83,108,202,144, 33, 67,112,239,222, - 61, 0,184, 87,154,166, 66,161,152, 52,110,220,184,203,219,183,111,231,197,199,199,119,219,178,101, 75,183,103,207,158, 81,146, -159,108,185,161,225, 35,104,212,228, 38,235, 3, 67,206,245,236,217, 19, 62, 62, 62,216,188,121, 51, 86,173, 90,101,250,248,227, -143,227, 86,173, 90,213, 4,192,238, 50, 14,130, 28,192, 25,119,119,247, 79,234,214,173,171, 84,171,213,200,203,203, 67,122,122, - 58, 92,221,220, 56,102,112, 90,122, 56, 59,239, 62,158,169, 20,243,206,220,194,237,212,140,114,163, 89, 45, 4,188,247,135,182, -111,216,246,211,217, 51, 37,184,113, 20,100,220, 60,208, 45,223,226,179,209, 3, 29,117,250,221,237, 26,243,120, 35,229,102,243, - 78, 0, 7, 43,233,200,187,183,105,211,102,239,162, 69,139, 68,179,150, 46,194,242, 80, 63,152,243,242,144,163,183, 32, 87,111, -134,162,224, 41, 30, 63,142,129,155,155, 59, 18, 19, 19,161,211,233,240,228,201, 19,202,229,114,143, 87, 20,209, 41,241, 27,197, -205,133, 50,161, 80,152,199,231,243,179,120, 60, 94,126,124,124,188, 90,167,211,129,195,225,136, 45, 22,139,200,134,178, 86,113, -119,119,159, 10,160, 63,128, 99,202,220,220,213,225,124, 56,131,135,246,213, 61,221,222,155, 51, 97,164,123,128,175,167, 44, 62, -238,133,105,195,217,223,114,117,122,124, 87,206, 73,114,162,100, 68,146, 16,242,217,129, 3, 7,198, 2,216, 90, 52,239,214, 5, - 0,235,223,224,252,155,115,232,208,161,175,102,207,158, 13,145, 72,244,106,240, 84,145, 72,100, 15, 0,123,246,236,193,227,199, -143,155, 21,231,107, 1,216,107,131,102, 80, 88, 88, 88,252,225,195,135,237, 0,248, 78,156, 56,177,197,154, 53,107, 48,122,244, -232,156,152,152,152,230,133, 17, 88, 18,244,209, 71, 31,221,217,177, 99,135,139,213,106, 69, 65, 65, 1, 12, 6, 67, 2,187,148, - 51, 24, 12,102,182,254,146,104, 86, 56,165, 52,170,104, 96,239, 8, 0, 39, 41,165, 25,127, 48, 90,197, 27, 8, 0, 58,157,238, -199,192,192, 64, 41, 0,127, 0, 61, 1, 28,123,104,193, 65, 60, 75, 66,116, 98,234,204, 98,227,245,208,242,234, 38, 62,248,206, -157, 59,134,170, 85,171, 62, 0,240,109, 25, 55, 50,133,187,187,251,194,169, 83,167, 46, 94,184,112, 33,143,199,227,225,242,229, -203,184,121,246,164,245,201,245,219, 36, 73,107,209, 42,238, 78, 75,227, 81,203, 45, 47,109,254,163,251, 26, 28,162,148,166,150, -183, 97,106,181, 58,249,249,243,231,118,117,235,214,181,220,191,127,223,157, 82,122,228,212,169, 83,109,166, 79,159,142, 43, 87, -174,236, 62,175,179, 12,163,212,186,159, 16,194, 3, 48,172, 87,175, 94,159, 15, 28, 56, 16, 13, 26, 52, 48, 2,216, 81, 70, 57, -111, 16, 66,134,165,164,164,108,252,242,203, 47,157,191,252,242, 75,112, 56, 28, 82,114, 95,229,230,230,226,193,131, 7, 24, 50, -100,136,252,183,223,126,155,220,169, 83,167, 49,173, 91,183,198,233,211,167,125,109, 56, 24,191, 63,121,242,164,159, 84, 42, 37, -207,159, 63,135, 66,161,192,141, 27, 55,248,129,129,129, 45,247,239,223, 47,172, 94,189, 58, 98, 30, 61,194,169, 97,195, 34, 8, - 33,129,148,210,151,165,233,136,248,228,147, 81,131,122, 73,244, 55,142, 3, 81,215, 0, 0, 42,133, 18,218,196,104, 12,108, 90, -211,233,202,147,164,137, 40,236,133, 89, 41, 92, 93, 93, 63, 91,190,124,185, 56, 56, 56, 24, 95, 44, 90,138,169,179,167,227, 35, -207, 64, 40,210,146,145,107, 1,236, 28, 28,176,112,206,108,244, 26, 52, 4,158,158,158,120,244,232, 17,221,188,121,179, 90, 46, -151, 47,179,197,104,113,185, 92, 16, 66, 0, 64, 45,151,203, 85,118,118,118,114, 30,143,151,103,177, 88,178, 78,172, 93,221,136, -147,151,245, 1, 33,132, 43,178,114, 78, 20,117,182, 40, 53, 63,207,153,144,192, 26, 65, 65,143,126,222,188, 89,220,172, 89, 51, -114,247,238,221, 79, 38,142, 31, 55,182,127, 88,181, 83,125, 59,183,133,183,143,183,222,106, 52,200, 78, 29, 59, 97, 90,127,224, -212, 85, 3,177,126, 25, 73,169,182, 18, 79, 39,123, 75,154, 30, 66,200, 80, 0,131, 0, 28,166,148,238, 34,132,140, 2,208, 23, -192,161,178, 18,228, 9, 33, 28, 0,155, 6, 12, 40,156, 76, 64,171,213,106,138,223,175, 95,191,126,201,223,178, 86,230, 24, 57, - 56, 56, 56,218,219,219,191, 56,125,250,180,104,200,144, 33, 46,139, 23, 47, 78, 27, 61,122,180,223,238,221,187,127, 4,144, 72, - 8, 9, 1, 80, 67,173, 86, 91, 56, 28, 14, 66, 66, 66,176,110,221, 58,149,197, 98,217,202, 46,227, 12, 6,227,239, 96,182,254, -134,197, 14, 7, 16, 5, 32,162,168, 3,225,120, 0,229, 79, 42, 13, 96, 81,116,116,116,241, 24, 90, 19,203, 27,222, 97,198,140, - 25,145,247,238,221,139, 4,176,164,162,110,142, 60, 30,239,200,199, 31,127, 76,189,188,188, 84,158,158,158, 71,248, 92,238, 88, -127, 17,194,241, 6, 93,221, 1,180,217,185,115,103,159, 31,127,252, 49, 2, 64, 51, 0,124, 63, 63,191,244,204,204, 76,213,111, -191,253,166,106,213,170,149,202,221,221, 61, 59, 44, 44, 76,181,124,249,114,149,201,100, 82, 77,157, 58, 85,133,215,198,251, 42, - 67,219, 30,192, 39,118,118,118, 71,106,215,174, 29, 61,167,119, 71,211,210,201, 99,233,168,154, 30, 42, 0, 63, 2,248, 24,128, - 51, 0,254,192,129, 3, 47, 62,121,242,228,108, 88, 88,216, 70, 27,116,125,235,214,173,123,105,239,222,189,247, 14, 31, 62, 28, -249,229,151, 95,222,115,115,115, 75,141,139,139,179,234,116, 58, 90, 80, 80, 64,101, 50, 25, 61,121,242,164,197,213,213,117,109, - 89, 58,109,132,220, 12,122,110, 87,169, 67, 56,164,204, 30, 65, 91,217,113,210,222,164, 27,170, 88, 44,206,207,203,203,163,153, -153,153, 52, 62, 62,158, 30, 58,116,136,118,111,217,148,238,251,168, 63,221,245, 97, 31,186,172,123, 83,218,204,209, 94,237,237, - 40,185,231,232,232,152,237,236,236,188, 9, 64,205,138,134,119,208,235,245,175,134,111,168, 82,165, 74,100, 72, 72,200,225,176, -176,176, 21,199,142, 29,251,108,229,202,149,125, 58, 84, 11,252,106,113,183,150, 90,205,133, 3, 84,185,255, 71, 58,163, 81,176, - 46,140,139, 65,101, 14, 23,226,230,186,243,234,149, 43,214,226, 1, 58,205,102, 51, 61,122,228, 8, 29,252, 94,151,104,249,153, - 61, 63, 95,159, 55,105,239,212, 70,193, 71, 91,217, 99, 40, 94, 27,168,180,180, 37, 92, 2,183,182, 78,156,117, 61, 2, 92, 51, -218, 72, 57, 63, 54,119,132, 75,137, 99, 54, 56, 56, 56, 56,158, 82,154, 17, 26, 26, 26, 15, 96, 87,104,104,104,201,215, 31, 84, - 52, 56,233,252,249,243, 41, 10,103, 81,224, 0,152,187,104,209,162, 72, 74,105,100,205,154, 53,111, 80, 74,209, 64, 12,247,118, - 82,206,207,189,131,188,242,218, 73, 57, 63, 55, 16,255,121, 52,119, 74, 41, 2, 5,168,213,198,195,225,122,159,154, 62,202,246, -126,210,107,187,182,109, 89,218,163, 71,143,205, 0,214, 2,248,214,205,205,237,250,208,161, 67, 31,239,216,177,227,241,242,229, -203,141,113,113,113,116,204,152, 49,106,161, 80,248, 45,235, 58,206, 22,182,176,133, 45,127,249,200,240, 62,149, 25,176,180,215, - 87, 95,125, 21, 73, 41, 45, 30, 75,107,100, 41,235,244,158, 61,123,118, 36,165,180,120,116,248,206, 21, 13,104, 6, 96,254,186, -117,235,168, 80, 40,252,249,109, 7, 73, 3,224,221,183,111,223,230, 10,133,162,137,151,151, 87,147,162,168,147,191,187,187,123, -252,238,221,187, 85, 90,173, 86, 69, 41, 85,153,205,102,213,189,123,247, 84,237,219,183, 87,161,112, 8, 8,155, 70, 8, 47,185, -204,242,198,141,187,115, 62,164,179,188,113,227,181,239,142,216,186,117,235,233,132,132,132,227, 78, 78, 78,211,109, 28,184,210, -223,195,195, 99,174,171,171,235, 89,119,119,247, 89,174,174,174, 25, 70,163,145, 22, 20, 20,208,216,216, 88,122,229,202, 21,122, -243,230, 77,234,234,234,154, 90, 86, 57, 59,137,120,183, 10,150,126, 66,173, 91, 23, 81,195,154,153, 20, 0,149,173,156, 65,115, -127, 90, 64,239,142,235, 70,219,219,115,127,127,147, 65,231,156,157,157, 55, 29, 57,114,196,250,252,249,115,122,226,196, 9,122, -242,228, 73, 58,121,242,100, 90,203,215, 71,223,220,142,147,213, 70,200, 59,251, 38, 3,150,234,245,250, 72,133, 66, 17,169, 82, -169, 34,107,215,174, 29,217,180,105,211,195,205,155, 55, 95,113,224,192,129,207, 22, 47, 94,220,167,147,163, 48, 86,115,225, 0, -165, 95,190, 71,233, 39,173,233,139,177,237,105, 71, 17,239, 65,153,154, 94, 94,169,197,163,181,171,213,106,122,237,218, 53,122, -233,210, 37,234,237,238,174,104, 43,226,142,111, 37, 68,187, 86, 78,112,182,181,156, 29,164,156,109,183,126,250,206,162, 61,189, -131,238, 25,245,158,185,189, 51,103, 93,137,245,246, 81, 74, 51, 6, 12, 24,144, 72, 41,205, 56,116,232, 80, 10,165, 52,163,127, -255,254,137, 69,161,225,189,165,105,190, 54, 56,233,214, 34,147,245,201,252,249,243, 35, 41,165,145,243,231,207,143, 4, 10, 7, - 81,109, 39,229,108,191,189,113,153, 85,127,114, 59, 61, 48, 38,194,210, 78,202,217, 94,106, 57,157,121,199,163,182,174,164,134, -179,187,232,145,201,195, 45,173,189,157,174, 6, 7, 7, 47,251,236,179,207, 14,223,188,121,243,161,197, 98,121, 28, 31, 31,255, -120,237,218,181,143, 91,180,104,113,195,205,205, 45,218,206,206,238, 99, 54, 40, 34,211,100,154, 76,147, 13, 88,250,223, 89,120, -229, 52,157, 28, 39,132,136, 41,165, 83, 7, 14, 28,136, 37, 75,150, 12,174, 87,175,222, 80, 63, 63, 63, 15, 0, 72, 79, 79,215, - 0, 80, 12, 28, 56, 16,115,231,206,197,210,165, 75, 87, 20,229,178,252,127, 38,159,101, 18, 66,170, 76,154, 52, 41,123,241,226, -197,214, 49, 99,198,132, 82, 74, 31, 17, 66,106, 13, 31, 62,252, 19, 30,143, 55, 48, 48, 48, 48, 44, 35, 35, 35, 71,171,213,238, - 2,176,177,184,205,180,178, 8, 57,176, 52,174,234,131,179, 28, 88, 74, 52, 13,189, 55,119,238,220, 33,253,251,247, 55,174, 92, -185,210,172, 80, 40,142,217, 88,238, 20, 0,223, 20,191,118,115,115,243,126,240,224,193,199,158,158,158,156,248,248,120,232,245, -122, 60,127,254,220, 10,224,215,178, 52, 84,102,186,122,253,161,243, 33, 83, 71,244,116,210, 60,189, 15, 1,151, 11, 19,223, 14, -153,183,206, 98,235,181,167, 10,181, 17,107,222,100, 59,101, 50,217, 15,147, 39, 79, 30, 62,125,250,116,251,192,192, 64,242,251, -239,191, 99,255,254,253,250,236,236,236,238,148,210,171,111,122,172,172, 86, 43,236,236,236, 0, 0, 51,102,204, 0,135,195,225, -103,103,103,219, 17, 66,132,132, 16, 7, 66, 8,215,148,240, 24, 86, 69, 1,178, 10,100, 72,201,146,149,171,103,177, 90,247,223, -190,125,123, 74,195,134, 13, 57,119,239,222, 69, 78, 78, 14,158, 63,127, 78, 45,148,238,189,170, 49,111,170,108,249, 28, 92,221, -250, 54,112, 17,114,236,182,205, 69, 91, 3,135,187,193,138, 1, 0, 62, 41,250,120, 43, 33, 68, 0, 32,175,118,237,218, 29,158, - 60,121, 34,170, 93,187,182,246,233,211,167,167, 9, 33,126, 0,182,151,218,188, 43, 18,229, 2,200, 61,116,232, 16, 0,140,163, -148, 90, 9, 33,141,230,205,155,151,113,237,218, 53,204,159, 63, 63, 11,192, 58, 0,144,184,184,245, 14,147, 10,136,221, 47,243, -209, 66, 15,206, 26, 43, 45,181,115,129,196,211,171, 99, 93, 49, 7,252, 45, 95,163,137,119, 8,199,206,108,172,183, 96,193,130, -107, 42,149, 74,191,111,223, 62,195, 7, 31,124,192,141,139,139,187, 3,224,122, 81,179,166,153, 53, 68, 48, 24, 12,198, 95,158, -163,245,250,176, 14,165,231,104,149, 98, 8,246, 16, 66,114,151, 46, 93,218, 17,128,211,129, 3, 7, 26,215,170, 85, 11, 0, 16, - 27, 27,235, 16, 18, 18,242,172,126,253,250, 79, 0,220,162,148, 30,183,177, 60,197, 23,126,235, 59,218,190,152,233,211,167,147, - 29, 59,118,152,129, 66, 19, 84,116,115, 89, 13, 96,117,121,121, 62,111, 75,112,112,112,151,175,191,254,218,176,101,203, 22,203, -183,223,126,123,140, 82, 26,247, 38, 58,249,249,249,203, 71,142, 28, 57,124,222,188,121, 82, 71, 71, 71, 18, 29, 29,109,221,186, -117,171, 34, 63, 63,127,121, 89,223,185,109, 48,239,107, 39,228,245,151,169, 15,116, 25, 28, 94,213,241,201,164, 8,196,222,190, -142, 93, 87, 31, 43,227,242,181,231,238,154,205,251,223,208,188, 62, 39,132, 52,152, 59,119,238, 12,163,209,216,159,207,231,223, - 81, 40, 20, 11, 40,165,191,191,233,126, 50,153, 76, 89,213,171, 87,127,253,119, 76, 86,171,149, 82, 74,249,102,179, 89,236,106, -180,158,156,183,106,203, 71, 31,132, 72,133,185,185, 50,252, 18,167,208,151,232,108,241, 39,114,114,114, 86,140, 29, 59,118,244, -188,121,243, 92,156,156,156, 72, 76, 76, 12,221,183,111,159, 42, 39, 47,111,201,155,148, 81, 83,144,127,238,196,193, 3, 3, 91, - 27,204,100,103,162,146,242,184,228,116,137,178,158, 7,112,190,232,100, 26, 65, 8, 25, 0,224, 40,165,244,151,114, 53, 53,154, -115, 0,236, 6, 12, 24,128,232,232,232,193, 0,246, 0,216,251,205, 55,223, 52,159, 59,119, 46, 22, 44, 88,128,121,243,230,117, - 1,112, 86, 89,144,119,242,240,222, 93,195,218,155, 76,156,157, 73, 74, 43,151, 67, 78,149,170,153,155,117,254,244,249, 11,189, -155, 56,249,146, 77,103,175, 91, 53, 86,122,127,212,168, 81, 5, 6,131,225, 44,128, 53, 0,162, 41,165,172,119, 33,131,193, 96, -252,255, 6,126, 54,149, 98,188, 54, 85,104,180,138,190,124, 1,192, 5, 66,136,119,171, 86,173, 22, 73,165, 82,177,197, 98, 65, -126,126,126, 26,128, 85, 69,209,153,202,176, 79, 46,151,127, 41, 20, 10, 55,188,163,141,211, 17, 66, 60,107,215,174,205, 7,160, - 47,229,243,119, 99,178, 40, 14, 61,143,123,238, 4,138, 67,197,111,197,197,197,237, 13, 11, 11,235,243,244,233,211,223, 40,165, -167,222, 98, 27, 94, 18, 66, 26, 78,158, 60,249, 11, 0,125, 0,252,154,159,159,191,188,172, 68,248, 98,174,234,205, 3,155,240, -120,195,239, 39,101,126,108,176,210,106,118, 28, 78,130,218, 72,127,186, 99, 54,239,121,203,125,250, 28,192,152,162,229,173,201, -205,205,173,112,144, 79, 66, 8,185,250, 34,253,214,227,148,236,210, 58, 91,148, 86,198, 12, 66, 72,131,169, 83,167, 78,181, 90, -173,131, 56, 28,206,145,220,220,220, 10,247, 89,153,145, 60,131,101,202,134,203,119, 5,171, 44,214,206, 66, 14,231,172,202,100, -153, 89,198,239,238, 2, 96,211,232,240, 47, 94,188,248,121,193,130, 5,117,231,205,155,135,245,235,215, 23,119,187,188, 48,111, -222,188,108,139,197,226,191, 96,193, 2,108,220,184,209, 12, 0,122,147,117,218,150,107,247, 57, 27,172,214,247,248, 28,206,105, -189,201, 58,173, 84, 83,174, 51,127,178,230,240, 25,163,209,106,237,194, 5, 57,157, 97,176,206,209,235,105, 18,187,204, 49, 24, - 12,198,255, 38, 60, 91, 87,164,148,102,190,139, 27, 47,165, 52, 30,128,211,172, 89,179,222,165,147,204,254,171,119,212,215,233, -244, 71, 0, 63,126,253,253,190,146,191,123, 7,168,120, 80, 81, 91,205, 22,128, 79,139, 22,155,185,107, 54,239, 70, 25, 67, 74, -252,205,158, 6, 40,128, 3, 69,139,173,223, 73, 69,225, 92,150, 83,222,246,247,239,107,104, 6, 10,123, 17,190,203,109,138, 66, - 97, 47, 20,164,165,165,149,220,206,135, 69, 11,138,199,148,187,173,166,217, 0,134,219, 88,206,193,236,210,197, 96, 48, 24,255, - 59,148,214,116, 88,105,163,197, 96, 48, 24, 12, 6,131,193, 40,245,193,186,204,220, 96, 2,160,115, 25, 95,178, 57,177,157, 16, -210,249, 13, 10,117,129,105, 50, 77,166,201, 52,153, 38,211,100,154,255, 46,205,138,180,255,191, 59,214,253,127,184,176,191,114, - 92, 9,214,245,149,105, 50, 77,166,201, 52,153, 38,211,100,154,255,218,133,195, 2,126, 12, 6,131,193, 96, 48, 24,111, 14, 33, - 36,188,232,175, 15, 33,100,124,209, 84, 60, 0,202,200,209,226, 55, 91,148,101, 54,155, 61, 1,128,199,227,101,155,238,204,241, - 41,239, 7,248, 64, 39, 51,240,115,145,224, 56, 83, 97,119,248,215, 53,207,155,205,102,151, 34,205, 2,211,157, 57,221,202,213, -108,186,240,236, 31,214,191, 61,187, 75, 41, 91,198,229, 55, 93,152,254, 90, 89,125,109,222, 51, 69,115, 36,254,213,229,252,187, -104,254,155, 17, 52, 95,148,101, 50, 21,214, 35, 62,159,151,109,188, 93,126, 61, 18, 52, 91,152,254,135,245,111,205,246, 42, 79, -211, 65, 36,204,171,225,231,177,162, 60,205,248,244,220,169,106,141,206,173, 60,205,202,158,155,254, 62, 62,157, 44, 69,231, 38, - 23, 24,151,146,158,126,254,127,169, 46, 17, 66, 26, 3,152, 3,192,169,196,219,209,148,210,207, 89,173,100, 48, 24,127, 35,202, -156,130,167, 84,163,101, 54,155, 61, 35,143,204,131, 90, 15,116,122,127,161,103, 80,223,141,127,234,213,102,214, 21,216,201, 98, -246,133,113, 77, 10, 23, 15,158,209, 41, 61, 61,157, 20, 93, 56,127, 6, 16, 80,138,166, 75,228,145,121,208, 24,128,182, 67, 23, -184, 4, 0, 78, 57, 2,193, 23, 34,177,184,131, 86,171,173, 11, 0, 34,145, 40, 70,171, 86, 95,246, 48, 26,151,191,190,126, 89, - 91, 86,178,172, 29, 71, 46,244, 12,237,187,113,178,197,106,181, 75,187,187,161,173, 46, 55,142,199, 55,235,215,205, 2, 78,207, - 3, 44,182,236,169, 63,252,238,160,153,110,124,160,163,157,189,125, 3,103, 23,151, 54, 86, 74,107, 91,173, 86, 98, 49,155, 31, - 43,228,242,235, 86,179,249,129,217,160,118,139, 60,246,157,181,188,114,190,190, 45,131, 0,222, 17, 96,160, 88, 34,233,192,229, -243, 91, 2,128,197,100,250, 93,173, 82, 93,238, 7, 28,180,101,219,109,221, 63,111,186,254,191, 13,147,201,236,153,112,118, 30, -244, 38, 32,124,192,119,158,245,135,255,178, 27, 0, 12,217, 15,188, 84,113,199,154, 1,128,184, 70,207,219, 66,239,240, 44, 0, -224,189,204,240,140, 61, 49, 27,122, 19, 80,187,231, 2,207,138, 52, 63,152,187,223,109,250,248,254, 66, 0, 56,119,232,199, 90, -151, 14,175,127, 15, 0, 58,246,159,120,186,235,128, 73,177, 0,176,116,211, 97,183,189,223, 13, 46, 87,211,182,115, 83, 46,144, -199,157,168,105, 80,100, 56,251,139,121,222,113,113,113, 28, 0,240,245,245,181,233,220,172, 2, 72, 51,128, 79, 56, 92,110,155, - 26, 53,107,134, 3,160,241, 47, 94, 68, 89,204,230, 27, 62,192,186,119, 92,151, 38, 83,250,199,193, 89,139,230,194,100, 48, 24, -140,191, 19, 39,139,204,213,201,215, 63, 40,179,215,161, 90, 15, 92,125, 14,180,107, 94, 31,227,135,247,144,148,252,236,224,198, - 5, 1,113,119,127, 13,221,242,203,114, 78,253,250,245,145,144,144, 96, 83, 41, 52, 6,224, 74, 28, 0,217, 19,199, 2,177,248, -197,202,101,203,156,186,116,233,194,243,245,245, 5, 33, 4,153,153,153,205, 47, 92,184,208,120,202,148, 41, 31, 65,246,164, 64, - 99,128,242,138, 13, 67,128, 22,151,181,110,173,170,152, 51,105,176, 20, 0,102,189,191,174,241,221,103, 89,174, 47, 94,188,232, -244,213, 87, 95,229,113, 47, 95, 94,239, 14,108,203, 2, 82,108, 41,231,142,227,183,237,165, 25,123,130, 70, 76,154,116,168,102, -205,154,146,192,192, 64,226,232,232, 8, 46,151,139,130,130,130,128, 71,143, 30,189,119,231,206, 29,245,133,171, 63,219,221,187, -211, 59, 62,219,190,153,206,166,109,215,166,219,159,115,116,140, 25,217,175, 95,149,193,131, 7,219,215,168, 81, 3, 0,240,226, -197,139,224,131, 7, 15, 14, 61,116,232,208, 92,104,211,205, 26, 3,116, 21,109,251, 43, 77, 0,246, 64, 75,103, 79,207, 17, 92, - 62,191,174,217,108,246, 43,138, 54,164, 89, 76,166, 24, 89,118,246,174,215,215,103,252, 25,189, 9,120,146, 1,116,110, 19,142, -145,253, 59,139, 1,224,171, 33,139,154,191, 76,124, 46, 48, 24, 12,168, 21, 82,187,213,183,223,173, 56, 11, 14, 7, 59, 15, 95, -120,181,190, 45,154,209, 79, 18, 48,239,219,149, 72,127,120,176,185, 69,254,188,131, 82, 33,231, 2,128,147, 84,218,255,224,190, - 61,151,125,195, 6,222,122,158,107,180, 73,179,188,115,243,204,190,181, 62,169,143, 46,215,249,233,220, 86,126, 64, 64, 0, 30, - 62,124, 88,185,115, 83,254,204,209,234,227,243,120,249,151, 95,122,183,109,219, 22, 18,137, 4, 60, 30, 15,102,179,185,243,141, - 27, 55, 58,207,155, 55,111, 34,228,207,212,182,158,155, 54,176,156, 16,210,225,131,241,147,125,122,244, 25,136,254,221, 91,177, -138,200, 96, 48,254, 86, 16, 66,198, 23,245, 58,124,213,243,176,100, 47,196, 82,141, 22,143,199,203,238, 50,106,177,103,155,102, -245,112,247, 65,172, 60, 41, 57, 67, 85,252, 89,126,204,193, 90,125, 90,249,213,185,118,237, 42,244,122, 61,126,255,253,119, 60, -120,240, 0,137,137,137,152, 48, 97,130,158, 7,140, 43, 67,179,160,237,208, 5, 46,144,199, 73,130,237,158, 85,187,240,244, 41, - 87,167,211,225,218,181,107, 40, 40, 40,128,157,157, 29,170, 84,169,130,174, 93,187,242,158, 62,125,234,218,169, 75,119,105,219, -238,195, 18, 32, 13, 86,241,120,188,130,178, 54,144,199,227,101,119,122,127,161,103,157,224,170,120,145,148, 46,159,243,221, 22, -149,213, 74,121,241,137, 47,141, 87,175, 94, 69,120,120, 56,206,159, 63,239,150,159,159,255,245,186,117,235,230,240,191,255,105, -181,201,144, 55,173, 28,189,130,182, 67, 23,184,184,101, 31, 8,188,116,230,168, 32, 38, 38, 70,176, 97,195, 6,228,229,229,193, -206,206, 14,206,206,206,240,246,246, 70,173, 90,181,200,172, 89,179, 36, 61,123,198,224,211,113, 3, 3,141, 65, 99,159,149, 85, -206, 87,219,174,122,233,224,174, 56, 87,227,240,201,147,156,214,173, 91,255,225,177,189,122,245,234,232,214,173,155,253,136, 17, - 35,106, 12, 30, 58,220,218, 54,226,131, 23,144, 4,106, 42,212, 84,167,136,220, 52, 55,125, 59, 15, 29,122,108,193,130, 5,206, -222,222,222, 16,139,197, 0, 0,185, 92, 94, 37, 41, 41,169,249,220,185,115, 7,220,142,222,199,107,219, 51, 37, 29, 98,127,109, -121,251,243,223, 10,159,207,203, 46,142, 34, 57,138, 69, 5, 41,169, 89,106, 0, 48, 24, 12, 48, 24, 12,208,235,245,248,120,226, - 4,238,184, 1, 77,107, 6,182,153,124, 63, 49, 45, 43,191,246,133, 91,174,197,223,173, 72,147,167, 73,148,201,146, 47,142,155, -247,229,151,222, 94, 94,255,105, 17,220,185, 99, 7, 55, 63, 63,191,243,188,121,243,234, 80,135,246,178,218, 61, 23, 56,151,167, - 89,222,185, 41,139, 61, 89,237,219, 73,221, 26,108,252,238, 4, 44, 22, 11,110,222,188,137,107,215,174, 97,197,138, 21,244,244, -233,211,114, 39,177,184,130,115,243,153, 99,107,159,204,160,239,191, 63, 68,132, 66, 33,126,253,245, 87, 60,125,250, 20, 28, 14, - 7,245,235,215,199,200,145, 35,209,185,115,103,239,241,227, 39,208,182,221,135,196, 67, 26,162,124,155,186, 68, 8,225, 0,152, - 60,115,222,247, 62,239,143,253, 4, 75,191,157,197,140, 22,131,193,248,219, 70,179,202, 28,226,129, 82,138, 19, 39, 78,208,162, -165, 29,165, 20, 20,224, 84,239,187,113,239,129,123,214,147,213,251,110,220, 75, 1, 14, 5, 56, 78, 64,213,134, 13, 27,154,100, - 50, 25,189,115,231, 14,253,248,227,143,213,171, 87,175,190,124,242,228,201,131,102,163,113,179,175,143,207, 15, 20,224,148,154, -121, 15,112, 2, 1,169,131,131, 67, 78,114,114, 50, 61,117,234, 20,157, 63,127, 62,221,181,107, 23, 61,125,250, 52,189,112,225, - 2, 61,125,250, 52,221,187,119, 47,141,142,142,166,177,177,177, 84, 44, 22,231, 4, 2,210,114, 52,185, 20,224,214,234,187, 97, -218,161,187,166, 5, 33,125, 55, 78,161, 0,215, 5, 8,109,216,176,161,229,224,193,131,116,231,206,157,244,151, 95,126,161,209, -209,209, 52, 55, 55,151,242,132,226,156,226,239,149, 85, 78, 10,112,252,252,252,114,100, 50, 25,245,247,247,167,118,118,118,212, -203,203,139,214,170, 85,139, 54,111,222,156,190,247,222,123,116,248,240,225,244,235,175,191,166, 50,153,140,218,219,219,103, 21, -127,175, 44,205,112, 64, 36, 22,139,147, 35, 35, 35,105, 89,104,181, 90,154,155,155, 75,207,158, 61, 75,197, 98,113,114, 56, 32, - 42, 79, 83, 4, 52, 10, 11, 11,203,201,205,205,165, 70,163,145, 38, 39, 39,211, 71,143, 30,209,167, 79,159,210,228,228,100,170, -213,106, 95,105,199,198,198,210,160,160,160, 28, 17,208,168, 76,205,127,243, 82, 92, 39, 94, 91, 2,188,188,222,243,246,246,214, - 30, 58,116,136,166,165,165,209,237,219,183, 83, 14,176,232, 79,235,150,163,105, 7,116,109,221,186,181,229,230,205,155,244,254, -253,251,116,198,140, 25,180, 91,183,110,180,123,247,238,116,222,188,121, 52, 53, 53,149,166,166,166,210,247,222,123,207, 98, 7, -116,173,168,126,150,118,110, 74,129,128,158, 61,123,106,141, 70, 35,141,143,143,167,117,235,214, 77,229, 2, 35,196, 64,157,118, -128,176,162,250,233, 7,184,248,248,248,100,220,188,121,147, 30, 62,124,152, 6, 6, 6,230,112,129, 15,156,128,234, 78, 64,117, - 46,240, 65,245,234,213,115,110,222,188, 73,243,242,242,104, 64, 64, 64,134, 31,224,242,166,117, 9,133, 19,108,111,157, 57,239, -123,250, 44, 85, 77,103,206,251,158, 2, 72, 46, 26,208,245, 60,171,147,108, 97,203,191,111,249,147, 23,249,167,245, 58,140,136, -136, 32, 0,174,148,103,217,180, 92,238,226,165, 75,151,242,116, 58, 29,182,108,217,162, 28, 52, 96,192,129,118,109,218,196, 87, - 11, 12,148, 17, 14,167,194,185, 11,115,132,194,207,150, 46, 93,234,108, 48, 24,112,239,222, 61, 52,110,220, 24,222,222,222,144, - 72, 36,144, 72, 36,240,244,244, 68, 72, 72, 8,178,179,179,225,232,232,136,233,211,167, 75,115,132,194,207, 42,210,181, 90, 41, - 15, 0, 44, 86,171,157, 0, 24, 31,212,164,201,189,185,115,231,114,220,220,220,224,234,234, 10,137, 68,130,167, 79,159,194, 96, - 48,192, 65,228, 96,211, 32,173, 28, 14,135, 35,145, 72,112,233,210, 37, 76,158, 60, 25, 45, 91,182,132,179,179, 51, 28, 29, 29, - 81,183,110, 93,116,237,218, 21,227,198,141, 67,124,124, 60,136, 13, 73, 37,143,121,188, 79,198,141, 27,231, 25, 30, 30, 94,234, -231, 58,157, 14, 50,153, 12, 57, 57, 57,168, 82,165, 10, 6, 14, 28,232,249,152,199,251,164, 44, 61, 55,192,187, 74,112,240,177, - 59,119,238,184,139,197, 98,236,220,185, 19, 71,143, 30,197,153, 51,103,112,234,212, 41,156, 56,113, 2,191,254,250, 43,114,114, -114, 0, 0,193,193,193,216,191,127,191,187,196,211,243,132, 27,224,205, 30, 64,108,227,101, 86,214,185,186,153,153,238, 35,134, - 15,191,174, 82,169, 48, 98,196, 8, 44, 94,178,100, 22,223,198,209,232, 67, 0,169,171,143,207,182,239,191,255,158,147,153,153, -137,126,253,250,229, 46, 95,178,228,195,168,179,103,107, 68,158, 57, 83, 99,241,130, 5, 31,182,107,215, 46, 55, 53, 53, 21, 59, -118,236,224,120, 5, 4,108, 11, 1,164,149, 45,167, 18,152,188,106,213, 42,123,157, 78,135, 46, 93,186,196, 91, 99, 98, 66,204, -192, 30, 21,240,244, 10, 96,172,232,251, 25,192, 39,211,167, 79,247, 22, 10,133,248,226,139, 47,114, 53, 47, 95,214, 51, 3,191, -200,129, 36, 57,144,100, 6,126, 81, 38, 36,212,123,255,253,247,115,133, 66, 33, 86,174, 92,233,157,241,159, 73,183,109,141, 96, - 53, 38,132, 28, 35,132, 92, 5,144,254,193,248,201, 31,132, 55,109,129, 29,155,215,225,187, 5, 95,109, 3, 48,136, 16,178, 11, -192, 52, 86,243, 24,140,127, 39,182,120,145,255,213,230,195, 50, 91,202, 94,197,189, 78,158,164, 0,218,151, 39,228,226,230,214, -184, 94,189,122,184,118,237, 26,194,194,194,238, 56, 59, 59,155, 5, 66, 33,248,124, 62,168,181,226, 57,162, 69, 98,113,167,206, -157, 59,243,110,221,186,133,160,160, 32,136, 68, 34,240,249,252, 63, 44, 2,129, 0, 62, 62, 62, 80, 40, 20,232,212,169, 19,127, -205,154, 53,157,160,215,127, 91,225, 13, 49,238,145, 36,231,214,247,195,127,222,190,173,122,219,182,109, 33,151, 43, 96,181, 90, -225,224,224, 0,131,193, 0, 30,143, 87,216, 4,100,162, 10, 91,118,154,197, 98,177,112,185, 92, 4, 5, 5, 97,241,226,197,208, -233,116, 16, 8, 4, 0, 0,133, 66, 1,153, 76,134, 71,143, 30, 33, 41, 41,201,166,249, 20, 29,165,210, 30,131, 7, 15,182, 43, -237, 51,189, 94, 15,185, 92, 14,185, 92, 14,153, 76, 6,157, 78,135, 22, 45, 90,216,157, 60,113,162, 7,242,242, 74,157, 88, 90, -111,111, 63, 96,199,142, 29,158,118,118,118,208,106,181, 80, 42,149, 72, 73, 73,193,203,151, 47,117,217,217,217,102, 71, 71, 71, - 78, 96, 96, 32, 71, 40, 20, 10,251,246,237, 75, 20, 10, 5, 8, 33,232,217,179,167,219,238,157, 59, 7, 3, 88,193, 78,105,219, - 56, 7,232, 27, 25, 12,189,154, 53,109,122,233,206,221,187,225,159,125,246, 25,162,163,163,191,119,216,183,239,170, 6,120, 80, -222,119,227,129, 79,126, 40, 97, 96,232,203,151, 97, 70, 32,167,196, 42, 73,129, 9, 9,103,222,127,255,253,135,209,209,209,238, - 43, 87,174,244, 30,212,175,223, 39, 0, 22, 85,166,140,142, 82,105, 19, 31, 31, 31,156, 62,125, 26,201,137,137, 95,153, 1,109, -101,190,207,225,114, 91,183,109,219, 22,191,254,250, 43, 82, 95,190,252,202,252,199, 50, 22, 62, 40, 1, 57,188,248,248,175,182, -109,219,182,117,204,152, 49,224,242,120,173, 97, 54, 87,230,103,254,148,248, 62,102,194,103,216,182,105,205, 54, 0, 99, 41,165, - 86,188,163, 41,173, 24, 12,198,223,180, 13,206, 6, 47,242,119, 49, 91,197, 77,137,149,138,104,121,122,122,250, 73, 36, 18,164, -167,167,163,118,104,104,182, 80, 40,132, 29,159, 15,123, 59, 59,155, 10,161,209,104,194,124,125,125, 33,151,203,225,238,238, 14, -129, 64,240,106,177,179,179,123,245,191,163,163, 35, 56, 28, 14, 2, 2, 2,160,209,104,194, 42,212,205,122,228,185,111,205,196, -143,111, 94, 61, 93,189, 95,191,254,112,113,113,133,191,127, 21,120,122,122, 66, 36, 18,193,223,223, 31, 53,106,212,160,203,151, - 47,135,131,103,125,155, 46,228, 37,205, 19,143,199,131,197, 98, 65, 86, 86, 22,158, 61,123,134,232,232,104,220,188,121, 19,247, -239,223,135, 82,169,132, 45,243, 86,107,180,218, 6, 60, 30,175, 84,147, 37,147,201, 32,147,201, 94, 25,173,156,156, 28, 36, 37, - 37, 65,165, 86, 55, 44,199,244,246,175, 87,175, 30, 23, 0, 68, 34, 17, 26, 54,108,136,141, 27, 55,154,143, 31, 61, 58,164,206, -205,155,174,254,103,207, 58,255,188, 97,195,144,129, 3, 7, 90,110,221,186, 5,133, 66,129, 39, 79,158,192,195,195,131,103,103, -111,207,230,202,171, 36,145,128,218, 93,169,236,222,178,101,203, 4,185, 92,142,101,203,150,113,248,142,142,155, 22, 0,220,114, -191,200,229,182,106,219,182, 45,142, 29, 59,134,244,151, 47,103,188, 44,197,192,188, 4,114,146,227,227,103,108,219,182, 13, 93, -187,118, 5,225,241, 42,157,168,212,188,121,243,122, 86,171, 21, 15, 31, 62,132, 51,112,187,178,223,175, 81,179,102,120,113,228, - 87, 12, 92, 47,107, 61, 49,112, 61, 42, 42, 10, 34,145, 8,181,235,212,105, 84,201,159, 89, 78, 8,201, 24, 51,225, 51, 28, 62, -243, 27, 0, 96,219,166, 53, 89, 37, 76, 22,131,193, 96, 17,173,191,101, 68,171,216, 88,149, 92, 94, 61,200, 86, 82, 4, 0,192, -231,243, 97, 39, 20,194,206,206,174,208, 32, 9,133,149,113,124,176,183,183,127,101,172, 74, 26,172,146,255, 59, 56, 56,216,100, - 96, 0,160,224,249,153, 54, 99, 63, 28, 99, 39, 20, 10, 97, 48,232, 65, 41,133, 80,104, 15,103,103,103, 4, 5, 5, 65,161, 80, -160,101,171,118,250, 20,153,224,132, 91,237,190,209,111,178, 3,205,102, 51,212,106, 53, 10, 10, 10,144,159,159, 15,133, 66, 1, -173, 86,107,115, 87,116,171,213,202, 77, 73, 73,193,158, 61,123,144,151,151, 7,160, 48,209,186,216, 92, 21,255, 77, 72, 72,192, -206,157, 59,145,152,152, 88,169,227,211,166, 77, 27,156, 56,113,130,219,190, 83,167,205,231, 3, 3,211,207, 7, 6,166,183,239, -212,105,243,177, 99,199,184,126,126,126, 72, 74, 74,194,189,123,247, 80, 80, 80, 0, 74, 41,235, 63,255, 6,188, 0, 10, 52,249, -249, 99,102,205,154, 69, 37, 18, 9,150,253,240, 67,131, 69,192, 48, 91, 13,140,180, 28, 3, 35,125, 59, 3, 3, 74, 41,172, 86, - 43, 44, 22,203, 27,109, 27, 33,132,240,249,252,202, 14,173, 64, 42,161,255, 42,241,125,250,215,139,113,234,215,131,197, 31,197, - 49,147,197, 96, 48,254,238,148, 55,215, 33,175,132,131,124,245,183, 44,178,178,178,210,212,106,117,245,192,192, 64,164,166,166, -122, 6, 4, 4,188,180,227,243, 33,176,179, 3,225, 84,236, 9, 28, 28, 28, 30,166,167,167,183,242,243,243,131,217,108,126,101, -170, 94,111, 58, 44,142,210,220,191,127, 31, 14, 14, 14, 15,161, 43,119,228, 4, 88, 12, 5, 85, 27, 53,106,244, 42, 50,228,236, -236, 12,103,103, 41,132, 66,123,204,158, 61,219,186,114,249,242,117, 1, 29, 23,200, 71, 79,153, 69,103, 45,218,252, 78,119,174, -173, 55, 38, 7, 7,135,135,254,254,254, 45,164, 82, 41, 14, 31, 62,140,164,164, 36, 20, 20, 20, 64,163,209, 64,175,215, 67,163, -209,192, 96, 48,192,222,222, 30,117,234,212,129,147,147, 19, 46, 92,184,240, 16,122,125,233,230, 50, 47,239,240,195,135, 15, 91, - 52,109,218,244, 85, 68,165, 67,135, 14,164, 67,135, 14,238,175,162,104, 26, 13,114,115,115,113,231,206, 29, 92,184,112, 1,132, - 16,196,197,197, 89,244, 90,237, 94,118, 90,188, 25, 58,224,119,238,182,109, 91, 63,250,232,163, 15, 91,181,106, 5, 11,240, 30, -128,157,255, 45, 3, 83,204,205,155, 55, 31, 89, 44,150, 86,181,106,213,130, 12,104, 6,224,215, 74,153,200,231,207,163,204,102, -115,167, 6, 13, 26,224,240,129, 3,109, 0, 36,149,182,158, 26,104, 19, 30, 30, 14,173, 86,139, 39,143, 31, 71, 86,194,100,109, -158, 57,239,251, 15,222, 31,251, 9,118,108, 94,135,109,155,214,164,108,221,184,218, 31, 54,228,143, 49, 24,140,127, 85, 52,171, - 66, 47,242,191, 72,105, 57, 90,197,230,139, 87, 25, 33,121, 65, 65,100, 84, 84, 84,245, 70,141, 26, 97,243,230,205, 77, 91,182, -104,145, 38,176,179, 51,219, 9, 4,224,216,112, 35,209,170,213, 23, 47, 94,188,216,172,111,223,190,188, 91,183,110,193,219,219, -251,149,209, 42,254,203,227,241, 64, 41,133,131,131, 3,142, 28, 57, 98,212,170,213, 23, 43,140, 22, 89,172, 22, 78,145,209,163, -148, 66, 38,147, 65, 32, 16, 96,197,138,149, 88,187,124,249,112, 11,112, 48, 88,236,241, 37, 0,251,255,218, 13, 90,163,185,116, -234,212,169,198,115,231,206,229, 87,169, 82, 5, 50,153, 12, 5, 5, 5,200,203,203,131, 66,161,128, 66,161, 64, 65, 65, 1,100, - 50, 25,236,237,237, 17, 29, 29,109,210,105, 52,151,202,210, 19,234,116,135, 70,141, 26, 53, 61, 42, 42,202,135,199,227,193,100, - 50,193,106,181,194,106,181,194,104, 52,226,249,243,231,136,137,137,193,211,167, 79,145,159,159, 15, 62,159, 15, 46,151,139,251, -247,239, 23,136, 77,166, 3,236,148,126,115,248,192,225, 27, 55,110,124, 56,114,228, 72,248, 86,169,210, 14,169,169, 54, 25,152, -163,229, 24, 24,249, 27, 24,152, 63, 24, 32,165,242,110, 66, 66, 66,171,246,237,219,195,167, 74,149,239,235,164,166,158,127, 92, -137, 60, 45,139,217,124,253,198,141, 27,157,222,127,255,125,108,222,188,249,123,143,132,132, 51, 57,175, 53,115,122, 0, 30,213, -106,212,248,254,131, 15, 62,192,185,115,231, 96, 49,155,175,151,115,209, 41, 57,226,123,213, 15,198, 79,246,127, 45,241,125, 35, - 33,100, 18,128,101,172, 70, 49, 24,140,127,114, 68,171, 82, 77,135, 34,139,101,230,180,105,211, 76, 28, 14, 7,253,251,247,119, -252,245,216,177,129,247, 31, 60, 8,202,206,206,118,182, 88, 44, 21,106,121,232,245,171,167, 77,155, 38, 51, 24, 12, 8, 9, 9, - 65,126,126, 62, 44, 22, 11,120, 60, 30,120, 60, 30, 8, 33,224,112, 56,144, 72, 36,136,138,138,194,214,173, 91, 21, 30,122,253, -234, 10,111, 18, 22,203,195,157, 59,119,130,203,229, 82,123,123,123, 16, 66,192,227,241,176,114,229,202,236,181,192, 97, 0,224, -114, 56, 6, 0,224,112,136,173,217,187, 21,182, 91,218,217,217,193, 90,216, 9,160,194,117, 93,244,250, 85, 75,151, 46, 85, 62, -121,242, 4,106,181,250, 85,244, 77,165, 82,189, 74,174,151,201,100, 32,132, 64,173, 86,227,216,177, 99, 74, 23,189,126, 85, 89, -122,121, 64,102,106, 92, 92,239,166, 77,155,230, 37, 36, 36, 64, 46,151,227,225,195,135,184,112,225, 2,246,239,223,143,115,231, -206,225,249,243,231, 48,155,205,240,243,243, 3,165, 20, 71,143, 30,149,155,149,202,247,242,128, 76,118, 90,148, 77, 85,111,239, - 78, 94,158,158,201, 30,238,238,169, 85,189,189, 59,189,254,185, 20,136,141,141,141,133,217,108, 70, 80, 80,144,107,121,121, 90, -212,108,190,113,227,198, 13,188,255,254,251,240,175, 94,125, 73, 32,224,241,250, 58,129,128, 71, 96,141, 26, 75,138, 13, 12, 53, -155,111, 84,182,204,142,192,154, 47,191,252, 82, 43, 16, 8,176,111,223,190, 32, 83,205,154, 79,121,192, 48, 9, 16,218, 30, 16, - 84,244,125, 31, 96,221,215, 95,127,157, 73, 8,193,174, 93,187,220,165, 53,106, 60,226, 1,163,164, 64, 85, 41, 80,149, 7,140, -146,214,168,241,104,223,190,125,238,102,179, 25, 83,166, 76,201,244, 1,214,149, 35, 57,153, 82,218,139, 82,218,150, 82,234,191, -117,227,106,156,250,245, 96,177,201, 26, 75, 41,189, 67, 41, 29, 73, 41,125,196,106, 28,131,193,248, 39, 67, 74,203,131,226, 55, - 91,148, 5, 80,207,118,205,235,227,238,131,103,114,119, 23,167,179,197,159,229,199, 28,172,213, 49,204,169,254, 79, 63,253, 4, - 62,159,143,148,148, 20, 60,126,252, 24, 78, 78, 78, 24, 62,124,184, 94,171, 84,246, 46,158,235,144, 16,210,153, 82,122,161, 72, -179,112, 62, 53,121,156,164, 6, 47,186,250,153, 83, 39,184, 82,169, 20, 42,149, 10, 28, 14, 7,246,246,246,112,112,112,128, 72, - 36,194,189,123,247, 16,209,171,143, 37,199,161,237,171, 1, 75,139,231, 83, 43,169, 9, 66,184, 0,208, 12,112,136, 2,190,240, -244,245,157, 54,103,206, 28, 81,183,110,221, 32, 16, 8, 80,165,106,112,102, 80,247,101,107, 56, 28, 98, 78,205, 83,204,174, 81, -213, 87,250, 56, 46, 9, 0, 41,156, 19,177,104,174,195,210,202, 25, 96,184, 26,116,228,151,229, 78, 13, 27, 22,230,163,203,100, - 50,100,101,101, 33, 59, 59, 27, 50,153, 12,106,181, 26, 0,112,226,196, 9,156,186,246, 84,161,173, 50, 48,190,172,114,254,103, -219,159, 57,250, 26,111, 87,219,189,243, 23,174,135,135, 7,178,178,178,144,147,147, 3,153, 76, 6,173, 86, 11,139,197,130,252, -252,124,108,217,246,139, 37, 79,210, 54,177,120, 64,200,114, 53,213, 41, 34, 87,213,111,126,225,117, 2,233,135, 31,126,232,232, -228,228, 4,171,213,138,130,130, 2, 36, 39, 39, 35, 33, 33, 1,215,174, 93, 83,103,203, 12, 80,187,119, 73, 45, 30,176,180,212, -253,249,238, 66,168,127, 63,205,162,186, 4, 0,190, 62, 62,233, 47, 95,190,244,180, 88, 44,240,243,243, 51,203,242,243,151,216, - 1,231, 28,129, 12, 0, 52, 23,152,179,106,205,154, 49,125,250,244, 65,147, 38, 77, 82, 50,179,178,170,149, 86,151, 64, 8, 55, - 4,144,106,170, 84,137,185,115,231,142,119,114,114, 50,222,127,255,253,220,151, 47, 94,204,144, 22,229,107,201,129, 54,129, 53, -106, 44,217,183,111,159,123,245,234,213, 17, 22, 22,150,105,159,156, 92,247, 25, 32, 47,163,126,150,121,110,202, 98, 79, 86,155, -216,175, 94,147,143, 63,254, 24,102,179, 25,215,174, 93,195,237,219,183,241,242,229, 75,252,246,219,111, 50, 39,177,120, 72,241, - 92,135,101,213,207,247,130,213, 65,187,118,237, 36, 2,129, 0,219,182,109, 67, 84, 84, 20, 0, 32, 60, 60, 28, 31,124,240, 1, -204,102, 51, 70,140, 24, 73, 79, 62, 19,197,151, 87, 63, 9, 33,245, 0,252,128, 66,147,215,132, 82,106, 79, 8, 73, 7,224, 95, -153,156, 44, 86, 63,153, 38,211,252,247,104,254, 83,169,112,174,195,133,235, 33,253,227, 52, 31,227,210, 15,110, 92,192,107,221, -166,109,232,130,249,243, 56, 77,155, 54,133,191,191, 63,194,195,195,145,156,156, 44,116,118,118,174,104, 62, 53, 85,219,238,195, - 18,234,215,175,239, 60, 99,198, 12,105,215,174, 93,249,254,254,254,160,148, 34, 42, 42, 10,135, 15, 31, 54,110,222,188, 89,161, -241,234, 37,139,188,188, 71,101,203,124,106,183, 1, 13,128,111,170,164,167,111,250,100,226,196,121, 13, 27, 53,250,112,254,252, -249, 28,137,131,136,191,120,246, 88,123, 0, 88,248,227,126,105,159,129,195,177,170, 38,208,110, 88,233,243,200,149, 44,103,114, -234,184,151, 61,250,117,170,249,197,164, 49,150,193,131, 7,139,157,156,156,224,239,239, 15, 23, 23, 23,196,199,199, 35, 53, 53, -149, 30, 63,126, 92,117,243,126, 44,255,232,185,187, 47,237,165, 62,182,204, 75,168,108,219,109, 80, 98,143, 30, 61, 92, 70,141, - 26,229,216,184,113, 99,190, 80, 40,132, 80, 40, 68, 86, 86, 22,158, 63,127,110, 60,126,252,184, 74,227,249, 94, 65,228,229,125, - 74, 27,231, 58,212,182, 29,186,224,249,245,243,243,167,196, 60,124, 56,210, 10, 52, 48, 26,141,126, 22,139,133,112, 56,156, 12, -171,213,250,208,168, 84,110,213,135,207, 95,201,230, 58,180, 13,139,197, 34,176, 88, 44,144,201,100, 56,127,254, 60,239,197,139, - 23,115, 30, 60,120, 48, 39, 61, 61, 29, 38,147, 9, 3, 6, 12, 64,120,120, 56, 46, 95,190,140,156,172,172,227,229,105, 61, 3, -228,194,212,212, 15,198,141, 27,119,122,231,206,157,156, 7, 15, 30,184,111,219,182,109, 75,105, 6,102,228,200,145,214,172,228, -228, 15,244,128,188,156,250, 89,222,185,153,123,102,223,218, 7,125,251, 15,172, 51,127,238, 28,126,203,150, 45,225,238,238,142, - 54,109,218,192,104, 52, 58,215,174, 93,187,162,115, 83,217,182,251,144,248, 6, 13, 26,136, 87,174, 92,233, 61,102,204, 24, 76, -154, 52, 9, 0,160,213,106,113,238,220, 57, 76,153, 50, 37, 51,153,215, 76, 93, 81,253, 44,138, 84, 21, 27,176,171, 0,218, 2, -136,103,137,239, 12, 6,227, 31, 25,181, 34, 36,156, 82, 26, 69, 8,241, 1, 16, 1,224, 36,165, 52,163, 76,163, 5,252,103, 62, -181,235,183, 31,161,228, 52, 31,133,248, 60, 54, 7,140,122, 49, 97,218,146, 48,174, 73,225,194, 39, 58,167,184,216, 88, 82,209, -156,135,175,230, 83,147, 6,171,220, 18,246, 54, 93,188,112,225,103,171, 86,173,234, 84, 60,132,131,131,131,195, 67,173, 90,125, -209, 67,175, 95,173,145, 6, 95,172,236,220,124,169, 64, 22,128,137, 46,145,145,107,122,246, 25,176,212,222, 53,136, 63,107,209, -102, 29,151,195, 49, 60, 79,207,193,170,154,128,216,134, 14,146, 26, 3, 16, 35,243, 49,103,185, 13,124,246,245,151, 95,126,177, -240,155,111,154, 74, 36,146,118, 70,179, 57,216,106,181, 2, 86,107,156, 70,173,190, 74,141,198, 59,250,240,185,203,237,165, 62, -212,230,121, 9,157,107, 43, 93, 19, 15, 54,221,190,117,235,228, 3, 7, 14,252,105,219,221,244,250, 53, 26,231,218, 23,108,217, -246,146,235,232,128,223,145,157,253,123,153,149, 0,108,174, 67,155,159, 62,172,214,241, 46, 46, 46, 59, 58,117,234,100,223,185, -115,103, 68, 68, 68,160,101,203,150,176, 90,173,160,148, 66,169, 84, 98,255,254,253, 88,186,116,105, 92, 53,224,155,138,244,244, -192, 69,225,169, 83,239, 53,104,208, 96, 91,121, 6,166,200,100, 85,152,147, 88,254,185, 41,140, 51, 75,123, 39, 13,253,100,113, - 77,131, 34,195,217,205,193,236, 29,243,232, 33,199,246,115, 51, 68,105,137,218,223,108, 64,191,126,159,112,121,188, 54, 69, 61, - 32,233,147,199,143, 35,139, 39,149, 70,248, 7,231, 43, 89,151,138,199,174, 99,137,239, 12, 6,227,159, 74, 56,128, 40, 0, 17, -148,210, 77, 69,201,241,101, 39,195,243,120,188,236,226,168, 15,143,199,203,142, 63, 58, 97,120,121,234,124,160, 83, 81, 36, 11, - 21,206,117, 88,244,127, 18,160,132, 94,255,237, 31, 6, 35, 45,209,187,144,255,218,250,149,217,218, 2,224, 25,204,250,158,200, -126, 12, 28,155, 88,168,215,116,225, 87, 37,183,169,204,155,236, 31,126, 87,144,175, 3,174, 67,165,186, 14,149,170,212,164, 93, - 62, 79,144, 95, 81, 57, 95,223,246,100, 64,241,182,219,206,171,228,254,225,189,197,254,252,183,145,150,155,123, 20,128,164,202, -137, 19, 94,103, 78,156, 24,252,197,212,169, 3,124,124,125,107,184,187,187,187, 56, 58, 58,114,110,221,186,149, 96,214,233,214, - 52, 4,182, 23, 69, 83, 43, 68, 15, 92, 12, 73, 78,174, 59,168, 95,191, 79, 8,143,215,186,164,129,161,102,243,111, 65,192,186, -242, 34, 89,111,122,110,250, 11,125, 58, 21, 69,178,192,181,241,220, 76, 45, 44,199, 34,152,205,139, 16, 29, 93, 74,157,175,116, - 93, 90, 72, 8, 81,130, 37,190, 51, 24,140,127, 46, 39,139,204,213,201, 63,125,242, 87,206,239, 3,160, 51,211,100,154,255, 20, -205, 66,175, 2, 39,182, 63,153, 38,211,100,154, 76,243,221,107,254, 83, 23, 30, 51,161, 12,134,109,208,194,228,116, 5,219, 19, - 12, 6,131,193, 40, 73,137,220,172,146,247,140, 77, 64, 97,234, 78,231, 50,110, 42, 23, 42,241, 3,157,223,224,166,117,129,105, - 50, 77,166,201, 52,153, 38,211,100,154,255, 46,205,138,180,255,142,189, 25, 9, 33,227,139,115,179, 94, 31, 83,139,216, 58,205, -205, 27,254, 48,235,250,202, 52,153, 38,211,100,154, 76,147,105, 50,205,127, 52,229, 69,180, 56,108,247, 48, 24, 12, 6,176, 96, - 1,225, 0,132, 0, 11, 56,192, 65, 46, 48,136, 91,248,250,205, 25, 52,136,148, 58,152,237,228, 17,174,142,108,143, 51, 24,255, - 28, 40,165, 25,101, 77, 42,205,114,180,254,187, 14, 56,192,219,219,123, 35, 0,146,153,153, 57,158, 82,154,204,246,202,255, 30, -110,110,110,157,204,102, 51,228,114,249,197,127,226,246,213,173, 73,250, 81, 14,106,255,231,138,129,228,199,113,116, 71,105,235, -214, 9, 38,239,131,252,103, 44, 46, 98,197,147,152,231,244, 72, 37,234, 60,231,189,206,254,235, 0,224,244,133,148, 79,254,138, -113,181, 8, 33,181, 60, 60, 60,206,242,120, 60,158,197, 98,153,152,149,149,117,162,108, 35, 52,136, 11, 0,124,122,121,166,187, -107,232,140,207, 63, 34,124,141,126,171, 76,175, 85,203,185,124,110,162,144,239,125, 3, 92,191,211, 5,170, 22,143, 75,251,254, -129, 3, 7,202,156,197,187, 94, 48,121, 47,180, 78,157, 94,141,194, 68,241, 63,172,110,186,170, 93,144, 59, 63, 33,229,190,228, -251, 13,242,141, 78,174, 85,123,141, 26,226,118,130,231, 64, 70,110,217,146,171, 98,103,153,237,124, 71,136,171, 17, 8,227, 11, -133,254, 22,179,217,139, 0,148,203,227,101,153,244,250, 20, 1, 16, 61,131, 82,217, 63, 93, 83, 32, 20, 86,177,152,205, 94, 0, -240,191, 88, 78,198, 31, 41,211,104, 57, 58, 58,222,227,112, 56, 85, 74, 78,134, 91, 60,159, 96,241,123, 37, 63, 35,132,192, 98, -177,164,230,231,231, 55,174,196, 5,209, 9,192, 96, 0,197, 93,212,119, 3,216, 79, 41, 85,188,225, 5,214, 73, 32, 16, 76, 19, -139,197, 29,181, 90,109, 93, 0, 16,137, 68, 49,106,181,250,146,209,104,252,225, 77,116, 9, 33, 60, 0,131, 36, 18, 73, 7, 14, -135,211,129, 82, 74, 40,165,151, 85, 42,213, 37, 0, 7, 40,165,230, 55,208, 20,121,122,122, 46, 10, 13, 13, 29, 54,115,230,204, - 60, 55, 55,183,144, 41, 83,166,220,245,240,240,216,147,155,155, 59,155, 82,170,253, 95,168, 28,132,144, 26,222,222,222,187,249, -124, 62, 55, 37, 37,165, 3, 0,248,251,251, 95, 54, 24, 12,150,236,236,236,225,148,210, 23,149,212, 19, 3,104, 46,145, 72, 26, - 75, 36,146,182, 22,139,165,118,209,252,140, 79, 84, 42,213, 53,163,209,120, 15,192, 45, 74,169,250,127,200, 12, 59,122,122,122, -238, 36,132,128, 16, 18, 76, 41, 85,254,227,158,196, 56,168,253, 56,230,105,200, 43, 51, 85, 55,180,156, 29,130,128, 82,214,181, -217,104,117,108,231,211,171,119,239, 46, 28, 0, 48,152, 78,247, 66, 37, 39,191,182,197,100,245,239,223,255,247,157, 59,119,186, -232,245,122,140, 31, 63,126,183, 84, 42, 93, 39,151,203,103,150,247, 61, 39,137,203,148,101, 43,207, 57, 20,206,127, 13, 79,171, -213,226,153,150,246, 34,248,241,163,223,187,199,196,220, 92,172,125,122,233,150,149,240, 39, 24,209,230,169, 45,229,168, 83,131, -244,236, 51,168, 95,196, 55,223,204,199,176, 33,195,170,198,196,232, 68,126, 78,241,118,249, 90,113, 77, 55, 15,207,222,223, 44, - 60, 72,110, 92, 63,218,123,231,182, 5,151, 62,252,208,189, 35, 51, 91, 54, 29, 91,178,144,199,107,238, 18, 26,218,118,200,209, -163,144,248,251,243,120, 66, 33, 7, 0,204,122,189,191, 42, 37,197,103, 95,239,222,205, 22, 16,114,101, 30,165,183,153,230,255, -191, 38,163,146, 70,139,195,225, 84, 73, 75, 75,243, 20,139,197,197, 97, 49, 88, 44, 22, 88, 44,150, 87,147, 23, 83, 74, 95,253, - 53,155,205, 8, 13, 13,181,233,137, 22, 64, 71, 0,163,219,183,111, 63,240,135, 31,126,224,135,133,133, 21, 79, 25,210,102,214, -172, 89, 63, 18, 66, 14, 1,216, 14,224,162,173, 79,188,132,144,110, 98,177,120,215,178,101,203,156,186,116,233,194,243,245,245, - 5, 33, 4,153,153,153,205, 47, 92,184,208,120,202,148, 41, 19, 9, 33, 35, 40,165,103, 43,113, 98,215,115,116,116, 60,216,175, - 95,191, 42,237,218,181,179,175, 83,167, 14, 44, 22, 11,238,223,191, 63,230,222,189,123, 67, 15, 29, 58, 52,143, 16, 50,208,214, -249,218, 8, 33, 68, 34,145,140,242,243,243, 91, 52,119,238, 92,215, 17, 35, 70,216, 61,122,244,168, 32, 40, 40,136,220,184,113, -195, 99,255,254,253, 19,151, 44, 89, 50,200,209,209,113,182, 74,165,250,133,218,144, 64,231,228,228,116,143,195,225, 84,177,197, - 8, 3,176,217, 12, 19, 66, 26, 86,171, 86,109,255,245,235,215,171, 37, 37, 37, 89,250,246,237,187, 3, 0, 46, 93,186, 20,102, - 50,153, 72,215,174, 93, 79, 19, 66, 6, 83, 74,239,219,184,237,245, 93, 93, 93,127, 29, 54,108,152,107,141, 26, 53, 28,170, 85, -171, 70,196, 98, 49,184, 92, 46,228,114,185,239,163, 71,143, 58,223,190,125, 91,123,225,194,133,124, 66, 72,111, 74,105,116, 37, -142, 83, 75, 79, 79,207,145,124, 62,191,158,217,108,246, 3, 0, 30,143,151,102, 50,153, 30,101,103,103,239,164,148,254,254,166, - 39,136,151,151,215,218, 69,139, 22,185,103,103,103,211, 37, 75,150,172, 5, 48,234,159,122, 49,216,189,231, 0,238,221,189, 13, - 0, 2, 66, 8,121,189,254, 17, 66, 72,237, 96, 8, 62,255,124, 42, 26, 55,105,134,225,195, 6, 85,168, 25,209,217,127, 25,223, - 78,224,166,211,233,126,151,107,244, 7,188,220,156, 7, 15, 27,218, 51, 14, 0, 78,159,185, 50,184, 89, 51,215,203, 82, 7,225, - 32,123,123,251,150, 38,131, 49,239,228,133,148, 47, 43, 99,170,252,252,252,206,186,184,184, 56,228,231,231,103,230,228,228,172, -239,223,191,255,194,237,219,183,187, 36, 36, 36, 32, 37, 37, 5,159,125,246,153, 36, 53, 53,245, 19,161, 80,120, 83,175,215,151, - 25,217, 82, 42,243, 87,207,154,209,103,174, 84,234,206, 21, 59, 56,193, 81,234,138,160, 26, 13,208,188,101, 47,188, 23,241, 33, -158,199, 69, 53,223,190,237,155,168,180,180, 11,223, 73, 92,171, 47,148,201,170,149,121, 93,170, 27, 66,218, 21,155,172,185,115, -231, 35,246,233, 83,101, 82, 34,231,211,147, 71,121, 14,239,117, 10, 21,154, 13,153, 73, 55,174, 31,173,214,186, 77, 95, 0,104, -188,115,219,130, 75,147, 71,184,118, 90,179, 43, 95,201,110, 73,101, 95, 59,191,225,243, 71,117, 91,185,210, 51,124,226, 68,129, - 42, 49,209, 24,191, 97,131, 38,235,218, 53, 11, 79, 40,164,254,221,187, 19,143, 14, 29,236, 39, 62,121, 34,248,109,201,146,182, -139,237,236,130,102, 25, 12,187,152,230,255,159, 38,171,163,175,146,225, 95,229,106, 21, 55, 31,242,202,249, 18,196, 98, 49,246, -237,219, 7, 62,159, 15, 30,143, 7, 62,159, 95,230,255, 1, 1, 1,182, 20,164,191,183,183,247,143,235,214,173,243,234,214,173, - 27,236,237,237, 95,125,198,229,114,209,165, 75, 23,116,238,220,153,159,158,158, 62,116,223,190,125, 67, 23, 47, 94,156, 69, 8, -153, 68, 41, 61, 92,129,110,135,144,144,144,195,231,206,157, 19,233,116, 58, 92,187,118, 13, 5, 5, 5,176,179,179, 67,149, 42, - 85,208,181,107, 87,222,211,167, 79, 93,187,116,233,114,152, 16,210,147, 82,122,217,134,178, 54,246,244,244,188,122,224,192, 1, -251, 6, 13, 26,144,231,207,159, 35, 60, 60, 28, 0, 32,151,203,209,183,111, 95,251, 17, 35, 70,212, 24, 58,116,232, 45, 66, 72, - 59, 74,233,189, 10,244, 26,121,123,123,255,210,175, 95, 63,223,197,139, 23, 59, 57, 58, 58, 34, 41, 41, 41,195,219,219, 59,184, -120,127, 15, 29, 58,212,174, 87,175, 94, 62, 75,151, 46, 93,125,240,224,193, 47, 9, 33,163, 40,165,145,229,233, 22, 27, 98, 7, - 7, 7,100,101,101, 97,247,238,221,248,228,147, 79,192,229,114,145,157,157,141,253,251,247,227,211, 79, 63, 45, 54, 52, 54,153, - 97,177, 88,220,185, 65,131, 6, 91, 46, 93,186, 84,197,217,217, 25,190,190,190,156,175,191,254,186, 94, 80, 80,144,168,106,213, -170,220,140,140, 12, 28, 62,124, 56,104,228,200,145,191,218,219,219,143,209,233,116, 21, 54,169,121,121,121,109, 61,121,242,100, - 64, 76, 76, 12, 54,108,216,128,252,252,124,216,217,217,193,217,217, 25,222,222,222, 8, 14, 14, 38, 51,102,204,112,232,213,171, -151,195,164, 73,147,182, 2,104,104,195, 49,106,224,233,233,185,113,232,208,161, 65, 11, 22, 44,112,246,246,246, 70,241,131,129, - 92, 46,175,146,148,148,212,124,238,220,185, 3,189,188,188, 18,178,179,179, 39, 80, 74, 31, 84,242,196,105,216,169, 83,167,158, -125,251,246,229,102,100,100, 96,231,206,157, 61, 9, 33, 13,109, 53,151,127, 55,238,221,189,141,241, 31,127,166,242,245,247, 23, -156, 59,187,165,191, 76, 86,231,174,179,168,112, 66,106,153, 22,198,142,237,184, 77,186,118,251, 80,208, 35,162,175,106,211, 79, -171, 37,182, 24, 45,190,157,192,109,247,174, 21,201,215,111,220,171,119,254,194,237,238,253,123,247,166, 2,129,115, 16, 0,124, - 57,229,115,254,225, 99,199,182,117,233,220, 44,189, 77,235,198,201,195, 71, 76, 13,168,196,177,169, 85,171, 86,173, 43, 81, 81, - 81, 94, 66,161, 16,249,249,249,110,155, 54,109, 90,209,186,117,107, 78,124,124, 60,158, 62,125,138,196,196, 68,200,229,114,116, -233,210, 69, 18, 25, 25,185, 30, 64,153, 70,203,200,233,184,200,183,170,105,141,155, 72, 92,205,104, 81,120, 82, 83, 70,157,243, - 39,207,215,223,187, 83, 27,238,229, 19, 26, 60,250,131,121,248,102,225, 33,254,158,221,223,207,189,120, 97, 47,192,169, 86,246, -140, 0, 20, 45,103,205,158, 9,133, 82,143, 17,195,198, 97,228,176,113,110, 20, 6, 31,106,209,137, 13,218, 2,103, 71,193,147, - 19,235, 54,175,232, 7,160, 74, 9,179,117,145,153,173,178,249,134,199,107,214,243,199, 31, 61,234,141, 29, 43,124,176, 96,129, - 58,247,218, 53,109,205, 30, 61, 10,194, 63,250, 72, 15, 0,202,196, 68, 65,236,188,121, 14, 30,109,219,138, 90, 76,155,230, 98, - 49, 24,188,191, 37,164,233,215,148,222,169,172,102,192,224,193,150,185,219,182, 53,185, 54,117,106,123, 98, 50,113,187,183,104, -113,127,201,206,157,105,111,163,249, 46,203,153,126,245,170, 62, 63, 40, 8,225,125,251,230, 5,120,122,234,223,229,182,191, 77, - 57, 25, 40, 14, 74,101, 0, 40, 30, 25,190,240,122, 69, 41,197,201,147, 39,219, 1,184, 2, 96, 65, 68, 68,196,124, 0,112,118, -118,206,146,201,100,158,135, 15, 31,174,208,100,241,249,124,248,248,248, 32, 56, 56, 56, 59, 43, 43,203,171,156,139, 99,138,213, -106,173, 66, 41,125, 21,125, 41, 11,189, 94,143,184,184, 56,212,175, 95, 63,149, 82,234, 95, 94,211,142,131,131, 67,252,211,167, - 79,221, 31, 63,126,140,123,247,238, 33, 40, 40, 8, 46, 46, 46,224,243,249, 48,153, 76, 80, 40, 20, 8, 9, 9,129, 80, 40, 68, -163, 70,141,114,213,106,117, 80,121, 77, 64,132, 16,161, 88, 44,142,187,122,245,170,127,120,120, 56,238,220,185, 3,127,127,127, -120,123,123, 3, 0, 18, 19, 19,113,227,198, 13,244,232,209, 3, 81, 81, 81, 24, 48, 96, 64,138, 90,173, 14,166,148,234,203,210, -116,115,115,203,184,116,233, 82,106, 88, 88,152, 78,173, 86,115,178,178,178,248,215,174, 93, 51, 43,149, 74,137, 92, 46,231,203, -100, 50,190, 66,161,224,169,213,106, 62,135,195, 17,104,181, 90,254,197,139, 23,185, 6,131,193,169,188,253, 84,124,156,142, 29, - 59,134,176,176, 48, 28, 62,124, 24, 95,124,241, 5,126,251,237, 55,248,251,251,227,192,129, 3,152, 54,109, 26,158, 61,123, 6, -119,119,119,212,169, 83,167,220, 99, 4, 0, 53,107,214,124,254,240,225,195, 26, 2,129,160,120, 94,199,226,249,242,144,147,147, -131, 23, 47, 94, 32, 45, 45, 13, 53,107,214,196,176, 97,195, 94,164,166,166,214,172,168,242, 85,169, 82, 37, 39, 38, 38,198,189, -126,253,250,200,202,202,130,179,179, 51,164, 82, 41,156,157,157, 95,253, 31, 20, 20,132,169, 83,167,194,219,219, 59, 91,171,213, -122, 85,100,130,194,194,194,206, 94,188,120,209,221,201,201, 9,153,153,153, 80, 40, 20,224,241,120,112,112,112,128,187,187,251, - 43, 35, 31, 23, 23,135,136,136,136,220,248,248,248,110,149,136,192,113,188,188,188,158, 70, 71, 71, 7, 83, 74,145,156,156,140, -103,207,158,225,227,143, 63,142,211,233,116,161,255,164, 57,251, 74,228, 93, 9, 70,125, 48, 94,208,175, 79, 75,195,147,152, 19, - 68,104,125,134,134,245,156,228, 0,112,255,145, 66,170,231,132,160,118,221,158,244,200,175,191,219,253,178,125, 19, 31, 86,120, -129,224,217,227, 88,250,109, 89,218,221, 58,250,142,253,252,243, 49,245,218,183,110,199, 81,170,213,158,235,215,175,108, 20, 31, -255,196, 19, 0,130,130,106,103, 79,156, 56, 37,210, 81, 44,206,190,114,227,170,117,213,170,173,143,206, 94, 74,223,108,195,177, - 9, 10, 14, 14,190,121,236,216, 49,119, 79, 79, 79, 72,165, 82,168,213,106, 24,141, 70, 60,126,252, 88,183,111,223, 62,147,147, -147,147, 99,102,102, 38,100, 50, 25, 8, 33, 56,118,236, 88, 50,165, 52,240,117,173,226, 28, 45, 0,248,248,189,218,252, 58, 29, -131, 93, 4, 66,179, 72,196,143,245, 1,177, 8, 9,149,120,157, 62,123,191,254,233,243,119,134,247,235,255,133, 71,155,118,253, - 48,119,206, 64, 83,122,122,114,184, 17,109,158,150,150,163, 85, 59,152,116,236, 59,160,223,160,111,190,153,143,249,115, 23,224, -196,177,163,114,137,152,163,119,114,230, 75,219, 54,111,165,155,250, 73,159, 20,149, 42,221,255,155,165,251,134, 69,244,153, 90, -165,117,155,190,184,113,253, 40,118,110, 91,112,143,136, 40,107, 70,124,141, 5,132,184, 56, 7, 5, 77,152, 28, 23, 39,120, 48, -127,190,202,156,158, 94,208,120,202,148,220,210,214, 77, 61,127, 94,108,231,235,235,228,210,187,183,235,234,192, 64,106,202,206, -222, 88, 90,142, 81,105,154, 23, 36, 18,231,189,167, 79,119,162,124,126,187,233, 95,125, 37,234,217,179, 39, 20, 10, 5, 14, 29, - 58,132,141, 27, 54,232,125,124,124, 30,250, 62,122, 20, 85, 79,161,152, 99,171,102,227, 41, 83,114, 45, 22, 11, 25, 52,109, 90, -151,152,196,196,142,153,217,217, 85, 1,192,199,213, 53,165,113, 80,208,189,173, 39, 78, 60, 91, 91,173,154,213,214,114,254,124, -230,140,215,193,164,164,177,174,174,174,162,172,236,108,158,208,206, 46,175,121,157, 58, 7,126,154, 61,251,138, 57, 58, 90, 96, - 95,165,138,147,180,103,207, 74,111,123,227, 41, 83,114,243,149, 74,222,228,133, 11, 91,189,204,202,170,170,210,235,107,202,148, - 74,111,139,201,196,113,114,112,200,171, 30, 18,146,173,189,118, 45,163,186, 70,243,217,207,148,102,255, 85,199,186, 52, 47,242, - 55,138,104,189,222,235,240, 79,115, 29, 94,137,136,136, 32,165, 56, 51,155,162, 89,124, 62,255, 15,205, 84,229, 32, 32,132, 32, - 50, 50, 18,110,110,110,240,246,246,134, 80,248,199,201, 7,115,114,114,240,219,111,191,225,201,147, 39,104,208,160, 1,128,194, - 39,234,178, 16, 10,133,159, 47, 93,186,212,217, 96, 48,224,222,189,123,104,220,184, 49,132, 66, 33, 4, 2,193, 31, 76, 96,118, -118, 54,234,214,173,139,233,211,167, 75, 23, 47, 94,252, 57,202,153,163,142,199,227, 77, 26, 55,110,156,103,113, 4, 43, 37, 37, - 5,141, 26, 53,122,245,185,135,135, 7,238,223,191,143,198,141, 27,163, 74,149, 42, 24, 56,112,160,231,206,157, 59, 39, 1,248, -161, 44, 77, 59, 59, 59, 78, 88, 88, 88,147,162,136, 17, 56, 28, 78,172,147,147,147,135,151,151,151,216,201,201,233, 79,219,184, -109,219, 54, 25,135,195, 49, 85,180, 67, 57, 28, 14, 50, 51, 51, 81,175, 94, 61,200,229,114, 0,128, 90,173, 70,205,154, 53,161, - 80, 40, 94,153, 86, 95, 95, 95,104,181,229,167,126, 53,104,208, 96,126,104,104,104,215,246,237,219, 11,249,124, 62, 30, 60,120, -128,240,240,112,236,219,183, 15, 1, 1, 1,112,112,112, 64, 92, 92, 28,194,194,194,112,245,234, 85,120,120,120,160,110,221,186, -194, 70,141, 26, 93,207,207,207,191,156,148,148, 52,191,156,114,114, 36, 18, 9,174, 94,189,138,173, 91,183, 34, 49, 49, 17,233, -233,233,112,116,116, 68,195,134, 13, 81,167, 78, 29,180,108,217, 18,113,113,113, 32, 21, 84, 38, 66,136,119,112,112,240,137, 59, -119,238,184, 83, 74,177,115,231, 78,168, 84, 42, 24, 12, 6,112, 56, 28,216,219,219,195,197,197, 5, 29, 59,118,132,135,135, 7, -130,131,131,177,127,255,126,247,247,222,123,239, 84, 81, 68, 42,179,162,253,234,226,226,242,217,188,121,243,252, 61, 61, 61,145, -148,148, 4,185, 92, 14, 47, 47, 47,180,111,223,222,239,194,133, 11,159, 1, 88,249, 79,185,145, 21, 39,190, 19, 66,200,185,179, - 91,250, 7, 87, 47, 8,107, 16,226,224,127,248,132,151,255,190, 19,217,117, 1,160, 94,109,175,152,254, 61, 29, 82, 30,196,156, - 72, 57,119,246,232,189, 39,177, 56,108, 75,211,182, 92,163, 63,112,254,194,237,238,225, 13, 26, 89,151,126, 63, 45,226,147,143, -199, 10, 61,189, 62, 68, 86,242, 81, 92,184, 20, 25, 48,237,139,113, 30, 63, 44,255,249,244,249, 11,183, 57,114,141,126,142, 45, -229,173, 85, 43, 96,237,246,159, 90,186, 43,115, 15,226,249, 83, 59,136, 28,235, 33, 40,168, 22, 20, 10, 5,236,237,237,237,135, - 13, 27,102,153, 57,115,166,198,201,201,201,129, 16,130,203,151, 47,103, 3,232, 86,145,174,206,211,133, 90,140, 38, 51,181,227, - 90, 41,113,212, 18, 75,190,221,163,199, 9,232,218,185, 67, 86,235,102,245, 22,207,252,102,249,172,224, 90,225, 30, 99,198, 46, -224, 47,156, 63,124, 3, 8,218,148,166,243, 36,142, 94,170, 83,131,136, 0, 68,124,243,237,124,196,199,199,185,140, 31, 45, 91, -192, 19,138,124, 67, 3, 91, 57,110,216,122,185,123,205,154,213,170, 78,157, 52,240,228,138, 31, 87, 68,148,140,108,109,223, 54, -239, 87, 66, 72, 39,250, 87,142,187,243,247,163,254,200, 19, 39,160, 74, 78, 54,229, 95,191,174,235,244,227,143,185,254,221,186, -173, 52, 24,141,238,197,151, 10, 14, 33, 32,197,169, 19, 86, 43,225, 77,159,206,161, 60, 30, 76, 46, 46,163,103, 0,181, 42,210, -252, 34, 35,163,255,240,177, 99, 35,126, 61,115, 6,213,170, 85,123,117, 63,115,118,118,198,180,105,211, 48,101,202, 20,225,253, -251,247,155, 30, 60,120,176,233, 15,203,150,121,205, 0,250,219, 82,206,115,183,110,185,124,244,205, 55,179, 27, 52,110, 28,176, - 99,247,110, 97,141, 26, 53, 0, 0, 47, 94,188, 8,254,126,201,146,192,122, 97, 97, 89,139, 63,255,124,123,204,204,153,117, 1, - 92, 47, 79, 51,243,218, 53,195,193,164,164,177,151, 46, 95,118,174, 87,175, 30, 0,224,217,179,103,158,171, 87,175, 30, 87,119, -224,192, 17,223, 76,156, 56,167,167, 78, 39,115,202,201, 17,246, 92,187,150,183,119,208,160, 10, 53,139,203, 9, 0,237,199,140, -249,188, 77,135, 14,117,250,143, 29,235, 26, 16, 16, 64, 36, 18, 9,140, 70, 35,210,211,211, 93, 98, 98, 98,106,156, 80, 42, 21, - 71,110,221,218,249,115,209,100,241,127, 17,165,122,145,191, 83, 36,171, 84, 79, 81,244,183,253,201,147, 39, 41,128,246, 17, 17, - 17, 87,139,111,224, 22,139,197, 38,147,197,227,241, 80,148, 44,108,107,129,144,155,155,139,220,220,220, 87, 77, 71,217,217,217, -184,116,233, 18,226,226,226,192,231,243, 33, 16, 8, 96, 52, 86, 60, 7,173, 88, 44,238,220,185,115,103,222,173, 91,183, 16, 20, - 20, 4,145, 72,244,170, 92,197,139, 64, 32,128,143,143, 15, 20, 10, 5, 58,117,234,196, 95,179,102, 77,231,242,140,150, 84, 42, -237, 49,120,240, 96,187,226,215, 42,149, 10, 92, 46,247,149,105, 81,169, 84,200,207,207,135, 76, 38,131, 78,167, 67,139, 22, 45, -236, 78,156, 56,209,163, 60,163, 85, 18,141, 70,163,202,206,206,118,110,211,166,141,203,246,237,219,159,181,104,209, 34,228, 15, - 53,237,202, 21,157, 78,167,227,115, 56, 28,155,230,209,219,181,107,215,171,125,159,150,150,134, 13, 27, 54,188,250, 44, 46, 46, - 14,107,214,172,121, 53, 21, 64,121,199, 40, 52, 52,244,189,157, 59,119, 54,222,177, 99, 71, 1,151,203,197,179,103,207,176,123, -247,110, 80, 74,225,225,225, 1,141, 70,131,172,172, 44, 92,190,124, 25,102,179, 25, 18,137, 4,126,126,126,246,147, 38, 77,106, -189, 96,193, 2, 62,128, 50,141,150,197, 98,177,112,185, 92, 4, 6, 6, 98,238,220,185,208,233,116, 16, 8, 10,253,165, 66,161, -128, 76, 38, 67, 84, 84, 20,146,146,146, 80,209, 77,198,222,222,126,224,142, 29, 59, 60,237,236,236,160,213,106,161, 84, 42,145, -146,146,130,151, 47, 95,234,178,179,179,205,142,142,142,156,192,192, 64,142, 80, 40, 20,246,237,219,151, 20, 27,206,158, 61,123, -186,237,220,185,115, 72, 69, 38,137, 16,226, 81,187,118,237, 89,227,198,141,179, 47, 89,103, 51, 51, 51,209,191,127,127,135,223, -127,255,125, 38, 33,100, 55,165, 52,231, 31, 22,242,166, 50, 89,157,187,247, 46, 60, 11, 59,124,194,203,255,101,170,165,213,180, - 47,151,243, 0, 96,211,198,239, 90, 29, 62,145,246, 91,104,181,172,148,131, 71,106,221,117,118,126, 76, 43,138, 8,118,108,231, -211,203,203,205,121,112,255,222,189,233,250,245, 43, 27,125,242,241, 88, 97, 96,173,105, 0, 0, 63,190, 39, 58,153,191, 37, 26, -237, 11,251,245,235, 87, 54,234,223,123, 64, 84, 98, 98,210,198, 78,237,125,247, 95,186,154,113,188,188,136,161,167,155,189,159, -131, 80, 13,191,160, 58, 8,169, 45,198,253, 7,207,112,232,192, 77,212,174,219, 28,122,189, 30,102,179, 89,220,171, 87, 47,205, -190,125,251,116,177,177,177, 74,173, 86,219,142, 82, 26, 91,209,246,167,166, 62,182,134,120, 55, 55, 10, 68, 66,179, 82, 46,208, -204,152,115,112, 80,163,102, 93, 27,187,248,248,241, 61,196,214,227,239,117,105,186,123,235,230,185, 83,230,204,219,141, 38, 77, -187,182,120,242,236,122, 29, 0, 15, 75, 53,175, 47,232,137,122,193,196, 28,255,252,121,196,203,164,164,212, 90, 94,222,134, 23, - 50,106,250,108,198,207, 93,218,180, 27, 88,191, 70,237,182,118, 79, 30, 95, 37,115,167, 15,217,243,205,210, 21,195,138,205,214, -197,243,123,218,141, 30,125,211, 14,128,158,249,171,162,167,115,161,176,138, 36, 48,144,151,184,125,187, 54,168, 87,175, 2, 0, - 48, 24,141,238,137, 73, 73, 82, 7, 7, 7, 80, 74, 97, 50,153,254,144, 67, 92,156, 55, 92, 47, 36,196,203, 22,205,196,175,191, -174, 63,125,250,116,100,102,102,194,108, 54,131,207,231,191,126,205,134, 90,173,198,232,209,163,177,118,217,178,230,182,104, 90, - 44, 22,242,209, 55,223,204,254,106,246,236, 26, 19, 38, 76,224,148,188,246,186,186,186,226,224,161, 67,118,235,214,173,171, 50, -107,237,218,209,195,133,194,248,138, 52,115,107,214,132,107, 86,150,168,216,100, 1, 64, 72, 72, 8, 54,108,216, 32,252,240,195, - 15,237,122,245,234,181,252,126,131, 6,171, 87,182,110,253,220,173, 86, 45, 39, 59,161,176,138,173,251, 19, 0,148, 58, 93,189, -149,171, 87,187,220,190,125, 27, 89, 89, 89,200,204,204, 44, 62,151,209,164, 73, 19, 50,114,228, 72,105,117,127,255,166,127,241, -225,254,147, 23,249, 27, 69,180,198,151,114, 77,253, 79,142, 86,209, 6,145,162, 13, 36, 37,110,142,127, 48, 44, 21, 25,173, 55, - 65, 38,147, 65, 38,147, 97,243,230,205, 16, 8, 4,175,110,190, 0, 96, 48, 24,108, 49, 45, 97,190,190,190,144,203,229,168, 85, -171,214, 31, 34, 89, 2,129, 0, 60, 30, 15, 2,129, 0, 66,161, 16,122,189, 30, 1, 1, 1,208,104, 52, 97,229,105,106,181,218, -134,174,174,174,175,110,176,122,189,254,149,201, 42, 46,175,193, 96, 64, 65, 65, 1, 84, 42, 21,148, 74, 37,212,106,117,184, 45, -219,107,181, 90,241,232,209,163, 23, 33, 33, 33, 13,185, 92, 46, 36, 18,137, 88,173, 86,191,202, 45,202,207,207,199, 47,191,252, -162,126,255,253,247,221,143, 29, 59,166,177,225,224,226,211, 79, 63,133, 80, 40,132, 70,163,193,250,245,235, 49,121,242,100, 8, - 4, 2, 40,149, 74,108,216,176, 1, 83,167, 78, 5,143,199,131,193, 96,192,234,213,171,203,142,108, 60,126,156,120,235,214,173, -240, 70,141, 26,185, 28, 57,114, 36,167, 75,151, 46, 30,221,186,117,131, 72, 36,130, 86,171,133,201,100, 66,243,230,205, 17, 26, - 26,138,236,236,108,156, 62,125, 58, 55, 56, 56,216,253,246,237,219,214,204,204,204,151, 21,221,196, 75, 68, 12, 97,177, 88,144, -149,149, 5,153, 76,134,156,156, 28,164,167,167, 35, 53, 53, 21, 60, 30, 15, 21, 61,204,187,185,185, 13,168, 87,175, 30, 23, 0, - 68, 34, 17, 26, 54,108,136,217,179,103,155,181, 90,237, 96, 0,167,139, 86,123,239,231,159,127, 62,114,227,198, 13,158,175,175, - 47,158, 62,125, 10, 15, 15, 15,222,255,177,119,213,225, 81, 28,255,251,157,221,243,139,187, 39, 4, 73, 2, 73,112,105,113,183, - 64,113, 43, 45, 80,138,150, 22, 40, 20, 41, 90, 42,120,145,226,208, 22,119, 39, 56, 37,184,107, 18, 32, 16, 36, 33,238,122,190, -183,243,251, 35,242, 13,105,228, 18,168,241,219,247,121,238,185,219,189,221,119,199,118,230,157,207,204,124, 70, 46,151,151, 43, -180,156,157,157,127, 63,122,244,168,109,129,184, 46, 72,103,149, 42, 47, 59,122,247,238,109,187,117,235,214,223, 1,116,125,223, - 26, 53,107, 5, 36,245, 2, 45, 51,119, 31, 75, 10,152,252,205, 82, 81,205,192,188,206,235,200, 81, 16, 45, 89, 60, 41, 96,112, - 15,203, 96,107, 69,150,164, 60,158, 46,237, 61, 86,127,244, 81, 7,102,208,192,110, 79, 37, 18,235,106,235, 55,124,231,232,232, - 52,188,136,137,211, 18,118,246,150,168,230, 37, 37,251,130, 31, 57, 78,155,254,189,118,251,214,159,159,239,220,117,172,179, 84, -124,166, 35,128, 49,165,113, 71, 68,102, 28, 81,105,229,181,178, 82, 31, 16, 91,167,102,168, 87,215, 15,142, 14,233,216,248,251, -110,120, 87,109, 4,173, 86, 11, 75, 75, 75,165,209,104,212,179, 44,187,221, 20,145, 5, 0,231,206,101,240, 1, 1, 25, 58, 54, -155,231,190,248,106, 73,175, 14, 93, 62,242,111,219,182, 61,127,250,204,105,125,179,250,250,248, 46,157,234, 37,158, 60,179,250, -105,124,220, 11,159,128,218,205, 17, 30,118,190, 51, 64, 66,129,146, 11,108,232, 83,122,178,122,117,114,126,247,238,145,188,154, -191,171,248,225,199,135, 93,130,130,134, 4,182,108,209,146, 63,115,246, 15,157, 20, 41,143, 44,155, 55,141,253,226,243, 46, 7, -127,221,190,162,227,201, 19,191,215,200,204,138, 58,246,251,239, 84, 16, 89, 69, 59,105, 28,231, 36,146,201,152,228,243,231,185, -218,195,135,107, 11,222, 71,165, 82,137,195,135, 15, 67, 42,149, 22,126, 36, 18, 73,225,111, 39, 39,167,130,197, 87, 38,113, 2, - 64,124,124, 60, 18, 18, 18, 96,101,101, 5, 7, 7, 7, 36, 36, 36,224,234,213,171,136,136,136,128, 88, 44, 70,231,206,157,193, -148, 50,183,185, 56,103,191,201,147, 59,212,170, 93,219,179,184,200, 2, 0,189, 94,143,180,180, 52,244,232,209,131, 57,113,226, -132,243,201,232,232,143,102, 1,219,203,226,172, 31, 20,148,154,184,111, 95,137,207,110,208,160, 1,185,114,229,138,172,115,167, - 78, 19, 39,253,248,227,234, 95,182,110,125,109,228, 56,231,138,196,157, 97, 24,134, 16, 2, 15, 15, 15,164,165,165, 33, 39, 39, -111, 4,219,220,220, 28, 54, 54, 54, 48, 24, 12,224, 41, 21,255,149,121, 93,154, 22,249,143,116, 84, 55, 20, 8,174,226,158,225, - 69,249,227,162, 5, 21, 69,235,162, 13, 11,207,243, 38,137, 44,177, 88, 92,238,156, 43, 83,172, 92,197, 97,138,208, 42, 8,171, - 92, 46, 47,124,209,138, 10,172,130,112, 50, 12, 3,150,101, 97,138, 69,158,231,121, 54, 59, 59, 27,251,247,239, 71,171, 86,173, - 10,135,165, 50, 51, 51,145,145,145,129,204,204, 76,104, 52, 26,188,124,249, 18,231,206,157, 67,141, 26, 53, 0, 19,157,191, 62, -127,254,252,182,183,183,119,195,130, 70,188, 77,155, 54,238,155, 55,111,142,235,218,181,171, 43,165, 20, 51,103,206, 76,249,224, -131, 15,236,139, 54,242,229,129,101, 89, 92,189,122, 21, 53,106,212, 0,165, 20, 18,137, 4, 79,158, 60,129,163,163, 35,120,158, -135, 72, 36, 66,114,114, 50, 44, 44,202,246,145, 24, 26, 26, 58,236,179,207, 62,139,179,178,178,170,147,154,154, 26, 47,147,201, - 90, 92,188,120,209, 67,175,215,195,210,210, 18,150,150,150, 56,126,252, 56,172,173,173, 49, 97,194,132,104,181, 90,125,213,204, -204,204, 73,173, 86, 63, 72, 72, 72,152, 89,145,252,230, 56, 14,185,185,185, 72, 79, 79, 71, 90, 90, 26,178,178,178,160,209,104, -202, 13, 99, 73,104,209,162, 5,142, 29, 59,198,206,159, 63,255,215,231,207,243, 58,134,213,170, 85,195,132, 9, 19, 88, 55, 55, - 55,188,124,249, 18,183,111,223,134, 94,175, 7,165,180,204,151, 87, 44, 22,183,153, 52,105, 82,115, 79, 79, 79,162,215,235,193, -243, 60,180, 90, 45, 10,126, 71, 71, 71,163, 86,173, 90,140,151,151,215,135,132,144, 54,166, 44,172, 16,144,135,196,232, 67,112, - 19, 59, 2,140, 37,168,250, 16, 82, 83, 42,183,109,100, 82, 82,210,143, 83,102, 93, 25,254,203, 34,189, 83, 76, 60,224, 23,216, - 19, 62,254,237, 48,236, 19, 14,243, 23,239,135,167,151, 31,162,162,162,208,166, 77, 27, 73, 92, 92,220,103, 0, 38,155,202,125, -230,204,117,227,233,227, 39,250,246, 27, 48,164, 97,251,246, 93,185, 83,167,142, 35,244,193,169,176,207, 6,244, 73,162,124, 14, -177,181, 86,220,125,242,248,150, 79,157,122,173,161,227,140, 45,128,185,139, 0,148, 90,169, 68, 70, 82,221,119,223,125,199, 4, - 31,250,253,147, 65,131,135,214,109,215,174,163,225,212,153,163,184,125,237,204,253,165,139, 70, 92,152,191, 98, 79,155, 14,157, -251, 4, 56, 56, 93, 61, 30,232,171,253,220,195,206, 42, 82, 40, 41, 37, 67, 36,151,243,200,175, 23, 25, 66, 64, 41,125, 67,100, - 21, 23, 90, 12,195,148,107, 0, 40,202, 89,180, 45, 42,232, 80,175, 95,191, 30, 50,153, 12, 82,169, 20, 98,177,184,220,233, 23, - 69, 57,195, 94,190,108,187,101,251,118, 89, 73, 34, 43, 53, 53, 21,169,169,169,200,201,201,193,192,129, 3, 37,223,221,186,213, -160, 60, 78, 79, 23, 23,173,153, 66,145, 24, 30, 30,238,234,239,239,255, 70,120,179,178,178,160, 80, 40,176,125,199, 14, 73,183, -160,160,177,237,142, 31, 95, 10, 32,163,162,113, 39,132,192,209,209, 17, 54, 54, 54, 32,132,128,227, 56, 36, 36, 36, 32, 44, 44, - 12,183,110,221, 2, 75, 8,247, 87,230,113, 73, 90,228,191,102,213, 42, 46,178,138, 90,180, 72,105,214, 23, 83,133, 22,203,178, -149,182,106,149, 6, 83,134, 14,149, 74,229,195,184,184,184,102,110,110,110,224, 56,174, 80,104, 21, 31, 58, 44,176,126,220,187, -119, 15, 74,165,242, 97,121,156,148,210, 15, 27, 55,110,140, 3, 7, 14,224,252,249,243,120,241,226, 5, 84, 42, 21,180, 90, 45, -212,106, 53,194,194,194,192,243, 60, 2, 3, 3, 97,102,102, 86, 46, 39, 0,228,230,230,198,139,197, 98, 63,133, 66, 81,120,206, -197,197, 5,169,169,169,188,193, 96,192,150, 45, 91,178,156,157,157,205, 20, 10,133,201,194,149, 16,130,164,164, 36,184,187,187, - 23,206,209,202,206,206,134,163,163, 99,129,176,128, 86,171,133,133,133, 69,185, 67,135,148, 82, 13,128, 73, 69,184, 27,245,235, -215,111,231,238,221,187,171,158, 61,123, 22, 55,110,220,128,131,131, 3,126,250,233,167, 23,175, 94,189, 26, 68, 41,189,245, 23, - 20,212,114,175, 73, 77, 77,221,255,240,225,195, 15, 27, 55,110, 92, 88, 75,180,105,211,134,180,105,211,198,190,168,169, 63, 57, - 57, 25, 55,111,222,196,217,179,103, 65, 8,193,211,167, 79,141,106,181,122,103, 25,207,150,120,121,121,109,158, 49, 99,134, 57, -199,113,133,101, 91,161, 80, 64, 46,151, 67, 34,145,128,101, 89,188,122,245, 10, 61,122,244,176, 90,181,106,213,239,132,144,234, -148, 82, 61,222, 19,100,168,161,191, 23,154,101, 21, 88,203, 41,108,195,250,249,205, 70,142, 66,193,208, 33, 23, 88,203, 49,236, - 94,104,162, 85, 67, 71,232,173,165,101,243,156, 56,251,250, 11,157,225, 68,247, 19, 39, 67,250,127, 51,113,130,184, 90,181, 90, - 73,103,255,184,227,217,142,251,158,216,217, 91, 34, 53, 37, 11,175,162, 19,241, 60, 74, 71,171, 85,171,149,116,251,230, 67,217, -226,101,203,125,114, 85,154, 61,127, 92,136, 63, 90, 78,167, 76, 67, 8,233,185,116,165,236,194,144,207, 26, 73, 21, 10, 87,164, -165, 60,132,167,167, 3,122,116,171,131,223,182, 94,133,149,149, 45,156,156,156,192, 48,140,153,169,113, 79, 73, 73, 33,251,119, - 93, 26,254,233,208, 17, 31,116,234, 24,196,157, 60, 21, 44, 58,127,250,200,213,223, 55,124,123,144,178,185, 74, 66,179, 21, 85, -188,157, 31, 68, 62,187, 55,168,109,251,129, 80, 72, 44,106, 0, 53, 75, 44,176,133, 11, 12, 40,162, 25, 6,242, 79,135,142,108, -218,169,211, 71,220,169, 83,135,112,234,248,214,235,115,230, 84, 57,254, 34,118,135,228,218,173, 24,121,207,190, 99,210,143,157, -120,164,235,211,221, 59,194,213,172,158, 26, 2,222,236, 72,138, 68,137,156, 86,235,225,222,169, 19,171,138,138, 18,155, 59, 57, -113, 0, 96, 48, 24,202, 21, 90, 0,120, 83, 56, 77, 13,139, 74,165, 2, 15,112,166,112, 38, 36, 37, 85,201,239,132, 23,194, 96, - 48, 20,138,172,212,212, 84,100,100,100,192,204,204, 12,201, 90,173,147, 41,156, 29,155, 52,217,242,221,220,185,147,247,237,223, - 47, 41, 42,178, 10, 62, 98,177, 24, 11, 23, 45,146,124,245,205, 55, 99,198,138, 68,227, 43,146,158, 5,157,118,150,101, 33, 18, -137, 16, 21, 21,133,232,232,104, 68, 69, 69, 33, 42, 42, 10, 10,133, 2,180,148,244,124,135, 22, 45,242, 95, 45,167, 5, 67,135, - 69,135, 16, 77,114,239, 80,145,201,240,166, 10, 3,163,209,248, 78,133, 86,110,110,238,217,115,231,206, 53,233,217,179,167,232, -250,245,235,112,118,118, 46, 20, 90, 5,223, 5,195, 81, 74,165, 18, 7, 15, 30,212,231,230,230,158, 45,231,101, 58,119,252,248, -241,134,179,103,207, 22, 15, 27, 54, 12,225,225,225, 24, 53,106, 20, 50, 50, 50,144,149,149,133,212,212, 84,168, 84, 42, 52,105, -210, 4,114,185, 28, 15, 30, 60, 48,168, 84,170,115,229, 52, 14, 52, 41, 41, 41,199,193,193,193,165,248,127,125,251,246,117, 90, -179,102,141,234,241,227,199,134,102,205,154, 89,154, 42, 56, 10,176,107,215,174, 66, 75, 93, 68, 68, 4,214,172, 89, 83, 56, 39, -235,206,157, 59, 88,178,100, 73,161,239,179, 10, 90, 25,111, 5, 4, 4,112, 6,131, 1, 53,106,212,128,155,155, 27, 52, 26, 13, -150, 47, 95,206,253, 21, 34,203, 84,104, 52,154,125, 67,134, 12,153,122,247,238, 93, 23,145, 72,148,103,210,206,143,159, 94,175, -199,179,103,207, 16, 22, 22,134,199,143, 31, 35, 45, 45,173,176, 35,112,239,222,189,116,131,193,176,167, 52, 94, 7, 7,135,153, -191,253,246,155,179, 82,169,124,163, 60, 23, 88, 67, 11,172,164,201,201,201,176,182,182, 70,187,118,237, 28,207,157, 59, 55, 19, -192,236,247,161, 65, 35,132,144,182,173,216, 70, 95,125,209, 19,189,187, 41, 95, 31, 56, 22,123,101,201,226, 73,249,147,225, 29, -195,122,119,115,123,125,255,137, 53,250,246, 58,212,232,143, 11, 36,166,172,185,116,249,115,172, 14, 55,105, 98,123,254,192,145, - 35,191, 79,159, 50,241,206,228, 73, 35, 28, 84,234, 72,121, 53, 47, 41, 1,128,231, 81, 58,250, 32,156,215, 44, 89, 58,241,206, -252, 69,171,152,196,212,140, 81, 55,110,148,238,222,160,168,120, 9,240,133,188, 90,205, 86,113, 62,190,205,189,175, 95,221, 14, -115,165, 26,126, 53, 27,161, 83,199, 15,113, 62,228, 30, 18,146, 53,136,143,143,135, 86,171, 45,211, 93,194,227, 7, 7, 63,161, -132,122, 18, 74,162, 9, 67,229,159, 12,249,188, 69, 80,208, 71,244,216,177, 35,220,161,131,219, 47,239,217,182,114, 31, 35, 17, -139,212, 58, 43, 29, 33,154, 76, 48,161,225, 57,185,121, 29, 26,177, 76, 82,186,249, 53,223,177,171,127, 64, 77,231, 79,134,140, -178,234,218,165, 7, 61,126,252, 16,191,103,247,150,243,123, 54,213,222,206, 51, 89,146,248,215, 42, 89,102,150, 33,147, 18,169, -117, 78, 22,175, 74,124, 94, 93,227, 26,212,247,189, 17,237,239,172,195,173,213,198,228,188,126,237, 98,219,170,149,236,217,220, -185, 74,167, 38, 77, 52, 36,127, 14,113, 89, 66,139,101, 89,128, 97,120, 83, 56, 77, 13,139, 90,173, 6, 15, 24, 42,195,201,113, -220, 27, 34,171, 64,104, 21,216, 53, 76,225,220, 48,103,206,117,207, 78,157,210, 66, 66, 66,156, 90,183,110, 77,178,179,179,145, -157,157,253,134,216,114,117,117, 37,254,129,129,202, 93,231,207, 87,155,109, 98,122,154, 18,119,134, 97,254,114,161,245, 95, 70, - 73,150,172, 55, 44, 90,165,161,192,162,101,138,208, 50,209,162,101, 48, 24, 12,112,116,116, 68, 74, 74, 74,169, 13, 63,195, 48, - 80, 40, 20, 5, 99,196,101,174,188,211,106,181,203, 39, 79,158, 60,174, 75,151, 46,246,126,126,126, 72, 78, 78,134,147,147, 19, -228,114,121,225,220,177, 2,190, 59,119,238,224,183,223,126,203,210,106,181,203,203,225, 92,182,104,209,162, 47,122,247,238,109, -235,236,236, 12, 27, 27, 27, 60,120,240, 0, 54, 54, 54,200,202,202,194,147, 39, 79, 96, 97, 97, 81, 56,111,231,200,145, 35,217, - 90,173,118, 89, 57,226,141, 94,188,120, 81,111, 97, 97,241, 32, 57, 57,153, 77, 75, 75, 19,165,167,167,139,178,178,178,196,153, -153,153,226,147, 39, 79,218, 91, 89, 89,169,254,248,227,143,100, 79, 79, 79,246,197,139, 23,172,193, 96, 96, 76,104, 28, 49,126, -252,120, 72, 36, 18,104,181, 90, 44, 95,190, 28,147, 39, 79, 46,156,147,181,104,209, 34,204,152, 49,163, 80, 56,111,220,184,177, -162,133, 7,122,189, 30, 6,131, 1, 6,131,193, 36,241,251, 54, 48, 69,176, 83, 74, 19, 8, 33,221, 26, 55,110,124,122,239,222, -189,118,249, 62,201,144,152,152,136,196,196, 68, 36, 39, 39, 35, 39, 39, 7, 28,199,193,205,205, 13,137,137,137, 56,116,232, 80, -102,118,118,118,167,178, 86, 28,178, 44, 59,164, 69,139, 22,162,226, 97, 40,232,229, 21,136,119,153, 76,134,184,184, 56,180,105, -211, 70, 26, 18, 18, 50,228,191, 46,180, 10, 4, 76, 45, 31, 72, 58,118, 26, 46,169, 21,208, 84,119, 63,236,216,235,154,222,137, -175, 7,247,176, 12, 6,128,123,161,137, 86,247,159, 88,163, 86, 64, 55,218,177,147, 77,195,196,132, 13,181,253,125,137,190,172, -237,122, 0,192, 74, 41,235,215,161,125,147, 56, 11, 51, 51,102,201,210,141, 39,214,174, 93,214, 96, 95,240,255,220, 59, 44, 89, -154,231,222,161, 67,251, 38,252,227, 71,143,251, 1,216,100,170,120,233,214,173,251,221,223, 54,255,134,199, 97,127,184, 78, 29, - 95, 71,154,150,104,128,194,220, 3, 13,235, 57, 97,195,230,135,184,127,255,126,130, 78,167,107, 83,102, 89, 34,212, 51, 44, 60, -212,183,118,128,191,243, 39, 67, 70, 90,118,235,214, 3,199,142, 29,198,182, 45,155, 46,246, 25,216,251,215,216,244, 44,214, 81, -172,148, 40, 41, 47,101, 37, 86, 34,137, 76,145,164,211,229,173,129, 16,139,229,150, 64, 63,190,140,145, 67,140, 30, 57,216,170, -109,251, 30, 8, 62,126, 24,219,182,108,184, 48, 43,160,239, 38,239,250,181, 72,147, 6,139,199,120, 87,245,246,202,205, 73,204, - 98,136, 84,175,209,240, 22,139,183,188,250,249,249,140, 33,207,239,134,246, 91, 42,172, 58,124, 3, 15,182,117,237,218,248,171, -200, 72,137, 67,243,230,138,184,243,231,149,249, 59,145,148, 41,180, 68, 34, 17,104,233, 67, 93,111,112,146,173, 91, 25, 0,101, - 46,194,146, 72, 36, 80,169, 84, 48, 0,122, 83, 56, 93, 78,157,122, 29, 25, 25,233, 99,107,107,251,134,200, 74, 75, 75, 43,252, -173,209,104,160, 82,169,160, 80, 40,194, 76,225, 76,188,120, 81,179, 96,252,248,217,131, 6, 14, 92,121,246,220, 57,185,157,157, - 29, 50, 51, 51,223, 16, 90, 58,157, 14,109,219,181,147, 44,186,123,247, 19, 0,115, 76, 73, 79,167, 54,109,202,157, 15,204,178, - 44,248,191,120,232,240, 61,232,172,142, 44, 73,120, 49,229, 13,225,152,186,234,176,164, 6,146, 16,210,190,216,169, 25, 13, 27, - 54,212, 68, 68, 68,192,211,211,179, 80,172, 20,125,166,165,165, 37,172,173,173,113,231,206, 29,252,248,227,143,106, 0, 51,202, -226,164,148,102,171, 84,170, 1, 29, 58,116, 80,139, 68, 34,212,172, 89,179,208,127, 22,207,243,144, 74,165, 48, 51, 51,195,221, -187,119,209,189,123,119,149, 74,165, 26, 80,220,135, 86, 9,156,153, 42,149,234,227,142, 29, 59,170,194,195,195,209,162, 69, 11, -220,191,127, 31, 57, 57, 57,200,201,201,193,203,151, 47,225,239,239, 15,149, 74,133, 53,107,214,168, 85, 42,213,199,148,210,204, -178, 56,179,179,179,187, 79,158, 60,153,221,185,115,167,183,155,155, 91, 64,163, 70,141,252,218,181,107, 87,189, 87,175, 94, 94, - 93,187,118,117,241,241,241,209,116,234,212,201,161, 75,151, 46, 14, 42,149, 74,124,229,202,149,120,131,193,208,165,156,244, 44, - 20, 39, 17, 17, 17,133, 67,133, 34,145, 8, 41, 41, 41,133,158,251, 11, 42,165,146,132,112,105,156, 69,197,118,129,192, 42, 16, - 92,229,181, 1,165,112,150,219,112, 72,165,210, 2,139, 39, 45,143,147, 82,122,239,209,163, 71, 29, 90,181,106,117,111,248,240, -225,217, 9, 9, 9,176,176,176, 64,181,106,213,224,235,235, 11,123,123,123,232,245,122, 28, 60,120, 48,247,208,161, 67, 15, 51, - 51, 51,219, 20,247,161, 85,156,147, 97,152,151, 37, 85,178, 5,214,172, 2,161, 37,151,203,225,230,230, 86,144,182, 47, 43,146, -158,149,124,121,255, 90,206,124, 1,211,174,109,167,170, 93,131,122, 90, 29, 60,124, 85,186,114,245,161,135, 13,219, 99,163, 93, -149,172, 35,118, 85,178,142, 52,108,143,141, 43, 87, 31,122,120,240,240, 85,105,215,160,158, 86,237,218,118,170, 26, 30,246,216, -239,141,125, 15, 75, 8,167, 92, 46,111,218,162,121,195,244,144,203, 23,248,249,139, 86, 49,109,219,244,185,187,233,215,131, 7, - 55,253,122,240, 96,219, 54,125,238,206, 95,180,138, 9,185,124,129,111,209,188, 97,186, 92, 46,111,106, 74,220, 71,143, 28,108, - 21,212,181, 7,142, 29, 59,200,237,219,181,102,209,238,253, 79, 91,125, 62,238, 98, 98, 68,196,125,154, 20,115, 10, 98, 38, 10, -143, 30, 61,202,212,233,116,109, 74,154, 8, 95, 18,231,168, 17,131,139,138,172, 75,118,206, 45, 54, 62,122, 4,227,153, 51, 71, - 13,231,206,221, 85, 95,186,151,148,121, 59, 60, 37, 45, 46, 57,237, 69, 86, 86,170,142,231,141, 48, 26,141,236,119,223,229, 77, -216, 45, 45,143,154, 53,107,141, 63,206,238,192,150,205,235, 51,121, 30,154,190,123,247, 26,251,245,155, 75,189,170, 84,241,218, -190,107, 7,233,246, 81, 79, 43, 10,240,221,123,247,176,222,185,123, 39,169, 90,163,106,149,106,213,242, 92,218,252, 39,203,210, - 95,192, 57,135,210,244,172,168,168, 11,119, 86,173,210, 58, 13, 24, 96, 43,117,114,178,132,209, 72, 10,234,247,210, 62, 34,145, -232, 13, 11, 76, 89,156,110,246,246,177, 71,142, 28,129,175,175, 47,220,220,220, 80,116,142,108,129, 67,110, 59, 59, 59,236,223, -191, 31, 20,184,109, 10,103,125,111,239, 59, 11, 23, 44,208,241, 60,143,244,244,244, 63, 89,179,210,211,211,193,243, 60,142, 7, - 7,235,178,114,114,182,152, 26,247, 54, 44,155, 51,168,101,203,249, 65, 65, 65,250,200,200, 72,240, 60,143,162,150,173,164,164, - 36,152,155,155, 67,163,213,122, 16, 66,148,166,112, 38,157, 60,105,134,114,234,245,226, 22,173,191, 34,223,255,235, 34,171,232, -134,210, 69, 69, 87,153, 22, 45,142,227,224,225,225,241,198,150, 46, 12,195,188,241,169,200,138, 67, 74,233, 86, 66,200,169, 78, -157, 58,205,254,224,131, 15, 70,207,158, 61,155,245,243,243, 67,102,102, 38,108,108,108,224,232,232,136, 39, 79,158,224,200,145, - 35,198,148,148,148,117, 0,230,153,178,132,158, 82,122,158, 16,210,173, 78,157, 58,187,167, 77,155,102,213,177, 99, 71,177,135, -135, 7, 40,165,184,123,247, 46, 14, 28, 56,160,223,180,105, 83, 86,190,200, 58,111, 98, 88, 79, 19, 66,250,116,233,210,101,251, -144, 33, 67, 44,140, 70,163,248,229,203,151,208,106,181, 48, 24, 12,136,142,142,214, 31, 59,118, 44, 71,165, 82, 13,166,148,158, - 54,129,239, 14, 33,196,255,204,153, 51, 67,174, 92,185,242,227,240,225,195,237,218,181,107, 39,225, 56, 14,151, 47, 95, 78,174, - 95,191,190, 99, 82, 82,146,126,255,254,253,169, 26,141,102,134,209,104, 52,105, 11, 30, 66, 8,178,178,178, 96,111,111, 15,173, - 86, 11,158,231,161,211,233, 96,110,110, 94,184,109, 18,165, 20, 21,153, 92, 95,172, 12,176,122,189, 30, 3, 7, 14, 4,207,243, - 88,190,124, 57, 56,142,171, 48,153,149,149,213,237,123,247,238,117,171, 87,175, 94,161,120, 41, 40, 67, 50,153, 12,246,246,246, -176,179,179,195,177, 99,199, 32, 22,139,111,155,152, 71,247, 1,212, 39,132, 52,125,248,240,225,167, 0,234,233,245,122, 55,163, -209, 72, 24,134,137,167,148, 62,200,202,202,250,213,212, 45,120,146,146,146,126, 28, 58,116,104,253, 29, 59,118,152,139, 68,255, -123, 53, 68, 34, 17,100, 50, 25, 10,156, 99, 82, 74,161,211,233, 48,115,230,204,172,220,220,220, 31,223,151,138,162, 97,163, 38, -216,176,102,133,249,185, 63, 78, 37, 63,122,138, 3, 69, 93, 56, 88, 75,129, 63, 46,144,152,196,132, 13,181,227, 94,191, 54,111, -216,168,137, 73,156, 6,157, 62,245,227,193, 95,123,230,111,193, 51,243,229,203, 87,235,183,111,253,249, 57, 0, 44, 94,182,220, - 39, 49, 53, 99,212,227, 71,143,251,173, 95,191,171,169, 65,167, 79, 53,133,243,127,226,101,123, 38, 40, 52,148,210, 27,132, 16, -239,238, 3, 78,206,168, 81,213,242,163,164, 84,117,108, 78,142,234, 75, 74,233,115, 83,227,222,188, 89, 43,252,113,122, 39,182, -109,217,158, 69,121, 86, 99,111,111, 79, 1,224,209, 35,123,250,232, 81, 6,253,223,188, 98,235, 92, 49,189, 63,239,235, 47,219, -125,157,153,149,182,108,217,234,178, 29,215,214,169,251, 1,234,212,253, 0,227,190,252,214,202, 63,160,166, 39, 0,236,221, 75, -141,129, 62,228,232,236, 89,115, 63,154, 55,111, 46,178,178,181,152, 55, 47,111,187,158, 39,161,225,193,145,145, 84, 39, 52, 91, -111, 98, 54,199,221,192,215, 95,251,168,210,210, 28,154, 79,157,106, 47,250,230, 27,166,172,201,240, 69,223, 95, 83, 56,111, 61, -120, 16, 60,234,243,207, 99,231,204,158,221,105,221,250,245,138,218,181,107, 35, 33, 33, 1, 53,107,214,132,155,155, 27,206,156, - 57,131,253,123,246,228,102,100,103,207, 0,176,214, 20,206,173,199,143, 63,241, 11, 8, 72, 89,191,126,189,107, 80, 80, 16,201, -205,205, 69,102,102, 38, 50, 51, 51,161,213,106,145,239, 16,154, 70, 60,125,250,200, 96, 48,172, 51, 53,238,198,228,100,249,188, - 38, 77, 98, 36, 60,191,176, 79,239,222,147,231,125,255,189,172,106,213,170, 68,171,213, 22, 90,181,244,122, 61,204,205,205,245, - 58,157,206, 14,128,202, 20, 78,217,166, 77, 92,114,114, 50, 28, 28, 28, 10,221, 53, 21,245, 75,152,157,157, 13, 74,169,224, 76, -183, 50, 34,172,180,182,220,214,214,246,182, 72, 36,114, 47,106,221, 42,105,239,188,162,231, 12, 6, 67, 76,114,114,114,195,162, -138,151, 82,122,182, 20,129, 80, 13,192, 79,109,219,182,237, 51,105,210, 36, 18, 18, 18,130, 67,135, 14,209,231,207,159,239, 3, - 48,163,180, 74,178, 28, 78, 11,153, 76, 54,193,204,204,172,125,129, 11, 7,165, 82,249, 48, 55, 55,247,172, 86,171, 93, 94,154, - 55,248,114, 56, 45,101, 50,217,120, 51, 51,179, 14,217,217,217,245, 0,192,194,194,226, 94,110,110,238, 25,173, 86,187,162,180, -141,170,203,225, 84, 88, 89, 89,253,104,111,111,255,241, 55,223,124, 99,119,241,226,197,248, 63,254,248, 67,146,145,145,177, 67, -167,211,149,186,169,116, 73,156,118,118,118,183, 89,150,117,255, 43,242, 8, 0,234,214,173,123,172,123,247,238, 65,131, 7, 15, -134,193, 96,192,218,181,107,113,230,204,153,224,167, 79,159,118, 43,171, 55, 90,156,147, 16, 98,239,238,238, 30, 50,122,244,104, -175,129, 3, 7, 42,109,108,108, 32, 18,137,144,155,155,139,103,207,158,225,238,221,187,244,240,225,195, 57,119,238,220,137, 81, -169, 84,173, 41,165, 41,166,166,231,219,244,154,139,115,138,197,226, 86, 30, 30, 30,187,230,204,153, 99,209,161, 67, 7,133,157, -157, 29, 88,150,133,193, 96, 64,124,124, 60, 66, 67, 67,113,234,212,169,220,125,251,246,229,166,166,166, 14,164,148, 94,248, 39, -194,249, 46, 57,253,125,201,172, 98, 27, 69,151,234,237,189,172,107, 77, 9,103,187,214,174, 61,250,245,233,210, 25, 0,246,238, - 63,113,242, 92, 72,220,225,202,134,179,188,176,154,194, 89,203,135,157, 19, 22, 30,250,134, 67,203, 0,255,192,136, 90,181,123, -255, 96, 10, 87,129,103,248,226,113, 47,226,109,191,168, 77,247,141, 97,214,130,141,167,191,157, 49, 29, 63,253, 56, 31,135,247, - 30, 12, 14,143,164,199,254,203,101,233,175,228, 44,216, 4, 89,233,226,210,114, 57,207, 79,191, 31, 26,106, 94,180,195, 86, 96, -121, 46,218,169,116,117,117, 77,138,139,139,115, 50,133,179,219, 47,191,232, 85,102,102,178,233, 11, 23,182,202,209,104, 90,205, -155, 55, 79,116,235,214, 45,172, 89,181,138,211,196,196,108, 79, 6,198,151, 52, 26, 82, 22,167,215,248,241,242, 41,107,214, 12, -171, 86,163,134,227,167,159,126, 42, 22,139,197,200,205,205,197,235,215,175,113,250,212, 41, 93,248,163, 71,225, 89, 89, 89, 31, - 81, 74,227, 76,229,236,246,203, 47,122,235,106,213,160,116,112,160,231,206,159,183, 26, 53, 97,194,232, 42,222,222, 86,157, 58, -119, 22, 91, 90, 90, 34, 61, 61, 29, 47, 95,190,196,193,131, 7,147,114,114,114, 92, 41,165, 70, 83, 56,183, 95,185, 82,231,248, -133, 11,125,127,248,225, 7,105, 96, 96, 32,172,172,172,144,157,157,141,208,208, 80, 92,184,112, 65,187,110,221,186,204,204,204, -204,209, 28,199, 29,249,171,242,253,125, 29, 58, 36,127,229, 84, 0, 83, 50,130, 16,210, 16,192,172,252,195,239, 77,216, 51,240, -189,169,124, 8, 33,158,182,182,182, 27, 52, 26, 13, 85,171,213,163, 40,165,209,255,182,112, 18, 66, 68, 13, 27, 54, 92,147,148, -148,212,148, 82, 10, 43, 43,171,171, 97, 97, 97, 99, 41,165, 92, 69, 57, 9, 33, 44,128,166,230,230,230, 77, 44, 44, 44, 90,105, -181,218, 90,249,195,111,143,114,115,115, 47,232,245,250, 27, 0,174, 82, 74,141,255,100,220,243,195,217,193,213,213,245,115,158, -231,107, 16, 66,172,141, 70, 35, 12, 6, 67, 6,207,243,207, 50, 51, 51, 55, 1, 56,243, 79,135,243, 93,113, 6,212, 32,189, 40, -131, 90,165, 9,130, 55,132, 77, 49, 1, 65,120, 60, 10,123, 70, 15, 86,160,204, 51, 93,218,123,172, 6,242, 86, 38,150,183,149, -209, 27, 66,203, 4,241, 82, 97,145, 89, 67, 52,148, 18,234,249,102,239,147, 68,215,172,211,107,219,219, 8, 45, 83, 17,224, 71, - 90,129,162, 41, 79,113,227,209, 83,250,199,251, 90,215,189, 75,206,249,132,216,174,178,177,185,202,136, 68,206, 0,152,124,235, - 11,207, 19, 98,164,132,112, 69,135,183,138,118, 44,203,227,212, 3,181,197, 50,153,135,145,227,156, 18, 0,243,227, 70, 99, 3, - 13,165, 57,238,192,172,187,148, 62,169, 76, 56,245, 64,109, 86, 38,243, 60, 78,105,143,100, 51,179, 58, 73,106,181, 3, 0,106, -110,102,246, 40, 43, 55,119,139, 70,163, 89, 93,194,230,237,229,114, 74,100, 50,119, 35,199, 57, 1, 0, 35, 18, 37,237,214,106, - 61, 98, 44, 45, 63,213,104,181, 94,230,230,230, 6,157, 78,151,165,209,104, 6, 27, 12,134,115, 21,137,251, 51,142,243,191,194, - 48, 45,244,102,102,118,122, 66,204,116, 28,167,215,233,245,175, 53, 26,205, 67, 0, 63, 83, 74, 35,255,202,124,127,111, 81,176, - 58,237,175,248, 0,104, 47,112, 10,156, 2,167,192, 41,112, 10,156, 2,231, 95,207, 9, 64, 9,192, 19, 0,251, 95,140,251,251, -244, 1, 48,178,224,183, 72,144,154, 2, 4, 8, 16, 32, 64,192,123, 97, 56, 81,161,132, 57, 89, 2,254, 89, 16, 0,237, 75,201, - 48,147, 77,130,149, 89,125, 96,194, 16,131,192, 41,112, 10,156, 2,167,192, 41,112, 10,156,239, 25,103,121,220,255,197, 33,201, -178,246, 58, 20,134, 14, 5, 78,129, 83,224, 20, 56, 5, 78,129, 83,224, 20,134, 14,255,162, 15, 3, 1,165,169, 83, 39, 66,136, -211,187,190, 86,192,251, 93, 22, 74,184,215,141, 16,226, 86,193,235, 93,132, 84, 23, 32, 64,128,128,247, 3,127,187,208, 50,181, -209,122,203,198,237,173,132, 15, 33,100, 62, 33,136,203,251,144,249,239,234, 90, 19,158,235,234,224,224,240, 85, 64, 64,192,118, -103,103,231,113,132, 16,199, 10,222,239, 99,102,102,182,194,220,220, 60,196,220,220, 60,196,204,204,108, 5, 33,196,231, 29,229, - 27, 33,132,140,146,203,229,231, 93, 93, 93, 99,101, 50,217,121, 66,200,104, 82,201, 13, 46, 9, 33,126,132,144,121,132,144,239, - 9, 33,117, 42,114,175, 83, 96,207, 61,142,129, 61, 31, 56, 6,246, 12,181,175,253,145,143, 99, 96,207, 80,199,192,158, 15,156, - 2,123,238,249, 11,202,107,165,243, 55,255,222,232,188, 79,249,247, 18, 66,126, 38,192,107, 66, 16,243,182,101, 73,128, 0, 1, - 2, 4,252, 59, 80,161,201,240,110,110,110,125, 40,165,163, 0, 80, 66,200,134,216,216,216,253,149,104,120,166,228,255, 94, 68, - 41,157,254, 54,215,153,112,239, 50, 74,233,228,138,139, 52, 76,225,121,202, 0, 0,195,144,169, 78, 78, 78, 74,150,101,255, 52, -193,208,104, 52, 42, 9,193, 56,158,167, 36,255,218, 41,132,144, 21,148,210,196,202,136,195, 79, 62,249,100,217,138, 21, 43,228, - 74,165, 18, 81, 81, 81, 29, 71,143, 30,221,140, 16,242, 53,165, 52,190,188,251, 21, 10,197,160,198, 77,154,126,189,112,241, 82, -115, 39, 71, 71, 51,206,200,235, 95, 70,189, 82,206,156, 54,185,137, 66,161, 88, 81,214,102,202,197, 5, 21,128,145, 34,145,168, -191, 92, 46,175,174,209,104, 34, 57,142,219,199,178,108,167, 31,127,252, 49,176,107,215,174,242,172,172, 44, 41,199,113, 53,182, -109,219,246,245,111,191,253,214,133, 16,210,163,172,101,250, 5, 22, 29, 74,105,108,145,211,125,163,162,162, 26, 74, 36, 18, 82, -173, 90, 53, 6,192,131,114,174, 47, 4, 5,124,194, 46,239,173, 13, 0, 1,205,251, 69,132, 93,222,139,252,223,127, 65,167,224, -205,178, 32,151,203,215,105, 52,154,232,130,255,243,195,153,104,202,189,132,144,149,249,219, 7, 53, 4,240,105,254,165, 91, 41, -165,183, 9, 33,206,114,153,108,130, 90,163, 33, 0,200,219,148, 37, 1, 2, 4, 8, 16,240,183, 27,145,234, 83, 74,239,230,143, - 72, 4, 1, 8, 46,104,187, 43,186,234,240,139,167, 79,159,154, 3,128,175,175,239, 88, 0,251, 43, 16,136, 63, 53, 60,237,218, -181,171,175, 80, 40,222,240,130,172, 86,171,165,132,160, 93,101,196, 75,193, 51,116, 58, 45, 35, 22, 75,193, 48,228,235, 58,117, -234, 84, 73, 73, 73,185,200, 48,204,246,152,152,152,244, 74, 36, 30, 54,110,220,232,235,226,226,242, 39,111,205,241,241,241,210, - 30, 61, 62,170, 16,223, 48, 66,100, 90,153,172,137,132, 16, 23, 35,199, 89, 3,128, 72, 36, 74,247,179,178,106,248,211, 15, 63, - 40, 9, 33,124,106,106, 42,212,106, 53, 38, 78,156,168, 8, 15, 15,239, 9, 96,117, 57, 97,244,253,224,195,102, 19, 79,157, 58, - 89, 43, 43, 45, 93,179,113,217,250, 59,106,145, 68,229,237, 95, 83,178,102,195, 22,155,145,195, 6,127, 73, 8,185, 87,210,118, - 36,197,120, 24, 0, 7, 39, 76,152, 16,208,173, 91, 55,105,118,118,182, 92,173, 86, 87,217,190,125,251,204,134, 13, 27,154,215, -171, 87, 79,186,107,215, 46,146,153,153, 9, 74,169,178,102,205,154,180,127,255,254,154,221,187,119,143, 3,176,178, 60,225,203, -178,236,114, 63, 63,191, 57,249,113,150, 20,185, 70,236,239,239,111, 6, 0, 79,158, 60,249,142, 16, 76, 40, 75,100, 19,224,105, - 64,243,126, 0, 65,141,176,203,123,229, 1, 45,250,105, 64,241,140, 0, 79,243, 59, 4,243,128, 34,126,161,222,196,163,216,216, -216, 74,237, 77, 24, 20,212,141, 16, 66,246,185,186,186,238, 79, 74, 74,242, 38, 4, 35, 76,237, 12, 16, 66,136,157,157,221, 80, - 0,243, 1,124,254,232,209,163,250, 0, 80,171, 86, 45, 9,128,219,150,150,150,205,244, 58, 29, 17,170, 43, 1, 2, 4, 8,248, - 79,162, 62,128,187, 0,130,138,108,193,179,161, 50, 66, 75, 10, 0, 23, 47, 94, 4, 0, 89,101, 68, 95, 81, 1, 51,126,252,120, -184,184,184, 20, 23, 47, 8, 9, 57,255, 54,145,125,227, 25,223,127,255,189,121, 70, 70, 70,251, 95,127,253,181,165,155,155,219, -146,216,216,216,235,101,221, 76, 41, 77, 36,132, 44,202,183, 64, 64, 38,147, 71,140, 30, 61,250,110,254,223, 85,142, 30, 61,170, -236,222,189,187, 10,192, 43, 0,144,201,228,110, 44,203,248,230, 77,122,195,162,178, 4, 97, 63, 66,170, 73,165,210,182,163,126, -249,133,107,208,189,187,200,204,193,129, 0,192,171,199,143,237, 22, 45, 94,220, 44,253,249,115,169,218,206, 46, 53, 53, 55, 87, - 29, 17, 17, 1,153, 76, 70, 88,150,109, 80, 94,132,205,204,204,190,250,225,167,133,102, 89,105, 25,106, 77, 86,182,142,229, 12, - 90, 11,133,210,152,152,144,148,106,174, 48, 83, 77,157, 53, 87,250,197,136, 33, 95, 1, 24, 91, 14,213,184,175,191,254,186, 86, -227,198,141,221,246,236,217, 67, 50, 51, 51, 33, 18,137,204,235,213,171,135,134, 13, 27, 26,255,248,227, 15,226,237,237,141,192, -192, 64, 92,190,124, 25, 87,175, 94, 37,245,235,215, 87, 30, 56,112,224,147,146,132, 86,113,113,205,178,204,196,154, 53,107,214, - 51, 51, 51,211,249,250,250, 98,196,136, 17,160,148,162,125,251,246,129,230,230,230,251,115,115,115,165, 79,158, 60,110, 89,158, -200, 78, 12, 61,212, 31, 0, 28, 3,123, 62, 0, 80, 27, 20,207,146, 66, 15,213, 41,114, 73,173, 39, 79,158,124,144,158,158, 94, - 56, 25,177, 96, 3,243,150, 45, 91,154, 92,144, 10,202, 66,247,238,221,166, 2,132,180,111,223, 62, 99,220,184,113,204,227,199, -143, 63,238,213,171,103,224,211,167,207, 80, 90, 56,139,149, 35, 50,116,232,176, 68,115,115,243,222,174,174,174, 79, 0,136, 36, -146, 66,157,201, 58, 57, 57, 57,212,169, 83,103,140,173,173,109, 18,203, 48,142, 20,148,150, 87,150, 4, 8, 16, 32, 64,192,191, - 10,193,249,226, 42,184,248, 31, 34, 0, 8, 14, 14,166,255,235,181, 7,145,178, 26,158,251,247,239,123,168, 84, 42,152,210, 8, - 20, 93,162, 73, 41, 77,100, 89,118, 13,195,144,177,132, 16, 4, 6,214,126,177,124,249,242,146,246,244,210, 5, 6,214,126,193, -178, 76, 85, 74, 41, 8, 97,214,242,188, 49,177, 36,206,210, 26, 70,169, 84, 54, 5, 0,156,157, 93,158,159, 56,113, 66,215,183, -111, 95, 44, 94,188, 88, 50,109,218,180,201, 94, 94, 94,227,162,162,162, 18, 74, 11,103,254,241,116, 39, 39, 39,229,198,141, 27, -125, 71,143, 30,125, 55, 46, 46,110, 58, 0,184,186,186,206, 7,224, 15,224, 85,145,115, 88,183,110,119,236,136, 17, 35, 34, 18, - 19, 19,167,151,198,217,135,144,234, 94, 53,107,182,157,119,241, 34,101,180, 90,146,114,233, 82, 86,114, 98,162, 33, 50, 57, 89, -185,249,246,237,110, 51,231,207, 23,123,120,122, 34,228,200, 17,251, 20,149, 42, 57, 83,171,213, 36, 38, 38, 82,142,227,174,154, - 16,247, 0, 71, 7, 71,229,250,159,215,222,178, 16,179,188,163,187, 27, 17,219,218,138, 24,165,165,148, 21, 49,218,170, 85,124, -164, 0, 2,202,203, 35,137, 68,242, 73,199,142, 29,149,187,119,239, 38,129,129,129,176,182,182,198,165, 75,151,112,239,222, 61, -164,167,167, 51, 6,131, 1,141, 26, 53,194,194,133, 11,225,233,233,137,140,140, 12, 68, 71, 71,219, 75,165, 82,135, 50,210,243, -141,242, 52,101,202, 20,184,184,184,128,227, 56,164,165,165,129,227, 56,152,155,155, 3, 0, 98, 98, 98,112,228,200,225,114,203, -146,137, 34, 9, 31,126,248, 97, 54, 33,228, 81,113,139, 86, 69, 56,221,220,220,118, 37, 39,167,116,105,219,182, 45,210,211,211, - 13,115,231,206, 69,157, 58,117,224,235,235,107, 74,153,159, 46,147,201,126,245,242,242,250,121,252,248,241, 46,182,182,182,208, -106,181, 51, 19, 18, 18, 48,102,204, 24, 0, 64,215,174, 93,235,136,197,226, 19,195,135, 15,135,183,183,119,108, 90, 90, 90,244, -157, 59,119, 70,228,230,230,134, 86, 54,238, 38,166,143,192, 41,112, 10,156, 2,231,191,138,211, 84, 45,242,111, 68,254, 48,225, -134, 34,199, 27,222, 16, 90, 65, 65, 65, 36, 56, 56,152,154, 16,177, 84,119,119,119, 15,133, 66, 1, 0,169, 21, 13,136,209,104, - 28,103,111,111,159, 52,125,250,244,230,190,190,190,186,113,227,198,133,190,124,249,114, 70,209,107,188,189,189,127, 92,181,106, - 21, 34, 34, 34, 94,205,159, 63,255,114, 74, 74,202,247, 21,140,236, 52, 66,200,242,124,235, 88,202,145, 35, 71,234, 92,188,120, -113,236,178,101,203, 28,190,248,226, 11,201, 87, 95,125, 53, 24,192,226,242,120, 88,150, 85,149, 52, 92, 88, 18, 92, 92, 92,116, - 37,205,225, 42, 64,119, 66, 20,150, 82,105,155,121, 23, 47, 82,221,171, 87,170,223,150, 46,181, 88,127,243,230, 28, 3,165, 78, -142,142,142,104,209,172, 89,142,156,101, 83,146, 18, 18,120,199,234,213,217,151, 39, 78,216,171,165,210,184,221,187,119,103,166, -166,166, 30, 42,215,132, 71, 72, 22, 79,169,206,220,221,211,208,183,103,135,192, 91, 55,238, 61,182,112,180,103,234,215, 11,172, -243, 56,226,213, 29,240,188,158, 16,146, 85, 30,143,149,149,149,111,106,106, 42,178,178,178,224,224,224,128,229,203,151,195,217, -217, 25, 42,149, 10, 97, 97, 97,212,221,221,157, 92,188,120, 17,238,238,238, 72, 78, 78,134, 78,167, 67,118,118,118,146, 86,171, - 85,151, 38,124, 69, 34,209,239, 12, 67,134, 17, 66, 80,181,106,181,168,213,171, 87,235,120,158, 71,173, 90,181,208,171, 87, 47, - 28, 56,112, 0, 97, 97, 97, 5,150, 39,157,151, 87,149, 40,134, 33, 94,249, 90,169,210, 86,157,130,173,125, 98, 99, 99,123, 87, -202, 44, 74, 8,227,234,234, 58,216,199,199,103,236,160, 65,131, 12, 82,169, 20,185,185,185, 5,105, 97,232,210,165,107, 70,247, -238,221,172,130,131,131,203, 12,167, 86,171,125,238,228,228,244,249,215, 95,127,189,125,221,186,117, 54, 51,102,204, 0,207,243, -160,148,130,227,184,194, 77,191,121,158,199,193,131, 7, 17, 25, 25,249, 99, 81,145, 37, 64,128, 0, 1,255, 95, 80, 1, 45,242, -175, 67,145,185, 89, 40, 46,182,254,118,207,240, 44,203,174, 63,125,250,116,189,150, 45, 91,138,218,181,107, 23,232,238,238, 30, - 24, 19, 19, 19, 10, 0,238,238,238,129,157, 59,119, 14,116,116,116,196,138, 21, 43, 84, 44,203,174,175,164,178, 44,218,232,221, -117,113,113, 89,114,224,192,129, 69,163, 70,141,130,179,179,179,255,223, 29,103, 75,153,172,254,240,229,203, 57,177,193,192,252, -178,100,137,229,210,243,231, 23,237,217,187, 87,244,225,135, 31, 18, 74, 41, 30, 62,120,160, 88,184,114,165,114, 96,207,158,175, -158, 60,127,206, 29, 62,117,202,144, 24, 27,155, 22,155,156, 60,155, 82,154, 86, 30,191,193, 96,184,246,244,233, 83,215, 22,173, - 62,116,187,112, 51,244, 94,223,158, 93,219,138, 69, 12,121,246, 42,230,182,139,179,189, 85,200,249,179,106,131,193,112,173, 60, -158,220,220,220,151, 28,199,217, 82, 74, 29, 66, 66, 66,224,224,224,128,244,244,116, 24, 12, 6,232,116, 58,157, 74,165,146,167, -166,166, 66,163,209, 64,171,213,194,210,210, 18, 15, 31, 62, 76,228, 56,238,143,210, 56, 57,142, 27, 46,151,203,191, 23,139,197, - 82,137, 68, 18,119,251,246,109,100,101,101, 85,177,182,182, 94,204,113, 28,226,226,226,112,241,226,197,111, 44, 45, 45, 95, 1, -128, 92, 46,135, 84, 42,179,211,106,181, 92,105,147,225, 77,181,104, 85, 22, 46, 46, 46,158, 85,171, 86,157, 55,117,234,148, 90, -117,235,214, 67,114,114, 50,120,158,135,153,153, 25, 84, 42, 21, 44, 45, 45,209,180,105,211,151,243,230,205,139,167, 20, 35,203, - 19,131,137,137,137,201,110,110,110,227, 70,141, 26,245,189,175,175,111, 85, 74, 41,124,124,124,208,177, 99, 71,156, 56,113, 2, - 17, 17, 17,200,205,205, 53, 94,191,126,125,103, 92, 92,220, 81,161,186, 21, 32, 64,128,128,255,158, 78, 44,152,155, 85,212,154, -245,143, 8,173,196,196,196,100,119,119,247,147,119,238,220,233,214,191,127,127,132,132,132, 12, 5,240, 53, 0,200,100,178,161, -253,251,247,199,157, 59,119,240,248,241,227,147,137,137,137,201,239,226,153, 82,169, 84,163,211,229, 25,167,228,114,185,188,130, -183, 87,201, 31, 50, 4,128, 42,101,156, 43, 21,140, 72,228, 82,187,115,103, 81,250,189,123, 89, 27,111,220,248,126,251,246,237, -162,230,205,155, 19,131, 94, 15, 35,207,163, 90,181,106,164, 93,251,246,102,191,111,223,110,107,204,205,189,248,195,212,169,151, - 54, 12, 31,158, 19, 65,233, 43, 83, 2,168,213,106, 87,142, 29,243,121,251,243, 33,151,220,252,107, 86,183, 61,121,250,252, 93, - 59, 59, 43,165,111,141, 26,102,169,233,105,198, 25,211,190, 17,105,181,218, 95,202,227, 81,171,213, 7,207,158, 61,219,211,195, -195,195, 33, 52, 52, 20, 58,157, 14, 70,163, 17,237,218,181, 3,165, 84, 6,128, 23,137, 68,120,252,248, 49,244,122,125,210,211, -167, 79,227,158, 61,123, 38, 3,176,160, 44, 94,141, 70, 19, 85,244,216,195,195,163, 67, 80, 80, 16, 56,142, 67,231,206,157,113, -248,240,225, 14,225,225,225, 75,139,106,190,183,205,243,124, 11, 89, 45, 55, 55,183, 3,249,167, 76,154, 4,239,238,238, 30,232, -227,227,179,110,193,130, 5, 18,119,119,119, 80, 74, 97, 99, 99, 13,149, 74,133,148,148, 84,248,251,251,195,195,195, 3, 11, 22, - 44, 0,128,157,166, 90,220, 98, 99, 99,159, 1,232,239,239,239, 47,201,200,200,104,216,161, 67,135, 21,237,219,183,199,221,187, -119,113,233,210,165,129, 50,153, 44, 73,175,215,115, 46, 46, 46, 35, 9, 33,150,122,189,126, 71, 74, 74, 74,188, 80,119, 9, 16, - 32, 64,192,127, 2, 5,115,180, 10,189,196, 87,216,162,229,239,239,111,150,153,153,249,105,149, 42, 85,164, 0,160, 80, 40,252, -171, 87,175, 62, 57, 50, 50, 50,187,162,161, 81,169, 84,123,182,111,223,222,241,231,159,127,150,116,237,218,181,186,187,187,123, - 99, 0,232,221,187,119,117, 11, 11, 11,108,223,190, 93,175, 82,169,222,153, 79, 36,131,193,208,178, 81,163, 70, 72, 75, 75,195, -171, 87,175, 42, 52, 44,115,244,232, 81, 37,242,230,101,149,121,174, 44,112, 58,157,141,181,155, 27, 19,123,254,188, 62, 45, 43, -203,165,101,171, 86,196,160,215,131, 97, 24,164,166,166, 34, 58, 58, 26, 86,214,214,228,241,211,167,230,155,166, 76, 57, 90,165, -110, 93,169, 81,167,179,171,128,168,200, 37,132, 12,251,114,220, 23, 7,119,236,216,233,144,145,149, 21,169, 80, 40,181, 50,153, -196,121,252,151, 95, 26,211,210,210,134, 80, 74,115, 76,160, 90,176, 99,199,142,206,157, 59,119,126,224,233,233,233,152,156,156, -236,156,145,145, 97, 76, 75, 75, 99,145, 55,215,138, 0,192,249,243,231,145,149,149,197, 25,141,198,139, 0,230, 81, 74,117,166, -134,181, 74,149, 42, 86, 77,154, 52,105,237,224,224,128,204,204, 76,216,217,217,161, 94,189,122,173,171, 84,169,242,235,171, 87, -175, 50,223,101,169, 63,115,230,140, 5,165,244, 3, 74, 41, 58,119,238,108,210, 61, 70,163,241,179,160,160, 32, 9, 33, 4,106, -181, 10,114,185, 2,102,102,230,176,176,176,132,175,175, 31,226,226,226,208,169, 83, 39, 93,100,100,228,154,248,248,248, 10,151, -209,204,204,204, 30, 77,155, 54,157, 52,102,204, 24,112, 28,135, 30, 61,122,224,245,235,215, 75, 95,190,124,185,219,213,213,117, -240,103,159,125,230, 96,103,103,135, 73,147, 38, 41, 0,124, 39,212, 93, 2, 4, 8, 16,240,239, 71,241, 57, 90, 37, 90,180,202, - 26, 19,117,113,113,105, 97,107,107, 59, 83,173, 86, 75, 11,134,100, 8, 33, 82, 7, 7,135,195,174,174,174,243,227,226,226, 42, - 52, 41, 46, 61, 61, 61,203,197,197,229,240,181,107,215,250,245,238,221, 27,103,206,156, 25,146, 47,180,112,237,218, 53,188,120, -241,226,112,122,122,122,214,187,136,188,187,187,123,151,214,173, 91,247,110,212,168, 17,142, 29, 59, 6,163,209,120,181, 34,247, - 23, 93, 97,136, 18, 86, 29, 22,156, 51,137,140,101, 65, 8, 1,199,113, 0,128,148,228,100, 68, 60,121,130,180,244,116,104, 53, - 26,228,170, 84, 70, 95,111,111,117,166, 78, 39, 38, 0,173, 96, 38, 71,153,155,155, 71,171,114,115, 29,237,108,108,213, 74,165, - 12, 25, 89,153,146,219,183,174,231, 80, 74, 35, 77,228,208, 17, 66, 90,157, 56,113, 98, 54,203,178,253,205,205,205, 49,118,236, - 88,182,117,235,214,144, 72, 36,208,106,181,200,200,200,192,246,237,219,147, 57,142,171,154, 95, 14,204,205,204,204,182,176, 44, - 27,147,149,149, 53,179,188,103,232,116,186,174,221,186,117, 19,233,116, 58,252,240,195, 15,152, 51,103, 14, 58,119,238, 44,186, -117,235, 86, 87, 0, 59,222, 85,161,231,121, 30, 29, 58,116, 40, 58, 25,254,145, 41,247,137,197,226,192, 26, 53,106, 32, 57, 57, - 25,201,201,201,112,112,112,128,171,171, 43,156,157,157,177,116,233, 82,186, 98,197,138,147,122,189,126, 77,114,114,114, 98, 37, -202,226,200,161, 67,135,142,236,215,175, 31,114,114,114,112,237,218, 53, 52,107,214, 12,139, 22, 45,114,185,120,241,226,215,141, - 26, 53,130, 88, 44, 70, 72, 72, 8, 56,142,123, 45, 84, 93, 2, 4, 8,248,255,134,255,226,252,172,242, 80,166, 69,203,211,211, -211,218,104, 52,126,211,189,123,247, 14, 61,123,246, 68,167, 78,157,222,248,127,199,142, 29, 22,251,247,239,159,239,225,225,209, - 89,175,215, 47,168,200, 80, 31,207,243, 7,119,236,216,209,245,195, 15, 63, 84,182,105,211,166, 26, 0,200,100, 50,221,142, 29, - 59, 84, 60,207, 31,172,104, 68,138, 59,143,116,115,115,171, 35, 18,137,122,119,235,214,173,206,176, 97,195, 16, 22, 22,134,237, -219,183, 63,243,245,245,189, 92, 65,234, 87,229,172, 58,156, 95,158,117,139,149, 74, 83, 51, 18, 18,172,205, 61, 61,197, 54, 22, - 22,241,199,142, 29,243,104,223,190, 61,121,253,250, 53,210,211,211,161,209,104,112,235,214, 45, 94, 4, 68,137,108,108, 72,212, -181,107,132,149, 74, 43,188,216,192,195,197,198,103,214,180,209, 85, 52, 90, 77, 64,102,102, 38, 39, 18,139,197,238,206,214, 21, -106,176, 41,165, 90, 51, 51,179,134, 0, 68, 60,207,171,108,109,109,149,167, 79,159,134, 84, 42, 5, 33, 4,181,107,215,134, 92, - 46,151,152,153,153, 69, 3,128,179,179,179,116,253,250,245, 86,131, 7, 15,190, 84, 30,119,131, 6, 13,196,222,222,222, 31,249, -250,250,226,218,181,107, 8, 13, 13,141,186,118,237,154, 87,253,250,245,225,233,233,249, 81,131, 6, 13,246,222,185,115,199,240, -142,122, 23,149,154, 12,111, 52, 26,121, 66, 8, 24,134, 1,207,243, 72, 78, 78, 70,213,170, 85,177,122,245,106, 44, 95,190,252, -135,184,184,184, 35,149, 9,143,191,191,191,164, 94,189,122, 67,250,245,235,135,231,207,159, 99,254,252,249, 41,241,241,241,231, - 79,157, 58,213,103,204,152, 49,108,179,102,205,144,154,154,138,223,127,255,157,187,125,251,246,111, 9, 9, 9, 91,133, 42, 87, -128, 0, 1, 2,222, 99,161,229,233,233,217, 79, 34,145, 76, 26, 48, 96, 0,235,231,231,135,196,196, 68, 88, 90, 90, 26, 8, 33, - 98, 0,176,182,182, 54, 40, 20, 10,140, 30, 61, 26,117,235,214,109, 49,101,202,148,102,110,110,110,171, 99, 99, 99,183,152,242, -224,196,196, 68,149,139,139,203,190,177, 99,199, 46,184,119,239,110, 85, 0,184,121,243,230,139,184,184,184,105,137,137,137,170, - 10,138,172, 2,167,152, 68,161, 80,220,240,241,241,121,217,165, 75, 23,203,158, 61,123,194,193,193, 1,119,238,220,193,194,133, - 11,159,234,116,186,217, 33, 33, 33,220,223,157,200,156, 86,155,112,251,208, 33,139,214, 31,127,108, 57, 62, 40,104,201, 23, 99, -199,254, 60,107,214, 44,145,159,159, 31, 81,169, 84,184,113,227, 6,221,191,127,191,225,247,239,191, 95, 14, 51, 51,241,181,253, -251,165, 58,157, 46,170,130,214,146, 86, 93, 59,183,242, 91,242,243, 74,104,212, 57,184,113, 53, 24,233,233,201, 88,191,225,128, -159,187,187,123,171,152,152,152, 11, 21, 72, 79,223, 51,103,206, 56, 82, 74, 33,149, 74, 49,111,222, 60,184,186,186,194,210,210, - 18,217,217,217,248,250,235,175,173, 38, 76,152, 96, 5, 0, 97, 97, 97,133,238, 25,202, 67, 92, 92, 92,211,209,163, 71, 91,112, - 28,135,147, 39, 79,234, 8, 33, 51,207,158, 61,251,107,237,218,181,165, 45, 90,180,176,216,186,117,107, 51, 0, 33,239, 74,104, - 85,242,190,103,167, 79,159,110,212,191,127,127, 42, 22,139, 73, 70, 70, 6,172,173,173,177,122,245,234,220,248,248,248,224, 74, -151, 1,142,147, 42,149, 74, 41,165, 20,251,246,237, 67, 84, 84,212,103, 41, 41, 41, 9, 78, 78, 78, 7,190,249,230,155,201,126, -126,126,222, 79,158, 60,137,202,206,206, 94,148,152,152,248, 82,168,154, 4, 8, 16, 32,224,191,131,130, 73,240, 21,242, 12,111, - 52, 26, 71,159, 58,117,138,229,121, 30, 27, 54,108,192,237,219,183,169, 82,169,156,169, 84, 42, 87, 41, 20, 10,163, 90,173, 30, - 53, 98,196,136,193,115,230,204, 97, 90,180,104,129,107,215,174, 49, 85,171, 86, 29, 2, 96, 75,145, 7,183, 47,203,215, 70,102, -102,230,173,196,196,132,170, 69, 28, 84, 86,149,201,228,183,202,137,204, 27,156, 37, 56,197,108, 50,111,222,188, 92, 23, 23, 23, - 93,104,104, 40,214,173, 91,199,223,190,125,251,188, 84, 42, 93, 31, 23, 23,167, 53,133,243, 29, 37,122, 33,167,148,227,238,108, -155, 60,185, 86,131, 30, 61,248,207, 39, 77,202,145, 40, 20, 95, 45, 89,185,114, 74, 70,118,182, 43, 8,161,118, 86, 86, 81, 27, -230,205,155,223,249,163,143,114,194, 46, 92,144,223, 59,115, 70,236, 96, 48,220,175, 72, 56, 99, 98, 98, 46,248, 84,247,196,230, -141, 63, 67,175,215, 34, 62, 54, 79,167,165,164,102,162, 44,145, 85, 18, 39,199,113,153,125,250,244,145, 0, 80,124,242,201, 39, -210,164,164, 36, 84,175, 94, 29, 0,144,149,149,133,224,224, 96,212,172, 89, 19, 0,240,240,225,195,194,223,229,133,211,204,204, -236,163,102,205,154, 33, 42, 42, 10, 97, 97, 97,231,226,226,226, 82, 93, 93, 93,207,189,126,253,186,107,163, 70,141,112,240,224, -193,238,165, 9,173,138,230,145, 41, 66,171, 36, 78,133, 66, 49,237,192,129, 3,159, 93,189,122,181,255,228,201,147,197,237,218, -181, 3, 0,100,103,103,171, 40,165,198,202,112, 22, 13,147,193, 96, 0,207,243,176,181,181,205,205,239,112,188, 68, 57,142,100, -255,234,242, 41,112, 10,156, 2,167,192,249,111,224,124, 79, 96,186,103,120, 74, 41,199,243, 60, 66, 66, 66,112,224,192, 1,163, - 94,175, 31, 25, 23, 23,247,176,200, 37, 43, 93, 93, 93,207,244,233,211,103,203,147, 39, 79,216,240,240,112,152,210, 16, 21,133, - 70,163, 49, 20,223,146, 88,163,209,188,245,208,209,230,205,155,145,144,144,160,127,253,250,245, 89,142,227, 14,190,229,234,197, -183, 94,117,248, 59,165,218,143, 9, 57, 59,167,121,243, 14,179,207,156,145,125,254,237,183,218,161,195,134,125, 99,212,233, 12, -172, 68,194, 75,205,204, 24,163, 76, 38, 14,187,112, 65,190, 98,204, 24, 91,181, 86,123,114, 91, 5, 38,152, 23,177,104, 97,232, -231, 19,161, 46, 98,209,186,118, 43, 2, 21,181,104,105, 52,154,128,124,209, 17, 13,192,249,211, 79, 63, 5,207,243, 80,171,213, -200,206,206, 70, 92, 92, 92,230,176, 97,195,140,249,226, 73,212,187,119,111, 75, 83,120,171, 85,171,230, 42, 22,139,113,242,228, - 73,136,197,226, 96, 0, 16,139,197,193,103,206,156,233, 58,112,224, 64,184,185,185, 85, 35,132, 16, 90,142, 74,114, 10,236,185, -135, 2, 62, 32,168,145,247,198,163,134, 99, 96,207, 7, 4,120,154,239, 53,254, 81,253,250,245, 1, 19,231,101, 21, 69,254,226, -142,229,246,246,246,123,167, 76,153, 50,182, 73,147, 38, 29,231,204,153, 67, 0,176,239,196,186,201,113,111,229,122, 66,128, 0, - 1, 2, 4,252,123,173, 90, 37,157, 23,149,113,195,134, 86,173, 90,141, 4,192, 18, 66,214,197,198,198, 62, 44,126, 77, 92, 92, - 92,132,155,155,219, 98,111,111,239,194,141,166, 43, 18,168,124, 79,238, 11, 25,134, 76,201, 59,174,184,131,202, 34, 91,157, 76, - 1, 64, 24,134,221,114,247,238,221,111,163,163,163,147, 43, 42,252, 74,194,187, 88,117, 8, 0, 59, 40,125, 57,144,144, 83,147, - 2, 3,219,119, 30, 51, 6,117, 58,119,182,116,245,242, 50,170,245,122,254,225,229,203,228,234,190,125,146,123,103,206,136,213, - 90,237,201, 3,148, 70, 87, 52,156, 49, 49, 49, 23,170, 87,115, 63,221,183,119,215,142,213,188, 93, 1, 0,207, 95,198, 33, 37, - 45,243,116, 69, 68, 86, 49,193,213, 99,245,234,213, 71, 36, 18,137,168,232, 86, 54,122,189, 62,173, 64,140, 17, 66, 92, 55,108, -216,176,139, 97,152,168,242,248,194,195,195, 15,207,158, 61,187,247,171, 87,175, 78, 71, 71, 71,191, 2,128,168,168,168, 87,174, -174,174, 91,226,227,227,123, 71, 69, 69,237,167, 38,168,144, 98,155, 74, 35,236,242, 94, 57,128,218, 5,155, 74, 87,118, 47,195, -162,200,119,173, 48,211,197,197,101, 71,199,142, 29, 71, 0,136,125, 27, 62,157, 78,103, 80,171,213,156,209,104, 20,233,245,122, -170,211,233, 12, 66,181, 36, 64,128, 0, 1, 21, 66, 35, 0, 5, 59,145, 20, 24, 80, 28,138,253,214, 33,127,187,192,130,234, 55, -255, 56, 25,192,173, 34, 28, 69,207,151,119, 47, 0,164, 0,120,144,127,174, 36, 45,178,161,180,227, 82,133, 86,108,108,236,126, -152,176,105,180,169,215,149, 33,148,166, 19, 66, 86, 20,136,166,183,229,224, 56,238,157,236, 15,199, 48,204,203,238,221,187, 87, -232,250,242,174,217, 69,105,212, 87,132,108, 61,246,203, 47,245, 78,174, 91,231,102,228, 56, 59, 2, 80, 86, 42, 77,213,233,116, -175, 28, 12,134,251, 21,181,100,189, 97,141,121, 30,211, 9, 0,124,124,124,232,179,103,207, 64, 41,125,171,213, 27,148,210,251, - 0, 60,202,185, 38, 14, 64, 11, 19,197,224, 78, 0, 59, 75, 16,236,187, 0,236, 50,185,215, 80,176,169, 52,192,240,132,239, 27, -208,188,223, 62, 0,124,193,166,210,239, 18,241,241,241, 79,144,239,231,237,109,240,234,213, 43,173,183,183,247,182,133, 11, 23, -126,114,239,222,189,221,177,177,177, 90,161,206, 20, 32, 64,128,128,138,137, 44, 66,200,177,252,182,167, 91,126,103,255, 88,241, -223, 5,215, 20, 92, 87,244,154, 2,142,226,231,203,186, 23, 0,166, 77,155,246,237,252,249,243,149, 0, 76,218,140,185,168,227, - 82,209,191, 33,245,222,197,230,185,239,122, 3,222,152,152,152,141,127, 69, 92, 87,230, 9,169,235,127,101,122, 62,125,250,148, -188,207,111, 91,193,166,210, 69, 16,248, 95, 8,247,203,151, 47, 87,183,110,221,122,125,108,108, 44, 7, 1, 2, 4, 8, 16, 80, - 17, 56,148, 36,140, 74,209, 3,221,202,250,191,152, 32,250,211,117, 37, 29, 19, 66,142,205,159, 63,191,155,169,129, 45,106,209, - 98,132,188, 19, 32,224,239,195, 63,177,234, 85,128, 0, 1, 2, 4,148, 42,136,222,176, 98, 21,136,175,226,199,211,166, 77,251, - 22,165, 12, 27,230, 95,227, 66, 8, 25,153,191,234,240,141,249, 90, 4, 64,251, 82, 30,110,242,106, 2, 66, 72,251, 74, 68,238, -172,192, 41,112, 10,156, 2,167,192, 41,112, 10,156,255,191, 56,203,227, 46,229,254,160,210,134,250,202, 26, 70, 44,254,187,188, -123, 77,184, 54,184,148,184,140, 44,186,215,225, 27,123, 30, 22, 76,114,254, 43, 62, 0,218, 11,156, 2,167,192, 41,112, 10,156, - 2,167,192, 41,112,190,229,167, 17,165, 52, 8,121,187,166, 80, 74,105, 16,165,180,243,180,105,211,166, 23,156,155, 54,109,218, -116, 74,105,187,130,235,242,175, 41,188,167,224, 92,241,239,226,231,202,185,182,180,244, 24, 89,244,119,209,227,127,197, 28, 45, - 1, 2, 4, 8, 16, 32, 64,128,128, 50,112, 11, 64,163, 34,214,166,100, 0, 15,231,207,159,159, 94,100,238, 84, 50,128,251, 0, -234,230, 95,151,156,111, 80, 42, 58,183, 74,151,127,172, 43,225, 26,157, 41,215,150, 98,133,219, 80,210,111, 0,130,208, 42, 13, -245, 92,216,239, 61,221, 29, 27, 22, 90,253,120, 30, 0,192,231,123, 31, 40,116, 67,192,243,160,148, 34, 46, 41,227,206,131, 68, - 58,171,178,207,243,115, 35,182,142,114,249,114,158,210,230,249,167, 46,100,166,106, 39,134,102,210, 12, 83, 57,106, 57,147, 90, -114, 6,223,240, 20,117, 0,128, 33,120,160,225,177,248, 81, 2,125,244,182,233, 65, 8, 33, 1, 14, 24, 41, 85, 40, 7, 88, 89, -219,212, 72, 79, 79,121,170,215,104,247,134, 39, 99, 61,173,132, 99,168,234,182,228, 3,158,226, 91, 0,140,152,193,210,136, 84, -122, 94, 40,117, 2, 4, 8,248,155,240,182,126,241, 74,114, 29,244,182,139,144, 4, 7,123,166,137,173,226,184,105,226,117,255, - 24, 42, 36,180, 2, 28,201, 24, 16,204, 5, 64, 65,241, 93, 88, 18, 93, 91,161,251, 93, 73,123, 57,203,110, 2,192,106,244,198, - 73,148,199,197, 18, 27,117, 6, 45,229, 18,118, 41, 0, 94, 99, 52, 14, 15,139, 51,125,190, 88,160, 59,233, 44,226,153,109, 60, -165, 98, 35, 79,183,128,226,152,185, 4, 87,174,197, 80, 77, 69,194,234,233,238,216,240,208,205,248,142,231,215,142, 71,147, 58, -213, 65,141, 28,192, 27,160,108,241, 13,206, 45,251, 20, 77,106,121,130,242, 6,128,231, 96,222,101, 9,186, 4, 90, 85,250, 37, -241,115, 35,182, 94,246,142,161, 27, 55,110,114,118,173,230, 79,120, 78,143, 39, 55, 79, 15,158, 48,101,118,219, 64, 43, 18,104, -138,216,170,235, 74, 62,175, 94,213,239,155,137,115,127,102, 93, 92, 61,204,120,131,150, 75,120,249,168,254,202, 69,179,247,215, -117, 37, 75,239,199,209, 77,166, 10, 42,127, 7,140, 18,201,164,253, 20,114,179, 26, 42, 85,246, 51,163,222,176, 55,208, 85,212, -121,241,146,229,245, 90,119,232,106,110,204, 78, 96, 12, 60,252,247,236,222,229,245,203,234, 53, 93, 9, 33, 31, 81, 74,249,138, -196,153,167,152, 18,177,117,100, 87,177,136, 37,181, 62,219,200,194,196, 37,179,197,225,239, 68, 6, 17, 90,190,123, 9, 74,112, - 41, 60,145,238,172,204, 51,106, 57,145, 95, 9,133, 47, 8,246, 17,138, 93, 97, 73, 52, 73,168,239, 4, 8,120,191,192, 48,204, -121,158,231,219,188, 75, 78, 66,200, 7,148,210,235, 66,234,254,255, 70,197, 44, 90, 4, 63,132, 69,190,182,129, 81,143, 0,223, -106,223, 3,168,144,208,146,179,236,150, 91, 79, 19,157,193,233,177,241,199,177,187,117, 6,128, 51,232, 97,228, 12, 48,114, 6, -112,156, 30, 70,131, 1,212,160,197,236,223,206, 3,186,108, 52, 12,244,217, 2,192,197,212,103,136, 41,179,237,206,229,211,182, - 68,151,137,157,107,231,127,249, 58, 57,231,203,179, 15,226, 82, 2,156,200,244,240, 36,252, 94, 17, 65,112,126,221,120,108, 63, - 24, 28,179,226,215,220,199, 60,165,176,181, 84,248, 13,238, 22,230,177,245,240,249,215,203,183,104, 30, 3,128,149,153,212,111, -200,131,167,158,111,147, 9,142,114,249,242,245,107,126,113,118,177, 83, 16,238,234, 2,112, 70, 35, 60,188,130,216,233,227, 6, -187,252,176,108,211, 50, 0, 67,203,186,191,166, 19,241,247,173, 94,107,210,150,224,171,158,185, 89, 73,186,211, 59,190,141,132, - 22, 6,103,183, 90,226,239,231,255,204,206,152, 58,254,235,154, 78,228,198,227, 68, 26, 94, 78,165,192,212,114,196,225,249, 11, -150,212,105,219,165,155, 57,159,147,204,106,114,115,124, 55,254,182,105,110,205, 58,141,149, 45, 2,221, 37, 73,123, 71, 19,117, -118, 26,244,140, 92,214, 54,160,189,165,250,147,129,134,141,155,183,143, 3,176,178, 66,221,193, 34,195,214, 60, 95,249,222, 37, -161,104,113,239,250,249, 81,198,184, 91,160, 70, 3, 96,212, 23,126,195,104, 0,229,243,190,155,140,254, 13, 40,193,135,151, 73, - 21, 48, 69,199,179,151,111,185, 36, 38,196, 55, 90,182,228,167,233,254,142,228, 4,140,216,246, 40, 13, 23, 42, 42, 48, 5, 8, - 16,240,239, 5, 33,132,163,148,138,222, 49,103, 87, 74,233,241,183,228,248, 6,192,231,249,135,155, 40,165,139,223, 65,184,220, - 1, 56,231, 31, 38, 80, 74, 99,132, 18,240, 86,233, 57,178,232,144,225,219,248,209,146,131,242,192,190,158, 0,160,168,104, 64, - 40, 32, 7, 97, 1, 67, 46,122,116,233, 0,123, 71,103,192,160, 2,244, 42,192,160, 6, 12,185,128, 65,141,148,248, 40, 64,159, - 11, 60, 63, 1,142, 82, 89,133, 99,172,205, 4, 34,246,162, 93,125, 79, 56, 88,201, 49,190,135,191,253,134,147, 17,155, 54,157, -126,210, 30,192, 0,147,194, 74, 41,154,212,174,129, 21,155,114, 31, 31,185,147,212, 9, 0,130,234,217,159,108,226,239,229,177, -124,139,230,113,240,131,180,206, 0,208, 37,208,234, 68, 99, 63, 23, 79,254, 45,172,190, 60,165, 45, 92,171,212, 32,198,123,235, -193,103,197, 32, 43, 75,141,152,151, 91, 97,227,214,128, 49,242,104, 85,222,253, 10, 22,211,190,154,177, 80,172,202, 74,212,241, -250,100,163, 3,155,206,138,164, 60, 65,236, 5,109, 14,159, 97,156, 56,242, 83,110,210,172, 31,167, 1, 24, 92,166,117,200, 17, -227,150, 46, 93, 94,187, 89,195,154,142, 9,251,199,147,156,244, 68,112,172, 82,214,227,195,102,176,246,241,231, 19, 67,150, 18, -105,181,246,176,182,171,134,216,171, 59,240,234,250, 1,210,188,126,111,217,239, 59, 37,159,148, 38,180,124, 28, 72,243, 78, 45, - 27,239,174,230,233,234, 66, 41, 15,158,167,160,188, 17,159,245,237,136,233,123,158,195,104, 52,162, 79,167,230,237, 22,142,106, - 75,121,158, 7,165, 60, 94, 39,164,170,254,184,241,184, 93,100, 26,189, 97,138,165,170,238, 7,109,154, 63,184,115,189,166, 33, -226, 40, 26, 14,158,255,152, 0,151,139,148,185,230,119, 79,253, 94, 19,248,173,178, 47, 15,169,229, 8,227,171,147, 11,224,217, -114, 36,187,126,231, 73,135,204,228,216, 33,251,183,174,233,187,118,253,250,237, 0, 70, 11, 85,140, 0, 1,239, 7, 40,165,239, - 92,108, 69, 69, 69,197,189,141,216,114,119,119,111, 9, 96, 81,193, 12, 13, 66,200, 34,111,111,239,217,255,235,168,190,209,215, -203, 52, 26,141,131, 99, 98, 98, 46,150,197,217,173, 91, 55, 87, 0,222, 69, 56,189, 9, 33,222, 37, 93,107,109,109,109,108,218, -180,233,171, 99,199,142,197, 9, 37,164,226,130,171, 50, 66,235,113,244,222,241,245,181,241, 57, 0,240,216,132, 66,251,198,144, -159,198, 96, 92,176,121,238,167, 11, 2,170,216, 34, 59, 87,135,211,183, 95,193,104, 52,192,200,113,249,150, 45, 14, 70,206,128, - 78,117,237,209, 84, 51, 26, 43,143, 61, 1,103,228,231,151,197, 89, 28,122,202, 15,170,215,190,255, 30,158,167, 82,153,152,201, -244,245,176,115,156,212,167, 46, 51,190, 71, 0,212,122,174,191,191, 19,249, 35, 60,145,110, 52,137,147,255,179,203, 35, 90,210, - 57, 35, 87,110,220,203,176, 70, 53, 25,216,173,131, 37,213,102,194,144,242, 28,217, 42, 3,158,167, 26,144,160,201,128,140,196, -155,196,201, 83,212,113,119,115, 81, 94,217, 61,245,165, 29,155, 37,114,100, 57,137,148,225, 96,228, 41, 75, 51,194,181,182, 53, - 59,136, 11,230,109,149, 21, 78,133,210,226,211,150, 29,131,172,162,119,140, 36, 10,223, 78,112,172,239,129,151, 23, 55, 35,233, -246, 49,164,198,189, 34,150,154, 12, 56,217, 85, 71,151,193, 3,176,120, 64, 35,100,103,101,131,141,143,180,146,138,101,214,165, -113, 82, 35, 6, 47, 93,248,163,139,136,101,242,210,179,224, 99, 52, 64,173,213, 2, 70, 14,114, 17, 15, 66, 11,254, 51,192,104, -208, 43,235,244,158, 58, 22,192,141,242,226, 30,158, 72,119, 6, 56,146, 22,224, 13, 53,169, 65, 13, 2, 92, 14, 75,162,133,226, -199,223,137, 12,106,208,105, 88, 11, 74,112,169, 50,121, 20,104,135,110, 13,189,205,205,204,178, 30, 35,102,223,151,136,132,156, - 58, 53,251, 28,131, 62, 27,167,220,176, 97, 67,119, 66,200,152,162,115,212,254,138, 77, 86, 5, 78,129,243,191,202,105,101,101, - 85,181, 74,149, 42,179, 13, 6, 67, 75,137, 68,226,164,215,235,193,243,124,130, 84, 42,189,244,234,213,171,121,153,153,153, 47, -254,109,113,127,240,224,129,201, 98,203, 20, 78,177, 88,140, 39, 79,158, 60, 51, 85,108, 21,231, 20,139,197,219, 46, 95,190,140, - 61,123,246, 0, 0, 34, 34, 34,224,227,227, 99, 86,210,189, 47, 95,190, 52,107,221,186,245, 54, 20,219,209,163, 56,231,195,135, - 15,171, 30, 61,122, 20,251,246,237, 3, 0, 60,121,242, 4,190,190,190, 37,134,231,242,229,203,236,199, 31,127, 92, 21, 64,220, - 95,157, 71,239,131,200, 42,250,253,134,208, 10, 14, 14,166, 65, 65, 65,164,248,239, 18,240,220,211, 70, 90, 31, 26, 35, 0, 60, -175,104, 32,194, 19,232,194,186, 46,226,206,231,246,173,110, 41,151, 48,152,179,113,210,235,228,180,236, 15, 68, 4, 60, 0,112, - 20,140,141,185,244,218,252, 33,117, 61,211,115, 52, 56,114, 51,246, 98, 88, 98,197, 76,164, 97,113,244, 12, 0,235,255, 53,148, -196,119,200,226, 51,187,118, 77,235, 92,103, 98,143, 58, 56,124,245,213, 68, 0,229,122,125,167, 60, 15,202,115,133,147,223,243, -187, 14, 0,255,230,166,192, 60,104,222, 57,190, 98, 22,173,214,132,136,210, 29,209,197, 86, 41, 93, 53,106,212, 8, 75, 67,242, - 83,164,233, 36,120,157,174, 65,130, 90,140, 28,145, 35, 98, 31, 63, 52, 50, 4,103,202,207, 92,100, 81, 78, 99,109, 35, 53,103, - 2, 59,140,117,203, 58,249,109,186,148,112,172,101,175, 31,172, 83,206,253,252,138,203, 77,206, 37, 4,229,238,173,103,101,101, -237,163, 73,125,197,102,166,167,192,218, 57, 0,157,251,119,195,119, 65,254,200,206,202, 69,114,218, 53, 90,195,197,146, 68, 93, -218,142, 25, 93,106, 33, 53, 49, 30, 90, 3, 64,114,181,105, 26,157, 38,167,212,116,100,176,126,194,228, 41,131,188, 92, 28,204, - 10, 22, 21, 80,222,136,186,181,170,161, 67,203, 38, 56,115,249, 10,110, 61,140, 0,159,191,168,128,242, 60, 98,146,210, 19, 53, -122,227,230, 10, 37,168,145, 3, 53,104, 74, 20, 98,168,196,144, 97,109, 39,162, 52, 2,179, 62,168, 97, 49,124, 90, 55, 47, 11, - 51, 25,129,198, 96,132, 70,103, 64,246,149, 85,176,171, 82, 27, 74,185,156,212,135, 90, 4, 64,216,183, 80,128,128, 34,232,215, -175,159, 60, 49, 49, 49, 36, 40, 40,200,191, 67,135, 14,202, 22, 45, 90, 32, 55, 55, 23,167, 79,159, 70,110,110,174,151,135,135, -135,215,233,211,167,123,127,240,193, 7,225,238,238,238,173,247,238,221, 91,145, 57,180, 34,252,111, 50, 59, 15,128, 35,132, 32, -255, 28, 1,192,191,205, 62,183, 82,169, 20, 81, 81, 81,239,220,178, 21, 27, 27,251,172, 50,150,173,156,156, 28,137,155,155, 27, - 28, 28, 28, 96, 52, 26,145,155,155,139, 67,135, 14, 33, 51, 51, 19, 60,207, 67,161, 80,224,135,165, 27,241,248,110, 8,110,220, -184,129,204,204, 76, 73,121,156, 49, 49, 49,164,110,221,186,208,106,181,224, 56, 14, 26,141, 6,103,207,158, 45, 60, 22,137, 68, -152,242,253, 50, 68,220, 14,193,189,123,247, 16, 19, 19,243,183,236, 54, 82, 1, 45,242,111,180,134,110, 40,171,192,254,173, 48, - 26,185,233, 27,182,236,186, 54,125,244, 0,140, 27,216,222, 99,222,234, 3,237,195,147,233, 22, 0,240,119, 32, 67, 62,105, 83, -195,211, 90, 41,198,119, 59,110, 3,148, 78,127,219,231,133,166,210,136, 0,103, 50,241,224,141,168,144,111, 7,212, 71, 53, 23, - 75,159,234,213,137, 52, 50,210,132, 61, 5,121, 14, 54,230, 50,191,160,122,246, 39,193,243,176,182,144,213,132,145,131,181,185, -204,175, 75,160,213, 9, 0,176, 86, 74,106,150,100,249, 42, 13,141, 60, 37, 35,149, 50,209, 72,179, 6, 46,158, 67,187,119, 80, -116,237,222, 91, 97, 46,230,144,122,227, 52,178,196,238, 48,216,122, 65,107, 72, 67,204,139, 72,227,185,235,143, 98, 83,178,181, -147,202, 13, 38,197,197,216, 23, 79, 28,170,214,233, 96,147,114,108, 70, 82,213, 97, 59,188, 25,240, 76,246,246, 94,137,102,142, -141, 21, 55,159,191,200,225,233,159, 45, 58,197,145,149,153,249,202, 96,132,139,218, 40,178,136, 60,255, 59,166,117,169,141,244, -180, 36,104,244, 28, 50,213,156,222,217, 90, 46,211,190, 8,133, 86,207, 65,103,224, 33,182,118,195,233,107, 15, 83,120,131,225, - 68,105,156,145, 41,244, 30, 0,243,162,231,170, 59,144,186, 83, 45, 21,247, 96, 80, 35, 42, 38, 14, 91,130,175,213,207,191,174, -242,133,156,231,242,134,159,139, 88,178, 8, 69,139,202, 76,130,175,229, 68, 26, 43,228,146, 95, 22, 77,252,216,255, 67, 95, 91, - 25, 31,115, 13,132,215,195,204, 40,130, 90,106,132,149, 71, 53,240,186,108,170,210,104, 50,194, 0,193,211,187, 0, 1, 69, 80, -179,102, 77,103, 43, 43,171,176,201,147, 39,219,246,234,213, 11, 7, 15, 30, 68, 86, 86, 22, 54,111,222,140,229,203,151, 99,238, -220,185, 48, 24, 12,216,176, 97,131,114,255,254,253,141,215,172, 89, 19,227,229,229, 21, 16, 21, 21,149, 80, 94,159, 18,128, 12, -128, 56,191,237, 34, 0,248,227,199,143,163,107,215,174, 56,126,252, 56,159,127,206, 72, 8, 49, 80, 74, 43,181,159,168, 84, 42, -133, 84, 42, 69,102,102,230, 59, 17, 91, 98,177, 24,230,230,230,144, 74,165,200,206,206,174,176,216,226, 56,142,141,137,137, 65, -102,102, 38, 58,116,239,142,101,243,231,163, 77,155, 54,232,208,161, 3, 40,165, 56,123,246, 44,218, 55, 11,196,128,143, 90,227, -209,163, 71,224, 56,206,164,240, 38, 36, 36, 32, 49, 49, 17,157,187,119,199,198, 53,107,208,164, 73, 19,248,249,249,129,227, 56, -132,132,132,160,111,167,102,144,247,108,143,136,136, 8,161, 80,155,104,205,122, 87,115,180,222, 26,161, 73,244,186,191, 3, 57, - 54,176, 83,227,110,221,155,251, 99,227,238,115, 63,250,251,147, 93, 0, 96,103, 33,251,225,211, 54,213, 16, 30,157,142,115,247, -226,142,133, 39,191,155,213, 26,188, 17,246,118,150, 74,128,149, 66,173,231, 57,203,231, 40,119, 2, 51, 79, 41,148, 45,167,226, -147,238,225, 30, 77,252, 61, 60, 10, 86, 29,154,119,253, 25, 67, 30, 62,243,108,228,231,236, 9,163, 1, 48, 26, 96, 57, 96, 7, -240,189, 89,185,225,104, 94, 85,118,102,234,164,137, 77,187,244,236,175,144, 42,173, 96,204,122, 13, 67,194, 67,164, 62,189,136, - 92,165, 15, 18,162,158, 99,207,169, 27,153, 79, 99, 82,179, 24, 6,167, 19, 51,181,223, 68,166,209,156,242,120, 53, 6,204,159, - 61, 99, 82,208,158, 93,187, 45,100,213,154,147,200, 85, 93, 51,165, 34, 78,230,224,221,128, 81,201,237,233, 79,155,119, 91,230, -234,176,160, 60, 30, 85,110,214,129,179,167, 79, 14,168, 81,181,185,197,203, 91,193, 80,107,180,208, 26,128,128,198,173, 97, 52, - 82, 41, 97, 8,111,201,178, 36, 41, 53, 29,196, 96, 76,188,116,255,101,252,229,251,207, 89,173, 69,249,220,111,168,123,194,126, -213,189,117, 61,192,160,198, 71, 45,107, 99,217,246,115, 95, 2, 24,246,118,153,156,103,209,162, 64,243, 0, 71,178, 14, 64,243, -219,135,150,215,108,216,115, 2, 42, 98,209, 10,116, 32, 93, 2,171,187,254,190,236,135,169,182,118,238, 62, 44,225, 13,160,206, -117,128,172, 24, 74, 98,174,193,202,173, 9,140,174,205,176, 97,229,146, 28,158,167,187, 42,227,218, 66,128,128,247, 25, 26,141, -230,192,194,133, 11,109,187,117,235, 86, 96,145,193,181,107,215,176,105,211, 38,152,153,189, 89, 79,118,237,218, 21,148, 82,219, - 57,115,230, 28, 0,240, 97,105,156,205,154, 53,235,190,114,229,202,184,122,245,234, 61,207, 23, 91, 18, 0, 76,104,104, 40,243, -250,245,107, 98, 99, 99, 67, 93, 93, 93, 13,113,113,113, 60, 0,227,103,159,125,198,154,155,155,215,200,201,201,185, 80, 89,161, - 37,149, 74,223,201,156, 45,177, 88, 12, 66, 8,164, 82, 41, 36, 18, 9, 40,165, 21, 18, 91, 70,163, 81,116,252,248,113,220,190, -125, 27,115,235,213,195, 68, 55, 55,216,218,218, 34, 36, 36, 4,148, 82,152,153,153, 33, 45, 45, 13,187,118,237, 66,219,182,109, -193,113,156,196, 20,222,125,251,246,225,206,157, 59,248,190, 97, 67, 76,180,178,130,185,185, 57,206,158,205, 27, 13,148,201,100, -136,138,138,194,217,179,103,209,186,117,107,161, 80,191, 37, 76, 46, 60,173, 9, 17, 17, 39, 56,235,117,106, 80,142, 2, 4,174, -254,254, 68, 18, 30, 78,245, 21,125, 40,195, 96,198,202, 45,199,130,126,158,208,157,140,236, 81,223,117,222,239,231,199, 0,192, -240, 62,190,110, 74,153, 8, 43, 14,135, 83,134,193,140,119, 17, 65,127,127, 34, 97, 24,140,233,208,196, 15,113, 25, 58, 68,198, -101,252, 17, 78,169, 73, 67, 61,231,126,254, 4, 91,143,132,188, 94,190, 85,243,152, 82, 10,107,115,153,223,144, 7,145,158,191, - 31,191, 19,189,116,143,230, 49,229, 41,172,149,226,154,195, 30, 53, 43,119,213, 97, 35, 79,201,200,233, 83,191,105,214, 99,216, -100, 57,247,120, 47,116,145,167,192,235,213,200,210, 75,144,193, 58, 35, 38, 58, 26, 63,109, 56,246, 58, 43, 87, 55, 32, 52,169, - 98, 2, 51, 34,133,230,248, 59,144, 94, 63,125,247,237,153,249, 63,204, 49, 87, 63, 15,201, 97, 9,167,102,171,180, 18,253, 48, -247,103,146,173,213,245,143, 76,163,217,229,241,104, 45,176, 96,225,210,149, 65, 35, 6,247,126,236,235,211,202,206, 24,247,194, - 78,147,149,149,180,227,228, 29,231,252,158, 34, 1,128,200,152, 84, 36,103,230,114, 70,206,112,193, 66,140,121, 97,166, 88, 7, -243, 81,205,137, 56,244,106, 81,231, 99, 7, 11, 9,212, 57, 25,112,180, 16,163, 83,147,234, 31, 87,115, 34, 83,159, 39,210,228, -202, 11, 45, 3,168, 65,141,235, 11,218,214,164, 70, 67, 77, 24, 13,208, 63,216, 86,113,203, 24,193,196,113, 45,205, 45,109,116, - 47, 25,228,154, 1, 10,123, 16, 75, 47,192,202,155,136,107,245, 71,220,243, 48,238,203,143, 7,167,190,120, 21,243,171,189, 2, -139,133, 42, 68,128,128, 55, 17, 21, 21,245,233,244,233,211, 47, 55,105,210,196,201,222,222, 30,181,107,215,198,145, 35, 71, 48, -121,242,228,194,107,234,213,171, 7, 74, 41,210,210,210,176,112,225,194,132,184,184,184, 79,203,226, 12, 11, 11,123,188,117,235, -214,150,254,254,254,122,137, 68,146, 1, 64,150,145,145, 33, 79, 75, 75, 35, 26,141, 6, 60,207,243, 86, 86, 86,198,184,184, 56, -195,128, 1, 3,180, 87,175, 94,173,158,155,155, 27,245, 54, 22, 45, 15, 15,143,208,212,212,212, 76, 66,200, 91,187,126, 40, 16, - 89,246,246,246, 14, 57, 57, 57, 60,128,244,202,184,126,224, 56, 14, 13, 27, 54,196,169,139,119,113,252,220, 85,100,197, 61,193, -152, 17,159,162,118,237,218, 56,117,234, 84,165,243,172,110,221,186, 56,121,246, 50, 46,223,190,143,168,136, 7,248,114,204, 8, - 4, 4, 4,224,228,201,147, 66,129, 54, 29,193,197,230,102, 5, 23, 23, 90,173,131,131,131, 11,122,230,127,146,175,181, 28, 72, - 93,215, 26,210,109,115,186, 84,175, 37,238, 48, 7, 68,172,192, 94,159,147,205,102,252,180,234,113,109, 39, 50,248, 97, 98,249, -171,195,222,176,106, 37,210,176, 0, 71,178,243,254,163,154, 31,127,212,196, 3, 27,143, 40,103, 1, 64,255, 22, 85,113,243,105, - 50,110, 68, 36,237, 12, 75,162, 97,111, 27,235,218, 78, 68, 9,138,157, 11,191,234,209,218,203,221, 25,155, 14, 94, 6, 33, 56, - 96, 82,131, 75, 41,109,226,239,133,229, 91,139,175, 48,116,246, 92,186, 71,243,248, 84,104, 86, 23, 0,232, 88,203,236, 68,163, -234, 54,158,229, 89, 54, 20, 82,209,168, 46,189, 63,145,115, 17, 71,128, 87,103, 65, 56, 45,212,122, 30,241, 41,217, 80, 89,121, - 32,228,218,125,117,166, 70, 55, 33, 44,169,114, 86,188,240,100,250,188,158, 11,137,206,201, 85,187, 40, 29,170,107, 88,134,231, -115,180, 20, 55,195, 95,101,133,197,211, 39,166,112, 68, 70, 82,221,135,238,164,197,186, 45,123,102,139, 37,210,254, 44, 1,113, -180, 54,115, 88,247,243,247,176,176, 48, 7,175,203, 1,114,147,209,235,139,159,146, 31,198,234,171, 2,128,175, 61, 49,111, 89, - 77,178, 69,196,144,152, 63,158,233,102,150,107, 94, 53, 96,244,224, 78,245,196,188, 46, 23, 95, 45,220,141,245, 83,123,224,147, -118,181,196,193, 87, 34, 70, 3,152, 87,217,188,166, 70, 14,212,160,198,135,223, 94,124, 76,128,203, 20,104,126,123,207, 15, 53, -129,187, 38,115, 52, 32, 68, 44,114, 33,181,234,120,154, 73,248,152, 43,224, 99,174, 80,214,163, 25,136,103, 75, 66,156, 27,210, - 95, 22,205,205,221,184,113,211,105,158,193,119,229,185,202, 16, 32,224,255, 43, 40,165,207,173,173,173, 59,119,237,218,245,220, -169, 83,167,108, 3, 3, 3, 1, 0,183,111,223, 6, 0, 52,108,216, 16,190,190,190, 72, 76, 76,196,192,129, 3, 83,226,227,227, - 59, 83, 74,203,156,243,155,157,157,253, 98,223,190,125, 78,185,185,185,245,102,206,156,153,228,229,229,149,165,209,104, 72, 70, - 70, 6,207,113, 28,108,108,108,164,245,234,213, 67,211,166, 77,115,174, 93,187, 86,229,245,235,215,217, 0, 94, 85, 38,252, 61, -122,244,192,197,139,121,139,246,222,133, 95, 45,137, 68,130,192,192, 64,183,231,207,159,199,230,167,207,245, 74,164,105,225,239, -251,247,239,227,194,221, 24,136,116,106, 72,147,227,112,253,224, 62,116, 31, 53, 22, 28, 87,249, 89, 12,247,239,223,199,161,179, -215, 97, 38, 19,225,201,147, 48,236,219,183, 15, 99,198,140,121, 43,206, 74,162, 76, 45,242, 47, 47,247,241, 0, 54,148,106,209, - 10, 10, 10,186,128, 18,188,218, 86,175, 78,164,178, 28,204,233,212,208,109, 74,255,230,213, 89, 67, 86, 28,120, 35, 15, 86, 12, - 56,218, 91, 98,219,182,157, 85,119,238,222,125,173,174,155,120, 37,207,113, 51, 30, 38, 82, 85, 5,194, 53,231,231,221,151,251, -111,155,212, 90, 52,166, 75, 77, 91, 0,144,136, 24,172, 56, 18,198, 1,152,243, 54, 17,254,208,157,200,115, 12, 24,233,108,103, - 53,107,250,231, 65,182,173, 27,250,226,194,141, 80,172,220,119,237,162, 52, 9, 91, 77, 78, 56,222,128,226,250,169,164, 85,135, -224,203,159,119,105, 52, 82,103,137,153, 13,244,175,206, 3,122, 13, 52, 90, 61, 94,167, 26,241, 58, 77, 3,145, 82,130,219, 17, - 49,106,187, 4, 28,171,108,156, 9, 33,164,121, 53,185,235,236, 31,151,186,107,212, 57, 92, 86,122, 10, 39,145, 94, 23, 43, 21, -178,248,138,240, 92,139,161,154, 86, 85, 37, 13, 0,158,149,202,169,234,219,175,135,154,197,134,159, 66, 13, 38, 14,132, 82, 40, -106, 5,193, 66,193, 74, 90,120, 75,162, 1,192,219,217, 74,186,240,187,201, 86, 19,166,126, 87,238, 28, 48,127, 66, 36,181, 27, - 57, 79, 8,244,178,193,197, 59,143,113,241, 97, 84,216,197,219, 79, 2,218,212,118,133,175,187,245,120,127, 66, 22,132,211,138, - 91, 72,243, 50,134, 3, 12,154,194, 85,135,254, 78,100, 80,163,254, 51, 75, 92,109, 88, 26,188, 1, 62,194, 72, 65, 88, 22, 32, - 76,222, 10,200,215, 87, 32,178,174, 70,119,238, 57,164,218,180,105,235,247,225,201, 84,176, 98, 9, 16, 80, 14, 50, 50, 50, 30, - 40,149,202, 78,117,234,212,217,252,213, 87, 95, 89, 12, 30, 60,216,117,196,136, 17, 12, 0, 36, 38, 38,242,203,151, 47,143,251, -229,151, 95, 50, 83, 82, 82,134,233,245,250,135,166,116,124, 9, 33, 87,127,253,245,215,228, 75,151, 46, 5, 52,110,220, 88,214, -160, 65, 3,222,198,198, 70, 36,147,201,140, 58,157, 78, 19, 17, 17, 97,124,254,252,185, 75, 70, 70,198, 51, 0,145,149, 25,214, -207,183, 94,205, 99, 89,118, 54,165, 52,240, 93,204,209, 82, 42,149,174, 0,158, 17, 66,106, 84,116,216,240, 79, 13,182, 72,132, -244,244,116,168, 18,194, 32,143,121,138, 58,102, 12,252,109,204, 97,105,105,249, 86,162, 40, 51, 51, 19,200,141,197,229,203,247, - 1,142,131,149,149, 21,172,172,172,254,118,161, 85,154, 22,249, 47,160,248, 74,195,252,114, 91,246, 28,173, 0, 71, 50,198, 70, -138,229,163,130,170, 75,188, 61,221,161,141,185,141,251,175,115, 48,227,131,198,225,172,204, 66, 51,234,211, 30, 13,123,247,173, -130,214, 77, 27, 17,111, 23,171,241, 11,126, 94,251, 69,128, 19,153, 28,150, 72, 87,152, 18,168,176, 36,250,162,150, 35,217,116, -254, 65,204,104,119,165, 26, 60, 79,113,254, 97, 60, 30,190, 74,223,244, 40,137,190,168, 72, 4, 3, 92, 73,123, 17,152,221,148, - 82,185,149,153, 89,118,189,186, 53,237,219,127, 88,151,233,220,170, 33, 36, 44,112,249,230,125, 76,252,249,192,117,158,167, 65, -119, 76, 28, 54,204, 91, 97,248,166,128,202, 91, 97,104,120, 99,133, 33,165,148,230,173, 58, 44,123,218, 23,203,146, 4, 85,212, - 45,103,177,157, 15,212,145,231,241, 42,157, 71, 84, 82, 54,178, 68,206,208,198,198, 2,148,143, 14,161,180,210,165,218,222,222, -222,177,170,191,111,245, 85, 91,246, 65,175,202,196,139,144,205,200, 73,143,199, 15,235,142, 84,119,119,119,111, 21, 19, 19,115, -161, 2, 5,198,247,220,177,157,142,160, 0, 43,150, 33,120,205, 30,164,216, 41, 96,175,148,128, 87, 39, 99,212,132,193, 86, 93, - 58, 12,182, 2,128,168, 39,247,224,165, 84,155,196,171,183, 67,239,254,109,252,172, 97, 80, 99,203,201,123, 26, 6,232,188,245, -116, 88,100,155,154,214,242,254,205,189,108,230,197,101,244, 65, 37,157,138, 22, 88,180, 10, 45,124,149, 88,109,184,151, 82, 99, - 45, 7, 18,185,251,106,146, 89,223, 14, 13,148, 18, 17, 33, 52, 39, 22, 84, 97,143,181, 91,246,230, 72, 13,216, 32, 52,161, 2, - 4,152, 6,149, 74,117,135, 16, 82,251,155,111,190, 25,244,237,183,223,182, 52, 51, 51,171, 10, 0,185,185,185, 47, 12, 6,195, - 69, 0, 59, 43,178, 58, 48, 95, 56, 61, 35,132,188,136,140,140,116,218,190,125,187, 53, 0,121,254,223, 26, 0, 25, 0, 18,223, -102,197, 97,129,168, 34,132,204,126,135,150,142,227,249,156, 53, 42,115, 63,195, 48, 70, 66, 8, 8, 33,144,201,100,184,116,233, - 18,250, 5,117,192,163,224, 12, 4, 90,155,163,241,176, 81,216,125,230, 12, 88,150, 5, 33, 4, 44,203, 86,168, 29, 17,137, 68, -184,124,249, 50, 62, 25,216, 23, 50, 17, 96,101,101,133,111,190,249, 6,135, 15, 31,134, 72, 36,236,210, 87,129,124,222, 80, 32, -184, 76,247,163, 69, 48,239,204,230,159, 36, 48, 26,112,116,243, 18, 28, 11,205,209, 61, 73,198, 12,191,100, 44,223,135,108, 62, -249,231,173,163,207, 92, 14, 93,252,217,128,110,202,182,109, 58,160,109,235, 54,162,128, 70,173,102, 1, 88, 81,164,193,110, 95, -150,175, 13, 35,143,239, 55,156,124, 60,106,119, 72, 4,129, 62, 27, 3, 58, 54,162, 70, 30,223,151, 35, 2,254,196,105,165, 48, -223,125,249,218, 53, 27,232,115,240,234,222, 31,242, 42, 85,171, 3, 70, 61,158, 61,123,138, 95,182, 28,228, 67,110, 62,217,166, -227,240, 85,100, 26,205, 53,149, 51, 79, 89,113,176, 50,147,250,117, 9,180, 58,193,131,194, 90, 41,169, 73,121, 35,172,149,226, -154, 29,107,153,157,160,148, 82, 11,133,184, 38, 53, 26,202,229, 84,235,184,245, 91,126,219,180,116,248,240,225,102, 41, 49, 9, -136,203, 10, 69,142,212, 13, 6,165, 7, 34,239, 93, 84,171,180, 92,185,141,120, 89,233,153,146,146,146,116,231, 70, 26,118,175, -155, 15,131, 78,139,164,152, 60,173, 26,151,146, 5, 75,123,183,107, 21,225,212,115,124,102,239,193, 35, 37, 10, 11, 40, 62,233, -221, 77, 26,153,170, 69,125, 87,139,188,194,148,147,140, 71,103, 47,163,117,110,158,110,123,254,154,129, 87, 93, 87,147,194,105, - 33,151,124,213,165,129, 27, 94, 68,199,227, 82, 88,236,150,231,169, 52,174,154, 29,217, 18, 25,151, 49,186,199, 7,158, 88,118, - 56,252,203,210,196, 81,105,156,254, 78,100, 16,128,230,121,147,225,213,160, 64,115,127, 39, 50,200,148,149,134, 37,113,138, 36, -248,120,233,137,168,153,123,111,165,244,152,242,113, 11,203,166, 77,187, 74,193,233,144,173,214, 26,194,211,105,214,219,228,209, - 91,244,148, 4, 78,129,243, 63,201,153, 47,122,182,229,127,222, 37,103, 28,138,249,117,122,219,184, 23, 29, 38,164,148,138,242, -173, 89,101, 78,134, 47,143,179,232, 48, 33,165,244,120,190, 53,171, 76,171, 86,113, 78,158,231,227, 26, 54,108,104,219,189,123, -119, 24,141, 70, 60,125,250, 20, 81,175, 95,163,253,232, 47, 97,109,109,141,139, 15, 30,224,201,147, 39,152, 61,123, 54, 12, 6, - 3, 14, 29, 58, 20, 83, 30,167, 72, 36,210, 87,175, 94, 93,210,179,103, 79,112, 28,135,231,207,159, 35, 54, 54, 22, 19, 39, 78, -132,149,149, 21,238,220,185, 83,200,153,146,146, 2,145, 72,164,255, 59,202,210,127, 29, 37,137,172,178,133, 22, 96,132,209,128, -204, 51,115,176,226, 18,244,122, 3,106,134, 37,209,151, 69,254, 95, 91,199,142, 28,125, 16,250,248,197,157, 43,109,165, 72,122, -152,119, 79, 5, 16,145, 66,227, 27,121,136,178,161,207,182,196,243, 19,120,153,152,157, 19,145, 66,227, 43, 26, 57,202, 27, 9, -244, 42, 32,254, 54,174, 94,188,128,144,235,247,113,235,225, 99,227,213, 59, 17,187, 25, 30,223,135,167,208,167,149, 80,167, 48, - 15, 90,134,161, 15,159,121, 54,242,117,242,132,145, 3,229, 13,176, 26,176, 19,195,194,155,122, 54,170,102,237,153,103,201, 50, -192,230,243, 63,128,165,242, 50,249,110, 69,235, 55, 52,175, 42,235,147,157,145,250, 65,187, 86, 31,154, 89,213,234,130,148,103, - 17,120,122,255,178,250, 78,104,228,213, 91,209,250,183,178,150,184,185,185,181,108,215,202, 15, 3, 70, 77,135, 94,149,137,231, - 33,191, 33, 39, 45, 1,151,174,153,227,113, 86,214,135, 0, 76,182,104, 93,141, 50, 4, 0, 64,115,111, 73,180, 5,180,206,159, -118,235, 14, 25,209,128,215,102,129,168, 82, 16, 25,171,203,236,179,238,181, 17, 0,148, 50, 34, 50,163,153,150,166,240,250,123, -217,249, 40, 89, 3,182,158, 9, 3,207,231,109,223,196,243, 88,187,245,143,200,209,223,127, 82, 31,254,158, 54,117, 9, 33,164, - 34, 38,127, 66,209,226,214,238,239,106,106,206,205, 2,120, 61, 46,143,183,173,217, 98, 69, 90,139,202, 90,198, 30,198,210, 88, - 0,163,107,185,146,245,227, 87,156,156,213,240, 76,120,243, 73,159,247,176, 4, 21, 54, 96, 23, 32, 64,192,223,143,156,156,156, - 81,195,134, 13, 91, 47, 22,139, 29, 0, 16,158,231,193,243,188,104,241,226,197, 98,163,209,200, 48, 12, 99,100, 89,150, 59,126, -252,184,193,104, 52, 38,107, 52,154, 81,229,113,114, 28, 23, 57,118,236,216,234,229,173, 80,220,181,107, 23, 68, 34,145,158,227, -184, 72, 33, 39,202, 23, 89, 69,191,139, 90,185, 74,111, 60, 40,190,107,246,201,156, 57, 0, 8, 40,230, 22, 19, 89, 0,128, 7, -169, 52, 46,192,145, 76, 12,104,212,106, 78,193, 61, 21, 13,156,198,104,236,219,168,182,239, 46, 0,208, 82,227, 39,149,137, 96, -150, 86,221,191, 94,163, 15,119,243,148,138, 56, 74, 55, 49, 60,246,107, 56, 60, 50,101,165, 93,105,136, 75,202,184, 83,176, 81, - 52, 15,250,191,225,194,124, 55, 14,148, 82, 90, 56, 92,184, 68,142,148, 76,109,185,126,160, 46,191,208,118,104,228, 41, 25,121, -250,202,189, 81, 70, 35,117,102, 89,146,160,214,113,235,223, 86,100, 1, 64, 76, 76,204, 5,127, 71,114,250, 65, 93,167,142,246, -202,124, 43,151, 10, 72, 81,225,116, 76, 82,246,133,202,112,166,231, 26,122,124,187,252,240, 17,169,152, 21,129,210, 60,135,162, -148, 66,163, 55,166, 21,136,177, 58,118,196,245,155, 67,220, 46,150, 37, 81,229,241,221,120, 18,191,108,192,130,179,147,195, 94, -165,111,122,153, 78, 67, 1,224,101, 58, 13,173, 97, 71,102, 69, 38,100, 79, 14,141, 74, 95, 82,209,121, 21,148,224, 82,163, 1, -115,254,116,238,109,211,243, 81, 28,189, 15,160, 87,128, 35,233, 48, 96,210, 47,147, 8,129,176,253,132, 0, 1,255,143, 80, 96, -213, 98, 24,102,222, 59,228, 60, 78, 8,233, 10,224, 89, 5,238,185, 1,160,246, 59,142, 91, 42,128, 84, 33,151,223,105,154, 86, -220, 97,105, 88, 18, 93, 11, 19, 54,141, 54,245,186, 82,239,143,163,103, 1,216,189, 77, 4,243, 57,108,223,101,162, 61, 72,164, -179,254,138,204,200, 23, 85,127,201, 92,159,240, 36,218, 9, 0,124,124,124,232,179,103,207, 64, 41,125,171, 73,133,143,146,233, -125, 20,219,202,161, 36,177, 13,160,133, 41,124, 17, 41,244,123,224,207, 67,195,207, 82,233, 15, 0,126,168, 84,156, 43,233,249, -221,228,178,149, 68,207, 0,229,123,231, 23, 32, 64,192,251, 41,182,254, 2,206,227, 66,202,190,127, 40,203, 97, 41, 35, 36,207, -251,135,167, 79,159,146,183, 21, 89, 2, 4, 8, 16,240, 30,195,248,150,159, 18, 53,212, 91,126, 4,188, 39,130,171,248, 57, 65, -104, 9, 16, 32, 64,128, 0, 1, 2, 4,188, 35,145, 85, 92,108, 17, 0,237, 75,148,230, 21, 88, 77, 64, 8,105, 95,209, 0,149, -199, 47,112, 10,156, 2,167,192, 41,112, 10,156, 2,231,251,199, 89, 30,247,123,183,154,145, 22,153,228,252,174, 63, 0,218, 11, -156, 2,167,192, 41,112, 10,156, 2,167,192, 41,112,190,207, 31, 0, 35, 75, 59, 22,134, 14, 5, 8, 16, 32, 64,128, 0, 1, 2, -254, 34, 8,190,129, 4, 8, 16, 32, 64,128, 0, 1, 2,222, 14,229,110, 42, 45, 64,128, 0, 1, 2, 4, 8, 16, 32,160, 18, 40, -119, 83,105, 1, 2, 4, 8, 16, 32, 64,128, 0, 1,149, 67,165, 54,149, 22, 32, 64,128, 0, 1, 2, 4, 8, 16, 80, 62,202,242, - 12, 79, 42,184,227,137, 0, 1, 2, 4, 8, 16, 32, 64,128,128, 50,240, 39,207,240,193,193,193,180,232,183, 0, 1, 2, 4, 8, - 16, 32, 64,192,223,137,247, 85,139, 8, 67,135, 2, 4, 8, 16, 32, 64,128, 0, 1,111,129,146,230,104, 9, 66, 75,128, 0, 1, - 2, 4, 8, 16, 32,224, 29,160,172, 57, 90, 5, 14, 75, 91,231,155,234, 90, 11,201, 37, 64,128, 0, 1, 2, 4, 8,248, 7,240, - 94,106,145,194,201,240,193,193,193, 52, 40, 40,136, 8,249, 44, 64,128, 0, 1, 2, 4, 8,248, 39,240, 62,106, 17, 97,213,161, - 0, 1, 2, 4, 8, 16, 32, 64,192,219,136,169, 34,171, 12,139, 31, 11,123, 29, 10, 16, 32, 64,128, 0, 1, 2, 4,188, 35,193, - 85,252, 28,243, 23, 63,176,189,192, 41,112, 10,156, 2,167,192, 41,112, 10,156, 2,231,255, 23,145, 85, 92,108, 9,171, 14, 5, - 8, 16, 32, 64,128, 0, 1, 2,222, 2,166,172, 58, 20, 32, 64,128, 0, 1, 2, 4, 8, 16, 80, 9, 16, 66, 70, 18, 66,186,229, -255,238, 86,212,170, 37, 88,180, 4, 8, 16, 32, 64,128, 0, 1, 2,222, 2,148,210, 13,132, 16,151,124,129, 21, 76, 41,141, 23, -132,150, 0, 1, 2, 4, 8, 16, 32, 64,192, 59, 64,177,121, 89, 65,132,144,194,225, 68, 65,104, 9, 16, 32, 64,128, 0, 1, 2, - 4,188, 5,202,154,163, 69, 0,180, 47,229,166,179, 21, 80,114,237, 43, 17,168,179, 2,167,192, 41,112, 10,156, 2,167,192, 41, -112,254,255,226, 44,143,187, 34,250,227,223,130,146,220, 58, 20,138, 47, 74,233, 95,246, 1,208, 94,224, 20, 56, 5, 78,129, 83, -224, 20, 56, 5, 78,129,243,255,235,231,157,175, 58,108, 64,136, 66, 48, 34,190,127, 32,132, 56, 17, 66,156,132,148, 16, 32, 64, -128, 0, 1, 2, 76,183,112,189,211, 57, 90,254,132,124,254,121,160,195,186,218,132, 88, 62,164, 84, 85,214,181,142,142,142,235, -149, 74,229, 96,149, 74,149, 75, 8,225,139,152,218, 0,160,232,190, 64,207,147,146,146, 90,148,247,108,153, 76,182,220,201,201, -233,243,156,156, 28, 21, 33,132, 18, 66, 64, 8, 41,136,240, 27,223, 70,163, 49, 38, 37, 37,165,225,127, 58, 19, 1,214,222,201, -233,166,152,101,221, 42,122,175,145,231, 95, 38, 38, 36,124, 88,129, 2, 51,159, 16, 76,201,255,189,136, 82, 58,253, 61,124, 43, - 88, 83, 46, 11, 4, 44, 34,128, 1, 70,134,249, 82, 12,172,214,242,252,186,252,130,107,172,236,163,117, 55, 73,117, 66, 81,151, - 16, 88, 81,138, 76, 74,112, 95,218,152, 70,254, 67,149, 67,111,177, 88,220,195,210,210,210, 60, 53, 53,245, 2,128, 93, 0, 6, -218,217,217,181,202,202,202,202, 49, 24, 12,135, 41,165, 7, 42,195,221,178, 30,153, 42,149,136, 63,211,232, 13, 11, 47,223,163, -191,181,110, 64,236, 56, 30, 11,228, 18, 81, 11,173,142, 91,116,233, 62,221, 84,193,176,146,188, 87,161,160,234,168,248,126, 98, -251, 76,204,119, 0, 56,100, 99,227, 43,115,176, 60, 39,150,178, 47, 51, 18,115, 6,247, 77, 74,122,221,247, 45,242,253,223, 8, - 7, 7,135,161, 12,195,252, 72, 41,133,209,104,156,145,154,154,186,249, 29,149,171, 25, 0,172,243, 15, 51, 40,165, 63,190, 37, - 95, 20, 0,207,252,195,104, 74,169,151,208,180, 87, 58, 45,215, 30, 60,120,112,116,155, 54,109,176,108,217, 50,172, 93,187,246, - 85,114,114,242, 2, 0, 91, 40,165,186,191,155,231,125,196, 59, 19, 90, 1,132,116, 29,218,169,201,250,113,253,187,146, 9, 67, -103,170,202,121,153,127,237,220,185,243, 39, 91,182,108, 17, 71, 68, 68, 40,188,189,189,193, 48, 76,161, 16, 42, 90, 95, 86,169, - 82,133, 47,239,217, 44,203,174,232,213,171,215,176,125,251,246, 41,239,220,185,163,172, 85,171, 86, 33, 31,207,243, 40, 94,255, -122,123,123,151,201,103,101,101,117,155,101, 89,247,146, 68, 90,105,191,141, 70, 99, 76,106,106,106, 67, 19, 10, 99, 39, 0,211, - 76, 72,210, 5,148,210, 83,101, 93, 32,102, 89,183,184,184, 56,199,138,230,149,135,135,135,190, 2, 47,143, 19, 33,152,194,243, -148, 1, 0,134, 33, 83,229,114,249, 58,141, 70, 19, 93,240,127,126,158, 37, 86, 36, 12,110,110,110,125, 40,165,163, 0, 80, 66, -200,134,216,216,216,253, 21,185,223,210,210,242,182, 84, 42,117, 23,137, 68,164,164,124, 41,126,108, 52, 26,169, 94,175,143, 73, - 75, 75,171,176,192,190, 0,144,206, 64, 75,142,101, 39,216,217,219,183,184,115,250,180, 89, 96, 96, 32,195,178,236,116, 0,235, -222,230,189,209,221, 36,213,141, 6,244, 83, 27,100,221,100, 94,115,125,181, 81,115, 35, 20, 98,237, 49,221, 77,178,247,239, 22, - 91,132,144, 33, 67,134, 12,153,176,112,225, 66,123,169, 84,202,236,217,179,199,119,226,196,137,189,151, 45, 91,102,223,191,127, -127, 11,157, 78,199, 79,157, 58,213,159, 16,226, 72, 41, 93, 83, 17,238,166,245,200, 7,126,222, 46,179,199, 13,110,139,201,243, -119,141,107, 94,155,164, 40,204, 36,107,251,180,168,110, 29, 80,213, 6,223,173,191,250, 21,128, 77, 21, 8, 43, 17,137, 68, 31, -186,186,186,250,104, 52, 26, 46,191,243, 70,139,212, 9,121,233,171,211,233,210,210,210,246,190,109,218, 76,150,203,155, 52,177, - 54, 63, 51,103,208, 16, 69, 86,122,154,211,138,224, 35, 15,246,193,177, 78, 95,224,213,251,212, 32, 48, 12,243, 99,108,108,172, - 11,165, 20, 46, 46, 46, 63, 2,216,252,142,168,173, 11,234, 97, 66,136,245, 59,224,243, 44,194,231,249, 14,202,190, 92,196, 48, - 99,165, 98,113, 71,163,209, 88, 59,191, 12, 61,212, 25, 12,103, 56,158, 95, 77, 41,213,188,199, 58, 96,202,232,209,163, 59,124, -251,237,183,222, 83,166, 76,193,148, 41, 83,170,108,220,184,113,253, 79, 63,253, 52,149, 16, 82,135, 82,154,243, 55,243,252,231, - 45, 88,127,137,208,242, 39,164, 97,187,186, 53,246,143, 31, 58, 0,252,190,229, 4, 67,103,150, 41,178, 62,108,216,240,179, 45, - 91,182, 0, 0, 6,247,232,129,142,141, 27,195,194,220, 12, 82,105, 94,112, 8, 37,144,136, 37,232, 57,241,107, 83, 34,183,168, -119,239,222, 31,239,219,183,207, 28, 0,214,174, 93,139,222,189,123,195,214,214, 22, 74,165, 18, 18,137, 4, 98,177,248,141,111, - 19,132,155,123,108,108,172,163, 92, 46, 47, 20,126, 60,207,191,241, 41, 50, 78, 13,142,227,224,227,227, 99,106,114, 77,203,204, -204,108,153,155,155, 91,230,152,110,213,170, 85, 1,224,148, 41,132, 63,254,240, 61,120, 46, 23, 34, 17,192,113,128, 86,207,128, - 47,161,111,239,234,234,138,177, 99,199,226,109, 54, 18, 15, 10,234, 70, 8, 33,251, 92, 93, 93,247, 39, 37, 37,121, 19,130, 17, -149,180,116,125,241,244,233, 83,115, 0,240,245,245, 29, 11,160, 66, 66, 75, 36, 18,185, 63,120,240,192, 81, 38,147,149,106,185, - 44, 34,130,161,215,235, 81,191,126,125,174, 34,207,112, 2, 60,211, 24,102, 68,189, 6, 13, 70,206,233,217, 83,126,243,230, 77, - 57,195, 48,224, 56, 14,139, 23, 47,230, 40,165,214,254,128,101, 56,144, 85, 70,249,252, 22,192,208,124, 43,237, 38, 74,233,226, - 55,254,167,168,171, 54,200,186, 61,207,233,217,184, 73,149,169, 8, 15,123,216,184,154,249, 33, 88,136,180,145, 0,254, 86,161, -101,105,105,217, 99,217,178,101, 14,155, 54,109,202,122,242,228,137,126,221,186,117, 14,163, 70,141,178,208,235,245, 24, 61,122, -116,178,159,159,159,100,217,178,101, 14, 7, 14, 28,104, 11,160, 66, 66, 75, 68,240,253,192, 30, 29,161, 49, 48, 48, 24, 56, 7, - 23, 7,139,109,227,135,180, 22, 83,170,195,214,195,119, 96,224,248,223, 42,104,201,250,176,111,223,190,213,118,238,220, 41,122, -252,248,177,168,102,205,154,224,121, 30, 70,163, 17, 6,131, 1, 0,192,243, 60,106,212,168,241,214,233,242, 25,224,107,239,100, -123,230,195,174, 93, 20, 46,114, 25,108,211,147, 49, 92, 34,178,216,172,212,110, 7,208,244,125,106, 44, 40,165, 16,137, 68,120, -253,250, 53, 28, 29, 29, 21,182,182,182,241, 0,230,166,165,165,109,120,143, 27,200,198, 82,145,104,255,214,223, 86, 56, 55,105, -218,148,117,114,113, 68,196,211,104,136,136,177,253,131, 91,119, 90,127, 54,102,210,120, 66, 72, 31, 74,233,205,247, 45,238, 46, -205,190,232,229,210,252,203,181,132,242,248,110,213,145,236,249,139,150, 43, 71,143, 24,194, 78,156, 56, 17, 30, 30, 30,222,189, -122,245, 90, 4, 96, 76,185, 60, 31,124,209,203,185,233,184,181,160, 20,115,126, 57,146,253,211,162,229,202, 49,149,224,249,143, -191, 59, 27,254, 50,161,229, 79, 72,181, 0, 15,199,211,243,167,140, 17,211, 19,191, 51,170,212, 36,148, 38,101, 28, 29, 29,215, -119,233,210,101,240,230,205,255,235, 36,125, 24, 24,136, 94,109,155,195,209,206, 10, 74, 51,105, 94,115,196, 19,220,127,242,210, - 36, 65,224,225,225, 49,122,255,254,253,230, 69,197,132, 68, 34, 41,252, 20, 21, 89, 5,159,226,150,143,146, 32,151,203,113,246, -236, 89,136, 68, 34,176, 44, 11,145, 72, 84,248, 41,122,204,178, 44,156,156, 42, 52,117,105,129,149,149, 85,157,236,236,108,203, -140,140, 12,120,122,122,102, 1,120, 80,228,255, 58,201,201,201,150, 21, 33,228,185, 92, 76, 28, 94, 11, 98,221,117,232,196,141, -161, 22, 53,195,213, 91,143,112,236,212, 5,196,198, 37,160,249, 7,245,240,233,160,190, 56,115,230, 12,140, 70, 99, 69, 11, 79, - 34, 33,100, 81,247,238,221,166, 2,132,180,111,223, 62, 99,220,184,113,204,227,199,143, 63,238,213,171,103,224,211,167,207,242, -123,194,100, 10, 33,100, 69, 5, 44, 91, 82, 0,184,120,241, 34, 0,200, 42, 83,246,100, 50, 25,174, 93,187,134,130, 97, 98,134, - 97,192, 48, 12, 88,150,197,209,103,246,200,213, 49, 80, 37,134,226,203,110,158,168, 90,181, 42, 24,166,252, 41,137,173, 1,249, - 85,160, 23, 17,139, 39,186,184,186,122,183,170, 86, 77,121,246,236, 89, 22, 0,188,188,188,104,124,124,124,198,225,195,135,179, - 69,192, 90, 47, 74,183,148, 37,178, 60, 61, 61,155, 49, 12,243, 99, 65,154, 19, 66, 22,121,123,123,207, 46,204, 55,158,199,160, - 14,182,226,241,227, 39, 72,154,180,206,235,156, 52,233,190, 19, 89,207,231,215, 34,105,223, 90,253,221, 21, 69, 86, 86,214,238, - 26, 53,106,176,169,169,169, 87, 1, 68, 25, 12,134,105,219,182,109,115, 28, 62,124,120,210,246,237,219, 23, 0,112, 93,184,112, - 97,235,220,220,220, 61, 21,225,109, 81,151,116,109, 88, 47,240, 3, 79, 15, 15, 92,184,122, 19, 18,169,216,122,236,208,110, 48, - 55, 23, 97,201,166, 96, 62, 42, 38,109,220,165,251,116, 75, 5, 68, 86,227,190,125,251,122,239,220,185, 83, 10, 0, 15, 30, 60, - 64, 66, 66, 2, 28, 28, 28,160, 80, 40, 32, 22,139,193,178, 44,196, 98,241, 59, 17, 89, 86, 30,118, 55, 14, 29, 58,172,176,181, -181,198,170,175,199,227,211,164, 68, 88, 91,152,195,144,147,235,253,158, 9, 14,223, 62,125,250,200,141, 70, 35,114,115,115, 17, - 18, 18, 98,165, 80, 40,172,220,221,221,231, 0, 48, 89,104, 41, 20,138, 68,141, 70,227,152, 95,143, 38,169,213,106, 39, 0, 89, - 50,153,172,160,158,206,201,127,158, 73,195,137,165, 12, 19, 70, 23,177,100, 69,191, 69,156, 27, 53,110, 84,231,236,129,125, 59, -204, 51,179, 19, 96,109,147, 4, 6,153,216,176, 97, 53, 20, 10, 75,204,153,243,173,232,101,251,182,110,157,186,246, 57, 75, 8, -105,255,222,137, 45, 74, 54,180,239, 62,216, 86,161,180,200,111, 75, 12,216,188,113, 60, 24,134,193,236,217,179, 17, 16, 16, 48, -146, 16, 50,147, 82,154, 86, 54, 13, 54,212,110,217,223, 86, 42,207,203, 98,222,104,192,186, 93,147,243,120,166,143,194,192,238, - 85, 71,222,223, 78, 78, 6, 84, 67,118, 94,187, 2,181,152, 65, 52, 26,211,164, 2,142,224,224,224, 86, 65, 65, 65, 23, 74, 59, -254, 15,188, 63, 46, 0,130, 74, 18, 95,162,224,224, 96, 26, 20, 20, 68,138, 68,238,141,227,178, 80,143, 16,123, 39, 43,229,217, -181,115,199,155,139,174, 7,179,234,232,103,136,211, 24, 11,223,156,226, 75, 52,149, 74,229,224,205,155, 55,191,161,195, 60,157, - 28, 33,145,136, 33,150, 16, 88,183,232,150,247,198, 93, 58, 6, 66,104,105, 13,255, 27,156,185,185,185,154,123,247,238,153,111, -218,180, 9,142,142,142,240,246,246,134, 82,169,132, 92, 46,127, 67, 92, 21, 21, 92,197,133, 86,113,206,130,255, 69, 34, 17, 24, -134,193,153, 51,103,192,113, 28,250,246,237,251, 39,145, 37, 18,137, 74, 20,110,165, 45, 79,165,148,158, 34,132, 60,160,148,182, -204,111,128, 31, 80, 74, 91, 21,121,118, 39, 7, 7,135,105, 0, 22,152,202,201,178, 20,172,230, 42,120,247,229, 16,189, 30, 15, -157,184, 46,206, 95,190,131,205,235,151, 1, 0,188,107, 54, 66,191, 94,221, 10,173,113,166,112, 22,133,155,155,219,174,228,228, -148, 46,109,219,182, 69,122,122,186, 97,238,220,185,168, 83,167, 14,124,125,125, 77,202,163,210, 4,220,131, 7, 15, 60,212,106, -181, 73,195,142, 37,113, 18, 66,176,109,219, 54,104, 52,127,182,234,219,180,250, 9,147,123,123, 97,216,151, 91,176,232,201, 30, -172, 89,179,166,204,184, 43,129, 58, 26,171, 26, 43,164, 44, 87,103,193,183, 95,200, 62,253,244, 83,118,216,176, 97,136,142,142, -198,240,225,195, 53,103,206,156,209, 37,196,199, 31,150,242,252, 42,253,155,194,184, 84, 78,153, 76,182,245,212,169, 83,216,179, - 39, 79,151, 68, 68, 68,192,199,199,199,236, 13,145,156,182, 23,217, 81,171,112,227,232, 99, 52,233,190, 19, 55,142, 14,130, 49, - 35, 88,220,208, 7,153, 21, 73,207, 74,244,190,206,150,112,110, 15,128, 61, 69,210, 87,177,125,251,246,158, 0,142,228,255, 7, - 0, 63, 87,132, 51,143, 8,195,250,247,238, 9,145,196, 2,143,159,197,160,213,135,245,225,228,232,136, 7,143, 34, 17, 21,155, -150, 72, 8,134,118,110, 38, 91,160, 86,235,102, 94,188, 71,127, 45,135,147,184,187,187,251,238,221,187, 87, 82,196, 2, 93,248, -142,179, 44, 91,120, 92, 32,188, 43, 83, 62, 11, 68,150,133,187,249,141,239, 87, 55, 51,187,241,112, 59,124,188,186,194,166,107, - 55,252,122,250, 52,158,134,133,107,116, 42,174,221,223,157, 71,127, 21, 39, 33,196,183,119,239,222, 87,119,236,216, 97,253,250, -245,107, 92,188,120, 17,222,222,222, 80,169, 84,229,118,120,139,115,106, 52, 26,199, 34,195,122, 5, 83, 27,126,212,233,116, 5, -153, 81,240, 34,150, 58,156, 88,140,243, 79,195,132,149,153,147, 85, 66, 61, 47,149, 75, 36,123, 15, 29,216,101, 30,254,248, 34, -234,213,253, 0,230, 86,254,224,141, 9, 72, 77,203, 65,250,179, 56,252,240,195, 34,204,153, 59, 3, 71, 14,238, 51,247,171, 85, -119, 63, 33,164, 70,209, 97,196,255,122,190,131,208,145,103,143,110, 95, 75, 40, 15,117,226, 99,153, 56,247,133,114,240,160, 62, -236,128, 1, 3,112,228,200, 17,132,133,133,173, 45, 77,100, 21,229, 36, 20, 35, 67, 47,238, 89, 11, 74,161, 78,122, 44,147,168, - 95, 40,135,124,220,143,253,116, 96, 71, 92,255, 99, 5, 58,214,123, 17,234,234,136, 94,233,249,131,135, 34, 22,169, 50, 57,174, - 40,110,146,235, 69,196, 86, 8, 0, 82, 68, 96,133,224,127,115, 48,255, 11, 8,202,247, 14, 63,178,184,117, 75, 84, 25,129, 5, - 0,190,132,152, 43,165,146, 27,155,231,124,225,170,140, 14, 19,105, 67,175, 33, 78,203,211,117,175, 56,254, 6, 33,138, 59,148, -170,139,223,163, 82,169,114, 35, 35, 35, 21, 67,123,245, 66,211,192, 64,184,216,217,161,134,187, 59, 20, 50, 41,164, 18,113,145, -122,185, 66, 42,146,250,249,249,161,123,247,238, 16,139,197, 80, 42,149, 48, 55, 55,135, 84, 42, 45,209,154,101,106, 47,151, 82, - 10,150,101, 17, 26, 26,138,168,168, 40, 88, 91, 91,227,202,149, 43,104,215,174,221,159,172, 90, 69,197, 89, 69, 76,244,197, 27, -254, 2, 33, 6, 19,135, 12, 11, 96, 52, 18,228,208,186,144,191, 26, 7, 21,169, 15,173,150,131, 86,171,197,175,151,245,184, 25, -153, 11,189, 94, 7,173, 86, 91,234, 51,203, 72, 91,198,213,213,117,176,143,143,207,216, 65,131, 6, 25,164, 82, 41,114,115,115, -161, 82,169, 16, 22, 22,102,232,210,165,107, 70,247,238,221,172,130,131,131, 41,165, 88, 84,193,121, 90,169,110,110,110, 30,249, -195,179,169,149,236, 65, 20,138,152,226, 24,250,115, 56, 68,108, 94,158,172, 93,187, 22, 70,163, 17,148,210, 82, 51, 73, 67,200, -185,185, 63, 45,181, 90,184,252, 55, 88,217, 58,225,194,133, 11,198,147, 39, 79,102, 19, 32,226,105, 88,216,207, 31, 1,199,247, - 2,250,138,132, 47, 61, 61, 93,225,237,237, 13,119,119,119,240, 60, 15,131,193, 80,104,125, 73, 77, 77,133, 90,173,134,173, 89, - 6,170,219,185,131,203, 14, 65,124,232,119,112, 49,127,140, 45,167,116,134, 6,190,184,255, 47, 48,133,255, 14,224,247,183, 39, -130,155,163,179, 7, 24,106, 64, 92, 82, 42,122, 6,117, 4, 43, 49,199,203,215, 41,168,235, 95,205,229,227,143,154,185,176,132, -195,148, 5, 59,199, 2,248,181, 60,186,156,156, 28,227,227,199,143,241,224, 65,158,222,181,180,180,132,153,153,217, 27,239, 56, -195, 48,111,101,209, 42, 16, 89, 63,173,109,103,198,136,115,145,101, 60,139, 77,219,238,160,174, 95, 55,172,187,113, 75, 99, 76, - 76,107,191, 68,163,137,248, 79, 15, 27,185,184,140,226,121,126, 14,165, 52,163,119,239,222, 78, 59,119,238,180,137,141,141,197, -157, 59,119, 48,123,246,236,100,163,209,200, 81, 74, 9,165,244,187,119, 80,150,248, 34, 2,235, 93, 90, 17,196, 74, 57,190,180, -183, 36, 61, 68,140,165, 55,151,149,243, 50, 69, 71, 15,171, 56,254, 23, 74,169,161,172,123, 25,134,249,124,223,238,181,174,246, - 14, 60, 90, 59,180, 69,124,162, 30, 63,125, 61, 4,169,169,217,248,117,227,124, 0, 82,232, 57, 22, 45, 91,247,129,163,163, 27, - 70,142, 24,233,188,118,253,186, 47, 0, 44,121, 95, 12, 90,241, 87, 86, 31, 36,132,156,117,112,112, 8,251, 98,228, 72, 7,111, -239, 79, 32,151,203,177,107,215, 46,236, 92,181,202,184, 28,232,183,158,144,243,163, 40, 61, 88, 38,207,245,255,241,140, 31, 61, -218,161, 86,173,209,144,201,100,248,227,228,239,208, 36,108,203, 14,106, 10,189, 74,131,160, 42,221,169,237,171,163, 36, 77, 44, -198, 51, 0, 16,203, 17, 47, 6,146,138,209,253,215, 4, 86,161,140, 42,152,167, 85,240,253,214,158,225,169, 88,250,112,227,132, -129, 94, 78,208, 18,221,229,163,136,213,242,198,133, 79,245,236,221, 76, 58, 57,188, 4,145,149, 95,176,121, 79, 79, 79,180,109, -216, 16,189, 90,180,128, 72, 36,130, 92, 42,129,133, 92, 1,106,204,179,100, 21, 12, 29,150,209, 38,162, 36,235,147,157,157, 29, - 36, 18, 73,161,192, 50,213,154, 85, 26, 39,207,243, 16,137, 68,120,240,224, 1,154, 55,111, 14, 15, 15, 15,236,217,179, 7,157, - 58,117,250,211, 80, 98, 69, 69, 86,129,208, 42, 58,140, 87,100,146,124,185,147,224,255, 36, 18,116, 4, 41,186,186, 32, 36, 16, - 28, 7, 24, 41,160,213,104, 64, 41, 64, 41, 96,208,235,160,209,104, 10,159,105,202,144,172,139,139,139,103,213,170, 85,231, 77, -157, 58,165, 86,221,186,245,144,156,156, 12,158,231, 97,102,102, 6,149, 74, 5, 75, 75, 75, 52,109,218,244,229,188,121,243,226, - 41,197,200,138, 78,134,127, 7, 21, 44, 0,224,244,233,211,111, 12, 27, 22,124,114,227, 99, 48,236,171,237,144,138,242,134,150, - 10,230,240,148, 85,239,182,105,217, 12, 87,239, 70,112,159, 79, 89,161, 21,167,222, 89,224,204,243,155, 99,128,196,183,104, 92, -144,146,146,130,196,196, 68,244,232,217, 19, 59,119,236,192,171, 87,175,224,239,239,143, 54,109,218,192,209,209, 17,175, 94,189, -194,205, 75, 90,104,211,211,144,166,187, 3,165, 69, 19, 28,186, 16,169,157,181, 70, 23,249, 79,213, 22,132,144, 30, 0,134, 88, - 90, 90, 86, 85,169, 84,241, 28,199,237, 5,176, 23, 64, 63,145, 72,212, 79,169, 84,186,100,101,101,189, 64,222,106,162,195,229, - 14, 37,201,229,118, 50,185, 37,120, 78, 11,145, 72, 4, 15, 15,111, 80,163, 14,233, 89,106, 12, 29,208, 29,119, 31, 60,194,201, -243,215, 57,131,129, 95,105, 74,178,178, 44, 75,125,125,125,145,148,148, 4,177, 88, 12,133, 66, 1,115,115,115, 76,159, 62, 29, -171, 86,173, 42, 20, 89,149, 21, 90,159, 1,190,150,158,230,215,127, 92,157, 39,178, 18,226,226,145, 24, 35,134,131,157, 19, 86, -174, 90,158,155,254, 42,161,201,111,192,127, 90,100, 1, 0,207,243,223,197,198,198, 58,138, 68, 34,103,142,227,240,250,245,107, -220,190,125, 27,227,198,141, 75, 76, 77, 77,109, 77, 41,173, 84, 28,229,114,121, 82,129, 37, 75, 46,151, 39, 1,165, 14, 39,102, - 20,177,100,101,148, 65, 89,226, 48, 33, 33,164,154,183,187,197,153,141,203, 38,122, 54,106,210,148, 81,138, 44,211,115,158, 37, - 52,191,124,241, 66,211,113,203,126,253,130, 16,210,145, 82,250,188, 52, 82,153, 88,220,229,131,102,205, 68,160,137, 16, 73,155, - 99,209,194, 1, 72, 78,201, 66,122, 90, 54, 36, 18, 51,232, 12, 44,140, 60, 65,211,230, 45,240,251,150,221, 8, 24, 49,156,149, -138,197, 29,222, 39,161,149,143,249,191,252,242,139,167,159,159, 31, 54,111,222,140,243, 91,183,226,211,204, 76, 92, 96, 24,214, - 32, 22,219, 31, 55, 24, 54, 0, 56,104, 42, 79, 64, 64, 0,126,251,237, 55,108,219,182, 45,122,112,187,164,253, 19, 7,195, 81, -175, 71,231, 59, 79, 96, 91,165, 59,112,231, 9,108, 27,248,161, 6, 39,194, 51, 66,240,134, 59,168,224,224,224, 86, 69,191,255, - 75,200,223,219,176,196, 33,118, 17,128,214,193,193,193,180,232,119,121,132, 74, 71,223,209,219, 6,180,245, 10,172,238, 73, 12, -123, 86,224,117, 46,167,155,249, 68, 47,125,154, 67, 39,134, 83,186,188,140, 30, 4,101, 89, 22, 22, 10, 5, 28,172,173,243,204, -252, 12, 3,240, 0,111, 0,136, 49, 79, 0, 80,158,160, 34,139,166,121,158,135, 84, 42, 45,113,226,123, 69,231,102, 21,229,204, -206,206,198,203,151, 47, 49,114,228, 72, 40,149, 74, 0, 64, 66, 66, 2,188,188,188, 32, 18,137, 16, 27, 27,139, 63,254,248, 3, - 85,171, 86,133, 76, 38, 35, 21,204,148,130,134,191, 14, 33,228, 2,128, 58,241,241,241,150, 46, 46, 46,168,176, 69,139,167, 80, -105, 9,116, 58, 35,158, 62,125,138,184,184, 56,188,124,241, 12,141,114,179, 64,193,130, 82, 90, 33,139,150,187,187,123,160,143, -143,207,186, 5, 11, 22, 72,220,221,221, 65, 41,133,141,141, 53, 84, 42, 21, 82, 82, 82,225,239,239, 15, 15, 15, 15, 44, 90,180, - 8, 0,118,254,221, 34,171, 88,153, 42, 20, 90, 69, 5,215, 87, 31,121, 34, 45,205, 28, 44,251,191,213,167,229,204,209,146, 0, - 64,235,142,189, 69,103, 78, 30, 55,227,128,121, 9, 44, 59, 79, 84,126, 62, 26,140, 60,175, 44,237,255,215,175, 95, 67, 44, 22, - 99,223,222,189, 72, 75, 76, 68,221,186,117,209,184,113, 99, 60,123,246, 12,119,239,222,133,157,157, 29, 28,220, 63,196,133, 23, -122,132,199,169, 97,101,101,133,200, 24,230, 31,115, 25, 64, 8, 25,209,190,125,251,217, 63,255,252,179,163,179,179,179, 56, 57, - 57,217,111,245,234,213,117, 87,175, 94, 61,254,139, 47,190,112,250,226,139, 47,108, 28, 28, 28, 68, 9, 9, 9,190, 95,127,253, -117, 3, 66, 72, 85, 74,233,210,178, 56,205,204, 44,108, 89,137, 25, 8, 17,193,218,202, 6, 34,169, 25,120, 78, 4, 35, 15, 88, - 90, 57,224,234,221,125,184,242, 48,123, 84, 82, 42,246,154,240,222, 80, 59, 59, 59, 48, 12, 3, 59, 59,187, 63, 89,170,199,141, - 27,135,141, 27, 55, 22, 14, 35, 86, 86,100,253,180,186,157, 57,201, 23, 89, 9,175, 69, 32,218,170, 56,122,240, 90, 70,250,171, -132,230,239,131,200, 42,168,227, 40,165,120,241,226, 5, 84, 42, 21, 46, 93,186,132,239,190,251, 46,185,184,200,114,114,114, 26, - 97,105,105, 57, 55, 39, 39,103, 81,124,124,252,138,242,120,243, 69,212,155,157,193, 18,134, 19, 77,117,241, 80,210, 48, 33, 33, - 68,236,225, 34, 63,117,247,210,118, 47, 43,122,159, 32,106, 36,240, 52, 43,204,226,134, 99,203,174,141,130,152,250,107,190,175, -210,120,212,244, 83,132, 16,191,210, 44, 91,188,209, 88,223,204,220, 2, 64, 18,238,220, 14, 41, 20, 89,169,105,153,208,234, 89, -104,117, 4, 26, 61,131,182,237, 59, 99,213,186,109,136, 77, 74, 67,193,138,196,247, 5,132, 16,219,192,192,192,209,253,250,245, -195,188,121,243,112,246,231,159,117, 99, 8,201, 18, 1, 52,216,104, 4, 79, 41, 97, 76,152,196, 94,156,103,201,146, 37, 7, 1, - 12, 92, 48, 14, 31,166,231, 96,168,107,119,106, 91,165,123,222,181,125,167, 82, 0,176, 77, 62,251,102,147, 25, 20, 20, 68, 10, - 70,214, 42, 58,194,246,111,135, 40, 40, 40,232, 66,112,112, 48,138,126,151,117,131,165,115,205,174,211,191, 25,183,176, 81,167, - 22, 36,126, 82, 7,164,101,105,184,111,195,245,210, 24,117,217, 34,171, 40,190, 89,189, 26,119, 35,242,222, 99,119, 71, 71, 76, -249,248, 99, 80, 14,184, 18, 22,142,221,103,207, 98, 64,251,246, 48,203, 95,241,103,170,245,169, 36, 43, 86, 81,107, 86, 69,173, - 78, 25, 25, 25,216,187,119, 47, 26, 55,110, 12,165, 82, 9,145, 72,132, 58,117,234,224,209,163, 71,168, 86,173, 26, 8, 33, 56, -116,232, 16,122,245,234,133,231,207,159,227,195, 15, 63, 52,175,140,208, 10, 15, 15,183,164,148,182, 44,176,126, 84, 22, 90,173, - 22,143, 31, 63, 70,247,238,221, 97, 99, 99, 3, 55,183,157, 56,123,106, 59,148,129,159,130, 16, 84, 72,104, 25,141,198,207,130, -130,130, 36,132, 16,168,213, 42,200,229, 10,152,153,153,195,194,194, 18,190,190,126,136,139,139, 67,167, 78,157,116,145,145,145, -107,226,227,227,247, 84, 52,172,254,254,254,102,153,153,153,159, 86,169, 82, 69,154,223,219,245,175, 94,189,250,228,200,200,200, -236,138, 90,181, 10, 4, 22, 33, 4, 44,203, 22, 10, 45, 17,195,192,197,217,177,240, 56,127,126, 26, 41,131, 43, 43, 54, 85, 43, - 3, 0, 79, 79, 79,172, 90,127,132, 9, 10, 10,194,248,241,227, 97, 48, 24,176,102, 77,222, 34,187, 65,131, 6, 65,175,215, 99, -255,254,188, 69,146, 34,145,168, 76,179,201,237,219,183,113,231,206, 29, 24, 12, 6,100,102,102,226,196,137, 19,184,112,241, 34, -118, 29, 58,135, 87, 47,158,161,142,159, 23,134, 15,255, 12, 98,177, 24, 91,182,108, 65,243,230,205,255,209, 10, 65, 44, 22, 15, -222,184,113,163,203,230,205,155, 51, 14, 29, 58,148,251,193, 7, 31,200,150, 47, 95,238,184,106,213, 42, 7,157, 78,135, 9, 19, - 38, 36, 93,191,126, 93,219,179,103, 79,179, 13, 27, 54,184, 84,175, 94,189, 3,128,165, 37,164,167, 25,128, 1, 0, 62,105,221, -216, 74,148,145,173, 6,207,233,240,226,213, 75,100,230,232,192, 27,245,136,142,137, 67,142,198,136,212,180,108,212,169,223,241, -151,144,144,144, 25,132,144,111, 41,165,199,202, 11,103, 88, 88, 24,174, 95,191,142, 87,175, 94,225,197,139, 23,111,252, 55, 98, -196, 8,108,219,182,173,194, 22,173,146, 69, 22, 11,162,173,134, 99,135,110,100, 36, 61,139,127,111, 68, 86,126, 29, 52,199,197, -197,101,142,139,139,139,252,244,233,211, 86, 85,170, 84, 1,199,113,186,226,150,172,214,173, 91,207,220,184,113,163, 75,181,106, -213,198, 1, 88,241,111, 8, 59,195, 96,196,162,181,163,237, 45,164,209,113,120,186, 52,223,151, 32, 11,168,178,128,144, 29, 16, - 53,155,245,114, 92,207,169, 54,211, 54,207, 27,129, 50, 86,200, 70, 62,127,141,181,107, 87, 97,226,132,161,248,253,215, 69,224, -121, 17,180, 6, 22,158,222, 31, 64,171,231, 65, 24, 17,234,214,111,136,243, 33,151, 32,102,128,189,155,215,190, 87,166, 44, 74, -105, 26, 33,100,205,161, 67,135,190, 28, 63,126, 60,120,158,151,206, 93,187, 86,157,156,156, 60, 31, 21,240,127, 85, 2, 79,175, -181,107,215, 70, 76, 91,149,124,112,226, 96,176,175,142,146,180, 59, 79, 96,219,119, 42,197,190,133, 4, 13,252,144,166, 44,185, -137,191, 88,236,251,253, 16, 90, 5, 74,178,232,119, 73,104,224, 91,237,123, 43, 91,155,207, 26,215,241,181,159, 50,126,140,232, -121,130, 6,251,171,124,156,243,199,214,149,102, 9,156,236,151,103, 84,189,188, 34, 15,222,253,199, 31,133,191, 23,239,220, 89, -226,127,241,125,251,154,220, 51, 43,205,138, 85, 81, 75, 22, 0, 40,149, 74,235, 14, 29, 58,160, 93,187,118,232,211,167, 79,225, -156,172,122,245,234, 97,215,174, 93,232,221,187, 55,238,221,187, 7, 23, 23, 23,212,172, 89, 19, 53,107,214,196,241,227,199, 43, - 90,192, 97, 52, 26, 17, 24, 24, 88,176,234,176, 78, 76, 76,140,101,101, 51, 82,171,213, 34, 53, 53, 21,182,182,182,144, 74,165, -104,210,164, 49,190,252,170, 9,236, 93,126, 67, 96, 45, 63,228,230,230, 22, 46,127, 55,161,177, 13,172, 81,163, 6,146,147,147, -145,156,156, 12, 7, 7, 7,184,186,186,194,217,217, 25, 75,151, 46,165, 43, 86,172, 56,169,215,235,215, 36, 39, 39, 87,216,146, -229,226,226,210,194,214,214,118,166, 90,173,150, 22,233,225, 74, 29, 28, 28, 14,187,186,186,206,143,139,139,171,200, 30,155,208, -235,245, 32,132, 32,248,133, 43,114,117, 4, 89, 49,119, 48,254, 35,175, 55,132,151, 88, 44, 54,101, 66,111,238,192,129, 3, 29, - 61, 60,220,241, 58, 50, 12,251,246, 81,252,252,243,207, 5,171, 34, 17,145,223, 49, 40, 56,110,211,166, 13,188,189,189, 81, 17, - 39,153, 60,207,227,193,131, 7,216,121,248, 2, 92,188,106, 33,250,233, 99,220, 61,126, 20, 85, 28,108, 17, 80,191, 33, 12, 6, -195, 91,185,222,120, 23, 48, 24, 12,155,124,124,124,168, 78,167,187, 0, 96,213,195,135, 15,135,198,199,199, 79, 56,114,228,136, -107,191,126,253,226,142, 30, 61,186, 28,192,230,135, 15, 31,142,254,225,135, 31,218,113, 28, 87,226,106, 65,150,101,127,255,250, -235,175, 91,247,235,215,143, 72, 24,131,238,244,169, 45, 34,142, 51,144,111,190,221,100, 12,185,124,129,225, 56, 3,233, 51,240, -107,254,248, 31, 15,153, 81, 95, 45, 54,214,251, 32, 8,161,161,161,206,221,186,117,251, 1, 64,153, 66,171,192, 82, 85,154,133, -146,101, 89, 12, 29, 58, 20,187,118,237, 50, 57,222,195,129,106,150, 94,230,215,127, 90,221,222,156,136,114,138,136,172,234, 56, -118,232, 70, 70,226,211,184,247, 74,100, 1, 64, 74, 74,202,122, 0,235,109,109,109, 19,205,204,204,144,157,157,253,167,242, 71, - 8,145,251,249,249,201,165, 82, 41, 58,118,236,104,235,226,226, 18,193, 48,204,138,216,216,216, 82, 21, 71, 73,195,132, 37, 13, - 39,190,205,170, 67, 27, 7,116,107,210,162,190,197, 19,171,121, 22,114,145,230, 94,149, 8,185, 37, 1,144,169,117,122,113, 53, -106, 64, 22, 73,146,213,107,216,166, 1, 44, 69,102,221, 74, 19, 90, 12,203,222,205, 76,207,232,146,149,173,195,229, 43,161, 24, - 56,160, 6,180,122, 2,158,103,144,147,171, 5, 88, 49, 24, 0,131, 62, 30, 2, 74, 68, 72, 75,140, 3,203,178, 15,241,254, 97, -250,232,209,163,187,124,251,237,183, 85,243,253, 95,121,229,251,191,154, 66, 8,169, 77,203,113, 62, 94, 6, 79,149,163,187,102, - 77, 58,124,105, 93,102, 80, 83,245,211, 6,126, 0, 0,219, 6,126, 72, 19,139,241, 76,196, 34,149, 82,168,139, 89,181, 90, 21, -253,254,143, 89, 7,223,152, 4, 95,244,216,164, 57, 90, 62,213,220, 59,183,106,212,240,171, 25,223,206,176,120,116, 53, 4,211, -190, 95, 69,125, 26,118,200, 94,127,233,174, 46,199,204,187, 75,118,242,211, 43,166,234, 11, 0,232,220,182, 55,234,248, 55,254, -211,159,205,219,228,249,146,188,124,254, 54, 18,147, 99, 77,110,108,243,197, 65,137,115,178, 76, 89,210, 95,130,233, 59, 35, 52, - 52,212, 49, 38, 38,230,141,137,239,222,222,222, 32,132,224,198,141, 27,184,126,253, 58, 6, 14, 28, 8,145, 72, 4,177, 88,140, - 11, 23, 46, 84,200, 26, 83,196,186,244,128, 82,218,138, 16,210,201,221,221,189,196,213,134,166,112,169,213,106,100,102,102,226, -212,169, 83,168, 81,163, 6,126,250,233, 39,184,186, 56, 97,198,140, 73,224,121, 30, 89, 89, 89, 48, 26,141,166, 90,180,248, 2, -107, 17,207,243, 72, 78, 78, 70,213,170, 85,177,122,245,106, 44, 95,190,252,135,184,184,184, 35, 21, 13,163,167,167,167,181,209, -104,252,166,123,247,238, 29,122,246,236,137, 78,157, 58,189,241,255,142, 29, 59, 44,246,239,223, 63,223,195,195,163,179, 94,175, - 95,144,152,152,152,108, 10,239,111,191,229,185, 95, 82,126, 48, 7,211,250, 85,193, 39, 99,183, 96,233,210, 3,144,201,100,111, - 52,188,243,230,205, 43, 83,196,240,148,250, 72, 82,174,198, 77,154,186,196,113,254,252,179, 56,123, 54, 9, 12,195,192,197,197, - 5, 12,195,224,229,203,151, 96, 24, 6, 94, 94, 94, 96, 24, 6,177,177,177, 5,115, 2,211,161, 49,205,151, 33,195, 48,208,104, - 52,120, 29,253, 10, 49,145, 17, 48,207, 74,128,131,165, 18,233, 97, 15, 80,103,248,136, 66,255, 79,255,112, 15,119, 27,128,109, - 69, 78, 45, 33,132,232, 8, 33,125, 0, 28,164,148, 22, 88, 52,126,200,255,148,136, 15, 62,248,160,222,183,223,126, 43, 46,112, -183,225,234,249, 35,167,215,235,121, 0,240,171,211,242, 13,181,255,236,217, 51, 44, 93,186, 20,185,185,185,144,152,226,232, 46, - 95,180, 22,172, 48, 44, 73,132, 85, 68,100, 1,128,157,151,251, 47, 55,238, 92, 48,222,143, 92,167,126,248,228,132, 34, 62,154, - 1,163,123,127, 69, 86,113,203,150,187,187,251, 28,158,231, 41,165,116, 86,145,186, 85,230,233,233,121,233,244,233,211,118, 28, -199, 97,229,202,149,214, 9, 9, 9,214, 45, 91,182,156, 6,160, 84,161, 85,210, 48, 97, 73,195,137, 40,178,234, 80, 38,147,217, -150, 85,125, 20, 95,117,104, 52,194,215,210,194, 26,233,136,129,214,222, 80, 47,195,142, 75, 59, 19, 63,226,158,107, 84,125,127, - 51,163,161, 42,147,165,131,155,210, 26, 60,165,190,165,118, 78, 13,134, 19,247,238,220,237,232,233, 81,131, 61,114,236, 34,122, -244,234, 7,173,150,129,198, 64, 64, 88, 49, 8, 43, 65,237, 58,245, 81, 51,160, 14, 40,128,219, 55,175,114, 58,131,225,204,251, -148,247,174,205,191, 26,232,218,252,203, 21,160, 60, 45,193,143, 86,213, 94,189,122,205, 7,240, 85,121, 60, 78, 31,126, 53,208, -185,105, 30, 79, 81, 63, 90, 95,127, 57, 26, 97, 55,197, 86, 23,239, 44,148,116,250, 0,193,201,103, 9,148,242,255,173, 58, 20, - 51,149,119,205,241, 95, 17, 92, 38, 9, 45, 79, 79, 79,107, 71,115,229,111, 95, 12,255,204, 34,234,254, 53, 36,132,223,192,149, -139, 17,233,187,247, 31, 72,203, 77, 77, 26, 94, 1,145, 85, 56,204,103,231, 92, 5,222,181,254, 44,180,228,230, 14, 0, 0,239, - 90,141,193,154, 89, 85,116,200,227, 79,214,172,202,136,172,162, 21,118, 73, 62,180, 70,141, 26,133,141, 27, 55,162, 89,179,102, -240,241,241, 41,172,236, 43,106, 53, 43,110, 93,170,204,106,195,162,200,206,206,134,151,151, 23, 54,108,216,128,135, 15, 31,194, -194,194, 2, 3, 7, 14, 68,118,118,118,161,192, 50,117, 50, 60,165,244,217,233,211,167, 27,245,239,223,159,138,197, 98,146,145, -145, 1,107,107,107,172, 94,189, 58, 55, 62, 62, 62,184, 18, 34,171,159, 68, 34,153, 52, 96,192, 0,214,207,207, 15,137,137,137, -176,180,180, 52, 16, 66,196, 0, 96,109,109,109, 80, 40, 20, 24, 61,122, 52,234,214,173,219, 98,202,148, 41,205,220,220,220, 86, -199,198,198,110, 41,171, 44, 17, 66, 10, 27,212,225, 43, 30, 67,167,203, 19, 42,107,214,172, 65,254, 92,183,255, 13, 17, 68, 70, - 2, 38,172,100, 49, 55, 55,135,143,143, 79,137,121,223,162, 69, 11,220,190,125, 59,111,104, 82, 36,130,163,163, 35,174, 92,185, - 98,210, 74,170, 2, 71,144,161,161,161,168,229,109,143,135,103, 79,195, 94, 41, 70, 93, 87,103,184,183,104,133,136,136,136,127, -204,154,149,239,155,106, 12,128,246,249,101,112, 19,128, 81, 69,142, 87, 83, 74,127,169, 8, 39,199,113,148, 97, 24,242,250,245, -107,189, 82,169, 36,182,182,182, 34,153, 76, 6,173, 86, 91, 40,184,158, 61,123,134, 99,199,142, 33, 38, 38, 6,182,182,182,140, -149,149, 21,244,122,125,186, 41,252,190,190,190,112,118,118,126, 99,226,251,240,225,195, 43, 37,178,134, 2,129, 27,127, 92, 80, - 69,198,176, 86,181,236, 59,227,197,227,151, 26, 70, 7,249,255, 7,145, 5, 0,233,233,233,235, 1,172, 47, 56,118,112,112, 24, -198,178,236, 12, 43, 43, 43,171, 11, 23, 46, 88, 59, 56, 56,144, 45, 91,182, 24,102,205,154,149,193,178,108, 58, 33,100,217, 63, - 47, 14, 17,158,146, 25,233, 37,182,113,229,239,107,232,213, 9,175,167,213, 76, 23,215,112, 32, 1,129,232,149,244,232,242, 48, - 46,178,105, 98,124, 2, 67,193,135,151, 81, 7,111,154,246,237,188,111, 34, 30,223,245,148, 91,202, 49,106,244,183, 8, 62,121, - 30,132, 17,227,210,213, 27,208,233,141, 72, 73,203,196,128, 65,131,225,238, 98,143,240,235,167,146, 57,158, 95,253,126,137,108, -126, 85,199, 30,195,108,100, 10,101,126,154, 24,177,237,215, 73, 96,152, 21,152, 61,123, 54, 2, 3, 3,199, 18, 66,190, 43,207, -143, 22, 33,252,170,218,173, 6,217, 72,100,121, 60,148, 55, 98,195,222,105,249,126,180, 38, 98,245,250,253,181, 3,188, 95,204, - 45,203,143,214,251, 34,178,138,126,151, 43,180,170, 84,169, 34, 51, 19, 99,164,173, 66, 50,229,139,143,123, 58, 36, 69,134, 33, -230,209,221,188,225, 5,189, 90, 31, 31, 17,238, 99,194, 67,219, 23,243,223, 65,203, 26,186,210,104, 12,168, 40,103, 65,131, 91, -220,154, 85, 17,145, 85, 18,103, 81,177, 85,212,111,150,135,135, 7,230,207,159, 95,174, 31,173, 18,226, 94,112,190, 19,128, 58, - 5, 98, 11,121,147,225, 59,153,178,210,176, 52, 78, 7, 7, 7,164,166,230,121, 72,104,221,186, 53, 90,183,254,223,122, 6,189, - 94, 95,104,197,178,176,176,248,147, 69,171, 36, 78,133, 66, 49,237,192,129, 3,159, 93,189,122,181,255,228,201,147,197,237,218, -181, 43, 16,115, 42,106,194,222,110,197, 57,141, 70,227,232, 83,167, 78,177, 60,207, 99,195,134, 13,184,125,251, 54, 85, 42,149, - 51,149, 74,229, 42,133, 66, 97, 84,171,213,163, 70,140, 24, 49,120,238,220,185, 76,139, 22, 45,112,237,218, 53,166,106,213,170, - 67, 0,108, 41, 47,238, 55,110,220, 0,195, 48,224,210,162, 49,118,218,110,152, 41, 68,120,252,248, 49,210,210,210,254,228,196, -212,148,244, 44,106, 41, 41,248,180,104,209,162,112, 24,178, 73,147, 38, 96, 89, 22,247,238,221, 43,113, 24,182, 24, 39,181,179, -179, 43, 44, 31, 18,137, 4,231,207,159,199,247,223,127, 15, 79, 91,107,164, 63,122, 8,231,214,109,209,225,179, 17, 24, 56,112, - 32, 88,150,133,173,173,109,161,229,183,188,184,191,101,133, 80,148,243,179, 90,181,106, 13, 9, 15, 15,119,175, 93,187,182, 75, -104,104,104,155,192,192, 64,175,135, 15, 31, 22, 28,203, 96,194,220,156,162,156,183,110,221,218,183,106,213,170,209, 67,135, 14, -149,240, 60,111,140,138,138, 50, 0, 32,206,206,206,236,173, 91,183,248, 35, 71,142, 64,173, 86,195,221,221,157,113,115,115, 35, -103,206,156,225, 31, 61,122,116,131, 82,250,173, 41,113, 55, 26,141,111,184,113, 40,248,189, 99,199,142, 10,191,239, 85,106,250, -254,212,174,165,159, 71, 74,220, 61,196,199, 70,194,152,233,160, 63,118,232,168,182, 34, 34,235,111,200,163,191,147,115,222,211, -167, 79,221,180, 90, 45,164, 82, 41,214,172, 89,163,159, 63,127,126,120, 74, 74, 74,115, 90,194,138,242,226,156,149, 92,117,152, - 86, 6,231,159, 86, 29,102,166, 34,248,208,225, 91,141,204,123,109,194,216,184,228,194,137,141,148, 16,219, 3, 78,254,205,149, -141,107,199, 50,199,231, 48,217, 70, 85,112,105,225,164,148,234, 8, 33,253,122,245, 30,116,110,215,174,157,230,179,230,204,193, -149, 27, 15,145,154,145, 3,158,178,224, 9,193,140, 25,179,224,108,111,139,172,184,167, 42,173, 94,223,171,248, 86, 60,255,245, -124, 39,132, 25,119,230,200,150, 21, 12, 1,159,155,248, 68,198,102, 71, 42, 63, 25,216, 75,212,175, 95, 63, 28, 56,112, 0,161, -161,161,235, 74, 19, 89, 69, 57, 41,101,198, 61,188,176,123, 5, 1,120,117,242, 19,153, 40,231,133,114,200,199,189, 68, 3, 7, - 14,196,193, 99, 87,177,235,232,139,181, 59,143,208,163,239,115,135,165, 82,158,225, 45, 68, 8,109,238, 95,205,173, 69,253, 0, -185,200,168, 70,204,163, 72,164,229,106,112, 38, 44, 42,131,161, 76,165,125,235,228, 85,144, 18, 68, 71, 63,253,211,127, 25, 25, -242,252, 6,189, 98,219, 74, 49, 12,243,134, 53,235,109, 44, 89, 69,195,233,228,228,244,198,118, 46, 69, 27,238,130, 57, 64,149, -112,237, 48, 45, 58, 58,218, 50, 58, 58, 26,148, 82,220,184,113,195,178, 73,147, 38,211,222,198,154, 53,105,210,164, 66,171, 85, -241,239,146,206,149,135,252, 73,233,203,237,237,237,247, 78,153, 50,101,108,147, 38, 77, 58,206,153, 51,135, 0, 96, 43, 89, 0, - 57,158,231, 17, 18, 18,130, 3, 7, 14, 24,245,122,253,200,184,184,184,162,115, 29, 86,186,186,186,158,233,221,187,247,150, 39, - 79,158,176,225,225,225, 48, 69,208,169,213,106,248,248,248,128,227, 56, 44, 28,235,129,236,236,218,224, 56, 14, 70,163, 17,102, -102,102,111,236,115,105, 74, 62, 49, 12, 3,163,209,248, 39,161,117,227,198, 13,176, 44,139,230,205,155,227,238,221,187,133, 22, -173,242, 44, 80,122,189, 62,218,201,201,201,105,222,188,121,133,225, 74, 78, 78,198,233,211,167,241,193,135, 77,225, 63,114, 20, -226,226,226,176,108,217, 50,184,186,186,226,167,159,126, 66, 90, 90, 26, 56,142,251,187,205,233, 93,194,195,195,221, 63,254,248, -227,164,135, 15, 31,186, 31, 59,118,204,186, 91,183,110,102,131, 6, 13, 74,122,248,240,161, 59, 33,164, 41, 42, 56, 9,218,104, - 52, 78, 39,132,156,252,233,167,159,166,125,245,213, 87, 77,134, 14, 29, 42, 22,139,197,124,108,108, 44,183,115,231, 78,226,227, -227,195, 72, 36, 18,114,234,212, 41,254,230,205,155,215, 57,142, 91, 72, 41,189, 84, 17,139,115, 81,145,197,178,172, 73, 34,171, - 56, 38, 56,202,134, 88, 48,201,205, 87,173,153,207,248,121,187,235,183,238, 60,253,250,210,181,167,207, 89, 45, 55,225, 55,224, - 57,254, 31,130,101,217, 61,181,106,213, 26, 54,110,220, 56, 69,167, 78,157,100,115,231,206,205,204,206,206, 46, 81,100,149,242, - 94,254,229,171, 14, 1,252, 58,125,242,177, 9, 95,215, 30, 86,237,115,231, 42, 56,155,155,132,116, 17,203, 88, 90, 51,168,239, -197, 34, 59,229,153,195,209,115,155, 95,162, 28,191,108,148,210, 91,132,144,246, 1,181,235,237, 95,248,211, 66,199,153, 83,167, -136,247, 31, 59, 1,202,233,113,227,194, 5,152, 75,140,244,209,157,179,137, 90,189,174,231,251,184, 5, 79,220,229,149,187, 8, - 33,135,109,109,109,239,127, 54,116,168, 79,173, 90,131,160, 84, 42,177,111,223, 62,108, 91,185,210,184, 28,232,191,158,144,187, -163,242,124,234,149,138,196,107,133, 60,247, 70,124,246,153,111,253,250,159, 67,169, 84, 98,239,222,189,216,178,124,185,201, 60, -255,113,107, 86,129,103,248,224,252,111, 19,252,104, 49, 36,251,250,211,168,156, 27, 79,163,114,192, 83,202, 83,170,101, 24,188, -206,213,235,127,138,120, 30,115,170,146, 1, 1,207,243,248,225,199,113,239, 50,114,133,226,167,178, 75,186, 75,104, 36, 98,138, -238,145, 86,222,134,210, 0, 96, 48, 24, 98, 76,164, 95,224,233,249,167, 61, 80, 23, 84, 54,172, 5,195,129,166,138, 44, 83,253, -104, 1, 64, 74, 74, 74, 60,128,153, 46, 46, 46, 59, 58,118,236, 56, 2, 64,108, 37,243,104, 67,171, 86,173, 70, 2, 96, 9, 33, -235, 98, 99, 99,255, 52,161, 52, 46, 46, 46,194,205,205,109,177,183,183,119,225, 70,211,101,113,242, 60,255,162,118,237,218,250, -146,242,162,180, 99,158,231,203,205,163,140,140, 12, 52,110,220,248, 79,123, 90, 82, 74, 17, 21, 21, 85, 96,113, 42, 76,251,178, - 4, 92, 78, 78,206,168, 47,191,252,114,189, 88, 44,246, 4, 64, 10, 68,174,209,104,100,127,249,229, 23,185,209,104,100, 1, 16, -134, 97, 56,177, 88,172, 57,112,224, 0,199,113, 92,180, 86,171, 29,245, 55,215, 17,123, 73,222, 86, 12,185,225,225,225,126,249, -150,172,152,208,208,208,123,187,118,237,114, 0,176,187,146,101,243, 18,128, 75,132,144, 22,107,214,172,153, 62,106,212,168,198, - 3, 7, 14, 20,181,110,221, 26,193,193,193,198,144,144,144, 27,106,181,122, 65, 69, 4, 86,126, 94,102,122,120,120, 20, 10,174, -114,222,229, 50, 39,242,218,121,201, 86, 13, 30,227, 42,223,176,224,116, 78, 74,156,238,170, 33, 71,247,237,102, 32, 20,255,143, -145,144,144, 48,153, 16, 50,107,217,178,101,113,117,235,214,149, 73, 36, 18,157,169, 34,235,111,180, 30,112,132,144,174, 63,119, -232,123,184,213,140, 47,189, 59,180,105,174,244,168,226,232,246, 40, 50, 17,207,174, 5,231,222, 63,250,227, 43,170, 77,239, 65, - 41,229, 76,224,186, 73, 8,169, 49,105,202,164,130, 77,165,235,180, 59,115,136,254, 63,218, 84,250,135,197,139, 23,251,212,170, - 85, 11,251,246,237,195,153,237,219, 49, 32, 37, 5,231, 89,150,101, 36, 18,187,163,122,253, 18,152,230,184,248,135,165, 75,151, -250, 6, 6, 6, 98,207,158, 61, 56,181,101, 11,250, 87,142,167, 52, 52, 2,224, 80,208, 60, 1,120, 2,160, 1, 0, 5, 0, 45, -242,182,118,178, 47,114,125,106,254,127, 5,255, 95, 4,240, 87, 78,132, 45,223, 51,124,113, 60,124,250,178,193,187, 14,133, 90, -173, 78,243,241,241,169,208,154,107,131,193, 80,230, 24, 46,199,113, 49,213,170, 85, 51,217,106, 97,138, 40, 74, 77, 77,109,248, - 23, 86, 16,111, 53, 23,235,141, 70,132,231, 95,185,184,184,240, 5,141,126, 73, 34,172,164,115, 20,120, 89,145,231,196,199,199, - 63, 1,240,117,101,195, 25, 27, 27,187, 31, 38,108, 26,109,234,117, 0,144,150,150,246,206, 55,243, 37,148,198,206,157, 59,183, - 66, 2, 27,148,198,150,145,215, 15, 1, 52,249,183,215,178, 5, 91,239, 16, 66,152,208,208,208, 17,249,195,219,103, 1,172,203, -247,232,253,182,252,133,130,107,195,134, 13, 19, 40,165,200,202,202, 90, 94, 81,129, 85,216,123, 78, 76, 12,126, 87,113, 79, 75, -212,253,177,115, 93, 76, 91,117,134,126,194,198, 28,221, 22, 8, 40,200, 51,141,163,163,227,239,159,124,242,201, 7, 0, 54,191, - 45, 95, 73,195,137,239, 32,140, 47, 9, 33,117,207, 79,250,254,179,243,214, 22, 65, 48,138,252,160, 99,142, 66,151, 26, 12,224, - 55, 83,172,226, 69,227,139, 60, 55, 37, 75,255, 63,229,115,190,255,171, 9,195,134, 13,195,172, 89,179,112,106,201, 18,253, 24, - 66, 50,197, 0, 61,153,215,209,100, 8, 48,213, 84,158, 33, 67,134, 96,214,172, 89, 56,190,112, 97,165,120,202,129, 3, 33,228, - 24, 0, 76,155, 54,237,219,249,243,231,219, 76,159, 62,189,206,130, 5, 11,126,202, 63, 14, 43,248, 63, 63, 79,187, 77,159, 62, - 61,160,200,255,217, 0,110,253,197,233, 89,162,103,248, 55,122,236,239,250, 3,160,189,192, 41,112, 10,156, 2,167,192, 41,112, - 10,156, 2,231, 91,126,130,242, 36, 75,233,223,165,253, 46,114, 14,255,196, 71, 36,244,221, 4, 8, 16, 32, 64,128, 0, 1,255, - 81,171,220,177,183,249,255, 29,134,163, 96,142, 86, 81, 75,233, 6, 32,111,185,123,251, 82, 76,169, 21,113, 28,217,190, 18,102, -223,179, 2,167,192, 41,112, 10,156, 2,167,192, 41,112,254,255,226, 44,143,187,148,251,131, 8, 33,199, 40,165,221, 74,251, 46, - 16, 86,197,127, 23, 57,247,206,166, 29,148, 16,151,145,165,205,209, 18,134, 14, 5, 78,129, 83,224, 20, 56, 5, 78,129, 83,224, -252, 79, 12, 29, 2,160,211,166, 77,155,254,111, 27, 58, 4,224, 2, 96,100,209,143, 9, 67,135,251,216,216, 88, 88, 74,165, 74, - 9, 0,232,116, 42,189,155, 27,178,128,190,255,216,134,183, 2,254,179,166, 93,167,124, 81,159,248, 46,175, 21, 32, 64,128, 0, - 1,255,111,144, 92, 96,169, 2,144, 12,128,228, 31,235,242,191,147,243,219,142,226,191,223,248,255,175, 2,165, 52, 30, 64,137, -171,229, 69,165,137,172,148, 20,165,189, 72,148,238,107, 52,106,106, 2,128, 72,196, 60, 78, 73,177,137,176,183,223,151, 82, 25, -177,229,224,228,116, 71,204,178,110,166, 92,107, 48, 26, 99, 83, 18, 19,223,112, 29, 79,129,255,188,192, 51, 85, 68,188,141,216, -248, 59,132,138,131,131,131,147,147,147,211, 71,150,150,150, 31,102,100,100,220, 76, 78, 78, 62, 88,218,190,135,132,144,249,132, - 96, 74,254,239, 69,148,210,233,101,132,221,228,107, 75,184,215, 71,169, 84,142, 37,132, 4,230,199, 63, 84,165, 82,173,161,148, - 62,253,127, 40,108, 21, 0,122,138, 68,162, 33,246,246,246,141, 19, 18, 18,230, 82, 74,151, 85,146, 75, 4, 96,146,181,181,245, - 64,107,107,235,170,105,105,105,207,179,178,178,246, 0, 88, 74, 41, 45,119,169,244,119,227, 93, 63,108,221,169,245,204,144, 83, - 33, 63,204, 89, 17,119,237, 79,255, 79,118,181,235,216,161,217,172,144,163, 87,231, 77, 95, 21,155, 86,193,176, 49, 0, 10,156, -230,241,249,189, 86,250,142,211, 82, 12,160, 59,128,214, 0, 66, 0, 28, 53, 37,222,165,112,125, 0,224,219,252, 48, 47,165,148, -158,255,151,151, 35, 51, 39, 39,167,133, 0,186,139, 68,162,240,216,216,216,145,148,210,152,127, 56, 76, 34,228, 45,243, 15, 68, -158, 27,142, 91,166,184,112, 48, 5,246,246,246,221, 68, 34,209,216,124,215, 46,107, 82, 82, 82,142,253, 91,243, 70, 38,147, 45, -119,118,118,254, 92,173, 86,171, 8, 33,180,168,191, 71,142,227, 98,146,147,147, 27,190,135, 85,219,173,127,249,251, 50,178, 4, -241, 85,186, 31,173,216, 88, 88,138, 68,233,190, 73, 9, 15, 7,196,197, 63,232, 15, 0,174, 46,117,246, 56, 58,215,222, 29, 27, - 43,213, 55,234,208,219, 92,172, 20,173, 97, 89,113, 61,141, 78,107, 47, 22,137, 83,244,156,225, 30,163,163, 99,227, 31, 31, 40, -209,217,162,152,101,221, 94, 69,156,119,228,244,105, 16,203, 93, 33, 86,120,150, 26, 96, 87, 87,215, 74, 69,212,214,182,186,133, - 94, 38,159, 32, 22,179, 29,120,202, 5, 82, 30, 96,136, 56,148, 51, 26,206, 73,180,218,159,211,210, 34,179, 43,155,136, 53,237, -137, 51, 5, 6,130,160, 3, 40,206, 16, 96,215,227, 20,154, 80,129, 76, 48, 73, 68,188,165,216, 40,122,239, 50, 74,233,228,119, - 93,152,220,221,221,109,250,244,233,179,252,251,239,191, 87,152,155,155,147,232,232,232, 78, 83,167, 78,109,233,238,238,254,117, - 76, 76, 76, 92,113,209, 71, 8,166,240, 60,101, 0,128, 97,200, 84, 39, 39, 39, 37,203,178,127,242,109,100, 52, 26,149,132, 96, - 28,207, 83,146,127,237, 20, 66,200, 10, 83, 4,163, 66,161, 24,212,184, 73,211,175, 23, 46, 94,106,238,228,232,104,198, 25,121, -253,203,168, 87,202,153,211, 38, 55, 81, 40, 20, 43,212,106,245,206, 74,188, 52,132,101,217, 1, 50,153,172, 27,128, 90,249,167, - 31,105,181,218, 99, 70,163,113,183,169, 13,186,179,179,243, 69,150,101,171, 84,228,217, 70,163, 49, 58, 33, 33,161,121, 37, 95, -246,126,158,158,158,191,181,106,213, 74,217,184,113, 99, 72,165, 82,204,154, 53,107, 18,128,101,166, 8, 42,165, 82, 57,192,204, -204,172, 90, 78, 78, 78,164, 90,173,222, 47,149, 74,219,175, 88,177,194,163, 89,179,102, 22,137,137,137,132,101, 89,167, 99,199, -142,125,186,114,229,202, 78,132,144,118,229, 53,114,153,145,116,166,172,123,173, 22,153,145,231,103, 2,232, 82,252,127, 78, 35, - 31, 66, 89,143,110,106,122,247, 53, 42,176,180,158, 16,194,136,197,226, 21,206,206,206,195, 52, 26,141, 6,121,190,215,168,147, -147, 83, 97,131, 3, 0, 58,157, 46, 61, 61, 61,221,175, 18,233,232, 7, 96,184,181,181,245,176,111,190,249,198,166, 75,151, 46, -216,190,125,251, 23, 27, 55,110, 76, 39,132,252, 14,224, 87, 74,233,147, 10,210, 78, 73, 72, 72,232, 42, 22,139,137,135,135, 7, - 11,224,124, 5,194,227, 11, 96, 70,126, 99,179,134, 82,106, 36,132,180, 1,242,222,119, 0,139, 10,132, 27,203,178,107,252,252, -252, 62,122,244,232,209, 90, 74,233, 15,149,125,215,157,157,157,215,175, 94,189,186,127,143, 30, 61,216,228,228,100,183,186,117, -235,238, 0,208,226, 29, 52, 72,159,201,100,178,137,117,234,212,241,127,242,228, 73, 68, 86, 86,214,210,252,244,164,101,220,227, - 14,160,189,181,181,117,187, 25, 51,102,152,119,235,214, 13, 27, 54,108,232,186,113,227,198, 28, 66,200, 57, 0,103,223, 86, 4, -138, 68,162,177, 49, 49, 49,246,148, 82,184,184,184,140, 69, 57,155,155,255, 83, 96, 89,118,197,128, 1, 3,134,237,216,177, 67, -249,234,213, 43,165,155,155, 91,161,243,108, 66, 72,165,219, 79, 1,111,109,209,218, 80, 32,184, 76,242,163, 37,149, 42, 37, 70, -163,166,102, 92,252,131,254, 45, 91,253, 98, 5, 0, 23, 47,124,217,223,209, 57, 32, 84, 42, 85, 70,200, 44,229, 7,122,119,111, - 95,175,111,183, 86,196,221,197, 17, 49,241, 73, 78,191,238, 58,213,249,216,169,243, 7,144,231, 64,172, 68,112,250, 52, 40,244, -103,241,228,242, 74,216,183,142,195,170,227, 49,184,118,255, 37, 84,153, 41,168,226,172,192,226, 9, 29,225,108,163,172, 84, 36, -205,157,124,219, 48,114,229,238,143, 7,125, 98,245, 81,207, 90, 98, 47,103,103, 80, 42, 67, 68,100, 78,211, 19,167,207, 55,218, -191,119,231, 88,115, 39,223, 1, 57,137, 17, 38, 87,110, 13, 92,137, 34, 87,143,158, 34,150,124,218,162, 73, 64,187, 65, 93, 91, - 48,254,181,106, 32, 60,236, 81,199,195,127,220, 88,236,239,196,156,227,140,116,171,153, 4,135,238,196,149,238,208,175, 36,193, -209,161, 67,135, 22, 50,153, 76, 95,244, 58,173, 86, 43, 33, 4, 31, 84, 70,108, 20, 60, 67,167,211, 50, 98,177, 20, 12, 67,190, -174, 83,167, 78,173,148,148,148,243,132,144,223, 98, 99, 43,102, 45,248,138, 16,105,186, 72,212,128,145,201, 92,140, 58,157, 29, - 0, 16,169, 52,221,221,198,166,246,140,111,191, 53,103, 89,150, 79, 77, 77,133, 74,165, 34, 35, 70,140,144, 71, 70, 70,246, 6, -176,178,156, 48, 98,227,198,141,190, 46, 46, 46,186,226,255,197,199,199, 75,123,244,248,168, 50,149,182,239, 7, 31, 54,155,120, -234,212,201, 90, 89,105,233,154,141,203,214,223, 49,200,149,218,170,181,252,196,107, 54,108,177, 26, 57,108,240,151,132,144,123, -148,210,136, 10,112,122, 42, 20,138, 3, 75,150, 44, 9,108,211,166,141,216,209,209, 17,137,137,137,120,244,232, 81,224, 31,127, -252,209,115,203,150, 45,147, 8, 33,189, 41,165,166,120,112,247, 57,183,245, 55, 71, 51, 91, 59, 24, 13, 6,184,214,169, 95,232, -223,236,217, 31,167,193,233,245,224, 13, 6,212,234,214, 51,207, 44,195,243,240,247,247,175,148,215, 93, 66,136,107, 64, 64,192, -182,159,126,250, 73,162,213,106,113,227,198, 13,156, 63,127,158,143,143,143, 95, 80,158,200, 34,132,156,158, 51,103,142,123,243, -230,205, 45, 82, 82, 82, 96, 52, 26,237, 15, 29, 58, 52,182,126,253,250,150, 30, 30, 30,210,173, 91,183, 34, 39, 39, 7, 28,199, -217, 86,171, 86,205,118,208,160, 65,186,173, 91,183, 78, 2,176,176, 52, 75, 86, 86, 36,157,153, 64,170,117,246,107, 48, 4, 9, -228,100,231,175,187,184,156,176,172, 78, 10, 45, 91, 93,170, 87,183,168, 86,211,108,170,185,101,109,219,172,216,179, 83,187, 84, -175,190,241, 68,100,249,157, 33, 66, 8,195, 48,204,138,222,189,123,127,188,107,215, 46,229,163, 71,143,148,181,106,213, 2,207, -243,133, 30,248, 11, 28,206,250,248,248, 84, 38, 29, 23,140, 30, 61,122,106,255,254,253, 81,167, 78,157, 66,167,168,179,103,207, -198,212,169, 83,109, 46, 94,188, 56,105,231,206,157,147, 8, 33, 11, 41,165,211, 42,210,150, 23,109, 47, 43, 24,172,239, 94,188, -120,209,239,192,129, 3,131,167, 76,153,226, 3, 96, 28,128, 89,169,169,169,173, 0,192,206,206, 78, 10,224, 60, 33,228,179,111, -190,249,102,204,180,105,211,208,181,107,215, 89,132,144, 31, 43, 99,229, 35,132,176,246,246,246, 93,123,244,232,193, 26, 12, 6, -152,153,153,193, 96, 48, 84,127, 75,129, 69, 0,172, 30, 53,106,212,152,209,163, 71,195,198,198, 6, 6,131,193,119,215,174, 93, - 27,103,205,154,245, 33, 33,100,120, 73, 97, 37,132, 12, 25, 51,102, 76,159, 79, 62,249, 4, 13, 27, 54,132, 72,148,151,140, 75, -150, 44,193,188,121,243,204, 79,159, 62,221,115,235,214,173, 61, 9, 33,251, 41,165,149,246,133,198,243, 60, 68, 34, 17, 94,191, -126, 13, 71, 71, 71,153,173,173,237, 41, 66,200,134,212,212,212,131,255, 34,171,201,162, 1, 3, 6,124,188, 99,199, 14,115, 0, - 88,188,120, 49, 38, 78,156, 8, 39, 39, 39,152,155,155, 11,106,231, 95, 98,209, 42,238, 71,171, 82,238, 29, 84, 42, 85,253,233, - 95,125, 10,134,201,235, 53,214,168,234,137,249,223,142, 36,135,143,157,170, 95,214,125, 98,185, 43,158, 92, 94, 9,153,199, 4, -104, 13, 28,174,223,127,129, 51,139, 59, 1, 0,124,187,204,128, 86,223,174, 64, 25,218, 74, 21,138, 69, 58,163,241, 10,156,157, -111, 32, 42, 42,185, 60,145,229,224,236,116,108,221,186,133,138,192,234,126,208,115, 6,196, 38,197,130, 16, 25,220,221, 44,240, -217,144, 46,226, 86,173, 92,237,191,251,110,125,176,153,131,111,175,220,228,136,114, 29,134,250, 57,144,205, 45,234,251,244, 31, - 20,212, 92, 86, 59, 48, 0, 18,153,226,127, 2,172, 97, 67, 52,104,216,144,153,150,147,221,225,230,173, 59, 29,246,157,190,174, -245,115, 32,123,158, 36,211,161,101,229, 67, 81,193, 49,126,252,120, 20,244,190, 11,144,152,152,136, 63,254, 56, 87,226, 61,166, -230,117,209,103,252,248,227,143, 22,233,233,233, 93, 54,109,218,212,214,197,197,229,199,248,248,248,203,166,144,124, 74, 72, 21, -200,100,237,134, 45, 93,202,215,251,232, 35,214,218,217,153,225,141, 70, 18,247,252,185,221,178,149, 43, 91,167, 61,123,166,200, -181,181, 77, 75, 87,171, 85, 17, 17, 17,144,203,229, 68, 36, 18, 53, 42, 65,225, 39, 18, 66, 22, 49, 12,153, 74, 8,129, 76, 38, -143, 24, 61,122,244,221,252,191,171, 28, 61,122, 84,217,189,123,119, 21,128, 87,121,230,112,185, 27,203, 50,190,121, 19, 8,177, -200, 20,129,105,102,102,246,213, 15, 63, 45, 52,203, 74,203, 80,235,115,115, 13, 14,150,230,132,152, 91,176, 89,153,217,217,177, -241,201,218, 25,115,231,177,163, 62,251,228, 43, 0, 99, 77, 21, 89,117,235,214,189,121,224,192, 1, 71, 59, 59, 59,100,100,100, - 32, 53, 53, 21, 55,111,222, 4,207,243,232,221,187,183,172,105,147,198,245,191,157, 49,243, 26, 33,228, 67, 83,196,150,153,173, - 61, 22, 55,175,151,215, 88,191, 74, 45,204,159, 13,253,186, 21, 94, 51, 47, 38, 19, 0, 32,151,203,223,102, 11,169, 15,219,181, -107, 39, 1,128,225,195,135,103,101,103,103,207, 7,176,131,150,225, 84, 53, 31,147,102,206,156,233, 86,181,106, 85,175, 29, 59, -118, 32, 39, 39, 7, 0, 28,171, 86,173, 10, 63, 63, 63, 99, 72, 72, 8,124,125,125, 97, 97, 97,129,139, 23, 47,226,250,245,235, -104,208,160,129,133, 68, 34,233, 95,154,208,106,221,169,245, 76, 89,247, 90, 45,252, 26, 12,129,185,165, 11, 54,238,220,141, 39, -119,182,180,208,234, 31,205,156, 63,206,237, 19, 53,149, 13,117,247,177,152, 86,165, 97, 43,187, 26, 1, 31,193,171,193, 93,123, -141,241,210,139, 89, 95, 84, 91, 32,146,107,182,204, 89, 18,151, 90,154,200, 2,176,184,119,239,222,253,118,237,218,101, 13, 0, - 15, 31, 62, 68, 98, 98, 34, 28, 28, 28, 32,151,203, 33, 22,139, 11,247, 39,173, 36,134,174, 89,179,166, 80,180,113, 28, 87,184, - 11,128, 82,169, 68,203,150, 45, 81,175, 94, 61, 28, 60,120,112, 40,128,105, 37,132,177,121,147, 38, 77,182,123,121,121,121, 20, - 61, 31, 20, 20,132,129, 3, 7, 2, 0, 90,181,106,213,174,111,223,190,180, 64, 16,198,199,199,231,220,186,117,171, 3,165,244, - 70, 73, 1, 98, 24, 70, 29, 27, 27,139,111,190,249, 6, 47, 95,190,252,130, 16, 18, 5, 64, 46,149, 74, 11,251,199,132, 16,223, -128,128,128, 21, 19, 39, 78, 68,100,100, 36,194,195,195,111, 86,118, 40,149, 82,106,244,246,246,126,102, 48, 24, 26,114, 28, 7, -181, 90,141, 94,189,122,201,109,109,109, 19, 89,150,125,156,146,146, 50, 56,127, 78,138,169,141,144, 28,192,210,209,163, 71,143, -153, 50,101, 10,206,157, 59,135,195,135, 15,227,147, 79, 62,193,132, 9, 19, 96,110,110, 62,108,194,132, 9,215,144,183,161,121, -113,180, 91,179,102, 13,140, 70,227,159,222, 13,185, 92,142,230,205,155,195,223,223, 31,135, 15, 31,110,135, 34,251,163, 86,176, -145,244,234,221,187,183,148,231,121,228,230,230, 34, 36, 36,196, 92,161, 80,152,187,187,187,143, 0,240,175, 17, 90, 94, 94, 94, -163,119,237,218,101, 94,116,244, 71, 38,147,161, 72, 57, 16,240, 15, 91,180,202,235, 97, 21, 66,167, 83,233, 69, 34,230,177,171, - 75,157, 61, 23, 47,124, 89, 56,116, 8, 48,143,117, 58,149, 30, 0,140, 60, 69,150,138,131, 66,198,224, 85, 66, 54,194,158,167, -148,244,224, 55,150,104,138, 21,158,144, 53,126, 5, 74, 41,116,122, 35,180,153, 9,152, 31,172,194,163, 24, 13,116,185,233,208, -233,243,166, 97,217,219,219,139, 78,157, 58, 49,241,236,217, 63,198,252,254,251,239,108,140,149, 85, 56, 50, 51,235,151,196,105, -107, 91,221, 66,100,166,216,179,118,221, 44, 5,101,159, 35, 34, 58, 23, 53,220, 27,195,222,218, 3, 9, 41,185,184, 18,126, 28, -143,159, 30, 67, 85, 23, 47, 76,248,170,179,252,135,159,118,236,182,177,169,234,153,158,254, 34,171,180,112,230, 99,200,250,147, - 17,224,210,158,195,152, 26, 9, 99,118,220,159, 5,158,131, 39, 26,180,113,131,131, 71,117,217,208, 9,243,134, 0, 24, 90, 18, - 39,165, 52,145,101,217,181, 12, 67,198, 16, 66, 80,167, 78,221,152,165, 75,151,234, 75,120,166,190, 78,157,186, 49, 44,203,184, -231, 85,236,204, 26,158, 55, 38,150, 19,206, 55, 68,141, 84, 42,155,146,103,246,119,121, 29, 28, 28,172,239,215,175, 31,150, 44, - 89, 34,157, 58,117,234, 12,119,119,247,225,197,135,247,138,115,246, 38,196,211,173,122,245,142, 63, 94,185, 66,197, 6, 3, 73, -187,121, 51, 43, 35, 62,158, 75,200,206,150,238,125,252,184,235,231,147, 39, 75, 61, 60, 60,112,249,216, 49,187,228,220, 92,154, -161,213,170, 51, 50, 50, 40,199,113, 55, 75,137,251,116, 39, 39, 39,229,198,141, 27,125, 71,143, 30,125, 55, 46, 46,110,122,126, - 5, 49, 31,128, 63,128, 87, 69,206, 97,221,186,221,177, 35, 70,140,136, 72, 76, 76,156, 94, 86, 56,139, 32,192,209,193, 81,185, -115,253,214, 7,182, 22, 10,198,193,221,149, 17, 91, 91,139, 56,169, 66,194, 3,234,170, 30,213,205, 0, 4,148,146,102,103,139, -247,184, 21, 10,197,129, 35, 71,142, 56,138,197, 98, 24,141, 70, 56, 56, 56,224,229,203,151,200,200,200, 64,118,118, 54, 94, 60, -126, 4,111, 15, 15,124, 55,109,170,203,184,169,211, 14, 16, 66, 26, 22,109,204, 74,220, 0,217,160,255,147,101,175,148,141,200, -223,248, 54, 37,223,139,225,101,116,116, 52,204,205,205, 17, 24, 24,104,126,229,202,149, 75,165,137,172, 98,155, 0,247,111,214, -172,153,197,206,157, 59,209,160, 65, 3, 88, 89, 89, 33, 36, 36, 4, 15, 31, 62,132, 94,175,103,114,114,114, 96, 97, 97,129, 5, - 11, 22,192,203,203, 11, 89, 89, 89,136,142,142,182, 19,139,197,246,165,113,134,156, 10,249, 33, 51,242,252,204, 4,114,178,243, -198,157,187, 49, 98,208, 0, 56,211,231,151,172,170,147, 31, 58,118,111, 54,155,178, 30,221,204, 44,234,216,248, 4,118,135, 68, -106,142,113, 83,230, 33, 34,244,168,141, 42,251,193, 23,196,248,218, 3,192,248,226,156,249, 22, 17,198,195,195,227,243,189,123, -247, 90, 20, 25, 74, 41,220,243,176,232, 38,240,165,109,248,110, 74,122, 18, 66,240,242,229, 75, 56, 58, 58,194,220,220,188,112, - 3,241, 71,143, 30,225,250,245,235, 40,216,141,162, 20,206,193,103,207,158,245, 48, 51, 51, 43,126, 13, 82, 82, 82,192,113, 28, -148, 74, 37,140, 70, 35,244,122, 61, 12, 6, 3, 52, 26,141,185,191,191,255, 88, 0, 55, 74,226,228,121,254,235,254,253,251, 55, -187,113,227, 70,181,149, 43, 87, 66,167,211, 45, 78, 72, 72, 64,159, 62,125,192,243, 60,218,181,107,247, 1,165,244,201,140, 25, - 51, 0, 0, 19, 39, 78, 52,228,230,230,142,174, 76,220,243,227,239,223,183,111,223,106,231,206,157, 67,139, 22, 45,160,213,106, -177,100,201, 18,203,117,235,214, 89,110,221,186,213, 97,202,148, 41,191, 1,232, 84, 22,103,126,126, 45,118,118,118, 30, 51,104, -208, 32, 69,254, 30,166,216,178,101, 11,190,251,238,187, 93, 0,102,156, 56,113, 98,206,225,195,135,135,124,254,249,231,248,238, -187,239, 38, 20, 8,173,146, 56, 95,188,120, 1, 7, 7, 7, 88, 90, 90,230, 85,150,122, 61,238,221,187,135, 51,103,206,160,102, -205,154,166, 52,132,103,203, 16, 89,191,237,220,185,211,226,245,235,215,184,120,241, 34,188,189,189,161, 82,169,202,221, 27,246, - 93,111,254, 92, 30,167, 90,173,214, 68, 71, 71,155, 47, 92,184, 16, 46, 46, 46,240,242,242,130, 92, 46, 7, 33, 4, 6,131,161, -212,237,213, 76, 9,103,235,214, 68,148, 18,107,211,195,202,218,230, 11, 74,169, 40, 51, 51,125,189, 30, 25,251, 34, 35,169,238, -239,138,251,127,220,162, 85,159, 82,122,183,232,158,135, 5,157, 17, 17, 0, 4, 7, 7,211,160,160, 32, 82,240,237,230,134,172, -148, 20,155, 8, 71,231,218,187, 29,157, 3,242,247,253, 98, 30,179,172, 77,132,147,147, 42, 11, 0,244, 28,197,213,199, 25,120, -240, 44, 1, 15,159, 37,192, 76,102,154,241, 69,171,231,242,214,103, 82, 10, 77,206,255, 58,173,122, 85, 58,180,250,188,233, 30, - 58,173, 10,153,201,225,164, 95,175, 14,242, 49, 99, 70,193,197,197,205,161, 52, 62,189, 76, 62, 97,220,196,174,214,182,214, 98, - 28,187,114, 18, 31,212,236, 5,185, 76,140,212, 76, 13, 64,128,167,207,207, 0,188, 5, 66, 35,162,209, 36, 64,137, 78, 29,255, -143,189,171, 14,143,234,120,187,103,214,119,147,141,187,144, 32, 33, 64,112,119, 66,144, 34, 1,138,123,209, 66,113, 47,193,138, -147,180,184, 22, 43,238,197,138, 59, 65,130, 67, 4, 2, 1, 66, 60, 33,238,235,247,222,249,254,136, 52,132,200, 6,232,247,179, - 61,207,179,207,238,221,123,247,221,185, 51,115,103,206,156,119,230, 29, 15,249,233, 63,223,204, 6,176, 72,159,244, 50,177,143, - 33,114,239, 6, 33,171,131, 46,229, 13,184,140, 40,192,216, 30, 74, 34, 71,106, 66, 20, 94,223, 61,153,183,224,180, 28,176, 44, - 59,201,198,198, 38, 99,193,130, 5,237,171, 87,175,174,157, 56,113, 98, 96,100,100,228, 39,219,218, 84,174, 92,121,221,182,109, -219,240,238,221,187,184,149, 43, 87,222, 78, 78, 78, 94, 88,193, 7,212,135, 16,178, 33,223, 21,151,114,230,204,153,198,254,254, -254,211, 55,108,216, 96, 55,101,202, 20,241,148, 41, 83, 70, 3, 88, 94,150,187,208, 88, 34,233,180,242,206, 29,202,196,198,170, - 15,110,222, 44,222, 26, 16,176, 64,203,113,142,214,182,182,164, 85,243,230,185, 70, 60, 94, 74,106, 98, 34, 99, 83,173, 26, 63, -226,218, 53, 43, 42,147,197, 95,186,116, 41, 43, 39, 39,167,212,173,115,248,124,190,162, 36,119, 97, 73,112,112,112,208,148, 52, -135,171,140,202,157,197, 81,170, 53,175, 90,149,126,215,177,101,245,119,111,194,195,165,230,230,124,247,234, 85,106,190,124, 29, -241,152,178,172,138, 16,146,165,143, 45, 62,159, 63,104,195,134, 13,245, 76, 77, 77,193,113, 28,204,204,204,144,156,156, 12,141, - 70,131,172,172, 44,104,178, 51,161,201,204, 68,112, 84, 4, 90,183,111,143, 1, 93,191,243, 56,112,230,175, 65, 0,142,150,101, -215,177,126,163, 66, 37,107, 89,101,171,191,125, 65, 49, 25,133,164,235,215, 70,238, 16,201,229,232, 60,211,231,107, 26,232,231, - 98,177,248, 98,223,190,125,187,207,158, 61,155,151,144,144,112,153, 16,210,154, 82,250,170, 76, 69, 88, 46,119, 75, 73, 73, 65, -118,118, 54,204,204,204,176, 97,195, 6,216,217,217, 65,161, 80,224,201,147, 39,212,217,217,153,220,186,117, 11,206,206,206, 72, - 73, 73,129, 86,171, 69,110,110,238, 71,141, 70, 83,170,187, 60,223, 61,216,109,102, 55,135, 75,111,158,237,111,235, 68, 62, 60, - 25, 56,203,243,221,155,224,215,209, 87,175,221, 95,206,168,164, 49, 25,177,215,231, 86,109,250,220,122,210,156,165,216,178,122, - 49,222, 60,186,147,102,231,146,181, 85, 70,212,251,154,119, 46, 61,189,185,185,185,170,215,175, 95,155, 4, 6, 6,130, 16, 2, - 51, 51, 51, 24, 25, 25,149, 72,182,190,160,177,228, 21,249, 31,228,230,230, 66, 36, 18,193,202,202, 10,187,119,239, 46,236,120, -171, 84,169, 82,150,153, 29,157, 59,119, 30,228,226,226, 98, 82,244,203,166, 77,155, 98,252,248,241,248,253,247,223, 17, 16, 16, -240,201,126,154, 31, 63,126, 76,208,233,116,251,202, 40,219, 12, 66, 72,215, 62,125,250, 60,187,123,247,174,233,238,221,187,193, - 48, 76,137,175, 93,187,118,225,225,195,135,139, 40,165,175,191,176,195,168,213,175, 95,191, 59,135, 14, 29, 50, 79, 78, 78, 70, - 74, 74, 10,114,114,114,144,155,155, 11,150,101, 81,179,102, 77,194, 48, 76,205,242,242,145,207,231,159,217,188,121,115,207, 31, -127,252, 17, 2,129, 0, 26,141, 6,155, 55,111,198,220,185,115, 19, 1,140,164,148,106, 9, 33, 11,246,237,219, 55,162, 87,175, - 94,104,208,160,129, 71, 89, 54,115,114,114,144,147,147, 3,161, 80, 8,123,123,123,172, 88,177, 2, 26, 77, 94,179, 82,163, 70, -141, 66,151, 39,128, 29, 53,106,212,232, 25, 22, 22,182,134, 82,250, 91, 41,237, 76, 31, 74,233, 56,150,101,179,251,246,237,107, -117,228,200, 17,147,184,184, 56, 60,123,246, 12,139, 22, 45, 74,231, 56,142,229, 56,142, 40,149,202, 15,118,118,118,207, 36, 18, -137, 76,161, 80,164,165,166,166,174,162,148, 94,254, 23,118,230, 68, 40, 20, 98,204,152, 49, 16, 8, 4,144,201,100, 80,169, 84, -208,233,116,133,100, 30, 21,116, 75,187,187,155, 88, 9, 32,250,177, 70,141,118,211, 7, 76,235, 97,227,224,232, 4,115, 83, 9, - 66, 67, 95,181,190,121,227,218,230,218, 53,109,182,115, 26,221,246,215, 17, 25,255,248,102,247,197,185,200,127, 24,215,106, 4, -224, 57,138,236,121,136,252, 85,136,165,180, 68,253, 89,107,235, 63, 83,226,226,196, 90,177,216, 40,172, 64,229,202, 35, 89,253, - 89,224, 8, 24,173, 46,191,161,160,249, 47, 61,137,150,142,197,187, 55, 33,184,123,245, 47, 88, 43,226,144,242,161, 33, 32,170, - 7,141, 50, 19, 42,141, 54,127,244,198, 34,240,217, 13,100,101,166,161,110,147, 30, 0,143,247,176, 52,123,102, 86,164, 71,171, -198,245,249,239,162, 67,208,180, 70,127, 84,115,110,139,168,132, 44,100,228,168,145,158,165, 66,195,186, 62, 72, 78, 87, 34, 75, -161,194,171,119, 7,224,228, 88,141, 71, 4,225, 29,245, 37, 90,234, 87,167,160,126,125, 22, 34,215,214, 16,215,236, 5,190,107, - 27, 68, 7,221, 66,224,165,245,136,125,121, 15,148, 99,225, 80,163,153,190, 15,201,230,203,151, 47, 55,107,221,186,181,160, 83, -167, 78, 13, 28, 29, 29, 27,196,199,199, 7,230,171, 57, 13,186,119,239,222,192,198,198, 6, 27, 55,110, 84, 18, 66, 54,127, 97, -103, 91,212,221,246,216,206,206,110,229,169, 83,167, 54,143, 31, 63, 30,182,182,182,245,202,250,109,178, 80,216, 96,228,170, 85, - 84,200,231,211,163, 91,182,136,150, 94,190,188,118,239,190,125,162, 14, 94, 94,132, 82,138, 23, 47, 94, 24,253,186,101,139,209, -208,239,191,143,140, 74, 74, 98,252, 3, 2,180, 9,177,177,217, 73,185,185, 75,227,227,227, 63,254, 43,106,182, 78,167,123,240, - 33,226,131, 83,147,230, 13,109,158,135,126,120,217,165, 67,171, 86, 60, 30,143,247, 38, 60, 42,192,198,198,212,232,218,213,107, - 90,157, 78,247, 64, 31, 91, 18,137,164, 71,135, 14, 29, 4,233,233,233,112,116,116, 68,114,114, 50,226,226,226,242, 20,135,204, -116,104, 51, 51,161,203,202, 0,155,155,131, 15, 79, 30,163, 97,181,170,146, 19,121,147,229,143,150, 83, 38, 37, 42, 85, 69,149, - 45,177,137, 9,196,114, 57, 72, 5,221,134,132,144,239,205,205,205,231,102,100,100, 92,164,148,174,208,106,181,147,231,206,157, -219,116,211,166, 77,214, 43, 87,174, 52, 29, 55,110,220, 9, 66, 72, 67, 74,169,186,140, 14,236, 61,195, 48,214, 0,108,111,220, -184, 1, 91, 91, 91,100,102,102, 22, 40, 45, 26,133, 66, 33, 77, 77, 77,133, 90,173,134, 70,163,129,169,169, 41,158, 62,125,154, -206, 48,204, 95,229,165,207,212,141,172, 80,107, 67, 23, 90,121, 24,199,107, 25, 11,207,164, 52, 46,125,241,154,248,101, 0,214, -118,115,115,219,165,229,238,124,120, 27,114,206, 34,226,201,237,180,248,183,185,213,118, 93, 8,207, 46, 35, 31, 41, 33,132, 35, -132,208, 26, 53,106, 32, 57, 57, 25,124, 62, 31, 70, 70, 70,144,203,229,152, 55,111, 30, 54,111,222, 92, 97,162, 69, 8,145, 26, - 27, 27,175,226,241,120,131,204,204,204,108, 88,150,133,143,143, 15,122,246,236, 9,177, 88, 12,173, 86, 91,168,104, 22,168, 84, -101, 41, 29,148,210, 23, 0, 76,139,253,135,151,181,181,245, 77,181, 90,141,240,240,112,156, 57,115,166, 61,165,212,191,130,207, -118, 56, 33,164,107,155, 54,109,246, 55,110,220,216,141, 82,138,122,245,234, 97,240,224,193, 56,112,224, 0, 2, 3, 3,145,153, -153,201, 93,187,118,109, 47,128, 53, 21,237,192,243,243,183,102,191,126,253,238, 29, 62,124,216, 34, 53, 53, 21, 74,165, 18,185, -185,185, 56,113,226, 4, 90,183,110, 13,107,107,107, 28, 58,116,136,161,148,158, 43,139,100,241,120,188,221,219,183,111,239, 57, -118,236, 88,108,221,186, 21, 71,143, 30, 69,175, 94,189, 48,104,208, 32, 36, 39, 39,219,173, 94,189,122, 4, 33,100, 55,128,197, -131, 7, 15, 70, 78, 78, 14,158, 60,121, 18,170,231, 51,143,140,140, 12,100,100,100, 64, 38,147, 21,125,198, 8,128, 3,235,215, -175, 31, 50,125,250,116, 84,171, 86,109,113,254,162,160,207, 86,137,114, 28,247, 83, 92, 92,156,133, 64, 32,176, 98, 24, 6, 49, - 49, 49,120,250,244, 41, 38, 77,154,148,150,150,150, 54,158, 82, 26, 69, 8, 89, 48,102,204,152, 21, 51,103,206, 44,172, 75, 51, -103,206, 60, 79, 8,233,250,255,173,230,212,172,105, 81, 71,204,151, 76, 19,137,132, 86,233,233,233,133,109,135, 70,163,129, 90, -173,254, 68,201, 18,137,132, 86,205, 26,185, 94, 80, 42,178,231,191, 12, 75, 47,117,131,244,218,213,205,235, 27, 25,155, 77,247, -238, 58, 96,216,119, 93,123,243, 25,157, 14, 87,174,156,195, 31,127,108,131, 87,155, 26,168, 86,189, 30,166, 76,157,102,166,214, - 48, 62,215,174, 93,158,219,170, 89,213,203,217, 89, 25,243,202,178,249, 63,142, 11,249,228,234, 66,137,174,195,146, 25,100,127, -214,201, 9,233,249, 15,142,181,133,133,197, 22,150,101,189,128, 31, 33,148,219,227,213,211, 71, 72, 75, 23, 66,173,100,193,209, - 60,178,165, 23,113, 81,107,112,231,202, 89,108, 88,191, 22,169,169,169,104,211,174, 61,114, 4,149,224, 82,201, 5, 42,165, 34, -255,161, 1,180, 26, 29,108,236, 92,241,252,121,160, 46, 43, 55,183,212, 6, 73, 36,213,122,184,216,213,128, 90,219, 18, 82,177, - 24,153,217, 26,164,231,147,172, 67,127, 14,132, 90,161, 4,163,209,130,209,232, 96,227,210, 15,181,236, 58,128, 99,207,213,169, - 80,246,113, 44,180, 17,119,160,141,184, 3, 89,203,169,248,203,119, 72,177, 6, 80,191,125,119,147,146,146,146, 28, 29, 29,207, -189,120,241,162,207,192,129, 3,113,235,214,173,113, 0, 38,228,187,111,198, 13, 28, 56, 16, 47, 94,188,192,203,151, 47,207, 37, - 37, 37,125,147,141, 87,197, 98,177, 82,173,206,235, 99,141,140,140,164,229, 92,235,212,180,111, 95, 94,230,243,231, 89,235,239, -223, 95,188,107,247,110, 81,167,142, 29,137,142, 97,192,177, 44,170,187,187,147,239,190,251,206,248,192,241,227, 86,124,157,238, -225,156,201,147,111,252, 62,124,120,246,163,156, 28,125, 39,154, 87,206,119, 25, 2, 64,229, 50,190,211, 27,106,181,122,211, 79, - 63,142,234,228,127,231, 94, 37,151, 74, 78,166, 87,174,249, 7, 74,100, 98, 94,181, 42,110,252,244,204, 52,193,178,197,243,101, -106,181, 90, 95,210,234, 97,109,109,141,143, 31, 63,226,221,187,119, 80,171,213,208,233,116,224, 20,185,208,164,103, 64,147,153, - 6,162, 82, 66,194,178, 80,165, 36,162,114,181,170,192,223, 43, 18,203,117, 69,149, 68,180, 10,222,165,166,166, 16, 25,203,193, - 19, 10,245,222, 28,157, 16,210,184, 89,179,102,199, 79,158, 60, 41, 26, 61,122,116,115, 66,200,150,252, 14,162,227,162, 69,139, - 30,111,217,178, 69, 50,126,252,248,154,107,214,172, 25, 1, 96, 71,105,118, 84, 42,213,241, 11, 23, 46, 12,117,117,117,181, 13, - 14, 14,134, 74,165, 2,199,113,232,214,173, 27, 0, 20,214,153, 55,111,222, 40, 85, 42, 85, 82, 72, 72, 72, 86, 84, 84,148, 6, -122,172, 18, 92,188, 49,254,193,204, 1,206,125,237,236,157, 30, 74,101,149,171,208,156,231,125,102, 14,112, 94,189,238, 68,172, -234,210,251,247,217,139, 38, 85,243,203,205, 14,154,100,238,156,179,245,210,185,112,125, 86, 5,211,130,229,236, 86, 86, 86, 16, - 8, 4, 16, 10,133, 16,137, 68, 32,132, 96,234,212,169,216,185,115,103,153,174,195,226, 36,203,196,196,228,229,210,165, 75,157, -199,143, 31, 47,146, 74,165, 72, 79, 79,199,161, 67,135, 48,102,204, 24,252,241,199, 31, 37,206,127, 41,207,165, 84,130, 90, 58, -125,248,240,225,208,104, 52, 24, 60,120, 48,118,237,218, 53, 29,128,127, 69,235, 59,165,244, 33, 33,196, 61, 48, 48,208, 20, 64, -175, 65,131, 6,237,235,215,175, 31,252,253,253,113,238,220,185,246, 0,194, 0, 40, 1,248,230,111,226,236, 91,214, 66,144,252, - 16, 14,219,108,108,108,122,213,169, 83, 39,176, 95,191,126,117, 15, 31, 62,108,158,148,148, 84,176,248, 1, 17, 17, 17,216,179, -103, 79,194,238,221,187,179, 88,150,181,226,241,120, 23, 50, 50, 50,230,149,225, 46,220,189,126,253,250, 81,249,238, 64,156, 60, -121,146,174, 93,187,150, 44, 90,180, 8,233,233,233,240,242,242,194,246,237,219,167,229,228,228, 52, 88,187,118,237,143, 3, 6, - 12,192,178,101,203,144,155,155,187,190,188,193, 74, 25,228,139, 0,104,181,126,253,122,215,233,211,167,227,228,201,147,104,220, -184,177,236,195,135, 15,191, 3, 24, 91, 82,249, 81, 74,241,225,195, 7, 40, 20, 10,220,187,119, 15,139, 23, 47, 78, 47, 66,178, -166, 77,152, 48, 97,197,180,105,211,176,106,213, 42, 26, 28, 28,156,212,175, 95, 63,187,157, 59,119,242,171, 87,175, 62, 13,121, -155,174,255,191,160,150,187,149, 95,179,166,158,115, 29,156,170,227,208,225, 35, 72, 75, 75, 43,204,147,130,124,161,148, 34, 59, - 59, 27, 31, 63,126,132,153,169, 9, 86,175, 89,209,125,226,184, 81,149,144, 23, 6,227,243,134,206,205,114, 77,255,193, 99,103, - 13, 30, 58, 10,193,129,207,112, 96,223, 14,132, 4,191, 40,180,199,232,180, 8, 11,125,138,176,208,167,176,179,119,197,119,157, -218,147, 33, 67,134,116, 27, 62,116,144, 13,128,127, 44,116,196,127,176,154,245, 89, 28,173,162,115,182, 4,229,201,117,249, 36, -235,229,177, 99,199,172,218,180,105,195,103, 24, 6,151,175, 92,193,164, 9, 63, 96,196,112, 31,104, 97, 1, 70, 35, 2, 39,146, -234,149, 24,165, 82, 1, 10,138,220,220, 92, 4, 4, 4,128,114, 12, 14,236, 92, 11, 74,185, 66,162, 5, 80,104,180, 90, 56,185, -212,196,182, 93, 43, 25, 8,133,143, 75,179,151,149,202,103,117, 12, 69, 92, 82, 52,162, 19, 66, 96,102,226, 2,129,208, 5,169, - 25, 10, 8,120,246,208,169,222,128,205,151, 85, 21,185,177, 80,106,191,174,252,216,204,207,213, 83, 90,129, 70, 87,169, 84, 30, - 60,120,240, 96,247,117,235,214,137,189,189,189,107, 56, 58, 58,182, 2,128,254,253,251,215, 48, 53, 53,197,193,131, 7, 53, 74, -165,242,224, 55, 84,124, 58, 52,107,214, 12,233,233,233,136,136,136, 8, 44,243,222, 52, 26, 43,185,173, 45, 63,233,214, 45, 93, -114,122,122,165, 14, 29, 58, 16, 29,195,128, 71, 8,210, 50, 51, 17, 21, 25, 9,115,115,115,242,242,205, 27,249,230, 41, 83, 78, -215,168, 91, 87, 80,176, 34, 81, 31,156, 59,119,206, 8,121,243,178,202,252,174,130,149, 59,151, 16, 50,106,242,228,201,167, 15, - 30, 60,100,150,152,148, 24, 38, 17,139, 25,185, 92,234, 56,124,216, 68, 65, 70, 70,198, 80, 74,105,142,190,246,210,211,211,241, -225,195, 7,200,100, 50,136,132, 66,112, 74, 5,216,220, 28,168,210,146,193,215,106, 32,102, 89, 88, 26, 73, 80,201,206, 14, 46, - 54,214,122,217,124,119,243,106,225,196,247,162,238,194,213,205, 60, 32, 54,150, 67,108, 34,199,196,243,183,243, 71,163, 34, 96, -209,114,125, 72,150,181,147,147,211, 95,135, 15, 31, 22, 37, 39, 39,227,197,139, 23,129,148,210, 76, 66,136, 9, 0, 46, 52, 52, -244,122, 72, 72, 72,143,252, 85,119,229,173, 22, 91,123,234,212,169,206,109,218,180, 97,170, 84,169, 98,156,152,152,232,146,154, -154, 74, 18, 18, 62,157,235,124,241,226, 69,169, 82,169,204,229, 56,238, 52,242,226, 64,149, 27,191,104,230, 0,103,105,192,115, - 76,245,236, 82,185,158,169,117,125,164, 49,207,235, 61, 12, 76,152, 58,115,128,243,166,117, 39, 98, 85, 50,162,222, 71,216,152, - 74, 2,169,106,191,158,229, 77,173,173,173, 17, 26, 26,138,128,128, 0, 68, 69, 69,225,195,135, 15,159, 16,170,113,227,198,225, -192,129, 3,122, 41, 90,198,198,198,171,150, 44, 89,226, 60,125,250,116, 81, 17, 82,132,201,147, 39, 35, 51, 51, 19,187,118,237, -194,228,201,147, 43,220,241, 23, 43,171,170,157, 59,119,246,118,112,112, 64,106,106, 42,236,237,237,209,166, 77,155,158,132,144, - 42,148,210,136, 47,172,250, 19,187,116,233,178, 98,233,210,165,208,233,116, 24, 51,102, 12,222,190,125,123,252,237,219,183, 27, - 92, 92, 92,166,254,252,243,207,118,118,118,118, 24, 56,112,160, 49,128,190,165, 25,177,180,180,244,221,177, 99,199, 80,111,111, -111,158, 86,171,109,119,243,230, 77, 68, 70, 70, 66,163,209,128, 97, 24,188,127,255, 30,147, 39, 79, 78, 72, 77, 77,245,164,148, -190,215, 35, 93,163, 23, 44, 88, 48,106,234,212,169,248,245,215, 95,177,100,201,146,189,102,102,102,117, 27, 54,108,216,104,201, -146, 37,152, 51,103, 14, 92, 93, 93, 97,101,101, 85,107,209,162, 69, 30, 51,103,206,196,166, 77,155,176,120,241,226,189, 0,246, -124, 73, 70,112, 28, 71,252,252,252, 26,172, 95,191,222,161,128,100,241,120, 60, 28, 59,118, 12,207,159, 63,239, 89,202,111,182, -219,219,219,143,115,112,112, 16, 95,187,118, 77,238,234,234, 10,134, 97,116,249, 36,107,179,139,139,203,164,247,239,223,195,219, -219, 27,225,225,225, 7, 41,165, 35, 60, 61, 61,115,103,206,156,105, 36,147,201,204,254, 63, 59,112, 62,143,140, 92,181,108, 14, -158, 60,127,131, 83,167, 68,120,242,228, 9,236,236,236, 32,145, 72, 64, 41,133, 90,173, 70,114,114, 50,116, 90, 53,234,213,169, -138,253,187,253,144,148,148, 12,240, 72,169, 83,110, 8,143, 12, 27,245, 67, 31,220,189,119, 5,191,255,190, 3, 57, 57,185,165, - 12,190,165,168, 94,195, 3, 78,142,182,136,137,141, 1,225,193,250,159,188,215,255,112,215, 97,193,243,174, 95,120,135,162, 48, - 55, 55,223,112,244,232, 81, 43, 47, 47, 47,126,110,110, 46, 56,142, 67,219, 54,109, 48,117,250,116,156, 59,124, 24,238,205, 7, -131,104,228, 96,140,244, 91,245,160, 82, 42, 80,187, 81, 43, 12, 24, 56, 8,209, 81, 81,232,210,163, 31, 84, 42, 69,225, 8,163, - 64,209,210,104,180,176,182,173,132,171, 87,175,242, 49,102, 76,169,115, 76, 88,173, 56, 40,236,189,170,117,134,242, 57, 2,158, - 28,128, 86,173, 69,189,122,139,160,229,172, 96,235, 60, 14, 58,221, 25,100, 37,223,204,115, 99, 88,121, 33, 54, 58, 26, 60,190, -232,229,151,102, 34,151,155,252, 85,141,110, 70, 70, 70,166,163,163,227,159, 1, 1, 1,195,250,246,237,139,171, 87,175,254, 8, - 0,125,251,246, 69, 64, 64, 0, 62,124,248,240,103, 70, 70, 70,230,183, 40,112, 71, 71,199, 94, 94, 94, 94,131,155, 54,109,138, -243,231,207,131, 82,122, 87,175, 7, 91, 40,164, 60, 30, 15, 28,199,129, 0, 72,205,200,192,219,183,111,145,154,146, 2,157, 78, -135,220,156, 28,206,163, 70,141, 28,202,113, 38, 21, 73, 79,209, 21,134, 40, 97,213, 97,193,119, 95, 64,182,162,228,114,121,116, -118, 78,142,141,133,185, 69,182, 88, 44,102,211, 51, 50, 50, 95,189, 12,214,232,217, 57, 20, 32, 52, 36, 36,164,110,124,124, 60, -162,163,163,193,228,102,131,175,214,128,167, 86,160, 99,171,150,144,129, 66, 10, 14, 66, 78, 7, 33, 95,136,236,188,213,121,229, -186, 59, 10,136,126, 81,101,139, 16,146,231, 46, 52, 54,134, 88,110,242,137,194,165, 79,125,146, 72, 36,135, 79,156, 56,225,224, -228,228,132,101,203,150,193,217,217,185, 86,189,122,245, 20,109,219,182,149,217,217,217,161,118,237,218,104,213,170, 21, 46, 93, -186, 4, 0,239,203,201, 63,134, 16,242,221,221,187,119,103,221,191,127,127, 0, 33,132,248,248,248,160,107,215,174,144, 74,165, - 80, 40, 20, 72, 79, 79,199,206,157, 59, 9,165,180, 81,126, 90, 93,165, 82,233, 17, 66, 72,172, 82,169, 28, 88,220,230,129,245, -245, 29,147,210,184, 49,118,246, 78,125, 60,187, 84,174,215,161, 75, 39, 84,117,239,128, 14, 93,162, 1,192,207, 82, 16, 57,120, -245,194,186,167,173, 43, 89,238,185,122,249,218,226, 54,158, 29, 22,248,140,183, 88,225,183, 35, 61, 75,143,134, 12, 28,199,125, - 18, 59,168,248,249, 17, 35, 70,224,216,177, 99,229,230, 35,143,199, 27, 52,126,252,120, 81,209,239, 10, 92,198, 61,122,244, 64, -223,190,125, 63, 33, 90,214,214,214,176,183,183, 71,100,100, 36, 0,164,234, 89,175,166,142, 30, 61,154, 40,149, 74,140, 29, 59, - 22,187,118,237,194,224,193,131,137,191,191,255, 84, 0,211, 43, 90,223,121, 60,222,234,159,127,254,121,214,228,201,147,145,150, -150,134,139, 23, 47,162, 91,183,110, 56,118,236,152,205,197,139, 23, 87,121,121,121,129,207,231,227,252,249,243, 96, 24,166,204, - 88, 95, 34,145,168,151,183,183, 55, 47, 38, 38, 6, 34,145, 8, 77,154, 52, 65,108,108, 44, 20, 10, 5,226,226,226, 48,109,218, -180,143,169,169,169,237,245,125,142, 68, 34,209,244,169, 83,167,226,232,209,163,240,241,241,217, 7, 96,108,102,102,230,128,251, -247,239, 31,253,254,251,239, 17, 23, 23,135,211,167, 79, 99,241,226,197,100,196,136, 17,216,186,117, 43,166, 77,155,182, 23,192, -216, 50, 86, 72,102, 39, 37, 37,153,185,185,185, 33, 49, 49, 17, 57, 57, 57, 56,125,250,180,237,165, 75,151,170, 56, 57, 57,153, -126,248,240,129, 93,190,124,185,120,250,244,233,216,176, 97, 3, 94,188,120,129, 3, 7, 14,160, 67,135, 14, 76,120,120,120,137, - 42, 89,126,200,134,211,150,150,150,215,140,141,141,145,157,157, 93,176,178,116,182,143,143,207,100, 95,223, 60,145, 61, 62, 62, - 30, 35, 71,142, 28, 78, 8,225,150, 46, 93,106, 36, 18,137,160, 82,169,114,255, 63, 59,110,142,229, 0,112,168, 82, 73,142, 43, -231,118,227, 89, 96, 56,158, 5,134, 64, 44,201,155, 4,175, 84, 42,208,168, 94,117, 52,111,210, 12,241, 9,113, 56,120, 96, 55, - 44,173,157,202,108, 71, 40,165, 16, 9, 88,120,212,176,199,225, 3, 59,112,254,226, 13, 28, 56,120,164,112,206,155, 64, 32, 68, -195, 70,205,209,164, 73, 27,132,127,120,143,221,187,127,135,141,109, 37,131,115,240, 11, 81,232, 58, 44,250, 94,140,249,119,104, -211,166, 13, 63, 39, 39, 7, 42,149, 10, 31, 63,126, 68,100,100, 36,204, 45,204, 17, 30, 31,129,246, 70, 90,124,228,178, 16, 26, -248,146, 37,124,225,139,114,165, 65,207,134,128,103, 67, 76, 26, 61,184,244, 74, 0, 10, 99, 83,235, 60,215, 13,195,188,195,166, - 77,165,142,156, 25, 86,119,253,202,181,155,205, 70,143,232, 37,188,122,115, 23,116, 26, 14, 74,157, 25,114, 85, 26,228,106,133, -224,153,117, 3, 82,252,193, 23, 72,208,162, 65,117,156, 62,117, 73, 75, 25,221, 13,189, 51,200,174, 46,152,196,144, 34, 68,235, - 83,143,158,212,196, 82,111,215, 97, 97,199,203,178,199, 14, 29, 58,212,187,101,203,150, 70, 94, 94, 94,110,249, 29,167,246,208, -161, 67, 10,150,101,143, 85,180, 16,139, 71,131,119,112,112,104, 36, 18,137, 6,247,234,213,171,209,168, 81,163,240,234,213, 43, - 28, 60,120, 48,172,122,245,234,101,198, 16,227,139,197,169, 57, 73, 73,230,242, 42, 85, 4, 22, 38, 38,241,151, 46, 94,116,237, -212,185, 51,137,142,142, 70,106,106, 42, 84, 42, 21, 94, 4, 6, 82, 33,159, 31, 75, 76, 77,121,111,158, 63,231,241,197,226,212, - 10, 36, 53,178,156, 85,135,190, 95,170,110, 85,114,176,112, 91,236,243, 83, 85,149, 90, 85, 55, 43, 43,139, 17, 8,133, 66,103, -123,243,168, 10,186, 33,207, 95,191,126,189,119,167, 78,157, 36, 97, 65, 47,192,100,102, 66,147,153, 14, 17,199,194,178, 81, 3, -240,181,106, 64,163,131,147, 7,133, 42,195, 8,254,143,222,232,212,106,117,185, 65, 13, 11,136, 22,175, 24, 49, 16,203,229,144, -152,152, 66, 34,151, 23, 39, 12,164,156,242, 54,234,213,171, 87,199, 22, 45, 90,128, 82,138,157, 59,119, 66,171,213,138,181, 90, - 45, 52, 26, 13,180, 90, 45,178,178,178,112,224,192, 1,108,219,182,237, 62,128,189,122,144, 85, 70, 40, 20, 78,102, 24,198, 86, - 34,145,104,109,108,108, 68,199,143, 31, 47, 12, 55,209,176, 97, 67, 24, 27, 27,171, 9, 33, 90, 0,176,183,183,215,237,219,183, - 79,240,253,247,223,139, 74,178, 87,179, 94,173, 57, 85, 25, 11, 79,169,172,114, 21, 83,235,250,168,234,222, 1, 0,208,185,199, -104, 84,173,238,130,172,148,160, 42, 42,101,100, 31,145, 32,221,226,229,166,184, 87, 50,239,186,163,114,147,110,191, 69,201,203, -251, 75,236, 40,120, 60, 94,169,238, 88,125, 72, 22, 33,132,103,102,102,102, 83, 48,207, 39,191, 3, 70, 66, 66, 2, 66, 67, 67, - 81,179,102, 77,164,165,165,193,201,201, 9, 26,141, 6, 77,155, 54,133, 82,169,196,250,245,235,113,239,222,189,251,200, 95, 25, - 89,206,127,200,220,221,221, 71, 54,106,212, 8, 23, 47, 94,196,147, 39, 79,226,174, 92,185,226,212,166, 77, 27, 84,169, 82,101, - 20, 33,100, 62,165,165,199,224, 43,201,213,215,174, 93,187, 41,147, 39, 79, 70, 72, 72, 8,126,250,233,167,212,152,152,152,211, -199,143, 31, 31,187,120,241, 98, 94,151, 46, 93,144,144,144,128,213,171, 87,179,247,238,221, 91, 3, 96, 89, 57,249,248, 58, 38, - 38,198, 89,165, 82, 33, 45, 45, 13, 12,195, 64,161, 80,224,210,165, 75, 56,112,224, 64, 98, 62,201,122,167,111,250, 26, 52,104, - 80,155,199,227,225,232,209,163, 0,176,144, 82,202, 17, 66, 78,247,233,211, 39,110,249,242,229, 78,243,230,205,195,143, 63,254, - 8,173, 86,139, 95,127,253, 21,243,230,205,187,144, 79,178,202,106, 68,215,217,219,219,143,251,233,167,159,106,205,156, 57, 19, - 1, 1, 1,182, 79,159, 62,109,242,226,197, 11, 84,170, 84, 9,169,169,169, 2, 43, 43, 43,108,216,176, 1, 51,102,204, 56, 9, - 32,229,193,131, 7,131, 62,124,248,224, 75, 41, 93, 93, 78,126,110,119,114,114, 26, 71, 41,165, 10,133, 34,210,199,199,103,245, -202,149, 43, 49, 99,198, 12,188,124,249, 18,153,153,153, 48, 49, 49, 33, 63,255,252,243,200,133, 11, 23, 98,204,152, 49, 52, 55, - 55,119,219,255,191, 91,138,133, 34, 61, 4,172,218, 2, 13,235,213, 68,195,186,149,113,229,230, 51, 0, 64,199,126,109,160,200, -205,198,190,125, 59,241,238,221, 91, 8,132, 66,152, 91,218,235,163, 4, 66,147,245, 26, 25,218, 4,116,242,106,130,110, 93,218, - 99,239,254, 99, 96,116, 90,140, 29, 61, 20,233, 25, 25,216,191,127, 55,194, 63,188,135, 64, 40,132,149,245, 63, 31, 8,181, 44, - 46,242, 31, 79,180,244,112, 63,129,227, 56,196,197,197,225,233,211,167,136,136,136,128,145,145, 17,148, 12,203,253,126,253, 30, - 71,136, 40,150,163,244, 62,101, 10,163, 20,127,110,131,101,227,138, 68,172, 53,179,176,176, 16,171,213, 74, 48,140,174, 72,175, - 66, 0, 2,136, 4,128,131, 99, 85,196, 68,199, 80,149, 74,117,187,204, 17,148, 90,181,225,236,233, 19,147, 91,181,110, 99,221, -173,227, 82,156, 62,179, 8,233, 89, 89, 80,105,133,200, 85,105,161, 80, 1,230,150, 53,208,180, 94,125,196,199,167, 34,232,137, -127,142, 64,173,208,103,162,232,219,205, 11, 70,187,143,158, 52, 7, 50,215,214, 80,135,158, 6,151,147, 88,168,104, 73,229, 22, -176,116,241, 64, 70,174, 26, 39,110, 60, 3, 0,189,183,122, 73, 76, 76, 84, 56, 58, 58, 30,154, 60,121,242,175,207,158, 61,117, - 6,128,103,207,158,197, 38, 36, 36,204, 77, 76, 76, 84, 84,164, 0,139, 68,131, 39, 70, 70, 70,207,170, 87,175, 30,239,237,237, -109,214,167, 79, 31, 88, 91, 91,227,197,139, 23,240,245,245,125,173,213,106,231,220,190,125,187, 76, 87,143, 70,163,137,123,118, -230,140,105,251, 31,126, 48,159,211,179,231,234,201,147, 39,111, 88,182,108,153,208,221,221,157,232,180, 90, 4, 7, 7,211,195, -135, 14,233,182,205,155,183, 94,108,108, 44,120,124,246,172,144, 81,171,227,254,213,149,216,217,217,217,179,123, 87, 79,143, 53, -235, 54, 65,165,204,193,163,128, 11, 72, 79, 79,198,142,157,167, 60,156,157,157, 61, 99, 99, 99,253,245, 37,192,123,246,236,153, -213,188, 81,163, 70,213, 42, 85, 66,112, 84, 4,196, 28, 11, 17,195,128,175, 85,131,199,168, 80,169, 46, 5,225,153, 32,225, 99, - 22, 86, 30,253, 51, 68, 31, 98, 92,171,123, 47, 44,139,205, 4, 33, 4,107, 91,214,133,216, 68, 14,145,177, 28, 19,255,186, 89, - 72, 12,206, 47,155, 7,177, 92, 14,183,230,109,244,104,116,169,194,196,196,228,105,112,112,112,211,186,117,235, 98,214,172, 89, -136,140,140, 4,199,113, 72, 76, 76, 84, 37, 36, 36,196, 37, 39, 39, 71, 34, 47,254,207, 46,170,231, 72,128, 97, 24,219,103,207, -158, 1,128, 8, 0,110,220,184, 1, 71, 71, 71,152,153,153, 33, 43, 43, 11,115,230,204,145,252,242,203, 47, 0,128,167, 79,159, - 10,139, 18,148,226, 8,126, 22,186, 38, 35,155,166,211,156,231,125,210,152,231,245, 58,116,137, 65,231, 30,163,112,237,252, 94, -220,188,114, 29,150,130,200, 8, 24,103, 95, 74,137, 72,201,138,205,117,223,238,209,120, 44, 63, 33,247,202,246,169,223, 91,240, - 29, 28,184, 19, 62,219, 50, 51,202, 74,171,187,187, 59,236,236,236, 10,231,104, 9, 4, 2,140, 25, 51, 6,148, 82,189, 72, 86, -126, 62,114,166,166,166,201, 42,149,202, 78, 42,149,226,227,199,143,120,255,254, 61,194,195,195, 11, 67, 7,112, 28,167,155, 61, -123,182,112,202,148, 41,248,253,247,223,113,251,246,237,251, 0,150, 82, 74,245, 29,172, 13, 29, 56,112,160,137, 70,163,193,145, - 35, 71, 24, 0, 61, 78,156, 56,241,180,105,211,166,130,174, 93,187,154,108,221,186,117, 40,128, 93, 21,168,238,198,166,166,166, - 34,173, 86,139,173, 91,183, 34, 38, 38,198,147, 82, 26, 74, 8,217, 62,112,224,192,109,117,235,214,173, 30, 18, 18,242, 54, 39, - 39,103, 34,165, 52, 72,143,182,104,116,147, 38, 77, 78,112, 28,231,218,169, 83, 39,227,117,235,214,153,190,121,243, 6,206,206, -206,224, 56, 46,184,162, 91, 88,189,125,251, 54, 52, 33, 33,193,163,125,251,246,184,116,233,146, 31, 33,100, 21,128, 95, 39, 76, -152,224, 20, 21, 21,133, 70,141, 26,193,210,210, 18,111,222,188,201, 78, 72, 72,216, 6, 96,126,121,177,190, 40,165, 31, 0,204, - 37,132,212,223,190,125,251, 96, 75, 75,203, 22, 47, 94,188,192,221,187,119,177,102,205, 26,252,242,203, 47,104,219,182, 45,102, -205,154,149, 2, 96,112,190, 75, 91,175,184,121, 5,202, 22, 0, 52,105,210, 36,222,215,215, 23, 99,199,142,165,127,252,241,199, -198, 67,135, 14, 77, 31, 58,116,104, 97, 31, 56,114,228, 72,122,240,224,193,145,101, 45, 4,248,135,160,211,106, 53, 48,181,172, -138,156,140,104, 36,199, 4,192,200,196, 30, 93, 58, 52,128, 66,169,193,185,179, 39, 17, 20, 28, 8, 30,143, 7, 59,251, 74, 48, -183,176, 70, 88,216, 91, 0,120, 85,182, 77, 45, 76, 44, 42, 35, 39, 51, 6,154,164,103,144,201,109, 49,234,135, 62, 80, 40,181, - 56,117,250, 36, 66, 66,130,192,231,243, 97,239, 80, 9,102,230,121, 54, 9, 45,211,166, 1, 40, 57,158, 86,185, 68,139,207,231, -223,186,124,249,114,255,230,205,155, 11,222,189,123,135,119,239,242, 6, 55,233,233,233, 12, 1,251,103, 98,208,153, 33,101,144, -128, 78, 5,171, 51,138,238, 93, 40, 55, 49,137,123,243, 58,212, 46, 61, 45, 17,129,207,239,225, 93, 88, 48, 34,194, 67,161,213, -170,192,231,241,192,227,243, 80,185,106, 29,220,187, 31,160, 81, 49, 76, 64,105, 54, 1, 32, 45,237,125,182,220,174,198,160, 21, -203,230,159,159, 49,103,137,108, 64,255,223, 17,244,230, 21,114, 24,123, 80, 10,216, 91, 25,163, 97,181,159, 17, 23,159,140,163, -123,183, 42, 56,173,118, 88,209, 24, 90, 37,217, 4, 0,187, 20,212,222,182,115,239,152, 93, 7, 14, 47,153, 51,101,188,221,247, -125,135, 65,156,246, 10,186,248,103,168,218,180, 27,136,196, 28, 23,175,222,132,255,211, 87,137, 28, 75,151,216,165,226,143,242, -108, 22,115, 33, 62,248,248, 49,193,185, 72, 20,120,103,137, 68,250,160, 28, 82,213,169, 88, 92,161, 79, 34,206,243,249,188,198, - 43, 86,172,208,217,217,217,105, 67, 66, 66,240,251,239,191,115,207,158, 61,187,202,227,241, 54,199,199,199,171,202,179,105,163, -211, 5, 30,246,241,169,221,172,111, 95, 58,100,202, 20, 5, 36,146,169,171,215,174,245, 73, 78, 79,119,164, 28, 7, 27, 75,203, -216,213,243,230,249,246, 31, 56, 48,253,229,189,123,178,128, 51,103,100, 98,134,121, 86, 94, 58,191,145,223,187, 84,155,177,177, -177,254,238,110, 46,216,183,107, 29,180, 90, 53, 18,226,242,132,172,148,212, 76,148, 69,178,138,219,204, 95,117,213,119,225, 47, -191, 60, 92, 56, 99,186,125,187,142,157, 16, 29,248, 2,218,180,100, 16, 29, 3, 33, 17, 32, 55,201, 8, 73,137, 57,152,123,240, -120, 82,142, 66,209,183,120, 39, 81, 90, 58, 11, 20, 43,137,169, 9, 68,198,114,136,229, 38,159,168, 88, 82, 83, 83,136,141,229, - 16,136,197, 37,169, 52,159,217,204,201,201,233,215,191,127,255,160,199,143, 31, 91,140, 29, 59, 22,173, 90,181,122,174, 84, 42, -189, 40,165,217, 95,154,159, 2,129, 32,169,113,227,198,182, 66,161,144, 25, 51,102,140, 32, 37, 37,165, 48,178,122, 78, 78, 14, - 46, 93,186,132,154, 53,243, 86,245,191,124,249, 18,117,234,212, 41,213,230,216,159,131,227, 0, 44,155, 57,192,121,245,195,192, -132,169, 0,252,170, 86,175,132,155, 87,174,227,238,205, 0,159, 22,117,185, 77,221,135, 53, 93,110,228, 53,112,142, 71,227,177, -124,185,169, 3,246,159, 58,201, 15,125,182,123,165, 66, 17,236, 6, 96,118,105,233, 36,132,128, 82,250, 89, 40, 7, 62,159,143, - 67,135, 14, 85,244,222,143,239,218,181,107,194, 79, 63,253, 36, 74, 72, 72,192,235,215,175,145,155,155, 11,169, 84,138, 43, 87, -174, 48, 0,182, 30, 58,116,232,202,161, 67,135,186, 34, 47, 46,206,141,138,212, 79, 99, 99,227,201, 93,186,116,193,235,215,175, -241,228,201,147,147,148,210, 32, 66,200,201,119,239,222, 13,106,219,182, 45,246,238,221, 59,185, 52,162, 85,154, 77,142,227,138, -198, 76, 74,203,175,187,129, 0, 90, 84,180,220,243, 39,240,182, 6, 0, 43, 43,171, 24, 59, 59, 59,211,192,192, 64,184,184,184, - 64,171,213, 54,175,104, 93,202,204,204, 92,183,121,243,230, 63, 70,143, 30,141,229,203,151, 15, 59,126,252,248,176,238,221,187, -195,219,219, 27,123,246,236, 65, 80, 80,144,159, 62,219,138,149,116,239,249,196, 49,168,118,237,218,147, 42, 85,170,132, 53,107, -214, 32, 56, 56,216,119,217,178,101,243,130,130,130, 80,179,102, 77,201,171, 87,175,152, 47,105, 67, 0,192,212,212,212, 84,167, -211,225,204,153, 51,143, 40,165, 51, 8, 33,182, 27, 54,108, 24, 44,151,203,145,150,150,166, 12, 9, 9, 25, 74, 41, 61,251,255, -221,214, 81, 66, 22,140,253,113,234,246, 31,199, 14,149, 54,105,220, 16,138,172, 88, 40,115, 18,161,200,254,136,205,187,174,130, - 16, 30,108,108, 28, 96,107,239,140,168,168,104,220,191,112, 81,147,171, 80,110, 16,235, 56,191,178,109, 78,201,179,217, 40,207, -166, 34, 55, 9,202,156,164, 66,155,182,182,142,249, 54,163,112, 47,224,162, 74,153,155,187, 78, 67,201,111,255,228,189,255, 39, -163,194,123, 29, 22, 69,122,122,250,180,241,227,199,123,205,157, 59,215,138, 97, 24,190,165,165, 37,162,162,162,152, 63,255,252, - 51, 45, 39, 39,103,218,151, 36, 72, 32, 20, 6,185,215,168,233,245,253,247,223, 51,189,122,245, 20, 13, 31,221, 85, 96, 99,107, -139,204,140, 84,132,189,126,129, 55,175,158,193,189,102, 3, 44, 94,182, 30, 48, 55, 47,119, 35,201,156,196,176, 91,114,187, 26, - 61,150, 46,156,125,172,181,231,119,166, 53,235, 52, 16, 53,116, 51,131, 86,199, 32, 54, 54, 22,103,207, 4,106, 67,158,222,205, -226, 24,205,160,220,100,253,182,224,185,157, 55, 42,218, 81,207,142, 28, 90,181,122,243,172,173, 59,246,205,153, 59,117,172,113, -219, 54,157, 17,124,125, 47, 78,158, 63,150,171, 82,107, 86,139,248, 88, 27,156, 66, 21, 21,205, 3,149, 74,165, 45,190, 32, 74, -165, 82,105,191,182,176,247,236,217,131,196,196, 68, 77,100,100,228,101,134, 97,142,151,182,217,115, 73,216, 68,169,166, 47, 33, -215, 23,182,105,211,117,225,149, 43,210,145, 63,255,172, 25, 54,124,248,108,168,213, 90,136,197, 84, 96,108,204,131, 68, 34,124, -121,239,158,108,227,132, 9,150, 68,163,185,182,183,140,176, 1, 37,224,155,175, 58, 44,162,104, 97,228,216, 25, 80, 22, 81,180, - 30, 60, 9, 67, 69, 20,173,252, 7, 35,154, 16,210, 98,234,130,133,167, 6,117,233,232, 81,215,181,178,196,166, 74,101,200,237, -237,145,154,156,140,123, 79,222,232,150, 29, 59, 21,146, 79,178,244,138, 43,195,113, 92,222, 36,119, 0, 29,167,205, 5,225,243, -129,252, 48, 14, 5, 43,135,170, 52,109, 5, 34, 16,128,165, 28,212,106, 53,213, 35,157,177,132,144,126,195,134, 13,187,113,254, -252,121, 94,151, 46, 93, 26,158, 62,125,154,251,154,186,163,211,233,156,243, 9, 87,150,145,145,145, 96,212,168, 81,208,233,116, - 80, 40, 20,200,204,204, 68,104,104,168,122,192,128, 1,146,124, 2,161, 27, 52,104, 80,185,237,199,186, 19,177,170,153, 3,156, - 55, 89, 10, 34, 7,103,165, 4, 85,177, 20, 68, 70,180,168,203,109, 90,119, 34, 86,181,116,134,249,138,148, 72,255,176,132,220, - 43,219,247,159, 58,201, 31,209,167, 31,235, 44,127,235, 35,181,165,127,118,232, 89,110,163,246, 89,112, 82,125, 72, 86,113,100, -103,103,207, 91,180,104,145,119,122,122,186,115,215,174, 93, 69, 30, 30, 30,120,248,240, 33,206,159, 63,207, 60,120,240, 32, 38, - 55, 55,119, 62,165, 84, 5,224,234,151,228,105,141, 26, 53,170, 8, 4,130, 2, 87,218,150,252,175,183,156, 62,125,122,208,216, -177, 99, 81,185,114,229,218,132, 16, 9,173,192,115, 68, 41, 45,244, 50,124,227,142, 34,124,227,198,141, 78,246,246,246,228,210, -165, 75, 12,159,207,175,176,114, 67, 41,221, 67, 8,105,174,211,233,126, 28, 55,110, 28, 60, 61, 61,193, 48, 12, 14, 30, 60,136, -221,187,119,251, 85,100,239,214,210, 16, 22, 22,246, 44, 38, 38,166,221,236,217,179,177,102,205,154,121,179,103,207, 70, 76, 76, - 12,194,194,194, 94,124,141,221,172,172, 44,101,116,116,180, 81,203,150, 45,155,184,184,184,132,140, 28, 57,178,206,216,177, 99, -225,231,231, 71,111,223,190,221,159, 82,122,233, 95,209,129,191,126,155,122,160, 94, 53,187, 43,203, 86,172,251,197,173, 90,149, -159,198,140, 26,200,175,225, 94, 7,185,153,177,176,178,182,131,115,165,170, 72, 78, 74,193,229,203,151,216,148,148,140, 61, 44, -143, 44,125,251, 54, 53,254,107,108, 58, 57, 87, 69, 82, 82, 18, 46, 94,188,200,102,164,103,237,132,142,183,236, 85,100,122, 34, - 12, 40, 87,201, 42,105, 50, 60,209,103,226,109,254,202,195,141,121,225, 29,242, 84,174,244,244,244,105,148,210, 20,125,153, 57, - 41, 30, 68,109,192, 0, 17, 46, 92,168, 15,157,174,133,185,137, 73, 71,202,113, 77, 27, 52,104, 32, 31, 56,112, 32,215,166, 77, - 43,177,169,169, 41,169, 93,187,110, 86,102, 70,134, 37, 0, 80,128, 45,143, 69, 23,108, 42, 45,224, 11, 59,177,172,182, 94, 94, - 90,203,223, 84, 90, 31,102, 94,205,142,216, 8, 56, 44,230, 17, 50,138,163,116, 47,195,195,210,240, 68,154,252,165,163,167, 98, -110,191,130, 45,103,230, 85,116,148, 87,212,117,200,227,241, 15, 56, 56, 56,204,143,141,141, 77,162,148,178, 95,170,108, 20,108, -193,211, 99,250,116, 93,227,239,190, 99, 44, 43, 85,226, 40,165,108,196,179,103,228,193,217,179,194, 7,103,207, 74,117,106,245, -173, 19,148,134,235, 99,211,209,209,209,247,220,185,115,122,207,189,234,217,179,231,171,130,121, 91,250,230,167, 91, 53,231, 43, -213,170, 56,125, 87,173, 74,158,123, 58, 60, 34, 30,225, 17,113, 87,223,135,199,118,249,146, 50, 42,186,169, 52,201, 15,225, 64, -245,216, 84,186,184, 77,107,107,235,167, 2,129,192,185, 34, 15, 44,203,178,241,201,201,201,141,244, 76,231,144, 42, 85,170,248, - 69, 69, 69,157, 98, 89,118,198,183, 80, 8, 9, 33,173,248,124,254, 69,150,101,101,197, 21,175, 2, 50, 70, 8,113,149, 72, 36, -159, 76,134, 47,203,230,234,133,117,127,105,217,182,109,159, 7,119,239,158,158,179, 34,228,147,121, 67, 83,251, 88,142, 30, 50, -105,218,111, 71,182,110,252,121,211,233,180, 61,229,170,205,118,118,183, 1,184, 23, 16, 46, 61,242,178, 73, 57,202,176,212,196, -196,196, 23,192, 32,142,227,172, 9, 33, 41,148,210,163, 69, 72,214, 23,231, 39,159,207,247,171, 85,171,214,180, 55,111,222, 28, - 97, 24,102, 76,145,235,215,184,185,185, 77,138,140,140,220,162,211,233,230, 84,224,121, 55,109,219,182,109,250,198,141, 27,121, - 51,102,204,128,191,191,191, 37,165, 52,253, 27,149,187,189,133,133,197, 31, 44,203,122, 80, 74,207,101,103,103,207,163,148,230, - 86,212,102,126,136,135, 65, 78, 78, 78,115,220,221,221,221,223,190,125, 27, 20, 23, 23,183,186,184, 26,244, 21,233,244,238,221, -187,247,185, 13, 27, 54,144, 74,149, 42, 33, 38, 38, 6,211,167, 79,167,103,206,156,233, 73, 41,189,240,165,109, 50, 33,100,193, -132, 9, 19, 86, 12, 31, 62,188,144,208,250,250,250,210, 11, 23, 46,140,164,148, 30,248,210,118,254, 91,170,247,181,171,217, 84, -163,124,118,101,131,186, 30,253,127, 24,214,135, 60,120,242, 22, 15, 31, 4, 32, 54, 62,254, 52,199,227,205, 15, 11, 75,121,251, -181, 54, 3,158,132,225, 97, 64, 0, 77,136, 79, 56, 1,202, 95,248, 42, 60, 57,252,255,235,222,255, 27, 84,173,146, 92,135,228, - 11,183,194,170,112,133, 33,250, 68,171,117,116,116, 68,106,106,115,169, 64,208, 70, 34,145,120,241,248,252, 91,105,201,201,211, -245, 37, 90,255, 68,197,254,172, 67,119, 35,226,210,182, 36,248, 18,155,197, 39,178,127,137,205,138,216,208,215,102,105,155, 74, -115,106,117,188, 21,195, 60,221, 68, 75,207,131,226, 54,157,157,157,127,228, 56,174,138,190,105,226,241,120, 17,177,177,177,187, -190, 36, 63,221,221,221,233,187,119,239, 64, 41, 37,223,178,220,255,137,186,244,191,100,243,192,250,250,142, 53,235,213,154, 19, -252, 44,116, 77,190, 91,177, 16, 75,167, 90,154,180,233,208,126,209,189,155,183,151, 47,222,148,150,253,175, 76, 39, 33,132, 71, - 43,186,186,229, 11,109, 22, 4, 9,173,168, 77,145, 72,180,189, 89,179,102, 63, 62,124,248,240, 15,134, 97,198,253, 47,214, 79, - 66,136, 55,159,207,159, 93,163, 70,141,134, 97, 97, 97, 47, 88,150, 93, 83, 22,201,170,192,224,119,126,149, 42, 85, 38,138, 68, - 34, 73, 78, 78, 78,122,124,124,252, 34, 74,233,241,127,183,252,172,237,110,213,132,210,194,160,219, 43, 67,223,165, 62,254,102, - 54, 41,199,114,148,191,226, 77,120,202,243,255,239,114,255, 79, 39, 89,165,169, 92,130,255,175, 68, 20, 16,165, 50, 17, 31, 31, - 3, 32, 6,192,137,127,215,204,212,135,100, 85, 80,110, 76,252,119,176, 81, 28,249, 68, 42,224, 91,216, 42, 78,154,254, 73,188, -125,251,150, 24, 30,249,127, 63,252, 48, 35, 40, 30,192,244, 38, 94,159,159,203, 39, 87,115,188,122,253,235,211,249, 37, 36,235, - 75,109,126,233,134,207, 90,173,246, 39, 66,200,204,138,172, 86,252,111, 67, 62,169,186,240, 15,216, 93, 5, 96,213,191,251,253, -191,122,155,250, 20, 64,207,127,119,155,255, 99,117,178, 98,155, 74, 27, 96,128, 1, 6, 24,240,111,221,168, 43, 13,185, 96,128, - 1,255, 94, 40,170,106, 21, 37, 94, 4, 64,167, 82, 30,228,235, 21, 48,222,233, 11, 26,138,235, 6,155, 6,155, 6,155, 6,155, - 6,155, 6,155, 6,155,255, 91, 54,255, 91, 73,214, 39,228,170,232,113,193,170,167,127,226, 5,160,147,193,166,193,166,193,166, -193,166,193,166,193,166,193,166,193,230,127,243, 11,192,184,210,142, 13,174, 67, 3,254,113,108,238, 75,156, 0, 96,202, 41, 26, -247, 79, 92,111,128, 1, 6, 24, 96,128, 1,255, 74, 80, 74,119,150,230, 58,252,151, 19, 45, 66,136, 35,242, 2,237,185, 1,120, - 3,224,110, 69,150, 43,151, 96,207, 26,192, 64, 66,200,128,252,155, 61, 1,224,120,121,161, 40, 10, 32,147,201, 18, 85, 42,149, - 45, 0, 72,165,210, 36,149, 74, 85,116, 47, 3,130,207,183, 71,161,121,127, 83,250,196,214,170, 85,171, 38,170,213,106, 91, 61, -254, 62,147, 82, 26,196,227,241,130,229,114,249,205, 55,111,222,156,175,200,189,119,232,208, 97, 36,159,207, 95, 9, 0, 44,203, - 46,184,121,243,230,190,127,176,220,154, 87,114,180,223,171,213,105,153,196,228,180, 69,165, 45,221,222,214,147,248, 10, 8,230, -228,127, 94, 61,241, 92,217, 33, 44, 42,122,125, 25,233,107, 34, 20, 10, 39,219,217,217,117,139,141,141,125, 10,224,103, 74,105, -185, 81,141, 93, 92, 92,126, 16, 8, 4,195, 88,150,173,198,231,243,195, 25,134, 57, 20, 29, 29,125,192,208,140, 24, 96,128, 1, - 6, 24, 80, 30,217, 42,233,251, 10, 17,173, 90,214,196,158, 2,131, 65,208, 25, 20,215, 8,112,244,117, 10,253,168,239,239,189, -107, 17,157,142,201,251, 79, 17, 15,236,165,247,188,157,222,222,222,206, 83,166, 76, 65,171, 86,173,240,240,225,195,150,123,246, -236, 25,205,231,243,131, 56,142,187, 5,224, 33,165,122,133, 82, 48, 6,240, 61,128,161,221,186,117,235,180,114,229, 74,126,157, - 58,117,160, 84, 42,113,251,246,237, 54,171, 87,175,222, 64, 8,185, 14,224, 48,128,179,101,197,134, 81,169, 84,182, 5,156,137, - 16, 98,219,191,127,255,199, 69,201, 85,254,254,106,132, 82,250,128, 16, 18,192,178,236,195, 19, 39, 78,196,212, 34,164,249,248, - 42,162, 63,167,125,208,124, 22, 51, 73,173, 86,219,158,249,109, 21, 4, 18, 9,212,217, 89,104, 57,234,239, 85,160,215,126,153, - 3,194, 49,224,131,166,123,173,216, 16, 4, 32, 56, 62, 62, 62,200,211,211, 51,162,162,133,204,231,243, 87, 94,190,124,217,129, - 82,138, 46, 93,186,172, 4,240,143, 16, 45, 66,136,164, 69,147, 6,183,206,157, 60, 34,205, 73, 75, 68,215,239, 7, 29, 34,132, -140,164,148,158,252,132, 52,117, 39,118, 68,128, 57, 19, 86, 29,230, 3,192,182,249, 67,127,222,208,133,108,154,126,133,126, 36, -132,120, 1,133, 91, 54,253, 70, 41,189,181,173, 59,177, 3, 31,115, 39,172, 58, 76, 0,224,247,249, 67,231,108,235, 78, 54, 78, -188, 88,177, 85,149,132,144,137, 35, 71,142,220,180,114,229, 74,190,131,131, 3,226,226,226,186,214,174, 93,187, 6, 33,164,118, - 89,147,136,171, 84,169,114,172,125,231,222, 85,251, 14, 24,108,100, 99,109,129,248,132, 20,211, 99, 71,254, 24, 95,165, 74,149, -110, 17, 17, 17,131, 12,205,136, 1, 6, 24, 96,128, 1,165,244, 59, 95, 30,222,161,177, 35,145,229,106,209, 91,192, 39, 63,180, -109, 94,167,227,144,238,109,121,181, 61,170,227,213,203,208,239,206,222,124,180,186,182, 29,239, 6,195,210, 3,198, 34,156,121, - 22, 95,246, 74, 24, 29, 3,193,213, 51,135, 1, 0, 19, 71, 15,229, 63,126,252,184,122,227,198,141, 11, 3, 2,118,236,216, 17, - 29, 59,118, 36,219,182,109,107,112,245,234,213, 6,187,119,239,214, 18, 66,246,150, 19,132,110,178,155,155,219,234, 77,155, 54, - 73, 60, 61, 61, 33,145, 72, 10,207,201,229,114,244,236,217, 19, 61,123,246,228,199,199,199,119, 57,119,238, 92,151,223,126,251, - 77, 67, 8,153, 77, 41,221,162, 79,230, 45, 90,180,168, 73, 9, 95, 95, 38,132,188,103, 24,230, 69,253,250,245, 99,106, 18, 82, -253,167,238,173,174, 77,108,237,110, 92,154, 29,129, 88,140,253, 35,243,250,234,162, 68, 43,226,230, 37,200, 77, 77, 82,141, 76, - 76,130, 0, 4, 3, 8,162,148, 6,191,127,255, 62,212,131,144, 6, 45, 44,120,123,119,167,177,245, 43, 64,182, 16, 19, 19, 3, - 51, 51, 51, 89,251,246,237, 19, 8, 33, 75,110,221,186,181,243, 27,215,169,230, 75,230, 76, 20,165, 71, 6,225,227,235, 7,152, - 57,160,141,209,244,205,127, 45, 7,112,178,236,138,200,227,253, 22,192,249, 76,207,219,140,119, 81,106,106,170, 39, 0, 88, 89, - 89,137, 1,220, 90,255, 8,221,103,180, 38,228, 43, 42,186,136,207,231,111,221,191,127,255,216, 31,126,248, 33,111,235,136,123, -247, 32,151,203,177,108,217,178,202,179,102,205,242, 69, 41, 27, 1,187,184,184,252,208,190,115,239,170, 27,215, 44,175,157,157, -150,169,222,177,245,248, 19,199,186, 53,121, 19, 38,207, 50,217,168, 85,219,187,184,184,252, 96, 80,182, 12, 48,192, 0, 3, 12, -168,136,154, 85, 46,209,170,105, 67,246,181,109,228, 62,112,136,119, 27, 73,189,186,117, 32,146,252, 29, 40,186,113,147, 38,104, -220,164, 9,207, 39, 39,187,243,227, 39,207, 58,255,121,245,161,186,166, 13, 57,254, 38,153,142,212, 55, 97, 5,155,210,174,252, -222,174, 67,110, 70,146, 20, 0,140,205,109, 85,243,207,124,188,217,186,117,107, 56, 59, 59,139,110,220,184, 49, 6,101,199, 75, -153,255,230,205, 27, 9,159, 95,118, 60, 84, 71, 71, 71,244,239,223, 31, 53,107,214, 20,183,111,223,126, 62,254,222, 14,227, 19, - 72,165,210, 36, 66,136, 45, 0, 88, 90, 90,178, 75,150, 44,121, 65,105,161,103,144, 82, 74, 31,240,120,188,135, 28,199, 61, 58, -123,246,108,108, 29, 66,108,123, 52,174,121,119,226,240,254, 70,244,207, 13,165,146, 4, 85, 86, 86,137,223, 27,201,141,147,101, -198,198, 65, 18, 35,105, 48,128, 32, 0,193, 78, 78, 78,161,117, 8,113,110, 81,179,202,213,109, 51,134,154,232,147,151,141, 27, - 55,174,225,229,229, 37,101, 89, 22,185,185,185,248,253,247,223,205,100, 50,153, 89,183,110,221, 22, 3, 40,172, 0,181, 9,169, -215,207,145, 63,110, 73, 28, 51,233, 11,136,140,121,219,150, 77, 34, 55,251, 45, 54,109,210,162, 45,222,222, 58,136,180,180,108, -100,102,228,128,227,184,207,118, 24,158,120,145, 38,110,235, 73, 86,111,155, 55,116, 46,225,241, 72,131, 62, 63,163,151,125,230, - 84, 66,200, 75, 0, 66,177, 88, 92, 88, 15, 9, 33,142,117,235,214, 93, 93,253,187,182,248,125,193,112, 80,142,163, 0, 86,235, -171,102, 17, 66,108, 77, 76, 76,206, 94,189,122,181,121,211,166, 77,241,240,225, 67,124,248,240, 1, 19, 39, 78,212, 76,154, 52, - 73, 52, 98,196, 8, 50,115,230,204, 41,132,144, 63, 41,165,247, 63,123, 16, 4,130, 97,223,247, 29, 36,206,201,200, 82,105,212, - 90,141,165,181, 57,167,206, 85, 41, 82,210,179, 84,131,134,254,168,121,249,252,209, 48, 0,159, 17,173,175,201, 79, 3, 12, 48, -192, 0, 3,244, 70, 83, 0, 54, 0,146, 1, 60, 41,118,140,252,207, 40,225, 56, 5,121, 94, 41,171, 34,182, 82,144, 55,237,199, - 6,121, 49, 62, 31, 3, 72,255,154,196,149, 22, 21, 30,200,143, 12,159, 31,160,184, 32, 80, 49, 41, 66,180,232,155,100, 10, 38, - 45, 28,108,234,123,176,217,159,111,159, 68,164,230,200, 84,178,136, 9, 15,197,200,233,203,240, 38,185,244,136,220,222,181,136, -206, 76, 12,129,137, 8, 16, 25,153,171,135,248, 93, 9,104,210,164,137,106,190, 39,207,219,119, 91,158,210, 53,115,220, 80,180, -156,241,231,149,240,240,112,198,209,209, 17, 63,252,240, 3, 40,165, 61,202,184,185,196,236, 39, 1,182,175,123,180, 66,179,196, -146,167, 73,133,133,133,225,206,157, 59,136,142,142, 70,181,106,213, 48,102,204,152, 36, 74,169, 93,105, 54,187,118,237,122,251, -183,223,126,243, 92,187,118,109,224,254,253,251, 91,151,230,110,170, 77,136,113,131,202,246, 79,118,251,206,173, 70, 46,237, 21, - 42,162,223,193,220, 95, 73, 74, 32,121, 52, 62,254,239,188,251,181,134, 3,140,205, 76, 96,108, 42, 79, 28,113,245,105,161,146, -149,255,254,166, 49, 33,166,206, 14, 86, 79,143,174, 95,228,196,187,121, 76, 42,218,241,128,148, 71,178,218,183,111, 31,176,114, -229, 74,139,248,248,120, 92,191,126, 29,149, 43, 87,134, 66,161,192,186,117,235, 18,238,222,189,235,152,159, 94,187,102, 53, 93, -131,126,159, 53,202, 76, 52,230, 23, 73, 69, 43,146, 72, 32,216, 18,112,249,216, 36, 51, 9, 69, 70,252, 7,188, 15,125,137,199, -175, 34,116, 7,174, 5,177, 89, 74,181, 55,165,244,102, 73,191,155,220,134, 84,191, 21,111,115,238,242,237, 39,238, 14, 14, 14, - 24, 63,126, 60, 62,126,252, 8, 74, 41, 56,142, 43, 92,165, 49,127,254,124,212,168, 81, 3, 35, 7,247, 82, 72,210,158,181, 63, -247,138, 62,213,179,130,215,117,117,117,189,122,235,214, 45, 59, 39, 39, 39,220,189,123, 23, 31, 63,126,132,189,189, 61,110,220, -184, 1, 63, 63,191,253, 19, 38, 76, 24,176,114,229, 74,233,144, 33, 67,226,174, 92,185, 82,169,248,156,186,202,149, 43,135,158, -187,114, 87,126,243,244,213,247, 22, 38, 70, 48,182,181, 2, 95,110,170,162, 32, 10,123, 91, 11,209,160,222, 29,171, 71, 70, 70, -122, 20, 43,255,175,202, 79, 3, 12, 48,192, 0, 3,254,198,133, 11, 23,168,183,183, 55, 41,120, 47, 78, 33, 8, 33,231,243,249, -128, 6,128,184,200, 49, 8, 33,231,243,213,144, 79,142,125,124,124,230,251,250,250,190, 44, 56, 46,184,102,222,188,121,117,252, -252,252, 86,181,108,217,242,104, 64, 64,192, 18, 0,239,190,150,104,149,166,114,233, 53, 71,139,137,125, 12,145,123, 55, 8, 89, - 29,116, 41,111,192,101, 68, 1,198,246, 80, 18, 57, 82, 19,162,240,250,238,201, 60,110, 88, 94, 38,190,166, 66, 66,200,141,208, -208, 80,188,126,253, 26, 49, 49, 49, 48, 50, 50,250,236,186,123,247,238, 65, 38,147,193,193,193, 65, 63,201, 78,243,233,126,172, - 65,141, 93, 33,111,233,137,148, 33, 63,225,198,141, 27, 72, 74, 74,130, 72, 36,130, 88, 44, 6,195, 48,229,218,227,241,242,118, -252, 45, 80,177, 74,186,166, 61, 33, 2,103, 75,249,185,109,139,167, 85,225, 61, 56, 47, 84, 70,191, 67,188,138,133,185, 62, 74, -158,220, 24, 70,198, 70, 9, 50,153, 81,113,146,245,182, 49, 33, 66, 99,185,244,220,222, 21, 51,237,249,207,111, 72,149,239,130, - 32, 42,193, 70,231,206,157,199, 3, 88, 76, 41,205,104,223,190,189,221,202,149, 43, 45,226,226,226,240,234,213, 43, 28, 63,126, - 60,153,201,187, 81, 66, 41, 93, 10, 0, 45, 9,145,186,216,152, 95,217,242,203, 52, 19,220, 58, 38,198,152, 95, 42, 92,145,204, - 60,122, 94,232, 55, 98,194,164, 77,211,122, 34, 55, 91,137,195,215,158,227,242,179,247,189, 0,220, 43,107,222,219,150,123,244, - 29, 33,164, 99,223,190,125, 95,220,185,115,199,122,247,238,221, 96, 24,166,196,215,238,221,187,113,253,238,179,169,148,234, 77, -178, 28,171, 84,169,114,253,209,163, 71, 54, 70, 70, 70,184,118,237, 26, 50, 50, 50, 10,149,172,145, 35, 71,146,140,140,140,193, -191,255,254,123,191,200,200,200, 53,119,239,222, 77, 69,222,118, 80,159, 84, 4, 62,159,255,158, 97,180,181, 28, 60,170, 11, 6, -244,108,219, 54, 39, 53, 8,114,171,250,120, 16,248,254, 92, 70,122,170,146,207,231,191, 47,122,253,183,200, 79, 3, 12, 48,192, - 0, 3, 42, 76,104,206, 83, 74,123, 20, 37, 78,197, 9, 87,193,231,130,235,124,125,125,123, 20, 37, 97, 0,224,231,231,183,170, -200,177,226, 91,164,173,188,201,240,237, 9, 33, 20, 64,251,146, 46, 82,191, 58, 5,245,235,179, 16,185,182,134,184,102, 47,240, - 93,219, 32, 58,232, 22, 2, 47,173, 71,236,203,123,160, 28, 11,135, 26,205,244, 77,139,170, 86,173, 90, 80,169,242,166,102,169, -213,106,136,140, 45, 84, 51,199, 13,149, 2, 0, 39,144,170,139, 36, 90, 47,131, 38,173,189,208, 44,145,226,177, 93, 30, 1, 46, - 80,182, 86,140, 26, 5,145, 72, 4,145, 72, 84,184,249,172, 62, 68, 43,127, 83, 84,112,121,238, 43, 90,210,249, 38, 18,225,225, -163,139, 39, 55,147, 68, 6,139,213, 33, 15, 16,175,230,232,185, 68,246,130, 62, 59, 39, 27, 25, 27,197,201,140,140,130,101,114, -227,162, 68,235, 61, 0, 80,161,240,192,193,165,147,235, 27, 39,134, 27,171,158,220, 64,130,138,211,154,150,108,102,233,165, 75, -151,108, 5, 2,129, 61,203,178,136,142,142,198,203,151, 47,177,113,227,198,196,236,236,236,246,207,158, 61, 11, 43,146, 94, 94, - 83,153,248,248,129,101,211,170, 10,130,252,165,234,247, 33, 37,146,183,178, 96, 83,175, 79,151, 94,237, 27, 92, 24, 63,124, 1, -122,119,255, 14, 35,218,215,166, 17,241,105, 42, 0,215,244,217,192,154, 82, 26, 71, 8,233,220,174, 93,187, 67, 13, 27, 54,244, -160,148,162, 94,189,122, 24, 60,120, 48, 14, 28, 56,128,192,192, 64,100,101,101,105,175, 94,189,186,129, 82,186, 71,207, 7,206, -200,194,194,226,242,205,155, 55,109,140,140,140,112,245,234, 85, 40,149, 74, 56, 56, 56, 96,210,164, 73, 98, 63, 63,191,253, 89, - 89, 89, 3,124,125,125,165, 17, 17, 17, 91,174, 92,185, 82, 25, 0,143, 82,250, 89, 37,208,104, 52, 59, 15, 31,216,183,105,210, -228, 41, 78, 55, 31,190,186,161,206,201, 54,115,117,141,201,178,177,144,155,108,248,117,169,139, 70,163, 25, 95,114,126,222,254, -162,252, 52,192, 0, 3, 12, 48,224,115, 13,227,194,133, 11,165,114,145,162,228,169, 56,217,170, 8, 73, 3,160,244,241,241,153, - 79, 8, 57,159,175,120, 41, 1,196,255, 19, 36,171,144,104, 81, 74,253, 9, 33,160,148,250,151,106,133, 99,161,141,184, 3,109, -196, 29,200, 90, 78,197, 95,190, 67,138,253,201,151,111, 17,214,115,217,181,155,106,181, 90,176,111,223,190,194,121, 91, 0,192, -178,236, 55, 47,197,138, 16,173,124,162,247, 89, 34,170, 72,228,254, 59,103, 12,104, 97,197, 42,132,154,123,231, 16,167,230,152, - 53,239,180,138, 39, 25,244,183,249,165,216, 60, 51,125, 60, 98,238, 94,135,145, 92, 30, 51,246, 78,112, 81, 21, 43, 8,192, 7, - 0,168, 34, 53,189,113,124,230,144, 54,246, 34,136, 52, 23, 78, 32, 94,205,169,183, 71,234,246,108, 44,185, 80, 65, 41,197,135, - 15, 31,160, 80, 40, 16, 16, 16,128,147, 39, 79, 38, 23, 39, 89,249,233,189,253,199,207,195,154,155,102,127, 20,105,158, 92, 71, -188,154, 83,215,208,135, 92,213,239,211, 90,196, 35, 87, 9,143, 47,235,222,182, 54,166,255,216, 7,235,255,248,139,209,216,182, -237,177,233,236,197,129, 57,106,237,124,125, 72, 86,145, 52, 7, 1,168, 77, 8,145, 0,240, 26, 60,120,240,197,126,253,250,193, -223,223, 31,231,206,157,115, 7,144,144,159,255,203, 0,216, 33,111, 53, 98,105, 59,199,243, 68, 34,209,209,235,215,175,215,113, -116,116,196,245,235,215,161, 84, 42, 49, 97,194, 4,205,228,201,147, 69, 35, 71,142, 36,153,153,153,133, 74, 86, 64, 64, 64,106, -105, 36, 11, 0, 98, 99, 99, 47,185,186,186,182,106,215,174, 93,159,170,238, 53, 77,195,179,179,146,140,140,164,178,187,254,183, - 68, 79, 30,221,223, 18, 27, 27,251,184,228,252,188,161,119,126, 26, 96,128, 1, 6, 24, 80, 58,188,189,189,253, 47, 92,184, 0, -111,111,111,255,114,250,146, 30, 95, 72,134, 10,126, 39,244,245,245,125,233,235,235,251,137,226,245,149, 74, 91,113,215,225, 5, - 74,105, 66, 81, 69,171, 66, 96, 51,163, 63,191, 1,142,171,200,205,126,246,157,133,133, 5, 35,147,201, 62, 33, 90,156,158, 54, -211, 78, 31, 65,248,196,161,133, 74, 86,129,178,133,174, 35,191,138,104,113, 28, 23, 0,224,147, 68, 24,219,213, 28,114,116,120, -231,214,181,171, 58,241,116,199, 55, 34, 86,193,168, 22,191,209,170, 94,103,211, 94,175, 74,152,100, 93,104,147,209, 65,106, 44, -139,146,201,141,139,147,172, 72, 0,144,219,215,232,183,127,136, 87,251, 6, 53,221,120,204,177,117,136, 83,232,114,124, 66,181, -218,240, 92,122,170,148, 60, 92,252,221,119,223, 45,182,178,178,146,110,218,180,201,204,213,213, 21, 12,195,104,138,147, 44, 99, -187,154, 67,142,141,236,218,186,134,189, 5, 79,247,231,102,196, 40, 89,197,198,112,221,254,237,122,144, 44,107, 51,249,149,237, -171, 38,202,140, 36, 66,168, 84, 42,248,109,251, 19, 87,239,135,244, 72, 14, 62,125, 5,192,149,175,168,147, 99,123,244,232,177, -126,217,178,101,208,233,116, 24, 51,102, 12,222,191,127,127,245,205,155, 55, 27, 93, 92, 92,102,255,252,243,207,142,246,246,246, - 24, 56,112,160, 8,192,200, 82,108,252,122,248,240,225, 30, 13, 26, 52,128,191,191, 63, 50, 50, 50,224,224,224,128,201,147, 39, -139,125,125,125,247,103,101,101, 13, 88,181,106,149,244,195,135, 15,101, 42, 89,159,212,107,150, 93,177, 99,253,196,217, 77, 91, -180,225,189,123, 23,198, 68, 55,243,228,221,186,126,238,142,149,149,213,254, 79,242,115, 84,183, 10,231,167, 1, 6, 24, 96,128, - 1,223, 12, 23, 0,120, 23, 87,185,138,147,176, 2,197,170,232,113,241,235,243,207,171,191, 54, 65,197, 21,173,124,226,245,233, - 28,173,162,147,224,203, 3,151,155,172, 23,121,250,140,173,214, 34,186,241, 77, 33,152,239,201,131,200,216, 66,213,115,217,181, -155,165, 93,107,108,108,172,183,162,197,169, 85,229, 17,167, 10, 17,173,252, 57, 90,151, 41,165,159, 16, 45,115,251,154,158, 11, -231, 78,219,208,166, 95, 87, 94,226,143, 45,145,145,163, 86,255,252,138,225, 98, 21,101,147,172,188, 94, 92, 23, 97,100, 44, 15, -150, 26,127, 50, 47, 43, 26, 0,100,118,213,155,249,204,152,178,173,195,144,158, 36,121, 66, 27,164,103, 40,213,179, 95, 50, 36, - 78, 73, 7,188,162,244, 86, 73,230,110,220,184,177, 3,192,142,246,237,219, 39, 26, 27, 27, 35, 39, 39,231,179, 50, 40, 72,111, -235,126, 93,121,137, 99,155, 35, 45, 87,171,254,249, 37,131,120, 37,119,180, 60,146,101, 99,110,114,101,251,202,137, 70,241,177, -145, 16,137, 68,144,203,229,184,118, 47, 24,201, 33,103,190,134, 96,129,207,231, 47,153, 63,127,254,226, 73,147, 38, 33, 53, 53, - 21,231,206,157, 67,247,238,221,113,228,200, 17,215,139, 23, 47,174,247,242,242, 2,159,207,199,249,243,231,161,211,233,222,150, - 82,158,125,198,141, 27, 55,187, 95,191,126,120,252,248, 49, 18, 18, 18, 62, 81,178, 50, 50, 50, 6,111,219,182,173, 95, 68, 68, - 68,185, 74, 86, 49, 52,171,226,214, 72, 52,111,209, 90,168, 21, 73,130,228,184,135,254, 55,174,241, 30,164,165,165, 25, 1,200, -252,210,252, 52,192, 0, 3, 12, 48, 64,111, 85,171, 52, 46,146,156, 79,162,146, 75, 58, 46, 66,176, 74, 58, 38,197, 84, 48, 77, -177,243,129,255,228, 61,233,165,104, 9,236,234,130, 73, 12, 41, 66,180,146, 62, 57, 47, 53,177,212,203,117,168, 99, 32,216,190, -167, 48,142,150, 52, 53, 53, 85,106,109,109,173, 42, 74, 16,140,140,140,224,232,232,136,244,244,116,236,220,185, 19, 0,202,155, - 20,205,152,246, 27,142,102, 67,198,224,137,179, 24, 84,167, 45, 84,182,182,143, 26,245, 9,217, 18,137, 68, 5,115,195,202,235, -116, 31, 17, 66, 34, 1, 60,160,148,210,198, 53,170, 45,151, 26, 27,143,106, 82,223,205,122,250,196,177,194,136, 36, 53,110,182, -153,151,241,231,175,115,229, 49, 84, 62, 41,138,102,220, 47,199, 94,248,247,191, 31, 44,174,100,197, 54,170, 81,109,129,212, 72, -250, 99,139,186, 53,236,125,102, 78, 20, 70, 36,170,201,205,102, 63,103,157,252,237,103,163, 15, 48,153, 29, 67,211,111,233, 81, - 60,139,187,119,239,190,152, 82, 74, 57,142, 91, 4, 0, 69,211, 59,115,242,143,194,240,143, 42,220,104,179, 32,253,228,175,115, - 77, 98, 80,118,122,109,234,247,105,109,103, 97,122,101,251,170, 73, 70, 9,113, 81,144, 72, 36, 48, 49, 49, 65, 76, 98, 38,132, - 2,190,242,107, 42, 27, 33, 68,226,233,233, 57,119,226,196,137, 8, 14, 14,198,132, 9, 19, 18,162,163,163, 79, 29, 59,118,108, -194, 47,191,252, 34,232,210,165, 11, 18, 18, 18,176,122,245,106,221,189,123,247, 86, 1, 88, 93, 98,125, 20, 8,198, 46, 95,190, -156,198,199,199,147, 15, 31, 62,192,193,193, 1, 83,166, 76, 17,175, 90,181,170,112, 78, 86, 69,148,172, 2,196,198,198,250,187, -187,185,160,215,165, 13, 96,116,106,255,140,212,232, 59,175,195,211,253, 45,197,226, 89,109, 26,215,255,162,252, 52,192, 0, 3, - 12, 48,224,155,224, 73, 57,199,255, 82,148,228, 58,212,151,104,189,221,188, 96,180,251,232, 73,115, 32,115,109, 13,117,232,105, -112, 57,137,133,138,150, 84,110, 1, 75, 23, 15,100,228,170,113,226,198, 51, 0,120, 91,145,132,101,103,103,163,113,227,198,216, - 58,178, 70, 7, 85,118,170, 84, 6, 64, 45, 49, 85,157, 17,183,189,121,241,226, 69, 5,199,113, 71, 1, 92, 44,199,204,146, 58, -117,234,108, 89,187,118,173,216, 99,200,104,228, 60,188, 91, 92,157,130, 76, 38,131, 68, 34, 65, 80, 80, 16,110,222,188,169, 1, -176,164,156, 12,123,196, 48, 76,224,209,163, 71, 99,221,171, 57,119,109,223,180,217,212,249,243,124, 76, 94,221,189,138, 69,171, -182,112,213,155,116,201,244, 59,114, 38, 59, 83,238,210, 81, 17,255,250,133, 30,183, 26, 88,140,100,197,123, 84,117,233,208,178, - 81,195, 57,139, 22, 45, 48,125,121,247, 26,126,249,109, 59,117,111,208, 41,243,183,147,103,179, 82,140, 42,127,167, 76, 12,125, -172, 79, 30,222,190,125,123, 7,128, 29, 5,199,197,211,235,179,108, 35, 87,163,105,215,116,191, 35, 39,115,179, 76, 92, 58,149, -149, 94,219,218,125, 91, 85,114,176,188,178,121,197, 79, 70, 31,227,162, 33,145, 72, 32,151,203, 17,157,144,129,197, 27,142,231, -106, 57,174,235, 87,214, 69,137,137,137,137, 68,171,213, 98,235,214,173,136,142,142,110, 73, 41,141, 38,132,108, 31, 52,104,208, -166,122,245,234,213,122,249,242,229,219,156,156,156, 73,148,210,215,165, 25, 49, 55, 55,111,105, 99, 99, 67, 30, 60,120,128,159, -126,250, 73, 51,101,202, 20,209,136, 17, 35, 72,122,122,250,151, 42, 89, 0, 0,103,103,103,207,239,189, 91,161,117,231, 9,254, - 26, 85,198,157,136,215,251,253,121,244,190,180,113,195,250, 95,148,159, 6, 24, 96,128, 1, 6,252,111,160,172,201,240,101,238, - 70,237, 9, 8,106, 88, 97,124, 29, 39,209,199, 3,191, 78,161,217,225, 1, 84,249,120, 7,205, 58,253, 35,189,176,122, 4,189, -184,121, 58,157,224, 93,135,214,178, 37, 31,107, 88, 97,188, 39, 32, 40,107,119,239,238, 53,161,235,236, 6,218,217, 13,212,187, - 6,116, 0,230, 55,106,212,232,204,228,102,160,244,213, 97, 74, 95, 29,166,147,155,129, 2,248, 9,128, 92,223, 29,195, 1, 56, - 0,216,217,184,113, 99,230,214,173, 91,244,205,128, 78,244,121, 45,107, 58,105,210, 36,250,203, 47,191,208,161, 67,135, 82, 27, - 27, 27, 6,121,254, 82,135,242,108,246,234,213,203,153, 82,138, 74,149, 42,153, 55,241,168,254, 49,232,198, 57,122,231,192, 38, -250,199,228,190,180,121, 61,143, 20,251, 90,237, 2,101, 14, 53, 27,234,187,179,185,189,189,253, 60, 74,105, 87, 74,169, 3,165, - 20,238,238, 86,242, 70,181,170,199, 7, 94, 63, 71,239, 30,220, 66,255,152,220,151,182,168, 95, 59,213,217,195,235,181,212,182, - 86,179, 47,221, 45,189,196,244,214,173,149, 98, 87,189,213,139,210,210, 91,212,102,213,102, 3,207,198,198, 39,210, 71,143, 30, -209,139, 23, 47,210,187,119,239,210, 3,199,206, 82,151,166, 3,114,172,235,245,110,253,181,187,186, 3, 48,243,246,246,166,111, -223,190,165,221,186,117,163, 0,204,190,196, 38,128, 51, 17, 17, 17, 52, 36, 36,132,206,159, 63,159, 2,216, 55,113,226, 68,101, -102,102, 38,237,212,169, 83, 52, 0, 30,138,213, 69,125,211, 89,173,138,147, 95,159,158,109,151, 76,254,169,159,231,215,230,231, - 55,220, 21,222, 96,211, 96,211, 96,211, 96,243,191,222,230,127,242, 43,159,135,140, 43,242,222,168,224, 92,153,138,214,237, 60, - 53, 96, 71, 61, 59,114,104,213,234,205,179,182,238,216, 55,103,238,212,177,198,109,219,116, 70,240,245,189, 56,121,254, 88,174, - 74,173, 89, 45,226, 99,109,112, 10, 45, 55, 14,197,133,215, 84, 88,130,122,100,100,233,134,194, 24, 76,239,210, 1, 74,233,246, - 10, 50,201, 4, 0,227, 8, 33,107,189,188,188, 86,254,216,186, 89,223,201,173, 58, 64,167,211,225,192,129, 3,136,138,138, 58, - 5, 96, 1,165, 84, 47,197, 45, 56, 56, 56,165, 78,245,202,211, 44,101,162, 57,147,134,246,177, 73,126,255, 10,177,161,207, 1, - 0,106,181, 82,151, 16,230,223,160, 34,233,147,201,100,143,108,108,108,222,216,216,216,164,179,234,156,113, 82,129,233,162, 9, -131,191,183, 77,141,120,141,152,151,121,158, 81,181, 74,161,141, 9,187, 89,235, 75,152,116,229,202,149, 37,198, 66,140, 47, 49, -189, 26,149,238,227,219,208,134,250,216, 81,168, 53,171,150,174, 63,240,221,138, 57,163, 36,166,166,166,120, 22,242, 14,139,214, - 29,201, 85,106,116, 93,147,131, 78,223,255, 70,172, 31, 58,157, 78,239,133, 14,165, 96,110,131, 6, 13,106,174, 92,185,210,125, -228,200,145,248, 90, 37,171, 40,222,127,136,245,105,223,190,125,237,119,111,158,121, 89,202, 68,135,190, 38, 63, 13, 48,192, 0, - 3, 12,248,159,129, 55,165,116,103, 65,132,248,124, 87,226,115,125, 92,135,121,196, 35,145, 42, 0, 44,171,102, 71,182,207, 91, -185,126, 49,143,108, 24,197, 81,186,151,225, 97,105,120, 10, 77,254,202,142, 87,225, 93,139, 48,223,245, 30, 42, 0, 0,161, 0, -204, 87,216,122, 11,160, 31, 33,164,233,174,251,143, 23,230,127,189,130, 82, 90, 33, 95,174,137, 0, 33,109,106, 87,115,106,219, -168,142,148,207, 42, 17, 27,250, 30,105,185, 42, 92,123, 25,149,193,163,188,189, 21, 77, 87,120,120,248,109, 0,168, 91,189,114, -104,219,218,110, 46,237, 26,215, 49, 18, 18, 13, 98, 95, 61, 67,166, 82,131,171, 47,163, 50, 65,200, 23, 79,168,254, 86,233,253, - 24,116,230,137, 77,253, 62,157, 8, 33,215,231, 79, 30, 34, 89,188,238,232, 55, 37, 89, 0, 20,113,113,113,169, 10,133,194, 42, - 62, 62, 94,131, 47, 12, 18, 71, 41,125, 71, 8,169, 55,125,250,244,101,179,103,207,158,243,235,175,191,138,190,100, 78, 86,105, - 72,143,139, 58,221,174,206,183, 43,127, 3, 12, 48,192, 0, 3,254,251, 81, 48, 79,171,248,124,173, 10,133,119, 8, 79,164,201, - 0, 38,185,185,145,153,239,223, 83,205,183, 74, 92, 73, 74,215, 87,146,183, 39, 0,122,126,177, 1, 30,201,126,248, 54, 42,231, -209,219,168, 28,112,148,114,148,170,121, 60,196,228,106,181,171,194,194, 99,175,124, 69, 41,176, 79,222, 69, 43,159,190,143, 81, - 81,142,163, 28,165, 26, 66,240, 81,167,227, 86,133,132, 71,158,253,119, 72,111,114,208,233,251,246,181,251,182,189,255, 40,100, -102,110,174,118, 75,242,171,211, 1,223,176, 92,116,132,144, 97, 45, 91,182, 28,205,178,236,118, 74,169,238, 43,108,105, 0,204, - 37,132,156, 10, 14, 14, 62, 30, 16, 16,144,240, 45, 72,214, 63, 90,254, 6, 24, 96,128, 1, 6,252, 87,226,139, 55,149, 46, 13, -223,146,100,253, 59, 34,248,109, 68,227,127,194,110,200,219,136,186,255, 9,233,253,248,234,212, 83, 0,131,255,161,202,120, 21, -192,213,111, 73,170, 9, 33, 85, 0,240,191, 9,201,250, 7,203,223, 0, 3, 12, 48,192,128,255, 78,124,245, 94,135, 6, 24,240, -111, 62,146,160, 0, 24, 67, 78, 24, 96,128, 1, 6, 24,240, 47,234,135, 74, 85,180, 8,128, 78,165,252,232,122, 5,152, 92,167, - 47, 72,212,117,131, 77,131, 77,131, 77,131, 77,131, 77,131, 77,131,205,255, 45,155,255,141, 32,132, 56, 32, 47, 90,125, 97,212, -250, 66,242,245, 15, 47,119, 52, 44,125, 53,216, 52,216, 52,216, 52,216, 52,216, 52,216, 52,216,252,111, 15,239, 48,174,232,123, -209, 23,207, 32,248, 25, 96,128, 1, 6, 24,240, 15,142,244, 37,249, 27,201,127,209,121, 3, 12,248, 15,170,235,133,171, 14,139, -206,217, 18,124,129,161,234,249, 74,216,187,127, 48,177,147, 29, 28, 28,198,213,175, 95,223, 67, 36, 18,241,178,179,179,151,222, -188,121,115, 73,241,235,218,213, 17, 62,229,243,224, 92,228,151, 0,225, 3, 60, 30, 88,138,216, 59,129,138, 38,134,162,255,183, -174,148,174, 50, 83,155,191, 8,143, 47,102, 25, 45, 88,157, 22,192,223,219, 49,113, 28, 19,197,104, 84, 93, 74,251,189, 67,195, -190, 46, 12, 75,253, 0,110, 27, 1,111, 2, 5,247, 59,161,188, 9,148,135,109,132,195, 79, 16,232, 86,131, 17,206, 22,136, 4, - 11,226,159,157,136,249,111,200,179, 63,255,252,147,255, 53,191,239,223,191,127,137, 27,136, 58, 57, 57,157, 55, 50, 50,114, 43, -237,119,185,185,185, 9,241,241,241, 94,255,229,245,177, 29,128,205, 0,234, 20, 59,245, 26,192, 52, 74,233,141,175,253,143,246, -132, 8,236,128,241, 34,224,103, 0,208, 2,191, 37, 2, 59,110,127,163,133, 28,223, 2,182,182,182,119, 4, 2,129,123,110,110, -110,110, 86, 86, 86, 53, 83, 83,211,112, 99, 99, 99, 99,134, 97,222, 38, 37, 37,181,171, 96,158, 78, 68,254, 86, 90,132,144, 57, -148,210,109, 21, 57,111,128, 1,255, 41,248,170, 85,135,132,144, 26, 0, 60,243, 95,237,154, 54,109,106,151,155,155, 11, 66, 72, - 34,128, 59, 0,252, 1,248, 83, 74,195,190, 69, 98,249,124,254,154,141, 27, 55,206,154, 50,101, 74,225,102,208, 65, 65, 65, 37, - 95,203,131,243,173,115,215,109,159, 4,135,161,105,167,254,249, 68,139, 7,228, 38,192,171,115,179, 47,109,108, 77, 44, 44, 44, -150, 18, 66, 6,240,120,188,114, 59, 53,142,227, 88, 74,233,137,244,244,244,197,148,210,236,138,252,151,220, 88,170, 99, 88,182, -196,255, 16,240,249,108, 78,174,170,212,176, 23, 86, 86, 86, 1, 60, 30,175,106,209, 13,179,243,211, 95,226,231,162,199, 12,195, -196, 38, 39, 39, 55,209, 35, 47,164, 60,129,104, 26, 33,162,206,224,113, 53, 0, 2, 2, 94, 24,199,106,174,113,140,118, 35,165, - 84,245, 53, 36,203,161, 82,181,187, 51, 22,248, 57,135,132,190,198,252,201, 67,241,235,230,125,152, 55,109, 52, 54,238, 60,130, -105,227,134,160,118,237, 58,101,218, 96, 41, 89,186,104,218, 48,175,149, 27, 15, 55, 93, 48,109,168,241,202,141,135,155, 46,152, - 62, 84,190,114,211,225, 38, 11,166, 15,147,175,216,116,168,201,194,233,195, 76, 87,110, 58,172, 5, 48,230, 75,210, 57,180,134, - 83, 46, 97,152, 18, 71,219, 84, 32, 80, 31, 14,139, 51,254, 87, 60,212, 35, 71,142,172,175, 84, 42,159, 13,237,220,200,175, 97, - 13,167,184,146,174, 73,253, 24,231, 20,254,230,185,143, 80, 36,107,252,189,207,190,160,178,236, 73, 36,146,170,175, 95,191,118, -231, 56, 14, 44,203,130, 97,152,194,119,141, 70,131,118,237,218,125,147,133, 51,132,144,158, 0,150,230, 61,172,240,165,148, 30, -255, 10, 91,114,129, 64, 48, 67, 44, 22,123, 50, 12,227, 1, 0, 66,161, 48, 84,173, 86,251, 51, 12,179,158, 82,154, 83, 65,147, - 27,226,226,226,106,203,229,114,104,181,218,194, 13,232,249,124,126, 45, 23, 23,151,173, 0,220,191,246,254,237,128,241,173,218, -180,217, 56, 98,214, 44,190,242,206, 29,108,220,179,103, 3,178,178, 0, 96,107,121,191,149, 72, 36, 87,120, 60,158,107, 69,254, -143,227,184, 40,181, 90,221,165, 34,191, 17, 8, 4,238,241,241,241,182,142,142,142, 0, 0, 99, 99, 99,227,162,199, 21, 81,178, - 0,172,166,148,202, 0,128,199,227,109,108,213,170, 85, 75, 66, 8, 3,128,114, 28,199, 35,132, 12,225, 56, 78,144,127,253,106, - 66,200, 30, 74,169,218,208,109, 27,240,159,168,102,149, 70,182, 4,101,252,232, 34, 0,207,166, 77,155,202, 6, 15, 30, 12, 79, - 79, 79,184,187,187, 67, 42,149,230, 53,226,169,169,118, 47, 94,188, 24,120,231,206,157,129,231,206,157, 3, 33, 68, 9,224, 30, -165,180,196,135,186, 83,207,182, 83,164,114,201, 38, 0, 72,142, 77, 77,136,253,144,180, 41, 33, 33, 97, 53, 45,178, 27, 53, 33, -164,218,136, 17, 35,102, 78,157, 58, 21,231,207,159,199,145, 35, 71,160, 86,171,145,157,157,141,155, 55,111,150,156, 80, 69, 18, -210,111,250, 1,198, 17, 64,180, 63, 96,100, 11, 24,219,125,113,102, 89, 88, 88, 44,157, 54,109,218,244,218,181,107, 23, 70, 49, -215,233,116, 96, 24, 6, 58,157, 14,233,233,233,152, 57,115,102, 1,131, 5,199,113,184,116,233,210,148,113,227,198, 1,192,140, -146,108,182,108,226,242,148, 71,120,206, 5, 90, 13,101,217,216, 7,207, 99,154, 48, 44,203, 87,169,180, 37,238, 84, 46,149,138, -202, 36,121, 66,161,208,249,213, 95,127,217,242,196, 98, 80,150, 5, 56, 14,148,227, 0, 20,121,209,188,239, 40,203,129,234, 88, -112, 12, 7, 70,169, 70,179,137, 19,245,169, 52,173,132, 98,217,145, 97, 63,206,178,111,222,162,133,176,114, 37, 71, 48, 44,135, -247, 17,177,246,207,158, 62,108,125, 98,255,214, 9,132,144, 33,148,210, 47,138,179, 37, 54, 50,189,186,229,247, 93,206, 79, 94, -132,224,198,173, 59,184,126,211, 31, 0,112,229, 86,158, 57, 30,143, 87, 94,250, 44,172,220,189,234, 79, 25,221,219,120,197,218, -221,146, 41,163,123, 11,254,126,223, 37,153, 50,250,123,193,202,245,187, 36, 83, 70,127, 47, 92,254,219,150,134,132, 16, 11, 74, -105,122,105,246, 74, 43, 35,194, 48,146, 67,225,137,124, 0, 72,222,190, 29,186,164, 36, 56, 46, 94, 12, 0, 24, 86,205, 78,111, -119,135,141,141,205, 83,161, 80,232, 92,222,117, 58,157,174, 92, 18, 60,114,228,200, 6, 74,165,242, 41,195, 48, 84, 32, 16,248, - 12,237,243,221,153,174,109, 27,164, 22,189, 38, 40, 40,208,106,213,170,191,122, 31,127,150, 77, 7, 54, 54,121,118,126,205,200, - 38, 61,102,239, 11, 44,163, 67,230,169,213,106,188,125,251, 22, 69, 55,121, 47,202,107,191,176,241,225, 1,216,104,101,101,213, - 60, 53, 53,117, 24,128,249, 89, 89, 89,245,249,124, 62, 44, 45, 45,231, 19, 66,222,155,153,153,237,206,204,204, 12,200, 87,141, - 56, 61,237,182, 51, 53, 53, 61,112,250,244,105,139, 70,141, 26,241, 82, 82, 82, 80,165, 74, 21,164,165,165, 53,187,115,231, 78, -227, 49, 99,198,140, 33,132,252, 64, 41,189, 83,129,228,214, 52, 50, 50,162, 35, 70,140, 32, 44,251,247,237,254,241,199, 31,232, - 82,151,113,251,169,171,177, 66,165,161,153, 55,222,154,253, 36, 18,137,238, 69, 70, 70,102, 86, 52, 63, 68,192,207, 35,102,205, -226,203, 35, 35, 33, 15, 12,196,176,172, 44,193,175,121,234, 86,185, 68,139,199,227,185, 30, 56,178,215, 93, 44, 22,131, 97,152, - 66, 50, 88,208, 70,233,116, 58,104,181, 90,232,116, 58,176, 44, 11,157, 86, 7,223, 21,191,125,113, 91,104,100,100,100,228,232, -232,152,104,100,100,100,244, 45, 58, 34,137, 68, 34,216,191,127,255, 16,177, 88, 12, 0,208,104, 52,168, 91,183, 46, 49,116,209, - 6,252, 55,145,173,146, 84,174,178, 70,169,221,178,178,178,192,178, 44, 76, 76, 76,192,231,243,139, 43, 42,232,220,185, 51,218, -181,107,135,193,131, 7,227,213,171, 87,178,193,131, 7,119, 46, 85, 25,152,213, 3,149,220,237,242, 59, 19,206,225,254,133, 23, -126,127, 44,255,211, 6,192,172, 34,151,141, 25, 63,126, 60, 73, 77, 77,197,128, 1, 3,238,168,213,234, 94,148,210,172, 82, 21, - 13, 14,177, 94,131,135,129,163, 68,182,254,209, 46,162, 81, 41, 41,143,199, 83, 22,184, 14,191, 48,163, 6, 56, 58, 58,226,232, -209,163,208,104, 62, 15, 23,102,106,106,138,151, 47, 95, 22, 85,224,208,162, 69, 11, 62, 33,100, 64,105, 68,139, 16,158,243,253, - 39,145,182, 5,199, 61, 58,215, 17,181,108,226,154,104, 99,101, 66, 1,144, 5, 11, 22, 20, 18, 55, 0, 88,186,116,169, 62,233, - 4, 79, 40, 68,178,191,255,223, 13,177,128, 7,158,136,128, 8, 1,158, 32,207,139, 10, 10, 80, 22,224, 24,128,211, 1, 82,135, - 74,250,216,110,230,228,226,126,126,213,186,109,230,106, 29,197,209,179, 55, 16, 17,241, 1,124, 30, 15,213,220,220,241, 93,251, -182,194,198, 77, 91, 86,250,109,201,172,115,132,144,110,148,210,199, 21,206,104,142, 74,221, 92,172,177,251,143,103,176,177,144, - 99, 64,239,238,144, 73, 37,248,117,243, 94,172,152, 55, 25,238,213, 92,177, 99,195,202, 82,127,110,102,102,182,172, 81,189, 90, -213,246, 30,191, 12,207,118,173, 4,251,142, 95, 65,251,118,173, 5,123,143, 95, 70,123,207,182,130,125,199, 47,163,125,187, 54, -194,125,199, 47,163, 69,147,122,110, 1,169, 65,203, 0, 76, 46,253,158,139,149,209,119,121,101,228, 46, 16, 21,118, 4,145, 19, - 38, 0, 64, 33,209,170, 8,132, 66,161,115,124,124,188,109,121,215,149,167, 26,228, 43, 89, 79, 25,134, 65, 82, 82, 18,201,200, -200,160,230,230,230,189, 47,239,152,127,186, 75,155, 6,105, 0, 16, 24, 24,104,233,235,187,170,247,177,167, 89, 80, 62,220, 66, - 14,253,229,207, 13,235,229,249,244,172,223,200,198,253,251,247,127, 94,146, 93,181, 90, 29,209,176, 97, 67,154,255,217, 73, 34, -145,136,138,213, 9, 71,119,119,247,207, 84,107, 61, 92,138, 27, 31, 60,120, 48,185,118,237,218,168, 85,171, 86, 64,243,230,205, - 77,141,141,141,113,249,242,101,120,120,120,212, 49, 53, 53,125,116,226,196, 9,225,220,185,115, 27,236,217,179, 7, 0,166,232, - 81, 63, 59,121,121,121, 29, 61,127,254,188, 84, 36, 18, 65,169, 84,226,229,203,151, 48, 51, 51,131, 88, 44,198,247,223,127,207, -111,221,186,181, 85,251,246,237, 79,230, 15, 6,244, 94, 1,165, 82,169,232,252,249,243, 97,100,100, 4, 35, 35, 35, 24, 27, 27, -195,216,216, 24,114, 41,200,246,105, 46,178,169, 59, 51,100, 51, 22,111,247, 59,176,109,201, 45, 23, 23,151, 95,162,163,163, 51, - 42, 90, 23,148,119,238, 64, 30, 24, 8, 20,121,118,245,133,153,177, 37,124,124,124,202, 83,164, 32, 18,137,208,170, 85,171,114, -237, 89, 89, 89,157, 18, 8, 4,118,197, 58, 7,169,143,143, 15, 27, 22, 22,102,204,227,241,140, 57,142,131,143,143, 15,203, 48, -140,212,206,206, 46,128,227,184,196,228,228,228,190,229,217,166,148,170, 9, 33,115,120, 60,222, 70,137, 68, 34,168, 92,185,114, -212,162, 69,139, 30,228,171,153,160,148,242, 42, 87,174,220, 76, 38,147,185,170,213,106, 6,192, 28,131,154,101, 64, 25,104,156, - 39, 10, 23, 66, 3, 64, 92, 32,224,231,245,118,176, 46,246, 61, 0,164,228, 15, 20,237, 74, 57, 78, 5,240, 10, 64, 77, 0,182, -249,231,158, 0, 72,171,104, 2,203, 84,180, 8, 33,180,200,133,133, 29,139,137,137, 9,158, 60,121, 2, 66, 8, 76, 76, 76, 96, -106,106, 10, 51, 51, 51,100,101,101,225,213,171, 87,120,253,250, 53, 34, 35, 35, 65, 8, 65,181,106,213, 80,240, 0, 21,177, 85, -216,192, 29, 94,123, 30, 82,185, 4,132, 0,141, 58,212, 71,253,118,117,209,244,113,248, 52, 71, 71,199,157,241,241,241,111, 9, - 33,130,186,117,235,142,105,209,162, 5,214,173, 91, 7,181, 90,189,174, 36,146, 85,212,230,157,151,186, 38,249,157,211,236,131, -151,223, 27, 13,239,234,166,136,143,143, 95,243, 5,153,243, 73, 67,156,146,146,162,247, 94,124, 28,199, 33, 61, 61,189, 76,155, -197, 21,130,245, 27,183,152,103,103, 38, 98,249,175, 7,161,211,233, 48,107,214, 44,112, 28, 87,248,202,200,200,208, 43,157,148, - 45, 38, 50,240,242, 94,132, 7, 16, 1,224, 50, 40,143, 87, 68, 31,221, 2, 66, 1,194, 2, 40,118, 95,197,109, 18, 66,164,124, -145,236,216,146, 95, 55,153, 63,127, 29,139,179, 55,158, 67,155, 21,135,132,192,211, 0,128,106,173,134,224,184,154,143,230,245, -221, 48,125,193,111, 22, 11,167,255,112,140, 16, 82,171,168, 27, 81,159,142,141, 82, 22,203,151, 45,195,206, 77,235,240,219,186, - 77,200,202,204,128, 80,104, 13, 0, 96, 24, 22,108,177,123,251,236,222, 41,237,186,112,246,120,178,113,215, 73,212,173,110,143, -115,215, 2,208,164,142, 43, 46,221,124,140, 22,245,170,224,138,255, 51,180,168, 95, 21,254, 15, 95, 98,214,164, 17,228,254,165, -125, 93, 43, 82, 70, 27, 54,108, 49,207,206, 74,196,249,149,251,145,180,117, 43,162, 38, 79, 70,179,252,107, 30, 19, 2,145,179, - 51, 32, 42,191,140,138, 35, 52, 52, 20,106,181,186,164,209, 62, 60, 60, 60,202, 45,119,165, 82,249,140, 97, 24,154,152,152, 72, - 18, 19, 19, 97,108,108, 76, 94,190, 12, 97,235,212,169,219,135,190,254,115, 23, 0,248,250,174,234,115,252, 89, 22, 20, 1,155, -160,124,176, 25,162, 42, 65,188,157, 75,199,107,199, 45,222,241,172, 72, 39,247, 73, 58, 19, 18, 18,186, 21,124,174, 86,173,218, -235,176,176,176,154, 5,174,230,124, 23,162,136, 97, 24,247, 2,119, 34,195, 48, 80,171,213,232,212,169, 19,191,172,123,183,176, -176,104,225,225,225,129,231,207,159, 99,211,166, 77,150, 94, 94, 94,120,247,238, 29, 8, 33, 88,181,106, 21,169, 93,187,182, 48, - 37, 37, 5, 93,186,116,193,169, 83,167, 90,149,151,159,132, 16, 19, 99, 99,227, 61,231,206,157,147,242,120, 60,100,103,103,131, -227, 56,180,110,221, 26, 60, 30, 15, 33, 33, 33, 88,176, 96, 1, 78,157, 58,133, 51,103,206,200, 26, 55,110,188,135, 16,226, 81, -212,173, 95, 70, 25, 81,149, 74, 69, 37, 18, 9, 36, 18, 9,164, 82, 41,164, 82, 41,196, 98, 49,114, 84,192,184,245, 81,106,190, -212,154,171,211,176,141,219,168,169,171,120,107, 22,141,190, 9,224,172,190,117, 30,200,155,147,181,113,239,222, 77,195, 50, 51, -121, 0,176,155, 16, 78, 75,233,111,250, 60,239, 0,144,163,202,132,107, 53,103,156, 60,118, 6,253, 6,245, 46,145,100, 9,133, - 34,136,132, 66,152, 90, 26,151,107, 83, 36, 18,217,189,126,253,218, 74, 40, 20,130, 82, 10,150,101,161,213,106, 19, 23, 46, 92, -104,227,237,237,109,114,233,210, 37,158,183,183, 55,103, 97, 97,145,251,248,241,227, 36,134, 97,172,218,182,109,171,119,157,167, -148,110,107,216,176, 97,163,211,167, 79,143,246,241,241,121, 58,123,246,236,229, 69,207,175, 94,189,122,217,197,139, 23, 93,251, -244,233,115,224,197,139, 23,219, 42,210,134,124,109, 59,111,176,249,239,103,243,194,133, 11,133, 13,177,183,183,119,113,181,211, -142, 16,114,190,200,255,247, 40, 56,246,241,241,153,239,235,235,251,146, 16,114,190,232,247, 5,215,229,183, 29,231, 75, 58,206, -255,173,229,188,121,243,234,250,249,249,173,106,217,178,229,209,128,128,128, 15, 21, 37, 90,229,206,209, 42, 32, 87, 69, 9, 87, - 49, 3,200,202,202, 66, 86, 86, 22, 98, 98, 98,176,125,251,246,252, 7, 90, 8,129, 64, 0,129, 64, 80, 56,159,161, 52, 92, 63, -119,119, 51,128,205,141, 27, 55, 22, 6, 63, 56,113,233,231,157, 83, 59, 54,233,212,136,255,236, 70,112,127, 0, 43, 0,116, 27, - 49, 98,132, 53, 0,236,223,191, 63, 5,192,165,127, 5,101,166,148,158,120,251,246,237,116, 7, 7,135,194, 57, 42, 69,221,135, - 12,195, 64, 42,149,162, 96, 46,139, 74,165,194,246,237,219, 25, 74,233,137, 50,108, 34,236,229, 77,188,125,121, 43,239,119, 28, - 7,142,253,251,247, 75,150, 44, 41,186, 68, 20, 19,242,149,147,114, 73, 94, 73,121, 78,139,189, 23,251,254, 51,114,246,153,123, - 66, 52,181,255, 15,147, 29, 56, 34,192, 95, 55, 95, 64, 40, 20,130, 43,162,102, 10,249,121,163,229,151,239,226,225,104, 87, 7, -189,134,140,183, 63,125, 96,203, 84, 0,191, 86, 52,175,107,213,111,137,105,211,167, 99,215,206,157, 88,176,120, 89, 33, 75,103, - 88, 22, 76,185,233,228,241, 90, 55,169,141,156,212, 88,240,249,124,180,106,232, 6, 62,159,143,182, 77,106,128,207,231,163, 77, -211,154, 16, 8, 4,104,223,162, 54,170, 87,175, 14,129, 64,192, 43,167,220, 17,246,242, 6,222,190,188, 93,132,244, 82, 80, 0, -218,132,132,207,174,215, 37, 36,128,186, 88, 85,180,110, 97,204,152, 49, 25, 49, 49, 49,218,226,231, 42, 85,170, 36,186,115,231, -142,121, 41,110,187, 66,200,100,178,198, 2,129,224, 89, 90, 90, 26,103,100,100,196,227, 56,150,171, 83,167, 46,255,242,142,249, -167, 11,174,153, 55,111,254,233,129,141, 77,251, 28, 60,113,158,138, 42,183, 33, 68, 40, 97,126, 92,188, 67, 36, 20,201,244,138, -120, 95,224, 70,124,243,230, 13,202, 75, 79,209,129, 89, 73, 72, 79, 79, 31,225,225,225,113,103,243,230,205,150,132, 16,220,189, -123, 23,124, 62,191,240, 21, 30, 30, 14, 30,143,135,159,127,254, 89,155,149,149, 53,182,188,180, 9, 4,130,233, 39, 79,158, 52, - 19,139,197,200,206,206, 46,124,110,248,124, 62, 94,191,126,141, 53,107,214, 96,196,136, 17,136,142,142,134,163,163, 35,102,205, -154, 37,247,243,243,155, 14, 96,153, 30,183, 30,164,209,104,154, 24, 25, 25, 65, 42,149,162,128,112, 1,192,213,151,194, 16,133, - 66, 81,207,218,218,218,222,198,255,252, 95,173,188,122, 53,176,178,113,104, 89, 64,180,244,197,123, 96,103, 4,203, 46,236,118, -250,180,237,253,211,167,185,135,231,206,197, 74,178,179,119,232, 93,135,116, 60, 68,133,199,162,113,227,198,120,246,236, 25, 26, - 55,110, 92,148, 52, 65, 44, 22, 67, 36, 18, 65, 36, 18,193,218, 66,175, 41, 20,148,199,227,225,254,253,251, 96, 89, 22, 26,141, - 6, 26,141, 6,181,107,215, 78,187,117,235,150, 28, 0,194,195,195,233,240,225,195, 51, 30, 61,122,132,134, 13,203,222, 79,221, -222,222,254, 14,159,207,175, 92,236, 89,181,232,219,183, 47,210,211,211,187,247,237,219,183, 77,254,119,113,127,254,249,231,112, - 0, 16,139,197,224,241,120, 44, 12,248,159, 71, 1,185, 42, 74,184, 74,104,115,122, 20, 63, 38,132,156,247,245,245,237, 81,252, -187,162,164,170,164,207, 69,127,235,231,231,183,170,136,109,229, 23,120,195,202,159,163, 69, 8,161,229, 53,154,101,161, 60,162, - 85,128,103,207,158,233,156,156,156,118,189,125, 17,217,209,173,126, 53,200,140, 37,223, 17, 66, 54, 75, 36,146,153, 63,252,240, - 3, 30, 62,124,136,144,144,144, 63,190,118, 59,149,122,245,234, 93,145, 72, 36,174,165,184, 73,162,130,131,131,187,148,210, 49, - 44,206,159,115, 86,234,100,248,162,243,197,138, 78,134, 47,181, 98,112, 20, 58,173, 14,185, 10,229,223,157,120, 62,209,202,205, -205,197,160, 65,131, 62, 81,180,146,146,146,244, 41, 84,172, 57,123, 22,215, 78,156, 64,247, 6, 13,112,234,241, 99,248,253, 48, - 20,181, 92,157, 64, 89, 2, 74,128,232, 35, 91,144,154,149,131,195, 55,238, 35, 45, 91,129, 97,109,219,194,221,212,186,108,187, - 66, 81,231,102, 45, 90,138,174, 7,188,130, 80, 40, 0, 15, 28,168, 78, 1, 71,143,246,224,243,120, 48,179,171, 2,145, 80, 8, -161, 80,128,240,152, 20,120,212,109, 42, 62, 47,150,118,254, 18,162, 85,201,181, 10, 88,150,197,136, 17, 35,112,244,232, 81, 88, -217,187,194,172, 82, 93,172, 88,183, 19,221, 59,181, 45,247,254, 11, 70,240, 2,129, 0,124, 62,255,179,247,130,207,250,168,147, -148,163,208, 22, 47, 35,142, 2,148,194,121,229, 74, 56,175, 92,137,199,249,255, 89, 59, 55, 23, 74,165, 18,104, 94,167, 66, 36, - 75,163,209, 32, 38, 38, 70,155,144,144, 96, 87, 66, 7,149,168,209,104,202, 37, 54,251,246,237, 11, 26, 57,114,100, 19, 75, 75, -203,167, 65,129,129,186,250, 13, 26, 8, 47,109,159,127,166,192,109, 8, 0, 13, 26, 52, 72,155, 63,127,254,153,225, 3,122,244, -222,230, 51,152,157,184,236,128, 64, 34,147, 53,233, 49,187,236, 9,241, 69,158,143,136,250,245,235, 83,125,174, 85, 40, 20, 31, -203, 40,163,158, 0,150, 54,106,212,200,212,203,203, 11,119,238,220, 65,191,126,253,212, 90,173,246,109,126,163, 90,227,240,225, -195,226, 87,175, 94,193,198,198, 70, 24, 21, 21,181,135, 16, 82,230, 4,121,177, 88,220,190,105,211,166, 60,181, 90,253, 25,201, -242,243,243,195,144, 33, 67, 80,163, 70, 13,112, 28,135,156,156, 28,120,121,121, 9, 55,109,218,212, 94, 79,162, 53,173, 86,173, - 90,107,144,183,234,176,104, 91, 24, 10, 96, 78,190,218,253,177, 71,191, 17, 47,219,118,234,219,164,114,245,186, 14,229, 25,180, -179,179,155,199,227,241, 6,114, 28,199,207,202,202,138,209, 16, 82,189,182,171,171, 93,235,222,189,145, 41, 20,242, 55,222,184, -193, 75,204,206,150, 3,208,203, 5,169,210,229,194,181, 90,222, 84,191,126,131,122,227,217,179,103,232, 63,184, 15, 68, 34, 17, - 4, 2, 97,222,179, 41,202, 83,180,204,173, 77,245,170,155, 58,157,174,176, 13, 47,152,231,165,213,106, 81, 48, 53,203,200,200, -168,240,156, 90,173, 46,117, 64,158, 15,247,227,203, 22,217,202, 76,205,192,234,116,168,211,187,127, 97,157,126,180,123,155, 12, - 28, 39,203,136,138,192,148, 19,231,132, 48,192,128, 82, 84,173, 18,212,172,162,237,202,249,226,100,235, 75, 65, 8, 57,239,227, -227, 51, 31, 0,245,241,241,153, 95,112,236,235,235,171, 4, 16,247, 37,100,171, 36,149, 75,240, 45, 72, 86,129,123,161, 44,116, -232,208, 97,138,137,137,201, 38, 0,104,210,164, 9, 98, 30,198, 33,230, 97, 28, 60,106,214,105,221,168, 65,147,204, 33, 67,134, -192,202,202, 10,179,103,207,166, 0,254,168,232,255,135,135,189,148, 3,160,142,142,142,179, 1,192,209,209,177,193,227,199,143, -109,158, 60,121,130,166, 77,155,254, 45,221,107,181,104,211,166, 77, 89, 29, 98, 54,242,230, 90,205,248,118, 42, 25, 7,173, 86, - 11,133, 66, 9,141, 70, 11, 70,199,129, 97, 24, 52,174, 99,130, 3, 59,125,242,190, 99, 10,212,179, 60,213,204,217,222, 4,141, -235,217,235,120, 60,162,124, 18,152, 80, 98,139,169,209,104, 16, 20, 21,133,192,200, 72, 0, 64, 47,223,178, 39,190, 30,184,113, - 7,181,107,215, 46, 47,181,110,206,142,246,136,191, 22,148,215,120, 43, 99,240,228,222,113,152,152,200, 1, 0,117, 60,135, 65, - 36,202, 35, 90,185, 74, 45,172,107, 86, 2,161,180,212,176, 0,198,150, 14, 87, 4, 34,169, 43,101, 57, 80,202,129,114, 44, 40, -229, 32, 49,177, 50,154, 50, 97, 52, 56,142, 69,179,102,205, 64,248,124,176, 58, 53, 6,244,236,140,244,204,108, 88,153,235,215, - 73,136, 68, 34,120,122,122,202, 74, 59,255,238,221, 59,101, 81, 98, 86,118, 25,233,144,155,171,132, 90,173,134, 86,195, 64,171, - 99,192, 86, 21, 97,249,194,161, 96,180, 12, 20,131, 91, 66,171, 99,192, 77,239, 3,173, 70,135,104, 35, 30,175, 65,109, 27, 29, - 15, 68,249,252, 85,146,105,121, 68,171,128, 28,148,134,146,230, 4,150, 66,182, 2, 71,142, 28,217,184,126,131, 6,207, 6,118, -106,176, 54, 56,228,101,124,112,200,203,207,174,115,173,209, 32, 98,162,223,209, 89, 66,145,172,177,190, 36, 11,248,212,141,248, -149,152,159,157,157, 93, 95, 46,151, 35, 44, 44, 12,124, 62, 31,132,144,119,148,210,250, 0, 48,126,252,248,247, 2,129,160, 26, -159,207,199,214,173, 91,137, 64, 32,168,215,178,101,203,249, 0,142,151, 49,160,243, 48, 49, 49,249, 68,205, 18,137, 68,240,241, -241,193,240,225,195, 11, 73,150, 72, 36,194,190,125,251,208,164, 73, 19,104, 52, 26, 15, 61,201,240, 19, 0,109,245, 80,252, 72, - 62, 57, 47,151,140, 50, 12, 51, 50,117,224,192,234,240,247, 71,235,106,213,106, 55,110,220, 24, 90,237,223,130,102,181,106,213, - 42,101,103,103,127, 36,132, 28, 2,176,141, 82,250,162, 76, 82,164,226, 16, 21, 30, 91, 48,104, 69,179,102,205, 10, 21,172,162, -106,150, 72, 36,130, 76, 44,175, 16,209,226,184,188,118, 41, 59, 59,155,231,239,239,111, 93,171, 86, 45, 2, 0,181,106,213, 34, - 47, 94,188,176, 52, 50, 50, 74,113,115,115, 43,119, 0, 44, 51, 53,195,190,145,131, 0, 0,191,116,234, 90, 56, 48,186,188,116, - 62,132, 66, 33, 58,206,158,255, 89,189,231, 56,142, 15, 3, 12, 36,171, 28,146, 85,146,162,245,117,125,243,223,138,150,175,175, -239, 75, 95, 95,223,207,212,177, 10,218, 43, 95,209,210,199, 21, 80,222,195, 90, 26,214,173, 91,135,122,245,234,149,217, 17,109, -218,180, 9, 7, 15, 30, 92, 71, 41, 13,175,232,255,247,232,216,168, 14,214,159,126, 89,173, 70, 29, 2, 0,203,166,247,228,229, -230,230,226,254,253,251, 48, 51, 51,195,187,119,250,133,253, 34,132,152,152,153,153, 45,229,241,120, 3,248,197, 87, 0,148, 76, - 48, 89,142,227, 78,100,102,102,150, 26,222,129, 82, 64,171, 99,144,171, 80, 65,163,209, 96,250,207, 91,202, 77,135, 47, 64,180, -154,108,129,103,187,150,178,210, 20,157,102,245,218, 99,210, 15,242,207, 58,111, 62, 15,224,241,128,134,205,242, 20,151, 23,143, - 95,130,227, 0,150, 3,172,109, 45,240,199,145,181,101,102, 1,195,114,249,163, 99, 22, 57,106, 22, 30, 45,122, 32, 54,212,191, - 80, 65, 18,139,242, 92,198, 34,161, 16, 28, 37,121, 81, 31, 74, 35, 66, 98,153,107,122, 66,184,251,206,243,193, 24,215,163, 30, -254,188, 30,132,254,157,234,227,214,163, 87,240,106, 94, 27, 47,223, 70,162,142,123,101,108,221,115, 2,148, 34,251,247,245, 43, - 62,254,221,161, 49, 81,250, 40, 90, 15, 31, 62, 84, 22, 87,177,138,190,211,242,251, 67, 80,250,183,162,165, 84,169, 49,123,158, - 94,225,124,242,202,168,109, 11,153, 62, 23,151,165, 88,233, 67,196,138, 43, 91, 40, 39, 60, 75, 85, 0, 77,128,185,255,202,134, -147,101, 89, 92,184,112,161,176, 60, 74, 42,199,162,101,167, 7,201, 65, 84, 84, 20, 94,190,124,137, 22, 45, 90, 32, 51, 51, 19, - 66, 30, 15,179,130,131, 81,251,135, 31,160, 17,137,192,113, 28,196, 98, 49,198,143, 31,175,119,126, 86,176, 53,205,159,231,198, -210,114,218,146,181, 61,122,244,168, 30,150,155,139,151,175, 95,163,211,146, 37, 0,128,139, 23, 47,126, 82, 39,102,206,156, 41, -126,245,234,213,152,167, 79,159,142, 33,132,172,163,148,206, 42,181,157,165,234,194, 57, 90, 3,135,246, 67,245, 90, 85,113,112, -239,145,194,243, 51,231, 76,131, 80, 40,130, 80, 36,132,185,153,185, 94,119,163,211,233, 10, 73,171, 66,161,224, 93,188,120,209, -185,115,231,206,162,105,211,166, 17, 0, 56,120,240, 32,111,243,230,205,198,215,174, 93, 19, 57, 57, 57, 37,148, 75, 46,181,218, -207,202,152, 16, 2,161, 80, 8,145, 88, 4,112, 28, 8, 33,198,171, 87,175, 94,246,242,229,203,166,181,106,213,130, 90,173,254, -129, 16,242,220, 16, 71,203,128, 2,183, 97,105,132,171,164,185, 86,249,170, 84,105, 72, 46, 58,111,171, 52,162, 86,116,206, 22, - 0,117,197,155, 5, 61,231,104,149, 4, 62,159, 95,174, 90,197,227,241,202,117, 29,206,156, 57, 19, 38, 38, 38,165,117, 64, 52, - 56, 56,248, 85, 66, 66,194, 78, 74,233,150, 47, 41,156,243, 55,158,191, 92, 58,163, 79, 54,242,125,171,230,230,230, 41, 29, 58, -116,200, 1,160, 61,126,252,211, 1,178, 90,173, 46,181, 3, 55, 51, 51, 91,186,123,247,238,169,189,123,247,230, 21, 15, 49, 80, -212,189, 87,240,210,233,116, 56,126,252,248,212,185,115,231,162, 52, 21,172,160, 19, 87,228, 42,161,204,159, 8,253, 62,228, 79, -125, 75,175,212, 83,114,115, 7, 56, 87,173, 95,106,103,194, 19,229,205, 33,178,115,249,187, 3, 51, 49,145,130, 45,195, 38, 33, -188,240,200,232,120,167, 74,246,150,120, 31,147, 12,187,202,245,144, 30,247,119, 62, 8, 4,124, 8,243, 93,135,230,166,198, 72, - 78, 74, 2,143,199, 47,147, 24,175, 56,252, 28,143, 66, 34,113,242,250, 11,104, 85,185, 88,191,255, 50,180,234, 28,104, 85,185, -208,170,242,222, 87,205,253, 17,132,224,163, 86,149, 83,163, 34,229, 46, 16, 8,208,188,121,243, 82,137, 78, 92, 92,156,158,138, - 22, 45, 84,180,148,170, 10,150,145,126, 15, 97,153,138, 85,193,249, 47, 37, 6, 5, 33, 31,100, 50, 89,147,125,251, 74, 15,227, - 80, 18, 28, 28, 28, 46,201,229,242, 42,250, 94, 95,129,224,165,171,204,205,205,151,214,170, 85,203, 99,253,250,245, 66, 62,159, -143,142, 29, 59,214,248,241,199, 31,163, 0,160, 94,189,122,142, 5,109,204,196,137, 19,233,195,135, 15, 67,242,198, 24,165, 67, - 44, 22,191, 54, 51, 51,107,226,229,229,133,204,204, 76,196,196,196,192,216,216, 24,181,215,174, 69,240,196,137,104,176,125, 59, -120, 29, 58,128, 16, 2,177, 88,140,224,224, 96,200,100,178,215,101,144,161,230, 0,126, 3,208, 26,127,187, 11, 41,128,251, 0, -126,166,148, 62, 42,161,189,227, 1, 0,203,113,229, 21,214,208,217,179,103, 35, 67, 40, 4,188,189, 33, 10, 15,135, 86,171, 69, -139, 22, 45, 10, 85,246, 22, 45, 90, 64, 32, 16,160,126,253,250,112,116,116,196,214,173, 91,135,226,211,149,216,159, 64,149,163, - 69, 84,120, 44, 90,182,108, 89,168, 92,121,123,123, 23, 42, 90, 66,161,176, 80,217, 34,108,249,196,149, 16, 66,139, 14,146, 89, -150, 37, 2,129, 64, 48, 99,198, 12,210,175, 95, 63,170,209,104, 56,177, 88,204, 59,121,242, 36,185,117,235,150, 32, 55, 55,183, -220,129,120,221, 62, 3,240, 75,231, 60, 81,116, 69, 21, 27, 8, 69, 66,136, 69, 34,204,126, 29, 91, 88, 46,166,251,142,138,253, -252,252,250,215,170, 85, 43,207, 13, 15, 8, 12,113,180, 12, 40, 71,205, 74, 46, 70,146, 52, 69,142,147, 1,144,252,227,228, 34, -132, 42, 25,121, 43, 8,155, 22,187,182,224,188,166,216,123,193,249,192,138,166,189,200, 94,135,159,145,175,178, 70,196,111, 31, - 60,120,224,222,184,113, 99, 68, 71, 71,127,182, 18,174,160,227, 50, 54, 54,134, 76, 38, 67, 64, 64, 0, 0,188, 45,205,216,205, -155, 55, 55, 35, 47,234, 50, 0,192,209,209,177,165,215,192,246, 1,205,186, 54,197, 97,223, 35,153, 9, 9, 9,245, 11, 98,232, - 16, 66,136,163,163,227,112,161, 88, 48,168, 90, 93, 23, 79,112,220,111,215,255,186,183,164,172,155,172, 86,163, 78, 14, 0,101, -145, 85,135,107,190,164,160,121, 60,222,128,222,189,123,243, 94,189,122,133, 65,131, 6,225,224,193,131,165, 94, 59,124,248,112, - 28, 61,122, 20,189,123,247,230,205,155, 55,111, 64,121, 68, 43, 79, 45,209,124,179, 74, 25,246, 46, 16, 7,142,238, 46,117, 14, -146,173,109,222,124,172,164,164,148,194,239,154, 54, 46,219, 51,194, 49,154,107,207,159, 62,110,217,170, 93, 71, 81, 76, 98, 6, - 56, 70, 13, 85,246,223,191, 87,100, 36,130, 50, 42,136,140, 44, 97,111,109,134,103, 15,174,106,180, 26,213,181,178,108, 78,237, - 93, 7, 19,123,122, 0,148, 67,159, 89,127,224,252,150, 41,133, 35,232, 54,253,166,225,198,241,141,122,207,241, 43, 14,161, 80, -136,224,224, 96,101,105,106, 22,159,207, 47, 55, 38,215,223,170,163, 14, 10,133, 18, 10,165,234,155,149, 17, 33,196,198,206,206, -238,119, 75, 75, 75,105, 73, 68,138, 16, 98, 99, 99, 99,243,187,149,149,149, 84, 95,215, 97,105, 36, 43, 63,174,214,211,145, 35, - 71, 86,136,108, 73, 36,146, 42,111,223,190, 45, 12, 86, 90,214,187, 70,163,129,151,151,151, 94,193, 75, 41,165,231, 8, 33, 31, - 28, 28, 28,238,215,174, 93,219,236,253,251,247, 56,114,228,136, 72, 40, 20,186, 20,180, 31,217,217,217,224,243,249, 72, 74, 74, -210, 1, 24, 93,158,235, 76,173, 86,251,251,251,251, 55,236,217,179, 39,255,245,235,215,224,243,249,121,233,106,217, 18, 13,182, -111, 71,200,140, 25,240,140,140,132, 74,171,133, 84, 42,197,149, 43, 87,180, 10,133,194,191, 52,123, 50,153,108,103, 68, 68, 68, - 29,169, 84, 10,173, 86, 11,142,227,192,227,241,136, 64, 32,104, 99,110,110,190, 9, 64,211, 79,159, 41, 91,219,241, 51,127,173, -201, 50, 12,155, 16,253, 62,185,188, 60, 72, 77, 77,197,185,115,231,208,162, 69, 11,120,122,122, 34, 46, 46, 14,225,225,225,232, -222,189,123,225, 53,129,129,129,120,254,252, 57,220,220,220,202, 87,244,120, 58,184,213,172, 2,145, 72,148,167, 16, 9, 69,249, - 3, 31, 97,161,146, 37, 18,138, 32, 20, 8, 33,149, 73,245, 86,180, 8, 33,224,241,120, 32,132, 64, 38,147, 21, 12,178, 57,103, -103,231,132,180,180, 52, 7, 0,124,153, 76, 6,150,101,245, 26,180, 20,244, 17, 5, 36, 75, 36, 22, 21, 42, 91, 0,144,145,145, -161,234,221,187,247, 33,181, 90, 61, 10, 95,176, 67,137, 1,255,147,120,242, 47,250,173,222, 60,145, 82,186,179,164, 73,241,101, - 85,240,238,173, 90,181,218, 62,100,200,144,142, 27, 54,108,128, 92, 46, 71, 66, 66, 66, 97,135, 40, 22,139, 81,169, 82, 37,164, -165,165, 97,199,142, 29,136,141,141,189, 9, 96,188,190, 41, 74, 72, 72,120,248,238,197,219, 84,175,254,173,172,234,180,170,105, - 30,243, 54,182, 5,128,128,124,146,245,199,144,153,221, 71,121,245,109, 6,145, 88,136,152,119, 31,255,223, 74,146,207,231,243, - 9, 33, 24, 52,104,144, 94,215, 15, 30, 60, 24,254,254,254, 40,203,205,200, 21, 40, 90, 10, 21,114,149,223,110,176, 54,105,202, -112, 76,154, 50,188,144, 76,232,227,122,201, 35,185,199,202, 32, 90,218, 13,231,143,237, 24,215,168, 89, 75,215, 38,117,170,224, -209,211, 23, 56,188,253,111,145, 97,207,230,101,248,117,207, 77, 84,178,179,128, 86,157,139, 75,127,238,250,168, 85, 43, 54,124, -161, 40,151, 71,110, 9,129,158,113, 42, 63, 81, 81, 11,136, 86,221,186,117, 75, 85,180,210,210,210,148,229,117, 12,133,101,164, -209, 33, 39, 87, 9,165,226,219, 16, 45, 66, 72,131, 54,109,218, 92, 59,113,226,132,149,173,173, 45,226,227,227, 63, 33, 90,132, -144, 6,173, 91,183,190,118,226,196, 9, 43, 59, 59, 59,196,196,196,232, 29, 86,164, 4,146,133,228,228,100,146,158,158,206, 89, - 88, 88, 84,136,108,241,120, 60,168,213,106,132,134,134,234,251,183,122,175, 16, 51, 51, 51,219,119,244,232, 81,179,148,148, 20, -240,249,124,132,134,134,126,178,234,176,224,245,199, 31,127,136,250,244,233,179, 27, 64,153,203,218, 24,134, 89, 55,124,248,240, - 49,113,113,113, 22,182,182,182, 72, 72, 72,128, 88, 44, 6,165, 20,196,203, 11,109, 63,124,128,150,101, 33,147,201, 16, 22, 22, -134,157, 59,119,230,170,213,234,117,165,148,143,216,200,200,200, 93, 36, 18, 97,216,176, 97,159,156,219,191,127, 63,122, 53,225, - 55, 25,215, 89,146,195, 64,170, 78,148,117,187,196,231,243,201,248,217,191,213,104,222,206,187,238,155,144, 71,239,147, 19, 99, -239,151,115,251, 58,141, 70,131, 90,181,106,225,201,147, 39,184,126,253, 58, 58,116,232, 0, 79, 79, 79, 4, 5, 5,225,234,213, -171,120,254,252, 57, 8, 33,176,178,178, 42,152,126, 81,230, 28, 12,141,130, 65, 82,124,234,103,234, 85,241, 99,145, 72, 4,181, - 82,171, 87, 25,189,126,253, 26, 79,158, 60, 41, 12, 45,195,231,243,153, 31,126,248, 1,148, 82, 26, 17, 17, 1, 19, 19, 19, 58, -114,228, 72, 86, 32, 16, 48,113,113,113,250,214,253, 60,245, 42,159,100, 9, 68,194, 79, 8, 26,199,113,217,129,129,129,227, 8, - 33, 65,132,144,213,249, 95, 27,226,104, 25,240,159,140, 11, 69,247, 58,212, 75,209,162,148,126, 0,208,137, 16, 50,244,204,153, - 51,235, 54,109,218,100,211,163, 71, 15,164,167,167,195,213,213, 21, 14, 14, 14, 56,127,254, 60, 46, 94,188,152,194,178,236, 44, - 74,233,193, 18, 30,182, 78,165,197,218,160,148, 82, 71, 71,199, 19,234,156,156,137,141, 61, 61,112,243,248, 93, 95, 7, 7,135, -241, 78, 78, 78,211, 71,206,255,126, 84,251,222, 77, 17,246, 60, 2, 15,175, 6, 35, 49, 58, 5, 35,219,254, 92,166,205,226,147, -225,205,205,205,199, 24, 25, 25,137, 1,104, 75, 24, 21,127,178,234,176,168, 77,150,101, 89,141, 70,131, 99,199,142,233, 69,182, -142, 28, 57, 2,149, 74, 5,182,152,127,181,168, 77,202, 81, 34, 16, 74,224, 88,169, 22,180,218, 92,112,220,151,169, 55, 69,109, - 22,140, 64,223,139,197,176, 77, 73,193,163, 71,143,244,149,102,203, 44, 35, 74,169,138, 16, 50,108,227,202,217,231, 39,251,252, -102,222,161, 85, 67,252,178,118, 63,180,218, 61,224,241,121,144, 73, 68,104,220,172, 53,248, 80,227,119,191, 57, 25,138,172,244, - 97,197,183,226,249,204,102, 89, 30, 22, 10,176, 28,135,235,119, 30,235,125,239,133,189, 61,203, 66, 32, 16,224,221,187,119,202, -146, 86, 27,242,249,121,110,206,130,145,122, 89, 54, 41,199, 17,161, 72,138, 74,174,181,161, 81,231,124,147, 50,178,181,181,157, -115,250,244,105,171,130, 80, 9, 65, 65, 65, 32,132,132, 22, 81, 71,230,156, 62,125,218, 74,169, 84, 34, 36, 36,164, 96,171,169, -208,138, 60, 71, 5, 74, 86,114,114, 50, 73, 72, 72,128,145,145, 17, 47, 40, 40, 72, 93,191,126,253,167, 40,123,231,135, 66,155, - 42,149, 42,178,180,249,147, 42,149,202, 73, 42,149, 10,139,253,214,209,221,221, 61,172,184, 11,177,164,116,102,102,102, 62,154, - 59,119,110,227,174, 93,187, 98,206,156, 57,105, 22, 22, 22, 38,191,255,254,187,128,207,231,147,201,147, 39,179, 73, 73, 73, 57, -187,118,237, 50, 59,115,230, 12, 50, 50, 50, 2,202,187,119, 74,105, 54, 33,100, 92,171, 86,173,246, 95,190,124,217,200,221,221, - 29, 89, 89, 89,160,148, 98,223,190,125,152, 60,121, 50,164, 82, 41,194,194,194,208,171, 87, 47,133, 66,161, 24, 87,124,238,100, - 17,155,132, 16, 66, 57,142,195,162, 69,139, 10,131,147, 22, 4, 43, 53,145, 17,236,156, 89,213,120,218,174, 76,227,161,191,236, -250, 1, 0, 88,134, 97,223,132, 60,122,191,111,203, 47,183, 68, 34,209,157,114,202,104,193,180,105,211,126,247,246,246,150,201, -229,114,164,165,165,225,254,253,251,120,240,224, 1, 30, 62,124, 8,141, 70, 3, 43, 43, 43, 88, 88, 88, 32, 33, 33, 1,175, 95, -191, 86, 2, 88, 80,150, 77,177,145, 16,213,106, 20,172,252,205, 83,176,132, 69, 86, 27, 22, 85,183, 68, 66,161, 94,207, 81,187, -118,237,208,188,121,243, 2, 2,196, 70, 69, 69, 37,168,213,106, 82,132,244,199, 21, 16,114, 23, 23, 23,230,224,193,131,180, 44, -155, 15,119,110,197,229,229, 11, 32, 22,137, 48, 43, 52,166,144,116,237,239,208, 8, 66,177, 8, 30, 61,251, 21,237, 7,182, 17, - 66,246,228,127, 86,235, 83,231,191, 98,224, 99,176,249,111,110,243, 63, 25,148,210, 4, 0, 21,219,130,167,200,143, 15, 19, 66, - 46,253,248,227,143,126, 13, 26, 52,248,113,253,250,245, 68, 36, 18, 97,201,146, 37, 52, 62, 62,126,111,254, 40, 36,253, 11, 19, -182,247,246,169,128, 9, 35,124,122,147,153, 27, 70,182,121,122, 35,228,117,189, 86,238,168,215,202, 29, 79,111,190,194,150,249, - 71, 14,178, 58,118, 81, 66, 66, 66,116, 57,166,212,157, 90,215, 44, 62, 25,222,202,255,214, 13,171,138,174, 58,228, 56,238,196, -145, 35, 71,166,246,237,219,151,247,248,241,227,207,230,100, 21,108,187,195,113, 28,174, 93,187, 6,173, 86,139,189,123,247,114, - 28,199,149, 30, 71, 11,244,236,198, 13,126, 35,246, 30, 56, 43, 22,139, 8, 30,220, 57,137,204,244,178, 85, 58,145, 72,136, 63, -246,157,210,138, 68,194, 55, 37,157,215,106,181, 49, 55,110,220,176,235,194,178, 66, 30,143,247, 25,129, 42, 13, 39, 78,156,208, -113, 28, 23, 85, 78,185, 4, 16, 34,236,185, 98,206,232, 35,222, 3,127,180,107,213,170,141,208,218,214, 14,132, 16, 36, 37, 38, - 33, 44,228,177,238,210,201,221,137,185,138,108,189,182,224, 25,189,230,118,225,156, 44, 0,232, 49,121, 83,225,252, 44, 0,232, - 57,114, 46,188, 90,212, 1,209, 71,122,250,155,100,113, 12,195,192,216,216, 24, 12,195,148, 24,226,193,204,204, 76,166, 82,169, -148,249,129, 24,203,148,138, 40,240,205,203,136,101, 89,143,244,244,116,228,230,230,226,193,131, 7,116,229,202,149,201,201,201, -201,133,147, 54,117, 58,157, 71, 90, 90, 26,114,114,114, 16, 16, 16, 64,253,252,252,146, 83, 83, 83,231, 87,228, 25,146,201,100, - 77, 4, 2,193,211,244,244,116,206,200,200,136,167,211,233,116,245,235,215,151,200,100, 50,189, 55, 84,143,143,143,239, 90,218, - 57, 55, 55,183,183,111,223,190,173,206,178,108,209, 61, 16, 69, 42,149,202,189, 85,171, 86,250,184,124,166,237,217,179, 7,167, - 78,157,106,150,149,149, 53, 60, 42, 42,106, 63,128,102, 2,129, 0, 47, 94,188, 8, 85,169, 84, 67,250,246,237,187, 47, 61, 61, -253, 17,128,105,122,182, 27,151, 9, 33,195, 60, 60, 60,246, 44, 93,186, 84,238,233,233, 41,112,116,116, 68,211,166, 77, 17, 22, - 22,134, 11, 23, 46,232,182,109,219,150,171, 80, 40, 70, 83, 74,175,149, 93,236, 32, 12,195, 64, 44, 22, 23,190, 36, 18, 9, 68, - 34, 17,178,149, 20, 99,215,134, 43, 25,200,148,235,150,140,187, 64, 1,242, 49, 38, 60, 37,233, 99,204, 35, 66,200,157,248,248, -248,204, 82,242, 76,172, 82,169, 26, 58, 56, 56,240, 9, 33, 27,180, 90,237,200, 41, 83,166, 56,172, 90,181, 10, 53,107,214, 68, - 74, 74, 10,140,141,141,225,238,238,142,228,228,100, 60,126,252,152, 85, 40, 20,219, 1, 44,163,148,150,233,142,204, 72,201,130, -179,189,203, 39,202, 39,165, 20,148, 5,116,106, 22,172,150, 66, 67,116, 16, 10,117, 16,137, 68,250,116,150,148,227, 56,164, 59, - 56,128, 11, 9,193,195,135, 15, 65, 41, 45, 85, 85,171, 85,171,150, 30, 5,196, 65, 44, 17,127,226, 46, 36,132, 64, 36, 22, 67, - 40, 22,125,182,114,198,160, 98, 25,240,223, 14,125,231, 90,100, 0, 24, 79, 8,217,223,190,125,251,243,148, 82, 33,242,252,145, -119,191,230,207, 19, 18, 18,158, 57, 58, 58,206,179,115,182,240,235, 54,188, 13,106, 54,116, 5,203,176,184,127,241, 5,246,174, - 58,115, 52, 46, 38,110,164, 62,123,159,113, 28,119,171,117,147,154, 60, 20,137,213,237,232,232,200,125,201,170,195,204,204,204, -197,179,102,205,194,156, 57,115, 42,188,234,176,180,107,130, 66,147,198, 55,240,176,113,238,217,173,109, 23, 16, 30,213,104,212, -101, 52,124, 40,140, 92, 42, 18, 9,223, 60, 14,140,175, 95,210,117,201,201,201, 93, 70,141, 26,117, 77, 32, 16, 84,169, 72,158, -115, 28, 23,149,152,152,216,177,252, 50,215,221, 39,132,184,159, 59,186, 99,198,229, 83,123,186,112, 28,235, 70, 0,240, 5,162, -247, 58,173,246,138, 90,153,181, 94,223, 77,165, 87,143,111,137,105, 27,175, 98,235,156,158,152,226,119, 28,187, 23,141,197,188, -181, 71,240,219,156,105, 88,185,233, 16,126,153, 54, 12,253,135,142,226, 40,225,221,211,247, 62,248,124,254,229, 29, 59,118,140, - 24, 59,118,108,225,162, 5, 74,233, 39, 13,187, 78,167, 83,114, 28,135,237,219,183,115, 0, 46,151,101,239,211, 50, 34,180,172, -249, 82,250,150, 81, 86, 86,214,232,150, 45, 91,238, 3, 32,161,148,190, 75, 79, 79,255,137, 82, 90,184, 53, 84, 78, 78,206,232, - 86,173, 90,237,163,148, 74, 8, 33,159,157,215, 7,249,161, 30,154, 88, 88, 88, 60,205, 87,178, 36, 95, 50, 33,190,172,172, 46, -195,173,200,234,209,118,112, 40,178,173, 14, 33,100, 85,179,102,205,138,110, 42, 29, 10,160, 73, 69, 19, 69, 41,189, 70, 8,169, -179,104,209,162, 25, 82,169,212, 75,161, 80,212, 0, 0, 99, 99,227, 48,181, 90,125, 75,169, 84,174,207,111,183,202,178,161, 49, - 50, 50, 10, 99, 24,166,174,141,141, 77,222,138,218,124,178, 5, 0,127, 61,101,159, 82,202, 52,173,104,218, 46, 94,188, 88,217, -194,194,226, 59, 66, 72,127, 74,105,173,236,236,108,245,162, 69,139, 2, 78,156, 56,145, 89,165, 74,149,110,222,222,222,196,210, -210, 18, 79,158, 60,161,169,169,169, 39, 1,204,215,103,165, 53,199,113, 81,171, 87,175, 70, 69,159,247,178,206,107,181,218,143, - 23, 47, 94,180,238,154,148, 36,224, 56, 14, 61,123,246,252,132,192, 21,199,155, 55,111,160, 86,171,203, 12,230,168,206, 76, 71, -135, 25,115,129,252,213,159, 5,200, 83,178, 40,168,198,192,171, 12,248,223, 2,249, 71,150, 63, 87, 80, 90,116,116,116, 28, 36, - 53,150, 76,114,173,225, 80, 63, 62, 60,233, 85,118,166,226, 96, 66, 66,194, 14, 74, 41,251,165, 54, 43, 18,176,212, 32,255,254, -115, 54,255,142,163,197,130, 82, 22,148,163,160,148, 3,199,177,121, 27, 94, 83, 14,148,101, 9, 33,184,167, 86,100,142,213, 55, -157,132, 16, 11,107,107,235,101,148,210,174,124, 62,159, 87, 84, 12, 43,250, 57, 95,201,186,156,156,156,252, 75,113,229,245, 63, - 49, 63,255,252,243,207, 18,201,191,190,171, 14,251,247,239,207, 86,240,217,188,101,108,108, 92, 98, 96,206,220,220,220,232,248, -248,248,239,254, 29,242,179, 64, 13,165,122, 52,104,197, 92,240, 21, 94,117, 88,158,205,202,149, 43, 75,180, 90,109, 35, 0,238, -132, 16,115, 0,105, 90,173,246, 74,114,114,114, 34, 33,164, 9,128, 69,249, 63, 91, 78, 41,125,250,175,124,222, 9, 33, 50,107, -107,235, 61, 60, 30,207, 89,159,223, 51, 12,163, 73, 75, 75, 27, 81,116, 64, 80,212,166,181,181,245, 83,129, 64,224,172,135,157, -216,148,148,148, 38,134,246,211, 96,243,191,134, 76, 21,155, 4, 95,244,248,223, 98,181, 71,124,124,252, 49, 0,199,190,165,205, -210, 34,191, 27,240,255,139,220,180,132,127,164, 28,242, 73,211,228,255,181,252, 44, 32, 74, 37,124,255, 12, 0,249, 7,158, 77, -175,255,132,124,161, 95, 56, 98,204, 39, 82,109,191,101, 90, 34, 35, 35,213, 0, 2,242, 95,197,255,239, 41,128,158,255, 70,249, -166, 4, 48,232, 91,217, 43,139, 60, 25, 96,192,255, 42, 12,203,106, 13, 48,192, 0, 3, 12, 48,192, 0, 3,190, 14, 23,138,109, -193,115,161,224, 3, 1,208,169,148,145,142,222,146, 32, 33,164,211, 23,140,164,174, 27,108, 26,108, 26,108, 26,108, 26,108, 26, -108, 26,108,254,111,217,252,159, 67, 65,224,200,127,226, 5,160,147,193,166,193,166,193,166,193,166,193,166,193,166,193,166,193, -230,127,243, 11,192,184,210,142,121, 6,170,105,128, 1, 6, 24, 96,128, 1, 6, 24,240,207, 64,111,162, 37,183,247,240,176,169, -220, 96,159,101,165,250, 65,150,149,234, 7,217, 84,110,176, 79,110,239,225,241,191,152,105,132, 16, 25, 33,100,168, 80, 40,188, -230,224,224,144, 69, 8,153,241, 95,122,159,166,132,144,254,132,144,101,132,144, 62,132, 16,163,111,105,191, 61, 33,130,193,132, - 76, 26, 65, 72,244, 8, 66,162, 7, 19, 50,169, 61, 33,255,117,243, 6,151, 78,115,108,121,247,242,176, 75, 75,167, 57,182, 44, -241,252,108, 71,171, 71,215, 6,110,244,157,236,100,249,141,202,205,196,206,206,110,167,189,189,125,164,157,157, 93,148,157,157, -221, 30, 66,136,153,161,185, 51,192, 0, 3, 12,248,199,112,129, 16, 50,174,224,133, 34,115,180, 4, 0,112,225,194, 5, 79, 0, -183, 1,180,247,246,246,246, 47,254,107, 75,215,122, 99, 61,106,213,156,179, 98,201,124, 98,111,107,109,196,176,156, 54, 34, 50, -166,246,226, 21,126,127, 90,186,214, 91,151, 22, 21,188,251, 11, 58, 3,194,231,243, 7, 73, 36,146, 30, 0, 10, 8, 91,168, 90, -173, 62,207,178,236, 49,125, 87, 17,217,219,219,223,225,243,249,149, 43,242,223, 44,203, 70,127,252,248,177,205, 23,118, 98, 3, - 92, 92, 92,246,120,122,122, 26, 53,107,214, 12, 98,177, 24,139, 22, 45,154, 5, 96,189,190, 54, 44, 45,221, 76,180, 18,233,116, -129, 88,220,153,234, 52,117, 41, 40,192,147,132,112,140,250,134, 72,173, 94,151,150,246, 62, 91,207,180,204, 7, 48, 18,121,203, -209,119, 83, 74, 87,127, 77, 45, 25,217,136,232,116,108, 94,157, 16, 9,192,154,153,153,221, 94,176, 96,129,160, 71,143, 30,216, -189,123,119,155,157, 59,119,142, 35,132,220, 0,240, 23,165,244,253,215,214, 74, 59, 96,124,171, 54,109, 54,142,152, 53,139,175, -188,115, 7, 27,247,236,217,128,172, 44, 0,216, 90,209,186, 36, 18,161,191,181,181,176, 7,165,104, 68, 0, 66,128, 23,201,169, -220, 69,173,150, 61, 70, 43,186,191,207,167,182,135,226,211,229,248,135, 43,106, 35,243, 61, 93, 40,233,233,209, 54,243,253,173, -133, 0,186, 21, 63,207,168,164, 35, 40,191, 82, 15, 37,125, 30, 3, 96,237, 87,146, 44, 35, 27, 27,155,160,179,103,207, 58, 55, -107,214, 76, 0, 0, 79,159, 62,253,161, 71,143, 30, 29, 8, 33,117, 41,165, 89,255, 34,210, 46, 21,240,120,147,196, 66, 97,103, -150,101,235, 1, 0,159,207, 15,214,232,116,215, 24,142,219,170,111, 76, 54, 3, 12, 48,224,191,152,169,148,195, 69,254,157,161, - 79,100,248,219,222,222,222,228,194,133, 11, 20,197,150,136,203,237,106,213,174, 83,199, 99,214,229,211,251, 43,101,164,101,168, - 54,175,217,255, 44, 87, 32, 86,184,215,118, 23,109, 94,191,218, 98,210,180,153,211,229,118,181, 30,229, 36,190,126, 85,129, 70, -215, 69, 38,147,157, 90,179,102, 77, 93, 47, 47, 47,161,173,173, 45, 18, 19, 19, 17, 26, 26, 90,247,230,205,155,189,247,239,223, - 63,139, 16,210,151, 82, 26,173,135, 57,247, 27, 7,246,216, 26, 91, 90,129,213,233,224, 88,191, 81, 97,160,189,119, 55,175,130, -209,106,193,233,116,240,232,209, 27, 0,192,113, 28,106,215,174,205,255,146,140, 36,132, 56,214,169, 83,231,224,170, 85,171, 68, -106,181, 26,143, 30, 61,194,173, 91,183,184,132,132, 4, 63,125,109,200,237,106,120,241,100,198,199, 6, 13,251,209,236,251, 30, - 85,133, 46,118, 54, 0,140,240, 38,130,105,117,233,234,205,166,167,143,237,157, 40,183,171, 49, 40, 39, 49,236, 86,217,100,205, -178, 5, 33,100,101, 65,132,104, 66,200,111, 85,170, 84,249,165,232, 53,197,247,205,163,148, 66, 32, 16, 36,102,103,103, 15, 74, - 73, 73,121, 94,220,166,142,133,224,240,225, 60, 30,177,112,210, 80,254,189,123,247,140,107,215,174,173, 6,128,213,171, 87, 99, -217,178,101,226, 43, 87,174,116, 63,112,224, 64,119, 66,200, 6, 74,233, 95, 95, 83, 49, 69,192,207, 35,102,205,226,203, 35, 35, - 33, 15, 12,196,176,172, 44,193,175,192,207, 21, 33, 90,132,144,170,246,246,194, 63,103,205, 28,229, 81,205,173,133, 72, 36,178, -206,219,196, 91,147, 82, 35, 58,250,121,127,191, 95,119,250, 16, 66,250, 81, 74,223,233,105, 79, 0, 96, 41, 0, 41,128,133, 0, - 22, 37, 39, 39,187,179, 44, 11,123,123,251, 69,132,144, 51, 0, 86,216,216,216,208,228,228,228,185,148, 82,166, 44, 37, 43,235, - 61, 93,248,145, 84,235, 90,179,241, 8,124, 36,151,187,206,236,230,112,201,212,141,172, 88,188, 49,254, 1, 0,116,115,115, 51, -169, 86,203,120,174,220,180,158,101, 86,220,245,185,221,220,220,118, 93,122,175, 31,209, 46, 78, 54, 1,192,209,209,113,245,129, - 3, 7, 42, 53,111,222,188,176,142, 55,108,216,144,191,122,245,106,167, 25, 51,102,108, 0, 48, 74, 79,123, 53,108,108,108,174, -176, 44,171, 78, 77, 77,173, 81,240,189,109,131,190,173,172, 76,140, 59, 38,167,103,223, 73,121,121,198, 95, 79, 91,205,164, 34, -209,201,191, 14,110,116,104,216,188, 37, 79,110,109, 11, 85, 92, 60,114,116,218, 78,183,238, 63,108, 63,110,210,207,211,242,203, -232,177,161,171, 49,192,128,255,105,148,202, 69,254,147, 33, 40,194, 36, 75, 84,144, 36, 18,177,207,226, 5,115, 73, 70,106,134, - 82,149,149,173,209,169, 84, 42,158,136,170,130, 95,125, 72,226, 9,248, 25, 51,166, 77, 53,241,153,183,192, 7,192, 48,125, 73, - 86,131, 6, 13, 30,159, 58,117,202,214,210,210, 18,153,153,153, 72, 77, 77,197,227,199,143, 65, 41, 69,223,190,125, 37,205,155, - 54,109,180,112,209,162, 7,132,144,150,250,144, 45, 99, 75,107,172,110,147,183, 23,237, 47,145,169, 5,255,131,157, 3,122, 20, - 94,179, 44, 54, 19, 0, 32,149, 74, 11, 55, 36,254, 2,180,236,216,177,163, 8, 0,198,140, 25,147,149,157,157,237, 11,224, 48, -165, 84,175,157, 86,229,118, 53,188,172, 29, 28,207,255,190,125,181,172,158,155, 59,180, 58, 6, 81, 31,227, 33, 16,154,195,217, - 89,132, 81,195, 58, 11,219,181,178,180, 94,185,124,231, 5, 99,155, 26,125,114,147,195,174,148,102,203,220,220,124,255,177, 99, -199,112,252,248,113, 0, 64, 88, 88, 24,220,221,221,141,203, 75, 67, 72, 72, 72,181, 94,189,122, 29, 5, 80,189,188,107,139, 7, -198,151, 72, 36,104,211,166, 13,106,215,174,141,179,103,207,182, 7,240,215,215, 86, 64,229,157, 59,144, 7, 6, 2,254, 21, 31, -188, 16, 66,170, 54,110,236,250,240,226,133,131,214, 23, 46,134, 98,237,218, 61,120,255, 62, 79,104,171, 86,173, 26,134, 14, 25, - 32, 12, 14, 14,168,211,191,255,208, 0, 66, 72, 27, 74,105,152, 30,102,151,238,218,181,107,126,149, 42, 85,208,191,127,255, 1, -117,234,212,177, 55, 53, 53,197,142, 29, 59,224,224,224, 80, 77,163,209,188, 59,123,246,172,227,199,143, 31, 49,117,234, 84, 0, -152, 85,154,161,246, 93,218, 47,148,244,244,104, 91,179,241, 8,200, 77, 29,176,235,200, 49,188,121,182,191,173, 90, 27,186,208, -119,178,211,112, 37,149,140,116,118, 55,241,169,220,196,211,170,122,157, 94,112,109,252,220, 90,197,222,253,176,104, 82, 53, 63, -129, 84,181,127,241,154,248,212,207,238,121,192,159,252,186, 89,175, 45, 67,174, 33,149,210,197, 92, 62,193, 42,108,144, 88,138, - 94,237,218,181, 43, 44,184,200,200, 72,168,213,106,120,120,120,240, 52, 26,141,151,158,249, 90,227,187,239,190,187,119,241,226, - 69,171, 26, 53,106,124,178, 37,140,189,149,121, 23,255, 83, 27,166,174,220,120,168,150,109,237, 62, 25, 73,175, 78, 7,151, 71, -178, 90,183,104,124,253,210,169,131,114,146, 19, 3,177,121, 10,192,165, 34,252,232, 31, 32, 70,150, 24, 52, 97,166,192,171, 99, - 7,167,206,221,250, 93, 39,132,116,164,148, 62, 49,244, 53, 6, 24,240, 63,173,106,209,255,182,123, 42, 36, 90, 69, 88,228, 39, -224, 40, 87,223,206,214, 74,182, 97,205,190, 39,124,173, 70, 99,108,110,166, 17,154,153,114,196,196,140,175,213,232,114, 92,171, -185,138, 57,202,213, 47, 69, 74,187, 94,124,212, 45,147,201, 78,253,245,215, 95,182, 66,161, 16, 28,199,193,198,198, 6, 17, 17, - 17,200,200,200, 64,118,118, 54,222,135,134,162,138, 75, 37, 44,241,153,235, 48,117,174,207, 41, 66, 72,147,162,110,196,146,150, -141,178, 58,109,241,198,189,180, 77,132, 63,121, 47,203,102, 41,136,136,142,142,134, 92, 46, 71,221,186,117,229,247,239,223,191, - 91, 26,201, 42,110,211,210,210,205, 68, 32,151, 29,223,246,251, 34,153, 86, 23,130, 87,225,105,168, 89,165, 45,236,172, 92, 16, -159,166,193,195,199,127, 33, 36,232, 48,220,156, 92, 48,121, 66, 7,169,223,234, 63,143, 89, 88, 84,117, 73, 79,255,144, 85,146, -205,172,172, 44,121,213,170, 85,225,226,146,183,239, 25,203,178,120,245,234, 21, 88,150, 45, 60, 46,250,190,239,228, 77, 48, 89, - 81, 24,241,195, 15, 72, 77, 77,149,151,100, 83,200, 7, 51,115,220, 80,129, 76, 8,136,141, 45, 53, 57, 57, 57,133,234,160, 86, -171,197,139, 23, 47,208,178,101, 75,207, 19, 39, 78,248,151, 35,161,234,149,159, 90,224,183,141,123,247,110, 26,150,153,201, 3, -128,221,132,112, 90, 74,127,211,183, 46,217,218, 10, 79, 94,190,116,192,154,207,123, 13, 75,179, 95,241,248,113, 20,180,218,188, -244,166,166, 38, 97,202,164, 44,136,132, 38, 56,123,246,144,149,135, 71,155,147,249,174, 51,174,156,116, 74, 47, 93,186,132, 41, - 83,166,224,213,171, 87,142,124, 62, 31,143, 30, 61,130, 76, 38,195,154, 53,107,248, 30, 30, 30,142,198,198,198,184,124,249, 50, - 18, 19, 19, 73, 89,233,188,125,229,246,138,204,247,183, 22,126, 36,151,187,238, 58,114, 12, 63, 14, 25, 4,123, 26,126,215,204, -141,172,248,174,103,235, 95, 40,191, 82, 15, 99,147,250, 22,238,117,123, 66, 36,150, 99,242,207,203, 16, 22,114,206, 66,145, 29, - 52,137,176, 49,149,144,191,247,223, 39,155, 42,159,232,207,110, 58, 18,208,248,154,203, 19, 87,199,198,227, 31, 1, 8,250,155, -104, 85, 19, 16, 30,107, 86,160, 94,190,123,247, 14,239,223,191,135, 64, 32,128, 82,169, 4,195, 48, 37,166,211,201,201,105, 60, -195, 48,191,228,151,243, 62, 7, 7,135,209, 7, 15, 30,180, 42, 74,180, 11,148,172,180,140,172,244,128, 39, 47,223,204, 28,223, -191,253,157,135, 33, 49,230, 13,122, 71,103, 4,158,201, 44,165,140,164, 50,177,248,228,229,211,135,228,186, 15, 55, 97,236,209, - 30, 66,185, 59, 88, 93, 28, 20,233,185,200,126,159, 0,245,239, 91,208,112,210, 12,156, 59,243,167,188, 78,189, 38, 39, 8, 33, -238,148, 82,205, 23, 60,155, 21,145,248, 13, 54, 13, 54, 13, 54,255, 13,109,150,197, 69, 0, 52, 6, 96,151,255, 57, 21,121, 83, -102,172, 1,164, 32,111, 59, 48, 59, 0, 26, 0,226, 34,191, 41,126, 92,244,218,226,199, 69, 63,167,230,127,182,205,127,127, 2, - 32,173,156, 65,165, 3, 0,111,228,205,205,242,206,207, 35,253, 34,195, 19,194,203, 98, 89, 78, 34,178,177, 85,141, 25,216,177, -222,213,235, 79, 95, 24, 89,155, 10,186,180,111,228,249, 56,248,195, 3,194, 35, 58, 66,120,122,205,251,224,243,249,131, 54,108, -216, 80,207,212,212, 20, 28,199,193,204,204, 12,201,201,201,208,104, 52,200,204,204,132, 58, 59, 11,218,236, 44, 4,198, 68,162, -181,103,123,244,235,250,157,199,161, 51,127, 13, 2,112,180, 44,187,142,245, 27, 21, 42, 89,203, 42, 91,253, 45, 77,196,100, 20, -146,174, 95, 27,185, 67, 36,151,163,243, 76,159,175,169, 88,207,197, 98,241,165,190,125,251,118,155, 61,123, 54, 47, 33, 33,225, - 50, 33,164, 53,165,180, 92,183,169, 86, 34,157, 62,113,122, 15, 11, 11, 57,197,137,107,127,161, 93,163, 33, 48, 18,243,145,154, -165, 5, 33, 64,232,203, 83, 32,196, 18, 65, 97, 9,104,219,208, 20,223,117,241,144,159,249, 51,116, 54,254,158, 31,244, 89,209, -164,167,167, 35, 41, 41, 9, 58,157, 14, 58,157, 14,253, 7, 12,192,129,253,251,145,155,155, 11,165, 82, 9,141, 70, 3,150,101, -193,227,241,112,237,252, 9,196,124, 8, 69,171,150, 45, 81,154, 36,187,239, 57, 21, 18, 66, 30,190,121,243, 6,161,161,161,136, -141,141,133, 84, 42,133,189,189, 61,150, 45, 91, 6,181, 58,111,143,178, 1, 3, 6,120, 2, 8,254,218, 7,234, 61,176, 51,130, -101, 23,118, 59,125,218,246,254,233,211,220,195,115,231, 98, 37,217,217, 59,244,249,173, 72,132,254,171,127,155, 80,211,216,216, - 24,177,209, 27, 80,171,150, 8,179,102, 88,193,247,215, 20, 0,192,212, 41,206,104,218,196, 26, 89, 25,127,194,218,118, 62, 54, -109,154,230, 54,114,228,186, 31, 0,236, 43,199,244,194,191,254,250,171,159,187,187,187,211,243,231,207,137, 88, 44,134, 76, 38, -131, 76, 38,131, 84, 42, 69, 82, 82, 18, 34, 34, 34,232,234,213,171,227,144,231, 90, 44, 21,249,238,193,110, 51,187, 57, 92,122, -243,108,127, 91, 39,254,135,192,126,147,219, 68, 6, 61,124,158,125,245,218,253,229,140, 74, 26,147, 17,123,125,110,213,166,207, -173, 39,205, 89,138, 45,171, 23,227,205,163, 59,105,118, 46, 89, 91,101, 68,189,175,121,231, 18, 84,178,246, 75, 5,147, 22, 13, -100,198,143,236,103,126,206, 46, 96,252, 69, 1, 73,254,152,242,108, 13, 34,158, 43, 37,213, 27, 13,175, 81,141,167,185,121,243, -166,172, 93,187,118, 80,169, 84,133,202,228,193,131, 7, 57,134, 97, 74,116, 71,107,181,218, 95,226,226,226, 28,148, 74, 37,186, -118,237, 58,117,205,154, 53,198, 5,123,212,177, 44,251,137,146,181, 98,253,129, 43,211,127,217,122,235,202,209, 95, 29, 87,248, -140,110, 63,108,242,202, 91, 40,101, 31, 73, 1,143, 55,233,220,233, 61,246, 82, 11, 29,100,150,223, 65,149,168,196,155,157, 63, - 66,145,165, 66,211, 21, 75, 1,136,161,209,241,176,163,103,127, 8,173, 28,177,120,236,104,199, 5, 59,118, 77, 0,176,193, 48, -174, 55,192, 0, 3,138,193,142, 16,114, 30, 0,124,124,124,230,251,250,250,190, 36,132,156,167,148,246,200, 39, 58,231, 41,165, - 61, 10,174,201,239,179, 63, 59, 46,184,182,248,113,241,207,243,230,205,171,227,231,231,183,170,101,203,150, 71, 3, 2, 2, 62, -148, 71,180,144,183,255,243,206,226, 91,241, 0,249,171, 14,189,189,189, 73,209,247, 79, 20, 45,142,187,243,238, 67,164,226,187, - 78,205,157,207,251, 7, 63, 25, 53,202,187,227,160,158,237,186, 68, 68,167,134,186,185,218, 91,191,124, 25,108,202,113,220, 29, -125,114, 73, 34,145,244,232,208,161,131, 32, 61, 61, 29, 70, 70, 70, 72, 78, 78, 70, 92, 92, 28,180, 90, 45, 84,153, 25, 80,103, -102, 64,149,145, 14,109,102, 58,222, 63,125,140,250,110,213, 36,249,147,229,203, 35, 64, 37, 42, 85, 69,149, 45,177,137, 9, 36, - 38, 38, 32, 21,116, 27, 18, 66,190,183,176,176,120, 72, 8, 89,152,223, 41, 77,154, 59,119,110, 10,199,113, 88,185,114,165,169, - 92, 46, 63, 65, 8,145,148,103,199,196,134,223,163,101,195,186,188,215, 17, 65,104,211, 96, 4,106, 84,237,142,136, 68, 37, 82, -178,181, 72,202,208,162,105,187,205,168,220, 96, 41, 42, 53,244, 69,104, 84, 26, 28,157,220,121, 16, 72,202,220,252, 57, 38, 38, -230,147,227,163, 71,142, 64,161, 80,192,205,205, 13, 67,134, 12,193,220,185,115, 49,100,200, 16, 56, 58, 58, 98,216,192, 94, 88, -188,120, 49, 62,126,252, 88, 94, 82,213, 53,106,212, 80,187,186,186,170, 93, 93, 93,213, 90,173, 22, 57, 57, 57,200,200,200, 40, -158,223,211, 42,252,148,216,217,205,115,112,112, 8,178,179,179,123, 41,149, 74, 47,190, 32,228,181,202,213,213,174,117,239,222, -164,246,192,129,252, 40,153,140,248, 3,114,125,108, 89, 91, 10,189,189, 58,116, 19,103,164,239, 1,144, 39, 82,141, 30,101,131, -123,254,117,112,255,110, 19, 76,153,228, 6,194,147,130,240,196, 80,228,222, 68,243,102, 45, 69,230,230,164, 71, 57,101, 61, 20, -192,139,214,173, 91, 59, 78,158, 60,153, 72, 36, 18, 76,157, 58, 85, 59,118,236,216,183, 67,134, 12,121,123,227,198, 13,214,213, -213, 21,149, 42, 85, 34,149, 42, 85,114, 0,240, 34,255, 55,101,194,212,141,172, 80,107, 67,239,154,187, 27,127, 96, 97,221, 42, - 71, 39,233,191,120, 77,124,234,242,173,225,107, 35,222, 40,170,189,121,116, 39,245,109,200, 57, 46,226,201,237,148,248,183,217, -213,150,111, 13, 95, 59,111, 75, 92,137, 15,181,191, 63,184, 83,231,253,181,138, 92,133,160,119, 79, 47,197,248, 49,131,106, 88, -202,235, 28,132,211,119, 13, 42,187, 56, 15, 91,188,106,147,118,236,132,233,218,221,127,236,161,217,217,217,200,202,202,194,166, - 77,155,152,115,231,206,197,177, 44, 59,189,180, 49, 16, 0,232,116, 58,140, 31, 63,222,216,212,212, 20, 49, 49, 49,133,138, 40, - 0, 36, 36,167, 6,223,127, 18,242,122,230, 79, 3, 60,115,213,106,245,149,219, 79, 67,107,187,187, 58, 19, 66, 75, 93,136, 34, - 22, 10, 59, 55,105,222,156, 79,105, 6,136,192, 5,239,247,175, 70,214,199, 52,100, 37,165,129, 47, 52, 6, 3, 9,116,156, 24, -230,245,155, 33,236,201,115, 56,217,216, 9, 36, 66,161, 97,235, 44, 3, 12,248, 31, 69, 89, 92,164, 40, 89,242,243,243, 91, 85, -214,249, 34,239,154, 98,199,133, 68,170, 56, 9, 43,250, 25, 0,252,252,252, 86, 81, 74,123, 4, 4, 4, 28, 1,160,212,147, 47, -140, 43,120, 47, 26, 37,190, 92,214,193, 87,105,124,103,207, 93, 8, 11, 51,153, 89,179, 70,238,246,103, 47,251, 63,189, 19,240, - 52,180,114, 37,107, 27,170,211, 88,252,182,110,139, 51, 81, 40,245,157, 12,238, 97,109,109, 13,173, 86,139,119,239,222, 33, 54, - 54, 22, 90,173, 22, 76,110, 46,212, 25, 25, 80,165,167,131,205,205,134,136,101,161, 76, 78,130,149,145, 20,248,123, 69, 98,121, - 55, 88, 34,209, 42,120,151,154,154, 66, 98, 98, 10,158, 80, 88,162, 91,177, 20,155,141,155, 53,107,118, 60, 36, 36,164,121,167, - 78,157,150, 19, 66,204, 40,165, 81,113,113,113, 29, 23, 45, 90,164,182,179,179,195,248,241,227,107, 2, 24, 81, 46,201, 20,107, - 60, 92,237,107,162, 70,181, 17,168, 92,169, 3, 50,114,117, 72,206,210, 33, 41, 67,139, 29,155, 91,226,228,238,102,184,119,178, - 45, 66,174,116, 70,134,206, 30,114,199,239, 65, 89, 77,157,178,108, 94,187,118, 13,203,150, 45,195,242,229,203,177,114,229, 74, - 44, 95,190, 28,113,113,113,168, 91,183, 46,162,163,163,113,233,210, 37, 36, 36, 36,192,218,218, 26,143, 31, 63,198,250,245,235, -113,239,222, 61,125,148, 59,189,174, 33,132, 84,200,151,206, 48,204,200,132,222,189,235, 37, 90, 90,214,110,212,168, 81,183,169, - 83,167, 86,107,221,186,117,225,249,106,213,170,185,200,100,178,143,132,144,221,132,144,134,101,217,226,128, 70, 54, 54,117,161, - 81,191,206, 47, 43, 33, 8,145,162, 67,231, 80,180,110,251, 20, 90,157, 8, 60, 34, 1,143, 39, 5,195,164,194,194,194, 17,148, -146,186,229, 36,113, 81,114,114,178,251,245,235,215,121, 17, 17, 17,144, 74,165, 0, 16,185,100,201,146, 45,107,215,174,125,101, -101,101,197,158, 63,127, 30,103,206,156, 65,143, 30, 61,248, 99,199,142,117,175, 84,169,210,246,242,238,123,241,198,248, 7,135, -215, 93, 26, 44,212, 89, 52,148,202, 42, 87, 65,174,252,251, 73,237,109,140, 1,224,210,251,247,217,182, 46, 89,126,185,217, 65, -209,230,206, 57,191,150, 55, 17,158,210,197,220,179,183,175, 31, 30, 62,125, 57, 51, 41, 49, 93,216,168, 94, 29,165,239,178, 57, -162,202, 85,170,255,182,120,238, 79,246,113, 89,210,140,206, 83, 47,189, 62,117,249,113,206,240, 81, 63, 50, 99,198, 77, 86, 93, -186,124,237, 52,199,113,245, 74, 91,113,200,113, 28, 18, 18, 18,240,242,229, 75,132,135,135, 35, 57, 57, 25, 41, 41, 41,200,206, -206, 46,116, 55, 26,101,103, 93,216,178,247, 92,160,177, 76,102,212,188,158,187,203,163,231,175,146,140,101, 50, 35,247, 42, 46, - 53, 8, 89, 90, 98, 59,194,178,108, 61,169,145, 12, 0, 65, 70,200, 29,228,164,231, 32, 39, 35, 7,217,105, 57, 80,107,249, 80, -169,121, 80,106,120,112,245,252, 14, 57,185, 42,228,164,102,130, 99,217, 6,134,238,198, 0, 3, 12, 40,163, 95, 62,239,227,227, - 51, 95,207,203,245,118,111, 22, 39, 94, 62, 62, 62,243, 9, 33,231,231,205,155, 87, 7,122,204,105,166,148,238, 44,254, 42, 56, - 87,110,120,135,148,148,176, 28, 83,155,218,125,103,252,252,203,165, 35,127,108,182, 85,171, 21,209, 86, 22,114, 86,110, 36,182, - 30, 51,126, 37,178,115,210,251,228,164,233,191, 74, 42, 61, 61, 29, 31, 62,124,128, 76, 38,131, 72, 40, 4,171, 84,130, 85,230, - 66,153,158, 10,158, 86, 13, 17,203,194,210, 72, 6, 87, 71,123, 84,182,179,215,203,230,187,155, 87, 11, 39,190, 23,117, 23,174, -110,230, 1,177,177, 28, 98, 19, 57, 38,158,191, 13, 0, 16,137, 68,192,162,229,250, 20,166,181,147,147,211, 95,135, 15, 31, 22, - 37, 39, 39,227,197,139, 23,129,148,210, 76, 66,136, 9, 0, 46, 52, 52,244,122, 72, 72, 72, 15,119,119,119, 0,112, 43,207, 94, - 86, 10,143,213, 49, 20, 49, 31, 35, 17, 17,251, 28,150,102, 85, 33, 52,170,129,164, 12, 45, 36,178,170,208,169,255,246, 62,170, -178,162,160,212,234,183, 48, 82,163,209,128, 97, 24, 48, 12, 3,141, 70,131,113,227,198,225,126, 64, 0,142,158,185,129, 15,239, -195, 80,179,138, 61,126,248, 97, 56,154, 53,107,134,128,128,128, 50,109,141,108, 68,116, 11,218, 65,176,174, 27, 15, 98,185,149, -186,197,220, 43,143,244, 33, 91,148, 82,162, 71,126,174,237,209,163, 71,245,176,220, 92,188,124,253, 26,157,150, 44, 1, 0, 92, -188,120,241,147,123,153, 57,115,166,248,213,171, 87, 99,158, 62,125, 58,134, 16,178,142, 82, 90,242,100,115, 10, 92,184,240, 0, - 63,253,244, 10,201,201,121,243,181,143, 29,249,155,151, 70,124,208,162,171,119,158, 71,203,220,220, 28,235,214,213,213, 43, 63, - 89,150,197,206,157, 59, 11,221,133, 0, 32, 16, 8, 90,207,156, 57,179,111, 73,215, 87,175, 94, 93, 84,158,205,153, 3,156,165, - 47,162,100,147,204,170, 87,174, 99,106, 93, 31,169,186,231,117,159,199, 37, 76,153, 57,192,121,195,186, 19,177, 42, 25, 81,239, - 35,108, 76, 37,129, 84,181, 95,159, 52,190,191,180, 73, 99, 94,121,212,254,143,201, 89, 11, 38,255, 56,212,202,212,220, 54,119, -247, 22, 95, 11, 30,159, 71,255,122,170,205,168, 83,205,202,252,251, 22, 27,115,126,154,177,232,185,134,137,153,140,152,191,194, -202, 10,113,193,178, 44,226,227,227,145,156,156,140,232,232,104,164,164,164,228, 63,251, 41,159,173, 92,173, 96,131, 8,101,116, - 52,162, 78,239, 70,229,225,195,209,116,249, 50,176,156, 0, 74, 5,139,117,173, 58, 34, 61, 83, 9, 53, 71,224,216,184, 21,126, -188,120, 23, 60,202, 2, 59,182, 26,122, 18, 3, 12,248, 31,133, 62,225, 29, 10, 8,145,175,175,111,143,111,253,255, 69,201,150, -175,175,239, 75, 95, 95, 95,189,255,171,184,203,176,232,113,185,225, 29, 0, 32, 43,249, 85,184,149,107,253,248, 92,101,174,145, -157,173,141,218, 72, 42,225, 50,179,178,249,207,131, 3,181, 57, 9,239,222, 84,224, 62, 66, 67, 66, 66,234,198,199,199, 35, 58, - 42, 10,140, 50, 23, 60,181, 6, 84,165, 64,167, 54,173, 32, 5, 32,229, 17,136, 56, 45, 4,124, 49,178,115,178, 0, 32,180,220, -206, 81,167,251, 76,217, 34,132, 64,108, 98, 2,177,177, 49,196,114,147, 79, 20, 46,125, 20, 27,137, 68,114,248,196,137, 19, 14, - 78, 78, 78, 88,182,108, 25,156,157,157,107,213,171, 87, 79,209,182,109, 91,153,157,157, 29,106,215,174,141, 86,173, 90,225,210, -165, 75, 0, 80,110, 76, 41, 29, 35, 13,122, 19,137,214, 41,105, 1,184,123,251,119,104,148,106, 52,242,252, 29, 90, 65,101,216, -212, 89, 10,238,221, 65, 40, 62,158,205, 83, 15,236,123, 34, 54, 58, 18,132, 47,126,169,175,242, 84,240, 57, 48, 48, 16, 71,206, -250,195,193,213, 3,209,111, 95,227,245,173,235,184,111, 99, 5, 87,143,218,133,110,160, 82,211,200, 66,176, 98,107, 97,120, 7, - 73, 90, 90,154,196,210,210, 82, 93,144,119, 14, 14, 14, 95, 67,182,134,206,158, 61, 27, 25, 66, 33,224,237, 13, 81,120, 56,180, - 90, 45, 90,180,104,129,166, 77,155, 2, 0, 90,180,104, 1,129, 64,128,250,245,235,195,209,209, 17, 91,183,110, 29,138, 82, 86, -245,241, 8, 94, 48, 76,106,173,106,213,170, 21, 18,173,253, 7,146,241,252,105,103, 16,136,177,105,203,223,209, 28, 92, 92, 92, -240, 49, 33, 28,132,208,144,114,210,184,220,222,222,126,145,131,131, 67,181,181,107,215,242,165, 82, 41, 38, 76,152, 80, 53, 39, - 39,167,114,190,148,140,121,243,230,229,169, 84,139, 23, 99,201,146, 37, 80,171,213,138,210,140, 29, 88, 95,223, 49, 41,141, 27, - 99,103,239,212,199,203,186,114,189, 14, 93, 58,161,170,123, 7,116,232, 18, 13, 0,171, 44, 5,145, 3, 87, 47,172,123,218,186, -146,229,158,171,151,175, 45,110,227,217, 97,129,207,120,139, 21,126, 59,210,203,157,243,152, 25,181, 47,251,141,120,208,250,205, -219, 15,172,255,101,222, 52,105,116,178, 38, 61, 46,157,230,200, 37, 2,185,155, 29,145, 79,249,121,249,135,248,248,240, 89,136, -185, 92,238, 74, 75,142,227, 16, 30, 30, 94, 56,167, 79,165, 82, 33, 55, 55, 23, 49, 49, 49,133,117, 70,105,108,218,117,242,168, -158, 13,114,149, 74,197,163,224,183,209, 11,167, 14,107,153,171, 84, 42,222, 70, 68,135, 81,186,177, 68, 54,198,227,241,130, 21, -217,138, 78,138, 12, 21,146, 95,188,129,115, 71, 87,232, 24, 2, 13,195, 34, 57, 53, 27,106, 6, 96,121, 66,212, 25,248, 3, 88, - 34, 64, 74,124, 28,120,124,126,160,161,187, 49,192,128,255, 89,148, 27,222,129, 16,114,190,101,203,150, 71,139,170, 78, 5,159, - 1,168, 1,148, 53,149, 39,185, 40,153, 42,112, 39,150,246, 63,197,236,234, 59,192,252,108,142, 86,185,225, 29,242,127, 72, 26, -212,115,117, 92,189,120,152, 51,199, 48, 53,147, 82, 18, 25,129, 64, 34,172,100,166, 76,168, 72, 14,170,213,234,243,215,175, 95, -239,221,185,115,103,201,219,224, 64,104, 50, 51,161,201,204,128,144, 99, 96, 41,107, 2,158, 86, 13,162,209,192,169, 22, 7, 85, -182, 12,254,247, 67,116,106,181,250,188,190, 68,139,199,231,127, 58, 47, 75, 46,135,196,196, 20, 18,185,188,184,107,145,148,147, - 81, 70,189,122,245,234,216,162, 69, 11, 80, 74,177,115,231, 78,104,181, 90,177, 86,171,133, 70,163,129, 86,171, 69, 86, 86, 22, - 14, 28, 56,128,109,219,182,221, 7,176,183,220,206,140,209, 92,191,114,237,102,179,209,195,122, 8, 47,158, 95, 7, 70,195, 66, - 73,156,145,155,171, 67,142,198, 8,172,213,112, 32,241, 2,248, 2, 41, 90,214,175,138,179,127,158,210,130, 81,223,208,147,133, -127,162, 10,197, 68, 71, 34,246,125, 24,228, 89, 31, 97, 99,106, 4, 69,120, 24, 26,253, 48,226,139,212,137, 74,149, 42,129,227, - 56,120,121,121, 21, 78,174,254, 82,178,149,154,154,138,115,231,206,161, 69,139, 22,240,244,244, 68, 92, 92, 28,194,195,195,209, -189,123,247,194,107, 2, 3, 3,241,252,249,115,184,185,149, 45, 18,166,164,233, 46,198,198,188, 24,240,253,247,223,139, 30, 62, -124, 8, 74, 41,220,221, 77, 97,106, 98, 12,194,147,192,195,195, 22, 64,222, 24,160,125,251,246,200,202, 10,103,210,211,233,197, -114,242,241, 48, 33,228,140, 70,163,121,215,174, 93, 59,199,247,239,223, 99,198,140, 25,130, 99,199,142, 21, 72,201,240,241,249, -116, 49,133, 82, 89,186,235,190,102,189, 90,115,170, 50, 22,158, 82, 89,229, 42,166,214,245, 81,213,189, 3, 0,160,115,143,209, -168, 90,221, 5, 89, 41, 65, 85, 84,202,200, 62, 34, 65,186, 69,208,166,184, 87, 50,239,186,163, 84, 73,183,223, 2,208, 39, 0, - 48, 85,190, 61,150, 24, 45, 28,126,252,204, 95,151,198,119,239,209, 75,168, 99, 25,166,174,171,208,252,196,233, 11, 73,113, 81, -209, 27, 17,125, 57,228,111,253,175, 76, 21,143,205,202,202,130,177,177, 49, 66, 66, 66,212,222,222,222, 18, 30,143,135,119,239, -222, 21, 18, 45, 91,107,203,218,173,155,214,173,181, 98,253,129, 43,198, 18,137,164, 75,251, 38, 30,175,222, 70,197, 82, 74, 34, - 75, 85, 91,117,186,107,193, 47, 2,189,108, 28,171,243,195,111, 63,132, 85,219,238, 80,171,121, 80,106, 56,168, 25,128,225,139, -224,208,176, 57,204,221, 60, 64, 1, 60,121,120, 95,167,214,233,174, 24,250, 26, 3, 12,248,159, 86,181,104, 89, 36, 41,255,115, - 26,128, 72, 95, 95,223,148, 34,106, 83, 50,128, 64, 0, 13,242,175, 75, 46,246,187,100,228,173, 30,108, 90,196, 78,114, 17,194, - 85,244,179,166,216, 53,122, 13, 0,139,206,209, 42,145,104,149,177,164, 18,214,214,214,182,141, 26, 53,113,219,245,199,113, 80, - 74,241,230,249, 26,164, 39,189,198,162, 85, 15,220,156,157,157, 61, 99, 99, 99,253,245, 73, 4,203,178,199,246,236,217, 51,171, -121,227, 70,141,170, 56, 59, 35, 48, 50, 2, 34,202, 66,196,178,224,105,213, 16,176, 26, 56,215,101,193, 35,114,196,199,103,194, -239,240,241, 16,150,101,143,149,103,183, 86,247, 94, 88, 22,155, 9, 66, 8,214,182,172, 11,177,137, 28, 34, 99, 57, 38,254,117, -179,144, 92,157, 95, 54, 15, 98,185, 28,110,205,203, 15, 8, 79, 41, 85,152,152,152, 60, 13, 14, 14,110, 90,183,110, 93,204,154, - 53, 11,145,145,145,224, 56, 14,137,137,137,170,132,132,132,184,228,228,228, 72, 0,167, 1,236,210, 39,242,184, 72,173,218,112, -254,228,254,201, 45,219,120, 90,127,223,103, 27,206,252, 57, 19, 25,153, 89, 80, 48, 50,228,170, 24,228,170,249,176,180,170,135, -230,245,235, 35, 62, 46, 9, 47, 31, 94,201, 17,168, 21,107, 42, 82, 65, 9, 33,120,254,252, 57,170, 57,154, 32,236,174, 63,172, -141,132,104,224,104, 15,199,214,109, 10,227, 75,149, 5, 33, 31,204,208,161, 67, 11, 35,195,127,247,221,119, 17,195,135, 15,119, -152, 57,115, 38,254,248,227, 15,220,191,127,255,179, 9,218,158,158,158,184,115,231,206, 82, 0,139,203, 19,245, 52, 26, 13,106, -213,170,133, 39, 79,158,224,250,245,235,232,208,161, 3, 60, 61, 61, 17, 20, 20,132,171, 87,175,226,249,243,231, 32,132,192,202, -202, 10,186, 60,242,172, 43,205,152, 86,139, 19,191,254,182,103,254,250,245,219,234, 12, 27, 54, 12, 39, 79, 30,197,232, 81, 53, - 65,120, 18, 16, 34, 65,175,158, 53,177,108,249, 19, 52,111,222, 30,214,214, 66,172, 95,119,246,131, 82,201, 30,208, 35, 27, 87, - 92,189,122,213, 81,165, 82, 33, 35, 35,131,202,229,114,146,154,154,183,162,181, 36, 69, 75,161, 80, 72, 75, 51, 20,252, 44,116, - 77, 70, 54, 77,167, 57,207,251,164, 49,207,235,117,232, 18,131,206, 61, 70,225,218,249,189,184,121,229, 58, 44, 5,145, 17, 48, -206,190,148, 18,145,146,149,144,235,190,221,163,241, 88,126,108,238,149,237, 83,191,183,224, 59, 56,112, 39,124,182,101,102,148, - 81, 71, 41, 33,132,164,189, 58,248,215,105,138, 94,173, 90, 54,175, 94,215,197, 65,156,158,146, 68,255, 60,123, 41, 68, 27,113, -242, 92, 1,193, 42,111,151, 5, 74,233, 50, 31, 31,159, 95,242, 63,239, 91,184,112,225, 88, 63, 63, 63,155,143, 31, 63, 22,206, -209, 74, 74, 73,187,217,202,123, 10,155,154,145,169,217,179,254,231,254, 50,169, 68,188,208,111,207,109, 29, 31, 15, 75,179,203, -112,220,214,129, 51, 22, 77,123,251,230,185, 83,101,153, 24,103,127, 94,140,192,171,183,160,227,137,240,211,245, 71, 80,107, 89, -100,164,164,226,198,152, 73,144,219, 89, 96,219,237,147,137, 28,199,253,110,232,106, 12, 48,224,127, 23,101,112,145,146, 98,236, - 37,234,113,221, 19, 61,236,124, 53,138,171, 88, 69,161,215, 18,188,148,148,148,164, 59,119, 30,225,246,249, 21,240, 63,191, 2, - 47,159, 7, 34, 62, 78,131,184, 68, 21, 76, 77, 77, 31,148,209,241,119, 42,222, 57, 40, 20,138,190, 11, 23,253,242, 81, 42, 51, - 66,187,142, 29, 97,111, 99, 11, 35,145, 16,124,134, 3,159, 8,145,147,108,142,176, 32, 5,230,238, 57,152,148,163, 80,244, 45, -222, 73, 20,183, 89,148,100, 16, 66, 32, 49, 53,129, 88,110, 2,137,137,233, 39,110, 68,169,169, 41,164, 38,166, 16,136,197, 37, - 77,154,255,204,102, 78, 78, 78,191,254,253,251,167,103,102,102, 98,236,216,177,240,247,247,127,126,229,202, 21,211,192,192, 64, - 89, 82, 82, 82,117, 74,233,119,148,210, 29,165,145,172,226, 54,211,210,222,103, 83, 70, 61,200,247,151,233, 74, 21, 99,133, 1, - 35,142,193,152, 23, 3,134,229, 64, 1, 56, 90,138,209,186,211,114, 36,105, 90,225,216,246,149, 10, 78,171, 26, 86, 52,134, 86, -113,155,148, 82,106,103,103,247, 89, 30, 92,191,126, 29, 3,250,247, 67,151, 62,189, 97, 83,165, 26,108, 59,117, 71,151,177, 63, - 97,251,246,237,224,241,120,176,182,182,254, 68,225, 40,106,115,223,115, 42, 60, 28, 68,201,225, 32, 74,246, 62,163, 2, 0, 63, - 28, 60,120,240,215, 6, 13, 26,220,186,127,255,254, 26, 0,131,138,254, 87,145,180, 44, 41,170,102,149, 82, 70, 11,166, 77,155, -166,124,251,246, 45,140,141,141,193, 48, 12,238,223,191,143,109,219,182, 97,237,218,181,120,254,252, 57,172,172,172,224,230,230, - 6,181, 90,141, 39, 79,158, 40, 1, 44, 40,163, 46,113,201,201, 76,191, 77,155,252, 82,123,244,104,139, 61,123,182,192,222,190, - 21,132, 2,123, 8,132, 54, 48,150,215,194,238, 93,191,162, 91,183, 70,248,235,236,241,180,148, 84,166, 95,241, 40,238,165,164, - 83,245,232,209, 35,108,223,190, 29,253,251,247,143, 27, 48, 96, 0,155,153,153, 89,168,104, 21,236,198,190, 36,127,142,153, 90, -173,150,148,102,115,236,207,193,113,115, 86,132, 44, 75,252, 24,215,194,255,214,131,161, 55,175, 92,199,135,183, 55,113,243,202, -117,220,189, 25,224,147,248, 49,174, 69,163,102, 53, 68,125,199, 78,158,179,255,212, 73,190,220,212, 1,251, 79,157,228, 15,153, - 50,125,101,147, 46, 29, 22,148, 87,231,243,203,145,230, 36, 37,206, 91,181,102,115, 14,163, 85,241, 86,111,220, 26,175, 76, 78, - 88,128,130,165,152,165,168, 89, 69,109, 42, 20,138, 29, 74,165,210, 81,169, 84, 58,170, 84,170, 5,145,145,145,237,102,205,154, -149,204,178,108,161, 90,154,244,242,236,131,208,187,123, 87,217, 90, 91,200, 90, 53,173, 83,115,221,142, 63,111, 71,199, 36, 30, - 42,136,161, 85, 74, 25,169,114,148,170,126,189,251, 14,207,205, 72, 87,163,229,116, 31,112, 82, 57,212, 44,160,163,124, 48, 68, -128,224, 21,235, 32,179, 52,193,225,136,103,138, 76,157,182, 95,209, 24, 90,229,220,251, 23,195, 96,211, 96,211, 96,243,223,211, -230,127, 50, 8, 33, 14, 69,247, 58,204,143,171,245,183,162, 85,222,146, 74, 39, 39,167,118,223,247,234,132,246, 61, 22,130, 82, -138,215,207,126, 67,122,242, 27, 56,217, 75, 16, 30,157,213, 18,128,191,190,137,161,148, 70, 19, 66, 90, 76, 91,176,240,212,128, -239, 58,122,212,173, 82, 69, 82,185,178, 43,140,109,109,145,146,146,140,123, 15, 95,233, 86, 30, 57, 17,146, 79,178,244,217,130, - 7, 28,199,229, 77,114, 7,208,113,218, 92, 16, 62, 31,200, 15,227, 80,208, 49, 86,105,218, 10, 68, 32, 0, 75, 57,168,213,106, -170, 71, 58, 99, 9, 33,253,134, 13, 27,118,227,252,249,243,188, 46, 93,186, 52, 60,125,250, 52,247, 53, 5,145,147, 24,118, 75, -110, 87,163,199,202,121,227,143,181,232,208,219,212,189, 78, 19, 81,147,202,124,104,117, 4,241,113, 81, 56,127,234,177,246,213, -163, 43, 89,148, 81, 13,202, 77, 46,123, 11, 30,173, 86, 27, 93,189,122,117,187,237,219,183, 23, 78,134,103, 89, 22, 41, 41, 41, -120,240,224, 1,234, 53,109, 14,143, 81, 99,144,156,156,140, 77,155, 54,193,197,197, 5, 61,123,246, 68, 90, 90, 26, 24,134,137, -214,179,172, 88, 0, 87,242, 95,159, 16,218,124, 65,133,150,231, 54,116,115,115, 19,171, 84,170,134, 14, 14, 14,124, 66,200, 6, -141, 70, 51,114,222,188,121, 14,171, 86,173, 66,205,154, 53,145,146,146, 2, 99, 99, 99,184,187,187, 35, 57, 57, 25,143, 31, 63, -102, 21, 10,197,118, 0,203, 40,165,201,229,164,239, 29, 33,164,197,212,169, 19, 79,253,234, 55,222, 93,165,110, 47,182,180,108, - 3, 74, 25, 36, 39, 71, 34, 59,235,190,118,249,178,189,239, 19,147,116,125, 41,165,111,245, 44,166,197,147, 39, 79, 6,242,183, -224, 9, 15, 15,127,225,225,225,225, 94,154,162,165, 15,214,157,136, 85, 1, 56,178,122, 70,171, 25, 89, 41, 65,238,150,130,200, -136, 22,117,185, 77,235, 78,196,170,150,206, 48, 95,145, 18,233, 31,150,144,123,101,251,254, 83, 39,249, 35,250,244, 99,157,229, -111,125,164,182,244,207, 14, 61,203, 45, 31,218,176, 97,195, 74,132,164, 85, 77, 74,125,243,116,244,216,241, 3,205, 68,202,139, - 13,156, 83,221,120, 46,141,164,207,159, 63,143,208,119,207,208, 98,118,195, 8, 33,237,230,205,155,119,133, 82,250,201,220,132, -164,148,180,155, 45,123, 76,166, 25, 25,153, 47,146, 94,157, 13,214,195,214, 99, 66, 72,199,186,245, 26,157,252,117,149,159, 93, -251,105,179, 4, 97,183,110, 3,172, 14, 81,254,183,193, 74, 52,220,186,128,107,137,153, 90,109, 31, 67, 84,120, 3, 12, 48,168, - 89,101,113,145,127,247,228, 23,159, 12,143,252,189, 15, 5,250,252, 58, 54, 54,214,223,173,154,243,213,176,176,118,223,185, 56, -219, 0, 0,194, 35,226, 17,151,168,190,170,175,219,176, 4,178,213,228,224,185,139,131, 36, 18, 73, 15,146, 31,194,129,126,193, -166,210, 12,195,196, 86,169, 82,165,148,179, 37,135,122, 98, 89, 54, 81,207,116,222, 38,132, 12,119,115,115,243,139,138,138, 58, - 69, 41,205,253,218,146,200, 73, 12,187,101,105,233, 86, 45,224,250,201,233, 15,111,159,239, 68, 25, 77, 61, 0, 32, 2,113,133, - 54,149,206,201,201, 25, 63, 97,194,132, 29, 66,161,240,255,216,187,238,240,168,138,175,253,206,189,219,107, 54,189, 19, 32,144, - 66, 39,116,233, 69, 65,162, 52, 41, 34,189, 35, 22, 68, 65, 80, 80, 58,202, 15, 5, 17, 21,144,142,168, 84,165,119,233,210,145, - 26, 90, 32,144,222, 54,117,147,173,247,206,247, 7,217,117, 9, 41,187, 33, 40,248,237,121,158,155, 45,119,243,222,233,243,206, -153, 51,231, 84, 65,145,205,153,213, 6,139,227, 56,214,100, 50, 73, 57,142, 99, 1, 16,134, 97, 44, 66,161, 80,191,117,235, 86, -139,197, 98,121,104, 48, 24, 70, 63,133,122,212,169, 14,176,123,247,238,170,238,238,238,175, 16, 66,122, 83, 74, 35,243,242,242, - 12,211,166, 77, 59,181,105,211,166,220,106,213,170,117,137,142,142, 38, 30, 30, 30, 56,119,238, 28,205,204,204,220, 12,224, 83, - 74,105,172, 19,233,137, 37,132, 52, 24, 61,230,135, 55, 61, 60,150, 69, 83,138, 6,160, 32,132,193,149,156, 28,126,119, 65, 1, -247, 83, 17, 97,116, 20,207, 82, 76,147, 54,235,234,213,171,171, 1, 8, 75,178,209,114, 74,228,249,219,245,133,113,111, 16,101, -193,182,175,191, 73,208, 3,192,231, 11,179,115, 0,172,120,175,167, 7,127,227,194,138,249,129,234,219,147,190,217,166, 93,229, - 8, 92, 84, 84, 84, 40,195, 48,253, 0,212,245,145,100,215,244, 22,231,112,132,208,246,132, 48, 94, 0, 46,215,174, 93,123, 39, -128,132, 10,214,243, 45, 0, 33,197,191, 79,187,246,251,159, 0,254,116, 18,235, 44, 33,164,230, 7, 31, 77, 24, 39, 22, 10, 95, - 6,199,213,159,245,219, 38,234, 10, 42,237, 18,151,184,228, 63,166,213, 26, 85,210,247, 2, 71, 1,238,198, 38,116, 6,128,176, -176, 48,122,231,206, 29,167, 39,220,146, 86,227,120,228,241,253,151,167,193,201,200,200,104,252, 44, 11,142, 82,250, 51,128,159, - 43, 19,179,136, 72,205, 44,186, 42,154,174, 43, 0,154,253,155,141,202,170,213,194,163, 32,204, 37,202, 43,175,188,242,192,100, - 50, 29, 4, 16, 79, 8,209, 0,208,154, 76,166,125,102,179, 57,149, 16,210,248,235,175,191,182,122,190,159, 69, 41, 61, 95,193, -116,240, 0, 54, 20, 93,149,157,199, 13, 1, 1, 1, 19, 60, 61, 61,107,232,245,122,177, 94,175, 23,217,175, 1,100, 50, 89,186, -163, 88, 26, 21, 89, 35, 18,100,121,106, 84,228, 9, 34,229, 17,136, 45,133,186,171, 17, 30,129,216,226, 40,222,197,139, 23, 99, - 27, 54,108,184,158, 97,152,106,148, 82, 95,128,186, 81,138,116, 74,105,134, 64, 32, 72,188,126,253,122,226,243, 50, 0, 21, 17, -169, 5, 69,151, 75, 92,226, 18,151,252,167,164, 44, 27, 45,129,179, 96,183,111,223, 38,174, 34,117,137, 61,217, 42,235,126, 92, - 92,156, 1,192,169,162,171,248,255,158, 7,240,250,243,158,199,164,164,164,168,202,192, 25, 49,233, 74, 34,128,241,141, 75, 8, -237,252,249, 98,109, 30,128,137,237,187, 57,135,121,233,210,165,135, 0, 30,186, 90,162, 75, 92,226, 18,151,252,123, 82,146, 54, -203,225, 88,135, 46,113,137, 75, 92,226, 18,151,184,196, 37, 46, 41, 93,172,164,170, 36, 63, 90, 4, 64,167, 82,254,201, 97,215, -245, 21, 57,125, 80, 30,190, 11,211,133,233,194,116, 97,186, 48, 93,152, 46,204,255, 30,230,127, 85, 74, 34, 89, 0, 64, 42,112, - 40,201,153,135,118,170,236, 2,119, 97,186, 48, 93,152, 46, 76, 23,166, 11,211,133,249,223,195,124,209, 73, 86, 9,132,211,181, -117,232, 18,151,184,228,255,183,108,222,188,217,161,160,162,111, 78, 90,241,154, 82,233, 62, 45, 63, 55,231,139, 95, 22, 12,219, -102,253,190,119,239,222,156,171, 20, 93,226, 18,151, 84,200, 24, 62, 52, 52,184, 54,195,241, 45, 41,101, 88,202, 80, 51,201, 45, -252,245,174, 86,251,152,219,129, 42, 85,170,104,132, 12, 94, 39,148, 42, 8,225, 57,158,101, 78,198,198,198, 95,119,130, 1,138, -221,221,221,223, 17,137, 68,157,140, 70, 99, 16,195, 48, 9, 6,131,225, 96, 65, 65,193,146,226,142, 11,255, 77,137,136,136,232, -127,228,200, 17, 77,171, 86,173, 12, 50,153,204, 82, 88, 88, 40,216,187,119,175,228,213, 87, 95,205,190,115,231, 78,133, 78, 36, - 6, 6, 6,118, 88,177, 98, 69,245,206,157, 59,163,102,205,154,186,126,253,250,137, 90,180,104, 33, 26, 49, 98,196,189,196,196, -196,195, 78, 50,233,218,132,144,117,132, 16,150,231,249, 65, 69, 39, 18,159, 5, 99,103, 24,134, 25, 77, 8,233, 73, 41, 13, 37, -132,196, 82, 74,183,241, 60,191,204, 17,239,248, 37,224,189, 1,160, 43,195, 48, 81, 0,192,243,252, 69, 0,187, 41,165, 91,158, - 34,141,207, 12, 83, 46,151, 55, 4,128,130,130,130, 75,149,133, 73, 8,105, 88,212, 73, 43,132, 73, 8, 25, 42,147,201, 70, 2, - 64, 97, 97,225,143,148,210,213, 78, 39,102, 89, 45, 26, 53, 35, 6, 0,112,241,243, 72, 0,128, 83,159, 71,223, 32,206, 60,171, - 36, 60,167, 48,158, 44,131,174, 3, 6, 12,152,251,211, 79, 63,125, 78, 41,253,253, 89,180,125, 63,191,224, 37, 95,125,179, 60, - 96,252, 59,195,191,192,163,136, 16,101, 74, 29, 66, 94, 22,179,108, 55, 35,199, 29,191, 14,108, 2, 32,240,240,240,232, 47, 22, -139,219, 24,141, 70,127,129, 64,144,108, 52, 26,143,229,228,228,252, 76, 41, 53, 63,117, 2, 99,136,187,169, 0,126,132,255, 59, -206, 27,101, 96, 16,201,145,130, 72,154,245, 28,172,246, 25, 60,242,183, 99, 6,176,178, 34,238, 60, 88,150, 29, 31, 16, 16,208, - 51, 55, 55,183,128,101, 89,250, 8,150, 60,250, 3,128, 97, 24,194,243,124, 90,102,102,230,160,255, 71, 90,148,144,162,114,173, - 90,244,149, 16,128, 47,128,203, 0,198, 83, 74,243, 93, 20,232, 31,171,139,226, 26,173, 93,148,210,100, 27,209,178,115,119,223, - 46, 58, 58,250,104,104,104,112,237,222, 61,122,205, 29, 51,122, 44, 97, 89, 6, 87,175, 93, 19,188, 53,104,232, 43, 30, 30, 30, -129, 74,131,161, 22, 8,225, 11,164,210,171,102,179, 41,113,211,207, 63,169, 34, 35, 34, 56,142,227,177,116,217, 15,175,134,134, - 6,127,226, 8,217, 34,132,132,251,249,249,173,155, 60,121,178, 95,183,110,221, 88, 63, 63, 63,196,197,197,105,126,249,229,151, -136,111,191,253,182, 47, 33,100, 80,145, 47, 31,103, 51,219,218,207,131,121, 69, 37, 35, 29,145,199, 33,207,140, 67, 41,133,216, - 79, 41, 61, 94,209, 2, 44, 40, 40,120,183,160,160,160, 89,147, 38, 77,232,202,149, 43,201,144, 33, 67, 40, 33,132, 20, 22, 22, -174, 65, 5, 93, 63, 40, 20,138,239, 58,119,238, 28, 22, 22, 22, 22,123,247,238,221,174, 27, 55,110,220, 61,120,240,224, 80,133, - 66,113, 27, 64,184,147,112,171, 51, 51, 51, 27, 20, 22, 22, 34, 40, 40,104, 37,128, 70,207,160, 17, 17,150,101,183, 5, 6, 6, -210,249,243,231,255,222,160, 65, 3, 95,173, 86,107,153, 56,113, 98,167,211,167, 79,191, 74, 8,233,230, 40,217, 34,132,184, 19, - 66,150,249,249,249,121,125,241,197, 23,119, 26, 55,110,124, 89, 34,145,136,111,223,190, 45,159, 48, 97,194, 7, 12,195,244,165, -148,142,166,212,241, 9,194,138, 25, 24, 24,232, 53,119,238,220,184,168,168,168,171, 34,145, 72,116,251,246,109,197,199, 31,127, - 60,190,162,152, 12,195, 44,109,209,162,133,251,231,159,127,126, 35, 34, 34,226, 20,203,178,226,132,132, 4,102,250,244,233,239, -176, 44,219,135,231,249, 49, 21, 73,167,175,175,175,251,244,233,211,111,180,104,209,226,180, 72, 36, 18,221,188,121,147,153, 60, -121,242, 59,206,164,211,211,211,179,189,167,167,231,242,148,148, 20, 1, 0,248,251,251, 55,173, 81,163,198,183,246, 49, 45,173, -166, 1,102,179, 57, 79,175,215, 15,200,204,204, 44,209, 17,238,144, 41,139, 95, 7,128,111, 77,214,207,143, 94,203,251, 12, 44, -221,225, 72,190,163,252, 9, 5,128,254, 31, 46,232,241,232,245,209,247, 95,233, 0,129, 64,192,175,243, 39,244, 98,178,227, 46, - 99, 8, 33,221, 59,116,232, 48,253,240,225,195, 63,180,107,215,238,227,245,235,215,251,196,199,199,127, 73, 8, 9,126,243,205, - 55,135, 28, 58,116,104, 94,122,122,250,230,202,106,255, 98,145, 68, 66, 24, 2,153, 84,174,118,228,247, 66,134,121,237, 84,247, -238, 35,127,188,121, 51,234,219,152,152,234, 58,127,255,102,239,189,247,158,111,175, 94,189,152,224,224, 96,220,185,115,199,115, -253,250,245,181,126,252,241,199,158,132,144,247, 41,165, 15,158,134,100,233,178, 81,207, 96, 68, 20,165,208,252, 93, 70,200,150, -152,112, 81, 17, 67,174, 60, 7,100,235,179,213,171, 87,127,126,231,206, 29,204,155, 55, 15, 0,150, 56, 57,254, 76,232,217,179, -103,244,214,173, 91,101,155, 54,109,146, 53,105,210, 4,126,126,126, 40, 90, 76,217, 28, 83, 87,175, 94,253,255,213,228,238,233, -233,185,242,222,189,123,237, 21, 10,197, 99,223,199,198,198, 54, 12, 11, 11,203, 1,240,161,179,196,205,219,219,123, 3,207,243, -134,204,204,204,225, 0,160, 82,169,126, 82, 40, 20,238,201,201,201,159, 60,171,133,140,141,153, 20,227, 34, 47,178, 70,171, 68, -135,165,246, 17,179, 25,142,111, 57,102,244, 88,210,175,255,155, 41,119, 98,239,241, 2,161,184,255,222,125,251,228,181,107,215, -102, 12, 75,150,192,146,158, 14,243, 7, 31,188,116,240,224, 65,115,159,254, 3, 11,133, 44, 89, 29, 90,189,154,252,215,159,127, -241,219,186,101,115, 75, 0,215,203,211,100,249,249,249,173, 59,114,228, 72, 96,245,234,213,145,157,157,141,184,184, 56,232,116, - 58,244,237,219, 87,216,178,101,203,192,222,189,123,175, 35,132,180,114, 84,179, 69, 8,241,173, 25, 36,216,249,213,103,125,195, - 95,125,165,165, 34, 48,184, 6,104,138, 30,241,119, 99,154,236, 60,114,250,189, 48, 13,115,235, 78, 14,125,141, 82,154,234,108, - 1,102,100,100, 76,234,217,179,231,150,246,237,219,123, 75, 36, 18, 4, 4, 4,144,110,221,186,165, 37, 37, 37,205,120, 10,226, -130,162, 85, 24,103,255, 90, 60, 60,144,131, 18,228,238,238, 14,119,119,119, 0, 8,124,218,149,167, 70,163, 89,162, 82,169,122, -231,230,230, 22, 50, 12, 67, 9, 33, 84,161, 80,200,220,221,221,255,186, 17,115, 43,192, 96, 48,212, 92,176,232,199,111, 58,180, -110,160, 62,112,224, 0,122,245,234, 69,247,239,223, 63, 26,192, 15, 14, 62, 99, 89,207,158, 61, 11,166, 77,155,166,191, 19, 27, - 23,120,227, 86, 44, 81, 72,197,188,151,151,151,240,236,217,179,130,133, 11, 23, 74,167, 79,159,190, 12, 64,111, 39,210,189,236, -205, 55,223, 52,125,244,209, 71,201, 55,239,220,243,185,114,227, 14, 85, 74,133, 22, 47, 47, 79,246,244,233,211,124, 69, 48, 25, -134, 89, 58,105,210,164,220,209,163, 71,103,101,106,115,252,178,114,243,169, 68,200,154,253,252,252, 4,191,255,254,187, 97,195, -134, 13,204,200,145, 35,151, 2,232,227, 68, 17, 47,237,214,173, 91,222,228,201,147,179,111,199,222,247,187,114,253, 22,228, 18, -161,217,215,215,135, 61,119,238,156,105,193,130, 5,204,236,217,179, 29, 74,167, 66,161, 88,187,113,227, 70,193,239,191, 63, 26, -251,254,252,243, 79, 38, 52, 52, 84,110,255,155, 66,189, 1, 12, 1, 50, 50, 50,228, 45, 90,180, 88, 11, 32,232, 9, 18, 52, 35, - 6, 67,166, 0,239,190,251,110,178,179,237, 37,202,255, 61, 92, 44,199,253, 45,191,180, 22,237,255,225,130, 30, 2,129,128, 31, - 57,114,100, 74,241,251,122,189,158, 0,232, 22,229, 4,217,234,218,181,235,167,187,118,237,170,177,126,253,250,175, 55,108,216, - 96, 4, 0,169, 84,234,245,203, 47,191,204,235,219,183, 47,250,246,237, 59, 13, 64,165, 17, 45,142,114, 38, 0,144, 72, 37,146, -152,152, 24, 18, 25, 25, 89,166,113,171,137,231,207,255,120,243,102,227,183, 35, 35,155,104,121,190,166,232,213, 87,243, 39, 76, -152,144,145,155,155,139,184,184, 56,152, 76, 38, 12, 25, 50,132,109,215,174, 93, 64,223,190,125, 23, 19, 66,222,160,148,154, 28, -208,234, 44, 8, 12, 12, 28,149,147,147,147,111,213,234,212,170,166, 18,180,105,104,145,212,175,105, 22,139, 88,139,232,245, 15, -120,178,127, 9,209, 69, 86,199, 9, 0, 16, 21, 32, 93, 4, 60, 53,209,114, 11, 38,213, 57, 33,102,123, 87,149,191,156, 30, 91, -240,121,254, 3,186,164, 44,141,173, 66,161,232,161,211,233, 54, 23, 77,206,225,175,189,246, 26, 78,159, 62, 13, 0, 45, 1, 44, - 33,132,116, 96, 24,230, 45,158,231, 87, 80, 74,203, 10,229,246, 94,247,238,221, 95,222,186,117,171, 10, 0, 54,111,222, 12,179, -217,140,208,208, 80,136, 68, 34,136,197, 98, 8,133, 66, 91,116,144,255, 79,194, 48,140,228,242,229,203, 8, 8, 8, 40,222, 78, - 0,160, 77, 5, 32,167,197,198,198,182,184,112,225, 2,218,183,111, 63,173, 94,189,122, 93,142, 30, 61,234,151,153,153,137,246, -237,219, 47, 6,240,251,179,206,147, 61, 23,249,207,212, 83, 49, 38,217,238, 17, 51, 99, 88,150,101,112, 47, 54,206,220,190,125, -199,193, 15, 31, 62, 84, 54,107,214,140, 17, 10,133,208, 29, 62, 12,253,185,115, 80, 42,149,232,217,179,167,240,216,177, 99,106, -181, 82, 61,226,254,189,251,121, 44,203,128, 82,166, 92,155, 7,119,119,247,119, 62,249,228, 19,191,176,176, 48, 88, 44, 22,155, - 71,115,139,197,130,248,248,120, 40,149, 74, 12, 26, 52,200, 71, 46,151,191,227,224, 36, 91, 53, 60,212,231,226,145,221,203, 26, - 77, 24,211, 85, 17, 46, 63, 0, 69,252,251, 80,110,126, 27,181,146,246, 98,114,143,102,138,253,223, 77,139,170, 17,224,113,145, - 16, 82,213,217, 66,210,235,245, 39,174, 94,189, 58,226,232,209,163, 60, 0,252,241,199, 31,244,198,141, 27,163,159,102, 21,202, -243, 60,178,179,179,193,243, 60, 91,244,217,250,250,175,170,247,213,106,245,210, 46, 93,186,188,249,224,193, 3,217,158, 61,123, - 60, 31, 62,124,232,117,255,254,125,239,240,240,112,193,188,121,243,118,233, 13, 38,214,204, 81,163,133, 51,231, 37, 95,187, 22, -155,149,154,122,113,213,170, 85,133,132,144,158, 14, 62,227, 13,127,127,127,207, 41, 83,166,128, 8,229, 77, 35,106,213, 11, 99, -133, 50, 55, 70, 40,118, 43, 44,212,115,247,238,221,139,159, 50,101, 74,181, 6, 13, 26, 4, 20,109,175, 57,132, 25, 16, 16,224, -245,209, 71, 31, 65, 32, 81, 53,172,223, 32,170,134, 88,162, 80,177, 66,153,170, 89,179,102,237, 98, 99, 99,147, 38, 79,158,236, -223,164, 73, 19,167, 48,155, 52,105,226, 62,114,228, 72,139, 84,166,106, 81,189,122,104,173,250,117,106, 69,135,135,135,247, 16, - 8, 4,150,244,244,244, 7,131, 6, 13,242,127,253,245,215,125,157,193,244,241,241,113,159, 60,121,178, 37, 56, 36,180,115,231, -151, 95,105, 46,146,169,220, 4, 98,133,166,160, 64,207,221,188,121,243,193,212,169, 83,253, 27, 54,108,232,227, 8,102, 65, 65, -129,208,203,203, 11,117,235,214, 69,237,208, 80,228,228,228, 96,235,214,173, 88,189,122, 53, 86,172, 88,129,159,127,254, 25,141, - 91,189, 2,149, 74,133,164,164, 36,228,230,230, 10,255,233, 54,197, 47,173, 69,191, 53,142,234, 54,118,236,216,164,145, 35, 71, -166,200,100, 50,190,248,229,225,225,193, 13, 24, 48, 32,117,208,199,139,186, 89,183, 22,203,210,100,117,236,216,241,242,238,221, -187,239,174, 95,191, 30,181,107,215, 70,231,206,157,197, 0,240,206, 59,239,136,251,246,237,139,141, 27, 55, 98,243,230,205,215, -195,195,195, 79, 18, 66,186, 59,146,206, 65,131, 6,181,234,211,167,207,241, 62,125,250, 92,234,215,175,223,242,209,163, 71, 63, - 54,115, 37, 39, 37,156, 55, 26,141,104, 16,213, 68, 62,107,229,153, 1,229,225,221, 0,214, 47,143,137, 89,253,197,181,107, 15, -166,213,174,173, 9,185,127,223, 99,205,130, 5, 94,214, 32,221,102,179, 25,241,241,241,112,119,119,199,128, 1, 3,188, 36, 18, -201, 32, 7,218,207,194,238,221,187, 15,125,248,240,161,242,199, 31,127,244,191,116,233, 82, 64,114,114,178,255,161,131,251,188, - 39,126,248,142,202, 77, 41, 22, 39,165, 63, 34,170,247,147,160,136,185,135, 86,148, 66, 99,191,157, 88,161,113, 33,128,200,228, -193,228,219, 26,173, 52,183, 62,218,216,176,223,228,223, 26,186,123, 5, 75, 63, 41, 35,157,245,231,207,159,191,105,199,142, 29, -253, 91,181,106,181,133, 16, 34, 43,225, 55,210,198,141, 27,111,221,184,113,227,208,214,173, 91,159, 32,132,212, 45,117, 21, 25, - 20,212,243,183,223,126,243,180,126,246,242,242,130, 84, 42,125,130,100,137, 68, 34, 48, 12,131,255, 79,146,158,158,254, 86,155, - 54,109, 54,117,237,218,213,112,225,194, 5,164,167,167, 35, 48,208,182,214, 78,169, 0,164,135, 92, 46, 71,112,112, 48,194,194, -194,250, 31, 59,118,204,207,108, 54,227,254,253,251, 72, 75, 75,187,248, 79,228,201,158,139,188, 72, 82, 44,206,225, 40, 0,187, -158, 32, 90, 69,177,133,142, 0, 0, 37, 68,119,249,234, 85, 33, 43, 22, 15,252,105,195, 6,137, 72, 36,194,131, 7, 15,112,253, -250,117, 20, 28, 58,132,194, 83,167,144,154,154,138,252,252,124,248,250,250, 98,217,202,149, 10, 35, 71,135,221,188,117,139,165, -204,223,246, 6,165,157, 72,144, 72, 36,157,122,245,234, 85, 42, 33, 75, 74, 74, 66,215,174, 93,133, 44,203,118, 42, 65, 61,119, -176, 88,230, 72,128, 55,217,113,104,203, 44,127,127,241,117,224,206, 4, 32,239, 34, 64, 13,128,197, 8, 36, 94, 1,118,205, 64, - 72,126, 12,217, 55,107,176, 95,160, 92,176,131, 20, 83, 27, 57,112,188, 53, 52, 50, 50,114,197,192,129, 3, 25, 0,232,208,161, - 3,137,140,140, 92, 78, 8, 9, 45, 67,141,120,176,156, 73,242,116, 86, 86, 22,250,246,237,235, 89,163, 70,141,131,125,251,246, -245,180,126, 95, 81, 76,171, 54,185, 78,157, 58,153, 50,153,236,103, 66, 72,185, 3,172, 61,166, 70,163, 89,210,181,107,215,222, - 27, 54,108, 16, 1,192,145, 35, 71,176, 99,199, 14, 92,187,118, 13,183,111,223,230,163,162,162,188, 23,173,216,180,116,201, 15, -107, 23,246,104,217, 32,160, 93,211,168, 90,202,252,172,124, 95, 95,223,150,148,210, 80, 7,211,217,117,198,140, 25,215,111,220, -125,224,198, 8,132, 2,145, 80, 32, 81,171, 21,190,238, 42, 69,144,135, 92, 26, 40, 97,136,178,160,160, 32,229,231,159,127,230, - 1,116,117, 20,115,214,172, 89,247,110,220,121,160, 33,140, 64, 32, 20, 8, 69, 74,165, 92,243,106,231,246, 77, 0, 64, 4, 42, -202,205,205, 77, 93,189,122,181,201, 25,204,207, 63,255,252,170, 54, 59,223, 93, 32, 20, 10, 5, 2,214, 86,150, 10,153,204, 91, - 46,145,136, 13, 6, 67,226, 55,223,124, 83,232, 12,230,140, 25, 51,174,223,188,251,208,131, 33,132, 37,132, 17,168, 85, 10, 79, - 79, 55,185,183,183, 82,230, 37, 23,176,226,220,220,220,196,117,235,214, 57,132,105, 50,153, 68,169,169,169,184,113,227, 6,130, -155, 52,193,129, 3, 7, 80,165, 74, 21,244,237,219, 23,111,190,249, 38,100, 50, 25, 58,180,168,135, 41, 83,166,224,238,221,187, - 48,153, 76,146,146, 48,109,118, 82,197, 36, 32, 32,224, 66,121,237,199,254,127,139,167, 51,202,159,208,111,141,163,186,217, 19, -172,210,240, 61, 60, 60,184,146,180, 93,197, 49,187,118,237,250,233,161, 67,135,106,172, 91,183,174,219,160, 65,131, 78,172, 91, -183, 14,205,155, 55,199,141, 27, 55, 80,173, 90, 53,172, 89,179, 6,111,190,249,230,137,197,139, 23,119,187,112,225, 66,131,234, -213,171,127, 82, 30,102,191,126,253,198, 53,108,216,240,112, 74, 74, 74, 11,173, 86, 91,119,235,214,173,195,122,246,236,121,175, -127,255,254, 29,109, 26, 45,179,121,195,174,237, 91, 16,221,173, 23, 34,234,212, 93, 58,228,147,245,245,202,194,164,148,210,107, -192,242,213,201,201,233, 27,244,250,130,190, 66,161, 92,126,230,140,199,230, 31,126,240,178, 63,233,157,152,152,136,215, 95,127, - 93, 40, 18,137, 90,151,149, 78, 66,200,252, 30, 61,122,244,221,186,117,171,187, 85,171,115,234,212, 41, 92,185,114, 5,113,113, -113,200,206,206, 70,199,209,249, 24, 59,239, 17,246,216,121, 20,175,188, 67, 21, 21, 28, 67,108, 34, 15, 33,126,158,106,193,201, - 97,223, 68,188, 51,106,105,109,129,210, 67,136,159, 62,190,141,212, 59,250,205,165,164,147,180,104,209, 98,125,159, 62,125,136, -209,104,132,209,104, 52, 82, 74, 11, 75,194, 14, 12, 12,148,214,175, 95, 31,163, 71,143,102,212,106,245,226,210,210,169,211,233, - 12,187,119,239,198,160, 65,131,240,254,251,239,163,102,205,154,112,119,119,135, 80, 40,196,218,245,191,122,189, 57,108, 76,120, -163, 86,109, 26,212,110,212,188,126,158,129,109, 34,146,123,140, 36, 37,108, 13, 60,139, 19,114,207, 3,102,189,122,245, 90,157, - 61,123, 86,210,166, 77, 27, 60,120,240, 0, 66,161,109, 61,197, 61, 77, 58,103,204,152, 33,209,235,245,248,235,175,191, 48,120, -240,224, 68,147,201,244,193,179,206,123,113, 46,242, 34, 9,165,116,121,177, 43,185, 52,141,214, 12, 0, 48,243,216, 49,112,240, -176,130,157, 59,119,202,197, 98, 49, 30, 60,120,128,228,228,100,172, 93,189,154,235,224,227,147,215, 57, 48, 48,119,237,234,213, -212,104, 52,130, 82,138,200,200, 72,244,238,221, 91,246, 70,223,254,105, 36,183,240, 87, 7,152,159,191,117,127,125,216,176, 97, - 79,220,159, 56,113, 34,212,106, 53, 8, 33,126, 14,228,175,207,123, 51,122, 4,185, 87,215,164,210,148,181, 90,176, 82, 64,160, - 2, 4,106, 64,234, 6, 72, 84,128, 88, 14,195,133,195, 90,134,118,142,235,213,122,120,160,147, 91, 61, 8, 8, 8,152,118,248, -240, 97,239, 11, 23, 46,208,220,220, 92, 36, 39, 39,211,185,115,231,122, 7, 4, 4, 76,171,104,165, 36, 37, 37,205,138,142,142, - 78, 29, 60,120,176,219,222,189,123,131, 7, 15, 30,236, 22, 29, 29,157,154,148,148, 52,235,105, 42, 91, 36, 18,177,215,174, 93, -243,152, 61,123,246,155, 0,206,215,173, 91, 55, 51, 40, 40,232,124,145,209,100,153,162, 82,169,108, 36,203,170, 93, 19, 8, 4, - 16, 10,133, 8, 8, 8, 48,106,181, 90,174,117,163, 80, 89,164, 27, 99, 14,144,136,100, 30, 50,105,144, 74,237,214, 44, 51, 51, -243, 50, 33,196,161,248,132,132,144,134, 77,155, 54, 21,114, 84,200,143, 29,216, 33,224,157,161,237,125,190,159, 61,178,202, 55, -179, 70, 5,206,159, 62, 34,114,214,164, 1,237, 25,158,215, 87,171, 86,205,207,106,208,238,128,250, 60,170,113,227,198, 2, 30, - 66,220,184, 21,151,250, 32, 33, 49,239,229,118, 45,108,154,203,218, 13,163, 58,123,123,123,183,137,140,140,108,236,168, 79, 24, -153, 76,214, 48, 34, 34, 66,192,176, 66,226,233,174, 10, 86, 41,101,190,214,123,106,141,230, 37, 15,111,239, 62, 12,165, 57,254, -254,254, 62, 50,153,172,161, 19,121, 23,240, 16,193,215,199,195,205,219, 75,163,236,220,190,101,205, 22, 47,181, 8,175,215,172, -121,139, 58,141, 26,191, 65, 44,150,220,208,208, 80, 31,171,145,124, 89, 98, 48, 24,164, 27, 54,108,192,236,217,179, 81, 63, 36, - 4,129,129,129,240,241,241,193,169, 83,167,112,246,236, 89,184,187,187, 35, 45, 45, 13, 11, 22, 44,192,182,109,219, 96, 50,153, - 84,206,182, 39, 71,200, 86, 89, 98,177, 88,152,226, 4,171, 52,124,153, 76,198, 91,141,228, 75,147,221,187,119,175,183,106,178, -198,143, 31,223,106,209,162, 69, 39, 98, 98, 98,160, 84, 42,113,246,236, 89, 12, 27, 54,236,196,226,197,139, 91,141, 25, 51, 6, -171, 87,175,198,189,123,247, 86,150,133,215,175, 95,191,233, 35, 70,140,248,230,232,209,163,140,175,175, 47,220,221,221,209,163, - 71, 15,172, 92,185, 82, 96,177, 88, 86,245,233,211,231, 82,159, 62,125, 46,113,241,251, 63,221,180, 98,238,169,171,151, 47, 97, -220,123, 31,137,141, 22,243,100, 7, 6, 94, 90,168, 84,230, 89,218,180,209,110, 52,155, 11,250,137, 68,114,183, 75,151, 60,118, -172, 90,101, 35, 91, 83,166, 76,129,155,155, 27,240,200,128, 25,101,104,117, 70,109,219,182,205, 54, 30,122,122,122, 66, 44, 22, - 67, 36, 18, 65, 40, 20,130,101, 89, 28, 92,170,192, 15, 83, 30,241,139, 31,166, 16,236, 95, 66,158, 42, 54,171, 34,136,212,117, -247, 21, 95,122,123, 77,157, 6,117, 59,122,226,212, 47, 41,152, 27,125, 33,225,236,198,244, 9,250,180, 82, 67, 41, 53,154, 56, -113, 98,237,180,180, 52,156, 59,119, 14,231,206,157,155, 93, 74,217,232,183,111,223,254,101,126,126, 62,170, 87,175,142,238,221, -187,183, 33,132, 52, 41,165,223,160,113,227,198,120,253,245,215,209,190,125,123,212,175, 95, 31, 70,147, 69,216,103,224,168,136, -107,247,210, 3,231, 46,152, 43, 63,252,199, 86,230,196,137,163,236,250, 45,251,221, 90,180,127,229, 27,145,202,255, 52,145,123, -249,255,215, 53, 90, 82,169,116,209,209,163, 71,253, 76, 38, 19,174, 94,189,138,247,223,127,255,105, 99,134,218, 20, 32,193,193, -193, 56,114,228, 8, 6, 12, 24,160, 79, 77, 77,253,243,159,202,147, 61, 23,249,175,136,192,142, 65,218,228,225,195,135,217, 30, - 30, 30,129, 17, 17, 17,140,209,104,124,180, 37,177,121, 51,183, 98,213,170, 93,122,189,254, 61, 0,162, 37,223,127,191, 52, 48, - 40,168,253,192, 65,131,136,217,108, 70,116,116,180,120,231,206,157,158,119, 83, 83,203, 13,136, 92,124,181, 49,100,200, 16, 44, - 90,180, 8, 0,240,238,187,239,218, 84,235,196, 1,131, 37,165, 27,186,118,126,173,177, 58, 94,241,173,218,244,146, 57,191,234, - 93,213,105, 69,190,172, 49, 24,177, 0, 82, 22,188,201,108,185,157,214,243,252,221,219,181,106,203,180,153,213, 58,213,105,139, - 21, 7,214,117, 5,176,209,225, 85,157, 92,222, 84,169, 84,226,252,249,243,218,198,141, 27,103, 83, 74,221,102,205,154,229, 37, -151,203,155, 62, 5,251,189, 79, 8,105,211,178,101,203,119, 24,134,233,196,243,252,193,212,212,212, 37,148,210,251, 14, 78,218, - 99, 1,124, 14, 59, 59, 20,163,209, 8,134, 97, 64, 41, 69,191,126,253, 48,101,202,148,218, 87,174, 92,193,225,195,135, 61, 58, -117,234,116,154, 16,146, 13, 96, 56,165,180, 68,173, 89,110,110,110,225,217,179,103,101,135, 15, 31, 6,207,243,240,240,240,128, - 90,173,134, 68, 34, 65,143, 30, 61,148,147, 39, 79,238,184,111,223,190,180,220,170, 85, 88,105,114,162, 78,162, 84,170,224, 23, -216,122, 76,255,183, 98, 40,165,219,156, 24, 28,196, 50,129, 69, 79, 56, 3, 51,255,179,197,140, 92, 36, 34, 82,145, 0, 18,190, - 0,159,126, 57,135,136, 40, 39,128,147,251,243, 34,145, 72,164,146,192,200,138, 89,179,156,160, 82,156,195,177, 44, 43,150,138, - 96, 40,237,190,144, 97, 24,134, 97, 68, 0, 44,142, 98, 74, 36, 18,145, 74, 66, 75,197,148,177,132, 37,132,136,241,232,116,214, - 19, 18,229, 79,168,157, 22,201, 96, 79,138, 91,183,110,141, 93,135,207, 99,243,142,131,200,120,112, 25, 83, 63, 30,143, 38, 77, -154, 96,231,206,157,101,166,201,106,163, 85,154,118, 57, 32, 32,224, 66, 82, 82, 82,163,210,254,183, 36, 27, 45,126,105, 45, 58, -232,227, 69,221, 74,210, 82,149,136,255,153,219, 35,172, 50,108,180, 8, 33,221, 91,183,110, 61,110,195,134, 13,198, 46, 93,186, -136,251,245,235,135,186,117,235,182, 26, 58,116, 40, 0,160, 83,167, 78, 88,180,104, 81,171,161, 67,135,226,215, 95,127,197,214, -173, 91, 13,237,218,181,251,152, 16,146, 72, 41,221, 93, 18, 38,207,243,175, 47, 91,182,172,184,166, 16, 22,139, 5,102,179,217, -223, 98,177,248, 23,141, 69,248,230,155,197, 25,251,247,237,196,199,159,204,128,143,183, 95, 67, 7,219, 16, 25,242,209, 71, 25, -107, 22, 44,192,130, 95,127,197, 71,213,170,201,215, 93,191,142,253,122, 61, 54, 30, 62,156, 81,244,156,114,109, 51,117, 58, 93, -225,238,221,187,213, 27, 55,110,132, 70,163, 65,205,154, 53,225,225,225, 1,161, 80, 8,134,149,129, 21,185, 35,162, 78, 83, 0, -103, 1, 0,213, 2,160,139,172,142, 19,132, 32,155, 50,165,183,225, 82,251,104, 8,169,234, 27, 34, 61, 58,110,117, 93,141,218, - 71,132,189, 75, 30, 98,223,183,241,219,244, 25,248, 26, 22,220, 44,227,176, 70,227,234,213,171, 35, 45, 45, 13,187,119,239,214, - 1,248,170,180,103,240, 60,255,229,247,223,127, 63,241,147, 79, 62,145, 68, 70, 70, 2, 64, 67, 0,231, 74, 36,125, 10, 5, 2, - 3, 3,109,196,178,223,224, 49,161,163, 39,140,145,245,124,165, 61, 4, 2, 47,100,235,204,200,204, 51,195,221, 75,137,143, 39, -244,145, 30,108, 28,216,100,217,226,159,182, 19, 66,154,208,103,233, 44,242, 95, 22, 79, 79,207,134,153,153,153,184,127,255, 62, - 6, 15, 30,156,152,145,145,113, 64,167,211, 13, 75, 74, 74, 2, 0,109, 5, 32,109,100,190, 97,195,134,104,218,180, 41,250,246, -237, 43, 45, 40, 40,232, 19, 26, 26, 26, 8,224,165,103,153,159,226, 92,228, 63, 69,180, 74,156, 16,204,230, 8,195,210,165,208, - 29, 60, 8,241,254,253,216, 24, 16,144,175,215,235, 63,164,148,198, 23, 13,122,227, 87,175, 89,115,178,219,159,127,170,141, 49, - 49, 8,189,114, 5, 66,141,166,161,179, 9, 88,181,106, 21,114,115,115,145,147,147, 3, 0,248,246,219,111,145,155,155, 11,171, - 45, 67,185, 25, 16,161,149,159, 79, 53,164,224, 54,120, 1,163,140,139, 40,104,174,212,171,146, 2, 31,250,234,114,152, 64,196, - 60,104,166, 40,204, 52, 54, 39,172, 17,250,140, 2, 4,182,172, 9, 1, 4,173,156, 73,163,117,223, 95, 32, 16,104,111,221,186, -245,122,120,120,248, 14, 0, 94, 79,107, 15, 64, 41,189, 3,224,189, 10,146,128,207,239,221,187,231,179,114,229,202,119,102,205, -154, 69,237,137,150,245,189, 64, 32, 0,165, 20,110,110,110, 16, 10,133,190,167, 78,157,242,109,214,172,217,119, 69, 3, 90, 73, -249,164,117,235,214,197,189,123,247, 32, 16, 8,224,230,230, 6,222, 98,194,140, 9, 99,192,177, 18,193,164, 73,147, 26,246,234, -213,235,234,202,149, 43,205,234, 22, 45, 95,202,204,204,188, 54,110,192,192,171,191,255,254,187,145,231,249,101, 14,230,249,210, -237,219,183,217,160, 0, 95,150, 90, 10,120,133, 8,144, 94,254,134,138,149,126,144, 10, 88, 42, 34, 12, 36, 82,153,219,253,132, -132, 76,158,231,111, 56,130,201,243,252,197,123,247,238,201,124,125, 60, 5, 5,133,198,124,153,144,138,227, 46,158,143,173, 26, -213, 56, 20, 0,244, 23,207, 30,145, 68,212,146,197,165,166, 43,170, 85,171,230, 16,102, 97, 97,225,165,196,196, 68,214,215,215, - 87,240, 32, 62, 97,187, 70,169,240, 86,107, 52,205, 1,192,148,151,115,150, 49, 24,210, 89,161,192, 55, 61, 51, 83, 91, 88, 88, -120,207,209,188,223,189,123, 87,224,239,239,195,238,221,127,104,135,175, 92,226,163, 18, 11,212, 18, 66,136,156, 37,185, 34, 11, -159, 33,149,203,125,238, 39, 36,104, 41,165,165,106, 8,191,200, 30,216,243, 81,125,205,248,213, 14, 27,151, 47, 95,198,158, 19, - 55,160,160, 70, 16,125, 14,246,175,254, 17, 3, 38,125,242,212,118,127,229,145,173, 10,105,179,150,213,186, 80, 12, 31, 73,229, - 24,194, 15, 24, 48, 96,198,250,245,235,109, 6, 40, 55,110,220, 64,135, 14, 29,172,219, 28,232,220,185, 51,154, 53,107,134, 27, - 55,110, 32, 44, 44, 12,135, 15, 31,150,176, 44, 43, 25, 56,112,224, 92, 0,187,203, 75,239,242,229,203, 49,108,216,176,146, 12, -171,239, 2,208, 19,247,200,252, 41, 95,172,245,210,102,102, 32, 45, 61,229,146,163,229, 64, 8,193,144,143, 62,202, 88,102, 52, - 98,195,153, 51, 24,164, 80,200,215,220,185,131,232,102,205, 80,175, 67,135, 12, 71,198, 58,171, 86, 71,175,215, 67, 40, 20, 66, -173, 86,195,211,211, 19, 34,145, 8,172, 48, 0, 2,113, 3, 48, 34, 17,162, 90, 55,192,130, 15, 21, 5,131, 95,197, 98, 66,144, - 45, 17,227,162, 72, 94,178,173, 14, 33,132, 40,170,160, 7,165,200, 45,136,199, 31, 86, 66,162,169, 74,220,148,106,225,254, 17, -223, 69,106,212, 62, 34,236, 89,252, 0,251,191, 75,216,162, 79,193, 84, 0,119,203, 58, 93, 44,145, 72,234,105, 52, 26,196,199, -199,227,225,195,135,215,203, 50,240,167,148, 22,180,104,209, 34, 86, 34,145,212,246,246,246, 6,128,234,165,165,147,231,121,155, - 29,214,186, 13,155,188, 26,182, 9,149,190,220,170, 54,214,238,152,131,183,251, 44,134,144, 37,224, 56, 19,190, 94,244, 26, 56, - 67, 62,250,116, 27, 69,218,118, 10,107,112,112,135,113, 4,128, 31,255,171, 68, 43, 33, 33,225,189, 54,109,218,204,205,203,203, -203,210,233,116, 3, 0,160,122,245,234, 33, 12,195, 72, 0,204, 42,163, 61,133,160,100,183, 16,162, 43, 87,174, 64,165, 82, 33, - 49,241,239,152,244,241,241,241,224,121,222, 0,151,148,213, 71,163, 40,165, 23, 9, 33,254, 0,162, 97,231,222,129, 41, 82,213, -181,221,181,107, 23,221,181,107, 87, 91,219,228, 69, 41,111,209,106, 65, 13,143,202, 86, 40, 20, 82, 0,246, 39,154,228, 26,141, -134, 8,131,130, 64, 36,143, 76, 63,168,221,158,240,211,138,217,236,152,107, 25,158, 3, 11, 98, 2,181, 83, 98,232,164, 4,115, -188, 58,226, 61,241, 52,164,136, 53,246, 61, 27,176, 80,112,224, 89, 39,147, 67,117, 58, 29, 44, 22,139,123,141, 26, 53,118, 89, - 44, 22,119,235,214,192,191, 85,169, 28,199,197,178, 44,139,119,222,121, 7, 86,237,143,209,104, 68, 74, 74, 10, 12, 6, 3,140, - 70, 35,238,221,187,135,156,156, 28, 24,141, 70, 92,187,118, 13,213,171, 87, 7,203,178,254,101, 52, 20, 74, 41, 69,112,112, 48, -170, 86,173, 10,150, 80,172,152, 63, 29,159,190, 63, 6,111, 86,231,177,106,201,215,104,215,174, 93,173,106,213,170,181, 16, 8, - 4,156,159,159,159,104,235,214,173,219, 57,142,235,225,132, 31,173,221, 83,166, 76,169, 90,167, 78, 29, 31,141, 90,101,150,136, - 89,136,205, 58, 42, 49,100, 82, 65, 65, 6,130,131, 67, 44,144,201,195, 6, 13, 26,196, 57, 50, 57, 90, 49, 63,252,240, 67,255, -200,200, 72, 55,119,141, 74, 39, 22,178,105, 34,208,140,156,203,231, 78, 3,128,216,219, 71, 15,169,188,246,224,193,131, 45,206, - 96, 78,155, 54,173,186,183,183,183,134, 1,205,227, 76,166,191,247,219, 13,198, 76, 34, 20, 22, 66, 36,110,252,238,187,239, 18, -103, 48, 39, 78,156, 88,173,118,237,218, 26,141, 90,145, 47, 16,178,201, 34,158, 79,150,130, 79, 17, 26, 77, 89, 82,111,175, 2, -200,149, 81,131, 6, 13, 42, 21,211,170,205,154, 60,121,114,124, 49,226, 13,173, 86, 11,125,202, 85,136, 18, 99,208, 64, 41, 68, - 19,111,119, 72, 36, 18,219,209,247,210,154,107,105, 54, 90, 37,145, 45, 71,255,183,241,204, 50,182, 0,151,213,186, 80,220,111, - 86, 17,126,153,253,233,167,159,126,250,164,125,251,246,105,157, 59,119, 54,238,218,181, 11,132, 16, 28, 62,124, 24,137,137,137, -232,220,185, 51, 40,165,214, 83,109,184,116,233, 18, 58,117,234,100,108,211,166, 77,226, 79, 63,253,244,185, 35,149, 51,108,216, - 48,152,205,102,228,231,231, 67,171,213, 98,231,206,157,104,208,160, 1,149,203,229,189,216,224, 87,230,244, 25,241,201, 75,117, -235, 55,196,119,139, 23, 24,197, 2,225, 23, 78, 14,194, 24,252,225,135, 25, 57, 81, 81,218,117, 58, 93,193, 16,181, 90, 94, 35, - 62,222,227,252,190,125, 94, 38,147,201, 33, 12,171, 86, 39, 40, 40,200, 70,178, 68, 34, 17, 4, 98,111,176,138,122, 16,123,118, -134,220,175, 23,254,184, 40, 49,184, 41,176, 77,165,196, 94,133, 6,165,186,118,144, 7, 99,206, 75,253,252,183,182,124,211,255, -144,188, 10, 86, 18, 66, 24, 66, 8, 67, 5,100,235,208,175,195,107,120, 87,149,225,207, 77, 41,216,255, 93,194,111,250, 20, 76, - 7,112,167,188,126,110, 50,153,244, 28,199,129, 97, 24, 8, 4, 2,123, 27,209,147,191,253,246, 27,206,159, 63, 15, 0, 54,183, - 61,121,121,121, 28,203,178,144, 74,165, 0,160, 44, 99,188,131, 80, 40,132, 80, 40,196,145,211,199, 60,223,124,227, 53,114,234, -175, 3,104,217,160, 63, 50,243, 77, 72,205, 49, 33,187, 0,168,211,100, 42,234,118,218,134,203,247,242,208,176,126, 93,150, 21, - 43, 6,191,224,147,119,136,143,143,207, 41, 47, 47,175,195,132,144, 16, 66, 72,136, 90,173, 62, 25, 16, 16, 16, 67, 8,233, 78, - 41,253, 61, 41, 41, 41, 50, 63, 63,191, 37,165,244, 1,165,244, 65, 70, 70, 70,135,180,180,180,151,202, 58,172,229,233,233,185, - 50, 55, 55,119, 60,199,113,221,138,174, 87, 57,142,107,120,251,246,237,218, 13, 27, 54,188, 30, 26, 26,122, 41, 52, 52,116, 79, -104,104,232,246,208,208,208,237,237,219,183, 95,100,117,247,240, 44,165, 36, 46,242, 2,137,213,212, 37,186,200,213, 67,180,109, -206, 40,122, 61, 82,220, 0,205, 34,145, 92,179,140, 27, 7,205,246,237, 16,222,190,141,161,131, 7,171,229,114,249, 98, 66, 72, - 35, 66, 72, 75,165, 82,249,221,244,233,211, 85, 94,243,230, 33,224,216, 49,196,237,220, 9,179, 80,120,174, 34,169, 43, 44, 44, -132, 64, 32,176,105, 98, 20, 10, 5, 56,142, 43,226,110,229, 16, 14, 11,254, 76, 76,141,129, 24, 85,193,131,230,239,205,109,115, -166,127,236, 84,159,157,185,213,195,238,232, 68, 97, 51,189,155,251, 44, 14,105,117, 70, 71, 4,249, 98,141, 20, 15, 31,198,131, - 3,239,212,126,179, 94,175,207,209,233,116,104,216,176,161,231,249,243,231,107, 52,104,208,192,163,232,251,179, 79,217,137, 90, - 4, 6, 6,110, 10, 10, 10,186, 31, 24, 24,184,137, 16,210,194,137,127, 95,121,252,248,113,176, 44,139,233,211,167, 35, 47, 47, - 15, 38,147, 9,153,153,153,120,248,240, 33,140, 70, 35, 18, 18, 18,112,243,230, 77, 24,141, 70,196,197,197,193, 96, 40,127, 65, -194,243, 60,212,106, 53,244,133,249,248, 97,206,167,152, 54,121, 2,114,238, 94, 64, 66, 82, 42, 52,110, 10,188,247,222,123,172, -187,187, 59,207,113, 92, 85,139,197,210,137,227,184,165,142, 18,206, 34,167,133, 39,130,131,131,235,206,159, 63,191,246,167,115, -150,138,212,130,124, 42, 81, 73,121,177, 74, 66,197,181,154, 99,216,212,197,162,111, 22,126,117,235,207, 63,255, 76,116,196,121, -167, 21, 51, 42, 42, 42, 60, 49, 49,177, 65,100,100,100,132, 87, 72, 53,137,196, 63, 48, 91,228, 95, 37,151, 26,244,103, 72, 96, -149,214, 75,151, 46,189,122,242,228,201, 36,103, 48, 21, 10, 69,173,181,107,215,214,245,245,245,173, 43,148,201,164, 5, 57, 57, - 27, 45, 5,186, 77,172,198, 93,202,168, 53,175,110,219,182,237,194,150, 45, 91, 82,156,193, 12, 11, 11,139,156, 51,103, 78,157, -122,245,234,213,241,171, 94, 67, 34, 11, 12,206,148, 6,133,100,202,234, 53,144, 32,168,106,151,239,190,251,238,210,159,127,254, -233, 16, 38,203,178, 22,134, 97, 32, 20, 10, 33,151,203,177,119,239, 94,140, 27,209, 31,193,129,158,136,136,140, 68,199,183,199, - 99,203,150, 45, 54, 27, 30,150,101, 75,157,209,215,204,123,111, 71,148, 63,185,128,101,181, 46, 96, 89,173, 11, 81,254,228, 66, -169,100,171,232,126, 73,191,113,104, 52, 42,197, 14,171, 60,178, 69, 41,221,125,228,200,145, 47,135, 12, 25, 34,238,218,181, 43, -206,156, 57,131, 97,195,134,157,216,186,117, 43, 0,224,204,153, 51,248,224,131, 15, 78, 28, 58,116, 8, 99,198,140, 65,135, 14, - 29,196,199,143, 31,255,206, 17,223, 63, 22,139, 5,171, 86,173,130,197, 98,129, 82,169,132,135,135, 7, 94,123,237, 53, 92,189, -122,117,204,234,213,171, 99, 88,161,240,173,232,110,111, 96,215,246,173,184,121,237,234,152, 53,115, 7, 58,237, 20,152, 97, 24, -116, 29, 60, 56, 35,163, 78, 29,237,154,220,220,130,225,238,238,242,200,148, 20,143, 63, 54,109,242,114,160,253, 16,142,227,108, -228,202, 74, 58,172,151, 64,236, 13,129,162, 46, 4,170, 38,184,124, 71,100, 22, 54,165, 23, 69,141,233,141,178,252,103, 9,197, -204,176, 94,159, 86, 71,175, 79,171,163,251,164,106, 67,229, 85,176, 66, 81, 5, 99,187,190, 95,181,125,104, 19, 55,228,166,153, -176,243,235,184, 7,250, 76,204, 3,112,211,145,126,206,243,252,245,196,196, 68,136,197, 98, 84,169, 82, 37,156, 16, 98,181, 11, - 92, 57,114,228,200,119,103,206,156, 57, 1,192,204,162, 60, 41,219,183,111, 95, 39, 63, 63, 31,183,111,223, 6,128,243,101,212, -189,237,148,161, 54, 55, 78, 82, 45,160, 30, 26,212, 26, 13,119,247,250, 72,212, 26,145,164, 53, 98,197, 15, 61,112,225,248,108, -156,223, 63, 8, 15, 82, 82, 32,243,235, 9,206, 98,168,251,130, 43, 74,166,197,198,198,182,216,180,105, 83,123, 0,211,234,213, -171,247,231,195,135, 15, 95, 58,118,236, 88, 68, 80, 80,208,226,138,130, 90,221, 66,196,197,197, 61,118, 21,185,133, 48, 82, 74, -163, 40,165, 93, 41,165,221,139,174, 15,158,202,215,155,227,114,228, 69, 53,134, 7,176,171,248,105,195,226, 68,203,222, 81, 24, -106,120,120,168,204,102, 83,194,129, 3, 7, 76, 12,195, 64, 46,151, 99,200,176, 97,204, 15,223,127,223,186,127,139, 22,135, 71, -189,252,242,158,195,135, 14, 69, 53,107,214, 12,148, 82, 48, 12,131, 95,127,253,181, 80,175, 47,204,172, 82,165,138,198,145, 65, -195,190, 3,229,230,230,218,136, 86, 78, 78, 14,124,125,125, 29,222, 58,212,229,226,224,161,189, 23,178, 40,247,246,195,174,119, - 22,154,190, 72,233,209, 44,155,231, 4, 57,156, 25, 57,133, 20,121,122, 8,206, 48, 30,205,134,132,245, 52,221,235,212,236,230, -209,152, 83,153,122, 78,239,212,105,137,180,180,180, 79,251,244,233,147,233,239,239, 79,212,106, 53, 2, 3, 3,153,238,221,187, -103,196,199,199,207,172,104,141,120,121,121,189,217,190,125,251, 29,137,137,137,189,143, 30, 61, 90,245,216,177, 99,189,219,183, -111,191,195,203,203,235, 77, 7, 33, 54,126,242,201, 39, 58,177, 88,140,230,205,155, 35, 47, 47, 15, 69,167,124,202,188,202,155, - 8, 0, 64, 36, 18, 97,217,252,207, 49,109,242, 4,104, 99,206,224,242,137, 3, 56,146, 66, 48,117,206, 87, 16,137, 68, 21,242, -245, 21,230,163,168, 87, 47, 64,117,227,131, 97,253,146,166, 76,158,172,186,116,233,146,240,221,247, 63,160,113,201, 90,136,187, - 46, 96,209,246, 83,230, 47,157, 55,162, 95,237,136,233,211, 62,170, 71, 41, 29, 93, 30,102,109, 31, 69,189,186, 1,170,235, 31, -141,234, 31,251,254,251,239,203,190,248,226, 11,125,139, 22, 45, 10, 83, 83, 83,101, 10,119,143, 72,129,155,166,110, 92,114,138, -178, 69,139, 22,247,222,126,251,237,108,103, 49,167, 78,157, 42,223,183,111,159,160, 79,159, 62,150,172,172, 44,165, 80, 38,107, - 72, 36,210,166,233, 89, 89,110,189,251,244,185,211,187,119,239, 2,158,231,199, 56,131,249,217,103,159,201,111,222,188, 41,104, -209,162,133, 57, 37, 37, 69,165,240,244,106,192,106, 60,154,220, 79, 78, 85, 55,109,214,236,238,187,239,190,171, 43, 43,157,246, - 36, 69,165, 82, 37,182,108,217, 18, 95,127,253, 53,190,249,230, 27,116,233,210, 5, 87,175, 93, 69,244,187, 19, 80,123,236, 7, -216,126,234, 52, 18, 19, 19, 49,107,214, 44, 52,104,208, 0, 34,145,232,102,137,160,163,111,144,139,201,148, 92, 76,166, 4,163, -111, 16,235,231, 82,201,208,204, 28, 60,246,251, 18,228,252,103, 37,107,186,162,252,201,133,178,236,176,202, 35, 91,189,123,247, - 30,103,117,225, 48,124,248,240, 19,139, 23, 47,110, 53,124,248,163,133,118,243,230,205, 49,123,246,236, 86, 83,167, 78, 61, 49, -103,206, 28,116,236,216, 17,161,161,161,229, 30,124,225, 56, 14, 22,139, 5,253,251,247,135,197, 98, 65,122,122, 58,110,221,186, -133,229,203,151,131, 82, 42, 5, 0,255,128,160,198, 98,177, 24,127, 93, 60, 87, 48,109,120,179,159,156, 88, 76, 17,251, 69, 76, -126,126, 62,122,143, 29,155,145, 80,179,166,118,105, 70, 70,193, 8,119,119,121,181, 7, 15, 60, 84, 70, 99, 96, 89, 54,169,132, - 16,240, 60,111, 35, 86, 86,194, 85,252, 42,154, 40, 29, 18, 83, 1,191,251,216,250, 36, 0, 64,155,129, 1,232, 62,169,218, 80, -255, 48,249,183,173, 7, 60, 82,122,111,153, 29, 75,243,146,184, 47, 96,198,117, 39, 52,214,103,206,156, 57, 3,141, 70,131, 62, -125,250, 72, 24,134,153, 87, 52,206,235, 41,165, 75, 40,165, 11,173, 88, 18,137,100,193,160, 65,131,152,236,236,108, 92,190,124, - 25, 0, 14,149, 54, 46, 81, 74,109,121,207,215, 18,112,188, 24, 39, 47,238,197,254, 99,155,113, 63, 49, 29, 15,210,244,128,192, - 13,122, 93, 2, 76,133,137, 48,102, 95, 68,174, 65,254, 95,216,145,122, 38,238, 22,158,129, 91,136,202,212,106,189,144, 54,117, -148,210,100,251,211,134,246, 14, 76, 75,114, 88, 10,170,150,245,219,252,221, 15,110,125,250, 15,212, 53,104,208,192, 61, 48, 48, - 16,132, 16,244,232,217,147,180, 63,122, 84, 37, 12, 8,128,103,163, 70,182,237,136,131, 7, 14, 96,239,222,189,186, 93,191,109, - 11, 28, 54, 98,196,235, 0,214,150, 49, 96, 8,106,212,168, 97,123,110,114,114, 50, 36, 18,137,205, 38, 34, 55, 55, 23,222,222, -222, 72, 78, 78,134,131,138,146,117, 83, 38,159,158,156,214,236,211,234,205, 84, 66,178, 71,151, 2,142, 82, 8, 9, 7, 20, 82, -152, 57,192, 96,166,104, 92,141,245,216, 95,104,113,223,121,102,235, 61, 0,235,156,212,104,253, 65, 8, 25,205,243,252,102, 0, -204,209,163, 71,249,235,215,175,143,115,212,112,189, 68,181,189, 92, 62,233,240,225,195, 30,147, 38, 77,202,218,185,115,103,206, -107,175,189,230,182,124,249,114,143, 14, 29, 58, 76, 2,240,139, 3,149, 90, 72, 8, 89, 27, 31, 31, 63,174, 73,147, 38,208,106, -181, 48,153, 76,184,112,225, 2,194,194,194,112,254,252,121,132,135,135,227,220,185,115,136,136,136, 0,199,113,208,235,245,224, -121,158, 43,111, 48,215,102,164, 3,153, 15,145,116,102, 15,110, 93,185,128,195, 73, 4, 75,126,217,129, 42, 85,171, 87,200, 79, - 77,132,175,162, 78,160,143,231,254, 47,102,124,230, 19,247,199,175,216,186,106, 9,127,100,207,158,218, 98, 21, 70,183,237, 63, -254, 13,163, 25, 33, 0,196, 47, 53,107,130,174,238, 55, 57,121, 85,164, 28,186, 86,182, 39,235, 8, 95, 69,157, 0,111,207,125, -255,155, 55, 83,117,119,239, 26,108, 92,246, 53,221,178,254,231, 6,122,160, 89,157, 58,117,186, 50, 12,163, 1,160, 47,178,243, -114, 40,180, 77, 73,152, 7,119,236,136,210, 3,205,126,255,253,247,174,114,185,220, 15,128,185,160,160, 32,246,105, 48, 15,237, -220, 25,101, 77, 39, 33,196, 7,128,137, 82,122, 23, 78,134,224,233,219,183,239,236, 15, 62,248, 96, 50,199,113,222,214,239,204, -102, 51,187, 96,193, 2, 1,207,243, 44,165,212,196, 48,140,105,223,190,125,156,197, 98, 73,210,235,245, 99,159,102, 32,121,227, -141, 55,112,250,244,233, 25,120,116, 8,195, 81,109,245, 99,118, 90,101,109, 83, 58,130,127,244,232,209, 89,111,189,245,214,148, - 95,126,249,229,214,226,197,139,187,141, 25, 51, 6,191,254,250, 43,106,214,172,137,191,254,250, 11,159,126,250, 41, 0,180,154, - 58,117,234,246,149, 43, 87,134,198,197,197, 45, 40, 47,141,102,179, 25, 22,139, 5, 63,255,252, 51,122,244,232, 1,111,111,111, - 4, 4, 4,128, 16,242,199,136, 17, 35,190, 7, 0,150,176, 34, 0, 48,232, 13,134,200,200, 38, 14,107,112, 67, 67, 67,109, 99, - 93, 74, 74,138,237,164,224, 43,111,189,149,177,226,139, 47,240, 83, 97, 33, 70,184,187,203, 19,130,130,252,183,223,189, 59,138, - 16,178,188, 52,205,145, 85,171, 83, 30,201,114, 84,195, 92,152,140, 79,126,155,123,223, 15, 64,151, 54, 3, 3,208,102, 96, 0, -154,116,247, 33, 12, 75,112,101,127, 38,174, 30,212,110, 49,231,226, 15,103,194,229, 80, 74,175,123,122,122,110,111,219,182,109, -183, 90,181,106, 97,228,200,145,111,139, 68, 34,145,217,108,126,223,234,230,129, 16,226,198, 48,204,204,213,171, 87,143,242,240, -240,192,241,227,199,113,236,216,177, 63, 40,165, 15, 75, 27,151, 0,216,124,102, 85, 9, 14,215,223,140,203,151,167, 37,158,196, -137,227,191,161,102,131,241,144,249,189, 14,143,200, 57, 48,197,124, 3, 99,230,126,120, 4,191,134,132,184,187, 96, 5,146,171, -248,143,136,213,221,194,213,171, 87, 75,116,183,224,172,212,171, 87,175,213,177, 99,199, 36,122,189, 30, 71,142, 28, 65,211,166, -182,179, 93,255,106,252, 78,123, 46,242, 34, 73, 89, 65,165, 75,156, 53, 9, 79,132, 17,225,225,156,136,193,234, 30,175,191, 94, -112,233,210, 37,219,170, 79,127,246, 44,116,123,247,130,227, 56, 80, 74,113,236,232, 81, 12, 26, 56, 48, 95,200,146, 21,213,170, - 85,165,132,254,237,187,165,164,163,244, 34,145,168, 79,159, 62,125,108,131, 79,124,124, 60, 20, 10, 5,196, 98, 49,120,158,135, -197, 98, 1,203,178,112,115,115,131,197, 98, 49,150,144,153, 78,197, 50, 98,230,180,186,222, 43,163, 7, 36, 7,228,155,232,104, - 77, 53,132,136,100,182,206,233,167, 38,232,214, 64, 8, 47, 65, 26, 61,180,224,229, 36,222,144,217,187,120,108,177,242,142,252, - 19, 66,194,235,215,175,255,253,160, 65,131, 24, 0,232,212,169, 19, 83,191,126,253,111, 9, 33,225,101,252, 79,153,152, 82,169, - 84, 2, 0, 59,118,236,208,222,186,117,171,203,142, 29, 59,180,246,223, 59,136,185,124,254,252,249,144,203,229,176, 88, 44, 48, - 26,141, 54,251, 44,251, 87,147,201, 4, 47, 47, 47,236,218,181, 11, 28,199,237, 42, 47,157,193, 33, 85, 65,188,107, 96,237,142, -195, 56,150, 33,114,154,100,217, 99,214,244, 87, 70,248,121,121, 30,248,223,220, 89,222, 89,119, 46, 32, 33, 33,129,238,219,187, -235,207, 66, 74, 19,179,115,233,180,172,124, 26, 81, 96,160,210,166,161,120,120, 96,217,199,116,106, 27,152, 81,194,169, 65,123, -204, 58,254,202,136, 64,111,207,125, 95,253,111,174, 42,251,206, 5, 36,167,164, 96,247,174, 29,151, 10, 41, 77,164,148,110,161, -148, 14,229, 56,174, 46,199,113,117, 41,165, 67, 75, 35, 47,206, 98,234,116,186,122, 58,157,174, 94,101, 98,242, 60, 95,143,231, -121,135, 49,237,137,202,194,133, 11, 99,146,147,147, 7,165,165,165,117,182, 94, 89, 89, 89,157,242,243,243,219, 21, 20, 20,180, - 46, 92, 88,213, 77,167,211,249,228,229,229,249, 23, 22, 22, 54,166,148, 94,112,180,125,218,139,189,215,233,164,164,164,233, 73, - 73, 73,164,188,116, 50, 99,110,144, 13, 95,125,244,219,178,101,203,252,159, 6,191,120, 58,211,211,211, 55,255,252,243,207, 13, -171, 87,175, 30, 58,116,232, 80, 44, 93,186, 20,139, 23, 47, 54, 0,192,202,149, 43, 13,118,154,172,224,251,247,239, 55, 41,105, -219,240,177,116, 50,204,186, 87, 94,121,133, 30, 59,118, 12, 61,122,244,176, 57, 18,253,241,199, 31, 97,177, 88,114, 59,118,236, -200, 3, 64,161,190, 32,151,242, 20, 70, 83,201,251,239, 37,149,167, 88, 44,126,213,222, 95,160,213, 25,179, 88, 44, 6,165, 20, - 17,173, 90,101,100, 55,104,160, 93,149,147, 83, 48,189, 94, 61,245,168,200,200,161,181,128,129, 37, 97, 18, 66, 30,211,234, 20, -191, 28,213,100,217, 99, 82, 74,211, 10,147, 48,242,183,185,247,247, 90, 53, 91, 82,165, 0,250, 60, 11,182,125,113, 63, 93,159, -142, 31, 1, 60,116, 6, 19, 0,180, 90,237,187, 95,124,241,133,193,221,221, 29,111,188,241, 6,230,204,153, 51,162, 85,171, 86, - 57,190,190,190,167,195,194,194,174,244,235,215, 47,249,194,133, 11,239,182,111,223, 30,183,111,223,198, 87, 95,125,149,157,149, -149, 53,160, 44, 76, 66,136, 77,147,215, 61,186,147,246,135,111,191,230, 59,182, 29, 7,185, 76, 13,179, 48, 24,218,124, 51,178, -116, 20, 70, 73, 51,136, 69, 18,116,110, 81, 7,167,247,173, 41,224,140,186,181, 21,105,243, 78, 76,174,207, 26,179, 82,220, 45, - 20, 79,103,101,184,133,120, 22,121,127,145,165, 4, 63, 90,143,107,180,172, 71, 42,173,175,132,240, 28,199,241,168, 86,189,154, - 42,238,254,195, 37,125,251,246, 25,222,181,107,180, 60, 58, 58, 90, 90, 39,230,209,214,197,142, 29, 59,176,117,235,214,130,253, -251,247,231, 74,132,236,202,224, 42,193,190, 28,199,131, 16,190, 76, 54,172, 82,169,222,255,228,147, 79,100, 57, 57, 57, 88,188, -120, 49,223,176, 97, 67, 70,161, 80,192,100, 50, 97,229,202,149,230, 58,117,234, 8, 25,134, 65, 78, 78, 14, 24,134,185,233, 96, - 6, 47, 19, 66, 58,127,223,190,215,214, 38,239, 12,243,172,221,254, 37,247,118,193,129, 48, 55,162, 72,138,191,143, 91,135,246, -103, 93,219,183, 40, 19,250,212, 94,148,210,235,206, 22, 96, 64, 64,192,231,251,247,239,247,121,247,221,119,169, 94,175, 39, 15, - 31, 62,164,115,231,206,245, 25, 57,114,228,231, 0,222,172,104,127,202,206,206, 6, 33,132, 47,106,180,214, 85, 63,113,162, 98, -175, 18, 66,126,239,217,179,103,247,142, 29, 59, 34, 38, 38,198,182, 69,104, 79,180,172,167, 15,231,205,155,151, 13, 96, 74,121, -184, 66,161, 16,139,215,110, 70,118, 86, 6,124,125, 3, 32,149,201, 42,236,113, 89,204, 48,211,191,156,245,153, 79,198,141,211, -228,234,159,135,249, 77,151, 83,211, 44, 28, 45,217,227,127, 94, 18, 45, 98,255,101,175,102, 24,118,250,151,115,103,186, 89,183, - 53,127,185,152,156, 75, 56,250,238, 83,245,146, 23, 5,243, 31,150,128,128, 0, 36, 37, 37,145,128,128, 0,106,221,214, 43,141, -104, 61,209,192, 31,109,151,145,178,182, 13, 43,138,127,239,222,189,185,141, 26, 53,250,232,246,237,219,155,106,215,174, 61, 6, - 64, 21,131,193,144, 61,117,234,212,255,173, 92,185,114,184, 35,154, 44, 0,248,245,215, 95, 23, 13, 27, 54,108,239,235,175,191, -254, 49,207,243,245,237, 38,145,123, 62, 62, 62,182, 45,220,244,212,148,201,163,135,247,159,156,159,159,229,176,159, 59,165, 82, - 57,106,234,212,169, 82,157, 78,135,239,190,251,142,175, 83,167, 14, 99, 93, 20,173, 95,191,222, 18, 30, 30, 46,232, 51,110, 92, -198,194,148, 20,204, 62,126, 92, 55,185,110,221,134,171,110,221,106, 92,146,198,221,186,112, 44, 73,147,101, 53,187,168,224,228, -144, 68, 8, 25,249,219,220,251, 63, 2,232,242, 82, 95, 63,252, 62,255, 62,178,226,140,255,131, 5,119, 29, 9, 11, 84, 2,102, - 2, 33,164,115,106,106,234,239,159,125,246,153, 91,227,198,141, 81,183,110, 93,161, 82,169,108,102,117, 23,147,147,147,131,131, - 7, 15, 98,233,210,165,198,107,215,174,245,164,148,150,186, 93,197,113, 92, 90,120,120,184,181, 28, 40, 33, 36, 51,215, 64,220, - 54,214,106,166, 28, 58,122, 19, 57,113,238, 20,146, 76, 60, 12,102, 30,213,170, 71,161, 93,151,133,216,190,231, 10,151, 20,119, -253,186,185, 48,107,197, 11, 62,127, 63, 19,119, 11,207,192, 45, 68,165,105,179,236, 95,255, 43, 82, 98, 15,229, 89,230,228,210, -101, 63,188,250,235,207,191,248,177, 44,227,119, 55, 54,246, 92,183, 94,189, 19, 15, 28, 56,224, 33,114,115,107, 10,128, 55,142, - 25,243,167,201, 80,168,221,249,251,239, 33,213,170, 85,109, 80, 20, 84,154,242, 44,115,178,172, 7,230,231,231,235,142, 31, 63, - 94, 48,101,202, 20, 18, 31, 31,191,193,215,215,183,223,158, 61,123,148,189,122,245, 42,140,137,137,217,226,231,231,215,189,125, -251,246,170,143, 62,250,200,144,159,159,191,196,137,206,125,157, 16, 82,235,236,103, 11,222, 58, 59,255,135,151, 33, 96, 91,194, - 32, 4,120,243, 73,152,242, 14, 0,216, 64, 41,181, 84,164,144, 20, 10, 69, 3,185, 92,142, 75,151, 46,101, 53,107,214,204,168, -215,235, 69,115,230,204,241, 84, 40, 20, 13,158, 98,128,163, 89, 89, 89,224,121, 94, 0,128, 20,189,130,119,254, 44,254,155,221, -186,117,251,125,227,198,141,175, 68, 71, 71, 35, 52, 52, 20,102,179, 25,225,225,225, 48, 26,141, 8, 11, 11,131,193, 96,192,140, - 25, 51,144,147,147, 51,161,172, 96,197,132, 16, 88, 44, 22,155,177,109, 96, 80,200, 35, 63, 61, 79,225,198, 66, 33,100, 66,111, -238, 92,133,180,204, 12,126,227, 95,169,169, 5, 38,174,243,237, 52,221,181,226,191, 43,224,160,107, 63,244,189, 68, 0, 48,240, - 40, 51,226,188, 66,140,208, 91,187,126, 68,106, 90, 6,126,189,152,156,173, 51,241, 93,110,150,128,233, 84, 58, 95, 16,204,168, - 25, 49,232,253,158,227,191,189, 56,186,226,207,114,148, 80,149, 38, 23,147, 41,225,151,214,162, 88,182,170, 68, 31, 89, 79,131, - 95,164,169,250,189,168,221,198,247,239,223,127,242,253,251,247,103, 21,249,203, 90,230, 12,214,170, 85,171,110, 3, 24, 86,214, -111,126, 89, 48,108, 27,128,109,206,224,230,229,229,233, 47, 92,184,160,255,232,163,143, 72,124,124,252, 30, 63, 63,191, 87,246, -238,221, 43,239,213,171,151,225,234,213,171,135, 2, 2, 2,218,116,234,212, 73,185,251,204,153,196,130,187,119,119,238,188,127, - 63,200,204,243, 59,203,234,159,149, 73,178,138,147,173,109,179,239,127,249,251,151,247, 59,241, 6,108, 49,102,225, 79, 0, 9, - 79,129,121,140, 16, 82,123,224,192,129, 27, 95,123,237,181,151,106,215,174,141, 42, 85,170,224,214,173, 91, 72, 79, 79,199,229, -203,151,177, 99,199,142, 29,122,189,190,220,128,218,153,153,153, 79,132, 39, 34, 50,207,128, 53,223, 77,223,113,238, 68,211,240, -214,209, 67,100,117, 3,120, 24, 77, 20,241, 15,238, 98,198,180, 21, 5,201, 15,110, 95, 55, 89, 76, 61,255, 3, 62,180,142,197, -198,198, 70,177, 44, 91,169,238, 22, 42,234, 22,194, 37,149, 72,180, 98, 99,227,175,135,134, 6,127,178,117,203,230,150,148, 50, - 44, 37, 68,167,209,184,239,120,248,240, 97,182,253,239,106,120,120,168,134,141, 28,214,143,240, 68, 72, 8,207,241, 44,115, 50, - 54, 54,190, 76,141,145,209,104, 28,221,175, 95,191,197,114,185,124,170, 86,171,189,164,209,104,254,106,208,160,193, 44, 74,233, -180,194,194,194,223, 85, 42,213,153,151, 94,122,105, 78, 72, 72,200, 34, 74,233,121, 39, 59,183, 5,143,236,195,214, 86,178, 42, -119, 38,165,212, 77, 32, 16,228, 92,185,114,229,231,136,136,136,254,148, 82, 55, 66, 72, 78, 69, 49,245,122,253,187,217,217,217, - 94,163, 70,141, 50, 47, 95,190, 60, 98,200,144, 33,147,175, 93,187, 38,212,235,245,177, 78,230,217, 64, 8,233,222,183,111,223, - 21, 66,161,176, 35,195, 48,132,231,121,106,119, 31,148, 82,112, 28,183,189,188,114,225, 56, 46,177, 86,173, 90,143,173,160, 75, -178,207, 53,155,205,137, 14, 79, 54, 70,110,252, 15,135,175,205,211,155, 41,181,240,116,244,205, 84, 93,137, 71,206,206,222,164, -117, 28,198,212,243,227, 23,239,187, 62,207, 96,230,121, 11, 79,199,148,134,233,212,164,248,130, 96, 2,192,100,205,250,109, 88, -182,222,102, 24,111,221, 78, 44,254,185, 50,197,170,117,130,147, 30,155,153, 49,143,140,229,203, 35,124, 21,197, 47, 78,186,156, -149,222,189,123, 63, 51,123, 20,147,201,244,105,183,110,221,102,105, 52,154,255,165,167,167, 95,210,104, 52,215, 35, 35, 35,199, -243, 60,191,168,160,160, 96,135, 74,165,122,189, 73,147, 38, 19,170, 86,173,186, 38,142,210, 53,229,245, 77,171, 86, 7, 0,181, -246, 75, 43,145,176, 39, 20,102,179, 57,161, 2,101,152, 68, 8,249, 16, 64, 53, 60,114,192,123,135, 82,250, 84,101, 67, 41, 77, - 2,208,146, 16, 82, 29, 64, 71, 60,242,223,151, 13,224, 30,128,243,148,210,203, 21,198, 46,204, 76, 34,132, 52,186,113,241,248, -152, 91,215, 47,190,101, 61, 93,200,178,226,171,156,169, 96,173,185, 48,107,197,127,196, 81,233,244,176,176, 48, 55, 0,245, 1, -164,226,111, 71,198,113, 0,190,169,140,133,138,157,116,112, 81,162,167,226, 9,163,236,183, 11, 31,187,247, 44,219, 34, 33,164, - 83,101,199, 67,114, 97,186, 48, 93,152, 46, 76, 23,166, 11,211,133,249,223,195,124,209,137, 86, 9,132,118,121,169, 26, 45,151, -184,196, 37, 46,113,137, 75, 92,226, 18,151, 56, 46,165,106,180, 0,116, 42,229, 31, 28,102,170, 21, 57,125, 80, 30,190, 11,211, -133,233,194,116, 97,186, 48, 93,152, 46,204,255, 30,230,255, 55,113,109, 29,186, 48, 93,152, 46, 76, 23,166, 11,211,133,233,194, -252,215, 49, 95,104, 50,229,218, 58,116,137, 75, 92,226, 18,151,184,196, 37, 46,121, 54, 98, 37, 85, 37, 25,197,187,136,150,243, -172,149, 1,240, 54,128,222, 0,106, 0,184, 11, 96, 51,128,239,157, 8, 83, 97,143,167, 6, 48, 25, 64, 75, 60,138, 94,127, 15, -192,113, 0, 95, 80, 74,243, 93, 37, 94,178,120,123,123,127, 34, 20, 10, 53,192,163,208, 38,214, 87,251,247, 28,199,101,231,228, -228,204,125, 70,237,128,117,244, 84,150, 53,173,246,105,179,127, 53,155,205,207, 44,157, 46,121,110,199,145,112, 15, 15,143,159, -180, 90,237, 0, 74,233, 45, 87,137,184,228,191, 36, 62, 62, 62, 99, 76, 38,211, 84,145, 72, 52, 39, 45, 45,237,135,255, 71,253, -186,196,147,135, 54,162,181,107,215,174,163, 0, 16, 29, 29,221, 22, 0, 84, 42,213, 41,134, 97,170, 23,253, 51,128,191, 99,225, - 21, 63,250,111,125,229,121,254, 94,102,102,102,169, 14,212,228,114,249, 41,150,101,171, 19, 66,192, 48,140,237, 50,155,205, 42, -150,101,243, 74,193, 76,208,106,181,141,159,147, 66, 36, 0,118,186,187,187,235,103,205,154,245,125,187,118,237,130,147,146,146, - 44,147, 38, 77,106,243,215, 95,127, 69, 19, 66, 94,117,134,108, 17, 66, 90, 16, 66,214, 52,108,216,112,219,224,193,131, 55, 54, -107,214, 76,156,153,153,169,218,188,121,115,224,218,181,107, 47, 16, 66, 6, 56,235,226,226, 5,104,136,130,210,252,153,149,117, -175,184, 8,133, 66, 77, 66, 66,130,170,104, 37, 97, 37, 86, 48,155,205, 48,155,205,208,233,116,104,208,160, 65,165,167,223,223, -223, 63,138, 16,178, 36, 44, 44,172,113, 64, 64,192, 57, 0,227,146,146,146,254,114, 38,173, 22,139, 5,148, 82, 91, 58,107,215, -174,237, 26,153,157,107, 67, 35,196, 98,113,151,176,176,176,166, 6,131, 33,235,222,189,123,103, 57,142,251,172, 44,167,151, 78, -226,187, 1,248, 76, 34,145, 52,171, 81,163, 70,240,237,219,183,227, 77, 38,211, 25, 0, 51, 41,165, 57,149, 65,178,218,182,109, -123,226,187,239,190,243, 28, 59,118,236, 9, 66, 72, 43, 23,217,114,201,191, 37, 85,170, 84,209,232,116,186, 21, 0,162,132, 66, -161,159, 84, 42,133, 76, 38, 75,145, 72, 36,151,100, 50,217,240, 19, 39, 78,100, 59,139,201,113,220,103,113,113,113,126,205,155, - 55,159, 95,183,110,221, 25, 25, 25, 25,122,147,201,116, 40, 43, 43,107, 2,165, 52,183,172,255, 45,206, 69, 94, 36,146,101,255, - 90, 52,222,255,189,117, 88, 20, 87,168,221, 99, 12, 76, 32, 8,138,139,139,243, 81,169, 84,224, 56,206,166, 45,176, 78,106,246, -182, 93, 69,126,154, 16, 25, 25,105, 42,103,194, 9, 78, 72, 72,240, 81, 42,149,182,239, 76, 38, 19,252,252,252,248,196,196, 68, - 31,169, 84,250,216,239,141, 70, 35,130,130,130,158, 39, 95, 40,111,123,120,120,228, 60,124, 24,223, 64,111, 48,205, 28,249,238, -148, 79, 6,244,126,217,253,212,169, 83,252,171,175,190,106, 56,122,244,232,219, 0,150, 56, 88, 41,110,132,144,181,147, 38, 77, -154, 33,149,171, 61, 15,159,186,110, 88,187,121, 87, 98,195,240,106,100,194,132, 9,236,123,239,189,119, 44, 42, 42,234, 39, 66, - 72, 35,103, 52, 91, 42,149,106,175, 68, 34,169,202,178, 44, 76, 38,211, 67,173, 86,251,202,115,212, 16, 27, 2,184, 72, 8,137, -162,148, 94,114,244, 94, 89,146,153,153,137,194,194,194, 39,174,218,181,107,163,178,237, 15, 9, 33,130,224,224,224,223,231,205, -155, 23,152,146,156,140,175, 23, 46,108, 14,224,123, 0,205, 29,249,255,180,180,180, 39,210, 25, 25, 25, 9,151, 56, 85, 7,147, -103,204,152, 49,239,173,183,222, 2,199,113, 40, 44, 44, 12,184,115,231, 78,157,169, 83,167,246, 36,132, 52,165,148,198, 62, 37, -190,119, 88, 88, 88,204,248,241,227, 61,154, 54,109,138,162, 40, 21, 1,199,143, 31,111,190,114,229,202, 65,132,144, 72, 74,105, -250,211, 60,195,195,195,227,167, 31,127,252,209, 83, 46,151, 99,251,246,237,158, 29, 59,118, 60, 78, 8,105, 93, 81,178, 69, 8, - 97, 60, 61, 61,223, 3,208,129,231,121, 49,128, 51, 89, 89, 89,179, 43,226,213,221, 37,255,191,196,203,203,107, 68, 94, 94,222, -119, 18,137, 68,228,238,238, 14,185, 92, 14,129, 64, 0,129, 64, 80, 69, 34,145, 84,145, 72, 36, 93, 59,116,232, 48,238,240,225, -195,101,122,216,127, 41,202,111, 40, 24, 50,147, 37, 12, 11, 0,181,195, 60,213,110,110,110,152, 57,115,166,162,123,247,238, 10, - 0, 56,113,226,196,224, 33, 67,134,116, 36,132,212, 45,141,108,149,196, 69, 94, 20, 41,237,196,225, 99, 26,173,232,232,232,163, -197, 58, 47,100, 50, 25, 54,110,220, 8,150,101, 31,139, 26, 95,210,251, 42, 85,170,148,155, 16,171, 70,108,199,142, 29, 80,171, -213,112,115,115,179, 77, 52, 18,137, 4,135, 14, 29,130, 80, 40,132, 64, 32,128, 80, 40, 68,227,198,141, 81, 70, 64,251,103, 34, -125,234, 16, 10, 0,155,222,121,148,174, 62, 75, 30, 57,129,220,244, 78, 36, 90,215,144,161,247,123,211,251, 21,232, 77, 77, 0, -232,178,179,178,178,206,109,221,154,212, 48, 60, 92,244,211, 79, 63, 53, 13, 12, 12,236,237, 40,209, 2, 48,185, 81,163, 70, 91, - 88,153,155,215,224, 33, 67, 7, 15, 23, 48,166, 65,163, 63,154, 19,159,156,161, 27, 53,106,212,214,237,219,183, 15,254,242,203, - 47,111, 76,156, 56,113, 50,128, 79, 29, 77,191, 88, 44,174,122,231,206,157, 48,158,231, 81,175, 94,189,231, 38,140,129,149, 72, - 81, 74, 65, 8,121,140, 80,149,117,175, 60,177,106,176, 74,186, 42, 91, 2, 3, 3, 35, 7, 14, 28,232,165,205,200,192,215, 11, - 23, 90,191,110, 92,222, 54,162,117,139,208,104, 52,226,141, 55,222, 24,200,113,156,192, 74, 2, 13, 6,131, 49, 39, 39, 71,111, -119,178, 39,157, 82,250,178, 3,229, 89, 93,161, 80,252, 15, 64, 84, 97, 97, 97, 32, 0, 40, 20,138, 68,158,231,183,233,116,186, - 79,173, 1,124, 43, 80, 79,193, 0,234,160,244, 80, 80,116,222,188,121,183, 39, 79,158, 28,251, 79, 99, 18, 66,170,250,250,250, -206,237,211,167, 15,118,237,218,133,221,187,119,155,101, 50,153, 96,200,144, 33,100,220,184,113,238,227,199,143,239,138,167,112, -226, 88, 36, 93,103,204,152,225, 81,171, 86, 45,108,222,188, 25,151, 47, 95, 46, 12, 11, 11,147,181,107,215, 14, 2,129,192,227, -147, 79, 62,121, 21,192,154,167,121,128, 86,171,157,253,209, 71, 31,173,253,249,231,159, 85,247,238,221,195,146, 37, 75,188,250, -245,235,119,148, 16,210,214, 81,178, 69, 8,145, 0,120, 15, 64,123,150,101, 91, 15, 25, 50,196,242,238,187,239, 10, 25,134, 49, - 47, 92,184,208,123,229,202,149,253,188,188,188,162, 50, 50, 50, 92,230, 7,101, 8,203,178, 38,158,231,133, 0,164,148, 82, 67, -121,159,255, 75,121,247,244,244, 28,155,149,149,245,189,159,159, 31,124,125,125,159,152,107, 13, 6, 3,164, 82,169,200,207,207, -239,199, 30, 61,122, 8,127,251,237,183, 82,183, 0, 9, 75, 62,219,254,203,172, 64, 15,119, 21, 0, 96,209,210,125, 5, 0,240, -219,111,191, 33, 41, 41, 9,238,238,238,168, 91,183, 46, 59,107,214, 44,255, 9, 19, 38,124, 13, 96,120,105, 88,197,185,200,139, -164,209,178, 39, 91,246,159,203,180,209,226,121,222, 22,176,212, 74,168,172, 36,168,248,123, 43, 57, 43,198,240, 14, 22, 75, 8, -201,207,207,183,145, 44,181, 90,141,162,201, 21,102,179,249, 9, 92,142,227, 64, 8,161,101, 97,150,146,225,177, 0, 14, 81, 74, -239, 58,200, 68,109,152,155,222,137,196, 90,201,164,254, 86, 23,234, 93, 63,122,244,186, 22,192,169,251,195,151,124,215,182,109, -224,123,211, 22, 79, 47,204, 76,202,248,100,224,235, 85,195,252, 60,101,138,236,180, 28,143,136,136,206,120,228, 81,217,209,116, -182, 25, 60,120,240,186,253,167,227,136, 84, 42, 18, 9, 88, 86,216,170, 94,184,103,176, 27,235,166, 2,220,226, 99,111,159, 26, - 58,116,104,189,137, 19, 39,182,118, 38,239, 12,195, 64,173, 86, 99,221,186,117, 96, 28,136,157,243, 44, 78,141,148, 80,239, 2, - 43,145,210,106,181,216,181,107, 23,162,163,163, 47, 18, 66,162,138,126,114,145, 82,138,220,220, 92, 36, 39, 39,195,223,223,255, - 34, 33, 68,104,191,141, 88, 28,211,170, 85,181,146,170, 33, 67,134, 12,180, 88, 44, 2,187, 65,162, 56,129,121,130,196, 56,154, -247,128,128,128,253, 0, 94,102, 89, 22, 70,189,222,248,191,175,190,178,191,125,222,158,100,149,134,105, 77, 43,199,113,130,139, - 23, 47, 10,173,125, 6,128, 16,128, 2,128, 23,165, 20, 12,195, 92,113,160, 60, 35,229,114,249,169, 29, 59,118,168, 27, 55,110, - 76,196, 98, 49, 44, 22, 11,174, 94,189, 26,252,229,151, 95,142, 62,120,240,224,171,132,144,218,197,131,167, 59, 88,239,117,142, - 31, 63,174, 11, 13, 13, 45,145, 56,230,230,230, 10,194,195,195,219, 2,136,253, 23, 48, 19, 82, 83, 83,123,188,252,242,203, 99, - 82, 82, 82, 98, 44, 22,203,199, 0,234,122,121,121, 93,236,213,171, 23,100, 50, 89,123, 71,136, 86, 89,245,238,227,227,211,253, -165,151, 94,194,146, 37, 75,240,229,151, 95,118,162,148, 30, 34,132,116,204,205,205, 61,216,173, 91, 55,104, 52,154, 30, 37, 17, - 45, 71,219, 18, 33, 36,188, 77,155, 54, 63,206,156, 57, 83,181,107,215, 46,132,133,133, 33, 47, 47, 15, 31,126,248,161,207,231, -159,127,126,132, 16,210,206, 74,182, 74,195, 36,132,212,150, 72, 36,107,126,254,249,103,101,104,104,104,168, 72, 36, 98, 66, 67, - 67,161,213,106,161,215,235, 37,115,230,204,169, 39,147,201,254,250,230,155,111,214, 0,232,245, 79,247,247, 98,105,205, 1,160, - 6,160,113,102,219,181,140,188,231, 0,144,216, 58,143, 80, 8,169, 84, 10,169, 84, 10,137, 68,130,155, 55,111, 78,147, 74,165, - 11,237,199,226,178, 48,201,223,147, 86, 3, 66,200, 89,150,101,203,252, 92,220, 52,228,159, 46,207,162, 52, 7, 17, 66, 22, 1, -104,255,104,200,103,142,122,121,121,189,159,146,146,242,192, 81,204,128,128, 0,207,252,252,252,111,252,253,253,225,235,235,107, -155, 59, 2, 3, 3, 97, 54,155,145,154,154, 10, 74, 41,178,179,179, 33,151,203, 17, 16, 16,240,205,232,209,163, 55, 47, 91,182, - 44,179, 68, 76, 30, 95,118,235, 55,245, 51,150,101, 25, 0, 96, 5, 74,229,248, 41, 64,213,170, 85,209,170, 85, 43,232,245,122, -228,228,228,160, 78,157, 58, 2, 66,200, 96,134, 97,212,148,210, 31, 40,165,135,255,131, 90,247, 82,141,225,103, 20,223, 23, 37, -132,128,231,121, 8, 4,130,199,136, 86,241,203, 74,138,138,218, 43, 41, 79,197,109, 52, 26,109, 36,203,205,205,205, 70,210, 44, - 22, 75,105, 68,171, 34, 76,189, 62,207,243,213, 9, 33,203, 28, 37, 91,197,101,240,224,193, 79,216,123, 76,152, 48, 33, 33, 45, - 45,141,190,209,185,129, 34,102, 79, 82,114, 13,119,165,204, 91,165,170, 38,117,247,208,100,102,102,254, 9, 64,227,196, 35,106, - 54,106,212, 72,182,118,235,241,132,145, 31,204,155,213, 56,212, 83, 93, 63,200,203,221,207, 77, 38, 86, 50, 68, 39,181,152, 19, - 60, 60, 60,194, 42,176, 66, 3, 0,104, 52, 26, 8, 4,130,231, 66,163, 69, 41,181, 16, 66,162, 8, 33, 23,119,237,218,133,102, -205,154,217,200,150,149,132,228,228,228,224,234,213,171,104,211,166, 13, 0, 68, 57, 98,171,197,243, 60, 76, 38, 19, 76, 38,147, -141,192,136, 68,162, 39, 8,140,245,183, 44,203, 94,169, 96, 22,102,185,187,187,183,105,223,190,189,248,151,141, 27,197,148, 82, - 29, 30, 5,190,206,167,180,148, 0,217,197,196, 98,177,216,180,108, 66,161, 16, 15, 31, 62,180,105,133,173,154,225,226, 91,231, -165,137, 68, 34,249,232,215, 95,127, 85, 55,109,218,148,100,102,102,130,231,121,219, 32,249,253,247,223, 75,123,247,238, 29,120, -225,194,133, 79, 80,129,112, 54, 0, 72,105,132, 8, 0,212,106,181, 5, 0, 83, 25,152, 22,139,133,180,108,217,114, 98, 70, 70, - 70,189,194,194,194, 57,142,180, 35, 0,219,139, 46,235,152,242, 87, 76, 76, 76, 97,223,190,125,101,213,170, 85,107,246,180,109, - 53, 60, 60,188,133, 80, 40,196,153, 51,103, 12, 0,172, 43,235,163,151, 47, 95, 54,244,234,213, 75, 18, 28, 28,220,194,137, 1, - 55, 60, 50, 50,242,128,143,143,143,204,170,193,236,211,167,143,112,249,242,229,170,196,196, 68,152, 76, 38, 76,158, 60, 25,175, -189,246, 26,188,188,188, 48, 97,194, 4,223,249,243,231,255, 4,160, 81, 25,152, 82,177, 88,188,238,206,157, 59, 97,254,254,254, -178,211,167, 79,163,126,253,250,200,200,200, 64, 74, 74, 10,242,243,243,145,146,146,130,225,195,135,251,124,253,245,215, 1,207, -209,252,147, 45, 18,137, 32,151,203, 53,217,217,217, 57, 79,129, 35, 1, 32,182, 39, 89, 18,137, 4, 18,137, 4, 82,169,244,169, -226,178,190, 32,147,120, 32, 33,228,186, 72, 36,146,200,229,114, 17,195, 48,144, 72, 36,157, 61, 60, 60,174,189,242,202, 43,117, -247,239,223, 31,231, 8,142, 94,175, 95, 39,145, 72,132, 62, 62, 62, 0,128,176,176, 48,212,175, 95, 31, 58,157,142,207,201,201, -129, 70,163, 97, 30, 60,120,128,194,194, 66, 36, 39, 39, 35, 36, 36, 68,200, 48,204, 58, 0,175,150,132,119,242, 66,242, 82, 0, - 75,173,159,189,189,189, 83, 1,200,172,159,165, 82, 41, 2, 3, 3,145,152,152, 8,149, 74,197,126,254,249,231,189, 54,110,220, -216,147, 16, 50,152, 82,186,222, 14,106,198,139,106,163,101, 37, 89,246,175,143, 17,173,232,232,232,233,187,118,237,106, 91,210, - 68, 86,180, 95, 91,170, 38,203,122, 57, 66,136, 8, 33,224, 56, 14,190,190,190,144,203,229,144,203,229, 32,132,216,190, 47,142, - 95,180,194,119, 58,179, 10,133, 2,111,189,245, 22,253,225,135, 31,198, 20,145,173, 59,142,254,111,159, 37, 49, 54, 45, 86,113, -169, 93,187,246,169, 79, 62,249,164,251, 31,127,252,145,216, 56,180,154, 64,145,244, 32, 95,170,214,104, 16, 84, 37,122, 72,143, - 94,151,241,232,244,161,163,114, 39, 47, 47, 79, 86, 35, 72,110,100, 24, 61,169, 34, 17,168,252, 21, 34,137,159,187,123,160,200, -104, 72, 83,187,187,139, 13, 6, 67, 54,128,172,178, 64,212,106,245, 62,137, 68, 18,194,178, 44, 88,150,133,151,151,151, 27,165, - 20, 26,141, 6, 65, 65, 65,202,136,136,136, 91, 2,129, 0, 12,195, 32, 63, 63,255,193,253,251,247, 59,151,151, 48,119,119,247, -125, 18,137, 36,132, 97, 24, 16, 66,192,178,172,237,224,130,245, 61,203,178, 32,132,160,160,160,192, 33, 76, 74,233, 37, 66, 72, - 84,116,116,180,141,108,237,217,179, 7, 93,186,116, 65,118,118, 54,174, 93,187,102, 79,178, 28,218, 54,180, 55,126,167,148, 66, - 36, 18,225,230,205,155,143,109,105, 91, 47,149, 74, 85,225,206,227,225,225,113,162, 79,159, 62,248,241,199, 31, 41,165,148, 0, - 80, 16, 66,234,187,185,185,221,188,126,253,186, 67,118, 48,148, 82,152, 76,127,255,212,218,198,237,251,151, 19,100,186,115,163, - 70,141, 72, 78, 78,142,149, 64,218, 22, 68, 44,203,226,187,239,190,147, 53,109,218,116,170, 84, 42,157, 40, 18,137,114,205,102, -243, 47,122,189,126, 14,165, 52,251,121, 26,148, 90,183,110,253, 65,124,124,252,107, 33, 33, 33, 59,158,130,196,211, 38, 77,154, - 24, 1,200, 88,150, 21, 86,194, 64,201, 22,181, 45,189,149,236, 83, 74, 45,141, 26, 53,210, 23, 77,242,172,163, 88, 94, 94, 94, - 63,237,222,189, 59, 40, 36, 36, 4,102,179, 25, 22,139, 5,249,249,249, 56,122,244, 40, 12, 6, 3, 44, 22, 11,194,194,194,240, -217,103,159,233,223,127,255,125,233,178,101,203,210,242,243,243, 7,148, 3,251,254,230,205,155, 21,254,254,254,178,194,194, 66, -196,198,198,162, 81,163, 70,200,203,203,131, 78,167, 67, 65, 65, 1, 76, 38, 19,114,115,115, 53, 28,199, 25,159,151,186, 22, 8, - 4,144, 72, 36, 16,137, 68,217, 33, 33, 33, 32,132, 72,227,226,226, 42,178, 21,167, 6,144, 43, 20, 10,197,246, 4, 75, 34,145, -224,204,153, 51,159,136,197,226, 18,181, 89,101,181, 31,103, 62, 63, 7, 19,249, 34,145, 72, 36,241,240,240, 16,217,205,211, 34, -165, 82, 9, 31, 31,159, 37, 0,186, 58,152,239,134, 30, 30, 30,182,241,189, 65,131, 6,136,143,143,223,150,147,147, 51, 40, 45, - 45, 13, 12,195,172, 99, 24,166,167,149, 7,100,101,101, 33, 56, 56,184, 97,105,120, 45, 27,249,143, 1,161, 54,141, 86,237,154, - 30,202, 98,243, 20,212,106, 53,238,223,191, 15,157, 78, 71,111,223,190, 77,198,142, 29, 75,140, 70,227,106, 66,200,159,148,210, -123,101,113,145, 23, 65, 42,100,163,101, 45,224,210,136, 85,113,226,229, 8, 33, 50, 26,141,202, 70,141, 26,241,214, 9,220,122, - 1, 32,165, 17,173, 34,205,129,211, 34, 20, 10, 85, 99,199,142,205,251,225,135, 31, 70, 19, 66,150, 83, 74,111, 87,180, 0,119, -108,249,217,247,203,207, 38,127,230, 17, 80,173,198,196,137,211, 4,175,191,254,250,233,181,107,215,114, 30,181,186,118, 60,188, -111,189,239, 55, 31, 78,218,179,123,247,110,224,145, 97,180,163,114, 98,231,206,157,126, 19,222, 27,135,207, 62,122,127,175, 58, -204, 75,172, 36, 30, 10,169, 65,151,174, 4, 45,148,212,140,124,109,235,142, 29,201, 0, 46,148, 5, 34,147,201, 66,110,223,190, - 29,102, 79, 36, 76, 38, 19, 52, 26, 13,214,174, 93,235,173, 82,169,188,149, 74, 37, 4, 2, 1,234,215,175,239,168,198, 36,228, -214,173, 91, 97, 42,149, 10, 5, 5, 5, 48, 24, 12, 48,155,205,224,121, 30,132, 16, 8,133, 66,136,197, 98, 40, 20, 10,167, 78, -246,217,147,173, 61,123,246,160, 78,157, 58,200,202,202, 66, 76, 76,140,211, 36,203, 94, 75,100,111,143, 37, 16, 8,240, 83,104, - 40, 70, 38, 37,217, 8,204, 34, 55, 55,124,198,243, 21,170,251,122,245,234,209,147, 39, 79, 98,239,222,189,232,214,173, 27,249, -253,247,223, 77, 28,199,137, 18, 19, 19, 29,214,142,241, 60,111, 75,171,117,220,182, 39, 88,206, 18, 45,139,197,162, 18,139,197, -208,235,245,182,173,125,251,171,122,245,234,208,106,181,130,220,220, 92, 65, 82, 82,146,124,246,236,217,239, 30, 57,114,196, 31, - 64,255,127,115, 32,250,225,135, 31, 66, 70,142, 28,249, 80, 32, 16,208, 46, 93,186, 12,124,240,224, 65, 15,127,127,255, 67,127, -252,241,199, 87, 0,194,157,197,243,246,246, 62, 47, 16, 8,130,148, 74,165,104,211,166, 77,230,188,188, 60,145,143,143, 79,170, -149,216, 90,203,218,108, 54, 39,228,228,228, 52,118, 4,207,219,219, 91,244,237,183,223,154, 51, 51, 51, 69,126,126,126,169, 86, - 28,133, 66, 33,218,180,105,147, 57, 55, 55, 87,164,209,104,206,103,103,103,151,139,151,145,145, 49, 96,240,224,193,199, 15, 29, - 58,228,197,178, 44, 30, 60,120,128,204,204, 76,104, 52, 26,172, 91,183, 14, 33, 33, 33,216,188,121,179, 86,171,213,142,248,223, -255,254, 55, 53, 63, 63,223, 17, 87, 15,109,154, 53,107, 22,146,157,157, 13,141, 70, 3,157, 78,135,243,231,207,163,118,237,218, - 72, 74, 74, 2,195, 48,208,104, 52,248,254,251,239, 11, 8, 33,218,231, 97, 2, 98, 89,214,166,117,178, 35, 71,250, 22, 45, 90, -224,200,145, 35,147,156, 33, 71,148, 82,163, 80, 40,124,140, 96,217,189,183, 56,155, 54,142,227, 68, 69, 54,162,196,145,207,207, -129,180,149,201,100,162,226, 95, 22, 20, 20,136,252,253,253, 91, 59, 65,124, 61,101,178, 71, 10,167,144,144, 16,228,228,228,112, - 70,163,177,223,186,117,235,204, 0,208,168, 81,163,126, 28,199,233, 45, 22, 11, 43, 22,139,161,211,233,224,227,227,227, 89, 42, - 32,131,143,183,255, 50,219,175,184,141,150,191,191, 63,162,162,162, 96, 48, 24,144,156,156,140,163, 71,143,154, 57,142,219,240, -195, 15, 63,240,222,222,222,195,222,120,227, 13,246,194,133, 11,239, 0,248,160, 44, 46,242,162,104,179, 74, 35, 91,214, 83,135, -109, 1, 28, 1,208,206,154, 73,251,173,195,178, 52, 89,197, 52, 90,164,156, 14,151,157,144,144,160, 80, 40, 20,182,239,204,102, - 51, 2, 2, 2,120,158,231, 73,241,231, 88,211, 81, 81, 17, 10,133,170, 41, 83,166,100,127,255,253,247,131,224,160, 65,249,166, -119, 34,177,182, 24,201, 90,250,229,204, 37,223,126, 57,219,227,238,222,213, 88,177,120, 1,199,113,184, 80,175, 94,189,214,249, -249,249, 2, 55,133, 25, 25,217,216,131, 71,126,180,168,131, 21,194, 0, 88,117,246,236,217, 11, 93,187,118, 61,185,234,215,173, - 30, 73,177,177,127, 74,114, 51,146,213, 53,195, 4,162,192,144,158,121,122,189,168, 95,191,126,222, 0,222, 40, 11,139, 97, 24, -196,198,198, 34, 46, 46, 14, 74,165, 18, 42,149, 10, 74,165, 18,106,181, 26, 42,149, 10, 42,149,202,233, 50,100, 24, 6, 28,199, - 97,203,150, 45,144,203,229, 80, 40, 20,143, 93, 86,146,245, 52,117,211,165, 75, 23,104,181, 90, 40,149, 74,219,118,167, 51, 98, -181,209, 50, 26,141, 48, 26,141, 48,153, 76, 28, 0,161, 64, 32,192,240,132, 4,155,150,199, 25, 2, 83, 92,234,215,175, 79,255, -252,243, 79,156, 60,121, 18, 58,157, 14,223,126,251, 45,252,253,253, 59, 0,152,230, 44,150,157,145, 62,151,155,155, 43,204,205, -205,181,105, 7,133, 66,161, 77, 99,232,232,228, 32, 16, 8,108,171, 81,235,101,175,213, 98, 89, 22,190,190,190,240,243,243,195, -210,165, 75, 69,213,170, 85,123,237,223, 28,132,230,207,159, 95,115,209,162, 69, 43,215,174, 93,187,103,192,128, 1, 27,175, 94, -189, 58,212,205,205,237,202,225,195,135,103, 75, 36, 18,190,130,253, 59, 40, 41, 41,201,199,254, 43,158,231,229, 22,139,197, 70, -108, 11, 10, 10, 80,183,110, 93,135,241,174, 95,191, 46, 7,128,217,179,103, 11, 1,200,173,110, 67,172,152, 5, 5, 5,194,218, -181,107, 7, 57, 72, 10,110, 17, 66, 90,119,234,212,233,212,129, 3, 7,220, 67, 66, 66,144,152,152,136,196,196, 68,212,172, 89, - 19,115,231,206,213,229,230,230,182, 44, 34, 87,191, 59,152,237, 0,119,119,119,225,195,135, 15, 97,177, 88,208,176, 97, 67,124, -255,253,247,232,215,175, 31,234,214,173,139,220,220, 92, 92,191,126, 29,107,214,172,113, 23,137, 68,111,252,219,147, 79,209,214, - 86,169, 87, 69,196, 98,177,168,165, 82,105,174, 68, 34, 17, 91,237,179,142, 30, 61,234,180, 54,203,126, 1,232,204,231,231,129, -180, 22, 23,177, 88, 12, 63, 63, 63,135,113, 36, 18, 9,177,142,141, 22,139, 5, 57, 57, 57,156,191,191,191,109,123,255,226,197, -139, 92,213,170, 85, 57,150,101, 89,177, 88, 12, 66, 8,228,114,121,169, 3, 62,229,232,204,215,251, 77,179,157, 58,100,132, 10, -245,248, 41,143, 22,253, 23, 47, 94,132,201,100,194,209,163, 71,205,255,251,223,255,146,178,179,179,199, 3, 16,236,219,183,111, -240,164, 73,147, 88, 31, 31, 31,155, 29,109, 73, 92,228, 69, 35, 91, 37,105,185,172,179,208,145,232,232,104, 82,116,180,146, 88, - 9, 14,165,244, 9,114, 85, 26,241, 42,154, 36, 72,121,157,142,101, 89,236,221,187,215, 70, 8,172,167, 14, 41,165,168,108,162, -229,233,233,169,107,214,172,153, 58, 62, 62,254,231,138,106,178,150,126, 57,115,201,188, 89,159,123,104,111,156, 70, 66, 82, 50, -180,105,230, 11, 39,174,220,223, 6, 96, 27, 0, 96, 89,173, 35, 24,125,227, 59, 71, 49,107,121,203, 27,212, 11, 80,109,123,185, -235,107,193,125, 71,125,192,188,253,246,219,173, 6, 15, 30,156, 51, 96,192,128,247,148, 74,101,184,201,100,202,218,186,107, 87, - 92,223,190,125,171,113, 28, 55,184, 60,159, 35,102,179,249, 65,175, 94,189,108,101,235,231,231,167,254,229,151, 95,124, 85, 42, - 21, 6, 14, 28,152, 30, 23, 23,103,219, 46,202,203,203,123,224, 72, 26, 77, 38,211,131, 6, 13, 26,148,186, 93,104,213, 72, 58, -131, 89, 84,151,182,211,133,153,153,153,184,121,243, 38, 4, 2, 1,154, 55,111,142, 19, 39, 78,160, 85,171, 86, 78,157, 56,212, -235,245, 8, 9, 9,129, 94,175,135, 78,167, 43, 0, 32, 89, 87,173, 26, 0,224,157,204, 76,156,255,223,255,112,122,222,188, 10, -181,163, 6, 13, 26,208, 51,103,206,224,202,149, 43, 48, 24, 12, 24, 49, 98, 4,138,182, 13, 1,224, 21, 39,242, 28,234,231,231, -215,165,107,215,174, 1, 0,160,211,233,200,217,179,103, 33,149, 74, 65, 8, 65,114,114, 50,118,236,216,129,196,196, 68, 16, 66, -224,238,238, 30, 68, 8,169, 70, 41,189, 95,198,196, 64,238,223,191,143, 47,190,248, 2, 60,207, 99,210,164, 73, 8, 11, 11,179, - 17,172, 7, 15, 30, 96,246,236,217,224, 56, 14,159,127,254, 57,106,214,172, 9,179,217, 44,117,198, 79, 89,101,203,132, 9, 19, -238,110,219,182,109, 79,124,124,252,171, 95,126,249,101, 91, 66, 8, 63,113,226,196, 47,212,106, 53,247, 52,184, 89, 57,121,184, -121,231,129,141, 8, 21,191,188,189, 60,156,198,187, 29, 27,111,251,127,142,179,199,227,224,233,225,238,108, 18, 11,204,102,179, -174,103,207,158,154, 45, 91,182,144,154, 53,107,226,222,189,123,214,197,105, 65, 5, 92, 58, 36,106,181,218, 48,150,101, 69,119, -238,220, 65,213,170, 85,209,172, 89, 51,204,153, 51, 7, 25, 25, 25,176, 88, 44,240,241,241,225,205,102,243, 69,163,209,120,236, -223,158,120,236,181, 78,246,215,209,163, 71, 39,137,197, 98, 10,224, 12, 0,167,136, 54,165,212, 88,165, 74,149,226,216, 22, 60, - 39,242, 44, 79, 50,250,251,251, 31, 85,169, 84,175,101,101,101, 61,166,213,106,217,178,165,201,215,215,247,184,163, 56, 74,165, - 50,139,101, 89, 79, 0, 72, 76, 76,132, 66,161, 16,197,198,198,206, 35,132, 76, 6,128,106,213,170,205,211,106,181,162,106, 69, -227,169,159,159, 31,140, 70, 99,169,102, 44,167, 46,166,172, 6,176,218,110,238, 77,206,201,201,145, 45, 88,176, 32,127,222,188, -121,133, 28,199, 25, 0, 28,206,206,206,182,249,209,170, 90,181,106,142, 80, 40,244,208,104, 52,129,118, 80, 79,112,145, 23, 73, -202,212,104, 21, 49, 73, 90,194, 63,149,168,201, 42,137,108, 57,162,149, 32,132,160,176,176,240, 49,237,136,245,212, 97, 73, 68, -171,104, 66,175,208,214, 97, 17,201,146,253,242,203, 47, 27, 22, 47, 94,124,210,209,255,179,183,209, 90,246,213,172, 47,173, 36, -235,242,201, 3,248, 61, 38, 39, 99,210,188,133,139, 42, 90, 9,181,189, 21,245,253,124,189,142,252,111,238, 76,245,221,189,107, -176,113,217,215,244,242,185,115, 77,207,157, 59, 55,104,220,184,113, 85,138, 26,150, 22,192, 95, 0,250, 58,114, 74, 39, 61, 61, -253, 49,251,168,176,176,176, 91, 26,141,198, 87, 42,149, 34, 54, 54, 54,255,218,181,107, 78,111,201, 20,199,172, 36,166,255, 24, -201,186,118,237, 26,218,183,111, 15, 0, 56,113,226, 4, 90,182,108,233, 20,217, 50,155,205,217,181,106,213,178,105,183,114,114, -114,120, 0, 24,149,156,140,229,254,254, 16, 8, 4, 56, 61,111, 30, 62, 53,155, 49, 71,232,156,233, 78,195,134, 13,233,185,115, -231, 16, 23, 23, 7,139,197,130,238,221,187,219,147, 44,103,242, 92, 55, 50, 50,242,224,225,195,135,189,149, 74, 37,116, 58, 29, -242,243,243, 49,100,200, 16,244,235,215, 15, 6,131, 1,155, 54,109,194,246,237,219,161, 82,169,160,211,233,160,211,233,220,163, -163,163, 79, 17, 66,218,148,102, 91, 72, 41,165,157, 59,119,198,241,227,199,193,178, 44,154, 54,109,138,204, 76,219, 97, 32,248, -250,250,150,116,143, 45,234,239,255,202,132, 36, 16, 8,232,209,163, 71,191,108,219,182, 45,226,227,227, 95,109,212,168,209,183, - 67,135, 14, 77,124, 90, 92,119, 55, 21, 26,212, 14,133,193, 96,128,193, 96, 64, 64, 64, 0,242,242,242,112,247,238, 93, 24, 12, - 6,248,250,104,156,198,139,170, 91,211,134,231,227,227, 3,157, 78,135,251,247,239,195,104, 52,194,203,203,221,153,250, 15,238, -220,185,243, 31, 27, 54,108,240, 92,179,102,141,177, 93,187,118,226,111,191,253,150,168,213,106,164,165,165, 85, 52,203, 71, 79, -156, 56, 17,210,169, 83,167,136, 27, 55,110,224,232,209,163, 48, 26,141,136,138,138,194,237,219,183,209,162, 69, 11,228,231,231, -159, 57,119,238,220,246,231, 97,226,177,110,235,217,105,158, 62,213,104, 52, 38, 0,139,158,166, 45, 62,124,248, 80, 82,191,126, -125,131, 84, 42, 21, 23,145,182,133,255, 86,219, 46,161,222,159,234, 36, 99, 89,226,231,231, 55,222,203,203,171, 83,245,234,213, -145,154,154, 42, 18,139,197,104,217,178,165,169, 73,147, 38, 38, 63, 63,191,119,156,168,151, 27, 34,145,168,205,163,197, 4,135, -135, 15, 31,130, 82, 58,169,110,221,186,239,231,229,229, 33, 51, 51, 83,172, 86,171,109,139,234,136,136, 8, 24, 12,134, 27, 78, -144,205,153, 85,171, 86,157, 42, 18,137,230,164,167,167,255, 80, 66, 25,137, 27, 52,104,160, 22,137, 68, 48,153, 76,143,145,205, -146,184,200,139, 76,178, 30, 35, 90,118, 44,178,184, 58,189,220,109, 67, 71,109,180, 8, 33, 48, 26,141, 80, 40, 20,182, 45, 41, -123, 79,240, 37, 17,173,138, 72,112,112, 48,154, 53,107, 38,219,184,113,227, 79, 11, 22, 44, 56, 85, 17,140,205, 27,214,251,187, -241, 5,193, 73,103,118,227,214,149, 11,216,118, 61, 59, 99,210,188,133,239,189,254, 70,255,212,226,196,108,211,232,242,241,194, -125, 20,117, 3,125, 61,143,124, 53,127,158, 90,123,227, 52,146, 83, 82,176,251,204,185, 11, 70, 74,175, 3,152, 84, 89,149,109, -127,122,173,162, 36,245, 25, 12, 60, 54,247, 14, 25, 25, 25,184,126,253,186,149,100, 69, 1, 64,171, 86,173, 46, 90,201,214,133, - 11, 23,208,168, 81,163, 39,220, 59, 60,161,121,200,202,154, 91,236, 25,157, 0,120, 89, 9,191, 64, 32, 64,203,169, 83,157, 38, - 89,132, 16,202,113, 28,180, 90,173,117,165, 88, 33,146, 85, 52, 40,126,116,248,240, 97,239, 85,171, 86,229,174, 93,187, 54,147, -231,121, 97,131, 6, 13,130, 26, 55,110, 76,214,173, 91, 7, 0,232,219,183, 47, 38, 77,154,132,107,215,174, 65,161, 80,160, 85, -171, 86,220,244,233,211,125,198,143, 31,255, 14, 30,249, 73,122, 66, 56,142, 19, 85,171, 86,237, 16,128, 14, 55,110,220, 0,128, - 83,148,210,150,214,251,101,221,115, 64,248,188,188, 60,161, 74,165, 42,209, 53,132,232,209,177, 78,103,183,250,108,152, 39, 79, -158,252,226,171,175,190,218,246,225,135, 31,222,121, 74,204, 18, 53, 90,175,189,246, 26, 10, 13, 38, 36,164,230,128,227, 44, 40, - 52,165, 57,141,103,175,209,122,237,181,215, 80,160, 55,226, 97,178, 22, 22, 11,135,188, 66,139,163,237, 72,254,242,203, 47,239, -251,229,151, 95,252,254,252,243, 79,112, 28,199,223,190,125,251,126,207,158, 61,213, 19, 39, 78,244,180,179, 65,117, 86, 22,247, -239,223,191,247,201,147, 39,181, 17, 17, 17, 30,103,206,156, 65, 90, 90, 26, 44, 22, 11, 58,116,232, 0,177, 88,252,112,222,188, -121, 34, 0,139,159, 23,162, 37,145, 72,112,246,236,217, 74, 33, 88,246, 34, 22,139, 43,188,253,248,162,202,153, 51,103, 18,199, -141, 27, 87, 91,173, 86, 47,106,221,186,117,123, 79, 79, 79,198,221,221,253,104, 96, 96,224,251,245,235,215,119,120,119, 65, 40, - 20, 14, 85, 40, 20,119, 45, 22, 11,155,159,159, 15,157, 78, 7, 0,176, 88, 44, 98,134, 97, 80,173, 90, 53,155,242,164,105,211, -166,240,243,243,227, 98, 98, 98,134, 58,138,159,150,150,246,216, 41,196, 18,100,116,203,150, 45, 5, 6,131, 1,113,113,113, 39, -236,111,148,198, 69,158,119,169, 80, 80,105,134, 97, 64, 41,133,180,113, 99, 36, 31, 56,128, 45, 91,182,148,249,144,101,203,150, -161,184,170,175,120,116,111,235,233,194,145, 35, 71,218,126,115,225,194, 5,155, 81,124,247,238,221, 31,195, 60,123,246,236, 19, -100,203,145,136,225,105,105,105, 55, 54,109,218,116,110,254,252,249,103, 28, 44, 32, 27,166,213, 70,171,247, 91, 3,147,151,124, -241,217,213,181, 59, 14,215, 77, 46,164,201,147,230, 45,252,176, 56,201,114, 20,179,150,159,178, 86,144,143,231,209, 5,243,231, -185, 89,181, 99,191, 92, 76,201,129,133,142,118,178, 34,203,205,187,189,102,145, 16,194, 87, 6,102, 5, 26,220, 99,152,246,238, - 29,146,147,147,109, 36,203,206, 97,105, 84,171, 86,173, 46, 22,145, 44,235, 61, 75, 69,210, 41, 16, 8,240, 97,126, 62, 4, 2, - 1,218,205,152,129, 14,179,102, 57,157,119,142,227, 32, 16, 8, 16, 22, 22,230, 52,201,178,199, 36,132,180, 44, 40, 40,192,154, - 53,107,242,238,220,185, 19, 90,189,122,245,241,171, 87,175, 94, 40,151,203, 31,251,159,130,130, 2,188,254,250,235,248,225,135, - 31,208,185,115,103,243,208,161, 67, 37, 12,195,116, 42, 43,157,113,113,113,163, 59,118,236,184, 76,175,215, 11, 50, 51, 51, 71, - 59,122,175,188,188,111,218,180,233, 78, 88, 88, 88, 91,148,238,194,129, 7,240,231,211, 96, 46, 90,180, 8, 0, 34,158, 6,179, - 52,141,214,175,191,254, 10,158,231, 17,236,167,129,193, 96, 64,241,178, 46, 15,179,184, 70,107,227,198,141,224,121, 30, 85,252, - 61, 96, 52, 26, 97, 53, 32, 46, 15,211,211,211,243,235,181,107,215, 6,197,196,196, 32, 33, 33, 1, 11, 23, 46,124,144,157,157, -221, 53, 59, 59, 91, 50,125,250,244, 35,111,189,245,150, 47,207,243, 6,103,251, 38,165,212, 64, 8, 25,250,210, 75, 47,173,155, - 61,123,246,189,200,200,200, 42, 45, 91,182,212,100,102,102,166, 95,186,116,233,254,178,101,203,148, 22,139,101,104,105, 91, 82, -255, 68,127,183,151,196,196,196, 25, 69,218, 84,167, 8,150, 35,233, 60,123,246,236,148, 34,236,115,142, 96,255, 83,121,127,218, -147,140,229,165,243,187,239,190, 75, 64, 49,255,104,206,166,243,236,217,179,113,157, 58,117,154,229,235,235, 59, 93, 42,149, 34, - 61,253, 81,176, 3,171,230,209, 58, 95, 55,110,220, 24,157, 59,119,198,173, 91,183,102, 77,157, 58, 53,238,105,202,179,104,193, - 29, 10, 96, 80,199,142, 29, 39,246,238,221, 27,223,125,247, 29, 40,165, 43,255, 11, 36,184,220,160,210,209,209,209,196,254, 21, - 0,204,102,115,252,221,187,119,253,107,102,101,177, 1,132,160,105,211,166,176,143, 81,104,181,219,177, 26,212, 29, 59,118,204, -194,243,124,153, 62,171, 56,142,139, 63,121,242,164,239,129, 3, 7,132,214, 10, 45, 50,234,228,147,146,146,152, 35, 71,142,216, -180, 99, 2,129, 0, 71,143, 30,181,152, 76,166,135,206,102,248,214,173, 91,149,178,154, 59,118, 45,238,253,125,187,127,243,106, -222,172,117,182,218,195,163,196,142,108,245, 32, 95,102, 3, 19, 48,115,190,156, 59, 83, 99, 37, 89,191, 94, 76,201,214, 27,184, -246, 55,210, 11, 46, 87,118,101,231,229,229,197, 89, 79, 23,230,231,231, 63,124,142, 26,225, 37, 66, 72,148,191,191,255, 69, 20, - 59, 93,104,189,215,168, 81,163, 39,238, 57,165, 54,225,121,184,185,185,217, 6, 9,103,237,178, 8, 33,212,186,149, 93,148, 46, -242,148,121, 62,121,245,234,213,170, 67,134, 12, 81,133,133,133,197, 18, 66,132,195,135, 15, 55,249,249,249,137, 78,156, 56, 97, - 6, 64,218,182,109, 43, 72, 73, 73,161,137,137,137,218,110,221,186,229,141, 28, 57,210,243,175,191,254, 18,243, 60,127,176, 28, -236,123, 0, 58, 58,123,175, 60,233,221,187,119, 44, 74,112, 28,250, 52,242, 44, 48,173,162,205,206, 69,108, 92, 98, 81,172, 75, - 30,220,131, 84,155, 93,149,217,108,129, 54, 55,211,105,141,214,221,251,137, 69, 33,199, 56,112, 92, 82, 17,222, 35,131,120,154, - 85,224,136,182,160,213,162, 69,139,186, 50, 12,195,156, 62,125,218, 48,127,254,252,248,244,244,244,238,148,210,135, 69,237,172, -221,154, 53,107,126,114,192,149, 67,105,117,127,157, 16,210,226,227,143, 63,126, 15, 64, 43, 0, 85, 0, 60, 4,112, 2,192,226, -231,204,131,249,194, 23, 20,187,194,242,162,156,100, 60,120,240,224,140, 30, 61,122, 8, 66, 66, 66, 62, 9, 9, 9, 97,178,178, -178,144,159,159, 15,134, 97,224,231,231,135, 58,117,234,192,207,207,143,191,113,227,198,220,143, 63,254,184, 92,159,124,181,107, -215, 14, 53,155,205, 53, 24,134, 9, 5, 16, 74, 41, 13, 37,132,132, 2,240, 40,210,140,169,171, 86,173, 42,104,222,188, 57,154, - 53,107,134, 35, 71,142, 96,243,230,205,171, 41,165,251,236,181, 89,197,185,200,243, 32,215, 27,147,182,132,199, 17,202,160, 93, -237,243,244,232,141, 40, 66,107, 93,124,114,126, 40, 55,168,244, 19, 3, 78, 86, 86,231,174, 93,187, 30, 96, 89,182, 90, 73, 19, - 87, 9,193,159,227, 82, 83, 83, 95, 45,115, 16,203,202,234,252,254,251,239, 31, 96, 89,182,154, 85, 83,101,177, 88, 12, 90,173, -246,237,118,237,218,125, 47, 20, 10, 37,246,184, 60,207, 63, 72, 77, 77,253, 71, 99,245, 21,247,163,213,185,107,143,140,167,197, - 84,138,152, 26,183,118,253,136,212,180, 12,252,122, 49, 37, 43,207,200,181,187,149,174,187,250, 44,210, 31, 23, 23,215,229, 57, -102,252,151, 74,219, 18, 44,235,158,131,146,238,128, 67,210,244,114,210, 71,138,200, 86,165,116,242,148,148,148, 5, 83,167, 78, -125,101,238,220,185,222,123,246,236, 81, 23, 61, 3,189,122,245, 74,187,122,245,106,107, 0, 18,189, 94,127,112,238,220,185,222, - 51,103,206,244, 4,224, 89, 52,200,164,166,166,166, 46,129, 75,202, 20,179,217,156, 80,167, 86,132,181,238, 30,115,233, 96,255, -222, 98,177, 36, 56,131, 87, 18,142,253,103,142,227, 18,202,209, 42,127,216,172, 89, 51,246,195, 15, 63, 76,221,179,103,143, 53, -144,110,129, 93, 59,187,133, 50,156,146, 58,216,151, 12, 0,230, 23, 93, 46,121, 14,199, 58,103, 62,255, 91,242,219,111,191, 77, -235,215,175,223, 26, 15, 15,143,245,161,161,161, 17,190,190,190,106,153, 76, 6,131,193,144,103, 52, 26,111,222,186,117,107,192, -212,169, 83,239, 57,130,181,102,205, 26, 22,128,136,231,121, 41,195, 48, 10, 0,106, 66,136,187,149,104, 17, 66, 96, 50,153, 16, - 23, 23,135, 79, 63,253,148, 59,116,232,208,255, 0,124,238, 68,114,155, 0,240,182, 27,199,189, 1, 24,241,200,129,109,122,145, -102,243,153, 8,225,113,164,214, 69, 74,110, 68,145, 82,141,244,203, 13, 42, 93, 74, 67,209, 1,104, 81,201,141,175, 44,204,144, -231,165,147, 12, 54,204,255, 25,203,230, 63, 22,231,208, 74,194, 74,252, 92,206, 6, 96, 78,161,101,220,226,125,215, 22, 24, 44, -148, 55, 89,248, 97,183,210,116,215,255, 31, 15, 64,150,138,220,115, 0,247,229, 74, 74, 31,169,196,188, 94, 37,132,188, 52,110, -220,184,105,114,185,188, 41, 0, 20, 20, 20,156, 78, 74, 74,154,101, 61, 85, 88,222,125,151,148,193,154,211,211, 27, 63,143,120, - 70,163,241,253,151, 94,122,233, 27,142,227,190, 50,155,205, 39, 92, 53,229,146,231, 89,126,253,245,215,123,214,121,185, 79,159, - 62, 44, 0,108,218,180,201,233,211,192, 67,134, 12,225,138, 2,153,235, 1,232, 0,228,226,145,195,109, 2, 0, 58,157, 46, 43, - 41, 41,233, 6,199,113, 55, 0,252, 84,129, 19,183,222,132,144,157,148,210,215,138,198,206,157,148,210,215,236,191,123,214, 98, - 71,182, 74, 26,239,203, 55,134,119,201, 35,217,116,237,239,137,182, 56,129, 42,239,115,105,114, 51, 37,255,232,211,174, 96, 93, -242,194, 18,203, 88, 0,131, 43,122,223, 37, 47,100,157, 63, 4,208,221, 85, 18, 46,121,225,230,191, 10, 16, 44,171, 92,191,126, -253,153,153, 8,252,219, 98,191, 77, 88,210,150,161, 85, 74,210,102,185,136,150, 75, 92,226, 18,151,184,196, 37, 46,113, 73, 89, - 36,178,200, 70,203, 70,162,138,108,181,138,147, 44,123,114,101,255,153, 0,232, 84,202,170,204,153,211, 4,157, 42,176,234, 59, -232,194,116, 97,186, 48, 93,152, 46, 76, 23,166, 11,243,255, 23,102, 5, 37,186,156,173,195, 93,207,138,104, 89,141,223,175, 71, -145,233,181, 47,210,233, 37, 25,195,151, 69,180, 30, 51,246,172,236, 11, 64, 39, 23,166, 11,211,133,233,194,116, 97,186, 48, 93, -152, 46,204,167,188,218, 79,158, 60,121, 10, 30,197, 63,166,147, 39, 79,158, 66, 41,141,126, 68, 99,104,244,179,124,246,181, 70, -104,123,189, 33,168,245,186,214, 8,109, 75, 41,147, 81,214,203,254,123,215,214,161, 75, 92,226, 18,151,184,196, 37, 46,121,222, -229,212,188,121,243, 10,230,205,155,103, 53,124, 79, 7, 64,138,180, 89,233,207,242,193, 69,219,132,229, 30,148, 42, 55, 4,207, - 63, 45,132,144, 0, 70, 32, 26, 40, 20, 73,218,131,242,117, 0, 0, 12,123,141, 51,234,255,176, 88, 76,235, 41,165, 73, 21,197, -174, 69, 72,173,154, 26,217,118, 3,199,137,226,243,140,189,111, 80,122,182, 34, 56,125, 8,105, 41, 17,139,247, 75, 52,154, 18, -189, 20, 26,178,179, 11, 13, 70,227, 43,155, 40, 61,233,234, 3, 46,113,137, 75, 92,226,146, 23, 65, 8, 33, 10,119,119,247, 67, - 12,195,132,216,125,135,146,222, 3, 0,199,113,201, 90,173,246, 21, 74,105,198, 63,137, 89, 76,140, 0,206, 62, 15,229,231,236, -214,161, 0,120, 44,182, 80,185, 17,179, 35,253,149,173, 35, 66, 67, 54, 36,165,164, 94,204,213, 27,135,223, 76,204,211, 58,155, - 72,129, 72, 58, 82,227,229, 55,231,205,161,239,123,134,133, 71,144,224,224, 64,128, 2, 15,227, 19,124,239,222,185,221,113,227, -218,197, 19, 68, 82,233,167, 38,189,254, 71,167,153, 39, 33,138, 16,165,228,196,143,147,223,210, 8, 96, 65,255,217, 27,246,214, - 38, 36,248,250, 35,215, 18, 78,145, 44,141,167,231,190,121, 7, 15,202,220,139, 28,128,218,177,214, 71,241,245, 46, 95,150,125, -242,202, 43,251,250, 16,210,217, 69,182,254,147,131,145,159, 90,173, 30, 47, 20, 10,219,153, 76,166, 16,177, 88, 28,207,113,220, -209,172,172,172, 69,148,210, 68, 87, 9,185,196, 37,229,246,161, 82, 3,153,255,155, 65,206, 1, 64,165, 82,157,103, 24, 38,200, -158, 4, 88,253, 59, 22,247, 19,105,231, 47,242, 94,102,102,230, 75,101,228, 55,212,195,195,227,123, 0, 77,202,115,152, 92,180, -213,116, 78,171,213,190, 93,116,250,184, 36, 60,149,187,187,251, 12, 66, 72, 31,134, 97,202, 13, 40,204,243, 60, 71, 41,221,148, -149,149,245, 57,165, 52,175,180,223,185,187,187, 31,140,137,137,105,226,227,227, 83,174,150,198, 98,177,224,225,195,135,222, 77, -155, 54, 61, 6, 32,242, 89, 98, 58,195, 69,254, 77, 41,235,228, 97,137,156,199,250,198,209,136,217, 60,143,129,171,230,188, 29, -152,252,224, 78,224,232,185, 63,135, 71,122,201,219,197,100, 20,164, 56,250, 64,177, 76,181,189, 85,135,215,218,143,125,239, 67, -197,165,171, 55,177,255,200,159,200,213, 25,192, 50, 12, 52, 42, 57,194,195,107,144,133,203,183,120,173, 94,186,240, 43,153, 82, - 19, 93,152,159,221,205,153, 12, 41,228,130, 79, 39,245,108,170,240,244,224, 0,158,195, 71, 93, 27, 40, 62,217,121,241, 83, 0, - 83,156, 38, 89,135, 14,201,211, 82, 83, 49, 51, 32, 0, 2,139, 5, 82,134,129,148, 16, 72, 25, 6, 10,169, 20, 93, 86,174,196, -172, 61,123,228,211, 94,125,213, 69,182,254, 99,162, 82,169,134,134,135,135,207, 95,177, 98,133,103,245,234,213,161, 80, 40,160, -213,106,189,110,221,186,213,240,131, 15, 62, 24,236,230,230, 54, 53, 39, 39,103,153,171,164, 92,226,146, 82, 73, 71, 67, 0, 37, - 6,137, 47,235,222, 63, 37, 12,195, 4, 37, 38, 38,250,200,229,114,112, 28, 87, 20, 13,128,183, 45,164,237, 35,229, 20, 57,170, - 69,100,100,164,169,156,113,227,187,180,180,180, 78,246,161,208,202,138,184,147,152,152,216,169,118,237,218,223, 1,120,165, 20, -242, 50,227,189,247,222, 27, 95,183,110, 93,171, 22,168, 40, 10,194,163,215,140,140, 12,140, 27, 55,206,246, 12,158,231,113,224, -192,129,247,134, 14, 29, 10, 0, 31,148,145,247, 16, 31, 31, 31, 50,122,116,217, 62,138,166, 79,159,142,233,211,167, 99,241,226, -197, 68, 40, 20,106,202, 41,207, 74,193,116,148,139,252, 27, 26,172,226, 30,226,139,253,108, 87,177,120,135,187,158, 32, 90, 14, - 55, 78,202,239,158,189,104,197,240,153, 67, 90,145, 85, 31,116, 10, 27,179,248,224,159,181, 3,100,109,174, 39, 21,198, 59,160, -201, 26,214,188,205,171,237,198,141,159,164,248,249,183,195,184,117,227, 50, 98, 78,252,242,216,111, 26,191, 50, 20, 41, 25,121, - 24, 58,246, 35, 37, 97, 5,237, 68, 82,249, 48,147,190, 96,149,131,218, 44,223,218, 30,242,119,155, 55,173, 35, 76,148,221,130, -159,187, 12,173, 26,213, 20, 6,239,187,242,110,109, 66,190,185, 78,105,185,177, 10,139,147,172, 21,111,189,133,214,102, 51,124, - 88, 22, 44, 33, 96, 1, 48,132, 64,111, 48,224,220,192,129,104,186,110, 29, 62,223,177, 67, 62,227,245,215,157, 38, 91,114,185, -124,117, 97, 97,225,151, 21,112,220,246,111, 14,158,225, 42,149,234,211,220,220,220,129,207, 81,154,252, 1,164,151, 16, 31, 81, - 4, 64, 67, 41,117, 42,178,176, 84, 42, 29,217,191,127,255,133, 75,150, 44,145,167,166,166, 34, 41, 41, 9, 28,199, 65, 42,149, - 34, 44, 44,140, 28, 60,120,208,115,210,164, 73, 11,212,106,181, 36, 55, 55,247, 27, 39,210,201, 8,133,194, 33, 30, 30, 30, 61, -124,125,125,125,210,211,211,211,179,178,178,118, 24, 12,134, 85, 21, 93,217, 23, 97, 14,168, 90,181,106,143,128,128, 0,223,196, -196,196,140,132,132,132,237, 6,131, 97, 53,165,148,127,202, 50,173,143, 34,111,245, 0,146,171, 86,173,122,237,254,253,251,105, -149,136,153, 84,181,106,213,235,206, 98, 18, 66, 20, 0, 54, 2, 8, 40,231,167, 73, 0,250, 82, 39,181,217, 46,169, 60,146, 85, - 20,210,234, 49, 66, 85,214,189,127, 90,100, 50, 25,126,249,229, 23, 8,133, 66, 8,133, 66,100,101,101, 33, 40, 40,200,246, 89, - 36, 18,217,222, 87,169, 82,165, 92, 60,142,227,154,178, 44,139,252,252,124,112, 28,103,187,178,179,179, 65, 41,133, 68, 34, 1, -199, 61, 10,231,100,119,191,105, 25,229,216, 39, 32, 32, 0, 63,255,252, 51,140, 70,227, 19,247,213,106, 53,174, 94,253, 59,200, - 8,203,178,104,214,172, 25, 67, 8,233, 83, 22,209, 34,228,145,211,205, 81,163, 70,129,101, 89, 91, 72, 61,235,123,235,197,113, - 28,166, 79,159, 14,251,208,100,255, 36,230,115,215,174,203,240, 16, 79, 41, 77, 6, 80,162,141, 22, 83, 22,104,164,159,242,237, - 9,111,189, 92, 48,117,120, 52,253,100,240, 43,244,227,183,218,209, 87,219,212,251,141, 21, 8,200,153,235, 15, 17,228, 6,172, - 30,215, 36, 36,216, 75,113,181,174,167, 42,188, 4,213,168,125, 64,233, 0,185, 66,253,197,219,239,127,164,220,117,236, 10, 30, -198, 63,124,130,100, 1,192,249,253,171,145,156,148,136,139, 49, 9, 24, 48,236, 29,165, 90,173,249,130, 16, 18, 80, 18,102,113, -113, 83,137,254, 55,185,111, 43,105,190, 57, 9,121,238, 0, 27, 42,134, 80,174,195,164,215,234, 75,212, 42,209,252, 50, 84,184, - 54, 76,137, 88,188,127,222,193,131, 54,146,213,210, 96,128,132,227, 96,225, 56, 27,201, 50, 90, 44, 40, 52, 26,225,159,159,143, -187, 67,135,130,154,205,152,186,109,155, 92, 34, 22,239,119, 36,157,118, 43,128,174,106,181,250, 8, 33, 36,220,145, 74,126, 22, - 71,102,157,116,227, 17,174, 82,169,142, 16, 66, 94,125, 30,210, 73, 8, 97, 8, 33,179,135, 15, 31,126,161, 70,141, 26,135,139, -136,149,245,158,160, 70,141, 26, 7,135, 15, 31,126,137, 16, 50,157, 16,194, 56,136, 25, 24, 16, 16, 48,103,201,146, 37,242,219, -183,111, 35, 49, 49, 17,102,179, 25,253,251,247, 7,199,113, 40, 44, 44,132,209,104,196,151, 95,126,169,240,244,244,252,148, 16, - 18,226, 72,222, 9, 33,172,155,155,219,154,181,107,215,142,186,127,255,190,223, 31,127,252,193, 92,185,114,197,247,171,175,190, - 26,234,233,233,185,174, 40,224,170, 83,229, 73, 8, 97,252,253,253, 87,253,254,251,239,111, 95,189,122, 53,104,235,214,173,194, -211,167, 79,251, 47, 93,186,116,132,191,191,255, 58, 66, 8, 91,145, 58, 34,132, 52,148,203,229, 29, 39, 78,156,200,159, 58,117, - 42,241,212,169, 83,137, 11, 23, 46, 68,235,214,173, 91,206,154, 53, 43,170,130,152,141, 84, 42, 85,135,137, 19, 39,242,199,143, - 31, 79, 58,115,230, 76,194,130, 5, 11,152, 14, 29, 58,180,154, 59,119,110,125, 39, 49, 55,158, 58,117,170,109,124,124,124,245, -132,132,132,106, 9, 9, 9, 85, 19, 18, 18,170, 38, 38, 38,134, 36, 39, 39, 87, 73, 73, 73, 9, 78, 75, 75, 11, 62,122,244,104, - 43, 0, 27,158,183,126,244, 95,199, 44,106,203, 23, 41,165,208,106,181,216,181,107, 23,138,180, 87, 13,237, 73, 86,110,110, 46, -146,147,147,173,247, 4,255, 66, 58,193,113,156,141, 72, 29, 56,112, 0,195,135, 15,135, 86,171,181,125, 39, 16, 8,108,239,173, -255, 83, 30,166, 85,243,196,113, 28,206,156, 57,131,209,163, 71, 99,225,194,133,216,176, 97, 3,118,238,220, 9,173, 86,107, 35, - 91, 22,139,165, 92,204,140,140, 12,240, 60,239,104, 30,145,147,147,227,112,189,219, 19, 32,129, 64,240, 4, 41,178, 94,206,180, -165,167,193,124,158,165, 52,143,240,142,136,173,113, 23,169,234,218,217,223,140,168,234,247,233,252,241,125,100,224, 76,160,230, - 66,192, 84, 0,152,242,193, 27, 11, 64, 68, 50,192, 92, 8,111,137, 22, 27,199, 70,168, 63,254, 57,246, 70, 45,111,117,244,141, -244,220,189, 37,146, 10,129,104, 64,159, 33,239,121, 38,164,229, 34, 49, 53, 7, 44,243,247,188, 23,213,105, 8, 4, 44,131,179, -251, 30, 41,174, 24,150, 69,142,206,128,236,124, 19,122, 15, 25,239,241,227,194,207, 6, 0,248,178,172,140,212, 35, 36,172, 69, -128, 71,207,218,181,171, 48, 55, 36, 49,136,122,245, 4, 56, 30,160,199, 95, 71,195, 44, 31, 54,114,191,184,103, 61, 66,230, 92, -161,244,118, 89, 56, 18,141, 70,230, 94,191, 62,102, 6, 4,160,141,217, 12, 17,165,120, 57, 53, 21,151,199,143,135, 97,203, 22, - 48, 0, 68,111,188,129,246,139, 22,225, 88, 64, 0,252, 10, 11,145, 61, 97, 2,188,247,238,133, 72,173,150, 57, 83,248, 34,145, -200,180, 98,197,138,128, 17, 35, 70, 28, 33,132,180,123,158, 53, 91,132,144,112, 15, 15,143, 35, 95,124,241,133,239,180,105,211, -146, 43, 9,211, 87,161, 80,108,210,233,116,227,157, 93,209, 22, 17,167,217,203,150, 45, 27, 51,106,212, 40,205,136, 17, 35,232, -221,187,119, 53, 0,172,218, 17,239,214,173, 91,215, 88,177, 98,133, 95,147, 38, 77,222, 27, 61,122,180,136, 16, 50,181, 60, 45, -143, 82,169, 28,187, 98,197, 10,175,140,140, 12,228,231,231,219, 6,217,132,132, 4,200,100, 50, 91, 80,117,161, 80,136, 47,190, -248,194,115,236,216,177,227, 1,140, 47, 47,189, 18,137,100,200,247,223,127, 95,179,115,231,206,130,184,184, 56, 48, 12, 3,137, - 68,130,183,222,122, 75, 88, 80, 80, 16, 50,115,230,204, 81, 0,190,119,166, 12,132, 66,225,128,229,203,151,135,183,108,217, 82, - 16, 19, 19,131, 22, 45, 90,224,236,217,179,120,227,141, 55,132,121,121,121,213, 38, 77,154, 52,188,180, 21, 86, 89, 90, 39,185, - 92, 94,247,143, 63,254,136, 15, 14, 14,182, 13, 44,213,170, 85,227,162,163,163,181, 49, 49, 49, 17,127,254,249,103,102,139, 22, - 45, 30, 58,129, 25, 40,151,203, 35,119,239,222,157, 60,115,230,204,142,203,150, 45,235, 14, 0, 77,155, 54,221, 62,107,214,172, -195, 90,173,182,206,241,227,199,181,173, 91,183, 78,112, 16, 50,192,223,223,159, 27, 55,110,156,178,172, 31,173, 92,185, 50, 27, - 64, 21, 66, 72,245,162, 64,219, 46,249, 7,132, 82,106, 33,132, 68, 17, 66, 46,238,218,181, 11,205,154, 53,195,174, 93,187, 16, - 29, 29,125,209,158, 12, 92,189,122, 21,109,218,180, 1, 30, 5,146,255, 87,108,181, 56,142,131, 64, 32, 64, 66, 66, 2, 86,174, - 92,137,185,115,231, 34, 44, 44, 12,102,179,249, 9,178, 85, 68,136, 28, 82,193, 88, 44, 22,156, 59,119, 14,235,215,173,195,212, - 79, 63,133, 74,165, 2, 0,152, 76, 38,104,179,178, 32,149, 74,109,100,172,156,178,220,116,231,206,157,241, 65, 65, 65,143,109, - 25, 90, 95,139,198, 44,240, 60, 15,139,197, 2,189, 94,143,133, 11, 23, 90, 40,165,155,202,233,147, 54, 82, 52,126,252,120, 24, - 12,127,199, 33,175, 95,100,147, 92,181,106, 85, 52,104,208,192,246,153, 97, 24,234, 40,230,143, 47,213, 69,161,221,175, 35,166, - 47, 0, 0, 4, 5, 5, 33, 34, 34, 2,254,254,254,165, 98,150,196, 69,254,109, 41,110,147, 85, 33, 27,173,210, 34,101,223,184, -159,242,229,136, 73, 11, 22, 40,164,172,240,253, 30,245, 80, 69, 35, 2,100, 30, 16,181,249, 24, 68,243,104, 33, 79,181,247,128, -253, 31,227,171,158, 90,102,212, 79,250,223,106,120,120,120,223,213,106,159, 48,194, 19,138,164,237, 67,107,134,147,135,201, 90, - 8, 4, 2, 40,220,188,240, 82,143, 15,192,178, 12,148, 26, 47, 16,174,240,111, 70,204,176, 16,176, 2,104,243, 10, 81,181,122, - 77, 70, 34,149,181, 47,143,104,169,221,132,223, 79,236,247,146, 52,211,146, 0, 89, 21, 41, 56,235,116, 26, 32, 6,227,153,135, - 15,187,132,201, 70,109,191,242, 61,128, 14,142, 20, 12,107,177,192,135,101, 97,162, 20,151,199,143, 71,212,242,229,184,104, 37, -134,203,151,227,226,168, 81,240, 16, 10, 33, 97, 24, 80,179,249,137, 61,125, 7, 39, 32,244,232,209, 3, 25, 25, 25,190,159,126, -250,105,133,201,150, 76, 38, 91, 79, 8,233, 42, 20, 10, 77,132, 16, 48, 12, 99, 11, 2,110,125,111, 50,153, 68, 44,203,238,206, -200,200,112,122,203,143, 16, 18,238,238,238,126,228,212,169, 83,190, 10,133, 2,211,167, 79,175, 20,146,165, 82,169, 78, 15, 31, - 62,188,202,250,245,235,247, 18, 66,186, 56, 74,182,138,147,172,229,203,151,103,175, 92,185,242, 71,251, 45, 66, 74,105, 50, 33, -100, 85,147, 38, 77,222, 30, 53,106,148, 6,192,152,209,163, 71,163, 60,178, 37,145, 72,218,133,134,134, 62,182,170,149, 72, 36, - 0, 0,133, 66, 1, 55, 55, 55,136, 68, 34, 24, 12, 6, 68, 69, 69, 17,177, 88,220,202,145, 52,171, 84,170,174, 61,123,246, 20, -156, 60,121, 18, 41, 41, 41,112,115,115,131, 66,161, 0,199,113, 24, 57,114,164,104,209,162, 69,175, 58, 75,180,130,131,131,187, -119,236,216, 81,112,237,218, 53,220,191,127, 31, 6,131, 1,183,110,221,130, 90,173,198,160, 65,131, 68,243,231,207,127,221, 89, -162, 5,160,238,168, 81,163, 82,237, 73,150, 85, 20, 10, 5, 9, 15, 15,215,122,122,122, 54, 2,240,208, 25,204,119,222,121, 39, -109,222,188,121,109, 14, 30, 60,248,177,245,203,131, 7, 15, 78, 2,128,111,190,249,230,184,183,183,119, 35, 0,142, 18, 45, 80, - 74,249, 55,223,124,243,129, 88, 44,134, 80, 40,132, 88, 44,126,236, 18,137, 68, 96, 24, 70,101,237,206,255, 85, 82, 67, 8,105, - 2,224,107, 60, 58,145,245, 41,165,244,204,115, 66,182, 46, 17, 66,162,162,163,163,109,100,107,207,158, 61,232,210,165, 11,178, -179,179,113,237,218, 53,123,146,245,111,217,104,129,231,121, 8,133, 66, 44, 88,176, 0, 38,147, 9, 63,253,244, 19, 54,111,222, -252,216, 24,170, 86,171,177,120,241, 98,167,182,185, 56,142,195,154, 53,107,240,241,164, 73, 54,146, 85,180,184,134,159,175, 47, - 60,189,188, 16, 27, 27, 91, 46,209,202,202,202,250,124,199,142, 29, 40,203, 24,126,199,142, 29,182,247,246,198,240, 14,205,115, - 44, 11,131,193,128,151, 95,254, 59, 84,236, 59,239,188, 99,123,175,213,106,193,178,172,181, 44,136,163,152,133, 20,232, 33,253, -251,187,174, 31,126,248,152,134,174, 52,204,210,184,200,243,168,221, 42,225,212, 97, 20,165,244, 98,145,137, 68, 52,128, 93, 69, -219,137,101,219,104,221, 78,211, 45, 17,144,228, 6,243,198,189, 50,164,138,143, 27,104,126, 42, 68, 29, 62,199, 95,233, 50, 44, - 88,184, 27, 0,240,209, 91,141, 81,191,211,108, 24, 87,191,130,241, 45, 88,241,192, 4,195, 68, 0,211,158,236,120,124,100, 80, - 96, 0,254,186,123, 21, 2,150,133,216,205, 11,110, 30,190,224, 45, 70,228,164,221,199,145,173,223, 1, 0,150,173,217, 4,134, - 97, 32, 16,176, 48, 24, 57,132, 85, 9, 0,207,243,145,101,165,179, 54, 33, 47,245, 10,247,111, 22, 28,162, 33,215,220,239, 35, -220,199,243,241, 31, 52,148, 32, 44, 73, 73, 90, 40,101, 77,107, 19,242,210,117, 74, 79,149,171,129, 96, 24, 48,132, 64, 46, 18, -193,176,101, 11, 46, 22, 17, 44, 0,184, 56,106, 20,152,223,126,131, 74, 34, 1, 75, 8, 4, 69, 42,232,138,116,116, 0,136,136, -136,192,178,101,203,124,199,142, 29, 91, 33,178,165,215,235,231,168,213,234,142,171, 86,173,242,237,217,179,231, 19,247,239,222, -189,139, 54,109,218,164,166,164,164,204,121, 26,146,165,209,104, 16, 31, 31,255,212,251,234, 86,146,117,224,192,129,144,160,160, - 32, 68, 69, 69,121,127,244,209, 71,206,144,173,105,246, 36,107,244,232,209, 87, 0,248, 16, 66,138, 19, 21, 82,116,175,158, 29, -217,202, 1, 48,191,140,149,104,136, 66,161, 64, 90, 90, 26,134, 12, 25,130,219,183,255, 86,128, 6, 4, 4,216, 86,122,177,177, -177,240,246,246, 6, 33,196,199,145, 60,123,123,123,251, 26,141, 70, 12, 27, 54, 12,241,241,127,155, 51, 6, 6, 6, 90,203,212, -203,217,114,244,245,245,245, 45, 44, 44, 68,235,214,173,161,215,235, 1, 0,125,251,246,133, 80, 40, 68, 90, 90, 26,132, 66,161, - 87, 5,170,199, 43, 58, 58,186, 84,215, 42,106,181,218,228,238,238, 94,203, 73, 76,207,215, 95,127, 61,113,249,242,229, 79, 28, -108, 57,123,246,108, 55, 15, 15,143,131, 30, 30, 30,225, 78, 98,242,246,164, 74, 36, 18, 61, 70,180,132, 66, 33, 24,134,225,241, -223,151,255, 1,176,158,130,251, 1, 64,131,231, 72,179,101, 35, 91,123,246,236, 65,157, 58,117,144,149,149,133,152,152,152,127, -157,100,217, 17, 19, 8, 4, 2,219, 34, 89, 42,149, 34, 42, 42,202, 70,178, 8, 33, 40, 40, 40,128, 64, 32,176,142,215, 14, 13, -126,217,217,217,240,247,243,131, 74,165, 66,205,176, 48,220, 41, 26, 71,172,239, 37, 18, 9, 8, 33,176, 88, 44,229,149, 97, 30, - 30,217, 90,125, 80,217,213, 99, 37, 69,101,170,142, 3, 2,192,243,188,117,204,167,149,129,233,229,229,133,252,252,124, 71, 49, -159, 75, 41, 69,163, 21, 5,224, 34,128,104, 74,233,242, 34,195,248,199,220, 59,180, 5,112, 4,118, 71, 42, 9, 33, 76, 45, 95, -229,202,121, 99, 59, 14,121,165,142, 23, 10,211,239, 67,170,242, 2,209, 84,197,130,133,187,113,237, 94, 38, 0, 96,193,134,243, -248,121,102, 87, 64,230,129, 8,183, 12,248,169, 4, 61, 75, 34, 90, 4,148,240,148, 66,192, 50, 69,123,183, 44, 88,150,129, 54, - 61, 25,139, 62, 31, 83, 68,178, 54, 99,215,241, 24, 4,133,214,249,123, 31,151, 16,128,150,221,184,189,221, 68,203,199,246,106, - 46, 75, 37,201,208, 4,200, 33,149, 22,227,143,238, 34,144,170, 12,198,181, 11,146,159,219,161, 95, 14,160,220,137, 66,202, 48, -143,140,223, 9, 41,209,144,141, 41,186,199, 18,242,200,251, 43,239,252,152,110, 37, 44, 74,165, 18,190,190,190,152, 59,119,174, -239,228,201,147,127,130,147, 1,168, 41,165,183, 8, 33,237, 70,142, 28,121, 36, 51, 51,211, 55, 34, 34, 2, 74,165, 18, 74,165, - 18,169,169,169,232,221,187,119,106, 74, 74, 74, 69,181,101,235,134, 15, 31,238, 43, 18,137,112,247,238, 93,120,120,120,216, 8, - 98, 69, 73,150, 90,173, 62,125,240,224,193,144, 26, 53,106,224,230,205,155,168, 85,171, 22, 54,110,220,232,221,191,127,127,135, -200,150, 76, 38,235, 81, 68,156, 48,106,212, 40,205,168, 81,163,218, 2,104, 91,222,179, 71,141, 26,165,249,224,131, 15, 94, 47, -139,104, 9,133,194,120,173, 86,235, 39,147,201,176,117,235, 86, 40,149, 74,200,229,114, 4, 4, 4, 64,171,213, 66, 46,151,131, - 82, 10,179,217,108, 29, 44, 50, 29,201,119,122,122,122, 42,199,113,193,123,247,238, 69,122,250,223,190,245, 66, 66, 66,144,147, -147, 3,142,227, 50,156, 45,203,164,164,164, 84, 66, 72,240, 95,127,253,133,184,184, 56,116,233,210, 5,191,253,246, 27, 26, 55, -110, 12, 0, 48, 26,141, 21,113,226,199,177, 44, 75,203,168, 63, 2,192,189, 50, 49,139, 38, 47,167, 48,121,158,231,173, 36,203, -254,213,158,124,149,243,204,255,138,184,217,175, 19,158,215, 68,118,233,210, 5, 90,173, 22, 74,165,242,185,178,207,177,106,180, -102,204,152,129, 49, 99,198,192,215,215, 23, 31,127,252, 49, 4, 2,129,237,178,223, 25,112, 70,124,124,125,203,188,111, 53,136, - 47,103,188, 84,185,185,185,205, 96, 24,166, 15,235, 64,193,113, 28,199,241, 60,191, 41, 39, 39,167, 76,247, 14, 86,195,117, 71, -234,194,190, 12,202, 73,235, 83, 99,150,196, 69,158, 7, 41,126,218,176, 36,141, 22,254, 62,117,248, 68, 40, 32,107, 46,143, 20, -169,236,142,216,147,172, 47,198,180, 31,242, 74, 29,119,108, 63,116, 6, 34, 83, 54, 96,204, 43,163,134,205, 32, 34, 5,124,221, -132, 65, 37, 86, 2,195,222, 76, 72, 76,130,167,187,178,136,100, 21, 93, 12,131,250,117, 30, 45,102,119, 29,143, 65, 80,245, 58, - 16,176, 44, 4, 44, 11,165, 76,130,212,148,100, 8, 4,204,205,210, 30, 91, 79, 64,122,245, 10, 15,174,234,238, 41, 68,134,183, - 17,254,190,242,146,127,216, 72,133, 32,127, 49, 58,123, 74, 67,234, 9, 72,175,114,136,139,141,104,153, 44, 22,136,222,120,195, -182, 93,120,113,212, 40, 68, 45, 95, 14,174,123,119,232, 76,166,199, 84,197,206,138,181, 65, 90, 9,209,180,105,211, 82, 51, 51, - 51, 7, 84,112,245,120, 43, 43, 43,171,221,167,159,126,154,154,145,145, 1,185, 92,142,228,228,228,167, 34, 89, 0, 80, 88, 88, - 56,104,249,242,229,169, 71,142, 28,129, 82,169,132, 74,165,170, 48,209,178,106,178, 62,255,252,243, 42,193,193,193,136,141,141, -133,155,155, 27, 60, 61, 61, 81,191,126,125,156, 60,121,210, 59, 56, 56,120,111,145,193,108, 89,105,250,125,249,242,229,217, 0, -176,124,249,242,108, 66,200, 81, 66,200, 82, 66,200, 15,197,174,165,132,144,163,246,191, 45, 44, 44,220, 86, 22,182,209,104, 60, - 26, 19, 19, 67,229,114, 57, 88,150,133,201,100,130, 84, 42,181,213, 87,110,110, 46, 10, 11, 31,109,115, 95,184,112, 1,102,179, -249,132, 35,121,207,203,203,219,179,122,245,106,115,112,112, 48,234,213,171,135, 70,141, 26,161, 69,139, 22, 8, 9, 9,193,140, - 25, 51,140, 58,157,110, 79, 5,136,214,174,141, 27, 55,154,131,131,131,209,168, 81, 35, 72, 36, 18,212,175, 95, 31, 1, 1, 1, -152, 59,119,174, 49, 39, 39,103, 79, 5,170,233,225,213,171, 87,217, 50, 72,174, 26, 64,170,147,152,241,231,206,157, 99,155, 55, -111,190,189,248,141,166, 77,155,110, 87, 42,149,110, 0,156,181,251,163,246,228, 74, 34,145,216, 46,235,247, 2,129,224,255,131, - 70,107, 60,128, 43, 0, 98, 1,124,252, 60, 37,204,222,240, 61, 51, 51, 19, 49, 49, 49,184,112,225, 2,154, 55,111,142, 19, 39, - 78, 0, 69, 6,242,255, 98,250, 64, 41,133, 80, 40, 68, 68, 68, 4, 62,248,224, 3,236,222,189, 27,183,110,221,130,217,108,182, - 17, 33,171, 77,166, 51, 26, 45,145, 72, 4, 95, 95, 95,152,205,102,155, 54, 11, 0,238,220,190, 13,129, 64, 0,158,231, 97, 52, - 26,203,213,104,185,185,185,205, 88,177, 98,197,123, 25, 25, 25,254,233,233,233, 62,246, 87,106,106,170, 79,114,114,178, 79, 98, - 98,162, 79,124,124,188,207,131, 7, 15,124,238,223,191,239,255,229,151, 95,190,231,230,230, 54,195,209, 57,168,126,253,250,120, -231,157,119,108,215,146, 37, 75,108,215,145, 35, 71,156, 54, 94,103, 89, 22, 17,211, 23,160,107, 58,181, 93,187,189,137,237,186, -246,209,232,178, 48, 31,227, 34,207, 77, 91, 46, 58,109,104, 31, 88,186,132, 57, 56,153, 82,186,220,186, 93,104,239,188,180,184, - 49, 60, 0, 32,210, 79, 62,251,139,145,109,134,188, 92,203, 13,191, 31, 58,143,153,219,238,221, 12, 27,226, 29, 81,195, 61, 29, -124,122, 12, 62,122,171, 49, 22,108, 56, 15,224,209,214, 33,159,118, 13, 52, 43, 22, 84, 21,140,251,218,140, 18,183, 29, 44, 70, -253,225,123,119,111,183,143,168,219,132, 73,201,200,127,236,248,103, 84,187,222, 32,132, 32,176,122, 29,176, 2, 1, 88,150,129, -128,101,161, 81, 75, 17,243,215, 95,188,161,176,240,112, 73,152,237, 8, 17,248, 41,197, 75,222,234, 92, 95,154, 36, 78,131,183, -191, 2, 34,225, 35, 18, 64,239,245, 46, 54, 67, 8,128,186, 42, 12, 77,244,148, 29, 78,213, 47,105, 71,200,246, 35,165, 24, 96, -242, 60, 15,165, 68, 2,189,193,128, 66,139, 5,237, 22, 45,178,109, 23, 50,132,224, 18,128,122,139, 22,225,212,150, 45, 80,139, -197,128, 68,226,240,169,144,146, 52, 90,169,169,169,232,219,183,239, 83, 17, 34,123,205,214,216,177, 99,143,204,157, 59,215,119, -218,180,105,149,134,249,241,199, 31, 31,217,176, 97,131,111,181,106,213, 42,220, 88,149, 74,229, 36,158,231, 53,243,231,207, 79, -249,234,171,175, 80,220,158,172,136,232, 72, 52, 26,205, 2, 0,237,203,128,154, 57,122,244,104, 17,128, 49, 69,154,173,122,163, - 71,143, 62, 69, 41,157, 90,172,124,167, 47, 91,182,172,175,221, 22,227, 82, 0,139,202, 74, 99,110,110,238, 15, 31,124,240,193, -176, 99,199,142,121, 73,165, 82, 16, 66, 32, 18,137, 80,179,102, 77,219, 41, 26,161, 80, 8, 74, 41, 62,252,240,195,140,180,180, - 52,135,220, 59, 24, 12,134, 53, 51,103,206,108, 95, 88, 88, 24, 50,116,232, 80,145,187,187, 59, 82, 83, 83,241,245,215, 95, 27, -215,172, 89, 19,175,211,233,156,181,165,130,217,108, 94,243,217,103,159,181,203,207,207,175, 62, 98,196, 8, 81, 78, 78, 14, 10, - 11, 11, 49,113,226, 68,227,170, 85,171, 18, 10, 11, 11,157,118,248,219,162, 69,139,187, 15, 30, 60,104, 85, 80, 80,144, 37,151, -203,139,107,251,136, 66,161,104, 2, 96,157, 51,152, 81, 81, 81,177, 15, 31, 62,108, 62,123,246,236,163,102,179, 89,120,246,236, -217,238, 86,146,245,237,183,223, 30,145, 74,165, 29,225,188,209, 62, 47,145, 72, 30,211, 96, 21,127, 47, 16, 8,254,243, 26, 45, - 74,233, 17, 60,114,153,241, 92, 73,113,146,117,237,218, 53,180,111,255,168, 75,159, 56,113, 2, 45, 91,182,196,137, 19, 39,208, -170, 85,171,127,213,189,131,149,104, 9, 4, 2,244,239,223, 31,157, 58,117, 66,149, 42, 85, 30, 59,109,104,125,239, 12,217,176, - 88, 44,168, 91,183, 46, 12, 70, 35, 68, 34,145,109,107, 82, 32, 16,192,219,199, 7,119,239,222,117, 72,163,197, 48, 76,159, 30, - 61,122, 48,215,175, 95, 71,191,126,253,176,126,253,250, 82,127, 59,112,224, 64,252,242,203, 47,232,209,163, 7, 51,101,202,148, - 50,221, 59, 88,141,208, 29,201,147,117,158, 46, 79,163, 87, 89,152,246, 92,228,121, 19, 59,215, 14, 37,181,249, 81, 37,180,175, -229,143, 17, 45, 59, 39, 97,168,238, 45, 31,218,169,166, 0,191, 31, 62,143,153,191, 63, 92,195, 81,186,117,235,197,172,157, 31, -183, 4, 76,155,222, 66,253,222,235, 30,109, 23, 2,224,211,174,193,180,105, 32,136,220, 11,199, 19,133,200, 41, 52,237, 42,185, -225,153,214,255,246,211,119, 31, 52,255,190,149,183,191,143, 27,180, 57,133, 54,178,117,241,200,102, 0, 64,175,209,115, 32, 96, - 31,109, 41,170,149, 82,200, 68, 44,182,172,253, 38,195,100,210,151,216,186,242,132,204,152, 41, 47,213,116, 19, 43,204,200,245, -163,168,227,253,247,161, 63, 82,125,243,147,132,171,161, 59,188,174,101,225,173, 26, 74,245, 55,215,179,199, 0, 88,242,196,132, -152,157, 93,152,253,215, 95,178, 46, 43, 86,224,236,160, 65, 8,228, 56, 28, 13, 8,128,135, 80, 8, 55,137, 4, 12, 33, 40,220, -185, 19,167,182,110,133,175, 68, 2,168, 84,176,204,154, 5, 67, 76, 12,204,121,121,133,206, 18,173, 59,119,238, 60,181,214,169, - 36, 98, 52,121,242,228,159, 50, 51, 51, 7, 84, 38,230,160, 65,131,142, 28, 58,116,200,183,162, 56,121,121,121, 19, 0, 76,168, -132,244,240,132,144,169, 69,142,241,198,140, 26, 53, 74,115,238,220,185, 97,132,144,239,173,171, 9, 66,136,207,240,225,195, 71, - 22, 35, 89,229,158, 58,164,148, 62, 84, 42,149,179, 38, 76,152, 48,231,171,175,190, 82, 90, 13,223, 47, 95,190, 12,139,197, 2, -161, 80, 8,142,227, 48,124,248,240,252,204,204,204, 5,165,121,116, 46, 1,215, 66, 8, 25, 56,103,206,156,225,223,124,243,205, -107, 44,203,122,115, 28,151, 94, 88, 88,184,183,176,176,112,121, 69, 78, 93, 21,149,195,224,105,211,166, 13, 94,184,112, 97, 15, -134, 97,124, 44, 22, 75, 70, 94, 94,222,142,194,194,194, 10,249,230, 58,117,234, 84,250,247,223,127,127, 47, 61, 61, 61, 50, 40, - 40, 40, 71,169, 84, 26,141, 70, 35, 43,147,201,212, 10,133, 34, 10,192,159, 0,110, 56,131,121,225,194,133,148,165, 75,151,198, - 25, 12,134,136,165, 75,151, 30, 87,171,213,135, 8, 33, 68, 36, 18,185,203,100,178,246, 0,142, 2,184,227, 12, 38,195, 48,188, -189,246,170,184,125,150, 88, 44,254,255, 98,163,245,220,137,189,123,135,140,140, 12, 92,191,126,221, 74,178,162, 0,160, 85,171, - 86, 23,173,100,235,194,133, 11,104,212,168,209, 69, 66,136,240,159, 62,121,104,175,209,178, 18,170, 42, 85,170,216, 62,219, 95, -118, 54, 90, 14, 9,199,113, 16,137, 68, 16, 8, 4,240, 15, 8,176, 61,139, 82,138,187,119,239, 66,171,213, 58, 68,180, 88,150, -101, 9, 33,232,215,175,159, 67,207,125,243,205, 55,113,244,232, 81,176, 14,178, 66,150,101, 81,181,106, 85,135,118, 94,224,160, - 61, 21,203,178, 8, 10, 10,170, 48,166, 61, 23,121,158, 8, 86, 73,239, 75, 34, 85, 37, 73,137,198,240,177,105,133,179, 7,126, -125,114,202,141, 20,253,214,152,212,130, 15, 0,208, 77,215,228,251,235,123,179,175,188, 18,158, 0,195,242, 86, 32,234, 71,206, -219,104,126, 50,136,194, 23, 9,124, 32,166,111,191,153, 98, 1,153, 95, 74, 34,146, 68, 82,249,212,181, 43,190,253,106,248,216, - 15,149,215, 98, 83,145,147,111, 0,203, 50,246,131, 39, 4, 2, 22,106,133, 20,193,126,110,216,240,227,215,121,121,185,217,211, - 74,139,123, 88, 69, 37, 26,221,177, 73, 13,137,200, 95,135,136,122,125,193, 74,255,118, 50, 75, 83, 74,217, 29,108,185, 31,175, - 62,212, 73,127,123,168, 27, 93, 34,209, 50, 26, 95,249,180,115,231,125, 51,119,239,150, 55, 93,179, 6,177,195,135, 35,160,176, - 16,146,162,173, 68,134, 16, 40, 69, 34, 40, 69,162, 71, 36,107,225, 66, 20, 90, 44, 88, 52,104, 80,129,193,104,236,236,164, 70, - 66,212,182,109,219, 74, 35, 89,246,196, 8, 78,218,121, 57, 74,182, 58,117,234,116,132, 82, 42,121, 14, 86,242, 86,178,101, 58, -119,238,220,200,227,199,143,199,226,241,192,162,217,199,143, 31,143, 29, 49, 98, 4, 89,185,114,229, 42, 0,159, 57,234,192, 51, - 63, 63,255, 91,141, 70,131, 54,109,218,124, 54,111,222, 60,207,198,141, 27,195,199,199, 7,121,121,121,184,112,225, 2,198,143, - 31,175,205,205,205,157,151,149,149,245,149,147,105,230,138, 52, 55,203, 43,179, 28, 0,172, 46,186, 42, 69,222,126,251,237,203, -177,177,177,153,222,222,222,205, 68, 34, 81, 61, 60,178, 3, 74, 1,176,202, 89, 66,100,149, 49, 99,198,252, 21, 27, 27,155, 17, - 24, 24,216,188, 8, 83, 3, 32, 17,192,138, 10, 96, 38,157, 63,127, 62,168, 73,147, 38,140, 80, 40,164, 44,203, 66, 40, 20, 82, -129, 64, 64,139,236,106, 40, 0,236,216,177, 67, 2, 64, 11,151,252,211,125,211,230,222, 33, 57, 57,217, 70,178,236, 28,150, 70, -181,106,213,234, 98, 17,201,178,222,179,252, 75,105,197,204,153, 51,177,108,217, 50,148,231,209,188,232,116, 31, 41, 15,207,170, -209,226, 56, 14, 38,147, 9,215,174, 93,179,249,236,178,110, 23, 90, 93, 59, 88, 44,150, 50, 79,171,115, 28,199, 25,141, 70,252, -250,235,175, 14,145,173,159,127,254, 25,122,189, 30, 92, 57, 12,206,222, 21, 67,131, 6, 13,160,213,106,109,135,125,162,162,254, -118,149,103, 50,153,156, 34,174, 86,204,136,136, 8,100,100,100,192,203,235,209,121,156,224, 65,127, 43,123, 44,186,255,166,255, -224,178, 52, 90,196, 81,151, 4, 13, 52, 26, 55,131,216,188,173, 91, 29, 73,187, 62, 81,110,168,238,167,130, 80, 36, 69, 82,174, - 5, 7,111,228, 98,197,145,148,248, 66, 51,247,218,173, 52,221,213,178,112,164, 10,183,189,141, 95,234,212,114,208,200,241,138, -124, 3,135,184,184, 7, 72, 79, 75, 6, 67, 24,248, 7, 6, 33, 36,164, 42,100, 98, 6,235,151,127,165,187,120,234,208,201,188, - 92,109,151,210,176, 94,211,136, 79, 45,124,163,101,243,208, 80, 21,129,197, 12,112,102,192, 98, 6,248,162, 87,235,119,252,227, -109,238,250,245,108, 58,229,146,246,244,206,108, 99,137, 49,171,250, 16,210, 82,227,225,177,111,250,142, 29,114,222,100, 66,230, -132, 9,144, 91, 44,144, 22,173, 74, 0, 0, 18, 9, 44,179,102, 61, 34, 89, 3, 7, 22,228,100,103, 59, 29,130,199,219,219,123, -117, 70, 70,198, 11,231, 25,222,211,211,243,211,138,184,137,120,134,105,242, 1,144, 77, 41, 53,149,176,178,246,182,106,185, 42, -128, 91,213,219,219,123, 10,195, 48, 45, 40,165,158, 12,195,100,241, 60,255,103, 90, 90,218,151,148,210,187,174, 41,245, 95,171, -111,171,103,248,242,246,177,211, 0,188, 15, 32,143, 82, 26,231, 42,185,127,188,158, 26,226,209, 41,172, 82, 67,240,224, 95, 60, -121,232,233,233,121,102,223,190,125,141,171, 87,175,206,216,155, 49, 88,125,229, 89,183,183, 4,130, 71,250,136, 99,199,142, 89, -250,245,235,247,103, 74, 74, 74,155,210, 48,213,106,245,254, 43, 87,174,188,156,147,147,243, 4,161,178,247, 20,111,253,172,211, -233, 48,118,236,216, 3,185,185,185, 37,134,224,209,104, 52, 11,191,250,234,171,247,122,245,234,197, 88,221, 81,216, 95,214,112, - 65,214,203,100, 50, 97,221,186,117,252, 55,223,124,179, 56, 59, 59,187,212,173,195,128,128,128,248,164,164,164, 32,171,171, 5, - 71,156,138, 86,173, 90, 53, 57, 46, 46, 46,224,159,196,124, 81, 9, 87,113,237, 22,113,198,247, 19, 33,132, 68,248, 40,250, 82, -160, 15, 3,190, 46, 67,136,216, 66,113, 11, 20,251,229,130,130,239, 47, 36, 81,135,182,206, 68,114,249, 56,149,210,253,243, 94, - 3,222,241,172, 26, 26, 70,124,253, 3, 65,192, 32, 53, 37, 17, 15,238,221,166,219,126,250, 46, 83,151,171,157, 81, 80,144,255, - 93, 89, 56,181, 9, 9,173,166, 22,109, 18,115, 8,135, 53, 31,197,226, 83, 61,193, 48, 1,152,132,204,205,184, 60,115,223,235, -101,108,251, 88,201,214,212,109,219,228,226,240,240, 39, 28,197,241, 60, 15, 67, 76, 12, 22, 13, 26, 84, 33,146,229, 18,151,184, -228,169, 7,180,234, 40,223, 71,150, 25, 64,194,191, 25,188,248,255,121, 29, 61,183, 65,165, 9, 33, 10, 15, 15,143, 67, 44,203, -134, 88, 53, 50,246, 54, 67, 37, 4,148,142, 75, 77, 77,237, 72, 41, 45, 40, 3, 51, 84,165, 82,125,199,113, 92, 83, 71,130, 74, -179, 44,123, 54, 47, 47,111, 92, 89, 65,165,159,197,169, 67, 47, 47,175,187, 15, 30, 60, 8,181,158,162,182,159, 43,139,151, 3, - 0,220,185,115, 7,109,219,182,125,144,156,156, 92,245,159,196,124, 94,165, 20, 63, 90, 79,175,209,122, 6,141, 60, 64, 36, 81, - 14, 22,203,164, 29,120,179, 37, 2, 4, 16, 8,133, 55,141,250,194,195,134,194,252,181,165,109, 23,254,147,210,135,144,150, 18, -177,120,191, 72,173,150,149, 84, 78,230,188,188, 66,131,209,248,138,139,100,185,196, 37, 46,113,137, 75, 94, 32, 2, 28,238,225, -225,177, 79, 40, 20, 74,236,201,100,241,247, 86,177, 88, 44,250,244,244,244, 46,101,237,190, 60, 11,204,255, 76,121, 59, 75,180, -118,237,218, 69, 29,245,222, 74, 8,233,228, 72,204, 42, 59,195,183,114,125,103,252,219,152,207, 48,239,229,122,197,117, 2,179, - 45, 30, 29,143,157, 17, 29, 29, 61,253, 5, 72,103,101,214, 81,165, 98, 90,235,220, 81, 92,103, 48, 29,109, 83, 78,166,211,161, -118,255, 60, 96, 58,210,151, 42,152,206, 50,219,104, 5,235,189,204,190,244, 28,165,179, 50,235,168, 82, 48,139,183, 31, 71,112, -157,197,116,164, 47, 85, 32,157,229,182,251,231, 5,243,105,199,144, 50,210, 89,106, 27,117,180, 45,149, 82,247,229,206, 77,207, -171, 38, 11, 0,172,254,180,138,107,180, 74, 51,136, 23, 56, 75,178,158, 69,226,237, 39, 29, 56,232,167,228,223,192,172, 8,225, -114, 38,173,149, 40, 71, 42, 27,179, 88,121, 86,150, 76, 47, 26,208,143,194, 1,135,163,206,228,189, 50,234,189, 88, 94, 43, 5, -215, 30,179,178,202,178,164, 65,177, 50,211,249, 44, 48, 43,171, 47, 21,199,172,140,118, 95, 82,189, 63,195, 58,170,172,116, 86, - 74, 95,122, 22,109,190,132,246,243,212,184,197, 49, 43,163, 47, 21,199,172,140,118,255, 79, 96, 86, 70, 95, 42, 9,179, 50,218, -125,105,117,255,162,106,166,172,219,133, 69,132,139,148, 64, 62, 31,219, 62,180, 18, 47,166, 34,133,246, 44,228, 89, 4,146,172, -108, 66,244,172,200,230,174, 93,187,104, 17,211,127,238, 49, 43,185,142,166, 23, 97, 86,230,202,166, 93,101,213,209,179,104,239, -246,152,149,133, 95, 28,167, 50,234,169, 36,204,167, 77,111, 41,233,172,244,188, 63,109,187,255,167, 48, 43,185,142, 42,165, 47, - 21,195,108, 87,201,139,129,118,118,159,167, 87, 38,102,101,245,165, 18,210,249,212,245, 84, 18,230,211,166,183,148,116, 86,122, -222, 43, 99, 14,121, 86,184,255,150, 70,235, 70, 20,161,148, 41,185, 77, 20, 57, 44,181, 93, 21,210,104, 61, 75,146,245,172, 38, -181,202,196,126, 22, 90,157,103,165,121,171, 44,173, 78, 9,184, 71, 43, 17,238, 72,101,167,179, 40,125,228,121,118,122,231,234, - 75,174,190,244,255,169, 47,149,212,110,162,163,163,167,239,218,181,235,243,231,169,157, 23,199,172, 44, 66, 84, 66,222,159,170, - 47, 21,255,223,202,232, 75,229, 96,146,103,145,255,202,238, 79,255,164, 70,171, 52,146, 85,218, 61,193,243,146, 1,107, 35,169, -228,149, 9, 42, 89, 3,243,204,242, 93,201,233,108,247, 44, 52,132,207, 64, 42, 61,157, 69, 43,229,207,159, 65,222, 95,148, 50, -117,245, 37, 87, 95,122,238,250, 82,177, 54,217,174, 18, 53, 69,149,170,121, 46,142, 89, 25,207,176,199,168,172, 54,250,172,243, - 94,153,125,233, 89,212,253,139, 38,255, 55, 0,242, 66,135, 78, 90, 48, 10,210, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +137, 80, 78, 71, 13, 10, 26, + 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, + 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83, +233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161, +217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136, +138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, + 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, + 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116, +145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, + 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0, +172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, + 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, + 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, + 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, + 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128, +109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144, +185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, + 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34, +196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, + 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, + 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63, +199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, + 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46, +194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, + 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, + 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70, +162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, + 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99, +207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, + 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16, +123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, + 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64, +113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, + 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175, +232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, + 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42, +124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, + 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89, +253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53, +196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227, +152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151, +150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143, +206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158, +190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12, +206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, + 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41, +166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44, +182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187, +173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, + 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, + 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83, +155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93, +225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, + 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165, +119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, + 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, + 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152, +206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, + 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55, +186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157, +226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, + 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, + 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, + 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, + 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, + 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230, +189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126, +189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, + 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171, +196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, + 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54, +238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102, +213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215, +185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, + 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, + 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233, +130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225, +210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147, +211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214, +213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95, +244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145, +245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23, +254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175, +219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104, +249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0, +255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 32, 0, + 73, 68, 65, 84,120,218,236, 93,119,124, 20,197,226,255,206,222,238,245, 75, 39,141, 36,164, 0,129, 96,232, 69, 18,138,116, 20, + 80,144,166,248, 16,158,232,207,134,189,129,138,136, 8,196,138,192,123, 34, 79,159, 10,136, 34, 88, 64,240,209,148,222,155, 74, + 47,146, 0, 9,164,147,122,253,110,231,247, 7,183,231,229,184, 22,184, 40,194,124, 63,159,253,220,221,222,238,119,103,102,103, +102,191,243,157,217, 25, 66, 41, 5, 3, 3, 3, 3, 3, 3, 3, 3, 67,240,193,177, 36, 96, 96, 96, 96, 96, 96, 96, 96,184, 78, +132,214,234,213,171, 3,182,192, 8, 33,253, 2,229,116,108,183, 93,239,156, 13, 24,119, 26, 68,206,219, 28,156,175,255, 77,194, +121,219,245,202, 41,197, 55, 80,222,250,112, 6,154,167,234, 25, 78, 26,236,112, 54, 20,103,176,202,145,135,112,210, 6,184,239, +175,255, 77,194,121,219,245,198,233,158,127, 2,225,173, 47,103, 32,121,234, 42,194, 73,131, 29,206,134,226,188,214,114,228, 35, +156,244, 90,243,146,151,123,255, 58,110, 34,240, 13, 37,178,234,131,193,131, 7, 19, 23,126,114,189,114,186,166,131,196, 31,204, +176, 6, 17,155,130,205,233,150,158,193,194,235,131, 7, 15, 38,171, 87,175,222, 12,224,182, 96,198, 61, 24,247,221, 45,174, 65, +225,173,175,200,170, 47,103,176,242,125, 67,115, 6,171, 44,185,115, 6, 35,223,123,186,239, 13,120,143,130, 21,206,160,148,165, +134,200,243, 30,242,207, 53,243,186,115, 6,163, 44,185,115, 6, 35,223,255, 25,156,193, 40, 75,158, 56,131,145,239,189,221,123, +230,104,253,185,130,192,189,128,247,186,158, 5, 81, 67,137,205, 64, 29,152,235,129, 51,200,247,232,117, 7,103, 48, 91, 55,189, +130,117,143, 26, 34,191,187,114, 6,139,223,157, 39, 24,247,201, 19,231,181,134,215, 75, 56,131, 30,247,107,205,247,127, 22,103, +144,239, 81, 80,202,146, 27,103,175, 32, 55, 6,122,185,252,126, 61,152,156,193, 42, 75, 30,194,121,205,247,201, 19,231,181,134, +215, 75, 56,131, 30,247, 96, 60, 67, 26,138,247,134,117,180, 26, 82,100, 53,212, 67, 45,152,220, 13,225,234, 52,148,243, 22, 44, + 87,199, 3,239,230, 32,210,109, 10,118, 56, 29,225, 35, 13,229,190, 94,239, 96,101,137,149,165,235,173, 44,121,202, 55,131, 7, + 15,126,125,245,234,213, 83,175,183, 70,180, 43,103,176, 4,145,135,184, 95, 83, 89,114, 63, 55, 24,101,201, 15, 39,105,136,248, + 7,187, 60, 49,161, 85, 15,167, 40,200, 45, 19, 4,217,129,105,176,120, 7, 57,156,189, 26,194, 33,108, 0, 4, 61,156,142,150, +242,212, 6,136,251,223, 37, 77, 89, 89, 98,101,233,186, 43, 75,110,121,178, 87, 16,157,162,160, 58,207,238,156,193,184,134, 43, + 71,176,242,104, 67,199, 61,152,101,169, 33,238,253,223, 14,148,210, 6,219, 0,244, 99,156,140,147,113, 50, 78,198,201, 56, 25, + 39,227,188, 89, 55, 54,189, 3, 3, 3, 3, 3, 3, 3, 3, 67, 3,129,176, 9, 75, 25, 24, 24, 24, 24, 24, 24, 24, 26, 6, 94, +199,104, 37, 36, 36,172,210,104, 52,205,188,253, 95, 91, 91,123,241,194,133, 11,189, 89, 18, 50, 48, 48,248,109,209, 17,194,225, +143,183,156, 69, 0,148,178, 86, 30, 3, 3,195,205, 44,180,148, 74,101,218,177, 99,199,210, 69, 81,132,221,110,135,205,102,115, +126,154,205,102,244,236,217,179,222, 3,233,227,226,226,182,200,100,178,148,250,156, 99,183,219,207, 21, 22, 22,118,247, 81,129, +239, 0,144, 70, 8,113,221,231,243, 19,192, 5,139,197,210,193, 23, 39, 33, 36,205,157,207, 11,151,244,221, 39,103,120,120,248, + 62,158,231, 19, 61,113,121,251, 46,138,226,153,226,226,226,108,150, 77,255, 28,196,197,197,109,225,121,190,222,249,243,226,197, +139, 94,243,103,227,198,141, 15,114, 28,215,184, 30,148, 50, 81, 20, 79, 92,188,120,177,187, 55, 33, 34,229,121, 63,194,166,206, +119, 66, 72,190,205,102,235,228,175, 28,249,226,242,144, 71,125,114,186,138, 44,158,231,115, 98, 98, 98, 30,213,235,245, 70, 0, + 84, 38,147,209,168,168, 40, 41,108, 0, 0,155,205, 86,114,233,210,165,214, 44, 39, 50, 48, 48,220, 20, 66, 75, 20, 69,206,100, + 50,225,228,201,147,240, 82,223,219,175,226,122,233,251,127, 90, 31, 19, 18, 19, 11,155,197, 2,109,163,104, 39,119,209,209,195, +176, 89, 45,176,153,205,104,210,185,171,244, 16,195, 45,183,220, 34,243,195,153,248,214, 91,111,197,132,132,132,192,104, 52,194, +104, 52,194,100, 50,193,104, 52,194,108, 54,195,108, 54,195, 98,177,192, 98,177,192,102,179,193,100, 50, 97,195,134, 13,254,194, +158, 56, 99,198,140,152,208,208, 80, 39,159,180, 73,156, 18,175,213,106,133,209,104,196,207, 63,255,236,147,147,231,249,196, 11, + 23, 46,196,200,229,114, 80, 74, 33,138,162,167,193,133,117,208,180,105, 83, 11,203,162,127, 42,210,103,124,185, 58, 38, 76,173, +132, 77, 20, 49,164,109, 83,231, 31,103, 62, 89, 6,106,179, 67,180,217,208,124,226, 88,224,178, 37,131, 86,173, 90,249,204,159, +148,210,228, 25, 95,174, 14, 15,148,179,180,180,212,144,145,145,113, 1,151, 95,125,246,230,248, 36, 26, 12,134, 24, 41, 12,238, +130,136,227,184, 58,219,218,181,107, 49,100,200, 16,127,113, 79,124,230,153,103, 98,172, 86, 43,204,102, 51, 76, 38, 19,172, 86, + 43,108, 54,155,115,179,219,237,206,205,108, 54, 99,247,238,221,129, 58, 89,111,245,239,223,255,129,213,171, 87,107,191,255,254, +123,109, 74, 74, 10,228,114, 57,100, 50, 25,100, 50, 25, 56,142, 3,207,243,184,245,214, 91, 9,203,130, 12, 12, 12, 55,141,208, + 50,153, 76,185,237,219,183,167,142,239, 9, 74,165, 82,238, 86,129, 54, 78, 79, 79, 63,225,126,158,191, 46,197,144,152, 88, 76, + 78,138, 4, 0,188,118,182,204,249,128,120, 59,187,157,243,152, 55, 10, 42, 1, 0,106,181, 26,196,181, 25,237, 5, 90,173, 22, +253,251,247,135, 66,161, 64,167, 78,157, 32, 8,130,199, 77, 46,151, 67, 16,132, 64, 30, 14,208,233,116,152, 54,109,154, 36,146, +160, 85, 41,241, 68,118, 39,168, 64,241,159,195,167, 96, 22, 41,120,158,119,110,129,112,202,229,114, 28, 58,116, 8, 60,207, 67, + 38,147, 57, 63,165,239, 43, 87,174,196,200,145, 35,193,243, 60,212,106, 53,112, 19,205, 51,114,189, 32, 76,173,196,184,249,223, + 1, 0,206,207,158,232,188,119,187, 31,123,205,121, 76,242,255,141, 6, 33, 4,130, 32,128,227,184,160,113,150,151,151, 27,238, +189,247,222,109, 33, 33, 33,107,171,170,170,224, 71,192,225,252,249,243,224,121,222,107,126,231, 56, 14,239,191,255, 62, 78,159, + 62, 29, 80,220,141, 70, 35, 62,254,248, 99,216,237,246, 58,188,210,119,247,125, 1,138,172, 55, 7, 12, 24, 48,118,245,234,213, + 17,132, 16,252,235, 95,255,130, 92, 46,199,160, 65,131, 16, 21, 21,133,117,235,214, 65, 46,151,227,197, 23, 95,100,153,143,129, +129,193, 23, 4, 0,237, 0, 68, 59,140,158,106, 0,225, 46,255,151, 56, 62,163, 93,126,239,245,192,211,217,113,140,244,191,244, +219, 12, 64,225, 97,127, 25, 0,181, 99, 51, 1,216, 1, 32,211,229, 58,210,121,240,118, 93, 30,184,188,254, 16,128, 77, 0,122, + 73,147,232, 93,188,120,241, 14, 23,103,229,216,137, 19, 39, 90, 74,154,199,209,133, 40,183,217,108,233, 82,119,162,228, 22,245, +235,215,207,103, 11,223,102,177, 92, 33, 64, 60,105, 41, 79,221, 21,222, 4,140,197, 98,193,232,209,163, 47,223, 9, 47, 15, 29, +215, 45, 0,237, 6,179,217, 12,158,231,209, 34, 41, 26, 83, 6,182, 71, 23,106, 69,109, 13,129,173,178, 22, 67,117, 86, 28,107, +213, 1, 11,206,149,224,108, 85, 13,120,158, 15,136, 83, 20, 69,175, 34, 75, 38,147, 97,254,252,249,184,247,222,123, 33,147,201, + 2,226, 99, 8, 62,108,162,232, 49, 31,122,203,179,129,220,167, 64, 56,203,203,203, 13, 67,134, 12,217,165, 84, 42, 23,198,198, +198, 94,200,207,207,247, 43,180,220,197,143,123,163,226,189,247,222,195,220,185,115,209,187,119,239,128,194,105, 50,153, 64, 8, +193,130, 5, 11,174,248,111,250,244,233, 87, 92,207, 23,167,163,129,196, 53,110,220,248,177, 53,107,214,132, 74,199, 54,106,212, + 8,130, 32,160,117,235,214, 8, 9, 9,193,182,109,219, 96,183,219, 3, 46,151, 12, 12, 12, 55, 46, 60,105, 17, 23,244,156, 60, +121,114,167,156,156,156,153, 89, 89, 89, 95,237,216,177,227, 75, 66,200, 42,151, 58,113,136,163,238, 89,229,242,187,179,155,232, + 17, 0, 68, 19, 66, 86, 73,199,187,254,118,217,223, 15,128, 66,250, 61,121,242,228,204,156,156,156,153,147, 38, 77,122,121,214, +172, 89,242,201,147, 39,183,201,201,201,153, 41, 93,199, 83, 56, 60, 57, 90, 62,103, 21,150,186, 17,143, 31, 63, 14,127,227, 87, + 41,165, 62,107, 75,109,163,104,167,147,245, 70,114,148,115,255,180,252, 10,231, 3,108, 94,199,102,208,106,181, 24,248,198, 59, + 1, 57, 69,102,179, 25,197,197,197, 78,151,193,223, 22, 40,167, 70,173,194,134,103, 90,227,124,153, 2,175,239, 44,199,234, 95, + 78, 67, 16, 4,220,222,170, 53,238,144,135,224,213,100, 5,158, 57,149, 7,107,128, 99,122, 41,165, 30, 5,150,244, 93,234, 66, + 97, 66,235,175,195,144,182, 77,157,174,211,238,144,190,206,253, 35,107, 15, 57,239,201,115,243,223, 6, 0,244,238,112, 43, 2, + 25,207,237,143,179,172,172,204,208,189,111,175,205,118,131,249,243,177, 99,199,230,110,220,184, 81, 29, 80,243,206,131,208,146, + 92, 91, 73,100,241, 60, 15,179,217, 28, 80,220,205,102,179,215,242, 33,151,203,235,237,104, 1, 64,109,109,173,121,197,138, 21, +152, 55,111, 30,162,162,162, 48, 96,192, 0,196,199,199, 99,217,178,101,160,148, 98,226,196,137, 80,171,213,146,123,205, 50, 32, + 3,195,205, 13, 95, 90, 68,153,147,147, 51,211, 93,200,184,254,118, 21, 80,110, 98,202, 85,172,101,250,121,254,175,114, 23, 79, +210,117, 9, 33,171,102,205,154, 53,196, 79, 56, 74,188, 9, 45,159,211,247,155, 76,166,220,182,109,219, 6,164, 38,244,122,125, +161, 63,177,225,169, 85,239,234, 18,232,116, 58,104, 67,117,224, 2,172,119,173, 86,171, 83,168,172, 95,191, 30,106,181, 26,131, + 6, 13,186, 38, 71,203, 98,177, 64, 33, 23,192, 53,138,197,184,217, 27, 81, 86,109,112, 62, 96, 54,157,201,197,129,162, 98, 60, +147,213, 23, 90,117, 49,106,204,230,128,156, 55, 81, 20,175, 16, 89, 60,207, 99,244,232,209, 78, 55,193,117,220, 10, 88,215,225, + 95, 6, 79,249,211,125,191,232,230, 84, 93, 13,103, 89, 89,153, 97,200,144, 33,187,236, 6,243,231, 5, 5, 5,187, 0,168,186, +116,233, 82,111,161, 37, 9, 44, 65, 16,240,254,251,239, 99,238,220,185,206,255, 3, 21, 90, 54,155,173,142,128, 58,117,234, 84, +157,107,185, 11, 59, 95,221,166,148, 82, 74, 8, 17, 1,136,105,105,105,206,115,226,226,226, 16, 30, 30, 14, 81, 20, 33,138, 34, + 84, 42, 21,212,106, 53,228,114, 57,203,116, 12, 12, 12,190,180,136, 97,210,164, 73, 47, 19, 66, 86, 57,156,165,195, 62, 4,149, + 39,116,118, 19,107, 37, 94,234,174, 33,158,196,150,235,119, 9,147, 39, 79,206,244, 16,142,189, 94,133,150,219,180,251,117,224, +218,141, 24,172,135,152,175, 7,153, 46, 60, 20,106,173, 22, 50, 25, 7, 66, 8,245,199,101,177, 88,156, 21,255,163,143, 62,234, +115,220, 74,160,227,169, 44, 22, 11, 56, 94,134,139,113,169,176,115, 91,157,231, 74, 27,199, 11, 56, 27,215, 18,178,227, 7, 33, + 4,248,192,117,119,180, 38, 78,156,136,143, 63,254, 24, 28,199, 57,211,132,231,121, 52,111,222, 28,185,185,185,172,196, 93, 39, + 34,203,219,126,187, 93, 12,216,133,241,116, 92, 89, 89,153, 97,212,168, 81,155, 43, 43, 43, 63,191,229,150, 91, 78,225,242,244, + 7, 92,160,124, 60,207,215, 17, 88,146,200,154, 51,103, 78, 29, 81,100,181, 90, 3,106, 8, 88,173,214, 43, 4,207,187,239,190, + 91,231, 19, 0,178,179,179, 3,114,134, 1, 80,142,227,168, 92, 46, 71,255,254,253,209,166, 77, 27,124,255,253,247, 16, 69, 17, +143, 63,254, 56,212,106, 53, 62,248,224, 3,216,108, 54,188,245,214, 91,204,209, 98, 96, 96,240,165, 69, 76,179,102,205, 58, 60, +107,214, 44,167,179,228,238,104,121,163,116,136,170,104, 73,164,225,242, 88,171,189, 62,158,213, 67,188, 9, 48,215,125, 57, 57, + 57, 51, 61,132,195,189,187,242,207, 95,235,176,240,200, 33,188,211,173, 61,128,186,221,133,243,111,109, 9,173, 78, 11,109,136, + 14,163, 86,110, 5, 0, 71,165, 63, 41, 32, 71, 75, 18, 90,101,101,101, 62, 69, 86,125, 28, 45, 78,193, 99,121,226, 37, 80,133, + 0,222,108,173, 35,180,100,188,128,243, 81,169,224, 4, 57,120,187, 45, 32, 78, 74,233, 21, 93,133,227,199,143, 7, 33,196,249, +134, 88,219,182,109, 93,185,216,147,231,207,206,159,251, 62,193,177,111, 30, 3, 0,116,175,173,117,222,139, 25,109,255,120,191, + 99,246,161,205, 78,247,241, 13, 60,127, 85,156,101,101,101,134, 46, 25,153,187,228,145, 97,159,159, 59,119,110, 23, 0,238,158, +123,238, 9,111,219,182,109, 64,101, 82,122,185,194, 93,100,185, 58, 89,210,167,213,106, 13, 40,238,210, 88, 41,127,144,186, 17, +253,229,121, 74, 41,141,140,140, 4,199,113, 8, 13, 13,133, 78,167,115,190,113,171, 82,169,160,209,104,156,227, 59, 3, 20,110, + 12, 12, 12, 55, 47, 34, 36,161,227, 16, 75,117,156, 38, 74,233, 16, 87, 49,228,173, 11,209,225, 64,109,241,103,172, 57, 4,154, + 71, 72,206,154, 91,157,188,202,155, 72,227, 37, 5,233,250, 25, 31, 31,255, 63,157, 78,151, 26,104,236,235, 51,121,169,221,106, +185,194,217, 34,132, 64, 23,162,131, 90,167,133, 58, 68,231,213,245,242, 37,180, 36,167, 72,122,232, 44, 92,184, 16, 58,157, 14, +255,252,231, 63,235, 61, 70,203, 41,180,228, 28,214, 41,127,134, 76,193,215, 17, 89, 60,207, 67, 38, 8, 40,212,197,131, 19, 4, +240,182,192, 92,178,202,202, 74,240, 60,143, 41, 83,166, 56, 91,240,174, 34,171, 62,113,102,104, 24, 80,187,245, 10, 23,202,155, +251,122,181,156,146,147, 37,143, 12,251,188,101,203,150, 78, 39, 75,163,209, 72,111,155,250, 5,199,113, 30, 69,150,251, 27,130, + 60,207, 95,206,203,126,222,142,116,117,180,102,205,154,229,228,117,117,178, 36,212,167, 28, 73, 97,221,188,121, 51, 14, 28, 56, +128, 71, 31,125, 20,106,181, 26,115,231,206,133,205,102,195,244,233,211,161, 86,171,161, 80, 40, 88,230, 99, 96, 96,110, 86, 29, + 45,226,134, 18,183,113, 80,196, 77,212,148,120, 18, 88,174,221,132, 46,223,173, 30,120,205,110, 93,138,238,251,165,207,178, 89, +179,102,109,148,156, 44,151,253,117,194,225,215,209, 82, 42,149,169, 39, 79,158,116, 78, 86,234,235,211,108, 54,163,119,239,222, + 1, 59, 99,210, 91,135, 60, 47,171, 35, 44, 52, 33, 58,104, 66, 67,160,214,233,220, 5, 7,241, 87,137, 75, 45, 98, 87,161, 53, +117,234, 84,240, 60,143,143, 63,254, 24, 0,240,252,243,207, 7, 60, 70, 75,226,132,157, 32,159,254,142,246,179, 71,194,252,133, + 21, 69,219,127, 5,207,243,136,233,122, 7,196, 46, 35,161, 87,235,192,219,109, 1,191,117, 88, 94, 94,142,220,220, 92,200,100, + 50, 60,251,236,179,117,230, 58,114,127,147,109,253,250,245,204,209,250, 43,132,150,104, 11, 72, 84,213,199,117,116,229,148,198, +100, 85, 86, 86,126,126,238,220,185,221, 0,184,177, 99,199,134,107, 52, 26,252,247,191,255,213, 3, 80, 44, 91,182, 76,237, 79, + 20, 73,249,198,159,200, 18, 4,225,114, 94, 14, 36,238,180,238,148, 37,254, 6,198, 7,146,231,165,176, 18, 66, 96,183,219,161, + 86,171,235, 56, 89, 42,149, 10, 74,165,146,101, 60, 6, 6, 6,127,216, 91,143, 99, 59,187,136,166,189, 87,201,187, 55, 88, 1, +231,189, 9, 13,147,201,132,163, 71,143, 6,202, 19,240,228,165, 73,157,110,197, 27, 5,149, 32,132,224, 63,217,183, 64, 27,170, +131, 70,171,197,136,239, 55, 59, 43,238, 67, 51,159,135, 82,171, 67,227, 30, 3, 2,170,200,165,174, 67, 87,161, 85, 81, 81, 1, + 65, 16,240,230,155,111,130,227, 56,188,245,214, 91, 72, 72, 72,192,197,139, 23,177,108,217,178,128, 28, 45,153, 93,134,248,251, + 51,160, 25, 31,134,208,251,123, 34,162,255, 84, 20,152,121,236, 48,106,208,211,120, 4,138,117,115, 96, 22,237, 1,191,129,101, +179,217,176,121,243,102,247, 1,239,160,148, 58,103,221,183, 90,173,176, 88, 44,120,235,173,183,192, 86, 40,249,243, 17,223,117, + 34,162, 59, 61, 2, 0, 88, 57,107,130,115,255,148, 67,127,228,207,247,191,184,188, 0, 64,203,148, 1,245,226, 44, 43, 43, 51, +220,222, 59,123,139, 81, 20, 62,107,221,186,117, 29, 39, 75,165, 82, 17,199,239,128,196, 53,199,113,144,201,100, 87,116, 23,122, + 19, 91,129,140,209,178,217,108,206,137, 68,125,141,103,188, 26, 71,107,194,132, 9,136,143,143,119, 58, 89,111,188,241, 6,212, +106, 53, 38, 79,158, 12,171,213,138, 57,115,230,176,204,199,192,192,240, 87,136,178, 6,135,199,154,212,104, 52,230,181,105,211, + 6, 94,254, 75, 80,169, 84,130, 91, 37,221, 56, 61, 61,253,132,123, 23, 34, 33,164, 31,165,116,131,167, 74,157, 16,130,144,208, + 16,168,116, 90,104,220, 92, 44, 85, 72, 40,148, 58, 29, 56,185,224,233,129,112, 5,167, 52,182,196, 85,104, 73, 91,101,101, 37, + 4, 65,192,188,121,243, 16, 26, 26, 10,147,201,228,151, 83,122,232,200,100, 50,232,207, 87,227,216,204, 13, 80,168,118,160,217, +128,123, 17, 47,168, 33,223,246, 45, 12,118,171,207, 9, 75, 61,113,166,167,167,227,181,215, 94,187, 98, 90, 7,111, 72, 72, 72, +240, 27,247,107, 5,227,244,204,233,235,173, 88, 9, 34,181,123, 58,206, 35,167,228,100, 25, 69,225,179,220,220, 92,201,201, 10, +211,104, 52,248,232,163,143,244, 0,184,233,211,167,107,146,147,147,101,129,228, 37,153, 76,134,217,179,103,123, 28,147,229, 73, +116,213,167, 28,185,158,123,219,109,183,121,156,176,212,147,120,243,196, 41,133, 53, 42, 42,202,233,100,217,237,118,231,219,134, +210,236,243,222, 26, 21, 44,127, 50, 78,198,121,243,112,222,168,240,248,148,191,112,225,194,237,222, 78,104,214,172,217,201,147, + 39, 79, 54,151,150,226,112, 84,156,114,163,209,152,158,157,157,237,215,218, 17, 69, 17, 74,165, 18,148, 82,244,121, 45, 7,132, + 3, 56,212,125,136,197,116,235, 11,153,140,135,120,121,169, 15,191,111, 29, 26, 12,134, 58, 15, 7, 79, 91, 77, 77, 13, 76, 38, + 83,192,179,121, 27,141,198, 58, 83, 48, 16, 42,226,236, 79, 95, 95,241,246,161,180, 5, 58,110, 71,165, 82,213,233,250,241, 5, +127,115,146, 49, 4, 31,210, 11, 11, 0,208, 34,123, 16, 68,209, 14,106,183,215, 89, 38, 41, 35,245,118,136,212, 14,139, 85, 15, +147,201,228,207,118, 36,165,165,165,134, 81,163, 70,109, 6,240,233,208,161, 67, 79,224,242, 27, 47, 84,167,211, 41, 5, 65, 16, + 1,148, 3,160,151, 46, 93, 10, 43, 40, 40, 16,141, 70, 99, 19,127,225, 92,189,122, 53,142, 30, 61,138, 30, 61,122,212, 89, 14, + 74,114, 69, 93,103,119, 15, 36,127, 74,221,229,158,102,132,247, 38,228, 2,133, 76, 38, 67, 88, 88, 24,228,114, 57,222,124,243, + 77,200,229,114,104, 52, 26, 0,192,156, 57,115,156,147,175, 50, 48, 48, 48,220, 52, 66,203, 95,189,233,163, 91,209,103, 23,162, +205,102,203, 79, 78, 78,174,215,197,236,118,123,145, 31,225,150,191,108,217, 50,185,171, 11,225,239,147, 82, 90,228,231, 97,155, +191,114,229, 74,185, 39,119,195,219, 2,211,254, 56,237,118,123,126, 74, 74,138, 87,199,196, 19,172, 86,107, 1,203,162,127, 30, +236,118,187,143,252,249,202,213,230,207, 83, 45, 90,180, 40, 8, 15, 15,255, 49, 54, 54,182,108,251,246,237, 81,157, 59,119,142, +114, 61,166,115,231,206,241,110,167,153,225,125,157, 67, 16, 66,242,135, 14, 29,234, 49,207, 75,162,201, 67,254,204,247,151,231, +247,236,217, 35,119, 61,223, 27,191, 75, 57,202, 15, 64,184,158,109,223,190, 61,231,202,227, 45,239, 91,173,214, 18,150, 11, 25, + 24, 24,110,122,161,101, 48, 24,206,183,105,211,198,230,229,191,115,190,206, 45, 45, 45,237, 20,236, 8, 88, 44,150,236,191, 3, +103, 73, 73, 73, 39,150,221,174,111, 52,196, 61, 42, 42, 42,234, 18,108, 78,155,205, 22,244,252,105,181, 90,179, 27, 34, 77,203, +202,202,178, 88,206, 98, 96, 96, 96, 66,171, 30, 8,116, 26, 7, 6, 6, 6, 6, 6, 6, 6,134,155, 29, 28, 75, 2, 6, 6, 6, + 6, 6, 6, 6,134,134, 1,193,229, 85,170,175, 64,125,222, 38, 32,132,244,171,239,133,253,241, 51, 78,198,201, 56, 25, 39,227, +100,156,140,243,198,227,244,199,125,195,189,205, 40,189, 77,213, 16, 27,128,126,140,147,113, 50, 78,198,201, 56, 25, 39,227,100, +156, 55,235,198,186, 14, 25, 24, 24, 24, 24, 24, 24, 24, 26, 8, 60, 75,130,191, 6,132, 16, 25,165,212, 30, 68,202, 8, 0,222, + 22,140, 51, 3,184,116, 53,193, 4, 32,119,108,210, 68, 71, 86, 0, 22,199, 22,192,212,245,211,184, 11, 23, 34, 50,169, 93,232, + 76, 9, 17, 68, 17,191, 52,105,146,116, 16,184,221, 12, 0,186,184, 86,173,116, 90,117, 63,147,197,156,170, 20, 20, 71, 43,106, +107,214, 27,139, 78,228,177, 28,194,192,240,151,212, 75,119, 2,152,230, 40,251,179, 40,165, 95,179, 84, 97, 96,104, 32,161, 21, + 18, 18,178,143,227,184, 68,127,243,243,184, 20, 80,216,237,246,252,242,242,242, 78, 1, 22,104, 30,192, 40,157, 78,215, 91, 16, +132,110, 0, 96,181, 90,183,215,212,212,108, 4,176,140, 82,106,187,202,138, 34, 20,192,104, 0,247, 57,118, 45, 1,240, 53,165, +180,234, 42,249,218,132,133,133,125, 35, 8, 2, 45, 45, 45,237, 10, 0, 81, 81, 81,187,172, 86, 43,169,170,170, 26, 65, 41,253, +173,158,124,156, 32, 8,239,247,232,209,163, 39, 33,228, 83, 74,233,188, 32,221, 75, 37,199,113, 30, 5,138, 40,138, 41, 87,193, + 39, 7, 16, 54,111,222,188,168,197,139, 23,183,207,207,207,111, 13, 0,137,137,137,135,198,142, 29,123,240,137, 39,158, 40, 3, + 80,233, 16, 92, 94,113,225, 66, 68,102,113,225,153, 71,139,138,143,142, 6,128,184,248,214, 95,203,100,156, 60, 33,225,192, 78, + 77,163,251, 26,181,104,217,244,145,175,254, 59, 79,158,146,154,132,159,119, 28,104,247,196, 83, 47,103,170, 98, 91,188,199,196, +214,159,135,208,208,208,125, 28,199, 37,250, 42,227,158,202,188,221,110,207, 47, 43, 43,235,228,141,147,231,249, 68, 95,245,133, +167,125,162, 40,158, 41, 41, 41,241, 56,213, 68, 88, 88,216, 78,158,231, 83, 3,229,146, 62,109, 54, 91,190,183,169,101,194,194, +194,246,201,100,178, 68, 95,241,244,244,159, 40,138,103,138,139,139,189,133,243,138,184, 7, 35,156, 87,195,233, 43,156, 82,125, + 4, 96, 78, 84, 84,212,173,101,101,101,255, 0,240,114, 85, 85, 85, 91,153, 76,134,200,200,200,151, 9, 33,167,195,194,194, 62, +169,172,172,220, 1,224, 41, 74,169,200, 74, 12, 3, 67,144,132, 22,199,113,137, 5, 5, 5, 49, 90,173, 22,192, 31,235,241, 73, +139, 73,139,162, 8, 74,169,243,211,102,179, 33, 35, 35, 35, 80,177,209, 58, 52, 52,116,249,228,201,147,155,140, 26, 53, 74, 33, + 45, 53,115,225,194,133,244,111,190,249,230, 31,111,190,249,230, 84, 66,200, 72, 74,233,161, 64,197, 11,128,190, 0,198,183,111, +223,126,248, 27,111,188, 33,239,211,167, 15,236,118, 59,126,252,241,199, 30,211,167, 79,159, 71, 8,249, 22,192,231, 0,126, 10, +180,178, 32,132,116,143,139,139,251,114,219,182,109,241,185,185,185,246, 81,163, 70, 45, 5,128,125,251,246,165,217,237,118,210, +181,107,215,213,132,144, 49,148,210,109,245, 72,243,225, 79, 62,249,228, 61, 19, 39, 78,140,249,231, 63,255,249, 0,128,121,142, +107, 17, 71, 58,215,119,129, 67,167,147, 69, 41,149,251, 56, 46,174, 30,206,150, 54, 55, 55, 55, 34, 59, 59,251,177,226,226,226, +103, 92,121,139,138,138,176,127,255,126,203,204,153, 51,103,239,216,177,227,195,212,212,212, 75, 0,106,189, 17, 81,187,208,185, +168,248,232,232,158, 89,243,194, 0, 96,217,202,199,238,221,115,176, 36,100,213,154, 5,255, 80,168,228,166,197,255,153, 45,111, +222, 44, 5,155,246,157,194,238,163,229,164,117,247, 33,124,229,170, 69,253, 1, 44, 96,197,243,207,129, 76, 38, 75,200,207,207, +143,209,104, 52, 30, 23,142,119, 27,151, 33, 77,128,138,244,244,116,239, 21, 11,207, 39, 22, 20, 20,196,168, 84, 42,103,221,225, + 94,103, 72,245,138, 51,175, 80,138, 22, 45, 90, 88,124,212, 73,201,231,206,157,139,209,104, 52, 78, 30, 79,225,115, 23, 28, 45, + 90,180,240, 21,247, 58,225, 12,132,147, 82,138,230,205,155,219,253,197, 93, 90, 1,195, 95,188, 37,206,212,212, 84, 90, 31,206, + 64,194,217,180,105, 83,139,159,219, 63,231,196,137, 19, 19,147,146,146,208,188,121,243, 29,183,222,122,107,168, 86,171,197,154, + 53,107,208,170, 85,171,204,208,208,208,221,203,150, 45, 19, 94,124,241,197,118,159,125,246, 25, 0, 60,193, 74, 12, 3, 67,144, +132, 22, 33, 4, 90,173, 22, 75,151, 46,245,186, 28,135,235,247, 38, 77,154, 4,116, 65, 66, 72,167,212,212,212,205,219,182,109, + 83,199,199,255, 49, 33,182,217,108, 70, 68, 68, 4, 30,127,252,113,197,157,119,222,217,124,192,128, 1,187, 8, 33,183, 81, 74, +247,249,225, 27, 30, 29, 29,253,175, 41, 83,166,196,222,115,207, 61,136,138,170, 51,233, 54, 70,141, 26,133, 17, 35, 70,200, 79, +156, 56,113,239,194,133, 11,239,157, 63,127,126, 33, 33,228, 9, 74,233,183,190,120, 53, 26,205,208,102,205,154,125,180,109,219, +182,152,152,152, 24,164,165,165,113, 47,190,248, 98,243,244,244,116,117, 98, 98, 34,119,241,226, 69,124,255,253,247, 9, 99,198, +140, 89,174, 80, 40, 30, 49,155,205, 43, 2,136,187, 34, 42, 42,234,229, 71, 30,121,164, 81, 85, 85,149,109,255,254,253, 39,165, +253, 10,133, 98,122, 86, 86, 86,103, 66,200, 23,148,210, 79,174,198,201,114,184,118,238,107,153, 88,165,255, 3,116,182, 20,191, +252,242, 75,100, 86, 86,214,183, 38,147,169,195,163,143, 62,122,110,230,204,153,234,208,208,208, 80, 0,164,170,170,234,210,180, +105,211,204, 31,124,240,193, 75,173, 90,181,234,187,115,231,206,225,237,218,181,179, 58, 68,220,149, 66,139, 16,103,120,206, 23, +148, 96,243, 14, 81,241,218,228,231, 19,223,158,145,122,118,239,145,243, 34,175, 14,197, 15, 91, 14,163,168,172, 6,255,219,121, + 4,113, 81, 33, 68,174, 20, 50,195, 19, 51,111,171, 44, 56,178,133,178,149,181, 27, 28,132, 16,104, 52, 26,252,240,195, 15, 87, + 44, 93,229,105, 89, 43,158,231, 17, 30, 30,238,119,117, 3,149, 74,133,245,235,215,123, 92,123,209,211,146, 62, 97, 97, 97,128, +143, 69,181, 9, 33, 80,169, 84,216,190,125, 59, 56,142,243,184, 52,144,251, 62,173, 86, 11,206,199, 90, 87, 18,231,150, 45, 91, +252,114, 73,159, 58,157, 14, 0,100, 62, 11,165, 82,137,109,219,182,121,141,179,251,119,157, 99,189, 87,127,156,219,183,111,175, +179,244,151,251,146, 96,174,191,181, 90,173,179, 1,231,181,149, 22, 17,209, 53, 49, 49, 17,123,246,236,193,178,101,203, 34, 51, + 51, 51,113,234,212, 41, 16, 66, 48,115,230, 76,114,203, 45,183, 8,133,133,133,232,209,163, 7,190,251,238,187,108, 86, 90, 24, +254, 66, 8, 0,218, 1,136,198,229, 85,104,170, 1,132, 59,158, 61, 10, 0,101, 0,212,142,205, 4,160, 6, 64, 35,199,185,165, +142,186,197, 85, 32,148,160,238,226,211,157, 29,220,210, 10, 21,209, 46,255, 73,215,112,255,237,254,233,145,155, 7,128,213,171, + 87, 75, 15,179, 94,131, 7, 15,222, 92, 39,102, 1,136, 44,105,157, 50,247, 50,237, 97,129, 89,165, 86,171,253,102,215,174, 93, +234,232,232, 63,226, 96, 50,153, 80, 93, 93,141,154,154, 26, 84, 87, 87, 35, 36, 36, 4,203,150, 45, 83,247,237,219,247, 27, 66, + 72, 58,165,212,228,141, 19,192,236,139, 23, 47,198,218,108, 54, 40, 20, 10,111, 45, 97,100,100,100,224,229,151, 95,198,192,129, + 3,227,122,247,238, 61, 27,192,183, 62, 56,161,209,104, 62,218,191,127,127,140, 70,163,193,201,147, 39,145,159,159,143,231,158, +123, 46, 73, 20, 69,156, 63,127, 30,167, 78,157, 66, 65, 65, 1, 22, 46, 92, 24, 51,108,216,176,143, 0,172,240, 21,119, 7, 30, +125,230,153,103, 90, 70, 68, 68,112,239,188,243, 78, 69,109,109,237,191, 29,251, 95,155, 59,119,238,253, 61,123,246,140,121,240, +193, 7, 41, 33,100, 49,165,244, 10,225,226,198,233,201,201,178, 3, 56,230,118, 90,134,155,211, 21,231,200,132, 21, 30, 56, 9, +128,176, 1, 3, 6, 60,107, 50,153, 58,108,219,182,237,116,183,110,221,146, 1, 92,148, 50, 95, 88, 88,152,118,246,236,217,177, + 67,134, 12, 57,209,167, 79,159, 14, 3, 6, 12,120,182,164,164,100,166,227,127,234,206, 41,138,248, 37, 46,190,245,215, 91,118, + 62, 49,122,211,118,179,252,249,167,166,158,107,146,148, 82,249,203,201,114,251,145, 51, 37,168, 54,216,112,119,159,203, 11,152, +119,109,221, 4,255, 90,186, 13,143, 63,253,138,240,237,215,139, 70,156,166,208, 2, 88,237, 35, 61,175, 9,140,243, 15,177, 33, +138, 34, 4, 65,192, 29,119,220, 1, 66,200, 21,107,121, 10,130,128,157, 59,119,162, 79,159, 62, 16, 4, 1, 19, 38, 76, 8,136, +147,231,121, 12, 24, 48,192,185,142,162, 43,159,187,104,240,164, 9,220,227, 78, 41, 5,207,243,224, 56,206,235, 66,218,238,156, +254,234, 37, 41,156,190,184, 92,255,243, 23, 78,201, 77, 10, 84,100, 5,202, 41,133,147,231,121,100,103,103,227,224,193,131, 62, + 69,151, 39,125,233, 30,247, 75,151, 46,141, 75, 79, 79,223, 50,111,222,188, 72, 0, 40, 43, 43,115, 46,120, 47,147,201,112,252, +248,113,152,205,102,188,254,250,235,150,170,170,170, 7, 89, 57, 98,156, 13,201,233, 75,139, 0,232, 57,121,242,228, 78, 57, 57, + 57, 51,179,178,178,190,218,177, 99,199,151,132,144, 85,148,210, 33,210,231,228,201,147, 51,115,114,114,102, 78,154, 52,233,229, + 89,179,102, 29, 38,132,172, 2, 0,247,223,142,240, 15,113, 19,113,209, 18,143,163,204,213, 57,214,211,111,247, 79, 47,220,127, + 56, 90,131, 7, 15, 38,142, 72, 18,215, 74, 45, 80,161, 21,200,218,125, 60,207, 79,156, 57,115,102,172, 47,145, 85, 83, 83,131, + 11, 23, 46, 32, 57, 57, 25, 19, 38, 76,136,157, 55,111,222, 68, 0,239,250,160,149,203,100, 50,236,217,179, 7,197,197,197,104, +211,166, 13, 82, 83, 83,235, 28,240,251,239,191,227,199, 31,127, 68, 69, 69, 5, 58,118,236, 8, 92, 30,127,228, 17,237,218,181, +123, 61, 35, 35, 99,192,128, 1, 3,108,106,181, 26,191,252,242, 11, 58,116,232,128,165, 75,151,162, 73,147, 38,208,104, 52, 56, +113,226, 4,218,180,105,131,205,155, 55, 35, 58, 58, 26,237,219,183,183,117,236,216,113,107,121,121,249,198,188,188,188,215,189, +180,156,229, 9, 9, 9, 83, 31,126,248, 97,197,133, 11, 23,196,207, 63,255,124, 27,165,116, 27, 33,100,226, 43,175,188,242,192, +192,129, 3, 99, 14, 28, 56, 80,185,119,239,222,221,158, 68, 86,128, 78,150,205,253,161,100,183,219, 77, 6,131,193,108, 50,153, +172, 28,199,229, 17, 66,204,118,187,221, 91,159,143,106,252,248,241, 77, 75, 75, 75, 31,127,250,233,167,115, 29, 34,235, 56, 46, + 15,128, 7, 0,216,108, 54, 83, 77, 77, 77, 85, 86, 86, 86,242,152, 49, 99, 78,127,249,229,151,143,143, 31, 63,126,217,231,159, +127, 94, 3,192,224, 78,216,164, 73,210, 65,153,140,147,215, 86, 71,158, 89,190,236,147,103,126, 92, 57, 49,233,252,249,130,230, + 81,141,162,107,229,186,232, 11,203,150,124,182, 15,128,249, 66, 73, 21,126,251,189, 16,130, 32,195,209,243,149,232,121,251, 40, +225,244,201, 25,221, 37,161,197,208,160,160,210, 34,212,155, 54,109,242,233,104,237,220,185, 19,130, 32, 64,173, 86,227,131, 15, + 62,240, 73, 42, 9, 3,201, 45,242, 39,102, 56,142,243, 89,143, 72, 98, 67, 90,232,221,125,251,247,191,255,141,167,159,126,186, +206, 53, 28, 98,131,248,227,244, 22,190,228,148, 20, 20, 23, 21,213,217, 23,200,162,244,118,187, 29,130, 32,224,227,143, 63,198, +144, 33, 67,176,106,213, 42,159,159,119,220,113, 7, 56,142,163,129,164,103,118,118, 54, 44, 22,139, 51,204,199,143, 31,247,200, + 59,127,254,124,127, 78,230,157, 0,166,117,232,208, 33,180,119,239,222,216,178,101, 11, 70,140, 24, 97,178, 88, 44, 39, 29,207, +132, 22,243,230,205, 83,236,223,191, 31, 81, 81, 81,194,185,115,231, 62, 37,132,176, 1,242, 12, 13, 10, 79, 90, 68,122,230,229, +228,228,204,116, 23, 49,174,144,254, 39,132,172,154, 53,107,214, 16, 87, 81,228,250,219,197,117,114, 21,113,153,174,142,148,171, +136,242, 38,160,220,158,183,174,199,151,120, 20, 90,142,136,245,114,117,129,164,202,215,159,200,242,214,114,116, 71, 88, 88,216, +160,187,239,190,219, 41,114,140, 70,163, 83, 96, 73, 34, 75,250,125,226,196, 9,116,234,212, 73, 30, 22, 22, 54,200,143,208,146, + 68, 28, 26, 55,110,140,210,210, 82, 28, 58,116, 8,201,201,201,176, 90,173, 88,187,118, 45, 42, 43, 43, 33, 8, 2,228,114, 57, + 44, 22,223, 67, 22, 50, 50, 50,238, 88,188,120,113,167, 69,139, 22, 93,146, 90,116, 75,150, 44, 1,165, 20,209,209,209,208,235, +245, 40, 42, 42,194,198,141, 27, 97,179,217,160,211,233,144,150,150,166, 24, 58,116,104,247,105,211,166, 9, 0, 94,247, 66,157, + 61, 98,196,136,176,208,208, 80, 60,245,212, 83,212, 98,177,204, 34,132,100,143, 24, 49, 98,234, 19, 79, 60, 17,149,151,151,103, +126,232,161,135,246, 88, 44,150,119, 28,149,160, 64, 41,181,250,105, 81,120,117,178,172, 86,171,148,166,185, 53, 53, 53,104,212, +168, 81,178,159, 49, 92, 0, 32,223,190,125,123, 54, 0,217,244,233,211, 85, 0,138, 92, 69,150,217,108, 70, 77, 77, 13,106,107, +107,173,149,149,149,197, 47,188,240,130,237,203, 47,191,148, 57,206, 57,234, 73,104, 1,183,155,111,185, 69,171,160, 84,246,202, +130, 5, 11,116, 3, 7, 14,228,116, 58, 29,170,171,171, 67,255,183,102,141,174,111,239,238,105, 51,115,222, 94, 23,154,216,166, +104,251, 47,103, 80, 80, 88, 9,179,213,138,180,248,176,203,126, 24, 67,131,195,241, 34,139,211,209,114, 21, 21, 91,182,108,193, +237,183,223,238, 44,235,114,185,188,142,243,229,143,147,231,121,220,126,251,237, 87, 56, 60,155, 54,109,242,232, 62,249,131,171, + 40,114, 23, 71,158, 4, 24,199,113,240,215,251, 44,185,121,158,196,150,171,171,239, 38,222,252,181,246,193,243, 60,158,120,226, + 9, 8,130,128, 23, 95,124, 17, 60,207,163,125,251,246,224,121, 30, 89, 89, 89, 16, 4, 1,125,250,244,169,119,220,119,237,218, +133, 14, 29, 58, 56,195,212,190,125,123,116,238,220, 25, 60,207,163, 71,143, 30, 16, 4, 1, 3, 6, 12, 8,132,243,229,234,234, +234,182, 58,157, 14, 39, 78,156,128, 76, 38, 3, 33,228, 20,165,180, 45, 0, 60,252,240,195,167,245,122,125, 83,163,209,136,135, + 31,126,152,152,205,230, 54, 47,190,248,226, 43, 0,152,208, 98,104, 48,184,107, 17, 23, 24, 38, 77,154,244, 50, 33,100,149,228, + 80,185, 59, 79,158,126,123,168,155, 36, 49, 36,117,237,117,118, 19,113, 82,183,223, 96, 31,231,154,221,132,149,123,215,225,222, +128, 29, 45,169,242, 13, 84,104,249,131,209,104,108, 23, 19, 19,227, 85,100,185,126,154,205,102,164,166,166,194,104, 52,182,171, +239, 67, 35, 62, 62, 30, 22,139, 5,159,124,242, 9,228,114, 57,228,242, 63,244,133,217,236,219, 44, 58,114,228, 72,238,174, 93, +187, 58,116,236,216, 49,226,187,239,190, 43,185,237,182,219,162, 7, 14, 28, 8,181, 90, 13,131,193, 0,171,213,138,174, 93,187, + 34, 35, 35, 3,249,249,249,248,223,255,254, 87,154,158,158,222,104,247,238,221, 98, 97, 97,225, 89, 31,212,253,251,246,237, 11, + 66, 8,214,172, 89, 83, 74, 41,221,171, 82,169,126,156, 49, 99, 70,132,217,108, 22,199,142, 29,123,174,188,188,252,105, 0, 22, +165, 82, 57,119,192,128, 1, 89, 50,153,236, 11,187,221,254, 65,125, 51,170,123,218,214,214,214, 66,165, 82, 5, 50,149,132, 80, + 94, 94,222, 26, 0,180, 90,109, 36,128,211,206, 28,110, 48,212, 17,195,102,179,217, 24, 25, 25,169, 5, 0,199, 57,130,151,251, + 17,173,209,104,150,159, 61,123, 38,196,117,252, 92,120,120, 56,238, 27, 51,134,235,150,157,173,104,219,174,221,128, 87,223, 91, +180,180,113, 84,168, 57,173,113, 20,172,118, 43, 54,172, 91, 43, 82,209,186,142, 85, 59,127,142,208,146,196,134,187,163, 37, 8, + 2, 54,111,222, 92,139,213, 63, 0, 0, 32, 0, 73, 68, 65, 84,124,197, 62,185, 92,142,255,252,231, 63, 1, 9, 3, 73, 84,121, +235, 58,115,235,234, 34,254, 4,140, 32, 8,144,201,100,248,248,227,143, 33,138, 34,158,121,230,153, 58,221,137,174,252, 1,118, +129, 56,207,201,152, 42, 2, 48, 35,255,125,165,243,124,247,240, 58,206, 9,200, 37,155, 55,111, 94, 64,142,214,224,193,131,253, + 10, 87,215, 30, 6,215,112, 29, 60,120,208, 35,239,130, 5, 11,252,166,167,221,110,199,234,213,171,157, 34, 85,194,148, 41, 83, + 30, 78, 76, 76,140,221,186,117, 43, 10, 11, 11, 81, 91, 91,139,154,154, 26,116,237,218, 53,173, 95,191,126,191, 20, 22, 22,230, + 29, 57,114,228,110, 86,122, 24,254, 68, 71,203, 52,107,214,172,195,179,102,205,242,232, 88,185, 59, 75,190,156, 39, 23,129,181, + 23,142, 46,195, 73,147, 38,189,140,203,195,106,246, 6,112,174,194,189,235,208,167, 17,228,166, 34,167,121,170,124, 3,233, 62, + 12,208, 78,231, 9, 33, 48, 26,141, 30, 5,150,171, 56,176, 88, 44, 40, 47, 47,135,221,110,191,234,185,190, 60,181,100,253, 9, +173, 67,135, 14,253,243,129, 7, 30,184, 16, 22, 22,214,182,164,164,164, 88, 20,197, 62, 59,119,238,140,230,121, 30,161,161,161, + 8, 13, 13,197,143, 63,254, 8,141, 70,131, 39,158,120,162,216,110,183,111, 9, 9, 9,137, 50, 24, 12,191, 22, 22, 22,190,234, + 85,193, 8,194,128, 30, 61,122, 96,255,254,253,184,116,233,210,122, 66, 72,251, 7, 31,124,240,246,164,164, 36, 50, 99,198, 12, +227,239,191,255,254, 1,128, 98,173, 86,187,120,241,226,197,189, 59,118,236, 24, 50,118,236, 88, 16, 66, 22, 80, 74,141,129,198, +185,182,182,182,142,192,170,170,170, 66,117,117, 53,180, 90,173, 45,192, 52, 19,112,121,172,149, 52,222,202,121,111, 28,110,150, +116,127, 40,207,243,244,242, 33, 84,240,198,167,213,106,167, 47, 90,180, 72,237,254,146,130,221,110, 71, 81, 81, 17, 66, 67, 67, + 49,229,213, 87,229,111, 60,247, 96, 7,153, 46,118, 39,199, 17,152, 45,180,130,138,230,181,181, 69,247,108,101,213,206,159, 3, + 73, 24,220,117,215, 93, 87,116, 23,202,229,114,172, 95,191, 30,195,134, 13,115, 54, 92, 58,118,236,232,183,113, 37, 9,131, 59, +239,188,211,233, 12,173, 93,187,214, 99,183,159,228, 72, 5, 34, 8,165, 99,159,124,242, 73,240, 60,143,127,253,235, 95,120,246, +217,103,193,113, 28,222,127,255,125,112, 28,135,215, 94,123, 45, 96,145,233, 42, 96,242,222,190,252,153,248,108, 21,202,230,199, + 2, 0, 66, 66, 67,165, 8,213,171,238,225,121,222,233,100,181,107,215, 14,130, 32, 32, 43, 43, 11, 60,207, 59,157,172, 65,131, + 6,185,166, 35, 13,132,147,231,121,156, 60,121,210, 25,230,172,172,172, 58, 78, 22,207,243, 24, 60,120,112, 32,193,156, 25, 30, + 30, 62, 45, 35, 35,163,213,236,217,179, 5,153, 76,134,190,125,251,182,120,232,161,135,206, 70, 69, 69, 69, 77,159, 62, 93,227, +225, 28, 53,128,182,173, 90,181,210,178, 82,195,208,128,142,214, 52, 15,127, 69,184,142,185,170, 71, 67,114,149,235,241, 18,135, +187, 56,114, 56,100, 91,252,113,121, 58,215, 31,120, 73, 65,250,178,212, 3, 17, 90, 14,219,217,231,197, 52, 26,205,111,197,197, +197, 89,106,181,186,142,200,242, 36,184,100, 50, 25, 10, 11, 11,161,209,104,126, 11,230, 77,244,215,117,232, 16, 53,207,185, 36, +108,191, 65,131, 6,125,190,126,253,250,248, 13, 27, 54, 96,247,238,221,136,142,142,198,188,121,243, 46, 22, 21, 21,253,147, 82, +186, 62,144,235, 54,109,218,180,181, 78,167,195,246,237,219, 1, 96, 51,128, 7, 31,127,252,113, 98,181, 90, 49,127,254,252, 90, + 0,107,194,195,195, 87, 47, 91,182,172, 67,219,182,109, 21, 27, 54,108,168,218,189,123,247, 79, 1,138, 44,187, 40,138, 87, 8, + 44,215, 52, 13, 9, 9, 9,196,209,178,134,133,133, 29,170,170,170, 26,101, 48, 24,170,148, 74,101, 72, 85, 85,149,201, 85, 96, + 73,252, 60,207, 11, 39, 79,158,188, 0, 32, 45, 44, 44,236, 16, 92,186, 24,235,100, 48,158,239,219,183,111, 95,222,253, 30, 20, + 21, 21,161,176,176, 16, 22,139, 5, 29, 59,118, 36, 50, 98,149,149,159,251,245, 97, 86,205,252, 37,142, 22,149,202,186,244,150, +160,167, 55, 13,215,174, 93,235,252,205,113, 28, 28,175,251,251, 21, 69,235,215,175,247, 57, 96,221,173,235,208,175, 53, 46, 29, +255,225,135, 31, 94, 94,222,194,225,100,113, 28,135, 73,147, 38, 65,169, 84, 98,198,140, 25,152, 52,105, 18,120,158,247,219,117, +232, 42, 96, 82, 94,212,187, 54,142, 46, 23, 10,199,120, 40, 66,136,171,216, 34,129,138, 55, 95,110, 94, 32, 61, 1,174,156,210, +121, 42,149,202,235, 64,120, 55, 78,226, 35,222, 63, 16, 66,206,196,199,199,111,207,202,202, 10,219,183,111, 31,222,127,255,125, +185,201,100,106,178, 97,195, 6,231,117, 61,165, 87,109,109,173,154,149, 28,134,134,112,179,124,252, 93,226, 54,190,138,184,118, +227,249,248,116, 63, 30, 46,251, 92,121, 75,220,158, 99,174,251,221,197,149,251, 53, 92,143, 41,241,234,104,249,171, 44,252, 9, +174, 64, 28, 45,189, 94,255,211,154, 53,107, 58,143, 25, 51,134,247,213,109, 88, 91, 91,139,216,216, 88, 28, 62,124,216,166,215, +235,127, 10,192, 41, 11,154,208,242, 80,169,108,136,139,139,147, 89,173, 86, 52,111,222, 28, 9, 9, 9, 48, 26,141,168,168,168, +144, 5, 42,178, 8, 33,242, 78,157, 58,201, 0,160,162,162, 2,184,252,170,105,139,244,244,116,236,223,191, 31,229,229,229,223, + 2, 24, 56,109,218,180,142, 93,187,118,149, 47, 93,186, 84,255,232,163,143,126,107,181, 90, 95, 15,208,141, 48,219,108,182, 84, +142,227, 44, 21, 21, 21, 5,174,233, 25, 27, 27, 27,169,213,106, 73, 81, 81,145, 53, 16,161,213,182,109,219, 61,231,206,157,195, +244,233,211, 75,102,206,156,153, 94, 93, 93,125,169,178,178,210,230, 42,182,140, 70, 35,215,168, 81, 35,229,252,249,243,213, 0, +208,182,109,219, 61,222,132, 86,109,109,109,146, 70,243, 71,195,216,100, 50,161,176,176, 16,133,133,133, 40, 42, 42, 66,117,117, + 53,210,210,210,160,215,235,147, 89, 53,243,151, 9,173, 58,221,103,174,229,219,245, 65, 94,159,178,238, 42, 96,238,186,235, 46, +231,216, 46,201, 33,147,182,229,203,151,187, 15, 48, 15, 72,104,125,248,225,135,120,242,201, 39,161, 82,169, 48,123,246,236, 58, + 93,135,238,226, 64, 20, 69, 18, 72,220, 83, 95, 50,160,112,110, 36, 4, 65, 64,212,163, 69,117,186,232, 60, 8,142,128,194, 57, +115,230,204,160,116, 29,186,114, 38, 39, 95, 46, 42, 31,127,252, 49, 70,141, 26,133,173, 91,183, 94,117,215, 97,102,102,230,146, + 85,171, 86,133, 29, 57,114, 4, 85, 85, 85, 40, 41, 41,129,201,100, 66,126,126,190,215, 94, 1, 71, 93,174, 98, 37,135,225, 79, +198,222, 63,153, 55,104,215,227,253, 60,192, 3, 22, 90,129, 56, 90, 38,147,105,246, 83, 79, 61,245,120,191,126,253, 34, 67, 66, + 66,112,225,194,133, 43, 68, 86, 77, 77, 13,116, 58, 29, 12, 6, 3, 86,174, 92, 89,101, 50,153,102,251, 19, 7, 86,171, 21, 49, + 49, 49, 40, 45, 45,133,232,101,252, 52,199,113, 80,171,213,168,169,169,129, 55, 81,224,235,129, 97,177, 88, 96,181, 90, 97,181, + 90, 97,177, 88, 80,207,233,157, 52,210,196,175,181,181,181, 0, 80,219,184,113,227,230, 42,149, 10,185,185,185,192,229, 55,251, +250,221,126,251,237, 66, 89, 89, 25,125,232,161,135,182, 81, 74, 31,246, 51, 59,190,121,203,150, 45,169, 0,160, 86,171, 79, 0, + 64,126,126,190,181,162,162,162,142, 83,168,209,104,232,176, 97,195,226, 41,165,216,178,101, 75,170, 92, 46,167,240, 50,231, 21, + 0,227,138, 21, 43,142,132,133,133,125,153,147,147, 51,102,200,144, 33,135, 91,183,110,157, 90, 91, 91, 91,108, 48, 24, 12, 70, +163,145,202,100, 50,121, 68, 68,132,106,221,186,117,167,119,238,220,217, 47, 52, 52,244,203, 21, 43, 86, 28, 1,224,209,121,211, +106,181,249,122,189, 62, 69,186,167,174, 34,171,176,176, 16,148, 82,156, 57,115, 6, 26,141,230, 28,171, 71,254, 58, 72,141, 42, +119,231,197,125, 95,160, 34,203, 85, 24,172, 91,183,206,231, 28, 90,129,114,186,138,162,103,159,125, 22,115,231,206,189,194,209, +154, 49, 99, 6, 0,224,213, 87, 95, 13,120,140,150,228, 94, 21,206,141, 68,220,147,229,117,194, 14, 0, 68, 10, 95, 61,167,116, +227,121, 30,211,167, 79,191, 98,144,186,107,215, 94,128, 93,124,117,194, 89, 92, 92, 12,158,231, 17, 25, 25,137,251,238,187, 15, + 3, 6, 12,112,118, 65,214,151,247,216,177, 99,219, 95,122,233,165, 54,153,153,153,120,243,205, 55,203,195,195,195, 67,254,239, +255,254,143,175,168,168, 32,190, 28, 45, 38,180, 24, 24,130, 32,180,164, 2, 22,232, 91,135,158, 42, 75, 66, 72, 63,215,185, 54, + 40,165,149,132,144,251,250,247,239,255,221,215, 95,127,173,110,218,180, 41,142, 29, 59,134,242,242,114,152,205,102,200,229,114, +196,199,199,163,162,162, 2,159,125,246,153, 65,175,215,223, 71, 41,173,244,197, 9,224,149, 78,157, 58,125,244,238,187,239,170, +218,183,111,143,242,242,114,212,212,212,212,153,197, 58, 52, 52, 20,106,181, 26,123,246,236,193,218,181,107, 13, 0, 94,241,195, +233, 73,205,193, 98,177, 56, 5,151, 63,161,229,198,169,149, 92, 29,189, 94, 15, 0,214,164,164,164, 56, 0, 56,115,230, 12, 0, +228,165,165,165, 77,107,218,180, 41, 89,188,120, 49,165,148,174,245, 36,178,220, 56,203,123,244,232,113, 9, 64,156,217,108,150, + 3, 64,101,101,165,165, 81,163, 70, 49, 74,165, 82, 84,171,213,162, 74,165, 18, 47, 92,184, 96,179,217,108,114, 0,232,209,163, +135, 25, 64, 33, 92,198,130,184,113,138, 0,170, 22, 44, 88, 48,109,236,216,177, 89,217,217,217,153,143, 61,246,216,161,135, 30, +122,136, 75, 72, 72,136,168,174,174, 54,158, 58,117,234,210,123,239,189, 87,189,107,215,174,126,130, 32,156, 93,176, 96,193, 52, + 0, 85,142,115,175,224,180,217,108, 63,109,216,176,225,159, 67,134, 12,225, 11, 10, 10, 80, 84, 84,228, 20, 89, 69, 69, 69,200, +200,200,192,206,157, 59,237, 22,139,101, 67, 61,210, 51, 88, 78, 14,227,188,220, 8,161, 82, 89,247, 38,176,164,198, 84,160,156, +174,162,104,212,168, 81,117, 92, 44,185, 92,142,111,190,249,198, 99,189,225, 97,134,243,126,238,243, 73, 73, 97,122,233,165,151, +234,136,182, 41, 83,166,120, 13,154,191,244,148,120, 42, 63, 78,168,251,214,161,151,114,238, 43,156, 82,221, 41, 8, 2,166, 76, +153, 18,176,163, 5,183, 49, 90,158, 56,165,184,223,118,219,109,208,235,245, 78, 33,235,205,209,242,151,158,118,187,253,201,185, +115,231,210,208,208,208, 91,171,170,170,254,113,238,220,185,133,122,189,190, 75,101,101,165, 79, 71,203,100, 50, 41, 89, 57, 98, +156, 13, 49,151,214, 77, 37,180, 28, 15, 73, 36, 37, 37,213, 89, 59,139,227,184, 58, 91,125,198, 25, 56, 10,238, 58, 66,200,240, +110,221,186,125,241,228,147, 79,134,180,111,223, 94, 72, 73, 73, 65,109,109, 45,114,115,115,113,248,240, 97,219,138, 21, 43,170, +244,122,253, 63, 40,165,235, 2,224, 91, 68, 8, 89, 59,112,224,192,215,186,118,237,250,200,212,169, 83,101, 45, 90,180, 64,101, +101, 37, 34, 34, 34, 16, 19, 19,131,227,199,143, 99,229,202,149,246,210,210,210,143, 0,188, 65, 41, 45,169,111,131,223, 98,177, +224,222,123,239,133, 40,138,248,224,131, 15, 64, 8,169, 79,243,214, 98,177, 88, 40, 0, 82, 90, 90, 10, 0,122,199,236,210, 56, +117,234, 20, 0,156, 77, 77, 77, 13, 1,128, 13, 27, 54, 16, 0,129, 46,233, 67, 93,157,173,140,140,140, 92,247,202, 81,114,178, + 36, 23, 12,254, 23,130, 54,142, 30, 61,186, 88,175,215, 15,124,246,217,103, 95,251,240,195, 15,199,124,248,225,135, 87, 28, 20, + 26, 26,250,229,251,239,191,255,198,232,209,163,139,189,185, 89, 14, 7,239,213,113,227,198,141,254,237,183,223, 66, 84, 42, 21, +106,107,107, 81, 86, 86, 6,139,197,130,180,180, 52, 20, 23, 23, 99,209,162, 69,213, 6,131,225,117, 86, 28,255, 26,184, 10, 3, +111,174,150, 63,145,229,203,213,249,225,135, 31, 60,206, 81, 85, 95, 78,119,177, 17,232,220, 86,190, 26, 69,210,180, 52,158,166, +140,168, 79,189,230,137,151,231,121,188,243,206, 59,206, 73, 91, 61, 57, 89,245,113,180, 36,206,200,200,200,203, 54,185, 99,201, +164,193,131, 7, 95, 53,175, 99, 57,178, 39, 92,174, 49,243,133, 23, 94,152,150,145,145,209, 2,128,210, 53, 13,216, 34, 13, 12, + 12, 65, 22, 90,118,187, 61,191,101,203,150,117, 42, 56,127,139,153, 90,173,214,252, 0, 11,247, 90, 66, 72,218,251,239,191,255, +148, 86,171,237,167,215,235,219, 56, 42,142,223,106,107,107, 55,152, 76,166, 57,245, 89, 4,218, 33,156, 38, 18, 66, 62, 24, 56, +112,224,140, 62,125,250,140,124,238,185,231, 8,165, 20,243,231,207,167,191,255,254,251,114, 0,175, 80, 74,127,191,154, 68,138, +140,140, 60,242,217,103,159,197,126,247,221,119,176, 90,173,152, 51,103, 14, 66, 66, 66,142,212, 35,124,197, 60,207,127,158,157, +157,125,255,206,157, 59, 23, 81, 74,127, 85, 40, 20, 11,187,119,239, 62,110,231,206,157, 75, 40,165,135,121,158, 95,216,181,107, +215,113,123,247,238, 93, 70, 41, 61, 88,143,224, 57,157, 45,155,205,115, 79,163, 39, 39,203, 15,170, 30,120,224, 1,203, 3, 15, + 60,240,220,232,209,163, 63,217,187,119,111,151,138,138,138, 54, 0, 16, 30, 30,254, 91,231,206,157,247,124,253,245,215,199, 29, + 78,150,209,223,189, 33,132, 12,107,211,166,205,183,111,190,249,166, 54, 51, 51,147,111,222,188, 57,242,242,242,112,232,208, 33, +219,167,159,126, 90, 99, 48, 24,238,162,148, 94, 98,197,241,175, 19, 90,148, 82,132,135,135,215,105, 68, 73,175,252,215,183,187, +208,245,193, 44, 45,213,227,206,235,141,211,215,180, 9, 18,116, 58,157,115,114,211, 64,134, 44,136,162,239,249,216, 40,165, 78, + 78,105, 11, 64,100,249,125, 67,208,177, 4, 78,192,156,129, 76,239,160,213,106, 97,181, 90,157,188, 1,188,249, 73,234,121,207, +126, 0,240, 67,243,230,205, 79, 1,104,198,196, 21, 3, 67, 3, 10,173,242,242,242, 78, 13,121, 97,135,144,122,195,177, 5,139, +243,119, 0,163, 9, 33,239,254,252,243,207, 82, 63,194,116,127,235, 37,250,195,177, 99,199,134, 8,130,240,159, 47,191,252,178, + 43,165, 20, 97, 97, 97,187,242,242,242,254,175, 62, 28, 54,155,237, 1, 66,200,227,210, 91,132,102,179,249, 1, 66,200, 83,148, +210, 26,151,255,157,191,235, 27,117, 0, 38, 74,105, 99, 47,255,155,234, 33,178,156,206, 22, 0,243,215, 95,127, 93, 3,224, 23, +252, 49, 79,150,213,177, 25,225,210, 93,232,231,190,108, 36,132, 52,159, 50,101,202, 76,153, 76,214,183,182,182, 54, 65,171,213, +158,183,217,108, 63,233,245,250, 87, 40,165,101,172, 40,254,117, 48,155,205, 5, 45, 91,182,228, 61, 53,160,124, 61,200,125, 53, +172,236,118,123,126,122,122,186,223,198,153, 7,206, 2, 31,249,232,108, 90, 90, 26, 23, 40,151, 4,139,197, 82,236, 43,156,105, +105,105,168, 47,167,191,184,167,166,166,122,140,187, 31, 65, 88,224,163,254,184, 42, 78, 95,233,233, 11, 6,131,225, 82,116,116, +116,141,209,104, 20, 76, 38,147, 96,179,217,234,216,143,106,181,186,132,149, 28, 6,134,107, 20, 90,127,103, 56,132,213,157, 65, +228, 51, 1,184, 63, 8, 60, 70,183,223, 53,190,126,215, 19, 13,225, 8,137, 0,244, 65, 74,195, 82, 0, 15,177, 34,119,253,161, +180,180,244,214, 96,115,150,149,149, 5,189,161, 86, 82, 82,146,213, 0,113,239,116,179,114,250, 66, 65, 65,193,173,172,100, 48, + 48, 4, 7, 28, 75, 2, 6, 6, 6, 6, 6, 6, 6,134,134, 1, 1,208,207,211, 31,245,121,155,128, 16,210,175,190, 23,246,199, +207, 56, 25, 39,227,100,156,140,147,113, 50,206, 27,143,211, 31,247, 13,247, 54, 35,165,180,193, 54, 0,253, 24, 39,227,100,156, +140,147,113, 50, 78,198,201, 56,111,214,141,117, 29, 50, 48, 48, 48, 48, 48, 48, 48, 52, 16,152,208, 98, 96, 96, 96, 96, 96, 96, + 96, 96, 66,139,129,129,225,239, 8, 66, 72,139, 38, 77,154, 28,109,217,178,101, 1, 33,100,124, 3, 95,235,190,172,172,172, 50, +149, 74,181,142, 16,210,130,165, 62, 3, 3, 3, 19, 90, 12, 12, 12, 55,180,200,106,211,166,205,182, 99,199,142,101,108,216,176, +161,113, 66, 66,194,219, 13,121,189, 78,157, 58,189,181,117,235,214,200, 53,107,214,244,143,139,139,219,114, 53, 98,139, 16,210, + 34, 57, 57,249,104,203,150, 45,243, 9, 33,247, 5, 57, 61,198,103,103,103,151, 43,149,202,181, 76, 8, 50,220, 4,229,191, 53, + 33,164, 13, 19, 90, 12, 12, 12, 12, 13, 40,178,118,236,216, 17,101, 52, 26,113,236,216, 49,148,148,148, 28,108,200,107,158, 56, +113,226,210,142, 29, 59,144,152,152,136, 37, 75,150, 68,167,166,166,110,173,143,160,145,194,124,244,232,209,140, 13, 27, 54, 36, +196,196,196,188, 23,204,240,117,233,210,101,198,214,173, 91, 35,214,173, 91, 55, 32, 58, 58,122, 11, 19, 91, 12, 55, 96,185, 87, + 18, 66,238,231, 56,110, 79,235,214,173,127,203,204,204,252,149,227,184,157,132,144, 81,132, 16,254,166, 76, 19,105,137,133,213, +171, 87,111, 6,128,193,131, 7,223,198,178, 10, 3, 3,195, 53, 86,182,153,153,153,153,187,118,237,218,165, 49, 24, 12, 88,182, +108, 25,166, 78,157,106, 45, 47, 47,223, 10,160,214,195, 41,123, 1,252, 59,144,165,183, 8, 33,161, 0, 30, 7,208,217,195,223, +218,200,200,200, 30,211,166, 77, 19,110,191,253,118, 24,141, 70,140, 24, 49,194,120,226,196,137,246,148,210, 19,129, 10, 67,131, +193,128,125,251,246,225,174,187,238, 90,103,181, 90, 7, 6, 43, 93,194,194,194, 14,255,240,195, 15,183, 52,110,220, 24,103,206, +156,193,184,113,227, 74,138,138,138,122,250, 11, 27, 3,195,223,160,204,167, 0,120, 68,167,211, 61,216,171, 87,175,136,187,238, +186, 11, 81, 81, 81,176,217,108, 56,127,254, 60, 86,173, 90,133, 29, 59,118, 92, 48,155,205,115, 1,124, 76, 41,173,240,196,115, + 35,106, 17, 66, 41,197,234,213,171, 41,128, 94,142,200,109,102, 89,134,129,129,225, 26, 43,221, 29,122,189, 62, 75,175,215,163, +186,186, 26, 73, 73, 73, 16, 4,193,227,177,197,197,197,216,190,125, 59,158,120,226,137, 35,133,133,133, 61,125,173,123, 73, 8, +137,232,208,161,195,142,141, 27, 55,182, 8, 9, 9,113,238, 23, 69, 17, 22,139, 5, 86,171, 21, 22,139, 5, 38,147, 9, 38,147, + 9, 10,133, 2,106,181, 26,145,145,145,135, 40,165,109, 2, 21, 89, 7, 14, 28,192,216,177, 99, 75,202,202,202,130, 42,130, 8, + 33, 45, 98, 98, 98,182, 44, 90,180, 40, 58, 45, 45, 13,231,206,157,195,132, 9, 19, 74,207,158, 61,219,131,137, 45,134,191,113, +121,159, 52,124,248,240, 25,177,177,177, 92,235,214,173, 17, 31, 31, 15,147,201, 4,131,193, 0, 74, 41,120,158, 7,165, 20,149, +149,149,216,178,101, 11, 54,110,220,104,186,116,233,210,103, 0,230, 80, 74, 79,186,136,172, 27, 82,139, 56,133,214,224,193,131, + 9,203, 46, 12, 12, 12, 65,170,120,127,171,172,172,108,109, 50,153, 80, 91, 91, 27,208, 57,103,206,156,193,248,241,227,143, 20, + 22, 22,118,243,228,108, 17, 66, 66, 59,116,232,176,123,203,150, 45, 45,140, 70, 35,170,170,252,175, 59,175, 80, 40,160, 82,169, + 16, 21, 21,181,147, 82,154,237,173, 37,222,186,117,235,125, 59,119,238,140, 52, 24, 12, 56,120,240, 32,238,187,239, 62, 75,121, +121,249, 54,120,118,223, 0,160, 28,151,215, 81, 61,235,129, 47, 25,192, 83, 0, 82,188,156,171,141,142,142,238,190,120,241, 98, +121,211,166, 77,161,215,235, 49,106,212,168,242, 19, 39, 78,116,166,148,230,178,220,195,240, 55, 44,239, 39,142, 29, 59,150,110, +183,219, 81, 90, 90, 10,147,201, 4,189, 94,239, 20, 90, 50,153, 12,148, 82,216,108, 54,103,195,104,255,254,253,216,176, 97, 3, + 61,115,230,204, 84, 74,233,116, 73,104,221,136, 90,132,103, 89,132,129,129,161, 1, 48,186, 75,151, 46, 7,255,247,191,255,169, + 20, 10, 5, 86,174, 92,233,181,235, 48, 54, 54, 54,115,225,194,133,169,105,105,105,152, 55,111,222, 45, 35, 70,140,120, 28,192, + 76, 15,156,143,111,220,184,177,133,209,104,196,193,131, 7, 49,110,220,184,220,162,162,162,195,238, 34, 38, 53, 53,181,199,123, +239,189, 39,116,236,216, 17, 85, 85, 85,232,223,191,191, 30,192, 35, 62,194, 58,113,211,166, 77,145, 6,131, 1,213,213,213,232, +213,171, 23,202,202,202,228, 0,250,120, 59,193, 96, 48, 32, 37, 37,165, 5,128, 43,196, 91, 84, 84,212,127,207,157, 59,215, 91, +173, 86,251, 76, 32,139,197,130,252,252,124,132,135,135, 99,213,170, 85,145,205,154, 53,123, 21,192, 3, 44,235, 48,252, 29, 97, + 54,155,241,213, 87, 95,161, 67,135, 14,104,213,170, 21,106,106,106,156,162,203,108, 54, 59, 69, 22, 0,112, 28,135,206,157, 59, + 35, 61, 61,157, 60,243,204, 51,247, 1,152,126, 35,167,141, 36,180,166,177, 49, 90, 12, 12, 12,193, 2,165,244, 4, 33,164,125, +191,126,253,182, 46, 95,190,188,209,160, 65,131,208,172, 89, 51,225,238,187,239,142,174,173,173,237,235,214, 26,142, 24, 55,110, +220,190,243,231,207,167, 58,118,117,246, 66,219, 57, 36, 36, 68, 26,219,148, 91, 84, 84,212,201,189,155, 81,169, 84,174,253,229, +151, 95, 4,133, 66,129,189,123,247, 98,252,248,241,165,185,185,185,254,186,229,194,205,102, 51,100, 50, 25, 0, 32, 63, 63,223, +111,252,206,157, 59, 7, 81, 20, 77,158,254,227, 56, 78,185,127,255,126, 52,110,220,216, 39, 7,199,113,144,203,229,174,187, 42, + 88,206, 97,248,155,194,106, 54,155,209,169, 83, 39,228,230,230, 98,255,254,253, 78,193, 85, 90, 90,138, 11, 23, 46,212, 57,120, +207,158, 61, 56,112,224, 0,122,246,236,233,206,115, 67,106, 17,222, 17,161,215, 87,175, 94,205, 4, 22, 3, 3, 67,176,197, 86, +143, 59,239,188,115,203,162, 69,139,162,147,146,146, 16, 18, 18, 18,234,225,184, 75,132,144,195,130, 32,164, 6,202, 93, 84, 84, +116,216,211, 88,174,184,184,184,246,102,179, 25, 7, 14, 28,192,125,247,221, 87,226, 24,243,229,111,236,211,155,125,251,246,189, +115,221,186,117,145, 42,149, 10,135, 15, 31, 14,164,235, 48, 15,192, 28, 79,127,148,148,148,220,215,179,103,207, 41, 0, 34,189, +156,171, 77, 79, 79,239,190,111,223, 62, 57, 33, 4,121,121,121, 24, 53,106, 84, 57,128,127,177, 92,195,240, 55,197,107,195,135, + 15,255,244,241,199, 31, 15,235,218,181, 43,242,243,243,157,130,171,125,251,246,104,219,182, 45,126,255,253,119,172, 93,187, 22, + 7, 14, 28,128, 82,169, 68,179,102,205, 80,243,238,123,192,123,176, 74, 36, 55,170, 22,113,190,117,200,192,192,192,208, 32,149, + 12, 33, 45,228,114,249, 7,209,209,209,237, 10, 10, 10,158,165,148, 46,113,251, 63, 98,228,200,145,135,151, 46, 93, 26,159,151, +151,135,166, 77,155,174,164,148, 14,245,192,179,130, 82,122,215,153, 51,103,208,173, 91, 55,143,142, 22, 33,100,124, 92, 92,220, + 27,213,213,213,149,122,189,126, 84,160, 3,204, 9, 33, 45,154, 55,111,190,117,229,202,149,141, 52, 26, 13,142, 30, 61,218, 96, +131,225, 91,182,108,185,109,207,158, 61, 81,130, 32, 96,239,222,189, 24, 55,110, 28, 27, 12,207,112, 35,148,243, 16, 0, 47,164, +165,165, 61,255,232,163,143, 42,111,185,229, 22,228,231,231,163,164,164, 4,151, 46, 93,194,174, 93,187, 0, 0, 9, 9, 9, 72, + 72, 72,192,241,227,199,177,125,251,246,170,154,154,154, 7, 40,165,223,221,208,105,195,132, 22, 3, 3,195,159, 92, 33, 39,195, +101,176,248,200,145, 35, 59, 45, 94,188, 56,190,172,172, 12,187,119,239,198,136, 17, 35, 94,161,148,206,244,112,222,203,133,133, +133, 51, 0,224,208,161, 67,238, 99,180,188, 14, 78,175,143, 8, 74, 73, 73,217,186,108,217,178, 70, 81, 81, 81, 56,118,236, 24, + 70,141, 26,117,184,182,182,182,117,176,226,174,209,104,214, 21, 22, 22,246,151,203,229,216,185,115, 39,238,187,239, 62, 54,189, + 3,195,141, 86,190, 99, 0,188,122,203, 45,183, 60,242,224,131, 15,242,201,201,201, 40, 40, 40,192,207, 63,255,140,102,205,154, +225,252,249,243,216,184,113,163,185,164,164,228, 3, 0, 57,148,210,202, 27, 62, 81, 26,114,197,106,176,149,205, 25, 39,227,100, +156, 87, 30,183,246,200,145, 35, 84,130,221,110,167, 5, 5, 5,116,221,186,117, 52, 46, 46,238, 48,128, 80, 79,156, 0, 66, 91, +181,106,117,236,248,241,227,244,220,185,115,212, 98,177, 56, 57,142, 29, 59, 70, 1,108,190,214,112, 2,104,145,144,144, 80,188, +105,211, 38,122,252,248,113, 26, 23, 23,119, 62,152,113, 79, 73, 73, 41, 46, 41, 41,161, 63,255,252, 51,141,142,142, 46, 6,208, +130,229, 37,198,121, 35,114, 58, 26, 82,139, 59,118,236,104,159, 59,119, 46,125,228,145, 71,104,114,114,178, 29,192,127, 1, 36, + 52,164,246,184,222, 54,246,214, 33, 3, 3,195,159, 13,229,174, 93,187,160, 84, 42,157, 59,126,253,245, 87,215,121,180,170,188, + 52, 10,171, 8, 33,221, 6, 13, 26,180,117,238,220,185,173,172, 86,231,208, 14,108,218,180, 9, 0, 76, 65,104,120,158, 32,132, +244, 28, 56,112,224,156,168,168,168,118,133,133,133,175, 5, 51,226,121,121,121,207,182,105,211,102,102,117,117,117, 85,125,186, + 54, 25, 24,254,134, 38, 78, 30,128,177,132,144,183,247,239,223,255, 10, 0, 10,224, 77, 74,233,209,155, 45, 45,152,208, 98, 96, + 96,248,179, 49,254,161,135, 30,114, 31, 44, 30,208,204,240,142,129,243,217,131, 7, 15,118,159, 25,222,235,224,244,171, 17, 91, + 0, 6, 52,208,195,103, 9,128, 37, 44, 11, 48,220, 68,130,235, 48,128,123,110,230, 52, 96, 66,139,129,129,225,207,174,120,207, + 2,152,112, 13,231, 87,193,243, 60, 91, 12, 12, 12, 12,215, 29,216,162,210, 12, 12, 12, 12, 12, 12, 12, 12, 76,104, 49, 48, 48, + 48, 48, 48, 48, 48,252,189, 64, 0,244,243,244, 7,165,116, 67,192, 36,132,244,171,239,133,253,241, 51, 78,198,201, 56, 25, 39, +227,100,156,140,243,198,227,244,199, 93, 31,253,241,183, 64,128,175,113, 18,246,234, 43,227,100,156,140,147,113, 50,206, 64, 56, + 29,141,120,130,203,189, 38,156,244,251, 58,159,142,128, 92,175,113,191, 89, 56,111,202,233, 29, 8, 33,206,196, 34,132,136, 0, + 68, 26,132, 25, 78, 9, 33,210,141, 8, 10, 31, 67, 3, 88,157,151,239, 17,249, 67,143,179,251,196,192,192, 80,175,186, 67,230, +242,176,181, 3,176, 19, 66,112,189,213, 37,193,124,206, 53, 68,220,111,102,206, 27, 5,188,175, 4,147,201,100,235, 26, 53,106, +212,187,180,180, 84,116,236,135, 66,161, 0,199,113, 16, 4,193, 80, 93, 93, 29,122, 21, 55,227,191,177,177,177,227,203,202,202, + 68,142,227,160, 82,169, 64, 8,113,114, 86, 84, 84,132,254,213,137,146,146,146,114,201, 96, 48,232,220,247,171, 84, 42,227,217, +179,103, 67,110,134,138, 82, 46,151, 15,143,140,140, 12, 47, 41, 41,161,210,226,183, 50,153, 76, 90, 8,215, 86, 81, 81,241,121, +160,124,145,145,145,123, 34, 35, 35,195,165,243, 9, 33, 40, 43, 43,171, 40, 42, 42,234, 2, 0,106,181,122,187, 86,171,141,226, +121, 30, 50,153, 12, 50,153, 12,122,189,190,172,180,180,180, 27,123,108,253, 61,177,124,249,114,217,192,132, 9,205,120,106,104, +203,113, 52, 76, 20, 73,165,141,168,127, 93, 91,240,223,211,129,156, 63,114,228, 72, 59, 75,197, 63, 15, 74,165,242,131,216,216, +216, 7,107,106,106,244,132, 16, 74, 8,193,229,199, 0,174,248,180,219,237,249,165,165,165,157,252, 60,108, 5,133, 66,241,126, + 92, 92,220, 56,189, 94,175,119,240, 81, 66, 8,226,227,227,235,240, 1,128,213,106,205, 47, 41, 41,233, 20, 72, 88, 99, 98, 98, + 22,168,213,234,127,232,245,250, 90,135, 48,114,237,161,113,125,152,255, 94, 82, 82,210,195,159, 48, 80, 40, 20,115, 98, 99, 99, +255,233,136, 59, 8, 33, 52, 58, 58,250,154,227, 30, 27, 27, 59,174,182,182,182, 78,220, 99, 98, 98, 60,114,122,139,187, 39, 78, +215,112, 18, 66, 16, 29, 29,125,205,225,188, 30, 57,111,120,161, 5,128, 35,132,172,232,214,173, 91,175,205,155, 55,115,199,142, + 29,227, 50, 50, 50, 96,183,219, 33,138,151,243,117, 98, 98,162,230, 42, 30,224, 11,123,244,232,113,239,150, 45, 91,184, 21, 43, + 86,112,157, 59,119, 6, 33, 4,118,187, 29,118,187, 29,173, 91,183, 86, 95,163, 64,208,241, 60,255,140, 66,161,184,205,102,179, +181, 2, 0, 65, 16,142,154, 76,166,205, 54,155,109, 54,165,180, 38, 16, 30,139,197,162, 41, 46, 46,190, 34,109,210,210,210, 20, + 87, 27,182,208,208,208, 29, 28,199,165, 57, 19,216, 33, 56, 60, 21,102,233,147, 82,122,166,164,164, 36,219, 27,103, 68, 68,132, +147,211, 27,135,251, 62, 81, 20,207, 20, 23, 23,103,251, 17, 89, 35,122,244,232, 17,182, 97,195, 6,114,254,252,121,162, 86,171, + 33,138, 34,236,118, 59,172, 86, 43,110,185,229,150,122, 77, 11, 18, 30, 30, 30, 58,105,210,164,102,119,220,113, 7,190,249,230, + 27,220,127,255,253,232,222,189,251, 73,233,127,173, 86, 27,117,228,200,145,244,200,200, 72,232,245,122, 84, 86, 86,162,127,255, +254,127,251,194,213,181, 67,210,155,132, 35,206,185,162,168,205, 94,190,235,151,130, 87,175,149, 55, 60, 60,252,128, 66,161,136, +149,238, 43,199,113, 30,239,181,235, 62,163,209, 88, 84, 90, 90,218,193, 79,249, 73, 1,112,167, 76, 38,107,206,243,124, 75, 0, + 41, 54,155, 45, 22, 0,228,114,121,145, 76, 38,203,179, 90,173,199,205,102,243, 41, 0, 63, 56, 38, 36,244,136,129, 9, 19,154, + 17,155,126,100,181, 73, 28,164,105,154,211, 66,255,251,164, 19, 26,165,254,199,129, 9, 19,150, 7, 42,182,254,194,134, 70, 11, + 0, 95,227,242,130,210,143, 56,230, 1,186, 22,190, 4, 0,119, 1,104, 33,151,203, 83, 45, 22, 75, 41,128,253, 0, 54, 80, 74, + 79, 18, 66,146,163,163,163,151,136,162,104, 42, 43, 43,155,224,105, 25,161,172, 78, 77,246,113, 28,151, 8,135,140, 16,169, 61, +127,231,190,243, 65,121, 64,201,100,178, 57,119,223,125,247, 63,151, 47, 95,174,217,191,127,191,166, 85,171, 86,206,250, 73, 20, + 69,184, 27, 17,169,169, 62,215,254, 38, 0,120,142,227, 62, 24, 57,114,228,152,197,139, 23,107,206,158, 61,171,105,220,184,177, +147,211, 85,196, 73,104,220,184,113, 64, 97,141,138,138,250,239, 29,119,220, 49,118,209,162, 69,194,202,149, 43,213,141, 26, 53, + 66, 84, 84, 20,228,114,249, 21,199,118,235,214, 77,244, 67,199,113, 28, 55,103,232,208,161, 99,151, 46, 93,170,217,189,123,183, +166,117,235,214,144,201,100,215, 28,247, 97,195,134,141,249,234,171,175, 52,191,253,246,155,166,121,243,230,224, 56, 14, 28,199, + 93,193,199,113, 28,146,146,146, 2,226,188,235,174,187,198,124,253,245,215,154, 3, 7, 14,104, 90,182,108,233, 76, 79,151,110, +187,122,135,243, 58,231,188,113,133,150,195, 70, 93,220,173, 91,183,129,155, 55,111,150, 1,192,129, 3, 7, 80, 94, 94,142,132, +132, 4,232,116, 58, 40,149, 74, 24,141, 70, 90,207,202,230,191, 14,145, 37, 0,192,183,255, 24,134, 51, 2,240, 68,177, 25,114, +185, 28,191,255,254, 59,100, 50, 25,189,134,202,172,103,104,104,232,162,239,190,251, 46,162, 67,135, 14, 92,105,105, 41, 82, 83, + 83, 81, 94, 94,222,101,203,150, 45, 29, 39, 76,152, 48,129, 16,114, 63,165,116, 75,160,156, 63,254,248, 35,180, 90, 45, 52, 26, + 13,180, 90, 45,204,102, 51,185,234,132,230,249,196,188,188,188, 24,157, 78, 7, 81, 20,157,155, 91,255,182, 19,162, 40, 34, 61, + 61,221,226,167,130, 76, 60,123,246,108,140, 90,173, 6,165,180, 14,159,221,110,135, 82,169,116,109, 57,192,110,183, 35, 45, 45, +205,226,207,201,146, 68, 22, 0,124,249,229,151,136,139,139, 67, 76, 76, 12,180, 90, 45,212,106,117,157, 7,123,128, 21, 57, 6, + 14, 28,136,215, 95,127, 29, 57, 57, 57,120,225,133, 23,234, 84,180,130, 32, 32, 50, 50, 18,107,214,172, 65,104,104, 40,146,147, +147, 33, 8,194,223,223, 25,228, 72,228,206,125,231,156, 14,237,237,125, 50,248,174, 29,147, 63,116,220, 97,112, 28, 32,138,151, + 31,157,132,128,218,172,226,165,189,191, 22,188, 22, 64,122, 54, 62,123,246,108,140,235,204,234,190, 96,183,219,145,144,144, 32, +243, 83,126, 6,101,102,102,126,251,216, 99,143,201,155, 55,111, 78,228,114, 57,120,158, 7,207,243, 82,126, 76,166,148, 38,139, +162,216,171,168,168,136,206,155, 55,239,109, 66,200,221,148,210, 31, 61,230,119,106,104, 91,109, 18, 7,109, 61,136, 46, 35,251, +189,132, 53,203, 38,117,233,209, 94, 68,136,198,112, 26,192,117, 43,180, 8, 33, 45, 50, 51, 51, 15,238,222,189, 91,101,177, 88, +208,181,107,215, 93,132,144,142, 87, 51,131, 59, 33, 36, 2,192,123,147, 39, 79, 30,251,216, 99,143,201,194,195,195,161, 80, 40, + 80, 93, 93,141,211,167, 79,143,251,252,243,207, 41, 33,228,223, 0, 66,242,242,242,178,246,236,217,131,222,189,123, 63, 5,224, +153, 43, 21,129, 44,113,251,158,220, 24,233,247, 93, 3,219,200,179, 59, 39, 23, 93,110,144,185, 31, 77, 33,218,197,252,221, 7, +243, 59, 5, 16,198,183,135, 15, 31,126,223,242,229,203,117, 0, 48,127,254,124, 12, 31, 62, 28,145,145,145,208,104, 52,144,203, +229, 16, 4,161,206,167, 31,135, 72, 6,224,237,123,238,185,103,228,226,197,139, 67, 0, 96,241,226,197, 24, 54,108, 24,162,162, +162, 16, 18, 18, 2,133, 66, 1,153, 76, 86,239,123, 19, 21, 21,245,223,238, 93,186, 60,176,104,209, 34, 0,192, 43, 79, 63,141, + 59,110,189, 21, 58,141, 26, 26,181, 2, 82, 90, 40,100, 2,110,127,226, 73,127,241,230, 0,188, 59,124,248,240,209, 75,151, 46, + 13, 1,128,253,251,247,163,184,184, 24,177,177,177, 80,171,213, 80, 40, 20,206, 56, 19, 66,160, 86,171, 3,138,251,240,225,195, + 71,126,245,213, 87, 33, 0,176,112,225, 66, 12, 28, 56,208, 25,119,165, 82, 9,185, 92, 94,103,115, 23,157,158, 56,239,190,251, +238,145, 95,127,253,117, 8, 0,124,254,249,231,232,215,175, 31, 34, 34, 34,156,233, 41,113,213,231, 30, 93,207,156, 55,180,208, +146,198, 78,197,198,198,142,222,186,117, 43,231, 34, 18,160, 84, 42,161, 84, 42,161, 80, 40,156,221,135,245,168,112, 72,108,108, +236,248, 45, 91,182, 56, 79, 50,211, 43,172,235,122, 63,192, 93,248,251,245,238,221,251,171, 85,171, 86,169,228,114, 57, 12, 6, + 3, 14, 31, 62,140,176,176, 48, 40, 20, 10, 12, 29, 58, 84,214,173, 91,183,168, 94,189,122,125, 67, 8, 25, 19,200, 27, 13,148, + 82,232,116,186, 58, 66,235, 90,187,152,213,106, 53, 86,174, 92, 9,153, 76,230,177, 2,115,253, 30, 19, 19, 19, 72,188,161, 84, + 42,177, 99,199, 14,200,100, 50, 8,130, 0,158,231, 33, 8, 2, 86,175, 94,141,231,158,123, 14,165,165,165, 32,132, 64, 16, 4, +132,132,248,237,245, 36,145,145,145,225,146,200,146, 68,144, 90,173,134, 32, 8,132,231,121, 34,117,237, 17, 66, 72,160,125,238, + 28,199,225,139, 47,190,192, 91,111,189,133, 23, 95,124, 17, 11, 22, 44, 64,219,182,109, 93, 69, 40,170,170,170, 16, 17, 17,129, +136,136, 8,168, 84,170,171,206, 11,215, 19,220, 83,231,253,217,115, 53, 16, 41, 46, 15, 2, 17, 1, 17,160,160, 16,169,136,162, +130,211,152,250,250, 59, 1, 63,125,148, 74, 37,182,111,223,238, 20, 67, 60,207,131, 16, 2, 87,129, 36,109,113,113,113,126,249, +228,114,249,180,239,191,255, 94,241,197, 23, 95, 96,233,210,165,206,188,165,213,106, 17, 30, 30,142,168,168, 40,231,150,152,152, + 72, 62,253,244, 83,121,219,182,109,167, 1,248,209,243, 61,167, 97,154,166, 57, 45, 70,246,123, 9, 0, 48,242, 37,138, 75, 39, +103,180,227, 42, 94, 11,187,158, 69, 86,155, 54,109,182,237,216,177, 67,165,215,235, 33,138, 34,126,252,241, 71, 77,191,126,253, +182, 18, 66,122,212, 87,108,165,164,164,172,220,177, 99, 71,183,232,232,104, 84, 86, 86,162,170,170, 10, 86,171, 21, 50,153, 12, +201,201,201,120,251,237,183,201,208,161, 67, 39,142, 27, 55,206,168, 86,171, 37,103, 35,197, 91,125,228,138,121,255,250, 48,156, +210,203,249,135,138,180,206,103,121,113, 30,158,126,118,106, 64, 97, 76, 74, 74,122,228,155,111,190,209,185, 58, 75,174, 34,192, +181,142,146, 54,111,194,192,225,106,112, 77,154, 52,121, 96,201,146, 37, 78,206, 70,141, 26, 57,235, 37,158,231,193,113, 28,182, +110,221,138, 89,211, 38, 35, 34,186, 49,230,254,107,190,223,112,186,213,201,155, 0, 0, 32, 0, 73, 68, 65, 84,198,196,196, 44, + 24, 52,104,208, 63, 22, 46, 92,232,220,215,166,105, 83, 12,238,118, 43, 98, 26,133,162, 81,196,229,186,141,138, 4,191, 30,207, +245,251, 60, 2,192, 37, 37, 37, 77, 88,182,108,153,206,181, 65, 40,197, 21, 0,244,122,189,211,197, 55,155,205,232,212,169, 83, + 64,113,119,229,148,220, 54, 73,180,185,215,245, 82, 67,198, 23,103, 82, 82,210, 3,146, 16, 6,128,200,200,200, 58, 28,130, 32, + 96,217,154, 69, 87, 60, 27,174,149,179,190,247,221,157, 51, 47, 47, 15, 51,103,206,116,214, 73,146,171, 71, 8, 65, 66, 66, 2, +230,206,157,235,139,211, 19, 58, 3,136,118,249,109, 6,160,112,249, 44,193,229, 21, 38,220,143,147,246, 11, 0,218, 57,254,179, + 3,168, 6, 16,238,129,207, 27, 79, 41, 46, 47, 35, 20,237,118,188,251,117, 60, 11,173,213,171, 87, 83, 0, 88,185,114,101,239, +187,238,186,107,123,105,105,169,120,236,216, 49,110,255,254,253, 16, 4, 1, 49, 49, 49,232,220,185,179,212,173, 6, 65, 16,160, +213,106, 73,120,120,120,145,244,224,149, 18,209,181,175,221, 69,208,112,229,229,229,226,250,245,235,185,197,119, 15,128,153, 2, +237,167,204,194,192, 33, 67,176, 54, 65, 1, 25,128, 46,199, 74,161,209,104,120, 65, 16,172,210,205,144, 56, 93,199,110,185,139, + 36, 66, 72,136, 86,171,253,244,135, 31,126, 80,113, 28,135,234,234,106,136,162,136,110,221,186,129,227, 56, 28, 58,116, 8,175, +188,242, 10,190,253,246, 91,124,255,253,247,234, 14, 29, 58,124, 74, 8,105, 69, 41,173,118,169,196, 54,120,202,164, 33, 33, 33, +208,104, 52, 78,161, 37,197,217,213, 2,151,142,167,148, 22,148,150,150,118,244,197,105,183,219, 49,108,216, 48, 16, 66, 32,147, +201,234, 84, 62,174,159,114,185, 28,135, 14, 29,186, 34, 19,122, 18,136,162, 40,162,123,247,238, 0, 0,141, 70, 3,157, 78, 39, +173,251, 6, 0,104,223,190, 61,204,102, 51, 26, 53,106,132,163, 71,143,122,170,192,235,112,150,148,148,208, 11, 23, 46,144,197, +139, 23, 67, 16, 4, 68, 69, 69, 65,163,209,144, 69,139, 22, 77,150,203,229,137, 70,163, 81, 52,155,205, 80, 40, 20,115, 37,119, +139,231,249,218,202,202,202, 40,111,156, 50,153, 12,143, 61,246, 24,158,127,254,121, 44, 88,176, 0, 15, 63,252,240, 21,142,151, +209,104, 68,163, 70,141,156, 98, 43,144,184, 95,187, 16,106, 96, 78,145,226,240,129,181, 56,242,219, 6,136,118, 17,118,145,130, + 82, 59, 68, 27,176,127,253,174,244,139,103, 46, 36, 80, 80,192,209,193,161,172,172,177,245,106,164,108, 9, 96,197,166, 82,211, + 7,254,242, 39,207,243,176, 90,173,248,225,135, 31,112,250,244,105,172, 91,183, 14, 6,131,193,153,142, 89, 89, 89,120,224,129, + 7, 60, 10, 45,119, 78, 74,233,194,243,231,207,183,239,222,189, 59,169,168,168, 64, 69, 69, 5, 12, 6, 3,236,118, 59,108, 54, + 27,120,158,135, 74,165,130, 90,173, 70,108,108, 44,140, 70, 35, 53,153, 76, 11,189,113,138, 34,169,212,255, 62,233,196,154,101, +147,186,140,124,137, 98,249, 91, 4,205,154, 40,245, 63,237, 11,121, 96,197,182, 23,250, 3,160,162, 67, 59,112, 0,181,218,197, +210,231, 39,191, 55,241, 79,191, 71, 87,138,172, 40,131,193,128,234,234,203,213,131, 66,161,192,242,229,203, 27,221,121,231,157, + 91, 8, 33, 61,189,137, 45, 79,156, 33, 33, 33,201, 50,153, 12,135, 14, 29,194, 71, 31,125,132,159,126,250, 9, 69, 69, 69,151, + 26, 55,110, 28,214,171, 87, 47,238,233,167,159, 70,251,246,237,241,217,103,159,169,252,113, 82, 74,145,119,114, 43,242, 78,109, +131, 40, 82, 23, 87,220,243,119, 26, 96,220,107,107,107,141, 7, 15, 30,212,125,242,201, 39,136,137,137, 65,106,106, 42, 52, 26, + 13, 84, 42, 85,157,135,172,235,131,215, 95,217, 52, 24, 12,198,188,188, 60,221, 87, 95,125,133,168,168, 40,164,164,164, 64,163, +209, 64,161, 80, 56, 27, 4,139, 23, 47,198,151,175,223,135,188,227,191, 97,216,224,254,126,195,169,209,104,254,177,112,225,194, + 58, 22, 72,108, 68, 4,120,129,131, 76, 32,136,232,123, 55, 0,224,210,207,223,121,157, 29,210,141,147, 84, 87, 87, 27,119,239, +222,173,219,183,111, 31, 68, 81, 68, 74, 74, 10,244,122, 61, 66, 67, 67,157,241, 95,191,126, 61,134, 14, 29,138, 47,190,248, 2, + 89, 89, 89,126,227, 94, 83, 83, 99,252,237,183,223,116, 75,150, 44, 65,100,100, 36,146,146,146,156,113,151, 54, 65, 16, 32,147, +201,144,150,150,134,202,202, 74,232,116, 58,191,247,104,255,254,253,186, 37, 75,150, 32, 34, 34, 2,137,137,137, 78,199, 77, 18, + 71,111,125,248,122, 29, 14, 21,137,191,102,206,250,222,119,119,206, 97,195,134,161, 89,179,102, 8, 13, 13,133, 86,171,117,114, +251,226,148,180, 8,128, 94,131, 7, 15,222,236,118, 11,163, 9, 33,171, 92,174, 63,132, 16,178,202,245,211,219,113,142,175, 61, + 39, 79,158,220, 41, 39, 39,103,102, 86, 86,214, 87, 59,118,236,248,210, 27,159, 55,158,201,147, 39,103,230,228,228,204,116, 61, +222,195,117,188, 59, 90,131, 7, 15, 38,142, 72,242, 0,144,145,145,129,242,242,114, 40,149, 74,116,238,220, 25,165,165,165,208, +233,116,144,203,229,160,148, 98,226,196,137,178, 23, 94,120, 33,134,227, 56,216,108, 54,103,197,239,165,175, 93,228, 56, 14,217, +217,217, 56,236,232, 17, 26, 56,100, 8, 18, 19, 19, 33, 13,242, 80,169, 84,152, 56,113, 34,121,238,185,231,120,201,205,160,148, +194, 96, 48, 32, 62, 62, 94,237,163, 75,238,233,111,190,249, 38, 76,178,228,165,174, 51,153, 76,134, 99,199,142,225,221,119,223, +197,184,113,227,112,238,220, 57, 52,110,220, 24,207, 63,255,188, 46, 39, 39,231,105, 0,111,248,171,144,117, 58,157, 83,100,105, + 52, 26, 60,253,244,211,124,183,110,221, 98,116, 58, 29, 66, 66, 66, 32,117, 3,218,237,118, 52,109,218,212,175, 52, 23, 69, 17, +107,215,174, 5,207,243,126, 29, 45, 71, 6, 12,136,115,247,238,221, 78,145,230,218, 74, 34,132,224,240,225,195, 78, 81, 23, 0, + 39,229, 56, 14, 90,173, 22,113,113,113, 80,171,213,208,104, 52,228,171,175,190,122, 53, 53, 53, 53,254,185,231,158,227,170,170, +170,184,236,236,108, 12, 31, 62,156, 23, 69, 17, 22,139, 5,153,153,153,126,157,183,205,155, 55,227,163,143, 62,194,195, 15, 63, +236,209,209,146, 6, 75,134,134,254,229,239, 66, 4, 13, 34, 0,139,205, 10,125,141,193,217,181,107,183,219,241,219,166, 95,210, +207,252,114, 50,115,213, 87, 95, 8, 0, 96,220,244,157,235,105,241,195, 63,252,186, 69,175, 72,249,238, 77,229,150,221,254,156, +194, 39,159,124, 18,175,189,246, 26,238,185,231, 30,172, 95,191, 30,175,188,242, 10, 38, 76,152, 80,199,209, 10, 4, 86,171,245, + 63,247,223,127,255,195,203,151, 47,111,249,210, 75, 47,113,146,163,165,209,104,164, 49, 94, 48,153, 76, 48, 24, 12, 56,126,252, +184,248,208, 67, 15,157, 48,155,205,255,241,198,103, 35,234, 95, 53, 74,253,143, 77, 19,185,102,181,185,239,132,116,191, 53,197, + 64,212, 29, 43,239,110,209,143, 14, 26,159, 18, 1, 74, 65, 69, 64,164,128,201, 84,139,137, 19,159,146,253, 85,247,201, 85,100, + 25,141, 70, 28, 60,120, 16,189,123,247,198,249,243,231,113,244,232, 81,164,167,167, 99,209,162, 69,209, 99,198,140,241, 41,182, +220,241,219,111,191, 77,110,215,174,221,156,154,154,154,242,154,154,154, 57, 0,190,164,148, 86, 16, 66, 90,157, 62,125,122,222, +218,181,107,123, 76,157, 58, 85,230, 54, 70, 71,230,205, 30,181, 90,109, 48, 24, 76, 62, 5,150,244,155, 82, 49,208,184,211,150, + 45, 91,226,206, 59,239,132, 32, 8,206,198,154,107,183,153,187,224,242, 85,127, 0, 16, 9, 33,104,220,184, 49, 6, 13, 26, 4, +185, 92, 94,135, 83,122,176, 14, 26, 52, 8, 79,190, 49, 5,255,121,178, 15, 62,186, 63, 29,253,222, 44,242, 25, 78,189, 94, 95, +179,113,227, 70,245,243, 15, 63,140,118,205,155,163, 81,104, 40,154,196, 70, 67,173, 84, 64,238, 26, 38,226,223,100,167,148, 82, + 66,136, 40,147,201,208,186,117,107, 20, 21, 21, 33, 55, 55, 23,185,185,185,224, 56, 14,221,187,119,119,186, 48,167, 78,157,194, + 27,111,188, 1,147,201, 20,112,220,155, 55,111,142, 62,125,250, 64,161, 80, 64,163,209,212,233, 50,148,210,180,186,186, 26,205, +154, 53,195,138, 21, 43,208,162, 69, 11,191,156, 25, 25, 25,184,237,182,219,234,164,167, 90,173,118, 62, 55, 0,224,252,238, 26, +231, 53, 18, 18, 18,234,197,185,110,207, 57,124,178,126, 35, 76,102, 17, 85,122,107,157, 19,226, 27,133, 98,219,146,151, 2,138, +187,196,249,241,199, 31,163,162,162,194, 89, 7, 73,166,137,100, 82, 36, 37, 37, 97,254,124,207, 78,166,139, 22, 33, 94,238,223, +144, 0, 27, 84,210,113, 82,230, 82,230,228,228,204,116, 63,223, 31,159,235,255,110,231,155,221,196, 89, 81, 64, 93,135,210,243, + 65, 42, 12, 9, 9, 9,144,198,129, 72, 5,197, 89,145,218,108,248,246,219,111, 17, 19, 19,227,220,194,194,194,188,102,108,105, + 28,209,147, 37,151,135, 8,173,105, 44, 71, 30,128,193, 37,212, 57,142,196,110,183,227,155,111,190,129,171,144, 9, 9, 9,241, +217,141,164, 80, 40,122,117,238,220,153, 51,153, 76, 87,136,172,156,156, 28,140, 25, 51, 6, 45, 90,180,128, 40,138,168,169,169, + 65,239,222,189,133,185,115,231,246,170,143,208,210,104, 46,143,251, 55,155,205,216,180,105, 19, 34, 34, 34, 16, 21, 21,133,200, +200, 72,132,132,132, 72,111, 78, 82,127, 98,131, 82,138, 97,195,134, 57, 51,159,171,139,229, 46,186,118,236,216, 17, 80,151, 28, +165, 20,183,222,122, 43,180, 90, 45,116, 58, 29,116, 58, 29,214,174, 93,235, 60,166, 75,151, 46, 16, 69, 17, 49, 49, 49,216,185, +115,167,207,238, 79, 74, 41,149,203,229,206,227, 5, 65, 32,139, 22, 45,154,156,150,150, 22,255,236,179,207,114, 50,153, 12, 7, + 14, 28,192,145, 35, 71,144,146,146, 18,240,152,173,138,138,138,139,147, 39, 79,182, 79,158, 60, 25, 0,144,153,153,137,138,138, +138, 98,233,255,170,170,170,178, 1, 3, 6,212, 25,183, 81, 90, 90, 90,246,255,236, 93,119,120, 20, 85,251, 61,119,182,239, 38, +217,108,122, 33, 16,186, 8,136, 20, 65,248,232, 37,128,116,148, 46,136, 8, 40, 69, 84,252, 40, 34,242, 83, 64, 66, 47, 74, 85, +228,163, 40, 18,154, 32, 69, 32,210,155, 8, 8, 72,139, 68, 32, 36,164,215, 45,217, 58, 51,247,247, 71,118,227,102,179, 73, 54, + 33, 34,224,156,231,153,103,119,218,153,123,103,238,189,115,230,189,239,125,239, 83, 47,180,120, 30,172,149, 69,190,201, 4,189, + 46,191,208, 58,148,158,156,166,153,246,225, 7,146,197, 19,223, 4, 0,124,184,124, 37,116,235,254,106,200,118,127, 56, 36,184, +255,146,109,211, 1,244, 45,227,229, 3,179,217,140,200,200, 72, 92,184,112, 1, 58,157, 14, 93,186,116, 41, 98, 49,117,220,211, +178, 76,244,148, 82, 11, 33,164,117,175, 94,189,126, 93,182,108, 89,173,250,245,235, 19,131,193,128,252,252,124, 56,255, 94,187, +118,141,110,221,186,245,110,126,126,254,127, 40,165,150,146,248, 14, 61,252, 38,190, 91,149,183,118,252,124, 89,212, 43,184,118, +156,250, 97, 78, 45, 54,235,161,220,160, 53,222, 54,113,244, 6, 40, 7,112,224, 65, 89, 30,156,189,219,235,159,130, 82,169,252, +242,244,233,211, 1, 38,147, 9,151, 46, 93,194,240,225,195, 45,153,153,153, 50, 0,120,253,245,215, 45, 91,182,108,145,213,174, + 93, 27,155, 55,111, 14,122,245,213, 87,183, 3,120,193,195,134,254, 91, 0,223,186,110, 15, 8, 8,248,226,193,131, 7, 29,156, +125,126, 28, 31,171, 0,220,126, 84, 82, 30,176,217,108, 48, 26,205,200,203,211,193, 98,181,217,219, 76, 30, 28,199,218,127,121, +176,246,118, 84, 38, 21,251, 52,107, 20,166,167,148,130, 33, 36,247,226,181,148,170, 37,181, 75, 37,117,113,121, 98,205,114, 3, +206, 49,202, 44, 32, 32, 0, 18,137, 4,223,126,251, 45,174,158, 57, 4,153,136,130, 99,109, 96,109, 86,112, 54, 11, 36, 34, 17, +126,190,124, 15, 81,207,151, 61,144,155, 16, 66, 3, 3, 3,209,179, 85, 43,244,106,213,170, 96,120,155, 88, 12,111,185, 28, 42, +169,162,192,146, 5,128,114, 12,224, 89, 81,226, 29,233, 12, 9, 9,193,197,139, 23, 49,105,210, 36, 44, 88,176, 0, 74,165,178, +112,244,243,173, 91,183, 16, 19, 19,131,168,168,168,114,231,221, 97,193,155, 62,125, 58,146,147,147,177,124,249,114, 52,107,214, + 12, 18,137, 4,185,185,185,248,207,127,254,131,180,180, 52,143, 56,157,187,247,100, 50, 89, 17,235,147, 67, 0,150,247, 25, 57, +115,190,217, 47, 12,123,207,108, 5, 1,193,249,239, 62, 40,242, 46, 90,179,237, 84,185, 57,103,205,154, 85, 36,157,158, 88,179, +202,241, 97,180,207, 19,177,229,116,220, 37,135,177,117,250,244,233, 51, 8, 33,251,166, 79,159, 62, 35, 58, 58,250,186, 39,124, + 37,236,223,239,208,133, 78,219, 46,121, 44,180, 40,165, 84, 38,147,129,231,249, 34,226,202,213,241,214, 97, 10,116, 54, 53,150, + 37, 10,120,158, 47, 44, 20,174,159,109, 34,145, 8,231,206,157,195,185,115,231,138,108, 95,191,126,125,169, 47,114,150,101,235, +251,248,248, 20,177,102, 73,165, 82, 76,159, 62, 29,195,135, 15, 47, 20, 89, 82,169, 20, 27, 55,110,196, 75, 47,189, 4,139,197, + 82,191, 12,127,149,252,208,208, 80,198,209, 16,121,121,121,145, 73,147, 38,137, 88,150, 45,188, 39,142,197,225,187, 86, 86,161, +113,140, 98, 57,124,248,176, 71, 22, 45, 79,125,148, 40,165,184,114,229, 74, 17,241,230, 24, 53, 3, 0, 87,174, 92, 41,244,223, +242,132, 83, 36, 18,129,227, 56, 40,149, 74, 34,149, 74,137, 84, 42,141,112,136, 44,145, 72, 84,248,188,157,125,246,202,202,251, +195,135, 15, 59,150,182, 63, 61, 61,253,153, 13,227, 96,181,217, 96,204,183, 64,167, 55,226,179,232,255, 21,108,252, 12,191, 0, +248,165,245, 59,147, 48,190, 91, 84, 39, 23, 63, 0, 79, 26,154,194,151,227,206,157, 59, 33,145, 72,176,103,207, 30,168,213,106, +244,233,211, 7,106,181, 26,211,166, 77,195,224,193,131, 61,182,104,217,203, 82, 30, 33,164,245,251,239,191,255,235,162, 69,139, +170, 85,173, 90, 21, 22,139, 5, 86,171, 21, 22,139, 5,241,241,241,216,186,117,107, 98,126,126,126,107, 74,105, 94, 89,124,135, + 30,126, 19,191,235,228,135,201, 93, 6,191,106,188,149,246, 19, 82, 83,179,192,178, 15,193,115, 44,172,108,193, 8,102,142,101, +193,178, 28,164, 82,145,122,209,231, 31, 28,225, 65,193, 48,196, 50, 96,192,128, 87, 30,215, 51,210,104, 52, 13, 51, 50, 50,240, +199, 31,127,224,141, 55,222, 72,205,202,202,186, 9,160, 51, 0,100,101,101,157, 30, 62,124,120,253, 77,155, 54,133,214,168, 81, + 3,222,222,222,106, 15,158,143, 55,128,241, 0,186,218,253, 64, 28,200, 6, 48, 39, 40, 40, 72,126,233,210,165, 98,214,255,147, + 39, 79, 2,192, 47,238, 77, 6,118,139,150,201,132,140,172, 28,140,126,103,102,161, 41, 1,160, 69,196, 5, 5,197,184,119,161, + 0,128,204,180,120,188, 57,122,146,188,172, 15, 2,119, 47,194,114,248,232, 56, 91,138, 10,203,168,183,183,119, 65,247,219,158, +173,216,191,228, 29,128,179,130,218,140,128, 53, 31,176,234,193, 91,242, 65,164, 74,192,102,244, 72,104,121,123,123,195, 91,169, + 68,176, 70, 83, 16, 4, 82, 36,130, 68, 34, 6,111, 3, 8, 71, 10, 5, 41,207,121, 84,214,105, 96, 96, 32,120,158,135, 82,169, +196,253,251,247, 49,126,252,120, 88,173, 86,244,235,215, 15, 22,139, 5, 38,147, 9, 70,163, 17, 53,107,214, 68,126,126,190, 71, +121,119,180,243,142,222,159, 15, 62,248, 0, 47,189,244, 18,102,207,158,141,169, 83,167,162,102,205,154, 24, 55,110, 28,182,110, +221,138,134, 13, 27,150,202,235,124, 63, 29,156,142,231,226,218,197, 7,160,220,207,200,149,179, 96,124, 0,138, 61,247,247, 70, +116, 46, 55,231,252,249,243,145,145,145, 81,204,146,229,248, 95,165, 74, 21,172, 94,189,186,162, 93,255, 14,235, 81,136, 59,131, +152, 27, 75, 84,115, 20,248, 78,153,163,163,163,175, 71, 71, 71,247, 34,132,236,139,142,142,238, 85,138, 69,171,103, 25, 22,175, +158, 40,240,201,242, 8, 98,151,190,209, 14,206,150, 18,199,139,212,241, 66,119,110,228, 85, 42, 21,118,237,218, 5,199, 8, 16, +231, 99, 74, 19, 90, 7,130,236,166, 99,187, 37,203,121,189,119,239,222,168, 81,163, 70, 17,107,150, 82,169, 44,181,240,240, 60, +143,132,132, 4, 92,191,126, 29, 45, 91,182, 68, 94, 94, 30, 36, 12,131, 15,175, 93, 67,131, 17, 35, 96,177, 91,104,100, 50, 25, +222,126,251,109,143, 28,218,239,221,187,231,231,188, 30, 24, 24,152,212,182,109,219, 42, 23, 46, 92, 40,116,144,183,119,171, 21, + 10, 14, 79, 68, 12,165, 20,175,189,246, 90, 17, 43,150,179,200,114, 94,126,250,233, 39,143,186, 14, 41,165,104,219,182,109,161, + 53,203,199,199, 7, 63,252,240, 67,225,179,106,215,174, 93,129, 63, 67, 72,136, 71,156,142,124,216, 29,224, 97, 50,153,120,157, + 78,199, 92,186,116, 9, 50,153,172,208,130,167, 84, 42,161, 80, 40, 32,151,203, 43, 52,130,232,223, 0, 74,121, 88,108, 54, 24, +141, 70,232,245, 5,145, 69,226,127,223, 89, 84,136,153,181, 21,230,119, 88,173,116, 58, 29,126,254,249,103,236,222,189, 27,205, +154, 53, 43,230, 12,239,137, 69,203,169, 60,101, 16, 66,218, 76,153, 50,229,252,220,185,115,195,253,253,253, 97,181, 90,241,224, +193, 3,108,216,176, 33, 57, 63, 63,191, 13,165, 52,195,243,155, 0,216,108, 44, 76,249,102,228,105,117,248,244,243,141, 37, 22, + 61, 0,200, 78,191,141,222,125, 6,202, 30,231,115, 74, 78, 78,158,220,166, 77,155,207,117, 58, 93,110,126,126,254, 64, 0,139, +157, 13,135, 89, 89, 89,109,251,244,233,179,204,223,223,191, 89,122,122,250, 12, 15, 40,167,223,191,127,127, 70,100,100,100,145, +141,118,235,227,115,233,233,233,195,218,181,107,247, 9, 0,127,167,221, 62, 0, 14, 3, 88, 93, 82, 89,114,116, 29,234,245, 70, +168, 53, 97,120,120,239, 68,153, 9,145,138, 76,160, 60, 95,230, 7,160, 59, 43,150,115,251, 84,142,242, 67, 29, 62,129,142, 23, +246, 43,175,141,192, 43,227,231, 67, 37, 1,230,189,217, 26, 53, 53, 0,148,254,144,182,155, 6,162,177,223,163,241, 63,122,196, + 63,117,237, 90, 92,254,163, 32, 50, 76, 68, 80, 16,166, 12, 30, 12,106, 3,206,222,184,129,109,199,142, 97,112,199,142, 80, 41, + 20, 30,127,176, 56, 62,194,227,227,227,113,246,236, 89, 60,255,252,243,184,115,231, 78,145, 48, 20,148, 82,143,242, 79, 41,165, +142, 65, 76,114,185, 28, 18,137, 4,169,169,169,232,213,171, 87,225,135,254,137, 19, 39, 48,101,202, 20,140, 26, 53, 10, 29, 58, +116,112,235, 55,235,202, 25, 20, 20, 84,104, 64,112, 29,168,224,220,157, 91,158,103,228,142,211,129,138, 62,119,103,206,185,115, +231,186, 29, 80,225, 9,167,179, 22, 41, 5,151, 92,172, 73,112,248, 75, 57,132,145,235, 58, 0, 63,199,182,233,211,167,207,240, +244, 60,231,117,135, 69,172, 60, 93,152,133, 66,171,103,207,158,196,221,203,214, 97, 70,118, 7, 47, 47, 47, 76,152, 48, 1,179, +102,205, 66, 96, 96, 96,153,190, 53, 14, 37, 91, 26,126,252,177,120,101,219,179,103, 79, 89, 93,135,183,124,125,125, 95,234,216, +177, 35,242,242,242,144,152,152, 8, 47, 47, 47, 52, 88,178, 4,215,198,143, 71,227,181,107,193,116,234, 84, 24,108,245,218,181, +107, 80, 42,149,183,202,107, 65,240,241,241,129,159,159, 95, 97,159,187, 67,112, 57, 89,180,168, 7,133, 17, 7, 14, 28,112,251, +213, 88, 17, 31, 45, 71, 35,112,254,252,249, 34,254, 89,206,194,231,252,249,243,133, 22, 45,199,105,158,116,121, 41,149, 74,234, +224, 83,169, 84,240,247,247,135, 92, 46,135, 82,169, 44, 34,178, 60,177,230,149, 21,144, 84,169, 84, 94,240,242,242,210, 56,246, + 75, 36, 18,232,116,186,220,172,172,172, 22, 79,117,215, 33, 40, 88, 43, 11,163,209, 4,189,206, 88,233,252,142,129, 41,187,118, +237,194,203, 47,191, 92, 76,100, 57,238,117, 5,190, 24,147, 8, 33, 29, 86,172, 88,241,203,210,165, 75,253,244,122, 61,254,247, +191,255,229,233,245,250, 14,148,210,164,114,113,241, 20, 54,171, 21,249, 38, 51, 12,250,130,123,240,231,245,157, 79,152, 32,166, + 91, 1,108,117,181, 24, 58,237,255, 19, 64,175,114, 80,190, 28, 25, 25,137,212,212,212, 34, 27, 19, 18, 18,192,113,156,217, 30, + 39,235, 45,167,235,137, 40,165, 92, 89,109,135,213,222,117,168,215, 23, 88, 65, 76,134,204,202, 41,167,118,177, 81,146, 79, 86, + 69,186,120, 28, 35,157, 69, 34, 17, 38, 78,156,136,107, 87,175,162,115,184, 22, 53, 67,125, 64,181, 15, 33,237,244,127,184,146, +161,196,226,101, 7,202,205, 29,227, 52,216,103,113, 76,140,219,125,127,246,237, 91,174,188,199,197,197, 65,169, 84,130,227,184, + 98,239,155,242,230,223, 89,192, 44, 91,182, 12, 83,166, 76,193,198,141, 27,113,237,218, 53, 52,110,220, 24, 93,186,116, 65,122, +122, 58,174, 94,189, 10,179,217,236,113, 58,157,253,230,226,238,222, 64,236,217,131, 72, 72,186,135,228,212,196, 10, 63,119,103, + 78, 87,161,181, 43,246, 55,188, 22,213,180, 66,156,159,126,250, 41,210,211,211,139, 88,178,156, 7,144,149,100,209,114,213, 34, + 46,200,116,241,133,114,172, 91, 92, 68,143,235,186,235,241, 0,144, 14, 64, 84,198,121,174,235,153,209,209,209,199, 29,150, 48, + 59,175,168, 44,255, 44,183, 93,135, 14, 81,228,168, 40,174,150, 42,199,127, 47, 47, 47,248,248,248,192,199,199, 7,106,181,186, + 76, 75,145, 67,104,181,189,171, 43,226,235,229,176,108, 1,192,168, 81,163,138, 89,180,156, 3,123,186,131,217,108, 62,113,226, +196,137, 38,189,123,247, 22,221,186,117, 11, 34,145, 8, 60,207,195,210,170, 21, 26,175, 93,139,223, 63,248, 0,237,239,223,135, +201,106,133, 66,161,192,161, 67,135,172,249,249,249, 39,202,219,110, 56, 11, 45, 47, 47, 47,248,250,250, 22, 10, 13, 79, 84,186, +163,242,150,230,255,224, 88,156, 7, 3,120, 82,169, 29, 47, 84,103,191, 28, 66, 8,140, 70, 99,161, 83,167, 39, 86, 71,231,174, + 67,231, 10,200, 48, 12, 52, 26, 77, 97,227,225,176,104,121,106,205, 43, 43, 32,169, 74,165, 82,223,190,125,187,182, 35,252, 68, +102,102, 38, 58,117,234,244,199, 83,111,210,226, 1, 43,203, 65,111, 52, 65,111,204,175, 52, 90, 71, 89,251,246,219,111, 17, 31, + 31, 15,171,213,138,232,232,232, 98, 2,171, 60,206,240,110,202, 85,124,211,166, 77,249,238,221,187,227,252,249,243,144,203,229, + 54, 74,105,185,227, 95,241,148,135,149,101, 97, 50, 26,161, 55, 24,254, 45,198,204, 66, 85,125,243,230, 77, 88, 44, 22,204,158, + 61,155,251,245,215, 95,143, 3,120,199,254, 12, 25, 0,195,218,183,111, 63,167,103,207,158, 26, 66,200,123,148,210,141,165,213, +115, 27,107, 23,237,149,120, 31, 29,101,169,164, 54,169, 34, 97, 86,156, 95,172, 60,207, 99,236,152, 49,232, 18,174, 69,255,102, + 65, 48,164,252, 1,149,111, 16,136,166, 58, 22, 47, 59,128,235,119, 61,118,197,164, 0,208,189,125, 95,188,248,124,241,240, 96, +109, 58, 23,124,147,157,254,249, 2,210, 50,147,203,157,119,131,193, 80,162,229,202, 83,139,150,131,211, 17,102, 69, 34,145,160, + 73,147, 38,168, 91,183, 46,142, 31, 63,142,166, 77,155,226,206,157, 59,184,115,231, 14,238,223,191,143,107,215,174, 33, 39, 39, +167,220,207,232,135,195,219,144,163,203,134, 76, 42, 67,118,110, 38, 18, 30,222, 67, 72, 64,232, 35, 63,119, 7,234,245,252, 20, + 0, 16, 30,228, 91, 46,161,229,204,185,112,225,194, 98,226,189, 18, 66,246, 92, 40, 99,189,188,231, 63, 54,136, 75,176, 18, 25, +253,253,253,149,206,253,171, 12,195,192,215,215,151, 44, 88,176, 64,196, 48, 12,124,124,124,224,235,235, 11,135,185,176, 44,200, +100, 50, 99,245,234,213,149,142,130,232,168,136,106,181, 90,180, 96,193, 2,178,126,253,250, 18,173, 92,101,248,104, 45, 29, 62, +124,248, 91, 73, 73, 73,126,193,193,193, 72, 73, 73,129, 76, 38, 43,168, 28, 29, 59,162,237,221,187,176, 22,248, 28, 33, 46, 46, + 14, 95,125,245,149,193,108, 54, 47, 45,239,141,242,246,246, 70, 64, 64, 64, 97,151,161,195,162,227, 36, 26, 61,114,193, 44,205, + 68,239,248, 2,172, 72, 23,146,171,216,122,231,157,119,138,136, 46, 79, 33,149, 74, 89, 71,228,119,134, 97, 96,181, 90,209,180, +105, 83,164,167,167, 23, 86, 26,103, 75,158, 39, 66,171,172,128,164, 98,177, 24, 22,139, 5,237,218,181, 3, 33, 4, 43, 87,174, +124, 54,186, 35,121,158,120,123, 7, 32, 60,252, 57, 4, 5,155,192,243,149, 55,171, 12,203,178, 24, 55,110, 92, 17, 11,150, 99, +100,163,163,235,159, 82, 10,155,205, 86,225,224,175,142,122,253, 40,241,227, 40, 80,216,229,101, 48,152,158,186, 71, 24, 28, 28, +220,146, 16,178,199,101,115, 54,128, 57,238, 34,184,219, 81,248,160, 19, 19, 19,209,173, 91, 55, 28, 60,120, 80,180,123,247,238, +206,123,247,238,189, 81,187,118,237,196, 65,131, 6, 85,125,251,237,183,229,237,218,181, 67,102,102, 38,154, 53,107,246, 25,128, + 82,132,150,253, 62,154,204, 48, 24, 42,223, 58, 90,218, 7,223,163, 8,184, 89,179, 62, 65,151,176, 92,244,107,236,139, 77,251, +206, 96, 88, 19, 37, 96,145,151,155,207,145, 22,255,240, 26,168,222,176,101,177,253,114,117, 65,151, 93,245,134, 45,193, 36,222, + 41,119,222,157,211,236,218, 94, 86,196,162,231,124, 63, 71,143, 30,141,105,211,166,161,107,215,174,184,115,231, 14, 78,158, 60, +137, 59,119,238, 96,210,164, 73,104,216,176, 33, 26, 55,110, 92, 46,206,189,177, 59,160,213,231,129, 33, 12,178,243,178, 96, 50, + 27, 49,117,220,172, 71,126,238, 14,220,139,141, 6, 0,236, 60,114,185,194,156, 31,127,252, 49, 82, 83, 83,139, 88,178, 30,197, + 47,235,105,135, 91,161,149,149,149,229,182, 31, 48, 40, 40, 40, 45, 42, 42, 42, 56, 37, 37, 5,222,222,222,101,138, 44, 66, 72, + 23, 71,172,141,212,212, 84,183,156, 62, 62, 62,214,168,168, 40, 73, 88, 88, 88,145,209,134, 94, 94, 94,197, 42,153, 43,167,253, + 37,160, 35,132,140,109,221,186,245,166,159,126,250, 73, 85,183,110, 93,104,181, 90, 80, 74,177,113,227, 70, 76,156, 56, 17, 10, +133, 2,113,113,113,232,211,167, 79,126,126,126,254, 88,231, 24, 90,238, 56, 75,250, 66,115, 68,197,119, 35,178, 74,205,187,115, +101, 93,177, 98, 5,230,205,155,135, 25, 51, 74,119,245, 88,183,110, 29,224,210,205,231,142,147, 82,138,197,139, 23, 87, 26,103, + 86, 86,214, 70, 23,107,212,202,254,253,251,139, 19, 19, 19,139,136, 43,231,197, 77,195, 84,132,179,172,128,164, 34,145, 8, 33, + 33, 33,152, 59,119, 46, 2, 2, 2, 16, 26, 26, 90,204, 18, 83,214, 51,170,224,203,224,111,229,228, 40,127,105,209,252, 79,218, +252,111,203, 94,137, 92, 6,156, 59,185, 19,218,156,162,221, 73,102,235, 95, 67,169,101, 77, 59,195,114,249,103,143,210,105, 54, +155,177,112,225, 66,124,250,233,167,248,244,211, 79, 61,121,238,143,148,119, 79,196,150, 91, 78,158, 18,149,151, 31, 20, 94,225, +104,208,208, 15, 60,101,159,168,103, 84, 2,126,189,112,225, 66,159,128,128, 0, 36, 37, 37, 5, 73, 36,146, 62, 69,204, 85, 70, + 35,170, 87,175,254, 28,128,255,148,197, 57,105,210, 36,243,204,153, 51,229, 67,134, 12, 65,255,254,253, 49,100,200, 16,185, 84, + 42,173, 67, 41,133,213,106, 69, 82, 82, 18,126,254,249,103,100,100,100,220, 42, 45,157, 60,165, 68,169,210, 64,225, 21,134, 6, + 47,104,192,243,108,165,228,221,241, 18,116,181,102,149, 51, 32,181,219,182, 14, 0,126,253,121, 15,102,125,240, 2, 54,238,255, + 5, 95, 92, 0, 94,212,164,163, 65, 80, 6,248,140, 91,248,239,176,151,176,248,187,139, 0,128,147, 39,202,124, 70,165,198, 71, + 54, 25,173,143,148,119,103,203,149,243,117,202,242,209,114,199,233,248, 72,212,233,116,200,205,205,197,166, 77,155,240,230,155, +111, 34, 61, 61, 29,247,239,223,199, 31,127,252,129,239,191,255,190,112, 52,123,121,159,209,135, 99, 62,198,204,197,147, 65, 65, + 81,175,118, 3, 76, 31,255, 41,154,191,216,234,145,159,187, 43,202,178,102,149,198,185,124,249,242, 10,149,165,127,149,208, 42, +237,171,130, 97, 24, 4, 6, 6, 22, 22, 18,231, 2, 88,145, 47, 95,145, 72, 4,150,101, 11,125,127, 28, 11, 0,244,238,221, 27, + 63,254,248,163, 39, 35, 41,126, 34,132,188, 94,191,126,253, 13,159,125,246,153,119,251,246,237,197,225,225,225,104,222,188, 57, +226,226,226,176,127,255,126,219,234,213,171, 13,249,249,249,163, 40,165, 71, 42,210, 62, 57,166,180,113, 94,202,243,213, 99,181, + 90, 19,239,220,185, 19,182,120,241, 98, 17,195, 48, 88,190,124,121, 97,165,116, 4,124,117,198,201,147, 39, 89,158,231, 75,237, +170,177,217,108,137,119,238,220, 9, 91,178,100,137,136, 16, 82,200,201, 48, 12,156, 39,112, 46, 15,167, 59,145,233, 24, 24,225, +110,113,151,118,119,207,184,180,128,164, 98,177, 24,113,113,113,152, 53,107, 22, 8, 33,216,185,115,231, 51, 81,185,174,221,202, + 92,223,184, 65,176, 95,239, 87,218, 52, 2, 33,176, 90,138, 71, 67,240,206,209, 23,138,172,254, 75,182, 97,247,135,131, 61, 17, + 61,241,167, 79,159,246, 95,184,112,161, 88, 36, 18, 97,217,178,101, 69,130, 6,187, 62,247, 83,167, 78,177, 21,233,246,115,212, +103,171,213, 10,163,177, 98, 86, 20, 74,233,217,232,207,103, 70,109,254,246,128,132, 16, 11,206,157,216,137,188, 92,247,238, 12, + 50,137, 24,235, 55,237, 98,165, 18, 81,226, 63,252,232, 86,245,235,215,111,200,151, 95,126,217,192,221,206,196,196, 68,240, 60, + 95,154,115,205,125,147,201,132,135, 15, 31, 34, 63, 63,127,199, 71, 31,125,100, 61,112,224,192, 91,175,190,250, 42, 26, 55,110, +140,176,176, 48,164,164,164, 32, 62, 62, 30,155, 54,109,162,103,206,156,217, 1, 96, 66, 25,247,113,207,252,207,103,190,177,233, +187, 3, 50,134, 88,113,238,228, 78,228,185,136,246,226,214,105, 9,190,217,184,203, 42,149, 74,110,151,213,174, 59, 91,179, 42, +243,197,216,103,248,120,244, 95,241, 5,106, 53,239,134,249, 11,186,224,155,207, 7, 98,105,119, 41,172,219,135,225,197, 1,155, +177,117,118, 15, 0, 64,248, 55, 30, 90, 75,196, 82, 60,112, 99,177,202,205, 83,216,197, 77,249,172,166,142,188,151,214,134,151, +215,162,197, 48, 12,106,212,168,129, 90,181,106,161,117,235,214,104,218,180, 41, 58,118,236,136,171, 87,175,226,234,213,171,152, + 52,105, 82,137, 34,203,147,103,212,225, 63, 81,248,165,237,237, 71,126, 54,174,207,189, 50,224, 73, 89, 26, 63,126, 60, 0,252, +171,172, 91,226,138,220, 68, 71,193,124,212, 41,105, 28,156, 22,139,165,176, 75,206, 57, 46,147,195, 57,222,195, 17,125, 71, 8, + 33, 13, 63,249,228,147, 15, 20, 10, 69,199,252,252,252,231,236, 22,153, 56,179,217,124,204,104, 52, 46,163,148,230, 62, 74, 90, +157,195, 57,184, 75, 66,105,231,230,228,228,116,235,214,173,219, 17,177, 88, 92,195,117,194, 95,119, 21,153,231,249,251,105,105, +105,165, 14,113,207,202,202,234,214,181,107, 87,183,156,238, 26, 8, 79, 56,221, 61, 31,158,231, 75, 20, 89,158, 52, 68,101, 5, + 36, 21,139,197,240,242,242,194, 15, 63,252,128,192,192,192,103,170,130, 93,185,145,190,176,180,253, 29, 2,229, 39, 0, 4,245, + 95,178,237,193,241, 76, 75,100,135, 64, 89,194,238, 15, 7, 87, 43,237,156,204,204,204,174,111,190,249,230, 65,177, 88, 92,195, +245,254,187,123, 22, 44,203,222, 75, 77, 77, 45,119,184, 4, 74, 41,110,223,190,205,143, 30, 61, 58, 51, 35, 35, 99, 96, 69,242, + 63,125,214, 23, 75,231,125, 54, 49,160,123, 84,203,230, 96, 0, 75,201,206,191,148, 0, 84, 44, 17, 37, 78,153,177,124,204, 63, +249,204, 40,165, 90, 66, 72,235,215, 94,123,109, 2, 10,134,134, 23, 19, 82, 0, 86,148, 66,177,162,106,213,170, 47,136, 68, 34, + 57,128, 89,148,210, 4, 66,200,170, 51,103,206,116, 5,240,178, 72, 36, 10,227, 56,238, 33, 10,230,124,220, 70, 41,189, 82,118, + 57, 74,123,187,113,253,160,136,238, 93, 94,238, 6, 66,168,197, 98, 46,227, 3, 9, 20,148, 82,169, 84,114,251,194,149,228, 23, +203,178,214,219,103,224,168,244, 46,251, 9, 19, 38, 96,194,132, 9,133,229,105,229,202,182,216,241,251,105, 12,120, 49, 9,230, +175,218,128,168,171,121,252,193, 7, 0, 31,127, 50,186, 50, 45,155, 69, 6,105, 85,150,143,150, 72, 36, 66,102,102, 38,226,226, +226,144,150,150,134,252,252,124,220,188,121, 19, 86,171, 21, 57, 57, 57,120,225,133, 23, 42,156,206,202,122, 70,255, 36,231,191, +177,251,176, 92, 66,139,101,217,164,178,102, 89,183,217,108,229, 26,149, 36,145, 72, 76,117,235,214, 37,238, 70, 39, 56,254,123, +121,121, 25, 61,108, 32,115, 1,204, 2, 48,203, 62,159, 21,178,179,179, 31, 89, 13,114, 28,151, 28, 25, 25, 41, 42, 73,192,216, +239, 77, 90, 25,105, 51, 0,104, 85,201, 47,132, 74,231,116,243,124, 12,207, 63,255,124,161,175,151,107, 76, 20,251,100,171,165, +122,231,150, 21,144,212, 96, 48,164,116,235,214,141,115,222,239, 28,208,244,153, 6,161, 9, 61,134,188, 21,121, 60,211, 18, 9, + 0, 14,177,133,146,253,127, 64, 41, 53, 2,104,255,119, 39,237,238,221,187,150,151, 95,126,249, 91,157, 78, 55,158, 82, 90, 97, +111,254, 25,255,183,114,198,211,246, 88, 40,165, 90, 0,243, 42,120,110, 2,128, 78, 46,219,174, 0,184,242, 40,105,186,114, 51, +163,210, 99,139,177, 44,155, 84,171, 86,173,114, 89,110,202,106,227,109, 54, 91,169,239,137,235,240,197,140,243, 64,193, 52,113, + 89, 30,113,154, 76,166,236, 86,173, 90, 73,202,153,183,116, 79,243, 30, 22, 22,134,240,240,240,194, 95, 7, 92,183,151,149, 78, +150,101,147, 34, 34, 34, 16, 24, 24, 88, 98,196,119, 87,159, 44, 79, 56, 43,251, 25,149,198, 25, 30,190,185,210, 57, 43, 75, 47, +252, 43,132,150, 99, 14,195,202, 68, 90, 90,218,223, 50,231, 10,173, 12,115,219, 95,150,163,230,248,151, 34, 43, 43, 43,224, 81, + 57,202, 10, 72,154,150,150,214,241,223,122,127,143,103, 88, 70, 22,219,102, 23, 93,255, 52, 12, 6, 67,181,178,194, 14,148,132, + 1, 3, 6,112, 16,240,196, 35, 51, 51,179,210,219,244,191,227, 61,145,157,157,221,232,223,154,247,191, 35,157, 79, 11,231,179, + 2,193, 75, 77,128, 0, 1, 37,125,172, 8, 98, 73,128, 0, 1, 2, 30, 17, 4, 64,151, 18, 26, 89,143, 71,250, 16, 66,186, 84, +160, 17,143, 21, 56, 5, 78,129, 83,224, 20, 56, 5, 78,129,243,223,197, 89, 22,119,101,143, 52,126, 18,190, 90,255,182, 5, 64, + 23,129, 83,224, 20, 56, 5, 78,129, 83,224, 20, 56, 5,206,127,235, 34,116, 29, 10, 16, 32, 64,128, 0, 1, 2, 4,252, 77, 16, +132,150, 0, 1, 2, 4, 8, 16, 32, 64,128, 32,180, 4, 8, 16, 32, 64,128, 0, 1, 2, 4,161, 37, 64,128, 0, 1, 2, 4, 8, + 16, 32, 64, 16, 90, 2, 4, 8, 16, 32, 64,128, 0, 1,127, 31, 72, 37,198,245, 20, 32, 64,128, 0, 1, 2, 4, 8, 16,224, 4, + 49, 0,236,223,191,191, 80,109,245,236,217,147, 8,183, 69,128, 0, 1, 2, 4, 8, 16,240, 56,241,172,106, 17,177, 32,176, 4, + 8, 16, 32, 64,128, 0, 1, 79, 2,158, 69, 45,194,184, 83,146, 2, 4, 8, 16, 32, 64,128, 0, 1,143, 27,207,162, 22, 97,158, +101, 21, 41, 64,128, 0, 1, 2, 4, 8,120,122,240,204, 91,180, 4,171,150, 0, 1, 2, 4, 8, 16, 32,224,159,194,211,170, 69, + 8, 33,148, 16, 66,157,215, 11,255, 11,163, 14, 5, 8, 16, 32, 64,128, 0, 1, 2, 42, 38,176, 40,165,164,164, 95, 64,136,163, + 37, 64,128, 0, 1, 2, 4, 8, 16, 80, 33, 56,196,148,243,186,179, 53,235,111, 23, 90,132,144, 46, 2,167,192, 41,112, 10,156, + 2,167,192, 41,112, 10,156,255, 22,193, 69, 41, 37,206,235, 98,225,246, 8, 16, 32, 64,128, 0, 1, 2, 4, 60,178,248,164,238, +132,151, 32,180, 4, 8, 16, 32, 64,128, 0, 1, 2, 30, 81,100, 57,139, 43,193, 71, 75,128, 0, 1, 2, 4, 8, 16, 32,224, 49, + 64,176,104, 9, 16, 32, 64,128, 0, 1, 2, 4, 60, 2, 92,157,224,133,174, 67, 1, 2, 4, 8, 16, 32, 64,128,128, 74, 22, 91, +238,182, 19, 0, 93, 74, 56, 33,214, 83,242,138,140, 62, 40,139, 95,224, 20, 56, 5, 78,129, 83,224, 20, 56, 5,206,103,143,179, + 44,238,242,232,143, 39, 5,132,144,246, 0,142, 3,232, 96,255,253, 75,120, 81, 74,255,182, 5, 64, 23,129, 83,197,199,105, 41, + 0, 0, 32, 0, 73, 68, 65, 84,224, 20, 56, 5, 78,129, 83,224, 20, 56, 5,206,103,121, 41,144, 83,127,253, 58, 47,130, 51,188, +128,178, 84,186,152, 16, 34,174,232,254,199,197, 41, 64,128, 0, 1, 2, 4,252,195,239, 75,234,248,117,246,215, 18,151,112,112, + 29, 0, 51, 0,248, 58,109,190, 64, 41,141,118, 57,238, 59, 0, 42,167, 77, 6, 0,179, 41,165,119, 60, 72,147,212,206, 47,183, + 47, 60, 0, 19, 0, 51, 0, 29, 0,155,240,216,254,241, 66,211, 10, 64, 47,251,255,125,148,210,115,229,217,255,184, 56, 31, 23, +194,195,195,149,126,126,126, 93, 47, 95,190, 44,187,121,243, 38, 78,157, 58, 69,215,175, 95,111,205,201,201, 57,156,156,156,108, + 20, 74,204, 51, 81,230,187, 1,152,110, 95,157, 79, 41, 61,244,136,124, 68,165, 82, 77,242,242,242,234, 33,151,203,195, 89,150, + 37,249,249,249,201, 6,131,225, 8,203,178, 75, 40,165,124, 5, 56,251,250,251,251,191, 85,175, 94,189, 58,247,239,223,127,152, +156,156,252, 29,128,237, 0, 6,134,135,135, 15,171, 94,189,122,149,219,183,111,223,201,206,206,254,134, 82,186,231,159, 74,167, + 0, 1,255, 38,148,228,159, 85,162,208, 2, 48,139, 82, 58,204,165, 34, 22, 59,168, 83,167, 78,125, 14, 31, 62,172,226,121, 30, +142, 69,169, 84,178, 0, 70,150,145,166,128,179,103,207, 70,142, 31, 63,190,127,114,114,242, 75, 58,157,174, 5, 0,168, 84,170, + 95,130,131,131,127, 93,177, 98,197,247, 93,187,118, 77,178, 11,174,114, 89, 74, 36, 18,201,155,126,126,126, 61, 88,150,109, 74, + 41,133, 68, 34,185,156,147,147,115,200,102,179,125, 67, 41,181, 85,160, 81,147,137,197,226, 9,114,185,188, 27,203,178,141, 0, + 64, 44, 22, 95, 51,155,205,135, 88,150, 93, 69, 41,181, 84,128, 83, 33,147,201, 38,168,213,234, 40,139,197,210, 8, 0,100, 50, +217, 53,173, 86,123,196, 98,177,172,162,148,154,158,128, 23,142, 24, 64, 47, 74,169, 4, 0, 68, 34, 81,223, 86,173, 90, 69, 18, + 66,120, 71,124, 16,134, 97,154,112, 28,199,216,143,239, 69, 8,249,149, 82,202,150,135,243,229,151, 95,174, 42, 22,139,169, 61, +146, 46,195, 48,204,139,229,225,172, 44, 4, 5, 5,205,227,121, 62,188,180, 99,124,125,125, 95,186,124,249,114,189,152,152, 24, +238,171,175,190,202, 29, 53,106,148,247,248,241,227,197, 43, 87,174, 92, 5,224, 61,215,227, 3, 3, 3,151, 50, 12, 19,232,201, +245,121,158,207,204,204,204,156, 44, 52, 87,255, 56,166,175,142,213,181,163, 20,152, 16,229,195, 0,120, 36,161, 85,165, 74,149, + 77,111,188,241,198,144, 70,141, 26,137, 41,165,176,217,108, 48,155,205,245,206,157, 59,215, 97,231,206,157, 47, 1, 24, 88,206, +122, 57,102,218,180,105,115,231,204,153, 19, 40,145, 72,136,205,102,171, 29, 19, 19,211,244,237,183,223,126,127,221,186,117, 85, + 7, 13, 26,228,227,216, 62,107,214,172,230,132,144,154,148,210, 37,143, 59,157, 2, 4,252, 11, 63,210,218,163,168,143,214,103, +148,210, 79, 75, 19, 90, 94,246, 19,211, 0, 92,112, 88,180, 92, 15, 58,122,244,232, 94,177, 88,236,176,104,181, 48, 24, 12, 33, + 46, 86, 48,119,168, 62,124,248,240, 86, 59,118,236,152, 55,104,208,160, 84,149, 74, 85,247,213, 87, 95,213, 17, 66, 68, 49, 49, + 49, 77,106,213,170,165,236,221,187,247,240, 78,157, 58,125,120,240,224,193, 83, 0, 50, 60,204,100, 3,127,127,255, 93, 11, 23, + 46,140,236,214,173,155, 52, 48, 48, 16,148, 82, 36, 39, 39, 87,217,191,127,127,247,207, 62,251,236, 67, 66, 72, 63, 74,233,141, +114,220,184,230, 74,165,114,199,103,159,125, 22,214,189,123,119,113,104,104, 40, 76, 38, 19,110,222,188,217,229,208,161, 67,237, +214,173, 91,247, 30, 33,100, 0,165,244,215,114,112,182,240,245,245,221,249,191,105,211, 66, 90,190,249,166,216,223,223, 31,148, + 82,100,100,100,116, 57,189,121,115,135,113, 11, 23,190, 71, 8,121,141, 82,122,225, 73, 42, 68, 50,153,140,217,178,101, 75, 99, +153, 76, 6, 0,176, 88, 44,104,216,176, 33,121, 20, 78,137, 68,194, 44, 89,178,164,169, 88, 44,134,213,106,229,117, 58, 29,125, +245,213, 87,153,127,168,146, 68, 36, 39, 39,251, 74,165, 82,183,251, 57,142, 67,187,118,237,106, 72,165, 82, 44, 89,178,196,150, +153,153,217,228,203, 47,191,188,188,117,235,214,192, 85,171, 86, 13,112, 39,180, 24,134, 9, 76, 74, 74,114,203,201,113, 28,172, + 86, 43, 88,150,133,197, 98, 65,253,250,245,133,150,234,201, 64, 36, 0, 28,184,106, 2, 0,255, 71, 37,243,242,242,122,126,232, +208,161,226,140,140, 12, 72, 36, 18, 88,173, 86,164,166,166,162, 97,195,134,162,111,191,253,246,185,242,242,213,174, 93,123,212, +252,249,243,131, 14, 28, 56, 96,221,178,101,139, 37, 42, 42, 74, 50,106,212, 40,117,187,118,237,234, 71, 68, 68, 48, 27, 54,108, + 48, 31, 57,114,196, 54,124,248,112, 89,116,116,116,208,254,253,251,123, 3, 88,242,184,211, 41, 64,192,191, 16,199, 93, 39,149, + 6, 80,170,208,114,224, 2,165,180, 47, 0, 72,165,210, 38, 85,171, 86,221,196,178,108,168,221,170,147, 42,145, 72,150, 88,173, +214,223,236, 47,170, 61, 60,207,247, 41,203,146, 53,124,248,240, 86, 7, 15, 30, 92,124,238,220,185,188,172,172,172,208,189,123, +247,154, 62,252,240,195,251, 0,112,247,238,221,154,189,123,247,174, 50,113,226,196,164,174, 93,187,174,232,216,177,227,187,199, +142, 29, 59,130,130, 46,201, 82, 69, 86,195,134, 13,207,158, 60,121,210, 71,163,209, 20, 85,117,213,171,227,221,119,223,149,246, +233,211,167, 86,231,206,157,207, 16, 66,218, 82, 74,127,247, 68, 16,213,169, 83, 39,246,232,209,163,222,126,126,126,200,205,205, + 69,106,106, 42,242,243,243,161, 86,171, 49,104,208, 32,105,251, 54,173,171, 78,156,244, 94, 44, 33,164,139, 39, 98,139, 16,210, +162,117,131, 6,177, 91,163,163,189,109, 15, 30, 64,169, 84, 66,175,215, 3, 0,124,124,124,240, 82,141, 26,226,139,155, 55, 87, + 25, 54,117,170,131,243,177,139, 45, 66,136,220,110, 6, 53, 19, 66,246,137, 68,162,190, 50,153,140,233,219,183, 47, 98, 99, 99, +137,201,100, 18, 3,128, 66,161, 96,251,246,237, 11,165, 82, 9,139,197,194, 3,216, 87,146,229,201, 29,167, 68, 34, 97, 58,118, +236,152,127,225,194,133,108, 7,167, 74,165,178,117,236,216, 49, 64, 38,147, 41, 89,150,165,165,113,254, 77, 98, 18,241,241,241, + 69,182,233,116, 58,100,100,100, 32, 43, 43, 11,102,179, 25,185,185,185,224,121,158, 40,149,202, 12,158,231,193, 48, 5,198,183, +146, 56,165, 82, 41,226,226,226,138,108, 99, 89, 22, 6,131, 1,102,179, 25, 86,171, 21, 58,157, 78,233,227,227, 83,167, 65,131, + 6, 73, 0,246,100,103,103, 47, 73, 77, 77, 77, 16,218,173,127, 4, 15,246,253,102,170, 6,192, 2,224, 94, 37,240,241, 0,112, +234,212, 41,164,165,165, 33, 51, 51, 19, 25, 25, 25,136,136,136, 64, 69,186,227,226,227,227, 87,191,240,194, 11,228,250,245,235, +135, 0,172,140,137,137, 25,153,157,157, 61,125,202,148, 41,254,139, 22, 45,202,158, 58,117,234,124, 0, 27, 99, 98, 98,222,121, +254,249,231,123,220,186,117,107,221, 63,145, 78, 1, 2,254, 6, 52, 7, 16,100,255,159,105,111,119, 3,156,214,175,218,235,173, +227, 56, 11, 0,153,155, 95, 7, 28,235, 25, 0,126,117, 58,207,177, 94,145,247, 39,117,254, 45,252,232, 6,128,253,251,247, 83, +199,226,238,228,144,144,144, 73,157, 58,117, 90,124,233,210,165,250, 41, 41, 41,126, 41, 41, 41,126,151, 46, 93,170,223,169, 83, +167,197, 33, 33, 33,147, 28,199,217, 61,238,225,180,238, 60, 68, 83,122,246,236,217,200, 93,187,118,205,143,141,141,205,107,210, +164,137,229,232,209,163,108,215,174, 93,211, 1,176, 0,216,174, 93,187,166, 31, 59,118,140,107,217,178,165,242,224,193,131,137, +103,206,156, 89,186, 99,199,142, 16, 0,162, 18, 56, 65, 8,145,104, 52,154, 31, 78,156, 56, 81, 76,100, 57,163,106,213,170,216, +183,111,159, 90,163,209,236, 33,132, 72, 75, 73, 39, 8, 33, 10,133, 66,177,243,216,177, 99,222, 62, 62, 62, 72, 79, 79,135, 68, + 34, 65,112,112, 48,242,242,242,144,154,146,130,132, 63,254, 0, 99,177, 96,217,231,115,124,148, 74,229, 14, 66,136,172, 44, 78, + 95, 95,223,157, 91,231,205,243,206,138,141,197,149,185,115, 97,181, 90, 11,187, 92,173, 86, 43,206,140, 31,143,140,159,127,198, +134, 89,179,188,125,125,125,119, 18, 66, 20,165,113, 86, 6,156, 57, 9, 33,227, 1,100, 3,200, 38,132,140,167,148,158,107,216, +176,225,165,155, 55,111,162,109,219,182,216,190,125,251,139, 83,166, 76, 25, 63,101,202,148,241,219,183,111,127,177,109,219,182, +184,121,243, 38, 26, 54,108,120,201,217,151,202, 19,206, 19, 39, 78,160, 83,167, 78, 57,219,183,111,175, 57,107,214,172,121,179, +102,205,154,183,109,219,182, 90,157, 58,117,202, 89,190,124,185,185, 52,206,191, 35,239,206,150, 38,231,133,231,255,122,199,132, +135,135,167,239,218,181, 11,131, 6, 13, 98,100, 50, 89,202,224,193,131,229,167, 79,159,166, 0,246,149, 39,157, 38,147, 9, 70, +163, 17, 6,131, 1,119,239,222, 85, 46, 92,184,176,205,167,159,126, 90, 59, 54, 54,182,202,140, 25, 51,198, 5, 5, 5, 93, 14, + 13, 13,141,124,220,121, 23, 56, 1, 0,169, 0,172,246,143,187,132, 71,225,236,220,185,243, 11,181,107,215, 14,137,185,238,135, + 28,105, 61,240, 82, 13,120,169, 6, 92, 64,115,196,203, 94, 65,181,106,213, 66,124,124,124, 90,149,135,147, 82,186,229,247,223, +127,127,153, 82,250, 41,165, 52,139, 82,186,120,234,212,169,159, 17, 66, 78, 77,157, 58,117, 14,165,116,177,125,251,220,155, 55, +111,182,164,148,110,253, 39,210, 41,148, 37,129,179, 34, 40, 67,139, 4, 17, 66,246, 17, 66,246,125,244,209, 71, 29, 1, 4,184, +172,255,199,249, 56, 0, 50,119,191,142,197,105,123, 16,128,158, 78,231, 5, 85,240,126, 16,215,165,136,208, 2,128,158, 61,123, +146,158, 61,123, 58,118, 92, 32,132,236, 5,112, 65, 42,149, 54,105,220,184,113,223,159,126,250,201, 39, 40,232,175,235, 7, 5, + 5, 97,199,142, 29, 62, 13, 26, 52,232, 43,149, 74,155, 0,184,160, 86,171,247,194, 77, 23,163, 29,154,241,227,199,247, 31, 49, + 98,132,182, 73,147, 38, 0,144,123,227,198, 13, 85,203,150, 45, 13, 44,203, 18,150,101, 73,203,150, 45, 13, 55,110,220, 80,217, +108, 54, 93,243,230,205,189, 58,119,238,124,127,242,228,201,195, 1, 40, 74,201,223,208, 5, 11, 22, 68,248,249,249,149,118, 3, +160,211,233, 16, 18, 18,130,241,227,199,135, 74, 36,146,183, 74,187, 97, 98,177,120,194,130, 5, 11,130, 53, 26, 13,114,114,114, + 16, 17, 17, 1,139,197,130,184,184, 56,152, 12,122,216,116, 90,216,180,185,200,248,243, 14, 52, 18, 49,134,247,233, 21, 34, 22, +139, 39,148, 97, 45,153,240,205,212,169, 33,150,251,247,113,119,251,118,112,108,113, 67, 13,107,181,226,218,215, 95,195,148,148, +132,249,163, 71,135,200,100,178, 9,143,217,146,181,136, 82,170,164,148, 42, 9, 33, 43,254,243,159,255,124,171, 84, 42,199, 71, + 71, 71,119, 59,124,248,112,247,147, 39, 79,118, 96, 89, 86,194,178,172,228,212,169, 83,109, 77, 38,147, 88, 46,151, 67, 44, 22, + 83, 79, 57, 91,181,106,181, 73,169, 84,142, 91,179,102, 77,183, 99,199,142, 13,191,120,241,226, 4,142,227,100, 28,199,201, 46, + 94,188,248,182,209,104,148, 80, 74,185,146, 56, 31, 55, 36, 18, 9,164, 82, 41,148, 74, 37,218,180,105,243,231,250,245,235,109, + 17, 17, 17,146,157, 59,119,250,133,135,135,123,173, 92,185, 50, 87,167,211, 45,240,148,207,106,181,194,108, 54,195,104, 52,194, +100, 50,225,232,209,163, 53, 38, 78,156, 40, 54,153, 76, 92,239,222,189,179,109, 54,155,121,234,212,169,106,127,127,255, 15,133, + 15,216,127, 4, 44, 0,189, 93,104,153,157,203, 50, 33,164,145,195, 58,235, 9,114,115,115,215,125,243,205, 55, 17,140, 92,131, +211,150, 30,248,158,255, 12,135,125, 87, 34, 61,242,191, 8,142,168,141, 33, 67,134, 4, 83, 74, 87, 86,194, 11,239, 75, 74,105, + 59, 74,233,138,138,156,255,119,167,147, 16, 18,233,237,237,189, 93,173, 86,159,246,246,246,222, 78, 8,137,124,212, 60,119,173, + 67,186,244,173, 47, 74,234, 90,155,208,190,245, 69, 73, 93,235,148, 63,214,147,128, 39, 19, 46, 90,196, 25, 25,148,210, 94,148, +210, 94,243,231,207,159,231, 84,254, 29,235, 74, 15,235, 75, 47, 74,105, 47,151, 50,186,175, 18,222,161,212,117, 41,212, 20,206, + 74,210,145, 57,231,209,133, 85,171, 86,221,180,105,211, 38, 31, 87,210,148,148, 20,104,181, 90,204,156, 57,211,103,196,136, 17, +239, 37, 38, 38,190, 81, 70, 58,100,169,169,169, 77,135, 13, 27,166,176, 90,173, 57, 60,207, 51, 90,173, 86,236,235,235,203, 57, + 14,240,245,245,229,242,242,242, 36, 6,131, 65,196,113,156,121,196,136, 17,178,209,163, 71,191,228,108,209, 42, 38,113,131,130, +162,122,244,232, 33, 43,105,191,205,102,131,193, 96,128,193, 96,128,213,106, 69,155, 54,109,228,235,215,175,239, 10, 96, 77, 73, +231,200,229,242,168,168,168, 40, 73,118,118, 54,124,125,125,145,144,144,128,123,247,238,193,172,215,195,170,215,194,170,215,129, +213,105, 65,181,121,200,186,115, 27, 45,159,175, 39,253, 78, 46,239, 6, 96,105, 73,156,106,181, 58,170,229,200,145, 98, 47, 47, + 47,116, 24, 86, 48,206,224,224,243,207,131,114, 28,120,142, 3,199,178,232, 22, 23, 7,155,205, 6,134, 97,208, 60, 59, 91,172, +222,188, 57, 10,192,226,127,162,176,203,229,114,241,150, 45, 91,134,202,100, 50, 80, 74,137,197, 98,193,225,195,135, 31,153,115, +243,230,205,195, 29,156, 86,171,149,190,240,194, 11,197, 42,148,217,108,166, 79, 74,165,151,201,100, 80, 40, 20,176, 90,173,168, + 94,189,186,113,216,176, 97,103, 63,255,252,243,106, 12,195,120, 73,165,210,159,178,178,178,230, 37, 39, 39,223,245,148,207,102, +179,193, 98,177,192, 98,177,192,104, 52,226,207, 63,255, 12,173, 81,163, 6, 25, 63,126, 60,151,159,159, 95,243,139, 47,190,136, + 63,124,248,176,106,193,130, 5,175, 2,120, 87,104,118, 31, 31,236, 86,105,223,106, 1, 98,131, 68, 4, 61, 0, 31,187, 40,120, +149, 16,210,178,126,253,250,126, 55,111,222,204, 33,132,156, 7,240, 61,165, 52,165, 52, 62,158,231, 9,207,243,120,187, 69, 46, +198,183, 18,193,102,203, 67, 94, 94, 30, 18, 18, 18,112,227,198, 13,252,242,203,141, 10,165, 83,161, 80,188,229,237,237,221, 85, +161, 80, 84,103, 89,150,209,235,245, 9,249,249,249,177, 60,207,175,163,174,221, 10, 30,224,239, 74,167, 3, 94, 94, 94, 11,103, +204,152,209,218,215,215, 23,191,253,246, 91,205,109,219,182, 45,196, 35, 58,215, 43, 36,204,134,165,203, 87, 86,169, 18,172,193, +213,147, 63, 86,153,183, 54,102, 3,128, 8,161, 20, 63,253,112,214, 34, 46,248, 21, 64, 79,251,104,244, 94,143, 80,207, 31,233, +252,210, 44, 90,174, 19, 75, 23, 19, 90, 37,100, 12, 44,203,134, 58, 91,178, 40,165, 72, 73, 73,193,195,135, 15,145,145,145, 1, + 63, 63, 63, 88,173,214, 80, 79,222,179, 58,157,174, 69, 64, 64, 64,190, 68, 34, 49, 27,141, 70,168, 84, 42, 94, 34,145, 80,251, +117,136,125,212, 34,103, 54,155,137, 88, 44,182,249,248,248,120,155,205,230,122, 40,197,151,140, 82,218, 34, 32, 32,192,237, 62, +179,217, 12,189, 94, 15,131,193, 0,189, 94, 15,179,217,140,144,144, 16,176, 44,219,180,212, 79, 90,150,109, 20, 20, 20,132,228, +228,100, 40,149, 74, 36, 37, 37,193,162,215,193,170,211,129, 53,104,193,229,229,129,215,106,193, 27,180,176, 89,242, 81,165,238, +243,112,140, 72, 44, 9, 22,139,165, 81, 64, 64, 0, 12,134,191,220,205,168, 93, 96,177, 44, 11,214,238, 28,237,232, 78, 12, 12, + 12,132, 99, 68,226,227,128,221,127,106, 10,195, 48, 43,228,114,185,120,220,184,113, 72, 73, 73, 41, 82, 38,198,141, 27, 87,232, +147,213,174, 93,187, 83, 10,133,130,205,200,200,128,217,108,150,120,194, 89,189,122,245,132,153, 51,103, 94,176, 88, 44, 17,225, +225,225, 26,179,217,108,124,238,185,231,194,149, 74,101,136,197, 98,225, 94,122,233,165,117, 74,165,210,166,215,235, 41,203,178, +228, 73,168,244,132, 16, 16, 66, 10,158, 17,203, 34, 48, 48,208,144,153,153,249, 75, 78, 78,206,208,138,240,217,108, 54,199,136, + 46, 24,141, 70, 80, 74,241,219,111,191, 65,161, 80, 72, 56,142,187,206,178,172, 74, 34,145,128,177, 59,127, 9,120,108,207,185, + 67, 61,141,108,105,116,203, 96, 77,227,222, 94, 6,149, 76,100,224, 19, 26, 87,255,223,162, 27,219, 70, 12,127,203,103,246,236, +217,145,129,129,129,138,248,248,120,211,156, 57,115,106,108,217,178,133,148,245, 17,244,224,193,131,221, 51,102,204,240,239,209, +163, 71, 77,185, 92, 78,242,242,242,144,145,145,129,180,180, 52,220,187,119,143, 94,189,122,245, 79,179,217,188,189, 60,233, 12, + 15, 15, 95, 63,113,226,196, 17,205,154, 53,147, 56, 44,164, 6,131,161,201,137, 19, 39,250, 28, 60,120,176, 45,128,114,151,203, +196,196,196,237, 31,127,252,177,215, 43,175,188, 82, 79, 46,151, 51,149,145, 78,103, 48, 12, 19,226,237,237,141,216,216, 88,104, + 52, 26, 48, 12, 19,242,168,207,203,100,229,171,132,135, 6,192,116,102, 41,234, 5, 69,194,100,229,171, 8,165,248,217,177,104, +149,176,171,185,195, 34, 85,134, 88, 50, 78,159, 62,125, 6, 33,100,223,244,233,211,103,184,179,104,217,255,114,206,199, 57, 29, +111,174,108,177, 85,174,160,144, 60,207,227,225,195,135, 72, 78, 78,198,195,135, 15,145,149,149, 5,134, 97, 74,141, 31,225,156, + 6, 66, 8,127,228,200, 17,191,179,103,207, 26,154, 55,111,158,235,240,127, 97, 89,150,216,108, 54, 98,247,139, 33, 9, 9, 9, +210,211,167, 79,107,110,221,186, 21,130, 2,135, 53,190,140,204, 21,219,230, 16, 88,206,139,201,100,130, 66,161,240, 40,175,142, + 23,225,111,151, 46, 21,136, 44,189,206,222,101,152, 7, 78,155, 7,106,208, 65,198,217, 32, 3, 5, 49,229,123,124,255,156,225, + 16, 89, 86,187,208,178, 88, 44,176,217,108,224,121, 30, 44,203, 62,246, 2, 78, 41, 93,221,164, 73,147,166,187,119,239, 30,245, +240,225,195, 98,251,251,245,235,135,119,223,125, 23, 19, 39, 78,188,213,179,103,207,171, 63,254,248, 35, 38, 76,152, 0,158,231, + 27, 19, 66,242, 40,165, 7, 75,227,156, 62,125,250,197,196,196,196,227,127,252,241,199,184,224,224, 96,121,163, 70,141,238, 52, +106,212, 72,180,123,247,238,144, 49, 99,198, 92,234,222,189,251,253,159,127,254,217, 63, 54, 54, 86,193,243,124, 51, 66,200,195, +127, 58,142,150,217,108, 46,180, 64,153, 76, 38, 88,173, 86,160, 20,231,247,178,202,166,227,217,178, 44,235,224, 38,187,119,239, +194,169, 83,167,152, 27, 55,174, 71,140, 27, 55,222,225,112, 47,180,184,143, 71, 96,189, 34, 99,200, 87, 83, 26, 7, 40, 62,124, + 49,192, 32, 19, 19,125,220, 87, 51,244,247,170,169, 13, 33, 85, 85,150,136, 26,154,240,121,243, 62, 15,187,117,235,182,121,230, +204,153, 55, 7, 15, 30, 28,252,225,135, 31,214,223,185,115,103, 91, 66,200, 55,148,210,220, 18,120, 21, 35, 71,142, 60, 31, 28, + 28, 92, 99,237,218,181,233,137,137,137,126, 54,155,205,203,106,181,242, 6,131,225,158,209,104,140,181, 90,173,177,148,210, 75, +229, 73,175,143,143,207,139, 35, 71,142,148,228,230,230,194, 62, 90, 23,233,233,233,104,221,186,181,104,239,222,189, 13, 42,114, + 15,178,179,179,151, 18, 66,142,111,221,186,181,171, 90,173,110, 38,151,203, 67, 1,112, 58,157, 46,205, 96, 48, 92,169, 72, 58, +139,180,115, 28,151,118,233,210,165, 90,106,181, 26, 15, 30, 60, 0,199,113,105,143,250,220, 20, 82, 38,241,218,201,189, 85,159, + 15,172,129,211,103,207, 67, 33,101, 18,133,210,252,204,195,225, 67, 5,103, 1,229, 70, 32,157,141,142,142, 86,206,159, 63, 31, +209,209,209,215,221, 89,180, 28,130, 43, 58, 58,250,186,227, 56,167,227, 79, 62, 66,123, 82,178, 69,171, 20, 5, 9,177, 88,156, +154,145,145,225,167,209,104, 10, 5, 86,114,114, 50,146,147,147, 33,147,201,144,144,144, 0,153, 76,150,226,201, 71,136, 82,169, +188,216,164, 73,147,231,238,222,189, 43,157, 51,103, 78,213, 75,151, 46,169, 91,183,110,253,130, 82,169,228, 40,165, 48,153, 76, +204,205,155, 55,189, 23, 47, 94, 92,165, 69,139, 22,150, 22, 45, 90, 92,142,137,137, 49,162,148,224,165,132,144, 11, 41, 41, 41, + 53,171, 87,175,238, 16,109, 69,196,149,179,224, 2, 10,186, 60,197, 98,241,229,210, 18, 42, 22,139,175,197,197,197,117, 81, 41, +228,176,232,180,176,234,181, 96,117, 58,112,186, 60,112,121,121,128, 65, 11, 25,203, 66,194,217,160, 84, 40,240, 48, 41, 9, 98, +177,248, 90,105,156, 50,153,236, 90, 90, 90, 90, 23,141, 70, 83,248, 18,181,177,108,193,194,113,176,176,108,161, 69, 75, 34,145, + 32, 49, 49, 17, 50,153,236,218,227, 46,201, 12,195,112,142, 16, 14, 37,228, 3, 33, 33, 33,124,203,150, 45, 49, 97,194, 4,112, + 28,103,127, 12,164, 3, 33,228, 52,165, 84, 95, 18, 39,207,243,204,205,155, 55,251,199,199,199,139, 36, 18, 9,243,242,203, 47, + 55,108,211,166,141, 69, 38,147, 65, 42,149,138,245,122,189, 79,108,108,172,194,102,179, 17, 59,231, 99,139,163,229, 40, 59,197, + 62,141,236, 78,235, 70,163, 17,122,189, 30, 57, 57, 57, 98,165, 82,249,220, 11, 47,188,112,222, 98,177,108,103, 89,118,195,221, +187,119,181, 37,113,218,133, 89,161,232,226,121, 30,148, 82,112, 28, 7,155,205, 6,169, 84,202,159, 56,113, 18,139,151, 45,196, +166, 13, 91,104,159, 62,125,200,222,189,123,193,243,124,146,208,174, 62, 22, 44,201,253,254,115, 5, 88,206, 96, 62,177, 85,255, +237, 31, 90,195,236,111,151, 95,180,200, 68,218,151,218,135, 52,170, 89,227, 57,145, 70,227,199,172, 89,183, 34,235,187, 45, 59, +226, 31, 60,120,160, 93,181,106, 85,171,231,158,123,206,247,202,149, 43, 85, 0,184, 21, 90, 42,149,170,206, 91,111,189, 53, 50, + 39, 39, 71,186,105,211,166,152,148,148,148,139, 0,110, 80, 74, 13, 78,109, 87, 79, 66,200, 70, 20,140,124, 10,177,183,115,167, + 41,165,115, 74,251, 94, 35,132,224,216,177, 99,197, 70, 7,242,143,166,206, 53,181,107,215, 30,116,247,238,221, 83,169,169,169, +175,185,169,247,179,235,214,173,219,237,250,245,235,159, 81, 74, 15,148,135, 56, 63, 63,127,234,142, 29, 59, 22,137, 68,162,112, +142,227,146,141, 70,227,212, 71,182,104,217,248,209,209,107,182,125,109,180,112,213,148, 50,209, 3,147,141, 31, 35, 20,229,103, +218,154, 5,216,125,180, 28,255, 1, 16,151,245, 43,246,255, 22,167, 99, 51,156,172, 88, 22, 23, 43,152,187,125, 25,168, 96,176, +116,119, 35, 14, 29,162,171,164,200,240, 31, 1,104, 1,224,130, 68, 34, 89, 49, 98,196,136,197,223,125,247,157,143, 86,171, 69, + 90, 90, 26,210,211,211, 33, 22,139,161, 86,171,177,122,245,106, 99, 90, 90,218, 10,231,115, 92, 35,200, 59,234, 70, 96, 96,224, +197, 45, 91,182,132,126,245,213, 87,226, 55,222,120, 35,161,103,207,158,245, 86,175, 94,125, 87, 42,149, 82,142,227,136,217,108, + 38,111,191,253,118,173,101,203,150,221, 23,137, 68,170, 65,131, 6, 17, 47, 47,175, 11, 40,112, 80,117,127,231, 51, 50,142,252, +240,195, 15,253, 39, 79,158, 44,183, 88, 44,110, 45, 89,142,109, 26,141, 6,103,206,156,177,228,228,228, 28, 46,195,138,113,228, +167, 3,251,219,189, 62,120,176,212,166,211,194,166,211,130,213,106,193,233,114, 65,244, 90, 72, 56, 22, 74, 41,143,208, 8, 5, + 88,163, 55,246,255,122,197,102, 54,155, 75, 13,108,168,213,106,143,156,222,180,169, 67,139,200, 72,241,153, 73,147, 96,181,217, +240, 74, 92, 92,161,184,178, 90,173,216,211,168, 17, 56, 66,208,120,236, 88,220, 97, 89, 86,171,213, 30,121, 18, 43,195,213,171, + 87,211,135, 13, 27,118,137,231,249,166,229,177,238, 56,224,237,237,173,211,235,245,200,204,204,228,178,178,178, 76, 0,144,158, +158,158,179,119,239,222,155, 60,207,183,168, 8,103,101,192,102,179, 21,179, 70,113, 28, 87, 96,117, 44,176, 28,200,246,239,223, +223,238,230,205,155,210,223,127,255, 29,167, 78,157,106,252,221,119,223,125, 20, 25, 25,217, 40, 33, 33, 33,181, 44,241,230, 46, +232, 47,236,254,135, 49, 91,183,227,157,119,222, 33,169,169,169,248,254,251,239, 81, 86,240, 84, 1,149, 6, 3, 88, 78,105, 57, +177, 85,223,243,192, 3,221,185, 20,227, 28, 0,135,168,145,165, 85,171, 86,189,218,172,153, 95, 32, 0,152, 77, 92,104,157, 58, +117,218,139,197, 98,153,189, 12, 55, 11, 8, 8, 88, 13,160,141,155,246, 83, 52,120,240,224,150,193,193,193, 77, 14, 30, 60,120, + 37, 37, 37,229, 58,165,244, 23,215,227,106,213,170, 53,243,214,173, 91,205, 37, 18, 9, 41,163,140, 0, 0, 58,116,232,240, 92, +100,100,100,192,129, 63,124,161,149,214, 6, 21,229, 1, 98, 5, 56,205,139, 72,144,214, 71, 68,196,249, 0,141, 70,211, 56, 55, + 55,247, 74, 57, 95, 16, 29,251,247,239,191, 97,211,166, 77, 17,237,219,183,167,132, 16,198, 53,164, 67,173, 90,181,186,158, 59, +119,174,233,152, 49, 99,214,218, 71, 15,123,236, 60, 76, 41, 77, 0, 48,160, 50, 31,218,225, 59, 52, 22,246,152,103, 2,254, 53, +248,245,111, 58,182, 82, 80,145,200,240, 45,120,158,239,195, 48, 12,172, 86,107,116, 72, 72,200,158, 65,131, 6,245,251,232,163, +143,188, 3, 2, 2, 10, 45, 89,171, 87,175, 54,222,187,119,111,167,213,106,253,141, 16, 50, 43, 57, 57,185, 79,120,120,137,239, + 7,221, 23, 95,124,177,173,119,239,222,111,140, 29, 59,214,216,168, 81, 35,117,189,122,245,242,207,158, 61,235, 29, 21, 21,165, + 21,137, 68,244,204,153, 51, 62,181,106,213, 50, 17, 66,228, 63,255,252,115,214,249,243,231,107, 69, 71, 71,127,131,130,225,214, + 37, 97,235,220,185,115,103,246,233,211,167, 86, 64, 64, 0,180, 90,109, 17,177,229,248,175, 80, 40,144,154,154,138, 93,187,118, +165,216,108,182,111,202,176,108,172, 90,185,122,205,123, 29, 91,190, 92, 69,173, 82, 34, 53, 41, 1, 92, 94, 14, 96,208, 67,198, +218,160,148, 81, 84,169,173,130, 88,228,133,248, 84, 61, 54,157,253, 53,149,101,217, 85,165,113, 90, 44,150, 85,239, 46, 91,246, +222,185, 53,107,170, 68, 14, 28,136, 27,155, 55, 23,118, 21, 58,132, 22, 71, 8,170,117,238, 12,198,215, 23,243,214,174, 77,179, + 88, 44,171, 30,119, 97,225,121, 94,100,177, 88, 74,203, 7,120,158, 79,186,113,227,198, 54, 66,136,142, 16,210,193,190,235,184, + 59,107,150, 51, 39,195, 48,124,253,250,245,119,135,132,132,244, 7, 96,168, 95,191,254,110,185, 92,222,201, 98,177,188,204,243, +124,210,111,191,253,182,139, 16,146, 74, 8,113,124,117, 60,214, 56, 90, 54,155, 13,179,102,205,194,252,249,243, 49,125,250,244, +194,252, 58,186, 15,115,115,115,107,156, 62,125, 90,122,226,196, 9,186,118,237,218,172, 55,222,120, 67, 51,118,236, 88,205, 87, + 95,125,245, 1,128,169, 37,113, 78,157, 58, 21,107,215,174,197, 59,239,188, 83, 92,101,137, 68,124, 82, 82, 34, 76, 38, 19,253, +226,139, 47,146, 37, 18,137,223, 55,223,124,163, 28, 51,102, 12, 17,218,213,199,130,143,149,195, 62,121,223,222,198,172,160,148, + 30,119,236, 80,171,213,202,221,187,127, 16, 3,192,206, 29,187, 36,148, 82, 95, 71,128,217,111,191,253, 86,209,186,117,235,224, + 18, 26, 92, 78,161, 80,152, 23, 44, 88, 16, 48,122,244,232,238, 71,143, 30,245, 35,132,180, 4,112, 17, 64,154, 93, 92, 7, 3, +184, 17, 24, 24,168,142,137,137,169,210,181,107, 87,175,178, 18,170,211,233,190,217,182,109, 91,245,101,167,125,113,192,208, 31, +137,252, 64, 80, 13,133,127,176, 14,245,189, 31, 96,232,208,161,225, 43, 86,172,248, 26, 64,179,114,136,172,161,253,250,245,155, +191,105,211,166,240,209,163, 71,167, 94,190,124, 57, 13,192, 38, 55,130, 47,115,196,136, 17, 41,155, 55,111, 14,163,148,174, 33, +132,200, 40,165, 59,133,226, 35, 64, 64, 97, 93,106,143,130,136,240,197,196, 23,113,231,223, 68, 8,217,195,178,108, 31,177, 88, +188,215, 57, 96,105, 72, 72,200,123, 22,139, 37,140, 16, 66,165, 82,105,106, 90, 90,218, 10,231,128,165, 73, 73, 73,125, 34, 34, + 34, 10,207,177, 7,221,116,142,181,161,126,229,149, 87,186,156, 59,119,238,203,125,251,246,165,235,116, 58,239, 29, 59,118, 40, +231,207,159,159,192,243, 60,157, 54,109, 90,100,183,110,221,242, 57,142, 75, 25, 59,118,108,173, 26, 53,106,140,189,117,235, 86, +172,179,208,114,195, 9, 66, 72,131,218,181,107,159,217,185,115,167, 90,163,209, 32, 61, 61, 29,217,217,217, 48, 24, 12,224, 56, + 14, 18,137, 4, 25, 25, 25,152, 51,103,142, 54, 57, 57,185, 88,192,210, 18, 56, 91, 84,175, 82,229,200,138,207,102,249,104,196, + 12,178,110,223, 4,155,147, 5, 9,107, 67,213, 6,190,144,202,148,184, 19,167,195, 7, 91,119,233, 30,100,231, 22, 11, 88, 90, + 18,231, 75,117,234,196,174,157, 50,197,219,148,152,136,176, 55,223, 68,126,126, 62,172, 86, 43, 24,134,193,159, 43, 86, 64, 26, + 20,132,153, 49, 49,134,235, 15, 30,116,118, 13, 88,234,142,179, 18, 10, 71, 33, 39, 33,100, 60, 33,164,208, 25,190, 95,191,126, + 69,142,253,225,135, 31,176,102,205, 26,152,205,102,150, 82,250, 30,165,116, 53, 33,196,219, 94,160,244,101,113, 86,175, 94,253, + 65,195,134, 13,127,229, 56, 78,108, 23, 25,244,198,141, 27,205,238,221,187, 87,213,133, 83,108,231,100, 31, 87,222, 3, 2, 2, + 86, 28, 60,120,176,122,112,112, 48,113,142,216,110, 23,138, 0,128, 9, 19, 38,116, 62,127,254,188,188, 73,147, 38,230,204,204, +204,230, 65, 65, 65, 71,183,108,217, 18, 56,104,208,160,228,235,215,175, 87,113,229, 12, 12, 12, 92,188,115,231,206,218,181,107, +215,102, 28, 86, 49,215,238,201, 81,163, 70,117,217,178,101,139,172,127,255,254,102,131,193, 16,226,227,227, 19,191,115,231,206, +192,190,125,251,166, 94,191,126, 61,236,113,228, 93,224,116,143,134, 13, 27,222,185,126,253,122,109,199,186,209,104, 68, 70, 70, + 6, 50, 51, 51,161,209,104, 16, 21, 21,245,231,189,123,247,106,187,227, 36,132, 52, 25, 48, 96,192,103, 95,127,253,117, 23, 47, + 47, 47,233,201,147, 39, 13,177,177,177,166,132,132, 4,214,102,179,209,176,176, 48,113,155, 54,109, 20, 61,122,244,240,146,203, +229,204, 39,159,124,146,249,249,231,159, 7, 18, 66,182, 58,166, 63,115,229,108,218,180,233, 47, 63,253,244, 83, 11, 66, 8, 68, + 34, 17, 44, 22, 43,114,115,115,241,240, 97, 18,110,220,184,129,115,231,206,225,240,225,195, 87,244,122,125, 19, 15,235,123, 0, +128,147,102,179,185,158, 76, 38,243, 88,216,115, 28, 7,177, 88,124, 27, 64, 87, 74,105,146, 80,150, 4, 78, 1,127,249,103,149, +203, 25,222, 46,192, 90, 16, 66, 28,147,146, 94,112, 13,225, 64, 8,249,136, 16, 50,203,201, 10, 86, 86, 90,180, 7, 15, 30, 60, +213,165, 75,151, 9,157, 59,119, 94,214,181,107,215,148,148,148,148,154, 75,151, 46,141, 96, 89,214,122,227,198, 13, 38, 62, 62, + 62,225,226,197,139,181,235,214,173, 59,246,214,173, 91, 39,202,176,102, 57,210,122,131, 16,210,186, 99,199,142,187,198,142, 29, + 91,173,101,203,150, 50,141, 70, 3,177, 88,140,187,119,239,226,202,149, 43,150,152,152,152,164,220,220, 92,143,167,224,161,148, + 94, 32,132, 68, 13,154,248,222,206,177,253,122, 7,190, 92,239, 57, 89, 88, 88, 24, 96, 52,226,246,131, 84,156,191,125,197,186, +254,212,249, 12,179,217,252,154,167, 83,240,216, 57,187,116,154, 50,101,231,236,215, 95, 15, 65, 74,138, 56, 44, 44, 12, 50,153, + 12,247,238,221, 67, 60,207,179, 11,214,173, 75,211,106,181,143,125, 10, 30, 71,204, 43,158,231,197, 0,160, 84, 42,241,238,187, +239,194,121,202,157, 53,107,214,192,104, 52, 2,128,152, 16,178,136, 16,178,161, 36, 43, 86, 9,156,213, 14, 28, 56, 80,205,153, +243,249,231,159,119,199,105,126,220,149, 36, 59, 59,123,230, 43,175,188, 18, 45, 22,139, 75,140,122,235,231,231, 7,157, 78, 7, +150,101,185,135, 15, 31,222,246,243,243,131, 68, 34, 1,165,212,109, 61,202,202,202,154,249,218,107,175,205,101, 24, 38,184, 36, + 78,181, 90,157,112,244,232,209, 58, 99,198,140, 97,254,247,191,255,221, 29, 61,122,180,252,232,209,163, 28,165,116,151,208,116, + 61, 89,112,254, 40,181,127,196,209, 82,142,253,141, 16,178,236,226,197,139, 65, 19, 38, 76,168,249,250,235,175,171, 59,118,236, +232,237,124,140,209,104,228,127,252,241, 71,195,154, 53,107,242, 78,157, 58,117,127,212,168, 81, 45, 81,224, 95,226, 22, 15, 30, + 60,216, 63,111,222, 60,223, 30, 61,122,212, 5, 80,232,159,149,145,145,129,132,132, 4,252,254,251,239, 9, 86,171,117,111, 57, +242,147, 69, 8,153, 61,100,200,144, 69,155, 55,111, 14, 31, 61,122,116,106, 76, 76,204,239, 40, 8, 48,236, 10, 77,191,126,253, + 26,109,222,188, 57,108,244,232,209,169, 0,230, 80, 74, 5, 63, 66, 1, 2,254, 66, 7, 87, 63,173, 82,125,180, 0,228,241, 60, + 15,147,201, 20,194,243,124, 31,158,231,225,237,237,237,238,184, 22,201,201,201,125,156, 39,149, 70, 25,211,229, 0,200,136,141, +141, 61,178,117,235,214,206,211,166, 77,123, 61, 55, 55,183,197,213,171, 87, 91, 2,128, 68, 34, 57,231,229,229,245, 75,116,116, +244,155, 83,167, 78,205,240, 68,100,185,136,173,250,139, 23, 47,174,180, 73,165,237,194,168,206,170,237,187, 38,124, 35,151, 71, +185, 76, 42,125,196, 62,169,180,169, 34,156, 83,190,254,122,130,122,251,246, 39,118, 82,105,179,217,204,246,239,223,255, 27,134, + 97,120,251, 87,172,216,108, 54,191,137,114,142, 84,117,229,236,215,175,223,255, 68, 34, 17,107,183, 20, 49,102,179,249,173, 71, +225,172,196,151,168, 30,192,196,210,142,121,225,133, 23,182,236,221,187,119, 88,159, 62,125, 56,171,213,154,222,187,119,111,241, + 47,191,252, 66, 25,134,137, 45,129,211, 12,224,191,165,113,134,134,134, 70,174, 92,185,242,242,164, 73,147,212, 91,183,110,245, + 63,125,250, 52,247,197, 23, 95,104,179,179,179,151, 8,237,214,147, 5,137, 68, 2,149, 74, 5,139,197,130,140,140, 12,148, 21, +178,138, 82,122,140, 16,210, 99,202,148, 41,175, 78,153, 50,165, 71,104,104,104,173,234,213,171,171, 24,134,193,195,135, 15,217, +228,228,228,116,155,205,118, 4,192, 46, 0,168, 85,171,214, 8, 0,235, 75,226,203,202,202,154, 75, 8, 57,182,121,243,230,158, + 94, 94, 94,245, 21, 10,133,191,205,102, 99,116, 58, 93,182,209,104,188,105, 50,153,246, 81, 74,207,150,179,220,199, 16, 66, 50, +223,120,227,141, 13,155, 54,109,138,184,123,247,174,238,226,197,139,175,184, 30, 87,191,126,253,211,155, 55,111, 14, 27, 51,102, + 76, 74, 76, 76, 76,185,124,180, 4, 8,248,151,124,136,157, 64, 9,254,197, 37,189,224,230,201,100, 50, 49,236,147, 75, 59, 44, + 90,110,142,187,224,226,147,149, 7, 96,158, 7,105, 50, 12, 29, 58,244,222,208,161, 67, 23,217,211, 32, 66, 65, 8, 7, 22, 5, + 30,255, 86,148, 17,210,161,132,140,178, 0,190,182, 47,149,117,243, 76, 40,136,151,179,248, 73,230,172,132, 52,153, 9, 33, 83, + 8, 33,139,236,155,166,252,246,219,111,171, 93, 44, 84, 87,157,247,151,101,121,114,199,121,229,202, 21, 87,206,223,203,195,249, + 79, 34, 55, 55,247,189,149, 43, 87, 94,152, 62,125,186,124,228,200,145,248,253,247,223, 49,127,254,124,115,110,110,238,214,138, +114,166,166,166, 38,132,134,134, 54, 93,190,124,249,135,203,150, 45,235, 75, 8, 17,230, 58,124, 66, 96, 52, 26,255,124,241,197, + 23, 65, 10, 28,150, 40,203,178,133,163, 69,237, 17,254,255,244,196,106, 4, 96,157,125, 1, 33,196, 31, 5,163, 12,179, 40,165, +174, 31,146, 83, 60,224, 59, 7,224, 92, 37,215,253, 99,132,144, 55,227,227,227,231,253,249,231,159,110,133,218,157, 59,119,142, +183,105,211,198,231,234,213,171, 31, 83, 74,247, 11,165, 67,128, 0,207, 33, 46,161,226,221, 1,240,186, 7, 21, 52,250, 17,174, +205,121, 96,253, 18,240,120,197,214,106, 66,200, 6, 39,107, 76,185,246, 63, 46,206,127, 10, 73, 73, 73, 57, 0, 10,167, 34,169, + 89,179,102, 49, 63,182,138,138, 45, 20, 68,129, 23, 34,193, 63, 65,184,123,247,238, 43,127, 67, 29,203,126, 66,235,254,113, 0, + 45, 75,218,111,179,217,102, 1,184,162, 10,252, 0, 0, 32, 0, 73, 68, 65, 84,152, 37,148, 10, 1, 2,202, 15, 33,250,180, 0, +215, 6,215, 92,154,224, 41,107,255,227,226, 20, 32, 64,128, 0, 1, 2,158, 20,184,153,235,176,125,225, 62, 0, 93, 74,120,249, +197,150,227, 2,229,158,208,179, 44,126,129, 83,224, 20, 56, 5, 78,129, 83,224, 20, 56,159, 61, 78, 39,238,101, 37,236,186,237, +194,247,213,211, 40,188, 10, 71, 31, 82, 74,255,182, 5, 64, 23,129, 83,224, 20, 56, 5, 78,129, 83,224, 20, 56, 5,206, 10, 94, +103,236,227,184, 78, 37,167,153, 2,104,239, 88, 23, 67,128, 0, 1, 2, 4, 8, 16, 32, 64, 64,165,192,163, 56, 90, 59,118,236, + 16, 57,254, 15, 25, 50,100, 20,199,113,133,195,222, 69, 34,209,202,239,191,255,126, 67,105, 23, 25, 48, 96, 0, 87, 26,167, 59, +148,117, 29,119,156, 13,159,243, 29, 23,224,171,122, 47, 55, 47,127,249,221,100,238,148,201,100,170,239,216,167, 80, 40,110,110, +216,176,225,143,202, 78,231,168, 81,163,234,186, 94,167,122,132,164,131,191,143,226,221,236, 92,253,210,223,255,208,125, 37, 20, +179,191, 23, 3, 7, 14, 44,215,241,247,238,105,112, 25, 97, 80,123, 73,161, 55,216,192, 93,122, 54,124,122,195,194,194,234,169, +213,234,225, 0, 26,228,231,231, 7,171, 84,170,116, 0, 55,180, 90,237,150,148,148,148,219,158,242,116,168, 65, 18, 0, 84,179, +175, 62, 56,126,143, 70,122,178,175, 44,116,171, 77, 76, 20,144, 19, 2,235,161, 59,180,112, 2,205,238,117,136,137,167,197,183, +119,171, 67, 44,148, 66, 74, 0,243,161,120,170,120, 86,202, 43, 33, 68, 13, 32, 10, 64, 67, 0, 87, 1, 28,166,148,230, 11, 53, + 89,128,128,103, 7,174,129, 74,157,215,197, 37,136,137,118, 82, 49,249,146,130,106, 0, 26, 96, 54,155, 37, 50,153, 12, 22,139, + 5, 42,149,114,213,219,163, 71,125, 6, 6,185, 54, 22,239,110,216,176,161,194, 51, 93,151,231, 58, 3, 6, 12, 56,230,122,190, +159, 90, 57,247,248,143,211,252,218,245, 92, 48,223,114, 47,115,170, 78,167, 99,228,114, 57,204,102, 51,124,125,125, 91,143, 27, + 59,182, 25, 35,161, 22,169,212,235,236,178,101,203, 82, 43,154,206, 15, 62,248, 32,212,106, 53,253,135,231,121,153,197, 98,145, +187, 94,199, 87,229,181,224,248,143,211, 84,237,123,205,255, 12,128, 32,180,158, 32, 20,136,172, 80,188, 63,244,101, 44,156,212, + 5,154, 14, 11,158,133, 10, 45,170, 89,179,230,132,200,200,200,193,235,214,173,147,214,172, 89, 19, 10,133, 2, 70,163, 49,236, +207, 63,255, 12, 27, 55,110, 92,251, 90,181,106,109,187,123,247,238, 42, 74, 41,231, 1,101,181,227, 27, 63, 1, 0,180, 30, 62, +167, 26, 33,228,191, 0,242, 1,160,125,245,191,246,117, 24, 57,167, 26, 33,100, 10,138,142, 22, 78,161,148,186, 13,146, 73, 1, +217,190,205,139,209,103,196,127,197,132,144,113,142,237, 61,234, 2, 63,125,187, 2,221,135,188, 87,100,123,183, 90, 16,255,184, +121, 49,122,141,248,111,137,179,154,119,175,203,216,120,158,150,104,137,103, 24,194, 30,186, 67,221, 77, 48,156, 70, 41, 61,228, +230, 94,118, 67,193,132,206,110,143,239,245,188, 56,205,106,227,220, 6,156,149, 74, 68,233,251,110,177,197,206, 29,217,148,216, +108, 92, 65,219, 42, 21,131,243,245,245, 61,254,241,199, 31,139,123,245,234,133,245,235,215,183,249,234,171,175,198, 18, 66,126, + 6,176,151, 82, 26, 47,212, 82, 1, 2,158, 93,193, 85,162,208, 18,139,176,118,239,206, 13,181,211,210, 51,241,198,152, 15,177, +117,235, 86,228,228,228,192,207,207, 15, 50,169, 84,178,124,209, 39,161,106,181, 87,232, 27, 99,167,174, 5, 80,175,162, 9, 42, +231,117,234, 20,203,144, 61,160,169, 88,196, 72,100, 50, 25,179,109,219, 54,228,230,230, 66,163,209, 64, 38,147, 48,203,230,127, +164, 84,171,189,149,111,141,159,222, 6,192,246,138,166,211, 98,209,183,217,189,117,131, 58, 35, 35, 3, 35,223,153, 10,215,235, + 72,165, 82,206,241, 98, 17,138,217, 63,135,204,204, 76, 0, 64, 96, 96,160,139,200,106,137,101,147,187,226,131,165,135,145,111, +178, 60,245,249,172, 89,179,230,132,129, 3, 7, 14,158, 59,119,174,148, 97, 10, 6, 14, 27, 12, 6, 24,141, 70, 84,169, 82, 5, +199,143, 31,151,206,156, 57,115,240, 15, 63,252, 0, 0, 95,148,151,255,250,245,235,213,171, 85,171,102, 2,128,222,141,124, 92, +247, 69, 58,246, 1,128,143,143, 79,153,124, 1, 26, 47,243,245,235,231, 27, 56,206,155,208,185, 10, 87,194,118, 19, 0, 85,105, + 92, 60, 79,197,135,191, 28, 87,226,254, 49,115,191, 99,175,110, 63, 85,175,102,205,154, 70,231,237, 37, 4, 92, 6,128, 16,189, + 94, 95,205,117,163,227,120,171,141, 11, 46,233,122, 93,223, 93,227, 86,128,217, 56,136,191,251,238, 59, 0,192,146,255, 14, 19, +125,253, 75,166, 88, 44, 46,104,106, 23, 45, 90,132,217,179,103,203, 14, 29, 58,212, 99,243,230,205, 61, 8, 33,203, 75, 18,170, + 2, 4, 8,120,250, 68,150,243,111,169, 66,139, 33,196, 71,237,227,141, 1, 67,223,198,193,131, 63,161, 93,187,118,133,251,106, +212,168,129,129,175,245,197,247, 27,151, 1,128,207,163, 36,234, 81,175,147,147,103,248,191,238,131,191,156,243, 32, 85,127,110, +223,190,125,104,219,182,109,145,243,135, 14, 26,128,111,191, 89, 4, 74,169,244,145,110, 30,101,164, 62,106, 47, 12,121,227, 29, +184,187,206,216,145,253,246,117, 27,184,162, 75, 90,150, 97,153, 80,212, 30, 47,110,221,186, 5,179,217, 12,181, 90, 13,137, 68, + 2,185,166, 26,146,197, 45,144, 65,106, 34, 61, 56, 31,147,187,132, 96,201,251, 29,241,193,210,195, 88,190,245, 60,154, 34,245, +169,206,111, 88, 88, 88,189,200,200,200, 34, 34, 75,167,211, 65,175,215, 67,171,213, 66,167,211,129, 97, 24, 76,157, 58, 85,122, +226,196,137,193, 97, 97, 97,177, 30,116, 35, 62,104, 61,124, 78,129,216, 16, 73,244,179,102,205, 50, 7, 7, 7,155, 85, 42, 21, + 21, 75,229,186, 14, 35,231,248, 0, 0, 35,150,234,150, 47, 95,110,169, 82,165,138, 73, 44, 22,203,222,123,239, 61,143,194,195, +152,205,102,234,204,105,177,152, 11,183, 47, 88,176,192, 18, 18, 18, 98, 86,169, 84,212,106,245, 92, 4, 95,187,151, 13,185, 84, + 4,185, 84, 4,133, 76, 2,159,234,205, 33,207,249, 29, 44,203, 98,225,194,133,214,208,208, 80,139, 74,165,162, 50,153, 76, 58, +105,210,164, 50,211, 57,106,212, 40,170,209,104,172, 42,149, 74, 58,123,246,236, 98,209,157,143, 94,125, 8,165, 76, 2,149, 92, +140, 58, 53, 34, 32,167, 70,143,211, 42, 18, 21,245, 70,144,203,229,104,211,166, 13, 26, 52,104,128, 61,123,246,116, 0, 32, 8, + 45, 1, 2,158,114,184, 90,177,138, 9,173,253,251,247,183,135,125,214,233,158, 61,123, 22,204, 54, 13,138, 41, 19, 94,195, 91, + 35,135,128,227,248,194,233, 38, 8, 67, 48,254,205, 30,224,121,206,147, 11,151, 57,196,179,188,215,113,230,164,132, 17, 1, 64, +237,200, 48, 58,246,173,215,193,241,124, 65, 24, 84, 0, 16, 1,111,143,236, 94,176,173, 18,210, 41, 2,135, 15,199,189, 10,119, +215,169, 87, 59,156, 97,173, 38, 16,167,201, 30,255,142,201, 54, 5,206,162, 56,123,246, 44, 84, 42, 21,134, 13, 27,134, 73,147, + 38,129, 19,107,176,227, 92, 22,166,173, 62,135,124,179, 21, 67, 59, 86,199,228,215, 27, 97,242,242,163,133, 34,171, 70,141,220, +167, 58,239,106,181,122,248,186,117,235,138,137,172,180,180, 52, 70,175,215,195,106,181,242, 58,157, 14, 28,199, 97,250,244,233, +146,153, 51,103, 14, 39,132,204,182,243,152,221,113, 30,191, 71, 35, 9, 33, 83,174, 95,191, 30,249,241,199, 31, 91, 59,117,234, +244,160, 70,141, 26, 6,145, 72,132,176,176,176, 21, 81, 81, 81,254,115,231,206,181,246,232,209,227,190, 72, 36, 66,157, 58,117, + 12,191,255,254,123, 36, 0,165,167,121,119,230,220,112,116,165,227,171, 15, 81, 81, 81, 9,117,234,212, 49,136, 68, 34,252,241, +227, 2,234,233,253,148,136, 25,212,173,226,235,248,140, 4,148,222, 64, 78,193,106, 84, 84, 84, 82,189,122,245,244, 12,195,224, +218,181,107, 17, 0, 20,101,113, 42,149, 74,219,208,161, 67, 31,220,190,125,187,216,241, 0, 32, 22, 49,104, 89,207,110,192,170, +210, 20, 72, 58, 93, 98, 58, 37, 34,176, 51, 39, 12, 19,107, 20,128,220, 39,208,172,213,106,161, 86,171, 11, 44,100, 86, 43,126, +251,237, 55,180,106,213,170,253,246,237,219, 79, 8,245, 93,224, 20, 56,255,130, 59, 45,242,180, 89,179, 28,130,203,157,143,214, +113,215, 76,113, 28,139, 26,213, 66,176,224,147, 81,224, 56, 30, 28,199,129,181,255,114, 28, 7,155,213, 90, 41,137,123,148,235, +248,169,149,115,127,218,246,174, 95,167,126,139, 58, 71,127, 60,242, 8,199, 1, 60,111,131,205, 6,112,188, 13, 60,199,193,102, +171,156,174, 34, 27,207, 35, 50, 34, 20,209, 31,143,132,235,117,182,124,191,189,247,209,189, 83, 85,237,122,205,255, 16,192, 66, + 65,219, 63, 30, 75,150, 74,165,194,150, 45, 91,208,188,121,115, 0,192,169, 56, 22,211, 86,159,195,161,232,214,104,221, 32, 0, +233,185,102,188,183,234, 10, 14,158, 75, 47, 38,178,158, 98, 52,168, 89,179,102, 17,145,181,120,241,226,192,213,171, 87, 87, 1, +128,215, 94,123,237, 97,231,206,157, 51,227,226,226, 16, 22, 22, 70, 50, 51, 51,123, 2,120,207, 94,241,167, 80, 74, 87,151,192, +107,168, 86,173,154, 41, 40, 40,200,236, 16, 68, 12,195, 64, 44, 22,163, 90,181,106,166,224,224, 96,115,157, 58,117, 12, 82,169, + 20, 12,195,192, 33,244, 60,108,128, 32, 18,137,224,224,116,181,246, 56, 56,203, 3,137,216,233,120, 90,220,130,196, 48,140,219, +235,149, 4,133, 66, 65, 1,148,120,188,136,113,106, 30,197,165,123, 8,108,188, 76, 37,132,144,227,148, 82, 92,190,124, 25,119, +239,222,133, 84, 42, 69,104,104, 40,102,207,158, 13,179,185, 64,239, 14, 28, 56,176, 61,128,107, 66,109, 22, 32,160, 16,199,159, + 54,129,229,106,213,114,231,163,197,184, 81,147,133, 2,168, 64,236,184, 17, 63, 54, 22, 54,155, 21, 40, 99, 82, 85, 79,133, 86, + 73,215,225, 56,190,212,235, 56,124,180,120,158,138,221,138, 44,158, 7,107,179, 85,202, 13,228, 57, 27,120,222, 6,119,215, 33, +132,225,236, 13,190, 84,168, 39,143, 7,102,179, 25, 67,134, 12, 41, 20, 89, 0,144,169,179, 33,223,108, 67,235, 6, 1,104,214, +113, 32,130, 53,114,196,156,124,136, 96,141,234, 89, 17, 89,200,207,207, 15, 86, 40, 20, 48, 24, 12,133,150,172,213,171, 87, 87, +177, 88, 44,140,197, 98, 97, 98, 98,182, 71,108, 61, 18, 87,117,203,161,184,170,235,118, 93,170,154,147,147,215,128, 82,170,164, +148, 42, 1, 44, 34,132,200, 75,227,151, 74,165,133, 2,197, 89, 0,201,229,242, 10, 9,152,194,134,198, 46,206,164, 82,169,219, +237,174,221,107,101, 65,234, 44,180, 64, 11,172, 90, 46, 98, 75, 36, 18,193,225, 27, 85, 22,100, 50, 89, 97,222,221, 65, 44,114, +186,158,168,252,174,152, 86,171, 21,122,189, 30,185,185, 69, 44,170,112,136, 96, 1, 2, 4,184,215, 34, 79,171,216, 42,210,126, +184,170, 73,216,103,159,102,109, 86,183,226,103,251,143,103,240, 32,213,128,208,192, 11,160, 37,204, 84, 93, 18, 6, 15, 30,188, + 49, 44, 44,172,112, 62, 45,185,210, 59, 96,236,187,159,130,101,173,240, 81, 50, 24, 51,188,123, 17,145, 85, 96,209,178,160, 36, + 57,151,147,103,248,191,238, 3,191,152,227,171, 14, 56,231, 42,126,162, 55, 93, 26,144,163, 53, 71, 48,204,175,200, 33, 97,220, +192,183, 63, 29,229,212,184, 95,221,182,102,214,100,143,111, 28, 97, 36, 3,198,173, 24, 75,197,222,245, 85,140,238,228,180,145, + 47,239,118, 22,115,254,254,254,251,186, 14, 88,222, 37, 45, 91,240,209,122, 92,144,201,100,152, 52,105, 82,145,109,129, 62, 18, +168,228, 18,156,185,145,137, 75,199,182,227,212,245, 76, 40,164, 34, 4,209,187,207, 76,190, 85, 42, 85,122,126,126,126,152,209, +104,132, 86,171,133, 86,171, 45, 42, 8, 36, 18, 50,246,157,137,129, 18,169, 12, 54,171, 5, 7,183,124, 94, 38,103,135, 26, 36, +161,125,117, 84,235,221,200, 7, 34,137, 76,119,163,102,205, 21, 98,177, 24, 12,195,224,199, 85,211,222,219,181,244, 93, 31, 0, +184,186,111,149,118,200,212,149, 95, 48, 12, 3,179,217, 44, 47, 79,186, 19, 19, 19, 35,204,102,179,201, 46,208, 28,166,117,220, +187,119,175,170,217,108, 54, 58,111,247, 4, 74,149, 15,160,169, 1,168,130,139, 89,207,238,223,191, 31,110,179,217,242,197, 98, + 49, 44, 22,139, 71,170,136, 97, 24,233,181,107,215, 34,120,158,119,123,124,131, 90,225, 64,104, 35, 64,230, 91,158, 6,215,163, + 99,220,125, 1, 11, 16,240,111,183,108,161,156,250,226, 73, 16, 88,238,254, 59, 11,173, 14,251,247,239,167,206, 95,136,172,205, +102, 23, 89,127,137, 30,142,227,145,156, 97, 66, 92,220, 31, 88,190,124, 57,206,156,255,175,239,220,185,115,229, 51,103,206, 52, + 15, 30, 60,120, 41,207,243, 47, 50, 12,115,117,192,128, 1,110,191,210,120,158,175,122,233,210,165,154,142,117,155,205, 6, 31, + 31, 31,248,248,248,160, 94,157,136, 98, 34,139,227, 56, 88, 75,233, 58,116,248,104, 17,202, 83,155,141, 3,199,243,133,226, 39, + 71,107,142,216, 27,123,185,182,211,225,207, 57,254,180,105, 94,191,100, 49, 56,110,118, 97, 62,182,173,153, 53,121,238,250,245, +242, 28, 46,104,210,144, 1,111, 53, 28, 56,100, 56,134,190,250, 74,123,179,197,178, 71,196, 80,222, 86,120, 61, 48,160, 40,226, +163, 37,224,239, 67,102,102, 38,140, 70, 35, 52, 26, 77,145, 23, 86,152,151, 1, 83, 7,213, 69,212,180,211, 48, 89, 57,200, 37, + 12,222,235, 27,137, 95,126,136, 65,166, 57,179,112, 52,226, 83,142, 27,241,241,241, 97, 85,171, 86,133, 86,171, 5,203,178,252, +107,175,189,246, 80, 44,150, 68,136, 37, 18,210,107,200, 68, 62, 53, 53,217,198, 48, 34, 80,202,225,149,129,227,136, 92,161,148, + 90, 45, 22, 22,192,148, 18,230,148,116, 14,225,224, 19, 21, 21,229,239, 24, 9,184,107,233,187, 62, 78,251,212,205,154, 53,243, +119, 30,117,232,161, 40, 38,131, 7, 15, 86, 86,171, 86,141, 0,192,175, 91, 62,118, 88,207, 72,239,222,189, 21,213,170, 21,248, +225,255,188,202,243, 57,181, 3, 85, 20,200,187, 7,228,221, 47,102,201,234,221,187,183,188,102,205,154,229,170,139,118, 7,248, + 18, 99,119,121,137, 89, 32,245,178, 71, 92, 35,155, 18,219,199,237, 32, 94,250, 10, 3,153,119,128,185,229,180, 67,191, 8, 98, + 75,128, 0,143,224,162, 69,158, 30,216,231, 54, 60, 14,160,131,253, 23, 69,124,180,122,246,236,121,162,136,122,164,128,141,181, + 22, 19, 89, 28,199, 65, 66,204, 88,190,124, 57,222,127,255,125, 0,144, 78,158, 60,121,247,220,185,115,251,243, 60,255, 34,165, +180, 45, 33,164,180,175,198,227, 97, 97, 97,105,148, 82, 9,195, 48,109, 87,173, 90,229,223,163, 71, 15,248,248,248,128,242,180, +152,200,226, 56, 30, 86,171, 5, 37,153,180,252,212,202,185, 63,109,159,228,215,169,239,162,206, 28,207, 31,113,136, 44,158,227, + 0,190,224,164,172,244,135, 56,124,112, 15,214,174, 89,155, 3, 66,111,129,130,103, 24,230,106, 73,105,228,121,254,197,211,191, +222,108,219,166,121,125,204, 93,191, 94,126,253, 82,202,238,137, 31,204,104, 56,112,200,112,108,255,126, 11, 24, 54,247,178,179, +200,226,108, 60,242,114, 50,123, 31, 19,124,180,254, 49,216,108, 54,228,228,228,192,166,207,193, 75, 97, 6,124, 58, 48, 24,105, + 57, 38, 72,248,124, 60,175, 78,199,177,236,251, 80,169, 84,207, 68, 94,181, 90,237,150,113,227,198,181, 63,121,242,164,148, 97, + 24,104,181, 90,116,236,216, 49, 51,131,175,162, 24,251,206,196,192,228,228,135,172, 90, 41, 54, 75,165, 18,164,167,167,243,237, +123, 12, 51, 14, 25,245,126,248,251, 31, 71,175, 75, 62,179,122,181, 39,215,112, 30, 9,232,186,239,235,175,191,182, 84,169, 82, +197, 36,151,203,101, 35, 71,142,244,168,255,208, 98,177,208, 5, 11, 22,152, 93, 71, 23, 90, 44, 22,186,124,249,114, 75, 68, 68, +132, 89,169, 84, 82,155,173,108,191, 79,134, 33,236,152,185,223,177, 44,203, 22,177, 98, 57, 68,150,141, 39,250, 47,191,252,210, + 26, 17, 17, 97, 81,169, 84, 84, 46,151, 75, 61, 73,231,196,137, 19,169,159,159,159,213,203,203, 75, 58,117,234,212, 71, 26,117, +104,227, 32,158,187,170, 48,188,131,220,199,199, 7, 58,157,174, 48,173, 97, 97, 97,130,216, 18, 32,192, 13,138,105,145,167,204, + 10, 87,146,143,150, 91, 7, 6, 30,208,167,165,103, 6, 7,134, 84, 7,203,178,246,197, 6,214,102,195,164,183,135, 96,233,154, + 47, 1,192, 33,182,162, 38, 79,158,188, 27, 46,254, 94,238,176,109,219,182, 57,147, 39, 79, 86,167,165,165, 29,218,184,113,163, +255,176, 97,195, 48,101,202, 20, 44, 90,180, 8, 18,153, 2,254, 65, 85, 11,175,227,184,110,102, 70, 54, 40,168,222,173,130,180, +251,104, 81, 10,113, 64, 80, 36,108,156, 13,188,205, 6,155,205, 6, 34, 42,200,218,225,131,123, 48,236,205,137,144,200,213,126, + 43,151, 47, 52, 54,124, 41,172,255,204,209,163,205,101,203, 83, 48,215, 47,165,236,158,248,254,212, 40,135,200,218,185,101,205, +173, 37,211,251,110,149,203,196,133,215,177,241, 60, 24, 70, 36,248,104, 61, 70, 4, 6, 6, 34, 35, 35, 3,185,185,185,240,242, +242, 66, 86, 86, 22,178,179,179,145,155,155, 11,179, 54, 7, 1, 92, 46, 8,155, 13,177, 88,140,244,196, 2, 31,192,103,196,154, +133,148,148,148,219,181,106,213,218, 54, 99,198,140, 33,211,167, 79,151,240, 60,143,184,184, 56,128, 16, 42,145,202,192, 48, 12, + 36, 18, 49,242,242,180,188,202, 91,147, 98,165, 34,149, 68,250,255,236, 93,101,120, 84,215, 22, 93,231,142, 79,220,136, 17,197, + 3,193, 93,130, 20, 45,218,226,193, 93, 10, 20,104,113,138, 4, 9, 77,113, 43, 82, 74,105,208,240,112, 41, 86,156, 96,129, 32, + 9, 22, 18, 66,146,137, 18,159, 76, 70,239,121, 63,152,201,155,132,200, 76, 8,165,237,155,245,125,243,205,204,185,231,174,123, +174,157,187,238, 62,123,239, 35, 0,195,225,151, 22, 38,252,182,253,200,247,233, 29, 24, 46, 63, 71, 23, 9,200,231,243,113, 59, +100,117,118,251,145,203,172, 0,128, 47, 20,103,116,233,210, 37,182,118,237,218,210,251,247,239,123,162, 72,212, 97, 49,247,167, +250,171,145,179, 57,102, 98,145,180,115,231,206,111,117,156,111, 46,108,206, 30, 54,121, 1, 33, 28,129,180,103,207,158,177,190, +190,190, 82, 14,135,131,200,227, 65,217, 95,141,156, 45, 34,255,139,233,253, 0,231, 94,209,113,143, 66,174,215, 90,177, 98,133, +170,123,247,238,113, 58,127,177, 55,111,222,184,246,232,209, 67,184,110,221, 58, 85,143, 30, 61,226,235,214,173,155,203, 48, 12, +194,194,194,220, 74,179, 84,233, 32, 22,139, 85, 99,198,140,121,251,228,201,147,114, 69, 29,150, 5,119,119,119,176, 44,139, 14, + 29, 58, 32, 63, 63,223,100,217, 50,193,132,127, 33,138,230,209, 42, 53, 51,188, 74,173,154, 50,225,219,165,155, 1, 98,161,215, + 11,252,207,176, 68, 65,190,255,254, 59,115, 0, 98,157,216,154, 49, 99, 70, 70, 89,141,208, 19, 89, 77,134, 12, 25,130,121,243, +230, 97,205,154, 53,154,159,126,250,137,243,252,101,140,114,228,228,197,153, 69,182, 3, 10,154,203,170,216, 41,197,241,101,100, + 73, 23,251,245, 88,181, 52, 33, 57,239,198,200, 73, 11, 11,122, 47, 13,128,108,226,162, 1,128,109, 63,255, 44,229, 9,173,204, + 7, 12, 30, 6, 0,157, 55,175, 15, 58,186, 28,191,148, 45,182, 40,241,153, 50, 99,182,173, 78,100,109, 89,183,226,137, 53, 73, +222, 52,245,187, 8,149,254,118, 0,192,206, 18, 71,253,122,172,234,154,146, 46,221, 96,186,212,254, 26, 40, 20, 10,108,220,184, + 17, 11, 23, 46, 68,122,122, 58,210,210,210,144,145,145, 81,240,201,205,205,133,179,179, 51,254,248,227,143, 15,252,152,254,233, +136,142,142,222,114,226,196, 9, 92,189,122,117,208,220,185,115,121,206,206,206,196,218, 58,153,168,148, 10, 0,148,166,166,166, +178,102, 22, 54,137, 14, 78,110,111, 37, 73, 41, 62, 42,165, 2,172, 70, 89,162,183,185, 54,189,195,247, 79,159, 62,245, 90,189, +122,181, 66, 63, 18,112,240,236,205, 27, 27, 55,110,108,183,105,211, 38, 69,207,158, 61, 99,117,206,235,134, 56,195,159,127,141, +111,159, 62,125, 92,167, 40,103,251,241,171,119,233, 56,245,163, 17,123,125,183,125, 87,245,234,213,237,124,125,125, 99, 75,227, +173, 82,165,138,204,197,197, 69, 81,171, 86,173, 92, 30,143,247,222,146,165, 82,229, 85,169, 82,133,117,114,114, 82,212,174, 93, + 59,215, 88,167,125,177, 88, 76,117, 86,177,226, 96, 76,212, 33,143, 3,245,144, 33, 67, 10, 50,195,127, 95,189,122,226,176, 97, +195, 92,102,206,156,137, 93,187,118,225,230,205,155,233, 69,215,105,215,174, 29,174, 93,187,182, 20,192, 98,211,221,109,130, 9, +255, 60,148,153, 71,171, 40,118,239, 14,190, 4, 61,159,166,226,176,124,249,114,161,214,146,213,121,250,244,233,144,201,100,182, +197,168,187, 78,186, 92, 27,197,137,172,160,160,160,253,148, 82, 55, 0,109, 52, 26,246,206,206, 95,118,119, 48, 64, 49, 22,112, + 82,194,112, 24,134,228, 10,120,244,225,207, 59,118,237,213,175,167,117,126,175, 9,130, 71,155,215, 7,201, 0,116, 46, 42,182, +250,247,239,159, 87,148, 83,135,137,147, 38, 22,136,172,205,235,131, 46,248, 54,241,248,122,225,216,101,197,138,179,101,139, 39, +152, 51, 12,105,165,239,163, 85, 28,103, 5,168,101, 19,167, 22, 66,161, 16, 7, 14, 28,128,159,159, 31,234,215,175,143,244,244, +116,228,230,230, 34, 55, 55,183,192,234, 21, 25, 25,137,216,216, 88, 8,133,194,127,213,190,107,167,213,217,232,226,226,114,113, +209,162, 69,195,210,210,210,122,100,100,100,218,159,218,189, 12,221, 6, 76, 34,237,186,251, 75, 21,148, 43,138, 79, 76,174,117, +229,204, 62,187,179, 7,183, 64,169, 80, 76, 32,228,231,103,186,244, 14,197,180, 51, 79,151,198,161, 86,173, 90, 82,125,161,226, +225,225,145,239,234,234, 42,247,245,245, 45, 40, 47, 46,154,175,184,125, 55,150, 83,235,255, 37, 45,235,120,234, 68, 91,209,180, + 17,102,102,102,208,137, 47, 99,218,169, 31,109, 89,108, 71, 89, 70,212,161, 62,231,111, 15, 40, 79,127,217,111,132,112,130,131, +131, 59, 5, 7, 7, 55, 1,240, 16,192,121, 0, 42,237,122, 5, 78,243,148,210, 37, 0,150,152,238,119, 19,231,255, 43,231, 63, +220,154,213, 14, 90,223, 44, 45,218, 83, 74,175,150, 40,180,202,130,206,241, 29, 0, 51, 99,198,140, 12,153, 76,102, 59,108,216, +176, 82,215, 73, 74, 74,218,181,103,207,158, 66, 34,171,111,223,190,163, 14, 31, 62,124, 49, 37, 37,165, 92, 59,102,107, 37, 94, +126,245,228, 28,219,118, 61, 87, 77, 7,240, 83,241, 50, 19,172,111, 19,151,175, 55,175, 15, 58, 90, 68,108,253, 14,160,111,113, +199, 11, 0,186,124,217, 7,251,118,111,214,249,118,137,159,220, 79, 56, 59,232, 65, 64,177,209,138, 54, 22,194, 0,109, 59,102, +194,228,163,245,151,192,199,199, 7,183,110,221,194,164, 73,147,208,177, 99, 71,244,233,211, 7,238,238,238, 16, 10,133,120,253, +250, 53,174, 95,191,142,232,232,104,228,229,229,161,126,253,250,255,202, 99,144,152,152,248, 92,155,140,244, 91,221,219,148, 80, + 36,230,251,143,158,238, 86, 16,117,120,112, 11,228,249, 50, 0,224, 18, 66,126, 34,132,252, 90,130, 67,252,123, 65,193,229,242, +195,195,195, 61,117, 86, 43,165, 82, 41,212,149,223,191,127,223, 83,151, 91, 43, 63, 63,223,224,168,195, 79,197,249,248,241, 99, + 55, 93,116,164, 46,186,144,203,229,242,195,194,194,220,116,156,114,185,220,160,168, 67,129, 64,192, 15, 15, 15,119,211,104, 52, + 21, 22,117, 88, 68, 24,159,211,126,116,157,178, 78,100,233,124, 58, 76,195,134, 38,152,240,207,198,149,162,147, 74,235,244, 68, +185,132,150,206,241,221, 8,165,199,245,242,242,234, 50,120,240,224, 66, 34,171,127,255,254,154, 35, 71,142, 92,113,113,113, 73, +102, 24,230,185,177,237, 40,240,209, 2,120, 69,151, 49, 12,243,168, 77,211,218, 96, 24,230,209,194,177, 99,229,203,241, 75, 33, +177,117,252,232,161,174, 37,245,139, 0, 96,239, 88, 25, 67, 70, 77,193,144, 81, 83,108, 1,180, 6, 74,142, 86, 44,173, 29, 38, +124, 58,180,106,213, 10,207,158, 61,195,133, 11, 23,112,237,218, 53,228,229,229,129, 16, 2,177, 88, 12,133, 66, 1,161, 80,248, +175, 21, 89, 37, 65,169, 84,170,231, 46, 93,189,135,195,229,171, 89, 86, 73,148, 74,229,104, 99,238,243,185,115,231, 50, 40,198, +247,106,234,212,169,197,150,127, 46,206,249,243,231, 23, 27, 37, 56,117,234,212, 82,163, 7, 75,194,119,223,125, 87, 97, 81,135, + 6,138, 47,147,160, 50,193,132,127,159, 85,171,216,208,189,114, 9, 45,134, 97, 30, 21, 19, 93, 72, 0,208,226, 34,250, 40,165, +106, 14,135,179,212,198,198,102,130, 84, 42,253,163,111,223,190, 51,250,247,239,175, 1,222, 59,200,151,119,167, 50,178,164,139, +219,247,250,113,102,102,174,124, 83,209,101, 69, 45, 79, 58,177,181,101, 67,208,214,163,135, 15,244, 79,146,196,111, 45,105,223, + 74, 18, 84, 37, 69, 43,102,101,203,150,182,239,245,227,244,140,108,153,201, 71,235, 51, 88,182,116, 40, 58,169,244,255, 3, 40, +165,114, 66,200, 44, 66,136,206,162, 59, 43,250,242,134,173,255,187,241, 55, 62,214, 95, 86,138, 53, 43,209,144, 9,162,139, 91, +175,180,101,159,128, 51,185,148, 9,162, 75, 67,178,145,124,201, 0,192,231,113, 82, 74,154, 60,154,207,227,164, 84,208, 57,212, + 37, 56, 92,106,186,163, 77, 48,225, 31,219, 23, 27,231,163,165, 19, 65, 37,161,164, 60, 89,165, 65,163,209,252, 8,224,199,138, +220,177, 39, 47,115,118, 0,216, 97,104,125,173, 79,214, 8,237,167,248,118,190,123,106,244,190,245,239,223,127, 27,128,109,166, + 75,237,175, 65, 72, 72,136,233, 32, 20,190,193,183, 18, 66,126,213, 9, 47, 67,151, 21,169,119,226, 19,180,235, 83,112,158,251, + 43,249, 78, 61, 83, 59,125,238, 78,218, 4, 19, 76,248,251,163, 56,107, 86,169, 81,135, 38,152, 96,194, 63, 78,108,201,203,179, +204, 4, 19, 76, 48,193,132,138,123, 89, 42,206,215,146, 0,232, 84,194, 74, 6, 71, 19, 16, 66, 58,149,163, 81, 23, 77,156, 38, + 78, 19,167,137,211,196,105,226, 52,113,254,127,113,150,197,173,191, 62, 33,100, 60,165,116, 7,254, 1, 40, 49,160,133, 82,250, +201, 62, 0, 58,153, 56, 77,156, 38, 78, 19,167,137,211,196,105,226, 52,113,150,115, 59,227,255,138,237, 84, 64, 59,105,209,143, +110,153,105,232,208,132, 79, 14, 55, 55, 55,176, 44, 11,134, 97, 16, 31, 31,111, 58, 32, 38,152, 96,130, 9, 38,252,171, 96,180, + 51,188, 9,197,152, 4, 61,191, 90, 8, 22,243,223,255, 65, 16,125,123,108,201,191,109, 31, 7, 12, 24,192, 49,166,126, 76,140, + 13,243, 0, 46,107,172,204,249,189,114,165,170, 53,154,176, 69,155,138,171,199,178, 44, 78,158, 60,137, 94,189,122,233,204,171, + 0, 0, 23, 23, 23,156, 60,121,178,160, 94,227,198,141, 11,146, 55,154, 96,130, 9,159,184, 79,179,173,227, 14, 66, 70, 3,244, +127, 97,151, 44,141,160,153,145,187, 11,213,179,169, 61, 10, 12,169,163, 87, 36, 3,197, 78,154, 17, 17, 87,194,240,137,238,129, + 99, 19, 21, 21,229, 89,173, 90,181, 88, 0,153, 69,170,125,176,140,150,114,243, 19, 66,136, 67,149, 70,195,205, 68,102,147, 21, + 10,133,183,133,165,101, 74,250,187,212,109,233,111, 31,111,209,171,102,117,231,206, 29,151,230,205,155, 75, 0,228,148,197,105, +130, 9, 21,122, 63,125,152,176,180,226,156,225, 73,141,126,222, 80, 51, 35, 64, 49, 20, 4,225, 52, 58,164, 95,185,120,170,245, +173, 12,150,219, 12, 64, 35,128, 54, 50, 23,139, 26,202, 20,202, 20,150,210,225, 52,234,224, 67,163,249,170, 12, 56, 13,160,123, + 9, 75,151,210,232, 67,198, 9, 37,150, 46,184,119,237,136,208,198,140,160, 90,227,190,179,161,151,193,249, 35, 78,140, 24,192, + 72, 66, 72, 71, 51, 51,179, 26,121,121,121,111, 40,165,143, 1,108,165,148, 74,202,201,201, 0, 24, 99, 97,110,222,205,211, 82, +208,232,109, 90, 86, 66,142, 74,115, 29,192, 79,148,210,140,138,186,168,222,139, 44,231, 29,211,253,155,143, 12,154,214, 9, 54, +237,127,156, 13, 96, 83,105,235, 48, 12, 51,206,213,213,213,187,114,229,202, 49,155,123, 55,216, 57,229, 68, 56,250,244,233, 3, + 0,227, 88,150,245,174, 92,185,114, 12, 33,100,167,161,125, 35, 33,196, 5, 0,151, 82, 26,167,253,111, 14,192, 23, 64, 21, 0, +209, 0,158, 82, 74,165, 31,121,142,254, 17,156,110,110,110,174, 44,203,142,117,114,114,234,145,156,156,124,154, 97,152, 95,226, +227,227, 37,159,185,239,217,174,243,175, 48,244, 27,192, 4, 99, 54, 32, 22,139,147,243,243,243, 29, 1, 64, 36, 18,165,200,100, +178, 79, 22, 37,248, 87,110,235,175,121, 50, 96,220,249, 27, 79,187,233, 23,117,105, 83,167,152, 27,151,212, 57,127, 35,162,109, +225,122,190,154,226,250, 64,109,246, 85, 44, 93,186,148, 4, 4, 4,140,170, 90,181,106,117,134, 97, 94, 44, 90,180,168, 80,234, +155,162,203, 22, 47, 94,252,191,204,173,197,112,186,213,108,117,124,208,224, 1,237,191, 25, 63,210,162,114, 37, 11, 36,166, 73, +237,127,222, 21,188, 58, 56,120, 95,207,177,131, 58,119, 3,128,101,203,150,125,229,238,238,238,197,225,112, 98,126,248,225,135, +223, 75,227, 52,193,132, 79, 0,227, 38,149, 46,243,254,172, 51,192, 28,249,180, 63, 64, 70,182,107,217,184,205,132,225,189, 8, +229,136,224, 63,110,142,218,104, 46,175, 81, 66,112,100,203,235,249,214,153, 49,160, 87, 39,166,137,175, 23, 92, 42, 89, 3, 12, + 15,219,207,188,177,223, 20,244,195, 86, 0,205,203,209,204,238,175, 67,247, 35, 49, 83, 3, 66, 0, 66, 0,134, 0,185,249, 44, +186,124, 53, 98,177,241, 66,137, 48, 54,102, 4, 51,246,231, 3, 0,231,163,251, 56, 66, 26, 85,170, 84,105,203,180,105,211,108, +235,213,171,231, 34, 18,137,204,100, 50, 89,245,168,168, 40,239,133, 11, 23,118, 38,132,172,162,148, 30, 49,146,211,163,154,155, +235,161, 77, 51,198, 52,171, 95,197, 19, 60, 69, 46, 88,185,212,253,101,212,171,150, 19,183,134,140, 35,132, 12, 46,207,148, 9, +105,105,105, 4, 0, 28, 28, 28,104, 97,145,213, 98,228,186,153, 93, 48, 99,237,121,228,229, 43,246,150,180,190, 68, 34,209, 89, +182,188, 79,158, 60, 89,167, 87,175, 94,104,230,237,134, 59,189, 82,209,244,120, 60, 0, 20,148, 27,177,175, 1, 0,230,107,251, +225,125, 28, 14,231, 66,167, 78,157,188,199,142, 29, 75, 26, 55,110,140,176,176,176, 42,251,247,239,239,196,229,114, 99, 52, 26, +205, 99, 0, 47, 40,165, 42, 3,185,121, 0,106,114, 56,156,122,127,103, 78, 87, 87, 87,177, 66,161, 24,225,230,230, 54,190,119, +239,222,245,122,245,234, 69,106,214,172,137,231,207,159, 55, 62,123,246,236,226, 6, 13, 26, 60,142,143,143,223, 33, 16, 8,246, + 72, 36, 18,217,103,120,195, 27, 15,192, 85,107,224, 88,106,192,183, 4,192, 82, 74,105,162,161,219,200,207,207,119,212, 61, 71, + 9, 33,142,159,114,127,140,217, 22, 33, 36,146, 16, 98,167,253,141,210,190, 25,134,129, 90,173,150,170,213,234,170,101,112,214, + 4,192, 24,209,100, 74, 41, 45, 45, 17,180, 24, 0,186,180,174,147, 14,130, 8,157, 69,171,152,151,204,136, 2, 1, 70, 81,231, +252,205, 8,187, 66, 86,176, 34, 88,186,116, 41, 89,188,120, 49,150, 44, 89,210, 11,128, 31,203,178,215,125,124,124, 54, 22,162, +100,217,130,101,139, 23, 47,222,176,116,233, 82, 2,160, 88, 65,100,231,213, 96,216,215, 95,247,105,191, 98,193, 84,139,132,119, + 74,132,199,200, 96,103,193,199,226, 89,147, 4,114,185,170,229,214,223,131,199,111, 94, 53,103,167, 70,163,249, 2, 64, 19,141, + 70,115, 31,192,239,165,113,154, 96,194, 39, 64,123,163, 38,149, 46,225, 38, 39,168,218,175, 45, 52, 24,233,233,238,212,127,218, +216,129, 98, 95,159,106,200,135, 5,222,164,105,112,230,212, 89, 0, 56,104,156,213,105, 80, 19, 46, 31,123,130,150,204,170,229, +215,204, 23, 79, 18, 84,184,159,160, 65, 94,140, 10, 28, 70, 5, 13, 75, 1,138,252,242,238,117,124,134, 26, 55, 94, 40,192, 16, +128,195, 0, 12, 67,192, 97,202, 73,198, 42, 94, 46,219,253,192, 55, 45,153, 5, 88,197,203,143,124, 0,125, 81,163, 70,141,245, + 1, 1, 1,206,201,201,201,118,247,239,223,135, 80, 40,132,173,173, 45,215,213,213,181,214,250,245,235,179,166, 78,157, 58,139, + 16,242,144, 82,250,198, 64, 78,159,238, 77,234,221,218, 17,180,204, 90,117,231, 44, 50, 15,252, 7, 28,134,130,111,110, 1,111, +177, 24,103,191,174,102,215,255, 84,204, 17, 66,136, 15,165, 52,161, 44,190,103,207,158,113,228,114,249, 96, 43, 43,171, 22, 60, + 30,207, 73,104,227,193, 74,184,205,222,165,146, 42,209, 41,142,121,109,103,118,114,234,182,102,122, 7,204, 88,123, 30,235,247, +223,254,173, 17,146, 22, 25,115, 12, 50,239, 93, 70,120,198,135,167,214,217,156,103,200,190,218, 2,152,163, 80, 40, 24, 62,159, + 79, 68, 34,209,176, 21, 43, 86, 40,253,253,253, 11, 28,192,252,252,252,224,231,231, 71,114,114,114,170, 92,190,124,185, 74,112, +112,176,154, 16, 18, 73, 41, 61, 94,178,197,194,236,109,126,190,204, 93, 36, 22,231,253,188,117,235,154,182,109,219,178,250,243, + 36,150,135, 19, 0,108,108,108,118,214,168, 81,131,204,155, 55, 79, 82, 81,156,222,222,222,231,253,252,252, 58,116,233,210,133, +219,186,117,107,184,186,186, 22, 44,115,112,112,128,159,159, 31,137,139,139,171,127,253,250,245,173,231,207,159,223,232,237,237, +125, 57, 38, 38,166,203, 95,217,235,104, 45, 85, 48, 66, 56,237, 40, 38, 17,242, 63,211, 88, 68,136,197,246,237,219, 29,117,115, + 50,170, 84, 42,104, 52,154,130,111,221,135,101, 89,104, 52, 26,172, 88,177, 66, 99,224, 49,149, 66,155, 28, 90,239,195, 22,247, + 45, 16, 8, 12,203,220, 75, 16,225, 34,204,172,109,110,110,238, 9,160,123,141, 26, 53,230,232, 47,174, 94,233,253,183, 84, 42, +141, 77,148,219, 68, 0,104, 91,218,229, 30, 16, 16, 48, 98,201,146, 37,125,240,191, 57, 43,235, 13, 24, 48,224,114,145,122,245, +180,223, 82, 66,200, 21,134, 97, 78, 2,216, 13,224, 3,171,187,153,153,197,132,105,147,199, 90,196,167, 41,177,252, 72, 26,118, + 95,203,198, 8, 63, 75,204,248,210, 26, 67,252, 7,153,135,252,231,240, 4, 0, 59,245, 86,121,238,227,227, 67,158, 61,123,102, + 18, 89,255, 46, 52, 5, 80, 73,239,191, 2,128,110,202,172, 52,237,125, 97, 95,164, 92,191,158,238, 59, 85, 91, 94, 73,187, 30, +213,227, 77, 5,112,175,156,253,221, 85,109, 27, 62, 0, 23, 0, 78,159, 62, 77,123,244,232, 65,116,223,197,247,236,253,207,140, +241,239,221,173, 71,199, 86, 96, 68,182,120,153, 2,132,190,165,224, 50, 42, 48,160,184,115,243, 50, 5,151,221, 83,100,195, 37, + 90, 79,136,119,255,239,234,213,245,253,241,151,160,111, 57,145, 41, 92,236,190,158, 7,101,126, 46, 82,147,222, 34, 69, 18,139, +196,248,104, 36,188,141,126, 12,144,197,134,114,126,184,227,128,134,213,190, 3,178,208, 30,207, 98, 35, 47,203,230, 84, 74,159, + 85,169,233,235,155, 33,208, 0, 74,233, 51, 3, 14,250,197, 18, 58,224,206,213,170, 85,251,105,193,130, 5,110, 79,159, 62,181, +146, 74,165,210,179,103,207, 94,141,141,141,117,114,118,118,142,155, 52,105, 82,171,202,149, 43, 59,126,245,213, 87,102,135, 14, + 29, 90, 0, 96,172, 1,156,190,189, 91, 52, 12,221,181,113,157,249,187,144, 77, 80, 68, 61,194,153, 68, 41,110, 38,231,209, 42, +214, 66, 50,165,126, 37, 88, 8,185, 88,214,218,213,162,251,209,168, 31, 1, 12, 41,141,243,214,173, 91, 46,102,102,102,107,135, + 12, 25,226, 58,109,218, 52,129,134,107,195, 61, 28,250,206,122,206,214, 80,215, 60,185,146,227,223,193, 11, 51,135,214,195,204, +245,127,234, 68,214,120,111,239, 76,182, 56, 78, 55, 55,183,113, 44,203,122,107,255,122,233,190, 59,222,200, 9,212,219,100, 65, + 57,177,116, 8,116,117,117, 5,195, 48, 49,241,241,241, 59, 13, 61, 71, 34, 81,241,179,167,216,218,218,162, 93,187,118,240,241, +241,225,182,109,219,182, 30,128,227, 37,113, 42,149, 10, 23,150,165,176,180,180, 20,219,219,219,219, 90, 90, 90,190, 83, 42,149, + 31,197, 9, 0,118,118,118,253,218,181,107,199,221,191,127,127, 90, 76, 76,204, 20,250,171, 21, 0, 0, 32, 0, 73, 68, 65, 84, + 29,127,127,255,104, 43, 43,171, 66,214, 95,115,115,115, 84,175, 94, 29, 63,252,240, 3,183, 91,183,110,101,114, 58, 57, 57,117, + 14, 14, 14, 6, 33,164,224,161, 93, 20,158,158,158,112,118,118, 70,247,238,221,185,253,250,245,235, 92,222,251,200,136,142,230, + 98, 49, 22,173,165,133,197,108,201,195,111,197,213, 55,224,188,167,232,172, 75, 34,145, 40,165, 60,237, 44,130, 18,135, 59,133, + 66, 97,129, 21,170,232,182,138,227,100, 24, 6, 11, 23, 46, 4, 33, 4, 60, 30, 15,124, 62,191,216,239,246,237,219, 27,219,206, + 56, 66, 8,195,231,243,231,112,185,220,177,114,185,220, 77, 36, 18, 73, 52, 26,205,111,114,185,124,133,214, 34,106, 83,220,181, + 91, 18,167,185,185,185,231,203,151, 47,107,148,116, 80,228,114, 57,234,213,171, 7,200, 17, 89, 26,103, 84, 84,148,103,213,170, + 85,107, 2,208, 77,209,118,141, 82,218, 86,239,191, 62,174, 81, 74,191,212,254,126,241,250,245,107, 79,157,208,210,231, 84, 41, +149,222,110,142, 86, 8,127, 35,195,238,107,217,184,180,192, 21, 29, 87, 72,208,183, 17, 23, 62, 30, 22, 80, 43, 85, 53, 7, 12, + 24,176, 7, 64, 77,237, 67,242,171, 1, 3, 6,212,226,112, 56,127, 2, 56, 6, 32,235,175,186,230, 77,156, 31,135, 50,180, 72, + 37, 66,200, 41,189,237,247,212,253,159, 59,119,238,252,192,192,192,167,132,144, 83,250,229,250,245,244,191,181,253,205, 41, 74, +105,207,121,243,230,249,174, 90,181,106,165,174,238,167, 80,136,198, 12, 29, 90,165,230,155,227,250, 91, 43,112, 57, 26,112, 25, + 2, 46, 7, 0, 37,136,125, 19,133,156,236,204, 27, 52,250, 63, 49,134, 89,178, 6,180,110,208,176, 94,208,190,245,179,153, 95, +175,231, 33, 83,154,143,103, 15,175,224,222,149, 99, 73, 26,181,230, 24, 8,189, 15, 48, 97,136,102,159, 83, 26,162, 41,255,133, +128,247, 86, 49,144, 34, 98,235,179,189,229,126, 89,171, 86,173,192,133, 11, 23,122, 62,124,248,208, 50, 59, 59, 59,117,239,222, +189,207,229,114,249, 67, 0, 27,222,190,125,219,110,195,134, 13,102,171, 87,175,238, 82,175, 94,189,154, 33, 33, 33,121, 6,112, +214,159, 53,114, 72,232,216,105,211, 69,145,135,182, 64, 16, 25,134,133,143,210, 52,151, 18,243, 22, 0, 88,143,184,220,214,169, +249,234, 11,235,218,185, 51, 94,150,124, 84,179, 17,180, 47,203,146,101,102,102,182, 54, 56, 56,216,179,105,211,166, 12, 0, 92, +127,161, 22,206,217, 26,234,122, 46,176, 53,105, 93,199, 30, 41,153,114,124,187, 37, 28,103, 67, 83,254, 40, 42,178, 62, 48, 4, +106,135, 11,245,203, 78,158, 60,105, 6,224, 3,103, 16,253,242,210,134, 17, 41,165, 25,132,144, 31, 5, 2,193, 66, 66, 8,109, +218,180,105,120,221,186,117,115,109,109,109, 33,147,201, 32,151,203,193,231,243, 33,147,201, 16, 27, 27,139, 59,119,238,192,214, +214,214,168,115,149,155,155, 11, 75, 75, 75,176, 44,251,209,156, 26,141,134,108,219,182,205,252,233,211,167,230,135, 15, 31,118, +154, 49, 99,198,187,218,181,107,223, 31, 52,104,208, 43, 71, 71, 71,249,163, 71,143,112,235,214, 45,100,100,100,160, 69,139, 22, + 6,113, 42, 20, 10,112,185, 92,200,100, 50, 8,133, 66,112,185, 92,168,213,106,176, 44, 91, 32,190,114,115,115,145,158,158, 14, + 62,159, 15,133, 66,241,151, 95,239, 58,139,150, 62, 74, 27,126, 43,174,126, 89,168,104, 63,169,210,134, 59, 51, 51, 51,197, 54, + 54, 54,115, 12,177,208, 17, 66,192,225,112,192,231,243, 65, 8, 65,219,182,109, 49,102,204, 24, 52,106,212, 8, 81, 81, 81, 56, +112,224, 0,238,221,187, 7, 30,143, 87, 80,223,224,241,137,246,237, 57, 34,145,232, 86,239,222,189,125, 23, 44, 88, 32,242,242, +242, 66,100,100,164,199,170, 85,171,230, 92,188,120,177, 15, 33,164, 9,165,148, 45,219, 74,175, 29, 18,124, 63, 92,216, 93, 46, +151, 35, 50, 50,210,152,117, 62, 64,181,106,213, 98, 25,134,121,197,178,236,117, 0,245, 40,165,109, 9, 33,103, 1,152, 23,169, + 42,165,148,126, 73, 8,201, 6,240,152, 97,152, 23, 44,203,198, 22,231, 78,101,105,105,153, 26,159,146,237,100,111, 33,194,240, + 54, 22,232,184, 66,130,254, 77,132, 16,242, 9,158,199, 36,161, 90, 85, 47, 18,126,227,120, 19,173,200,106,154,152,152, 8, 0, + 77, 0,196,196,197,197,185,232,132,150, 9,255, 14, 20, 21, 67, 58, 1, 21, 24, 24,216,179, 56,113, 85,204,189, 89,168,124,213, +170, 85, 43,245,254,103,124, 68,223,209, 14,133,157,225,219,107,173, 92,255, 19, 90,167, 79,159, 46, 93,129,176,232,123,234,200, +254,219, 29,149,196,211,183,113, 27, 61,235, 16, 69,216,157, 91, 0,232,111, 6, 53,198,181,151,152, 49, 51,255,109,219,202,169, +204,246, 43,121,136,147,164,224,214,153,223,144,154,248,102, 55, 64,103,208,232,144,236,143,238, 44,171, 12,240,117,116,176, 71, +190,146,130,165, 0, 62, 16, 91,159, 69,100,245,170, 89,179,102, 64,104,104,168,103,126,126,190,229,205,155, 55, 51,131,131,131, + 95, 41, 20,138, 95, 40,165,123,181,117, 78,164,165,165, 45,163,148,194,210,210,146,203,227,241,196,165, 57,115, 18, 66, 26,205, + 26, 59,226,198,143,219,118,137, 94, 61, 9,199,134,195,103,144,153,151,167,185,146, 34,251,138, 82,122, 74, 91,231,207, 7,105, +178, 4, 10,234,206, 99, 8, 92,204,121,206,132, 16, 17,165, 52,191,132, 55, 87,255, 33, 67,134,184,234, 68, 22, 0,164,229,168, +184,121,114, 21,167,117, 29,123, 52,238, 48, 0, 97,151, 67,112,232, 90, 2,170, 86, 50,187,230,109,158, 89,234, 17,101, 24, 38, + 70, 79, 52,121,157, 60,121,210,172, 87,175, 94,121, 0,244,135, 68, 63, 40,103, 24, 38,166,140,155,109, 17, 33,196,105,207,158, + 61,140, 74,165,202,141,138,138,130,179,179, 51,156,156,156, 96,109,109,141,103,207,158,225,210,165, 75,120,254,252, 57, 88,150, + 69,131, 6, 13,140, 58, 95,239,222,189,195,163, 71,143,208,189,123,143, 25,169,169, 41, 86,182,118,246,210, 27,215,175,173, 46, + 15, 39,203,178, 4, 0,124,125,125,225,235,235, 43, 74, 72, 72,112, 59,117,234,148,227,242,229,203,223,122,122,122,238,147,201, +100,133, 44, 7,134, 10, 45,173,112, 41, 16,129, 34,145, 8,124, 62, 31,217,217,217, 72, 78, 78, 70, 78, 78,206,251,177, 28, 27, +155,207, 34,180,138,179, 80, 85,100,253, 79, 41, 14,139, 19, 83,132,144,161, 0,230, 24,184, 47, 80,171,213,224,243,249,104,222, +188, 57, 54,109,218,132,123,247,238,225,216,177, 99,240,240,240,192,200,145, 35,193, 48, 12,158, 62,125,106,108, 19,217,208,208, +208, 57, 95,125,245,149,239,158, 61,123, 68,177,177,177,120,254,252, 57,108,108,108,176,105,211, 38,225,248,241,227,171, 93,190, +124,121, 17,128,159,202,220, 87,189,232, 66, 87, 87,215,129,245,234,213,251,160,142,179,179,179,245,185,115,231, 28,117, 2,172, +104, 68, 98, 49,200, 92,180,104,209, 58, 31, 31,159,245,218,225, 66, 63, 0,230,148,210,246,135, 15, 31, 38, 0,208,191,127,127, + 74, 8,209, 61,144, 30,135,132,132,116,120,246,236, 25, 93,178,100, 73,177,253, 92,106, 74,226,182,117,155,182,175,251,113,233, + 44,193,204,238,214,232,223,132, 7, 17,159,192,202,140,135, 21, 27,119,170, 30,220,185,246,200,197,197,229, 20,128,175, 18, 19, + 19,225,226,226,146, 11,224, 5,135,195,137,209,104, 52, 18,147, 47,252, 63, 11,197,105, 17,173, 85, 57,177, 56,161, 84, 30,161, +166,111,241,210, 97,222,188,121,190,129,129,129,119, 63, 70,100,233, 59,193, 19, 66, 40, 33,164, 61,165,244,106,193,195,180,196, + 33,195, 2,219, 23,227,226,236,228, 96, 55,119,100,107,176, 44,160,214, 0,106, 13,133, 52, 79,134,200, 39,247,242, 32, 34,135, + 13,106,145, 80, 16,180,124,193,244, 42,225,241, 12, 36, 25, 74, 92, 61,190,157,166, 38,190,233, 71,163, 15,141,174, 40,145,229, +236,232,112,101,255,246,101,184, 23,173,128,134,125,175,179, 88,150, 22,252,254, 12, 15,156,234, 14, 14, 14,171,111,223,190,237, + 37, 20, 10, 45, 95,190,124,169, 9, 9, 9,145, 40, 20,138,173, 58,145,165,197,208,198,141, 27,171,204,205,205,145,155,155, 43, + 87, 42,149,185,165,136, 44,183,246,141,234, 95,251,113,219, 46, 81,190, 66,129, 44,153, 28, 28,123,199, 66, 34, 75,139, 86, 29, +106, 84,174, 76, 68,150,160, 0,222,100, 43, 37, 37,137, 44, 0, 16, 8, 4,157,166, 77,155,166, 63,190, 13, 7, 75,158,218, 76, +200,211,220,140, 72, 99,195, 46,135,224,250,211, 52, 86,196,231,104, 42,209,232, 42,101,237,123,124,124,252, 78,137, 68, 50, 79, + 34,145,204,211, 19, 87,111, 0,204,171,109,205,255,160,188,142,141, 96,158, 68, 34,153,199,178,236, 78, 3, 14,173,100,200,144, + 33,241,117,234,212,201,242,241,241,201,122,247,238, 29, 34, 34, 34,144,145,145,129, 13, 27, 54, 32, 50, 50, 18, 44,251, 94, 7, + 22, 55,140, 98,128, 64, 66, 70, 70,186, 5,165, 20, 25,233,239,204, 23, 44, 88, 96, 93, 30, 78,141, 70, 83,232,222,170, 92,185, + 50, 38, 77,154,196,207,203,203,179,121,251,246,173,149,254, 50, 67, 57, 21, 10, 69, 65, 42, 12, 74, 41, 20, 10, 5,178,178,178, +160, 80, 40,240,234,213,171, 2,145,165,221,254,103,179,104,233,126,139,197,226,100,157,131,168, 72, 36, 2, 33,164,184,225,183, + 10,201,254,172,219, 22, 33,132,138,197,226,228,114,136,195, 50,247,199,192,243, 14, 62,159,143, 49, 99,198,224,238,221,187,136, +138,138, 2,135,195,129, 84, 42, 69, 94, 94, 30, 58,119,238, 12,129, 64, 96,172, 69,139,242,249,252,161,243,231,207, 23,197,196, +196, 32, 45, 45, 77,231, 76, 15,141, 70,131, 25, 51,102,136,133, 66,225, 80, 99, 77,247, 18,137,164,235,203,151, 47,107, 22,253, + 36, 37, 37,101,233,251, 20,150, 23,135, 15, 31, 38,253,251,247,167,253,251,247,167, 58,193,101, 40, 50,227, 35,182, 29, 59,113, +234,194,119, 63, 4,229,230, 73,115, 80,213, 85,140,220,156, 44,172, 8,252, 81, 21, 26,122,253,202,156, 25, 19, 91,134,132,132, +172, 2,240, 66,187,202,139,144,144,144, 17, 63,252,240,195,239,208,166,121, 48,225,159,131,226,180,136,254,189, 87, 17,195,123, +197,113,104,135, 15,197,229,164,212, 69, 28,182,211, 9, 47,173,232,186, 82,200,162, 85,106,231, 83,109, 80, 67, 39, 7,251,203, +123, 54, 47,181, 56,245, 4,136,143,123,131,212,196, 88, 52,105,217, 30,145, 79,194,193,170, 52, 71,232,203,144, 50,195,211,137, +247,128, 26, 62,181,235, 76,110,215,178, 46,130, 78,229,226,101,216, 57,100,166, 38,110,166, 49,135,142, 84,196, 9, 34, 85, 6, +248, 58, 85,114,184,242,251,150, 0,187,179, 17, 12,226,226,222,224,248,239,235,161, 82,126,160, 43,206, 24,221,121,179, 10, 65, +110,102, 50, 20, 57, 26,136,152, 60,145,145, 39,245, 85,165, 74,149,246,172, 91,183,110, 98,203,150, 45,205,252,253,253, 95,102, +100,100, 44,167,148, 30,210,235,224,191,168, 89,179,230,247,155, 55,111,174, 22, 23, 23,135, 75,151, 46,189, 4,112,191, 20,206, +120, 14,135,179,245,210,239, 59,103,137,171,212,194,134,249,223,169, 15,223,139,232, 77, 41, 61,171,199,233,211,169, 94,141, 83, +203,191,255,134, 97, 31,252,129, 71,177,201,136,206,146, 95, 42,137, 51, 45, 45,141,200,100, 50, 47, 27, 27, 27,253,237,192,197, + 92, 42,159, 61,176,134,164,243,156, 27,174,249, 74, 13,132, 60,134,126,219,199, 83,114,231,216, 33,251, 52,121, 26,209, 69, 35, + 26,139,151,185, 26,112,185, 92, 56, 58,254,111, 4, 41, 34,195,168,216, 7,139,187,119,239, 50, 28, 14,167,144, 64,215,183, 16, + 25,107, 41, 50, 6,134,114, 22, 21, 90, 58,168,213,106, 82, 94, 78,185, 92, 94,108,206,177,226,124,181, 88,150,253, 36,251,111, +140,133, 74,127,200, 80,231, 79,151,159,159,239, 40, 22,139,147,117,195,127, 21,101,209,250,152, 72,196,210,134, 47,141,105, 31, +195, 48, 96, 89, 22,124, 62, 31, 13, 26, 52,192,169, 83,167, 96,103,103, 7, 43, 43, 43, 88, 89, 89, 65, 44, 22,195,222,222,190, + 64,104, 49,140,193, 81, 58, 84, 46,151,123,120,120,120,224,213,171, 87, 16,137, 68, 5, 31,161, 80, 8, 95, 95, 95, 72,165,210, +202,159,207,118,255,105, 48,110, 80,167, 62, 91,130,143, 14, 63,117,234,244,100,165, 60,191,110,173, 90, 53,233,253,208,203,143, +230,204,152,216,205, 36, 77,254,191,160,179, 70,233,251, 90,205,157, 59,119,126,121,249,230,206,157, 59,191, 56, 11, 87,121, 5, + 23,222, 15,245,233,190, 81, 32,180,116, 10,178, 56, 37,169, 19, 89,187, 55, 45,177, 58,250, 16,136,143,143,193,133, 67, 27,115, + 84, 74, 69, 6,203,170, 60,163,159,135, 3, 12,126, 51,168, 9, 12,109,214,167,123, 7,114,225,169, 2,217,153,169,120,113,255, +220, 27,200, 4,243, 42, 82,100,237,217,178,212,238,228, 19,130,184,184, 55, 56,123, 96,125,150, 74,173,252,130, 70,135, 60,252, + 24,238, 97, 2, 65,159, 65,181,109,122,142,245,147, 64, 67, 52, 24, 26,249,236, 75, 87, 63,210, 71,114,189,244,200, 48,125,164, +166,166,174,176,176,176, 96,126,250,233,167,209,249,249,249, 75, 40,165,135,245, 46,156,206, 85,171, 86, 13,218,182,109,155,219, +219,183,111, 5, 55,110,220, 72,191,114,229, 10, 5, 16, 88,198, 3,124, 54, 33,132,211,200,171,242,212, 7,111, 18,122, 83, 74, +255,208,227,244,237,217,184,206,205, 93,129,139, 44, 85, 55, 15, 35, 55, 49, 14,243,110,198,103, 3, 48,248,120,171, 84, 42,100, +100,100, 64,149,155,161,110,226, 34,205, 90, 50,192, 81,158,156,145,207,229,177,121,106, 31,171, 20,249,229,244, 55, 28, 51, 51, +179,114, 31, 87,190, 64, 0,149, 74,133,202,149, 43, 23,148,101,231,228,130, 16, 2, 23, 23,151,178,110,182, 0, 0, 51, 90,181, +106, 69,154, 55,111,126,103,253,250,245,231, 75, 19, 43,229,177,104,149, 5, 67, 57, 89,150,101, 74, 56,190,164,188,156,250, 22, +173,178,132,214,231,180,104, 21, 39, 90,244, 69,162,190, 16, 42,143,143,214,167, 20,135,198,136,176, 98,120, 10, 44, 90,225,225, +225,112,119,119,135, 82,169,132,165,165, 37, 44, 45, 45, 97, 97, 97,129,156,156, 28,240,120, 60, 24,185,207,172, 72, 36,122, 27, + 17, 17, 81,179, 82,165, 74,208,104, 52,133,196,214,203,151, 47, 97,110,110,158, 96,172, 69,203,213,213,245,156, 54,234,176, 16, +156,157,157,173, 43,226,184,234, 91,178,250,247,239, 95,174, 23,179, 45,129,179,130, 1, 4, 15, 24, 48, 96,207,227,208,211, 77, + 92, 92, 92, 78,251,248,248, 16, 0, 48, 69, 24,254,187,172, 89, 37,140,176,165, 22,177, 68, 41,244,254,167, 2, 32,218,255,169, +122, 66, 76,255,183,162,152,178,119,129,129,129,151,245,252,187, 82, 63,114, 23,116, 41, 30, 10,249, 66,115,203,178,100, 57,218, +219, 93,254,101,195, 18,171, 67, 97, 64, 66, 92, 12,174, 30,217,148,165,214, 40,191, 0, 75, 19, 67, 47, 30, 57, 12,130, 60, 68, + 31,190, 10, 28, 50,160,139, 64,163, 70,181, 61,113,236,169, 10,169,241, 47, 65, 41,187,155, 38,255,158,247,209,157,163, 86,100, +237,222,180,196,238,104, 56, 65,124, 92, 12, 46, 28,218,152,165,214, 40,191, 40, 79,178, 83, 29,198, 18, 98,203, 49, 23,109, 29, +222,165,233, 64,207,170,110, 96,169, 10, 44,159,162,239,108, 7,238,139, 7,121,199, 60,186,112, 14,177,185,236,228,248, 80,195, + 18,129,230,230,230, 46, 35,132, 28,165,148, 70,234,117,200, 95, 86,171, 86,109,229,207, 63,255,236,149,144,144, 96,249,224,193, +131,236, 29, 59,118,196,176, 44, 27, 64, 41, 45, 51,138,138, 82,250, 29, 33,228, 23,253,124, 57,132,144,250,179, 70, 15, 9, 29, + 50,106,172, 40,230, 98, 48,108, 99, 34,241,253, 77,137,230, 69,134,194,159, 82,154, 84, 18,151,131,131, 3, 77, 77, 77,125,147, +153,153, 89,211,220,220, 28,239,222,189, 67,122,122, 58, 50, 51, 51, 33,207,206, 80,219,107, 50,165, 68,157, 14, 46,151,139,148, + 56, 53, 52, 26, 77, 82, 89,214,172,146,162, 14, 1, 4,202,100, 50,157,200, 42, 40,183,178,178, 10,180,178,178,210,249,104,237, + 44,225, 33,166, 75,239, 64,180,233, 29, 90,252,241,199, 31,207,186,117,235, 22, 95,156, 88, 17, 10,133,200,207, 55, 46, 75, 72, + 73, 81,140,229,225, 44,201,162, 85,180,220, 24, 78,221,240,165,206, 9,190,104,185, 14, 28, 14, 7, 44,203,126, 80,254, 87,139, + 22,253,232,192,242,136,156, 66,214,229, 50, 18,135,150, 39, 18,177,162, 45, 90,186,115,193,231,243,113,226,196, 9,140, 26, 53, + 10, 26,141, 6,102,102,102,176,176,176,128,185,185, 57,142, 28, 57, 2, 93,250, 7, 99,154,168, 82,169,246, 6, 6, 6,206,223, +182,109,155,152, 82, 10,129, 64, 80, 32,180,150, 44, 89, 34, 83, 42,149,123, 13, 17, 90, 5, 25,223, 89, 26, 81,189, 82,233, 81, +135,197,173, 83,130,191,150, 77, 64, 64,192, 8,150,101,251,160, 72, 10,135, 34,245, 10,165,126, 40, 45,189, 3, 0,219,128,128, +128,113, 44,203,234, 2,104, 10, 69, 23,234,213,211, 61, 75,106, 14, 24, 48, 96, 79,209,168, 67, 19,254,241,184,247, 55,110, 91, +123,189, 68,165, 68,219, 95, 20, 8, 46,110,201, 34,107,128,143,163,189,195,229,157,235,151, 88,237,187, 11, 72,226,162,113,235, +196,230, 44, 13,171,210, 23, 47,109,140,236,121, 27,185, 58,218, 32,253,182, 12,217,105,111, 1,138, 7, 31, 47,178, 6, 85,119, +116,176,191,178,107,227, 18,187,144,135, 12, 18,222,198,224,138, 86, 12,126,140,200, 26, 38, 16,244,241,173,225,182,107,240,151, +173,109,173,137, 26,234,216,103,248,101,228, 64,132,245, 82,162,245, 32,107, 52,235,110,137,106, 13, 69, 3,207,236, 76,239,232, +234, 71,198, 26,106,221, 42, 34,178,122,121,121,121, 45,189,115,231,142, 39,203,178,150, 87,175, 94,205,217,182,109, 91,116,126, +126,254, 70, 74,233,105, 35, 30, 14,250, 34,171,209,220,241, 35,111,172,252,249, 23, 81, 68,216, 61, 4,237, 61, 9,153, 74,161, + 57, 23,159, 59, 64,127, 88,177, 20, 75,201,197,141, 27, 55,122, 45, 92,184, 80,144,158,158,142,180,180, 52,100,100,100, 20,124, +114,115,115,225,236,236,140, 63,254,248, 67,153,157,157,125,219,128,135, 77,133, 71, 29, 22, 7, 75, 75, 75,240,249,124, 40,149, +202, 2,139,150, 80, 40,132,181,181, 53,222,189,123,135,131, 7, 15, 2, 64,122,169, 22, 54,190, 32,145, 97,136,187,216,204, 76, + 46, 18,137,216,226,172,106,198,114,106, 17,255,229,151, 95,186, 5, 4, 4,136, 26, 55,110,252,129, 69,171, 60,156,148,210,188, + 46, 93,186,152,109,220,184, 17,158,158,158, 80, 40, 20,133, 4, 21,195, 48,224,243,249,136,139,139,195,242,229,203, 65, 41,205, +251,171,123, 30,125,209,162, 47,134,180, 62, 84, 31, 8, 33, 67, 45, 70,101, 13, 13, 26, 27,137,168, 47,220,132, 66, 33, 50, 51, + 51,197,132,144,161, 37,100,176, 55,216,162,165, 19, 90,145,145,145,216,179,103, 15,186,119,239, 14, 91, 91, 91,100,100,100,224, +208,161, 67,120,246,236, 25, 4, 2, 1, 8, 33,198, 88,181,216,230,205,155,255,120,253,250,245, 94,254,254,254,117,190,255,254, +123,113,221,186,117,241,226,197, 11, 4, 4, 4,228,135,133,133, 69,201,100,178, 0, 24,146,216, 84,155,241, 93,151,140,212,160, +168,195, 34,235, 20, 69, 9,233, 29,190, 44,129, 77, 63,245, 67,161,244, 14,250,184,117,235,150,183,151,151,151, 15,222, 71, 18, +234, 30,184,250,209,133,133, 30,198,137,137,137, 77, 97,138, 58, 52,225,175,237,235,174, 18, 66, 10, 18,150,234,196,215, 7, 81, +135, 31,174, 73,102,248,143, 28,111,181,247, 46, 65, 92,108, 20,238,159,217, 90, 84,100, 25,210,217,116,210,207,181, 33, 18,155, +215,101,201,251,112,230,236,180, 56,128,114,140, 22, 90, 69, 57, 65,217,239,252, 71,140,183,219,127,159, 64, 18,247, 26, 55,143, +111, 49, 90,100,233,115, 14, 19, 8,126,224,113,200,194, 30,109, 27,241,219, 52,172, 1,243,148, 55, 72,138,151,224, 96,100,106, +122, 84,134,124,236, 77,162, 68,236,107,249, 47,221,199,217,217,217, 58,243,208,115,162,189,221,237,147,217,199, 42,127,193, 40, +169,146, 6, 74,110,208, 37,197,182,243,195,109, 86,183,178,178,250, 41, 44, 44,172,146, 72, 36,178,186,127,255,190,102,251,246, +237,113,249,249,249,171, 41,165, 7, 12,218,247, 15,151,187, 53,173, 81,245,234,202, 45, 59, 69,185,210, 60, 72, 21, 74, 8,157, + 92, 52, 71, 67,159,244, 43, 41, 1,102, 81, 78,161, 80,184,255,192,129, 3,221,253,252,252, 60,235,215,175,207,164,167,167, 35, + 55, 55, 23,185,185,185, 58,171, 23, 34, 35, 35,217,216,216,216, 4,161, 80, 88,102, 59, 43, 42,234, 80,159, 83, 47,189,195,124, + 0, 12, 33,228, 94,120,120,120,110,183,110,221, 32, 22,139, 33,149, 74,225,225,225, 1,181, 90,141, 51,103,206, 32, 44, 44, 76, +202,178,236, 85, 0,225,165,237,187, 76,150,231, 65, 8, 97,100,121,121, 13, 70,140, 24,209,110,230,204,153,133, 66,210, 29, 29, + 29, 97,103,103,103, 20, 39, 0,164,167,167,215,254,227,143, 63,166,135,135,135,127,215,189,123,119,235,249,243,231, 11,189,189, +189,161,209,104,152,242,114,102,100,100, 88, 63,120,240, 96,117,155, 54,109,190,233,214,173, 27,119,229,202,149,176,182,182,134, + 70,163,129, 88, 44, 70,118,118, 54, 2, 2, 2,112,227,198, 13, 53,165,116, 75, 86, 86,214,247,198, 92, 75,229,180, 96, 21,226, + 44,201, 2, 84,146, 16, 42,174,254, 95,209,206, 34,194, 13, 54, 54, 54,115, 0,204, 41, 33,131, 61, 12,189, 55,117, 66,139,195, +225,224,205,155, 55,216,190,125,251, 7,121,180,116,233, 31,138,227, 46, 97,223,233,149, 43, 87, 52,132,144,150,247,239,223,159, + 51,124,248,240,177, 82,169,212,205,220,220, 92,162, 82,169,126,147,201,100,186, 60, 90,124, 99,250, 16,169, 84, 26, 91, 92,212, + 97,209, 58,128, 77,169,156, 69,210, 59, 20, 74,225, 80,100,181, 66,169, 31,138,166,119,208,231,108,213,170, 85, 12,195, 48,207, +181, 67,240,207, 81, 36,186, 80,143,179,102, 98, 98, 98, 83, 23, 23,151,171, 0,204,138, 70, 29,254, 21,215,146,137,243,255, 91, +108,161,180,132,165,197,175, 5,209,197, 59,111, 32, 16,167,227,209,165,221, 70,139,172,226, 32,207,207,139, 90,180,255,109, 67, +133, 60, 31,210,172,228, 23, 52,230, 64,202,199,159,109,152, 95,188, 23, 11,145,121, 38, 30, 94,252, 53, 83,163,201,255,130, 70, +253, 39,188,252,116,152,247,243,217,195,124, 98,109,135, 71,211, 71, 65,146, 41,197,217,232,140, 67, 52, 79, 62, 57, 88, 59, 87, +160, 91, 75,114,125,215,130,164,173,126,125,173, 7, 58, 84,230, 97,237,172,223, 32,154,107,207,111,214,177,173,193,115, 32,234, + 28,228, 55,108,216, 48,201,207,207,207, 98,224,192,129, 47,211,211,211, 11, 57,200,151,227, 68,199, 19, 66,126, 62,189,109,205, + 44,251,122, 45,176,249,135,217,154,253,161, 79,138, 70, 33,150, 10, 31, 31, 31,205,173, 91,183,102, 78,154, 52,105,109,199,142, + 29, 43,247,233,211,135,239,238,238, 14,161, 80,136,215,175, 95,227,250,245,235,202,232,232,232,132,188,188,188,153,245,235,215, + 47, 51,199, 89,124,124,252, 78,129, 64,128,136,136, 8,180,107,215, 46, 80,107,177,122,115,235,214,173,121,217,217,217,200,206, +206,198,224,193,131, 11,202,167, 76,153, 50,175,106,213,170, 72, 79, 79, 47,107, 95, 23, 17, 66,182,225,253, 92,135, 73,193,193, +193, 45,143, 31, 63,222,114,198,140, 25,252,238,221,187,227,246,237,219,184,112,225,130, 82,169, 84,134, 2, 8, 53,116, 90, 27, +109,254,161, 7,132,144, 39, 65, 65, 65, 45, 57, 28, 78, 65,198,251,136,136, 8,236,222,189,187, 60,156,106, 0,171, 9, 33, 63, + 7, 7, 7, 47,186,120,241,226,232, 17, 35, 70, 88,169, 84, 42, 68, 70, 70,226,215, 95,127, 45, 47,231,244, 74,149, 42, 45, 60, +115,230,204,111,231,207,159,255,106,216,176, 97,204,180,105,211,176,105,211, 38,252,231, 63,255, 97, 53, 26,205,113, 30,143, 55, + 34, 53, 53, 85,250,153, 58,158, 29,218,105,117,118, 24, 49,231, 97,153,188, 31, 51, 52,104, 96,187, 19, 63,186, 91,210,238, 71, +251,246,237, 11,172,140,148,210, 66,126,117, 58,129,101,236,208, 33, 0, 27,237,117,186, 5,239,231, 23,213,207, 10,207,193,255, + 50,199, 27,202, 88, 39, 81,110, 19, 1, 57, 34, 75,159, 84,218, 6,160,168, 83, 6, 91,230,162, 69,139,214, 45, 94,188,120, 93, +209, 20, 14,250,149,138,166,126, 88,186,116, 41, 74, 74,239, 0, 32, 99,209,162, 69, 63,106,251, 39,162, 29, 46,108, 2,109,116, +161, 30,231, 30,109,185,217,146, 37, 75,134, 3, 40,141,211, 4, 19,254, 50,148,226,163, 69,231, 71, 92,223,175, 2, 96, 15,194, +204,163,175, 15, 70,124,116, 7,198,210,185,127,238, 91,178, 9, 20, 25, 84,163,158, 83, 33,123,192,114, 22, 68, 92,223,199, 2, +196, 6,132,153, 75, 95,255,231,163,219, 73,172,237,144, 19, 48, 9,255,121, 42,161, 73, 82,213,215,193, 10, 69, 33,107,144,214, + 39,107,144,171, 31, 57,104,235,202, 59, 58,253, 11,123,114, 58,125,184,209,219, 73, 77, 77, 93,105, 97, 97,193, 89,189,122,245, +104,153, 76, 86,200, 65,254, 35, 30, 18,179, 9, 33,156,102,213, 61,167,222,125, 21,219,199,144,225,194,162,104,213,170, 85,226, +179,103,207,134, 92,184,112,193,255,218,181,107,157,242,242,242,188, 8, 33, 16,139,197,111, 20, 10,197, 69,161, 80,184,223, 16, +145,165,255, 64,209,159, 34, 6, 0,178,179,179,145,147,147, 83, 40, 13, 1,240,222,191, 42, 53, 53, 21, 30, 30, 30,198, 62, 16, +175, 17, 66,194, 2, 2, 2,218, 6, 4, 4, 52,208, 90,133,174,149,119,200, 76, 43,120,174,137,197,102, 18, 66,136, 27, 95, 32, +148,222,186,117,235,226, 71,114,230,105, 45, 37,107,215,174, 93,187,194,220,220,188,105, 68, 68,196,165,143,225,212,138,168,126, +246,246,246,174,123,246,236, 9,217,181,107, 87, 11, 46,151,123,155, 16, 50, 32, 51, 51,243,115, 79, 42, 61, 1,134,205,113, 88, +166,197,200, 16,139, 88,121,241, 41,132,155, 70,163,201, 93,184,112, 97, 74, 81,225, 85,212,122,165,251,175, 84, 42,243, 13,188, +151,140,137,162, 44, 67,100,144, 92, 0,120, 63,119,225,251,105,117, 12,157, 84, 26, 64,137,115,103, 46, 94,188,152, 46, 93,186, +148, 48, 12,115, 28,192, 11,134, 97, 94, 21,117, 86,215, 95,182,116,233, 82, 44, 94,188,152, 46, 89, 82,242, 59,170,142,243,217, +179,103,148,195,225, 92, 2, 16,195,225,112,222,232,243,234,151,235,214, 41,141,211, 4, 19, 62,187,208,162,209, 33,113, 0, 70, + 85,232,155, 98, 76,200, 69,188,119,100,172, 56,206, 55, 7, 98, 1, 12,171, 40, 62, 22,248,105,108,179,246,179, 0, 16, 10,172, + 45, 42,178,244, 33,185, 78,143,187,180, 38,129,205, 58,182,157,161,181,134,173, 52,118,123,197, 57,200, 87,128,216,250,192, 65, +222, 88,248,248,248,104, 0, 4, 3, 8, 46, 58,169,116, 57, 30, 58, 16,139,197, 5,195,136, 12,195,196,100,102,102, 66,103,209, +210, 47,215, 30, 19, 88, 91, 91,151,103,191,243, 0,156, 37,132,156,167,148,106, 42,226, 88,202,100,121,238,218, 7, 28,167,162, + 56,181, 65, 14, 99, 43,146,243,221,187,119, 18, 0,173,170, 85,171, 38,136,138,138, 82,252, 93, 58,152,138,176, 14,125,106, 84, +180,112,211,190, 48,212,254, 4,199,242, 69, 5, 19,254,218,165, 77, 29, 14,244,115, 7,149, 53,169,180, 78,160, 81,252, 90, 66, + 27, 41,121,175, 36, 41,128, 61,175, 95,191,246,100, 89, 54,182, 24,203, 82,161,101, 75,150, 44, 65, 73, 57, 3,139,112, 2,192, +177,184,184, 56, 87,141, 70,147, 88,132,183, 80,121,105,156, 38,152,240, 55,177,104,253,127, 98,175, 66,177, 24,192, 98, 67,235, + 39,222,164, 11, 0, 44,248,200, 14, 52,178,162,247,163, 60, 34, 43, 36, 36, 68,243, 41,142,169, 74,245,126, 52, 76,127,238, 66, +125, 12, 31, 62,124,103, 5,239,187,230, 19, 28,207,127, 4,231,223, 73,100,153,240,247, 6,205,136,136, 3,240, 67,153,245,202, +206, 6,255,129, 48,210,254,204, 0,144, 81,130,214, 41,109, 89,105,156, 0,144, 13, 32,187,152,117, 75, 42, 55,193,132,207, 10, +198,116, 8, 76, 48,193, 4, 19, 76, 48,193, 4, 19, 62, 13, 8,128, 78, 37,188, 65, 24, 28, 77, 64, 8,233, 84,142,183,249,139, + 38, 78, 19,167,137,211,196,105,226, 52,113,154, 56,255,191, 56,203,226, 46, 26,189, 92, 81,211,115,253,165,226, 74,191,221,186, + 72,152, 79,241, 1,208,201,196,105,226, 52,113,154, 56, 77,156, 38, 78, 19,167,137,179,156,219, 25,255, 87,108,231, 83,126, 76, + 62, 90, 38,152, 96,130, 9, 38,152,240, 15, 66,231,154,196,133,171, 1,115, 54,138, 38, 84, 4,223,151,213, 72,101, 0,168, 40, +190,255, 71, 16, 66, 92, 0,244,208, 43, 58,173, 11, 6, 50, 9,173,127,238, 73,173, 14, 96, 62, 0,253,240,188,187,148,210,192, + 34,245,246, 1,208,159,144, 80, 10, 32,128, 82,250,202,152,237,113, 56,156,192,182,109,219, 78,190,113,227,198, 26,149, 74, 21, + 80,142,246,122,186,184,184,252, 72, 8,105, 12,128, 71, 8,121,157,156,156, 28,168, 82,169, 46,126,196, 49,168,226,236,236,188, + 10, 64, 67,134, 97,120,132,144,168,228,228,228,229, 42,149,234,202, 71,112, 90, 58, 57, 57,181,166,148, 58, 3,224,240,120,188, +119, 9, 9, 9,119,202, 27, 61, 55, 96,233, 51,126,182, 84,205, 3, 0, 43,115,174, 42,100,177,143,210,208, 50,211, 85,110,130, + 9,255,247, 29, 61,167,104, 81,215,170, 88, 65, 40,190,215, 0,164,107, 21,178,241, 92, 12,190, 47,113,253,226, 2,110,138,112, +118,173,138, 21,148,190,231,232, 90,141,172, 62,247,186,140,224, 46, 3, 56,117,216, 1, 48,227, 13,153,224,252, 19, 4, 6,125, + 6,244,208, 31,226,212, 38, 96,222, 81,166,208, 26, 92,147,184,104,184,224,134, 68,208, 56,221, 67, 8, 64, 3, 0,213, 1,188, + 2, 16, 78, 41,205,249, 72,193,240,143,224,252, 27, 98, 17,165,116, 72,145,253,254,160,210, 23, 95,124,209,251,252,249,243,102, +186,233, 89, 88,150,133, 88, 44, 86, 3, 24,105,196,241,116,244,247,247,159,251,203, 47,191, 96,224,192,129, 11, 9, 33,235, 40, +165,185,134,174,111,103,103,215,191, 74,149, 42,155,118,238,220, 89,169, 69,139,150, 68, 32, 16,224,245,235, 40,183, 9, 19, 38, +212,117,114,114, 58,158,156,156, 60,214,216,157,183,183,183, 31, 90,181,106,213,181,219,183,111,119,104,211,166, 13, 8, 33, 8, + 11, 11,115,155, 62,125,122, 3,103,103,231, 3, 73, 73, 73,223, 24,203,233,224,224, 80,163,106,213,170, 29, 54,111,222, 44,110, +221,186, 53, 68, 34, 17,194,195,195, 45, 38, 78,156,232,236,236,236, 28,153,148,148,116,213, 88,145,245, 56,236,228, 87,106,165, + 60, 8, 0,184,124,225,236,150,235,178, 79,166,135, 93,235, 85, 86,217,128,165, 56,102, 18, 91, 38,152, 96,130, 62,134,186,194, +153, 82,204, 58,255,235, 15, 12, 0,116, 25,189,108,218, 80, 87,172,217, 43, 65, 82, 5,241,125, 63,162, 50, 54,237, 73, 64,242, +199,180,115, 7,192, 76,231,114,167, 53,107,222,220, 97,202,205,155, 81, 74,224,183,255, 19, 3,200,248,226,202, 75, 20, 90,253, +235,144, 0,112, 49, 31, 0,249,178, 58, 57,112, 33,134,115,189,115,231,206,213,198,140, 25, 67, 26, 53,106,132,176,176,176, 26, + 7, 14, 28,232,193,229,114,163, 52, 26, 77, 24,128,167,134,102,181, 38,132,240, 0,248,114, 56,156,198,127,103,206,191, 57,204, +181,251,157, 12,224,174,206,162, 85,180,210,159,127,254,121,130,203,229,234, 44, 90,205,164, 82,169, 83, 17, 43,152, 33,240, 82, +169, 84,120,254,252, 57, 24,134,225, 1,240,198,135, 83,106,148,116, 94,220,220,220,220,182,134,222, 13,179, 39, 92, 49, 50,242, + 1,228, 43, 33,176,112,194, 47,187,131,237,102,126,251, 77, 63, 43, 43,171,235,217,217,217,191, 27,113, 49,123,123,120,120,172, +123,244,232,145,189,153,153, 25, 88,150, 69, 78, 78, 14,156,157,157,177,115,231, 78,155,153, 51,103, 14, 17,139,197, 87,100, 50, +217,127,140, 17,231, 85,171, 86,237,240,228,201, 19,177,110, 66,105,133, 66, 1, 55, 55, 55,236,219,183, 79, 56,109,218,180,218, + 66,161, 48, 94, 46,151, 71, 27,202,153, 45, 85,243,212, 74,121,208,158, 45, 75,220, 1, 96,196, 55, 75,130, 4, 57, 86,103, 12, + 41,203,150,170, 79, 3, 48, 9, 45, 19,254,234, 7, 69, 99, 7, 7,135,195,105,105,105, 87, 1,140,173,136, 20, 36,132, 16, 87, + 46,151,235, 77, 41,181,209,254,207, 84,171,213, 49,148,210,114, 39,212,117,168,214,161, 23,132,102,163, 64,217, 6, 12, 0,194, + 48,225, 26,101,222,238,180, 23,151, 79,126, 20,167, 64, 60, 26,160, 13, 24,128, 37, 12,243,136, 85,231,237, 76,125,118,249,236, +223,229,252,220,206, 66,205,170,206,134, 79,140, 89, 17,124,131,171,192,133, 97,193,236,123, 3,131,135, 21,167, 2,221,191,253, +246, 91,231,111, 38, 79, 38,163, 70,142,172,126,245,198, 13,210,206,152,217, 10,254,129, 40,205, 97,191, 88,161, 53,160, 14,177, + 5, 48,231,192,166,249, 12,151,195, 33,254,223, 6, 14,217,181,101, 53,211,185,215,128,130,225, 19, 63, 63, 63,248,249,249,145, +160,160,160,234,151, 46, 93,170,190,111,223, 62, 53, 33,228, 17,165,244, 96, 73, 27,235, 86,141,200, 88, 64,212,163, 22, 87,234, +255,195,239,219,155, 55,111, 14,161, 80,136,143,225, 4,128, 46,213, 57,209,221,155, 87,123,228, 63,117, 81,108,139, 22,173,104, + 69,112,254,131,112,151, 82,218, 71,219,129,217,122,120,120,180, 86,171,213, 34, 0,224,114,185,249, 0,166, 82,237,212, 65,132, +144,227, 44,203,246, 54,162,131,100, 0, 44,238,221,187,247,194, 41, 83,166,192,195,195, 3,211,166, 77,131, 74,165, 10, 35,132, + 44, 2,176,170,172,132,128,142,142,142,139,182,110,221,106,199, 21,152,163,209,156, 24, 36,102,170, 1, 0, 22, 66,224,196, 36, +138,105,211,166, 89,221,191,127,127, 57, 0,131,133,150,163,163, 99,192,206,157, 59,237,204,204,204, 64, 41, 69,110,110, 46,114, +114,114, 10,230,100,252,230,155,111,172, 34, 35, 35,127, 4, 96,176,208,114,114,114,106,189,121,243,102,177, 72, 36, 66,110,110, + 46, 95,169, 84,146,156,156, 28,228,229,229, 81,133, 66,161,156, 58,117,170,240,233,211,167,237, 1, 68,195,132,191,139, 40,224, + 0,248,154,199,227,245,173, 86,173, 90,147, 87,175, 94, 61, 84,171,213, 71, 0, 28,249,216,151, 41, 66, 72, 71, 87, 87,215, 21, + 18,137,100, 51,165, 52,248,255,229,152, 58, 57, 57, 29,185,117,235,150,251,214,173, 91, 71,174, 89,179,230,140, 49,247, 80, 9, + 47,191, 45,155, 53,107,230,208,183,111, 95,158,179,179, 51,242,242,242, 16, 21, 21,101,118,241,226,197, 74, 34,145,232,157, 92, + 46, 15, 53,230, 92, 57,212,108,109, 1,174,213,129,150, 29, 58,181, 25,216,239,107, 75, 39,123,107,200, 20, 26,188,138, 77,244, +248,227,204,137,118,174,117,123,220, 82, 42,179, 6,167,189,184,153,107, 44,103,135,110, 61,219,116,234,216,209,210,218,198, 26, + 89, 82, 37, 94,191, 73,240,188,124,225,164,159, 75,221, 30,215, 88,162, 26,150,252,248,124,222,231, 60, 55,211, 0,174, 84,100, + 95,191, 65,171, 70,247,187,140, 89,222,132, 82, 10,134, 98, 99, 81,107,214, 52,128,187, 17, 80, 27,203, 7, 74, 41, 33, 88,173, +111,205, 42, 24, 86,100, 64,186,122,163,244, 97, 74,221,243, 24, 16,218,216,217, 53,159, 56,126, 60,201,201,206, 70,120,120,120, + 94, 81,145,181,174, 50,248,215, 24,120, 29,143,195,203,127,147, 53,171,232,208,161,238,191,193,121,180,204,204,204,138, 45,183, +182,182, 70,135, 14, 29, 16, 24, 24,200, 5,208,184,136,194, 43, 60,201, 42, 32, 60,181,109, 30,172,205,133,140,135,135,135,165, +149,149,213, 71,115,190, 47,100,189, 91,121,208, 47,239,253, 62,127,228,197,125,107,125,165, 57,153,188,162, 85, 44, 44, 44, 80, +179,102, 77, 44, 92,184,208, 48,206,143, 87,183,127, 41,167,139,139, 75, 45, 63, 63,191,198,127, 94,189,106, 35,145, 72,132, 18, +137, 68,120,254,207, 63,109, 90,182,108,217,216,197,197,165,150, 30,135, 49,237, 92,182,101,203,150, 69,199,143, 31,103,252,252, +252, 96,107,107,139, 14, 29, 58,224,204,153, 51,220, 53,107,214,172, 4,176,176,172,118, 50, 12,211,198,207,207,143,128, 82, 36, +101,169,113, 39,176, 22,194, 87,251, 32, 39,159, 34, 61, 43, 27, 50, 89, 62,204,204,204, 68,218,225, 94, 67,247,189, 85,203,150, + 45, 9,128, 2,113,149,147,243,254,147,155, 43,133, 66,161,132, 80, 40,180, 36,132,136, 12,229,164,148, 58,183,110,221, 26, 0, +160, 84, 42, 11,222,240, 50, 51, 51, 73, 86, 86, 22, 20, 10, 5,120, 60, 30,159, 16,194, 53,148,211,202,156,171,226,242,133,179, +130,112, 2,223, 0, 0, 32, 0, 73, 68, 65, 84, 71,124,179, 36,110,196, 55, 75,226,184,124,225,108,133,101,182,198,144, 50, 43, +115,174,234,115, 94,159,132,144, 74, 28, 14,231,215,106,213,170, 69,114, 56,156, 61,132, 16,231,143,225, 36,132, 52, 37,132,172, + 52, 51, 51,187, 88,187,118,237, 56,115,115,243, 63, 9, 33,171, 8, 33, 45,203,195, 73, 8, 17,152,153,153,253,185,114,229,202, +144,135, 15, 31, 14,188,116,233,146,247,227,199,143,251, 5, 5, 5, 29,176,176,176,184, 78, 8, 49,251,152,123,211,219,219,123, +215,157, 59,119,154,182,106,213,234, 23, 66,136,176, 34,238,119, 66, 8,135, 16,210,144, 24, 56,215,208, 95,125,222, 9, 33,174, +141, 26, 53,114, 23,137, 68,232,212,169, 19, 0,180,255, 72,206,150, 19, 39, 78,116,158, 57,115, 38, 47, 60, 60, 28,191,252,242, + 11,142, 31, 63,142,148,148, 20,244,236,217,147,255,197, 23, 95, 56, 11,133,194,150, 70,113,114,173, 14,124, 59,125, 70,183, 89, +211,198, 89, 62,122,171,196,238,139,111,113, 44, 52, 17, 41,121, 2,244,234, 55,194,186,107,159, 65, 93, 5, 66,235, 3,198,114, +206,157, 51,167,219,248,209, 67, 44, 35, 18, 89,156,184,157,132,219,207,179,160,230,217,160,123,191,177,182, 13, 90,119,235,193, + 5,239,183,207,125,142,118, 2, 45,190,253,246,219, 74,179, 87,239,189,233,218,244,235,141,169, 25,240,211, 23, 62, 53, 0, 27, + 59,115,243,175,159,183,107, 55, 78,252,126,206,199, 82, 57, 11,241, 53,238,179, 41, 37, 3,109,245,253,179,218,218,161,186,118, + 88,145,115,254,215, 31, 24, 74, 48,109,168, 43,156,203,106,231, 21, 96,224,183, 51,102,240,172,109,109,177,101,203, 22,200,165, +210, 66, 62,179, 29,221,209,237,162, 25, 55,190,138,143, 91,100, 7, 79,114,253, 95,248, 2, 56,190, 68,139,214,233,211,167,105, +143, 30, 61, 8, 0,132, 68,208,140,254,117,200,143,131,166,172, 92, 72, 24, 66,189,124, 91, 69, 84,174, 90, 71,106,111,111,143, +188,188, 60,200,229,114,240,249,124,228,231,231,227,237,219,183,184,125,251, 54,108,109,109,141,106, 76,118,118, 54, 44, 44, 44, + 96, 97, 97, 81, 33,156,243, 70,118, 18,190,142, 75, 21,158,187,125,165,221,134,201,255,105, 81,181, 97,251,199, 29, 7, 77,123, + 98, 85,201, 53,255,241,227,199,184,117,235, 22, 50, 50, 50,208,188,121,243,127,203,249,188,171,237,175,239, 18, 66,108,253,252, +252,220,206, 93,188,102,155,155,207, 90,189, 73, 86,241, 88,150,133,153,153,139,250,224,225, 19, 89, 3,251,245, 34,132,144, 20, + 0,119,181,226,246,110, 25, 23,138, 8, 64,173,254,253,251,207,157, 60,121, 50,162,162,162, 48,110,220, 56,217,221,187,119,223, +181,106,213,202,126,231,206,157,226,153, 51,103,226,234,213,171,139, 9, 33, 71, 1,196, 80, 74,243, 75,232, 52,248,124, 62, 31, +106,173,108, 80,106,216, 2,125,159,157,157, 13, 42,203, 0,159,207,231, 0,168, 4,192, 32, 63, 58,150,101,249, 60, 30,175, 64, +100,189, 77,206,198,219,148, 60,100,231, 42, 32,147,169,161,144, 81,112,204,236,185,192, 27, 39, 0,111, 12, 60,158, 28,145, 72, + 4,181, 90, 93, 48,255,162,206, 82,166, 80, 40,144,149,149, 5, 14,135, 99, 1,192, 10, 64,186, 33,132,239,157,220,113, 76, 59, + 12,136,123,123,123, 59,188, 58, 61, 79,217,127, 73,100, 65,153,149, 57, 87,117,120,102,109,142,189, 91,131, 27, 13, 7,254,230, +163, 43,251,156,254, 89,132, 16, 97,165, 74,149, 46,135,132,132,212,174, 94,189, 58, 98, 98, 98,124, 6, 12, 24,208,156, 16,210, +208,216, 57, 25, 9, 33,102, 12,195,252, 56,106,212,168,201,254,254,254,164, 70,141, 26,224,114,185, 80,171,213,110, 81, 81, 81, + 29, 14, 29, 58, 52,135,203,229,238,212,104, 52,223, 25,234,247, 71, 8, 97, 4, 2,193,193,237,219,183,183,109,222,188, 57,246, +236,217,131,187,119,239,178, 77,155, 54,101,134, 15, 31, 14, 79, 79,207,230,195,135, 15, 63, 70, 8,233, 94, 30,203, 22, 33,196, +115,232,208,161,238, 28, 14, 7,173, 90,181,226,223,186,117,171, 17,128, 91, 31,121, 76, 45,220,220,220,174,182,111,223,190,225, +197,139, 23, 31, 16, 66,218, 27,227,231, 72, 8,233,227,234,234, 26,100,109,109,109,107, 68, 31,155,151,144,144,240,189, 17,115, +168,182,104,220,184, 49, 98, 99, 99, 81,171, 86, 45,240,249,252,150,132,144, 9, 0,186, 1, 88, 96,204, 12, 22,132, 16,215,150, + 45, 91, 58,180,111,223,158,172, 90,181, 10, 0,192,227,241,160,209,104,192, 48, 12,120, 60, 30,124,124,124, 72,116,116,180, 29, + 33,196,213,144, 97, 68,135,106, 29,122,181,234,216,173, 77,219,230,245,153, 53,135, 95, 65,195,106,192, 33,106,112, 9, 11, 86, + 37,132,144,207, 65, 13,223, 38,156,231, 79, 31, 53,119,168,217,185, 87,218,139, 11, 39, 13,225,236,214,171,183, 95,237, 90, 53, +152, 13,199, 94, 35, 51, 33, 82,147,240,236, 90, 26,195, 97, 80,187,241, 23, 14, 53,234, 52,228, 52,108,222,158, 39,137,121,218, +193,174,122,187, 78,233,175,174, 94,252, 28,247,228, 82,128,227, 86,217,225,235,158,157,219,243, 19, 37, 18,233,161,195, 39,159, +228,169,112, 27, 0,174, 2,164, 59, 80,191, 94,179,102,237,118,174, 90,101,239,226,226,194, 27,230,239,175,222,241,224,193,131, +241,128,166, 36, 62, 7,103,231, 78, 19, 39, 78,228, 36, 74, 36,244,208,145,211,143,117,124, 0, 96, 6,212,171,239,230,211, 19, +210,231, 70, 13, 83,246, 2, 4, 78,206,206,181, 39, 76,152,128, 36,137, 4,123,130,131,115,243,129, 80,157, 21,235, 4, 7,155, +235, 84,117, 30, 53,123,108,111,226,238,226,128,137,139,119,180,236,160, 76,169,122, 25,255,179,108,233,107,145,127,170,200, 42, + 42,182, 74,124, 59, 63, 28, 65, 23, 89, 9,136,247,161, 67,251,153,212, 28,165, 52, 42, 42, 10, 14, 14, 14,112,113,113,129,181, +181, 53, 34, 34, 34,240,231,159,127,226,197,139, 23, 96, 89, 22, 13, 26, 52, 48,170, 65,105,105,105,120,244,232, 17,108,109,109, + 43,140,179,170,123, 37, 76,113,175,196, 79,126,151,205,191,120,247, 69,243, 29,243,250,213, 97,124,250,237,202,207,255,159, 6, + 80, 40,254, 29, 51,148,232, 71, 23,122,120,120,180,222,189,123, 55, 95,174,134,101,141, 9,161, 63, 73,243, 53,230, 0, 96, 46, +226, 72,195,130,106,126,183,108,217, 50,233,232,209,163,125,222,190,125, 27, 88, 22,175, 64, 32, 88,241,229,151, 95,206,162,148, +242,190,253,246, 91, 0,192,136, 17, 35,178,111,223,190, 93,131, 82,154, 66, 8,113, 29, 51,102,204,203,203,151, 47,155,205,152, + 49,131,163, 86,171, 35,184, 92, 46, 37,132, 4, 80, 74,151, 20,229, 99, 24,230,254,131, 7, 15,188, 92, 61,107,194,211,158,129, +223,194,247,211,181,217,155,177,136,127,243, 26,207, 30,223,133,179,179,179,181,139,139, 75,100,173, 90,181,148, 9, 9, 9,115, +114,115,115,183,150,214, 70, 62,159, 31, 30, 22, 22,230,226,233,233,137,220,220, 92,196,167,230, 97,218, 17, 51,100,203,222, 27, + 49,120,144,161,161,123, 77, 75, 49,163,184,235,228,228,164, 84, 40, 20, 63,100,102,102,150, 58,141, 8,143,199,123,247,248,241, + 99, 11, 15, 15, 15,228,231,231,211,244,244,116, 34,149, 74,145,147,147, 67, 78,159, 62,253, 85, 98, 98, 98, 83,111,111,111,226, +230,230, 22, 80,189,122,117, 89, 66, 66,194, 56, 67,124,192, 66, 22,251, 40, 9, 33, 26, 46,151,187,102,252,248,241, 3,143, 30, + 61,122,255,240,146,218,125, 40,165, 74,237, 13,105,237,235,235,123,174,126,253, 58,174,193,171,235,109,164,148,254,244, 55,184, +188, 70,205,159, 63,191,182,157,157, 29, 38, 78,156,136,165, 75,151, 98,209,162, 69,213, 39, 78,156, 56, 30,192, 58, 35, 58, 29, +177,179,179,243,189, 13, 27, 54,248,180,110,221, 26,103,206,156,193,254,253,251, 17, 29, 29,173,246,246,246,230, 54,111,222, 28, +139, 23, 47, 70,215,174, 93,199, 77,157, 58,181, 29, 33,164,145,129,226, 99,244,226,197,139,251,180,105,211, 6, 35, 71,142,148, + 95,185,114,101, 32,128,243, 23, 46, 92,248,226,234,213,171,135,247,238,221, 43, 94,185,114,101,167,153, 51,103, 78, 4,176,169, + 28,251,255, 85,219,182,239,231, 80,110,211,166, 13,130,130,130,186,126,140,208, 34,132, 8,236,237,237, 79,239,217,179,167, 97, +205,154, 53, 49,108,216,176, 70, 3, 7, 14, 60, 77, 8,233, 76, 41, 53,168, 67,170, 92,185,242,143,199,143, 31,175, 86,210,200, + 66,113,144,203,229,118, 95,127,253,245, 42, 0, 70, 9,173,125,251,246,225,251,239,191, 71,131, 6, 13,234,183,104,209, 98,219, +132, 9, 19,208,191,127,255,142,132, 16, 39, 74,169,212, 16, 34, 46,151,235,221,179,103, 79,222,145, 35, 71,222, 91, 71,218,182, + 69,167, 78,157,240,228,201, 19,220,184,113, 3, 28, 14, 7,230,230,230,104,221,186,181, 64, 34,145,120, 3, 40, 83,104, 49, 66, +179, 81,125,122,118,183, 60,113, 59, 17, 26, 86,141, 38,213,172,208,220,199, 17,207,227,179, 17, 22, 25, 15,141,130, 15, 43, 59, +123,180,108,215,197, 46, 41, 33,122, 20,128,178,253,181,132,102,163,250,246,233, 97,113, 34, 84,130, 76,201, 51,250,234,238,209, + 63, 85,249,210,113, 0,112,255,210,129,109,206,246,226,206, 53, 26, 55,225,180,239,220,219,246,200,254,164, 81, 0, 62,139,208, +186,234,142,237,158,188,180, 17,179,135,248, 81,158,173,219, 93, 75,149,106,179,110, 89, 87,160,203,156,249,243, 91,140, 29, 63, + 94,196,178, 44,246,254,254,123,246,163, 7, 15,158,151, 22,237,183, 25,240, 28,216,167,143,208,210,202, 10,211,167, 77,131,165, + 74,117,185,224,144, 0, 29,167,207,154,213,250,155,111,190, 17,111, 11,152,124,191,235,152,229,141, 89, 74, 73,113,195,148, 69, +113, 17,104, 58,166, 79, 31, 88, 90, 89,225,219,111,191, 5, 81, 42,207,233,150,157,226,226,242,232,175,252,154, 15,233,213, 6, + 4, 4,251, 79,221,192,171,216,212,199,151, 19,241,250, 95,242, 76, 54,206, 71, 75,135, 28, 37,146, 59,246,232,135, 7, 15, 30, + 0, 0,222,189,123,135,119,239,222,161, 90,181,106,216,180,169,112,255, 85, 30, 1,195,178,108,133,115, 2,128,147,189, 21,134, +117,111,198,189,241,104,191, 72,154,154, 42,178,176,176,200,255,183, 9, 45,125,168,213,106,145,183,183, 55,178,101, 32, 89,121, + 42,139,180, 3,239, 45,254, 14,131,175, 88, 40, 20, 10,198,194,194, 2,114,185, 92,100,192, 3,129,215,167, 79,159, 89, 7, 15, + 30,228, 61,123,246, 12, 85,171, 86,133, 82,169,196,237,219,183,227,181, 19, 33,131, 82, 42,225,112, 56, 18,150,101,171, 55,104, +208, 0,129,129,129,240,241,241, 33,221,187,119,159,163, 21, 91,133,110,238,196,196,196, 31, 39, 76,152,240,197,161,195, 71,237, +182, 15,146, 33, 59, 43, 27,185,185,185, 8,127,120, 31,233,201,249,216,177, 99, 7, 68, 34, 49, 1,192, 79, 73, 73,230,207,152, + 49, 99,163,155,155, 91,183,248,248,248,158, 37,181, 83, 34,145,172,248,230,155,111, 90, 30, 56,112,192, 38, 39, 39, 7, 50, 89, + 62,210,165,102,136, 92,255,126, 30,223,218,211, 35,177,101,243, 86,166,158,151,185, 67, 94, 94, 30, 38, 79,158,188,214,213,213, +181,181, 68, 34, 25, 83, 18,103, 66, 66,194,157, 41, 83,166, 56,237,221,187, 87,164, 80, 40,148, 26,141, 6, 50,153,140, 57,112, +224,192, 28, 47, 47, 47,219,157, 59,119, 18,145, 72,172,173, 27,207,159, 52,105,210, 65,103,103,231,189, 73, 73, 73, 35,203, 26, + 46,226,112, 56,235,131,131,131,135, 15, 26, 52,200, 50, 49, 49,177,206,241,227,199,133, 0,100,218, 42, 46,157, 59,119,246, 90, +189,122,117, 37, 95, 95,223, 57,132, 16, 30,165,116,229,231,188,158, 28, 28, 28,166,246,233,211, 7,171, 86,173,194,201,147, 39, +103,218,217,217,173, 93,186,116, 41, 92, 93, 93,167, 16, 66,214, 27, 49, 81,239, 79,235,214,173,243,241,241,241,193,136, 17, 35, + 20, 23, 47, 94,156, 15,224, 24,128,216,235,215,175,123,252,246,219,111,189, 14, 30, 60,184,106,195,134, 13,162, 77,155, 54, 85, +235,215,175,223,122, 0, 99,202,188,191,157,156,102,248,251,251, 99,245,234,213,184,114,229, 74, 63, 74,233, 25,237,162,179,132, +144, 94, 43, 87,174,188,180,112,225, 66,172, 91,183,238, 91, 99,133, 22, 33,196,162,118,237,218, 63,116,235,214, 13,215,175, 95, +135,159,159, 31, 90,182,108, 57,147, 16,178,145, 82,154, 86, 14,145,197, 88, 88, 88, 28,220,189,123,183,159,151,151, 23,150, 47, + 95,142, 89,179,102, 97,215,174, 93,126,195,134, 13, 59, 72, 8,233, 91,244,158, 41, 14,214,214,214, 22,102,102,102,152, 51,103, + 14,141,142,142,206, 40,171,190,187,187,187,237,218,181,107,137,173,173,173,181,129,237, 20,139, 68,162, 86,117,235,214,197,226, +197,139,113,225,194, 5, 44, 92,184, 16,117,235,214, 69,108,108, 44, 6, 15, 30,108,182, 96,193,130,254, 0,118, 27,248,208,177, +182,183,183, 71, 74, 74, 10,120, 60, 30, 90,183,110,141, 99,199,142, 65, 46,151,195,209,209, 17,153,153,153,104,214,172,153, 78, +148, 25, 24,156, 67,235, 58,216, 89, 35,229,105, 2,184, 80,163,113, 13, 7, 92,126,242, 14, 74, 21, 11, 71,123, 27, 36,165, 36, +163, 69, 93, 55, 40, 20, 30,160,148,173,107, 8,163,128,195, 52, 22,138,196, 72,207, 73, 67, 66,228,149,119, 74,141,124, 66,102, +244,141, 56, 0,176,171,218,118,194,253, 27, 23,238, 15,232,209,214, 49, 87,234, 14, 66,217,102,159,227,126, 28,224, 1,119,115, + 17,119,196,169,237,243,136,154,101,241,229,152, 21, 77,187, 57, 33, 15,201, 64, 37,192,123,192,224,193,173,190,251,238, 59,193, +203,168, 40,118,198,180,105,153, 15,239,221,187,242, 7,112,191, 52,206, 92,160,122,231,206,157,193, 0,248,227,252,121,105, 26, + 16, 15, 0, 78,128,123,239,175,191,110, 59,127,238, 92,193,235, 55,111,216,219, 81,185, 39, 94,167,208,192, 86,118,120,116, 32, +246,125,157,210,160, 1,234,233,120,207,157, 59, 71,101,218,118,180,119,199,148,174,173,125,155, 15,239,211, 22,241, 73,239, 16, +244,203, 9, 60,126,153,120,206,158,197,208,127,203,115,184,180, 12,246,140, 1, 55,204, 7,101,121,121, 31,142, 30,124,172,128, +249, 20,156,197,225,223, 40,180,116,208, 77,222,172, 80,177, 80,168, 88,221, 91, 45,100, 50,153,161,138, 92,117,238,220,185, 61, +211,166, 77,195,218,181,107,241,242,229, 75,240,249,124,212,173, 91,215,133, 16, 98,161,179,192, 52,110,220,216,145, 97, 24, 60, +127,254, 28,107,214,172,193,232,209,163,233,173, 91,183,118, 21,247,192,160,148, 62, 76, 79, 79,223, 60, 97,220,232,204,140,228, +183, 80,201, 50,144,146,240, 26,114,105, 38,150, 7,254,136, 60, 21, 23, 73, 89, 74, 36,101, 41,193, 8,237,176,109,231,110, 78, +237,218,181,187,113,185,220,158,165,180,243,118,114,114,242,206, 73,147, 38,101, 38, 37, 37, 21,236,159, 66, 69,161, 80, 21,190, + 94,205,204,204,176,126,253,122,235, 26, 53,106,244,225,241,120, 29, 74,225, 76,140,139,139,123, 54,105,210, 36, 69,114,114, 50, +178,178,178,112,226,196,137, 94, 94, 94, 94,182,171,126, 90, 75,164, 74, 46,146, 50,149, 72,202, 84, 66, 96,225,136,131,135,143, +114,106,214,172, 57,132,199,227,181, 44, 75,100,237,221,187,119,248,160, 65,131, 44,127,250,233,167,244,227,199,143,111,161,148, +234,159,144,231,235,215,175, 63,116,240,224,193,156, 89,179,102,217, 5, 5, 5,205, 36,132,204,255,140,157, 69,135, 65,131, 6, +213, 98, 89, 22, 33, 33, 33,143, 41,165,235,142, 30, 61,122, 79, 46,151, 99,240,224,193,222,218, 97, 36, 67,120,154, 14, 25, 50, +100,178,159,159, 31,166, 79,159,174,188,120,241, 98, 99, 74,233, 90, 74,233, 27,250, 30,177,148,210,141, 87,175, 94,109, 48,117, +234, 84,121,179,102,205, 48,114,228,200,209,132, 16,191, 50,120, 91,249,251,251,251,176, 44,139, 3, 7, 14, 60,210, 19, 89,186, +243,248,231,225,195,135,111, 43, 20, 10, 12, 29, 58,180, 10, 33,228, 11, 35,246,157, 47, 20, 10, 67,150, 45, 91,102,147,144,144, +128,225,195,135,203,159, 63,127,142, 37, 75,150,136,173,173,173,207,232,238, 1, 99, 32, 20, 10,119,252,252,243,207,125,234,213, +171,135, 73,147, 38, 41,182,110,221, 58,109,242,228,201,138,198,141, 27, 99,203,150, 45,125, 4, 2,129, 81, 83,139, 72, 36,146, +204,136,136, 8,251,178, 62,241,241,241,201, 6,238,179,153,165,165,101,168,175,175,111,118,221,186,117,155,168,213,106, 68, 68, + 68,188,222,179,103, 15, 91,183,110, 93,108,222,188, 25, 65, 65, 65,232,217,179, 39, 56, 28, 78,127, 99,218, 42,149, 74, 33, 18, +137,192,231,243, 17, 22, 22, 6,185, 92, 14, 51, 51, 51,136, 68, 34,112, 56, 28,216,216,216,192,210,210, 18, 48, 48, 26,141, 16, +208,236, 60, 21,120, 60, 6, 92,134,197,179,216, 44, 40, 85, 44, 68,124, 14,120, 92, 2, 80, 22, 54,230, 60,136, 4, 28, 48,132, +176, 6,114, 34, 75,170,132,128,207,128,199, 23, 16, 70,173, 17, 23, 60, 28,185, 26,177, 88, 44, 32, 14, 86, 66,136,248,127,163, +105,129,201,251,227, 53, 10,224,153,123,120, 12, 92,189,102,141, 32, 59, 55, 23,253,250,245, 75,127,115,239, 94,176, 12,184,215, +174,140, 99,202,112,185, 53,218,183,107,135,176, 7, 15,144,147,145,241, 10,120,239, 28, 47,112,117, 29,180,126,253,122,129, 44, + 63, 31,253,250,246,205,124,121,227,198,222,184, 92,156, 50, 68,100, 1, 0,135,207,119,214,241,102,101,100,100, 0,239, 83, 72, + 56, 85,178, 88,245,205,144,174,200,201,203,199,236, 31,131,217, 7,207, 18,167, 92,143, 71,143,163, 18,100,253,155,158,193,132, +144,241,250, 31,131, 44, 90, 58,171,147, 33, 98, 69, 46,151, 87,184, 0,250, 88,206,226, 68,226,199,114,254, 29,193,229,114,243, + 95,188,120, 33,176,178,119,101,237, 45,121, 25, 94,163,111, 88, 3,128,157, 5, 55, 75,169, 81,177, 18,137, 4, 66,161, 48,223, + 16,174,252,252,252,113,132,144,229, 0,234,112,185,220, 83,187,119,239, 38,193,193,193,182,254,254,254, 81,132,144, 4, 95, 95, + 95,207,221,187,119, 91, 1,192,198,141, 27,233,193,131, 7,187,226,125,202,140, 18, 77,202, 73, 73, 73, 75,120, 60,222,173,111, +190,249,102,147, 64, 32,176, 53, 55, 55,183,191,126,253, 58,201, 87, 82, 52,157, 31, 91, 16,137,104, 37,102,112,109,158, 21,198, +143, 31,207,137,140,140, 12, 4,112,170, 20,206, 57, 66,161,240,250,203,151, 47,215, 90,187, 53,172,100,238, 57,223,186,249,188, +231, 0, 0, 79, 7, 30, 24,109,191,152,153,153,137,212,212, 84, 76,158, 60,217, 54, 42, 42,106, 14,128,203, 37,113,198,199,199, + 95, 21, 10,133,241, 79,159, 62,109,207,227,241, 4,230,230,230, 77, 67, 67, 67, 73,190,130, 69,253, 57,177, 72,207,125,223, 78, + 59, 11, 46,238, 47,115,194,148, 41, 83,184,175, 94,189,250, 17, 64,155, 98, 59, 51,134, 9,210, 23, 89,179,103,207, 14, 7, 80, +133, 16, 82,104,104, 84,163,209,144,161, 67,135, 62, 1, 80,119,214,172, 89,118,148,210,153,132,144,116, 74,233,246,191,250, 90, +178,178,178, 90, 53, 97,194, 4, 28, 60,120, 16, 25, 25, 25,235, 1, 32, 59, 59,123,221,190,125,251, 14,140, 27, 55, 14,191,255, +254,251, 42, 66,200, 31, 6, 88,181,190, 28, 60,120, 48,206,158, 61,139, 75,151, 46,253, 64, 41,141, 40,225, 30,125, 73, 8,153, +115,252,248,241, 13,254,254,254,248,245,215, 95,187, 1, 40,205, 65,182,115,215,174, 93,113,230,204, 25,188,123,247,110, 75,113, + 21, 50, 51, 51,183,158, 56,113,162, 69,215,174, 93, 17, 24, 24,216, 25,192,159, 6,116,144, 62,214,214,214,187, 55,108,216,208, +180, 94,189,122, 24, 50,100, 72,190, 82,169,236, 54,107,214,172,147,251,247,239,183,220,179,103, 79,147,241,227,199,223, 33,132, +140,165,148,222, 54,232,161,195,225,172,220,180,105,211,152,246,237,219, 99,230,204,153,234,115,231,206,245,166,148,158, 39,132, + 68,205,158, 61,251,244,154, 53,107, 56,171, 87,175, 30,195,225,112, 82, 53, 26,205,231, 18,215,203, 54,110,220,216,162, 75,151, + 46,120,253,250, 53,110,223,190, 13,165, 82,249,123,104,104,232,181,234,213,171, 47, 83, 40, 20, 39,205,205,205, 71, 88, 90, 90, +250, 54,108,216,240, 11, 66,136,153, 33,126,122,132,144,204,168,168, 40,115, 71, 71, 71,240,120, 60, 60,122,244, 8,142,142,142, + 0,128,148,148, 20,212,173, 91, 23, 28, 14, 7,153,153,153, 0, 12,123,216, 18,194, 60,142,122, 35,169, 98,103,105, 14,104, 68, +120,248, 60, 30,149, 28,108,161, 33, 12,146,146, 18,209,176,150, 27, 8, 33,200,124,151, 4, 66,200, 19, 67, 56, 53,148, 13,123, + 43, 73,169,108,111, 41, 68,189, 22, 93,236, 67,255, 72, 13,182,174,218,102, 60,151, 67, 56, 66,145,213,246, 49, 35, 71, 58,176, + 44, 69,230,187,100,112, 25,230,238,231, 56, 65, 33,111, 17,215,174,170,232, 97,151, 49,203, 27, 18, 10, 42, 83, 98,207,175,201, +200, 48, 3, 26,110, 92,176,192,198,222,193, 1, 67,134, 12, 97,223, 37, 36, 92,204, 3, 12, 74,172, 92,165,122,117, 39, 11, 75, + 75,220,188,121, 19, 28, 32, 6, 0,118, 1, 62, 65,179,103,219, 59, 58, 59, 99,244,152, 49,108,242,219,183,127,202, 12, 24,210, + 45,196, 91,181, 42, 79,199,203,104,121, 19, 57,152, 54,171,183,159,208, 92, 44,196,202,109, 71, 17,151, 38, 61, 16,154,136,109, +255, 70, 99, 71,153, 22,173,146,156,207,222, 59, 85,155,149, 42, 86, 68, 34, 81,129, 53,197,136, 55,189, 10,231, 44, 11,159,130, +243, 51, 42,231,121,132,144,227,132,144,121,113,113,113,207,198,140, 25,163, 84, 43,229, 57,183,150, 87,153,251, 32,208,107, 82, +232, 18,151, 73,199,166, 89,207,205,203, 74,207,217,184,113,163, 42, 46, 46,238,153,254, 58,101, 92, 44,111, 41,165,103,126,251, +237,183,173, 33, 33, 33,168, 91,183, 46, 34, 34, 34, 28,165, 82,105,163, 39, 79,158,216,249,248,248, 32, 56, 56, 24, 7, 15, 30, + 92, 75, 41,189, 80,154,200,210,179,182, 93, 76, 76, 76,172, 25, 27, 27, 91,205,198,198, 70,101, 99, 99,131,162,145,136,217, 50, + 22,239, 50,179, 96,103,103, 15, 43, 43, 43,239,178, 56,229,114,249,153,196,196,196, 26,172,109,173,182, 53,210,214,103,133,173, +116, 71,216, 74,119,156,153,227, 10, 23, 27, 1, 50, 50, 50,144,154,154,138,212,212, 84, 16, 66,160, 82,169,106, 27,192, 25, 45, +145, 72,126,121,251,246,237,113, 39, 39, 39, 88, 90, 90,130, 2, 72,202, 84, 33,124,181, 15,194, 87,251, 32, 41, 83,133,236,156, + 28,120,121,121,193,210,210,178,110, 73, 67, 70,149, 43, 87,238, 62,104,208, 32, 75, 0,208, 10,168,142,148,210, 73,197,124, 38, +170,213,234,214,186,186,223,127,255,189, 29,128,174,127,241,245,196, 33,132,124, 51,110,220,184, 38, 34,145, 8,155, 55,111,142, + 6,176, 87,215,215,111,221,186,245, 57, 0, 76,155, 54,205, 23,192, 76, 82, 66, 38,104, 29,248,124,126,227,218,181,107, 35, 52, + 52, 20, 0,142,150,177,249,195,183,110,221, 66,245,234,213, 33, 18,137,154,150, 81,215,219,221,221, 29,207,159, 63, 7,128,135, + 37,212,121,248,252,249,115,184,187,187,131, 16,226,109,192,190,247,233,210,165,203,227,203,151, 47, 55,109,213,170, 21,198,140, + 25,163,184,115,231, 78,119, 74,233,181,135, 15, 31,118, 24, 58,116,168,180, 70,141, 26,184,122,245,170,207,208,161, 67,111,113, + 56,156,229, 6,112,142, 14, 8, 8,152,247,213, 87, 95, 33, 32, 32,128, 30, 58,116,104, 8,165,244,188,246,254, 58,119,224,192, +129,225, 43, 86,172,160,125,251,246,197,210,165, 75,231, 17, 66, 38,149, 97, 29,202,210,104, 52,144, 74,165, 6,153,228, 13,173, +239,224,224,240,101,151, 46, 93,176,112,225, 66, 84,174, 92, 25, 39, 79,158,164, 0, 78, 81, 74,175,203,229,242,182,148,210, 53, + 82,169,244, 88,104,104, 40, 58,119,238,204, 71,225, 41, 70, 74,132, 90,173,126,115,249,242,101,165,189,189,253,127,217, 59,239, +248, 40,138, 62,140, 63,115,189,223,165, 93, 58, 9,161,165,210,149, 42, 77, 67, 13,130,162,162, 72, 17, 17, 68, 1, 17, 68,138, +162,188, 22, 4,105,162,136, 20, 69, 80,154,226,139, 82, 34, 34,200, 43,136,212,132, 22, 66, 8, 36,164,151,203,165,151, 75,114, +109,231,253, 35,185, 24, 98,202, 93,130, 10, 56,223,207,103, 63,119, 55,187,251,220,236,236,222,238,115, 83,126, 3, 95, 95, 95, +248,249,249,161,172,172, 12,133,133,133,232,216,177, 35,122,245,234,133,178,178, 50, 28, 60,120,208, 84, 88, 88,104,215,128, 21, +139,177,236,171, 35,145,123,139, 92, 85, 18,248,186,107,208,218,199, 5,165,133,185,208,103,103,162,123,136, 31, 6,116,111,141, +220, 34, 35, 14, 31,220, 91, 80, 82, 98,248,202,174, 86,128, 74,195,214,163, 63, 29, 40,114, 86,137, 16, 24, 20,134,241, 83, 94, +233,218,181, 91,207, 35, 61,122,244, 61,188,114,249, 7,157, 31,233, 29, 66,210,115, 43,112,232,224,247, 5, 69,197,197, 91,255, +137,123,253, 59, 0,191, 66,211,225,196,250,125,209, 95,132, 14,155,250, 69, 92, 58,214, 2,128,153,207, 15, 30, 49,124, 56,210, +211,211,177,119,207,158, 44, 3,112,217, 94, 61,153, 76,198, 3,128,162,162, 34, 72,170,102, 11,129, 5, 8,138,136,136,128, 62, + 55, 23, 59,119,236,208, 31, 2, 46, 56,146,207, 71, 1,177, 92, 86, 85, 33, 88, 84, 84, 4, 2, 20, 3, 0, 17, 96, 68,143,142, +237,161,207, 47,198,255,206,197,149,182, 46,199,203,141,233,220,171, 29,225, 27,235,163,213, 84,125,104,238,220,185,115, 33,145, + 72,224,229,229, 85, 99,142,108,102, 69, 44, 22,195,203,203, 11, 22,139, 5,187,119,239, 6,128, 70,251, 48,240,128,202, 81, 47, + 45,227, 42,205,212, 32, 20, 10,239,136,102,117,205, 65,229, 19,243,191,228,126, 58, 85,255,160,152,230,104,222, 3,244,168,142, +137,213,131, 82, 90,144,156,156,156, 62,246,137, 81, 69, 41, 9, 87,179,203, 10, 51,179,138,243,210,178,210,110,197,100,191,177, + 96,110, 81,122,122,122, 90,117, 44,173, 30,153,153,153,163, 0,216,219,215, 96,238,216,177, 99, 55, 76,157, 58,149, 94,186,116, + 9, 0, 16, 29, 29,141,231,158,123,142, 78,156, 56,113, 45,128,133,205,200,119, 89,121,121,249,109,181, 33, 38, 43, 87,211,228, + 87, 92, 92,140,204,204, 76, 24,141, 70,187, 29,241,141,195,171,226,243,147,163,204, 97,254, 10,132,249, 43, 16,220, 74, 14, 98, + 41,173, 49, 89,122,189, 30, 58,157, 14, 0, 42, 28,200,103,113,101,101,229,109,249,172,221, 52, 89, 92, 92,140,236,236,108, 88, +173, 86, 99, 3, 63, 58, 46, 35, 35,227,240, 55,223,124, 83, 2, 0, 43, 87,174,204, 39,132,252, 66, 8,217, 80,207,178, 81, 32, + 16,252,110,219,118,213,170, 85,249, 0,126,252, 27, 77,214, 99,157, 58,117, 42, 88,180,104,209,167,179,103,207,198,198,141, 27, +145,149,149,181,144, 82,106,177, 29, 75,110,110,238,252,245,235,215, 99,242,228,201,120,251,237,183, 87,117,235,214,173,152, 16, +210, 96,255, 10,173, 86,235, 43, 16, 8,112,225,194,133, 98, 74,105, 98, 19, 55,168,236, 11, 23, 46,232, 8, 33,240,242,242,106, +219,216,182, 46, 46, 46,237, 84, 42, 21, 50, 50, 50,128,234,127,204,245,144,156,153,153, 73,197, 98, 49,188,189,189,219, 55,117, +252,206,206,206,243,191,248,226, 11,193,213,171, 87,241,200, 35,143,164, 31, 63,126,124, 48,165,244,215,234,188, 93,136,142,142, +238, 55,104,208,160,248, 35, 71,142,224,195, 15, 63, 36, 93,186,116,121,169, 41, 77,127,127,255,233,207, 63,255, 60,214,173, 91, +135, 77,155, 54,189, 68, 41,221, 83,231,152,119,173, 95,191,254,149, 77,155, 54, 97,202,148, 41, 8, 8, 8,104,180,175, 74, 74, + 74,202,130,129, 3, 7, 70,223,184,113,195,174, 25, 15,236,217,158, 16, 50,168,103,207,158,237,202,203,203,177,117,235,214,196, +118,237,218,157,223,179,103,207, 92, 74,105,221, 7,246, 15,123,247,238,197,132, 9, 19,208,165, 75,151,173,132,144,113,118, 60, +116, 50, 83, 82, 82,114, 47, 95,190,204,241,249,124,248,250,250, 98,196,136, 17,120,230,153,103,208,165, 75, 23,228,228,228,224, +196,137, 19, 92, 66, 66, 66,174,189,129, 75,115,227,255,119, 32, 41, 41,254,247, 11,103, 79,152, 5,124, 30,252,188, 92,240,120, +120, 87,188,240,100, 95,116, 15,246, 65, 74, 78, 57,142, 29, 59, 98, 78, 74, 74, 60,109,207,136, 67,155,102, 92,236,229, 83, 87, + 47,156,180, 8, 5, 4,193, 65, 29,176,248,141,249,206, 75,151, 44,112,234,208,214, 15,151,111, 21,225,200,207,135,204,153,233, +105,255,251,167, 70, 28, 30, 7, 68, 74, 9, 81,240,121, 60, 88,121,146, 50,126,117, 32,227,142,161,161,129, 30,158,158,136,140, +140, 4, 15,184,230,144,158,178,170, 21,188,180,180, 20, 54,189,118, 65, 65, 65,126,254,254,248, 49, 50, 18,124,142,187, 54,192, +193, 0,163,215, 1,121,109, 93, 2, 84,188,220, 10,170,118,173,220,131,156, 53, 10,156,189,124, 19,149,102,122,110, 71, 1, 12, +184, 15,169,219,108,232, 72,211,225,202,141, 27, 55,246,248,226,139, 47, 6,207,157, 59, 87, 57,105,210, 36, 72,165, 82, 24, 12, + 6,248,250,250,194,106,181,226,167,159,126, 66, 84, 84, 84, 41,199,113, 71, 80, 39,108, 0, 33, 36,188,118,172,141,159, 18,168, +172, 42, 8,166,161,199,190,167,158,186, 35,154, 0,160,188,201,169,243, 90, 27,183,127,178,231,228,152,157,135, 47,144, 87,199, + 13,224,117, 15,106, 5, 0,240,240,240,128, 90,173,118, 88,243, 14, 20,250, 95,174, 89,187, 89, 55, 43, 43,235, 58, 33, 36,103, +234,212,169,193,182,142,239, 18,137,164, 34, 45, 45, 45,206, 22,176,180,238, 62, 77,229,179,122,100,220,203,132,144,253, 69, 69, + 69,135, 95,127,253,117, 44, 93,186, 20, 7, 14, 28,232, 71, 41,253,189, 57,199, 78, 41,181, 6, 4, 4, 20,158, 59,119,206,163, +125, 72, 55,180,113, 23,162,255, 91, 55, 64, 41,133,171,156,162,164, 48, 31, 23, 47, 94, 64, 73, 73,201, 89, 71,242,233,237,237, + 93,152,147,147,227,230,238,238,142,252,252,124,228,230,230,214,152,172,130,130, 2,228,231,231, 83, 66,110,143,217,210,132,102, + 89,187,118,237, 12,113,113,113, 98,143, 86,237,209,214, 93,132,158,111, 92, 7, 40,133,159, 11, 15, 37,197,133, 56,125,250, 52, +138,138,138,126,109, 72,147,227,184,215,198,143, 31,207, 7, 48,241,245,215, 95,119, 1,208,101,254,252,249, 71,234,142, 44, 20, + 10,133, 31,109,223,190,189,163,173,137,113,193,130, 5,107, 40,165, 95,252, 93,215,146,171,171,235,107,145,145,145, 42,147,201, +132, 79, 62,249, 4,107,214,172,217, 66, 41,253,111,157,242,136,228,243,249,235,121, 60,222,140,153, 51,103,226,197, 23, 95,148, + 63,240,192, 3,115,107,213,122,221,166,153,145,145,177,184,123,247,238,111,231,228,228,216,213,177,255,198,141, 27,211,186,119, +239,190, 56, 39, 39,103, 69, 99,231, 72,161, 80, 40,172, 86, 43,146,146,146, 10, 40,165, 69, 13,156,187,138, 14, 29, 58,100, 88, +173, 86, 95,185, 92,238,210,212,245, 89, 80, 80,240,193, 3, 15, 60,240, 31,157, 78,247, 51,128,247,235,134, 42,161,148, 94, 34, +132,132,205,158, 61,123,214,242,229,203,199,100,103,103,239,110, 74, 51, 37, 37,229,131, 65,131, 6,189, 21, 31, 31,191,173,161, + 38, 96, 74,233,167,132, 16,211,246,237,219, 95, 74, 74, 74, 90,214,152, 38,165,244, 32, 26,105, 74,175, 71,187,222,237,107,107, +242,249,252,249,203,151, 47,231,109,220,184, 17,148,210, 85, 22,139,165,161,124, 94,230,243,249, 95,245,237,219,119,210,158, 61, +123,164, 97, 97, 97, 47, 2,216,213,212,245, 89, 89, 89,121,230,212,169, 83,189,146,147,147,221, 6, 13, 26, 36,178,253, 65, 41, + 44, 44,196,193,131, 7, 77, 9, 9, 9,185,101,101,101,103, 28,185,135, 88,140,197,227, 78, 29,219,183, 43,249, 70, 76,239,129, +195, 70, 59, 27, 77,190,144,228,241, 81,152,151,141,159, 14,238, 45, 72, 74, 74, 60,109, 48, 20,142,115, 68,211, 84, 89,244,204, +233,255,237,223,157,158, 20,215,171,255,160, 17,206, 21, 70,127, 72, 68, 60,228,233, 50,240, 83,228,190,252,164,164, 91,191, 85, +152, 43,159,251,167,238,243,252, 0,188,207,207,142,154, 58,253,209,174,144, 57,251, 94, 20, 2,159,244, 5,100,110, 30, 30,162, +234,223, 14,148, 64,138,189,154, 58, 64,220,190,186,149,202, 96, 48, 64, 8, 24, 39, 3, 66,173, 86, 43, 3,128,248,248,120,200, +129, 84, 71,243, 89, 10, 40,228,181,116,121,128, 33, 79, 0,159,118,106, 5, 1,128,244,236, 60, 24,205,248, 29,247, 41,182, 26, +173,250, 58,197, 55, 21,124,145, 3,112,134, 16,114, 97,197,138, 21,253, 55,108,216, 48, 96,206,156, 57,226,225,195,135,227,252, +249,243, 56,122,244,168,177,178,178,242, 56,128, 19,182,225,234,118,100,230,142,107,238,169,218,110,108, 15, 31,226, 98,226,202, +191, 95,188,225,208, 67,173, 61,157,168,197,202,145,152,152, 24,156, 58,117,202, 97,205,123,228,196, 2, 64, 15, 66,200,190,234, +164,115,117, 67, 56, 84, 55, 23,246,168, 85, 11,214,156,175,186, 40, 16, 8,104, 80, 80, 16,169,158,158, 38,182, 37,249,206,206, +206,126,118,193,130, 5, 63,127,251,221,247,130,189, 51,101, 40, 42, 44,170,186, 1, 23, 21, 34, 79,151,137, 99,199,142,153,244, +122,253,139,142,104,234,245,250,151,199,141, 27,247,237,174, 93,187, 92, 10, 10, 10,106,140, 86, 65, 65, 1, 56,142,195,150, 45, + 91,244, 58,157,238, 77, 71, 52,179,178,178,166,188,254,250,235,223,237,220,253,157,224,200, 66,103,148,218,162,207,151, 21, 33, + 47, 39, 11, 7, 14, 28,168,204,205,205,157,221,200,249,177, 18, 66, 94, 29, 63,126, 60,108,102,235,244,233,211,175, 16, 66, 62, +181, 61,204, 9, 33,109, 94,123,237,181,113,181,250,113,173,249,187, 71, 29,230,229,229, 45,237,213,171,215, 26,189, 94,127,203, +100, 50,237,161,148,214, 27,165,223,106,181,206, 36,132,156,250,244,211, 79,159,113,115,115,243,200,206,206, 94,238,232,131,190, +165,219,167,166,166, 46,234,222,189,251, 27, 57, 57, 57,203, 27,219,238,230,205,155, 51,170,183, 91, 97,199,119, 71, 2,136,108, + 98, 27, 11,170, 66, 91,124,100,231,241,236, 3,176,207,206,155,243,230,127,226,254, 97,181, 90, 87,118,234,212, 73,106,177, 88, +142, 52,213, 31,144,227,184,105,115,230,204, 73,159, 55,111, 94, 87,171,213,106,111, 25,152, 1,252, 70, 8,241,206,205,205, 13, + 0,224, 4, 0, 2,129,160,176,176,176,176, 89, 83,240, 84, 71,124, 31,233, 22, 56,248,209, 61,219,214, 77,166,156,181, 11, 33, + 4,124, 30,255, 82, 73,169, 97,171,189, 53, 89,245,104, 70,184, 5, 14,126, 84,151,145,242, 60,229,172, 93, 0,194, 9, 4,188, +203, 37,165,134,207,245,113, 71,254,177, 41,120, 38,249,192,131, 79, 48,243,231, 47,223, 34, 0, 48,248,249,247,186,182,118,130, +210, 82,136, 66, 84,223,203,179,178,178,224, 12, 20,216,171, 41, 7, 44,166,234, 62,209, 5,249,249,144, 3,229, 89, 0,191,186, +223, 37,209,101,103, 67,233,128, 94,205, 31, 70,192, 84, 71,183, 8,128,196,214,157, 51,191,184, 12,176, 63,174,225, 61, 89,163, + 85,247,125,141,225,162,148,218,189,160,106,126,189,199, 1, 44,171,126, 85, 52,177,125,248, 63,161,217,203, 11,129,225,237, 72, +220,136, 32, 65, 62,128, 39,239,132,166,163,203, 95,173, 9, 96,155,209,104,164, 21, 21, 21,212, 96, 48,208,210,210, 82, 10, 96, + 95, 61,251,236,203,204,204,164,233,233,233, 52, 53, 53,149, 38, 39, 39, 83, 0, 59, 28,205,167, 90,173,254,226,169,167,158,178, + 10,133,194,117,119,226,216, 93, 92, 92,150,245,236,217,211,244,241,199, 31,211, 31,126,248,129,126,254,249,231,116,230,204,153, +180, 99,199,142,149, 78, 78, 78,227,154,163,233,233,233,185, 56, 40, 40, 40,111,203,150, 45,116,199,142, 29,116,237,218,181,244, +205, 55,223,180,250,250,250,102,171, 84,170,161,205,209,116,119,119,223,252,208, 67, 15,153, 54,111,222, 76,143, 28, 57, 66,119, +238,220, 73, 95,123,237, 53, 26, 28, 28, 92,169, 80, 40,158,176, 71, 19, 0, 95, 32, 16,172,158, 62,125,122,182,183,183,119,100, +157,117,242,208,208,208,243,227,199,143,207, 4,176,224,126,185, 62,153, 38,211,100,154, 45,215,156,232, 3,239,193,109, 96,161, + 39,222,162,244,196, 91, 52,188, 13,184,103,189,225, 67, 1,190, 92, 36,122,102, 64,191,126,171, 68,192, 51, 20,224,215,187,212, +151, 79,128, 47,229,243,159,236,219,179,231, 42, 17, 48,206,182,173,148,207,127,114, 64,191,126,171,132,124,254,132, 6,245, 26, +209,164, 0, 95, 36, 16, 44,232,219,187,247,106, 1,240,134, 45,237,225, 54,228,218,107,195, 90,209,126,254,228,230, 4,119,200, + 27,211,108,160, 60,166,221,233, 50,254,187,151,101,131, 74,187, 0, 0, 32, 0, 73, 68, 65, 84,230, 94, 8,130, 59,125, 17,222, + 43,154,119,145,209,106, 95,221,108,179,175,214,178,168,158,125, 22,213,217,102, 27,128,246,205, 44, 79,217,157, 60,118, 0,157, +220,220,220, 14,181,111,223, 94,223,186,117,235, 76,103,103,231, 93, 0,124, 91,168, 25,230,233,233,249,181,135,135,199, 13, 47, + 47,175,203,110,110,110, 31, 1,208,182, 68, 83, 40, 20,246,244,240,240,248, 53, 32, 32,160,208,223,223, 95,231,230,230,182, 27, +128,135,163,154, 0,188, 80,207, 77, 5,128, 8,128, 23,123,232, 48, 77,166,201, 52,235, 26,152, 33,109,177,124,112, 27, 88, 6, +183,129,117, 72, 0, 62,170,109, 80, 70, 2,178,230,154,162,231, 0, 73,221,237,155,212,107, 66,147, 2,252, 62,128,178,238, 62, + 35,124, 17,106,143,230,189,108,180,108,249,172,190,207, 79,171,157,111, 65,115,170,200,108,157,100,239,112, 51,216, 61,161,121, + 23, 53, 27,222, 4,154, 14,246, 86, 59,130,252, 29,248,206,242, 59,124, 12, 87, 0, 12,191,195,154, 87, 1, 76,188,147,154, 38, +147,233, 44,236,156,247,173,137,188,101, 53,210, 23, 46, 11, 12, 6,131,113,251,205,193,122, 24, 88, 56, 56,144,124, 34,176,130, +119, 40,145,102,212, 94,125,224,143,192,199, 14,105, 2,192,214,122,166,231,105,150, 94, 45, 77, 0,248, 29,248,211,236, 14,145, + 45,236,110,114,143, 61,155,179, 0,108,118, 40,142, 22,131,193, 96, 48, 24,140,127,142, 35,241,148,253, 17,187,251,137,172, 51, +199, 97, 77,191, 79, 2, 32,188, 1, 87,102,247, 72, 10, 66, 72,120, 51, 92,223, 81,166,201, 52,153, 38,211,100,154, 76,147,105, +254,187, 52,107,105, 55, 52,176,226,122, 29,189,127,100,192,200,157,130,216, 63,109, 89, 51,196,239,209,176, 9, 76,147,105, 50, + 77,166,201, 52,153, 38,211,252,123, 53,239,105, 51,117,123,109,214,109, 6,145, 53, 29, 50, 24, 12, 6,131,193, 96,180,128,198, +106,221,152,209, 98, 48, 24, 12, 6,131,193,104, 1,132, 16, 47, 84, 77, 81, 21, 89,253,202,106,180, 24, 12, 6,131,193, 96, 48, +238, 16, 17,148,210,205,245, 69,134,231,177,178, 97, 48, 24, 12, 6,131,193,104, 25,182,126, 90,142,206,117,200, 96, 48, 24, 12, + 6,131,193,104,132,198,250,104,221, 54,234, 48, 50, 50,146, 70, 68, 68, 16, 86,100, 12, 6,131,193, 96, 48,254, 9,238, 69, 47, + 82,171, 6, 43,178,110,112,106, 86,163,197, 96, 48, 24, 12, 6,131,209, 2,108, 53, 90,213,205,134,183,165, 49,163,197, 96, 48, + 24, 12, 6,131,209, 2, 26,171,209,226, 1, 85,213,116,172,152, 24, 12, 6,131,193, 96,252, 83,220,203, 94,132, 82,186,185,122, +249,211,116, 73,182, 81,135, 3,171, 15,112, 32, 59,213, 12, 6,131,193, 96, 48,254, 1,238, 89, 47, 66, 8,241,170,110, 54,244, +250,211,186,191,114, 10, 30, 6,131,193, 96, 48, 24,140,251, 29, 91,252,172,250,226,104, 49,163,197, 96, 48, 24, 12, 6,131,209, + 66,163, 85, 55,173,166,131, 60, 51, 90, 12, 6,131,193, 96, 48, 24,127, 13,127,105,100,120, 66, 72, 56,211,100,154, 76,147,105, + 50, 77,166,201, 52,153,230,253,142, 45, 34,124,221,218, 45, 22,222,129,193, 96, 48, 24, 12, 6,163,133, 38,171,118,223,172,218, +159,217, 92,135, 12, 6,131,193, 96, 48, 24,127, 17,172, 70,139,193, 96, 48, 24, 12, 6,163, 5,216, 70, 28,214,254,204,140, 22, +131,193, 96, 48, 24, 12,198, 29, 52, 91,245,165,179,166, 67, 6,131,193, 96, 48, 24,140, 22, 80,183, 3,124,237,207, 4, 64,120, + 3,206,236,168, 3, 95,224,240,232,131,166,244,153, 38,211,100,154, 76,147,105, 50, 77,166,121,255,105, 54,165,237,136,255,184, +155,140, 86, 67,157,225, 65, 41,253,203, 22, 0,225, 76,147,105, 50, 77,166,201, 52,153, 38,211,100,154,247,243, 2,192, 11,192, +180, 90,139,151,109, 29,235,163,197, 96,220,235,124, 71,248, 40, 8, 10, 0,165,222,224,139,179,144,117, 37, 17, 75, 40,215, 98, + 77, 93,168, 63,100,102, 15, 88,164,122,232, 46,223,106,177, 38,131,193, 96,220,167, 84, 79, 38, 93,111, 31, 45,102,180, 24,140, +123, 29,125,112, 32, 4, 88, 6, 30,188, 64, 77, 9,208,134, 46, 3, 16,211, 98, 77, 17,247, 62,172, 60, 95, 80, 83, 60,220,131, +150, 3,136,101,133,205, 96, 48, 24,142,241,183,119,134, 23, 10,133, 58, 66, 8, 39,145, 72,246,214, 55,203, 53,131,113,167, 32, +132,120,201,100,178,189,132, 16, 78, 36, 18,233,238,203,131,220,222, 73, 14,158,117,184,209,204,249,252,116,165,208,221, 80,105, + 13, 4,207, 50, 2, 95, 6, 42, 91,164, 41, 32, 67, 42, 76,156,223,142,115, 6,143, 50,163, 37, 4, 20, 45,211,252,227,156, 56, +137,197,226,159, 8, 33,110,236, 10,189, 63, 9, 37,228,129, 7,133,194,121, 33,132, 60, 76, 8, 33,172, 68, 24,204,104,253,205, + 88, 44, 22,247,180,180, 52,242,249,231,159,143, 82,171,213, 9, 66,161,112, 17, 33, 68,244,111, 41,112,149, 74,117, 74,163,209, +232,156,156,156,116, 26,141,230, 66, 83,233,247,169, 1, 10,116,119,119, 79,113,117,117,141,175,157,238,222,101, 76,159, 14, 15, + 77, 90,226, 22,246,216,128, 22,234,139,132, 66,225, 34,141, 70,147,176,121,243,230, 81,113,113,113,196,108, 54,187,223,151,133, + 89,193,121,128,199, 31,116, 53,203, 32,207, 42, 54,123, 68, 39, 27, 84, 0,127, 32,140,104,254,159,152, 34,206, 3,160, 15, 95, + 74, 47, 87,156,202,215,122,252,150, 88,169, 6,143, 55, 8, 21,196,179,197, 55, 28, 30,239, 37,142,227, 6,139, 68,162, 87,217, +237,247,254, 68,204,227,245, 61, 53,106,212,251, 11, 58,119,158, 21, 12, 60, 90,159,217, 34, 85,188, 18, 18, 18,114,136, 16,242, +204, 29,188,183,124, 24, 28, 28,156, 65, 8,153,205,206, 4,227,111,126,174,117,179,253,193,175,158,134,199,203, 97,163,245, 84, + 27,210,247,217,182,228,248,211,109, 72,201, 51,109, 73,233,196,182,228,228,147,109,200,195,205,201,144,175,175, 47,250,244,233, +195, 79, 77, 77,149,205,158, 61,123,137, 68, 34, 73, 34,132, 12,109,142,150, 92, 46,143, 82, 40, 20,105, 66,161,240,182,188, 40, + 20,138, 40,165, 82,153, 38, 20, 10, 31,169,157,174, 86,171, 79,105, 52, 26,157, 90,173,190,208,128, 17,138,210,104, 52, 58,149, + 74, 21, 85, 59, 93, 40, 20, 62,162, 82,169,210,213,106,117,221,244,135,213,106,117, 90,221,244,134, 16, 10,133,190,105,105,105, +238,233,233,233,238, 98,177,216,163,118,122,106,106,170,123, 90, 90,218,109,233,142, 32, 20, 10, 31, 86, 42,149,105, 10,133, 34, +170,190,244,186,199,212, 16,181,202,238, 97,123,210, 29, 53, 89, 67,134, 12, 57,153,149,149,229,231,228,228,228, 84,123,157,139, +198,105,232,215, 91,214,207, 29, 61, 98,200, 75,238,161,143,119,106,166,254, 80,137, 68,146, 52,103,206,156, 37,233,233,233,178, +158, 61,123,242, 69,162,251,212,199,127, 23, 42, 2,225,250,115,148,106,175,101, 84,104, 35, 70, 61, 37,184,152, 86,174, 53, 91, +173, 46, 0,127, 32,182,181,150, 52, 75, 83, 96,238,199, 81,234,241, 75,178, 80, 59,104,236, 44,254,177,100,129,214,108,181,186, +130,135, 1,205,210,252,227,220, 8,249,124,254,220,213,171, 87,243, 0,204, 36,132,136,255, 77, 55,226,158, 62,196,231,145,246, +130,115,221,189, 73,223, 59,120,115, 15, 83, 40, 20, 81,132,144,192,187,229, 56,141, 28,119,125,247,173, 91,135, 39,180,107, 55, +114, 65,231,206,147,235,154,173,234,247, 11,150, 47, 95, 62,241,234,213,171,218, 54,109,218,188, 72, 8,225,221,129,178, 88,187, +124,249,242,249, 87,175, 94,245, 14, 8, 8,120,231, 78,104, 50,238, 46, 15, 15, 96, 16,128, 8, 0,143, 0,232, 81,253,254,193, +234, 37, 2, 85, 81, 20,106,191, 62, 88,189,175,109,125,207, 6, 52, 34,234,217,239,193, 90,233,181, 63,215,125,111,163, 91,245, +107, 68,245,104,195,136,154, 53,148, 82, 28, 60,120,144,214,126,173,187, 60, 29,128,255,204,234,227, 99,184,118, 96, 39, 45, 77, +187, 69, 11,226, 46,210,139,155, 63,160,179, 30,212, 26,158,109,131, 15, 29,236,153, 79, 41,165,116,199,142, 29,244,216,177, 99, +180,176,176,144,198,198,198,210, 30, 61,122,148,203,229,242, 95, 0, 4, 56,162,167, 82,169,116,191,252,242, 11, 29, 50,100, 72, +145, 82,169, 92, 5,128, 71, 41,133, 90,173,214,253,254,251,239,116,200,144, 33, 69, 42,149,106, 45, 0, 62,165, 20, 79, 60,241, + 68, 14,165,148,106,181,218,204,250,244, 70,143, 30, 93, 64, 41,165, 26,141, 70, 87,157, 95,190, 74,165, 90, 59, 99,198,140,210, +243,231,207, 83,103,103,103, 91, 58, 79,173, 86,175,154, 57,115,102,105,116,116,116, 77,122, 83,139,139,139, 75,154,213,106,165, + 7, 14, 28,160,238,238,238, 53,121,112,118,118, 78,179, 90,173,116,223,190,125, 13,230,173,145, 50,229, 41,149,202,149, 19, 38, + 76, 40, 73, 78, 78,166,174,174,174,186, 90,233,171, 38, 77,154, 84,146,154,154, 74,221,220,220,236,202,163,171,171,171,238,212, +169, 83,116,204,152, 49,197,181,203,212,213,213, 85,119,250,244,105, 91,250, 74, 91,122, 99,139,183,183,247,139,238,238,238,153, +238,238,238,153, 78, 78, 78, 75,189,188,188,178,245,122, 61,165,148,210,182,109,219,230, 80, 74,161,237,252,120,159,246,125, 39, + 46,113, 15, 27, 53,103,227,158,211,103, 79,196,228,233, 59, 15,126,105,165,166,243,104,141, 3,101, 16, 32,149, 74,127,233,223, +191,127,121,114,114, 50, 45, 45, 45,165, 81, 81, 81,244,183,223,126,163,215,174, 93,163,213,215,221,253, 53,210,101,125,168, 47, +221, 20,180, 59,246,109,191,184, 19,203,135,153,105,242, 49,186,115,178,214,124,124,142, 79, 2,221, 16,252, 95,186, 41,164, 85, +179, 52, 55,132,236,188,252,166,223,245,117,239,188, 98, 78, 73, 73,161,243, 38, 13,179,252, 60,203, 39,145,110, 12,222,211, 44, +205, 63,206,209,184,199, 31,127,188, 52, 53, 53,149,134,134,134,150,241,249,252, 41,255,150, 17, 73, 61,188,225, 19, 30, 40,206, +184,188, 99, 30,247,104,152, 60,175,155, 23,250,222,129, 81, 78, 97,238,238,238,185,219,182,109,163, 42,149, 42, 7, 64,224, 93, + 50,250,138, 4, 3,163,190,234,220,121, 31,247,228,147,214,175, 58,119,222, 23, 12,140, 66, 85, 56, 33, 2, 96,225,138, 21, 43, +162,205,102,115,244,214,173, 91,163, 71,141, 26, 21, 13, 96, 94, 11,191,243,227, 15, 63,252,144,154,205,102,186,117,235, 86, 58, +106,212, 40, 10,224, 19,123,247, 87, 42,149,237, 59,117,234,180, 61, 52, 52, 52,181, 75,151, 46,198,144,144,144,138,192,192,192, +228,176,176,176,109, 18,137, 36,128,141,170,251,123,150, 38,188, 72,143,133, 11, 23, 46, 2, 64, 23, 46, 92,184,136, 82, 26, 81, +125, 95,143,168,253,190,238, 43,165, 52,188,246,231,250, 52,108, 75,125,154,245,125, 71,157,247,117, 71, 29,122, 85,127,158, 86, +179,206,118, 80, 7, 15, 30, 28,112,240,224,193,227,117, 15,238,169, 54,232, 51,171,143, 79,121,185, 62,139,198,124,240, 42,253, +223, 32, 95,250,251, 64, 79, 26, 63,247,113,154,181, 99, 45,125,185,171,179,225,201, 54, 24,228,168,209,218,187,119, 47,221,183, +111, 31,253,241,199, 31,105, 76, 76, 12,205,203,203,163, 59,118,236,176,186,186,186,150, 75, 36,146,229, 0,100,246,232,169,213, +106, 29,165,148, 86, 86, 86,210,165, 75,151, 86,168, 84,170, 11, 0, 60,170,141, 18, 45, 44, 44,164,203,151, 47,175,208,104, 52, +151, 1,120,187,185,185,165,221,186,117,139,122,120,120,212,107,102,156,157,157,117,215,175, 95,167,206,206,206, 58, 0, 62,206, +206,206, 49,251,247,239, 55, 81, 74,105,122,122, 58,117,113,113,209, 1,240,112,117,117,189,120,240,224, 65, 19,165,148,102,102, +102, 82, 23, 23, 23,187,141, 86,121,121, 57,253,249,231,159,111,203,131, 45,253,208,161, 67,183, 25, 48, 59,202,211, 67,163,209, + 68,127,243,205, 55, 70,171,213, 74, 99, 98, 98,168, 70,163,209, 1,240,112,114,114,186,176,103,207, 30,163,213,106,165,113,113, +113,118,155,193,214,173, 91,231, 80, 74,169,197, 98,161, 27, 55,110,172,180,149,169, 45,221,104, 52,210,207, 62,251,172, 82,173, + 86, 71, 3,240,104, 76,203,205,205, 45,211,104, 52,210,194,194, 66,218,179,103,207,210,223,127,255,157, 22, 23, 23, 83, 74, 41, +173,214, 67,208,128, 41,239,157,189, 81, 90,252,252,252,245,223, 6,244,120,246,131,195,231, 50,210,191,248, 33, 42,218, 45,108, +244, 48, 59,142, 95, 38, 18,137,150,123,121,121, 85, 28, 59,118,204,106, 52, 26,233,205,155, 55,233,169, 83,167,232,153, 51,103, +104, 84, 84, 20,141,137,137,185,255,140,214, 30,240,233,166,160,209,116, 83, 80,244,182, 9,110,185, 37, 23,118, 81,122,100, 54, + 77,124,175, 13,125,123,152,170,132,219, 20, 20, 77, 55, 5, 63, 73,255, 51, 64,224,144,230,230,144, 71,233,166,160,232, 15,159, +242,207,187, 24,125,158, 30, 63,126,156,126,182,118, 5,157, 21,238, 83,198,109, 10,138,166, 27, 66,198, 56,164, 89,107,145, 72, + 36, 55, 78,158, 60, 73, 79,156, 56, 65,223,121,231, 29, 42,151,203, 83, 91, 94, 14, 33, 34,186, 33,208,159,126, 30, 56,128,110, +233,224, 69,127,109, 94,222,254,106,147, 53, 56, 80,156,158,123,241, 7, 74,243,111,210,236, 85,161,116, 88,144,176, 69,102,171, +218,100,233,147,147,147,105,118,118, 54, 93,179,102, 13, 85,171,213,119,181,217, 10, 2, 70, 3, 88,180,114,229,202, 26,147,181, +126,253,250,232, 43, 87,174, 68,251,249,249,253,216,130,239,250,100,229,202,149, 53, 38,107,253,250,245,244,202,149, 43,212,223, +223, 63,173,169,125, 39, 76,152, 32,239,211,167, 79,244,248,241,227, 13,219,182,109,163,201,201,201,244,242,229,203,116,229,202, +149,116,201,146, 37,244,203, 47,191,164, 99,198,140, 41,235,217,179,231,217, 39,159,124, 82,234, 96,222, 4,148, 82,113,245, 34, +164,148,218,140,166, 0,128,208,246,231,159, 45,183, 27,173,134,188, 72, 67,102,170, 33,131, 85,119, 93, 35, 70,172, 81,195,214, +212,247,213, 53, 85,245, 45,181,171, 86,127,141,136,136,248, 83,223, 24, 1,197,187,211, 94,123, 79,154,180,109, 13,116,223,124, + 10,126,161, 14,194,146, 60, 84,158,140,132,249,228,126, 76,236,221, 91, 38, 35,228,125, 71,235, 0,165, 82, 41,100, 50, 25, 36, + 18, 9, 10, 11, 11,145,152,152,136, 62,125,250,240,162,162,162,164,211,166, 77,155, 45,147,201, 82, 9, 33,143,217, 81, 93, 12, + 0, 56,117,234, 20,166, 78,157, 42,217,190,125,123, 23,173, 86,123,201,106,181,138, 1, 32, 46, 46, 14, 79, 63,253,180,100,215, +174, 93, 29,189,189,189, 47,152, 76, 38,185, 68, 34, 1,159,207,111, 80, 79, 44, 22,195,108, 54, 75, 58,116,232,112,249,210,165, + 75, 97, 35, 71,142, 20,166,164,164,224,214,173, 91, 48,155,205,226,192,192,192, 43, 23, 46, 92,232, 18, 17, 17, 33, 76, 75, 75, + 67, 74, 74, 10,236,237,243, 73, 8,129,209,104,132, 68, 34, 1,143,199,187, 45,189,178,178, 18, 98,177,216,110, 45,161, 80,248, +112,112,112,240,149, 75,151, 46,117, 27, 61,122,180,232,252,249,243, 72, 79, 79,135,213,106, 21,135,132,132, 92,185,116,233, 82, +215, 81,163, 70,137, 46, 95,190, 12,157, 78,119,219,247, 53,209,143, 6, 0,112,233,210, 37,140, 31, 63, 94,252,211, 79, 63,117, +245,242,242,186,108,177, 88,196, 0,112,229,202, 21, 60,253,244,211,226,195,135, 15,119,107,213,170,213,229, 38,154, 18,249, 0, + 96, 54,155,241,226,139, 47, 42,212,106, 53,210,210,210,192,113, 28,172, 86, 43, 0, 32,175, 32,239,202,165, 43, 49,113, 19,199, + 61, 53,160,220, 84, 89,121,250, 92,212,181,182,173,253,125, 9,161,173,155, 40,203,199,228,114,121,234,135, 31,126, 56, 39, 41, + 41, 73, 18, 20, 20,196,187,124,249, 50, 10, 11, 11, 33, 22,139, 33,149, 74, 33,145, 72, 32, 20, 10,239,191, 74,244,226, 80, 87, +112, 24,156,162, 55, 74, 36, 78,190, 42,165, 87, 32,144,122, 2,109,180, 18,240,121,124,233,249, 91, 6, 5, 64, 7,195, 47,215, +213, 49, 77,110,240,173, 28,163,196,236,210, 81,233,237,235,135,188,188, 60,180,106, 27,140, 10,177, 86,124,234,102,153, 18,196, + 65,205, 63,206, 85,191, 14, 29, 58,120,182,111,223, 30,185,185,185,232,214,173, 27,156,157,157,157, 9, 33,131,155, 93, 6,219, + 90, 75, 80,140,190, 0,111, 21,172,228, 29,152, 5,203,112, 83,223, 13,155,187,223, 53, 39,188,167, 15,241, 81, 43,197,103,118, +237,254,198,199,213, 47, 4,136,124, 30, 30, 78, 18,108,121,169,155,139, 86, 35,217,215,156,102, 68, 66, 72,152,135,135,199,177, +179,103,207,186, 73,165, 82, 92,184,112, 1,161,161,161, 88,179,102,141,214,217,217,249,196,221,208,140, 72, 41,165,113,192,129, + 15, 47, 95,222,186, 61, 33,225,224,132,118,237, 70,142, 15, 12, 92, 58,253,153,103,166,188,242,202, 43, 88,177, 98, 5,246,237, +219,135,190,125,251, 98,218,180,105,230,212,212,212,175,154,217, 92,248,233,170, 85,171,102,205,158, 61,187,174,166, 41, 37, 37, +229,195,198,246, 13, 11, 11,243,189,113,227, 70,198,220,185,115,187,109,223,190, 93, 38,151,203, 81, 88, 88,136,207, 63,255, 28, +139, 22, 45, 2, 33, 4,148, 82,124,249,229,151,242,201,147, 39,247, 72, 72, 72,200,104,221,186,181, 61,221, 58, 8, 0, 41, 0, +121,245,162, 0, 32,223,181,107,151,102,244,232,209,234,234, 52, 25, 0, 25, 33, 68, 2, 70, 93,234,245, 34,181,206,249,193, 58, +215,218,200,186,105,117,215, 81, 74, 71, 54,166,225,224,181, 93,223,247, 69,214,141, 12,127,219, 51,181,214,251,129,145,145,145, +199,255, 36, 10,116,246, 12, 8, 66,209,145, 61,144, 9, 8,100,252,234, 69, 64,192, 75,188,130, 86, 82, 33,204,148,134, 53,199, +104,217,204,150, 76, 38,131, 72, 36, 66,105,105, 41,204,102, 51,222,120,227, 13,201,145, 35, 71, 92,121, 60,222,127,155,210,169, +109,152,226,227,227, 17, 18, 18, 66, 14, 28, 56,224, 49,115,230, 76, 25, 0,136,197, 98, 20, 21, 21,161,125,251,246,228,208,161, + 67,238,111,190,249,166,178, 49, 51, 67, 8,129, 72, 36,194,236,217,179,101,231,206,157,115,241,246,246, 70, 98, 98, 34,242,243, +243,161, 84, 42, 49,123,246,108,217,217,179,103,181,222,222,222, 72, 78, 78, 70, 81, 81, 17,148, 74,165,195, 70, 75, 36, 18,221, +182, 15, 33, 4, 38,147, 9, 98,177,216,110, 67,164,209,104,118, 70, 71, 71,107, 53, 26, 13, 46, 95,190, 12,139,197, 2,141, 70, +131, 89,179,102,201,162,163,163,181, 78, 78, 78,136,139,139,179,213,252, 57,148, 71, 0,224, 56, 14,113,113,113,104,221,186, 53, + 78,156, 56,225, 62,125,250,116,169, 45,253,230,205,155,240,245,245,197,137, 19, 39,220, 21, 10,197,206,134,180, 56,142, 67, 86, + 86, 22,174, 94,189,138,196,196, 68,232,245,122,228,230,230,162,164,164, 4, 22,139,165,170,159, 93, 73,113,228,174,111, 15, 92, +146,201,100,242,208,192, 14,126, 87, 98, 98,115,100, 50,153,220,223,207, 47,144,144,119,120,141,228,243,191, 9, 9, 9,174,147, + 39, 79, 22,221,184,113, 3,153,153,153, 16, 10,133, 53,215,150,109,145, 72,238,179,123, 25, 33, 4,196,216, 1,132,116, 59,147, + 88,230,210,111,228, 56, 17,110,253, 4,112,102,128, 39,192,192,206,190,130,125, 87,202, 60, 64,209, 25,149, 8, 6,236, 56,241, +132, 16,192,212, 30, 32, 15,252,124,195,226,218,247,241,151, 68, 25, 25, 25, 16,137, 68,144, 72, 36,232,246,240, 19,130, 93,151, +204,158, 32,232, 2, 19,130,236,210,172,133, 76, 38,123,107,201,146, 37,138,218,154, 83,166, 76, 81,104, 52,154, 37,205, 54, 89, +101,242,222,176,208,217, 87, 51, 12,173,151, 70,102,135, 36,228,148, 7,129,210,185,128,185,107, 75,205, 22, 33,100,160, 84, 42, +189, 69, 8,121,168, 69, 38, 75, 37, 62,189,123,247, 55, 62, 46,173,170, 76, 22, 44, 21,128, 80, 6, 79,173, 19,182,204, 25,228, +162,117,146, 57,100,182,170, 77,214, 47,103,206,156,113,147, 74,165,136,142,142,134, 72, 36,130, 84, 42, 69,167, 78,157,176,105, +211, 38,173,139,139,203, 93,101,182,150, 95,190,188,109,217,213,171,241, 11,195,194,130, 31, 83, 40, 92,102,140, 31,175,121,243, +205, 55, 15,238,223,191,127,107, 68, 68, 68,238,185,115,231, 62,162,148,238,113,240,252, 16, 66,200,250,213,171, 87,207,176, 25, +183, 55,223,124,243,203,253,251,247, 47,139,136,136,200, 58,119,238,220, 92, 74,233,250,198, 52, 74, 75, 75,247, 47, 94,188, 88, +243,248,227,143,219, 62,227,228,201,147,248,234,171,175,160, 80, 40,110,219,118,212,168, 81,152, 58,117,170,179,209,104,108,244, +153,228,225,225,241,200,153, 51,103, 66, 1,136, 0, 72,108, 70, 43, 38, 38,198,169,184,184,216, 73,169, 84, 58,121,121,121,169, +108,102,235,241,199, 31,119, 18, 10,133, 15,129,129,166,188, 72,109,163, 99, 79, 90,115,183,183,215,108,213,249,156,213,208, 60, +135,183, 25,173,136,136,136,227, 0,250,215,183,145, 41, 95, 7, 9,172,144,241, 9,228,252, 90,102, 11, 28, 4, 69, 57,104,206, + 0,222,186, 15, 67,153, 76, 6,169, 84, 10,161, 80, 8,179,217,140,162,162, 34,135, 76,129, 90,173,134, 82,169, 68,121,121, 57, + 44, 22, 11,164, 82,169,205,140, 64,173, 86, 67, 40, 20,214, 60,132,235,214, 38,213,173,205, 17,137, 68, 80, 40, 20,200,202,202, + 66, 74, 74, 10, 56,142,131, 82,169,132, 66,161,128, 88, 44, 70,102,102, 38, 50, 51, 51, 65, 41,133, 66,161,128, 66,161,176,219, + 28, 1,128,213,106,133, 88,252,231,126,192,102,179,217,161, 26, 45,139,197,130,107,215,174, 33, 53, 53, 21, 82,169,180,230, 88, + 37, 18, 9,110,222,188,137,236,236,108,200,229,114,168,213,106,104, 52, 26,187,117,109,199,162, 82,169, 32,147,201, 80, 80, 80, + 0,131,193, 80, 83,166,106,181, 26, 10,133, 2, 69, 69, 69,200,201,201,105,244,216,173, 86, 43, 50, 51, 51,161,215,235,145,150, +150,134,220,220,220, 26,179,197,113, 45,143,127,121,226,196, 9, 36, 38, 38,218,154,166,106,206,111,237, 87, 91,190,239, 27, 62, + 11,211,192, 44, 28,146, 91,106,150,232, 77, 34,141, 71, 88, 56,112,235, 16,192, 19, 0, 82,103,244,234,216, 6, 41, 5, 86,197, +117,157, 81, 10,130,161, 88, 31,232,108,151,166, 85, 56, 88, 95, 98,150, 36,155,180,234,144,206,221,161,211,233, 32,145, 72, 32, +145, 72,240, 64,223,112,220,202,179,202, 99, 51,202,229,160, 24, 98,151,230, 31,191,209,182, 74,165,178,247, 67, 15, 61, 68,106, +107,142, 24, 49, 2,132,144, 78,132,144, 96,135,142,127, 93, 59, 49, 76,242, 94, 16,208,217,177, 89, 6,239,125, 49, 21,129,143, + 62,246,132,203,199, 71,115, 66,174,101, 87, 6,128,154, 95, 3, 53,117,111,174,217, 34,132, 12, 80,169, 84, 7,215,173, 91, 23, + 32,149, 74, 15, 17, 66,250, 53, 71, 71, 41,227,111,124,107,198, 56, 31,103,155,201, 50, 27, 0,129, 12, 16,202, 0,129, 12,158, +238,110,120,127,234, 96, 23,185, 84,184,215, 1,195,186,107,253,250,245,218,186, 38,203,182,116,235,214, 13,111,191,253,182,214, +197,197,101,231, 63,252, 95, 96,136,147,147,211,246,240,240,240, 51,153, 42,213,212,172,238,221,197,191,104, 52, 69,143, 20, 21, +105,252, 99, 98, 76, 65,192, 21, 0,159,165,165,165, 13,179,215,100, 17, 66,158,209,104, 52,209,225,225,225, 38,149, 74,149,186, +102,205,154,151,103,206,156,137, 21, 43, 86, 96,241,226,197,159, 3,120,129, 82,250, 70, 90, 90,154,119, 83, 38, 11, 0,178,179, +179,159, 93,176, 96, 65,110,110,110, 46, 0,160, 83,167, 78, 40, 44, 44,196,188,121,243,240,234,171, 85,131, 98,187,118,237, 10, + 74, 41,116, 58, 29, 86,173, 90,165,203,206,206,126,174,137,123,123,218,158, 61,123,122,152, 76, 38,223,234,230, 65, 73, 97, 97, +161, 58, 63, 63, 95,101, 50,153, 20, 28,199, 41,156,156,156,148, 0,228, 19, 39, 78, 20,196,198,198,134, 88, 44,150, 12,230,173, +254,160, 49, 47,210, 76, 34, 91, 82,115, 85, 95,141, 88, 3,215,103,227, 53, 90, 17, 17, 17,164,246,235,109, 53, 70, 4,151, 83, +163, 78,192, 37,172,251,109,181, 89,114, 62,129, 76,173,193,173,180, 20,136, 64,174, 58,122, 16, 54, 99, 85,215,108, 21, 21, 21, +225,165,151, 94, 42, 31, 59,118,108, 30,199,113, 79,216,107, 10, 52, 26, 13, 52, 26, 13, 98, 99, 99,233,152, 49, 99,116,107,214, +172, 41,175,109,180,226,227,227,233,144, 33, 67,114,150, 44, 89, 82,218,152,209,178,213,104, 45, 95,190,188,124,224,192,129,250, +171, 87,175, 82,155,153, 82, 42,149, 88,181,106, 85,249,160, 65,131,116,231,207,159,167,182, 52, 71,106,180,120, 60, 94,141,209, +170,189, 15,143,199, 3,199,113, 14, 25,173,178,178,178,103, 35, 34, 34,116,113,113,113,212,118,156, 26,141, 6,107,214,172, 41, + 31, 60,120,176,238,234,213,171,212,150,166, 86,171,237, 54,131,182,239, 87,169, 84, 80,171,213,136,141,141,165, 67,134, 12,209, +125,242,201, 39, 21,181,211,175, 93,187, 70, 71,141, 26,165, 43, 41, 41,121,182,177, 26,173,196,196,196,154, 26,172,138,138, 10, +228,230,230, 34, 45, 45,173,166,233,176, 92,161, 30, 54,110,236,163, 93,202,203,203, 13,177,241, 55, 82, 59,117, 12,117, 47, 47, + 47, 55,164,164,166,198, 83,186,132,107,228,135,240,196,243,207, 63,159,183,104,209,162,242,226,226,226,122, 77,150,237,245,190, +130,199,121,130,208,135,126,187, 81,234, 52,248,209,167,197, 36,251, 28, 96, 42, 5, 36,206,128,196, 25, 2,133, 43,134,247,235, +202,223,118,166,216, 19,148,235, 3,145,196,183, 73, 77, 33,245, 0,184,126, 71,226, 43,156, 31,122,114,150, 56, 63, 63, 31,124, + 62,191,198, 20,201, 21, 10, 60,242,216, 68,222,151,231, 42, 61, 1,218, 23,132,239,107,111,118,197, 98,241,252,183,222,122, 75, + 84, 80, 80, 0, 30,143,247,135,166, 92,142,233,211,167, 75,212,106,245, 98,187,143,253,187, 80, 17,132,146, 94, 0,125,245,122, +118,133,247,254, 43,229, 65,175, 45,223, 34, 11,235,218, 3, 47, 14,116,151, 45,143,204, 9,187,148, 86,222, 6,176,206,129,197, +248,128,163,102,139, 16,210, 79,165, 82, 69, 70, 69, 69,201, 71,140, 24,129, 85,171, 86, 41,100, 50,217, 33, 66,136,195, 55,254, +178, 82,235,204,119, 63,249, 90,119,249,163,161,128,169,172,202, 96,213, 90,114, 74, 57,188,189,229, 88,145,217, 76,199,217,171, + 89, 94, 94, 62,233,133, 23, 94,200,219,187,119,239,159, 76,150, 84, 42, 69, 82, 82, 18,150, 46, 93,154,159,159,159,255,220, 63, +105,178,102,206,156,185, 52, 61, 61, 61,232,200,145, 35, 2,189, 94,239,190,250,139, 47,138,190, 43, 42,202, 95, 22, 19,115,253, +141,142, 29, 59, 44,236,220,249,185,134, 66, 63, 52,100,178,102,204,152,177, 43, 61, 61,189,219,209,163, 71,133,122,189,222,119, +198,140, 25, 88,185,114, 37, 22, 47, 94,188, 9,192,139,180,186,179,140,189, 24,141,198,235, 5, 5, 5, 35,135, 14, 29, 90, 88, + 80, 80,128,206,157, 59,227,209, 71, 31,133,167,167, 39,188,189,189, 49,122,244,104, 4, 6, 6, 34, 47, 47, 15,227,198,141,203, +215,235,245, 67, 41,165,137,141,105,230,229,229, 37,236,220,185, 51,126,214,172, 89,221,210,211,211, 67, 0,184,150,148,148, 40, + 74, 74, 74, 36, 70,163, 81,230,236,236,236,220,181,107, 87,183,105,211,166, 41, 47, 94,188, 24,146,158,158, 94, 10, 32,133,217, +171, 26,147,213,160, 23, 1,160,175, 54, 60,198, 58,175,250, 38,214,217,187,111,189,239,237,216,238, 54,179, 85,123,249, 83,141, + 86, 67,152,128,183,191,218,179,173, 66,236,215, 30,154,160, 46,144, 75,165,144,137,197,144, 57,187,162,146,227,240, 69, 82,182, +161,140,210,197,142, 22,104,237,102, 67,169, 84, 10, 62,159,143,207, 62,251,204,210,187,119,239,138, 99,199,142,173, 51, 24, 12, +126,148,210, 31, 28, 49, 5,159,124,242,137, 97,246,236,217,151,114,114,114,186, 72,165, 82,163, 45,125,221,186,117,134,137, 19, + 39,198,164,167,167,119,147,203,229,134,134,250,103,213, 54, 90, 18,137,164, 50, 39, 39,167,199,148, 41, 83,226, 62,251,236,179, + 50,185, 92, 14,133, 66, 1,137, 68, 98,204,201,201,233,242,242,203, 47, 95, 90,185,114,165, 65, 38,147, 65,161, 80, 56,212, 44, + 71, 41,253,147,161,170,157,110, 47,102,179,249, 88, 78, 78, 78,151,217,179,103, 95,252,248,227,143,203,108, 6,168,118, 30, 87, +175, 94,109, 80, 42,149, 14,213,104,217,182, 83, 40, 20, 88,187,118,173, 97,214,172, 89,151,114,114,114,186, 72, 36, 18, 99,173, +244,178,153, 51,103, 94,204,201,201,233, 98, 54,155,143, 53,242, 15,207, 90, 92, 92, 12,129, 64,128,152,152,152, 74,145, 72, 4, + 30,143,135,155, 55,111,214, 24, 45, 23, 23,151,208, 46,157, 58, 6,127,189,107,207,113,153, 72, 34,233,221,227,129,144,196,228, +148,116, 74, 73,114, 19,255, 56,126,168,168,168,240, 59,121,242,228,186,161, 67,135, 86,124,254,249,231, 22,129, 64,240,167,135, +207,253,103,180, 32, 7,129,236, 70, 78,165, 74,202,179, 16,196,255, 80,101,178,164, 78,128,212, 25,144, 58,195,199,199, 23,231, +146, 12, 42,240, 32,134,213,142, 24, 98,148, 42, 64, 32,143,209, 65, 37, 20,203, 72,118,118,118,141, 33,178, 45, 1,237, 67,112, + 33,165, 84, 9, 66, 37,224,195,145, 16, 36, 35, 93, 93, 93, 5, 89, 89, 89,127,210, 12, 13, 13,229,155,205,102,251, 67,187,100, + 90,189, 0,110, 70,124,118,133,215,247,151,202,130,230, 44,251, 82, 38,179, 22, 2, 81,159, 32,172,173, 55,230, 60,217, 85,252, +230,126,125,216,249,100, 67, 91,240,233,139,224, 74,181, 14, 24,132,135, 84, 42,213,161,243,231,207,203, 85, 42, 21, 18, 19, 19, +209,163, 71, 15,108,222,188, 89, 46,151,203,127, 36,132, 12,116,228, 52,157,201,166, 41,165, 37,214,222,243,247,164,102, 95,206, +178,220,102,178,244,101, 20, 47,124,184,191,176,160,184,226,137,211,169, 13,255,126,234,185,230, 47, 22, 22, 22, 14, 89,188,120, +113,158, 94,175,191,237, 26, 79, 73, 73,177, 25,130,129,148,210,171,255,212,229,169,209,104,198, 47, 91,182, 12,231,207,159,199, +136, 17, 35,112,226,196, 9,228,231,231, 99,247,161, 67, 55,118,222,184,241,134,173,207, 86,125,161, 31, 26, 66,173, 86,191,182, +108,217, 50, 68, 69, 69,213,104,230,229,229, 97,217,178,101,233, 0, 94,114,212,100,217,208,233,116,231,174, 95,191, 62,180,115, +231,206,215,214,173, 91,151,238,229,229,197, 77,155, 54, 13, 47,188,240, 2,180, 90,173,117,237,218,181,169,253,250,245,139, 73, + 72, 72, 8, 47, 43, 43,187, 98,199,249,161,185,185,185,167, 54,111,222,124,230,225,135, 31,150, 79,154, 52, 73,187,111,223, 62, + 87,131,193,224, 45,145, 72,220,141, 70,163,248,218,181,107,252,239,190,251,206, 51, 54, 54, 54,169,188,188,252, 92,115,243,254, + 47,228,124,117,237,212,209, 58,175,231,155, 88,103,239,190, 13,189,111,106,187,218,231,127,115,237,165,246,138, 38,151,241,109, +241,159,233, 29, 85,134, 83, 19,122,209,236,105, 15, 81,221,211, 33,244,228, 0, 23, 58,165, 29, 41,155,212,204,240, 14, 25, 25, + 25, 84,167,211,209,188,188, 60,250,205, 55,223, 80, 79, 79,207, 50,149, 74,229,112,120, 7, 79, 79, 79, 93,113,113, 49,125,240, +193, 7,243,181, 90,109, 77, 40, 2, 47, 47, 47, 93, 89, 89, 25,237,213,171, 87,190,187,187,123, 77,120, 7, 95, 95,223, 52, 74, + 41,245,247,247,207,108, 72,207, 98,177, 80, 79, 79, 79, 91,136, 4,161,139,139,203,134,158, 61,123,230,235,116, 58,234,229,229, + 85, 19, 58, 65,171,213,174,234,209,163,199,109,233,118,228, 55, 45, 61, 61,157,166,167,167,211, 86,173, 90,101,214, 78, 79, 73, + 73,161, 41, 41, 41,212,215,215,215,225,240, 14, 90,173,118,101,221,188, 52, 55,143,126,126,126,186,242,242,114,218,167, 79,159, +219,202,212,207,207, 79, 87, 81, 81, 97, 75,183, 43,188,131, 76, 38,123, 81, 42,149,102, 74,165,210, 76,137, 68,178,180,117,235, +214, 57,223,126,251, 45, 93,187,118, 45, 85,169, 84, 85,225, 29, 66, 71,245,110,223,231,185, 55,180,161,163, 95,107, 73,120, 7, +149, 74,245,139,167,167,103,217,119,223,125, 71, 43, 43, 43,169,217,108,166, 54,112, 63,141, 58,220, 28,216,158,110, 8,222,159, +240,110, 64,236,236,254,242,138, 43,239,119,161,244,191,143, 83,250,227, 11,148, 30,155, 79,207,109,154, 70,251, 4, 72,172,191, +207,107, 21, 79, 55, 6,125,111, 87, 72,134,205,157,218,211, 13,193, 63,222,120, 39, 32,118, 82, 63,239,138, 47, 62, 91, 75,207, +158, 61, 75, 99, 98, 98,104, 98, 98, 34,253,241,135,111,105,159,182,242, 42,205, 13,193,251, 29, 9,243, 0,160,175, 68, 34, 41, + 93,179,102, 13, 61,115,230, 76,141,230,254,253,251,169, 92, 46, 55, 0,118,142, 90, 6, 8,221, 16,250,152,229,179,160,223,222, + 28,172, 44,201, 59, 56,159,210, 43,219, 40,221, 28, 70,233,214,158,148,126, 27, 65,233,129,231,232,153,181, 79,210,190, 1, 34, + 51,221, 24,116,130,110, 10, 29,108,111, 62,133, 66, 97,241,222,189,123,105,102,102, 38, 61,113,226, 4,141,138,138,162,113,113, +113, 52, 53, 53,149, 70, 70, 70, 82,161, 80, 88, 1,192,225, 81,141, 61, 61,224, 31,222, 65,148,117,105,121, 95, 74,247,141,163, +250,157,227,233,200,142,170,252, 94,173, 4, 15,183, 96,164, 93, 87, 87, 87,215,220,200,200, 72,154,148,148, 68,143, 31, 63, 78, +221,221,221,115, 1,132,253,211,215,103,120,120,248, 89, 74,105,244,136, 17, 35,162, 1,252, 20, 30, 30, 30,125,235,214,173,232, + 30, 61,122,156, 65, 35,161, 31, 26,211,124,228,145, 71, 76,148, 82, 58, 98,196, 8, 10, 32, 51, 60, 60,156,222,186,117,139,246, +232,209,195,120,135, 70, 73,242, 1, 60, 39, 20, 10,191,112,113,113,249,159,179,179,243, 49, 62,159,191, 25,192, 4,123,238,115, +141,104,122, 3, 8, 5,240, 64,245, 18, 82,157,198, 70, 28,254,155, 38,156,182,119,195, 39, 3,208,119,114, 91,114,252,217, 54, + 40, 25,215, 6,165,207,183, 35, 39,159, 8,192,195,142,206,238,109, 51, 90,249,249,249,244,226,197,139,116,192,128, 1,101, 10, +133, 34, 3,192,208,230,204, 24,238,230,230, 22,229,238,238,158, 38, 16,220,126,211,170,149,254, 72,237,116,119,119,247, 83, 94, + 94, 94, 58,173, 86,123,161, 62, 77, 55, 55,183, 40, 47, 47, 47,157,155,155, 91, 84,237,253,248,124,254, 8, 55, 55,183,140,186, +233, 2,129,224, 97,119,119,247,180,186,233,104, 96,102,115, 79, 79,207,180,204,204, 76,170,215,235,169,159,159, 95,102, 93, 3, +150,157,157,125,155, 1,115,100,182,244,134,242,210, 80,122, 67,154,118,148,169,195,231,189,214,186, 64, 31, 31,159,156,213,171, + 87, 83,165, 82,153, 83,123, 93, 80,255,231,223, 58,123,163,180,248,133, 5, 27,190,213,134, 60,214,169, 57, 51,197, 3, 24,170, + 80, 40, 50, 6, 13, 26, 84,118,243,230,205, 70,141, 22,238,145, 25,237,255,164,185, 39, 68, 68, 55,133,244,165, 27, 67, 34,227, +150,248, 95,123,174,167,162, 50,122,245, 8, 74,143,205,167,103, 54,188, 64,123, 7,136,171, 12,209,166,224, 67,244,203,192,254, +244,147,182, 98,187, 52,191,104,215,143,110, 10, 62, 20,251,182,255,181,199,187,107,141,187,182,109,162, 55,111,222,164,251,191, +219, 73,123,181,169, 54, 89, 27, 67,126,166, 27, 66, 6,217,165, 89,143,217,218,178,101, 11,189,121,243, 38,253,254,251,239,237, + 50, 89,183,105,214, 50, 90,139,194,149,133, 47,244,148, 86,142,235, 42, 54,142, 14, 19,153,134,180, 23, 89,250,248, 11,172, 93, +188,120, 92,136, 22,116, 72,144,172,146,110, 12, 58, 65, 55,134, 12,181, 55,159, 98,177, 56, 21,181, 98,234,212, 93, 36, 18,137, +190, 33,163,213,212,121,239,233, 1,255,240, 64, 73,214, 47,239, 62, 76, 31,237,172,202,179,199,100, 53,165, 9,160,171,155,155, + 91,238,214,173, 91,169,135,135,135,222, 30,147,245,119, 92,159, 26,141,102,123,105,105,105,244,225,195,135,163,195,195,195,163, +183,111,223, 30,125,242,228,201,104,185, 92,190,189,161,208, 15, 33,117,238,255,117, 53,213,106,117,116, 73, 73, 9, 61,124,248, + 48, 13, 15, 15,167,219,183,111,167, 39, 79,158,164,114,185, 60,250,174,250,109, 50,205,127,175,153,170,138,161,117,219,226,176, +209,186, 83, 39, 2, 0, 45, 44, 44,164,115,230,204, 49, 74,165, 82,131, 72, 36, 90, 4, 64,244,111,185, 8,221,220,220, 78,121, +120,120,232, 60, 60, 60,110, 51,123,181,211,221,220,220, 46,220,207, 63, 64, 0,129, 34,145, 40, 69, 40, 20,198,215, 78,215,134, +142,234,221,174,239,164,197, 30, 97,163,134,183, 36,159, 0, 68, 34,145,104,145, 84, 42, 53,204,155, 55,207, 88, 90, 90,122,127, + 25, 45, 74, 65, 63,105, 43,182,153,173, 43,139,253,227, 30,237, 40, 55,109,158, 59,132,246,110, 86,124,231, 23, 0, 0, 32, 0, + 73, 68, 65, 84, 93,199,100,109,245,151, 56,164, 89,109,182, 46,190,233, 23, 55, 40, 80,105, 89,182,120, 14,237,213, 70,118,187, +201,114, 68,179,142,217,146,203,229, 37, 75,150, 44,177,187, 38,235, 79,154, 95, 4,249,209, 77,193,219,171, 76, 84, 19,203,134, +160,207,233,167, 65,126,119,203,121,239,233, 1,255, 71, 2, 37, 87,237,173,201,178, 71, 19, 64, 87,103,103,231,107,246,214,100, +253, 29,199, 14, 96,200,244,233,211,163,111,221,186, 21,157,152,152, 24,125,242,228,201,232,199, 30,123, 44, 26,192,144,250,226, +108,153,198,140,169,236,202,227,205,105, 66,243,153,233,211,167,211, 91,183,110,209,196,196, 68,122,242,228, 73,250,216, 99,143, + 81, 0,207, 48, 3,195,140,214,221,190, 8,254,238, 70, 86,169, 84,154,227,228,228,164, 85, 42,149,145, 21, 21, 21,179, 40,165, + 89,255,166, 70,102,189, 94,223,199,145,244,251, 17, 74,105, 60, 0,255,186,233, 57, 87,247,157, 6,112,250, 14,232,155, 0, 44, + 35,132,124,181,105,211,166,117,171, 86,173,122, 76, 42,149,234,239,171, 66,156,149, 96,196,186,118, 81, 16,139,151,119,244,145, + 47,124,107, 4, 37,203, 14,159,242, 95, 49,198, 61,181, 79, 59, 69, 18,132,220,135, 32,149,231,240, 92,114,165,131,154,231, 32, + 51, 47,239,210, 74,190,240,131,209, 32, 31, 30,218,230,191,242, 49,215,212, 62,109,149,169,160,248, 16, 18,195,105,135, 52,111, + 63, 47,191, 19, 66,134,175, 94,189,250, 43,131,193, 48,149, 82,250, 63,135, 69, 84,188,108,148,153,151,192,204,239, 8, 10,113, + 35, 95,102, 0,143, 31,131, 28,220, 53,147,137,159,201,166, 41, 0,194,238,240,111,233, 98,117,115,212,221,244,251,254,153, 16, +130,157, 59,119,142, 15, 14, 14,110, 27, 27, 27,155,104, 48, 24,118, 80, 74,127,174,221,151,137, 16,114,224,195,203,151,203, 62, +141,141,253,221,200,113,191, 55,161,185,187, 90,243,181,224,224,224,176,216,216,216,171, 6,131, 97, 53,165,116, 55,235,186,196, +184,219,249,219,141, 86,121,121,185, 7, 43,118,198,223,116,195,207, 2, 48,230,190, 61,192, 90,102,171,187,159,108,214,222,233, + 50, 3, 40, 73,135,144, 91,235,176,201,170,199,108,245,240,151,189,250,253,139, 50, 3, 40,178, 65,241, 81, 75, 76, 86,109,179, + 5,160, 77,179, 5,158,140, 53, 1, 72, 2, 33,201,248, 15, 26,238, 68,253, 31,212,252,237,102,252, 51,102, 11,192,207, 77,108, + 67, 1, 28,171, 94,236,209,220, 13,128, 25, 43, 6, 51, 90, 12, 6,227,111, 54, 91,223,133,158, 71, 46,127, 30,120,104, 3, 88, + 82, 80,102,201,198,172,100, 99, 11, 53,207, 34,151,204, 6, 31,129, 16, 91, 18, 80,106,204,198,244, 22,104,254, 5, 79,114, 84, +245,157,170,159, 37,236,210, 96, 48, 24,127, 31,132,144,105,181, 71, 26,214,254,204,140, 22,131,113,175, 83, 85,203,147, 94,189, +220,189,154, 12, 6,131,241, 47, 51, 92, 64,213,156, 76,225, 13,252, 97, 60,234,128,112,120, 51,254,144, 30,101,154, 76,147,105, + 50, 77,166,201, 52,153,230,191, 75,179, 41,109, 71,252,199,221,100,176,234, 57,142,205,182, 55,127,235,168, 67,166,201, 52,153, + 38,211,100,154, 76,147,105, 50,205,127,203,194, 3,131,193, 96, 48, 24, 12, 6,163, 37, 53, 90,221,170, 95,189,170,167,224,241, +178,173,251, 71,251,104,201,221, 2,189, 32,224,117, 38, 28, 13, 6, 0,202, 35,113,176,112,151, 13,185,241, 45, 14,249,160,242, + 9,114,161, 16,239, 33, 48, 62, 85,146,113, 61,191,165,122,157,130, 52, 99, 60,220, 84,227,179,243,138,190,138,137, 43,217,231, +200,190, 78, 78,173, 53, 82, 23,231, 39, 43, 77,230,142, 98,145, 40,213, 84, 88,188, 57, 63, 63,161,132, 93,154, 12, 6,131,193, + 96,220, 23,116, 3,112, 1, 64, 4,165,116,115,117, 83, 98,227,157,225, 91,135,245, 59, 47,149,202, 2, 0,128,163, 20, 28, 5, +202,138, 11,163,179, 18,206, 15, 5, 0,109, 64,247,195, 66,169,186, 59, 71,171,214, 91, 57,192, 98,170, 72, 42, 74, 62,243,160, + 61, 57, 82,186, 7, 61, 30, 62, 36,124,204,200,145, 17, 65,157, 58,118,106, 7, 0, 87, 98,174, 36, 28, 60, 24,121, 93,233, 30, +180,183, 52,231,250,247, 45, 57, 98, 10,233,123, 15, 60,208,245,161,168,168, 11,239, 2,152,209,210, 18,116,117, 85,206,250,249, +191,243,250, 63, 50,102,149, 2,128, 67, 70, 75,234,226,252,228,232, 71,135,117,125,253,149,233,188, 23,230,125, 16,112,254,247, + 95, 87,168,188, 59, 22, 82,206,252,115,153,238,233,223, 26,155, 56,153,193, 96, 48, 24, 12,198, 93, 79,100,181,185,138,172,187, +162, 65,163, 37,149,202, 2,206,252,122,208,229,251,147,105, 0,128,240,110,158,120,227,253,117, 67, 8, 33,215, 1, 96,212, 11, +255, 9,124,119,209, 43, 56,117, 53, 7,148, 82,116,109,239,138,225,163,159,178, 43, 55, 50,207,208, 7,159, 30, 59,246,217,121, +243, 94, 27,117,243,230,205,228, 93,187,118,253, 6, 0,253,250,247,111,255,193, 7, 31,140, 93,229,236, 34,145,121,134,102,148, +103,199,158,111,206,209,202,124,218,249,132,118,232, 60,254,155, 47,215,241, 6, 14,125, 98,156,204,167,221,178,242,140,132, 12, +123,246,213,106,181,179,133, 66,161, 6, 0, 56,238, 15,255,211,182, 21,223, 19, 0, 44, 86, 78,229,226, 19, 92,194, 23, 73,173, + 18,137, 40,182,164,180,244,171,162,244,216, 47, 26,211,172, 52,155,195, 94,125,105, 50,239, 98, 98, 30, 2,194,250,241,215, 46, +123, 19,156,213,236, 60,103,209,251, 79, 70,157,253, 6,192,146,227,236, 26,101, 48, 24, 12, 6,227,222,164, 58,110,227,230, 90, +159, 55, 55,105,180, 0, 64, 41, 19,224,250,173,108, 0,128,147, 12,152,245,226, 36,228,229,234, 3,141, 22, 14,207, 79,154,128, + 11,113, 89,184,158,164, 7,165, 20,129,190,114,187, 51,196, 7,247,192,243, 83,158, 31,112,248,231,159,207,189,181,248,173,175, + 9,169,138, 6,190,105,243,231,189,223, 94,242,246,212, 9,147, 38, 12,254,238,187,239,174,162,206,204,216,246, 34, 32,170,117, + 43,151, 47, 21,167,231, 86, 84,204,158,183,144,123,109,238,236,181, 0,158,176,103, 95,161, 80,168, 73, 79, 79, 87,242,120,183, +119, 95,251,112,233,194, 19,131,199,172,186,145,156, 90,120,241,240,254,253, 15,134,134,134, 34, 61, 35,187,239,138,143, 55,118, +241,106,247,224,228,146,226,242, 49,101,250,216,122,163, 80, 75,132,194,171,239,172,216,208,149,115,106,207,123, 99,234, 8,132, +181,243, 70, 70, 78, 33,250, 15, 29, 37,136, 62,127,126, 8, 0,102,180, 24, 12, 6,131,193,184, 71,105,108,212, 33, 15, 0, 34, + 35, 35,235, 13,252,103,181, 82, 92, 79,202,194,245,164, 44,156,139,211,195, 68,133, 88,187,226, 29,172, 94,182, 4,249,229, 60, +124,127, 42, 13,241, 73,217,136, 79,202, 70,110, 65,105,125, 14,239,182, 33,154,171,151,203,187,173, 93,171, 89, 57,164,191, 98, +160,139,179,179,243,141,171, 95,151,189, 61, 87, 23,242,206,171,105, 34,161, 81,146,174, 80, 42,250,236,217,243,109,168,135,214, + 93,161, 84,170,230, 43,124,187,110,113,114,234,162,105, 76,179, 46,114,143,144, 81,163, 34,134, 61,236,233,233,193, 77, 95, 27, + 29,215, 49, 36,216,220,161,125,135,190,114,143,192, 81,141, 56,209, 26, 77,142,227,192,227,241,160,211,233,144,153,153,137, 91, +183,110, 33, 62, 62, 30,105,105,201, 58,142, 82,161, 21, 28,207,203,203, 23, 2,129, 24, 1,173,253,177, 97,237, 50,249,251,255, +121,163,135, 84, 33,222, 71, 8, 33,245,105, 86,228, 23,124,247,227, 79, 63,103, 28,218,181,193, 10, 0, 57, 5,165, 56,118,254, + 38, 46,196,166, 57,234,152,239,248,144, 87,166,201, 52,153, 38,211,100,154, 76,243,110,208,108,200,139,220, 11, 80, 74, 55,215, + 93,108,235, 26, 29,117,152,144,150,143,235,183,178,209, 61,216, 7,237, 90,123,225, 92,124, 1,118, 28, 75,195,150,195, 41, 56, +118, 73, 15, 78,160, 66,118, 49,112, 35, 89,135, 27, 41,185,141,197,105, 6, 0,240, 37,194,167, 95,125,181,104, 94,167,208,226, + 94,191, 30,154, 5, 31,237,141,208, 5, 11, 10,103,241, 37,194,167,157, 91,169,118, 45,156, 55,103,188, 74, 46, 23, 27, 43,141, +104,219,198, 95,250,202,204, 89,147,137,179,100,151,189, 7,170,246, 13,117,150,200,100, 95,188,255,159,249,146,143,190,191,145, + 90,102, 68,217,222,211,186,196,215, 22,190,157, 47, 16, 74, 55,168,125, 67,157,237,213, 50,155,205,168,172,172,132,209,104,132, +201,100, 66, 70,218,181, 81,191,124,255,250,208, 54,173, 92,134, 74,164, 82, 80, 0,197,229, 22,220,202, 50, 96,208, 35,131,249, +221,187,117, 11, 83,122,133, 76,169, 79,171,176, 48,185,136,163,124,213,193, 31,118,242,191, 61,114, 17, 95, 31, 60,143,125,255, +187,136,115,199, 15, 89, 40,103,174,153,166, 66,229,221, 33, 80,229,221, 57, 69,229,211, 69, 87,179,248,118,138, 98,255, 21, 24, + 12, 6,131,193,184,123,169, 30,105, 56,173,238,136, 67,160,145,166,195,138,138,242,164, 39,158,158, 0, 47,119, 79,229,232,129, +207,137,162, 19, 10,161,207, 74,193,205,248, 24, 24, 42,204, 16, 57,183, 1,164,158,104, 29,224,143,203,215,247,153, 62, 89, 25, + 89,202, 89, 42,147, 26,210, 27, 61,218,219,215, 75,171,224,173, 92,225,119, 38,254,122, 65,247,157,139,183,226,217,103,149,110, + 43, 87,248,157, 73, 78, 84,240,228, 82,218,103,242,164,113,132, 71, 40, 22, 44,152,135,209, 35,135,225,249,201, 19,201, 87, 95, +109,235,101,239,129,114, 16,126,186,232,205,119,196,186, 66,139,241, 92,124,105,165, 92, 33,147,253,126,163,180, 44, 44,192, 79, + 54, 98,204,115,153,145,123,190,248, 8,192, 36,123,180,108, 6,203,108, 54,195,100, 50, 1,128, 21, 0,120,188,170,215,188, 18, + 35,114, 10, 43,161, 43,172,132,197,202, 97,204,211,147,100,231,163, 46, 77, 2,208, 64,127, 45,142, 51, 91,204,216,123,228, 2, + 50,206,127,199, 17, 30,191,200,214, 25,222,102,178, 60, 61,253, 78,140, 28, 51, 81, 43,150, 86, 53,195,150,148, 85,226,171,141, + 43,216, 21,204, 96, 48, 24, 12,198, 93, 76,221,233,119, 8, 33,104,114, 10,158,228,171,191, 61, 8, 0, 65, 15, 14,205, 83, 74, + 5, 46, 2, 30,129, 46, 61, 1, 95,173,154, 13,142,163, 24, 49,117, 37, 84, 1,158,144,137,248,168, 44,205, 43,205,187,249,171, +107,227,110,207, 60,120,253,166,140,128,151, 95,106,171,222,185,179, 84, 8, 0, 59,119,150, 10, 95,154,222, 74,253,217,166,164, +128,158, 15,117, 7,181, 90, 49,114,244, 19,120,250,153,167,145,156,109,192,127, 79,164,162,172,220,104,215,252,106,114,109, 72, + 23,119,111,159, 97,175, 62, 55, 76, 33,224, 19,210,193, 95,195, 79,211,155, 45,124,190,208,122,224,124, 81,230,152, 49,207,184, + 29,251,241,219,135,229,218,144, 46, 6,253,181, 75, 77,233, 85, 86, 86,194,106,181,162,178,178, 18,102,179, 25, 46,110,109,126, + 28,252,196,170,244,172,236,146,200,236,130,138,158,101,102, 11,116,133,149,200, 41,172, 68, 97,153, 9,158, 42,103, 88,204,198, + 78,141,156,132,175, 31,123, 98,194, 68, 0, 60,194,179,108, 45,201,188, 22,111, 91,103, 51, 89,195, 70, 63,171, 61, 17,157,128, +155, 81,135, 10, 40,103, 49, 87, 21, 28,199,166, 64, 97, 48, 24, 12, 6,227, 46,167, 86, 63,173,200,234,206,241,184,205,104,217, +218, 70, 35, 34, 34, 72,221,157, 51,116,249,112, 85, 10,160,245, 14,192,248,217,171,241,245, 71,115, 97,181,154, 65, 41, 96,177, +218, 23,153,128, 82,225,145, 25, 47, 5, 4,183, 14,224,107,199, 63, 43, 47,223,177,211, 32, 27,255,172,188,188, 99, 39,215,162, + 25, 47, 5, 36,149, 84,248,245,181, 88,173,248,253,106, 14, 98,146,138, 16,147, 92, 12,165,204,254, 48, 95,124,177,232,165, 21, +203,151,137, 4,124, 66,174,166,148,150,166,231, 89, 74,249, 66,161, 73, 46, 19, 83, 35, 21, 84, 38,231,210,188, 71, 30,155, 92, +126, 96,251,199, 83, 0,204,108, 72,199, 54,210,208, 86,147,101,123,165,148, 82, 2,112, 28,177, 90,211,115, 43, 80,106, 50, 67, + 87,240,135,209, 34,150,134, 91, 78, 85,222, 29, 2, 53,106,151,159,248,124,190,132, 82,192,108,178,140, 85,121,119, 24, 90,146, +121, 35,190,182,201, 58,115, 53, 19, 9, 23,143,234,172, 38,195,132, 50, 93,220, 47,236,178,101, 48, 24, 12,198,191,137,198,188, +200,221,142,173, 6,171,222, 26,173,198, 14,136, 82,224, 70, 74, 46, 90,251,106,225,219,186, 29,226,175, 93,254, 99, 29, 0,139, +213,190,190,107,251,246,101,166,175, 89,163,225,230,206, 45,234,189, 98,133,223,233,151,166,183,210,116,236,228, 90, 52,127,126, +106,239, 53,107, 52,167,143,156, 17, 90,105,117,188, 46, 91,108,174,234, 48,255,118,194,235,209, 37,180, 13,255,157,157, 55, 82, +127,185, 82,146, 35, 18,137,204,158,206, 82,162, 82,138,249,124,158, 80, 92,105,230, 85, 6,134,117,227, 31,224, 85, 69,111,109, +202,104,213,109, 58,204,211, 39,140,250,249,191,243, 58, 14,124,108,165, 75,134,190, 28, 69, 70,126, 77,211, 33,159, 71,112,229, + 90, 10,192, 23,197,212,167,169, 86,185, 28,222,181,227,107,191, 53, 43,150,194,100,177, 98,198,220,183, 48,121,210,132,195, 42, +239, 14, 67,253, 2,130,162,127, 59,176, 85, 62,116,250, 6,164, 92,143,202,182, 84, 22,239,102, 38,139,193, 96, 48, 24,255, 54, +238, 69,115,101,163,206,168,195,250,107,180, 26,195,223,215, 3,103, 99,146,208, 41,184, 13, 52,106, 21,226, 18,210,193,231, 9, +193, 35,128,217, 98,191, 25,162, 38,243, 55,107,214,104,144,146,164,224,125,182, 33, 41, 96,198, 75, 1, 73,107,214,104, 78, 83, +147,249, 27, 0, 19, 40,173,154,123,209, 22, 32,213,234, 64, 24, 79,202,153, 91,121,184,200,249, 81,137,101,121, 60, 30,191,210, + 85, 35,229, 92, 53, 18,158,171, 74, 44, 20, 9,249,156,133,242, 76,190,238, 1, 21,148,227,186,216,163, 87,187,233,208,106,181, +130, 16,158,181,218,136, 41,210,242,202, 81, 84,193,135,174,176, 18, 5, 37, 38,116,240, 81,224,232,177,239, 12, 86,115,249,206, +250,180,248, 66,145,166, 93,128, 47,222,120,111, 13,202, 43,173,184,145, 81, 10,145, 68,226,233,225, 25,118,105,194,203, 11, 37, +175,108, 78,192,148,135, 93, 49,247,183,132, 12,131, 78,186,144,253,220, 24, 12, 6,131,193,184,119,168,221, 71,171, 46,118, 25, + 45,165, 92, 10,202,151,226,183,232, 4, 4,133,118,198,182,253,231,208,190, 83, 47,100,149, 88, 64,193,107,114,180,161,141,215, + 22, 26, 46, 0,184, 48,122,180,183,239,227,143,251, 12,166, 84,120,228,179,141, 69,233, 0,176, 97,247, 0, 80, 0, 28, 71, 65, + 41, 64,185, 42,195,101,191,157, 20,164, 36,101, 21,183, 14,240, 84, 32, 54,221, 84,169,144,136,120,206, 10, 49, 95,171, 17,139, + 68, 2, 1,172,148, 84,102,101, 37, 84, 18, 32,217, 30,185,186, 77,135,114,165,215,143,143, 60,182, 82,159,156, 90, 20,213, 33, +223,208,165,200, 36, 6,165, 64, 7, 31, 5, 98,206, 68, 90,117, 25, 55,111,148,235,174,111,172, 79,139,227,192, 55, 89, 56, 92, + 74, 44, 66, 97,153, 25,133,165, 38,244, 29,244,168,168,111,248, 40,252, 22,147, 11,206, 98,198,138,207, 35, 75,172,212,252, 52, +165,177,102,118,201, 50, 24, 12, 6,131,113,239, 80, 61,210, 48, 2, 85,145,225, 35,106,155, 47,187, 38,149,182,114, 20,110,174, + 46,144, 42,212, 72,210,153, 80, 66,220, 81, 96,160,176, 90,171,106,180,184,134,191, 56,188,190,244,125,251, 50,211,127,248, 65, +191,101,223,190,204, 90, 29,189,255,168,201,170,121,229,168,221,154,132, 90,143,238, 63,244,107,209,168,158, 90,103, 30,159, 95, + 46, 18,242, 42, 5, 34,190, 73, 36,224,153, 69, 2,158,209, 67, 45,228,255,122, 96,183,152, 18,252,218,148,102, 69, 69, 5,194, +195,195, 49, 98,196, 8,140, 30, 61, 26, 79, 61,245, 20, 2, 3, 67,220,121,124, 98,164,132,227,180,226, 18,180,211, 18, 8, 42, +210,240,203,238, 15, 13, 49,191,255,112,201, 90, 89,241, 40,173,213,214,121,155, 38,165, 92,126, 81, 37, 42, 76, 86, 20,148,154, + 80, 80,102,130, 69,219, 27, 63,156,202, 68,185,209,138,148,232,239,202,245,217,233,179, 43,116, 55,146,154, 56,145,225,127,193, +197,193, 52,153, 38,211,100,154, 76,147,105,254,227,154,247, 56, 17,213,198, 42,162,110, 28, 45, 59,106,180, 40,218,122, 41,208, +222, 71,129, 10,147, 59, 42,140, 86,148, 85, 88, 81,108, 48,161,216, 96, 70, 82,182, 1, 49,251, 91,158,195,170, 90, 44,128, 84, +191, 7,169, 50,120,246,214,105,137, 77,198,247, 86,175,248, 96,236,238,110, 93,141,175, 68,120,181,186,156,100,204, 36,132, 87, +206,227, 11,204, 46, 42,129, 48, 46,238,178,254,244,137, 31,251, 75, 45,214,137,141,233, 88, 44,150, 34, 31, 31, 31, 0,183, 79, +193, 19,210, 78, 54,250,247,200, 5,109, 6,140, 90,161,253,104,233, 60, 3,143, 47,226,136, 64, 20, 99, 53,151,239, 42,215, 93, +223, 64, 27,233, 80,198, 19, 73,175,157,189, 24,219,203,201,165, 21,110,102,148,161,172,194, 2,147,133,131,179, 82,132,244, 43, +135, 77, 73,113, 81,223,150,100, 92,218,198,174, 83, 6,131,193, 96, 48,238, 77,108,253,180,108,175, 77,134,119,168, 85,187,147, +244, 80,248,163,224, 56, 10, 43, 5, 56,107,117,205, 19,247, 71,237,147,213, 92,145,212,210, 12,114,156,245,220,167,155,183,140, +232,214, 99, 0, 63,212, 79,137,226,188,108,156,249,253,127, 22,112,244,180, 61,251,231,230,198,151,202, 61, 59, 60, 49,246,201, +199,247, 76,122,126,122, 97,255, 65,131, 20,238,238,158,149,233, 25,233,134, 47,183,239, 48, 31,254,113, 95,127, 14,150,103,114, +115,111,148, 54,166, 83, 88, 88,248,113,125,233,143, 60,212,170, 47,128, 54,124, 1, 49, 26,114,226, 21,142, 28, 91,110, 70,218, +152, 15,222,251, 79,242,179, 83,231,136,219,250,180, 67, 78, 17, 31, 73,233,217,136, 59,177,175, 50, 35,254,252,247,197,233, 23, +166,176, 75,148,193, 96, 48, 24,140,123,147, 22,245,209, 74,141,173,138,167,245, 87, 83,146,157, 51, 97,219,182,175,223,255,122, +251,238,190, 21, 70,163, 15,133, 40,205,106, 49, 30, 47,181,226,109,123, 53, 12,217, 55,162,220,220, 2, 59,126,249,249,167,111, +126,185,229,179, 1,224,172,193, 4, 72,166, 4,191, 74,205,214, 73, 77,153,172,198,141, 92,201,166,193, 79,172, 42,207,203, 43, +253,218,209,125, 13,185,113,217, 74,143,182,173, 54,173,125,111, 37,143,199, 31, 98,181,114, 66,206,106,190,105, 53, 85,124, 88, +174,191,190,159, 58, 54,188,146,193, 96, 48, 24, 12,198, 93, 4, 33,100, 90,221,160,165,118,215,104,253, 93,228,231, 39,148, 0, +120,165,165, 58,185,185,241,165, 0,238,248,200,189, 43,241, 69,255, 5,240,223,230,238, 95,170, 75,212,195,206,168,244, 12, 6, +131,193, 96, 48,238,125,195, 5,216,217, 25,158,193, 96, 48, 24, 12, 6,131,209,184,201,170,253, 90,147, 14,160,222,145, 3,142, +204,204,221,156,209, 7, 77,233, 51, 77,166,201, 52,153, 38,211,100,154, 76,243,254,211,108, 74,219, 17,255,113, 79, 24,176,191, +178,123, 16, 33, 36,252, 78, 23, 24,211,100,154, 76,147,105, 50, 77,166,201, 52,239, 63,205,123,218, 76,213,169,197,170, 54,140, +119, 87, 31, 45, 6,131,193, 96, 48,254, 46,220,220, 2,149, 64, 77,191,222, 38, 81,104, 67, 61, 0,160, 76, 31,171, 99,165,199, +104,200, 84,213,215, 71,171, 89, 70,139, 16, 34,228, 9,196,175, 74,101,202,231, 8, 15,234,210,194, 92,159,127,177,139, 37,129, +173, 21, 51, 91,181,210, 14, 74,207,208,125, 21,151,104,216,247, 79,104, 42, 61,218,106,137,216,249,123,194, 85,126, 80,156, 30, +115,232, 14, 31,163, 36, 52, 52,180, 43, 0,196,198,198, 94,164,148, 86,182, 84, 83,225, 17, 52,206, 89,237,244,162,137, 51, 90, + 13,101,134, 13,165,217,241,223,221,201, 60,171,188, 59,184, 66,160,218, 8,171,101, 16, 40,248,224, 11, 46,145,202,138, 23,138, +245,177,137,141,237,231, 55,122, 89,240,148,177, 17,139,183,124, 27,249,126,234,190, 69,113,117,215,187, 12, 95,167,154, 53,113, +200,130,245,187,247, 45,207,221, 63,191,148,221, 94, 28,199,239,161,103,157, 44, 2, 79,126,230,175,171,242, 28,217,207, 55,168, +247, 85,161, 80,168, 53,153, 76, 57, 25,241,103, 58,218,179, 79,171,224, 62, 23,248,124,158,183,213,194,165,167, 93, 63,245, 0, + 43,253,166,145,185,183,237, 13,139,229, 13, 10, 16, 16,193,234,138,188,196,255,181, 68,207,219,219, 91,166,209,104,250,171,213, +234, 86,114,185, 92, 90, 80, 80, 80, 94, 80, 80,144,154,146,146,114,140, 82,106,249, 39,142, 81,225, 17,180,136, 8,201,146,234, +247,239,148,233,174, 47,107,252,254, 26,252, 62,225,209, 69,213,239,151,149,234,226, 22,223, 13,231, 74,234, 25,228,207,167,120, +133,207, 19,244,177,112,230,165, 6, 93,252, 1, 71,246,119,113,113, 25, 34, 16, 8,100,182,207, 22,139,165, 60, 63, 63,255,103, +246, 43,104,214,115,114, 90,221,247,205,174,209, 34,132,240,133, 18,249,201,103,159,159,209,113,249,127, 22, 74,215,110,249, 1, + 82,165,115,108, 69,105, 65,232,221,120,240,218,182, 61,163,248, 60,190,111,237, 52, 43,103, 77,215, 39,158,189, 35, 55,221,160, +214,178, 41,111,206,159, 48,119,220,216,112,255,240,145,179, 9,128,122, 77,145,202,239,193, 83,132,240,218,240, 8,192,227, 17, +240, 8, 0,208,204,220,196,179,221,154,171,105, 67,227,222,174,141, 88,169, 61,241,208,232, 25,158,209, 71,119,108, 83,104, 67, + 7,151,233, 99, 47,223,129, 11, 71,219,174, 93,187, 7, 3, 3, 3, 93,103,205,154, 37, 2,128,143, 62,250,168,125,251,246,237, +243, 18, 18, 18,206, 83, 74,245,205,186,201,185, 7, 79,248,120,213,187, 95, 15, 31, 62, 2,153,185,101, 88,177,102,253, 64,165, +103,224, 83,119,202,108, 57, 59,183, 81, 11,212,206, 87,102,207,127,215,125,216,192, 7,249,165, 21, 22,252,116,226, 98,191, 29, +235,223, 61,167,214,134,246,104,204,108,113,134,162,197, 30, 74, 58,140, 51, 20, 1,192,184,186,235,125,148,230,112,173,204, 58, +204, 75, 34,184, 8, 96,111,147,121, 9,120,232,176, 80, 34,241,231,241,120,176,157,123, 62,169, 58,255,102, 83,121, 74,250,181, + 19, 67,239,134,223,137,218,191,103, 54,248, 2, 87, 30,249, 35,127,164,250, 58, 37,148, 22,103,197,255,230,122, 7,174, 39, 77, +199,246, 78, 97, 17,125, 31,250,242,248,173,124,133,223,128, 57,145,132,242, 62, 75, 57,177,250,146, 93, 15, 21,169,212,249,192, +129, 3,218, 97,195,134,105, 60, 58, 62,118,220,158,125,148, 98,105,232,193,131,251, 69,195,134, 13,117,224,250, 12, 26, 12, 30, +111, 59, 1,132, 28, 71, 63,226,115,244,219,210,188,248, 4, 71,195,176,200, 61,130,167,240, 64,237,190,207,112, 32, 81, 6, 93, +220,150,230,150,175, 80,170,121, 68, 40, 18,189,218, 38,176, 83,183,140,228,155, 81,101,165, 37,107,204, 21,133,199, 29, 22, 50, + 91, 94, 63,250, 91,244,112,129, 80, 72,134, 61,210,147, 15,160, 69, 70,203,195,195,227,177,117,235,214,181,237,221,187,183,237, + 97,174,222,179,103,143,231,123,239,189,167,176,231, 55,212,192,181,228,163,213,106,253,196, 98,177, 15, 0, 24,141,198, 12,189, + 94,159, 74, 41,205,104,242,154,240,108,231, 70, 32,120,247,183, 19, 39, 4, 0,208,175, 95,255,247,253,251,205,114,230,139,148, +229,245, 22,135,177, 68, 1, 96,206,153,179,167, 9, 0,244,234,217,123,161, 66, 27,250,233, 63, 89,179, 37,243, 8,238,201, 3, +230,246,237, 63,120,204,211,207, 76,224,133,117,240,195,144,193, 15, 47, 0,224,144,209, 18, 8, 4,178,115,231,206,181,227,241, +120,124,139,197, 82,209,171, 87,175,212,150,228,203, 39,168,207, 41, 2, 94, 43,147,197,248,185, 62, 49,234,125, 74, 41, 87,215, + 63,104, 90,117,123, 19,124,193, 84,142,227,210,138, 83,206,247,185,223,106,180,234, 45,103, 71,197,120, 2,241,171,227, 38,191, +220,113,206,107,111, 72,103,175, 61,134,200,245, 11,115,239, 86,147, 5, 0,124, 30,223,247,240,207,135,221,229, 98, 62, 0,160, +180,194,130,225,195,134, 53,185,159, 83, 64,207, 95,121,132, 4,217,166, 18,183, 90, 76, 82,129, 80, 92, 65, 0,128, 84,141, 34, +112,243,110,125,204,203,203, 69, 62,110,108,184,255,246,221, 71,210, 83,211,243, 26,188,169,241,120,124,223,125,251, 15,184,251, +184, 74, 33,224, 19,148,150, 91, 48,108,196,163,214,250,182,245,242,114,137, 24, 55, 54,220,127,231, 55, 71, 83,179,178,242, 35, + 27,189,153,123, 5,118, 87,104, 60,126, 26,243,226,123,174, 21, 60, 23,188,189,244, 99,183, 19,135,118, 30, 31, 16, 49,129, 75, + 73, 73,171,160,132,196, 22,228,103,189, 90,154,117,243,186,189, 70, 90,169, 84,182, 85, 42,149, 93,134, 15, 31, 46,157, 55,111, +158,112,224,192,129, 53,235,167, 77,155, 38,250,245,215, 95,189, 86,173, 90, 53,194,219,219,187,162,180,180,244, 82,105,105,105, + 34,165,212,106,239, 57,241,244,212,206,124,226,241, 71,241,240,152, 25,176,114, 4,211, 94,158,131,195,135,246, 78, 7,112, 71, +140,150, 89,174,126,111,234,139,243,180,189, 30,236,202,127,119,231,117,200,196, 2, 12,125, 32,136, 76,158,181,216,105,203, 39, +239,126, 1, 96, 64,125, 53, 89,156,161,104,113, 71, 55,227, 51,163,122,183,193,254, 93,198,103,124,195, 23,128, 39,215,212,212, +108,181, 27,254,138,202, 89, 38, 91,231,237,196,119,151, 88,245,235,218, 13,127,229,104,194,161, 79, 74, 26,125,248, 73, 36,254, +187,118,238,236,224,172, 18, 65,192, 35,224,243, 9, 4,124, 30, 42,140, 86, 60, 53,246,153, 59,245, 79,138, 47,115,239, 48,130, + 7, 76,174,122, 96, 99,107,121,206,141, 31, 29, 57, 39,132, 47,114, 61,184,255,123,129,187, 70, 2, 62,159,128,207, 3,248, 60, +130,100, 93, 57,166, 76,153,172,105,169, 97, 31,222,215,253,193, 95, 63, 29, 48,180, 87, 71,151,206,223,156, 38,154, 94,195,159, +118,205,173,144, 63,183,123,223,255,158,241,235, 63,247, 44,165,220,202,180,223,214, 54,250, 79,186,178,178, 82, 55,116,216,112, + 53, 17, 40,228, 71,127,216,214, 95,192, 35, 48, 91, 41, 44, 86, 10,107,245,220,168, 85,191, 87, 2, 30,143,128,114, 20, 83,167, + 78,193,208, 97,195, 13,156,133, 75,183,255, 38,199,219,254,211,209,223,181,149,102, 14,171,214,109,121,183,172, 72,255,238,173, + 56,215,100,185, 71,224, 28,131, 46,222,238,121, 48,120,160, 15,164, 37,198,188,184,243,224, 25,116, 12, 13,129,149,171,202,103, +144,175, 2, 59, 35,207, 32, 56, 40,184, 42,223, 28, 69, 96, 43, 37, 30,124,224, 65, 0,104,150,209, 18, 74,213,111, 15,136,152, +248,206,200,167,158,135,187, 86, 11, 30, 53,143, 60, 26,185,115,164, 80,166,121,221, 92, 94,180,202,177, 39,134,181,230,185, 64, + 57,174,197,221, 75,188,189,189,181, 15, 62,248, 71, 56, 70,139,197,130,128,128, 0,100,100,100, 4, 53,227, 90,146,123,121,121, + 69,108,218,180,201,125,196,136, 17, 66, 79, 79, 79, 0, 64,118,118,182,207, 79, 63,253,212,205,219,219, 59, 39, 43, 43, 43,146, + 82,106,104, 72,195,106,230,137,120, 2,240,165, 82,121,213, 49,130,240,230,205,156,216,217,195,203,187,222,154,122,189, 62, 91, + 60,127,198,255,136, 64, 32,170,222, 30, 60, 74, 57,210, 72, 45, 81,184, 80, 40,148,213,183,206,196, 87,247,162, 66,205, 11, 60, + 62,175,234, 98,181,152,245,249, 41,209, 33, 14,212,196,133, 9,197,162, 13,207, 78,122,177,207,147, 99, 70,195, 75,171,193,209, +147,151, 49,125,230, 92,179,197,100, 94,211,172,103, 36,159, 47,200,201,201, 73,118,118,118,246,108,249,243,150,180, 57,114,248, +144,251,209, 95,142, 45, 92,189,246,147,151,188, 3,251,153, 57, 74,107,230, 49,246,235,248,176,112,240,200,177,106,247,118,189, +164,159, 44,121, 65,120,191,213,104, 53,100,182, 28,254, 17,137,101,170,177,111,205,159, 37,125,111,199, 25, 68,174,159,158, 91, + 86,164,215,214,252, 83,208, 56, 95, 40, 45, 42,232,214,156, 76,170,220,131,122, 19,190,224, 69,194,231, 43, 8,143,136, 57, 43, +151,102, 49, 26,223, 55,228,198,103,181,180, 0, 56,142,226,191,167,114, 28, 43, 52,138,246,219,191,249,222,221,195, 73,130, 10, +147, 21, 79,143,155,128,175,191,254, 90,165,213,136, 81, 97,180, 96,229,234,213, 37,165,201,145,238,201,105, 5, 25,225,143,206, +253, 57, 49, 41, 39, 38, 53,171,226,219,134, 79, 2, 15,238, 26, 9,150,238,142,135, 90, 38,132,179, 74, 4, 30,143,212, 62, 73, + 53,205,133,153, 89, 5, 69,181, 52,119, 52,248,163,243,234, 52, 84,227,236,189,235,241, 23,151, 58,221,200, 17,128,194,132, 4, +181, 20, 99,159,123, 69,221,214, 83, 6,133,148,239,116, 43, 37,195,107,222,235,175,159,212,184,183,235, 81,148,147,112,171,169, +227,110,221,186,245,152,145, 35, 71,202, 95,123,237, 53, 97,171, 86,173,176,117,231, 30,255,126, 67,159,122, 52, 51, 75,215,138, + 82, 10, 15,119,247,180,169,147,159, 58,240,227,143, 63,166,164,165,165, 9, 87,172, 88,209,243,251,239,191, 15,117,228,159,169, +149, 82, 84, 84, 90, 97,173,126, 64,234,139, 42, 29,189,160,137,143,143,143, 36, 35, 35,163,210, 86,203, 64, 8,169, 41, 76,229, +255,217, 59,239,176,168,142,246,253,223,179, 13,182,193,210,155, 10,138,136, 32,138,189,247, 18, 53, 18,187,198,150,104,236,166, + 24,147, 24, 75, 52, 81, 99,141,177,151,152, 24, 99,140, 26,187,177, 97, 47,168,137,198, 2, 54, 84, 80,169,210,151,182,236,178, +125,247,204,239, 15,192, 16, 66, 89, 80,127,239,251,205, 59,159,235, 58, 23,123,150,221,123,207, 57,115,202, 61,207, 60, 51, 83, +171,121,159,158, 93,219, 10,126, 56,149, 0,141,222, 10,153, 88,136,132, 76, 45, 90, 53, 15, 37, 63, 90, 45,205,202,211,156,240, +118,216,124, 79, 57,237, 59,160,189, 63, 60,156,165,216,190,105, 41,142, 93,143,239,155,169, 33,112, 27,176,114,138,183,189,224, + 13,119,169,104, 99,183, 86, 1, 94, 61, 90,250,225, 86,171, 0,175, 43,145, 49,177,161,111,175,249, 40, 85, 35, 60,159,123,234, + 35,117,249, 55, 30, 30, 92, 28, 68,248,233, 76, 18,164, 98, 1,100, 98, 1,100,246, 69,127, 75,151,127,141,106,181, 62, 33,117, +248,156,117,130,163, 79,200,132,145,111, 15,247, 25, 61,114, 56, 5,159,135, 3,135,142, 15,220,189,123, 87,186,220, 43,104,155, +149,199,255, 73,151,246,240,121,149,199,148, 7,120, 40,236,240,249,182, 7,112,148, 8,225, 32, 21,194, 81, 42, 68,143,166,238, +224,243,106,124,227,113,158, 58,176,126,191,123, 59,123,117, 15,242,149, 7,222,125,166,122, 56, 97,201,237,117, 17,249,221,103, +108, 90, 27,226,170,201, 55, 10,190,154, 57, 73,144,146,150,214,253,192,241,203, 61,124,218, 76,136,177,152, 10,191,200,186,187, +191,220, 8,238,243,199,215, 90,212,110, 63, 92,108,210,152,239,223,141, 73, 9,200, 51,216, 35, 58,177, 0, 50,177, 0,242,146, + 99, 43, 22, 64, 38, 22, 66, 46, 22, 32, 45, 37, 1,185,133,252,223, 83, 93,121,221,105,196,181,106, 53, 81,233, 77, 86,220,137, +215,160,110, 80,115,120,123,251,192,216,111, 76,221, 27, 23, 15, 29,149,121, 55, 90, 94,152,254,232, 11, 91,117,126, 61,241, 39, +230,124, 50, 37,146, 0, 81,197, 15,233, 22, 95,173,216,220,242,235, 57, 31,252,237,189,153,139, 54,180,172,121, 36,203,113,126, +143,193,239, 47,234,252,198, 96,168,115, 51,113,237,236,126,244,121,107, 40,198,140,255, 24, 78, 78,110,223, 10,197,138,187,102, +189,234,226, 63,238,185,222,141, 58,133, 54,105,180,187,150,143, 79, 29,142, 43,154,229,131, 82,160, 83,215, 30,152, 53, 99, 18, + 56, 74,209,172, 69,155, 30,253, 70,126, 68,105,241,108, 32,217, 57,217,133, 49,143, 31,246,210,101, 62,190, 97,243,177,212,235, +205, 74,165, 18,119,238,220, 65,108,108, 44,162,163,163,145,147,147, 3,133, 66,161,169,230,249,228,216,180,105,211,209, 23, 47, + 94, 20, 59, 59, 59,191,120,223,104, 52,194,193,193, 1,163, 71,143, 22,246,238,221,187, 86, 88, 88,216, 88, 66,200,175,148,210, +130,242,116,116, 57, 79,210, 28,189,130,191,239,218,173,235, 52, 0,144, 56,122,199,111,252,249,120,116,165,215,154,194,199,175, + 67,135,142, 1,160, 20, 4,116,125, 97,118, 76, 70, 37, 81, 34,217,159,127,254, 89,159,207,231, 11,254,122, 6,113,248,110,251, +190,224,115, 87,239, 15, 89,241,237, 42,177,163,204, 30, 74,149, 17, 19,199, 12,182,249, 25, 44,245, 10,238,215,177, 99,215,163, + 95, 47,250, 82, 32,151,201,112,246, 70, 28, 62,154,241,185, 62, 61,241,193, 42,202, 9, 55, 23,102,197,100,189,228,163,242,149, +244,140, 11,172, 45,135,195,128, 62,226,169,239, 14, 16, 27,205, 86,228, 23,154, 97, 48, 89, 97,229, 40, 84,133,102, 60, 76, 86, +195,205,209,174, 38,210,173, 1,184, 3, 80, 2,184, 85,102, 29,197,175, 81,206,122,118, 81,120, 4,174, 0,140, 0, 74,255,120, +201,122, 69,239,151,124,255, 33,128, 70,197,154, 86, 0, 55, 1,228,149,103,182,202,139,114, 9,194,195,195,105, 88, 88,216,139, + 59,126,217,245,178,216,139,132, 62, 50,133, 59, 40,125,132, 82,207, 54,120,122,215,206,217,242,253,143, 46, 10,103,215, 36, 85, + 94,142, 95,241,143,156,183,229, 97, 33, 32,252, 53, 93,187,117,233, 61,237,253,247, 17, 84,191,182,200,106,181,210, 7,177,241, +230, 29, 63,109, 31,167,168, 19,186,174, 32,229,193,252,146, 16,100,117,123, 57, 88, 57,107, 74,217, 8,150,149,179,166,148, 57, + 24,231,255,121,192, 0, 39,185, 29,190, 63,149, 0, 74, 1, 2, 10,133, 76,136,189, 17, 41,136,143, 60, 92,240, 86,179,130,194, +209, 43, 22,246,232,222,111,250,197,135,207,244,251,179,178,244,103, 40,165, 25, 21,105,242, 8, 32,224, 19, 56, 74,133, 80, 72, + 69,112,146,137, 64, 74, 61,192, 74, 55, 23,118,235, 55,253,220,197, 63,146,190, 0,160, 44,157, 15, 85, 90, 83,226, 21,216,218, +209,169,246,254, 33,211, 86, 58,220, 79,177, 64,192, 7,252,189, 36,112,113, 16,193,104, 33, 72, 84,154,138,175, 28, 39,124, 52, +115,145,203,156, 79,167,157, 36, 36,164, 9,165, 15, 77,149,237,187, 86,171,181,123,231,157,119,132,102,179,217, 52,122,226,199, +189, 51, 50,148, 3,191, 91,255,141,189,135,135, 39,180,122, 11, 34,163,159, 54,250,250,235, 69,254,199, 79, 71, 28, 89,248,249, +212,163,125,251,246, 85,236,219,183,143,171,234,120,254,173,134,152,153,189,105,251,238,131, 59,215,174, 90,134,152,164, 60,252, +244,195,102, 80,171,229,251, 42,194,178,231, 75,189,166, 95,124,241,133,228,200,145, 35,181,101, 50, 89,129, 86,171, 85,254, 45, + 30,193, 35,130,204, 92, 45,220, 28,236, 32, 18,240,224,233, 44,134,135,194, 30, 66, 62,192, 35,196, 90,158,230, 79,251,195,151, +112, 90, 21,142,237, 49,142,220,190,105, 41,198,127, 56, 15, 15,178,237, 78,243,164,138, 37, 31,140, 28, 50,199, 93, 98,237,235, +227,196,243,232,209,178, 46,100, 98, 17,230, 78,127, 7,109, 34, 19, 61, 82,243,185,121, 74, 29,191, 57,128,121,229,150, 59,175, + 40,130,229, 32, 21,226,244,238,111,179, 10, 85, 74, 85, 73,147,156,209,160, 79,178, 49, 36,125,190,156,154,237,156,150,205,155, + 46,157, 54,121, 2,175, 99,251, 54,148,199, 19, 34, 91,109, 36,148, 2, 51, 62,154,138, 15,166, 78,242,122,158,150,245,213,230, +205,223,207,151,123, 52, 90,172,201,122,180,176, 50, 77, 30, 41,138, 2,201,197, 2,200, 37, 69,198, 69, 46, 22, 64,111,180,130, + 16,240,157,253, 90,170, 72, 81, 36, 55, 45, 39,177,252, 26,120, 89, 77, 23,223,198, 23,206,197, 59, 4,231,237,207,187,158,144, + 22,189, 36,242, 94,230, 77, 74,105,174,111,215, 79,199,154, 44, 20, 26,189, 5, 9,153, 90, 88, 76,148,140,127,211, 15,245,134, +145,160,101,219,163,118, 18, 66, 28, 75, 12,116, 89,205,148,235, 7,244,110,161, 67, 70,172,221,240,195,173, 85, 75,231,241,179, + 85, 70,112,148, 66,108,199,135,196, 78, 80,188,240,161, 43, 84, 97,243,150, 31, 51, 44, 32, 67,104, 68,132,165, 58,231, 39, 56, + 58,102,112,191, 46,123, 9, 96, 71,120,162, 20, 31,191,186,126, 61,251,143, 19,247, 28,240, 14,172, 22,227, 28,153,103,240,165, +194,204,199, 23,108,209,108, 18,210, 8, 4,136,210,100,198, 76, 5, 0,185,103,208,247,193, 65,193, 45,203,190,215,160, 65, 80, + 75, 91,202,189, 4,145,196,241, 67,103, 23,247,121, 65,141,155,123,212, 15,237, 74, 28, 92,107, 35,225,201, 29,236,217,242,213, + 46, 78,111, 92,116, 33,124,255,210,117, 63,253,246,118,207,190,131,177,253,187,111,230, 2,184,248,143,235,136,227,198,236,216, +182,181,142,208, 98,228, 74,123, 0, 0, 32, 0, 73, 68, 65, 84,206, 30,102, 11, 7,179,149, 22,253,181, 88,145,155,155, 7,179, +133,131, 88,234, 0, 11, 71, 96,182,114, 48, 91, 56, 24,140, 22,217,212,119,194,222, 7,112,163,188,237,172,221,168,219, 25,145, +189,189, 31, 69,209,220,181,148, 82,240, 45, 70,158,183,183,247,175, 0, 96,111,111, 15,123,123,123,112, 28,135,200, 24,229,135, +238,193,189,166,161,216,224, 89, 77,198,164,188,132,223,251, 84,180,239, 94, 94, 94,253,203,154, 44,189, 94, 15,141, 70,131,171, +215,111, 41,182,237, 60,216, 55, 33, 41,165, 62, 71, 21, 6, 7,143,250,125, 0,244,175,232,120, 22,100, 60,126,191, 78,251,201, +188,207, 62, 24,219, 96,195,142, 19, 55,159,156, 94, 60,183,178, 83,194,191,215, 28,227,103, 83,134,182, 90,177,254,167, 39,185, +191,111,249,164,170, 50, 18, 8, 4, 66,165, 82,249,226,250,222,248,227,158, 86, 81, 49,169,131,214,173, 93, 39,142,140, 83,227, +126, 66, 26,198,246,242,197,223, 30, 2,149,104,202,189, 2,220, 2, 2,130,127,221,188,126,133,224, 73,154, 30,155, 14,223,196, +197,163,223, 95,205,200,186,209,151,102,164,233,106,114, 15,121, 89,163, 85,153,230,165,123,217,208,232, 45, 48, 24, 45, 48,115, + 20, 5, 90, 51,178,242,141, 40,208,154,160,209, 89, 48,246, 13,223,114,191, 87,133, 31,113, 39,132,156,160,148,190,133,162, 97, +169,236, 74,173,131, 16,114,162,120,187,254,182, 62,103,206,156, 47,150, 47, 95, 30, 93,242,217,146,247, 75, 62, 91,217,251,165, +190,239, 58,119,238,220, 38, 43, 86,172, 88,214,190,125,251,189,215,174, 93,139, 47,207,104, 85, 26,209, 42,217,153,240,240,112, + 90, 69,141,162,190,212,209,213,222, 81, 34,132,127, 61, 95,188,247,197,118, 55, 71, 23,207, 44,177,157,128,127,234,212,105,151, + 28,163, 28, 60, 30,191,208,246, 40, 86,195, 14, 18,137, 52,124,245,234,213, 24,217,191,179, 36, 57,219,172,185,151,172,203, 44, + 52,194,226,225,222,208,110,201,178, 21,242, 21, 43,191,253,224,196, 49, 46, 31,192,183,229, 55,241,181,190,205, 39,165,114,176, + 8, 1,229,172, 41,185, 9, 55, 91, 1,192,203,228, 98,105,244,102,240,139,115,107, 8, 1,180,122, 11,248,124,146,149, 31,179, +255,225,232,197, 75,122,236,218,123, 46,141,242,156,212,133,133, 9, 82, 74,105, 74,229, 17, 3,130, 2,173, 25, 10,169, 16, 78, +114, 33, 20, 50, 17,248,165, 46,178,146,230,194, 93,123,206,166, 38, 37,229,220, 42, 54, 89, 21,106, 10,248,188,120,106, 53,235, + 41,181, 58,188,213,218, 29, 30, 78,118,240,118,182,135,189,157, 0,102, 11,160, 51,114,208, 27,173, 72,204,210, 65,173,147, 32, +180,235,112,127, 87,239,219, 6, 87,191,214, 71,114,146,110, 13,169,212,156, 90,173,216,241,235,193, 6,105,105,153, 3, 79, 30, +217,109,175, 44, 48,227, 94, 98, 33,178,242, 13, 0,223, 29, 11,150,109,178,159,253,201,228, 65, 59,246, 28, 74,234,217,185,109, + 82,117,143,107, 97,214,227, 93,161, 29,194,190,127,235,173, 65,146,232, 27, 39,241,228,206,133,165,154, 76,219,243,179, 8, 33, +188, 3, 7, 14, 88, 38, 79,158,172, 94,182,108, 89,157, 99,199,142,213, 83, 42,149,119, 0,152,157,156,156,130, 27, 54,240,187, +123,246,244,169, 90, 97,131,134, 11, 83,178,117, 80, 72, 69,240,243,144,226,250,213, 51,102, 59, 59, 97,185,249, 38,197,205,131, +163,106,247,154,141, 99,215,227,251, 70,231,136, 35, 38, 77, 24,155,116,246, 74, 76,206,198,157,103,191,169, 37, 55,223, 17,115, +202,141,183, 91, 5,120,205,249,232, 29, 44,223,176, 11,151, 35, 99,178, 10,121,222, 75,211, 13,150,115, 11, 71,204,170, 32,148, + 94,100,176, 29, 36, 66, 20, 22, 40, 85, 79, 35, 79, 53,124, 69,145,234,177,103,143,236,226,229,170,205,120,158,173, 39,105,185, +106, 88, 57, 10, 39,169, 8, 22,142, 34, 63, 55,155,236,222,181, 19,183,110, 93,231,129,207,155, 8, 96, 97,165,205, 92,164,168, +169, 80, 46, 22, 22, 69,132, 36, 69,127,205, 86, 14, 65, 13, 2,176,117,227, 26, 71, 55, 15, 79,116,234,210,221,246, 40,181,171, + 95,179,189, 63,111, 68,196,181,168,110,151,215,109,106, 45,247,113,223,224, 88, 59,100,149,162,222, 27,122,131,201, 10, 85,126, + 30,236,140,207,209,166,150, 18, 46, 82, 43, 18, 11,188,241, 32,227,137,188,170, 92,168,236,251,135,239,184, 55, 25, 60,255,224, +241,139,203,251,188,209, 13, 15, 18, 11, 32,177, 19, 64,108,199,135,216,142, 15, 33,177, 98,205,150,239,205,121, 42,245, 91,217, + 15,142,100,215,224,252, 60, 95, 92,251, 45,122,200,121,214,119,223,181, 97,254, 47,147,102,173,236,211,119,240, 56,242,224,214, +165, 47, 0, 92,176,173,162, 71,109,122,143,227,108,127,198, 73, 28,221,215,127, 58,255,219,233,189,223, 26, 14, 62, 95, 0,179, +217,140, 67,251,118,225,231, 77, 11, 30, 27, 53, 57,227, 40,165, 28, 33, 46,147,247,239,218, 50,124,214, 87,107, 72,147,102,109, +218,150,235, 39,249,228,135,119, 39, 76, 25,225,233,233,233,240, 87, 68,139,162, 97, 80, 8,250, 13, 24,138, 51, 71,127,195,195, +232,123,224,104,145, 97,226, 56,138,252,188,156, 12,139,217,184,163,194, 22, 15,177,216,111,251,207, 59, 3,121, 60, 2,147,153, +131,209,194,225,147,247,223, 51, 78,157,241, 69,167,126,189,187, 70,219,241, 81,144,152,156,238,116, 61,234, 81, 40, 39,148,215, +153, 48,115,141, 72,111,176, 66,165, 53,227,228, 79, 21,123, 29,137,139, 95,251,102, 29, 6, 77,152,250,229, 86,123,123, 62,207, +212,184, 97,157,248,174,237, 26, 63,247,245,113, 83,127,189, 98, 83,155,223,111, 68,245,123,123,244, 4,241,216,224,150,196,199, + 85,226,240,222,232,193, 77,101,174,190,239, 22,230, 36, 87, 56,101,154, 80,234,156,239, 91,175,129,246,175,136, 81,208, 97, 66, +225,255,183, 7, 39, 65,188, 54, 35,102, 8, 0,120,251,248,234,133,246,142,234,106, 24, 17, 10, 0, 27,126,220,211,234,110,108, +218,164,181,107,215, 73, 35,227,212,184, 19,167,130,189,136, 7,147,153, 3,177, 49,168,205, 81,254,148,121,115,231, 56,230, 21, + 90, 17,113, 79,137,232,219,151,168, 81,163, 31, 45,181, 56, 14,145,121, 6,189, 11, 32, 0,192, 51, 66,232, 15,133,153, 94, 71, + 41,141,168,118, 39, 3,142, 43,170, 47, 43, 60, 2,252,173, 2,251,126, 66, 59, 89,123, 66,104, 99, 66,225, 12,208,212,156,226, +103,170,173, 78,173, 48, 51, 22, 43,151,125,133,245,219,126, 67, 90,142, 30, 10,235,115, 28,253,105, 9, 62, 91,254, 43,116,134, +138,179, 26,170,242, 35,229, 25,163,178,134,171,228,117,201,231,150, 47, 95,254, 86,153,178,121,171,130, 50,251,199,231, 74,190, +191, 98,197,138,101,165,254,175,181,213,100,189, 48, 90, 37, 59, 85,197,206, 53,116,247,246,187,118,244,200, 97,231, 60,141, 9, + 98, 17, 31,190,245, 26, 96,225,198,163,238,111,182,114, 67,182, 73,129, 61, 91, 87,229,234,181,234,125, 54,221, 44, 60,131,219, + 58, 56, 56,156, 60,124,232, 55,212,247,245, 16,237,190,154,155, 16, 21,175,123, 17,234, 45, 80, 38,217,213,115,212, 10,134, 12, + 30, 44,189,112,241,210,140,138,140, 22,159,240,107,255,184,243,144,135,131, 68, 8, 66, 0,181,206,130, 73,239, 14,125,249,199, + 24,229,248, 19,198,141, 5, 41, 54, 89, 5, 57, 25,248, 98,246,251,122,153,249,201,195,228,196,228,212, 94,253, 63,187, 80,160, + 33,250, 17,239,188,127,235, 97,236,242,188,170,207, 98,115, 74,191,176,126,162,162,200, 1,192, 39, 4, 28,229, 50,131,234,201, + 63,250, 71,115, 97,134,225,199,170,140,155, 58, 53, 38,215,193, 59,116,216,174,213, 31,254,232,227,233,225, 42,151, 73,168, 92, +106, 79, 26, 7, 7,138,218,181,235, 96, 87, 47,168,169,232,234, 35, 29,146,149, 58,196,167,169, 96,239,217, 92, 48,178,199,155, +216,181,110,102, 55, 66, 8,175,108,146, 98, 89,206, 69,252,217,127,219,150,181,246,153,249, 38, 60, 78,214, 32, 35, 79,143,244, + 60, 3, 50,114,245,144, 75,132,232, 50, 96,178,125,248,209, 31,250,247,236,220,118, 67, 77, 14,111,124,124, 66,120, 98,106,250, +240,166, 45,218, 96,215, 47, 63,119,118,118,246,119,204,203,139, 47,176,181,116,150, 44, 89, 98,183, 98,197, 10,193,198,141, 27, + 11,218,181,107,231, 53,119,238,220, 62, 89, 89, 89, 55,235,214,173, 27,116,230,240,142,139,205,187, 12,108, 13,206,228,222,185, +107,119,145, 61, 39,192,217, 19, 39, 76,251,247,237,206,209,233,212, 83, 43, 53, 28, 82,197,146, 76, 13,129,123,173, 90,209,114, + 59,235, 27, 2, 94,126,108,238,169,143,118, 2, 56, 28,240,230,244,243,151,110,199,196,182,138, 76,244,184, 24,249, 52, 43, 87, +107,106,248,236,212,167,149,222,120,249,132, 64,200,231,193, 65, 34, 0,175,248,174,234, 80,171,217, 83, 16,226, 94, 18, 57, 37, + 32,197,127, 1, 66,144,150,155, 20,101, 67,206, 6,161, 28, 5, 98, 82, 10,161,209, 23,133,230,107,187, 73,161,204, 76,193,119, + 27,118, 32,234,246, 45,244,126,115, 0, 54,255,184, 27,147,222, 29,174,175, 74,141,199, 43,142,104,149,138,102,201, 37, 2, 0, + 4,249,133,102, 28,250,253, 57, 2,252,121, 54, 63, 24, 0,192, 65, 46,133, 74,173, 3, 79,228,128,103,145, 39,165,167, 46,221, +152, 59,127,241,218,207,243,210,239, 37, 63,189,127, 21, 65,110, 42,248,215, 50, 33, 58,195, 17,183,115,234, 33,168, 65,125,240, + 68,183,108,210,206,142, 14, 93,121,148,119,232,173, 86,205, 67,218,251,121, 56, 65,103,180, 22, 71,181,248,248,121,251, 78, 36, + 38,164, 76,200,142, 62, 18,245, 42, 28,173, 38, 51, 78, 41,246, 12,252,224,254,141, 11,241,131, 71,127, 0,239, 90,190,205,170, +147,182, 96,203,123, 86, 27,141,150,157,204,121,238,204,175, 86, 79,239, 29, 54, 12,127, 94,189,128, 59,209,207,208,182,109,107, +188, 57,104, 36,212, 5,185,193, 7,118,174,123, 3,192, 25,129,189,101,122,155, 14, 61, 8,103,181,226,201,227, 7,207,202,211, +210,166, 61,190, 3,192,241,111,205, 83,238,141,154,201, 21, 46,119, 12, 38, 43, 82, 83, 83,240,199,181,136, 22,197,159,179, 25, +123, 17, 31,103,163,178, 96, 50,115, 48, 89, 56,116,233,250,134, 81,196, 51,116, 94,186,118,123,187,244,180,116,158,204,209,141, +115,169,213, 72,228,109,111, 50,220,141, 83,137, 76,102, 14,245,125,100,149,106,186,251, 52, 88, 54,115,230, 39,141,248, 34, 9, +212,133, 6, 99,122, 90,170,215,214, 61,151, 52,143, 30,223,175, 85,219, 67,225,248,205,186, 31, 68, 5,122,130, 44,149, 1,185, +234, 2, 50,122,202, 44,159,109,155,150,143, 1, 96,243,220,180,132,194, 63,252,236,213, 96,103, 7, 17,209,232, 45, 92, 78,129, +201, 58,122, 80,247,151, 58,119,138, 77,214,228,181,107,214, 73,163,226,212,184, 27,167,130, 88,196,135,157,136, 7,163,153,131, + 45,151, 19, 33,132,231,223,164,235,212, 14,173, 66,113,230, 78, 54,248,124, 30,116,234, 60,173, 0, 57,177,173,186,245,150,182, +108,211, 14,221,187,117,197,211,216, 24,223, 19,199, 14,245,188,254,199,229, 12,185, 71,208,135,154,172,152,223,170,117,158,107, +181,124,179,157,215,123,222,181,234,118, 28, 50,242, 61,133,159,111, 45,226,225,230, 10, 11, 21, 96,242,187, 67,109,190,242,139, +140, 57,176, 98,241, 92, 24, 12, 70,184, 59,217,129, 82, 96,251,134,133, 48, 26,141,240,113,181,135,170,208, 92,225,247,171,242, + 35, 21, 69,161,170,217, 12,125,162, 60,179, 85,246,125, 66,200,137, 57,115,230,124, 1,128,206,153, 51,231,139,146,245,229,203, +151,235, 0,164, 85,214,116, 88,218,120, 9, 74,239, 92,133, 27,101,103, 23,228,230,237,119,253,236,153,211,138, 35,119, 57,252, +249,219,109,132,181,245,134, 72,192,131, 84,225,131,187, 9, 42,132, 31,222,146,127,116,239, 15,169, 6,131,225,219,170,219,154, + 3, 91, 57,200, 28,207,252,178,107, 31,231,230,234,202,251,238,172, 50, 46, 71,109,121,209,164, 21,123,227, 24,119,251,204, 86, +111, 10,114, 90, 44, 22, 55, 48, 26,141,206, 85, 21,236,246,179, 73,197, 73,188,228, 85,220, 91, 65,248,124,235,174,221,187,224, +230,104, 7,131,153,195,156,207, 63,214,141,237, 45,207, 31,253,246,200, 30,221,251, 77,191, 40,148, 5, 94,232,208, 34,144, 54, +111,222, 60,159,207,231, 87,169,151, 19,127,243, 31,189, 43,130,235, 73, 39,206,155, 53,118, 94, 57,205,133, 54, 37,238,170,211, +239,255, 14,224,111, 17, 18, 18, 16, 96,247,235,129,163, 31, 15,123,123,196,252, 90,205, 6,201, 19,210, 85, 16, 17, 19, 90, 55, +242,198,165,211,191,209,148,196,216, 79,170, 50, 89, 0,144,165,204,173,227,238,238,137,168,120, 13, 82,115,116,200, 40, 54, 89, +233,121, 6,168,117,106, 52,245,243, 65,190, 74, 85,167,198,199, 23,248,237,204,153, 51,195,251, 13, 28,129,233,159, 47,234,244, +211,150, 85,247,228, 94, 13,199,107, 50, 98, 35,108,169, 41, 18, 66,114,103,207,158, 29,240,227,143, 63,242,198,140, 25,163, 11, + 13, 13, 21,191,243,206, 59,157,118,238,220, 41,150, 74,197,186,187, 87,143,205,159,248,209,156,129, 91,215, 47,105,150,151,151, + 71, 44,102,243, 41, 83, 94,222, 28,117, 21,102, 46,249,232,220,199, 36,100,209,184, 55, 58,187, 31,115,145,242, 26,219, 83,227, + 72, 18,178,104, 31,125,184,192,244,236,212, 6,117,232,219,107, 62, 74,203,231,230,233,121, 30, 75,171, 50, 89, 0,192,227, 19, + 24, 45, 86, 56, 72,132,224,241,120, 37, 38,222,251,231,125,167,164,238, 10, 59, 8,249, 60, 8,248, 69,209,206,236, 2, 19, 62, +120,111,160,205, 53, 1,139,149, 66,103,180, 64, 91, 92, 59, 84, 23,100, 99,238,231,159,226,205,254,131, 49,113,234,167,200,211, + 1,183,227,213, 48,153,205, 85, 94, 20, 60,194,131,214, 96,193,248,222,126,200,213,152, 80,168,179,192,104,225, 32,181, 19, 64, + 40,224, 65, 38, 22,192, 81, 42, 4, 40, 21,149,220, 76,132, 66,161,222,100, 50,237,170,164,156, 80,175,142, 39,116,102, 30,218, +140, 88,133, 94,237, 27, 34,250,247, 67,130,203,127,222,247,159,241,249, 60,124, 60,169, 63, 14, 62, 14,128,139,135, 31,228, 50, + 9,204,148, 7,192,182,161, 67, 40, 93,192,121, 7, 15, 25,245,253,143,219, 99,190,254,106,142, 56,191,144,192, 94,196,199,197, + 11,231,113,253,198,237,245,202,232, 35,187,240, 10, 17, 82,158,167,163,163, 35,196,118,124, 24, 77, 6,163,237,169, 11, 20, 20, +104, 33,247, 12,250,190,184,198,223,194,202,161,156,247,170, 54, 90, 66,137, 98,206,244,217, 75,150,245, 14, 27,134,179, 39, 14, +226,192,193,125,214,246,125, 39,240,119,255,188, 5,157,122, 13, 64,167,222, 35,112,234,183,157,159, 10, 37,138,144,201, 31,127, +185,184, 75,143,126, 56, 27,126, 16,153, 25, 41,171,109,221, 94,190,144, 76,239,241, 70,127,232,141, 86,116,238,249, 22, 78, 31, +255,237, 35, 20,119,178,176,253, 33, 86,230,254, 12,158,229,211, 79,166, 11,179,242,141, 66,101,129, 17, 41, 74, 45, 18, 50,181, + 56,186,247, 39,106,251,253,194,216,186, 75,211,218,194,201, 43, 47, 62,175, 83,219,219, 32, 52,232, 36,177,207,226,130, 39,190, + 55, 86,232,223, 32,152,151,165, 50, 64,169, 50, 32, 91,101,128, 70,111, 65,131,218,129, 60,179,133,180,175,110, 57,187, 41,236, +132,155,143,199,195, 81, 38, 68,135,224,154,119,180,229, 56,238, 47,147,181,182,200,100,221,139, 87,193, 94,196,135,189,136, 7, +123, 17, 31, 22, 43,181,169,226, 34,241,104,216,239,131, 15,223,247, 49, 90,128, 28,149, 17, 2, 62,129,135,155,179,172,117,179, + 81,216,190,234, 35, 0,192,164,217,223, 97,226,248,119,208,168,113, 40,242,243,242,188, 70, 13,235,183, 22,192,111,182,110,235, +201,179, 17,190,103,175, 68,205,254, 96,230, 2,249,219,253,187,243,239,196,169,144,158,107,192,179, 88,117,181, 34,111, 0, 96, +177,114,160,160,216,177,239, 4, 36,118, 2, 40, 85, 38, 80, 74,177,100,227,126, 56, 72,132, 72,207, 43,106,238,175,140,202,252, + 72,101, 17,169,106, 68, 27,223, 66, 81, 46,151,187,173, 17,173,229,203,151, 71, 47, 95,190,188,220, 8, 89,137,201,170,241,164, +210,118,118,242, 96, 55, 87,159, 63,207,158, 62,233,240,219, 93, 43, 46,221,205,193,176,206,181,161,201, 77,198,183,159,191,157, + 75, 64,141, 60, 62, 63,223,160,211, 30,214,233, 10,151, 82, 74, 77,149,154, 44,239,160, 22, 50,137,227,249,205, 91,127,177,184, +121,120, 96,215,213,220,148,188, 66,139,249,175,102, 43, 51,185,125,102,171,191,133, 51,247,213,101, 60,169,178,122,203, 81,136, +150,111, 57, 10,128,130,227, 56, 80,142,131, 80, 44,151,185, 7,180,207, 44,190,209,137, 5, 60,162, 47,125, 7,160,156, 37, 69, + 25, 87,121, 24,148, 0, 80, 72,133,216,119, 57, 21, 0, 50,249,234,200, 71,163,223, 46,106, 46,212, 27,197, 5,141, 3, 2,104, +235,214,173,243, 37, 18, 73,141, 11,187,186,205,133, 54,157, 64,207,158, 25, 1,172,244, 9,234, 60,184,143,188,105, 27, 59,158, + 8, 45,131,188,113,233,204, 17,250,231,233,237,147,180,153, 49,191,216,120, 34, 66,163, 55, 35, 45, 71,143,212, 28, 61, 50,242, +244,200,200, 53, 32, 35, 79, 15, 66, 8,244,198,151, 27,254,166, 48, 43,230,192,174, 95,182, 13, 48,152, 48,178, 75,239,193,248, +116,193,102,191, 93,223,175, 56, 47,241, 12,238,104, 75,162, 45,165,212, 74, 8, 73,124,239,189,247,154,237,217,179,135,223,164, + 73, 19,221,163, 71,143,164, 0, 56, 0, 38,185, 92, 42,249,105,211,242, 51,109,218,180,217,155, 26,251,248, 34,128, 60, 91,186, +231,215,237,246,158,125,176, 99,238,100, 95, 89,135, 62,245,189,164,240,149,169,251, 4,203,239,126,235,209,115,198,178,172, 11, +235,178,210, 13,150,115, 74, 29,191,121,170, 70,104, 83,174,160,217,160, 79, 26, 50,108, 36,248,132, 7,147, 94,155, 84,114,114, +121, 40,236,176,112,247, 99,200,197, 66, 56, 72, 4,144, 75,132,232, 20,226,130,106,220,207,168,217,202, 65,107,176, 66,103,176, + 64,111,180,192,173,142, 51,126,220,117, 0,201, 89, 58, 28,189,149,141,152, 36, 53, 2,107,203, 64,105,213,183, 73,206,106, 46, +236, 63,116,140, 3,159, 71,192,231, 17, 94, 72,112, 67,228,106, 76, 16, 9,120, 16,137, 37,144,217, 11,224, 40, 17, 66, 36, 18, + 34, 43, 43, 11, 6,131, 1,190,190,190,226,202,173, 32,133,131, 92,130, 64,127, 31,152,204, 22,156,188,242, 16, 75, 63, 25,130, + 55,186,180, 2, 17,202,241,216,208, 2, 14, 46, 14,224,120, 60,152, 44, 28,140, 38, 43, 0, 94,133,209, 55, 95, 95,223, 30, 50, +153, 76,166,213,106,213, 73, 73, 73, 17,233,143, 15, 39,123, 52, 30, 52,249,244,217,139,187,222,122,243, 13, 68,221,139,198,193, +223,142, 93,205,118, 85,205, 44,249, 78,147, 38, 77,218,185,185,185,201,115,114,114, 10,238,223,191,127,179,134,181, 95, 34,243, + 12,158,209,190, 83, 55,104,242,179,144,249, 60,193,230, 90,116, 35, 63, 7,124,185,124,115,203,160,134, 65, 45,173,180,200,120, +133,248, 58,224,179, 5, 27, 90, 6, 4, 54,108, 89,210, 33,164,145,175,188,114,147, 37,115,236,253,238,228,207,150, 15, 24, 54, + 14, 23,207, 30,195,154,165,159,239,146, 41,220, 27,185, 56, 43,154, 55,105,215, 27, 87,207, 31,131,216,193, 11,206,174, 94,157, +198,140,255,176,215,176, 49, 83,112,253,234,121,172, 95,241,197, 78,171, 65,253,171, 45,219, 42,247,172,239,222,188,117,151,209, + 14, 46,158,200, 87,169,225,224,236,129, 70, 77, 91,143,150,123,214,159,173,201,140, 83,214,244, 90,231, 40,133,193, 68,145,167, + 49,225,185, 82,135,196,140, 34,163,197,113,213,200, 9,178,114, 68, 46, 22, 8, 92,204, 79,125,239,159,191, 72,253,234,120,146, +149,139, 63,231,155, 32,134, 50,191,200,100, 41, 11,140, 80,170,140,208,232,205,112,145, 9,192, 89,185,106,215,186,243, 52, 38, + 56, 20,231,209, 90,185,154,231,134,111,249,121, 95,208,221,216,180, 65,107,214,172,147,222,137, 47,101,178,132, 69,209, 44,123, + 17, 31, 86,142, 43,126,210, 84, 97,176, 5,194,233, 3,251,245,194,243,108, 93, 81,175,101, 30, 65, 96,104, 27,184, 73, 56,244, + 28, 49, 7, 0,208,191, 95,209,240, 37,241,233,133, 56,254,167, 18,248,123, 98,119,229,247, 98,157,142,191,117,119,248,140, 3, +251,247, 42,244, 86, 1,126, 56,149, 8,173,193, 2,177,136, 15,123, 17, 31, 18, 17,255,111,249,216, 85, 27,173,162,156,187,228, +108, 51,180,122, 61, 10,116,102, 80, 0, 55,159,106,160, 51, 90,160, 42, 52,163, 93,176,243,203,214,125,194, 1,132,149, 53, 68, +101,205, 82,169,136, 84,121,220, 42,173, 81,242,249,138,140, 92,233,156, 45, 0,213,234,193, 37, 40,235, 28, 75,175,219,201, 93, + 26, 41, 92,221,255, 60,125,234,132,252,183,187, 28, 34,238, 21,153, 44,179, 46, 27,171,103,143, 74, 41,200,207,238, 78, 41,141, +179,245,199,100,238, 33, 77, 37, 82,233,197,111,214,253, 96,242,240,172,197, 29,254, 51, 63, 75,165,181,254, 45,134,104, 53, 24, +120,148,163, 34, 91, 76, 86,113,147,135,105,193, 71,131,193, 81,138,133,235, 14, 96,217,204, 17,144, 75,198, 72, 9, 33,210, 66, +189, 5,159, 44,218,134,213, 95, 78,112,144,218, 11, 64, 8,160, 55, 90,241,238,200,193,182,157,128,122, 11,158,221,216,163, 81, +199,159,120, 84,186,185,176,109,167, 55,111,183,109,219, 54,223,217,217, 25, 18,137,228,175, 72,133,141, 55,237,242,122, 23,102, +229, 35,197,193,193,161,171,163,163, 99,105,189,194,252,252,252, 35, 53, 57, 11,213,249,217, 23, 51, 18,239,183,233,216,189, 63, + 34,206, 28,161,127,158,250,105, 82,117,198,232,113,118,113,126, 30,121,255, 89, 35, 66, 92,138, 34, 90,197, 38,203,104,230,224, +231, 41,197,243,196,103,112, 82, 40,158,219,170, 39,245, 8, 30, 72,120,116, 42, 1,221,174,201,136, 61, 80,108,122, 70,201,188, +130,239, 69, 63,184,179,244,173,209,211, 5,189,135,189,207,255,126,249,135, 95,160, 76, 18,107, 37,152, 98, 98, 98, 30, 78,152, + 48,161,195,245,235,215,173, 0,180,132, 16, 51,159,207,151, 26,141, 70, 81,247,238,221, 85,143, 31, 63,190,140,114,146, 22,203, +210,121,252, 65, 55, 98,175,126, 51, 32,176,245, 40, 63, 7,245, 27,221, 59,183, 71,251,198,117,240,188,115,123, 0,152,158,164, +145, 7,117,154,246,211, 62,127,247,218, 39,191,255,249,248,178, 73, 35,122,125,226,211,127,209,154,180,227, 11, 42, 77, 68, 77, +126, 24,209,167, 60, 27, 47,224,243,224, 32, 17, 66, 46, 17,192, 65, 34,132,131, 88, 8,179,133, 86,167,230, 72,205, 22,174, 40, +162,101,180, 64,163,179,224,226,157, 76,100,168,140,200, 87,155,160, 51, 89, 65, 65,139,106,163, 54,220,205,179,158,252,238,244, +162,236,253, 90,170,182,110, 92,229,120,232,247,148, 23, 61,250, 20, 82, 59, 56, 72,139,122, 99, 95,185,114, 5,174,174, 85,215, +246, 57,142,195,193,211, 55,177,102,199, 69,156,222, 62, 11, 98, 17, 31, 77, 7, 46,194,184, 65,109,193, 81, 14,207, 98,162, 51, + 3, 67,154,121,242,120, 18,240, 8,129,193,204, 1,160, 21, 30, 79,163,209,232,154,156,156, 92,208,160, 65, 3,175, 90,181,106, + 13,227,243,249,212, 30, 48, 28,217,155,171,189,112,226, 87,105,161,206, 96,149, 90, 84,219, 27,164,235,194, 2, 3, 3, 65, 8, +161,110,110,110,162,139, 23, 47,106, 66, 67, 67,221,107,104,178,120, 18,143,134,235, 39, 78,155, 49, 44,160,126,125, 28,248,117, + 59, 40, 37,135,108,253,254,238,227,215,177,120,238,223,123, 24,126,182, 96, 67,203,213,139,166,255,237,189,105,115,215, 84,218, +235, 80, 98, 47,159, 57,100,212,100,220,190,121, 13,223, 46,250,108,175, 65,147, 59,206,108, 49, 15,207, 77,143,223,235, 31,210, + 22,212,164,198,217,253,171, 48,226,157, 73,246,189,223, 26,134,235, 87,207, 99,217, 23,211,118,107,243,179,222,179,117,252, 47, +142, 10,167,118,239, 51, 72,168, 51,152,176, 97,229, 87,152, 50,115, 41,218,245,232, 47,124,112,231,207,169, 0,190,182,117,159, + 13, 38, 43,186,135,186, 21,153,103, 51,135, 99,241,124, 65,121,103,160,128, 79,120,205,235, 59, 65,103,180,160, 64,107,174,252, + 65, 37, 18,102,228,171, 10,234,110, 90, 54,131, 95,168,183, 64,169, 50, 34, 75,101, 64,118,254, 95, 6, 43, 91,101,128, 82,101, +132, 80, 64, 16, 27,151, 4,158, 80, 80,237,252,188, 60,141, 25,109, 26, 58, 23, 93,163, 53,108, 29, 49, 11, 28,219,158,190,124, +119,200,154, 53,107,197,119, 19,212,184, 23, 95, 80, 28,201,226,195, 94,200,131, 93,241,107, 43, 7, 84,245, 19, 10,143, 0,255, +177, 19, 38,245,116,148, 75,144,246, 36, 11, 2,126,209, 16, 49, 10,143, 58, 80,216,235,241,225,180,201,112,115,117, 66,114,182, + 1,235,127,139,197,189,135, 79,193,233,170,183,219, 27,126,216,219,119,226, 7,159, 57,241,132,118,216,121, 38,161,104, 59,249, + 86, 60,254,243,184, 62,237,217,253, 66, 77, 65, 14, 5,181,218, 24, 0, 32,212, 98, 45, 58,221,150, 45,156,131,189, 59,190,195, +153,200,172, 23,201, 91,191, 31, 90,141, 25,115,151, 32,187,192, 88,124,234, 87, 30,201, 42,179,174, 44, 21,137,250,199,122, 41, +115, 84,222, 58, 41, 94, 55, 86,160, 97, 44, 99,174,140,101,222, 55,150,209,187, 91, 78,229,127,107,149, 77,135,255, 48, 69,206, + 30, 77, 20, 14,138,107,167, 78, 29,151, 29,185, 71, 95,152, 44,147, 54,155, 46,157,222, 63,165, 32, 95,217,187, 90, 38,203,163, + 97, 19,123,153,236,242,252, 37,235, 13,158,181,234, 90, 78,222, 41,200, 81,235,173,255, 8,139,136,164, 50,171, 76,225,174,119, +242,107,177, 70,168, 51,126,165, 84, 62, 44,172, 42,242,196, 81,138, 19, 55, 50, 64,105, 81, 21,105,255,149, 84, 20,215,204, 97, +229,138,154, 85,206,221,201,130,160, 56, 15,197,214,240,247,150, 31,190, 43, 8, 11, 85, 21,142, 94,182,240, 69,115, 97,187,102, + 69,145, 44, 71, 71, 71, 56, 57, 57, 65, 46,151,195,150,166,195, 18, 42,234, 93,232,224,224,208,245,206,157, 59, 98, 71, 71, 71, +240,249,124, 24, 12, 6, 52,110,220,184, 70, 23,186,220, 43,248,131, 54, 61, 6,127,209,169, 71,127, 92, 60,125,152,254,121,250, +231,201,213, 29, 8, 49,172, 87,135,227,139, 23, 47,244,159,191,116,147,189,131, 88,128, 71, 26, 35,120,132,192,207, 83, 10, 87, + 25, 15, 17, 71,118,234, 71,244,239, 96,243,224,120,117,234,212,218,181,122,227, 86,217,234, 21,139,186, 59,212, 10,186,168, 78, +141,201, 5,128,194,140,199, 43,165, 94,193, 15,107, 95, 59,123,178, 89,215,193,240,244,169,255, 70, 53,194,191,148, 16,162,141, +139,139,139,159, 63,127,126,208,138, 21, 43, 40,159,207,231, 0,216,175, 91,183, 78,251,228,201,147, 59, 40,234,154,139,170, 30, + 54, 61,223,104,252,137,220,206,218,206, 69,202,107, 92,223, 75,138,246,141,139, 90, 69, 71,132,117, 66, 29, 95, 95,196,101,104, +155,231,106, 57,161,198,200,175,191,249,135,123,183,234,185,241, 39, 89,116,198,135,168, 98, 48,217,138,206,217,146, 4,249,146, +104,150,131, 68, 8,174,232,193, 94, 45,163,101, 48, 89,161, 51, 88,161, 51, 90, 80,104,180, 66,107,180,130,163, 69,215, 4, 33, + 4, 38, 11, 7,155,170,205,101,206,125, 71, 23, 55,212,175, 87,212, 75,214, 65, 82, 52,212,131,163, 84, 88,212, 71,218,213, 21, + 30, 30, 30, 54, 69, 69,141,166,162, 75,220,104,230, 94, 52,235, 27, 77, 22, 80, 74, 17, 27, 27, 51, 43, 49, 62,126, 96,131,192, + 6, 93, 66,154, 54,115,145,218,243, 0,160, 66,163,165,213,106,173, 14, 14, 14, 30, 46, 46, 46,188,212,212,212, 23,230,185, 65, +243,238,150,223, 14, 31,194,144, 33,131, 53,143,110,222,125,209,197, 93,167,211,145,142, 29, 59, 58,214,169, 83,135,103, 48, 24, + 10,170,119, 12, 8,145,185, 55, 28, 84, 39,184,195,210,119,223,155,210,176,123,175,190,184,116,225, 44,142, 30,222,243, 75, 97, + 86,140,205, 35,103, 7, 5, 5,255,163,215, 97, 64, 96,195,127,244, 58,172,235, 31, 88,169,209, 10,105,218,186, 45, 37, 2,156, + 57,177,159,234,121,166,105, 69, 9,239,100,255,190, 45, 95,126, 61,106,234,220,128,126, 3, 70,225,221,119,198, 65, 32,224, 35, +226,220,113,172, 94,244,105,184, 70,149, 53,214,150, 52, 1, 0, 32, 33, 33,162, 6,190,117, 63,246, 13,104,130,200, 63,175,226, + 89,236,131,232,187,183,174, 55,110, 16,218, 14,238, 62,126, 31,147,144,144, 21,244,225, 67, 83, 85, 58, 70,189, 62,105,220,216, +119, 80,186,215, 97,251, 22, 65,174,164,236, 5, 0, 64,171,206, 50,253,180,234,147, 39, 37,189, 14, 57,147, 49,169, 34, 93, 85, +158,242, 96,196, 31, 55,102, 14, 12,235,203,203, 46, 48, 22, 69,176, 84,198,226,197,128,236,146,215, 5, 6, 4,250,200, 17, 19, + 29,201,233, 85,217,135,170,121, 93,234,199, 13,239,243,176,228,220,229, 56, 10, 2,232,171,123,125, 83,161,227,228,149,223,174, + 17,223,141,215,224, 94, 66, 65, 81, 83,161,144, 95,100,176,132,188, 23,166,171,168, 55,123, 21,209, 33,194, 95, 54,126,236, 72, +100, 23,152,192,113,128,128,207, 43, 94, 68, 72, 86, 19, 60, 87,107,145,157,167, 68,124, 98, 18,242, 51,158,129,199,227,193,205, +167, 33,108, 13, 63, 90,169,157,183,214, 72, 67,135,133,117, 17, 28,190,150, 14,169,189, 0, 6,117, 38, 78,237, 91,165, 52,104, + 10,150,234,180,154,195,186,156, 39,105,182,238, 59,143, 16,101,129, 70,239,105, 47,228,227,192,142, 77, 24, 62,110, 90,241, 65, + 41,250, 51,107,222, 98,128, 71,144,155,167, 6, 33,164,186, 81,210, 91, 85,172,215,132, 87,161,129,242,204,213,223, 42, 10, 21, +215, 70,233,169,179,167,143,203,126, 79,180,199,205,152,244, 98,147,165,228,150,124, 20,150,162, 86,229,246,161,148,198, 86,107, + 11,120,188, 62, 35,198,207,140,174,223, 48,196,112,233,129, 38, 33,191,208, 92, 97,158, 67,251, 97,243,163,111,135,111,236,167, + 50,199,189, 47,247,105,108,229, 44,150,149,218,172,152, 69, 21, 52, 29,218, 45, 90,127,224, 69,179,225,236, 21, 59,139, 94, 91, +173,176, 82, 14,148, 3, 62,252,114, 11, 44,156, 21,156,213, 10,206, 74, 97,182, 82,105, 85,155,235,225, 83,247,112,222,227,253, +193,163,191,254,103,115,161,147,147, 19, 92, 93, 93,225,234,234,138, 18, 99,244,178,205,133,142,142,142,144,203,229,184,122,245, + 42, 36, 18, 9,100, 50, 89,181,116, 75,153,172,247, 91,119, 27,184,169,199,128, 9, 56,119,248, 7,122,235,202,241, 41,218,204, +152,109, 54, 71,232,173, 86, 98, 54,155, 17,214,187, 91, 82, 84,244,211,211,243,102, 78,237,219,225,173, 41,246,237,131,106, 65, +111,180, 34, 37,241, 25, 34,142,252,172,111,232,239,125,166,103,231,182, 73,102,179, 25, 86,171,181,202, 7,185,222,104,202,230, + 11, 37,178,145, 35, 71, 11,111,221,188,121, 72,238,209,240,128,149,240,238, 18,202, 53, 37,132, 12,105,218,180, 17, 76,102, 14, + 90,109, 65, 94,117,247, 89,173, 86,199,111,223,190,221,127,236,216,177,210,144,144, 16,225,179,103,207,176,122,245,234, 28,181, + 90, 29,111,171,198,217, 43, 49,235, 4, 36,239,137, 29,103, 26,229,231,160,126, 35,185, 83,123,140,124,171, 19,246,134,255,142, +136,171,215,145,164,145,223,209, 88, 4, 71,158, 39,165, 25, 26,187, 20, 28, 26,208,190, 46,255,192,142,188, 67, 30,221,231,190, + 77,169,253, 89,101,196,130, 66,219, 31,226,128, 90,103,134,163,180,104,188,167,146,200, 22,159, 16,155, 29, 17, 1,226,175, 94, +143,108,210, 42, 48, 4, 81,241, 42,100,229, 27,160, 51, 88,192,113, 20, 28, 40, 92, 29,236, 32, 22,241,144,156, 24, 15,142,154, + 18,170,121,187, 80,118,237,210, 85, 0, 16, 16, 66, 5, 66,129, 0, 20, 69,227, 43, 74, 36, 18,141,135,135,135, 77, 17, 45,147, +197,130, 33,125,219,162, 93,235,166, 24, 56,165,104,204,204, 11,191,204,129,179, 92,136,189,187,182, 33,249,242,218, 93,245, 59, + 76, 59,251,224,126,244,208,232,168,107,163,223,108, 41,105,238, 37, 72, 19, 85,164,167,209,104, 14, 17, 66,236, 68, 34, 81,223, + 46, 93,186,184, 28, 58,116, 40,223,205,205,141,179, 19,137,148, 3,250,191,197, 9, 69,162,220,146,207,254,241,199, 31,194, 41, + 83,166, 56,228,229,229, 37,103,102,102, 94,167,148,154, 43,175, 8, 6,247, 2, 15,123, 64,136, 88, 46,145, 38,181,239, 53,210, +167,117,187,182,138, 65, 67,134,195,222,206, 30,231,206,158,198,134,181, 43,246,107,210, 31,141,175,206,145,124, 85,189, 14, 83, +146, 19,226,181, 58, 67,104,147, 86,221,200,213,179, 71,166, 19,226,190,150,111,239,184,170,215,144,105, 1,241,105, 26,108, 88, + 62, 11,206, 10, 25, 18,158, 61,214, 61,121,116,127,139, 89, 95, 48,203, 86,147, 5, 0,210, 28,235,208,246,239,244,117, 54,152, +172,184,114, 49, 92,207, 89,184,190,215, 47,159,124, 86,187, 97,107,113,147,214, 61,157,179,143,110, 27, 2, 96,111, 85, 58, 41, +143,254, 25,193,245, 13,106,147,112,225,226,121,133,167, 95, 99, 62, 1,129,201,160,135, 50,238,150, 69,155,249,184, 64,149,114, +223,166, 94,184, 57,207,241,229,220, 5,223,188,223,186, 85, 43, 25,133,248,111, 17,172, 18,131,149, 93, 96,132,155,131, 29,116, + 5, 74, 60,185,117, 90,175, 85,242, 43, 29,239,204, 98, 44,148,102,103,101,190,104, 98,211,100,198,180,171,236,243,217, 89,153, +118, 22, 99,161,180,234, 71, 29, 31,142, 50, 59,220, 79, 72,125,145,248,110, 47, 44,202,205,178, 19,242, 95,228,105,149,220, 11, +170,160,155, 72,236,132,212, 28, 61, 8, 40, 56,171, 5, 22,179, 17,234,130, 2,164,166,101, 32, 51, 35, 19,106,117, 62,164,114, +103, 52,105,222, 6, 14, 50, 49,238, 70,236, 7,165,212,166,113, 13,205, 68, 24,212,186, 93,103,251, 7,137, 69,185, 88, 98, 33, +197,241, 61, 43,114, 52, 5, 89,157,213,105,177, 79,170,123, 47,182, 88,173,231,239, 61,124,210,184,182,119, 61,114,231,153, 10, +187,126,220, 8, 99,113,100,211,108,182,226, 65,114, 33,210,115,181, 72,142,123, 68, 57,171,245,127,102, 66,106, 65,197, 1, 64, + 8,154, 54,105,132,222, 99, 6,225,187,239,182, 32, 46, 62,145, 91, 58,189, 95,178, 70,157,255,166,173, 38,171,244,236,222,133, + 25,143, 87,142,255, 46, 33,229, 88, 84, 46, 79,103,172,124,126, 43,177,187, 31, 58,143, 95,125, 70,167,206,181,179, 26,180,130, +227,187,198,239, 41, 79,179,200, 65,195,184,244,179, 17,144, 75, 4, 32,132,160,164,185,112,243,226,201,144,218, 23,181, 45,235, + 12, 22,140,249,100, 13,118,173,249, 20, 20,192,168,225,191,107, 43,218,206, 82, 77,123,181,147, 18,179, 82,123,245,255,236,130, +222,100,111,120,107,240,216,219,173, 90,181,202,151, 72, 36,144, 72, 36,112,116,116,132,179,179, 51,156,156,156,170,220,247, 10, + 7, 35, 45,213,187,144,199,227,129,199,227, 65, 38,147, 65, 46,151, 67, 38,147, 85,170, 89,161,201,234, 58, 96,115,207,129, 19, +113,238,240, 86,122,235,202,241,169,218,204,152, 31,109, 45,163,226,230,158,187, 67,134, 12, 9,157, 50,101,138,104,193,204, 41, +103,194,207, 70,196, 30, 56,177,181,127, 94, 94,126, 29, 74, 41,156, 20,138,231, 35,250,119, 56,222,189, 99,235,164, 11, 23, 46, +112,123,246,236, 49, 16, 66,238, 87,181,157,217, 89, 89,191, 92, 56,127,113, 97,231,174,221,176,109,199,158,174,209, 15, 31,117, +125,246,236, 9,234,248,213, 71, 61,255, 64,104,137, 51, 46, 94,190, 10, 77,126,214, 47,182,108,103,153,168, 22,201,203,203,187, + 54, 98,196,136,222,191,255,254, 59,111,196,136, 17,218,236,236,236, 63, 74,234, 81, 21, 69,179, 74,107, 94,219, 50, 72, 9,224, +151,186,221,222,219,159,106,202,255, 24,192, 10, 95, 63, 95, 68, 92,189,142,235,191,223,216,146, 45,245, 93, 52,126,204,123,147, +235, 14,224, 79, 28,208,190, 46,223,195, 89,138, 95,183,174,230, 31,187,158,184, 38, 49,199,186, 13,192, 98, 91,202,232,197,131, + 67,109, 66,199, 70, 46, 48, 91, 41, 56, 90,116,195,117, 16, 11,203,189,241,150,167, 41, 48,218,143,159, 58,101,202,179, 38, 77, +155,207, 24,243,222, 84, 81,243,250,117,112,243,105, 62, 64, 8, 92,188,100, 72, 79, 79,199,149,131, 91, 45,121,169,143,183,240, +249,220,215,213, 57,151,114, 19,163, 26,148,250,220,228,236,236,108, 68, 68, 68,160,196, 96,185,187,187,151,107,180,202,106,230, +100,166,253,177,248,219, 31, 58, 78,122,119, 48,222,234,214, 24,151,111, 61,131,177,120,188,166,146,174,228,241,215,191,183,251, +120, 68,125,227,251, 67, 26, 22,232,204,118,137, 95, 38,168,174,148,238, 21, 91, 86,147, 82,106, 36,132, 28,139,137,137,233,212, +172, 89,179,186, 39, 79,158,204,141,190,113,102,122,233,237,248,208,158,168,121, 0, 0, 32, 0, 73, 68, 65, 84,236,179,207,228, +223,125,247,157,148, 82,250,135,193, 96,136,179,105,223,121,248, 53,242,246,109, 87,147,153,195,213, 27,119, 27,245,236,216, 28, + 28, 5,110,221,186,133,109, 63,109,211,223,191,119,103, 85, 97,166,215,215, 21,153,151,138,142,167,245, 37,122, 29,150,214, 76, + 79, 77, 92,117, 46,252,224,174,214, 93,251, 99,244,135, 95,127, 29, 17,190,103, 97,203,206,111,241, 26,181,238,141,200,235, 23, +113,254,228,233,111, 76,154,220,133, 85,205, 67, 90,209,118,218, 75,164, 31,133,180,236,138,228,164, 68, 36, 60,121,240,139, 46, +231, 73,154,220, 43,248,151,180,148,164,169,254,141, 59,226,247, 51,123,167, 87,100,180,170, 58,231,235,184, 75,182,158, 60,113, +108,100, 74,202,247, 94,133, 58,189, 61,165, 84,111,111, 39,200,144,243, 42,238,161,254,207,114,127,104,146,185,212, 27, 50,124, +204,212,240, 13, 27,214, 10, 61,157,164,200,200,211,163, 64,103,130, 90,107, 2,143, 16, 52,240,145, 65,171,206,197,229,131,223, +154,141,154,188, 17,148, 62, 53, 85,164, 41,247, 12, 94, 2,208, 15, 63,155,118, 9,118,138, 58, 62,254, 61,191,168, 52, 90,167, + 78,187,215,255,179,105,199,131, 40,165, 61,229,158,193,234,146,185, 14,203,219,119, 66,138,174,239,209,221,235,192,100, 41, 26, +127,204,194, 1, 86,142, 43,142,242, 1,244, 69,123, 62,169, 98,223, 9,183, 47,252, 15,164,101,230, 67,103, 52,195, 96,180,192, +100,182,130,199,231,195,201,217, 9,129,245, 90, 64,225,228,136,204,140, 52, 92,191,112, 12,177,247, 46,255, 65, 40, 22,105,179, + 98, 47,216, 82, 70, 34,137, 83,144,183,143, 23, 47,189,192, 8,137, 29, 31,119, 46,159, 52,153,141,134, 85,182,152,172,242, 52, +243,115,114,215,204,152,249,249,168,159,183,239,240, 10,245,119, 68, 74,182, 14, 41, 74, 61,212,122,115,177, 17,227, 96,208,100, +227,222,197, 29, 25, 86,189,122,205,255,188,209,178,152,244,234, 67,167,111,186,206, 89,248, 45,255,233,179, 56,243,146,143,195, + 82,116,154,130,126,213,142,100,149, 98,251,251,245,246, 86,239, 27,197, 67,154,124,157, 88,121,253,187,108,115, 33,229,192, 81, +138,227, 55, 50, 94, 52, 23,114,197,153,151, 81,207,242,171,213,180,119, 47, 70,189, 91,167,203, 84, 60,126,186, 42, 15, 0,248, +124,254,139,165, 36,151, 74,175,215, 27,107,210, 92, 88, 54,241,157,227, 56, 56, 58, 58, 66, 34,145, 84,187, 73, 82,230, 25, 52, +178,117,183,129,155,122, 14,154,132,243,191,253, 72,111, 93, 62, 54, 77,155, 21,179,181,218, 57, 10,121,121,209,132,144, 39,171, + 86,173,106,190,109,219, 54,255,153, 51,103,198,237,220,180,112, 3, 0,228,228, 20,205, 1, 28, 21, 21, 69,167, 77,155,102,208, +235,245,241,121,121,121,145, 85,117,128, 0, 0,157, 82,186,108,219,230, 21, 77,158,167,166, 15,174,223,164, 13,220,253,219,192, +171, 65, 91,228,169, 77,184,249, 52, 13,113,143, 46,224,209,213,131, 39,181,114,203,194,234,110,115,179,102,205,234,240,120,188, +122, 26,141,198, 43, 36, 36,164,153, 76, 38,139,106,214,172, 89, 11,129, 64,144,114,251,246,237,196,234,104, 37, 70,252,108,168, +219,237,189,245, 73,106,135,238,113, 25,218, 22, 73,106,135, 40,173,189,226,211,172, 11,235, 12,158,189, 87,173,161,166,236,232, + 3, 59, 10, 14,253,186,117, 53,127,204,228,207,172, 15, 84,206, 31, 11, 36,118,231,150,143, 11,173, 70,179, 20, 47,253,253,177, + 3,255, 26,222,161, 56,146, 85,252,218,166, 48,125,126,254, 93, 21,128,217, 18,159,198,155, 30,124, 60,101,113,211,214, 29,223, +233,242,230, 8,158, 69, 36,199,153,223,190,167,241,247, 46, 30, 16, 80,235, 60,173, 13,179, 1, 84,217, 28,100, 52, 86,105,178, +202,109,238,121, 46,235,118, 96,207, 79,227, 14,253,118,120,249,160, 1, 3, 93, 55,127,249, 54,190,253,225, 8,100, 18,123, 80, +142,195,136, 30,190,195, 30,237,233,211,191,142,167,184,214,161, 75, 41, 87, 62, 92,251, 96,182, 86,107,138,173, 42, 18, 83,108, +156,175, 58, 56, 56, 40, 59,117,234,212,206,222,222,158,100,103,103, 11, 60, 60, 60, 44, 10,133,194,152,146,146,162, 53, 24, 12, +135, 40,165,133,213,217, 79,147,153, 67, 66,166, 30, 71, 15, 31,194,221, 27, 23,240,232, 81,140,250,209,195, 71, 27,137,128,174, +213,100,196,230,214,228,216,113,229,246, 58,164,213,238,117,104, 53,168,127,221,185,101, 73, 15,173,222, 48,174, 89,135, 48,212, +109,212,145,103, 50, 91,113,255,214, 37, 92, 58,184,246, 91,163, 58,103,206,203,148,177, 79,109,255, 64,202,183,195,181,136,112, + 80,142,219, 2, 0,148,227,182, 68,253,126,114,106,219,126, 19,225,226, 81,183, 25, 33,132, 84,119,190, 71, 0, 16, 9,120,133, +167, 14,253,252, 91, 66, 66, 2, 30, 63,126,140,167, 79,159, 34, 55, 55, 23,191,254,154, 80,173,242, 41,204, 77, 56, 39,119,173, +223,103,232,219,163,143, 15, 27,249,174,216, 63, 48,148, 23, 84,219, 25,174,114, 1, 98,158, 38, 34,246,246, 61, 46,230,230, 73, +189,169, 32,107,144, 54, 55,161, 66,227, 39,115, 15,241, 36, 60, 58,167,100,238,194,246,237, 59, 6,125,190,116,121, 59, 87,119, +143,114,239,227, 57,202, 44,187, 89, 31, 30, 11,186,254,231, 53,155,230, 58,228,172,214,156,201,227, 70,112,252,162,137, 66,241, + 34, 78, 77,138, 10,187,168, 50, 85,244, 62,229, 44, 85, 70,240,223, 27,220, 25, 22,142, 67,161,206,132,130, 66, 3, 84,106, 61, +210,179,114,112,247,222, 61, 92, 62,126, 12,207, 98,238,198,155,141,198,179, 60, 30, 57,168,205,136,185, 92,189,150, 38,129,191, +171,139, 11,226,115, 53, 16,219, 9,144, 24,123,219, 80, 88,160,218, 93,211,243, 72,155, 29,155, 46,243, 12,234, 61, 98,196,200, +211, 61,250, 12, 80,180,238,208, 75,234,230,232, 4,145,128,226, 73, 66, 26, 34,255, 56, 93, 24,119,247, 74,129,217,168,233,251, + 42,102,125,249,111,198,166, 94,135, 38, 67, 97,255, 81, 3,187, 30,230,243, 5,118, 28,103, 49,152,140,134,161, 47, 99,178, 94, + 23,148, 90, 83,198,141, 26,252,183,186,129,133,163,146, 81,195,207,232, 74,215, 21,204, 86, 42, 29, 53,252, 15,109,209, 13,164, +226,196,190, 23, 77,123,123,207,165, 36, 37,229,220,202,205, 53, 92,122,217,158,128,165,231, 46,172,164,119, 97, 97,112,112,240, + 11,115,197,231,243, 97,181, 90,109,190, 17,137,236, 37,147,122, 12,152, 64,206, 31,249,145,222,140, 56,242,190, 54, 43,246,135, +151,104,103, 54, 1,184, 65, 8,121, 48,111,222,188,214,158,158,158,158, 95,125,245,149,184,160,160, 64,184,121,243,102,125,118, +118,118, 70, 65, 65,193,117, 74,169,206,118,205, 72, 51,128, 33,114,207,134,221,233,161, 31,223,112,114,171,213, 91,225, 94, 59, + 32, 95,153, 26,175, 82,166,157, 5,112,190,120,160,200,106,209,162, 69,139,250, 60, 30,111, 4,128, 38, 50,153,172,129, 92, 46, +183,167,148, 6, 19, 66,162, 57,142,187, 23, 18, 18,114, 2, 64,181,202, 47, 49,226,103, 67,151,247,127,218,147,171,229, 68, 70, +158,104, 79, 98,196,207, 6, 0,200, 60, 59, 83, 11,224,168,103,247, 57, 67,142, 93, 79,220, 16,157,167,152,158,117,105,217,177, +234,110,115,254,243, 59, 13, 94,213,249,175, 75,139, 78, 1, 48, 78,230, 25,180,250,126,212,245, 5,132, 66,104,133,101,137, 54, +243,201,237, 87,161, 47, 20, 10,245,181,106,213, 42,183,119,161,189,189,189,190,242, 50,143,176, 0,216, 70, 72,183, 29,135,247, +239, 24,119,228,216,209,229, 93,122, 14,114, 21,215,174,141,122, 30, 4, 59,230,180,156,126, 33, 74,121,115,192,231, 87,190,139, + 75,211,223,163,148, 86, 43, 31, 70,173, 86,199, 18, 66,242, 52, 26,205, 64, 74,233,115, 66, 72,157,188,188,188, 59,102,179,249, +126,181, 13, 1,135,209,237,219,183,249,149, 16, 34,160, 22,110,229,117, 33,127,143, 62,253, 81, 74, 77,140, 69,105, 66,235, 57, +226,147,175,214,183, 12,104,208,176,101,201, 92,135,141,235, 58, 96,202,236,213, 45,235,250, 7,182,252,107,254, 67,121, 85,215, + 36, 37,132,140, 63,252,211,202, 43, 81,127, 94,250,194,205,187,110,221,140,148,184, 71,207,159,222, 89,108,209,169, 14,191,108, + 57, 39, 60,141, 94,187,109,213,236,153,233,169,241,219, 10,179, 98, 31, 0, 64, 97, 86,236, 3,169,103,195, 47,179, 51, 82,102, +230,100,197,173,170,233,177, 40, 44, 44, 76,219,189,123,183, 83,199,142, 29,121,158,158,158, 80, 42,149,184,116,233, 18,199,113, + 92,106,117,181, 52, 57,113,151, 8, 9,112,249,229,135, 77, 43, 69, 50,135,126, 22,139,197,135, 82, 64, 32, 16,164, 27,181, 5, +167,213, 60,217,231, 52, 55,161,138,243,146, 35, 0,120, 37,115, 23,114, 28, 71, 86,110,216,145, 40, 20, 59,148, 59, 63,162, 89, +175,150,114, 28,103,243, 92,135,121, 73,183, 3, 94,217,195,154,210, 69,205, 90,181,251,194,108, 54,233, 81,148, 47,166, 7,160, +167, 20, 57, 60, 30,185,204,231,204,103, 84, 47, 81,153, 34, 4,142,148, 8,224, 32, 17,128,128, 64,163,202,165,213,201,201, 42, +183,188, 51, 99,162, 9,233,230,119,202,184,127,236,197,115, 39,135, 91,173,214,122,197,103, 78,130, 65, 87,120, 64,147,238,252, + 11,165,183, 44,248,247, 19, 94, 98,182, 4,149, 92,216,177, 40,154,219,231,191,154,156,248,155,173, 94,165, 94,122,102,238,142, + 62,131,102,210,132,196,172,155,201, 25,134, 95, 74, 79,171,243,178,154,207,159, 43, 47, 21, 55, 23, 26,254, 25,161,168, 89,239, +194, 23,198, 88,175,251,102,221,188,145,208,235, 10,119,106,179, 98,119,188, 26, 19, 75,117, 0, 46, 19, 66, 20,239,191,255,126, + 11,185, 92, 46,204,206,206,190, 65, 41, 85,213, 84, 83,147, 25,123, 9,192, 37, 0,115, 94,197, 54, 70, 69, 69,197, 53,111,222, +124, 23,143,199,171, 71, 41,245,164,148, 42,138,141,108,182, 64, 32, 72,125,248,240, 97,106,141,246,221,224,112, 74, 99,228, 7, + 90,168,243,233,127,152, 15, 87,143,115, 73,185,214, 31,249, 50,241,127, 77,142, 65, 97,102, 76, 52,128,161,175, 90,183,178,113, +178,108, 63,143,254, 50, 92, 17,225, 63,143,227,217, 41,150,244, 12,210,107,123,207, 72, 93,124,245,190,242, 6,165, 84,253, 18, +231,168,210,206,206, 78, 71, 8,169, 35, 18,137,116, 70,163,241, 94,141,142, 95,145,201,119,127,149,199,142, 3,185,221,178,101, +171,106,125,222,134, 72,222,142,226,229,149,162,201,120,188, 24,197,205,223,127,139, 80,100,198, 46, 1,176,228,101,180,111,221, +186,117,124,213,170, 85,170, 13, 27, 54,248, 90,173, 86,169,209,104,212,234,116,186,132,148,148,148,107, 53, 43,243,103, 70, 0, + 31, 23, 47, 53,136,186, 60,206,144,123, 54, 92,223,161,125,135,143,139, 42,232,116,125,194,229,245,159, 84,246, 29,185,103, 67, + 93,233,207, 87, 54,215,225, 43, 45,151,172,216, 45, 0,182,188,190, 72, 5,167, 28, 61,108, 32, 80, 60, 48, 55,103,177, 40, 95, +137,108,209, 53,255, 19,106, 56, 73,250,191, 1, 74,105, 58,128,173,197,134,153,190,182, 31,178, 53, 95,133,105, 50, 77,166,249, +191,165,105,203,236, 4,236,120, 50,205,215,169, 41,241, 9,169, 3, 0,182, 76,186, 94,209,231,217,241,164,255, 51, 9,237, 54, + 28,143,201,229,152, 45,219, 6, 44,101, 48, 24,140,215, 80,219,227,216, 81, 96,252, 39,177,213, 96,213,244,243,140,255,185,123, + 90,133, 57,209, 4, 69,179, 96,151,247, 37,155,157, 42, 33,164, 87, 13, 54,234, 60,211,100,154, 76,147,105, 50, 77,166,201, 52, +255,183, 52,171,210,254,191, 24, 41, 43, 39,162, 21, 94,220,124, 88, 52, 48,219,235, 90, 0,244, 98,154, 76,147,105, 50, 77,166, +201, 52,153, 38,211,252, 95, 90, 0, 76, 46,121,205, 3,131,193, 96, 48, 24, 12, 6,227,181,192,114,180, 24, 12, 6,131,193, 96, + 48, 94,130,242,154, 14,153,209, 98, 48, 24, 12, 6,131,193,120, 5, 84,150, 12,207,154, 14, 25, 12, 6,131,193, 96, 48, 94,130, +146,136, 22, 33,196,155, 16, 50,185,116,132,139, 25, 45, 6,131,193, 96, 48, 24,140, 87, 0,165, 52,189,108,116,139, 80, 74, 17, + 30, 30, 78,195,194,194, 8,128,191,189,102, 48, 24, 12, 6,131,193,248,255,193,255,101, 47, 66, 8,241, 6, 16, 86,122,119, 74, +134,119,224,149,222, 65, 86,204, 12, 6,131,193, 96, 48,254,147,102,235,255,226,118,151, 68,178, 74, 45, 47, 38,205,126, 97,180, +194,194,194, 8, 51, 91, 12, 6,131,193, 96, 48,254, 83,252, 27,189, 8,175,236, 14,178, 98,102, 48, 24, 12, 6,131,241,159, 52, + 91,255,166,253, 97,195, 59, 48, 24, 12, 6,131,193, 96,188, 4,149,229,104,145,226,161,226, 25, 12, 6,131,193, 96, 48, 24, 53, + 51, 90,147, 75,247, 54, 44,189,206, 34, 90, 12, 6,131,193, 96, 48, 24,175,192,108,149,251, 62,139,104, 49, 24, 12, 6,131,193, + 96,188, 30, 94,235,128,165,132,144, 94, 76,147,105, 50, 77,166,201, 52,153, 38,211,100,154,255,102, 74, 70,132, 47,126, 61,185, + 56,103,235,245, 27, 45, 6,131,193, 96, 48, 24,140,255, 1,194, 40,165, 91, 75,229,102,133, 49,163,197, 96, 48, 24, 12, 6,131, +241, 10, 41,111,114,105,102,180, 24, 12, 6,131,193, 96, 48, 94,161,193, 42,189,206,140, 22,131,193, 96, 48, 24, 12,198,107,130, + 25, 45, 6,131,193, 96, 48, 24,140,215, 4, 1, 80,110,207, 1, 74,233,121,155, 69,106,208,251,160, 42,125,166,201, 52,153, 38, +211,100,154, 76,147,105,254,251, 52,171,210,174,142,255,248,175, 49, 83,127,141, 12, 31, 94,252,247,175,230, 67, 74,233,107, 91, + 0,244, 98,154, 76,147,105, 50, 77,166,201, 52,153, 38,211,252, 55, 47, 0, 38,151,254, 91,122, 97, 77,135, 12, 6,131,193, 96, + 48, 24, 47, 31,213, 42, 61,142,214,139, 81,226,217, 20, 60, 12, 6,131,193, 96, 48, 24, 47, 65,121,195, 58,148,192, 34, 90, 12, + 6,131,193, 96, 48, 24, 47, 65,217,121, 14, 75,175, 51,163,197, 96, 48, 24, 12, 6,131,241, 26, 12, 23, 51, 90, 12, 6,131,193, + 96, 48, 24,175,208,100,253, 35,186, 85,156, 37,143,240,240,112, 26, 22, 22, 70,216,161, 98, 48, 24, 12, 6,131,241,159,224,223, +232, 69,120,165,119, 44, 60, 60,156,178, 98,102, 48, 24, 12, 6,131,241,159, 50, 89,255, 23,189, 8, 33,196,187,164,183, 97,241, +226, 93,242, 63,214,235,144,193, 96, 48, 24, 12, 6,227,229, 8, 43,221,243,176,184,249,112, 43, 51, 90, 12, 6,131,193, 96, 48, + 24,175,128,242, 18,225, 1,150,163,197, 96, 48, 24, 12, 6,227,191,132,127,163, 23,121, 97,180, 24, 12, 6,131,193, 96, 48, 24, + 53, 48, 83,229, 68,179, 74,154, 18,153,209, 98, 48, 24, 12, 6,131,193,120, 69,134,171,236, 40,241,108, 28, 45, 6,131,193, 96, + 48, 24,140,215, 96,178, 94,187,209, 34,132,244, 98,154, 76,147,105, 50, 77,166,201, 52,153, 38,211,252,183,155,172,146,191,108, + 82,105, 6,131,193, 96, 48, 24,140, 87, 8,155, 84,154,193, 96, 48, 24, 12, 6,227, 53,193, 38,149,102, 48, 24, 12, 6,131,193, +248,255,108,184,152,209, 98, 48, 24, 12, 6,131,193,120,133, 38,171,172,217, 98, 57, 90, 12, 6,131,193, 96, 48, 24, 47, 65,101, + 57, 90, 4, 64,175, 10,190,116,190, 26, 46,174, 87, 13, 54,234, 60,211,100,154, 76,147,105, 50, 77,166,201, 52,255,183, 52,171, +210,174,142,255,248,111,229,111, 67, 61, 80, 74, 95,219, 2,160, 23,211,100,154, 76,147,105, 50, 77,166,201, 52,153,230,255,210, + 2, 96,114,201,107,214,116,200, 96, 48, 24, 12, 6,131,241,146, 17,172,138,254,199,140, 22,131,193, 96, 48, 24, 12,198, 75,192, +198,209, 98, 48, 24, 12, 6,131,193,120, 77, 16, 66,188,139, 71,132, 47,249,219,130, 25, 45, 6,131,193, 96, 48, 24,140, 87, 67, + 88,113, 84,171,228, 47, 51, 90, 12, 6,131,193, 96, 48, 24,175,138,138,198,209, 34,148, 82,132,135,135,211,226,245,110, 97, 97, + 97,151,217,225, 98, 48, 24, 12, 6,131,241,255,147,127,171, 23,121, 17,209, 10, 11, 11, 35, 0, 34, 88, 81, 51, 24, 12, 6,131, +193,248, 79,240,111,244, 34,188, 50, 78,178, 27, 43,102, 6,131,193, 96, 48, 24,255, 9,254,141, 94, 68, 80,198, 69, 50, 24, 12, + 6,131,193, 96,252, 71,248,191,234, 69, 8, 33,222, 0,194, 0,132, 23,255,125, 49,228, 3, 27, 71,139,193, 96, 48, 24, 12, 6, +227, 37, 61, 34,165,116,235,223,166,222, 41, 49, 97,197, 67,197, 51, 24, 12, 6,131,193, 96, 48,106, 64,121, 35,195,151, 24, 46, +102,180, 24, 12, 6,131,193, 96, 48, 94, 19,172,233,144,193, 96, 48, 24, 12, 6,227, 37, 41, 29,213, 42,221,124,200,123,205, 63, +218,139,105, 50, 77,166,201, 52,153, 38,211,100,154, 76,243,223,110,178, 40,165, 91, 75,150,210,166,139,141, 12,207, 96, 48, 24, + 12, 6,131,241,154, 96, 77,135, 12, 6,131,193, 96, 48, 24, 47, 65,217, 40, 86,233,166, 67,102,180, 24, 12, 6,131,193, 96, 48, + 94,129,217, 42,239,125,214,116,200, 96, 48, 24, 12, 6,131,241, 18,148, 55,188, 3, 51, 90, 12, 6,131,193, 96, 48, 24,175,217, +112, 17, 0,229,246, 28,160,148,158,175,134,112,181,123, 31, 84,165,207, 52,153, 38,211,100,154, 76,147,105, 50,205,127,159,102, + 85,218,213,241, 31,255,205, 6,235, 69, 83, 34,165,244,181, 45, 0,122, 49, 77,166,201, 52,153, 38,211,100,154, 76,147,105,254, +175, 46,172,233,144,193, 96, 48, 24, 12, 6,227, 53, 97,179,209, 34,132,184, 11,133,194, 47,164, 82,233,119, 82,169,244, 7,161, + 80,184,138, 16,226, 92,221, 31,148,203,229,211,189,189,189, 31,123,123,123,167,248,249,249,157,116,116,148,205, 8, 16,147, 46, +132, 16,225, 43, 8,221,241, 8, 33, 65,132,144, 25, 82,169,244,145, 68, 34, 73, 36,132,236, 34,132,204, 32,132,184,189,140,246, +146, 90,100,104,244,140, 65, 71,150,212, 34, 67,203,252,102,152,151,151,215, 85, 66, 72,239, 87, 85, 40,163,100,164,215,112, 57, + 73, 30, 46, 39,201,163,100, 53, 31, 20,206,209,209,241, 29, 31, 31,159,235,110,110,110,169, 62, 62, 62,127, 72, 36,146, 97,213, + 60,158, 30, 94, 94, 94,223,250,250,250,198,214,170, 85,107, 93,241,236,228,255,181,116, 17,147,206,237,197, 68,217,193,158,168, + 59,217,147,239, 58,216,147, 55,122, 19, 34,173,225,185,212,137, 16,114, 80,161, 80,220, 17, 10,133, 39, 8, 33, 67,138,207,175, + 33, 66,161,240,132, 66,161,184, 67, 8, 57, 72, 8,233, 84,195,243,244, 91, 66, 72, 42, 33,100, 89,241,250, 71,190,190,190,234, +102,205,154, 37, 54,107,214,236,231,192,192,192,119,109,213,147,201,100,111,248,250,250, 30,242,243,243, 75,236,208,161, 67,110, +237,218,181, 99,234,212,169,179, 67, 44, 22,119, 99,183, 56, 6,131,193,248, 15, 99, 67,120,176, 63,128,229, 0, 54,222,187,119, + 47,146, 82, 26, 73, 41,141,188,119,239, 94, 36,128,239, 0,172, 64, 5, 33,196,178,239,187,186,186, 46, 90,178,100,137, 62, 61, + 61,157, 42,149, 74, 26, 27, 27, 75,215,206,159,205,245,113, 17,208,250,238,206, 90,111,111,239,103,126,181,107,239,109, 44,231, +205, 6, 16, 80,157,112, 37, 0,103,137, 68,114, 99,254,252,249,154,171, 87,175,106,140, 70,163,134,227, 56, 77, 90, 90,154,230, +252,249,243,154,142, 29, 59,106, 0,124, 2,128, 95,147, 16,232,215, 62,184, 76,127,250,146,126,237,131,203,165,223, 15, 14, 14, +126,200,113, 28, 29, 58,116,168, 1, 64,173,151, 9,171,214, 2,196,141, 29,225, 52, 76,142, 76,203,142,197,148,110,158, 73,135, +201,144, 92, 19, 77, 15, 15,143,163,211,167, 79, 47, 72, 77, 77,165, 6,131,129, 38, 39, 39,211, 41, 83,166,168, 60, 60, 60,118, +219,120, 60, 93, 67, 67, 67, 51,175, 95,191,206,229,231,231,211,136,136, 8,174, 73,147, 38,153, 0,188,171, 27, 82,246,240,240, +216,234,227,227,115,178, 58,139,135,135,199,182,234,150, 81, 91,123, 36,155, 34, 47, 81,122,235, 44, 61, 54,180, 61, 93,219,170, + 54, 29,226, 98,151,223,201, 14, 31,117, 5, 4,213, 56,151,134,119,237,218,181,240,254,253,251,214,156,156, 28,250,240,225, 67, +110,210,164, 73,122, 0,209,147, 38, 77,210, 63,124,248,144,203,201,201,161,247,239,223,183,118,237,218,181, 16,192, 68, 91,183, +179,184,114,179,125,225,194,133,148, 82, 74,151, 44, 89, 66,155, 54,109, 74,123,244,232, 65, 53, 26, 13,165,148, 38, 82, 74,127, +182, 88, 44,227,108,209, 84, 40, 20,239, 76,159, 62, 93,163,213,106,105, 9, 28,199,209,252,252,124,186,113,227,198, 66, 47, 47, +175,147, 0,220, 88,243, 4,211,100,154, 76,147, 53, 29,190,214, 84, 41,111, 0,147, 75, 45, 47,158,149, 85,125,113,212,236,217, +179, 75, 76,213,169, 78,157, 58,221, 28, 55,110, 92,228,184,113,227, 34, 59,117,234, 20, 1,224,204,237,219,183, 35,103,205,154, + 21, 9, 96, 84,101, 5, 1,192,185, 67,135, 14,249, 25, 25, 25, 52, 48, 48,144,214,173, 91,151,102,100,100, 80, 74, 41,189, 53, +188, 37,189,208, 8,244,249,149, 83,244,236,111, 7,233, 36,111, 1,237,236,173, 48,123,123,121,229,184,185,185, 45, 69,241,228, +215, 21, 21, 46,128,193,141, 26, 53, 82, 71, 71, 71,107,158, 60,121,162, 89,180,104,145,166, 71,143, 30,154,208,208, 80,205,144, + 33, 67, 52, 27, 54,108,208,152, 76, 38,205,182,109,219, 52,142,142,142,209,101,205,214,203, 24, 45,129, 64,176,254,222,189,123, +244,217,179,103, 20,192,183, 21,105, 2, 80, 56, 57, 57,245,117,118,118,254,196,201,201,169, 47, 0, 5,165, 20,129,128,188,153, + 2,190, 31, 53,171, 31,124, 98, 84,175,128,141,189, 90,183, 28,230,192,203, 55,111,154, 73,233, 80,223, 26, 25, 45,133, 66,241, +206,140, 25, 51,212, 6,131,129,106,181, 90,170,209,104,168, 86,171,165,106,181,154,142, 26, 53,170, 64, 44, 22, 15,174, 74,211, +205,205,109,241,149, 43, 87, 44, 25, 25, 25,244,202,149, 43,244,228,201,147,116,243,230,205,156,135,135,199,154,234, 94,128, 94, + 94, 94,231,206,158, 61, 27, 25, 21, 21, 21,121,227,198,141, 72,179,217, 28,105, 50,153, 34, 77, 38, 83,228,137, 19, 39, 34, 15, + 31, 62, 28,185,111,223,190, 72,163,209, 24,105, 52, 26, 35, 13, 6, 67,164,191,191,255,233,234,150, 81, 27,123, 60, 55, 94, 61, + 70,233,154, 15,168,234,155,105, 52,255,211,126, 52,107, 74, 23,250, 93,235,218,180,139, 4,199, 75,159, 71,149,105, 10,133,194, +203,137,137,137,220,220,185,115,141, 33, 33, 33,170,241,227,199,235, 13, 6, 3,165,148, 82,131,193, 64,199,143, 31,175, 15, 9, + 9, 81,205,157, 59,215,152,144,144,192, 9, 4,130,243,213, 48, 90, 43, 74, 76,214,229,203,151,105,105, 52, 26, 13,237,209,163, + 71, 98,211,166, 77,127,174, 87,175,222,232,170, 52,229,114,249,192, 57,115,230,104,104, 57,152,205,102,170, 86,171,105, 66, 66, + 2, 87,183,110,221, 52, 0,174,236,102,206, 52,153, 38,211,100, 70,235,181, 25,173,201, 21,173, 87,122, 16,103,205,154, 21, 73, + 41,141,156, 55,111, 94,100,113,100, 75, 4, 64, 94,188, 8, 0,140,156, 51,103, 78, 36,165, 52,114,246,236,217,145, 0,250, 87, + 98,180,250, 31, 56,112,192,180,110,221, 58,234,233,233, 73,189,188,188,232,250,245,235, 41,199,113, 52,227,196,110,122,161, 17, +232,163, 47,198, 82, 74, 41,141, 93,250, 33,189,208, 8, 52,110,203,215,116,204,152, 49, 90,169, 84, 58,170, 18, 3,227,210,178, +101, 75,181, 78,167,211,236,216,177, 67, 35,149, 74,111, 1, 8, 1, 32, 68, 81,175, 74, 57,128,119, 67, 66, 66, 10, 30, 60,120, +160,217,179,103,143, 6,192, 34, 27, 35, 27, 1, 0,186,203,100,178, 33,115,106, 9,159,208,159,190,164,115, 60,113, 31, 64, 19, + 0,238,197,159,241,153, 61,123, 54,165,148,210, 58,117,234, 92,169, 96,223, 21,161,161,161,179,159, 60,121,178,192,108, 54, 47, +136,138,138, 90,208,176, 97,195,185, 3,252,189,219, 31, 25,245, 70, 11,213,215,211, 90,208,213,159,134,174,122,179, 77,175,189, + 35,186,141,122,175,158,219,213,241, 30, 98,237,219, 10,190,122,164,244,111, 58, 54,157,216,181,106,213,186,145,156,156,252,194, + 92,169,213,106,154,154,154, 74,227,227,227,233,213,171, 87,169,183,183,247,133,170, 52,189,188,188, 30, 38, 39, 39,211, 45,107, +215,210,161, 77,130,105, 23, 39, 7,218,213,217,129,182,146,139, 11, 27, 1,173,170,107,180,238,220,185, 19, 9, 32, 18, 64,100, + 78, 78, 78,100, 78, 78, 78,100, 94, 94,222,139,247, 0, 68,170, 84,170, 72,149, 74, 21,105, 52, 26, 35,235,215,175, 95,109,163, +213, 81,140,142,109,197,200,109,111, 15, 93,255, 90,110,105,211,252,221,172,127,142,106, 79,243, 62,232, 65,215,181,168, 69, 59, +217,225, 35, 27,203,189,191,157,157, 93, 4,128,153, 0,248, 0,198,246,237,219, 87, 75, 41,165,125,251,246,213, 2, 24, 91,252, +254, 12,129, 64,112, 30, 64, 95, 91,182, 19, 0,175, 65,131, 6,133, 37,145, 44, 0,215, 26, 52,104, 80,216,180,105, 83,218,180, +105, 83, 90,167, 78, 29, 53,128,177,182,222,208, 2, 2, 2, 98,117, 58,221, 11, 3,152,159,159, 79,211,210,210,104, 92, 92, 28, +141,142,142,166,183,110,221,162,137,137,137,116,255,254,253, 86, 39, 39,167,112,118, 51,103,154, 76,147,105, 50,163,245,250,140, + 86,217,229, 31, 70,235,196,137, 19,180,204,151,190,185,125,251,118,228,156, 57,115, 34,203, 58,181,178,226,243,230,205, 43,137, +122, 45,175,228,225,191, 45, 54, 54,150,142, 29, 59,150, 6, 5, 5,209,160,160, 32, 58,110,220, 56,170, 82,169,168,230,233, 3, +122,161, 17,232,173,183, 91, 81, 74, 41, 85, 63,138,162, 23, 26,129, 70,142,233, 64,239,222,189, 75,107,215,174,125,182,146,223, + 63,254,199, 31,127, 40,119,239,222,157, 1, 96, 87,177,193,106, 7, 96,189, 68, 34,217, 94,220, 92, 88, 23,128,115, 96, 96, 96, +174, 86,171,213, 12, 29, 58, 84, 3,192,183, 18,205,174, 65, 65, 65,207,182,109,219, 70,179,178,178,104,110,110, 46, 93,217,177, + 33,165, 63,125, 73,151,180,170,203,109,217,178,197, 48,115,230,204, 66, 23, 23,151, 19, 0,124,134, 14, 29,106,161,148,210, 46, + 93,186,100,150,167,231,228,228,212,247,201,147, 39, 11,244,122,253,130,252,252,252, 5,185,185,185, 11,142, 29, 57,178,160, 79, +147,134, 99, 85, 95, 79,107,113,100,212, 27, 45,222,172,229, 60,100, 77,239,214, 83, 83,231, 78, 28, 58,175, 67,200, 35,253,138, +143, 47, 13,247,247,252,182, 38, 5,238,238,238,158,110, 48, 24, 40,128,127, 44,207,158, 61,163,174,174,174,201, 85,105,184,184, +184,204,155, 49,114,132,117,112,221, 90,244,217,186,249,212,124,110, 15, 53,159,220, 65,159,126,243, 41, 29,224,229, 86,208, 78, +196,155, 99,235,246,120,121,121,157,187,113,227,198,223,140, 86, 94, 94, 94,185, 70,171,160,160, 32,210,104, 52, 70, 54,104,208, +224,244,203,158,248,237,236, 80,191,171,132,127, 43,106,108,103,170,156,214,131,246, 85, 8, 19, 95,226, 34, 26, 9, 32, 2,192, +152,106,126,143, 7, 96, 69,137,161,250,230,155,111, 40,165,148, 54,104,208,160, 16, 0,239, 37,182, 71, 17, 28, 28, 28, 63,113, +226, 68, 75,163, 70,141,178, 58,118,236,152,127,243,230, 77,122,249,242,101,122,242,228, 73,122,240,224, 65,250,224,193, 3,154, +154,154, 74, 99, 99, 99,105, 88, 88, 88, 62,128,174,236,134,200, 22,182,176,229,191,121, 41,235, 69,254, 53,189, 14,195,195,195, +105, 88, 88, 24, 9, 15, 15,167,197,201,186, 10, 0,226, 86,173, 90, 41, 87,172, 88,177,186,120, 14, 31,210, 84, 64,134,247,148, + 10,239,246,148, 10,239, 54, 21,144,225,132, 16, 66, 41,221,186,116,233,210,197, 77,155, 54, 77, 7, 32, 33,132,120, 85,144, 11, +214,217,213,213, 21,201,201,201, 80, 40, 20, 80, 40, 20, 72, 78, 78, 6,165, 20, 22, 10,152, 41, 96, 48,153,160,211,233,160,231, + 40,116, 28, 80,160,209,192,203,203, 11, 38,147,169,126, 5, 73,197,205,222,126,251,237,250,161,161,161,202, 89,179,102,165, 1, +152, 8, 96,251,132, 9, 19,206, 93,187,118, 45, 84,163,209,228, 70, 71, 71,235,155, 52,105,210, 23,128,215,147, 39, 79,222,217, +184,113, 35,198,142, 29, 11, 0, 93, 43,208,108, 18, 22, 22,118,242,193,131, 7,245,199,140, 25,131,136,136, 8,172, 92,185, 18, +217,217,217, 20, 0, 12, 6, 3,181, 90,173,166, 14, 29, 58,152,214,173, 91,215,166, 75,151, 46, 55,252,253,253,249, 0, 16, 31, + 31,255,180, 2,205,134,126,126,126, 48, 24, 12, 80, 42,149,120,240,224, 1, 28, 20, 10,220, 75,203,246,236,182,102, 75,206, 23, + 71,206, 9, 71,182, 9,117,249,228,141,142,134,101,103, 35, 2, 67,124, 60, 61,141, 38,179, 87,108,122,102, 90, 77,242,238, 68, + 34, 81,114,118,118, 54,140, 70, 35,116, 58, 29, 10, 10, 10,144,147,147,131,236,236,108,164,165,165, 65, 36, 18, 61,171, 50,145, + 62, 55,247, 74,252, 31,151,201,254,239,191, 65,125, 75, 46, 4,135,214, 67,112,244, 59, 4, 24,149,248, 97,254, 20, 7,163,171, +251, 66,133,163, 99,158,179,179,243, 86, 66, 72,131,170,244, 90,180,104,129,156,156, 28,228,228,228,192,213,213, 21,206,206,206, +112,118,118, 70,126,126, 62, 84, 42, 21, 10, 10, 10, 16, 24, 24,136,102,205,154, 97,231,206,157,175, 36,255,240,186,129,198, 89, + 96,157,118, 46, 38, 13, 34,153, 12,254,206,114,191, 54, 14,196,165,146, 36,245, 30, 34,145,232,128,171,171,235, 89, 66,200, 7, +132, 16, 25, 33,228, 3, 87, 87,215,179, 66,161,112, 16,128, 37,148,210,221,213,220,140,101, 11, 23, 46,156,253,228,201, 19,233, +221,187,119, 49,107,214, 44, 44, 90,180, 8, 79,159, 62,221, 68, 41,229,138,127,247,125, 55, 55,183, 19,124, 62,255, 71, 66, 72, + 63, 66, 72, 95, 31, 31,159,158, 85,232, 14,154, 57,115,166,190,101,203,150,177,143, 30, 61, 26,244,199, 31,127,180,250,244,211, + 79, 85, 73, 73, 73,136,141,141,133,183,183, 55,234,212,169, 3,141, 70,131,188,188, 60, 12, 26, 52, 72,225,232,232, 56,138,101, +165, 50, 24,140,255, 86,202,122,145,255, 75,148, 29, 71,171,244,122,185,189, 14,165, 82,233,194,200,200,200,246, 77,155, 54, 21, + 0,216, 15, 0,161,124, 12, 27,212,161,249,246, 35, 91,191,105,122,120,221,252,166,125,154, 6,110, 15,229,163,164, 23,219,137, + 86,173, 90, 57, 71, 70, 70,118,176,183,183,255,168,162,188,123, 0,112,118,118,134, 66,161,128,147,147, 19,156,157,157,193,113, + 28, 52, 90, 61, 10,173,128, 90,111,132, 74,165,130,186,120, 93, 99, 48,161,176,176,240,197,119,203,161,219,196,137, 19,149, 27, + 55,110,204, 74, 79, 79,255, 6, 64,147,177, 99,199, 14,220,176, 97, 3, 46, 94,188,168,239, 23, 20,224,186,180,115,243,197, 33, +233, 79, 23, 4, 9, 49, 9,192,149, 43, 87,174,160, 67,135, 14, 32,132,140, 40, 79, 80, 34,145,124,183,119,239, 94, 73,116,116, + 52, 2, 2, 2,162, 71,140, 24, 49,252,155,111,190,169, 47,211,228,254, 14, 0,150,156,140,232, 15, 63,252,240,203,165, 75,151, + 42,149, 74,165, 73,171,213,122, 12, 24, 48, 0,201,201,201, 72, 77, 77,189, 86,129,201,140,141,138,138,162, 42,149, 10,113,113, +113,136,138,138,146,124,249,229,151,109,172, 60,222,192, 20, 56,188, 55,182, 99,171, 54, 99,218, 53,199,238,235,119, 69, 87, 99, +226,157, 90,213,173,229,124,231,121,122, 61, 51,193,179,154, 20,184, 90,173, 94,191,120,241, 98,141, 70,163, 65, 74, 74, 10,238, +223,191,143, 71,143, 30, 33, 49, 49, 17, 43, 87,174,212,228,230,230,110,168, 74,195, 71, 44,248,236,219, 79, 39, 16,193,195,107, +192,221,203,128, 86, 13,232, 52, 48, 60,142,196,207,143, 51,176,249,208,111,118, 73,201,201, 78,251,246,237,155,232,235,235, 27, + 73, 8, 9,172,170,211, 5, 0,240,120,188,178, 39, 39,120, 60,158, 26, 64,134, 76, 38,123,238,224,224,240,156,199,227,101, 80, + 74, 11, 95,197,201,207,179,192, 4, 62, 31,176,147,128, 39, 20, 84,118,145, 12, 31, 49, 98,196,222,231,207,159,247,137,139,139, +107,191, 97,195,134,197, 98,177,248,222,134, 13, 27, 22,199,197,197,181,127,254,252,121,159, 17, 35, 70,236, 37,132,188, 91,157, +223,111,208,160,193,135, 11, 22, 44,192,202,149, 43,209,172, 89, 51, 4, 6, 6,106, 23, 46, 92,184, 30,192,124, 66,200, 71,129, +129,129,191,127,248,225,135,227,179,178,178,188, 82, 82, 82,154,109,218,180,105,202,250,245,235, 91,167,165,165,137,171,144,238, +212,187,119,111,156, 58,117, 10, 0,210, 41,165,113, 57, 57, 57,150,180,180, 52, 4, 7, 7,163, 77,155, 54,208,104, 52,208,104, + 52,200,207,207,135,159,159, 31, 56,142,107,207,110,229, 12, 6,131,241,255,207,112, 85,104,180,196, 98,177,115,139, 22, 45,224, +239,239,239, 92,156,139, 5, 87, 59,193,220, 79, 38,142,148,202, 35, 79,131, 68, 93,192,136,206,141,165,174,118,130,185,197, 95, + 17,248,249,249,217,183,104,209, 2, 50,153,172, 86, 5,191, 31,145,145,145,129, 22, 45, 90,192,201,201, 9, 10,133, 2, 45, 90, +180,128,201,100,130, 74,173, 70,161, 21,208,154, 57,168, 84, 42,228, 42, 51,161,181, 2, 22, 7, 87, 36, 38, 38,130,207,231,199, + 87,160,233, 29, 16, 16,160,188,119,239,158, 18,192, 21, 0, 83, 23, 45, 90,132, 57,115,230,224,171,175,190,218, 43, 77, 79,232, +189,247,212, 81,215, 95, 23,190,239, 30,104, 71, 70, 2, 48, 61,127,254, 28, 78, 78, 78,144,201,100,229, 26,131, 46, 93,186,180, +148,201,100,216,177, 99, 7, 77, 73, 73,233, 72, 41, 61, 72, 41,141, 39,164,200,236, 73,120, 80, 81, 74,215, 71, 70, 70,182,253, +242,203, 47, 99,122,245,234, 37,108,215,174, 29,150, 44, 89, 2, 0, 39,202,211,204,207,207,255,243,221,119,223, 53, 94,186,116, + 9,143, 31, 63,150, 29, 57,114,100,216,146, 37, 75, 26, 39, 37, 37,217, 31, 63,121,250,205, 93,207, 11,134,125,115,246,170,120, +233,153,136, 63,221, 28,101, 33,245,220, 92,254, 31,123,223, 29, 22,197,213,190,125,159,221,217, 2,236,210, 97,233,160,162,136, + 5, 84,236, 93, 99,143, 29,177,151,216, 99,121, 53, 26, 53,182,128, 24, 53, 70, 99,108, 49,209,196, 22,209,136, 5,141, 98, 39, +246,196,142,162, 32, 10, 34, 8, 72, 89,218,238,178,203, 22,182,156,239, 15,129,151, 24,202, 98,146,223,247, 38,153,251,186,230, +162,204,204, 61,231,156, 57,103,230,158,231, 60,231,121, 16,251,234, 53,223,200,197,221,218,110,106, 7, 62, 51,173,167, 37, 47, +182,155, 5, 55,187,167, 37,239, 65, 59, 62, 51, 85,161, 80, 68,158, 58,117,234,194,194,133, 11,149, 82,169, 20,214,214,214, 40, + 40, 40,192,186,117,235,148,177,177,177,199,181, 90,237,233,218,120,141, 38,218,218,171,158, 55,240, 34,174,226,127,165, 38,138, +187, 58, 62, 6,125, 56, 31,254, 77,154, 64,167,211, 33, 32, 32,128,132,135,135,139,108,109,109, 23,215, 42,122, 56,191,235,110, + 6, 66, 72, 14,165,244,181, 82,169,204,180,180,180,124,197,231,243, 95, 21, 22, 22,102, 82, 74,115,255,132, 14,207,161, 28,124, +220, 41,160, 17, 32,180,196,171, 2,101,214,221, 98, 90, 88,213,177,214,214,214, 83,119,236,216, 97,177,103,207, 30,253,220,185, +115,181, 51,103,206,228,169,213,106,201,204,153, 51,121,115,231,206,213,238,217,179, 71,191, 99,199, 14, 11,177, 88, 28,252, 46, +101,209,235,245,136,139,139,251, 34, 41, 41, 73, 68, 41,253, 8,192,252, 85,171, 86, 77, 74, 74, 74,178,216,190,125, 59,142, 29, + 59,134, 99,199,142, 97,232,208,161,152, 55,111, 30,194,194,194,106,170,151, 85,139, 22, 45,130, 28, 29, 29,113,237,218,181, 44, + 74,233, 43, 66, 72,107,177, 88,108, 61,116,232, 80,244,235,215, 15, 26,141, 6,165,165,165, 21, 66,139,203,229,194,206,206,206, +145,125, 12,178, 96,193,130,197, 95, 43,178,222, 22, 91, 12, 0,148,155,234, 6, 14, 28, 72,106,122, 49, 26,139,164,144,169, 74, +144, 38, 47, 65,122,145,233, 55,251, 76, 38, 83,141, 5,200,202,202, 58,125,235,214,173,169, 65, 65, 65, 76, 86,214,155, 25,177, +160,160, 32,148,148,148, 32,235,209, 29,168, 76,128,168, 97, 32, 84, 42, 21,138,158, 62,132,184, 69, 71, 56, 14, 28,143,175,182, +111,215, 22, 20, 20,236,172,138, 83, 32, 16,240, 60, 61, 61,243, 94,190,124,105, 0, 80,104,107,107,219,215,219,219, 27, 87,175, + 94, 5,128,131, 20,216,136,216, 43,192,181, 40,208, 55, 38, 21,177,143,143, 15,164, 82, 41,148, 74,229,213,170, 56,111,221,186, +149,164,215,235, 3,134, 12, 25, 66,126,248,225,135, 35,132,144, 80, 0,143,151,187,130,251, 40, 35, 23, 42, 35, 44, 8, 33,125, +236,237,237, 63, 10, 11, 11,235, 53,119,238, 92,156, 58,117, 10, 23, 47, 94, 44,197, 27, 95,176, 91, 85, 88,115,228,132,144, 93, +139, 22, 45,234,192,225,112, 62,188,116,233,146,193,207,207, 79, 81, 90, 90,106,108,236,239,207, 9, 13, 95,205,140, 99,206, 5, + 0, 0, 32, 0, 73, 68, 65, 84,159,243,225, 12,187,130, 18, 36,244,107,236,214,137, 16, 32,225,181,244, 85, 82, 49, 45,168,169, + 77,187, 11,153,232,209, 93, 91,116,155, 58,122,176, 88,212,176, 25, 84, 79,238,184,238, 58,122,246,171, 30,150,204,160, 92,181, + 97,168,173,173,109,200,213,171, 87,231,232,116,186, 6, 66,161,240,133, 76, 38,219, 82, 92, 92, 92,171,200, 98, 24,102, 96,160, +151,167,189,172,176, 16, 22,101,150, 40,133,222,132,124,173, 1,137,118,126, 24,235,233, 85, 49, 13,154,147,147, 3, 87, 87, 87, + 98, 52, 26, 7,215,196,121,241,226, 69, 12, 26, 52,168, 92,120,130, 16, 2, 66, 72,190,191,191,127,174, 80, 40, 44,224,243,249, +138,141, 27, 55,106, 52, 26, 13, 24,134,177, 48, 26,141,220, 63,210,225,219,139,136,164,155, 37,249,102,230,144,158,189, 91, 54, +107, 66,175,223,123, 68,138, 74, 52,251,106,176, 2,126,221,168, 81, 35,166,176,176,240, 52,128, 68,189, 94,127,232,200,145, 35, + 22, 19, 38, 76,208, 28, 61,122,116, 28, 0,223, 77,155, 54,133, 40,149,202,239,234, 82,142,228,228,228,175,215,174, 93,251,201, +138, 21, 43,112,224,192,129,185, 0,150,150, 89,186,134,134,133,133, 97,227,198,141, 56,112,224,128, 41, 49, 49,241,172,201,100, + 74, 94,184,112, 97, 11, 23, 23,151,252,236,236,236,228,240,240,240,234,104,219,244,239,223, 95,123,243,230, 77, 65,113,113,241, + 13, 66,200, 71,179,102,205,154,214,190,125,123,197,232,209,163,197,133,133,133, 50, 43, 43, 43,193,238,221,187,237, 25,134,129, + 74,165, 2, 33, 4,197,197,197, 58,246, 81,200,130, 5,139,255, 85, 84,167, 69,254, 14,168, 72,183, 83,213, 59,181,170, 10,150, +148,148,228,166,167,167, 55,121,253,250,181, 1,128, 1, 0, 10,116,134,207,215,238,142,218, 19,220,161,145, 40, 91,175,199,201, +123,241, 37, 5, 58,195,231,229,150,137,215,175, 95, 23,191,122,245,202, 90,173, 86, 43,171,185,214,175,223,124,243,141,250,202, +149, 43,214, 41, 41, 41, 48, 26,141,104,221,186, 53,158, 63,127,142,162,196, 56,136,154,180,134,168,251, 32,196, 63,184,135,216, +139, 49, 72, 85,234, 12,207, 86,174,149, 43, 85,170, 48,157, 78,119,178, 42, 66, 30,143, 87,248,166,126,212, 8, 0, 10,133,226, +177, 82,169,236,234,226,226,130,132,132, 4,145,202,136,121, 33,203,190,218, 70, 41, 53,242,223,172, 20, 91, 48,122,244,104,220, +191,127, 31, 0,238, 87,197,169, 80, 40,230, 78,159, 62,253,202,254,253,251,153,148,148,148,126,123,246,236,233,247,236,217, 51, + 74, 10,211,141, 55, 75,120,240,157, 52,175,237,183, 62,254, 23, 7, 13, 26, 4, 55, 55, 55,236,222,189, 27, 91,182,108,209,207, +158, 61, 59,105,203,150, 45,109, 1, 28,170,230, 38,200, 1,156,119,114,114,154,211,188,121,243, 98,149, 74,133,130,130, 2,100, +101,101,193,193,209,145, 99, 0,167,147,179,157,221,161,211, 57,197, 34,230,252,109,220,201,204,174,209,154,213,145,207, 76, 28, +211,163, 85,183,255,172, 88, 38,198,205,147, 32,211,195, 64,247,124,134,249, 31,132, 88,107,180,135,186,183, 97,152, 9,114,131, + 33, 2,192,177, 58, 42,242,254, 93,187,118, 61,188,118,237, 90,203,229, 27,214, 98, 83, 19, 15, 24, 10, 10,144,167, 53, 34, 95, +107,128,162, 40, 17, 9, 9,241,112,116,116, 66,106,106, 42, 52, 26, 13,158, 62,125, 74,185, 92,238,233,218, 44, 58,149,174, 81, + 62, 93, 40, 19, 10,133, 5, 60, 30, 47,151, 97,152,194,148,148, 20,149, 70,163, 1,135,195, 17, 25,141, 70, 75, 51,202,234,233, +228,228,180, 16, 64, 48,128, 83,197,249,249, 91,131,120,176, 3,131, 30, 13, 36,142, 3, 86,206,156,224,228,237, 46,145,165, 36, +189,208,239,188,240, 75,190, 70,139,207,107, 24, 36,209,149, 45,146,132,144,249, 71,143, 30,157, 6, 96,111, 89,222,173, 24, 0, +223,190,195,248, 91,121,252,248,241, 79, 86,172, 88, 1, 75, 75,203,138,224,169,150,150,150, 22, 0,240,227,143, 63, 34, 33, 33, +161,125,185,191, 22,128,195,102,112,250, 6, 6, 6,166, 68, 69, 69, 9, 0,184,207,154, 53,171,227,182,109,219,240,193, 7, 31, +228,197,199,199,119,120, 99,129, 37,190, 31,126,248,225,221, 3, 7, 14,216,155, 76, 38, 20, 21, 21, 65,167,211,189,100, 31,229, + 44, 88,176, 96,197,214, 95, 98,205, 10,162,148,198,150, 5,246, 30, 8,224, 12,165, 52,251, 55, 66,171,188,130, 0,160,209,104, +190,246,241,241,177, 5,224, 5, 96, 16,128, 83,143,141, 56,134,103,105,136, 75,205, 92, 86, 46,188, 30, 27, 43, 94,226,163,238, +222,189,171,171, 87,175,222, 35, 0,159, 85,243, 34, 83, 56, 57, 57,173, 89,184,112,225,186, 53,107,214, 48, 12,195,224,202,149, + 43,184,117,225,140,233,233,141, 59, 36, 77,109, 84, 43,238, 45,122,205, 80,227,109, 23,117,225,147,135, 37, 56, 78, 41,205,172, +169, 98, 42,149, 42, 61, 57, 57, 89,208,188,121,115,227,195,135, 15,157, 40,165, 39,206,158, 61,219,117,201,146, 37,184,122,245, +234,161, 75, 26,227, 88, 74, 77, 71, 8, 33, 12,128,177,131, 7, 15,254, 40, 36, 36, 4, 45, 91,182, 44, 5,112,160,154,114,222, + 36,132,140,205,200,200,216,181,120,241, 98,187,197,139, 23,131,195,225,144,202,109,149,159,159,143, 71,143, 30, 97,244,232,209, +242, 95,126,249,101, 94,175, 94,189,166,116,233,210, 5,231,206,157,115, 55,227,102,252,250,244,233,211,225,182,182,182, 36, 57, + 57, 25, 10,133, 2, 55,111,222,228,249,248,248,116, 58,114,228,136,176, 65,131, 6,136,127,242, 4,103,199,142, 29, 72, 8,241, +161,148,190,170,138,199,146, 71,230, 76, 26, 57, 88,172,189,121, 26,136,189, 14, 0, 80, 42,138,161, 78,141, 67, 72,187, 70, 54, + 87,159,166,205,194,155, 85,152,117,130,131,131,195,252, 77,155, 54,137,252,252,252,240,241,218, 13, 88,184, 98, 9, 62,148,248, + 64,241, 58, 29,249, 70, 64, 96,101,133, 53, 43, 87, 96,240,200,209,144, 72, 36,120,242,228, 9,221,189,123,183, 74, 46,151,111, + 52, 71,104,113,185, 92, 16, 66, 0, 64, 37,151,203,149, 2,129, 64,206, 48, 76,129,209,104,204,141,222,190,181, 53,167, 32,119, + 50, 33,132,107,105,226, 68,151, 45,182,168,210, 63,207,142, 16,159,134,190,190, 79,190,223,189, 91,212,190,125,123,114,239,222, +189, 57,179,102, 76,159, 22, 28, 88,255,236,176,222,221,224,234,230,170, 53,149,234,100,103, 79, 69,235,191, 61,122,246,154,142, +152, 22, 63,160, 84, 93,135,175,147,195,149, 69, 15, 33,100, 12,128,145, 0,162, 40,165, 7, 9, 33,147, 0, 12, 3,112,188, 58, + 7,121, 66, 8, 7,192,119, 35, 70,188, 73, 38,160, 86,171, 75,202,255,223,162, 69,139,202,215, 50,213,229, 30, 89, 89, 89, 89, + 91, 88, 88,188, 56,119,238,156,229,232,209,163,237,215,173, 91,247,250,131, 15, 62,240, 56,116,232,208,215, 0, 82, 9, 33,254, + 0, 26,170, 84, 42, 35,135,195,129,191,191, 63,118,236,216,161, 52, 26,141,123,217,199, 56, 11, 22, 44,254, 14, 98,235,111, 88, +236, 32, 0,177, 0, 6,150, 45, 32,156, 1,160,230,164,210, 0,214,198,197,197,149,199,208,154, 85, 83,120,135,165, 75,151, 62, +184,127,255,254, 3, 0,235,107, 91,230,200, 48,204,137,217,179,103, 83, 23, 23, 23,165, 68, 34, 57,193,227,114,167,121, 89, 34, + 8,239,176,212, 29, 64,215,136,136,136,161, 95,127,253,245, 64, 0,237, 1,240, 60, 60, 60,178,114,114,114,148,191,252,242,139, +178,115,231,206, 74, 39, 39, 39,105, 96, 96,160,114,211,166, 77, 74,189, 94,175, 92,184,112,161, 18,111,197,251,170,134,219, 2, +192, 28,129, 64,112,162,105,211,166,113, 43,135,188,167,223, 48,111, 26,157,212,200, 89, 9,224,107, 0,179, 1,216, 1,224,133, +132,132,252,252,244,233,211, 11,129,129,129,187,204,224,117,111,222,188,249,229,195,135, 15,223,143,138,138,122,176,120,241,226, +251,142,142,142,153, 73, 73, 73, 38,141, 70, 67,139,138,138,168, 76, 38,163,103,206,156, 49, 58, 56, 56,108,175,142,167,171,144, +155, 77, 47, 30,172, 50,132, 67,198,138,241,180,179,128,243,250, 93,150,161,138, 68,162,194,130,130, 2,154,147,147, 67, 83, 82, + 82,232,241,227,199,105,255, 78,237,104,228,135,193,244,224,212,161,116, 99,255,118,180,189,181,133,202,213, 90,124,223,218,218, + 90,106,103,103,247, 29,128, 70,181,133,119,208,106,181, 21,225, 27, 60, 61, 61, 31,248,251,251, 71, 5, 6, 6,126,117,234,212, +169,249,155, 55,111, 30,218,179,190,207, 39,235,250,117, 82,151,196, 28,165,197, 71,190,166, 75, 91,251,105, 2,185, 24, 89,109, +184, 16, 71,135,136,107, 87,175,154,202, 3,116, 26, 12, 6,122,242,196, 9, 58,106, 64,159, 56,249,249, 31,191,191, 17, 54,247, +240,194,214,126, 39, 59, 91, 96, 12,222, 10, 84, 90,213, 22, 36,134, 99, 55, 27,206,142,247,189, 29,178,187,218,114,190,238, 96, + 13,251, 74,247,108,148,159,159, 95, 10,165, 52,187, 73,147, 38, 41, 0, 14, 54,105,210,164,242,223,147,107, 11, 78,186,106,213, + 42,138, 55, 89, 20, 56, 0, 66,215,174, 93,251,128, 82,250,160, 81,163, 70, 55, 41,165,104, 41,130, 83,119, 91,206,247, 67,124, + 93, 10,186,219,114,190,111, 41,250,125, 52,119, 74, 41,124,248,104,220,213,217,234,198,208, 70,110,197, 61, 60,108,175, 31,220, +183,103,195,251,239,191,191, 27,192,118, 0,159, 57, 58, 58,222, 24, 51,102, 76,194,129, 3, 7, 18, 54,109,218, 84,154,148,148, + 68,167, 76,153,162, 18, 10,133,159,177, 75,199,217,141,221,216,141,221,254,242,200,240,110,117, 9, 88, 58,248,147, 79, 62,121, + 64, 41, 45,143,165, 53,161,138, 99,134,172, 88,177,226, 1,165,180, 60, 58,124,239,218, 2,154, 1, 88,181, 99,199, 14, 42, 20, + 10,191,255,163, 65,210, 0,184, 14, 27, 54,172,131, 66,161,104,235,226,226,210,182,204,234,228,229,228,228,148,114,232,208, 33, +165, 90,173, 86, 82, 74,149, 6,131, 65,121,255,254,125,101,143, 30, 61,148,120, 19, 2,194,172, 8,225,149,183,229,174,184,121, +111,229, 84,186,220, 21, 55,223, 58,119,252,222,189,123,207,189,124,249,242,180,141,141,205, 18, 51, 3, 87,122, 57, 59, 59,135, + 58, 56, 56, 92,112,114,114, 90,238,224,224,144, 93, 90, 90, 74,139,138,138,232,243,231,207,233,213,171, 87,233,173, 91,183,168, +131,131, 67,102,117,229,236,101,201,220, 46,218, 48,135,154,246,174,165,186,109,203, 40, 0, 42,219,188,148,230,127, 19, 78,239, + 77,239, 71,123, 88,112,127,125,151,160,115,118,118,118,223,157, 56,113,194,148,156,156, 76,163,163,163,233,153, 51,103,232,188, +121,243,104, 99,119, 55,109, 7, 1, 39,183,171,144,185,240, 46, 1, 75,181, 90,237, 3,133, 66,241, 64,169, 84, 62,104,218,180, +233,131,118,237,218, 69,117,232,208,225,171,163, 71,143,206, 95,183,110,221,208, 94,214,194,231, 37, 49, 71, 41, 93, 60,128,210, + 57, 93,232,139,105, 61,232,123,150,204,163,106, 57, 93, 92, 50,203,163,181,171, 84, 42,122,253,250,117,122,249,242,101,234,234, +228,164,232,102,201,157,209, 89,136,238,157,109, 96,103,110, 57,123,218,114,246,221,254,230,115,163,250,220, 1,250,227,164, 1, +134, 30,118,156, 29,149,142,139,164,148,102,143, 24, 49, 34,149, 82,154,125,252,248,241, 12, 74,105,118,112,112,112,106,153,105, +248,112, 85,156,111, 5, 39,221, 91, 38,178,230,172, 90,181,234, 1,165,244,193,170, 85,171, 30, 0,111,130,168,118,183,229,236, +191,179,107,163, 73,123,102, 63, 61, 58,101,160,177,187, 45,103,127,149,229,180, 99, 78,199,238,221, 76,117, 23, 14,210, 19,243, +198, 25,187,184,218, 92,243,243,243,219, 56,127,254,252,168, 91,183,110, 61, 54, 26,141, 9, 41, 41, 41, 9,219,183,111, 79,232, +216,177,227, 77, 71, 71,199, 56,129, 64, 48,155, 13,138,200,114,178,156, 44, 39, 27,176,244,255,207,198,212, 48,117,114,154, 16, + 34,162,148, 46, 12, 9, 9,193,250,245,235, 71, 5, 4, 4,140,241,240,240,112, 6,128,172,172,172, 18, 0,138,144,144, 16,132, +134,134, 98,195,134, 13, 95,149,249,178,252, 95, 58,159,229, 16, 66, 60,231,206,157, 43, 93,183,110,157,105,202,148, 41, 77, 40, +165, 79, 8, 33,141,199,141, 27, 55,135, 97,152, 16, 31, 31,159,192,236,236,236, 60,181, 90,125, 16,192,174,242, 57,211,186, 66, +200,129,177, 77, 61, 55, 92,224,192, 88,105,106,104, 64,104,104,232,232,224,224,224,210,205,155, 55, 27, 20, 10,197, 41, 51,203, +157, 1, 96,117,249,223,142,142,142,174,143, 30, 61,154, 45,145, 72, 56, 41, 41, 41,208,106,181, 72, 78, 78, 54, 1,248,169, 58, + 14,165,129,110,253,246,248, 37,255,133,227, 7,217,148, 36, 62, 4,159,203,133,158, 39, 64,206,237, 11,216,123, 61, 81,161, 42, +197,182,119,169,167, 76, 38,251,114,222,188,121,227,150, 44, 89, 98,225,227,227, 67,126,253,245, 87, 28, 57,114, 68, 43,149, 74, +251, 83, 74,175,189,235,189, 50,153, 76, 16, 8, 4, 0,128,165, 75,151,130,195,225,240,164, 82,169,128, 16, 34, 36,132, 88, 17, + 66,184,250,151, 9, 48, 41,138,144, 91, 36, 67, 70,174,172, 70, 62,163,201,116,228,206,157, 59, 11, 90,181,106,197,185,119,239, + 30,242,242,242,144,156,156, 76,141,148, 30,190, 86, 98,248,174,174,229,179,114,112, 28,214,210, 94,200, 17,236, 11, 69, 55, 29, +135,187,211,132, 17, 0,230,148,237,222, 75, 8,225, 3, 40,104,218,180,105,207,167, 79,159, 90, 54,109,218, 84,157,152,152,120, +142, 16,226, 1, 96,127,149,211,187,150,150,249, 0,242,143, 31, 63, 14, 0,211, 41,165, 38, 66, 72,235,176,176,176,236,235,215, +175, 99,213,170, 85,185, 0,118, 0,128,216,222,113, 72,160, 45,159, 8,126, 88,133,142, 90,112,182,153,104,149,139, 11,196, 18, +151,247,154,139, 56,224,237,249, 20,109, 93,253, 57, 2, 67,105, 64,120,120,248,117,165, 82,169,141,140,140,212, 77,158, 60,153, +155,148,148,116, 23,192,141,178,105, 77, 3, 59, 17,193,130, 5, 11, 22,127,185,143,214,219, 97, 29,170,246,209,170, 66, 16,252, + 72, 8,201,223,176, 97,195,123, 0,108,142, 30, 61,218,166,113,227,198, 0,128,231,207,159, 91,249,251,251, 63,107,209,162,197, + 83, 0,183, 41,165,167,205, 44, 79,249,131,223,244, 39,213, 47,126,201,146, 37,228,192,129, 3, 6,224,141, 8, 42,123,185,108, + 5,176,181, 38, 63,159, 63, 10, 63, 63,191, 62,159,126,250,169,110,207,158, 61,198,207, 62,251,236, 20,165, 52,233, 93,120, 10, + 11, 11, 55, 77,152, 48, 97, 92, 88, 88,152,173,181,181, 53,137,139,139, 51,237,221,187, 87, 81, 88, 88,184,169,186,115,238,232, + 12,145,221,133, 76,176, 76,117,180,207,168,160,122,214, 79,231, 14,196,243, 59, 55,112,240, 90, 66,113, 82,161,250,226, 61,131, +225,200, 59,138,215,100, 66, 72,203,208,208,208,165,165,165,165,193, 60, 30,239,174, 66,161, 8,167,148,254,250,174,237,164,215, +235,115, 27, 52,104,240,246,117,244, 38,147,137, 82, 74,121, 6,131, 65,228, 80,106, 58, 19,182,101,207,135,147,253,109,133,249, +249, 50,252,144,164,208, 86, 90,108,241, 59,228,229,229,125, 53,109,218,180, 15,194,194,194,236,109,108,108, 72,124,124, 60,141, +140,140, 84,230, 21, 20,172,127,151, 50,150, 20, 21, 94,140, 62,118, 52,164,139,206, 64, 34, 82,139, 41,195, 37,231, 42,149,245, + 18,128, 75,101,131,105, 60, 33,100, 4,128,147,148,210, 31,106,228, 44, 41,185, 8, 64, 48, 98,196, 8,196,197,197,141, 2,240, + 35,128,195,171, 87,175,238, 16, 26, 26,138,240,240,112,132,133,133,245, 1,112,161,184,168,224, 76,212,225,131, 99,123,232,245, +156,136,180, 98, 19,151, 67,206, 86,201,153,159,123,233,220,165,152, 33,109,109,220,201,119, 23,110,152, 74, 76,244,225,164, 73, +147,138,116, 58,221, 5, 0,219, 0,196, 81, 74,217,213,133, 44, 88,176, 96,241,127,107,248,249,174, 10,225,245, 93,173, 66,171, +236,228, 24, 0, 49,132, 16,215,206,157, 59,175,181,181,181, 21, 25,141, 70, 20, 22, 22,190, 6,176,165,204, 58, 83, 23, 68,202, +229,242,197, 66,161,112,231,159, 84, 57, 13, 33, 68,210,180,105, 83, 30, 0,109, 21,251,255, 28,145, 69,113, 60, 57, 41,217, 6, + 20,199,203,255,149,148,148,116, 56, 48, 48,112,104, 98, 98,226, 47,148,210,179,127,160, 14,175, 8, 33,173,230,205,155,247, 49, +128,161, 0,126, 42, 44, 44,220, 84,157, 35,124, 57,174,105, 13, 33,109, 25,102,220,195,180,156,217, 58, 19,173, 47,224,112, 94, +170, 74,233, 55,119, 13,134, 31,255, 96,155, 38, 3,152, 82,182,253, 97,228,231,231,215, 26,228,147, 16, 66,174,189,200,186,157, +144, 33,173,106,177, 69, 85,101,204, 38,132,180, 92,184,112,225, 66,147,201, 52,146,195,225,156,200,207,207,175,181,205,170,181, +228,233,140, 11,118, 94,185,199,223, 98, 52,245, 22,114, 56, 23,148,122,227,178,106,174,123, 16,128, 89,209,225, 95,188,120,241, +125,120,120,120,243,176,176, 48,124,251,237,183,229,203, 46, 99,194,194,194,164, 70,163,209, 43, 60, 60, 28,187,118,237, 50, 0, +128, 86,111, 90,180,231,250, 67,206, 78,147,105, 0,143,195, 57,167,213,155, 22, 85, 41,202, 53,134, 57,219,162,206,151,150,154, + 76,125,184, 32,231,178,117,166,149, 90, 45, 77, 99, 31,115, 44, 88,176, 96,241,191, 9,198,220, 3, 41,165, 57,127,198,139,151, + 82,154, 2,192,102,249,242,229,127,166,146,148,254,213, 13,245,105, 22,253, 26,192,215,159,126, 17, 89,249,186,119,129,218,131, +138,154, 43,182, 0,252,167,108, 51, 27,247, 12,134, 67,168, 38,164,196,223,236,107,128, 2, 56, 90,182,153,123, 78, 38,222,228, +178, 92,240, 71,175,255,176,132,102,227,205, 42,194, 63,179, 78,177,120,179, 10, 5,175, 95,191,174, 92,207,199,101, 27,202, 99, +202,221, 81, 81, 41,128,113,102,150,115, 20,251,232, 98,193,130, 5,139,255, 29, 84, 53,117, 88,103,161,197,130, 5, 11, 22, 44, + 88,176, 96,193,162,202, 15,235,106,125,131, 9,128,222,213,156,100,182, 99, 59, 33,164,247, 59, 20, 42,134,229,100, 57, 89, 78, +150,147,229,100, 57, 89,206,127, 23,103,109,220,255,215, 11,235,254, 47, 84,216, 95, 25, 87,130, 93,250,202,114,178,156, 44, 39, +203,201,114,178,156, 44,231,191,118,227,176, 6, 63, 22, 44, 88,176, 96,193,130, 5,139,119, 7, 33, 36,168,236,167, 27, 33,100, + 70, 89, 42, 30, 0,213,248,104,241,218,175,205, 53, 24, 12, 18, 0, 96, 24, 70,170,191,187,210,173,166, 11,240,128, 94, 6,224, +251, 50,194,233,250, 55,203,225,223,230,188,100, 48, 24,236,203, 56,139,244,119, 87,246,171,145,179,221,154, 11,191, 57,254,206, +138, 62, 85,212,140,203,107,183, 38,235,173,178,186,155,221, 50,101, 57, 18,255,234,114,254, 93, 56,255,205,224,119, 88,155,171, +215,191,233, 71, 60, 30, 35, 45,189, 83,115, 63,226,183, 95,147,245,155,227,111,175,112,169,137,211,202, 82, 88,208,208,195,249, +171,154, 56, 83,178,242, 23,170, 74, 52,142, 53,113,214,117,108,122,185,185,245, 50,150,141, 77, 46, 48, 61, 35, 43,235,210,255, + 82, 95, 34,132,180, 1,176, 18,128, 77,165,127,199, 81, 74, 63, 98,123, 37, 11, 22, 44,254, 70,168, 54, 5, 79,149, 66,203, 96, + 48, 72, 30,156, 8,131, 74, 11,244,154,184, 70,226, 59,108,215,239, 86,181, 25, 52, 69, 2, 89,124,100, 32, 87,175,176,119,102, + 74,109,178,178,178, 72,217,131,243,123, 0,222, 85,112,218, 63, 56, 17,134, 18, 29,208,109, 76,184,189, 55, 96,147,199,231,127, +108, 41, 18,245, 84,171,213,205, 1,192,210,210, 50, 94,173, 82, 93,113, 46, 45,221,244,246,241,213,213,172,114, 89,223,155,176, + 70,210,100,216,174,121, 70,147, 73,240,250,222,206,110,154,252, 36,134,103,208,238, 88, 14,156, 11, 3,140,230,180,212,111,174, + 59,114,153, 35, 15,120, 79, 96, 97,209,210,206,222,190,171,137,210,166, 38,147,137, 24, 13,134, 4,133, 92,126,195,100, 48, 60, + 50,232, 84,142, 15, 78,125,110,170,169,156,111,215,101, 36,192,156, 0, 66, 68, 98,113, 79, 46,143,215, 9, 0,140,122,253,175, + 42,165,242,202,112,224,152, 57,117, 55,183,125,222,245,248,127, 27,244,122,131,228,229,133, 48,104,245, 64,208,136,207, 37, 45, +198,253,112, 8, 0,116,210, 71, 46,202,164, 83,237, 1, 64,212,112,208, 29,161,107, 80, 46, 0, 48,175,178, 37,207,163, 87, 64, +171, 7,154, 14, 10,151,212,198, 57, 57,244,136,227,146, 25,193, 66, 0,184,120,252,235,198,151,163,190, 29, 0, 0,239, 5,207, + 58,215,119,196,220,231, 0,176,225,187, 40,199,195,159,143,170,145,211,188,177, 41,231,203,147,162, 27,233, 20,217,118, 94, 34, +198, 53, 41, 41,137, 3, 0,238,238,238,102,141, 77, 79,192, 54, 27,152,195,225,114,187, 54,108,212, 40, 8, 0, 77,121,241, 34, +214,104, 48,220,116, 3,118,252,201,125,105, 30,165,191, 13,206, 90,150, 11,147, 5, 11, 22, 44,254, 78, 56, 83, 38,174,206,188, +189,163,218, 85,135, 42, 45,112, 45, 25,232,222,161, 5,102,140,123, 95, 92,121,223,177, 93,225,222, 73,247,126,106,178,231,135, + 77,156, 22, 45, 90,224,229,203,151,102,149,162, 68, 7, 92, 77, 2, 32,123,106, 93, 36, 18,189,216,188,113,163, 77,159, 62,125, + 24,119,119,119, 16, 66,144,147,147,211, 33, 38, 38,166,205,130, 5, 11, 62,132,236,105, 81,137, 14,197, 87,205, 8, 1, 90, 94, +214,230,141,235, 97,229,220, 81,182, 0,176,124,226,142, 54,247,158,229, 58,188,120,241,162,215, 39,159,124, 82,192,189,114,229, + 91, 39, 96, 95, 46,144, 97, 78, 57, 15,156,190, 99, 97,155,253,163,239,248,185,115,143, 55,106,212, 72,236,227,227, 67,172,173, +173,193,229,114, 81, 84, 84,228,253,228,201,147, 1,119,239,222, 85,197, 92,251, 94,112,255,238,144, 20,169, 69,123,141, 89,117, + 87,103, 89, 92,180,182,142,159, 48,124,184,231,168, 81,163, 44, 26, 54,108, 8, 0,120,241,226,133,223,177, 99,199,198, 28, 63, +126, 60, 20,234, 44, 67,137, 14,154,218,234, 94,193, 9,192, 2,232,100, 39,145,140,231,242,120,205, 13, 6,131, 71,153,181,225, +181, 81,175,143,151, 73,165, 7,223, 62,158,197,239,161,213, 3, 79,179,129,222, 93,131, 48, 33,184,183, 8, 0, 62, 25,189,182, +195,171,212,100,190, 78,167, 67, 99,255,166,157, 63,251,252,171, 11,224,112, 16, 17, 21, 83,113,188, 57,156,113, 79, 95, 34,236, +179,205,200,122,124,172,131, 81,158,220,179, 88, 33,231, 2,128,141,173,109,240,177,200, 31,175,184, 7,134,220, 78,206, 47, 53, +139,179,166,177,121, 62,114,187, 91,230,147, 43,205,190,185,184,151,231,237,237,141,199,143, 31,215,109,108,202,159, 89,155,220, +220, 18, 54, 45, 94,236,218,173, 91, 55,136,197, 98, 48, 12, 3,131,193,208,251,230,205,155,189,195,194,194,102, 65,254, 76,101, +238,216, 52, 3,155, 8, 33, 61, 39,207,152,231,246,254,208, 16, 4,247,239,204,118, 68, 22, 44, 88,252,173, 64, 8,153, 81,182, +234,176, 98,229, 97,229, 85,136, 85, 10, 45,134, 97,164,125, 38,173,147,116,109, 31,128,123,143,158,203,211,210,179,149,229,251, + 10,227,143, 53, 30,218,217,163,217,245,235,215,160,213,106,241,235,175,191,226,209,163, 71, 72, 77, 77,197,204,153, 51,181, 12, + 48,189, 26,206,162,110, 99,194,237, 33, 79, 18,251, 9,158,213,143, 73, 76,228,106, 52, 26, 92,191,126, 29, 69, 69, 69, 16, 8, + 4,240,244,244, 68,223,190,125,153,196,196, 68,135, 94,125,250,219,118,235, 63,246, 37,108,253,148, 12,195, 20, 85, 87, 65,134, + 97,164,189, 38,174,145, 52,243,171,135, 23,105, 89,242,149,159,239, 81,154, 76,148, 73, 73,125, 85,122,237,218, 53, 4, 5, 5, +225,210,165, 75,142,133,133,133,159,238,216,177, 99, 37,239,139,111,182,234,117, 5,139,106,224, 43,234, 54, 38,220,222, 81,122, +212,231,242,249,147,252,248,248,120,254,206,157, 59, 81, 80, 80, 0,129, 64, 0, 59, 59, 59,184,186,186,162,113,227,198,100,249, +242,229,226, 65,131,226,241,159,233, 33, 62,165,190,211,158, 85, 87,206,138,186, 43, 95, 89, 57, 41, 46, 54,140, 58,115,134,211, +165, 75,151,223,124,182, 55,104,208, 0,253,250,245,179, 24, 63,126,124,195, 81, 99,198,153,186, 13,156,252, 2, 98,159,146, 90, + 57, 85, 25,150,142, 37,183,220,123,143, 25,115, 42, 60, 60,220,206,213,213, 21, 34,145, 8, 0, 32,151,203, 61,211,210,210, 58, +132,134,134,142,184, 19, 23,201,116, 27,148,145, 5,145,151,186,166,246,252,183,130,199, 99,164,229, 86, 36,107,145,101, 81, 70, +102,174, 10, 0,116, 58, 29,116, 58, 29,180, 90, 45,102,207,154,201,157, 62,162, 93, 35,159,174,243, 30,166,190,206, 45,108, 26, +115,219,161,252,220,218, 56,153,146, 84,153, 44,253,231,233, 97,139, 23,187,186,184,252,119, 70, 48,226,192, 1,110, 97, 97, 97, +239,176,176,176,102,212,170,135,172,233,160,112,187,154, 56,107, 26,155,178,231,103,234,127, 54,183, 95,203, 93,159, 71,195,104, + 52,226,214,173, 91,184,126,253, 58,190,250,234, 43,122,238,220, 57,185,141, 72, 84,203,216,124,102,221,197, 45,199,247,139, 47, +142, 19,161, 80,136,159,126,250, 9,137,137,137,224,112, 56,104,209,162, 5, 38, 76,152,128,222,189,123,187,206,152, 49,147,118, +235, 63, 58, 5,182,254,197,127,164, 47, 17, 66, 56, 0,230, 45, 11,251,194,109,226,180, 57,216,240,217,114, 86,104,177, 96,193, +226,111,107,205,170, 54,196, 3,165, 20,209,209,209,180,108,235, 78, 41, 5, 5, 56, 13,134,237, 58,124,244,190,233, 76,131, 97, +187, 14, 83,128, 67, 1,142, 13, 80,175, 85,171, 86,122,153, 76, 70,239,222,189, 75,103,207,158,173,218,186,117,235,149, 51,103, +206, 28, 51,148,150,238,118,119,115,251,146, 2,156, 42, 61,239, 1,142, 15, 96,107,101,101,149,151,158,158, 78,207,158, 61, 75, + 87,173, 90, 69, 15, 30, 60, 72,207,157, 59, 71, 99, 98, 98,232,185,115,231,232,225,195,135,105, 92, 92, 28,125,254,252, 57, 21, +137, 68,121, 62,128,109, 13,156, 92, 10,112, 27, 15,219,185,232,248, 61,125,184,255,176, 93, 11, 40,192,181, 7,154,180,106,213, +202,120,236,216, 49, 26, 17, 17, 65,127,248,225, 7, 26, 23, 23, 71,243,243,243, 41, 35, 20,229,149,159, 87, 93, 57, 41,192,241, +240,240,200,147,201,100,212,203,203,139, 10, 4, 2,234,226,226, 66, 27, 55,110, 76, 59,116,232, 64, 7, 12, 24, 64,199,141, 27, + 71, 63,253,244, 83, 42,147,201,168,133,133, 69,110,249,121,213,113, 6, 1,150, 34,145, 40,253,193,131, 7,180, 58,168,213,106, +154,159,159, 79, 47, 92,184, 64, 69, 34, 81,122, 16, 96, 89, 19,167, 37,208, 58, 48, 48, 48, 47, 63, 63,159,150,150,150,210,244, +244,116,250,228,201, 19,154,152,152, 72,211,211,211,169, 90,173,174,224,126,254,252, 57,245,245,245,205,179, 4, 90, 87,203,249, +111,222,202,251,196, 91,155,183,139,203, 0, 87, 87, 87,245,241,227,199,233,235,215,175,233,254,253,251, 41, 7, 88,251,187, 99, +107,224, 20, 0,125,187,116,233, 98,188,117,235, 22,125,248,240, 33, 93,186,116, 41,237,215,175, 31,237,223,191, 63, 13, 11, 11, +163,153,153,153, 52, 51, 51,147, 14, 24, 48,192, 40, 0,250,214,214, 63,171, 26,155,182,128,247,160, 65,131,212,165,165,165, 52, + 37, 37,133, 54,111,222, 60,147, 11,140, 23, 1,205,186, 3,194,218,250,167, 7, 96,239,230,230,150,125,235,214, 45, 26, 21, 21, + 69,125,124,124,242,184,192,100, 27,160,129, 13,208,128, 11, 76,110,208,160, 65,222,173, 91,183,104, 65, 65, 1,245,246,246,206, +246, 0,236,223,181, 47,225, 77,130,237,189,203,194,190,160,207, 50, 85,116, 89,216, 23, 20, 64,122, 89, 64,215, 75,108,159,100, + 55,118,251,247,109,191,211, 34,255,180, 85,135, 3, 7, 14, 36, 0,174,214, 36,217,212, 92,238,186, 13, 27, 54, 48, 26,141, 6, +123,246,236, 41, 30, 57, 98,196,209,238, 93,187,166,212,247,241,145, 17, 14,167,214,220,133,121, 66,225,252, 13, 27, 54,216,233, +116, 58,220,191,127, 31,109,218,180,129,171,171, 43,196, 98, 49,196, 98, 49, 36, 18, 9,252,253,253, 33,149, 74, 97,109,109,141, + 37, 75,150,216,230, 9,133,243,107,227, 53,153, 40, 3, 0, 70,147, 73,192, 7,102,248,182,109,123, 63, 52, 52,148,227,232,232, + 8, 7, 7, 7,136,197, 98, 36, 38, 38, 66,167,211,193,202,210,202,172, 32,173, 28, 14,135, 35, 22,139,113,249,242,101,204,155, + 55, 15,157, 58,117,130,157,157, 29,172,173,173,209,188,121,115,244,237,219, 23,211,167, 79, 71, 74, 74, 10,136, 25, 78, 37, 9, + 12, 51,103,250,244,233,146,160,160,160, 42,247,107, 52, 26,200,100, 50,228,229,229,193,211,211, 19, 33, 33, 33,146, 4,134,153, + 83, 29,159, 35,224,234,233,231,119,234,238,221,187, 78, 34,145, 8, 17, 17, 17, 56,121,242, 36,206,159, 63,143,179,103,207, 34, + 58, 58, 26, 63,253,244, 19,242,242,242, 0, 0,126,126,126, 56,114,228,136,147, 88, 34,137,118, 4, 92,217, 15, 16,243,240, 42, + 55,247, 98,243,156, 28,167,241,227,198,221, 80, 42,149, 24, 63,126, 60,214,173, 95,191,156,103,102, 52,122,127,192,214,193,205, +109,223, 23, 95,124,193,201,201,201,193,240,225,195,243, 55,173, 95, 63, 53,246,194,133,134, 15,206,159,111,184, 46, 60,124,106, +247,238,221,243, 51, 51, 51,113,224,192, 1,142,139,183,247, 62,127,192,182,174,229, 44, 6,230,109,217,178,197, 66,163,209,160, + 79,159, 62, 41,166,248,120,127, 3,240,163, 18, 72,188, 10,148,214,118,126, 54, 48,103,201,146, 37,174, 66,161, 16, 31,127,252, +113,126,201,171, 87, 1, 6,224, 7, 57,144, 38, 7,210, 12,192, 15,197, 47, 95, 6, 76,156, 56, 49, 95, 40, 20, 98,243,230,205, +174,217,255, 77,186,109,174, 5,171, 13, 33,228, 20, 33,228, 26,128,172,201, 51,230, 77, 14,106,215, 17, 7,118,239,192,231,225, +159,236, 3, 48,146, 16,114, 16,192, 34,182,231,177, 96,241,239,132, 57, 90,228,127,117,250,176,218,153,178, 10,187,215,153, 51, + 20, 64,143,154,136,236, 29, 29,219, 4, 4, 4,224,250,245,235, 8, 12, 12,188,107,103,103,103,224, 11,133,224,241,120,160,166, +218,115, 68, 91,138, 68,189,122,247,238,205,220,190,125, 27,190,190,190,176,180,180, 4,143,199,251,205,198,231,243,225,230,230, + 6,133, 66,129, 94,189,122,241,182,109,219,214, 11, 90,237,103,181,190, 16,147,158,136,243,110,127, 49,238,251,253,251, 26,116, +235,214, 13,114,185, 2, 38,147, 9, 86, 86, 86,208,233,116, 96, 24,230,205, 20,144,158, 42,204,105, 52,163,209,104,228,114,185, +240,245,245,197,186,117,235,160,209,104,192,231,243, 1, 0, 10,133, 2, 50,153, 12, 79,158, 60, 65, 90, 90,154, 89,249, 20,173, +109,109,223, 31, 53,106,148,160,170,125, 90,173, 22,114,185, 28,114,185, 28, 50,153, 12, 26,141, 6, 29, 59,118, 20,156,137,142, +126, 31, 5, 5, 85, 38,150,214, 90, 88,140, 56,112,224,128, 68, 32, 16, 64,173, 86,163,184,184, 24, 25, 25, 25,120,245,234,149, + 70, 42,149, 26,172,173,173, 57, 62, 62, 62, 28,161, 80, 40, 28, 54,108, 24, 81, 40, 20, 32,132, 96,208,160, 65,142,135, 34, 34, + 70, 1,248,138, 29,210,230,225, 34,160,109,173,211, 13,110,223,174,221,229,187,247,238, 5,205,159, 63, 31,113,113,113, 95, 88, + 69, 70, 94, 43, 1, 30,213,116,110, 10, 48,231,203, 74, 2,134,190,122, 21, 88, 10,228, 85, 58, 36,205,231,229,203,243, 19, 39, + 78,124, 28, 23, 23,231,180,121,243,102,215,145,195,135,207, 1,176,182, 46,101,180,182,181,109,235,230,230,134,115,231,206, 33, + 61, 53,245, 19, 3,160,174,203,249, 28, 46,183, 75,183,110,221,240,211, 79, 63, 33,243,213,171, 79, 12,191, 45,227,155, 15, 37, + 32,143, 73, 73,249,100,223,190,125,123,167, 76,153, 2, 46,195,116,129,193, 80,151,203,252,206,241,125,202,204,249,216,247,221, +182,125, 0,166, 81, 74, 77,248,147, 82, 90,177, 96,193,226,111, 58, 7,103,134, 22,249,187,136,173,242,169,196, 58, 89,180, 36, + 18,137,135, 88, 44, 70, 86, 86, 22,154, 54,105, 34, 21, 10,133, 16,240,120,176, 16, 8,204, 42, 68, 73, 73, 73,160,187,187, 59, +228,114, 57,156,156,156,192,231,243, 43, 54,129, 64, 80,241,187,181,181, 53, 56, 28, 14,188,189,189, 81, 82, 82, 18, 88, 43,111, +238, 19, 73,228,182, 89,179,111, 93, 59,215, 96,248,240, 96,216,219, 59,192,203,203, 19, 18,137, 4,150,150,150,240,242,242, 66, +195,134, 13,233,166, 77,155, 96, 37,105, 97,214,131,188,178,120, 98, 24, 6, 70,163, 17,185,185,185,120,246,236, 25,226,226,226, +112,235,214, 45, 60,124,248, 16,197,197,197, 48, 39,111,117,137, 90,221,146, 97,152, 42, 69,150, 76, 38,131, 76, 38,171, 16, 90, +121,121,121, 72, 75, 75,131, 82,165,106, 85,131,232, 13, 14, 8, 8,224, 2,128,165,165, 37, 90,181,106,133, 93,187,118, 25, 78, +159, 60, 57,186,217,173, 91, 14, 94, 23, 46,216,125,191,115,231,232,144,144, 16,227,237,219,183,161, 80, 40,240,244,233, 83, 56, + 59, 59, 51, 2, 11, 11, 54, 87, 94, 29,241, 0, 80, 57, 21, 23,247,239,212,169,211, 75,185, 92,142,141, 27, 55,114,120,214,214, +223,133, 3,220, 26, 79,228,114, 59,119,235,214, 13,167, 78,157, 66,214,171, 87, 75, 95, 85, 33, 96, 94, 1,121,233, 41, 41, 75, +247,237,219,135,190,125,251,130, 48, 76,157, 29,149, 58,116,232, 16, 96, 50,153,240,248,241, 99,216, 1,119,234,122,126,195, 70, +141,130,202, 45,191, 34,224, 70,117,199,137,128, 27,177,177,177,176,180,180, 68,211,102,205, 90,215,241, 50,155, 8, 33,217, 83, +102,206, 71,212,249, 95, 0, 0,251,190,219,150, 91, 73,100,177, 96,193,130,181,104,253, 45, 45, 90,229,194,170,242, 86,241, 33, + 91, 71, 18, 0, 0,143,199,131, 64, 40,132, 64, 32,120, 35,144,132,194,186, 40, 62, 88, 88, 88, 84, 8,171,202, 2,171,242,239, + 86, 86, 86,102, 9, 24, 0, 40, 74, 62,223,117,218,212, 41, 2,161, 80, 8,157, 78, 11, 74, 41,132, 66, 11,216,217,217,193,215, +215, 23, 10,133, 2,157, 58,119,215,102,200,248,209,142, 77,135,197,189, 75, 3, 26, 12, 6,168, 84, 42, 20, 21, 21,161,176,176, + 16, 10,133, 2,106,181,218,236,165,232, 38,147,137,155,145,145,129, 31,127,252, 17, 5, 5, 5, 0,222, 56, 90,151,139,171,242, +159, 47, 95,190, 68, 68, 68, 4, 82, 83, 83,235,116,127,186,118,237,138,232,232,104,110,143, 94,189,118, 95,242,241,201,186,228, +227,147,213,163, 87,175,221,167, 78,157,226,122,120,120, 32, 45, 45, 13,247,239,223, 71, 81, 81, 17, 40,165,236,250,249,119,192, + 11,160,168,164,176,112,202,242,229,203,169, 88, 44,198,198, 47,191,108,185, 22, 24,107,174,128,177,173, 65,192,216,254, 49, 1, + 3, 74, 41, 76, 38, 19,140, 70,227, 59,213,141, 16, 66,120, 60, 94, 93, 67, 43,144, 58,240, 87, 56,190, 47,249,116, 29,206,254, +116,172,124, 87, 18, 43,178, 88,176, 96,241,119, 71, 77,185, 14,153, 74, 10,178,226,103,117,200,205,205,125,173, 82,169, 26,248, +248,248, 32, 51, 51, 83,226,237,237,253, 74,192,227,129, 47, 16,128,112,106,215, 4, 86, 86, 86,143,179,178,178, 58,123,120,120, +192, 96, 48, 84,136,170,183,167, 14,203,173, 52, 15, 31, 62,132,149,149,213, 99,104,106,140,156, 0,163,174,168, 94,235,214,173, + 43, 44, 67,118,118,118,176,179,179,133, 80,104,129, 21, 43, 86,152, 54,111,218,180,195,251,189,112,249, 7, 11,150,211,229,107, +119,255,169,141,107,238,139,201,202,202,234,177,151,151, 87, 71, 91, 91, 91, 68, 69, 69, 33, 45, 45, 13, 69, 69, 69, 40, 41, 41, +129, 86,171, 69, 73, 73, 9,116, 58, 29, 44, 44, 44,208,172, 89, 51,216,216,216, 32, 38, 38,230, 49,180,218,170,197,101, 65, 65, +212,227,199,143, 59,182,107,215,174,194,162,210,179,103, 79,210,179,103, 79,167, 10, 43, 90, 73, 9,242,243,243,113,247,238, 93, +196,196,196,128, 16,130,164,164, 36,163, 86,173, 62,204, 14,139,119,131, 6,248,149,187,111,223,222, 15, 63,252,112,106,231,206, +157, 97, 4, 6, 0,136,248,255, 37, 96,202,113,235,214,173, 39, 70,163,177,115,227,198,141, 33, 3,218, 3,248,169, 78, 34, 50, + 57, 57,214, 96, 48,244,106,217,178, 37,162,142, 30,237, 10, 32,173,170,227, 84, 64,215,160,160, 32,168,213,106, 60, 77, 72,120, + 80, 7,145,181,123, 89,216, 23,147, 39, 78,155,131, 3,187,119, 96,223,119,219, 50,246,238,218,234, 5, 51,252,199, 88,176, 96, +241,175,178,102,213,170, 69,254, 23, 81,149,143, 86,185,248, 98,234, 66, 36, 47, 42,122, 16, 27, 27,219,160,117,235,214,216,189, +123,119,187, 78, 29, 59,190,230, 11, 4, 6, 1,159, 15,142, 25, 47, 18,181, 74,245,243,207, 63,255,220,126,216,176, 97,204,237, +219,183,225,234,234, 90, 33,180, 13,123,141, 42, 0, 0, 32, 0, 73, 68, 65, 84,202,127, 50, 12, 3, 74, 41,172,172,172,112,226, +196,137, 82,181, 74,245,115,173,214, 34,163,201,200, 41, 19,122,148, 82,200,100, 50,240,249,124,124,245,213,102,108,223,180,105, +156, 17, 56,230, 39,114, 94, 12,192,226,255,219, 11,186,164,228,242,217,179,103,219,132,134,134,242, 60, 61, 61, 33,147,201, 80, + 84, 84,132,130,130, 2, 40, 20, 10, 40, 20, 10, 20, 21, 21, 65, 38,147,193,194,194, 2,113,113,113,122, 77, 73,201,229,234,248, +132, 26,205,241, 73,147, 38, 45,137,141,141,117, 99, 24, 6,122,189, 30, 38,147, 9, 38,147, 9,165,165,165, 72, 78, 78, 70,124, +124, 60, 18, 19, 19, 81, 88, 88, 8, 30,143, 7, 46,151,139,135, 15, 31, 22,137,244,250,163,236,144,126,119,240,128,168,155, 55, +111, 78,157, 48, 97, 2,220, 61, 61,187, 35, 51,211, 44, 1,115,178, 6, 1, 35,127, 7, 1,243, 27, 1, 84, 92,124,239,229,203, +151,157,123,244,232, 1, 55, 79,207, 47,154,101,102, 94, 74,168,131,159,150,209, 96,184,113,243,230,205, 94, 19, 39, 78,196,238, +221,187,191,112,126,249,242,124,222, 91,211,156,206,128,115,253,134, 13,191,152, 60,121, 50, 46, 94,188, 8,163,193,112,163,134, +135, 78,229,136,239,245, 38,207,152,231,245,150,227,251, 46, 66,200, 92, 0, 27,217, 30,197,130, 5,139,127,178, 69,171, 78, 83, +135,150, 70,227,178, 69,139, 22,233, 57, 28, 14,130,131,131,173,127, 58,117, 42,228,225,163, 71,190, 82,169,212,206,104, 52,214, +202,229,172,213,110, 93,180,104,145, 76,167,211,193,223,223, 31,133,133,133, 48, 26,141, 96, 24, 6, 12,195,128, 16, 2, 14,135, + 3,177, 88,140,216,216, 88,236,221,187, 87,225,172,213,110,173,245, 37, 97, 52, 62,142,136,136, 0,151,203,165, 22, 22, 22, 32, +132,128, 97, 24,108,222,188, 89,186, 29,136, 2, 0, 46,135,163, 3, 0, 14,135,152,235,189, 91,235,188,165, 64, 32,128,233,205, + 34,128, 90,143,181,215,106,183,108,216,176,161,248,233,211,167, 80,169, 84, 21,214, 55,165, 82, 89,225, 92, 47,147,201, 64, 8, +129, 74,165,194,169, 83,167,138,237,181,218, 45,213,241, 21, 0, 57,153, 73, 73, 67,218,181,107, 87,240,242,229, 75,200,229,114, + 60,126,252, 24, 49, 49, 49, 56,114,228, 8, 46, 94,188,136,228,228,100, 24, 12, 6,120,120,120,128, 82,138,147, 39, 79,202, 13, +197,197, 3, 10,128, 28,118, 88, 84,143,122,174,174,189, 92, 36,146,116,103, 39,167,204,122,174,174,189,222,222,111, 11, 60,127, +254,252, 57, 12, 6, 3,124,125,125, 29,106,242,211,162, 6,195,205,155, 55,111, 98,226,196,137,240,106,208, 96,189, 15,224,252, +246, 49, 62,128,179, 79,195,134,235,203, 5, 12, 53, 24,110,214,181,204,214,192,182,197,139, 23,171,249,124, 62, 34, 35, 35,125, +245,141, 26, 37, 50,192, 88, 49,208,164, 7,192,175,237,124, 55, 96,199,167,159,126,154, 67, 8,193,193,131, 7,157,108, 27, 54, +124,194, 0,147,108,129,122,182, 64, 61, 6,152,100,219,176,225,147,200,200, 72, 39,131,193,128, 5, 11, 22,228,184, 1, 59,106, +160,156, 71, 41, 29, 76, 41,237, 70, 41,245,218,187,107, 43,206,254,116,172, 92,100, 77,163,148,222,165,148, 78,160,148, 62, 97, +123, 28, 11, 22, 44,254,201, 32, 85,249, 65,241,218,175,205, 5,168,164,123,135, 22,184,247,232,153,220,201,222,230, 66,249,190, +194,248, 99,141,223, 11,180,105,241,205, 55,223,128,199,227, 33, 35, 35, 3, 9, 9, 9,176,177,177,193,184,113,227,180,234,226, +226, 33,229,185, 14, 9, 33,189, 41,165, 49,101,156,111,242,169,201,147,196, 13,153,184, 6,231,207, 70,115,109,109,109,161, 84, + 42,193,225,112, 96, 97, 97, 1, 43, 43, 43, 88, 90, 90,226,254,253,251, 24, 56,120,168, 49,207,170, 91, 69,192,210,242,124,106, +149, 57, 65, 8, 23, 0,218, 3, 86,177,192,199, 18,119,247, 69, 43, 87,174,180,236,215,175, 31,248,124, 62, 60,235,249,229,248, +246,223,184,141,195, 33,134,204, 2,197,138,134,245,220,109, 19,146,210, 0,144, 55, 57, 17,203,114, 29, 86, 85, 78,111,221, 53, +223, 19, 63,108,178,105,213,234,141, 63,186, 76, 38, 67,110,110, 46,164, 82, 41,100, 50, 25, 84, 42, 21, 0, 32, 58, 58, 26,103, +175, 39, 42,212,158, 33, 41,213,149,243,191,117,127,102,237, 94,122,167,254,161,136, 31,184,206,206,206,200,205,205, 69, 94, 94, + 30,100, 50, 25,212,106, 53,140, 70, 35, 10, 11, 11,177,103,223, 15,198, 2,113,183,212,242,128,144, 53,114,170, 50, 44, 29,148, +191,120, 4, 53,243,161, 83,167, 78,181,182,177,177,129,201,100, 66, 81, 81, 17,210,211,211,241,242,229, 75, 92,191,126, 93, 37, +149,233,160,114,234,147, 89, 30,176,180,202,246,252,243, 76,168,127, 63,206,178,190, 4, 0,238,110,110, 89,175, 94,189,146, 24, +141, 70,120,120,120, 24,100,133,133,235, 5,192, 69,107, 32, 27, 0,205, 7, 86,110,217,182,109,202,208,161, 67,209,182,109,219, +140,156,220,220,250, 85,245, 37, 16,194,245, 7,108, 75, 60, 61,227,239,222,189,235,154,158,158,142,137, 19, 39,230,191,122,241, + 98,105,185,191,150, 28,232,234,211,176,225,250,200,200, 72,167, 6, 13, 26, 32, 48, 48, 48,199, 34, 61,189,249, 51, 64, 94, 77, +255,172,118,108,202,158,159,169, 63,107,120, 64,219,217,179,103,195, 96, 48,224,250,245,235,184,115,231, 14, 94,189,122,133, 95, +126,249, 69,102, 35, 18,141, 46,207,117, 88, 93,255, 28,224,167,242, 61,120, 48,130,240,249,124,236,219,183, 15,177,177,177, 0, +128,160,160, 32, 76,158, 60, 25, 6,131, 1,227,199, 79,160,103,158, 89,166,212,212, 63, 9, 33, 1, 0,190,196, 27,145,215,150, + 82,106, 65, 8,201, 2,224, 85, 23,159, 44,182,127,178,156, 44,231,191,135,243,159,138, 90,115, 29,174,249, 22,182,191, 77,243, + 49, 61,235,216,174,112,166, 75,215,110, 77,194, 87,133,113,218,181,107, 7, 47, 47, 47, 4, 5, 5, 33, 61, 61, 93,104,103,103, + 87, 91, 62, 53,101,183,254, 99, 95,182,104,209,194,110,233,210,165,182,125,251,246,229,121,121,121,129, 82,138,216,216, 88, 68, + 69, 69,149,238,222,189, 91, 81,226, 50, 88,246,224,202,143, 74,115,242,169,221, 1, 74, 0,172,246,204,202,250,110,206,172, 89, + 97,173, 90,183,158,186,106,213, 42,142,216,202,146,183,110,197, 52, 11, 0, 88,243,245, 17,219,161, 33,227,176,165, 17,208,125, +108,213,121,228, 42,151, 51, 61,115,250,171,247,135,247,106,244,241,220, 41,198, 81,163, 70,137,108,108,108,224,229,229, 5,123, +123,123,164,164,164, 32, 51, 51,147,158, 62,125, 90,121,235,225,115,222,201,139,247, 94, 89,216,186,153,147,151,176,184, 91,191, +145,169,239,191,255,190,253,164, 73,147,172,219,180,105,195, 19, 10,133, 16, 10,133,200,205,205, 69,114,114,114,233,233,211,167, +149, 37,146, 1, 69, 15,174, 68, 22,155,153,235, 80,221,109, 76,120,242,141, 75,171, 22,196, 63,126, 60,193, 4,180, 44, 45, 45, +245, 48, 26,141,132,195,225,100,155, 76,166,199,165,197,197,123,181, 65,171, 54,179,185, 14,205,131,209,104,228, 27,141, 70,200, +100, 50, 92,186,116,137,121,241,226,197,202, 71,143, 30,173,204,202,202,130, 94,175,199,136, 17, 35, 16, 20, 20,132, 43, 87,174, + 32, 47, 55,247,116, 77, 92,207, 0,185, 48, 51,115,242,244,233,211,207, 69, 68, 68,112, 30, 61,122,228,180,111,223,190, 61, 85, + 9,152, 9, 19, 38,152,114,211,211, 39,107, 1,121, 13,253,179,166,177,153,127, 62,114,251,163, 97,193, 33,205, 86,133,174,228, +117,234,212, 9, 78, 78, 78,232,218,181, 43, 74, 75, 75,237,154, 54,109, 90,219,216, 44,238,214,127,116, 74,203,150, 45, 69,155, + 55,111,118,157, 50,101, 10,230,206,157, 11, 0, 80,171,213,184,120,241, 34, 22, 44, 88,144,147,206,180, 87,213,214, 63,203, 44, + 85,229, 2,236, 26,128,110, 0, 82, 88,199,119, 22, 44, 88,252, 35,173, 86,132, 4, 81, 74, 99, 9, 33,110, 0, 6, 2, 56, 67, + 41,205,174, 86,104, 1,255,205,167,118,227,206, 19, 84, 78,243,241, 6,110, 9, 6,239, 73, 47,102, 46, 90, 31,200,213, 43,236, +121, 68, 99,147,244,252, 57,169, 45,231, 97, 69, 62, 53, 91, 63,165,227,203,195,237,214,173, 89, 51,127,203,150, 45,189,202, 67, + 56, 88, 89, 89, 61, 86,171, 84, 63, 59,107,181, 91, 75,108,253,126,174,107,110,190, 76, 32, 23,192, 44,251, 7, 15,182, 13, 26, + 58, 98,131,133,131, 47,111,249,218,221, 26, 46,135,163, 75,206,202,195,150, 70,128,200,140, 5,146, 37, 58, 32, 94,230,102,200, +117, 12,121,246,233,226,197, 31,175, 89,189,186,157, 88, 44,238, 94,106, 48,248,153, 76, 38,192,100, 74, 42, 81,169,174,209,210, +210,187,218,160,208, 77, 22,182,110,212,236,188,132,118, 77,139, 29, 82,143,181,219,191,119,239,188,163, 71,143,254,174,238,142, + 90,237,182, 18,187,166, 49,230,212,189,242, 49, 26,224, 87, 72,165,191, 86,219, 9,192,230, 58, 52,251,235,195,100,154, 97,111, +111,127,160, 87,175, 94, 22,189,123,247,198,192,129, 3,209,169, 83, 39,152, 76, 38, 80, 74, 81, 92, 92,140, 35, 71,142, 96,195, +134, 13, 73,245,129,213,181,241,105,129,159,133,103,207, 14,104,217,178,229,190,154, 4, 76,153,200,170,213, 39,177,230,177, 41, + 76, 50,216, 14, 73, 27, 51,103, 93, 35,157, 34,219,206,209,202,224, 26,255,228, 49,199,252,177,233, 95,108,140, 61,210,126,196, +240,225,115,184, 12,211,181,108, 5, 36,125,154,144,240,160, 60,169, 52,130, 38, 95,170, 99, 95, 42,143, 93,199, 58,190,179, 96, +193,226,159,138, 32, 0,177, 0, 6, 82, 74,191, 43,115,142,175,222, 25,158, 97, 24,105,185,213,135, 97, 24,105,202,201,153,227, +106, 98,231, 1,189,202, 44, 89,168, 53,215, 97,217,239,105, 64, 49,180,218,207,126, 19,140,180,210,234, 66,222, 91,199,215,165, +182, 69,192, 51, 24,180,131, 32, 77, 0, 78,205,122,195,215,110,205, 39,149,235, 84,237, 75,246, 55,215,229, 23,106,128, 27, 80, + 42,111, 64,169,172,210,105,151,199,240, 11,107, 43,231,219,117, 79, 7, 20,127,180,238, 76, 29,219,135,249, 3,237,249,111,195, +235,252,252,147, 0,196,158,209,209, 46,231,163,163, 71,125,188,112,225, 8, 55,119,247,134, 78, 78, 78,246,214,214,214,156,219, +183,111,191, 52,104, 52,219, 90, 1,251,203,172,169,181, 66, 11,252,236,159,158,222,124,228,240,225,115, 8,195,116,169, 44, 96, +168,193,240,139, 47,176,163, 38, 75,214,187,142, 77, 47,161, 91,175, 50, 75, 22,184,102,142,205,204, 55,229, 88, 11,131, 97, 45, +226,226,170,232,243,117,238, 75,107, 8, 33,197, 96, 29,223, 89,176, 96,241,207,197,153, 50,113,117,230,119,123,254,202,252, 62, + 0,122,179,156, 44,231, 63,133,243,141, 86,129, 13,219,158, 44, 39,203,201,114,178,156,127, 62,231, 63,117, 99, 88, 17,202,130, +133,121,160,111,156,211, 21,108, 75,176, 96,193,130, 5,139,202,168,228,155, 85,249,157,241, 29,240,198,117,167,119, 53, 47,149, +152, 58, 92,160,247, 59,188,180, 98, 88, 78,150,147,229,100, 57, 89, 78,150,147,229,252,119,113,214,198,253,119, 92,205, 72, 8, +153, 81,238,155,245,118, 76, 45, 98,110,154,155,119,188, 48,187,244,149,229,100, 57, 89, 78,150,147,229,100, 57, 89,206,127, 52, +106,178,104,113,216,230, 97,193,130, 5, 11, 32, 60,156,112, 0, 66,128,112, 14,112,140, 11,140,228,190,249,251,221, 49,114, 36, +169, 50,152,237,188,241, 14,214,108,139,179, 96,241,207, 1,165, 52,187,186,164,210,172,143,214,255, 95, 5,236,237,234,234,186, + 11, 0,201,201,201,153, 65, 41, 77,103, 91,229,127, 15,142,142,142,189, 12, 6, 3,228,114,249,207,255,196,250, 53,111, 68,134, + 83, 14,154,254,247,137,129,244,132, 36,122,160,170, 99,155,249,145,137, 32,255,141,197, 69, 76,120, 26,159, 76, 79,212,161,207, +115, 6,244,246,218, 1, 0,231, 98, 50,230,252, 21,113,181, 8, 33,141,157,157,157, 47, 48, 12,195, 24,141,198, 89,185,185,185, +209,213, 11,161,145, 92, 0,224,209, 43,203,156, 28,154, 44,253,232, 67,194, 43,209,238,149,105,213, 42, 57,151,199, 77, 21,242, + 92,111,130,235,113,174, 72,217, 49,161,170,243,143, 30, 61, 90,109, 22,239, 0, 63, 50,160, 73,179,102,131, 91, 7, 90,166,124, +185,181,221,150,238,190, 78,188,151, 25, 15,197, 95,236,148,239,178,113,168, 55,120,210,104,199,104,198,138, 76,216,179, 39, 95, +201,142, 50,243,241, 57, 33, 14,165, 64, 32, 79, 40,244, 50, 26, 12, 46, 4,160, 92,134,201,213,107,181, 25,124, 32,110, 41,165, +178,127, 58, 39, 95, 40,244, 52, 26, 12, 46, 0,240,191, 88, 78, 22,191, 69,181, 66,203,218,218,250, 62,135,195,241,172,156, 12, +183, 60,159, 96,249,255, 42,239, 35,132,192,104, 52,102, 22, 22, 22,182,169,195, 3,209, 6,192, 40, 0,229, 75,212, 15, 1, 56, + 66, 41, 85,188,227, 3,214,134,207,231, 47, 18,137, 68,239,169,213,234,230, 0, 96,105,105, 25,175, 82,169, 46,151,150,150,126, +249, 46,188,132, 16, 6,192, 72,177, 88,220,147,195,225,244,164,148, 18, 74,233, 21,165, 82,121, 25,192, 81, 74,169,225, 29, 56, + 45, 37, 18,201,218, 38, 77,154,140, 93,182,108, 89,129,163,163,163,255,130, 5, 11,238, 57, 59, 59,255,152,159,159,191,130, 82, +170,254, 95,232, 28,132,144,134,174,174,174,135,120, 60, 30, 55, 35, 35,163, 39, 0,120,121,121, 93,209,233,116, 70,169, 84, 58, +142, 82,250,162,142,124, 34, 0, 29,196, 98,113, 27,177, 88,220,205,104, 52, 54, 45,203,207,248, 84,169, 84, 94, 47, 45, 45,189, + 15,224, 54,165, 84,245, 63, 36,134,173, 37, 18, 73, 4, 33, 4,132, 16, 63, 74,105,241, 63,238, 75,140,131,166, 9,241,137,254, + 21, 98,170,121,147, 26, 26, 4,222, 85, 28,107,182,208,122,175,187,219,224, 33, 67,250,112, 0, 64,167, 63, 55, 24,117, 76,126, +109,142,200, 10, 14, 14,254, 53, 34, 34,194, 94,171,213, 98,198,140, 25,135,108,109,109,119,200,229,242,101, 53,157,103, 35,182, + 95,176,113,243, 69,171, 55,249,175, 33, 49,153,140,146,215,175, 95,248, 37, 60,249,181,127,124,252,173,117,234,196,203,183, 77, +132, 55,179, 20, 93, 19,205, 41, 71,179,134,100,208,208,145,195, 7,174, 94,189, 10, 99, 71,143,173, 23, 31,175,177,244,176, 73, + 17, 20,170, 69,141, 28,157, 37, 67, 86,175, 57, 70,110,222, 56, 57, 36, 98, 95,248,229,169, 83,157,222, 99,197,150, 89,247,150, +172, 97,152, 14,246, 77,154,116, 27,125,242, 36,196, 94, 94, 12, 35, 20,114, 0,192,160,213,122, 41, 51, 50,220, 34,135, 12,105, + 31, 78,200,213, 48, 74,239,176,156,255,247,156, 44,234, 40,180, 56, 28,142,231,235,215,175, 37, 34,145,168,220, 44, 6,163,209, + 8,163,209, 88,145,188,152, 82, 90,241,211, 96, 48,160, 73,147, 38,102,125,209, 2,120, 15,192, 7, 61,122,244, 8,249,242,203, + 47,121,129,129,129,229, 41, 67,186, 46, 95,190,252,107, 66,200,113, 0,251, 1,252,108,238, 23, 47, 33,164,159, 72, 36, 58,184, +113,227, 70,155, 62,125,250, 48,238,238,238, 32,132, 32, 39, 39,167, 67, 76, 76, 76,155, 5, 11, 22,204, 34,132,140,167,148, 94, +168,195,192, 14,176,182,182, 62, 54,124,248,112,207,238,221,187, 91, 52,107,214, 12, 70,163, 17, 15, 31, 62,156,114,255,254,253, + 49,199,143, 31, 15, 35,132,132,152,155,175,141, 16, 66,196, 98,241, 36, 15, 15,143,181,161,161,161, 14,227,199,143, 23, 60,121, +242,164,200,215,215,151,220,188,121,211,249,200,145, 35,179,214,175, 95, 63,210,218,218,122,133, 82,169,252,129,154,225, 64,103, + 99, 99,115,159,195,225,120,154, 35,132, 1,152, 45,134, 9, 33,173,234,215,175,127,228,198,141, 27,245,211,210,210,140,195,134, + 13, 59, 0, 0,151, 47, 95, 14,212,235,245,164,111,223,190,231, 8, 33,163, 40,165, 15,205,172,123, 11, 7, 7,135,159,198,142, + 29,235,208,176, 97, 67,171,250,245,235, 19,145, 72, 4, 46,151, 11,185, 92,238,254,228,201,147,222,119,238,220, 81,199,196,196, + 20, 18, 66,134, 80, 74,227,234,112,159, 58, 73, 36,146, 9, 60, 30, 47,192, 96, 48,120, 0, 0,195, 48,175,245,122,253, 19,169, + 84, 26, 65, 41,253,245, 93, 7,136,139,139,203,246,181,107,215, 58, 73,165, 82,186,126,253,250,237, 0, 38,253, 83, 31, 6,135, +126, 60,138,251,247,238, 0, 0,159, 16, 66,222,238,127,132, 16,210,212, 15,252,143, 62, 90,136, 54,109,219, 99,220,216,145,181, +114, 14,236,237,181,145, 39,224, 59,106, 52,154, 95,229, 37,218,163, 46,142,118,163,198,142, 25,148, 4, 0,231,206, 95, 29,213, +190,189,195, 21, 91, 43,225, 72, 11, 11,139, 78,122, 93,105,193,153,152,140,197,117, 17, 85, 30, 30, 30, 23,236,237,237,173, 10, + 11, 11,115,242,242,242,190, 13, 14, 14, 94,179,127,255,126,251,151, 47, 95, 34, 35, 35, 3,243,231,207, 23,103,102,102,206, 17, + 10,133,183,180, 90,109,181,150,173,226,226,194,173,203,151, 14, 13,181,181,117,226,138,172,108, 96,109,235, 0,223,134, 45,209, +161,211, 96, 12, 24, 56, 21,201, 73,177, 29,246,239, 91, 29,251,250,117,204,231, 98,135, 6,107,100,178,250,213, 62,151,154,251, +147,238,229, 34, 43, 52,116, 21,158, 39, 38, 22,167,165,114,254,115,230, 36, 99, 53,160, 87, 19,161, 65,151,147,118,243,198,201, +250, 93,186, 14, 3,128, 54, 17,251,194, 47,207, 27,239,208,107,219,193,194, 98,246,149, 84,253,179,115, 53,143, 55,169,223,230, +205,146,160, 89,179,248,202,212,212,210,148,157, 59, 75,114,175, 95, 55, 50, 66, 33,245,234,223,159, 56,247,236,105, 49,235,233, + 83,254, 47,235,215,119, 91, 39, 16,248, 46,215,233, 14,178,156,255,119,156,108, 31,173,112,134,175,240,213, 42,159, 62,100,106, + 56, 9, 34,145, 8,145,145,145,224,241,120, 96, 24, 6, 60, 30,175,218,223,189,189,189,205, 41, 72,176,171,171,235,215, 59,118, +236,112,233,215,175, 31, 44, 44, 44, 42,246,113,185, 92,244,233,211, 7,189,123,247,230,101,101,101,141,137,140,140, 28,179,110, +221,186, 92, 66,200, 92, 74,105, 84, 45,188, 61,253,253,253,163, 46, 94,188,104,169,209,104,112,253,250,117, 20, 21, 21, 65, 32, + 16,192,211,211, 19,125,251,246,101, 18, 19, 19, 29,250,244,233, 19, 69, 8, 25, 68, 41,189, 98, 70, 89,219, 72, 36,146,107, 71, +143, 30,181,104,217,178, 37, 73, 78, 78, 70, 80, 80, 16, 0, 64, 46,151, 99,216,176, 97, 22,227,199,143,111, 56,102,204,152,219, +132,144,238,148,210,251,181,240,181,118,117,117,253, 97,248,240,225,238,235,214,173,179,177,182,182, 70, 90, 90, 90,182,171,171, +171, 95,121,123,143, 25, 51, 70, 48,120,240, 96,183, 13, 27, 54,108, 61,118,236,216, 98, 66,200, 36, 74,233,131,154,120,203, 5, +177,149,149, 21,114,115,115,113,232,208, 33,204,153, 51, 7, 92, 46, 23, 82,169, 20, 71,142, 28,193,127,254,243,159,114, 65, 99, +150, 24, 22,137, 68,189, 91,182,108,185,231,242,229,203,158,118,118,118,112,119,119,231,124,250,233,167, 1,190,190,190,150,245, +234,213,227,102,103,103, 35, 42, 42,202,119,194,132, 9, 63, 89, 88, 88, 76,209,104, 52,181, 78,169,185,184,184,236, 61,115,230, +140,119,124,124, 60,118,238,220,137,194,194, 66, 8, 4, 2,216,217,217,193,213,213, 21,126,126,126,100,233,210,165, 86,131, 7, + 15,182,154, 59,119,238, 94, 0,173,204,184, 71, 45, 37, 18,201,174, 49, 99,198,248,134,135,135,219,185,186,186,162,252,195, 64, + 46,151,123,166,165,165,117, 8, 13, 13, 13,113,113,113,121, 41,149, 74,103, 82, 74, 31,213,113,224,180,234,213,171,215,160, 97, +195,134,113,179,179,179, 17, 17, 17, 49,136, 16,210,202, 92,113,249,119,195,253,123,119, 48, 99,246,124,165,187,151, 23,255,226, +133, 61,193, 50, 89,179,123,118,150,111, 18, 82,203,212, 40,125,175, 59,183,109,223,126, 83,249,239, 15, 28,166,252,238,155,173, + 98,115,132, 22, 79,192,119, 60,116,240,171,244, 27, 55,239, 7, 92,138,185,211, 63,120,200, 16,202,231,219,249, 2,192,226, 5, + 31,241,162, 78,157,218,215,167,119,251,172,174, 93,218,164,143, 27,191,208,187, 14,247,166,113,227,198,141,175,198,198,198,186, + 8,133, 66, 20, 22, 22, 58,126,247,221,119, 95,117,233,210,133,147,146,146,130,196,196, 68,164,166,166, 66, 46,151,163, 79,159, + 62,226, 7, 15, 30,124, 11,160, 90,161, 85,202,121,111,173,123, 61,253, 54, 71, 75, 81,253, 82,163, 66, 66,245,217,205, 46,157, +185,212,226,112,132, 58,200,197,173,137,223, 7,147,195,176,122,205,113,222,143,135,190, 8,253, 57,230, 48,192,169, 95,125, 70, + 0,138, 78,203, 87, 44,131,162, 88,139,241, 99,167, 99,194,216,233,142, 20, 58, 55,106,212,136,116,234, 34, 59,107,254,211,232, + 29,187,191, 26, 14,192,179,146,216,250,153, 21, 91,213, 99, 53,195,180, 31,244,245,215,206, 1,211,166, 9, 31,133,135,171,242, +175, 95, 87, 55,122,255,253,162,160, 15, 63,212, 2, 64,113,106, 42,255,121, 88,152,149,115,183,110,150, 29, 23, 45,178, 55,234, +116,174,159, 17,210,238, 83, 74,239,214,149,211,123,212, 40, 99,232,190,125,109,175, 47, 92,216,131,232,245,220,254, 29, 59, 62, + 92, 31, 17,241,250,143,112,254,153,229,204,186,118, 77, 91,232,235,139,160, 97,195, 10,188, 37, 18,237,159, 89,247, 63, 82, 78, + 22, 40, 55, 74,101, 3, 40,143, 12,255,230,121, 69, 41,197,153, 51,103,186, 3,184, 10, 32,124,224,192,129,171, 0,192,206,206, + 46, 87, 38,147, 73,162,162,162,106, 21, 89, 60, 30, 15,110,110,110,240,243,243,147,230,230,230,186,212,240,112,204, 48,153, 76, +158,148,210, 10,235, 75,117,208,106,181, 72, 74, 74, 66,139, 22, 45, 50, 41,165, 94, 53, 77,237, 88, 89, 89,165, 36, 38, 38, 58, + 37, 36, 36,224,254,253,251,240,245,245,133,189,189, 61,120, 60, 30,244,122, 61, 20, 10, 5,252,253,253, 33, 20, 10,209,186,117, +235,124,149, 74,229, 91,211, 20, 16, 33, 68, 40, 18,137,146,174, 93,187,230, 21, 20, 20,132,187,119,239,194,203,203, 11,174,174, +174, 0,128,212,212, 84,220,188,121, 19,239,191,255, 62, 98, 99, 99, 49, 98,196,136, 12,149, 74,229, 71, 41,213, 86,199,233,232, +232,152,125,249,242,229,204,192,192, 64,141, 74,165,226,228,230,230,242,174, 95,191,110, 40, 46, 46, 22,203,229,114,158, 76, 38, +227, 41, 20, 10, 70,165, 82,241, 56, 28, 14, 95,173, 86,243,126,254,249,103,174, 78,167,179,169,169,157,202,239,211,169, 83,167, + 16, 24, 24,136,168,168, 40,124,252,241,199,248,229,151, 95,224,229,229,133,163, 71,143, 98,209,162, 69,120,246,236, 25,156,156, +156,208,172, 89,179, 26,239, 17, 0, 52,106,212, 40,249,241,227,199, 13,249,124,126,121, 94,199,242,124,121,200,203,203,195,139, + 23, 47,240,250,245,107, 52,106,212, 8, 99,199,142,125,145,153,153,217,168,182,206,231,233,233,153, 23, 31, 31,239,212,162, 69, + 11,228,230,230,194,206,206, 14,182,182,182,176,179,179,171,248,221,215,215, 23, 11, 23, 46,132,171,171,171, 84,173, 86,187,212, + 38,130, 2, 3, 3, 47,252,252,243,207, 78, 54, 54, 54,200,201,201,129, 66,161, 0,195, 48,176,178,178,130,147,147, 83,133,144, + 79, 74, 74,194,192,129, 3,243, 83, 82, 82,250,213,193, 2,199,113,113,113, 73,140,139,139,243,163,148, 34, 61, 61, 29,207,158, + 61,195,236,217,179,147, 52, 26, 77,147,127, 82,206,190, 74,126, 87,252, 73,147,103,240,135, 15,237,164,123, 26, 31, 77,132,166, +103,104, 21, 96, 35, 7,128,135, 79, 20,182, 90,142, 63,154, 54, 31, 68, 79,252,244,171,224,135,253,223,241, 96,130, 11, 8,158, + 37, 60,167,159, 85,199,221,239, 61,247,105, 31,125, 52, 37,160, 71,151,238,156, 98,149, 74,242,237,183,155, 91,167,164, 60,149, + 0,128,175,111, 83,233,172, 89, 11, 30, 88,139, 68,210,171, 55,175,153,182,108,217,251,228,194,229,172,221,102,220, 27, 95, 63, + 63,191, 91,167, 78,157,114,146, 72, 36,176,181,181,133, 74,165, 66,105,105, 41, 18, 18, 18, 52,145,145,145,122, 27, 27, 27,235, +156,156, 28,200,100, 50, 16, 66,112,234,212,169,116, 74,169,207,219, 92,229, 62, 90, 0, 48,123, 64, 83, 94,179,247,252,236,249, + 66,131,165, 37,239,185, 27,136, 81, 72,168,216,229,220,133,135, 45,206, 93,186, 59,110,120,240,199,206, 93,187, 15, 71,232,202, + 16,125, 86, 86,122, 80, 41,186, 38, 86,229,163,213,212,143,188, 55,108,196,240,145,171, 87,175,194,170,208,112, 68,159, 58, 41, + 23,139, 56, 90, 27, 59,158,109,183, 14,157, 53, 11,231, 12,205, 80, 42,179,188, 86,111,136, 28, 59,112,232, 66,207, 46, 93,135, +225,230,141,147,136,216, 23,126,159, 88, 82,118, 26,241, 45,132, 19, 98,111,231,235, 59,115, 94, 82, 18,255,209,170, 85, 74, 67, + 86, 86, 81,155, 5, 11,242,171, 58, 54,243,210, 37,145,192,221,221,198,126,200, 16,135,173, 62, 62, 84, 47,149,238,170,202,199, +168, 42,206, 24,177,216,238,240,185,115,189, 40,143,215,125,201, 39,159, 88, 14, 26, 52, 8, 10,133, 2,199,143, 31,199,174,157, + 59,181,110,110,110,143,221,159, 60,137, 13, 80, 40, 86,154,203,217,102,193,130,124,163,209, 72, 70, 46, 90,212, 39, 62, 53,245, +189, 28,169,180, 30, 0,184, 57, 56,100,180,241,245,189,191, 55, 58,250,217,246,250,245, 77,230,150,243,251,243,231, 93,142,165, +165, 77,115,112,112,176,204,149, 74, 25,161, 64, 80,208,161, 89,179,163,223,172, 88,113,213, 16, 23,199,183,240,244,180,177, 29, + 52,168,206,117,111,179, 96, 65,126, 97,113, 49, 51,111,205,154,206,175,114,115,235, 41,181,218, 70,178,226, 98, 87,163, 94,207, +177,177,178, 42,104,224,239, 47, 85, 95,191,158,221,160,164,100,254,247,148, 74,255,170,123, 93,149, 22,249, 27, 89,180,222, 94, +117,248,187, 92,135, 87, 7, 14, 28, 72,170, 80,102,102, 89,179,120, 60,222,111,166,169,106, 0,159, 16,130, 7, 15, 30,192,209, +209, 17,174,174,174, 16, 10,127,155,124, 48, 47, 47, 15,191,252,242, 11,158, 62,125,138,150, 45, 91, 2,120,243, 69, 93, 29,132, + 66,225, 71, 27, 54,108,176,211,233,116,184,127,255, 62,218,180,105, 3,161, 80, 8, 62,159,255, 27, 17, 40,149, 74,209,188,121, +115, 44, 89,178,196,118,221,186,117, 31,161,134, 28,117, 12,195,204,157, 62,125,186,164,220,130,149,145,145,129,214,173, 91, 87, +236,119,118,118,198,195,135, 15,209,166, 77, 27,120,122,122, 34, 36, 36, 68, 18, 17, 17, 49, 23,192,151,213,113, 10, 4, 2, 78, + 96, 96, 96,219, 50,139, 17, 56, 28,206,115, 27, 27, 27,103, 23, 23, 23,145,141,141,205,239,234,184,111,223, 62, 25,135,195,209, +215,214,160, 28, 14, 7, 57, 57, 57, 8, 8, 8,128, 92,254, 38,131,139, 74,165, 66,163, 70,141,160, 80, 40, 42, 68,171,187,187, + 59,212,234,154, 93,191, 90,182,108,185,170, 73,147, 38,125,123,244,232, 33,228,241,120,120,244,232, 17,130,130,130, 16, 25, 25, + 9,111,111,111, 88, 89, 89, 33, 41, 41, 9,129,129,129,184,118,237, 26,156,157,157,209,188,121,115, 97,235,214,173,111, 20, 22, + 22, 94, 73, 75, 75, 91, 85, 67, 57, 57, 98,177, 24,215,174, 93,195,222,189,123,145,154,154,138,172,172, 44, 88, 91, 91,163, 85, +171, 86,104,214,172, 25, 58,117,234,132,164,164, 36,144, 90, 58, 19, 33,196,213,207,207, 47,250,238,221,187, 78,148, 82, 68, 68, + 68, 64,169, 84, 66,167,211,129,195,225,192,194,194, 2,246,246,246,120,239,189,247,224,236,236, 12, 63, 63, 63, 28, 57,114,196, +105,192,128, 1,103,203, 44, 82, 57,181,181,171,189,189,253,252,176,176, 48, 47,137, 68,130,180,180, 52,200,229,114,184,184,184, +160, 71,143, 30, 30, 49, 49, 49,243, 1,108,254,167,188,200,202, 29,223, 9, 33,228,226,133, 61,193,126, 13,138, 2, 91,250, 91, +121, 69, 69,187,120, 69, 70, 75,155, 3, 64, 64, 83,151,248,224, 65, 86, 25,143,226,163, 51, 46, 94, 56,121,255,233,115, 68,153, + 51,181, 45, 47,209, 30,189, 20,115,167,127, 80,203,214,166, 13, 95, 44, 26, 56,103,246, 52,161,196,101, 42,114,211, 79, 34,230, +242, 3,239, 69, 31, 79,119,254,114,211,247,231, 46,197,220,225,200, 75,180, 43,205, 41,111,227,198,222,219,247,127,211,201,169, + 56,255, 24,146, 19, 5,176,180, 14,128,175,111, 99, 40, 20, 10, 88, 88, 88, 88,140, 29, 59,214,184,108,217,178, 18, 27, 27, 27, + 43, 66, 8,174, 92,185, 34, 5,208,175, 54, 94,141,196,158, 26, 75,245, 6, 42,224,154, 40,177, 86, 19, 99,161,224, 73,194, 75, +244,237,221, 51,183, 75,251,128,117,203, 86,111, 90,238,215, 56,200,121,202,180,112,222,154, 85,227,118,130,160,107, 85, 60, 79, +147,232,229,102, 13,137, 37,128,129,171, 63, 91,133,148,148, 36,251, 25, 31,200,194, 25,161,165,123, 19,159,206,214, 59,247, 94, +233,223,168, 81,253,122, 11,231,134,156,249,234,235,175, 6, 86,182,108,237,223, 23,246, 19, 33,164, 23,253, 43,227,238,252,253, +208, 98, 66,116, 52,148,233,233,250,194, 27, 55, 52,189,190,254, 58,223,171, 95,191,205,186,210, 82,167,242, 71, 5,135, 16,144, +114,215, 9,147,137, 48, 75,150,112, 40,195, 64,111,111,255,193, 82,160,113,109,156, 31,103,103, 7,143,155, 54,109,224, 79,231, +207,163,126,253,250, 21,239, 51, 59, 59, 59, 44, 90,180, 8, 11, 22, 44, 16, 62,124,248,176,221,177, 99,199,218,125,185,113,163, +203, 82, 32,216,156,114, 94,188,125,219,254,195,213,171, 87,180,108,211,198,251,192,161, 67,194,134, 13, 27, 2, 0, 94,188,120, +225,247,197,250,245, 62, 1,129,129,185,235, 62,250,104,127,252,178,101,205, 1,220,168,137, 51,231,250,117,221,177,180,180,105, +151,175, 92,177, 11, 8, 8, 0, 0, 60,123,246, 76,178,117,235,214,233,205, 67, 66,198,175,158, 53,107,229, 32,141, 70,102,147, +151, 39, 28,180,125, 59,115,120,228,200, 90, 57,203,203, 9, 0, 61,166, 76,249,168,107,207,158,205,130,167, 77,115,240,246,246, + 38, 98,177, 24,165,165,165,200,202,202,178,143,143,143,111, 24, 93, 92,172, 56,113,251,118,196,247,101,201,226,255, 34, 84,169, + 69,254, 78,150,172, 42, 53, 69,217,207, 30,103,206,156,161, 0,122, 12, 28, 56,240, 90,249, 11,220,104, 52,154, 37,178, 24,134, + 65,153,179,176,185, 5, 66,126,126, 62,242,243,243, 43,166,142,164, 82, 41, 46, 95,190,140,164,164, 36,240,120, 60,240,249,124, +148,150,214,158,131, 86, 36, 18,245,238,221,187, 55,115,251,246,109,248,250,250,194,210,210,178,162, 92,229, 27,159,207,135,155, +155, 27, 20, 10, 5,122,245,234,197,219,182,109, 91,239,154,132,150,173,173,237,251,163, 70,141, 18,148,255,173, 84, 42,193,229, +114, 43, 68,139, 82,169, 68, 97, 97, 33,100, 50, 25, 52, 26, 13, 58,118,236, 40,136,142,142,126,191, 38,161, 85, 25, 37, 37, 37, + 74,169, 84,106,215,181,107, 87,251,253,251,247, 63,235,216,177,163,255,111,122,218,213,171, 26,141, 70,195,227,112, 56,102,229, +209, 59,120,240, 96, 69,219,191,126,253, 26, 59,119,238,172,216,151,148,148,132,109,219,182, 85,164, 2,168,233, 30, 53,105,210, +100, 64, 68, 68, 68,155, 3, 7, 14, 20,113,185, 92, 60,123,246, 12,135, 14, 29, 2,165, 20,206,206,206, 40, 41, 41, 65,110,110, + 46,174, 92,185, 2,131,193, 0,177, 88, 12, 15, 15, 15,139,185,115,231,118, 9, 15, 15,231, 1,168, 86,104, 25,141, 70, 35,151, +203,133,143,143, 15, 66, 67, 67,161,209,104,192,231,191,209,151, 10,133, 2, 50,153, 12,177,177,177, 72, 75, 75, 67,109, 47, 25, + 11, 11,139,144, 3, 7, 14, 72, 4, 2, 1,212,106, 53,138,139,139,145,145,145,129, 87,175, 94,105,164, 82,169,193,218,218,154, +227,227,227,195, 17, 10,133,194, 97,195,134,145,114,193, 57,104,208, 32,199,136,136,136,209,181,137, 36, 66,136,115,211,166, 77, +151, 79,159, 62,221,162,114,159,205,201,201, 65,112,112,176,213,175,191,254,186,140, 16,114,136, 82,154,247, 15, 51,121, 83,153, +172,217,189,251, 49,207, 2,163,162, 93,188, 94,101, 26, 59, 47, 90,188,137, 1,128,239,118,125,222, 57, 42,250,245, 47, 77,234, +231,102, 28, 59,209,248,158,157, 93, 2,173,205, 34,248, 94,119,183,193, 46,142,118,163,130,135, 12,161,223,126,187,185,245,156, +217,211,132, 62,141, 23, 1, 0, 60,120, 18,244, 50,124, 70, 74,212, 47, 44,190,253,118,115,235,224, 33, 35, 98, 83, 83,211,118, +245,234,225,126,228,242,181,236,211, 53, 89, 12, 37,142, 22, 30, 86, 66, 21, 60,124,155,193,191,169, 8, 15, 31, 61,195,241,163, +183,208,180,121, 7,104,181, 90, 24, 12, 6,209,224,193,131, 75, 34, 35, 35, 53,207,159, 63, 47, 86,171,213,221, 41,165,207,107, +171,127,102,102,130,201,223,181, 67, 41,223, 82,104, 40,150,243, 75,150,174, 60, 54,178,117,251,190,109,236,221, 60,120,206, 34, +211,233, 1,125,218, 29,218,187, 59,116,193,202,176, 67,104,219,174,111,199,167,207,110, 52, 3,240,184, 74,241,250,130, 70, 7, +248, 17, 67, 74,114,242,192, 87,105,105,153,141, 93, 92,117, 47,100, 84, 63,127,233,247,125,186,118, 15,105,209,176,105, 55,193, +211,132,107, 36,116,201,232, 31, 87,111,248,106,108,185,216,250,249,210,143,221, 63,248,224,150, 0,128,150,213, 87,101, 95,231, + 66,161,167,216,199,135, 73,221,191, 95,237, 59,120,112, 17, 0,232, 74, 75,157, 82,211,210,108,173,172,172, 64, 41,133, 94,175, +255,141, 15,113,185,223,112,128,191,191,139, 57,156,169,159,126,218, 98,201,146, 37,200,201,201,129,193, 96, 0,143,199,123,251, +153, 13,149, 74,133, 15, 62,248, 0,219, 55,110,236, 96, 14,167,209,104, 36, 31,174, 94,189,226,147, 21, 43, 26,206,156, 57,147, + 83,249,217,235,224,224,128, 99,199,143, 11,118,236,216,225,185,124,251,246, 15,198, 9,133, 41,181,113,230, 55,106, 4,135,220, + 92,203,114,145, 5, 0,254,254,254,216,185,115,167,112,234,212,169,130,193,131, 7,111,122,216,178,229,214,205, 93,186, 36, 59, + 54,110,108, 35, 16, 10, 61,205,109, 79, 0, 40,214,104, 2, 54,111,221,106,127,231,206, 29,228,230,230, 34, 39, 39,167,124, 44, +163,109,219,182,100,194,132, 9,182, 13,188,188,218,253,197,183,251,119, 90,228,111,100,209,154, 81,197, 51,245,191, 62, 90,101, + 21, 34,101, 21, 36,149, 94,142,191, 17, 44,181, 9,173,119,129, 76, 38,131, 76, 38,195,238,221,187,193,231,243, 43, 94,190, 0, +160,211,233,204, 17, 45,129,238,238,238,144,203,229,104,220,184,241,111, 44, 89,124, 62, 31, 12,195,128,207,231, 67, 40, 20, 66, +171,213,194,219,219, 27, 37, 37, 37,129, 53,113,170,213,234, 86, 14, 14, 14, 21, 47, 88,173, 86, 91, 33,178,202,203,171,211,233, + 80, 84, 84, 4,165, 82,137,226,226, 98,168, 84,170, 32,115,234,107, 50,153,240,228,201,147, 23,254,254,254,173,184, 92, 46,196, + 98,177, 72,165, 82, 85,248, 22, 21, 22, 22,226,135, 31,126, 80, 77,156, 56,209,233,212,169, 83, 37,102,220, 92,252,231, 63,255, +129, 80, 40, 68, 73, 73, 9,190,253,246, 91,204,155, 55, 15,124, 62, 31,197,197,197,216,185,115, 39, 22, 46, 92, 8,134, 97,160, +211,233,176,117,235,214,234, 45, 27, 9, 9,169,183,111,223, 14,106,221,186,181,253,137, 19, 39,242,250,244,233,227,220,175, 95, + 63, 88, 90, 90, 66,173, 86, 67,175,215,163, 67,135, 14,104,210,164, 9,164, 82, 41,206,157, 59,151,239,231,231,231,116,231,206, + 29, 83, 78, 78,206,171,218, 94,226,149, 44,134, 48, 26,141,200,205,205,133, 76, 38, 67, 94, 94, 30,178,178,178,144,153,153, 9, +134, 97, 80,219,199,188,163,163,227,136,128,128, 0, 46, 0, 88, 90, 90,162, 85,171, 86, 88,177, 98,133, 65,173, 86,143, 2,112, +174,236,176, 1,223,127,255,253,137,155, 55,111, 50,238,238,238, 72, 76, 76,132,179,179, 51, 99, 97, 97, 81,171,208,114,117,117, +221,119,250,244,105,135,114,113, 93,222,206, 37, 37,111,110, 71,112,112,176,195,129, 3, 7,246, 1,120,255,159,246, 82,179,179, + 4,191, 85,128,141, 60, 50, 90,218,124,209,226, 77, 76,147,128, 55, 31,175, 51,102,130,249,114,227,199,205,199, 15,181, 57, 99, +103,169,224,215,198, 51,160,183,215,142, 33, 67,250,112,198,142, 25,148,196,231,219,249,238,250, 46, 92, 34,113,153, 90,201,196, +105, 3, 71, 39, 27,248,250, 8,200,177, 51, 79, 37, 75,151,125,166,253,127,236, 93,119, 88, 20,215,250,126,207,246, 70,239, 93, + 17, 5,165,168, 24,148,196,222, 11,104, 52, 38,150, 68, 99, 76,177, 36, 38,154,104,140,198, 68, 19, 83,136, 38, 38,106,162,215, +150,162,177,119, 99,175,104,140, 37,118, 1, 1, 69, 1,129,133,101,105,187,176,125,103,231,252,254, 16,184,200,165, 44,168,247, + 38,249,205,251, 60,251, 48, 59,156,121,231,156,153,179, 51,239,249,206,119,190,107, 23,146, 4, 0, 0, 32, 0, 73, 68, 65, 84, +111,227,134,111,239,110,222,178,127,176, 88,120,108, 32,128,169,245,113,167,103,148,237,211,155,164,225,218,226, 27,196,205,187, + 27,162, 59,182,133,151,103, 41,214,254,188, 21,193,173, 58,195,100, 50,193,201,201, 73,110,179,217, 44,124, 62,127,163, 61, 34, + 11, 0, 78,156, 40, 99, 35, 35,203,204,252,114,150,121,235,157,111,158, 27, 48,228,217,136,190,125,251,179, 71,143, 29,181,116, +235,100,201, 31, 50, 40, 90,117,248,216,138,219,249,202,123,161,145,237,187, 35, 37,249,212, 96,128, 36, 1,117,119,216,164,219, +244,112,235,214,228,212,214,173,147, 88, 3,123, 85,246,249, 23, 55,135,196,199, 79,136,234,217,163, 39,123,236,248, 73,179, 24, + 69,183,156,186,119,205,123,235,245, 33,187,127,220,184,108,224,225, 67, 63,183,209,104,179,247,255,252, 51,229, 68, 86,205, 65, + 26,195,120, 11, 36, 18,158,250,212, 41,166,253,107,175,153,170,126,143,114,185, 28,123,247,238,133, 88, 44,174,254,136, 68,162, +234,109,111,111,239,170,197, 87,118,113, 2, 64,126,126, 62, 10, 10, 10,224,236,236, 12, 79, 79, 79, 20, 20, 20,224,220,185,115, + 72, 79, 79,135, 80, 40,196,224,193,131,193,171,199,183,185, 54,231,168, 89,179, 6,132,183,111, 31, 84, 91,100, 1,128,197, 98, + 65, 73, 73, 9,134, 15, 31,206, 59,116,232,144,207,225,251,247,159,253, 24,216,216, 16,103,167,248,248, 98,213,142, 29,117,158, +251,169,167,158, 34,127,252,241,135,100,240,160, 65,239,206,252,226,139, 21,223,111,216,144, 99, 99, 24,159,166,180,157,199,227, +241, 8, 33, 8, 12, 12, 68, 73, 73, 9, 42, 42, 30,204, 96, 59, 56, 56,192,213,213, 21, 86,171, 21, 44,165,194, 39,121,175,235, +211, 34,127,147,129,234,154, 42,193, 85, 59, 50,188,160,114, 94,180,234, 65,209,187,230,139,133,101, 89,187, 68,150, 80, 40,108, +212,231,202, 30, 43, 87,109,216, 35,180,170,234, 42,149, 74,171,127,104, 53, 5, 86, 85, 61,121, 60, 30,248,124, 62,236,177,200, +179, 44,203, 47, 47, 47,199,206,157, 59,209,171, 87,175,234,105, 41,141, 70,131,178,178, 50,104, 52, 26, 24,141, 70,100,102,102, +226,196,137, 19,104,211,166, 13, 96,103,240,215,187,119,239, 94, 14, 14, 14,142,169,122,137,247,233,211, 39,224,151, 95,126, 81, +198,197,197,249, 81, 74,241,209, 71, 31, 21, 61,253,244,211, 30, 53, 95,242,141,129,207,231,227,220,185,115,104,211,166, 13, 40, +165, 16,137, 68, 72, 75, 75,131,151,151, 23, 88,150,133, 64, 32,128, 90,173,134,163, 99,195, 49, 18,147,146,146, 38,190,250,234, +171, 74,103,103,231, 14,197,197,197,249, 18,137,164,199,153, 51,103, 2, 45, 22, 11,156,156,156,224,228,228,132,131, 7, 15,194, +197,197, 5, 51,102,204,184,111, 48, 24,206, 41, 20, 10,111,131,193,112,163,160,160,224,163,166,220,111,134, 97,160,211,233, 80, + 90, 90,138,146,146, 18,104,181, 90, 24,141,198, 70,235, 88, 23,122,244,232,129,253,251,247,243, 19, 18, 18,126,188,123,247,193, +192, 48, 36, 36, 4, 51,102,204,224,251,251,251, 35, 51, 51, 19,151, 47, 95,134,197, 98, 1,165,180,193, 31,175, 80, 40,236, 51, +115,230,204,238, 65, 65, 65,196, 98,177,128,101, 89,152, 76, 38, 84,109,223,191,127, 31,225,225,225,188, 22, 45, 90, 60, 67, 8, +233, 99,207,194, 10, 14, 15,160,186,191, 7,254, 66, 47,128,231, 4,106,216,131,226,162,230,165,141, 44, 44, 44,252, 98,246,199, +127,188,246,253, 98,139,119,110, 62,208, 54,106, 4, 66, 35,250, 97,226,120, 6, 9, 95,239, 68, 80,139,182,200,206,206, 70,159, + 62,125, 68, 74,165,242, 85, 0,179,236,229, 62,118,236,130,237,232,193, 67, 47,140, 26, 51, 33,166,127,255, 56,230,200,145,131, + 72,186,113, 36,249,213, 49,207, 23, 82,182,130,184,185,200,174,166,165, 94, 10,237, 16,221, 27,102,198,214, 3,248,100, 49,128, +122, 31, 42, 25, 25,212,252,233,167,159,242, 14,236,249,121,252,139,227, 94,233,216,175,223, 64,235,145, 99,191,225,242,249, 99, +215,151, 44,126,227,116,194,178,109,125, 6, 12,126, 62,210,211,251,220,193,168, 48,211,235,129,238,206, 25, 92, 79,169, 27, 2, +169,148, 69,229,115,145, 71, 8, 40,165, 15,137,172,218, 66,139,199,227, 53,106, 0,168,201, 89,243, 93, 84, 53,160, 94,189,122, + 53, 36, 18, 9,196, 98, 49,132, 66, 97,163,238, 23, 53, 57,147, 51, 51,251,174,223,184, 81, 82,151,200, 42, 46, 46, 70,113,113, + 49, 42, 42, 42, 48,118,236, 88,209,167,151, 46, 61,213, 24,103,144,175,175, 73, 33,147,169, 82, 82, 82,252, 34, 34, 34, 30,170, +175, 86,171,133, 76, 38,195,198, 77,155, 68, 67,227,227,223,236,119,240,224, 18, 0,101, 77,109, 59, 33, 4, 94, 94, 94,112,117, +117, 5, 33, 4, 12,195,160,160,160, 0,201,201,201,184,116,233, 18,248,132, 48, 79,242, 30,215,165, 69,254,110, 86,173,218, 34, +171,166, 69,139,212,103,125,177, 87,104,241,249,252,102, 91,181,234,131, 61, 83,135,114,185,252,166, 82,169,236,230,239,239, 15, +134, 97,170,133, 86,237,169,195, 42,235,199,181,107,215, 32,151,203,111, 54,198, 73, 41,125,166, 75,151, 46,216,181,107, 23, 78, +157, 58,133,123,247,238, 65,175,215,195,100, 50,193, 96, 48, 32, 57, 57, 25, 44,203, 34, 42, 42, 10, 10,133,162, 81, 78, 0,208, +233,116,249, 66,161,176,173, 76, 38,171,222,231,235,235,139,226,226, 98,214,106,181, 98,253,250,245, 90, 31, 31, 31,133, 76, 38, +179, 91,184, 18, 66, 80, 88, 88,136,128,128,128,106, 31,173,242,242,114,120,121,121, 85, 9, 11,152, 76, 38, 56, 58, 58, 54, 58, +117, 72, 41, 53, 2,152, 89,131,187,243,168, 81,163, 54,111,221,186,181,213,241,227,199,113,241,226, 69,120,122,122,226,203, 47, +191,188,151,149,149,245, 34,165,244,210, 19,232,168,141,150, 41, 46, 46,222,121,243,230,205,103,186,116,233, 82,253,148,232,211, +167, 15,233,211,167,143, 71, 77, 83,191, 90,173,198,159,127,254,137,227,199,143,131, 16,130,219,183,111,219, 12, 6,195,230, 6, +206, 45,106,209,162,197, 47,243,230,205,115, 96, 24,166,186,111,203,100, 50, 72,165, 82,136, 68, 34,240,249,124,100,101,101, 97, +248,240,225,206, 63,252,240,195,207,132,144,214,148, 82, 11,254, 33, 40, 51,192,114, 45, 73,235, 28, 21,238,157,188,102,117, 66, +183, 73,147, 81, 53,117,200, 68,133,123, 37, 95, 75, 82, 57,199,120,193,226, 34,110,152,231,208,241,156,183,204,214, 67,195, 14, + 29, 78, 28,253,254,187, 51,132, 33, 33,225,133,199, 79, 94, 9,234,199,124, 70,220, 61,156, 80, 92,164, 69,214,125, 21,238,102, +155,105, 72, 72,120,225,229, 63,111, 74,190,254,110,105,168, 78,111,220,118,242,116,254,111,141, 12,202,140,132,144, 17, 75,150, + 75, 78, 79,120,181,179, 88, 38,243, 67, 73,209, 77, 4, 5,121, 98,248,208, 14,248,105,195, 57, 56, 59,187,193,219,219, 27, 60, + 30, 79, 97,111,219,139,138,138,200,206, 45,191,191,246,242, 43,111, 60, 61,104, 96, 60,115,248,200, 1,193,169,163,251,206,253, +188,230,195,221,148,175,147, 19, 90, 46,107, 25,236,115, 35,227,206,181, 23,251,246, 31, 11,153,200,177, 13,208,174,206, 14, 91, +189,192,128,226, 62,143, 7,233,203,175, 76,234, 58,104,208,179,204,145, 35,123,112,228,224,134, 11, 11, 22,180, 60,120, 47,111, +147,232,252,165, 92,233,136, 23,166,150,238, 63,116,203,252,252,176,224,116, 63, 69,180, 1, 28, 30, 30, 72, 10, 4, 42,198,100, + 10, 12, 24, 52,136,175,207,206, 22, 58,120,123, 51, 0, 96,181, 90, 27, 21, 90, 0, 88,123, 56,237,173,139, 94,175, 7, 11, 48, +246,112, 22, 20, 22,182,172, 28,132, 87,195,106,181, 86,139,172,226,226, 98,148,149,149, 65,161, 80, 64,109, 50,121,219,195, 57, + 48, 54,118,253,167,159,124, 50,107,199,206,157,162,154, 34,171,234, 35, 20, 10,177,104,241, 98,209, 59,239,191, 63,245, 77,129, + 96,122, 83,174,103,213,160,157,207,231, 67, 32, 16, 32, 59, 59, 27,247,239,223, 71,118,118, 54,178,179,179, 33,147,201, 64,235, +185,158,143,209,162, 69,254,174,253,180,106,234,176,230, 20,162, 93,225, 29,154,226, 12,111,175, 48,176,217,108,143, 85,104,233, +116,186,227, 39, 78,156,136, 29, 49, 98,132,224,194,133, 11,240,241,241,169, 22, 90, 85,127,171,166,163,228,114, 57,118,239,222, +109,209,233,116,199, 27,249, 49,157, 56,120,240, 96,204,252,249,243,133, 19, 39, 78, 68, 74, 74, 10, 38, 79,158,140,178,178, 50, +104,181, 90, 20, 23, 23, 67,175,215, 35, 54, 54, 22, 82,169, 20, 55,110,220,176,234,245,250, 19,141,188, 28,104, 97, 97, 97,133, +167,167,167,111,237,255,189,240,194, 11,222, 43, 87,174,212,167,166,166, 90,187,117,235,230,100,175,224,168,194,150, 45, 91,170, + 45,117,233,233,233, 88,185,114,101,181, 79,214,149, 43, 87,240,205, 55,223, 84,199, 62,107,162,149,241, 82,100,100, 36, 99,181, + 90,209,166, 77, 27,248,251,251,195,104, 52, 98,233,210,165,204,147, 16, 89,246,194,104, 52,238,152, 48, 97,194, 7, 87,175, 94, +245, 21, 8, 4, 15, 76,218,149,237,179, 88, 44,184,115,231, 14,146,147,147,145,154,154,138,146,146,146,234,129,192,181,107,215, + 74,173, 86,235,182,250,120, 61, 61, 61, 63,250,233,167,159,124,228,114,249, 67,253,185,202, 26, 90,101, 37, 85,171,213,112,113, +113, 65,191,126,253,188, 78,156, 56,241, 17,128,249,255,132, 23, 26, 33,132,244,237,197,239,252,206, 91, 35, 48,114,168, 60,103, +215,254,188, 63,190,249,122,102,165, 51,188, 87,242,200,161,254, 57,215,211, 92,240,194,115,123, 58,159, 60, 77,114, 27,242,165, +171,244,177,218, 27, 27,235,118,106,215,190,125, 63,207,157,253,238,149, 89, 51,223,240,212, 27, 50,164, 33, 45,196, 4, 0,238, +102,155,233,141, 20,214,248,205,146,119,175, 36, 44,254,129,167, 42, 46,155,124,241, 98,253,225, 13,106,138,151,200, 48, 72, 67, +218,245, 82,134,134,117, 15,190,112,110, 35, 28,228, 6,180,109,215, 25,131, 6, 62,131, 83,137,215, 80,160, 54, 34, 63, 63, 31, + 38,147,169,193,112, 9,169, 55,118,143,167,132, 6, 17, 74,238, 19, 30,149,142,159,240,122,143,248,248,103,233,254,253,251,152, + 61,187, 55,158,221,246,235,242, 29, 60,145, 80, 96, 48, 59,155, 9, 49,106,192, 75, 74,169,208, 61, 24,208, 8, 37,162,250,205, +175,149,129, 93, 35, 34,219,249,140,159, 48,217, 57,110,200,112,122,240,224, 30,118,219,214,245,167,182,173,107,191,145,229,105, + 69,249, 57,122,137, 70,107,213, 80, 34,118,169,208,178,122,213,221,214, 70,191,248, 23,254, 49,162,253,177, 13,184, 77,166,220, +138,156, 28, 95,183, 94,189, 36,119, 62,249, 68,238, 29, 27,107, 36,149, 62,196, 13, 9, 45, 62,159, 15,240,120,172, 61,156,246, +214,197, 96, 48,128, 5,172,205,225,100, 24,230, 33,145, 85, 37,180,170,236, 26,246,112,174, 89,176,224, 66,208,160, 65, 37,137, +137,137,222,189,123,247, 38,229,229,229, 40, 47, 47,127, 72,108,249,249,249,145,136,168, 40,249,150, 83,167, 66,230,219,121, 61, +237,105, 59,143,199,123,226, 66,235,239,140,186, 44, 89, 15, 89,180,234, 67,149, 69,203, 30,161,101,167, 69,203,106,181, 90,225, +229,229,133,162,162,162,122, 95,252, 60, 30, 15, 50,153,172,106,142,184,193,149,119, 38,147,105,233,172, 89,179,166, 13, 25, 50, +196,163,109,219,182, 80,171,213,240,246,246,134, 84, 42,173,246, 29,171,226,187,114,229, 10,126,250,233, 39,173,201,100, 90,218, + 8,231,119,139, 23, 47,126,107,228,200,145,110, 62, 62, 62,112,117,117,197,141, 27, 55,224,234,234, 10,173, 86,139,180,180, 52, + 56, 58, 58, 86,251,237,236,219,183,175,220,100, 50,125,215,136,120,163,103,206,156,177, 56, 58, 58,222, 80,171,213,252,146,146, + 18, 65,105,105,169, 64,171,213, 10, 53, 26,141,240,240,225,195, 30,206,206,206,250,147, 39, 79,170,131,130,130,248,247,238,221, +227, 91,173, 86,158, 29, 47, 71, 76,159, 62, 29, 34,145, 8, 38,147, 9, 75,151, 46,197,172, 89,179,170,125,178, 22, 47, 94,140, +121,243,230, 85, 11,231,181,107,215, 54,181,243,192, 98,177,192,106,181,194,106,181,218, 37,126, 31, 5,246, 8,118, 74,105, 1, + 33,100,104,151, 46, 93,142,110,223,190,221,189, 50, 38, 25, 84, 42, 21, 84, 42, 21,212,106, 53, 42, 42, 42,192, 48, 12,252,253, +253,161, 82,169,176,103,207, 30, 77,121,121,249,160,134, 86, 28,242,249,252, 9, 61,122,244, 16,212,174, 67,213, 40,175, 74,188, + 75, 36, 18, 40,149, 74,244,233,211, 71,156,152,152, 56,225,239, 46,180,170, 4, 76,120, 40, 68, 3, 7,189, 38, 10,143,236,106, +190,158,188, 63,167, 93,176, 42,103,220,112,167, 3, 0,112, 45, 73,229,124, 61,205, 5,225,145, 67,233,192, 65,174, 49,170,130, + 53,237, 35,194,136,165,161,116, 61, 0,224, 44,151,140, 26,208, 63, 86,233,168, 80,240,190, 89,178,246,208,191,254,245,221, 83, + 59, 14,252, 59,188,195, 55, 75, 30,132,119, 24,208, 63,150, 77,189,149, 58, 10,192, 58,123,197,203,208,161,195,174,254,244,203, + 79, 72, 77, 62,233,247,193,244, 14,226, 18,149, 21, 50,135, 64,196, 68,123, 99,205, 47, 55,113,253,250,245, 2,179,217,220,167, +193,190, 68,104, 80,114, 74, 82, 88,251,200, 8,159,241, 19, 38, 57, 13, 29, 58, 28,251,247,239,197,175,235,215,157,121,126,236, +200, 31,243, 74,181,124, 47,161, 92, 36,167,172,152, 47,114, 22,136, 36,178, 66,179,249,193, 26, 8,161, 80,234, 4,140, 98, 27, +152, 57,196,148, 73,227,156,251,246, 31,142, 3, 7,247,226,215,245,107, 78,127, 28,249,194,186,224, 78,225, 36,246,169,175,167, + 6,183, 10,110,161,171, 80,105,121, 68,108, 49, 26, 89,199,175,215,103,125,123,119,222,132,187, 87,147, 70, 45,225, 86, 29, 62, +132, 27,191,198,197,117,121, 39, 35, 67,228,217,189,187, 76,121,234,148,188, 50, 19, 73,131, 66, 75, 32, 16,128,214, 63,213,245, + 16, 39,217,176,129, 7,160,193, 69, 88, 34,145, 8,122,189, 30, 86,192, 98, 15,167,239,145, 35, 57, 25, 25, 25,161,110,110,110, + 15,137,172,146,146,146,234,109,163,209, 8,189, 94, 15,153, 76,150,108, 15,167,234,204, 25,227, 87,211,167,207,127,113,236,216, +229,199, 79,156,144,186,187,187, 67,163,209, 60, 36,180,204,102, 51,250,246,235, 39, 90,124,245,234,120, 0, 11,236,185,158,222, +125,250, 52,234, 15,204,231,243,193, 62,225,169,195,127,192, 96,117, 82, 93,194,139,215,216, 20,142,189,171, 14,235,122, 65, 18, + 66,250,215,218, 53, 47, 38, 38,198,152,158,158,142,160,160,160,106,177, 82,243,156, 78, 78, 78,112,113,113,193,149, 43, 87,240, +197, 23, 95, 24, 0,204,107,136,147, 82, 90,174,215,235,199, 12, 24, 48,192, 32, 16, 8,208,174, 93,187,234,248, 89, 44,203, 66, + 44, 22, 67,161, 80,224,234,213,171, 24, 54,108,152, 94,175,215,143,169, 29, 67,171, 14, 78,141, 94,175,127,105,224,192,129,250, +148,148, 20,244,232,209, 3,215,175, 95, 71, 69, 69, 5, 42, 42, 42,144,153,153,137,136,136, 8,232,245,122,172, 92,185,210,160, +215,235, 95,162,148,106, 26,226, 44, 47, 47, 31, 54,107,214, 44,254,230,205,155,131,253,253,253, 35, 59,119,238,220,182, 95,191, +126,173,159,123,238,185, 22,113,113,113,190,161,161,161,198, 65,131, 6,121, 14, 25, 50,196, 83,175,215, 11,255,248,227,143,124, +171,213, 58,164,145,235, 89, 45, 78,210,211,211,171,167, 10, 5, 2, 1,138,138,138,170, 35,247, 87, 61,148,234, 18,194,245,113, +214, 20,219, 85, 2,171, 74,112, 53,246, 14,168,135,179,209, 23,135, 88, 44,174,178,120,210,198, 56, 41,165,215,110,221,186, 53, +160, 87,175, 94,215, 94,123,237,181,242,130,130, 2, 56, 58, 58, 34, 36, 36, 4, 97, 97, 97,240,240,240,128,197, 98,193,238,221, +187,117,123,246,236,185,169,209,104,250,212,142,161, 85,155,147,199,227,101,214,245,144,173,178,102, 85, 9, 45,169, 84, 10,127, +127,255,170,107,155,217,148,235,217,204, 31,239,147,229,172, 20, 48,253,250, 14,106, 21, 23, 63,194,121,247,222,115,226,229, 43, +246,220,140,233,143,181,238, 45,181,251,220, 91,106,247,197,244,199,218,229, 43,246,220,220,189,247,156, 56, 46,126,132,115,191, +190,131, 90,165, 36,167,182,125, 40,239, 97, 29,245,148, 74,165, 93,123,116,143, 41, 77, 60,123,154, 77, 88,252, 3,175,111,159, +231,175,174,251,113,247,238,117, 63,238,222,221,183,207,243, 87, 19, 22,255,192, 75, 60,123,154,237,209, 61,166, 84, 42,149,118, +181,167,237, 83, 38,141,115,142,143, 27,142,253,251,119, 51, 59,182,172, 92,188,117,231,237, 94,175, 79, 59,163, 74, 79,191, 78, + 11,115,143, 64,200,203,198,173, 91,183, 52,102,179,185, 79, 93,142,240,117,113, 78,126, 99, 92, 77,145,245,187,187, 79,143,181, +183,110,193,118,236,216,111,214, 19, 39,174, 26,126,191, 86,168,185,156, 82, 84,162, 84,151,220,211,106,139,205, 44,107,131,205, +102,227,127,250,233, 3,135,221,250,238, 81,183,110,189,113,242,248, 38,172,255,101,181,134,101, 97,124, 97,251,118,219,168, 81, +159,208, 22, 45, 91,182,216,184,101, 19, 25,250,236, 8,103, 10,176,195, 70, 14,119,217,188,117, 51,105,213,166, 85,203,144,144, + 7, 33,109,254,150,125,233, 9,112, 46,160,180, 84,155,157,125,250,202, 15, 63,152,188,199,140,113, 19,123,123, 59,193,102, 35, + 85,207,247,250, 62, 2,129,224, 33, 11, 76, 67,156,254, 30, 30,121,251,246,237, 67, 88, 88, 24,252,253,253, 81,211, 71,182, 42, + 32,183,187,187, 59,118,238,220, 9, 10, 92,182,135,179, 83,112,240,149, 69, 95,125,101,102, 89, 22,165,165,165,255, 97,205, 42, + 45, 45, 5,203,178, 56,120,224,128, 89, 91, 81,177,222,222,182,247,225,243, 43, 94,236,217, 51, 33, 62, 62,222,146,145,145, 1, +150,101, 81,211,178, 85, 88, 88, 8, 7, 7, 7, 24, 77,166, 64, 66,136,220, 30,206,194,195,135, 21,104,228,185, 94,219,162,245, + 36,238,251,223, 93,100,213, 76, 40, 93, 83,116, 53,104,209, 98, 24, 6,129,129,129, 15,165,116,225,241,120, 15,125,154,178,226, +144, 82,186,129, 16,114,100,208,160, 65,243,159,126,250,233, 41,243,231,207,231,183,109,219, 22, 26,141, 6,174,174,174,240,242, +242, 66, 90, 90, 26,246,237,219,103, 43, 42, 42, 90, 5, 96,161, 61, 75,232, 41,165,167, 8, 33, 67, 59,116,232,176,117,206,156, + 57,206, 3, 7, 14, 20, 6, 6, 6,130, 82,138,171, 87,175, 98,215,174, 93,150,117,235,214,105, 43, 69,214, 41, 59,235,122,148, + 16,242,252,144, 33, 67, 54, 78,152, 48,193,209,102,179, 9, 51, 51, 51, 97, 50,153, 96,181, 90,113,255,254,125,203,254,253,251, + 43,244,122,253, 56, 74,233, 81, 59,248,174, 16, 66, 34,142, 29, 59, 54,225,143, 63,254,248,226,181,215, 94,115,239,215,175,159, +136, 97, 24,156, 61,123, 86,221,169, 83, 39,175,194,194, 66,203,206,157, 59,139,141, 70,227, 60,155,205,102, 87, 10, 30, 66, 8, +180, 90, 45, 60, 60, 60, 96, 50,153,192,178, 44,204,102, 51, 28, 28, 28,170,211, 38, 81, 74,209, 20,231,250, 90,125,128,111,177, + 88, 48,118,236, 88,176, 44,139,165, 75,151,130, 97,152, 38,147, 57, 59, 59, 95,190,118,237,218,208,232,232,232,106,241, 82,213, +135, 36, 18, 9, 60, 60, 60,224,238,238,142,253,251,247, 67, 40, 20, 94,182,243, 30, 93, 7,208,137, 16,210,245,230,205,155, 47, + 3,136,182, 88, 44,254, 54,155,141,240,120,188,124, 74,233, 13,173, 86,251,163,189, 41,120, 10, 11, 11,191,120,229,149, 87, 58, +109,218,180,201, 65, 32,248,247, 79, 67, 32, 16, 64, 34,145,160, 42, 56, 38,165, 20,102,179, 25, 31,125,244,145, 86,167,211,125, +241, 79,121, 80,196,116,142,197,154,149,203, 28, 78,156, 60,162,190,117, 27,187,106,134,112,112, 17, 3, 39, 79,147, 92, 85,193, +154,246,202,156, 28,135,152,206,177,118,113, 90,205,150,226,151,198,189, 23, 84,153,130,231,163,204,204,172,213, 27, 55,124,123, + 23, 0,190,254,110,105,168,170,184,108,114,234,173,212, 81,171, 87,111,233,106, 53, 91,138,237,225,252,183,120,217,168, 1,133, +145, 82,122,145, 16, 18, 60,108,204,225,121,109, 90, 57, 61, 91, 88,108,200,171,168,208,191, 77, 41,189,107,111,219,187,119,235, +133,147, 71, 55,227,215,245, 27,181,148,229, 27, 61, 60, 60, 40, 0,220,186,229, 65,111,221, 42,163,255,246, 43,118,209, 9,233, +245,133,239,189,221,239, 61,141,182,228,187,239, 86, 52, 28,184,182, 67,199,167,209,161,227,211,152,246,246,135,206, 17,145,237, +130, 0, 96,251,118,106,139, 10, 37,191,205,255,248,147,103, 23, 46,252, 4,218,114, 19,170,210,245,164, 37,165, 28,200,200,160, +102,238,181,245, 48,230, 51,204, 69,188,247, 94,168,190,164,196,179,251, 7, 31,120, 8,222,127,159,215,144, 51,124,205,223,175, + 61,156,151,110,220, 56, 48,249,245,215,243, 22,204,159, 63,104,213,234,213,178,246,237,219,163,160,160, 0,237,218,181,131,191, +191, 63,142, 29, 59,134,157,219,182,233,202,202,203,231, 1,248,151, 61,156, 27, 14, 30, 76,107, 27, 25, 89,180,122,245,106,191, +248,248,120,162,211,233,160,209,104,160,209,104, 96, 50,153, 80, 25, 16,154,166,223,190,125,203,106,181,174,178,183,237, 54,181, + 90,186, 48, 54, 54, 87,196,178,139,158, 31, 57,114,214,194,207, 62,147,180,106,213,138,152, 76,166,106,171,150,197, 98,129,131, +131,131,197,108, 54,187, 3,208,219,195, 41, 89,183,142, 81,171,213,240,244,244,172, 14,215, 84, 51, 46, 97,121,121, 57, 40,165, + 92, 48,221,230,136,176,250,222,229,110,110,110,151, 5, 2, 65, 64, 77,235, 86, 93,185,243,106,238,179, 90,173,185,106,181, 58, +166,166,226,165,148, 30,175, 71, 32,132, 0,248,178,111,223,190,207,207,156, 57,147, 36, 38, 38, 98,207,158, 61,244,238,221,187, + 59, 0,204,171,239, 33,217, 8,167,163, 68, 34,153,161, 80, 40,250, 87,133,112,144,203,229, 55,117, 58,221,113,147,201,180,180, +190,104,240,141,112, 58, 73, 36,146,233, 10,133, 98, 64,121,121,121, 52, 0, 56, 58, 58, 94,211,233,116,199, 76, 38,211,178,250, + 18, 85, 55,194, 41,115,118,118,254,194,195,195,227,165,247,223,127,223,253,204,153, 51,249, 39, 79,158, 20,149,149,149,109, 50, +155,205,245, 38,149,174,139,211,221,221,253, 50,159,207, 15,120, 18,247, 8, 0, 58,118,236,184,127,216,176, 97,241,227,198,141, +131,213,106,197,191,254,245, 47, 28, 59,118,236,192,237,219,183,135, 54, 52, 26,173,205, 73, 8,241, 8, 8, 8, 72,156, 50,101, + 74,139,177, 99,199,202, 93, 93, 93, 33, 16, 8,160,211,233,112,231,206, 29, 92,189,122,149,238,221,187,183,226,202,149, 43,185, +122,189,190, 55,165,180,200,222,235,249, 40,163,230,218,156, 66,161,176, 87, 96, 96,224,150, 5, 11, 22, 56, 14, 24, 48, 64,230, +238,238, 14, 62,159, 15,171,213,138,252,252,124, 36, 37, 37,225,200,145, 35,186, 29, 59,118,232,138,139,139,199, 82, 74, 79,255, + 47,234,249, 56, 57, 35,194,200,199,181, 18, 69,215, 27,237,189,161,178,246,212,179, 95,111,191,225,163,158, 31, 50, 24, 0,182, +239, 60,116,248, 68,162,114,111,115,235,217, 88, 93,237,225, 12, 15,229, 47, 72, 78, 73,122, 40,160,101,100, 68, 84,122,120,251, +145,159,219,195, 85, 21, 25,190,118,219,107, 68,219,175,105,211,125,104,154,181, 42,241,244,135,243,230,226,203, 47, 18,176,119, +251,238, 3, 41, 25,116,255,223,185, 47, 61, 73,206,170, 36,200,114, 95,223,158, 75, 89,118,238,245,164, 36,135,154, 3,182, 42, +203,115,205, 65,165,159,159, 95,161, 82,169,244,182,135,115,232,247,223, 91,244, 10,133,100,238,162, 69,189, 42,140,198, 94, 11, + 23, 46, 20, 92,186,116, 9, 43,127,248,129, 49,230,230,110, 84, 3,211,235,154, 13,105,136,179,197,244,233,210,217, 43, 87, 78, + 12,105,211,198,235,229,151, 95, 22, 10,133, 66,232,116, 58,228,228,228,224,232,145, 35,230,148, 91,183, 82,180, 90,237,179,148, + 82,165,189,156, 67,191,255,222,226, 18, 18, 2,185,167, 39, 61,113,234,148,243,228, 25, 51,166,180, 12, 14,118, 30, 52,120,176, +208,201,201, 9,165,165,165,200,204,204,196,238,221,187, 11, 43, 42, 42,252, 40,165, 54,123, 56, 55,254,241, 71,135,131,167, 79, +191,240,249,231,159,139,163,162,162,224,236,236,140,242,242,114, 36, 37, 37,225,244,233,211,166, 85,171, 86,105, 52, 26,205, 20, +134, 97,246, 61,169,251,254, 79,157, 58, 36, 79,210, 21,192,158, 27, 65, 8,137, 1,240,113,229,215,207,236,200, 25,248,143,121, +248, 16, 66,130,220,220,220,214, 24,141, 70,106, 48, 24, 38, 83, 74,239,255,213,234, 73, 8, 17,196,196,196,172, 44, 44, 44,236, + 74, 41,133,179,179,243,185,228,228,228, 55, 41,165, 76, 83, 57, 9, 33,124, 0, 93, 29, 28, 28, 98, 29, 29, 29,123,153, 76,166, +240,202,233,183, 91, 58,157,238,180,197, 98,185, 8,224, 28,165,212,246,191,108,123,101, 61, 7,248,249,249,189,206,178,108, 27, + 66,136,139,205,102,131,213,106, 45, 99, 89,246,142, 70,163, 89, 7,224,216,255,186,158,143,139, 51,178, 13,121,142,242, 16, 94, +159, 32,120, 72,216,212, 18, 16,132,197,173,228, 59,116,119, 19,250, 60,111, 72,255,192, 21,192,131,149,137,141,165, 50,122, 72, +104,217, 33, 94,154, 44, 50,219, 8, 94,161,132, 6, 61, 60,250, 36,247,219,117,120,238,215, 71, 17, 90,246, 34,178, 45,233, 5, +138,174, 44,197,197, 91,183,233,201,127,234,179,238,113,114, 38, 16,226,246,131,171,235, 57,158, 64,224, 3,128, 87,105,125, 97, + 89, 66,108,148, 16,166,230,244, 86,205,129,101, 99,156, 22,160,189, 80, 34, 9,180, 49,140,119, 1,224,112,208,102,123,202, 72, +105, 69, 0,240,241, 85, 74,211,154, 83, 79, 11,208,158, 47,145, 4, 29,164,116,184, 90,161,232, 80,104, 48,120, 2,160, 14, 10, +197, 45,173, 78,183,222,104, 52,174,168, 35,121,123,163,156, 34,137, 36,192,198, 48,222, 0,192, 19, 8, 10,183,154, 76,129,185, + 78, 78, 47, 27, 77,166, 22, 14, 14, 14, 86,179,217,172, 53, 26,141,227,172, 86,235,137,166,180,253, 14,195, 68,252,193,227,245, +176, 40, 20,238, 22, 66, 20,102,134,177,152, 45,150, 28,163,209,120, 19,192,183,148,210,140, 39,121,223,255,177,168, 90,157,246, + 36, 62, 0,250,115,156, 28, 39,199,201,113,114,156, 28, 39,199,249,228, 57, 1,200, 1, 4, 1,224,255, 29,219,254, 79,250, 0, +152, 84,181, 45,224,164, 38, 7, 14, 28, 56,112,224,240,143, 48,156,232, 81,135, 79, 22,135,255, 45, 8,128,254,245,220, 48,187, + 77,130,205, 89,125, 96,199, 20, 3,199,201,113,114,156, 28, 39,199,201,113,114,156,255, 48,206,198,184,255,142, 83,146, 13,229, + 58,228,166, 14, 57, 78,142,147,227,228, 56, 57, 78,142,147,227,228,166, 14,159,208,135, 7, 14,245,169, 83,111, 66,136,247,227, + 46,203,225,159,221, 23,234, 56,214,159, 16,226,223,196,242,190,220, 85,231,192,129, 3,135,127, 6,254,235, 66,203,222,151,214, + 35,190,220, 30, 73,248, 16, 66, 18, 8,129,242,193,135, 36, 60,174,178,118,156,215,207,211,211,243,157,200,200,200,141, 62, 62, + 62,211, 8, 33, 94, 77, 60, 62, 84,161, 80, 44,115,112,112, 72,116,112,112, 72, 84, 40, 20,203, 8, 33,161,143,233,190, 17, 66, +200,100,169, 84,122,202,207,207, 47, 79, 34,145,156, 34,132, 76, 33,205, 76,112, 73, 8,105, 75, 8, 89, 72, 8,249,140, 16,210, +161, 41,199,122, 71,141,216,230, 21, 53,226,134, 87,212,136, 36,143,246,207,134,122, 69,141, 72,242,138, 26,113,195, 59,106,196, +182, 39,208, 95,155,125,127, 43,143,189,255,224,211,248,177,132,144,111, 9,144, 67, 8,114, 31,181, 47,113,224,192,129, 3,135, +191, 6,154,228, 12,239,239,239,255, 60,165,116, 50, 0, 74, 8, 89,147,151,151,183,179, 25, 47,158,217,149,219,139, 41,165,115, + 31,165,156, 29,199,126, 71, 41,157,213,116,145,134,217, 44, 75,121, 0,192,227,145, 15,188,189,189,229,124, 62,255, 63, 28, 12, +109, 54,155,156, 16, 76, 99, 89, 74, 42,203,206, 38,132, 44,163,148,170,154, 35, 14,199,143, 31,255,221,178,101,203,164,114,185, + 28,217,217,217, 3,167, 76,153,210,141, 16,242, 30,165, 52,191,177,227,101, 50,217,139, 93, 98,187,190,183,232,235, 37, 14,222, + 94, 94, 10,198,198, 90, 50,179,179,228, 31,205,153, 21, 43,147,201,150, 53,148, 76,185,182,160, 2, 48, 73, 32, 16,140,150, 74, +165,173,141, 70, 99, 6,195, 48, 59,248,124,254,160, 47,190,248, 34, 42, 46, 46, 78,170,213,106,197, 12,195,180,249,245,215, 95, +223,251,233,167,159,134, 16, 66,134, 55,180, 76,191,202,162, 67, 41,205,171,177,251,133,236,236,236, 24,145, 72, 68, 66, 66, 66, +120, 0,110, 52, 82,190, 26, 20, 8, 77, 62,187,189, 61, 0, 68,118, 31,149,158,124,118, 59, 42,183,159,192,160,224,225,190, 32, +149, 74, 87, 25,141,198,251, 85,255,175,172,167,202,158, 99, 9, 33,203, 43,211, 7,197, 0,120,185,178,232, 6, 74,233,101, 66, +136,143, 84, 34,153, 97, 48, 26, 9, 0,242, 40,125,137, 3, 7, 14, 28, 56,252,215,141, 72,157, 40,165, 87, 43,103, 36,226, 1, + 28,168,122,119, 55,117,213,225, 91,183,111,223,118, 0,128,176,176,176, 55, 1,236,108, 66, 37,254,227,197,211,175, 95,191, 78, + 50,153,236,161, 40,200, 6,131, 65, 76, 8,250, 53, 71,188, 84,157,195,108, 54,241,132, 66, 49,120, 60,242, 94,135, 14, 29, 90, + 22, 21, 21,157,225,241,120, 27,115,115,115, 75,155,113,241,176,118,237,218, 48, 95, 95,223,255,136,214,156,159,159, 47, 30, 62, +252,217, 38,241, 77, 36, 68, 98,146, 72, 98, 69,132,248,218, 24,198, 5, 0, 4, 2, 65,105, 91,103,231,152, 47, 63,255, 92, 78, + 8, 97,139,139,139, 97, 48, 24,240,238,187,239,202, 82, 82, 82, 70, 0, 88,209, 72, 29,195,158,126,166,219,187, 71,142, 28, 14, +215,150,148, 26,215,126,183,250,138, 65, 32,210, 7, 71,180, 19,173, 92,179,222,117,210,196,113,111, 19, 66,174,213,149,142,164, + 22, 15, 15,192,238, 25, 51,102, 68, 14, 29, 58, 84, 92, 94, 94, 46, 53, 24, 12, 45, 55,110,220,248, 81, 76, 76,140, 67,116,116, +180,120,203,150, 45, 68,163,209,128, 82, 42,111,215,174, 29, 29, 61,122,180,113,235,214,173,211, 0, 44,111, 76,248,242,249,252, +165,109,219,182, 93, 80,217,102, 81,141, 50,194,136,136, 8, 5, 0,164,165,165,125, 74, 8,102, 52, 36,178, 9,112, 59,178,251, + 40,128,160, 77,242,217,237,210,200, 30,163,140,160,184, 67,128,219,149, 3,130,133, 64,141,184, 80, 15,227, 86, 94, 94, 94,179, +114, 19,198,199, 15, 37,132,144, 29,126,126,126, 59, 11, 11, 11,131, 9,193, 27,246, 14, 6, 8, 33,196,221,221,253, 21, 0, 9, + 0, 94,191,117,235, 86, 39, 0, 8, 15, 15, 23, 1,184,236,228,228,212,205, 98, 54, 19,238,113,197,129, 3, 7, 14,127, 75,116, + 2,112, 21, 64,124,141, 20, 60,107,154, 35,180,196, 0,112,230,204, 25, 0,144, 52, 71,244,213, 20, 48,211,167, 79,135,175,175, +111,109,241,130,196,196, 83,143,210,216,135,206,241,217,103,159, 57,148,149,149,245,255,241,199, 31,123,250,251,251,127,147,151, +151,119,161,161,131, 41,165, 42, 66,200,226, 74, 11, 4, 36, 18,105,250,148, 41, 83,174, 86,254,187,229,111,191,253, 38, 31, 54, +108,152, 30, 64, 22, 0, 72, 36, 82,127, 62,159, 23,246,192,233, 13,139, 27, 18,132,163, 8, 9, 17,139,197,125, 39,127,255, 61, +243,212,176, 97, 2,133,167, 39, 1,128,172,212, 84,247,197, 95,127,221,173,244,238, 93,177,193,221,189,184, 88,167, 51,164,167, +167, 67, 34,145, 16, 62,159,255, 84, 99, 13, 86, 40, 20,239,124,254,229, 34,133,182,164,204, 96,212,150,155,249,140,213,228, 40, +147,219, 84, 5,133,197, 14, 50,133,254,131,143, 63, 17,191,245,198,132,119, 0,188,217, 8,213,180,247,222,123, 47,188, 75,151, + 46,254,219,182,109, 35, 26,141, 6, 2,129,192, 33, 58, 58, 26, 49, 49, 49,182,147, 39, 79,146,224,224, 96, 68, 69, 69,225,236, +217,179, 56,119,238, 28,233,212,169,147,124,215,174, 93,227,235, 18, 90,181,197, 53,159,207,123,183, 93,187,118,209, 10,133,194, + 28, 22, 22,134, 55,222,120, 3,148, 82,244,239,223, 63,202,193,193, 97,167, 78,167, 19,167,165,165,246,108, 76,100,171,146,246, +140, 6, 0,175,168, 17, 55, 0,180, 7,197,157,194,164, 61, 53,167, 31,195,211,210,210,158, 46, 45, 45,173,118, 70,172, 74, 96, +222,179,103, 79,187, 59, 82, 85, 95, 24, 54,108,232, 7, 0, 33,253,251,247, 47,155, 54,109, 26, 47, 53, 53,245,165,231,158, 27, + 17,117,251,246, 29,212, 87,207, 90,253,136,188,242,202, 68,149,131,131,195, 72, 63, 63,191, 52, 0, 2,145,168, 90,103,242,189, +189,189, 61, 59,116,232, 48,213,205,205,173,144,207,227,121, 81, 80,218, 88, 95,226,192,129, 3, 7, 14,127, 41, 28,168, 20, 87, + 7,106,255, 67, 0, 0, 7, 14, 28,160,255, 30,181,199,147,134, 94, 60,215,175, 95, 15,212,235,245,176,231, 37, 80,115,137, 38, +165, 84,197,231,243, 87,242,120,228, 77, 66, 8,162,162,218,223, 91,186,116,105, 93, 57,189,204, 81, 81,237,239,241,249,188, 86, +148, 82, 16,194,251, 23,203,218, 84,117,113,214,247, 98, 20,139, 37,179, 1,192,199,199,247,238,161, 67,135,204, 47,188,240, 2, +190,254,250,107,209,156, 57,115,102,181,104,209, 98, 90,118,118,118, 65,125,245,172,252, 62,215,219,219, 91,190,118,237,218,176, + 41, 83,166, 92, 85, 42,149,115, 1,192,207,207, 47, 1, 64, 4,128,172, 26,251,176,106,213,214,188, 55,222,120, 35, 93,165, 82, +205,173,143,243,121, 66, 90,183,104,215,174,239,194, 51,103, 40,207,100, 34, 69,191,255,174, 85,171, 84,214, 12,181, 90,254,203, +229,203, 67, 63, 74, 72, 16, 6, 6, 5, 33,113,223, 62,143, 34,189, 94,173, 49,153,140, 42,149,138, 50, 12,115,206,142,182, 71, +122,121,122,201, 87,127,251,175, 75,142, 66, 62,235, 21,224, 79,132,110,110, 2,158,220, 73,204, 23,240, 76,173, 90,134,138, 1, + 68, 54,118,143, 68, 34,209,248,129, 3, 7,202,183,110,221, 74,162,162,162,224,226,226,130,223,127,255, 29,215,174, 93, 67,105, +105, 41,207,106,181,162,115,231,206, 88,180,104, 17,130,130,130, 80, 86, 86,134,251,247,239,123,136,197, 98,207, 6,174,231, 67, +253,105,246,236,217,240,245,245, 5,195, 48, 40, 41, 41, 1,195, 48,112,112,112, 0, 0,228,230,230, 98,223,190,189,141,246, 37, + 59, 69, 18,158,121,230,153,114, 66,200,173,218, 22,173,166,112,250,251,251,111, 81,171,139,134,244,237,219, 23,165,165,165,214, + 79, 62,249, 4, 29, 58,116, 64, 88, 88,152, 61,125,126,174, 68, 34,249,177, 69,139, 22,223, 78,159, 62,221,215,205,205, 13, 38, +147,233,163,130,130, 2, 76,157, 58, 21, 0, 16, 23, 23,215, 65, 40, 20, 30,122,237,181,215, 16, 28, 28,156, 87, 82, 82,114,255, +202,149, 43,111,232,116,186,164,230,182,221,206,235,195,113,114,156, 28, 39,199,249,151,226,180, 87,139,252, 21, 81, 57, 77,184, +166,198,247, 53, 15, 9,173,248,248,120,114,224,192, 1,106, 71,195,138, 3, 2, 2, 2,101, 50, 25, 0, 20, 55,181, 34, 54,155, +109,154,135,135, 71,225,220,185,115,187,135,133,133,153,167, 77,155,150,148,153,153, 57,175,102,153,224,224,224, 47,126,248,225, + 7,164,167,167,103, 37, 36, 36,156, 45, 42, 42,250,172,137,141,157, 67, 8, 89, 90,105, 29, 43,218,183,111, 95,135, 51,103,206, +188,249,221,119,223,121,190,245,214, 91,162,119,222,121,103, 28,128,175, 27,227,225,243,249,250,186,166, 11,235,130,175,175,175, +185, 46, 31,174, 42, 12, 35, 68,230, 36, 22,247, 89,120,230, 12, 53,103,101,233,127, 90,178,196,113,245,159,127, 46,176, 82,234, +237,229,229,133, 30,221,186, 85, 72,249,252,162,194,130, 2,214,171,117,107,126,230,161, 67, 30, 6,177, 88,185,117,235, 86, 77, +113,113,241,158, 70, 77,120,132,104, 89, 74,205, 14, 1, 65,214, 23, 70, 12,136,186,116,241, 90,170,163,151, 7,175, 83,116, 84, +135,212,244,172, 43, 96, 89, 11, 33, 68,219, 24,143,179,179,115, 88,113,113, 49,180, 90, 45, 60, 61, 61,177,116,233, 82,248,248, +248, 64,175,215, 35, 57, 57,153, 6, 4, 4,144, 51,103,206, 32, 32, 32, 0,106,181, 26,102,179, 25,229,229,229,133, 38,147,201, + 80,159,240, 21, 8, 4, 63,243,120,100, 34, 33, 4,173, 90,133,100,175, 88,177,194,204,178, 44,194,195,195,241,220,115,207, 97, +215,174, 93, 72, 78, 78,174,178, 60,153, 91,180,104,153,205,227,145, 22,149, 90,169,217, 86,157,170,212, 62,121,121,121, 35,155, +101, 22, 37,132,231,231,231, 55, 46, 52, 52,244,205, 23, 95,124,209, 42, 22,139,161,211,233,170,174,133,117,200,144,184,178, 97, +168,130,175, 28, 0, 0, 32, 0, 73, 68, 65, 84,195,134, 58, 31, 56,112,160,193,122,154, 76,166,187,222,222,222,175,191,247,222, +123, 27, 87,173, 90,229, 58,111,222, 60,176, 44, 11, 74, 41, 24,134,169, 78,250,205,178, 44,118,239,222,141,140,140,140, 47,106, +138, 44, 14, 28, 56,112,248,255,130, 38,104,145,191, 28,106,248,102,161,182,216,250,175, 71,134,231,243,249,171,143, 30, 61, 26, +221,179,103, 79, 65,191,126,253,162, 2, 2, 2,162,114,115,115,147, 0, 32, 32, 32, 32,106,240,224,193, 81, 94, 94, 94, 88,182, +108,153,158,207,231,175,110,166,178,172,249,210,187,234,235,235,251,205,174, 93,187, 22, 79,158, 60, 25, 62, 62, 62, 17,255,237, + 54, 59, 73, 36,157, 94, 91,186,148, 17, 90,173,188,239,191,249,198,105,201,169, 83,139,183,109,223, 46,120,230,153,103, 8,165, + 20, 55,111,220,144, 45, 90,190, 92, 62,118,196,136,172,180,187,119,153,189, 71,142, 88, 85,121,121, 37,121,106,245,124, 74,105, + 73, 99,252, 86,171,245,252,237,219,183,253,122,244,122,198,255,244,159, 73,215, 94, 24, 17,215, 87, 40,224,145, 59, 89,185,151, +125,125, 60,156, 19, 79, 29, 55, 88,173,214,243,141,241,232,116,186, 76,134, 97,220, 40,165,158,137,137,137,240,244,244, 68,105, +105, 41,172, 86, 43,204,102,179, 89,175,215, 75,139,139,139, 97, 52, 26, 97, 50,153,224,228,228,132,155, 55,111,170, 24,134, 57, + 89, 31, 39,195, 48,175, 73,165,210,207,132, 66,161, 88, 36, 18, 41, 47, 95,190, 12,173, 86,219,210,197,197,229,107,134, 97,160, + 84, 42,113,230,204,153,247,157,156,156,178, 0, 64, 42,149, 66, 44,150,184,155, 76, 38,166, 62,103,120,123, 45, 90,205,133,175, +175,111, 80,171, 86,173, 22,126,240,193,236,240,142, 29,163,161, 86,171,193,178, 44, 20, 10, 5,244,122, 61,156,156,156,208,181, +107,215,204,133, 11, 23,230, 83,138, 73,141,137, 65,149, 74,165,246,247,247,159, 54,121,242,228,207,194,194,194, 90, 81, 74, 17, + 26, 26,138,129, 3, 7,226,208,161, 67, 72, 79, 79,135, 78,167,179, 93,184,112, 97,179, 82,169,252,141,123,220,114,224,192,129, +195,223, 79, 39, 86,249,102,213,180,102,253, 79,132,150, 74,165, 82, 7, 4, 4, 28,190,114,229,202,208,209,163, 71, 35, 49, 49, +241, 21, 0,239, 1,128, 68, 34,121,101,244,232,209,184,114,229, 10, 82, 83, 83, 15,171, 84, 42,245,227, 56,167, 88, 44, 54,154, +205, 15,140, 83, 82,169, 84,218,196,195, 91, 86, 78, 25, 2, 64,203, 6,246,213, 11,158, 64,224,219,126,240, 96, 65,233,181,107, +218,181, 23, 47,126,182,113,227, 70, 65,247,238,221,137,213, 98,129,141,101, 17, 18, 18, 66,250,245,239,175,248,121,227, 70, 55, +155, 78,119,230,243, 15, 62,248,125,205,107,175, 85,164, 83,154,101, 79, 5, 77, 38,211,242, 55,167,190,222,255, 84,226,239,254, + 17,237, 90,187, 29, 62,122,234,170,187,187,179, 60,172, 77, 27, 69,113,105,137,109,222,156,247, 5, 38,147,233,251,198,120, 12, + 6,195,238,227,199,143,143, 8, 12, 12,244, 76, 74, 74,130,217,108,134,205,102, 67,191,126,253, 64, 41,149, 0, 96, 5, 2, 1, + 82, 83, 83, 97,177, 88, 10,111,223,190,173,188,115,231,142, 4,192, 87, 13,241, 26,141,198,236,154,223, 3, 3, 3, 7,196,199, +199,131, 97, 24, 12, 30, 60, 24,123,247,238, 29,144,146,146,178,164,166,230,123,212,123, 94,105, 33, 11,247,247,247,223, 85,185, +203, 46, 39,248,128,128,128,168,208,208,208, 85, 95,125,245,149, 40, 32, 32, 0,148, 82,184,186,186, 64,175,215,163,168,168, 24, + 17, 17, 17, 8, 12, 12,196, 87, 95,125, 5, 0,155,237,181,184,229,229,229,221, 1, 48, 58, 34, 34, 66, 84, 86, 86, 22, 51, 96, +192,128,101,253,251,247,199,213,171, 87,241,251,239,191,143,149, 72, 36,133, 22,139,133,241,245,245,157, 68, 8,113,178, 88, 44, +155,138,138,138,242,185,103, 23, 7, 14, 28, 56,252, 45, 80,229,163, 85, 29, 37,190,201, 22,173,136,136, 8,133, 70,163,121,185, +101,203,150, 98, 0,144,201,100, 17,173, 91,183,158,149,145,145, 81,222,212,218,232,245,250,109, 27, 55,110, 28,248,237,183,223, +138,226,226,226, 90, 7, 4, 4,116, 1,128,145, 35, 71,182,118,116,116,196,198,141, 27, 45,122,189,254,177,197, 68,178, 90,173, + 61, 59,119,238,140,146,146, 18,100,101,101, 53,105, 90,230,183,223,126,147,227,129, 95, 86,131,251, 26, 2, 99, 54,187,186,248, +251,243,242, 78,157,178,148,104,181,190, 61,123,245, 34, 86,139, 5, 60, 30, 15,197,197,197,184,127,255, 62,156, 93, 92, 72,234, +237,219, 14,235,102,207,254,173,101,199,142, 98,155,217,236,222, 4, 81,161, 35,132, 76,124,123,218, 91,187, 55,109,218,236, 89, +166,213,102,200,100,114,147, 68, 34,242,153,254,246,219,182,146,146,146, 9,148,210, 10, 59,168,190,218,180,105,211,224,193,131, + 7,223, 8, 10, 10,242, 82,171,213, 62,101,101,101,182,146,146, 18, 62, 30,248, 90, 17, 0, 56,117,234, 20,180, 90, 45, 99,179, +217,206, 0, 88, 72, 41, 53,219, 91,215,150, 45, 91, 58,199,198,198,246,246,244,244,132, 70,163,129,187,187, 59,162,163,163,123, +183,108,217,242,199,172,172, 44,205,227,236,245,199,142, 29,115,164,148, 62, 77, 41,197,224,193,131,237, 58,198,102,179,189, 26, + 31, 31, 47, 34,132,192, 96,208, 67, 42,149, 65,161,112,128,163,163, 19,194,194,218, 66,169, 84, 98,208,160, 65,230,140,140,140, +149,249,249,249, 77,238,163, 26,141,102,120,215,174, 93,103, 78,157, 58, 21, 12,195, 96,248,240,225,200,201,201, 89,146,153,153, +185,213,207,207,111,220,171,175,190,234,233,238,238,142,153, 51,103,202, 0,124,202, 61,187, 56,112,224,192,225,175,143,218, 62, + 90,117, 90,180, 26,154, 19,245,245,245,237,225,230,230,246,145,193, 96, 16, 87, 77,201, 16, 66,196,158,158,158,123,253,252,252, + 18,148, 74,101,147,156,226, 74, 75, 75,181,190,190,190,123,207,159, 63, 63,106,228,200,145, 56,118,236,216,132, 74,161,133,243, +231,207,227,222,189,123,123, 75, 75, 75,181,143,163,241, 1, 1, 1, 67,122,247,238, 61,178,115,231,206,216,191,127, 63,108, 54, +219,185,166, 28, 95,115,133, 33,234, 88,117, 88,181,207, 46, 50, 62, 31,132, 16, 48, 12, 3, 0, 40, 82,171,145,158,150,134,146, +210, 82,152,140, 70,232,244,122, 91, 88,112,176, 65, 99, 54, 11, 9, 64,155,120,147,179, 29, 28, 28,238,235,117, 58, 47,119, 87, + 55,131, 92, 46, 65,153, 86, 35,186,124,233, 66, 5,165, 52,195, 78, 14, 51, 33,164,215,161, 67,135,230,243,249,252,209, 14, 14, + 14,120,243,205, 55,249,189,123,247,134, 72, 36,130,201,100, 66, 89, 89, 25, 54,110,220,168,102, 24,166, 85,101, 63,112, 80, 40, + 20,235,249,124,126,174, 86,171,253,168,177,115,152,205,230,184,161, 67,135, 10,204,102, 51, 62,255,252,115, 44, 88,176, 0,131, + 7, 15, 22, 92,186,116, 41, 14,192,166,199,213,233, 89,150,197,128, 1, 3,106, 58,195,223,178,231, 56,161, 80, 24,213,166, 77, + 27,168,213,106,168,213,106,120,122,122,194,207,207, 15, 62, 62, 62, 88,178,100, 9, 93,182,108,217, 97,139,197,178, 82,173, 86, +171,154,209, 23, 39,189,242,202, 43,147, 70,141, 26,133,138,138, 10,156, 63,127, 30,221,186,117,195,226,197,139,125,207,156, 57, +243, 94,231,206,157, 33, 20, 10,145,152,152, 8,134, 97,114,184, 71, 23, 7, 14, 28,254,191,225,239,232,159,213, 24, 26,180,104, + 5, 5, 5,185,216,108,182,247,135, 13, 27, 54, 96,196,136, 17, 24, 52,104,208, 67,255,223,180,105,147,227,206,157, 59, 19, 2, + 3, 3, 7, 91, 44,150,175,154, 50,213,199,178,236,238, 77,155, 54,197, 61,243,204, 51,242, 62,125,250,132, 0,128, 68, 34, 49, +111,218,180, 73,207,178,236,238,166, 54,164,118,240, 72,127,127,255, 14, 2,129, 96,228,208,161, 67, 59, 76,156, 56, 17,201,201, +201,216,184,113,227,157,176,176,176,179, 77,164,206,106,100,213, 97, 66, 99,214, 45,190, 88, 92, 92, 86, 80,224,226, 16, 20, 36, +116,117,116,204,223,191,127,127, 96,255,254,253, 73, 78, 78, 14, 74, 75, 75, 97, 52, 26,113,233,210, 37, 86, 0,100, 11, 92, 93, + 73,246,249,243,132, 47, 22, 55,121,177, 65,160,175,107,232,199,115,166,180, 52,154,140,145, 26,141,134, 17, 8,133,194, 0, 31, +151, 38,189,176, 41,165, 38,133, 66, 17, 3, 64,192,178,172,222,205,205, 77,126,244,232, 81,136,197, 98, 16, 66,208,190,125,123, + 72,165, 82,145, 66,161,184, 15, 0, 62, 62, 62,226,213,171, 87, 59,143, 27, 55,238,247,198,184,159,122,234, 41, 97,112,112,240, +179, 97, 97, 97, 56,127,254, 60,146,146,146,178,207,159, 63,223,162, 83,167, 78, 8, 10, 10,122,246,169,167,158,218,126,229,202, + 21,235, 99, 26, 93, 52,203, 25,222,102,179,177,132, 16,240,120, 60,176, 44, 11,181, 90,141, 86,173, 90, 97,197,138, 21, 88,186, +116,233,231, 74,165,114, 95,115,234, 19, 17, 17, 33,138,142,142,158, 48,106,212, 40,220,189,123, 23, 9, 9, 9, 69,249,249,249, +167,142, 28, 57,242,252,212,169, 83,249,221,186,117, 67,113,113, 49,126,254,249,103,230,242,229,203, 63, 21, 20, 20,108,224, 30, +185, 28, 56,112,224,240, 15, 22, 90, 65, 65, 65,163, 68, 34,209,204, 49, 99,198,240,219,182,109, 11,149, 74, 5, 39, 39, 39, 43, + 33, 68, 8, 0, 46, 46, 46, 86,153, 76,134, 41, 83,166,160, 99,199,142, 61,102,207,158,221,205,223,223,127, 69, 94, 94,222,122, +123, 78,172, 82,169,244,190,190,190, 59,222,124,243,205,175,174, 93,187,218, 10, 0,254,252,243,207,123, 74,165,114,142, 74,165, +210, 55, 81,100, 85, 5,197, 36, 50,153,236, 98,104,104,104,230,144, 33, 67,156, 70,140, 24, 1, 79, 79, 79, 92,185,114, 5,139, + 22, 45,186,109, 54,155,231, 39, 38, 38, 50,255,237,139,204,152, 76, 5,151,247,236,113,236,253,210, 75, 78,211,227,227,191,121, +235,205, 55,191,253,248,227,143, 5,109,219,182, 37,122,189, 30, 23, 47, 94,164, 59,119,238,180,254,252,217,103, 75,161, 80, 8, +207,239,220, 41, 54,155,205,217, 77,180,150,244,138, 27,220,171,237, 55,223, 46,135,209, 80,129,139,231, 14,160,180, 84,141,213, +107,118,181, 13, 8, 8,232,149,155,155,123,186, 9,215, 51,236,216,177, 99, 94,148, 82,136,197, 98, 44, 92,184, 16,126,126,126, +112,114,114, 66,121,121, 57,222,123,239, 61,231, 25, 51,102, 56, 3, 64,114,114,114,117,120,134,198,160, 84, 42,187, 78,153, 50, +197,145, 97, 24, 28, 62,124,216, 76, 8,249,232,248,241,227, 63,182,111,223, 94,220,163, 71, 15,199, 13, 27, 54,116, 3,144,248, +184,132, 86, 51,143,187,115,244,232,209,206,163, 71,143,166, 66,161,144,148,149,149,193,197,197, 5, 43, 86,172,208,229,231,231, + 31,104,118, 31, 96, 24,177, 92, 46, 23, 83, 74,177, 99,199, 14,100,103,103,191, 90, 84, 84, 84,224,237,237,189,235,253,247,223, +159,213,182,109,219,224,180,180,180,236,242,242,242,197, 42,149, 42,147,123, 52,113,224,192,129,195,223, 7, 85, 78,240, 77,138, + 12,111,179,217,166, 28, 57,114,132,207,178, 44,214,172, 89,131,203,151, 47, 83,185, 92,254,145, 92, 46,255, 65, 38,147,217, 12, + 6,195,228, 55,222,120, 99,220,130, 5, 11,120, 61,122,244,192,249,243,231,121,173, 90,181,154, 0, 96,125,141, 19,247,111, 40, +214,134, 70,163,185,164, 82, 21,180,170, 17,160,178,149, 68, 34,189,212, 72, 99, 30,226,172, 35, 40,102,236,194,133, 11,117,190, +190,190,230,164,164, 36,172, 90,181,138,189,124,249,242, 41,177, 88,188, 90,169, 84,154,236,225,124, 76, 23,189,154, 83,204, 48, + 87,126,157, 53, 43,252,169,225,195,217,215,103,206,172, 16,201,100,239,124,179,124,249,236,178,242,114, 63, 16, 66,221,157,157, +179,215, 44, 92,152, 48,248,217,103, 43,146, 79,159,150, 94, 59,118, 76,232,105,181, 94,111, 74, 61,115,115,115, 79,135,182, 14, +194, 47,107,191,133,197, 98, 66,126,222, 3,157, 86, 84,172, 65, 67, 34,171, 46, 78,134, 97, 52,207, 63,255,188, 8,128,108,252, +248,241,226,194,194, 66,180,110,221, 26, 0,160,213,106,113,224,192, 1,180,107,215, 14, 0,112,243,230,205,234,237,198,234,169, + 80, 40,158,237,214,173, 27,178,179,179,145,156,156,124, 66,169, 84, 22,251,249,249,157,200,201,201,137,235,220,185, 51,118,239, +222, 61,172, 62,161,213,212,123,100,143,208,170,139, 83, 38,147,205,217,181,107,215,171,231,206,157, 27, 61,107,214, 44, 97,191, +126,253, 0, 0,229,229,229,122, 74,169,173, 57,156, 53,235,100,181, 90,193,178, 44,220,220,220,116,149, 3,142, 76, 52, 18, 72, +246, 73,247, 79,142,147,227,228, 56, 57,206,191, 2,231, 63, 4,246, 71,134,167,148, 50, 44,203, 34, 49, 49, 17,187,118,237,178, + 89, 44,150, 73, 74,165,242,102,141, 34,203,253,252,252,142, 61,255,252,243,235,211,210,210,248, 41, 41, 41,176,231, 69, 84, 19, + 70,163,209, 90, 59, 37,177,209,104,124,228,169,163, 95,126,249, 5, 5, 5, 5,150,156,156,156,227, 12,195,236,126,196,213,139, +143,188,234,240,103, 74, 77, 47, 17,114,124, 65,247,238, 3,230, 31, 59, 38,121,253,195, 15, 77,175, 76,156,248,190,205,108,182, +242, 69, 34, 86,172, 80,240,108, 18,137, 48,249,244,105,233,178,169, 83,221, 12, 38,211,225, 95,155,224, 96, 94,195,162,133, 87, + 94,127, 23,134, 26, 22,173,243,151,210,209, 84,139,150,209,104,140,172, 20, 29,247, 1,248,188,252,242,203, 96, 89, 22, 6,131, + 1,229,229,229, 80, 42,149,154,137, 19, 39,218, 42,197,147, 96,228,200,145, 78,246,240,134,132,132,248, 9,133, 66, 28, 62,124, + 24, 66,161,240, 0, 0, 8,133,194, 3,199,142, 29,139, 27, 59,118, 44,252,253,253, 67, 8, 33,132, 54,162,146,188,163, 70,108, +163, 64, 40, 8,218, 60,248,197,163,141, 87,212,136, 27, 4,184, 93, 25, 53,254, 86,167, 78,157, 0, 59,253,178,106,162,114,113, +199, 82, 15, 15,143,237,179,103,207,126, 51, 54, 54,118,224,130, 5, 11, 8, 0,254, 99,177,110, 50,204, 35,133,158,224,192,129, + 3, 7, 14,127, 93,171, 86, 93,251, 5, 13, 28,176,166, 87,175, 94,147, 0,240, 9, 33,171,242,242,242,110,214, 46,163, 84, 42, +211,253,253,253,191, 14, 14, 14,174, 78, 52,221,148, 74, 85, 70,114, 95,196,227,145,217, 15,190, 55, 61, 64,101,141, 84, 39,179, + 1, 16, 30,143,191,254,234,213,171, 31,222,191,127, 95,221, 84,225, 87, 23, 30,199,170, 67, 0,216, 68,105,230, 88, 66,142,204, +140,138,234, 63,120,234, 84,116, 24, 60,216,201,175, 69, 11,155,193, 98, 97,111,158, 61, 75,206,237,216, 33,186,118,236,152,208, + 96, 50, 29,222, 69,233,253,166,214, 51, 55, 55,247,116,235,144,128,163, 47,140,140, 27, 24, 18,236, 7, 0,184,155,169, 68, 81, +137,230,104, 83, 68, 86, 45,193, 53,124,197,138, 21,251, 68, 34,145,160,102, 42, 27,139,197, 82, 82, 37,198, 8, 33,126,107,214, +172,217,194,227,241,178, 27,227, 75, 73, 73,217, 59,127,254,252,145, 89, 89, 89, 71,239,223,191,159, 5, 0,217,217,217, 89,126, +126,126,235,243,243,243, 71,102,103,103,239,164,118,168,144, 90, 73,165,145,124,118,187, 20, 64,251,170,164,210,205,205,101, 88, + 19,149,161, 21, 62,242,245,245,221, 52,112,224,192, 55, 0,228, 61, 10,159,217,108,182, 26, 12, 6,198,102,179, 9, 44, 22, 11, + 53,155,205, 86,238,177,196,129, 3, 7, 14, 77, 66,103, 0, 85,153, 72,170, 12, 40,158,181,182,205,168, 76, 23, 88,245,248,173, +252,174, 6,112,169, 6, 71,205,253,141, 29, 11, 0, 69, 0,110, 84,238,171, 75,139,172,169,239,123,189, 66, 43, 47, 47,111, 39, +236, 72, 26,109,111,185, 6,132,210, 92, 66,200,178, 42,209,244,168, 28, 12,195, 60,150,252,112, 60, 30, 47,115,216,176, 97, 77, + 42,223, 88,153, 45,148,102,191, 67,200,134,253,223,127, 31,125,120,213, 42,127, 27,195,184, 19,128,242,197,226, 98,179,217,156, +229,105,181, 94,111,170, 37,235, 33,107,204,221,220, 65, 0, 16, 26, 26, 74,239,220,185, 3, 74,233, 35,173,222,160,148, 94, 7, + 16,216, 72, 25, 37,128, 30,118,138,193,205, 0, 54,215, 33,216,183, 0,216, 98,247,168,161, 42,169, 52,192, 99, 9,251, 66,100, +247, 81, 59, 0,176, 85, 73,165, 31, 39,242,243,243,211, 80, 25,231,237, 81,144,149,149,101, 10, 14, 14,254,117,209,162, 69,227, +175, 93,187,182, 53, 47, 47,207,196, 61, 51, 57,112,224,192,161,105, 34,139, 16,178,191,242,221, 51,180,114,176,191,191,246,118, + 85,153,170,114, 53,203, 84,113,212,222,223,208,177, 0, 48,103,206,156, 15, 19, 18, 18,228, 0,236, 74,198, 92, 51,112,169,224, +175,112,245, 30, 71,242,220,199,157,128, 55, 55, 55,119,237,147,104,235,242, 7, 66,234,194,147,188,158,183,111,223, 38,255,228, + 95, 91, 85, 82,233, 26,136,250, 59,212, 59, 51, 51,115, 69,239,222,189, 87,231,229,229, 49,224,192,129, 3, 7, 14, 77,129,103, + 93,194,168, 30, 61, 48,180,161,255,215, 18, 68,255, 81,174,174,239,132,144,253, 9, 9, 9, 67,237,173,108, 77,139, 22,143,187, +119, 28, 56,252,247,240,191, 88,245,202,129, 3, 7, 14, 28,234, 21, 68, 15, 89,177,170,196, 87,237,239,115,230,204,249, 16,245, + 76, 27, 86,150,241, 37,132, 76,170, 92,117,248,144,191, 22, 1,208,191,158,147,219,189,154,128, 16,210,191, 25,141, 59,206,113, +114,156, 28, 39,199,201,113,114,156, 28,231,255, 47,206,198,184,235, 57, 62,190,190,169,190,134,166, 17,107,111, 55,118,172, 29, +101, 15,212,211,150, 73, 53,115, 29, 62,148,243,176,202,201,249, 73,124, 0,244,231, 56, 57, 78,142,147,227,228, 56, 57, 78,142, +147,227,124,196, 79,103, 74,105, 60, 30,100, 77,161,148,210,120, 74,233,224, 57,115,230,204,173,218, 55,103,206,156,185,148,210, +126, 85,229, 42,203, 84, 31, 83,181,175,246,223,218,251, 26, 41, 91,223,245,152, 84,115,187,230,247,191,132,143, 22, 7, 14, 28, + 56,112,224,192,129, 67, 3,184, 4,160,115, 13,107,147, 26,192,205,132,132,132,210, 26,190, 83,106, 0,215, 1,116,172, 44,167, +174, 52, 40,213,244,173, 50, 87,126, 55,215, 81,198,108, 79,217,122,172,112,107,234,218, 6,192, 9,173,250, 16,237,203,255, 44, + 40,192, 43,166,218,234,199,178, 0, 0,182, 50,250, 64,117, 24, 2,150, 5,165, 20,202,194,178, 43, 55, 84,244,227,230,158,175, +173, 63,113,243,146, 74,151,178,148,118,175,220,117, 90, 83,108,122, 55, 73, 67,203,236,229, 8,247, 33,225, 82, 30,222,103, 41, + 58, 0, 0,143,224,134,145,197,215,183, 10,232,173, 71,189, 30,132, 16, 18,233,137, 73, 98,153,124,140,179,139,107,155,210,210, +162,219, 22,163,105,123,138, 26,171,105, 51, 2, 67,181,118, 35, 79,179, 20, 31, 2,224, 9,121, 88,146, 94, 76, 79,113,189,142, + 3, 7, 14,255, 37, 60,106, 92,188,186, 66, 7, 61,234, 34, 36, 46,192,158,125, 98,171, 54,254,180,179,220,255, 12, 77, 18, 90, +145, 94,100, 42, 8, 62, 1, 64, 65,241,105,114, 33,253, 87,147,142,247, 35,253,165,124,254, 58, 0,124,163,197, 54,147,178, 56, + 83,231, 75,157,135,158, 82, 17,127, 9, 0,214,104,179,189,150,172,180,223, 95, 44, 42,128, 12, 22,176,188, 95, 89, 74,133, 54, +150,174, 7,197,126, 7, 17,254, 56,159, 75,141, 77,169,107, 80,128, 87,204,158, 63,243, 7,158,250,215,116,196,118,104, 13,106, + 99, 0,214, 10,121,143,247,113,226,187,151, 17, 27, 30, 4,202, 90, 1,150,129,195,144,111, 48, 36,202,185,217, 63,146,182,254, +196,173,133,135, 87,210,218,181,235,124,252, 66, 34, 8,203, 88,144,246,231,209,113, 51,102,207,239, 27,229, 76,162,236, 17, 91, + 29,253,200,235,173, 91,181,125,255,221, 79,190,229,251,250, 5, 42, 88,171,137, 41,200,188,213,105,249,226,249, 59, 59,250,145, + 37,215,149,116,157,189,130, 42,194, 19,147, 5, 18,241, 40,153, 84,209, 70,175, 47,191, 99,179, 88,183, 71,249, 9, 6,127,253, +205,210,232,222, 3,226, 28,108,229, 5, 60, 43,139,136,109, 91,183,180,248,126,197,202, 56, 66,200,179,148, 82,182, 41,109,102, + 41,102,167,111,152, 20, 39, 20,240, 73,248,171,107,249,176,115,201,108,109, 68,120,147, 23, 9,109, 60,188, 4, 37,248, 61, 69, + 69, 55, 55,231, 28,225,222,228, 71, 66, 17, 6,130, 29,132, 98, 75,114, 33, 45,228,158,119, 28, 56,252,179,192,227,241, 78,177, + 44,219,231,113,114, 18, 66,158,166,148, 94,224,174,238,255,111, 52,205,162, 69,240,121,114, 70,142, 43,108, 22, 68,134,133,124, + 6,160, 73, 66, 75,202,231,175,191,116, 91,229, 3,198,130,181, 95,188,185,213,108, 5, 24,171, 5, 54,198, 10, 27, 99, 5,195, + 88, 96,179, 90, 65,173, 38,204,255,233, 20, 96, 46, 71, 76, 84,232,122, 0,190,246,158, 67, 72,121,191, 94, 57,123,212,141,152, + 53,216,252,175,132,183,115,212, 21,111, 31,191,161, 44,138,244, 38,115, 83, 10,241,115, 83, 4,193,169, 85,211,177,113,247,129, +220,101, 63,234, 82, 89, 74,225,230, 36,107, 59,110,104,114,224,134,189,167,114,150,174, 55,166, 2,128,179, 66,220,118,194,141, +219, 65,143,114, 19,188,164,210,165,171, 87,126,239,227,235, 46, 35,204,185,175,192,216,108, 8,108, 17,207,159, 59,109,156,239, +231,223,173,251, 14,192, 43, 13, 29,223,206,155, 68,132,181, 14,159,185,254,192,185, 32,157,182,208,124,116,211,135, 25, 48,193, +234,227, 31, 46,252, 44,225, 91,254,188, 15,166,191,215,206,155, 92, 76, 85,209,148, 70, 30, 10,188,112, 47,236, 77,248,234,155, + 14,125,135, 12,117, 96, 43,212,124,163,174, 34,108,237, 79,235, 62,105,215,161,139,188, 71, 84,128,168,112,251, 20, 98, 40, 47, +129,133, 39,149,244,141,236,239,100, 24, 63,214,186,246,151,141,211, 0, 44,111,210,112,176,198,180, 53,203, 54,127,116, 73, 40, +122, 92,187,112,106,178, 77,121, 9,212,102, 5,108,150,234,191,176, 89, 65,217, 7,127, 99,167,252, 4,212, 17,195,203,174, 7, + 48,197,192,227,103, 47,249,170, 10,242, 59,127,247,205,151,115, 35,188,200, 33,216,240,235,173, 18,156,110,170,192,228,192,129, +195, 95, 23,132, 16,134, 82, 42,120,204,156,113,148,210,131,143,200,241, 62,128,215, 43,191,174,163,148,126,253, 24,234, 21, 0, +192,167,242,107, 1,165, 52,151,235, 1,143,116, 61, 39,213,156, 50,124,148, 56, 90, 82, 80, 22,216, 49, 2, 0,100, 77,173, 8, + 5,164, 32,124,192,170,195,240, 33, 3,224,225,229, 3, 88,245,128, 69, 15, 88, 13,128, 85, 7, 88, 13, 40,202,207, 6, 44, 58, +224,238, 33, 48,148, 74,154,220, 98,147, 6, 72,223,142,126,157,130,224,233, 44,197,244,225, 17, 30,107, 14,167,175, 91,119, 52, +173, 63,128, 49,118,213,149, 82,196,182,111,131,101,235,116,169,251,174, 20, 14, 2,128,248,104,143,195,177, 17, 45, 2,151,174, + 55,166, 30,184, 81, 50, 24, 0,134, 68, 57, 31,234,210,214, 55,136,125, 4,171, 47, 75,105, 15,191,150,109,136,237,218,106,176, +218, 92,104,181, 6,228,102,110,128,171,255, 83, 60, 27,139, 94,141, 29, 47,227, 99,206, 59,243, 22, 9,245, 90,149,153,181,168, +109,158,252, 82,190, 64,204, 18,228,157, 54, 85,176,101,182,119, 39,189,204,204,252,248,139, 57, 0,198, 53,104, 29,242,194,180, + 37, 75,150,182,239, 22,211,206,171, 96,231,116, 82, 81,170, 2,195,151, 75,134, 63,211, 13, 46,161, 17,172, 42,113, 9, 17,135, +244,135,139,123, 8,242,206,109, 66,214,133, 93,164,123,167,145,146,159, 55,139,198,215, 39,180, 66, 61, 73,247, 65, 61,187,108, + 13, 9,242,243,165,148, 5,203, 82, 80,214,134, 87, 95, 24,136,185,219,238,194,102,179,225,249, 65,221,251, 45,154,220,151,178, + 44, 11, 74, 89,228, 20, 20,235, 79, 94, 76,237,151, 81, 66, 47,218, 99,169,234,248,116,159,238, 55,174, 92,104,103, 77,255, 13, + 49,227, 18, 82, 9,112,182, 70,159,235,126,245,200,207,237,128,159,154,251,227, 33,225, 94,176,101, 29,254, 10, 65, 61, 39,241, + 87,111, 62,236,169, 81,231, 77,216,185, 97,229, 11,255, 90,189,122, 35,128, 41,220, 35,134, 3,135,127, 6, 40,165,143, 93,108, +101,103,103, 43, 31, 69,108, 5, 4, 4,244, 4,176,184,202, 67,131, 16,178, 56, 56, 56,120,254,191, 7,170, 15,141,245, 52, 54, +155,109, 92,110,110,238,153,134, 56,135, 14, 29,234, 7, 32,184, 6,103, 48, 33, 36,184,174,178, 46, 46, 46,182,174, 93,187,102, +237,223,191, 95,201,245,144,166, 11,174,230, 8,173,212,251,219,167,119, 50,229, 87, 0, 64,170, 29,157,246,161, 41, 63,163,213, +246,213, 47,159,188,252, 85,100, 75, 55,148,235,204, 56,122, 57, 11, 54,155, 21, 54,134,169,180,108, 49,176, 49, 86, 12,234,232, +129,174,198, 41, 88,190, 63, 13,140,141, 77,104,136,179, 54, 44,148,125, 49,186,255,232,109, 44, 75,197, 18, 33, 79, 19, 22,232, +238, 53,243,249,142,188,233,195, 35, 97,176, 48,163, 35,188,201,201, 20, 21, 93,107, 23, 39,251,159, 33,143,104, 93,251,108, 76, +163,109,111,192, 26, 21, 59,118,232, 0, 39,106,210,192, 90,116, 23,229,122, 43,238, 22, 91, 81, 96, 44,131,132,228,219,197,201, + 82,116, 8,240,247,149,255,177,245,131, 76,119,190, 86,224,197,103, 68, 98, 30, 3, 27, 75,249,180, 44,197,228,214,110,128,176, +202,111,171,161,122,202,228,142, 47,247, 28, 24,239,124,127,211, 36, 34, 11, 27, 4,175, 78,129,200, 60,243, 11, 10, 47,239, 71, +177, 50,139, 56, 25,203,224,237,222, 26, 67,198,141,193,215, 99, 58,163, 92, 91, 14,126,126,134,179, 88, 40,113,169,143,147,218, + 48,110,201,162, 47,124, 5,124,222,131,235, 89,245,177, 89, 97, 48,153, 0, 27, 3,169,128, 5,161, 85,255,179,194,102,181,200, + 59,140,252,224, 77, 0, 23, 27,107,123,138,138,110,142,244, 34, 61,192, 90,219, 81,171, 1, 4, 56,155, 92, 72,171,197, 79,132, + 55,121,241,169, 65, 19,123, 80,130,223,155,115,143,162,220, 49, 52, 38,216, 65,161,208,166, 34,119,199,219,200,128,148,122,119, +123, 29, 47,190, 58, 77,190,102,205,154, 97,132,144,169, 53,125,212,158, 68,146, 85,142,147,227,252,187,114, 58, 59, 59,183,106, +217,178,229,124,171,213,218, 83, 36, 18,121, 91, 44, 22,176, 44, 91, 32, 22,139,127,207,202,202, 90,168,209,104,238,253,213,218, +126,227,198, 13,187,197,150, 61,156, 66,161, 16,105,105,105,119,236, 21, 91,181, 57,133, 66,225,175,103,207,158,197,182,109,219, + 0, 0,233,233,233, 8, 13, 13, 85,212,117,108,102,102,166,162,119,239,222,191,162, 86, 70,143,218,156, 55,111,222,108,245,219, +111,191, 97,199,142, 29, 0,128,180,180, 52,132,133,133,213, 89,159,179,103,207,242, 95,122,233,165, 86, 0,148, 79,250, 30,253, + 19, 68, 86,205,191, 15, 9,173, 3, 7, 14,208,248,248,120, 82,123,187, 14,220, 13,114, 21,119,130,209, 6, 0,119,155, 90,137, +148, 2,186,168,163,175,112,240,137, 29, 43,122, 74, 69, 60, 44, 88, 59, 51, 71, 93, 82,254,180,128,128, 5, 0,134,130,231,234, + 32, 62,159, 48,161, 99, 80,105,133, 17,251,254,204, 59,147,172,106,154,137, 52, 89, 73,143, 1,112,249,247,139,146,132, 77,248, +250,216,150, 45,115, 6,119,120,119,120, 7,236, 61,151,245, 46,128, 70,163,190, 83,150, 5,101,153,106,231,247,202,161, 3,192, + 62,156, 20,152, 5,125,176,143,109,154, 69,171, 55, 33,130, 82, 47, 12,113,147,139,127,152, 60,249, 13, 39,171,250, 54, 74,204, + 34,228,148, 26, 81, 96, 16,162, 66,224,133,188,212,155, 54, 30,193,177,198,111, 46,180,148, 49,186,184,138, 29,120, 81, 3,222, +244,215, 30,254,176, 84, 76, 24,190,211,115,159,187, 20,157,248, 54,139,209,169,117,132,160,209,220,122,206,206, 46,161,198,226, + 44,190,166,180, 8, 46, 62,145, 24, 60,122, 40, 62,141,143, 64,185, 86, 7,117,201,121,218,198,215,137,100,255,190, 17,243,134, +132,163, 88,149, 15,147, 21, 32, 58, 83,137,209,108,172,168,247, 58,242,176,122,198,172,217, 47,182,240,245, 84, 84, 45, 42,160, +172, 13, 29,195, 67, 48,160,103, 44,142,157,253, 3,151,110,166,131,173, 92, 84, 64, 89, 22,185,133,165, 42,163,197,246, 75,147, + 46,168,141, 1,181, 26,235, 20, 98,104,198,148, 97,123,111, 34,183, 1, 31, 63,221,198,241,181, 57, 67, 91, 56, 42, 36, 4, 70, +171, 13, 70,179, 21,229,127,252, 0,247,150,237, 33,151, 74, 73, 39, 24, 4, 0,184,188,133, 28, 56,212,192,168, 81,163,164, 42, +149, 42, 49, 62, 62, 62, 98,192,128, 1,242, 30, 61,122, 64,167,211,225,232,209,163,208,233,116, 45, 2, 3, 3, 91, 28, 61,122, +116,228,211, 79, 63,157, 18, 16, 16,208,123,251,246,237, 77,241,161, 21,224,223,206,236, 44, 0,134, 16,130,202,125, 4, 0,251, + 40,121,110,197, 98, 49,178,179,179, 31,187,101, 43, 47, 47,239, 78,115, 44, 91, 21, 21, 21, 34,127,127,127,120,122,122,194,102, +179, 65,167,211, 97,207,158, 61,208,104, 52, 96, 89, 22, 50,153, 12,159, 47, 89,139,212,171,137,184,120,241, 34, 52, 26,141,168, + 49,206,220,220, 92,210,177, 99, 71,152, 76, 38, 48, 12, 3,163,209,136,227,199,143, 87,127, 23, 8, 4,152,253,217,119, 72,191, +156,136,107,215,174, 33, 55, 55,247,191,146,109,164, 9, 90,228,175,104, 13, 93,211, 80,135,253,175,194,102, 99,230,174, 89,191, +229,252,220, 41, 99, 48,109,108,255,192,133, 43,118,245, 79, 81,211,245, 0, 16,225, 73, 38,140,239,211, 38,200, 69, 46,196,167, +155, 46, 3,148,206,125,212,243, 37, 21,211,244, 72, 31,242,238,238,139,217,137, 31,142,233,132, 16, 95,167,208,214,173,137, 56, + 35,195,142,156,130, 44, 3, 87, 7, 73,219,248,104,143,195, 96, 89,184, 56, 74,218,193,198,192,197, 65,210,118, 72,148,243, 33, + 0,112,145,139,218,213,101,249,170, 15,157,131, 68,147,228, 18,193, 36,197, 83,190, 65,175, 12, 27, 32,139, 27, 54, 82,230, 32, +100, 80,124,241, 40,180,194, 0, 88,221, 90,192,100, 45, 65,238,189, 12,219,137, 11,183,242,138,202, 77, 51, 27,173, 38,197,153, +188,123,105,158,173, 58, 12,112, 45,218, 63,175,176,213,196, 77,193, 60,176,188,242,141,207,169, 20, 94, 93,100,127,222,189, 87, +193,210,255,180,232,212,134, 86,163,201,178,218,224,107,176, 9, 28, 51, 78,253,140, 57, 67,218,163,180,164, 16, 70, 11, 3,141, +129,177,248,184, 72, 37,166,123, 73, 48, 89, 24,152,173, 44,132, 46,254, 56,122,254,102, 17,107,181, 30,170,143, 51,163,136, 94, + 3,224, 80,115, 95,107, 79,210,241, 3, 39,217, 53, 88, 13,200,206, 85, 98,253,129,243,157, 42,203, 53,191,147,179,204,131,233, +231, 26,150, 44, 66,209,163, 57, 78,240,225,222,164,139, 76, 42,250,126,241,187, 47, 69, 60, 19,230, 38, 97,115,207,131,176, 22, + 40,108, 2, 24,196, 54, 56, 7,134,128, 53,151, 83,189,209, 88,150, 12,112,145,222, 57,112,168,129,118,237,218,249, 56, 59, 59, + 39,207,154, 53,203,237,185,231,158,195,238,221,187,161,213,106,241,203, 47,191, 96,233,210,165,248,228,147, 79, 96,181, 90,177, +102,205, 26,249,206,157, 59,187,172, 92,185, 50,183, 69,139, 22,145,217,217,217, 5,141,141, 41, 1, 72, 0, 8, 43,223, 93, 4, + 0,123,240,224, 65,196,197,197,225,224,193,131,108,229, 62, 27, 33,196, 74, 41,109, 86, 62, 81,177, 88, 12,177, 88, 12,141, 70, +243, 88,196,150, 80, 40,132,131,131, 3,196, 98, 49,202,203,203,155, 44,182, 24,134,225,231,230,230, 66,163,209, 96,192,176, 97, +248, 46, 33, 1,125,250,244,193,128, 1, 3, 64, 41,197,241,227,199,209,191, 91, 20,198, 60,219, 27,183,110,221, 2,195, 48,118, +213,183,160,160, 0, 42,149, 10,131,135, 13,195,218,149, 43, 17, 27, 27,139,182,109,219,130, 97, 24, 36, 38, 38,226,133, 65,221, + 32, 29,209, 31,233,233,233, 92,167,182,211,154,245,184,124,180, 30, 25, 73,133,244, 66,132, 39,217, 63,118, 80,151,161,195,186, + 71, 96,237,214, 19, 95, 68, 68,144, 45, 0,224,238, 40,249,252,229, 62, 33, 72,185, 95,138, 19,215,148,251, 83,212,143,103,181, + 6,107,131,135,187,147, 28,224,139, 97,176,176,140,211, 93, 52,234,192,204, 82, 10,121,207, 15, 48,126, 88, 74, 96,108, 68, 96, + 96,213,170, 67,135,184,111, 49,225,230,157,160,206,109,125,130, 96,179, 2, 54, 43,156,198,108, 2, 62, 83, 52, 90,143,238,173, + 36,199, 62,152,249,110,215, 33, 35, 70,203,196,114,103,216,180, 57,176, 22,220, 68,241,237, 51,208,201, 67, 81,144,125, 23,219, +142, 92,212,220,206, 45,214,242,120, 56,170,210,152,222,207, 40,161, 21,141,241, 26,173, 72,152, 63,111,102,252,182, 45, 91, 29, + 37, 33,221, 73,198, 15,113, 26,177,128,145,120, 6, 63,197,211, 75, 61,232,151,191,108,117,210,153,241, 85, 99, 60,122,157,118, +215,241,163,135,199,180,105,213,221, 49,243,210, 1, 24,140, 38,152,172, 64,100,151,222,176,217,168,152,240, 8,235,196,231,147, +194,226, 82, 16,171, 77,245,251,245,204,252,179,215,239,242, 77,142,141,115, 63,164,238, 9,255,157, 97,189,163, 1,171, 1,207, +246,108,143,239, 54,158,120, 27,192,196, 71,187,201, 15, 44, 90, 20,232, 30,233, 69, 86, 1,232,126,121,207,210,118, 49, 35,102, +160, 41, 22,173, 40, 79, 50, 36,170,181,223,207,223,125,254,129,155,123, 64, 40,159,176, 86, 80,159, 14,128, 54,151,146,220,243, +112,246,143,133,205,175, 27,214, 44,255,166,130,101,233,150,230,132,182,224,192,225,159, 12,163,209,184,107,209,162, 69,110, 67, +135, 14,173,178,200,224,252,249,243, 88,183,110, 29, 20,138,135,159,147,113,113,113,160,148,186, 45, 88,176, 96, 23,128,103,234, +227,236,214,173,219,176,229,203,151, 43,163,163,163,239, 86,138, 45, 17, 0, 94, 82, 82, 18, 47, 39, 39,135,184,186,186, 82, 63, + 63, 63,171, 82,169,100, 1,216, 94,125,245, 85,190,131,131, 67,155,138,138,138,211,205, 21, 90, 98,177,248,177,248,108, 9,133, + 66, 16, 66, 32, 22,139, 33, 18,137, 64, 41,109,146,216,178,217,108,130,131, 7, 15,226,242,229,203,248, 36, 58, 26,239,250,251, +195,205,205, 13,137,137,137,160,148, 66,161, 80,160,164,164, 4, 91,182,108, 65,223,190,125,193, 48,140,200, 30,222, 29, 59,118, +224,202,149, 43,248, 44, 38, 6,239, 58, 59,195,193,193, 1,199,143, 63,152, 13,148, 72, 36,200,206,206,198,241,227,199,209,187, +119,111,174, 83, 63, 34,236,238, 60,189, 9, 17, 16,111,248, 88,204, 6, 80,134, 2, 4,126, 17, 17, 68,148,146, 66, 45, 77, 61, + 41,143,135,121,203,215,239,143,255,118,198, 48, 50,105,120, 39,191,133, 63,159,154, 10, 0,175, 61, 31,230, 47,151, 8,176,108, +111, 10,229,241, 48,239,113, 52, 48, 34,130,136,120, 60, 76, 29, 16,219, 22,202, 50, 51, 50,148,101, 39, 83, 40,181,107,170,231, +196,183,227,177, 97, 95, 98,206,210, 13,198, 84, 74, 41, 92, 28, 36,109, 39,220,200, 8,250,249,224,149,251, 75,182, 25, 83, 41, + 75,225, 34, 23,182,155,120,171, 91,163,171, 14, 59, 7,137, 38,205,253,224,253,110,195, 39,206,146, 50,169,219, 97,206, 56, 2, +214, 98,128,214, 34, 66, 25,223, 7,185,247,239,227,203, 53,251,115,180, 58,243,152,164,194,166, 9,204,244, 34, 90, 17,225, 73, +158,251,242,211, 15,143, 37,124,190,192,193,112, 55,177,130, 79, 24, 3,191,101, 47,193,231,159,124, 75,202, 77,230,209, 25, 37, +180,188, 49, 30,147, 35,190, 90,180,100,121,252, 27,227, 70,166,134,133,246,114,183, 41,239,185, 27,181,218,194, 77,135,175,248, + 84,142, 20, 9, 0,100,228, 22, 67,173,209, 49, 54,198,122,218, 81,136,133,201,246, 88, 7, 43, 17,226, 77, 60,159,235,209,225, + 37, 79, 71, 17, 12, 21,101,240,114, 20, 98, 80,108,235,151, 66,188,201, 7,119, 85, 84,221,124,161,101, 5,181, 26,112,225,171, +190,237,168,205,218, 14, 54, 43, 44, 55,126,109,186,101,140,224,221,105, 61, 29,156, 92,205,153, 60,232, 20,128,204, 3,196,169, + 5,224, 28, 76,132,225,163,161,188,155,204,188,253,210,184,226,123, 89,185, 63,122,200,240, 53,247, 8,225,192,225, 97,100,103, +103,191, 60,119,238,220,179,177,177,177,222, 30, 30, 30,104,223,190, 61,246,237,219,135, 89,179,102, 85,151,137,142,142, 6,165, + 20, 37, 37, 37, 88,180,104, 81,129, 82,169,124,185, 33,206,228,228,228,212, 13, 27, 54,244,140,136,136,176,136, 68,162, 50, 0, +146,178,178, 50,105, 73, 73, 9, 49, 26,141, 96, 89,150,117,118,118,182, 41,149, 74,235,152, 49, 99, 76,231,206,157,107,173,211, +233,178, 31,197,162, 21, 24, 24,152, 84, 92, 92,172, 33,132, 60,114,232,135, 42,145,229,225,225,225, 89, 81, 81,193, 2, 40,109, + 78,232, 7,134, 97, 16, 19, 19,131, 35,103,174,226,224,137,115,208, 42,211, 48,245,141,151,209,190,125,123, 28, 57,114,164,217, +247,172, 99,199,142, 56,124,252, 44,206, 94,190, 23, 9, 63, 8, 0, 0, 32, 0, 73, 68, 65, 84,142,236,244, 27,120,123,234, 27, +136,140,140,196,225,195,135,185, 14,109, 63, 14,212,242,205, 58, 80, 91,104,245, 62,112,224, 64,213,200,252, 63,228,107,184, 39, +233,232,215, 70,252,235,130, 33,173,195,133, 3, 22,128, 8,101,216, 30,122,184,219,188, 47,127, 72,109,239, 77,198,221, 84, 53, +190, 58,236, 33,171,150,138, 38, 71,122,145,205,215,111,181,123,233,217,216, 64,172,221, 39,255, 24, 0, 70,247,104,133, 63,111, +171,113, 49,189,112,115,114, 33, 77,126,212, 86,183,247, 38,114, 80,108, 94,244,206,240,222, 45, 2,124,176,110,247, 89, 16,130, + 93,118,189,112, 41,165,177, 17, 45,176,116, 67,237, 21,134, 62, 65, 75,182, 25, 83,143, 36,105,135, 0,192,192,112,197,161,206, +173, 93,131, 26,179,108,200,196,130,201, 67, 70,142,151, 50,233,251,128,172,227, 32,140, 9, 6, 11,139,252,162,114,232,157, 3, +145,120,254,186, 65, 99, 52,207, 72, 46,108,158, 21, 47, 69, 77,239, 70,251,146,251, 21, 58,131,175,220,179,181,145,207, 99,217, + 10, 19,197,159, 41, 89,218,228,124,154,102, 15, 71, 70, 6, 53, 63, 19, 64,122,172, 90,191,109,190, 80, 36, 30,205, 39, 32, 94, + 46, 10,207, 85,223,126, 6, 71, 71, 7,176,230, 10, 64,167,198,115,111,125,169,190,153,103,105, 5, 0, 97, 30,196,161,103,136, +104,189,128, 71,114, 79,222, 49,127,212,168,121,213,138, 41,227, 6, 69, 11, 89,179, 14,239, 44,218,138,213, 31, 12,199,248,126, +225,194, 3,127,164, 79, 1,176,176,185,247,154,218, 24, 80,171, 1,207,124,120, 38,149, 0,103, 41,208,253,242,182,207,219, 1, + 87,237,230,120,138, 16,161,192,151,132,119, 8, 82,136,216,220, 63,192,230,254, 65,249,129,221, 64,130,122, 18,226, 19, 67,191, + 95,252,137,110,237,218,117, 71, 89, 30, 62,109, 44, 84, 6, 7, 14,255, 95, 65, 41,189,235,226,226, 50, 56, 46, 46,238,196,145, + 35, 71,220,162,162,162, 0, 0,151, 47, 95, 6, 0,196,196,196, 32, 44, 44, 12, 42,149, 10, 99,199,142, 45,202,207,207, 31, 76, + 41,109,208,231,183,188,188,252,222,142, 29, 59,188,117, 58, 93,244, 71, 31,125, 84,216,162, 69, 11,173,209,104, 36,101,101,101, + 44,195, 48,112,117,117, 21, 71, 71, 71,163,107,215,174, 21,231,207,159,111,153,147,147, 83, 14, 32,171, 57,245, 31, 62,124, 56, +206,156,121,176,104,239,113,196,213, 18,137, 68,136,138,138,242,191,123,247,110, 94,229,245,185,208,140,107, 90,189,125,253,250, +117,156,190,154, 11,129,217, 0,177, 90,137, 11,187,119, 96,216,228, 55,193, 48,205,247, 98,184,126,253, 58,246, 28,191, 0,133, + 68,128,180,180,100,236,216,177, 3, 83,167, 78,125, 36,206,102,162, 65, 45,242, 23,239,247,249, 0,214,212,107,209,138,143,143, + 63,141, 58,162,218,182,110, 77,196,146, 10, 44, 24, 20,227, 63,123,116,247,214,124,171, 86, 9,214,198,130, 47, 4,188, 60,156, +240,235,175,155, 91,109,222,186,245,124, 71,127,225,114,150, 97,230,221, 84, 81,125, 19,234,181,224,219,173,103, 71,255, 58,179, +183, 96,234,144,118,110, 0, 32, 18,240,176,108, 95, 50, 3, 96,193,163, 52,248,153, 0, 34,173,176, 98,146,143,187,243,199,115, + 95,143,119,235, 29, 19,134,211, 23,147,176,124,199,249, 51,226, 66,108,176,251,194,177, 86,212,214, 79,117,173, 58, 4,219,184, +223,165,205, 70,125, 68, 10, 87, 88,178, 78, 1, 22, 35,140, 38, 11,114,138,109,200, 41, 49, 66, 32, 23,225,114,250,255,177,119, +221,241, 81, 20,239,251,153,221,189,150, 75,239, 61, 33,148, 36, 36,132,208, 59, 2,210,196,192, 23, 8, 93, 20, 16,129, 8, 40, + 32, 74, 71,138, 74, 71, 64,233,160, 82,164,131,180,168, 20,165, 35, 69, 64, 18, 2,132,132, 22,210,123,191, 92,219,157,223, 31, + 41,191, 35,164,220, 37,216,112,159,207,103, 63,123,123,123,251,220,204,206,238,204, 51,239, 59,243, 78,188,202, 62, 25,199,107, +154,103, 66, 8,233, 80, 79,225,246,233, 23, 43, 61,138, 84,249,250,220,172,116,189, 84,118, 69,162, 52,147, 39,153,194,243, 91, + 60, 45,234, 84, 87,218, 28, 16, 88,153,130, 22,206,250,104,164,121, 66,212, 9, 52, 96, 18, 65, 40,133, 89, 64, 8, 44,205, 88, +105, 71, 31,105, 28, 0,248,184, 88,203,150, 46,248,216,122,242,244, 5,213,142, 1, 11, 36, 68,218,184,165,203,228, 32,111, 91, +156,191,113, 15,231, 35,158,222, 57,255,251,253, 70, 93, 26,187,193,207,195,102, 82, 32, 33, 75,162,168,233, 22,210,226,130,209, + 3,186,162,178, 89,135,129,206,100, 88,203,193,115, 42,156,109, 88, 25,124, 0, 33,154,167, 32, 44, 11, 16,166,120, 6,228,179, + 75,224,108,234,209,221,251, 14, 23,110,221,186,227,179,168, 52, 42, 90,177, 68,136,168, 6,217,217,217,183,149, 74,101,207,224, +224,224,109, 31,126,248,161,229,240,225,195,221,198,140, 25,195, 0, 64, 74, 74,138,176,122,245,234,196,175,191,254, 58, 39, 61, + 61,125,148, 86,171,141, 48,166,227, 75, 8,185,252,205, 55,223,164, 93,184,112,161, 81,171, 86,173,228,205,155, 55, 23,108,109, +109, 57,185, 92,206,107, 52,154,162,232,232,104,254,225,195,135,174,217,217,217, 49, 0, 98,107,226,214, 47,177, 94, 45,100, 89, +246, 83, 74,105,208,203, 24,163,165, 84, 42,221, 0,196, 16, 66, 26,152,234, 54,124,161,193,230, 56,100,101,101,161, 48,249, 14, + 20,241, 15, 16,108,206, 32,208,214, 2, 86, 86, 86,181, 18, 69, 57, 57, 57, 64, 65, 2, 46, 94,252, 3,208,235, 97,109,109, 13, +107,107,235,191, 92,104, 85,166, 69,254, 13, 40, 63,211,176,228,185,173,122,140, 86, 35, 39,242,190,173, 12,171,199,133,212,151, +250,120,121, 64, 29,255, 59,254,120,150,143,217,109, 90, 69,177,114,203,162,113,239,244,109, 17, 58,176, 14, 58,183,107, 73,124, + 92,173, 39, 45,249,114,195,132, 70,206,228,227, 59, 41,116,141, 49,137,186,147, 74, 31, 5, 56,145,173,103,110,199,135,121, 40, + 85, 16, 4,138, 51, 17, 73,136,120,146,181,245,110, 42,125,100, 74, 6, 27,185,145,110, 28,152,189,148, 82,133,181,185,121, 94, +211, 38, 13, 29,186,181,109,194,188,209,169, 5,164, 44,112,241,218, 31,152,242,229,161, 43,130, 64, 67,110, 24,233, 54, 44,158, + 97,248,188,128, 42,158, 97,168,123,110,134, 33,165,148, 22,207, 58,172,122,216, 23,203,146,228,194,167,215, 93, 36,246,190, 80, +197,158,193,147, 44, 1, 79, 83,243,144,203,185, 64,157,144, 0, 80, 33,238, 44,165, 53,126,170, 29, 28, 28,156,234, 6,250,213, + 95,187,253, 0,180,133, 57,120,116,118, 27,242,179,146,240,249,198,163,245, 61, 60, 60, 58,197,199,199,159, 51,225,129,241,251, +229,248,110, 39, 80,128,149,200, 17,190,126, 31,210,237,205,224,160,148, 66, 80,165, 97,220,228,225,214,189,186, 15,183, 6,128, +167,247,111,193, 91,169, 50,138, 87,107,143,208,193, 93,252,109,160, 83, 97,251,207,183,138, 24,224,141, 29, 39,239,196,118,105, +104,163, 24,220,193,219,118, 97, 98,246, 0,212, 48,168,104,169, 69,171,204,194, 87,131,217,134,251, 41,229, 3, 28, 73,236,222, +203,169,230, 3,187, 55, 87, 74, 57, 66,104,126, 2,168,153, 3, 54,108,223,159, 47,211, 97,179,216,132,138, 16, 97, 28, 10, 11, + 11,111, 16, 66, 26,127,242,201, 39,195,102,205,154,245,154,185,185,121, 93, 0, 40, 40, 40,120,164,211,233,206, 3,216,109,202, +236,192, 18,225, 20, 67, 8,121, 20, 27, 27,235,252,253,247,223,219, 0, 80,148,156, 46, 2,144, 13, 32,165, 54, 51, 14, 75, 69, + 21, 33,228,211,151,104,233,248,177,132,179, 65, 77,174,103, 24,134, 39,132,128, 16, 2,185, 92,142, 11, 23, 46, 96, 80, 72,119, +220, 13,207, 70,144,141, 5, 90,141, 26,135,189,167, 78,129,101, 89, 16, 66,192,178,172, 73,237, 8,199,113,184,120,241, 34,222, + 30, 58, 16,114, 14,176,182,182,198, 39,159,124,130, 35, 71,142,128,227,196, 85,250, 76, 40,231,205,165,130,203,248, 56, 90, 4, + 11, 79,109, 91, 36, 5,175,195,177,109, 43,112, 60, 50, 95,115, 63, 13,179,253,211,176,250, 0,242,132,180, 47,119,132,157,186, + 24,185,252,221, 33,189,149,175,119,233,142,215, 59,119,225, 26,181,236, 52, 23,192, 26,131, 6,187, 91, 85,177, 54,120, 1,159, +109,254,249,222,184,189,103,163, 9,180,121, 24,210,163, 37,229, 5,124, 86,141, 8,120,129,211,218,204, 98,239,197,223,126,179, +133, 54, 31, 79,110,253,170,168, 83,183, 62,192,107, 17, 19,243, 0, 95,111,255, 65, 56,123,237,254, 78,141, 30, 31,198,102,210, + 2, 99, 57,139,149,149, 30,214,230, 50,255, 94, 65,214, 63, 9,160,176, 81, 74, 27, 82,129,135,141, 82,210,176, 71,128,249, 79, +148, 82,106,105, 38,105, 72,121, 93,181,156, 42,141,126,211,246,111,183,174, 28, 61,122,180,121,122,124, 50, 18,115, 35,145, 47, +115,135, 78,233,137,216, 91,231, 85,133,106,125,181,141,120, 85,247, 51, 61, 61, 61,245,198,213, 76,236,221,184, 24, 58,141, 26, +169,241,197, 90, 53, 49, 61, 23, 86, 14,238,191,153,194,169,213, 11, 57,161,195,199, 74,205, 44, 97,246,118,104,111, 89,108,134, + 26,205,220, 44,139, 31,166,252, 52,220, 61,125, 17,157, 11,138,117,219,195,103, 12,188,155,184, 25,149, 78, 75,133,244,195, 94, +205,221,241, 40, 46, 9, 23,238, 36,108,127,152, 65, 19,235,217,147,237,177,137,217, 97,125,219,120, 97,213,145,168, 15, 42, 19, + 71,149,113, 6, 58,147, 97, 0, 58, 20, 15,134, 87,129, 2, 29, 2,157,201, 48, 99,102, 26, 86,196,201, 73,241,214,202,159,158, +206,217,127, 61,189,239,180,183, 58, 90,181,107,247,166, 12,122, 13,242, 84,106, 93, 84, 22,205,173, 77, 25,213,162,167, 36,114, +138,156,255, 74,206, 18,209,179,179,100,123,153,156,137, 40, 23,215,169,182,121, 55,116, 19, 82, 74,185, 18,107, 86,149,131,225, +171,227, 52,116, 19, 82, 74,127, 44,177,102, 85,105,213, 42,207, 41, 8, 66, 98,139, 22, 45,236,250,244,233, 3,158,231,241,224, +193, 3, 60,125,246, 12,221,194, 62,128,141,141, 13,206,223,190,141,251,247,239,227,211, 79, 63,133, 78,167,195,225,195,135,227, +171,227,228, 56, 78, 91,191,126,125,105,191,126,253,160,215,235,241,240,225, 67, 36, 36, 36, 96,202,148, 41,176,182,182,198,141, + 27, 55,202, 56,211,211,211,193,113,156,246,175,120,150,254,237,168, 72,100, 85, 45,180, 0, 30,188, 14, 57,167,230, 97,205, 5, +104,181, 58, 52,188,147, 74, 31, 27,156,223, 16,108, 79,142,221,142,188,247,232,198,165,215,101, 72,141, 40,190,198, 4, 68,167, +211,164,150,158, 92, 30,180,121, 86,120,248, 19, 30,167,228,229, 71,167,211, 36, 83, 51, 71, 5,158, 64, 91, 8, 36,253,142,203, +231,207,225,236,149, 63,112, 61,226, 30,127,249, 70,244, 94, 70,192,103, 81,233,244, 65, 13,212, 41, 44, 66, 86, 97,100, 68,140, + 87, 75, 63,103, 47,240,122, 80, 65, 7,235, 33,187, 49, 42,170,157, 87,203,122, 54, 94,197,150, 44, 29,108,223,251, 21, 88,169, +168,146,239,122,156,118,115,135,186,242, 1,121,217, 25,109,186,118,106,107,110, 29,208, 11,233, 49,209,120,240,199, 69,213,141, +200,216,203,215,227,180,181,178,150,184,187,187,191,214,181,147, 63,134,140,155, 9,109, 97, 14, 30,158,253, 22,249,153,201,184, +240,155, 5,238,229,230,182, 5, 96,180, 69,235,242, 83, 93, 35, 0,232,224, 35,141,179,132,218,229,157,222,125, 32, 39, 69, 16, +212,185, 32,133,233,136, 77,208,228, 12,216,248,140, 7, 0,165,156,112,230, 52,199,202, 24,222, 64,111,123, 95, 37,171,195,142, + 83,119, 32, 8,197,203, 55, 9, 2, 54,236,248, 53, 54,236,179,183,155, 33,208,203,182, 9, 33,132,152, 98,242, 39, 20, 29,175, +239, 93,208,176,232,151,185,128,160,197,197, 73,118, 13, 59,174,201,236, 88, 83,203, 88, 68, 2, 77, 0, 16, 22,224, 70, 54, 77, + 90,243,243,220, 22,167,162, 58, 76,125,175,175, 21,168,184, 0,187, 8, 17, 34,254,122,228,231,231,143, 27, 53,106,212, 38,137, + 68,226, 8,128, 8,130, 0, 65, 16,184,229,203,151, 75,120,158,103, 24,134,225, 89,150,213,255,248,227,143, 58,158,231,211,138, +138,138,198, 85,199,169,215,235, 99,199,143, 31, 95,191,186, 25,138,123,246,236, 1,199,113, 90,189, 94, 31, 43,150, 68,245, 34, +203,112,111,104,229,170,188,241,160, 88,208,254,237,121,243, 0, 16, 80,204, 47, 39,178, 0, 0,183, 51,104, 98, 35, 39, 50,165, + 81,203, 78,243, 74,175, 49, 53,113, 69, 60, 63,176,101, 99,191, 61, 0,160,166,252,219, 53,201, 96,174, 90, 53,184,105,203,182, +123, 5, 74, 57, 61,165, 91, 25, 1, 7,139,244,184,107,204, 76,187,202,144,152,154,125,163,116,161,104, 1,244,255,221,133, 37, + 97, 28, 40,165,180,204, 93,184, 66,129,244, 28,117,181,113,160, 46, 62, 82,119,111,233, 37, 29,123,242,210,173,113, 60, 79, 93, + 88,150, 36,171, 52,250, 77,181, 21, 89, 0, 16, 31, 31,127, 46,208,137,156,188,221,196,185,135,131,178,196,202, 85, 8,164, 23, +226,100,124,106,222,185,154,112,102, 21,232,250,206, 90,125,228,168, 76,194,114,160,180, 56,160, 40,165, 40,210,242,153,165, 98, + 44,216,158,184,125,114, 88,191,135,101,201,211,234,248,174,222, 79, 90, 53,100,201,233,143,239, 60,201,218,250, 56,139, 70, 2, +192,227, 44, 26,217,192,158,204,141, 77,206,251, 56,242,105,214, 10, 83,199, 85, 80,130, 11, 45,135,204,123,225,187,218,222,207, +187,137,244, 15, 0,253, 27, 57,145,238, 67,166,126, 61,149, 16,136,203, 79,136, 16,241, 31, 66,169, 85,139, 97,152,133, 47,145, +243, 71, 66,200,155, 0, 98, 76,184,230, 42,128,198, 47, 57,111, 25, 0, 50,196, 82,126,169,247,212,244,128,165,119, 82,233, 6, + 24,177,104,180,177,191,171,244,250, 68,122, 26,128,125,109, 50, 88,194, 97,247, 50,111,218,237, 20, 58,247,207, 40,140, 18, 81, +245,167,140,245,137, 74,165, 61, 1,192,215,215,151,198,196,196,128, 82, 90,171, 65,133,119,211,232, 31, 40,183,148, 67, 69, 98, + 27, 64, 71, 99,248,162,211,233,103,192,139,174,225,152, 12,250, 57,128,207,107,148,231, 26, 70,126, 55,250,217, 74,165,167,128, +234,163,243,139, 16, 33,226,213, 20, 91,127, 2,231,143,226,157,125,245, 80, 85,192, 82, 70,188, 61,175, 30, 30, 60,120, 64,106, + 43,178, 68,136, 16, 33,226, 21, 6, 95,203,173, 66, 13, 85,203, 77,196, 43, 34,184,202,127, 39, 10, 45, 17, 34, 68,136, 16, 33, + 66,132,136,151, 36,178,202,139, 45, 2,160, 91,133,210,220,132,217, 4,132,144,110,166, 38,168, 58,126,145, 83,228, 20, 57, 69, + 78,145, 83,228, 20, 57, 95, 61,206,234,184, 95,185,217,140,212, 96,144,243,203,222, 0,116, 19, 57, 69, 78,145, 83,228, 20, 57, + 69, 78,145, 83,228,124,149, 55, 0, 99, 43, 59, 22, 93,135, 34, 68,136, 16, 33, 66,132, 8, 17,127, 18,196,216, 64, 34, 68,136, + 16, 33, 66,132, 8, 17,181, 67,181,139, 74,139, 16, 33, 66,132, 8, 17, 34, 68,136,168, 1,170, 93, 84, 90,132, 8, 17, 34, 68, +136, 16, 33, 66, 68,205, 80,163, 69,165, 69,136, 16, 33, 66,132, 8, 17, 34, 68, 84,143,170, 34,195, 19, 19, 87, 60, 17, 33, 66, +132, 8, 17, 34, 68,136, 16, 81, 5, 94,136, 12, 31, 30, 30, 78, 13,247, 34, 68,136, 16, 33, 66,132, 8, 17,127, 37, 94, 85, 45, + 34,186, 14, 69,136, 16, 33, 66,132, 8, 17, 34,106,129,138,198,104,137, 66, 75,132, 8, 17, 34, 68,136, 16, 33,226, 37,160,170, + 49, 90,165, 1, 75, 59,151,152,234, 58,139,183, 75,132, 8, 17, 34, 68,136, 16,241, 55,224,149,212, 34,101,131,225,195,195,195, +105, 72, 72, 8, 17,203, 89,132, 8, 17, 34, 68,136, 16,241,119,224, 85,212, 34,226,172, 67, 17, 34, 68,136, 16, 33, 66,132,136, +218,136, 41,131, 89,134,229,143,197,181, 14, 69,136, 16, 33, 66,132, 8, 17, 34, 94,146,224, 42,255, 29,243, 39,255, 97, 55,145, + 83,228, 20, 57, 69, 78,145, 83,228, 20, 57, 69,206,255,138,200, 42, 47,182,196, 89,135, 34, 68,136, 16, 33, 66,132, 8, 17,181, +128, 49,179, 14, 69,136, 16, 33, 66,132, 8, 17, 34, 68,212, 0,132,144,177,132,144,222, 37,159,123, 27, 90,181, 68,139,150, 8, + 17, 34, 68,136, 16, 33, 66, 68, 45, 64, 41,221, 76, 8,113, 45, 17, 88,225,148,210, 36, 81,104,137, 16, 33, 66,132, 8, 17, 34, + 68,188, 4,148, 27,151, 21, 66, 8, 41,115, 39,138, 66, 75,132, 8, 17, 34, 68,136, 16, 33,162, 22,168,106,140, 22, 1,208,173, +146,139, 78,155,160,228,186,213, 32, 81,167, 69, 78,145, 83,228, 20, 57, 69, 78,145, 83,228,252,111,113, 86,199,109,138,254,248, +167,160,162,176, 14,101,226,139, 82,250,167,109, 0,186,137,156, 34,167,200, 41,114,138,156, 34,167,200, 41,114,254, 87,183,151, + 62,235,176, 57, 33,102,162, 17,241,213, 3, 33,196,153, 16,226, 44,222, 9, 17, 34, 68,136, 16, 33,194,120, 11,215, 75, 29,163, + 21, 72,200,123,239, 5, 57,110,108, 76,136, 85, 4,165,133, 85,253,214,201,201,105,147, 82,169, 28, 94, 88, 88, 88, 64, 8, 17, + 12, 76,109, 0, 96,184, 46,208,195,212,212,212,142,213,253,183, 92, 46, 95,237,236,236,252, 94,126,126,126, 33, 33,132, 18, 66, + 64, 8, 41,205,240,115,123,158,231,227,211,211,211, 91,252,171, 11, 17, 96, 29,156,157,175, 73, 88,214,221,212,107,121, 65,120, +156,146,156,220,214,132, 7,102, 49, 33,152, 86,242,121, 25,165,116,230, 43,248, 86,176,198,252, 44, 8,176,140, 6,134,240, 12, +243,129, 4, 88,167, 22,132,141, 37, 15, 46, 95,211,191,214, 92, 35,245, 9, 69, 19, 66, 96, 77, 41,114, 40,193, 31,178, 86, 52, +246,111,170, 28, 66, 37, 18, 73, 95, 43, 43, 43,139,140,140,140,115, 0,246, 0, 24,106,111,111,223, 41, 55, 55, 55, 95,167,211, + 29,161,148, 30,170, 9,247,107, 77,201,116,153, 84,242,110,145, 86,183,244,226, 45,250,109,231,230,196, 94, 47, 96,137, 66,202, +117, 84,107,244,203, 46,252, 65,183,154,152, 86, 82,252, 42,148, 86, 29,166,175, 39,118,192,200,114, 7,128,195,182,182,126,114, + 71,171, 95, 36, 50,246,113,118, 74,254,240,129,169,169,207, 6,214,162,220,255,137,112,116,116, 28,201, 48,204, 23,148, 82,240, + 60, 63, 59, 35, 35, 99,219, 75,122,174,102, 3,176, 41, 57,204,166,148,126, 81, 75,190,167, 0,188, 74, 14,227, 40,165,222, 98, +211, 94,227,123,185,225,135, 31,126, 8,235,210,165, 11, 86,173, 90,133, 13, 27, 54, 60, 73, 75, 75, 91, 2, 96, 59,165, 84,243, + 87,243,188,138,120,105, 66,171, 17, 33,111,142,236,217,122,211,196,193,111,146,201, 35,231, 20, 86,243, 50,127,243,198, 27,111, +188,189,125,251,118, 73,116,116,180,153,143,143, 15, 24,134, 41, 19, 66,134,245,101,157, 58,117,132,234,254,155,101,217, 53,253, +251,247, 31,117,224,192, 1,229,141, 27, 55,148, 1, 1, 1,101,124,130, 32,160,124,253,235,227,227, 83, 37,159,181,181,245,239, + 44,203,122, 84, 36,210, 42,251,204,243,124,124, 70, 70, 70, 11, 35, 30,198,158, 0,102, 24,113, 75,151, 80, 74, 79, 84,245, 3, + 9,203,186, 39, 38, 38, 58,153, 90, 86,158,158,158, 90, 19, 94, 30,103, 66, 48, 77, 16, 40, 3, 0, 12, 67,166, 43, 20,138,141, + 69, 69, 69,113,165,231, 75,202, 44,197,148, 52,184,187,187, 15,160,148,142, 3, 64, 9, 33,155, 19, 18, 18, 14,154,114,189,149, +149,213,239, 50,153,204,131,227, 56, 82, 81,185,148, 63,230,121,158,106,181,218,248,204,204, 76,147, 5,246, 57,128,188, 1,188, +166,103,217,201,246, 14, 14, 29,111,156, 60,105, 30, 20, 20,196,176, 44, 59, 19,192,198,218,188, 55,154,107,164, 62,175,195, 32, +149, 78,222, 91,238, 61,223, 79,253,116,126,180,153, 68,125, 92,115,141,236,255,171,197, 22, 33,100,196,136, 17, 35, 38, 47, 93, +186,212, 65, 38,147, 49,251,246,237,243,155, 50,101, 74,232,170, 85,171, 28, 6, 15, 30,108,169,209,104,132,233,211,167, 7, 18, + 66,156, 40,165,235, 77,225,110,215,148,180,241,247,113,253,116,226,240,215,241,241,226, 61, 19, 59, 52, 38,233,102,230,210, 13, + 3, 58,214,183,105, 84,215, 22, 11, 54, 93,254, 16,192, 86, 19,210, 74, 56,142,107,235,230,230,230, 91, 84, 84,164, 47,233,188, + 81,131, 58,161,248,254,106, 52,154,204,204,204,253,181,189, 55, 31, 43, 20,173, 91,219, 88,156,154, 55,108,132, 89,110, 86,166, +243,154,240,163,183, 15,192, 41,120, 32,240,228, 85,106, 16, 24,134,249, 34, 33, 33,193,149, 82, 10, 87, 87,215, 47, 0,108,123, + 73,212, 54,165,245, 48, 33,196,230, 37,240,121, 25,240,121,189,132,103, 95,193, 49,204,120,153, 68,210,131,231,249,198, 37,207, + 80,132, 70,167, 59,165, 23,132,117,148,210,162, 87, 88, 7, 76, 11, 11, 11,235, 62,107,214, 44,159,105,211,166, 97,218,180,105, +117,182,108,217,178,105,209,162, 69,211, 9, 33,193,148,210,252,191,152,231, 95,111,193,250, 83,132, 86, 32, 33, 45,186, 54,105, +112,112,210,200, 33, 16, 14,172, 38, 24, 57,167, 74,145,213,182, 69,139,119,183,111,223, 14, 0, 24,222,183, 47,122,180,106, 5, + 75, 11,115,200,100,197,201, 33,148, 64, 42,145,162,223,148,143,140,201,220,178,208,208,208,183, 14, 28, 56, 96, 1, 0, 27, 54, +108, 64,104,104, 40,236,236,236,160, 84, 42, 33,149, 74, 33,145, 72,158,219, 27, 33,220, 60, 18, 18, 18,156, 20, 10, 69,153,240, + 19, 4,225,185,205,192, 79, 13,189, 94, 15, 95, 95, 95, 99,111,215,140,156,156,156,215, 10, 10, 10,170,244,233,214,173, 91, 23, + 0, 78, 24, 67,248,197,231,159, 65,208, 23,128,227, 0,189, 30, 80,107, 25, 8, 21,244,237,221,220,220, 48,126,252,120,212,102, + 33,241,144,144,222,132, 16,114,192,205,205,237, 96,106,106,170, 15, 33, 24, 83, 67, 75,215,132, 7, 15, 30, 88, 0,128,159,159, +223,120, 0, 38, 9, 45,142,227, 60,110,223,190,237, 36,151,203, 43,181, 92, 26,136, 96,104,181, 90, 52,107,214, 76,111,202,127, + 56, 3, 94,153, 12, 51,166,105,243,230, 99,231,245,235,167,184,118,237,154,130, 97, 24,232,245,122, 44, 95,190, 92, 79, 41,181, + 9, 4,172,162,128,220, 42,158,207, 89, 0, 70,150, 88,105,183, 82, 74,151, 63,119,158,162,137, 74, 39,239,253, 48,191, 95,171, +214,117,166, 35,234, 78, 68,171,122, 22,135, 97,201,169, 99, 1,252,165, 66,203,202,202,170,239,170, 85,171, 28,183,110,221,154, +123,255,254,125,237,198,141, 27, 29,199,141, 27,103,169,213,106, 17, 22, 22,150,230,239,239, 47, 93,181,106,149,227,161, 67,135, + 94, 7, 96,146,208,226, 8, 62, 27,218,183, 7,138,116, 12,116, 58,189,163,171,163,229,206, 73, 35, 58, 75, 40,213, 96,199,145, + 27,208,233,133,111, 77,180,100,181, 29, 56,112, 96,189,221,187,119,115,247,238,221,227, 26, 54,108, 8, 65, 16,192,243, 60,116, + 58, 29, 0, 64, 16, 4, 52,104,208,160,214,247,229, 93,192,207,193,217,238, 84,219, 55,123,153,185, 42,228,176,203, 74,195,104, + 41,103,185, 77,169,254, 30, 64,187, 87,169,177,160,148,130,227, 56, 60,123,246, 12, 78, 78, 78,102,118,118,118, 73, 0,230,103, +102,102,110,126,133, 27,200, 86, 50,142, 59,184,227,219, 53, 46,173,219,181, 99,157, 93,157, 16,253, 32, 14, 28,225,187,221,190, +126,163,243,187,239, 79,157, 68, 8, 25, 64, 41,189,246,170,229,221,181,253,132,254,174, 29, 62,216, 64,168,128, 5,107,143,230, + 45, 94,182, 90, 25, 54,102, 4, 59,101,202, 20,120,122,122,250,244,239,223,127, 25,128,247,171,229,105, 51,161,191, 75,187,137, + 27, 64, 41,230,125,125, 52,111,209,178,213,202,247,107,192,243, 47,127,119, 54,255,105, 66, 43,144,144,122,141, 60,157, 78, 46, +158,246,190,132,254,244, 29, 83,152,145,138,202,164,140,147,147,211,166, 94,189,122, 13,223,182,237,255, 59, 73,109,131,130,208, +255,245, 14,112,178,183,134,210, 92, 86,220, 28, 9, 4,127,220,127,108,148, 32,240,244,244, 12, 59,120,240,160,133,161,152,144, + 74,165,101,155,161,200, 42,221,202, 91, 62, 42,130, 66,161,192,233,211,167,193,113, 28, 88,150, 5,199,113,101,155,225, 49,203, +178,112,118, 54,105,232,210, 18,107,107,235,224,188,188, 60,171,236,236,108,120,121,121,229, 2,184,109,112, 62, 56, 45, 45,205, +202, 20, 66, 65, 95,128, 41,163, 3, 32,209, 92,129, 70,210, 10, 42,174, 61, 46, 95,191,139,227, 39,206, 33, 33, 49, 25, 29,218, + 52,197, 59,195, 6,226,212,169, 83,224,121,222,212,135, 39,133, 16,178,172, 79,159,222,211, 1, 66,186,117,235,150, 61,113,226, + 68,230,222,189,123,111,245,239,223, 47,232,193,131,152,146,158, 48,153, 70, 8, 89, 99,130,101, 75, 6, 0,231,207,159, 7, 0, +121, 77,158, 61,185, 92,142,223,126,251, 13,165,110, 98,134, 97,192, 48, 12, 88,150,197,177, 24, 7, 20,104, 24, 20,166, 68,226, +131,222, 94,168, 91,183, 46, 24,166,250, 33,137,157, 1,197,101,160, 63,145, 72,166,184,186,185,249,116,170, 87, 79,121,250,244, +105, 22, 0,188,189,189,105, 82, 82, 82,246,145, 35, 71,242, 56, 96,131, 55,165,219,171, 18, 89, 94, 94, 94,237, 25,134,249,162, +244,158, 19, 66,150,249,248,248,124, 90, 86,110,130,128, 97,221,237, 36,147, 38, 77,150,182,238, 92,220, 57,105,221,103, 55,114, + 31, 46, 14, 32,153,179,172,255,234,138, 34, 55, 55,119,111,131, 6, 13,216,140,140,140,203, 0,158,234,116,186, 25, 59,119,238, +116, 26, 61,122,116,234,247,223,127,191, 4,128,219,210,165, 75, 59, 23, 20, 20,236, 51,133,183, 99, 19,242,102,139,166, 65,109, +188, 60, 61,113,238,242, 53, 72,101, 18,155,241, 35,123,195,194,130,195,138,173,225,194,211,248,204,137, 23,254,160,219, 77, 16, + 89,173, 6, 14, 28,232,179,123,247,110, 25, 0,220,190,125, 27,201,201,201,112,116,116,132,153,153, 25, 36, 18, 9, 88,150,133, + 68, 34,121, 41, 34,203,218,211,254,234,225,195, 71,204,236,236,108,176,246,163, 73,120, 39, 53, 5, 54,150, 22,208,229, 23,248, +188, 98,130,195,111,192,128, 1, 10,158,231, 81, 80, 80,128,179,103,207, 90,155,153,153, 89,123,120,120,204, 3, 96,180,208, 50, + 51, 51, 75, 41, 42, 42,114, 42,169, 71, 83, 85, 42,149, 51,128, 92,185, 92, 94, 90, 79,231,151,252,159, 81,238,196, 74,220,132, +113, 6,150,172,184, 90,228,185,101,171,150,193,167, 15, 29,216,101,145,147,151, 12, 27,219, 84, 48,200,193,230,205,235, 96,102, +102,133,121,243,102,113,143,187,189,238,222,243,205, 1,167, 9, 33,221, 94, 57,177, 69,201,230,110,125,134,219,153, 41, 45, 75, +218, 18, 29,182,109,153, 4,134, 97,240,233,167,159,162, 81,163, 70, 99, 9, 33,115, 40,165,153, 85,211, 96,115,227,215, 6,219, +201, 20,197, 69, 44,240, 58,108,220,243,113, 49,207,204,113, 24,218,167,238,216, 63,190, 39, 63, 55,170,135,188,226,118, 5, 42, + 9,131, 56,180,162,169,165, 28,225,225,225,157, 66, 66, 66,206, 85,118,252, 47,120,127, 92, 1,132, 84, 36,190,184,240,240,112, + 26, 18, 18, 66, 12, 50,247,220,113, 85,104, 74,136,131,179,181,242,244,134,249,147, 44,184, 43,225,172, 42, 46, 6,137, 69,124, +217,155, 83,126,138,166, 82,169, 28,190,109,219,182,231,116,152,151,179, 19,164, 82, 9, 36, 82, 2,155,142,189,139,223,184, 11, +199, 65, 8,173,172,225,127,142,179,160,160,160,232,214,173, 91, 22, 91,183,110,133,147,147, 19,124,124,124,160, 84, 42,161, 80, + 40,158, 19, 87,134,130,171,188,208, 42,207, 89,122,158,227, 56, 48, 12,131, 83,167, 78, 65,175,215, 99,224,192,129, 47,136, 44, +142,227, 42, 20,110,149, 77, 79,165,148,158, 32,132,220,166,148,190, 86,210, 0,223,166,148,118, 50,248,239,158,142,142,142, 51, + 0, 44, 49,150,147,101, 41,216,162,203, 16, 60, 86,131,123, 54, 9, 26, 73, 19,156,185,120, 3,219, 54,173, 2, 0,248, 52,108, +137, 65,253,123,151, 89,227,140,225, 52,132,187,187,251,158,180,180,244, 94,175,191,254, 58,178,178,178,116,243,231,207, 71,112, +112, 48,252,252,252,140, 42,163,202, 4,220,237,219,183, 61, 85, 42,149, 81,110,199,138, 56, 9, 33,216,185,115, 39,138,138, 94, +180,234,219,118, 90,132,143, 67,189, 49,234,131,237, 88,118,127, 31,214,175, 95, 95,101,222,149, 64,112,145,117,131, 53, 50, 86, + 31,188,100,214, 4,249, 59,239,188,195,142, 26, 53, 10,113,113,113, 24, 61,122,116,209,169, 83,167, 52,201, 73, 73, 71,100,130, +176, 86,251,188, 48,174,148, 83, 46,151,239, 56,113,226, 4,246,237, 43,214, 37,209,209,209,240,245,245, 53,127, 78, 36,103,238, + 71,222,211,181,184,122,236, 30, 90,247,217,141,171,199,134,129,207, 14,151,180,240, 69,142, 41,247,179, 6,189,175,211, 21,124, +183, 15,192, 62,131,251,107,246,253,247,223,247, 3,112,180,228, 28, 0,124,105, 10,103, 49, 17, 70, 13, 14,237, 7, 78,106,137, +123, 49,241,232,212,182, 25,156,157,156,112,251,110, 44,158, 38,100,166, 16,130,145,111,180,151, 47, 81,169, 52,115,206,223,162, +223, 84,195, 73, 60, 60, 60,252,246,239,223, 47, 53,176, 64,151,189,227, 44,203,150, 29,151, 10,239,154, 60,159,165, 34,203,210, +195,226,234,103,235,218,155, 95,141,248, 30,190,222,111,194,246,205,222,248,230,228, 73, 60,184, 19, 85,164, 41,212,119,253,171, +203,232,207,226, 36,132,248,133,134,134, 94,222,181,107,151,205,179,103,207,112,254,252,121,248,248,248,160,176,176,176,218, 14, +111,121,206,162,162, 34, 39, 3,183, 94,233,208,134, 47, 52, 26, 77,105, 97,148,190,136,149,186, 19,203,113,190,224, 38,172,201, +152,172, 10,234,121,153, 66, 42,221,127,248,208, 30,139,168,123,231,209,180, 73, 27, 88, 88, 7, 66,224,147,145,145,153,143,172, +152, 68,124,254,249, 50,204,155, 63, 27, 71,127, 56, 96,225, 31,208,228, 32, 33,164,129,161, 27,241,223, 94,238, 32,116,236,233, + 99,223,111, 32, 84,128, 42,229,158, 92, 82,240, 72, 57,124,216, 0,118,200,144, 33, 56,122,244, 40,238,220,185,179,161, 50,145, +101,200, 73, 40,198, 70,158,223,183, 1,148, 66,149,122, 79, 46, 85, 61, 82,142,120,107, 16,251,206,208, 30,184,242,235, 26,244, +104,250, 40,210,205, 9,253,179, 74,156,135, 28,139, 12,185, 2,151,204,174,145, 43, 6, 98,235, 44, 0, 98, 32,176,206,226,255, +199, 96,254, 27, 16, 82, 18, 29,126,108,121,235, 22, 87, 19,129, 5, 0,126,132, 88, 40,101,210,171,219,230, 77,112, 83,198,221, +225,212,145,191, 33, 81, 45,208,141, 79,244,194, 85, 66,204,110, 80,170, 42,127, 77, 97, 97, 97, 65,108,108,172,217,200,254,253, +209, 46, 40, 8,174,246,246,104,224,225, 1, 51,185, 12, 50,169,196,160, 94, 54, 73, 69, 82,127,127,127,244,233,211, 7, 18,137, + 4, 74,165, 18, 22, 22, 22,144,201,100, 21, 90,179,140,237,229, 82, 74,193,178, 44, 34, 35, 35,241,244,233, 83,216,216,216,224, +210,165, 75,232,218,181,235, 11, 86, 45, 67,113,102,138,137,190,124,195, 95, 42,196, 96,164,203,176, 20, 60, 79,144, 79,155, 64, +241,100, 34, 10, 73, 51,168,213,122,168,213,106,124,115, 81,139,107,177, 5,208,106, 53, 80,171,213,149,254,103, 21,247,150,113, +115,115, 27,238,235,235, 59,126,216,176, 97, 58,153, 76,134,130,130, 2, 20, 22, 22,226,206,157, 59,186, 94,189,222,204,238,211, +167,183,117,120,120, 56,165, 20,203, 76, 28,167,149,225,238,238,238, 89,226,158,205,168, 97, 15,162, 76,196,148,199,200, 47,163, +192,177,197,101,178, 97,195, 6,240, 60, 15, 74,105,165,133, 84, 68,200, 47,243, 23,173,180, 94,186,250, 91, 88,219, 57,227,220, +185,115,252,207, 63,255,156, 71,128,232, 7,119,238,124,249, 63,224,199,253,128,214,148,244,101,101,101,153,249,248,248,192,195, +195, 3,130, 32, 64,167,211,149, 89, 95, 50, 50, 50,160, 82,169, 96,103,158,141,250,246, 30,208,231,157, 69, 82,228, 2,184, 90, +220,195,246, 19, 26, 93,115, 63,252,241, 15, 48,133,127, 7,224,187,218, 19,193,221,201,197, 19, 12,213, 33, 49, 53, 3,253, 66, +122,128,149, 90,224,241,179,116, 52, 9,172,231,250,214,255,218,187,178, 68,143,105, 75,118,143, 7,240, 77,117,116,249,249,249, +252,189,123,247,112,251,118,177,222,181,178,178,130,185,185,249,115,239, 56,195, 48,181,178,104,149,138,172, 69, 27,186,154, 51, +146, 2,228,242,167,177,117,231, 13, 52,241,239,141,141, 87,175, 23,241, 41,153,221, 86, 20, 21, 69,255,171,221, 70,174,174,227, + 4, 65,152, 71, 41,205, 14, 13, 13,117,222,189,123,183,109, 66, 66, 2,110,220,184,129, 79, 63,253, 52,141,231,121, 61,165,148, + 80, 74, 23,188,132,103, 73, 48, 16, 88, 47,211,138, 32, 81, 42,240,129,131, 21,233,203, 49, 86, 62,250,220,252,199,233, 26,122, +164, 80, 47,124, 77, 41,213, 85,117, 45,195, 48,239, 29,216,187,193,205,193, 81, 64,103,199,215,145,148,162,197,162,143, 70, 32, + 35, 35, 15,223,108, 89, 12, 64, 6,173,158,197,107,157, 7,192,201,201, 29, 99,199,140,117,217,176,105,227, 4, 0, 43, 94, 21, +131, 86,210,165,117, 63, 16, 66, 78, 59, 58, 58,222,153, 48,118,172,163,143,207,219, 80, 40, 20,216,179,103, 15,118,175, 93,203, +175, 6, 6,109, 34,228,204, 56, 74,127,168,146,231,202,255,243, 76, 10, 11,115, 12, 8, 8,131, 92, 46,199,175, 63,127,135,162, +228,157,121, 33,237,160, 45, 44, 66, 72,157, 62,212,238,201, 49,146, 41,145, 32, 6, 0, 36, 10, 36, 73,128,212,114,116,255, 54, +129, 85, 38,163, 74,199,105,149,238,107, 29, 25,158, 74,100, 17, 91, 38, 15,245,118,134,154,104, 46, 30, 67,130, 90,224,151, 62, +208,178, 55,115,232,199, 81, 21,136,172,146, 7, 91,240,242,242,194,235, 45, 90,160,127,199,142,224, 56, 14, 10,153, 20,150, 10, + 51, 80,190,216,146, 85,234, 58,172,162, 77, 68, 69,214, 39,123,123,123, 72,165,210, 50,129,101,172, 53,171, 50, 78, 65, 16,192, +113, 28,110,223,190,141, 14, 29, 58,192,211,211, 19,251,246,237, 67,207,158, 61, 95,112, 37,154, 42,178, 74,133,150,161, 27,207, + 96,144,124,181,131,224, 95, 16, 9, 26,130,116, 77, 19, 16, 18, 4,189, 30,224, 41,160, 46, 42, 2,165, 0,165,128, 78,171, 65, + 81, 81, 81,217,127, 26,227,146,117,117,117,245,170, 91,183,238,194,233,211,167, 5, 52,105,210, 20,105,105,105, 16, 4, 1,230, +230,230, 40, 44, 44,132,149,149, 21,218,181,107,247,120,225,194,133, 73,148, 98,172,169,131,225, 95, 66, 5, 11, 0, 56,121,242, +228,115,110,195,210,173, 32, 41, 30,163, 62,252, 30, 50,174,216,181, 84, 58,134,167,170,122,183,203,107,237,113,249,102,180,254, +189,105,107,212,146,140, 27, 75, 92, 4, 97, 91, 60,144, 82,139,198, 5,233,233,233, 72, 73, 73, 65,223,126,253,176,123,215, 46, + 60,121,242, 4,129,129,129,232,210,165, 11,156,156,156,240,228,201, 19, 92,187,160,134, 58, 43, 19,153,154, 27, 80, 90,182,198, +225,115,177,234,185,235, 53,177,127, 87,109, 65, 8,233, 11, 96,132,149,149, 85,221,194,194,194, 36,189, 94,191, 31,192,126, 0, +131, 56,142, 27,164, 84, 42, 93,115,115,115, 31,161,120, 54,209,145,106, 93, 73, 10,133,189, 92, 97, 5, 65,175, 6,199,113,240, +244,244, 1,229, 53,200,202, 85, 97,228,144, 62,184,121,251, 46,126, 62,115, 69,175,211, 9, 95, 25,115, 91, 89,150,165,126,126, +126, 72, 77, 77,133, 68, 34,129,153,153, 25, 44, 44, 44, 48,115,230, 76,172, 93,187,182, 76,100,213, 84,104,189, 11,248, 89,121, + 89, 92,249, 98, 93,177,200, 74, 78, 76, 66, 74,188, 4,142,246,206,248,106,237,234,130,172, 39,201,173,191, 5,254,213, 34, 11, + 0, 4, 65, 88,144,144,144,224,196,113,156,139, 94,175,199,179,103,207,240,251,239,191, 99,226,196,137, 41, 25, 25, 25,157, 41, +165, 53,202,163, 66,161, 72, 45,181,100, 41, 20,138, 84,160, 82,119, 98,182,129, 37, 43,187, 10,202, 10,221,132,132,144,122, 62, + 30,150,167,182,172,154,226,213,178,117, 59, 70,201, 89,101,229,199, 36,119,184,120,254, 92,187,137,171,190,153, 64, 8,233, 65, + 41,125, 88, 25,169, 92, 34,233,213,166,125,123, 14, 52, 5,156,172, 3,150, 45, 29,130,180,244, 92,100,101,230, 65, 42, 53,135, + 70,199,130, 23, 8,218,117,232,136,239,182,239, 69,163, 49,163, 89,153, 68,210,253, 85, 18, 90, 37, 88,252,245,215, 95,123,249, +251,251, 99,219,182,109, 56,179, 99, 7,222,201,201,193, 57,134, 97,117, 18,137,195,143, 58,221,102, 0, 63, 24,203,211,168, 81, + 35,124,251,237,183,216,185,115,103,220,240,174,169, 7,167, 12,135,147, 86,139, 55,110,220,135, 93,157, 62,192,141,251,176,107, +238,143, 6,122, 14, 49,132,224,185,112, 80,225,225,225,157, 12,247,255, 38,148,172,109, 88,161,139,157, 3,208, 57, 60, 60,156, + 26,238,171, 35, 84, 58,249,133,237, 28,242,186,119, 80,125, 47,162,219,183, 6,207, 10,244,154, 60, 32,158, 67, 0, 0, 32, 0, + 73, 68, 65, 84, 57,247,181,178, 7,249,116, 74, 20,165,171,171,232, 65, 80,150,101, 97,105,102, 6, 71, 27,155, 98, 51, 63,195, + 0, 2, 32,232, 0,194, 23, 11, 0, 42, 16,152, 50,105, 90, 16, 4,200,100,178, 10, 7,190,155, 58, 54,203,144, 51, 47, 47, 15, +143, 31, 63,198,216,177, 99,161, 84, 42, 1, 0,201,201,201,240,246,246, 6,199,113, 72, 72, 72,192,175,191,254,138,186,117,235, + 66, 46,151, 19, 19, 11,165,180,225, 15, 38,132,156, 3, 16,156,148,148,100,229,234,234, 10,147, 45, 90, 2, 69,161,154, 64,163, +225,241,224,193, 3, 36, 38, 38,226,241,163, 24,180, 44,200, 5, 5, 11, 74,169, 73, 22, 45, 15, 15,143, 32, 95, 95,223,141, 75, +150, 44,145,122,120,120,128, 82, 10, 91, 91, 27, 20, 22, 22, 34, 61, 61, 3,129,129,129,240,244,244,196,178,101,203, 0, 96,247, + 95, 45,178,202, 61, 83,101, 66,203, 80,112,125,248, 63, 47,100,102, 90,128,101,255,127,246,105, 53, 99,180,164, 0,208,185, 71, + 40,119,234,231, 31,205,245,192,194,100,150, 93,200, 85, 95,142, 58, 94, 16,148,149,157,127,246,236, 25, 36, 18, 9, 14,236,223, +143,204,148, 20, 52,105,210, 4,173, 90,181, 66, 76, 76, 12,110,222,188, 9,123,123,123, 56,122,180,197,185, 71, 90, 68, 37,170, + 96,109,109,141,216,120,230,111, 11, 25, 64, 8, 25,211,173, 91,183, 79,191,252,242, 75, 39, 23, 23, 23, 73, 90, 90,154,255,186, +117,235,154,172, 91,183,110,210,132, 9, 19,156, 39, 76,152, 96,235,232,232,200, 37, 39, 39,251,125,244,209, 71,205, 9, 33,117, + 41,165, 43,171,226, 52, 55,183,180, 99,165,230, 32,132,131,141,181, 45, 56,153, 57, 4, 61, 7, 94, 0,172,172, 29,113,249,230, + 1, 92,138,200, 27,151,154,129,253, 70,188, 55,212,222,222, 30, 12,195,192,222,222,254, 5, 75,245,196,137, 19,177,101,203,150, + 50, 55, 98, 77, 69,214,162,117, 93, 45, 72,137,200, 74,126,198,129,168,235,226,216, 15,191,101,103, 61, 73,238,240, 42,136,172, +210, 58,142, 82,138, 71,143, 30,161,176,176, 16, 23, 46, 92,192,130, 5, 11,210,202,139, 44,103,103,231, 49, 86, 86, 86,243,243, +243,243,151, 37, 37, 37,173,169,142,183, 68, 68, 61,223, 25,172,192,157,104,108,136,135,138,220,132,132, 16,137,167,171,226,196, +205, 11,223,123, 91,211, 63, 8,158,142, 5, 30,228,222,177,188,234,244,218,155, 45, 67,152,102,235, 63,171,211,106,220,204, 19, +132, 16,255,202, 44, 91, 2,207, 55, 51,183,176, 4,144,138, 27,191,159, 45, 19, 89, 25,153, 57, 80,107, 89,168, 53, 4, 69, 90, + 6,175,119,123, 3,107, 55,238, 68, 66,106, 38, 74,103, 36,190, 42, 32,132,216, 5, 5, 5,133, 13, 26, 52, 8, 11, 23, 46,196, +233, 47,191,212,188, 79, 72, 46, 7,208,112,158,135, 64, 41, 97,140, 24,196, 94,158,103,197,138, 21, 63, 0, 24,186,100, 34,218, +102,229, 99,164, 91, 31,106, 87,167, 79,241,111, 7, 78,167, 0, 96,151,118,250,249, 38, 51, 36, 36,132,148,122,214, 76,245,176, +253,211,193,133,132,132,156, 11, 15, 15,135,225,190,170, 11,172, 92, 26,190, 57,243,147,137, 75, 91,246,236, 72,146,166,118, 71, +102,110,145,126, 86,148, 86, 22,175,170, 90,100, 25,226,147,117,235,112, 51,186,248, 61,246,112,114,194,180,183,222, 2,213, 3, +151,238, 68, 97,239,233,211, 24,210,173, 27,204, 75,102,252, 25,107,125,170,200,138,101,104,205, 50,213,234,148,157,157,141,253, +251,247,163, 85,171, 86, 80, 42,149,224, 56, 14,193,193,193,184,123,247, 46,234,213,171, 7, 66, 8, 14, 31, 62,140,254,253,251, +227,225,195,135,104,219,182,173, 69, 77,132, 86, 84, 84,148, 21,165,244,181, 82,235, 71, 77,161, 86,171,113,239,222, 61,244,233, +211, 7,182,182,182,112,119,223,141,211, 39,190,135, 50,232, 29, 16, 2,147,132, 22,207,243,239,134,132,132, 72, 9, 33, 80,169, + 10,161, 80,152,193,220,220, 2,150,150, 86,240,243,243, 71, 98, 98, 34,122,246,236,169,137,141,141, 93,159,148,148,180,207,212, +180, 6, 6, 6,154,231,228,228,188, 83,167, 78, 29, 89, 73,111, 55,176,126,253,250, 31,199,198,198,230,153,106,213, 42, 21, 88, +132, 16,176, 44, 91, 38,180, 56,134,129,171,139, 83,217,113,201,248, 52, 82, 5, 87,110, 66,134, 90, 14, 0, 94, 94, 94, 88,187, +233, 40, 19, 18, 18,130, 73,147, 38, 65,167,211, 97,253,250,226, 73,118,195,134, 13,131, 86,171,197,193,131,197,147, 36, 57,142, +171,210,108,242,251,239,191,227,198,141, 27,208,233,116,200,201,201,193, 79, 63,253,132,115,231,207, 99,207,225, 95,240,228, 81, + 12,130,253,189, 49,122,244,187,144, 72, 36,216,190,125, 59, 58,116,232,240,183, 86, 8, 18,137,100,248,150, 45, 91, 92,183,109, +219,150,125,248,240,225,130, 54,109,218,200, 87,175, 94,237,180,118,237, 90, 71,141, 70,131,201,147, 39,167, 94,185,114, 69,221, +175, 95, 63,243,205,155, 55,187,214,175, 95,191, 59,128,149, 21,220, 79,115, 0, 67, 0,188,221,185,149, 53,151,157,167,130,160, +215,224,209,147,199,200,201,215, 64,224,181,136,139, 79, 68,126, 17,143,140,204, 60, 4, 55,235,241,245,217,179,103,103, 19, 66, +102, 81, 74,143, 87,151,206, 59,119,238,224,202,149, 43,120,242,228, 9, 30, 61,122,244,220,185, 49, 99,198, 96,231,206,157, 38, + 91,180, 42, 22, 89, 44,136,186, 30,142, 31,190,154,157, 26,147,244,202,136,172,146, 58,104,158,171,171,235, 60, 87, 87, 87,197, +201,147, 39,173,235,212,169, 3,189, 94,175, 41,111,201,234,220,185,243,156, 45, 91,182,184,214,171, 87,111, 34,128, 53,255,132, +180, 51, 12,198, 44,219, 16,230, 96, 41,139, 75,196,131,149, 37,177, 4, 89,160, 48, 23, 56,187, 11, 92,251,185,143, 39,246,155, +110, 59, 99,219,194, 49,168, 98,134,108,236,195,103,216,176, 97, 45,166, 76, 30,137,239,190, 89, 6, 65,224,160,214,177,240,242, +105, 3,181, 86, 0, 97, 56, 52,105,214, 2,103,206, 94,128,132, 1,246,111,219,240, 74,153,178, 40,165,153,132,144,245,135, 15, + 31,254, 96,210,164, 73, 16, 4, 65, 54,127,195, 6, 85, 90, 90,218, 98,152, 16,255,170, 2,158,254, 27, 54,108,136,158,177, 54, +237,135, 41,195,193, 62, 57, 70, 50,111,220,135,221,192,233, 20, 7,150, 18, 52,247, 71,166,178,226, 38,254,124,185,253,171, 33, +180, 74,149,164,225,190, 34, 52,247,171,247,153,181,157,237,187,173,130,253, 28,166, 77,122,159,123,152, 92,132,131,117,222,202, +255,117,199, 87,230,201,122,249,215, 49, 84,181,218,148, 63,222,251,235,175,101,159,151,239,222, 93,225,185,164,129, 3,141,238, +153, 85,102,197, 50,213,146, 5, 0, 74,165,210,166,123,247,238,232,218,181, 43, 6, 12, 24, 80, 54, 38,171,105,211,166,216,179, +103, 15, 66, 67, 67,113,235,214, 45,184,186,186,162, 97,195,134,104,216,176, 33,126,252,241, 71, 83, 31,112,240, 60,143,160,160, +160,210, 89,135,193,241,241,241, 86, 53, 45, 72,181, 90,141,140,140, 12,216,217,217, 65, 38,147,161,117,235, 86,248,224,195,214, +112,112,253, 22, 65, 1,254, 40, 40, 40, 40,155,254,110, 68, 99, 27,212,160, 65, 3,164,165,165, 33, 45, 45, 13,142,142,142,112, +115,115,131,139,139, 11, 86,174, 92, 73,215,172, 89,243,179, 86,171, 93,159,150,150,102,178, 37,203,213,213,181,163,157,157,221, + 28,149, 74, 37, 51,232,225,202, 28, 29, 29,143,184,185,185, 45, 78, 76, 76, 52,101,141, 77,104,181, 90, 16, 66, 16,254,200, 13, + 5, 26,130,220,248, 27,152,244, 63,239,231,132,151, 68, 34, 49,102, 64,111,193,208,161, 67,157, 60, 61, 61,240, 44,246, 14, 14, + 28,160,248,242,203, 47, 75,103, 69, 34,186,164, 99, 80,122,220,165, 75, 23,248,248,248,192,148, 32,153,130, 32,224,246,237,219, +216,125,228, 28, 92,189, 3, 16,247,224, 30,110,254,120, 12,117, 28,237,208,168, 89, 11,232,116,186, 90,133,222,120, 25,208,233, +116, 91,125,125,125,169, 70,163, 57, 7, 96,109, 68, 68,196,200,164,164,164,201, 71,143, 30,117, 27, 52,104, 80,226,177, 99,199, + 86, 3,216, 22, 17, 17, 17,246,249,231,159,119,213,235,245, 21,206, 22,100, 89,246,187,143, 62,250,168,243,160, 65,131,136,148, +209,105, 78,158,216,206,233,245, 58,242,201,172,173,252,217,139,231, 24,189, 94, 71, 6, 12,253, 72,248,241,215, 8,102,220,135, +203,249,166,109, 66, 16, 25, 25,233,210,187,119,239,207, 1, 84, 41,180, 74, 45, 85,149, 89, 40, 89,150,197,200,145, 35,177,103, +207, 30,163,243, 61, 26,168,103,229,109,113,101,209,186,110, 22,132,203, 55, 16, 89,245,113,252,240,213,236,148, 7,137,175,148, +200, 2,128,244,244,244, 77, 0, 54,217,217,217,165,152,155,155, 35, 47, 47,239,133,231,143, 16,162,240,247,247, 87,200,100, 50, +244,232,209,195,206,213,213, 53,154, 97,152, 53, 9, 9, 9,149, 42,142,138,220,132, 21,185, 19,107, 51,235,208,214, 17,189, 91, +119,108,102,121,223,122,161,165,130, 43,186, 85, 39, 90, 97, 69, 0,228,168,157, 31, 93,126, 58, 36,151,164,202,155,182,232,210, + 28, 86,156,121,239,202,132, 22,195,178, 55,115,178,178,123,229,230,105,112,241, 82, 36,134, 14,105, 0,181,150, 64, 16, 24,228, + 23,168, 1, 86, 2, 6,192,176,183, 70,128, 18, 14,153, 41,137, 96, 89, 54, 2,175, 30,102,134,133,133,245,154, 53,107, 86,221, +146,248, 87,222, 37,241,175,166, 17, 66, 26,211,106,130,143, 87,193, 83,231,216,158,185, 83,143, 92,216,152, 19,210, 78,245,160, +185, 63, 0,192,174,185, 63, 50, 37, 18,196,112, 44, 50, 40,133,170,156, 85,171,147,225,254, 95,102, 29,124,110, 16,188,225,177, + 81, 99,180,124,235,121,188,209,169,101,139, 15,103,207,154,109,121,247,242, 89,204,248,108, 45,245,109,209, 61,111,211,133,155, +154,124,115,159, 94,121,105, 15, 46, 25,171, 47, 0,224,141,215, 67, 17, 28,216,234,133,147, 29,186, 20,199,146,188,120,230,119, +164,164, 37, 24,221,216,150,136,131, 10,199,100, 25, 51,165,191, 2,211,119,118,100,100,164, 83,124,124,252,115, 3,223,125,124, +124, 64, 8,193,213,171, 87,113,229,202, 21, 12, 29, 58, 20, 28,199, 65, 34,145,224,220,185,115, 38, 89, 99, 12,172, 75,183, 41, +165,157, 8, 33, 61, 61, 60, 60, 42,156,109,104, 12,151, 74,165, 66, 78, 78, 14, 78,156, 56,129, 6, 13, 26, 96,209,162, 69,112, +115,117,198,236,217, 83, 33, 8, 2,114,115,115,193,243,188,177, 22, 45,161,212, 90, 36, 8, 2,210,210,210, 80,183,110, 93,172, + 91,183, 14,171, 87,175,254, 60, 49, 49,241,168,169,105,244,242,242,178,225,121,254,147, 62,125,250,116,239,215,175, 31,122,246, +236,249,220,249, 93,187,118, 89, 30, 60,120,112,177,167,167,231, 27, 90,173,118, 73, 74, 74, 74,154, 49,188,223,126, 91, 28,126, + 73,217,102, 30,102, 12,170,131,183,199,111,199,202,149,135, 32,151,203,159,107,120, 23, 46, 92, 88,165,136, 17, 40,245,149,166, + 95, 78,156, 58,125,133,211,226,197,167,113,250,116, 42, 24,134,129,171,171, 43, 24,134,193,227,199,143,193, 48, 12,188,189,189, +193, 48, 12, 18, 18, 18, 74,199, 4,102,161,200,184, 88,134, 12,195,160,168,168, 8,207,226,158, 32, 62, 54, 26, 22,185,201,112, +180, 82, 34,235,206,109, 4,143, 30, 83, 22,255,233,111,238,225,238, 4,176,211,224,171, 21,132, 16, 13, 33,100, 0,128, 31, 40, +165,165, 22,141,207, 75,182, 10,209,166, 77,155,166,179,102,205,146,148,134,219,112,243,250, 66,175,213,106, 5, 0,240, 15,126, +237, 57,181, 31, 19, 19,131,149, 43, 87,162,160,160, 0, 82, 99, 2,221,149,136,214,210, 25,134, 21,137, 48, 83, 68, 22, 0,216, +123,123,124,125,245,198, 57,254,143,216,141,170,136,251, 63,153, 37,197, 49, 96, 52,175,174,200, 42,111,217,242,240,240,152, 39, + 8, 2,165,148,206, 53,168, 91,229, 94, 94, 94, 23, 78,158, 60,105,175,215,235,241,213, 87, 95,217, 36, 39, 39,219,188,246,218, +107, 51, 0, 84, 42,180, 42,114, 19, 86,228, 78,132,193,172, 67,185, 92,110, 87, 85,245, 81,126,214, 33,207,195,207,202,210, 6, + 89,136,135,218, 65,215, 52,219, 94,159,121, 42,105,204, 45,183,167,205, 2,205,121, 93, 93, 38, 87, 3,119,165, 13, 4, 74,253, + 42,237,156,234,116, 63,221,186,113,179,135,151,103, 3,246,232,241,243,232,219,127, 16,212,106, 6, 69, 58, 2,194, 74, 64, 88, + 41, 26, 7, 55, 67,195, 70,193,160, 0,126,191,118, 89,175,209,233, 78,189, 74,101,239,214,225,195,161,110, 29, 62, 88, 3, 42, +208, 10,226,104,213,237,223,191,255, 98, 0, 31, 86,199,227,220,246,195,161, 46,237,138,121, 12,227,104,125,244, 65, 24,238, 92, +147, 88,159,191,177, 84,218,179, 13,194,211, 78, 19, 40, 21,255, 63,235, 80,194,212, 60, 52,199,191, 69,112, 25, 37,180,188,188, +188,108,156, 44,148,223, 78, 24,253,174,229,211, 63,126, 67,114,212, 85, 92, 58, 31,157,181,247,224,161,204,130,140,212,209, 38, +136,172, 50, 55,159,189, 75, 29,248, 4,188, 40,180, 20, 22,142, 0, 0,159,128, 86, 96,205, 77, 11, 35, 84,145, 53,171, 38, 34, +203,176,194,174, 40,134,214,184,113,227,176,101,203, 22,180,111,223, 30,190,190,190,101,149,189,169, 86,179,242,214,165,154,204, + 54, 52, 68, 94, 94, 30,188,189,189,177,121,243,102, 68, 68, 68,192,210,210, 18, 67,135, 14, 69, 94, 94, 94,153,192, 50,118, 48, + 60,165, 52,230,228,201,147, 45, 7, 15, 30, 76, 37, 18, 9,201,206,206,134,141,141, 13,214,173, 91, 87,144,148,148, 20, 94, 3, +145, 53, 72, 42,149, 78, 29, 50,100, 8,235,239,239,143,148,148, 20, 88, 89, 89,233, 8, 33, 18, 0,176,177,177,209,153,153,153, + 33, 44, 44, 12, 77,154, 52,233, 56,109,218,180,246,238,238,238,235, 18, 18, 18,182, 87,245, 44, 17, 66,202, 26,212,209,107,238, + 65,163, 41, 22, 42,235,215,175, 71,201, 88,183,255,119, 17,196,198, 2, 70,204,100,177,176,176,128,175,175,111,133,101,223,177, + 99, 71,252,254,251,239,197,174, 73,142,131,147,147, 19, 46, 93,186,100,212, 76,170,210, 64,144,145,145,145, 8,240,113, 64,196, +233,147,112, 80, 74,208,196,205, 5, 30, 29, 59, 33, 58, 58,250,111,179,102,149,196,166,122, 31, 64,183,146,103,112, 43,128,113, + 6,199,235, 40,165, 95,155,194,169,215,235, 41,195, 48,228,217,179,103, 90,165, 82, 73,236,236,236, 56,185, 92, 14,181, 90, 93, + 38,184, 98, 98, 98,112,252,248,113,196,199,199,195,206,206,142,177,182,182,134, 86,171,205, 50,134,223,207,207, 15, 46, 46, 46, +207, 13,124, 31, 61,122,116,141, 68,214, 72, 32,104,203, 23, 75,234,200, 25,214, 58,192,225, 13, 60,186,247,184,136,209, 64,241, + 95, 16, 89, 0,144,149,149,181, 9,192,166,210, 99, 71, 71,199, 81, 44,203,206,182,182,182,182, 62,119,238,156,141,163,163, 35, +217,190,125,187,110,238,220,185,217, 44,203,102, 17, 66, 86,253,253,226, 16, 81,233, 57,177,222, 18, 91, 55,225,143, 34,122,121, +242,179, 25, 13,179, 36, 13, 28, 73,163, 32,244, 79,189,123,113,148, 62,182, 93, 74, 82, 50, 67, 33, 68, 85, 81, 7,111,157, 49, +107,225, 39,209,247,110,122, 41,172, 20, 24, 23, 54, 11,225, 63,159, 1, 97, 36,184,112,249, 42, 52, 90, 30,233,153, 57, 24, 50, +108, 56, 60, 92, 29, 16,117,229, 68,154, 94, 16,214,189, 90, 34, 91, 88,219,163,239, 40, 91,185,153,178,228,158,240,216,249,205, + 84, 48,204, 26,124,250,233,167, 8, 10, 10, 26, 79, 8, 89, 80, 93, 28, 45, 66,132,181,141, 59, 13,179,149,202,139,121,168,192, + 99,243,254, 25, 37,113,180,166, 96,221,166,131,141, 27,249, 60,154, 95, 85, 28,173, 87, 69,100, 25,238,171, 21, 90,117,234,212, +145,155, 75, 48,214,206, 76, 58,109,194, 91,253, 28, 83, 99,239, 32,254,238,205, 98,247,130, 86,165, 77,138,142,242, 53,226, 79, +187,149,139,223, 65,171,114, 93, 21, 21,233, 96, 42,103,105,131, 91,222,154,101,138,200,170,136,211, 80,108, 25,198,205,242,244, +244,196,226,197,139,171,141,163, 85, 65,222, 75,191,239, 9, 32,184, 84,108,161,120, 48,124, 79, 99,102, 26, 86,198,233,232,232, +136,140,140,226, 8, 9,157, 59,119, 70,231,206,255, 63,159, 65,171,213,150, 89,177, 44, 45, 45, 95,176,104, 85,196,105,102,102, + 54,227,208,161, 67,239, 94,190,124,121,240,199, 31,127, 44,233,218,181,107,169,152, 43,164, 70,172,237, 86,158,147,231,249,176, + 19, 39, 78,176,130, 32, 96,243,230,205,248,253,247,223,169, 82,169,156,163, 84, 42,215,154,153,153,241, 42,149,106,220,152, 49, + 99,134,207,159, 63,159,233,216,177, 35,126,251,237, 55,166,110,221,186, 35, 0,108,175, 46,239, 87,175, 94, 5,195, 48,208,103, +198, 97,252,140,189, 48, 55,227,112,239,222, 61,100,102,102,190, 16,196,212,152,251,105,104, 41, 41,221, 58,118,236, 88,230,134, +108,221,186, 53, 88,150,197,173, 91,183, 42,116,195,150,227,164,246,246,246,101,207,135, 84, 42,197,153, 51,103,240,217,103,159, +193,203,206, 6, 89,119, 35,224,210,249,117,116,127,119, 12,134, 14, 29, 10,150,101, 97,103,103, 87,102,249,173, 46,239,181,172, + 16, 12, 57,223, 13, 8, 8, 24, 17, 21, 21,229,209,184,113, 99,215,200,200,200, 46, 65, 65, 65,222, 17, 17, 17,165,199,114, 24, + 49, 54,199,144,243,250,245,235, 7,214,174, 93, 27, 54,114,228, 72,169, 32, 8,252,211,167, 79,117, 0,136,139,139, 11,123,253, +250,117,225,232,209,163, 80,169, 84,240,240,240, 96,220,221,221,201,169, 83,167,132,187,119,239, 94,165,148,206, 50, 38,239, 60, +207, 63, 23,198,161,244,243,174, 93,187, 76,126,223,235, 52,244, 91,212,245, 53,127,207,244,196, 91, 72, 74,136, 5,159,227,168, + 61,126,248,152,218, 20,145,245, 23,148,209, 95,201,185,240,193,131, 7,238,106,181, 26, 50,153, 12,235,215,175,215, 46, 94,188, + 56, 42, 61, 61,189, 3,173, 96, 70,121,121,206, 26,206, 58,204,172,130,243,133, 89,135, 57, 25, 8, 63,124,228,122, 75,139,254, + 91, 49, 62, 49,173,108, 96, 35, 37,196,238,144,115, 96, 7,101,171,198, 9,204,143,243,152, 60,190, 48,188,178,116, 82, 74, 53, +132,144, 65,253, 67,135,253,178,103,207,110,139,185,243,230,225,210,213, 8,100,100,231, 67,160, 44, 4, 66, 48,123,246, 92,184, + 56,216, 33, 55,241, 65,161, 90,171,237, 95,126, 41,158,127,123,185, 19,194, 76, 60,117,116,251, 26,134, 64, 40, 72,185, 47,103, +243, 98,149,111, 15,237,207, 13, 26, 52, 8,135, 14, 29, 66,100,100,228,198,202, 68,150, 33, 39,165,204,196,136,115,123,215, 16, + 64, 80,165,221,151,115,249,143,148, 35,222,234,207, 13, 29, 58, 20, 63, 28,191,140, 61,199, 30,109,216,125,148, 30,123,149, 59, + 44, 53,138, 12,111,201, 33,178, 67, 96, 61,247,142,205, 26, 41, 56, 94,133,248,187,177,200, 44, 40,194,169, 59, 79,179, 25,202, +212, 56,182, 78,113, 5, 41, 69, 92,220,131, 23,206,101,103, 43, 74, 26,116,211,150,149, 98, 24,230, 57,107, 86,109, 44, 89,134, +233,116,118,118,126,110, 57, 23,195,134,187,116, 12, 80, 13, 66, 59,204,136,139,139,179,138,139,139, 3,165, 20, 87,175, 94,181, +106,221,186,245,140,218, 88,179,166, 78,157, 90,102,181, 42,191,175,232,187,234, 80, 50, 40,125,181,131,131,195,254,105,211,166, +141,111,221,186,117,143,121,243,230, 17, 0,108, 13, 31, 64,189, 32, 8, 56,123,246, 44, 14, 29, 58,196,107,181,218,177,137,137, +137,134, 99, 29,190,114,115,115, 59, 21, 26, 26,186,253,254,253,251,108, 84, 84, 20,140, 17,116, 42,149, 10,190,190,190,208,235, +245, 88, 58,222, 19,121,121,141,161,215,235,193,243, 60,204,205,205,159, 91,231,210,152,114, 98, 24, 6, 60,207,191, 32,180,174, + 94,189, 10,150,101,209,161, 67, 7,220,188,121,179,204,162, 85,157, 5, 74,171,213,198, 57, 59, 59, 59, 47, 92,184,176, 44, 93, +105,105,105, 56,121,242, 36,218,180,109,135,192,177,227,144,152,152,136, 85,171, 86,193,205,205, 13,139, 22, 45, 66,102,102, 38, +244,122,253, 95,109, 78,239, 21, 21, 21,229,241,214, 91,111,165, 70, 68, 68,120, 28, 63,126,220,166,119,239,222,230,195,134, 13, + 75,141,136,136,240, 32,132,180,131,137,131,160,121,158,159, 73, 8,249,121,209,162, 69, 51, 62,252,240,195,214, 35, 71,142,148, + 72, 36, 18, 33, 33, 33, 65,191,123,247,110,226,235,235,203, 72,165, 82,114,226,196, 9,225,218,181,107, 87,244,122,253, 82, 74, +233, 5, 83, 44,206,134, 34,139,101, 89,163, 68, 86,121, 76,118,146,143,176,100,210, 58,172, 93,191,152,241,247,241,208,238,216, +125,242,217,133,223, 30, 60,100,213,250,201,223, 2, 15,241, 31, 4,203,178,251, 2, 2, 2, 70, 77,156, 56,209,172,103,207,158, +242,249,243,231,231,228,229,229, 85, 40,178, 42,121, 47,255,244, 89,135, 0,190,153,249,241,241,201, 31, 53, 30, 85,239, 61,151, + 58, 56, 93,144,138, 44,142,101,172,108, 24, 52,243,102,145,151, 30,227,120,236,151,109,143, 81, 77, 92, 54, 74,233,117, 66, 72, +183, 70,141,155, 30, 92,186,104,169,211,156,233,211, 36, 7,143,255, 4,170,215,226,234,185,115,176,144,242,244,238,141,211, 41, +106,173,166,223,171,184, 4, 79,226,197,175,246, 16, 66,142,216,217,217,253,241,238,200,145,190, 1, 1,195,160, 84, 42,113,224, +192, 1,236,252,234, 43,126, 53, 48,120, 19, 33, 55,199, 21,199,212,171, 20, 41,191,149,241,220, 26,243,238,187,126,205,154,189, + 7,165, 82,137,253,251,247, 99,251,234,213, 70,243,252,203,173, 89,165,145,225,195, 75,246, 70,196,209, 98, 72,222,149, 7, 79, +243,175, 62,120,154, 15,129, 82,129, 82, 53,195,224, 89,129, 86,187, 40,250, 97,252,137, 26, 38, 4,130, 32,224,243, 47, 38,190, +204,204,149,137,159,154, 78,233,174,160,145,136, 55, 92, 35,173,186, 5,165, 1, 64,167,211,197, 27, 73,191,196,203,235,133, 53, + 80,151,212, 52,173,165,238, 64, 99, 69,150,177,113,180, 0, 32, 61, 61, 61, 9,192, 28, 87, 87,215, 93, 61,122,244, 24, 3, 32, +161,134,101,180,185, 83,167, 78, 99, 1,176,132,144,141, 9, 9, 9, 47, 12, 40, 77, 76, 76,140,118,119,119, 95,238,227,227, 83, +182,208,116, 85,156,130, 32, 60,106,220,184,177,182,162,178,168,236, 88, 16,132,106,203, 40, 59, 59, 27,173, 90,181,122, 97, 77, + 75, 74, 41,158, 62,125, 90,106,113, 42,187,247, 85, 9,184,252,252,252,113, 31,124,240,193, 38,137, 68,226, 5,128,148,138, 92, +158,231,217,175,191,254, 90,193,243, 60, 11,128, 48, 12,163,151, 72, 36, 69,135, 14, 29,210,235,245,250, 56,181, 90, 61,238, 47, +174, 35,246,147,226,165, 24, 10,162,162,162,252, 75, 44, 89,241,145,145,145,183,246,236,217,227, 8, 96,111, 13,159,205, 11, 0, + 46, 16, 66, 58,174, 95,191,126,230,184,113,227, 90, 13, 29, 58,148,235,220,185, 51,194,195,195,249,179,103,207, 94, 85,169, 84, + 75, 76, 17, 88, 37,101,153,227,233,233, 89, 38,184,170,121,151,171, 28,200,107,239, 45, 95, 59,252,125, 55,197,230, 37, 39,243, +211, 19, 53,151,117,249,154, 89,219,128, 72,252,135,145,156,156,252, 49, 33,100,238,170, 85,171, 18,155, 52,105, 34,151, 74,165, + 26, 99, 69,214, 95,104, 61,208, 19, 66,222,252,178,251,192, 35,157,102,127,224,211,189, 75, 7,165,103, 29, 39,247,187,177, 41, +136,249, 45,188,224,143, 99, 95, 60,161,234,172,190,148, 82,189, 17, 92,215, 8, 33, 13,166, 78,155, 90,186,168,116,112,215, 83, +135,233,127,104, 81,233,207,151, 47, 95,238, 27, 16, 16,128, 3, 7, 14,224,212,247,223, 99, 72,122, 58,206,176, 44,203, 72,165, +246,199,180,218, 21, 48, 46,112,241,231, 43, 87,174,244, 11, 10, 10,194,190,125,251,112, 98,251,118, 12,174, 25, 79,101,104, 9, +192,177,180,121, 2,112, 31, 64,115, 0,102, 0,212, 40, 94,218,201,193,224,247, 25, 37,231, 74,207,159, 7,240,103, 14,132,173, + 62, 50,124,121, 68, 60,120,220,252,101,167, 66,165, 82,101,250,250,250,154, 52,231, 90,167,211, 85,233,195,213,235,245,241,245, +234,213, 51,218,106, 97,140, 40,202,200,200,104,241, 39, 86, 16,181, 26,139,245, 92, 35, 34, 8, 79, 92, 93, 93,133,210, 70,191, + 34, 17, 86,209,119, 20,120,108,202,255, 36, 37, 37,221, 7,240, 81, 77,211,153,144,144,112, 16, 70, 44, 26,109,236,239, 0, 32, + 51, 51,243,165, 47,230, 75, 40, 77,152, 63,127,190, 73, 2, 27,148, 38, 84, 81,214, 17, 0, 90,255,211,107,217,210,165,119, 8, + 33, 76,100,100,228,152, 18,247,246,105, 0, 27, 75, 34,122,215,150,191, 76,112,109,222,188,121, 50,165, 20,185,185,185,171, 77, + 21, 88,101,189,231,148,148,240,151,149,247,204, 20,205,175,187, 55,198,191,174,202,214, 78,222,146,175,217, 14, 17,165,101, 86, +228,228,228,244,221,219,111,191,221, 6,192,182,218,242, 85,228, 78,124, 9,105,124, 76, 8,105,114,102,234,103,239,158,177,177, + 12, 1,207,249, 67,195, 28,131, 38, 35, 28,192,183,198, 88,197, 13,243,139,226, 48, 37, 43,255, 75,229, 92, 18,255,106,242,168, + 81,163, 48,119,238, 92,156, 88,177, 66,251, 62, 33, 57, 18,128,254, 92,220,209,100, 8, 48,221, 88,158, 17, 35, 70, 96,238,220, +185,248,113,233,210, 26,241, 84, 3, 71, 66,200,113, 0,152, 49, 99,198,172,197,139, 23,219,206,156, 57, 51,120,201,146, 37,139, + 74,142,239,148,158, 47, 41,211,222, 51,103,206,108,100,112, 62, 15,192,245, 63,249,126, 86, 24, 25,254,185, 30,251,203,222, 0, +116, 19, 57, 69, 78,145, 83,228, 20, 57, 69, 78,145, 83,228,172,229, 22, 82, 44, 89, 42,223, 87,246,217,224, 59,252, 29, 27, 39, +246,221, 68,136, 16, 33, 66,132, 8, 17,255, 82,171,220,241,218,156,127,137,233, 40, 29,163,101,104, 41,221, 12, 20, 79,119,239, + 86,137, 41,213,148,192,145,221,106, 96,246, 61, 45,114,138,156, 34,167,200, 41,114,138,156, 34,231,127,139,179, 58,238, 74,174, + 15, 33,132, 28,167,148,246,174,108, 95, 42,172,202,127, 54,248,238,165, 13, 59,168, 32, 47, 99, 43, 27,163, 37,186, 14, 69, 78, +145, 83,228, 20, 57, 69, 78,145, 83,228,252, 87,184, 14, 1,208, 25, 51,102,204,252,167,185, 14, 1,184, 2, 24,107,184, 25,225, + 58, 60,192, 38, 36,192, 74, 38, 83, 74, 1, 64,163, 41,212,186,187, 35, 23, 24,248,183, 45,120, 43,226, 95,107,218,117, 46, 17, +245, 41, 47,243,183, 34, 68,136, 16, 33,226, 63,131,180, 82, 75, 21,128, 52, 0,164,228, 88, 83,178, 79, 43,105, 59,202,127,126, +238,252,159, 5, 74,105, 18,128, 10,103,203,115,149,137,172,244,116,165, 3,199,101,249,241,124, 81, 67, 0,224, 56,230, 94,122, +186,109,180,131,195,129,244,154,136, 45, 71,103,231, 27, 18,150,117, 55,230,183, 58,158, 79, 72, 79, 73,121, 46,116, 60, 5,254, +245, 2,207, 88, 17, 81, 27,177,241, 87, 8, 21, 71, 71, 71,103,103,103,231,255, 89, 89, 89,181,205,206,206,190,150,150,150,246, + 67,101,235, 30, 18, 66, 22, 19,130,105, 37,159,151, 81, 74,103, 86,145,118,163,127, 91,193,181,190, 74,165,114, 60, 33, 36,168, + 36,255,145,133,133,133,235, 41,165, 15,254,131,194,214, 12, 64, 63,142,227, 70, 56, 56, 56,180, 74, 78, 78,158, 79, 41, 93, 85, + 67, 46, 14,192, 84, 27, 27,155,161, 54, 54, 54,117, 51, 51, 51, 31,230,230,230,238, 3,176,146, 82, 90,237, 84,233, 5,147,220, +218,118,238,217,121,206,217, 19,103, 63,159,183, 38,241,183, 23,206,127,236,102,223,163,123,251,185,103,143, 93, 94, 56,115,109, + 66,166,137,105, 99, 0,148, 6,205, 19, 74,122,173,244, 37,223, 75, 9,128, 62, 0, 58, 3, 56, 11,224,152, 49,249,174,132,171, + 13,128, 89, 37,105, 94, 73, 41, 61,243, 15,127,142,204,157,157,157,151, 2,232,195,113, 92, 84, 66, 66,194, 88, 74,105,252,223, +156, 38, 14,197,211,252,131, 80, 28,134,227,186, 49, 33, 28,140,129,131,131, 67,111,142,227,198,151,132,118, 89,159,158,158,126, +252,159, 90, 54,114,185,124,181,139,139,203,123, 42,149,170,144, 16, 66, 13,227, 61,234,245,250,248,180,180,180, 22,175, 96,213, +118,253, 31,254,190,140,173, 64,124, 85, 30, 71, 43, 33, 1, 86, 28,151,229,151,154, 28, 49, 36, 49,233,246, 96, 0,112,115, 13, +222,231,228,210,120,111, 66,130, 76,219,178,123,168,133, 68,201,173,103, 89, 73,211, 34,141,218, 65,194, 73,210,181,122,221, 45, + 70, 67,199, 39,221, 59, 84, 97,176, 69, 9,203,186, 63,137, 62,227,164,215,102, 66,162,112,131,196,204,171,210, 4,187,185,185, +213, 40,163,118,118,245, 45,181,114,197,100,137,132,237, 46, 80,125, 16, 21, 0,134, 72, 34,245,188,238, 23,169, 90,253,101,102, +102,108, 94, 77,111, 98, 67, 7,226, 66,129,161, 32,232, 14,138, 83, 4,216,115, 47,157, 38,155, 80, 8, 70,137,136, 90,138, 13, +195,107, 87, 81, 74, 63,126,217, 15,147,135,135,135,237,128, 1, 3, 86,127,246,217,103,102, 22, 22, 22, 36, 46, 46,174,231,244, +233,211, 95,243,240,240,248, 40, 62, 62, 62,177,188,232, 35, 4,211, 4,129, 50, 0,192, 48,100,186,179,179,179,146,101,217, 23, + 98, 27,241, 60,175, 36, 4, 19, 5,129,146,146,223, 78, 35,132,172, 49, 70, 48,154,153,153, 13,107,213,186,221, 71, 75,151,175, +180,112,118,114, 50,215,243,130,246,241,211, 39,202, 57, 51, 62,110,109,102,102,182, 70,165, 82,237,174,193, 75, 67, 88,150, 29, + 34,151,203,123, 3, 8, 40,249,250,174, 90,173, 62,206,243,252, 94, 99, 27,116, 23, 23,151,243, 44,203,214, 49,229,191,121,158, +143, 75, 78, 78,238, 80,195,151,125,144,151,151,215,183,157, 58,117, 82,182,106,213, 10, 50,153, 12,115,231,206,157, 10, 96,149, + 49,130, 74,169, 84, 14, 49, 55, 55,175,151,159,159, 31,171, 82,169, 14,202,100,178,110,107,214,172,241,108,223,190,189,101, 74, + 74, 10, 97, 89,214,249,248,241,227,239,124,245,213, 87, 61, 9, 33, 93,171,107,228,114, 98,233, 28,121,159,128,142, 57,177,103, +230, 0,232, 85,254,188,190, 72, 49,130,178,158,189, 85,244,230, 51,152, 48,181,158, 16,194, 72, 36,146, 53, 46, 46, 46,163,138, +138,138,138, 80, 28,123,141, 58, 59, 59,151, 53, 56, 0,160,209,104,178,178,178,178,252,107,112, 31,253, 1,140,182,177,177, 25, +245,201, 39,159,216,246,234,213, 11,223,127,255,253,132, 45, 91,182,100, 17, 66,190, 3,240, 13,165,244,190,137,180,211,146,147, +147,223,148, 72, 36,196,211,211,147, 5,112,198,132,244,248, 1,152, 93,210,216,172,167,148,242,132,144, 46, 64,241,251, 14, 96, + 89,169,112, 99, 89,118,189,191,191,255,255,238,222,189,187,129, 82,250,121, 77,223,117, 23, 23,151, 77,235,214,173, 27,220,183, +111, 95, 54, 45, 45,205,189, 73,147, 38,187, 0,116,124, 9, 13,210,187,114,185,124, 74,112,112,112,224,253,251,247,163,115,115, +115, 87,150,220, 79, 90,197, 53, 30, 0,186,217,216,216,116,157, 61,123,182, 69,239,222,189,177,121,243,230, 55,183,108,217,146, + 79, 8,249, 5,192,233,218,138, 64,142,227,198,199,199,199, 59, 80, 74,225,234,234, 58, 30,213, 44,110,254,119,129,101,217, 53, + 67,134, 12, 25,181,107,215, 46,229,147, 39, 79,148,238,238,238,101,193,179, 9, 33, 53,110, 63, 69,212,218,162,181,185, 84,112, + 25, 21, 71, 75, 38, 83, 74,121,190,168, 97, 98,210,237,193,175,117,250,218, 26, 0,206,159,251, 96,176,147, 75,163, 72,153, 76, + 25, 45,183, 82, 28, 10,237,211,173,233,192,222,157,136,135,171, 19,226,147, 82,157,191,217,115,226,141,227, 39,206, 28, 66,113, + 0,177, 10,161,215,102,194, 76,123, 26,247, 47,126, 5,135,206,137, 88,251, 99, 60,126,251,227, 49, 10,115,210, 81,199,197, 12, +203, 39,247,128,139,173,178, 70,153,180,112,246,235,194, 40,148,123,223, 26,246,182,245,255,250, 5, 72,188, 93, 92, 64,169, 28, +209,177,249,237,126, 58,121,166,229,193,253,187,199, 91, 56,251, 13,201, 79,137, 54,186,114,107,238, 70,204, 10,180,232,199,177, +228,157,142,173, 27,117, 29,246,102, 71, 38, 48,160, 1,162,238,220,237,113,228,215,171,203, 3,157,153, 95,244, 60,221, 97, 46, +197,225, 27,137,149, 7,244,171, 72,112,116,239,222,189,163, 92, 46,215, 26,254, 78,173, 86, 75, 9, 65,155,154,136,141,210,255, +208,104,212,140, 68, 34, 3,195,144,143,130,131,131, 3,210,211,211,207, 16, 66,190, 77, 72, 48,205, 90,240, 33, 33,178, 44,142, +107,206,200,229,174,188, 70, 99, 15, 0, 68, 38,203,242,176,181,109, 60,123,214, 44, 11,150,101,133,140,140, 12, 20, 22, 22,146, + 49, 99,198, 40, 98, 99, 99, 67, 1,124, 85, 77, 26,177,101,203, 22, 63, 87, 87, 87, 77,249,115, 73, 73, 73,178,190,125,255, 87, +147, 74,219,175, 77,219,246, 83, 78,156,248, 57, 32, 55, 51,171,104,203,170, 77, 55,116, 10,165,186,110,128,191,100,253,230,237, +214, 99, 71, 13,255,128, 16,114,139, 82, 26,109, 2,167,151,153,153,217,161, 21, 43, 86, 4,117,233,210, 69,226,228,228,132,148, +148, 20,220,189,123, 55,232,215, 95,127,237,183,125,251,246,169,132,144, 80, 74,169, 49, 17,220,125,127,217,241,173,147,185,157, + 61,120,157, 14,110,193,205,202,226,155,197,252,122, 18,122,173, 22,130, 78,135,128,222,253,138,205, 50,130,128,192,192,192, 26, + 69,221, 37,132,184, 53,106,212,104,231,162, 69,139,164,106,181, 26, 87,175, 94,197,153, 51,103,132,164,164,164, 37,213,137, 44, + 66,200,201,121,243,230,121,116,232,208,193, 50, 61, 61, 29, 60,207, 59, 28, 62,124,120,124,179,102,205,172, 60, 61, 61,101, 59, +118,236, 64,126,126, 62,244,122,189, 93,189,122,245,236,134, 13, 27,166,217,177, 99,199, 84, 0, 75, 43,179,100,229,198,210, 57, +201,164,222, 27,254,205, 71, 32,153,252,252,198, 71,189, 92,127,178,170, 79,202, 44, 91,189,234,215,183,172,215,208,124,186,133, + 85, 99,187,220,132,211,211,123,213,175,191,229,167,216,234, 59, 67,132, 16,134, 97,152, 53,161,161,161,111,237,217,179, 71,121, +247,238, 93,101, 64, 64, 0, 4, 65, 40,139,192, 95, 26,112,214,215,215,183, 38,247,113, 73, 88, 88,216,244,193,131, 7, 35, 56, + 56,184, 44, 40,234,167,159,126,138,233,211,167,219,158, 63,127,126,234,238,221,187,167, 18, 66,150, 82, 74,103,152,210,150, 27, +182,151, 38, 38,107,193,163, 71,143, 6, 29, 58,116,104,248,180,105,211,124, 1, 76, 4, 48, 55, 35, 35,163, 19, 0,216,219,219, +203, 0,156, 33,132,188,251,201, 39,159,188, 63, 99,198, 12,188,249,230,155,115, 9, 33, 95,212,196,202, 71, 8, 97, 29, 28, 28, +222,236,219,183, 47,171,211,233, 96,110,110, 14,157, 78, 87,191,150, 2,139, 0, 88, 55,110,220,184,247,195,194,194, 96,107,107, + 11,157, 78,231,183,103,207,158, 45,115,231,206,109, 75, 8, 25, 93, 81, 90, 9, 33, 35,222,127,255,253, 1,111,191,253, 54, 90, +180,104, 1,142, 43,190,141, 43, 86,172,192,194,133, 11, 45, 78,158, 60,217,111,199,142, 29,253, 8, 33, 7, 41,165, 53,142,133, + 38, 8, 2, 56,142,195,179,103,207,224,228,228, 36,183,179,179, 59, 65, 8,217,156,145,145,241,195, 63,200,106,178,108,200,144, + 33,111,237,218,181,203, 2, 0,150, 47, 95,142, 41, 83,166,192,217,217, 25, 22, 22, 22,162,218,249,135, 88,180,202,199,209,170, + 81,120,135,194,194,194,102, 51, 63,124, 7, 12, 83,220,107,108, 80,215, 11,139,103,141, 37, 71,142,159,104, 86,213,117, 18,133, + 27,238, 95,252, 10,114,207,201, 80,235,244,184,242,199, 35,156, 90,222, 19, 0,224,215,107, 54,212,218,174,165,202,208, 78,102, +102,182, 76,195,243,151,224,226,114, 21, 79,159,166, 85, 39,178, 28, 93,156,143,111,220,184,212, 44,168,190, 63,180,122, 29, 18, + 82, 19, 64,136, 28, 30,238,150,120,119, 68, 47, 73,167, 78,110, 14, 11, 22,108, 10, 55,119,244,235, 95,144, 22, 93,109,192, 80, +127, 71,178,173, 99, 51,223,193,195, 66, 58,200, 27, 7, 53,130, 84,110,246,255, 2,172, 69, 11, 52,111,209,130,153,145,159,215, +253,218,245, 27,221, 15,156,188,162,246,119, 36,251,238,167,209,145, 85,149,131,161,224,152, 52,105, 18, 74,123,223,165, 72, 73, + 73,193,175,191,254, 82,225, 53,198,150,181,225,127,124,241,197, 23,150, 89, 89, 89,189,182,110,221,250,186,171,171,235, 23, 73, + 73, 73, 23,141, 33,121,135,144, 58,144,203,187,142, 90,185, 82,104,250,191,255,177, 54, 46, 46,140,192,243, 36,241,225, 67,251, + 85, 95,125,213, 57, 51, 38,198,172,192,206, 46, 51, 75,165, 42,140,142,142,134, 66,161, 32, 28,199,181,172, 64,225,167, 16, 66, +150, 49, 12,153, 78, 8,129, 92,174,136, 14, 11, 11,187, 89,114,186,206,177, 99,199,148,125,250,244, 41, 4,240,164,216, 28,174, +112,103, 89,198,175,120, 0, 33,150, 25, 35, 48,205,205,205, 63,252,124,209, 82,243,220,204,108,149,182,160, 64,231,104,101, 65, +136,133, 37,155, 75, 45, 88,132, 0, 0, 32, 0, 73, 68, 65, 84,155,147,151,151,144,148,166,158, 61,127, 33, 59,238,221,183, 63, + 4, 48,222, 88,145,213,164, 73,147,107,135, 14, 29,114,178,183,183, 71,118,118, 54, 50, 50, 50,112,237,218, 53, 8,130,128,208, +208, 80,121,187,214,173,154,205,154, 61,231, 55, 66, 72, 91, 99,196,150,185,157, 3,150,119,104, 90,220, 88, 63,201, 40, 43,159, +205,131,122,151,253,102, 97,124, 14, 0, 64,161, 80,212,102, 9,169,182, 93,187,118,149, 2,192,232,209,163,115,243,242,242, 22, + 3,216, 69,171, 8,170, 90,130,169,115,230,204,113,175, 91,183,174,247,174, 93,187,144,159,159, 15, 0, 78,117,235,214,133,191, +191, 63,127,246,236, 89,248,249,249,193,210,210, 18,231,207,159,199,149, 43, 87,208,188,121,115, 75,169, 84, 58,184, 50,161,213, +185,103,231, 57,242, 62, 1, 29,253,155,143,128,133,149, 43,182,236,222,139,251, 55,182,119, 84,107,239,206, 89, 60,209,253,109, + 21,149,143,244,240,181,156, 81,167, 69, 39,251, 6,141,254, 7,239,230, 55, 29,138,248, 11,143,230, 78,168,183,132, 83, 20,109, +159,183, 34, 49,163, 50,145, 5, 96,121,104,104,232,160, 61,123,246,216, 0, 64, 68, 68, 4, 82, 82, 82,224,232,232, 8,133, 66, + 1,137, 68, 82,182, 62,105, 13, 49,114,253,250,245,101,162, 77,175,215,151,173, 2,160, 84, 42,241,218,107,175,161,105,211,166, +248,225,135, 31, 70, 2,152, 81, 65, 26, 59,180,110,221,250,123,111,111,111, 79,195,239, 67, 66, 66, 48,116,232, 80, 0, 64,167, + 78,157,186, 14, 28, 56,144,150, 10,194,164,164,164,252,235,215,175,119,167,148, 94,173, 40, 65, 12,195,168, 18, 18, 18,240,201, + 39,159,224,241,227,199, 19, 8, 33, 79, 1, 40,100, 50, 89, 89,255,152, 16,226,215,168, 81,163, 53, 83,166, 76, 65,108,108, 44, +162,162,162,174,213,212,149, 74, 41,229,125,124,124, 98,116, 58, 93, 11,189, 94, 15,149, 74,133,254,253,251, 43,236,236,236, 82, + 88,150,189,151,158,158, 62,188,100, 76,138,177,141,144, 2,192,202,176,176,176,247,167, 77,155,134, 95,126,249, 5, 71,142, 28, +193,219,111,191,141,201,147, 39,195,194,194, 98,212,228,201,147,127, 67,241,130,230,229,209,117,253,250,245,224,121,254,133,119, + 67,161, 80,160, 67,135, 14, 8, 12, 12,196,145, 35, 71,186,194, 96,125, 84, 19, 27, 73,239,208,208, 80,153, 32, 8, 40, 40, 40, +192,217,179,103, 45,204,204,204, 44, 60, 60, 60,198, 0,248,199, 8, 45,111,111,239,176, 61,123,246, 88, 24,122,127,228,114, 57, + 12,158, 3, 17,127,179, 69,171,186, 30, 86, 25, 52,154, 66, 45,199, 49,247,220, 92,131,247,157, 63,247, 65,153,235, 16, 96,238, +105, 52,133, 90, 0,224, 5,138,220, 66, 61,204,228, 12,158, 36,231,225,206,195,244,138,254,248,185, 41,154, 18, 51, 47,200, 91, + 61, 1,165, 20, 26, 45, 15,117, 78, 50, 22,135, 23,226,110,124, 17, 52, 5, 89,208,104,139,135, 97, 57, 56, 56,112, 39, 78,252, + 52,229,244,233, 95,223,255,238,187,239,216,120,107,235, 40,228,228, 52,171,136,211,206,174,190, 37,103,110,182,111,195,198,185, +102,148,125,136,232,184, 2, 52,240,104, 5, 7, 27, 79, 36,167, 23,224, 82,212,143,184,247,224, 56,234,186,122, 99,242,135,111, + 40, 62, 95,180,107,175,173,109, 93,175,172,172, 71,185,149,165,179, 4, 35, 54,253, 28, 13,125,230, 67,240, 25,177,224,243, 18, + 95, 20,120,142, 94,104,222,197, 29,142,158,245,229, 35, 39, 47, 28, 1, 96,100, 69,156,148,210, 20,150,101, 55, 48, 12,121,159, + 16,130,224,224, 38,241, 43, 87,174,212, 86,240,159,218,224,224, 38,241, 44,203,120, 20, 87,236,204,122, 65,224, 83,170, 73,231, +115,162, 70, 38,147, 79, 43, 54,251,187, 62, 11, 15, 15,215, 14, 26, 52, 8, 43, 86,172,144, 77,159, 62,125,182,135,135,199,232, +242,238,189,242,156,161,132,120,185,215,175,223,227,139, 75,151,168, 68,167, 35,153,215,174,229,102, 39, 37,233,147,243,242,100, +251,239,221,123,243,189,143, 63,150,121,122,122,226,226,241,227,246,105, 5, 5, 52, 91,173, 86,101,103,103, 83,189, 94,127,173, +146,188,207,116,118,118, 86,110,217,178,197, 47, 44, 44,236,102, 98, 98,226,204,146, 10, 98, 49,128, 64, 0, 79, 12,190,195,198, +141,123, 19,198,140, 25, 19,157,146,146, 50,179,170,116, 26,160,145,147,163,147,114,247,166, 29,183,237, 44,205, 24, 71, 15, 55, + 70, 98, 99,195,233,101,102, 82, 1, 80,213,245,172,111, 14,160, 81, 37,247,236,116,249, 30,183,153,153,217,161,163, 71,143, 58, + 73, 36, 18,240, 60, 15, 71, 71, 71, 60,126,252, 24,217,217,217,200,203,203,195,163,123,119,225,227,233,137, 5, 51,166,187, 78, +156, 62,227, 16, 33,164,133, 97, 99, 86,225, 2,200, 58,237, 11,150,189, 74, 22, 34,127,110,111, 76,185,151,195,227,184,184, 56, + 88, 88, 88, 32, 40, 40,200,226,210,165, 75, 23, 42, 19, 89,229, 22, 1, 30,220,190,125,123,203,221,187,119,163,121,243,230,176, +182,182,198,217,179,103, 17, 17, 17, 1,173, 86,203,228,231,231,195,210,210, 18, 75,150, 44,129,183,183, 55,114,115,115, 17, 23, + 23,103, 47,145, 72, 28, 42,227, 60,123,226,236,231, 57,177,103,230, 36,147,159,223,216,178,123, 47,198, 12, 27, 2, 23,250,240, +130,117,125,242,121,143, 62,237, 63,165,172,103,111,115,203, 96, 91,223,160, 62,144,202, 44, 48,113,218, 66, 68, 71, 30,179, 45, +204,187, 61,129,240,207, 60, 1, 76, 42,207, 89, 98, 17, 97, 60, 61, 61,223,219,191,127,191,165,129, 43,165,108,205, 67,195, 69, +224, 43, 91,240,221,152,251, 73, 8,193,227,199,143,225,228,228, 4, 11, 11,139,178, 5,196,239,222,189,139, 43, 87,174,160,116, + 53,138, 74, 56,135,159, 62,125,218,211,220,220,188,252,111,144,158,158, 14,189, 94, 15,165, 82, 9,158,231,161,213,106,161,211, +233, 80, 84, 84,100, 17, 24, 24, 56, 30,192,213,138, 56, 5, 65,248,104,240,224,193,237,175, 94,189, 90,239,171,175,190,130, 70, +163, 89,158,156,156,140, 1, 3, 6, 64, 16, 4,116,237,218,181, 13,165,244,254,236,217,179, 1, 0, 83,166, 76,209, 21, 20, 20, +132,213, 36,239, 37,249, 15, 28, 56,112, 96,189, 95,126,249, 5, 29, 59,118,132, 90,173,198,138, 21, 43,172, 54,110,220,104,181, + 99,199, 14,199,105,211,166,125, 11,160,103, 85,156, 37,229,181,220,197,197,229,253, 97,195,134,153,149,172, 97,138,237,219,183, + 99,193,130, 5,123, 0,204,254,233,167,159,230, 29, 57,114,100,196,123,239,189,135, 5, 11, 22, 76, 46, 21, 90, 21,113, 62,122, +244, 8,142,142,142,176,178,178, 42,174, 44,181, 90,220,186,117, 11,167, 78,157, 66,195,134, 13,141,105, 8, 79, 87, 33,178,190, +221,189,123,183,229,179,103,207,112,254,252,121,248,248,248,160,176,176,176,218,181, 97, 95,246,226,207,213,113,170, 84,170,162, +184,184, 56,139,165, 75,151,194,213,213, 21,222,222,222, 80, 40, 20, 32,132, 64,167,211, 85,186,188,154, 49,233,236,220,153,112, +233, 9,182,125,173,109,108, 39, 80, 74,185,156,156,172, 77, 90,100, 31,136,141,165,154,191, 42,239,255,114,139, 86, 51, 74,233, + 77,195, 53, 15, 75, 59, 35, 28, 0,132,135,135,211,144,144, 16, 82,186,119,119, 71,110,122,186,109,180,147, 75,227,189, 78, 46, +141, 74,214,253, 98,238,177,172,109,180,179,115, 97, 46, 0,104,245, 20,151,239,101,227,118, 76, 50, 34, 98,146, 97, 46, 55,206, +248,162,214,234,139,231,103, 82,138,162,252,255,239,180,106, 11,179,160,214, 22, 15,247,208,168, 11,145,147, 22, 69, 6,245,239, +174,120,255,253,113,112,117,117,119,172,140, 79, 43, 87, 76,158, 56,229, 77, 27, 59, 27, 9,142, 95,250, 25,109, 26,246,135, 66, + 46, 65, 70, 78, 17, 64,128, 7, 15, 79, 1,130, 37, 34,163,227,208,186,145, 18, 61,123, 4, 88,252,112,224,254,199, 0,230, 26, +147, 94,125,252, 53, 72,125,123, 65,194,235,160, 75,191, 15, 33,251, 41, 96,238, 2, 21,177, 64, 70,210, 83,220,187,112,176,120, +194,105, 53,224,121,126,130,163,163, 99,246,236,217,179, 59, 55,104,208, 64, 59,126,252,248, 63,158, 60,121,242,220,178, 54,117, +234,212,249,114,253,250,245,136,137,137, 73,248,226,139, 47,206,166,165,165,205, 49,241, 5,157, 65, 8, 89, 93,226,138, 75, 63, +124,248,112,243,115,231,206, 77, 94,189,122,245,255,177,119,221, 97, 81, 29,237,247,204,118, 88, 22,144, 94, 69,177,128,189,151, +168, 40, 98, 52, 22, 44,177,183,196,222,177,119,141,177,196,150,168,177,119, 99,193,110,108,193, 94, 80, 44,104, 84,148,162,136, + 40, 69,170,212,165,109,223,187,119,126,127, 80, 62, 68,202,130,250,149,252,246, 60,207, 62,112,119,239,158,157, 59, 51,119,230, +220,247,157,121, 95,187,233,211,167, 11,167, 79,159, 62, 22,192, 47,229,185, 11, 77, 68,162,174,107,238,221,163, 76, 66,130,234, +232,246,237,194,157,129,129, 75, 53, 44,235,104,109,107, 75,218,183,109, 43, 19,115, 56,233, 25, 41, 41,140, 77,237,218,220,152, +155, 55,173,168,177,113,210,213,171, 87,115,242,242,242,202, 76,157,195,229,114,229,165,185, 11, 75,131,131,131,131,186,180, 53, + 92,229,116,238, 28,150, 82, 77,181, 90,181,232,119,223,182,171,251, 54, 34, 42,202,168, 90, 53,174, 91, 93,215,122, 47, 95,199, + 60,161, 58,157,146, 16,146,163, 15, 23,151,203, 29,186,101,203,150, 38,102,102,102, 96, 89, 22,230,230,230, 72, 75, 75,131, 90, +173, 70, 78, 78, 14,212,185,217, 80,103,103, 35,244,125, 12, 58,116,238,140,193, 61,190,107,224,123,225,175,161, 0, 78,150,199, +235,216,180, 69,145, 37,107, 85, 77,171,127,249,130,226,179,138, 68,215,175, 45,220, 32,144, 72,208,109,206,162,207, 25,160,159, + 11,133,194, 43, 3, 6, 12,232, 53,111,222, 60, 78,114,114,242, 53, 66, 72, 7, 74,233,171,114, 45,194, 18, 73,157,244,244,116, +228,230,230,194,220,220, 28, 91,182,108,129,157,157, 29,228,114, 57,158, 62,125, 74,157,157,157,201,157, 59,119,224,236,236,140, +244,244,116,104, 52, 26,200,100,178, 15,106,181,186, 76,119,121,129,123,176,231,156,158, 14, 87, 35,130,142,116,116, 34,209, 79, +135,204,245,124, 27, 17,250, 58,238,198,205,135,191, 48, 74,163,248,172,132, 91, 11,107,181,126,110, 61,109,254, 74,236,216,176, + 28, 17,127,223,203,180,115,201,217,105, 76, 84,135,219,118, 43,187,188, 50,153, 76,249,250,245,107,211,224,224, 96, 16, 66, 96, +110,110, 14,177, 88, 92,170,216,170,194, 96,201, 41,246, 59,144,201,100, 16, 8, 4,176,178,178,194,129, 3, 7,138, 38, 94, 87, + 87,215,242,104,246,118,235,214,109,168,139,139,139,105,241, 55, 91,183,110,141, 73,147, 38, 97,247,238,221, 8, 12, 12,252, 40, +159,230,135, 15, 31,146,181, 90,237,225,114,218, 54,139, 16,210,163,127,255,254, 65,247,239,223, 55, 59,112,224, 0, 24,134, 41, +245,181,127,255,126, 60,126,252,120, 25,165,244,117, 21, 39,140,250, 3, 7, 14,188,119,236,216,177,106,105,105,105, 72, 79, 79, + 71, 94, 94, 30,100, 50, 25,116, 58, 29,234,213,171, 71, 24,134,169, 87, 81, 61,114,185,220, 11,219,183,111,239, 51, 97,194, 4, +240,120, 60,168,213,106,108,223,190, 29, 11, 23, 46, 76, 1, 48,154, 82,170, 33,132, 44, 61,124,248,240,168,190,125,251,162, 89, +179,102, 13,202,227,204,203,203, 67, 94, 94, 30,248,124, 62,236,237,237,177,122,245,106,168,213,249,195,138,187,187,123,145,203, + 19,192, 94,119,119,247, 62,111,222,188,217, 72, 41,253,173,140,113,166, 63,165,116,162, 78,167,203, 29, 48, 96,128,213,137, 19, + 39, 76, 19, 19, 19, 17, 20, 20,132,101,203,150, 73, 89,150,213,177, 44, 75, 20, 10, 69,180,157,157, 93,144, 72, 36, 50,150,203, +229,153, 25, 25, 25,107, 41,165,215,254,131,147, 57,225,243,249, 24, 55,110, 28,120, 60, 30,140,141,141,161, 84, 42,161,213,106, +139,196, 60, 42,233,150,118,115, 51,181,226, 65, 48,193,221,189,211,172,193, 51,123,219, 56, 56, 58,161,154,153, 8,225,225,175, + 58,248,223,190,185,189, 97, 61,155, 61,172, 90,187,231,117, 76,214, 87, 79,118, 95, 82,139,252,143,105,173, 22, 0,158,163, 88, +206, 67, 20,236, 66, 44, 99, 36, 26,164,179,182,254, 51, 61, 49, 81,168, 17, 10,197,111, 10,173, 92,249, 34,107,144, 14, 56, 1, + 70,163, 45, 24, 40,104,193, 75, 79,161,165,213,225,109, 68, 24,238,223,248, 11,214,242, 68,164, 71, 55, 7, 4, 77,160, 86,100, + 67,169,214, 20, 60,189,233, 16, 28,116, 27, 57,217,153,104,220,170, 55,192,225, 60, 46,139,207,220,138,244,110,223,178, 41,247, +109, 92, 24, 90,187, 15, 66,109,231,142,120,159,156,131,172, 60, 21,164, 57, 74, 52,111,188, 8,105, 82, 5,114,228, 74,188,122, +235, 11, 39,199,218, 28,194,139,250, 86, 95,161,165,122,117, 14,170,215, 23, 33,168,209, 1,194,122,125,193,173,225,129,184,144, + 59, 8,190,186, 25, 9, 47, 31,128,178, 58, 56,184,183,209,247, 38,217,126,237,218,181, 54, 29, 58,116,224,117,237,218,181,153, +163,163, 99,179,164,164,164,224, 2,107, 78,179, 94,189,122, 53,179,177,177,193,214,173, 91, 21,132,144,237, 85,156,108,139,187, +219,158,216,217,217,173, 57,119,238,220,246, 73,147, 38,193,214,214,182, 73,121,223, 77,227,243,155,141, 94,187,150,242,185, 92, +122,114,199, 14,193,202,107,215, 54, 29, 58,124, 88,208,197,203,139, 80, 74,241,226,197, 11,241,175, 59,118,136, 71,244,235, 23, +251, 62, 53,149, 9, 8, 12,212, 36, 39, 36,228,166,202,100, 43,147,146,146, 62,252, 39,122,182, 86,171,125, 20, 29, 19,237,212, +170,109,115,155,231,225,209, 47,187,119,105,223,158,195,225,112, 34,162,222, 7,218,216,152,137,111,222,184,169,209,106,181,143, +244,225, 18,137, 68,189,187,116,233,194,147, 74,165,112,116,116, 68, 90, 90, 26, 18, 19, 19,243, 45, 14,217, 82,104,178,179,161, +205,201,130, 78,150,135,232,167, 79,208,188,118, 45,209,153,252,197,242, 39, 43,104,147, 82, 45, 85,197, 45, 91, 66, 83, 83, 8, + 37, 18,144, 74,186, 13, 9, 33,253,170, 85,171,182, 48, 43, 43,235, 10,165,116,181, 70,163,241, 89,184,112, 97,235,109,219,182, + 89,175, 89,179,198,108,226,196,137,103, 8, 33,205, 41,165,170,114, 38,176,119, 12,195, 88, 3,176,189,125,251, 54,108,109,109, +145,157,157, 93,104,105, 81,203,229,114,163,140,140, 12,168, 84, 42,168,213,106,152,153,153,225,217,179,103, 82,134, 97,254,170, +168,124,102,117,200,106,149, 38,252, 39,171, 6, 38, 73, 26,198,194, 51, 53,147,149, 46,223,152,180, 10,192,166,158,117,234,236, +215,176,247,162, 35,195,252, 44, 98,158,222,205, 76,138,148,213,222,127, 57, 42,183,156,122,164,132, 16,150, 16, 66,221,221,221, +145,150,150, 6, 46,151, 11,177, 88, 12,137, 68,130,197,139, 23, 99,251,246,237,149, 22, 90,132, 16, 35, 19, 19,147,181, 28, 14, +103,168,185,185,185,141, 78,167,195,162, 69,139,208,167, 79, 31, 8,133, 66,104, 52,154, 34,139,102,161,149,170, 60, 75, 7,165, +244, 5, 0,179, 18,191,225,101,109,109,237,175, 82,169, 16, 21, 21,133, 11, 23, 46,116,166,148, 6, 84,242,222,142, 34,132,244, +240,240,240, 56,210,178,101,203, 58,148, 82, 52,105,210, 4,195,134, 13,131,175,175, 47,130,131,131,145,157,157,205,222,188,121, +243, 16,128,141,149,157,192, 11,234,183,222,192,129, 3, 31, 28, 63,126,220, 34, 35, 35, 3, 10,133, 2, 50,153, 12,103,206,156, + 65,135, 14, 29, 96,109,109,141, 99,199,142, 49,148, 82,191,242, 68, 22,135,195, 57,176,103,207,158, 62,227,199,143,199,206,157, + 59,113,242,228, 73,244,237,219, 23, 67,135, 14, 69, 90, 90,154,221,134, 13, 27, 70, 17, 66, 14, 0, 88, 62,108,216, 48,228,229, +229,225,233,211,167,225,122,222,243,200,202,202, 66, 86, 86, 22,140,141,141,139,223, 99, 4,128,239,230,205,155,135,207,154, 53, + 11,181,107,215, 94, 94,176, 41,232,147, 93,162, 44,203, 78, 78, 76, 76,180,224,241,120, 86, 12,195, 32, 62, 62, 30,207,158, 61, +195,180,105,211, 50, 51, 51, 51, 39, 81, 74,223, 19, 66,150,142, 27, 55,110,245,156, 57,115,138,250,210,156, 57,115, 46, 17, 66, +122,252,187,173, 57,245,234, 89, 52, 18,114, 69, 51, 5, 2,190,149, 84, 42, 45, 26, 59,212,106, 53, 84, 42,213, 71,150, 44,129, +128,111,213,166, 69,141,203, 10,121,238,146,151,111,164,101, 38, 72,111, 88,183, 90, 83,177,137,249, 44,239, 30,131, 71,126,215, +227,123, 46,163,213,226,250,117, 63,252,241,199, 46,120,121,184,163,118,221, 38,152, 62, 99,166,185, 74,205, 44,186,121,243,218, +194,246,109,106, 93,203,205,201, 90, 92, 30,231,255,115, 92, 46, 16, 87,151, 75,117, 29,150,174, 32, 7,233,156,156, 32, 45,184, +113,172, 45, 44, 44,118,232,116, 58, 47, 96, 2,248, 18,123,188,122,246, 55, 50,165,124,168, 20, 58,176, 52, 95,108,233, 37, 92, + 84,106,220,187,126, 17, 91, 54,111, 66, 70, 70, 6, 60, 58,117, 70, 30,175, 58, 92,170,187, 64,169,144, 23,220, 52,128, 70,173, +133,141, 93, 13, 60,127, 30,172,205,145,201,202, 28,144, 4, 70,154, 6, 46,118,238, 80,105,218,193, 72, 40, 68,118,174, 26,210, + 2,145,117,236,207, 33, 80,201, 21, 96,212, 26, 48,106, 45,108, 92, 6,162,190, 93, 23,176, 58,191, 70,149,170, 62, 86, 7, 77, +204, 61,104, 98,238,193,184,221, 12,252,181,110,120,137, 1, 80,191,188,187,169,169,169,169,142,142,142,126, 47, 94,188,232, 63, +100,200, 16,220,185,115,103, 34,128, 41, 5,238,155,137, 67,134, 12,193,139, 23, 47,240,242,229, 75,191,212,212,212, 47,146,120, + 85, 40, 20, 42, 84,170,252, 57, 86, 44, 22, 27, 85,112,174, 83,235, 1, 3, 56,217,207,159,231,108,126,248,112,249,254, 3, 7, + 4, 93,191,253,150,104, 25, 6,172, 78,135,186,110,110,228,187,239,190, 51,241, 61,125,218,138,171,213, 62,158,239,227,115,123, +247, 15, 63,228,254,157,151,167,239, 66,243,154, 5, 46, 67, 0,168, 89,206,123,122, 67,165, 82,109,155, 60, 97, 76,215,128,123, + 15,170,187, 84,119, 50,187,126, 51, 32, 88,100, 44,228,212,118,173,195,149,102,103,242, 86, 45, 95, 98,172, 82,169,244, 21,173, + 13,172,173,173,241,225,195, 7,188,125,251, 22, 42,149, 10, 90,173, 22,172, 92, 6,181, 52, 11,234,236, 76, 16,165, 2, 34,157, + 14,202,244, 20,212,172, 93, 11,248,215,142,196, 10, 93, 81,165, 9,173,194,191, 70,102,102, 16,152, 72,192,225,243,245, 78,142, + 78, 8,105,217,166, 77,155,211,103,207,158, 21,140, 29, 59,182, 45, 33,100, 71,193, 4,241,237,178,101,203,158,236,216,177, 67, + 52,105,210,164,122, 27, 55,110, 28, 5, 96,111, 89, 60, 74,165,242,244,229,203,151, 71,212,168, 81,195, 54, 52, 52, 20, 74,165, + 18, 44,203,162,103,207,158, 0, 80,212,103, 34, 34, 34, 20, 74,165, 50, 53, 44, 44, 44,231,253,251,247,106,232,177, 75,112,249, +214,164, 71,115, 6, 59, 15,176,179,119,122,108,100, 92,211,149,230, 61,239, 63,103,176,243,134,223,207, 36, 40,175,190,123,151, +187,108, 90,237,245,178,220,144,105,213,156,243,118, 94,245,139,210,103, 87, 48, 45,220,206,110,101,101, 5, 30,143, 7, 62,159, + 15,129, 64, 0, 66, 8,102,204,152,129,125,251,246,149,235, 58, 44, 41,178, 76, 77, 77, 95,174, 92,185,210,121,210,164, 73, 2, + 35, 35, 35, 72,165, 82, 28, 59,118, 12,227,198,141,195, 31,127,252, 81,234,250,151,138, 92, 74,165, 88, 75,103,253,240,195, 15, + 80,171,213, 24, 54,108, 24,246,239,223, 63, 11, 64, 64,101,251, 59,165,244, 49, 33,196, 45, 56, 56,216, 12, 64,223,161, 67,135, + 30, 30, 56,112, 32, 2, 2, 2,224,231,231,215, 25,192, 27, 0, 10, 0,235, 10,146, 56,175, 43,111, 35, 72, 65, 8,135, 93, 54, + 54, 54,125, 27, 53,106, 20, 60,112,224,192,198,199,143, 31,175,150,154,154, 90,184,249, 1, 49, 49, 49, 56,120,240, 96,242,129, + 3, 7,114,116, 58,157, 21,135,195,185,156,149,149,181,184, 28,119,225,129,205,155, 55,143, 41,112, 7,226,236,217,179,116,211, +166, 77,100,217,178,101,144, 74,165,240,242,242,194,158, 61,123,102,230,229,229, 53,219,180,105,211,132,193,131, 7, 99,213,170, + 85,144,201,100,155, 43,122, 88, 41, 71,124, 17, 0,237, 55,111,222, 92, 99,214,172, 89, 56,123,246, 44, 90,182,108,105, 28, 29, + 29,189, 27,192,248,210,218,143, 82,138,232,232,104,200,229,114, 60,120,240, 0,203,151, 47,151, 22, 19, 89, 51,167, 76,153,178, +122,230,204,153, 88,187,118, 45, 13, 13, 13, 77, 29, 56,112,160,221,190,125,251,184,117,235,214,157,137,252,164,235,255, 22,212, +119,179, 90,223,166,181,231, 66, 7,167,186, 56,118,252, 4, 50, 51, 51,139,234,164,176, 94, 40,165,200,205,205,197,135, 15, 31, + 96,110,102,138, 13, 27, 87,247,154, 58,113, 76,117,228,135,193,248,116,160,171, 99,185,113,208,176,241,115,135,141, 24,131,208, +224, 32,248, 30,222,139,176,208, 23, 69,124,140, 86,131, 55,225,207,240, 38,252, 25,236,236,107,224,187,174,157,201,240,225,195, +123,254, 48, 98,168, 13,128,175, 22, 58,226,127,216,154,245, 73, 28,173,226,107,182,120, 21,153,235, 10, 68,214,203, 83,167, 78, + 89,121,120,120,112, 25,134,193,181,235,215, 49,109,202,143, 24,245,195, 34,104, 96, 1, 70, 45, 0, 43, 48,210,171, 48, 10,133, + 28, 20, 20, 50,153, 12,129,129,129,160, 44, 3,223,125,155, 64, 41, 91, 36,180, 0, 10,181, 70, 3, 39,151,122,216,181,127, 13, + 3, 62,255, 73, 89,124, 57, 25, 92,157,150,161, 72, 76,141, 67, 92,114, 24,204, 77, 93,192,227,187, 32, 35, 75, 14, 30,199, 30, + 90,101, 4,116, 5,102, 85,185, 44, 1, 10,205,231,181,159, 46,251, 83,235, 41,173,196,160,171, 80, 40,142, 30, 61,122,180,215, +239,191,255, 46,244,246,246,118,119,116,116,108, 15, 0,131, 6, 13,114, 55, 51, 51,195,209,163, 71,213, 10,133,226,232, 23,180, +248,116,105,211,166, 13,164, 82, 41, 98, 98, 98,130,203,189, 54,181,218, 74, 98,107,203, 77,189,115, 71,155, 38,149, 86,239,210, +165, 11,209, 50, 12, 56,132, 32, 51, 59, 27,239, 99, 99, 81,173, 90, 53,242, 50, 34, 66,178,125,250,244,243,238,141, 27,243, 10, +119, 36,234, 3, 63, 63, 63, 49,242,215,101,149,251, 94, 37, 59,183,140, 16, 50,198,199,199,231,252,209,163,199,204, 83, 82, 83, +222,136,132, 66, 70, 34, 49,114,252, 97,228, 84, 94, 86, 86,214, 8, 74,105,158,190,124, 82,169, 20,209,209,209, 48, 54, 54,134, +128,207, 7,171,144, 67, 39,203,131, 50, 51, 13, 92,141, 26, 66,157, 14,150, 98, 17,170,219,217,193,197,198, 90, 47,206,183,254, + 55,138, 22,190, 23,119, 23,110,104,211, 0, 66, 19, 9,132,166, 18, 76,189,116,183,224,105, 84, 0, 44,251, 69, 31,145,101,237, +228,228,244,215,241,227,199, 5,105,105,105,120,241,226, 69, 48,165, 52,155, 16, 98, 10,128, 13, 15, 15,191, 21, 22, 22,214,187, + 96,215, 93, 69,187,197, 54,157, 59,119,174,155,135,135, 7,227,234,234,106,146,146,146,226,146,145,145, 65,146,147, 63, 94,235, +124,229,202, 21, 35,133, 66, 33, 99, 89,246, 60,242,227, 64, 85, 24,191,104,206, 96,103,163,192,231,152,225,217,189,102, 19, 51, +235,166,200,100,158, 55,121, 28,156, 60, 99,206, 96,231,109,191,159, 73, 80, 26, 19,213, 97,162,139,175,206, 51, 82, 30,209,179, +189,169,181,181, 53,194,195,195, 17, 24, 24,136,247,239,223, 35, 58, 58,250, 35, 65, 53,113,226, 68,248,250,250,234,101,209, 50, + 49, 49, 89,187, 98,197, 10,231, 89,179,102, 9,138,137, 34,248,248,248, 32, 59, 59, 27,251,247,239,135,143,143, 79,165, 39,254, + 18,109, 85,171, 91,183,110,222, 14, 14, 14,200,200,200,128,189,189, 61, 60, 60, 60,250, 16, 66, 92, 41,165, 49, 85,236,250, 83, +187,119,239,190,122,229,202,149,208,106,181, 24, 55,110, 28, 34, 35, 35, 79, 71, 70, 70,110,113,113,113,153,177, 96,193, 2, 59, + 59, 59, 59, 12, 25, 50,196, 4,192,128,178, 72, 44, 45, 45,215,237,221,187,119,132,183,183, 55, 71,163,209,116,242,247,247, 71, +108,108, 44,212,106, 53, 24,134,193,187,119,239,224,227,227,147,156,145,145,225, 73, 41,125,167, 71,185,198, 46, 93,186,116,204, +140, 25, 51,240,235,175,191, 98,197,138, 21,135,204,205,205, 27, 55,111,222,188,197,138, 21, 43, 48,127,254,124,212,168, 81, 3, + 86, 86, 86,245,151, 45, 91,214, 96,206,156, 57,216,182,109, 27,150, 47, 95,126, 8,192,193,170, 84, 4,203,178,100,253,250,245, +205, 54,111,222,236, 80, 40,178, 56, 28, 14, 78,157, 58,133,231,207,159,247, 41,227, 59,123,236,237,237, 39, 58, 56, 56, 8,111, +222,188, 41,169, 81,163, 6, 24,134,209, 22,136,172,237, 46, 46, 46,211,222,189,123, 7,111,111,111, 68, 69, 69, 29,165,148,142, +242,244,244,148,205,153, 51, 71,108,108,108,108,254,239,156,192,185, 28, 50,122,237,170,249,120,250, 60, 2,231,206, 9,240,244, +233, 83,216,217,217, 65, 36, 18,129, 82, 10,149, 74,133,180,180, 52,104, 53, 42, 52,105, 84, 11, 71, 14,172, 71,106,106, 26,192, + 33,101, 46,185, 33, 28, 50,114,204,143,253,113,255,193,117,236,222,189, 23,121,121,178, 50, 30,190,141, 80,215,189, 1,156, 28, +109, 17,159, 16, 15,194,129,245,215,188,214,255,113,215, 97,225,253,174, 95,120,135,226,168, 86,173,218,150,147, 39, 79, 90,121, +121,121,113,101, 50, 25, 88,150, 69, 71, 15, 15,204,152, 53, 11,126,199,143,195,173,237, 48, 16,181, 4,140, 88,191, 93, 15, 74, +133, 28, 13, 91,180,199,224, 33, 67, 17,247,254, 61,186,247, 30, 8,165, 82, 94,244,132, 81,104,209, 82,171, 53,176,182,173,142, + 27, 55,110,112, 49,110, 92,153,107, 76,116, 26, 97,200,155,119,202, 14, 89,138,231, 8,124,234, 11,141, 74,131, 38, 77,150, 65, +195, 90,193,214,121, 34,180,218, 11,200, 73,243,207,119, 99, 88,121, 33, 33, 46, 14, 28,174,224,101, 85, 43,145,149,165,125,214, +160,155,149,149,149,237,232,232,248,103, 96, 96,224,200, 1, 3, 6,224,198,141, 27, 19, 0, 96,192,128, 1, 8, 12, 12, 68,116, +116,244,159, 89, 89, 89,217, 95,162,193, 29, 29, 29,251,122,121,121, 13,107,221,186, 53, 46, 93,186, 4, 74,233,125,189,110,108, + 62,159,114, 56, 28,176, 44, 11, 2, 32, 35, 43, 11,145,145,145,200, 72, 79,135, 86,171,133, 44, 47,143,109,224,238,158, 71, 89, +214,180, 50,229, 41,190,195, 16,165,236, 58, 44,124,175, 10, 98,235,189, 68, 34,137,203,205,203,179,177,168,102,145, 43, 20, 10, +117,210,172,172,236, 87, 47, 67,213,122, 78, 14,133, 8, 15, 11, 11,107,156,148,148,132,184,184, 56, 48,178, 92,112, 85,106,112, + 84,114,124,219,190, 29,140, 65, 97, 4, 22,124, 86, 11, 62,151,143,220,252,221,121, 21,186, 59, 10,133,126,113,203, 22, 33, 36, +223, 93,104, 98, 2,161,196,244, 35, 11,151, 62,253, 73, 36, 18, 29, 63,115,230,140,131,147,147, 19, 86,173, 90, 5,103,103,231, +250, 77,154, 52,145,119,236,216,209,216,206,206, 14, 13, 27, 54, 68,251,246,237,113,245,234, 85, 0,120, 87, 65,253, 49,132,144, +239,238,223,191, 63,247,225,195,135,131, 9, 33,100,209,162, 69,232,209,163, 7,140,140,140, 32,151,203, 33,149, 74,177,111,223, + 62, 66, 41,109, 81, 80,214, 26, 70, 70, 70, 39, 8, 33, 9, 10,133, 98, 72, 73, 78,223,205, 77, 29, 83, 51,217,113,118,246, 78, +253, 61,187,215,108,210,165,123, 87,212,114,235,130, 46,221,227, 0, 96,189, 37, 47,118,216,134,159, 26,159,183,174,110,121,240, +198,181,155,203, 61, 60,187, 44, 93, 52,201, 98,245,250,189,210, 28, 61, 6, 50,176, 44,251, 81,236,160,146,159,143, 26, 53, 10, +167, 78,157,170,176, 30, 57, 28,206,208, 73,147, 38, 9,138,191, 87,232, 50,238,221,187, 55, 6, 12, 24,240,145,208,178,182,182, +134,189,189, 61, 98, 99, 99, 1, 32, 67,207,126, 53, 99,236,216,177, 68,161, 80, 96,252,248,241,216,191,127, 63,134, 13, 27, 70, + 2, 2, 2,102, 0,152, 85,217,254,206,225,112, 54, 44, 88,176, 96,174,143,143, 15, 50, 51, 51,113,229,202, 21,244,236,217, 19, +167, 78,157,178,185,114,229,202, 90, 47, 47, 47,112,185, 92, 92,186,116, 9, 12,195,148, 27,235, 75, 32, 16,244,245,246,246,230, +196,199,199, 67, 32, 16,160, 85,171, 86, 72, 72, 72,128, 92, 46, 71, 98, 98, 34,102,206,156,249, 33, 35, 35,163,179,190,247,145, + 64, 32,152, 53, 99,198, 12,156, 60,121, 18,139, 22, 45, 58, 12, 96,124,118,118,246,224,135, 15, 31,158,236,215,175, 31, 18, 19, + 19,113,254,252,121, 44, 95,190,156,140, 26, 53, 10, 59,119,238,196,204,153, 51, 15, 1, 24, 95,206, 14,201,220,212,212, 84,243, + 58,117,234, 32, 37, 37, 5,121,121,121, 56,127,254,188,237,213,171, 87, 93,157,156,156,204,162,163,163,117,191,252,242,139,112, +214,172, 89,216,178,101, 11, 94,188,120, 1, 95, 95, 95,116,233,210,133,137,138,138, 42,213, 74, 86, 16,178,225,188,165,165,229, + 77, 19, 19, 19,228,230,230, 22,238, 44,157,183,104,209, 34,159,117,235,242,141,236, 73, 73, 73, 24, 61,122,244, 15,132, 16,118, +229,202,149, 98,129, 64, 0,165, 82, 41,251,119, 78,220,172,142, 5,192,194,181,186, 4,215,253, 14, 32, 40, 56, 10, 65,193, 97, + 16,138,242, 23,193, 43, 20,114,180,104, 82, 23,109, 91,181, 65, 82,114, 34,142,250, 30,128,165,181, 83,185,227, 8,165, 20, 2, +158, 14, 13,220,237,113,220,119, 47, 46, 93,185, 13,223,163, 39,138,214,188,241,120,124, 52,111,209, 22,173, 90,121, 32, 42,250, + 29, 14, 28,216, 13, 27,219,234, 6,231, 96, 21, 81,228, 58, 44,254,183,132,242,239,226,225,225,193,205,203,203,131, 82,169,196, +135, 15, 31, 16, 27, 27,139,106, 22,213, 16,149, 20,131,206, 98, 13, 62,176, 57, 8, 15,126,169, 35, 92,254,139, 10, 77,131,158, +205, 1,207,230,152, 54,118, 88,217,157, 0, 20, 38,102,214,249,174, 27,134,121,139,109,219,202,124,114,102,116,218, 91,215,111, +250,183, 25, 59,170, 47,255,134,255,126,104,213, 44, 20, 90,115,200,148,106,200, 52,124,112,204,123, 2,233, 1,224,242, 68,248, +166, 89, 93,156, 63,119, 85, 67, 25,237,109,189, 43,200,174, 49,152,148,176, 98, 66,235, 99,143,158,145,169,165,222,174,195,162, +137, 87,167, 59,117,236,216,177,239,219,181,107, 39,246,242,242,170, 83, 48,113,106,142, 29, 59, 38,215,233,116,167, 42,219,136, + 37,163,193, 59, 56, 56,180, 16, 8, 4,195,250,246,237,219, 98,204,152, 49,120,245,234, 21,142, 30, 61,250,166,110,221,186,229, +198, 16,227, 10,133, 25,121,169,169,213, 36,174,174, 60, 11, 83,211,164,171, 87,174,212,232,218,173, 27,137,139,139, 67, 70, 70, + 6,148, 74, 37, 94, 4, 7, 83, 62,151,155, 64,204,204, 56, 17,207,159,115,184, 66, 97, 70, 37,138, 26, 91,193,174,195,117, 85, +181,110, 85,119,176,168,179,124,209,228, 90, 74,149,178,113, 78, 78, 14,195,227,243,249,206,246,213,222, 87,210, 13,121,233,214, +173, 91,223,119,237,218, 85,244, 38,228, 5,152,236,108,168,179,165, 16,176, 58, 88,182,104, 6,174, 70, 5,168,181,112,106, 64, +161,204, 18, 35,224,239, 8,173, 74,165,170, 48,168, 97,161,208,226,148, 16, 6, 66,137, 4, 34, 83, 51,136, 36,146,146,130,129, + 84,208,222,226,190,125,251,126,251,205, 55,223,128, 82,138,125,251,246, 65,163,209, 8, 53, 26, 13,212,106, 53, 52, 26, 13,114, +114,114,224,235,235,139, 93,187,118, 61, 4,112, 72, 15,177,202,240,249,124, 31,134, 97,108, 69, 34,145,198,198,198, 70,112,250, +244,233,162,112, 19,205,155, 55,135,137,137,137,138, 16,162, 1, 0,123,123,123,237,225,195,135,121,253,250,245, 19,148,198, 87, +175, 73,253,249,181, 24, 11, 79, 35,227,154,174,102,214, 77, 81,203,173, 11, 0,160, 91,239,177,168, 85,215, 5, 57,233, 33,174, + 74, 69,108,127, 1, 79,106,241,114, 91,226, 43, 99,239,198, 99,100,169,119, 35, 81,250,246,254, 82, 39, 10, 14,135, 83,166, 59, + 86, 31,145, 69, 8,225,152,155,155,219, 20,174,243, 41,152,128,145,156,156,140,240,240,112,212,171, 87, 15,153,153,153,112,114, +114,130, 90,173, 70,235,214,173,161, 80, 40,176,121,243,102, 60,120,240,224, 33, 10,118, 70, 86,240, 27,198,110,110,110,163, 91, +180,104,129, 43, 87,174,224,233,211,167,137,215,175, 95,119,242,240,240,128,171,171,235, 24, 66,200, 18, 74,203,142,193, 87,154, +171,175, 83,167, 78,211,125,124,124, 16, 22, 22,134,201,147, 39,103,196,199,199,159, 63,125,250,244,248,229,203,151,115,186,119, +239,142,228,228,100,108,216,176, 65,247,224,193,131,141, 0, 86, 85, 80,143,175,227,227,227,157,149, 74, 37, 50, 51, 51,193, 48, + 12,228,114, 57,174, 94,189, 10, 95, 95,223,148, 2,145,245, 86,223,242, 53,107,214,172, 33,135,195,193,201,147, 39, 1,224, 39, + 74, 41, 75, 8, 57,223,191,127,255,196, 95,126,249,197,105,241,226,197,152, 48, 97, 2, 52, 26, 13,126,253,245, 87, 44, 94,188, +248,114,129,200, 42,111, 16,253,221,222,222,126,226,228,201,147,235,207,153, 51, 7,129,129,129,182,207,158, 61,107,245,226,197, + 11, 84,175, 94, 29, 25, 25, 25, 60, 43, 43, 43,108,217,178, 5,179,103,207, 62, 11, 32,253,209,163, 71, 67,163,163,163,215, 81, + 74, 55, 84, 80,159,123,156,156,156, 38, 82, 74,169, 92, 46,143, 93,180,104,209,134, 53,107,214, 96,246,236,217,120,249,242, 37, +178,179,179, 97,106,106, 74, 22, 44, 88, 48,250,167,159,126,194,184,113,227,168, 76, 38,219,245,239,119, 75,233, 32,151,134, 65, +167,178, 64,243, 38,245,208,188,113, 77, 92,247, 15, 2, 0,124, 59,208, 3,114, 89, 46, 14, 31,222,135,183,111, 35,193,227,243, + 81,205,210, 94, 31, 75, 32,212, 57,175,145,165, 73, 70, 87,175, 86,232,217,189, 51, 14, 29, 57, 5, 70,171,193,248,177, 35, 32, +205,202,194,145, 35, 7, 16, 21,253, 14, 60, 62, 31, 86,214, 95, 63, 16,106,121, 90,228,127, 94,104,233,225,126, 2,203,178, 72, + 76, 76,196,179,103,207, 16, 19, 19, 3,177, 88, 12, 5,163, 99,119,223,122,192, 18, 34, 72, 96, 41,125, 72,153,162, 40,197,159, +114,232,116,137,197, 34,214,154, 91, 88, 88, 8, 85, 42, 5, 24, 70, 91,108, 86, 33, 0, 1, 4, 60,192,193,177, 22,226,227,226, +169, 82,169,188, 91,238, 19,148, 74,185,229,226,249, 51, 62,237, 59,120, 88,247,252,118, 37,206, 95, 88, 6,105, 78, 14,148, 26, + 62,100, 74, 13,228, 74,160,154,165, 59, 90, 55,105,138,164,164, 12,132, 60, 13,200,227,169,228,250, 44, 20,141,220,190,116,172, +219,216,105,243, 97, 92,163, 3, 84,225,231,193,230,165, 20, 89,180,140, 36, 22,176,116,105,128, 44,153, 10,103,110, 7, 1,128, +222,169, 94, 82, 82, 82,228,142,142,142,199,124,124,124,126, 13, 10,122,230, 12, 0, 65, 65, 65, 9,201,201,201, 11, 83, 82, 82, +228,149,105,192, 98,209,224,137, 88, 44, 14,170, 91,183,110,146,183,183,183,121,255,254,253, 97,109,109,141, 23, 47, 94, 96,221, +186,117,175, 53, 26,205,252,187,119,239,150,235,234, 81,171,213,137, 65, 23, 46,152,117,254,241,199,106,243,251,244,217,224,227, +227,179,101,213,170, 85,124, 55, 55, 55,162,213,104, 16, 26, 26, 74,143, 31, 59,166,221,181,120,241,102,161,137, 9,239,201,197, +139,124, 70,165, 74,252, 79,119, 98,103,103,103,207, 94, 61, 60, 27,108,252,125, 27,148,138, 60,252, 29,120, 25, 82,105, 26,246, +238, 59,215,192,217,217,217, 51, 33, 33, 33, 64, 95, 1,124,240,224,193,185,109, 91,180,104, 81,187,122,117,132,190,143,129,144, +213, 65,192, 48,224,106, 84,224, 48, 74, 84,111, 76, 65, 56,166, 72,254,144,131, 53, 39,255, 12,211, 71, 24,215,239,213, 23,171, + 18,178, 65, 8,193,166,118,141, 33, 52,149, 64, 96, 34,193,212,191,252,139,132,193,165, 85,139, 33,148, 72, 80,167,173,135, 30, +131, 46,149,155,154,154, 62, 11, 13, 13,109,221,184,113, 99,204,157, 59, 23,177,177,177, 96, 89, 22, 41, 41, 41,202,228,228,228, +196,180,180,180, 88,228,199,255,217, 79,245,124, 18, 96, 24,198, 54, 40, 40, 8, 0, 4, 0,112,251,246,109, 56, 58, 58,194,220, +220, 28, 57, 57, 57,152, 63,127,190,232,231,159,127, 6, 0, 60,123,246,140, 95, 92,160,148, 68,104, 80,248,198,172, 92, 42,165, +121,207,251,103, 50,207,155,116,233, 30,143,110,189,199,224,230,165, 67,240,191,126, 11,150,188,216, 24,152,228, 94, 77,143, 73, +207, 73,144,185,237,105,208,114, 60, 55, 89,118,125,207,140,126, 22, 92, 7, 7,246,204,162, 93,217, 89,229,149,213,205,205, 13, +118,118,118, 69,107,180,120, 60, 30,198,141, 27, 7, 74,169, 94, 34,171,160, 30, 89, 51, 51,179, 52,165, 82,105,103,100,100,132, + 15, 31, 62,224,221,187,119,136,138,138, 42, 10, 29,192,178,172, 2, 70, 94,132, 0, 0, 32, 0, 73, 68, 65, 84,118,222,188,121, +252,233,211,167, 99,247,238,221,184,123,247,238, 67, 0, 43, 41,165,250, 62,172,141, 24, 50,100,136,169, 90,173,198,137, 19, 39, + 24, 0,189,207,156, 57,243,172,117,235,214,188, 30, 61,122,152,238,220,185,115, 4,128,253,149,232,238, 38,102,102,102, 2,141, + 70,131,157, 59,119, 34, 62, 62,222,147, 82, 26, 78, 8,217, 51,100,200,144, 93,141, 27, 55,174, 27, 22, 22, 22,153,151,151, 55, +149, 82, 26,162,199, 88, 52,182, 85,171, 86,103, 88,150,173,209,181,107, 87,147,223,127,255,221, 44, 34, 34, 2,206,206,206, 96, + 89, 54,180,178, 41,172, 34, 35, 35,195,147,147,147, 27,116,238,220, 25, 87,175, 94, 93, 79, 8, 89, 11,224,215, 41, 83,166, 56, +189,127,255, 30, 45, 90,180,128,165,165, 37, 34, 34, 34,114,147,147,147,119, 1, 88, 82, 81,172, 47, 74,105, 52,128,133,132,144, +166,123,246,236, 25,102,105,105,249,205,139, 23, 47,112,255,254,125,108,220,184, 17, 63,255,252, 51, 58,118,236,136,185,115,231, +166, 3, 24, 86,224,210,214, 43,110, 94,161,101, 11, 0, 90,181,106,149,180,110,221, 58,140, 31, 63,158,254,241,199, 31, 91,143, + 29, 59, 54,107,196,136, 17, 69,115,224,232,209,163,233,209,163, 71, 71,151,183, 17,224, 43, 65,171,209,168, 97,102, 89, 11,121, + 89,113, 72,139, 15,132,216,212, 30,221,187, 52,131, 92,161,134,223,197,179, 8, 9, 13, 6,135,195,129,157,125,117, 84,179,176, +198,155, 55,145, 0,240,170,124, 78, 13, 76, 45,106, 34, 47, 59, 30,234,212, 32, 24, 75,108, 49,230,199,254,144, 43, 52, 56,119, +254, 44,194,194, 66,192,229,114, 97,239, 80, 29,230,213,242, 57, 9, 45,151,211, 0,148, 30, 79,171, 66,161,197,229,114,239, 92, +187,118,109, 80,219,182,109,121,111,223,190,197,219,183,249, 15, 55, 82,169,148, 33,208,253,153, 18,114, 97,120, 57, 34,160,107, +225,238,140,226,185, 11, 37,166,166,137, 17,175,195,237,164,153, 41, 8,126,254, 0,111,223,132, 34, 38, 42, 28, 26,141, 18, 92, + 14, 7, 28, 46, 7, 53,107, 53,194,131,135,129,106, 37,195, 4,150,197, 9, 0,153,153,239,114, 37,118,238, 67, 87,175, 90,114, +105,246,252, 21,198,131, 7,237, 70, 72,196, 43,228, 49,246,160, 20,176,183, 50, 65,243,218, 11,144,152,148,134,147,135,118,202, + 89,141,102,100,241, 24, 90,165,113, 2,128, 93, 58, 26,238,218,119,104,220,126,223,227, 43,230, 79,159,100,215,111,192, 72, 8, + 51, 95, 65,155, 20,132, 90,173,123,130,136,170,225,202, 13,127, 4, 60,123,149,194,234,232, 10,187, 12,252, 81, 17,103, 9, 23, +226,163, 15, 31,146,157,139, 69,129,119, 22,137,140, 30, 85, 32,170,186,150,136, 43,244, 81,196,121, 46,151,211,114,245,234,213, + 90, 59, 59, 59, 77, 88, 88, 24,118,239,222,205, 6, 5, 5,221,224,112, 56,219,147,146,146,148, 21,113,218,104,181,193,199, 23, + 45,106,216,102,192, 0, 58,124,250,116, 57, 68,162, 25, 27, 54,109, 90,148, 38,149, 58, 82,150,133,141,165,101,194,134,197,139, +215, 13, 26, 50, 68,250,242,193, 3,227,192, 11, 23,140,133, 12, 19, 84, 81, 57,191,144,223,187, 76,206,132,132,132, 0,183, 58, + 46, 56,188,255,119,104, 52, 42, 36, 39,230, 27,178,210, 51,178, 81,158,200, 42,201, 89,176,235,106,192, 79, 63,255,252,248,167, +217,179,236, 59,125,219, 21,113,193, 47,160,201, 76, 3,209, 50,224, 19, 30,100,169, 98,164,166,228, 97,225,209,211,169,121,114, +249,128,146,147, 68, 89,229, 44,180, 88,137,204, 76, 33, 48,145, 64, 40, 49,253,200,138,101,100,102, 6,161,137, 4, 60,161,176, + 52, 43,205, 39,156,121,121,121, 3, 7, 13, 26, 20,242,228,201, 19,139,241,227,199,163,125,251,246,207, 21, 10,133, 23,165, 52, +183,170,245,201,227,241, 82, 91,182,108,105,203,231,243,153,113,227,198,241,210,211,211,139, 34,171,231,229,229,225,234,213,171, +168, 87, 47,127, 87,255,203,151, 47,209,168, 81,163, 50, 57,199, 47, 8, 77, 4,176,106,206, 96,231, 13,143,131,147,103, 0, 88, + 95,171,110,117,248, 95,191,133,251,254,129,139,190,105,204,110,235, 53,178,245, 47, 98,175, 33,243, 27,180, 28,207,149,152, 57, +224,200,185,179,220,240,160, 3,107,228,242,208, 58, 0,230,149, 85, 78, 66, 8, 40,165,159,132,114,224,114,185, 56,118,236, 88, +101,175,253,244,254,253,251,167, 76,158, 60, 89,144,156,156,140,215,175, 95, 67, 38,147,193,200,200, 8,215,175, 95,103, 0,236, + 60,118,236,216,245, 99,199,142,245, 64,126, 92,156,219,149,233,159, 38, 38, 38, 62,221,187,119,199,235,215,175,241,244,233,211, +179,148,210, 16, 66,200,217,183,111,223, 14,237,216,177, 35, 14, 29, 58,228, 83,150,208, 42,139,147,101,217,226, 49,147, 50, 11, +250,110, 48,128,111, 42,219,238, 5, 11,120, 59, 0,128,149,149, 85,188,157,157,157, 89,112,112, 48, 92, 92, 92,160,209,104,218, + 86,182, 47,101,103,103,255,190,125,251,246, 63,198,142, 29,139, 95,126,249,101,228,233,211,167, 71,246,234,213, 11,222,222,222, + 56,120,240, 32, 66, 66, 66,214,235,147, 86,172,180,107, 47, 16,142, 33, 13, 27, 54,156, 86,189,122,117,108,220,184, 17,161,161, +161,235, 86,173, 90,181, 56, 36, 36, 4,245,234,213, 19,189,122,245,138,169,202, 24, 2, 0,102,102,102,102, 90,173, 22, 23, 46, + 92,248,155, 82, 58,155, 16, 98,187,101,203,150, 97, 18,137, 4,153,153,153,138,176,176,176, 17,148,210,139,255,238,177,142, 18, +178,116,252,132, 25,123, 38,140, 31, 97,212,170,101,115,200,115, 18,160,200, 75,129, 60,247, 3,182,239,191, 1, 66, 56,176,177, +113,128,173,189, 51,222,191,143,195,195,203, 87,212, 50,185, 98,139, 80,203,174, 47,159,115,122, 62,103,139,124, 78,185, 44, 21, +138,188,212, 34, 78, 91, 91,199, 2,206,247,120, 16,120, 69,169,144,201,126, 87, 83,242,219,215,188,246,255,101, 84, 58,215, 97, +113, 72,165,210,153,147, 38, 77,242, 90,184,112,161, 21,195, 48, 92, 75, 75, 75,188,127,255,158,249,243,207, 63, 51,243,242,242, +102, 86,165, 64, 60, 62, 63,196,205,189,158, 87,191,126,253,152,190,125,251, 8,126, 24,219,131,103, 99,107,139,236,172, 12,188, +121,253, 2, 17,175,130,224, 86,175, 25,150,175,218, 12, 84,171, 86, 97, 34,201,188,148, 55,119, 36,118,238,189, 87,254, 52,239, + 84, 7,207,239,204,234, 53,106, 38,104, 94,199, 28, 26, 45,131,132,132, 4, 92,188, 16,172, 9,123,118, 63,135,101,212, 67,101, +105,250,165,224,185,155,255, 84,180,183,137, 29, 57,182,118,195,246,185, 59,247, 30,158,191,112,198,120,147,142, 30,221, 16,122, +235, 16,206, 94, 58, 37, 83,170,212, 27, 4, 92,108, 10, 77,167,242,202,214,129, 82,169,212,148,220, 16,165, 84, 42, 53,159,219, +216, 7, 15, 30, 68, 74, 74,138, 58, 54, 54,246, 26,195, 48,167,203, 74,246, 92, 26,182, 81,170, 30, 64,200,173,159, 60, 60,122, +252,116,253,186,209,232, 5, 11,212, 35,127,248, 97, 30, 84, 42, 13,132, 66,202, 51, 49,225, 64, 36,226,191,124,240,192,120,235, +148, 41,150, 68,173,190,121,168,156,176, 1,165,224,139,239, 58, 44,102,209,194,232,241,179,161, 40,102,209,122,244,244, 13, 42, + 99,209, 42,184, 49,226, 8, 33,223,204, 88,250,211,185,161,221,191,109,208,184, 70, 77,145,141,107, 77, 72,236,237,145,145,150, +134, 7, 79, 35,180,171, 78,157, 11, 43, 16, 89,122,197,149, 97, 89, 54,127,145, 59,128,111,103, 46, 4,225,114,129,130, 48, 14, +133, 59,135, 92, 91,183, 7,225,241,160,163, 44, 84, 42, 21,213,163,156, 9,132,144,129, 35, 71,142,188,125,233,210, 37, 78,247, +238,221,155,159, 63,127,158,253,156,190,163,213,106,157, 11, 4, 87,142, 88, 44,230,141, 25, 51, 6, 90,173, 22,114,185, 28,217, +217,217, 8, 15, 15, 87, 13, 30, 60, 88, 84, 32, 32,180, 67,135, 14,173,112,252,248,253, 76,130,114,206, 96,231,109,150,188,216, + 97, 57,233, 33,174,150,188,216,152,111, 26,179,219,126, 63,147,160, 92, 57,187,218,234,244,216,128, 55,201,178,235,123,142,156, + 59,203, 29,213,127,160,206, 89, 18,185,200,200,150,254,217,165, 79,133,131,218, 39,193, 73,245, 17, 89, 37,145,155,155,187,120, +217,178,101,222, 82,169,212,185, 71,143, 30,130, 6, 13, 26,224,241,227,199,184,116,233, 18,243,232,209,163,120,153, 76,182,132, + 82,170, 4,112,163, 42,117,234,238,238,238,202,227,241, 10, 93,105, 59, 10,222,222,113,254,252,249,161,227,199,143, 71,205,154, + 53, 27, 18, 66, 68,180, 18,247, 17,165,180,200,203,240,133, 39,138,168,173, 91,183, 58,217,219,219,147,171, 87,175, 50, 92, 46, +183,210,150, 27, 74,233, 65, 66, 72, 91,173, 86, 59, 97,226,196,137,240,244,244, 4,195, 48, 56,122,244, 40, 14, 28, 56,176,190, + 50,185, 91,203,194,155, 55,111,130,226,227,227, 59,205,155, 55, 15, 27, 55,110, 92, 60,111,222, 60,196,199,199,227,205,155, 55, + 47, 62,135, 55, 39, 39, 71, 17, 23, 23, 39,110,215,174, 93, 43, 23, 23,151,176,209,163, 71, 55, 26, 63,126, 60,214,175, 95, 79, +239,222,189, 59,136, 82,122,245, 63, 49,129,191,142,204,240,109, 82,219,238,250,170,213,191,255, 92,167,182,235,228,113, 99,134, +112,221,221, 26, 65,150,157, 0, 43,107, 59, 56, 87,175,133,180,212,116, 92,187,118, 85,151,158,158,117, 80,199, 33, 43, 35, 35, + 51,146, 62,135,211,201,185, 22, 82, 83, 83,113,229,202, 21, 93,150, 52,103, 31,180,156, 85,175, 98,165, 41, 48,160, 66, 75, 86, +105,139,225,137, 62, 11,111, 11,118, 30,110,205, 15,239,144,111,229,146, 74,165, 51, 41,165,233,250, 42,115, 82, 50,136,218,224, +193, 2, 92,190,220, 20, 90,237, 55,213, 76, 77,191,165, 44,219,186, 89,179,102,146, 33, 67,134,176, 30, 30,237,133,102,102,102, +164, 97,195,198, 57,217, 89, 89,150, 0, 64, 1, 93, 69, 42,186, 48,169, 52,143,203,239,170,211,105,154,228,151,181,226,164,210, +250, 40,243,218,118,196,134,199, 98, 57,135,144, 49, 44,165,135, 24, 14, 86, 70,165,208,180,170, 62, 61,149,112,251, 21,166,156, + 89, 92,217,167,188,226,174, 67, 14,135,235,235,224,224,176, 36, 33, 33, 33,149, 82,170,171,170,101,163, 48, 5, 79,239, 89,179, +180, 45,191,251,142,177,172, 94,157,165,148,234, 98,130,130,200,163,139, 23,249,143, 46, 94, 52,210,170, 84,119,206, 80, 26,165, + 15,167,163,163,227, 58, 63, 63, 63,189,215, 94,245,233,211,231, 85,225,186, 45,125,235,179, 78,109,231,235,181, 93,157,190,171, +237,154,239,158,142,138, 73, 66, 84, 76,226,141,119, 81, 9,221,171,210, 70,197,147, 74,147,130, 16, 14, 84,143,164,210, 37, 57, +173,173,173,159,241,120, 60,231,202,220,176, 58,157, 46, 41, 45, 45,173,133,158,229, 28,238,234,234,186,254,253,251,247,231,116, + 58,221,236, 47, 97, 33, 36,132,180,231,114,185, 87,116, 58,157,113, 73,139, 87,161, 24, 35,132,212, 16,137, 68, 31, 45,134, 47, +143,115,195, 79,141,127,110,215,177, 99,255, 71,247,239,159,159,191, 58,236,163,117, 67, 51,250, 91,142, 29, 62,109,230,111, 39, +118,110, 93,176,237,124,230,193, 10,173,205,118,118,119, 1,184, 21, 10, 46, 61,234,178, 85, 5,150, 97, 35, 83, 83,211,117, 0, +134,178, 44,107, 77, 8, 73,167,148,158, 44, 38,178,170, 92,159, 92, 46,119,125,253,250,245,103, 70, 68, 68,156, 96, 24,102, 92, +177,243, 55,214,169, 83,103, 90,108,108,236, 14,173, 86, 59,191, 18,247,187, 89,199,142, 29,165, 91,183,110,229,204,158, 61, 27, + 1, 1, 1,150,148, 82,233, 23,106,119,123, 11, 11,139, 63,116, 58, 93, 3, 74,169, 95,110,110,238, 98, 74,169,172,178,156, 5, + 33, 30,134, 58, 57, 57,205,119,115,115,115,139,140,140, 12, 73, 76, 76,220, 80,210, 26,244, 25,229,244,254,254,251,239,253,182, +108,217, 66,170, 87,175,142,248,248,120,204,154, 53,139, 94,184,112,161, 15,165,244,114, 85,199,100, 66,200,210, 41, 83,166,172, +254,225,135, 31,138, 4,237,186,117,235,232,229,203,151, 71, 83, 74,125,171, 58,206,127, 73,235,125,195,218, 54,181, 41, 87,183, +166, 89,227, 6,131,126, 28,217,159, 60,122, 26,137,199,143, 2,145,144,148,116,158,229,112,150,188,121,147, 30,249,185,156,129, + 79,223,224,113, 96, 32, 77, 78, 74, 62, 3,202,253,233, 85, 84, 90,212,191,235,218,255, 9, 86,173,210, 92,135,164,138,169,176, + 42,221, 97,136, 62,209,106, 29, 29, 29,145,145,209,214,136,199,243, 16,137, 68, 94, 28, 46,247, 78,102, 90,218, 44,125,133,214, +215,232,216,159, 76,232,117,136,176,172,148, 4, 85,225, 44,185,144,189, 42,156,149,225,208,151,179,172,164,210,172, 74,149,100, +197, 48,207,182,209,178,235,160, 36,167,179,179,243, 4,150,101, 93,245, 45, 19,135,195,137, 73, 72, 72,216, 95,149,250,116,115, +115,163,111,223,190, 5,165,148,124,201,118,255, 26,125,233,255, 19,167,239,230,166,142,245,154,212,159, 31, 26, 20,190,177,192, +173, 88,132,149, 51, 44, 77, 61,186,116, 94,246,192,255,238, 47,203,183,101,230,254, 39,203, 73, 8,225,208,202,238,110,169, 34, +103, 97,144,208,202,114, 10, 4,130, 61,109,218,180,153,240,248,241,227, 63, 24,134,153,248,255,177,127, 18, 66,188,185, 92,238, + 60,119,119,247,230,111,222,188,121,161,211,233, 54,150, 39,178, 42,241,240,187,196,213,213,117,170, 64, 32, 16,229,229,229, 73, +147,146,146,150, 81, 74, 79,255,183,213,103, 67, 55,171, 86,148, 22, 5,221, 94, 19,254, 54,227,201, 23,227,164,172,142,165,220, +213, 17, 81,233,207,255,221,237,254,191, 46,178,202,178,114,241,254, 93,133, 40, 20, 74,229, 34, 41, 41, 30, 64, 60,128, 51,255, +173,149,169,143,200,170,164,185, 49,229,191,129,163, 36, 10,132, 84,224,151,224, 42, 41,154,190, 38, 34, 35, 35,137,225,150,255, +239,195,143,179, 67,146, 0,204,106,229,245,233,103, 5,226,106,190, 87,223,255,124, 57,171, 34,178,170,202, 89,213,132,207, 26, +141,102, 50, 33,100, 78,101,118, 43,254,211, 80, 32,170, 46,127, 5,222,181, 0,214,254,183, 95,255,171,200,140,103, 0,250,252, +183,115,254, 63,235,147,149, 75, 42,109,128, 1, 6, 24, 96,192,127,245,160,174, 48,212,130, 1, 6,252,119,161,184, 85,171,184, +240, 34, 0,186,150,113, 35,223,170, 4,121,215, 42, 12, 20,183, 12,156, 6, 78, 3,167,129,211,192,105,224, 52,112,254,255,226, +252,167,138,172,143,196, 85,241,227,194, 93, 79, 95,227, 5,160,171,129,211,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3,231, + 63,249, 5, 96, 98, 89,199, 6,215,161, 1, 95, 29,219, 7, 16, 39, 0,152,126,142, 38,126,141,243, 13, 48,192, 0, 3, 12, 48, +224, 63, 9, 74,233,190,178, 92,135,255,113,161, 69, 8,113, 68,126,160,189, 58, 0, 34, 0,220,175,204,118,229, 82,248,172, 1, + 12, 33,132, 12, 46,184,216, 51, 0, 78, 87, 20,138,162, 16,198,198,198, 41, 74,165,210, 22, 0,140,140,140, 82,149, 74,101,241, + 92, 6, 4,159,166, 71,161,249, 63, 83,246,194,214, 90,181,106,165,168, 84, 42, 91, 61,126, 62,155, 82, 26,194,225,112, 66, 37, + 18,137,127, 68, 68,196,165,202, 92,123,151, 46, 93, 70,115,185,220, 53, 0,160,211,233,150,250,251,251, 31,254,138,237,214,182, +186,163,253, 33,141, 86,195,164,164,101, 46, 43,107,235,246,174, 62,100, 29,143, 96,126,193,255, 27,166,250,149, 31,194,162,178, +231,151, 83,190, 86,124, 62,223,199,206,206,174,103, 66, 66,194, 51, 0, 11, 40,165, 21, 70, 53,118,113,113,249,145,199,227,141, +212,233,116,181,185, 92,110, 20,195, 48,199,226,226,226,124, 13,195,136, 1, 6, 24, 96,128, 1, 21,137,173,210,222,175,148,208, +170,111, 77,236, 41, 48, 12, 4,221, 64,113,147, 0, 39, 95,167,211, 15,250,126,223,187, 62,209,106,153,252,223, 20,112,160,187, +250,142,179,207,219,219,219,121,250,244,233,104,223,190, 61, 30, 63,126,220,238,224,193,131, 99,185, 92,110, 8,203,178,119, 0, + 60,166, 84,175, 80, 10, 38, 0,250, 1, 24,209,179,103,207,174,107,214,172,225, 54,106,212, 8, 10,133, 2,119,239,222,245,216, +176, 97,195, 22, 66,200, 45, 0,199, 1, 92, 44, 47, 54,140, 82,169,180, 45,212, 76,132, 16,219, 65,131, 6, 61, 41, 46,174, 10, +242,171, 17, 74,233, 35, 66, 72,160, 78,167,123,124,230,204,153,248,250,132,180,157,228, 42,248,115,102,180,250,147,152, 73, 42, +149,202,246,194,111,107,193, 19,137,160,202,205, 65,187, 49,255,218, 5,122,243,231,249, 32, 44, 3, 46,168,212,107,245,150, 16, + 0,161, 73, 73, 73, 33,158,158,158, 49,149,109,100, 46,151,187,230,218,181,107, 14,148, 82,116,239,222,125, 13,128,175, 34,180, + 8, 33,162,111, 90, 53,187,227,119,246,132, 81, 94,102, 10,122,244, 27,122,140, 16, 50,154, 82,122,246, 35,209,212,139,216, 17, + 30,230, 79, 89,123,156, 11, 0,187,150,140, 88,176,165, 59,217, 54,235, 58,253, 64, 8,241, 2,138, 82, 54,253, 70, 41,189,179, +171, 23,177, 3, 23, 11,167,172, 61, 78, 0, 96,247,146, 17,243,119,245, 34, 91,167, 94,169,220,174, 74, 66,200,212,209,163, 71, +111, 91,179,102, 13,215,193,193, 1,137,137,137, 61, 26, 54,108,232, 78, 8,105, 88,222, 34, 98, 87, 87,215, 83,157,187,125, 95, +107,192,224, 97, 98, 27,107, 11, 36, 37,167,155,157, 58,241,199, 36, 87, 87,215,158, 49, 49, 49, 67, 13,195,136, 1, 6, 24, 96, +128, 1,101,204, 59, 85, 15,239,208,210,145, 24,203, 52,248,158,199, 37, 63,118,108,219,232,219,225,189, 58,114, 26, 54,168,139, + 87, 47,195,191,187,232,255,247,134,134,118,156,219,140,142,250,154, 8,112, 33, 40,169,252,157, 48, 90, 6,188, 27, 23,142, 3, + 0,166,142, 29,193,125,242,228, 73,221,150, 45, 91, 22, 5, 4,252,246,219,111,241,237,183,223,146, 93,187,118, 53,187,113,227, + 70,179, 3, 7, 14,104, 8, 33,135, 42, 8, 66,231, 83,167, 78,157, 13,219,182,109, 19,121,122,122, 66, 36, 18, 21,125, 38,145, + 72,208,167, 79, 31,244,233,211,135,155,148,148,212,221,207,207,175,251,111,191,253,166, 38,132,204,163,148,238,208,167,242,150, + 45, 91,214,170,148,183,175, 17, 66,222, 49, 12,243,162,105,211,166,241,245, 8,169, 59,185, 87,251,155, 83, 59,184,153,148,197, +195, 19, 10,113,100,116,254, 92, 93, 92,104,197,248, 95,133,196,204, 52, 67,108,106, 26, 2, 32, 20, 64, 8,165, 52,244,221,187, +119,225, 13, 8,105,246,141, 5,231,208,129, 76, 93,211, 74,136, 45,196,199,199,195,220,220,220,184,115,231,206,201,132,144, 21, +119,238,220,217,247,133,251, 84,219, 21,243,167, 10,164,177, 33,248,240,250, 17,230, 12,246, 16,207,218,254,215, 47, 0,206,150, +223, 17, 57,156,223, 2,217, 69,179,242,147,241, 46,203,200,200,240, 4, 0, 43, 43, 43, 33,128, 59,155,255, 70,175,217, 29, 8, +249,140,142, 46,224,114,185, 59,143, 28, 57, 50,254,199, 31,127,204, 79, 29,241,224, 1, 36, 18, 9, 86,173, 90, 85,115,238,220, +185,235, 80, 70, 34, 96, 23, 23,151, 31, 59,119,251,190,214,214,141,191, 52,204,205,204, 86,237,221,121,250,169, 99,227,122,156, + 41, 62,115, 77,183,106, 84,246, 46, 46, 46, 63, 26, 44, 91, 6, 24, 96,128, 1, 6, 84,198,154, 85,161,208,170,103, 67, 14,119, +108,225, 54,100,184,183,135,168, 73,227, 70, 16,136,254, 21, 40,186,101,171, 86,104,217,170, 21,103, 81, 94,110,183, 39, 79,131, +186,253,121,227,177,170,158, 13, 57, 29,145, 70, 71,235, 91,176,194,164,180,107,250,217,117,145,101,165, 26, 1,128, 73, 53, 91, +229,146, 11, 31,252, 59,116,232, 0,103,103,103,193,237,219,183,199,161,252,120, 41, 75, 34, 34, 34, 68, 92,110,249,241, 80, 29, + 29, 29, 49,104,208, 32,212,171, 87, 79,216,185,115,231, 37,248, 87, 58,140,143, 96,100,100,148, 74, 8,177, 5, 0, 75, 75, 75, +221,138, 21, 43, 94, 80, 90,228, 25,164,148,210, 71, 28, 14,231, 49,203,178,127, 95,188,120, 49,161, 17, 33,182,189, 91,214,187, + 63,245,135, 65, 98,250,231,150, 50, 69,130, 50, 39,167,212,247,197, 18,147, 52, 99, 19,147, 16,145,216, 40, 20, 64, 8,128, 80, + 39, 39,167,240, 70,132, 56,127, 83,207,245,198,174,217, 35, 76,245,169,203,150, 45, 91,186,123,121,121, 25,233,116, 58,200,100, + 50,236,222,189,219,220,216,216,216,188,103,207,158,203, 1, 20,117,128,134,132, 52, 25,232,200,157,184, 34,145,153, 86, 5, 33, + 83,173, 99,187, 86,177,219,215, 47, 55,107,245, 77, 71, 68,222, 57,138,204,204, 92,100,103,229,129,101,217, 79, 50, 12, 79,189, + 66, 83,118,245, 33, 27,118, 45, 30,177,144,112, 56,164, 89,255, 5,232,107,159, 61,131, 16,242, 18, 0, 95, 40, 20, 22,245, 67, + 66,136, 99,227,198,141, 55,212,253,174, 35,118, 47,253, 1,148,101, 41,128, 13,250, 90,179, 8, 33,182,166,166,166, 23,111,220, +184,209,182,117,235,214,120,252,248, 49,162,163,163, 49,117,234, 84,245,180,105,211, 4,163, 70,141, 34,115,230,204,153, 78, 8, +249,147, 82,250,240,147, 27,129,199, 27,217,111,192, 80, 97, 94, 86,142, 82,173,210,168, 45,173,171,177, 42,153, 82,158, 46,205, + 81, 14, 29, 49, 65,253,242,249,223, 35, 1,124, 34,180, 62,167, 62, 13, 48,192, 0, 3, 12,208, 27,173, 1,216, 0, 72, 3,240, +180,196, 49, 10,254, 71, 41,199,233,200,247, 74, 89, 21,227, 74, 71,254,178, 31, 27,228,199,248,124, 2, 64,250, 57,133, 43, 43, + 42, 60, 80, 16, 25,190, 32, 64,113, 97,160, 98, 82, 76,104,209,136, 52, 10, 38, 51, 10,186,140,119,208,229,126,154, 62,137, 24, + 85, 67,182, 66,135,248,168,112,140,158,181, 10, 17,105,101, 71,228,246,174, 79,180,230, 66,240, 76, 5,128, 64, 92, 77, 53,124, +253,245,192, 86,173, 90, 41,151,120,114,188,215,237,202,183,116,205,153, 56, 2,237,102,255,121, 61, 42, 42,138,113,116,116,196, +143, 63,254, 8, 74,105,239,114, 46, 46, 37,247,105,160,237,235,222,237,209, 38,165,244,101, 82,111,222,188,193,189,123,247, 16, + 23, 23,135,218,181,107, 99,220,184,113,169,148, 82,187,178, 56,123,244,232,113,247,183,223,126,243,220,180,105, 83,240,145, 35, + 71, 58,148,229,110,106, 72,136, 73,179,154,246, 79, 15,172, 91, 88,155, 92, 61,196,151,199,189, 69,181, 0, 5, 41, 69,228,209, +164,164,127,213,221,175,238, 14, 48, 49, 55,133,137,153, 36,101,212,141,103, 69,150,172,130,191, 17, 45, 9, 49,115,118,176,122, +118,114,243, 50, 39,142,255, 41, 35,193,222, 71,164, 34,145,213,185,115,231,192, 53,107,214, 88, 36, 37, 37,225,214,173, 91,168, + 89,179, 38,228,114, 57,126,255,253,247,228,251,247,239, 59, 22,148,215,174, 77,189, 26, 33,187,231,142, 49, 23,140,251, 89, 84, +217,142, 36,224,241,118, 4, 94, 59, 53,205, 92, 68,145,149, 20,141,119,225, 47,241,228, 85,140,214,247,102,136, 46, 71,161,242, +166,148,250,151,246, 61, 31, 15, 82,247, 78,146,141,223,181,187, 79,221, 28, 28, 28, 48,105,210, 36,124,248,240, 1,148, 82,176, + 44, 91,180, 75, 99,201,146, 37,112,119,119,199,232, 97,125,229,162,204,160,206,126,175,232, 51, 61, 59,120,227, 26, 53,106,220, +184,115,231,142,157,147,147, 19,238,223,191,143, 15, 31, 62,192,222,222, 30,183,111,223,198,250,245,235,143, 76,153, 50,101,240, +154, 53,107,140,134, 15, 31,158,120,253,250,245,234, 37,215,212,213,172, 89, 51,220,239,250,125,137,255,249, 27,239, 44, 76,197, + 48,177,181, 2, 87, 98,166,164, 32,114,123, 91, 11,193,208,239,191,173, 27, 27, 27,219,160, 68,251,127, 86,125, 26, 96,128, 1, + 6, 24,240, 47, 92,190,124,153,122,123,123,147,194,191, 37, 37, 4, 33,228, 82,129, 30, 80, 3, 16, 22, 59, 6, 33,228, 82,129, + 53,228,163,227, 69,139, 22, 45, 89,183,110,221,203,194,227,194,115, 22, 47, 94,220,104,253,250,245,107,219,181,107,119, 50, 48, + 48,112, 5,128,183,159, 43,180,202,178,114,233,181, 70,139, 73,120, 2,129, 91, 79,240,117, 90,104,211, 35,192,102,189, 7, 76, +236,161, 32, 18,100, 36,191,199,235,251,103,243,181, 97, 69,149,248,154,242, 9, 33,183,195,195,195,241,250,245,107,196,199,199, + 67, 44, 22,127,114,222,131, 7, 15, 96,108,108, 12, 7, 7, 7,253, 76,118,234,143,243,177,134,180,172, 1, 73, 59, 79,164, 15, +159,140,219,183,111, 35, 53, 53, 21, 2,129, 0, 66,161, 16, 12,195, 84,200,199,225,228,103,252, 45,180, 98,149,118, 78,103, 66, +120,206,150, 18,191, 93,203,103,186,114, 30, 93,226, 43,226,222, 34, 73,169, 67, 53,125, 44,121, 18, 19,136, 77,196,201,198,198, +226,146, 34, 43,178, 37, 33,124, 19,137,145,223,161,213,115,236,185,207,111, 27, 41,222,134, 64, 80, 10, 71,183,110,221, 38, 1, + 88, 78, 41,205,234,220,185,179,221,154, 53,107, 44, 18, 19, 19,241,234,213, 43,156, 62,125, 58,141,201,191, 80, 66, 41, 93, 9, + 0,237, 8, 49,114,177,169,118,125,199,207, 51, 77,113,231,148, 16,227,126,174,116, 71, 50,111,208,231,242,192, 81, 83,166,109, +155,217, 7,178, 92, 5,142,223,124,142,107, 65,239,250, 2,120, 80,222,186,183, 29, 15,232, 91, 66,200,183, 3, 6, 12,120,113, +239,222, 61,235, 3, 7, 14,128, 97,152, 82, 95, 7, 14, 28,192,173,251, 65, 51, 40,213, 91,100, 57,186,186,186,222,250,251,239, +191,109,196, 98, 49,110,222,188,137,172,172,172, 34, 75,214,232,209,163, 73, 86, 86,214,176,221,187,119, 15,140,141,141,221,120, +255,254,253, 12,228,167,131,250,168, 35,112,185,220,119, 12,163,169,239,208,160, 46,111,112,159,142, 29,243, 50, 66, 32,177,106, +138, 71,193,239,252,178,164, 25, 10, 46,151,251,174,248,249, 95,162, 62, 13, 48,192, 0, 3, 12,168,180,160,185, 68, 41,237, 93, + 92, 56,149, 20, 92,133,255, 23,158,183,110,221,186,222,197, 69, 24, 0,172, 95,191,126,109,177, 99,249,151, 40, 91, 69,139,225, + 59, 19, 66, 40,128,206,165,157,164,122,117, 14,170,215, 23, 33,168,209, 1,194,122,125,193,173,225,129,184,144, 59, 8,190,186, + 25, 9, 47, 31,128,178, 58, 56,184,183,209,183, 44,202,250,245,235, 67,169,204, 95,154,165, 82,169, 32, 48,177, 80,206,153, 56, +194, 8, 0, 88,158,145,170, 88,161,245, 34, 52,237,224,133, 54, 41, 20, 79,236,242, 5,112,161,101,107,245,152, 49, 16, 8, 4, + 16, 8, 4, 69,201,103,245, 17, 90, 5, 73, 81,193,230,187,175,104,105,159,183, 18,241,143,159, 92,238,211, 70, 20, 27, 42, 84, +133, 61, 66,146,138,165,126, 41,186,203,250,100, 78, 22,155,136, 19,141,197,226, 80, 99,137, 73,113,161,245, 14, 0, 40,159,239, +123,116,165, 79, 83,147,148, 40, 19,229,211,219, 72, 86,178, 26,179,210,105, 86, 94,189,122,213,150,199,227,217,235,116, 58,196, +197,197,225,229,203,151,216,186,117,107, 74,110,110,110,231,160,160,160, 55,197,202,203,105,109, 44, 60,237,187,106,102, 45, 94, + 72,128,145,234, 93, 88,169,226,173, 60,216, 52,233,223,189,111,231,102,151, 39,253,176, 20,223,247,250, 14,163, 58, 55,164, 49, + 73,153, 74, 0, 55,245, 73, 96, 77, 41, 77, 36,132,116,235,212,169,211,177,230,205,155, 55,160,148,162, 73,147, 38, 24, 54,108, + 24,124,125,125, 17, 28, 28,140,156,156, 28,205,141, 27, 55,182, 80, 74, 15,234,121,195,137, 45, 44, 44,174,249,251,251,219,136, +197, 98,220,184,113, 3, 10,133, 2, 14, 14, 14,152, 54,109,154,112,253,250,245, 71,114,114,114, 6,175, 91,183,206, 40, 38, 38, +102,199,245,235,215,107, 2,224, 80, 74, 63,233, 4,106,181,122,223,113,223,195,219,166,249, 76,119,242,127,252,234,182, 42, 47, +215,188, 70,141,248, 28, 27, 11,137,233,150, 95, 87,186,168,213,234, 73,165,215,231,221, 42,213,167, 1, 6, 24, 96,128, 1,159, +218, 48, 46, 95,190, 92,166, 22, 41, 46,158, 74,138,173,202,136, 52, 0,138, 69,139, 22, 45, 33,132, 92, 42,176,120, 41, 0, 36, +125, 13,145, 85, 36,180, 40,165, 1,132, 16, 80, 74, 3,202,100, 97,117,208,196,220,131, 38,230, 30,140,219,205,192, 95,235,134, +151,248,145,170,167, 8,235,179,234,166,191, 74,165,226, 29, 62,124,184,104,221, 22, 0,232,116,186, 47,222,138,149, 17, 90, 5, + 66,239,147, 66,184,138, 36, 1,251,102, 15,254,198, 74, 39,231,171, 31,248, 33, 81,197, 50, 27,223,106,228, 79,179,232,111, 75, +202,224,188, 48,107, 18,226,239,223,130, 88, 34,137, 31,127, 47,180,184, 21, 43, 4, 64, 52, 0,184, 26,153,221, 62, 61,103,184, +135,189, 0, 2,245,229, 51, 72, 82,177,170, 61,177,218,131, 91, 75,111, 84, 80, 74, 17, 29, 29, 13,185, 92,142,192,192, 64,156, + 61,123, 54,173,164,200, 42, 40,239,221, 63, 22,140,108,107,150,251, 65,160,126,122, 11, 73, 42, 86,229,174,143,184,106,218,191, +131,128, 67,110, 16, 14,215,184, 87,199,134,152, 53,161, 63, 54,255,241, 23,163,182,237,216,123,219,197, 43, 67,242, 84,154, 37, +250,136,172, 98,101, 14, 1,208,144, 16, 34, 2,224, 53,108,216,176, 43, 3, 7, 14, 68, 64, 64, 0,252,252,252,220, 0, 36, 23, +212,255, 42, 0,118,200,223,141, 88, 86,230,120,142, 64, 32, 56,121,235,214,173, 70,142,142,142,184,117,235, 22, 20, 10, 5,166, + 76,153,162,246,241,241, 17,140, 30, 61,154,100,103,103, 23, 89,178, 2, 3, 3, 51,202, 18, 89, 0,144,144,144,112,181, 70,141, + 26,237, 59,117,234,212,191,150, 91, 61,179,168,220,156, 84,177,216,200,248,126,192, 29,193,211,191, 31,238, 72, 72, 72,120, 82, +122,125,222,214,187, 62, 13, 48,192, 0, 3, 12, 40, 27,222,222,222, 1,151, 47, 95,134,183,183,119, 64, 5,115, 73,239, 42,138, +161,194,239,241,215,173, 91,247,114,221,186,117, 31, 89,188, 62,211,210, 86,210,117,120,153, 82,154, 92,220,162, 85, 41,232,178, +227, 62,189, 0,150,173,204,197,126,242,158,133,133, 5, 99,108,108,252,145,208, 98,245,228,204, 60,127, 2, 81, 83, 71, 20, 89, +178, 10, 45, 91,232, 49,250,179,132, 22,203,178,129, 0, 62, 42,132,137, 93,189,225, 39,127,232,214,161, 97, 45, 39,142,246,244, + 86, 36,200, 25,229,242, 8,141,242,117, 46,237,251,170,148, 69,214, 69,156,140, 22, 70, 38,198,239,141, 37, 38, 37, 69, 86, 44, + 0, 72,236,221, 7, 30, 25,238,213,185, 89,189, 58, 28,230,212,239, 72,148,107,243, 22,133,107, 52, 81, 50,122,174,140, 58, 92, +254,221,119,223, 45,183,178,178, 50,218,182,109,155,121,141, 26, 53,192, 48,140,186,164,200, 50,177,171, 55,252,212,232, 30, 29, +220,237, 45, 56,218, 63,183, 35, 94,161,147,111,141,210, 30,217,163,135,200,178, 54,151, 92,223,179,118,170,177, 88,196,135, 82, +169,196,250, 93,127,226,198,195,176,222,105,161,231,175, 3,184,254, 25,125,114,124,239,222,189, 55,175, 90,181, 10, 90,173, 22, +227,198,141,195,187,119,239,110, 68, 68, 68,108,117,113,113,153,183, 96,193, 2, 71,123,123,123, 12, 25, 50, 68, 0, 96,116, 25, + 28,191, 30, 63,126,188,119,179,102,205, 16, 16, 16,128,172,172, 44, 56, 56, 56,192,199,199, 71,184,110,221,186, 35, 57, 57, 57, +131,215,174, 93,107, 20, 29, 29, 93,174, 37,235,163,126,173,211,173,222,187,121,234,188,214,223,120,112,222,190,125,195,196,181, +241,228,220,185,229,119,207,202,202,234,200, 71,245, 57,166,103,165,235,211, 0, 3, 12, 48,192,128, 47,134,203, 0,188, 75, 90, +185, 74,138,176, 66,139, 85,241,227,146,231, 23,124,174,250,220, 2,149,180,104, 21, 8,175,143,215,104, 21, 95, 4, 95, 17, 88, + 89,154, 94,226,233, 19,181, 90,159,104, 39,181, 6,111,137, 39, 7, 2, 19, 11,101,159, 85, 55,253,203, 58,215,196,196, 68,111, +139, 22,171, 82, 86, 36,156, 42, 37,180, 10,214,104, 93,163,148,126, 36,180,170,217,215,243,252,105,225,204, 45, 30, 3,123,112, + 82, 38,180, 67, 86,158, 74,181,224, 21,195, 38,200,203, 23, 89,249,179,184, 54, 70,108, 34, 9, 53, 50,249,104, 93, 86, 28, 0, + 24,219,213,109,179,104,246,244, 93, 93,134,247, 33,105, 83, 60, 32,205, 82,168,230,189,100, 72,162,130, 14,126, 69,233,157,210, +232,110,223,190,189, 23,192,222,206,157, 59,167,152,152,152, 32, 47, 47,239,147, 54, 40, 44,111,135,129, 61, 56, 41,227,219, 34, + 83,166, 81, 45,120,201, 32, 73,193,158,172, 72,100,217, 84, 51,189,190,103,205, 84,113, 82, 66, 44, 4, 2, 1, 36, 18, 9,110, + 62, 8, 69, 90,216,133,207, 17, 88,224,114,185, 43,150, 44, 89,178,124,218,180,105,200,200,200,128,159,159, 31,122,245,234,133, + 19, 39, 78,212,184,114,229,202,102, 47, 47, 47,112,185, 92, 92,186,116, 9, 90,173, 54,178,140,246,236, 63,113,226,196,121, 3, + 7, 14,196,147, 39, 79,144,156,156,252,145, 37, 43, 43, 43,107,216,174, 93,187, 6,198,196,196, 84,104,201, 42,129, 54,174,117, + 90, 8, 22, 47,219, 4,149, 60,149,151,150,248, 56,224,246, 77,206,163,204,204, 76, 49,128,236,170,214,167, 1, 6, 24, 96,128, + 1,122, 91,181,202,210, 34,105, 5, 34, 42,173,180,227, 98, 2,171,180, 99, 82,194, 10,166, 46,241,121,240,215,188, 38,189, 44, + 90, 60,187,198, 96, 82,194,138, 9,173,212,143, 62, 55, 50,181,212,203,117,168,101,192,219,115,176, 40,142,150, 81, 70, 70,134, +145,181,181,181,178,184, 64, 16,139,197,112,116,116,132, 84, 42,197,190,125,251, 0,160,162, 69,209,140,217,192, 31,208,102,248, + 56, 60,117, 22,130,106, 53, 69,150,173, 61, 99,198,124, 36,182, 4, 2, 65,225,218,176,138, 38,221,191, 9, 33,177, 0, 30, 81, + 74,105, 75,247,218,191, 24,153,152,140,105,213,180,142,245,172,169,227,249, 49,169, 42,248,123, 44,206,250,243,215,133,146,120, + 42,153,246,158,102, 61,172,128, 47,170,223,238,163, 37, 45, 89, 9, 45,220,107, 47, 53, 18, 27, 77,248,166,177,187,253,162, 57, + 83,249, 49, 41, 42,226,223,102, 65,206,217,223, 22,136,163, 97, 58, 47,158, 74,239,232,209, 60,203,123,245,234,181,156, 82, 74, + 89,150, 93, 6, 0,197,203, 59,199,103, 2, 63,234,131, 18,183, 61,150, 74,207,254,186,208, 52, 30,229,151,215,166,105,255, 14, +118, 22,102,215,247,172,157, 38, 78, 78,124, 15,145, 72, 4, 83, 83, 83,196,167,100,131,207,227, 42, 62,167,179, 17, 66, 68,158, +158,158, 11,167, 78,157,138,208,208, 80, 76,153, 50, 37, 57, 46, 46,238,220,169, 83,167,166,252,252,243,207,188,238,221,187, 35, + 57, 57, 25, 27, 54,108,208, 62,120,240, 96, 45,128, 13,165,246, 71, 30,111,252, 47,191,252, 66,147,146,146, 72,116,116, 52, 28, + 28, 28, 48,125,250,116,225,218,181,107,139,214,100, 85,198,146, 85,136,132,132,132, 0,183, 58, 46,232,123,117, 11, 24,173, 42, + 32, 43, 35,238,222,235, 40,105,128,165, 80, 56,215,163,101,211, 42,213,167, 1, 6, 24, 96,128, 1, 95, 4, 79, 43, 56,254,143, +162, 52,215,161,190, 66, 43,114,251,210,177,110, 99,167,205,135,113,141, 14, 80,133,159, 7,155,151, 82,100,209, 50,146, 88,192, +210,165, 1,178,100, 42,156,185, 29, 4, 0,145,149, 41, 88,110,110, 46, 90,182,108,137,157,163,221,187, 40,115, 51,140,140, 1, +168, 68,102,202, 11,194,142,254, 87,174, 92,145,179, 44,123, 18,192,149, 10,104, 86, 52,106,212,104,199,166, 77,155,132, 13,134, +143, 69,222,227,251, 37,173, 83, 48, 54, 54,134, 72, 36, 66, 72, 72, 8,252,253,253,213, 0, 86, 84, 80, 97,127, 51, 12, 19,124, +242,228,201, 4,183,218,206, 61, 58,183,110, 51, 99,201,226, 69,166,175,238,223,192,178,181, 59,216,186,173,186,103,175, 63,113, + 33, 55, 91,226,242,173, 60,233,245, 11, 61, 46, 53,184,132,200, 74,106, 80,203,165, 75,187, 22,205,231, 47, 91,182,212,236,229, +253,155,248,249,183, 61,212,173, 89,215,236,223,206, 94,204, 73, 23,215,252, 78,145, 18,254, 68,159, 58,188,123,247,238, 94, 0, +123, 11,143, 75,150,119,209,170,173,172,123,235, 30,210,245, 39,206,202,114, 76, 93,186,150, 87, 94,219,134, 3,218, 87,119,176, +188,190,125,245,100,241,135,196, 56,136, 68, 34, 72, 36, 18,196, 37,103, 97,249,150,211, 50, 13,203,246,248,204,190, 40, 50, 53, + 53, 21,105, 52, 26,236,220,185, 19,113,113,113,237, 40,165,113,132,144, 61, 67,135, 14,221,214,164, 73,147,250, 47, 95,190,140, +204,203,203,155, 70, 41,125, 93, 22, 73,181,106,213,218,217,216,216,144, 71,143, 30, 97,242,228,201,234,233,211,167, 11, 70,141, + 26, 69,164, 82,105, 85, 45, 89, 0, 0,103,103,103,207,126,222,237,209,161,219,148, 0,181, 50,235, 94,204,235, 35, 1, 28,250, +208,168,101,243,166, 85,170, 79, 3, 12, 48,192, 0, 3,254,127,160,188,197,240,229,102,163,246, 4,120,238, 86,152,212,200, 73, +240,193,247,215,233, 52, 55, 42,144, 42,158,236,165, 57,231, 39,208,203, 27, 70,209, 43,219,103,209, 41,222,141,230, 86,141,230, + 0, 0, 32, 0, 73, 68, 65, 84,104,125, 91,242,193,221, 10,147, 60, 1, 94,121,217,189,123,213,131,182, 91, 29,208,110,117, 64, +189,221,161, 5,176,164, 69,139, 22, 23,124,218,128,210, 87,199, 41,125,117,156,250,180, 1, 5, 48, 25,128, 68,223,140,225, 0, + 28, 0,236,107,217,178, 37,115,231,206, 29, 26, 49,184, 43,125, 94,223,154, 78,155, 54,141,254,252,243,207,116,196,136, 17,212, +198,198,134, 65,190,191,212,161, 34,206,190,125,251, 58, 83, 74, 81,189,122,245,106,173, 26,212,253, 16,114,219,143,222,243,221, + 70,255,240, 25, 64,219, 54,105,144,110, 95,191, 83,176,177, 67,189,230,250,102, 54,183,183,183, 95, 76, 41,237, 65, 41,117,160, +148,194,205,205, 74,210,162,126,221,164,224, 91,126,244,254,209, 29,244, 15,159, 1,244,155,166, 13, 51,156, 27,120,189, 54,178, +173,223,166,170,217,210, 75, 45,111,227,250,233,118,117,219,191, 40,171,188,197, 57,107,181, 25,114, 49, 33, 41,133,254,253,247, +223,244,202,149, 43,244,254,253,251,212,247,212, 69,234,210,122,112,158,117,147,239, 59,124,110, 86,119, 0,230,222,222,222, 52, + 50, 50,146,246,236,217,147, 2, 48,175, 10, 39,128, 11, 49, 49, 49, 52, 44, 44,140, 46, 89,178,132, 2, 56, 60,117,234, 84, 69, +118,118, 54,237,218,181,107, 28, 0, 14, 74,244, 69,125,203, 89,219,213,105,125,255, 62, 29, 87,248, 76, 30,232,249,185,245,249, + 5,179,194, 27, 56, 13,156, 6, 78, 3,231, 63,158,243,127,249, 85,160, 67, 38, 22,251,219,162,240,179,114, 45, 90,119,243,173, + 1,123,155,216,145, 99,107, 55,108,159,187,115,239,225,249, 11,103,140, 55,233,232,209, 13,161,183, 14,225,236,165, 83, 50,165, + 74,189, 65,192,197,166,208,116, 90, 97, 28,138,203,175, 41,191, 20,235,145,216,178, 14,138, 98, 48,189,149, 2,148,210, 61,149, + 84,146,201, 0, 38, 18, 66, 54,121,121,121,173,153,208,161,205, 0,159,246, 93,160,213,106,225,235,235,139,247,239,223,159, 3, +176,148, 82,170,151,197, 45, 52, 52, 52,189, 81,221,154, 51, 45,141, 5,243,167,141,232,111,147,246,238, 21, 18,194,159, 3, 0, + 84, 42,133, 54,249, 77, 64,179,202,148,207,216,216,248,111, 27, 27,155, 8, 27, 27, 27,169, 78,149, 55,209,136,103,182,108,202, +176,126,182, 25, 49,175, 17,255, 50,223, 51,170, 82,202, 53,241,111,252,235, 87, 69, 73,215,172, 89, 83,100,194,199,164, 82,203, +171, 86,106, 63, 68,134, 55,215,135, 71,174, 82,175, 93,185,217,247,187,213,243,199,136,204,204,204, 16, 20,246, 22,203,126, 63, + 33, 83,168,181, 61,210, 66,206, 63,252, 66,170, 31, 90,173, 86,239,141, 14,101, 96, 97,179,102,205,234,173, 89,179,198,109,244, +232,209,248, 92, 75, 86,113,188,139, 78, 88,212,185,115,231,134,111, 35,130,188, 44,141, 5,199, 62,167, 62, 13, 48,192, 0, 3, + 12,248,127, 3,111, 74,233,190,194, 8,241, 5,174,196,231,250,184, 14,243,133, 71, 10,149, 3, 88, 85,219,142,236, 89,188,102, +243,114, 14,217, 50,134,165,244, 16,195,193,202,168,116,154,246,153, 19,175,220,187, 62, 97,190,251,126, 4, 15, 0,248, 60, 48, +159,193, 21, 9, 96, 32, 33,164,245,254,135, 79,126, 42,120,123, 53,165,180, 82,190, 92, 83, 30,194, 60, 26,214,118,234,216,162, +145, 17, 87,167, 64, 66,248, 59,100,202,148,184,249,242,125, 22,135,114, 14, 85,182, 92, 81, 81, 81,119, 1,160,113,221,154,225, + 29, 27,214,113,233,212,178,145,152, 79,212, 72,120, 21,132,108,133, 26, 55, 94,190,207, 6, 33, 85, 94, 80,253,165,202,251, 33, +228,194, 83,155,166,253,187, 18, 66,110, 45,241, 25, 46, 90,254,251,201, 47, 42,178, 0,200, 19, 19, 19, 51,228,114,185, 85, 82, + 82,146, 26, 85, 12, 18, 71, 41,125, 75, 8,105, 50,107,214,172, 85,243,230,205,155,255,235,175,191, 10,170,178, 38,171, 44, 72, + 19,223,159,239,212,232,203,181,191, 1, 6, 24, 96,128, 1,255,124, 20,174,211, 42,185, 94,171, 82,225, 29,162, 82,104, 26,128, +105,117,234,144, 57,239,222, 81,245,151, 42, 92,105,150,174,207, 20,111, 79, 1,244,169, 50, 1,135,228, 62,142,124,159,247,119, +228,251, 60,176,148,178,148,170, 56, 28,196,203, 52,154,181,111,162, 18,174,127, 70, 43,232,158,190,141, 83, 60,123, 23,175,164, + 44, 75, 89, 74,213,132,224,131, 86,203,174, 13,139,138,189,248,223, 80,222,180,144,243, 15,237, 27, 14,232,248,240,239,176, 57, + 50,153,102, 71,218,171,243,129, 95,176, 93,180,132,144,145,237,218,181, 27,171,211,233,246, 80, 74,181,159,193,165, 6,176,144, + 16,114, 46, 52, 52,244,116, 96, 96, 96,242,151, 16, 89, 95,181,253, 13, 48,192, 0, 3, 12,248, 71,162,202, 73,165,203,194,151, + 20, 89,255,141, 8,141,140,105,249, 53,120,195, 34, 99, 26,255, 47,148,247,195,171,115,207, 0, 12,251, 74,157,241, 6,128, 27, + 95, 82, 84, 19, 66, 92, 1,112,191,136,200,250,138,237,111,128, 1, 6, 24, 96,192, 63, 19,159,157,235,208, 0, 3,254,203,159, + 36, 40, 0,198, 80, 19, 6, 24, 96,128, 1, 6,252,135,230,161, 50, 45, 90, 4, 64,215, 50,190,116,171, 18, 74,174,107, 21, 10, +117,203,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3,231,255, 47,206,127, 34, 8, 33, 14,200,143, 86, 95, 20,181,190, 72,124, +125,229,237,142,134,173,175, 6, 78, 3,167,129,211,192,105,224, 52,112, 26, 56,255,233,225, 29, 38, 22,255, 91,252,197, 49, 24, +252, 12, 48,192, 0, 3, 12,248,138, 79,250,162,130, 68,242, 85,250,220, 0, 3,254,135,250,122,209,174,195,226,107,182,120, 85, + 32,170, 91, 96, 9,123,251, 21, 11,235,227,224,224, 48,177,105,211,166, 13, 4, 2, 1, 39, 55, 55,119,165,191,191,255,138,146, +231,117,106,196,127,198,229,192,185,216, 55, 1,194, 5, 56, 28,232, 40, 18,238, 5,203, 91, 25,154,254,191,186, 83,214, 48, 54, +179,249,139,112,184, 66, 29,163,129, 78,171, 1,240,175,116, 76, 44,203,188,103,212,202,238,101,125,223,161,249, 0, 23, 70, 71, +215, 3,236, 46, 2,206, 20, 10,118, 55,161,156, 41,148,131, 93,132,197,100,240,180, 27,192,240,231,241, 4,188,165, 73, 65,103, +226,255, 9,117,246,231,159,127,114, 63,231,251,131, 6, 13, 42, 53,129,168,147,147,211, 37,177, 88, 92,167,172,239,201,100,178, +228,164,164, 36,175,127,120,127,236, 4, 96, 59,128, 70, 37, 62,122, 13, 96, 38,165,244,246,231,254, 70,103, 66,120,118,192, 36, + 1,176, 0, 0, 52,192,111, 41,192,222,187, 95,104, 35,199,151,128,173,173,237, 61, 30,143,231, 38,147,201,100, 57, 57, 57,181, +205,204,204,162, 76, 76, 76, 76, 24,134,137, 76, 77, 77,237, 84,201, 58,157,138,130, 84, 90,132,144,249,148,210, 93,149,249,220, + 0, 3,254, 87,240, 89,187, 14, 9, 33,238, 0, 60, 11, 94,157, 90,183,110,109, 39,147,201, 64, 8, 73, 1,112, 15, 64, 0,128, + 0, 74,233,155, 47, 81, 88, 46,151,187,113,235,214,173,115,167, 79,159, 94,148, 12, 58, 36, 36,164,244,115, 57,112,190,227,119, +203,246,105,232, 27,180,238, 58,168, 64,104,113, 0, 89, 50,188,186,181,169,234, 96,107,106, 97, 97,177,146, 16, 50,152,195,225, + 84, 56,169,177, 44,171,163,148,158,145, 74,165,203, 41,165,185,149,249, 45,137,137,145,150,209,233, 74,253, 13, 30,151,171,203, +147, 41,203, 12,123, 97,101,101, 21,200,225,112,106, 21, 79,152, 93, 80,254, 82,255, 47,126,204, 48, 76, 66, 90, 90, 90, 43, 61, +234,194,136,195, 19,204, 36, 68,208, 13, 28,214, 29, 32, 32,224,188, 97,117,234,155, 44,163,217, 74, 41, 85,126,142,200,114,168, + 94,251,254,236,165,235,157,195,194, 95, 99,137,207, 8,252,186,253, 48, 22,207, 28,139,173,251, 78, 96,230,196,225,104,216,176, + 81,185, 28, 58, 74, 86, 46,155, 57,210,107,205,214,227,173,151,206, 28, 97,178,102,235,241,214, 75,103,141,144,172,217,118,188, +213,210, 89, 35, 37,171,183, 29,107,245,211,172,145,102,107,182, 29,215, 0, 24, 87,149,114,142,112,119,146, 17,134, 41,245,105, +155,242,120,170,227,111, 18, 77,254, 19, 55,245,232,209,163,155, 42, 20,138,160, 17,221, 90,172,111,238,238,148, 88,218, 57, 25, + 31, 18,157,162, 34,158, 47,226, 11,140, 91,246, 91,116, 56,164, 60, 62,145, 72, 84,235,245,235,215,110, 44,203, 66,167,211,129, + 97,152,162,191,106,181, 26,157, 58,117,250, 34, 27,103, 8, 33,125, 0,172,204,191, 89,177,142, 82,122,250, 51,184, 36, 60, 30, +111,182, 80, 40,244,100, 24,166, 1, 0,240,249,252,112,149, 74, 21,192, 48,204,102, 74,105, 94, 37, 41,183, 36, 38, 38, 54,148, + 72, 36,208,104, 52, 69, 9,232,185, 92,110,125, 23, 23,151,157, 0,220, 62,247,250,237,128, 73,237, 61, 60,182,142,154, 59,151, +171,184,119, 15, 91, 15, 30,220,130,156, 28, 0,216, 89,209,119, 69, 34,209,117, 14,135, 83,163, 50,191,199,178,236,123,149, 74, +213,189, 50,223,225,241,120,110, 73, 73, 73,182,142,142,142, 0, 0, 19, 19, 19,147,226,199,149,177,100, 1,216, 64, 41, 53, 6, + 0, 14,135,179,181,125,251,246,237, 8, 33, 12, 0,202,178, 44,135, 16, 50,156,101, 89, 94,193,249, 27, 8, 33, 7, 41,165, 42, +195,180,109,192,255,162, 53,171, 44,177,197, 43,231, 75, 87, 0,120,182,110,221,218,120,216,176, 97,240,244,244,132,155,155, 27, +140,140,140,242, 7,241,140, 12,187, 23, 47, 94, 12,185,119,239,222, 16, 63, 63, 63, 16, 66, 20, 0, 30, 80, 74, 75,189,169,187, +246,233, 56,221, 72, 34,218, 6, 0,105, 9, 25,201, 9,209,169,219,146,147,147, 55,208, 98,217,168, 9, 33,181, 71,141, 26, 53, +103,198,140, 25,184,116,233, 18, 78,156, 56, 1,149, 74,133,220,220, 92,248,251,251,151, 94, 80,121, 42,164,254,235, 1,147, 24, + 32, 46, 0, 16,219, 2, 38,118, 85,174, 44, 11, 11,139,149, 51,103,206,156,213,176, 97,195,162, 40,230, 90,173, 22, 12,195, 64, +171,213, 66, 42,149, 98,206,156, 57,133, 10, 22, 44,203,226,234,213,171,211, 39, 78,156, 8, 0,179, 75,227,108,215,202,229, 25, +135,112,156, 11,109, 53, 84,167, 75,120,244, 60,190, 21,163,211,113,149, 74, 77,169,153,202,141,140, 4,229,138, 60, 62,159,239, +252,234,175,191,108, 57, 66, 33,168, 78, 7,176, 44, 40,203, 2, 40,246,162,249,239, 81, 29, 11,170,213,129,101, 88, 48, 10, 21, +218, 76,157,170, 79,167,105,207, 23, 26,159, 24, 57, 97,174,125,219,111,190,225,215,172,238, 8, 70,199,226, 93, 76,130,125,208, +179,199, 29,206, 28,217, 57,133, 16, 50,156, 82, 90,165, 56, 91, 66,177,217,141, 29,187,247, 59, 63,125, 17,134,219,119,238,225, +150,127, 0, 0,224,250,157,124, 58, 14,135, 83, 81,249, 44,172,220,188,154, 78, 31,251,189,201,234, 77, 7, 68,211,199,126,207, +251,215,223,253,162,233, 99,251,241,214,108,222, 47,154, 62,182, 31,255,151,223,118, 52, 39,132, 88, 80, 74,165,101,241,149,213, + 70,132, 97, 68,199,162, 82,184, 0,144,182,103, 15,180,169,169,112, 92,190, 28, 0, 48,178,182,157,222,238, 14, 27, 27,155,103, +124, 62,223,185,162,243,180, 90,109,133, 34,120,244,232,209,205, 20, 10,197, 51,134, 97, 40,143,199, 91, 52,162,255,119, 23,122, +116,108,150, 81,252,156,144,144, 96,171,181,107,255,250,254,116, 80, 46, 29,210,210, 52,232,210,198,209,173,122,207, 59, 28, 92, +206,132,204, 81,169, 84,136,140,140, 68,241, 36,239,197,117,109, 21, 7, 31, 14,128,173, 86, 86, 86,109, 51, 50, 50, 70, 2, 88, +146,147,147,211,148,203,229,194,210,210,114, 9, 33,228,157,185,185,249,129,236,236,236,192, 2,171, 17,171, 39,111, 39, 51, 51, + 51,223,243,231,207, 91,180,104,209,130,147,158,158, 14, 87, 87, 87,100,102,102,182,185,119,239, 94,203,113,227,198,141, 35,132, +252, 72, 41,189, 87,137,226,214, 19,139,197,116,212,168, 81, 68,167,251,215,229,254,241,199, 31,232,222,152,169, 51,185,135,137, + 92,169,166,217,183, 35,205, 39, 11, 4,130, 7,177,177,177,217,149,173, 15, 1,176, 96,212,220,185, 92, 73,108, 44, 36,193,193, + 24,153,147,195,251, 53,223,186, 85,161,208,226,112, 56, 53,124, 79, 28,114, 19, 10,133, 96, 24,166, 72, 12, 22,142, 81, 90,173, + 22, 26,141, 6, 90,173, 22, 58,157, 14, 90,141, 22,235, 86,255, 86,229,177, 80, 44, 22,139, 29, 29, 29, 83,196, 98,177,248, 75, + 76, 68, 34,145,136,119,228,200,145,225, 66,161, 16, 0,160, 86,171,209,184,113, 99, 98,152,162, 13,248, 39,137,173,210,172, 92, +229, 61,165,254, 31,123,223, 29, 22,213,209,182,127,207,246, 93,150,222, 65, 4, 21, 68,105,130, 29,176, 96,141, 49,160,177,198, + 24, 91, 18, 19,223, 68,163,177, 36, 98,139, 93, 72,172, 49, 49, 81,147, 24,203,107,195, 46,182,216,130,137, 93, 17, 5, 84, 84, +164, 9, 8, 75, 93, 96,251,158, 51,191, 63, 40,174, 8,236, 98,242,254,190,247,251,178,207,117,237,181,231,236,153,243,236,156, +153, 57, 51,247,220,207, 51,207, 12,150,203,229, 96, 24, 6, 86, 86, 86,224,114,185,245, 25, 21, 12, 28, 56, 16,189,123,247,198, +187,239,190,139,212,212, 84,201,187,239,190, 59,176, 81,102, 96,118, 20, 90,250,186,212, 12, 38,172,219,229, 19,119, 98,127, 89, +126,192, 9,192,108,131,100, 31, 78,153, 50,133, 20, 23, 23, 99,244,232,209,151,212,106,245, 80, 74,169,188, 81, 70,131,197,179, +190,239,142, 3, 75,137,100,253,245,159,136, 70,165,164, 28, 14, 71, 89,107, 58,124,205,130, 26,237,238,238,142,189,123,247, 66, +163,121, 53, 92,152,181,181, 53, 82, 82, 82, 12, 25, 56,132,134,134,114, 9, 33,163, 27, 3, 90,132,112, 60, 46,223,204,116,174, + 61,143, 26, 24, 40, 8,235,226, 85,224,228, 96, 69, 1,144, 5, 11, 22,212, 1, 55, 0, 88,186,116,169, 41,249, 4,135,207,135, + 44, 33,225, 69, 71,204,227,128, 35, 32, 32,124,128,195,171,182,162,130, 2,148, 1, 88, 61,192,234, 0,177, 91, 75, 83,116,119, +107,225,233, 27,191,106,221, 15,182,106, 29,197,222,163,231,145,145,241, 20, 92, 14, 7,222, 62,190,120,163, 79, 47,126,231,174, + 97, 45,191, 89, 50,251, 56, 33,100, 48,165,244, 70,179, 11,154,165, 98, 31, 79, 71,252,252,203,109, 56,217, 89, 98,244,176,183, + 32, 17,139,240,245,119,191, 98,197,188,105,240,245,246,194,150, 13, 43, 27,189,221,198,198,102, 89,167, 14,126,222,191,238, 63, +141,136,222,225,188,237,251,207,160, 79,239, 30,188, 95,247,159, 70,159,136, 94,188,237,251, 79,163, 79,239,158,252,237,251, 79, + 35,180, 75, 7,159, 43,197,119,151, 1,152,214,248, 51,215,171,163, 55,170,235,200,151, 39,168, 27, 8, 50, 63,249, 4, 0,234, +128, 86,115,132,207,231,123,228,229,229, 57, 27, 75,103,140, 53,168, 97,178,110,233,245,122, 20, 22, 22,146,178,178, 50,106,107, +107, 59,236,244,150,249,135, 7,245, 12, 41, 1,128,164,164, 36,251,152,152, 85,195,246,221,146, 67,121,237,123,242,239, 99, 9, +236,184,161, 17,183,142,198, 78,234, 60,106,212,168,196,134,244,170,213,234,140,142, 29, 59,210,154,227, 22, 34,145, 72, 80,175, + 77,184,251,250,250,190,194, 90,155, 96, 82,252,246,234,213,171,211, 2, 2, 2,224,231,231,119,165,123,247,238,214, 82,169, 20, +167, 79,159,134,191,191,127,160,181,181,245,245,184,184, 56,254,220,185,115, 67,182,109,219, 6, 0,159,153,208, 62, 7,244,237, +219,119,111,124,124,188, 88, 32, 16, 64,169, 84, 34, 37, 37, 5, 54, 54, 54, 16, 10,133,120,251,237,183,185, 61,122,244,112,232, +211,167,207,193,154,201,128,201, 43,160, 84, 42, 21,157, 63,127, 62, 44, 44, 44, 96, 97, 97, 1,169, 84, 10,169, 84, 10, 75, 49, +200,230, 25,158,146,233, 91,203, 36, 51, 23,111,142,221,249,195,146,139,158,158,158, 95,101,103,103,151, 53,183, 45, 40, 47, 93, +130,101, 82, 18, 96,240,238,154, 42, 54, 82,123, 68, 71, 71, 27, 99,164, 32, 16, 8, 16, 30, 30,110, 84,159,131,131,195, 33, 30, +143,231, 82,111,112, 16, 71, 71, 71, 51,105,105,105, 82, 14,135, 35,101, 89, 22,209,209,209,140, 94,175, 23,187,184,184, 92, 97, + 89,182, 64, 38,147,141, 48,166,155, 82,170, 38,132,124,193,225,112,190, 21,137, 68,188, 86,173, 90,101, 45, 90,180,232,106, 13, +155, 9, 74, 41,167, 85,171, 86,221, 36, 18,137,151, 90,173,214, 3,248,194,204,102,153,165, 9,233, 92, 77, 10,215,137, 6,128, +176,150,192,175, 30,237,224, 88,239,119, 0, 40,170,153, 40,186, 52,114, 94, 12, 32, 21, 64,123, 0,206, 53,215,110, 2, 40,105, +110, 6,155,100,180, 8, 33,212, 32, 97,221,192, 98,101,101,133,155, 55,111,130, 16, 2, 43, 43, 43, 88, 91, 91,195,198,198, 6, +114,185, 28,169,169,169,120,240,224, 1, 50, 51, 51, 65, 8,129,183,183, 55,106, 95, 32, 3, 93,117, 29,220,238,181,241, 16, 91, +138, 64, 8,208,169, 95, 48,130,123, 7,161,235,141,244, 25,238,238,238, 91,243,242,242, 30, 17, 66,120, 65, 65, 65, 31,134,134, +134, 98,221,186,117, 80,171,213,235, 26, 2, 89,134, 58, 47,165,232,186,212, 12, 78,115,118,157,126, 98, 49,254, 77, 31, 69, 94, + 94,222,154,215, 40,156,151, 58,226,162,162, 34,147,247,226, 99, 89, 22,165,165,165, 77,234,172,207, 16,172,255,246,123,219,138, +242, 2, 44,255,122, 23,116, 58, 29,102,207,158, 13,150,101,235, 62,101,101,101, 38,229,147, 50,245, 72, 6, 78,245,135,112, 0, +194, 3, 60,199, 84,227,138,236,189,223,131, 80,128, 48, 0,234, 61, 87,125,157,132, 16, 49, 87, 32,217,183,228,235,141,182,137, + 15,158,225,232,249, 68,104,229,185,200, 79, 58, 12, 0,240, 14, 31,139,253,106, 46,186, 7,251,224,243, 5,223,216, 45,252,124, +194, 62, 66,136,159,161, 25,209,148,129,141, 82, 6,203,151, 45,195,214,141,235,240,205,186,141,144,151,151,129,207,119, 4, 0, +232,245, 12,152,122,207,246,202,179, 83,250,230,194, 57, 83,200,183, 63, 29, 68, 80, 91, 87, 28, 63,123, 5, 93, 2,189,112,234, +194, 13,132,118,104,141, 51, 9,183, 17, 26,220, 6, 9,215, 82, 48,123,234, 68,114,249,212,246, 55,155, 83, 71, 27, 54,124,111, + 91, 33, 47, 64,252,202, 29, 40,220,180, 9, 89,211,166,161, 91, 77,154, 27,132, 64,224,225, 1, 8,140,215, 81,125,185,127,255, + 62,212,106,117, 67,179,125,248,251,251, 27,173,119,165, 82,121, 91,175,215,211,130,130, 2, 82, 80, 80, 0,169, 84, 74, 82, 82, +146,153,192,192,160,225,244,193,129,159, 0, 32, 38,102,213,240,253,183,229, 80, 92,217, 8,229,213,239, 32,104,125,151,179,117, +233, 20,237,199,139,183,220, 54, 24,228, 94,202,103,126,126,254,224,218, 99,111,111,239, 7,105,105,105,237,107, 77,205, 53, 38, + 68,129, 94,175,247,173, 53, 39,234,245,122,168,213,106, 12, 24, 48,128,219,212,179,219,217,217,133,250,251,251, 35, 49, 49, 17, + 27, 55,110,180,239,219,183, 47, 30, 63,126, 12, 66, 8, 86,173, 90, 69, 2, 2, 2,248, 69, 69, 69, 24, 52,104, 16, 14, 29, 58, + 20,110,172, 60, 9, 33, 86, 82,169,116,219,241,227,199,197, 28, 14, 7, 21, 21, 21, 96, 89, 22, 61,122,244, 0,135,195, 65,114, +114, 50, 22, 44, 88,128, 67,135, 14,225,200,145, 35,146,206,157, 59,111, 35,132,248, 27,154,245,155,168, 35,170, 82,169,168, 72, + 36,130, 72, 36,130, 88, 44,134, 88, 44,134, 80, 40, 68,165, 10,248,120,125,150,154, 43,118,100, 3, 59,246,244,121,127,250, 42, +206,154, 69, 31, 92, 0,112,212,212, 54, 15, 84,251,100,125,251,235,175, 27,199,149,151,115, 0,224,103, 66, 88, 45,165,223,152, +242,190, 3, 64,165,170, 28, 94,222, 30, 56,184,239, 8, 70,142, 25,214, 32,200,226,243, 5, 16,240,249,176,182,151, 26,213, 41, + 16, 8, 92, 30, 60,120,224,192,231,243, 65, 41, 5,195, 48,208,106,181, 5, 11, 23, 46,116,138,140,140,180, 58,117,234, 20, 39, + 50, 50,146,181,179,179,171,186,113,227, 70,161, 94,175,119,232,213,171,151,201,109,158, 82,250, 67,199,142, 29, 59, 29, 62,124, +248,131,232,232,232, 91,115,230,204, 89,110,120,125,245,234,213,203, 78,158, 60,233, 53,124,248,240,157,119,238,220,249,161, 57, +125,200, 95,237,231,205, 58,255,251,116,158, 56,113,162,174, 35,142,140,140,172,207,118,186, 16, 66,226, 13,254, 63,170,246, 60, + 58, 58,122,126, 76, 76, 76, 10, 33, 36,222,240,247,218,116, 53,125, 71,124, 67,231, 53,247,218,207,155, 55, 47, 40, 54, 54,118, + 85, 88, 88,216,222, 43, 87,174, 60,109, 46,208, 50,234,163, 85, 11,174, 12, 1, 87, 61, 5,144,203,229,144,203,229,200,201,201, +193,230,205,155,107, 94,104, 62,120, 60, 30,120, 60, 94,157, 63, 67, 99,114,238,248, 31,223, 1,248,174,115,231,206,252,123, 87, +227, 78,125,185,117,122,255, 46, 3, 58,113,111,159,191, 55, 10,192, 10, 0,131, 39, 78,156,232, 8, 0, 59,118,236, 40, 2,112, +234,127, 2, 50, 83, 74,227, 30, 61,122,244,185,155,155, 91,157,143,138,161,249, 80,175,215, 67, 44, 22,163,214,151, 69,165, 82, + 97,243,230,205,122, 74,105, 92, 19, 58,145,150,114, 1,143, 82, 46, 86,223,199,178, 96,153, 23,247, 47, 89,178,196,112,137, 40, + 62,169, 97, 78,140,130,188,134,202,156,214,251,174,247,251, 43,224,236, 21,243,132, 96,250,168, 9,211,220, 88,194,195,177, 11, +119,192,231,243,193, 26,176,153,124,110,245,108, 57,229,113, 30,220, 93, 2, 49,116,236, 20,215,195, 59,191,159, 14,224,235,230, +150,181, 95,112, 24,102,124,254, 57,126,218,186, 21, 11, 22, 47,171, 67,233,122,134,129,222,104, 62, 57,156, 30, 93, 2, 80, 89, +252, 12, 92, 46, 23,225, 29,125,192,229,114,209,171, 75, 59,112,185, 92,244,236,218, 30, 60, 30, 15,125, 66, 3,208,182,109, 91, +240,120, 60,142,145,122, 71, 90,202,121, 60, 74,249,221, 0,244, 82, 80, 0,218,252,252, 87,210,235,242,243, 65, 61, 29,154,219, +182,240,225,135, 31,150,229,228,228,104,235, 95,107,217,178,165,224,210,165, 75,182,141,152,237,234, 68, 34,145,116,230,241,120, +183, 75, 74, 74, 88, 11, 11, 11, 14,203, 50,108, 96, 96, 16,247,244,150,249,135,107,211,204,155, 55,255,240, 59,157,173,135,239, +138,139,167,130, 86, 61, 9,225,139,244, 31, 45,222, 34,224, 11, 36, 38, 69,188,175, 53, 35, 62,124,248, 16,198,242, 99, 56, 49, +107, 72, 74, 75, 75, 39,250,251,251, 95,250,238,187,239,236, 9, 33,248,227,143, 63,192,229,114,235, 62,233,233,233,224,112, 56, +248,242,203, 47,181,114,185,124,178,177,188,241,120,188,207, 15, 30, 60,104, 35, 20, 10, 81, 81, 81, 81,247,222,112,185, 92, 60, +120,240, 0,107,214,172,193,196,137, 19,145,157,157, 13,119,119,119,204,158, 61,219, 50, 54, 54,246,115, 0,203, 76,120,244,187, + 26,141,166,139,133,133, 5,196, 98, 49,106, 1, 23, 0,252,150,194, 79, 86, 40, 20, 29, 28, 29, 29, 93,157, 18,226,143,133,247, + 29, 26,226,224,228, 22, 86, 11,180, 76,149, 39,192,214, 12,134, 89, 56,248,240, 97,231,203,135, 15,179,215,142, 31,127, 38,170, +168,216, 98,114, 27,210,113,144,149,254, 12,157, 59,119,198,237,219,183,209,185,115,103, 67,208, 4,161, 80, 8,129, 64, 0,129, + 64, 0, 71, 59,147, 92, 40, 40,135,195,193,229,203,151,193, 48, 12, 52, 26, 13, 52, 26, 13, 2, 2, 2, 74, 46, 94,188,104, 9, + 0,233,233,233,116,252,248,241,101,215,175, 95, 71,199,142, 77,239,167,238,234,234,122,137,203,229,182,170,247,174,218,141, 24, + 49, 2,165,165,165,111,141, 24, 49,162,103,205,111,185, 7, 14, 28, 24, 15, 0, 66,161, 16, 28, 14,135,129, 89,254,241, 82, 11, +174, 12, 1, 87, 3,125, 78, 84,253,115, 66, 72,124, 76, 76, 76, 84,253,223, 12, 65, 85, 67,199,134,247,198,198,198,174, 50,208, +173,124, 13,107,152,113, 31, 45, 66, 8, 53,214,105, 54, 37,198,128, 86,173,220,190,125, 91,215,162, 69,139,159, 30,221,201,236, +239, 19,236, 13,137, 84,244, 6, 33,228, 59,145, 72, 52,107,194,132, 9,184,118,237, 26,146,147,147,127,249,171,219,169,116,232, +208,225,140, 72, 36,242,106,196, 76,146,117,239,222,189, 65,141, 12, 12,139,107,124,206, 26,117,134, 55,244, 23, 51,116,134,111, +180, 97,176, 20, 58,173, 14, 85, 10,229,139, 65,188, 6,104, 85, 85, 85, 97,204,152, 49, 47, 49, 90,133,133,133,166, 84, 42,214, + 28, 61,138,179,113,113,120, 43, 36, 4,135,110,220, 64,236,132,247,224,231,213, 2,148, 33,160, 4,200,222,243, 61,138,229,149, +216,125,254, 50, 74, 42, 20, 24,215,171, 23,124,173, 29,155,214,203, 23, 12,236, 22, 26, 38, 56,119, 37, 21,124, 62, 15, 28,176, +160, 58, 5,220,253,251,128,203,225,192,198,165, 53, 4,124, 62,248,124, 30,210,115,138,224, 31,212, 85, 24, 47, 20, 15,124, 29, +160,213,210,171, 53, 24,134,193,196,137, 19,177,119,239, 94, 56,184,122,193,166,101, 16, 86,172,219,138,183, 6,244, 50,250,252, +181, 51,120, 30,143, 7, 46,151,251,202,119,237,177, 41,236, 36,101, 41,180,245,235,136,165, 0,165,240, 88,185, 18, 30, 43, 87, +226, 70,205,127, 6, 84, 85, 65,169, 84, 2,221, 3,155, 5,178, 52, 26, 13,114,114,114,180,249,249,249, 46, 13, 12, 80, 5, 26, +141,198, 40,176,217,190,125,251,221, 73,147, 38,117,177,183,183,191,117, 55, 41, 73, 23, 28, 18,194, 63,181,121,254,145, 90,179, + 33, 0,132,132,132,148,204,159, 63,255,200,248,209, 81,195,126,136,126,151,249,116,217, 78,158, 72, 34,233, 18, 53,167,105,135, +120,131,247, 35, 35, 56, 56,152,154,146, 86,161, 80, 60,111,162,142,134, 0, 88,218,169, 83, 39,235,190,125,251,226,210,165, 75, + 24, 57,114,164, 90,171,213, 62,170,233, 84,219,237,222,189, 91,152,154,154, 10, 39, 39, 39,126, 86, 86,214, 54, 66, 72,147, 14, +242, 66,161,176, 79,215,174, 93, 57,106,181,250, 21,144, 21, 27, 27,139,177, 99,199,162, 93,187,118, 96, 89, 22,149,149,149,232, +219,183, 47,127,227,198,141,125, 76, 4, 90, 51,252,252,252,214,160,122,213,161, 97, 95,120, 31,192, 23, 53,108,247,243,168,145, + 19, 83,122, 13, 24,209,165, 85,219, 32, 55, 99, 10, 93, 92, 92,230,113, 56,156,119, 88,150,229,202,229,242, 28, 13, 33,109, 3, +188,188, 92,122, 12, 27,134,114, 62,159,251,237,249,243,156,130,138, 10, 75, 0, 38,153, 32, 85,186, 42,120,121, 87,187,250,141, + 28, 51, 12,183,111,223,198,168,119,135, 67, 32, 16,128,199,227, 87,191,155,130,106, 70,203,214,209,218,164,182,169,211,233,234, +250,240, 90, 63, 47,173, 86,139, 90,215, 44, 11, 11,139,186,107,106,181,186,209, 9,121,141,248,238, 95,182,200, 89, 98,109, 3, + 70,167, 67,224,176, 81,117,109,250,250,207, 63, 72,192,178,146,178,172, 12,124, 22,119,156, 15,179,152,165, 17, 86,171, 1, 54, +203,176, 95,137,175, 15,182, 94, 87, 8, 33,241,209,209,209,243, 1,208,232,232,232,249,181,231, 49, 49, 49, 74, 0,185,175, 3, +182, 26, 98,185,120,127, 7,200,170, 53, 47, 52, 37,253,250,245,251,204,202,202,106, 35, 0,116,233,210, 5, 57,215,114,145,115, + 45, 23,254,237, 3,123,116, 10,233, 82, 62,118,236, 88, 56, 56, 56, 96,206,156, 57, 20,192, 47,205,253,255,244,180, 20, 75, 0, +212,221,221,125, 14, 0,184,187,187,135,220,184,113,195,233,230,205,155,232,218,181,235, 11,234, 94,171, 69,207,158, 61,155, 26, + 16, 43, 80,237,107, 53,243,239, 99,201, 88,104,181, 90, 40, 20, 74,104, 52, 90,232,117, 44,244,122, 61, 58, 7, 90, 97,231,214, +232,234,223,244,181,236, 89, 53,107,230,225,106,133,206, 29, 92,117, 28, 14, 81,222, 76,202,111,176,199,212,104, 52,184,155,149, +133,164,204, 76, 0,192,208,152,166, 29, 95,119,158,191,132,128,128, 0, 99,185,245,241,112,119, 69,222,217,187,213,157,183, 50, + 7, 55,255,220, 15, 43, 43, 75, 0, 64, 96,196, 56, 8, 4,213, 64,171, 74,169,133, 99,251,150, 32,148, 54, 26, 22, 64,106,239, +118,134, 39, 16,123, 81,134, 5,165, 44, 40,203,128, 82, 22, 34, 43, 7,139,207, 62,249, 0, 44,203,160, 91,183,110, 32, 92, 46, + 24,157, 26,163,135, 12, 68,105,121, 5, 28,108, 77, 27, 36, 4, 2, 1, 34, 34, 34, 36,141, 93,127,252,248,177,210, 16,152, 53, + 93, 71, 58, 84, 85, 41,161, 86,171,161,213,232,161,213,233,193,180, 17, 96,249,194,247,160,215,234,161,120, 55, 12, 90,157, 30, +236,231,195,161,213,232,144,109,193,225,132, 4, 56,233, 56, 32,202,196,212, 66,107, 99, 64,171, 22, 28, 52, 38, 13,249, 4, 54, + 2,182,146, 38, 77,154,212, 57, 56, 36,228,246, 59, 3, 66,214,222, 75, 78,201,187,151,156,242, 74, 58,175,118, 33, 25,159,198, +238,157,205, 23, 72, 58,155, 10,178,128,151,205,136,127, 81,230, 87, 84, 84, 4, 91, 90, 90, 34, 45, 45, 13, 92, 46, 23,132,144, +199,148,210, 96, 0,152, 50,101,202, 19, 30,143,231,205,229,114,177,105,211, 38,194,227,241, 58,132,133,133,205, 7,176,191,137, + 9,157,191,149,149,213, 75,108,150, 64, 32, 64,116,116, 52,198,143, 31, 95, 7,178, 4, 2, 1,182,111,223,142, 46, 93,186, 64, +163,209,248,155, 8,134,111, 2,232,101, 2,227, 71,106,192,185, 81, 48,170,215,235, 39, 21,191,243, 78, 91, 36, 36,160,135,183, +119, 64,231,206,157,161,213,190, 32, 52,189,189,189, 91, 86, 84, 84, 60, 39,132,252, 27,192, 15,148,210, 59, 77,130, 34, 21,139, +172,244,103,181,147, 86,116,235,214,173,142,193, 50,100,179, 4, 2, 1, 36, 66,203,102, 1, 45,150,173,238,151, 42, 42, 42, 56, + 9, 9, 9,142,126,126,126, 4, 0,252,252,252,200,157, 59,119,236, 45, 44, 44,138,124,124,124,140, 78,128, 37,214, 54,216, 62, +105, 12, 0,224,171, 1,111,214, 77,140, 78, 47,157, 15, 62,159,143,254,115,230,191,210,238, 89,150,229,194, 44,102,144,101, 4, +100, 53,196,104,253,181,177,249, 5,163, 21, 19, 19,147, 18, 19, 19,243, 10, 59,214, 76,125,198, 25, 45, 83, 76, 1,198, 94,214, +198,100,221,186,117,232,208,161, 67,147, 3,209,198,141, 27,177,107,215,174,117,148,210,244,230,254,127, 84,255, 78,129, 88,127, + 56,197,187, 93, 32, 1,128,101,159, 15,225, 84, 85, 85,225,242,229,203,176,177,177,193,227,199,166,133,253, 34,132, 88,217,216, +216, 44,229,112, 56,163,185,245, 87, 0, 52, 12, 48, 25,150,101,227,202,203,203, 27, 13,239, 64, 41,160,213,233, 81,165, 80, 65, +163,209,224,243, 47,191, 55,154,143, 24,128,104, 53, 21,188,136,222, 97,146,198, 24,157,110, 29,250, 96,234, 4,203, 87, 6,111, + 46, 7,224,112,128,142,221,170, 25,151, 59, 55, 82,192,178, 0,195, 2,142,206,118,248,101,207,218, 38,139, 64,207,176, 53,179, + 99, 6,149,106, 6,254,161, 81,120,118, 63,161,142, 65, 18, 10,170, 77,198, 2, 62, 31, 44, 37,213, 81, 31, 26, 3, 66, 66,137, + 87,105,126,186,239,214,248,123,248, 56,170, 3, 14,156,187,139, 81, 3,130,113,241,122, 42,250,118, 15, 64,202,163, 76, 4,250, +182,194,166,109,113,160, 20, 21, 63,174, 95,241,252,197,128,166,207, 50,133,209,186,118,237,154,178, 62,139,101,248, 77,141,143, +135,160,244, 5,163,165, 84,169, 49,103,158, 73,225,124,170,235,168, 87,168,196,148,196, 77, 49, 86,166, 0,177,250,204, 22,140, +132,103,105, 3,160, 11, 48,247,127,178,227,100, 24, 6, 39, 78,156,168,171,143,134,234,209,176,238, 76, 0, 57,200,202,202, 66, + 74, 74, 10, 66, 67, 67, 81, 94, 94, 14, 62,135,131,217,247,238, 33, 96,194, 4,104, 4, 2,176, 44, 11,161, 80,136, 41, 83,166, +152, 92,158,205,236, 77,107,252,220, 24,106,164, 47, 89, 27, 21, 21,213, 54,173,170, 10, 41, 15, 30, 96,192,146, 37, 0,128,147, + 39, 79,190,212, 38,102,205,154, 37, 76, 77, 77,253,240,214,173, 91, 31, 18, 66,214, 81, 74,103, 55,218,207, 82,117,157,143,214, + 59,239,141, 68, 91,191, 54,216,245,235,158,186,235,179,190,152, 1, 62, 95, 0,190,128, 15, 91, 27, 91,147,158, 70,167,211,213, +129, 86,133, 66,193, 57,121,242,164,199,192,129, 3, 5, 51,102,204, 32, 0,176,107,215, 46,206,119,223,125, 39, 61,123,246,172, +160, 69,139, 22,249, 70,193,165, 86,251, 74, 29, 19, 66,192,231,243, 33, 16, 10, 0,150, 5, 33, 68,186,122,245,234,101, 41, 41, + 41, 93,253,252,252,160, 86,171, 39, 16, 66, 18,205,113,180,204, 82,107, 54,108, 12,112, 53,228,107, 85,195, 74, 53, 38, 50, 67, +191,173,198,128,154,161,207, 22, 0,117,243,187, 5, 19,125,180, 26, 18, 46,151,107,148,173,226,112, 56, 70, 77,135,179,102,205, +130,149,149, 85, 99, 3, 16,189,119,239, 94,106,126,126,254, 86, 74,233,247,175, 83, 57,241,231, 19, 83,150,206, 28, 94,129, 26, +219,170,173,173,109, 81,191,126,253, 42, 1,104,247,239,127,121,130,172, 86,171, 27, 29,192,109,108,108,150,254,252,243,207,211, +135, 13, 27,198,169, 31, 98,192,208,188, 87,251,209,233,116,216,191,127,255,244,185,115,231,162, 49, 22,172,118, 16, 87, 84, 41, +161,172,113,132,126,146,124,192,212,218,107,244,146,165,173, 27, 60,218, 4, 55, 58,152,112, 4,213, 62, 68, 46,158, 47, 6, 48, + 43, 43, 49,152, 38,116, 18,194, 73,207,204,206,107,209,210,213, 30, 79,114,100,112,105,213, 1,165,185, 47,202,129,199,227,130, + 95, 99, 58,180,181,150, 66, 86, 88, 8, 14,135,219, 36, 48, 94,177, 59, 17,215,147, 51,113,240,220, 29,104, 85, 85, 88,191,227, + 52,180,234, 74,104, 85, 85,208,170,170,191, 87,205,253, 8,132,224,185, 86, 85,217,174, 57,245,206,227,241,208,189,123,247, 70, +129, 78,110,110,174,137,140, 22,173, 99,180,148,170,102,214,145,105, 47, 97,147,140, 85,237,245,215, 5, 6,181, 33, 31, 36, 18, + 73,151,237,219, 27, 15,227,208,144,184,185,185,157,178,180,180,108,109,106,250,102, 4, 47, 93,101,107,107,187,212,207,207,207, +127,253,250,245,124, 46,151,139,254,253,251,183,251,232,163,143,178, 0,160, 67,135, 14,238,181,125,204,167,159,126, 74,175, 93, +187,150, 92, 61,199,104, 92,132, 66,225, 3, 27, 27,155, 46,125,251,246, 69,121,121, 57,114,114,114, 32,149, 74, 17,176,118, 45, +238,125,250, 41, 66, 54,111, 6,167, 95, 63, 16, 66, 32, 20, 10,113,239,222, 61, 72, 36,146, 7, 77,128,161,238, 0,190, 1,208, + 3, 47,204,133, 20,192,101, 0, 95, 82, 74,175, 55,208,223,113, 0,128, 97, 89, 99,149,245,222,156, 57,115, 80,198,231, 3,145, +145, 16,164,167, 67,171,213, 34, 52, 52,180,142,101, 15, 13, 13, 5,143,199, 67,112,112, 48,220,221,221,177,105,211,166,247,240, +242, 74,236,151, 68, 85,169, 69, 86,250, 51,132,133,133,213, 49, 87,145,145,145,117,140, 22,159,207,175, 99,182, 8, 99, 28,184, + 18, 66,168,225, 36,153, 97, 24,194,227,241,120, 51,103,206, 36, 35, 71,142,164, 26,141,134, 21, 10,133,156,131, 7, 15,146,139, + 23, 47,242,170,170,170,140, 78,196,131,134,143,198, 87, 3,171, 73,209, 21,173,157,192, 23,240, 33, 20, 8, 48,231,193,179,186, +122,177,222,190, 87, 24, 27, 27, 59,202,207,207,175,218, 12, 15,240,204,113,180,204, 98,132,205,146,213, 3, 73, 26,131,115, 25, + 0, 82,115, 46, 51, 0, 84, 50, 84,175, 32,236, 90, 47,109,237,117, 77,189,239,218,235, 73,205,205,187,193, 94,135,175,128,175, +166,102,196,143,174, 94,189,234,219,185,115,103,100,103,103,191,178, 18,174,118,224,146, 74,165,144, 72, 36,184,114,229, 10, 0, + 60,106, 76,217,133, 11, 23,190, 67,117,212,101, 0,128,187,187,123, 88,223,119,250, 92,233,246,102, 87,236,142,217, 83,158,159, +159, 31, 92, 27, 67,135, 16, 66,220,221,221,199,243,133,188, 49,222, 65,158, 17, 96,217,111,206, 29,251,115, 73, 83, 15,233,221, + 46,176, 18,128,210, 96,213,225,154,215,169,104, 14,135, 51,122,216,176, 97,156,212,212, 84,140, 25, 51, 6,187,118,237,106, 52, +237,248,241,227,177,119,239, 94, 12, 27, 54,140, 51,111,222,188,209,198,128, 86, 53, 91,162,249,219, 26,101,218,227, 36,236,220, +251,115,163, 62, 72,206,206,213,254, 88,133,133, 69,117,191,117,237,220,180,101,132,213,107,206, 38,222,186, 17, 22,222,187,191, + 32,167,160, 12,172, 94, 13, 85,197,139,251, 21,101, 5,160,122, 21, 4, 22,246,112,117,180,193,237,171,191,105,180, 26,213,217, +166,116, 78, 31, 22,136, 79,135,248, 3,148,197,240,217,191, 32,254,251,207,234,102,208, 61, 71,206,192,249,253,223,154,236,227, + 87, 95,248,124, 62,238,221,187,167,108,140,205,226,114,185, 70, 99,114,189, 96, 29,117, 80, 40,148, 80, 40, 85,127, 91, 29, 17, + 66,156, 92, 92, 92,126,180,183,183, 23, 55, 4,164, 8, 33, 78, 78, 78, 78, 63, 58, 56, 56,136, 77, 53, 29, 54, 6,178,106,226, +106,221,154, 52,105, 82,179,192,150, 72, 36,106,253,232,209,163,186, 96,165, 77,125,107, 52, 26,244,237,219,215,164,224,165,148, +210,227,132,144,167,110,110,110,227,242, 19, 73, 0, 0, 32, 0, 73, 68, 65, 84,151, 3, 2, 2,108,158, 60,121,130, 61,123,246, + 8,248,124,190,103,109,255, 81, 81, 81, 1, 46,151,139,194,194, 66, 29,128, 15,140,153,206,212,106,117, 66, 66, 66, 66,199, 33, + 67,134,112, 31, 60,120, 0, 46,151, 91,157,175,176, 48,132,108,222,140,228,153, 51, 17,145,153, 9,149, 86, 11,177, 88,140, 51, +103,206,104, 21, 10, 69, 66, 99,250, 36, 18,201,214,140,140,140, 64,177, 88, 12,173, 86, 11,150,101,193,225,112, 8,143,199,235, +105,107,107,187, 17, 64,215,151,223, 41,103,231, 41,179,190,110,207,232,245, 76,126,246, 19,153,177, 50, 40, 46, 46,198,241,227, +199, 17, 26, 26,138,136,136, 8,228,230,230, 34, 61, 61, 29,111,189,245, 86, 93,154,164,164, 36, 36, 38, 38,194,199,199,199, 56, +163,199,209,193,167,125,107, 8, 4,130,106,134,136, 47,168,153,248,240,235,152, 44, 1, 95, 0, 62,143, 15,177, 68,108, 50,163, + 69, 8, 1,135,195, 1, 33, 4, 18,137,164,118,146,205,122,120,120,228,151,148,148,184, 1,224, 74, 36, 18, 48, 12, 99,210,164, +165,118,140,168, 5, 89, 2,161,160,142,217, 2,128,178,178, 50,213,176, 97,195,254,173, 86,171,223,199,107,236, 80, 98,150,127, +164,220,252, 31,186,215,100,156, 72, 41,221,218,144, 83,124, 83, 13,252,173,240,240,240,205, 99,199,142,237,191, 97,195, 6, 88, + 90, 90, 34, 63, 63,191,110, 64, 20, 10,133,104,217,178, 37, 74, 74, 74,176,101,203, 22, 60,123,246,236, 2,128, 41,166,230, 40, + 63, 63,255,218,227, 59,143,138,251,142, 10,119, 8, 12,111,111,155,243,232, 89, 40,128, 43, 53, 32,235,151,177,179,222,122,191, +239,136,110, 16, 8,249,200,121,252,252,255, 91, 77,114,185, 92, 46, 33, 4, 99,198,140, 49, 41,253,187,239,190,139,132,132, 4, + 52,101,102,100,107, 25, 45,133, 10, 85,202,191,111,178, 54,245,179,241,152,250,217,248, 58, 48, 97,138,233,165, 26,228,238,107, + 2,104,105, 55,196,239,219,242,113,167,110, 97, 94, 93, 2, 91,227,250,173, 59,216,189,249, 5,201,176,237,187,101,248,122,219, + 5,180,116,177,131, 86, 93,133, 83, 7,126,122,174, 85, 43, 54,188, 38, 41, 87, 13,110, 9,129,137,113, 42, 95, 98, 81,107,129, + 86, 80, 80, 80,163,140, 86, 73, 73,137,210,216,192, 80, 87, 71, 26, 29, 42,171,148, 80, 42,254, 30,160, 69, 8, 9,233,217,179, +231,217,184,184, 56, 7,103,103,103,228,229,229,189, 4,180, 8, 33, 33, 61,122,244, 56, 27, 23, 23,231,224,226,226,130,156,156, + 28,147,195,138, 52, 0,178, 32,147,201, 72,105,105, 41,107,103,103,215, 44,176,197,225,112,160, 86,171,113,255,254,125, 83,255, +214,228, 21, 98, 54, 54, 54,219,247,238,221,107, 83, 84, 84, 4, 46,151,139,251,247,239,191,180,234,176,246,243,203, 47,191, 8, +134, 15, 31,254, 51,128, 38,151,181,233,245,250,117,227,199,143,255, 48, 55, 55,215,206,217,217, 25,249,249,249, 16, 10,133,160, +148,130,244,237,139, 94, 79,159, 66,203, 48,144, 72, 36, 72, 75, 75,195,214,173, 91,171,212,106,245,186, 70,234, 71,104, 97, 97, +225, 43, 16, 8, 48,110,220,184,151,174,237,216,177, 3, 67,187,112,187,124, 60, 80, 84,169,135, 88, 93, 32, 25,124,138,203,229, +146, 41,115,190,105,215,189,119,100,208,195,228,235, 79,100, 5,207, 46, 27,121,124,157, 70,163,129,159,159, 31,110,222,188,137, +115,231,206,161, 95,191,126,136,136,136,192,221,187,119,241,219,111,191, 33, 49, 49, 17,132, 16, 56, 56, 56,212,186, 95, 52,233, +131,161, 81,232, 81,152, 87,252, 10,123, 85,255, 92, 32, 16, 64,173,212,154, 84, 71, 15, 30, 60,192,205,155, 55,235, 66,203,112, +185, 92,253,132, 9, 19, 64, 41,165, 25, 25, 25,176,178,178,162,147, 38, 77, 98,120, 60,158, 62, 55, 55,215,212,182, 95,205, 94, +213,128, 44,158,128,255, 18, 64, 99, 89,182, 34, 41, 41,233, 99, 66,200, 93, 66,200,234,154,159,205,113,180,204,242,191, 89, 78, + 24,238,117,104, 18,163, 69, 41,125, 10, 96, 0, 33,228,189, 35, 71,142,172,219,184,113,163, 83, 84, 84, 20, 74, 75, 75,225,229, +229, 5, 55, 55, 55,196,199,199,227,228,201,147, 69, 12,195,204,166,148,238,106,224,101, 27,208, 88,172, 13, 74, 41,117,119,119, +143, 83, 87, 86,126,218, 57,194, 31, 23,246,255, 17,227,230,230, 54,165, 69,139, 22,159, 79,154,255,246,251,125,134,117, 69, 90, + 98, 6,174,253,118, 15, 5,217, 69,152,212,235,203, 38,117,214,119,134,183,181,181,253,208,194,194, 66, 8, 64,219,192,172,248, +165, 85,135,134, 58, 25,134, 97, 52, 26, 13,246,237,219,103, 18,216,218,179,103, 15, 84, 42, 21,152,122,246, 85, 67,157,148,165, +132,199, 23,193,189,165, 31,180,218, 42,176,236,235,177, 55,134, 58,107,103,160, 79,132, 66, 56, 23, 21,225,250,245,235,166, 82, +179, 77,214, 17,165, 84, 69, 8, 25,247,237,202, 57,241,211,162,191,177,237, 23,222, 17, 95,173,221, 1,173,118, 27, 56, 92, 14, + 36, 34, 1, 58,119,235, 1, 46,212,248, 49,246,139, 50,133,188,116, 92,253,173,120, 94,209,217,148,133,133, 2, 12,203,226,220, +165, 27, 38, 63,123,221,104,207, 48,224,241,120,120,252,248,177,178,161,213,134, 92,110,181,153,179,118,166,222,148, 78,202,178, +132, 47, 16,163,165, 87, 0, 52,234,202,191,165,142,156,157,157,191, 56,124,248,176, 67,109,168,132,187,119,239,130, 16,114,223, +128, 29,249,226,240,225,195, 14, 74,165, 18,201,201,201,181, 91, 77,221,111,206,123, 84,203,100,201,100, 50,146,159,159, 15, 11, + 11, 11,206,221,187,119,213,193,193,193,183,208,244,206, 15,117, 58, 85, 42, 85,102, 99,254,147, 42,149,170,133, 88, 44,230,215, +187,215,221,215,215, 55,173,190, 9,177,161,124,150,151,151, 95,159, 59,119,110,231, 55,223,124, 19, 95,124,241, 69,137,157,157, +157,213,143, 63,254,200,227,114,185,100,218,180,105, 76, 97, 97, 97,229, 79, 63,253,100,115,228,200, 17,148,149,149, 93, 49,246, +236,148,210, 10, 66,200,199,225,225,225, 59, 78,159, 62,109,225,235,235, 11,185, 92, 14, 74, 41,182,111,223,142,105,211,166, 65, + 44, 22, 35, 45, 45, 13, 67,135, 14, 85, 40, 20,138,143,235,251, 78, 26,232, 36,132, 16,202,178, 44, 22, 45, 90, 84, 23,156,180, + 54, 88,169,149,132, 96,235,172, 54,210, 25, 63,149, 75,223,251,234,167, 9, 0,192,232,245,204,195,228,235, 79,182,127,255,213, + 69,129, 64,112,201, 72, 29, 45,152, 49, 99,198,143,145,145,145, 18, 75, 75, 75,148,148,148,224,242,229,203,184,122,245, 42,174, + 93,187, 6,141, 70, 3, 7, 7, 7,216,217,217, 33, 63, 63, 31, 15, 30, 60, 80, 2, 88,208,148, 78,161, 5, 31,222,237,106, 87, +254, 86, 51, 88,124,131,213,134,134,236,150,128,207, 55,233, 61,234,221,187, 55,186,119,239, 94, 11,128,152,172,172,172,124,181, + 90, 77, 12, 64,127,110, 45, 32,247,244,244,212,239,218,181,139, 54,165,243,218,214, 77, 56,189,124, 1,132, 2, 1,102,223,207, +169, 3, 93, 59,250,117, 2, 95, 40,128,255,144,145,134,227,192, 15,132,144,109, 53,199,106, 83,218,252, 95,152,248,152,117,254, +151,235,252,223, 44,148,210,124, 0,205,219,130,199,224,230,221,132,144, 83, 31,125,244, 81,108, 72, 72,200, 71,235,215,175, 39, + 2,129, 0, 75,150, 44,161,121,121,121,191,214,204, 66, 74, 95, 51, 99,191,254,126,232,202, 39, 19,163,135,145, 89, 27, 38,245, +188,117, 62,249, 65,135,112, 95,116, 8,247,197,173, 11,169,248,126,254,158, 93,140,142, 89,148,159,159,159,109, 68,149,122, 64, +143,246,245,157,225, 29, 18, 46,158,119,104,238,170, 67,150,101,227,246,236,217, 51,125,196,136, 17,156, 27, 55,110,188,226,147, + 85,187,237, 14,203,178, 56,123,246, 44,180, 90, 45,126,253,245, 87,150,101,217,198,227,104,129, 30,253,118, 67,236,196, 95,119, + 30, 21, 10, 5, 4, 87, 47, 29, 68,121,105,211, 44,157, 64,192,199, 47,219, 15,105, 5, 2,254,195,134,174,107,181,218,156,243, +231,207,187, 12, 98, 24, 62,135,195,121, 5, 64, 53, 38,113,113,113, 58,150,101,179,140,212,203, 21, 66,248, 67, 86,124,241,193, +158,200,119, 62,114, 9, 15,239,201,119,116,118, 1, 33, 4,133, 5,133, 72, 75,190,161, 59,117,240,231,130, 42, 69,133, 73, 91, +240,124,176,230,247, 58,159, 44, 0,136,154,182,177,206, 63, 11, 0,134, 76,154,139,190,161,129, 32,166, 80, 79, 47, 64, 22,171, +215,235, 33,149, 74,161,215,235, 27, 12,241, 96, 99, 99, 35, 81,169, 84,202,154, 64,140, 77, 82, 69, 20,248,219,235,136, 97, 24, +255,210,210, 82, 84, 85, 85,225,234,213,171,116,229,202,149, 50,153, 76, 86,231,180,169,211,233,252, 75, 74, 74, 80, 89, 89,137, + 43, 87,174,208,216,216, 88, 89,113,113,241,252,230,188, 67, 18,137,164, 11,143,199,187, 85, 90, 90,202, 90, 88, 88,112,116, 58, +157, 46, 56, 56, 88, 36,145, 72, 76,222, 80, 61, 47, 47,239,205,198,174,249,248,248, 60,122,244,232, 81, 91,134, 97, 12,247, 64, + 20,168, 84, 42,223,240,240,112, 83, 76, 62, 51,182,109,219,134, 67,135, 14,117,147,203,229,227,179,178,178,118, 0,232,198,227, +241,112,231,206,157,251, 42,149,106,236,136, 17, 35,182,151,150,150, 94, 7, 48,195,196,126,227, 52, 33,100,156,191,191,255,182, +165, 75,151, 90, 70, 68, 68,240,220,221,221,209,181,107, 87,164,165,165,225,196,137, 19,186, 31,126,248,161, 74,161, 80,124, 64, + 41, 61,219,116,181,131,232,245,122, 8,133,194,186,143, 72, 36,130, 64, 32, 64,133,146, 98,242,218,116,165, 30, 18,229,186, 37, + 31,159,160, 0,121,158,147, 94, 84,248, 60,231, 58, 33,228, 82, 94, 94, 94,121, 35,101, 38, 84,169, 84, 29,221,220,220,184,132, +144, 13, 90,173,118,210,103,159,125,230,182,106,213, 42,180,111,223, 30, 69, 69, 69,144, 74,165,240,245,245,133, 76, 38,195,141, + 27, 55, 24,133, 66,177, 25,192, 50, 74,105,147,230,200,178, 34, 57, 60, 92, 61, 95, 98, 62, 41,165,160, 12,160, 83, 51, 96,180, + 20, 26,162, 3,159,175,131, 64, 32, 48,101,176,164, 44,203,162,212,205, 13,108,114, 50,174, 93,187, 6, 74,105,163,172,154,159, +159,159, 9, 21,196, 66, 40, 18,190,100, 46, 36,132, 64, 32, 20,130, 47, 20,188,178,114,198,204, 98,153,229,255,186,152,234,107, + 81, 6, 96, 10, 33,100, 71,159, 62,125,226, 41,165,124, 84,219, 35,255,248, 43,127,158,159,159,127,219,221,221,125,158,139,135, + 93,236,224,241, 61,209,190,163, 23, 24, 61,131,203, 39,239,224,215, 85, 71,246,230,230,228, 78, 50,101,239, 51,150,101, 47,246, +232,210,158, 3,131, 88,221,238,238,238,236,235,172, 58, 44, 47, 47, 95, 60,123,246,108,124,241,197, 23,205, 94,117,216, 88,154, +187,247, 11,167,132,248, 59,121, 12, 25,220,107, 16, 8,135,106, 52,234, 38, 58, 62,212, 69, 46, 21, 8,248, 15,111, 36,229, 5, + 55,148, 78, 38,147, 13,122,255,253,247,207,242,120,188,214,205, 41,115,150,101,179, 10, 10, 10,250, 27,175,115,221,101, 66,136, +239,241,189, 91,102,158, 62,180,109, 16,203, 50, 62, 4, 0,151, 39,120,162,211,106,207,168,149,242,245,166,110, 42,189,122, 74, + 24,102,124,251, 27, 54,125, 49, 4,159,197,238,199,207,139, 38, 99,222,218, 61,248,230,139, 25, 88,185,241,223,248,106,198, 56, +140,122,239,125,150, 18,206,159,166, 62, 7,151,203, 61,189,101,203,150,137,147, 39, 79,174, 91,180, 64, 41,125,169, 99,215,233, +116, 74,150,101,177,121,243,102, 22,192,233,166,244,189, 92, 71,132, 54,229, 47,101,106, 29,201,229,242, 15,194,194,194,182, 3, + 16, 81, 74, 31,151,150,150,254,139, 82, 90,183, 53, 84,101,101,229, 7,225,225,225,219, 41,165, 34, 66,200, 43,215, 77,145,154, + 80, 15, 93,236,236,236,110,213, 48, 89,162,215,113,136,111,170,168,155, 48, 43, 50, 38,244, 29, 44, 12,182,213, 33,132,172,234, +214,173,155,225,166,210,247, 1,116,105,110,166, 40,165,103, 9, 33,129,139, 22, 45,154, 41, 22,139,251, 42, 20,138,118, 0, 32, +149, 74,211,212,106,245, 69,165, 82,185,190,166,223,106, 74,135,198,194,194, 34, 77,175,215, 7, 57, 57, 57, 85,175,168,173, 1, + 91, 0,112,236, 22,115,139, 82,125,215,230,230,237,228,201,147,173,236,236,236,222, 32,132,140,162,148,250, 85, 84, 84,168, 23, + 45, 90,116, 37, 46, 46,174,188,117,235,214,131, 35, 35, 35,137,189,189, 61,110,222,188, 73,139,139,139, 15, 2,152,111,202, 74, +107,150,101,179, 86,175, 94,141,230,190,239, 77, 93,215,106,181,207, 79,158, 60,233,248,102, 97, 33,143,101, 89, 12, 25, 50,228, + 37, 0, 87, 95, 30, 62,124, 8,181, 90,221,100, 48, 71,117,121, 41,250,205,156, 11,212,172,254,172,149,106, 38,139,130,106,204, +184,202, 44,255, 44, 33,255,145,229,207,205,164, 22,221,221,221,199,136,165,162,169, 94,237,220,130,243,210, 11, 83, 43,202, 21, +187,242,243,243,183, 80, 74,153,215,213,217,156,128,165,102,250,247, 63,167,243, 69, 28, 45, 6,148, 50,160, 44, 5,165, 44, 88, +150,169,222,240,154,178,160, 12, 67, 8,193,159,106, 69,249,100, 83,243, 73, 8,177,115,116,116, 92, 70, 41,125,147,203,229,114, + 12,201, 48,195,227, 26, 38,235,180, 76, 38,251,170, 62,243,250,191,177, 60, 15, 28, 56,208, 32,248, 55,117,213,225,168, 81,163, +152,102,190,155, 23,165, 82,105,131,129, 57,171,170,170,178,243,242,242,222,248,111, 40,207, 90, 54,148,154,208,161,213, 51,193, + 55,123,213,161, 49,157,173, 90,181, 18,105,181,218, 78, 0,124, 9, 33,182, 0, 74,180, 90,237, 25,153, 76, 86, 64, 8,233, 2, + 96, 81,205,109,203, 41,165,183,254, 39,223,119, 66,136,196,209,209,113, 27,135,195,241, 48,229,126,189, 94,175, 41, 41, 41,153, +104, 56, 33, 48,212,233,232,232,120,139,199,227,121,152,160,231, 89, 81, 81, 81, 23,115,255,105,214,249,127, 6, 76,213,115,130, + 55, 60,255,175, 88,237,145,151,151,183, 15,192,190,191, 83,103, 99,145,223,205,242,255, 87,170, 74,242,255, 35,245, 80, 3,154, +166,253,211,202,179, 22, 40, 53,240,251,109, 0,228, 63,240,110,246,253,223, 80, 46,244, 53,103,140, 53, 64,170,215,223,153,151, +204,204, 76, 53,128, 43, 53,159,250,255,119, 11,192,144,255,162,114, 83, 2, 24,243,119,233,107, 10, 60,153,197, 44,255, 84, 49, + 47,171, 53,139, 89,204, 98, 22,179,152,197, 44,102,249,107,114,162,222, 22, 60, 39,106, 15, 8,128, 1,141,204,116, 76,166, 4, + 9, 33, 3, 94, 99, 38,117,206,172,211,172,211,172,211,172,211,172,211,172,211,172,243,159,165,243, 31, 39,181,129, 35,255, 19, + 31, 0, 3,204, 58,205, 58,205, 58,205, 58,205, 58,205, 58,205, 58,205, 58,255, 47,127, 0,124,220,216, 57,199, 12, 53,205, 98, + 22,179,152,197, 44,102, 49,139, 89,254, 51, 98, 50,208,178,116,245,247,119,106, 21,178,221,190,101,240, 93,251,150,193,119,157, + 90,133,108,183,116,245,247,255, 39, 22, 26, 33, 68, 66, 8,121,143,207,231,159,117,115,115,147, 19, 66,102,254, 31,125, 78,107, + 66,200, 40, 66,200, 50, 66,200,112, 66,136,197,223,169,191, 15, 33,188,119, 9,153, 58,145,144,236,137,132,100,191, 75,200,212, + 62,132,252,159,243, 27, 92, 58,195, 61,236,143,211,227, 78, 45,157,225, 30,214,224,245, 57,238, 14,215,207,190,243,109,204,180, + 22,246,127, 83,189, 89,185,184,184,108,117,117,117,205,116,113,113,201,114,113,113,217, 70, 8,177, 49,119,119,102, 49,139, 89, +204,242, 31,147, 19,132,144,143,107, 63, 48,240,209,226, 1,192,137, 19, 39, 34, 0,252, 14,160, 79,100,100,100, 66,253,187,237, +189, 58, 76,246,247,107,255,197,138, 37,243,137,171,179,163,133,158, 97,181, 25,153, 57, 1,139, 87,196, 30,176,247,234,176,174, + 36,235,222,207,175, 49, 24, 16, 46,151, 59, 70, 36, 18, 69, 1,168, 5,108,247,213,106,117, 60,195, 48,251, 76, 93, 69,228,234, +234,122,137,203,229,182,106,206,127, 51, 12,147,253,252,249,243,158,175, 57,136,141,246,244,244,220, 22, 17, 17, 97,209,173, 91, + 55, 8,133, 66, 44, 90,180,104, 54,128,245,166,234,176,183,247,177,210,138,196,159,243,132,194,129, 84,167, 9,162,160, 0, 71, +148,204,234,213,231, 5,106,245,186,146,146, 39, 21, 38,230,101, 62,128, 73,168, 94,142,254, 51,165,116,245, 95,105, 37,147, 58, + 17,157,142,169,110, 19, 2, 30, 24, 27, 27,155,223, 23, 44, 88,192,139,138,138,194,207, 63,255,220,115,235,214,173, 31, 19, 66, +206, 3, 56, 70, 41,125,242, 87, 91,165, 11, 48, 37,188,103,207,111, 39,206,158,205, 85, 94,186,132,111,183,109,219, 0,185, 28, + 0, 54, 53,183, 45, 9, 4, 24,229,232,200,143,162, 20,157, 8, 64, 8,112, 71, 86,204,158,212,106,153,125,180,185,251,251,188, +172,251, 61,188,188, 28,127,119,115,117,148, 63,161, 11, 69, 67,252,123,149, 63,185,184, 16,192,224,250,215,245, 42,241, 68,202, +109, 25,165,164,137, 57, 0,214,254, 69,144,101,225,228,228,116,247,232,209,163, 30,221,186,117,227, 1,192,173, 91,183, 38, 68, + 69, 69,245, 35,132, 4, 81, 74,229,255, 67,160, 93,204,227,112,166, 10,249,252,129, 12,195,116, 0, 0, 46,151,123, 79,163,211, +157,213,179,236, 38, 83, 99,178,153,197, 44,102,249, 63,140, 84,140, 96,145,255,102, 49, 37, 50,252,239,145,145,145,228,196,137, + 19, 20,245,150,136, 91,186,248, 5, 4, 6,250,207, 62,125,120, 71,203,178,146, 50,213,119,107,118,220,174,226, 9, 21,190, 1, +190,130,239,214,175,182,155, 58, 99,214,231,150, 46,126,215, 43, 11, 30,164, 54,163,211,245,148, 72, 36,135,214,172, 89, 19,212, +183,111, 95,190,179,179, 51, 10, 10, 10,112,255,254,253,160, 11, 23, 46, 12,219,177, 99,199,108, 66,200, 8, 74,105,182, 9,234, +124,207,239,220,230, 44,181,119, 0,163,211,193, 61,184, 83, 93,160,189,199, 23,126,131, 94,171, 5,171,211,193, 63,106, 24, 0, +128,101, 89, 4, 4, 4,112, 95,167, 32, 9, 33,238,129,129,129,187, 86,173, 90, 37, 80,171,213,184,126,253, 58, 46, 94,188,200, +230,231,231,199,154,170,195,210,165, 93, 95,142, 68,186,111,204,184,143,108,222,142,106,195,247,116,113, 2, 96,129,135, 25,250, +240, 83,191, 93,232,122,120,223,175,159, 90,186,180, 27, 83, 89,144,118,177,105,176,102, 31, 74, 8, 89, 89, 27, 33,154, 16,242, + 77,235,214,173,191, 50, 76, 83,127,223, 60, 74, 41,120, 60, 94, 65, 69, 69,197,152,162,162,162,196,250, 58,117, 12,120,187,119, + 87,227,136,133, 83,223,227,254,249,231,159,210,128,128, 0, 53, 0,172, 94,189, 26,203,150, 45, 19,158, 57,115,230,173,157, 59, +119,190, 69, 8,217, 64, 41, 61,246, 87, 26,166, 0,248,114,226,236,217, 92,203,204, 76, 88, 38, 37, 97,156, 92,206,251, 26,248, +178, 57, 64,139, 16,210,198,213,149,127, 96,246,172,247,253,189,125, 66, 5, 2,129, 99,245, 38,222,154,162,118,217,217,137,163, + 98,191,222, 26, 77, 8, 25, 73, 41,125,108,162, 62, 30,128,165, 0,196, 0, 22, 2, 88, 36,147,201,124, 25,134,129,171,171,235, + 34, 66,200, 17, 0, 43,156,156,156,168, 76, 38,155, 75, 41,213, 55,197,100,201,159,208,133,207,137,247,155,237, 59, 79,196,115, +114,250,205, 89,131,221, 78, 89,251,144, 21,139,191,205,187, 10, 0,131,125,124,172,188,253,164,115, 45,173, 59,216,203,115,207, +205, 29,236,227,243,211,169, 39,166, 1,237,250, 96, 19, 0,220,221,221, 87,239,220,185,179,101,247,238,221,235,218,120,199,142, + 29,185,171, 87,175,110, 49,115,230,204, 13, 0,222, 55, 81, 95, 59, 39, 39,167, 51, 12,195,168,139,139,139,219,213,254,238, 28, + 50, 34,220,193, 74,218, 95, 86, 90,113,169, 40,229, 72,130,137,186,186,137, 5,130,131,199,118,125,235,214,177,123, 24,199,210, +209, 25,170,220, 60, 84,234,180, 3, 46, 94,190,214,231,227,169, 95,206,168,169,163, 27,230,161,198, 44,102,249, 71, 75,163, 88, +228,127,179,240, 12,144,100,131, 12,146, 72, 36,140, 94,188, 96, 46, 41, 43, 46, 83,170,228, 21, 26,157, 74,165,226, 8,168,234, + 94,234,211, 66, 14,143, 91, 54,115,198,116,171,232,121, 11,162, 1,140, 51, 21,100,133,132,132,220, 56,116,232,144,179,189,189, + 61,202,203,203, 81, 92, 92,140, 27, 55,110,128, 82,138, 17, 35, 70,136,186,119,237,218,105,225,162, 69, 87, 9, 33, 97,166,128, + 45,169,189, 35, 86,247,172,222,139,246,171,204,226,218,255,193,214,209, 81,117,105,150, 61,171,222, 45, 67, 44, 22,215,109, 72, +252, 26, 18,214,191,127,127, 1, 0,124,248,225,135,242,138,138,138, 24, 0,187, 41,165, 38,237,180,106,233,210,174,175,163,155, +123,252,143,155, 87, 75, 58,248,248, 66,171,211, 35,235,121, 30,120,124, 91,120,120, 8,240,254,184,129,252,222,225,246,142, 43, +151,111, 61, 33,117,106, 55,188, 74,150,118,166, 49, 93,182,182,182, 59,246,237,219,135,253,251,247, 3, 0,210,210,210,224,235, +235, 43, 53,150,135,228,228,100,239,161, 67,135,238, 5,208,214, 88,218,250,129,241, 69, 34, 17,122,246,236,137,128,128, 0, 28, + 61,122,180, 15,128, 99,127,181, 1, 42, 47, 93,130,101, 82, 18,144,208,252,201, 11, 33,164, 77,231,206, 94,215, 78,158,216,229, +120,226,228,125,172, 93,187, 13, 79,158, 84, 19,109,222,222,222,120,111,236,104,254,189,123, 87, 2, 71,141,122,239, 10, 33,164, + 39,165, 52,205, 4,181, 75,127,250,233,167,249,173, 91,183,198,168, 81,163, 70, 7, 6, 6,186, 90, 91, 91, 99,203,150, 45,112, +115,115,243,214,104, 52,143,143, 30, 61,234,254,252,249,115, 76,159, 62, 29, 0,102, 55,166,168,207,160, 62, 11, 69, 67,252,123, +181,239, 60, 17,150,214,110,248,105,207, 62, 60,188,189,163,151, 90,123,127, 97,204,180, 22,227,149, 84, 52,201,195,215, 42,186, + 85,151, 8,135,182,129, 67,225,213, 57,209, 81,197,252,241,116,209, 84,239, 88,158, 88,181, 99,241,154,188,226, 87,158,121,244, + 1,110,144,252,129,125,242, 89, 20, 83,186,152,173, 1, 88,117, 29, 18, 67, 49,180,119,239,222,117, 21,151,153,153, 9,181, 90, + 13,127,127,127,142, 70,163,233,107, 98,185,182,123,227,141, 55,254, 60,121,242,164, 67,187,118,237, 94,218, 18,198,213,193,118, + 80,194,161, 13,211, 87,126,251,111, 63,231,128,225,101,133,169,135,239, 25, 3, 89, 61, 66, 59,159, 59,117,104,151, 37,169,204, +129,208,182, 8, 96,139,145,190,247, 23, 16, 11,123,140,249,100, 22,175,111,255,126, 45, 6, 14, 30,121,142, 16,210,159, 82,122, +211, 60,214,152,197, 44,255,104, 86,139,254, 95,123,166, 58,160,101,128, 34, 95, 18,150,178,193, 46,206, 14,146, 13,107,182,223, +228,106, 53, 26,169,173,141,134,111, 99,205, 18, 43, 27,174, 86,163,171,244,242,246, 18,178,148, 13,110,132, 74, 59, 87,127,214, + 45,145, 72, 14, 29, 59,118,204,153,207,231,131,101, 89, 56, 57, 57, 33, 35, 35, 3,101,101,101,168,168,168,192,147,251,247,209, +218,179, 37,150, 68,207,117,155, 62, 55,250, 16, 33,164,139,161, 25,177,161,101,163,140, 78, 91,191,115,111,108, 19,225,151,190, +155,210,217,136,100,100,103,103,195,210,210, 18, 65, 65, 65,150,151, 47, 95,254,163, 49,144, 85, 95,167,189,189,143, 21,207, 82, +178,255,135, 31, 23, 73,180,186,100,164,166,151,160,125,235, 94,112,113,240, 68, 94,137, 6,215,110, 28, 67,242,221,221,240,105, +225,137,105,159,244, 19,199,174, 62,176,207,206,174,141,103,105,233, 83,121, 67, 58,229,114,185,101,155, 54,109,224,233, 89,189, +239, 25,195, 48, 72, 77, 77, 5,195, 48,117,231,134,223,219, 15, 94,128, 94,158,133,137, 19, 38,160,184,184,216,178, 33,157,124, + 46,244,179, 62,126,143, 39,225, 3, 66,169,189,166,178,178,178,142, 29,212,106,181,184,115,231, 14,194,194,194, 34,226,226,226, + 18,140, 80,168, 38,149,167, 22,248,230,219, 95,127,221, 56,174,188,156, 3, 0, 63, 19,194,106, 41,253,198,212,182,228,236,204, + 63,120,250,212, 78, 71, 46,231, 1,236,109,190,198,141, 27, 89,208,106,171,243, 91, 92, 92,136,207,166,202, 33,224, 91,225,232, +209,127, 59,248,251,247, 60, 88, 99, 58, 99,141,228, 83,124,234,212, 41,124,246,217,103, 72, 77, 77,117,231,114,185,184,126,253, + 58, 36, 18, 9,214,172, 89,195,245,247,247,119,151, 74,165, 56,125,250, 52, 10, 10, 10, 72, 83,249,252,253,204,239, 43,202,159, + 92, 92,248,156,156,126,243,167, 61,251,240,209,216, 49,112,165,233,127,216,248,144, 21,111, 12,233,241, 21,229,182,140,146, 90, + 5,219,249, 6, 13,129, 64,104,137,105, 95, 46, 67, 90,242,113, 59, 69,197,221,169,132,201,105,137,154,189,255, 94,218, 84, 57, +110, 20,179,113,207,149,206,103, 61,111,122,185,119,158,114, 29,192,221, 23, 64,203,155, 71, 56,140, 77, 45,123,249,248,241, 99, + 60,121,242, 4, 60, 30, 15, 74,165, 18,122,189,190,193,124,182,104,209, 98,138, 94,175,255,170,166,158,183,187,185,185,125,176, +107,215, 46, 7, 67,160, 93,203,100,149,148,201, 75,175,220, 76,121, 56,107,202,168, 62,151,174, 37,231,216,134, 12,203, 46, 75, + 58, 82,222, 72, 29,137, 37, 66,225,193,211,135,255,109,169,123,122, 1, 82,255, 62,224, 91,250,130,209,229, 66, 81, 90,133,138, + 39,249, 80,255,248, 61, 58, 78,157,137,227, 71, 14, 88, 6,118,232, 18, 71, 8,241,165,148,106, 94,227,221,108, 14,197,111,214, +105,214,105,214,249, 95,168,179, 41, 44, 2,160, 51, 0,151,154,227, 98, 84,187,204, 56, 2, 40, 66,245,118, 96, 46, 0, 52, 0, +132, 6,247,212, 63, 55, 76, 91,255,220,240,184,184,230,216,185,230,251, 38,128, 18, 35,147, 74, 55, 0,145,168,246,205,138,172, + 41, 35,211, 34,195, 19,194,145, 51, 12, 43, 18, 56, 57,171, 62,124,167,127,135,223,206,221,186, 99,225,104,205, 27,212,167, 83, +196,141,123, 79,175, 18, 14,209, 17,194, 49,201,239,131,203,229,142,217,176, 97, 67, 7,107,107,107,176, 44, 11, 27, 27, 27,200, +100, 50,104, 52, 26,148,151,151, 67, 93, 33,135,182, 66,142,164,156, 76,244,136,232,131,145,111,190,225,255,239, 35,199,198, 0, +216,219,148, 94,247,224, 78,117, 76,214,178, 86, 14, 47,168,137,156,178, 58,208,245,117, 39, 95, 8, 44, 45, 49,112, 86,244, 95, +105, 88,137, 66,161,240,212,136, 17, 35, 6,207,153, 51,135,147,159,159,127,154, 16,210,131, 82,106,212,108,170, 21,137, 63,255, +244,243, 40, 59, 59, 75,138,184,179,199,208,187,211, 88, 88, 8,185, 40,150,107, 65, 8,112, 63,229, 16, 8,177,199,221,180,124, +244,234,104,141, 55, 6,249, 91, 30, 57,112,127, 14, 94,248, 7,189, 82, 53,165,165,165, 40, 44, 44,132, 78,167,131, 78,167,195, +168,209,163,177,115,199, 14, 84, 85, 85, 65,169, 84, 66,163,209,128, 97, 24,112, 56, 28,156,141,143, 67,206,211,251, 8, 15, 11, + 67, 99,148,236,246, 68,202, 39,132, 92,123,248,240, 33,238,223,191,143,103,207,158, 65, 44, 22,195,213,213, 21,203,150, 45,131, + 90, 93,189, 71,217,232,209,163, 35, 0,220,251,171, 47,212, 19, 96,107, 6,195, 44, 28,124,248,176,243,229,195,135,217,107,199, +143, 63, 19, 85, 84,108, 49,229, 94,129, 0,163, 86,127,243, 73,123,169, 84,138,103,217, 27,224,231, 39,192,236,153, 14,136,249, +186, 8, 0, 48,253, 51, 15,116,237,226, 8,121,217, 1, 56, 58,207,199,198,141, 51,124, 38, 77, 90, 55, 1,192,118, 35,170, 23, + 30, 59,118,108,164,175,175,111,139,196,196, 68, 34, 20, 10, 33,145, 72, 32,145, 72, 32, 22,139, 81, 88, 88,136,140,140, 12,186, +122,245,234, 92, 84,155, 22, 27,149, 26,243,224,224, 89,131,221, 78, 61,188,189,163, 87, 11,238,211,164,145,211,122,102,222,189, +150, 88,241,219,217,203,203,245, 42,113, 78,217,179,115,115,219,116, 77,116,156,250,197, 82,124,191,122, 49, 30, 94,191, 84,226, +226, 41,223, 36, 33,234,237,221, 7, 54,192,146,245, 89,202,155,186,232, 29,253,148, 73, 35,109,143,187, 92,153,114,146, 71,100, +207,139,110,175, 65, 70,162, 82,212,182,211,248,118,222, 28,205,133, 11, 23, 36,189,123,247,134, 74,165,170, 99, 38,119,237,218, +197,234,245,250, 6,205,209, 90,173,246,171,220,220, 92, 55,165, 82,137, 55,223,124,115,250,154, 53,107,164,181,123,212, 49, 12, +243, 18,147,181, 98,253,206, 51,159,127,181,233,226,153,189, 95,187,175,136,254,160,207,184,105, 43, 47,162,145,125, 36,121, 28, +206,212,227,135,183,185,138,237,116,144,216,191, 1, 85,129, 18, 15,183,126, 4,133, 92,133,174, 43,150, 2, 16, 66,163,227, 96, +203,144, 81,224, 59,184, 99,241,228, 15,220, 23,108,249,233, 19, 0, 27,204,243,122,179,152,197, 44,245,196,133, 16, 18, 15, 0, +209,209,209,243, 99, 98, 98, 82, 8, 33,241,148,210,168, 26,160, 19, 79, 41,141,170, 77, 83, 51,102,191,114, 94,155,182,254,121, +253,227,121,243,230, 5,198,198,198,174, 10, 11, 11,219,123,229,202,149,167,198,128, 22,170,247,127,222, 90,127, 43, 30,160,102, +213, 97,100,100, 36, 49,252,126,137,209, 98,217, 75,143,159,102, 42,222, 24,208,221, 35, 62,225,222,205,247,223,143,236, 63,102, + 72,239, 65, 25,217,197,247,125,188, 92, 29, 83, 82,238, 89,179, 44,123,201,148, 82, 18,137, 68, 81,253,250,245,227,149,150,150, +194,194,194, 2, 50,153, 12,185,185,185,208,106,181, 80,149,151, 65, 93, 94, 6, 85, 89, 41,180,229,165,120,114,235, 6,130,125, +188, 69, 53,206,242,198, 0, 80,131, 76,149, 33,179, 37,180,178,130,200,202, 10,164,153,102, 67, 66,200,219,118,118,118,215, 8, + 33, 11,107, 6,165,169,115,231,206, 45, 98, 89, 22, 43, 87,174,180,182,180,180,140, 35,132,136,140,233,177,114,226, 70,133,117, + 12,226, 60,200,184,139,158, 33, 19,209,174,205, 91,200, 40, 80,162,168, 66,139,194, 50, 45,186,246,254, 14,173, 66,150,162,101, +199, 24,220,207, 42,129,123, 11, 95, 14,120,162, 38, 55,127,206,201,201,121,233,124,239,158, 61, 80, 40, 20,240,241,241,193,216, +177, 99, 49,119,238, 92,140, 29, 59, 22,238,238,238, 24,247,206, 80, 44, 94,188, 24,207,159, 63, 55,150, 85,117,187,118,237,212, + 94, 94, 94,106, 47, 47, 47,181, 86,171, 69,101,101, 37,202,202,202,234,151,247,140,102,191, 37, 46, 46,243,220,220,220,238,186, +184,184,164,136,197,226,147,119, 8,121,160,242,242,114,233, 49,108, 24, 9,120,231, 29,110,150, 68, 66, 18, 0, 75, 83,116, 57, +218,243, 35,251,246, 27, 44, 44, 43,221, 6,160,154,164,250,224,125, 39,252,153, 16,136,203,127,116,193,103, 83,125, 64, 56, 98, + 16,142, 16,138,170, 11,232,222, 45, 76, 96,107, 75,162,140,212,245,123, 0,238,244,232,209,195,125,218,180,105, 68, 36, 18, 97, +250,244,233,218,201,147, 39, 63, 26, 59,118,236,163,243,231,207, 51, 94, 94, 94,104,217,178, 37,105,217,178,165, 27,128, 59, 53, +247, 52, 41,214, 62,100,133, 90,123,255, 15, 91, 95,233, 83, 6,142,225,149, 58,209,168,197,107,242,138,151,111, 74, 95,155,241, + 80,225,253,240,250,165,226, 71,201,199,217,140,155,191, 23,229, 61,170,240, 94,190, 41,125,237,188,239,115, 27,124,169, 19, 18, +192, 30,138, 79,208, 42,170, 20,188, 97, 67,250, 42,166,124, 56,166,157,189,101,224, 46,180,120, 35,164,149,167,199,184,197,171, + 54,106, 39,127,242,185,246,231, 95,182,209,138,138, 10,200,229,114,108,220,184, 81,127,252,248,241, 92,134, 97, 62,111,108, 14, + 4, 0, 58,157, 14, 83,166, 76,145, 90, 91, 91, 35, 39, 39,167,142, 17, 5,128,124, 89,241,189,203, 55,147, 31,204,250,215,232, +136, 42,181, 90,125,230,247, 91,247, 3,124,189, 60, 8,161,141, 46, 68, 17,242,249, 3,187,116,239,206,165,180, 12,132,231,137, + 39, 59, 86, 67,254,188, 4,242,194, 18,112,249, 82,232, 33,130,142, 21,194, 54,184, 27,210,110, 38,162,133,147, 11, 79,196,231, +155,183,206, 50,139, 89,254,161,210, 20, 22, 49, 4, 75,177,177,177,171,154,186,110,240,173,169,119, 94, 7,164,234,131, 48,195, + 99, 0,136,141,141, 93, 69, 41,141,186,114,229,202, 30, 0, 74, 19,241,194,199,181,223,134, 81,226,141,162, 14,174, 74, 19, 51, +103,238, 66,216,217, 72,108,186,117,242,117, 61,122, 58,225,214,165, 43,183,238,183,106,233,232, 68,117, 26,187,111,214,125,239, + 65, 20, 74, 83,157,193,253, 29, 29, 29,161,213,106,241,248,241, 99, 60,123,246, 12, 90,173, 22,250,170, 42,168,203,202,160, 42, + 45, 5, 83, 85, 1, 1,195, 64, 41, 43,132,131,133, 24,120,177, 34,209,216, 3, 54, 8,180,106,191,197,214,214, 16, 89, 89,131, +195,231, 55,104, 86,108, 68,103,231,110,221,186,237, 79, 78, 78,238, 62, 96,192,128,229,132, 16, 27, 74,105, 86,110,110,110,255, + 69,139, 22,169, 93, 92, 92, 48,101,202,148,246, 0, 38, 26, 5,153, 66,141,191,151,107,123,180,243,158,136, 86, 45,251,161,172, + 74, 7,153, 92,135,194, 50, 45,182,124, 23,134,131, 63,119,195,159, 7,123, 33,249,204, 64,148,233, 92, 97,233,254, 54, 40,163, + 9,108, 74,231,217,179,103,177,108,217, 50, 44, 95,190, 28, 43, 87,174,196,242,229,203,145,155,155,139,160,160, 32,100,103,103, +227,212,169, 83,200,207,207,135,163,163, 35,110,220,184,129,245,235,215,227,207, 63,255, 52,133,185, 51, 41, 13, 33,164, 89,182, +116,189, 94, 63, 41,127,216,176, 14, 5,246,246, 1,157, 58,117, 26, 60,125,250,116,239, 30, 61,122,212, 93,247,246,246,246,148, + 72, 36,207, 9, 33, 63, 19, 66, 58, 54,165,139, 5, 58, 57, 57, 5, 65,163,126, 80, 83, 87,124, 16, 34, 70,191,129,247,209,163, +215, 45,104,117, 2,112,136, 8, 28,142, 24,122,125, 49,236,236,220, 65, 41, 9, 50,146,197, 69, 50,153,204,247,220,185,115,156, +140,140, 12,136,197, 98, 0,200, 92,178,100,201,247,107,215,174, 77,117,112,112, 96,226,227,227,113,228,200, 17, 68, 69, 69,113, + 39, 79,158,236,219,178,101,203,205,198,158,123,241,183,121, 87,119,175, 59,245, 46, 95,103,215, 81, 44,105,213, 26, 85,150,111, + 79,237,227, 36, 5,128, 83, 79,158, 84, 56,123,202, 99,171, 42,238,102,219,122, 84,126,109,204, 17,158,210,197,236,237, 71, 15, +174,237, 62,124,186,188,176,160,148,223,169, 67,160, 50,102,217, 23,130, 86,173,219,126,179,120,238,191, 92,115,229,226,178,129, +211, 79, 61, 56,116,250, 70,229,248,247, 63,210,127,248,241, 52,213,169,211,103, 15,179, 44,219,161,177, 21,135, 44,203, 34, 63, + 63, 31, 41, 41, 41, 72, 79, 79,135, 76, 38, 67, 81, 81, 17, 42, 42, 42,234,204,141, 22, 21,242, 19,223,255,122, 60, 73, 42,145, + 88,116,239,224,235,121, 61, 49,181, 80, 42,145, 88,248,182,246,108, 71,200,210, 6,251, 17,134, 97, 58,136, 45, 36, 0, 8,202, +146, 47,161,178,180, 18,149,101,149,168, 40,169,132, 90,203,133, 74,205,129, 82,195,129, 87,196, 27,168,172, 82,161,178,184, 28, + 44,195,132,152,135, 27,179,152,197, 44, 77,140,203,241,209,209,209,243, 77, 76,110,178,121,179, 62,240,138,142,142,158, 79, 8, +137,159, 55,111, 94, 32, 76,240,105,166,148,110,173,255,169,189,102, 52,188, 67, 81, 81, 90,165,181, 83,192,136,153, 95,126,117, +106,207, 47,223, 57,171,213,138,108, 7, 59, 75,198,210, 66,232,248,225,148,149,168,168, 44, 29, 94, 89, 98,250, 42,169,210,210, + 82, 60,125,250, 20, 18,137, 4, 2, 62, 31,140, 82, 9, 70, 89, 5,101,105, 49, 56, 90, 53, 4, 12, 3,123, 11, 9,188,220, 93, +209,202,197,213, 36,157,143, 47,252, 86,231,248,110,104, 46, 92,221,205, 31, 66,169, 37,132, 86,150,248, 52,254,119, 0,128, 64, + 32, 0, 22, 45, 55,165, 50, 29, 91,180,104,113,108,247,238,221, 2,153, 76,134, 59,119,238, 36, 81, 74,203, 9, 33, 86, 0,216, +251,247,239,159, 75, 78, 78,142,242,245,245, 5, 0, 31, 99,250,228, 69, 28, 70,167,167,200,121,158,137,140,103,137,176,183,105, + 3,190, 69, 59, 20,150,105, 33,146,180,129, 78,253,194,250,168,146,103, 65,169, 53,109, 97,164, 70,163,129, 94,175,135, 94,175, +135, 70,163,193,199, 31,127,140,203, 87,174, 96,239,145,243,120,250, 36, 13,237, 91,187, 98,194,132,241,232,214,173, 27,174, 92, +185,210,164,174, 73,157,136,110, 65,111,240,214, 13,230, 64,104,233,160, 14,157,123,230,186, 41, 96,139, 82, 74, 76, 40,207,181, + 81, 81, 81,109,211,170,170,144,242,224, 1, 6, 44, 89, 2, 0, 56,121,242,228, 75,207, 50,107,214, 44, 97,106,106,234,135,183, +110,221,250,144, 16,178,142, 82,218,176,179, 57, 5, 78,156,184,138,127,253, 43, 21, 50, 89,181,191,246,190, 61, 47,112,105,198, + 83, 45,222,140,172,182,104,217,218,218, 98,221,186, 32,147,202,147, 97, 24,108,221,186,181,206, 92, 8, 0, 60, 30,175,199,172, + 89,179, 70, 52,148,190,109,219,182, 2, 99, 58,103,141,246, 16,223,201,146, 76,130,163,223,136, 0, 0, 32, 0, 73, 68, 65, 84, +181,105,219, 42,208,218, 49, 24,197,186,196,160,196,220,252,207,102,141,246,216,176, 46,238,153, 74, 66,212,219, 9,147,211,146, + 39, 86,237, 48, 37,143, 79, 78,109,212,216,182,122,127,199,115,153,124,193,180,143,222,115,176,182,117,174,250,249,251, 24, 59, + 14,151, 67,143,221,210,150, 5,122, 59,216,190, 29,250,109,229,191,102, 46, 74,212,232,115,166, 33,231, 88, 90, 83, 33, 46, 24, +134, 65, 94, 94, 30,100, 50, 25,178,179,179, 81, 84, 84, 84,243,238, 23,189,178,114,181,153, 29, 34,148,217,217,200, 58,252, 51, + 90,141, 31,143,174,203,151,129, 97,121, 80, 42, 24,172, 11,239,143,210,114, 37,212, 44,129,123,231,112,124,116,242, 15,112, 40, + 3,108,217,100, 30, 73,204, 98,150,127,168,152, 18,222,161, 22, 16,197,196,196, 68,253,221,255,111, 8,182, 98, 98, 98, 82, 98, + 98, 98, 76,254,175,250, 38, 67,195,115,163,225, 29, 0, 64, 46, 75, 77,119,240, 10,206,171, 82, 86, 89,184, 56, 59,169, 45,196, + 34,182, 92, 94,193, 77,188,151,164,173,204,127,252,176, 25,207,113, 63, 57, 57, 57, 40, 47, 47, 15,217, 89, 89,208, 43,171,192, + 81,107, 64, 85, 10, 12,232, 25, 14, 49, 0, 49,135, 64,192,106,193,227, 10, 81, 81, 41, 7,128,251, 70, 7, 71,157,238, 21,102, +139, 16, 2,161,149, 21,132, 82, 41,132,150, 86, 47, 49, 92,166, 48, 54, 34,145,104,119, 92, 92,156, 91,139, 22, 45,176,108,217, + 50,120,120,120,248,117,232,208, 65,209,171, 87, 47,137,139,139, 11, 2, 2, 2, 16, 30, 30,142, 83,167, 78, 1,128,209,152, 82, + 58,189,248,238,195, 76,244, 40, 42,185,130, 63,126,255, 17, 26,165, 26,157, 34,126,132,150,215, 10, 78,129, 75,193, 62,222, 5, +197,243,163,213,236,129,235, 16, 60,203,206, 4,225, 10, 83, 76,101,158,106,143,147,146,146,176,231,104, 2,220,188,252,145,253, +232, 1, 30, 92, 60,135,203, 78, 14,240,242, 15,168, 51, 3, 53,154, 71, 6,188, 21,155,234,194, 59,136, 74, 74, 74, 68,246,246, +246,234,218,178,115,115,115,251, 43, 96,235,189, 57,115,230,160,140,207, 7, 34, 35, 33, 72, 79,135, 86,171, 69,104,104, 40,186, +118,237, 10, 0, 8, 13, 13, 5,143,199, 67,112,112, 48,220,221,221,177,105,211,166,247,208,200,170, 62, 14,193, 29,189,190,216, +207,219,219,187, 14,104,237,216, 41, 67,226,173,129, 32, 16, 98,227,247, 47,162, 57,120,122,122,226,121,126, 58, 8,161,201, 70, +242,184,220,213,213,117,145,155,155,155,247,218,181,107,185, 98,177, 24,159,124,242, 73,155,202,202,202, 86, 53, 84, 50,230,205, +155, 87,205, 82, 45, 94,140, 37, 75,150, 64,173, 86, 43, 26, 83,182,115,125,176,123, 97, 9,251,161,139,107,139,225,125, 29, 91, +117,232, 55,104, 0,218,248,246, 67,191, 65,217, 0,176,202,158,151,249,206,234,133, 65,135, 29, 91,218,111,251,237,244,217,197, + 61, 35,250, 45,136,158, 98,183, 34,118, 75,169, 81,159,199,242,172,237, 21, 15,133, 99,214,127,183,121,231,250,175,230,205, 16, +103,203, 52,165,185,165,180,210, 82,196,179,244,113, 33,150,159,125,185,252,105, 94, 94,250,108,228,156, 54,186,210,146,101, 89, +164,167,167,215,249,244,169, 84, 42, 84, 85, 85, 33, 39, 39,167,174,205, 40,165,214,111, 78,123,127, 72, 72,149, 82,169,184,126, +239, 81,246,194,233,227,194,170,148, 74,197,163,140,236, 52, 74,191,109, 16,141,113, 56,156,123,138, 10,197, 0, 69,153, 10,178, + 59, 15,225,209,223, 11, 58, 61,129, 70,207, 64, 86, 92, 1,181, 30, 96, 56,124, 4,190, 51, 1, 12,225,161, 40, 47, 23, 28, 46, + 55,201, 60,220,152,197, 44,255, 88, 49, 26,222,129, 16, 18, 31, 22, 22,182,215,144,117,170, 61, 6,160, 6,208,148, 43,143,204, + 16, 76,213,154, 19, 27,251,159,122,122, 77,157, 96,190,226,163,101, 52,188, 67,205,141, 36,164,131,151,251,234,197,227, 60, 88, +189,190,125, 97, 81,129,158,199, 19,241, 91,218, 40,243,155, 83,130,106,181, 58,254,220,185,115,195, 6, 14, 28, 40,122,116, 47, + 9,154,242,114,104,202,203,192,103,245,176,151,116, 1, 71,171, 6,209,104,208,194,143,133,170, 66,130,132,203,201, 58,181, 90, + 29,111, 42,208,226,112,185, 47,251,101, 89, 90, 66,100,101, 13,145,165,101,125,211, 34, 49, 82, 80, 22, 67,135, 14,237, 31, 26, + 26, 10, 74, 41,182,110,221, 10,173, 86, 43,212,106,181,208,104, 52,208,106,181,144,203,229,216,185,115, 39,126,248,225,135,203, + 0,126, 53, 58,152,233, 53,231,206,156,189,208,237,131,113, 81,252,147,241,235,160,215, 48, 80, 18, 15, 84, 85,233, 80,169,177, + 0,227, 48, 30, 40, 56, 1, 46, 79,140,176,224, 54, 56,122,224,144, 22,122,245,121, 19, 81,248, 75,172, 80, 78,118, 38,158, 61, + 73,131,165,252, 57,156,172, 45,160, 72, 79, 67,167, 9, 19, 95,139,157,104,217,178, 37, 88,150, 69,223,190,125,235,156,171, 95, + 23,108, 21, 23, 23,227,248,241,227, 8, 13, 13, 69, 68, 68, 4,114,115,115,145,158,158,142,183,222,122,171, 46, 77, 82, 82, 18, + 18, 19, 19,225,227,211, 52, 73, 88, 84,162, 59,249, 44,231,206,232,183,223,126, 91,112,237,218, 53, 80, 74,225,235,107, 13,107, + 43, 41, 8, 71, 4,127,127,103, 0,213,115,128, 62,125,250, 64, 46, 79,215,151,150,210,147, 70,202,113, 55, 33,228,136, 70,163, +121,220,187,119,111,247, 39, 79,158, 96,230,204,153,188,125,251,246,213, 82,201,136,142,126,121, 49,133, 82,217,184,233,190,125, + 7,191, 47,218,232,237, 34,196,146, 86,173,173, 29,131,209,198,183, 31, 0, 96, 96,212, 7,104,211,214, 19,242,162,187,173, 85, +202,204,225, 2, 94,169,221,221,141,185,169,146,200,160,247, 85,133,191, 63, 2, 96, 74, 0, 96,170,124,180,175, 32,155, 63,126, +255,145, 99,167,166,188, 21, 53,148,175, 99,244,250, 32, 47,190,109,220,225, 19,133,185, 89,217,223, 34,251,116,242, 11,254,175, + 73, 22,143,145,203,229,144, 74,165, 72, 78, 78, 86, 71, 70, 70,138, 56, 28, 14, 30, 63,126, 92, 7,180,156, 29,237, 3,122,116, + 13,242, 91,177,126,231, 25,169, 72, 36, 26,212,167,139,127,234,163,172,103,148,146,204, 70,217, 86,157,238,236,189, 59, 73,125, +157,220,219,114,211,127,191, 6,135, 94,111, 65,173,230, 64,169, 97,161,214, 3,122,174, 0,110, 29,187,195,214,199, 31, 20,192, +205,107,151,117,106,157,238,140,121,172, 49,139, 89,254,209,172, 22,109, 10, 36,213, 28,151, 0,200,140,137,137, 41, 50, 96,155, +100, 0,146, 0,132,212,164,147,213,187, 79,134,234,213,131, 93, 13,244,200, 12, 0,151,225,177,166, 94, 26,147, 38,128,134, 62, + 90, 13, 2,173, 38,150, 84,194,209,209,209,185, 83,167, 46, 62, 63,253,178, 31,148, 82, 60, 76, 92,131,210,194, 7, 88,180,234, +170,143,135,135, 71,196,179,103,207, 18, 76,201, 4,195, 48,251,182,109,219, 54,187,123,231, 78,157, 90,123,120, 32, 41, 51, 3, + 2,202, 64,192, 48,224,104,213,224, 49, 26,120, 4, 49,224, 16, 75,228,229,149, 35,118,247,254,100,134, 97,246, 25,211,235,247, +214, 80, 44,123, 86, 14, 66, 8,214,134, 5, 65,104,101, 9,129,212, 18,159, 30,187, 80, 7,174,226,151,205,131,208,210, 18, 62, +221,141, 7,132,167,148, 42,172,172,172,110,221,187,119,175,107, 80, 80, 16,102,207,158,141,204,204, 76,176, 44,139,130,130, 2, + 85,126,126,126,174, 76, 38,203, 4,112, 24,192, 79,166, 68, 30, 23,168, 85, 27,226, 15,238,152, 22,214, 51,194,241,237,225, 63, +224,200,129, 89, 40, 43,151, 67,161,151,160, 74,165, 71,149,154, 11,123,135, 14,232, 30, 28,140,188,220, 66,164, 92, 59, 83,201, + 83, 43,214, 52,167,129, 18, 66,144,152,152, 8,111,119, 43,164,253,145, 0, 71, 11, 62, 66,220, 93,225,222,163,103, 93,124,169, +166,132,207,133,254,189,247,222,171,139, 12,255,198, 27,111,100,140, 31, 63,222,109,214,172, 89,248,229,151, 95,112,249,242,229, + 87, 28,180, 35, 34, 34,112,233,210,165,165, 0, 22, 27, 35,245, 52, 26, 13,252,252,252,112,243,230, 77,156, 59,119, 14,253,250, +245, 67, 68, 68, 4,238,222,189,139,223,126,251, 13,137,137,137, 32,132,192,193,193, 1,186,106,240,172,107, 76,153, 86,139,184, +175,191,217, 54,127,253,250, 31, 2,199,141, 27,135,131, 7,247,226,131,247,219,131,112, 68, 32, 68,132,161, 67,218, 99,217,242, +155,232,222,189, 15, 28, 29,249, 88,191,238,232, 83,165,146,217,105, 66, 49,174,248,237,183,223,220, 85, 42, 21,202,202,202,168, +165,165, 37, 41, 46,174, 94,209,218, 16,163,165, 80, 40,196,141, 41,186,119,251,254,154,178, 10, 90, 74, 43, 19,135,151,232, 19, + 59,244, 27,148,131,129, 81,239,227,108,252,175,184,112,230, 28,236,121,153, 25,144, 86,156, 42,202, 40,146,231, 87,249,110,246, +239, 60,153,251,172,234,204,230,233,111,219,113,221,220,216,184,232, 31,202,203,154,104,163,148, 16, 66, 74, 82,119, 29, 59, 76, + 49, 52, 60,172,123,219, 32, 79, 55, 97,105, 81, 33, 61,112,244, 84,178, 54,227,224,241, 90,128,101,108,151, 5, 74,233,178,232, +232,232,175,106,142,183, 47, 92,184,112,114,108,108,172,211,243,231,207,235,124,180, 10,139, 74, 46,132, 71,126,198, 20,151,149, +107,182,173,255,114,148, 68, 44, 18, 46,140,221,246,187,142,139,107,141,233,213,179,236,166,119,102, 46,154,241,232, 97, 98,139, + 86, 18, 33,142,126,185, 24, 73,191, 93,132,142, 35,192,191,206, 93,135, 90,203,160,172,168, 24,231, 63,156, 10, 75, 23, 59,252, +240,251,193, 2,150,101,127, 52, 15, 53,102, 49,203, 63, 87,154,192, 34, 13,197,216, 43, 48, 33,221, 77, 19,244,252,101,169,207, + 98, 25,138, 73, 75,240,138,138,138, 10, 47, 93,186,142,223,227, 87, 32, 33,126, 5, 82, 18,147,144,151,171, 65,110,129, 10,214, +214,214, 87,155, 24,248, 7,212, 31, 28, 20, 10,197,136,133,139,190,122, 46,150, 88,160,119,255,254,112,117,114,134,133,128, 15, +174,158, 5,151,240, 81, 41,179, 69,218, 93, 5,230,110,219, 85, 88,169, 80,140,168, 63, 72,212,215,105, 8, 50, 8, 33, 16, 89, + 91, 65,104,105, 5,145,149,245, 75,102, 68,177,181, 53,196, 86,214,224, 9,133, 13, 57,205,191,162,179,178,178,114,228,168, 81, +163, 74,203,203,203, 49,121,242,100, 36, 36, 36, 36,158, 57,115,198, 58, 41, 41, 73, 82, 88, 88,216,150, 82,250, 6,165,116, 75, + 99, 32,171,190,206,146,146, 39, 21, 84,175, 30, 19,243,213,231, 74,149,222, 1,163, 39,238,131,148,147, 3, 61,195,130, 2,112, +183, 23,162,199,128,229, 40,212,132, 99,223,230,149, 10, 86,171, 26,103, 24, 67,171,190, 78, 74, 41,117,113,113,121,165, 12,206, +157, 59,135,209,163, 70, 98,208,240, 97,112,106,237, 13,231, 1,111, 97,208,228,127, 97,243,230,205,224,112, 56,112,116,116,124, +137,225, 48,212,185, 61,145,242,119,223,165,100,247, 93, 74,126,189, 77,121, 0, 38,236,218,181,235,235,144,144,144,139,151, 47, + 95, 94, 3, 96,140,225,127, 25,228,101,137, 33,155,213, 72, 29, 45,152, 49, 99,134,242,209,163, 71,144, 74,165,208,235,245,184, +124,249, 50,126,248,225, 7,172, 93,187, 22,137,137,137,112,112,112,128,143,143, 15,212,106, 53,110,222,188,169, 4,176,160,137, +182,196,202,100,250,145, 27, 55,198, 22, 71, 69,245,194,182,109,223,195,213, 53, 28,124,158, 43,120,124, 39, 72, 45,253,240,243, + 79, 95, 99,240,224, 78, 56,118,116,127, 73, 81,177,126,100,253, 40,238,141,228, 83,117,253,250,117,108,222,188, 25,163, 70,141, +202, 29, 61,122, 52, 83, 94, 94, 94,199,104,213,238,198,190,164,198,199, 76,173, 86,139, 26,211, 57,249,203,123,185, 95,172, 72, + 94, 86,240, 60, 55, 52,225,226,213,247, 46,156, 57,135,167,143, 46,224,194,153,115,248,227,194,149,232,130,231,185,161,157,186, +181, 19,140,152, 60,237,139, 29,135, 14,114, 45,173,221,176,227,208, 65,238,216,207, 62, 95,217,101, 80,191, 5,198,218,124, 77, + 61,210,202,194,130,121,171,214,124, 87,169,215,170, 56,171,191,221,148,167,148,229, 47, 64,237, 82,204, 70,216, 44, 67,157, 10, +133, 98,139, 82,169,116, 87, 42,149,238, 42,149,106, 65,102,102,102,239,217,179,103,203, 24,134,169, 99, 75, 11, 83,142, 94,189, +255,199,175,171,156, 29,237, 36,225, 93, 3,219,175,219,114,224,247,236,156,130,127,215,198,208,106,164,142, 84,149, 74,213,200, + 97, 35,198, 87,149,149,170, 17,246,121, 52, 88,177, 37,212, 12,160,163, 92,232, 9, 15,247, 86,172,131,196,222, 10,187, 51,110, + 43,202,117,218,145,134, 49,180,140, 60,251,107,139, 89,167, 89,167, 89,231,127,167,206,255,205, 66, 8,113, 51,220,235,176, 38, +174,214, 11, 70,203,216,146,202, 22, 45, 90,244,126,123,232, 0,244,137, 90, 8, 74, 41, 30,220,254, 6,165,178,135,104,225, 42, + 66,122,182, 60, 12, 64,130,169,153,161,148,102, 19, 66, 66,103, 44, 88,120,104,244, 27,253,253,131, 90,183, 22,181,106,229, 5, +169,179, 51,138,138,100,248,243, 90,170,110,229,158,184,228, 26,144,101,202, 22, 60, 96, 89,182,218,201, 29, 64,255, 25,115, 65, +184, 92,160, 38,140, 67,237,192,216,186,107, 56, 8,143, 7,134,178, 80,171,213,212,132,124, 62, 35,132,140, 28, 55,110,220,249, +248,248,120,206,160, 65,131, 58, 30, 62,124,152,253, 43, 21, 81, 89,144,118,209,210,165, 93,212,202,121, 83,246,133,246, 27,102, +237, 27,216, 69,208,165, 21, 23, 90, 29, 65, 94,110, 22,226, 15,221,208,166, 94, 63, 35,167,122,213,152, 42, 89,211, 91,240,104, +181,218,236,182,109,219,186,108,222,188,185,206, 25,158, 97, 24, 20, 21, 21,225,234,213,171,232,208,181, 59,252,223,255, 16, 50, +153, 12, 27, 55,110,132,167,167, 39,134, 12, 25,130,146,146, 18,232,245,250,108, 19,235,138, 1,112,166,230,243, 18,160,173, 33, + 84,168, 49,179,161,143,143,143, 80,165, 82,117,116,115,115,227, 18, 66, 54,104, 52,154, 73,243,230,205,115, 91,181,106, 21,218, +183,111,143,162,162, 34, 72,165, 82,248,250,250, 66, 38,147,225,198,141, 27,140, 66,161,216, 12, 96, 25,165, 84,102, 36,127,143, + 9, 33,161,211,167,127,122,232,235,216, 41,190, 42,117, 31,161,189,125, 79, 80,170,135, 76,150,137, 10,249,101,237,242,101,191, + 62, 41, 40,212,141,160,148, 62, 50,177,154, 22, 79,155, 54, 13,168,217,130, 39, 61, 61,253,142,191,191,191,111, 99,140,150, 41, +178, 46,238,153, 10,192,158,213, 51,195,103,202,139,238,250,218,243, 50, 51, 66,131,216,141,235,226,158,169,150,206,180, 93, 81, +148,153,144,150, 95,117,102,243,142, 67, 7,185, 19,135,143,100, 60, 44, 31, 69,139,157,233,129,126, 67,140,214, 15,237,216,177, + 99, 75, 66, 74,218, 20, 22, 63,188,245,193,228, 41,239,216, 8,148, 39, 67, 60,138,125, 56,158,157,196,137,137,137, 25,166,238, + 25, 90, 79,111, 26, 33,164,247,188,121,243,206, 80, 74, 95,242, 77, 40, 44, 42,185, 16, 22, 53,141,150,149,149,223, 41, 76, 61, +122,207, 4, 93, 55, 8, 33,253,131, 58,116, 58,248,245,170, 88,151, 62, 51,102,243,210, 46,254, 14, 48, 58,100, 37,252, 14, 70, +164, 97,215, 93, 57, 91, 80,174,213, 14, 55, 71,133, 55,139, 89,204,108, 86, 83, 88,228,191, 61,251,245,157,225, 81,179,247, 33, +207,148,187,159, 61,123,150,224,227,237,241, 91, 90, 90,239, 55, 60, 61,156, 0, 0,233, 25,121,200, 45, 80,255,102,170,217,176, + 1,176,213,101,215,241,147, 99, 68, 34, 81, 20,169, 9,225, 64, 95, 99, 83,105,189, 94,255,172,117,235,214,141, 92,109, 56,212, + 19,195, 48, 5, 38,230,243,119, 66,200,120, 31, 31,159,216,172,172,172, 67,148,210,170,191, 90, 19,149, 5,105, 23,237,237,125, +188,175,156, 59,248,249,181,223,227, 7, 80,189,166, 3, 0, 16,158,176, 89,155, 74, 87, 86, 86, 78,249,228,147, 79,182,240,249, +124, 79,212,248,156,213,250, 96, 49, 12,195,213,106,181, 98,134, 97,184, 0, 8,135,195,209,243,249,124,213,161, 67,135,244,122, +189, 62, 91,173, 86, 79,249, 11,244,104,179, 94,128,147, 39, 79,182,178,179,179,123,131, 16, 50,138, 82,234, 87, 81, 81,161, 94, +180,104,209,149,184,184, 56,121,235,214,173,223,140,140,140, 36,246,246,246,184,121,243, 38, 45, 46, 46, 62, 0, 96, 1,165, 52, +189, 25,249, 73, 39,132,132, 76,249,215,143,239,218,219,111,137,164, 20,255,143,189,235,142,139,234,104,187,103,238,221,190,203, +194,238,210, 23,176,128,130,136, 5, 16, 37,198, 18, 81, 19, 19,177, 71, 44,177, 71,163, 38,209, 24,163, 6,141, 53,182,196,215, +196, 18,141, 93, 99,141, 61,138,216,162,198, 22,163,198, 18, 43,138,130, 40,189,215,133,237,119,190, 63,100, 9, 33,128, 11,234, +251,198,124,123,126,191,203,101,119,239,158,157,153, 59,119,230,204, 51,207, 60, 19, 8, 10, 66, 24,220,204,207,231, 14, 23, 23, +155,183,149, 10, 70,107,249, 76, 21, 44,105,115,111,221,186,181, 9, 0,191, 50, 31,173, 26, 65, 90,116, 80, 91,146,240, 46,177, + 43,222,255,237,178, 36, 45, 0,204, 90,146,151, 15, 96,253,248,222, 42,238,238,213,245,139, 60,236, 99,167, 44,219,159,179,209, + 26,186,224,224, 96, 31,134, 97,250, 3,104,234, 34,202,107,232, 44,204, 55, 19, 66,195, 8, 97,156, 0,220, 8, 8, 8, 56, 4, + 32,169,150,247,249, 62,128,186, 21,223,207,184,125,224, 55, 0,191,213,144,235, 50, 33,164,225,167,147, 38,126, 36,228,243,223, +132,217,220,124,238, 79,187,169,109, 83,105, 27,108,176,225, 95,102,213,250,160,178,247,121,214, 18, 60,140, 75,234, 2, 0,190, +190,190,244,193,131, 7, 53,238,112, 43, 27,141,227,105,196,247, 31,159,135, 39, 43, 43, 43,228,101, 22, 28,165,116, 7,128, 29, + 47,146,179, 84, 72,125, 89,122,212, 54, 93, 55, 1,132,254, 47, 43,149,197,170,133,167,155, 48, 87,138,183,222,122,235,177,193, + 96, 56, 1, 32,145, 16,162, 0,144, 99, 48, 24,142, 25,141,198,116, 66, 72,200,183,223,126,107,137,124, 63,151, 82,122,165,150, +233,224, 0,108, 47, 61, 94,116, 30,183,171,213,234,137,142,142,142, 13,180, 90,173, 80,171,213, 10,202,143, 1, 36, 18, 73,166, +181, 92, 10, 57,249, 65,192,203,117, 84,200,201,223,132,148,202, 3,123, 75, 52,183, 26,169, 60,176,215, 90,190,107,215,174,197, + 5, 5, 5,109,101, 24,166, 62,165,212, 21,160, 14,148, 34,147, 82,154,197,227,241,146,239,220,185,147,252, 79,105,128, 74,133, +212,226,210,195, 6, 27,108,176,225, 95,133,234,124,180,120, 53, 37,139,141,141, 37,182, 34,181,161,188,216,170,238,243,132,132, + 4, 29,128, 11,165, 71,197,239, 94, 1,208,253,159,158,199,148,148,148,224, 23,193, 51,114,202,205,100, 0, 19, 66, 42,217,218, +121,214,242,156, 66, 0,147,195,122,212,140,243,250,245,235, 79, 0, 60,177,213, 68, 27,108,176,193,134,255, 29, 42,179,102, 89, +189,215,161, 13, 54,216, 96,131, 13, 54,216, 96,131, 13, 85,195, 34,170, 42,139,163, 69, 0,116,174,226, 75, 86,135,174,175,205, +234,131,103,241,219, 56,109,156, 54, 78, 27,167,141,211,198,105,227,252,247,113,254, 91, 81,153,200, 2, 0, 82,139, 69, 73, 53, +249,209,206, 47,186,192,109,156, 54, 78, 27,167,141,211,198,105,227,180,113,254,251, 56, 95,117,145, 85,137,224,180, 77, 29,218, + 96,131, 13,255,191,177,103,207, 30,171, 54, 21, 29, 48,101,125, 55, 59, 59,229,140,162,130,252,175,126, 92, 60, 98,191,229,253, +190,125,251,154,109,165,104,131, 13, 54,212,202, 25,222,199,199, 43,128, 49,115,109, 40,101, 88,202, 80, 35, 41, 40,217,249, 48, + 39,231, 47, 97, 7,234,212,169,163,224, 51,232, 78, 40,149, 17,194,153, 57,150,249, 53, 46, 46,241, 78, 13, 20,160, 80,169, 84, +126, 44, 16, 8, 58,235,245,122, 79,134, 97,146,116, 58,221,137,226,226,226, 21, 21, 3, 23,254, 47,209,168, 81,163,129,167, 79, +159, 86,180,109,219, 86, 39,145, 72, 76, 37, 37, 37,188,163, 71,143,138,222,121,231,157,188, 7, 15, 30,212,106, 69,162,135,135, + 71,199,245,235,215,123,119,233,210, 5, 13, 27, 54,212,244,239,223, 95,208,186,117,107,193,200,145, 35,227,147,147,147, 79,213, + 80, 73, 7, 16, 66,182, 16, 66, 88,142,227,134,148,174, 72,124, 25,138,157, 97, 24,102, 52, 33,164, 55,165,212,135, 16, 18, 71, + 41,221,207,113,220, 26,107,162,227, 87,194,247, 46,128,174, 12,195, 4, 3, 0,199,113,215, 0, 28,166,148,238,125,142, 52,190, + 52, 78,169, 84, 26, 4, 0,197,197,197,215, 95, 20, 39, 33, 36,168,244, 33,173, 21, 39, 33,100,184, 68, 34, 25, 5, 0, 37, 37, + 37,235, 40,165,155,106,156,152, 53,141,105,240,156, 24, 0,192,181, 89,254, 0,128, 26,189, 30,125,151,212,228,183, 42,227,171, + 17,199,223,203,160,235,160, 65,131, 22,108,219,182,109, 22,165,244,192,203,168,251,110,110, 94, 43,190, 89,182, 86, 61,225,227, +247,191,194,211, 29, 33,170, 69, 19, 66,222, 20,178,108, 15,189,217,124,238, 14,176, 27, 0, 79,165, 82, 13, 20, 10,133,237,245, +122,189, 59,143,199, 75,213,235,245,103,243,243,243,119, 80, 74,141,207,157,192, 24,162, 52, 20,195,141,112,127,238,243, 70, 25, +232, 4, 82,164,193,159,230,254, 3, 70,251, 12,158,198,219, 49, 2,216, 80,155,112, 30, 44,203, 78, 80,171,213,189, 11, 10, 10, +138, 89,150,165, 79,105,201,211, 63, 0, 24,134, 33, 28,199,101,100,103,103, 15,249,127,100, 69,169, 91, 90,174,245, 74,223,226, + 3,112, 5,112, 3,192, 4, 74,105,145, 77, 2,253,215,238, 69, 69,139, 86, 52,165, 52,181, 76,104,149, 11,119,223, 33, 60, 60, +252,140,143,143, 87, 64,223, 94,125, 22,140, 25, 61,150,176, 44,131, 91,183,111,243,222, 27, 50,252, 45,149, 74,229, 97,167,211, + 53, 6, 33, 92,177, 88,124,203,104, 52, 36,239,222,177, 77,238,223,168,145,217,108,230,176,122,205,170,119,124,124,188,166, 89, + 35,182, 8, 33,126,110,110,110, 91, 34, 35, 35,221,122,244,232,193,186,185,185, 33, 33, 33, 65,241,227,143, 63, 54,250,238,187, +239,250, 17, 66,134,148,198,242,169,105,102,219,185,169,152,183,228, 18,210, 9,133,102, 20, 26,113, 50,173, 4,199, 41,165,231, +106, 91,128,197,197,197,227,138,139,139, 67, 91,182,108, 73, 55,108,216, 64,134, 13, 27, 70, 9, 33,164,164,164,228, 7,212, 50, +244,131, 76, 38, 91,217,165, 75, 23, 95, 95, 95,223,184,135, 15, 31,118,221,181,107,215,225,161, 67,135,250,200,100,178, 88, 0, +126, 53,164,219,148,157,157, 29, 88, 82, 82, 2, 79, 79,207, 13, 0, 90,188,132, 74, 68, 88,150,221,239,225,225, 65, 23, 45, 90, +116, 32, 48, 48,208, 53, 39, 39,199, 52,121,242,228,206, 23, 47, 94,124,135, 16,210,195, 90,177, 69, 8, 81, 18, 66,214,184,185, +185, 57,125,245,213, 87, 15, 66, 66, 66,110,136, 68, 34, 97,108,108,172,116,226,196,137,159, 50, 12,211,143, 82, 58,154, 82,235, + 59, 8, 11,167,135,135,135,211,130, 5, 11, 18,130,131,131,111, 9, 4, 2, 65,108,108,172,236,243,207, 63,159, 80, 91, 78,134, + 97, 86,183,110,221, 90, 57,107,214,172,187,141, 26, 53,186,192,178,172, 48, 41, 41,137,153, 61,123,246,199, 44,203, 70,112, 28, + 55,166, 54,233,116,117,117, 85,206,158, 61,251,110,235,214,173, 47, 10, 4, 2,193,189,123,247,152,200,200,200,143,107,146, 78, + 71, 71,199, 48, 71, 71,199,181,105,105,105, 60, 0,112,119,119,111,213,160, 65,131,239,202,239,105,105,113, 13, 48, 26,141,133, + 90,173,118, 80,118,118,118,165,129,112,135, 77, 93,222, 29, 0,190, 51, 88, 94, 63, 61, 63,235, 53,176, 58,202,154,124, 7,187, + 19, 10, 0, 3, 63, 91,220,235,233,249,233,251,223,104, 0, 30,143,199,109,113, 39,244, 90,170,245, 33, 99, 8, 33, 61, 59,118, +236, 56,251,212,169, 83,171, 58,116,232,240,249,214,173, 91, 93, 18, 19, 19,191, 38,132,120, 13, 24, 48, 96,216,201,147, 39, 23, +102,102,102,238,121, 81,245, 95, 40, 16,137, 8, 67, 32, 17, 75,237,173,185,158,207, 48,221, 46,244,236, 57,106,221,189,123,193, +223,197,196,120,107,220,221, 67,199,143, 31,239,218,167, 79, 31,198,203,203, 11, 15, 30, 60,112,220,186,117,107,227,117,235,214, +245, 38,132,124, 66, 41,125,252, 60, 34, 75,147,135,102, 58, 61,130, 41,133,226,207, 50, 66,158,200,128,107,178, 24,114,243, 31, + 32,182,102,110,218,180,105,214,131, 7, 15,176,112,225, 66, 0, 88, 81,195,246,103, 98,239,222,189,195,247,237,219, 39,217,189, +123,183,164,101,203,150,112,115,115, 67,233, 96,170, 44, 48,181,183,183,247,255,171,206,221,209,209,113, 67,124,124,124,152, 76, + 38,251,203,251,113,113,113, 65,190,190,190,249, 0, 62,171,169,112,115,118,118,222,206,113,156, 46, 59, 59,251,125, 0,144,203, +229,219,100, 50,153, 50, 53, 53,117,218,203, 26,200,148, 41,147, 10, 90,228, 85,182,104, 85, 26,176,180,252,142,217,140,153,107, + 51,102,244, 88,210,127,224,128,180, 7,113,241, 28,143, 47, 28,120,244,216, 49,105, 64, 64, 0,163, 91,177, 2,166,204, 76, 24, + 63,253,244,245, 19, 39, 78, 24, 35, 6, 14, 46,225,179,100,147,143,119,125,233,206, 29, 63,186,237,219,187,167, 13,128, 59,207, +178,100,185,185,185,109, 57,125,250,180,135,183,183, 55,242,242,242,144,144,144, 0,141, 70,131,126,253,250,241,219,180,105,227, +209,183,111,223, 45,132,144,182,214, 90,182, 8, 33,174, 13, 61,121,135,190,153,217,207,239,157,183,218,200, 60,188, 26,128,166, +105,145,248, 48,166,229,161,211, 23,199,251, 42,152,251, 15,242,105, 55, 74,105,122, 77, 11, 48, 43, 43,107, 74,239,222,189,247, +134,133,133, 57,139, 68, 34,168,213,106,210,163, 71,143,140,148,148,148, 57,207, 33, 92, 80, 58, 10, 51,151, 63, 87,220, 30,200, + 74,120, 42,149, 74, 40,149, 74, 0,240,120,222,145,167, 66,161, 88, 33,151,203,251, 22, 20, 20,148, 48, 12, 67, 9, 33, 84, 38, +147, 73,148, 74,229, 31,119, 99,238,171,117, 58, 93,195,197, 75,215, 45,235,216, 46,208,254,231,159,127, 70,159, 62,125,232,241, +227,199, 71, 3, 88,101,229,111,172,233,221,187,119,241,140, 25, 51,180, 15,226, 18, 60,238,222,143, 35, 50,177,144,115,114,114, +226, 95,190,124,153,183,100,201, 18,241,236,217,179,215, 0,232, 91,131,116,175, 25, 48, 96,128, 97,210,164, 73,169,247, 30,196, +187,220,188,251,128,218,137,249, 38, 39, 39, 71,246,226,197,139, 92,109, 56, 25,134, 89, 61,101,202,148,130,209,163, 71,231,102, +231,228,187,229, 22, 20, 81, 17,159, 53,186,185,185,241, 14, 28, 56,160,219,190,125, 59, 51,106,212,168,213, 0, 34,106, 80,196, +171,123,244,232, 81, 24, 25, 25,153, 23, 27,247,200,237,230,157,251,144,138,248, 70, 87, 87, 23,246,247,223,127, 55, 44, 94,188, +152,153, 55,111,158, 85,233,148,201,100,155,119,237,218,197, 59,112,224,105,219,247,219,111,191, 49, 62, 62, 62,210,242,215,148, +104,117, 96, 8,144,149,149, 37,109,221,186,245,102, 0,158,127, 19, 65,115, 98, 48,108, 42, 48,110,220,184,212,154,214,151, 96, +247,241,184,246,140,240,183,220,234,198,116,224,103,139,123,241,120, 60,110,212,168, 81,105, 21, 63,215,106,181, 4, 64,143,224, + 26,136,173,174, 93,187,126, 17, 29, 29,221, 96,235,214,173,223,110,223,190, 93, 15, 0, 98,177,216,233,199, 31,127, 92,216,175, + 95, 63,244,235,215,111, 6,128, 23, 38,180,204,212,108, 0, 0,145, 88, 36,138,137,137, 33,254,254,254,213, 58,183, 26, 56,238, +202,186,123,247, 66, 62,244,247,111,153,195,113, 13, 5,239,188, 83, 52,113,226,196,172,130,130, 2, 36, 36, 36,192, 96, 48, 96, +216,176, 97,108,135, 14, 29,212,253,250,245, 91, 78, 8,121,151, 82,106,176,194,170,179,216,195,195,227,131,252,252,252, 34,139, + 85,167,113,125, 57,175,125,144, 73,212,188,161, 81, 40, 96, 77,130,238,159,114,228,248, 10,162,241,247,198,121, 0, 16, 20, 35, + 83, 0, 60,183,208,114,240, 34,222,102, 62,230, 57,215,147,190,153, 25, 87, 60,171,232, 49, 93, 81,157,197, 86, 38,147,245,210, +104, 52,123, 74, 59,103,191,110,221,186,225,226,197,139, 0,208, 6,192, 10, 66, 72, 71,134, 97,222,227, 56,110, 61,165,180,186, +173,220,198,247,236,217,243,205,125,251,246,201, 1, 96,207,158, 61, 48, 26,141,240,241,241,129, 64, 32,128, 80, 40, 4,159,207, + 47,219, 29,228,255, 19, 24,134, 17,221,184,113, 3,106,181,186, 98, 61, 1,128,246,181,160,156, 17, 23, 23,215,250,234,213,171, + 8, 11, 11,155,209,172, 89,179,183,207,156, 57,227,150,157,157,141,176,176,176,229, 0, 14,188,236, 60,149,215, 34,255,154,251, + 84, 65, 73,118,120,170,204, 24,150,101, 25,196,199, 37, 24,195,194, 58, 13,125,242,228,137, 93,104,104, 40,195,231,243,161, 57, +117, 10,218,223,127,135,157,157, 29,122,247,238,205, 63,123,246,172,189,189,157,253,200, 71,241,143, 10, 89,150, 1,165,204, 51, +125, 30,148, 74,229,199,211,166, 77,115,243,245,245,133,201,100, 42,139,104,110, 50,153,144,152,152, 8, 59, 59, 59, 12, 25, 50, +196, 69, 42,149,126,108,101, 39, 91,207,207,199,229,218,233,195,107, 90, 76, 28,211, 85,230, 39,253, 25,178,196, 79, 96,183,231, + 67, 52, 78, 57,138,200, 94,161,178,227, 43,103, 4, 55, 80,171,174, 17, 66,234,213,180,144,180, 90,237,249, 91,183,110,141, 60, +115,230, 12, 7, 0,191,252,242, 11,189,123,247,238,232,231, 25,133,114, 28,135,188,188, 60,112, 28,199,150,190,182,156,255,167, +230,125,123,123,251,213,111,191,253,246,128,199,143, 31, 75,142, 28, 57,226,248,228,201, 19,167, 71,143, 30, 57,251,249,249,241, + 22, 46, 92, 24,173,213, 25, 88,163,153,234, 77,102, 99, 97,234,237,219,113,185,233,233,215, 54,110,220, 88, 66, 8,233,109,229, +111,188,235,238,238,238, 56,117,234, 84, 16,190,180, 85,163,198,205,124, 89,190,196,129,225, 11, 29, 74, 74,180,230,248,248,248, +196,169, 83,167,214, 15, 12, 12, 84,151, 78,175, 89,197,169, 86,171,157, 38, 77,154, 4,158, 72, 30,212, 60, 48,184,129, 80, 36, +147,179,124,137, 60, 52, 52,180, 67, 92, 92, 92, 74,100,100,164,123,203,150, 45,107,196,217,178,101, 75,229,168, 81,163, 76, 98, +137,188,181,183,183, 79,227,230, 77, 26,135,251,249,249,245,226,241,120,166,204,204,204,199, 67,134, 12,113,239,222,189,187,107, + 77, 56, 93, 92, 92,148,145,145,145, 38,175,186, 62, 93,186,188,249,214,107, 2,137,220,129, 39,148, 41,138,139,181,230,123,247, +238, 61,158, 62,125,186,123, 80, 80,144,139, 53,156,197,197,197,124, 39, 39, 39, 52,109,218, 20, 1, 62, 62,200,207,207,199,190, +125,251,176,105,211, 38,172, 95,191, 30, 59,118,236, 64, 72,219,183, 32,151,203,145,146,146,130,130,130, 2,254,127,187, 78,113, +171, 27,211,239,244, 31,244, 24, 59,118,108,202,168, 81,163,210, 36, 18, 9, 87,241, 80,169, 84,230, 65,131, 6,165, 15,249,124, +105, 15,203,212, 98,117,150,172, 78,157, 58,221, 56,124,248,240,195,173, 91,183, 34, 32, 32, 0, 93,186,116, 17, 2,192,199, 31, +127, 44,236,215,175, 31,118,237,218,133, 61,123,246,220,241,243,243,251,149, 16,210,211,154,116, 14, 25, 50,164,109, 68, 68,196, +185,136,136,136,235,253,251,247, 95, 59,122,244,232,191,244, 92,169, 41, 73, 87,244,122, 61, 2,131, 91, 74,231,110,184, 52,232, + 89,124,119,129,173,107, 99, 98, 54,125,117,251,246,227, 25, 1, 1,138,186,143, 30,169,126, 88,188,216,201,178, 73,183,209,104, + 68, 98, 98, 34,148, 74, 37, 6, 13, 26,228, 36, 18,137,134, 88, 81,127,150,244,236,217,115,248,147, 39, 79,236,214,173, 91,231, +126,253,250,117,117,106,106,170,251,201, 19,199,156, 39,127,246,177,220,193, 78, 40, 76,201,124, 42, 84, 31,165, 64, 22, 19,143, +182,148, 66, 81,126, 58,177, 86,237,130,154, 72,164, 94,228,187, 6,109, 21,247, 39,237, 10,234, 31,249, 83,144,210,201, 75, 60, +173,154,116, 54, 95,180,104,209,238,168,168,168,129,109,219,182,221, 75, 8,145, 84,114,141, 56, 36, 36,100,223,174, 93,187,134, +183,107,215,238, 60, 33,164,105,149,163, 72, 79,207,222, 63,253,244,147,163,229,181,147,147, 19,196, 98,241,223, 68,150, 64, 32, + 0,195, 48,248,255,132,204,204,204,247,218,183,111,191,187,107,215,174,186,171, 87,175, 34, 51, 51, 19, 30, 30,101, 99,237,180, + 90, 80,170,164, 82, 41,188,188,188,224,235,235, 59,240,236,217,179,110, 70,163, 17,143, 30, 61, 66, 70, 70,198,181,255, 70,158, +202,107,145, 87, 9, 21,246, 57,252, 0, 64,244,223,132, 86,233,222, 66,167, 1,128, 18,162,185,113,235, 22,159, 21, 10, 7,111, +219,190, 93, 36, 16, 8,240,248,241, 99,220,185,115, 7,197, 39, 79,162,228,194, 5,164,167,167,163,168,168, 8,174,174,174, 88, +179, 97,131, 76,111,166, 35,238,221,191,207, 82,230, 79,127,131,170, 86, 36,136, 68,162,206,125,250,244,169, 82,144,165,164,164, +160,107,215,174,124,150,101, 59, 87, 98,158, 59, 81, 33,115, 68,237, 76,162, 78,238,157,235,238, 46,188, 3, 60,152, 8, 20, 94, + 3,168, 14, 48,233,129,228,155, 64,244, 28,212, 45,138, 33,199,230, 14,117,243,144,242,162, 72, 5,179,145, 21,203, 91,125,252, +253,253,215, 15, 30, 60,152, 1,128,142, 29, 59, 18,127,127,255,181,132, 16,159,106,204,136, 39,158,209, 73, 94,204,205,205, 69, +191,126,253, 28, 27, 52,104,112,162, 95,191,126,142,150,247,107,203,105,177, 38, 55,105,210, 36, 91, 34,145,236, 32,132, 60,179, +129, 45,207,169, 80, 40, 86,116,237,218,181,239,246,237,219, 5, 0,112,250,244,105, 68, 69, 69,225,246,237,219,136,141,141,229, +130,131,131,157,151,174,223,189,122,197,170,205, 75,122,181, 9, 84,119,104, 21,220,216,174, 40,183,200,213,213,181, 13,165,212, +199,202,116,118,157, 51,103,206,157,187, 15, 31, 59, 48, 60, 62, 79,192,231,137,236,237,101,174, 74,185,204, 83, 37, 21,123,136, + 24, 98, 87, 92, 92,156,182, 99,199, 14, 14, 64, 87,107, 57,231,206,157, 27,127,247,193, 99, 5, 97,120, 60, 62,143, 47,176,179, +147, 42,222,233, 18,214, 18, 0, 4,160,130,130,130,130,244, 77,155, 54, 25,106,194, 57,107,214,172, 91, 57,121, 69, 74, 30,159, +207,231,241,216,178,178,148, 73, 36,206, 82,145, 72,168,211,233,146,151, 45, 91, 86, 82, 19,206, 57,115,230,220,185,247,240,137, +138, 33,132, 37,132,225,217,203,101,142,142, 14, 82,103,103, 59,137,147,148,199, 10, 11, 10, 10,146,183,108,217, 98, 21,167,193, + 96, 16,164,167,167,227,238,221,187,240,106,217, 18, 63,255,252, 51,234,212,169,131,126,253,250, 97,192,128, 1,144, 72, 36,232, +216,186, 25,166, 78,157,138,135, 15, 31,194, 96, 48,136, 42,227, 44,243,147,170, 0,181, 90,125,245, 89,245,167,252,119, 43,166, + 51,216,157,208,239,244, 31,244, 40, 47,176,170,226, 87,169, 84,230,202,172, 93, 21, 57,187,118,237,250,197,201,147, 39, 27,108, +217,178,165,199,144, 33, 67,206,111,217,178, 5,175,189,246, 26,238,222,189,139,250,245,235,227,135, 31,126,192,128, 1, 3,206, + 47, 95,190,188,199,213,171, 87, 3,189,189,189,167, 61,139,179,127,255,254, 31, 5, 5, 5,157, 74, 75, 75,107,157,147,147,211, +116,223,190,125, 35,122,247,238, 29, 63,112,224,192, 78,101, 22, 45,163,113,123,244,193,189, 8,239,209, 7,141,154, 52, 93, 61, +108,218,214,102,213,113, 82, 74,233,109, 96,237,166,212,212,204,237, 90,109,113, 63, 62, 95, 42,189,116, 73,181,103,213, 42,167, +242, 43,189,147,147,147,209,189,123,119,190, 64, 32,104, 87, 93, 58, 9, 33,139,122,245,234,213,111,223,190,125, 74,139, 85,231, +194,133, 11,184,121,243, 38, 18, 18, 18,144,151,151,135, 78,163,139, 48,118,225, 83,238,177, 11, 41,222,250,152,202,106,217,134, +148, 65, 90,151,184, 57,218,243,126, 29,177,172,209,199, 31,172, 14,224,217,169,248,216,246,121, 44,210, 31,104,247, 84,145, 78, +210,186,117,235,173, 17, 17, 17, 68,175,215, 67,175,215,235, 41,165, 37,149,113,123,120,120,136,155, 55,111,142,209,163, 71, 51, +246,246,246,203,171, 74,167, 70,163,209, 29, 62,124, 24, 67,134, 12,193, 39,159,124,130,134, 13, 27, 66,169, 84,130,207,231, 99, +243,214,157, 78, 3, 70,140,241,107,209,182,125, 96, 64,139,215,154, 23,234,216,150, 2,169,106, 20,169,100,106,224,101,172,144, +251, 39,112, 54,107,214,172,237,229,203,151, 69,237,219,183,199,227,199,143,193,231,151,141,167,204,207,147,206, 57,115,230,136, +180, 90, 45,254,248,227, 15, 12, 29, 58, 52,217, 96, 48,124,250,178,243, 94, 81,139,188, 74,160,148,174,173,112,164, 86,101,209, +154, 3, 0, 70, 14, 81,131,135,142, 40, 62,116,232,144, 84, 40, 20,226,241,227,199, 72, 77, 77,197,230, 77,155,204, 29, 93, 92, +191,128,178, 5, 0, 0, 32, 0, 73, 68, 65, 84, 10,187,120,120, 20,108,222,180,137,234,245,122, 80, 74,225,239,239,143,190,125, +251, 74,222,237, 55, 48,131, 20,148,236,180, 66,249,185, 91,230,215, 71,140, 24,241,183,207, 39, 79,158, 12,123,123,123, 16, 66, +220,172,200, 95,196,248, 57,189, 60,149,222,138,116,154,182, 57, 7,172, 24,224,201, 1,158, 61, 32,118, 0, 68,114, 64, 40,133, +238,234,169, 28,134,118, 73,232,211,238,125,143, 26, 78,245, 64,173, 86,207, 56,117,234,148,243,213,171, 87,105, 65, 65, 1, 82, + 83, 83,233,130, 5, 11,156,213,106,245,140,218,222,148,148,148,148,185,225,225,225,233, 67,135, 14,117, 56,122,244,168,215,208, +161, 67, 29,194,195,195,211, 83, 82, 82,230, 62,207,205, 22, 8, 4,236,237,219,183, 85,243,230,205, 27, 0,224, 74,211,166, 77, +179, 61, 61, 61,175,148, 58, 77, 86, 11,185, 92, 94, 38,178, 44,214, 53, 30,143, 7, 62,159, 15,181, 90,173,207,201,201, 49,183, +107,225, 35,241,119, 96,140,106,145, 64,162,146,136, 61,229,246, 14,161,217,217,217, 55, 8, 33, 86,237, 79, 72, 8, 9,106,213, +170, 21,223, 76,249,220,216,193, 29,213, 31, 15, 15,115,249,126,222,168, 58,203,230,126,224,177,104,246, 72,255,185, 83, 6,133, + 49, 28,167,173, 95,191,190,155,197,161,221, 10,243,121,112, 72, 72, 8,143, 3, 31,119,239, 39,164, 63, 78, 74, 46,124,179, 67, +235, 50,203,101, 64, 80,112, 23,103,103,231,246,254,254,254, 33,214,198,132,145, 72, 36, 65,141, 26, 53,226, 49, 44,159, 56, 42, +229, 94,114, 59,137,171,229, 51,123,133,226,117,149,179,115, 4, 67,105,190,187,187,187,139, 68, 34, 9,170, 65,222,121, 28, 4, +112,117, 81, 57, 56, 59, 41,236,186,132,181,105,216,250,245,214,126,205, 66, 95,107,221,164, 69,200,187,196,100, 42,240,241,241, +113,177, 56,201, 87, 7,157, 78, 39,222,190,125, 59,230,205,155,135,230,117,235,194,195,195, 3, 46, 46, 46,184,112,225, 2, 46, + 95,190, 12,165, 82,137,140,140, 12, 44, 94,188, 24,251,247,239,135,193, 96,144,215,180, 62, 89, 35,182,170,131,201,100, 98, 42, + 10,172,170,248, 37, 18, 9,103,113,146,175, 10,135, 15, 31,222,106,177,100, 77,152, 48,161,237,210,165, 75,207,199,196,196,192, +206,206, 14,151, 47, 95,198,136, 17, 35,206, 47, 95,190,188,237,152, 49, 99,176,105,211, 38,196,199,199,111,168,142,175,127,255, +254,179, 71,142, 28,185,236,204,153, 51,140,171,171, 43,148, 74, 37,122,245,234,133, 13, 27, 54,240, 76, 38,211,198,136,136,136, +235, 17, 17, 17,215,205,137,199,191,216,189,126,193,133, 91, 55,174,227,163,241,147,132,122,147, 49,210,138,134,151,150,216,217, + 21,154,218,183,207,217,101, 52, 22,247, 23, 8,164, 14,215,175,171,162, 54,110, 44, 19, 91, 83,167, 78,133,131,131, 3,240,212, +129, 25,213, 88,117, 62,216,191,127,127, 89,123,232,232,232, 8,161, 80, 8,129, 64, 0, 62,159, 15,150,101,113, 98,181, 12,171, +166, 62,213, 23,171,166, 18, 28, 95, 65,158,107,111, 86,153, 39,105,170,116, 21, 94,255,240,135, 38,129, 77, 59, 57,226,194,143, +105, 88, 16,126, 53,233,242,174,204,137,218,140, 42,183, 82,106, 49,121,242,228,128,140,140, 12,252,254,251,239,248,253,247,223, +231, 85, 81, 54,218,131, 7, 15,126, 93, 84, 84, 4,111,111,111,244,236,217,179, 61, 33,164,101, 21,207, 13, 66, 66, 66,208,189, +123,119,132,133,133,161,121,243,230,208, 27, 76,252,136,193, 31, 52,186, 29,159,233,177, 96,241, 2,233,169, 95,246, 49,231,207, +159, 97,183,238, 61,238,208, 58,236,173,101, 2,185,251, 69, 34,117,114,255,183, 91,180,196, 98,241,210, 51,103,206,184, 25, 12, + 6,220,186,117, 11,159,124,242,201,243,238, 25, 90,102, 0,241,242,242,194,233,211,167, 49,104,208, 32,109,122,122,250,111,255, +173, 60,149,215, 34,255, 22,240,202, 41,200, 50, 60,121,242, 36, 79,165, 82,121, 52,106,212,136,209,235,245, 79,167, 36,246,236, + 49,175,223,184, 49, 90,171,213,142, 7, 32, 88,241,253,247,171, 61, 60, 61,195, 6, 15, 25, 66,140, 70, 35,194,195,195,133,135, + 14, 29,114,124,152,158,254,204, 13,145, 43,142, 54,134, 13, 27,134,165, 75,151, 2, 0,198,141, 27, 87,102, 90, 39, 86, 56, 44, +217, 57,160,107,151,110, 33,246,137,178,239,236, 13,175, 27,139,234, 61,148, 95,148, 21, 73, 66,192, 8,121, 16,179,224, 12, 70, + 83,108, 70,239, 43, 15, 99, 27, 7, 72,114,178,235,119,110,242, 6,214,255,188,165, 43,128, 93, 86,143,234,164,210, 86,118,118, +118,184,114,229, 74, 78, 72, 72, 72, 30,165,212, 97,238,220,185, 78, 82,169,180,213,115,168,223, 71,132,144,246,109,218,180,249, +152, 97,152,206, 28,199,157, 72, 79, 79, 95, 65, 41,125,100,101,167, 61, 22,192, 44,148,243, 67,209,235,245, 96, 24, 6,148, 82, +244,239,223, 31, 83,167, 78, 13,184,121,243, 38, 78,157, 58,165,234,220,185,243, 69, 66, 72, 30,128,247, 41,165,149, 90,205, 10, + 10, 10, 74, 46, 95,190, 44, 57,117,234, 20, 56,142,131, 74,165,130,189,189, 61, 68, 34, 17,122,245,234,101, 23, 25, 25,217,233, +216,177, 99, 25, 5,245,234,176,226,212,100,141,200,206, 78, 14, 55,143,118, 99, 6,190, 23, 67, 41,221, 95,131,198, 65, 40,225, +153,180,196,172, 99, 22,205, 92,206, 72, 5, 2, 34, 22,240, 32,226,138,241,197,215,243,137,128,154,121,168,225,252,188, 64, 32, + 16,200, 69,208,179, 66,214, 40, 37,120, 33,193,225, 88,150, 21,138, 5,208, 85,245, 57,159, 97, 24,134, 97, 4, 0, 76,214,114, +138, 68, 34,129, 92, 68,171,228,148,176,132, 37,132, 8,241,116,117,214,223, 16,236, 78,104, 57, 43,146,174,188, 40,110,215,174, + 29,162, 79, 93,193,158,168, 19,200,122,124, 3,211, 63,159,128,150, 45, 91,226,208,161, 67,213,166,201,226,163, 85,149,117, 89, +173, 86, 95, 77, 73, 73,105, 81,213,119, 43,243,209,226, 86, 55,166, 67, 62, 95,218,163, 50, 43, 85,165,252, 51, 29,158,114, 85, +227,163, 69, 8,233,217,174, 93,187,143,182,111,223,174,127,251,237,183,133,253,251,247, 71,211,166, 77,219, 14, 31, 62, 28, 0, +208,185,115,103, 44, 93,186,180,237,240,225,195,177,115,231, 78,236,219,183, 79,215,161, 67,135,207, 9, 33,201,148,210,195,149, +113,114, 28,215,125,205,154, 53, 21, 45,133, 48,153, 76, 48, 26,141,238, 38,147,201,189,180, 45,194,178,101,203,179,142, 31, 59, +132,207,167,205,129,139,179, 91,144,149,117,136, 12,155, 52, 41,235,135,197,139,177,120,231, 78, 76,170, 95, 95,186,229,206, 29, + 28,215,106,177,235,212,169,172,210,223,121,166,111,166, 70,163, 41, 57,124,248,176,253,174, 93,187,160, 80, 40,208,176, 97, 67, +168, 84, 42,240,249,124, 48,172, 4,172, 64,137, 70, 77, 90, 1,184, 12, 0,168,175,134,198,223, 27,231, 9, 65, 30,101,170,174, +195, 85, 62,163,117, 73, 61,215,186,226, 51, 31,109,106,170,176,119, 17,224,232,138, 39, 56,246, 93,226,126,109, 22,190,133, 9, +247,170, 89,172, 17,226,237,237,141,140,140, 12, 28, 62,124, 88, 3,224,155,170,126,131,227,184,175,191,255,254,251,201,211,166, + 77, 19,249,251,251, 3, 64, 16,128,223, 43, 21,125, 50, 25, 60, 60, 60,202,132,101,255,161, 99,124, 70, 79, 28, 35,233,253, 86, + 24,120, 60, 39,228,105,140,200, 46, 52, 66,233,100,135,207, 39, 70,136, 79,132,120,180, 92,179,124,219, 65, 66, 72, 75,250, 50, +131, 69,254,143,225,232,232, 24,148,157,157,141, 71,143, 30, 97,232,208,161,201, 89, 89, 89, 63,107, 52,154, 17, 41, 41, 41, 0, +144, 83, 11,202, 50, 49, 31, 20, 20,132, 86,173, 90,161, 95,191,126,226,226,226,226, 8, 31, 31, 31, 15, 0,175,191,204,252, 84, +212, 34,255, 42,161, 85,105,135, 96, 52, 54,210,173, 94, 13,205,137, 19, 16, 30, 63,142, 93,106,117,145, 86,171,253,140, 82,154, + 88,218,232, 77,216,244,195, 15,191,246,248,237, 55,123,125, 76, 12,124,110,222, 4, 95,161, 8,170,105, 2, 54,110,220,136,130, +130, 2,228,231,231, 3, 0,190,251,238, 59, 20, 20, 20,192,226,203,240,204, 12, 8,208,214,205,165, 62,210, 16, 11,142,199,216, + 37, 52, 42,126,205, 78, 43, 79,241,120,226,170,201,103, 60, 16,243, 56, 84, 86,146,173,127,141,176,122,104,179,138,225,209,166, + 33,120,224,181,173, 73, 26, 45,243,254, 60, 30, 47,231,254,253,251,221,253,252,252,162, 0, 56, 61,175, 63, 0,165,244, 1,128, +241,181, 20, 1,179,226,227,227, 93, 54,108,216,240,241,220,185,115,105,121,161,101,249,159,199,227,129, 82, 10, 7, 7, 7,240, +249,124,215, 11, 23, 46,184,134,134,134,174, 44,109,208, 42,203, 39,109,218,180, 41,226,227,227,193,227,241,224,224,224, 0,206, +100,192,156,137, 99, 96,102, 69,188, 41, 83,166, 4,245,233,211,231,214,134, 13, 27,140,246,173,219,188,158,157,157,125,251,163, + 65,131,111, 29, 56,112, 64,207,113,220, 26, 43,243,124, 61, 54, 54,150,245, 84,187,178,212, 84,204,201, 4,128,248,198, 50, 42, +180,115,131,152,199, 82, 1, 97, 32, 18, 75, 28, 30, 37, 37,101,115, 28,119,215, 26, 78,142,227,174,197,199,199, 75, 92, 93, 28, +121,197, 37,250, 34, 9,159, 10, 19,174, 93,137,171, 23, 28,226, 3, 0,218,107,151, 79,139, 26, 53,150, 36,164,103,202,234,215, +175,111, 21,103, 73, 73,201,245,228,228,100,214,213,213,149,247, 56, 49,233,160,194, 78,230,108,175, 80,188, 6, 0,134,194,252, +203,140, 78,151,201,242,121,174,153,217,217, 57, 37, 37, 37,241,214,230,253,225,195,135, 60,119,119, 23,246,232,241,147, 81,174, + 82,145,139, 92,200,179, 23, 17, 66,164, 44, 41, 16,152,184, 44,177, 84,234,242, 40, 41, 41,135, 82, 90,165,133,240,171,188,193, +189,159,222,175, 57, 59,203,113,227,198,141, 27, 56,114,254, 46,100, 84, 15,162,205,199,241, 77,235, 48,104,202,180,231,246,251, +123,150,216,170,149, 53,107, 77,227,171, 21,248,145,242, 12, 71,248, 65,131, 6,205,217,186,117,107,153, 3,202,221,187,119,209, +177, 99, 71,203, 52, 7,186,116,233,130,208,208, 80,220,189,123, 23,190,190,190, 56,117,234,148,136,101, 89,209,224,193,131, 23, + 0, 56,252,172,244,174, 93,187, 22, 35, 70,140,168,204,177,250, 33, 0, 45, 81,250, 23, 77,253,106,179, 83, 78,118, 22, 50, 50, +211,174, 91, 91, 14,132, 16, 12,155, 52, 41,107,141, 94,143,237,151, 46, 97,136, 76, 38,253,225,193, 3,132,135,134,162, 89,199, +142, 89,214,180,117, 22,171,142, 86,171, 5,159,207,135,189,189, 61, 28, 29, 29, 33, 16, 8,192,242,213,224, 9, 3,193, 8, 4, + 8,110, 23,136,197,159,201,138,135,190,131,229,132, 32, 79, 36,196, 53,129,180,114, 95, 29, 66, 8,145,213, 65, 47, 74, 81, 80, +156,136, 95, 44,130, 68, 81,143, 56,216,217,243,143,143, 92,233,175,176,119, 17,224,200,242,199, 56,190, 50,105,175, 54, 13,211, + 1, 60,172,110,117,177, 72, 36,106,166, 80, 40,144,152,152,136, 39, 79,158,220,169,206,193,159, 82, 90,220,186,117,235, 56,145, + 72, 20,224,236,236, 12, 0,222, 85,165,147,227,184, 50, 63,172, 45,219,119, 59, 5,181,247, 17,191,217, 54, 0,155,163,230,227, +195,136,229,224,179, 4,102,179, 1,223, 46,237, 6,179,174, 8, 17, 61, 62, 32,111,116,246, 13, 60, 17,165, 31, 9, 96,221,191, + 85,104, 37, 37, 37,141,111,223,190,253,130,194,194,194, 92,141, 70, 51, 8, 0,188,189,189,235, 50, 12, 35, 2, 48,183,154,250, + 84, 23,149,135,133, 16,220,188,121, 19,114,185, 28,201,201,127,238, 73,159,152,152, 8,142,227,116,176,161,186,103, 52,152, 82, +122,141, 16,226, 14, 32, 28,229,194, 59, 48,165,166,186, 55,162,163,163,105,116,116,244, 27,101,157, 23,165,156, 41, 39, 7, 84, +247,180,108,249,124, 62, 5, 80,126, 69,147, 84,161, 80, 16,190,167, 39,136,232,169,235, 7, 45, 55, 39,252,188, 48, 26,173, 11, + 45,195,153,193,130, 24, 64,203, 25, 49, 52, 98,130,249, 78,157, 48, 94, 56, 3,105, 66, 69,249, 39, 27, 48, 81,152,193,177, 53, + 76, 14,213,104, 52, 48,153, 76,202, 6, 13, 26, 68,155, 76, 38,165,101,106,224,127,117, 83,205,102,115, 28,203,178,248,248,227, +143, 97,177,254,232,245,122,164,165,165, 65,167,211, 65,175,215, 35, 62, 62, 30,249,249,249,208,235,245,184,125,251, 54,188,189, +189,193,178,172,123, 53, 21,133, 82, 74,225,229,229,133,122,245,234,129, 37, 20,235, 23,205,198, 23,159,140,193, 0,111, 14, 27, + 87,124,139, 14, 29, 58, 52,174, 95,191,126,107, 30,143,103,118,115,115, 19,236,219,183,239,160,217,108,238, 85,131, 56, 90,135, +167, 78,157, 90,175, 73,147, 38, 46, 10,123,185, 81, 36,100, 33, 52,106,168, 72,151, 77,121,197, 89,240,242,170,107,130, 68,234, + 59,100,200, 16,179, 53,157,163,133,243,179,207, 62,115,247,247,247,119, 80, 42,228, 26, 33,159,205, 16,128,102,229,223,248,253, + 34, 0, 8,157, 93,180, 16, 75, 3,134, 14, 29,106,170, 9,231,140, 25, 51,188,157,157,157, 21, 12,104,161,217, 96,248,115,190, + 93,167,207, 38,124,126, 9, 4,194,144,113,227,198,145,154,112, 78,158, 60,185,126, 64, 64,128, 66, 97, 47, 43,226,241,217, 84, + 1,199,165,138,193,165,241,245,134, 92,177,179, 83, 49,164,118,193, 67,134, 12,169,146,211, 98,205,138,140,140, 76,172, 32,188, +145,147,147, 3,109,218, 45, 8,146, 99, 16,104,199, 71, 75,103, 37, 68, 34, 81,217,210,247,170,170,107, 85, 62, 90,149,137, 45, +107,191, 27,242,101, 53, 83,128,107, 26, 95,173, 24, 55,171,148,191,218,231,105,219,182,109,211,194,194,194, 50,186,116,233,162, +143,142,142, 6, 33, 4,167, 78,157, 66,114,114, 50,186,116,233, 2, 74,169,101, 85, 27,174, 95,191,142,206,157, 59,235,219,183, +111,159,188,109,219,182, 89,214,220,156, 17, 35, 70,192,104, 52,162,168,168, 8, 57, 57, 57, 56,116,232, 16, 2, 3, 3,169, 84, + 42,237,195,122,189, 53, 63, 98,228,180,215,155, 54, 15,194,202,229,139,245, 66, 30,255,171, 26, 54,194, 24,250,217,103, 89,249, +193,193, 57, 91, 52,154,226, 97,246,246,210, 6,137,137,170, 43,199,142, 57, 25, 12, 6,171, 56, 44, 86, 29, 79, 79,207, 50,145, + 37, 16, 8,192, 19, 58,131,149, 53,131,208,177, 11,164,110,125,240,203, 53,145,206, 65,134,253,114, 59, 28,149, 41, 80,101,104, + 7,169, 23,230,191,222,223,125, 95,155, 1,238, 39,165,117,176,129, 16,194, 16, 66, 24,202, 35,251,134,127,235,215,192,185,158, + 4,191,237, 78,195,241,149, 73, 63,105,211, 48, 27,192,131,103, 61,231, 6,131, 65,107, 54,155,193, 48, 12,120, 60, 94,121, 31, +209, 95,127,250,233, 39, 92,185,114, 5, 0,202,194,246, 20, 22, 22,154, 89,150,133, 88, 44, 6, 0,187,106,218, 59,240,249,124, +240,249,124,156,190,120,214,113,192,187,221,200,133, 63,126, 70,155,192,129,200, 46, 50, 32, 61,223,128,188, 98,160, 73,203,233, +104,218,121, 63,110,196, 23, 34,168,121, 83,150, 21,202,134,190,226,157,119, 93, 23, 23,151, 11, 78, 78, 78,167, 8, 33,117, 9, + 33,117,237,237,237,127, 85,171,213, 49,132,144,158,148,210, 3, 41, 41, 41,254, 69, 69, 69,109, 40,165,143, 41,165,143,179,178, +178, 58,102,100,100,188, 94,221, 98, 45, 71, 71,199, 13, 5, 5, 5, 19,204,102,115,143,210,227, 29,179,217, 28, 20, 27, 27, 27, + 16, 20, 20,116,199,199,199,231,186,143,143,207, 17, 31, 31,159,131, 62, 62, 62, 7,195,194,194,150, 90,194, 61,188, 76, 84,166, + 69, 94, 33, 88, 92, 93,194, 75, 67, 61,132,151,245, 25,165,231,211, 21, 29,208, 76, 34,209,109,211, 71, 31, 65,113,240, 32,248, +177,177, 24, 62,116,168,189, 84, 42, 93, 78, 8,105, 65, 8,105, 99,103,103,183,114,246,236,217,114,167,133, 11,161, 62,123, 22, + 9,135, 14,193,200,231,255, 94,155,212,149,148,148,128,199,227,149, 89, 98,100, 50, 25,204,102,115,169,118,123,134,224, 48,225, +183,228,244, 24, 8, 81, 15, 28,104,209,209,130,246,151, 6,198, 77,119, 57, 84,224,237,251, 64, 35,240,253,210,249, 53,151,229, +117,219, 94,210, 16, 94,145, 80, 33,198,147, 39,137, 48,131,171,209,124,179, 86,171,205,215,104, 52, 8, 10, 10,114,188,114,229, + 74,131,192,192, 64, 85,233,251,151,159,243, 33,106,237,225,225,177,219,211,211,243,145,135,135,199,110, 66, 72,235, 26,124,125, +195,185,115,231,192,178, 44,102,207,158,141,194,194, 66, 24, 12, 6,100,103,103,227,201,147, 39,208,235,245, 72, 74, 74,194,189, +123,247,160,215,235,145,144,144, 0,157,238,217, 3, 18,142,227, 96,111,111, 15,109, 73, 17, 86,205,255, 2, 51, 34, 39, 34,255, +225, 85, 36,165,164, 67,225, 32,195,248,241,227, 89,165, 82,201,153,205,230,122, 38,147,169,179,217,108, 94,109,173,224, 44, 13, + 90,120,222,203,203,171,233,162, 69,139, 2,190,152,191, 90, 96,207, 43,162, 34,185,152, 19,202, 69, 84,216,248, 53,140,152,190, + 92,176,108,201, 55,247,127,251,237,183,100,107,130,119, 90, 56,131,131,131,253,146,147,147, 3,253,253,253, 27, 57,213,173, 47, + 18,185,123,228, 9,220,235, 20, 80,157,246, 18,241,168,211,110,245,234,213,183,126,253,245,215,148,154,112,202,100,178,198,155, + 55,111,110,234,234,234,218,148, 47,145,136,139,243,243,119,153,138, 53,187, 89,133, 82,204,216, 43,222,217,191,127,255,213,189, +123,247,166,213,132,211,215,215,215,127,254,252,249, 77,154, 53,107,214,196,205,187,129, 72,226,225,149, 45,246,172,155, 45,105, + 22, 40,130,103,189,183, 87,174, 92,121,253,183,223,126,179,138,147,101, 89, 19,195, 48,224,243,249,144, 74,165, 56,122,244, 40, + 62, 26, 57, 16, 94, 30,142,104,228,239,143, 78, 31, 78,192,222,189,123,203,124,120, 88,150,173,178, 71,255, 97,225,248,168, 96, +119,114, 21,107, 26, 95,197,154,198, 87,131,221,201,213, 42,197, 86,233,231,149, 93, 99, 85,107, 84,133, 31,214,179,196, 22,165, +244,240,233,211,167,191, 30, 54,108,152,176,107,215,174,184,116,233, 18, 70,140, 24,113,126,223,190,125, 0,128, 75,151, 46,225, +211, 79, 63, 61,127,242,228, 73,140, 25, 51, 6, 29, 59,118, 20,158, 59,119,110,165, 53,177,127, 76, 38, 19, 54,110,220, 8,147, +201, 4, 59, 59, 59,168, 84, 42,116,235,214, 13,183,110,221, 26,179,105,211,166, 24,150,207,127, 47,188,199,187,136, 62,184, 15, +247,110,223, 26,243,195,130,193, 53, 14, 10,204, 48, 12,186, 14, 29,154,149,213,164, 73,206, 15, 5, 5,197,239, 43,149, 82,255, +180, 52,213, 47,187,119, 59, 89, 81,127,136,217,108, 46, 19, 87, 22,209, 97, 57,120, 66,103,240,100, 77,193,147,183,196,141, 7, + 2, 35,191, 21,189, 38, 8,161,119,171,139,159,197, 23, 50, 35,250,124,225,141, 62, 95,120,163,231,148,250,195,165,117,176, 94, + 86, 7, 99,187,126, 82, 47,204,167,165, 3, 10, 50, 12, 56,244,109,194, 99,109, 54, 22, 2,184,103,205,115,206,113,220,157,228, +228,100, 8,133, 66,212,169, 83,199,143, 16, 98,241, 11,220, 48,106,212,168,113, 95,126,249,229, 68, 0, 95,150,230,201, 46, 44, + 44,172, 73, 81, 81, 17, 98, 99, 99, 1,224, 74, 53,247,190,108,149, 97, 78, 65,130,168,190,186, 25, 2, 27,143,134, 82,217, 28, +201, 57,122,164,228,232,177,126, 85, 47, 92, 61, 55, 15, 87,142, 15,193,227,180, 52, 72,220,122,195,108,210, 53,125,197, 13, 37, + 51,226,226,226, 90,239,222,189, 59, 12,192,140,102,205,154,253,246,228,201,147,215,207,158, 61,219,200,211,211,115,121,109, 73, + 45, 97, 33, 18, 18, 18,254,114,148,134,133,208, 83, 74,131, 41,165, 93, 41,165, 61, 75,143, 79,159, 43,214,155,245, 56,253,170, + 58,195, 3,136,174,184,218,176,162,208, 42, 31, 40, 12, 13, 84, 42,185,209,104, 72,250,249,231,159, 13, 12,195, 64, 42,149, 98, +216,136, 17,204,170,239,191,111, 55,176,117,235, 83, 31,188,249,230,145, 83, 39, 79, 6,135,134,134,130, 82, 10,134, 97,176,115, +231,206, 18,173,182, 36,187, 78,157, 58, 10,107, 26,141,242, 15, 80, 65, 65, 65,153,208,202,207,207,135,171,171,171,213, 83,135, +154, 2,156, 56,121,244,106, 46, 53,127,248,164,235,131, 37,134,175,210,122,133,230,113,102, 94,190,217,136,252, 18,138, 66, 45, +120,151, 24, 85,232, 48,223,222,134,248,206,161,247,206,196, 92,200,214,154,181, 53, 90, 45,145,145,145,241, 69, 68, 68, 68,182, +187,187, 59,177,183,183,135,135,135, 7,211,179,103,207,172,196,196,196, 47,107,123, 71,156,156,156, 6,132,133,133, 69, 37, 39, + 39,247, 61,115,230, 76,189,179,103,207,246, 13, 11, 11,139,114,114,114, 26, 96, 37,197,174,105,211,166,105,132, 66, 33, 94,123, +237, 53, 20, 22, 22,162,116,149, 79,181,199,179, 58, 2, 0, 16, 8, 4, 88,179,104, 22,102, 68, 78, 68, 78,204, 37,220, 56,255, + 51, 78,167, 17, 76,159,255, 13, 4, 2, 65,173, 98,125,249,186,200,154, 53, 83,203,239,126, 58,162,127,202,212,200, 72,249,245, +235,215,249,227, 62,249,148, 38,164,230, 64,216,117, 49,139, 55,190, 96,254,208, 56, 35,252,157, 78,152, 61, 99, 82, 51, 74,233, +232,103,113, 6,184,200,154, 53, 85,203,239, 76,250, 96, 96,220, 39,159,124, 34,249,234,171,175,180,173, 91,183, 46, 73, 79, 79, +151,200,148, 42,127,158,131,162,105, 66,106,154, 93,235,214,173,227, 63,252,240,195,188,154,114, 78,159, 62, 93,122,236,216, 49, + 94, 68, 68,132, 41, 55, 55,215,142, 47,145, 4, 17,145,184, 85,102,110,174, 67,223,136,136, 7,125,251,246, 45,230, 56,110, 76, + 77, 56,103,206,156, 41,189,119,239, 30,175,117,235,214,198,180,180, 52,185,204,209, 41,144, 85,168, 90, 62, 74, 77,183,111, 21, + 26,250,112,220,184,113,154,234,210, 89, 94,164,200,229,242,228, 54,109,218,224,219,111,191,197,178,101,203,240,246,219,111,227, +214,237, 91, 8, 31, 55, 17, 1, 99, 63,197,193, 11, 23,145,156,156,140,185,115,231, 34, 48, 48, 16, 2,129,224, 94,165,164,163, +239,146,107,169,148, 92, 75,165, 4,163,239, 18,203,235, 42,197,208,151,249,248,203,245,149,224,202,204,202, 45, 93,193,238,228, +106,117,126, 88,207, 18, 91,125,251,246,253,200, 18,194,225,253,247,223, 63,191,124,249,242,182,239,191,255,116,160,253,218,107, +175, 97,222,188,121,109,167, 79,159,126,126,254,252,249,232,212,169, 19,124,124,124,158,185,240,197,108, 54,195,100, 50, 97,224, +192,129, 48,153, 76,200,204,204,196,253,251,247,177,118,237, 90, 80, 74,197, 0,224,174,246, 12, 17, 10,133,248,227,218,239,197, + 51,222, 15,221, 86,131,193, 20, 41, 63,136, 41, 42, 42, 66,223,177, 99,179,146, 26, 54,204, 89,157,149, 85, 60, 82,169,148,214, +127,252, 88, 37,215,235, 61,170,243, 73, 37,132,128,227,184, 50, 97,101, 17, 92, 21,143,210,142,210, 42, 24,138,185,195,103,183, +166, 0, 0,218, 15, 86,163,231,148,250,195,221,125,165,223,181, 27,244,212,232,189,119, 94, 28, 45, 76, 49,127, 5, 35,238,212, +192, 98,125,233,210,165, 75, 80, 40, 20,136,136,136, 16, 49, 12,179,176,180,157,215, 82, 74, 87, 80, 74,151, 88,184, 68, 34,209, +226, 33, 67,134, 48,121,121,121,184,113,227, 6, 0,156,172,170, 93,162,148,150,229,189, 40,135,192,204, 9,241,235,181,163, 56, +126,118, 15, 30, 37,103,226,113,134, 22,224, 57, 64,171, 73,130,161, 36, 25,250,188,107, 40,208, 73,255, 13, 51, 82, 47, 37,220, +194, 75, 8, 11,241, 34,173, 90,175,164, 79, 29,165, 52,181,252,106,195,242, 1, 76, 43, 11, 88, 10,106, 47,233,191,103,229, 42, +135,136,129,131, 53,129,129,129, 74, 15, 15, 15, 16, 66,208,171,119,111, 18,118,230,140,156,175, 86,195,177, 69,139,178,233,136, + 19, 63,255,140,163, 71,143,106,162,127,218,239, 49, 98,228,200,238, 0, 54, 87,211, 96,240, 26, 52,104, 80,246,187,169,169,169, + 16,137, 68,101, 62, 17, 5, 5, 5,112,118,118, 70,106,106, 42,172, 52,148,108,153, 26,121, 49, 50, 35,244, 11,239, 80, 57,159, + 28,209,164,193, 76, 41,248,196, 12,148, 80, 24,205,128,206, 72, 17, 82,159, 85, 29, 47, 49, 41, 15, 93,218, 23, 15, 96, 75, 13, + 45, 90,191, 16, 66, 70,115, 28,183, 7, 0,115,230,204, 25,238,206,157, 59, 31, 89,235,184, 94,169,217, 94, 42,157,114,234,212, + 41,213,148, 41, 83,114, 15, 29, 58,148,223,173, 91, 55,135,181,107,215,170, 58,118,236, 56, 5,192,143, 86,220,212, 18, 66,200, +230,196,196,196,143, 90,182,108,137,156,156, 28, 24, 12, 6, 92,189,122, 21,190,190,190,184,114,229, 10,252,252,252,240,251,239, +191,163, 81,163, 70, 48,155,205,208,106,181,224, 56,206,252,172,198, 60, 39, 43, 19,200,126,130,148, 75, 71,112,255,230, 85,156, + 74, 33, 88,241, 99, 20,234,212,243,174, 85,156,154, 70,174,178, 38, 30, 46,142,199,191,154, 51,211, 37,225,151,157,216,183,113, + 5,119,250,200,145, 0,161, 28,163,223, 24, 56,225, 93,189, 17,117, 1, 8, 95, 15,109,137,174,202,123,102,105, 61,164,157,188, + 93,125, 36,235, 70,174,178, 38,106,103,199, 99,255, 89,248,165,252,225,209, 31,176,107,205,183,116,239,214, 29,129, 90, 32,180, + 73,147, 38, 93, 25,134, 81, 0,208,150,250,121, 89,181,181, 77,101,156, 39,162,162,130,181, 64,232,129, 3, 7,186, 74,165, 82, + 55, 0,198,226,226,226,184,231,225, 60,121,232, 80,176, 37,157,132, 16, 23, 0, 6, 74,233, 67,212,112, 11,158,126,253,250,205, +251,244,211, 79, 35,205,102,179,179,229, 61,163,209,200, 46, 94,188,152,199,113, 28, 75, 41, 53, 48, 12, 99, 56,118,236,152,217, +100, 50,165,104,181,218,177,207,211,144,188,251,238,187,184,120,241,226, 28, 60, 93,132, 97,173,181,250, 47,126, 90,213, 77, 83, + 90,195,127,230,204,153,185,239,189,247,222,212, 31,127,252,241,254,242,229,203,123,140, 25, 51, 6, 59,119,238, 68,195,134, 13, +241,199, 31,127,224,139, 47,190, 0,128,182,211,167, 79, 63,184, 97,195, 6,159,132,132,132,197,207, 74,163,209,104,132,201,100, +194,142, 29, 59,208,171, 87, 47, 56, 59, 59, 67,173, 86,131, 16,242,203,200,145, 35,191, 7, 0,150,176, 2, 0,208,105,117, 58, +127,255,150, 86, 91,112,125,124,124,202,218,186,180,180,180,178,149,130,111,189,247, 94,214,250,175,190,194,182,146, 18,140, 84, + 42,165, 73,158,158,238, 7, 31, 62,252,128, 16,178,182, 42,203,145,197,170,243, 44,145,101,173,133,185, 36, 21,211,126, 90,240, +200, 13,192,219,237, 7,171,209,126,176, 26, 45,123,186, 16,134, 37,184,121, 60, 27,183, 78,228,236, 53, 22,224,151,154,108,151, + 67, 41,189,227,232,232,120,240,141, 55,222,232,209,184,113, 99,140, 26, 53,234, 67,129, 64, 32, 48, 26,141,159, 88,194, 60, 16, + 66, 28, 24,134,249,114,211,166, 77, 31,168, 84, 42,156, 59,119, 14,103,207,158,253,133, 82,250,164,170,118, 9, 64, 89,204,172, + 58, 94,126,218,123, 9, 69,210,140,228, 95,113,254,220, 79,104, 24, 56, 1, 18,183,238, 80,249,207,135, 33,102, 25,244,217,199, +161,242,234,134,164,132,135, 96,121,162, 91,248,151,192, 18,110,225,214,173, 91,149,134, 91,168, 41,154, 53,107,214,246,236,217, +179, 34,173, 86,139,211,167, 79,163, 85,171,178,181, 93,255,211,253, 59,203,107,145, 87, 9,213,109, 42, 93,105,175, 73, 56,194, +111,228,231,103, 22, 48,216,212,171,123,247,226,235,215,175,151,141,250,180,151, 47, 67,115,244, 40,204,102, 51, 40,165, 56,123, +230, 12,134, 12, 30, 92,196,103,201,250,250,245,235, 81, 66,255,140,221, 82,217, 82,122,129, 64, 16, 17, 17, 17, 81,214,248, 36, + 38, 38, 66, 38,147, 65, 40, 20,130,227, 56,152, 76, 38,176, 44, 11, 7, 7, 7,152, 76, 38,125, 37,153,233, 92, 33, 35, 70,115, +142,166,239,134,240, 65,169,234, 34, 3, 29,173,168,143,186, 2, 73,217,195,233,102, 79,208, 35,144, 15, 39, 94, 6, 61,185,248, +205, 20, 78,151,221,183,226,222, 98,207, 90,242, 79, 8,241,107,222,188,249,247, 67,134, 12, 97, 0,160,115,231,206, 76,243,230, +205,191, 35,132,248, 85,243,157,106, 57,197, 98,177, 8, 0,162,162,162,114,238,223,191,255,118, 84, 84, 84, 78,249,247,173,228, + 92,187,104,209, 34, 72,165, 82,152, 76, 38,232,245,250, 50,255,172,242,103,131,193, 0, 39, 39, 39, 68, 71, 71,195,108, 54, 71, + 63, 43,157, 94,117,235,129, 56, 55,192,230,168, 83, 56,155, 37,168,177,200, 42,207,217,208,221,174,145,155,147,227,207,255, 89, + 48,215, 57,247,193, 85, 36, 37, 37,209, 99, 71,163,127, 43,161, 52, 57,175,128,206,200, 45,162,141,138,117, 84,220,202, 7, 79, +126, 94,243, 57,157,222, 30, 70, 84,178,106,176, 60,103, 19,119,187, 70, 30,206,142,199,190,249,207, 2,121,222,131,171, 72, 77, + 75,195,225,232,168,235, 37,148, 38, 83, 74,247, 82, 74,135,155,205,230,166,102,179,185, 41,165,116,120, 85,226,165,166,156, 26, +141,166,153, 70,163,105,246, 34, 57, 57,142,107,198,113,156,213,156,229,133,202,146, 37, 75, 98, 82, 83, 83,135,100,100,100,116, +177, 28,185,185,185,157,139,138,138, 58, 20, 23, 23,183, 43, 89, 82,207, 65,163,209,184, 20, 22, 22,186,151,148,148,132, 80, 74, +175, 90, 91, 63,203,163,124,212,233,148,148,148,217, 41, 41, 41,228, 89,233,100,198,220, 37,219,191,153,244,211,154, 53,107,220, +159,135,191, 98, 58, 51, 51, 51,247,236,216,177, 35,200,219,219,219,103,248,240,225, 88,189,122, 53,150, 47, 95,174, 3,128, 13, + 27, 54,232,202, 89,178,188, 30, 61,122,212,178,178,105,195,191,164,147, 97,182,188,245,214, 91,244,236,217,179,232,213,171, 87, + 89, 32,209,117,235,214,193,100, 50, 21,116,234,212,137, 3,128, 18,109,113, 1,229, 40,244,134,202,231,223, 43, 43, 79,161, 80, +248, 78,249,120,129,150, 96,204, 66,161, 16,148, 82, 52,106,219, 54, 43, 47, 48, 48,103, 99,126,126,241,236,102,205,236, 63,240, +247, 31,222, 24, 24, 92, 25, 39, 33,228, 47, 86,157,138,135,181,150,172,242,156,148,210,140,146, 20,140,250,105,193,163,163, 22, +203,150,216,142, 7,109,161, 9,251,191,122,148,169,205,196, 58, 0, 79,106,194, 9, 0, 57, 57, 57,227,190,250,234, 43,157, 82, +169,196,187,239,190,139,249,243,231,143,108,219,182,109,190,171,171,235, 69, 95, 95,223,155,253,251,247, 79,189,122,245,234,184, +176,176, 48,196,198,198,226,155,111,190,201,203,205,205, 29, 84, 29, 39, 33,164,204,146,215, 51,188,115,206,170,239,190,229, 58, +189,241, 17,164, 18,123, 24,249, 94,200, 41, 50, 34, 87, 67,161, 23,133, 66, 40, 16,161, 75,235, 38,184,120,236,135, 98,179, 94, +179,185, 54,117,190, 6,157,235,203,230,124, 33,225, 22, 42,166,243, 69,132,133,120, 25,121,127,149, 81, 73, 28,173,191, 90,180, + 44, 75, 42, 45,103, 66, 56,179,217,204,161,190,119,125,121,194,163, 39, 43,250,245,139,120,191,107,215,112,105,120,120,184,184, + 73,204,211,169,139,168,168, 40,236,219,183,175,248,248,241,227, 5, 34, 62,187,193,171,142,151,171,217,204,129, 16,174, 90, 53, + 44,151,203, 63,153, 54,109,154, 36, 63, 63, 31,203,151, 47,231,130,130,130, 24,153, 76, 6,131,193,128, 13, 27, 54, 24,155, 52, +105,194,103, 24, 6,249,249,249, 96, 24,230,158,149, 25,188, 65, 8,233,242,125, 88,159,125, 45, 63, 30,225, 24, 16,246,186,178, +131,151, 7,140, 45, 40, 82, 18, 31,225,254,201,227,185,183,143, 45,205,134, 54,189, 15,165,244, 78, 77, 11, 80,173, 86,207, 58, +126,252,184,203,184,113,227,168, 86,171, 37, 79,158, 60,161, 11, 22, 44,112, 25, 53,106,212, 44, 0, 3,106,251, 60,229,229,229, +129, 16,194,149, 86, 90,203,168,159,212,224,198,222, 34,132, 28,232,221,187,119,207, 78,157, 58, 33, 38, 38,166,108,138,176,188, +208,178,172, 62, 92,184,112, 97, 30,128,169,207,226,229,243,249, 88,190,121, 15,242,114,179,224,234,170,134, 88, 34,169,117,196, +101, 33,195,204,254,122,238, 76,151,172,187, 23,201,173,223, 78,113,187,111,164,103,152,204,180,242,136,255,133, 41,180, 84,253, + 87, 63,154, 97,216,217, 95, 47,248,210,193, 50,173,249,227,181,212, 2, 98,166,227,158,235, 41,121, 85, 56,255,203, 80,171,213, + 72, 73, 73, 33,106,181,154, 90,166,245,170, 18, 90,127,171,224, 79,167,203, 72,117,211,134,181,229,143,143,143, 95,208,162, 69, +139, 73,177,177,177,187, 3, 2, 2,198, 0,168,163,211,233,242,166, 79,159,254,159, 13, 27, 54,188,111,141, 37, 11, 0,118,238, +220,185,116,196,136, 17, 71,187,119,239,254, 57,199,113,205,203,117, 34,241, 46, 46, 46,101, 83,184,153,233,105,145,163,223, 31, + 24, 89, 84,148,107,117,156, 59, 59, 59,187, 15,166, 79,159, 46,214,104, 52, 88,185,114, 37,215,164, 73, 19,198, 50, 40,218,186, +117,171,201,207,207,143, 23,241,209, 71, 89, 75,210,210, 48,239,220, 57, 77,100,211,166, 65, 27,239,223, 15,169,204,226,110, 25, + 56, 86,102,201,178,184, 93,212,178,115, 72, 33,132,140,250,105,193,163,117, 0,222,126,189,159, 27, 14, 44,122,132,220, 4,253, +127, 96,194, 67,107,182, 5,170,132, 51,137, 16,210, 37, 61, 61,253,192,204,153, 51, 29, 66, 66, 66,208,180,105, 83,190,157,157, + 93,168, 37, 92, 76,126,126, 62, 78,156, 56,129,213,171, 87,235,111,223,190,221,155, 82, 90,229,116,149,217,108,206,240,243,243, +179,148, 3, 37,132,100, 23,232,136,195,174,198,161,118,195, 71,239, 38,231,127,191,128, 20, 3, 7,157,145, 67,125,239, 96,116, +120,123, 9, 14, 30,185,105, 78, 73,184,115,199, 88,146,187,254, 21,239,191, 95, 74,184,133,151, 16, 22,226,133, 89,179,202,159, +255, 45,168,244, 9,229, 88,230,215,213,107, 86,189,179,115,199,143,110, 44,203,184, 61,140,139,251,189, 71,159,190,201, 63,255, +252,179, 74,224,224,208, 10, 0,167, 31, 51,230, 55,131,174, 36,231,208,129, 3,117,235,215,175, 23, 88,186,169, 52,229, 88,230, +215,234,126,176,168,168, 72,115,238,220,185,226,169, 83,167,146,196,196,196,237,174,174,174,253,143, 28, 57, 98,215,167, 79,159, +146,152,152,152,189,110,110,110, 61,195,194,194,228,147, 38, 77,210, 21, 21, 21,173,168,193,195,125,135, 16,210,248,242,204,197, +239, 93, 94,180,234, 77,240,216, 54,208,241, 1,206,248, 43, 12,133, 63, 3,216, 78, 41, 53,213,166,144,100, 50, 89,160, 84, 42, +197,245,235,215,115, 67, 67, 67,245, 90,173, 86, 48,127,254,124, 71,153, 76, 22,248, 28, 13, 28,205,205,205, 5,199,113, 60, 0, +164,244, 12,174,230,107,241, 7,244,232,209,227,192,174, 93,187,222, 10, 15, 15,135,143,143, 15,140, 70, 35,252,252,252,160,215, +235,225,235,235, 11,157, 78,135, 57,115,230, 32, 63, 63,127, 98,117,155, 21, 19, 66, 96, 50,153,202,156,109, 61, 60,235, 62,141, +211,243, 28, 97, 44,100,124,198,231,222,161,141,200,200,206,226,118,253,145,158, 94,108, 48,119,137,205,208,220,174,120, 93,177, + 25,154,176,225,227,147, 1, 64,199,161,218, 29,231,101, 66,248,220,143, 94,135,244,140, 44,236,188,150,154,167, 49,112,111,223, +171,132,179, 70,233,124, 69, 56,131,231,196,160,239,120,235,175,189, 54,186,246,191,101,173,160,170, 10,215, 82, 41,225, 86, 55, +166, 88,179,177,210, 24, 89,207,195, 95,106,169, 58, 80, 90,111, 19, 7, 14, 28, 24,249,232,209,163,185,165,241,178,214,212,132, +107,227,198,141,177, 0, 70, 84,119,205,143,139, 71,236, 7,176,191, 38,188,133,133,133,218,171, 87,175,106, 39, 77,154, 68, 18, + 19, 19,143,184,185,185,189,117,244,232, 81,105,159, 62,125,116,183,110,221, 58,169, 86,171,219,119,238,220,217,238,240,165, 75, +201,197, 15, 31, 30, 58,244,232,145,167,145,227, 14, 85,247,124,190, 72,145, 85, 81,108,237,159,247,232,235, 3, 95, 63,234,204, +233,176, 87,159,139,223, 0, 36, 61, 7,231, 89, 66, 72,192,224,193,131,119,117,235,214,237,245,128,128, 0,212,169, 83, 7,247, +239,223, 71,102,102, 38,110,220,184,129,168,168,168, 40,173, 86,251,204, 13,181,179,179,179,255,182, 61, 17,145, 56,170,127, 88, + 57, 59,234,247,243,173,252,218,133, 15,147, 52, 85,115,208, 27, 40, 18, 31, 63,196,156, 25,235,139, 83, 31,199,222, 49,152, 12, +189,255, 5, 49,180,206,198,197,197, 5,179, 44,251, 66,195, 45,212, 54, 44,132, 13, 47, 80,104,197,197, 37,222,241,241,241,154, +182,111,239,158, 54,148, 50, 44, 37, 68,163, 80, 40,163,158, 60,121,146, 87,254,186, 6, 42,149,124,196,168, 17,253, 9, 71,248, +132,112,102,142,101,126,141,139, 75,172,214, 98,164,215,235, 71,247,239,223,127,185, 84, 42,157,158,147,147,115, 93,161, 80,252, + 17, 24, 24, 56,151, 82, 58,163,164,164,228,128, 92, 46,191,244,250,235,175,207,175, 91,183,238, 82, 74,233,149, 26, 62,220, 38, + 60,245, 15,219,252,130, 77,185, 95, 82, 74, 29, 14,146, 20,204, 0, 0, 32, 0, 73, 68, 65, 84,120, 60, 94,254,205,155, 55,119, + 52,106,212,104, 32,165,212,129, 16,146, 95, 91, 78,173, 86, 59, 46, 47, 47,207,233,131, 15, 62, 48,174, 93,187,182,209,176, 97, +195, 34,111,223,190,205,215,106,181,113, 53,204,179,142, 16,210,179, 95,191,126,235,249,124,126, 39,134, 97, 8,199,113,180,220, +231,160,148,194,108, 54, 31,124, 86,185,152,205,230,228,198,141, 27,255,101, 4, 93,153,127,174,209,104, 76,182,186,179,209,155, + 39,172, 58,117,123,161,214, 72,169,137,163,163,239,165,107, 42, 93,114,118,249, 30,109, 98, 53,167,150,155,176,252,216,157,133, + 58, 35,199,153, 56, 58,166, 42,206, 26,117,138,175, 8, 39, 0, 68, 42,182,238,199,154,173,101,142,241,150,233,196,138,175, 95, + 36, 44, 86, 39,212, 48, 98, 51, 51,230,169,179,252,179, 4, 95,109,249, 43,138,174,154,162,111,223,190, 47,205, 31,197, 96, 48, +124,209,163, 71,143,185, 10,133,226, 63,153,153,153,215, 21, 10,197, 29,127,127,255, 9, 28,199, 45, 45, 46, 46,142,146,203,229, +221, 91,182,108, 57,177, 94,189,122, 63, 36, 80,250,195,179,158, 77,139, 85, 7, 0,181, 60,151, 22, 33, 81, 94, 80, 24,141,198, +164, 90,148, 97, 10, 33,228, 51, 0,245,241, 52, 0,239, 3, 74,233,115,149, 13,165, 52, 5, 64, 27, 66,136, 55,128, 78,120, 26, +191, 47, 15, 64, 60,128, 43,148,210, 27,181,230, 46,201, 78, 33,132,180,184,123,237,220,152,251,119,174,189,103, 89, 93,200,178, +194, 91,102, 67,241,102, 99, 73,238,250,127, 73,160,210,217,190,190,190, 14, 0,154, 3, 72,199,159,129,140, 19, 0, 44,123, 17, + 3,149,114,232,104,147, 68,207,165, 19, 62, 40, 63, 93,248,151,207, 94,102, 93, 36,132,116,126,209,251, 33,217, 56,109,156, 54, + 78, 27,167,141,211,198,105,227,252,247,113,190,234, 66,171, 18, 65,187,182, 74,139,150, 13, 54,216, 96,131, 13, 54,216, 96,131, + 13,214,163, 74,139, 22,128,206, 85,124,193,106,165, 90,155,213, 7,207,226,183,113,218, 56,109,156, 54, 78, 27,167,141,211,198, +249,239,227,252,255, 6,219,212,161,141,211,198,105,227,180,113,218, 56,109,156, 54,206,255, 57,231, 43, 45,166,108, 83,135, 54, +216, 96,131, 13, 54,216, 96,131, 13, 47, 7, 22, 81, 85,153, 83,188, 77,104,213, 92,181, 50, 0, 62, 4,208, 23, 64, 3, 0, 15, + 1,236, 1,240,125, 13,182,169, 40,207,103, 15, 32, 18, 64, 27, 60,221,189, 62, 30,192, 57, 0, 95, 81, 74,139,108, 37, 94, 57, +156,157,157,167,241,249,124, 5,240,116,107, 19,203,185,252,255,102,179, 57, 47, 63, 63,127,193, 75,170, 7,172,181,171,178, 44, +105, 45,159,182,242,103,163,209,248,210,210,105,195, 63,182, 29,241, 83,169, 84,219,114,114,114, 6, 81, 74,239,219, 74,196,134, +127, 19, 92, 92, 92,198, 24, 12,134,233, 2,129, 96,126, 70, 70,198,170,255, 71,207,117,165, 43, 15,203,132, 86,116,116,244, 25, + 0, 8, 15, 15,127, 3, 0,228,114,249, 5,134, 97,188, 75,191, 12,224,207,189,240, 42, 46,253,183,156, 57,142,139,207,206,206, +174, 50,128,154, 84, 42,189,192,178,172, 55, 33, 4, 12,195,148, 29, 70,163, 81,206,178,108, 97, 21,156, 73, 57, 57, 57, 33,255, +144, 66, 36, 0, 14, 41,149, 74,237,220,185,115,191,239,208,161,131, 87, 74, 74,138,105,202,148, 41,237,255,248,227,143,112, 66, +200, 59, 53, 17, 91,132,144,214,132,144, 31,130,130,130,246, 15, 29, 58,116, 87,104,104,168, 48, 59, 59, 91,190,103,207, 30,143, +205,155, 55, 95, 37,132, 12,170,105,136,139, 87,160, 34,242,170,138,103, 86,221,103, 21,193,231,243, 21, 73, 73, 73,242,210,145, +132, 69, 88,193,104, 52,194,104, 52, 66,163,209, 32, 48, 48,240,133,167,223,221,221, 61,152, 16,178,194,215,215, 55, 68,173, 86, +255, 14,224,163,148,148,148, 63,106,146, 86,147,201, 4, 74,105, 89, 58, 3, 2, 2,108, 45,115,205,234,208, 72,161, 80,248,182, +175,175,111, 43,157, 78,151, 27, 31, 31,127,217,108, 54,207,172, 46,232,101, 13,249, 29, 0,204, 20,137, 68,161, 13, 26, 52,240, +138,141,141, 77, 52, 24, 12,151, 0,124, 73, 41,205,127, 1,252,126,111,188,241,198,249,149, 43, 87, 58,142, 29, 59,246, 60, 33, +164,173, 77,108,217,240,191, 66,157, 58,117, 20, 26,141,102, 61,128, 96, 62,159,239, 38, 22,139, 33,145, 72,210, 68, 34,209,117, +137, 68,242,254,249,243,231,243,106,202,105, 54,155,103, 38, 36, 36,184,189,246,218,107,139,154, 54,109, 58, 39, 43, 43, 75,107, + 48, 24, 78,230,230,230, 78,164,148, 22, 84,247,221,138, 90,228, 85, 18, 89,229,207,165,237,253,159, 83,135,165,251, 10,117,248, +139, 2,227,241, 60, 19, 18, 18, 92,228,114, 57,204,102,115,153,181,192,210,169,149,247,237, 42,141,211, 4,127,127,127,195, 51, + 58, 28,175,164,164, 36, 23, 59, 59,187,178,247, 12, 6, 3,220,220,220,184,228,228,100, 23,177, 88,252,151,235,245,122, 61, 60, + 61, 61,255, 73,177, 80, 62, 84,169, 84,249, 79,158, 36, 6,106,117,134, 47, 71,141,155, 58,109, 80,223, 55,149, 23, 46, 92,224, +222,121,231, 29,221,153, 51,103, 62, 4,176,194,202,155,226, 64, 8,217, 60,101,202,148, 57, 98,169,189,227,169, 11,119,116,155, +247, 68, 39, 7,249,213, 39, 19, 39, 78,100,199,143, 31,127, 54, 56, 56,120, 27, 33,164, 69, 77, 44, 91,114,185,252,168, 72, 36, +170,199,178, 44, 12, 6,195,147,156,156,156,183,254, 65, 21, 49, 8,192, 53, 66, 72, 48,165,244,186,181,159, 85,135,236,236,108, +148,148,148,252,237, 8, 8, 8,192,139,246, 63, 36,132,240,188,188,188, 14, 44, 92,184,208, 35, 45, 53, 21,223, 46, 89,242, 26, +128,239, 1,188,102,205,247, 51, 50, 50,254,150, 78,127,127,127,216, 80,163,123, 16, 57,103,206,156,133,239,189,247, 30,204,102, + 51, 74, 74, 74,212, 15, 30, 60,104, 50,125,250,244,222,132,144, 86,148,210,184,231,228,119,246,245,245,141,153, 48, 97,130,170, + 85,171, 86, 40,221,165, 66,125,238,220,185,215, 54,108,216, 48,132, 16,226, 79, 41,205,124,158,223, 80,169, 84,219,214,173, 91, +231, 40,149, 74,113,240,224, 65,199, 78,157, 58,157, 35,132,180,171,173,216, 34,132, 48,142,142,142,227, 1,116,228, 56, 78, 8, +224, 82,110,110,238,188,218, 68,117,183,225,255, 23,156,156,156, 70, 22, 22, 22,174, 20,137, 68, 2,165, 82, 9,169, 84, 10, 30, +143, 7, 30,143, 87, 71, 36, 18,213, 17,137, 68, 93, 59,118,236,248,209,169, 83,167,170,141,176,255,122,176,219,112, 48,228, 75, +150, 48, 44, 0, 4,248, 58,218, 59, 56, 56,224,203, 47,191,148,245,236,217, 83, 6, 0,231,207,159, 31, 58,108,216,176, 78,132, +144,166, 85,137,173,202,180,200,171,130,170, 86, 28,254,197,162, 21, 30, 30,126,166,194,195, 11,137, 68,130, 93,187,118,129,101, +217,191,236, 26, 95,217,255,117,234,212,121,102, 66, 44, 22,177,168,168, 40,216,219,219,195,193,193,161,172,163, 17,137, 68, 56, +121,242, 36,248,124, 62,120, 60, 30,248,124, 62, 66, 66, 66, 80,205,134,246, 47, 5, 17, 77, 8, 5,128,221, 31, 63, 77, 87,196, +138,167, 65, 32,119,127,236,143,118, 13, 36,232, 59,126,118,255, 98,173,161, 37, 0, 77, 94,110,110,238,239,251,246,165, 4,249, +249, 9,182,109,219,214,202,195,195,163,175,181, 66, 11, 64,100,139, 22, 45,246,178, 18, 7,167,161,195,134, 15,125,159,199, 24, +134,140,158, 52, 63, 49, 53, 75,243,193, 7, 31,236, 59,120,240,224,208,175,191,254,250,238,228,201,147, 35, 1,124, 97,109,250, +133, 66, 97,189, 7, 15, 30,248,114, 28,135,102,205,154,253, 99,182, 49,176, 8, 41, 74, 41, 8, 33,127, 17, 84,213,125,246, 44, + 88, 44, 88,149, 29, 47, 26, 30, 30, 30,254,131, 7, 15,118,202,201,202,194,183, 75,150, 88,222, 14,121,214, 52,162,101,138, 80, +175,215,227,221,119,223, 29,108, 54,155,121, 22, 17,168,211,233,244,249,249,249,218,114, 43,123, 50, 41,165,111, 90, 81,158,222, + 50,153,236, 63, 0,130, 75, 74, 74, 60, 0, 64, 38,147, 37,115, 28,183, 95,163,209,124, 97,217,192,183, 22,247,201, 11, 64, 19, + 84,189, 21, 20, 93,184,112, 97,108,100,100,100,220,127,155,147, 16, 82,207,213,213,117, 65, 68, 68, 4,162,163,163,113,248,240, + 97,163, 68, 34,225, 13, 27, 54,140,124,244,209, 71,202, 9, 19, 38,116,197,115, 4,113, 44, 69,215, 57,115,230,168, 26, 55,110, +140, 61,123,246,224,198,141, 27, 37,190,190,190,146, 14, 29, 58,128,199,227,169,166, 77,155,246, 14,128, 31,158,231, 7,114,114, +114,230, 77,154, 52,105,243,142, 29, 59,228,241,241,241, 88,177, 98,133, 83,255,254,253,207, 16, 66,222,176, 86,108, 17, 66, 68, + 0,198, 3, 8, 99, 89,182,221,176, 97,195, 76,227,198,141,227, 51, 12, 99, 92,178,100,137,243,134, 13, 27,250, 59, 57, 57, 5, +103,101,101,217,220, 15,170, 1,203,178, 6,142,227,248, 0,196,148, 82,221,179, 94,255,155,242,238,232,232, 56, 54, 55, 55,247, +123, 55, 55, 55,184,186,186,254,173,175,213,233,116, 16,139,197, 2, 55, 55,183,117,189,122,245,226,255,244,211, 79, 85, 78, 1, + 18,150,204, 60,248,227, 92, 15,149, 82, 14, 0, 88,186,250, 88, 49, 0,252,244,211, 79, 72, 73, 73,129, 82,169, 68,211,166, 77, +217,185,115,231,186, 79,156, 56,241, 91, 0,239, 87,197, 85, 81,139,188, 74, 22,173,242, 98,171,252,235,106,125,180, 56,142, 43, +219,176,212, 34,168, 44, 34,168,226,255, 22,113, 86, 65,225,157,168,144, 16, 82, 84, 84, 84, 38,178,236,237,237, 81,218,185,194, +104, 52,254,141,215,108, 54,131, 16, 66,171,227,172, 34,195, 99, 1,156,164,148, 62,180, 82,137,150,113,238,254,216, 31,155, 69, + 83, 6, 90, 66,168,119,157,244,244,188, 25,192,133, 71,239,175, 88,249,198, 27, 30,227,103, 44,159, 93,146,157,146, 53,109,112, +247,122,190,110,142, 18, 89, 94, 70,190,170, 81,163, 46,120, 26, 81,217,218,116,182, 31, 58,116,232,150,227, 23, 19,136, 88, 44, + 16,240, 88,150,223,182,153,159,163,151, 3,235, 32, 7, 28, 18,227, 98, 47, 12, 31, 62,188,217,228,201,147,219,213, 36,239, 12, +195,192,222,222, 30, 91,182,108, 1, 99,197,222, 57, 47, 99,213, 72, 37,247,157,103, 17, 82, 57, 57, 57,136,142,142, 70,120,120, +248, 53, 66, 72,112,233, 37,215, 40,165, 40, 40, 40, 64,106,106, 42,220,221,221,175, 17, 66,248,229,167, 17, 43,114, 90,172,170, + 22, 81, 53,108,216,176,193, 38,147,137, 87,174,145,168, 40, 96,254, 38, 98,172,205,187, 90,173, 62, 14,224, 77,150,101,161,215, +106,245,255,249,230,155,242, 31, 95, 41, 47,178,170,226,180,164,213,108, 54,243,174, 93,187,198,183, 60, 51, 0,248, 0,100, 0, +156, 40,165, 96, 24,230,166, 21,229,233, 47,149, 74, 47, 68, 69, 69,217,135,132,132, 16,161, 80, 8,147,201,132, 91,183,110,121, +125,253,245,215,163, 79,156, 56,241, 14, 33, 36,160,226,230,233, 86,222,247, 38,231,206,157,211,248,248,248, 84, 42, 28, 11, 10, + 10,120,126,126,126,111, 0,136,251, 31,112, 38,165,167,167,247,122,243,205, 55,199,164,165,165,197,152, 76,166,207, 1, 52,117, +114,114,186,214,167, 79, 31, 72, 36,146, 48,107,132, 86,117,247,221,197,197,165,231,235,175,191,142, 21, 43, 86,224,235,175,191, +238, 76, 41, 61, 73, 8,233, 84, 80, 80,112,162, 71,143, 30, 80, 40, 20,189, 42, 19, 90,214,214, 37, 66,136, 95,251,246,237,215, +125,249,229,151,242,232,232,104,248,250,250,162,176,176, 16,159,125,246,153,203,172, 89,179, 78, 19, 66, 58, 88,196, 86, 85,156, +132,144, 0,145, 72,244,195,142, 29, 59,236,124,124,124,124, 4, 2, 1,227,227,227,131,156,156, 28,104,181, 90,209,252,249,243, +155, 73, 36,146, 63,150, 45, 91,246, 3,128, 62,255,237,231,189, 66, 90,243, 1,216, 3, 80,212,100,218,181,154,188,231, 3, 16, +149, 61, 60,124, 62,196, 98, 49,196, 98, 49, 68, 34, 17,238,221,187, 55, 67, 44, 22, 47, 41,223, 22, 87,199, 73,254,236,180, 2, + 9, 33,151, 89,150,173,246,117, 69,215,144,255,118,121,150,166,217,147, 16,178, 20, 64,216,211, 38,159, 57,227,228,228,244, 73, + 90, 90,218, 99,107, 57,213,106,181, 99, 81, 81,209, 50,119,119,119,184,186,186,150,245, 29, 30, 30, 30, 48, 26,141, 72, 79, 79, + 7,165, 20,121,121,121,144, 74,165, 80,171,213,203, 70,143, 30,189,103,205,154, 53,217,149,114,114,248,186, 71,255,233, 51, 89, +150,101, 0,128,229,217,217, 77,152, 10,212,171, 87, 15,109,219,182,133, 86,171, 69,126,126, 62,154, 52,105,194, 35,132, 12,101, + 24,198,158, 82,186,138, 82,122,234, 95,104,117,175,210, 25,126, 78,197,121, 81, 66, 8, 56,142, 3,143,199,251,139,208,170,120, + 88, 68, 81,105,125, 37,207, 50,113,235,245,250, 50,145,229,224,224, 80, 38,210, 76, 38, 83, 85, 66,171, 54, 74,189, 57,199,113, +222,132,144, 53,214,138,173,138, 24, 58,116,232,223,252, 61, 38, 78,156,152,148,145,145, 65,223,237, 18, 40,139, 57,146,146,218, + 64,105, 39,113,150,203,235,139,149, 42, 69,118,118,246,111, 0, 20, 53,248,137,134, 45, 90,180,144,108,222,119, 46,105,212,167, + 11,231,134,248, 56,218, 55,247,116, 82,186, 57, 72,132,118, 12,209,136, 77,198, 36,149, 74,229, 91,139, 17, 26, 0, 64,161, 80, +128,199,227,253, 35, 44, 90,148, 82, 19, 33, 36,152, 16,114, 45, 58, 58, 26,161,161,161,101, 98,203, 34, 66,242,243,243,113,235, +214, 45,180,111,223, 30, 0,130,173,241,213,226, 56, 14, 6,131, 1, 6,131,161, 76,192, 8, 4,130,191, 9, 24,203,181, 44,203, +222,172,101, 22,230, 42,149,202,246, 97, 97, 97,194, 31,119,237, 18, 82, 74, 53,120,186,241,117, 17,165, 85,108,144, 93, 1, 38, +147,169,204,202,198,231,243,241,228,201,147, 50,171,176,197, 50, 92,113,234,188, 42,136, 68,162, 73, 59,119,238,180,111,213,170, + 21,201,206,206, 6,199,113,101,141,228,247,223,127, 47,238,219,183,175,199,213,171, 87,167,161, 22,219,217, 0, 32, 85, 9, 34, + 0,176,183,183, 55, 1, 96, 94, 4,167,201,100, 34,109,218,180,153,156,149,149,213,172,164,164,100,190, 53,245, 8,192,193,210, +195,210,166,252, 17, 19, 19, 83,210,175, 95, 63, 73,253,250,245, 67,159,183,174,250,249,249,181,230,243,249,184,116,233,146, 14, +128,101,100,125,230,198,141, 27,186, 62,125,250,136,188,188,188, 90,215,160,193,245,243,247,247,255,217,197,197, 69, 98,177, 96, + 70, 68, 68,240,215,174, 93, 43, 79, 78, 78,134,193, 96, 64,100,100, 36,186,117,235, 6, 39, 39, 39, 76,156, 56,209,117,209,162, + 69,219, 0,180,168,134, 83, 44, 20, 10,183, 60,120,240,192,215,221,221, 93,114,241,226, 69, 52,111,222, 28, 89, 89, 89, 72, 75, + 75, 67, 81, 81, 17,210,210,210,240,254,251,239,187,124,251,237,183,234,127, 80,255,147, 39, 16, 8, 32,149, 74, 21,121,121,121, +207,227,231, 38, 2, 32, 44, 47,178, 68, 34, 17, 68, 34, 17,196, 98,241,115,237,203,250,138,116,226, 30,132,144, 59, 2,129, 64, + 36,149, 74, 5, 12,195, 64, 36, 18,117, 81,169, 84,183,223,122,235,173,166,199,143, 31, 79,176,134, 71,171,213,110, 17,137, 68, +124, 23, 23, 23, 0,128,175,175, 47,154, 55,111, 14,141, 70,195,229,231,231, 67,161, 80, 48,143, 31, 63, 70, 73, 73, 9, 82, 83, + 83, 81,183,110, 93, 62,195, 48, 91, 0,188, 83, 25,223,175, 87, 83, 87, 3, 88,109,121,237,236,236,156, 14, 64, 98,121, 45, 22, +139,225,225,225,129,228,228,100,200,229,114,118,214,172, 89,125,118,237,218,213,155, 16, 50,148, 82,186,181, 28,213,156, 87,213, + 71,203, 34,178,202,159,255, 34,180,194,195,195,103, 71, 71, 71,191, 81, 89, 71, 86, 58, 95, 91,165, 37,203,114, 88, 35,136, 8, + 33, 48,155,205,112,117,117,133, 84, 42,133, 84, 42, 5, 33,164,236,253,138,252,165, 35,252, 26,103, 86, 38,147,225,189,247,222, +163,171, 86,173, 26, 83, 42,182, 30, 88,251,221,136, 21, 49,101, 86,172,138, 8, 8, 8,184, 48,109,218,180,158,191,252,242, 75, +114,136, 79,125,158, 44,229,113,145,216, 94,161,128,103,157,240, 97,189,250,220,192,211,213,135,214,226, 65, 97, 97,161,164,129, +167, 84,207, 48, 90, 82, 71,196,147,187,203, 4, 34, 55,165,210, 67,160,215,101,216, 43,149, 66,157, 78,151, 7, 32,183, 58, 18, +123,123,251, 99, 34,145,168, 46,203,178, 96, 89, 22, 78, 78, 78, 14,148, 82, 40, 20, 10,120,122,122,218, 53,106,212,232, 62,143, +199, 3,195, 48, 40, 42, 42,122,252,232,209,163, 46,207, 74,152, 82,169, 60, 38, 18,137,234, 50, 12, 3, 66, 8, 88,150, 45, 91, +184, 96,249,159,101, 89, 16, 66, 80, 92, 92,108, 21, 39,165,244, 58, 33, 36, 56, 60, 60,188, 76,108, 29, 57,114, 4,111,191,253, + 54,242,242,242,112,251,246,237,242, 34,203,170,105,195,242,206,239,148, 82, 8, 4, 2,220,187,119,239, 47, 83,218,150, 67, 46, +151,215,250,225, 81,169, 84,231, 35, 34, 34,176,110,221, 58, 74, 41, 37, 0,100,132,144,230, 14, 14, 14,247,238,220,185, 99,149, + 31, 12,165, 20, 6,195,159,151, 90,234,120,249,231,171, 6, 98,186, 75,139, 22, 45, 72,126,126,190, 69, 64,150, 13,136, 88,150, +197,202,149, 43, 37,173, 90,181,154, 46, 22,139, 39, 11, 4,130, 2,163,209,248,163, 86,171,157, 79, 41,205,251, 39, 53, 74,237, +218,181,251, 52, 49, 49,177, 91,221,186,117,163,158, 67,196,211,150, 45, 91,234, 1, 72, 88,150,229,191,128,134,146, 45,173, 91, + 90,139,216,167,148,154, 90,180,104,161, 45,237,228, 89,107,185,156,156,156,182, 29, 62,124,216,179,110,221,186, 48, 26,141, 48, +153, 76, 40, 42, 42,194,153, 51,103,160,211,233, 96, 50,153,224,235,235,139,153, 51,103,106, 63,249,228, 19,241,154, 53,107, 50, +138,138,138, 6, 61,131,246,147, 61,123,246,200,220,221,221, 37, 37, 37, 37,136,139,139, 67,139, 22, 45, 80, 88, 88, 8,141, 70, +131,226,226, 98, 24, 12, 6, 20, 20, 20, 40,204,102,179,254,159,114,175,121, 60, 30, 68, 34, 17, 4, 2, 65, 94,221,186,117, 65, + 8, 17, 39, 36, 36,212,102, 42,206, 30, 64, 1,159,207, 23,150, 23, 88, 34,145, 8,151, 46, 93,154, 38, 20, 10, 43,181,102, 85, + 87,127,106,242,250, 31,208,145, 47, 21, 8, 4, 34,149, 74, 37, 40,215, 79, 11,236,236,236,224,226,226,178, 2, 64, 87, 43,243, + 29,164, 82,169,202,218,247,192,192, 64, 36, 38, 38,238,207,207,207, 31,146,145,145, 1,134, 97,182, 48, 12,211,219,162, 3,114, +115,115,225,229,229, 21, 84, 21, 95,155, 22,238, 99, 64,104,153, 69, 43,160,161,202,174, 66, 63, 5,123,123,123, 60,122,244, 8, + 26,141,134,198,198,198,146,177, 99,199, 18,189, 94,191,137, 16,242, 27,165, 52,190, 58, 45,242, 42,160, 86, 62, 90,150, 2,174, + 74, 88, 85, 20, 94,214, 8, 34,189, 94,111,215,162, 69, 11,206,210,129, 91, 14, 0,164, 42,161, 85,106, 57,168, 49,248,124,190, +124,236,216,177,133,171, 86,173, 26, 77, 8, 89, 75, 41,141,173,109, 1, 70,237,221,225,250,245,204,200,153, 42,117,253, 6,147, + 39,207,224,117,239,222,253,226,230,205,155,205,170,198, 93, 59,157, 58,182,213,117,217,103, 83,142, 28, 62,124, 24,120,234, 24, +109, 45,206, 31, 58,116,200,109,226,248,143, 48,115,210, 39, 71,237,125,157,132,118, 68, 37, 19,235, 52,153,118,160, 37,162,134, +254,221,246, 69, 69,165, 2,184, 90, 29,137, 68, 34,169, 27, 27, 27,235, 91, 94, 72, 24, 12, 6, 40, 20, 10,108,222,188,217, 89, + 46,151, 59,219,217,217,129,199,227,161,121,243,230,214, 90, 76,234,222,191,127,223, 87, 46,151,163,184,184, 24, 58,157, 14, 70, +163, 17, 28,199,129, 16, 2, 62,159, 15,161, 80, 8,153, 76, 86,163,149,125,229,197,214,145, 35, 71,208,164, 73, 19,228,230,230, + 34, 38, 38,166,198, 34,171,188,149,168,188, 63, 22,143,199,195, 54, 31, 31,140, 74, 73, 41, 19, 48, 75, 29, 28, 48,147,227,106, +117,239,155, 53,107, 70,127,253,245, 87, 28, 61,122, 20, 61,122,244, 32, 7, 14, 28, 48,152,205,102, 65,114,114,178,213,214, 49, +142,227,202,210,106,105,183,203, 11,172,154, 10, 45,147,201, 36, 23, 10,133,208,106,181,101, 83,251,229, 15,111,111,111,228,228, +228,240, 10, 10, 10,120, 41, 41, 41,210,121,243,230,141, 59,125,250,180, 59,128,129,255,203,134,104,213,170, 85,117, 71,141, 26, +245,132,199,227,209,183,223,126,123,240,227,199,143,123,185,187,187,159,252,229,151, 95,190, 1,224, 87, 83, 62,103,103,231, 43, + 60, 30,207,211,206,206, 78,176,123,247,110, 99, 97, 97,161,192,197,197, 37,221, 34,108, 45,101,109, 52, 26,147,242,243,243, 67, +172,225,115,118,118, 22,124,247,221,119,198,236,236,108,129,155,155, 91,186,133, 71, 38,251,191,246,190, 60, 46,170,178,125,255, +122,206,153,149,217, 24,214, 1, 4,193, 13,113, 55,220, 3, 21,211,212,164,222,212, 76, 95, 77,211, 80,204,236, 87,154,169,245, + 85,223,220, 73,211, 52, 51, 83, 94,247, 50,211,108, 51, 51,115, 9,114, 41, 53,169, 20,196, 5, 18,217,215, 97,103,152,237,204, +249,253,193,204, 52,224,192,204,224,160,216, 59,247,231,115, 62,156,153, 51, 92,231,217,159,235,185,159,251,185,111, 49,239,240, +225,195,186,138,138, 10,158, 92, 46,255,173,172,172,204, 38, 94,113,113,241, 11, 47,190,248,226,217,211,167, 79,123,211, 52,141, +187,119,239,162,164,164, 4,114,185, 28,251,247,239, 71,112,112, 48,190,248,226, 11,165, 82,169,156,249,222,123,239, 45,173,170, +170,178,199,213,195,144, 1, 3, 6, 4,151,149,149, 65, 46,151,163,186,186, 26,191,253,246, 27,186,117,235,134,220,220, 92, 80, + 20, 5,185, 92,142,109,219,182,213, 16, 66,148,173, 97, 2,162,105,218,172,117,178, 32, 71,181,131, 6, 13, 66, 66, 66,194, 34, + 71,200, 17,203,178, 26, 46,151, 91,143, 96, 89,220,235, 29, 77, 27,195, 48, 60,163,141, 40,177,231,115, 43,144,161,110,110,110, +188,134, 95,214,212,212,240,252,253,253, 7, 59, 64,124,189,220,220,234, 20, 78,193,193,193, 40, 47, 47,103, 52, 26,205,164,253, +251,247,235, 0,160, 79,159, 62,147, 24,134,169,213,235,245, 52,159,207, 71,117,117, 53,124,125,125,189, 26, 5,164,176,248,219, +131,171,253, 26,218,104,249,251,251, 35, 60, 60, 28,106,181, 26,121,121,121, 72, 76, 76,212, 49, 12,115,224,227,143, 63, 54,248, +248,248,188,244,220,115,207,209, 87,174, 92,121, 21,192,252,166,184,200,163,162,205,106,140,108,153, 78, 29, 14, 5,144, 0, 32, +202,148, 73,203,173,195,166, 52, 89, 13, 52, 90,196, 70,135, 43,203,206,206, 22,139,197, 98,243,119, 58,157, 14, 1, 1, 1, 6, +131,193, 64, 26,190,199,148,142,230, 10,151,203,149,190,253,246,219,101,219,182,109,155, 6, 59, 13,202, 15,191,218, 5,251, 26, +144,172,237,235, 86,110,253,112,221,106,207,180, 31,246, 96,231,150, 13, 12,195,224, 74,207,158, 61, 7, 87, 85, 85,113,220,197, + 58, 20,151,225, 56,234,252,104,177,118, 86, 8, 5, 96,247,165, 75,151,174,140, 25, 51,230,252,238,207,191,244,204, 77, 79,255, + 69, 80, 81,156, 39,235, 20,202,225,181, 9, 30, 87, 89, 91,203,155, 52,105,146, 15,128,231,154,194,162, 40, 10,233,233,233,200, +200,200,128, 68, 34,129, 84, 42,133, 68, 34,129, 76, 38,131, 84, 42,133, 84, 42,117,184, 12, 41,138, 2,195, 48, 56,114,228, 8, + 68, 34, 17,196, 98,113,189,203, 68,178,238,167,110, 70,143, 30, 13,165, 82, 9,137, 68, 98,222,238,116, 68, 76, 54, 90, 26,141, + 6, 26,141, 6, 90,173,150, 1,192,229,112, 56,136,201,206, 54,107,121, 28, 33, 48, 13,165, 87,175, 94,236, 47,191,252,130,243, +231,207,163,186,186, 26, 31,126,248, 33,252,253,253,159, 0,176,204, 81, 44, 11, 35,125,166,162,162,130, 91, 81, 81, 97,214, 14, +114,185, 92,179,198,208,222,201,129,195,225,152, 87,163,166,203, 82,171, 69,211, 52, 20, 10, 5,252,252,252,176,125,251,118, 94, +187,118,237,158,126,152,131,208,250,245,235, 59,109,222,188,121,215,190,125,251,142,191,240,194, 11,135,174, 93,187, 54,195,221, +221,253,234,153, 51,103, 86, 11, 4, 2, 67, 51,251,119, 96,110,110,174,175,229, 87, 6,131, 65,164,215,235,205,196,182,166,166, + 6, 61,122,244,176, 27, 47, 37, 37, 69, 4, 0,171, 87,175,230, 2, 16,153,220,134,152, 48,107,106,106,184,221,186,117, 11,180, +147, 20,220, 36,132, 12, 30, 49, 98,196,133,147, 39, 79,122, 4, 7, 7, 35, 39, 39, 7, 57, 57, 57,232,212,169, 19,214,174, 93, + 91, 93, 81, 81, 17, 97, 36, 87,223,216,153,237, 0, 15, 15, 15,110,102,102, 38,244,122, 61, 30,123,236, 49,108,219,182, 13,147, + 38, 77, 66,143, 30, 61, 80, 81, 81,129,148,148, 20,236,221,187,215,131,199,227, 61,247,176, 39, 31,227,214, 86,163, 87,115, 68, +175,215,203,132, 66, 97,133, 64, 32,224,155,236,179, 18, 19, 19, 29,214,102, 89, 46, 0, 29,249,220, 26, 72,107, 67,225,243,249, +240,243,243,179, 27, 71, 32, 16, 16,211,216,168,215,235, 81, 94, 94,206,248,251,251,155,183,247,147,146,146,152,144,144, 16,134, +166,105,154,207,231,131, 16, 2,145, 72,212,232,128,207, 50,236,202,103, 38, 45, 51,159, 58,164,184, 98,217,188,183,235, 22,253, + 73, 73, 73,208,106,181, 72, 76, 76,212,189,247,222,123,185,101,101,101,243, 0,112, 78,156, 56,241,226,162, 69,139,104, 95, 95, + 95,179, 29,173, 53, 46,242,168,145, 45,107, 90, 46,211, 44,148, 16, 29, 29, 77,140, 71, 43,137,137,224,176, 44,123, 15,185,106, +140,120, 25, 39, 9, 98,171,211,209, 52,141, 31,126,248,193, 76, 8, 76,167, 14, 89,150,133,179,137,150,151,151, 87,245,128, 1, + 3,100, 89, 89, 89,159, 53, 87,147,181,125,221,202,173,113,171,222,241, 84, 94,255, 21,217,185,121, 80, 22,234,174,156,187,122, +231, 43, 0, 95, 1, 0,118,116, 77,192,236,235, 31,217,139,217,213, 71,212,187,103,128,244,171, 39,199, 60, 29, 52, 49,118, 62, +245,202, 43,175, 68,190,248,226,139,229, 47,188,240,194,107, 18,137,164,179, 86,171, 45,253,242,216,177,140,137, 19, 39,182, 99, + 24,230, 69, 91, 62, 71,116, 58,221,221,241,227,199,155,203,214,207,207, 79,118,240,224, 65,133, 84, 42,197,212,169, 83,139, 50, + 50, 50,204,219, 69,149,149,149,119,237, 73,163, 86,171,189,219,187,119,239, 70,183, 11, 77, 26, 73, 71, 48,141,117,105, 62, 93, + 88, 82, 82,130, 27, 55,110,128,195,225, 96,224,192,129, 56,119,238, 28, 34, 35, 35, 29, 58,113, 88, 91, 91,139,224,224, 96,212, +214,214,162,186,186,186, 6,128, 96,127,187,118, 0,128, 87, 75, 74,240,219,123,239,225,215,184,184,102,181,163,222,189,123,179, + 23, 47, 94,196,213,171, 87,161, 86,171, 49,115,230, 76, 24,183, 13, 1, 96,164, 3,121,238,224,231,231, 55,122,204,152, 49, 1, + 0, 80, 93, 93, 77, 46, 93,186, 4,161, 80, 8, 66, 8,242,242,242,112,244,232, 81,228,228,228,128, 16, 2, 15, 15,143, 64, 66, + 72, 59,150,101,239, 52, 49, 49,144, 59,119,238,224,221,119,223,133,193, 96,192,162, 69,139, 16, 26, 26,106, 38, 88,119,239,222, +197,234,213,171,193, 48, 12,222,121,231, 29,116,234,212, 9, 58,157, 78,232,136,159, 50,103,203, 27,111,188,145,246,213, 87, 95, + 29,207,202,202,122,106,221,186,117, 67, 9, 33,134,133, 11, 23,190, 43,147,201,152,251,193, 45, 45,175,196,141,219,119,205, 68, +168,225,229,227,237,233, 48,222,173,244, 44,243,255, 51,140, 37, 30, 3, 47, 79, 15, 71,147, 88,163,211,233,170,199,141, 27, 39, + 63,114,228, 8,233,212,169, 19,254,250,235, 47,211,226,180,166, 25, 46, 29,114,148, 74,101, 40, 77,211,188,219,183,111, 35, 36, + 36, 4, 3, 6, 12,192,154, 53,107, 80, 92, 92, 12,189, 94, 15, 95, 95, 95,131, 78,167, 75,210,104, 52, 63, 63,236,137,199, 82, +235,100,121, 37, 38, 38, 46,226,243,249, 44,128,139, 0, 28, 34,218, 44,203,106,218,182,109,219, 16, 91,143, 86, 34, 45,121,146, +209,223,223, 63, 81, 42,149, 62, 93, 90, 90, 90, 79,171, 21, 17, 17,161, 85, 40, 20,103,237,197,145, 72, 36,165, 52, 77,123, 1, + 64, 78, 78, 14,196, 98, 49, 47, 61, 61, 61,142, 16,242, 22, 0,180,107,215, 46, 78,169, 84,242,218, 25,199, 83, 63, 63, 63,104, + 52,154, 70,205, 88, 46, 36,229,239, 1,176,199, 98,238,205, 43, 47, 47,119,219,176, 97, 67, 85, 92, 92,156,138, 97, 24, 53,128, + 51,101,101,101,102, 63, 90, 33, 33, 33,229, 92, 46,215, 83, 46,151,183,177,128,186,135,139, 60, 74,210,164, 70,203,200, 36, 89, + 43,255,100, 85,147,101,141,108,217,163,149, 32,132, 64,165, 82,213,211,142,152, 78, 29, 90, 35, 90,198, 9,189, 89, 91,135, 70, +146,229,118,240,224,193, 3, 91,182,108, 57,111,239,255, 89,218,104,237,216,184,106,157,137,100,253,121,254, 36,190, 73, 45, 47, + 94, 20,183,105,115,115, 43,161,155,143,184,151,159,194, 59,225,189,181, 43,101,105, 63,236,197,161, 29,239,179,127, 94,190,220, +255,242,229,203,211,230,206,157,219,214,216,176,148, 0,254, 0, 48,209,158, 83, 58, 69, 69, 69,245,236,163, 66, 67, 67,111,202, +229,114,133, 80, 40, 68,122,122,122, 85,114,114,178,195, 91, 50, 13, 49,157,196,244,235,145,172,228,228,100, 12, 27, 54, 12, 0, +112,238,220, 57, 68, 68, 68, 56, 68,182,116, 58, 93, 89,215,174, 93,205,218,173,242,242,114, 3, 0,196,230,229, 33,222,223, 31, + 28, 14, 7,191,198,197, 97,137, 78,135, 53, 92,199, 76,119, 30,123,236, 49,246,242,229,203,200,200,200,128, 94,175,199,179,207, + 62,107, 73,178, 28,201,115,143, 46, 93,186,156, 58,115,230,140,143, 68, 34, 65,117,117, 53,170,170,170, 48,125,250,116, 76,154, + 52, 9,106,181, 26,135, 15, 31,198,183,223,126, 11,169, 84,138,234,234,106, 84, 87, 87,123, 68, 71, 71, 95, 32,132, 12,105,204, +182,144,101, 89,118,212,168, 81, 56,123,246, 44,104,154, 70,255,254,253, 81, 82, 98, 62, 12, 4,133, 66, 97,237, 25,109,236,239, + 15,101, 66,226,112, 56,108, 98, 98,226,186,161, 67,135, 34, 43, 43,235,169, 62,125,250,124, 56, 99,198,140,156,251,197,245,112, +151,162,119,183, 14, 80,171,213, 80,171,213, 8, 8, 8, 64,101,101, 37,210,210,210,160, 86,171,161,240,149, 59,140, 23,222,163, +147, 25,207,215,215, 23,213,213,213,184,115,231, 14, 52, 26, 13,188,189, 61, 28,169,255,160, 81,163, 70,253,116,224,192, 1,175, +189,123,247,106,162,162,162,248, 31,126,248, 33,145,201,100, 40, 44, 44,108,110,150, 19,207,157, 59, 23, 60, 98,196,136,176,235, +215,175, 35, 49, 49, 17, 26,141, 6,225,225,225,184,117,235, 22, 6, 13, 26,132,170,170,170,139,151, 47, 95,254,182, 53, 76, 60, +166,109, 61, 11,205,211, 18,185, 92,174, 5,176,249,126,218, 98,102,102,166,160, 87,175, 94,106,161, 80,200, 55,146,182, 77, 15, +171,109, 91,169,247,251, 58,201,216,148,248,249,249,205,243,246,246, 30,209,190,125,123, 20, 20, 20,240,248,124, 62, 34, 34, 34, +180,253,250,245,211,250,249,249,189,234, 64,189, 92,231,241,120, 67,234, 22, 19, 12, 50, 51, 51,193,178,236,162, 30, 61,122,188, + 94, 89, 89,137,146,146, 18,190, 76, 38, 51, 47,170,195,194,194,160, 86,171,175, 59, 64, 54, 87,134,132,132, 44,229,241,120,107, +138,138,138, 62,182, 82, 70,252,222,189,123,203,120, 60, 30,180, 90,109, 61,178,105,141,139, 60,202, 36,171, 30,209,178, 96,145, + 13,213,233, 54,183, 13,237,181,209, 34,132, 64,163,209, 64, 44, 22,155,183,164, 44, 61,193, 91, 35, 90,205,145,160,160, 32, 12, + 24, 48,192,237,208,161, 67,159,110,216,176,225, 66,115, 48,190, 56,240,137,191,187,161, 38, 40,247,226,247,184,121,245, 10,190, + 74, 41, 43, 94, 20,183,233,181,103,158,155, 92,208,144,152, 29,158,109, 27,175,179,175,184, 71, 27,133, 87,194,198,245,113, 50, +229,245, 95,145,151,159,143,239, 47, 94,190,162, 97,217, 20, 0,139,156, 85,217,150,167,215,154, 75, 82, 91, 96,224, 49,187,119, + 40, 46, 46, 70, 74, 74,138,137,100,133, 3, 64,100,100,100,146,137,108, 93,185,114, 5,125,250,244,185,199,189,195, 61,154,135, +210,210,181, 13,222, 49, 2,128,183,137,240,115, 56, 28, 68, 44, 93,234, 48,201, 34,132,176, 12,195, 64,169, 84,154, 86,138,205, + 34, 89,198, 65,241,205, 51,103,206,248,236,222,189,187, 98,223,190,125, 37, 6,131,129,219,187,119,239,192,190,125,251,146,253, +251,247, 3, 0, 38, 78,156,136, 69,139, 22, 33, 57, 57, 25, 98,177, 24,145,145,145,204,242,229,203,125,231,205,155,247, 42,234, +252, 36,221, 35, 12,195,240,218,181,107,119, 26,192, 19,215,175, 95, 7,128, 11, 44,203, 70,152,158, 55,245,204, 14, 49, 84, 86, + 86,114,165, 82,169, 85,215, 16,188,186, 99,157,142,110,245,153, 49,207,159, 63,255,238,198,141, 27,191, 90,176, 96,193,237,251, +196,180,170,209,122,250,233,167,161, 82,107,145, 93, 80, 14,134,209, 67,165, 45,116, 24,207, 82,163,245,244,211, 79,163,166, 86, +131,204, 60, 37,244,122, 6,149, 42,189,189,237, 72,244,228,147, 79,158, 56,120,240,160,223, 47,191,252, 2,134, 97, 12,183,110, +221,186, 51,110,220, 56,217,194,133, 11,189, 44,108, 80, 29,149, 45,147, 39, 79,158,112,254,252,121,101, 88, 88,152,231,197,139, + 23, 81, 88, 88, 8,189, 94,143, 39,158,120, 2,124, 62, 63, 51, 46, 46,142, 7, 96, 75,107, 33, 90, 2,129, 0,151, 46, 93,114, + 10,193,178, 20, 62,159,223,236,237,199, 71, 85, 46, 94,188,152, 51,119,238,220,110, 50,153,108,243,224,193,131,135,121,121,121, + 81, 30, 30, 30,137,109,218,180,121,189, 87,175, 94,118,239, 46,112,185,220, 25, 98,177, 56, 77,175,215,211, 85, 85, 85,168,174, +174, 6, 0,232,245,122, 62, 69, 81,104,215,174,157, 89,121,210,191,127,127,248,249,249, 49,169,169,169, 51,236,197, 47, 44, 44, +172,119, 10,209,138,204,142,136,136,224,168,213,106,100,100,100,156,179,124,208, 24, 23,105,237,210,172,160,210, 20, 69,129,101, + 89, 8,251,246, 69,222,201,147, 56,114,228, 72,147, 47,217,177, 99, 7, 26,170,250, 26, 70,247, 54,157, 46,156, 53,107,150,249, + 55, 87,174, 92, 49, 27,197, 63,251,236,179,245, 48, 47, 93,186,116, 15,217,178, 39, 98,120, 97, 97,225,245,195,135, 15, 95, 94, +191,126,253, 69, 59, 11,200,140,105,178,209,154, 48,101,106,222,214,119,255,115,109,223,209, 51, 61,242, 84,108,222,162,184, 77, + 11, 26,146, 44,123, 49,187,250, 73,186, 6,250,122, 37,110, 88, 31,231,110,210,142, 29, 76,202, 47,135,158,157,237, 96, 69,218, +204,187,165,102,145, 16, 98,112, 6,102, 51, 26, 92, 61, 76, 75,247, 14,121,121,121,102,146,101,225,176, 52, 60, 50, 50, 50,201, + 72,178, 76,207,244,205, 73, 39,135,195,193,130,170, 42,112, 56, 28, 68,173, 88,129, 39, 86,173,114, 56,239, 12,195,128,195,225, + 32, 52, 52,212, 97,146,101,137, 73, 8,137,168,169,169,193,222,189,123, 43,111,223,190,221,161,125,251,246,243,246,236,217,179, + 73, 36, 18,213,251,159,154,154, 26, 60,243,204, 51,248,248,227,143, 49,106,212, 40,221,140, 25, 51, 4, 20, 69,141,104, 42,157, + 25, 25, 25,179,135, 15, 31,190,163,182,182,150, 83, 82, 82, 50,219,222,103,182,242,126,248,240,225,219,161,161,161, 67,209,184, + 11, 7, 3,128, 95,238, 7,115,243,230,205, 0, 16,118, 63,152,141,105,180, 62,255,252,115, 24, 12, 6, 4,249,201,161, 86,171, +209,176,172,109, 97, 54,212,104, 29, 58,116, 8, 6,131, 1,109,253, 61,161,209,104, 96, 50, 32,182,133,233,229,229,245,254,190, +125,251, 2, 83, 83, 83,145,157,157,141, 77,155, 54,221, 45, 43, 43, 27, 83, 86, 86, 38, 88,190,124,121,194,148, 41, 83, 20, 6, +131, 65,237,104,223,100, 89, 86, 77, 8,153,241,248,227,143,239, 95,189,122,245, 95, 93,186,116,105, 27, 17, 17, 33, 47, 41, 41, + 41,250,253,247,223,239,236,216,177, 67,162,215,235,103, 52,182, 37,245, 32,250,187,165,228,228,228,172, 48,106, 83, 29, 34, 88, +246,164,243,210,165, 75,111, 27,177, 47,219,131,253,160,242,126,191, 39, 25,109,165,243,163,143, 62,202, 70, 3,255,104,142,166, +243,210,165, 75, 25, 35, 70,140, 88,165, 80, 40,150, 11,133, 66, 20, 21,213, 5, 59, 48,105, 30, 77,243,117,223,190,125, 49,106, +212, 40,220,188,121,115,213,210,165, 75, 51,238,167, 60,141, 11,238, 14, 0,166, 13, 31, 62,124,225,132, 9, 19,240,209, 71, 31, +129,101,217, 93,255, 4, 18,108, 51,168,116,116,116, 52,177,252, 11, 0, 58,157, 46, 43, 45, 45,205,191, 83,105, 41, 29, 64, 8, +250,247,239, 15,203, 24,133, 38,187, 29,147, 65,221,207, 63,255,172, 55, 24, 12, 77,250,172, 98, 24, 38,235,252,249,243,138,147, + 39, 79,114, 77, 21,106, 52,234, 52,228,230,230, 82, 9, 9, 9,102,237, 24,135,195, 65, 98, 98, 81,136,152,192, 0, 0, 32, 0, + 73, 68, 65, 84,162, 94,171,213,102, 58,154,225,155, 55,111, 58,101, 53,247,115,114,198,235, 39,190,255,218,123,224,128,193,101, + 50, 79, 79,171, 29,217,228, 65,190,201, 6,198,161,214,172, 91,187, 82,110, 34, 89,159, 39,229,151,213,170,153, 97,215,139,106, +254,116,118,101, 87, 86, 86,102,152, 78, 23, 86, 85, 85,101,182,162, 70,248, 59, 33, 36,220,223,223, 63, 9, 13, 78, 23,154,158, +245,233,211,231,158,103, 14,169, 77, 12, 6,184,187,187,155, 7, 9, 71,237,178, 8, 33,172,105, 43,219,152, 46,114,159,121, 62, +127,237,218,181,144,233,211,167, 75, 67, 67, 67,211, 9, 33,220,152,152, 24,173,159,159, 31,239,220,185,115, 58, 0,100,232,208, +161,156,252,252,124, 54, 39, 39, 71,249,175,127,253,171,114,214,172, 89, 94,127,252,241, 7,223, 96, 48,156,178,129,253, 23,128, +225,142, 62,179, 37, 19, 38, 76, 72,135, 21,199,161,247, 35, 45,129,105, 18,101, 89, 5,210, 51,114,140,177, 46, 13, 96,238, 22, +152,237,170,116, 58, 61,148, 21, 37, 14,107,180,210,238,228, 24, 67,142, 49, 96,152, 92, 35, 94,157, 65, 60, 91, 90, 99,143,182, + 32,114,243,230,205, 99, 40,138,162,126,253,245, 87,245,250,245,235,179,138,138,138,158,101, 89, 54,211,216,206,162,246,238,221, +251,169, 29,174, 28, 26,171,251, 20, 66,200,160,197,139, 23,191, 6, 32, 18, 64, 91, 0,153, 0,206, 1,216,210,202, 60,152,111, +122, 68,177,155, 45,143,202, 73,198, 83,167, 78,173, 24, 59,118, 44, 39, 56, 56,248,255,130,131,131,169,210,210, 82, 84, 85, 85, +129,162, 40,248,249,249,161,123,247,238,240,243,243, 51, 92,191,126,125,237,226,197,139,109,250,228,235,214,173, 91, 7,157, 78, +215,145,162,168, 14, 0, 58,176, 44,219,129, 16,210, 1,128,167, 81, 51, 38, 11, 9, 9,225, 12, 28, 56, 16, 3, 6, 12, 64, 66, + 66, 2,190,248,226,139, 61, 44,203,158,176,212,102, 53,228, 34,173, 65, 82,250,146,161,196,128, 4,150, 66, 84,183,223,216,196, +235,225,132,237,154,116,239,252, 96, 51,168,244, 61, 3, 78,105,233,168, 49, 99,198,156,164,105,186,157,181,137,203, 74,240,231, +140,130,130,130,167,154, 28,196, 74, 75, 71,189,254,250,235, 39,105,154,110,103,210, 84,233,245,122,181, 82,169,124, 37, 42, 42, +106, 27,151,203, 21, 88,226, 26, 12,134,187, 5, 5, 5, 15, 52, 86, 95, 67, 63, 90,163,198,140, 45,190, 95, 76, 9,143,234,120, +243,216,127, 81, 80, 88,140,207,147,242, 75, 43, 53, 76,212,205,162,234,107, 45,145,254,140,140,140,209,173,152,241,255,222,216, +150, 96, 83,207,236,148, 34, 59, 28,146, 22,217, 72, 31, 49,146, 45,167,116,242,252,252,252, 13, 75,151, 46, 29,185,118,237, 90, +159,227,199,143,203,140,239,192,248,241,227, 11,175, 93,187, 54, 24,128,160,182,182,246,212,218,181,107,125, 86,174, 92,233, 5, +192,203, 56,200, 20, 20, 20, 20,108,133, 75,154, 20,157, 78,151,221,189,107,152,169,238,234,185,116,176,188,215,235,245,217,142, +224, 89,195,177,252,204, 48, 76,182, 13,173,242,130, 1, 3, 6,208, 11, 22, 44, 40, 56,126,252,184, 41,144,110,141, 69, 59,187, +137, 38,156,146,218,217,151,212, 0,214, 27, 47,151,180,194,177,206,145,207, 15, 75,190,254,250,235,101,147, 38, 77,218,235,233, +233,249, 73,135, 14, 29,194, 20, 10,133,204,205,205, 13,106,181,186, 82,163,209,220,184,121,243,230, 11, 75,151, 46,253,203, 30, +172,189,123,247,210, 0,120, 6,131, 65, 72, 81,148, 24,128,140, 16,226, 97, 34, 90,132, 16,104,181, 90,100,100,100, 96,201,146, + 37,204,233,211,167,223, 3,240,142, 3,201,237, 7,192,199, 98, 28,247, 1,160, 65,157, 3,219, 34,163,102,179, 69,132, 24,144, +208, 53,137, 37,215,195, 73,163, 70,250, 54,131, 74, 55,210, 80,170, 1, 12,114,114,227,107, 10, 51,184,181,116,146, 23,213,235, + 63,195,142,245,245,226, 28,154, 72,152,213,207, 54, 54, 0,203, 85,250,185, 91, 78, 36,111, 80,235, 89,131, 86,111,120,233,102, + 97,117,202,255,240, 0,164,111,206, 51, 59,112,159,116, 82,250,136, 19,243,122,141, 16,242,248,220,185,115,151,137, 68,162,254, + 0, 80, 83, 83,243,107,110,110,238, 42,211,169, 66, 91,207, 93,210, 4,107, 46, 42,234,219, 26,241, 52, 26,205,235,143, 63,254, +248, 7, 12,195,108,212,233,116,231, 92, 53,229,146,214, 44,159,127,254,249, 95,166,121,249,249,231,159,167, 1,224,240,225,195, + 14,159, 6,158, 62,125, 58, 99, 12,100, 94, 11,160, 26, 64, 5,234, 28,110, 19, 0,168,174,174, 46,205,205,205,189,206, 48,204, +117, 0,159, 54,227,196,173, 15, 33,228, 59,150,101,159, 54,142,157,223,177, 44,251,180,229,119, 45, 45, 22,100,203,218,120,111, +219, 24,222, 37,117,114, 56,249,239,137,182, 33,129,178,245,185, 49,185,145, 95,149,120,191, 43, 88,151, 60,178,196, 50, 29,192, +139,205,125,238,146, 71,178,206, 51, 1, 60,235, 42, 9,151, 60,114,243, 95, 51, 8,150, 73, 82, 82, 82, 90,204, 68,224, 97,139, +229, 54,161,181, 45, 67,147, 88,211,102,185,136,150, 75, 92,226, 18,151,184,196, 37, 46,113, 73, 83, 36,210,104,163,101, 38, 81, + 70, 91,173,134, 36,203,146, 92, 89,126, 38, 0, 70, 52,178, 42,115,228, 52,193,136,102,172,250, 78,185, 48, 93,152, 46, 76, 23, +166, 11,211,133,233,194,252,223,194,108,166, 68,219,216, 58, 60,214, 82, 68,203,100,252,158, 18, 78,150,119, 75, 98,151, 91, 51, +134,111,138,104,213, 51,246,116,246, 5, 96,132, 11,211,133,233,194,116, 97,186, 48, 93,152, 46, 76, 23,230,125, 94,195,222,122, +235,173,183, 81, 23,255,152,125,235,173,183,222,102, 89, 54,186,142,198,176,209, 45,249,238,228, 62, 24,154,242, 24, 88,211,149, +220, 7, 67, 27, 41,147, 88,211,101,249,189,107,235,208, 37, 46,113,137, 75, 92,226, 18,151,180,118,185, 16, 23, 23, 87, 19, 23, + 23,103, 50,124, 47, 2, 64,140,218,172,162,150,124,177,113,155,208,230, 65, 41,155, 33,120, 30,180, 16, 66, 2, 40, 14,111, 42, +151, 39, 24, 6,214,208, 29, 0, 64,209,201,140,166,246, 39,189, 94,251, 9,203,178,185,205,197,238, 74, 72,215, 78,114,183,111, +213, 12,195,203,170,212, 76,184,206,178,151,154,131,243, 60, 33, 17, 2, 62,255, 71,129, 92,110,213, 75,161,186,172, 76,165,214, +104, 70, 30,102,217,243,174, 62,224, 18,151,184,196, 37, 46,121, 20,132, 16, 34,246,240,240, 56, 77, 81, 84,176,197,119,176,118, + 15, 0, 12,195,228, 41,149,202,145, 44,203, 22, 63, 72,204, 6,162, 1,112,169, 53,148,159,163, 91,135, 28,160, 94,108, 33,155, + 17,179,187,248, 75, 6,135,117, 8, 62,144,155, 95,144, 84, 81,171,137,185,145, 83,169,116, 52,145, 28,158,112,150,220,219,111, +205,191,103,188,238, 21,218, 57,140, 4, 5,181, 1, 88, 32, 51, 43, 91,145,118,251,214,240, 67,251,182,188,193, 19, 10,151,104, +107,107,255,235, 48,243, 36, 68, 28, 44, 17,156,251,239, 91, 83,228, 28,232, 49,121,245,129, 31,186, 17, 18,148, 82,231, 90,194, + 33,146, 37,247,242, 58, 17,119,234,148,155,135,209, 1,168, 5,107,173,139,175,247,231,159,110,255, 55,114,228,137,231, 9, 25, +229, 34, 91,255,200,193,200, 79, 38,147,205,227,114,185, 81, 90,173, 54,152,207,231,103, 49, 12,147, 88, 90, 90,186,153,101,217, + 28, 87, 9,185,196, 37, 54,251, 80,163,129,204, 31,102,144,115, 0,144, 74,165,191, 81, 20, 21,104, 73, 2, 76,254, 29, 27,250, +137,180,240, 23,249, 87, 73, 73,201,227, 77,228,183,131,167,167,231, 54, 0,253,108, 57, 76, 54,110, 53, 93, 86, 42,149,175, 24, + 79, 31, 91,195,147,122,120,120,172, 32,132, 60, 79, 81,148,205,128,194, 6,131,129, 97, 89,246,112,105,105,233, 59, 44,203, 86, + 54,246, 59, 15, 15,143, 83,169,169,169,253,124,125,125,109,106,105,244,122, 61, 50, 51, 51,125,250,247,239,255, 51,128, 46, 45, +137,233, 8, 23,121,152,210,212,201, 67,171,156,199,116, 99,111,196,108,131, 1, 83,119,175,121,165, 77,222,221,219,109,102,175, +253,172,115, 23,111, 81, 84,106,113, 77,190,189, 47,228,187, 73,191,141,124,226,233, 97,115, 94, 91, 32,254,253,218, 13,252,152, +240, 11, 42,170,213,160, 41, 10,114,169, 8,157, 59,119, 36,155,226,143,120,239,217,190,105,163,155, 68, 30,173,170, 42,251,151, + 35, 25, 18,139, 56, 75, 22,141,235, 47,246,242,100, 0, 3,131, 55,199,244, 22,255,223,119, 73, 75, 0,188,237, 48,201, 58,125, + 90, 84, 88, 80,128,149, 1, 1,224,232,245, 16, 82, 20,132,132, 64, 72, 81, 16, 11,133, 24,189,107, 23, 86, 29, 63, 46, 90,246, +212, 83, 46,178,245, 15, 19,169, 84, 58,163,115,231,206,235,119,238,220,233,213,190,125,123,136,197, 98, 40,149, 74,239,155, 55, +111, 62, 54,127,254,252, 23,221,221,221,151,150,151,151,239,112,149,148, 75, 92,210, 40,233,120, 12,128,213, 32,241, 77, 61,123, + 80, 66, 81, 84, 96, 78, 78,142,175, 72, 36, 2,195, 48,198,104, 0, 6,243, 66,218, 50, 82,142,209, 81, 45,186,116,233,162,181, + 49,110,124, 84, 88, 88, 56,194, 50, 20, 90, 83, 17,119,114,114,114, 70,116,235,214,237, 35, 0, 35, 27, 33, 47, 43, 94,123,237, +181,121, 61,122,244, 48,105,129,140, 81, 16,234,254, 22, 23, 23, 99,238,220,185,230,119, 24, 12, 6,156, 60,121,242,181, 25, 51, +102, 0,192,252, 38,242, 30,236,235,235, 75,102,207,110,218, 71,209,242,229,203,177,124,249,114,108,217,178,133,112,185, 92,185, +141,242,116, 10,166,189, 92,228, 97,104,176, 26,122,136,111,240,179, 99, 13,226, 29, 30,187,135,104,217,221, 56, 89,195,247,171, + 55,239,140, 89, 57, 61,146,236,158, 63, 34,244,229, 45,167,126,233, 22,224, 54, 36, 37, 87,149,101,135, 38,235,165,129, 67,158, +138,154, 59,111,145,248,179,175,207,224,230,245, 63,145,122,238, 96,189,223,244, 29, 57, 3,249,197,149,152, 49,231, 77, 9,161, + 57, 81, 60,161,232, 37,109,109,205,110, 59,181, 89,138,110,158,162,255, 55,176,127,119,110,142,219, 77,248,121,184, 33,178, 79, + 39,110,208,137,171,255,175, 27, 33, 31,164,176,172,205, 88,133, 13, 73,214,206, 41, 83, 48, 88,167,131, 47, 77,131, 38, 4, 52, + 0,138, 16,212,170,213,184, 60,117, 42,250,239,223,143,119,142, 30, 21,173,120,230, 25,135,201,150, 72, 36,218,163, 82,169,214, + 53,195,113,219,195, 28, 60, 59, 75,165,210, 37, 21, 21, 21, 83, 91, 81,154,252, 1, 20, 89,137,143,200, 3, 32,103, 89,214,161, +200,194, 66,161,112,214,228,201,147, 55,109,221,186, 85, 84, 80, 80,128,220,220, 92, 48, 12, 3,161, 80,136,208,208, 80,114,234, +212, 41,175, 69,139, 22,109,144,201,100,130,138,138,138, 15, 28, 72, 39,197,229,114,167,123,122,122,142, 85, 40, 20,190, 69, 69, + 69, 69,165,165,165, 71,213,106,245,238,230,174,236,141,152, 47,132,132,132,140, 13, 8, 8, 80,228,228,228, 20,103,103,103,127, +171, 86,171,247,176, 44,107,184,207, 50,237, 5,163,183,122, 0,121, 33, 33, 33,201,119,238,220, 41,116, 34,102,110, 72, 72, 72, +138,163,152,132, 16, 49,128, 67, 0, 2,108,252, 52, 23,192, 68,214, 65,109,182, 75,156, 71,178,140, 33,173,234, 17,170,166,158, + 61,104,113,115,115,195,193,131, 7,193,229,114,193,229,114, 81, 90, 90,138,192,192, 64,243,103, 30,143,103,190,111,219,182,173, + 77, 60,134, 97,250,211, 52,141,170,170, 42, 48, 12, 99,190,202,202,202,192,178, 44, 4, 2, 1, 24,166, 46,156,147,197,243,254, + 77,148,227,243, 1, 1, 1,248,236,179,207,160,209,104,238,121, 46,147,201,112,237,218,223, 65, 70,104,154,198,128, 1, 3, 40, + 66,200,243, 77, 17, 45, 66,234,156,110,198,198,198,130,166,105,115, 72, 61,211,189,233, 98, 24, 6,203,151, 47,135,101,104,178, + 7,137,217,234,218,117, 19, 30,226, 89,150,205, 3, 96,213, 70,139,106, 10,180,139,159,228,149, 55,166, 60, 89,179, 52, 38,154, +253,191, 23, 71,178,139,167, 68,177, 79, 13,233,249, 53,205,225,144,139, 41,153, 8,116, 7,246,204,237, 23, 28,228, 45,190,214, +195, 75,218,217,138,106,212, 50,160,116,128, 72, 44,123,247,149,215,223,148, 28,251,249, 42, 50,179, 50,239, 33, 89, 0,240,219, +143,123,144,151,155,131,164,212,108,188,240,210,171, 18,153, 76,254, 46, 33, 36,192, 26,102, 67,113,151,242,222,123,107, 98,164, +176, 74,151,139, 74, 15,128,238,192, 7, 87, 84,141, 69, 79,247, 18,200,164,188,245, 77,168,112,205,152, 2, 62,255,199,184, 83, +167,204, 36, 43, 66,173,134,128, 97,160,103, 24, 51,201,210,232,245, 80,105, 52,240,175,170, 66,218,140, 25, 96,117, 58, 44,253, +234, 43,145,128,207,255,209,158,116, 90,172, 0,198,200,100,178, 4, 66, 72,103,123, 42,185, 37,142,204, 58,232,198,163,179, 84, + 42, 77, 32,132, 60,213, 26,210, 73, 8,161, 8, 33,171, 99, 98, 98,174,116,236,216,241,140,145, 88,153,158,113, 58,118,236,120, + 42, 38, 38,230,119, 66,200,114, 66, 8,101, 39,102,155,128,128,128, 53, 91,183,110, 21,221,186,117, 11, 57, 57, 57,208,233,116, +152, 60,121, 50, 24,134,129, 74,165,130, 70,163,193,186,117,235,196, 94, 94, 94, 75, 8, 33,193,246,228,157, 16, 66,187,187,187, +239,221,183,111, 95,236,157, 59,119,252,126,250,233, 39,234,234,213,171,138,141, 27, 55,206,240,242,242,218,111, 12,184,234, 80, +121, 18, 66, 40,127,127,255,221,223,124,243,205, 43,215,174, 93, 11,252,242,203, 47,185,191,254,250,171,255,246,237,219,103,250, +251,251,239, 39,132,208,205,169, 35, 66,200, 99, 34,145,104,248,194,133, 11, 13, 23, 46, 92,200,185,112,225, 66,206,166, 77,155, + 48,120,240,224,136, 85,171, 86,133, 55, 19,179,143, 84, 42,125, 98,225,194,133,134,179,103,207,230, 94,188,120, 49,123,195,134, + 13,212, 19, 79, 60, 17,185,118,237,218, 94, 14, 98, 30,186,112,225,194,208,172,172,172,246,217,217,217,237,178,179,179, 67,178, +179,179, 67,114,114,114,130,243,242,242,218,230,231,231, 7, 21, 22, 22, 6, 37, 38, 38, 70, 2, 56,208,218,250,209, 63, 29,211, +216,150,147, 88,150,133, 82,169,196,177, 99,199, 96,212, 94, 61,102, 73,178, 42, 42, 42,144,151,151,103,122,198,121, 8,233, 4, +195, 48,102, 34,117,242,228, 73,196,196,196, 64,169, 84,154,191,227,112, 56,230,123,211,255,216,194, 52,105,158, 24,134,193,197, +139, 23, 49,123,246,108,108,218,180, 9, 7, 14, 28,192,119,223,125, 7,165, 82,105, 38, 91,122,189,222, 38,102,113,113, 49, 12, + 6,131,189,121, 68,121,121,185,221,245,110, 73,128, 56, 28,206, 61,164,200,116, 57,210,150,238, 7,179, 53, 75, 99, 30,225,237, + 17,115,227, 54,170,234,162, 44, 31,134,133,248, 45, 89, 63,239,121, 55, 48, 90,176, 58, 21,160,173, 1,180, 85, 48,104,106, 64, +120,110,128, 78, 5, 31,129, 18,135,230,132,201, 22,127,150,126,189,171,143, 44,250,122, 81,197, 15, 86, 73, 5,135,247,194,243, +211, 95,243,202, 46,172, 64, 78, 65, 57,104,234,239,121, 47,124,196,116,112,104, 10,151, 78,212, 41,174, 40,154, 70,121,181, 26, +101, 85, 90, 76,152, 62,207,243,191,155,254,243, 2,128,117, 77,101,164, 39, 33,161,131, 2, 60,199,117,235,214,150,186, 46, 72, + 69,248, 83,231,192, 24, 0,246,236, 51,120,172,212,151,238,242, 35,127, 92, 79, 66,214, 92,101,217, 91, 77,225, 8,228,114, 55, +143, 94,189,176, 50, 32, 0, 67,116, 58,240, 88, 22, 79, 22, 20,224,207,121,243,160, 62,114, 4, 20, 0,222,115,207, 97,216,230, +205,248, 57, 32, 0,126, 42, 21,202,222,120, 3, 62, 63,252, 0,158, 76,230,230, 72,225,243,120, 60,237,206,157, 59, 3,102,206, +156,153, 64, 8,137,106,205,154, 45, 66, 72,103, 79, 79,207,132,119,223,125, 87,177,108,217,178, 60, 39, 97, 42,196, 98,241,225, +234,234,234,121,142,174,104,141,196,105,245,142, 29, 59, 94,142,141,141,149,207,156, 57,147, 77, 75, 75,147, 3, 48,105, 71,124, + 6, 15, 30,220,113,231,206,157,126,253,250,245,123,109,246,236,217, 60, 66,200, 82, 91, 90, 30,137, 68, 50,103,231,206,157,222, +197,197,197,168,170,170, 50, 15,178,217,217,217,112,115,115, 51, 7, 85,231,114,185,120,247,221,119,189,230,204,153, 51, 15,192, + 60, 91,233, 21, 8, 4,211,183,109,219,214,105,212,168, 81,156,140,140, 12, 80, 20, 5,129, 64,128, 41, 83,166,112,107,106,106, +130, 87,174, 92, 25, 11, 96,155, 35,101,192,229,114, 95,136,143,143,239, 28, 17, 17,193, 73, 77, 77,197,160, 65,131,112,233,210, + 37, 60,247,220,115,220,202,202,202,118,139, 22, 45,138,105,108,133,213,148,214, 73, 36, 18,245,248,233,167,159,178,130,130,130, +204, 3, 75,187,118,237,152,232,232,104,101,106,106,106,216, 47,191,252, 82, 50,104,208,160, 76, 7, 48,219,136, 68,162, 46,223, +127,255,125,222,202,149, 43,135,239,216,177,227, 89, 0,232,223,191,255,183,171, 86,173, 58,163, 84, 42,187,159, 61,123, 86, 57, +120,240,224,108, 59, 33, 3,252,253,253,153,185,115,231, 74,154,250,209,174, 93,187,202, 0,180, 37,132,180, 55, 6,218,118,201, + 3, 16,150,101,245,132,144,112, 66, 72,210,177, 99,199, 48, 96,192, 0, 28, 59,118, 12,209,209,209, 73,150,100,224,218,181,107, + 24, 50,100, 8, 80, 23, 72,254,161,216,106, 49, 12, 3, 14,135,131,236,236,108,236,218,181, 11,107,215,174, 69,104,104, 40,116, + 58,221, 61,100,203, 72,136,236, 82,193,232,245,122, 92,190,124, 25,159,236,223,143,165, 75,150, 64, 42,149, 2, 0,180, 90, 45, +148,165,165, 16, 10,133,102, 50,102,163, 44, 15,223,190,125,123, 94, 96, 96, 96,189, 45, 67,211, 95,227,152, 5,131,193, 0,189, + 94,143,218,218, 90,108,218,180, 73,207,178,236, 97, 27,125,210, 76,138,230,205,155, 7,181,250,239, 56,228,189,140, 54,201, 33, + 33, 33,232,221,187,183,249, 51, 69, 81,172,189,152,255,125,188, 7, 84, 22,191, 14, 91,190, 1, 0, 16, 24, 24,136,176,176, 48, +248,251,251, 55,138,105,141,139, 60,108,105,104,147,213, 44, 27,173,198, 34,101, 95,191,147,191,110,230,162, 13, 27,196, 66,154, +251,250,216,158,104, 43,231, 1,110,158,224, 13, 89, 12, 34,175, 91,200,179,202,191,128, 31, 23, 99,227, 56, 37, 21,251,105,237, +215, 29, 61, 61,125,210,148,202,123,140,240,184, 60,225,176, 14,157, 58,147,204, 60, 37, 56, 28, 14,196,238,222,120,124,236,124, +208, 52, 5,137,220, 27,132, 81,253,205,136, 41, 26, 28,154, 3,101,165, 10, 33,237, 59, 81, 2,161,219, 48, 91, 68, 75,230,206, +221,182,112,210,227,194, 18,125, 54,220,218, 10,193,152,166,211, 0, 62, 40,175, 74, 44, 24, 29,234, 22,251,237,213,109, 0,158, +176,167, 96,104,189, 30,190, 52, 13, 45,203,226,207,121,243, 16, 30, 31,143, 36, 19, 49,140,143, 71, 82,108, 44, 60,185, 92, 8, + 40, 10,172, 78,119,207,158,190,157, 19, 16,198,142, 29,139,226,226, 98,197,146, 37, 75,154, 77,182,220,220,220, 62, 33,132,140, +225,114,185, 90, 66, 8, 40,138, 50, 7, 1, 55,221,107,181, 90, 30, 77,211,223, 23, 23, 23, 59,188,229, 71, 8,233,236,225,225, +145,112,225,194, 5,133, 88, 44,198,242,229,203,157, 66,178,164, 82,233,175, 49, 49, 49,109, 63,249,228,147, 31, 8, 33,163,237, + 37, 91, 13, 73, 86,124,124,124,217,174, 93,187,254,107,185, 69,200,178,108, 30, 33,100,119,191,126,253, 94,137,141,141,149, 3, +120,121,246,236,217,176, 69,182, 4, 2, 65, 84,135, 14, 29,234,173,106, 5, 2, 1, 0, 64, 44, 22,195,221,221, 29, 60, 30, 15, +106,181, 26,225,225,225,132,207,231, 71,218,147,102,169, 84, 58,102,220,184,113,156,243,231,207, 35, 63, 63, 31,238,238,238, 16, +139,197, 96, 24, 6,179,102,205,226,109,222,188,249, 41, 71,137, 86, 80, 80,208,179,195,135, 15,231, 36, 39, 39,227,206,157, 59, + 80,171,213,184,121,243, 38,100, 50, 25,166, 77,155,198, 91,191,126,253, 51,142, 18, 45, 0, 61, 98, 99, 99, 11, 44, 73,150, 73, +196, 98, 49,233,220,185,179,210,203,203,171, 15,128, 76, 71, 48, 95,125,245,213,194,184,184,184, 33,167, 78,157, 90,108,250,242, +212,169, 83,139, 0,224,131, 15, 62, 56,235,227,227,211, 7,128,189, 68, 11, 44,203, 26,254,253,239,127,223,229,243,249,224,114, +185,224,243,249,245, 46, 30,143, 7,138,162,164,166,238,252, 79, 37, 53,132,144,126, 0,222, 71,221,137,172, 37, 44,203, 94,108, + 37,100,235,119, 66, 72,120,116,116,180,153,108, 29, 63,126, 28,163, 71,143, 70, 89, 89, 25,146,147,147, 45, 73,214,195,178,209, +130,193, 96, 0,151,203,197,134, 13, 27,160,213,106,241,233,167,159,226,139, 47,190,168, 55,134,202,100, 50,108,217,178,197,161, +109, 46,134, 97,176,119,239, 94, 44, 94,180,200, 76,178,140,139,107,248, 41, 20,240,242,246, 70,122,122,186, 77,162, 85, 90, 90, +250,206,209,163, 71,209,148, 49,252,209,163, 71,205,247,150,198,240,118,205,115, 52, 13,181, 90,141, 39,159,252, 59, 84,236,171, +175,190,106,190, 87, 42,149,160,105,218, 84, 22,196, 94, 76, 21, 11,140, 21,254,253,221,152, 5, 11,234,105,232, 26,195,108,140, +139,180, 70,237,150,149, 83,135,225, 44,203, 38, 25, 77, 36,162, 1, 28, 51,110, 39, 54,109,163,117,171,176,122, 43,135,228,245, +142,155, 59,114,122, 91, 95,119,176, 85, 5,224, 61,241, 14,254, 40,114,195,134, 77,223, 3, 0,222,156,210, 23,189, 70,172,134, +102,207, 72,204, 27, 68,243,167,102,171, 23, 2, 88,118,111,199, 51,116, 9,108, 19,128, 63,210,174,129, 67,211,224,187,123,195, +221, 83, 1,131, 94,131,242,194, 59, 72,248,242, 35, 0,192,142,189,135, 65, 81, 20, 56, 28, 26,106, 13,131,208,182, 1, 48, 24, + 12, 93,154, 74,103, 55, 66, 30, 31,223,217,127, 64, 80,176,156, 36,123,220, 65,103, 95,175,250, 63,120, 76,128,208, 92, 9, 25, + 36,113,235,223,141,144,199, 83, 88,246,130, 77, 13, 4, 69,129, 34, 4, 34, 30, 15,234, 35, 71,144,100, 36, 88, 0,144, 20, 27, + 11,234,235,175, 33, 21, 8, 64, 19, 2,142, 81, 5,221,156,142, 14, 0, 97, 97, 97,216,177, 99,135, 98,206,156, 57,205, 34, 91, +181,181,181,107,100, 50,217,240,221,187,119, 43,198,141, 27,119,207,243,180,180, 52, 12, 25, 50,164, 32, 63, 63,127,205,253,144, + 44,185, 92,142,172,172,172,251,222, 87, 55,145,172,147, 39, 79, 6, 7, 6, 6, 34, 60, 60,220,231,205, 55,223,116,132,108, 45, +179, 36, 89,179,103,207,190, 10,192,151, 16,210,144,168, 16,227,179,158, 22,100,171, 28,192,250, 38, 86,162,193, 98,177, 24,133, +133,133,152, 62,125, 58,110,221,250, 91, 1, 26, 16, 16, 96, 94,233,165,167,167,195,199,199, 7,132, 16, 95,123,242,236,227,227, +163,208,104, 52,120,233,165,151,144,149,245,183, 57, 99,155, 54,109, 76,101,234,237,104, 57, 42, 20, 10,133, 74,165,194,224,193, +131, 81, 91, 91, 11, 0,152, 56,113, 34,184, 92, 46, 10, 11, 11,193,229,114,189,155, 81, 61,222,209,209,209,141,186, 86,145,201, +100, 90, 15, 15,143,174, 14, 98,122, 61,243,204, 51, 57,241,241,241,247, 28,108,185,116,233,210,191, 60, 61, 61, 79,121,122,122, +118,118, 16,211, 96, 73,170,120, 60, 94, 61,162,197,229,114, 65, 81,148, 1,255,124,121, 15,128,233, 20,220,199, 0,122,183, 34, +205,150,153,108, 29, 63,126, 28,221,187,119, 71,105,105, 41, 82, 83, 83, 31, 58,201,178, 32, 38,224,112, 56,230, 69,178, 80, 40, + 68,120,120,184,153,100, 17, 66, 80, 83, 83, 3, 14,135, 99, 26,175,237, 26,252,202,202,202,224,239,231, 7,169, 84,138, 78,161, +161,184,109, 28, 71, 76,247, 2,129, 0,132, 16,232,245,122, 91,101, 88,137, 58, 91,171,249,206,174, 30, 19, 41,106, 82,117, 28, + 16, 0,131,193, 96, 26,243, 89,103, 96,122,123,123,163,170,170,202, 94,204, 86, 41,141,104,180,194, 1, 36, 1,136,102, 89, 54, +222,104, 24, 95,207,189,195, 80, 0, 9,176, 56, 82, 73, 8,161,186, 42, 36,187,226,230, 12,159, 62,178,187, 55, 84, 69,119, 32, +148,122,131,200, 67,176, 97,211,247, 72,254,171, 4, 0,176,225,192,111,248,108,229, 24,192,205, 19, 97,238,197,240,147,114,198, + 89, 35, 90, 4, 44, 49,176, 44, 56, 52,101,220,187,165, 65,211, 20,148, 69,121,216,252,206,203, 70,146,245, 5,142,157, 77, 69, + 96,135,238,127,239,227, 18, 2,176, 77, 55,110, 31,119, 94,252,156,241, 3,221, 10, 72, 30,228, 1, 34, 8,133, 13,248,163, 7, + 15, 36,132,194,220,168, 64,209,229,163,181,241, 0,108, 78, 20, 66,138,170, 51,126, 39,196,170, 33, 27,101,124, 70, 19, 82,231, +253,213,224,248,152,110, 34, 44, 18,137, 4, 10,133, 2,107,215,174, 85,188,245,214, 91,159,194,193, 0,212, 44,203,222, 36,132, + 68,205,154, 53, 43,161,164,164, 68, 17, 22, 22, 6,137, 68, 2,137, 68,130,130,130, 2, 76,152, 48,161, 32, 63, 63,191,185,218, +178,253, 49, 49, 49, 10, 30,143,135,180,180, 52,120,122,122,154, 9, 98,115, 73,150, 76, 38,251,245,212,169, 83,193, 29, 59,118, +196,141, 27, 55,208,181,107, 87, 28, 58,116,200,103,242,228,201,118,145, 45, 55, 55,183,177, 70,226,132,216,216, 88,121,108,108, +236, 80, 0, 67,109,189, 59, 54, 54, 86, 62,127,254,252,103,154, 34, 90, 92, 46, 55, 75,169, 84,250,185,185,185,225,203, 47,191, +132, 68, 34,129, 72, 36, 66, 64, 64, 0,148, 74, 37, 68, 34, 17, 88,150,133, 78,167, 51, 13, 22, 37,246,228,187,168,168,168,128, + 97,152,160, 31,126,248, 1, 69, 69,127,251,214, 11, 14, 14, 70,121,121, 57, 24,134, 41,118,180, 44,115,115,115, 11, 8, 33, 65, +127,252,241, 7, 50, 50, 50, 48,122,244,104,124,253,245,215,232,219,183, 47, 0, 64,163,209, 52,199,137, 31, 67,211, 52,219, 68, +253, 17, 0, 30,206,196, 52, 78, 94, 14, 97, 26, 12, 6,131,137,100, 89,254,181, 36, 95, 54,222,249, 79, 17,119,203,117, 66,107, + 77,228,232,209,163,161, 84, 42, 33,145, 72, 90,149,125,142, 73,163,181, 98,197, 10,188,252,242,203, 80, 40, 20, 88,188,120, 49, + 56, 28,142,249,178,220, 25,112, 68,124, 21,138, 38,159,155, 12,226,109,140,151, 82,119,119,247, 21, 20, 69, 61, 79,219, 81,112, + 12,195, 48, 6,131,225,112,121,121,121,147,238, 29, 76,134,235,246,212,133,101, 25,216, 72,235,125, 99, 90,227, 34,173, 65, 26, +158, 54,180,166,209,194,223,167, 14,239, 9, 5,100,202,101,130, 81,101,151, 96, 73,178,222,125,121,216,244,145,221, 61,240,237, +233,139,224,105,203, 0, 77,101, 19, 53,172, 3,225,137,161,112,231, 6, 90,173, 4,138,190,145,157,147, 11, 47, 15,137,145,100, + 25, 47,138, 66,175,238,117,139,217, 99,103, 83, 17,216,190, 59, 56, 52, 13, 14, 77, 67,226, 38, 64, 65,126, 30, 56, 28,234, 70, + 99,175,237,201, 33,227,199,119, 14, 10,241,240,226,162,216, 71, 3,127,133,200,250, 15,251, 72, 17,232,207,199, 40, 47, 97,112, + 79, 14, 25,111,131,184,152,137,150, 86,175, 7,239,185,231,204,219,133, 73,177,177, 8,143,143, 7,243,236,179,168,214,106,235, +169,138, 29, 21, 83,131, 52, 17,162,101,203,150, 21,148,148,148,188,208,204,213,227,205,210,210,210,168, 37, 75,150, 20, 20, 23, + 23, 67, 36, 18, 33, 47, 47,239,190, 72, 22, 0,168, 84,170,105,241,241,241, 5, 9, 9, 9,144, 72, 36,144, 74,165,205, 38, 90, + 38, 77,214, 59,239,188,211, 54, 40, 40, 8,233,233,233,112,119,119,135,151,151, 23,122,245,234,133,243,231,207,251, 4, 5, 5, +253, 96, 52,152,109, 42, 77,223,196,199,199,151, 1, 64,124,124,124, 25, 33, 36,145, 16,178,157, 16,242,113,131,107, 59, 33, 36, +209,242,183, 42,149,234,171,166,176, 53, 26, 77, 98,106,106, 42, 43, 18,137, 64,211, 52,180, 90, 45,132, 66,161,185,190, 42, 42, + 42,160, 82,213,109,115, 95,185,114, 5, 58,157,238,156, 61,121,175,172,172, 60,190,103,207, 30, 93, 80, 80, 16,122,246,236,137, + 62,125,250, 96,208,160, 65, 8, 14, 14,198,138, 21, 43, 52,213,213,213,199,155, 65,180,142, 29, 58,116, 72, 23, 20, 20,132, 62, +125,250, 64, 32, 16,160, 87,175, 94, 8, 8, 8,192,218,181,107, 53,229,229,229,199,155, 81, 77,153,215,174, 93,163,155, 32,185, + 50, 0, 5, 14, 98,102, 93,190,124,153, 30, 56,112,224,183, 13, 31,244,239,223,255, 91,137, 68,226, 14,192, 81,187, 63,214,146, + 92, 9, 4, 2,243,101,250,158,195,225,252, 47,104,180,230, 1,184, 10, 32, 29,192,226,214,148, 48, 75,195,247,146,146, 18,164, +166,166,226,202,149, 43, 24, 56,112, 32,206,157, 59, 7, 24, 13,228, 31, 98,250,192,178, 44,184, 92, 46,194,194,194, 48,127,254, +124,124,255,253,247,184,121,243, 38,116, 58,157,153, 8,153,108, 50, 29,209,104,241,120, 60, 40, 20, 10,232,116, 58,179, 54, 11, + 0,110,223,186, 5, 14,135, 3,131,193, 0,141, 70, 99, 83,163,229,238,238,190, 98,231,206,157,175, 21, 23, 23,251, 23, 21, 21, +249, 90, 94, 5, 5, 5,190,121,121,121,190, 57, 57, 57,190, 89, 89, 89,190,119,239,222,245,189,115,231,142,255,186,117,235, 94, +115,119,119, 95, 97,239, 28,212,171, 87, 47,188,250,234,171,230,107,235,214,173,230, 43, 33, 33,193, 97,227,117,154,166, 17,182, +124, 3,198, 20,177,230,235,123, 31, 98,190,146,223,156,221, 20,102, 61, 46,210,106,218,178,241,180,161,101, 96,105, 43,115,112, + 30,203,178,241,166,237, 66, 75,231,165, 13,141,225, 1, 0, 93,252, 68,171,223,157, 53,100,250,147, 93,221,241,205,233,223,176, +242,171,191,110,132, 78,247, 9,235,232, 81, 4, 67, 81, 42,222,156,210, 23, 27, 14,252, 6,160,110,235,208, 80,152, 12,182, 52, + 29,172, 52, 8,119,148,197, 86,183, 29,244,154,218, 51,127,165,221, 26, 22,214,163, 31,149, 95, 92, 85,239,248,103,120,212, 4, + 16, 66,208,166,125,119,208, 28, 14,104,154, 2,135,166, 33,151, 9,145,250,199, 31, 6,181, 74,117,198, 26,102, 20, 33, 28, 63, + 9,127,235,148, 81,189,132,185,252, 66,248,248,139,193,227,214,145, 0,246,175, 9, 13,102, 8, 14,208, 67,138, 25, 57, 94,110, +103, 10,106,183, 70, 17,242,109, 66, 35, 6,152, 6,131, 1, 18,129, 0,181,106, 53, 84,122, 61,162, 54,111, 54,111, 23, 82,132, +224,119, 0, 61, 55,111,198,133, 35, 71, 32,227,243, 1,129,192,238, 83, 33,214, 52, 90, 5, 5, 5,152, 56,113,226,125, 17, 34, + 75,205,214,156, 57,115, 18,214,174, 93,171, 88,182,108,153,211, 48, 23, 47, 94,156,112,224,192, 1, 69,187,118,237,154,221, 88, + 37, 18,201, 34,131,193, 32, 95,191,126,125,254,198,141, 27,209,208,158,204, 72,116, 4,114,185,124, 3,128, 97, 77, 64,173,156, + 61,123, 54, 15,192,203, 70,205, 86,207,217,179,103, 95, 96, 89,118,105,131,242, 93,190, 99,199,142,137, 22, 91,140,219, 1,108, +110, 42,141, 21, 21, 21, 31,207,159, 63,255,165,159,127,254,217, 91, 40, 20,130, 16, 2, 30,143,135, 78,157, 58,153, 79,209,112, +185, 92,176, 44,139, 5, 11, 22, 20, 23, 22, 22,218,229,222, 65,173, 86,239, 93,185,114,229, 48,149, 74, 21, 60, 99,198, 12,158, +135,135, 7, 10, 10, 10,240,254,251,239,107,246,238,221,155, 85, 93, 93,237,168, 45, 21,116, 58,221,222,255,252,231, 63, 81, 85, + 85, 85,237,103,206,156,201, 43, 47, 47,135, 74,165,194,194,133, 11, 53,187,119,239,206, 86,169, 84, 14, 59,252, 29, 52,104, 80, +218,221,187,119, 35,107,106,106, 74, 69, 34, 81, 67,109, 31, 17,139,197,253, 0,236,119, 4, 51, 60, 60, 60, 61, 51, 51,115,224, +234,213,171, 19,117, 58, 29,247,210,165, 75,102, 99,248, 15, 63,252, 48, 65, 40, 20, 14,135,227, 70,251, 6,129, 64, 80, 79,131, +213,240,158,195,225,252,227, 53, 90, 44,203, 38,160,206,101, 70,171,146,134, 36, 43, 57, 57, 25,195,134,213,117,233,115,231,206, + 33, 34, 34, 2,231,206,157, 67,100,100,228, 67,117,239, 96, 34, 90, 28, 14, 7,147, 39, 79,198,136, 17, 35,208,182,109,219,122, +167, 13, 77,247,142,144, 13,189, 94,143, 30, 61,122, 64,173,209,128,199,227,153,183, 38, 57, 28, 14,124,124,125,145,150,150,102, +151, 70,139,162,168,231,199,142, 29, 75,165,164,164, 96,210,164, 73,248,228,147, 79, 26,253,237,212,169, 83,113,240,224, 65,140, + 29, 59,150,122,251,237,183,155,116,239, 96, 50, 66,183, 39, 79,166,121,218,150, 70,207, 89,152,150, 92,164,181,137,133,107, 7, +107,109, 62,214, 74,251,138,175, 71,180, 44,156,132,161,189,143,104,198,136, 78, 28,124,115,230, 55,172,252, 38,115, 47,195,178, + 95,126,153, 84,250,221,226, 8, 64,123,120, 10,122, 77,216, 95,183, 93, 8,192, 80,152, 12,237,225,169, 32, 34,111,156,205,225, +162, 92,165, 61,102,189,225,105, 63,249,250,211,143,230, 15,220, 22,233,227,239,235, 14,101,185,202, 76,182,146, 18,190, 0, 0, +140,159,189, 6, 28,186,110, 75, 81, 38, 17,194,141, 71,227,200,190, 15,138,181,218, 90,171,173,171,146, 75,189,252,246,227,157, +220,249, 98, 29, 42,252, 88,116,247,249,251,208, 31,105,255,197,189,132,235, 49, 15,120, 39,151, 98, 74, 71,137,236,131,148,178, +151, 1,108,189,103, 66, 44, 43, 83,149,253,241,135,219,232,157, 59,113,105,218, 52,180, 97, 24, 36, 6, 4,192,147,203,133,187, + 64, 0,138, 16,168,190,251, 14, 23,190,252, 18, 10,129, 0,144, 74,161, 95,181, 10,234,212, 84,232, 42, 43, 85,142, 18,173,219, +183,111,223,183,214,201, 26, 49,122,235,173,183, 62, 45, 41, 41,121,193,153,152,211,166, 77, 75, 56,125,250,180,162,185, 56,149, +149,149,111, 0,120,195, 9,233, 49, 16, 66,150, 26, 29,227,189, 28, 27, 27, 43,191,124,249,242, 75,132,144,109,166,213, 4, 33, +196, 55, 38, 38,102, 86, 3,146,101,243,212, 33,203,178,153, 18,137,100,213, 27,111,188,177,102,227,198,141, 18,147,225,251,159, +127,254, 9,189, 94, 15, 46,151, 11,134, 97, 16, 19, 19, 83, 85, 82, 82,178,161, 49,143,206, 86,112,245,132,144,169,107,214,172, +137,249,224,131, 15,158,166,105,218,135, 97,152, 34,149, 74,245,131, 74,165,138,111,206,169, 43, 99, 57,188,184,108,217,178, 23, + 55,109,218, 52,150,162, 40, 95,189, 94, 95, 92, 89, 89,121, 84,165, 82, 53,203, 55,215,133, 11, 23,138,182,109,219,246, 87, 81, + 81, 81,151,192,192,192,114,137, 68,162,209,104, 52,180,155,155,155, 76, 44, 22,135, 3,248, 5,192,117, 71, 48,175, 92,185,146, +191,125,251,246, 12,181, 90, 29,182,125,251,246,179, 50,153,236, 52, 33,132,240,120, 60, 15, 55, 55,183, 97, 0, 18, 1,220,118, + 4,147,162, 40,131,165,246,170,161,125, 22,159,207,255, 95,177,209,106,117, 98,233,222,161,184,184, 24, 41, 41, 41, 38,146, 21, + 14, 0,145,145,145, 73, 38,178,117,229,202, 21,244,233,211, 39,137, 16,194,125,208, 39, 15, 45, 53, 90, 38, 66,213,182,109, 91, +243,103,203,203,194, 70,203, 46, 97, 24, 6, 60, 30, 15, 28, 14, 7,254, 1, 1,230,119,177, 44,139,180,180, 52, 40,149, 74,187, +136, 22, 77,211, 52, 33, 4,147, 38, 77,178,235,189,255,254,247,191,145,152,152, 8,218, 78, 86, 72,211, 52, 66, 66, 66,236,218, +121,129,157,246, 84, 52, 77, 35, 48, 48,176,217,152,150, 92,164, 53, 17, 44,107,247,214, 72,149, 53,177,106, 12,159, 94,168, 90, + 61,245,253,243,111, 95,207,175,253, 50,181,160,102, 62, 0,246,112,178,232,199, 94, 62,244,200,145,157,179,161,142,143, 4,145, +213, 57,111, 99,171,242, 64,196, 10,100, 27,218, 96,249,183, 55,242,245, 32,235, 27, 73, 68, 46, 79, 40, 90,186,111,231,135, 27, + 99,230, 44,144, 36,167, 23,160,188, 74, 13,154,166, 44, 7, 79,112, 56, 52,100, 98, 33,130,252,220,113,224,191,239, 87, 86, 86, +148, 45,107, 44,238, 97, 91, 41,111,246,240,126, 29, 5, 60,255,106,132,245,156, 8, 90,248,183,147, 89, 54,191,145,221,193,136, + 31,241, 84,102,181,240,235,204,234,217, 86,137,150, 70, 51,114,201,168, 81, 39, 86,126,255,189,168,255,222,189, 72,143,137, 65, +128, 74, 5,129,113, 43,145, 34, 4, 18, 30, 15, 18, 30,175,142,100,109,218, 4,149, 94,143,205,211,166,213,168, 53,154, 81, 14, +106, 36,120, 67,135, 14,117, 26,201,178, 36, 70,112,208,206,203, 94,178, 53, 98,196,136, 4,150,101, 5,173, 96, 37,111, 34, 91, +218,203,151, 47,207, 58,123,246,108, 58,234, 7, 22, 45, 59,123,246,108,250,204,153, 51,201,174, 93,187,118, 3,248,143,189, 14, + 60,171,170,170, 62,148,203,229, 24, 50,100,200,127,226,226,226,188,250,246,237, 11, 95, 95, 95, 84, 86, 86,226,202,149, 43,152, + 55,111,158,178,162,162, 34,174,180,180,116,163,131,105,102,140,154,155,120,103,150, 3,128, 61,198,203, 41,242,202, 43,175,252, +153,158,158, 94,226,227,227, 51,128,199,227,245, 68,157, 29, 80, 62,128,221,142, 18, 34,147,188,252,242,203,127,164,167,167, 23, +183,105,211,102,247,187,103,196, 0, 0, 6, 32, 73, 68, 65, 84,160, 17, 83, 14, 32, 7,192,206,102, 96,230,254,246,219,111,129, +253,250,245,163,184, 92, 46, 75,211, 52,184, 92, 46,203,225,112, 88,163, 93, 13, 11, 0, 71,143, 30, 21, 0, 80,194, 37, 15,186, +111,154,221, 59,228,229,229,153, 73,150,133,195,210,240,200,200,200, 36, 35,201, 50, 61,211, 63,164,180, 98,229,202,149,216,177, + 99, 7,108,121, 52, 55,158,238, 35,182,240, 76, 26, 45,134, 97,160,213,106,145,156,156,108,246,217,101,218, 46, 52,185,118,208, +235,245, 77,158, 86,103, 24,134,209,104, 52,248,252,243,207,237, 34, 91,159,125,246, 25,106,107,107,193,216, 96,112,150,174, 24, +122,247,238, 13,165, 82,105, 62,236, 19, 30,254,183,171, 60,173, 86,235, 16,113, 53, 97,134,133,133,161,184,184, 24,222,222,117, +231,113,130,166,253,173,236,209, 87,255, 51,253, 7, 55,165,209, 34,246,186, 36,232, 45,151,187,171,249,186,175,254,213, 93, 16, +245,124,184, 59,218,251, 73,193,229, 9,145, 91,161,199,169,235, 21,216,153,144,159,165,210, 49, 79,223, 44,172,190,214, 20,142, + 80,236,254, 67,223,199, 71, 68, 76,155, 53, 79, 92,165,102,144,145,113, 23, 69,133,121,160, 8, 5,255, 54,129, 8, 14, 14,129, + 27,159,194, 39,241, 27,171,147, 46,156, 62, 95, 89,161, 28,221, 24,214,211,114,254,133, 77,207, 69, 12,236,208, 65, 74,160,215, + 1,140, 14,208,235, 0,131,241,175,233, 59, 67,253, 54,151,146, 82,198,190,253,187,242,215,239,202, 52, 86, 99, 86, 61, 79, 72, +132,220,211,243,196,242,163, 71, 69, 6,173, 22, 37,111,188, 1,145, 94, 15,161,113, 85, 2, 0, 16, 8,160, 95,181,170,142,100, + 77,157, 90, 83, 94, 86,230,112, 8, 30, 31, 31,159, 61,197,197,197,143,156,103,120, 47, 47,175, 37,205,113, 19,209,130,105,242, + 5, 80,198,178,172,214,202,202,218,199,164,229,106, 6,110,136,143,143,207,219, 20, 69, 13, 98, 89,214,139,162,168, 82,131,193, +240, 75, 97, 97,225, 58,150,101,211, 92, 83,234, 67,171,111,147,103,120, 91,251,216,133, 0, 94, 7, 80,201,178,108,134,171,228, + 30,120, 61, 61,134,186, 83, 88,141,134,224,193, 67, 60,121,232,229,229,117,241,196,137, 19,125,219,183,111, 79, 89,154, 49,152, +124,229,153,182,183, 56,156, 58,125,196,207, 63,255,172,159, 52,105,210, 47,249,249,249, 67, 26,195,148,201,100, 63, 94,189,122, +245,201,242,242,242,123, 8,149,165,167,120,211,231,234,234,106,204,153, 51,231,100, 69, 69,133,213, 16, 60,114,185,124,211,198, +141, 27, 95, 27, 63,126, 60,101,114, 71, 97,121,153,194, 5,153, 46,173, 86,139,253,251,247, 27, 62,248,224,131, 45,101,101,101, +141,110, 29, 6, 4, 4,100,229,230,230, 6,154, 92, 45,216,227, 84, 52, 36, 36, 36, 47, 35, 35, 35,224, 65, 98, 62,170,132,171, +161,118,139, 56,226,251,137, 16, 66,194,124,197, 19, 89,224,121, 10,134, 30, 20, 33,124, 61,139,155, 96,241,163,136, 83,179,237, + 74, 46,107,215,214, 25, 79, 36,154, 43,149,120,188, 51,254,133, 87,189, 66, 58,132, 18,133,127, 27, 16, 80, 40,200,207,193,221, +191,110,177, 95,125,250, 81, 73,117,133,114, 69, 77, 77,213, 71, 77,225,116, 35,164, 67, 59, 25,239, 48,159, 65,103,152,242,209, + 32, 62,213, 61, 12, 19,128,150, 75,221,200,168,212, 77, 76,105, 98,219,199, 68,182,150,126,245,149,136,223,185,243, 61,142,226, + 12, 6, 3,212,169,169,216, 60,109, 90,179, 72,150, 75, 92,226,146,251, 30,208,218,195,182,143, 44, 29,128,236,135, 25,188,248, +127,188,142, 90,109, 80,105, 66,136,216,211,211,243, 52, 77,211,193, 38,141,140,165,205,144,149,128,210, 25, 5, 5, 5,195, 89, +150,173,105, 2,179,131, 84, 42,253,136, 97,152,254,246, 4,149,166,105,250, 82,101,101,229,220,166,130, 74,183,196,169, 67,111, +111,239,180,187,119,239,118, 48,157,162,182,156, 43, 27,150, 3, 0,220,190,125, 27, 67,135, 14,189,155,151,151, 23,242, 32, 49, + 91,171, 52,226, 71,235,254, 53, 90, 45,208,200, 3,120, 2,201,139,124, 55,225, 19, 6,157, 62, 12, 4,224,112,185, 55, 52,181, +170, 51,106, 85,213,190,198,182, 11, 31,164, 60, 79, 72,132,128,207,255,145, 39,147,185, 89, 43, 39, 93,101,165, 74,173,209,140, +116,145, 44,151,184,196, 37, 46,113,201, 35, 68,128, 59,123,122,122,158,224,114,185, 2, 75, 50,217,240,222, 36,122,189,190,182, +168,168,104,116, 83,187, 47, 45,129,249,143, 41,111, 71,137,214,177, 99,199, 88,123,189,183, 18, 66, 70,216, 19,179,202,194,240, +205,166,239,140,135,141,217,130,121,183,233, 21,215, 1,204,161,168, 59, 30,187, 34, 58, 58,122,249, 35,144, 78,103,214,145, 83, + 49, 77,117,110, 47,174, 35,152,246,182, 41, 7,211,105, 87,187,111, 13,152,246,244,165,102,166,179,201, 54,218,204,122,111,178, + 47,181,162,116, 58,179,142,156,130,217,176,253,216,131,235, 40,166, 61,125,169, 25,233,180,217,238, 91, 11,230,253,142, 33, 77, +164,179,209, 54,106,111, 91,106,164,238,109,206, 77,173, 85,147, 5, 0, 38,127, 90, 13, 53, 90,141, 25,196,115, 28, 37, 89, 45, +145,120,203, 73, 7,118,250, 41,121, 24,152,205, 33, 92,142,164,213,137,146,224,108,204, 6,229,233, 44, 89,110, 28,208, 19, 97, +135,195, 81, 71,242,238,140,122,111,144, 87,167,224, 90, 98, 58,171, 44,173, 13,138,206, 76,103, 75, 96, 58,171, 47, 53,196,116, + 70,187,183, 86,239, 45, 88, 71,206, 74,167, 83,250, 82, 75,180,121, 43,237,231,190,113, 27, 98, 58,163, 47, 53,196,116, 70,187, +127, 16,152,206,232, 75,214, 48,157,209,238, 27,171,251, 71, 85, 51,101,218, 46, 52, 18, 46, 98,133,124,214,219, 62, 52, 17, 47, +170, 57,133,214, 18,210, 18,129, 36,157, 77,136, 90,138,108, 30, 59,118,140, 53, 50,253, 86,143,233,228, 58, 90,110,196,116,230, +202, 38,202, 89,117,212, 18,237,221, 18,211, 89,248, 13,113,156, 81, 79,214, 48,239, 55,189,141,164,211,233,121,191,223,118,255, +160, 48,157, 92, 71, 78,233, 75, 13, 48,163,156,188, 24,136,178,248,188,220,153,152,206,234, 75, 86,210,121,223,245,100, 13,243, +126,211,219, 72, 58,157,158,119,103,204, 33, 45,133,251,176, 52, 90,215,195, 9,203, 82,214,219,132,209, 97,169,249,106,150, 70, +171, 37, 73, 86, 75, 77,106,206,196,110, 9,173, 78, 75,105,222,156,165,213,177,130,155,232, 68,184, 4,103,167,211,152, 62,210, +154,157,222,185,250,146,171, 47,253, 47,245, 37,107,237, 38, 58, 58,122,249,177, 99,199,222,105, 77,237,188, 33,166,179, 8,145, +149,188,223, 87, 95,106,248,191,206,232, 75, 54, 48, 73, 75,228,223,217,253,233, 65,106,180, 26, 35, 89,141, 61,227,180,150, 12, +152, 26,137,147, 87, 38,112,178, 6,166,197,242,237,228,116, 70,181,132,134,176, 5,196,233,233, 52,174,148,223,105,129,188, 63, + 42,101,234,234, 75,174,190,212,234,250, 82,131, 54, 25,229, 68, 77,145, 83, 53,207, 13, 49,157,241, 14, 75, 12,103,181,209,150, +206,187, 51,251, 82, 75,212,253,163, 38,255, 31, 0, 52, 22,173,101,127,139,184, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, 0}; -- cgit v1.2.3 From c758f6589e5d91e9fa2086a7db744282f2ea1e55 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 2 Dec 2009 04:12:16 +0000 Subject: Reset operator properties for keymap items when operator idname is changed. This means added operators in the keymap editor will now show options correctly (maybe not for old .B25.blend) --- source/blender/makesrna/intern/rna_wm.c | 4 ++++ source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm_keymap.c | 11 +++++++++++ 3 files changed, 16 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index de872b41335..10e27814236 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -255,6 +255,8 @@ EnumPropertyItem keymap_modifiers_items[] = { #include "BKE_idprop.h" +#include "MEM_guardedalloc.h" + static wmOperator *rna_OperatorProperties_find_operator(PointerRNA *ptr) { wmWindowManager *wm= ptr->id.data; @@ -558,6 +560,8 @@ static void rna_wmKeyMapItem_idname_set(PointerRNA *ptr, const char *value) WM_operator_bl_idname(idname, value); BLI_strncpy(kmi->idname, idname, sizeof(kmi->idname)); + + WM_keymap_properties_reset(kmi); } #else diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 22820d578a5..a270b75eea1 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -112,6 +112,7 @@ wmKeyMap *WM_keymap_active(struct wmWindowManager *wm, struct wmKeyMap *keymap); int WM_keymap_user_init(struct wmWindowManager *wm, struct wmKeyMap *keymap); wmKeyMap *WM_keymap_copy_to_user(struct wmKeyMap *keymap); void WM_keymap_restore_to_default(struct wmKeyMap *keymap); +void WM_keymap_properties_reset(struct wmKeyMapItem *kmi); wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, char *idname, struct EnumPropertyItem *items); wmKeyMap *WM_modalkeymap_get(struct wmKeyConfig *keyconf, char *idname); diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index b3269a23277..b22f01b7d7a 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -55,6 +55,17 @@ /* ********************* key config ***********************/ +void WM_keymap_properties_reset(wmKeyMapItem *kmi) +{ + WM_operator_properties_free(kmi->ptr); + MEM_freeN(kmi->ptr); + + kmi->ptr = NULL; + kmi->properties = NULL; + + WM_operator_properties_alloc(&(kmi->ptr), &(kmi->properties), kmi->idname); +} + static void keymap_properties_set(wmKeyMapItem *kmi) { WM_operator_properties_alloc(&(kmi->ptr), &(kmi->properties), kmi->idname); -- cgit v1.2.3 From b89138564eee9b576263518df0ed5dc045668f75 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Wed, 2 Dec 2009 07:56:34 +0000 Subject: Changes to Color Management After testing and feedback, I've decided to slightly modify the way color management works internally. While the previous method worked well for rendering, was a smaller transition and had some advantages over this new method, it was a bit more ambiguous, and was making things difficult for other areas such as compositing. This implementation now considers all color data (with only a couple of exceptions such as brush colors) to be stored in linear RGB color space, rather than sRGB as previously. This brings it in line with Nuke, which also operates this way, quite successfully. Color swatches, pickers, color ramp display are now gamma corrected to display gamma so you can see what you're doing, but the numbers themselves are considered linear. This makes understanding blending modes more clear (a 0.5 value on overlay will not change the result now) as well as making color swatches act more predictably in the compositor, however bringing over color values from applications like photoshop or gimp, that operate in a gamma space, will give identical results. This commit will convert over existing files saved by earlier 2.5 versions to work generally the same, though there may be some slight differences with things like textures. Now that we're set on changing other areas of shading, this won't be too disruptive overall. I've made a diagram explaining the pipeline here: http://mke3.net/blender/devel/2.5/25_linear_workflow_pipeline.png and some docs here: http://www.blender.org/development/release-logs/blender-250/color-management/ --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenkernel/BKE_colortools.h | 6 --- source/blender/blenkernel/intern/colortools.c | 46 ---------------- source/blender/blenkernel/intern/object.c | 2 +- source/blender/blenlib/BLI_math_color.h | 22 ++++++-- source/blender/blenlib/intern/math_color.c | 61 ++++++++++++++++++++-- source/blender/blenloader/intern/readfile.c | 42 ++++++++++++++- source/blender/editors/interface/interface.c | 4 ++ source/blender/editors/interface/interface_draw.c | 2 + .../blender/editors/interface/interface_handlers.c | 14 ++++- .../blender/editors/interface/interface_intern.h | 2 + .../blender/editors/interface/interface_layout.c | 6 +-- .../blender/editors/interface/interface_regions.c | 20 +++++-- source/blender/editors/interface/interface_utils.c | 2 +- .../blender/editors/interface/interface_widgets.c | 27 +++++++++- source/blender/editors/space_view3d/drawmesh.c | 26 ++++++--- source/blender/gpu/intern/gpu_draw.c | 9 ++++ source/blender/makesrna/RNA_types.h | 2 +- source/blender/makesrna/intern/makesrna.c | 2 +- source/blender/makesrna/intern/rna_access.c | 4 +- source/blender/makesrna/intern/rna_brush.c | 2 +- source/blender/makesrna/intern/rna_color.c | 4 +- source/blender/makesrna/intern/rna_material.c | 2 +- source/blender/makesrna/intern/rna_rna.c | 2 +- .../blender/render/intern/source/convertblender.c | 6 +-- source/blender/render/intern/source/pixelshading.c | 17 ++---- source/blender/render/intern/source/shadeinput.c | 38 +++----------- source/blender/render/intern/source/sss.c | 11 ++-- source/blender/render/intern/source/texture.c | 47 +++++++++++------ 29 files changed, 272 insertions(+), 158 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index ebeec31c984..7bbcb63a7f5 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -43,7 +43,7 @@ struct bContext; struct ReportList; #define BLENDER_VERSION 250 -#define BLENDER_SUBVERSION 7 +#define BLENDER_SUBVERSION 8 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenkernel/BKE_colortools.h b/source/blender/blenkernel/BKE_colortools.h index c83a260690b..c571688737a 100644 --- a/source/blender/blenkernel/BKE_colortools.h +++ b/source/blender/blenkernel/BKE_colortools.h @@ -34,12 +34,6 @@ struct CurveMap; struct ImBuf; struct rctf; -void gamma_correct_rec709(float *c, float gamma); -void gamma_correct(float *c, float gamma); -float srgb_to_linearrgb(float c); -float linearrgb_to_srgb(float c); -void color_manage_linearize(float *col_to, float *col_from); - void floatbuf_to_srgb_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int w); void floatbuf_to_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int w); diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c index f3448a60b5a..48e42bc539f 100644 --- a/source/blender/blenkernel/intern/colortools.c +++ b/source/blender/blenkernel/intern/colortools.c @@ -58,52 +58,6 @@ #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" -/* ********************************* color transforms ********************************* */ - -/*Transform linear RGB values to nonlinear RGB values. Rec. - 709 is ITU-R Recommendation BT. 709 (1990) ``Basic - Parameter Values for the HDTV Standard for the Studio and - for International Programme Exchange'', formerly CCIR Rec. - 709.*/ -void gamma_correct_rec709(float *c, float gamma) -{ - /* Rec. 709 gamma correction. */ - const float cc = 0.018f; - - if (*c < cc) - *c *= ((1.099f * (float)powf(cc, gamma)) - 0.099f) * (1.0f/cc); - else - *c = (1.099f * (float)powf(*c, gamma)) - 0.099f; -} - -void gamma_correct(float *c, float gamma) -{ - *c = powf((*c), gamma); -} - -float srgb_to_linearrgb(float c) -{ - if (c < 0.04045f) - return (c < 0.0f)? 0.0f: c*(1.0f/12.92f); - else - return powf((c + 0.055f)*(1.0f/1.055f), 2.4f); -} - -float linearrgb_to_srgb(float c) -{ - if (c < 0.0031308f) - return (c < 0.0f)? 0.0f: c * 12.92f; - else - return 1.055f * powf(c, 1.0f/2.4f) - 0.055f; -} - -/* utility function convert an RGB triplet from sRGB to linear RGB color space */ -void color_manage_linearize(float *col_to, float *col_from) -{ - col_to[0] = srgb_to_linearrgb(col_from[0]); - col_to[1] = srgb_to_linearrgb(col_from[1]); - col_to[2] = srgb_to_linearrgb(col_from[2]); -} void floatbuf_to_srgb_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int w) { diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 1e047380641..41255415b67 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -795,7 +795,7 @@ void *add_lamp(char *name) la->sun_intensity = 1.0f; la->skyblendtype= MA_RAMP_ADD; la->skyblendfac= 1.0f; - la->sky_colorspace= BLI_CS_CIE; + la->sky_colorspace= BLI_XYZ_CIE; la->sky_exposure= 1.0f; curvemapping_initialize(la->curfalloff); diff --git a/source/blender/blenlib/BLI_math_color.h b/source/blender/blenlib/BLI_math_color.h index b2d14f3ecbd..7444e01c3a6 100644 --- a/source/blender/blenlib/BLI_math_color.h +++ b/source/blender/blenlib/BLI_math_color.h @@ -32,10 +32,16 @@ extern "C" { #endif -#define BLI_CS_SMPTE 0 -#define BLI_CS_REC709 1 -#define BLI_CS_CIE 2 +/* primaries */ +#define BLI_XYZ_SMPTE 0 +#define BLI_XYZ_REC709_SRGB 1 +#define BLI_XYZ_CIE 2 +/* built-in profiles */ +#define BLI_PR_NONE 0 +#define BLI_PR_SRGB 1 +#define BLI_PR_REC709 2 + /******************* Conversion to RGB ********************/ void hsv_to_rgb(float h, float s, float v, float *r, float *g, float *b); @@ -53,6 +59,16 @@ void rgb_to_hsv(float r, float g, float b, float *lh, float *ls, float *lv); unsigned int rgb_to_cpack(float r, float g, float b); unsigned int hsv_to_cpack(float h, float s, float v); +/***************** Profile Transformations ********************/ + +void gamma_correct(float *c, float gamma); +float rec709_to_linearrgb(float c); +float linearrgb_to_rec709(float c); +float srgb_to_linearrgb(float c); +float linearrgb_to_srgb(float c); +void srgb_to_linearrgb_v3_v3(float *col_to, float *col_from); +void linearrgb_to_srgb_v3_v3(float *col_to, float *col_from); + /************************** Other *************************/ int constrain_rgb(float *r, float *g, float *b); diff --git a/source/blender/blenlib/intern/math_color.c b/source/blender/blenlib/intern/math_color.c index 7ae380a1dde..6dbd9c1381f 100644 --- a/source/blender/blenlib/intern/math_color.c +++ b/source/blender/blenlib/intern/math_color.c @@ -208,17 +208,17 @@ void rgb_to_hsv(float r, float g, float b, float *lh, float *ls, float *lv) void xyz_to_rgb(float xc, float yc, float zc, float *r, float *g, float *b, int colorspace) { switch (colorspace) { - case BLI_CS_SMPTE: + case BLI_XYZ_SMPTE: *r = (3.50570f * xc) + (-1.73964f * yc) + (-0.544011f * zc); *g = (-1.06906f * xc) + (1.97781f * yc) + (0.0351720f * zc); *b = (0.0563117f * xc) + (-0.196994f * yc) + (1.05005f * zc); break; - case BLI_CS_REC709: + case BLI_XYZ_REC709_SRGB: *r = (3.240476f * xc) + (-1.537150f * yc) + (-0.498535f * zc); *g = (-0.969256f * xc) + (1.875992f * yc) + (0.041556f * zc); *b = (0.055648f * xc) + (-0.204043f * yc) + (1.057311f * zc); break; - case BLI_CS_CIE: + case BLI_XYZ_CIE: *r = (2.28783848734076f * xc) + (-0.833367677835217f * yc) + (-0.454470795871421f * zc); *g = (-0.511651380743862f * xc) + (1.42275837632178f * yc) + (0.0888930017552939f * zc); *b = (0.00572040983140966f * xc) + (-0.0159068485104036f * yc) + (1.0101864083734f * zc); @@ -274,6 +274,61 @@ void cpack_to_rgb(unsigned int col, float *r, float *g, float *b) *b /= 255.0f; } +/* ********************************* color transforms ********************************* */ + + +void gamma_correct(float *c, float gamma) +{ + *c = powf((*c), gamma); +} + +float rec709_to_linearrgb(float c) +{ + if (c < 0.081f) + return (c < 0.0f)? 0.0f: c * (1.0f/4.5f); + else + return powf((c + 0.099f)*(1.0f/1.099f), (1.0f/0.45f)); +} + +float linearrgb_to_rec709(float c) +{ + if (c < 0.018f) + return (c < 0.0f)? 0.0f: c * 4.5f; + else + return 1.099f * powf(c, 0.45f) - 0.099f; +} + +float srgb_to_linearrgb(float c) +{ + if (c < 0.04045f) + return (c < 0.0f)? 0.0f: c * (1.0f/12.92f); + else + return powf((c + 0.055f)*(1.0f/1.055f), 2.4f); +} + +float linearrgb_to_srgb(float c) +{ + if (c < 0.0031308f) + return (c < 0.0f)? 0.0f: c * 12.92f; + else + return 1.055f * powf(c, 1.0f/2.4f) - 0.055f; +} + +void srgb_to_linearrgb_v3_v3(float *col_to, float *col_from) +{ + col_to[0] = srgb_to_linearrgb(col_from[0]); + col_to[1] = srgb_to_linearrgb(col_from[1]); + col_to[2] = srgb_to_linearrgb(col_from[2]); +} + +void linearrgb_to_srgb_v3_v3(float *col_to, float *col_from) +{ + col_to[0] = linearrgb_to_srgb(col_from[0]); + col_to[1] = linearrgb_to_srgb(col_from[1]); + col_to[2] = linearrgb_to_srgb(col_from[2]); +} + + void minmax_rgb(short c[]) { if(c[0]>255) c[0]=255; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index ce760643b3d..6103c582da0 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10064,7 +10064,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - /* put 2.50 compatibility code here until next subversion bump */ + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 8)) { { Scene *sce= main->scene.first; @@ -10108,7 +10108,47 @@ static void do_versions(FileData *fd, Library *lib, Main *main) ob=ob->id.next; } } + + /* only convert old 2.50 files with color management */ + if (main->versionfile == 250) { + Scene *sce=main->scene.first; + Material *ma=main->mat.first; + World *wo=main->world.first; + int convert=0; + + /* convert to new color management system: + while previously colors were stored as srgb, + now they are stored as linear internally, + with screen gamma correction in certain places in the UI. */ + + /* don't know what scene is active, so we'll convert if any scene has it enabled... */ + while (sce) { + if(sce->r.color_mgt_flag & R_COLOR_MANAGEMENT) + convert=1; + sce=sce->id.next; + } + + if (convert) { + while(ma) { + srgb_to_linearrgb_v3_v3(&ma->r, &ma->r); + srgb_to_linearrgb_v3_v3(&ma->specr, &ma->specr); + srgb_to_linearrgb_v3_v3(&ma->mirr, &ma->mirr); + srgb_to_linearrgb_v3_v3(ma->sss_col, ma->sss_col); + ma=ma->id.next; + } + + while(wo) { + srgb_to_linearrgb_v3_v3(&wo->ambr, &wo->ambr); + srgb_to_linearrgb_v3_v3(&wo->horr, &wo->horr); + srgb_to_linearrgb_v3_v3(&wo->zenr, &wo->zenr); + wo=wo->id.next; + } + } + } } + + /* put 2.50 compatibility code here until next subversion bump */ + /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 70bef5534a1..f0d09c505ac 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1790,14 +1790,17 @@ uiBlock *uiBeginBlock(const bContext *C, ARegion *region, const char *name, shor { uiBlock *block; wmWindow *window; + Scene *scn; int getsizex, getsizey; window= CTX_wm_window(C); + scn = CTX_data_scene(C); block= MEM_callocN(sizeof(uiBlock), "uiBlock"); block->active= 1; block->dt= dt; block->evil_C= (void*)C; // XXX + if (scn) block->color_profile= (scn->r.color_mgt_flag & R_COLOR_MANAGEMENT); BLI_strncpy(block->name, name, sizeof(block->name)); if(region) @@ -2295,6 +2298,7 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, char *str, short if(ELEM(but->type, HSVCUBE, HSVCIRCLE)) { /* hsv buttons temp storage */ float rgb[3]; ui_get_but_vectorf(but, rgb); + rgb_to_hsv(rgb[0], rgb[1], rgb[2], but->hsv, but->hsv+1, but->hsv+2); } diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index 762ec541bff..e6e5cb198aa 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -736,6 +736,8 @@ void ui_draw_but_COLORBAND(uiBut *but, uiWidgetColors *wcol, rcti *rect) for( a = 1; a < sizex; a++ ) { pos = ((float)a) / (sizex-1); do_colorband( coba, pos, colf ); + if (but->block->color_profile != BLI_PR_NONE) + linearrgb_to_srgb_v3_v3(colf, colf); v1[0]=v2[0]= x1 + a; diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 6d65a2a57a1..a51824f10e9 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -2697,7 +2697,13 @@ static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx, { float x, y; int changed= 1; - + int color_profile = but->block->color_profile; + + if (but->rnaprop) { + if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA) + color_profile = BLI_PR_NONE; + } + /* relative position within box */ x= ((float)mx-but->x1)/(but->x2-but->x1); y= ((float)my-but->y1)/(but->y2-but->y1); @@ -2719,8 +2725,12 @@ static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx, else if(but->a1==3) { but->hsv[0]= x; } - else + else { + /* vertical 'value' strip */ but->hsv[2]= y; + if (color_profile) + but->hsv[2] = srgb_to_linearrgb(but->hsv[2]); + } ui_set_but_hsv(but); // converts to rgb diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 21425bbb261..97ef1f1ea17 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -303,6 +303,8 @@ struct uiBlock { int active; // to keep blocks while drawing and free them afterwards int puphash; // popup menu hash for memory + + int color_profile; // color profile for correcting linear colors for display void *evil_C; // XXX hack for dynamic operator enums }; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index d46cb4df1c0..175f1ff1e2a 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -409,10 +409,10 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon } } else { - if(ELEM(subtype, PROP_COLOR, PROP_RGB)) + if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA)) uiDefAutoButR(block, ptr, prop, -1, "", 0, 0, 0, w, UI_UNIT_Y); - if(!ELEM(subtype, PROP_COLOR, PROP_RGB) || expand) { + if(!ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) || expand) { /* layout for known array subtypes */ char str[3]; @@ -439,7 +439,7 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon but->type= TOG; } } - else if(ELEM(subtype, PROP_COLOR, PROP_RGB) && len == 4) { + else if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && len == 4) { but= uiDefAutoButR(block, ptr, prop, 3, "A:", 0, 0, 0, w, UI_UNIT_Y); if(slider && but->type==NUM) but->type= NUMSLI; diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index c3eac3f3893..55b908a44ce 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1902,9 +1902,16 @@ static void uiBlockPickerNew(uiBlock *block, float *col, float *hsv, float *old, static short colormode= 0; /* temp? 0=rgb, 1=hsv, 2=hex */ uiBut *bt; int width; + static char tip[50]; VECCOPY(old, col); // old color stored there, for palette_cb to work + /* existence of profile means storage is in linear colour space, with display correction */ + if (block->color_profile == BLI_PR_NONE) + sprintf(tip, "Value in Display Color Space"); + else + sprintf(tip, "Value in Linear RGB Color Space"); + /* HS circle */ bt= uiDefButF(block, HSVCIRCLE, retval, "", 0, 0,SPICK1,SPICK1, col, 0.0, 0.0, 0, 0, ""); uiButSetFunc(bt, do_picker_small_cb, bt, hsv); @@ -1930,11 +1937,11 @@ static void uiBlockPickerNew(uiBlock *block, float *col, float *hsv, float *old, sprintf(hexcol, "%02X%02X%02X", (unsigned int)(col[0]*255.0), (unsigned int)(col[1]*255.0), (unsigned int)(col[2]*255.0)); uiBlockBeginAlign(block); - bt= uiDefButF(block, NUMSLI, 0, "R ", 0, -60, width, 19, col, 0.0, 1.0, 10, 3, ""); + bt= uiDefButF(block, NUMSLI, 0, "R ", 0, -60, width, 19, col, 0.0, 1.0, 10, 3, tip); uiButSetFunc(bt, do_palette1_cb, bt, hsv); - bt= uiDefButF(block, NUMSLI, 0, "G ", 0, -80, width, 19, col+1, 0.0, 1.0, 10, 3, ""); + bt= uiDefButF(block, NUMSLI, 0, "G ", 0, -80, width, 19, col+1, 0.0, 1.0, 10, 3, tip); uiButSetFunc(bt, do_palette1_cb, bt, hsv); - bt= uiDefButF(block, NUMSLI, 0, "B ", 0, -100, width, 19, col+2, 0.0, 1.0, 10, 3, ""); + bt= uiDefButF(block, NUMSLI, 0, "B ", 0, -100, width, 19, col+2, 0.0, 1.0, 10, 3, tip); uiButSetFunc(bt, do_palette1_cb, bt, hsv); uiBlockEndAlign(block); @@ -2000,6 +2007,13 @@ uiBlock *ui_block_func_COL(bContext *C, uiPopupBlockHandle *handle, void *arg_bu block= uiBeginBlock(C, handle->region, "colorpicker", UI_EMBOSS); + /* XXX ideally the colour picker buttons would reference the rna property itself */ + if (but->rnaprop) { + if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA) { + block->color_profile = BLI_PR_NONE; + } + } + uiBlockSetFlag(block, UI_BLOCK_MOVEMOUSE_QUIT); VECCOPY(handle->retvec, but->editvec); diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index ecd8c9720c8..7aaa6cbb42b 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -80,7 +80,7 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind case PROP_INT: case PROP_FLOAT: if(arraylen && index == -1) { - if(RNA_property_subtype(prop) == PROP_COLOR) + if(ELEM(RNA_property_subtype(prop), PROP_COLOR, PROP_COLOR_GAMMA)) but= uiDefButR(block, COL, 0, name, x1, y1, x2, y2, ptr, propname, 0, 0, 0, -1, -1, NULL); } else if(RNA_property_subtype(prop) == PROP_PERCENTAGE || RNA_property_subtype(prop) == PROP_FACTOR) diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index e148fd9217f..4c9698974b4 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -44,6 +44,8 @@ #include "BKE_global.h" #include "BKE_utildefines.h" +#include "RNA_access.h" + #include "BIF_gl.h" #include "BIF_glutil.h" @@ -1693,6 +1695,17 @@ static void ui_draw_but_HSV_v(uiBut *but, rcti *rect) uiWidgetBase wtb; float rad= 0.5f*(rect->xmax - rect->xmin); float x, y; + float v = but->hsv[2]; + int color_profile = but->block->color_profile; + + if (but->rnaprop) { + if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA) { + color_profile = BLI_PR_NONE; + } + } + + if (color_profile) + v = linearrgb_to_srgb(v); widget_init(&wtb); @@ -1709,8 +1722,8 @@ static void ui_draw_but_HSV_v(uiBut *but, rcti *rect) widgetbase_draw(&wtb, &wcol_tmp); /* cursor */ - x= rect->xmin + 0.5f*(rect->xmax-rect->xmin); - y= rect->ymin + but->hsv[2]*(rect->ymax-rect->ymin); + x= rect->xmin + 0.5f * (rect->xmax-rect->xmin); + y= rect->ymin + v * (rect->ymax-rect->ymin); CLAMP(y, rect->ymin+3.0, rect->ymax-3.0); ui_hsv_cursor(x, y); @@ -2005,6 +2018,12 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat { uiWidgetBase wtb; float col[4]; + int color_profile = but->block->color_profile; + + if (but->rnaprop) { + if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA) + color_profile = BLI_PR_NONE; + } widget_init(&wtb); @@ -2012,6 +2031,10 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat round_box_edges(&wtb, roundboxalign, rect, 5.0f); ui_get_but_vectorf(but, col); + + if (color_profile) + linearrgb_to_srgb_v3_v3(col, col); + wcol->inner[0]= FTOCHAR(col[0]); wcol->inner[1]= FTOCHAR(col[1]); wcol->inner[2]= FTOCHAR(col[2]); diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index bf73e70367c..51c7ba1a4bd 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -341,8 +341,9 @@ static int set_draw_settings_cached(int clearcache, int textured, MTFace *texfac struct TextureDrawState { Object *ob; int islit, istex; + int color_profile; unsigned char obcol[4]; -} Gtexdraw = {NULL, 0, 0, {0, 0, 0, 0}}; +} Gtexdraw = {NULL, 0, 0, 0, {0, 0, 0, 0}}; static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob) { @@ -371,6 +372,7 @@ static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, O Gtexdraw.ob = ob; Gtexdraw.istex = istex; + Gtexdraw.color_profile = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT; memcpy(Gtexdraw.obcol, obcol, sizeof(obcol)); set_draw_settings_cached(1, 0, 0, Gtexdraw.islit, 0, 0, 0); glShadeModel(GL_SMOOTH); @@ -413,7 +415,13 @@ static int draw_tface__set_draw_legacy(MTFace *tface, MCol *mcol, int matnr) if (tface) glColor3f(1.0, 1.0, 1.0); else { Material *ma= give_current_material(Gtexdraw.ob, matnr+1); - if(ma) glColor3f(ma->r, ma->g, ma->b); + if(ma) { + float col[3]; + if(Gtexdraw.color_profile) linearrgb_to_srgb_v3_v3(col, &ma->r); + else copy_v3_v3(col, &ma->r); + + glColor3fv(col); + } else glColor3f(1.0, 1.0, 1.0); } return 2; /* Don't set color */ @@ -478,13 +486,19 @@ static void add_tface_color_layer(DerivedMesh *dm) } } else { + float col[3]; Material *ma= give_current_material(Gtexdraw.ob, mface[i].mat_nr+1); - if(ma) + + if(ma) { + if(Gtexdraw.color_profile) linearrgb_to_srgb_v3_v3(col, &ma->r); + else copy_v3_v3(col, &ma->r); + for(j=0;j<4;j++) { - finalCol[i*4+j].b = ma->b; - finalCol[i*4+j].g = ma->g; - finalCol[i*4+j].r = ma->r; + finalCol[i*4+j].b = col[2]; + finalCol[i*4+j].g = col[1]; + finalCol[i*4+j].r = col[0]; } + } else for(j=0;j<4;j++) { finalCol[i*4+j].b = 255; diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 75e8073aafd..c2cf4dfa9fd 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -34,6 +34,8 @@ #include "GL/glew.h" +#include "BLI_math.h" + #include "DNA_image_types.h" #include "DNA_lamp_types.h" #include "DNA_material_types.h" @@ -856,6 +858,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O GPUMaterial *gpumat; GPUBlendMode blendmode; int a; + int gamma = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT; /* initialize state */ memset(&GMS, 0, sizeof(GMS)); @@ -930,6 +933,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O GMS.matbuf[a][0][0]= ma->r; GMS.matbuf[a][0][1]= ma->g; GMS.matbuf[a][0][2]= ma->b; + if(gamma) linearrgb_to_srgb_v3_v3(&GMS.matbuf[a][0][0], &GMS.matbuf[a][0][0]); } else { GMS.matbuf[a][0][0]= (ma->ref+ma->emit)*ma->r; GMS.matbuf[a][0][1]= (ma->ref+ma->emit)*ma->g; @@ -939,6 +943,11 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O GMS.matbuf[a][1][1]= ma->spec*ma->specg; GMS.matbuf[a][1][2]= ma->spec*ma->specb; GMS.matbuf[a][1][3]= 1.0; + + if(gamma) { + linearrgb_to_srgb_v3_v3(&GMS.matbuf[a][0][0], &GMS.matbuf[a][0][0]); + linearrgb_to_srgb_v3_v3(&GMS.matbuf[a][1][0], &GMS.matbuf[a][1][0]); + } } blendmode = (ma->alpha == 1.0f)? GPU_BLEND_SOLID: GPU_BLEND_ALPHA; diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index ff01f76fe71..27dd1069c1c 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -115,7 +115,7 @@ typedef enum PropertySubType { PROP_QUATERNION = 27, PROP_AXISANGLE = 28, PROP_XYZ = 29, - PROP_RGB = 30, + PROP_COLOR_GAMMA = 30, /* booleans */ PROP_LAYER = 40, diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 3d4e128c3ac..543e1f3ecc0 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -1430,7 +1430,7 @@ static const char *rna_property_subtypename(PropertyType type) case PROP_VELOCITY: return "PROP_VELOCITY"; case PROP_ACCELERATION: return "PROP_ACCELERATION"; case PROP_XYZ: return "PROP_XYZ"; - case PROP_RGB: return "PROP_RGB"; + case PROP_COLOR_GAMMA: return "PROP_COLOR_GAMMA"; case PROP_LAYER: return "PROP_LAYER"; case PROP_LAYER_MEMBER: return "PROP_LAYER_MEMBER"; default: { diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 6c0a3c57f65..5ee811d4c46 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -693,7 +693,7 @@ char RNA_property_array_item_char(PropertyRNA *prop, int index) return quatitem[index]; else if((index < 4) && ELEM6(subtype, PROP_TRANSLATION, PROP_DIRECTION, PROP_XYZ, PROP_EULER, PROP_VELOCITY, PROP_ACCELERATION)) return vectoritem[index]; - else if ((index < 4) && ELEM(subtype, PROP_COLOR, PROP_RGB)) + else if ((index < 4) && ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA)) return coloritem[index]; return '\0'; @@ -731,7 +731,7 @@ int RNA_property_array_item_index(PropertyRNA *prop, char name) return 3; } } - else if (ELEM(subtype, PROP_COLOR, PROP_RGB)) { + else if (ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA)) { switch (name) { case 'R': return 0; diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c index e9744c7f5ed..28f546c07f1 100644 --- a/source/blender/makesrna/intern/rna_brush.c +++ b/source/blender/makesrna/intern/rna_brush.c @@ -203,7 +203,7 @@ static void rna_def_brush(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Rate", "Number of paints per second for Airbrush."); RNA_def_property_update(prop, 0, "rna_Brush_update"); - prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); + prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, NULL, "rgb"); RNA_def_property_ui_text(prop, "Color", ""); RNA_def_property_update(prop, 0, "rna_Brush_update"); diff --git a/source/blender/makesrna/intern/rna_color.c b/source/blender/makesrna/intern/rna_color.c index 2a97eb78382..c4edd00045b 100644 --- a/source/blender/makesrna/intern/rna_color.c +++ b/source/blender/makesrna/intern/rna_color.c @@ -216,13 +216,13 @@ static void rna_def_curvemapping(BlenderRNA *brna) RNA_def_property_struct_type(prop, "CurveMap"); RNA_def_property_ui_text(prop, "Curves", ""); - prop= RNA_def_property(srna, "black_level", PROP_FLOAT, PROP_RGB); + prop= RNA_def_property(srna, "black_level", PROP_FLOAT, PROP_COLOR); RNA_def_property_float_sdna(prop, NULL, "black"); RNA_def_property_range(prop, -1000.0f, 1000.0f); RNA_def_property_ui_text(prop, "Black Level", "For RGB curves, the color that black is mapped to"); RNA_def_property_float_funcs(prop, NULL, "rna_CurveMapping_black_level_set", NULL); - prop= RNA_def_property(srna, "white_level", PROP_FLOAT, PROP_RGB); + prop= RNA_def_property(srna, "white_level", PROP_FLOAT, PROP_COLOR); RNA_def_property_float_sdna(prop, NULL, "white"); RNA_def_property_range(prop, -1000.0f, 1000.0f); RNA_def_property_ui_text(prop, "White Level", "For RGB curves, the color that white is mapped to"); diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 5ff8bffe715..85007482dc4 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -1239,7 +1239,7 @@ static void rna_def_material_sss(BlenderRNA *brna) RNA_def_struct_nested(brna, srna, "Material"); RNA_def_struct_ui_text(srna, "Material Subsurface Scattering", "Diffuse subsurface scattering settings for a Material datablock."); - prop= RNA_def_property(srna, "radius", PROP_FLOAT, PROP_RGB|PROP_UNIT_LENGTH); + prop= RNA_def_property(srna, "radius", PROP_FLOAT, PROP_COLOR|PROP_UNIT_LENGTH); RNA_def_property_float_sdna(prop, NULL, "sss_radius"); RNA_def_property_range(prop, 0.001, FLT_MAX); RNA_def_property_ui_range(prop, 0.001, 10000, 1, 3); diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c index f8adb1a79d8..5997867030d 100644 --- a/source/blender/makesrna/intern/rna_rna.c +++ b/source/blender/makesrna/intern/rna_rna.c @@ -869,7 +869,7 @@ static void rna_def_property(BlenderRNA *brna) {PROP_EULER, "EULER", 0, "Euler", ""}, {PROP_QUATERNION, "QUATERNION", 0, "Quaternion", ""}, {PROP_XYZ, "XYZ", 0, "XYZ", ""}, - {PROP_RGB, "RGB", 0, "RGB", ""}, + {PROP_COLOR_GAMMA, "COLOR_GAMMA", 0, "Gamma Corrected Color", ""}, {PROP_LAYER, "LAYER", 0, "Layer", ""}, {PROP_LAYER_MEMBER, "LAYER_MEMBERSHIP", 0, "Layer Membership", ""}, {0, NULL, 0, NULL, NULL}}; diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 32c2e18197f..8f8e083523b 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4848,8 +4848,7 @@ void RE_Database_FromScene(Render *re, Scene *scene, int use_camera_view) /* still bad... doing all */ init_render_textures(re); - if (re->r.color_mgt_flag & R_COLOR_MANAGEMENT) color_manage_linearize(amb, &re->wrld.ambr); - else VECCOPY(amb, &re->wrld.ambr); + VECCOPY(amb, &re->wrld.ambr); init_render_materials(re->r.mode, amb); set_node_shader_lamp_loop(shade_material_loop); @@ -5538,8 +5537,7 @@ void RE_Database_Baking(Render *re, Scene *scene, int type, Object *actob) /* still bad... doing all */ init_render_textures(re); - if (re->r.color_mgt_flag & R_COLOR_MANAGEMENT) color_manage_linearize(amb, &re->wrld.ambr); - else VECCOPY(amb, &re->wrld.ambr); + VECCOPY(amb, &re->wrld.ambr); init_render_materials(re->r.mode, amb); set_node_shader_lamp_loop(shade_material_loop); diff --git a/source/blender/render/intern/source/pixelshading.c b/source/blender/render/intern/source/pixelshading.c index d4b7c403f50..6fef8279c7e 100644 --- a/source/blender/render/intern/source/pixelshading.c +++ b/source/blender/render/intern/source/pixelshading.c @@ -537,15 +537,9 @@ void shadeSkyView(float *colf, float *rco, float *view, float *dxyview, short th /* the fraction of how far we are above the bottom of the screen */ blend= fabs(0.5+ view[1]); } - - if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { - color_manage_linearize(hor, &R.wrld.horr); - color_manage_linearize(zen, &R.wrld.zenr); - } - else { - VECCOPY(hor, &R.wrld.horr); - VECCOPY(zen, &R.wrld.zenr); - } + + VECCOPY(hor, &R.wrld.horr); + VECCOPY(zen, &R.wrld.zenr); /* Careful: SKYTEX and SKYBLEND are NOT mutually exclusive! If */ /* SKYBLEND is active, the texture and color blend are added. */ @@ -633,10 +627,7 @@ void shadeSkyPixel(float *collector, float fx, float fy, short thread) } else if((R.wrld.skytype & (WO_SKYBLEND+WO_SKYTEX))==0) { /* 2. solid color */ - if(R.r.color_mgt_flag & R_COLOR_MANAGEMENT) - color_manage_linearize(collector, &R.wrld.horr); - else - VECCOPY(collector, &R.wrld.horr); + VECCOPY(collector, &R.wrld.horr); collector[3] = 0.0f; } diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c index 396c713cfb7..fd1e27ab28a 100644 --- a/source/blender/render/intern/source/shadeinput.c +++ b/source/blender/render/intern/source/shadeinput.c @@ -91,42 +91,16 @@ extern struct Render R; * doing inverse gamma correction where applicable */ void shade_input_init_material(ShadeInput *shi) { - if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { - color_manage_linearize(&shi->r, &shi->mat->r); - color_manage_linearize(&shi->specr, &shi->mat->specr); - color_manage_linearize(&shi->mirr, &shi->mat->mirr); - - /* material ambr / ambg / ambb is overwritten from world - color_manage_linearize(shi->ambr, shi->mat->ambr); - */ - - /* note, keep this synced with render_types.h */ - memcpy(&shi->amb, &shi->mat->amb, 11*sizeof(float)); - shi->har= shi->mat->har; - } else { - /* note, keep this synced with render_types.h */ - memcpy(&shi->r, &shi->mat->r, 23*sizeof(float)); - shi->har= shi->mat->har; - } - -} - -static void shadeinput_colors_linearize(ShadeInput *shi) -{ - color_manage_linearize(&shi->r, &shi->r); - color_manage_linearize(&shi->specr, &shi->specr); - color_manage_linearize(&shi->mirr, &shi->mirr); + /* note, keep this synced with render_types.h */ + memcpy(&shi->r, &shi->mat->r, 23*sizeof(float)); + shi->har= shi->mat->har; } /* also used as callback for nodes */ /* delivers a fully filled in ShadeResult, for all passes */ void shade_material_loop(ShadeInput *shi, ShadeResult *shr) { - /* because node materials don't have access to rendering context, - * inverse gamma correction must happen here. evil. */ - if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT && shi->nodes == 1) - shadeinput_colors_linearize(shi); - + shade_lamp_loop(shi, shr); /* clears shr */ if(shi->translucency!=0.0f) { @@ -626,7 +600,7 @@ void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { if(mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE)) { - color_manage_linearize(shi->vcol, shi->vcol); + srgb_to_linearrgb_v3_v3(shi->vcol, shi->vcol); } } @@ -1291,7 +1265,7 @@ void shade_input_set_shade_texco(ShadeInput *shi) */ if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { if(mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE)) { - color_manage_linearize(shi->vcol, shi->vcol); + srgb_to_linearrgb_v3_v3(shi->vcol, shi->vcol); } } diff --git a/source/blender/render/intern/source/sss.c b/source/blender/render/intern/source/sss.c index 25cfc0f1253..e551cf0f3d2 100644 --- a/source/blender/render/intern/source/sss.c +++ b/source/blender/render/intern/source/sss.c @@ -926,20 +926,17 @@ static void sss_create_tree_mat(Render *re, Material *mat) if(!re->test_break(re->tbh)) { SSSData *sss= MEM_callocN(sizeof(*sss), "SSSData"); float ior= mat->sss_ior, cfac= mat->sss_colfac; - float col[3], *radius= mat->sss_radius; + float *radius= mat->sss_radius; float fw= mat->sss_front, bw= mat->sss_back; float error = mat->sss_error; error= get_render_aosss_error(&re->r, error); if((re->r.scemode & R_PREVIEWBUTS) && error < 0.5f) error= 0.5f; - - if (re->r.color_mgt_flag & R_COLOR_MANAGEMENT) color_manage_linearize(col, mat->sss_col); - else VECCOPY(col, mat->sss_col); - sss->ss[0]= scatter_settings_new(col[0], radius[0], ior, cfac, fw, bw); - sss->ss[1]= scatter_settings_new(col[1], radius[1], ior, cfac, fw, bw); - sss->ss[2]= scatter_settings_new(col[2], radius[2], ior, cfac, fw, bw); + sss->ss[0]= scatter_settings_new(mat->sss_col[0], radius[0], ior, cfac, fw, bw); + sss->ss[1]= scatter_settings_new(mat->sss_col[1], radius[1], ior, cfac, fw, bw); + sss->ss[2]= scatter_settings_new(mat->sss_col[2], radius[2], ior, cfac, fw, bw); sss->tree= scatter_tree_new(sss->ss, mat->sss_scale, error, co, color, area, totpoint); diff --git a/source/blender/render/intern/source/texture.c b/source/blender/render/intern/source/texture.c index a9f6e7a53fd..16372d7a15d 100644 --- a/source/blender/render/intern/source/texture.c +++ b/source/blender/render/intern/source/texture.c @@ -2051,8 +2051,13 @@ void do_material_tex(ShadeInput *shi) else texres.tin= texres.ta; /* inverse gamma correction */ - if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { - color_manage_linearize(tcol, tcol); + if (tex->type==TEX_IMAGE) { + Image *ima = tex->ima; + ImBuf *ibuf = BKE_image_get_ibuf(ima, &tex->iuser); + + /* don't linearize float buffers, assumed to be linear */ + if (ibuf && !(ibuf->rect_float) && R.r.color_mgt_flag & R_COLOR_MANAGEMENT) + srgb_to_linearrgb_v3_v3(tcol, tcol); } if(mtex->mapto & MAP_COL) { @@ -2404,11 +2409,6 @@ void do_volume_tex(ShadeInput *shi, float *xyz, int mapto_flag, float *col, floa texres.tin= texres.ta; } - /* inverse gamma correction */ - if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { - color_manage_linearize(tcol, tcol); - } - /* used for emit */ if((mapto_flag & MAP_EMISSION_COL) && (mtex->mapto & MAP_EMISSION_COL)) { float colemitfac= mtex->colemitfac*stencilTin; @@ -2556,8 +2556,13 @@ void do_halo_tex(HaloRen *har, float xn, float yn, float *colf) else texres.tin= texres.ta; /* inverse gamma correction */ - if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { - color_manage_linearize(&texres.tr, &texres.tr); + if (mtex->tex->type==TEX_IMAGE) { + Image *ima = mtex->tex->ima; + ImBuf *ibuf = BKE_image_get_ibuf(ima, &mtex->tex->iuser); + + /* don't linearize float buffers, assumed to be linear */ + if (ibuf && !(ibuf->rect_float) && R.r.color_mgt_flag & R_COLOR_MANAGEMENT) + srgb_to_linearrgb_v3_v3(&texres.tr, &texres.tr); } fact= texres.tin*mtex->colfac; @@ -2605,6 +2610,7 @@ void do_halo_tex(HaloRen *har, float xn, float yn, float *colf) void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, float *blend, int skyflag, short thread) { MTex *mtex; + Tex *tex; TexResult texres= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL}; float *co, fact, stencilTin=1.0; float tempvec[3], texvec[3], dxt[3], dyt[3]; @@ -2618,7 +2624,8 @@ void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, f if(R.wrld.mtex[tex_nr]) { mtex= R.wrld.mtex[tex_nr]; - if(mtex->tex==0) continue; + tex= mtex->tex; + if(tex==0) continue; /* if(mtex->mapto==0) continue; */ /* which coords */ @@ -2700,7 +2707,7 @@ void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, f else texvec[2]= mtex->size[2]*(mtex->ofs[2]); /* texture */ - if(mtex->tex->type==TEX_IMAGE) do_2d_mapping(mtex, texvec, NULL, NULL, dxt, dyt); + if(tex->type==TEX_IMAGE) do_2d_mapping(mtex, texvec, NULL, NULL, dxt, dyt); rgb= multitex(mtex->tex, texvec, dxt, dyt, R.osa, &texres, thread, mtex->which_output); @@ -2748,8 +2755,13 @@ void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, f tcol[0]= texres.tr; tcol[1]= texres.tg; tcol[2]= texres.tb; /* inverse gamma correction */ - if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { - color_manage_linearize(tcol, tcol); + if (tex->type==TEX_IMAGE) { + Image *ima = tex->ima; + ImBuf *ibuf = BKE_image_get_ibuf(ima, &tex->iuser); + + /* don't linearize float buffers, assumed to be linear */ + if (ibuf && !(ibuf->rect_float) && R.r.color_mgt_flag & R_COLOR_MANAGEMENT) + srgb_to_linearrgb_v3_v3(tcol, tcol); } if(mtex->mapto & WOMAP_HORIZ) { @@ -2947,8 +2959,13 @@ void do_lamp_tex(LampRen *la, float *lavec, ShadeInput *shi, float *colf, int ef else texres.tin= texres.ta; /* inverse gamma correction */ - if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) { - color_manage_linearize(&texres.tr, &texres.tr); + if (tex->type==TEX_IMAGE) { + Image *ima = tex->ima; + ImBuf *ibuf = BKE_image_get_ibuf(ima, &tex->iuser); + + /* don't linearize float buffers, assumed to be linear */ + if (ibuf && !(ibuf->rect_float) && R.r.color_mgt_flag & R_COLOR_MANAGEMENT) + srgb_to_linearrgb_v3_v3(&texres.tr, &texres.tr); } /* lamp colors were premultiplied with this */ -- cgit v1.2.3 From 8c5d021d1931446d08a3686347221baf5616df16 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 2 Dec 2009 10:32:39 +0000 Subject: rename armature RNA props armature_matrix --> matrix_local armature_head --> head_local armature_tail --> tail_local --- source/blender/makesrna/intern/rna_armature.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 4bea061758d..0a5445d2642 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -528,7 +528,7 @@ static void rna_def_bone(BlenderRNA *brna) RNA_def_property_array(prop, 9); RNA_def_property_ui_text(prop, "Bone Matrix", "3x3 bone matrix."); - prop= RNA_def_property(srna, "armature_matrix", PROP_FLOAT, PROP_MATRIX); + prop= RNA_def_property(srna, "matrix_local", PROP_FLOAT, PROP_MATRIX); RNA_def_property_float_sdna(prop, NULL, "arm_mat"); RNA_def_property_array(prop, 16); RNA_def_property_ui_text(prop, "Bone Armature-Relative Matrix", "4x4 bone matrix relative to armature."); @@ -538,7 +538,7 @@ static void rna_def_bone(BlenderRNA *brna) RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Tail", "Location of tail end of the bone."); - prop= RNA_def_property(srna, "armature_tail", PROP_FLOAT, PROP_TRANSLATION); + prop= RNA_def_property(srna, "tail_local", PROP_FLOAT, PROP_TRANSLATION); RNA_def_property_float_sdna(prop, NULL, "arm_tail"); RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Armature-Relative Tail", "Location of tail end of the bone relative to armature."); @@ -546,9 +546,9 @@ static void rna_def_bone(BlenderRNA *brna) prop= RNA_def_property(srna, "head", PROP_FLOAT, PROP_TRANSLATION); RNA_def_property_float_sdna(prop, NULL, "head"); RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Head", "Location of head end of the bone."); + RNA_def_property_ui_text(prop, "Head", "Location of head end of the bone relative to its parent."); - prop= RNA_def_property(srna, "armature_head", PROP_FLOAT, PROP_TRANSLATION); + prop= RNA_def_property(srna, "head_local", PROP_FLOAT, PROP_TRANSLATION); RNA_def_property_float_sdna(prop, NULL, "arm_head"); RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Armature-Relative Head", "Location of head end of the bone relative to armature."); -- cgit v1.2.3 From 03a9740c16861511fec9908fa0afe4d42620773d Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Wed, 2 Dec 2009 11:23:11 +0000 Subject: Quicktime : make dna codecType data store the quicktime codecType value instead of a proxy value Quicktime codecType data is a 32 bit value (4 chars coded). Implemented RNA set/get functions for codecType enum to cope with RNA enum values 24bit precision limitation Implemented dynamic codecType enum list creation Carbon quicktime now stores codec settings in "clear" in the QuicktimeCodecSettings dna struct (in addition to the closed atom container in QuicktimeCodecData) to be compatible with the QTKit version +fixed some warnings --- source/blender/makesrna/intern/rna_scene.c | 60 ++++++-- source/blender/quicktime/apple/qtkit_export.m | 95 +++++++----- source/blender/quicktime/apple/qtkit_import.m | 5 +- source/blender/quicktime/apple/quicktime_export.c | 167 +++++++++++++++++----- source/blender/quicktime/quicktime_export.h | 109 ++++++++++++-- 5 files changed, 341 insertions(+), 95 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 433e0974d35..8e7813e6946 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -410,6 +410,48 @@ static void rna_SceneRenderData_jpeg2k_depth_set(PointerRNA *ptr, int value) } #endif +#ifdef WITH_QUICKTIME +static int rna_SceneRenderData_qtcodecsettings_codecType_get(PointerRNA *ptr) +{ + RenderData *rd= (RenderData*)ptr->data; + + return quicktime_rnatmpvalue_from_codectype(rd->qtcodecsettings.codecType); +} + +static void rna_SceneRenderData_qtcodecsettings_codecType_set(PointerRNA *ptr, int value) +{ + RenderData *rd= (RenderData*)ptr->data; + + rd->qtcodecsettings.codecType = quicktime_codecType_from_rnatmpvalue(value); +} + +static EnumPropertyItem *rna_SceneRenderData_qtcodecsettings_codecType_itemf(bContext *C, PointerRNA *ptr, int *free) +{ + EnumPropertyItem *item= NULL; + EnumPropertyItem tmp = {0, "", 0, "", ""}; + QuicktimeCodecTypeDesc *codecTypeDesc; + int i=1, totitem= 0; + char id[5]; + + for(i=0;irnatmpvalue; + *((int*)id) = codecTypeDesc->codecType; + id[4] = 0; + tmp.identifier= id; + tmp.name= codecTypeDesc->codecName; + RNA_enum_item_add(&item, &totitem, &tmp); + } + + RNA_enum_item_end(&item, &totitem); + *free= 1; + + return item; +} +#endif + static int rna_SceneRenderData_active_layer_index_get(PointerRNA *ptr) { RenderData *rd= (RenderData*)ptr->data; @@ -1457,7 +1499,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) # ifdef USE_QTKIT {R_QUICKTIME, "QUICKTIME_QTKIT", ICON_FILE_MOVIE, "QuickTime", ""}, # else - {R_QUICKTIME, "QUICKTIME", ICON_FILE_MOVIE, "QuickTime", ""}, + {R_QUICKTIME, "QUICKTIME_CARBON", ICON_FILE_MOVIE, "QuickTime", ""}, # endif #endif #ifdef __sgi @@ -1508,18 +1550,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) #ifdef WITH_QUICKTIME static EnumPropertyItem quicktime_codec_type_items[] = { - {QT_CODECTYPE_RAW, "RAW", 0, "Uncompressed", ""}, - {QT_CODECTYPE_JPEG, "JPEG", 0, "JPEG", ""}, - {QT_CODECTYPE_MJPEGA, "MJPEG_A", 0, "M-JPEG A", ""}, - {QT_CODECTYPE_MJPEGB, "MJPEG_B", 0, "M-JPEG B", ""}, - {QT_CODECTYPE_DVCPAL, "DVCPAL", 0, "DV PAL", ""}, - {QT_CODECTYPE_DVCNTSC, "DVCNTSC", 0, "DV/DVCPRO NTSC", ""}, - {QT_CODECTYPE_DVCPROHD720p, "DVCPROHD720P", 0, "DVCPRO HD 720p"}, - {QT_CODECTYPE_DVCPROHD1080i50, "DVCPROHD1080I50", 0, "DVCPRO HD 1080i50"}, - {QT_CODECTYPE_DVCPROHD1080i60, "DVCPROHD1080I60", 0, "DVCPRO HD 1080i60"}, - {QT_CODECTYPE_MPEG4, "MPEG4", 0, "MPEG4", ""}, - {QT_CODECTYPE_H263, "H263", 0, "H.263", ""}, - {QT_CODECTYPE_H264, "H264", 0, "H.264", ""}, + {0, "codec", 0, "codec", ""}, {0, NULL, 0, NULL, NULL}}; #endif @@ -1718,6 +1749,9 @@ static void rna_def_scene_render_data(BlenderRNA *brna) prop= RNA_def_property(srna, "quicktime_codec_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "qtcodecsettings.codecType"); RNA_def_property_enum_items(prop, quicktime_codec_type_items); + RNA_def_property_enum_funcs(prop, "rna_SceneRenderData_qtcodecsettings_codecType_get", + "rna_SceneRenderData_qtcodecsettings_codecType_set", + "rna_SceneRenderData_qtcodecsettings_codecType_itemf"); RNA_def_property_ui_text(prop, "Codec", "QuickTime codec type"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); diff --git a/source/blender/quicktime/apple/qtkit_export.m b/source/blender/quicktime/apple/qtkit_export.m index 6788c22d9a1..59cd669d738 100644 --- a/source/blender/quicktime/apple/qtkit_export.m +++ b/source/blender/quicktime/apple/qtkit_export.m @@ -49,10 +49,6 @@ #include "MEM_guardedalloc.h" -#include "quicktime_import.h" -#include "quicktime_export.h" - - #ifdef __APPLE__ /* evil */ #ifndef __AIFF__ @@ -65,6 +61,9 @@ #error OSX 10.5 minimum is needed for QTKit #endif +#include "quicktime_import.h" +#include "quicktime_export.h" + #endif /* __APPLE__ */ typedef struct QuicktimeExport { @@ -78,36 +77,65 @@ typedef struct QuicktimeExport { static struct QuicktimeExport *qtexport; +#pragma mark rna helper functions -static NSString *stringWithCodecType(int codecType) { - switch (codecType) { - case QT_CODECTYPE_RAW: - return @"raw "; - case QT_CODECTYPE_MJPEGA: - return @"mjpa"; - case QT_CODECTYPE_MJPEGB: - return @"mjpb"; - case QT_CODECTYPE_DVCPAL: - return @"dvcp"; - case QT_CODECTYPE_DVCNTSC: - return @"dvc "; - case QT_CODECTYPE_MPEG4: - return @"mp4v"; - case QT_CODECTYPE_H263: - return @"h263"; - case QT_CODECTYPE_H264: - return @"avc1"; - case QT_CODECTYPE_DVCPROHD720p: - return @"dvhp"; - case QT_CODECTYPE_DVCPROHD1080i50: - return @"dvh5"; - case QT_CODECTYPE_DVCPROHD1080i60: - return @"dvh6"; - - case QT_CODECTYPE_JPEG: - default: - return @"jpeg"; + +static QuicktimeCodecTypeDesc qtCodecList[] = { + {kRawCodecType, 1, "Uncompressed"}, + {kJPEGCodecType, 2, "JPEG"}, + {kMotionJPEGACodecType, 3, "M-JPEG A"}, + {kMotionJPEGBCodecType, 4, "M-JPEG B"}, + {kDVCPALCodecType, 5, "DV PAL"}, + {kDVCNTSCCodecType, 6, "DV/DVCPRO NTSC"}, + {kDVCPROHD720pCodecType, 7, "DVCPRO HD 720p"}, + {kDVCPROHD1080i50CodecType, 8, "DVCPRO HD 1080i50"}, + {kDVCPROHD1080i60CodecType, 9, "DVCPRO HD 1080i60"}, + {kMPEG4VisualCodecType, 10, "MPEG4"}, + {kH263CodecType, 11, "H.263"}, + {kH264CodecType, 12, "H.264"}, + {0,0,NULL}}; + +static int qtCodecCount = 12; + +int quicktime_get_num_codecs() { + return qtCodecCount; +} + +QuicktimeCodecTypeDesc* quicktime_get_codecType_desc(int indexValue) { + if ((indexValue>=0) && (indexValue < qtCodecCount)) + return &qtCodecList[indexValue]; + else + return NULL; +} + +int quicktime_rnatmpvalue_from_codectype(int codecType) { + int i; + for (i=0;iqtcodecsettings.codecSpatialQuality <0) || (rd->qtcodecsettings.codecSpatialQuality > 100)) { - rd->qtcodecsettings.codecType = QT_CODECTYPE_JPEG; + rd->qtcodecsettings.codecType = kJPEGCodecType; rd->qtcodecsettings.codecSpatialQuality = (codecHighQuality*100)/codecLosslessQuality; } } diff --git a/source/blender/quicktime/apple/qtkit_import.m b/source/blender/quicktime/apple/qtkit_import.m index 500ee13330d..31a6ca71259 100644 --- a/source/blender/quicktime/apple/qtkit_import.m +++ b/source/blender/quicktime/apple/qtkit_import.m @@ -137,7 +137,7 @@ static ImBuf * nsImageToiBuf(NSImage *sourceImage, int width, int height) uchar *toIBuf = NULL; int x, y, to_i, from_i; NSSize bitmapSize; - NSBitmapImageRep *blBitmapFormatImageRGB,*blBitmapFormatImageRGBA,*bitmapImage; + NSBitmapImageRep *blBitmapFormatImageRGB,*blBitmapFormatImageRGBA,*bitmapImage=nil; NSEnumerator *enumerator; NSImageRep *representation; @@ -150,12 +150,13 @@ static ImBuf * nsImageToiBuf(NSImage *sourceImage, int width, int height) /*Get the bitmap of the image*/ enumerator = [[sourceImage representations] objectEnumerator]; - while (representation = [enumerator nextObject]) { + while ((representation = [enumerator nextObject])) { if ([representation isKindOfClass:[NSBitmapImageRep class]]) { bitmapImage = (NSBitmapImageRep *)representation; break; } } + if (bitmapImage == nil) return NULL; if (([bitmapImage bitsPerPixel] == 32) && (([bitmapImage bitmapFormat] & 0x5) == 0) && ![bitmapImage isPlanar]) { diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index 851b3c5b245..c6c412ae24b 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -77,6 +77,7 @@ static void QT_EndAddVideoSamplesToMedia (void); static void QT_CreateMyVideoTrack (int rectx, int recty); static void QT_EndCreateMyVideoTrack (void); static void check_renderbutton_framerate(struct RenderData *rd); +static int get_qtcodec_settings(struct RenderData *rd); typedef struct QuicktimeExport { @@ -113,6 +114,57 @@ static struct QuicktimeComponentData *qtdata; static int sframe; +/* RNA functions */ + +static QuicktimeCodecTypeDesc qtCodecList[] = { + {kRawCodecType, 1, "Uncompressed"}, + {kJPEGCodecType, 2, "JPEG"}, + {kMotionJPEGACodecType, 3, "M-JPEG A"}, + {kMotionJPEGBCodecType, 4, "M-JPEG B"}, + {kDVCPALCodecType, 5, "DV PAL"}, + {kDVCNTSCCodecType, 6, "DV/DVCPRO NTSC"}, + {kDVCPROHD720pCodecType, 7, "DVCPRO HD 720p"}, + {kDVCPROHD1080i50CodecType, 8, "DVCPRO HD 1080i50"}, + {kDVCPROHD1080i60CodecType, 9, "DVCPRO HD 1080i60"}, + {kMPEG4VisualCodecType, 10, "MPEG4"}, + {kH263CodecType, 11, "H.263"}, + {kH264CodecType, 12, "H.264"}, + {0,0,NULL}}; + +static int qtCodecCount = 12; + +int quicktime_get_num_codecs() { + return qtCodecCount; +} + +QuicktimeCodecTypeDesc* quicktime_get_codecType_desc(int indexValue) { + if ((indexValue>=0) && (indexValue < qtCodecCount)) + return &qtCodecList[indexValue]; + else + return NULL; +} + +int quicktime_rnatmpvalue_from_codectype(int codecType) { + int i; + for (i=0;iqtcodecdata; - + // check if current scene already has qtcodec settings, and clear them if (qcd) { free_qtcodecdata(qcd); @@ -183,8 +234,6 @@ static OSErr QT_GetCodecSettingsFromScene(RenderData *rd) { Handle myHandle = NULL; ComponentResult myErr = noErr; -// CodecInfo ci; -// char str[255]; QuicktimeCodecData *qcd = rd->qtcodecdata; @@ -207,9 +256,22 @@ static OSErr QT_GetCodecSettingsFromScene(RenderData *rd) SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); -// GetCodecInfo (&ci, qtdata->gSpatialSettings.codecType, 0); -// CopyPascalStringToC(ci.typeName, str); -// printf("restored Codec: %s\n", str); + + //Fill the render QuicktimeCodecSettigns struct + rd->qtcodecsettings.codecTemporalQuality = (qtdata->gTemporalSettings.temporalQuality * 100) / codecLosslessQuality; + //Do not override scene frame rate (qtdata->gTemporalSettings.framerate) + rd->qtcodecsettings.keyFrameRate = qtdata->gTemporalSettings.keyFrameRate; + + rd->qtcodecsettings.codecType = qtdata->gSpatialSettings.codecType; + rd->qtcodecsettings.codec = (int)qtdata->gSpatialSettings.codec; + rd->qtcodecsettings.colorDepth = qtdata->gSpatialSettings.depth; + rd->qtcodecsettings.codecSpatialQuality = (qtdata->gSpatialSettings.spatialQuality * 100) / codecLosslessQuality; + + rd->qtcodecsettings.bitRate = qtdata->aDataRateSetting.dataRate; + rd->qtcodecsettings.minSpatialQuality = (qtdata->aDataRateSetting.minSpatialQuality * 100) / codecLosslessQuality; + rd->qtcodecsettings.minTemporalQuality = (qtdata->aDataRateSetting.minTemporalQuality * 100) / codecLosslessQuality; + //Frame duration is already known (qtdata->aDataRateSetting.frameDuration) + } else { printf("Quicktime: QT_GetCodecSettingsFromScene failed\n"); } @@ -473,6 +535,7 @@ void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty) makeqtstring(rd, name); #ifdef __APPLE__ + EnterMoviesOnThread(0); sprintf(theFullPath, "%s", name); /* hack: create an empty file to make FSPathMakeRef() happy */ @@ -508,6 +571,9 @@ void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty) if(err != noErr) { G.afbreek = 1; // XXX error("Unable to create Quicktime movie: %s", name); +#ifdef __APPLE__ + ExitMoviesOnThread(); +#endif } else { printf("Created QuickTime movie: %s\n", name); @@ -545,6 +611,8 @@ void end_qt(void) { printf("Finished QuickTime movie.\n"); } + ExitMoviesOnThread(); + if(qtexport) { MEM_freeN(qtexport); qtexport = NULL; @@ -576,7 +644,7 @@ static void check_renderbutton_framerate(RenderData *rd) else { if (rd->frs_sec_base > 0) qtdata->gTemporalSettings.frameRate = - (rd->frs_sec << 16) / rd->frs_sec_base ; + ((float)(rd->frs_sec << 16) / rd->frs_sec_base) ; } err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); @@ -600,21 +668,24 @@ static void check_renderbutton_framerate(RenderData *rd) void quicktime_verify_image_type(RenderData *rd) { if (rd->imtype == R_QUICKTIME) { - if ((rd->qtcodecsettings.codecType<= 0) || + if ((rd->qtcodecsettings.codecType== 0) || (rd->qtcodecsettings.codecSpatialQuality <0) || (rd->qtcodecsettings.codecSpatialQuality > 100)) { - rd->qtcodecsettings.codecType = QT_CODECTYPE_JPEG; + rd->qtcodecsettings.codecType = kJPEGCodecType; + rd->qtcodecsettings.codec = (int)anyCodec; rd->qtcodecsettings.codecSpatialQuality = (codecHighQuality*100)/codecLosslessQuality; + rd->qtcodecsettings.codecTemporalQuality = (codecHighQuality*100)/codecLosslessQuality; + rd->qtcodecsettings.keyFrameRate = 25; + rd->qtcodecsettings.bitRate = 5000000; //5 Mbps } } } int get_qtcodec_settings(RenderData *rd) { - OSErr err = noErr; - - // erase any existing codecsetting + OSErr err = noErr; + // erase any existing codecsetting if(qtdata) { if(qtdata->theComponent) CloseComponent(qtdata->theComponent); free_qtcomponentdata(); @@ -624,20 +695,28 @@ int get_qtcodec_settings(RenderData *rd) qtdata = MEM_callocN(sizeof(QuicktimeComponentData), "QuicktimeComponentData"); qtdata->theComponent = OpenDefaultComponent(StandardCompressionType, StandardCompressionSubType); - // get previous selected codecsetting, if any + // get previous selected codecsetting, from qtatom or detailed settings if(rd->qtcodecdata && rd->qtcodecdata->cdParms) { QT_GetCodecSettingsFromScene(rd); - check_renderbutton_framerate(rd); } else { - // configure the standard image compression dialog box - // set some default settings: codec=jpeg, quality = max - qtdata->gSpatialSettings.codecType = kJPEGCodecType; - qtdata->gSpatialSettings.codec = anyCodec; - qtdata->gSpatialSettings.spatialQuality = codecHighQuality; - qtdata->gTemporalSettings.temporalQuality = codecHighQuality; - qtdata->gTemporalSettings.keyFrameRate = 25; - qtdata->aDataRateSetting.dataRate = 5 * 1024 * 1024; + SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); + SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); + SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); + qtdata->gSpatialSettings.codecType = rd->qtcodecsettings.codecType; + qtdata->gSpatialSettings.codec = (CodecComponent)rd->qtcodecsettings.codec; + qtdata->gSpatialSettings.spatialQuality = (rd->qtcodecsettings.codecSpatialQuality * codecLosslessQuality) /100; + qtdata->gTemporalSettings.temporalQuality = (rd->qtcodecsettings.codecTemporalQuality * codecLosslessQuality) /100; + qtdata->gTemporalSettings.keyFrameRate = rd->qtcodecsettings.keyFrameRate; + qtdata->aDataRateSetting.dataRate = rd->qtcodecsettings.bitRate; + qtdata->gSpatialSettings.depth = rd->qtcodecsettings.colorDepth; + qtdata->aDataRateSetting.minSpatialQuality = (rd->qtcodecsettings.minSpatialQuality * codecLosslessQuality) / 100; + qtdata->aDataRateSetting.minTemporalQuality = (rd->qtcodecsettings.minTemporalQuality * codecLosslessQuality) / 100; + + qtdata->aDataRateSetting.frameDuration = rd->frs_sec; + SetMovieTimeScale(qtexport->theMovie, rd->frs_sec_base*1000); + + err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); CheckError(err, "SCSetInfo1 error"); err = SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); @@ -647,22 +726,42 @@ int get_qtcodec_settings(RenderData *rd) } check_renderbutton_framerate(rd); + + return err; +} - /* Remove this dialog box pop up as this function is called from the render thread - Anyway, all config should be done inside blender ui before starting render. - // put up the dialog box - it needs to be called from the main thread +int request_qtcodec_settings(RenderData *rd) +{ + OSErr err = noErr; + + // put up the dialog box - it needs to be called from the main thread err = SCRequestSequenceSettings(qtdata->theComponent); if (err == scUserCancelled) { - G.afbreek = 1; return 0; } - // get user selected data - SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); + // update runtime codecsettings for use with the codec dialog + SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); - SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);*/ - + SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); + + + //Fill the render QuicktimeCodecSettings struct + rd->qtcodecsettings.codecTemporalQuality = (qtdata->gTemporalSettings.temporalQuality * 100) / codecLosslessQuality; + //Do not override scene frame rate (qtdata->gTemporalSettings.framerate) + rd->qtcodecsettings.keyFrameRate = qtdata->gTemporalSettings.keyFrameRate; + + rd->qtcodecsettings.codecType = qtdata->gSpatialSettings.codecType; + rd->qtcodecsettings.codec = (int)qtdata->gSpatialSettings.codec; + rd->qtcodecsettings.colorDepth = qtdata->gSpatialSettings.depth; + rd->qtcodecsettings.codecSpatialQuality = (qtdata->gSpatialSettings.spatialQuality * 100) / codecLosslessQuality; + + rd->qtcodecsettings.bitRate = qtdata->aDataRateSetting.dataRate; + rd->qtcodecsettings.minSpatialQuality = (qtdata->aDataRateSetting.minSpatialQuality * 100) / codecLosslessQuality; + rd->qtcodecsettings.minTemporalQuality = (qtdata->aDataRateSetting.minTemporalQuality * 100) / codecLosslessQuality; + //Frame duration is already known (qtdata->aDataRateSetting.frameDuration) + QT_SaveCodecSettingsToScene(rd); // framerate jugglin' @@ -692,11 +791,11 @@ int get_qtcodec_settings(RenderData *rd) if ((qtdata->gTemporalSettings.frameRate & 0xffff) == 0) { rd->frs_sec = fps / 65536; - rd->frs_sec_base = 1; + rd->frs_sec_base = 1.0; } else { /* we do our very best... */ - rd->frs_sec = (fps * 10000 / 65536); - rd->frs_sec_base = 10000; + rd->frs_sec = fps / 65536; + rd->frs_sec_base = 1.0; } } diff --git a/source/blender/quicktime/quicktime_export.h b/source/blender/quicktime/quicktime_export.h index 7972c826190..61153ff91d2 100644 --- a/source/blender/quicktime/quicktime_export.h +++ b/source/blender/quicktime/quicktime_export.h @@ -33,19 +33,13 @@ #define __AIFF__ -/* Quicktime codec types defines */ -#define QT_CODECTYPE_JPEG 1 -#define QT_CODECTYPE_MJPEGA 2 -#define QT_CODECTYPE_MJPEGB 3 -#define QT_CODECTYPE_DVCPAL 4 -#define QT_CODECTYPE_DVCNTSC 5 -#define QT_CODECTYPE_MPEG4 6 -#define QT_CODECTYPE_H263 7 -#define QT_CODECTYPE_H264 8 -#define QT_CODECTYPE_RAW 9 -#define QT_CODECTYPE_DVCPROHD720p 10 -#define QT_CODECTYPE_DVCPROHD1080i50 11 -#define QT_CODECTYPE_DVCPROHD1080i60 12 + +/*Codec list*/ +typedef struct QuicktimeCodecTypeDesc { + int codecType; + int rnatmpvalue; + char * codecName; +} QuicktimeCodecTypeDesc ; // quicktime movie output functions struct RenderData; @@ -55,11 +49,100 @@ void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty); void append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty); void end_qt(void); +/*RNA helper functions */ void quicktime_verify_image_type(struct RenderData *rd); //used by RNA for defaults values init, if needed +int quicktime_get_num_codecs(); +QuicktimeCodecTypeDesc* quicktime_get_codecType_desc(int indexValue); +int quicktime_rnatmpvalue_from_codectype(int codecType); +int quicktime_codecType_from_rnatmpvalue(int rnatmpvalue); + +#ifndef USE_QTKIT +int request_qtcodec_settings(struct RenderData *rd); //Raise quicktime standard dialog to request codec settings +#endif + void free_qtcomponentdata(void); void makeqtstring(struct RenderData *rd, char *string); //for playanim.c + + +#if (defined(USE_QTKIT) && defined(MAC_OS_X_VERSION_10_6) && __LP64__) +//Include the quicktime codec types constants that are missing in QTKitDefines.h in 10.6 / 64bit +enum { + kRawCodecType = 'raw ', + kCinepakCodecType = 'cvid', + kGraphicsCodecType = 'smc ', + kAnimationCodecType = 'rle ', + kVideoCodecType = 'rpza', + kComponentVideoCodecType = 'yuv2', + kJPEGCodecType = 'jpeg', + kMotionJPEGACodecType = 'mjpa', + kMotionJPEGBCodecType = 'mjpb', + kSGICodecType = '.SGI', + kPlanarRGBCodecType = '8BPS', + kMacPaintCodecType = 'PNTG', + kGIFCodecType = 'gif ', + kPhotoCDCodecType = 'kpcd', + kQuickDrawGXCodecType = 'qdgx', + kAVRJPEGCodecType = 'avr ', + kOpenDMLJPEGCodecType = 'dmb1', + kBMPCodecType = 'WRLE', + kWindowsRawCodecType = 'WRAW', + kVectorCodecType = 'path', + kQuickDrawCodecType = 'qdrw', + kWaterRippleCodecType = 'ripl', + kFireCodecType = 'fire', + kCloudCodecType = 'clou', + kH261CodecType = 'h261', + kH263CodecType = 'h263', + kDVCNTSCCodecType = 'dvc ', /* DV - NTSC and DVCPRO NTSC (available in QuickTime 6.0 or later)*/ + /* NOTE: kDVCProNTSCCodecType is deprecated. */ + /* Use kDVCNTSCCodecType instead -- as far as the codecs are concerned, */ + /* the two data formats are identical.*/ + kDVCPALCodecType = 'dvcp', + kDVCProPALCodecType = 'dvpp', /* available in QuickTime 6.0 or later*/ + kDVCPro50NTSCCodecType = 'dv5n', + kDVCPro50PALCodecType = 'dv5p', + kDVCPro100NTSCCodecType = 'dv1n', + kDVCPro100PALCodecType = 'dv1p', + kDVCPROHD720pCodecType = 'dvhp', + kDVCPROHD1080i60CodecType = 'dvh6', + kDVCPROHD1080i50CodecType = 'dvh5', + kBaseCodecType = 'base', + kFLCCodecType = 'flic', + kTargaCodecType = 'tga ', + kPNGCodecType = 'png ', + kTIFFCodecType = 'tiff', /* NOTE: despite what might seem obvious from the two constants*/ + /* below and their names, they really are correct. 'yuvu' really */ + /* does mean signed, and 'yuvs' really does mean unsigned. Really. */ + kComponentVideoSigned = 'yuvu', + kComponentVideoUnsigned = 'yuvs', + kCMYKCodecType = 'cmyk', + kMicrosoftVideo1CodecType = 'msvc', + kSorensonCodecType = 'SVQ1', + kSorenson3CodecType = 'SVQ3', /* available in QuickTime 5 and later*/ + kIndeo4CodecType = 'IV41', + kMPEG4VisualCodecType = 'mp4v', + k64ARGBCodecType = 'b64a', + k48RGBCodecType = 'b48r', + k32AlphaGrayCodecType = 'b32a', + k16GrayCodecType = 'b16g', + kMpegYUV420CodecType = 'myuv', + kYUV420CodecType = 'y420', + kSorensonYUV9CodecType = 'syv9', + k422YpCbCr8CodecType = '2vuy', /* Component Y'CbCr 8-bit 4:2:2 */ + k444YpCbCr8CodecType = 'v308', /* Component Y'CbCr 8-bit 4:4:4 */ + k4444YpCbCrA8CodecType = 'v408', /* Component Y'CbCrA 8-bit 4:4:4:4 */ + k422YpCbCr16CodecType = 'v216', /* Component Y'CbCr 10,12,14,16-bit 4:2:2*/ + k422YpCbCr10CodecType = 'v210', /* Component Y'CbCr 10-bit 4:2:2 */ + k444YpCbCr10CodecType = 'v410', /* Component Y'CbCr 10-bit 4:4:4 */ + k4444YpCbCrA8RCodecType = 'r408', /* Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv*/ + kJPEG2000CodecType = 'mjp2', + kPixletCodecType = 'pxlt', + kH264CodecType = 'avc1' +}; +#endif + #endif //(_WIN32) || (__APPLE__) #endif // __QUICKTIME_IMP_H__ -- cgit v1.2.3 From 927b976a88a836c94651b07210f0d635d33500ef Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 2 Dec 2009 11:54:48 +0000 Subject: AAO Indirect Diffuse Don't use passes anymore for indirect lighting, people were using this probably thinking it would do bounces, but that's not the intention of this feature, it is to reduce problems with light bleeding. I want to remove this option for AO as well, but will leave it in for now until there is a better alternative. Added bounces option for indirect, could be implemented much better, but perhaps useful for testing now. Existing files need to set this to 1 to get the same results again. --- source/blender/makesdna/DNA_world_types.h | 3 +- source/blender/makesrna/intern/rna_world.c | 5 ++ source/blender/render/intern/source/occlusion.c | 77 +++++++++++++++++-------- 3 files changed, 60 insertions(+), 25 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h index 11ecbf97d97..9b3f78caee0 100644 --- a/source/blender/makesdna/DNA_world_types.h +++ b/source/blender/makesdna/DNA_world_types.h @@ -107,7 +107,8 @@ typedef struct World { short aomode, aosamp, aomix, aocolor; float ao_adapt_thresh, ao_adapt_speed_fac; float ao_approx_error, ao_approx_correction; - float ao_indirect_energy, aopad; + float ao_indirect_energy; + short ao_indirect_bounces, ao_pad; short ao_samp_method, ao_gather_method, ao_approx_passes; /* assorted settings (in the middle of ambient occlusion settings for padding reasons) */ diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c index 88992387148..231faffef0f 100644 --- a/source/blender/makesrna/intern/rna_world.c +++ b/source/blender/makesrna/intern/rna_world.c @@ -318,6 +318,11 @@ static void rna_def_ambient_occlusion(BlenderRNA *brna) RNA_def_property_ui_range(prop, 0, 10, 0.1, 3); RNA_def_property_ui_text(prop, "Indirect", "Use approximate ambient occlusion for indirect diffuse lighting."); RNA_def_property_update(prop, 0, "rna_World_update"); + + prop= RNA_def_property(srna, "indirect_bounces", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "ao_indirect_bounces"); + RNA_def_property_ui_text(prop, "Bounces", "Number of indirect diffuse light bounces to use for approximate ambient occlusion."); + RNA_def_property_update(prop, 0, "rna_World_update"); } static void rna_def_world_mist(BlenderRNA *brna) diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c index 90929db2f74..3a5680eaf70 100644 --- a/source/blender/render/intern/source/occlusion.c +++ b/source/blender/render/intern/source/occlusion.c @@ -111,6 +111,7 @@ typedef struct OcclusionTree { int dothreadedbuild; int totbuildthread; + int doindirect; OcclusionCache *cache; } OcclusionTree; @@ -652,6 +653,7 @@ static OcclusionTree *occ_tree_build(Render *re) /* parameters */ tree->error= get_render_aosss_error(&re->r, re->wrld.ao_approx_error); tree->distfac= (re->wrld.aomode & WO_AODIST)? re->wrld.aodistfac: 0.0f; + tree->doindirect= (re->wrld.ao_indirect_energy > 0.0f && re->wrld.ao_indirect_bounces > 0); /* allocation */ tree->arena= BLI_memarena_new(0x8000 * sizeof(OccNode)); @@ -664,7 +666,7 @@ static OcclusionTree *occ_tree_build(Render *re) tree->co= MEM_callocN(sizeof(float)*3*totface, "OcclusionCo"); tree->occlusion= MEM_callocN(sizeof(float)*totface, "OcclusionOcclusion"); - if(re->wrld.ao_indirect_energy != 0.0f) + if(tree->doindirect) tree->rad= MEM_callocN(sizeof(float)*3*totface, "OcclusionRad"); /* make array of face pointers */ @@ -693,7 +695,7 @@ static OcclusionTree *occ_tree_build(Render *re) tree->maxdepth= 1; occ_build_recursive(tree, tree->root, 0, totface, 1); - if(re->wrld.ao_indirect_energy != 0.0f) { + if(tree->doindirect) { occ_build_shade(re, tree); occ_sum_occlusion(tree, tree->root); } @@ -1299,14 +1301,53 @@ static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude, float if(bentn) normalize_v3(bentn); } +static void occ_compute_bounces(Render *re, OcclusionTree *tree, int totbounce) +{ + float (*rad)[3], (*sum)[3], (*tmp)[3], co[3], n[3], occ; + int bounce, i; + + rad= MEM_callocN(sizeof(float)*3*tree->totface, "OcclusionBounceRad"); + sum= MEM_dupallocN(tree->rad); + + for(bounce=1; bouncetotface; i++) { + occ_face(&tree->face[i], co, n, NULL); + madd_v3_v3fl(co, n, 1e-8f); + + occ_lookup(tree, 0, &tree->face[i], co, n, &occ, rad[i], NULL); + rad[i][0]= MAX2(rad[i][0], 0.0f); + rad[i][1]= MAX2(rad[i][1], 0.0f); + rad[i][2]= MAX2(rad[i][2], 0.0f); + add_v3_v3(sum[i], rad[i]); + + if(re->test_break(re->tbh)) + break; + } + + if(re->test_break(re->tbh)) + break; + + tmp= tree->rad; + tree->rad= rad; + rad= tmp; + + occ_sum_occlusion(tree, tree->root); + } + + MEM_freeN(rad); + MEM_freeN(tree->rad); + tree->rad= sum; + + if(!re->test_break(re->tbh)) + occ_sum_occlusion(tree, tree->root); +} + static void occ_compute_passes(Render *re, OcclusionTree *tree, int totpass) { - float *occ, (*rad)[3]= NULL, co[3], n[3]; + float *occ, co[3], n[3]; int pass, i; occ= MEM_callocN(sizeof(float)*tree->totface, "OcclusionPassOcc"); - if(tree->rad) - rad= MEM_callocN(sizeof(float)*3*tree->totface, "OcclusionPassRad"); for(pass=0; passtotface; i++) { @@ -1314,7 +1355,7 @@ static void occ_compute_passes(Render *re, OcclusionTree *tree, int totpass) negate_v3(n); VECADDFAC(co, co, n, 1e-8f); - occ_lookup(tree, 0, &tree->face[i], co, n, &occ[i], NULL, (rad)? rad[i]: NULL); + occ_lookup(tree, 0, &tree->face[i], co, n, &occ[i], NULL, NULL); if(re->test_break(re->tbh)) break; } @@ -1326,41 +1367,27 @@ static void occ_compute_passes(Render *re, OcclusionTree *tree, int totpass) tree->occlusion[i] -= occ[i]; //MAX2(1.0f-occ[i], 0.0f); if(tree->occlusion[i] < 0.0f) tree->occlusion[i]= 0.0f; - - if(rad) { - sub_v3_v3(tree->rad[i], rad[i]); - - if(tree->rad[i][0] < 0.0f) - tree->rad[i][0]= 0.0f; - if(tree->rad[i][1] < 0.0f) - tree->rad[i][1]= 0.0f; - if(tree->rad[i][2] < 0.0f) - tree->rad[i][2]= 0.0f; - } } occ_sum_occlusion(tree, tree->root); } MEM_freeN(occ); - if(rad) - MEM_freeN(rad); } static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude, float *co, float *n, int thread, int onlyshadow, float *ao, float *indirect) { float nn[3], bn[3], fac, occ, occlusion, correction, rad[3]; - int aocolor, aorad; + int aocolor; aocolor= re->wrld.aocolor; if(onlyshadow) aocolor= WO_AOPLAIN; - aorad= (re->wrld.ao_indirect_energy != 0.0f); VECCOPY(nn, n); negate_v3(nn); - occ_lookup(tree, thread, exclude, co, nn, &occ, (aorad)? rad: NULL, (aocolor)? bn: NULL); + occ_lookup(tree, thread, exclude, co, nn, &occ, (tree->doindirect)? rad: NULL, (aocolor)? bn: NULL); correction= re->wrld.ao_approx_correction; @@ -1398,7 +1425,7 @@ static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude, f ao[2]= occlusion; } - if(aorad) copy_v3_v3(indirect, rad); + if(tree->doindirect) copy_v3_v3(indirect, rad); else zero_v3(indirect); } @@ -1600,8 +1627,10 @@ void make_occ_tree(Render *re) re->occlusiontree= occ_tree_build(re); if(re->occlusiontree) { - if(re->wrld.ao_approx_passes) + if(re->wrld.ao_approx_passes > 0) occ_compute_passes(re, re->occlusiontree, re->wrld.ao_approx_passes); + if(re->wrld.ao_indirect_bounces > 1) + occ_compute_bounces(re, re->occlusiontree, re->wrld.ao_indirect_bounces); for(mesh=re->strandsurface.first; mesh; mesh=mesh->next) { if(!mesh->face || !mesh->co || !mesh->ao) -- cgit v1.2.3 From d56324b254ce689bf1d983696c2d4e4af1ea6604 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 2 Dec 2009 13:21:22 +0000 Subject: UI: remove unnecessary colon on toggle array buttons. --- source/blender/editors/interface/interface_layout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 175f1ff1e2a..ceb5ac10486 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -896,7 +896,7 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper if(ELEM4(type, PROP_INT, PROP_FLOAT, PROP_STRING, PROP_POINTER)) name= ui_item_name_add_colon(name, namestr); - else if(type == PROP_BOOLEAN && len) + else if(type == PROP_BOOLEAN && len && index == RNA_NO_INDEX) name= ui_item_name_add_colon(name, namestr); else if(type == PROP_ENUM && index != RNA_ENUM_VALUE) name= ui_item_name_add_colon(name, namestr); -- cgit v1.2.3 From a219c93cb0415962ce09930a6475286bc4a18453 Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Wed, 2 Dec 2009 14:39:49 +0000 Subject: Quicktime(Carbon/win32) : add operator to raise the "compression settings" quicktime standard dialog --- source/blender/editors/render/SConscript | 10 +++- source/blender/editors/render/render_ops.c | 8 +++ source/blender/quicktime/CMakeLists.txt | 2 + source/blender/quicktime/SConscript | 2 + source/blender/quicktime/apple/quicktime_export.c | 68 ++++++++++++++++++++++- source/blender/quicktime/quicktime_export.h | 3 +- 6 files changed, 90 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/SConscript b/source/blender/editors/render/SConscript index b1b1165a1fe..575f988544c 100644 --- a/source/blender/editors/render/SConscript +++ b/source/blender/editors/render/SConscript @@ -16,4 +16,12 @@ if env['OURPLATFORM'] == 'linux2': if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): incs += ' ' + env['BF_PTHREADS_INC'] -env.BlenderLib ( 'bf_editors_render', sources, Split(incs), [], libtype=['core'], priority=[45] ) + +if env['WITH_BF_QUICKTIME']: + incs += ' ../../quicktime' + env.Append(CFLAGS=['-DWITH_QUICKTIME']) + +if env['USE_QTKIT']: + env.Append(CFLAGS=['-DUSE_QTKIT']) + +env.BlenderLib ( 'bf_editors_render', sources, Split(incs), [], libtype=['core'], priority=[45]) diff --git a/source/blender/editors/render/render_ops.c b/source/blender/editors/render/render_ops.c index 8c0c1b18fca..3e1643fab7b 100644 --- a/source/blender/editors/render/render_ops.c +++ b/source/blender/editors/render/render_ops.c @@ -34,6 +34,10 @@ #include "render_intern.h" // own include +#if (defined(WITH_QUICKTIME) && !defined(USE_QTKIT)) +#include "quicktime_export.h" +#endif + /***************************** render ***********************************/ void ED_operatortypes_render(void) @@ -52,6 +56,10 @@ void ED_operatortypes_render(void) WM_operatortype_append(SCENE_OT_render_layer_add); WM_operatortype_append(SCENE_OT_render_layer_remove); +#if (defined(WITH_QUICKTIME) && !defined(USE_QTKIT)) + WM_operatortype_append(SCENE_OT_render_data_set_quicktime_codec); +#endif + WM_operatortype_append(TEXTURE_OT_slot_move); } diff --git a/source/blender/quicktime/CMakeLists.txt b/source/blender/quicktime/CMakeLists.txt index 14589ca4c5b..7df589b21df 100644 --- a/source/blender/quicktime/CMakeLists.txt +++ b/source/blender/quicktime/CMakeLists.txt @@ -34,6 +34,7 @@ SET(INC . ../quicktime ../makesdna + ../makesrna ../../../intern/guardedalloc ../blenlib ../blenkernel @@ -43,6 +44,7 @@ SET(INC ../blenloader ../render/extern/include ../include + ../windowmanager ) SET(INC ${INC} ${QUICKTIME_INC}) diff --git a/source/blender/quicktime/SConscript b/source/blender/quicktime/SConscript index 1f9847d7854..549b3cffe5a 100644 --- a/source/blender/quicktime/SConscript +++ b/source/blender/quicktime/SConscript @@ -13,6 +13,8 @@ else: incs = ['.', '../quicktime', '../makesdna', + '../makesrna', + '../windowmanager', '#/intern/guardedalloc', '../blenlib', '../blenkernel', diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index c6c412ae24b..dea170ddeb4 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -32,9 +32,14 @@ #if defined(_WIN32) || defined(__APPLE__) #include "DNA_scene_types.h" +#include "DNA_windowmanager_types.h" + +#include "WM_api.h" +#include "WM_types.h" #include "BKE_global.h" #include "BKE_scene.h" +#include "BKE_context.h" #include "BLI_blenlib.h" @@ -730,10 +735,50 @@ int get_qtcodec_settings(RenderData *rd) return err; } -int request_qtcodec_settings(RenderData *rd) +static int request_qtcodec_settings(bContext *C, wmOperator *op) { OSErr err = noErr; + Scene *scene = CTX_data_scene(C); + RenderData *rd = &scene->r; + // erase any existing codecsetting + if(qtdata) { + if(qtdata->theComponent) CloseComponent(qtdata->theComponent); + free_qtcomponentdata(); + } + + // allocate new + qtdata = MEM_callocN(sizeof(QuicktimeComponentData), "QuicktimeComponentData"); + qtdata->theComponent = OpenDefaultComponent(StandardCompressionType, StandardCompressionSubType); + + // get previous selected codecsetting, from qtatom or detailed settings + if(rd->qtcodecdata && rd->qtcodecdata->cdParms) { + QT_GetCodecSettingsFromScene(rd); + } else { + SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); + SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); + SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); + + qtdata->gSpatialSettings.codecType = rd->qtcodecsettings.codecType; + qtdata->gSpatialSettings.codec = (CodecComponent)rd->qtcodecsettings.codec; + qtdata->gSpatialSettings.spatialQuality = (rd->qtcodecsettings.codecSpatialQuality * codecLosslessQuality) /100; + qtdata->gTemporalSettings.temporalQuality = (rd->qtcodecsettings.codecTemporalQuality * codecLosslessQuality) /100; + qtdata->gTemporalSettings.keyFrameRate = rd->qtcodecsettings.keyFrameRate; + qtdata->gTemporalSettings.frameRate = ((float)(rd->frs_sec << 16) / rd->frs_sec_base); + qtdata->aDataRateSetting.dataRate = rd->qtcodecsettings.bitRate; + qtdata->gSpatialSettings.depth = rd->qtcodecsettings.colorDepth; + qtdata->aDataRateSetting.minSpatialQuality = (rd->qtcodecsettings.minSpatialQuality * codecLosslessQuality) / 100; + qtdata->aDataRateSetting.minTemporalQuality = (rd->qtcodecsettings.minTemporalQuality * codecLosslessQuality) / 100; + + qtdata->aDataRateSetting.frameDuration = rd->frs_sec; + + err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); + CheckError(err, "SCSetInfo1 error"); + err = SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); + CheckError(err, "SCSetInfo2 error"); + err = SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); + CheckError(err, "SCSetInfo3 error"); + } // put up the dialog box - it needs to be called from the main thread err = SCRequestSequenceSettings(qtdata->theComponent); @@ -802,6 +847,27 @@ int request_qtcodec_settings(RenderData *rd) return 1; } +static int ED_operator_setqtcodec(bContext *C) +{ + return G.have_quicktime != FALSE; +} + + +void SCENE_OT_render_data_set_quicktime_codec(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Change codec"; + ot->description= "Change Quicktime codec Settings"; + ot->idname= "SCENE_OT_render_data_set_quicktime_codec"; + + /* api callbacks */ + ot->exec= request_qtcodec_settings; + ot->poll= ED_operator_setqtcodec; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + #endif /* _WIN32 || __APPLE__ */ #endif /* WITH_QUICKTIME */ diff --git a/source/blender/quicktime/quicktime_export.h b/source/blender/quicktime/quicktime_export.h index 61153ff91d2..69f679693f6 100644 --- a/source/blender/quicktime/quicktime_export.h +++ b/source/blender/quicktime/quicktime_export.h @@ -44,6 +44,7 @@ typedef struct QuicktimeCodecTypeDesc { // quicktime movie output functions struct RenderData; struct Scene; +struct wmOperatorType; void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty); //for movie handle (BKE writeavi.c now) void append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty); @@ -57,7 +58,7 @@ int quicktime_rnatmpvalue_from_codectype(int codecType); int quicktime_codecType_from_rnatmpvalue(int rnatmpvalue); #ifndef USE_QTKIT -int request_qtcodec_settings(struct RenderData *rd); //Raise quicktime standard dialog to request codec settings +void SCENE_OT_render_data_set_quicktime_codec(struct wmOperatorType *ot); //Operator to raise quicktime standard dialog to request codec settings #endif -- cgit v1.2.3 From ce36cdac0490593efb6740ea00884f610846d01a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 2 Dec 2009 15:37:07 +0000 Subject: - bpy.data.add_armature() - rigify testnig function, creates all example metarigs, processes and generates graphs for before and after. --- source/blender/makesrna/intern/rna_main_api.c | 39 ++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 379cf75d450..70dab957fb9 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -33,21 +33,22 @@ #include "RNA_types.h" #include "RNA_enum_types.h" -#include "DNA_object_types.h" -#include "DNA_material_types.h" -#include "DNA_mesh_types.h" - #ifdef RNA_RUNTIME #include "BKE_main.h" #include "BKE_mesh.h" +#include "BKE_armature.h" #include "BKE_library.h" #include "BKE_object.h" #include "BKE_material.h" #include "BKE_image.h" #include "BKE_texture.h" +#include "DNA_armature_types.h" #include "DNA_lamp_types.h" +#include "DNA_material_types.h" +#include "DNA_mesh_types.h" +#include "DNA_object_types.h" static Mesh *rna_Main_add_mesh(Main *main, char *name) { @@ -66,6 +67,23 @@ static void rna_Main_remove_mesh(Main *main, ReportList *reports, Mesh *me) /* XXX python now has invalid pointer? */ } +static void rna_Main_remove_armature(Main *main, ReportList *reports, bArmature *arm) +{ + if(arm->id.us == 0) + free_libblock(&main->armature, arm); + else + BKE_report(reports, RPT_ERROR, "Armature must have zero users to be removed."); + + /* XXX python now has invalid pointer? */ +} + +static bArmature *rna_Main_add_armature(Main *main, char *name) +{ + bArmature *arm= add_armature(name); + arm->id.us--; + return arm; +} + static Lamp *rna_Main_add_lamp(Main *main, char *name) { Lamp *la= add_lamp(name); @@ -164,6 +182,19 @@ void RNA_api_main(StructRNA *srna) parm= RNA_def_pointer(func, "mesh", "Mesh", "", "Mesh to remove."); RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "add_armature", "rna_Main_add_armature"); + RNA_def_function_ui_description(func, "Add a new armature."); + parm= RNA_def_string(func, "name", "Armature", 0, "", "New name for the datablock."); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "armature", "Armature", "", "New armature."); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "remove_armature", "rna_Main_remove_armature"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + RNA_def_function_ui_description(func, "Remove an armature if it has zero users."); + parm= RNA_def_pointer(func, "armature", "Armature", "", "Armature to remove."); + RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "add_lamp", "rna_Main_add_lamp"); RNA_def_function_ui_description(func, "Add a new lamp."); parm= RNA_def_string(func, "name", "Lamp", 0, "", "New name for the datablock."); -- cgit v1.2.3 From 2a6d535d23e80b649ba1f3bc048f1e368d7a63c7 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Wed, 2 Dec 2009 18:35:44 +0000 Subject: Fixed a part of [#20197] dof node bugs. * False greying out. --- source/blender/editors/space_node/drawnode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 924b4b2563e..354d7a4edd3 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -628,7 +628,7 @@ static void node_composit_buts_defocus(uiLayout *layout, bContext *C, PointerRNA uiItemR(layout, NULL, 0, ptr, "gamma_correction", 0); col = uiLayoutColumn(layout, 0); - uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_zbuffer")==0); + uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_zbuffer")==1); uiItemR(col, NULL, 0, ptr, "f_stop", 0); uiItemR(layout, NULL, 0, ptr, "max_blur", 0); @@ -643,7 +643,7 @@ static void node_composit_buts_defocus(uiLayout *layout, bContext *C, PointerRNA col = uiLayoutColumn(layout, 0); uiItemR(col, NULL, 0, ptr, "use_zbuffer", 0); sub = uiLayoutColumn(col, 0); - uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_zbuffer")); + uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_zbuffer")==0); uiItemR(sub, NULL, 0, ptr, "z_scale", 0); } -- cgit v1.2.3 From bce687ef36de6898a59fa547af0b3c851e35a9d3 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 2 Dec 2009 19:32:21 +0000 Subject: Menu handlers need to return OUT when clicking outside, not OK Caused crashes with window type selector and a slew of other unwanted behaviors. --- source/blender/editors/interface/interface_handlers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index a51824f10e9..e81c1a2f0a5 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4713,7 +4713,7 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, if(ELEM3(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) && event->val==KM_PRESS) if(saferct && !BLI_in_rctf(&saferct->parent, event->x, event->y)) - menu->menuretval= UI_RETURN_OK; + menu->menuretval= UI_RETURN_OUT; } if(menu->menuretval); -- cgit v1.2.3 From 63fc267929e64cd8ab09d35cae12a172d3e218f3 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 2 Dec 2009 19:59:57 +0000 Subject: [#20213] Align to Transform Orientation crashes Blender Align needs to be call with region context. Also added checks to prevent this from crashing if not called properly. --- source/blender/editors/transform/transform.c | 2 +- source/blender/editors/transform/transform_generics.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index cbcb3953f49..ffc6ea86835 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -126,7 +126,7 @@ void setTransformViewMatrices(TransInfo *t) { - if(t->spacetype==SPACE_VIEW3D && t->ar->regiontype == RGN_TYPE_WINDOW) { + if(t->spacetype==SPACE_VIEW3D && t->ar && t->ar->regiontype == RGN_TYPE_WINDOW) { RegionView3D *rv3d = t->ar->regiondata; copy_m4_m4(t->viewmat, rv3d->viewmat); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 71a5affb573..c9b5b17091e 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1357,7 +1357,7 @@ void calculateCenter(TransInfo *t) /* for panning from cameraview */ if(t->flag & T_OBJECT) { - if(t->spacetype==SPACE_VIEW3D && t->ar->regiontype == RGN_TYPE_WINDOW) + if(t->spacetype==SPACE_VIEW3D && t->ar && t->ar->regiontype == RGN_TYPE_WINDOW) { View3D *v3d = t->view; Scene *scene = t->scene; -- cgit v1.2.3 From 47b457f19e881c4402d10058b833afc5aaf17957 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Wed, 2 Dec 2009 20:53:28 +0000 Subject: Bug fix: Verlet integration didn't work properly with moving particle emitters. Thanks for mcreamsurfer for reporting and Farsthary for the patch! --- source/blender/blenkernel/intern/particle_system.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 809b5f2090c..dbe6fbd6dde 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -2267,12 +2267,13 @@ static void apply_particle_forces(ParticleSimulationData *sim, int p, float dfra EffectedPoint epoint; ParticleKey states[5], tkey; float timestep = psys_get_timestep(sim); - float force[3],impulse[3],dx[4][3],dv[4][3]; + float force[3],impulse[3],dx[4][3],dv[4][3],oldpos[3]; float dtime=dfra*timestep, time, pa_mass=part->mass, fac, fra=sim->psys->cfra; int i, steps=1; /* maintain angular velocity */ VECCOPY(pa->state.ave,pa->prev_state.ave); + VECCOPY(oldpos,pa->state.co); if(part->flag & PART_SIZEMASS) pa_mass*=pa->size; @@ -2399,7 +2400,7 @@ static void apply_particle_forces(ParticleSimulationData *sim, int p, float dfra VECADDFAC(pa->state.vel,pa->state.vel,force,dtime); VECADDFAC(pa->state.co,pa->state.co,pa->state.vel,dtime); - VECSUB(pa->state.vel,pa->state.co,pa->prev_state.co); + VECSUB(pa->state.vel,pa->state.co,oldpos); mul_v3_fl(pa->state.vel,1.0f/dtime); break; } -- cgit v1.2.3 From ae916753128c21763596d19ac8589d32c06f7fdb Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Wed, 2 Dec 2009 23:14:58 +0000 Subject: Fix for [#20154] Shaded draw mode needs to be removed when loading files --- source/blender/blenloader/intern/readfile.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6103c582da0..2ad3b17a896 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10109,6 +10109,23 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } + { + bScreen *screen; + ScrArea *sa; + SpaceLink *sl; + + for(screen= main->screen.first; screen; screen= screen->id.next) { + for(sa= screen->areabase.first; sa; sa= sa->next) { + for(sl= sa->spacedata.first; sl; sl= sl->next) { + if(sl->spacetype==SPACE_VIEW3D) { + View3D *v3d = (View3D *)sl; + if (v3d->drawtype == OB_SHADED) v3d->drawtype = OB_SOLID; + } + } + } + } + } + /* only convert old 2.50 files with color management */ if (main->versionfile == 250) { Scene *sce=main->scene.first; -- cgit v1.2.3 From 5e5d05b8dd569cd58259ddc7cc33eb062833503c Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 3 Dec 2009 00:17:34 +0000 Subject: Fix for [#20180] Wrong multiplicator in Random Selection Also: Added extend select option to select random (off by default) Tweaked 'Select Axis' to use an enum for axes --- source/blender/editors/mesh/editmesh_mods.c | 14 +++++++------- source/blender/editors/mesh/editmesh_tools.c | 10 ++++++++-- 2 files changed, 15 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index c79ef342150..e7986d227cf 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -3582,14 +3582,11 @@ void MESH_OT_select_less(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -static void selectrandom_mesh(EditMesh *em, float perc) /* randomly selects a user-set % of vertices/edges/faces */ +static void selectrandom_mesh(EditMesh *em, float randfac) /* randomly selects a user-set % of vertices/edges/faces */ { EditVert *eve; EditEdge *eed; EditFace *efa; - float randfac= perc; - /* Get the percentage of vertices to randomly select as 'randfac' */ -// XXX if(button(&randfac,0, 100,"Percentage:")==0) return; BLI_srand( BLI_rand() ); /* random seed */ @@ -3629,7 +3626,10 @@ static int mesh_select_random_exec(bContext *C, wmOperator *op) Object *obedit= CTX_data_edit_object(C); EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); - selectrandom_mesh(em, RNA_float_get(op->ptr,"percent")); + if(!RNA_boolean_get(op->ptr, "extend")) + EM_deselect_all(em); + + selectrandom_mesh(em, RNA_float_get(op->ptr, "percentage")/100.0f); WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); @@ -3646,14 +3646,14 @@ void MESH_OT_select_random(wmOperatorType *ot) /* api callbacks */ ot->exec= mesh_select_random_exec; - ot->invoke= WM_operator_props_popup; ot->poll= ED_operator_editmesh; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* props */ - RNA_def_float_percentage(ot->srna, "percent", 50.0f, 0.0f, 100.0f, "Percent", "Percentage of vertices to select randomly.", 0.0001f, 1.0f); + RNA_def_float_percentage(ot->srna, "percentage", 50.f, 0.0f, 100.0f, "Percentage", "Percentage of elements to select randomly.", 0.f, 100.0f); + RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); } void EM_select_by_material(EditMesh *em, int index) diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index e439968d380..089a35f8402 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -7192,7 +7192,7 @@ static int select_axis_exec(bContext *C, wmOperator *op) Object *obedit= CTX_data_edit_object(C); EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); - int axis= RNA_int_get(op->ptr, "axis"); + int axis= RNA_enum_get(op->ptr, "axis"); int mode= RNA_enum_get(op->ptr, "mode"); /* -1==aligned, 0==neg, 1==pos*/ EditSelection *ese = em->selected.last; @@ -7243,6 +7243,12 @@ void MESH_OT_select_axis(wmOperatorType *ot) {1, "NEGATIVE", 0, "Negative Axis", ""}, {-1, "ALIGNED", 0, "Aligned Axis", ""}, {0, NULL, 0, NULL, NULL}}; + + static EnumPropertyItem axis_items[] = { + {0, "X_AXIS", 0, "X Axis", ""}, + {1, "Y_AXIS", 0, "Y Axis", ""}, + {2, "Z_AXIS", 0, "Z Axis", ""}, + {0, NULL, 0, NULL, NULL}}; /* identifiers */ ot->name= "Select Axis"; @@ -7258,6 +7264,6 @@ void MESH_OT_select_axis(wmOperatorType *ot) /* properties */ RNA_def_enum(ot->srna, "mode", axis_mode_items, 0, "Axis Mode", "Axis side to use when selecting"); - RNA_def_int(ot->srna, "axis", 0, 0, 2, "Axis", "Select the axis to compare each vertex on", 0, 2); + RNA_def_enum(ot->srna, "axis", axis_items, 0, "Axis", "Select the axis to compare each vertex on"); } -- cgit v1.2.3 From 22290fbbbb0d111b6c01017cb5482d1336ca1616 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 3 Dec 2009 00:42:02 +0000 Subject: Fix for [#20168] Particle velocity display toggle issue Thanks Alan Taylor for the initial patch --- source/blender/editors/space_view3d/drawobject.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 2c4f010ce3e..8592a5455c2 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -3795,6 +3795,10 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv pdd->vedata = MEM_callocN(2 * (totpart + totchild) * 3 * sizeof(float), "particle_vedata"); need_v = 1; + } else if (pdd->vedata) { + /* velocity data not needed, so free it */ + MEM_freeN(pdd->vedata); + pdd->vedata= NULL; } pdd->vd= pdd->vdata; @@ -3954,7 +3958,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv if(drawn) { /* additional things to draw for each particle */ /* (velocity, size and number) */ - if(pdd->vedata){ + if((part->draw & PART_DRAW_VEL) && pdd->vedata){ VECCOPY(pdd->ved,state.co); pdd->ved+=3; VECCOPY(vel,state.vel); @@ -4193,14 +4197,8 @@ static void draw_ptcache_edit(Scene *scene, View3D *v3d, RegionView3D *rv3d, Obj glDisable(GL_DEPTH_TEST); /* get selection theme colors */ - UI_GetThemeColor3ubv(TH_VERTEX_SELECT, sel); - UI_GetThemeColor3ubv(TH_VERTEX, nosel); - sel_col[0]=(float)sel[0]/255.0f; - sel_col[1]=(float)sel[1]/255.0f; - sel_col[2]=(float)sel[2]/255.0f; - nosel_col[0]=(float)nosel[0]/255.0f; - nosel_col[1]=(float)nosel[1]/255.0f; - nosel_col[2]=(float)nosel[2]/255.0f; + UI_GetThemeColor3fv(TH_VERTEX_SELECT, sel_col); + UI_GetThemeColor3fv(TH_VERTEX, nosel_col); /* draw paths */ if(timed) { -- cgit v1.2.3 From bd8e92904472b2cfaf49a71518be0502d517e682 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 3 Dec 2009 09:49:21 +0000 Subject: Fix for [#20226] 3DView header: hiding menu texts and layer button's issue. Also: big purge of old 3d view header menus and old unused code --- source/blender/editors/include/ED_view3d.h | 1 + .../blender/editors/space_view3d/view3d_header.c | 1498 +------------------- source/blender/editors/space_view3d/view3d_view.c | 68 + source/blender/makesrna/intern/rna_scene.c | 24 +- source/blender/makesrna/intern/rna_space.c | 17 +- 5 files changed, 96 insertions(+), 1512 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index 38a1d5ef9eb..0e7f55bef8d 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -144,6 +144,7 @@ struct RegionView3D *ED_view3d_context_rv3d(struct bContext *C); void ED_view3d_init_mats_rv3d(struct Object *ob, struct RegionView3D *rv3d); void ED_view3d_scene_layers_update(struct Main *bmain, struct Scene *scene); +int ED_view3d_scene_layer_set(int lay, const int *values); int ED_view3d_context_activate(struct bContext *C); void ED_view3d_draw_offscreen(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index dd5df957a95..9b6cfc6cbd0 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -110,7 +110,6 @@ if( (v3d->lay & obedit->lay)==0 ) return; /* XXX port over */ -static void countall(void) {} extern void borderselect(); /* view3d handler codes */ @@ -132,89 +131,17 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event); #define B_HOME 103 #define B_VIEWBUT 104 #define B_PERSP 105 -#define B_VIEWRENDER 106 #define B_MODESELECT 108 -#define B_AROUND 109 #define B_SEL_VERT 110 #define B_SEL_EDGE 111 #define B_SEL_FACE 112 -#define B_SEL_PATH 113 -#define B_SEL_POINT 114 -#define B_SEL_END 115 #define B_MAN_TRANS 116 #define B_MAN_ROT 117 #define B_MAN_SCALE 118 #define B_NDOF 119 #define B_MAN_MODE 120 -#define B_VIEW_BUTSEDIT 121 #define B_REDR 122 #define B_NOP 123 -#define B_ACTCOPY 124 -#define B_ACTPASTE 125 -#define B_ACTPASTEFLIP 126 - -#define B_LAY 201 - - -static RegionView3D *wm_region_view3d(const bContext *C) -{ - ScrArea *sa= CTX_wm_area(C); - ARegion *ar; - /* XXX handle foursplit? */ - for(ar= sa->regionbase.first; ar; ar= ar->next) - if(ar->regiontype==RGN_TYPE_WINDOW) - return ar->regiondata; - return NULL; -} - -static void copy_view3d_lock_space(View3D *v3d, Scene *scene) -{ - int bit; - - if(v3d->scenelock && v3d->localvd==NULL) { - v3d->lay= scene->lay; - v3d->camera= scene->camera; - - if(v3d->camera==NULL) { - ARegion *ar; - - for(ar=v3d->regionbase.first; ar; ar= ar->next) { - if(ar->regiontype == RGN_TYPE_WINDOW) { - RegionView3D *rv3d= ar->regiondata; - if(rv3d->persp==RV3D_CAMOB) - rv3d->persp= RV3D_PERSP; - } - } - } - - if((v3d->lay & v3d->layact) == 0) { - for(bit= 0; bit<32; bit++) { - if(v3d->lay & (1<layact= 1<screen.first; sc; sc=sc->id.next) { - if(sc->scene!=scene) - continue; - - for(sa=sc->areabase.first; sa; sa=sa->next) - for(sl=sa->spacedata.first; sl; sl=sl->next) - if(sl->spacetype==SPACE_VIEW3D) - copy_view3d_lock_space((View3D*)sl, scene); - } -} // XXX quickly ported across static void handle_view3d_lock(bContext *C) @@ -330,1269 +257,6 @@ void VIEW3D_OT_layers(wmOperatorType *ot) RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Add this layer to the current view layers"); } -#if 0 -void do_view3d_select_object_typemenu(bContext *C, void *arg, int event) -{ - - extern void selectall_type(short obtype); - - switch(event) { - case 1: /* Mesh */ - selectall_type(OB_MESH); - break; - case 2: /* Curve */ - selectall_type(OB_CURVE); - break; - case 3: /* Surface */ - selectall_type(OB_SURF); - break; - case 4: /* Meta */ - selectall_type(OB_MBALL); - break; - case 5: /* Armature */ - selectall_type(OB_ARMATURE); - break; - case 6: /* Lattice */ - selectall_type(OB_LATTICE); - break; - case 7: /* Text */ - selectall_type(OB_FONT); - break; - case 8: /* Empty */ - selectall_type(OB_EMPTY); - break; - case 9: /* Camera */ - selectall_type(OB_CAMERA); - break; - case 10: /* Lamp */ - selectall_type(OB_LAMP); - break; - case 20: - do_layer_buttons(C, -2); - break; - } -} - -static uiBlock *view3d_select_object_typemenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_select_object_typemenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_select_object_typemenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mesh", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Curve", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Surface", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Meta", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Armature", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lattice", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Text", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Empty", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Camera", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lamp", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, ""); - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - - -void do_view3d_select_object_layermenu(bContext *C, void *arg, int event) -{ -// XXX extern void selectall_layer(unsigned int layernum); - - switch(event) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: -// XXX selectall_layer(event); - break; - } -} - -static uiBlock *view3d_select_object_layermenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short xco= 0, yco = 20, menuwidth = 22; - - block= uiBeginBlock(C, ar, "view3d_select_object_layermenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_select_object_layermenu, NULL); - - uiDefBut(block, BUTM, 1, "1", xco, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefBut(block, BUTM, 1, "2", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefBut(block, BUTM, 1, "3", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefBut(block, BUTM, 1, "4", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - uiDefBut(block, BUTM, 1, "5", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - xco += 6; - uiDefBut(block, BUTM, 1, "6", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - uiDefBut(block, BUTM, 1, "7", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); - uiDefBut(block, BUTM, 1, "8", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, ""); - uiDefBut(block, BUTM, 1, "9", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, ""); - uiDefBut(block, BUTM, 1, "10", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, ""); - xco = 0; - uiDefBut(block, BUTM, 1, "11", xco, yco-=24, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, ""); - uiDefBut(block, BUTM, 1, "12", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, ""); - uiDefBut(block, BUTM, 1, "13", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, ""); - uiDefBut(block, BUTM, 1, "14", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, ""); - uiDefBut(block, BUTM, 1, "15", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, ""); - xco += 6; - uiDefBut(block, BUTM, 1, "16", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, ""); - uiDefBut(block, BUTM, 1, "17", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 17, ""); - uiDefBut(block, BUTM, 1, "18", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, ""); - uiDefBut(block, BUTM, 1, "19", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 19, ""); - uiDefBut(block, BUTM, 1, "20", xco+=(menuwidth+1), yco, menuwidth, 19, NULL, 0.0, 0.0, 1, 20, ""); - - uiBlockSetDirection(block, UI_RIGHT); - /*uiTextBoundsBlock(block, 100);*/ - return block; -} - -void do_view3d_select_object_linkedmenu(bContext *C, void *arg, int event) -{ - switch(event) { - case 1: /* Object Ipo */ - case 2: /* ObData */ - case 3: /* Current Material */ - case 4: /* Current Texture */ - selectlinks(event); - break; - } - countall(); -} - -static uiBlock *view3d_select_object_linkedmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_select_object_linkedmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_select_object_linkedmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Ipo|Shift L, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "ObData|Shift L, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Material|Shift L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Texture|Shift L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -void do_view3d_select_object_groupedmenu(bContext *C, void *arg, int event) -{ - - switch(event) { - case 1: /* Children */ - case 2: /* Immediate Children */ - case 3: /* Parent */ - case 4: /* Siblings */ - case 5: /* Type */ - case 6: /* Objects on Shared Layers */ - case 7: /* Objects in Same Group */ - case 8: /* Object Hooks*/ - case 9: /* Object PassIndex*/ - case 10: /* Object Color*/ - case 11: /* Game Properties*/ - select_object_grouped((short)event); - break; - } -} - -static uiBlock *view3d_select_object_groupedmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_select_object_groupedmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_select_object_groupedmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Children|Shift G, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Immediate Children|Shift G, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Parent|Shift G, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Siblings (Shared Parent)|Shift G, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Objects of Same Type|Shift G, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Objects on Shared Layers|Shift G, 6", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Objects in Same Group|Shift G, 7", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Hooks|Shift G, 8", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object PassIndex|Shift G, 9", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Color|Shift G, 0", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Game Properties|Shift G, Alt+1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, ""); - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -#endif - -// TODO - port to python -#if 0 -void do_view3d_select_faceselmenu(bContext *C, void *arg, int event) -{ - /* events >= 6 are registered bpython scripts */ -#ifndef DISABLE_PYTHON - if (event >= 6) BPY_menu_do_python(PYMENU_FACESELECT, event - 6); -#endif - - switch(event) { - case 0: /* border select */ - borderselect(); - break; - case 2: /* Select/Deselect all */ - deselectall_tface(); - break; - case 3: /* Select Inverse */ - selectswap_tface(); - break; - case 4: /* Select Linked */ - select_linked_tfaces(2); - break; - } -} - -static uiBlock *view3d_select_faceselmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco= 0, menuwidth=120; -#ifndef DISABLE_PYTHON -// XXX BPyMenu *pym; -// int i = 0; -#endif - - block= uiBeginBlock(C, ar, "view3d_select_faceselmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_select_faceselmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Inverse", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Linked Faces|Ctrl L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - -#ifndef DISABLE_PYTHON -// uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - /* note that we account for the 6 previous entries with i+6: */ -// for (pym = BPyMenuTable[PYMENU_FACESELECT]; pym; pym = pym->next, i++) { -// uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, -// menuwidth, 19, NULL, 0.0, 0.0, 1, i+6, -// pym->tooltip?pym->tooltip:pym->filename); -// } -#endif - - if(ar->alignment==RGN_ALIGN_TOP) { - uiBlockSetDirection(block, UI_DOWN); - } - else { - uiBlockSetDirection(block, UI_TOP); - uiBlockFlipOrder(block); - } - - uiTextBoundsBlock(block, 50); - return block; -} -#endif - -#if 0 -void do_view3d_transform_moveaxismenu(bContext *C, void *arg, int event) -{ -#if 0 - float mat[3][3]; - - unit_m3(mat); - - switch(event) - { - case 0: /* X Global */ - initTransform(TFM_TRANSLATION, CTX_NONE); - BIF_setSingleAxisConstraint(mat[0], " X"); - Transform(); - break; - case 1: /* Y Global */ - initTransform(TFM_TRANSLATION, CTX_NONE); - BIF_setSingleAxisConstraint(mat[1], " Y"); - Transform(); - break; - case 2: /* Z Global */ - initTransform(TFM_TRANSLATION, CTX_NONE); - BIF_setSingleAxisConstraint(mat[2], " Z"); - Transform(); - break; - case 3: /* X Local */ - initTransform(TFM_TRANSLATION, CTX_NONE); - BIF_setLocalAxisConstraint('X', " X"); - Transform(); - break; - case 4: /* Y Local */ - initTransform(TFM_TRANSLATION, CTX_NONE); - BIF_setLocalAxisConstraint('Y', " Y"); - Transform(); - break; - case 5: /* Z Local */ - initTransform(TFM_TRANSLATION, CTX_NONE); - BIF_setLocalAxisConstraint('Z', " Z"); - Transform(); - break; - } -#endif -} - -static uiBlock *view3d_transform_moveaxismenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_transform_moveaxismenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_transform_moveaxismenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "X Global|G, X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Y Global|G, Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Z Global|G, Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "X Local|G, X, X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Y Local|G, Y, Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Z Local|G, Z, Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -void do_view3d_transform_rotateaxismenu(bContext *C, void *arg, int event) -{ -#if 0 - float mat[3][3]; - - unit_m3(mat); - - switch(event) - { - case 0: /* X Global */ - initTransform(TFM_ROTATION, CTX_NONE); - BIF_setSingleAxisConstraint(mat[0], " X"); - Transform(); - break; - case 1: /* Y Global */ - initTransform(TFM_ROTATION, CTX_NONE); - BIF_setSingleAxisConstraint(mat[1], " Y"); - Transform(); - break; - case 2: /* Z Global */ - initTransform(TFM_ROTATION, CTX_NONE); - BIF_setSingleAxisConstraint(mat[2], " Z"); - Transform(); - break; - case 3: /* X Local */ - initTransform(TFM_ROTATION, CTX_NONE); - BIF_setLocalAxisConstraint('X', " X"); - Transform(); - break; - case 4: /* Y Local */ - initTransform(TFM_ROTATION, CTX_NONE); - BIF_setLocalAxisConstraint('Y', " Y"); - Transform(); - break; - case 5: /* Z Local */ - initTransform(TFM_ROTATION, CTX_NONE); - BIF_setLocalAxisConstraint('Z', " Z"); - Transform(); - break; - } -#endif -} - -static uiBlock *view3d_transform_rotateaxismenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_transform_rotateaxismenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_transform_rotateaxismenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "X Global|R, X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Y Global|R, Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Z Global|R, Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "X Local|R, X, X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Y Local|R, Y, Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Z Local|R, Z, Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -void do_view3d_transform_scaleaxismenu(bContext *C, void *arg, int event) -{ -#if 0 - float mat[3][3]; - - unit_m3(mat); - - switch(event) - { - case 0: /* X Global */ - initTransform(TFM_RESIZE, CTX_NONE); - BIF_setSingleAxisConstraint(mat[0], " X"); - Transform(); - break; - case 1: /* Y Global */ - initTransform(TFM_RESIZE, CTX_NONE); - BIF_setSingleAxisConstraint(mat[1], " Y"); - Transform(); - break; - case 2: /* Z Global */ - initTransform(TFM_RESIZE, CTX_NONE); - BIF_setSingleAxisConstraint(mat[2], " Z"); - Transform(); - break; - case 3: /* X Local */ - initTransform(TFM_RESIZE, CTX_NONE); - BIF_setLocalAxisConstraint('X', " X"); - Transform(); - break; - case 4: /* Y Local */ - initTransform(TFM_RESIZE, CTX_NONE); - BIF_setLocalAxisConstraint('X', " X"); - Transform(); - break; - case 5: /* Z Local */ - initTransform(TFM_RESIZE, CTX_NONE); - BIF_setLocalAxisConstraint('X', " X"); - Transform(); - break; - } -#endif -} - -static uiBlock *view3d_transform_scaleaxismenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_transform_scaleaxismenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_transform_scaleaxismenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "X Global|S, X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Y Global|S, Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Z Global|S, Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "X Local|S, X, X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Y Local|S, Y, Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Z Local|S, Z, Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} -#endif - -#if 0 -static void do_view3d_transformmenu(bContext *C, void *arg, int event) -{ -#if 0 - Scene *scene= CTX_data_scene(C); - ToolSettings *ts= CTX_data_tool_settings(C); - - switch(event) { - case 1: - initTransform(TFM_TRANSLATION, CTX_NONE); - Transform(); - break; - case 2: - initTransform(TFM_ROTATION, CTX_NONE); - Transform(); - break; - case 3: - initTransform(TFM_RESIZE, CTX_NONE); - Transform(); - break; - case 4: - image_aspect(); - break; - case 5: - initTransform(TFM_TOSPHERE, CTX_NONE); - Transform(); - break; - case 6: - initTransform(TFM_SHEAR, CTX_NONE); - Transform(); - break; - case 7: - initTransform(TFM_WARP, CTX_NONE); - Transform(); - break; - case 8: - initTransform(TFM_PUSHPULL, CTX_NONE); - Transform(); - break; - case 9: - if (obedit) { - if (obedit->type == OB_MESH) - initTransform(TFM_SHRINKFATTEN, CTX_NONE); - Transform(); - } else error("Only meshes can be shrinked/fattened"); - break; - case 10: - docenter(0); - break; - case 11: - docenter_new(); - break; - case 12: - docenter_cursor(); - break; - case 13: - initTransform(TFM_TILT, CTX_NONE); - Transform(); - break; - case 14: - initTransform(TFM_CURVE_SHRINKFATTEN, CTX_NONE); - Transform(); - break; - case 15: - ts->snap_flag &= ~SCE_SNAP; - break; - case 16: - ts->snap_flag |= SCE_SNAP; - break; - case 17: - ts->snap_target = SCE_SNAP_TARGET_CLOSEST; - break; - case 18: - ts->snap_target = SCE_SNAP_TARGET_CENTER; - break; - case 19: - ts->snap_target = SCE_SNAP_TARGET_MEDIAN; - break; - case 20: - ts->snap_target = SCE_SNAP_TARGET_ACTIVE; - break; - case 21: - alignmenu(); - break; - } -#endif -} - -static uiBlock *view3d_transformmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - ToolSettings *ts= CTX_data_tool_settings(C); - Object *obedit = CTX_data_edit_object(C); - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_transformmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_transformmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Move|G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBlockBut(block, view3d_transform_moveaxismenu, NULL, ICON_RIGHTARROW_THIN, "Grab/Move on Axis", 0, yco-=20, 120, 19, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rotate|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBlockBut(block, view3d_transform_rotateaxismenu, NULL, ICON_RIGHTARROW_THIN, "Rotate on Axis", 0, yco-=20, 120, 19, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Scale|S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBlockBut(block, view3d_transform_scaleaxismenu, NULL, ICON_RIGHTARROW_THIN, "Scale on Axis", 0, yco-=20, 120, 19, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - if (obedit) { - if (obedit->type == OB_MESH) - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shrink/Fatten Along Normals|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, ""); - else if (obedit->type == OB_CURVE) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Tilt|T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shrink/Fatten Radius|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, ""); - } - } - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "To Sphere|Ctrl Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - if (obedit) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - else uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl Shift Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Shift W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Push/Pull|Shift P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, ""); - - if (!obedit) { - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Scale to Image Aspect Ratio|Alt V", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - } - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "ObData to Center", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, ""); - if (!obedit) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Center New", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Center Cursor", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Align to Transform Orientation|Ctrl Alt A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 21, ""); - } - - if (BIF_snappingSupported(obedit)) - { - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - if (ts->snap_flag & SCE_SNAP) - { - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Grid", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Snap", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, ""); - } - else - { - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Grid", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, ""); - } - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - switch(ts->snap_target) - { - case SCE_SNAP_TARGET_CLOSEST: - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Snap Closest", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 17, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Center", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Median", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 19, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Active", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 20, ""); - break; - case SCE_SNAP_TARGET_CENTER: - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Closest", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 17, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Snap Center", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Median", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 19, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Active", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 20, ""); - break; - case SCE_SNAP_TARGET_MEDIAN: - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Closest", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 17, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Center", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Snap Median", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 19, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Active", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 20, ""); - break; - case SCE_SNAP_TARGET_ACTIVE: - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Closest", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 17, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Center", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap Median", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 19, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Snap Active", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 20, ""); - break; - } - } - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -#if 0 -void do_view3d_object_mirrormenu(bContext *C, void *arg, int event) -{ -#if 0 - switch(event) { - case 0: - initTransform(TFM_MIRROR, CTX_NO_PET); - Transform(); - break; - case 1: - initTransform(TFM_MIRROR, CTX_NO_PET|CTX_AUTOCONFIRM); - BIF_setLocalAxisConstraint('X', " on X axis"); - Transform(); - break; - case 2: - initTransform(TFM_MIRROR, CTX_NO_PET|CTX_AUTOCONFIRM); - BIF_setLocalAxisConstraint('Y', " on Y axis"); - Transform(); - break; - case 3: - initTransform(TFM_MIRROR, CTX_NO_PET|CTX_AUTOCONFIRM); - BIF_setLocalAxisConstraint('Z', " on Z axis"); - Transform(); - break; - } -#endif -} - -static uiBlock *view3d_object_mirrormenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_object_mirrormenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_object_mirrormenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Interactive Mirror|Ctrl M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "X Local|Ctrl M, X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Y Local|Ctrl M, Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Z Local|Ctrl M, Z", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} -#endif -#endif - -#if 0 -static void view3d_edit_object_transformmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ -#if 0 // XXX not used anymore - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Scale/Rotation to ObData|Ctrl A, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - apply_objects_locrot(); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Visual Transform|Ctrl A, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); - apply_objects_visual_tx(); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Deformation|Ctrl Shift A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - if(OBACT) object_apply_deform(OBACT); -#endif - uiItemO(layout, NULL, 0, "OBJECT_OT_duplicates_make_real"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "OBJECT_OT_location_clear"); - uiItemO(layout, NULL, 0, "OBJECT_OT_rotation_clear"); - uiItemO(layout, NULL, 0, "OBJECT_OT_scale_clear"); - uiItemO(layout, NULL, 0, "OBJECT_OT_origin_clear"); -} -#endif - -#if 0 -static void do_view3d_edit_object_makelocalmenu(bContext *C, void *arg, int event) -{ -#if 0 - switch(event) { - case 1: - case 2: - case 3: - make_local(event); - break; - } -#endif -} - -static uiBlock *view3d_edit_object_makelocalmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_edit_object_makelocalmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_edit_object_makelocalmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Selected Objects|L, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Selected Objects and Data|L, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "All|L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -static void do_view3d_edit_object_makelinksmenu(bContext *C, void *arg, int event) -{ -#if 0 - switch(event) { - case 1: - case 2: - case 3: - case 4: - make_links((short)event); - break; - } -#endif -} - -static uiBlock *view3d_edit_object_makelinksmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - Scene *scene= CTX_data_scene(C); - Object *ob=NULL; - - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_edit_object_makelinksmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_edit_object_makelinksmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "To Scene...|Ctrl L, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Ipo|Ctrl L, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - - if ((ob=OBACT)) { - - if(ob->type==OB_MESH) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mesh Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - } else if(ob->type==OB_CURVE) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Curve Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - } else if(ob->type==OB_FONT) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Text Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - } else if(ob->type==OB_SURF) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Surface Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - } else if(ob->type==OB_MBALL) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - } else if(ob->type==OB_CAMERA) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Camera Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - } else if(ob->type==OB_LAMP) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lamp Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - } else if(ob->type==OB_LATTICE) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lattice Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - } else if(ob->type==OB_ARMATURE) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Armature Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - } - } - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -static void do_view3d_edit_object_singleusermenu(bContext *C, void *arg, int event) -{ -#if 0 - switch(event) { - case 1: /* Object */ - single_object_users(1); - break; - case 2: /* Object & ObData */ - single_object_users(1); - single_obdata_users(1); - break; - case 3: /* Object & ObData & Materials+Tex */ - single_object_users(1); - single_obdata_users(1); - single_mat_users(1); /* also tex */ - break; - case 4: /* Materials+Tex */ - single_mat_users(1); - break; - case 5: /* Ipo */ - single_ipo_users(1); - break; - } - - clear_id_newpoins(); - countall(); - -#endif -} - -static uiBlock *view3d_edit_object_singleusermenu(bContext *C, ARegion *ar, void *arg_unused) -{ - - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_edit_object_singleusermenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_edit_object_singleusermenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object|U, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object & ObData|U, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object & ObData & Materials+Tex|U, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials+Tex|U, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Ipos|U, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -static void do_view3d_edit_object_copyattrmenu(bContext *C, void *arg, int event) -{ - switch(event) { - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 29: - case 30: -// XXX copy_attr((short)event); - break; - } -} - -static uiBlock *view3d_edit_object_copyattrmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - Scene *scene= CTX_data_scene(C); - Object *ob=NULL; - - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_edit_object_copyattrmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_edit_object_copyattrmenu, NULL); - - ob= OBACT; - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Location|Ctrl C, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rotation|Ctrl C, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Size|Ctrl C, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Drawtype|Ctrl C, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Time Offset|Ctrl C, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Dupli|Ctrl C, 6", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mass|Ctrl C, 7", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Damping|Ctrl C, 8", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "All Physical Attributes|Ctrl C, 11", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Properties|Ctrl C, 9", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Logic Bricks|Ctrl C, 10", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Protected Transform |Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 29, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Constraints|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 22, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "NLA Strips|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 26, ""); - - if (ob) { - - if ((ob->type == OB_MESH) || (ob->type == OB_CURVE) || (ob->type == OB_SURF) || - (ob->type == OB_FONT) || (ob->type == OB_MBALL)) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Texture Space|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 17, ""); - } - - if(ob->type == OB_FONT) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Font Settings|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Bevel Settings|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 19, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Curve Resolution|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 25, ""); - } - if(ob->type == OB_CURVE) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Bevel Settings|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 19, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Curve Resolution|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 25, ""); - } - - if(ob->type==OB_MESH) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subsurf Settings|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 21, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Modifiers ...|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 24, ""); - } - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Pass Index|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 30, ""); - } - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} -#endif - -#if 0 -#ifndef DISABLE_PYTHON -static void do_view3d_edit_object_scriptsmenu(bContext *C, void *arg, int event) -{ -#if 0 - BPY_menu_do_python(PYMENU_OBJECT, event); - -#endif -} - -static uiBlock *view3d_edit_object_scriptsmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; -// short yco = 20, menuwidth = 120; -// XXX BPyMenu *pym; -// int i = 0; - - block= uiBeginBlock(C, ar, "v3d_eobject_pymenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_edit_object_scriptsmenu, NULL); - -// for (pym = BPyMenuTable[PYMENU_OBJECT]; pym; pym = pym->next, i++) { -// uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, i, pym->tooltip?pym->tooltip:pym->filename); -// } - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - - return block; -} -#endif /* DISABLE_PYTHON */ -#endif - - -#if 0 -static void do_view3d_edit_objectmenu(bContext *C, void *arg, int event) -{ - Scene *scene= CTX_data_scene(C); - ScrArea *sa= CTX_wm_area(C); - View3D *v3d= sa->spacedata.first; - - switch(event) { - - case 0: /* transform properties*/ -// XXX mainqenter(NKEY, 1); - break; - case 5: /* make single user */ - single_user(); - break; - case 7: /* boolean operation */ - special_editmenu(); - break; - case 8: /* join objects */ - join_menu(); - break; - case 9: /* convert object type */ - convertmenu(); - break; - case 10: /* move to layer */ - movetolayer(); - break; - case 11: /* insert keyframe */ - common_insertkey(); - break; - case 16: /* make proxy object*/ - make_proxy(); - break; - case 18: /* delete keyframe */ - common_deletekey(); - break; - } -} -#endif - - -/* texture paint menu (placeholder, no items yet??) */ -static void do_view3d_tpaintmenu(bContext *C, void *arg, int event) -{ -#if 0 - switch(event) { - case 0: /* undo image painting */ - undo_imagepaint_step(1); - break; - } - -#endif -} - -static uiBlock *view3d_tpaintmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco= 0, menuwidth=120; - - block= uiBeginBlock(C, ar, "view3d_paintmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_tpaintmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Texture Painting|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - if(ar->alignment==RGN_ALIGN_TOP) { - uiBlockSetDirection(block, UI_DOWN); - } - else { - uiBlockSetDirection(block, UI_TOP); - uiBlockFlipOrder(block); - } - - uiTextBoundsBlock(block, 50); - return block; -} - - -static void do_view3d_wpaintmenu(bContext *C, void *arg, int event) -{ -#if 0 - Object *ob= OBACT; - - /* events >= 3 are registered bpython scripts */ -#ifndef DISABLE_PYTHON - if (event >= 4) BPY_menu_do_python(PYMENU_WEIGHTPAINT, event - 4); -#endif - switch(event) { - case 0: /* undo weight painting */ - BIF_undo(); - break; - case 1: /* set vertex colors/weight */ - clear_wpaint_selectedfaces(); - break; - case 2: /* vgroups from envelopes */ - pose_adds_vgroups(ob, 0); - break; - case 3: /* vgroups from bone heat */ - pose_adds_vgroups(ob, 1); - break; - } -#endif -} - -static uiBlock *view3d_wpaintmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco= 0, menuwidth=120, menunr=1; -#ifndef DISABLE_PYTHON -// XXX BPyMenu *pym; -// int i=0; -#endif - - block= uiBeginBlock(C, ar, "view3d_paintmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_wpaintmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Weight Painting|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Bone Heat Weights to Vertex Groups|W, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Bone Envelopes to Vertex Groups|W, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - if (paint_facesel_test(CTX_data_active_object(C))) { - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Set Weight|Shift K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - menunr++; - } - -#ifndef DISABLE_PYTHON - /* note that we account for the 4 previous entries with i+4: - even if the last item isnt displayed, it dosent matter */ -// for (pym = BPyMenuTable[PYMENU_WEIGHTPAINT]; pym; pym = pym->next, i++) { -// uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, -// menuwidth, 19, NULL, 0.0, 0.0, 1, i+4, -// pym->tooltip?pym->tooltip:pym->filename); -// } -#endif - - if(ar->alignment==RGN_ALIGN_TOP) { - uiBlockSetDirection(block, UI_DOWN); - } - else { - uiBlockSetDirection(block, UI_TOP); - uiBlockFlipOrder(block); - } - - uiTextBoundsBlock(block, 50); - return block; -} - -static void do_view3d_facesel_showhidemenu(bContext *C, void *arg, int event) -{ -#if 0 - switch(event) { - case 4: /* show hidden faces */ - reveal_tface(); - break; - case 5: /* hide selected faces */ - hide_tface(); - break; - case 6: /* XXX hide deselected faces */ -// G.qual |= LR_SHIFTKEY; - hide_tface(); -// G.qual &= ~LR_SHIFTKEY; - break; - } -#endif -} - -static uiBlock *view3d_facesel_showhidemenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "view3d_facesel_showhidemenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_facesel_showhidemenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden Faces|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected Faces|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Unselected Faces|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - return block; -} - -static void do_view3d_faceselmenu(bContext *C, void *arg, int event) -{ -#if 0 - switch(event) { - case 0: /* set vertex colors */ - clear_vpaint_selectedfaces(); - break; - case 1: /* mark border seam */ - seam_mark_clear_tface(1); - break; - case 2: /* clear seam */ - seam_mark_clear_tface(2); - break; - } -#endif -} - -static uiBlock *view3d_faceselmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - uiBlock *block; - short yco= 0, menuwidth=120; - - block= uiBeginBlock(C, ar, "view3d_faceselmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_view3d_faceselmenu, NULL); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Set Vertex Colors|Shift K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Seam|Ctrl E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mark Border Seam|Ctrl E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBlockBut(block, view3d_facesel_showhidemenu, NULL, ICON_RIGHTARROW_THIN, "Show/Hide Faces", 0, yco-=20, 120, 19, ""); - - if(ar->alignment==RGN_ALIGN_TOP) { - uiBlockSetDirection(block, UI_DOWN); - } - else { - uiBlockSetDirection(block, UI_TOP); - uiBlockFlipOrder(block); - } - - uiTextBoundsBlock(block, 50); - return block; -} - static char *view3d_modeselect_pup(Scene *scene) { Object *ob= OBACT; @@ -1641,29 +305,16 @@ static char *view3d_modeselect_pup(Scene *scene) return (string); } -static char *ndof_pup(void) -{ - static char string[512]; - char *str = string; - - str += sprintf(str, "%s", "ndof mode: %t"); - str += sprintf(str, "%s", "|turntable %x0"); - str += sprintf(str, "%s", "|fly %x1"); - str += sprintf(str, "%s", "|transform %x2"); - return string; -} static void do_view3d_header_buttons(bContext *C, void *arg, int event) { wmWindow *win= CTX_wm_window(C); - Scene *scene= CTX_data_scene(C); ToolSettings *ts= CTX_data_tool_settings(C); ScrArea *sa= CTX_wm_area(C); View3D *v3d= sa->spacedata.first; Object *obedit = CTX_data_edit_object(C); - Object *ob = CTX_data_active_object(C); EditMesh *em= NULL; - int bit, ctrl= win->eventstate->ctrl, shift= win->eventstate->shift; + int ctrl= win->eventstate->ctrl, shift= win->eventstate->shift; PointerRNA props_ptr; if(obedit && obedit->type==OB_MESH) { @@ -1672,44 +323,16 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event) /* watch it: if sa->win does not exist, check that when calling direct drawing routines */ switch(event) { - case B_HOME: - WM_operator_name_call(C, "VIEW3D_OT_view_all", WM_OP_EXEC_REGION_WIN, NULL); - break; case B_REDR: ED_area_tag_redraw(sa); break; - case B_SCENELOCK: - if(v3d->scenelock) { - v3d->lay= scene->lay; - /* seek for layact */ - bit= 0; - while(bit<32) { - if(v3d->lay & (1<layact= 1<camera= scene->camera; - ED_area_tag_redraw(sa); - } - break; - case B_VIEWRENDER: - if (sa->spacetype==SPACE_VIEW3D) { -// XXX BIF_do_ogl_render(v3d, shift); - } - break; case B_MODESELECT: WM_operator_properties_create(&props_ptr, "OBJECT_OT_mode_set"); RNA_enum_set(&props_ptr, "mode", v3d->modeselect); WM_operator_name_call(C, "OBJECT_OT_mode_set", WM_OP_EXEC_REGION_WIN, &props_ptr); WM_operator_properties_free(&props_ptr); break; - case B_AROUND: - WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, 0); -// XXX handle_view3d_around(); /* copies to other 3d windows */ - break; case B_SEL_VERT: if(em) { @@ -1750,22 +373,6 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event) } break; - case B_SEL_PATH: - ts->particle.selectmode= SCE_SELECT_PATH; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - ED_undo_push(C, "Selectmode Set: Path"); - break; - case B_SEL_POINT: - ts->particle.selectmode = SCE_SELECT_POINT; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - ED_undo_push(C, "Selectmode Set: Point"); - break; - case B_SEL_END: - ts->particle.selectmode = SCE_SELECT_END; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - ED_undo_push(C, "Selectmode Set: End point"); - break; - case B_MAN_TRANS: if( shift==0 || v3d->twtype==0) { v3d->twtype= V3D_MANIP_TRANSLATE; @@ -1789,48 +396,8 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event) break; case B_MAN_MODE: ED_area_tag_redraw(sa); - break; - case B_VIEW_BUTSEDIT: - ED_area_tag_redraw(sa); break; - default: - - if(event>=B_LAY && eventlay!=0 && shift) { - - /* but do find active layer */ - - bit= event-B_LAY; - if( v3d->lay & (1<layact= 1<lay & v3d->layact) == 0) { - bit= 0; - while(bit<32) { - if(v3d->lay & (1<layact= 1<lay= 1<layact= v3d->lay; - } - - if(v3d->scenelock) handle_view3d_lock(C); - - ED_area_tag_redraw(sa); - countall(); - - /* new layers might need unflushed events events */ - DAG_scene_update_flags(scene, v3d->lay); /* tags all that moves and flushes */ - - } break; } @@ -1838,55 +405,6 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event) BKE_mesh_end_editmesh(obedit->data, em); } -static void view3d_header_pulldowns(const bContext *C, uiBlock *block, Object *ob) -{ - Object *obedit = CTX_data_edit_object(C); - RegionView3D *rv3d= wm_region_view3d(C); - short xmax, xco= 0, yco = 0; - - /* compensate for local mode when setting up the viewing menu/iconrow values */ - if(rv3d->view==7) rv3d->viewbut= 1; - else if(rv3d->view==1) rv3d->viewbut= 2; - else if(rv3d->view==3) rv3d->viewbut= 3; - else rv3d->viewbut= 0; - - /* the 'xmax - 3' rather than xmax is to prevent some weird flickering where the highlighted - * menu is drawn wider than it should be. The ypos of -2 is to make it properly fill the - * height of the header */ - - xmax= GetButStringLength("Select"); - - xco+= xmax; - - if (obedit) { - } - else if (ob && ob->mode & OB_MODE_WEIGHT_PAINT) { - xmax= GetButStringLength("Paint"); - uiDefPulldownBut(block, view3d_wpaintmenu, NULL, "Paint", xco,yco, xmax-3, 20, ""); - xco+= xmax; - } - else if (ob && ob->mode & OB_MODE_TEXTURE_PAINT) { - xmax= GetButStringLength("Paint"); - uiDefPulldownBut(block, view3d_tpaintmenu, NULL, "Paint", xco,yco, xmax-3, 20, ""); - xco+= xmax; - } - else if (paint_facesel_test(ob)) { - if (ob && ob->type == OB_MESH) { - xmax= GetButStringLength("Face"); - uiDefPulldownBut(block, view3d_faceselmenu, NULL, "Face", xco,yco, xmax-3, 20, ""); - xco+= xmax; - } - } - else if(ob && ob->mode & OB_MODE_PARTICLE_EDIT) { - /* ported to python */ - } - else { - if (ob && (ob->mode & OB_MODE_POSE)) { - /* ported to python */ - } - } -} - /* Returns the icon associated with an object mode */ static int object_mode_icon(int mode) { @@ -1920,9 +438,6 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) block= uiLayoutGetBlock(layout); uiBlockSetHandleFunc(block, do_view3d_header_buttons, NULL); - - if((sa->flag & HEADER_NO_PULLDOWN)==0) - view3d_header_pulldowns(C, block, ob); /* other buttons: */ uiBlockSetEmboss(block, UI_EMBOSS); @@ -1966,13 +481,15 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) uiItemR(row, "", 0, &v3dptr, "pivot_point_align", UI_ITEM_R_ICON_ONLY); /* NDOF */ - if (G.ndofdevice ==0 ) { + /* Not implemented yet + if (G.ndofdevice ==0 ) { uiDefIconTextButC(block, ICONTEXTROW,B_NDOF, ICON_NDOF_TURN, ndof_pup(), 0,0,XIC+10,YIC, &(v3d->ndofmode), 0, 3.0, 0, 0, "Ndof mode"); uiDefIconButC(block, TOG, B_NDOF, ICON_NDOF_DOM, 0,0,XIC,YIC, &v3d->ndoffilter, 0, 1, 0, 0, "dominant axis"); } + */ /* Transform widget / manipulators */ row= uiLayoutRow(layout, 1); @@ -1996,9 +513,12 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) if(obedit==NULL && v3d->localvd==NULL) { int ob_lay = ob ? ob->lay : 0; - + /* Layers */ - uiTemplateLayers(layout, &sceneptr, "visible_layers", &v3dptr, "used_layers", ob_lay); + if (v3d->scenelock) + uiTemplateLayers(layout, &sceneptr, "visible_layers", &v3dptr, "used_layers", ob_lay); + else + uiTemplateLayers(layout, &v3dptr, "visible_layers", &v3dptr, "used_layers", ob_lay); /* Scene lock */ uiItemR(layout, "", 0, &v3dptr, "lock_camera_and_layers", UI_ITEM_R_ICON_ONLY); diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 62374ca3134..2b42b64c0a3 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -1263,6 +1263,74 @@ static unsigned int free_localbit(void) return 0; } +static void copy_view3d_lock_space(View3D *v3d, Scene *scene) +{ + int bit; + + if(v3d->scenelock && v3d->localvd==NULL) { + v3d->lay= scene->lay; + v3d->camera= scene->camera; + + if(v3d->camera==NULL) { + ARegion *ar; + + for(ar=v3d->regionbase.first; ar; ar= ar->next) { + if(ar->regiontype == RGN_TYPE_WINDOW) { + RegionView3D *rv3d= ar->regiondata; + if(rv3d->persp==RV3D_CAMOB) + rv3d->persp= RV3D_PERSP; + } + } + } + + if((v3d->lay & v3d->layact) == 0) { + for(bit= 0; bit<32; bit++) { + if(v3d->lay & (1<layact= 1<screen.first; sc; sc=sc->id.next) { + if(sc->scene!=scene) + continue; + + for(sa=sc->areabase.first; sa; sa=sa->next) + for(sl=sa->spacedata.first; sl; sl=sl->next) + if(sl->spacetype==SPACE_VIEW3D) + copy_view3d_lock_space((View3D*)sl, scene); + } +} + +int ED_view3d_scene_layer_set(int lay, const int *values) +{ + int i, tot= 0; + + /* ensure we always have some layer selected */ + for(i=0; i<20; i++) + if(values[i]) + tot++; + + if(tot==0) + return lay; + + for(i=0; i<20; i++) { + if(values[i]) lay |= (1<set= set; } -static int layer_set(int lay, const int *values) -{ - int i, tot= 0; - - /* ensure we always have some layer selected */ - for(i=0; i<20; i++) - if(values[i]) - tot++; - - if(tot==0) - return lay; - - for(i=0; i<20; i++) { - if(values[i]) lay |= (1<data; - scene->lay= layer_set(scene->lay, values); + scene->lay= ED_view3d_scene_layer_set(scene->lay, values); } static void rna_Scene_layer_update(bContext *C, PointerRNA *ptr) @@ -555,7 +535,7 @@ static int rna_SceneRenderData_use_game_engine_get(PointerRNA *ptr) static void rna_SceneRenderLayer_layer_set(PointerRNA *ptr, const int *values) { SceneRenderLayer *rl= (SceneRenderLayer*)ptr->data; - rl->lay= layer_set(rl->lay, values); + rl->lay= ED_view3d_scene_layer_set(rl->lay, values); } static void rna_SceneRenderLayer_pass_update(bContext *C, PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index e7f9a8edcae..c10f3f74fd8 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -98,6 +98,7 @@ static EnumPropertyItem transform_orientation_items[] = { #include "ED_image.h" #include "ED_screen.h" +#include "ED_view3d.h" #include "IMB_imbuf_types.h" @@ -227,6 +228,12 @@ static void rna_Space3DView_lock_camera_and_layers_set(PointerRNA *ptr, int valu } } +static void rna_Space3DView_layer_set(PointerRNA *ptr, const int *values) +{ + View3D *v3d= (View3D*)(ptr->data); + + v3d->lay= ED_view3d_scene_layer_set(v3d->lay, values); +} /* Space Image Editor */ @@ -863,9 +870,17 @@ static void rna_def_space_3dview(BlenderRNA *brna) prop= RNA_def_property(srna, "lock_camera_and_layers", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "scenelock", 1); RNA_def_property_boolean_funcs(prop, NULL, "rna_Space3DView_lock_camera_and_layers_set"); - RNA_def_property_ui_text(prop, "Lock Camera and Layers", "Lock the active camera and layers to scene."); + RNA_def_property_ui_text(prop, "Lock Camera and Layers", "Use the scene's active camera and layers in this view, rather than local layers."); RNA_def_property_ui_icon(prop, ICON_LOCKVIEW_OFF, 1); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + prop= RNA_def_property(srna, "visible_layers", PROP_BOOLEAN, PROP_LAYER_MEMBER); + RNA_def_property_boolean_sdna(prop, NULL, "lay", 1); + RNA_def_property_array(prop, 20); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Space3DView_layer_set"); + RNA_def_property_ui_text(prop, "Visible Layers", "Layers visible in this 3D View."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); + prop= RNA_def_property(srna, "used_layers", PROP_BOOLEAN, PROP_LAYER_MEMBER); RNA_def_property_boolean_sdna(prop, NULL, "lay_used", 1); RNA_def_property_array(prop, 20); -- cgit v1.2.3 From 8c313fa931844057671c635b6e9cb270db1659fa Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 3 Dec 2009 09:51:02 +0000 Subject: Fix for color management not working with AVI output, patch by Damien Plisson, thanks! --- source/blender/render/intern/source/pipeline.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index b357a17e244..08440798826 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1065,12 +1065,25 @@ void RE_ResultGet32(Render *re, unsigned int *rect) int tot= rres.rectx*rres.recty; char *cp= (char *)rect; - for(;tot>0; tot--, cp+=4, fp+=4) { - cp[0] = FTOCHAR(fp[0]); - cp[1] = FTOCHAR(fp[1]); - cp[2] = FTOCHAR(fp[2]); - cp[3] = FTOCHAR(fp[3]); + if (re->r.color_mgt_flag & R_COLOR_MANAGEMENT) { + /* Finally convert back to sRGB rendered image */ + for(;tot>0; tot--, cp+=4, fp+=4) { + cp[0] = FTOCHAR(linearrgb_to_srgb(fp[0])); + cp[1] = FTOCHAR(linearrgb_to_srgb(fp[1])); + cp[2] = FTOCHAR(linearrgb_to_srgb(fp[2])); + cp[3] = FTOCHAR(fp[3]); + } } + else { + /* Color management is off : no conversion necessary */ + for(;tot>0; tot--, cp+=4, fp+=4) { + cp[0] = FTOCHAR(fp[0]); + cp[1] = FTOCHAR(fp[1]); + cp[2] = FTOCHAR(fp[2]); + cp[3] = FTOCHAR(fp[3]); + } + } + } else /* else fill with black */ -- cgit v1.2.3 From f146d96c3b9529455052521a84f4e64a525d92d1 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 3 Dec 2009 09:56:31 +0000 Subject: Bugfix #20219: Timeline navigation Added missing "View All" (HomeKey) operator for TimeLine --- source/blender/editors/space_time/time_ops.c | 50 ++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c index 7d91c6d0fc7..83b310dba80 100644 --- a/source/blender/editors/space_time/time_ops.c +++ b/source/blender/editors/space_time/time_ops.c @@ -90,7 +90,8 @@ void TIME_OT_start_frame_set (wmOperatorType *ot) ot->exec= time_set_sfra_exec; ot->poll= ED_operator_timeline_active; - // XXX properties??? + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } @@ -129,7 +130,50 @@ void TIME_OT_end_frame_set (wmOperatorType *ot) ot->exec= time_set_efra_exec; ot->poll= ED_operator_timeline_active; - // XXX properties??? + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/* ************************ View All Operator *******************************/ + +static int time_view_all_exec (bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + ARegion *ar= CTX_wm_region(C); + View2D *v2d= (ar) ? &ar->v2d : NULL; + float extra; + + if ELEM(NULL, scene, ar) + return OPERATOR_CANCELLED; + + /* set extents of view to start/end frames (Preview Range too) */ + v2d->cur.xmin= (float)PSFRA; + v2d->cur.xmax= (float)PEFRA; + + /* we need an extra "buffer" factor on either side so that the endpoints are visible */ + extra= 0.01f * (v2d->cur.xmax - v2d->cur.xmin); + v2d->cur.xmin -= extra; + v2d->cur.xmax += extra; + + /* this only affects this TimeLine instance, so just force redraw of this region */ + ED_region_tag_redraw(ar); + + return OPERATOR_FINISHED; +} + +void TIME_OT_view_all (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "View All"; + ot->idname= "TIME_OT_view_all"; + ot->description= "Show the entire playable frame range"; + + /* api callbacks */ + ot->exec= time_view_all_exec; + ot->poll= ED_operator_timeline_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } /* ************************** registration **********************************/ @@ -138,6 +182,7 @@ void time_operatortypes(void) { WM_operatortype_append(TIME_OT_start_frame_set); WM_operatortype_append(TIME_OT_end_frame_set); + WM_operatortype_append(TIME_OT_view_all); } void time_keymap(wmKeyConfig *keyconf) @@ -146,5 +191,6 @@ void time_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "TIME_OT_start_frame_set", SKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "TIME_OT_end_frame_set", EKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "TIME_OT_view_all", HOMEKEY, KM_PRESS, 0, 0); } -- cgit v1.2.3 From cbab6e57dc8176dc2a4b380e81993612b0df7825 Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Thu, 3 Dec 2009 09:59:52 +0000 Subject: QTkit : update build checks to allow only 10.5+/64bit builds Other SDK versions do not handle correctly QTKit movie creation in a background thread. Carbon quicktime should be used for the 32bit builds (USE_QTKIT = 0) --- source/blender/quicktime/apple/qtkit_export.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/quicktime/apple/qtkit_export.m b/source/blender/quicktime/apple/qtkit_export.m index 59cd669d738..c7759055d7e 100644 --- a/source/blender/quicktime/apple/qtkit_export.m +++ b/source/blender/quicktime/apple/qtkit_export.m @@ -57,8 +57,8 @@ #import #import -#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 -#error OSX 10.5 minimum is needed for QTKit +#if (MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4) || !__LP64__ +#error 64 bit build & OSX 10.5 minimum are needed for QTKit #endif #include "quicktime_import.h" -- cgit v1.2.3 From 42970d81fce4b0bba7aab74277cf281bd0cda2eb Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 3 Dec 2009 10:18:47 +0000 Subject: Bugfix #20190: Scaling Bone Joints in envelope drawmode Made scaling selected joints using SKEY work in the same way as in 2.4x However, it'd probably be nice to be able to have separate hotkeys for this at a later stage. --- source/blender/editors/transform/transform_conversions.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 33e37ec8536..4627db7e89c 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -1056,7 +1056,15 @@ static void createTransArmatureVerts(bContext *C, TransInfo *t) ListBase *edbo = arm->edbo; TransData *td; float mtx[3][3], smtx[3][3], delta[3], bonemat[3][3]; - + + /* special hack for envelope drawmode and scaling: + * to allow scaling the size of the envelope around single points, + * mode should become TFM_BONE_ENVELOPE in this case + */ + // TODO: maybe we need a separate hotkey for it, but this is consistent with 2.4x for now + if ((t->mode == TFM_RESIZE) && (arm->drawtype==ARM_ENVELOPE)) + t->mode= TFM_BONE_ENVELOPE; + t->total = 0; for (ebo = edbo->first; ebo; ebo = ebo->next) { -- cgit v1.2.3 From b440fe1611f9799e40c736d8b3e8bbc4ef5f0a01 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 3 Dec 2009 10:23:38 +0000 Subject: Fix for one of the issues in #20230: Comp Nodes animations not saving to .blend AnimData was not getting written to files for Node Trees. --- source/blender/blenloader/intern/writefile.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index b2147221f9f..2bfc726b7c7 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -475,6 +475,8 @@ static void write_nodetree(WriteData *wd, bNodeTree *ntree) /* for link_list() speed, we write per list */ + if(ntree->adt) write_animdata(wd, ntree->adt); + for(node= ntree->nodes.first; node; node= node->next) writestruct(wd, DATA, "bNode", 1, node); -- cgit v1.2.3 From 1fd581ad77e2958e4ea7a6faf0afd823d26f042c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 3 Dec 2009 10:27:22 +0000 Subject: Bugfix: Toggle animation channel visibility (shift-v) was not flushing the new values correctly - Modifying groups did not flush status to channels below - Objects were always toggled. Still need to figure out why this didn't work right... --- source/blender/editors/animation/anim_channels_edit.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index e4ce26b6156..5842f476bc6 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1104,11 +1104,16 @@ static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *op) /* Now set the flags */ for (ale= anim_data.first; ale; ale= ale->next) { + /* hack: skip object channels for now, since flushing those will always flush everything, but they are always included */ + // TODO: find out why this is the case, and fix that + if (ale->type == ANIMTYPE_OBJECT) + continue; + /* change the setting */ ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, vis); /* now, also flush selection status up/down as appropriate */ - //ANIM_visibility_flush_anim_channels(&ac, &all_data, ale, (vis == ACHANNEL_SETFLAG_ADD)); + ANIM_visibility_flush_anim_channels(&ac, &all_data, ale, (vis == ACHANNEL_SETFLAG_ADD)); } /* cleanup */ -- cgit v1.2.3 From 3b1c6d6065ea784e6986bff58a842afd0915dc7a Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Thu, 3 Dec 2009 12:16:00 +0000 Subject: Quicktime Carbon: Fix memory leak when build with cocoa --- source/blender/quicktime/SConscript | 7 ++++++- source/blender/quicktime/apple/quicktime_export.c | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/quicktime/SConscript b/source/blender/quicktime/SConscript index 549b3cffe5a..c8cd795decb 100644 --- a/source/blender/quicktime/SConscript +++ b/source/blender/quicktime/SConscript @@ -30,4 +30,9 @@ incs.append(env['BF_QUICKTIME_INC']) types = ['core','player'] priorities = [200,235] -env.BlenderLib ('bf_quicktime', sources=source_files, includes=incs, defines=['WITH_QUICKTIME'], libtype=types, priority=priorities) +defs=['WITH_QUICKTIME'] + +if env['WITH_GHOST_COCOA']: + defs.append('GHOST_COCOA') + +env.BlenderLib ('bf_quicktime', sources=source_files, includes=incs, defines=defs, libtype=types, priority=priorities) diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index dea170ddeb4..68fd60d89d2 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -783,7 +783,7 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op) err = SCRequestSequenceSettings(qtdata->theComponent); if (err == scUserCancelled) { - return 0; + return OPERATOR_FINISHED; } // update runtime codecsettings for use with the codec dialog @@ -844,7 +844,7 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op) } } - return 1; + return OPERATOR_FINISHED; } static int ED_operator_setqtcodec(bContext *C) @@ -852,6 +852,17 @@ static int ED_operator_setqtcodec(bContext *C) return G.have_quicktime != FALSE; } +#if defined(__APPLE__) && defined(GHOST_COCOA) +//Need to set up a Cocoa NSAutoReleasePool to avoid memory leak +//And it must be done in an objC file, so use a GHOST_SystemCocoa.mm function for that +extern int cocoa_request_qtcodec_settings(bContext *C, wmOperator *op); + +int fromcocoa_request_qtcodec_settings(bContext *C, wmOperator *op) +{ + return request_qtcodec_settings(C, op); +} +#endif + void SCENE_OT_render_data_set_quicktime_codec(wmOperatorType *ot) { @@ -861,7 +872,11 @@ void SCENE_OT_render_data_set_quicktime_codec(wmOperatorType *ot) ot->idname= "SCENE_OT_render_data_set_quicktime_codec"; /* api callbacks */ +#if defined(__APPLE__) && defined(GHOST_COCOA) + ot->exec = cocoa_request_qtcodec_settings; +#else ot->exec= request_qtcodec_settings; +#endif ot->poll= ED_operator_setqtcodec; /* flags */ -- cgit v1.2.3 From 010c99deb271c629742e32f5e7922d357cafc9f3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 3 Dec 2009 18:35:37 +0000 Subject: Sculpt Branch: * Multithread parts of multires and subsurf. Only loops working on face grid data and do no memory allocation have been multithreaded, others would be more complicated. * Force some CCGSubsurf functions to be inlined, gives a small overall speedup in subsurf code. * Fix sculpting not working correct with transformed objects. * Fix a few cases of "spikes" on lower level multires levels. There's still cases where it happens, usually on boundary cornders. The problem is that in such cases the limit surfaces can be very different from the low res surface, so the tangent space is very different too.. * Fix crash deleting multires higher levels with level set to 0. * Fix crashes that happened sometimes when adding faces in editmode. --- source/blender/blenkernel/BKE_DerivedMesh.h | 1 + source/blender/blenkernel/BKE_subsurf.h | 1 + source/blender/blenkernel/intern/CCGSubSurf.c | 217 ++++++++++++++----------- source/blender/blenkernel/intern/multires.c | 172 +++++++------------- source/blender/blenkernel/intern/subsurf_ccg.c | 12 +- source/blender/editors/sculpt_paint/sculpt.c | 5 + source/blender/gpu/intern/gpu_buffers.c | 6 +- 7 files changed, 198 insertions(+), 216 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index bcafc4c48b2..1f6a8f955ba 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -151,6 +151,7 @@ struct DerivedMesh { int (*getGridSize)(DerivedMesh *dm); DMGridData **(*getGridData)(DerivedMesh *dm); DMGridAdjacency *(*getGridAdjacency)(DerivedMesh *dm); + int *(*getGridOffset)(DerivedMesh *dm); /* Iterate over each mapped vertex in the derived mesh, calling the * given function with the original vert and the mapped vert's new diff --git a/source/blender/blenkernel/BKE_subsurf.h b/source/blender/blenkernel/BKE_subsurf.h index 7b8adb7cb8e..0a18850e3b7 100644 --- a/source/blender/blenkernel/BKE_subsurf.h +++ b/source/blender/blenkernel/BKE_subsurf.h @@ -73,6 +73,7 @@ typedef struct CCGDerivedMesh { struct DMGridData **gridData; struct DMGridAdjacency *gridAdjacency; + int *gridOffset; struct _CCGFace **gridFaces; struct { diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c index 7c2c6d4d99e..cc2bd531fe6 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.c +++ b/source/blender/blenkernel/intern/CCGSubSurf.c @@ -8,6 +8,12 @@ #include "BLO_sys_types.h" // for intptr_t support +#ifdef _MSC_VER +#define CCG_INLINE __inline +#else +#define CCG_INLINE inline +#endif + /* used for normalize_v3 in BLI_math_vector * float.h's FLT_EPSILON causes trouble with subsurf normals - campbell */ #define EPSILON (1.0e-35f) @@ -523,19 +529,19 @@ static CCGFace *_face_new(CCGFaceHDL fHDL, CCGVert **verts, CCGEdge **edges, int return f; } -static void *_face_getIECo(CCGFace *f, int lvl, int S, int x, int levels, int dataSize) { +static CCG_INLINE void *_face_getIECo(CCGFace *f, int lvl, int S, int x, int levels, int dataSize) { int maxGridSize = 1 + (1<<(levels-1)); int spacing = 1<<(levels-lvl); byte *gridBase = FACE_getCenterData(f) + dataSize*(1 + S*(maxGridSize + maxGridSize*maxGridSize)); return &gridBase[dataSize*x*spacing]; } -static void *_face_getIFCo(CCGFace *f, int lvl, int S, int x, int y, int levels, int dataSize) { +static CCG_INLINE void *_face_getIFCo(CCGFace *f, int lvl, int S, int x, int y, int levels, int dataSize) { int maxGridSize = 1 + (1<<(levels-1)); int spacing = 1<<(levels-lvl); byte *gridBase = FACE_getCenterData(f) + dataSize*(1 + S*(maxGridSize + maxGridSize*maxGridSize)); return &gridBase[dataSize*(maxGridSize + (y*maxGridSize + x)*spacing)]; } -static float *_face_getIFNo(CCGFace *f, int lvl, int S, int x, int y, int levels, int dataSize, int normalDataOffset) { +static CCG_INLINE float *_face_getIFNo(CCGFace *f, int lvl, int S, int x, int y, int levels, int dataSize, int normalDataOffset) { int maxGridSize = 1 + (1<<(levels-1)); int spacing = 1<<(levels-lvl); byte *gridBase = FACE_getCenterData(f) + dataSize*(1 + S*(maxGridSize + maxGridSize*maxGridSize)); @@ -548,7 +554,7 @@ static int _face_getVertIndex(CCGFace *f, CCGVert *v) { return i; return -1; } -static void *_face_getIFCoEdge(CCGFace *f, CCGEdge *e, int lvl, int eX, int eY, int levels, int dataSize) { +static CCG_INLINE void *_face_getIFCoEdge(CCGFace *f, CCGEdge *e, int lvl, int eX, int eY, int levels, int dataSize) { int maxGridSize = 1 + (1<<(levels-1)); int spacing = 1<<(levels-lvl); int S, x, y, cx, cy; @@ -1146,9 +1152,11 @@ static void ccgSubSurf__calcVertNormals(CCGSubSurf *ss, int normalDataOffset = ss->normalDataOffset; int vertDataSize = ss->meshIFC.vertDataSize; + #pragma omp parallel for private(ptrIdx) schedule(static) for (ptrIdx=0; ptrIdxnumVerts; S++) { for (y=0; yflags&Vert_eEffected) NormZero(FACE_getIFNo(f, lvl, S, gridSize-1, gridSize-1)); } - } - - for (ptrIdx=0; ptrIdxnumVerts; S++) { int yLimit = !(FACE_getEdges(f)[(S-1+f->numVerts)%f->numVerts]->flags&Edge_eEffected); @@ -1275,18 +1277,16 @@ static void ccgSubSurf__calcVertNormals(CCGSubSurf *ss, } } } + + #pragma omp parallel for private(ptrIdx) schedule(static) for (ptrIdx=0; ptrIdxnumVerts; S++) { NormCopy(FACE_getIFNo(f, lvl, (S+1)%f->numVerts, 0, gridSize-1), FACE_getIFNo(f, lvl, S, gridSize-1, 0)); } - } - for (ptrIdx=0; ptrIdxnumVerts; S++) { for (y=0; yq, *r = ss->r; + int ptrIdx, cornerIdx, i; int vertDataSize = ss->meshIFC.vertDataSize; + void *q = ss->q, *r = ss->r; + #pragma omp parallel for private(ptrIdx) schedule(static) for (ptrIdx=0; ptrIdx1.0) { for (x=0; xnumFaces; i++) { - CCGFace *f = e->faces[i]; + for (j=0; jnumFaces; j++) { + CCGFace *f = e->faces[j]; VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx, 1, subdivLevels, vertDataSize)); numFaces++; } @@ -1460,10 +1463,10 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, void *nCo = VERT_getCo(v, nextLvl); int sharpCount = 0, allSharp = 1; float avgSharpness = 0.0; - int seam = VERT_seam(v), seamEdges = 0; + int j, seam = VERT_seam(v), seamEdges = 0; - for (i=0; inumEdges; i++) { - CCGEdge *e = v->edges[i]; + for (j=0; jnumEdges; j++) { + CCGEdge *e = v->edges[j]; float sharpness = EDGE_getSharpness(e, curLvl); if (seam && _edge_isBoundary(e)) @@ -1493,8 +1496,8 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, int numBoundary = 0; VertDataZero(r); - for (i=0; inumEdges; i++) { - CCGEdge *e = v->edges[i]; + for (j=0; jnumEdges; j++) { + CCGEdge *e = v->edges[j]; if (_edge_isBoundary(e)) { VertDataAdd(r, _edge_getCoVert(e, v, curLvl, 1, vertDataSize)); numBoundary++; @@ -1510,15 +1513,15 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, int numEdges = 0, numFaces = 0; VertDataZero(q); - for (i=0; inumFaces; i++) { - CCGFace *f = v->faces[i]; + for (j=0; jnumFaces; j++) { + CCGFace *f = v->faces[j]; VertDataAdd(q, FACE_getIFCo(f, nextLvl, _face_getVertIndex(f,v), cornerIdx, cornerIdx)); numFaces++; } VertDataMulN(q, 1.0f/numFaces); VertDataZero(r); - for (i=0; inumEdges; i++) { - CCGEdge *e = v->edges[i]; + for (j=0; jnumEdges; j++) { + CCGEdge *e = v->edges[j]; VertDataAdd(r, _edge_getCoVert(e, v, curLvl, 1,vertDataSize)); numEdges++; } @@ -1540,8 +1543,8 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, allSharp = 1; } - for (i=0; inumEdges; i++) { - CCGEdge *e = v->edges[i]; + for (j=0; jnumEdges; j++) { + CCGEdge *e = v->edges[j]; float sharpness = EDGE_getSharpness(e, curLvl); if (seam) { @@ -1585,6 +1588,7 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, float sharpness = EDGE_getSharpness(e, curLvl); int sharpCount = 0; float avgSharpness = 0.0; + int x, j; if (sharpness!=0.0f) { sharpCount = 2; @@ -1622,8 +1626,8 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, VertDataZero(r); VertDataAdd(r, EDGE_getCo(e, curLvl, x-1)); VertDataAdd(r, EDGE_getCo(e, curLvl, x+1)); - for (i=0; inumFaces; i++) { - CCGFace *f = e->faces[i]; + for (j=0; jnumFaces; j++) { + CCGFace *f = e->faces[j]; VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx-1, 1, subdivLevels, vertDataSize)); VertDataAdd(q, _face_getIFCoEdge(f, e, nextLvl, fx+1, 1, subdivLevels, vertDataSize)); @@ -1654,52 +1658,91 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, } } - for (ptrIdx=0; ptrIdxnumVerts; S++) { - VertDataAdd(q, FACE_getIFCo(f, nextLvl, S, 1, 1)); - } - VertDataMulN(q, 1.0f/f->numVerts); - VertDataZero(r); - for (S=0; SnumVerts; S++) { - VertDataAdd(r, FACE_getIECo(f, curLvl, S, 1)); + #pragma omp critical + { + q = CCGSUBSURF_alloc(ss, ss->meshIFC.vertDataSize); + r = CCGSUBSURF_alloc(ss, ss->meshIFC.vertDataSize); } - VertDataMulN(r, 1.0f/f->numVerts); - VertDataMulN(FACE_getCenterData(f), f->numVerts-2.0f); - VertDataAdd(FACE_getCenterData(f), q); - VertDataAdd(FACE_getCenterData(f), r); - VertDataMulN(FACE_getCenterData(f), 1.0f/f->numVerts); + #pragma omp for schedule(static) + for (ptrIdx=0; ptrIdxnumVerts; S++) { - /* interior face shift - * o old interior face point (shifting) - * o new interior edge midpoints + /* interior center point shift + * o old face center point (shifting) + * o old interior edge points * o new interior face midpoints */ - for (x=1; xnumVerts; S++) { + VertDataAdd(q, FACE_getIFCo(f, nextLvl, S, 1, 1)); + } + VertDataMulN(q, 1.0f/f->numVerts); + VertDataZero(r); + for (S=0; SnumVerts; S++) { + VertDataAdd(r, FACE_getIECo(f, curLvl, S, 1)); + } + VertDataMulN(r, 1.0f/f->numVerts); + + VertDataMulN(FACE_getCenterData(f), f->numVerts-2.0f); + VertDataAdd(FACE_getCenterData(f), q); + VertDataAdd(FACE_getCenterData(f), r); + VertDataMulN(FACE_getCenterData(f), 1.0f/f->numVerts); + + for (S=0; SnumVerts; S++) { + /* interior face shift + * o old interior face point (shifting) + * o new interior edge midpoints + * o new interior face midpoints + */ + for (x=1; xnumVerts, 1, fx-1), + FACE_getIFCo(f, nextLvl, (S+1)%f->numVerts, 1, fx+1), + FACE_getIFCo(f, nextLvl, S, fx+1, +1), + FACE_getIFCo(f, nextLvl, S, fx-1, +1)); - VertDataAvg4(r, FACE_getIFCo(f, nextLvl, S, fx-1, fy+0), - FACE_getIFCo(f, nextLvl, S, fx+1, fy+0), - FACE_getIFCo(f, nextLvl, S, fx+0, fy-1), - FACE_getIFCo(f, nextLvl, S, fx+0, fy+1)); + VertDataAvg4(r, FACE_getIECo(f, nextLvl, S, fx-1), + FACE_getIECo(f, nextLvl, S, fx+1), + FACE_getIFCo(f, nextLvl, (S+1)%f->numVerts, 1, fx), + FACE_getIFCo(f, nextLvl, S, fx, 1)); VertDataCopy(nCo, co); VertDataSub(nCo, q); @@ -1707,32 +1750,12 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, VertDataAdd(nCo, r); } } + } - /* interior edge interior shift - * o old interior edge point (shifting) - * o new interior edge midpoints - * o new interior face midpoints - */ - for (x=1; xnumVerts, 1, fx-1), - FACE_getIFCo(f, nextLvl, (S+1)%f->numVerts, 1, fx+1), - FACE_getIFCo(f, nextLvl, S, fx+1, +1), - FACE_getIFCo(f, nextLvl, S, fx-1, +1)); - - VertDataAvg4(r, FACE_getIECo(f, nextLvl, S, fx-1), - FACE_getIECo(f, nextLvl, S, fx+1), - FACE_getIFCo(f, nextLvl, (S+1)%f->numVerts, 1, fx), - FACE_getIFCo(f, nextLvl, S, fx, 1)); - - VertDataCopy(nCo, co); - VertDataSub(nCo, q); - VertDataMulN(nCo, 0.25f); - VertDataAdd(nCo, r); - } + #pragma omp critical + { + CCGSUBSURF_free(ss, q); + CCGSUBSURF_free(ss, r); } } @@ -1740,13 +1763,19 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss, edgeSize = 1 + (1<<(nextLvl)); gridSize = 1 + (1<<((nextLvl)-1)); cornerIdx = gridSize-1; + + #pragma omp parallel for private(i) schedule(static) for (i=0; iv0, nextLvl)); VertDataCopy(EDGE_getCo(e, nextLvl, edgeSize-1), VERT_getCo(e->v1, nextLvl)); } + + #pragma omp parallel for private(i) schedule(static) for (i=0; inumVerts; S++) { CCGEdge *e = FACE_getEdges(f)[S]; CCGEdge *prevE = FACE_getEdges(f)[(S+f->numVerts-1)%f->numVerts]; diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index a709b45f60c..69659db3ba7 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -248,39 +248,45 @@ void multiresModifier_del_levels(struct MultiresModifierData *mmd, struct Object int lvl = multires_get_level(ob, mmd, 0); int levels = mmd->totlvl - lvl; MDisps *mdisps; - + CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); mdisps= CustomData_get_layer(&me->fdata, CD_MDISPS); multires_force_update(ob); if(mdisps && levels > 0 && direction == 1) { - int nsize = multires_side_tot[lvl]; - int hsize = multires_side_tot[mmd->totlvl]; - int i; + if(lvl > 0) { + int nsize = multires_side_tot[lvl]; + int hsize = multires_side_tot[mmd->totlvl]; + int i; - for(i = 0; i < me->totface; ++i) { - MDisps *mdisp= &mdisps[i]; - float (*disps)[3], (*ndisps)[3], (*hdisps)[3]; - int nvert = (me->mface[i].v4)? 4: 3; - int totdisp = multires_grid_tot[lvl]*nvert; - int S; + for(i = 0; i < me->totface; ++i) { + MDisps *mdisp= &mdisps[i]; + float (*disps)[3], (*ndisps)[3], (*hdisps)[3]; + int nvert = (me->mface[i].v4)? 4: 3; + int totdisp = multires_grid_tot[lvl]*nvert; + int S; - disps = MEM_callocN(sizeof(float) * 3 * totdisp, "multires disps"); + disps = MEM_callocN(sizeof(float) * 3 * totdisp, "multires disps"); - ndisps = disps; - hdisps = mdisp->disps; + ndisps = disps; + hdisps = mdisp->disps; - for(S = 0; S < nvert; S++) { - multires_copy_grid(ndisps, hdisps, nsize, hsize); + for(S = 0; S < nvert; S++) { + multires_copy_grid(ndisps, hdisps, nsize, hsize); - ndisps += nsize*nsize; - hdisps += hsize*hsize; - } + ndisps += nsize*nsize; + hdisps += hsize*hsize; + } - MEM_freeN(mdisp->disps); - mdisp->disps = disps; - mdisp->totdisp = totdisp; + MEM_freeN(mdisp->disps); + mdisp->disps = disps; + mdisp->totdisp = totdisp; + } + } + else { + CustomData_external_remove(&me->fdata, CD_MDISPS, me->totface); + CustomData_free_layer_active(&me->fdata, CD_MDISPS, me->totface); } } @@ -409,105 +415,27 @@ void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int updat multires_set_tot_level(ob, mmd, totlvl); } -static void grid_adjacent_rotate(int rotation, int gridSize, int *x, int *y) -{ - /* we rotate (rotation * 90°) counterclockwise around center */ - int nx, ny; - - switch(rotation) { - case 0: nx = *x; ny = *y; break; - case 1: nx = *y; ny = *x; break; - case 2: nx = *x; ny = *y; break; //gridSize - 1 - *x; ny = gridSize - 1 - *y; break; - case 3: nx = *y; ny = *x; break; - } - - *x = nx; - *y = ny; -} - -static void grid_adjacent_jump(DMGridAdjacency *adj, int gridSize, int *index, int *x, int *y) -{ - if(*x < 0) { - if(adj->index[3] == -1) { - /* no adjacent grid, clamp */ - *x = 0; - } - else { - /* jump to adjacent grid */ - *index = adj->index[3]; - *x += gridSize; - grid_adjacent_rotate(adj->rotation[3], gridSize, x, y); - } - } - else if(*x >= gridSize) { - if(adj->index[1] == -1) { - /* no adjacent grid, take a step back */ - *x = gridSize - 1; - } - else { - /* jump to adjacent grid */ - *index = adj->index[1]; - *x -= gridSize; - grid_adjacent_rotate(adj->rotation[1], gridSize, x, y); - } - } - else if(*y < 0) { - if(adj->index[0] == -1) { - /* no adjacent grid, clamp */ - *y = 0; - } - else { - /* jump to adjacent grid */ - *index = adj->index[0]; - *y += gridSize; - grid_adjacent_rotate(adj->rotation[0], gridSize, x, y); - } - } - else if(*y >= gridSize) { - if(adj->index[2] == -1) { - /* no adjacent grid, take a step back */ - *y = gridSize - 1; - } - else { - /* jump to adjacent grid */ - *index = adj->index[2]; - *y -= gridSize; - grid_adjacent_rotate(adj->rotation[2], gridSize, x, y); - } - } -} - -static void grid_tangent(DMGridAdjacency *adj, int gridSize, int index, int x, int y, int axis, DMGridData **gridData, float t[3]) +static void grid_tangent(int gridSize, int index, int x, int y, int axis, DMGridData **gridData, float t[3]) { - int jindex = index, jx = x, jy = y; - if(axis == 0) { - if(adj->index[1] == -1 && x == gridSize - 1) { - if(adj->index[2] == -1 && y == gridSize - 1) + if(x == gridSize - 1) { + if(y == gridSize - 1) sub_v3_v3v3(t, gridData[index][x + gridSize*(y - 1)].co, gridData[index][x - 1 + gridSize*(y - 1)].co); else sub_v3_v3v3(t, gridData[index][x + gridSize*y].co, gridData[index][x - 1 + gridSize*y].co); } - else { - jx += 1; - grid_adjacent_jump(adj, gridSize, &jindex, &jx, &jy); - sub_v3_v3v3(t, gridData[jindex][jx + gridSize*jy].co, gridData[index][x + gridSize*y].co); - } + else + sub_v3_v3v3(t, gridData[index][x + 1 + gridSize*y].co, gridData[index][x + gridSize*y].co); } else if(axis == 1) { - if(adj->index[2] == -1 && y == gridSize - 1) { - if(adj->index[1] == -1 && x == gridSize - 1) { + if(y == gridSize - 1) { + if(x == gridSize - 1) sub_v3_v3v3(t, gridData[index][x - 1 + gridSize*y].co, gridData[index][x - 1 + gridSize*(y - 1)].co); - } - else { + else sub_v3_v3v3(t, gridData[index][x + gridSize*y].co, gridData[index][x + gridSize*(y - 1)].co); - } - } - else { - jy += 1; - grid_adjacent_jump(adj, gridSize, &jindex, &jx, &jy); - sub_v3_v3v3(t, gridData[jindex][jx + gridSize*jy].co, gridData[index][x + gridSize*y].co); } + else + sub_v3_v3v3(t, gridData[index][x + gridSize*(y + 1)].co, gridData[index][x + gridSize*y].co); } } @@ -515,28 +443,36 @@ static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, int invert, int { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*)dm; DMGridData **gridData, **subGridData; - DMGridAdjacency *gridAdjacency; MFace *mface = me->mface; MDisps *mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS); - int i, S, x, y, numGrids, gIndex, gridSize, dGridSize, dSkip; + int *gridOffset; + int i, numGrids, gridSize, dGridSize, dSkip; numGrids = dm->getNumGrids(dm); gridSize = dm->getGridSize(dm); gridData = dm->getGridData(dm); - gridAdjacency = dm->getGridAdjacency(dm); + gridOffset = dm->getGridOffset(dm); subGridData = (oldGridData)? oldGridData: gridData; dGridSize = multires_side_tot[totlvl]; dSkip = (dGridSize-1)/(gridSize-1); - for(gIndex = 0, i = 0; i < me->totface; ++i) { + #pragma omp parallel for private(i) schedule(static) + for(i = 0; i < me->totface; ++i) { const int numVerts = mface[i].v4 ? 4 : 3; MDisps *mdisp = &mdisps[i]; + int S, x, y, gIndex = gridOffset[i]; + + /* when adding new faces in edit mode, need to allocate disps */ + if(!mdisp->disps) + #pragma omp critical + { + multires_reallocate_mdisps(me, mdisps, totlvl); + } for(S = 0; S < numVerts; ++S, ++gIndex) { DMGridData *grid = gridData[gIndex]; DMGridData *subgrid = subGridData[gIndex]; - DMGridAdjacency *adj = &gridAdjacency[gIndex]; float (*dispgrid)[3] = &mdisp->disps[S*dGridSize*dGridSize]; for(y = 0; y < gridSize; y++) { @@ -548,12 +484,16 @@ static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, int invert, int float mat[3][3], tx[3], ty[3], disp[3], d[3]; /* construct tangent space matrix */ - grid_tangent(adj, gridSize, gIndex, x, y, 0, subGridData, tx); + grid_tangent(gridSize, gIndex, x, y, 0, subGridData, tx); normalize_v3(tx); - grid_tangent(adj, gridSize, gIndex, x, y, 1, subGridData, ty); + grid_tangent(gridSize, gIndex, x, y, 1, subGridData, ty); normalize_v3(ty); + //mul_v3_fl(tx, 1.0f/(gridSize-1)); + //mul_v3_fl(ty, 1.0f/(gridSize-1)); + //cross_v3_v3v3(no, tx, ty); + column_vectors_to_mat3(mat, tx, ty, no); if(!invert) { diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 716229e6ead..c9d84670044 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1894,6 +1894,7 @@ static void ccgDM_release(DerivedMesh *dm) { if(ccgdm->gridFaces) MEM_freeN(ccgdm->gridFaces); if(ccgdm->gridData) MEM_freeN(ccgdm->gridData); if(ccgdm->gridAdjacency) MEM_freeN(ccgdm->gridAdjacency); + if(ccgdm->gridOffset) MEM_freeN(ccgdm->gridOffset); if(ccgdm->freeSS) ccgSubSurf_free(ccgdm->ss); MEM_freeN(ccgdm->edgeFlags); MEM_freeN(ccgdm->faceFlags); @@ -2112,7 +2113,7 @@ static void ccgdm_create_grids(DerivedMesh *dm) ccgdm->gridData = gridData; ccgdm->gridFaces = gridFaces; ccgdm->gridAdjacency = gridAdjacency; - MEM_freeN(gridOffset); + ccgdm->gridOffset = gridOffset; } static DMGridData **ccgDM_getGridData(DerivedMesh *dm) @@ -2131,6 +2132,14 @@ static DMGridAdjacency *ccgDM_getGridAdjacency(DerivedMesh *dm) return ccgdm->gridAdjacency; } +static int *ccgDM_getGridOffset(DerivedMesh *dm) +{ + CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; + + ccgdm_create_grids(dm); + return ccgdm->gridOffset; +} + static struct PBVH *ccgDM_getPBVH(Object *ob, DerivedMesh *dm) { CCGDerivedMesh *ccgdm= (CCGDerivedMesh*)dm; @@ -2209,6 +2218,7 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, ccgdm->dm.getGridSize = ccgDM_getGridSize; ccgdm->dm.getGridData = ccgDM_getGridData; ccgdm->dm.getGridAdjacency = ccgDM_getGridAdjacency; + ccgdm->dm.getGridOffset = ccgDM_getGridOffset; ccgdm->dm.getPBVH = ccgDM_getPBVH; ccgdm->dm.getVertCos = ccgdm_getVertCos; diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 7644751d61e..b39a2912c02 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1726,12 +1726,17 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou SculptSession *ss= vc->obact->sculpt; StrokeCache *cache= ss->cache; float ray_start[3], ray_normal[3]; + float obimat[4][4]; float mval[2] = {mouse[0] - vc->ar->winrct.xmin, mouse[1] - vc->ar->winrct.ymin}; SculptRaycastData srd; viewray(vc->ar, vc->v3d, mval, ray_start, ray_normal); + invert_m4_m4(obimat, ss->ob->obmat); + mul_m4_v3(obimat, ray_start); + mul_mat3_m4_v3(obimat, ray_normal); + srd.ss = vc->obact->sculpt; srd.ray_start = ray_start; srd.ray_normal = ray_normal; diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 9db7f9b1ce9..4c55f759e47 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -379,14 +379,10 @@ void GPU_drawobject_free( DerivedMesh *dm ) dm->drawObject = 0; } -/* Convenience struct for building the VBO. - TODO: check that (lack-of) padding is OK, - also check performance of short vs float for normals */ +/* Convenience struct for building the VBO. */ typedef struct { float co[3]; short no[3]; - - char pad[14]; } VertexBufferFormat; typedef struct { -- cgit v1.2.3 From e4a97d67b62d169ef97f9b17ed739154cff62e70 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 3 Dec 2009 19:18:00 +0000 Subject: Make toggle and hold snap method cohabit nicely. Shift-Tab toggles the global toolsetting snap settings (both in and out of transform). Holding down Ctrl inverts the snap setting in transform (turns it on when global snap is off and vice versa). Ctrl-Shift-Tab to select snap mode (only outside of transform for now). For old (pre 2.5) behavior, just keep global snap off and use Ctrl. NOTE: transform modal events for snap have change a bit, saved keymap might not work anymore. --- source/blender/editors/transform/transform.c | 21 +-- source/blender/editors/transform/transform.h | 15 +- .../editors/transform/transform_constraints.c | 2 +- source/blender/editors/transform/transform_ops.c | 6 +- source/blender/editors/transform/transform_snap.c | 155 +++++++++++---------- 5 files changed, 105 insertions(+), 94 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index ffc6ea86835..1b450e48e31 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -507,8 +507,8 @@ static char *transform_to_undostr(TransInfo *t) #define TFM_MODAL_TRANSLATE 3 #define TFM_MODAL_ROTATE 4 #define TFM_MODAL_RESIZE 5 -#define TFM_MODAL_SNAP_ON 6 -#define TFM_MODAL_SNAP_OFF 7 +#define TFM_MODAL_SNAP_INV_ON 6 +#define TFM_MODAL_SNAP_INV_OFF 7 #define TFM_MODAL_SNAP_TOGGLE 8 #define TFM_MODAL_AXIS_X 9 #define TFM_MODAL_AXIS_Y 10 @@ -529,8 +529,8 @@ void transform_modal_keymap(wmKeyConfig *keyconf) {TFM_MODAL_TRANSLATE, "TRANSLATE", 0, "Translate", ""}, {TFM_MODAL_ROTATE, "ROTATE", 0, "Rotate", ""}, {TFM_MODAL_RESIZE, "RESIZE", 0, "Resize", ""}, - {TFM_MODAL_SNAP_ON, "SNAP_ON", 0, "Snap On", ""}, - {TFM_MODAL_SNAP_OFF, "SNAP_OFF", 0, "Snap Off", ""}, + {TFM_MODAL_SNAP_INV_ON, "SNAP_INV_ON", 0, "Invert Snap On", ""}, + {TFM_MODAL_SNAP_INV_OFF, "SNAP_INV_OFF", 0, "Invert Snap Off", ""}, {TFM_MODAL_SNAP_TOGGLE, "SNAP_TOGGLE", 0, "Snap Toggle", ""}, {TFM_MODAL_AXIS_X, "AXIS_X", 0, "Orientation X axis", ""}, {TFM_MODAL_AXIS_Y, "AXIS_Y", 0, "Orientation Y axis", ""}, @@ -560,7 +560,10 @@ void transform_modal_keymap(wmKeyConfig *keyconf) WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, TFM_MODAL_ROTATE); WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, 0, 0, TFM_MODAL_RESIZE); - WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_CLICK, KM_ANY, 0, TFM_MODAL_SNAP_TOGGLE); + WM_modalkeymap_add_item(keymap, TABKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_SNAP_TOGGLE); + + WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_SNAP_INV_ON); + WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_SNAP_INV_OFF); WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, TFM_MODAL_ADD_SNAP); WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ALT, 0, TFM_MODAL_REMOVE_SNAP); @@ -651,12 +654,12 @@ int transformEvent(TransInfo *t, wmEvent *event) } break; - case TFM_MODAL_SNAP_ON: - t->modifiers |= MOD_SNAP; + case TFM_MODAL_SNAP_INV_ON: + t->modifiers |= MOD_SNAP_INVERT; t->redraw = 1; break; - case TFM_MODAL_SNAP_OFF: - t->modifiers &= ~MOD_SNAP; + case TFM_MODAL_SNAP_INV_OFF: + t->modifiers &= ~MOD_SNAP_INVERT; t->redraw = 1; break; case TFM_MODAL_SNAP_TOGGLE: diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 1577c05cc88..d51cf9c864b 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -91,8 +91,8 @@ typedef struct TransSnapPoint { typedef struct TransSnap { short mode; + short target; short modePoint; - short modeTarget; short modeSelect; short align; short project; @@ -382,7 +382,8 @@ typedef struct TransInfo { #define MOD_CONSTRAINT_SELECT 0x01 #define MOD_PRECISION 0x02 #define MOD_SNAP 0x04 -#define MOD_CONSTRAINT_PLANE 0x08 +#define MOD_SNAP_INVERT 0x08 +#define MOD_CONSTRAINT_PLANE 0x10 /* ******************************************************************************** */ @@ -427,13 +428,6 @@ typedef struct TransInfo { #define POINT_INIT 4 #define MULTI_POINTS 8 -/* transsnap->modeTarget */ -#define SNAP_CLOSEST 0 -#define SNAP_CENTER 1 -#define SNAP_MEDIAN 2 -#define SNAP_ACTIVE 3 - - void TFM_OT_transform(struct wmOperatorType *ot); int initTransform(struct bContext *C, struct TransInfo *t, struct wmOperator *op, struct wmEvent *event, int mode); @@ -597,6 +591,9 @@ typedef enum { void snapGrid(TransInfo *t, float *val); void snapGridAction(TransInfo *t, float *val, GearsType action); +int activeSnap(TransInfo *t); +int validSnap(TransInfo *t); + void initSnapping(struct TransInfo *t, struct wmOperator *op); void applyProject(TransInfo *t); void applySnapping(TransInfo *t, float *vec); diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index 1a810d4adc3..1f42d9411f1 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -290,7 +290,7 @@ static void applyAxisConstraintVec(TransInfo *t, TransData *td, float in[3], flo mul_m3_v3(t->con.pmtx, out); // With snap, a projection is alright, no need to correct for view alignment - if (!(t->tsnap.mode != SCE_SNAP_MODE_INCREMENT && t->modifiers & MOD_SNAP)) { + if (!(t->tsnap.mode != SCE_SNAP_MODE_INCREMENT && activeSnap(t))) { if (getConstraintSpaceDimension(t) == 2) { if (out[0] != 0.0f || out[1] != 0.0f || out[2] != 0.0f) { planeProjection(t, in, out); diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 6ab2982b51e..ad4462a74cf 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -784,10 +784,10 @@ void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *ke km = WM_keymap_add_item(keymap, "TFM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); - km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", LEFTCTRLKEY, KM_CLICK, 0, 0); + km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(km->ptr, "path", "scene.tool_settings.snap"); - km = WM_keymap_add_item(keymap, "TFM_OT_snap_type", LEFTCTRLKEY, KM_CLICK, KM_SHIFT, 0); + km = WM_keymap_add_item(keymap, "TFM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CLICK, 0); break; case SPACE_ACTION: @@ -861,7 +861,7 @@ void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *ke km = WM_keymap_add_item(keymap, "TFM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); - km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", LEFTCTRLKEY, KM_CLICK, 0, 0); + km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(km->ptr, "path", "scene.tool_settings.snap"); break; default: diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index ae28986017f..b8ea49110fc 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -90,7 +90,7 @@ /********************* PROTOTYPES ***********************/ -void setSnappingCallback(TransInfo *t, short snap_target); +void setSnappingCallback(TransInfo *t); void ApplySnapTranslation(TransInfo *t, float vec[3]); void ApplySnapRotation(TransInfo *t, float *vec); @@ -123,15 +123,20 @@ int BIF_snappingSupported(Object *obedit) return status; } -int validSnap(TransInfo *t) { +int validSnap(TransInfo *t) +{ return (t->tsnap.status & (POINT_INIT|TARGET_INIT)) == (POINT_INIT|TARGET_INIT) || (t->tsnap.status & (MULTI_POINTS|TARGET_INIT)) == (MULTI_POINTS|TARGET_INIT); } +int activeSnap(TransInfo *t) +{ + return (t->modifiers & (MOD_SNAP|MOD_SNAP_INVERT)) == MOD_SNAP || (t->modifiers & (MOD_SNAP|MOD_SNAP_INVERT)) == MOD_SNAP_INVERT; +} + void drawSnapping(const struct bContext *C, TransInfo *t) { - if (validSnap(t) && - (t->modifiers & MOD_SNAP)) + if (validSnap(t) && activeSnap(t)) { char col[4] = {1, 0, 1}; @@ -232,7 +237,7 @@ int handleSnapping(TransInfo *t, wmEvent *event) void applyProject(TransInfo *t) { /* XXX FLICKER IN OBJECT MODE */ - if ((t->tsnap.project) && (t->modifiers & MOD_SNAP) && (t->modifiers & MOD_SNAP)) + if ((t->tsnap.project) && activeSnap(t)) { TransData *td = t->data; float tvec[3]; @@ -268,7 +273,7 @@ void applyProject(TransInfo *t) project_float(t->ar, iloc, mval); - if (snapObjectsTransform(t, mval, &dist, loc, no, t->tsnap.modeTarget)) + if (snapObjectsTransform(t, mval, &dist, loc, no, t->tsnap.target)) { // if(t->flag & (T_EDIT|T_POSE)) { // mul_m4_v3(imat, loc); @@ -298,8 +303,7 @@ void applySnapping(TransInfo *t, float *vec) t->tsnap.applySnap(t, vec); } - else if ((t->tsnap.mode != SCE_SNAP_MODE_INCREMENT) && - (t->modifiers & MOD_SNAP)) + else if ((t->tsnap.mode != SCE_SNAP_MODE_INCREMENT) && activeSnap(t)) { double current = PIL_check_seconds_timer(); @@ -325,7 +329,7 @@ void resetSnapping(TransInfo *t) t->tsnap.align = 0; t->tsnap.mode = 0; t->tsnap.modeSelect = 0; - t->tsnap.modeTarget = 0; + t->tsnap.target = 0; t->tsnap.last = 0; t->tsnap.applySnap = NULL; @@ -352,11 +356,67 @@ int validSnappingNormal(TransInfo *t) return 0; } -void initSnapping(TransInfo *t, wmOperator *op) +void initSnappingMode(TransInfo *t) { ToolSettings *ts = t->settings; Object *obedit = t->obedit; Scene *scene = t->scene; + + resetSnapping(t); + + /* force project off when not supported */ + if (ts->snap_mode != SCE_SNAP_MODE_FACE) + { + t->tsnap.project = 0; + } + + t->tsnap.mode = ts->snap_mode; + + if ((t->spacetype == SPACE_VIEW3D || t->spacetype == SPACE_IMAGE) && // Only 3D view or UV + (t->flag & T_CAMERA) == 0) { // Not with camera selected in camera view + setSnappingCallback(t); + + /* Edit mode */ + if (t->tsnap.applySnap != NULL && // A snapping function actually exist + (obedit != NULL && ELEM3(obedit->type, OB_MESH, OB_ARMATURE, OB_CURVE)) ) // Temporary limited to edit mode meshes, armature, curves + { + if (t->flag & T_PROP_EDIT) + { + t->tsnap.modeSelect = SNAP_NOT_OBEDIT; + } + else + { + t->tsnap.modeSelect = SNAP_ALL; + } + } + /* Particles edit mode*/ + else if (t->tsnap.applySnap != NULL && // A snapping function actually exist + (obedit == NULL && BASACT && BASACT->object && BASACT->object->mode & OB_MODE_PARTICLE_EDIT )) + { + t->tsnap.modeSelect = SNAP_ALL; + } + /* Object mode */ + else if (t->tsnap.applySnap != NULL && // A snapping function actually exist + (obedit == NULL) ) // Object Mode + { + t->tsnap.modeSelect = SNAP_NOT_SELECTED; + } + else + { + /* Grid if snap is not possible */ + t->tsnap.mode = SCE_SNAP_MODE_INCREMENT; + } + } + else + { + /* Always grid outside of 3D view */ + t->tsnap.mode = SCE_SNAP_MODE_INCREMENT; + } +} + +void initSnapping(TransInfo *t, wmOperator *op) +{ + ToolSettings *ts = t->settings; short snap_target = t->settings->snap_target; resetSnapping(t); @@ -405,76 +465,27 @@ void initSnapping(TransInfo *t, wmOperator *op) t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT); } - /* force project off when not supported */ - if (ts->snap_mode != SCE_SNAP_MODE_FACE) - { - t->tsnap.project = 0; - } - - t->tsnap.mode = ts->snap_mode; + t->tsnap.target = snap_target; - if ((t->spacetype == SPACE_VIEW3D || t->spacetype == SPACE_IMAGE) && // Only 3D view or UV - (t->flag & T_CAMERA) == 0) { // Not with camera selected in camera view - setSnappingCallback(t, snap_target); - - /* Edit mode */ - if (t->tsnap.applySnap != NULL && // A snapping function actually exist - (obedit != NULL && ELEM3(obedit->type, OB_MESH, OB_ARMATURE, OB_CURVE)) ) // Temporary limited to edit mode meshes, armature, curves - { - if (t->flag & T_PROP_EDIT) - { - t->tsnap.modeSelect = SNAP_NOT_OBEDIT; - } - else - { - t->tsnap.modeSelect = SNAP_ALL; - } - } - /* Particles edit mode*/ - else if (t->tsnap.applySnap != NULL && // A snapping function actually exist - (obedit == NULL && BASACT && BASACT->object && BASACT->object->mode & OB_MODE_PARTICLE_EDIT )) - { - t->tsnap.modeSelect = SNAP_ALL; - } - /* Object mode */ - else if (t->tsnap.applySnap != NULL && // A snapping function actually exist - (obedit == NULL) ) // Object Mode - { - t->tsnap.modeSelect = SNAP_NOT_SELECTED; - } - else - { - /* Grid if snap is not possible */ - t->tsnap.mode = SCE_SNAP_MODE_INCREMENT; - } - } - else - { - /* Always grid outside of 3D view */ - t->tsnap.mode = SCE_SNAP_MODE_INCREMENT; - } + initSnappingMode(t); } -void setSnappingCallback(TransInfo *t, short snap_target) +void setSnappingCallback(TransInfo *t) { t->tsnap.calcSnap = CalcSnapGeometry; - switch(snap_target) + switch(t->tsnap.target) { case SCE_SNAP_TARGET_CLOSEST: - t->tsnap.modeTarget = SNAP_CLOSEST; t->tsnap.targetSnap = TargetSnapClosest; break; case SCE_SNAP_TARGET_CENTER: - t->tsnap.modeTarget = SNAP_CENTER; t->tsnap.targetSnap = TargetSnapCenter; break; case SCE_SNAP_TARGET_MEDIAN: - t->tsnap.modeTarget = SNAP_MEDIAN; t->tsnap.targetSnap = TargetSnapMedian; break; case SCE_SNAP_TARGET_ACTIVE: - t->tsnap.modeTarget = SNAP_ACTIVE; t->tsnap.targetSnap = TargetSnapActive; break; @@ -491,8 +502,8 @@ void setSnappingCallback(TransInfo *t, short snap_target) t->tsnap.distance = RotationBetween; // Can't do TARGET_CENTER with rotation, use TARGET_MEDIAN instead - if (snap_target == SCE_SNAP_TARGET_CENTER) { - t->tsnap.modeTarget = SNAP_MEDIAN; + if (t->tsnap.target == SCE_SNAP_TARGET_CENTER) { + t->tsnap.target = SCE_SNAP_TARGET_MEDIAN; t->tsnap.targetSnap = TargetSnapMedian; } break; @@ -501,8 +512,8 @@ void setSnappingCallback(TransInfo *t, short snap_target) t->tsnap.distance = ResizeBetween; // Can't do TARGET_CENTER with resize, use TARGET_MEDIAN instead - if (snap_target == SCE_SNAP_TARGET_CENTER) { - t->tsnap.modeTarget = SNAP_MEDIAN; + if (t->tsnap.target == SCE_SNAP_TARGET_CENTER) { + t->tsnap.target = SCE_SNAP_TARGET_MEDIAN; t->tsnap.targetSnap = TargetSnapMedian; } break; @@ -569,7 +580,7 @@ void ApplySnapTranslation(TransInfo *t, float vec[3]) void ApplySnapRotation(TransInfo *t, float *vec) { - if (t->tsnap.modeTarget == SNAP_CLOSEST) { + if (t->tsnap.target == SCE_SNAP_TARGET_CLOSEST) { *vec = t->tsnap.dist; } else { @@ -581,7 +592,7 @@ void ApplySnapRotation(TransInfo *t, float *vec) void ApplySnapResize(TransInfo *t, float vec[3]) { - if (t->tsnap.modeTarget == SNAP_CLOSEST) { + if (t->tsnap.target == SCE_SNAP_TARGET_CLOSEST) { vec[0] = vec[1] = vec[2] = t->tsnap.dist; } else { @@ -887,7 +898,7 @@ void TargetSnapActive(TransInfo *t) /* No active, default to median */ else { - t->tsnap.modeTarget = SNAP_MEDIAN; + t->tsnap.target = SCE_SNAP_TARGET_MEDIAN; t->tsnap.targetSnap = TargetSnapMedian; TargetSnapMedian(t); } @@ -1907,10 +1918,10 @@ void snapGrid(TransInfo *t, float *val) { invert = U.flag & USER_AUTOGRABGRID; if(invert) { - action = (t->modifiers & MOD_SNAP) ? NO_GEARS: BIG_GEARS; + action = activeSnap(t) ? NO_GEARS: BIG_GEARS; } else { - action = (t->modifiers & MOD_SNAP) ? BIG_GEARS : NO_GEARS; + action = activeSnap(t) ? BIG_GEARS : NO_GEARS; } if (action == BIG_GEARS && (t->modifiers & MOD_PRECISION)) { -- cgit v1.2.3 From a4d8c4a7452669d56a7b7a21b50f96f00d783e0e Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 3 Dec 2009 21:49:29 +0000 Subject: Fix for [#20240] Image inputs to the compositor are white when using color management was missing include --- source/blender/imbuf/intern/divers.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/divers.c b/source/blender/imbuf/intern/divers.c index e84a9302bbf..35be1f716e6 100644 --- a/source/blender/imbuf/intern/divers.c +++ b/source/blender/imbuf/intern/divers.c @@ -31,6 +31,7 @@ #include "BLI_blenlib.h" #include "BLI_rand.h" +#include "BLI_math.h" #include "imbuf.h" #include "imbuf_patch.h" -- cgit v1.2.3 From 3b0e182f716b2541fc77fe3b4bac18a529143c29 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 3 Dec 2009 21:53:01 +0000 Subject: - property decorators for setting attributes didnt work, hack to prevent every instance of an BPyStructRNA to have its own dictionary, set the tp_dictoffset to 0. attempted to use __slots__ but this doesnt work for some reason. - made bone.length writable --- source/blender/makesdna/DNA_action_types.h | 2 +- source/blender/python/intern/bpy_rna.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 5f6d8ef375a..0dc24f31a7b 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -244,7 +244,7 @@ typedef enum eRotationModes { * though there is a define for it (hack for the outliner). */ typedef struct bPose { - ListBase chanbase; /* list of pose channels */ + ListBase chanbase; /* list of pose channels, PoseBones in RNA */ short flag, proxy_layer; /* proxy layer: copy from armature, gets synced */ diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index fd5e1ddf75c..e657cfc79e2 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1738,19 +1738,22 @@ static int pyrna_struct_setattro( BPy_StructRNA *self, PyObject *pyname, PyObjec PropertyRNA *prop = RNA_struct_find_property(&self->ptr, name); if (prop==NULL) { + return PyObject_GenericSetAttr((PyObject *)self, pyname, value); +#if 0 // XXX - This currently allows anything to be assigned to an rna prop, need to see how this should be used // but for now it makes porting scripts confusing since it fails silently. // edit: allowing this for setting classes internal attributes. // edit: allow this for any attribute that alredy exists as a python attr if ( (name[0]=='_' /* || pyrna_struct_pydict_contains(self, pyname) */ ) && !BPy_StructRNA_CheckExact(self) && - PyObject_GenericSetAttr((PyObject *)self, pyname, value) >= 0) { + return 0; } else { PyErr_Format( PyExc_AttributeError, "StructRNA - Attribute \"%.200s\" not found", name); return -1; } +#endif } if (!RNA_property_editable(&self->ptr, prop)) { @@ -2984,6 +2987,9 @@ static PyObject* pyrna_srna_ExternalType(StructRNA *srna) PyObject *base_compare= pyrna_srna_PyBase(srna); PyObject *bases= PyObject_GetAttrString(newclass, "__bases__"); + // XXX - highly dodgy!, this stops blender from creating __dict__ in instances + ((PyTypeObject *)newclass)->tp_dictoffset = 0; + if(PyTuple_GET_SIZE(bases)) { PyObject *base= PyTuple_GET_ITEM(bases, 0); @@ -3039,6 +3045,9 @@ static PyObject* pyrna_srna_Subtype(StructRNA *srna) if (newclass) { + // XXX - highly dodgy!, this stops blender from creating __dict__ in instances + ((PyTypeObject *)newclass)->tp_dictoffset = 0; + /* srna owns one, and the other is owned by the caller */ pyrna_subtype_set_rna(newclass, srna); -- cgit v1.2.3 From 18b465b7498544dfbb98d39a7e6afa72e0bed8a8 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 3 Dec 2009 21:56:04 +0000 Subject: Finish renaming job in Set Center operator to use Origin instead of Center. Also replace ObData by Geometry and Object Geometry after talk with Matt. --- source/blender/editors/object/object_intern.h | 2 +- source/blender/editors/object/object_ops.c | 4 ++-- source/blender/editors/object/object_transform.c | 18 +++++++++--------- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index ebd8261f207..c87210d6070 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -53,7 +53,7 @@ void OBJECT_OT_visual_transform_apply(struct wmOperatorType *ot); void OBJECT_OT_location_apply(struct wmOperatorType *ot); void OBJECT_OT_scale_apply(struct wmOperatorType *ot); void OBJECT_OT_rotation_apply(struct wmOperatorType *ot); -void OBJECT_OT_center_set(struct wmOperatorType *ot); +void OBJECT_OT_origin_set(struct wmOperatorType *ot); /* object_relations.c */ void OBJECT_OT_parent_set(struct wmOperatorType *ot); diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 8d407b0e571..49c947f52c8 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -71,7 +71,7 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_location_apply); WM_operatortype_append(OBJECT_OT_scale_apply); WM_operatortype_append(OBJECT_OT_rotation_apply); - WM_operatortype_append(OBJECT_OT_center_set); + WM_operatortype_append(OBJECT_OT_origin_set); WM_operatortype_append(OBJECT_OT_mode_set); WM_operatortype_append(OBJECT_OT_editmode_toggle); @@ -251,7 +251,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) RNA_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT); RNA_boolean_set(kmi->ptr, "toggle", 1); - WM_keymap_add_item(keymap, "OBJECT_OT_center_set", CKEY, KM_PRESS, KM_ALT|KM_SHIFT|KM_CTRL, 0); + WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT|KM_SHIFT|KM_CTRL, 0); /* Object Mode ---------------------------------------------------------------- */ /* Note: this keymap gets disabled in non-objectmode, */ diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index 19157c6aa6a..d990df72c0d 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -695,14 +695,14 @@ void texspace_edit(Scene *scene, View3D *v3d) /********************* Set Object Center ************************/ static EnumPropertyItem prop_set_center_types[] = { - {0, "CENTER", 0, "ObData to Centroi", "Move object data to Object centroid"}, - {1, "CENTER_NEW", 0, "Centroid to ObData", "Move Object centroid to center of object data"}, - {2, "CENTER_CURSOR", 0, "Centroid to 3D Cursor", "Move Object centroid to position of the 3d cursor"}, + {0, "GEOMETRY_ORIGIN", 0, "Geometry to Origin", "Move object geometry to object origin"}, + {1, "ORIGIN_GEOMETRY", 0, "Origin to Geometry", "Move object origin to center of object geometry"}, + {2, "ORIGIN_CURSOR", 0, "Origin to 3D Cursor", "Move object origin to position of the 3d cursor"}, {0, NULL, 0, NULL, NULL} }; /* 0 == do center, 1 == center new, 2 == center cursor */ -static int object_center_set_exec(bContext *C, wmOperator *op) +static int object_origin_set_exec(bContext *C, wmOperator *op) { Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); @@ -1026,16 +1026,16 @@ static int object_center_set_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void OBJECT_OT_center_set(wmOperatorType *ot) +void OBJECT_OT_origin_set(wmOperatorType *ot) { /* identifiers */ - ot->name= "Set Center"; - ot->description = "Set the object's center, by either moving the data, or set to center of data, or use 3d cursor"; - ot->idname= "OBJECT_OT_center_set"; + ot->name= "Set Origin"; + ot->description = "Set the object's origin, by either moving the data, or set to center of data, or use 3d cursor"; + ot->idname= "OBJECT_OT_origin_set"; /* api callbacks */ ot->invoke= WM_menu_invoke; - ot->exec= object_center_set_exec; + ot->exec= object_origin_set_exec; ot->poll= ED_operator_view3d_active; -- cgit v1.2.3 From 1757b06e8861272e394e3def7cdd90d3c5d87a7d Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 3 Dec 2009 22:48:00 +0000 Subject: Only set baking progress function to cursor when a window is present. This enables baking in background mode (instead of just crashing). --- .../blender/editors/physics/physics_pointcache.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c index 78728ae9eb0..784bc1ca30c 100644 --- a/source/blender/editors/physics/physics_pointcache.c +++ b/source/blender/editors/physics/physics_pointcache.c @@ -83,6 +83,7 @@ static int ptcache_poll(bContext *C) static int ptcache_bake_all_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); + wmWindow *win = CTX_wm_window(C); PTCacheBaker baker; @@ -94,8 +95,14 @@ static int ptcache_bake_all_exec(bContext *C, wmOperator *op) baker.quick_step = 1; baker.break_test = cache_break_test; baker.break_data = NULL; - baker.progressbar = (void (*)(void *, int))WM_timecursor; - baker.progresscontext = CTX_wm_window(C); + + if (win) { + baker.progressbar = (void (*)(void *, int))WM_timecursor; + baker.progresscontext = win; + } else { + baker.progressbar = NULL; + baker.progresscontext = NULL; + } BKE_ptcache_make_cache(&baker); @@ -156,6 +163,7 @@ void PTCACHE_OT_free_bake_all(wmOperatorType *ot) static int ptcache_bake_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); + wmWindow *win = CTX_wm_window(C); PointerRNA ptr= CTX_data_pointer_get_type(C, "PointCache", &RNA_PointCache); Object *ob= ptr.id.data; PointCache *cache= ptr.data; @@ -178,8 +186,14 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op) baker.quick_step = 1; baker.break_test = cache_break_test; baker.break_data = NULL; - baker.progressbar = (void (*)(void *, int))WM_timecursor; - baker.progresscontext = CTX_wm_window(C); + + if (win) { + baker.progressbar = (void (*)(void *, int))WM_timecursor; + baker.progresscontext = win; + } else { + baker.progressbar = NULL; + baker.progresscontext = NULL; + } BKE_ptcache_make_cache(&baker); -- cgit v1.2.3 From 688c4aa1de3d707d43a4b7b1ca5c5ae2fbcd3ced Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 4 Dec 2009 00:49:02 +0000 Subject: Fix for [#19478] Shortkeys for switch to Quad view mode is not working changed default quad view shortcut to Ctrl Alt Q --- source/blender/editors/screen/screen_ops.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 4a002088c3d..7780f3e5068 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1997,7 +1997,7 @@ static void SCREEN_OT_redo_last(wmOperatorType *ot) /* ************** region four-split operator ***************************** */ /* insert a region in the area region list */ -static int region_foursplit_exec(bContext *C, wmOperator *op) +static int region_quadview_exec(bContext *C, wmOperator *op) { ARegion *ar= CTX_wm_region(C); @@ -2069,16 +2069,16 @@ static int region_foursplit_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -static void SCREEN_OT_region_foursplit(wmOperatorType *ot) +static void SCREEN_OT_region_quadview(wmOperatorType *ot) { /* identifiers */ ot->name= "Toggle Quad View"; ot->description= "Split selected area into camera, front, right & top views."; - ot->idname= "SCREEN_OT_region_foursplit"; + ot->idname= "SCREEN_OT_region_quadview"; /* api callbacks */ // ot->invoke= WM_operator_confirm; - ot->exec= region_foursplit_exec; + ot->exec= region_quadview_exec; ot->poll= ED_operator_areaactive; ot->flag= 0; } @@ -3653,7 +3653,7 @@ void ED_operatortypes_screen(void) WM_operatortype_append(SCREEN_OT_area_join); WM_operatortype_append(SCREEN_OT_area_dupli); WM_operatortype_append(SCREEN_OT_area_swap); - WM_operatortype_append(SCREEN_OT_region_foursplit); + WM_operatortype_append(SCREEN_OT_region_quadview); WM_operatortype_append(SCREEN_OT_region_scale); WM_operatortype_append(SCREEN_OT_region_flip); WM_operatortype_append(SCREEN_OT_header_flip); @@ -3758,7 +3758,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SCREEN_OT_screencast", F3KEY, KM_PRESS, KM_ALT, 0); /* tests */ - WM_keymap_add_item(keymap, "SCREEN_OT_region_foursplit", SKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); + WM_keymap_add_item(keymap, "SCREEN_OT_region_quadview", QKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_repeat_history", F3KEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SCREEN_OT_repeat_last", RKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_region_flip", F5KEY, KM_PRESS, 0, 0); -- cgit v1.2.3 From ae7cf1df8f09b1ab888e69644b664698e9e2aeff Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 4 Dec 2009 01:21:55 +0000 Subject: Partial fix for [#19874] can use RMB to cancel joining areas, same as splitting --- source/blender/editors/screen/screen_ops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 7780f3e5068..afee27cd0f3 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1851,7 +1851,8 @@ static int area_join_modal(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } break; - + + case RIGHTMOUSE: case ESCKEY: return area_join_cancel(C, op); } -- cgit v1.2.3 From b1a1a0f135f1f32551aea766c9faeb6f07875970 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Fri, 4 Dec 2009 01:25:43 +0000 Subject: Cleaning: update a couple of functions to use scene from context instead of from screen. --- source/blender/blenkernel/BKE_screen.h | 3 ++- source/blender/blenkernel/intern/depsgraph.c | 2 +- source/blender/blenkernel/intern/screen.c | 17 ++++++++--------- source/blender/editors/screen/screen_edit.c | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h index 39a90fe3074..bf01ef0ec60 100644 --- a/source/blender/blenkernel/BKE_screen.h +++ b/source/blender/blenkernel/BKE_screen.h @@ -41,6 +41,7 @@ struct Header; struct Menu; struct ScrArea; struct SpaceType; +struct Scene; struct wmNotifier; struct wmWindow; struct wmWindowManager; @@ -233,7 +234,7 @@ void BKE_screen_area_free(struct ScrArea *sa); /* screen */ void free_screen(struct bScreen *sc); -unsigned int BKE_screen_visible_layers(struct bScreen *screen); +unsigned int BKE_screen_visible_layers(struct bScreen *screen, struct Scene *scene); #endif diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 302b81f2a04..8535bfc6d0c 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -2155,7 +2155,7 @@ static void dag_current_scene_layers(Main *bmain, Scene **sce, unsigned int *lay for(win=wm->windows.first; win; win=win->next) { if(win->screen) { if(!*sce) *sce= win->screen->scene; - *lay |= BKE_screen_visible_layers(win->screen); + *lay |= BKE_screen_visible_layers(win->screen, win->screen->scene); } } } diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c index 459db96dbfb..0dc6bf359f6 100644 --- a/source/blender/blenkernel/intern/screen.c +++ b/source/blender/blenkernel/intern/screen.c @@ -318,21 +318,20 @@ void free_screen(bScreen *sc) } /* for depsgraph */ -unsigned int BKE_screen_visible_layers(bScreen *screen) +unsigned int BKE_screen_visible_layers(bScreen *screen, Scene *scene) { ScrArea *sa; unsigned int layer= 0; - if(!screen) - return layer; - - /* get all used view3d layers */ - for(sa= screen->areabase.first; sa; sa= sa->next) - if(sa->spacetype==SPACE_VIEW3D) - layer |= ((View3D *)sa->spacedata.first)->lay; + if(screen) { + /* get all used view3d layers */ + for(sa= screen->areabase.first; sa; sa= sa->next) + if(sa->spacetype==SPACE_VIEW3D) + layer |= ((View3D *)sa->spacedata.first)->lay; + } if(!layer) - return screen->scene->lay; + return scene->lay; return layer; } diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index c158901c15d..b0d1557a66f 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1614,13 +1614,13 @@ void ED_screen_animation_timer_update(bContext *C, int redraws) void ED_update_for_newframe(const bContext *C, int mute) { bScreen *screen= CTX_wm_screen(C); - Scene *scene= screen->scene; + Scene *scene= CTX_data_scene(C); //extern void audiostream_scrub(unsigned int frame); /* seqaudio.c */ /* this function applies the changes too */ /* XXX future: do all windows */ - scene_update_for_newframe(scene, BKE_screen_visible_layers(screen)); /* BKE_scene.h */ + scene_update_for_newframe(scene, BKE_screen_visible_layers(screen, scene)); /* BKE_scene.h */ //if ( (CFRA>1) && (!mute) && (scene->r.audio.flag & AUDIO_SCRUB)) // audiostream_scrub( CFRA ); -- cgit v1.2.3 From 77aacc6ce437dbe526fe08e12a6f68a16d7e2c30 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Fri, 4 Dec 2009 01:26:42 +0000 Subject: Print baking progress to console when window is not available. --- source/blender/editors/physics/physics_pointcache.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c index 784bc1ca30c..9973c38bb41 100644 --- a/source/blender/editors/physics/physics_pointcache.c +++ b/source/blender/editors/physics/physics_pointcache.c @@ -80,6 +80,17 @@ static int ptcache_poll(bContext *C) return (ptr.data && ptr.id.data); } +void bake_console_progress(void *arg, int nr) +{ + printf("\rbake: %3i%%", nr); + fflush(stdout); + + /* endline for last report */ + if (nr == 100) { + printf("\n"); + } +} + static int ptcache_bake_all_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); @@ -100,7 +111,7 @@ static int ptcache_bake_all_exec(bContext *C, wmOperator *op) baker.progressbar = (void (*)(void *, int))WM_timecursor; baker.progresscontext = win; } else { - baker.progressbar = NULL; + baker.progressbar = bake_console_progress; baker.progresscontext = NULL; } @@ -191,7 +202,8 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op) baker.progressbar = (void (*)(void *, int))WM_timecursor; baker.progresscontext = win; } else { - baker.progressbar = NULL; + printf("\n"); /* empty first line before console reports */ + baker.progressbar = bake_console_progress; baker.progresscontext = NULL; } -- cgit v1.2.3 From 30d752502b0c6c19a7045e771da5431436a0b259 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 4 Dec 2009 01:38:36 +0000 Subject: Fix for [#19884] Curve resolution slider not affecting anything --- source/blender/makesrna/intern/rna_curve.c | 36 ++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 2925fe55a56..faef93247d9 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -229,6 +229,38 @@ static void rna_Curve_update_deps(bContext *C, PointerRNA *ptr) rna_Curve_update_data(C, ptr); } +static void rna_Curve_resolution_u_update_data(bContext *C, PointerRNA *ptr) +{ + Curve *cu= (Curve*)ptr->id.data; + Nurb *nu=NULL; + + if (cu->editnurb) nu= cu->editnurb->first; + else nu=cu->nurb.first; + + while(nu) { + nu->resolu= cu->resolu; + nu= nu->next; + } + + rna_Curve_update_data(C, ptr); +} + +static void rna_Curve_resolution_v_update_data(bContext *C, PointerRNA *ptr) +{ + Curve *cu= (Curve*)ptr->id.data; + Nurb *nu=NULL; + + if (cu->editnurb) nu= cu->editnurb->first; + else nu=cu->nurb.first; + + while(nu) { + nu->resolv= cu->resolv; + nu= nu->next; + } + + rna_Curve_update_data(C, ptr); +} + /* name functions that ignore the first two ID characters */ void rna_Curve_body_get(PointerRNA *ptr, char *value) { @@ -792,13 +824,13 @@ static void rna_def_curve(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "resolu"); RNA_def_property_ui_range(prop, 1, 1024, 1, 0); RNA_def_property_ui_text(prop, "Resolution U", "Surface resolution in U direction."); - RNA_def_property_update(prop, 0, "rna_Curve_update_data"); + RNA_def_property_update(prop, 0, "rna_Curve_resolution_u_update_data"); prop= RNA_def_property(srna, "resolution_v", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "resolv"); RNA_def_property_ui_range(prop, 1, 1024, 1, 0); RNA_def_property_ui_text(prop, "Resolution V", "Surface resolution in V direction."); - RNA_def_property_update(prop, 0, "rna_Curve_update_data"); + RNA_def_property_update(prop, 0, "rna_Curve_resolution_v_update_data"); prop= RNA_def_property(srna, "render_resolution_u", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "resolu_ren"); -- cgit v1.2.3 From a9b9993414e0b2b6154fae78c7bbce4f5fdb20f8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 4 Dec 2009 02:32:34 +0000 Subject: rna function editbone.align(vector), to align the bones z axis to a localspace direction. finished leg rig pose mode data --- source/blender/editors/armature/editarmature.c | 24 ++++++--- source/blender/makesrna/intern/makesrna.c | 2 +- source/blender/makesrna/intern/rna_armature.c | 2 + source/blender/makesrna/intern/rna_armature_api.c | 66 +++++++++++++++++++++++ source/blender/makesrna/intern/rna_internal.h | 1 + 5 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 source/blender/makesrna/intern/rna_armature_api.c (limited to 'source/blender') diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index a9efe4be9cb..4564ec49477 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -2026,7 +2026,7 @@ float ED_rollBoneToVector(EditBone *bone, float new_up_axis[3]) /* Set roll value for given bone -> Z-Axis Point up (original method) */ -void auto_align_ebone_zaxisup(Scene *scene, View3D *v3d, EditBone *ebone) +static void auto_align_ebone_zaxisup(Scene *scene, View3D *v3d, EditBone *ebone) { float delta[3], curmat[3][3]; float xaxis[3]={1.0f, 0.0f, 0.0f}, yaxis[3], zaxis[3]={0.0f, 0.0f, 1.0f}; @@ -2054,16 +2054,13 @@ void auto_align_ebone_zaxisup(Scene *scene, View3D *v3d, EditBone *ebone) mat3_to_vec_roll(diffmat, delta, &ebone->roll); } -/* Set roll value for given bone -> Z-Axis point towards cursor */ -void auto_align_ebone_tocursor(Scene *scene, View3D *v3d, EditBone *ebone) +void auto_align_ebone_topoint(EditBone *ebone, float *cursor) { - Object *obedit= scene->obedit; // XXX get from context - float *cursor= give_cursor(scene, v3d); float delta[3], curmat[3][3]; float mat[4][4], tmat[4][4], imat[4][4]; float rmat[4][4], rot[3]; float vec[3]; - + /* find the current bone matrix as a 4x4 matrix (in Armature Space) */ sub_v3_v3v3(delta, ebone->tail, ebone->head); vec_roll_to_mat3(delta, ebone->roll, curmat); @@ -2071,8 +2068,7 @@ void auto_align_ebone_tocursor(Scene *scene, View3D *v3d, EditBone *ebone) VECCOPY(mat[3], ebone->head); /* multiply bone-matrix by object matrix (so that bone-matrix is in WorldSpace) */ - mul_m4_m4m4(tmat, mat, obedit->obmat); - invert_m4_m4(imat, tmat); + invert_m4_m4(imat, mat); /* find position of cursor relative to bone */ mul_v3_m4v3(vec, imat, cursor); @@ -2093,6 +2089,18 @@ void auto_align_ebone_tocursor(Scene *scene, View3D *v3d, EditBone *ebone) } } +static void auto_align_ebone_tocursor(Scene *scene, View3D *v3d, EditBone *ebone) +{ + float cursor_local[3]; + float *cursor= give_cursor(scene, v3d); + float imat[3][3]; + + copy_m3_m4(imat, scene->obedit->obmat); + invert_m3(imat); + copy_v3_v3(cursor_local, cursor); + mul_m3_v3(imat, cursor_local); + auto_align_ebone_topoint(ebone, cursor_local); +} static EnumPropertyItem prop_calc_roll_types[] = { {0, "GLOBALUP", 0, "Z-Axis Up", ""}, diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 543e1f3ecc0..037b866edba 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -1984,7 +1984,7 @@ RNAProcessItem PROCESS_ITEMS[]= { {"rna_action.c", "rna_action_api.c", RNA_def_action}, {"rna_animation.c", "rna_animation_api.c", RNA_def_animation}, {"rna_actuator.c", NULL, RNA_def_actuator}, - {"rna_armature.c", NULL, RNA_def_armature}, + {"rna_armature.c", "rna_armature_api.c", RNA_def_armature}, {"rna_boid.c", NULL, RNA_def_boid}, {"rna_brush.c", NULL, RNA_def_brush}, {"rna_camera.c", NULL, RNA_def_camera}, diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 0a5445d2642..371f14be753 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -618,6 +618,8 @@ static void rna_def_edit_bone(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Tail Selected", ""); RNA_def_property_update(prop, 0, "rna_Armature_redraw_data"); + RNA_api_armature_edit_bone(srna); + RNA_define_verify_sdna(1); } diff --git a/source/blender/makesrna/intern/rna_armature_api.c b/source/blender/makesrna/intern/rna_armature_api.c new file mode 100644 index 00000000000..31bd7275487 --- /dev/null +++ b/source/blender/makesrna/intern/rna_armature_api.c @@ -0,0 +1,66 @@ +/** + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2009 Blender Foundation. + * All rights reserved. + * + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include +#include +#include + +#include "RNA_define.h" +#include "RNA_types.h" + +#ifdef RNA_RUNTIME + +#include + +#include "BLI_blenlib.h" + +#include "ED_armature.h" + +void rna_EditBone_align(EditBone *ebo, float *no) +{ + if(!is_zero_v3(no)) { + float normal[3]; + copy_v3_v3(normal, no); + normalize_v3(normal); + ebo->roll= ED_rollBoneToVector(ebo, normal); + } +} + +#else + +void RNA_api_armature_edit_bone(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + func= RNA_def_function(srna, "align", "rna_EditBone_align"); + RNA_def_function_ui_description(func, "Align the bone to a localspace vector."); + parm= RNA_def_float_vector(func, "vector", 3, NULL, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX); + RNA_def_property_flag(parm, PROP_REQUIRED); +} + +#endif diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 64af7e07fd5..52945b67275 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -204,6 +204,7 @@ char *rna_TextureSlot_path(struct PointerRNA *ptr); /* API functions */ void RNA_api_action(StructRNA *srna); +void RNA_api_armature_edit_bone(StructRNA *srna); void RNA_api_drivers(StructRNA *srna); void RNA_api_image(struct StructRNA *srna); void RNA_api_keyconfig(struct StructRNA *srna); -- cgit v1.2.3 From 45955fef18c57a5d5633b88e823a9bb9d86b38e4 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 4 Dec 2009 03:51:52 +0000 Subject: Bugfixes: Deleting Keyframes + F-Curves This commit fixes #19908 and #20239. Deleting keyframes will now delete the F-Curves they came from too, if the F-Curves don't have any more keyframes and/or F-Modifiers providing any further motion info. --- .../blender/editors/animation/anim_channels_edit.c | 59 +++++++++++++--------- .../blender/editors/animation/keyframes_general.c | 8 --- source/blender/editors/animation/keyframing.c | 10 ++-- source/blender/editors/include/ED_anim_api.h | 4 ++ source/blender/editors/space_action/action_edit.c | 15 ++++-- source/blender/editors/space_graph/graph_edit.c | 10 +++- 6 files changed, 64 insertions(+), 42 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 5842f476bc6..4be9cb2cd9d 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -86,9 +86,9 @@ #include "WM_types.h" /* ************************************************************************** */ -/* CHANNELS API */ +/* CHANNELS API - Exposed API */ -/* -------------------------- Exposed API ----------------------------------- */ +/* -------------------------- Selection ------------------------------------- */ /* Set the given animation-channel as the active one for the active context */ // TODO: extend for animdata types... @@ -352,6 +352,8 @@ void ANIM_deselect_anim_channels (void *data, short datatype, short test, short BLI_freelistN(&anim_data); } +/* ---------------------------- Graph Editor ------------------------------------- */ + /* Flush visibility (for Graph Editor) changes up/down hierarchy for changes in the given setting * - anim_data: list of the all the anim channels that can be chosen * -> filtered using ANIMFILTER_CHANNELS only, since if we took VISIBLE too, @@ -452,6 +454,35 @@ void ANIM_visibility_flush_anim_channels (bAnimContext *ac, ListBase *anim_data, } } +/* -------------------------- F-Curves ------------------------------------- */ + +/* Delete the given F-Curve from its AnimData block */ +void ANIM_fcurve_delete_from_animdata (bAnimContext *ac, AnimData *adt, FCurve *fcu) +{ + /* - if no AnimData, we've got nowhere to remove the F-Curve from + * (this doesn't guarantee that the F-Curve is in there, but at least we tried + * - if no F-Curve, there is nothing to remove + */ + if (ELEM(NULL, adt, fcu)) + return; + + /* remove from whatever list it came from + * - Action Group + * - Action + * - Drivers + * - TODO... some others? + */ + if (fcu->grp) + action_groups_remove_channel(adt->action, fcu); + else if ((ac) && (ac->datatype == ANIMCONT_DRIVERS)) + BLI_remlink(&adt->drivers, fcu); + else if (adt->action) + BLI_remlink(&adt->action->curves, fcu); + + /* free the F-Curve itself */ + free_fcurve(fcu); +} + /* ************************************************************************** */ /* OPERATORS */ @@ -945,28 +976,8 @@ static int animchannels_delete_exec(bContext *C, wmOperator *op) AnimData *adt= ale->adt; FCurve *fcu= (FCurve *)ale->data; - /* if no AnimData, we've got nowhere to remove the F-Curve from */ - if (adt == NULL) - continue; - - /* remove from whatever list it came from - * - Action Group - * - Action - * - Drivers - * - TODO... some others? - * - * note: this isn't well tested, we could also try remove - * from all lists just to be safe - campbell - */ - if (fcu->grp) - action_groups_remove_channel(adt->action, fcu); - else if (ac.datatype == ANIMCONT_DRIVERS) - BLI_remlink(&adt->drivers, fcu); - else if (adt->action) - BLI_remlink(&adt->action->curves, fcu); - - /* free the F-Curve itself */ - free_fcurve(fcu); + /* try to free F-Curve */ + ANIM_fcurve_delete_from_animdata(&ac, adt, fcu); } } diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c index 9d3fc7a0fc4..3b717bafc70 100644 --- a/source/blender/editors/animation/keyframes_general.c +++ b/source/blender/editors/animation/keyframes_general.c @@ -110,14 +110,6 @@ void delete_fcurve_keys(FCurve *fcu) MEM_freeN(fcu->bezt); fcu->bezt= NULL; } - -#if 0 // XXX for now, we don't get rid of empty curves... - /* Only delete if there isn't an ipo-driver still hanging around on an empty curve */ - if ((icu->totvert==0) && (icu->driver==NULL)) { - BLI_remlink(&ipo->curve, icu); - free_ipo_curve(icu); - } -#endif } /* ---------------- */ diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 8628e2c506a..3bfb8bdc867 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -863,6 +863,7 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_ */ short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag) { + AnimData *adt= BKE_animdata_from_id(id); FCurve *fcu = NULL; /* get F-Curve @@ -871,7 +872,6 @@ short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_ */ if (act == NULL) { /* if no action is provided, use the default one attached to this ID-block */ - AnimData *adt= BKE_animdata_from_id(id); act= adt->action; /* apply NLA-mapping to frame to use (if applicable) */ @@ -913,11 +913,9 @@ short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_ /* delete the key at the index (will sanity check + do recalc afterwards) */ delete_fcurve_key(fcu, i, 1); - /* Only delete curve too if there are no points (we don't need to check for drivers, as they're kept separate) */ - if (fcu->totvert == 0) { - BLI_remlink(&act->curves, fcu); - free_fcurve(fcu); - } + /* Only delete curve too if it won't be doing anything anymore */ + if ((fcu->totvert == 0) && (list_has_suitable_fmodifier(&fcu->modifiers, 0, FMI_TYPE_GENERATE_CURVE) == 0)) + ANIM_fcurve_delete_from_animdata(NULL, adt, fcu); /* return success */ return 1; diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 8a73e12f39b..c9c4c7af18c 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -394,6 +394,10 @@ void ANIM_deselect_anim_channels(void *data, short datatype, short test, short s /* Set the 'active' channel of type channel_type, in the given action */ void ANIM_set_active_channel(bAnimContext *ac, void *data, short datatype, int filter, void *channel_data, short channel_type); + +/* Delete the F-Curve from the given AnimData block (if possible), as appropriate according to animation context */ +void ANIM_fcurve_delete_from_animdata(bAnimContext *ac, struct AnimData *adt, struct FCurve *fcu); + /* ************************************************ */ /* DRAWING API */ /* anim_draw.c */ diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 1ba837afba3..22f5f1757c9 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -613,10 +613,19 @@ static void delete_action_keys (bAnimContext *ac) /* loop through filtered data and delete selected keys */ for (ale= anim_data.first; ale; ale= ale->next) { - //if (ale->type == ANIMTYPE_GPLAYER) - // delete_gplayer_frames((bGPDlayer *)ale->data); + if (ale->type != ANIMTYPE_GPLAYER) { + FCurve *fcu= (FCurve *)ale->key_data; + AnimData *adt= ale->adt; + + /* delete selected keyframes only */ + delete_fcurve_keys(fcu); + + /* Only delete curve too if it won't be doing anything anymore */ + if ((fcu->totvert == 0) && (list_has_suitable_fmodifier(&fcu->modifiers, 0, FMI_TYPE_GENERATE_CURVE) == 0)) + ANIM_fcurve_delete_from_animdata(ac, ale->adt, fcu); + } //else - delete_fcurve_keys((FCurve *)ale->key_data); // XXX... this doesn't delete empty curves anymore + // delete_gplayer_frames((bGPDlayer *)ale->data); } /* free filtered list */ diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 381d5becb1e..f20ebcc67b9 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -792,7 +792,15 @@ static void delete_graph_keys (bAnimContext *ac) /* loop through filtered data and delete selected keys */ for (ale= anim_data.first; ale; ale= ale->next) { - delete_fcurve_keys((FCurve *)ale->key_data); // XXX... this doesn't delete empty curves anymore + FCurve *fcu= (FCurve *)ale->key_data; + AnimData *adt= ale->adt; + + /* delete selected keyframes only */ + delete_fcurve_keys(fcu); + + /* Only delete curve too if it won't be doing anything anymore */ + if ((fcu->totvert == 0) && (list_has_suitable_fmodifier(&fcu->modifiers, 0, FMI_TYPE_GENERATE_CURVE) == 0)) + ANIM_fcurve_delete_from_animdata(ac, ale->adt, fcu); } /* free filtered list */ -- cgit v1.2.3 From a358b6386d8022f71160ccdb714e596ec63670a6 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 4 Dec 2009 04:28:50 +0000 Subject: * Fix for incorrect disabling after baking cloth sim * Fix for time cursor getting 'stuck' after baking point caches --- source/blender/blenkernel/BKE_pointcache.h | 1 + source/blender/blenkernel/intern/pointcache.c | 4 +++- source/blender/editors/physics/physics_pointcache.c | 4 ++++ source/blender/editors/space_view3d/drawobject.c | 1 - source/blender/windowmanager/intern/wm_cursors.c | 2 +- 5 files changed, 9 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_pointcache.h b/source/blender/blenkernel/BKE_pointcache.h index 5ae10d736fd..4b26eaa6d76 100644 --- a/source/blender/blenkernel/BKE_pointcache.h +++ b/source/blender/blenkernel/BKE_pointcache.h @@ -151,6 +151,7 @@ typedef struct PTCacheBaker { int (*break_test)(void *data); void *break_data; void (*progressbar)(void *data, int num); + void (*progressend)(void *data); void *progresscontext; } PTCacheBaker; diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index c2798b4a746..cc7b942a6bb 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -2232,6 +2232,7 @@ void BKE_ptcache_quick_cache_all(Scene *scene) baker.break_test=NULL; baker.pid=NULL; baker.progressbar=NULL; + baker.progressend=NULL; baker.progresscontext=NULL; baker.render=0; baker.anim_init = 0; @@ -2360,6 +2361,7 @@ void BKE_ptcache_make_cache(PTCacheBaker* baker) if(baker->break_test && baker->break_test(baker->break_data)) break; } + baker->progressend(baker->progresscontext); /* clear baking flag */ if(pid) { @@ -2400,7 +2402,7 @@ void BKE_ptcache_make_cache(PTCacheBaker* baker) scene->r.framelen = frameleno; CFRA = cfrao; - + if(bake) /* already on cfra unless baking */ scene_update_for_newframe(scene, scene->lay); diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c index 9973c38bb41..a931e27bc83 100644 --- a/source/blender/editors/physics/physics_pointcache.c +++ b/source/blender/editors/physics/physics_pointcache.c @@ -109,9 +109,11 @@ static int ptcache_bake_all_exec(bContext *C, wmOperator *op) if (win) { baker.progressbar = (void (*)(void *, int))WM_timecursor; + baker.progressend = (void (*)(void *))WM_cursor_restore; baker.progresscontext = win; } else { baker.progressbar = bake_console_progress; + baker.progressend = NULL; baker.progresscontext = NULL; } @@ -200,10 +202,12 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op) if (win) { baker.progressbar = (void (*)(void *, int))WM_timecursor; + baker.progressend = (void (*)(void *))WM_cursor_restore; baker.progresscontext = win; } else { printf("\n"); /* empty first line before console reports */ baker.progressbar = bake_console_progress; + baker.progressend = NULL; baker.progresscontext = NULL; } diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 8592a5455c2..f60f4ad9230 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -4174,7 +4174,6 @@ static void draw_ptcache_edit(Scene *scene, View3D *v3d, RegionView3D *rv3d, Obj ParticleEditSettings *pset = PE_settings(scene); int i, k, totpoint = edit->totpoint, timed = pset->flag & PE_FADE_TIME ? pset->fade_frames : 0; int steps=1; - char nosel[4], sel[4]; float sel_col[3]; float nosel_col[3]; float *pathcol = NULL, *pcol; diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c index 7decf7b2ed2..95a1de96115 100644 --- a/source/blender/windowmanager/intern/wm_cursors.c +++ b/source/blender/windowmanager/intern/wm_cursors.c @@ -212,7 +212,7 @@ void WM_timecursor(wmWindow *win, int nr) unsigned char bitmap[16][2]; int i, idx; - if(win->lastcursor != 0) + if(win->lastcursor == 0) win->lastcursor= win->cursor; memset(&bitmap, 0x00, sizeof(bitmap)); -- cgit v1.2.3 From cbfb8fbd7f530661ab51cdc59cbb116ecb2bd236 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 4 Dec 2009 04:41:32 +0000 Subject: Fix for [#19921] pressing NumpadDot on isolated mode centers the 3D cursor --- source/blender/editors/space_view3d/view3d_edit.c | 4 ---- source/blender/editors/space_view3d/view3d_ops.c | 13 ------------- 2 files changed, 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 9737e0cb167..844ee2973ce 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1208,10 +1208,6 @@ static int viewcenter_exec(bContext *C, wmOperator *op) /* like a localview with new_dist*= size; } - v3d->cursor[0]= -new_ofs[0]; - v3d->cursor[1]= -new_ofs[1]; - v3d->cursor[2]= -new_ofs[2]; - if (rv3d->persp==RV3D_CAMOB) { rv3d->persp= RV3D_PERSP; smooth_view(C, v3d->camera, NULL, new_ofs, NULL, &new_dist, NULL); diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 62672dc19bc..3b60d4d555f 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -180,19 +180,6 @@ void view3d_keymap(wmKeyConfig *keyconf) kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT|KM_CTRL, 0); RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM); RNA_boolean_set(kmi->ptr, "align_active", TRUE); - - - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD2, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPDOWN); - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT); - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD4, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPLEFT); - WM_keymap_add_item(keymap, "VIEW3D_OT_view_persportho", PAD5, KM_PRESS, 0, 0); - - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD6, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPRIGHT); - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_TOP); - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD8, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPUP); - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_BACK); - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_LEFT); - RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_BOTTOM); WM_keymap_add_item(keymap, "VIEW3D_OT_localview", PADSLASHKEY, KM_PRESS, 0, 0); -- cgit v1.2.3 From e31f3e63cdafd92010179e528b0db31a0a32a27b Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 4 Dec 2009 04:56:42 +0000 Subject: Fix for [#19958] Changes in UV/Image editor doesn't refresh mapping on mesh in 3dview immediately Enabled 'update automatically' (lock) in image editors by default Also enabled transform manipulators by default, unfortunately missed for alpha 0 release. --- source/blender/editors/datafiles/B.blend.c | 16536 +++++++++++---------- source/blender/editors/space_image/space_image.c | 3 +- 2 files changed, 8324 insertions(+), 8215 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/B.blend.c b/source/blender/editors/datafiles/B.blend.c index d6cdfa31539..9ee3b8d72fa 100644 --- a/source/blender/editors/datafiles/B.blend.c +++ b/source/blender/editors/datafiles/B.blend.c @@ -1,5469 +1,4963 @@ /* DataToC output of file */ -int datatoc_B_blend_size= 316960; +int datatoc_B_blend_size= 320428; char datatoc_B_blend[]= { - - 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 53, 48, 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 76, 79, 66, 24, 1, 0, 0,224,236,191, 95,255,127, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 55, - 7, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1, 96, 4,155, 26, 1, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 16, 0, 0, -128, 32, 4, 0, 60,109,101,109,111,114,121, 50, 62, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,224,237,191, 95, -255,127, 0, 0, 84,192, 21, 4, 1, 0, 0, 0,112,237,191, 95,255,127, 0, 0,178,153,120, 0, 1, 0, 0, 0, 80,237,191, 95, -255,127, 0, 0,208, 70, 23, 4, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0,144,213,158, 26, 1, 0, 0, 0,144,237,191, 95, -255,127, 0, 0, 48,192, 21, 4, 1, 0, 0, 0,192,237,191, 95,255,127, 0, 0, 41,156,120, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 32, 0, 0, 0, 82, 69, 78, 68,144,213,158, 26, 1, 0, 0, 0, 82, 69, 78, 68, - 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,237,191, 95,255,127, 0, 0, 16,238,191, 95, -255,127, 0, 0, 38,163,120, 0, 1, 0, 0, 0, 16,173,153, 26, 1, 0, 0, 0,144,213,158, 26, 1, 0, 0, 0, 1, 0, 0, 0, -250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 8, 1, 0, 0, 48,176,153, 26, - 1, 0, 0, 0, 97, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,177,153, 26, 1, 0, 0, 0,128,177,153, 26, - 1, 0, 0, 0,128,177,153, 26, 1, 0, 0, 0,128,177,153, 26, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 94, 3, - 1, 0, 0, 0, 0,230, 94, 3, 1, 0, 0, 0, 0,230, 94, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 23,158, 26, - 1, 0, 0, 0, 32, 23,158, 26, 1, 0, 0, 0, 32, 23,158, 26, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,128,177,153, 26, - 1, 0, 0, 0, 98, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,110, 86, 23, - 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96, 4,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101, -101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 66, 4, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 1, 0, 0, 0, 0, 0,240,100, 90, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,161,150, 26, 1, 0, 0, 0,176,213,149, 26, - 1, 0, 0, 0,176,213,149, 26, 1, 0, 0, 0,192, 23,158, 26, 1, 0, 0, 0,128, 24,158, 26, 1, 0, 0, 0, 64, 25,158, 26, - 1, 0, 0, 0, 64, 25,158, 26, 1, 0, 0, 0,192,218, 93, 3, 1, 0, 0, 0, 32, 25,159, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,160,178,153, 26, 1, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0,192,105,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,174,150, 26, 1, 0, 0, 0, 0, 45, 91, 3, 1, 0, 0, 0,240, 70, 95, 3, - 1, 0, 0, 0,112,189,153, 26, 1, 0, 0, 0,208,189,153, 26, 1, 0, 0, 0,224, 87,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,109, 60, 48, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,174,150, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,192, 96, 94, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 96, 94, 3, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,144,170,150, 26, 1, 0, 0, 0,224,174,150, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,170,150, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 16, 12, 94, 3, - 1, 0, 0, 0,192, 96, 94, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 16, 12, 94, 3, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,112, 35, 95, 3, 1, 0, 0, 0,144,170,150, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 35, 95, 3, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0, 16, 12, 94, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 39, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 64,225,149, 26, 1, 0, 0, 0,112, 35, 95, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 39, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,225,149, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,176, 73,224, 25, - 1, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,176, 73,224, 25, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 96, 28,224, 25, 1, 0, 0, 0, 64,225,149, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 39, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96, 28,224, 25, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,112,149,224, 25, 1, 0, 0, 0,176, 73,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 6,200, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,149,224, 25, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,176,181,150, 26, 1, 0, 0, 0, 96, 28,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,200, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,181,150, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 64,192,149, 26, - 1, 0, 0, 0,112,149,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 64,192,149, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 32,112, 90, 3, 1, 0, 0, 0,176,181,150, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,120, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,112, 90, 3, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0, 64,192,149, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,156, 2,120, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,176,166,224, 25, 1, 0, 0, 0, 32,112, 90, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2, 39, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,166,224, 25, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 46, 95, 3, - 1, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 0, 46, 95, 3, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 80,202,224, 25, 1, 0, 0, 0,176,166,224, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,124, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,202,224, 25, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 45, 91, 3, 1, 0, 0, 0, 0, 46, 95, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 6, 68, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0, 45, 91, 3, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,202,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 68, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 70, 95, 3, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,216,224, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 96, 94, 3, 1, 0, 0, 0,144,170,150, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,216,224, 25, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176,179,153, 26, - 1, 0, 0, 0,240, 70, 95, 3, 1, 0, 0, 0,192, 96, 94, 3, 1, 0, 0, 0,112, 35, 95, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,179,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,180,153, 26, - 1, 0, 0, 0,192,216,224, 25, 1, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0,144,170,150, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,180,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,180,153, 26, - 1, 0, 0, 0,176,179,153, 26, 1, 0, 0, 0,112, 35, 95, 3, 1, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,180,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,180,153, 26, - 1, 0, 0, 0, 16,180,153, 26, 1, 0, 0, 0, 64,225,149, 26, 1, 0, 0, 0,224,174,150, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,180,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,181,153, 26, - 1, 0, 0, 0,112,180,153, 26, 1, 0, 0, 0, 16, 12, 94, 3, 1, 0, 0, 0, 64,225,149, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,181,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,181,153, 26, - 1, 0, 0, 0,208,180,153, 26, 1, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0,176, 73,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,181,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,181,153, 26, - 1, 0, 0, 0, 48,181,153, 26, 1, 0, 0, 0, 96, 28,224, 25, 1, 0, 0, 0, 64,225,149, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,181,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,182,153, 26, - 1, 0, 0, 0,144,181,153, 26, 1, 0, 0, 0, 16, 12, 94, 3, 1, 0, 0, 0,112,149,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,182,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176,182,153, 26, - 1, 0, 0, 0,240,181,153, 26, 1, 0, 0, 0, 96, 28,224, 25, 1, 0, 0, 0,112,149,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,182,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,183,153, 26, - 1, 0, 0, 0, 80,182,153, 26, 1, 0, 0, 0,224,174,150, 26, 1, 0, 0, 0,176,181,150, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,183,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,183,153, 26, - 1, 0, 0, 0,176,182,153, 26, 1, 0, 0, 0,176, 73,224, 25, 1, 0, 0, 0, 64,192,149, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,183,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,183,153, 26, - 1, 0, 0, 0, 16,183,153, 26, 1, 0, 0, 0, 64,192,149, 26, 1, 0, 0, 0, 64,225,149, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,183,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,184,153, 26, - 1, 0, 0, 0,112,183,153, 26, 1, 0, 0, 0, 64,192,149, 26, 1, 0, 0, 0,176,181,150, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,184,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,184,153, 26, - 1, 0, 0, 0,208,183,153, 26, 1, 0, 0, 0, 32,112, 90, 3, 1, 0, 0, 0,176,181,150, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,184,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,184,153, 26, - 1, 0, 0, 0, 48,184,153, 26, 1, 0, 0, 0, 32,112, 90, 3, 1, 0, 0, 0, 64,192,149, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,184,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,185,153, 26, - 1, 0, 0, 0,144,184,153, 26, 1, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0,112, 35, 95, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,185,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176,185,153, 26, - 1, 0, 0, 0,240,184,153, 26, 1, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0,176, 73,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,185,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,186,153, 26, - 1, 0, 0, 0, 80,185,153, 26, 1, 0, 0, 0, 32,112, 90, 3, 1, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,186,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,186,153, 26, - 1, 0, 0, 0,176,185,153, 26, 1, 0, 0, 0,176,166,224, 25, 1, 0, 0, 0,176,181,150, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,186,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,186,153, 26, - 1, 0, 0, 0, 16,186,153, 26, 1, 0, 0, 0, 32,112, 90, 3, 1, 0, 0, 0, 0, 46, 95, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,186,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,187,153, 26, - 1, 0, 0, 0,112,186,153, 26, 1, 0, 0, 0, 0, 46, 95, 3, 1, 0, 0, 0,176,166,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,187,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,187,153, 26, - 1, 0, 0, 0,208,186,153, 26, 1, 0, 0, 0, 96, 28,224, 25, 1, 0, 0, 0, 80,202,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,187,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,187,153, 26, - 1, 0, 0, 0, 48,187,153, 26, 1, 0, 0, 0,176, 73,224, 25, 1, 0, 0, 0, 80,202,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,187,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,188,153, 26, - 1, 0, 0, 0,144,187,153, 26, 1, 0, 0, 0, 0, 45, 91, 3, 1, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,188,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176,188,153, 26, - 1, 0, 0, 0,240,187,153, 26, 1, 0, 0, 0, 0, 45, 91, 3, 1, 0, 0, 0,112,149,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,188,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,189,153, 26, - 1, 0, 0, 0, 80,188,153, 26, 1, 0, 0, 0, 0, 45, 91, 3, 1, 0, 0, 0, 80,202,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,189,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,189,153, 26, - 1, 0, 0, 0,176,188,153, 26, 1, 0, 0, 0,112, 35, 95, 3, 1, 0, 0, 0,176,166,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,189,153, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16,189,153, 26, 1, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0, 0, 46, 95, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208,189,153, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,193,153, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 35, 95, 3, 1, 0, 0, 0,192, 96, 94, 3, 1, 0, 0, 0,144,170,150, 26, - 1, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 40, 4, 0, 0, - 66, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 16, 15, 82, 3, 1, 0, 0, 0, 64,105,154, 26, - 1, 0, 0, 0, 64,105,154, 26, 1, 0, 0, 0,176,190,153, 26, 1, 0, 0, 0, 16,192,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,125, 88, 23, 1, 0, 0, 0, 0, 98,159, 25, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,176,190,153, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,192,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 40, 4, 0, 0, 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 16, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 16,192,153, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,190,153, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, - 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 3, 0,112, 7, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 4, 0, 0, 66, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 15, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,112,193,153, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,227,153, 26, 1, 0, 0, 0,208,189,153, 26, - 1, 0, 0, 0, 64,225,149, 26, 1, 0, 0, 0, 96, 28,224, 25, 1, 0, 0, 0,112,149,224, 25, 1, 0, 0, 0, 16, 12, 94, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,199, 1, 0, 0, 4, 4, 80, 1, -200, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 11, 82, 3, 1, 0, 0, 0,240,218,153, 26, 1, 0, 0, 0, 32,226,153, 26, - 1, 0, 0, 0, 80,194,153, 26, 1, 0, 0, 0,176,195,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,157,193, 25, 1, 0, 0, 0,192,212,193, 25, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,194,153, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176,195,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, 31, 0, 80, 1, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,169, 1, 0, 0, -199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 14, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,195,153, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,194,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,159, 67, 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0, 1,128,159, 67, 2,128,203,195, 0, 0, 0, 0, 63, 1, 0, 0, - 80, 1, 0, 0, 18, 0, 0, 0,168, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 62, 1, 0, 0, 18, 0, 0, 0,168, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 80, 1,169, 1, 63, 1,151, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 70, 94, 3, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, -168, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,169, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 12, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16,197,153, 26, 1, 0, 0, 0, 96,217,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,197,153, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,198,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 13, 82, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 63, 1, 36, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,198,153, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,200,153, 26, - 1, 0, 0, 0, 16,197,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, - 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,200,153, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,201,153, 26, 1, 0, 0, 0,160,198,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,201,153, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,203,153, 26, - 1, 0, 0, 0, 48,200,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105, -110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,254, - 63, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 53, 48, + 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 24, 1, 0, 0, +240,236,191, 95,255,127, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 56, 8, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1, +208, 30,165, 29, 1, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 60,109,101,109,111,114,121, 50, + 62, 0, 0, 0, 0, 0, 0, 0, 34,239, 28, 1, 1, 0, 0, 0, 40, 0, 0, 0, 48, 0, 0, 0, 32,238,191, 95,255,127, 0, 0, + 80,237,191, 95,255,127, 0, 0,208,198,223, 28, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 48,147,201, 20, 1, 0, 0, 0, + 45, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0,192,237,191, 95,255,127, 0, 0,245, 3, 94, 0, 1, 0, 0, 0, +160,237,191, 95,255,127, 0, 0,224,237,191, 95,255,127, 0, 0, 32, 0, 0, 0, 82, 69, 78, 68, 48,147,201, 20, 1, 0, 0, 0, + 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 16,238,191, 95,255,127, 0, 0, + 16,238,191, 95,255,127, 0, 0,187, 10, 94, 0, 1, 0, 0, 0, 48,102, 4, 28, 1, 0, 0, 0, 48,147,201, 20, 1, 0, 0, 0, + 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208, 30,165, 29, 1, 0, 0, 0, 87, 77, 0, 0, 8, 1, 0, 0,144, 6,163, 29, 1, 0, 0, 0, 98, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208, 7,163, 29, 1, 0, 0, 0,208, 7,163, 29, 1, 0, 0, 0,208, 7,163, 29, 1, 0, 0, 0, +208, 7,163, 29, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 16,158,162, 21, 1, 0, 0, 0, 64, 69,200, 20, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,160, 21, 1, 0, 0, 0, 32, 73,200, 20, 1, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,220,195, 20, 1, 0, 0, 0, 48,220,195, 20, 1, 0, 0, 0, + 48,220,195, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,125,140, 27, 1, 0, 0, 0, 80,125,140, 27, 1, 0, 0, 0, + 80,125,140, 27, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,208, 7,163, 29, 1, 0, 0, 0, 99, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,235,195, 20, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +208, 30,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 1, 0,238, 3, + 0, 0, 1, 0,255,255, 0, 0, 96,160,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192,165,164, 21, 1, 0, 0, 0,240,165,201, 20, 1, 0, 0, 0,240,165,201, 20, 1, 0, 0, 0, +240,125,140, 27, 1, 0, 0, 0,176,126,140, 27, 1, 0, 0, 0,112,127,140, 27, 1, 0, 0, 0,112,127,140, 27, 1, 0, 0, 0, + 96,103,164, 21, 1, 0, 0, 0, 80,237,200, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 78, 0, 0,208, 0, 0, 0,112,122,163, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,208,190,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116, +105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224,182,162, 29, 1, 0, 0, 0, 16,176, 20, 27, 1, 0, 0, 0, 80,148, 21, 27, 1, 0, 0, 0, 32,132,163, 29, 1, 0, 0, 0, +128,132,163, 29, 1, 0, 0, 0,144, 0,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,182,162, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +240, 77,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112, 2,160, 29, 1, 0, 0, 0, +224,182,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +112, 2,160, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,208,140,162, 21, 1, 0, 0, 0,112, 2,160, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,140,162, 21, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +144,246,142, 27, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64,141,160, 21, 1, 0, 0, 0, +208,140,162, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 64,141,160, 21, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32, 31,142, 27, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 31,142, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0, 64,141,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 6,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 0, 62,142, 27, 1, 0, 0, 0, 32, 31,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,228, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, +160,237,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,228, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +240,185,140, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,240,143, 21, 27, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 6,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,143, 21, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 96, 4,162, 29, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,128, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,142,160, 21, 1, 0, 0, 0, +240,143, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 32,142,160, 21, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, 32,142,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +156, 2,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 16,176, 20, 27, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,116, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 16,176, 20, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176, 5,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 80,148, 21, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,194, 20, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 2,160, 29, 1, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 48,194, 20, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,154, 21, 27, 1, 0, 0, 0, 80,148, 21, 27, 1, 0, 0, 0, +208,140,162, 21, 1, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +224,154, 21, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 3,162, 29, 1, 0, 0, 0, 48,194, 20, 27, 1, 0, 0, 0, +144,246,142, 27, 1, 0, 0, 0,112, 2,160, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 0, 3,162, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 16,162, 29, 1, 0, 0, 0,224,154, 21, 27, 1, 0, 0, 0, +208,140,162, 21, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 0, 16,162, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,123,163, 29, 1, 0, 0, 0, 0, 3,162, 29, 1, 0, 0, 0, + 64,141,160, 21, 1, 0, 0, 0,224,182,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +128,123,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,123,163, 29, 1, 0, 0, 0, 0, 16,162, 29, 1, 0, 0, 0, + 64,141,160, 21, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +224,123,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,124,163, 29, 1, 0, 0, 0,128,123,163, 29, 1, 0, 0, 0, + 32, 31,142, 27, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 64,124,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,124,163, 29, 1, 0, 0, 0,224,123,163, 29, 1, 0, 0, 0, + 64,141,160, 21, 1, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +160,124,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,125,163, 29, 1, 0, 0, 0, 64,124,163, 29, 1, 0, 0, 0, + 0, 62,142, 27, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 0,125,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,125,163, 29, 1, 0, 0, 0,160,124,163, 29, 1, 0, 0, 0, + 0, 62,142, 27, 1, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 96,125,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,125,163, 29, 1, 0, 0, 0, 0,125,163, 29, 1, 0, 0, 0, +240,185,140, 27, 1, 0, 0, 0,224,182,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +192,125,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,126,163, 29, 1, 0, 0, 0, 96,125,163, 29, 1, 0, 0, 0, + 32, 31,142, 27, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 32,126,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,126,163, 29, 1, 0, 0, 0,192,125,163, 29, 1, 0, 0, 0, + 64,141,160, 21, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +128,126,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,126,163, 29, 1, 0, 0, 0, 32,126,163, 29, 1, 0, 0, 0, +240,185,140, 27, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +224,126,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,127,163, 29, 1, 0, 0, 0,128,126,163, 29, 1, 0, 0, 0, +240,143, 21, 27, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 64,127,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,127,163, 29, 1, 0, 0, 0,224,126,163, 29, 1, 0, 0, 0, +240,143, 21, 27, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +160,127,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,128,163, 29, 1, 0, 0, 0, 64,127,163, 29, 1, 0, 0, 0, +208,140,162, 21, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 0,128,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,128,163, 29, 1, 0, 0, 0,160,127,163, 29, 1, 0, 0, 0, + 32, 31,142, 27, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 96,128,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,128,163, 29, 1, 0, 0, 0, 0,128,163, 29, 1, 0, 0, 0, +240,143, 21, 27, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +192,128,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,129,163, 29, 1, 0, 0, 0, 96,128,163, 29, 1, 0, 0, 0, + 32,142,160, 21, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 32,129,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,129,163, 29, 1, 0, 0, 0,192,128,163, 29, 1, 0, 0, 0, +240,143, 21, 27, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +128,129,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,129,163, 29, 1, 0, 0, 0, 32,129,163, 29, 1, 0, 0, 0, + 32,142,160, 21, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +224,129,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,130,163, 29, 1, 0, 0, 0,128,129,163, 29, 1, 0, 0, 0, +160,237,142, 27, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 64,130,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,130,163, 29, 1, 0, 0, 0,224,129,163, 29, 1, 0, 0, 0, + 32, 31,142, 27, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +160,130,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,131,163, 29, 1, 0, 0, 0, 64,130,163, 29, 1, 0, 0, 0, + 16,176, 20, 27, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 0,131,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,131,163, 29, 1, 0, 0, 0,160,130,163, 29, 1, 0, 0, 0, + 16,176, 20, 27, 1, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 96,131,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,131,163, 29, 1, 0, 0, 0, 0,131,163, 29, 1, 0, 0, 0, + 16,176, 20, 27, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +192,131,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,132,163, 29, 1, 0, 0, 0, 96,131,163, 29, 1, 0, 0, 0, + 32,142,160, 21, 1, 0, 0, 0,208,140,162, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 32,132,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,131,163, 29, 1, 0, 0, 0, + 80,164, 21, 27, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +128,132,163, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,136,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,140,162, 21, 1, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0,112, 2,160, 29, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, + 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,112,241,162, 29, 1, 0, 0, 0,112,241,162, 29, 1, 0, 0, 0, + 96,133,163, 29, 1, 0, 0, 0,192,134,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 45,202, 20, 1, 0, 0, 0, 0, 25,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,133,163, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,192,134,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,203,153, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,204,153, 26, 1, 0, 0, 0,192,201,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,134,163, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,133,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, + 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, + 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,136,163, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 16,160,163, 29, 1, 0, 0, 0,128,132,163, 29, 1, 0, 0, 0, 64,141,160, 21, 1, 0, 0, 0, +160,237,142, 27, 1, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 4, 4, 80, 1,228, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,141,217, 2, 1, 0, 0, 0,176,162,163, 29, 1, 0, 0, 0,176,166,163, 29, 1, 0, 0, 0, 0,137,163, 29, 1, 0, 0, 0, + 96,138,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,134,201, 20, 1, 0, 0, 0, + 0,224,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,137,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 96,138,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 80, 1, 31, 0, 80, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,197, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,138,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,137,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,159, 67, 0, 64, 68,196, 0, 0, 0, 0, + 0, 0, 0, 0, 1,128,159, 67, 1,128,217,195, 0, 0, 0, 0, 63, 1, 0, 0, 80, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, + 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0, 80, 1,197, 1, 63, 1,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,129,160, 21, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,197, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32,142,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,139,163, 29, 1, 0, 0, 0, + 32,161,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,139,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 80,141,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,254, 63, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,204,153, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,206,153, 26, - 1, 0, 0, 0, 80,203,153, 26, 1, 0, 0, 0,176,121,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, -101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, - 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,220,255, 63, 1, 36, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,206,153, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,208,153, 26, 1, 0, 0, 0,224,204,153, 26, 1, 0, 0, 0,176,131,159, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 80,141,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,142,163, 29, 1, 0, 0, 0,192,139,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,208,153, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,209,153, 26, - 1, 0, 0, 0,112,206,153, 26, 1, 0, 0, 0,144,133,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, -110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,254, - 63, 1,178, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,142,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +112,144,163, 29, 1, 0, 0, 0, 80,141,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,209,153, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,211,153, 26, 1, 0, 0, 0, 0,208,153, 26, 1, 0, 0, 0,112,138,159, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,254, 63, 1, 58, 0, 20, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 50,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,211,153, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,212,153, 26, - 1, 0, 0, 0,144,209,153, 26, 1, 0, 0, 0, 80,140,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,253, - 63, 1,102, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +112,144,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,146,163, 29, 1, 0, 0, 0,224,142,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95, +115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95, +115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,254, 63, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,212,153, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,214,153, 26, 1, 0, 0, 0, 32,211,153, 26, 1, 0, 0, 0, 48,145,159, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,146,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +144,147,163, 29, 1, 0, 0, 0,112,144,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,253, 63, 1,105, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,153,254, 63, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,214,153, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,215,153, 26, - 1, 0, 0, 0,176,212,153, 26, 1, 0, 0, 0, 0,151,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, -111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,253, - 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +144,147,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32,149,163, 29, 1, 0, 0, 0, 0,146,163, 29, 1, 0, 0, 0, + 32,198, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,215,153, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,217,153, 26, 1, 0, 0, 0, 64,214,153, 26, 1, 0, 0, 0,224,152,159, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,217,153, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,215,153, 26, 1, 0, 0, 0,192,154,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,253, - 63, 1, 0, 0, 20, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,149,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +176,150,163, 29, 1, 0, 0, 0,144,147,163, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,240,218,153, 26, - 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 32,226,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,111,255, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +176,150,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 64,152,163, 29, 1, 0, 0, 0, 32,149,163, 29, 1, 0, 0, 0, + 96,202, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,112,190, 95, 3, 1, 0, 0, 0,255, 21, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,220,153, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,144,221,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 63, 1,203, 0, 0, 0, 0, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,221,153, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,220,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,152,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +208,153,163, 29, 1, 0, 0, 0,176,150,163, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 58,254, 63, 1, 58, 0, 20, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +208,153,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,155,163, 29, 1, 0, 0, 0, 64,152,163, 29, 1, 0, 0, 0, + 32,207, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,222,153, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,240,222,153, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, -129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 63, 1,102, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,155,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +240,156,163, 29, 1, 0, 0, 0,208,153,163, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 32,226,153, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,218,153, 26, - 1, 0, 0, 0, 48,220,153, 26, 1, 0, 0, 0,144,221,153, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59,253, 63, 1,105, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,128,227,153, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,239,153, 26, 1, 0, 0, 0,112,193,153, 26, 1, 0, 0, 0,224,174,150, 26, - 1, 0, 0, 0,176,181,150, 26, 1, 0, 0, 0, 64,192,149, 26, 1, 0, 0, 0, 64,225,149, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 15, 15, 48, 6,120, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16,236, 81, 3, 1, 0, 0, 0, 32,231,153, 26, 1, 0, 0, 0, 16,238,153, 26, 1, 0, 0, 0, 96,228,153, 26, - 1, 0, 0, 0,192,229,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 38,231, 28, - 1, 0, 0, 0,240, 91, 87, 23, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,228,153, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192,229,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,198, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6, 26, 0, 48, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,237, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,229,153, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,228,153, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 18, 0, 0, 0, - 93, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 48, 6, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 26, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,236, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 32,231,153, 26, 1, 0, 0, 0,172, 0, 0, 0, - 1, 0, 0, 0, 16,238,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,232,153, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,128,233,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,233,153, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,232,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,234,153, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,224,234,153, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, -129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 16,238,153, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,231,153, 26, - 1, 0, 0, 0, 32,232,153, 26, 1, 0, 0, 0,128,233,153, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,239,153, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208, 0,154, 26, 1, 0, 0, 0,128,227,153, 26, 1, 0, 0, 0, 96, 28,224, 25, - 1, 0, 0, 0, 80,202,224, 25, 1, 0, 0, 0, 0, 45, 91, 3, 1, 0, 0, 0,112,149,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,201, 1, 0, 0, 67, 3, 0, 0, 3, 3, 80, 1,123, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,233, 81, 3, 1, 0, 0, 0, 16,243,153, 26, 1, 0, 0, 0,112,255,153, 26, 1, 0, 0, 0, 80,240,153, 26, - 1, 0, 0, 0,176,241,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,244,137, 26, - 1, 0, 0, 0,176, 35,137, 26, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,240,153, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,176,241,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, 26, 0, 80, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 42, 3, 0, 0, 67, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,235, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,241,153, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,240,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,159, 67, 0,128,167,195, 0, 0, 0, 0, 63, 1, 0, 0, 80, 1, 0, 0, 18, 0, 0, 0, - 96, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 18, 0, 0, 0, - 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 80, 1, 97, 1, 63, 1, 79, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,201, 1, 0, 0, 41, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 97, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,234, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,243,153, 26, 1, 0, 0, 0,166, 0, 0, 0, - 1, 0, 0, 0, 64,248,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +240,156,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,158,163, 29, 1, 0, 0, 0, 96,155,163, 29, 1, 0, 0, 0, + 16,142, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, +109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, +109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 59,152, 26, 1, 0, 0, 0, 96, 59,152, 26, - 1, 0, 0, 0,112, 43,152, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,158,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 32,161,163, 29, 1, 0, 0, 0,240,156,163, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,112, 43,152, 26, 1, 0, 0, 0,218, 0, 0, 0, - 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,112,244,153, 26, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,112,244,153, 26, - 1, 0, 0, 0,217, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 19, 0, 0, 0, - 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 21, 0, 1, 0, - 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,144,137,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 86, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,148,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,240,140,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,146,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48,160, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,133,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,132,157, 26, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128,245,153, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,246,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0, -247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,224,246,153, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,245,153, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, - 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0, -156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0, -247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, + 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 11,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 1, 0, 0, 64,248,153, 26, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,112,255,153, 26, 1, 0, 0, 0, 16,243,153, 26, - 1, 0, 0, 0,128,245,153, 26, 1, 0, 0, 0,224,246,153, 26, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 32,161,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,158,163, 29, 1, 0, 0, 0, +144,217, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 63, 1, 0, 0, 20, 0, 0, 0, 4, 0, 3, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,249,153, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,250,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,176,162,163, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, +176,166,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,250,153, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,249,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 0, 0, 0, 0, 64,166,162, 21, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,240,163,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,165,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, + 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, - 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,165,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,163,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,252,153, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0, 64,252,153, 26, - 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, - 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,112,255,153, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,248,153, 26, 1, 0, 0, 0,128,249,153, 26, 1, 0, 0, 0,224,250,153, 26, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,208, 0,154, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 64, 26,154, 26, 1, 0, 0, 0,112,239,153, 26, - 1, 0, 0, 0, 32,112, 90, 3, 1, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0,176, 73,224, 25, 1, 0, 0, 0, 64,192,149, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,121, 0, 0, 0, 38, 4, 0, 0, 1, 1,147, 3, -174, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,238, 81, 3, 1, 0, 0, 0, 32, 21,154, 26, 1, 0, 0, 0, 64, 25,154, 26, - 1, 0, 0, 0,176, 1,154, 26, 1, 0, 0, 0,144, 16,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,200,197, 25, 1, 0, 0, 0, 80,186,229, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 1,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16, 3,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,192,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,147, 3, 26, 0,147, 3, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,121, 0, 0, 0, -146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,246, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 3,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112, 4,154, 26, 1, 0, 0, 0,176, 1,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0,157, 2, 0, 0,147, 0, 0, 0, - 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,148, 3, 0, 0, 5, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,243, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 4,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208, 5,154, 26, 1, 0, 0, 0, 16, 3,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,147, 0, 0, 0, -147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,245, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 5,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144, 16,154, 26, 1, 0, 0, 0,112, 4,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 47, 6, 0, 0,147, 0, 0, 0, - 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,240, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 7,154, 26, 1, 0, 0, 0,208,163,129, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 7,154, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 8,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,241, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 8,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 10,154, 26, - 1, 0, 0, 0, 48, 7,154, 26, 1, 0, 0, 0, 64,242, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97, -115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252, -163, 0, 58, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 10,154, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 11,154, 26, 1, 0, 0, 0,192, 8,154, 26, 1, 0, 0, 0,176,203,199, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111, -112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111, -112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 14, 4, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48, 14, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 11,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 13,154, 26, - 1, 0, 0, 0, 80, 10,154, 26, 1, 0, 0, 0, 16,206,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112, -108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211,252, -163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 13,154, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 15,154, 26, 1, 0, 0, 0,224, 11,154, 26, 1, 0, 0, 0,144,215,199, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, - 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, - 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0, 15,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,163,129, 26, - 1, 0, 0, 0,112, 13,154, 26, 1, 0, 0, 0,240,217,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110, -115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163,252, -163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,176,166,163, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,162,163, 29, 1, 0, 0, 0,240,163,163, 29, 1, 0, 0, 0, + 80,165,163, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,163,129, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,154, 26, 1, 0, 0, 0,112,208,199, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,160,163, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +208,171,163, 29, 1, 0, 0, 0, 32,136,163, 29, 1, 0, 0, 0,224,182,162, 29, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, + 64,242,142, 27, 1, 0, 0, 0, 64,141,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, + 0, 0, 0, 0,127, 0, 0, 0, 15, 15, 48, 6,128, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,109,217, 2, 1, 0, 0, 0, +208,170,163, 29, 1, 0, 0, 0,240,248,162, 29, 1, 0, 0, 0, 16,168,163, 29, 1, 0, 0, 0,112,169,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255,199, 20, 1, 0, 0, 0,224, 25,200, 20, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16,168,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,169,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,198, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6, + 26, 0, 48, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,110,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,169,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16,168,163, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 18, 0, 0, 0,101, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 48, 6, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 6, 0, 0, 26, 0, 0, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 16,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208, 5,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0,208,170,163, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,240,248,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,147, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,147, 3,148, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,239, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 17,154, 26, - 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,240, 17,154, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 43, 39,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, - 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, - 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,240,221,229, 62, -208,249,224,190, 48,180, 81,191,184,158, 81,191,229,161,127, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, 18,247,109,188, -206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 40,187,191, 62, -177, 56, 85, 63,144,122, 70,188, 0, 0,132, 51,191, 15,188,190,128, 75, 53, 62,217,125, 81, 63, 0, 0, 96,178, 67,108,117,194, -185,204,216, 65,104,156, 5,194,212,247,159,192,235, 62,114, 66, 61,254,213,193,157,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,240,221,229, 62, -208,249,224,190, 48,180, 81,191,184,158, 81,191,229,161,127, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, 18,247,109,188, -206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65,144,160, 15, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,160, 15, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,144,160, 15, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,163,211, 2, 59, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48,246,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,247,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, + 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144,247,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,246,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 32, 21,154, 26, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 64, 25,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 9, 1, 28, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 22,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,224, 23,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 23,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 22,154, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18, 4, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48, 18, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64, 25,154, 26, 1, 0, 0, 0,172, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 21,154, 26, 1, 0, 0, 0,128, 22,154, 26, 1, 0, 0, 0,224, 23,154, 26, - 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 64, 26,154, 26, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 96, 54,154, 26, 1, 0, 0, 0,208, 0,154, 26, 1, 0, 0, 0,176,181,150, 26, 1, 0, 0, 0,176,166,224, 25, - 1, 0, 0, 0, 0, 46, 95, 3, 1, 0, 0, 0, 32,112, 90, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -155, 2, 0, 0,121, 0, 0, 0,123, 1, 0, 0, 2, 2,156, 2, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,247, 81, 3, - 1, 0, 0, 0,160, 32,154, 26, 1, 0, 0, 0, 96, 53,154, 26, 1, 0, 0, 0, 32, 27,154, 26, 1, 0, 0, 0, 64, 31,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,130,138, 26, 1, 0, 0, 0,208, 79,229, 28, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 27,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 28,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, - 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,121, 0, 0, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,249, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 28,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224, 29,154, 26, - 1, 0, 0, 0, 32, 27,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 67, 0, 0, 87,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, - 6, 0,217, 0,233, 0,200, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,147, 0, 0, 0,123, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0,233, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,250, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 29,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64, 31,154, 26, - 1, 0, 0, 0,128, 28,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240,248,162, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,170,163, 29, 1, 0, 0, 0, 48,246,162, 29, 1, 0, 0, 0, +144,247,162, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208,171,163, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +176,187,162, 29, 1, 0, 0, 0, 16,160,163, 29, 1, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, + 16,176, 20, 27, 1, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, +229, 1, 0, 0,115, 3, 0, 0, 3, 3, 80, 1,143, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,106,217, 2, 1, 0, 0, 0, + 16,253,162, 29, 1, 0, 0, 0, 80,186,162, 29, 1, 0, 0, 0, 80,250,162, 29, 1, 0, 0, 0,176,251,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 46,200, 20, 1, 0, 0, 0, 32, 66,201, 20, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,250,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,251,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, + 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, + 26, 0, 80, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 6, 0, 0,128, 7, 0, 0, 90, 3, 0, 0,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,108,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,155, 2, 0, 0,155, 2, 0, 0,147, 0, 0, 0,123, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,251, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 31,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224, 29,154, 26, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,232, 0, 0, 0, 18, 0, 0, 0, -194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0,232, 0, 0, 0,111, 18,131, 58, -111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0,195, 1,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0, 0, 0,155, 2, 0, 0,147, 0, 0, 0,123, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 1,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,248, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176,251,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,250,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,159, 67, + 0,128,177,195, 0, 0, 0, 0, 63, 1, 0, 0, 80, 1, 0, 0, 18, 0, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 18, 0, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 80, 1, +117, 1, 63, 1, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 6, 0, 0,128, 7, 0, 0,229, 1, 0, 0, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,107,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160, 32,154, 26, 1, 0, 0, 0,161, 0, 0, 0, 1, 0, 0, 0, 80, 38,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16,253,162, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 64, 2,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 33,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208, 33,154, 26, - 1, 0, 0, 0, 20, 1, 0, 0, 1, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 34,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,144, 35,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176, 46,202, 20, 1, 0, 0, 0,176, 46,202, 20, 1, 0, 0, 0,160,254,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 35,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,240, 36,154, 26, 1, 0, 0, 0, 48, 34,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0, -163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0, -163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 68, 65, 84, 65, 16, 0, 0, 0,160,254,161, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, +112,254,162, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,112,254,162, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, + 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,208, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,220, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,214, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,202, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,255,162, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,224, 0,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 36,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 35,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0, -164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 0,163, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, + 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, + 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64, 2,163, 29, 1, 0, 0, 0, +163, 0, 0, 0, 1, 0, 0, 0, 80,186,162, 29, 1, 0, 0, 0, 16,253,162, 29, 1, 0, 0, 0,128,255,162, 29, 1, 0, 0, 0, +224, 0,163, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 80, 38,154, 26, 1, 0, 0, 0,167, 0, 0, 0, - 1, 0, 0, 0, 64, 49,154, 26, 1, 0, 0, 0,160, 32,154, 26, 1, 0, 0, 0, 48, 34,154, 26, 1, 0, 0, 0,240, 36,154, 26, - 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 39,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,144, 40,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 40,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,240, 41,154, 26, 1, 0, 0, 0, 48, 39,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,183,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +240,184,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 41,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 80, 43,154, 26, 1, 0, 0, 0,144, 40,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,184,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,183,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 43,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,176, 44,154, 26, 1, 0, 0, 0,240, 41,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 44,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 43,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 6, 5, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 6, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, +237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 80,186,162, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 2,163, 29, 1, 0, 0, 0, +144,183,162, 29, 1, 0, 0, 0,240,184,162, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176,187,162, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,128,211,162, 29, 1, 0, 0, 0,208,171,163, 29, 1, 0, 0, 0,240,143, 21, 27, 1, 0, 0, 0, + 96, 4,162, 29, 1, 0, 0, 0, 32, 31,142, 27, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0, 99, 4, 0, 0, 1, 1,147, 3,227, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,111,217, 2, 1, 0, 0, 0, 96,206,162, 29, 1, 0, 0, 0,128,210,162, 29, 1, 0, 0, 0,144,188,162, 29, 1, 0, 0, 0, + 0,205,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,176,160, 21, 1, 0, 0, 0, +160,112,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,188,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +240,189,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,192,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,147, 3, 26, 0,147, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,119,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,189,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 80,191,162, 29, 1, 0, 0, 0,144,188,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0,157, 2, 0, 0,155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,201, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 48,116,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,191,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +176,192,162, 29, 1, 0, 0, 0,240,189,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, + 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,155, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0,118,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,192,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0,205,162, 29, 1, 0, 0, 0, 80,191,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +112,113,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,194,162, 29, 1, 0, 0, 0, +112,203,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,194,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +160,195,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +160,195,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,197,162, 29, 1, 0, 0, 0, 16,194,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 58, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 46,154, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0, 16, 46,154, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, - 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,197,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +192,198,162, 29, 1, 0, 0, 0,160,195,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 64, 49,154, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 96, 53,154, 26, 1, 0, 0, 0, 80, 38,154, 26, - 1, 0, 0, 0, 48, 39,154, 26, 1, 0, 0, 0,176, 44,154, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 50,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 52,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +192,198,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,200,162, 29, 1, 0, 0, 0, 48,197,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 52,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 50,154, 26, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,200,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +224,201,162, 29, 1, 0, 0, 0,192,198,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96, 53,154, 26, - 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 49,154, 26, 1, 0, 0, 0,160, 50,154, 26, - 1, 0, 0, 0, 0, 52,154, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,187,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +224,201,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,203,162, 29, 1, 0, 0, 0, 80,200,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102, +111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102, +111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, + 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96, 54,154, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224, 87,154, 26, 1, 0, 0, 0, 64, 26,154, 26, 1, 0, 0, 0,176,166,224, 25, - 1, 0, 0, 0,112, 35, 95, 3, 1, 0, 0, 0, 80,134, 90, 3, 1, 0, 0, 0, 0, 46, 95, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,125, 1, 0, 0, 38, 4, 0, 0, 12, 12,156, 2,170, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 29, 82, 3, 1, 0, 0, 0, 96, 59,154, 26, 1, 0, 0, 0,224, 86,154, 26, 1, 0, 0, 0, 64, 55,154, 26, - 1, 0, 0, 0, 0, 58,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 64,230, 28, - 1, 0, 0, 0,240, 36, 38, 26, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 55,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,160, 56,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,125, 1, 0, 0,150, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 31, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 56,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 58,154, 26, 1, 0, 0, 0, 64, 55,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0,128, 31,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, -143, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,144, 2,200, 0,126, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0,151, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,144, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 31, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,203,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224,201,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 58,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 56,154, 26, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0,128, 31,196, 0, 0, 0, 0,195, 1, 0, 0,212, 1, 0, 0, 18, 0, 0, 0, -143, 2, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0, -143, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,212, 1,144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,155, 2, 0, 0,151, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 1,144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 30, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, 96, 59,154, 26, 1, 0, 0, 0, 21, 1, 0, 0, - 1, 0, 0, 0, 32, 66,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,205,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,192,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 60,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 62,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 78, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 49, 2, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 62,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 96, 63,154, 26, 1, 0, 0, 0,160, 60,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,219,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, -199, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, -199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,200, 1,200, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,200, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0, +155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3,201, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 63,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192, 64,154, 26, 1, 0, 0, 0, 0, 62,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 10, 5, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 10, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 38, 67,148, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, + 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, +164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,200, 42,243, 62,208,249,224,190, 48,180, 81,191,184,158, 81,191, + 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,222,187,123,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 88, 62,181, 62, 47,143, 73, 63,144,162, 59,188, 0, 0, 96,179, +191, 15,188,190,128, 75, 53, 62,217,125, 81, 63, 0, 0, 96,178, 67,108,117,194,185,204,216, 65,104,156, 5,194,212,247,159,192, +235, 62,114, 66, 61,254,213,193,157,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,200, 42,243, 62,208,249,224,190, 48,180, 81,191,184,158, 81,191, + 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,222,187,123,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, +214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,149, 87,247, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 64,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 63,154, 26, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, - 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -199, 1, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 18, 0, 0, 0, -199, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 32, 66,154, 26, 1, 0, 0, 0,161, 0, 0, 0, - 1, 0, 0, 0,208, 71,154, 26, 1, 0, 0, 0, 96, 59,154, 26, 1, 0, 0, 0,160, 60,154, 26, 1, 0, 0, 0,192, 64,154, 26, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,206,162, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, +128,210,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192,207,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,209,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, + 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 67,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 80, 67,154, 26, 1, 0, 0, 0, 20, 1, 0, 0, 1, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 67,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16, 69,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32,209,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192,207,162, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, +122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0,128,210,162, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96,206,162, 29, 1, 0, 0, 0,192,207,162, 29, 1, 0, 0, 0, 32,209,162, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 69,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112, 70,154, 26, 1, 0, 0, 0,176, 67,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0, -189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 70,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 69,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,128,211,162, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,236,162, 29, 1, 0, 0, 0, +176,187,162, 29, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, 32,142,160, 21, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, +240,143, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,129, 0, 0, 0,147, 1, 0, 0, + 2, 2,156, 2, 19, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,120,217, 2, 1, 0, 0, 0,224,217,162, 29, 1, 0, 0, 0, +112,235,162, 29, 1, 0, 0, 0, 96,212,162, 29, 1, 0, 0, 0,128,216,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 41,201, 20, 1, 0, 0, 0, 96, 61,202, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,212,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,213,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, +129, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,122,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,213,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,215,162, 29, 1, 0, 0, 0, 96,212,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,103,195, 0, 0, 0, 0, +200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,249, 0,200, 0,231, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, +155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,249, 0, 0, 0, 2, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,123,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,208, 71,154, 26, - 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0,192, 82,154, 26, 1, 0, 0, 0, 32, 66,154, 26, 1, 0, 0, 0,176, 67,154, 26, - 1, 0, 0, 0,112, 70,154, 26, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 72,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16, 74,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 74,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112, 75,154, 26, 1, 0, 0, 0,176, 72,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 75,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208, 76,154, 26, 1, 0, 0, 0, 16, 74,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 76,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 78,154, 26, 1, 0, 0, 0,112, 75,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 78,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 76,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 79,154, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,144, 79,154, 26, - 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, -142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, -111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63, -140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190, -191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68, -159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63, -140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,215,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,216,162, 29, 1, 0, 0, 0,192,213,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,155, 2, 0, 0, +155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,124,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,192, 82,154, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,224, 86,154, 26, - 1, 0, 0, 0,208, 71,154, 26, 1, 0, 0, 0,176, 72,154, 26, 1, 0, 0, 0, 48, 78,154, 26, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128,216,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,215,162, 29, 1, 0, 0, 0, + 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0,248, 0, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, + 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,195, 1,249, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,155, 2, 0, 0, +155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 1,249, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,121,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32, 84,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 85,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +224,217,162, 29, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,144,223,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128, 85,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 84,154, 26, - 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -200, 0, 0, 0,224, 86,154, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 82,154, 26, - 1, 0, 0, 0, 32, 84,154, 26, 1, 0, 0, 0,128, 85,154, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16,219,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,219,162, 29, 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,219,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,220,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, + 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, + 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,220,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,222,162, 29, 1, 0, 0, 0, +112,219,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, + 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0, +164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,224, 87,154, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 54,154, 26, - 1, 0, 0, 0, 80,202,224, 25, 1, 0, 0, 0,176, 73,224, 25, 1, 0, 0, 0,112, 20,224, 25, 1, 0, 0, 0, 0, 45, 91, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 69, 3, 0, 0, 38, 4, 0, 0, 1, 1, 80, 1, -226, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,238, 81, 3, 1, 0, 0, 0,176, 94,154, 26, 1, 0, 0, 0, 0,104,154, 26, - 1, 0, 0, 0,192, 88,154, 26, 1, 0, 0, 0, 32, 90,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,187,199, 25, 1, 0, 0, 0, 80, 42,229, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 88,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32, 90,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,132, 1, 24, 0,132, 1, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 69, 3, 0, 0, - 69, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208,246, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48,222,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,220,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, + 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 90,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 88,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,168, 0, 0, 0,144,223,162, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 80,231,162, 29, 1, 0, 0, 0, +224,217,162, 29, 1, 0, 0, 0,112,219,162, 29, 1, 0, 0, 0, 48,222,162, 29, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 69, 3, 0, 0, - 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,239, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,224,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,225,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, + 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,225,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,227,162, 29, 1, 0, 0, 0, +112,224,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48,227,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,228,162, 29, 1, 0, 0, 0, +208,225,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144,228,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,229,162, 29, 1, 0, 0, 0, + 48,227,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,240,229,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144,228,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 14, 5, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48, 14, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, +222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63, +224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, + 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, +222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 91,154, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,128, 91,154, 26, - 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 28, 83, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, -225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, -254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190, -228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64, -151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 3,201,194, 63,247,255,133,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, - 43,238,131, 63,180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 6, 4, 61, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191, - 37, 12,159,191,216, 49, 49, 65,152, 9, 52, 65,231, 70,158, 62, 23,234,167, 62,160,206,159,187, 0, 0,168,180,117, 11,197,189, -112, 0,194, 61, 52,249,138, 62, 0, 0,174, 51,211,120, 21,194,145, 5, 2, 66, 6,136,213,193,193,214,159,192,219, 38, 19, 66, -197,173,255,193,154,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, -225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, -254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 3,201,194, 63,247,255,133,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, - 43,238,131, 63,180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 6, 4, 61, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191, - 37, 12,159,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,210, 47, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,176, 94,154, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,208, 98,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 16, 96,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112, 97,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 1, 26, 0,132, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0, -128, 7, 0, 0,249, 3, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1, 26, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112, 97,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 96,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,185, 67, 0, 0, 62,195, - 0, 0, 0, 0,115, 1, 0, 0,132, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,132, 1,208, 0,115, 1, -190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0, -128, 7, 0, 0, 41, 3, 0, 0,248, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1,208, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80,231,162, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0,112,235,162, 29, 1, 0, 0, 0,144,223,162, 29, 1, 0, 0, 0,112,224,162, 29, 1, 0, 0, 0, +240,229,162, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208, 98,154, 26, 1, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0, 0,104,154, 26, 1, 0, 0, 0,176, 94,154, 26, - 1, 0, 0, 0, 16, 96,154, 26, 1, 0, 0, 0,112, 97,154, 26, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,232,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 16,234,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,234,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,232,162, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,112,235,162, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,231,162, 29, 1, 0, 0, 0,176,232,162, 29, 1, 0, 0, 0, 16,234,162, 29, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 6, 94, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, - 16, 0, 0, 0,192, 6, 94, 3, 1, 0, 0, 0,218, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 48,100,154, 26, - 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 48,100,154, 26, 1, 0, 0, 0,217, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 20, 0, 0, 0, - 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,144,137,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0,148,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,240,140,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0,146,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,160, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 64,133,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,112,132,157, 26, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,101,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,160,102,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,102,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,101,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, - 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, -155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, - 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,236,162, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +144, 0,164, 29, 1, 0, 0, 0,128,211,162, 29, 1, 0, 0, 0, 32,142,160, 21, 1, 0, 0, 0,208,140,162, 21, 1, 0, 0, 0, + 96, 4,162, 29, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, +149, 1, 0, 0, 99, 4, 0, 0, 12, 12,156, 2,207, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,159,217, 2, 1, 0, 0, 0, + 80,230,163, 29, 1, 0, 0, 0, 16,237,163, 29, 1, 0, 0, 0, 80,237,162, 29, 1, 0, 0, 0, 16,240,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,220,200, 20, 1, 0, 0, 0, 32,129,160, 21, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,237,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,238,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 39, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, + 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,156, 2, + 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,155, 2, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,160,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 0,104,154, 26, 1, 0, 0, 0,162, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 98,154, 26, 1, 0, 0, 0, 64,101,154, 26, 1, 0, 0, 0,160,102,154, 26, - 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176,238,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,240,162, 29, 1, 0, 0, 0, + 80,237,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, + 0,192, 40,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0, +181, 2,200, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,199, 0, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200, 0,181, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,161,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16,240,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,238,162, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, + 0,192, 40,196, 0, 0, 0, 0,195, 1, 0, 0,212, 1, 0, 0, 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,212, 1, +181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200, 0, 0, 0,155, 2, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +212, 1,181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,159,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 8, 1, 0, 0, 80,230,163, 29, 1, 0, 0, 0, 22, 1, 0, 0, 1, 0, 0, 0,128,245,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,192,105,154, 26, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 96, 4,155, 26, - 1, 0, 0, 0,160,178,153, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111, -109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,106,154, 26, 1, 0, 0, 0,176,111,154, 26, 1, 0, 0, 0, 16,112,154, 26, 1, 0, 0, 0,240,119,154, 26, - 1, 0, 0, 0, 80,120,154, 26, 1, 0, 0, 0, 96,229,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,109, 60, 48, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,106,154, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 48,107,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,107,154, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,144,107,154, 26, - 1, 0, 0, 0,208,106,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,144,107,154, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,240,107,154, 26, 1, 0, 0, 0, 48,107,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,107,154, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0,144,107,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,176,108,154, 26, 1, 0, 0, 0,240,107,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,108,154, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 16,109,154, 26, - 1, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 16,109,154, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,112,109,154, 26, 1, 0, 0, 0,176,108,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,109,154, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,208,109,154, 26, 1, 0, 0, 0, 16,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,109,154, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 48,110,154, 26, 1, 0, 0, 0,112,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 39, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,110,154, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,144,110,154, 26, - 1, 0, 0, 0,208,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,144,110,154, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,240,110,154, 26, 1, 0, 0, 0, 48,110,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,156, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,110,154, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 80,111,154, 26, 1, 0, 0, 0,144,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3,156, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,111,154, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,176,111,154, 26, 1, 0, 0, 0,240,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,111,154, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 16,112,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,112,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,107,154, 26, 1, 0, 0, 0,144,107,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,112,112,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,112,154, 26, 1, 0, 0, 0, 16,112,154, 26, - 1, 0, 0, 0, 48,107,154, 26, 1, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,208,112,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,113,154, 26, 1, 0, 0, 0,112,112,154, 26, - 1, 0, 0, 0,144,107,154, 26, 1, 0, 0, 0,176,108,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 48,113,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,113,154, 26, 1, 0, 0, 0,208,112,154, 26, - 1, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0,176,108,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,144,113,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,113,154, 26, 1, 0, 0, 0, 48,113,154, 26, - 1, 0, 0, 0,240,107,154, 26, 1, 0, 0, 0,112,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,240,113,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,114,154, 26, 1, 0, 0, 0,144,113,154, 26, - 1, 0, 0, 0, 16,109,154, 26, 1, 0, 0, 0,112,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 80,114,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176,114,154, 26, 1, 0, 0, 0,240,113,154, 26, - 1, 0, 0, 0,176,108,154, 26, 1, 0, 0, 0,208,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,176,114,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,115,154, 26, 1, 0, 0, 0, 80,114,154, 26, - 1, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0,208,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 16,115,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,115,154, 26, 1, 0, 0, 0,176,114,154, 26, - 1, 0, 0, 0, 16,109,154, 26, 1, 0, 0, 0,208,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,112,115,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,115,154, 26, 1, 0, 0, 0, 16,115,154, 26, - 1, 0, 0, 0,176,108,154, 26, 1, 0, 0, 0,112,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,208,115,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,116,154, 26, 1, 0, 0, 0,112,115,154, 26, - 1, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0, 48,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 48,116,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,116,154, 26, 1, 0, 0, 0,208,115,154, 26, - 1, 0, 0, 0,208,109,154, 26, 1, 0, 0, 0,144,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,144,116,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,116,154, 26, 1, 0, 0, 0, 48,116,154, 26, - 1, 0, 0, 0, 48,110,154, 26, 1, 0, 0, 0,144,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,240,116,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,117,154, 26, 1, 0, 0, 0,144,116,154, 26, - 1, 0, 0, 0, 48,110,154, 26, 1, 0, 0, 0,240,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 80,117,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176,117,154, 26, 1, 0, 0, 0,240,116,154, 26, - 1, 0, 0, 0,144,110,154, 26, 1, 0, 0, 0,240,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,176,117,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,118,154, 26, 1, 0, 0, 0, 80,117,154, 26, - 1, 0, 0, 0,208,106,154, 26, 1, 0, 0, 0, 80,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 16,118,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,118,154, 26, 1, 0, 0, 0,176,117,154, 26, - 1, 0, 0, 0, 80,111,154, 26, 1, 0, 0, 0,176,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,112,118,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,118,154, 26, 1, 0, 0, 0, 16,118,154, 26, - 1, 0, 0, 0,240,107,154, 26, 1, 0, 0, 0,176,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,208,118,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,119,154, 26, 1, 0, 0, 0,112,118,154, 26, - 1, 0, 0, 0, 16,109,154, 26, 1, 0, 0, 0,176,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 48,119,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,119,154, 26, 1, 0, 0, 0,208,118,154, 26, - 1, 0, 0, 0,240,110,154, 26, 1, 0, 0, 0, 80,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,144,119,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,119,154, 26, 1, 0, 0, 0, 48,119,154, 26, - 1, 0, 0, 0,144,110,154, 26, 1, 0, 0, 0,176,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,240,119,154, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,119,154, 26, - 1, 0, 0, 0,208,106,154, 26, 1, 0, 0, 0, 48,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 80,120,154, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,123,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0, 48,107,154, 26, 1, 0, 0, 0,144,107,154, 26, 1, 0, 0, 0,176,108,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 40, 4, 0, 0, 66, 4, 0, 0, 7, 7,129, 7, - 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 16, 15, 82, 3, 1, 0, 0, 0,224, 3,155, 26, 1, 0, 0, 0,224, 3,155, 26, - 1, 0, 0, 0, 48,121,154, 26, 1, 0, 0, 0,144,122,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 67,229, 28, 1, 0, 0, 0, 32,178,228, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,121,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144,122,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 40, 4, 0, 0, - 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 16, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,122,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,121,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, -129, 7, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 3, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, - 66, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 15, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,240,123,154, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,135,154, 26, 1, 0, 0, 0, 80,120,154, 26, 1, 0, 0, 0,176,111,154, 26, - 1, 0, 0, 0, 16,109,154, 26, 1, 0, 0, 0,112,109,154, 26, 1, 0, 0, 0,240,107,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15,100, 1, 92, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 16,236, 81, 3, 1, 0, 0, 0,144,127,154, 26, 1, 0, 0, 0,128,134,154, 26, 1, 0, 0, 0,208,124,154, 26, - 1, 0, 0, 0, 48,126,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217,199, 25, - 1, 0, 0, 0,208, 96,228, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,124,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 48,126,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 94, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0,221, 67, 0,128, 71, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, 26, 0,100, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,237, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,126,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,124,154, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 18, 0, 0, 0, - 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,100, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,236, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,144,127,154, 26, 1, 0, 0, 0,172, 0, 0, 0, - 1, 0, 0, 0,128,134,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,128,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,240,129,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,129,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,128,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,131,154, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0, 80,131,154, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, -129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,128,134,154, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,127,154, 26, - 1, 0, 0, 0,144,128,154, 26, 1, 0, 0, 0,240,129,154, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224,135,154, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,169,154, 26, 1, 0, 0, 0,240,123,154, 26, 1, 0, 0, 0, 16,109,154, 26, - 1, 0, 0, 0,208,109,154, 26, 1, 0, 0, 0,176,108,154, 26, 1, 0, 0, 0,112,109,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 93, 0, 0, 0, 38, 4, 0, 0, 4, 4,100, 1,202, 3, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 11, 82, 3, 1, 0, 0, 0, 32,155,154, 26, 1, 0, 0, 0,160,167,154, 26, 1, 0, 0, 0,192,136,154, 26, - 1, 0, 0, 0, 32,138,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,104,155, 25, - 1, 0, 0, 0, 32,153,228, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,136,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 32,138,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,178, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, 31, 0,100, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 8, 4, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 14, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,138,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,136,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 67, 0, 0,102,196, - 0, 0, 0, 0, 0, 0, 0, 0,255,127,169, 67,254, 63,102,196, 0, 0, 0, 0, 83, 1, 0, 0,100, 1, 0, 0, 18, 0, 0, 0, -170, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 18, 0, 0, 0, -170, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,100, 1,171, 3, 83, 1,153, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180,157, 25, - 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 93, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1,171, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 12, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,139,154, 26, - 1, 0, 0, 0,144,153,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,139,154, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 16,141,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 13, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,220,255, 82, 1, 36, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144,231,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,241,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 78, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, + 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, + 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,159, 3, 0, 0, 49, 2, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 16,141,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,142,154, 26, 1, 0, 0, 0,128,139,154, 26, - 1, 0, 0, 0,176,121,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,241,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,242,163, 29, 1, 0, 0, 0, +144,231,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, + 0, 0,219,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,199, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, +200, 1,200, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216, 0, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +217, 0,200, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 82, 1, 61, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192,242,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,244,163, 29, 1, 0, 0, 0, + 96,241,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,142,154, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 48,144,154, 26, 1, 0, 0, 0, 16,141,154, 26, 1, 0, 0, 0,176,131,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,111,255, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, +159, 3, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 48,144,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,145,154, 26, 1, 0, 0, 0,160,142,154, 26, - 1, 0, 0, 0,144,133,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32,244,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192,242,163, 29, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,199, 1, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 18, 0, 0, 0,199, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, + 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,199, 2, +200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +217, 0, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,254, 82, 1,178, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,128,245,163, 29, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 80,221,163, 29, 1, 0, 0, 0, + 80,230,163, 29, 1, 0, 0, 0,144,231,163, 29, 1, 0, 0, 0, 32,244,163, 29, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,145,154, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 80,147,154, 26, 1, 0, 0, 0, 48,144,154, 26, 1, 0, 0, 0,112,138,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 83,254, 82, 1, 58, 0, 20, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,232,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,232,163, 29, 1, 0, 0, 0, + 21, 1, 0, 0, 1, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,223,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +144,218,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 80,147,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,148,154, 26, 1, 0, 0, 0,192,145,154, 26, - 1, 0, 0, 0, 80,140,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,253, 82, 1,102, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,218,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +240,219,163, 29, 1, 0, 0, 0,112,223,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, + 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,148,154, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,112,150,154, 26, 1, 0, 0, 0, 80,147,154, 26, 1, 0, 0, 0, 48,145,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,219,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,218,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, + 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 84,253, 82, 1,105, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 80,221,163, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, +112,174,163, 29, 1, 0, 0, 0,128,245,163, 29, 1, 0, 0, 0,112,223,163, 29, 1, 0, 0, 0,240,219,163, 29, 1, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,112,150,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,152,154, 26, 1, 0, 0, 0,224,148,154, 26, - 1, 0, 0, 0, 0,151,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,234,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +176,235,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,253, 82, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,235,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +208,253,163, 29, 1, 0, 0, 0, 80,234,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,152,154, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,144,153,154, 26, 1, 0, 0, 0,112,150,154, 26, 1, 0, 0, 0,224,152,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,253,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 48,255,163, 29, 1, 0, 0, 0,176,235,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, + 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36,253, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,255,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 16,173,163, 29, 1, 0, 0, 0,208,253,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,144,153,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,154, 26, - 1, 0, 0, 0,192,154,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,173,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,255,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,253, 82, 1, 0, 0, 20, 0, 0, 0, - 4, 0, 3, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 32,155,154, 26, 1, 0, 0, 0,162, 0, 0, 0, - 1, 0, 0, 0,128,160,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 18, 5, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 18, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, +226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, + 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0, +185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63, +192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62, +232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, +250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53, +215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, +192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62, +232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,176, 12,158, 25, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,156,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,157,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, - 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, - 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,157,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,159,154, 26, - 1, 0, 0, 0, 96,156,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,159,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192,157,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0, -227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, - 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, +112,174,163, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 16,237,163, 29, 1, 0, 0, 0, 80,221,163, 29, 1, 0, 0, 0, + 80,234,163, 29, 1, 0, 0, 0, 16,173,163, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,175,163, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 48,177,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128,160,154, 26, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,160,167,154, 26, - 1, 0, 0, 0, 32,155,154, 26, 1, 0, 0, 0, 96,156,154, 26, 1, 0, 0, 0, 32,159,154, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,177,163, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,175,163, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 16,237,163, 29, 1, 0, 0, 0, +173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,174,163, 29, 1, 0, 0, 0,208,175,163, 29, 1, 0, 0, 0, + 48,177,163, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,161,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 16,163,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,163,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,161,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144, 0,164, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,236,162, 29, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, + 32, 31,142, 27, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, 16,176, 20, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 99, 4, 0, 0, 1, 1, 80, 1,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,111,217, 2, 1, 0, 0, 0, 80,181,163, 29, 1, 0, 0, 0,144,189,163, 29, 1, 0, 0, 0,144,178,163, 29, 1, 0, 0, 0, +240,179,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 62,201, 20, 1, 0, 0, 0, +240, 0,202, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,178,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +240,179,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,132, 1, 24, 0,132, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0,117, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +208,119,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,179,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,178,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,164,154, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,112,164,154, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, -129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 22, 5, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 22, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, + 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,160, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128, +221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0, +191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, +223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, + 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, + 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63, +179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,118,101,150,191,216, 49, 49, 65,152, 9, 52, 65, +231, 70,158, 62, 23,234,167, 62,160,206,159,187, 0, 0,168,180, 27, 97,208,189, 70, 41,205, 61,173,247,146, 62, 0, 0,166, 51, +211,120, 21,194,145, 5, 2, 66, 9,136,213,193,193,214,159,192,219, 38, 19, 66,197,173,255,193,157,101,210, 65,173, 40,160, 64, +221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0, +191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, + 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63, +179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,118,101,150,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,210, 47, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,160,167,154, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160,154, 26, - 1, 0, 0, 0,176,161,154, 26, 1, 0, 0, 0, 16,163,154, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 0,169,154, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,203,154, 26, 1, 0, 0, 0,224,135,154, 26, 1, 0, 0, 0, 80,111,154, 26, - 1, 0, 0, 0,240,110,154, 26, 1, 0, 0, 0,144,110,154, 26, 1, 0, 0, 0,176,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0,155, 1, 0, 0, 1, 1, 27, 3,156, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176,238, 81, 3, 1, 0, 0, 0, 80,189,154, 26, 1, 0, 0, 0,224,202,154, 26, 1, 0, 0, 0,224,169,154, 26, - 1, 0, 0, 0,192,184,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,101,199, 25, - 1, 0, 0, 0, 96,109,199, 25, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,169,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 64,171,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 89, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,246, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,171,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,160,172,154, 26, 1, 0, 0, 0,224,169,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,130, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 48,243, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,172,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0,174,154, 26, 1, 0, 0, 0, 64,171,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0,245, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,174,154, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192,184,154, 26, 1, 0, 0, 0,160,172,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,112,240, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,175,154, 26, - 1, 0, 0, 0,144,191,158, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,175,154, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,240,176,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,241, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,240,176,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,178,154, 26, 1, 0, 0, 0, 96,175,154, 26, - 1, 0, 0, 0, 64,242, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,178,154, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 16,180,154, 26, 1, 0, 0, 0,240,176,154, 26, 1, 0, 0, 0,176,203,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 80,181,163, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,112,185,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,182,163, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 16,184,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 1, 26, 0,132, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0,128, 7, 0, 0,249, 3, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,184,163, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,182,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, + 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,185, 67, 0, 0, 62,195, 0, 0, 0, 0,115, 1, 0, 0,132, 1, 0, 0, + 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, + 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,132, 1,208, 0,115, 1,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0,128, 7, 0, 0, 41, 3, 0, 0,248, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,185,163, 29, 1, 0, 0, 0, +167, 0, 0, 0, 1, 0, 0, 0,144,189,163, 29, 1, 0, 0, 0, 80,181,163, 29, 1, 0, 0, 0,176,182,163, 29, 1, 0, 0, 0, + 16,184,163, 29, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,209,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 48,209,161, 29, 1, 0, 0, 0, +219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 48,222,163, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, + 48,222,163, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, + 19, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, + 21, 0, 1, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,220, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,214, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,186,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,188,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, + 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, + 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48,188,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,186,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67, +223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0, +156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 1, 0, 0,144,189,163, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,185,163, 29, 1, 0, 0, 0,208,186,163, 29, 1, 0, 0, 0, 48,188,163, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, +208,190,163, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,208, 30,165, 29, 1, 0, 0, 0,112,122,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, + 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,224,163, 29, 1, 0, 0, 0, + 0,196,163, 29, 1, 0, 0, 0, 96,196,163, 29, 1, 0, 0, 0, 64,204,163, 29, 1, 0, 0, 0, 64,206,163, 29, 1, 0, 0, 0, + 0, 3,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,208,224,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,225,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 48,225,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0,208,224,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0, 48,225,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +160,192,163, 29, 1, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, + 64,192,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 0,193,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,192,193,163, 29, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192,193,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 32,194,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, +192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +128,194,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +160,195,163, 29, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,180, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,196,163, 29, 1, 0, 0, 0, + 64,195,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 0,196,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,196,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,192,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, + 48,225,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,196,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 32,197,163, 29, 1, 0, 0, 0, 96,196,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, + 48,225,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,197,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,128,197,163, 29, 1, 0, 0, 0,192,196,163, 29, 1, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, + 0,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,197,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,224,197,163, 29, 1, 0, 0, 0, 32,197,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, + 0,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,197,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 64,198,163, 29, 1, 0, 0, 0,128,197,163, 29, 1, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0, +192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,198,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,160,198,163, 29, 1, 0, 0, 0,224,197,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, +192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,198,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 0,199,163, 29, 1, 0, 0, 0, 64,198,163, 29, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, + 32,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0,199,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 96,199,163, 29, 1, 0, 0, 0,160,198,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, + 32,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,199,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,192,199,163, 29, 1, 0, 0, 0, 0,199,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, + 32,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,199,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 32,200,163, 29, 1, 0, 0, 0, 96,199,163, 29, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, +192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,200,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,128,200,163, 29, 1, 0, 0, 0,192,199,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, +128,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,200,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,224,200,163, 29, 1, 0, 0, 0, 32,200,163, 29, 1, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0, +224,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,200,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 64,201,163, 29, 1, 0, 0, 0,128,200,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, +224,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,201,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,160,201,163, 29, 1, 0, 0, 0,224,200,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, + 64,195,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,201,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 0,202,163, 29, 1, 0, 0, 0, 64,201,163, 29, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, + 64,195,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0,202,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 96,202,163, 29, 1, 0, 0, 0,160,201,163, 29, 1, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, +208,224,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,202,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,192,202,163, 29, 1, 0, 0, 0, 0,202,163, 29, 1, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, + 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,202,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 32,203,163, 29, 1, 0, 0, 0, 96,202,163, 29, 1, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0, + 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,203,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,128,203,163, 29, 1, 0, 0, 0,192,202,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, + 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,203,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,224,203,163, 29, 1, 0, 0, 0, 32,203,163, 29, 1, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0, +160,195,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,203,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 64,204,163, 29, 1, 0, 0, 0,128,203,163, 29, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, + 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,204,163, 29, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,203,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, +208,224,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 64,206,163, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,128,208,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, + 48,225,163, 29, 1, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, +208,144,217, 2, 1, 0, 0, 0, 80, 30,165, 29, 1, 0, 0, 0, 80, 30,165, 29, 1, 0, 0, 0, 32,207,163, 29, 1, 0, 0, 0, +240, 9,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 69,201, 20, 1, 0, 0, 0, +208,112,160, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,207,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +240, 9,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 9,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,207,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,128,208,163, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 16, 15,164, 29, 1, 0, 0, 0, 64,206,163, 29, 1, 0, 0, 0, 0,196,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, +192,193,163, 29, 1, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,100, 1,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 16,109,217, 2, 1, 0, 0, 0, + 16, 14,164, 29, 1, 0, 0, 0, 0,173,164, 29, 1, 0, 0, 0, 80, 11,164, 29, 1, 0, 0, 0,176, 12,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,180,160, 21, 1, 0, 0, 0,240, 11,143, 27, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80, 11,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 12,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0,221, 67, 0,128, 71, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, + 26, 0,100, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,110,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176, 12,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 11,164, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,100, 1, + 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 6, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0, 16, 14,164, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0,173,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64,170,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,171,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, + 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,160,171,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,170,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,208, 2, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,208, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 16,180,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,181,154, 26, 1, 0, 0, 0,128,178,154, 26, - 1, 0, 0, 0, 16,206,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,181,154, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 48,183,154, 26, 1, 0, 0, 0, 16,180,154, 26, 1, 0, 0, 0,144,215,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 0,173,164, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 14,164, 29, 1, 0, 0, 0, 64,170,164, 29, 1, 0, 0, 0, +160,171,164, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 48,183,154, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,191,158, 26, 1, 0, 0, 0,160,181,154, 26, - 1, 0, 0, 0,240,217,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, - 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, - 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114, -105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 7, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16, 15,164, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +112,203,164, 29, 1, 0, 0, 0,128,208,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0, + 0,193,163, 29, 1, 0, 0, 0,192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, +101, 0, 0, 0, 99, 4, 0, 0, 4, 4,100, 1,255, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,141,217, 2, 1, 0, 0, 0, +192,192,164, 29, 1, 0, 0, 0, 16,202,164, 29, 1, 0, 0, 0, 96,174,164, 29, 1, 0, 0, 0,192,175,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 13,201, 20, 1, 0, 0, 0, 16,117,160, 21, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,174,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,175,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,178, 67, + 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, + 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, + 31, 0,100, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 6, 0, 0,128, 7, 0, 0, 69, 4, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,191,158, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,183,154, 26, 1, 0, 0, 0,112,208,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192,175,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96,174,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 67, 0, 64,115,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,169, 67, +254,127,115,196, 0, 0, 0, 0, 83, 1, 0, 0,100, 1, 0, 0, 18, 0, 0, 0,223, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 18, 0, 0, 0,223, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,100, 1, +224, 3, 83, 1,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 78,201, 20, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 29, 6, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 68, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 1,224, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,142,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,177,164, 29, 1, 0, 0, 0, 48,191,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 32,177,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,178,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 82, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,178,164, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 64,180,164, 29, 1, 0, 0, 0, 32,177,164, 29, 1, 0, 0, 0, 32,198, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,184,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,174,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 82, 1, 61, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, - 27, 6, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,130, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,239, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,186,154, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0, 32,186,154, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 37,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 90, 66,109, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, - 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, - 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, - 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, - 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 4, 6,158, 63, 18,153,150,191,244,250, 39,191, - 8,165, 39,191,170,164,167, 63,166, 69,148, 63,180,164, 28, 63,149, 84, 28, 63, 1,127,159,188,171,109, 84, 64, 8,108,228,190, - 50,247,227,190,222,212, 27,191,129,191,178,191,216, 49, 49, 65,152, 9, 52, 65, 80, 25,195, 62,218,249,206, 62, 64,237,196,187, - 0, 0, 96,179, 19, 84,175,189,227,158,172, 61, 24, 80,119, 62, 0, 0,144, 50,254,120, 21,194,182, 5, 2, 66, 69,136,213,193, -239,214,159,192, 5, 39, 19, 66, 15,174,255,193,216,101,210, 65,219, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, - 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, - 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 4, 6,158, 63, 18,153,150,191,244,250, 39,191, - 8,165, 39,191,170,164,167, 63,166, 69,148, 63,180,164, 28, 63,149, 84, 28, 63, 1,127,159,188,171,109, 84, 64, 8,108,228,190, - 50,247,227,190,222,212, 27,191,129,191,178,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, - 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,123, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 64,180,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,181,164, 29, 1, 0, 0, 0, +176,178,164, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 82, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,181,164, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 96,183,164, 29, 1, 0, 0, 0, 64,180,164, 29, 1, 0, 0, 0, 96,202, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80,189,154, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,112,193,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 5,159, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,190,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,192,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,192, 59, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, - 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,239, 2, 26, 0,239, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,192,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176,190,154, 26, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 40, 57, 61,194, -146,211, 11, 68,174,122,214, 66, 82, 97,202, 67,222, 2, 0, 0,239, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0, -221, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,221, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, - 0, 0,239, 2,122, 1,222, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 2,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,112,193,154, 26, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,240,198,154, 26, - 1, 0, 0, 0, 80,189,154, 26, 1, 0, 0, 0,176,190,154, 26, 1, 0, 0, 0, 16,192,154, 26, 1, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -242,199, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208,194,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48,196,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, - 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, - 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 48,196,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144,197,154, 26, 1, 0, 0, 0,208,194,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 82, 1,203, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144,197,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,196,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, + 68, 65, 84, 65, 88, 1, 0, 0, 96,183,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,184,164, 29, 1, 0, 0, 0, +208,181,164, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, + 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 82, 1, 58, 0, + 20, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0,240,198,154, 26, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,224,202,154, 26, 1, 0, 0, 0,112,193,154, 26, - 1, 0, 0, 0,208,194,154, 26, 1, 0, 0, 0,144,197,154, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,184,164, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,128,186,164, 29, 1, 0, 0, 0, 96,183,164, 29, 1, 0, 0, 0, 32,207, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 82, 1,102, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,200,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,201,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,128,186,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,188,164, 29, 1, 0, 0, 0, +240,184,164, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,201,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,200,154, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 82, 1,105, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,224,202,154, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,198,154, 26, 1, 0, 0, 0, 32,200,154, 26, 1, 0, 0, 0,128,201,154, 26, 1, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,188,164, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,160,189,164, 29, 1, 0, 0, 0,128,186,164, 29, 1, 0, 0, 0, 16,142, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224,203,154, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,229,154, 26, - 1, 0, 0, 0, 0,169,154, 26, 1, 0, 0, 0, 48,110,154, 26, 1, 0, 0, 0, 80,108,154, 26, 1, 0, 0, 0,208,109,154, 26, - 1, 0, 0, 0,144,110,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,157, 1, 0, 0, - 38, 4, 0, 0, 16, 16, 28, 6,138, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 82, 3, 1, 0, 0, 0,128,207,154, 26, - 1, 0, 0, 0, 96,228,154, 26, 1, 0, 0, 0,192,204,154, 26, 1, 0, 0, 0, 32,206,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 34,228, 28, 1, 0, 0, 0,128,207,199, 25, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,204,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,206,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,195, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 28, 6, 26, 0, 28, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 6, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 7, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,206,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,204,154, 26, - 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 84, 64,199,195, 42,160, 99, 68, 0,108,197,190, -174, 24, 0, 68, 11, 6, 0, 0, 28, 6, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 28, 6,112, 2, 11, 6, - 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 6, 0, 0,183, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,112, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,128,207,154, 26, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0,213,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,160,189,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,191,164, 29, 1, 0, 0, 0, + 16,188,164, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, + 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 82, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,191,164, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,189,164, 29, 1, 0, 0, 0,144,217, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 66, 86, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 82, 1, 0, 0, 20, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,208,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,210,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 1, 0, 0,192,192,164, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 32,198,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,210,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,211,154, 26, 1, 0, 0, 0,224,208,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, +160, 26,200, 20, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,194,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,195,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, + 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,211,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,210,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,195,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,196,164, 29, 1, 0, 0, 0, 0,194,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 0,213,154, 26, - 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 64,224,154, 26, 1, 0, 0, 0,128,207,154, 26, 1, 0, 0, 0,224,208,154, 26, - 1, 0, 0, 0,160,211,154, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, +112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,196,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,195,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, +112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 48,214,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144,215,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, + 32,198,164, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16,202,164, 29, 1, 0, 0, 0,192,192,164, 29, 1, 0, 0, 0, + 0,194,164, 29, 1, 0, 0, 0,192,196,164, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144,215,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240,216,154, 26, 1, 0, 0, 0, 48,214,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, - 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240,216,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80,218,154, 26, 1, 0, 0, 0,144,215,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 80,218,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176,219,154, 26, 1, 0, 0, 0,240,216,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, -104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,176,219,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,218,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,199,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,200,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, + 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, + 68, 65, 84, 65, 40, 1, 0, 0,176,200,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,199,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,221,154, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0, 16,221,154, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, - 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, - 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, -136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,212, 2, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,212, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 64,224,154, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 96,228,154, 26, 1, 0, 0, 0, 0,213,154, 26, 1, 0, 0, 0, 48,214,154, 26, 1, 0, 0, 0,176,219,154, 26, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,225,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,227,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,227,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160,225,154, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96,228,154, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,224,154, 26, 1, 0, 0, 0,160,225,154, 26, 1, 0, 0, 0, 0,227,154, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 16,202,164, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,198,164, 29, 1, 0, 0, 0, 80,199,164, 29, 1, 0, 0, 0, +176,200,164, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,203,164, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +176,236,164, 29, 1, 0, 0, 0, 16, 15,164, 29, 1, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0, +224,194,163, 29, 1, 0, 0, 0, 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, + 0, 0, 0, 0,179, 1, 0, 0, 1, 1, 27, 3,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,111,217, 2, 1, 0, 0, 0, + 32,222,164, 29, 1, 0, 0, 0,176,235,164, 29, 1, 0, 0, 0, 80,204,164, 29, 1, 0, 0, 0,192,220,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,140, 27, 1, 0, 0, 0,240, 90,201, 20, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,204,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,205,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 27, 3, + 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,119,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,229,154, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,203,154, 26, 1, 0, 0, 0,208,106,154, 26, 1, 0, 0, 0, 48,110,154, 26, 1, 0, 0, 0,240,110,154, 26, - 1, 0, 0, 0, 80,111,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, -155, 1, 0, 0, 6, 6, 0, 3,156, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,255, 81, 3, 1, 0, 0, 0, 96,234,154, 26, - 1, 0, 0, 0,224, 2,155, 26, 1, 0, 0, 0, 64,230,154, 26, 1, 0, 0, 0, 0,233,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,190,228, 28, 1, 0, 0, 0, 32,210,229, 28, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64,230,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,231,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160,231,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,233,154, 26, 1, 0, 0, 0, 64,230,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176,205,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,207,164, 29, 1, 0, 0, 0, + 80,204,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 3, 0, 0, 1, 3, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0,154, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,116,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16,207,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,208,164, 29, 1, 0, 0, 0, +176,205,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 3, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,118,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,144, 1, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0,233,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,231,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,130,190, - 0,128,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,208,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,220,164, 29, 1, 0, 0, 0, + 16,207,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 6, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,113,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,209,164, 29, 1, 0, 0, 0, 48,219,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,208,209,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,211,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, +109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 2, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,130, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 0, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -168, 0, 0, 0, 96,234,154, 26, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0,238,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,211,164, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240,212,164, 29, 1, 0, 0, 0,208,209,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64,235,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,236,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160,236,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,235,154, 26, - 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, - 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2, -104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 0,238,154, 26, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,128,243,154, 26, 1, 0, 0, 0, 96,234,154, 26, - 1, 0, 0, 0, 64,235,154, 26, 1, 0, 0, 0,160,236,154, 26, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,240,212,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,214,164, 29, 1, 0, 0, 0, + 96,211,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,214,164, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,216,164, 29, 1, 0, 0, 0,240,212,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,239,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,240,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,240,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,242,154, 26, 1, 0, 0, 0, 96,239,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 16,216,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,217,164, 29, 1, 0, 0, 0, +128,214,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117, +110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,217,164, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48,219,164, 29, 1, 0, 0, 0, 16,216,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, +110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, +110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,242,154, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,240,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128,243,154, 26, - 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,192,254,154, 26, 1, 0, 0, 0, 0,238,154, 26, 1, 0, 0, 0, 96,239,154, 26, - 1, 0, 0, 0, 32,242,154, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48,219,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160,217,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,220,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,208,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,176,244,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,246,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 16,246,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,247,154, 26, 1, 0, 0, 0,176,244,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, - 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112,247,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,248,154, 26, 1, 0, 0, 0, 16,246,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208,248,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48,250,154, 26, 1, 0, 0, 0,112,247,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, -104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 48,250,154, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,248,154, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,216, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,216, 2, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0, 37,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 94, 95, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, + 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62, +149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190, +152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, + 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, + 77,255,170, 64, 0, 0,128, 63, 4, 6,158, 63, 79,200,141,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,189,151,139, 63, +180,164, 28, 63,149, 84, 28, 63, 1,127,159,188, 90,254, 71, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,231, 72,168,191, +216, 49, 49, 65,152, 9, 52, 65, 80, 25,195, 62,218,249,206, 62, 0,237,196,187, 0, 0, 96,179,204, 58,186,189,131, 90,183, 61, + 76, 88,131, 62, 0, 0,152, 50,254,120, 21,194,182, 5, 2, 66, 70,136,213,193,239,214,159,192, 5, 39, 19, 66, 15,174,255,193, +217,101,210, 65,219, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62, +149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190, +152, 9, 52,193, 0, 0,128, 63, 4, 6,158, 63, 79,200,141,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,189,151,139, 63, +180,164, 28, 63,149, 84, 28, 63, 1,127,159,188, 90,254, 71, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,231, 72,168,191, +216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,123, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,251,154, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0,144,251,154, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, - 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, - 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, -136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 32,222,164, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 64,226,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128,223,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,224,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 59, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,239, 2, 26, 0,239, 2, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +224,224,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,223,164, 29, 1, 0, 0, 0, + 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 40, 57, 61,194,146,211, 11, 68,174,122,214, 66, 82, 97,202, 67, +222, 2, 0, 0,239, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,221, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, +205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,239, 2,122, 1,222, 2,104, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, + 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,192,254,154, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,224, 2,155, 26, 1, 0, 0, 0,128,243,154, 26, 1, 0, 0, 0,176,244,154, 26, 1, 0, 0, 0, 48,250,154, 26, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 64,226,164, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,192,231,164, 29, 1, 0, 0, 0, 32,222,164, 29, 1, 0, 0, 0, +128,223,164, 29, 1, 0, 0, 0,224,224,164, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 0,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 1,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 1,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 0,155, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,224, 2,155, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192,254,154, 26, 1, 0, 0, 0, 32, 0,155, 26, 1, 0, 0, 0,128, 1,155, 26, 1, 0, 0, 0, 15, 0, 0, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,199, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,227,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0,229,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,229,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 96,230,164, 29, 1, 0, 0, 0,160,227,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 96, 4,155, 26, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,192,112,155, 26, - 1, 0, 0, 0,192,105,154, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101, -102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112, 5,155, 26, 1, 0, 0, 0,144, 9,155, 26, 1, 0, 0, 0,240, 9,155, 26, 1, 0, 0, 0, 80, 16,155, 26, - 1, 0, 0, 0,176, 16,155, 26, 1, 0, 0, 0,112, 77,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,109, 60, 48, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 5,155, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,208, 5,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208, 5,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 48, 6,155, 26, - 1, 0, 0, 0,112, 5,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 48, 6,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,144, 6,155, 26, 1, 0, 0, 0,208, 5,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 6,155, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,240, 6,155, 26, 1, 0, 0, 0, 48, 6,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 6,155, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 80, 7,155, 26, 1, 0, 0, 0,144, 6,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80, 7,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,176, 7,155, 26, - 1, 0, 0, 0,240, 6,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 39, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,176, 7,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 16, 8,155, 26, 1, 0, 0, 0, 80, 7,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16, 8,155, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,112, 8,155, 26, 1, 0, 0, 0,176, 7,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 6, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 8,155, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,208, 8,155, 26, 1, 0, 0, 0, 16, 8,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 68, 3, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208, 8,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 48, 9,155, 26, - 1, 0, 0, 0,112, 8,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 68, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 48, 9,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,144, 9,155, 26, 1, 0, 0, 0,208, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 9,155, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 9,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 6, 96, 0, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 9,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 80, 10,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 5,155, 26, 1, 0, 0, 0, 48, 6,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 10,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,176, 10,155, 26, 1, 0, 0, 0,240, 9,155, 26, 1, 0, 0, 0,208, 5,155, 26, 1, 0, 0, 0,240, 6,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 10,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 16, 11,155, 26, 1, 0, 0, 0, 80, 10,155, 26, 1, 0, 0, 0, 48, 6,155, 26, 1, 0, 0, 0, 80, 7,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 11,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,112, 11,155, 26, 1, 0, 0, 0,176, 10,155, 26, 1, 0, 0, 0,240, 6,155, 26, 1, 0, 0, 0, 80, 7,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 11,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,208, 11,155, 26, 1, 0, 0, 0, 16, 11,155, 26, 1, 0, 0, 0,112, 5,155, 26, 1, 0, 0, 0,176, 7,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 11,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48, 12,155, 26, 1, 0, 0, 0,112, 11,155, 26, 1, 0, 0, 0,144, 6,155, 26, 1, 0, 0, 0,176, 7,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48, 12,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,144, 12,155, 26, 1, 0, 0, 0,208, 11,155, 26, 1, 0, 0, 0,240, 6,155, 26, 1, 0, 0, 0, 16, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 12,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,240, 12,155, 26, 1, 0, 0, 0, 48, 12,155, 26, 1, 0, 0, 0, 80, 7,155, 26, 1, 0, 0, 0, 16, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 12,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 80, 13,155, 26, 1, 0, 0, 0,144, 12,155, 26, 1, 0, 0, 0,176, 7,155, 26, 1, 0, 0, 0,112, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 13,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,176, 13,155, 26, 1, 0, 0, 0,240, 12,155, 26, 1, 0, 0, 0, 16, 8,155, 26, 1, 0, 0, 0,112, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 13,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 16, 14,155, 26, 1, 0, 0, 0, 80, 13,155, 26, 1, 0, 0, 0, 80, 7,155, 26, 1, 0, 0, 0,208, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 14,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,112, 14,155, 26, 1, 0, 0, 0,176, 13,155, 26, 1, 0, 0, 0,144, 6,155, 26, 1, 0, 0, 0,208, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 14,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,208, 14,155, 26, 1, 0, 0, 0, 16, 14,155, 26, 1, 0, 0, 0,112, 8,155, 26, 1, 0, 0, 0,208, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 14,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48, 15,155, 26, 1, 0, 0, 0,112, 14,155, 26, 1, 0, 0, 0,112, 5,155, 26, 1, 0, 0, 0, 48, 9,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48, 15,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,144, 15,155, 26, 1, 0, 0, 0,208, 14,155, 26, 1, 0, 0, 0,240, 6,155, 26, 1, 0, 0, 0, 48, 9,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 15,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,240, 15,155, 26, 1, 0, 0, 0, 48, 15,155, 26, 1, 0, 0, 0, 16, 8,155, 26, 1, 0, 0, 0,144, 9,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 15,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 80, 16,155, 26, 1, 0, 0, 0,144, 15,155, 26, 1, 0, 0, 0,176, 7,155, 26, 1, 0, 0, 0,144, 9,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 16,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 15,155, 26, 1, 0, 0, 0, 48, 9,155, 26, 1, 0, 0, 0,144, 9,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176, 16,155, 26, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 80, 20,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 6,155, 26, 1, 0, 0, 0,208, 5,155, 26, - 1, 0, 0, 0, 48, 6,155, 26, 1, 0, 0, 0, 80, 7,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 40, 4, 0, 0, 66, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 16, 15, 82, 3, - 1, 0, 0, 0, 64,112,155, 26, 1, 0, 0, 0, 64,112,155, 26, 1, 0, 0, 0,144, 17,155, 26, 1, 0, 0, 0,240, 18,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 89,158, 26, 1, 0, 0, 0,240, 94,158, 26, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 17,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240, 18,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 40, 4, 0, 0, 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 16, 82, 3, - 1, 0, 0, 0, 16,248,158, 26, 1, 0, 0, 0, 16,248,158, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 79,158, 26, 1, 0, 0, 0,240, 9,152, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 18,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,144, 17,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, -255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 66, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 15, 82, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 80, 20,155, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32, 48,155, 26, - 1, 0, 0, 0,176, 16,155, 26, 1, 0, 0, 0,176, 7,155, 26, 1, 0, 0, 0,112, 8,155, 26, 1, 0, 0, 0,208, 8,155, 26, - 1, 0, 0, 0,144, 6,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 67, 3, 0, 0, 4, 4, 92, 1, 68, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 11, 82, 3, 1, 0, 0, 0,144, 39,155, 26, - 1, 0, 0, 0,192, 46,155, 26, 1, 0, 0, 0, 48, 21,155, 26, 1, 0, 0, 0,144, 22,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 95,158, 26, 1, 0, 0, 0, 48,221, 93, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 48, 21,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144, 22,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, - 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 31, 0, 92, 1, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0, -128, 7, 0, 0, 37, 3, 0, 0, 67, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 31, 0, - 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 14, 82, 3, 1, 0, 0, 0,112,205, 0, 28, - 1, 0, 0, 0,112,205, 0, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,158, 26, - 1, 0, 0, 0,208, 84,158, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144, 22,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 21,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 67, 0,128, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,252,127,165, 67,252,191, 68,196, - 0, 0, 0, 0, 75, 1, 0, 0, 92, 1, 0, 0, 18, 0, 0, 0, 36, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0, 36, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 92, 1, 37, 3, 75, 1, - 19, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 70,224, 25, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 36, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 37, 3, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 12, 82, 3, 1, 0, 0, 0,240,156,158, 26, - 1, 0, 0, 0, 32, 1, 1, 28, 1, 0, 0, 0,240, 23,155, 26, 1, 0, 0, 0, 0, 38,155, 26, 1, 0, 0, 0,240, 86,158, 26, - 1, 0, 0, 0,128,215,158, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,240, 23,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 25,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 13, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 74, 1, 36, 0, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128, 25,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 16, 27,155, 26, 1, 0, 0, 0,240, 23,155, 26, 1, 0, 0, 0,176,121,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,135,255, 74, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 16, 27,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 28,155, 26, 1, 0, 0, 0,128, 25,155, 26, - 1, 0, 0, 0,176,131,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 74, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 28,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 48, 30,155, 26, 1, 0, 0, 0, 16, 27,155, 26, 1, 0, 0, 0,144,133,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,165,254, 74, 1,178, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 48, 30,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 31,155, 26, 1, 0, 0, 0,160, 28,155, 26, - 1, 0, 0, 0,112,138,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,254, 74, 1, 58, 0, 20, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 31,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 80, 33,155, 26, 1, 0, 0, 0, 48, 30,155, 26, 1, 0, 0, 0, 80,140,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,230,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,213,253, 74, 1,102, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,192,231,164, 29, 1, 0, 0, 0, +164, 0, 0, 0, 1, 0, 0, 0,176,235,164, 29, 1, 0, 0, 0, 64,226,164, 29, 1, 0, 0, 0,160,227,164, 29, 1, 0, 0, 0, + 96,230,164, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 80, 33,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 34,155, 26, 1, 0, 0, 0,192, 31,155, 26, - 1, 0, 0, 0, 48,145,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,253, 74, 1,105, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 34,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,112, 36,155, 26, 1, 0, 0, 0, 80, 33,155, 26, 1, 0, 0, 0, 0,151,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,232,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,234,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 60,253, 74, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,234,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,232,164, 29, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,112, 36,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 38,155, 26, 1, 0, 0, 0,224, 34,155, 26, - 1, 0, 0, 0,224,152,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,253, 74, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +176,235,164, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,231,164, 29, 1, 0, 0, 0, +240,232,164, 29, 1, 0, 0, 0, 80,234,164, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0, 38,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 36,155, 26, 1, 0, 0, 0,192,154,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +176,236,164, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 3,165, 29, 1, 0, 0, 0,112,203,164, 29, 1, 0, 0, 0, +128,194,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 16, 16, 28, 6,175, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,135,217, 2, 1, 0, 0, 0, 80,240,164, 29, 1, 0, 0, 0, 0, 2,165, 29, 1, 0, 0, 0, +144,237,164, 29, 1, 0, 0, 0,240,238,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 68,201, 20, 1, 0, 0, 0, 80,114,160, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,237,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,240,238,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 28, 6, 26, 0, 28, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,181, 1, 0, 0,206, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224,136,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 12,253, 74, 1, 0, 0, 20, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,238,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,237,164, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, + 0, 0, 32,193, 0, 0, 0, 68, 84, 64,199,195, 42,160, 99, 68,240, 80,128,193,136, 2, 4, 68, 11, 6, 0, 0, 28, 6, 0, 0, + 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, + 18, 0, 0, 0,148, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, + 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 28, 6,149, 2, 11, 6,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,136,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80,240,164, 29, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0,208,245,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 1, 0, 0,144, 39,155, 26, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,192, 46,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 66, 86, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,241,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 16,243,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,192, 88,158, 26, - 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 40,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 42,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,243,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +112,244,164, 29, 1, 0, 0, 0,176,241,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 42,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 40,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,244,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16,243,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, - 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,208,245,164, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, +224,253,164, 29, 1, 0, 0, 0, 80,240,164, 29, 1, 0, 0, 0,176,241,164, 29, 1, 0, 0, 0,112,244,164, 29, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 43,155, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,144, 43,155, 26, - 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, - 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,247,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 96,248,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,248,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,192,249,164, 29, 1, 0, 0, 0, 0,247,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,249,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 32,251,164, 29, 1, 0, 0, 0, 96,248,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,251,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,128,252,164, 29, 1, 0, 0, 0,192,249,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,252,164, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,251,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,220, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,220, 2, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, +248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, + 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61, +170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195, +205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, + 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,192, 46,155, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,144, 39,155, 26, 1, 0, 0, 0,208, 40,155, 26, 1, 0, 0, 0, 48, 42,155, 26, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 32, 48,155, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16, 60,155, 26, 1, 0, 0, 0, 80, 20,155, 26, - 1, 0, 0, 0,112, 5,155, 26, 1, 0, 0, 0, 48, 9,155, 26, 1, 0, 0, 0,144, 9,155, 26, 1, 0, 0, 0,176, 7,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 15, 15, 36, 6, - 96, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,236, 81, 3, 1, 0, 0, 0,192, 51,155, 26, 1, 0, 0, 0,176, 58,155, 26, - 1, 0, 0, 0, 0, 49,155, 26, 1, 0, 0, 0, 96, 50,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 93,158, 26, 1, 0, 0, 0, 0,210, 0, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 49,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96, 50,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, 5, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,237, 81, 3, 1, 0, 0, 0, 0,163,158, 26, 1, 0, 0, 0, 0,163,158, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,217,158, 26, 1, 0, 0, 0,144, 37,159, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 50,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,155, 26, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 35, 6, 0, 0, 18, 0, 0, 0, 69, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 36, 6, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 26, 0, 0, 0, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 70, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,236, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 39,159, 26, 1, 0, 0, 0,240, 94, 1, 28, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,192, 51,155, 26, - 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0,176, 58,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,224,253,164, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 2,165, 29, 1, 0, 0, 0, +208,245,164, 29, 1, 0, 0, 0, 0,247,164, 29, 1, 0, 0, 0,128,252,164, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64,255,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 0,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 52,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32, 54,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160, 0,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,255,164, 29, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, + 0, 2,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,253,164, 29, 1, 0, 0, 0, + 64,255,164, 29, 1, 0, 0, 0,160, 0,165, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 54,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 52,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, + 0, 3,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,236,164, 29, 1, 0, 0, 0, +208,224,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 6, 6, 0, 3,180, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,128,217, 2, 1, 0, 0, 0, 0, 8,165, 29, 1, 0, 0, 0, 80, 29,165, 29, 1, 0, 0, 0, +224, 3,165, 29, 1, 0, 0, 0,160, 6,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 36,201, 20, 1, 0, 0, 0,128, 85,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 3,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 64, 5,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,134,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 5,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,160, 6,165, 29, 1, 0, 0, 0,224, 3,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 55,155, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,128, 55,155, 26, - 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, - 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,176, 58,155, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192, 51,155, 26, 1, 0, 0, 0,192, 52,155, 26, 1, 0, 0, 0, 32, 54,155, 26, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 16, 60,155, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112, 77,155, 26, 1, 0, 0, 0, 32, 48,155, 26, - 1, 0, 0, 0,112, 8,155, 26, 1, 0, 0, 0, 16, 8,155, 26, 1, 0, 0, 0, 80, 7,155, 26, 1, 0, 0, 0,208, 8,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 69, 3, 0, 0, 38, 4, 0, 0, 3, 3, 92, 1, -226, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,233, 81, 3, 1, 0, 0, 0,176, 63,155, 26, 1, 0, 0, 0, 16, 76,155, 26, - 1, 0, 0, 0,240, 60,155, 26, 1, 0, 0, 0, 80, 62,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176, 95, 1, 28, 1, 0, 0, 0,144, 96, 1, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 60,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80, 62,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 91, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 26, 0, 92, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 13, 4, 0, 0, - 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 26, 0, 7, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,235, 81, 3, 1, 0, 0, 0, 96,168,130, 26, 1, 0, 0, 0, 96,168,130, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 98, 1, 28, 1, 0, 0, 0, 32, 99, 1, 28, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 62,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 60,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,165, 67, 0, 0, 54,195, 0, 0, 0, 0, 75, 1, 0, 0, - 92, 1, 0, 0, 18, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 74, 1, 0, 0, 18, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 92, 1,200, 0, 75, 1,182, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 69, 3, 0, 0, - 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1,200, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,234, 81, 3, 1, 0, 0, 0,160, 4,131, 26, 1, 0, 0, 0,160, 4,131, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,101, 1, 28, 1, 0, 0, 0,192,233,158, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 63,155, 26, - 1, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0,224, 68,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,144,130,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 6,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,154,190, 0,128,166, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 51, 39, 26, - 1, 0, 0, 0,192, 51, 39, 26, 1, 0, 0, 0, 80, 80, 94, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,129,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 80, 80, 94, 3, - 1, 0, 0, 0,218, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 16, 65,155, 26, 1, 0, 0, 0, 68, 65, 84, 65, -208, 0, 0, 0, 16, 65,155, 26, 1, 0, 0, 0,217, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66, 25, 4, - 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, - 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,144,137,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,148,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,240,140,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,146,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,160, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,133,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,132,157, 26, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 66,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 67,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, - 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, - 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 0, 8,165, 29, 1, 0, 0, 0, +168, 0, 0, 0, 1, 0, 0, 0,160, 11,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 8,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 64, 10,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 67,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 66,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0, -205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, - 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 10,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 8,165, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, + 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, + 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, + 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, + 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,224, 68,155, 26, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 16, 76,155, 26, - 1, 0, 0, 0,176, 63,155, 26, 1, 0, 0, 0, 32, 66,155, 26, 1, 0, 0, 0,128, 67,155, 26, 1, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160, 11,165, 29, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0, 32, 17,165, 29, 1, 0, 0, 0, 0, 8,165, 29, 1, 0, 0, 0,224, 8,165, 29, 1, 0, 0, 0, + 64, 10,165, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 13,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 96, 14,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32, 70,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 71,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128, 71,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 70,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 14,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +192, 15,165, 29, 1, 0, 0, 0, 0, 13,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 72,155, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0,224, 72,155, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, -115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 15,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 14,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 32, 17,165, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, + 48, 25,165, 29, 1, 0, 0, 0,160, 11,165, 29, 1, 0, 0, 0, 0, 13,165, 29, 1, 0, 0, 0,192, 15,165, 29, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 16, 76,155, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 68,155, 26, 1, 0, 0, 0, 32, 70,155, 26, 1, 0, 0, 0,128, 71,155, 26, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112, 77,155, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 60,155, 26, 1, 0, 0, 0, 48, 9,155, 26, 1, 0, 0, 0,240, 6,155, 26, 1, 0, 0, 0, 16, 8,155, 26, - 1, 0, 0, 0,144, 9,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 97, 0, 0, 0, - 38, 4, 0, 0, 1, 1, 36, 6,198, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,238, 81, 3, 1, 0, 0, 0, 32,107,155, 26, - 1, 0, 0, 0, 64,111,155, 26, 1, 0, 0, 0, 80, 78,155, 26, 1, 0, 0, 0,144,102,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,137, 77, 3, 1, 0, 0, 0, 32,137, 77, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 80, 78,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176, 79,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 89, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 6, 0, 0, 97, 0, 0, 0,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, - 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,246, 81, 3, 1, 0, 0, 0,128,177, 88, 23, - 1, 0, 0, 0,128,177, 88, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,164,156, 25, - 1, 0, 0, 0, 64, 11,159, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,176, 79,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80, 87,155, 26, 1, 0, 0, 0, 80, 78,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,128, 72,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,128, 72,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 51, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 52, 3,143, 0, - 34, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0,243, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 52, 3, - 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,243, 81, 3, 1, 0, 0, 0,128,250, 88, 23, - 1, 0, 0, 0, 32,117, 82, 23, 1, 0, 0, 0, 16, 81,155, 26, 1, 0, 0, 0,192, 85,155, 26, 1, 0, 0, 0, 96, 76, 78, 3, - 1, 0, 0, 0,160, 15,159, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 16, 81,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 82,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16,244, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 82,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 48, 84,155, 26, 1, 0, 0, 0, 16, 81,155, 26, 1, 0, 0, 0,176,118,200, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 48, 84,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 85,155, 26, 1, 0, 0, 0,160, 82,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111,108,115, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,252,143, 0,244, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 18,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,176, 19,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 19,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 16, 21,165, 29, 1, 0, 0, 0, 80, 18,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 21,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,112, 22,165, 29, 1, 0, 0, 0,176, 19,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 22,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,208, 23,165, 29, 1, 0, 0, 0, 16, 21,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 23,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 22,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,224, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,224, 2, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, +248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, + 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61, +170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195, +205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, + 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 85,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 84,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116, -105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116, -105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77,101,115,104, 32, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,124,252,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 80, 87,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64, 90,155, 26, 1, 0, 0, 0,176, 79,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0,123, 0, 0, 0,242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, - 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 81, 3, 1, 0, 0, 0, 16,212,130, 26, - 1, 0, 0, 0, 16,212,130, 26, 1, 0, 0, 0,176, 88,155, 26, 1, 0, 0, 0,176, 88,155, 26, 1, 0, 0, 0,160,217,205, 25, - 1, 0, 0, 0, 0, 20,159, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,176, 88,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,245, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97, -115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97, -115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0,116, 32, 77, -111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 90,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,144,102,155, 26, 1, 0, 0, 0, 80, 87,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,143,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,102,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -171, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -171, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,172, 3,163, 0,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 35, 6, 0, 0,123, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,112,240, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 91,155, 26, - 1, 0, 0, 0,144, 56,136, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 91,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 48, 93,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,241, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 48, 93,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 94,155, 26, 1, 0, 0, 0,160, 91,155, 26, - 1, 0, 0, 0, 64,242, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,251,163, 0, 58, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 94,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 80, 96,155, 26, 1, 0, 0, 0, 48, 93,155, 26, 1, 0, 0, 0,176,203,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 48, 25,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 80, 29,165, 29, 1, 0, 0, 0, + 32, 17,165, 29, 1, 0, 0, 0, 80, 18,165, 29, 1, 0, 0, 0,208, 23,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144, 26,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 27,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240, 27,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 26,165, 29, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, + 80, 29,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 25,165, 29, 1, 0, 0, 0, +144, 26,165, 29, 1, 0, 0, 0,240, 27,165, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, +208, 30,165, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 64,127,165, 29, 1, 0, 0, 0,208,190,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0, + 64, 35,165, 29, 1, 0, 0, 0,160, 35,165, 29, 1, 0, 0, 0, 0, 42,165, 29, 1, 0, 0, 0, 96, 42,165, 29, 1, 0, 0, 0, +144, 93,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +160,204,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +160, 32,165, 29, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0, + 64, 32,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 0, 33,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 32, 34,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,101, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, +192, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +128, 34,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,100, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,160, 35,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 36,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 0, 36,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 36,165, 29, 1, 0, 0, 0, +160, 35,165, 29, 1, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 96, 36,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 36,165, 29, 1, 0, 0, 0, + 0, 36,165, 29, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,192, 36,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 37,165, 29, 1, 0, 0, 0, + 96, 36,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 32, 37,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 37,165, 29, 1, 0, 0, 0, +192, 36,165, 29, 1, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,128, 37,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 37,165, 29, 1, 0, 0, 0, + 32, 37,165, 29, 1, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,224, 37,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 38,165, 29, 1, 0, 0, 0, +128, 37,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 64, 38,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 38,165, 29, 1, 0, 0, 0, +224, 37,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,160, 38,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 39,165, 29, 1, 0, 0, 0, + 64, 38,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 0, 39,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 39,165, 29, 1, 0, 0, 0, +160, 38,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 96, 39,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 39,165, 29, 1, 0, 0, 0, + 0, 39,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,192, 39,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 40,165, 29, 1, 0, 0, 0, + 96, 39,165, 29, 1, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 32, 40,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 40,165, 29, 1, 0, 0, 0, +192, 39,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,128, 40,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 40,165, 29, 1, 0, 0, 0, + 32, 40,165, 29, 1, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,224, 40,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 41,165, 29, 1, 0, 0, 0, +128, 40,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 64, 41,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 41,165, 29, 1, 0, 0, 0, +224, 40,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,160, 41,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 42,165, 29, 1, 0, 0, 0, + 64, 41,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 0, 42,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 41,165, 29, 1, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 96, 42,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 46,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, + 0, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,102, 4, 0, 0,128, 4, 0, 0, + 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,192,126,165, 29, 1, 0, 0, 0, +192,126,165, 29, 1, 0, 0, 0, 64, 43,165, 29, 1, 0, 0, 0,160, 44,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160,128,140, 27, 1, 0, 0, 0,240, 63,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64, 43,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 44,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +102, 4, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 2, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 48,210, 6, 3, 1, 0, 0, 0, + 48,210, 6, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197,200, 20, 1, 0, 0, 0, +192, 22,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160, 44,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 43,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, +112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,224,200, 20, 1, 0, 0, 0, + 80, 93,201, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, + 0, 46,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160, 70,165, 29, 1, 0, 0, 0, 96, 42,165, 29, 1, 0, 0, 0, + 96, 33,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,115, 3, 0, 0, 4, 4, 92, 1,116, 3, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,141,217, 2, 1, 0, 0, 0, 64, 65,165, 29, 1, 0, 0, 0, 64, 69,165, 29, 1, 0, 0, 0, +224, 46,165, 29, 1, 0, 0, 0, 64, 48,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 4,201, 20, 1, 0, 0, 0, 32, 31,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 46,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 64, 48,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 31, 0, 92, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 85, 3, 0, 0,115, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 31, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,143,217, 2, 1, 0, 0, 0, 48,164, 6, 28, 1, 0, 0, 0, 48,164, 6, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 40,201, 20, 1, 0, 0, 0,208,248,199, 20, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 48,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 46,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 67, + 0,128, 80,196, 0, 0, 0, 0, 0, 0, 0, 0,252,127,165, 67,251,191, 80,196, 0, 0, 0, 0, 75, 1, 0, 0, 92, 1, 0, 0, + 18, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, + 18, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 92, 1, 85, 3, 75, 1, 67, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128,168,164, 21, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 85, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,142,217, 2, 1, 0, 0, 0, 48,138, 23, 3, 1, 0, 0, 0, 48, 18, 7, 3, 1, 0, 0, 0, +160, 49,165, 29, 1, 0, 0, 0,176, 63,165, 29, 1, 0, 0, 0,144, 10,200, 20, 1, 0, 0, 0, 96, 3,160, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 49,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48, 51,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 74, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48, 51,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192, 52,165, 29, 1, 0, 0, 0, +160, 49,165, 29, 1, 0, 0, 0, 32,198, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 74, 1, 61, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 52,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80, 54,165, 29, 1, 0, 0, 0, 48, 51,165, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 74, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 80, 54,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224, 55,165, 29, 1, 0, 0, 0, +192, 52,165, 29, 1, 0, 0, 0, 96,202, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111, +110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 74, 1,203, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 80, 96,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 97,155, 26, 1, 0, 0, 0,192, 94,155, 26, - 1, 0, 0, 0, 16,206,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 55,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112, 57,165, 29, 1, 0, 0, 0, 80, 54,165, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,251,163, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 97,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,112, 99,155, 26, 1, 0, 0, 0, 80, 96,155, 26, 1, 0, 0, 0,144,215,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 74, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,184,251,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,112, 57,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 59,165, 29, 1, 0, 0, 0, +224, 55,165, 29, 1, 0, 0, 0, 32,207, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 74, 1,102, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,112, 99,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,101,155, 26, 1, 0, 0, 0,224, 97,155, 26, - 1, 0, 0, 0,240,217,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, - 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, - 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114, -105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,251,163, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 7, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0, 59,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144, 60,165, 29, 1, 0, 0, 0,112, 57,165, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,101,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,144, 56,136, 26, 1, 0, 0, 0,112, 99,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, + 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77,101,115,104, 32, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 74, 1,105, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 23,252,163, 0,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,144, 56,136, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101,155, 26, - 1, 0, 0, 0,112,208,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,144, 60,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32, 62,165, 29, 1, 0, 0, 0, + 0, 59,165, 29, 1, 0, 0, 0, 16,142, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97, +110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123,252, 74, 1,168, 0, + 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32, 62,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176, 63,165, 29, 1, 0, 0, 0,144, 60,165, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,102,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 90,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 74, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,176, 63,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 62,165, 29, 1, 0, 0, 0,144,217, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 35, 6, 0, 0,123, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 5,172, 3, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,144,239, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 26,159, 26, 1, 0, 0, 0, 0,239,158, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,103,155, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,240,103,155, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76,210, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,180,157,229, 62,161,248, 40,191, 48,180, 81,191,184,158, 81,191,118, 90,127, 63, 59,228,162, 62, 26, 63,185, 62, - 35, 44,185, 62,147,180,109,188,219, 57,188, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65, -214,211,111, 65, 99,240,191, 62,110,116, 85, 63, 48,185, 70,188, 0, 0, 80,180,129,100,122,190, 36, 98,241, 61,159,118, 11, 63, - 0, 0,140, 51, 67,108,117,194,185,204,216, 65,105,156, 5,194,212,247,159,192,235, 62,114, 66, 61,254,213,193,158,225, 3, 66, - 55, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,180,157,229, 62,161,248, 40,191, 48,180, 81,191,184,158, 81,191,118, 90,127, 63, 59,228,162, 62, 26, 63,185, 62, - 35, 44,185, 62,147,180,109,188,219, 57,188, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 74, 1, 0, 0, + 20, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,188,189,169, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64, 65,165, 29, 1, 0, 0, 0, +163, 0, 0, 0, 1, 0, 0, 0, 64, 69,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 32,107,155, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 64,111,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 17, 39, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,108,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,109,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,240,171,140, 27, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 66,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +224, 67,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,109,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,108,155, 26, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 67,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 66,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64,111,155, 26, - 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,107,155, 26, 1, 0, 0, 0,128,108,155, 26, - 1, 0, 0, 0,224,109,155, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,192,112,155, 26, - 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,176, 38,156, 26, 1, 0, 0, 0, 96, 4,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,113,155, 26, 1, 0, 0, 0,176,118,155, 26, - 1, 0, 0, 0, 16,119,155, 26, 1, 0, 0, 0,144,126,155, 26, 1, 0, 0, 0,240,126,155, 26, 1, 0, 0, 0,128, 7,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,109, 60, 48, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,208,113,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 48,114,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,114,155, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,144,114,155, 26, 1, 0, 0, 0,208,113,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,114,155, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,240,114,155, 26, 1, 0, 0, 0, 48,114,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 66, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,114,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 80,115,155, 26, - 1, 0, 0, 0,144,114,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 80,115,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,176,115,155, 26, 1, 0, 0, 0,240,114,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,115,155, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 16,116,155, 26, 1, 0, 0, 0, 80,115,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,116,155, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,112,116,155, 26, 1, 0, 0, 0,176,115,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,116,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,208,116,155, 26, - 1, 0, 0, 0, 16,116,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,156, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,208,116,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 48,117,155, 26, 1, 0, 0, 0,112,116,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,117,155, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,144,117,155, 26, 1, 0, 0, 0,208,116,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7,156, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,117,155, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,240,117,155, 26, 1, 0, 0, 0, 48,117,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,156, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,117,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 80,118,155, 26, - 1, 0, 0, 0,144,117,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 80,118,155, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,176,118,155, 26, 1, 0, 0, 0,240,117,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,156, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,118,155, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,118,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 60, 1, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,119,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,112,119,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,114,155, 26, 1, 0, 0, 0,144,114,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,119,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,208,119,155, 26, 1, 0, 0, 0, 16,119,155, 26, 1, 0, 0, 0, 48,114,155, 26, 1, 0, 0, 0, 80,115,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,119,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48,120,155, 26, 1, 0, 0, 0,112,119,155, 26, 1, 0, 0, 0,144,114,155, 26, 1, 0, 0, 0,176,115,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,120,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,144,120,155, 26, 1, 0, 0, 0,208,119,155, 26, 1, 0, 0, 0, 80,115,155, 26, 1, 0, 0, 0,176,115,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,120,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,240,120,155, 26, 1, 0, 0, 0, 48,120,155, 26, 1, 0, 0, 0, 80,115,155, 26, 1, 0, 0, 0, 16,116,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,120,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 80,121,155, 26, 1, 0, 0, 0,144,120,155, 26, 1, 0, 0, 0, 16,116,155, 26, 1, 0, 0, 0,112,116,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,121,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,176,121,155, 26, 1, 0, 0, 0,240,120,155, 26, 1, 0, 0, 0,240,114,155, 26, 1, 0, 0, 0,208,116,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,121,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 16,122,155, 26, 1, 0, 0, 0, 80,121,155, 26, 1, 0, 0, 0,112,116,155, 26, 1, 0, 0, 0,208,116,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,122,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,112,122,155, 26, 1, 0, 0, 0,176,121,155, 26, 1, 0, 0, 0,208,113,155, 26, 1, 0, 0, 0, 16,116,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,122,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,208,122,155, 26, 1, 0, 0, 0, 16,122,155, 26, 1, 0, 0, 0,208,113,155, 26, 1, 0, 0, 0,208,116,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,122,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48,123,155, 26, 1, 0, 0, 0,112,122,155, 26, 1, 0, 0, 0,176,115,155, 26, 1, 0, 0, 0, 48,117,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,123,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,144,123,155, 26, 1, 0, 0, 0,208,122,155, 26, 1, 0, 0, 0,240,114,155, 26, 1, 0, 0, 0, 48,117,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,123,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,240,123,155, 26, 1, 0, 0, 0, 48,123,155, 26, 1, 0, 0, 0,112,116,155, 26, 1, 0, 0, 0, 48,117,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,123,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 80,124,155, 26, 1, 0, 0, 0,144,123,155, 26, 1, 0, 0, 0,144,117,155, 26, 1, 0, 0, 0,240,117,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,124,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,176,124,155, 26, 1, 0, 0, 0,240,123,155, 26, 1, 0, 0, 0,176,115,155, 26, 1, 0, 0, 0,240,117,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,124,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 16,125,155, 26, 1, 0, 0, 0, 80,124,155, 26, 1, 0, 0, 0, 48,117,155, 26, 1, 0, 0, 0,144,117,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,125,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,112,125,155, 26, 1, 0, 0, 0,176,124,155, 26, 1, 0, 0, 0, 16,116,155, 26, 1, 0, 0, 0, 80,118,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,125,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,208,125,155, 26, 1, 0, 0, 0, 16,125,155, 26, 1, 0, 0, 0,144,117,155, 26, 1, 0, 0, 0, 80,118,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,125,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48,126,155, 26, 1, 0, 0, 0,112,125,155, 26, 1, 0, 0, 0, 80,115,155, 26, 1, 0, 0, 0,176,118,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,126,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,144,126,155, 26, 1, 0, 0, 0,208,125,155, 26, 1, 0, 0, 0,240,117,155, 26, 1, 0, 0, 0,176,118,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,126,155, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,126,155, 26, 1, 0, 0, 0, 80,118,155, 26, 1, 0, 0, 0,176,118,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,240,126,155, 26, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,144,130,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,115,155, 26, 1, 0, 0, 0, 48,114,155, 26, - 1, 0, 0, 0,144,114,155, 26, 1, 0, 0, 0,176,115,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 40, 4, 0, 0, 66, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 16, 15, 82, 3, - 1, 0, 0, 0, 48, 38,156, 26, 1, 0, 0, 0, 48, 38,156, 26, 1, 0, 0, 0,208,127,155, 26, 1, 0, 0, 0, 48,129,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,255,197, 25, 1, 0, 0, 0, 64,229,228, 28, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,127,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48,129,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 40, 4, 0, 0, 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 16, 82, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,228, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,228, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, +237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,129,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,127,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, -255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,129, 7, 3, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 66, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 15, 82, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144,130,155, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,163,155, 26, - 1, 0, 0, 0,240,126,155, 26, 1, 0, 0, 0,208,116,155, 26, 1, 0, 0, 0,112,116,155, 26, 1, 0, 0, 0, 48,117,155, 26, - 1, 0, 0, 0,240,114,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, -155, 1, 0, 0, 4, 4, 96, 1,156, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 11, 82, 3, 1, 0, 0, 0,208,149,155, 26, - 1, 0, 0, 0, 80,162,155, 26, 1, 0, 0, 0,112,131,155, 26, 1, 0, 0, 0,208,132,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 46,228, 28, 1, 0, 0, 0, 48, 64,192, 25, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112,131,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,132,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,176, 67, 0, 0, 0, 0, - 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 1, 31, 0, 96, 1, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0, -128, 7, 0, 0,125, 1, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 31, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 14, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208,132,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,131,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 67, 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,167, 67,254,127,181,195, - 0, 0, 0, 0, 79, 1, 0, 0, 96, 1, 0, 0, 18, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 18, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 96, 1,125, 1, 79, 1, -107, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,156, 25, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1,125, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 12, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,134,155, 26, 1, 0, 0, 0, 64,148,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 48,134,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,135,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 13, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 78, 1, 36, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,135,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 80,137,155, 26, 1, 0, 0, 0, 48,134,155, 26, 1, 0, 0, 0,176,121,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,135,255, 78, 1, 61, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 80,137,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,138,155, 26, 1, 0, 0, 0,192,135,155, 26, - 1, 0, 0, 0,176,131,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 78, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,138,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,112,140,155, 26, 1, 0, 0, 0, 80,137,155, 26, 1, 0, 0, 0,144,133,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,165,254, 78, 1,178, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,112,140,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,142,155, 26, 1, 0, 0, 0,224,138,155, 26, - 1, 0, 0, 0,112,138,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,254, 78, 1, 58, 0, 20, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,142,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,144,143,155, 26, 1, 0, 0, 0,112,140,155, 26, 1, 0, 0, 0, 80,140,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,213,253, 78, 1,102, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,144,143,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,145,155, 26, 1, 0, 0, 0, 0,142,155, 26, - 1, 0, 0, 0, 48,145,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,253, 78, 1,105, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 64, 69,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,165, 29, 1, 0, 0, 0, +128, 66,165, 29, 1, 0, 0, 0,224, 67,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,160, 70,165, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 96, 79,165, 29, 1, 0, 0, 0, 0, 46,165, 29, 1, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0, +224, 34,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15, 36, 6,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16,109,217, 2, 1, 0, 0, 0, 64, 74,165, 29, 1, 0, 0, 0, 0, 78,165, 29, 1, 0, 0, 0,128, 71,165, 29, 1, 0, 0, 0, +224, 72,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,149,140, 27, 1, 0, 0, 0, + 32,110,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 71,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +224, 72,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,110,217, 2, 1, 0, 0, 0, 48,250, 6, 3, 1, 0, 0, 0, 48,250, 6, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192, 6,143, 27, 1, 0, 0, 0,240, 87,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 72,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 71,165, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0, 36, 6, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 74, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,109,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,154,162, 21, 1, 0, 0, 0,176,145,196, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64, 74,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, + 0, 78,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,145,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,176,146,155, 26, 1, 0, 0, 0,144,143,155, 26, 1, 0, 0, 0, 0,151,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 60,253, 78, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 75,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +160, 76,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,176,146,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,148,155, 26, 1, 0, 0, 0, 32,145,155, 26, - 1, 0, 0, 0,224,152,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,253, 78, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 76,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 75,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,148,155, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,146,155, 26, 1, 0, 0, 0,192,154,159, 25, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 12,253, 78, 1, 0, 0, 20, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,232, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,232, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, +161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 0, 78,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 74,165, 29, 1, 0, 0, 0, + 64, 75,165, 29, 1, 0, 0, 0,160, 76,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96, 79,165, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,144, 93,165, 29, 1, 0, 0, 0,160, 70,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0, +192, 33,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0,100, 4, 0, 0, 3, 3, 92, 1,240, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,106,217, 2, 1, 0, 0, 0, 0, 83,165, 29, 1, 0, 0, 0, 48, 92,165, 29, 1, 0, 0, 0, 64, 80,165, 29, 1, 0, 0, 0, +160, 81,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 13,143, 27, 1, 0, 0, 0, + 16,150,162, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 80,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +160, 81,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 92, 1, 26, 0, 92, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 75, 4, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 26, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,108,217, 2, 1, 0, 0, 0, 48, 74, 10, 28, 1, 0, 0, 0, 48, 74, 10, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112, 42,201, 20, 1, 0, 0, 0, 80,142,162, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 81,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 80,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,165, 67, 0, 0, 68,195, 0, 0, 0, 0, 75, 1, 0, 0, 92, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, + 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, + 0, 0, 0, 4, 6, 0, 92, 1,214, 0, 75, 1,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 1,214, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,107,217, 2, 1, 0, 0, 0, 48,144, 11, 28, 1, 0, 0, 0, 48,144, 11, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,201, 20, 1, 0, 0, 0,208, 62,202, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 83,165, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, + 48, 88,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,102,164, 21, 1, 0, 0, 0,192,102,164, 21, 1, 0, 0, 0, +144, 39,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,144, 39,163, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 13, 0, 0, 0, 96, 84,165, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 96, 84,165, 29, 1, 0, 0, 0, +218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, + 48,180, 4, 28, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,220, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,214, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +112, 85,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 86,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, + 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 1, 0, 0,208,149,155, 26, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 48,155,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208, 86,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 85,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, + 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, + 48, 88,165, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 48, 92,165, 29, 1, 0, 0, 0, 0, 83,165, 29, 1, 0, 0, 0, +112, 85,165, 29, 1, 0, 0, 0,208, 86,165, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 8,155, 25, - 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,151,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,152,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,152,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,153,155, 26, 1, 0, 0, 0, 16,151,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 89,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,208, 90,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 90,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 89,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0, -235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,153,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,152,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0, -235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 48,155,155, 26, - 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 80,162,155, 26, 1, 0, 0, 0,208,149,155, 26, 1, 0, 0, 0, 16,151,155, 26, - 1, 0, 0, 0,208,153,155, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,236, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,236, 2, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, + 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96,156,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,157,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,157,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,156,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, + 68, 65, 84, 65, 32, 1, 0, 0, 48, 92,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 88,165, 29, 1, 0, 0, 0,112, 89,165, 29, 1, 0, 0, 0,208, 90,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +144, 93,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 79,165, 29, 1, 0, 0, 0, +224, 34,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0,101, 0, 0, 0,100, 4, 0, 0, 1, 1, 36, 6, 0, 4, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,111,217, 2, 1, 0, 0, 0,160,121,165, 29, 1, 0, 0, 0,192,125,165, 29, 1, 0, 0, 0, +112, 94,165, 29, 1, 0, 0, 0, 64,120,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,242,201, 20, 1, 0, 0, 0,176, 4,216, 2, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 94,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,208, 95,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,119,217, 2, 1, 0, 0, 0, 48, 10, 4, 28, 1, 0, 0, 0, 48, 10, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,107,164, 21, 1, 0, 0, 0, 96,173,140, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 95,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,112,103,165, 29, 1, 0, 0, 0,112, 94,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 0, 87,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 87,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,110, 3,143, 0, 92, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,247, 0, 0, 0,100, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,110, 3, 11, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,116,217, 2, 1, 0, 0, 0, 48,180, 11, 28, 1, 0, 0, 0, 48,254, 6, 3, 1, 0, 0, 0, + 48, 97,165, 29, 1, 0, 0, 0,224,101,165, 29, 1, 0, 0, 0,128, 28,202, 20, 1, 0, 0, 0, 96, 96,160, 21, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 97,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,192, 98,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,117,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,192, 98,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,100,165, 29, 1, 0, 0, 0, + 48, 97,165, 29, 1, 0, 0, 0,144, 38, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84, +111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,159,155, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0, 32,159,155, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, -115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,100,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,224,101,165, 29, 1, 0, 0, 0,192, 98,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,252,143, 0,244, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80,162,155, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,155,155, 26, 1, 0, 0, 0, 96,156,155, 26, 1, 0, 0, 0,192,157,155, 26, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176,163,155, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,200,155, 26, - 1, 0, 0, 0,144,130,155, 26, 1, 0, 0, 0,208,113,155, 26, 1, 0, 0, 0, 16,116,155, 26, 1, 0, 0, 0,112,116,155, 26, - 1, 0, 0, 0,208,116,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, -155, 1, 0, 0, 17, 17, 32, 6,156, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 52, 82, 3, 1, 0, 0, 0, 64,170,155, 26, - 1, 0, 0, 0, 96,199,155, 26, 1, 0, 0, 0,144,164,155, 26, 1, 0, 0, 0,224,168,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,192,199, 25, 1, 0, 0, 0,160, 88,199, 25, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144,164,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240,165,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 32, 6, 26, 0, 32, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 55, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240,165,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,168,155, 26, 1, 0, 0, 0,144,164,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,184,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,184,195, - 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,130, 1,203, 0, -112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,130, 1, - 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 54, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,167,155, 26, 1, 0, 0, 0, 80,167,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 80,167,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49,194, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111, -112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111, -112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,168,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,165,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, - 0, 0,112, 67,228, 46, 44,195,220,133,181, 68,107, 28,209,194, 26, 71,172, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,130, 1, 51, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 53, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 64,170,155, 26, 1, 0, 0, 0,174, 0, 0, 0, - 1, 0, 0, 0,224,174,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,170,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 32,172,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,172,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,128,173,155, 26, 1, 0, 0, 0,192,170,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,173,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,172,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,116,190, 0,128,158, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, -122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,224,174,155, 26, 1, 0, 0, 0,167, 0, 0, 0, - 1, 0, 0, 0,128,178,155, 26, 1, 0, 0, 0, 64,170,155, 26, 1, 0, 0, 0,192,170,155, 26, 1, 0, 0, 0,128,173,155, 26, - 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,175,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 32,177,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,177,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,175,155, 26, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, - 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0, -121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0, -121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128,178,155, 26, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 0,184,155, 26, 1, 0, 0, 0,224,174,155, 26, 1, 0, 0, 0,192,175,155, 26, 1, 0, 0, 0, 32,177,155, 26, - 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,224,101,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,100,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 79,112,116, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,252,143, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,179,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,181,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, - 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,103,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 96,106,165, 29, 1, 0, 0, 0,208, 95,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,127, 0, 0, 0,246, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 12, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,118,217, 2, 1, 0, 0, 0, 48,186, 10, 28, 1, 0, 0, 0, 48,186, 10, 28, 1, 0, 0, 0, +208,104,165, 29, 1, 0, 0, 0,208,104,165, 29, 1, 0, 0, 0,192,114,160, 21, 1, 0, 0, 0,192, 3,201, 20, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,104,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,118,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,181,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,182,155, 26, - 1, 0, 0, 0,224,179,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0,116, 32, 77,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,106,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,120,165, 29, 1, 0, 0, 0, +112,103,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,143,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,102,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,171, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,171, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +172, 3,163, 0,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 6, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,113,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,107,165, 29, 1, 0, 0, 0,176,118,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,182,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,181,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, - 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,192,107,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,109,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, +109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 0,184,155, 26, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 64,195,155, 26, - 1, 0, 0, 0,128,178,155, 26, 1, 0, 0, 0,224,179,155, 26, 1, 0, 0, 0,160,182,155, 26, 1, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,109,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,224,110,165, 29, 1, 0, 0, 0,192,107,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,251,163, 0, 58, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,185,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,144,186,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,186,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,240,187,155, 26, 1, 0, 0, 0, 48,185,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,187,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 80,189,155, 26, 1, 0, 0, 0,144,186,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,189,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,176,190,155, 26, 1, 0, 0, 0,240,187,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,190,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,189,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16,192,155, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0, 16,192,155, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, - 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, - 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, - 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,224,110,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,112,165, 29, 1, 0, 0, 0, + 80,109,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 64,195,155, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 96,199,155, 26, 1, 0, 0, 0, 0,184,155, 26, - 1, 0, 0, 0, 48,185,155, 26, 1, 0, 0, 0,176,190,155, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,196,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,198,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,198,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,196,155, 26, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96,199,155, 26, - 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,195,155, 26, 1, 0, 0, 0,160,196,155, 26, - 1, 0, 0, 0, 0,198,155, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,200,155, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,228,155, 26, 1, 0, 0, 0,176,163,155, 26, 1, 0, 0, 0,144,117,155, 26, - 1, 0, 0, 0,240,117,155, 26, 1, 0, 0, 0,176,115,155, 26, 1, 0, 0, 0, 48,117,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,157, 1, 0, 0, 38, 4, 0, 0, 9, 9, 72, 2,138, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112, 45, 82, 3, 1, 0, 0, 0, 0,204,155, 26, 1, 0, 0, 0, 64,227,155, 26, 1, 0, 0, 0, 64,201,155, 26, - 1, 0, 0, 0,160,202,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,124,199, 25, - 1, 0, 0, 0,128,140,199, 25, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,201,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,160,202,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 18, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,181, 67, 0, 0,200, 65, 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 72, 2, 26, 0, 72, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 48, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,202,155, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,201,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, - 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0,116,223, 10, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, -111, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, - 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 72, 2,112, 2, 72, 2,112, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,183, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 2,112, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 46, 82, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 0,204,155, 26, 1, 0, 0, 0,169, 0, 0, 0, - 1, 0, 0, 0,144,209,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,112,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0,114,165, 29, 1, 0, 0, 0,224,110,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,251,163, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 0,114,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,115,165, 29, 1, 0, 0, 0, +112,112,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117, +110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,251,163, 0, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,115,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 32,117,165, 29, 1, 0, 0, 0, 0,114,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, +110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, +110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,251,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 32,117,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,118,165, 29, 1, 0, 0, 0, +144,115,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 68,105,115, +112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,252,163, 0,104, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,118,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,117,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,206,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48,208,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,182, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,108, 1, 26, 0,108, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 41, 1, 0, 0, - 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,208,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,206,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 67, 0, 0,210,195, 0, 0, 0, 0, 91, 1, 0, 0, -108, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 90, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,108, 1,182, 1, 91, 1,164, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 67, 1, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64,120,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96,106,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,209,155, 26, - 1, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0,192,214,155, 26, 1, 0, 0, 0, 0,204,155, 26, 1, 0, 0, 0,208,206,155, 26, - 1, 0, 0, 0, 48,208,155, 26, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 0, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +132, 5,230, 3, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224, 34,201, 20, 1, 0, 0, 0, 80,120,201, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,240, 2, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,240, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 19,198, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, + 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, 26, 63,185, 62, 35, 44,185, 62,147,180,109,188,122, 73,177, 63, +138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 99,240,191, 62,110,116, 85, 63, + 48,185, 70,188, 0, 0, 78,180,246,235,132,190,156, 35, 0, 62,130, 17, 20, 63, 0, 0,192,178, 67,108,117,194,185,204,216, 65, +105,156, 5,194,213,247,159,192,235, 62,114, 66, 61,254,213,193,158,225, 3, 66, 56, 8,160, 64, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, + 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, 26, 63,185, 62, 35, 44,185, 62,147,180,109,188,122, 73,177, 63, +138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 97, 89,186, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,188,189,169, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,158,224, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,192,158,224, 25, - 1, 0, 0, 0,218, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,240,210,155, 26, 1, 0, 0, 0, 68, 65, 84, 65, -208, 0, 0, 0,240,210,155, 26, 1, 0, 0, 0,217, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66, 25, 4, - 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, - 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,144,137,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,148,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,240,140,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,146,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,160, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,133,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,132,157, 26, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,212,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,213,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,162, 67, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,128,137, 67, - 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0, 68, 1, 30, 0, 68, 1, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0,252, 3, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 1, 30, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,213,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,212,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 67, 0, 0,137,196, 0, 0, 0, 0, 0, 0, 0, 0, -254,127,153, 67,253,127,198,195, 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, - 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0, 68, 1,159, 1, 51, 1,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, 93, 2, 0, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 1,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,192,214,155, 26, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 32,220,155, 26, - 1, 0, 0, 0,144,209,155, 26, 1, 0, 0, 0, 0,212,155, 26, 1, 0, 0, 0, 96,213,155, 26, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,121,165, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0,192,125,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,123,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 96,124,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,124,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,123,165, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,192,125,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160,121,165, 29, 1, 0, 0, 0, 0,123,165, 29, 1, 0, 0, 0, 96,124,165, 29, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 64,127,165, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, + 0, 36,166, 29, 1, 0, 0, 0,208, 30,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,144,133,165, 29, 1, 0, 0, 0, + 16,141,165, 29, 1, 0, 0, 0,112,141,165, 29, 1, 0, 0, 0, 0, 8,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 16,129,165, 29, 1, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0, +176,128,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +112,129,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +144,130,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, + 48,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +240,130,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 16,132,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,180, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, +176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +112,132,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 1,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,100, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,144,133,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,133,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,240,133,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,134,165, 29, 1, 0, 0, 0, +144,133,165, 29, 1, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 80,134,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,134,165, 29, 1, 0, 0, 0, +240,133,165, 29, 1, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,176,134,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,135,165, 29, 1, 0, 0, 0, + 80,134,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 16,135,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,135,165, 29, 1, 0, 0, 0, +176,134,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,112,135,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,135,165, 29, 1, 0, 0, 0, + 16,135,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,208,135,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,136,165, 29, 1, 0, 0, 0, +112,135,165, 29, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 48,136,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,136,165, 29, 1, 0, 0, 0, +208,135,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,144,136,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,136,165, 29, 1, 0, 0, 0, + 48,136,165, 29, 1, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,240,136,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,137,165, 29, 1, 0, 0, 0, +144,136,165, 29, 1, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 80,137,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,137,165, 29, 1, 0, 0, 0, +240,136,165, 29, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,176,137,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,138,165, 29, 1, 0, 0, 0, + 80,137,165, 29, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 16,138,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,138,165, 29, 1, 0, 0, 0, +176,137,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,112,138,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,138,165, 29, 1, 0, 0, 0, + 16,138,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,208,138,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,139,165, 29, 1, 0, 0, 0, +112,138,165, 29, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 48,139,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,139,165, 29, 1, 0, 0, 0, +208,138,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,144,139,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,139,165, 29, 1, 0, 0, 0, + 48,139,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,240,139,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,140,165, 29, 1, 0, 0, 0, +144,139,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 80,140,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,140,165, 29, 1, 0, 0, 0, +240,139,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,176,140,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,141,165, 29, 1, 0, 0, 0, + 80,140,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 16,141,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,140,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,112,141,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,145,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0, + 48,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, + 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,128, 35,166, 29, 1, 0, 0, 0, +128, 35,166, 29, 1, 0, 0, 0, 80,142,165, 29, 1, 0, 0, 0,176,143,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192, 14,201, 20, 1, 0, 0, 0,240,153,162, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,142,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,143,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176,143,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,142,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, +112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, + 16,145,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,175,165, 29, 1, 0, 0, 0,112,141,165, 29, 1, 0, 0, 0, + 80,131,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 4, 4, 96, 1,180, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,141,217, 2, 1, 0, 0, 0, 80,164,165, 29, 1, 0, 0, 0,160,173,165, 29, 1, 0, 0, 0, +240,145,165, 29, 1, 0, 0, 0, 80,147,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 49,161, 29, 1, 0, 0, 0,112,188,142, 27, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,145,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 80,147,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,176, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 1, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 1, 31, 0, 96, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0,149, 1, 0, 0,179, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,147,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,145,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 67, + 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,167, 67,254,127,193,195, 0, 0, 0, 0, 79, 1, 0, 0, 96, 1, 0, 0, + 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, + 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 96, 1,149, 1, 79, 1,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,203,200, 20, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,148, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1,149, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,142,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,148,165, 29, 1, 0, 0, 0,192,162,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,148,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 64,150,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0,216,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,217,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, - 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, - 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0, -128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96,217,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,218,155, 26, 1, 0, 0, 0, 0,216,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 78, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 64,150,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,151,165, 29, 1, 0, 0, 0, +176,148,165, 29, 1, 0, 0, 0, 32,198, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,218,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,217,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0, -128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 78, 1, 61, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0, 32,220,155, 26, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 64,227,155, 26, 1, 0, 0, 0,192,214,155, 26, - 1, 0, 0, 0, 0,216,155, 26, 1, 0, 0, 0,192,218,155, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,151,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 96,153,165, 29, 1, 0, 0, 0, 64,150,165, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 78, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,221,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176,222,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 96,153,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,154,165, 29, 1, 0, 0, 0, +208,151,165, 29, 1, 0, 0, 0, 96,202, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111, +110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 78, 1,203, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,222,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,221,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,154,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,128,156,165, 29, 1, 0, 0, 0, 96,153,165, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 78, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,224,155, 26, - 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0, 16,224,155, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 64,227,155, 26, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,220,155, 26, 1, 0, 0, 0, 80,221,155, 26, - 1, 0, 0, 0,176,222,155, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,160,228,155, 26, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,128, 7,156, 26, 1, 0, 0, 0, 96,200,155, 26, 1, 0, 0, 0, 80,118,155, 26, 1, 0, 0, 0,176,118,155, 26, - 1, 0, 0, 0,240,117,155, 26, 1, 0, 0, 0,144,117,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, - 55, 5, 0, 0,157, 1, 0, 0, 38, 4, 0, 0, 1, 1,251, 3,138, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,238, 81, 3, - 1, 0, 0, 0,240,248,155, 26, 1, 0, 0, 0,128, 6,156, 26, 1, 0, 0, 0,128,229,155, 26, 1, 0, 0, 0, 96,244,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,140,228, 28, 1, 0, 0, 0,192,207,198, 25, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,229,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,230,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 89, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,246, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,230,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,232,155, 26, - 1, 0, 0, 0,128,229,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 1, 0, 0, 61, 1, 0, 0,183, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0,112, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,243, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,128,156,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,158,165, 29, 1, 0, 0, 0, +240,154,165, 29, 1, 0, 0, 0, 32,207, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,232,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,233,155, 26, - 1, 0, 0, 0,224,230,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,183, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,245, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 78, 1,102, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,233,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,244,155, 26, - 1, 0, 0, 0, 64,232,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128, 23,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,112, 2,163, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 5, 0, 0, 55, 5, 0, 0,183, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,240, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,155, 26, 1, 0, 0, 0, 0,190,158, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,235,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,236,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,241, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110, -115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254, -163, 0,110, 1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,158,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,160,159,165, 29, 1, 0, 0, 0,128,156,165, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,236,155, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,238,155, 26, 1, 0, 0, 0, 0,235,155, 26, 1, 0, 0, 0, 64,242, 81, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 78, 1,105, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,238,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,239,155, 26, - 1, 0, 0, 0,144,236,155, 26, 1, 0, 0, 0,176,203,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, + 68, 65, 84, 65, 88, 1, 0, 0,160,159,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,161,165, 29, 1, 0, 0, 0, + 16,158,165, 29, 1, 0, 0, 0, 16,142, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97, +110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 78, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252, -163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,161,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,192,162,165, 29, 1, 0, 0, 0,160,159,165, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,239,155, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,241,155, 26, 1, 0, 0, 0, 32,238,155, 26, 1, 0, 0, 0, 16,206,199, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115, -112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115, -112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 78, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,241,155, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,242,155, 26, - 1, 0, 0, 0,176,239,155, 26, 1, 0, 0, 0,144,215,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107, -103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252, -163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,242,155, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,190,158, 26, 1, 0, 0, 0, 64,241,155, 26, 1, 0, 0, 0,240,217,199, 25, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95, -111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95, -111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111, -110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,192,162,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,161,165, 29, 1, 0, 0, 0,144,217, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 78, 1, 0, 0, + 20, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,190,158, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,242,155, 26, 1, 0, 0, 0,112,208,199, 25, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255, -163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 80,164,165, 29, 1, 0, 0, 0, +163, 0, 0, 0, 1, 0, 0, 0,176,169,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,244,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,233,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,112, 33,201, 20, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,165,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +240,166,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,183, 1, 0, 0, - 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3,112, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,239, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,245,155, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,192,245,155, 26, - 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 31,129, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 31,129, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134,198,125, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 31,129, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,166,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 80,168,165, 29, 1, 0, 0, 0,144,165,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240,248,155, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 16,253,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 81,158, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 80,250,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176,251,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,168,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,166,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, + 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,176,251,155, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,250,155, 26, - 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64, -110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, - 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,176,169,165, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, +160,173,165, 29, 1, 0, 0, 0, 80,164,165, 29, 1, 0, 0, 0,144,165,165, 29, 1, 0, 0, 0, 80,168,165, 29, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 16,253,155, 26, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,144, 2,156, 26, 1, 0, 0, 0,240,248,155, 26, - 1, 0, 0, 0, 80,250,155, 26, 1, 0, 0, 0,176,251,155, 26, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,170,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 64,172,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,172,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,170,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,254,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,255,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,255,155, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 1,156, 26, 1, 0, 0, 0,112,254,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,244, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,244, 2, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, + 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 1,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,255,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,144, 2,156, 26, - 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,128, 6,156, 26, 1, 0, 0, 0, 16,253,155, 26, 1, 0, 0, 0,112,254,155, 26, - 1, 0, 0, 0, 48, 1,156, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,160,173,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,169,165, 29, 1, 0, 0, 0,224,170,165, 29, 1, 0, 0, 0, 64,172,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, + 0,175,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,208,165, 29, 1, 0, 0, 0, 16,145,165, 29, 1, 0, 0, 0, + 80,128,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 17, 17, 32, 6,180, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,182,217, 2, 1, 0, 0, 0,144,181,165, 29, 1, 0, 0, 0,128,207,165, 29, 1, 0, 0, 0, +224,175,165, 29, 1, 0, 0, 0, 48,180,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 67,200, 20, 1, 0, 0, 0,224, 61,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,175,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 64,177,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,184,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192, 3,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32, 5,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,177,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 48,180,165, 29, 1, 0, 0, 0,224,175,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, + 0, 0,196,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,196,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, + 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, + 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,154, 1,203, 0,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,154, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,183,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160,178,165, 29, 1, 0, 0, 0,160,178,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,178,165, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 19, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32, 5,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3,156, 26, - 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -200, 0, 0, 0,128, 6,156, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 2,156, 26, - 1, 0, 0, 0,192, 3,156, 26, 1, 0, 0, 0, 32, 5,156, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48,180,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,177,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67,228, 46, 44,195,220,133,181, 68, +162,102,238,194,168,153,179, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5, +154, 1, 51, 5,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 5,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,183,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,128, 7,156, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,228,155, 26, - 1, 0, 0, 0, 16,116,155, 26, 1, 0, 0, 0, 80,115,155, 26, 1, 0, 0, 0,176,118,155, 26, 1, 0, 0, 0, 80,118,155, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,157, 1, 0, 0, 38, 4, 0, 0, 3, 3, 60, 1, -138, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,233, 81, 3, 1, 0, 0, 0, 32, 11,156, 26, 1, 0, 0, 0, 48, 37,156, 26, - 1, 0, 0, 0, 96, 8,156, 26, 1, 0, 0, 0,192, 9,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,173,199, 25, 1, 0, 0, 0,144,144,197, 25, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 8,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192, 9,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,158, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 68, 65, 84, 65, 72, 0, 0, 0,144,181,165, 29, 1, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 48,186,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16,182,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,183,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, + 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, + 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 59, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 60, 1, 26, 0, 60, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,157, 1, 0, 0, -182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,235, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 9,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 8,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,149, 67, 0,128, 23,196, 0, 0, 0, 0, 43, 1, 0, 0, - 60, 1, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 42, 1, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 60, 1,112, 2, 43, 1, 94, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,183, 1, 0, 0, - 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,112, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,234, 81, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,183,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,184,165, 29, 1, 0, 0, 0, + 16,182,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 11,156, 26, - 1, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0,160, 23,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 41,159, 26, - 1, 0, 0, 0, 64, 41,159, 26, 1, 0, 0, 0,160,221, 89, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,160,221, 89, 3, - 1, 0, 0, 0,218, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,128, 12,156, 26, 1, 0, 0, 0, 68, 65, 84, 65, -208, 0, 0, 0,128, 12,156, 26, 1, 0, 0, 0,217, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66, 25, 4, - 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, - 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,144,137,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,148,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,240,140,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,146,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,160, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,133,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,132,157, 26, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 13,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240, 14,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 68, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 84, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,212, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,184,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,183,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, + 0, 0,116,190, 0,128,158, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 14,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80, 16,156, 26, - 1, 0, 0, 0,144, 13,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0,182, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 16,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176, 17,156, 26, - 1, 0, 0, 0,240, 14,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,168, 0, 0, 0, 48,186,165, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0,208,189,165, 29, 1, 0, 0, 0, +144,181,165, 29, 1, 0, 0, 0, 16,182,165, 29, 1, 0, 0, 0,208,184,165, 29, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16,187,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,188,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, + 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, + 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 17,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16, 19,156, 26, - 1, 0, 0, 0, 80, 16,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,211, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,188,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16,187,165, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68, +176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3, +122, 1,239, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 19,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176, 17,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,208,189,165, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 80,195,165, 29, 1, 0, 0, 0, + 48,186,165, 29, 1, 0, 0, 0, 16,187,165, 29, 1, 0, 0, 0,112,188,165, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,212, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 20,156, 26, - 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,112, 20,156, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,121, 92,163, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, - 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 15,150, 72, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,159, 55,242, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48,191,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,192,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144,192,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,193,165, 29, 1, 0, 0, 0, 48,191,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160, 23,156, 26, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,192, 27,156, 26, 1, 0, 0, 0, 32, 11,156, 26, 1, 0, 0, 0,144, 13,156, 26, - 1, 0, 0, 0, 16, 19,156, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 25,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 96, 26,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 26,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,156, 26, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, - 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0, -106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0, -106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0, +112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,193,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,192,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,192, 27,156, 26, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 64, 33,156, 26, 1, 0, 0, 0,160, 23,156, 26, 1, 0, 0, 0, 0, 25,156, 26, 1, 0, 0, 0, 96, 26,156, 26, - 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, + 80,195,165, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 96,203,165, 29, 1, 0, 0, 0,208,189,165, 29, 1, 0, 0, 0, + 48,191,165, 29, 1, 0, 0, 0,240,193,165, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 29,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 30,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, - 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 30,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224, 31,156, 26, - 1, 0, 0, 0, 32, 29,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,128,196,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,197,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, + 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,224,197,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,199,165, 29, 1, 0, 0, 0, +128,196,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64,199,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,200,165, 29, 1, 0, 0, 0, +224,197,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 31,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 30,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, - 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,160,200,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,202,165, 29, 1, 0, 0, 0, + 64,199,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 64, 33,156, 26, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 48, 37,156, 26, - 1, 0, 0, 0,192, 27,156, 26, 1, 0, 0, 0, 32, 29,156, 26, 1, 0, 0, 0,224, 31,156, 26, 1, 0, 0, 0, 8, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 0,202,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160,200,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,248, 2, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,248, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, +224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, + 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 34,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,208, 35,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 35,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 34,156, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48, 37,156, 26, 1, 0, 0, 0,172, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 33,156, 26, 1, 0, 0, 0,112, 34,156, 26, 1, 0, 0, 0,208, 35,156, 26, - 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,176, 38,156, 26, 1, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0, 96,215,156, 26, 1, 0, 0, 0,192,112,155, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 39,156, 26, 1, 0, 0, 0,160, 44,156, 26, 1, 0, 0, 0, 0, 45,156, 26, - 1, 0, 0, 0,224, 52,156, 26, 1, 0, 0, 0, 64, 53,156, 26, 1, 0, 0, 0, 48,192,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 39,156, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 32, 40,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 40,156, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,128, 40,156, 26, 1, 0, 0, 0,192, 39,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 40,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,224, 40,156, 26, - 1, 0, 0, 0, 32, 40,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,224, 40,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 64, 41,156, 26, 1, 0, 0, 0,128, 40,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 41,156, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0,224, 40,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 0, 42,156, 26, 1, 0, 0, 0, 64, 41,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 39, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0, 42,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 96, 42,156, 26, - 1, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 96, 42,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,192, 42,156, 26, 1, 0, 0, 0, 0, 42,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 42,156, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0, 96, 42,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,168, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,128, 43,156, 26, 1, 0, 0, 0,192, 42,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,168, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 43,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,224, 43,156, 26, - 1, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,224, 43,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 64, 44,156, 26, 1, 0, 0, 0,128, 43,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2,168, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 44,156, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,160, 44,156, 26, 1, 0, 0, 0,224, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 16, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 44,156, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 44,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 16, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 45,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 45,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 40,156, 26, 1, 0, 0, 0,128, 40,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 45,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192, 45,156, 26, - 1, 0, 0, 0, 0, 45,156, 26, 1, 0, 0, 0, 32, 40,156, 26, 1, 0, 0, 0, 64, 41,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 45,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32, 46,156, 26, - 1, 0, 0, 0, 96, 45,156, 26, 1, 0, 0, 0,128, 40,156, 26, 1, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 46,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 46,156, 26, - 1, 0, 0, 0,192, 45,156, 26, 1, 0, 0, 0, 64, 41,156, 26, 1, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 46,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 46,156, 26, - 1, 0, 0, 0, 32, 46,156, 26, 1, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0, 0, 42,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 46,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64, 47,156, 26, - 1, 0, 0, 0,128, 46,156, 26, 1, 0, 0, 0, 64, 41,156, 26, 1, 0, 0, 0, 0, 42,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 47,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160, 47,156, 26, - 1, 0, 0, 0,224, 46,156, 26, 1, 0, 0, 0,224, 40,156, 26, 1, 0, 0, 0, 96, 42,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 47,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 48,156, 26, - 1, 0, 0, 0, 64, 47,156, 26, 1, 0, 0, 0,192, 39,156, 26, 1, 0, 0, 0,192, 42,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 48,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 48,156, 26, - 1, 0, 0, 0,160, 47,156, 26, 1, 0, 0, 0, 64, 41,156, 26, 1, 0, 0, 0,192, 42,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 48,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192, 48,156, 26, - 1, 0, 0, 0, 0, 48,156, 26, 1, 0, 0, 0, 0, 42,156, 26, 1, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 48,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32, 49,156, 26, - 1, 0, 0, 0, 96, 48,156, 26, 1, 0, 0, 0, 96, 42,156, 26, 1, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 49,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 49,156, 26, - 1, 0, 0, 0,192, 48,156, 26, 1, 0, 0, 0,192, 42,156, 26, 1, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 49,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 49,156, 26, - 1, 0, 0, 0, 32, 49,156, 26, 1, 0, 0, 0,192, 39,156, 26, 1, 0, 0, 0,128, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 49,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64, 50,156, 26, - 1, 0, 0, 0,128, 49,156, 26, 1, 0, 0, 0, 96, 42,156, 26, 1, 0, 0, 0,128, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 50,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160, 50,156, 26, - 1, 0, 0, 0,224, 49,156, 26, 1, 0, 0, 0,192, 42,156, 26, 1, 0, 0, 0,224, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 50,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 51,156, 26, - 1, 0, 0, 0, 64, 50,156, 26, 1, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0,224, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 51,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 51,156, 26, - 1, 0, 0, 0,160, 50,156, 26, 1, 0, 0, 0,128, 43,156, 26, 1, 0, 0, 0,224, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 51,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192, 51,156, 26, - 1, 0, 0, 0, 0, 51,156, 26, 1, 0, 0, 0, 96, 42,156, 26, 1, 0, 0, 0, 64, 44,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 51,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32, 52,156, 26, - 1, 0, 0, 0, 96, 51,156, 26, 1, 0, 0, 0, 0, 42,156, 26, 1, 0, 0, 0, 64, 44,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 52,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 52,156, 26, - 1, 0, 0, 0,192, 51,156, 26, 1, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0,160, 44,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 52,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 52,156, 26, - 1, 0, 0, 0, 32, 52,156, 26, 1, 0, 0, 0,224, 40,156, 26, 1, 0, 0, 0,160, 44,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 52,156, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 52,156, 26, 1, 0, 0, 0, 64, 44,156, 26, 1, 0, 0, 0,160, 44,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 64, 53,156, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224, 56,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 41,156, 26, 1, 0, 0, 0, 32, 40,156, 26, 1, 0, 0, 0,128, 40,156, 26, - 1, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 40, 4, 0, 0, - 66, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,214,156, 26, - 1, 0, 0, 0,224,214,156, 26, 1, 0, 0, 0, 32, 54,156, 26, 1, 0, 0, 0,128, 55,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32, 54,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 55,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 40, 4, 0, 0, 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128, 55,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 54,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, - 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 7, 0,112, 7, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 4, 0, 0, 66, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,203,165, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0,128,207,165, 29, 1, 0, 0, 0, 80,195,165, 29, 1, 0, 0, 0,128,196,165, 29, 1, 0, 0, 0, + 0,202,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,224, 56,156, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 90,156, 26, 1, 0, 0, 0, 64, 53,156, 26, - 1, 0, 0, 0, 96, 42,156, 26, 1, 0, 0, 0, 64, 44,156, 26, 1, 0, 0, 0,160, 44,156, 26, 1, 0, 0, 0,224, 40,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 15, 3, 0, 0, 4, 4,144, 1, - 16, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 76,156, 26, 1, 0, 0, 0,160, 88,156, 26, - 1, 0, 0, 0,192, 57,156, 26, 1, 0, 0, 0, 32, 59,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 57,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32, 59,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, 31, 0,144, 1, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0,241, 2, 0, 0, - 15, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,204,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 32,206,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 59,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 57,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,191, 67, 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,191, 67,255,191, 55,196, 0, 0, 0, 0,127, 1, 0, 0, -144, 1, 0, 0, 18, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -126, 1, 0, 0, 18, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,144, 1,241, 2,127, 1,223, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, -240, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,206,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192,204,165, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 60,156, 26, 1, 0, 0, 0,144, 74,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128, 60,156, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 62,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,128,207,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,203,165, 29, 1, 0, 0, 0,192,204,165, 29, 1, 0, 0, 0, 32,206,165, 29, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,126, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,128,208,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +192,230,165, 29, 1, 0, 0, 0, 0,175,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, + 48,130,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0, +181, 1, 0, 0, 99, 4, 0, 0, 9, 9, 72, 2,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,175,217, 2, 1, 0, 0, 0, + 48,252, 2, 28, 1, 0, 0, 0, 96,229,165, 29, 1, 0, 0, 0, 96,209,165, 29, 1, 0, 0, 0,192,210,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,145,162, 21, 1, 0, 0, 0, 48, 10,201, 20, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,209,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,210,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 18, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,181, 67, 0, 0,200, 65, + 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 72, 2, + 26, 0, 72, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 5, 0, 0,128, 7, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,177,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16, 62,156, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 63,156, 26, - 1, 0, 0, 0,128, 60,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, -101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, -126, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192,210,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96,209,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, + 0, 0, 0, 0,120, 27, 19, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 72, 2, +149, 2, 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 5, 0, 0,128, 7, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,176,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 63,156, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 65,156, 26, 1, 0, 0, 0, 16, 62,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 68, 65, 84, 65,144, 2, 0, 0, 48,252, 2, 28, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,224,214,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 65,156, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 66,156, 26, - 1, 0, 0, 0,160, 63,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, -110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,254, -126, 1,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 66,156, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 68,156, 26, 1, 0, 0, 0, 48, 65,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,254,126, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 68,156, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 69,156, 26, - 1, 0, 0, 0,192, 66,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,253, -126, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 69,156, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 71,156, 26, 1, 0, 0, 0, 80, 68,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,253,126, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 71,156, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 73,156, 26, - 1, 0, 0, 0,224, 69,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, -111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,253, -126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0, 73,156, 26, - 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 74,156, 26, 1, 0, 0, 0,112, 71,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,212,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +128,213,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,182, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,108, 1, 26, 0,108, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,108, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,253,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,213,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,212,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,173, 67, 0, 0,210,195, 0, 0, 0, 0, 91, 1, 0, 0,108, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, + 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, + 0, 0, 0, 4, 6, 0,108, 1,182, 1, 91, 1,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,108, 1,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144, 74,156, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 73,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,253, -126, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,214,165, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, + 16,220,165, 29, 1, 0, 0, 0, 48,252, 2, 28, 1, 0, 0, 0, 32,212,165, 29, 1, 0, 0, 0,128,213,165, 29, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 32, 76,156, 26, - 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,128, 81,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224, 54,160, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 77,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192, 78,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, - 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,224, 54,160, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 13, 0, 0, 0, 64,216,165, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 64,216,165, 29, 1, 0, 0, 0, +218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, + 48,180, 4, 28, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,220, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,214, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,217,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,218,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 68, 1, 30, 0, 68, 1, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, +252, 3, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 30, 0, 0, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 78,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 32, 80,156, 26, 1, 0, 0, 0, 96, 77,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176,218,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,217,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,153, 67, 0, 0,137,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,153, 67,253,127,198,195, 0, 0, 0, 0, + 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 68, 1,159, 1, 51, 1,141, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, + 93, 2, 0, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, + 16,220,165, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,112,225,165, 29, 1, 0, 0, 0,224,214,165, 29, 1, 0, 0, 0, + 80,217,165, 29, 1, 0, 0, 0,176,218,165, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 80,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 78,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, -123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,221,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,176,222,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128, 81,156, 26, 1, 0, 0, 0,163, 0, 0, 0, - 1, 0, 0, 0,160, 88,156, 26, 1, 0, 0, 0, 32, 76,156, 26, 1, 0, 0, 0, 96, 77,156, 26, 1, 0, 0, 0, 32, 80,156, 26, - 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,222,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 16,224,165, 29, 1, 0, 0, 0, 80,221,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 82,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16, 84,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 84,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 82,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,224,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,222,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, + 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,112,225,165, 29, 1, 0, 0, 0, +164, 0, 0, 0, 1, 0, 0, 0, 96,229,165, 29, 1, 0, 0, 0, 16,220,165, 29, 1, 0, 0, 0, 80,221,165, 29, 1, 0, 0, 0, + 16,224,165, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, - 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 85,156, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,112, 85,156, 26, - 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, - 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160,226,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,228,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,228,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,226,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160, 88,156, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 81,156, 26, 1, 0, 0, 0,176, 82,156, 26, 1, 0, 0, 0, 16, 84,156, 26, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 0, 90,156, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,125,156, 26, 1, 0, 0, 0,224, 56,156, 26, - 1, 0, 0, 0,128, 43,156, 26, 1, 0, 0, 0,224, 43,156, 26, 1, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0, 96, 42,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,167, 1, 0, 0, 18, 18,255, 2, -168, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 93,156, 26, 1, 0, 0, 0,144,124,156, 26, - 1, 0, 0, 0,224, 90,156, 26, 1, 0, 0, 0, 64, 92,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 90,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64, 92,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 63, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, + 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -254, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 2, 26, 0,255, 2, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 3, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 0, 3, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, + 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 92,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 90,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128, 63, 68, 0, 0, 0, 0, 0, 0, 65, 67, 0, 0, 0, 0, 0,128, 59, 68, 0, 0, 0, 0, 0, 0,199, 67,238, 2, 0, 0, -255, 2, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -237, 2, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,255, 2,142, 1,238, 2,142, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 26, 0, 0, 0, -167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2,142, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,229,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,225,165, 29, 1, 0, 0, 0,160,226,165, 29, 1, 0, 0, 0, 0,228,165, 29, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,192,230,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 8,166, 29, 1, 0, 0, 0, +128,208,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, + 16,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, + 1, 1,251, 3,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,111,217, 2, 1, 0, 0, 0,112,249,165, 29, 1, 0, 0, 0, + 0, 7,166, 29, 1, 0, 0, 0,160,231,165, 29, 1, 0, 0, 0, 16,248,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112, 44,200, 20, 1, 0, 0, 0, 48, 7,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160,231,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,233,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0, +181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,119,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,233,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,234,165, 29, 1, 0, 0, 0,160,231,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 61, 1, 0, 0, +207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,149, 2, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,116,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,234,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,235,165, 29, 1, 0, 0, 0, 0,233,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0, +207, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,118,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,235,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,248,165, 29, 1, 0, 0, 0, 96,234,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 23,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,112, 2,163, 0, 94, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 5, 0, 0, 55, 5, 0, 0, +207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,113,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,237,165, 29, 1, 0, 0, 0,128,246,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 32,237,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,238,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,160, 93,156, 26, - 1, 0, 0, 0,177, 0, 0, 0, 1, 0, 0, 0, 32, 98,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,238,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 64,240,165, 29, 1, 0, 0, 0, 32,237,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 64,240,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,241,165, 29, 1, 0, 0, 0,176,238,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 95,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192, 96,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,241,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 96,243,165, 29, 1, 0, 0, 0, 64,240,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 96,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 95,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, + 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0, -155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 96,243,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,244,165, 29, 1, 0, 0, 0,208,241,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114, +111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114, +111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 32, 98,156, 26, - 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0,176,103,156, 26, 1, 0, 0, 0,160, 93,156, 26, 1, 0, 0, 0, 96, 95,156, 26, - 1, 0, 0, 0,192, 96,156, 26, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,244,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +128,246,165, 29, 1, 0, 0, 0, 96,243,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +128,246,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,244,165, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,248,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192,235,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,251, 3,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240,100,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80,102,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 4, 3, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 4, 3, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, +190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,105,134, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 80,102,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,100,156, 26, - 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66, -116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5, -112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,176,103,156, 26, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 48,109,156, 26, 1, 0, 0, 0, 32, 98,156, 26, - 1, 0, 0, 0,240,100,156, 26, 1, 0, 0, 0, 80,102,156, 26, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,105,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,106,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, +112,249,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,144,253,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,250,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 48,252,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,106,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,107,156, 26, 1, 0, 0, 0, 16,105,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,252,165, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,250,165, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, + 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, + 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, + 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,144,253,165, 29, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0, 16, 3,166, 29, 1, 0, 0, 0,112,249,165, 29, 1, 0, 0, 0,208,250,165, 29, 1, 0, 0, 0, + 48,252,165, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,107,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,106,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,254,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 80, 0,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 48,109,156, 26, - 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,112,120,156, 26, 1, 0, 0, 0,176,103,156, 26, 1, 0, 0, 0, 16,105,156, 26, - 1, 0, 0, 0,208,107,156, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 0,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +176, 1,166, 29, 1, 0, 0, 0,240,254,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96,110,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,111,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,111,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,113,156, 26, 1, 0, 0, 0, 96,110,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, - 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,113,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,114,156, 26, 1, 0, 0, 0,192,111,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 1,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 0,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128,114,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,115,156, 26, 1, 0, 0, 0, 32,113,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, -104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,224,115,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,114,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 16, 3,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, + 0, 7,166, 29, 1, 0, 0, 0,144,253,165, 29, 1, 0, 0, 0,240,254,165, 29, 1, 0, 0, 0,176, 1,166, 29, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 4,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,160, 5,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 5,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 4,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 0, 7,166, 29, 1, 0, 0, 0, +173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,166, 29, 1, 0, 0, 0, 64, 4,166, 29, 1, 0, 0, 0, +160, 5,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 0, 8,166, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,230,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0, +208,129,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 3, 3, 60, 1,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,106,217, 2, 1, 0, 0, 0,160, 11,166, 29, 1, 0, 0, 0,128, 34,166, 29, 1, 0, 0, 0,224, 8,166, 29, 1, 0, 0, 0, + 64, 10,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,200, 20, 1, 0, 0, 0, + 96,111,160, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 8,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 64, 10,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,158, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 60, 1, 26, 0, 60, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 60, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,108,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 10,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224, 8,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,149, 67, 0,192, 32,196, 0, 0, 0, 0, 43, 1, 0, 0, 60, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, + 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, + 0, 0, 0, 4, 6, 0, 60, 1,149, 2, 43, 1,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,107,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 11,166, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, +240, 20,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 57,201, 20, 1, 0, 0, 0,192, 57,201, 20, 1, 0, 0, 0, +224, 70,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,224, 70,161, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 13, 0, 0, 0, 0, 13,166, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 0, 13,166, 29, 1, 0, 0, 0, +218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, + 48,180, 4, 28, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,220, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,214, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 16, 14,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 15,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 68, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, + 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 0, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,117,156, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0, 64,117,156, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, - 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, - 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, -136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +112, 15,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 16,166, 29, 1, 0, 0, 0, 16, 14,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,182, 1, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208, 16,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 18,166, 29, 1, 0, 0, 0,112, 15,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, + 67, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48, 18,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 19,166, 29, 1, 0, 0, 0,208, 16,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0,211, 0, 0, 0, + 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144, 19,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,112,120,156, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,144,124,156, 26, 1, 0, 0, 0, 48,109,156, 26, 1, 0, 0, 0, 96,110,156, 26, 1, 0, 0, 0,224,115,156, 26, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,121,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48,123,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, + 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,123,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,121,156, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,120, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48,120, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 15,150, 72, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,144,124,156, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,120,156, 26, 1, 0, 0, 0,208,121,156, 26, 1, 0, 0, 0, 48,123,156, 26, 1, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,159, 55,242, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144,125,156, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,156,156, 26, - 1, 0, 0, 0, 0, 90,156, 26, 1, 0, 0, 0,192, 42,156, 26, 1, 0, 0, 0, 64, 41,156, 26, 1, 0, 0, 0, 0, 42,156, 26, - 1, 0, 0, 0, 32, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,169, 1, 0, 0, - 38, 4, 0, 0, 9, 9,240, 5,126, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,129,156, 26, - 1, 0, 0, 0,160,155,156, 26, 1, 0, 0, 0,112,126,156, 26, 1, 0, 0, 0,208,127,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112,126,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,127,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0,169, 1, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208,127,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,126,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,170, 86,234, 67, 86, 74,131, 68,206,103, 56, 67, - 25, 76,209, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 99, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,100, 2,240, 5, -100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0,195, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -144, 2, 0, 0, 48,129,156, 26, 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0,192,134,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, + 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240, 20,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, + 16, 25,166, 29, 1, 0, 0, 0,160, 11,166, 29, 1, 0, 0, 0, 16, 14,166, 29, 1, 0, 0, 0,144, 19,166, 29, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80, 22,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 23,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, + 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, + 26, 0, 24, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176, 23,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 22,166, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68, +160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6, +107, 2, 7, 6, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 16, 25,166, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,144, 30,166, 29, 1, 0, 0, 0, +240, 20,166, 29, 1, 0, 0, 0, 80, 22,166, 29, 1, 0, 0, 0,176, 23,166, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +112, 26,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 27,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208, 27,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 29,166, 29, 1, 0, 0, 0,112, 26,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,132,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,133,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, - 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0, +112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48, 29,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 27,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, +144, 30,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,128, 34,166, 29, 1, 0, 0, 0, 16, 25,166, 29, 1, 0, 0, 0, +112, 26,166, 29, 1, 0, 0, 0, 48, 29,166, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192, 31,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 33,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, + 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32, 33,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 31,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, +122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0,128, 34,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 30,166, 29, 1, 0, 0, 0,192, 31,166, 29, 1, 0, 0, 0, 32, 33,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 83, 78, 0, 0,208, 0, 0, 0, 0, 36,166, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 80,188,166, 29, 1, 0, 0, 0, + 64,127,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116, +105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 37,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 80, 42,166, 29, 1, 0, 0, 0, 48, 50,166, 29, 1, 0, 0, 0, +144, 50,166, 29, 1, 0, 0, 0, 80,168,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16, 37,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +112, 37,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,112, 37,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208, 37,166, 29, 1, 0, 0, 0, + 16, 37,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +208, 37,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48, 38,166, 29, 1, 0, 0, 0,112, 37,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48, 38,166, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,144, 38,166, 29, 1, 0, 0, 0,208, 37,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 38,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +240, 38,166, 29, 1, 0, 0, 0, 48, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, +144, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 80, 39,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +112, 40,166, 29, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, + 16, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +208, 40,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 2,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +240, 41,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 64, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 64, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 80, 42,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 42,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 37,166, 29, 1, 0, 0, 0,208, 37,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +176, 42,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 43,166, 29, 1, 0, 0, 0, 80, 42,166, 29, 1, 0, 0, 0, +112, 37,166, 29, 1, 0, 0, 0,144, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 16, 43,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 43,166, 29, 1, 0, 0, 0,176, 42,166, 29, 1, 0, 0, 0, +208, 37,166, 29, 1, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +112, 43,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 43,166, 29, 1, 0, 0, 0, 16, 43,166, 29, 1, 0, 0, 0, +144, 38,166, 29, 1, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +208, 43,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 44,166, 29, 1, 0, 0, 0,112, 43,166, 29, 1, 0, 0, 0, +240, 38,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 48, 44,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 44,166, 29, 1, 0, 0, 0,208, 43,166, 29, 1, 0, 0, 0, +144, 38,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +144, 44,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 44,166, 29, 1, 0, 0, 0, 48, 44,166, 29, 1, 0, 0, 0, + 48, 38,166, 29, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +240, 44,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 45,166, 29, 1, 0, 0, 0,144, 44,166, 29, 1, 0, 0, 0, + 16, 37,166, 29, 1, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 80, 45,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 45,166, 29, 1, 0, 0, 0,240, 44,166, 29, 1, 0, 0, 0, +144, 38,166, 29, 1, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +176, 45,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 46,166, 29, 1, 0, 0, 0, 80, 45,166, 29, 1, 0, 0, 0, + 80, 39,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 16, 46,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 46,166, 29, 1, 0, 0, 0,176, 45,166, 29, 1, 0, 0, 0, +176, 39,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +112, 46,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 46,166, 29, 1, 0, 0, 0, 16, 46,166, 29, 1, 0, 0, 0, + 16, 40,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +208, 46,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 47,166, 29, 1, 0, 0, 0,112, 46,166, 29, 1, 0, 0, 0, + 16, 37,166, 29, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 48, 47,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 47,166, 29, 1, 0, 0, 0,208, 46,166, 29, 1, 0, 0, 0, +176, 39,166, 29, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +144, 47,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 47,166, 29, 1, 0, 0, 0, 48, 47,166, 29, 1, 0, 0, 0, + 16, 40,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +240, 47,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 48,166, 29, 1, 0, 0, 0,144, 47,166, 29, 1, 0, 0, 0, +112, 40,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 80, 48,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 48,166, 29, 1, 0, 0, 0,240, 47,166, 29, 1, 0, 0, 0, +208, 40,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +176, 48,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 49,166, 29, 1, 0, 0, 0, 80, 48,166, 29, 1, 0, 0, 0, +176, 39,166, 29, 1, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 16, 49,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 49,166, 29, 1, 0, 0, 0,176, 48,166, 29, 1, 0, 0, 0, + 80, 39,166, 29, 1, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +112, 49,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 49,166, 29, 1, 0, 0, 0, 16, 49,166, 29, 1, 0, 0, 0, +240, 38,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +208, 49,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 50,166, 29, 1, 0, 0, 0,112, 49,166, 29, 1, 0, 0, 0, + 48, 38,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 48, 50,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 49,166, 29, 1, 0, 0, 0, +144, 41,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +144, 50,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 54,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 38,166, 29, 1, 0, 0, 0,112, 37,166, 29, 1, 0, 0, 0,208, 37,166, 29, 1, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, + 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,208,187,166, 29, 1, 0, 0, 0,208,187,166, 29, 1, 0, 0, 0, +112, 51,166, 29, 1, 0, 0, 0,208, 52,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,144,140, 27, 1, 0, 0, 0,208,252,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 51,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,208, 52,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 52,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 51,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, + 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, + 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48, 54,166, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 32, 84,166, 29, 1, 0, 0, 0,144, 50,166, 29, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, +144, 41,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 48, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 63, 3, 0, 0, 4, 4,144, 1, 64, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,141,217, 2, 1, 0, 0, 0,112, 73,166, 29, 1, 0, 0, 0,192, 82,166, 29, 1, 0, 0, 0, 16, 55,166, 29, 1, 0, 0, 0, +112, 56,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,108,141, 27, 1, 0, 0, 0, +192,123,164, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 55,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +112, 56,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,144, 1, 31, 0,144, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 33, 3, 0, 0, 63, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 56,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 55,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 67, 0, 64, 68,196, 0, 0, 0, 0, + 0, 0, 0, 0,255,127,191, 67,255,191, 67,196, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, + 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,144, 1, 33, 3,127, 1, 15, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,152,162, 21, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32,142,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 57,166, 29, 1, 0, 0, 0, +224, 71,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208, 57,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 96, 59,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,220,255,126, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 96, 59,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240, 60,166, 29, 1, 0, 0, 0,208, 57,166, 29, 1, 0, 0, 0, + 32,198, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,126, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,133,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,132,156, 26, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,132,137,182,195, -194, 68, 91, 68,112,158, 93, 65, 8, 19,249, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0, -222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, - 0, 0,240, 5, 92, 2,223, 5, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,183, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240, 60,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +128, 62,166, 29, 1, 0, 0, 0, 96, 59,166, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,192,134,156, 26, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 64,140,156, 26, - 1, 0, 0, 0, 48,129,156, 26, 1, 0, 0, 0, 0,132,156, 26, 1, 0, 0, 0, 96,133,156, 26, 1, 0, 0, 0, 16, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,111,255,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +128, 62,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16, 64,166, 29, 1, 0, 0, 0,240, 60,166, 29, 1, 0, 0, 0, + 96,202, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, +105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,136,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,137,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, - 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, - 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,126, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128,137,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,138,156, 26, 1, 0, 0, 0, 32,136,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16, 64,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +160, 65,166, 29, 1, 0, 0, 0,128, 62,166, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,224,138,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,137,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, + 0, 0, 58,254,126, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +160, 65,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48, 67,166, 29, 1, 0, 0, 0, 16, 64,166, 29, 1, 0, 0, 0, + 32,207, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0, 64,140,156, 26, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,128,151,156, 26, 1, 0, 0, 0,192,134,156, 26, - 1, 0, 0, 0, 32,136,156, 26, 1, 0, 0, 0,224,138,156, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253,126, 1,102, 0, 0, 0, 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 67,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +192, 68,166, 29, 1, 0, 0, 0,160, 65,166, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,141,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,142,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59,253,126, 1,105, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,142,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48,144,156, 26, - 1, 0, 0, 0,112,141,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +192, 68,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 70,166, 29, 1, 0, 0, 0, 48, 67,166, 29, 1, 0, 0, 0, + 16,142, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, +109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, +109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,144,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144,145,156, 26, - 1, 0, 0, 0,208,142,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 70,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +224, 71,166, 29, 1, 0, 0, 0,192, 68,166, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,145,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240,146,156, 26, - 1, 0, 0, 0, 48,144,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,146,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,144,145,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 11,253,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +224, 71,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 70,166, 29, 1, 0, 0, 0, +144,217, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,148,156, 26, - 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0, 80,148,156, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, - 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, - 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62, -169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188, -102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, - 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196, -135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62, -169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188, -102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252,126, 1, 0, 0, 20, 0, 0, 0, 4, 0, 7, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,112, 73,166, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, +208, 78,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128,151,156, 26, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,160,155,156, 26, 1, 0, 0, 0, 64,140,156, 26, 1, 0, 0, 0,112,141,156, 26, - 1, 0, 0, 0,240,146,156, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,152,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 64,154,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 0, 0, 0, 0,160,108,160, 21, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176, 74,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16, 76,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, + 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, + 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,154,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,152,156, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16, 76,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 77,166, 29, 1, 0, 0, 0, +176, 74,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,160,155,156, 26, 1, 0, 0, 0,172, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,151,156, 26, 1, 0, 0, 0,224,152,156, 26, 1, 0, 0, 0, 64,154,156, 26, - 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,160,156,156, 26, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 48,192,156, 26, 1, 0, 0, 0,144,125,156, 26, 1, 0, 0, 0,192, 39,156, 26, 1, 0, 0, 0,192, 42,156, 26, - 1, 0, 0, 0,224, 43,156, 26, 1, 0, 0, 0,128, 43,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 2, 0, 0, 0, 0, 0, 0,167, 1, 0, 0, 18, 18,240, 2,168, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,160,156, 26, 1, 0, 0, 0, 48,191,156, 26, 1, 0, 0, 0,128,157,156, 26, 1, 0, 0, 0,224,158,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,157,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,158,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,231, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 60, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, - 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 2, 26, 0,240, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,158,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,157,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,192, 59, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, - 1,192, 55, 68, 0, 0, 0, 0, 0, 0,199, 67,223, 2, 0, 0,240, 2, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, - 10, 0,240, 2,142, 1,223, 2,142, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 26, 0, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 2,142, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0, 64,160,156, 26, 1, 0, 0, 0,177, 0, 0, 0, 1, 0, 0, 0,192,164,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112, 77,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 76,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, + 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1, +124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,240, 0, 0, 0,208, 78,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,192, 82,166, 29, 1, 0, 0, 0, +112, 73,166, 29, 1, 0, 0, 0,176, 74,166, 29, 1, 0, 0, 0,112, 77,166, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,162,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,163,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, - 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 80,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 96, 81,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,163,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,162,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63, -254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, - 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 81,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0,192,164,156, 26, 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0, 80,170,156, 26, - 1, 0, 0, 0, 64,160,156, 26, 1, 0, 0, 0, 0,162,156, 26, 1, 0, 0, 0, 96,163,156, 26, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,124, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,124, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, +237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5472,1966 +4966,2569 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, +192, 82,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 78,166, 29, 1, 0, 0, 0, + 0, 80,166, 29, 1, 0, 0, 0, 96, 81,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32, 84,166, 29, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,176,113,166, 29, 1, 0, 0, 0, 48, 54,166, 29, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, + 48, 41,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 18, 18,255, 2,192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,185,217, 2, 1, 0, 0, 0,192, 87,166, 29, 1, 0, 0, 0,176,112,166, 29, 1, 0, 0, 0, 0, 85,166, 29, 1, 0, 0, 0, + 96, 86,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,148,140, 27, 1, 0, 0, 0, + 16, 25,162, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 85,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 96, 86,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,192, 63, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,255, 2, 26, 0,255, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,187,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 86,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 68, 0, 0, 0, 0, 0, 0, 51, 67, + 0, 0, 0, 0, 0,128, 59, 68, 0, 0, 0, 0, 0, 0,211, 67,238, 2, 0, 0,255, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,237, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, + 2, 0, 0, 4, 10, 0,255, 2,166, 1,238, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144,186,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,192, 87,166, 29, 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, + 48,128, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 42,200, 20, 1, 0, 0, 0, +144, 42,200, 20, 1, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,167,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,240,168,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,168,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,167,156, 26, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, - 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80,170,156, 26, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0,208,175,156, 26, 1, 0, 0, 0,192,164,156, 26, 1, 0, 0, 0,144,167,156, 26, 1, 0, 0, 0,240,168,156, 26, - 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 89,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +224, 90,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,171,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,173,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, - 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 90,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 89,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, + 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, + 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,173,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,174,156, 26, - 1, 0, 0, 0,176,171,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48,128, 4, 28, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0, + 0, 95,166, 29, 1, 0, 0, 0,192, 87,166, 29, 1, 0, 0, 0,128, 89,166, 29, 1, 0, 0, 0,224, 90,166, 29, 1, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,174,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16,173,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, - 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,208,175,156, 26, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 16,187,156, 26, - 1, 0, 0, 0, 80,170,156, 26, 1, 0, 0, 0,176,171,156, 26, 1, 0, 0, 0,112,174,156, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,177,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 96,178,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,178,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192,179,156, 26, 1, 0, 0, 0, 0,177,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,179,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 32,181,156, 26, 1, 0, 0, 0, 96,178,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,181,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,128,182,156, 26, 1, 0, 0, 0,192,179,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,182,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,181,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,183,156, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,224,183,156, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, - 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, - 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, - 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 16,187,156, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 48,191,156, 26, 1, 0, 0, 0,208,175,156, 26, - 1, 0, 0, 0, 0,177,156, 26, 1, 0, 0, 0,128,182,156, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,188,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,189,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 92,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,160, 93,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 93,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 92,166, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, + 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, + 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, + 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, + 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,189,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,188,156, 26, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 0, 95,166, 29, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0,128,100,166, 29, 1, 0, 0, 0, 48,128, 4, 28, 1, 0, 0, 0, 64, 92,166, 29, 1, 0, 0, 0, +160, 93,166, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48,191,156, 26, - 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,187,156, 26, 1, 0, 0, 0,112,188,156, 26, - 1, 0, 0, 0,208,189,156, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 96,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +192, 97,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48,192,156, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,156,156, 26, 1, 0, 0, 0, 64, 44,156, 26, - 1, 0, 0, 0, 0, 42,156, 26, 1, 0, 0, 0,160, 41,156, 26, 1, 0, 0, 0,160, 44,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 17, 3, 0, 0, 38, 4, 0, 0, 3, 3,144, 1, 22, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,195,156, 26, 1, 0, 0, 0,128,213,156, 26, 1, 0, 0, 0, 16,193,156, 26, - 1, 0, 0, 0,112,194,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,193,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,112,194,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,149, 67, 0, 0,200, 65, 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, 26, 0,144, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 17, 3, 0, 0, 42, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 97,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 32, 99,166, 29, 1, 0, 0, 0, 96, 96,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,194,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,193,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 67, 0, 0,106,195, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,144, 1,252, 0,127, 1,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 43, 3, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,195,156, 26, 1, 0, 0, 0,166, 0, 0, 0, - 1, 0, 0, 0, 0,201,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 99,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192, 97,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,183,149, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128,100,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, +144,108,166, 29, 1, 0, 0, 0, 0, 95,166, 29, 1, 0, 0, 0, 96, 96,166, 29, 1, 0, 0, 0, 32, 99,166, 29, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 80,183,149, 26, 1, 0, 0, 0,218, 0, 0, 0, - 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 48,197,156, 26, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 48,197,156, 26, - 1, 0, 0, 0,217, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 19, 0, 0, 0, - 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 21, 0, 1, 0, - 1, 0, 1, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,144,137,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 86, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,148,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,240,140,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,146,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48,160, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,133,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,132,157, 26, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64,198,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,199,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, - 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 1, 31, 0, 44, 1, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0, -160, 5, 0, 0,218, 2, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1, 31, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160,199,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,198,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,246,194, - 0, 0, 0, 0, 27, 1, 0, 0, 44, 1, 0, 0, 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 44, 1,141, 0, 27, 1, -123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0, -160, 5, 0, 0, 77, 2, 0, 0,217, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 1, 0, 0, 0,201,156, 26, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 96,206,156, 26, 1, 0, 0, 0,208,195,156, 26, - 1, 0, 0, 0, 64,198,156, 26, 1, 0, 0, 0,160,199,156, 26, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,101,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 16,103,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,103,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,112,104,166, 29, 1, 0, 0, 0,176,101,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,104,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,208,105,166, 29, 1, 0, 0, 0, 16,103,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,105,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 48,107,166, 29, 1, 0, 0, 0,112,104,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,107,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,105,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,132, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,132, 4, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, +248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, + 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61, +170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195, +205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, + 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,202,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,203,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,203,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,205,156, 26, 1, 0, 0, 0, 64,202,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,144,108,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,176,112,166, 29, 1, 0, 0, 0, +128,100,166, 29, 1, 0, 0, 0,176,101,166, 29, 1, 0, 0, 0, 48,107,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,109,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,111,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,111,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109,166, 29, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +176,112,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,108,166, 29, 1, 0, 0, 0, +240,109,166, 29, 1, 0, 0, 0, 80,111,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0, -235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,205,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,203,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0, -235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +176,113,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,138,166, 29, 1, 0, 0, 0, 32, 84,166, 29, 1, 0, 0, 0, + 16, 40,166, 29, 1, 0, 0, 0,144, 38,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,193, 1, 0, 0, 99, 4, 0, 0, 9, 9,240, 5,163, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,175,217, 2, 1, 0, 0, 0, 48,136, 4, 28, 1, 0, 0, 0,192,137,166, 29, 1, 0, 0, 0, +144,114,166, 29, 1, 0, 0, 0,240,115,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224,157,140, 27, 1, 0, 0, 0, 32,164,140, 27, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,114,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,240,115,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,193, 1, 0, 0,218, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,177,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,115,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,114,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, + 0, 0, 0, 0, 0,192, 22, 68,168, 86,234, 67, 86, 74,131, 68,133, 83, 49, 67, 62,214,212, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, + 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,137, 2,240, 5,137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,219, 1, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16,176,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48,136, 4, 28, 1, 0, 0, 0, +170, 0, 0, 0, 1, 0, 0, 0, 16,120,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 96,206,156, 26, - 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,128,213,156, 26, 1, 0, 0, 0, 0,201,156, 26, 1, 0, 0, 0, 64,202,156, 26, - 1, 0, 0, 0, 0,205,156, 26, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144,207,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240,208,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240,208,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,207,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,210,156, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0, 80,210,156, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, -115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,117,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,118,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128,213,156, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,206,156, 26, 1, 0, 0, 0,144,207,156, 26, 1, 0, 0, 0,240,208,156, 26, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 96,215,156, 26, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,112, 24,157, 26, - 1, 0, 0, 0,176, 38,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, - 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,216,156, 26, 1, 0, 0, 0, 16,219,156, 26, 1, 0, 0, 0,112,219,156, 26, 1, 0, 0, 0, 48,223,156, 26, - 1, 0, 0, 0,144,223,156, 26, 1, 0, 0, 0,208,249,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,216,156, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,208,216,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,216,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 48,217,156, 26, - 1, 0, 0, 0,112,216,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 48,217,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,144,217,156, 26, 1, 0, 0, 0,208,216,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,217,156, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,240,217,156, 26, 1, 0, 0, 0, 48,217,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,217,156, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 80,218,156, 26, 1, 0, 0, 0,144,217,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,218,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,176,218,156, 26, - 1, 0, 0, 0,240,217,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 39, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,176,218,156, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 16,219,156, 26, 1, 0, 0, 0, 80,218,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,219,156, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,218,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,196, 3, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,219,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,208,219,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,216,156, 26, 1, 0, 0, 0, 48,217,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,219,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48,220,156, 26, 1, 0, 0, 0,112,219,156, 26, 1, 0, 0, 0,208,216,156, 26, 1, 0, 0, 0,240,217,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,220,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,144,220,156, 26, 1, 0, 0, 0,208,219,156, 26, 1, 0, 0, 0, 48,217,156, 26, 1, 0, 0, 0, 80,218,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,220,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,240,220,156, 26, 1, 0, 0, 0, 48,220,156, 26, 1, 0, 0, 0,240,217,156, 26, 1, 0, 0, 0, 80,218,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,220,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 80,221,156, 26, 1, 0, 0, 0,144,220,156, 26, 1, 0, 0, 0,240,217,156, 26, 1, 0, 0, 0,176,218,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,221,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,176,221,156, 26, 1, 0, 0, 0,240,220,156, 26, 1, 0, 0, 0,112,216,156, 26, 1, 0, 0, 0, 16,219,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,221,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 16,222,156, 26, 1, 0, 0, 0, 80,221,156, 26, 1, 0, 0, 0,112,216,156, 26, 1, 0, 0, 0,240,217,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,222,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,112,222,156, 26, 1, 0, 0, 0,176,221,156, 26, 1, 0, 0, 0,176,218,156, 26, 1, 0, 0, 0, 16,219,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,222,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,208,222,156, 26, 1, 0, 0, 0, 16,222,156, 26, 1, 0, 0, 0, 80,218,156, 26, 1, 0, 0, 0,176,218,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,222,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48,223,156, 26, 1, 0, 0, 0,112,222,156, 26, 1, 0, 0, 0,144,217,156, 26, 1, 0, 0, 0, 16,219,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,223,156, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,222,156, 26, 1, 0, 0, 0,144,217,156, 26, 1, 0, 0, 0, 80,218,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144,223,156, 26, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 48,227,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,217,156, 26, 1, 0, 0, 0,208,216,156, 26, - 1, 0, 0, 0, 48,217,156, 26, 1, 0, 0, 0, 80,218,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 40, 4, 0, 0, 66, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 23,157, 26, 1, 0, 0, 0,240, 23,157, 26, 1, 0, 0, 0,112,224,156, 26, 1, 0, 0, 0,208,225,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,224,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,225,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 40, 4, 0, 0, 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,225,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,224,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, -255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,129, 7, 7, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 66, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48,227,156, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,249,156, 26, - 1, 0, 0, 0,144,223,156, 26, 1, 0, 0, 0,112,216,156, 26, 1, 0, 0, 0,240,217,156, 26, 1, 0, 0, 0,176,218,156, 26, - 1, 0, 0, 0, 16,219,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, - 38, 4, 0, 0, 6, 6,196, 3, 39, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,233,156, 26, - 1, 0, 0, 0,208,248,156, 26, 1, 0, 0, 0, 16,228,156, 26, 1, 0, 0, 0, 96,232,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 16,228,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,229,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,113, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,196, 3, 26, 0,196, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112,229,156, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,232,156, 26, 1, 0, 0, 0, 16,228,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 4, 67,254,191,126,196, - 0, 0, 0, 0,133, 0, 0, 0,150, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,132, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,132, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,150, 0, 13, 4,133, 0, -251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, 0, 0, 26, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 13, 4, - 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,230,156, 26, 1, 0, 0, 0,208,230,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,208,230,156, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, -110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, -110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,132, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176,118,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,117,166, 29, 1, 0, 0, 0, + 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,132,137,182,195,194, 68, 91, 68,112,158, 93, 65, 8, 19,249, 67, +223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, +205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5, 92, 2,223, 5, 74, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +183, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 16,120,166, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,144,125,166, 29, 1, 0, 0, 0, 48,136, 4, 28, 1, 0, 0, 0, + 80,117,166, 29, 1, 0, 0, 0,176,118,166, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,232,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,229,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67,154,153, 69,191,205,204,226, 63,102,102,143,191, 51,179, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 3, 0, 0, 0, 0, 0, 0, - 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0,195, 3, 0, 0, 26, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 3, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,192,233,156, 26, 1, 0, 0, 0,167, 0, 0, 0, - 1, 0, 0, 0,176,244,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,234,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0,236,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,236,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 96,237,156, 26, 1, 0, 0, 0,160,234,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,237,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192,238,156, 26, 1, 0, 0, 0, 0,236,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,238,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 32,240,156, 26, 1, 0, 0, 0, 96,237,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,240,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,238,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,241,156, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,128,241,156, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, - 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,121,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,208,122,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,176,244,156, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,208,248,156, 26, 1, 0, 0, 0,192,233,156, 26, - 1, 0, 0, 0,160,234,156, 26, 1, 0, 0, 0, 32,240,156, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,122,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 48,124,166, 29, 1, 0, 0, 0,112,121,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,246,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,247,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,247,156, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,246,156, 26, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,208,248,156, 26, - 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,244,156, 26, 1, 0, 0, 0, 16,246,156, 26, - 1, 0, 0, 0,112,247,156, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,124,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,122,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,144,125,166, 29, 1, 0, 0, 0, +164, 0, 0, 0, 1, 0, 0, 0,160,133,166, 29, 1, 0, 0, 0, 16,120,166, 29, 1, 0, 0, 0,112,121,166, 29, 1, 0, 0, 0, + 48,124,166, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208,249,156, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,227,156, 26, 1, 0, 0, 0, 16,219,156, 26, - 1, 0, 0, 0,176,218,156, 26, 1, 0, 0, 0, 80,218,156, 26, 1, 0, 0, 0,144,217,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 38, 4, 0, 0, 1, 1,188, 3, 39, 4, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 18,157, 26, 1, 0, 0, 0,240, 22,157, 26, 1, 0, 0, 0,176,250,156, 26, - 1, 0, 0, 0, 64, 14,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,250,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 16,252,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 89, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,111, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,188, 3, 26, 0,188, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,252,156, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,144, 0,157, 26, 1, 0, 0, 0,176,250,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,192, 96,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,192, 96,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -148, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -148, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,149, 3,143, 0,131, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0,146, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,149, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,253,156, 26, - 1, 0, 0, 0, 0,255,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,253,156, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0,255,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,126,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,128,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, +225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,128,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,129,166, 29, 1, 0, 0, 0,192,126,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0, +251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128,129,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,130,166, 29, 1, 0, 0, 0, 32,128,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, +251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 0,255,156, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,253,156, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +224,130,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,132,166, 29, 1, 0, 0, 0,128,129,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, +251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64,132,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,130,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, +251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 0,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,128, 3,157, 26, 1, 0, 0, 0, 16,252,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 1,157, 26, - 1, 0, 0, 0,240, 1,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240, 1,157, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,140, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48,140, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, + 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, +164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191, +118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, + 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, + 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191, +118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, +214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77,111,118,101, 32,116,111, 32, 76, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,166,255,144, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128, 3,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64, 14,157, 26, 1, 0, 0, 0,144, 0,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0, -251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0, 26, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 4,157, 26, 1, 0, 0, 0,176, 12,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,224, 4,157, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 6,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98, -106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98, -106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 6,157, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 8,157, 26, 1, 0, 0, 0,224, 4,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,133,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, +192,137,166, 29, 1, 0, 0, 0,144,125,166, 29, 1, 0, 0, 0,192,126,166, 29, 1, 0, 0, 0, 64,132,166, 29, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 0,135,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,136,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, + 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40,254,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,136,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,135,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, +122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 0, 8,157, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 9,157, 26, 1, 0, 0, 0,112, 6,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,252,163, 0, 59, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0,192,137,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160,133,166, 29, 1, 0, 0, 0, 0,135,166, 29, 1, 0, 0, 0, 96,136,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144, 9,157, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 32, 11,157, 26, 1, 0, 0, 0, 0, 8,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,192,138,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80,168,166, 29, 1, 0, 0, 0, +176,113,166, 29, 1, 0, 0, 0, 16, 37,166, 29, 1, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, +208, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, + 18, 18,240, 2,192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,185,217, 2, 1, 0, 0, 0, 96,142,166, 29, 1, 0, 0, 0, + 80,167,166, 29, 1, 0, 0, 0,160,139,166, 29, 1, 0, 0, 0, 0,141,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,151,162, 21, 1, 0, 0, 0, 80, 11,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160,139,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,141,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,231, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 60, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,189,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 2, 26, 0,240, 2, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,187,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,141,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,139,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0,192, 59, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,192, 55, 68, 0, 0, 0, 0, 0, 0,211, 67, +223, 2, 0, 0,240, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 2,166, 1,223, 2,166, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, + 26, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2,166, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,186,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 32, 11,157, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 12,157, 26, 1, 0, 0, 0,144, 9,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, - 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, - 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73, -109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,252,163, 0, 0, 0, 20, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0, + 96,142,166, 29, 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 48,144, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,224,107,160, 21, 1, 0, 0, 0, +240, 71,200, 20, 1, 0, 0, 0,176,104,160, 21, 1, 0, 0, 0,176,104,160, 21, 1, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176, 12,157, 26, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 11,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116, -105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116, -105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,141,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64, 14,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 3,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,144,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,145,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 0, 0, -128, 7, 0, 0, 26, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 3, 13, 4, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128,145,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,144,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 15,157, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0,160, 15,157, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 14, 99,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, - 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191,147,231,198, 63, 0, 0,128, 63, 85,145, 21, 63,206,249,224,190, 48,180, 81,191, -184,158, 81,191, 34, 85,166, 63,139,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, 67,214,154,188,204,156,122, 63,138, 84,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 80, 85,147, 62,241,216, 35, 63, 96,133, 24,188, - 0, 0,224, 51,195, 15,188,190,130, 75, 53, 62,218,125, 81, 63, 0, 0,160,179,115, 77,100,193, 15,173,201, 64,182,148,248,192, -203,247,159,192,233, 74, 87, 65,245, 46,190,192, 89,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 85,145, 21, 63,206,249,224,190, 48,180, 81,191, -184,158, 81,191, 34, 85,166, 63,139,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, 67,214,154,188,204,156,122, 63,138, 84,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,126, 31,231, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, + 48,144, 4, 28, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,160,149,166, 29, 1, 0, 0, 0, 96,142,166, 29, 1, 0, 0, 0, + 32,144,166, 29, 1, 0, 0, 0,128,145,166, 29, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,208, 18,157, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,240, 22,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 20,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144, 21,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 21,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 20,157, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,240, 22,157, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208, 18,157, 26, 1, 0, 0, 0, 48, 20,157, 26, 1, 0, 0, 0,144, 21,157, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,112, 24,157, 26, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,215,156, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105, -100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 25,157, 26, 1, 0, 0, 0,160, 29,157, 26, 1, 0, 0, 0, 0, 30,157, 26, 1, 0, 0, 0, 96, 36,157, 26, - 1, 0, 0, 0,192, 36,157, 26, 1, 0, 0, 0, 48,107,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 25,157, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,224, 25,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 25,157, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 64, 26,157, 26, - 1, 0, 0, 0,128, 25,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 64, 26,157, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,160, 26,157, 26, 1, 0, 0, 0,224, 25,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 66, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 26,157, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 27,157, 26, 1, 0, 0, 0, 64, 26,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0, 27,157, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 96, 27,157, 26, 1, 0, 0, 0,160, 26,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96, 27,157, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,192, 27,157, 26, - 1, 0, 0, 0, 0, 27,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 39, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,192, 27,157, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 32, 28,157, 26, 1, 0, 0, 0, 96, 27,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,248, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 28,157, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,128, 28,157, 26, 1, 0, 0, 0,192, 27,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 28,157, 26, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,224, 28,157, 26, 1, 0, 0, 0, 32, 28,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 39, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 28,157, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 64, 29,157, 26, - 1, 0, 0, 0,128, 28,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 64, 29,157, 26, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,160, 29,157, 26, 1, 0, 0, 0,224, 28,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,248, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 29,157, 26, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 29,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 30,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 96, 30,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 25,157, 26, 1, 0, 0, 0, 64, 26,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 30,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,192, 30,157, 26, 1, 0, 0, 0, 0, 30,157, 26, 1, 0, 0, 0,224, 25,157, 26, 1, 0, 0, 0, 0, 27,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 30,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 32, 31,157, 26, 1, 0, 0, 0, 96, 30,157, 26, 1, 0, 0, 0, 64, 26,157, 26, 1, 0, 0, 0, 96, 27,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 31,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,128, 31,157, 26, 1, 0, 0, 0,192, 30,157, 26, 1, 0, 0, 0, 0, 27,157, 26, 1, 0, 0, 0, 96, 27,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 31,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,224, 31,157, 26, 1, 0, 0, 0, 32, 31,157, 26, 1, 0, 0, 0, 96, 27,157, 26, 1, 0, 0, 0,192, 27,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 31,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 64, 32,157, 26, 1, 0, 0, 0,128, 31,157, 26, 1, 0, 0, 0,128, 25,157, 26, 1, 0, 0, 0, 32, 28,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 32,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,160, 32,157, 26, 1, 0, 0, 0,224, 31,157, 26, 1, 0, 0, 0, 0, 27,157, 26, 1, 0, 0, 0,128, 28,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 32,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 0, 33,157, 26, 1, 0, 0, 0, 64, 32,157, 26, 1, 0, 0, 0, 32, 28,157, 26, 1, 0, 0, 0,224, 28,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 33,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 96, 33,157, 26, 1, 0, 0, 0,160, 32,157, 26, 1, 0, 0, 0,224, 28,157, 26, 1, 0, 0, 0, 64, 29,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 33,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,192, 33,157, 26, 1, 0, 0, 0, 0, 33,157, 26, 1, 0, 0, 0,128, 28,157, 26, 1, 0, 0, 0, 64, 29,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 33,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 32, 34,157, 26, 1, 0, 0, 0, 96, 33,157, 26, 1, 0, 0, 0,192, 27,157, 26, 1, 0, 0, 0,160, 29,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 34,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,128, 34,157, 26, 1, 0, 0, 0,192, 33,157, 26, 1, 0, 0, 0,160, 26,157, 26, 1, 0, 0, 0,160, 29,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 34,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,224, 34,157, 26, 1, 0, 0, 0, 32, 34,157, 26, 1, 0, 0, 0, 32, 28,157, 26, 1, 0, 0, 0,160, 29,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 34,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 64, 35,157, 26, 1, 0, 0, 0,128, 34,157, 26, 1, 0, 0, 0,128, 25,157, 26, 1, 0, 0, 0,160, 26,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 35,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,160, 35,157, 26, 1, 0, 0, 0,224, 34,157, 26, 1, 0, 0, 0, 96, 27,157, 26, 1, 0, 0, 0,128, 28,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 35,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 0, 36,157, 26, 1, 0, 0, 0, 64, 35,157, 26, 1, 0, 0, 0,192, 27,157, 26, 1, 0, 0, 0, 64, 29,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 36,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 96, 36,157, 26, 1, 0, 0, 0,160, 35,157, 26, 1, 0, 0, 0, 0, 27,157, 26, 1, 0, 0, 0,224, 28,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 36,157, 26, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,157, 26, 1, 0, 0, 0,192, 27,157, 26, 1, 0, 0, 0,224, 28,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,192, 36,157, 26, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 96, 40,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,157, 26, 1, 0, 0, 0,224, 25,157, 26, - 1, 0, 0, 0, 64, 26,157, 26, 1, 0, 0, 0, 96, 27,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 40, 4, 0, 0, 66, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,144,128,157, 26, 1, 0, 0, 0,144,128,157, 26, 1, 0, 0, 0,160, 37,157, 26, 1, 0, 0, 0, 0, 39,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 37,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 39,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 40, 4, 0, 0, 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 39,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 37,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, -255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,129, 7, 7, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 0, 66, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96, 40,157, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 52,157, 26, - 1, 0, 0, 0,192, 36,157, 26, 1, 0, 0, 0,128, 25,157, 26, 1, 0, 0, 0, 32, 28,157, 26, 1, 0, 0, 0,160, 29,157, 26, - 1, 0, 0, 0,160, 26,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 91, 0, 0, 0, 15, 15,129, 7, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,157, 26, - 1, 0, 0, 0,240, 50,157, 26, 1, 0, 0, 0, 64, 41,157, 26, 1, 0, 0, 0,160, 42,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64, 41,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160, 42,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160, 42,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 41,157, 26, - 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,129, 7, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 66, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -200, 0, 0, 0, 0, 44,157, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0,240, 50,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0, 45,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96, 46,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96, 46,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, + 68, 65, 84, 65, 40, 1, 0, 0,224,146,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,148,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, + 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, + 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 47,157, 26, 1, 0, 0, 0, 68, 65, 84, 65, -248, 2, 0, 0,192, 47,157, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, -115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64,148,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224,146,166, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, + 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5, +130, 1,223, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,160,149,166, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 32,155,166, 29, 1, 0, 0, 0, + 48,144, 4, 28, 1, 0, 0, 0,224,146,166, 29, 1, 0, 0, 0, 64,148,166, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240, 50,157, 26, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,157, 26, 1, 0, 0, 0, 0, 45,157, 26, 1, 0, 0, 0, 96, 46,157, 26, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 80, 52,157, 26, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176, 73,157, 26, - 1, 0, 0, 0, 96, 40,157, 26, 1, 0, 0, 0, 32, 28,157, 26, 1, 0, 0, 0,224, 28,157, 26, 1, 0, 0, 0,192, 27,157, 26, - 1, 0, 0, 0,160, 29,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 93, 0, 0, 0, -247, 1, 0, 0, 8, 8,129, 7,155, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 57,157, 26, - 1, 0, 0, 0,176, 72,157, 26, 1, 0, 0, 0, 48, 53,157, 26, 1, 0, 0, 0,240, 55,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 48, 53,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144, 54,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 31, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, 0, 96,191, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 93, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144, 54,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240, 55,157, 26, 1, 0, 0, 0, 48, 53,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,183,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,183,195, - 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,129, 1,203, 0, -111, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6, 0, 0, -128, 7, 0, 0,119, 0, 0, 0,247, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,129, 1, - 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240, 55,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 54,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,128, 1, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 18, 0, 0, 0,128, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,165, 6,129, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -164, 6, 0, 0,119, 0, 0, 0,247, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6,129, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0, 80, 57,157, 26, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,144, 68,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 58,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224, 59,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,128,191, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,252, 5, 26, 0,252, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,252, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 59,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64, 61,157, 26, - 1, 0, 0, 0,128, 58,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0,113, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 61,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160, 62,157, 26, - 1, 0, 0, 0,224, 59,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 62,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 64,157, 26, - 1, 0, 0, 0, 64, 61,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,251, 5, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 64,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 62,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,252, 5,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 65,157, 26, - 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0, 96, 65,157, 26, 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 79,145, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, - 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, - 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, -241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188, -119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,112,240,191, 62, -108,116, 85, 63, 80,184, 70,188, 0, 0, 46,180,159, 49,181,189,125,172, 46, 61, 7,213, 73, 62, 0, 64,143,180,182,107, 25,196, - 13,135,135, 67, 70, 12,167,195, 71, 0, 72,194,225, 56, 25, 68, 38, 90,135,195,237,212,166, 67, 84, 2, 72, 66, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, -241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188, -119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 13,114,156, 58, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,151,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,152,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,152,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,153,166, 29, 1, 0, 0, 0, 0,151,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,144, 68,157, 26, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,176, 72,157, 26, 1, 0, 0, 0, 80, 57,157, 26, 1, 0, 0, 0,128, 58,157, 26, - 1, 0, 0, 0, 0, 64,157, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 69,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 80, 71,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 71,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 69,157, 26, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0, +112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,153,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,152,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,176, 72,157, 26, 1, 0, 0, 0,172, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 68,157, 26, 1, 0, 0, 0,240, 69,157, 26, 1, 0, 0, 0, 80, 71,157, 26, - 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, + 32,155,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 48,163,166, 29, 1, 0, 0, 0,160,149,166, 29, 1, 0, 0, 0, + 0,151,166, 29, 1, 0, 0, 0,192,153,166, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176, 73,157, 26, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 48,107,157, 26, 1, 0, 0, 0, 80, 52,157, 26, 1, 0, 0, 0,224, 28,157, 26, 1, 0, 0, 0, 0, 27,157, 26, - 1, 0, 0, 0,128, 28,157, 26, 1, 0, 0, 0, 64, 29,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 3, 0, 0,249, 1, 0, 0, 38, 4, 0, 0, 2, 2, 80, 3, 46, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 80,157, 26, 1, 0, 0, 0, 48,106,157, 26, 1, 0, 0, 0,144, 74,157, 26, 1, 0, 0, 0,176, 78,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 74,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240, 75,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 84, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, - 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0, 80, 3, 26, 0, 80, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0,249, 1, 0, 0, 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 75,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80, 77,157, 26, - 1, 0, 0, 0,144, 74,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 67, 0,128, 0,196, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 19, 2, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 19, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, - 6, 0,217, 0, 20, 2,200, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 19, 2, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0, 20, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,156,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,157,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, + 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 77,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176, 78,157, 26, - 1, 0, 0, 0,240, 75,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176,157,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,159,166, 29, 1, 0, 0, 0, + 80,156,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16,159,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,160,166, 29, 1, 0, 0, 0, +176,157,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 3, 0, 0, 79, 3, 0, 0, 19, 2, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,160,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,161,166, 29, 1, 0, 0, 0, + 16,159,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 78,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 77,157, 26, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 2, 0, 0, 18, 0, 0, 0, -118, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, 18, 0, 0, 0, 19, 2, 0, 0,111, 18,131, 58, -111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0,119, 2, 20, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0, 0, 0, 79, 3, 0, 0, 19, 2, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,119, 2, 20, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,161,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,160,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 16, 80,157, 26, 1, 0, 0, 0,161, 0, 0, 0, 1, 0, 0, 0,192, 85,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,148, 4, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,148, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, +224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, + 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 81,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 81,157, 26, - 1, 0, 0, 0, 20, 1, 0, 0, 1, 0, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 81,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 83,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 38, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 2, 26, 0,152, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 83,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 96, 84,157, 26, 1, 0, 0, 0,160, 81,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 67, 0,128, 4,196, 0, 0, 64,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,181, 0, 24, 2,181, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 24, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 84,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,157, 26, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0,128, 4,196, 0, 0, 64,193,210, 1, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 18, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 0, 0,151, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,192, 85,157, 26, 1, 0, 0, 0, 21, 1, 0, 0, - 1, 0, 0, 0, 32, 91,157, 26, 1, 0, 0, 0, 16, 80,157, 26, 1, 0, 0, 0,160, 81,157, 26, 1, 0, 0, 0, 96, 84,157, 26, - 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,163,166, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 80,167,166, 29, 1, 0, 0, 0, 32,155,166, 29, 1, 0, 0, 0, 80,156,166, 29, 1, 0, 0, 0, +208,161,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,164,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +240,165,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 25, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 87,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 96, 88,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,165,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,164,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 88,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192, 89,157, 26, 1, 0, 0, 0, 0, 87,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0, -163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0, -163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 80,167,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,163,166, 29, 1, 0, 0, 0,144,164,166, 29, 1, 0, 0, 0,240,165,166, 29, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 89,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 88,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0, -164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 32, 91,157, 26, 1, 0, 0, 0,167, 0, 0, 0, - 1, 0, 0, 0, 16,102,157, 26, 1, 0, 0, 0,192, 85,157, 26, 1, 0, 0, 0, 0, 87,157, 26, 1, 0, 0, 0,192, 89,157, 26, - 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 80,168,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192,138,166, 29, 1, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, +240, 38,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, + 65, 3, 0, 0, 99, 4, 0, 0, 3, 3,144, 1, 35, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,106,217, 2, 1, 0, 0, 0, +240,171,166, 29, 1, 0, 0, 0,112,186,166, 29, 1, 0, 0, 0, 48,169,166, 29, 1, 0, 0, 0,144,170,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,151,162, 21, 1, 0, 0, 0,176,251,201, 20, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48,169,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,170,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,149, 67, 0, 0,200, 65, + 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, + 26, 0,144, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,128, 7, 0, 0, 65, 3, 0, 0, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,108,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 92,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 96, 93,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144,170,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,169,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 67, + 0, 0,119,195, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,144, 1, + 9, 1,127, 1,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,128, 7, 0, 0, 91, 3, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 1, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,107,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 93,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192, 94,157, 26, 1, 0, 0, 0, 0, 92,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 94,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 32, 96,157, 26, 1, 0, 0, 0, 96, 93,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 96,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,128, 97,157, 26, 1, 0, 0, 0,192, 94,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 97,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 96,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,240,171,166, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 32,177,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224, 98,157, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0,224, 98,157, 26, 1, 0, 0, 0,156, 0, 0, 0, - 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, - 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,195,200, 20, 1, 0, 0, 0,112,195,200, 20, 1, 0, 0, 0,112, 61,160, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 16,102,157, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 48,106,157, 26, 1, 0, 0, 0, 32, 91,157, 26, - 1, 0, 0, 0, 0, 92,157, 26, 1, 0, 0, 0,128, 97,157, 26, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 68, 65, 84, 65, 16, 0, 0, 0,112, 61,160, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, + 80,173,166, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 80,173,166, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, + 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,208, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,220, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,214, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,202, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,174,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,192,175,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 1, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 1, 31, 0, 44, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,160, 5, 0, 0,218, 2, 0, 0,248, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,103,157, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,104,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,175,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,174,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, + 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,246,194, 0, 0, 0, 0, 27, 1, 0, 0, 44, 1, 0, 0, + 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, + 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 44, 1,141, 0, 27, 1,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,160, 5, 0, 0, 77, 2, 0, 0,217, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,104,157, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,103,157, 26, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 32,177,166, 29, 1, 0, 0, 0, +163, 0, 0, 0, 1, 0, 0, 0,128,182,166, 29, 1, 0, 0, 0,240,171,166, 29, 1, 0, 0, 0, 96,174,166, 29, 1, 0, 0, 0, +192,175,166, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48,106,157, 26, - 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,102,157, 26, 1, 0, 0, 0,112,103,157, 26, - 1, 0, 0, 0,208,104,157, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,178,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +192,179,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48,107,157, 26, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 73,157, 26, 1, 0, 0, 0, 64, 29,157, 26, - 1, 0, 0, 0,128, 28,157, 26, 1, 0, 0, 0, 96, 27,157, 26, 1, 0, 0, 0,192, 27,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0,249, 1, 0, 0, 38, 4, 0, 0, 8, 8, 48, 4, 46, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,112,157, 26, 1, 0, 0, 0,144,127,157, 26, 1, 0, 0, 0, 16,108,157, 26, - 1, 0, 0, 0,208,110,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,108,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,112,109,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,135, 68, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 4, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0,224,156, 68, 0, 0,200, 65, 0,224,156, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 56, 4, 24, 0, 56, 4, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0,249, 1, 0, 0,249, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,179,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 32,181,166, 29, 1, 0, 0, 0, 96,178,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,109,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,208,110,157, 26, 1, 0, 0, 0, 16,108,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,249, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,181,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192,179,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, + 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,110,157, 26, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,109,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, - 45, 2, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 18, 0, 0, 0, - 45, 2, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 48, 4, 46, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0,249, 1, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4, 46, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128,182,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, +112,186,166, 29, 1, 0, 0, 0, 32,177,166, 29, 1, 0, 0, 0, 96,178,166, 29, 1, 0, 0, 0, 32,181,166, 29, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 48,112,157, 26, 1, 0, 0, 0,163, 0, 0, 0, - 1, 0, 0, 0,112,123,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,183,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 16,185,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,113,157, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,114,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0, -250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,114,157, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,116,157, 26, 1, 0, 0, 0, 96,113,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,116,157, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,117,157, 26, 1, 0, 0, 0,192,114,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, -251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,117,157, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,118,157, 26, 1, 0, 0, 0, 32,116,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,118,157, 26, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,120,157, 26, 1, 0, 0, 0, 68, 65, 84, 65,248, 2, 0, 0, 64,120,157, 26, - 1, 0, 0, 0,156, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, -142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, -111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, - 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190, -250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68, -160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, - 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,185,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,183,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,112,123,157, 26, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,144,127,157, 26, - 1, 0, 0, 0, 48,112,157, 26, 1, 0, 0, 0, 96,113,157, 26, 1, 0, 0, 0,224,118,157, 26, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 80, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208,124,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48,126,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,152, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,152, 4, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, + 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 48,126,157, 26, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,124,157, 26, - 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -200, 0, 0, 0,144,127,157, 26, 1, 0, 0, 0,172, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,123,157, 26, - 1, 0, 0, 0,208,124,157, 26, 1, 0, 0, 0, 48,126,157, 26, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 67, 0, 0, - 0, 6, 0, 0, 48, 66, 25, 4, 1, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, - 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 80, 25, 4, 1, 0, 0, 0,144,137,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16,129,157, 26, 1, 0, 0, 0,208,129,157, 26, 1, 0, 0, 0, 16,129,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,112,186,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128,182,166, 29, 1, 0, 0, 0,176,183,166, 29, 1, 0, 0, 0, 16,185,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, + 80,188,166, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0,247,166, 29, 1, 0, 0, 0, 0, 36,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0, + 0,192,166, 29, 1, 0, 0, 0, 96,192,166, 29, 1, 0, 0, 0, 32,196,166, 29, 1, 0, 0, 0,128,196,166, 29, 1, 0, 0, 0, +144,219,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +192,189,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +224,190,166, 29, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, +128,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 64,191,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +196, 3,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 0, 0, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 96,192,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,192,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,192,192,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,193,166, 29, 1, 0, 0, 0, + 96,192,166, 29, 1, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 32,193,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,193,166, 29, 1, 0, 0, 0, +192,192,166, 29, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,128,193,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,193,166, 29, 1, 0, 0, 0, + 32,193,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,224,193,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,194,166, 29, 1, 0, 0, 0, +128,193,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 64,194,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,194,166, 29, 1, 0, 0, 0, +224,193,166, 29, 1, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,160,194,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,195,166, 29, 1, 0, 0, 0, + 64,194,166, 29, 1, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 0,195,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,195,166, 29, 1, 0, 0, 0, +160,194,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 96,195,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,195,166, 29, 1, 0, 0, 0, + 0,195,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,192,195,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,196,166, 29, 1, 0, 0, 0, + 96,195,166, 29, 1, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 32,196,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192,195,166, 29, 1, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,128,196,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,200,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, + 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, + 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,128,246,166, 29, 1, 0, 0, 0, +128,246,166, 29, 1, 0, 0, 0, 96,197,166, 29, 1, 0, 0, 0,192,198,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,145,214, 2, 1, 0, 0, 0,192, 34,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,197,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,198,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,198,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,197,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, +112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, + 32,200,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144,219,166, 29, 1, 0, 0, 0,128,196,166, 29, 1, 0, 0, 0, + 96,189,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 99, 4, 0, 0, 6, 6,196, 3,100, 4, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,128,217, 2, 1, 0, 0, 0,176,206,166, 29, 1, 0, 0, 0,144,218,166, 29, 1, 0, 0, 0, + 0,201,166, 29, 1, 0, 0, 0, 80,205,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 9,163, 29, 1, 0, 0, 0, 32,102,164, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,201,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 96,202,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,196, 3, 26, 0,196, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,134,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,202,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 80,205,166, 29, 1, 0, 0, 0, 0,201,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, + 0,224,134,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,255,255,134,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, + 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, + 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, 74, 4,203, 0, 56, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 74, 4, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,130,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192,203,166, 29, 1, 0, 0, 0,192,203,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,203,166, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,133,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,202, 0, 36, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,205,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96,202,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,154,153, 41,191,205,204,212, 63, +154,153,155,191,205,204, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 0, 0, 0, 0, 0, 0, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0, 0, 0,195, 3, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 2, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,129,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,168, 0, 0, 0,176,206,166, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0,112,214,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144,207,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,208,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, + 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,240,208,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,210,166, 29, 1, 0, 0, 0, +144,207,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,210,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,211,166, 29, 1, 0, 0, 0, +240,208,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176,211,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,213,166, 29, 1, 0, 0, 0, + 80,210,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16,213,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,211,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,156, 4, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,156, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, +222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63, +224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, + 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, +222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,130,157, 26, 1, 0, 0, 0, 80,104,158, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68,172, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 25, 0,141, 0,128, 7, - 56, 4, 8, 0, 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 23, 0, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224,131,157, 26, 1, 0, 0, 0,224,131,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, - 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, - 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 98, 97, 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,112,214,166, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0,144,218,166, 29, 1, 0, 0, 0,176,206,166, 29, 1, 0, 0, 0,144,207,166, 29, 1, 0, 0, 0, + 16,213,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,215,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 48,217,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,217,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,215,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,144,218,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,214,166, 29, 1, 0, 0, 0,208,215,166, 29, 1, 0, 0, 0, 48,217,166, 29, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63, -205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 6, 0, 0, 0, - 16, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, -180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, - 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, - 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 94, 3, - 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 32, 0, - 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,129,157, 26, - 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0,112,129,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0,194, 2,214, 1, 48, 86, 25, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,129,157, 26, - 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0,208,129,157, 26, 1, 0, 0, 0, 16,129,157, 26, 1, 0, 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 0, 4, 0, 0,144, 3, 18, 3, 48,160, 26, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,129,157, 26, - 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,129,157, 26, 1, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 4, 0, 0,156, 0, 54, 2, 48, 80, 25, 4, 1, 0, 0, 0, 68, 65, 84, 65,120, 1, 0, 0, 48,130,157, 26, - 1, 0, 0, 0,150, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58, -205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, - 5, 0,255,255, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0,100, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, - 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 0, 0, 0,224,131,157, 26, 1, 0, 0, 0,136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 32, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, - 0, 0, 0, 0,255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,152, 0, 0, 0,112,132,157, 26, - 1, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, - 0, 0, 0, 63,145,137, 68, 66,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 65, 0, 0,248, 1, 0, 0, 64,133,157, 26, 1, 0, 0, 0, 41, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112, -111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, - 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,112,135,157, 26, 1, 0, 0, 0, 2, 0, 0, 0, - 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144,219,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,200,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, + 64,191,166, 29, 1, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 99, 4, 0, 0, 1, 1,188, 3,100, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,111,217, 2, 1, 0, 0, 0, + 96,241,166, 29, 1, 0, 0, 0,128,245,166, 29, 1, 0, 0, 0,112,220,166, 29, 1, 0, 0, 0, 0,240,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,249,201, 20, 1, 0, 0, 0,112, 1,162, 29, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,220,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,221,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,111, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,188, 3, + 26, 0,188, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +188, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,119,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,221,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,226,166, 29, 1, 0, 0, 0, +112,220,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,112,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 0,112,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,209, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,209, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +210, 3,143, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +197, 3, 0, 0,100, 4, 0, 0,146, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 0,210, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,116,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,223,166, 29, 1, 0, 0, 0,192,224,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,137,157, 26, 1, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,112,135,157, 26, - 1, 0, 0, 0, 74, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,224,136,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48,223,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,224,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16,117,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101, +108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,224,166, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,223,166, 29, 1, 0, 0, 0,144, 38, 21, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, +100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, +100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,136,157, 26, 1, 0, 0, 0, 72, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,137,157, 26, - 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,216, 1, 0, 0,144,137,157, 26, - 1, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 0, 0, 0, 0,205,204,204, 61,205,204,204, 61,205,204,204, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,226,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,229,166, 29, 1, 0, 0, 0, +208,221,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +197, 3, 0, 0,100, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,227,166, 29, 1, 0, 0, 0,176,227,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,176,227,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224,118,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, + 0, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,229,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0,240,166, 29, 1, 0, 0, 0, 80,226,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,112,113,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160,230,166, 29, 1, 0, 0, 0,112,238,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,230,166, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48,232,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48,232,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,233,166, 29, 1, 0, 0, 0, +160,230,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80, +101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,254,163, 0, 58, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,233,166, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,235,166, 29, 1, 0, 0, 0, 48,232,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116, +105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116, +105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 88, 0, 0,176, 0, 0, 0,160,139,157, 26, 1, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 84,101, -120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0,144,140,157, 26, 1, 0, 0, 0,144,140,157, 26, - 1, 0, 0, 0,144,140,157, 26, 1, 0, 0, 0,144,140,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 74, 25, 4, 1, 0, 0, 0,255,255,255,255, 0, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,140,157, 26, 1, 0, 0, 0, 25, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,214,152, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, 4, 0, 0, 0, 64,214,152, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 1, 0, 79, 66, 0, 0,152, 4, 0, 0, 48, 80, 25, 4, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, - 48, 86, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 80,235,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,236,166, 29, 1, 0, 0, 0, +192,233,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,189,252,163, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,236,166, 29, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112,238,166, 29, 1, 0, 0, 0, 80,235,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97, +103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97, +103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,132,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,254,141, 63, -192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, - 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, - 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, - 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, - 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63, 0, 0,128, 63,157,190,215, 49,167,170, 4, 52, - 0, 0, 0,128,129,116,157,178, 1, 0,128, 63, 33, 69, 15, 51, 0, 0, 0,128, 73,254, 67, 51,243, 97,106, 49, 0, 0,128, 63, - 0, 0, 0,128, 3, 0, 64, 52,183,164,157, 39, 0, 0,128, 53, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, - 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0, -143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 68, 65, 84, 65, 88, 1, 0, 0,112,238,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224,236,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, +109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141,252,163, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,240,166, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,229,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 3, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,160, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,160, 4, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0,151, 29,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,139, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, + 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191, +147,231,198, 63, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, 48,180, 81,191,184,158, 81,191,232, 29,176, 63,139,225, 88, 62, + 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, +100, 98, 82, 64, 0, 25, 95, 64,227, 37,139, 62,171,190, 26, 63,112, 12, 16,188, 0, 0, 64, 51,195, 15,188,190,131, 75, 53, 62, +218,125, 81, 63, 0, 0,160,179,115, 77,100,193, 16,173,201, 64,182,148,248,192,203,247,159,192,233, 74, 87, 65,246, 46,190,192, + 89,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 95,192, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, 48,180, 81,191,184,158, 81,191,232, 29,176, 63,139,225, 88, 62, + 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, +100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, + 0, 0, 0, 0, 0, 0, 0, 0,104, 72,218, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, - 48, 86, 25, 4, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 48,160, 26, 4, 1, 0, 0, 0, 48, 80, 25, 4, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 12, 94, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,150, 90, 3, 1, 0, 0, 0, -208,161, 89, 3, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 96,241,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,128,245,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,242,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,244,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,244,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,242,166, 29, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +128,245,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,241,166, 29, 1, 0, 0, 0, +192,242,166, 29, 1, 0, 0, 0, 32,244,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, + 0,247,166, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,188,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0, + 48,252,166, 29, 1, 0, 0, 0,144,252,166, 29, 1, 0, 0, 0,240, 2,167, 29, 1, 0, 0, 0, 80, 3,167, 29, 1, 0, 0, 0, + 48, 64,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +112,248,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +144,249,166, 29, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, + 48,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +240,249,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 16,251,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, +176,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +112,251,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 3, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,144,252,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,252,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,240,252,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,253,166, 29, 1, 0, 0, 0, +144,252,166, 29, 1, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 80,253,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,253,166, 29, 1, 0, 0, 0, +240,252,166, 29, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,176,253,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,254,166, 29, 1, 0, 0, 0, + 80,253,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 16,254,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,254,166, 29, 1, 0, 0, 0, +176,253,166, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,112,254,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,254,166, 29, 1, 0, 0, 0, + 16,254,166, 29, 1, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,208,254,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,255,166, 29, 1, 0, 0, 0, +112,254,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 48,255,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,255,166, 29, 1, 0, 0, 0, +208,254,166, 29, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,144,255,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,255,166, 29, 1, 0, 0, 0, + 48,255,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,240,255,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 0,167, 29, 1, 0, 0, 0, +144,255,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 80, 0,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 0,167, 29, 1, 0, 0, 0, +240,255,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,176, 0,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 1,167, 29, 1, 0, 0, 0, + 80, 0,167, 29, 1, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 16, 1,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 1,167, 29, 1, 0, 0, 0, +176, 0,167, 29, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,112, 1,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 1,167, 29, 1, 0, 0, 0, + 16, 1,167, 29, 1, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,208, 1,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 2,167, 29, 1, 0, 0, 0, +112, 1,167, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 48, 2,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 2,167, 29, 1, 0, 0, 0, +208, 1,167, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,144, 2,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 2,167, 29, 1, 0, 0, 0, + 48, 2,167, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,240, 2,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 2,167, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 80, 3,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240, 6,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, +240,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, + 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0, 96, 82,167, 29, 1, 0, 0, 0, + 96, 82,167, 29, 1, 0, 0, 0, 48, 4,167, 29, 1, 0, 0, 0,144, 5,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128,146,140, 27, 1, 0, 0, 0,176,248,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48, 4,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 5,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144, 5,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, +112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +240, 6,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176, 15,167, 29, 1, 0, 0, 0, 80, 3,167, 29, 1, 0, 0, 0, + 16,248,166, 29, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,129, 7,100, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16,109,217, 2, 1, 0, 0, 0,144, 10,167, 29, 1, 0, 0, 0, 80, 14,167, 29, 1, 0, 0, 0, +208, 7,167, 29, 1, 0, 0, 0, 48, 9,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224,141,162, 21, 1, 0, 0, 0,176, 73,202, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 7,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 48, 9,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,110,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 9,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 7,167, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, + 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,129, 7, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,109,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,144, 10,167, 29, 1, 0, 0, 0, +173, 0, 0, 0, 1, 0, 0, 0, 80, 14,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 11,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,240, 12,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 12,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 11,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,164, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,164, 4, 28, 1, 0, 0, 0, +157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, + 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 80, 14,167, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 10,167, 29, 1, 0, 0, 0,144, 11,167, 29, 1, 0, 0, 0,240, 12,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +176, 15,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224, 33,167, 29, 1, 0, 0, 0,240, 6,167, 29, 1, 0, 0, 0, +176,250,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 23, 2, 0, 0, 8, 8,129, 7,179, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,178,217, 2, 1, 0, 0, 0,176, 20,167, 29, 1, 0, 0, 0,224, 32,167, 29, 1, 0, 0, 0, +144, 16,167, 29, 1, 0, 0, 0, 80, 19,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208, 67,201, 20, 1, 0, 0, 0,240,172,140, 27, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 16,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,240, 17,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 38, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, 0, 96,191, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,181,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 17,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 80, 19,167, 29, 1, 0, 0, 0,144, 16,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, + 0,128,195,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,195,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, + 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, + 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,153, 1,203, 0,135, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6, 0, 0,128, 7, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,153, 1, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,180,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 19,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 17,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,152, 1, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, + 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,165, 6,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 6, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,179,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,176, 20,167, 29, 1, 0, 0, 0, +164, 0, 0, 0, 1, 0, 0, 0,192, 28,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +224, 21,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 23,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,191, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,251, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,252, 5, 26, 0,252, 5, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, + 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 5, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64, 23,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 24,167, 29, 1, 0, 0, 0,224, 21,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,113, 1, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160, 24,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 26,167, 29, 1, 0, 0, 0, 64, 23,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, +111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0, 26,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 27,167, 29, 1, 0, 0, 0,160, 24,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,251, 5, 0, 0, +111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96, 27,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, +111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 5,113, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,168, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48,168, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 79,145, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, + 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, +164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62,241,130,233,191,222,160, 81,191,184,158, 81,191, +117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,119, 15,130, 64,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,112,240,191, 62,108,116, 85, 63, 80,184, 70,188, 0, 0, 46,180, +159, 49,181,189,125,172, 46, 61, 7,213, 73, 62, 0, 64,143,180,182,107, 25,196, 13,135,135, 67, 70, 12,167,195, 71, 0, 72,194, +225, 56, 25, 68, 38, 90,135,195,237,212,166, 67, 84, 2, 72, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62,241,130,233,191,222,160, 81,191,184,158, 81,191, +117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,119, 15,130, 64,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, +214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 13,114,156, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,192, 28,167, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, +224, 32,167, 29, 1, 0, 0, 0,176, 20,167, 29, 1, 0, 0, 0,224, 21,167, 29, 1, 0, 0, 0, 96, 27,167, 29, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32, 30,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 31,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, + 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,128, 31,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 30,167, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, +122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0,224, 32,167, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 28,167, 29, 1, 0, 0, 0, 32, 30,167, 29, 1, 0, 0, 0,128, 31,167, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,224, 33,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 64,167, 29, 1, 0, 0, 0, +176, 15,167, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, +208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, + 2, 2, 80, 3, 75, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,120,217, 2, 1, 0, 0, 0, 64, 40,167, 29, 1, 0, 0, 0, + 48, 63,167, 29, 1, 0, 0, 0,192, 34,167, 29, 1, 0, 0, 0,224, 38,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224, 99,160, 21, 1, 0, 0, 0,208, 47,202, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192, 34,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 36,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 3, 26, 0, 80, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, + 25, 2, 0, 0, 50, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,122,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32, 36,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 37,167, 29, 1, 0, 0, 0,192, 34,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0,192, 7,196, 0, 0, 0, 0, +200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, 49, 2,200, 0, 31, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, + 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 49, 2, 0, 0, 2, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,123,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128, 37,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 38,167, 29, 1, 0, 0, 0, 32, 36,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 79, 3, 0, 0, + 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,124,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +224, 38,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37,167, 29, 1, 0, 0, 0, + 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,118, 2, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, + 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,119, 2, 49, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 79, 3, 0, 0, + 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 2, 49, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,121,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, + 64, 40,167, 29, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,240, 45,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 41,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 41,167, 29, 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, + 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208, 41,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 43,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 38, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, + 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 2, + 26, 0,152, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 2, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48, 43,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 44,167, 29, 1, 0, 0, 0, +208, 41,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 67, + 0,128, 4,196, 0, 0, 64,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,181, 0, + 24, 2,181, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,180, 0, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +181, 0, 24, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144, 44,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 43,167, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, + 0,128, 4,196, 0, 0, 64,193,210, 1, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,227, 1, + 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +181, 0, 0, 0,151, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 8, 1, 0, 0,240, 45,167, 29, 1, 0, 0, 0, 22, 1, 0, 0, 1, 0, 0, 0, 80, 51,167, 29, 1, 0, 0, 0, + 64, 40,167, 29, 1, 0, 0, 0,208, 41,167, 29, 1, 0, 0, 0,144, 44,167, 29, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48, 47,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 48,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, + 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, + 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144, 48,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 49,167, 29, 1, 0, 0, 0, + 48, 47,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, + 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0, +164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,240, 49,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 48,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, + 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,168, 0, 0, 0, 80, 51,167, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 16, 59,167, 29, 1, 0, 0, 0, +240, 45,167, 29, 1, 0, 0, 0, 48, 47,167, 29, 1, 0, 0, 0,240, 49,167, 29, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63,222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, 0, 0, 0,128, 86,126,162,190,227,251,159, 62, 56, 53,101, 63, - 0, 0, 0,128, 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, 0, 0, 0,128,110,101,239, 64,151, 62,208,192, 77,255,170, 64, - 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, - 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 4, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48, 52,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 53,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, + 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144, 53,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 54,167, 29, 1, 0, 0, 0, + 48, 52,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,240, 54,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80, 56,167, 29, 1, 0, 0, 0, +144, 53,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80, 56,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 57,167, 29, 1, 0, 0, 0, +240, 54,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176, 57,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 56,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,172, 4, 28, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,172, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, +222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63, +224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, + 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, +222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 16, 59,167, 29, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 48, 63,167, 29, 1, 0, 0, 0, 80, 51,167, 29, 1, 0, 0, 0, 48, 52,167, 29, 1, 0, 0, 0, +176, 57,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 60,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +208, 61,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 61,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112, 60,167, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48, 63,167, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 59,167, 29, 1, 0, 0, 0,112, 60,167, 29, 1, 0, 0, 0,208, 61,167, 29, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48, 64,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224, 33,167, 29, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, +240,249,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, + 25, 2, 0, 0, 99, 4, 0, 0, 8, 8, 48, 4, 75, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,178,217, 2, 1, 0, 0, 0, + 48, 69,167, 29, 1, 0, 0, 0, 96, 81,167, 29, 1, 0, 0, 0, 16, 65,167, 29, 1, 0, 0, 0,208, 67,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,110,160, 21, 1, 0, 0, 0, 48, 43,201, 20, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16, 65,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 66,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,135, 68, + 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 4, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,224,156, 68, 0, 0,200, 65, + 0,224,156, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 56, 4, + 24, 0, 56, 4, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80,181,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112, 66,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 67,167, 29, 1, 0, 0, 0, + 16, 65,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,180,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208, 67,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 66,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 74, 2, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 18, 0, 0, 0, 74, 2, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, + 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 48, 4, + 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 4, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,179,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,240, 0, 0, 0, 48, 69,167, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 64, 77,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 70,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +192, 71,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 71,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 32, 73,167, 29, 1, 0, 0, 0, 96, 70,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 73,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +128, 74,167, 29, 1, 0, 0, 0,192, 71,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, + 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 74,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +224, 75,167, 29, 1, 0, 0, 0, 32, 73,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 75,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 74,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,176, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,176, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, + 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, + 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0, +185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63, +180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62, +147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, +217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53, +215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, +180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62, +147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 64, 77,167, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 96, 81,167, 29, 1, 0, 0, 0, 48, 69,167, 29, 1, 0, 0, 0, + 96, 70,167, 29, 1, 0, 0, 0,224, 75,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 78,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 80,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 80,167, 29, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 78,167, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96, 81,167, 29, 1, 0, 0, 0, +173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 77,167, 29, 1, 0, 0, 0,160, 78,167, 29, 1, 0, 0, 0, + 0, 80,167, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 67, 0, 0, 40, 6, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, +155, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,202, 4, 28, 1, 0, 0, 0, + 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 82,167, 29, 1, 0, 0, 0, +160, 83,167, 29, 1, 0, 0, 0,224, 82,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 84,167, 29, 1, 0, 0, 0, 48,116, 22, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, +100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 25, 0,141, 0,128, 7, 56, 4, 8, 0, + 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 23, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176, 85,167, 29, 1, 0, 0, 0,176, 85,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0,128, 63, + 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 98, 97, 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 33, 0, 28, 1, 0, 0, 0, 80, 40, 0, 28, 1, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 80,150, 90, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,208,161, 89, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, 48,160, 26, 4, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 86, 25, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97, -109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,133,157, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63, +205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 6, 0, 0, 0, 16, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,109,203, 20, 1, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, + 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 82,167, 29, 1, 0, 0, 0, +131, 0, 0, 0, 1, 0, 0, 0, 64, 83,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0,194, 2,243, 1, 48,208, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 83,167, 29, 1, 0, 0, 0, +131, 0, 0, 0, 1, 0, 0, 0,160, 83,167, 29, 1, 0, 0, 0,224, 82,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 4, 0, 0,144, 3, 47, 3, 48,214, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 83,167, 29, 1, 0, 0, 0, +131, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 83,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, + 0, 4, 0, 0,156, 0, 83, 2, 48,202, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65,120, 1, 0, 0, 0, 84,167, 29, 1, 0, 0, 0, +151, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, + 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, + 50, 0, 50, 0, 10, 0, 0, 0, 50, 0,100, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, + 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0, +205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 0, 0, 0,176, 85,167, 29, 1, 0, 0, 0,137, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 32, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, +255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,152, 0, 0, 0, 64, 86,167, 29, 1, 0, 0, 0, + 29, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63, +145,137, 68, 66,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 65, 0, 0,248, 1, 0, 0, 48,188, 4, 28, 1, 0, 0, 0, 41, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66, +154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 16, 87,167, 29, 1, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, + 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64, -183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, 87, 43, 98, 61, -229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0, -221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0, -154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0, - 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 53,236,148,190,222,102, 69,191, 37,255, 16, 63, 0, 0, 0,128, - 24,134,116, 63, 57,174, 76,190,240,161, 95, 62, 0, 0, 0,128,235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63, 0, 0, 0,128, -208, 19, 13, 63,234, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, - 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, - 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 88,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 16, 87,167, 29, 1, 0, 0, 0, + 75, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, +243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,144,118,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,144,118,161, 29, 1, 0, 0, 0, 73, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 88,167, 29, 1, 0, 0, 0, + 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,224, 1, 0, 0, 48,192, 4, 28, 1, 0, 0, 0, +130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0,240,140,157, 26, - 1, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, - 1, 0, 50, 0,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, - 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, - 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 3, 67, 0, 0, 3, - 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61, 0, 0, 0, 0,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 0, 0,176, 0, 0, 0,224, 88,167, 29, 1, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 88, 84,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0,208, 89,167, 29, 1, 0, 0, 0, +208, 89,167, 29, 1, 0, 0, 0,208, 89,167, 29, 1, 0, 0, 0,208, 89,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,196, 4, 28, 1, 0, 0, 0,255,255,255,255, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 89,167, 29, 1, 0, 0, 0, + 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,209,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, 4, 0, 0, 0, 96,209,163, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 79, 66, 0, 0,152, 4, 0, 0, 48,202, 4, 28, 1, 0, 0, 0,119, 0, 0, 0, + 1, 0, 0, 0, 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 86,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63, +222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, + 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, + 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, + 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63, 0, 0,128, 63,157,190,215, 49, +167,170, 4, 52, 0, 0, 0,128,129,116,157,178, 1, 0,128, 63, 33, 69, 15, 51, 0, 0, 0,128, 73,254, 67, 51,243, 97,106, 49, + 0, 0,128, 63, 0, 0, 0,128, 3, 0, 64, 52,183,164,157, 39, 0, 0,128, 53, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, + 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, +152, 4, 0, 0, 48,208, 4, 28, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 48,214, 4, 28, 1, 0, 0, 0, 48,202, 4, 28, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 9,200, 20, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 6,163, 29, + 1, 0, 0, 0, 64,213,163, 29, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, 0, 0, 0,128, 86,126,162,190,227,251,159, 62, + 56, 53,101, 63, 0, 0, 0,128, 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, 0, 0, 0,128,110,101,239, 64,151, 62,208,192, + 77,255,170, 64, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, + 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, +169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48,108, 5, 28, 1, 0, 0, 0, 48,112, 5, 28, 1, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 64, 6,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 64,213,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, 48,214, 4, 28, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, + 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, - 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 80,144,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, + 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, + 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, + 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 53,236,148,190,222,102, 69,191, 37,255, 16, 63, + 0, 0, 0,128, 24,134,116, 63, 57,174, 76,190,240,161, 95, 62, 0, 0, 0,128,235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63, + 0, 0, 0,128,208, 19, 13, 63,234, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, + 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0, +143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, + 48,220, 4, 28, 1, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, + 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, + 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, + 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 3, + 67, 0, 0, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63, +205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 48, 90,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,145,157, 26, - 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 80,144,157, 26, 1, 0, 0, 0, 32, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,144, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61, +102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 48, 90,167, 29, 1, 0, 0, 0, + 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0,160,145,157, 26, - 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 48,166, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 48,166, 26, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, - 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, +128, 91,167, 29, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 48, 28, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, + 48, 28, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, - 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, - 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, + 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, - 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, - 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, + 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, - 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, - 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, + 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, + 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, - 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, - 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, + 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, + 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, + 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, + 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, - 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, - 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, - 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, - 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, - 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, - 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, - 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, - 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, - 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, - 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, - 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, - 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, - 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, - 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, - 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, - 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, - 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, - 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, - 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, - 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, - 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, - 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, - 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, - 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, - 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, - 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255, -100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, - 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, - 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, - 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255,104,104,104,255, -107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255,103,103,103,255, -100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, - 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, - 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255,112,112,112,255, -114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255,110,110,110,255, -107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, - 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, - 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255,118,118,118,255, -121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255,118,118,118,255, -114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, - 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, - 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255,125,125,125,255, -127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255,129,129,129,255, -125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, - 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, - 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255,131,131,131,255, -134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255,148,148,148,255, -142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, - 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, - 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255,136,136,136,255, -140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255,177,177,177,255, -168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, 96, 96, 96,255, - 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, - 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255,142,142,142,255, -145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255,216,216,216,255, -204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, 99, 99, 99,255, - 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, - 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255,146,146,146,255, -150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255,254,254,254,255, -237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255,103,103,103,255, - 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, - 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255,149,149,149,255, -154,154,154,255,157,157,157,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255,255,255,255,255, -255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255,106,106,106,255, -100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, - 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255,152,152,152,255, -157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255,255,255,255,255, -250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255,110,110,110,255, -103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, - 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255,153,153,153,255, -159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255,234,234,234,255, -224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255,112,112,112,255, -105,105,105,255, 98, 98, 98,255, 91, 91, 91,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, - 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255,151,151,151,255, -160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255,202,202,202,255, -195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255,114,114,114,255, -107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, - 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255, -157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255,179,179,179,255, -174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255,115,115,115,255, -107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153, -149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255,167,167,167,255, -164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255,115,115,115,255, -106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255,163,163,163,255, -160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255,113,113,113,255, -105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255,160,160,160,255, -157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255,110,110,110,255, -101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255,154,154,154,255, -152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255,104,104,104,255, - 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255,140,140,140,255, -140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, 91, 91, 91,255, - 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, - 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,104, 1, 0, 0, 0,146,157, 26, 1, 0, 0, 0, 39, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,147,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,147,157, 26, 1, 0, 0, 0, 19, 0, 0, 0, - 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 48,184, 26, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 48,184, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, + 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, + 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, + 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, + 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, + 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, + 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, + 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, + 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, + 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, + 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, + 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, + 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, + 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, + 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, + 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, + 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, + 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, + 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, + 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, + 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, + 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, + 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, + 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, + 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, + 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, + 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, + 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, + 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255, +104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255, +103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, + 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, + 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255, +112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255, +110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, + 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, + 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255, +118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255, +118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, + 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, + 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255, +125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255, +129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, + 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, + 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255, +131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255, +148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, + 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, + 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255, +136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255, +177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, + 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, + 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255, +142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255, +216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, + 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, + 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255, +146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255, +254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255, +103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, + 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255, +149,149,149,255,154,154,154,255,157,157,157,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255, +255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255, +106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, + 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255, +152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255, +255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255, +110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, + 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255, +153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255, +234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255, +112,112,112,255,105,105,105,255, 98, 98, 98,255, 91, 91, 91,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, + 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255, +151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255, +202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255, +114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, + 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102, +145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255, +179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255, +115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, + 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255, +167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255, +115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, + 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255, +163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255, +113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255, +160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255, +110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255, +154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255, +104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255, +140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, + 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, + 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,104, 1, 0, 0,224, 91,167, 29, 1, 0, 0, 0, + 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, + 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 93,167, 29, 1, 0, 0, 0, + 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 48, 46, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 48, 46, 9, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, @@ -7559,25 +7656,24 @@ char datatoc_B_blend[]= { 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, - 0, 0, 0,255, 77, 69, 0, 0,144, 1, 0, 0, 0,148,157, 26, 1, 0, 0, 0, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, - 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0, 0, 0,255, 77, 69, 0, 0,144, 1, 0, 0,224, 93,167, 29, 1, 0, 0, 0, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,163, 89, 3, 1, 0, 0, 0,128,156,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,151,157, 26, 1, 0, 0, 0, 16,154,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,149,157, 26, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,152,157, 26, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,154,157, 26, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 64,163, 89, 3, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0,240,140,157, 26, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,208,149,157, 26, 1, 0, 0, 0, 77, 1, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,142,161, 29, 1, 0, 0, 0, 96,102,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 97,167, 29, 1, 0, 0, 0,240, 99,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,151,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 95,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 98,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,100,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 1, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,112,142,161, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 48,220, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,176, 95,167, 29, 1, 0, 0, 0, + 78, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 97,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7585,18 +7681,18 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0,112,151,157, 26, 1, 0, 0, 0, 60, 0, 0, 0, - 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0, 0, 0,128, 63, - 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255,127, 1, 0, 0, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, - 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182,255,127, - 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0,245,255,127, 63, - 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, 1, 0, 0, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, - 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73,255,127, - 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,112,152,157, 26, 1, 0, 0, 0, 77, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,154,157, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0, 80, 97,167, 29, 1, 0, 0, 0, + 60, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0, + 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255,127, 1, 0, 0, 0, 1, 0,128,191,253,255,127,191, + 0, 0,128,191, 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, + 26,182,255,127, 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0, +245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, 1, 0, 0, 0, 3, 0,128,191,250,255,127,191, + 0, 0,128, 63, 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73, +230, 73,255,127, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, 80, 98,167, 29, 1, 0, 0, 0, 78, 1, 0, 0, 5, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 99,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7604,16 +7700,16 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 16,154,157, 26, 1, 0, 0, 0, 57, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, - 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, - 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,224,154,157, 26, 1, 0, 0, 0, 77, 1, 0, 0, - 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,156,157, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,240, 99,167, 29, 1, 0, 0, 0, 57, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, + 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,192,100,167, 29, 1, 0, 0, 0, + 78, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,102,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7621,28 +7717,29 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0,128,156,157, 26, 1, 0, 0, 0, 56, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 7, 0, 0, 0, - 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, - 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, 85, 83, 69, 82, -160, 11, 0, 0,160,150,242, 1, 1, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, 33,152, 1, 0, 63, 2, 0, 0, 5, 0, 0, 0, - 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0, 96,102,167, 29, 1, 0, 0, 0, + 56, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, + 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, + 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, + 85, 83, 69, 82,160, 11, 0, 0, 96, 76,251, 1, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 33,152, 1, 0, 63, 2, 0, 0, + 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, 47, 0, 45,112,111,119,101,114,112, 99, 47, 98, -105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,110,116,115, 47, 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, 47, 0, 45,112,111,119,101,114, +112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,110,116,115, 47, 82,101,115,111, +117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7662,7 +7759,7 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7672,21 +7769,20 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 48, 52, 6, 1, 0, 0, 0, 0, 5, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, - 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, 48,214, 26, 4, - 1, 0, 0, 0, 48,238, 26, 4, 1, 0, 0, 0,192, 20, 78, 3, 1, 0, 0, 0,192, 20, 78, 3, 1, 0, 0, 0,128, 43,138, 26, - 1, 0, 0, 0,128, 43,138, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 48, 52, 6, 1, 0, 0, 0, 0, 5, 0, 2, 0, 0, 8, 0, 0, + 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, + 48, 76, 9, 28, 1, 0, 0, 0, 48,100, 9, 28, 1, 0, 0, 0, 16, 91,160, 21, 1, 0, 0, 0, 16, 91,160, 21, 1, 0, 0, 0, + 96, 92,160, 21, 1, 0, 0, 0, 96, 92,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191,154,153,153, 62,102,102,102, 63, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62, -205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 0, 0, 25, 0, 15, 0,120, 0, 60, 0, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 15, 0, 8, 0, 10, 0,250, 0, 0, 0,100, 0,100, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63, +205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191,154,153,153, 62, +102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0, +205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 0, 0, 25, 0, 15, 0, +120, 0, 60, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 15, 0, 8, 0, 10, 0,250, 0, 0, 0, +100, 0,100, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7695,2218 +7791,2230 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 21, 0, 0, 48,214, 26, 4, - 1, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0, 48,238, 26, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97, -117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255, -153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 25, 25, 25,255, -140,140,140,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255, -153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255, -180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, - 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, - 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, - 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255, -128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, - 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, - 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, - 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255, -255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, -112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, -135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128, -255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255, -255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255, -162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,255,255,255, 10,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255, -172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,155,155,155,160,100,100,100,255,108,105,111,255, -104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255, -189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, - 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255, -193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, - 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255, -238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255, -152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255, -176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, - 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,248, 21, 0, 0, 48,238, 26, 4, 1, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,214, 26, 4, 1, 0, 0, 0, 82,111,117,110,100,101,100, 0, 0,101,119, 32, 85,115,101,114, 32, 84,104,101, -109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 1, 0, 25, 0,231,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, -255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, - 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255, -255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, -255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255, -255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255, -204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, - 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 46,124,217,204,255,255,255,255,255,255,255,255, - 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, - 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,175,175,175, 51, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, + 48, 76, 9, 28, 1, 0, 0, 0,188, 0, 0, 0, 1, 0, 0, 0, 48,100, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, + 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, + 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, + 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, + 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, + 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, + 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, + 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, + 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, + 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, + 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, +115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255, +124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 82, 96,110,255, +124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255, +126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,255,255,255, 10,255,133, 0, 60, +255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, + 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 4, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,155,155,155,160,100,100,100,255, +108,105,111,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, + 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, +255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, +255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, + 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, +255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, + 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0, +169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, + 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0, +244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0, +111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0, +141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, + 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, 48,100, 9, 28, 1, 0, 0, 0,188, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 76, 9, 28, 1, 0, 0, 0, 82,111,117,110,100,101,100, 0, 0,101,119, 32, 85,115,101,114, + 32, 84,104,101,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, + 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, + 0, 0, 0,255,255,255,255,255, 1, 0, 25, 0,231,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, + 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255, +255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, + 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, + 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, + 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, +255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, + 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 46,124,217,204,255,255,255,255, +255,255,255,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255, +255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +175,175,175, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, + 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, +255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255, -102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255,255, 32, 32,255, - 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,130, 0,255, 88, 88, 88,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, + 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, +255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,130, 0,255, 88, 88, 88,255, + 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, +255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,100, -143,143,143,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255, -135,177,125,255,255,255,255,255,255,255,255,255,255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,130, 0,255, 2, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +107,107,107,100,143,143,143,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, + 79,101, 73,255,135,177,125,255,255,255,255,255,255,255,255,255,255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,130, 0,255, 2, 0, 0, 0, 0, 0, 0, 0, +114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, + 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, +255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,158,158,158,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,140,140,140,255, -127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255,178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,135,177,125,255,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,143,143,255,200,100,200, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,204,255,255,170,204, 96,192, 64,255, 82, 96,110,255,124,137,150,255, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,143,143,143,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255, -178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,255, -255,255,170,255, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,130, 0,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, - 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255,178,178,178,100,255,130, 0,100, 94, 94, 94,255, + 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,135,177,125,255,255,255,255,255,255,112,255,255, +255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,143,143,255,200,100,200, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,204,255,255,170,204, 96,192, 64,255, 82, 96,110,255, +124,137,150,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +143,143,143,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +107,107,107,255,178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +228,156,198,255,255,255,170,255, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, + 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, +255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255, +109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, + 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, +255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,153,153,153,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255, -198,119,119,255,255, 0, 0,255, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, - 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +153,153,153,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +143,143,143,255,198,119,119,255,255, 0, 0,255, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,100, 0, 0,255, 0, 0,200,255, +128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, + 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, +255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,158,158,158,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,140,140,140,255, -127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255, -217,217,217,255, 0, 0, 0, 40,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, - 0, 0, 0,255,255,255,255,255,230,150, 50,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0,150,150,150,255,129,131,144,255,127,127,127,255,142,138,145,255,120,145,120,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255, -102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255,255, 32, 32,255, - 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255, -246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, - 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, - 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255, -106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, - 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255, -127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255, -139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49, 60,229, 0, 0, 48,174, 15, 4, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 44, 11, 0, 0, 42,110,101,120,116, 0, 42,112, -114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,119, 0,120, -109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117, -112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109, -101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110, -101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105,100, 0, 42,112, -114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0, -110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, - 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0,112, 97,100, - 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100, -114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, - 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, - 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97, -120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107, -101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0, -112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109, -105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116, -114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0, -116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, - 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, - 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, - 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98, -117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109, -116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 97,110, -103,108,101, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, - 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100, -111,102,100,105,115,116, 0, 89, 70, 95, 97,112,101,114,116,117,114,101, 0, 89, 70, 95, 98,107,104,116,121,112,101, 0, 89, 70, - 95, 98,107,104, 98,105, 97,115, 0, 89, 70, 95, 98,107,104,114,111,116, 0, 42,100,111,102, 95,111, 98, 0,102,114, 97,109,101, -110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, - 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,109,101,110, -117,110,114, 0, 42,115, 99,101,110,101, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110, -105,109, 0, 42,114,114, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97, -103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, - 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112, -114,101,118,105,101,119, 0, 42,114,101,110,100,101,114, 95,116,101,120,116, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, - 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101, -110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112, -116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, - 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110, -103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108, -111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115, -112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, - 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, - 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108, -115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, - 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114, -102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, - 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, - 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104, -102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97, -100,101,110,115,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0, -112,118,101,108,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111, -119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, - 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97, -114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111, -105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, - 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99, -117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115, -116,121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101, -112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, - 0,102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115, -111,117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, - 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110, -116, 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111, -105,115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, - 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95, -115, 99, 97,108,101, 0, 42, 99,111, 98, 97, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, - 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,105,110,116, 95,109,117,108,116,105,112,108,105, -101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0, - 42,100, 97,116, 97,115,101,116, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, - 0, 99,111,110,116,114, 97,115,116, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115, -105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101, -115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0, -110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, - 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0, -110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0, -110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111, -112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101, -114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100, -105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105, -110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0, -114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109, -111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119, -112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101, -110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115, -104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104, -114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114, -115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, - 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97, -109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, - 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, -114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115, -116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101, - 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98, -114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100, - 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105, -116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101, -120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97, - 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107, -121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 0, 89, 70, 95,110,117,109,112,104,111,116,111,110,115, 0, - 89, 70, 95,110,117,109,115,101, 97,114, 99,104, 0, 89, 70, 95,112,104,100,101,112,116,104, 0, 89, 70, 95,117,115,101,113,109, - 99, 0, 89, 70, 95, 98,117,102,115,105,122,101, 0, 89, 70, 95,112, 97,100, 0, 89, 70, 95, 99, 97,117,115,116,105, 99, 98,108, -117,114, 0, 89, 70, 95,108,116,114, 97,100,105,117,115, 0, 89, 70, 95,103,108,111,119,105,110,116, 0, 89, 70, 95,103,108,111, -119,111,102,115, 0, 89, 70, 95,103,108,111,119,116,121,112,101, 0, 89, 70, 95,112, 97,100, 50, 0, 42,109,116,101,120, 91, 49, - 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 91, 51, 93, 0,100,101,110,115,105,116,121, 0,101,109,105, -115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115, -115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0, -114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0, -100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95, -116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99, -104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109, -115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,116,101,112,115, 0,109, 97,116,101,114,105, 97,108, 95,116,121, -112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109, -105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0, -115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, - 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102,114,101, -115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116, -114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, - 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95, -116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108, -111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115, -115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114, -101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, - 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, - 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, - 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110, -100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, - 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105, -100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97,115, 0, -108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112, -114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100, -105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, - 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, - 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97, -109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110, -100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111, -108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102, -104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100, -101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101, -114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, - 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0, -115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114, -101,100, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0, -106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113, -117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, - 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109, -115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101, -110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, - 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104, -105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101, -115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0, -102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114, -112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,104, 0,110, -117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, - 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119, -102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,112, 97,100, 91, 50, 93, 0,116,119,105,115,116, 95,115,109,111, -111,116,104, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0, -101,120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, - 0, 42,108, 97,115,116,115,101,108, 98,112, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105, -110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112, -111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115, -116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, - 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98, -105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, - 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110, -102,111, 0,101,102,102,101, 99,116, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, - 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, - 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,101, -115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116, -102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0,101,100,105,116,102,108, 97,103, - 0, 99,117, 98,101,109, 97,112,115,105,122,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115, -117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, 97,103, -101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110, -119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98, -119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, - 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, 0,115, 91, - 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,100, - 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118, -101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0, -110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0, -117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101, -115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,115, - 0, 42,111,108,100, 95,101,100,103,101,115, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0,115,117, 98,100, -105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, - 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111, -109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110, -100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101, -116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112, -101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, - 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0, -114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, - 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, - 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0, 42,116,101,120,116,117,114,101, 0,115,116, -114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0,116,101,120,109, 97,112, -112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, - 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105, -109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, - 99,116,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, - 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105, -103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105, -109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, - 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112, 97,114,101,110,116,105,110, -118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101, -120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, - 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101, -115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, - 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109, -118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99, -102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99, -101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110,100, 99,111,115, - 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110,102,108,117,101, -110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100,115,105,122,101, - 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, 98,105,110,100, -109, 97,116, 91, 52, 93, 91, 52, 93, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111, -116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105, -116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114, -111,117,112, 0,112,114,111,116,101, 99,116, 0, 42,117,110,100,111, 95,118,101,114,116,115, 0,117,110,100,111, 95,118,101,114, -116,115, 95,116,111,116, 0,117,110,100,111, 95,115,105,103,110, 97,108, 0,108,118,108, 0,116,111,116,108,118,108, 0,115,105, -109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114, -111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, - 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101, -108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105, -110, 79,112,116,115, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, - 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100, -118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, - 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0, -112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, - 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, - 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111, -115,101, 0, 42,103,112,100, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,100,101,102, 98, 97, -115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105, -116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, - 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100, -114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98, -109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, - 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107, -102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,105,112,111,119, -105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 0, -100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97, -115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, - 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, - 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,114,111,116,109,111, -100,101, 0,100,116, 0,100,116,120, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, - 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0, -115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98, -115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, - 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, - 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104, -111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103, -114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,115, -104, 97,112,101,110,114, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121, -112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102, -111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0,115, -116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42, -100,117,112,108,105,108,105,115,116, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97, -121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, - 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116, -101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116, -114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111, -119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97, -120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, - 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99, -116, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98, -105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112, -111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, - 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, - 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, - 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,105,110,100,101, -120, 95, 97,114,114, 97,121, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,115,116,101,112, 0,115,105, -109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102, -114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97, -109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0,109,101,109, 95, 99, 97, - 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102, -102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105, -116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110, -115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, - 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, - 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, - 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102, -108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110, -103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, - 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, - 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105, -116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102, -114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114, -116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122, -121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83, -112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0, -115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115, -101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108, -108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112, -115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116, -105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115, -116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111, -114, 95,119,101,105,103,104,116,115, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105, -111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0, -114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105, -115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105, -116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118,120, 0,103, -114, 97,118,121, 0,103,114, 97,118,122, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0,103,115,116, - 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, - 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 83,117,114,102, 97, 99,101, 0, 42,109,101,115,104, - 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, - 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103, -101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0, -103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101, -115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118, -115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112, -104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 83,117,114,102, 78,111,114,109, 97,108,115, - 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108, -105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116, -102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116, -104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, - 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,104,111,114,107, 0, -122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,122,101,110,107, 0, 97,109, 98,107, 0,102, 97,115,116, 99,111,108, - 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, - 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116, -121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116, -105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, - 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0, -109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115, -116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97, -114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100, -111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, - 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108, -111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101, -100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, - 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116, -104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115, -112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, - 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, - 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118, -101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100, -119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, - 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0, -113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 0, 97,117,100,105,111, 95, 99,111,100, -101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97, -117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105, -122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117, -102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97, -116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100, -111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97, -116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122, -109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0, 42, - 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,102,102, 99,111,100,101, - 99,100, 97,116, 97, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116, -111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, - 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112, -108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,114,116, 50, 0,102,114, 97,109,101, 95,115,116, -101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, - 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, - 0,119,105,110,112,111,115, 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0, -113,117, 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 0, -115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99, -101, 95,115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0, 97,108,112,104, 97, -109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, - 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,120, 97, -115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, - 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116, -115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97, -107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97, -107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, - 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95, -112, 97,100, 0, 71, 73,113,117, 97,108,105,116,121, 0, 71, 73, 99, 97, 99,104,101, 0, 71, 73,109,101,116,104,111,100, 0, 71, - 73,112,104,111,116,111,110,115, 0, 71, 73,100,105,114,101, 99,116, 0, 89, 70, 95, 65, 65, 0, 89, 70,101,120,112,111,114,116, -120,109,108, 0, 89, 70, 95,110,111, 98,117,109,112, 0, 89, 70, 95, 99,108, 97,109,112,114,103, 98, 0,121,102,112, 97,100, 49, - 0, 71, 73,100,101,112,116,104, 0, 71, 73, 99, 97,117,115,100,101,112,116,104, 0, 71, 73,112,105,120,101,108,115,112,101,114, -115, 97,109,112,108,101, 0, 71, 73,112,104,111,116,111,110, 99,111,117,110,116, 0, 71, 73,109,105,120,112,104,111,116,111,110, -115, 0, 71, 73,112,104,111,116,111,110,114, 97,100,105,117,115, 0, 89, 70, 95,114, 97,121,100,101,112,116,104, 0, 89, 70, 95, - 65, 65,112, 97,115,115,101,115, 0, 89, 70, 95, 65, 65,115, 97,109,112,108,101,115, 0,121,102,112, 97,100, 50, 0, 71, 73,115, -104, 97,100,111,119,113,117, 97,108,105,116,121, 0, 71, 73,114,101,102,105,110,101,109,101,110,116, 0, 71, 73,112,111,119,101, -114, 0, 71, 73,105,110,100,105,114,112,111,119,101,114, 0, 89, 70, 95,103, 97,109,109, 97, 0, 89, 70, 95,101,120,112,111,115, -117,114,101, 0, 89, 70, 95,114, 97,121, 98,105, 97,115, 0, 89, 70, 95, 65, 65,112,105,120,101,108,115,105,122,101, 0, 89, 70, - 95, 65, 65,116,104,114,101,115,104,111,108,100, 0, 98, 97, 99,107, 98,117,102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, - 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97, -116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0, -115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119, -115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108, -105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99, -107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112, -116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110, -103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120, -116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117, -114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111, -114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, - 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, - 97,103, 0, 42, 42, 98,114,117,115,104,101,115, 0, 97, 99,116,105,118,101, 95, 98,114,117,115,104, 95,105,110,100,101,120, 0, - 98,114,117,115,104, 95, 99,111,117,110,116, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, - 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,116,111,111,108, 0,115,101, 97,109, 95, 98,108, -101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110, -118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112, -101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100, -101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, - 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,112,105,118,111,116, 91, 51, 93, 0,116, 97, 98, -108,101,116, 95,115,105,122,101, 0,116, 97, 98,108,101,116, 95,115,116,114,101,110,103,116,104, 0,103, 97,109,109, 97, 0,109, -117,108, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, - 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101, -114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100, -101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114, -109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, - 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117, -115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0, -117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, - 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0, -117,118, 95,112, 97,100, 91, 50, 93, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105, -110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101, -108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, - 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, 95,109,111,100,101, 0,114, -101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115, -101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, - 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, - 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104, -111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0, -115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108, -105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103, -101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, - 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110, -103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, - 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111, -115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, - 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118, -101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110, -103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115, -117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, - 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103, -101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105, -110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102, -108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111, -112, 95,109,111,100,101, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,105,110,116,112, 97,100, 0,116,111,116, -111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116, -111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0, -115,121,115,116,101,109, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0, 42, 99, 97,109,101,114, 97, 0, 42,119,111,114,108,100, - 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111, -114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, - 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0, -116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0,115,111,117,110,100, 95,104, 97,110,100,108,101,115, 0, 42, -116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,106,117,109,112,102, -114, 97,109,101, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110, -103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98, -108,101,110,100, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0, -118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115, -105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97, -116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, - 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111, -111,109, 0,118,105,101,119, 98,117,116, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 0, -118,105,101,119, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, - 0, 42,114,105, 0, 42,114,101,116,111,112,111, 95,118,105,101,119, 95,100, 97,116, 97, 0, 42,100,101,112,116,104,115, 0, 42, -115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108, -112,101,114,115,112, 0,108,118,105,101,119, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, - 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95, -117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, - 95, 98,111,110,101, 91, 51, 50, 93, 0,108, 97,121, 97, 99,116, 0,100,114, 97,119,116,121,112,101, 0,115, 99,101,110,101,108, -111, 99,107, 0, 97,114,111,117,110,100, 0,112,105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,103,114,105,100,118, -105,101,119, 0,112, 97,100,102, 0,110,101, 97,114, 0,102, 97,114, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100, -102,108, 97,103, 0,103,114,105,100,115,117, 98,100,105,118, 0,109,111,100,101,115,101,108,101, 99,116, 0,107,101,121,102,108, - 97,103,115, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,116,119,100,114, 97,119,102, -108, 97,103, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97,119, 0,122, 98, -117,102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111, -112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105, -110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111, -108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101, -101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108, -100,119,105,110,121, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95, -110,117,109, 0,116, 97, 98, 95, 99,117,114, 0, 42,115, 99,114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111, -115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, - 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118, -105,101,119, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110, -100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105, -116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101, -102,105,108,101, 91, 56, 48, 93, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,111, -107,109, 97,114,107, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 0,102, 95,102,112, 0, -109,101,110,117, 0,102,112, 95,115,116,114, 91, 56, 93, 0, 42,112,117,112,109,101,110,117, 0, 42,112, 97,114, 97,109,115, 0, - 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101, -120,116, 0, 42,111,112, 0, 42,108,111, 97,100,105,109, 97,103,101, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0, -114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101, -101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115, -101, 97,114, 99,104, 95,116,115,101, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,117,116,108,105, -110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, 0, 99,117,114, -116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, - 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 42,116,101, -120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0, -108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98, -110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, - 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, - 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, - 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, - 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108, -108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, - 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, - 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, - 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101, -116,121,112,101, 0,116,101,120,102,114,111,109, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, - 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, - 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0, -112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101, -116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97, -114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,105,109,103, 0,108, -101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,114,112,116, 95,109, 97,115,107, 0,115, 99,114,111,108,108, 98, - 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, - 91, 51, 50, 93, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, - 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, - 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97, -108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117, -112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122, -111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, - 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, - 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97, -110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105, -110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, - 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115, -104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0, -105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105, -110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0, -105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, - 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,116,111,111,108, 98, 97, -114, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111, -103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111, -108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, - 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, - 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116, -101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0, -116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108, -101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95, -104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, - 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, - 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, - 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110, -101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95, -116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104, -105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, - 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114, -111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101, -120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100, -103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115, -104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0, -102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,110,111,114,109, 97, -108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0, -115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, - 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, - 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, 97,100, 91, - 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, - 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, - 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102, -102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0, -109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108, -101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, - 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 51, 93, 0,115, -111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112, -111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, - 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0, -116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, - 95,116,104,101,109,101, 95,103,114,111,117,112, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118, -101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, 0, -114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117, -103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121,116, -104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,121,102,101,120,112,111, -114,116,100,105,114, 91, 49, 54, 48, 93, 0,118,101,114,115,105,111,110,115, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104, -101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115, -101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111, -100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100, -105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116, -115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0, -116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0, -107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109, -101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100, -101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, - 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, - 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105, -122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116, -114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, 97,100, 0,109,101,109, 99, 97, 99,104,101, -108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114, -112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0, -114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115, -109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, 97,110, - 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0,105,112,111, 95,110,101,119, 0,118,101, -114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0,103,108, - 97,108,112,104, 97, 99,108,105,112, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,118,101,114,116, 98, 97,115,101, 0,101, -100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,102,117,108,108, 0, -119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, 97,119, - 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,115,119, 97, -112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101, -114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, - 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, - 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115, -105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, - 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, - 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115, -105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, - 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98, -117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, - 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97, -119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, - 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103, -105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97, -100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0, 42, 99,117,114, -115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, 97, -108,102, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,105, 98,117,102, 0, 42,105, 98,117,102, 95, 99,111,109,112, 0, 42,115,101, - 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,114, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, - 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,115, - 97,116,117,114, 97,116,105,111,110, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105, -108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0,111,114,120, 0,111,114,121, 0, 42, - 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42, -116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,115,116, 97,114,116,115,116,105,108, -108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116,105,108,108, 0, 42,105, 98,117,102, 95,115,116, 97, -114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116,105,108,108, 0, 42,105,110,115,116, 97,110, 99,101, - 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95, -100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110, -101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105, -109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0,102, 97, 99,102, 48, 0,102, 97, 99,102, 49, 0, 42,115,101, -113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115, -111,117,110,100, 95,104, 97,110,100,108,101, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,115,116, -114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97, -110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99, -105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0, -109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, - 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,101,100,103,101, 87,105,100,116,104, - 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, - 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97, -108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101, -121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0, -114,111,116, 70,105,110, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103, -108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112, -101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98, -102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99, -101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109, -117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116, -101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105, -109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117, -112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, - 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42, -112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113, -117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, - 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100, -101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, - 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, - 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116, -114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, - 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108, -105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115, -105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99, -105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0, 42,109,121,110,101,119, - 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0, -115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98,108, -101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97, -120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,115,110,100,110,114, 0,112, 97,100, 49, 91, 50, 93, 0,112, -105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,109, 97,107,101, 99,111,112,121, 0, 99,111,112,121,109, 97,100,101, 0,112, - 97,100, 50, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108, -111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, - 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118, -101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114, -101,102,101,114,101,110, 99,101, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,109,105,110, 0,109, 97,120, 0,118, -105,115,105,102, 97, 99, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, - 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, - 50, 93, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114, -103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114, -111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105, -108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97, -114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,103,111, 0, 97, 99, 99,101,108, -108,101,114, 97,116,105,111,110, 0,109, 97,120,115,112,101,101,100, 0,109, 97,120,114,111,116,115,112,101,101,100, 0,109, 97, -120,116,105,108,116,115,112,101,101,100, 0,116,105,108,116,100, 97,109,112, 0,115,112,101,101,100,100, 97,109,112, 0, 42,115, -111,117,114, 99,101, 0,102,114, 97,109,101,115,107,105,112, 0,109,117,116,101, 0, 99,104, 97,110,103,101,100, 0,109,105,110, - 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99, -101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111, -110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, - 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97, -116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42, 97,114,101, 97, - 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42, -112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, - 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97, -114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,120,119,105,100,116,104, 0, -122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95, -116, 97,105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, - 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101, -114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104, -111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, - 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111, -105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0, 99,111,110,115,116, -102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101, -120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 98, 95, 98,111,110,101, 95,109, 97, -116,115, 0, 42,100,117, 97,108, 95,113,117, 97,116, 0, 42, 98, 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116,115, - 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, - 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0, -108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115, -115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110, -119,101,105,103,104,116, 0, 42, 99,117,115,116,111,109, 0, 99,104, 97,110, 98, 97,115,101, 0,112,114,111,120,121, 95,108, 97, -121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115, -101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108, -118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,110,117,109,105,116,101,114, 0,110,117,109, -115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, - 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110, -110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, - 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0, 97, 99,116, -110,114, 0, 97, 99,116,119,105,100,116,104, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,116,101,109,112, 0, -110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, - 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, - 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, - 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98, -111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, - 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103, -104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110, -108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118, -101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, - 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0, -111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97, -120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, - 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0, -109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, - 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,122,109,105,110, 0,122,109, 97, -120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, - 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116, -101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101,110, -100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, - 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, - 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0,115, -116, 97, 99,107, 95,105,110,100,101,120, 0,105,110,116,101,114,110, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 95,101,120, -116, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42, -116,111,115,111, 99,107, 0, 42,108,105,110,107, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116, -112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0, 99,117,115,116,111,109, 49, 0, - 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, - 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118, -114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111, -110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99, -107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117, -114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 42,111,119,110,116,121,112,101, 0, 42,115,101,108,105,110, - 0, 42,115,101,108,111,117,116, 0, 40, 42,116,105,109,101, 99,117,114,115,111,114, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, - 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,116, - 99,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109,105,110, -115,112,101,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0, 99,117, -114,118,101,100, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105, -103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,105,116,101,114, 0, -119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, - 0,115, 97,116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107, -101,121, 91, 52, 93, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107, -116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111, -112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110, -103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100, -101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98, -108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, - 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0, 99,117,114,114, - 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98, -119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110, -101, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109, -111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, - 99,117,108,112,116, 95,116,111,111,108, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111, -110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0, -109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0,118,101,108, 91, 51, 93, 0,114,111, -116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,110,117, -109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115, -101,116, 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0, -100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0, 97,108,105,118,101, 0,108,111,111,112, 0,104, - 97,105,114, 95,105,110,100,101,120, 0, 42, 98,111,105,100,115, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, - 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0, -100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,114,101,110, 95,115, -116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110, -103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, - 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, - 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105, -108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105, -109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109, -112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111, -114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105, -100, 95,114,101,115, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, - 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, - 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122, -101, 0,114,101, 97, 99,116,115,104, 97,112,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119, -110,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98, -114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122, -101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, - 97,116, 0, 99,108,117,109,112,112,111,119, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114, -111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114, -111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, - 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, - 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97, -105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116, -115, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, - 0, 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, - 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, - 99,104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95, -111,117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95, -102,114, 97,109,101, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108, -100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101, -115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, - 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116, -111,114,115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0, 91, - 51, 93, 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, - 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108, -101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, - 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116, -121, 95,115,109,111,111,116,104, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, - 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98, -101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,112,114, -101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105, -108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,115,101, -108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114, -101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99, -116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115, -105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0, 42,116,121,112,101, -115,116,114, 0, 42,109,101,115,115, 97,103,101, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111, -114,101,108,101,118,101,108, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0, -119,105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111, -112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110, -116, 99,117,114,115,111,114,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, - 0,100,101,102, 97,117,108,116, 97, 99,116,109, 97,112, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116, -105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110, -110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109, -111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0, 42, -101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109, -101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97, -110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, - 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115, -107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101, -109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109, -111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97, -112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112, -109, 0,109,118, 97,108, 91, 50, 93, 0,112,114,101,118,120, 0,112,114,101,118,121, 0,117,110,105, 99,111,100,101, 0, 97,115, - 99,105,105, 0, 42,107,101,121,109, 97,112, 95,105,100,110, 97,109,101, 0, 99,117,115,116,111,109, 0, 99,117,115,116,111,109, -100, 97,116, 97,102,114,101,101, 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102, -105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112, -108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102, -102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95, -109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102, -116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105, -111,110, 0, 42,114,110, 97, 95,112, 97,116,104, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0,105,100,116,121,112,101, 0, -101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 99,111,108,111, -114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, - 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, - 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, - 0,103,114,111,117,112, 91, 54, 52, 93, 0,116,101,109,112,108, 97,116,101,115, 0,103,114,111,117,112,109,111,100,101, 0,112, - 97,116,104,115, 0,107,101,121,105,110,103,102,108, 97,103, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, - 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, - 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116, -101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111, -110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104, -101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108, -101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101, -115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112, -101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, - 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115, -115,105,111,110, 0, 97, 99, 99,117,114, 97, 99,121, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95, -109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118, -101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115, -112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, - 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99, -101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42, -102,108,117,105,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42, -119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, - 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, - 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105, -110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101, -100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 42,112,111,105,110,116, 95, - 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0,118,101,108,111, 99,105,116,121, 91, 51, 93, - 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0, -118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110, -116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 0, 84, 89, 80, 69, -196, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0, -108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110, -107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,105, 0, -118,101, 99, 50,102, 0,118,101, 99, 50,100, 0,118,101, 99, 51,105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,100, 0,118,101, - 99, 52,105, 0,118,101, 99, 52,102, 0,118,101, 99, 52,100, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112, -101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70, -105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, - 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, - 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105, -110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97, -109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101, -120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, - 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, - 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 86,111,120,101,108, 68, 97,116, 97, 0, - 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, - 97,112,112,105,110,103, 0, 87, 97,118,101, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114, -105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108, -101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110, -102,111, 0, 84,101,120,116, 66,111,120, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105, -116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86, -101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99, -107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77, -117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114, -109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111, -108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83, -116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115, -112,115, 0, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 32, 40, 49, 60, 60, 49, 41, 32, 35, -100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 32, 40, 49, 60, 60, 50, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, - 95, 70, 71, 79, 78, 32, 40, 49, 60, 60, 51, 41, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, - 68, 69, 82, 32, 40, 49, 60, 60, 53, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 32, - 40, 49, 60, 60, 55, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 32, 40, 49, 60, 60, - 56, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, 32, 40, 49, 60, 60, 57, 41, 32, 32, 32, 35,100,101, -102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, - 86, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 32, 52, 32, 35,100,101,102,105,110,101, - 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 32, 49, - 54, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 77, - 69, 95, 80, 82, 79, 74, 89, 90, 32, 54, 52, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 32, 49, 32, 35, -100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, - 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 86, 52, 86, 49, 32, 56, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 32, 49, 32, 35,100,101,102, -105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 32, 50, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, - 83, 69,108, 32, 48, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 32, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 70, 83, 69, 76, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 49, 32, 32, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 83, 69, 76, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 50, 32, 56, 32, 35,100,101,102,105,110,101, - 32, 84, 70, 95, 83, 69, 76, 51, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 32, 51, 50, 32, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 32, 54, 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, - 89, 78, 65, 77, 73, 67, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 32, 50, 32, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, - 69, 68, 86, 69, 82, 84, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 32, 49, 54, 32, 35,100,101, -102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 84, 73, 76, 69, 83, 32, 49, 50, 56, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 32, - 50, 53, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, 73, 68, 69, 32, 53, 49, 50, 32, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 32, 49, 48, 50, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 79, 66, 67, 79, 76, 32, 50, 48, 52, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, - 32, 52, 48, 57, 54, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 32, 56, 49, 57, 50, 32, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 32, 49, 54, 51, 56, 52, 32, 32, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 83, 79, 76, 73, 68, 32, 48, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 32, 49, 32, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 32, 52, 32, - 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 32, 51, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, - 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, - 69, 68, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 32, 52, 32, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, - 84, 70, 95, 80, 73, 78, 49, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 32, 51, 50, 32, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, - 32, 49, 50, 56, 32, 35,101,110,100,105,102,100, 32, 99,104, 97,114, 32,117,115,101, 95, 99,111,108, 44, 32,102,108, 97,103, 59, - 10, 10, 9, 47, 42, 32, 83,112,101, 99,105, 97,108, 32,108,101,118,101,108, 32, 49, 32,100, 97,116, 97, 32,116,104, 97,116, 32, - 99, 97,110,110,111,116, 32, 98,101, 32,109,111,100,105,102,105,101,100, 32,102,114,111,109, 32,111,116,104,101,114, 32,108,101, -118,101,108,115, 32, 42, 47, 10, 9, 67,117,115,116,111,109, 68, 97,116, 97, 32,118,100, 97,116, 97, 59, 10, 9, 67,117,115,116, -111,109, 68, 97,116, 97, 32,102,100, 97,116, 97, 59, 10, 9,115,104,111,114,116, 32, 42,101,100,103,101, 95,102,108, 97,103,115, - 59, 10, 9, 99,104, 97,114, 32, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 59, 10,125, 32, 77,117,108,116,105,114,101, -115, 59, 10, 10, 47, 42, 42, 32, 69,110,100, 32, 77,117,108,116,105,114,101,115, 32, 42, 42, 47, 10, 10,116,121,112,101,100,101, -102, 32,115,116,114,117, 99,116, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 32,123, 10, 9,117,110, -115,105,103,110,101,100, 32,105,110,116, 32, 42,118,101,114,116, 95,109, 97,112, 59, 32, 47, 42, 32,118,101,114,116, 95,109, 97, -112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 32, 42, 47, 10, 9,105,110,116, 32, - 42,101,100,103,101, 95,109, 97,112, 59, 32, 47, 42, 32,101,100,103,101, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, - 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 44, 32, 45, 49, 61, 32,104,105,100,100,101,110, 32, 42, 47, 10, 9, 77, 70, 97, - 99,101, 32, 42,111,108,100, 95,102, 97, 99,101,115, 59, 10, 9, 77, 69,100,103,101, 32, 42,111,108,100, 95,101,100,103,101,115, - 59, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32,116,111,116,102, 97, 99,101, 44, 32,116,111,116,101,100,103,101, - 44, 32,116,111,116,118,101,114,116, 44, 32,112, 97,100, 59, 10,125, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108, -105,116,121, 59, 10, 10, 47, 42, 32,109,118,101,114,116, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 32, - 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 83, 84, 9, 50, 10, 35,100,101,102,105, -110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 77, 80, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 72, 73, - 68, 69, 9, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 69, 82, 84, 95, 77, 69, 82, 71, 69, 68, 9, 9, - 40, 49, 60, 60, 54, 41, 10, 10, 47, 42, 32,109,101,100,103,101, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, - 41, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 9, 9, 9, 40, 49, 60, 60, 49, 41, - 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 9, 9, 9, 9, 40, 49, 60, 60, 50, 41, 10, 35,100,101,102,105, -110,101, 32, 77, 69, 95, 70, 71, 79, 78, 9, 9, 9, 9, 40, 49, 60, 60, 51, 41, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,114,101, -115,101,114,118,101, 32, 49, 54, 32,102,111,114, 32, 77, 69, 95, 72, 73, 68, 69, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 9, 9, 40, 49, 60, 60, 53, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, - 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 9, 9, 40, 49, 60, 60, 55, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, - 65, 77, 95, 76, 65, 83, 84, 9, 9, 40, 49, 60, 60, 56, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, - 9, 9, 9, 40, 49, 60, 60, 57, 41, 10, 10, 47, 42, 32,112,117,110,111, 32, 61, 32,118,101,114,116,101,120,110,111,114,109, 97, -108, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 47, 42, 32,114,101,110,100,101,114, 32, 97,115,115,117,109,101,115, 32,102, -108,105,112,115, 32,116,111, 32, 98,101, 32,111,114,100,101,114,101,100, 32,108,105,107,101, 32,116,104,105,115, 32, 42, 47, 10, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 70, 76, 73, 80, 86, 50, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 9, 9, 52, 10, 35, -100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, - 82, 79, 74, 88, 89, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 9, 9, 51, 50, 10, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, 90, 9, 9, 54, 52, 10, 10, 47, 42, 32,101,100, 99,111,100,101, - 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 9, 9, 9, 49, 10, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 9, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, - 51, 86, 49, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 9, 9, 9, 52, 10, 35,100,101,102, -105,110,101, 32, 77, 69, 95, 86, 52, 86, 49, 9, 9, 9, 56, 10, 10, 47, 42, 32,102,108, 97,103, 32, 40,109,102, 97, 99,101, 41, - 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 9, 9, 9, 49, 10, 35,100,101,102,105,110, -101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 9, 9, 9, 50, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,102,108, 97,103, 32, - 77, 69, 95, 72, 73, 68, 69, 61, 61, 49, 54, 32,105,115, 32,117,115,101,100, 32,104,101,114,101, 32,116,111,111, 32, 42, 47, 32, - 10, 47, 42, 32,109,115,101,108,101, 99,116, 45, 62,116,121,112,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 86, 83, 69,108, 9, 48, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 10, 35,100,101,102,105,110,101, - 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,102,108, 97,103, 32, 42, 47, 10, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 9, 49, 32, 47, 42, 32,117,115,101, 32, 77, 70, 97, 99,101, 32, -104,105,100,101, 32,102,108, 97,103, 32, 40, 97,102,116,101,114, 32, 50, 46, 52, 51, 41, 44, 32,115,104,111,117,108,100, 32, 98, -101, 32, 97, 98,108,101, 32,116,111, 32,114,101,117,115,101, 32, 97,102,116,101,114, 32, 50, 46, 52, 52, 32, 42, 47, 10, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 9, 50, 32, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 33, - 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 49, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 83, 69, 76, 50, 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 51, 9, 9, 49, 54, 10, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 9, 9, 51, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, - 69, 9, 9, 54, 52, 32, 47, 42, 32,117,110,117,115,101,100, 44, 32,115, 97,109,101, 32, 97,115, 32, 84, 70, 95, 83, 69, 76, 69, - 67, 84, 32, 42, 47, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,109,111,100,101, 32, 42, 47, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, - 83, 79, 82, 84, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 9, 9, 9, 52, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, - 72, 84, 9, 9, 49, 54, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 9, 54, 52, 10, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, 9, 9, 49, 50, 56, 9, 9, 47, 42, 32,100,101,112,114,101, 99, - 97,116,101,100, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 9, 50, 53, 54, - 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, 73, 68, 69, 9, 9, 53, 49, 50, 10, 35,100,101,102,105,110,101, - 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 9, 49, 48, 50, 52, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, - 66, 67, 79, 76, 9, 9, 50, 48, 52, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, - 9, 52, 48, 57, 54, 9, 47, 42, 32,119,105,116,104, 32, 90, 32, 97,120,105,115, 32, 99,111,110,115,116,114, 97,105,110,116, 32, - 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 9, 9, 56, 49, 57, 50, 10, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 9, 9, 49, 54, 51, 56, 52, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62, -116,114, 97,110,115,112, 44, 32,118, 97,108,117,101,115, 32, 49, 45, 52, 32, 97,114,101, 32,117,115,101,100, 32, 97,115, 32,102, -108, 97,103,115, 32,105,110, 32,116,104,101, 32, 71, 76, 44, 32, 87, 65, 82, 78, 73, 78, 71, 44, 32, 84, 70, 95, 83, 85, 66, 32, - 99, 97,110,116, 32,119,111,114,107, 32,119,105,116,104, 32,116,104,105,115, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 83, 79, 76, 73, 68, 9, 48, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 9, 9, 49, 10, 35,100,101,102, -105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 9, 9, - 52, 32, 47, 42, 32, 99,108,105,112,109, 97,112, 32, 97,108,112,104, 97, 47, 98,105,110, 97,114,121, 32, 97,108,112,104, 97, 32, - 97,108,108, 32,111,114, 32,110,111,116,104,105,110,103, 33, 32, 42, 47, 10, 10, 47, 42, 32,115,117, 98, 32,105,115, 32,110,111, -116, 32, 97,118, 97,105,108, 97, 98,108,101, 32,105,110, 32,116,104,101, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99, -101, 32, 97,110,121,109,111,114,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 9, 9, 51, 10, 10, - 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,117,110,119,114, 97,112, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, - 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, - 65, 84, 69, 68, 50, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 9, 52, - 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 52, 9, 56, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 80, 73, 78, 49, 9, 9, 32, 32, 32, 32, 49, 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, - 50, 9, 9, 32, 32, 32, 32, 51, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 9, 32, 32, 32, 9, 9, 54, - 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, 9, 32, 32, 32, 32, 9, 49, 50, 56, 10, 10, 35,101,110,100, -105,102, 10,100,105, 79, 67, 75, 33,110,100,101,120, 32,105,110, 32,110,117,114, 98, 32,108,105,115,116, 32, 42, 47, 10, 9,105, -110,116, 32, 97, 99,116,110,117, 59, 10, 9, 47, 42, 32,101,100,105,116, 44, 32,108, 97,115,116, 32,115,101,108,101, 99,116,101, -100, 32, 98,112,111,105,110,116, 32, 42, 47, 10, 9, 66, 80,111,105,110,116, 32, 42,108, 97,115,116,115,101,108, 98,112, 59, 10, - 9, 10, 9, 47, 42, 32,102,111,110,116, 32,112, 97,114,116, 32, 42, 47, 10, 9,115,104,111,114,116, 32,108,101,110, 44, 32,108, -105,110,101,115, 44, 32,112,111,115, 44, 32,115,112, 97, 99,101,109,111,100,101, 59, 10, 9,102,108,111, 97,116, 32,115,112, 97, - 99,105,110,103, 44, 32,108,105,110,101,100,105,115,116, 44, 32,115,104,101, 97,114, 44, 32,102,115,105,122,101, 44, 32,119,111, -114,100,115,112, 97, 99,101, 44, 32,117,108,112,111,115, 44, 32,117,108,104,101,105,103,104,116, 59, 10, 9,102,108,111, 97,116, - 32,120,111,102, 44, 32,121,111,102, 59, 10, 9,102,108,111, 97,116, 32,108,105,110,101,119,105,100,116,104, 59, 10, 70, 82, 69, - 69,216, 24, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, - 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114, -101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105, -102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114, -118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, - 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, - 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97, -116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, - 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, - 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116, -104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, - 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, - 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111, -100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111, -116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116, -116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97, -116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66, -111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, - 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116, -105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102, -105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116, -105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97, -112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116, -105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, - 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 66,117,108,108,101,116, 83,111,102,116, 66, -111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, - 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, - 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, - 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 87, -111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, - 67,111,100,101, 99, 68, 97,116, 97, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, - 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, - 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105, -110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117, -115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114, -117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, 84,114, 97, -110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, - 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, - 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, - 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, - 0, 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,116,111,112,111, 86,105,101,119, 68, 97,116, 97, 0, 86,105,101,119, 68, -101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105, -101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, - 98, 83, 99,114,101,101,110, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99, -101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, - 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105, -108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101, -101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83, -112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99, -101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, - 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, - 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, - 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, - 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84, -104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 83,111,108,105,100, 76,105,103,104,116, 0, - 85,115,101,114, 68,101,102, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97, -110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121, -112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97, -108, 0, 83,116,114,105,112, 69,108,101,109, 0, 84, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, - 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99, -101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113, -117,101,110, 99,101, 0, 98, 83,111,117,110,100, 0, 83,111,117,110,100, 72, 97,110,100,108,101, 0, 77,101,116, 97, 83,116, 97, - 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97, -114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97, -114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, - 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111, -114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, - 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116, -117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115, -105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101, -110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, - 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108, -101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111, -110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106, -101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 98, 83,111,117, -110,100, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99, -116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, - 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, - 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, - 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, - 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99, -116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, - 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, - 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, - 70,114,101,101, 67, 97,109,101,114, 97, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 71,114,111,117,112, 79, 98,106,101, 99, -116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, - 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 80, -111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105, -111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110, -101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105, -110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76, -105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, - 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, - 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105, -100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110, -115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110, -115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97, -105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109, -105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77, -111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, - 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 0, 98, 78,111,100, -101, 80,114,101,118,105,101,119, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73, -109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, - 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117, -101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111, -100,101, 84,119,111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101, -116,114,121, 0, 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111, -100,101, 83, 99,114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, - 97,112, 0, 78,111,100,101, 76,101,110,115, 68,105,115,116, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117, -114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, - 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, - 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 67,104,105,108,100, 80, - 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68, -117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, - 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, - 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76, -105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, - 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 0, 82,101,112,111,114,116, 76, -105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75, -101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71, -101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119, -109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,105,102,105,101,114, - 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,111,110, 71,101,110, -101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118, -101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77, -111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 68,114,105,118,101,114, 84, 97,114,103,101, -116, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110, -105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, - 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101, -114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105, -100, 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108, -105,115,105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82, -117,108,101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111, -105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 0, 0, 0, - 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, - 8, 0, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0, 16, 0, 16, 0, 32, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, - 40, 0,144, 0,152, 4,112, 0, 36, 0, 56, 0,112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,152, 0, 40, 0, - 0, 6,184, 1, 0, 0, 0, 0, 0, 0, 16, 1,104, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0, 88, 0, 32, 1,248, 0,136, 0, -248, 1, 56, 1, 80, 0, 88, 0, 32, 3,104, 0, 88, 1, 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0,216, 1, 0, 0, - 0, 0, 0, 0,144, 1, 20, 0, 48, 0, 64, 0, 24, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 32, 0,112, 0, 48, 0, - 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 16, 0, 0, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 72, 0, - 96, 0,112, 0,120, 0, 88, 0,120, 0,152, 0, 88, 0, 80, 0,128, 0, 80, 0,104, 0,248, 0, 56, 0,192, 0,176, 0,216, 0, - 80, 0,112, 0,128, 0,216, 0,128, 0,240, 0, 72, 0,128, 0, 0, 0,144, 0, 32, 0, 8, 2,152, 0, 0, 0,112, 0, 0, 0, - 0, 0, 88, 0, 8, 0, 8, 0, 16, 1,104, 0,240, 1, 96, 0, 88, 0, 88, 0, 88, 0,192, 1,136, 0,128, 0, 72, 0,232, 0, - 48, 0, 0, 0,144, 0, 88, 0,104, 0,120, 0,152, 0, 32, 1,224, 0,192, 0, 0, 0, 72, 0,168, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0,216, 1, 40, 0,184, 0,152, 0, 64, 0, 24, 0, 88, 0, 24, 4, 64, 0, 24, 0, 16, 0, 96, 0, 88, 0, 32, 0, - 40, 1, 48, 0, 8, 0,112, 0, 88, 0, 56, 0, 72, 0,120, 1, 32, 0, 8, 0, 16, 0, 48, 2, 0, 0, 0, 0, 64, 0,248, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 56, 0,152, 0, 72, 0,208, 0,248, 0, 32, 0, 0, 1,240, 0,208, 1,104, 0, - 0, 0,152, 0, 0, 0, 40, 1, 16, 0, 16, 0,168, 0,224, 0,144, 2,120, 2, 64, 0,200, 0, 32, 1, 72, 0,208, 2, 40, 0, -136, 1, 40, 0, 24, 1, 32, 0,232, 0, 32, 0, 32, 0,112, 2, 16, 1, 16, 0,248, 21, 56, 0,160, 11, 32, 0, 40, 0, 88, 1, - 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 24, 1, 80, 0, 48, 0, 16, 0, 8, 0, 52, 0, 0, 1, 32, 1,200, 1, 8, 1, - 48, 1, 64, 0, 32, 0, 12, 0, 24, 0, 48, 0, 16, 0, 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, 8, 0, - 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 72, 0, 96, 0,104, 0, 60, 0,128, 0, 80, 0, - 80, 0, 16, 0, 96, 0, 72, 0, 32, 0, 88, 0, 24, 0, 80, 0,112, 0, 84, 0, 32, 0, 96, 0, 56, 0, 56, 0,112, 0,140, 0, - 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0,224, 0, 40, 0, 32, 1,192, 0, 16, 0, 24, 0, 24, 0, 0, 2, 4, 0, 40, 0, -120, 0, 8, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0,120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 72, 0, 48, 0, 72, 0, 48, 0, - 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, 28, 0, 28, 0, 28, 0, 56, 0, 24, 0, 72, 0,168, 0, 40, 0,144, 0, - 56, 0,232, 0, 0, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, 40, 0, 8, 0, 8, 0, 64, 0, 32, 0, - 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 32, 0, 12, 0, 56, 0, 24, 0, 72, 0, 24, 0, 56, 0, 56, 0, 20, 0, 64, 0, 40, 0, - 32, 0,192, 0, 8, 2,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 32, 0, 8, 1,224, 0, -168, 0, 72, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, - 20, 0,112, 0, 32, 1, 16, 0,104, 0, 0, 1, 40, 0,200, 0,104, 0,112, 0,104, 0, 32, 0, 80, 0, 56, 0, 80, 0, 64, 0, -104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0, 83, 84, 82, 67,138, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, - 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, - 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 4, 0, 5, 0, 4, 0, 6, 0, 15, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, - 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 18, 0, 3, 0, - 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 20, 0, 4, 0, - 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, - 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, 4, 0, 9, 0, - 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, - 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, 26, 0, 1, 0, - 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, 4, 0, 24, 0, - 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, 2, 0, 19, 0, - 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, - 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0, - 2, 0, 43, 0, 4, 0, 44, 0, 31, 0, 6, 0, 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, 2, 0, 19, 0, - 0, 0, 48, 0, 33, 0, 21, 0, 33, 0, 0, 0, 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, 24, 0, 52, 0, - 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, 2, 0, 57, 0, - 7, 0, 11, 0, 7, 0, 12, 0, 4, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, 36, 0, 7, 0, - 27, 0, 31, 0, 12, 0, 63, 0, 24, 0, 64, 0, 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, 37, 0, 16, 0, - 37, 0, 0, 0, 37, 0, 1, 0, 7, 0, 67, 0, 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, 2, 0, 19, 0, - 4, 0, 69, 0, 4, 0, 70, 0, 9, 0, 2, 0, 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, 7, 0, 74, 0, - 38, 0, 13, 0, 27, 0, 31, 0, 39, 0, 75, 0, 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, 12, 0, 79, 0, - 36, 0, 80, 0, 27, 0, 81, 0, 2, 0, 17, 0, 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 6, 0, 40, 0, 0, 0, - 40, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, 4, 0, 23, 0, 4, 0, 86, 0, 41, 0, 10, 0, 41, 0, 0, 0, 41, 0, 1, 0, - 4, 0, 87, 0, 4, 0, 88, 0, 4, 0, 89, 0, 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, - 42, 0, 15, 0, 27, 0, 31, 0, 0, 0, 93, 0, 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, 40, 0, 97, 0, - 4, 0, 98, 0, 4, 0, 99, 0, 12, 0,100, 0, 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, 8, 0,105, 0, - 43, 0, 3, 0, 4, 0,106, 0, 4, 0,107, 0, 9, 0, 2, 0, 44, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, - 2, 0, 19, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, - 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 2, 0,119, 0, 2, 0,120, 0, 7, 0,121, 0, 36, 0, 80, 0, - 32, 0,122, 0, 45, 0, 13, 0, 4, 0,123, 0, 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 2, 0,127, 0, 2, 0,128, 0, - 2, 0, 19, 0, 2, 0,129, 0, 2, 0,130, 0, 2, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 46, 0,134, 0, 47, 0, 32, 0, - 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,135, 0, 48, 0,136, 0, 49, 0,137, 0, 50, 0,138, 0, 2, 0,129, 0, 2, 0, 19, 0, - 2, 0,139, 0, 2, 0, 17, 0, 2, 0, 37, 0, 2, 0, 43, 0, 4, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,143, 0, - 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, 4, 0,147, 0, 4, 0,148, 0, 43, 0,149, 0, 30, 0,150, 0, 0, 0,151, 0, - 7, 0,152, 0, 4, 0,153, 0, 2, 0,154, 0, 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 7, 0,158, 0, 7, 0,159, 0, - 51, 0, 63, 0, 2, 0,160, 0, 2, 0,161, 0, 2, 0,162, 0, 2, 0,163, 0, 32, 0,164, 0, 52, 0,165, 0, 0, 0,166, 0, - 0, 0,167, 0, 0, 0,168, 0, 0, 0,169, 0, 0, 0,170, 0, 7, 0,171, 0, 7, 0,172, 0, 7, 0,173, 0, 2, 0,174, 0, - 2, 0,175, 0, 2, 0,176, 0, 2, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 7, 0,182, 0, - 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0, 57, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, - 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, - 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, - 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, - 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0, - 53, 0, 15, 0, 0, 0,222, 0, 9, 0,223, 0, 0, 0,224, 0, 0, 0,225, 0, 4, 0,226, 0, 4, 0,227, 0, 9, 0,228, 0, - 7, 0,229, 0, 7, 0,230, 0, 7, 0,231, 0, 4, 0,232, 0, 9, 0,233, 0, 9, 0,234, 0, 4, 0,235, 0, 4, 0, 37, 0, - 54, 0, 6, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,236, 0, 7, 0, 67, 0, 4, 0, 64, 0, 55, 0, 5, 0, - 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 64, 0, 2, 0,237, 0, 54, 0,231, 0, 56, 0, 17, 0, 32, 0,164, 0, 47, 0,238, 0, - 57, 0,239, 0, 7, 0,240, 0, 7, 0,241, 0, 2, 0, 17, 0, 2, 0,242, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,243, 0, - 4, 0,244, 0, 2, 0,245, 0, 2, 0,246, 0, 4, 0,129, 0, 4, 0,140, 0, 2, 0,247, 0, 2, 0,248, 0, 58, 0, 22, 0, - 2, 0, 19, 0, 2, 0,249, 0, 7, 0,250, 0, 7, 0,251, 0, 2, 0,139, 0, 2, 0,252, 0, 4, 0,253, 0, 4, 0,254, 0, - 32, 0,164, 0, 4, 0,255, 0, 2, 0, 0, 1, 2, 0, 1, 1, 9, 0, 2, 1, 7, 0, 3, 1, 7, 0, 4, 1, 2, 0, 5, 1, - 2, 0, 6, 1, 2, 0, 7, 1, 2, 0, 8, 1, 7, 0, 9, 1, 7, 0, 10, 1, 55, 0, 11, 1, 59, 0, 11, 0, 4, 0, 12, 1, - 4, 0, 13, 1, 2, 0, 14, 1, 2, 0, 19, 0, 2, 0, 15, 1, 2, 0, 37, 0, 32, 0,164, 0, 7, 0, 16, 1, 4, 0, 17, 1, - 0, 0, 18, 1, 7, 0, 19, 1, 52, 0, 61, 0, 27, 0, 31, 0, 39, 0, 75, 0, 7, 0, 20, 1, 7, 0, 21, 1, 7, 0, 22, 1, - 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, - 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, - 7, 0, 39, 1, 2, 0, 40, 1, 2, 0, 41, 1, 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, - 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,242, 0, 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 4, 0, 51, 1, - 4, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, 2, 0, 15, 1, 2, 0,127, 0, 4, 0, 23, 0, 4, 0,124, 0, 4, 0,125, 0, - 4, 0,126, 0, 7, 0, 55, 1, 7, 0, 56, 1, 7, 0,189, 0, 45, 0, 57, 1, 60, 0, 58, 1, 36, 0, 80, 0, 47, 0,238, 0, - 53, 0, 59, 1, 55, 0, 11, 1, 56, 0, 60, 1, 30, 0,150, 0, 58, 0, 61, 1, 59, 0, 62, 1, 0, 0, 63, 1, 0, 0,181, 0, - 61, 0, 8, 0, 7, 0, 64, 1, 7, 0, 65, 1, 7, 0,172, 0, 4, 0, 19, 0, 7, 0, 66, 1, 7, 0, 67, 1, 7, 0, 68, 1, - 32, 0, 45, 0, 62, 0, 84, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 69, 1, 2, 0,175, 0, - 2, 0, 70, 1, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0, 71, 1, 7, 0, 72, 1, 7, 0, 73, 1, - 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1, 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, - 63, 0, 82, 1, 2, 0,249, 0, 2, 0, 70, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1, - 7, 0, 86, 1, 7, 0, 87, 1, 2, 0, 88, 1, 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 0, 0, 92, 1, 0, 0, 93, 1, - 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1, 2, 0, 97, 1, 2, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, - 7, 0,102, 1, 2, 0,103, 1, 2, 0, 43, 0, 2, 0,104, 1, 2, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, 7, 0,108, 1, - 7, 0,109, 1, 7, 0,110, 1, 7, 0,111, 1, 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, - 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 2, 0,120, 1, 2, 0,121, 1, 4, 0,122, 1, 4, 0,123, 1, 2, 0,124, 1, - 2, 0,125, 1, 2, 0,126, 1, 2, 0,127, 1, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 2, 0,132, 1, - 2, 0,133, 1, 36, 0, 80, 0, 51, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0, 64, 0, 2, 0, 27, 0, 31, 0, - 36, 0, 80, 0, 65, 0, 18, 0, 7, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 7, 0,141, 1, 7, 0,142, 1, - 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1, 2, 0,147, 1, 2, 0,148, 1, 2, 0,149, 1, 2, 0,150, 1, - 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 4, 0,154, 1, 66, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,155, 1, - 2, 0, 19, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, - 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, - 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1, - 65, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, - 2, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1, 0, 0,187, 1, 0, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, 2, 0,191, 1, - 2, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, 7, 0,195, 1, 7, 0,196, 1, 2, 0,197, 1, 2, 0,198, 1, 4, 0, 69, 1, - 4, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1, 2, 0,202, 1, 2, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, - 7, 0,207, 1, 7, 0,208, 1, 7, 0,209, 1, 7, 0,210, 1, 7, 0,211, 1, 7, 0,212, 1, 7, 0,213, 1, 0, 0,214, 1, - 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, 4, 0,218, 1, 0, 0,219, 1, 0, 0,104, 1, 0, 0,220, 1, 0, 0, 63, 1, - 2, 0,221, 1, 2, 0,222, 1, 2, 0,135, 1, 2, 0,223, 1, 2, 0,224, 1, 2, 0,225, 1, 7, 0,226, 1, 7, 0,227, 1, - 7, 0,228, 1, 7, 0,229, 1, 7, 0,230, 1, 2, 0,160, 0, 2, 0,161, 0, 55, 0,231, 1, 55, 0,232, 1, 0, 0,233, 1, - 0, 0,234, 1, 0, 0,235, 1, 0, 0,236, 1, 2, 0,237, 1, 2, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, 51, 0,134, 1, - 60, 0, 58, 1, 36, 0, 80, 0, 67, 0,241, 1, 30, 0,150, 0, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, 7, 0,245, 1, - 7, 0,246, 1, 2, 0,247, 1, 2, 0, 70, 0, 7, 0,248, 1, 7, 0,249, 1, 7, 0,250, 1, 7, 0,251, 1, 7, 0,252, 1, - 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, 7, 0, 0, 2, 2, 0, 1, 2, 2, 0, 2, 2, 4, 0, 3, 2, 4, 0,121, 1, - 12, 0, 4, 2, 68, 0, 4, 0, 27, 0, 31, 0, 0, 0, 5, 2, 69, 0, 2, 0, 43, 0,149, 0, 70, 0, 26, 0, 70, 0, 0, 0, - 70, 0, 1, 0, 71, 0, 6, 2, 4, 0, 7, 2, 4, 0, 8, 2, 4, 0, 9, 2, 4, 0, 10, 2, 4, 0, 11, 2, 4, 0, 12, 2, - 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 13, 2, 2, 0, 14, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 15, 2, - 7, 0, 16, 2, 7, 0, 17, 2, 7, 0, 18, 2, 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 23, 0, 7, 0, 22, 2, - 7, 0, 23, 2, 72, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 24, 2, 12, 0, 25, 2, 12, 0, 26, 2, - 36, 0, 80, 0, 66, 0, 27, 2, 0, 0, 19, 0, 0, 0, 28, 2, 2, 0, 29, 2, 2, 0,174, 0, 2, 0, 37, 0, 7, 0, 64, 1, - 7, 0,172, 0, 7, 0, 65, 1, 7, 0, 30, 2, 7, 0, 31, 2, 7, 0, 32, 2, 70, 0, 33, 2, 35, 0, 11, 0, 7, 0, 34, 2, - 7, 0, 35, 2, 7, 0, 36, 2, 7, 0,251, 0, 2, 0, 55, 0, 0, 0, 37, 2, 0, 0, 38, 2, 0, 0, 39, 2, 0, 0, 40, 2, - 0, 0, 41, 2, 0, 0, 42, 2, 34, 0, 7, 0, 7, 0, 43, 2, 7, 0, 35, 2, 7, 0, 36, 2, 2, 0, 39, 2, 2, 0, 42, 2, - 7, 0,251, 0, 7, 0, 37, 0, 73, 0, 21, 0, 73, 0, 0, 0, 73, 0, 1, 0, 2, 0, 17, 0, 2, 0, 44, 2, 2, 0, 42, 2, - 2, 0, 19, 0, 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 49, 2, 2, 0, 50, 2, 2, 0, 51, 2, - 2, 0, 52, 2, 7, 0, 53, 2, 7, 0, 54, 2, 34, 0, 49, 0, 35, 0, 50, 0, 2, 0, 55, 2, 2, 0, 56, 2, 4, 0, 57, 2, - 74, 0, 5, 0, 2, 0, 58, 2, 2, 0, 44, 2, 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 70, 0, 75, 0, 4, 0, 7, 0, 5, 0, - 7, 0, 6, 0, 7, 0, 8, 0, 7, 0, 59, 2, 76, 0, 68, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 60, 2, - 12, 0, 25, 2, 12, 0, 61, 2, 32, 0, 62, 2, 32, 0, 63, 2, 32, 0, 64, 2, 36, 0, 80, 0, 77, 0, 65, 2, 38, 0, 66, 2, - 66, 0, 27, 2, 12, 0, 67, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 2, 0,174, 0, 2, 0, 43, 0, 2, 0, 68, 2, - 2, 0, 69, 2, 2, 0, 70, 2, 7, 0, 71, 2, 7, 0, 70, 0, 2, 0, 72, 2, 2, 0, 29, 2, 2, 0, 19, 0, 2, 0, 73, 2, - 7, 0, 74, 2, 7, 0, 75, 2, 7, 0, 76, 2, 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 77, 2, 2, 0, 78, 2, 4, 0, 79, 2, - 34, 0, 80, 2, 2, 0, 23, 0, 2, 0, 95, 0, 2, 0, 67, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, - 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, 0, 0, 92, 2, - 78, 0, 93, 2, 79, 0, 94, 2, 0, 0, 95, 2, 68, 0, 96, 2, 68, 0, 97, 2, 68, 0, 98, 2, 68, 0, 99, 2, 4, 0,100, 2, - 7, 0,101, 2, 4, 0,102, 2, 4, 0,103, 2, 75, 0,104, 2, 4, 0,105, 2, 4, 0,106, 2, 74, 0,107, 2, 74, 0,108, 2, - 80, 0, 40, 0, 27, 0, 31, 0, 71, 0, 6, 2, 12, 0,109, 2, 36, 0, 80, 0, 38, 0, 66, 2, 66, 0, 27, 2, 81, 0,110, 2, - 82, 0,111, 2, 83, 0,112, 2, 84, 0,113, 2, 85, 0,114, 2, 86, 0,115, 2, 87, 0,116, 2, 88, 0,117, 2, 80, 0,118, 2, - 89, 0,119, 2, 90, 0,120, 2, 91, 0,121, 2, 91, 0,122, 2, 91, 0,123, 2, 4, 0, 54, 0, 4, 0,124, 2, 4, 0,125, 2, - 4, 0,126, 2, 4, 0,127, 2, 2, 0,174, 0, 2, 0,128, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0,129, 2, - 4, 0, 68, 2, 2, 0,130, 2, 2, 0, 19, 0, 2, 0,131, 2, 2, 0,132, 2, 2, 0, 29, 2, 2, 0,133, 2, 92, 0,134, 2, - 93, 0,135, 2, 83, 0, 8, 0, 9, 0,136, 2, 7, 0,137, 2, 4, 0,138, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, - 2, 0,140, 2, 2, 0,141, 2, 81, 0, 7, 0, 4, 0,142, 2, 4, 0,143, 2, 4, 0,144, 2, 4, 0,145, 2, 2, 0, 44, 2, - 0, 0,146, 2, 0, 0, 19, 0, 85, 0, 5, 0, 4, 0,142, 2, 4, 0,143, 2, 0, 0,147, 2, 0, 0,148, 2, 2, 0, 19, 0, - 94, 0, 2, 0, 4, 0,149, 2, 7, 0, 36, 2, 86, 0, 3, 0, 94, 0,150, 2, 4, 0,151, 2, 4, 0, 19, 0, 84, 0, 6, 0, - 7, 0,152, 2, 2, 0,153, 2, 2, 0, 44, 2, 0, 0, 19, 0, 0, 0,148, 2, 0, 0, 70, 2, 87, 0, 4, 0, 0, 0,236, 0, - 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 95, 0, 6, 0, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, - 2, 0,140, 2, 2, 0,141, 2, 96, 0, 1, 0, 7, 0,154, 2, 97, 0, 5, 0, 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, - 0, 0,184, 0, 4, 0, 37, 0, 88, 0, 1, 0, 7, 0,155, 2, 89, 0, 2, 0, 4, 0,156, 2, 4, 0, 17, 0, 82, 0, 7, 0, - 7, 0,137, 2, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 98, 0, 1, 0, - 7, 0,157, 2, 99, 0, 1, 0, 4, 0,158, 2,100, 0, 1, 0, 0, 0,159, 2,101, 0, 1, 0, 7, 0,137, 2,102, 0, 3, 0, - 4, 0,160, 2, 0, 0, 92, 0, 7, 0,161, 2,104, 0, 4, 0, 7, 0,236, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, -105, 0, 1, 0,104, 0,138, 2,106, 0, 5, 0, 4, 0,162, 2, 4, 0,163, 2, 0, 0, 19, 0, 0, 0, 44, 2, 0, 0, 70, 2, -107, 0, 2, 0, 4, 0,164, 2, 4, 0,163, 2,108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,165, 2,105, 0,166, 2, -107, 0,167, 2, 4, 0, 54, 0, 4, 0,125, 2, 4, 0,124, 2, 4, 0, 37, 0, 84, 0,168, 2, 92, 0, 14, 0, 12, 0,169, 2, - 84, 0,168, 2, 0, 0,170, 2, 0, 0,171, 2, 0, 0,172, 2, 0, 0,173, 2, 0, 0,174, 2, 0, 0,175, 2, 0, 0,176, 2, - 0, 0, 19, 0, 91, 0,121, 2, 91, 0,123, 2, 2, 0,177, 2, 0, 0,178, 2, 93, 0, 8, 0, 4, 0,179, 2, 4, 0,180, 2, - 81, 0,181, 2, 85, 0,182, 2, 4, 0,125, 2, 4, 0,124, 2, 4, 0, 54, 0, 4, 0, 37, 0,109, 0, 7, 0,109, 0, 0, 0, -109, 0, 1, 0, 4, 0, 17, 0, 4, 0, 69, 1, 0, 0, 20, 0, 46, 0,134, 0, 0, 0,183, 2,110, 0, 7, 0,109, 0,184, 2, - 2, 0,185, 2, 2, 0,169, 2, 2, 0,186, 2, 2, 0, 90, 0, 9, 0,187, 2, 9, 0,188, 2,111, 0, 3, 0,109, 0,184, 2, - 32, 0,164, 0, 0, 0, 20, 0,112, 0, 5, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0, 2, 0,189, 2, 0, 0,190, 2, -113, 0, 5, 0,109, 0,184, 2, 7, 0, 88, 0, 7, 0,191, 2, 4, 0,192, 2, 4, 0,193, 2,114, 0, 5, 0,109, 0,184, 2, - 32, 0,194, 2, 0, 0, 72, 0, 4, 0, 69, 1, 4, 0, 19, 0,115, 0, 13, 0,109, 0,184, 2, 32, 0,195, 2, 32, 0,196, 2, - 32, 0,197, 2, 32, 0,198, 2, 7, 0,199, 2, 7, 0,200, 2, 7, 0,191, 2, 7, 0,201, 2, 4, 0,202, 2, 4, 0,203, 2, - 4, 0, 90, 0, 4, 0,204, 2,116, 0, 5, 0,109, 0,184, 2, 2, 0,205, 2, 2, 0, 19, 0, 7, 0,206, 2, 32, 0,207, 2, -117, 0, 3, 0,109, 0,184, 2, 7, 0,208, 2, 4, 0, 90, 0,118, 0, 10, 0,109, 0,184, 2, 7, 0,209, 2, 4, 0,210, 2, - 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,211, 2, 2, 0,212, 2, 2, 0,213, 2, 7, 0,214, 2, 0, 0,215, 2,119, 0, 3, 0, -109, 0,184, 2, 7, 0, 37, 0, 4, 0, 17, 0,120, 0, 6, 0,109, 0,184, 2,121, 0,216, 2,122, 0,217, 2,123, 0,218, 2, - 7, 0,219, 2, 4, 0, 17, 0,124, 0, 11, 0,109, 0,184, 2, 52, 0,220, 2, 7, 0,221, 2, 4, 0,222, 2, 0, 0,215, 2, - 7, 0,223, 2, 4, 0,224, 2, 32, 0,225, 2, 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,125, 0, 10, 0,109, 0,184, 2, - 32, 0,228, 2, 47, 0,229, 2, 4, 0, 90, 0, 4, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 0, 0,226, 2, 4, 0,227, 2, - 4, 0, 37, 0,126, 0, 3, 0,109, 0,184, 2, 7, 0,233, 2, 4, 0,234, 2,127, 0, 5, 0,109, 0,184, 2, 7, 0,235, 2, - 0, 0,215, 2, 2, 0, 19, 0, 2, 0,236, 2,128, 0, 8, 0,109, 0,184, 2, 32, 0,164, 0, 7, 0,235, 2, 7, 0,251, 0, - 7, 0,106, 0, 0, 0,215, 2, 2, 0, 19, 0, 2, 0, 17, 0,129, 0, 21, 0,109, 0,184, 2, 32, 0,237, 2, 0, 0,215, 2, - 52, 0,220, 2, 32, 0,225, 2, 2, 0, 19, 0, 2, 0, 37, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, - 7, 0,241, 2, 7, 0,242, 2, 7, 0,243, 2, 7, 0,244, 2, 4, 0,224, 2, 4, 0,227, 2, 0, 0,226, 2, 7, 0,245, 2, - 7, 0,246, 2, 7, 0, 43, 0,130, 0, 7, 0,109, 0,184, 2, 2, 0,247, 2, 2, 0,248, 2, 4, 0, 70, 0, 32, 0,164, 0, - 7, 0,249, 2, 0, 0,215, 2,131, 0, 10, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0,250, 2, 7, 0,251, 2, 7, 0,252, 2, - 7, 0,244, 2, 4, 0,253, 2, 4, 0,254, 2, 7, 0,255, 2, 0, 0, 20, 0,132, 0, 1, 0,109, 0,184, 2,133, 0, 7, 0, -109, 0,184, 2, 46, 0,134, 0,134, 0, 0, 3,135, 0, 1, 3,136, 0, 2, 3,137, 0, 3, 3, 12, 0, 4, 3,138, 0, 13, 0, -109, 0,184, 2, 84, 0, 5, 3, 84, 0, 6, 3, 84, 0, 7, 3, 84, 0, 8, 3, 84, 0, 9, 3, 84, 0, 10, 3, 81, 0, 11, 3, - 4, 0, 12, 3, 4, 0, 13, 3, 7, 0,219, 2, 7, 0, 37, 0,139, 0, 14, 3,140, 0, 7, 0,109, 0,184, 2, 84, 0, 5, 3, - 84, 0, 15, 3,141, 0, 16, 3,142, 0, 14, 3, 4, 0, 17, 3, 4, 0, 12, 3,143, 0, 4, 0,109, 0,184, 2, 32, 0,164, 0, - 4, 0, 18, 3, 4, 0, 37, 0,144, 0, 2, 0, 4, 0, 19, 3, 7, 0, 36, 2,145, 0, 2, 0, 4, 0,125, 0, 4, 0, 20, 3, -146, 0, 20, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0,215, 2, 2, 0, 21, 3, 2, 0, 19, 0, 2, 0, 70, 2, 7, 0, 22, 3, - 7, 0, 23, 3, 4, 0, 54, 0, 4, 0, 24, 3,145, 0, 25, 3,144, 0, 26, 3, 4, 0, 27, 3, 4, 0, 28, 3, 4, 0, 29, 3, - 4, 0, 20, 3, 7, 0, 30, 3, 7, 0, 31, 3, 7, 0, 32, 3, 9, 0, 33, 3,147, 0, 8, 0,109, 0,184, 2,148, 0, 34, 3, -141, 0, 16, 3, 4, 0, 35, 3, 4, 0, 36, 3, 4, 0, 37, 3, 2, 0, 19, 0, 2, 0, 57, 0,149, 0, 8, 0,109, 0,184, 2, - 32, 0, 45, 0, 2, 0,255, 0, 2, 0, 19, 0, 2, 0,205, 2, 2, 0, 57, 0, 7, 0, 38, 3, 7, 0, 39, 3,150, 0, 5, 0, -109, 0,184, 2, 4, 0, 40, 3, 2, 0, 19, 0, 2, 0, 41, 3, 7, 0, 42, 3,151, 0, 7, 0,109, 0,184, 2, 84, 0, 43, 3, - 4, 0, 44, 3, 0, 0, 45, 3, 0, 0, 46, 3, 0, 0, 47, 3, 0, 0, 48, 3,152, 0, 3, 0,109, 0,184, 2,153, 0, 49, 3, -137, 0, 3, 3,154, 0, 10, 0,109, 0,184, 2, 32, 0, 50, 3, 32, 0, 51, 3, 0, 0, 52, 3, 7, 0, 53, 3, 2, 0, 54, 3, - 2, 0, 55, 3, 0, 0, 56, 3, 0, 0, 57, 3, 0, 0,190, 2,155, 0, 9, 0,109, 0,184, 2, 32, 0, 58, 3, 0, 0, 52, 3, - 7, 0, 59, 3, 7, 0, 60, 3, 0, 0, 69, 1, 0, 0,205, 2, 0, 0, 61, 3, 0, 0, 37, 0,156, 0, 1, 0,109, 0,184, 2, -157, 0, 27, 0, 27, 0, 31, 0, 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 62, 3, 2, 0, 19, 0, 2, 0, 63, 3, 2, 0, 64, 3, - 2, 0, 65, 3, 2, 0, 70, 0, 0, 0, 66, 3, 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 17, 0, 4, 0, 37, 0, 7, 0, 69, 3, - 7, 0, 70, 3, 7, 0, 71, 3, 7, 0, 72, 3, 7, 0, 73, 3, 7, 0, 74, 3, 34, 0, 75, 3, 36, 0, 80, 0, 38, 0, 66, 2, - 86, 0,115, 2, 7, 0, 76, 3, 7, 0, 77, 3,157, 0, 78, 3,158, 0, 3, 0,158, 0, 0, 0,158, 0, 1, 0, 0, 0, 20, 0, - 71, 0, 3, 0, 7, 0, 79, 3, 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0,159, 0, 80, 3, - 2, 0, 17, 0, 2, 0, 81, 3, 4, 0, 82, 3, 4, 0, 83, 3, 4, 0, 84, 3, 0, 0, 85, 3, 32, 0, 38, 0, 32, 0, 86, 3, - 32, 0, 87, 3, 32, 0, 88, 3, 32, 0, 89, 3, 36, 0, 80, 0, 77, 0, 65, 2, 71, 0, 6, 2,160, 0, 90, 3,160, 0, 91, 3, -161, 0, 92, 3, 9, 0, 2, 0,162, 0, 93, 3, 12, 0, 94, 3, 12, 0,109, 2, 12, 0, 25, 2, 12, 0, 95, 3, 12, 0, 96, 3, - 4, 0, 69, 1, 4, 0, 97, 3, 66, 0, 27, 2, 0, 0, 98, 3, 4, 0, 29, 2, 4, 0, 99, 3, 7, 0, 64, 1, 7, 0,100, 3, - 7, 0,101, 3, 7, 0,172, 0, 7, 0,102, 3, 7, 0, 65, 1, 7, 0,103, 3, 7, 0, 15, 2, 7, 0,104, 3, 7, 0,105, 3, - 7, 0,106, 3, 7, 0,107, 3, 7, 0,108, 3, 7, 0,109, 3, 7, 0,251, 2, 7, 0,110, 3, 7, 0,240, 0, 4, 0,111, 3, - 2, 0, 19, 0, 2, 0,112, 3, 2, 0,113, 3, 2, 0,114, 3, 2, 0,115, 3, 2, 0,116, 3, 2, 0,117, 3, 2, 0,118, 3, - 2, 0,119, 3, 2, 0,120, 3, 2, 0,121, 3, 2, 0,122, 3, 4, 0,123, 3, 4, 0,124, 3, 4, 0,125, 3, 4, 0,126, 3, - 7, 0,127, 3, 7, 0,101, 2, 7, 0,128, 3, 7, 0,129, 3, 7, 0,130, 3, 7, 0,131, 3, 7, 0,132, 3, 7, 0,215, 0, - 7, 0,133, 3, 7, 0,134, 3, 7, 0,135, 3, 7, 0,136, 3, 2, 0,137, 3, 0, 0,138, 3, 0, 0,139, 3, 0, 0,140, 3, - 0, 0,141, 3, 7, 0,142, 3, 7, 0,143, 3, 12, 0,144, 3, 12, 0,145, 3, 12, 0,146, 3, 12, 0,147, 3, 7, 0,148, 3, - 2, 0,156, 2, 2, 0,149, 3, 7, 0,138, 2, 4, 0,150, 3, 4, 0,151, 3,163, 0,152, 3, 2, 0,153, 3, 2, 0,247, 0, - 7, 0,154, 3, 12, 0,155, 3, 12, 0,156, 3, 12, 0,157, 3, 12, 0,158, 3,164, 0, 61, 1,165, 0,159, 3, 67, 0,160, 3, - 2, 0,161, 3, 2, 0,162, 3, 2, 0,163, 3, 2, 0,164, 3, 7, 0,130, 2, 2, 0,165, 3, 2, 0,166, 3,153, 0,167, 3, -141, 0,168, 3,141, 0,169, 3, 4, 0,170, 3, 4, 0,171, 3, 4, 0,172, 3, 4, 0, 70, 0, 12, 0,173, 3, 12, 0,174, 3, - 12, 0,175, 3,166, 0, 14, 0,166, 0, 0, 0,166, 0, 1, 0, 32, 0, 38, 0, 7, 0,251, 2, 7, 0, 66, 1, 7, 0,252, 2, - 7, 0,244, 2, 0, 0, 20, 0, 4, 0,253, 2, 4, 0,254, 2, 4, 0,176, 3, 2, 0, 17, 0, 2, 0,177, 3, 7, 0,255, 2, -167, 0, 12, 0,167, 0, 0, 0,167, 0, 1, 0, 32, 0, 45, 0, 4, 0,178, 3, 4, 0,156, 2, 4, 0,179, 3, 4, 0, 17, 0, - 4, 0,180, 3, 7, 0, 66, 1, 7, 0,181, 3, 7, 0,182, 3, 7, 0,154, 2,164, 0, 40, 0, 4, 0, 19, 0, 2, 0,183, 3, - 2, 0,184, 3, 2, 0,244, 2, 2, 0,185, 3, 2, 0,186, 3, 2, 0,187, 3, 2, 0,188, 3, 2, 0,189, 3, 7, 0,190, 3, - 7, 0,191, 3, 7, 0,192, 3, 7, 0,193, 3, 7, 0,194, 3, 7, 0,195, 3, 7, 0,196, 3, 7, 0,197, 3, 7, 0,198, 3, - 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3, 7, 0,204, 3, 7, 0,205, 3, 7, 0, 37, 0, - 7, 0,206, 3, 7, 0,207, 3, 7, 0,208, 3, 7, 0,209, 3, 7, 0,210, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0,213, 3, - 7, 0,214, 3, 7, 0,215, 3, 52, 0,165, 0,168, 0,216, 3, 7, 0,217, 3, 4, 0,193, 2,169, 0, 5, 0, 67, 0,241, 1, - 7, 0,218, 3, 7, 0,219, 3, 2, 0, 19, 0, 2, 0,220, 3,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 0,221, 3, - 4, 0,222, 3, 4, 0,223, 3, 4, 0, 19, 0, 4, 0,224, 3, 9, 0,225, 3, 9, 0,226, 3,137, 0, 19, 0,137, 0, 0, 0, -137, 0, 1, 0, 4, 0, 19, 0, 4, 0,227, 3, 4, 0,228, 3, 4, 0,229, 3, 4, 0,230, 3, 4, 0,231, 3, 4, 0,232, 3, - 4, 0,222, 3, 4, 0,156, 2, 4, 0, 57, 0, 0, 0,233, 3, 0, 0,234, 3, 0, 0,235, 3, 0, 0,236, 3, 12, 0,237, 3, -171, 0,238, 3, 9, 0,239, 3,172, 0, 1, 0, 7, 0, 43, 2,163, 0, 30, 0, 4, 0, 19, 0, 7, 0,240, 3, 7, 0,241, 3, - 7, 0,242, 3, 4, 0,243, 3, 4, 0,244, 3, 4, 0,245, 3, 4, 0,246, 3, 7, 0,247, 3, 7, 0,248, 3, 7, 0,249, 3, - 7, 0,250, 3, 7, 0,251, 3, 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, 7, 0,255, 3, 7, 0, 0, 4, 7, 0, 1, 4, - 7, 0, 2, 4, 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, 7, 0, 8, 4, 4, 0, 9, 4, - 4, 0, 10, 4, 7, 0, 11, 4, 7, 0,133, 3,165, 0, 50, 0, 4, 0,222, 3, 4, 0, 12, 4,173, 0, 13, 4,174, 0, 14, 4, - 0, 0, 37, 0, 0, 0, 15, 4, 2, 0, 16, 4, 7, 0, 17, 4, 0, 0, 18, 4, 7, 0, 19, 4, 7, 0, 20, 4, 7, 0, 21, 4, - 7, 0, 22, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 2, 0, 28, 4, 0, 0, 29, 4, - 2, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 0, 0, 33, 4, 4, 0,126, 0, 4, 0, 34, 4, 4, 0, 35, 4, 2, 0, 36, 4, - 2, 0, 37, 4,172, 0, 38, 4, 4, 0, 39, 4, 4, 0, 82, 0, 7, 0, 40, 4, 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, - 2, 0, 44, 4, 2, 0, 45, 4, 2, 0, 46, 4, 2, 0, 47, 4, 2, 0, 48, 4, 2, 0, 49, 4, 2, 0, 50, 4, 2, 0, 51, 4, -175, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4,137, 0, 55, 4, 12, 0, 4, 3,169, 0, 56, 4,153, 0, 49, 0,152, 0, 57, 4, - 2, 0, 17, 0, 2, 0, 58, 4, 2, 0, 59, 4, 2, 0, 60, 4, 7, 0, 61, 4, 2, 0, 62, 4, 2, 0, 63, 4, 7, 0, 64, 4, - 2, 0, 65, 4, 2, 0, 66, 4, 7, 0, 67, 4, 7, 0, 68, 4, 7, 0, 69, 4, 7, 0, 70, 4, 7, 0, 71, 4, 7, 0, 72, 4, - 4, 0, 73, 4, 7, 0, 74, 4, 7, 0, 75, 4, 7, 0, 76, 4, 80, 0, 77, 4, 80, 0, 78, 4, 80, 0, 79, 4, 0, 0, 80, 4, - 7, 0, 81, 4, 7, 0, 82, 4, 36, 0, 80, 0, 2, 0, 83, 4, 0, 0, 84, 4, 0, 0, 85, 4, 7, 0, 86, 4, 4, 0, 87, 4, - 7, 0, 88, 4, 7, 0, 89, 4, 4, 0, 90, 4, 4, 0, 19, 0, 7, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, 84, 0, 94, 4, - 7, 0, 95, 4, 7, 0, 96, 4, 7, 0, 97, 4, 7, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 4, 0,102, 4, -176, 0, 73, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,175, 0, 2, 0, 70, 1, 2, 0,104, 1, 2, 0,103, 4, 7, 0,104, 4, - 7, 0,105, 4, 7, 0,106, 4, 7, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, 7, 0,111, 4, 7, 0,162, 1, - 7, 0,164, 1, 7, 0,163, 1, 7, 0,112, 4, 4, 0,113, 4, 7, 0,114, 4, 7, 0,115, 4, 7, 0,116, 4, 7, 0,117, 4, - 7, 0,118, 4, 7, 0,119, 4, 7, 0,120, 4, 2, 0,121, 4, 2, 0, 69, 1, 2, 0,122, 4, 2, 0,123, 4, 2, 0,124, 4, - 2, 0,125, 4, 2, 0,126, 4, 2, 0,127, 4, 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, 7, 0,131, 4, 7, 0,132, 4, - 7, 0,133, 4, 7, 0,134, 4, 7, 0,135, 4, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, 2, 0,140, 4, - 2, 0,141, 4, 2, 0,142, 4, 2, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 7, 0,147, 4, 2, 0,148, 4, - 2, 0,149, 4, 2, 0,150, 4, 2, 0,151, 4, 7, 0,152, 4, 7, 0,153, 4, 7, 0,154, 4, 7, 0,155, 4, 2, 0,156, 4, - 2, 0,157, 4, 2, 0,158, 4, 2, 0, 19, 0, 7, 0,159, 4, 7, 0,160, 4, 36, 0, 80, 0, 51, 0,134, 1, 2, 0,135, 1, - 2, 0,136, 1, 30, 0,150, 0,177, 0, 8, 0,177, 0, 0, 0,177, 0, 1, 0, 4, 0,111, 3, 4, 0,161, 4, 4, 0, 19, 0, - 2, 0,162, 4, 2, 0,163, 4, 32, 0,164, 0,178, 0, 13, 0, 9, 0,164, 4, 9, 0,165, 4, 4, 0,166, 4, 4, 0,167, 4, - 4, 0,168, 4, 4, 0,169, 4, 4, 0,170, 4, 4, 0,171, 4, 4, 0,172, 4, 4, 0,173, 4, 4, 0,174, 4, 4, 0, 37, 0, - 0, 0,175, 4,179, 0, 5, 0, 9, 0,176, 4, 9, 0,177, 4, 4, 0,178, 4, 4, 0, 70, 0, 0, 0,179, 4,180, 0, 15, 0, - 4, 0, 17, 0, 4, 0,180, 4, 4, 0,181, 4, 4, 0,182, 4, 4, 0,183, 4, 4, 0,184, 4, 7, 0,185, 4, 4, 0,186, 4, - 4, 0, 90, 0, 4, 0,187, 4, 4, 0,188, 4, 4, 0,189, 4, 4, 0,190, 4, 4, 0,191, 4, 26, 0, 30, 0,181, 0, 7, 0, - 4, 0,192, 4, 7, 0,193, 4, 7, 0,194, 4, 7, 0,195, 4, 4, 0,196, 4, 2, 0, 19, 0, 2, 0, 37, 0,182, 0, 11, 0, -182, 0, 0, 0,182, 0, 1, 0, 0, 0, 20, 0, 66, 0,197, 4, 67, 0,198, 4, 4, 0,111, 3, 4, 0,199, 4, 4, 0,200, 4, - 4, 0, 37, 0, 4, 0,201, 4, 4, 0,202, 4,183, 0,134, 0,178, 0,203, 4,179, 0,204, 4,180, 0,205, 4, 4, 0, 17, 3, - 4, 0,126, 0, 4, 0, 34, 4, 4, 0,206, 4, 4, 0,207, 4, 4, 0,208, 4, 4, 0,209, 4, 2, 0, 19, 0, 2, 0,210, 4, - 7, 0,101, 2, 7, 0,211, 4, 7, 0,212, 4, 7, 0,213, 4, 7, 0,214, 4, 7, 0,215, 4, 2, 0,216, 4, 2, 0,217, 4, - 2, 0,218, 4, 2, 0,219, 4, 2, 0,246, 0, 2, 0,220, 4, 2, 0,221, 4, 2, 0,222, 4, 2, 0,223, 4, 2, 0,224, 4, - 2, 0, 91, 1, 2, 0,106, 0, 2, 0,225, 4, 2, 0,226, 4, 2, 0,227, 4, 2, 0,228, 4, 2, 0,229, 4, 2, 0,230, 4, - 2, 0,231, 4, 2, 0,232, 4, 2, 0,233, 4, 2, 0, 92, 1, 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,237, 4, - 4, 0,238, 4, 4, 0, 69, 1, 4, 0,239, 4, 2, 0,240, 4, 2, 0,241, 4, 2, 0,242, 4, 2, 0,121, 1, 2, 0,243, 4, - 2, 0,244, 4, 2, 0,245, 4, 2, 0,246, 4, 24, 0,247, 4, 24, 0,248, 4, 23, 0,249, 4, 12, 0,250, 4, 2, 0,251, 4, - 2, 0, 37, 0, 7, 0,252, 4, 7, 0,253, 4, 7, 0,254, 4, 7, 0,255, 4, 4, 0, 0, 5, 7, 0, 1, 5, 7, 0, 2, 5, - 7, 0, 3, 5, 7, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 2, 0, 8, 5, 2, 0, 9, 5, 2, 0, 10, 5, - 7, 0, 11, 5, 7, 0, 12, 5, 7, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, 2, 0, 16, 5, 2, 0, 17, 5, 2, 0, 18, 5, - 2, 0, 19, 5, 2, 0, 20, 5, 2, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, 4, 0, 24, 5, 4, 0, 25, 5, 4, 0, 26, 5, - 4, 0, 27, 5, 4, 0, 28, 5, 7, 0, 29, 5, 4, 0, 30, 5, 4, 0, 31, 5, 4, 0, 32, 5, 4, 0, 33, 5, 7, 0, 34, 5, - 7, 0, 35, 5, 7, 0, 36, 5, 7, 0, 37, 5, 7, 0, 38, 5, 7, 0, 39, 5, 7, 0, 40, 5, 7, 0, 41, 5, 7, 0, 42, 5, - 0, 0, 43, 5, 0, 0, 44, 5, 4, 0, 45, 5, 2, 0, 46, 5, 2, 0,238, 1, 0, 0, 47, 5, 7, 0, 48, 5, 7, 0, 49, 5, - 4, 0, 50, 5, 4, 0, 51, 5, 7, 0, 52, 5, 7, 0, 53, 5, 2, 0, 54, 5, 2, 0, 55, 5, 7, 0, 56, 5, 2, 0, 57, 5, - 2, 0, 58, 5, 4, 0, 59, 5, 2, 0, 60, 5, 2, 0, 61, 5, 2, 0, 62, 5, 2, 0, 63, 5, 7, 0, 64, 5, 7, 0, 70, 0, - 42, 0, 65, 5, 0, 0, 66, 5,184, 0, 9, 0,184, 0, 0, 0,184, 0, 1, 0, 0, 0, 20, 0, 2, 0, 67, 5, 2, 0, 68, 5, - 2, 0, 69, 5, 2, 0, 43, 0, 7, 0, 70, 5, 7, 0, 70, 0,185, 0, 7, 0, 2, 0,210, 2, 2, 0, 69, 1, 2, 0,109, 0, - 2, 0, 71, 5, 7, 0, 72, 5, 7, 0, 70, 0, 42, 0, 73, 5,186, 0, 5, 0, 7, 0, 74, 5, 0, 0, 17, 0, 0, 0, 43, 0, - 0, 0, 70, 0, 0, 0,238, 1,187, 0, 26, 0, 7, 0,119, 4, 7, 0,120, 4, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0, 75, 5, - 2, 0,136, 1, 2, 0,122, 4, 2, 0,123, 4, 2, 0,124, 4, 2, 0,125, 4, 2, 0,126, 4, 2, 0,127, 4,186, 0, 76, 5, - 2, 0,216, 4, 2, 0,217, 4, 2, 0,218, 4, 2, 0,219, 4, 2, 0,246, 0, 2, 0,220, 4, 2, 0, 77, 5, 2, 0,221, 4, -185, 0, 78, 5, 2, 0, 79, 5, 2, 0,223, 4, 2, 0,226, 4, 2, 0,227, 4,188, 0, 5, 0,188, 0, 0, 0,188, 0, 1, 0, - 4, 0,221, 3, 0, 0,233, 3, 4, 0, 19, 0,189, 0, 6, 0,190, 0, 80, 5, 4, 0, 81, 5, 4, 0, 82, 5, 9, 0, 83, 5, - 0, 0, 84, 5, 4, 0, 37, 0,191, 0, 6, 0,189, 0, 85, 5, 2, 0, 19, 0, 2, 0, 86, 5, 2, 0, 87, 5, 2, 0, 88, 5, - 9, 0, 89, 5,192, 0, 4, 0, 2, 0,106, 0, 2, 0,221, 2, 2, 0,227, 3, 2, 0, 90, 5,193, 0, 14, 0, 2, 0, 19, 0, - 2, 0, 91, 5, 2, 0, 92, 5, 2, 0, 93, 5,192, 0, 94, 5, 9, 0, 89, 5, 7, 0, 95, 5, 7, 0, 57, 0, 4, 0, 96, 5, - 4, 0, 97, 5, 4, 0, 98, 5, 4, 0, 99, 5, 46, 0,134, 0, 32, 0,164, 0,194, 0, 4, 0,194, 0, 0, 0,194, 0, 1, 0, - 0, 0,100, 5, 7, 0,101, 5,195, 0, 6, 0,189, 0, 85, 5, 7, 0,102, 5, 4, 0, 90, 0, 0, 0,103, 5, 0, 0,104, 5, - 0, 0,190, 2,196, 0, 9, 0,189, 0, 85, 5, 7, 0,105, 5, 7, 0,106, 5, 2, 0, 69, 1, 2, 0, 19, 0, 4, 0, 36, 0, - 4, 0,107, 5, 86, 0,108, 5, 9, 0, 89, 5,197, 0, 74, 0,196, 0,109, 5,196, 0,110, 5,195, 0, 80, 3, 7, 0,111, 5, - 2, 0,112, 5, 2, 0,113, 5, 7, 0,114, 5, 7, 0,115, 5, 2, 0,227, 3, 2, 0,116, 5, 7, 0,117, 5, 7, 0,118, 5, - 7, 0,119, 5, 2, 0,120, 5, 2, 0, 96, 5, 2, 0,121, 5, 2, 0,122, 5, 2, 0,123, 5, 2, 0,124, 5, 7, 0,125, 5, - 7, 0,126, 5, 7, 0,127, 5, 2, 0,128, 5, 2, 0,129, 5, 2, 0,130, 5, 2, 0,131, 5, 2, 0,132, 5, 2, 0,133, 5, - 2, 0,134, 5,191, 0,135, 5,193, 0,136, 5, 7, 0,137, 5, 7, 0,138, 5, 7, 0,139, 5, 2, 0,140, 5, 2, 0,141, 5, - 0, 0,142, 5, 0, 0,143, 5, 0, 0,144, 5, 0, 0,145, 5, 0, 0,146, 5, 0, 0,147, 5, 2, 0,148, 5, 7, 0,149, 5, - 7, 0,150, 5, 7, 0,151, 5, 7, 0,152, 5, 7, 0,153, 5, 7, 0,154, 5, 7, 0,155, 5, 7, 0,156, 5, 7, 0,157, 5, - 7, 0,158, 5, 2, 0,159, 5, 0, 0,160, 5, 0, 0,161, 5, 0, 0,162, 5, 0, 0,163, 5, 32, 0,164, 5, 0, 0,165, 5, - 0, 0,166, 5, 0, 0,167, 5, 0, 0,168, 5, 0, 0,169, 5, 0, 0,170, 5, 0, 0,171, 5, 0, 0,172, 5, 2, 0,173, 5, - 2, 0,174, 5, 2, 0,175, 5, 2, 0,176, 5, 2, 0,177, 5, 4, 0,178, 5, 4, 0,179, 5,198, 0, 8, 0, 4, 0,180, 5, - 4, 0,181, 5, 4, 0,182, 5, 4, 0,183, 5, 4, 0,184, 5, 4, 0,185, 5, 4, 0, 54, 0, 4, 0,125, 2,199, 0, 3, 0, - 7, 0,186, 5, 2, 0,187, 5, 2, 0, 19, 0,200, 0, 2, 0, 7, 0,188, 5, 4, 0, 19, 0, 46, 0, 38, 0, 27, 0, 31, 0, - 39, 0, 75, 0, 32, 0,189, 5,176, 0,190, 5, 46, 0,191, 5, 47, 0,238, 0, 12, 0,192, 5,177, 0,193, 5, 32, 0,194, 5, - 7, 0,195, 5, 7, 0,196, 5, 7, 0,197, 5, 7, 0,198, 5, 4, 0,111, 3, 2, 0, 19, 0, 2, 0, 63, 1, 60, 0, 58, 1, -201, 0,199, 5,197, 0,200, 5,202, 0,201, 5,183, 0,182, 0,181, 0,202, 5, 12, 0,100, 0, 12, 0,203, 5, 12, 0,204, 5, -203, 0,205, 5, 2, 0,206, 5, 2, 0,207, 5, 2, 0,247, 0, 2, 0,208, 5, 4, 0,209, 5, 4, 0,210, 5, 12, 0,211, 5, -186, 0, 76, 5,187, 0,212, 5,199, 0,213, 5,162, 0, 93, 3,200, 0,214, 5,204, 0, 6, 0, 47, 0,238, 0, 45, 0, 57, 1, - 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,106, 0, 7, 0,215, 5,205, 0, 35, 0, 7, 0,216, 5, 7, 0,217, 5, 7, 0,218, 5, - 7, 0,219, 5, 7, 0,220, 5, 7, 0,221, 5, 7, 0,222, 5, 7, 0,223, 5, 7, 0,224, 5, 7, 0, 76, 1, 7, 0,225, 5, - 7, 0,226, 5, 7, 0,227, 5, 7, 0,228, 5, 7, 0,171, 0, 2, 0,229, 5, 2, 0,230, 5, 2, 0, 70, 2, 2, 0,231, 5, - 2, 0,232, 5, 2, 0,233, 5, 2, 0,234, 5, 7, 0,235, 5, 71, 0,236, 5,162, 0, 93, 3,205, 0,237, 5,206, 0,238, 5, -207, 0,239, 5,208, 0,240, 5,209, 0,241, 5,210, 0,242, 5, 7, 0,243, 5, 2, 0,244, 5, 2, 0,245, 5, 4, 0,238, 1, -211, 0, 54, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5, 7, 0,224, 5, - 7, 0, 76, 1, 7, 0, 43, 0, 4, 0,250, 5, 2, 0,233, 5, 2, 0,234, 5, 32, 0,189, 5, 32, 0,251, 5,204, 0,252, 5, -211, 0,237, 5, 0, 0,253, 5, 4, 0,111, 3, 4, 0,254, 5, 2, 0,255, 5, 2, 0, 70, 0, 2, 0, 0, 6, 2, 0, 1, 6, - 2, 0,238, 1, 2, 0, 19, 0, 2, 0, 28, 2, 2, 0, 2, 6, 7, 0,112, 0, 7, 0, 3, 6, 7, 0, 4, 6, 7, 0, 5, 6, - 7, 0, 6, 6, 7, 0, 7, 6, 7, 0,171, 0, 7, 0,195, 5, 2, 0, 8, 6, 2, 0,121, 1, 2, 0, 9, 6, 2, 0, 10, 6, - 2, 0, 11, 6, 2, 0, 12, 6, 2, 0, 13, 6, 2, 0, 14, 6, 2, 0, 15, 6, 2, 0, 16, 6, 4, 0, 17, 6, 12, 0, 18, 6, - 2, 0, 19, 6, 2, 0,139, 2, 2, 0, 20, 6, 0, 0, 21, 6, 0, 0, 22, 6, 9, 0, 23, 6,162, 0, 93, 3,213, 0, 25, 0, - 24, 0, 36, 0, 24, 0, 64, 0, 23, 0, 24, 6, 23, 0, 25, 6, 23, 0, 26, 6, 7, 0, 27, 6, 7, 0, 28, 6, 7, 0, 29, 6, - 7, 0, 30, 6, 2, 0, 31, 6, 2, 0, 32, 6, 2, 0, 33, 6, 2, 0, 34, 6, 2, 0, 35, 6, 2, 0, 19, 0, 2, 0, 36, 6, - 2, 0, 37, 6, 2, 0, 38, 6, 2, 0, 39, 6, 2, 0, 40, 6, 2, 0, 1, 6, 7, 0, 41, 6, 7, 0, 42, 6, 4, 0, 43, 6, - 4, 0, 44, 6,212, 0, 6, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5, -214, 0, 8, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5,215, 0, 45, 6, - 46, 0,134, 0,216, 0, 14, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5, -213, 0, 46, 6,217, 0, 47, 6, 12, 0, 48, 6, 2, 0, 69, 1, 2, 0, 49, 6, 4, 0, 19, 0, 7, 0, 50, 6, 4, 0, 1, 6, -218, 0, 20, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5,206, 0,238, 5, -213, 0, 46, 6, 2, 0, 51, 6, 2, 0, 52, 6, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 36, 6, 2, 0, 55, 6, 0, 0, 19, 0, - 0, 0,136, 1, 9, 0, 65, 2, 4, 0, 56, 6, 4, 0, 57, 6, 27, 0, 58, 6,219, 0, 16, 0,212, 0, 0, 0,212, 0, 1, 0, - 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5,213, 0, 46, 6, 7, 0, 89, 2, 7, 0, 90, 2, 2, 0, 51, 6, - 2, 0, 59, 6, 2, 0, 60, 6, 2, 0, 61, 6, 4, 0, 19, 0, 7, 0, 62, 6,162, 0, 93, 3,220, 0, 16, 0, 0, 0, 63, 6, - 0, 0, 64, 6, 0, 0, 65, 6, 0, 0, 66, 6, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 67, 6, 2, 0, 68, 6, 2, 0,181, 1, - 2, 0, 69, 6, 4, 0, 70, 6, 4, 0, 71, 6, 2, 0, 72, 6, 2, 0, 73, 6, 0, 0, 74, 6, 0, 0, 75, 6,221, 0, 16, 0, -212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 4, 0, 37, 0,220, 0, 76, 6,222, 0, 77, 6, 12, 0, 78, 6, - 12, 0, 79, 6,223, 0, 80, 6,210, 0, 81, 6,224, 0, 82, 6, 2, 0, 83, 6, 2, 0, 84, 6, 2, 0, 85, 6, 2, 0, 70, 0, -225, 0, 17, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5,213, 0, 46, 6, - 12, 0, 86, 6,226, 0, 87, 6, 0, 0, 88, 6,227, 0, 89, 6, 4, 0, 90, 6, 4, 0, 91, 6, 2, 0, 19, 0, 2, 0, 92, 6, - 2, 0, 93, 6, 2, 0, 37, 0,228, 0, 29, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, - 2, 0,249, 5, 47, 0,229, 2, 45, 0, 57, 1, 63, 0, 94, 6, 2, 0,133, 0, 2, 0, 95, 6, 2, 0, 70, 0, 2, 0, 96, 6, - 4, 0, 19, 0, 2, 0, 97, 6, 2, 0, 98, 6, 2, 0, 99, 6, 2, 0,238, 1, 0, 0,100, 6, 0, 0,101, 6, 0, 0,102, 6, - 0, 0, 1, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 62, 6, 7, 0,121, 1, 7, 0,103, 6, 7, 0,104, 6,162, 0, 93, 3, -229, 0, 11, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5, 2, 0, 49, 6, - 2, 0, 19, 0, 4, 0, 37, 0,217, 0, 47, 6,213, 0, 46, 6,230, 0, 27, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, - 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5, 42, 0,105, 6, 4, 0,106, 6, 4, 0,107, 6, 2, 0, 90, 0, 2, 0,133, 0, - 2, 0,108, 6, 0, 0,109, 6, 0, 0,110, 6, 4, 0,111, 6, 4, 0,112, 6, 4, 0,113, 6, 4, 0,114, 6, 2, 0,115, 6, - 2, 0,116, 6, 7, 0,117, 6, 23, 0,118, 6, 23, 0,119, 6, 4, 0,120, 6, 4, 0,121, 6, 0, 0,122, 6, 0, 0,123, 6, -231, 0, 10, 0, 27, 0, 31, 0, 9, 0,124, 6, 9, 0,125, 6, 9, 0,126, 6, 9, 0,127, 6, 9, 0,128, 6, 4, 0, 90, 0, - 4, 0,129, 6, 0, 0,130, 6, 0, 0,131, 6,232, 0, 10, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, - 7, 0,248, 5,231, 0,132, 6, 2, 0, 90, 0, 2, 0,133, 0, 4, 0, 43, 0, 9, 0,133, 6,233, 0, 8, 0,212, 0, 0, 0, -212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5,213, 0, 46, 6, 4, 0, 19, 0, 4, 0,134, 6,234, 0, 23, 0, -212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5,213, 0, 46, 6, 27, 0,135, 6, - 27, 0, 81, 0, 2, 0, 19, 0, 2, 0,133, 0, 7, 0,136, 6, 9, 0,137, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,138, 6, - 7, 0,139, 6, 60, 0, 58, 1, 60, 0,140, 6, 4, 0,141, 6, 2, 0,142, 6, 2, 0, 37, 0,162, 0, 93, 3,235, 0, 10, 0, -212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5, 2, 0, 19, 0, 2, 0,120, 3, - 4, 0, 37, 0,162, 0, 93, 3,236, 0, 42, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, - 2, 0,249, 5,213, 0, 46, 6,222, 0, 77, 6, 0, 0, 63, 6, 0, 0, 64, 6, 0, 0, 65, 6, 2, 0, 17, 0, 2, 0, 73, 6, - 2, 0, 19, 0, 2, 0, 67, 6, 9, 0,137, 6, 4, 0, 70, 6, 4, 0,143, 6, 4, 0,144, 6, 4, 0, 71, 6, 23, 0,145, 6, - 23, 0,146, 6, 7, 0,147, 6, 7, 0,148, 6, 7, 0,149, 6, 7, 0,136, 6, 2, 0,150, 6, 2, 0,237, 0, 2, 0,181, 1, - 2, 0, 69, 6, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0,151, 6, 2, 0,152, 6, 9, 0,153, 6, 9, 0,154, 6, 9, 0,155, 6, - 9, 0,156, 6, 9, 0,157, 6, 2, 0,158, 6, 0, 0, 75, 6, 57, 0,159, 6,237, 0, 7, 0,237, 0, 0, 0,237, 0, 1, 0, - 4, 0,160, 6, 4, 0, 23, 0, 0, 0, 84, 0, 4, 0,161, 6, 4, 0, 17, 0,238, 0, 14, 0,212, 0, 0, 0,212, 0, 1, 0, - 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5, 4, 0, 17, 0, 4, 0,162, 6, 4, 0, 19, 0, 4, 0,108, 6, - 12, 0,163, 6, 12, 0,164, 6, 0, 0,165, 6, 0, 0,166, 6,239, 0, 5, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, - 4, 0,247, 5, 4, 0, 37, 0,240, 0, 7, 0,240, 0, 0, 0,240, 0, 1, 0, 0, 0,167, 6, 2, 0,168, 6, 2, 0,169, 6, - 2, 0,170, 6, 2, 0, 37, 0,241, 0, 12, 0, 2, 0,169, 6, 2, 0,171, 6, 2, 0,172, 6, 0, 0,190, 2, 2, 0,173, 6, - 2, 0,174, 6, 2, 0,175, 6, 2, 0,176, 6, 2, 0,177, 6, 2, 0, 36, 6, 7, 0,178, 6, 7, 0,179, 6,242, 0, 18, 0, -242, 0, 0, 0,242, 0, 1, 0, 0, 0,233, 3,241, 0,180, 6,241, 0,181, 6,241, 0,182, 6,241, 0,183, 6, 7, 0,184, 6, - 2, 0,185, 6, 2, 0,186, 6, 2, 0,187, 6, 2, 0,188, 6, 2, 0,189, 6, 2, 0,190, 6, 2, 0,191, 6, 2, 0,192, 6, - 2, 0,193, 6, 2, 0,194, 6,243, 0, 10, 0, 0, 0,195, 6, 0, 0,196, 6, 0, 0,197, 6, 0, 0,198, 6, 0, 0,199, 6, - 0, 0,200, 6, 2, 0,201, 6, 2, 0,202, 6, 2, 0,203, 6, 2, 0, 37, 0,244, 0, 8, 0, 0, 0,204, 6, 0, 0,205, 6, - 0, 0,206, 6, 0, 0,207, 6, 0, 0,208, 6, 0, 0,209, 6, 7, 0,215, 5, 7, 0, 37, 0,245, 0, 18, 0,243, 0,210, 6, -243, 0,211, 6,243, 0,212, 6,243, 0,213, 6,243, 0,214, 6,243, 0,215, 6,243, 0,216, 6,243, 0,217, 6,243, 0,218, 6, -243, 0,219, 6,243, 0,220, 6,243, 0,221, 6,243, 0,222, 6,243, 0,223, 6,243, 0,224, 6,243, 0,225, 6,244, 0,226, 6, - 0, 0,227, 6,246, 0, 71, 0, 0, 0,228, 6, 0, 0,229, 6, 0, 0,199, 6, 0, 0,230, 6, 0, 0,231, 6, 0, 0,232, 6, - 0, 0,233, 6, 0, 0,234, 6, 0, 0,235, 6, 0, 0,236, 6, 0, 0,237, 6, 0, 0,238, 6, 0, 0,239, 6, 0, 0,240, 6, - 0, 0,241, 6, 0, 0,242, 6, 0, 0,243, 6, 0, 0,244, 6, 0, 0,245, 6, 0, 0,246, 6, 0, 0,247, 6, 0, 0,248, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, + 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,130, 0,255, 0, 0, 0,255, +255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60, +255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 4, 0, 0,150,150,150,255,129,131,144,255,127,127,127,255,142,138,145,255,120,145,120,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, +107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, + 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, +255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114,114,114,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, +145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0, +247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, + 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, + 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, + 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, + 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0, +108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0, +131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49,216,230, 0, 0, + 48, 80,221, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 63, 11, 0, 0, 42,110,101,120, +116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, + 0,119, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0, +103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, + 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101, +110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105, +100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, + 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,116,111,116, 0, +112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, + 0,112, 97,100, 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112, +101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97, +120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0, +101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100, +101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115, +104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101, +108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105, +100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108, +101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102, +114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, + 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,102,108, 97,103,115, 0, 99,111,108,111, +114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, + 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110, +100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108, +101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, + 97, 0, 97,110,103,108,101, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116, +104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, + 89, 70, 95,100,111,102,100,105,115,116, 0, 89, 70, 95, 97,112,101,114,116,117,114,101, 0, 89, 70, 95, 98,107,104,116,121,112, +101, 0, 89, 70, 95, 98,107,104, 98,105, 97,115, 0, 89, 70, 95, 98,107,104,114,111,116, 0, 42,100,111,102, 95,111, 98, 0,102, +114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, + 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, + 0,109,101,110,117,110,114, 0, 42,115, 99,101,110,101, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, + 0, 42, 97,110,105,109, 0, 42,114,114, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103, +101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119, +101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108, +101, 0, 42,112,114,101,118,105,101,119, 0, 42,114,101,110,100,101,114, 95,116,101,120,116, 0,108, 97,115,116,117,112,100, 97, +116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95, +121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, + 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, + 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97, +112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, + 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114, +109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95, +109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, + 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, + 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102, +102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121, +109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116, +102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, + 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101, +110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, + 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108, +102, 97, 99, 0,112,118,101,108,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122, +101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97, +110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, + 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, + 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, + 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, + 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, + 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101, +115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95, +116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108, +111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112, +115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42, +112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122, +101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111, +105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112, +101,101,100, 95,115, 99, 97,108,101, 0, 42, 99,111, 98, 97, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95, +116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,105,110,116, 95,109,117,108,116, +105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 50, + 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114, +105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108, +116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99, +116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111, +117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, + 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116, +121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97, +115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, + 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102, +105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99, +107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112, +108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, + 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, + 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0, +115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111, +116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111, +102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101, +115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117, +102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, + 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97, +121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, + 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114, +101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, + 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100, +116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115, +117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116, +101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, + 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97, +116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99, +101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114, +101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 0, 89, 70, 95,110,117,109,112,104,111,116, +111,110,115, 0, 89, 70, 95,110,117,109,115,101, 97,114, 99,104, 0, 89, 70, 95,112,104,100,101,112,116,104, 0, 89, 70, 95,117, +115,101,113,109, 99, 0, 89, 70, 95, 98,117,102,115,105,122,101, 0, 89, 70, 95,112, 97,100, 0, 89, 70, 95, 99, 97,117,115,116, +105, 99, 98,108,117,114, 0, 89, 70, 95,108,116,114, 97,100,105,117,115, 0, 89, 70, 95,103,108,111,119,105,110,116, 0, 89, 70, + 95,103,108,111,119,111,102,115, 0, 89, 70, 95,103,108,111,119,116,121,112,101, 0, 89, 70, 95,112, 97,100, 50, 0, 42,109,116, +101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 91, 51, 93, 0,100,101,110,115,105,116,121, + 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0, +101,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, + 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, + 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115, +105,122,101, 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114, +101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105, +102,102, 0,109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,116,101,112,115, 0,109, 97,116,101,114,105, 97, +108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105, +114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, + 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, + 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, + 0,102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110, +101,108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108, +105,109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101, +112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105, +114, 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95, +103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, + 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, + 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95, +108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122, +101, 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115, +116,114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, + 0,115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110, +100, 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98, +105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115, +101,108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, + 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104, +110,101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115, +115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111, +108, 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, + 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, + 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105, +111,110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, + 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115, +115,115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99, +111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, + 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101, +120,116,117,114,101,100, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, + 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111, +108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97, +100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116, +101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122, +101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, + 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0, +102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115, +118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, + 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105, +110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, + 0,104, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114, +111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0, +100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,112, 97,100, 91, 50, 93, 0,116,119,105,115,116, + 95,115,109,111,111,116,104, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101, +120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, + 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, 98,112, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110, +103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, + 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116, +104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108, +121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102, +111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111, +120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99, +117,114,105,110,102,111, 0,101,102,102,101, 99,116, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, + 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42, +109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105, +116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, + 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0,101,100,105,116, +102,108, 97,103, 0, 99,117, 98,101,109, 97,112,115,105,122,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100, +105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0, 42,109,114, 0, 42,112,118, 0, 42, +116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108, +101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97, +115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, + 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0, +105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, + 0,109,105,100, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103,101, +115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114,114, +101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101,114, +108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114, +101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, + 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0, +115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, + 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, + 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, + 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111, +102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, + 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108, +101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97, +108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, + 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, + 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0, 42,116,101,120,116,117,114, +101, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0,116,101, +120,109, 97,112,112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109, +101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, + 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, + 97,115,112,101, 99,116,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101, +112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, + 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102, +102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109, +117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112, 97,114,101, +110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116, +105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97, +114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, + 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110, +101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, + 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42, +100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108, +117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110, +100, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110, +102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100, +115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, + 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121, +115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0, +112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, + 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0, 42,117,110,100,111, 95,118,101,114,116,115, 0,117,110,100,111, + 95,118,101,114,116,115, 95,116,111,116, 0,117,110,100,111, 95,115,105,103,110, 97,108, 0,108,118,108, 0,116,111,116,108,118, +108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, + 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, + 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, + 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111, +114,105,103,105,110, 79,112,116,115, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112, +110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0, +100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97, +116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117, +108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, + 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114, +111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, + 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,100, +101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, + 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115, +105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, + 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108, +101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,108, 97,121, + 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116, +114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0, +105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100,116, +121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0,115, +102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116,111, +114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101, +108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,114, +111,116,109,111,100,101, 0,100,116, 0,100,116,120, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, + 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112, +114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114, +115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101, +102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, + 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105, +112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100, +117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, + 97,103, 0,115,104, 97,112,101,110,114, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100, +121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101, +100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97, +115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105, +100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114, +105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, + 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97, +112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0, +102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0, +102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95, +114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114, +100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114, +102,114,105, 99,116, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101, +102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117, +109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, + 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110, +111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114, +116, 91, 51, 93, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42, +105,110,100,101,120, 95, 97,114,114, 97,121, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,115,116,101, +112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101, +100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101, +118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0,109,101, +109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, + 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110, +115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97, +116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, + 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, + 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, + 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115, +105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101, +108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, + 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109, +101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107, +108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103, +111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, + 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0, +102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, + 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, + 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107, +101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, + 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110, +108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112, +108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104, +101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102, +101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, + 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, + 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114, +101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77, +111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, + 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111, +110,101,110,116, 0,103,114, 97,118,120, 0,103,114, 97,118,121, 0,103,114, 97,118,122, 0, 97,110,105,109, 83,116, 97,114,116, + 0, 97,110,105,109, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, + 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 83, +117,114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, + 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0, +100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97, +114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101, +114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115, +117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97, +114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115, +104, 83,117,114,102, 78,111,114,109, 97,108,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109, +101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101, +110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121, +102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117, +115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114, +103, 0,104,111,114, 98, 0,104,111,114,107, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,122,101,110,107, 0, + 97,109, 98,107, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0, +108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111, +120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121, +115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0, +112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115, +116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115, +116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0, +115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102, +101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, + 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, + 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97, +111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111, +114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, + 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, + 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101, +116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, + 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, + 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121, +112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, + 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, + 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, + 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, + 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97, +108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68, +101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97, +116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107, +101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0, +118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105, +111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0, +114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101, +114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0, +109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112, +108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111, +118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115, +107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, + 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101, +116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105, +109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, + 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99, +114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, + 0,114,116, 50, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110, +115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0, +120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,119,105,110,112,111,115, 0,112,108, 97,110,101,115, 0,105,109,116,121, +112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, + 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112, +116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101, +114, 0,111, 99,114,101,115, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100, +103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121, +101,114,115, 0, 97, 99,116,108, 97,121, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115, +101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, + 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116, +121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, + 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107, +101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98, +105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0, 71, 73,113,117, 97,108,105,116,121, 0, 71, 73, 99, 97, 99, +104,101, 0, 71, 73,109,101,116,104,111,100, 0, 71, 73,112,104,111,116,111,110,115, 0, 71, 73,100,105,114,101, 99,116, 0, 89, + 70, 95, 65, 65, 0, 89, 70,101,120,112,111,114,116,120,109,108, 0, 89, 70, 95,110,111, 98,117,109,112, 0, 89, 70, 95, 99,108, + 97,109,112,114,103, 98, 0,121,102,112, 97,100, 49, 0, 71, 73,100,101,112,116,104, 0, 71, 73, 99, 97,117,115,100,101,112,116, +104, 0, 71, 73,112,105,120,101,108,115,112,101,114,115, 97,109,112,108,101, 0, 71, 73,112,104,111,116,111,110, 99,111,117,110, +116, 0, 71, 73,109,105,120,112,104,111,116,111,110,115, 0, 71, 73,112,104,111,116,111,110,114, 97,100,105,117,115, 0, 89, 70, + 95,114, 97,121,100,101,112,116,104, 0, 89, 70, 95, 65, 65,112, 97,115,115,101,115, 0, 89, 70, 95, 65, 65,115, 97,109,112,108, +101,115, 0,121,102,112, 97,100, 50, 0, 71, 73,115,104, 97,100,111,119,113,117, 97,108,105,116,121, 0, 71, 73,114,101,102,105, +110,101,109,101,110,116, 0, 71, 73,112,111,119,101,114, 0, 71, 73,105,110,100,105,114,112,111,119,101,114, 0, 89, 70, 95,103, + 97,109,109, 97, 0, 89, 70, 95,101,120,112,111,115,117,114,101, 0, 89, 70, 95,114, 97,121, 98,105, 97,115, 0, 89, 70, 95, 65, + 65,112,105,120,101,108,115,105,122,101, 0, 89, 70, 95, 65, 65,116,104,114,101,115,104,111,108,100, 0, 98, 97, 99,107, 98,117, +102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, + 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, + 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105, +109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97, +114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105, +116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112, +114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111, +109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101, +115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99, +108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108, +101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112, +116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0, +100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0, 42, 42, 98,114,117,115,104,101,115, 0, 97, 99,116,105,118,101, + 95, 98,114,117,115,104, 95,105,110,100,101,120, 0, 98,114,117,115,104, 95, 99,111,117,110,116, 0, 42,112, 97,105,110,116, 95, + 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, + 0,116,111,111,108, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0, 42,112, + 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100, +100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100, +105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101, +112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, + 0,112,105,118,111,116, 91, 51, 93, 0,116, 97, 98,108,101,116, 95,115,105,122,101, 0,116, 97, 98,108,101,116, 95,115,116,114, +101,110,103,116,104, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, + 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111, +114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105, +116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0, +110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105, +110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97, +100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103, +105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, + 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111, +100,101, 0,117,118, 95,112, 97,100, 91, 50, 93, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97, +112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, + 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111, +107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, 95,109,111,100, +101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,108,108, +105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,101,115, + 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107, +103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114, +101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116, +105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108, +101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0, +115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114, +103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, +108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115, +116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, + 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107, +103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95, +108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99, +104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101, +110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114, +103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0, +115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115, +116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97, +112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0, +112,114,111,112, 95,109,111,100,101, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,105,110,116,112, 97,100, 0, +116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118, +101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103, +116,104, 0,115,121,115,116,101,109, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0, 42, 99, 97,109,101,114, 97, 0, 42,119,111, +114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117, +114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, + 91, 51, 93, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100, +105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0,115,111,117,110,100, 95,104, 97,110,100,108,101, +115, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,106,117, +109,112,102,114, 97,109,101, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101, +121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103, +115, 0, 98,108,101,110,100, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, + 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112, +101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114, +115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97, +116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97, +109,122,111,111,109, 0,118,105,101,119, 98,117,116, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114, +115,112, 0,118,105,101,119, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, + 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,114,101,116,111,112,111, + 95,118,105,101,119, 95,100, 97,116, 97, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95, +116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0, +114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, + 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110, +116,114,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51, 50, 93, 0,108, 97, +121, 97, 99,116, 0,100,114, 97,119,116,121,112,101, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,112, +105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,103,114,105,100,118,105,101,119, 0,112, 97,100,102, 0,110,101, 97, +114, 0,102, 97,114, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,102,108, 97,103, 0,103,114,105,100,115,117, 98, +100,105,118, 0,109,111,100,101,115,101,108,101, 99,116, 0,107,101,121,102,108, 97,103,115, 0,116,119,116,121,112,101, 0,116, +119,109,111,100,101, 0,116,119,102,108, 97,103, 0,116,119,100,114, 97,119,102,108, 97,103, 0, 99,117,115,116,111,109,100, 97, +116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97,119, 0,122, 98,117,102, 0,120,114, 97,121, 0,110,100,111,102, +109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114, + 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0, +109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, + 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0, +119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, 99,117,114,115,111,114, + 91, 50, 93, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0, + 42,115, 99,114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116, +111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105, +110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,112, 97,116,104,102,108, 97,103, + 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97, +110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, + 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,115,111,114, +116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0, 97, 99,116,105,118,101, + 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 0,102, 95,102,112, 0,109,101,110,117, 0,102,112, 95,115,116,114, 91, + 56, 93, 0, 42,112,117,112,109,101,110,117, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100, +101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,108,111, 97,100, +105,109, 97,103,101, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111, +107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, + 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,115,101, + 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102, +108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, 0, 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110, +114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114, +101,116, 99,104, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108, +105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0, +108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115, +121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101, +114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, + 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115, +116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98, +117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108, +111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, + 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114, +101,102,115, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 0, +109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, + 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,118,105,101,119,114,101, 99,116, 0, 98,111, +111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104, +116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, + 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101, +110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, + 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114, +115,111,114, 0,114,112,116, 95,109, 97,115,107, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0, +112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,102,105,108,101,110, 97,109, +101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, 0,112, +111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100,111,119, + 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111,119, 99, +111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100,103,101, +116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98,101,108, + 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, 99,101, + 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110,115,112, + 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, 97,110, +101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, + 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0, +116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, 97,100, +101,100,111,119,110, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115, +101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, + 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, + 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, + 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0, +119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105, +100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, + 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95, 98, +111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99, +111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105, +116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, 97,100, +101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101, +114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105, +116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120, +116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105, +115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, + 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, + 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100, +101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0, +115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117, +112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, + 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103, +101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, + 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,102, + 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, + 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112, +111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, + 99,102,114, 97,109,101, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, + 97,110,110,101,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,102, 97, 99,101,100,111,116, 95,115,105,122, +101, 0, 98,112, 97,100, 91, 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0, +115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, + 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105, +111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116, +105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, + 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, + 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, + 97,100, 91, 51, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102, +105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115, +101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, + 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 97,114,109, 91, 50, 48, 93, + 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95,103,114,111,117,112, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102, +108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105, +114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, + 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, + 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, + 0,121,102,101,120,112,111,114,116,100,105,114, 91, 49, 54, 48, 93, 0,118,101,114,115,105,111,110,115, 0,103, 97,109,101,102, +108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103, +117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122, +101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114, +109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116, +114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101, +115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107, +101,121,109, 97,112,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112, +115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, + 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116, +105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0, +108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, + 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, + 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, 97,100, 0,109, +101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109, +101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116, +101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95, +102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110, +100,111,102, 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0,105,112,111, + 95,110,101,119, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, + 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,118,101,114, +116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110, +101, 0,102,117,108,108, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0, +100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114, +115,111,114, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97, +110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101, +119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, + 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, + 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105, +109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42, +112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, + 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114, +105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, + 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, + 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110, +114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108, +105,103,110,109,101,110,116, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115, +116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114, +115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105, +111,110, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103, +115, 0,103,108,111, 98, 97,108,102, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,105, 98,117,102, 0, 42,105, 98,117,102, 95, 99, +111,109,112, 0, 42,115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,114, 0, 98,111,116,116,111,109, 0,114,105,103, +104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97, +105,110, 91, 51, 93, 0,115, 97,116,117,114, 97,116,105,111,110, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115, +116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0,111,114, +120, 0,111,114,121, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97, +108, 97,110, 99,101, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,115,116, + 97,114,116,115,116,105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116,105,108,108, 0, 42,105, + 98,117,102, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116,105,108,108, 0, 42,105, +110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112, +114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, + 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,109,117,108, 0,104, + 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0,101,102,102,101, + 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, + 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115,111,117,110,100, 95,104, 97,110, +100,108,101, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,115,116,114,111, 98,101, 0, 42,101,102, +102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111, +102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, + 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99, +107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, + 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, + 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68, +105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, + 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110, +105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105, +110,116,101,114,112,111,108, 97,116,105,111,110, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101, +101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105, +116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100, +102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99, +116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108, +105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117, +114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112, +101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111, +117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121, +115, 0,109,105,110,102, 97, 99, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115, +101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, + 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0, +118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, + 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, + 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, + 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, + 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, + 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108, +105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120, +105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116, +114, 91, 49, 50, 56, 93, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0, +116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97, +115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114, +105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105, +100,101,108,101,110,103,116,104, 0,115,110,100,110,114, 0,112, 97,100, 49, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117, +110,100, 51, 68, 0,109, 97,107,101, 99,111,112,121, 0, 99,111,112,121,109, 97,100,101, 0,112, 97,100, 50, 91, 49, 93, 0, 42, +109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, + 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, + 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, + 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, + 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,109,105,110, 0,109, 97,120, 0,118,105,115,105,102, 97, 99, 0,114, +111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111, +116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0,100,105,115,116,114, +105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97, +116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, + 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, + 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, + 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,103,111, 0, 97, 99, 99,101,108,108,101,114, 97,116,105,111,110, + 0,109, 97,120,115,112,101,101,100, 0,109, 97,120,114,111,116,115,112,101,101,100, 0,109, 97,120,116,105,108,116,115,112,101, +101,100, 0,116,105,108,116,100, 97,109,112, 0,115,112,101,101,100,100, 97,109,112, 0, 42,115,111,117,114, 99,101, 0,102,114, + 97,109,101,115,107,105,112, 0,109,117,116,101, 0, 99,104, 97,110,103,101,100, 0,109,105,110, 95,103, 97,105,110, 0,109, 97, +120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105, +115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, + 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116, +101,114, 95,103, 97,105,110, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105, +111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42, 97,114,101, 97, 0, 42,108, 97,109,112,114,101, +110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105, +108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, + 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, + 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, + 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, 98,111,110, +101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, + 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99, +116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0, +112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0, +112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97, +114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102, +108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, + 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 98, 95, 98,111,110,101, 95,109, 97,116,115, 0, 42,100,117, 97,108, + 95,113,117, 97,116, 0, 42, 98, 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116,115, 0,101,117,108, 91, 51, 93, 0, + 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111, +115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, + 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115, +116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 42, + 99,117,115,116,111,109, 0, 99,104, 97,110, 98, 97,115,101, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105, +100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103, +114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, + 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110, +115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120, +118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115, +116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, + 97,114,107,101,114, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0, 97, 99,116,110,114, 0, 97, 99,116,119,105, +100,116,104, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,116,101,109,112, 0,110, 97,109,101, 91, 51, 48, 93, + 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, + 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116, +114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0, +116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95, +114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, + 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, + 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, + 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, + 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102, +111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116, +104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97, +120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, + 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101, +120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109, +105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, + 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, + 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111, +102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114, +105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115, +105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116, +121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,105,110,100, +101,120, 0,105,110,116,101,114,110, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 95,101,120,116, 0,108,111, 99,120, 0,108, +111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42,116,111,115,111, 99,107, 0, 42, +108,105,110,107, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115,116, +111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, + 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42, +116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, + 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114, +111,109,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97, +100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, + 97,108,108,116,121,112,101,115, 0, 42,111,119,110,116,121,112,101, 0, 42,115,101,108,105,110, 0, 42,115,101,108,111,117,116, + 0, 40, 42,116,105,109,101, 99,117,114,115,111,114, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, + 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,116, 99,104, 0, 42,115,100,104, 0, + 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109,105,110,115,112,101,101,100, 0,112,101, +114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, 0, 99,117,114,118, +101,100, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104, +116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,105,116,101,114, 0,119,114, + 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,115, + 97,116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, + 91, 52, 93, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121, +112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0, +109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108, +101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0, +109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, + 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, + 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0, 99,117,114,114, 0, 99, +108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109, +117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0, +106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111, +116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117, +108,112,116, 95,116,111,111,108, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, + 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97, +120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0,118,101,108, 91, 51, 93, 0,114,111,116, 91, + 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,110,117,109, 0, +112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, + 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105, +101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0, 97,108,105,118,101, 0,108,111,111,112, 0,104, 97,105, +114, 95,105,110,100,101,120, 0, 42, 98,111,105,100,115, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118, +101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, + 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,114,101,110, 95,115,116,101, +112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108, +101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, + 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115, +112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, + 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,109,112, +108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108, +105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, + 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95, +114,101,115, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99, +116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, + 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, +114,101, 97, 99,116,115,104, 97,112,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, + 97, 99, 0,100, 97,109,112,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0, +114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0, + 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, + 0, 99,108,117,109,112,112,111,119, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117, +103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117, +103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99, +108,101,110,103,116,104, 95,116,104,114,101,115, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108, +105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, + 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, + 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42, +112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104, +105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104, +101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117, +116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, + 97,109,101, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, + 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, + 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0, +118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114, +115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0, 91, 51, 93, + 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, + 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, + 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119, +105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95, +115,109,111,111,116,104, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120, +115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110, +100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,112,114,101,115, +101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111, +110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,115,101,108,102, + 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0, +116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102, +114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122, +101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0, 42,116,121,112,101,115,116, +114, 0, 42,109,101,115,115, 97,103,101, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101, +108,101,118,101,108, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105, +110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112,101, +114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99, +117,114,115,111,114,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,100, +101,102, 97,117,108,116, 97, 99,116,109, 97,112, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109, +101,114, 0, 42,103,104,111,115,116,119,105,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97, +109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110, +105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0,108, 97,115, +116, 95,116,121,112,101, 0,108, 97,115,116, 95,118, 97,108, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114, +115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, + 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111, +119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0, +115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, + 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105, +111,110,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101, +110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42, +114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0,109,118, 97,108, 91, 50, 93, 0,112,114,101,118,120, + 0,112,114,101,118,121, 0,117,110,105, 99,111,100,101, 0, 97,115, 99,105,105, 0, 42,107,101,121,109, 97,112, 95,105,100,110, + 97,109,101, 0, 99,117,115,116,111,109, 0, 99,117,115,116,111,109,100, 97,116, 97,102,114,101,101, 0, 42,101,100, 97,116, 97, + 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105, +122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117, +108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115, +101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, + 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, + 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0, 42,114,110, 97, 95,112, 97,116,104, 0, 97,114, +114, 97,121, 95,105,110,100,101,120, 0,105,100,116,121,112,101, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, + 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, + 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105, +112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101, +110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,116,101,109,112, +108, 97,116,101,115, 0,103,114,111,117,112,109,111,100,101, 0,112, 97,116,104,115, 0,107,101,121,105,110,103,102,108, 97,103, + 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, + 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, + 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102, +108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0, +115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101, +117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97, +108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99, +116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115, +115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101, +115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97, 99, 99,117,114, 97, 99,121, 0, 97, +105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, + 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95, +115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115, +112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, + 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111, +114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 0, 42,102,108,117,105,100, 95,103,114, +111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, + 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111, +109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, + 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95, +112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95, +119,116, 0,118, 51,100,110,117,109, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104, +101,115, 91, 50, 93, 0,118,101,108,111, 99,105,116,121, 91, 51, 93, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108, +101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0, +118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, + 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 84, 89, 80, 69,198, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115, +104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, + 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, + 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,105, 0,118,101, 99, 50,102, 0,118,101, 99, 50,100, 0,118,101, 99, 51, +105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,100, 0,118,101, 99, 52,105, 0,118,101, 99, 52,102, 0,118,101, 99, 52,100, 0, +114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101, +114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73, +109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, + 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, + 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101, +120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, + 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101, +114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, + 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101, +110,115,105,116,121, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112, +112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 87, 97,118,101, 0, 86,111,108,117, +109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, + 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, + 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 67,117,114,118,101, + 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, + 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114, +109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77, +101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86, +105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, + 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, + 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114, +105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115,112,115, 0, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, + 68, 71, 69, 68, 82, 65, 87, 32, 40, 49, 60, 60, 49, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 32, 40, + 49, 60, 60, 50, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 71, 79, 78, 32, 40, 49, 60, 60, 51, 41, 32, 32, 35,100, +101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 32, 40, 49, 60, 60, 53, 41, 32, 35,100,101,102,105, +110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 32, 40, 49, 60, 60, 55, 41, 32, 35,100,101,102,105,110,101, 32, 77, + 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 32, 40, 49, 60, 60, 56, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, + 65, 82, 80, 32, 40, 49, 60, 60, 57, 41, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 32, 49, + 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, + 70, 76, 73, 80, 86, 51, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 32, 56, 32, 35,100,101, +102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, + 74, 88, 90, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, 90, 32, 54, 52, 32, 32, 35,100,101, +102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 32, 50, + 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, + 86, 52, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 52, 86, 49, 32, 56, 32, 32, 35,100,101,102,105,110,101, 32, + 77, 69, 95, 83, 77, 79, 79, 84, 72, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 32, + 50, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 83, 69,108, 32, 48, 32, 35,100,101,102,105,110,101, 32, 77, 69, + 95, 69, 83, 69,108, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 32, 32, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 49, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, + 69, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 83, 69, 76, 50, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 51, 32, 49, 54, 32, 35,100,101,102, +105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 32, 54, + 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 32, 49, 32, 35,100,101,102,105,110,101, + 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 32, 52, + 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 32, 56, 32, 35,100,101,102,105,110,101, + 32, 84, 70, 95, 76, 73, 71, 72, 84, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, + 76, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, 32, 49, 50, 56, 32, 32, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 32, 50, 53, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, + 87, 79, 83, 73, 68, 69, 32, 53, 49, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 32, + 49, 48, 50, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, 66, 67, 79, 76, 32, 50, 48, 52, 56, 32, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, 32, 52, 48, 57, 54, 32, 32, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 83, 72, 65, 68, 79, 87, 32, 56, 49, 57, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 32, + 49, 54, 51, 56, 52, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 79, 76, 73, 68, 32, 48, 32, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 65, 68, 68, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 32, 50, 32, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 32, 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, + 32, 51, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 32, 49, 32, 35,100,101, +102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, + 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, + 65, 84, 69, 68, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 49, 32, 49, 54, 32, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 80, 73, 78, 50, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 32, 54, 52, + 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, 32, 49, 50, 56, 32, 35,101,110,100,105,102,100, 32, 99,104, 97, +114, 32,117,115,101, 95, 99,111,108, 44, 32,102,108, 97,103, 59, 10, 10, 9, 47, 42, 32, 83,112,101, 99,105, 97,108, 32,108,101, +118,101,108, 32, 49, 32,100, 97,116, 97, 32,116,104, 97,116, 32, 99, 97,110,110,111,116, 32, 98,101, 32,109,111,100,105,102,105, +101,100, 32,102,114,111,109, 32,111,116,104,101,114, 32,108,101,118,101,108,115, 32, 42, 47, 10, 9, 67,117,115,116,111,109, 68, + 97,116, 97, 32,118,100, 97,116, 97, 59, 10, 9, 67,117,115,116,111,109, 68, 97,116, 97, 32,102,100, 97,116, 97, 59, 10, 9,115, +104,111,114,116, 32, 42,101,100,103,101, 95,102,108, 97,103,115, 59, 10, 9, 99,104, 97,114, 32, 42,101,100,103,101, 95, 99,114, +101, 97,115,101,115, 59, 10,125, 32, 77,117,108,116,105,114,101,115, 59, 10, 10, 47, 42, 42, 32, 69,110,100, 32, 77,117,108,116, +105,114,101,115, 32, 42, 42, 47, 10, 10,116,121,112,101,100,101,102, 32,115,116,114,117, 99,116, 32, 80, 97,114,116,105, 97,108, + 86,105,115,105, 98,105,108,105,116,121, 32,123, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32, 42,118,101,114,116, + 95,109, 97,112, 59, 32, 47, 42, 32,118,101,114,116, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101, +119, 32, 73,110,100,101,120, 32, 42, 47, 10, 9,105,110,116, 32, 42,101,100,103,101, 95,109, 97,112, 59, 32, 47, 42, 32,101,100, +103,101, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 44, 32, 45, 49, + 61, 32,104,105,100,100,101,110, 32, 42, 47, 10, 9, 77, 70, 97, 99,101, 32, 42,111,108,100, 95,102, 97, 99,101,115, 59, 10, 9, + 77, 69,100,103,101, 32, 42,111,108,100, 95,101,100,103,101,115, 59, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32, +116,111,116,102, 97, 99,101, 44, 32,116,111,116,101,100,103,101, 44, 32,116,111,116,118,101,114,116, 44, 32,112, 97,100, 59, 10, +125, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 59, 10, 10, 47, 42, 32,109,118,101,114,116, 45, 62, +102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 80, + 72, 69, 82, 69, 84, 69, 83, 84, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 77, 80, + 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 72, 73, 68, 69, 9, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, + 77, 69, 95, 86, 69, 82, 84, 95, 77, 69, 82, 71, 69, 68, 9, 9, 40, 49, 60, 60, 54, 41, 10, 10, 47, 42, 32,109,101,100,103,101, + 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, + 68, 71, 69, 68, 82, 65, 87, 9, 9, 9, 40, 49, 60, 60, 49, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, + 9, 9, 9, 9, 40, 49, 60, 60, 50, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 71, 79, 78, 9, 9, 9, 9, 40, 49, + 60, 60, 51, 41, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,114,101,115,101,114,118,101, 32, 49, 54, 32,102,111,114, 32, 77, 69, 95, + 72, 73, 68, 69, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 9, 9, 40, + 49, 60, 60, 53, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 9, 9, 40, 49, 60, 60, + 55, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 9, 9, 40, 49, 60, 60, 56, 41, 10, + 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, 9, 9, 9, 40, 49, 60, 60, 57, 41, 10, 10, 47, 42, 32,112,117, +110,111, 32, 61, 32,118,101,114,116,101,120,110,111,114,109, 97,108, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 47, 42, 32, +114,101,110,100,101,114, 32, 97,115,115,117,109,101,115, 32,102,108,105,112,115, 32,116,111, 32, 98,101, 32,111,114,100,101,114, +101,100, 32,108,105,107,101, 32,116,104,105,115, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, + 49, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 50, 9, 9, 50, 10, 35,100,101,102,105,110, +101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, + 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 9, 9, 49, 54, 10, 35,100,101,102,105,110, +101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 9, 9, 51, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, + 90, 9, 9, 54, 52, 10, 10, 47, 42, 32,101,100, 99,111,100,101, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 35,100,101,102, +105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 9, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 9, + 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, + 77, 69, 95, 86, 51, 86, 52, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 52, 86, 49, 9, 9, 9, 56, 10, + 10, 47, 42, 32,102,108, 97,103, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, + 77, 79, 79, 84, 72, 9, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 9, 9, 9, + 50, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,102,108, 97,103, 32, 77, 69, 95, 72, 73, 68, 69, 61, 61, 49, 54, 32,105,115, 32,117, +115,101,100, 32,104,101,114,101, 32,116,111,111, 32, 42, 47, 32, 10, 47, 42, 32,109,115,101,108,101, 99,116, 45, 62,116,121,112, +101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 83, 69,108, 9, 48, 10, 35,100,101,102,105,110,101, 32, 77, + 69, 95, 69, 83, 69,108, 32, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 10, 10, 47, 42, 32,109, +116,102, 97, 99,101, 45, 62,102,108, 97,103, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, + 9, 49, 32, 47, 42, 32,117,115,101, 32, 77, 70, 97, 99,101, 32,104,105,100,101, 32,102,108, 97,103, 32, 40, 97,102,116,101,114, + 32, 50, 46, 52, 51, 41, 44, 32,115,104,111,117,108,100, 32, 98,101, 32, 97, 98,108,101, 32,116,111, 32,114,101,117,115,101, 32, + 97,102,116,101,114, 32, 50, 46, 52, 52, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 9, + 50, 32, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 33, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, + 69, 76, 49, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 50, 9, 9, 56, 10, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 83, 69, 76, 51, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 9, 9, 51, + 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 9, 9, 54, 52, 32, 47, 42, 32,117,110,117,115,101,100, 44, + 32,115, 97,109,101, 32, 97,115, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 42, 47, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, + 45, 62,109,111,100,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 9, 9, 49, 10, + 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 84, 69, 88, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 9, + 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 9, 9, 49, 54, 10, 10, 35,100,101,102,105,110,101, 32, + 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 9, 54, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, + 9, 9, 49, 50, 56, 9, 9, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, + 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 9, 50, 53, 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, + 73, 68, 69, 9, 9, 53, 49, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 9, 49, 48, + 50, 52, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, 66, 67, 79, 76, 9, 9, 50, 48, 52, 56, 10, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, 9, 52, 48, 57, 54, 9, 47, 42, 32,119,105,116,104, 32, 90, 32, + 97,120,105,115, 32, 99,111,110,115,116,114, 97,105,110,116, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, + 65, 68, 79, 87, 9, 9, 56, 49, 57, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 9, 9, 49, 54, + 51, 56, 52, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,116,114, 97,110,115,112, 44, 32,118, 97,108,117,101,115, 32, 49, + 45, 52, 32, 97,114,101, 32,117,115,101,100, 32, 97,115, 32,102,108, 97,103,115, 32,105,110, 32,116,104,101, 32, 71, 76, 44, 32, + 87, 65, 82, 78, 73, 78, 71, 44, 32, 84, 70, 95, 83, 85, 66, 32, 99, 97,110,116, 32,119,111,114,107, 32,119,105,116,104, 32,116, +104,105,115, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 79, 76, 73, 68, 9, 48, 10, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 65, 68, 68, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 9, 50, 10, 35, +100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 9, 9, 52, 32, 47, 42, 32, 99,108,105,112,109, 97,112, 32, 97,108,112, +104, 97, 47, 98,105,110, 97,114,121, 32, 97,108,112,104, 97, 32, 97,108,108, 32,111,114, 32,110,111,116,104,105,110,103, 33, 32, + 42, 47, 10, 10, 47, 42, 32,115,117, 98, 32,105,115, 32,110,111,116, 32, 97,118, 97,105,108, 97, 98,108,101, 32,105,110, 32,116, +104,101, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99,101, 32, 97,110,121,109,111,114,101, 32, 42, 47, 10, 35,100,101, +102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 9, 9, 51, 10, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,117,110,119,114, + 97,112, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 9, 49, 10, 35, +100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 50, 9, 50, 10, 35,100,101,102,105,110,101, 32, + 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, + 69, 67, 65, 84, 69, 68, 52, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 49, 9, 9, 32, 32, 32, 32, 49, + 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 9, 9, 32, 32, 32, 32, 51, 50, 10, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 80, 73, 78, 51, 9, 32, 32, 32, 9, 9, 54, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, + 52, 9, 32, 32, 32, 32, 9, 49, 50, 56, 10, 10, 35,101,110,100,105,102, 10,100,105, 79, 67, 75, 33,110,100,101,120, 32,105,110, + 32,110,117,114, 98, 32,108,105,115,116, 32, 42, 47, 10, 9,105,110,116, 32, 97, 99,116,110,117, 59, 10, 9, 47, 42, 32,101,100, +105,116, 44, 32,108, 97,115,116, 32,115,101,108,101, 99,116,101,100, 32, 98,112,111,105,110,116, 32, 42, 47, 10, 9, 66, 80,111, +105,110,116, 32, 42,108, 97,115,116,115,101,108, 98,112, 59, 10, 9, 10, 9, 47, 42, 32,102,111,110,116, 32,112, 97,114,116, 32, + 42, 47, 10, 9,115,104,111,114,116, 32,108,101,110, 44, 32,108,105,110,101,115, 44, 32,112,111,115, 44, 32,115,112, 97, 99,101, +109,111,100,101, 59, 10, 9,102,108,111, 97,116, 32,115,112, 97, 99,105,110,103, 44, 32,108,105,110,101,100,105,115,116, 44, 32, +115,104,101, 97,114, 44, 32,102,115,105,122,101, 44, 32,119,111,114,100,115,112, 97, 99,101, 44, 32,117,108,112,111,115, 44, 32, +117,108,104,101,105,103,104,116, 59, 10, 9,102,108,111, 97,116, 32,120,111,102, 44, 32,121,111,102, 59, 10, 9,102,108,111, 97, +116, 32,108,105,110,101,119,105,100,116,104, 59, 10, 70, 82, 69, 69,216, 24, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, + 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108, +116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, + 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, +117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105, +101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118, +101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101, +116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111, +108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, + 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111, +100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97, +115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, + 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101, +114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105, +110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, + 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83, +117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, + 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97, +116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101, +102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, + 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101, +116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105, +109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, + 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80, +100, 97,116, 97, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, + 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, + 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99, +104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112, +114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100, +101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116, +105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, + 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100, +101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97, +109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97, +105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114, +116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105, +110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, + 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83, +101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, + 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111, +110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,116,111,112,111, 86,105,101,119, 68, 97,116, + 97, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84, +105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, + 99,101, 73,110,102,111, 0, 98, 83, 99,114,101,101,110, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101, +101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, + 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, + 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116, +111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83,112, 97, + 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105, +112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, + 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67, +111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0,117,105, 70,111,110,116, 0,117,105, 70,111, +110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117, +105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, + 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 83,111,108,105, +100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, + 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, + 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105, +108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 84, 83,116,114,105,112, 69,108,101,109, 0, 83,116, +114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111, +114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, + 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111,117,110,100, 0, 83,111,117,110,100, 72, 97,110,100,108,101, 0, + 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110, +115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111, +110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102, +102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, + 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115, +111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115, +111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, + 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, + 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, + 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67, +111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101, +115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, + 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116, +111,114, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 69,100,105,116, 79, + 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114, +111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, + 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110, +115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, + 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, + 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111, +114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116, +117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99, +116,117, 97,116,111,114, 0, 70,114,101,101, 67, 97,109,101,114, 97, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 71,114,111, +117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, + 97,116,104, 86,101,114,116, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116, +105,110,103,115, 0, 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, + 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105, +111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111, +110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104, +111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111, +110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, + 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115, +116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105, +111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97, +116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97, +109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, + 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, + 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111, +110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, + 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100, +101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111, +100,101, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112, +101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100, +101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, + 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104, +114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111, +100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102, +111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111, +100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,101,110,115, 68,105,115,116, 0, 84,101,120, 78,111,100,101, 79,117, +116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115, +104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 72, 97,105,114, 75,101,121, 0, 80, + 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, + 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97, +114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 80, + 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114, +116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97, +119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116, +114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 0, + 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110, +100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110, +100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116, +101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77, +111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99, +116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, + 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121, +116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, + 95, 83,111,117,110,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101, +114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, + 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, + 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109, +112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, + 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110, 0, 66,111,105,100, 82,117,108,101, + 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118,101,114, 97,103,101, 83,112,101,101, +100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, + 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0, 16, 0, 16, 0, + 32, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0,152, 4,112, 0, 36, 0, 56, 0,112, 0,128, 0, +168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,152, 0, 40, 0, 40, 6,184, 1, 0, 0, 0, 0, 0, 0, 16, 1,104, 1,120, 1, + 24, 0, 8, 3,200, 0, 0, 0, 88, 0, 32, 1,248, 0,136, 0,248, 1, 56, 1, 80, 0, 88, 0, 32, 3,104, 0, 88, 1, 0, 0, +128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0,216, 1, 0, 0, 0, 0, 0, 0,144, 1, 20, 0, 48, 0, 64, 0, 24, 0, 12, 0, + 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 32, 0,112, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, + 16, 0, 0, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 72, 0, 96, 0,112, 0,120, 0, 88, 0,120, 0,152, 0, 88, 0, 80, 0, +128, 0, 80, 0,104, 0,248, 0, 56, 0,192, 0,176, 0,216, 0, 80, 0,112, 0,128, 0,216, 0,128, 0,240, 0, 72, 0,128, 0, + 0, 0,144, 0, 32, 0, 8, 2,152, 0, 0, 0,112, 0, 0, 0, 0, 0, 88, 0, 8, 0, 8, 0, 16, 1,104, 0,240, 1, 96, 0, + 88, 0, 88, 0, 88, 0,192, 1,136, 0,128, 0, 72, 0,232, 0, 48, 0, 0, 0,144, 0, 88, 0,104, 0,120, 0,152, 0,120, 1, +224, 0,192, 0, 0, 0, 72, 0,168, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,224, 1, 40, 0,184, 0,152, 0, 40, 0, 64, 0, + 24, 0, 88, 0, 64, 4, 64, 0, 24, 0, 16, 0, 96, 0, 88, 0, 32, 0, 40, 1, 48, 0, 8, 0,112, 0, 88, 0, 56, 0, 64, 0, +120, 1, 32, 0, 8, 0, 16, 0, 48, 2, 0, 0, 0, 0, 64, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 56, 0, +152, 0, 72, 0,208, 0,248, 0, 32, 0, 0, 1,240, 0,208, 1,104, 0, 0, 0,152, 0, 0, 0, 40, 1, 16, 0, 16, 0,168, 0, +224, 0,144, 2,120, 2, 64, 0,200, 0, 32, 1, 72, 0,208, 2, 40, 0,136, 1, 40, 0, 24, 1, 32, 0,232, 0, 32, 0, 32, 0, + 80, 2, 16, 1, 16, 0,216, 21, 56, 0,160, 11, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 24, 1, + 80, 0, 48, 0, 16, 0, 8, 0, 52, 0, 0, 1, 32, 1,200, 1, 8, 1, 48, 1, 64, 0, 32, 0, 12, 0, 24, 0, 48, 0, 16, 0, + 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, + 40, 0,108, 0, 72, 0, 72, 0, 96, 0,104, 0, 60, 0,128, 0, 80, 0, 80, 0, 16, 0, 96, 0, 72, 0, 32, 0, 88, 0, 24, 0, + 80, 0,112, 0, 84, 0, 32, 0, 96, 0, 56, 0, 56, 0,112, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0,224, 0, + 40, 0, 40, 1,200, 0, 16, 0, 24, 0, 24, 0, 0, 2, 4, 0, 40, 0,120, 0, 8, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0, +120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 72, 0, 48, 0, 72, 0, 48, 0, 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, + 28, 0, 28, 0, 28, 0, 56, 0, 24, 0, 72, 0,168, 0, 40, 0,144, 0, 56, 0,232, 0, 0, 0, 0, 0, 0, 0, 16, 0, 40, 0, + 28, 0, 12, 0, 12, 0, 16, 1, 40, 0, 8, 0, 8, 0, 64, 0, 32, 0, 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 32, 0, 12, 0, + 56, 0, 24, 0, 72, 0, 24, 0, 56, 0, 56, 0, 20, 0, 64, 0, 40, 0, 32, 0,192, 0, 8, 2,104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 32, 0, 8, 1,224, 0,168, 0, 72, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, + 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 24, 0,112, 0, 32, 1, 16, 0,104, 0, 0, 1, + 40, 0,200, 0,104, 0,112, 0,104, 0, 32, 0, 80, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0, + 83, 84, 82, 67,140, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, + 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, + 4, 0, 5, 0, 4, 0, 6, 0, 15, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, + 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 18, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, + 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 20, 0, 4, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, + 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, + 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, + 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, + 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, 26, 0, 1, 0, 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, + 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, 4, 0, 24, 0, 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, + 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, 2, 0, 19, 0, 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, + 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, + 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0, 2, 0, 43, 0, 4, 0, 44, 0, 31, 0, 6, 0, + 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 48, 0, 33, 0, 21, 0, 33, 0, 0, 0, + 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, 24, 0, 52, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 53, 0, + 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, 2, 0, 57, 0, 7, 0, 11, 0, 7, 0, 12, 0, 4, 0, 58, 0, + 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, 36, 0, 7, 0, 27, 0, 31, 0, 12, 0, 63, 0, 24, 0, 64, 0, + 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, 37, 0, 16, 0, 37, 0, 0, 0, 37, 0, 1, 0, 7, 0, 67, 0, + 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, 2, 0, 19, 0, 4, 0, 69, 0, 4, 0, 70, 0, 9, 0, 2, 0, + 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, 7, 0, 74, 0, 38, 0, 13, 0, 27, 0, 31, 0, 39, 0, 75, 0, + 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, 12, 0, 79, 0, 36, 0, 80, 0, 27, 0, 81, 0, 2, 0, 17, 0, + 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 6, 0, 40, 0, 0, 0, 40, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, + 4, 0, 23, 0, 4, 0, 86, 0, 41, 0, 10, 0, 41, 0, 0, 0, 41, 0, 1, 0, 4, 0, 87, 0, 4, 0, 88, 0, 4, 0, 89, 0, + 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 42, 0, 15, 0, 27, 0, 31, 0, 0, 0, 93, 0, + 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, 40, 0, 97, 0, 4, 0, 98, 0, 4, 0, 99, 0, 12, 0,100, 0, + 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, 8, 0,105, 0, 43, 0, 3, 0, 4, 0,106, 0, 4, 0,107, 0, + 9, 0, 2, 0, 44, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,108, 0, 7, 0,109, 0, + 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, + 7, 0,118, 0, 2, 0,119, 0, 2, 0,120, 0, 7, 0,121, 0, 36, 0, 80, 0, 32, 0,122, 0, 45, 0, 13, 0, 4, 0,123, 0, + 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 2, 0,127, 0, 2, 0,128, 0, 2, 0, 19, 0, 2, 0,129, 0, 2, 0,130, 0, + 2, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 46, 0,134, 0, 47, 0, 32, 0, 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,135, 0, + 48, 0,136, 0, 49, 0,137, 0, 50, 0,138, 0, 2, 0,129, 0, 2, 0, 19, 0, 2, 0,139, 0, 2, 0, 17, 0, 2, 0, 37, 0, + 2, 0, 43, 0, 4, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,143, 0, 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, + 4, 0,147, 0, 4, 0,148, 0, 43, 0,149, 0, 30, 0,150, 0, 0, 0,151, 0, 7, 0,152, 0, 4, 0,153, 0, 2, 0,154, 0, + 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 7, 0,158, 0, 7, 0,159, 0, 51, 0, 63, 0, 2, 0,160, 0, 2, 0,161, 0, + 2, 0,162, 0, 2, 0,163, 0, 32, 0,164, 0, 52, 0,165, 0, 0, 0,166, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,169, 0, + 0, 0,170, 0, 7, 0,171, 0, 7, 0,172, 0, 7, 0,173, 0, 2, 0,174, 0, 2, 0,175, 0, 2, 0,176, 0, 2, 0,177, 0, + 2, 0,178, 0, 2, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, + 7, 0,186, 0, 7, 0, 57, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, + 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, + 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, + 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, + 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0, 53, 0, 15, 0, 0, 0,222, 0, 9, 0,223, 0, + 0, 0,224, 0, 0, 0,225, 0, 4, 0,226, 0, 4, 0,227, 0, 9, 0,228, 0, 7, 0,229, 0, 7, 0,230, 0, 7, 0,231, 0, + 4, 0,232, 0, 9, 0,233, 0, 9, 0,234, 0, 4, 0,235, 0, 4, 0, 37, 0, 54, 0, 6, 0, 7, 0,182, 0, 7, 0,183, 0, + 7, 0,184, 0, 7, 0,236, 0, 7, 0, 67, 0, 4, 0, 64, 0, 55, 0, 5, 0, 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 64, 0, + 2, 0,237, 0, 54, 0,231, 0, 56, 0, 17, 0, 32, 0,164, 0, 47, 0,238, 0, 57, 0,239, 0, 7, 0,240, 0, 7, 0,241, 0, + 2, 0, 17, 0, 2, 0,242, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,243, 0, 4, 0,244, 0, 2, 0,245, 0, 2, 0,246, 0, + 4, 0,129, 0, 4, 0,140, 0, 2, 0,247, 0, 2, 0,248, 0, 58, 0, 22, 0, 2, 0, 19, 0, 2, 0,249, 0, 7, 0,250, 0, + 7, 0,251, 0, 2, 0,139, 0, 2, 0,252, 0, 4, 0,253, 0, 4, 0,254, 0, 32, 0,164, 0, 4, 0,255, 0, 2, 0, 0, 1, + 2, 0, 1, 1, 9, 0, 2, 1, 7, 0, 3, 1, 7, 0, 4, 1, 2, 0, 5, 1, 2, 0, 6, 1, 2, 0, 7, 1, 2, 0, 8, 1, + 7, 0, 9, 1, 7, 0, 10, 1, 55, 0, 11, 1, 59, 0, 11, 0, 4, 0, 12, 1, 4, 0, 13, 1, 2, 0, 14, 1, 2, 0, 19, 0, + 2, 0, 15, 1, 2, 0, 37, 0, 32, 0,164, 0, 7, 0, 16, 1, 4, 0, 17, 1, 0, 0, 18, 1, 7, 0, 19, 1, 52, 0, 61, 0, + 27, 0, 31, 0, 39, 0, 75, 0, 7, 0, 20, 1, 7, 0, 21, 1, 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, + 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, + 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 2, 0, 40, 1, 2, 0, 41, 1, + 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,242, 0, + 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 4, 0, 51, 1, 4, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, + 2, 0, 15, 1, 2, 0,127, 0, 4, 0, 23, 0, 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 7, 0, 55, 1, 7, 0, 56, 1, + 7, 0,189, 0, 45, 0, 57, 1, 60, 0, 58, 1, 36, 0, 80, 0, 47, 0,238, 0, 53, 0, 59, 1, 55, 0, 11, 1, 56, 0, 60, 1, + 30, 0,150, 0, 58, 0, 61, 1, 59, 0, 62, 1, 0, 0, 63, 1, 0, 0,181, 0, 61, 0, 8, 0, 7, 0, 64, 1, 7, 0, 65, 1, + 7, 0,172, 0, 4, 0, 19, 0, 7, 0, 66, 1, 7, 0, 67, 1, 7, 0, 68, 1, 32, 0, 45, 0, 62, 0, 84, 0, 27, 0, 31, 0, + 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 69, 1, 2, 0,175, 0, 2, 0, 70, 1, 7, 0,182, 0, 7, 0,183, 0, + 7, 0,184, 0, 7, 0,185, 0, 7, 0, 71, 1, 7, 0, 72, 1, 7, 0, 73, 1, 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1, + 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 63, 0, 82, 1, 2, 0,249, 0, 2, 0, 70, 0, + 7, 0,110, 0, 7, 0,111, 0, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1, 7, 0, 86, 1, 7, 0, 87, 1, 2, 0, 88, 1, + 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 0, 0, 92, 1, 0, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1, + 2, 0, 97, 1, 2, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, 7, 0,102, 1, 2, 0,103, 1, 2, 0, 43, 0, + 2, 0,104, 1, 2, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, 7, 0,108, 1, 7, 0,109, 1, 7, 0,110, 1, 7, 0,111, 1, + 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, + 2, 0,120, 1, 2, 0,121, 1, 4, 0,122, 1, 4, 0,123, 1, 2, 0,124, 1, 2, 0,125, 1, 2, 0,126, 1, 2, 0,127, 1, + 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 2, 0,132, 1, 2, 0,133, 1, 36, 0, 80, 0, 51, 0,134, 1, + 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0, 64, 0, 2, 0, 27, 0, 31, 0, 36, 0, 80, 0, 65, 0, 18, 0, 7, 0,137, 1, + 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 7, 0,141, 1, 7, 0,142, 1, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, + 7, 0,146, 1, 2, 0,147, 1, 2, 0,148, 1, 2, 0,149, 1, 2, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, + 4, 0,154, 1, 66, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,155, 1, 2, 0, 19, 0, 7, 0,182, 0, 7, 0,183, 0, + 7, 0,184, 0, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, + 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, + 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1, 65, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, + 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 2, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1, + 0, 0,187, 1, 0, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, 2, 0,191, 1, 2, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, + 7, 0,195, 1, 7, 0,196, 1, 2, 0,197, 1, 2, 0,198, 1, 4, 0, 69, 1, 4, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1, + 2, 0,202, 1, 2, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 7, 0,209, 1, + 7, 0,210, 1, 7, 0,211, 1, 7, 0,212, 1, 7, 0,213, 1, 0, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, + 4, 0,218, 1, 0, 0,219, 1, 0, 0,104, 1, 0, 0,220, 1, 0, 0, 63, 1, 2, 0,221, 1, 2, 0,222, 1, 2, 0,135, 1, + 2, 0,223, 1, 2, 0,224, 1, 2, 0,225, 1, 7, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1, 7, 0,229, 1, 7, 0,230, 1, + 2, 0,160, 0, 2, 0,161, 0, 55, 0,231, 1, 55, 0,232, 1, 0, 0,233, 1, 0, 0,234, 1, 0, 0,235, 1, 0, 0,236, 1, + 2, 0,237, 1, 2, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, 51, 0,134, 1, 60, 0, 58, 1, 36, 0, 80, 0, 67, 0,241, 1, + 30, 0,150, 0, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, 7, 0,245, 1, 7, 0,246, 1, 2, 0,247, 1, 2, 0, 70, 0, + 7, 0,248, 1, 7, 0,249, 1, 7, 0,250, 1, 7, 0,251, 1, 7, 0,252, 1, 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, + 7, 0, 0, 2, 2, 0, 1, 2, 2, 0, 2, 2, 4, 0, 3, 2, 4, 0,121, 1, 12, 0, 4, 2, 68, 0, 4, 0, 27, 0, 31, 0, + 0, 0, 5, 2, 69, 0, 2, 0, 43, 0,149, 0, 70, 0, 26, 0, 70, 0, 0, 0, 70, 0, 1, 0, 71, 0, 6, 2, 4, 0, 7, 2, + 4, 0, 8, 2, 4, 0, 9, 2, 4, 0, 10, 2, 4, 0, 11, 2, 4, 0, 12, 2, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 13, 2, + 2, 0, 14, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 15, 2, 7, 0, 16, 2, 7, 0, 17, 2, 7, 0, 18, 2, + 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 23, 0, 7, 0, 22, 2, 7, 0, 23, 2, 72, 0, 20, 0, 27, 0, 31, 0, + 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 24, 2, 12, 0, 25, 2, 12, 0, 26, 2, 36, 0, 80, 0, 66, 0, 27, 2, 0, 0, 19, 0, + 0, 0, 28, 2, 2, 0, 29, 2, 2, 0,174, 0, 2, 0, 37, 0, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0, 30, 2, + 7, 0, 31, 2, 7, 0, 32, 2, 70, 0, 33, 2, 35, 0, 11, 0, 7, 0, 34, 2, 7, 0, 35, 2, 7, 0, 36, 2, 7, 0,251, 0, + 2, 0, 55, 0, 0, 0, 37, 2, 0, 0, 38, 2, 0, 0, 39, 2, 0, 0, 40, 2, 0, 0, 41, 2, 0, 0, 42, 2, 34, 0, 7, 0, + 7, 0, 43, 2, 7, 0, 35, 2, 7, 0, 36, 2, 2, 0, 39, 2, 2, 0, 42, 2, 7, 0,251, 0, 7, 0, 37, 0, 73, 0, 21, 0, + 73, 0, 0, 0, 73, 0, 1, 0, 2, 0, 17, 0, 2, 0, 44, 2, 2, 0, 42, 2, 2, 0, 19, 0, 2, 0, 45, 2, 2, 0, 46, 2, + 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 49, 2, 2, 0, 50, 2, 2, 0, 51, 2, 2, 0, 52, 2, 7, 0, 53, 2, 7, 0, 54, 2, + 34, 0, 49, 0, 35, 0, 50, 0, 2, 0, 55, 2, 2, 0, 56, 2, 4, 0, 57, 2, 74, 0, 5, 0, 2, 0, 58, 2, 2, 0, 44, 2, + 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 70, 0, 75, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 0, 7, 0, 59, 2, + 76, 0, 68, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 60, 2, 12, 0, 25, 2, 12, 0, 61, 2, 32, 0, 62, 2, + 32, 0, 63, 2, 32, 0, 64, 2, 36, 0, 80, 0, 77, 0, 65, 2, 38, 0, 66, 2, 66, 0, 27, 2, 12, 0, 67, 2, 7, 0, 64, 1, + 7, 0,172, 0, 7, 0, 65, 1, 2, 0,174, 0, 2, 0, 43, 0, 2, 0, 68, 2, 2, 0, 69, 2, 2, 0, 70, 2, 7, 0, 71, 2, + 7, 0, 70, 0, 2, 0, 72, 2, 2, 0, 29, 2, 2, 0, 19, 0, 2, 0, 73, 2, 7, 0, 74, 2, 7, 0, 75, 2, 7, 0, 76, 2, + 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 77, 2, 2, 0, 78, 2, 4, 0, 79, 2, 34, 0, 80, 2, 2, 0, 23, 0, 2, 0, 95, 0, + 2, 0, 67, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, + 7, 0, 88, 2, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, 0, 0, 92, 2, 78, 0, 93, 2, 79, 0, 94, 2, 0, 0, 95, 2, + 68, 0, 96, 2, 68, 0, 97, 2, 68, 0, 98, 2, 68, 0, 99, 2, 4, 0,100, 2, 7, 0,101, 2, 4, 0,102, 2, 4, 0,103, 2, + 75, 0,104, 2, 4, 0,105, 2, 4, 0,106, 2, 74, 0,107, 2, 74, 0,108, 2, 80, 0, 40, 0, 27, 0, 31, 0, 71, 0, 6, 2, + 12, 0,109, 2, 36, 0, 80, 0, 38, 0, 66, 2, 66, 0, 27, 2, 81, 0,110, 2, 82, 0,111, 2, 83, 0,112, 2, 84, 0,113, 2, + 85, 0,114, 2, 86, 0,115, 2, 87, 0,116, 2, 88, 0,117, 2, 80, 0,118, 2, 89, 0,119, 2, 90, 0,120, 2, 91, 0,121, 2, + 91, 0,122, 2, 91, 0,123, 2, 4, 0, 54, 0, 4, 0,124, 2, 4, 0,125, 2, 4, 0,126, 2, 4, 0,127, 2, 2, 0,174, 0, + 2, 0,128, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0,129, 2, 4, 0, 68, 2, 2, 0,130, 2, 2, 0, 19, 0, + 2, 0,131, 2, 2, 0,132, 2, 2, 0, 29, 2, 2, 0,133, 2, 92, 0,134, 2, 93, 0,135, 2, 83, 0, 8, 0, 9, 0,136, 2, + 7, 0,137, 2, 4, 0,138, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 81, 0, 7, 0, + 4, 0,142, 2, 4, 0,143, 2, 4, 0,144, 2, 4, 0,145, 2, 2, 0, 44, 2, 0, 0,146, 2, 0, 0, 19, 0, 85, 0, 5, 0, + 4, 0,142, 2, 4, 0,143, 2, 0, 0,147, 2, 0, 0,148, 2, 2, 0, 19, 0, 94, 0, 2, 0, 4, 0,149, 2, 7, 0, 36, 2, + 86, 0, 3, 0, 94, 0,150, 2, 4, 0,151, 2, 4, 0, 19, 0, 84, 0, 6, 0, 7, 0,152, 2, 2, 0,153, 2, 2, 0, 44, 2, + 0, 0, 19, 0, 0, 0,148, 2, 0, 0, 70, 2, 87, 0, 4, 0, 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, + 95, 0, 6, 0, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 96, 0, 1, 0, + 7, 0,154, 2, 97, 0, 5, 0, 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 4, 0, 37, 0, 88, 0, 1, 0, + 7, 0,155, 2, 89, 0, 2, 0, 4, 0,156, 2, 4, 0, 17, 0, 82, 0, 7, 0, 7, 0,137, 2, 47, 0,136, 2, 0, 0, 19, 0, + 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 98, 0, 1, 0, 7, 0,157, 2, 99, 0, 1, 0, 4, 0,158, 2, +100, 0, 1, 0, 0, 0,159, 2,101, 0, 1, 0, 7, 0,137, 2,102, 0, 3, 0, 4, 0,160, 2, 0, 0, 92, 0, 7, 0,161, 2, +104, 0, 4, 0, 7, 0,236, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0,105, 0, 1, 0,104, 0,138, 2,106, 0, 5, 0, + 4, 0,162, 2, 4, 0,163, 2, 0, 0, 19, 0, 0, 0, 44, 2, 0, 0, 70, 2,107, 0, 2, 0, 4, 0,164, 2, 4, 0,163, 2, +108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,165, 2,105, 0,166, 2,107, 0,167, 2, 4, 0, 54, 0, 4, 0,125, 2, + 4, 0,124, 2, 4, 0, 37, 0, 84, 0,168, 2, 92, 0, 14, 0, 12, 0,169, 2, 84, 0,168, 2, 0, 0,170, 2, 0, 0,171, 2, + 0, 0,172, 2, 0, 0,173, 2, 0, 0,174, 2, 0, 0,175, 2, 0, 0,176, 2, 0, 0, 19, 0, 91, 0,121, 2, 91, 0,123, 2, + 2, 0,177, 2, 0, 0,178, 2, 93, 0, 8, 0, 4, 0,179, 2, 4, 0,180, 2, 81, 0,181, 2, 85, 0,182, 2, 4, 0,125, 2, + 4, 0,124, 2, 4, 0, 54, 0, 4, 0, 37, 0,109, 0, 7, 0,109, 0, 0, 0,109, 0, 1, 0, 4, 0, 17, 0, 4, 0, 69, 1, + 0, 0, 20, 0, 46, 0,134, 0, 0, 0,183, 2,110, 0, 7, 0,109, 0,184, 2, 2, 0,185, 2, 2, 0,169, 2, 2, 0,186, 2, + 2, 0, 90, 0, 9, 0,187, 2, 9, 0,188, 2,111, 0, 3, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0,112, 0, 5, 0, +109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0, 2, 0,189, 2, 0, 0,190, 2,113, 0, 5, 0,109, 0,184, 2, 7, 0, 88, 0, + 7, 0,191, 2, 4, 0,192, 2, 4, 0,193, 2,114, 0, 5, 0,109, 0,184, 2, 32, 0,194, 2, 0, 0, 72, 0, 4, 0, 69, 1, + 4, 0, 19, 0,115, 0, 13, 0,109, 0,184, 2, 32, 0,195, 2, 32, 0,196, 2, 32, 0,197, 2, 32, 0,198, 2, 7, 0,199, 2, + 7, 0,200, 2, 7, 0,191, 2, 7, 0,201, 2, 4, 0,202, 2, 4, 0,203, 2, 4, 0, 90, 0, 4, 0,204, 2,116, 0, 5, 0, +109, 0,184, 2, 2, 0,205, 2, 2, 0, 19, 0, 7, 0,206, 2, 32, 0,207, 2,117, 0, 3, 0,109, 0,184, 2, 7, 0,208, 2, + 4, 0, 90, 0,118, 0, 10, 0,109, 0,184, 2, 7, 0,209, 2, 4, 0,210, 2, 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,211, 2, + 2, 0,212, 2, 2, 0,213, 2, 7, 0,214, 2, 0, 0,215, 2,119, 0, 3, 0,109, 0,184, 2, 7, 0, 37, 0, 4, 0, 17, 0, +120, 0, 6, 0,109, 0,184, 2,121, 0,216, 2,122, 0,217, 2,123, 0,218, 2, 7, 0,219, 2, 4, 0, 17, 0,124, 0, 11, 0, +109, 0,184, 2, 52, 0,220, 2, 7, 0,221, 2, 4, 0,222, 2, 0, 0,215, 2, 7, 0,223, 2, 4, 0,224, 2, 32, 0,225, 2, + 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,125, 0, 10, 0,109, 0,184, 2, 32, 0,228, 2, 47, 0,229, 2, 4, 0, 90, 0, + 4, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,126, 0, 3, 0,109, 0,184, 2, + 7, 0,233, 2, 4, 0,234, 2,127, 0, 5, 0,109, 0,184, 2, 7, 0,235, 2, 0, 0,215, 2, 2, 0, 19, 0, 2, 0,236, 2, +128, 0, 8, 0,109, 0,184, 2, 32, 0,164, 0, 7, 0,235, 2, 7, 0,251, 0, 7, 0,106, 0, 0, 0,215, 2, 2, 0, 19, 0, + 2, 0, 17, 0,129, 0, 21, 0,109, 0,184, 2, 32, 0,237, 2, 0, 0,215, 2, 52, 0,220, 2, 32, 0,225, 2, 2, 0, 19, 0, + 2, 0, 37, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,243, 2, + 7, 0,244, 2, 4, 0,224, 2, 4, 0,227, 2, 0, 0,226, 2, 7, 0,245, 2, 7, 0,246, 2, 7, 0, 43, 0,130, 0, 7, 0, +109, 0,184, 2, 2, 0,247, 2, 2, 0,248, 2, 4, 0, 70, 0, 32, 0,164, 0, 7, 0,249, 2, 0, 0,215, 2,131, 0, 10, 0, +109, 0,184, 2, 32, 0,164, 0, 0, 0,250, 2, 7, 0,251, 2, 7, 0,252, 2, 7, 0,244, 2, 4, 0,253, 2, 4, 0,254, 2, + 7, 0,255, 2, 0, 0, 20, 0,132, 0, 1, 0,109, 0,184, 2,133, 0, 7, 0,109, 0,184, 2, 46, 0,134, 0,134, 0, 0, 3, +135, 0, 1, 3,136, 0, 2, 3,137, 0, 3, 3, 12, 0, 4, 3,138, 0, 13, 0,109, 0,184, 2, 84, 0, 5, 3, 84, 0, 6, 3, + 84, 0, 7, 3, 84, 0, 8, 3, 84, 0, 9, 3, 84, 0, 10, 3, 81, 0, 11, 3, 4, 0, 12, 3, 4, 0, 13, 3, 7, 0,219, 2, + 7, 0, 37, 0,139, 0, 14, 3,140, 0, 7, 0,109, 0,184, 2, 84, 0, 5, 3, 84, 0, 15, 3,141, 0, 16, 3,142, 0, 14, 3, + 4, 0, 17, 3, 4, 0, 12, 3,143, 0, 4, 0,109, 0,184, 2, 32, 0,164, 0, 4, 0, 18, 3, 4, 0, 37, 0,144, 0, 2, 0, + 4, 0, 19, 3, 7, 0, 36, 2,145, 0, 2, 0, 4, 0,125, 0, 4, 0, 20, 3,146, 0, 21, 0,109, 0,184, 2, 32, 0,164, 0, + 0, 0,215, 2, 2, 0, 21, 3, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 37, 0, 7, 0, 22, 3, 7, 0, 23, 3, 4, 0, 54, 0, + 4, 0, 24, 3,145, 0, 25, 3,144, 0, 26, 3, 4, 0, 27, 3, 4, 0, 28, 3, 4, 0, 29, 3, 4, 0, 20, 3, 7, 0, 30, 3, + 7, 0, 31, 3, 7, 0, 32, 3, 9, 0, 33, 3,147, 0, 8, 0,109, 0,184, 2,148, 0, 34, 3,141, 0, 16, 3, 4, 0, 35, 3, + 4, 0, 36, 3, 4, 0, 37, 3, 2, 0, 19, 0, 2, 0, 57, 0,149, 0, 8, 0,109, 0,184, 2, 32, 0, 45, 0, 2, 0,255, 0, + 2, 0, 19, 0, 2, 0,205, 2, 2, 0, 57, 0, 7, 0, 38, 3, 7, 0, 39, 3,150, 0, 5, 0,109, 0,184, 2, 4, 0, 40, 3, + 2, 0, 19, 0, 2, 0, 41, 3, 7, 0, 42, 3,151, 0, 7, 0,109, 0,184, 2, 84, 0, 43, 3, 4, 0, 44, 3, 0, 0, 45, 3, + 0, 0, 46, 3, 0, 0, 47, 3, 0, 0, 48, 3,152, 0, 3, 0,109, 0,184, 2,153, 0, 49, 3,137, 0, 3, 3,154, 0, 10, 0, +109, 0,184, 2, 32, 0, 50, 3, 32, 0, 51, 3, 0, 0, 52, 3, 7, 0, 53, 3, 2, 0, 54, 3, 2, 0, 55, 3, 0, 0, 56, 3, + 0, 0, 57, 3, 0, 0,190, 2,155, 0, 9, 0,109, 0,184, 2, 32, 0, 58, 3, 0, 0, 52, 3, 7, 0, 59, 3, 7, 0, 60, 3, + 0, 0, 69, 1, 0, 0,205, 2, 0, 0, 61, 3, 0, 0, 37, 0,156, 0, 1, 0,109, 0,184, 2,157, 0, 27, 0, 27, 0, 31, 0, + 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 62, 3, 2, 0, 19, 0, 2, 0, 63, 3, 2, 0, 64, 3, 2, 0, 65, 3, 2, 0, 70, 0, + 0, 0, 66, 3, 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 17, 0, 4, 0, 37, 0, 7, 0, 69, 3, 7, 0, 70, 3, 7, 0, 71, 3, + 7, 0, 72, 3, 7, 0, 73, 3, 7, 0, 74, 3, 34, 0, 75, 3, 36, 0, 80, 0, 38, 0, 66, 2, 86, 0,115, 2, 7, 0, 76, 3, + 7, 0, 77, 3,157, 0, 78, 3,158, 0, 3, 0,158, 0, 0, 0,158, 0, 1, 0, 0, 0, 20, 0, 71, 0, 3, 0, 7, 0, 79, 3, + 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0,159, 0, 80, 3, 2, 0, 17, 0, 2, 0, 81, 3, + 4, 0, 82, 3, 4, 0, 83, 3, 4, 0, 84, 3, 0, 0, 85, 3, 32, 0, 38, 0, 32, 0, 86, 3, 32, 0, 87, 3, 32, 0, 88, 3, + 32, 0, 89, 3, 36, 0, 80, 0, 77, 0, 65, 2, 71, 0, 6, 2,160, 0, 90, 3,160, 0, 91, 3,161, 0, 92, 3, 9, 0, 2, 0, +162, 0, 93, 3, 12, 0, 94, 3, 12, 0,109, 2, 12, 0, 25, 2, 12, 0, 95, 3, 12, 0, 96, 3, 4, 0, 69, 1, 4, 0, 97, 3, + 66, 0, 27, 2, 0, 0, 98, 3, 4, 0, 29, 2, 4, 0, 99, 3, 7, 0, 64, 1, 7, 0,100, 3, 7, 0,101, 3, 7, 0,172, 0, + 7, 0,102, 3, 7, 0, 65, 1, 7, 0,103, 3, 7, 0, 15, 2, 7, 0,104, 3, 7, 0,105, 3, 7, 0,106, 3, 7, 0,107, 3, + 7, 0,108, 3, 7, 0,109, 3, 7, 0,251, 2, 7, 0,110, 3, 7, 0,240, 0, 4, 0,111, 3, 2, 0, 19, 0, 2, 0,112, 3, + 2, 0,113, 3, 2, 0,114, 3, 2, 0,115, 3, 2, 0,116, 3, 2, 0,117, 3, 2, 0,118, 3, 2, 0,119, 3, 2, 0,120, 3, + 2, 0,121, 3, 2, 0,122, 3, 4, 0,123, 3, 4, 0,124, 3, 4, 0,125, 3, 4, 0,126, 3, 7, 0,127, 3, 7, 0,101, 2, + 7, 0,128, 3, 7, 0,129, 3, 7, 0,130, 3, 7, 0,131, 3, 7, 0,132, 3, 7, 0,215, 0, 7, 0,133, 3, 7, 0,134, 3, + 7, 0,135, 3, 7, 0,136, 3, 2, 0,137, 3, 0, 0,138, 3, 0, 0,139, 3, 0, 0,140, 3, 0, 0,141, 3, 7, 0,142, 3, + 7, 0,143, 3, 12, 0,144, 3, 12, 0,145, 3, 12, 0,146, 3, 12, 0,147, 3, 7, 0,148, 3, 2, 0,156, 2, 2, 0,149, 3, + 7, 0,138, 2, 4, 0,150, 3, 4, 0,151, 3,163, 0,152, 3, 2, 0,153, 3, 2, 0,247, 0, 7, 0,154, 3, 12, 0,155, 3, + 12, 0,156, 3, 12, 0,157, 3, 12, 0,158, 3,164, 0, 61, 1,165, 0,159, 3, 67, 0,160, 3, 2, 0,161, 3, 2, 0,162, 3, + 2, 0,163, 3, 2, 0,164, 3, 7, 0,130, 2, 2, 0,165, 3, 2, 0,166, 3,153, 0,167, 3,141, 0,168, 3,141, 0,169, 3, + 4, 0,170, 3, 4, 0,171, 3, 4, 0,172, 3, 4, 0, 70, 0, 12, 0,173, 3, 12, 0,174, 3, 12, 0,175, 3,166, 0, 14, 0, +166, 0, 0, 0,166, 0, 1, 0, 32, 0, 38, 0, 7, 0,251, 2, 7, 0, 66, 1, 7, 0,252, 2, 7, 0,244, 2, 0, 0, 20, 0, + 4, 0,253, 2, 4, 0,254, 2, 4, 0,176, 3, 2, 0, 17, 0, 2, 0,177, 3, 7, 0,255, 2,167, 0, 12, 0,167, 0, 0, 0, +167, 0, 1, 0, 32, 0, 45, 0, 4, 0,178, 3, 4, 0,156, 2, 4, 0,179, 3, 4, 0, 17, 0, 4, 0,180, 3, 7, 0, 66, 1, + 7, 0,181, 3, 7, 0,182, 3, 7, 0,154, 2,164, 0, 40, 0, 4, 0, 19, 0, 2, 0,183, 3, 2, 0,184, 3, 2, 0,244, 2, + 2, 0,185, 3, 2, 0,186, 3, 2, 0,187, 3, 2, 0,188, 3, 2, 0,189, 3, 7, 0,190, 3, 7, 0,191, 3, 7, 0,192, 3, + 7, 0,193, 3, 7, 0,194, 3, 7, 0,195, 3, 7, 0,196, 3, 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, + 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3, 7, 0,204, 3, 7, 0,205, 3, 7, 0, 37, 0, 7, 0,206, 3, 7, 0,207, 3, + 7, 0,208, 3, 7, 0,209, 3, 7, 0,210, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, + 52, 0,165, 0,168, 0,216, 3, 7, 0,217, 3, 4, 0,193, 2,169, 0, 5, 0, 67, 0,241, 1, 7, 0,218, 3, 7, 0,219, 3, + 2, 0, 19, 0, 2, 0,220, 3,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 0,221, 3, 4, 0,222, 3, 4, 0,223, 3, + 4, 0, 19, 0, 4, 0,224, 3, 9, 0,225, 3, 9, 0,226, 3,137, 0, 19, 0,137, 0, 0, 0,137, 0, 1, 0, 4, 0, 19, 0, + 4, 0,227, 3, 4, 0,228, 3, 4, 0,229, 3, 4, 0,230, 3, 4, 0,231, 3, 4, 0,232, 3, 4, 0,222, 3, 4, 0,156, 2, + 4, 0, 57, 0, 0, 0,233, 3, 0, 0,234, 3, 0, 0,235, 3, 0, 0,236, 3, 12, 0,237, 3,171, 0,238, 3, 9, 0,239, 3, +172, 0, 1, 0, 7, 0, 43, 2,163, 0, 30, 0, 4, 0, 19, 0, 7, 0,240, 3, 7, 0,241, 3, 7, 0,242, 3, 4, 0,243, 3, + 4, 0,244, 3, 4, 0,245, 3, 4, 0,246, 3, 7, 0,247, 3, 7, 0,248, 3, 7, 0,249, 3, 7, 0,250, 3, 7, 0,251, 3, + 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, 7, 0,255, 3, 7, 0, 0, 4, 7, 0, 1, 4, 7, 0, 2, 4, 7, 0, 3, 4, + 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, 7, 0, 8, 4, 4, 0, 9, 4, 4, 0, 10, 4, 7, 0, 11, 4, + 7, 0,133, 3,165, 0, 54, 0, 4, 0,222, 3, 4, 0, 12, 4,173, 0, 13, 4,174, 0, 14, 4, 0, 0, 37, 0, 0, 0, 15, 4, + 2, 0, 16, 4, 7, 0, 17, 4, 0, 0, 18, 4, 7, 0, 19, 4, 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, + 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 2, 0, 28, 4, 0, 0, 29, 4, 2, 0, 30, 4, 7, 0, 31, 4, + 7, 0, 32, 4, 0, 0, 33, 4, 4, 0,126, 0, 4, 0, 34, 4, 4, 0, 35, 4, 2, 0, 36, 4, 2, 0, 37, 4,172, 0, 38, 4, + 4, 0, 39, 4, 4, 0, 82, 0, 7, 0, 40, 4, 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, 2, 0, 44, 4, 2, 0, 45, 4, + 2, 0, 46, 4, 2, 0, 47, 4, 2, 0, 48, 4, 2, 0, 49, 4, 2, 0, 50, 4, 2, 0, 51, 4,175, 0, 52, 4, 7, 0, 53, 4, + 7, 0, 54, 4,137, 0, 55, 4, 12, 0, 4, 3,169, 0, 56, 4, 7, 0, 57, 4, 7, 0, 58, 4, 7, 0, 59, 4, 0, 0, 60, 4, +153, 0, 49, 0,152, 0, 61, 4, 2, 0, 17, 0, 2, 0, 62, 4, 2, 0, 63, 4, 2, 0, 64, 4, 7, 0, 65, 4, 2, 0, 66, 4, + 2, 0, 67, 4, 7, 0, 68, 4, 2, 0, 69, 4, 2, 0, 70, 4, 7, 0, 71, 4, 7, 0, 72, 4, 7, 0, 73, 4, 7, 0, 74, 4, + 7, 0, 75, 4, 7, 0, 76, 4, 4, 0, 77, 4, 7, 0, 78, 4, 7, 0, 79, 4, 7, 0, 80, 4, 80, 0, 81, 4, 80, 0, 82, 4, + 80, 0, 83, 4, 0, 0, 84, 4, 7, 0, 85, 4, 7, 0, 86, 4, 36, 0, 80, 0, 2, 0, 87, 4, 0, 0, 88, 4, 0, 0, 89, 4, + 7, 0, 90, 4, 4, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, 4, 0, 94, 4, 4, 0, 19, 0, 7, 0, 95, 4, 7, 0, 96, 4, + 7, 0, 97, 4, 84, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, + 7, 0,105, 4, 4, 0,106, 4,176, 0, 76, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,175, 0, 2, 0, 70, 1, 2, 0,104, 1, + 2, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, 7, 0,111, 4, 7, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, + 7, 0,115, 4, 7, 0,162, 1, 7, 0,164, 1, 7, 0,163, 1, 7, 0,116, 4, 4, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4, + 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 2, 0,125, 4, 2, 0, 69, 1, 2, 0,126, 4, + 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, 2, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 7, 0,134, 4, + 7, 0,135, 4, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, + 7, 0,143, 4, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, 2, 0,147, 4, 7, 0,148, 4, 7, 0,149, 4, 7, 0,150, 4, + 7, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, + 7, 0,159, 4, 7, 0,160, 4, 2, 0,161, 4, 2, 0,162, 4, 2, 0,163, 4, 2, 0,164, 4, 2, 0,165, 4, 2, 0, 19, 0, + 7, 0,166, 4, 7, 0,167, 4, 36, 0, 80, 0, 51, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0,177, 0, 8, 0, +177, 0, 0, 0,177, 0, 1, 0, 4, 0,111, 3, 4, 0,168, 4, 4, 0, 19, 0, 2, 0,169, 4, 2, 0,170, 4, 32, 0,164, 0, +178, 0, 13, 0, 9, 0,171, 4, 9, 0,172, 4, 4, 0,173, 4, 4, 0,174, 4, 4, 0,175, 4, 4, 0,176, 4, 4, 0,177, 4, + 4, 0,178, 4, 4, 0,179, 4, 4, 0,180, 4, 4, 0,181, 4, 4, 0, 37, 0, 0, 0,182, 4,179, 0, 5, 0, 9, 0,183, 4, + 9, 0,184, 4, 4, 0,185, 4, 4, 0, 70, 0, 0, 0,186, 4,180, 0, 10, 0, 4, 0,187, 4, 4, 0,188, 4, 4, 0,189, 4, + 4, 0,190, 4, 4, 0,191, 4, 4, 0,192, 4, 4, 0,193, 4, 4, 0,194, 4, 4, 0,195, 4, 4, 0,196, 4,181, 0, 15, 0, + 4, 0, 17, 0, 4, 0,189, 4, 4, 0,197, 4, 4, 0,198, 4, 4, 0,199, 4, 4, 0,200, 4, 7, 0,201, 4, 4, 0,202, 4, + 4, 0, 90, 0, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, 26, 0, 30, 0,182, 0, 7, 0, + 4, 0,208, 4, 7, 0,209, 4, 7, 0,210, 4, 7, 0,211, 4, 4, 0,212, 4, 2, 0, 19, 0, 2, 0, 37, 0,183, 0, 11, 0, +183, 0, 0, 0,183, 0, 1, 0, 0, 0, 20, 0, 66, 0,213, 4, 67, 0,214, 4, 4, 0,111, 3, 4, 0,215, 4, 4, 0,216, 4, + 4, 0, 37, 0, 4, 0,217, 4, 4, 0,218, 4,184, 0,135, 0,178, 0,219, 4,179, 0,220, 4,180, 0,221, 4,181, 0,222, 4, + 4, 0, 17, 3, 4, 0,126, 0, 4, 0, 34, 4, 4, 0,223, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 2, 0, 19, 0, + 2, 0,227, 4, 7, 0,101, 2, 7, 0,228, 4, 7, 0,229, 4, 7, 0,230, 4, 7, 0,231, 4, 7, 0,232, 4, 2, 0,233, 4, + 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,246, 0, 2, 0,237, 4, 2, 0,238, 4, 2, 0,239, 4, 2, 0,240, 4, + 2, 0,241, 4, 2, 0, 91, 1, 2, 0,106, 0, 2, 0,242, 4, 2, 0,243, 4, 2, 0,244, 4, 2, 0,245, 4, 2, 0,246, 4, + 2, 0,247, 4, 2, 0,248, 4, 2, 0,249, 4, 2, 0,250, 4, 2, 0, 92, 1, 2, 0,251, 4, 2, 0,252, 4, 2, 0,253, 4, + 2, 0,254, 4, 4, 0,255, 4, 4, 0, 69, 1, 4, 0, 0, 5, 2, 0, 1, 5, 2, 0, 2, 5, 2, 0, 3, 5, 2, 0,121, 1, + 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 24, 0, 8, 5, 24, 0, 9, 5, 23, 0, 10, 5, 12, 0, 11, 5, + 2, 0, 12, 5, 2, 0, 37, 0, 7, 0, 13, 5, 7, 0, 14, 5, 7, 0, 15, 5, 7, 0, 16, 5, 4, 0, 17, 5, 7, 0, 18, 5, + 7, 0, 19, 5, 7, 0, 20, 5, 7, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, + 2, 0, 27, 5, 7, 0, 28, 5, 7, 0, 29, 5, 7, 0, 30, 5, 2, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 2, 0, 34, 5, + 2, 0, 35, 5, 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, 2, 0, 39, 5, 2, 0, 40, 5, 4, 0, 41, 5, 4, 0, 42, 5, + 4, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 7, 0, 46, 5, 4, 0, 47, 5, 4, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5, + 7, 0, 51, 5, 7, 0, 52, 5, 7, 0, 53, 5, 7, 0, 54, 5, 7, 0, 55, 5, 7, 0, 56, 5, 7, 0, 57, 5, 7, 0, 58, 5, + 7, 0, 59, 5, 0, 0, 60, 5, 0, 0, 61, 5, 4, 0, 62, 5, 2, 0, 63, 5, 2, 0,238, 1, 0, 0, 64, 5, 7, 0, 65, 5, + 7, 0, 66, 5, 4, 0, 67, 5, 4, 0, 68, 5, 7, 0, 69, 5, 7, 0, 70, 5, 2, 0, 71, 5, 2, 0, 72, 5, 7, 0, 73, 5, + 2, 0, 74, 5, 2, 0, 75, 5, 4, 0, 76, 5, 2, 0, 77, 5, 2, 0, 78, 5, 2, 0, 79, 5, 2, 0, 80, 5, 7, 0, 81, 5, + 7, 0, 70, 0, 42, 0, 82, 5, 0, 0, 83, 5,185, 0, 9, 0,185, 0, 0, 0,185, 0, 1, 0, 0, 0, 20, 0, 2, 0, 84, 5, + 2, 0, 85, 5, 2, 0, 86, 5, 2, 0, 43, 0, 7, 0, 87, 5, 7, 0, 70, 0,186, 0, 7, 0, 2, 0,210, 2, 2, 0, 69, 1, + 2, 0,109, 0, 2, 0, 88, 5, 7, 0, 89, 5, 7, 0, 70, 0, 42, 0, 90, 5,187, 0, 5, 0, 7, 0, 91, 5, 0, 0, 17, 0, + 0, 0, 43, 0, 0, 0, 70, 0, 0, 0,238, 1,188, 0, 26, 0, 7, 0,123, 4, 7, 0,124, 4, 2, 0, 69, 1, 2, 0, 19, 0, + 2, 0, 92, 5, 2, 0,136, 1, 2, 0,126, 4, 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, 2, 0,131, 4, +187, 0, 93, 5, 2, 0,233, 4, 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,246, 0, 2, 0,237, 4, 2, 0, 94, 5, + 2, 0,238, 4,186, 0, 95, 5, 2, 0, 96, 5, 2, 0,240, 4, 2, 0,243, 4, 2, 0,244, 4,189, 0, 5, 0,189, 0, 0, 0, +189, 0, 1, 0, 4, 0,221, 3, 0, 0,233, 3, 4, 0, 19, 0,190, 0, 6, 0,191, 0, 97, 5, 4, 0, 98, 5, 4, 0, 99, 5, + 9, 0,100, 5, 0, 0,101, 5, 4, 0, 37, 0,192, 0, 6, 0,190, 0,102, 5, 2, 0, 19, 0, 2, 0,103, 5, 2, 0,104, 5, + 2, 0,105, 5, 9, 0,106, 5,193, 0, 4, 0, 2, 0,106, 0, 2, 0,221, 2, 2, 0,227, 3, 2, 0,107, 5,194, 0, 14, 0, + 2, 0, 19, 0, 2, 0,108, 5, 2, 0,109, 5, 2, 0,110, 5,193, 0,111, 5, 9, 0,106, 5, 7, 0,112, 5, 7, 0, 57, 0, + 4, 0,113, 5, 4, 0,114, 5, 4, 0,115, 5, 4, 0,116, 5, 46, 0,134, 0, 32, 0,164, 0,195, 0, 4, 0,195, 0, 0, 0, +195, 0, 1, 0, 0, 0,117, 5, 7, 0,118, 5,196, 0, 6, 0,190, 0,102, 5, 7, 0,119, 5, 4, 0, 90, 0, 0, 0,120, 5, + 0, 0,121, 5, 0, 0,190, 2,197, 0, 7, 0,190, 0,102, 5, 2, 0, 69, 1, 2, 0, 19, 0, 4, 0, 36, 0, 4, 0,122, 5, + 86, 0,123, 5, 9, 0,106, 5,198, 0, 74, 0,197, 0,124, 5,197, 0,125, 5,196, 0, 80, 3, 7, 0,126, 5, 2, 0,127, 5, + 2, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, 2, 0,227, 3, 2, 0,131, 5, 7, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5, + 2, 0,135, 5, 2, 0,113, 5, 2, 0,136, 5, 2, 0,137, 5, 2, 0,138, 5, 2, 0,139, 5, 7, 0,140, 5, 7, 0,141, 5, + 7, 0,142, 5, 2, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5, 2, 0,146, 5, 2, 0,147, 5, 2, 0,148, 5, 2, 0,149, 5, +192, 0,150, 5,194, 0,151, 5, 7, 0,152, 5, 7, 0,153, 5, 7, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 0, 0,157, 5, + 0, 0,158, 5, 0, 0,159, 5, 0, 0,160, 5, 0, 0,161, 5, 0, 0,162, 5, 2, 0,163, 5, 7, 0,164, 5, 7, 0,165, 5, + 7, 0,166, 5, 7, 0,167, 5, 7, 0,168, 5, 7, 0,169, 5, 7, 0,170, 5, 7, 0,171, 5, 7, 0,172, 5, 7, 0,173, 5, + 2, 0,174, 5, 0, 0,175, 5, 0, 0,176, 5, 0, 0,177, 5, 0, 0,178, 5, 32, 0,179, 5, 0, 0,180, 5, 0, 0,181, 5, + 0, 0,182, 5, 0, 0,183, 5, 0, 0,184, 5, 0, 0,185, 5, 0, 0,186, 5, 0, 0,187, 5, 2, 0,188, 5, 2, 0,189, 5, + 2, 0,190, 5, 2, 0,191, 5, 2, 0,192, 5, 4, 0,193, 5, 4, 0,194, 5,199, 0, 8, 0, 4, 0,195, 5, 4, 0,196, 5, + 4, 0,197, 5, 4, 0,198, 5, 4, 0,199, 5, 4, 0,200, 5, 4, 0, 54, 0, 4, 0,125, 2,200, 0, 3, 0, 7, 0,201, 5, + 2, 0,202, 5, 2, 0, 19, 0,201, 0, 2, 0, 7, 0,203, 5, 4, 0, 19, 0, 46, 0, 38, 0, 27, 0, 31, 0, 39, 0, 75, 0, + 32, 0,204, 5,176, 0,205, 5, 46, 0,206, 5, 47, 0,238, 0, 12, 0,207, 5,177, 0,208, 5, 32, 0,209, 5, 7, 0,210, 5, + 7, 0,211, 5, 7, 0,212, 5, 7, 0,213, 5, 4, 0,111, 3, 2, 0, 19, 0, 2, 0, 63, 1, 60, 0, 58, 1,202, 0,214, 5, +198, 0,215, 5,203, 0,216, 5,184, 0,182, 0,182, 0,217, 5, 12, 0,100, 0, 12, 0,218, 5, 12, 0,219, 5,204, 0,220, 5, + 2, 0,221, 5, 2, 0,222, 5, 2, 0,247, 0, 2, 0,223, 5, 4, 0,224, 5, 4, 0,225, 5, 12, 0,226, 5,187, 0, 93, 5, +188, 0,227, 5,200, 0,228, 5,162, 0, 93, 3,201, 0,229, 5,205, 0, 6, 0, 47, 0,238, 0, 45, 0, 57, 1, 7, 0, 89, 2, + 7, 0, 90, 2, 7, 0,106, 0, 7, 0,230, 5,206, 0, 36, 0, 7, 0,231, 5, 7, 0,232, 5, 7, 0,233, 5, 7, 0,234, 5, + 7, 0,235, 5, 7, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, 7, 0,239, 5, 7, 0, 76, 1, 7, 0,240, 5, 7, 0,241, 5, + 7, 0,242, 5, 7, 0,243, 5, 7, 0,171, 0, 2, 0,244, 5, 2, 0,245, 5, 2, 0, 70, 2, 2, 0,246, 5, 2, 0,247, 5, + 2, 0,248, 5, 2, 0,249, 5, 7, 0,250, 5, 7, 0,251, 5, 71, 0,252, 5,162, 0, 93, 3,206, 0,253, 5,207, 0,254, 5, +208, 0,255, 5,209, 0, 0, 6,210, 0, 1, 6,211, 0, 2, 6, 7, 0, 3, 6, 2, 0, 4, 6, 2, 0, 5, 6, 4, 0,238, 1, +212, 0, 54, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 7, 0,239, 5, + 7, 0, 76, 1, 7, 0, 43, 0, 4, 0, 10, 6, 2, 0,248, 5, 2, 0,249, 5, 32, 0,204, 5, 32, 0, 11, 6,205, 0, 12, 6, +212, 0,253, 5, 0, 0, 13, 6, 4, 0,111, 3, 4, 0, 14, 6, 2, 0, 15, 6, 2, 0, 70, 0, 2, 0, 16, 6, 2, 0, 17, 6, + 2, 0,238, 1, 2, 0, 19, 0, 2, 0, 28, 2, 2, 0, 18, 6, 7, 0,112, 0, 7, 0, 19, 6, 7, 0, 20, 6, 7, 0, 21, 6, + 7, 0, 22, 6, 7, 0, 23, 6, 7, 0,171, 0, 7, 0,210, 5, 2, 0, 24, 6, 2, 0,121, 1, 2, 0, 25, 6, 2, 0, 26, 6, + 2, 0, 27, 6, 2, 0, 28, 6, 2, 0, 29, 6, 2, 0, 30, 6, 2, 0, 31, 6, 2, 0, 32, 6, 4, 0, 33, 6, 12, 0, 34, 6, + 2, 0, 35, 6, 2, 0,139, 2, 2, 0, 36, 6, 0, 0, 37, 6, 0, 0, 38, 6, 9, 0, 39, 6,162, 0, 93, 3,214, 0, 25, 0, + 24, 0, 36, 0, 24, 0, 64, 0, 23, 0, 40, 6, 23, 0, 41, 6, 23, 0, 42, 6, 7, 0, 43, 6, 7, 0, 44, 6, 7, 0, 45, 6, + 7, 0, 46, 6, 2, 0, 47, 6, 2, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 19, 0, 2, 0, 52, 6, + 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 17, 6, 7, 0, 57, 6, 7, 0, 58, 6, 4, 0, 59, 6, + 4, 0, 60, 6,213, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, +215, 0, 8, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,216, 0, 61, 6, + 46, 0,134, 0,217, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, +214, 0, 62, 6,218, 0, 63, 6, 12, 0, 64, 6, 2, 0, 69, 1, 2, 0, 65, 6, 4, 0, 19, 0, 7, 0, 66, 6, 4, 0, 17, 6, +219, 0, 20, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,207, 0,254, 5, +214, 0, 62, 6, 2, 0, 67, 6, 2, 0, 68, 6, 2, 0, 69, 6, 2, 0, 70, 6, 2, 0, 52, 6, 2, 0, 71, 6, 0, 0, 19, 0, + 0, 0,136, 1, 9, 0, 65, 2, 4, 0, 72, 6, 4, 0, 73, 6, 27, 0, 74, 6,220, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, 7, 0, 89, 2, 7, 0, 90, 2, 2, 0, 67, 6, + 2, 0, 75, 6, 2, 0, 76, 6, 2, 0, 77, 6, 4, 0, 19, 0, 7, 0, 78, 6,162, 0, 93, 3,221, 0, 16, 0, 0, 0, 79, 6, + 0, 0, 80, 6, 0, 0, 81, 6, 0, 0, 82, 6, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 83, 6, 2, 0, 84, 6, 2, 0,181, 1, + 2, 0, 85, 6, 4, 0, 86, 6, 4, 0, 87, 6, 2, 0, 88, 6, 2, 0, 89, 6, 0, 0, 90, 6, 0, 0, 91, 6,222, 0, 16, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 4, 0, 37, 0,221, 0, 92, 6,223, 0, 93, 6, 12, 0, 94, 6, + 12, 0, 95, 6,224, 0, 96, 6,211, 0, 97, 6,225, 0, 98, 6, 2, 0, 99, 6, 2, 0,100, 6, 2, 0,101, 6, 2, 0, 70, 0, +226, 0, 17, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, + 12, 0,102, 6,227, 0,103, 6, 0, 0,104, 6,228, 0,105, 6, 4, 0,106, 6, 4, 0,107, 6, 2, 0, 19, 0, 2, 0,108, 6, + 2, 0,109, 6, 2, 0, 37, 0,229, 0, 29, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, + 2, 0, 9, 6, 47, 0,229, 2, 45, 0, 57, 1, 63, 0,110, 6, 2, 0,133, 0, 2, 0,111, 6, 2, 0, 70, 0, 2, 0,112, 6, + 4, 0, 19, 0, 2, 0,113, 6, 2, 0,114, 6, 2, 0,115, 6, 2, 0,238, 1, 0, 0,116, 6, 0, 0,117, 6, 0, 0,118, 6, + 0, 0, 17, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 78, 6, 7, 0,121, 1, 7, 0,119, 6, 7, 0,120, 6,162, 0, 93, 3, +230, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 65, 6, + 2, 0, 19, 0, 4, 0, 37, 0,218, 0, 63, 6,214, 0, 62, 6,231, 0, 27, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, + 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 42, 0,121, 6, 4, 0,122, 6, 4, 0,123, 6, 2, 0, 90, 0, 2, 0,133, 0, + 2, 0,124, 6, 0, 0,125, 6, 0, 0,126, 6, 4, 0,127, 6, 4, 0,128, 6, 4, 0,129, 6, 4, 0,130, 6, 2, 0,131, 6, + 2, 0,132, 6, 7, 0,133, 6, 23, 0,134, 6, 23, 0,135, 6, 4, 0,136, 6, 4, 0,137, 6, 0, 0,138, 6, 0, 0,139, 6, +232, 0, 10, 0, 27, 0, 31, 0, 9, 0,140, 6, 9, 0,141, 6, 9, 0,142, 6, 9, 0,143, 6, 9, 0,144, 6, 4, 0, 90, 0, + 4, 0,145, 6, 0, 0,146, 6, 0, 0,147, 6,233, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, + 7, 0, 8, 6,232, 0,148, 6, 2, 0, 90, 0, 2, 0,133, 0, 4, 0, 43, 0, 9, 0,149, 6,234, 0, 8, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6,214, 0, 62, 6, 4, 0, 19, 0, 4, 0,150, 6,235, 0, 23, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, 27, 0,151, 6, + 27, 0, 81, 0, 2, 0, 19, 0, 2, 0,133, 0, 7, 0,152, 6, 9, 0,153, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,154, 6, + 7, 0,155, 6, 60, 0, 58, 1, 60, 0,156, 6, 4, 0,157, 6, 2, 0,158, 6, 2, 0, 37, 0,162, 0, 93, 3,236, 0, 10, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 19, 0, 2, 0,120, 3, + 4, 0, 37, 0,162, 0, 93, 3,237, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, + 2, 0, 9, 6,214, 0, 62, 6,223, 0, 93, 6, 0, 0, 79, 6, 0, 0, 80, 6, 0, 0, 81, 6, 2, 0, 17, 0, 2, 0, 89, 6, + 2, 0, 19, 0, 2, 0, 83, 6, 9, 0,153, 6, 4, 0, 86, 6, 4, 0,159, 6, 4, 0,160, 6, 4, 0, 87, 6, 23, 0,161, 6, + 23, 0,162, 6, 7, 0,163, 6, 7, 0,164, 6, 7, 0,165, 6, 7, 0,152, 6, 2, 0,166, 6, 2, 0,237, 0, 2, 0,181, 1, + 2, 0, 85, 6, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0,167, 6, 2, 0,168, 6, 9, 0,169, 6, 9, 0,170, 6, 9, 0,171, 6, + 9, 0,172, 6, 9, 0,173, 6, 2, 0,174, 6, 0, 0, 91, 6, 57, 0,175, 6,238, 0, 7, 0,238, 0, 0, 0,238, 0, 1, 0, + 4, 0,176, 6, 4, 0, 23, 0, 0, 0, 84, 0, 4, 0,177, 6, 4, 0, 17, 0,239, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 4, 0, 17, 0, 4, 0,178, 6, 4, 0, 19, 0, 4, 0,124, 6, + 12, 0,179, 6, 12, 0,180, 6, 0, 0,181, 6, 0, 0,182, 6,240, 0, 5, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, + 4, 0, 7, 6, 4, 0, 37, 0,241, 0, 7, 0,241, 0, 0, 0,241, 0, 1, 0, 0, 0,183, 6, 2, 0,184, 6, 2, 0,185, 6, + 2, 0,186, 6, 2, 0, 37, 0,242, 0, 12, 0, 2, 0,185, 6, 2, 0,187, 6, 2, 0,188, 6, 0, 0,190, 2, 2, 0,189, 6, + 2, 0,190, 6, 2, 0,191, 6, 2, 0,192, 6, 2, 0,193, 6, 2, 0, 52, 6, 7, 0,194, 6, 7, 0,195, 6,243, 0, 18, 0, +243, 0, 0, 0,243, 0, 1, 0, 0, 0,233, 3,242, 0,196, 6,242, 0,197, 6,242, 0,198, 6,242, 0,199, 6, 7, 0,200, 6, + 2, 0,201, 6, 2, 0,202, 6, 2, 0,203, 6, 2, 0,204, 6, 2, 0,205, 6, 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, + 2, 0,209, 6, 2, 0,210, 6,244, 0, 10, 0, 0, 0,211, 6, 0, 0,212, 6, 0, 0,213, 6, 0, 0,214, 6, 0, 0,215, 6, + 0, 0,216, 6, 2, 0,217, 6, 2, 0,218, 6, 2, 0,219, 6, 2, 0, 37, 0,245, 0, 8, 0, 0, 0,220, 6, 0, 0,221, 6, + 0, 0,222, 6, 0, 0,223, 6, 0, 0,224, 6, 0, 0,225, 6, 7, 0,230, 5, 7, 0, 37, 0,246, 0, 17, 0,244, 0,226, 6, +244, 0,227, 6,244, 0,228, 6,244, 0,229, 6,244, 0,230, 6,244, 0,231, 6,244, 0,232, 6,244, 0,233, 6,244, 0,234, 6, +244, 0,235, 6,244, 0,236, 6,244, 0,237, 6,244, 0,238, 6,244, 0,239, 6,244, 0,240, 6,245, 0,241, 6, 0, 0,242, 6, +247, 0, 71, 0, 0, 0,243, 6, 0, 0,244, 6, 0, 0,215, 6, 0, 0,245, 6, 0, 0,246, 6, 0, 0,247, 6, 0, 0,248, 6, 0, 0,249, 6, 0, 0,250, 6, 0, 0,251, 6, 0, 0,252, 6, 0, 0,253, 6, 0, 0,254, 6, 0, 0,255, 6, 0, 0, 0, 7, 0, 0, 1, 7, 0, 0, 2, 7, 0, 0, 3, 7, 0, 0, 4, 7, 0, 0, 5, 7, 0, 0, 6, 7, 0, 0, 7, 7, 0, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7, 0, 0, 11, 7, 0, 0, 12, 7, 0, 0, 13, 7, 0, 0, 14, 7, 0, 0, 15, 7, 0, 0, 16, 7, 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, 0, 0, 21, 7, 0, 0, 22, 7, 0, 0, 23, 7, 0, 0, 24, 7, 0, 0, 25, 7, 0, 0, 26, 7, 0, 0, 27, 7, 0, 0, 28, 7, 0, 0, 29, 7, 0, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7, 0, 0, 33, 7, 0, 0, 34, 7, 0, 0, 35, 7, 0, 0, 36, 7, 0, 0, 37, 7, 0, 0, 38, 7, 0, 0, 39, 7, 0, 0, 40, 7, - 0, 0, 92, 0,247, 0, 5, 0, 0, 0, 41, 7, 0, 0,252, 6, 0, 0,254, 6, 2, 0, 19, 0, 2, 0, 37, 0,248, 0, 24, 0, -248, 0, 0, 0,248, 0, 1, 0, 0, 0, 20, 0,245, 0, 42, 7,246, 0, 43, 7,246, 0, 44, 7,246, 0, 45, 7,246, 0, 46, 7, -246, 0, 47, 7,246, 0, 48, 7,246, 0, 49, 7,246, 0, 50, 7,246, 0, 51, 7,246, 0, 52, 7,246, 0, 53, 7,246, 0, 54, 7, -246, 0, 55, 7,246, 0, 56, 7,246, 0, 57, 7,246, 0, 58, 7,246, 0, 59, 7,247, 0, 60, 7, 4, 0, 61, 7, 4, 0, 37, 0, -249, 0, 5, 0, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,138, 2, 7, 0, 62, 7, 7, 0, 43, 2,250, 0, 73, 0, 4, 0, 19, 0, - 4, 0, 63, 7, 4, 0, 64, 7, 0, 0, 65, 7, 0, 0, 66, 7, 0, 0, 67, 7, 0, 0, 68, 7, 0, 0, 69, 7, 0, 0, 70, 7, - 0, 0, 71, 7, 0, 0, 72, 7, 0, 0, 73, 7, 2, 0, 74, 7, 2, 0, 37, 0, 4, 0, 75, 7, 4, 0, 76, 7, 4, 0, 77, 7, - 4, 0, 78, 7, 2, 0, 79, 7, 2, 0, 80, 7, 4, 0, 81, 7, 4, 0, 82, 7, 4, 0, 83, 7, 4, 0, 84, 7, 4, 0, 85, 7, - 4, 0,163, 6, 4, 0, 86, 7, 2, 0, 87, 7, 2, 0, 88, 7, 2, 0, 89, 7, 2, 0, 90, 7, 12, 0, 91, 7, 12, 0, 92, 7, - 12, 0, 93, 7, 12, 0, 94, 7, 0, 0, 95, 7, 2, 0, 96, 7, 2, 0, 97, 7, 2, 0, 98, 7, 2, 0, 99, 7, 2, 0,100, 7, - 2, 0,101, 7, 2, 0,102, 7, 2, 0,103, 7,249, 0,104, 7, 2, 0,105, 7, 2, 0,106, 7, 2, 0,107, 7, 2, 0,108, 7, - 2, 0,109, 7, 2, 0,110, 7, 2, 0,111, 7, 2, 0,112, 7, 4, 0,113, 7, 4, 0,114, 7, 2, 0,115, 7, 2, 0,116, 7, - 2, 0,117, 7, 2, 0,118, 7, 2, 0,119, 7, 2, 0,120, 7, 2, 0,121, 7, 2, 0,122, 7, 2, 0,123, 7, 2, 0,124, 7, - 2, 0,125, 7, 2, 0,126, 7, 0, 0,127, 7, 0, 0,128, 7, 7, 0,129, 7, 2, 0,140, 5, 2, 0,141, 5, 55, 0,130, 7, -215, 0, 21, 0, 27, 0, 31, 0, 12, 0,131, 7, 12, 0,132, 7, 12, 0,133, 7, 12, 0,246, 5, 46, 0,134, 0, 46, 0,134, 7, - 2, 0,135, 7, 2, 0,136, 7, 2, 0,137, 7, 2, 0,138, 7, 2, 0,139, 7, 2, 0,140, 7, 2, 0,141, 7, 2, 0, 37, 0, - 2, 0,142, 7, 2, 0,143, 7, 4, 0, 70, 0,210, 0,144, 7, 9, 0,145, 7, 2, 0,146, 7,251, 0, 5, 0,251, 0, 0, 0, -251, 0, 1, 0,251, 0,147, 7, 13, 0,148, 7, 4, 0, 19, 0,252, 0, 7, 0,252, 0, 0, 0,252, 0, 1, 0,251, 0,149, 7, -251, 0,150, 7, 2, 0,248, 4, 2, 0, 19, 0, 4, 0, 37, 0,253, 0, 25, 0,253, 0, 0, 0,253, 0, 1, 0,254, 0,151, 7, -255, 0, 82, 6, 0, 0,152, 7, 0, 0,153, 7, 0, 0,154, 7, 2, 0,155, 7, 2, 0,156, 7, 2, 0,157, 7, 2, 0,158, 7, - 2, 0,159, 7, 2, 0, 37, 0, 2, 0, 19, 0, 2, 0,160, 7, 2, 0,161, 7, 2, 0,162, 7, 4, 0,163, 7,253, 0,164, 7, - 9, 0,165, 7, 4, 0,166, 7, 4, 0,167, 7, 4, 0,168, 7, 4, 0,169, 7, 0, 0,170, 7, 0, 1, 22, 0, 0, 1, 0, 0, - 0, 1, 1, 0,251, 0,149, 7,251, 0,150, 7,251, 0,171, 7,251, 0,172, 7,215, 0,173, 7, 23, 0, 52, 0, 0, 0,247, 5, - 0, 0,174, 7, 2, 0, 37, 6, 2, 0, 38, 6, 2, 0,175, 7, 2, 0, 37, 0, 2, 0,138, 7, 2, 0,161, 6, 2, 0, 19, 0, - 1, 1,151, 7, 12, 0,176, 7, 12, 0,246, 5, 12, 0,177, 7, 12, 0,178, 7, 2, 1, 21, 0, 2, 1, 0, 0, 2, 1, 1, 0, -213, 0, 46, 6, 23, 0,179, 7, 23, 0,180, 7, 2, 0, 37, 6, 2, 0, 38, 6, 2, 0,181, 7, 2, 0,182, 7, 2, 0,183, 7, - 2, 0, 19, 0, 7, 0, 85, 2, 2, 0,137, 7, 2, 0,141, 7, 4, 0, 43, 0, 3, 1,151, 7, 12, 0,184, 7, 12, 0,185, 7, - 12, 0,177, 7, 0, 0,186, 7, 9, 0,187, 7, 4, 1, 12, 0, 0, 0,188, 7, 2, 0,189, 7, 2, 0,190, 7, 2, 0,191, 7, - 2, 0,192, 7, 2, 0,235, 4, 2, 0,230, 4,215, 0,193, 7, 46, 0,194, 7, 4, 0,195, 7, 4, 0,196, 7, 0, 0, 35, 0, - 5, 1, 1, 0, 0, 0,197, 7, 6, 1, 8, 0, 57, 0,198, 7, 57, 0,199, 7, 6, 1,200, 7, 6, 1,201, 7, 6, 1,202, 7, - 2, 0,129, 0, 2, 0, 19, 0, 4, 0,203, 7, 7, 1, 4, 0, 4, 0,106, 6, 4, 0,204, 7, 4, 0,111, 6, 4, 0,205, 7, - 8, 1, 2, 0, 4, 0,206, 7, 4, 0,207, 7, 9, 1, 7, 0, 7, 0,208, 7, 7, 0,209, 7, 7, 0,210, 7, 4, 0, 19, 0, - 4, 0, 37, 0, 7, 0,114, 4, 7, 0,211, 7, 10, 1, 6, 0, 0, 0,212, 7, 0, 0, 65, 6, 49, 0,137, 0, 2, 0,106, 0, - 2, 0,234, 4, 4, 0, 37, 0, 11, 1, 21, 0, 11, 1, 0, 0, 11, 1, 1, 0, 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, - 4, 0,213, 7, 4, 0,214, 7, 4, 0,215, 7, 5, 1,216, 7, 0, 0,212, 7, 4, 0,217, 7, 4, 0,218, 7, 10, 1, 87, 3, - 7, 1,219, 7, 8, 1,220, 7, 9, 1,221, 7, 6, 1,222, 7, 6, 1,223, 7, 6, 1,224, 7, 57, 0,225, 7, 57, 0,226, 7, - 12, 1, 12, 0, 0, 0, 5, 2, 9, 0,223, 0, 0, 0,224, 0, 4, 0,227, 0, 4, 0,235, 0, 9, 0,228, 0, 7, 0,230, 0, - 7, 0,231, 0, 9, 0,227, 7, 9, 0,228, 7, 9, 0,232, 0, 9, 0,234, 0, 13, 1, 43, 0, 13, 1, 0, 0, 13, 1, 1, 0, - 9, 0,229, 7, 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0, 4, 0, 23, 0, 4, 0, 88, 0, 4, 0,230, 7, - 4, 0,231, 7, 4, 0,214, 7, 4, 0,215, 7, 4, 0,232, 7, 4, 0,246, 0, 4, 0,233, 7, 4, 0,234, 7, 7, 0,106, 5, - 7, 0,235, 7, 4, 0,126, 0, 4, 0,236, 7, 11, 1,237, 7, 36, 0, 80, 0, 46, 0,134, 0, 49, 0,137, 0, 7, 0,238, 7, - 7, 0,239, 7, 12, 1, 59, 1, 13, 1,240, 7, 13, 1,241, 7, 13, 1,242, 7, 12, 0,243, 7, 14, 1,244, 7, 15, 1,245, 7, - 7, 0,246, 7, 7, 0,247, 7, 4, 0,248, 7, 7, 0,249, 7, 9, 0,250, 7, 4, 0,251, 7, 4, 0,252, 7, 4, 0,253, 7, - 7, 0,254, 7, 16, 1, 4, 0, 16, 1, 0, 0, 16, 1, 1, 0, 12, 0,255, 7, 13, 1, 0, 8,201, 0, 6, 0, 12, 0, 1, 8, - 12, 0,243, 7, 12, 0, 2, 8, 13, 1, 3, 8, 0, 0, 4, 8, 0, 0, 5, 8, 17, 1, 4, 0, 7, 0, 6, 8, 7, 0,109, 0, - 2, 0, 7, 8, 2, 0, 8, 8, 18, 1, 6, 0, 7, 0, 9, 8, 7, 0, 10, 8, 7, 0, 11, 8, 7, 0, 12, 8, 4, 0, 13, 8, - 4, 0, 14, 8, 19, 1, 12, 0, 7, 0, 15, 8, 7, 0, 16, 8, 7, 0, 17, 8, 7, 0, 18, 8, 7, 0, 19, 8, 7, 0, 20, 8, - 7, 0, 21, 8, 7, 0, 22, 8, 7, 0, 23, 8, 7, 0, 24, 8, 4, 0,233, 2, 4, 0, 25, 8, 20, 1, 2, 0, 7, 0, 74, 5, - 7, 0, 37, 0, 21, 1, 5, 0, 7, 0, 26, 8, 7, 0, 27, 8, 4, 0, 90, 0, 4, 0,191, 2, 4, 0, 28, 8, 22, 1, 6, 0, - 22, 1, 0, 0, 22, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 29, 8, 2, 0, 57, 0, 23, 1, 8, 0, 23, 1, 0, 0, - 23, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 29, 8, 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,126, 0, 24, 1, 45, 0, - 24, 1, 0, 0, 24, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 29, 8, 2, 0,242, 0, 2, 0, 28, 4, 2, 0, 30, 8, - 7, 0, 31, 8, 7, 0, 89, 0, 7, 0,246, 2, 4, 0, 32, 8, 4, 0, 82, 0, 4, 0,193, 2, 7, 0, 33, 8, 7, 0, 34, 8, - 7, 0, 35, 8, 7, 0, 36, 8, 7, 0, 37, 8, 7, 0, 38, 8, 7, 0,243, 2, 7, 0, 56, 1, 7, 0, 39, 8, 7, 0, 40, 8, - 7, 0, 37, 0, 7, 0, 41, 8, 7, 0, 42, 8, 7, 0, 43, 8, 2, 0, 44, 8, 2, 0, 45, 8, 2, 0, 46, 8, 2, 0, 47, 8, - 2, 0, 48, 8, 2, 0, 49, 8, 2, 0, 50, 8, 2, 0, 51, 8, 2, 0, 28, 2, 2, 0, 52, 8, 2, 0, 25, 2, 2, 0, 53, 8, - 0, 0, 54, 8, 0, 0, 55, 8, 7, 0,240, 0, 25, 1, 56, 8, 67, 0,241, 1, 26, 1, 16, 0, 26, 1, 0, 0, 26, 1, 1, 0, - 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 29, 8, 2, 0,242, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, - 7, 0,241, 2, 7, 0,242, 2, 7, 0, 57, 8, 7, 0,243, 2, 7, 0,245, 2, 7, 0,246, 2,227, 0, 5, 0, 2, 0, 17, 0, - 2, 0,203, 7, 2, 0, 19, 0, 2, 0, 58, 8, 27, 0,135, 6,226, 0, 3, 0, 4, 0, 69, 0, 4, 0, 59, 8,227, 0, 2, 0, - 27, 1, 7, 0, 27, 1, 0, 0, 27, 1, 1, 0, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, 9, 0, 60, 8, - 28, 1, 5, 0, 0, 0, 20, 0, 7, 0, 76, 1, 7, 0, 61, 8, 4, 0, 62, 8, 4, 0, 37, 0, 29, 1, 4, 0, 2, 0, 17, 0, - 2, 0, 19, 0, 2, 0, 43, 0, 2, 0, 70, 0, 30, 1, 4, 0, 0, 0, 20, 0, 66, 0, 63, 8, 7, 0, 76, 1, 7, 0, 37, 0, - 31, 1, 6, 0, 2, 0, 64, 8, 2, 0, 65, 8, 2, 0, 17, 0, 2, 0, 66, 8, 0, 0, 67, 8, 0, 0, 68, 8, 32, 1, 5, 0, - 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 0, 0, 69, 8, 0, 0, 70, 8, 33, 1, 3, 0, 4, 0, 17, 0, 4, 0, 37, 0, - 0, 0, 20, 0, 34, 1, 4, 0, 2, 0, 71, 8, 2, 0, 72, 8, 2, 0, 19, 0, 2, 0, 37, 0, 35, 1, 6, 0, 0, 0, 20, 0, - 0, 0, 73, 8, 2, 0, 74, 8, 2, 0,243, 2, 2, 0, 69, 1, 2, 0, 70, 0, 36, 1, 5, 0, 0, 0, 20, 0, 7, 0,109, 0, - 7, 0,116, 4, 2, 0, 19, 0, 2, 0,205, 2, 37, 1, 3, 0, 0, 0, 20, 0, 4, 0,193, 2, 4, 0, 71, 8, 38, 1, 7, 0, - 0, 0, 20, 0, 7, 0,116, 4, 0, 0, 75, 8, 0, 0, 76, 8, 2, 0, 69, 1, 2, 0, 43, 0, 4, 0, 77, 8, 39, 1, 4, 0, - 0, 0, 78, 8, 0, 0, 79, 8, 4, 0, 17, 0, 7, 0,209, 2, 40, 1, 3, 0, 32, 0, 80, 8, 0, 0, 81, 8, 0, 0, 82, 8, - 41, 1, 18, 0, 41, 1, 0, 0, 41, 1, 1, 0, 2, 0, 17, 0, 2, 0, 83, 8, 2, 0, 19, 0, 2, 0, 84, 8, 2, 0, 85, 8, - 2, 0, 86, 8, 2, 0, 43, 0, 2, 0, 70, 0, 0, 0, 20, 0, 9, 0, 2, 0, 42, 1, 87, 8, 32, 0, 45, 0, 2, 0, 90, 5, - 2, 0,246, 7, 2, 0, 88, 8, 2, 0, 37, 0, 43, 1, 11, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0, 89, 8, 2, 0, 19, 0, - 2, 0,205, 2, 2, 0, 90, 8, 4, 0, 91, 8, 4, 0, 92, 8, 4, 0, 93, 8, 4, 0, 94, 8, 4, 0, 95, 8, 44, 1, 1, 0, - 0, 0, 96, 8, 45, 1, 4, 0, 42, 0,105, 6, 0, 0, 97, 8, 4, 0, 69, 1, 4, 0, 19, 0, 42, 1, 18, 0, 42, 1, 0, 0, - 42, 1, 1, 0, 42, 1, 98, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 99, 8, 2, 0, 86, 8, 2, 0, 83, 8, 2, 0,100, 8, - 2, 0, 70, 0, 2, 0,238, 1, 0, 0, 20, 0, 9, 0, 2, 0, 46, 1, 87, 8, 41, 1,101, 8, 2, 0, 15, 0, 2, 0,102, 8, - 4, 0,103, 8, 47, 1, 3, 0, 4, 0,219, 2, 4, 0, 37, 0, 32, 0, 45, 0, 48, 1, 12, 0,160, 0,104, 8, 2, 0, 17, 0, - 2, 0, 19, 0, 4, 0, 31, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,105, 8, 2, 0,106, 8, 2, 0,107, 8, 2, 0,108, 8, - 2, 0,109, 8, 7, 0,110, 8, 49, 1, 13, 0, 2, 0, 19, 0, 2, 0,111, 8, 4, 0, 31, 8, 4, 0, 89, 0, 2, 0,112, 8, - 7, 0,242, 3, 7, 0,113, 8, 14, 1,244, 7, 50, 1,114, 8, 2, 0, 17, 0, 2, 0,115, 8, 2, 0,116, 8, 2, 0,117, 8, - 51, 1, 11, 0, 4, 0,219, 2, 2, 0, 17, 0, 2, 0, 19, 0, 32, 0, 45, 0, 80, 0,118, 8, 0, 0, 20, 0, 7, 0,119, 8, - 7, 0,120, 8, 7, 0,128, 3, 2, 0,121, 8, 2, 0,122, 8, 52, 1, 5, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 37, 0, - 46, 0,134, 0, 32, 0,189, 5, 53, 1, 5, 0, 4, 0, 19, 0, 4, 0, 17, 0, 0, 0, 20, 0, 0, 0, 69, 8, 32, 0, 45, 0, - 54, 1, 13, 0, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0, 83, 8, 2, 0,129, 3, 7, 0,123, 8, 7, 0,124, 8, 7, 0, 64, 1, - 7, 0, 65, 1, 7, 0,100, 3, 7, 0,103, 3, 7, 0,125, 8, 7, 0,126, 8, 32, 0,127, 8, 55, 1, 10, 0, 2, 0, 19, 0, - 2, 0, 17, 0, 4, 0, 31, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,105, 8, 2, 0, 43, 0, 2, 0, 64, 0, 2, 0,128, 8, - 2, 0,129, 8, 56, 1, 8, 0, 32, 0, 45, 0, 7, 0,240, 2, 7, 0,130, 8, 7, 0,131, 8, 7, 0,235, 2, 2, 0, 19, 0, - 2, 0,205, 2, 7, 0,132, 8, 57, 1, 12, 0, 2, 0, 17, 0, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0,243, 2, 2, 0,219, 2, - 2, 0,133, 8, 4, 0, 37, 0, 7, 0,134, 8, 7, 0,135, 8, 7, 0,136, 8, 7, 0,137, 8, 0, 0,138, 8, 58, 1, 9, 0, - 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 31, 8, 4, 0, 89, 0, 0, 0, 20, 0, 2, 0,136, 1, 2, 0, 64, 0, 2, 0,128, 8, - 2, 0,129, 8, 59, 1, 7, 0, 4, 0,193, 2, 4, 0,139, 8, 4, 0,140, 8, 4, 0,141, 8, 7, 0,142, 8, 7, 0,143, 8, - 0, 0, 75, 8, 60, 1, 7, 0, 0, 0,144, 8, 32, 0,145, 8, 0, 0, 81, 8, 2, 0,146, 8, 2, 0, 43, 0, 4, 0, 70, 0, - 0, 0, 82, 8, 61, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 31, 8, 4, 0, 89, 0, 0, 0,147, 8, 0, 0,148, 8, - 62, 1, 1, 0, 4, 0, 19, 0, 63, 1, 6, 0, 0, 0, 92, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,149, 8, 7, 0,150, 8, - 42, 0,105, 6, 64, 1, 4, 0, 0, 0, 70, 2, 2, 0, 19, 0, 4, 0, 17, 0, 32, 0, 45, 0, 65, 1, 2, 0, 4, 0, 17, 0, - 4, 0, 26, 6, 66, 1, 6, 0, 0, 0, 78, 8, 0, 0, 79, 8, 4, 0, 17, 0, 7, 0, 36, 2, 32, 0, 50, 3, 32, 0,151, 8, - 46, 1, 10, 0, 46, 1, 0, 0, 46, 1, 1, 0, 46, 1, 98, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 83, 8, 2, 0,152, 8, - 0, 0, 20, 0, 9, 0, 2, 0, 32, 0, 45, 0, 67, 1, 10, 0, 7, 0,128, 3, 7, 0,153, 8, 7, 0,154, 8, 7, 0,155, 8, - 7, 0,156, 8, 4, 0, 19, 0, 7, 0,133, 8, 7, 0,157, 8, 7, 0,158, 8, 7, 0, 37, 0, 15, 1, 12, 0, 15, 1, 0, 0, - 15, 1, 1, 0, 14, 1,159, 8, 9, 0,223, 0, 4, 0,171, 3, 4, 0,229, 3, 4, 0,230, 3, 4, 0,160, 8, 4, 0,161, 8, - 4, 0,162, 8, 7, 0,242, 3, 7, 0, 37, 0, 50, 1, 8, 0, 7, 0,163, 8, 7, 0,164, 8, 7, 0,165, 8, 7, 0,166, 8, - 7, 0,167, 8, 7, 0,168, 8, 7, 0,169, 8, 7, 0,170, 8, 14, 1, 15, 0, 27, 0, 31, 0, 0, 0,222, 0, 43, 0,149, 0, - 9, 0,223, 0, 43, 0,171, 8, 36, 0, 80, 0, 7, 0,242, 3, 7, 0,172, 8, 7, 0,113, 8, 7, 0,163, 8, 7, 0,164, 8, - 7, 0,173, 8, 4, 0, 90, 0, 4, 0,162, 8, 9, 0,174, 8, 68, 1, 15, 0,212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, - 4, 0,247, 5, 7, 0,248, 5, 0, 1,175, 8,213, 0, 46, 6, 14, 1,244, 7, 2, 0, 69, 1, 2, 0,111, 8, 2, 0, 89, 2, - 2, 0, 90, 2, 2, 0, 19, 0, 2, 0, 98, 6, 4, 0, 70, 0, 69, 1, 6, 0, 69, 1, 0, 0, 69, 1, 1, 0, 32, 0, 45, 0, - 9, 0,176, 8, 4, 0,247, 0, 4, 0, 37, 0, 67, 0, 4, 0, 27, 0, 31, 0, 12, 0,177, 8, 4, 0,131, 0, 7, 0,178, 8, - 70, 1, 26, 0, 70, 1, 0, 0, 70, 1, 1, 0, 26, 0,179, 8, 70, 1, 38, 0, 12, 0,180, 8, 0, 0, 20, 0, 7, 0,181, 8, - 7, 0,182, 8, 7, 0,183, 8, 7, 0,184, 8, 4, 0, 19, 0, 7, 0,185, 8, 7, 0,186, 8, 7, 0,187, 8, 7, 0, 76, 1, - 7, 0, 36, 2, 7, 0,188, 8, 7, 0,191, 2, 7, 0,189, 8, 7, 0,190, 8, 7, 0,191, 8, 7, 0,192, 8, 7, 0,193, 8, - 7, 0,172, 0, 2, 0,131, 0, 2, 0,121, 5, 71, 1, 24, 0, 27, 0, 31, 0, 39, 0, 75, 0, 12, 0,194, 8, 12, 0,195, 8, - 12, 0,196, 8, 70, 1,197, 8, 9, 0,198, 8, 9, 0,199, 8, 4, 0, 19, 0, 4, 0,255, 5, 2, 0,247, 2, 2, 0, 56, 6, - 2, 0,131, 0, 2, 0,200, 8, 2, 0,201, 8, 2, 0,202, 8, 2, 0,203, 8, 2, 0,204, 8, 4, 0,205, 8, 4, 0,206, 8, - 4, 0,207, 8, 4, 0,208, 8, 4, 0,209, 8, 4, 0,210, 8, 72, 1, 2, 0, 7, 0,152, 2, 4, 0, 19, 0, 73, 1, 5, 0, - 72, 1,211, 8, 4, 0,191, 2, 4, 0,212, 8, 4, 0,213, 8, 4, 0, 19, 0, 74, 1, 6, 0, 4, 0, 37, 0, 4, 0, 56, 6, - 4, 0,207, 8, 4, 0,208, 8, 4, 0,209, 8, 4, 0,210, 8, 75, 1, 42, 0, 75, 1, 0, 0, 75, 1, 1, 0, 26, 0,179, 8, - 12, 0,155, 3, 0, 0, 20, 0, 2, 0, 19, 0, 2, 0,214, 8, 2, 0,215, 8, 2, 0,216, 8, 2, 0,114, 3, 2, 0,217, 8, - 4, 0, 72, 2, 4, 0,207, 8, 4, 0,208, 8, 70, 1,218, 8, 75, 1, 38, 0, 75, 1,219, 8, 12, 0,220, 8, 9, 0,221, 8, - 9, 0,222, 8, 9, 0,223, 8, 7, 0, 64, 1, 7, 0,172, 0, 7, 0,224, 8, 7, 0, 15, 2, 7, 0,105, 3, 7, 0,107, 3, - 2, 0,137, 3, 2, 0, 37, 0, 7, 0,225, 8, 7, 0,226, 8, 7, 0,110, 3, 7, 0,227, 8, 7, 0,228, 8, 7, 0,229, 8, - 7, 0,230, 8, 7, 0,231, 8, 7, 0,232, 8, 7, 0,233, 8, 7, 0,234, 8, 7, 0, 65, 2, 32, 0,235, 8,161, 0, 11, 0, - 12, 0,236, 8, 2, 0, 19, 0, 2, 0,237, 8, 7, 0,101, 2, 7, 0,238, 8, 7, 0,239, 8, 12, 0,240, 8, 4, 0,241, 8, - 4, 0,242, 8, 9, 0,243, 8, 9, 0,244, 8, 76, 1, 1, 0, 4, 0,242, 8, 77, 1, 12, 0, 4, 0,242, 8, 7, 0, 95, 8, - 2, 0,245, 8, 2, 0,246, 8, 7, 0,247, 8, 7, 0,248, 8, 2, 0,249, 8, 2, 0, 19, 0, 7, 0,250, 8, 7, 0,251, 8, - 7, 0,252, 8, 7, 0,253, 8, 78, 1, 7, 0, 78, 1, 0, 0, 78, 1, 1, 0, 12, 0,254, 8, 4, 0, 19, 0, 4, 0,255, 8, - 0, 0,233, 3,247, 0, 0, 9,160, 0, 7, 0, 27, 0, 31, 0, 12, 0, 1, 9, 12, 0,236, 8, 12, 0, 2, 9, 12, 0,100, 0, - 4, 0, 19, 0, 4, 0, 3, 9,217, 0, 4, 0, 27, 0,159, 8, 12, 0,236, 8, 4, 0, 4, 9, 4, 0, 19, 0, 79, 1, 17, 0, -212, 0, 0, 0,212, 0, 1, 0, 12, 0,246, 5, 4, 0,247, 5, 7, 0,248, 5, 2, 0,249, 5,213, 0, 46, 6,160, 0, 90, 3, -217, 0, 5, 9, 0, 0, 69, 1, 0, 0, 49, 6, 2, 0, 19, 0, 2, 0, 6, 9, 2, 0, 99, 6, 2, 0, 98, 6, 2, 0, 7, 9, - 7, 0, 8, 9, 80, 1, 8, 0, 80, 1, 0, 0, 80, 1, 1, 0, 78, 1, 9, 9, 36, 0, 80, 0, 12, 0, 94, 3, 4, 0, 19, 0, - 0, 0, 20, 0, 4, 0, 10, 9, 81, 1, 5, 0, 81, 1, 0, 0, 81, 1, 1, 0, 36, 0, 80, 0, 2, 0, 19, 0, 0, 0, 11, 9, - 82, 1, 14, 0, 82, 1, 0, 0, 82, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 12, 9, 0, 0, 13, 9, - 0, 0, 11, 9, 7, 0, 14, 9, 7, 0, 15, 9, 4, 0, 37, 0, 36, 0, 80, 0, 7, 0, 16, 9, 7, 0, 17, 9, 83, 1, 9, 0, - 83, 1, 0, 0, 83, 1, 1, 0, 32, 0, 18, 9, 0, 0,250, 2, 7, 0, 19, 9, 2, 0, 20, 9, 2, 0, 19, 0, 2, 0, 17, 0, - 2, 0, 21, 9, 84, 1, 7, 0, 42, 0,105, 6, 26, 0,179, 8, 4, 0, 19, 0, 4, 0, 22, 9, 12, 0, 23, 9, 32, 0, 18, 9, - 0, 0,250, 2, 85, 1, 15, 0, 32, 0, 18, 9, 2, 0, 24, 9, 2, 0, 19, 0, 2, 0, 25, 9, 2, 0, 26, 9, 0, 0,250, 2, - 32, 0, 27, 9, 0, 0, 28, 9, 7, 0, 29, 9, 7, 0, 36, 2, 7, 0, 30, 9, 7, 0, 31, 9, 2, 0, 17, 0, 2, 0, 69, 1, - 7, 0, 76, 1, 86, 1, 6, 0, 32, 0, 18, 9, 7, 0,211, 8, 2, 0, 32, 9, 2, 0, 33, 9, 2, 0, 19, 0, 2, 0, 34, 9, - 87, 1, 6, 0, 32, 0, 18, 9, 4, 0, 35, 9, 4, 0, 36, 9, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,250, 2, 88, 1, 4, 0, - 32, 0, 18, 9, 4, 0, 19, 0, 4, 0, 35, 9, 0, 0,250, 2, 89, 1, 4, 0, 32, 0, 18, 9, 4, 0, 19, 0, 4, 0, 35, 9, - 0, 0,250, 2, 90, 1, 10, 0, 32, 0, 18, 9, 4, 0, 37, 9, 7, 0,125, 0, 4, 0, 19, 0, 2, 0,101, 6, 2, 0, 38, 9, - 2, 0, 43, 0, 2, 0, 70, 0, 7, 0, 39, 9, 0, 0,250, 2, 91, 1, 4, 0, 32, 0, 18, 9, 4, 0, 19, 0, 4, 0, 35, 9, - 0, 0,250, 2, 92, 1, 10, 0, 32, 0, 18, 9, 2, 0, 17, 0, 2, 0, 36, 4, 4, 0, 88, 0, 4, 0, 89, 0, 7, 0,130, 8, - 7, 0,131, 8, 4, 0, 37, 0,160, 0,104, 8, 0, 0,250, 2, 93, 1, 4, 0, 32, 0, 18, 9, 4, 0,115, 3, 4, 0, 40, 9, - 0, 0,250, 2, 94, 1, 4, 0, 32, 0, 18, 9, 4, 0,115, 3, 4, 0, 37, 0, 0, 0,250, 2, 95, 1, 5, 0, 32, 0, 18, 9, - 7, 0,125, 0, 4, 0, 41, 9, 4, 0,115, 3, 4, 0,116, 3, 96, 1, 6, 0, 32, 0, 18, 9, 4, 0, 42, 9, 4, 0, 43, 9, - 7, 0, 44, 9, 7, 0, 45, 9, 0, 0,250, 2, 97, 1, 16, 0, 32, 0, 18, 9, 32, 0,219, 8, 4, 0, 17, 0, 7, 0, 46, 9, - 7, 0, 47, 9, 7, 0, 48, 9, 7, 0, 49, 9, 7, 0, 50, 9, 7, 0, 51, 9, 7, 0, 52, 9, 7, 0, 53, 9, 7, 0, 54, 9, - 2, 0, 19, 0, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0, 70, 0, 98, 1, 3, 0, 32, 0, 18, 9, 4, 0, 19, 0, 4, 0, 28, 2, - 99, 1, 5, 0, 32, 0, 18, 9, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0, 55, 9, 0, 0,250, 2,100, 1, 10, 0, 32, 0, 18, 9, - 0, 0,250, 2, 2, 0, 56, 9, 2, 0, 57, 9, 0, 0, 58, 9, 0, 0, 59, 9, 7, 0, 60, 9, 7, 0, 61, 9, 7, 0, 62, 9, - 7, 0, 63, 9,101, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 64, 9, 7, 0, 65, 9, - 2, 0, 19, 0, 2, 0, 28, 2,102, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 64, 9, - 7, 0, 65, 9, 2, 0, 19, 0, 2, 0, 28, 2,103, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, - 7, 0, 64, 9, 7, 0, 65, 9, 2, 0, 19, 0, 2, 0, 28, 2,104, 1, 7, 0, 32, 0, 18, 9, 0, 0,250, 2, 7, 0, 76, 1, - 7, 0, 85, 1, 2, 0, 19, 0, 2, 0, 69, 1, 4, 0, 37, 0,105, 1, 5, 0, 32, 0, 50, 3, 7, 0, 76, 1, 2, 0, 54, 3, - 0, 0, 56, 3, 0, 0, 66, 9,106, 1, 10, 0,106, 1, 0, 0,106, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 67, 9, - 7, 0, 20, 1, 7, 0, 21, 1, 2, 0,254, 8, 2, 0, 68, 9, 32, 0, 45, 0,107, 1, 22, 0,107, 1, 0, 0,107, 1, 1, 0, - 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 69, 9, 2, 0, 70, 9, 36, 0, 80, 0,160, 0,104, 8, 32, 0,164, 0, 7, 0, 88, 0, - 7, 0, 89, 0, 7, 0, 71, 9, 7, 0, 72, 9, 7, 0, 73, 9, 7, 0, 74, 9, 7, 0,236, 2, 7, 0, 75, 9, 7, 0,106, 8, - 7, 0, 76, 9, 0, 0, 77, 9, 0, 0, 78, 9, 12, 0, 96, 3,108, 1, 8, 0, 7, 0, 43, 2, 7, 0,130, 8, 7, 0,131, 8, - 9, 0, 2, 0, 2, 0, 79, 9, 2, 0, 80, 9, 2, 0, 81, 9, 2, 0, 82, 9,109, 1, 18, 0,109, 1, 0, 0,109, 1, 1, 0, -109, 1, 83, 9, 0, 0, 20, 0,108, 1, 84, 9, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 85, 9, 2, 0, 86, 9, 2, 0, 87, 9, - 2, 0, 88, 9, 4, 0, 43, 0, 7, 0, 89, 9, 7, 0, 90, 9, 4, 0, 91, 9, 4, 0, 92, 9,109, 1, 93, 9,110, 1, 94, 9, -111, 1, 33, 0,111, 1, 0, 0,111, 1, 1, 0,111, 1, 95, 9, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,213, 7, - 2, 0,246, 7, 2, 0, 96, 9, 2, 0,133, 0, 2, 0, 86, 9, 2, 0,203, 7, 12, 0, 99, 8, 12, 0, 97, 9, 27, 0,135, 6, - 9, 0, 98, 9, 7, 0, 89, 9, 7, 0, 90, 9, 7, 0, 74, 2, 7, 0, 99, 9, 2, 0,100, 9, 2, 0,101, 9, 7, 0,102, 9, - 7, 0,103, 9, 2, 0,104, 9, 2, 0,105, 9, 9, 0,106, 9, 24, 0,107, 9, 24, 0,108, 9, 24, 0,109, 9,112, 1,150, 0, -113, 1,110, 9,114, 1,111, 9,110, 1, 8, 0,110, 1, 0, 0,110, 1, 1, 0,111, 1,112, 9,111, 1,113, 9,109, 1,114, 9, -109, 1, 93, 9, 4, 0, 19, 0, 4, 0, 37, 0, 60, 0, 23, 0, 27, 0, 31, 0, 39, 0, 75, 0,162, 0, 93, 3, 12, 0,115, 9, - 12, 0,116, 9,108, 1,117, 9, 12, 0,118, 9, 4, 0, 17, 0, 4, 0,119, 9, 4, 0,120, 9, 4, 0,121, 9, 4, 0, 19, 0, - 4, 0, 37, 0, 12, 0,122, 9,114, 1,123, 9,109, 1,124, 9,109, 1,125, 9, 9, 0,126, 9, 9, 0,127, 9, 4, 0,128, 9, - 9, 0,129, 9, 9, 0,130, 9, 9, 0,131, 9,115, 1, 6, 0, 4, 0,124, 0, 4, 0,126, 0, 4, 0,203, 7, 0, 0,132, 9, - 0, 0,133, 9, 2, 0, 37, 0,116, 1, 16, 0, 2, 0,157, 7, 2, 0,158, 7, 2, 0,134, 9, 2, 0,154, 8, 2, 0,135, 9, - 2, 0, 68, 0, 7, 0,235, 2, 7, 0,136, 9, 7, 0,137, 9, 2, 0, 91, 1, 0, 0,138, 9, 0, 0,105, 5, 2, 0,139, 9, - 2, 0, 37, 0, 4, 0,140, 9, 4, 0,141, 9,117, 1, 9, 0, 7, 0,142, 9, 7, 0,143, 9, 7, 0,173, 8, 7, 0,109, 0, - 7, 0,144, 9, 7, 0, 62, 6, 2, 0,145, 9, 0, 0,146, 9, 0, 0, 37, 0,118, 1, 4, 0, 7, 0,147, 9, 7, 0,148, 9, - 2, 0,145, 9, 2, 0, 37, 0,119, 1, 3, 0, 7, 0,149, 9, 7, 0,150, 9, 7, 0, 15, 0,120, 1, 7, 0, 0, 0, 5, 2, - 2, 0,232, 4, 2, 0,233, 4, 2, 0,234, 4, 2, 0,180, 4, 4, 0,126, 0, 4, 0, 34, 4,121, 1, 7, 0, 7, 0,151, 9, - 7, 0,152, 9, 7, 0,153, 9, 7, 0, 85, 2, 7, 0,154, 9, 7, 0,155, 9, 7, 0,156, 9,122, 1, 4, 0, 2, 0,157, 9, - 2, 0,158, 9, 2, 0,159, 9, 2, 0,160, 9,123, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,124, 1, 2, 0, 0, 0,166, 0, - 0, 0,161, 9,125, 1, 1, 0, 0, 0, 20, 0,126, 1, 10, 0, 0, 0,162, 9, 0, 0,163, 9, 0, 0, 55, 6, 0, 0,164, 9, - 2, 0,134, 9, 2, 0,165, 9, 7, 0,166, 9, 7, 0,167, 9, 7, 0,168, 9, 7, 0, 75, 9,127, 1, 2, 0, 9, 0,169, 9, - 9, 0,170, 9,128, 1, 11, 0, 0, 0,234, 4, 0, 0, 17, 0, 0, 0,145, 9, 0, 0,109, 0, 0, 0,171, 9, 0, 0,106, 0, - 0, 0, 70, 2, 7, 0,172, 9, 7, 0,173, 9, 7, 0,174, 9, 7, 0,175, 9,129, 1, 8, 0, 7, 0, 64, 8, 7, 0,125, 0, - 7, 0,105, 5, 7, 0,157, 2, 7, 0,176, 9, 7, 0,236, 0, 7, 0,177, 9, 4, 0, 17, 0,130, 1, 4, 0, 2, 0,178, 9, - 2, 0,179, 9, 2, 0,180, 9, 2, 0, 37, 0,131, 1, 1, 0, 0, 0, 20, 0,132, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, - 2, 0, 19, 0, 2, 0,181, 9,133, 1, 10, 0, 2, 0,222, 3, 2, 0, 19, 0, 7, 0,116, 4, 7, 0,182, 9, 7, 0,183, 9, - 7, 0,184, 9, 7, 0,185, 9,132, 1,186, 9,132, 1,187, 9,132, 1,188, 9, 63, 0, 9, 0, 4, 0, 19, 0, 4, 0, 64, 0, - 24, 0,189, 9, 24, 0,190, 9,133, 1,191, 9, 7, 0,192, 9, 7, 0,193, 9, 7, 0,194, 9, 7, 0,195, 9,134, 1, 4, 0, - 47, 0,229, 2, 7, 0,196, 9, 7, 0,170, 1, 7, 0, 37, 0,190, 0, 17, 0, 27, 0, 31, 0,134, 1,197, 9, 63, 0,186, 9, - 51, 0,134, 1, 2, 0, 19, 0, 2, 0,215, 5, 4, 0,106, 0, 7, 0,198, 9, 7, 0, 82, 2, 4, 0,199, 9, 7, 0,200, 9, - 7, 0,201, 9, 7, 0,202, 9, 7, 0,170, 1, 2, 0,104, 1, 0, 0,203, 9, 0, 0,194, 6,135, 1, 10, 0, 4, 0, 17, 0, - 4, 0,125, 0, 4, 0, 19, 0, 4, 0,177, 3, 4, 0,204, 9, 4, 0,205, 9, 4, 0,206, 9, 0, 0, 92, 0, 0, 0, 20, 0, - 9, 0, 2, 0, 91, 0, 6, 0,135, 1,207, 9, 4, 0,208, 9, 4, 0,209, 9, 4, 0,210, 9, 4, 0, 37, 0, 9, 0,211, 9, -136, 1, 5, 0, 7, 0,152, 2, 7, 0,219, 2, 7, 0, 36, 2, 2, 0,128, 2, 2, 0, 37, 0,137, 1, 5, 0, 7, 0,152, 2, - 7, 0,212, 9, 7, 0,213, 9, 7, 0,214, 9, 7, 0,219, 2,138, 1, 5, 0, 32, 0,215, 9,139, 1, 22, 0, 7, 0,188, 5, - 7, 0,216, 9, 7, 0, 57, 0,140, 1, 7, 0, 4, 0,217, 9, 4, 0,218, 9, 4, 0,219, 9, 7, 0,220, 9, 7, 0,221, 9, - 7, 0,222, 9, 7, 0, 57, 0,141, 1, 8, 0,141, 1, 0, 0,141, 1, 1, 0, 32, 0, 45, 0, 4, 0,255, 0, 2, 0, 19, 0, - 2, 0, 69, 1, 7, 0,219, 2, 7, 0, 72, 8,142, 1, 6, 0,142, 1, 0, 0,142, 1, 1, 0, 32, 0, 45, 0, 2, 0,204, 2, - 2, 0, 19, 0, 2, 0,223, 9,143, 1, 18, 0,137, 1,171, 3,137, 1,224, 9,136, 1,225, 9,137, 1, 56, 8,138, 1,226, 9, - 4, 0, 82, 0, 7, 0,219, 2, 7, 0,246, 2, 7, 0,227, 9, 4, 0,217, 9, 4, 0,228, 9, 7, 0,221, 9, 7, 0,222, 9, - 7, 0,106, 0, 2, 0, 19, 0, 2, 0,229, 9, 2, 0,230, 9, 2, 0,231, 9,144, 1,110, 0, 27, 0, 31, 0, 39, 0, 75, 0, -145, 1,232, 9,169, 0, 56, 4, 4, 0, 19, 0, 2, 0, 17, 0, 2, 0, 56, 9, 2, 0,233, 9, 2, 0,234, 9, 2, 0,137, 3, - 2, 0,235, 9, 2, 0,236, 9, 2, 0,237, 9, 2, 0,238, 9, 2, 0,239, 9, 2, 0,240, 9, 2, 0,241, 9, 2, 0,221, 4, - 2, 0, 98, 5, 2, 0,242, 9, 2, 0,243, 9, 2, 0,244, 9, 2, 0,245, 9, 2, 0,246, 9, 2, 0, 25, 2, 2, 0, 49, 8, - 2, 0, 25, 8, 2, 0,247, 9, 2, 0,248, 9, 2, 0,187, 3, 2, 0,188, 3, 2, 0,249, 9, 2, 0,250, 9, 2, 0,251, 9, - 2, 0,252, 9, 7, 0,253, 9, 7, 0,254, 9, 7, 0,255, 9, 2, 0, 0, 10, 2, 0, 1, 10, 7, 0, 2, 10, 7, 0, 3, 10, - 7, 0, 4, 10, 7, 0, 31, 8, 7, 0, 89, 0, 7, 0,246, 2, 7, 0, 37, 8, 7, 0, 5, 10, 7, 0, 6, 10, 7, 0, 7, 10, - 4, 0, 32, 8, 4, 0, 30, 8, 4, 0, 8, 10, 7, 0, 33, 8, 7, 0, 34, 8, 7, 0, 35, 8, 7, 0, 9, 10, 7, 0, 10, 10, - 7, 0, 11, 10, 7, 0, 12, 10, 7, 0, 13, 10, 7, 0, 57, 0, 7, 0, 14, 10, 7, 0, 15, 10, 7, 0, 16, 10, 7, 0, 17, 10, - 7, 0,128, 3, 7, 0,106, 0, 7, 0, 18, 10, 7, 0, 19, 10, 7, 0, 20, 10, 7, 0, 21, 10, 7, 0, 22, 10, 7, 0, 23, 10, - 7, 0, 24, 10, 4, 0, 25, 10, 4, 0, 26, 10, 7, 0, 27, 10, 7, 0, 28, 10, 7, 0, 29, 10, 7, 0, 30, 10, 7, 0, 31, 10, - 7, 0,210, 0, 7, 0, 32, 10, 7, 0,213, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0, 33, 10, 7, 0, 34, 10, 7, 0, 35, 10, - 7, 0, 36, 10, 7, 0, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10, 7, 0, 42, 10, 7, 0, 43, 10, - 7, 0, 44, 10, 7, 0, 45, 10, 4, 0, 46, 10, 4, 0, 47, 10, 67, 0,160, 3, 12, 0, 48, 10, 67, 0, 49, 10, 32, 0, 50, 10, - 32, 0, 51, 10, 36, 0, 80, 0,164, 0, 61, 1,164, 0, 52, 10,148, 0, 44, 0,148, 0, 0, 0,148, 0, 1, 0,144, 1, 53, 10, -143, 1, 54, 10,140, 1,219, 8,171, 0,238, 3, 9, 0,239, 3,146, 1, 55, 10,146, 1, 56, 10, 12, 0, 57, 10, 12, 0, 58, 10, -133, 0, 59, 10,141, 0, 60, 10,141, 0, 61, 10, 32, 0, 62, 10, 32, 0, 63, 10, 32, 0, 38, 0, 12, 0, 23, 9, 0, 0, 20, 0, - 7, 0,240, 0, 7, 0, 17, 3, 7, 0, 64, 10, 4, 0,193, 2, 4, 0, 57, 0, 4, 0, 19, 0, 4, 0, 32, 8, 4, 0, 65, 10, - 4, 0, 66, 10, 4, 0, 67, 10, 2, 0,247, 0, 2, 0, 68, 10, 2, 0, 69, 10, 2, 0, 70, 10, 0, 0, 71, 10, 2, 0, 72, 10, - 2, 0, 73, 10, 2, 0, 74, 10, 9, 0, 75, 10,137, 0, 55, 4, 12, 0, 4, 3, 12, 0, 76, 10,147, 1, 77, 10,148, 1, 78, 10, - 7, 0, 79, 10,135, 0, 35, 0,149, 1,174, 8, 7, 0, 25, 4, 7, 0, 80, 10, 7, 0, 81, 10, 7, 0,119, 4, 7, 0, 82, 10, - 7, 0,138, 3, 7, 0,128, 3, 7, 0, 83, 10, 7, 0, 84, 2, 7, 0, 84, 10, 7, 0, 85, 10, 7, 0, 86, 10, 7, 0, 87, 10, - 7, 0, 88, 10, 7, 0, 89, 10, 7, 0, 26, 4, 7, 0, 90, 10, 7, 0, 91, 10, 7, 0, 92, 10, 7, 0, 27, 4, 7, 0, 23, 4, - 7, 0, 24, 4, 7, 0, 93, 10, 4, 0, 94, 10, 4, 0, 90, 0, 4, 0, 95, 10, 4, 0, 96, 10, 2, 0, 97, 10, 2, 0, 98, 10, - 2, 0, 99, 10, 2, 0,100, 10, 2, 0,101, 10, 2, 0,102, 10,169, 0, 56, 4,136, 0, 8, 0,149, 1,103, 10, 7, 0,104, 10, - 7, 0,105, 10, 7, 0,242, 1, 7, 0,106, 10, 4, 0, 90, 0, 2, 0,107, 10, 2, 0,108, 10,150, 1, 4, 0, 7, 0, 5, 0, - 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,109, 10,151, 1, 6, 0,151, 1, 0, 0,151, 1, 1, 0,150, 1,211, 8, 4, 0,253, 0, - 2, 0,110, 10, 2, 0, 19, 0,152, 1, 5, 0,152, 1, 0, 0,152, 1, 1, 0, 12, 0,111, 10, 4, 0,112, 10, 4, 0, 19, 0, -153, 1, 9, 0,153, 1, 0, 0,153, 1, 1, 0, 12, 0,124, 0,152, 1,113, 10, 4, 0, 19, 0, 2, 0,110, 10, 2, 0,114, 10, - 7, 0, 91, 0, 0, 0,115, 10,162, 0, 6, 0, 27, 0, 31, 0, 12, 0,250, 4, 4, 0, 19, 0, 2, 0,116, 10, 2, 0,117, 10, - 9, 0,118, 10,154, 1, 7, 0,154, 1, 0, 0,154, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, 0, 0,119, 10, - 0, 0,120, 10,155, 1, 5, 0, 12, 0,121, 10, 4, 0,122, 10, 4, 0,123, 10, 4, 0, 19, 0, 4, 0, 37, 0,156, 1, 18, 0, - 27, 0, 31, 0,157, 1,124, 10,157, 1,125, 10, 12, 0,126, 10, 4, 0,127, 10, 2, 0,128, 10, 2, 0, 37, 0, 12, 0,129, 10, - 12, 0,130, 10,155, 1,131, 10, 12, 0,132, 10, 12, 0,133, 10, 12, 0,134, 10,158, 1,135, 10, 4, 0,136, 10, 4, 0, 70, 0, - 12, 0,137, 10,210, 0,138, 10,157, 1, 30, 0,157, 1, 0, 0,157, 1, 1, 0, 9, 0,139, 10, 4, 0,136, 7, 4, 0, 37, 0, -215, 0, 45, 6,215, 0,140, 10, 0, 0,141, 10, 2, 0,142, 10, 2, 0,143, 10, 2, 0,157, 7, 2, 0,158, 7, 2, 0,144, 10, - 2, 0,145, 10, 2, 0,177, 3, 2, 0,161, 6, 2, 0,146, 10, 2, 0,147, 10, 4, 0,238, 1,159, 1,148, 10,160, 1,149, 10, -161, 1,150, 10, 4, 0,151, 10, 4, 0,152, 10, 9, 0,153, 10, 12, 0,130, 10, 12, 0,177, 7, 12, 0,154, 10, 12, 0,155, 10, - 12, 0,156, 10,162, 1, 16, 0,162, 1, 0, 0,162, 1, 1, 0, 0, 0,157, 10, 26, 0, 30, 0, 2, 0,158, 10, 2, 0, 17, 0, - 2, 0, 15, 0, 2, 0,159, 10, 2, 0,160, 10, 2, 0,161, 10, 2, 0,162, 10, 2, 0,163, 10, 2, 0, 19, 0, 2, 0,164, 10, - 2, 0, 70, 2,163, 1,165, 10,164, 1, 10, 0,164, 1, 0, 0,164, 1, 1, 0, 12, 0,166, 10, 0, 0,157, 10, 2, 0,167, 10, - 2, 0,168, 10, 2, 0, 19, 0, 2, 0, 37, 0, 4, 0,169, 10, 9, 0,170, 10,158, 1, 7, 0,158, 1, 0, 0,158, 1, 1, 0, - 0, 0,157, 10, 0, 0,171, 10, 12, 0, 94, 7, 4, 0,172, 10, 4, 0, 19, 0,223, 0, 12, 0,223, 0, 0, 0,223, 0, 1, 0, - 0, 0,157, 10, 26, 0, 30, 0,165, 1,151, 7, 9, 0,173, 10,163, 1,165, 10,155, 1,174, 10, 12, 0,175, 10,223, 0,176, 10, - 2, 0, 19, 0, 2, 0,136, 1,159, 1, 23, 0,159, 1, 0, 0,159, 1, 1, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0, 5, 0, - 2, 0, 6, 0, 2, 0,177, 10, 2, 0,178, 10, 2, 0,179, 10, 2, 0,180, 10, 0, 0,181, 10, 0, 0, 37, 0, 2, 0,159, 10, - 2, 0,160, 10, 2, 0,161, 10, 2, 0,162, 10, 2, 0,163, 10, 2, 0, 43, 0, 0, 0,182, 10, 2, 0,183, 10, 2, 0,184, 10, - 4, 0, 70, 0, 9, 0,173, 10,166, 1, 8, 0,166, 1, 0, 0,166, 1, 1, 0, 9, 0, 2, 0, 9, 0,185, 10, 0, 0,233, 3, - 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,186, 10,167, 1, 5, 0, 7, 0,187, 10, 4, 0,188, 10, 4, 0,189, 10, 4, 0, 69, 1, - 4, 0, 19, 0,168, 1, 6, 0, 7, 0,190, 10, 7, 0,191, 10, 7, 0,192, 10, 7, 0,193, 10, 4, 0, 17, 0, 4, 0, 19, 0, -169, 1, 5, 0, 7, 0,130, 8, 7, 0,131, 8, 7, 0,219, 2, 2, 0, 39, 2, 2, 0, 40, 2,170, 1, 5, 0,169, 1, 2, 0, - 4, 0, 54, 0, 7, 0,194, 10, 7, 0,130, 8, 7, 0,131, 8,171, 1, 4, 0, 2, 0,195, 10, 2, 0,196, 10, 2, 0,197, 10, - 2, 0,198, 10,172, 1, 2, 0, 42, 0,132, 6, 26, 0,179, 8,173, 1, 3, 0, 24, 0,199, 10, 4, 0, 19, 0, 4, 0, 37, 0, -174, 1, 6, 0, 7, 0,106, 0, 7, 0,221, 2, 7, 0,200, 10, 7, 0, 37, 0, 2, 0,246, 0, 2, 0,201, 10,175, 1, 9, 0, -175, 1, 0, 0,175, 1, 1, 0, 27, 0,135, 6, 0, 0,202, 10, 4, 0,203, 10, 4, 0,204, 10, 4, 0, 90, 0, 4, 0, 37, 0, - 0, 0,233, 3,176, 1, 6, 0, 12, 0, 23, 9, 0, 0,205, 10, 7, 0, 61, 0, 7, 0,186, 10, 4, 0, 17, 0, 4, 0, 19, 0, -177, 1, 3, 0, 7, 0,206, 10, 4, 0, 19, 0, 4, 0, 37, 0,178, 1, 15, 0,178, 1, 0, 0,178, 1, 1, 0, 78, 1, 9, 9, -176, 1, 62, 0, 12, 0, 96, 3, 35, 0, 50, 0,177, 1,207, 10, 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0, 15, 1, - 4, 0,203, 10, 0, 0,202, 10, 4, 0,208, 10, 7, 0,209, 10,179, 1, 2, 0, 0, 0,210, 10, 0, 0,211, 10,180, 1, 4, 0, -180, 1, 0, 0,180, 1, 1, 0,160, 0, 50, 3, 12, 0,212, 10,181, 1, 24, 0,181, 1, 0, 0,181, 1, 1, 0, 12, 0,213, 10, -160, 0,104, 8,180, 1,214, 10, 12, 0,215, 10, 12, 0, 96, 3, 0, 0,233, 3, 7, 0,186, 10, 7, 0,216, 10, 7, 0, 88, 0, - 7, 0, 89, 0, 7, 0, 71, 9, 7, 0, 72, 9, 7, 0,236, 2, 7, 0, 75, 9, 7, 0,106, 8, 7, 0, 76, 9, 2, 0,217, 10, - 2, 0,218, 10, 2, 0, 43, 0, 2, 0, 17, 0, 4, 0, 19, 0, 4, 0, 70, 0,182, 1, 6, 0,182, 1, 0, 0,182, 1, 1, 0, - 12, 0,213, 10, 4, 0, 19, 0, 4, 0,156, 2, 0, 0,233, 3,183, 1, 10, 0,183, 1, 0, 0,183, 1, 1, 0, 27, 0,135, 6, - 0, 0,219, 10, 4, 0,204, 10, 4, 0,220, 10, 0, 0,202, 10, 4, 0,203, 10, 2, 0, 19, 0, 2, 0,221, 10,184, 1, 7, 0, -184, 1, 0, 0,184, 1, 1, 0, 12, 0,222, 10, 0, 0,233, 3, 2, 0, 19, 0, 2, 0,223, 10, 4, 0,224, 10,185, 1, 5, 0, -185, 1, 0, 0,185, 1, 1, 0, 0, 0,202, 10, 4, 0,203, 10, 7, 0,209, 2, 39, 0, 12, 0,160, 0, 90, 3,160, 0,225, 10, -180, 1,214, 10, 12, 0,226, 10,181, 1,227, 10, 12, 0,228, 10, 12, 0,229, 10, 4, 0, 19, 0, 4, 0,247, 0, 2, 0,230, 10, - 2, 0,231, 10, 7, 0,232, 10,186, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0,187, 1, 5, 0,187, 1, 0, 0,187, 1, 1, 0, - 4, 0, 17, 0, 4, 0, 19, 0, 0, 0, 20, 0,188, 1, 6, 0,187, 1,233, 10, 32, 0, 45, 0, 4, 0,234, 10, 7, 0,235, 10, - 4, 0,236, 10, 4, 0,254, 8,189, 1, 3, 0,187, 1,233, 10, 4, 0,234, 10, 7, 0,237, 10,190, 1, 8, 0,187, 1,233, 10, - 32, 0, 45, 0, 7, 0, 64, 1, 7, 0,238, 10, 7, 0, 17, 3, 7, 0,173, 8, 4, 0,234, 10, 4, 0,239, 10,191, 1, 5, 0, -187, 1,233, 10, 7, 0,240, 10, 7, 0,246, 7, 7, 0,242, 2, 7, 0, 57, 0,192, 1, 3, 0,187, 1,233, 10, 7, 0,173, 8, - 7, 0,241, 10,139, 1, 4, 0, 7, 0,242, 10, 7, 0, 20, 10, 2, 0,243, 10, 2, 0, 69, 1,193, 1, 14, 0,193, 1, 0, 0, -193, 1, 1, 0, 12, 0,244, 10, 12, 0,245, 10, 12, 0,246, 10, 0, 0, 20, 0, 4, 0, 31, 0, 4, 0, 19, 0, 4, 0,247, 10, - 7, 0,248, 10, 4, 0,236, 10, 4, 0,254, 8, 7, 0,242, 3, 7, 0,244, 2,145, 1, 23, 0, 4, 0,234, 10, 4, 0,249, 10, - 7, 0,250, 10, 7, 0, 57, 0, 7, 0,251, 10, 7, 0,240, 2, 7, 0,242, 10, 7, 0,252, 10, 7, 0,221, 2, 7, 0,253, 10, - 7, 0,116, 4, 7, 0,254, 10, 7, 0,255, 10, 7, 0, 0, 11, 7, 0, 1, 11, 7, 0, 2, 11, 7, 0, 3, 11, 7, 0, 4, 11, - 7, 0, 5, 11, 7, 0, 6, 11, 7, 0, 7, 11, 7, 0, 8, 11, 12, 0, 9, 11,121, 0, 34, 0,120, 0, 10, 11,194, 1, 11, 11, - 67, 0, 12, 11, 67, 0, 49, 10, 67, 0, 13, 11,195, 1, 14, 11, 48, 0,165, 0, 48, 0, 15, 11, 48, 0, 16, 11, 7, 0, 17, 11, - 7, 0, 18, 11, 7, 0, 19, 11, 7, 0, 20, 11, 7, 0, 21, 11, 7, 0, 10, 9, 7, 0, 22, 11, 7, 0,170, 1, 7, 0, 23, 11, - 4, 0, 24, 11, 4, 0, 25, 11, 4, 0, 26, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0, 27, 11, 2, 0, 28, 11, 2, 0, 29, 11, - 4, 0, 30, 11, 7, 0,221, 2, 4, 0, 31, 11, 7, 0, 32, 11, 4, 0, 33, 11,137, 0, 34, 11, 12, 0, 35, 11,169, 0, 56, 4, -122, 0, 11, 0,120, 0, 10, 11,148, 0, 34, 3, 7, 0,137, 1, 7, 0, 10, 9, 7, 0, 36, 11, 7, 0, 37, 11, 2, 0, 38, 11, - 2, 0, 39, 11, 2, 0, 40, 11, 2, 0, 17, 0, 4, 0, 37, 0,123, 0, 13, 0,120, 0, 10, 11,139, 0, 14, 3,141, 0, 16, 3, - 7, 0,211, 8, 7, 0, 41, 11, 7, 0, 42, 11, 7, 0, 66, 1, 7, 0, 43, 11, 4, 0, 32, 9, 4, 0, 12, 3, 2, 0, 17, 0, + 0, 0, 41, 7, 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, + 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 92, 0, +248, 0, 5, 0, 0, 0, 56, 7, 0, 0, 11, 7, 0, 0, 13, 7, 2, 0, 19, 0, 2, 0, 37, 0,249, 0, 24, 0,249, 0, 0, 0, +249, 0, 1, 0, 0, 0, 20, 0,246, 0, 57, 7,247, 0, 58, 7,247, 0, 59, 7,247, 0, 60, 7,247, 0, 61, 7,247, 0, 62, 7, +247, 0, 63, 7,247, 0, 64, 7,247, 0, 65, 7,247, 0, 66, 7,247, 0, 67, 7,247, 0, 68, 7,247, 0, 69, 7,247, 0, 70, 7, +247, 0, 71, 7,247, 0, 72, 7,247, 0, 73, 7,247, 0, 74, 7,248, 0, 75, 7, 4, 0, 76, 7, 4, 0, 37, 0,250, 0, 5, 0, + 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,138, 2, 7, 0, 77, 7, 7, 0, 43, 2,251, 0, 73, 0, 4, 0, 19, 0, 4, 0, 78, 7, + 4, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, 0, 0, 82, 7, 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, + 0, 0, 87, 7, 0, 0, 88, 7, 2, 0, 89, 7, 2, 0, 37, 0, 4, 0, 90, 7, 4, 0, 91, 7, 4, 0, 92, 7, 4, 0, 93, 7, + 2, 0, 94, 7, 2, 0, 95, 7, 4, 0, 96, 7, 4, 0, 97, 7, 4, 0, 98, 7, 4, 0, 99, 7, 4, 0,100, 7, 4, 0,179, 6, + 4, 0,101, 7, 2, 0,102, 7, 2, 0,103, 7, 2, 0,104, 7, 2, 0,105, 7, 12, 0,106, 7, 12, 0,107, 7, 12, 0,108, 7, + 12, 0,109, 7, 0, 0,110, 7, 2, 0,111, 7, 2, 0,112, 7, 2, 0,113, 7, 2, 0,114, 7, 2, 0,115, 7, 2, 0,116, 7, + 2, 0,117, 7, 2, 0,118, 7,250, 0,119, 7, 2, 0,120, 7, 2, 0,121, 7, 2, 0,122, 7, 2, 0,123, 7, 2, 0,124, 7, + 2, 0,125, 7, 2, 0,126, 7, 2, 0,127, 7, 4, 0,128, 7, 4, 0,129, 7, 2, 0,130, 7, 2, 0,131, 7, 2, 0,132, 7, + 2, 0,133, 7, 2, 0,134, 7, 2, 0,135, 7, 2, 0,136, 7, 2, 0,137, 7, 2, 0,138, 7, 2, 0,139, 7, 2, 0,140, 7, + 2, 0,141, 7, 0, 0,142, 7, 0, 0,143, 7, 7, 0,144, 7, 2, 0,155, 5, 2, 0,156, 5, 55, 0,145, 7,216, 0, 21, 0, + 27, 0, 31, 0, 12, 0,146, 7, 12, 0,147, 7, 12, 0,148, 7, 12, 0, 6, 6, 46, 0,134, 0, 46, 0,149, 7, 2, 0,150, 7, + 2, 0,151, 7, 2, 0,152, 7, 2, 0,153, 7, 2, 0,154, 7, 2, 0,155, 7, 2, 0,156, 7, 2, 0, 37, 0, 2, 0,157, 7, + 2, 0,158, 7, 4, 0, 70, 0,211, 0,159, 7, 9, 0,160, 7, 2, 0,161, 7,252, 0, 5, 0,252, 0, 0, 0,252, 0, 1, 0, +252, 0,162, 7, 13, 0,163, 7, 4, 0, 19, 0,253, 0, 7, 0,253, 0, 0, 0,253, 0, 1, 0,252, 0,164, 7,252, 0,165, 7, + 2, 0, 9, 5, 2, 0, 19, 0, 4, 0, 37, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0,255, 0,166, 7, 0, 1, 98, 6, + 0, 0,167, 7, 0, 0,168, 7, 0, 0,169, 7, 2, 0,170, 7, 2, 0,171, 7, 2, 0,172, 7, 2, 0,173, 7, 2, 0,174, 7, + 2, 0, 37, 0, 2, 0, 19, 0, 2, 0,175, 7, 2, 0,176, 7, 2, 0,177, 7, 4, 0,178, 7,254, 0,179, 7, 9, 0,180, 7, + 4, 0,181, 7, 4, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, 0, 0,185, 7, 1, 1, 22, 0, 1, 1, 0, 0, 1, 1, 1, 0, +252, 0,164, 7,252, 0,165, 7,252, 0,186, 7,252, 0,187, 7,216, 0,188, 7, 23, 0, 52, 0, 0, 0, 7, 6, 0, 0,189, 7, + 2, 0, 53, 6, 2, 0, 54, 6, 2, 0,190, 7, 2, 0, 37, 0, 2, 0,153, 7, 2, 0,177, 6, 2, 0, 19, 0, 2, 1,166, 7, + 12, 0,191, 7, 12, 0, 6, 6, 12, 0,192, 7, 12, 0,193, 7, 3, 1, 21, 0, 3, 1, 0, 0, 3, 1, 1, 0,214, 0, 62, 6, + 23, 0,194, 7, 23, 0,195, 7, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0,196, 7, 2, 0,197, 7, 2, 0,198, 7, 2, 0, 19, 0, + 7, 0, 85, 2, 2, 0,152, 7, 2, 0,156, 7, 4, 0, 43, 0, 4, 1,166, 7, 12, 0,199, 7, 12, 0,200, 7, 12, 0,192, 7, + 0, 0,201, 7, 9, 0,202, 7, 5, 1, 12, 0, 0, 0,203, 7, 2, 0,204, 7, 2, 0,205, 7, 2, 0,206, 7, 2, 0,207, 7, + 2, 0,252, 4, 2, 0,247, 4,216, 0,208, 7, 46, 0,209, 7, 4, 0,210, 7, 4, 0,211, 7, 0, 0, 35, 0, 6, 1, 1, 0, + 0, 0,212, 7, 7, 1, 8, 0, 57, 0,213, 7, 57, 0,214, 7, 7, 1,215, 7, 7, 1,216, 7, 7, 1,217, 7, 2, 0,129, 0, + 2, 0, 19, 0, 4, 0,218, 7, 8, 1, 4, 0, 4, 0,122, 6, 4, 0,219, 7, 4, 0,127, 6, 4, 0,220, 7, 9, 1, 2, 0, + 4, 0,221, 7, 4, 0,222, 7, 10, 1, 7, 0, 7, 0,223, 7, 7, 0,224, 7, 7, 0,225, 7, 4, 0, 19, 0, 4, 0, 37, 0, + 7, 0,118, 4, 7, 0,226, 7, 11, 1, 6, 0, 0, 0,227, 7, 0, 0, 81, 6, 49, 0,137, 0, 2, 0,106, 0, 2, 0,251, 4, + 4, 0, 37, 0, 12, 1, 21, 0, 12, 1, 0, 0, 12, 1, 1, 0, 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, 4, 0,228, 7, + 4, 0,229, 7, 4, 0,230, 7, 6, 1,231, 7, 0, 0,227, 7, 4, 0,232, 7, 4, 0,233, 7, 11, 1, 87, 3, 8, 1,234, 7, + 9, 1,235, 7, 10, 1,236, 7, 7, 1,237, 7, 7, 1,238, 7, 7, 1,239, 7, 57, 0,240, 7, 57, 0,241, 7, 13, 1, 12, 0, + 0, 0, 5, 2, 9, 0,223, 0, 0, 0,224, 0, 4, 0,227, 0, 4, 0,235, 0, 9, 0,228, 0, 7, 0,230, 0, 7, 0,231, 0, + 9, 0,242, 7, 9, 0,243, 7, 9, 0,232, 0, 9, 0,234, 0, 14, 1, 43, 0, 14, 1, 0, 0, 14, 1, 1, 0, 9, 0,244, 7, + 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0, 4, 0, 23, 0, 4, 0, 88, 0, 4, 0,245, 7, 4, 0,246, 7, + 4, 0,229, 7, 4, 0,230, 7, 4, 0,247, 7, 4, 0,246, 0, 4, 0,248, 7, 4, 0,249, 7, 7, 0,250, 7, 7, 0,251, 7, + 4, 0,126, 0, 4, 0,252, 7, 12, 1,253, 7, 36, 0, 80, 0, 46, 0,134, 0, 49, 0,137, 0, 7, 0,254, 7, 7, 0,255, 7, + 13, 1, 59, 1, 14, 1, 0, 8, 14, 1, 1, 8, 14, 1, 2, 8, 12, 0, 3, 8, 15, 1, 4, 8, 16, 1, 5, 8, 7, 0, 6, 8, + 7, 0, 7, 8, 4, 0, 8, 8, 7, 0, 9, 8, 9, 0, 10, 8, 4, 0, 11, 8, 4, 0, 12, 8, 4, 0, 13, 8, 7, 0, 14, 8, + 17, 1, 4, 0, 17, 1, 0, 0, 17, 1, 1, 0, 12, 0, 15, 8, 14, 1, 16, 8,202, 0, 6, 0, 12, 0, 17, 8, 12, 0, 3, 8, + 12, 0, 18, 8, 14, 1, 19, 8, 0, 0, 20, 8, 0, 0, 21, 8, 18, 1, 4, 0, 7, 0, 22, 8, 7, 0,109, 0, 2, 0, 23, 8, + 2, 0, 24, 8, 19, 1, 6, 0, 7, 0, 25, 8, 7, 0, 26, 8, 7, 0, 27, 8, 7, 0, 28, 8, 4, 0, 29, 8, 4, 0, 30, 8, + 20, 1, 12, 0, 7, 0, 31, 8, 7, 0, 32, 8, 7, 0, 33, 8, 7, 0, 34, 8, 7, 0, 35, 8, 7, 0, 36, 8, 7, 0, 37, 8, + 7, 0, 38, 8, 7, 0, 39, 8, 7, 0, 40, 8, 4, 0,233, 2, 4, 0, 41, 8, 21, 1, 2, 0, 7, 0, 91, 5, 7, 0, 37, 0, + 22, 1, 5, 0, 7, 0, 42, 8, 7, 0, 43, 8, 4, 0, 90, 0, 4, 0,191, 2, 4, 0, 44, 8, 23, 1, 6, 0, 23, 1, 0, 0, + 23, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 45, 8, 2, 0, 57, 0, 24, 1, 8, 0, 24, 1, 0, 0, 24, 1, 1, 0, + 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 45, 8, 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,126, 0, 25, 1, 45, 0, 25, 1, 0, 0, + 25, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 45, 8, 2, 0,242, 0, 2, 0, 28, 4, 2, 0, 46, 8, 7, 0, 47, 8, + 7, 0, 89, 0, 7, 0,246, 2, 4, 0, 48, 8, 4, 0, 82, 0, 4, 0,193, 2, 7, 0, 49, 8, 7, 0, 50, 8, 7, 0, 51, 8, + 7, 0, 52, 8, 7, 0, 53, 8, 7, 0, 54, 8, 7, 0,243, 2, 7, 0, 56, 1, 7, 0, 55, 8, 7, 0, 56, 8, 7, 0, 37, 0, + 7, 0, 57, 8, 7, 0, 58, 8, 7, 0, 59, 8, 2, 0, 60, 8, 2, 0, 61, 8, 2, 0, 62, 8, 2, 0, 63, 8, 2, 0, 64, 8, + 2, 0, 65, 8, 2, 0, 66, 8, 2, 0, 67, 8, 2, 0, 28, 2, 2, 0, 68, 8, 2, 0, 25, 2, 2, 0, 69, 8, 0, 0, 70, 8, + 0, 0, 71, 8, 7, 0,240, 0, 26, 1, 72, 8, 67, 0,241, 1, 27, 1, 16, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 17, 0, + 2, 0, 19, 0, 2, 0, 45, 8, 2, 0,242, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, 7, 0,241, 2, + 7, 0,242, 2, 7, 0, 73, 8, 7, 0,243, 2, 7, 0,245, 2, 7, 0,246, 2,228, 0, 5, 0, 2, 0, 17, 0, 2, 0,218, 7, + 2, 0, 19, 0, 2, 0, 74, 8, 27, 0,151, 6,227, 0, 3, 0, 4, 0, 69, 0, 4, 0, 75, 8,228, 0, 2, 0, 28, 1, 7, 0, + 28, 1, 0, 0, 28, 1, 1, 0, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, 9, 0, 76, 8, 29, 1, 5, 0, + 0, 0, 20, 0, 7, 0, 76, 1, 7, 0, 77, 8, 4, 0, 78, 8, 4, 0, 37, 0, 30, 1, 4, 0, 2, 0, 17, 0, 2, 0, 19, 0, + 2, 0, 43, 0, 2, 0, 70, 0, 31, 1, 4, 0, 0, 0, 20, 0, 66, 0, 79, 8, 7, 0, 76, 1, 7, 0, 37, 0, 32, 1, 6, 0, + 2, 0, 80, 8, 2, 0, 81, 8, 2, 0, 17, 0, 2, 0, 82, 8, 0, 0, 83, 8, 0, 0, 84, 8, 33, 1, 5, 0, 4, 0, 17, 0, + 4, 0, 37, 0, 0, 0, 20, 0, 0, 0, 85, 8, 0, 0, 86, 8, 34, 1, 3, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, + 35, 1, 4, 0, 2, 0, 87, 8, 2, 0, 88, 8, 2, 0, 19, 0, 2, 0, 37, 0, 36, 1, 6, 0, 0, 0, 20, 0, 0, 0, 89, 8, + 2, 0, 90, 8, 2, 0,243, 2, 2, 0, 69, 1, 2, 0, 70, 0, 37, 1, 5, 0, 0, 0, 20, 0, 7, 0,109, 0, 7, 0,120, 4, + 2, 0, 19, 0, 2, 0,205, 2, 38, 1, 3, 0, 0, 0, 20, 0, 4, 0,193, 2, 4, 0, 87, 8, 39, 1, 7, 0, 0, 0, 20, 0, + 7, 0,120, 4, 0, 0, 91, 8, 0, 0, 92, 8, 2, 0, 69, 1, 2, 0, 43, 0, 4, 0, 93, 8, 40, 1, 4, 0, 0, 0, 94, 8, + 0, 0, 95, 8, 4, 0, 17, 0, 7, 0,209, 2, 41, 1, 3, 0, 32, 0, 96, 8, 0, 0, 97, 8, 0, 0, 98, 8, 42, 1, 18, 0, + 42, 1, 0, 0, 42, 1, 1, 0, 2, 0, 17, 0, 2, 0, 99, 8, 2, 0, 19, 0, 2, 0,100, 8, 2, 0,101, 8, 2, 0,102, 8, + 2, 0, 43, 0, 2, 0, 70, 0, 0, 0, 20, 0, 9, 0, 2, 0, 43, 1,103, 8, 32, 0, 45, 0, 2, 0,107, 5, 2, 0, 6, 8, + 2, 0,104, 8, 2, 0, 37, 0, 44, 1, 11, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,105, 8, 2, 0, 19, 0, 2, 0,205, 2, + 2, 0,106, 8, 4, 0,107, 8, 4, 0,108, 8, 4, 0,109, 8, 4, 0,110, 8, 4, 0,111, 8, 45, 1, 1, 0, 0, 0,112, 8, + 46, 1, 4, 0, 42, 0,121, 6, 0, 0,113, 8, 4, 0, 69, 1, 4, 0, 19, 0, 43, 1, 18, 0, 43, 1, 0, 0, 43, 1, 1, 0, + 43, 1,114, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,115, 8, 2, 0,102, 8, 2, 0, 99, 8, 2, 0,116, 8, 2, 0, 70, 0, + 2, 0,238, 1, 0, 0, 20, 0, 9, 0, 2, 0, 47, 1,103, 8, 42, 1,117, 8, 2, 0, 15, 0, 2, 0,118, 8, 4, 0,119, 8, + 48, 1, 3, 0, 4, 0,219, 2, 4, 0, 37, 0, 32, 0, 45, 0, 49, 1, 12, 0,160, 0,120, 8, 2, 0, 17, 0, 2, 0, 19, 0, + 4, 0, 47, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,121, 8, 2, 0,122, 8, 2, 0,123, 8, 2, 0,124, 8, 2, 0,125, 8, + 7, 0,126, 8, 50, 1, 13, 0, 2, 0, 19, 0, 2, 0,127, 8, 4, 0, 47, 8, 4, 0, 89, 0, 2, 0,128, 8, 7, 0,242, 3, + 7, 0,129, 8, 15, 1, 4, 8, 51, 1,130, 8, 2, 0, 17, 0, 2, 0,131, 8, 2, 0,132, 8, 2, 0,133, 8, 52, 1, 11, 0, + 4, 0,219, 2, 2, 0, 17, 0, 2, 0, 19, 0, 32, 0, 45, 0, 80, 0,134, 8, 0, 0, 20, 0, 7, 0,135, 8, 7, 0,136, 8, + 7, 0,128, 3, 2, 0,137, 8, 2, 0,138, 8, 53, 1, 5, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 37, 0, 46, 0,134, 0, + 32, 0,204, 5, 54, 1, 5, 0, 4, 0, 19, 0, 4, 0, 17, 0, 0, 0, 20, 0, 0, 0, 85, 8, 32, 0, 45, 0, 55, 1, 13, 0, + 2, 0, 19, 0, 2, 0, 17, 0, 2, 0, 99, 8, 2, 0,129, 3, 7, 0,139, 8, 7, 0,140, 8, 7, 0, 64, 1, 7, 0, 65, 1, + 7, 0,100, 3, 7, 0,103, 3, 7, 0,141, 8, 7, 0,142, 8, 32, 0,143, 8, 56, 1, 10, 0, 2, 0, 19, 0, 2, 0, 17, 0, + 4, 0, 47, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,121, 8, 2, 0, 43, 0, 2, 0, 64, 0, 2, 0,144, 8, 2, 0,145, 8, + 57, 1, 8, 0, 32, 0, 45, 0, 7, 0,240, 2, 7, 0,146, 8, 7, 0,147, 8, 7, 0,235, 2, 2, 0, 19, 0, 2, 0,205, 2, + 7, 0,148, 8, 58, 1, 12, 0, 2, 0, 17, 0, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0,243, 2, 2, 0,219, 2, 2, 0,149, 8, + 4, 0, 37, 0, 7, 0,150, 8, 7, 0,151, 8, 7, 0,152, 8, 7, 0,153, 8, 0, 0,154, 8, 59, 1, 9, 0, 2, 0, 19, 0, + 2, 0, 17, 0, 4, 0, 47, 8, 4, 0, 89, 0, 0, 0, 20, 0, 2, 0,136, 1, 2, 0, 64, 0, 2, 0,144, 8, 2, 0,145, 8, + 60, 1, 7, 0, 4, 0,193, 2, 4, 0,155, 8, 4, 0,156, 8, 4, 0,157, 8, 7, 0,158, 8, 7, 0,159, 8, 0, 0, 91, 8, + 61, 1, 7, 0, 0, 0,160, 8, 32, 0,161, 8, 0, 0, 97, 8, 2, 0,162, 8, 2, 0, 43, 0, 4, 0, 70, 0, 0, 0, 98, 8, + 62, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 47, 8, 4, 0, 89, 0, 0, 0,163, 8, 0, 0,164, 8, 63, 1, 1, 0, + 4, 0, 19, 0, 64, 1, 6, 0, 0, 0, 92, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,165, 8, 7, 0,166, 8, 42, 0,121, 6, + 65, 1, 4, 0, 0, 0, 70, 2, 2, 0, 19, 0, 4, 0, 17, 0, 32, 0, 45, 0, 66, 1, 2, 0, 4, 0, 17, 0, 4, 0, 42, 6, + 67, 1, 6, 0, 0, 0, 94, 8, 0, 0, 95, 8, 4, 0, 17, 0, 7, 0, 36, 2, 32, 0, 50, 3, 32, 0,167, 8, 47, 1, 10, 0, + 47, 1, 0, 0, 47, 1, 1, 0, 47, 1,114, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 99, 8, 2, 0,168, 8, 0, 0, 20, 0, + 9, 0, 2, 0, 32, 0, 45, 0, 68, 1, 10, 0, 7, 0,128, 3, 7, 0,169, 8, 7, 0,170, 8, 7, 0,171, 8, 7, 0,172, 8, + 4, 0, 19, 0, 7, 0,149, 8, 7, 0,173, 8, 7, 0,174, 8, 7, 0, 37, 0, 16, 1, 12, 0, 16, 1, 0, 0, 16, 1, 1, 0, + 15, 1,175, 8, 9, 0,223, 0, 4, 0,171, 3, 4, 0,229, 3, 4, 0,230, 3, 4, 0,176, 8, 4, 0,177, 8, 4, 0,178, 8, + 7, 0,242, 3, 7, 0, 37, 0, 51, 1, 8, 0, 7, 0,179, 8, 7, 0,180, 8, 7, 0,181, 8, 7, 0,182, 8, 7, 0,183, 8, + 7, 0,184, 8, 7, 0,185, 8, 7, 0,186, 8, 15, 1, 15, 0, 27, 0, 31, 0, 0, 0,222, 0, 43, 0,149, 0, 9, 0,223, 0, + 43, 0,187, 8, 36, 0, 80, 0, 7, 0,242, 3, 7, 0,188, 8, 7, 0,129, 8, 7, 0,179, 8, 7, 0,180, 8, 7, 0,189, 8, + 4, 0, 90, 0, 4, 0,178, 8, 9, 0,190, 8, 69, 1, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, + 7, 0, 8, 6, 1, 1,191, 8,214, 0, 62, 6, 15, 1, 4, 8, 2, 0, 69, 1, 2, 0,127, 8, 2, 0, 89, 2, 2, 0, 90, 2, + 2, 0, 19, 0, 2, 0,114, 6, 4, 0, 70, 0, 70, 1, 6, 0, 70, 1, 0, 0, 70, 1, 1, 0, 32, 0, 45, 0, 9, 0,192, 8, + 4, 0,247, 0, 4, 0, 37, 0, 67, 0, 4, 0, 27, 0, 31, 0, 12, 0,193, 8, 4, 0,131, 0, 7, 0,194, 8, 71, 1, 27, 0, + 71, 1, 0, 0, 71, 1, 1, 0, 26, 0,195, 8, 71, 1, 38, 0, 12, 0,196, 8, 0, 0, 20, 0, 7, 0,197, 8, 7, 0,198, 8, + 7, 0,199, 8, 7, 0,200, 8, 4, 0, 19, 0, 7, 0,201, 8, 7, 0,202, 8, 7, 0,203, 8, 7, 0, 76, 1, 7, 0, 36, 2, + 7, 0,204, 8, 7, 0,191, 2, 7, 0,205, 8, 7, 0,206, 8, 7, 0,207, 8, 7, 0,208, 8, 7, 0,209, 8, 7, 0,172, 0, + 4, 0,131, 0, 2, 0,136, 5, 2, 0,136, 1, 72, 1, 25, 0, 27, 0, 31, 0, 39, 0, 75, 0, 12, 0,210, 8, 12, 0,211, 8, + 12, 0,212, 8, 71, 1,213, 8, 9, 0,214, 8, 9, 0,215, 8, 4, 0, 19, 0, 4, 0, 15, 6, 2, 0,247, 2, 2, 0, 72, 6, + 4, 0, 37, 0, 4, 0,131, 0, 4, 0,216, 8, 2, 0,217, 8, 2, 0,218, 8, 2, 0,219, 8, 2, 0,220, 8, 4, 0,221, 8, + 4, 0,222, 8, 4, 0,223, 8, 4, 0,224, 8, 4, 0,225, 8, 4, 0,226, 8, 73, 1, 2, 0, 7, 0,152, 2, 4, 0, 19, 0, + 74, 1, 5, 0, 73, 1,227, 8, 4, 0,191, 2, 4, 0,228, 8, 4, 0,229, 8, 4, 0, 19, 0, 75, 1, 6, 0, 4, 0, 37, 0, + 4, 0, 72, 6, 4, 0,223, 8, 4, 0,224, 8, 4, 0,225, 8, 4, 0,226, 8, 76, 1, 42, 0, 76, 1, 0, 0, 76, 1, 1, 0, + 26, 0,195, 8, 12, 0,155, 3, 0, 0, 20, 0, 2, 0, 19, 0, 2, 0,230, 8, 2, 0,231, 8, 2, 0,232, 8, 2, 0,114, 3, + 2, 0,233, 8, 4, 0, 72, 2, 4, 0,223, 8, 4, 0,224, 8, 71, 1,234, 8, 76, 1, 38, 0, 76, 1,235, 8, 12, 0,236, 8, + 9, 0,237, 8, 9, 0,238, 8, 9, 0,239, 8, 7, 0, 64, 1, 7, 0,172, 0, 7, 0,240, 8, 7, 0, 15, 2, 7, 0,105, 3, + 7, 0,107, 3, 2, 0,137, 3, 2, 0, 37, 0, 7, 0,241, 8, 7, 0,242, 8, 7, 0,110, 3, 7, 0,243, 8, 7, 0,244, 8, + 7, 0,245, 8, 7, 0,246, 8, 7, 0,247, 8, 7, 0,248, 8, 7, 0,249, 8, 7, 0,250, 8, 7, 0, 65, 2, 32, 0,251, 8, +161, 0, 11, 0, 12, 0,252, 8, 2, 0, 19, 0, 2, 0,253, 8, 7, 0,101, 2, 7, 0,254, 8, 7, 0,255, 8, 12, 0, 0, 9, + 4, 0, 1, 9, 4, 0, 2, 9, 9, 0, 3, 9, 9, 0, 4, 9, 77, 1, 1, 0, 4, 0, 2, 9, 78, 1, 12, 0, 4, 0, 2, 9, + 7, 0,111, 8, 2, 0, 5, 9, 2, 0, 6, 9, 7, 0, 7, 9, 7, 0, 8, 9, 2, 0, 9, 9, 2, 0, 19, 0, 7, 0, 10, 9, + 7, 0, 11, 9, 7, 0, 12, 9, 7, 0, 13, 9, 79, 1, 7, 0, 79, 1, 0, 0, 79, 1, 1, 0, 12, 0, 14, 9, 4, 0, 19, 0, + 4, 0, 15, 9, 0, 0,233, 3,248, 0, 16, 9,160, 0, 7, 0, 27, 0, 31, 0, 12, 0, 17, 9, 12, 0,252, 8, 12, 0, 18, 9, + 12, 0,100, 0, 4, 0, 19, 0, 4, 0, 19, 9,218, 0, 4, 0, 27, 0,175, 8, 12, 0,252, 8, 4, 0, 20, 9, 4, 0, 19, 0, + 80, 1, 17, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, +160, 0, 90, 3,218, 0, 21, 9, 0, 0, 69, 1, 0, 0, 65, 6, 2, 0, 19, 0, 2, 0, 22, 9, 2, 0,115, 6, 2, 0,114, 6, + 2, 0, 23, 9, 7, 0, 24, 9, 81, 1, 8, 0, 81, 1, 0, 0, 81, 1, 1, 0, 79, 1, 25, 9, 36, 0, 80, 0, 12, 0, 94, 3, + 4, 0, 19, 0, 0, 0, 20, 0, 4, 0, 26, 9, 82, 1, 5, 0, 82, 1, 0, 0, 82, 1, 1, 0, 36, 0, 80, 0, 2, 0, 19, 0, + 0, 0, 27, 9, 83, 1, 14, 0, 83, 1, 0, 0, 83, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 28, 9, + 0, 0, 29, 9, 0, 0, 27, 9, 7, 0, 30, 9, 7, 0, 31, 9, 4, 0, 37, 0, 36, 0, 80, 0, 7, 0, 32, 9, 7, 0, 33, 9, + 84, 1, 9, 0, 84, 1, 0, 0, 84, 1, 1, 0, 32, 0, 34, 9, 0, 0,250, 2, 7, 0, 35, 9, 2, 0, 36, 9, 2, 0, 19, 0, + 2, 0, 17, 0, 2, 0, 37, 9, 85, 1, 7, 0, 42, 0,121, 6, 26, 0,195, 8, 4, 0, 19, 0, 4, 0, 38, 9, 12, 0, 39, 9, + 32, 0, 34, 9, 0, 0,250, 2, 86, 1, 15, 0, 32, 0, 34, 9, 2, 0, 40, 9, 2, 0, 19, 0, 2, 0, 41, 9, 2, 0, 42, 9, + 0, 0,250, 2, 32, 0, 43, 9, 0, 0, 44, 9, 7, 0, 45, 9, 7, 0, 36, 2, 7, 0, 46, 9, 7, 0, 47, 9, 2, 0, 17, 0, + 2, 0, 69, 1, 7, 0, 76, 1, 87, 1, 6, 0, 32, 0, 34, 9, 7, 0,227, 8, 2, 0, 48, 9, 2, 0, 49, 9, 2, 0, 19, 0, + 2, 0, 50, 9, 88, 1, 6, 0, 32, 0, 34, 9, 4, 0, 51, 9, 4, 0, 52, 9, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,250, 2, + 89, 1, 4, 0, 32, 0, 34, 9, 4, 0, 19, 0, 4, 0, 51, 9, 0, 0,250, 2, 90, 1, 4, 0, 32, 0, 34, 9, 4, 0, 19, 0, + 4, 0, 51, 9, 0, 0,250, 2, 91, 1, 10, 0, 32, 0, 34, 9, 4, 0, 53, 9, 7, 0,125, 0, 4, 0, 19, 0, 2, 0,117, 6, + 2, 0, 54, 9, 2, 0, 43, 0, 2, 0, 70, 0, 7, 0, 55, 9, 0, 0,250, 2, 92, 1, 4, 0, 32, 0, 34, 9, 4, 0, 19, 0, + 4, 0, 51, 9, 0, 0,250, 2, 93, 1, 10, 0, 32, 0, 34, 9, 2, 0, 17, 0, 2, 0, 36, 4, 4, 0, 88, 0, 4, 0, 89, 0, + 7, 0,146, 8, 7, 0,147, 8, 4, 0, 37, 0,160, 0,120, 8, 0, 0,250, 2, 94, 1, 4, 0, 32, 0, 34, 9, 4, 0,115, 3, + 4, 0, 56, 9, 0, 0,250, 2, 95, 1, 4, 0, 32, 0, 34, 9, 4, 0,115, 3, 4, 0, 37, 0, 0, 0,250, 2, 96, 1, 5, 0, + 32, 0, 34, 9, 7, 0,125, 0, 4, 0, 57, 9, 4, 0,115, 3, 4, 0,116, 3, 97, 1, 6, 0, 32, 0, 34, 9, 4, 0, 58, 9, + 4, 0, 59, 9, 7, 0, 60, 9, 7, 0, 61, 9, 0, 0,250, 2, 98, 1, 16, 0, 32, 0, 34, 9, 32, 0,235, 8, 4, 0, 17, 0, + 7, 0, 62, 9, 7, 0, 63, 9, 7, 0, 64, 9, 7, 0, 65, 9, 7, 0, 66, 9, 7, 0, 67, 9, 7, 0, 68, 9, 7, 0, 69, 9, + 7, 0, 70, 9, 2, 0, 19, 0, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0, 70, 0, 99, 1, 3, 0, 32, 0, 34, 9, 4, 0, 19, 0, + 4, 0, 28, 2,100, 1, 5, 0, 32, 0, 34, 9, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0, 71, 9, 0, 0,250, 2,101, 1, 10, 0, + 32, 0, 34, 9, 0, 0,250, 2, 2, 0, 72, 9, 2, 0, 73, 9, 0, 0, 74, 9, 0, 0, 75, 9, 7, 0, 76, 9, 7, 0, 77, 9, + 7, 0, 78, 9, 7, 0, 79, 9,102, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 80, 9, + 7, 0, 81, 9, 2, 0, 19, 0, 2, 0, 28, 2,103, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, + 7, 0, 80, 9, 7, 0, 81, 9, 2, 0, 19, 0, 2, 0, 28, 2,104, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, + 7, 0, 12, 0, 7, 0, 80, 9, 7, 0, 81, 9, 2, 0, 19, 0, 2, 0, 28, 2,105, 1, 7, 0, 32, 0, 34, 9, 0, 0,250, 2, + 7, 0, 76, 1, 7, 0, 85, 1, 2, 0, 19, 0, 2, 0, 69, 1, 4, 0, 37, 0,106, 1, 5, 0, 32, 0, 50, 3, 7, 0, 76, 1, + 2, 0, 54, 3, 0, 0, 56, 3, 0, 0, 82, 9,107, 1, 10, 0,107, 1, 0, 0,107, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, + 0, 0, 83, 9, 7, 0, 20, 1, 7, 0, 21, 1, 2, 0, 14, 9, 2, 0, 84, 9, 32, 0, 45, 0,108, 1, 22, 0,108, 1, 0, 0, +108, 1, 1, 0, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 85, 9, 2, 0, 86, 9, 36, 0, 80, 0,160, 0,120, 8, 32, 0,164, 0, + 7, 0, 88, 0, 7, 0, 89, 0, 7, 0, 87, 9, 7, 0, 88, 9, 7, 0, 89, 9, 7, 0, 90, 9, 7, 0,236, 2, 7, 0, 91, 9, + 7, 0,122, 8, 7, 0, 92, 9, 0, 0, 93, 9, 0, 0, 94, 9, 12, 0, 96, 3,109, 1, 8, 0, 7, 0, 43, 2, 7, 0,146, 8, + 7, 0,147, 8, 9, 0, 2, 0, 2, 0, 95, 9, 2, 0, 96, 9, 2, 0, 97, 9, 2, 0, 98, 9,110, 1, 18, 0,110, 1, 0, 0, +110, 1, 1, 0,110, 1, 99, 9, 0, 0, 20, 0,109, 1,100, 9, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,101, 9, 2, 0,102, 9, + 2, 0,103, 9, 2, 0,104, 9, 4, 0, 43, 0, 7, 0,105, 9, 7, 0,106, 9, 4, 0,107, 9, 4, 0,108, 9,110, 1,109, 9, +111, 1,110, 9,112, 1, 33, 0,112, 1, 0, 0,112, 1, 1, 0,112, 1,111, 9, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, + 2, 0,228, 7, 2, 0, 6, 8, 2, 0,112, 9, 2, 0,133, 0, 2, 0,102, 9, 2, 0,218, 7, 12, 0,115, 8, 12, 0,113, 9, + 27, 0,151, 6, 9, 0,114, 9, 7, 0,105, 9, 7, 0,106, 9, 7, 0, 74, 2, 7, 0,115, 9, 2, 0,116, 9, 2, 0,117, 9, + 7, 0,118, 9, 7, 0,119, 9, 2, 0,120, 9, 2, 0,121, 9, 9, 0,122, 9, 24, 0,123, 9, 24, 0,124, 9, 24, 0,125, 9, +113, 1,150, 0,114, 1,126, 9,115, 1,127, 9,111, 1, 8, 0,111, 1, 0, 0,111, 1, 1, 0,112, 1,128, 9,112, 1,129, 9, +110, 1,130, 9,110, 1,109, 9, 4, 0, 19, 0, 4, 0, 37, 0, 60, 0, 23, 0, 27, 0, 31, 0, 39, 0, 75, 0,162, 0, 93, 3, + 12, 0,131, 9, 12, 0,132, 9,109, 1,133, 9, 12, 0,134, 9, 4, 0, 17, 0, 4, 0,135, 9, 4, 0,136, 9, 4, 0,137, 9, + 4, 0, 19, 0, 4, 0, 37, 0, 12, 0,138, 9,115, 1,139, 9,110, 1,140, 9,110, 1,141, 9, 9, 0,142, 9, 9, 0,143, 9, + 4, 0,144, 9, 9, 0,145, 9, 9, 0,146, 9, 9, 0,147, 9,116, 1, 6, 0, 4, 0,124, 0, 4, 0,126, 0, 4, 0,218, 7, + 0, 0,148, 9, 0, 0,149, 9, 2, 0, 37, 0,117, 1, 16, 0, 2, 0,172, 7, 2, 0,173, 7, 2, 0,150, 9, 2, 0,170, 8, + 2, 0,151, 9, 2, 0, 68, 0, 7, 0,235, 2, 7, 0,152, 9, 7, 0,153, 9, 2, 0, 91, 1, 0, 0,154, 9, 0, 0,155, 9, + 2, 0,156, 9, 2, 0, 37, 0, 4, 0,157, 9, 4, 0,158, 9,118, 1, 9, 0, 7, 0,159, 9, 7, 0,160, 9, 7, 0,189, 8, + 7, 0,109, 0, 7, 0,161, 9, 7, 0, 78, 6, 2, 0,162, 9, 0, 0,163, 9, 0, 0, 37, 0,119, 1, 4, 0, 7, 0,164, 9, + 7, 0,165, 9, 2, 0,162, 9, 2, 0, 37, 0,120, 1, 3, 0, 7, 0,166, 9, 7, 0,167, 9, 7, 0, 15, 0,121, 1, 7, 0, + 0, 0, 5, 2, 2, 0,249, 4, 2, 0,250, 4, 2, 0,251, 4, 2, 0,189, 4, 4, 0,126, 0, 4, 0, 34, 4,122, 1, 7, 0, + 7, 0,168, 9, 7, 0,169, 9, 7, 0,170, 9, 7, 0, 85, 2, 7, 0,171, 9, 7, 0,172, 9, 7, 0,173, 9,123, 1, 4, 0, + 2, 0,174, 9, 2, 0,175, 9, 2, 0,176, 9, 2, 0,177, 9,124, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,125, 1, 2, 0, + 0, 0,166, 0, 0, 0,178, 9,126, 1, 1, 0, 0, 0, 20, 0,127, 1, 10, 0, 0, 0,179, 9, 0, 0,180, 9, 0, 0, 71, 6, + 0, 0,181, 9, 2, 0,150, 9, 2, 0,182, 9, 7, 0,183, 9, 7, 0,184, 9, 7, 0,185, 9, 7, 0, 91, 9,128, 1, 2, 0, + 9, 0,186, 9, 9, 0,187, 9,129, 1, 11, 0, 0, 0,251, 4, 0, 0, 17, 0, 0, 0,162, 9, 0, 0,109, 0, 0, 0,188, 9, + 0, 0,106, 0, 0, 0, 70, 2, 7, 0,189, 9, 7, 0,190, 9, 7, 0,191, 9, 7, 0,192, 9,130, 1, 8, 0, 7, 0, 80, 8, + 7, 0,125, 0, 7, 0,155, 9, 7, 0,157, 2, 7, 0,193, 9, 7, 0,236, 0, 7, 0,194, 9, 4, 0, 17, 0,131, 1, 4, 0, + 2, 0,195, 9, 2, 0,196, 9, 2, 0,197, 9, 2, 0, 37, 0,132, 1, 1, 0, 0, 0, 20, 0,133, 1, 4, 0, 7, 0, 5, 0, + 7, 0, 6, 0, 2, 0, 19, 0, 2, 0,198, 9,134, 1, 10, 0, 2, 0,222, 3, 2, 0, 19, 0, 7, 0,120, 4, 7, 0,199, 9, + 7, 0,200, 9, 7, 0,201, 9, 7, 0,202, 9,133, 1,203, 9,133, 1,204, 9,133, 1,205, 9, 63, 0, 9, 0, 4, 0, 19, 0, + 4, 0, 64, 0, 24, 0,206, 9, 24, 0,207, 9,134, 1,208, 9, 7, 0,209, 9, 7, 0,210, 9, 7, 0,211, 9, 7, 0,212, 9, +135, 1, 4, 0, 47, 0,229, 2, 7, 0,213, 9, 7, 0,170, 1, 7, 0, 37, 0,191, 0, 17, 0, 27, 0, 31, 0,135, 1,214, 9, + 63, 0,203, 9, 51, 0,134, 1, 2, 0, 19, 0, 2, 0,230, 5, 4, 0,106, 0, 7, 0,215, 9, 7, 0, 82, 2, 4, 0,216, 9, + 7, 0,217, 9, 7, 0,218, 9, 7, 0,219, 9, 7, 0,170, 1, 2, 0,104, 1, 0, 0,220, 9, 0, 0,210, 6,136, 1, 10, 0, + 4, 0, 17, 0, 4, 0,125, 0, 4, 0, 19, 0, 4, 0,177, 3, 4, 0,221, 9, 4, 0,222, 9, 4, 0,223, 9, 0, 0, 92, 0, + 0, 0, 20, 0, 9, 0, 2, 0, 91, 0, 6, 0,136, 1,224, 9, 4, 0,225, 9, 4, 0,226, 9, 4, 0,227, 9, 4, 0, 37, 0, + 9, 0,228, 9,137, 1, 5, 0, 7, 0,152, 2, 7, 0,219, 2, 7, 0, 36, 2, 2, 0,128, 2, 2, 0, 37, 0,138, 1, 5, 0, + 7, 0,152, 2, 7, 0,229, 9, 7, 0,230, 9, 7, 0,231, 9, 7, 0,219, 2,139, 1, 5, 0, 32, 0,232, 9,140, 1, 22, 0, + 7, 0,203, 5, 7, 0,233, 9, 7, 0, 57, 0,141, 1, 7, 0, 4, 0,234, 9, 4, 0,235, 9, 4, 0,236, 9, 7, 0,237, 9, + 7, 0,238, 9, 7, 0,239, 9, 7, 0, 57, 0,142, 1, 8, 0,142, 1, 0, 0,142, 1, 1, 0, 32, 0, 45, 0, 4, 0,255, 0, + 2, 0, 19, 0, 2, 0, 69, 1, 7, 0,219, 2, 7, 0, 88, 8,143, 1, 6, 0,143, 1, 0, 0,143, 1, 1, 0, 32, 0, 45, 0, + 2, 0,204, 2, 2, 0, 19, 0, 2, 0,240, 9,144, 1, 18, 0,138, 1,171, 3,138, 1,241, 9,137, 1,242, 9,138, 1, 72, 8, +139, 1,243, 9, 4, 0, 82, 0, 7, 0,219, 2, 7, 0,246, 2, 7, 0,244, 9, 4, 0,234, 9, 4, 0,245, 9, 7, 0,238, 9, + 7, 0,239, 9, 7, 0,106, 0, 2, 0, 19, 0, 2, 0,246, 9, 2, 0,247, 9, 2, 0,248, 9,145, 1,110, 0, 27, 0, 31, 0, + 39, 0, 75, 0,146, 1,249, 9,169, 0, 56, 4, 4, 0, 19, 0, 2, 0, 17, 0, 2, 0, 72, 9, 2, 0,250, 9, 2, 0,251, 9, + 2, 0,137, 3, 2, 0,252, 9, 2, 0,253, 9, 2, 0,254, 9, 2, 0,255, 9, 2, 0, 0, 10, 2, 0, 1, 10, 2, 0, 2, 10, + 2, 0,238, 4, 2, 0,115, 5, 2, 0, 3, 10, 2, 0, 4, 10, 2, 0, 5, 10, 2, 0, 6, 10, 2, 0, 7, 10, 2, 0, 25, 2, + 2, 0, 65, 8, 2, 0, 41, 8, 2, 0, 8, 10, 2, 0, 9, 10, 2, 0,187, 3, 2, 0,188, 3, 2, 0, 10, 10, 2, 0, 11, 10, + 2, 0, 12, 10, 2, 0, 13, 10, 7, 0, 14, 10, 7, 0, 15, 10, 7, 0, 16, 10, 2, 0, 17, 10, 2, 0, 18, 10, 7, 0, 19, 10, + 7, 0, 20, 10, 7, 0, 21, 10, 7, 0, 47, 8, 7, 0, 89, 0, 7, 0,246, 2, 7, 0, 53, 8, 7, 0, 22, 10, 7, 0, 23, 10, + 7, 0, 24, 10, 4, 0, 48, 8, 4, 0, 46, 8, 4, 0, 25, 10, 7, 0, 49, 8, 7, 0, 50, 8, 7, 0, 51, 8, 7, 0, 26, 10, + 7, 0, 27, 10, 7, 0, 28, 10, 7, 0, 29, 10, 7, 0, 30, 10, 7, 0, 57, 0, 7, 0, 31, 10, 7, 0, 32, 10, 7, 0, 33, 10, + 7, 0, 34, 10, 7, 0,128, 3, 7, 0,106, 0, 7, 0, 35, 10, 7, 0, 36, 10, 7, 0, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, + 7, 0, 40, 10, 7, 0, 41, 10, 4, 0, 42, 10, 4, 0, 43, 10, 7, 0, 44, 10, 7, 0, 45, 10, 7, 0, 46, 10, 7, 0, 47, 10, + 7, 0, 48, 10, 7, 0,210, 0, 7, 0, 49, 10, 7, 0,213, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0, 50, 10, 7, 0, 51, 10, + 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10, 7, 0, 55, 10, 7, 0, 56, 10, 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, + 7, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, 4, 0, 63, 10, 4, 0, 64, 10, 67, 0,160, 3, 12, 0, 65, 10, 67, 0, 66, 10, + 32, 0, 67, 10, 32, 0, 68, 10, 36, 0, 80, 0,164, 0, 61, 1,164, 0, 69, 10,148, 0, 44, 0,148, 0, 0, 0,148, 0, 1, 0, +145, 1, 70, 10,144, 1, 71, 10,141, 1,235, 8,171, 0,238, 3, 9, 0,239, 3,147, 1, 72, 10,147, 1, 73, 10, 12, 0, 74, 10, + 12, 0, 75, 10,133, 0, 76, 10,141, 0, 77, 10,141, 0, 78, 10, 32, 0, 79, 10, 32, 0, 80, 10, 32, 0, 38, 0, 12, 0, 39, 9, + 0, 0, 20, 0, 7, 0,240, 0, 7, 0, 17, 3, 7, 0, 81, 10, 4, 0,193, 2, 4, 0, 57, 0, 4, 0, 19, 0, 4, 0, 48, 8, + 4, 0, 82, 10, 4, 0, 83, 10, 4, 0, 84, 10, 2, 0,247, 0, 2, 0, 85, 10, 2, 0, 86, 10, 2, 0, 87, 10, 0, 0, 88, 10, + 2, 0, 89, 10, 2, 0, 90, 10, 2, 0, 91, 10, 9, 0, 92, 10,137, 0, 55, 4, 12, 0, 4, 3, 12, 0, 93, 10,148, 1, 94, 10, +149, 1, 95, 10, 7, 0, 96, 10,135, 0, 35, 0,150, 1,190, 8, 7, 0, 25, 4, 7, 0, 97, 10, 7, 0, 98, 10, 7, 0,123, 4, + 7, 0, 99, 10, 7, 0,138, 3, 7, 0,128, 3, 7, 0,100, 10, 7, 0, 84, 2, 7, 0,101, 10, 7, 0,102, 10, 7, 0,103, 10, + 7, 0,104, 10, 7, 0,105, 10, 7, 0,106, 10, 7, 0, 26, 4, 7, 0,107, 10, 7, 0,108, 10, 7, 0,109, 10, 7, 0, 27, 4, + 7, 0, 23, 4, 7, 0, 24, 4, 7, 0,110, 10, 4, 0,111, 10, 4, 0, 90, 0, 4, 0,112, 10, 4, 0,113, 10, 2, 0,114, 10, + 2, 0,115, 10, 2, 0,116, 10, 2, 0,117, 10, 2, 0,118, 10, 2, 0,119, 10,169, 0, 56, 4,136, 0, 8, 0,150, 1,120, 10, + 7, 0,121, 10, 7, 0,122, 10, 7, 0,242, 1, 7, 0,123, 10, 4, 0, 90, 0, 2, 0,124, 10, 2, 0,125, 10,151, 1, 4, 0, + 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,126, 10,152, 1, 6, 0,152, 1, 0, 0,152, 1, 1, 0,151, 1,227, 8, + 4, 0,253, 0, 2, 0,127, 10, 2, 0, 19, 0,153, 1, 5, 0,153, 1, 0, 0,153, 1, 1, 0, 12, 0,128, 10, 4, 0,129, 10, + 4, 0, 19, 0,154, 1, 9, 0,154, 1, 0, 0,154, 1, 1, 0, 12, 0,124, 0,153, 1,130, 10, 4, 0, 19, 0, 2, 0,127, 10, + 2, 0,131, 10, 7, 0, 91, 0, 0, 0,132, 10,162, 0, 6, 0, 27, 0, 31, 0, 12, 0, 11, 5, 4, 0, 19, 0, 2, 0,133, 10, + 2, 0,134, 10, 9, 0,135, 10,155, 1, 7, 0,155, 1, 0, 0,155, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, + 0, 0,136, 10, 0, 0,137, 10,156, 1, 5, 0, 12, 0,138, 10, 4, 0,139, 10, 4, 0,140, 10, 4, 0, 19, 0, 4, 0, 37, 0, +157, 1, 18, 0, 27, 0, 31, 0,158, 1,141, 10,158, 1,142, 10, 12, 0,143, 10, 4, 0,144, 10, 2, 0,145, 10, 2, 0, 37, 0, + 12, 0,146, 10, 12, 0,147, 10,156, 1,148, 10, 12, 0,149, 10, 12, 0,150, 10, 12, 0,151, 10,159, 1,152, 10, 4, 0,153, 10, + 4, 0, 70, 0, 12, 0,154, 10,211, 0,155, 10,158, 1, 31, 0,158, 1, 0, 0,158, 1, 1, 0, 9, 0,156, 10, 4, 0,151, 7, + 4, 0, 37, 0,216, 0, 61, 6,216, 0,157, 10, 0, 0,158, 10, 2, 0,159, 10, 2, 0,160, 10, 2, 0,172, 7, 2, 0,173, 7, + 2, 0,161, 10, 2, 0,162, 10, 2, 0,177, 3, 2, 0,177, 6, 2, 0,163, 10, 2, 0,164, 10, 2, 0,165, 10, 2, 0,166, 10, +160, 1,167, 10,161, 1,168, 10,162, 1,169, 10, 4, 0,170, 10, 4, 0,171, 10, 9, 0,172, 10, 12, 0,147, 10, 12, 0,192, 7, + 12, 0,173, 10, 12, 0,174, 10, 12, 0,175, 10,163, 1, 16, 0,163, 1, 0, 0,163, 1, 1, 0, 0, 0,176, 10, 26, 0, 30, 0, + 2, 0,177, 10, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,178, 10, 2, 0,179, 10, 2, 0,180, 10, 2, 0,181, 10, 2, 0,182, 10, + 2, 0, 19, 0, 2, 0,183, 10, 2, 0, 70, 2,164, 1,184, 10,165, 1, 10, 0,165, 1, 0, 0,165, 1, 1, 0, 12, 0,185, 10, + 0, 0,176, 10, 2, 0,186, 10, 2, 0,187, 10, 2, 0, 19, 0, 2, 0, 37, 0, 4, 0,188, 10, 9, 0,189, 10,159, 1, 7, 0, +159, 1, 0, 0,159, 1, 1, 0, 0, 0,176, 10, 0, 0,190, 10, 12, 0,109, 7, 4, 0,191, 10, 4, 0, 19, 0,224, 0, 12, 0, +224, 0, 0, 0,224, 0, 1, 0, 0, 0,176, 10, 26, 0, 30, 0,166, 1,166, 7, 9, 0,192, 10,164, 1,184, 10,156, 1,193, 10, + 12, 0,194, 10,224, 0,195, 10, 2, 0, 19, 0, 2, 0,136, 1,160, 1, 23, 0,160, 1, 0, 0,160, 1, 1, 0, 2, 0, 17, 0, + 2, 0, 15, 0, 2, 0, 5, 0, 2, 0, 6, 0, 2, 0,196, 10, 2, 0,197, 10, 2, 0,198, 10, 2, 0,199, 10, 0, 0,200, 10, + 0, 0, 37, 0, 2, 0,178, 10, 2, 0,179, 10, 2, 0,180, 10, 2, 0,181, 10, 2, 0,182, 10, 2, 0, 43, 0, 0, 0,201, 10, + 2, 0,202, 10, 2, 0,203, 10, 4, 0, 70, 0, 9, 0,192, 10,167, 1, 8, 0,167, 1, 0, 0,167, 1, 1, 0, 9, 0, 2, 0, + 9, 0,204, 10, 0, 0,233, 3, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,205, 10,168, 1, 5, 0, 7, 0,206, 10, 4, 0,207, 10, + 4, 0,208, 10, 4, 0, 69, 1, 4, 0, 19, 0,169, 1, 6, 0, 7, 0,209, 10, 7, 0,210, 10, 7, 0,211, 10, 7, 0,212, 10, + 4, 0, 17, 0, 4, 0, 19, 0,170, 1, 5, 0, 7, 0,146, 8, 7, 0,147, 8, 7, 0,219, 2, 2, 0, 39, 2, 2, 0, 40, 2, +171, 1, 5, 0,170, 1, 2, 0, 4, 0, 54, 0, 7, 0,213, 10, 7, 0,146, 8, 7, 0,147, 8,172, 1, 4, 0, 2, 0,214, 10, + 2, 0,215, 10, 2, 0,216, 10, 2, 0,217, 10,173, 1, 2, 0, 42, 0,148, 6, 26, 0,195, 8,174, 1, 3, 0, 24, 0,218, 10, + 4, 0, 19, 0, 4, 0, 37, 0,175, 1, 6, 0, 7, 0,106, 0, 7, 0,221, 2, 7, 0,219, 10, 7, 0, 37, 0, 2, 0,246, 0, + 2, 0,220, 10,176, 1, 5, 0, 7, 0,221, 2, 7, 0, 87, 8, 2, 0,220, 10, 2, 0,136, 1, 15, 1, 4, 8,177, 1, 9, 0, +177, 1, 0, 0,177, 1, 1, 0, 27, 0,151, 6, 0, 0,221, 10, 4, 0,222, 10, 4, 0,223, 10, 4, 0, 90, 0, 4, 0, 37, 0, + 0, 0,233, 3,178, 1, 6, 0, 12, 0, 39, 9, 0, 0,224, 10, 7, 0, 61, 0, 7, 0,205, 10, 4, 0, 17, 0, 4, 0, 19, 0, +179, 1, 3, 0, 7, 0,225, 10, 4, 0, 19, 0, 4, 0, 37, 0,180, 1, 15, 0,180, 1, 0, 0,180, 1, 1, 0, 79, 1, 25, 9, +178, 1, 62, 0, 12, 0, 96, 3, 35, 0, 50, 0,179, 1,226, 10, 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0, 15, 1, + 4, 0,222, 10, 0, 0,221, 10, 4, 0,227, 10, 7, 0,228, 10,181, 1, 2, 0, 0, 0,229, 10, 0, 0,230, 10,182, 1, 4, 0, +182, 1, 0, 0,182, 1, 1, 0,160, 0, 50, 3, 12, 0,231, 10,183, 1, 24, 0,183, 1, 0, 0,183, 1, 1, 0, 12, 0,232, 10, +160, 0,120, 8,182, 1,233, 10, 12, 0,234, 10, 12, 0, 96, 3, 0, 0,233, 3, 7, 0,205, 10, 7, 0,235, 10, 7, 0, 88, 0, + 7, 0, 89, 0, 7, 0, 87, 9, 7, 0, 88, 9, 7, 0,236, 2, 7, 0, 91, 9, 7, 0,122, 8, 7, 0, 92, 9, 2, 0,236, 10, + 2, 0,237, 10, 2, 0, 43, 0, 2, 0, 17, 0, 4, 0, 19, 0, 4, 0, 70, 0,184, 1, 6, 0,184, 1, 0, 0,184, 1, 1, 0, + 12, 0,232, 10, 4, 0, 19, 0, 4, 0,156, 2, 0, 0,233, 3,185, 1, 10, 0,185, 1, 0, 0,185, 1, 1, 0, 27, 0,151, 6, + 0, 0,238, 10, 4, 0,223, 10, 4, 0,239, 10, 0, 0,221, 10, 4, 0,222, 10, 2, 0, 19, 0, 2, 0,240, 10,186, 1, 7, 0, +186, 1, 0, 0,186, 1, 1, 0, 12, 0,241, 10, 0, 0,233, 3, 2, 0, 19, 0, 2, 0,242, 10, 4, 0,243, 10,187, 1, 5, 0, +187, 1, 0, 0,187, 1, 1, 0, 0, 0,221, 10, 4, 0,222, 10, 7, 0,209, 2, 39, 0, 12, 0,160, 0, 90, 3,160, 0,244, 10, +182, 1,233, 10, 12, 0,245, 10,183, 1,246, 10, 12, 0,247, 10, 12, 0,248, 10, 4, 0, 19, 0, 4, 0,247, 0, 2, 0,249, 10, + 2, 0,250, 10, 7, 0,251, 10,188, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0,189, 1, 5, 0,189, 1, 0, 0,189, 1, 1, 0, + 4, 0, 17, 0, 4, 0, 19, 0, 0, 0, 20, 0,190, 1, 6, 0,189, 1,252, 10, 32, 0, 45, 0, 4, 0,253, 10, 7, 0,254, 10, + 4, 0,255, 10, 4, 0, 14, 9,191, 1, 3, 0,189, 1,252, 10, 4, 0,253, 10, 7, 0, 0, 11,192, 1, 8, 0,189, 1,252, 10, + 32, 0, 45, 0, 7, 0, 64, 1, 7, 0, 1, 11, 7, 0, 17, 3, 7, 0,189, 8, 4, 0,253, 10, 4, 0, 2, 11,193, 1, 5, 0, +189, 1,252, 10, 7, 0, 3, 11, 7, 0, 6, 8, 7, 0,242, 2, 7, 0, 57, 0,194, 1, 3, 0,189, 1,252, 10, 7, 0,189, 8, + 7, 0, 4, 11,140, 1, 4, 0, 7, 0, 5, 11, 7, 0, 37, 10, 2, 0, 6, 11, 2, 0, 69, 1,195, 1, 14, 0,195, 1, 0, 0, +195, 1, 1, 0, 12, 0, 7, 11, 12, 0, 8, 11, 12, 0, 9, 11, 0, 0, 20, 0, 4, 0, 31, 0, 4, 0, 19, 0, 4, 0, 10, 11, + 7, 0, 11, 11, 4, 0,255, 10, 4, 0, 14, 9, 7, 0,242, 3, 7, 0,244, 2,146, 1, 23, 0, 4, 0,253, 10, 4, 0, 12, 11, + 7, 0, 13, 11, 7, 0, 57, 0, 7, 0, 14, 11, 7, 0,240, 2, 7, 0, 5, 11, 7, 0, 15, 11, 7, 0,221, 2, 7, 0, 16, 11, + 7, 0,120, 4, 7, 0, 17, 11, 7, 0, 18, 11, 7, 0, 19, 11, 7, 0, 20, 11, 7, 0, 21, 11, 7, 0, 22, 11, 7, 0, 23, 11, + 7, 0, 24, 11, 7, 0, 25, 11, 7, 0, 26, 11, 7, 0, 27, 11, 12, 0, 28, 11,121, 0, 34, 0,120, 0, 29, 11,196, 1, 30, 11, + 67, 0, 31, 11, 67, 0, 66, 10, 67, 0, 32, 11,197, 1, 33, 11, 48, 0,165, 0, 48, 0, 34, 11, 48, 0, 35, 11, 7, 0, 36, 11, + 7, 0, 37, 11, 7, 0, 38, 11, 7, 0, 39, 11, 7, 0, 40, 11, 7, 0, 26, 9, 7, 0, 41, 11, 7, 0,170, 1, 7, 0, 42, 11, + 4, 0, 43, 11, 4, 0, 44, 11, 4, 0, 45, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0, 46, 11, 2, 0, 47, 11, 2, 0, 48, 11, + 4, 0, 49, 11, 7, 0,221, 2, 4, 0, 50, 11, 7, 0, 51, 11, 4, 0, 52, 11,137, 0, 53, 11, 12, 0, 54, 11,169, 0, 56, 4, +122, 0, 11, 0,120, 0, 29, 11,148, 0, 34, 3, 7, 0,137, 1, 7, 0, 26, 9, 7, 0, 55, 11, 7, 0, 56, 11, 2, 0, 57, 11, + 2, 0, 58, 11, 2, 0, 59, 11, 2, 0, 17, 0, 4, 0, 37, 0,123, 0, 13, 0,120, 0, 29, 11,139, 0, 14, 3,141, 0, 16, 3, + 7, 0,227, 8, 7, 0, 60, 11, 7, 0, 61, 11, 7, 0, 66, 1, 7, 0, 62, 11, 4, 0, 48, 9, 4, 0, 12, 3, 2, 0, 17, 0, 2, 0, 37, 0, 4, 0, 70, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 3bb697ba1f4..2751edfcb43 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -114,11 +114,12 @@ static SpaceLink *image_new(const bContext *C) simage= MEM_callocN(sizeof(SpaceImage), "initimage"); simage->spacetype= SPACE_IMAGE; simage->zoom= 1; + simage->lock= 1; simage->iuser.ok= 1; simage->iuser.fie_ima= 2; simage->iuser.frames= 100; - + /* header */ ar= MEM_callocN(sizeof(ARegion), "header for image"); -- cgit v1.2.3 From d828062f1b4e14f1457978da57fda5be7d86e60a Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 4 Dec 2009 05:05:50 +0000 Subject: Fix for [#20157] 2.5 Can`t remove a linked objects from the 3D view by pressing X --- source/blender/editors/object/object_add.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 1cda61fe90f..0ce58461268 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -742,7 +742,7 @@ static int object_delete_exec(bContext *C, wmOperator *op) if(CTX_data_edit_object(C)) return OPERATOR_CANCELLED; - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN(C, Base*, base, selected_bases) { if(base->object->type==OB_LAMP) islamp= 1; -- cgit v1.2.3 From e299798bbf71959b372fd12c0567bad3ed8c116a Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 4 Dec 2009 06:33:01 +0000 Subject: Fix for [#20203] Linked objects - A few bugs Did a lot of cleaning Object operator poll functions to check if the object's linked or not. For this, added the function ED_operator_object_active_editable() as opposed to ED_operator_object_active() --- source/blender/editors/include/ED_screen.h | 1 + source/blender/editors/object/object_add.c | 6 +++--- source/blender/editors/object/object_constraint.c | 6 +++--- source/blender/editors/object/object_edit.c | 10 +++++++--- source/blender/editors/object/object_modifier.c | 10 ++-------- source/blender/editors/object/object_relations.c | 6 +++--- source/blender/editors/object/object_transform.c | 16 ++++++++-------- source/blender/editors/physics/particle_object.c | 5 ++++- source/blender/editors/physics/physics_fluid.c | 2 +- source/blender/editors/screen/screen_ops.c | 6 ++++++ 10 files changed, 38 insertions(+), 30 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h index fb708e4d1c7..2f658e48557 100644 --- a/source/blender/editors/include/ED_screen.h +++ b/source/blender/editors/include/ED_screen.h @@ -132,6 +132,7 @@ int ED_operator_nla_active(struct bContext *C); int ED_operator_logic_active(struct bContext *C); int ED_operator_object_active(struct bContext *C); +int ED_operator_object_active_editable(struct bContext *C); int ED_operator_editmesh(struct bContext *C); int ED_operator_editarmature(struct bContext *C); int ED_operator_editcurve(struct bContext *C); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 0ce58461268..5ad6e2d557c 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -999,7 +999,7 @@ static int convert_poll(bContext *C) Object *obact= CTX_data_active_object(C); Scene *scene= CTX_data_scene(C); - return (!scene->id.lib && obact && scene->obedit != obact && (obact->flag & SELECT)); + return (!scene->id.lib && obact && scene->obedit != obact && (obact->flag & SELECT) && !(obact->id.lib)); } static int convert_exec(bContext *C, wmOperator *op) @@ -1510,7 +1510,7 @@ static int join_poll(bContext *C) { Object *ob= CTX_data_active_object(C); - if (!ob) return 0; + if (!ob || ob->id.lib) return 0; if (ELEM4(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_ARMATURE)) return ED_operator_screenactive(C); @@ -1563,7 +1563,7 @@ static int join_shapes_poll(bContext *C) { Object *ob= CTX_data_active_object(C); - if (!ob) return 0; + if (!ob || ob->id.lib) return 0; /* only meshes supported at the moment */ if (ob->type == OB_MESH) diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c index eababfe8080..19ba5f7b32b 100644 --- a/source/blender/editors/object/object_constraint.c +++ b/source/blender/editors/object/object_constraint.c @@ -885,7 +885,7 @@ void OBJECT_OT_constraints_clear(wmOperatorType *ot) /* callbacks */ ot->exec= object_constraints_clear_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; } /************************ add constraint operators *********************/ @@ -1212,7 +1212,7 @@ void OBJECT_OT_constraint_add(wmOperatorType *ot) /* api callbacks */ ot->invoke= WM_menu_invoke; ot->exec= object_constraint_add_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -1231,7 +1231,7 @@ void OBJECT_OT_constraint_add_with_targets(wmOperatorType *ot) /* api callbacks */ ot->invoke= WM_menu_invoke; ot->exec= object_constraint_add_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 4678ee35fcd..4fed6108f86 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -553,7 +553,7 @@ void OBJECT_OT_posemode_toggle(wmOperatorType *ot) /* api callbacks */ ot->exec= posemode_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flag */ ot->flag= OPTYPE_REGISTER; @@ -1651,6 +1651,7 @@ void OBJECT_OT_shade_flat(wmOperatorType *ot) ot->idname= "OBJECT_OT_shade_flat"; /* api callbacks */ + ot->poll= ED_operator_object_active_editable; ot->exec= shade_smooth_exec; /* flags */ @@ -1664,8 +1665,9 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot) ot->idname= "OBJECT_OT_shade_smooth"; /* api callbacks */ + ot->poll= ED_operator_object_active_editable; ot->exec= shade_smooth_exec; - + /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } @@ -1958,7 +1960,7 @@ void OBJECT_OT_mode_set(wmOperatorType *ot) /* api callbacks */ ot->exec= object_mode_set_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -2013,6 +2015,7 @@ void OBJECT_OT_game_property_new(wmOperatorType *ot) /* api callbacks */ ot->exec= game_property_new; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -2049,6 +2052,7 @@ void OBJECT_OT_game_property_remove(wmOperatorType *ot) /* api callbacks */ ot->exec= game_property_remove; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 88763f63f7b..0c1e6b86a99 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -542,7 +542,7 @@ void OBJECT_OT_modifier_add(wmOperatorType *ot) /* api callbacks */ ot->invoke= WM_menu_invoke; ot->exec= modifier_add_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -574,7 +574,6 @@ void OBJECT_OT_modifier_remove(wmOperatorType *ot) ot->name= "Remove Modifier"; ot->description= "Remove a modifier from the active object."; ot->idname= "OBJECT_OT_modifier_remove"; - ot->poll= ED_operator_object_active; ot->exec= modifier_remove_exec; ot->poll= modifier_poll; @@ -605,7 +604,6 @@ void OBJECT_OT_modifier_move_up(wmOperatorType *ot) ot->name= "Move Up Modifier"; ot->description= "Move modifier up in the stack."; ot->idname= "OBJECT_OT_modifier_move_up"; - ot->poll= ED_operator_object_active; ot->exec= modifier_move_up_exec; ot->poll= modifier_poll; @@ -636,7 +634,6 @@ void OBJECT_OT_modifier_move_down(wmOperatorType *ot) ot->name= "Move Down Modifier"; ot->description= "Move modifier down in the stack."; ot->idname= "OBJECT_OT_modifier_move_down"; - ot->poll= ED_operator_object_active; ot->exec= modifier_move_down_exec; ot->poll= modifier_poll; @@ -674,7 +671,6 @@ void OBJECT_OT_modifier_apply(wmOperatorType *ot) ot->name= "Apply Modifier"; ot->description= "Apply modifier and remove from the stack."; ot->idname= "OBJECT_OT_modifier_apply"; - ot->poll= ED_operator_object_active; //ot->invoke= WM_menu_invoke; ot->exec= modifier_apply_exec; @@ -709,7 +705,6 @@ void OBJECT_OT_modifier_convert(wmOperatorType *ot) ot->name= "Convert Modifier"; ot->description= "Convert particles to a mesh object."; ot->idname= "OBJECT_OT_modifier_convert"; - ot->poll= ED_operator_object_active; ot->exec= modifier_convert_exec; ot->poll= modifier_poll; @@ -740,7 +735,6 @@ void OBJECT_OT_modifier_copy(wmOperatorType *ot) ot->name= "Copy Modifier"; ot->description= "Duplicate modifier at the same position in the stack."; ot->idname= "OBJECT_OT_modifier_copy"; - ot->poll= ED_operator_object_active; ot->exec= modifier_copy_exec; ot->poll= modifier_poll; @@ -769,7 +763,7 @@ void OBJECT_OT_multires_higher_levels_delete(wmOperatorType *ot) { ot->name= "Delete Higher Levels"; ot->idname= "OBJECT_OT_multires_higher_levels_delete"; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; ot->exec= multires_higher_levels_delete_exec; diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 749b1e34651..b8839360296 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -475,7 +475,7 @@ void OBJECT_OT_parent_clear(wmOperatorType *ot) ot->invoke= WM_menu_invoke; ot->exec= parent_clear_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -733,7 +733,7 @@ void OBJECT_OT_parent_set(wmOperatorType *ot) ot->invoke= parent_set_invoke; ot->exec= parent_set_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -788,7 +788,7 @@ void OBJECT_OT_parent_no_inverse_set(wmOperatorType *ot) /* api callbacks */ ot->invoke= WM_operator_confirm; ot->exec= parent_noinv_set_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index d990df72c0d..69a2315fd5d 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -119,7 +119,7 @@ void OBJECT_OT_location_clear(wmOperatorType *ot) /* api callbacks */ ot->exec= object_location_clear_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -255,7 +255,7 @@ void OBJECT_OT_rotation_clear(wmOperatorType *ot) /* api callbacks */ ot->exec= object_rotation_clear_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -313,7 +313,7 @@ void OBJECT_OT_scale_clear(wmOperatorType *ot) /* api callbacks */ ot->exec= object_scale_clear_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -357,7 +357,7 @@ void OBJECT_OT_origin_clear(wmOperatorType *ot) /* api callbacks */ ot->exec= object_origin_clear_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -579,7 +579,7 @@ void OBJECT_OT_visual_transform_apply(wmOperatorType *ot) /* api callbacks */ ot->exec= visual_transform_apply_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -599,7 +599,7 @@ void OBJECT_OT_location_apply(wmOperatorType *ot) /* api callbacks */ ot->exec= location_apply_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -619,7 +619,7 @@ void OBJECT_OT_scale_apply(wmOperatorType *ot) /* api callbacks */ ot->exec= scale_apply_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; @@ -639,7 +639,7 @@ void OBJECT_OT_rotation_apply(wmOperatorType *ot) /* api callbacks */ ot->exec= rotation_apply_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; diff --git a/source/blender/editors/physics/particle_object.c b/source/blender/editors/physics/particle_object.c index ce740a53db8..f94835593c5 100644 --- a/source/blender/editors/physics/particle_object.c +++ b/source/blender/editors/physics/particle_object.c @@ -56,6 +56,7 @@ #include "WM_types.h" #include "ED_particle.h" +#include "ED_screen.h" #include "physics_intern.h" @@ -83,8 +84,9 @@ void OBJECT_OT_particle_system_add(wmOperatorType *ot) ot->description="Add a particle system."; /* api callbacks */ + ot->poll= ED_operator_object_active_editable; ot->exec= particle_system_add_exec; - + /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } @@ -120,6 +122,7 @@ void OBJECT_OT_particle_system_remove(wmOperatorType *ot) ot->description="Remove the selected particle system."; /* api callbacks */ + ot->poll= ED_operator_object_active_editable; ot->exec= particle_system_remove_exec; /* flags */ diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index e5d553dacc7..7893b314e3e 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -1200,6 +1200,6 @@ void FLUID_OT_bake(wmOperatorType *ot) /* api callbacks */ ot->exec= fluid_bake_exec; - ot->poll= ED_operator_object_active; + ot->poll= ED_operator_object_active_editable; } diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index afee27cd0f3..633d5181bbf 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -218,6 +218,12 @@ int ED_operator_object_active(bContext *C) return NULL != CTX_data_active_object(C); } +int ED_operator_object_active_editable(bContext *C) +{ + Object *ob=CTX_data_active_object(C); + return ((ob != NULL) && !(ob->id.lib)); +} + int ED_operator_editmesh(bContext *C) { Object *obedit= CTX_data_edit_object(C); -- cgit v1.2.3 From d1563601f4aca2178f9354e02a45e55728e9f706 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 4 Dec 2009 09:58:00 +0000 Subject: This commit deletes temporary "temp" screen layouts when the windows using them get closed. --- source/blender/editors/screen/screen_edit.c | 6 ++++++ source/blender/windowmanager/intern/wm_window.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index b0d1557a66f..1f6ce4fed73 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1124,6 +1124,12 @@ void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen) /* mark it available for use for other windows */ screen->winid= 0; + /* if temp screen, delete it */ + if(screen->full == SCREENTEMP) { + Main *bmain= CTX_data_main(C); + free_libblock(&bmain->screen, screen); + } + CTX_wm_window_set(C, prevwin); } diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 75325a1d9f9..d9b6117cbb3 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -233,7 +233,7 @@ void wm_window_close(bContext *C, wmWindowManager *wm, wmWindow *win) CTX_wm_window_set(C, win); /* needed by handlers */ WM_event_remove_handlers(C, &win->handlers); WM_event_remove_handlers(C, &win->modalhandlers); - ED_screen_exit(C, win, win->screen); + ED_screen_exit(C, win, win->screen); /* will free the current screen if it is a temp layout */ wm_window_free(C, wm, win); /* check remaining windows */ -- cgit v1.2.3 From f3201f08533ec8984339b0653f3587b1ca7ad05e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 4 Dec 2009 15:32:26 +0000 Subject: UI: curve widget tweaks * Make snap ctrl instead of shift * Only enable snapping after moving a few pixels, otherwise too easy to do enable this by accident. * Deselecting points with shift did not work. --- source/blender/editors/interface/interface_handlers.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index e81c1a2f0a5..d2545e530e4 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -2990,6 +2990,16 @@ static int ui_numedit_but_CURVE(uiBut *but, uiHandleButtonData *data, int snap, offsx= cumap->curr.xmin; offsy= cumap->curr.ymin; + if(snap) { + float d[2]; + + d[0]= mx - data->dragstartx; + d[1]= my - data->dragstarty; + + if(len_v2(d) < 3.0f) + snap= 0; + } + if(data->dragsel != -1) { int moved_point= 0; /* for ctrl grid, can't use orig coords because of sorting */ @@ -3126,10 +3136,13 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt if(sel!= -1) { /* ok, we move a point */ /* deselect all if this one is deselect. except if we hold shift */ - if(event->shift==0 && (cmp[sel].flag & SELECT)==0) + if(event->shift==0) { for(a=0; atotpoint; a++) cmp[a].flag &= ~SELECT; - cmp[sel].flag |= SELECT; + cmp[sel].flag |= SELECT; + } + else + cmp[sel].flag ^= SELECT; } else { /* move the view */ @@ -3150,7 +3163,7 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt else if(data->state == BUTTON_STATE_NUM_EDITING) { if(event->type == MOUSEMOVE) { if(mx!=data->draglastx || my!=data->draglasty) { - if(ui_numedit_but_CURVE(but, data, event->shift, mx, my)) + if(ui_numedit_but_CURVE(but, data, event->ctrl, mx, my)) ui_numedit_apply(C, block, but, data); } } -- cgit v1.2.3 From f21ec890815fb1527b433e6e11e9cba5bf962f17 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Fri, 4 Dec 2009 19:06:17 +0000 Subject: Fix for [#20144] Game physics panel - softbody allows other collision bounds. --- source/blender/makesrna/intern/rna_object.c | 46 +++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index c90dc6749c9..4dacf46f0c6 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -65,6 +65,16 @@ static EnumPropertyItem parent_type_items[] = { {PARVERT3, "VERTEX_3", 0, "3 Vertices", ""}, {PARBONE, "BONE", 0, "Bone", ""}, {0, NULL, 0, NULL, NULL}}; + +static EnumPropertyItem collision_bounds_items[] = { + {OB_BOUND_BOX, "BOX", 0, "Box", ""}, + {OB_BOUND_SPHERE, "SPHERE", 0, "Sphere", ""}, + {OB_BOUND_CYLINDER, "CYLINDER", 0, "Cylinder", ""}, + {OB_BOUND_CONE, "CONE", 0, "Cone", ""}, + {OB_BOUND_POLYT, "CONVEX_HULL", 0, "Convex Hull", ""}, + {OB_BOUND_POLYH, "TRIANGLE_MESH", 0, "Triangle Mesh", ""}, + //{OB_DYN_MESH, "DYNAMIC_MESH", 0, "Dynamic Mesh", ""}, + {0, NULL, 0, NULL, NULL}}; EnumPropertyItem object_type_items[] = { {OB_MESH, "MESH", 0, "Mesh", ""}, @@ -79,8 +89,7 @@ EnumPropertyItem object_type_items[] = { {0, "", 0, NULL, NULL}, {OB_CAMERA, "CAMERA", 0, "Camera", ""}, {OB_LAMP, "LAMP", 0, "Lamp", ""}, - {0, NULL, 0, NULL, NULL} -}; + {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -296,6 +305,28 @@ static EnumPropertyItem *rna_Object_parent_type_itemf(bContext *C, PointerRNA *p return item; } +static EnumPropertyItem *rna_Object_collision_bounds_itemf(bContext *C, PointerRNA *ptr, int *free) +{ + Object *ob= (Object*)ptr->data; + EnumPropertyItem *item= NULL; + int totitem= 0; + + RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_POLYH); + RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_POLYT); + + if(ob->body_type!=OB_BODY_TYPE_SOFT) { + RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_CONE); + RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_CYLINDER); + RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_SPHERE); + RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_BOX); + } + + RNA_enum_item_end(&item, &totitem); + *free= 1; + + return item; +} + static void rna_Object_parent_bone_set(PointerRNA *ptr, const char *value) { Object *ob= (Object*)ptr->data; @@ -1042,16 +1073,6 @@ static void rna_def_object_game_settings(BlenderRNA *brna) {OB_BODY_TYPE_SENSOR, "SENSOR", 0, "Sensor", "Collision Sensor, detects static and dynamic objects but not the other collision sensor objects"}, {0, NULL, 0, NULL, NULL}}; - static EnumPropertyItem collision_bounds_items[] = { - {OB_BOUND_BOX, "BOX", 0, "Box", ""}, - {OB_BOUND_SPHERE, "SPHERE", 0, "Sphere", ""}, - {OB_BOUND_CYLINDER, "CYLINDER", 0, "Cylinder", ""}, - {OB_BOUND_CONE, "CONE", 0, "Cone", ""}, - {OB_BOUND_POLYT, "CONVEX_HULL", 0, "Convex Hull", ""}, - {OB_BOUND_POLYH, "TRIANGLE_MESH", 0, "Triangle Mesh", ""}, - //{OB_DYN_MESH, "DYNAMIC_MESH", 0, "Dynamic Mesh", ""}, - {0, NULL, 0, NULL, NULL}}; - srna= RNA_def_struct(brna, "GameObjectSettings", NULL); RNA_def_struct_sdna(srna, "Object"); RNA_def_struct_nested(brna, srna, "Object"); @@ -1201,6 +1222,7 @@ static void rna_def_object_game_settings(BlenderRNA *brna) prop= RNA_def_property(srna, "collision_bounds", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "boundtype"); RNA_def_property_enum_items(prop, collision_bounds_items); + RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_Object_collision_bounds_itemf"); RNA_def_property_ui_text(prop, "Collision Bounds", "Selects the collision type."); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); -- cgit v1.2.3 From e9b7482b6a0b340a7045e55809cfe88500c04d1b Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Fri, 4 Dec 2009 19:07:25 +0000 Subject: Save_Mainfile operator only needs window for invoke. Removed poll function and replace by a check in invoke that cancels if no window is present. Makes it possible to be called in background mode. --- source/blender/windowmanager/intern/wm_operators.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 793250f390e..9cee2140fc7 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1555,6 +1555,10 @@ static int wm_save_mainfile_invoke(bContext *C, wmOperator *op, wmEvent *event) { char name[FILE_MAX]; + /* cancel if no active window */ + if (CTX_wm_window(C) == NULL) + return OPERATOR_CANCELLED; + save_set_compress(op); BLI_strncpy(name, G.sce, FILE_MAX); @@ -1577,7 +1581,7 @@ static void WM_OT_save_mainfile(wmOperatorType *ot) ot->invoke= wm_save_mainfile_invoke; ot->exec= wm_save_as_mainfile_exec; - ot->poll= WM_operator_winactive; + ot->poll= NULL; WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_BLENDER); RNA_def_boolean(ot->srna, "compress", 0, "Compress", "Write compressed .blend file."); -- cgit v1.2.3 From 56b0880d2f66ae77e34c7ac518758ea13792056f Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Fri, 4 Dec 2009 19:08:07 +0000 Subject: Null check for baking progressend function Simplify end of line for console progress. --- source/blender/blenkernel/intern/pointcache.c | 4 +++- source/blender/editors/physics/physics_pointcache.c | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index cc7b942a6bb..7b2cf72e311 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -2361,7 +2361,9 @@ void BKE_ptcache_make_cache(PTCacheBaker* baker) if(baker->break_test && baker->break_test(baker->break_data)) break; } - baker->progressend(baker->progresscontext); + + if (baker->progressend) + baker->progressend(baker->progresscontext); /* clear baking flag */ if(pid) { diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c index a931e27bc83..858ff3637b1 100644 --- a/source/blender/editors/physics/physics_pointcache.c +++ b/source/blender/editors/physics/physics_pointcache.c @@ -84,11 +84,11 @@ void bake_console_progress(void *arg, int nr) { printf("\rbake: %3i%%", nr); fflush(stdout); +} - /* endline for last report */ - if (nr == 100) { - printf("\n"); - } +void bake_console_progress_end(void *arg, int nr) +{ + printf("\n"); } static int ptcache_bake_all_exec(bContext *C, wmOperator *op) @@ -113,7 +113,7 @@ static int ptcache_bake_all_exec(bContext *C, wmOperator *op) baker.progresscontext = win; } else { baker.progressbar = bake_console_progress; - baker.progressend = NULL; + baker.progressend = bake_console_progress_end; baker.progresscontext = NULL; } @@ -207,7 +207,7 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op) } else { printf("\n"); /* empty first line before console reports */ baker.progressbar = bake_console_progress; - baker.progressend = NULL; + baker.progressend = bake_console_progress_end; baker.progresscontext = NULL; } -- cgit v1.2.3 From c2b71607d23fc2768ea6f8eabcaeec01daefcf30 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sat, 5 Dec 2009 00:26:20 +0000 Subject: * provide SCons support to enabling jaguarandi SIMD raytracer optimizations for real :) Until now only SSE switches were defined, but to really enjoy the SIMD structures, the __SSE__ define needs to be given. This can now be done with setting in your user-config.py WITH_BF_RAYOPTIMIZATION=True (or WITH_BF_RAYOPTIMIZATION=1 on command-line) --- source/blender/render/SConscript | 34 ++++++++++++++-------- source/blender/render/intern/raytrace/reorganize.h | 5 +++- 2 files changed, 26 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index 63ef83a0cfe..dfce2267898 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -2,17 +2,20 @@ Import ('env') if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw'): - # FIXME: need to set the appropriate flags for msvc, otherwise we get warnings - cflags = [] - cxxflags = [] + # FIXME: need to set the appropriate flags for msvc, otherwise we get warnings + if env['WITH_BF_RAYOPTIMIZATION']: + cflags = env['CCFLAGS'] + ['/arch:SSE'] + else: + cflags = env['CCFLAGS'] + cxxflags = [] if env['OURPLATFORM'] == 'darwin': - if env['MACOSX_ARCHITECTURE'] in ('i386', 'x86_64'): - cflags = env['CFLAGS'] + ['-mfpmath=sse'] - cxxflags = env['CXXFLAGS'] + ['-mfpmath=sse'] - else: - cflags = env['CFLAGS'] - cxxflags = env['CXXFLAGS'] + if env['MACOSX_ARCHITECTURE'] in ('i386', 'x86_64') and env['WITH_BF_RAYOPTIMIZATION']: + cflags = env['CFLAGS'] + ['-mfpmath=sse'] + cxxflags = env['CXXFLAGS'] + ['-mfpmath=sse'] + else: + cflags = env['CFLAGS'] + cxxflags = env['CXXFLAGS'] sources = env.Glob('intern/source/*.c') raysources = env.Glob('intern/raytrace/*.cpp') @@ -31,15 +34,22 @@ if env['WITH_BF_OPENEXR']: defs.append('WITH_OPENEXR') if env['OURPLATFORM'] == 'linux2': -# SSE is NOT safe all the time on linux, plus that ignores users compile flags and therefore no no +# SSE is NOT safe all the time on linux, plus that ignores users compile flags and therefore no no # cflags = ['-O2','-msse2','-mfpmath=sse', '-pthread'] # cxxflags = ['-O2','-msse2','-mfpmath=sse', '-pthread'] - cflags = env['CCFLAGS'] - cxxflags = env['CXXFLAGS'] + if env['WITH_BF_RAYOPTIMIZATION']: + cflags = env['CCFLAGS'] + ['-O2','-msse2','-mfpmath=sse', '-pthread'] + cxxflags = env['CXXFLAGS'] + ['-O2','-msse2','-mfpmath=sse', '-pthread'] + else: + cflags = env['CCFLAGS'] + cxxflags = env['CXXFLAGS'] incs += ' ../../../extern/binreloc/include' if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): incs += ' ' + env['BF_PTHREADS_INC'] +if env['WITH_BF_RAYOPTIMIZATION']: + defs.append('__SSE__') + env.BlenderLib ( libname = 'bf_render', sources = sources, includes = Split(incs), defines=defs, libtype='core', priority=145, compileflags=cflags ) env.BlenderLib ( libname = 'bf_render_raytrace', sources = raysources, includes = Split(incs), defines=defs, libtype='core', priority=145, compileflags=cflags, cxx_compileflags=cxxflags ) diff --git a/source/blender/render/intern/raytrace/reorganize.h b/source/blender/render/intern/raytrace/reorganize.h index bcf7f6f2078..2d4a4d15fe2 100644 --- a/source/blender/render/intern/raytrace/reorganize.h +++ b/source/blender/render/intern/raytrace/reorganize.h @@ -26,13 +26,16 @@ * * ***** END GPL LICENSE BLOCK ***** */ - #include #include #include #include #include +#ifdef _WIN32 +#define INFINITY FLT_MAX // in mingw math.h: (1.0F/0.0F). This generates compile error, though. +#endif + extern int tot_pushup; extern int tot_pushdown; -- cgit v1.2.3 From f539604094105f7e00210b3ab64623343a69c837 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sat, 5 Dec 2009 01:07:42 +0000 Subject: * proper SSE setting for mingw. * some cleanup of render module SConscript --- source/blender/render/SConscript | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index dfce2267898..2642d31bd35 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -1,21 +1,21 @@ #!/usr/bin/python Import ('env') -if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw'): - # FIXME: need to set the appropriate flags for msvc, otherwise we get warnings +cflags = env['CCFLAGS'] +cxxflags = env['CXXFLAGS'] + +if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): if env['WITH_BF_RAYOPTIMIZATION']: cflags = env['CCFLAGS'] + ['/arch:SSE'] - else: - cflags = env['CCFLAGS'] - cxxflags = [] + +if env['OURPLATFORM'] == 'win32-mingw': + if env['WITH_BF_RAYOPTIMIZATION']: + cflags = env['CCFLAGS'] + ['-mfpmath=sse'] if env['OURPLATFORM'] == 'darwin': if env['MACOSX_ARCHITECTURE'] in ('i386', 'x86_64') and env['WITH_BF_RAYOPTIMIZATION']: cflags = env['CFLAGS'] + ['-mfpmath=sse'] cxxflags = env['CXXFLAGS'] + ['-mfpmath=sse'] - else: - cflags = env['CFLAGS'] - cxxflags = env['CXXFLAGS'] sources = env.Glob('intern/source/*.c') raysources = env.Glob('intern/raytrace/*.cpp') @@ -40,9 +40,6 @@ if env['OURPLATFORM'] == 'linux2': if env['WITH_BF_RAYOPTIMIZATION']: cflags = env['CCFLAGS'] + ['-O2','-msse2','-mfpmath=sse', '-pthread'] cxxflags = env['CXXFLAGS'] + ['-O2','-msse2','-mfpmath=sse', '-pthread'] - else: - cflags = env['CCFLAGS'] - cxxflags = env['CXXFLAGS'] incs += ' ../../../extern/binreloc/include' if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): -- cgit v1.2.3 From d98cbf7727ccad91545882be4ac4ee4c044fc726 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 5 Dec 2009 14:12:06 +0000 Subject: simple fix [#20218] Object.is_visible() don't reflect visibility --- source/blender/makesrna/intern/rna_object_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 827e0cc60d9..63b4549f7c9 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -311,7 +311,7 @@ static Object *rna_Object_find_armature(Object *ob) int rna_Object_is_visible(Object *ob, bContext *C) { - return ob->lay & CTX_data_scene(C)->lay; + return !(ob->restrictflag & OB_RESTRICT_VIEW) && ob->lay & CTX_data_scene(C)->lay; } /* -- cgit v1.2.3 From f287762678d8c55fc2495e7a0ffe71c3ee3006b1 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sat, 5 Dec 2009 19:05:21 +0000 Subject: Macros in macro didn't work correctly. --- source/blender/windowmanager/intern/wm_event_system.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 93c8b669611..c19d1000573 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -382,10 +382,13 @@ static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot, P if(ot->macro.first) { static wmOperator *motherop= NULL; wmOperatorTypeMacro *otmacro; + int root = 0; /* ensure all ops are in execution order in 1 list */ - if(motherop==NULL) - motherop= op; + if(motherop==NULL) { + motherop = op; + root = 1; + } for(otmacro= ot->macro.first; otmacro; otmacro= otmacro->next) { wmOperatorType *otm= WM_operatortype_find(otmacro->idname, 0); @@ -395,7 +398,8 @@ static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot, P opm->opm= motherop; /* pointer to mom, for modal() */ } - motherop= NULL; + if (root) + motherop= NULL; } return op; -- cgit v1.2.3 From bcd1ab54cd1ebeda433f1c1999f5a9807c808e8e Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sat, 5 Dec 2009 19:27:26 +0000 Subject: Support for the C Macro system in Python. Basic definition works like a python operator but you derive from "bpy.types.Macro" instead. Operators are added to the macro after it has been added with "bpy.ops.add_macro" through the class method "define" which takes an operator id and returns an OperatorMacroType (new RNA type) for which properties can then be defined to be passed to the operator when run. Example: http://blenderartists.org/~theeth/bf/macro.py Using this system, it should be easy to add an operator to the console that converts selected lines into a macro or even a more generic record macro system. --- source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/rna_wm.c | 52 ++++++ source/blender/python/intern/bpy_operator.c | 6 +- source/blender/python/intern/bpy_operator_wrap.c | 184 +++++++++++++++++++++ source/blender/python/intern/bpy_operator_wrap.h | 2 + source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm_operators.c | 21 +++ 7 files changed, 266 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 36653f8c06e..959109f7bbb 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -323,6 +323,7 @@ extern StructRNA RNA_OperatorFileListElement; extern StructRNA RNA_OperatorMousePath; extern StructRNA RNA_OperatorProperties; extern StructRNA RNA_OperatorStrokeElement; +extern StructRNA RNA_OperatorTypeMacro; extern StructRNA RNA_OrController; extern StructRNA RNA_OutflowFluidSettings; extern StructRNA RNA_PackedFile; diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 10e27814236..35f2a31b7ef 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -309,6 +309,12 @@ static PointerRNA rna_Operator_properties_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, op->type->srna, op->properties); } +static PointerRNA rna_OperatorTypeMacro_properties_get(PointerRNA *ptr) +{ + wmOperatorTypeMacro *otmacro= (wmOperatorTypeMacro*)ptr->data; + wmOperatorType *ot = WM_operatortype_exists(otmacro->idname); + return rna_pointer_inherit_refine(ptr, ot->srna, otmacro->properties); +} static void rna_Event_ascii_get(PointerRNA *ptr, char *value) { @@ -593,6 +599,50 @@ static void rna_def_operator(BlenderRNA *brna) RNA_def_struct_idproperties_func(srna, "rna_OperatorProperties_idproperties"); } +static void rna_def_macro_operator(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "Macro", NULL); + RNA_def_struct_ui_text(srna, "Macro Operator", "Storage of a macro operator being executed, or registered after execution."); + RNA_def_struct_sdna(srna, "wmOperator"); + + prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_string_funcs(prop, "rna_Operator_name_get", "rna_Operator_name_length", NULL); + RNA_def_property_ui_text(prop, "Name", ""); + RNA_def_struct_name_property(srna, prop); + + prop= RNA_def_property(srna, "properties", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_struct_type(prop, "OperatorProperties"); + RNA_def_property_ui_text(prop, "Properties", ""); + RNA_def_property_pointer_funcs(prop, "rna_Operator_properties_get", NULL, NULL); +} + +static void rna_def_operator_type_macro(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "OperatorTypeMacro", NULL); + RNA_def_struct_ui_text(srna, "OperatorTypeMacro", "Storage of a sub operator in a macro after it has been added."); + RNA_def_struct_sdna(srna, "wmOperatorTypeMacro"); + +// prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); +// RNA_def_property_clear_flag(prop, PROP_EDITABLE); +// RNA_def_property_string_sdna(prop, NULL, "idname"); +// RNA_def_property_ui_text(prop, "Name", "Name of the sub operator."); +// RNA_def_struct_name_property(srna, prop); + + prop= RNA_def_property(srna, "properties", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_struct_type(prop, "OperatorProperties"); + RNA_def_property_ui_text(prop, "Properties", ""); + RNA_def_property_pointer_funcs(prop, "rna_OperatorTypeMacro_properties_get", NULL, NULL); +} + static void rna_def_operator_utils(BlenderRNA *brna) { StructRNA *srna; @@ -911,6 +961,8 @@ void RNA_def_wm(BlenderRNA *brna) rna_def_operator(brna); rna_def_operator_utils(brna); rna_def_operator_filelist_element(brna); + rna_def_macro_operator(brna); + rna_def_operator_type_macro(brna); rna_def_event(brna); rna_def_window(brna); rna_def_windowmanager(brna); diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index 6ae63f2ab65..b4a2fb36a97 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -60,7 +60,7 @@ static PyObject *pyop_call( PyObject * self, PyObject * args) if (!PyArg_ParseTuple(args, "sO|O!i:_bpy.ops.call", &opname, &context_dict, &PyDict_Type, &kw, &context)) return NULL; - ot= WM_operatortype_find(opname, TRUE); + ot= WM_operatortype_exists(opname); if (ot == NULL) { PyErr_Format( PyExc_SystemError, "_bpy.ops.call: operator \"%s\"could not be found", opname); @@ -245,6 +245,8 @@ PyObject *BPY_operator_module( void ) static PyMethodDef pyop_dir_meth = {"dir", (PyCFunction) pyop_dir, METH_NOARGS, NULL}; static PyMethodDef pyop_getrna_meth = {"get_rna", (PyCFunction) pyop_getrna, METH_O, NULL}; static PyMethodDef pyop_add_meth = {"add", (PyCFunction) PYOP_wrap_add, METH_O, NULL}; + static PyMethodDef pyop_add_macro_meth ={"add_macro", (PyCFunction) PYOP_wrap_add_macro, METH_O, NULL}; + static PyMethodDef pyop_macro_def_meth ={"macro_define", (PyCFunction) PYOP_wrap_macro_define, METH_VARARGS, NULL}; static PyMethodDef pyop_remove_meth = {"remove", (PyCFunction) PYOP_wrap_remove, METH_O, NULL}; PyObject *submodule = PyModule_New("_bpy.ops"); @@ -255,6 +257,8 @@ PyObject *BPY_operator_module( void ) PyModule_AddObject( submodule, "dir", PyCFunction_New(&pyop_dir_meth, NULL) ); PyModule_AddObject( submodule, "get_rna", PyCFunction_New(&pyop_getrna_meth, NULL) ); PyModule_AddObject( submodule, "add", PyCFunction_New(&pyop_add_meth, NULL) ); + PyModule_AddObject( submodule, "add_macro", PyCFunction_New(&pyop_add_macro_meth, NULL) ); + PyModule_AddObject( submodule, "macro_define",PyCFunction_New(&pyop_macro_def_meth, NULL) ); PyModule_AddObject( submodule, "remove", PyCFunction_New(&pyop_remove_meth, NULL) ); return submodule; diff --git a/source/blender/python/intern/bpy_operator_wrap.c b/source/blender/python/intern/bpy_operator_wrap.c index ff49d381dd1..cd5b0756531 100644 --- a/source/blender/python/intern/bpy_operator_wrap.c +++ b/source/blender/python/intern/bpy_operator_wrap.c @@ -342,6 +342,80 @@ void PYTHON_OT_wrapper(wmOperatorType *ot, void *userdata) } } +void PYTHON_OT_MACRO_wrapper(wmOperatorType *ot, void *userdata) +{ + PyObject *py_class = (PyObject *)userdata; + PyObject *item; + + /* identifiers */ + item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME_BL); + ot->idname= _PyUnicode_AsString(item); + Py_DECREF(item); + + item= PyObject_GetAttrString(py_class, PYOP_ATTR_UINAME); + if (item) { + ot->name= _PyUnicode_AsString(item); + Py_DECREF(item); + } + else { + ot->name= ot->idname; + PyErr_Clear(); + } + + item= PyObject_GetAttrString(py_class, PYOP_ATTR_DESCRIPTION); + ot->description= (item && PyUnicode_Check(item)) ? _PyUnicode_AsString(item):"undocumented python operator"; + Py_XDECREF(item); + + if (PyObject_HasAttrString(py_class, "poll")) + ot->pyop_poll= PYTHON_OT_poll; + if (PyObject_HasAttrString(py_class, "draw")) + ot->ui= PYTHON_OT_draw; + + ot->pyop_data= userdata; + + /* flags */ + ot->flag= OPTYPE_MACRO; /* macro at least */ + + item= PyObject_GetAttrString(py_class, PYOP_ATTR_REGISTER); + if (item) { + ot->flag |= PyObject_IsTrue(item)!=0 ? OPTYPE_REGISTER:0; + Py_DECREF(item); + } + else { + PyErr_Clear(); + } + item= PyObject_GetAttrString(py_class, PYOP_ATTR_UNDO); + if (item) { + ot->flag |= PyObject_IsTrue(item)!=0 ? OPTYPE_UNDO:0; + Py_DECREF(item); + } + else { + PyErr_Clear(); + } + + /* Can't use this because it returns a dict proxy + * + * item= PyObject_GetAttrString(py_class, "__dict__"); + */ + item= ((PyTypeObject*)py_class)->tp_dict; + if(item) { + /* only call this so pyrna_deferred_register_props gives a useful error + * WM_operatortype_append_macro_ptr will call RNA_def_struct_identifier + * later */ + RNA_def_struct_identifier(ot->srna, ot->idname); + + if(pyrna_deferred_register_props(ot->srna, item)!=0) { + /* failed to register operator props */ + PyErr_Print(); + PyErr_Clear(); + + } + } + else { + PyErr_Clear(); + } +} + /* pyOperators - Operators defined IN Python */ PyObject *PYOP_wrap_add(PyObject *self, PyObject *py_class) @@ -407,6 +481,116 @@ PyObject *PYOP_wrap_add(PyObject *self, PyObject *py_class) Py_RETURN_NONE; } +/* pyOperators - Macro Operators defined IN Python */ +PyObject *PYOP_wrap_add_macro(PyObject *self, PyObject *py_class) +{ + PyObject *base_class, *item; + wmOperatorType *ot; + + + char *idname= NULL; + char idname_bl[OP_MAX_TYPENAME]; /* converted to blender syntax */ + + static struct BPY_class_attr_check pyop_class_attr_values[]= { + {PYOP_ATTR_IDNAME, 's', -1, OP_MAX_TYPENAME-3, 0}, /* -3 because a.b -> A_OT_b */ + {PYOP_ATTR_UINAME, 's', -1,-1, BPY_CLASS_ATTR_OPTIONAL}, + {PYOP_ATTR_DESCRIPTION, 's', -1,-1, BPY_CLASS_ATTR_NONE_OK}, + {"poll", 'f', 2, -1, BPY_CLASS_ATTR_OPTIONAL}, + {"draw", 'f', 2, -1, BPY_CLASS_ATTR_OPTIONAL}, + {NULL, 0, 0, 0} + }; + + //PyObject bpy_mod= PyDict_GetItemString(PyEval_GetGlobals(), "bpy"); + PyObject *bpy_mod= PyImport_ImportModuleLevel("bpy", NULL, NULL, NULL, 0); + base_class = PyObject_GetAttrStringArgs(bpy_mod, 2, "types", "Macro"); + Py_DECREF(bpy_mod); + + if(BPY_class_validate("Macro", py_class, base_class, pyop_class_attr_values, NULL) < 0) { + return NULL; /* BPY_class_validate sets the error */ + } + Py_DECREF(base_class); + + /* class name is used for operator ID - this can be changed later if we want */ + item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME); + idname = _PyUnicode_AsString(item); + + + /* annoying conversion! */ + WM_operator_bl_idname(idname_bl, idname); + Py_DECREF(item); + + item= PyUnicode_FromString(idname_bl); + PyObject_SetAttrString(py_class, PYOP_ATTR_IDNAME_BL, item); + idname = _PyUnicode_AsString(item); + Py_DECREF(item); + /* end annoying conversion! */ + + + /* remove if it already exists */ + if ((ot=WM_operatortype_exists(idname))) { + if(ot->pyop_data) { + Py_XDECREF((PyObject*)ot->pyop_data); + } + WM_operatortype_remove(idname); + } + + Py_INCREF(py_class); + WM_operatortype_append_macro_ptr(PYTHON_OT_MACRO_wrapper, py_class); + + Py_RETURN_NONE; +} + +PyObject *PYOP_wrap_macro_define(PyObject *self, PyObject *args) +{ + wmOperatorType *ot; + wmOperatorTypeMacro *otmacro; + PyObject *macro; + PyObject *item; + PointerRNA ptr_otmacro; + + char *opname; + char *macroname; + + if (!PyArg_ParseTuple(args, "Os:_bpy.ops.macro_define", ¯o, &opname)) + return NULL; + + if (WM_operatortype_exists(opname) == NULL) { + PyErr_Format(PyExc_ValueError, "Macro Define: '%s' is not a valid operator id", opname); + return NULL; + } + + /* identifiers */ + item= PyObject_GetAttrString(macro, PYOP_ATTR_IDNAME_BL); + + if (!item) { + item= PyObject_GetAttrString(macro, PYOP_ATTR_IDNAME); + + if (!item) { + PyErr_Format(PyExc_ValueError, "Macro Define: not a valid Macro class"); + } else { + macroname= _PyUnicode_AsString(item); + PyErr_Format(PyExc_ValueError, "Macro Define: '%s' hasn't been registered yet", macroname); + } + return NULL; + } + + macroname= _PyUnicode_AsString(item); + + ot = WM_operatortype_exists(macroname); + + if (!ot) { + PyErr_Format(PyExc_ValueError, "Macro Define: '%s' is not a valid macro or hasn't been registered yet", macroname); + return NULL; + } + + otmacro = WM_operatortype_macro_define(ot, opname); + + RNA_pointer_create(NULL, &RNA_OperatorTypeMacro, otmacro, &ptr_otmacro); + + return pyrna_struct_CreatePyObject(&ptr_otmacro); +} + + PyObject *PYOP_wrap_remove(PyObject *self, PyObject *value) { PyObject *py_class; diff --git a/source/blender/python/intern/bpy_operator_wrap.h b/source/blender/python/intern/bpy_operator_wrap.h index 2929d57ab82..939fedd1f2b 100644 --- a/source/blender/python/intern/bpy_operator_wrap.h +++ b/source/blender/python/intern/bpy_operator_wrap.h @@ -29,6 +29,8 @@ /* these are used for operator methods, used by bpy_operator.c */ PyObject *PYOP_wrap_add(PyObject *self, PyObject *args); +PyObject *PYOP_wrap_add_macro(PyObject *self, PyObject *args); +PyObject *PYOP_wrap_macro_define(PyObject *self, PyObject *args); PyObject *PYOP_wrap_remove(PyObject *self, PyObject *args); #endif diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index a270b75eea1..549ef11c14e 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -180,6 +180,7 @@ wmOperatorType *WM_operatortype_exists(const char *idname); wmOperatorType *WM_operatortype_first(void); void WM_operatortype_append (void (*opfunc)(wmOperatorType*)); void WM_operatortype_append_ptr (void (*opfunc)(wmOperatorType*, void *), void *userdata); +void WM_operatortype_append_macro_ptr (void (*opfunc)(wmOperatorType*, void *), void *userdata); int WM_operatortype_remove(const char *idname); wmOperatorType *WM_operatortype_append_macro(char *idname, char *name, int flag); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 9cee2140fc7..582410c4368 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -353,6 +353,27 @@ wmOperatorType *WM_operatortype_append_macro(char *idname, char *name, int flag) return ot; } +void WM_operatortype_append_macro_ptr(void (*opfunc)(wmOperatorType*, void*), void *userdata) +{ + wmOperatorType *ot; + + ot= MEM_callocN(sizeof(wmOperatorType), "operatortype"); + ot->srna= RNA_def_struct(&BLENDER_RNA, "", "OperatorProperties"); + + ot->exec= wm_macro_exec; + ot->invoke= wm_macro_invoke; + ot->modal= wm_macro_modal; + ot->cancel= wm_macro_cancel; + ot->poll= NULL; + + opfunc(ot, userdata); + + RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? ot->description:"(undocumented operator)"); + RNA_def_struct_identifier(ot->srna, ot->idname); + + BLI_addtail(&global_ops, ot); +} + wmOperatorTypeMacro *WM_operatortype_macro_define(wmOperatorType *ot, const char *idname) { wmOperatorTypeMacro *otmacro= MEM_callocN(sizeof(wmOperatorTypeMacro), "wmOperatorTypeMacro"); -- cgit v1.2.3 From 9d2293c4641703a7e8d5221608b46ce939396e3e Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sat, 5 Dec 2009 21:14:31 +0000 Subject: 2.5 Nodes: * Wrapped Texture Nodes: "Blend", "Marble", "Wood", "Clouds", and "Distorted Noise", to use Texture RNA properties. * Texture RNA properties used in these Nodes, now send an ND_NODE notifier, in addition to the general NC_TEXTURE. --- source/blender/editors/space_node/drawnode.c | 99 ++++++++++------------------ source/blender/makesrna/intern/rna_texture.c | 33 +++++----- 2 files changed, 50 insertions(+), 82 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 354d7a4edd3..caff0968e54 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -1088,89 +1088,56 @@ static void node_texture_buts_bricks(uiLayout *layout, bContext *C, PointerRNA * uiItemR(col, "Frequency", 0, ptr, "squash_frequency", 0); } -/* Copied from buttons_shading.c -- needs unifying */ -static char* noisebasis_menu() -{ - static char nbmenu[256]; - sprintf(nbmenu, "Noise Basis %%t|Blender Original %%x%d|Original Perlin %%x%d|Improved Perlin %%x%d|Voronoi F1 %%x%d|Voronoi F2 %%x%d|Voronoi F3 %%x%d|Voronoi F4 %%x%d|Voronoi F2-F1 %%x%d|Voronoi Crackle %%x%d|CellNoise %%x%d", TEX_BLENDER, TEX_STDPERLIN, TEX_NEWPERLIN, TEX_VORONOI_F1, TEX_VORONOI_F2, TEX_VORONOI_F3, TEX_VORONOI_F4, TEX_VORONOI_F2F1, TEX_VORONOI_CRACKLE, TEX_CELLNOISE); - return nbmenu; -} - static void node_texture_buts_proc(uiLayout *layout, bContext *C, PointerRNA *ptr) { - uiBlock *block= uiLayoutAbsoluteBlock(layout); + PointerRNA tex_ptr; bNode *node= ptr->data; - rctf *butr= &node->butr; + ID *id= ptr->id.data; Tex *tex = (Tex *)node->storage; - short x,y,w,h; - - x = butr->xmin; - y = butr->ymin; - w = butr->xmax - x; - h = butr->ymax - y; + uiLayout *col, *row; + RNA_pointer_create(id, &RNA_Texture, tex, &tex_ptr); + + col= uiLayoutColumn(layout, 0); + switch( tex->type ) { case TEX_BLEND: - uiBlockBeginAlign( block ); - uiDefButS( block, MENU, B_NODE_EXEC, - "Linear %x0|Quad %x1|Ease %x2|Diag %x3|Sphere %x4|Halo %x5|Radial %x6", - x, y+20, w, 20, &tex->stype, 0, 1, 0, 0, "Blend Type" ); - uiDefButBitS(block, TOG, TEX_FLIPBLEND, B_NODE_EXEC, "Flip XY", x, y, w, 20, - &tex->flag, 0, 0, 0, 0, "Flips the direction of the progression 90 degrees"); - uiBlockEndAlign( block ); + uiItemR(col, "", 0, &tex_ptr, "progression", 0); + row= uiLayoutRow(col, 0); + uiItemR(row, NULL, 0, &tex_ptr, "flip_axis", UI_ITEM_R_EXPAND); break; - + case TEX_MARBLE: - uiBlockBeginAlign(block); - - uiDefButS(block, ROW, B_NODE_EXEC, "Soft", 0*w/3+x, 40+y, w/3, 18, &tex->stype, 2.0, (float)TEX_SOFT, 0, 0, "Uses soft marble"); - uiDefButS(block, ROW, B_NODE_EXEC, "Sharp", 1*w/3+x, 40+y, w/3, 18, &tex->stype, 2.0, (float)TEX_SHARP, 0, 0, "Uses more clearly defined marble"); - uiDefButS(block, ROW, B_NODE_EXEC, "Sharper", 2*w/3+x, 40+y, w/3, 18, &tex->stype, 2.0, (float)TEX_SHARPER, 0, 0, "Uses very clearly defined marble"); - - uiDefButS(block, ROW, B_NODE_EXEC, "Soft noise", 0*w/2+x, 20+y, w/2, 19, &tex->noisetype, 12.0, (float)TEX_NOISESOFT, 0, 0, "Generates soft noise"); - uiDefButS(block, ROW, B_NODE_EXEC, "Hard noise", 1*w/2+x, 20+y, w/2, 19, &tex->noisetype, 12.0, (float)TEX_NOISEPERL, 0, 0, "Generates hard noise"); - - uiDefButS(block, ROW, B_NODE_EXEC, "Sin", 0*w/3+x, 0+y, w/3, 18, &tex->noisebasis2, 8.0, 0.0, 0, 0, "Uses a sine wave to produce bands."); - uiDefButS(block, ROW, B_NODE_EXEC, "Saw", 1*w/3+x, 0+y, w/3, 18, &tex->noisebasis2, 8.0, 1.0, 0, 0, "Uses a saw wave to produce bands"); - uiDefButS(block, ROW, B_NODE_EXEC, "Tri", 2*w/3+x, 0+y, w/3, 18, &tex->noisebasis2, 8.0, 2.0, 0, 0, "Uses a triangle wave to produce bands"); - - uiBlockEndAlign(block); + row= uiLayoutRow(col, 0); + uiItemR(row, NULL, 0, &tex_ptr, "stype", UI_ITEM_R_EXPAND); + row= uiLayoutRow(col, 0); + uiItemR(row, NULL, 0, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND); + row= uiLayoutRow(col, 0); + uiItemR(row, NULL, 0, &tex_ptr, "noisebasis2", UI_ITEM_R_EXPAND); break; - + case TEX_WOOD: - uiDefButS(block, MENU, B_TEXPRV, noisebasis_menu(), x, y+64, w, 18, &tex->noisebasis, 0,0,0,0, "Sets the noise basis used for turbulence"); - - uiBlockBeginAlign(block); - uiDefButS(block, ROW, B_TEXPRV, "Bands", x, 40+y, w/2, 18, &tex->stype, 2.0, (float)TEX_BANDNOISE, 0, 0, "Uses standard noise"); - uiDefButS(block, ROW, B_TEXPRV, "Rings", w/2+x, 40+y, w/2, 18, &tex->stype, 2.0, (float)TEX_RINGNOISE, 0, 0, "Lets Noise return RGB value"); - - uiDefButS(block, ROW, B_NODE_EXEC, "Sin", 0*w/3+x, 20+y, w/3, 18, &tex->noisebasis2, 8.0, (float)TEX_SIN, 0, 0, "Uses a sine wave to produce bands."); - uiDefButS(block, ROW, B_NODE_EXEC, "Saw", 1*w/3+x, 20+y, w/3, 18, &tex->noisebasis2, 8.0, (float)TEX_SAW, 0, 0, "Uses a saw wave to produce bands"); - uiDefButS(block, ROW, B_NODE_EXEC, "Tri", 2*w/3+x, 20+y, w/3, 18, &tex->noisebasis2, 8.0, (float)TEX_TRI, 0, 0, "Uses a triangle wave to produce bands"); - - uiDefButS(block, ROW, B_NODE_EXEC, "Soft noise", 0*w/2+x, 0+y, w/2, 19, &tex->noisetype, 12.0, (float)TEX_NOISESOFT, 0, 0, "Generates soft noise"); - uiDefButS(block, ROW, B_NODE_EXEC, "Hard noise", 1*w/2+x, 0+y, w/2, 19, &tex->noisetype, 12.0, (float)TEX_NOISEPERL, 0, 0, "Generates hard noise"); - uiBlockEndAlign(block); + uiItemR(col, "", 0, &tex_ptr, "noise_basis", 0); + uiItemR(col, "", 0, &tex_ptr, "stype", 0); + row= uiLayoutRow(col, 0); + uiItemR(row, NULL, 0, &tex_ptr, "noisebasis2", UI_ITEM_R_EXPAND); + row= uiLayoutRow(col, 0); + uiLayoutSetActive(row, !(RNA_enum_get(&tex_ptr, "stype")==TEX_BAND || RNA_enum_get(&tex_ptr, "stype")==TEX_RING)); + uiItemR(row, NULL, 0, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND); break; case TEX_CLOUDS: - uiDefButS(block, MENU, B_TEXPRV, noisebasis_menu(), x, y+60, w, 18, &tex->noisebasis, 0,0,0,0, "Sets the noise basis used for turbulence"); - - uiBlockBeginAlign(block); - uiDefButS(block, ROW, B_TEXPRV, "B/W", x, y+38, w/2, 18, &tex->stype, 2.0, (float)TEX_DEFAULT, 0, 0, "Uses standard noise"); - uiDefButS(block, ROW, B_TEXPRV, "Color", w/2+x, y+38, w/2, 18, &tex->stype, 2.0, (float)TEX_COLOR, 0, 0, "Lets Noise return RGB value"); - uiDefButS(block, ROW, B_TEXPRV, "Soft", x, y+20, w/2, 18, &tex->noisetype, 12.0, (float)TEX_NOISESOFT, 0, 0, "Generates soft noise"); - uiDefButS(block, ROW, B_TEXPRV, "Hard", w/2+x, y+20, w/2, 18, &tex->noisetype, 12.0, (float)TEX_NOISEPERL, 0, 0, "Generates hard noise"); - uiBlockEndAlign(block); - - uiDefButS(block, NUM, B_TEXPRV, "Depth:", x, y, w, 18, &tex->noisedepth, 0.0, 6.0, 0, 0, "Sets the depth of the cloud calculation"); + uiItemR(col, "", 0, &tex_ptr, "noise_basis", 0); + row= uiLayoutRow(col, 0); + uiItemR(row, NULL, 0, &tex_ptr, "stype", UI_ITEM_R_EXPAND); + row= uiLayoutRow(col, 0); + uiItemR(row, NULL, 0, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND); + uiItemR(col, "Depth", 0, &tex_ptr, "noise_depth", UI_ITEM_R_EXPAND); break; case TEX_DISTNOISE: - uiBlockBeginAlign(block); - uiDefButS(block, MENU, B_TEXPRV, noisebasis_menu(), x, y+18, w, 18, &tex->noisebasis2, 0,0,0,0, "Sets the noise basis to distort"); - uiDefButS(block, MENU, B_TEXPRV, noisebasis_menu(), x, y, w, 18, &tex->noisebasis, 0,0,0,0, "Sets the noise basis which does the distortion"); - uiBlockEndAlign(block); + uiItemR(col, "", 0, &tex_ptr, "noise_basis", 0); + uiItemR(col, "", 0, &tex_ptr, "noise_distortion", 0); break; } } diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index ceb78d8cddf..be38139ce4e 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -114,6 +114,7 @@ static void rna_Texture_update(bContext *C, PointerRNA *ptr) WM_event_add_notifier(C, NC_TEXTURE, tex); } +/* Used for Texture Properties, used (also) for/in Nodes */ static void rna_Texture_nodes_update(bContext *C, PointerRNA *ptr) { Tex *tex= ptr->id.data; @@ -784,25 +785,25 @@ static void rna_def_texture_clouds(BlenderRNA *brna) RNA_def_property_range(prop, 0, INT_MAX); RNA_def_property_ui_range(prop, 0, 6, 0, 2); RNA_def_property_ui_text(prop, "Noise Depth", "Sets the depth of the cloud calculation"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "noisebasis"); RNA_def_property_enum_items(prop, prop_noise_basis_items); RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "noisetype"); RNA_def_property_enum_items(prop, prop_noise_type); RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "stype", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "stype"); RNA_def_property_enum_items(prop, prop_clouds_stype); RNA_def_property_ui_text(prop, "Color", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "nabla", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.001, 0.1); @@ -851,25 +852,25 @@ static void rna_def_texture_wood(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "noisebasis"); RNA_def_property_enum_items(prop, prop_noise_basis_items); RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "noise_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "noisetype"); RNA_def_property_enum_items(prop, prop_noise_type); RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "stype", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "stype"); RNA_def_property_enum_items(prop, prop_wood_stype); RNA_def_property_ui_text(prop, "Pattern", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "noisebasis2", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "noisebasis2"); RNA_def_property_enum_items(prop, prop_wood_noisebasis2); RNA_def_property_ui_text(prop, "Noise Basis 2", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "nabla", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.001, 0.1); @@ -925,25 +926,25 @@ static void rna_def_texture_marble(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "noisetype"); RNA_def_property_enum_items(prop, prop_noise_type); RNA_def_property_ui_text(prop, "Noise Type", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "stype", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "stype"); RNA_def_property_enum_items(prop, prop_marble_stype); RNA_def_property_ui_text(prop, "Pattern", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "noise_basis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "noisebasis"); RNA_def_property_enum_items(prop, prop_noise_basis_items); RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "noisebasis2", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "noisebasis2"); RNA_def_property_enum_items(prop, prop_marble_noisebasis2); RNA_def_property_ui_text(prop, "Noise Basis 2", ""); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "nabla", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.001, 0.1); @@ -1005,13 +1006,13 @@ static void rna_def_texture_blend(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "stype"); RNA_def_property_enum_items(prop, prop_blend_progression); RNA_def_property_ui_text(prop, "Progression", "Sets the style of the color blending"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "flip_axis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag"); RNA_def_property_enum_items(prop, prop_flip_axis_items); RNA_def_property_ui_text(prop, "Flip Axis", "Flips the texture's X and Y axis"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); } @@ -1500,13 +1501,13 @@ static void rna_def_texture_distorted_noise(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "noisebasis2"); RNA_def_property_enum_items(prop, prop_noise_basis_items); RNA_def_property_ui_text(prop, "Noise Basis", "Sets the noise basis used for turbulence"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "noise_distortion", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "noisebasis"); RNA_def_property_enum_items(prop, prop_noise_basis_items); RNA_def_property_ui_text(prop, "Noise Distortion", "Sets the noise basis for the distortion"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); + RNA_def_property_update(prop, 0, "rna_Texture_nodes_update"); prop= RNA_def_property(srna, "nabla", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.001, 0.1); -- cgit v1.2.3 From 8821f7d7eab7bc8e928805523dd26c275e095241 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sat, 5 Dec 2009 21:54:46 +0000 Subject: 2.5 Nodes: * Node listener missed "ND_SHADING_DRAW". --- source/blender/editors/space_node/space_node.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index f5c6efa2fb8..b0ce1a6bd3e 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -182,6 +182,8 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) case NC_MATERIAL: if(wmn->data==ND_SHADING) ED_area_tag_refresh(sa); + else if(wmn->data==ND_SHADING_DRAW) + ED_area_tag_refresh(sa); break; case NC_TEXTURE: if(wmn->data==ND_NODES) -- cgit v1.2.3 From 5ebe54f470c364ff4ea86d15198225295092963e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 5 Dec 2009 22:03:07 +0000 Subject: pep8 edits and fix some warnings --- source/blender/editors/space_graph/graph_edit.c | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index f20ebcc67b9..9cf1f57c65f 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -793,7 +793,6 @@ static void delete_graph_keys (bAnimContext *ac) /* loop through filtered data and delete selected keys */ for (ale= anim_data.first; ale; ale= ale->next) { FCurve *fcu= (FCurve *)ale->key_data; - AnimData *adt= ale->adt; /* delete selected keyframes only */ delete_fcurve_keys(fcu); -- cgit v1.2.3 From 062cf438ce065b477b52f72871b95bc5ee12c619 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 5 Dec 2009 23:41:45 +0000 Subject: remove nasty hack which made StructRNA class instaces have no __dict__, use __slots__, it seems all the parent classes need to have slots as well for this to work. all python defined srna classes are checked for this too --- source/blender/python/intern/bpy_rna.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index e657cfc79e2..9370ec91d37 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2986,16 +2986,18 @@ static PyObject* pyrna_srna_ExternalType(StructRNA *srna) if(newclass) { PyObject *base_compare= pyrna_srna_PyBase(srna); PyObject *bases= PyObject_GetAttrString(newclass, "__bases__"); + //PyObject *slots= PyObject_GetAttrString(newclass, "__slots__"); // cant do this because it gets superclasses values! + PyObject *slots = PyDict_GetItemString(((PyTypeObject *)newclass)->tp_dict, "__slots__"); - // XXX - highly dodgy!, this stops blender from creating __dict__ in instances - ((PyTypeObject *)newclass)->tp_dictoffset = 0; - - if(PyTuple_GET_SIZE(bases)) { + if(slots==NULL) { + fprintf(stderr, "pyrna_srna_ExternalType: expected class '%s' to have __slots__ defined\n\nSee bpy_types.py\n", idname); + newclass= NULL; + } + else if(PyTuple_GET_SIZE(bases)) { PyObject *base= PyTuple_GET_ITEM(bases, 0); if(base_compare != base) { - PyLineSpit(); - fprintf(stderr, "pyrna_srna_ExternalType: incorrect subclassing of SRNA '%s'\n", idname); + fprintf(stderr, "pyrna_srna_ExternalType: incorrect subclassing of SRNA '%s'\nSee bpy_types.py\n", idname); PyObSpit("Expected! ", base_compare); newclass= NULL; } @@ -3038,16 +3040,12 @@ static PyObject* pyrna_srna_Subtype(StructRNA *srna) if(!descr) descr= "(no docs)"; /* always use O not N when calling, N causes refcount errors */ - newclass = PyObject_CallFunction( (PyObject*)&PyType_Type, "s(O){ssss}", idname, py_base, "__module__","bpy.types", "__doc__",descr); + newclass = PyObject_CallFunction( (PyObject*)&PyType_Type, "s(O){sssss()}", idname, py_base, "__module__","bpy.types", "__doc__",descr, "__slots__"); /* newclass will now have 2 ref's, ???, probably 1 is internal since decrefing here segfaults */ /* PyObSpit("new class ref", newclass); */ if (newclass) { - - // XXX - highly dodgy!, this stops blender from creating __dict__ in instances - ((PyTypeObject *)newclass)->tp_dictoffset = 0; - /* srna owns one, and the other is owned by the caller */ pyrna_subtype_set_rna(newclass, srna); -- cgit v1.2.3 From f08e8af0b9568798bd2f59daf1b83dd0f7204ced Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 6 Dec 2009 04:35:00 +0000 Subject: wm.invoke_popup(op, width, height) similar to wm.invoke_props_popup(op, event) except it doesnt use undo/redo (UI's need to execute operators themselves) --- source/blender/makesrna/intern/rna_wm_api.c | 9 +++++ source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm_operators.c | 41 ++++++++++++++++++++++ 3 files changed, 51 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index 62c4fe642a1..50b0e37b7cd 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -147,6 +147,15 @@ void RNA_api_wm(StructRNA *srna) parm= RNA_def_pointer(func, "event", "Event", "", "Event."); RNA_def_property_flag(parm, PROP_REQUIRED); RNA_def_function_return(func, RNA_def_int(func, "mode", 0, 0, INT_MAX, "Mode", "", 0, INT_MAX)); // XXX, should be an enum/flag thingo + + /* invoke functions, for use with python */ + func= RNA_def_function(srna, "invoke_popup", "WM_operator_ui_popup"); + RNA_def_function_flag(func, FUNC_NO_SELF|FUNC_USE_CONTEXT); + RNA_def_function_ui_description(func, "Operator popup invoke."); + parm= RNA_def_pointer(func, "operator", "Operator", "", "Operator to call."); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_int(func, "width", 300, 0, INT_MAX, "", "Width of the popup.", 0, INT_MAX); + parm= RNA_def_int(func, "height", 20, 0, INT_MAX, "", "Height of the popup.", 0, INT_MAX); } void RNA_api_keyconfig(StructRNA *srna) diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 549ef11c14e..1fab234dbf7 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -168,6 +168,7 @@ int WM_operator_winactive (struct bContext *C); /* invoke callback, exec + redo popup */ int WM_operator_props_popup (struct bContext *C, struct wmOperator *op, struct wmEvent *event); int WM_operator_redo_popup (struct bContext *C, struct wmOperator *op); +void WM_operator_ui_popup (struct bContext *C, struct wmOperator *op, int width, int height); int WM_operator_confirm_message(struct bContext *C, struct wmOperator *op, char *message); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 582410c4368..f2ba9bb8eb6 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -774,6 +774,38 @@ static uiBlock *wm_block_create_redo(bContext *C, ARegion *ar, void *arg_op) return block; } + +static uiBlock *wm_operator_create_ui(bContext *C, ARegion *ar, void *userData) +{ + struct { wmOperator *op; int width; int height; } * data = userData; + wmWindowManager *wm= CTX_wm_manager(C); + wmOperator *op= data->op; + PointerRNA ptr; + uiBlock *block; + uiLayout *layout; + uiStyle *style= U.uistyles.first; + + block= uiBeginBlock(C, ar, "opui_popup", UI_EMBOSS); + uiBlockClearFlag(block, UI_BLOCK_LOOP); + uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN|UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT); + + if(!op->properties) { + IDPropertyTemplate val = {0}; + op->properties= IDP_New(IDP_GROUP, val, "wmOperatorProperties"); + } + + RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); + layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, data->width, data->height, style); + + if(op->type->ui) + op->type->ui((bContext*)C, op, layout); + + uiPopupBoundsBlock(block, 4.0f, 0, 0); + uiEndBlock(C, block); + + return block; +} + int WM_operator_props_popup(bContext *C, wmOperator *op, wmEvent *event) { int retval= OPERATOR_CANCELLED; @@ -787,6 +819,15 @@ int WM_operator_props_popup(bContext *C, wmOperator *op, wmEvent *event) return retval; } +void WM_operator_ui_popup(bContext *C, wmOperator *op, int width, int height) +{ + struct { wmOperator *op; int width; int height; } data; + data.op = op; + data.width = width; + data.height = height; + uiPupBlock(C, wm_operator_create_ui, &data); +} + int WM_operator_redo_popup(bContext *C, wmOperator *op) { uiPupBlock(C, wm_block_create_redo, op); -- cgit v1.2.3 From ba0981031ae20f1cda43a2491f6347295b6a17d2 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 6 Dec 2009 09:37:31 +0000 Subject: Assorted warning and comment fixes --- source/blender/editors/animation/keyframes_draw.c | 1 + source/blender/editors/space_action/action_edit.c | 2 +- source/blender/editors/space_graph/graph_edit.c | 3 ++- source/blender/editors/transform/transform_conversions.c | 8 ++++---- 4 files changed, 8 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 512dc92de1d..15ca0fab35f 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -229,6 +229,7 @@ static void nupdate_abk_bezt (void *node, void *data) /* just add the BezTriple to the buffer if there's space, or allocate a new one */ if (abk->numBezts >= sizeof(abk->bezts)/sizeof(BezTriple)) { // TODO: need to allocate new array to cater... + // FIXME: urgent... is a problem when working with duplicate keyframes //bezts_extra= MEM_callocN(...); printf("FIXME: nupdate_abk_bezt() missing case for too many overlapping BezTriples \n"); } diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 22f5f1757c9..133d48a5ecc 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -622,7 +622,7 @@ static void delete_action_keys (bAnimContext *ac) /* Only delete curve too if it won't be doing anything anymore */ if ((fcu->totvert == 0) && (list_has_suitable_fmodifier(&fcu->modifiers, 0, FMI_TYPE_GENERATE_CURVE) == 0)) - ANIM_fcurve_delete_from_animdata(ac, ale->adt, fcu); + ANIM_fcurve_delete_from_animdata(ac, adt, fcu); } //else // delete_gplayer_frames((bGPDlayer *)ale->data); diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 9cf1f57c65f..db50ad983da 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -793,13 +793,14 @@ static void delete_graph_keys (bAnimContext *ac) /* loop through filtered data and delete selected keys */ for (ale= anim_data.first; ale; ale= ale->next) { FCurve *fcu= (FCurve *)ale->key_data; + AnimData *adt= ale->adt; /* delete selected keyframes only */ delete_fcurve_keys(fcu); /* Only delete curve too if it won't be doing anything anymore */ if ((fcu->totvert == 0) && (list_has_suitable_fmodifier(&fcu->modifiers, 0, FMI_TYPE_GENERATE_CURVE) == 0)) - ANIM_fcurve_delete_from_animdata(ac, ale->adt, fcu); + ANIM_fcurve_delete_from_animdata(ac, adt, fcu); } /* free filtered list */ diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 4627db7e89c..9e154bc4db6 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2926,11 +2926,11 @@ static void posttrans_gpd_clean (bGPdata *gpd) */ static void posttrans_fcurve_clean (FCurve *fcu) { - float *selcache; /* cache for frame numbers of selected frames (icu->totvert*sizeof(float)) */ + float *selcache; /* cache for frame numbers of selected frames (fcu->totvert*sizeof(float)) */ int len, index, i; /* number of frames in cache, item index */ /* allocate memory for the cache */ - // TODO: investigate using GHash for this instead? + // TODO: investigate using BezTriple columns instead? if (fcu->totvert == 0) return; selcache= MEM_callocN(sizeof(float)*fcu->totvert, "FCurveSelFrameNums"); @@ -2996,7 +2996,7 @@ static void posttrans_action_clean (bAnimContext *ac, bAction *act) filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); ANIM_animdata_filter(ac, &anim_data, filter, act, ANIMCONT_ACTION); - /* loop through relevant data, removing keyframes from the ipo-blocks that were attached + /* loop through relevant data, removing keyframes as appropriate * - all keyframes are converted in/out of global time */ for (ale= anim_data.first; ale; ale= ale->next) { @@ -4773,7 +4773,7 @@ void special_aftertrans_update(TransInfo *t) /* get channels to work on */ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); - /* these should all be ipo-blocks */ + /* these should all be F-Curves */ for (ale= anim_data.first; ale; ale= ale->next) { AnimData *adt= ANIM_nla_mapping_get(&ac, ale); FCurve *fcu= (FCurve *)ale->key_data; -- cgit v1.2.3 From 4b2163c1cc53f165545e94f3aef291462aba10ce Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sun, 6 Dec 2009 17:36:27 +0000 Subject: Text change: Loopcut -> Loop Cut --- source/blender/editors/mesh/mesh_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index 866638d2f20..9a44f5960df 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -171,7 +171,7 @@ void ED_operatormacros_mesh(void) wmOperatorTypeMacro *otmacro; int constraint_axis[3] = {0, 0, 1}; - ot= WM_operatortype_append_macro("MESH_OT_loopcut_slide", "Loopcut and Slide", OPTYPE_UNDO|OPTYPE_REGISTER); + ot= WM_operatortype_append_macro("MESH_OT_loopcut_slide", "Loop Cut and Slide", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "MESH_OT_loopcut"); WM_operatortype_macro_define(ot, "TFM_OT_edge_slide"); -- cgit v1.2.3 From 450d33cc9a795c3ce0b179ae5e7130887ca06e17 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sun, 6 Dec 2009 17:38:39 +0000 Subject: Loop cut and edge ring select only have an invoke and require view3d, so change poll function to reflect that (and not, you know, crash...). --- source/blender/editors/include/ED_screen.h | 1 + source/blender/editors/mesh/loopcut.c | 4 ++-- source/blender/editors/screen/screen_ops.c | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h index 2f658e48557..2cb8745ac05 100644 --- a/source/blender/editors/include/ED_screen.h +++ b/source/blender/editors/include/ED_screen.h @@ -134,6 +134,7 @@ int ED_operator_logic_active(struct bContext *C); int ED_operator_object_active(struct bContext *C); int ED_operator_object_active_editable(struct bContext *C); int ED_operator_editmesh(struct bContext *C); +int ED_operator_editmesh_view3d(struct bContext *C); int ED_operator_editarmature(struct bContext *C); int ED_operator_editcurve(struct bContext *C); int ED_operator_editsurf(struct bContext *C); diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c index e12f3c99fcd..72bd4ee3541 100644 --- a/source/blender/editors/mesh/loopcut.c +++ b/source/blender/editors/mesh/loopcut.c @@ -455,7 +455,7 @@ void MESH_OT_edgering_select (wmOperatorType *ot) ot->invoke= ringsel_invoke; ot->modal= ringsel_modal; ot->cancel= ringsel_cancel; - ot->poll= ED_operator_editmesh; + ot->poll= ED_operator_editmesh_view3d; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING; @@ -474,7 +474,7 @@ void MESH_OT_loopcut (wmOperatorType *ot) ot->invoke= ringcut_invoke; ot->modal= ringsel_modal; ot->cancel= ringsel_cancel; - ot->poll= ED_operator_editmesh; + ot->poll= ED_operator_editmesh_view3d; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING; diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 633d5181bbf..55e2ec6b540 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -232,6 +232,11 @@ int ED_operator_editmesh(bContext *C) return 0; } +int ED_operator_editmesh_view3d(bContext *C) +{ + return ED_operator_editmesh(C) && ED_operator_view3d_active(C); +} + int ED_operator_editarmature(bContext *C) { Object *obedit= CTX_data_edit_object(C); -- cgit v1.2.3 From c5a614f2db6f09aeabecd88ba6de22a340c3bc69 Mon Sep 17 00:00:00 2001 From: Elia Sarti Date: Sun, 6 Dec 2009 22:28:59 +0000 Subject: Finished wrapping SpaceGraph in RNA and also wrapped bDopeSheet in the process. Some descriptions might be slightly off, feel free to check. --- source/blender/makesrna/intern/rna_action.c | 116 +++++++++++++++++++++++++++- source/blender/makesrna/intern/rna_space.c | 24 +++++- 2 files changed, 133 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index eaa11b4ad38..09649d6365b 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -34,10 +34,117 @@ #include "MEM_guardedalloc.h" +#include "WM_types.h" + + #ifdef RNA_RUNTIME #else +static void rna_def_dopesheet(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "DopeSheet", NULL); + RNA_def_struct_sdna(srna, "bDopeSheet"); + RNA_def_struct_ui_text(srna, "DopeSheet", "Storage for Dopesheet/Grease-Pencil Editor data."); + + prop= RNA_def_property(srna, "source", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "ID"); + RNA_def_property_ui_text(prop, "Source", "ID-Block representing source data, currently ID_SCE (for Dopesheet), and ID_SC (for Grease Pencil)."); + + prop= RNA_def_property(srna, "only_selected", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYSEL); + RNA_def_property_ui_text(prop, "Only Selected", "Only include channels relating to selected Objects."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "only_drivers", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYDRIVERS); + RNA_def_property_ui_text(prop, "Only Drivers", "Only include Driver data from Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "only_nla", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYNLA); + RNA_def_property_ui_text(prop, "Only NLA", "Only include NLA data from Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "use_filter", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SELEDIT); + RNA_def_property_ui_text(prop, "Use Filter", "Indicates if filtering options must be taken into account."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_summary", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SUMMARY); + RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_shapekeys", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSHAPEKEYS); + RNA_def_property_ui_text(prop, "Display Shapekeys", "Include visualization of Shapekey related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_camera", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCAM); + RNA_def_property_ui_text(prop, "Display Camera", "Include visualization of Camera related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_material", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMAT); + RNA_def_property_ui_text(prop, "Display Material", "Include visualization of Material related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_lamp", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOLAM); + RNA_def_property_ui_text(prop, "Display Lamp", "Include visualization of Lamp related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_curve", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCUR); + RNA_def_property_ui_text(prop, "Display Curve", "Include visualization of Curve related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_world", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOWOR); + RNA_def_property_ui_text(prop, "Display World", "Include visualization of World related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_scene", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSCE); + RNA_def_property_ui_text(prop, "Display Scene", "Include visualization of Scene related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_particle", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOPART); + RNA_def_property_ui_text(prop, "Display Particle", "Include visualization of Particle related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_metaball", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMBA); + RNA_def_property_ui_text(prop, "Display Metaball", "Include visualization of Metaball related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_armature", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOARM); + RNA_def_property_ui_text(prop, "Display Armature", "Include visualization of Armature related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "display_node", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NONTREE); + RNA_def_property_ui_text(prop, "Display Node", "Include visualization of Node related Animation data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "include_missing_nla", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NLA_NOACT); + RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA Data."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + + prop= RNA_def_property(srna, "collapse_summary", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ADS_FLAG_SUMMARY_COLLAPSED); + RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden."); + RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ +} + static void rna_def_action_group(BlenderRNA *brna) { StructRNA *srna; @@ -80,22 +187,22 @@ static void rna_def_action(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; - + srna= RNA_def_struct(brna, "Action", "ID"); RNA_def_struct_sdna(srna, "bAction"); RNA_def_struct_ui_text(srna, "Action", "A collection of F-Curves for animation."); RNA_def_struct_ui_icon(srna, ICON_ACTION); - + prop= RNA_def_property(srna, "fcurves", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "curves", NULL); RNA_def_property_struct_type(prop, "FCurve"); RNA_def_property_ui_text(prop, "F-Curves", "The individual F-Curves that make up the Action."); - + prop= RNA_def_property(srna, "groups", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "groups", NULL); RNA_def_property_struct_type(prop, "ActionGroup"); RNA_def_property_ui_text(prop, "Groups", "Convenient groupings of F-Curves."); - + prop= RNA_def_property(srna, "pose_markers", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "markers", NULL); RNA_def_property_struct_type(prop, "TimelineMarker"); @@ -110,6 +217,7 @@ void RNA_def_action(BlenderRNA *brna) { rna_def_action(brna); rna_def_action_group(brna); + rna_def_dopesheet(brna); } diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index c10f3f74fd8..edc088a7171 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1284,7 +1284,14 @@ static void rna_def_space_graph(BlenderRNA *brna) //{V3D_CENTROID, "MEDIAN_POINT", 0, "Median Point", ""}, //{V3D_ACTIVE, "ACTIVE_ELEMENT", 0, "Active Element", ""}, {0, NULL, 0, NULL, NULL}}; - + + static EnumPropertyItem autosnap_items[] = { + {SACTSNAP_OFF, "NONE", 0, "None", ""}, + {SACTSNAP_STEP, "STEP", 0, "Step", "Snap to 1.0 frame/second intervals."}, + {SACTSNAP_FRAME, "FRAME", 0, "Frame", "Snap to actual frames/seconds (nla-action time)."}, + {SACTSNAP_MARKER, "MARKER", 0, "Marker", "Snap to nearest marker."}, + {0, NULL, 0, NULL, NULL}}; + srna= RNA_def_struct(brna, "SpaceGraphEditor", "Space"); RNA_def_struct_sdna(srna, "SpaceIpo"); @@ -1351,8 +1358,19 @@ static void rna_def_space_graph(BlenderRNA *brna) RNA_def_property_enum_items(prop, gpivot_items); RNA_def_property_ui_text(prop, "Pivot Point", "Pivot center for rotation/scaling."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); - - // TODO... autosnap, dopesheet? + + /* dopesheet */ + prop= RNA_def_property(srna, "dopesheet", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "DopeSheet"); + RNA_def_property_pointer_sdna(prop, NULL, "ads"); + RNA_def_property_ui_text(prop, "DopeSheet", "Settings for filtering animation data."); + + /* autosnap */ + prop= RNA_def_property(srna, "autosnap", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "autosnap"); + RNA_def_property_enum_items(prop, autosnap_items); + RNA_def_property_ui_text(prop, "Auto Snap", "Automatic time snapping settings for transformations."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); } static void rna_def_space_nla(BlenderRNA *brna) -- cgit v1.2.3 From 85773c72303962f03c2a2d62bb26e042da8dd4b7 Mon Sep 17 00:00:00 2001 From: Elia Sarti Date: Mon, 7 Dec 2009 00:11:17 +0000 Subject: Fixed operator name typo. --- source/blender/editors/space_graph/graph_edit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index db50ad983da..532c2fe5faa 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -386,7 +386,7 @@ static int graphkeys_clear_ghostcurves_exec(bContext *C, wmOperator *op) void GRAPH_OT_ghost_curves_clear (wmOperatorType *ot) { /* identifiers */ - ot->name= "Create Ghost Curves"; + ot->name= "Clear Ghost Curves"; ot->idname= "GRAPH_OT_ghost_curves_clear"; ot->description= "Clear F-Curve snapshots (Ghosts) for active Graph Editor."; -- cgit v1.2.3 From 750764f411d18b5f57cac3857cf201d4e9425521 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 7 Dec 2009 00:16:57 +0000 Subject: rna flag PROP_ENUM_FLAG which makes rna props a tuple of enums when converted into a PyObject only used by wm.invoke_props_popup() currently --- source/blender/makesrna/RNA_access.h | 2 + source/blender/makesrna/RNA_enum_types.h | 1 + source/blender/makesrna/RNA_types.h | 5 ++ source/blender/makesrna/intern/rna_access.c | 28 +++++++ source/blender/makesrna/intern/rna_wm.c | 7 ++ source/blender/makesrna/intern/rna_wm_api.c | 6 +- source/blender/python/intern/bpy_rna.c | 112 +++++++++++++++------------- 7 files changed, 109 insertions(+), 52 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 959109f7bbb..263183cadd8 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -633,11 +633,13 @@ void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision); int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier); +int RNA_enum_bitflag_identifierss(EnumPropertyItem *item, const int value, const char **identifier); int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name); void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free); int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value); int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); +int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier); StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop); diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h index b33dbe6f20d..479397a2180 100644 --- a/source/blender/makesrna/RNA_enum_types.h +++ b/source/blender/makesrna/RNA_enum_types.h @@ -60,6 +60,7 @@ extern EnumPropertyItem nla_mode_blend_items[]; extern EnumPropertyItem event_value_items[]; extern EnumPropertyItem event_type_items[]; +extern EnumPropertyItem operator_return_items[]; extern EnumPropertyItem brush_sculpt_tool_items[]; diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 27dd1069c1c..8743bb39d57 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -87,6 +87,8 @@ typedef enum PropertyUnit { #define RNA_SUBTYPE_UNIT(subtype) (subtype & 0x00FF0000) #define RNA_SUBTYPE_UNIT_VALUE(subtype) (subtype>>16) +#define RNA_ENUM_BITFLAG_SIZE 32 + /* also update rna_property_subtypename when you change this */ typedef enum PropertySubType { PROP_NONE = 0, @@ -161,6 +163,9 @@ typedef enum PropertyFlag { PROP_ID_SELF_CHECK = 1<<20, PROP_NEVER_NULL = 1<<18, + /* flag contains multiple enums */ + PROP_ENUM_FLAG = 1<<21, + /* internal flags */ PROP_BUILTIN = 1<<7, PROP_EXPORT = 1<<8, diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 5ee811d4c46..360f43428d1 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -972,6 +972,18 @@ int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **id return 0; } +int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier) +{ + int index= 0; + for (; item->identifier; item++) { + if(item->identifier[0] && item->value & value) { + identifier[index++] = item->identifier; + } + } + identifier[index]= NULL; + return index; +} + int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name) { for (; item->identifier; item++) { @@ -999,6 +1011,22 @@ int RNA_property_enum_identifier(bContext *C, PointerRNA *ptr, PropertyRNA *prop return 0; } +int RNA_property_enum_bitflag_identifiers(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier) +{ + EnumPropertyItem *item= NULL; + int result, free; + + RNA_property_enum_items(C, ptr, prop, &item, NULL, &free); + if(item) { + result= RNA_enum_bitflag_identifiers(item, value, identifier); + if(free) + MEM_freeN(item); + + return result; + } + return 0; +} + const char *RNA_property_ui_name(PropertyRNA *prop) { return rna_ensure_property_name(prop); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 35f2a31b7ef..2e4c0690031 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -243,6 +243,13 @@ EnumPropertyItem keymap_modifiers_items[] = { {2, "SECOND", 0, "Second", ""}, {0, NULL, 0, NULL, NULL}}; +EnumPropertyItem operator_return_items[] = { + {OPERATOR_RUNNING_MODAL, "RUNNING_MODAL", 0, "Running Modal", ""}, + {OPERATOR_CANCELLED, "CANCELLED", 0, "Cancelled", ""}, + {OPERATOR_FINISHED, "FINISHED", 0, "Finished", ""}, + {OPERATOR_PASS_THROUGH, "PASS_THROUGH", 0, "Pass Through", ""}, // used as a flag + {0, NULL, 0, NULL, NULL}}; + #define KMI_TYPE_KEYBOARD 0 #define KMI_TYPE_MOUSE 1 #define KMI_TYPE_TWEAK 2 diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index 50b0e37b7cd..ce26072e91b 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -146,7 +146,11 @@ void RNA_api_wm(StructRNA *srna) RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "event", "Event", "", "Event."); RNA_def_property_flag(parm, PROP_REQUIRED); - RNA_def_function_return(func, RNA_def_int(func, "mode", 0, 0, INT_MAX, "Mode", "", 0, INT_MAX)); // XXX, should be an enum/flag thingo + + parm= RNA_def_enum(func, "result", operator_return_items, 0, "result", ""); // better name? + RNA_def_property_flag(parm, PROP_ENUM_FLAG); + RNA_def_function_return(func, parm); + /* invoke functions, for use with python */ func= RNA_def_function(srna, "invoke_popup", "WM_operator_ui_popup"); diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 9370ec91d37..9136a166365 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -379,41 +379,31 @@ static int pyrna_string_to_enum(PyObject *item, PointerRNA *ptr, PropertyRNA *pr return 1; } -PyObject * pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) +static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val) { - PyObject *ret; - int type = RNA_property_type(prop); + PyObject *ret= NULL; - if (RNA_property_array_check(ptr, prop)) { - return pyrna_py_from_array(ptr, prop); - } - - /* see if we can coorce into a python type - PropertyType */ - switch (type) { - case PROP_BOOLEAN: - ret = PyBool_FromLong( RNA_property_boolean_get(ptr, prop) ); - break; - case PROP_INT: - ret = PyLong_FromSsize_t( (Py_ssize_t)RNA_property_int_get(ptr, prop) ); - break; - case PROP_FLOAT: - ret = PyFloat_FromDouble( RNA_property_float_get(ptr, prop) ); - break; - case PROP_STRING: - { - char *buf; - buf = RNA_property_string_get_alloc(ptr, prop, NULL, -1); - ret = PyUnicode_FromString( buf ); - MEM_freeN(buf); - break; + if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { + const char *identifier[RNA_ENUM_BITFLAG_SIZE + 1]; + int index; + + if ((index=RNA_property_enum_bitflag_identifiers(BPy_GetContext(), ptr, prop, val, identifier))) { + ret= PyTuple_New(index); + index= 0; + + while(identifier[index]) { + PyTuple_SET_ITEM(ret, index, PyUnicode_FromString(identifier[index])); + index++; + } + } + else { + ret= PyTuple_New(0); + } } - case PROP_ENUM: - { + else { const char *identifier; - int val = RNA_property_enum_get(ptr, prop); - if (RNA_property_enum_identifier(BPy_GetContext(), ptr, prop, val, &identifier)) { - ret = PyUnicode_FromString( identifier ); + ret = PyUnicode_FromString(identifier); } else { EnumPropertyItem *item; int free= FALSE; @@ -422,11 +412,11 @@ PyObject * pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) * right values, python code should not generate error for that */ RNA_property_enum_items(BPy_GetContext(), ptr, prop, &item, NULL, &free); if(item && item->identifier) { - ret = PyUnicode_FromString( item->identifier ); + ret= PyUnicode_FromString(item->identifier); } else { - char *ptr_name= RNA_struct_name_get_alloc(ptr, NULL, FALSE); - + char *ptr_name= RNA_struct_name_get_alloc(ptr, NULL, FALSE); + /* prefer not fail silently incase of api errors, maybe disable it later */ printf("RNA Warning: Current value \"%d\" matches no enum in '%s', '%s', '%s'\n", val, RNA_struct_identifier(ptr->type), ptr_name, RNA_property_identifier(prop)); @@ -436,8 +426,8 @@ PyObject * pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) PyErr_Warn(PyExc_RuntimeWarning, error_str); #endif - if(ptr_name) - MEM_freeN(ptr_name); + if(ptr_name) + MEM_freeN(ptr_name); ret = PyUnicode_FromString( "" ); } @@ -448,7 +438,42 @@ PyObject * pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) /*PyErr_Format(PyExc_AttributeError, "RNA Error: Current value \"%d\" matches no enum", val); ret = NULL;*/ } + } + + return ret; +} + +PyObject * pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) +{ + PyObject *ret; + int type = RNA_property_type(prop); + if (RNA_property_array_check(ptr, prop)) { + return pyrna_py_from_array(ptr, prop); + } + + /* see if we can coorce into a python type - PropertyType */ + switch (type) { + case PROP_BOOLEAN: + ret = PyBool_FromLong( RNA_property_boolean_get(ptr, prop) ); + break; + case PROP_INT: + ret = PyLong_FromSsize_t( (Py_ssize_t)RNA_property_int_get(ptr, prop) ); + break; + case PROP_FLOAT: + ret = PyFloat_FromDouble( RNA_property_float_get(ptr, prop) ); + break; + case PROP_STRING: + { + char *buf; + buf = RNA_property_string_get_alloc(ptr, prop, NULL, -1); + ret = PyUnicode_FromString( buf ); + MEM_freeN(buf); + break; + } + case PROP_ENUM: + { + ret= pyrna_enum_to_py(ptr, prop, RNA_property_enum_get(ptr, prop)); break; } case PROP_POINTER: @@ -2422,22 +2447,7 @@ PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *data) } case PROP_ENUM: { - const char *identifier; - int val = *(int*)data; - - if (RNA_property_enum_identifier(BPy_GetContext(), ptr, prop, val, &identifier)) { - ret = PyUnicode_FromString( identifier ); - } else { - /* prefer not fail silently incase of api errors, maybe disable it later */ - char error_str[128]; - sprintf(error_str, "RNA Warning: Current value \"%d\" matches no enum", val); - PyErr_Warn(PyExc_RuntimeWarning, error_str); - - ret = PyUnicode_FromString( "" ); - /*PyErr_Format(PyExc_AttributeError, "RNA Error: Current value \"%d\" matches no enum", val); - ret = NULL;*/ - } - + ret= pyrna_enum_to_py(ptr, prop, *(int*)data); break; } case PROP_POINTER: -- cgit v1.2.3 From 17d7b7220f3240a4be07182673b29b5d9c3eee3e Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 7 Dec 2009 00:50:40 +0000 Subject: Tweaks to the fading behaviour of 3d view grid subdivs, somewhat fix for [#20246] grid subdivisionns doesn't works --- source/blender/editors/space_view3d/view3d_draw.c | 10 +++++----- source/blender/editors/space_view3d/view3d_view.c | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index acb82283604..e2310a140a6 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -343,7 +343,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u } } else { // start blending out - UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*10)); + UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*6)); drawgrid_draw(ar, wx, wy, x, y, dx); UI_ThemeColor(TH_GRID); @@ -351,7 +351,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u } } else { // start blending out (GRID_MIN_PX < dx < (GRID_MIN_PX*10)) - UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*10)); + UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*6)); drawgrid_draw(ar, wx, wy, x, y, dx); UI_ThemeColor(TH_GRID); @@ -370,21 +370,21 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u drawgrid_draw(ar, wx, wy, x, y, dx); } else { - UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*10)); + UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*6)); drawgrid_draw(ar, wx, wy, x, y, dx); UI_ThemeColor(TH_GRID); drawgrid_draw(ar, wx, wy, x, y, dx*sublines); } } else { - UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*10)); + UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*6)); drawgrid_draw(ar, wx, wy, x, y, dx); UI_ThemeColor(TH_GRID); drawgrid_draw(ar, wx, wy, x, y, dx*sublines); } } else { - UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*10)); + UI_ThemeColorBlend(TH_BACK, TH_GRID, dx/(GRID_MIN_PX*6)); drawgrid_draw(ar, wx, wy, x, y, dx); UI_ThemeColor(TH_GRID); drawgrid_draw(ar, wx, wy, x, y, dx*sublines); diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 2b42b64c0a3..9cd9d12b975 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -1942,7 +1942,6 @@ int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *event) mul_v3_fl(fly->rv3d->ofs, -1.0f); /*flip the vector*/ fly->rv3d->dist=0.0; - fly->rv3d->viewbut=0; /* used for recording */ //XXX2.5 if(v3d->camera->ipoflag & OB_ACTION_OB) @@ -1982,7 +1981,7 @@ static int flyEnd(bContext *C, FlyInfo *fly) if (fly->state == FLY_CANCEL) { /* Revert to original view? */ if (fly->persp_backup==RV3D_CAMOB) { /* a camera view */ - rv3d->viewbut=1; + VECCOPY(v3d->camera->loc, fly->ofs_backup); VECCOPY(v3d->camera->rot, fly->rot_backup); DAG_id_flush_update(&v3d->camera->id, OB_RECALC_OB); -- cgit v1.2.3 From 7f590d3a4636a2c2891dcaf2e0b833582db8f191 Mon Sep 17 00:00:00 2001 From: Elia Sarti Date: Mon, 7 Dec 2009 01:26:34 +0000 Subject: Added icons to a few RNA properties. --- source/blender/makesrna/intern/rna_action.c | 14 ++++++++++++++ source/blender/makesrna/intern/rna_space.c | 6 +++--- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 09649d6365b..2df26f3611c 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -57,6 +57,7 @@ static void rna_def_dopesheet(BlenderRNA *brna) prop= RNA_def_property(srna, "only_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYSEL); RNA_def_property_ui_text(prop, "Only Selected", "Only include channels relating to selected Objects."); + RNA_def_property_ui_icon(prop, ICON_RESTRICT_SELECT_OFF, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "only_drivers", PROP_BOOLEAN, PROP_NONE); @@ -77,66 +78,79 @@ static void rna_def_dopesheet(BlenderRNA *brna) prop= RNA_def_property(srna, "display_summary", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SUMMARY); RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line."); + RNA_def_property_ui_icon(prop, ICON_BORDERMOVE, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_shapekeys", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSHAPEKEYS); RNA_def_property_ui_text(prop, "Display Shapekeys", "Include visualization of Shapekey related Animation data."); + RNA_def_property_ui_icon(prop, ICON_SHAPEKEY_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_camera", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCAM); RNA_def_property_ui_text(prop, "Display Camera", "Include visualization of Camera related Animation data."); + RNA_def_property_ui_icon(prop, ICON_CAMERA_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_material", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMAT); RNA_def_property_ui_text(prop, "Display Material", "Include visualization of Material related Animation data."); + RNA_def_property_ui_icon(prop, ICON_MATERIAL_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_lamp", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOLAM); RNA_def_property_ui_text(prop, "Display Lamp", "Include visualization of Lamp related Animation data."); + RNA_def_property_ui_icon(prop, ICON_LAMP_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_curve", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCUR); RNA_def_property_ui_text(prop, "Display Curve", "Include visualization of Curve related Animation data."); + RNA_def_property_ui_icon(prop, ICON_CURVE_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_world", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOWOR); RNA_def_property_ui_text(prop, "Display World", "Include visualization of World related Animation data."); + RNA_def_property_ui_icon(prop, ICON_WORLD_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_scene", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSCE); RNA_def_property_ui_text(prop, "Display Scene", "Include visualization of Scene related Animation data."); + RNA_def_property_ui_icon(prop, ICON_SCENE_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_particle", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOPART); RNA_def_property_ui_text(prop, "Display Particle", "Include visualization of Particle related Animation data."); + RNA_def_property_ui_icon(prop, ICON_PARTICLE_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_metaball", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMBA); RNA_def_property_ui_text(prop, "Display Metaball", "Include visualization of Metaball related Animation data."); + RNA_def_property_ui_icon(prop, ICON_META_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_armature", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOARM); RNA_def_property_ui_text(prop, "Display Armature", "Include visualization of Armature related Animation data."); + RNA_def_property_ui_icon(prop, ICON_ARMATURE_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "display_node", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NONTREE); RNA_def_property_ui_text(prop, "Display Node", "Include visualization of Node related Animation data."); + RNA_def_property_ui_icon(prop, ICON_NODETREE, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "include_missing_nla", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NLA_NOACT); RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA Data."); + RNA_def_property_ui_icon(prop, ICON_ACTION, 0); RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ prop= RNA_def_property(srna, "collapse_summary", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index edc088a7171..ef5f8ccb87b 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1278,9 +1278,9 @@ static void rna_def_space_graph(BlenderRNA *brna) /* this is basically the same as the one for the 3D-View, but with some entries ommitted */ static EnumPropertyItem gpivot_items[] = { - {V3D_CENTER, "BOUNDING_BOX_CENTER", 0, "Bounding Box Center", ""}, - {V3D_CURSOR, "CURSOR", 0, "2D Cursor", ""}, - {V3D_LOCAL, "INDIVIDUAL_CENTERS", 0, "Individual Centers", ""}, + {V3D_CENTER, "BOUNDING_BOX_CENTER", ICON_ROTATE, "Bounding Box Center", ""}, + {V3D_CURSOR, "CURSOR", ICON_CURSOR, "2D Cursor", ""}, + {V3D_LOCAL, "INDIVIDUAL_CENTERS", ICON_ROTATECOLLECTION, "Individual Centers", ""}, //{V3D_CENTROID, "MEDIAN_POINT", 0, "Median Point", ""}, //{V3D_ACTIVE, "ACTIVE_ELEMENT", 0, "Active Element", ""}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From 764c4c94fa85d135cf7c54e49ccb7647a246fb18 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 7 Dec 2009 02:20:55 +0000 Subject: use sets rather then tuples for enum/flags so you can use bitfield operators --- source/blender/python/intern/bpy_rna.c | 56 +++++++++++++++++++-------------- source/blender/python/intern/bpy_util.c | 6 ++-- 2 files changed, 36 insertions(+), 26 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 9136a166365..f8e87912f1e 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -381,23 +381,22 @@ static int pyrna_string_to_enum(PyObject *item, PointerRNA *ptr, PropertyRNA *pr static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val) { - PyObject *ret= NULL; + PyObject *item, *ret= NULL; if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { const char *identifier[RNA_ENUM_BITFLAG_SIZE + 1]; - int index; - if ((index=RNA_property_enum_bitflag_identifiers(BPy_GetContext(), ptr, prop, val, identifier))) { - ret= PyTuple_New(index); - index= 0; + ret= PySet_New(NULL); + + if (RNA_property_enum_bitflag_identifiers(BPy_GetContext(), ptr, prop, val, identifier)) { + int index; - while(identifier[index]) { - PyTuple_SET_ITEM(ret, index, PyUnicode_FromString(identifier[index])); - index++; + for(index=0; identifier[index]; index++) { + item= PyUnicode_FromString(identifier[index]); + PySet_Add(ret, item); + Py_DECREF(item); } - } - else { - ret= PyTuple_New(0); + } } else { @@ -559,7 +558,7 @@ int pyrna_pydict_to_props(PointerRNA *ptr, PyObject *kw, int all_args, const cha static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw); -PyObject *pyrna_func_to_py(BPy_DummyPointerRNA *pyrna, FunctionRNA *func) +static PyObject *pyrna_func_to_py(BPy_DummyPointerRNA *pyrna, FunctionRNA *func) { static PyMethodDef func_meth = {"", (PyCFunction)pyrna_func_call, METH_VARARGS|METH_KEYWORDS, "python rna function"}; PyObject *self; @@ -584,6 +583,7 @@ PyObject *pyrna_func_to_py(BPy_DummyPointerRNA *pyrna, FunctionRNA *func) } + int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyObject *value, const char *error_prefix) { /* XXX hard limits should be checked here */ @@ -678,28 +678,36 @@ int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyObject *v } case PROP_ENUM: { - int val, i; + int val= 0, tmpval; if (PyUnicode_Check(value)) { if (!pyrna_string_to_enum(value, ptr, prop, &val, error_prefix)) return -1; } - else if (PyTuple_Check(value)) { - /* tuple of enum items, concatenate all values with OR */ - val= 0; - for (i= 0; i < PyTuple_Size(value); i++) { - int tmpval; - - /* PyTuple_GET_ITEM returns a borrowed reference */ - if (!pyrna_string_to_enum(PyTuple_GET_ITEM(value, i), ptr, prop, &tmpval, error_prefix)) - return -1; + else if (PyAnySet_Check(value)) { + if(RNA_property_flag(prop) & PROP_ENUM_FLAG) { + /* set of enum items, concatenate all values with OR */ + + /* set looping */ + Py_ssize_t pos = 0; + PyObject *key; + long hash; - val |= tmpval; + while (_PySet_NextEntry(value, &pos, &key, &hash)) { + if (!pyrna_string_to_enum(key, ptr, prop, &tmpval, error_prefix)) + return -1; + + val |= tmpval; + } + } + else { + PyErr_Format(PyExc_TypeError, "%.200s, %.200s.%.200s is not a bitflag enum type", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop)); + return -1; } } else { char *enum_str= pyrna_enum_as_string(ptr, prop); - PyErr_Format(PyExc_TypeError, "%.200s expected a string enum or a tuple of strings in (%.200s)", error_prefix, enum_str); + PyErr_Format(PyExc_TypeError, "%.200s expected a string enum or a set of strings in (%.200s)", error_prefix, enum_str); MEM_freeN(enum_str); return -1; } diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c index cd53ba9c069..db3798146d3 100644 --- a/source/blender/python/intern/bpy_util.c +++ b/source/blender/python/intern/bpy_util.c @@ -92,11 +92,13 @@ int BPY_flag_from_seq(BPY_flag_def *flagdef, PyObject *seq, int *flag) if(cstring) { fd= flagdef; while(fd->name) { - if (strcmp(cstring, fd->name) == 0) + if (strcmp(cstring, fd->name) == 0) { (*flag) |= fd->flag; + break; + } fd++; } - if (fd==NULL) { /* could not find a match */ + if (fd->name==NULL) { /* could not find a match */ error_val= 1; } } else { -- cgit v1.2.3 From 91102d96fcaf8799c4143c3234f213bd0d692b32 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 7 Dec 2009 03:37:43 +0000 Subject: Fix for [#20057] Shift F for setting brush strenght can never get to 1 --- source/blender/windowmanager/intern/wm_operators.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index f2ba9bb8eb6..8c819c1e3a0 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2378,7 +2378,7 @@ int WM_radial_control_modal(bContext *C, wmOperator *op, wmEvent *event) if(event->ctrl) { if(mode == WM_RADIALCONTROL_STRENGTH) - new_value = ((int)(new_value * 100) / 10*10) / 100.0f; + new_value = ((int)ceil(new_value * 10.f) * 10.0f) / 100.f; else new_value = ((int)new_value + 5) / 10*10; } -- cgit v1.2.3 From b672e9f9c0cb0784946111fda6312375db3ed802 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 7 Dec 2009 10:22:58 +0000 Subject: Fix for [#19541] Buttons etc that are too close to the window edge don't react to input --- source/blender/editors/screen/area.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index f663e5f0a21..ea56e9fd31b 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -1343,6 +1343,8 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex /* only allow scrolling in vertical direction */ v2d->keepofs |= V2D_LOCKOFS_X|V2D_KEEPOFS_Y; v2d->keepofs &= ~(V2D_LOCKOFS_Y|V2D_KEEPOFS_X); + v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE; + v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE; // don't jump back when panels close or hide if(!newcontext) @@ -1357,6 +1359,8 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex v2d->keepofs &= ~(V2D_LOCKOFS_X|V2D_LOCKOFS_Y|V2D_KEEPOFS_X|V2D_KEEPOFS_Y); //v2d->keepofs |= V2D_LOCKOFS_Y|V2D_KEEPOFS_X; //v2d->keepofs &= ~(V2D_LOCKOFS_X|V2D_KEEPOFS_Y); + v2d->scroll |= V2D_SCROLL_VERTICAL_HIDE; + v2d->scroll &= ~V2D_SCROLL_HORIZONTAL_HIDE; // don't jump back when panels close or hide if(!newcontext) -- cgit v1.2.3 From a94a2c8c722f50415dcb2c0dad536f787eb42e2b Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 7 Dec 2009 10:28:36 +0000 Subject: Fix for [#20286] New objects have no Display Type Removed a few more references to shaded mode --- source/blender/blenkernel/intern/exotic.c | 2 +- source/blender/blenkernel/intern/object.c | 2 +- source/blender/editors/object/object_modifier.c | 2 +- source/blender/makesrna/intern/rna_modifier.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/exotic.c b/source/blender/blenkernel/intern/exotic.c index 48a05c2f6a7..2a0759e6c36 100644 --- a/source/blender/blenkernel/intern/exotic.c +++ b/source/blender/blenkernel/intern/exotic.c @@ -4050,7 +4050,7 @@ static void dxf_read(Scene *scene, char *filename) ob->type= OB_MESH; - ob->dt= OB_SHADED; + ob->dt= OB_TEXTURE; ob->trackflag= OB_POSY; ob->upflag= OB_POSZ; diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 41255415b67..5806b269e7d 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -982,7 +982,7 @@ Object *add_only_object(int type, char *name) unit_m4(ob->constinv); unit_m4(ob->parentinv); unit_m4(ob->obmat); - ob->dt= OB_SHADED; + ob->dt= OB_TEXTURE; ob->empty_drawtype= OB_ARROWS; ob->empty_drawsize= 1.0; diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 0c1e6b86a99..14c342d4ecd 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -185,7 +185,7 @@ int ED_object_modifier_remove(ReportList *reports, Scene *scene, Object *ob, Mod DAG_scene_sort(scene); } else if(md->type == eModifierType_Smoke) { - ob->dt = OB_SHADED; + ob->dt = OB_TEXTURE; } BLI_remlink(&ob->modifiers, md); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index a86d889d6cf..d5cdad08923 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -224,7 +224,7 @@ static void rna_Smoke_set_type(bContext *C, PointerRNA *ptr) case MOD_SMOKE_TYPE_COLL: case 0: default: - ob->dt = OB_SHADED; + ob->dt = OB_TEXTURE; break; } -- cgit v1.2.3 From f888903eaf45b02a41b100b8ef758a9913102688 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 7 Dec 2009 10:40:55 +0000 Subject: Fix for [#20159] Orthographic camera + viewport Patch provided by Aurel W. Thanks! --- source/blender/editors/space_view3d/view3d_edit.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 844ee2973ce..0ea185589e1 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1628,36 +1628,43 @@ static int viewnumpad_exec(bContext *C, wmOperator *op) RegionView3D *rv3d= CTX_wm_region_view3d(C); Scene *scene= CTX_data_scene(C); static int perspo=RV3D_PERSP; - int viewnum, align_active; + int viewnum, align_active, nextperspo; viewnum = RNA_enum_get(op->ptr, "type"); align_active = RNA_boolean_get(op->ptr, "align_active"); + /* Use this to test if we started out with a camera */ + if (rv3d->persp == RV3D_CAMOB) { + nextperspo= rv3d->lpersp; + } else { + nextperspo= perspo; + } + switch (viewnum) { case RV3D_VIEW_BOTTOM : - axis_set_view(C, 0.0, -1.0, 0.0, 0.0, viewnum, perspo, align_active); + axis_set_view(C, 0.0, -1.0, 0.0, 0.0, viewnum, nextperspo, align_active); break; case RV3D_VIEW_BACK: - axis_set_view(C, 0.0, 0.0, (float)-cos(M_PI/4.0), (float)-cos(M_PI/4.0), viewnum, perspo, align_active); + axis_set_view(C, 0.0, 0.0, (float)-cos(M_PI/4.0), (float)-cos(M_PI/4.0), viewnum, nextperspo, align_active); break; case RV3D_VIEW_LEFT: - axis_set_view(C, 0.5, -0.5, 0.5, 0.5, viewnum, perspo, align_active); + axis_set_view(C, 0.5, -0.5, 0.5, 0.5, viewnum, nextperspo, align_active); break; case RV3D_VIEW_TOP: - axis_set_view(C, 1.0, 0.0, 0.0, 0.0, viewnum, perspo, align_active); + axis_set_view(C, 1.0, 0.0, 0.0, 0.0, viewnum, nextperspo, align_active); break; case RV3D_VIEW_FRONT: - axis_set_view(C, (float)cos(M_PI/4.0), (float)-sin(M_PI/4.0), 0.0, 0.0, viewnum, perspo, align_active); + axis_set_view(C, (float)cos(M_PI/4.0), (float)-sin(M_PI/4.0), 0.0, 0.0, viewnum, nextperspo, align_active); break; case RV3D_VIEW_RIGHT: - axis_set_view(C, 0.5, -0.5, -0.5, -0.5, viewnum, perspo, align_active); + axis_set_view(C, 0.5, -0.5, -0.5, -0.5, viewnum, nextperspo, align_active); break; case RV3D_VIEW_CAMERA: -- cgit v1.2.3 From 63fbd76548f0decb7fe2fc171bf083a21fa3e643 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 7 Dec 2009 10:41:16 +0000 Subject: [#20021] Non-ASCII characters on blender 2.5 alpha 0 could not redo the bug on my system, fix suggested by Yomgui on blendercoders. --- source/blender/python/intern/bpy_interface.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 9a14717b060..d4d0cbf602f 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -313,11 +313,25 @@ void BPY_start_python( int argc, char **argv ) /* sigh, why do python guys not have a char** version anymore? :( */ { int i; +#if 0 PyObject *py_argv= PyList_New(argc); - for (i=0; i Date: Mon, 7 Dec 2009 11:02:59 +0000 Subject: Talked with Aligorith and made changes as follows to DopeSheet struct: * Removed only_drivers, this is an internal flag * Corrected notifiers --- source/blender/makesrna/intern/rna_action.c | 39 +++++++++++++---------------- 1 file changed, 17 insertions(+), 22 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 2df26f3611c..3708d810cca 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -58,105 +58,100 @@ static void rna_def_dopesheet(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYSEL); RNA_def_property_ui_text(prop, "Only Selected", "Only include channels relating to selected Objects."); RNA_def_property_ui_icon(prop, ICON_RESTRICT_SELECT_OFF, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ - - prop= RNA_def_property(srna, "only_drivers", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYDRIVERS); - RNA_def_property_ui_text(prop, "Only Drivers", "Only include Driver data from Animation data."); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "only_nla", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYNLA); RNA_def_property_ui_text(prop, "Only NLA", "Only include NLA data from Animation data."); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "use_filter", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SELEDIT); RNA_def_property_ui_text(prop, "Use Filter", "Indicates if filtering options must be taken into account."); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_summary", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SUMMARY); RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line."); RNA_def_property_ui_icon(prop, ICON_BORDERMOVE, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_shapekeys", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSHAPEKEYS); RNA_def_property_ui_text(prop, "Display Shapekeys", "Include visualization of Shapekey related Animation data."); RNA_def_property_ui_icon(prop, ICON_SHAPEKEY_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_camera", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCAM); RNA_def_property_ui_text(prop, "Display Camera", "Include visualization of Camera related Animation data."); RNA_def_property_ui_icon(prop, ICON_CAMERA_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_material", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMAT); RNA_def_property_ui_text(prop, "Display Material", "Include visualization of Material related Animation data."); RNA_def_property_ui_icon(prop, ICON_MATERIAL_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_lamp", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOLAM); RNA_def_property_ui_text(prop, "Display Lamp", "Include visualization of Lamp related Animation data."); RNA_def_property_ui_icon(prop, ICON_LAMP_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_curve", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCUR); RNA_def_property_ui_text(prop, "Display Curve", "Include visualization of Curve related Animation data."); RNA_def_property_ui_icon(prop, ICON_CURVE_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_world", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOWOR); RNA_def_property_ui_text(prop, "Display World", "Include visualization of World related Animation data."); RNA_def_property_ui_icon(prop, ICON_WORLD_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_scene", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSCE); RNA_def_property_ui_text(prop, "Display Scene", "Include visualization of Scene related Animation data."); RNA_def_property_ui_icon(prop, ICON_SCENE_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_particle", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOPART); RNA_def_property_ui_text(prop, "Display Particle", "Include visualization of Particle related Animation data."); RNA_def_property_ui_icon(prop, ICON_PARTICLE_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_metaball", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMBA); RNA_def_property_ui_text(prop, "Display Metaball", "Include visualization of Metaball related Animation data."); RNA_def_property_ui_icon(prop, ICON_META_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_armature", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOARM); RNA_def_property_ui_text(prop, "Display Armature", "Include visualization of Armature related Animation data."); RNA_def_property_ui_icon(prop, ICON_ARMATURE_DATA, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "display_node", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NONTREE); RNA_def_property_ui_text(prop, "Display Node", "Include visualization of Node related Animation data."); RNA_def_property_ui_icon(prop, ICON_NODETREE, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "include_missing_nla", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NLA_NOACT); RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA Data."); RNA_def_property_ui_icon(prop, ICON_ACTION, 0); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "collapse_summary", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", ADS_FLAG_SUMMARY_COLLAPSED); RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden."); - RNA_def_property_update(prop, NC_ANIMATION, NULL); /* XXX fix notifier */ + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); } static void rna_def_action_group(BlenderRNA *brna) -- cgit v1.2.3 From c1c5acae14517fa2e365816caf9041dbeb956ac0 Mon Sep 17 00:00:00 2001 From: Elia Sarti Date: Mon, 7 Dec 2009 11:50:05 +0000 Subject: Porting of Graph Editor's UI to python, just header done for now. Brecht, I added a Layout template function, template_dopesheet_filter -> uiTemplateDopeSheetFilter, this creates the group of buttons for filtering ID type (and some other options) for animation editors (Graph, NLA and Dopesheet). I hope this is all right, if not, we can move this maybe to a .py file as a function for reuse. --- source/blender/editors/include/UI_interface.h | 1 + .../editors/interface/interface_templates.c | 48 ++++- source/blender/editors/space_graph/graph_header.c | 238 --------------------- source/blender/editors/space_graph/space_graph.c | 21 +- source/blender/makesrna/intern/rna_ui_api.c | 5 + 5 files changed, 55 insertions(+), 258 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 608954eeed8..aed1e5d5f0d 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -636,6 +636,7 @@ uiBlock *uiLayoutAbsoluteBlock(uiLayout *layout); /* templates */ void uiTemplateHeader(uiLayout *layout, struct bContext *C, int menus); +void uiTemplateDopeSheetFilter(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr); void uiTemplateID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop); void uiTemplateAnyID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 9402da2f2c6..bb893294910 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -60,12 +60,58 @@ void ui_template_fix_linking() void uiTemplateHeader(uiLayout *layout, bContext *C, int menus) { uiBlock *block; - + block= uiLayoutAbsoluteBlock(layout); if(menus) ED_area_header_standardbuttons(C, block, 0); else ED_area_header_switchbutton(C, block, 0); } +/********************** DopeSheet Filter Template *************************/ + +void uiTemplateDopeSheetFilter(uiLayout *layout, bContext *C, PointerRNA *ptr) +{ + Main *mainptr= CTX_data_main(C); + ScrArea *sa= CTX_wm_area(C); + uiLayout *row= layout; + short nlaActive= ((sa) && (sa->spacetype==SPACE_NLA)); + + /* more 'generic' filtering options */ + if (nlaActive) + row= uiLayoutRow(layout, 1); + + uiItemR(row, "", 0, ptr, "only_selected", 0); + + if (nlaActive) + uiItemR(row, "", 0, ptr, "include_missing_nla", 0); + + if (nlaActive) + row= layout; + + /* datatype based - only available datatypes are shown */ + row= uiLayoutRow(layout, 1); + + uiItemR(row, "", 0, ptr, "display_scene", 0); + uiItemR(row, "", 0, ptr, "display_world", 0); + uiItemR(row, "", 0, ptr, "display_node", 0); + + if (mainptr && mainptr->key.first) + uiItemR(row, "", 0, ptr, "display_shapekeys", 0); + if (mainptr && mainptr->mat.first) + uiItemR(row, "", 0, ptr, "display_material", 0); + if (mainptr && mainptr->lamp.first) + uiItemR(row, "", 0, ptr, "display_lamp", 0); + if (mainptr && mainptr->camera.first) + uiItemR(row, "", 0, ptr, "display_camera", 0); + if (mainptr && mainptr->curve.first) + uiItemR(row, "", 0, ptr, "display_curve", 0); + if (mainptr && mainptr->mball.first) + uiItemR(row, "", 0, ptr, "display_metaball", 0); + if (mainptr && mainptr->armature.first) + uiItemR(row, "", 0, ptr, "display_armature", 0); + if (mainptr && mainptr->particle.first) + uiItemR(row, "", 0, ptr, "display_particle", 0); +} + /********************** Search Callbacks *************************/ typedef struct TemplateID { diff --git a/source/blender/editors/space_graph/graph_header.c b/source/blender/editors/space_graph/graph_header.c index bf8777164c5..8aeb76cae0f 100644 --- a/source/blender/editors/space_graph/graph_header.c +++ b/source/blender/editors/space_graph/graph_header.c @@ -63,144 +63,6 @@ #include "graph_intern.h" /* ********************************************************* */ -/* Menu Defines... */ - -static void graph_viewmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - bScreen *sc= CTX_wm_screen(C); - ScrArea *sa= CTX_wm_area(C); - SpaceIpo *sipo= CTX_wm_space_graph(C); - PointerRNA spaceptr; - - /* retrieve state */ - RNA_pointer_create(&sc->id, &RNA_SpaceGraphEditor, sipo, &spaceptr); - - /* create menu */ - uiItemO(layout, NULL, ICON_MENU_PANEL, "GRAPH_OT_properties"); - - uiItemS(layout); - - uiItemR(layout, NULL, 0, &spaceptr, "show_cframe_indicator", 0); - uiItemR(layout, NULL, 0, &spaceptr, "show_cursor", 0); - uiItemR(layout, NULL, 0, &spaceptr, "show_sliders", 0); - uiItemR(layout, NULL, 0, &spaceptr, "automerge_keyframes", 0); - - if (sipo->flag & SIPO_NOHANDLES) - uiItemO(layout, "Show Handles", ICON_CHECKBOX_DEHLT, "GRAPH_OT_handles_view_toggle"); - else - uiItemO(layout, "Show Handles", ICON_CHECKBOX_HLT, "GRAPH_OT_handles_view_toggle"); - - uiItemR(layout, NULL, 0, &spaceptr, "only_selected_curves_handles", 0); - uiItemR(layout, NULL, 0, &spaceptr, "only_selected_keyframe_handles", 0); - - - if (sipo->flag & SIPO_DRAWTIME) - uiItemO(layout, "Show Frames", 0, "ANIM_OT_time_toggle"); - else - uiItemO(layout, "Show Seconds", 0, "ANIM_OT_time_toggle"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ANIM_OT_previewrange_set"); - uiItemO(layout, NULL, 0, "ANIM_OT_previewrange_clear"); - - uiItemO(layout, NULL, 0, "GRAPH_OT_previewrange_set"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "GRAPH_OT_frame_jump"); - - uiItemO(layout, NULL, 0, "GRAPH_OT_view_all"); - - if (sa->full) - uiItemO(layout, NULL, 0, "SCREEN_OT_screen_full_area"); // "Tile Window", Ctrl UpArrow - else - uiItemO(layout, NULL, 0, "SCREEN_OT_screen_full_area"); // "Maximize Window", Ctrl DownArrow -} - -static void graph_selectmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemO(layout, NULL, 0, "GRAPH_OT_select_all_toggle"); - uiItemBooleanO(layout, "Invert All", 0, "GRAPH_OT_select_all_toggle", "invert", 1); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "GRAPH_OT_select_border"); - uiItemBooleanO(layout, "Border Axis Range", 0, "GRAPH_OT_select_border", "axis_range", 1); - - uiItemS(layout); - - uiItemEnumO(layout, "Columns on Selected Keys", 0, "GRAPH_OT_select_column", "mode", GRAPHKEYS_COLUMNSEL_KEYS); - uiItemEnumO(layout, "Column on Current Frame", 0, "GRAPH_OT_select_column", "mode", GRAPHKEYS_COLUMNSEL_CFRA); - - uiItemEnumO(layout, "Columns on Selected Markers", 0, "GRAPH_OT_select_column", "mode", GRAPHKEYS_COLUMNSEL_MARKERS_COLUMN); - uiItemEnumO(layout, "Between Selected Markers", 0, "GRAPH_OT_select_column", "mode", GRAPHKEYS_COLUMNSEL_MARKERS_BETWEEN); -} - -static void graph_channelmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemO(layout, NULL, 0, "ANIM_OT_channels_setting_toggle"); - uiItemO(layout, NULL, 0, "ANIM_OT_channels_setting_enable"); - uiItemO(layout, NULL, 0, "ANIM_OT_channels_setting_disable"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ANIM_OT_channels_editable_toggle"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ANIM_OT_channels_expand"); - uiItemO(layout, NULL, 0, "ANIM_OT_channels_collapse"); -} - -static void graph_edit_transformmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemO(layout, "Grab/Move", 0, "TFM_OT_translate"); - uiItemEnumO(layout, "Extend", 0, "TFM_OT_transform", "mode", TFM_TIME_EXTEND); - uiItemO(layout, "Rotate", 0, "TFM_OT_rotate"); - uiItemO(layout, "Scale", 0, "TFM_OT_resize"); -} - -static void graph_editmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemMenuF(layout, "Transform", 0, graph_edit_transformmenu, NULL); - uiItemMenuEnumO(layout, "Snap", 0, "GRAPH_OT_snap", "type"); - uiItemMenuEnumO(layout, "Mirror", 0, "GRAPH_OT_mirror", "type"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "GRAPH_OT_keyframe_insert"); - uiItemO(layout, NULL, 0, "GRAPH_OT_fmodifier_add"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "GRAPH_OT_duplicate"); - uiItemO(layout, NULL, 0, "GRAPH_OT_delete"); - - uiItemS(layout); - - uiItemMenuEnumO(layout, "Handle Type", 0, "GRAPH_OT_handle_type", "type"); - uiItemMenuEnumO(layout, "Interpolation Mode", 0, "GRAPH_OT_interpolation_type", "type"); - uiItemMenuEnumO(layout, "Extrapolation Mode", 0, "GRAPH_OT_extrapolation_type", "type"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "GRAPH_OT_clean"); - uiItemO(layout, NULL, 0, "GRAPH_OT_sample"); - uiItemO(layout, NULL, 0, "GRAPH_OT_bake"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "GRAPH_OT_copy"); - uiItemO(layout, NULL, 0, "GRAPH_OT_paste"); -} - -/* ********************************************************* */ - -enum { - B_REDR = 0, - B_MODECHANGE, -} eGraphEdit_Events; static void do_graph_buttons(bContext *C, void *arg, int event) { @@ -208,104 +70,4 @@ static void do_graph_buttons(bContext *C, void *arg, int event) ED_area_tag_redraw(CTX_wm_area(C)); } -static char *garound_pup(const bContext *C) -{ - static char string[512]; - char *str = string; - - str += sprintf(str, "%s", "Pivot: %t"); - str += sprintf(str, "%s", "|Bounding Box Center %x0"); - //str += sprintf(str, "%s", "|Median Point %x3"); - str += sprintf(str, "%s", "|2D Cursor %x1"); - str += sprintf(str, "%s", "|Individual Centers %x2"); - return string; -} - -void graph_header_buttons(const bContext *C, ARegion *ar) -{ - SpaceIpo *sipo= CTX_wm_space_graph(C); - ScrArea *sa= CTX_wm_area(C); - uiBlock *block; - int xco, yco= 3; - - block= uiBeginBlock(C, ar, "header buttons", UI_EMBOSS); - uiBlockSetHandleFunc(block, do_graph_buttons, NULL); - - /* standard buttosn in header - viewtype selector and menus */ - xco= ED_area_header_standardbuttons(C, block, yco); - - if ((sa->flag & HEADER_NO_PULLDOWN)==0) { - int xmax; - - xmax= GetButStringLength("View"); - uiDefMenuBut(block, graph_viewmenu, NULL, "View", xco, yco, xmax-3, 20, ""); - xco+= xmax; - - xmax= GetButStringLength("Select"); - uiDefMenuBut(block, graph_selectmenu, NULL, "Select", xco, yco, xmax-3, 20, ""); - xco+= xmax; - - xmax= GetButStringLength("Channel"); - uiDefMenuBut(block, graph_channelmenu, NULL, "Channel", xco, yco, xmax-3, 20, ""); - xco+= xmax; - - xmax= GetButStringLength("Key"); - uiDefMenuBut(block, graph_editmenu, NULL, "Key", xco, yco, xmax-3, 20, ""); - xco+= xmax; - } - - uiBlockSetEmboss(block, UI_EMBOSS); - - /* mode selector */ - uiDefButS(block, MENU, B_MODECHANGE, - "Editor Mode %t|F-Curve Editor %x0|Drivers %x1", - xco,yco,110,YIC, &sipo->mode, 0, 1, 0, 0, - "Editing modes for this editor"); - xco+= 120; - - /* filtering buttons */ - xco= ANIM_headerUI_standard_buttons(C, sipo->ads, block, xco, yco); - - /* auto-snap selector */ - if (sipo->flag & SIPO_DRAWTIME) { - uiDefButS(block, MENU, B_REDR, - "Auto-Snap Keyframes %t|No Time-Snap %x0|Nearest Second %x2|Nearest Marker %x3", - xco,yco,90,YIC, &sipo->autosnap, 0, 1, 0, 0, - "Auto-snapping mode for keyframe times when transforming"); - } - else { - uiDefButS(block, MENU, B_REDR, - "Auto-Snap Keyframes %t|No Time-Snap %x0|Nearest Frame %x2|Nearest Marker %x3", - xco,yco,90,YIC, &sipo->autosnap, 0, 1, 0, 0, - "Auto-snapping mode for keyframe times when transforming"); - } - xco += 98; - - /* pivot mode setting */ - uiDefIconTextButI(block, ICONTEXTROW,B_REDR, ICON_ROTATE, garound_pup(C), xco,yco,XIC+10,YIC, &(sipo->around), 0, 3.0, 0, 0, "Rotation/Scaling Pivot"); - xco+= XIC+10; - - /* copy + paste */ - uiBlockBeginAlign(block); - uiDefIconButO(block, BUT, "GRAPH_OT_copy", WM_OP_INVOKE_REGION_WIN, ICON_COPYDOWN, xco+=XIC,yco,XIC,YIC, "Copies the selected keyframes from the selected channel(s) to the buffer"); - uiDefIconButO(block, BUT, "GRAPH_OT_paste", WM_OP_INVOKE_REGION_WIN, ICON_PASTEDOWN, xco+=XIC,yco,XIC,YIC, "Pastes the keyframes from the buffer"); - uiBlockEndAlign(block); - xco += (XIC + 8); - - /* ghost curves */ - // XXX these icons need to be changed - if (sipo->ghostCurves.first) - uiDefIconButO(block, BUT, "GRAPH_OT_ghost_curves_clear", WM_OP_INVOKE_REGION_WIN, ICON_GHOST_DISABLED, xco,yco,XIC,YIC, "Clear F-Curve snapshots (Ghosts) for this Graph Editor instance"); - else - uiDefIconButO(block, BUT, "GRAPH_OT_ghost_curves_create", WM_OP_INVOKE_REGION_WIN, ICON_GHOST_ENABLED, xco,yco,XIC,YIC, "Create snapshot (Ghosts) of selected F-Curves as background aid for this Graph Editor instance"); - xco+= XIC; - - - /* always as last */ - UI_view2d_totRect_set(&ar->v2d, xco+XIC+80, (int)(ar->v2d.tot.ymax - ar->v2d.tot.ymin)); - - uiEndBlock(C, block); - uiDrawBlock(C, block); -} - diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 24f87906391..f6d25bd7285 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -350,29 +350,12 @@ static void graph_channel_area_draw(const bContext *C, ARegion *ar) /* add handlers, stuff you only do once or on area/region changes */ static void graph_header_area_init(wmWindowManager *wm, ARegion *ar) { - UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy); + ED_region_header_init(ar); } static void graph_header_area_draw(const bContext *C, ARegion *ar) { - float col[3]; - - /* clear */ - if(ED_screen_area_active(C)) - UI_GetThemeColor3fv(TH_HEADER, col); - else - UI_GetThemeColor3fv(TH_HEADERDESEL, col); - - glClearColor(col[0], col[1], col[2], 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - /* set view2d view matrix for scrolling (without scrollers) */ - UI_view2d_view_ortho(C, &ar->v2d); - - graph_header_buttons(C, ar); - - /* restore view matrix? */ - UI_view2d_view_restore(C); + ED_region_header(C, ar); } /* add handlers, stuff you only do once or on area/region changes */ diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index e15cc130899..6086cdfdec2 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -254,6 +254,11 @@ void RNA_api_ui_layout(StructRNA *srna) RNA_def_function_flag(func, FUNC_USE_CONTEXT); RNA_def_boolean(func, "menus", 1, "", "The header has menus, and should show menu expander."); + func= RNA_def_function(srna, "template_dopesheet_filter", "uiTemplateDopeSheetFilter"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + parm= RNA_def_pointer(func, "dopesheet", "DopeSheet", "", "DopeSheet settings holding filter options."); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR|PROP_NEVER_NULL); + func= RNA_def_function(srna, "template_ID", "uiTemplateID"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); api_ui_item_rna_common(func); -- cgit v1.2.3 From 926201acf8f451bd9a240013ba972a8488c43abe Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 7 Dec 2009 14:09:53 +0000 Subject: - string copy without .py wasnt terminating the string - console import autocomplete wasnt including modules defined in C like BGL, Mathutils --- source/blender/python/generic/bpy_internal_import.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/bpy_internal_import.c b/source/blender/python/generic/bpy_internal_import.c index d3b8b19693f..002467687c4 100644 --- a/source/blender/python/generic/bpy_internal_import.c +++ b/source/blender/python/generic/bpy_internal_import.c @@ -74,8 +74,9 @@ PyObject *bpy_text_import( Text *text ) } } - len= strlen(text->id.name+2) - 3; + len= strlen(text->id.name+2); strncpy(modulename, text->id.name+2, len); + modulename[len - 3]= '\0'; /* remove .py */ return PyImport_ExecCodeModule(modulename, text->compiled); } -- cgit v1.2.3 From 74b80f8c3d30b8fc64fdf6eb023641ec94c6d57e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 7 Dec 2009 15:54:27 +0000 Subject: crashfix, duplicating armatures with ID-Props assigned to the bones didnt copy the bone. --- source/blender/blenkernel/intern/armature.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 418c9f00596..e53e4a1155b 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -184,6 +184,9 @@ static void copy_bonechildren (Bone* newBone, Bone* oldBone, Bone* actBone, Bone if(oldBone == actBone) *newActBone= newBone; + if(oldBone->prop) + newBone->prop= IDP_CopyProperty(oldBone->prop); + /* Copy this bone's list*/ BLI_duplicatelist(&newBone->childbase, &oldBone->childbase); -- cgit v1.2.3 From 161871316eee9eddaef3d653f436f36fc0726001 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Dec 2009 16:59:10 +0000 Subject: Bugfix: WM could access freed memory when testing for click event after opening a new file (and freeing the window and its event queue). --- source/blender/windowmanager/intern/wm_event_system.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index c19d1000573..3a74dbe0b16 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1163,11 +1163,11 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) /* fileread case */ if(CTX_wm_window(C)==NULL) - break; + return action; } /* test for CLICK event */ - if (event->val == KM_RELEASE && (action == WM_HANDLER_CONTINUE || action == (WM_HANDLER_BREAK|WM_HANDLER_MODAL))) { + if ((action == WM_HANDLER_CONTINUE || action == (WM_HANDLER_BREAK|WM_HANDLER_MODAL)) && event->val == KM_RELEASE) { wmWindow *win = CTX_wm_window(C); if (win && win->last_type == event->type && win->last_val == KM_PRESS) { -- cgit v1.2.3 From 4a23c3f9e1aaaefcb7b5586b908c51d2922d71fb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Dec 2009 17:55:58 +0000 Subject: Particles: child editing bugfixes * Make partial update work again for faster editing. * Draw parents over children again, nicer for editing. * Fix crash with remove tools & showing child particles. * Fix children not disappearing always when setting to None. * Fix wrong normal for last point in child path. * Fix a python error in the hair dynamics panel. --- source/blender/blenkernel/intern/particle.c | 4 ++ source/blender/blenkernel/intern/particle_system.c | 2 + source/blender/blenloader/intern/readfile.c | 8 ++- source/blender/editors/physics/particle_edit.c | 12 +++-- source/blender/editors/space_view3d/drawobject.c | 59 +++++++++++++--------- 5 files changed, 56 insertions(+), 29 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index bb2f4128891..ab73b24ba39 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -2332,6 +2332,7 @@ static int psys_threads_init_path(ParticleThread *threads, Scene *scene, float c ctx->totparent= totparent; ctx->parent_pass= 0; ctx->cfra= cfra; + ctx->editupdate= editupdate; psys->lattice = psys_get_lattice(&ctx->sim); @@ -2615,6 +2616,9 @@ static void psys_thread_create_path(ParticleThread *thread, struct ChildParticle get_strand_normal(ctx->ma, ornor, cur_length, (state-1)->vel); } + if(k == ctx->steps) + VECSUB(state->vel,state->co,(state-1)->co); + /* check if path needs to be cut before actual end of data points */ if(k){ VECSUB(dvec,state->co,(state-1)->co); diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index dbe6fbd6dde..3c660be64ce 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -2925,6 +2925,8 @@ static void psys_update_path_cache(ParticleSimulationData *sim, float cfra) psys_find_parents(sim); } } + else + psys_free_children(psys); } if((part->type==PART_HAIR || psys->flag&PSYS_KEYED || psys->pointcache->flag & PTCACHE_BAKED)==0) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2ad3b17a896..54c86af80b6 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10165,7 +10165,13 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } /* put 2.50 compatibility code here until next subversion bump */ - + { + Scene *sce= main->scene.first; + + for(sce=main->scene.first; sce; sce=sce->id.next) + if(!sce->toolsettings->particle.selectmode) + sce->toolsettings->particle.selectmode= SCE_SELECT_PATH; + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index 68e673c31b1..349db7746a1 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -1174,8 +1174,11 @@ static void update_velocities(Object *ob, PTCacheEdit *edit) } } } + void PE_update_object(Scene *scene, Object *ob, int useflag) { + /* use this to do partial particle updates, not usable when adding or + removing, then a full redo is necessary and calling this may crash */ ParticleEditSettings *pset= PE_settings(scene); PTCacheEdit *edit = PE_get_current(scene, ob); POINT_P; @@ -2064,6 +2067,12 @@ static int remove_tagged_particles(Scene *scene, Object *ob, ParticleSystem *psy edit->mirror_cache= NULL; } + if(psys->child) { + MEM_freeN(psys->child); + psys->child= NULL; + psys->totchild=0; + } + edit->totpoint= psys->totpart= new_totpart; } @@ -2330,7 +2339,6 @@ static int remove_doubles_exec(bContext *C, wmOperator *op) BKE_reportf(op->reports, RPT_INFO, "Remove %d double particles.", totremoved); - PE_update_object(scene, ob, 0); DAG_id_flush_update(&ob->id, OB_RECALC_DATA); WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, ob); @@ -2507,7 +2515,6 @@ static int delete_exec(bContext *C, wmOperator *op) recalc_lengths(data.edit); } - PE_update_object(data.scene, data.ob, 0); DAG_id_flush_update(&data.ob->id, OB_RECALC_DATA); WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, data.ob); @@ -3733,7 +3740,6 @@ void PE_undo_step(Scene *scene, int step) } } - PE_update_object(scene, OBACT, 0); DAG_id_flush_update(&OBACT->id, OB_RECALC_DATA); } diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index f60f4ad9230..7bc86f6bae7 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -4166,6 +4166,16 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv wmLoadMatrix(rv3d->viewmat); } +static void draw_update_ptcache_edit(Scene *scene, Object *ob, PTCacheEdit *edit) +{ + if(edit->psys && edit->psys->flag & PSYS_HAIR_UPDATED) + PE_update_object(scene, ob, 0); + + /* create path and child path cache if it doesn't exist already */ + if(edit->pathcache==0) + psys_cache_edit_paths(scene, ob, edit, CFRA); +} + static void draw_ptcache_edit(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, PTCacheEdit *edit, int dt) { ParticleCacheKey **cache, *path, *pkey; @@ -4178,14 +4188,6 @@ static void draw_ptcache_edit(Scene *scene, View3D *v3d, RegionView3D *rv3d, Obj float nosel_col[3]; float *pathcol = NULL, *pcol; - - if(edit->psys && edit->psys->flag & PSYS_HAIR_UPDATED) - PE_update_object(scene, ob, 0); - - /* create path and child path cache if it doesn't exist already */ - if(edit->pathcache==0) - psys_cache_edit_paths(scene, ob, edit, CFRA); - if(edit->pathcache==0) return; @@ -5900,22 +5902,6 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) if(ob->pd && ob->pd->forcefield) draw_forcefield(scene, ob); - /* particle mode has to be drawn first so that possible child particles get cached in edit mode */ - if( (warning_recursive==0) && - (flag & DRAW_PICKING)==0 && - (!scene->obedit) - ) { - - if(ob->mode & OB_MODE_PARTICLE_EDIT && ob==OBACT) { - PTCacheEdit *edit = PE_get_current(scene, ob); - if(edit) { - wmLoadMatrix(rv3d->viewmat); - draw_ptcache_edit(scene, v3d, rv3d, ob, edit, dt); - wmMultMatrix(ob->obmat); - } - } - } - /* code for new particle system */ if( (warning_recursive==0) && (ob->particlesystem.first) && @@ -5923,6 +5909,8 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) (ob!=scene->obedit) ) { ParticleSystem *psys; + PTCacheEdit *edit = PE_get_current(scene, ob); + if(col || (ob->flag & SELECT)) cpack(0xFFFFFF); /* for visibility, also while wpaint */ //glDepthMask(GL_FALSE); @@ -5930,8 +5918,13 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) view3d_cached_text_draw_begin(); - for(psys=ob->particlesystem.first; psys; psys=psys->next) + for(psys=ob->particlesystem.first; psys; psys=psys->next) { + /* run this so that possible child particles get cached */ + if(edit && edit->psys == psys) + draw_update_ptcache_edit(scene, ob, edit); + draw_new_particle_system(scene, v3d, rv3d, base, psys, dt); + } view3d_cached_text_draw_end(v3d, ar, 0, NULL); @@ -5941,6 +5934,22 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) if(col) cpack(col); } + /* draw edit particles last so that they can draw over child particles */ + if( (warning_recursive==0) && + (flag & DRAW_PICKING)==0 && + (!scene->obedit) + ) { + + if(ob->mode & OB_MODE_PARTICLE_EDIT && ob==OBACT) { + PTCacheEdit *edit = PE_get_current(scene, ob); + if(edit) { + wmLoadMatrix(rv3d->viewmat); + draw_ptcache_edit(scene, v3d, rv3d, ob, edit, dt); + wmMultMatrix(ob->obmat); + } + } + } + /* draw code for smoke */ if((md = modifiers_findByType(ob, eModifierType_Smoke))) { -- cgit v1.2.3 From 149b3bc7f2791e61d94dd91390b66fce7ff45aac Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 7 Dec 2009 18:05:51 +0000 Subject: Flag down a window when cursor is grabbed. --- source/blender/makesdna/DNA_windowmanager_types.h | 5 ++++- source/blender/windowmanager/intern/wm_cursors.c | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 1af1dd7a158..24374720232 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -139,7 +139,10 @@ typedef struct wmWindow { void *ghostwin; /* dont want to include ghost.h stuff */ - int winid, pad; /* winid also in screens, is for retrieving this window after read */ + int winid; /* winid also in screens, is for retrieving this window after read */ + + short grabcursor; /* 1 if cursor is grabbed */ + short pad; struct bScreen *screen; /* active screen */ struct bScreen *newscreen; /* temporary when switching */ diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c index 95a1de96115..cec5886014a 100644 --- a/source/blender/windowmanager/intern/wm_cursors.c +++ b/source/blender/windowmanager/intern/wm_cursors.c @@ -180,6 +180,8 @@ void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds) GHOST_SetCursorGrab(win->ghostwin, mode, bounds); else if (tabletdata->Active == GHOST_kTabletModeNone) GHOST_SetCursorGrab(win->ghostwin, mode, bounds); + + win->grabcursor = 1; } } } @@ -187,8 +189,10 @@ void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds) void WM_cursor_ungrab(wmWindow *win) { if ((G.f & G_DEBUG) == 0) { - if(win && win->ghostwin) + if(win && win->ghostwin) { GHOST_SetCursorGrab(win->ghostwin, GHOST_kGrabDisable, NULL); + win->grabcursor = 0; + } } } -- cgit v1.2.3 From 78f87c8bdf3bdb2115f9ab3e2a333fb76a5d2cfc Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 7 Dec 2009 18:06:37 +0000 Subject: Function to access the real cursor position from Ghost (useful when cursor is grabbed and warped) --- source/blender/windowmanager/intern/wm_window.c | 7 +++++++ source/blender/windowmanager/wm_window.h | 2 ++ 2 files changed, 9 insertions(+) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index d9b6117cbb3..542520ce1b0 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -972,6 +972,13 @@ void wm_window_swap_buffers(wmWindow *win) #endif } +void wm_get_cursor_position(wmWindow *win, int *x, int *y) +{ + GHOST_GetCursorPosition(g_system, x, y); + GHOST_ScreenToClient(win->ghostwin, *x, *y, x, y); + *y = (win->sizey-1) - *y; +} + /* ******************* exported api ***************** */ diff --git a/source/blender/windowmanager/wm_window.h b/source/blender/windowmanager/wm_window.h index 4328f915101..84e246937e4 100644 --- a/source/blender/windowmanager/wm_window.h +++ b/source/blender/windowmanager/wm_window.h @@ -55,6 +55,8 @@ void wm_window_get_position (wmWindow *win, int *posx_r, int *posy_r); void wm_window_set_title (wmWindow *win, char *title); void wm_window_swap_buffers (wmWindow *win); +void wm_get_cursor_position (wmWindow *win, int *x, int *y); + wmWindow *wm_window_copy (bContext *C, wmWindow *winorig); void wm_window_testbreak (void); -- cgit v1.2.3 From 19aab8edb09eaf3600e4ca90329e244554f3a0fb Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 7 Dec 2009 18:08:19 +0000 Subject: Custom cursor draw function uses the real cursor position when cursor is grabbed (and not the coordinates from the event). Drawing a custom cursor anywhere but on the real cursor is no good. Also permit NULL poll function (equal to a function that always returns 1) --- source/blender/windowmanager/intern/wm_draw.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index e7c04141ad3..96aea760e20 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -72,9 +72,15 @@ static void wm_paintcursor_draw(bContext *C, ARegion *ar) if(screen->subwinactive == ar->swinid) { for(pc= wm->paintcursors.first; pc; pc= pc->next) { - if(pc->poll(C)) { + if(pc->poll == NULL || pc->poll(C)) { ARegion *ar= CTX_wm_region(C); - pc->draw(C, win->eventstate->x - ar->winrct.xmin, win->eventstate->y - ar->winrct.ymin, pc->customdata); + if (win->grabcursor) { + int x = 0, y = 0; + wm_get_cursor_position(win, &x, &y); + pc->draw(C, x - ar->winrct.xmin, y - ar->winrct.ymin, pc->customdata); + } else { + pc->draw(C, win->eventstate->x - ar->winrct.xmin, win->eventstate->y - ar->winrct.ymin, pc->customdata); + } } } } -- cgit v1.2.3 From 1962afa2a6273511268246601659b74c418b6e8e Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 7 Dec 2009 18:10:11 +0000 Subject: Use custom cursor draw in transform to draw the new arrow cursors (to indicate direction of motion for a particular transformations). This insures that it's drawn under the cursor and not far away when cursor is warped (rubber band still points to event location, this helps visualize too). --- source/blender/editors/transform/transform.c | 32 ++++++++++++---------- source/blender/editors/transform/transform.h | 3 +- .../blender/editors/transform/transform_generics.c | 6 ++-- 3 files changed, 24 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 1b450e48e31..728c4eae676 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1148,7 +1148,7 @@ int calculateTransformCenter(bContext *C, wmEvent *event, int centerMode, float /* aftertrans does insert ipos and action channels, and clears base flags, doesnt read transdata */ special_aftertrans_update(t); - postTrans(t); + postTrans(C, t); MEM_freeN(t); @@ -1239,11 +1239,14 @@ static void drawArc(float size, float angle_start, float angle_end, int segments glEnd(); } -void drawHelpline(const struct bContext *C, TransInfo *t) +static void drawHelpline(bContext *C, int x, int y, void *customdata) { + TransInfo *t = (TransInfo*)customdata; + if (t->helpline != HLP_NONE && !(t->flag & T_USES_MANIPULATOR)) { float vecrot[3], cent[2]; + int mval[2] = {x, y}; VECCOPY(vecrot, t->center); if(t->flag & T_EDIT) { @@ -1270,7 +1273,7 @@ void drawHelpline(const struct bContext *C, TransInfo *t) glVertex2fv(cent); glEnd(); - glTranslatef(t->mval[0], t->mval[1], 0); + glTranslatef(mval[0], mval[1], 0); glRotatef(-180 / M_PI * atan2f(cent[0] - t->mval[0], cent[1] - t->mval[1]), 0, 0, 1); setlinestyle(0); @@ -1282,7 +1285,7 @@ void drawHelpline(const struct bContext *C, TransInfo *t) case HLP_HARROW: UI_ThemeColor(TH_WIRE); - glTranslatef(t->mval[0], t->mval[1], 0); + glTranslatef(mval[0], mval[1], 0); glLineWidth(3.0); drawArrow(RIGHT, 5, 10, 5); @@ -1292,7 +1295,7 @@ void drawHelpline(const struct bContext *C, TransInfo *t) case HLP_VARROW: UI_ThemeColor(TH_WIRE); - glTranslatef(t->mval[0], t->mval[1], 0); + glTranslatef(mval[0], mval[1], 0); glLineWidth(3.0); glBegin(GL_LINES); @@ -1315,7 +1318,7 @@ void drawHelpline(const struct bContext *C, TransInfo *t) glVertex2fv(cent); glEnd(); - glTranslatef(cent[0], cent[1], 0); + glTranslatef(cent[0] - t->mval[0] + mval[0], cent[1] - t->mval[1] + mval[1], 0); setlinestyle(0); glLineWidth(3.0); @@ -1344,7 +1347,7 @@ void drawHelpline(const struct bContext *C, TransInfo *t) char col[3], col2[3]; UI_GetThemeColor3ubv(TH_GRID, col); - glTranslatef(t->mval[0], t->mval[1], 0); + glTranslatef(mval[0], mval[1], 0); glLineWidth(3.0); @@ -1379,9 +1382,9 @@ void drawTransformView(const struct bContext *C, struct ARegion *ar, void *arg) void drawTransformPixel(const struct bContext *C, struct ARegion *ar, void *arg) { - TransInfo *t = arg; - - drawHelpline(C, t); +// TransInfo *t = arg; +// +// drawHelpline(C, t->mval[0], t->mval[1], t); } void saveTransform(bContext *C, TransInfo *t, wmOperator *op) @@ -1505,12 +1508,13 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int initTransformOrientation(C, t); t->draw_handle_view = ED_region_draw_cb_activate(t->ar->type, drawTransformView, t, REGION_DRAW_POST_VIEW); - t->draw_handle_pixel = ED_region_draw_cb_activate(t->ar->type, drawTransformPixel, t, REGION_DRAW_POST_PIXEL); + //t->draw_handle_pixel = ED_region_draw_cb_activate(t->ar->type, drawTransformPixel, t, REGION_DRAW_POST_PIXEL); + t->draw_handle_cursor = WM_paint_cursor_activate(CTX_wm_manager(C), NULL, drawHelpline, t); } else if(t->spacetype == SPACE_IMAGE) { unit_m3(t->spacemtx); t->draw_handle_view = ED_region_draw_cb_activate(t->ar->type, drawTransformView, t, REGION_DRAW_POST_VIEW); - t->draw_handle_pixel = ED_region_draw_cb_activate(t->ar->type, drawTransformPixel, t, REGION_DRAW_POST_PIXEL); + //t->draw_handle_pixel = ED_region_draw_cb_activate(t->ar->type, drawTransformPixel, t, REGION_DRAW_POST_PIXEL); } else unit_m3(t->spacemtx); @@ -1518,7 +1522,7 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int createTransData(C, t); // make TransData structs from selection if (t->total == 0) { - postTrans(t); + postTrans(C, t); return 0; } @@ -1714,7 +1718,7 @@ int transformEnd(bContext *C, TransInfo *t) special_aftertrans_update(t); /* free data */ - postTrans(t); + postTrans(C, t); /* send events out for redraws */ viewRedrawPost(t); diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index d51cf9c864b..9f40b6f7288 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -321,6 +321,7 @@ typedef struct TransInfo { struct Object *obedit; void *draw_handle_view; void *draw_handle_pixel; + void *draw_handle_cursor; } TransInfo; @@ -633,7 +634,7 @@ void setCustomPoints(TransInfo *t, MouseInput *mi, short start[2], short end[2]) /*********************** Generics ********************************/ int initTransInfo(struct bContext *C, TransInfo *t, struct wmOperator *op, struct wmEvent *event); -void postTrans (TransInfo *t); +void postTrans (struct bContext *C, TransInfo *t); void resetTransRestrictions(TransInfo *t); void drawLine(TransInfo *t, float *center, float *dir, char axis, short options); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index c9b5b17091e..0340475a1d1 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -108,6 +108,7 @@ #include "RNA_access.h" #include "WM_types.h" +#include "WM_api.h" #include "UI_resources.h" @@ -1065,7 +1066,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) } /* Here I would suggest only TransInfo related issues, like free data & reset vars. Not redraws */ -void postTrans (TransInfo *t) +void postTrans (bContext *C, TransInfo *t) { TransData *td; @@ -1073,7 +1074,8 @@ void postTrans (TransInfo *t) ED_region_draw_cb_exit(t->ar->type, t->draw_handle_view); if (t->draw_handle_pixel) ED_region_draw_cb_exit(t->ar->type, t->draw_handle_pixel); - + if (t->draw_handle_cursor) + WM_paint_cursor_end(CTX_wm_manager(C), t->draw_handle_cursor); if (t->customFree) { /* Can take over freeing t->data and data2d etc... */ -- cgit v1.2.3 From fc69c54c4ce810e6236eaa45017130f27ba3f1e2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Dec 2009 18:17:39 +0000 Subject: Particles: bugfixes * Don't show Apply as Shape for particle modifiers. * Fix particles disappearing after exiting particle mode. * Fix free edit not redrawing the 3d view. * Fix use of uninitialized variable in layers template. --- source/blender/editors/interface/interface_templates.c | 12 ++++++------ source/blender/editors/physics/particle_edit.c | 1 + source/blender/editors/space_view3d/drawobject.c | 5 +++-- 3 files changed, 10 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index bb893294910..f59e10ede75 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -715,12 +715,12 @@ static uiLayout *draw_modifier(uiLayout *layout, Object *ob, ModifierData *md, i if(ELEM3(psys->part->ren_as, PART_DRAW_PATH, PART_DRAW_GR, PART_DRAW_OB) && psys->pathcache) uiItemO(row, "Convert", 0, "OBJECT_OT_modifier_convert"); } - else + else { uiItemEnumO(row, "Apply", 0, "OBJECT_OT_modifier_apply", "apply_as", MODIFIER_APPLY_DATA); - - if (modifier_sameTopology(md)) - uiItemEnumO(row, "Apply as Shape", 0, "OBJECT_OT_modifier_apply", "apply_as", MODIFIER_APPLY_SHAPE); - + + if (modifier_sameTopology(md)) + uiItemEnumO(row, "Apply as Shape", 0, "OBJECT_OT_modifier_apply", "apply_as", MODIFIER_APPLY_SHAPE); + } uiBlockClearButLock(block); uiBlockSetButLock(block, ob && ob->id.lib, ERROR_LIBDATA_MESSAGE); @@ -1951,7 +1951,7 @@ void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, char *propname, PointerRNA *used_ptr, char *used_propname, int active_layer) { uiLayout *uRow, *uCol; - PropertyRNA *prop, *used_prop; + PropertyRNA *prop, *used_prop= NULL; int groups, cols, layers; int group, col, layer, row; int cols_per_group = 5; diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index 349db7746a1..7c6b3a5ee26 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -4024,6 +4024,7 @@ static int clear_edited_exec(bContext *C, wmOperator *op) psys->flag &= ~PSYS_EDITED; psys_reset(psys, PSYS_RESET_DEPSGRAPH); + WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, ob); DAG_id_flush_update(&ob->id, OB_RECALC_DATA); } } diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 7bc86f6bae7..fa8eee630aa 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5920,8 +5920,9 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) for(psys=ob->particlesystem.first; psys; psys=psys->next) { /* run this so that possible child particles get cached */ - if(edit && edit->psys == psys) - draw_update_ptcache_edit(scene, ob, edit); + if(ob->mode & OB_MODE_PARTICLE_EDIT && ob==OBACT) + if(edit && edit->psys == psys) + draw_update_ptcache_edit(scene, ob, edit); draw_new_particle_system(scene, v3d, rv3d, base, psys, dt); } -- cgit v1.2.3 From 4ca2581b77112c488938f0a2dc226042e0390b71 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Dec 2009 19:11:37 +0000 Subject: Sculpt Branch: * Don't allow adding/removing multires levels in editmode. * Customdata code for swapping mdisps restored. * Fix inflate brush crashing with multires. * Smooth and layer brush don't work yet with multires, but at least avoids crashing now. * Fix threading issue with flatten brush. --- source/blender/blenkernel/intern/customdata.c | 23 ++++++++++--------- source/blender/blenlib/intern/pbvh.c | 16 +++++++------- source/blender/editors/sculpt_paint/sculpt.c | 32 +++++++++++++++++---------- 3 files changed, 40 insertions(+), 31 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 8f167310741..f9997708a50 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -440,29 +440,30 @@ static void mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, fl } #endif +static int mdisp_corners(MDisps *s) +{ + /* silly trick because we don't get it from callback */ + return (s->totdisp % (3*3) == 0)? 3: 4; +} + static void layerSwap_mdisps(void *data, int *ci) { - // XXX -#if 0 MDisps *s = data; float (*d)[3] = NULL; - int x, y, st; + int corners, cornersize, S; - if(!(ci[0] == 2 && ci[1] == 3 && ci[2] == 0 && ci[3] == 1)) return; + /* this function is untested .. */ + corners = mdisp_corners(s); + cornersize = s->totdisp/corners; d = MEM_callocN(sizeof(float) * 3 * s->totdisp, "mdisps swap"); - st = sqrt(s->totdisp); - for(y = 0; y < st; ++y) { - for(x = 0; x < st; ++x) { - copy_v3_v3(d[(st - y - 1) * st + (st - x - 1)], s->disps[y * st + x]); - } - } + for(S = 0; S < corners; S++) + memcpy(d + cornersize*S, s->disps + cornersize*ci[S], cornersize*3*sizeof(float)); if(s->disps) MEM_freeN(s->disps); s->disps = d; -#endif } static void layerInterp_mdisps(void **sources, float *weights, float *sub_weights, diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index 023db54eb1c..3aa0f43553f 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -1012,12 +1012,12 @@ void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, int *totvert, i void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *totvert) { if(bvh->grids) { - *totvert= node->totprim*bvh->gridsize*bvh->gridsize; - *uniquevert= *totvert; + if(totvert) *totvert= node->totprim*bvh->gridsize*bvh->gridsize; + if(uniquevert) *uniquevert= *totvert; } else { - *uniquevert= node->uniq_verts; - *totvert= node->uniq_verts + node->face_verts; + if(totvert) *totvert= node->uniq_verts + node->face_verts; + if(uniquevert) *uniquevert= node->uniq_verts; } } @@ -1030,10 +1030,10 @@ void BLI_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, int **grid_indices, int if(gridsize) *gridsize= bvh->gridsize; } else { - *grid_indices= NULL; - *totgrid= 0; - *maxgrid= 0; - *gridsize= 0; + if(grid_indices) *grid_indices= NULL; + if(totgrid) *totgrid= 0; + if(maxgrid) *maxgrid= 0; + if(gridsize) *gridsize= 0; } } diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index b39a2912c02..9a25cf21542 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -905,6 +905,10 @@ static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int float bstrength= ss->cache->bstrength; int iteration, n; + /* XXX not working for multires yet */ + if(!ss->fmap) + return; + for(iteration = 0; iteration < 2; ++iteration) { #pragma omp parallel for private(n) schedule(static) for(n=0; ncache->radius / 4; int n; + /* XXX not working yet for multires */ + if(!ss->mvert) + return; + if(ss->cache->flip) lim = -lim; @@ -1081,10 +1088,10 @@ static void do_inflate_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, in if(sculpt_brush_test(&test, vd.co)) { float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; float add[3]; + + if(vd.fno) copy_v3_v3(add, vd.fno); + else normal_short_to_float_v3(add, vd.no); - add[0]= vd.no[0]/32767.0f; - add[1]= vd.no[1]/32767.0f; - add[2]= vd.no[2]/32767.0f; mul_v3_fl(add, fade * ss->cache->radius); add[0]*= ss->cache->scale[0]; add[1]*= ss->cache->scale[1]; @@ -1116,16 +1123,17 @@ static void calc_flatten_center(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, for(n=0; ntree, nodes[n], vd, PBVH_ITER_UNIQUE) { if(sculpt_brush_test(&test, vd.co)) { - for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) { - if(test.dist > outer_dist[i]) { - copy_v3_v3(outer_co[i], vd.co); - outer_dist[i] = test.dist; + for(j = 0; j < FLATTEN_SAMPLE_SIZE; ++j) { + if(test.dist > outer_dist[j]) { + copy_v3_v3(outer_co[j], vd.co); + outer_dist[j] = test.dist; break; } } @@ -1424,9 +1432,9 @@ void sculpt_update_mesh_elements(bContext *C, int need_fmap) if((ss->multires = sculpt_multires_active(ob))) { ss->totvert = dm->getNumVerts(dm); ss->totface = dm->getNumFaces(dm); - ss->mvert = dm->getVertDataArray(dm, CD_MVERT); - ss->mface = dm->getFaceDataArray(dm, CD_MFACE); - ss->face_normals = dm->getFaceDataArray(dm, CD_NORMAL); + ss->mvert= NULL; + ss->mface= NULL; + ss->face_normals= NULL; } else { Mesh *me = get_mesh(ob); @@ -1439,7 +1447,7 @@ void sculpt_update_mesh_elements(bContext *C, int need_fmap) ss->ob = ob; ss->tree = dm->getPBVH(ob, dm); - ss->fmap = (need_fmap)? dm->getFaceMap(dm): NULL; + ss->fmap = (need_fmap && dm->getFaceMap)? dm->getFaceMap(dm): NULL; if((ob->shapeflag & OB_SHAPE_LOCK) && !sculpt_multires_active(ob)) { ss->kb= ob_get_keyblock(ob); -- cgit v1.2.3 From 987e9bc1724602fe6dab35662afa54df26d07cf4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 7 Dec 2009 19:49:14 +0000 Subject: missing null check from recent changes --- source/blender/blenkernel/intern/group.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c index 3ab02a576d0..f35a0a96bb4 100644 --- a/source/blender/blenkernel/intern/group.c +++ b/source/blender/blenkernel/intern/group.c @@ -217,8 +217,8 @@ static int rem_from_group_internal(Group *group, Object *ob) int rem_from_group(Group *group, Object *object, Scene *scene, Base *base) { if(rem_from_group_internal(group, object)) { - - if(find_group(object, NULL) == NULL) { + /* object can be NULL */ + if(object && find_group(object, NULL) == NULL) { if(scene && base==NULL) base= object_in_scene(object, scene); -- cgit v1.2.3 From a321e2b139289a5ea9f330125a70d4fa388fde62 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 7 Dec 2009 19:56:59 +0000 Subject: Sculpt Branch: Subdivision set with Ctrl+1-5 now works for multires as well. --- source/blender/editors/object/object_ops.c | 15 +++++---------- source/blender/editors/sculpt_paint/paint_ops.c | 4 ++++ 2 files changed, 9 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 49c947f52c8..13b1155d616 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -227,6 +227,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) { wmKeyMap *keymap; wmKeyMapItem *kmi; + int i; /* Objects, Regardless of Mode -------------------------------------------------- */ keymap= WM_keymap_find(keyconf, "Object Non-modal", 0, 0); @@ -314,16 +315,10 @@ void ED_keymap_object(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "GROUP_OT_objects_add_active", GKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove_active", GKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0); - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", ONEKEY, KM_PRESS, KM_CTRL, 0); - RNA_int_set(kmi->ptr, "level", 1); - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", TWOKEY, KM_PRESS, KM_CTRL, 0); - RNA_int_set(kmi->ptr, "level", 2); - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", THREEKEY, KM_PRESS, KM_CTRL, 0); - RNA_int_set(kmi->ptr, "level", 3); - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", FOURKEY, KM_PRESS, KM_CTRL, 0); - RNA_int_set(kmi->ptr, "level", 4); - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", FIVEKEY, KM_PRESS, KM_CTRL, 0); - RNA_int_set(kmi->ptr, "level", 5); + for(i=1; i<=5; i++) { + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0); + RNA_int_set(kmi->ptr, "level", i); + } /* Lattice -------------------------------------------------------------------- */ keymap= WM_keymap_find(keyconf, "Lattice", 0, 0); diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index 92812c2ab08..ae694ed863b 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -179,6 +179,7 @@ static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *path) void ED_keymap_paint(wmKeyConfig *keyconf) { wmKeyMap *keymap; + int i; /* Sculpt mode */ keymap= WM_keymap_find(keyconf, "Sculpt", 0, 0); @@ -193,6 +194,9 @@ void ED_keymap_paint(wmKeyConfig *keyconf) ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index"); + for(i=1; i<=5; i++) + RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i); + /* Vertex Paint mode */ keymap= WM_keymap_find(keyconf, "Vertex Paint", 0, 0); keymap->poll= vertex_paint_poll; -- cgit v1.2.3 From 47416c725c9790c17abddfbcd96c080e28e76abb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 7 Dec 2009 19:59:04 +0000 Subject: driver type 'Sum' --- source/blender/blenkernel/intern/fcurve.c | 14 +++++++++----- source/blender/makesdna/DNA_anim_types.h | 2 ++ source/blender/makesrna/intern/rna_fcurve.c | 1 + 3 files changed, 12 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 0623a5cbe5e..b3a6b773cf3 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -910,6 +910,7 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime) // TODO: the flags for individual targets need to be used too for more fine-grained support... switch (driver->type) { case DRIVER_TYPE_AVERAGE: /* average values of driver targets */ + case DRIVER_TYPE_SUM: /* sum values of driver targets */ { /* check how many targets there are first (i.e. just one?) */ if (driver->targets.first == driver->targets.last) { @@ -921,19 +922,22 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime) /* more than one target, so average the values of the targets */ int tot = 0; float value = 0.0f; - + /* loop through targets, adding (hopefully we don't get any overflow!) */ for (dtar= driver->targets.first; dtar; dtar=dtar->next) { - value += driver_get_target_value(driver, dtar); + value += driver_get_target_value(driver, dtar); tot++; } - + /* return the average of these */ - return (value / (float)tot); + if(driver->type == DRIVER_TYPE_AVERAGE) + return (value / (float)tot); + else + return value; + } } break; - case DRIVER_TYPE_PYTHON: /* expression */ { #ifndef DISABLE_PYTHON diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index c6330861fd2..09f77d98f4b 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -309,6 +309,8 @@ typedef enum eDriver_Types { DRIVER_TYPE_PYTHON, /* rotational difference (must use rotation channels only) */ DRIVER_TYPE_ROTDIFF, + /* sum of all values */ + DRIVER_TYPE_SUM, } eDriver_Types; /* driver flags */ diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index fbf4a8b41c5..bf8b74d08ee 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -789,6 +789,7 @@ static void rna_def_channeldriver(BlenderRNA *brna) static EnumPropertyItem prop_type_items[] = { {DRIVER_TYPE_AVERAGE, "AVERAGE", 0, "Averaged Value", ""}, + {DRIVER_TYPE_SUM, "SUM", 0, "Sum Values", ""}, {DRIVER_TYPE_PYTHON, "SCRIPTED", 0, "Scripted Expression", ""}, {DRIVER_TYPE_ROTDIFF, "ROTDIFF", 0, "Rotational Difference", ""}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From 21f41e1bce458efe5863bc19d174453f3ea2a492 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 7 Dec 2009 20:03:49 +0000 Subject: Text and Console operators don't need to register themselves. (this cleans the reports quite a bit) --- source/blender/editors/space_console/console_ops.c | 30 ----------- source/blender/editors/space_text/text_ops.c | 60 ---------------------- 2 files changed, 90 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index a2e11dc6bd5..89c058ad7f3 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -369,9 +369,6 @@ void CONSOLE_OT_move(wmOperatorType *ot) ot->exec= move_exec; ot->poll= console_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_enum(ot->srna, "type", move_type_items, LINE_BEGIN, "Type", "Where to move cursor to."); } @@ -415,9 +412,6 @@ void CONSOLE_OT_insert(wmOperatorType *ot) ot->invoke= insert_invoke; ot->poll= console_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position."); } @@ -482,9 +476,6 @@ void CONSOLE_OT_delete(wmOperatorType *ot) ot->exec= delete_exec; ot->poll= console_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_enum(ot->srna, "type", delete_type_items, DEL_NEXT_CHAR, "Type", "Which part of the text to delete."); } @@ -525,9 +516,6 @@ void CONSOLE_OT_clear(wmOperatorType *ot) /* api callbacks */ ot->exec= clear_exec; ot->poll= console_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; /* properties */ RNA_def_boolean(ot->srna, "scrollback", 1, "Scrollback", "Clear the scrollback history"); @@ -587,9 +575,6 @@ void CONSOLE_OT_history_cycle(wmOperatorType *ot) /* api callbacks */ ot->exec= history_cycle_exec; ot->poll= console_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; /* properties */ RNA_def_boolean(ot->srna, "reverse", 0, "Reverse", "reverse cycle history"); @@ -635,9 +620,6 @@ void CONSOLE_OT_history_append(wmOperatorType *ot) /* api callbacks */ ot->exec= history_append_exec; ot->poll= console_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; /* properties */ RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position."); @@ -683,9 +665,6 @@ void CONSOLE_OT_scrollback_append(wmOperatorType *ot) /* api callbacks */ ot->exec= scrollback_append_exec; ot->poll= console_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; /* properties */ RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position."); @@ -727,9 +706,6 @@ void CONSOLE_OT_copy(wmOperatorType *ot) ot->poll= console_edit_poll; ot->exec= copy_exec; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ } @@ -762,9 +738,6 @@ void CONSOLE_OT_paste(wmOperatorType *ot) ot->poll= console_edit_poll; ot->exec= paste_exec; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ } @@ -795,9 +768,6 @@ void CONSOLE_OT_zoom(wmOperatorType *ot) /* api callbacks */ ot->exec= zoom_exec; ot->poll= console_poll; - - /* flags */ - /* ot->flag= OPTYPE_REGISTER; */ /* super annoying */ /* properties */ RNA_def_int(ot->srna, "delta", 0, 0, INT_MAX, "Delta", "Scale the view font.", 0, 1000); diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c index 16a7f97afd6..1a23b9ecc42 100644 --- a/source/blender/editors/space_text/text_ops.c +++ b/source/blender/editors/space_text/text_ops.c @@ -735,9 +735,6 @@ void TEXT_OT_paste(wmOperatorType *ot) ot->exec= paste_exec; ot->poll= text_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_boolean(ot->srna, "selection", 0, "Selection", "Paste text selected elsewhere rather than copied, X11 only."); } @@ -806,9 +803,6 @@ void TEXT_OT_cut(wmOperatorType *ot) /* api callbacks */ ot->exec= cut_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* indent operator *********************/ @@ -842,9 +836,6 @@ void TEXT_OT_indent(wmOperatorType *ot) /* api callbacks */ ot->exec= indent_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* unindent operator *********************/ @@ -878,9 +869,6 @@ void TEXT_OT_unindent(wmOperatorType *ot) /* api callbacks */ ot->exec= unindent_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* line break operator *********************/ @@ -919,9 +907,6 @@ void TEXT_OT_line_break(wmOperatorType *ot) /* api callbacks */ ot->exec= line_break_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* comment operator *********************/ @@ -952,9 +937,6 @@ void TEXT_OT_comment(wmOperatorType *ot) /* api callbacks */ ot->exec= comment_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* uncomment operator *********************/ @@ -986,9 +968,6 @@ void TEXT_OT_uncomment(wmOperatorType *ot) /* api callbacks */ ot->exec= uncomment_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* convert whitespace operator *********************/ @@ -1129,9 +1108,6 @@ void TEXT_OT_convert_whitespace(wmOperatorType *ot) ot->exec= convert_whitespace_exec; ot->poll= text_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_enum(ot->srna, "type", whitespace_type_items, TO_SPACES, "type", "Type of whitespace to convert to."); } @@ -1159,9 +1135,6 @@ void TEXT_OT_select_all(wmOperatorType *ot) /* api callbacks */ ot->exec= select_all_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* select line operator *********************/ @@ -1187,9 +1160,6 @@ void TEXT_OT_select_line(wmOperatorType *ot) /* api clinebacks */ ot->exec= select_line_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* previous marker operator *********************/ @@ -1225,9 +1195,6 @@ void TEXT_OT_previous_marker(wmOperatorType *ot) /* api callbacks */ ot->exec= previous_marker_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* next marker operator *********************/ @@ -1263,9 +1230,6 @@ void TEXT_OT_next_marker(wmOperatorType *ot) /* api callbacks */ ot->exec= next_marker_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* clear all markers operator *********************/ @@ -1291,9 +1255,6 @@ void TEXT_OT_markers_clear(wmOperatorType *ot) /* api callbacks */ ot->exec= clear_all_markers_exec; ot->poll= text_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /************************ move operator ************************/ @@ -1576,9 +1537,6 @@ void TEXT_OT_move(wmOperatorType *ot) ot->exec= move_exec; ot->poll= text_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_enum(ot->srna, "type", move_type_items, LINE_BEGIN, "Type", "Where to move cursor to."); } @@ -1603,9 +1561,6 @@ void TEXT_OT_move_select(wmOperatorType *ot) ot->exec= move_select_exec; ot->poll= text_space_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_enum(ot->srna, "type", move_type_items, LINE_BEGIN, "Type", "Where to move cursor to, to make a selection."); } @@ -1640,9 +1595,6 @@ void TEXT_OT_jump(wmOperatorType *ot) ot->exec= jump_exec; ot->poll= text_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_int(ot->srna, "line", 1, 1, INT_MAX, "Line", "Line number to jump to.", 1, 10000); } @@ -1693,9 +1645,6 @@ void TEXT_OT_delete(wmOperatorType *ot) ot->exec= delete_exec; ot->poll= text_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_enum(ot->srna, "type", delete_type_items, DEL_NEXT_CHAR, "Type", "Which part of the text to delete."); } @@ -1721,9 +1670,6 @@ void TEXT_OT_overwrite_toggle(wmOperatorType *ot) /* api callbacks */ ot->exec= toggle_overwrite_exec; ot->poll= text_space_edit_poll; - - /* flags */ - ot->flag= OPTYPE_REGISTER; } /******************* scroll operator **********************/ @@ -2208,9 +2154,6 @@ void TEXT_OT_cursor_set(wmOperatorType *ot) ot->cancel= set_cursor_cancel; ot->poll= text_region_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_BLOCKING; - /* properties */ RNA_def_boolean(ot->srna, "select", 0, "Select", "Set selection end rather than cursor."); } @@ -2332,9 +2275,6 @@ void TEXT_OT_insert(wmOperatorType *ot) ot->invoke= insert_invoke; ot->poll= text_edit_poll; - /* flags */ - ot->flag= OPTYPE_REGISTER; - /* properties */ RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position."); } -- cgit v1.2.3 From 16ec4cc18606f21e6215a5ddcd0223e38340ff62 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 7 Dec 2009 20:38:09 +0000 Subject: Sound system should only default to OpenAL if it is built (SDL if built otherwise). --- source/blender/editors/interface/resources.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 26a50cc3c24..1df76f312b3 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1252,8 +1252,14 @@ void init_userdef_do_versions(void) /* new audio system */ if(U.audiochannels == 0) U.audiochannels = 2; - if(U.audiodevice == 0) + if(U.audiodevice == 0) { +#ifdef WITH_OPENAL U.audiodevice = 2; +#endif +#ifdef WITH_SDL + U.audiodevice = 1; +#endif + } if(U.audioformat == 0) U.audioformat = 0x24; if(U.audiorate == 0) -- cgit v1.2.3 From f350cde18c2103d6a78e4d5d14f9b57cbaab1a1e Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 7 Dec 2009 20:39:57 +0000 Subject: -noaudio option to force the sound system to None. Useful when openAL is not setup properly (*cough* pulseaudio *cough) and prevents startup. This doesn't actually affect the userpref option, so you can set it to whatever you want, save userprefs and restart. --- source/blender/blenkernel/BKE_sound.h | 2 ++ source/blender/blenkernel/intern/sound.c | 10 ++++++++++ 2 files changed, 12 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index cbce4663d6f..64ce1983e7d 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -41,6 +41,8 @@ void sound_init(); void sound_exit(); +void sound_disable(); + struct bSound* sound_new_file(struct Main *main, char* filename); // XXX unused currently diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index d8950c7dace..74c6afdc018 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -31,6 +31,13 @@ #include #endif +static int sound_disabled = 0; + +void sound_disable() +{ + sound_disabled = 1; +} + void sound_init() { AUD_Specs specs; @@ -42,6 +49,9 @@ void sound_init() specs.format = U.audioformat; specs.rate = U.audiorate; + if (sound_disabled) + device = 0; + if(buffersize < 128) buffersize = AUD_DEFAULT_BUFFER_SIZE; -- cgit v1.2.3 From b71749305a3b6db54f6676e87803703aa7acdebb Mon Sep 17 00:00:00 2001 From: Elia Sarti Date: Mon, 7 Dec 2009 21:51:44 +0000 Subject: Pythonazed DopeSheet and NLA editors headers UI. --- source/blender/editors/space_action/space_action.c | 21 +--------- source/blender/editors/space_nla/space_nla.c | 21 +--------- source/blender/makesrna/intern/rna_space.c | 45 ++++++++++++++++------ 3 files changed, 37 insertions(+), 50 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index d4f8fcfb449..0bf3e3f70cb 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -259,29 +259,12 @@ static void action_channel_area_draw(const bContext *C, ARegion *ar) /* add handlers, stuff you only do once or on area/region changes */ static void action_header_area_init(wmWindowManager *wm, ARegion *ar) { - UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy); + ED_region_header_init(ar); } static void action_header_area_draw(const bContext *C, ARegion *ar) { - float col[3]; - - /* clear */ - if(ED_screen_area_active(C)) - UI_GetThemeColor3fv(TH_HEADER, col); - else - UI_GetThemeColor3fv(TH_HEADERDESEL, col); - - glClearColor(col[0], col[1], col[2], 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - /* set view2d view matrix for scrolling (without scrollers) */ - UI_view2d_view_ortho(C, &ar->v2d); - - action_header_buttons(C, ar); - - /* restore view matrix? */ - UI_view2d_view_restore(C); + ED_region_header(C, ar); } static void action_channel_area_listener(ARegion *ar, wmNotifier *wmn) diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c index a019e684239..572ad44f680 100644 --- a/source/blender/editors/space_nla/space_nla.c +++ b/source/blender/editors/space_nla/space_nla.c @@ -331,29 +331,12 @@ static void nla_main_area_draw(const bContext *C, ARegion *ar) /* add handlers, stuff you only do once or on area/region changes */ static void nla_header_area_init(wmWindowManager *wm, ARegion *ar) { - UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy); + ED_region_header_init(ar); } static void nla_header_area_draw(const bContext *C, ARegion *ar) { - float col[3]; - - /* clear */ - if(ED_screen_area_active(C)) - UI_GetThemeColor3fv(TH_HEADER, col); - else - UI_GetThemeColor3fv(TH_HEADERDESEL, col); - - glClearColor(col[0], col[1], col[2], 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - /* set view2d view matrix for scrolling (without scrollers) */ - UI_view2d_view_ortho(C, &ar->v2d); - - nla_header_buttons(C, ar); - - /* restore view matrix? */ - UI_view2d_view_restore(C); + ED_region_header(C, ar); } /* add handlers, stuff you only do once or on area/region changes */ diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index ef5f8ccb87b..4a55d259be9 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -83,6 +83,13 @@ static EnumPropertyItem transform_orientation_items[] = { {V3D_MANIP_CUSTOM, "CUSTOM", 0, "Custom", "Use a custom transform orientation"}, {0, NULL, 0, NULL, NULL}}; +static EnumPropertyItem autosnap_items[] = { + {SACTSNAP_OFF, "NONE", 0, "None", ""}, + {SACTSNAP_STEP, "STEP", 0, "Step", "Snap to 1.0 frame/second intervals."}, + {SACTSNAP_FRAME, "FRAME", 0, "Frame", "Snap to actual frames/seconds (nla-action time)."}, + {SACTSNAP_MARKER, "MARKER", 0, "Marker", "Snap to nearest marker."}, + {0, NULL, 0, NULL, NULL}}; + #ifdef RNA_RUNTIME #include "DNA_anim_types.h" @@ -1262,8 +1269,19 @@ static void rna_def_space_dopesheet(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SACTION_NOTRANSKEYCULL); RNA_def_property_ui_text(prop, "AutoMerge Keyframes", "Show handles of Bezier control points."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL); - - // TODO... autosnap, dopesheet? + + /* dopesheet */ + prop= RNA_def_property(srna, "dopesheet", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "DopeSheet"); + RNA_def_property_pointer_sdna(prop, NULL, "ads"); + RNA_def_property_ui_text(prop, "DopeSheet", "Settings for filtering animation data."); + + /* autosnap */ + prop= RNA_def_property(srna, "autosnap", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "autosnap"); + RNA_def_property_enum_items(prop, autosnap_items); + RNA_def_property_ui_text(prop, "Auto Snap", "Automatic time snapping settings for transformations."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL); } static void rna_def_space_graph(BlenderRNA *brna) @@ -1285,13 +1303,6 @@ static void rna_def_space_graph(BlenderRNA *brna) //{V3D_ACTIVE, "ACTIVE_ELEMENT", 0, "Active Element", ""}, {0, NULL, 0, NULL, NULL}}; - static EnumPropertyItem autosnap_items[] = { - {SACTSNAP_OFF, "NONE", 0, "None", ""}, - {SACTSNAP_STEP, "STEP", 0, "Step", "Snap to 1.0 frame/second intervals."}, - {SACTSNAP_FRAME, "FRAME", 0, "Frame", "Snap to actual frames/seconds (nla-action time)."}, - {SACTSNAP_MARKER, "MARKER", 0, "Marker", "Snap to nearest marker."}, - {0, NULL, 0, NULL, NULL}}; - srna= RNA_def_struct(brna, "SpaceGraphEditor", "Space"); RNA_def_struct_sdna(srna, "SpaceIpo"); @@ -1398,9 +1409,19 @@ static void rna_def_space_nla(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SNLA_NOSTRIPCURVES); RNA_def_property_ui_text(prop, "Show Control Curves", "Show influence curves on strips."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NLA, NULL); - - /* editing */ - // TODO... autosnap, dopesheet? + + /* dopesheet */ + prop= RNA_def_property(srna, "dopesheet", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "DopeSheet"); + RNA_def_property_pointer_sdna(prop, NULL, "ads"); + RNA_def_property_ui_text(prop, "DopeSheet", "Settings for filtering animation data."); + + /* autosnap */ + prop= RNA_def_property(srna, "autosnap", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "autosnap"); + RNA_def_property_enum_items(prop, autosnap_items); + RNA_def_property_ui_text(prop, "Auto Snap", "Automatic time snapping settings for transformations."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NLA, NULL); } static void rna_def_space_time(BlenderRNA *brna) -- cgit v1.2.3 From 495cbc1a6f3b42f07d284bb81460fafa22ce38d3 Mon Sep 17 00:00:00 2001 From: Elia Sarti Date: Mon, 7 Dec 2009 21:56:25 +0000 Subject: Forgot to remove these. --- .../blender/editors/space_action/action_header.c | 348 --------------------- source/blender/editors/space_graph/graph_header.c | 73 ----- source/blender/editors/space_nla/nla_header.c | 262 ---------------- 3 files changed, 683 deletions(-) delete mode 100644 source/blender/editors/space_action/action_header.c delete mode 100644 source/blender/editors/space_graph/graph_header.c delete mode 100644 source/blender/editors/space_nla/nla_header.c (limited to 'source/blender') diff --git a/source/blender/editors/space_action/action_header.c b/source/blender/editors/space_action/action_header.c deleted file mode 100644 index d2dbb5fe3b0..00000000000 --- a/source/blender/editors/space_action/action_header.c +++ /dev/null @@ -1,348 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2008 Blender Foundation. - * All rights reserved. - * - * - * Contributor(s): Blender Foundation - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include -#include - -#include "DNA_anim_types.h" -#include "DNA_action_types.h" -#include "DNA_key_types.h" -#include "DNA_object_types.h" -#include "DNA_space_types.h" -#include "DNA_scene_types.h" -#include "DNA_screen_types.h" -#include "DNA_windowmanager_types.h" - -#include "MEM_guardedalloc.h" - -#include "BLI_blenlib.h" - -#include "BKE_animsys.h" -#include "BKE_action.h" -#include "BKE_context.h" -#include "BKE_screen.h" - -#include "ED_anim_api.h" -#include "ED_screen.h" -#include "ED_transform.h" -#include "ED_types.h" -#include "ED_util.h" - -#include "RNA_access.h" - -#include "WM_api.h" -#include "WM_types.h" - -#include "BIF_gl.h" -#include "BIF_glutil.h" - -#include "UI_interface.h" -#include "UI_resources.h" -#include "UI_view2d.h" - -#include "action_intern.h" - -enum { - B_REDR= 1, - B_MODECHANGE, -} eActHeader_Events; - -/* ********************************************************* */ -/* Menu Defines... */ - -static void act_viewmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - bScreen *sc= CTX_wm_screen(C); - ScrArea *sa= CTX_wm_area(C); - SpaceAction *sact= CTX_wm_space_action(C); - PointerRNA spaceptr; - - /* retrieve state */ - RNA_pointer_create(&sc->id, &RNA_SpaceDopeSheetEditor, sact, &spaceptr); - - /* create menu */ - //uiItemO(layout, NULL, ICON_MENU_PANEL, "ACTION_OT_properties"); - - //uiItemS(layout); - - uiItemR(layout, NULL, 0, &spaceptr, "show_cframe_indicator", 0); - uiItemR(layout, NULL, 0, &spaceptr, "show_sliders", 0); - uiItemR(layout, NULL, 0, &spaceptr, "automerge_keyframes", 0); - - if (sact->flag & SACTION_DRAWTIME) - uiItemO(layout, "Show Frames", 0, "ANIM_OT_time_toggle"); - else - uiItemO(layout, "Show Seconds", 0, "ANIM_OT_time_toggle"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ANIM_OT_previewrange_set"); - uiItemO(layout, NULL, 0, "ANIM_OT_previewrange_clear"); - - uiItemO(layout, NULL, 0, "ACTION_OT_previewrange_set"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ACTION_OT_frame_jump"); - - uiItemO(layout, NULL, 0, "ACTION_OT_view_all"); - - if (sa->full) - uiItemO(layout, NULL, 0, "SCREEN_OT_screen_full_area"); // "Tile Window", Ctrl UpArrow - else - uiItemO(layout, NULL, 0, "SCREEN_OT_screen_full_area"); // "Maximize Window", Ctrl DownArrow -} - -static void act_selectmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemO(layout, NULL, 0, "ACTION_OT_select_all_toggle"); - uiItemBooleanO(layout, "Invert All", 0, "ACTION_OT_select_all_toggle", "invert", 1); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ACTION_OT_select_border"); - uiItemBooleanO(layout, "Border Axis Range", 0, "ACTION_OT_select_border", "axis_range", 1); - - uiItemS(layout); - - uiItemEnumO(layout, "Columns on Selected Keys", 0, "ACTION_OT_select_column", "mode", ACTKEYS_COLUMNSEL_KEYS); - uiItemEnumO(layout, "Column on Current Frame", 0, "ACTION_OT_select_column", "mode", ACTKEYS_COLUMNSEL_CFRA); - - uiItemEnumO(layout, "Columns on Selected Markers", 0, "ACTION_OT_select_column", "mode", ACTKEYS_COLUMNSEL_MARKERS_COLUMN); - uiItemEnumO(layout, "Between Selected Markers", 0, "ACTION_OT_select_column", "mode", ACTKEYS_COLUMNSEL_MARKERS_BETWEEN); -} - -static void act_channelmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemO(layout, NULL, 0, "ANIM_OT_channels_setting_toggle"); - uiItemO(layout, NULL, 0, "ANIM_OT_channels_setting_enable"); - uiItemO(layout, NULL, 0, "ANIM_OT_channels_setting_disable"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ANIM_OT_channels_editable_toggle"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ANIM_OT_channels_expand"); - uiItemO(layout, NULL, 0, "ANIM_OT_channels_collapse"); -} - -static void act_gplayermenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - //uiItemMenuF(layout, "Transform", 0, nla_edit_transformmenu, NULL, NULL); - //uiItemS(layout); - //uiItemO(layout, NULL, 0, "NLAEDIT_OT_duplicate"); -} - -static void act_edit_transformmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemEnumO(layout, "Grab/Move", 0, "TFM_OT_transform", "mode", TFM_TIME_TRANSLATE); - uiItemEnumO(layout, "Extend", 0, "TFM_OT_transform", "mode", TFM_TIME_EXTEND); - uiItemEnumO(layout, "Scale", 0, "TFM_OT_transform", "mode", TFM_TIME_SCALE); -} - -static void act_editmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemMenuF(layout, "Transform", 0, act_edit_transformmenu, NULL); - uiItemMenuEnumO(layout, "Snap", 0, "ACTION_OT_snap", "type"); - uiItemMenuEnumO(layout, "Mirror", 0, "ACTION_OT_mirror", "type"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ACT_OT_keyframe_insert"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ACTION_OT_duplicate"); - uiItemO(layout, NULL, 0, "ACTION_OT_delete"); - - uiItemS(layout); - - uiItemMenuEnumO(layout, "Keyframe Type", 0, "ACTION_OT_keyframe_type", "type"); - uiItemMenuEnumO(layout, "Handle Type", 0, "ACTION_OT_handle_type", "type"); - uiItemMenuEnumO(layout, "Interpolation Type", 0, "ACTION_OT_interpolation_type", "type"); - uiItemMenuEnumO(layout, "Extrapolation Type", 0, "ACTION_OT_extrapolation_type", "type"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ACTION_OT_clean"); - uiItemO(layout, NULL, 0, "ACTION_OT_sample"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ACTION_OT_copy"); - uiItemO(layout, NULL, 0, "ACTION_OT_paste"); -} - -/* ************************ header area region *********************** */ - -static void do_action_buttons(bContext *C, void *arg, int event) -{ - /* special exception for mode changing - enable custom settings? */ - if (event == B_MODECHANGE) { - SpaceAction *saction= CTX_wm_space_action(C); - - /* if the new mode is ShapeKeys editor, enable sliders */ - if (saction->mode == SACTCONT_SHAPEKEY) - saction->flag |= SACTION_SLIDERS; - } - - ED_area_tag_refresh(CTX_wm_area(C)); - ED_area_tag_redraw(CTX_wm_area(C)); -} - -void action_header_buttons(const bContext *C, ARegion *ar) -{ - ScrArea *sa= CTX_wm_area(C); - SpaceAction *saction= CTX_wm_space_action(C); - bAnimContext ac; - uiBlock *block; - int xco, yco= 3, xmax; - - block= uiBeginBlock(C, ar, "header buttons", UI_EMBOSS); - uiBlockSetHandleFunc(block, do_action_buttons, NULL); - - xco= ED_area_header_standardbuttons(C, block, yco); - - uiBlockSetEmboss(block, UI_EMBOSS); - - /* get context... (also syncs data) */ - ANIM_animdata_get_context(C, &ac); - - if ((sa->flag & HEADER_NO_PULLDOWN)==0) { - - xmax= GetButStringLength("View"); - uiDefMenuBut(block, act_viewmenu, NULL, "View", xco, yco, xmax-3, 20, ""); - xco+= xmax; - - xmax= GetButStringLength("Select"); - uiDefMenuBut(block, act_selectmenu, NULL, "Select", xco, yco, xmax-3, 20, ""); - xco+= xmax; - - if ( (saction->mode == SACTCONT_DOPESHEET) || - ((saction->action) && (saction->mode==SACTCONT_ACTION)) ) - { - xmax= GetButStringLength("Channel"); - uiDefMenuBut(block, act_channelmenu, NULL, "Channel", xco, yco, xmax-3, 20, ""); - xco+= xmax; - } - else if (saction->mode==SACTCONT_GPENCIL) { - xmax= GetButStringLength("Channel"); - uiDefMenuBut(block, act_gplayermenu, NULL, "Channel", xco, yco, xmax-3, 20, ""); - xco+= xmax; - } - - //xmax= GetButStringLength("Marker"); - //uiDefMenuBut(block, act_markermenu, NULL, "Marker", xco, yco, xmax-3, 20, ""); - //xco+= xmax; - - if (saction->mode == SACTCONT_GPENCIL) { - //xmax= GetButStringLength("Frame"); - //uiDefMenuBut(block, act_selectmenu, NULL, "Frame", xco, yco, xmax-3, 20, ""); - //xco+= xmax; - } - else { - xmax= GetButStringLength("Key"); - uiDefMenuBut(block, act_editmenu, NULL, "Key", xco, yco, xmax-3, 20, ""); - xco+= xmax; - } - } - - uiBlockSetEmboss(block, UI_EMBOSS); - - /* MODE SELECTOR */ - uiDefButC(block, MENU, B_MODECHANGE, - "Editor Mode %t|DopeSheet %x3|Action Editor %x0|ShapeKey Editor %x1|Grease Pencil %x2", - xco,yco,90,YIC, &saction->mode, 0, 1, 0, 0, - "Editing modes for this editor"); - - - xco += (90 + 8); - - /* SUMMARY CHANNEL */ - uiDefIconTextButBitI(block, TOG, ADS_FILTER_SUMMARY, B_REDR, ICON_BORDERMOVE, "Summary", xco,yco,XIC*4,YIC, &(saction->ads.filterflag), 0, 0, 0, 0, "Include DopeSheet summary row"); // TODO: needs a better icon - xco += (XIC*4.5); - - /*if (ac.data)*/ - { - /* MODE-DEPENDENT DRAWING */ - if (saction->mode == SACTCONT_DOPESHEET) { - /* FILTERING OPTIONS */ - xco -= XIC; // XXX first button incurs this offset... - xco= ANIM_headerUI_standard_buttons(C, &saction->ads, block, xco, yco); - } - else if (saction->mode == SACTCONT_ACTION) { - uiLayout *layout; - bScreen *sc= CTX_wm_screen(C); - PointerRNA ptr; - - RNA_pointer_create(&sc->id, &RNA_SpaceDopeSheetEditor, saction, &ptr); - - layout= uiBlockLayout(block, UI_LAYOUT_HORIZONTAL, UI_LAYOUT_HEADER, xco, 20+3, 20, 1, U.uistyles.first); - uiTemplateID(layout, (bContext*)C, &ptr, "action", "ACTION_OT_new", NULL, NULL); - uiBlockLayoutResolve(block, &xco, NULL); - - xco += 8; - } - - /* draw AUTOSNAP */ - if (saction->mode != SACTCONT_GPENCIL) { - if (saction->flag & SACTION_DRAWTIME) { - uiDefButC(block, MENU, B_REDR, - "Auto-Snap Keyframes %t|No Snap %x0|Second Step %x1|Nearest Second %x2|Nearest Marker %x3", - xco,yco,90,YIC, &(saction->autosnap), 0, 1, 0, 0, - "Auto-snapping mode for keyframes when transforming"); - } - else { - uiDefButC(block, MENU, B_REDR, - "Auto-Snap Keyframes %t|No Snap %x0|Frame Step %x1|Nearest Frame %x2|Nearest Marker %x3", - xco,yco,90,YIC, &(saction->autosnap), 0, 1, 0, 0, - "Auto-snapping mode for keyframes when transforming"); - } - - xco += (90 + 8); - } - - /* COPY PASTE */ - uiBlockBeginAlign(block); - uiDefIconButO(block, BUT, "ACTION_OT_copy", WM_OP_INVOKE_REGION_WIN, ICON_COPYDOWN, xco,yco,XIC,YIC, "Copies the selected keyframes to the buffer."); - xco += XIC; - uiDefIconButO(block, BUT, "ACTION_OT_paste", WM_OP_INVOKE_REGION_WIN, ICON_PASTEDOWN, xco,yco,XIC,YIC, "Pastes the keyframes from the buffer into the selected channels."); - uiBlockEndAlign(block); - xco += (XIC + 8); - } - - /* always as last */ - UI_view2d_totRect_set(&ar->v2d, xco+XIC+80, (int)(ar->v2d.tot.ymax-ar->v2d.tot.ymin)); - - uiEndBlock(C, block); - uiDrawBlock(C, block); -} - - diff --git a/source/blender/editors/space_graph/graph_header.c b/source/blender/editors/space_graph/graph_header.c deleted file mode 100644 index 8aeb76cae0f..00000000000 --- a/source/blender/editors/space_graph/graph_header.c +++ /dev/null @@ -1,73 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2008 Blender Foundation. - * All rights reserved. - * - * - * Contributor(s): Blender Foundation - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include -#include - -#include "DNA_anim_types.h" -#include "DNA_space_types.h" -#include "DNA_scene_types.h" -#include "DNA_screen_types.h" -#include "DNA_windowmanager_types.h" - -#include "MEM_guardedalloc.h" - -#include "BLI_blenlib.h" - -#include "BKE_context.h" -#include "BKE_screen.h" - -#include "ED_anim_api.h" -#include "ED_transform.h" -#include "ED_screen.h" -#include "ED_types.h" -#include "ED_util.h" - -#include "RNA_access.h" - -#include "WM_api.h" -#include "WM_types.h" - -#include "BIF_gl.h" -#include "BIF_glutil.h" - -#include "UI_interface.h" -#include "UI_resources.h" -#include "UI_view2d.h" - -#include "graph_intern.h" - -/* ********************************************************* */ - -static void do_graph_buttons(bContext *C, void *arg, int event) -{ - ED_area_tag_refresh(CTX_wm_area(C)); - ED_area_tag_redraw(CTX_wm_area(C)); -} - - diff --git a/source/blender/editors/space_nla/nla_header.c b/source/blender/editors/space_nla/nla_header.c deleted file mode 100644 index 2624e7a9255..00000000000 --- a/source/blender/editors/space_nla/nla_header.c +++ /dev/null @@ -1,262 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2008 Blender Foundation. - * All rights reserved. - * - * - * Contributor(s): Blender Foundation, Joshua Leung - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include -#include - -#include "DNA_anim_types.h" -#include "DNA_action_types.h" -#include "DNA_nla_types.h" -#include "DNA_object_types.h" -#include "DNA_space_types.h" -#include "DNA_scene_types.h" -#include "DNA_screen_types.h" -#include "DNA_windowmanager_types.h" - -#include "MEM_guardedalloc.h" - -#include "BLI_blenlib.h" -#include "BLI_math.h" -#include "BLI_rand.h" - -#include "BKE_animsys.h" -#include "BKE_nla.h" -#include "BKE_context.h" -#include "BKE_report.h" -#include "BKE_screen.h" -#include "ED_types.h" -#include "ED_util.h" - -#include "ED_anim_api.h" -#include "ED_markers.h" -#include "ED_space_api.h" -#include "ED_screen.h" -#include "ED_transform.h" - -#include "BIF_gl.h" - -#include "RNA_access.h" - -#include "WM_api.h" -#include "WM_types.h" - -#include "UI_interface.h" -#include "UI_resources.h" -#include "UI_view2d.h" - -#include "nla_intern.h" - -/* button events */ -enum { - B_REDR = 1, -} eNLAHeader_ButEvents; - -/* ************************ header area region *********************** */ - - -static void nla_viewmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - bScreen *sc= CTX_wm_screen(C); - ScrArea *sa= CTX_wm_area(C); - SpaceNla *snla= CTX_wm_space_nla(C); - PointerRNA spaceptr; - - /* retrieve state */ - RNA_pointer_create(&sc->id, &RNA_SpaceNLA, snla, &spaceptr); - - /* create menu */ - uiItemO(layout, NULL, ICON_MENU_PANEL, "NLA_OT_properties"); - - uiItemS(layout); - - uiItemR(layout, NULL, 0, &spaceptr, "show_cframe_indicator", 0); - - if (snla->flag & SNLA_DRAWTIME) - uiItemO(layout, "Show Frames", 0, "ANIM_OT_time_toggle"); - else - uiItemO(layout, "Show Seconds", 0, "ANIM_OT_time_toggle"); - - uiItemR(layout, NULL, 0, &spaceptr, "show_strip_curves", 0); - - uiItemS(layout); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "ANIM_OT_previewrange_set"); - uiItemO(layout, NULL, 0, "ANIM_OT_previewrange_clear"); - - uiItemS(layout); - - //uiItemO(layout, NULL, 0, "NLA_OT_view_all"); - - if (sa->full) - uiItemO(layout, NULL, 0, "SCREEN_OT_screen_full_area"); // "Tile Window", Ctrl UpArrow - else - uiItemO(layout, NULL, 0, "SCREEN_OT_screen_full_area"); // "Maximize Window", Ctr DownArrow -} - -static void nla_selectmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemO(layout, NULL, 0, "NLA_OT_select_all_toggle"); - uiItemBooleanO(layout, "Invert All", 0, "NLA_OT_select_all_toggle", "invert", 1); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "NLA_OT_select_border"); - uiItemBooleanO(layout, "Border Axis Range", 0, "NLA_OT_select_border", "axis_range", 1); -} - -static void nla_edit_transformmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - // XXX these operators may change for NLA... - uiItemEnumO(layout, "Grab/Move", 0, "TFM_OT_transform", "mode", TFM_TRANSLATION); - uiItemEnumO(layout, "Extend", 0, "TFM_OT_transform", "mode", TFM_TIME_EXTEND); - uiItemEnumO(layout, "Scale", 0, "TFM_OT_transform", "mode", TFM_TIME_SCALE); -} - -static void nla_editmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - Scene *scene= CTX_data_scene(C); - - uiItemMenuF(layout, "Transform", 0, nla_edit_transformmenu, NULL); - uiItemMenuEnumO(layout, "Snap", 0, "NLA_OT_snap", "type"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "NLA_OT_duplicate"); - uiItemO(layout, NULL, 0, "NLA_OT_split"); - uiItemO(layout, NULL, 0, "NLA_OT_delete"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "NLA_OT_mute_toggle"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "NLA_OT_apply_scale"); - uiItemO(layout, NULL, 0, "NLA_OT_clear_scale"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "NLA_OT_move_up"); - uiItemO(layout, NULL, 0, "NLA_OT_move_down"); - - uiItemS(layout); - - // TODO: names of these tools for 'tweakmode' need changing? - if (scene->flag & SCE_NLA_EDIT_ON) - uiItemO(layout, "Stop Tweaking Strip Actions", 0, "NLA_OT_tweakmode_exit"); - else - uiItemO(layout, "Start Tweaking Strip Actions", 0, "NLA_OT_tweakmode_enter"); -} - -static void nla_addmenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - uiItemO(layout, NULL, 0, "NLA_OT_actionclip_add"); - uiItemO(layout, NULL, 0, "NLA_OT_transition_add"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "NLA_OT_meta_add"); - uiItemO(layout, NULL, 0, "NLA_OT_meta_remove"); - - uiItemS(layout); - - uiItemO(layout, NULL, 0, "NLA_OT_tracks_add"); - uiItemBooleanO(layout, "Add Tracks Above Selected", 0, "NLA_OT_tracks_add", "above_selected", 1); -} - -/* ------------------ */ - -static void do_nla_buttons(bContext *C, void *arg, int event) -{ - ED_area_tag_refresh(CTX_wm_area(C)); - ED_area_tag_redraw(CTX_wm_area(C)); -} - - -void nla_header_buttons(const bContext *C, ARegion *ar) -{ - SpaceNla *snla= CTX_wm_space_nla(C); - ScrArea *sa= CTX_wm_area(C); - uiBlock *block; - int xco, yco= 3; - - block= uiBeginBlock(C, ar, "header buttons", UI_EMBOSS); - uiBlockSetHandleFunc(block, do_nla_buttons, NULL); - - xco= ED_area_header_standardbuttons(C, block, yco); - - if ((sa->flag & HEADER_NO_PULLDOWN)==0) { - int xmax; - - xmax= GetButStringLength("View"); - uiDefMenuBut(block, nla_viewmenu, NULL, "View", xco, yco, xmax-3, 20, ""); - xco+= xmax; - - xmax= GetButStringLength("Select"); - uiDefMenuBut(block, nla_selectmenu, NULL, "Select", xco, yco, xmax-3, 20, ""); - xco+= xmax; - - xmax= GetButStringLength("Edit"); - uiDefMenuBut(block, nla_editmenu, NULL, "Edit", xco, yco, xmax-3, 20, ""); - xco+= xmax; - - xmax= GetButStringLength("Add"); - uiDefMenuBut(block, nla_addmenu, NULL, "Add", xco, yco, xmax-3, 20, ""); - xco+= xmax; - } - - uiBlockSetEmboss(block, UI_EMBOSS); - - /* filtering buttons */ - xco= ANIM_headerUI_standard_buttons(C, snla->ads, block, xco, yco); - - /* auto-snap selector */ - if (snla->flag & SNLA_DRAWTIME) { - uiDefButS(block, MENU, B_REDR, - "Auto-Snap %t|No Time-Snap %x0|Nearest Second %x2|Nearest Marker %x3", - xco,yco,90,YIC, &snla->autosnap, 0, 1, 0, 0, - "Auto-snapping mode for times when transforming"); - } - else { - uiDefButS(block, MENU, B_REDR, - "Auto-Snap %t|No Time-Snap %x0|Nearest Frame %x2|Nearest Marker %x3", - xco,yco,90,YIC, &snla->autosnap, 0, 1, 0, 0, - "Auto-snapping mode for times when transforming"); - } - xco += 98; - - /* always as last */ - UI_view2d_totRect_set(&ar->v2d, xco+XIC+80, ar->v2d.tot.ymax-ar->v2d.tot.ymin); - - uiEndBlock(C, block); - uiDrawBlock(C, block); -} - - -- cgit v1.2.3 From 3a954970f7262aa053ad233d03915d1c18d8e0a2 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 7 Dec 2009 22:29:35 +0000 Subject: Remove 'temp' screens hanging around in files from older 2.5 versions --- source/blender/blenloader/intern/readfile.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 54c86af80b6..83627ac50c3 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10162,6 +10162,14 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } } + /* clear hanging 'temp' screens from older 2.5 files*/ + if (main->versionfile == 250) { + bScreen *screen; + for(screen= main->screen.first; screen; screen= screen->id.next) { + if (screen->full == SCREENTEMP) + free_libblock(&main->screen, screen); + } + } } /* put 2.50 compatibility code here until next subversion bump */ -- cgit v1.2.3 From 742a09858b03a8d37f9d88129edca749976f263b Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Mon, 7 Dec 2009 23:47:37 +0000 Subject: FIX for #20256 New folder doesn't rename Note: did some refactoring and renaming of files to make code a bit clearer there too. Also applies solution provided by Aurel W in patch #20264, thanks for submitting the patch. --- source/blender/editors/space_file/file_ops.c | 66 +++++++++++++++++++--------- 1 file changed, 45 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index 2d4185e871a..8fe1ddd636d 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -29,6 +29,7 @@ #include "BKE_context.h" #include "BKE_screen.h" #include "BKE_global.h" +#include "BKE_report.h" #include "BLI_blenlib.h" #include "BLI_storage_types.h" @@ -745,32 +746,55 @@ int file_next_exec(bContext *C, wmOperator *unused) return OPERATOR_FINISHED; } -int file_directory_new_exec(bContext *C, wmOperator *unused) +/* create a new, non-existing folder name, returns 1 if successful, 0 if name couldn't be created. + The actual name is returned in 'name', 'folder' contains the complete path, including the new folder name. +*/ +static int new_folder_path(const char* parent, char *folder, char *name) { - char tmpstr[FILE_MAX]; - char tmpdir[FILE_MAXFILE]; int i = 1; + int len = 0; + + BLI_strncpy(name, "New Folder", FILE_MAXFILE); + BLI_join_dirfile(folder, parent, name); + /* check whether folder with the name already exists, in this case + add number to the name. Check length of generated name to avoid + crazy case of huge number of folders each named 'New Folder (x)' */ + while (BLI_exists(folder) && (lenparams) { - - BLI_strncpy(tmpstr, sfile->params->dir, FILE_MAX); - BLI_join_dirfile(tmpstr, tmpstr, "New Folder"); - while (BLI_exists(tmpstr)) { - BLI_snprintf(tmpdir, FILE_MAXFILE, "New Folder(%d)", i++); - BLI_strncpy(tmpstr, sfile->params->dir, FILE_MAX); - BLI_join_dirfile(tmpstr, tmpstr, tmpdir); - } - BLI_recurdir_fileops(tmpstr); - if (BLI_exists(tmpstr)) { - BLI_strncpy(sfile->params->renamefile, tmpdir, FILE_MAXFILE); - } else { - filelist_free(sfile->files); - filelist_parent(sfile->files); - BLI_strncpy(sfile->params->dir, filelist_dir(sfile->files), FILE_MAX); - } - } + if(!sfile->params) { + BKE_report(op->reports,RPT_WARNING, "No parent directory given."); + return OPERATOR_CANCELLED; + } + + /* create a new, non-existing folder name */ + if (!new_folder_path(sfile->params->dir, path, name)) { + BKE_report(op->reports,RPT_ERROR, "Couldn't create new folder name."); + return OPERATOR_CANCELLED; + } + + /* rename the file */ + BLI_recurdir_fileops(path); + + if (!BLI_exists(path)) { + BKE_report(op->reports,RPT_ERROR, "Couldn't create new folder."); + return OPERATOR_CANCELLED; + } + + /* now remember file to jump into editing */ + BLI_strncpy(sfile->params->renamefile, name, FILE_MAXFILE); WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL); return OPERATOR_FINISHED; -- cgit v1.2.3 From d653b0c9619cc90ada5d213e194bf0f3c5babc1c Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Tue, 8 Dec 2009 00:57:14 +0000 Subject: Few small things: 1. MSVC 9 projectfiles update (graph_header.c, action_header.c and nla_header.c removed) 2. Fix for opening the filebrowser when saving file for the first time (untitled.blend) from file menu 3. Add CROSS effect sequence type back to menu. (Durian fix) Note: Removed SEQ_EFFECT from rna, since this no actual sequence type, but rather used to check for the effect bit. --- source/blender/makesrna/intern/rna_sequence.c | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 2e31facfd19..cb9863d7ea5 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -396,7 +396,6 @@ static void rna_def_sequence(BlenderRNA *brna) {SEQ_SCENE, "SCENE", 0, "Scene", ""}, {SEQ_MOVIE, "MOVIE", 0, "Movie", ""}, {SEQ_SOUND, "SOUND", 0, "Sound", ""}, - {SEQ_EFFECT, "REPLACE", 0, "Replace", ""}, {SEQ_CROSS, "CROSS", 0, "Cross", ""}, {SEQ_ADD, "ADD", 0, "Add", ""}, {SEQ_SUB, "SUBTRACT", 0, "Subtract", ""}, -- cgit v1.2.3 From 53f94f92a1a84c44376722a4a642766f53b3ab24 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 8 Dec 2009 06:32:30 +0000 Subject: Animation Editors: Fixes for RNA/Python Bastardisation Still not happy about the tight/regular-spacing imposed by the layout engine automation, but will tweak later. --- source/blender/makesrna/intern/rna_action.c | 4 ++-- source/blender/makesrna/intern/rna_scene.c | 8 ++++++++ source/blender/makesrna/intern/rna_space.c | 23 ++++++++++++++++++----- 3 files changed, 28 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 3708d810cca..0568652488d 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -144,13 +144,13 @@ static void rna_def_dopesheet(BlenderRNA *brna) prop= RNA_def_property(srna, "include_missing_nla", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NLA_NOACT); - RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA Data."); + RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA data. (NLA Editor only)"); RNA_def_property_ui_icon(prop, ICON_ACTION, 0); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); prop= RNA_def_property(srna, "collapse_summary", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", ADS_FLAG_SUMMARY_COLLAPSED); - RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden."); + RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden. (DopeSheet Window Editors Only)"); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); } diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 458fdbf2ea9..5000dd90b1d 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -2453,6 +2453,14 @@ void RNA_def_scene(BlenderRNA *brna) /* Animation Data (for Scene) */ rna_def_animdata_common(srna); + /* Readonly Properties */ + prop= RNA_def_property(srna, "nla_tweakmode_on", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SCE_NLA_EDIT_ON); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); /* DO NOT MAKE THIS EDITABLE, OR NLA EDITOR BREAKS */ + RNA_def_property_ui_text(prop, "NLA TweakMode", "Indicates whether there is any action referenced by NLA being edited. Strictly read-only."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); + + /* Nodes (Compositing) */ prop= RNA_def_property(srna, "nodetree", PROP_POINTER, PROP_NONE); RNA_def_property_ui_text(prop, "Node Tree", "Compositing node tree."); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 4a55d259be9..cc44a1b6c14 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -84,10 +84,10 @@ static EnumPropertyItem transform_orientation_items[] = { {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem autosnap_items[] = { - {SACTSNAP_OFF, "NONE", 0, "None", ""}, - {SACTSNAP_STEP, "STEP", 0, "Step", "Snap to 1.0 frame/second intervals."}, - {SACTSNAP_FRAME, "FRAME", 0, "Frame", "Snap to actual frames/seconds (nla-action time)."}, - {SACTSNAP_MARKER, "MARKER", 0, "Marker", "Snap to nearest marker."}, + {SACTSNAP_OFF, "NONE", 0, "No Auto-Snap", ""}, + {SACTSNAP_STEP, "STEP", 0, "Time Step", "Snap to 1.0 frame/second intervals."}, + {SACTSNAP_FRAME, "FRAME", 0, "Nearest Frame", "Snap to actual frames/seconds (nla-action time)."}, + {SACTSNAP_MARKER, "MARKER", 0, "Nearest Marker", "Snap to nearest marker."}, {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -464,6 +464,12 @@ static void rna_SpaceDopeSheetEditor_action_update(bContext *C, PointerRNA *ptr) } } +static int rna_SpaceGraphEditor_has_ghost_curves_get(PointerRNA *ptr) +{ + SpaceIpo *sipo= (SpaceIpo*)(ptr->data); + return (sipo->ghostCurves.first != NULL); +} + #else static void rna_def_space(BlenderRNA *brna) @@ -1290,7 +1296,7 @@ static void rna_def_space_graph(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem mode_items[] = { - {SIPO_MODE_ANIMATION, "FCURVES", 0, "F-Curves", ""}, + {SIPO_MODE_ANIMATION, "FCURVES", 0, "F-Curve Editor", ""}, {SIPO_MODE_DRIVERS, "DRIVERS", 0, "Drivers", ""}, {0, NULL, 0, NULL, NULL}}; @@ -1382,6 +1388,13 @@ static void rna_def_space_graph(BlenderRNA *brna) RNA_def_property_enum_items(prop, autosnap_items); RNA_def_property_ui_text(prop, "Auto Snap", "Automatic time snapping settings for transformations."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); + + /* readonly state info */ + prop= RNA_def_property(srna, "has_ghost_curves", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", 0); /* XXX: hack to make this compile, since this property doesn't actually exist*/ + RNA_def_property_boolean_funcs(prop, "rna_SpaceGraphEditor_has_ghost_curves_get", NULL); + RNA_def_property_ui_text(prop, "Has Ghost Curves", "Graph Editor instance has some ghost curves stored."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); } static void rna_def_space_nla(BlenderRNA *brna) -- cgit v1.2.3 From 81a69bb00fede01ec02750f2d4b093ac9d1f7d55 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 8 Dec 2009 07:12:06 +0000 Subject: Various changes to screen-related code, aiming to fix a few problems and usability issues with 'temp' screen layouts. Now, temp screens are hidden from being accessed directly, with a new 'Back to Previous' button appearing in place of the screen menu when (for example) fullscreen render image areas are present. Window type menus also get disabled here too, to prevent things from getting too mixed up. --- source/blender/editors/datafiles/blenderbuttons.c | 13090 +++++++++---------- source/blender/editors/include/ED_screen.h | 5 +- source/blender/editors/include/UI_icons.h | 2 +- source/blender/editors/screen/area.c | 26 +- source/blender/editors/screen/screen_edit.c | 41 +- source/blender/editors/screen/screen_ops.c | 47 +- source/blender/makesrna/intern/rna_screen.c | 11 + .../blender/windowmanager/intern/wm_event_system.c | 4 +- 8 files changed, 6642 insertions(+), 6584 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/blenderbuttons.c b/source/blender/editors/datafiles/blenderbuttons.c index 702641f4f99..b1b7bbbd2ec 100644 --- a/source/blender/editors/datafiles/blenderbuttons.c +++ b/source/blender/editors/datafiles/blenderbuttons.c @@ -1,6551 +1,6549 @@ /* DataToC output of file */ -int datatoc_blenderbuttons_size= 209415; +int datatoc_blenderbuttons_size= 209368; char datatoc_blenderbuttons[]= { -137, 80, 78, 71, 13, 10, 26, - 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, - 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83, -233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161, -217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136, -138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, - 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, - 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116, -145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, - 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0, -172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, - 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, - 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, - 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, - 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128, -109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144, -185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, - 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34, -196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, - 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, - 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63, -199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, - 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46, -194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, - 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, - 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70, -162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, - 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99, -207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, - 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16, -123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, - 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64, -113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, - 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175, -232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, - 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42, -124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, - 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89, -253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53, -196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227, -152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151, -150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143, -206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158, -190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12, -206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, - 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41, -166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44, -182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187, -173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, - 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, - 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83, -155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93, -225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, - 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165, -119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, - 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, - 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152, -206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, - 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55, -186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157, -226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, - 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, - 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, - 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, - 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, - 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230, -189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126, -189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, - 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171, -196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, - 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54, -238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102, -213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215, -185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, - 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, - 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233, -130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225, -210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147, -211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214, -213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95, -244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145, -245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23, -254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175, -219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104, -249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0, -255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 32, 0, - 73, 68, 65, 84,120,218,236, 93,119,124, 20,197,226,255,206,222,238,245, 75, 39,141, 36,164, 0,129, 96,232, 69, 18,138,116, 20, - 80,144,166,248, 16,158,232,207,134,189,129,138,136, 8,196,138,192,123, 34, 79,159, 10,136, 34, 88, 64,240,209,148,222,155, 74, - 47,146, 0, 9,164,147,122,253,110,231,247, 7,183,231,229,184, 22,184, 40,194,124, 63,159,253,220,221,222,238,119,103,102,103, -102,191,243,157,217, 25, 66, 41, 5, 3, 3, 3, 3, 3, 3, 3, 3, 67,240,193,177, 36, 96, 96, 96, 96, 96, 96, 96, 96,184, 78, -132,214,234,213,171, 3,182,192, 8, 33,253, 2,229,116,108,183, 93,239,156, 13, 24,119, 26, 68,206,219, 28,156,175,255, 77,194, -121,219,245,202, 41,197, 55, 80,222,250,112, 6,154,167,234, 25, 78, 26,236,112, 54, 20,103,176,202,145,135,112,210, 6,184,239, -175,255, 77,194,121,219,245,198,233,158,127, 2,225,173, 47,103, 32,121,234, 42,194, 73,131, 29,206,134,226,188,214,114,228, 35, -156,244, 90,243,146,151,123,255, 58,110, 34,240, 13, 37,178,234,131,193,131, 7, 19, 23,126,114,189,114,186,166,131,196, 31,204, -176, 6, 17,155,130,205,233,150,158,193,194,235,131, 7, 15, 38,171, 87,175,222, 12,224,182, 96,198, 61, 24,247,221, 45,174, 65, -225,173,175,200,170, 47,103,176,242,125, 67,115, 6,171, 44,185,115, 6, 35,223,123,186,239, 13,120,143,130, 21,206,160,148,165, -134,200,243, 30,242,207, 53,243,186,115, 6,163, 44,185,115, 6, 35,223,255, 25,156,193, 40, 75,158, 56,131,145,239,189,221,123, -230,104,253,185,130,192,189,128,247,186,158, 5, 81, 67,137,205, 64, 29,152,235,129, 51,200,247,232,117, 7,103, 48, 91, 55,189, -130,117,143, 26, 34,191,187,114, 6,139,223,157, 39, 24,247,201, 19,231,181,134,215, 75, 56,131, 30,247,107,205,247,127, 22,103, -144,239, 81, 80,202,146, 27,103,175, 32, 55, 6,122,185,252,126, 61,152,156,193, 42, 75, 30,194,121,205,247,201, 19,231,181,134, -215, 75, 56,131, 30,247, 96, 60, 67, 26,138,247,134,117,180, 26, 82,100, 53,212, 67, 45,152,220, 13,225,234, 52,148,243, 22, 44, - 87,199, 3,239,230, 32,210,109, 10,118, 56, 29,225, 35, 13,229,190, 94,239, 96,101,137,149,165,235,173, 44,121,202, 55,131, 7, - 15,126,125,245,234,213, 83,175,183, 70,180, 43,103,176, 4,145,135,184, 95, 83, 89,114, 63, 55, 24,101,201, 15, 39,105,136,248, - 7,187, 60, 49,161, 85, 15,167, 40,200, 45, 19, 4,217,129,105,176,120, 7, 57,156,189, 26,194, 33,108, 0, 4, 61,156,142,150, -242,212, 6,136,251,223, 37, 77, 89, 89, 98,101,233,186, 43, 75,110,121,178, 87, 16,157,162,160, 58,207,238,156,193,184,134, 43, - 71,176,242,104, 67,199, 61,152,101,169, 33,238,253,223, 14,148,210, 6,219, 0,244, 99,156,140,147,113, 50, 78,198,201, 56, 25, - 39,227,188, 89, 55, 54,189, 3, 3, 3, 3, 3, 3, 3, 3, 67, 3,129,176, 9, 75, 25, 24, 24, 24, 24, 24, 24, 24, 26, 6, 94, -199,104, 37, 36, 36,172,210,104, 52,205,188,253, 95, 91, 91,123,241,194,133, 11,189, 89, 18, 50, 48, 48,248,109,209, 17,194,225, -143,183,156, 69, 0,148,178, 86, 30, 3, 3,195,205, 44,180,148, 74,101,218,177, 99,199,210, 69, 81,132,221,110,135,205,102,115, -126,154,205,102,244,236,217,179,222, 3,233,227,226,226,182,200,100,178,148,250,156, 99,183,219,207, 21, 22, 22,118,247, 81,129, -239, 0,144, 70, 8,113,221,231,243, 19,192, 5,139,197,210,193, 23, 39, 33, 36,205,157,207, 11,151,244,221, 39,103,120,120,248, - 62,158,231, 19, 61,113,121,251, 46,138,226,153,226,226,226,108,150, 77,255, 28,196,197,197,109,225,121,190,222,249,243,226,197, -139, 94,243,103,227,198,141, 15,114, 28,215,184, 30,148, 50, 81, 20, 79, 92,188,120,177,187, 55, 33, 34,229,121, 63,194,166,206, -119, 66, 72,190,205,102,235,228,175, 28,249,226,242,144, 71,125,114,186,138, 44,158,231,115, 98, 98, 98, 30,213,235,245, 70, 0, - 84, 38,147,209,168,168, 40, 41,108, 0, 0,155,205, 86,114,233,210,165,214, 44, 39, 50, 48, 48,220, 20, 66, 75, 20, 69,206,100, - 50,225,228,201,147,240, 82,223,219,175,226,122,233,251,127, 90, 31, 19, 18, 19, 11,155,197, 2,109,163,104, 39,119,209,209,195, -176, 89, 45,176,153,205,104,210,185,171,244, 16,195, 45,183,220, 34,243,195,153,248,214, 91,111,197,132,132,132,192,104, 52,194, -104, 52,194,100, 50,193,104, 52,194,108, 54,195,108, 54,195, 98,177,192, 98,177,192,102,179,193,100, 50, 97,195,134, 13,254,194, -158, 56, 99,198,140,152,208,208, 80, 39,159,180, 73,156, 18,175,213,106,133,209,104,196,207, 63,255,236,147,147,231,249,196, 11, - 23, 46,196,200,229,114, 80, 74, 33,138,162,167,193,133,117,208,180,105, 83, 11,203,162,127, 42,210,103,124,185, 58, 38, 76,173, -132, 77, 20, 49,164,109, 83,231, 31,103, 62, 89, 6,106,179, 67,180,217,208,124,226, 88,224,178, 37,131, 86,173, 90,249,204,159, -148,210,228, 25, 95,174, 14, 15,148,179,180,180,212,144,145,145,113, 1,151, 95,125,246,230,248, 36, 26, 12,134, 24, 41, 12,238, -130,136,227,184, 58,219,218,181,107, 49,100,200, 16,127,113, 79,124,230,153,103, 98,172, 86, 43,204,102, 51, 76, 38, 19,172, 86, - 43,108, 54,155,115,179,219,237,206,205,108, 54, 99,247,238,221,129, 58, 89,111,245,239,223,255,129,213,171, 87,107,191,255,254, -123,109, 74, 74, 10,228,114, 57,100, 50, 25,100, 50, 25, 56,142, 3,207,243,184,245,214, 91, 9,203,130, 12, 12, 12, 55,141,208, - 50,153, 76,185,237,219,183,167,142,239, 9, 74,165, 82,238, 86,129, 54, 78, 79, 79, 63,225,126,158,191, 46,197,144,152, 88, 76, - 78,138, 4, 0,188,118,182,204,249,128,120, 59,187,157,243,152, 55, 10, 42, 1, 0,106,181, 26,196,181, 25,237, 5, 90,173, 22, -253,251,247,135, 66,161, 64,167, 78,157, 32, 8,130,199, 77, 46,151, 67, 16,132, 64, 30, 14,208,233,116,152, 54,109,154, 36,146, -160, 85, 41,241, 68,118, 39,168, 64,241,159,195,167, 96, 22, 41,120,158,119,110,129,112,202,229,114, 28, 58,116, 8, 60,207, 67, - 38,147, 57, 63,165,239, 43, 87,174,196,200,145, 35,193,243, 60,212,106, 53,112, 19,205, 51,114,189, 32, 76,173,196,184,249,223, - 1, 0,206,207,158,232,188,119,187, 31,123,205,121, 76,242,255,141, 6, 33, 4,130, 32,128,227,184,160,113,150,151,151, 27,238, -189,247,222,109, 33, 33, 33,107,171,170,170,224, 71,192,225,252,249,243,224,121,222,107,126,231, 56, 14,239,191,255, 62, 78,159, - 62, 29, 80,220,141, 70, 35, 62,254,248, 99,216,237,246, 58,188,210,119,247,125, 1,138,172, 55, 7, 12, 24, 48,118,245,234,213, - 17,132, 16,252,235, 95,255,130, 92, 46,199,160, 65,131, 16, 21, 21,133,117,235,214, 65, 46,151,227,197, 23, 95,100,153,143,129, -129,193, 23, 4, 0,237, 0, 68, 59,140,158,106, 0,225, 46,255,151, 56, 62,163, 93,126,239,245,192,211,217,113,140,244,191,244, -219, 12, 64,225, 97,127, 25, 0,181, 99, 51, 1,216, 1, 32,211,229, 58,210,121,240,118, 93, 30,184,188,254, 16,128, 77, 0,122, - 73,147,232, 93,188,120,241, 14, 23,103,229,216,137, 19, 39, 90, 74,154,199,209,133, 40,183,217,108,233, 82,119,162,228, 22,245, -235,215,207,103, 11,223,102,177, 92, 33, 64, 60,105, 41, 79,221, 21,222, 4,140,197, 98,193,232,209,163, 47,223, 9, 47, 15, 29, -215, 45, 0,237, 6,179,217, 12,158,231,209, 34, 41, 26, 83, 6,182, 71, 23,106, 69,109, 13,129,173,178, 22, 67,117, 86, 28,107, -213, 1, 11,206,149,224,108, 85, 13,120,158, 15,136, 83, 20, 69,175, 34, 75, 38,147, 97,254,252,249,184,247,222,123, 33,147,201, - 2,226, 99, 8, 62,108,162,232, 49, 31,122,203,179,129,220,167, 64, 56,203,203,203, 13, 67,134, 12,217,165, 84, 42, 23,198,198, -198, 94,200,207,207,247, 43,180,220,197,143,123,163,226,189,247,222,195,220,185,115,209,187,119,239,128,194,105, 50,153, 64, 8, -193,130, 5, 11,174,248,111,250,244,233, 87, 92,207, 23,167,163,129,196, 53,110,220,248,177, 53,107,214,132, 74,199, 54,106,212, - 8,130, 32,160,117,235,214, 8, 9, 9,193,182,109,219, 96,183,219, 3, 46,151, 12, 12, 12, 55, 46, 60,105, 17, 23,244,156, 60, -121,114,167,156,156,156,153, 89, 89, 89, 95,237,216,177,227, 75, 66,200, 42,151, 58,113,136,163,238, 89,229,242,187,179,155,232, - 17, 0, 68, 19, 66, 86, 73,199,187,254,118,217,223, 15,128, 66,250, 61,121,242,228,204,156,156,156,153,147, 38, 77,122,121,214, -172, 89,242,201,147, 39,183,201,201,201,153, 41, 93,199, 83, 56, 60, 57, 90, 62,103, 21,150,186, 17,143, 31, 63, 14,127,227, 87, - 41,165, 62,107, 75,109,163,104,167,147,245, 70,114,148,115,255,180,252, 10,231, 3,108, 94,199,102,208,106,181, 24,248,198, 59, - 1, 57, 69,102,179, 25,197,197,197, 78,151,193,223, 22, 40,167, 70,173,194,134,103, 90,227,124,153, 2,175,239, 44,199,234, 95, - 78, 67, 16, 4,220,222,170, 53,238,144,135,224,213,100, 5,158, 57,149, 7,107,128, 99,122, 41,165, 30, 5,150,244, 93,234, 66, - 97, 66,235,175,195,144,182, 77,157,174,211,238,144,190,206,253, 35,107, 15, 57,239,201,115,243,223, 6, 0,244,238,112, 43, 2, - 25,207,237,143,179,172,172,204,208,189,111,175,205,118,131,249,243,177, 99,199,230,110,220,184, 81, 29, 80,243,206,131,208,146, - 92, 91, 73,100,241, 60, 15,179,217, 28, 80,220,205,102,179,215,242, 33,151,203,235,237,104, 1, 64,109,109,173,121,197,138, 21, -152, 55,111, 30,162,162,162, 48, 96,192, 0,196,199,199, 99,217,178,101,160,148, 98,226,196,137, 80,171,213,146,123,205, 50, 32, - 3,195,205, 13, 95, 90, 68,153,147,147, 51,211, 93,200,184,254,118, 21, 80,110, 98,202, 85,172,101,250,121,254,175,114, 23, 79, -210,117, 9, 33,171,102,205,154, 53,196, 79, 56, 74,188, 9, 45,159,211,247,155, 76,166,220,182,109,219, 6,164, 38,244,122,125, -161, 63,177,225,169, 85,239,234, 18,232,116, 58,104, 67,117,224, 2,172,119,173, 86,171, 83,168,172, 95,191, 30,106,181, 26,131, - 6, 13,186, 38, 71,203, 98,177, 64, 33, 23,192, 53,138,197,184,217, 27, 81, 86,109,112, 62, 96, 54,157,201,197,129,162, 98, 60, -147,213, 23, 90,117, 49,106,204,230,128,156, 55, 81, 20,175, 16, 89, 60,207, 99,244,232,209, 78, 55,193,117,220, 10, 88,215,225, - 95, 6, 79,249,211,125,191,232,230, 84, 93, 13,103, 89, 89,153, 97,200,144, 33,187,236, 6,243,231, 5, 5, 5,187, 0,168,186, -116,233, 82,111,161, 37, 9, 44, 65, 16,240,254,251,239, 99,238,220,185,206,255, 3, 21, 90, 54,155,173,142,128, 58,117,234, 84, -157,107,185, 11, 59, 95,221,166,148, 82, 74, 8, 17, 1,136,105,105,105,206,115,226,226,226, 16, 30, 30, 14, 81, 20, 33,138, 34, - 84, 42, 21,212,106, 53,228,114, 57,203,116, 12, 12, 12,190,180,136, 97,210,164, 73, 47, 19, 66, 86, 57,156,165,195, 62, 4,149, - 39,116,118, 19,107, 37, 94,234,174, 33,158,196,150,235,119, 9,147, 39, 79,206,244, 16,142,189, 94,133,150,219,180,251,117,224, -218,141, 24,172,135,152,175, 7,153, 46, 60, 20,106,173, 22, 50, 25, 7, 66, 8,245,199,101,177, 88,156, 21,255,163,143, 62,234, -115,220, 74,160,227,169, 44, 22, 11, 56, 94,134,139,113,169,176,115, 91,157,231, 74, 27,199, 11, 56, 27,215, 18,178,227, 7, 33, - 4,248,192,117,119,180, 38, 78,156,136,143, 63,254, 24, 28,199, 57,211,132,231,121, 52,111,222, 28,185,185,185,172,196, 93, 39, - 34,203,219,126,187, 93, 12,216,133,241,116, 92, 89, 89,153, 97,212,168, 81,155, 43, 43, 43, 63,191,229,150, 91, 78,225,242,244, - 7, 92,160,124, 60,207,215, 17, 88,146,200,154, 51,103, 78, 29, 81,100,181, 90, 3,106, 8, 88,173,214, 43, 4,207,187,239,190, - 91,231, 19, 0,178,179,179, 3,114,134, 1, 80,142,227,168, 92, 46, 71,255,254,253,209,166, 77, 27,124,255,253,247, 16, 69, 17, -143, 63,254, 56,212,106, 53, 62,248,224, 3,216,108, 54,188,245,214, 91,204,209, 98, 96, 96,240,165, 69, 76,179,102,205, 58, 60, -107,214, 44,167,179,228,238,104,121,163,116,136,170,104, 73,164,225,242, 88,171,189, 62,158,213, 67,188, 9, 48,215,125, 57, 57, - 57, 51, 61,132,195,189,187,242,207, 95,235,176,240,200, 33,188,211,173, 61,128,186,221,133,243,111,109, 9,173, 78, 11,109,136, - 14,163, 86,110, 5, 0, 71,165, 63, 41, 32, 71, 75, 18, 90,101,101,101, 62, 69, 86,125, 28, 45, 78,193, 99,121,226, 37, 80,133, - 0,222,108,173, 35,180,100,188,128,243, 81,169,224, 4, 57,120,187, 45, 32, 78, 74,233, 21, 93,133,227,199,143, 7, 33,196,249, -134, 88,219,182,109, 93,185,216,147,231,207,206,159,251, 62,193,177,111, 30, 3, 0,116,175,173,117,222,139, 25,109,255,120,191, - 99,246,161,205, 78,247,241, 13, 60,127, 85,156,101,101,101,134, 46, 25,153,187,228,145, 97,159,159, 59,119,110, 23, 0,238,158, -123,238, 9,111,219,182,109, 64,101, 82,122,185,194, 93,100,185, 58, 89,210,167,213,106, 13, 40,238,210, 88, 41,127,144,186, 17, -253,229,121, 74, 41,141,140,140, 4,199,113, 8, 13, 13,133, 78,167,115,190,113,171, 82,169,160,209,104,156,227, 59, 3, 20,110, - 12, 12, 12, 55, 47, 34, 36,161,227, 16, 75,117,156, 38, 74,233, 16, 87, 49,228,173, 11,209,225, 64,109,241,103,172, 57, 4,154, - 71, 72,206,154, 91,157,188,202,155, 72,227, 37, 5,233,250, 25, 31, 31,255, 63,157, 78,151, 26,104,236,235, 51,121,169,221,106, -185,194,217, 34,132, 64, 23,162,131, 90,167,133, 58, 68,231,213,245,242, 37,180, 36,167, 72,122,232, 44, 92,184, 16, 58,157, 14, -255,252,231, 63,235, 61, 70,203, 41,180,228, 28,214, 41,127,134, 76,193,215, 17, 89, 60,207, 67, 38, 8, 40,212,197,131, 19, 4, -240,182,192, 92,178,202,202, 74,240, 60,143, 41, 83,166, 56, 91,240,174, 34,171, 62,113,102,104, 24, 80,187,245, 10, 23,202,155, -251,122,181,156,146,147, 37,143, 12,251,188,101,203,150, 78, 39, 75,163,209, 72,111,155,250, 5,199,113, 30, 69,150,251, 27,130, - 60,207, 95,206,203,126,222,142,116,117,180,102,205,154,229,228,117,117,178, 36,212,167, 28, 73, 97,221,188,121, 51, 14, 28, 56, -128, 71, 31,125, 20,106,181, 26,115,231,206,133,205,102,195,244,233,211,161, 86,171,161, 80, 40, 88,230, 99, 96, 96,110, 86, 29, - 45,226,134, 18,183,113, 80,196, 77,212,148,120, 18, 88,174,221,132, 46,223,173, 30,120,205,110, 93,138,238,251,165,207,178, 89, -179,102,109,148,156, 44,151,253,117,194,225,215,209, 82, 42,149,169, 39, 79,158,116, 78, 86,234,235,211,108, 54,163,119,239,222, - 1, 59, 99,210, 91,135, 60, 47,171, 35, 44, 52, 33, 58,104, 66, 67,160,214,233,220, 5, 7,241, 87,137, 75, 45, 98, 87,161, 53, -117,234, 84,240, 60,143,143, 63,254, 24, 0,240,252,243,207, 7, 60, 70, 75,226,132,157, 32,159,254,142,246,179, 71,194,252,133, - 21, 69,219,127, 5,207,243,136,233,122, 7,196, 46, 35,161, 87,235,192,219,109, 1,191,117, 88, 94, 94,142,220,220, 92,200,100, - 50, 60,251,236,179,117,230, 58,114,127,147,109,253,250,245,204,209,250, 43,132,150,104, 11, 72, 84,213,199,117,116,229,148,198, -100, 85, 86, 86,126,126,238,220,185,221, 0,184,177, 99,199,134,107, 52, 26,252,247,191,255,213, 3, 80, 44, 91,182, 76,237, 79, - 20, 73,249,198,159,200, 18, 4,225,114, 94, 14, 36,238,180,238,148, 37,254, 6,198, 7,146,231,165,176, 18, 66, 96,183,219,161, - 86,171,235, 56, 89, 42,149, 10, 74,165,146,101, 60, 6, 6, 6,127,216, 91,143, 99, 59,187,136,166,189, 87,201,187, 55, 88, 1, -231,189, 9, 13,147,201,132,163, 71,143, 6,202, 19,240,228,165, 73,157,110,197, 27, 5,149, 32,132,224, 63,217,183, 64, 27,170, -131, 70,171,197,136,239, 55, 59, 43,238, 67, 51,159,135, 82,171, 67,227, 30, 3, 2,170,200,165,174, 67, 87,161, 85, 81, 81, 1, - 65, 16,240,230,155,111,130,227, 56,188,245,214, 91, 72, 72, 72,192,197,139, 23,177,108,217,178,128, 28, 45,153, 93,134,248,251, - 51,160, 25, 31,134,208,251,123, 34,162,255, 84, 20,152,121,236, 48,106,208,211,120, 4,138,117,115, 96, 22,237, 1,191,129,101, -179,217,176,121,243,102,247, 1,239,160,148, 58,103,221,183, 90,173,176, 88, 44,120,235,173,183,192, 86, 40,249,243, 17,223,117, - 34,162, 59, 61, 2, 0, 88, 57,107,130,115,255,148, 67,127,228,207,247,191,184,188, 0, 64,203,148, 1,245,226, 44, 43, 43, 51, -220,222, 59,123,139, 81, 20, 62,107,221,186,117, 29, 39, 75,165, 82, 17,199,239,128,196, 53,199,113,144,201,100, 87,116, 23,122, - 19, 91,129,140,209,178,217,108,206,137, 68,125,141,103,188, 26, 71,107,194,132, 9,136,143,143,119, 58, 89,111,188,241, 6,212, -106, 53, 38, 79,158, 12,171,213,138, 57,115,230,176,204,199,192,192,240, 87,136,178, 6,135,199,154,212,104, 52,230,181,105,211, - 6, 94,254, 75, 80,169, 84,130, 91, 37,221, 56, 61, 61,253,132,123, 23, 34, 33,164, 31,165,116,131,167, 74,157, 16,130,144,208, - 16,168,116, 90,104,220, 92, 44, 85, 72, 40,148, 58, 29, 56,185,224,233,129,112, 5,167, 52,182,196, 85,104, 73, 91,101,101, 37, - 4, 65,192,188,121,243, 16, 26, 26, 10,147,201,228,151, 83,122,232,200,100, 50,232,207, 87,227,216,204, 13, 80,168,118,160,217, -128,123, 17, 47,168, 33,223,246, 45, 12,118,171,207, 9, 75, 61,113,166,167,167,227,181,215, 94,187, 98, 90, 7,111, 72, 72, 72, -240, 27,247,107, 5,227,244,204,233,235,173, 88, 9, 34,181,123, 58,206, 35,167,228,100, 25, 69,225,179,220,220, 92,201,201, 10, -211,104, 52,248,232,163,143,244, 0,184,233,211,167,107,146,147,147,101,129,228, 37,153, 76,134,217,179,103,123, 28,147,229, 73, -116,213,167, 28,185,158,123,219,109,183,121,156,176,212,147,120,243,196, 41,133, 53, 42, 42,202,233,100,217,237,118,231,219,134, -210,236,243,222, 26, 21, 44,127, 50, 78,198,121,243,112,222,168,240,248,148,191,112,225,194,237,222, 78,104,214,172,217,201,147, - 39, 79, 54,151,150,226,112, 84,156,114,163,209,152,158,157,157,237,215,218, 17, 69, 17, 74,165, 18,148, 82,244,121, 45, 7,132, - 3, 56,212,125,136,197,116,235, 11,153,140,135,120,121,169, 15,191,111, 29, 26, 12,134, 58, 15, 7, 79, 91, 77, 77, 13, 76, 38, - 83,192,179,121, 27,141,198, 58, 83, 48, 16, 42,226,236, 79, 95, 95,241,246,161,180, 5, 58,110, 71,165, 82,213,233,250,241, 5, -127,115,146, 49, 4, 31,210, 11, 11, 0,208, 34,123, 16, 68,209, 14,106,183,215, 89, 38, 41, 35,245,118,136,212, 14,139, 85, 15, -147,201,228,207,118, 36,165,165,165,134, 81,163, 70,109, 6,240,233,208,161, 67, 79,224,242, 27, 47, 84,167,211, 41, 5, 65, 16, - 1,148, 3,160,151, 46, 93, 10, 43, 40, 40, 16,141, 70, 99, 19,127,225, 92,189,122, 53,142, 30, 61,138, 30, 61,122,212, 89, 14, - 74,114, 69, 93,103,119, 15, 36,127, 74,221,229,158,102,132,247, 38,228, 2,133, 76, 38, 67, 88, 88, 24,228,114, 57,222,124,243, - 77,200,229,114,104, 52, 26, 0,192,156, 57,115,156,147,175, 50, 48, 48, 48,220, 52, 66,203, 95,189,233,163, 91,209,103, 23,162, -205,102,203, 79, 78, 78,174,215,197,236,118,123,145, 31,225,150,191,108,217, 50,185,171, 11,225,239,147, 82, 90,228,231, 97,155, -191,114,229, 74,185, 39,119,195,219, 2,211,254, 56,237,118,123,126, 74, 74,138, 87,199,196, 19,172, 86,107, 1,203,162,127, 30, -236,118,187,143,252,249,202,213,230,207, 83, 45, 90,180, 40, 8, 15, 15,255, 49, 54, 54,182,108,251,246,237, 81,157, 59,119,142, -114, 61,166,115,231,206,241,110,167,153,225,125,157, 67, 16, 66,242,135, 14, 29,234, 49,207, 75,162,201, 67,254,204,247,151,231, -247,236,217, 35,119, 61,223, 27,191, 75, 57,202, 15, 64,184,158,109,223,190, 61,231,202,227, 45,239, 91,173,214, 18,150, 11, 25, - 24, 24,110,122,161,101, 48, 24,206,183,105,211,198,230,229,191,115,190,206, 45, 45, 45,237, 20,236, 8, 88, 44,150,236,191, 3, -103, 73, 73, 73, 39,150,221,174,111, 52,196, 61, 42, 42, 42,234, 18,108, 78,155,205, 22,244,252,105,181, 90,179, 27, 34, 77,203, -202,202,178, 88,206, 98, 96, 96, 96, 66,171, 30, 8,116, 26, 7, 6, 6, 6, 6, 6, 6, 6,134,155, 29, 28, 75, 2, 6, 6, 6, - 6, 6, 6, 6,134,134, 1,193,229, 85,170,175, 64,125,222, 38, 32,132,244,171,239,133,253,241, 51, 78,198,201, 56, 25, 39,227, -100,156,140,243,198,227,244,199,125,195,189,205, 40,189, 77,213, 16, 27,128,126,140,147,113, 50, 78,198,201, 56, 25, 39,227,100, -156, 55,235,198,186, 14, 25, 24, 24, 24, 24, 24, 24, 24, 26, 8, 60, 75,130,191, 6,132, 16, 25,165,212, 30, 68,202, 8, 0,222, - 22,140, 51, 3,184,116, 53,193, 4, 32,119,108,210, 68, 71, 86, 0, 22,199, 22,192,212,245,211,184, 11, 23, 34, 50,169, 93,232, - 76, 9, 17, 68, 17,191, 52,105,146,116, 16,184,221, 12, 0,186,184, 86,173,116, 90,117, 63,147,197,156,170, 20, 20, 71, 43,106, -107,214, 27,139, 78,228,177, 28,194,192,240,151,212, 75,119, 2,152,230, 40,251,179, 40,165, 95,179, 84, 97, 96,104, 32,161, 21, - 18, 18,178,143,227,184, 68,127,243,243,184, 20, 80,216,237,246,252,242,242,242, 78, 1, 22,104, 30,192, 40,157, 78,215, 91, 16, -132,110, 0, 96,181, 90,183,215,212,212,108, 4,176,140, 82,106,187,202,138, 34, 20,192,104, 0,247, 57,118, 45, 1,240, 53,165, -180,234, 42,249,218,132,133,133,125, 35, 8, 2, 45, 45, 45,237, 10, 0, 81, 81, 81,187,172, 86, 43,169,170,170, 26, 65, 41,253, -173,158,124,156, 32, 8,239,247,232,209,163, 39, 33,228, 83, 74,233,188, 32,221, 75, 37,199,113, 30, 5,138, 40,138, 41, 87,193, - 39, 7, 16, 54,111,222,188,168,197,139, 23,183,207,207,207,111, 13, 0,137,137,137,135,198,142, 29,123,240,137, 39,158, 40, 3, - 80,233, 16, 92, 94,113,225, 66, 68,102,113,225,153, 71,139,138,143,142, 6,128,184,248,214, 95,203,100,156, 60, 33,225,192, 78, - 77,163,251, 26,181,104,217,244,145,175,254, 59, 79,158,146,154,132,159,119, 28,104,247,196, 83, 47,103,170, 98, 91,188,199,196, -214,159,135,208,208,208,125, 28,199, 37,250, 42,227,158,202,188,221,110,207, 47, 43, 43,235,228,141,147,231,249, 68, 95,245,133, -167,125,162, 40,158, 41, 41, 41,241, 56,213, 68, 88, 88,216, 78,158,231, 83, 3,229,146, 62,109, 54, 91,190,183,169,101,194,194, -194,246,201,100,178, 68, 95,241,244,244,159, 40,138,103,138,139,139,189,133,243,138,184, 7, 35,156, 87,195,233, 43,156, 82,125, - 4, 96, 78, 84, 84,212,173,101,101,101,255, 0,240,114, 85, 85, 85, 91,153, 76,134,200,200,200,151, 9, 33,167,195,194,194, 62, -169,172,172,220, 1,224, 41, 74,169,200, 74, 12, 3, 67,144,132, 22,199,113,137, 5, 5, 5, 49, 90,173, 22,192, 31,235,241, 73, -139, 73,139,162, 8, 74,169,243,211,102,179, 33, 35, 35, 35, 80,177,209, 58, 52, 52,116,249,228,201,147,155,140, 26, 53, 74, 33, - 45, 53,115,225,194,133,244,111,190,249,230, 31,111,190,249,230, 84, 66,200, 72, 74,233,161, 64,197, 11,128,190, 0,198,183,111, -223,126,248, 27,111,188, 33,239,211,167, 15,236,118, 59,126,252,241,199, 30,211,167, 79,159, 71, 8,249, 22,192,231, 0,126, 10, -180,178, 32,132,116,143,139,139,251,114,219,182,109,241,185,185,185,246, 81,163, 70, 45, 5,128,125,251,246,165,217,237,118,210, -181,107,215,213,132,144, 49,148,210,109,245, 72,243,225, 79, 62,249,228, 61, 19, 39, 78,140,249,231, 63,255,249, 0,128,121,142, -107, 17, 71, 58,215,119,129, 67,167,147, 69, 41,149,251, 56, 46,174, 30,206,150, 54, 55, 55, 55, 34, 59, 59,251,177,226,226,226, -103, 92,121,139,138,138,176,127,255,126,203,204,153, 51,103,239,216,177,227,195,212,212,212, 75, 0,106,189, 17, 81,187,208,185, -168,248,232,232,158, 89,243,194, 0, 96,217,202,199,238,221,115,176, 36,100,213,154, 5,255, 80,168,228,166,197,255,153, 45,111, -222, 44, 5,155,246,157,194,238,163,229,164,117,247, 33,124,229,170, 69,253, 1, 44, 96,197,243,207,129, 76, 38, 75,200,207,207, -143,209,104, 52, 30, 23,142,119, 27,151, 33, 77,128,138,244,244,116,239, 21, 11,207, 39, 22, 20, 20,196,168, 84, 42,103,221,225, - 94,103, 72,245,138, 51,175, 80,138, 22, 45, 90, 88,124,212, 73,201,231,206,157,139,209,104, 52, 78, 30, 79,225,115, 23, 28, 45, - 90,180,240, 21,247, 58,225, 12,132,147, 82,138,230,205,155,219,253,197, 93, 90, 1,195, 95,188, 37,206,212,212, 84, 90, 31,206, - 64,194,217,180,105, 83,139,159,219, 63,231,196,137, 19, 19,147,146,146,208,188,121,243, 29,183,222,122,107,168, 86,171,197,154, - 53,107,208,170, 85,171,204,208,208,208,221,203,150, 45, 19, 94,124,241,197,118,159,125,246, 25, 0, 60,193, 74, 12, 3, 67,144, -132, 22, 33, 4, 90,173, 22, 75,151, 46,245,186, 28,135,235,247, 38, 77,154, 4,116, 65, 66, 72,167,212,212,212,205,219,182,109, - 83,199,199,255, 49, 33,182,217,108, 70, 68, 68, 4, 30,127,252,113,197,157,119,222,217,124,192,128, 1,187, 8, 33,183, 81, 74, -247,249,225, 27, 30, 29, 29,253,175, 41, 83,166,196,222,115,207, 61,136,138,170, 51,233, 54, 70,141, 26,133, 17, 35, 70,200, 79, -156, 56,113,239,194,133, 11,239,157, 63,127,126, 33, 33,228, 9, 74,233,183,190,120, 53, 26,205,208,102,205,154,125,180,109,219, -182,152,152,152, 24,164,165,165,113, 47,190,248, 98,243,244,244,116,117, 98, 98, 34,119,241,226, 69,124,255,253,247, 9, 99,198, -140, 89,174, 80, 40, 30, 49,155,205, 43, 2,136,187, 34, 42, 42,234,229, 71, 30,121,164, 81, 85, 85,149,109,255,254,253, 39,165, -253, 10,133, 98,122, 86, 86, 86,103, 66,200, 23,148,210, 79,174,198,201,114,184,118,238,107,153, 88,165,255, 3,116,182, 20,191, -252,242, 75,100, 86, 86,214,183, 38,147,169,195,163,143, 62,122,110,230,204,153,234,208,208,208, 80, 0,164,170,170,234,210,180, -105,211,204, 31,124,240,193, 75,173, 90,181,234,187,115,231,206,225,237,218,181,179, 58, 68,220,149, 66,139, 16,103,120,206, 23, -148, 96,243, 14, 81,241,218,228,231, 19,223,158,145,122,118,239,145,243, 34,175, 14,197, 15, 91, 14,163,168,172, 6,255,219,121, - 4,113, 81, 33, 68,174, 20, 50,195, 19, 51,111,171, 44, 56,178,133,178,149,181, 27, 28,132, 16,104, 52, 26,252,240,195, 15, 87, - 44, 93,229,105, 89, 43,158,231, 17, 30, 30,238,119,117, 3,149, 74,133,245,235,215,123, 92,123,209,211,146, 62, 97, 97, 97,128, -143, 69,181, 9, 33, 80,169, 84,216,190,125, 59, 56,142,243,184, 52,144,251, 62,173, 86, 11,206,199, 90, 87, 18,231,150, 45, 91, -252,114, 73,159, 58,157, 14, 0,100, 62, 11,165, 82,137,109,219,182,121,141,179,251,119,157, 99,189, 87,127,156,219,183,111,175, -179,244,151,251,146, 96,174,191,181, 90,173,179, 1,231,181,149, 22, 17,209, 53, 49, 49, 17,123,246,236,193,178,101,203, 34, 51, - 51, 51,113,234,212, 41, 16, 66, 48,115,230, 76,114,203, 45,183, 8,133,133,133,232,209,163, 7,190,251,238,187,108, 86, 90, 24, -254, 66, 8, 0,218, 1,136,198,229, 85,104,170, 1,132, 59,158, 61, 10, 0,101, 0,212,142,205, 4,160, 6, 64, 35,199,185,165, -142,186,197, 85, 32,148,160,238,226,211,157, 29,220,210, 10, 21,209, 46,255, 73,215,112,255,237,254,233,145,155, 7,128,213,171, - 87, 75, 15,179, 94,131, 7, 15,222, 92, 39,102, 1,136, 44,105,157, 50,247, 50,237, 97,129, 89,165, 86,171,253,102,215,174, 93, -234,232,232, 63,226, 96, 50,153, 80, 93, 93,141,154,154, 26, 84, 87, 87, 35, 36, 36, 4,203,150, 45, 83,247,237,219,247, 27, 66, - 72, 58,165,212,228,141, 19,192,236,139, 23, 47,198,218,108, 54, 40, 20, 10,111, 45, 97,100,100,100,224,229,151, 95,198,192,129, - 3,227,122,247,238, 61, 27,192,183, 62, 56,161,209,104, 62,218,191,127,127,140, 70,163,193,201,147, 39,145,159,159,143,231,158, -123, 46, 73, 20, 69,156, 63,127, 30,167, 78,157, 66, 65, 65, 1, 22, 46, 92, 24, 51,108,216,176,143, 0,172,240, 21,119, 7, 30, -125,230,153,103, 90, 70, 68, 68,112,239,188,243, 78, 69,109,109,237,191, 29,251, 95,155, 59,119,238,253, 61,123,246,140,121,240, -193, 7, 41, 33,100, 49,165,244, 10,225,226,198,233,201,201,178, 3, 56,230,118, 90,134,155,211, 21,231,200,132, 21, 30, 56, 9, -128,176, 1, 3, 6, 60,107, 50,153, 58,108,219,182,237,116,183,110,221,146, 1, 92,148, 50, 95, 88, 88,152,118,246,236,217,177, - 67,134, 12, 57,209,167, 79,159, 14, 3, 6, 12,120,182,164,164,100,166,227,127,234,206, 41,138,248, 37, 46,190,245,215, 91,118, - 62, 49,122,211,118,179,252,249,167,166,158,107,146,148, 82,249,203,201,114,251,145, 51, 37,168, 54,216,112,119,159,203, 11,152, -119,109,221, 4,255, 90,186, 13,143, 63,253,138,240,237,215,139, 70,156,166,208, 2, 88,237, 35, 61,175, 9,140,243, 15,177, 33, -138, 34, 4, 65,192, 29,119,220, 1, 66,200, 21,107,121, 10,130,128,157, 59,119,162, 79,159, 62, 16, 4, 1, 19, 38, 76, 8,136, -147,231,121, 12, 24, 48,192,185,142,162, 43,159,187,104,240,164, 9,220,227, 78, 41, 5,207,243,224, 56,206,235, 66,218,238,156, -254,234, 37, 41,156,190,184, 92,255,243, 23, 78,201, 77, 10, 84,100, 5,202, 41,133,147,231,121,100,103,103,227,224,193,131, 62, - 69,151, 39,125,233, 30,247, 75,151, 46,141, 75, 79, 79,223, 50,111,222,188, 72, 0, 40, 43, 43,115, 46,120, 47,147,201,112,252, -248,113,152,205,102,188,254,250,235,150,170,170,170, 7, 89, 57, 98,156, 13,201,233, 75,139, 0,232, 57,121,242,228, 78, 57, 57, - 57, 51,179,178,178,190,218,177, 99,199,151,132,144, 85,148,210, 33,210,231,228,201,147, 51,115,114,114,102, 78,154, 52,233,229, - 89,179,102, 29, 38,132,172, 2, 0,247,223,142,240, 15,113, 19,113,209, 18,143,163,204,213, 57,214,211,111,247, 79, 47,220,127, - 56, 90,131, 7, 15, 38,142, 72, 18,215, 74, 45, 80,161, 21,200,218,125, 60,207, 79,156, 57,115,102,172, 47,145, 85, 83, 83,131, - 11, 23, 46, 32, 57, 57, 25, 19, 38, 76,136,157, 55,111,222, 68, 0,239,250,160,149,203,100, 50,236,217,179, 7,197,197,197,104, -211,166, 13, 82, 83, 83,235, 28,240,251,239,191,227,199, 31,127, 68, 69, 69, 5, 58,118,236, 8, 92, 30,127,228, 17,237,218,181, -123, 61, 35, 35, 99,192,128, 1, 3,108,106,181, 26,191,252,242, 11, 58,116,232,128,165, 75,151,162, 73,147, 38,208,104, 52, 56, -113,226, 4,218,180,105,131,205,155, 55, 35, 58, 58, 26,237,219,183,183,117,236,216,113,107,121,121,249,198,188,188,188,215,189, -180,156,229, 9, 9, 9, 83, 31,126,248, 97,197,133, 11, 23,196,207, 63,255,124, 27,165,116, 27, 33,100,226, 43,175,188,242,192, -192,129, 3, 99, 14, 28, 56, 80,185,119,239,222,221,158, 68, 86,128, 78,150,205,253,161,100,183,219, 77, 6,131,193,108, 50,153, -172, 28,199,229, 17, 66,204,118,187,221, 91,159,143,106,252,248,241, 77, 75, 75, 75, 31,127,250,233,167,115, 29, 34,235, 56, 46, - 15,128, 7, 0,216,108, 54, 83, 77, 77, 77, 85, 86, 86, 86,242,152, 49, 99, 78,127,249,229,151,143,143, 31, 63,126,217,231,159, -127, 94, 3,192,224, 78,216,164, 73,210, 65,153,140,147,215, 86, 71,158, 89,190,236,147,103,126, 92, 57, 49,233,252,249,130,230, - 81,141,162,107,229,186,232, 11,203,150,124,182, 15,128,249, 66, 73, 21,126,251,189, 16,130, 32,195,209,243,149,232,121,251, 40, -225,244,201, 25,221, 37,161,197,208,160,160,210, 34,212,155, 54,109,242,233,104,237,220,185, 19,130, 32, 64,173, 86,227,131, 15, - 62,240, 73, 42, 9, 3,201, 45,242, 39,102, 56,142,243, 89,143, 72, 98, 67, 90,232,221,125,251,247,191,255,141,167,159,126,186, -206, 53, 28, 98,131,248,227,244, 22,190,228,148, 20, 20, 23, 21,213,217, 23,200,162,244,118,187, 29,130, 32,224,227,143, 63,198, -144, 33, 67,176,106,213, 42,159,159,119,220,113, 7, 56,142,163,129,164,103,118,118, 54, 44, 22,139, 51,204,199,143, 31,247,200, - 59,127,254,124,127, 78,230,157, 0,166,117,232,208, 33,180,119,239,222,216,178,101, 11, 70,140, 24, 97,178, 88, 44, 39, 29,207, -132, 22,243,230,205, 83,236,223,191, 31, 81, 81, 81,194,185,115,231, 62, 37,132,176, 1,242, 12, 13, 10, 79, 90, 68,122,230,229, -228,228,204,116, 23, 49,174,144,254, 39,132,172,154, 53,107,214, 16, 87, 81,228,250,219,197,117,114, 21,113,153,174,142,148,171, -136,242, 38,160,220,158,183,174,199,151,120, 20, 90,142,136,245,114,117,129,164,202,215,159,200,242,214,114,116, 71, 88, 88,216, -160,187,239,190,219, 41,114,140, 70,163, 83, 96, 73, 34, 75,250,125,226,196, 9,116,234,212, 73, 30, 22, 22, 54,200,143,208,146, - 68, 28, 26, 55,110,140,210,210, 82, 28, 58,116, 8,201,201,201,176, 90,173, 88,187,118, 45, 42, 43, 43, 33, 8, 2,228,114, 57, - 44, 22,223, 67, 22, 50, 50, 50,238, 88,188,120,113,167, 69,139, 22, 93,146, 90,116, 75,150, 44, 1,165, 20,209,209,209,208,235, -245, 40, 42, 42,194,198,141, 27, 97,179,217,160,211,233,144,150,150,166, 24, 58,116,104,247,105,211,166, 9, 0, 94,247, 66,157, - 61, 98,196,136,176,208,208, 80, 60,245,212, 83,212, 98,177,204, 34,132,100,143, 24, 49, 98,234, 19, 79, 60, 17,149,151,151,103, -126,232,161,135,246, 88, 44,150,119, 28,149,160, 64, 41,181,250,105, 81,120,117,178,172, 86,171,148,166,185, 53, 53, 53,104,212, -168, 81,178,159, 49, 92, 0, 32,223,190,125,123, 54, 0,217,244,233,211, 85, 0,138, 92, 69,150,217,108, 70, 77, 77, 13,106,107, -107,173,149,149,149,197, 47,188,240,130,237,203, 47,191,148, 57,206, 57,234, 73,104, 1,183,155,111,185, 69,171,160, 84,246,202, -130, 5, 11,116, 3, 7, 14,228,116, 58, 29,170,171,171, 67,255,183,102,141,174,111,239,238,105, 51,115,222, 94, 23,154,216,166, -104,251, 47,103, 80, 80, 88, 9,179,213,138,180,248,176,203,126, 24, 67,131,195,241, 34,139,211,209,114, 21, 21, 91,182,108,193, -237,183,223,238, 44,235,114,185,188,142,243,229,143,147,231,121,220,126,251,237, 87, 56, 60,155, 54,109,242,232, 62,249,131,171, - 40,114, 23, 71,158, 4, 24,199,113,240,215,251, 44,185,121,158,196,150,171,171,239, 38,222,252,181,246,193,243, 60,158,120,226, - 9, 8,130,128, 23, 95,124, 17, 60,207,163,125,251,246,224,121, 30, 89, 89, 89, 16, 4, 1,125,250,244,169,119,220,119,237,218, -133, 14, 29, 58, 56,195,212,190,125,123,116,238,220, 25, 60,207,163, 71,143, 30, 16, 4, 1, 3, 6, 12, 8,132,243,229,234,234, -234,182, 58,157, 14, 39, 78,156,128, 76, 38, 3, 33,228, 20,165,180, 45, 0, 60,252,240,195,167,245,122,125, 83,163,209,136,135, - 31,126,152,152,205,230, 54, 47,190,248,226, 43, 0,152,208, 98,104, 48,184,107, 17, 23, 24, 38, 77,154,244, 50, 33,100,149,228, - 80,185, 59, 79,158,126,123,168,155, 36, 49, 36,117,237,117,118, 19,113, 82,183,223, 96, 31,231,154,221,132,149,123,215,225,222, -128, 29, 45,169,242, 13, 84,104,249,131,209,104,108, 23, 19, 19,227, 85,100,185,126,154,205,102,164,166,166,194,104, 52,182,171, -239, 67, 35, 62, 62, 30, 22,139, 5,159,124,242, 9,228,114, 57,228,242, 63,244,133,217,236,219, 44, 58,114,228, 72,238,174, 93, -187, 58,116,236,216, 49,226,187,239,190, 43,185,237,182,219,162, 7, 14, 28, 8,181, 90, 13,131,193, 0,171,213,138,174, 93,187, - 34, 35, 35, 3,249,249,249,248,223,255,254, 87,154,158,158,222,104,247,238,221, 98, 97, 97,225, 89, 31,212,253,251,246,237, 11, - 66, 8,214,172, 89, 83, 74, 41,221,171, 82,169,126,156, 49, 99, 70,132,217,108, 22,199,142, 29,123,174,188,188,252,105, 0, 22, -165, 82, 57,119,192,128, 1, 89, 50,153,236, 11,187,221,254, 65,125, 51,170,123,218,214,214,214, 66,165, 82, 5, 50,149,132, 80, - 94, 94,222, 26, 0,180, 90,109, 36,128,211,206, 28,110, 48,212, 17,195,102,179,217, 24, 25, 25,169, 5, 0,199, 57,130,151,251, - 17,173,209,104,150,159, 61,123, 38,196,117,252, 92,120,120, 56,238, 27, 51,134,235,150,157,173,104,219,174,221,128, 87,223, 91, -180,180,113, 84,168, 57,173,113, 20,172,118, 43, 54,172, 91, 43, 82,209,186,142, 85, 59,127,142,208,146,196,134,187,163, 37, 8, - 2, 54,111,222, 92,139,213, 63, 0, 0, 32, 0, 73, 68, 65, 84,124,197, 62,185, 92,142,255,252,231, 63, 1, 9, 3, 73, 84,121, -235, 58,115,235,234, 34,254, 4,140, 32, 8,144,201,100,248,248,227,143, 33,138, 34,158,121,230,153, 58,221,137,174,252, 1,118, -129, 56,207,201,152, 42, 2, 48, 35,255,125,165,243,124,247,240, 58,206, 9,200, 37,155, 55,111, 94, 64,142,214,224,193,131,253, - 10, 87,215, 30, 6,215,112, 29, 60,120,208, 35,239,130, 5, 11,252,166,167,221,110,199,234,213,171,157, 34, 85,194,148, 41, 83, - 30, 78, 76, 76,140,221,186,117, 43, 10, 11, 11, 81, 91, 91,139,154,154, 26,116,237,218, 53,173, 95,191,126,191, 20, 22, 22,230, - 29, 57,114,228,110, 86,122, 24,254, 68, 71,203, 52,107,214,172,195,179,102,205,242,232, 88,185, 59, 75,190,156, 39, 23,129,181, - 23,142, 46,195, 73,147, 38,189,140,203,195,106,246, 6,112,174,194,189,235,208,167, 17,228,166, 34,167,121,170,124, 3,233, 62, - 12,208, 78,231, 9, 33, 48, 26,141, 30, 5,150,171, 56,176, 88, 44, 40, 47, 47,135,221,110,191,234,185,190, 60,181,100,253, 9, -173, 67,135, 14,253,243,129, 7, 30,184, 16, 22, 22,214,182,164,164,164, 88, 20,197, 62, 59,119,238,140,230,121, 30,161,161,161, - 8, 13, 13,197,143, 63,254, 8,141, 70,131, 39,158,120,162,216,110,183,111, 9, 9, 9,137, 50, 24, 12,191, 22, 22, 22,190,234, - 85,193, 8,194,128, 30, 61,122, 96,255,254,253,184,116,233,210,122, 66, 72,251, 7, 31,124,240,246,164,164, 36, 50, 99,198, 12, -227,239,191,255,254, 1,128, 98,173, 86,187,120,241,226,197,189, 59,118,236, 24, 50,118,236, 88, 16, 66, 22, 80, 74,141,129,198, -185,182,182,182,142,192,170,170,170, 66,117,117, 53,180, 90,173, 45,192, 52, 19,112,121,172,149, 52,222,202,121,111, 28,110,150, -116,127, 40,207,243,244,242, 33, 84,240,198,167,213,106,167, 47, 90,180, 72,237,254,146,130,221,110, 71, 81, 81, 17, 66, 67, 67, - 49,229,213, 87,229,111, 60,247, 96, 7,153, 46,118, 39,199, 17,152, 45,180,130,138,230,181,181, 69,247,108,101,213,206,159, 3, - 73, 24,220,117,215, 93, 87,116, 23,202,229,114,172, 95,191, 30,195,134, 13,115, 54, 92, 58,118,236,232,183,113, 37, 9,131, 59, -239,188,211,233, 12,173, 93,187,214, 99,183,159,228, 72, 5, 34, 8,165, 99,159,124,242, 73,240, 60,143,127,253,235, 95,120,246, -217,103,193,113, 28,222,127,255,125,112, 28,135,215, 94,123, 45, 96,145,233, 42, 96,242,222,190,252,153,248,108, 21,202,230,199, - 2, 0, 66, 66, 67,165, 8,213,171,238,225,121,222,233,100,181,107,215, 14,130, 32, 32, 43, 43, 11, 60,207, 59,157,172, 65,131, - 6,185,166, 35, 13,132,147,231,121,156, 60,121,210, 25,230,172,172,172, 58, 78, 22,207,243, 24, 60,120,112, 32,193,156, 25, 30, - 30, 62, 45, 35, 35,163,213,236,217,179, 5,153, 76,134,190,125,251,182,120,232,161,135,206, 70, 69, 69, 69, 77,159, 62, 93,227, -225, 28, 53,128,182,173, 90,181,210,178, 82,195,208,128,142,214, 52, 15,127, 69,184,142,185,170, 71, 67,114,149,235,241, 18,135, -187, 56,114, 56,100, 91,252,113,121, 58,215, 31,120, 73, 65,250,178,212, 3, 17, 90, 14,219,217,231,197, 52, 26,205,111,197,197, -197, 89,106,181,186,142,200,242, 36,184,100, 50, 25, 10, 11, 11,161,209,104,126, 11,230, 77,244,215,117,232, 16, 53,207,185, 36, -108,191, 65,131, 6,125,190,126,253,250,248, 13, 27, 54, 96,247,238,221,136,142,142,198,188,121,243, 46, 22, 21, 21,253,147, 82, -186, 62,144,235, 54,109,218,180,181, 78,167,195,246,237,219, 1, 96, 51,128, 7, 31,127,252,113, 98,181, 90, 49,127,254,252, 90, - 0,107,194,195,195, 87, 47, 91,182,172, 67,219,182,109, 21, 27, 54,108,168,218,189,123,247, 79, 1,138, 44,187, 40,138, 87, 8, - 44,215, 52, 13, 9, 9, 9,196,209,178,134,133,133, 29,170,170,170, 26,101, 48, 24,170,148, 74,101, 72, 85, 85,149,201, 85, 96, - 73,252, 60,207, 11, 39, 79,158,188, 0, 32, 45, 44, 44,236, 16, 92,186, 24,235,100, 48,158,239,219,183,111, 95,222,253, 30, 20, - 21, 21,161,176,176, 16, 22,139, 5, 29, 59,118, 36, 50, 98,149,149,159,251,245, 97, 86,205,252, 37,142, 22,149,202,186,244,150, -160,167, 55, 13,215,174, 93,235,252,205,113, 28, 28,175,251,251, 21, 69,235,215,175,247, 57, 96,221,173,235,208,175, 53, 46, 29, -255,225,135, 31, 94, 94,222,194,225,100,113, 28,135, 73,147, 38, 65,169, 84, 98,198,140, 25,152, 52,105, 18,120,158,247,219,117, -232, 42, 96, 82, 94,212,187, 54,142, 46, 23, 10,199,120, 40, 66,136,171,216, 34,129,138, 55, 95,110, 94, 32, 61, 1,174,156,210, -121, 42,149,202,235, 64,120, 55, 78,226, 35,222, 63, 16, 66,206,196,199,199,111,207,202,202, 10,219,183,111, 31,222,127,255,125, -185,201,100,106,178, 97,195, 6,231,117, 61,165, 87,109,109,173,154,149, 28,134,134,112,179,124,252, 93,226, 54,190,138,184,118, -227,249,248,116, 63, 30, 46,251, 92,121, 75,220,158, 99,174,251,221,197,149,251, 53, 92,143, 41,241,234,104,249,171, 44,252, 9, -174, 64, 28, 45,189, 94,255,211,154, 53,107, 58,143, 25, 51,134,247,213,109, 88, 91, 91,139,216,216, 88, 28, 62,124,216,166,215, -235,127, 10,192, 41, 11,154,208,242, 80,169,108,136,139,139,147, 89,173, 86, 52,111,222, 28, 9, 9, 9, 48, 26,141,168,168,168, -144, 5, 42,178, 8, 33,242, 78,157, 58,201, 0,160,162,162, 2,184,252,170,105,139,244,244,116,236,223,191, 31,229,229,229,223, - 2, 24, 56,109,218,180,142, 93,187,118,149, 47, 93,186, 84,255,232,163,143,126,107,181, 90, 95, 15,208,141, 48,219,108,182, 84, -142,227, 44, 21, 21, 21, 5,174,233, 25, 27, 27, 27,169,213,106, 73, 81, 81,145, 53, 16,161,213,182,109,219, 61,231,206,157,195, -244,233,211, 75,102,206,156,153, 94, 93, 93,125,169,178,178,210,230, 42,182,140, 70, 35,215,168, 81, 35,229,252,249,243,213, 0, -208,182,109,219, 61,222,132, 86,109,109,109,146, 70,243, 71,195,216,100, 50,161,176,176, 16,133,133,133, 40, 42, 42, 66,117,117, - 53,210,210,210,160,215,235,147, 89, 53,243,151, 9,173, 58,221,103,174,229,219,245, 65, 94,159,178,238, 42, 96,238,186,235, 46, -231,216, 46,201, 33,147,182,229,203,151,187, 15, 48, 15, 72,104,125,248,225,135,120,242,201, 39,161, 82,169, 48,123,246,236, 58, - 93,135,238,226, 64, 20, 69, 18, 72,220, 83, 95, 50,160,112,110, 36, 4, 65, 64,212,163, 69,117,186,232, 60, 8,142,128,194, 57, -115,230,204,160,116, 29,186,114, 38, 39, 95, 46, 42, 31,127,252, 49, 70,141, 26,133,173, 91,183, 94,117,215, 97,102,102,230,146, - 85,171, 86,133, 29, 57,114, 4, 85, 85, 85, 40, 41, 41,129,201,100, 66,126,126,190,215, 94, 1, 71, 93,174, 98, 37,135,225, 79, -198,222, 63,153, 55,104,215,227,253, 60,192, 3, 22, 90,129, 56, 90, 38,147,105,246, 83, 79, 61,245,120,191,126,253, 34, 67, 66, - 66,112,225,194,133, 43, 68, 86, 77, 77, 13,116, 58, 29, 12, 6, 3, 86,174, 92, 89,101, 50,153,102,251, 19, 7, 86,171, 21, 49, - 49, 49, 40, 45, 45,133,232,101,252, 52,199,113, 80,171,213,168,169,169,129, 55, 81,224,235,129, 97,177, 88, 96,181, 90, 97,181, - 90, 97,177, 88, 80,207,233,157, 52,210,196,175,181,181,181, 0, 80,219,184,113,227,230, 42,149, 10,185,185,185,192,229, 55,251, -250,221,126,251,237, 66, 89, 89, 25,125,232,161,135,182, 81, 74, 31,246, 51, 59,190,121,203,150, 45,169, 0,160, 86,171, 79, 0, - 64,126,126,190,181,162,162,162,142, 83,168,209,104,232,176, 97,195,226, 41,165,216,178,101, 75,170, 92, 46,167,240, 50,231, 21, - 0,227,138, 21, 43,142,132,133,133,125,153,147,147, 51,102,200,144, 33,135, 91,183,110,157, 90, 91, 91, 91,108, 48, 24, 12, 70, -163,145,202,100, 50,121, 68, 68,132,106,221,186,117,167,119,238,220,217, 47, 52, 52,244,203, 21, 43, 86, 28, 1,224,209,121,211, -106,181,249,122,189, 62, 69,186,167,174, 34,171,176,176, 16,148, 82,156, 57,115, 6, 26,141,230, 28,171, 71,254, 58, 72,141, 42, -119,231,197,125, 95,160, 34,203, 85, 24,172, 91,183,206,231, 28, 90,129,114,186,138,162,103,159,125, 22,115,231,206,189,194,209, -154, 49, 99, 6, 0,224,213, 87, 95, 13,120,140,150,228, 94, 21,206,141, 68,220,147,229,117,194, 14, 0, 68, 10, 95, 61,167,116, -227,121, 30,211,167, 79,191, 98,144,186,107,215, 94,128, 93,124,117,194, 89, 92, 92, 12,158,231, 17, 25, 25,137,251,238,187, 15, - 3, 6, 12,112,118, 65,214,151,247,216,177, 99,219, 95,122,233,165, 54,153,153,153,120,243,205, 55,203,195,195,195, 67,254,239, -255,254,143,175,168,168, 32,190, 28, 45, 38,180, 24, 24,130, 32,180,164, 2, 22,232, 91,135,158, 42, 75, 66, 72, 63,215,185, 54, - 40,165,149,132,144,251,250,247,239,255,221,215, 95,127,173,110,218,180, 41,142, 29, 59,134,242,242,114,152,205,102,200,229,114, -196,199,199,163,162,162, 2,159,125,246,153, 65,175,215,223, 71, 41,173,244,197, 9,224,149, 78,157, 58,125,244,238,187,239,170, -218,183,111,143,242,242,114,212,212,212,212,153,197, 58, 52, 52, 20,106,181, 26,123,246,236,193,218,181,107, 13, 0, 94,241,195, -233, 73,205,193, 98,177, 56, 5,151, 63,161,229,198,169,149, 92, 29,189, 94, 15, 0,214,164,164,164, 56, 0, 56,115,230, 12, 0, -228,165,165,165, 77,107,218,180, 41, 89,188,120, 49,165,148,174,245, 36,178,220, 56,203,123,244,232,113, 9, 64,156,217,108,150, - 3, 64,101,101,165,165, 81,163, 70, 49, 74,165, 82, 84,171,213,162, 74,165, 18, 47, 92,184, 96,179,217,108,114, 0,232,209,163, -135, 25, 64, 33, 92,198,130,184,113,138, 0,170, 22, 44, 88, 48,109,236,216,177, 89,217,217,217,153,143, 61,246,216,161,135, 30, -122,136, 75, 72, 72,136,168,174,174, 54,158, 58,117,234,210,123,239,189, 87,189,107,215,174,126,130, 32,156, 93,176, 96,193, 52, - 0, 85,142,115,175,224,180,217,108, 63,109,216,176,225,159, 67,134, 12,225, 11, 10, 10, 80, 84, 84,228, 20, 89, 69, 69, 69,200, -200,200,192,206,157, 59,237, 22,139,101, 67, 61,210, 51, 88, 78, 14,227,188,220, 8,161, 82, 89,247, 38,176,164,198, 84,160,156, -174,162,104,212,168, 81,117, 92, 44,185, 92,142,111,190,249,198, 99,189,225, 97,134,243,126,238,243, 73, 73, 97,122,233,165,151, -234,136,182, 41, 83,166,120, 13,154,191,244,148,120, 42, 63, 78,168,251,214,161,151,114,238, 43,156, 82,221, 41, 8, 2,166, 76, -153, 18,176,163, 5,183, 49, 90,158, 56,165,184,223,118,219,109,208,235,245, 78, 33,235,205,209,242,151,158,118,187,253,201,185, -115,231,210,208,208,208, 91,171,170,170,254,113,238,220,185,133,122,189,190, 75,101,101,165, 79, 71,203,100, 50, 41, 89, 57, 98, -156, 13, 49,151,214, 77, 37,180, 28, 15, 73, 36, 37, 37,213, 89, 59,139,227,184, 58, 91,125,198, 25, 56, 10,238, 58, 66,200,240, -110,221,186,125,241,228,147, 79,134,180,111,223, 94, 72, 73, 73, 65,109,109, 45,114,115,115,113,248,240, 97,219,138, 21, 43,170, -244,122,253, 63, 40,165,235, 2,224, 91, 68, 8, 89, 59,112,224,192,215,186,118,237,250,200,212,169, 83,101, 45, 90,180, 64,101, -101, 37, 34, 34, 34, 16, 19, 19,131,227,199,143, 99,229,202,149,246,210,210,210,143, 0,188, 65, 41, 45,169,111,131,223, 98,177, -224,222,123,239,133, 40,138,248,224,131, 15, 64, 8,169, 79,243,214, 98,177, 88, 40, 0, 82, 90, 90, 10, 0,122,199,236,210, 56, -117,234, 20, 0,156, 77, 77, 77, 13, 1,128, 13, 27, 54, 16, 0,129, 46,233, 67, 93,157,173,140,140,140, 92,247,202, 81,114,178, - 36, 23, 12,254, 23,130, 54,142, 30, 61,186, 88,175,215, 15,124,246,217,103, 95,251,240,195, 15,199,124,248,225,135, 87, 28, 20, - 26, 26,250,229,251,239,191,255,198,232,209,163,139,189,185, 89, 14, 7,239,213,113,227,198,141,254,237,183,223, 66, 84, 42, 21, -106,107,107, 81, 86, 86, 6,139,197,130,180,180, 52, 20, 23, 23, 99,209,162, 69,213, 6,131,225,117, 86, 28,255, 26,184, 10, 3, -111,174,150, 63,145,229,203,213,249,225,135, 31, 60,206, 81, 85, 95, 78,119,177, 17,232,220, 86,190, 26, 69,210,180, 52,158,166, -140,168, 79,189,230,137,151,231,121,188,243,206, 59,206, 73, 91, 61, 57, 89,245,113,180, 36,206,200,200,200,203, 54,185, 99,201, -164,193,131, 7, 95, 53,175, 99, 57,178, 39, 92,174, 49,243,133, 23, 94,152,150,145,145,209, 2,128,210, 53, 13,216, 34, 13, 12, - 12, 65, 22, 90,118,187, 61,191,101,203,150,117, 42, 56,127,139,153, 90,173,214,252, 0, 11,247, 90, 66, 72,218,251,239,191,255, -148, 86,171,237,167,215,235,219, 56, 42,142,223,106,107,107, 55,152, 76,166, 57,245, 89, 4,218, 33,156, 38, 18, 66, 62, 24, 56, -112,224,140, 62,125,250,140,124,238,185,231, 8,165, 20,243,231,207,167,191,255,254,251,114, 0,175, 80, 74,127,191,154, 68,138, -140,140, 60,242,217,103,159,197,126,247,221,119,176, 90,173,152, 51,103, 14, 66, 66, 66,142,212, 35,124,197, 60,207,127,158,157, -157,125,255,206,157, 59, 23, 81, 74,127, 85, 40, 20, 11,187,119,239, 62,110,231,206,157, 75, 40,165,135,121,158, 95,216,181,107, -215,113,123,247,238, 93, 70, 41, 61, 88,143,224, 57,157, 45,155,205,115, 79,163, 39, 39,203, 15,170, 30,120,224, 1,203, 3, 15, - 60,240,220,232,209,163, 63,217,187,119,111,151,138,138,138, 54, 0, 16, 30, 30,254, 91,231,206,157,247,124,253,245,215,199, 29, - 78,150,209,223,189, 33,132, 12,107,211,166,205,183,111,190,249,166, 54, 51, 51,147,111,222,188, 57,242,242,242,112,232,208, 33, -219,167,159,126, 90, 99, 48, 24,238,162,148, 94, 98,197,241,175, 19, 90,148, 82,132,135,135,215,105, 68, 73,175,252,215,183,187, -208,245,193, 44, 45,213,227,206,235,141,211,215,180, 9, 18,116, 58,157,115,114,211, 64,134, 44,136,162,239,249,216, 40,165, 78, - 78,105, 11, 64,100,249,125, 67,208,177, 4, 78,192,156,129, 76,239,160,213,106, 97,181, 90,157,188, 1,188,249, 73,234,121,207, -126, 0,240, 67,243,230,205, 79, 1,104,198,196, 21, 3, 67, 3, 10,173,242,242,242, 78, 13,121, 97,135,144,122,195,177, 5,139, -243,119, 0,163, 9, 33,239,254,252,243,207, 82, 63,194,116,127,235, 37,250,195,177, 99,199,134, 8,130,240,159, 47,191,252,178, - 43,165, 20, 97, 97, 97,187,242,242,242,254,175, 62, 28, 54,155,237, 1, 66,200,227,210, 91,132,102,179,249, 1, 66,200, 83,148, -210, 26,151,255,157,191,235, 27,117, 0, 38, 74,105, 99, 47,255,155,234, 33,178,156,206, 22, 0,243,215, 95,127, 93, 3,224, 23, -252, 49, 79,150,213,177, 25,225,210, 93,232,231,190,108, 36,132, 52,159, 50,101,202, 76,153, 76,214,183,182,182, 54, 65,171,213, -158,183,217,108, 63,233,245,250, 87, 40,165,101,172, 40,254,117, 48,155,205, 5, 45, 91,182,228, 61, 53,160,124, 61,200,125, 53, -172,236,118,123,126,122,122,186,223,198,153, 7,206, 2, 31,249,232,108, 90, 90, 26, 23, 40,151, 4,139,197, 82,236, 43,156,105, -105,105,168, 47,167,191,184,167,166,166,122,140,187, 31, 65, 88,224,163,254,184, 42, 78, 95,233,233, 11, 6,131,225, 82,116,116, -116,141,209,104, 20, 76, 38,147, 96,179,217,234,216,143,106,181,186,132,149, 28, 6,134,107, 20, 90,127,103, 56,132,213,157, 65, -228, 51, 1,184, 63, 8, 60, 70,183,223, 53,190,126,215, 19, 13,225, 8,137, 0,244, 65, 74,195, 82, 0, 15,177, 34,119,253,161, -180,180,244,214, 96,115,150,149,149, 5,189,161, 86, 82, 82,146,213, 0,113,239,116,179,114,250, 66, 65, 65,193,173,172,100, 48, - 48, 4, 7, 28, 75, 2, 6, 6, 6, 6, 6, 6, 6,134,134, 1, 1,208,207,211, 31,245,121,155,128, 16,210,175,190, 23,246,199, -207, 56, 25, 39,227,100,156,140,147,113, 50,206, 27,143,211, 31,247, 13,247, 54, 35,165,180,193, 54, 0,253, 24, 39,227,100,156, -140,147,113, 50, 78,198,201, 56,111,214,141,117, 29, 50, 48, 48, 48, 48, 48, 48, 48, 52, 16,152,208, 98, 96, 96, 96, 96, 96, 96, - 96, 96, 66,139,129,129,225,239, 8, 66, 72,139, 38, 77,154, 28,109,217,178,101, 1, 33,100,124, 3, 95,235,190,172,172,172, 50, -149, 74,181,142, 16,210,130,165, 62, 3, 3, 3, 19, 90, 12, 12, 12, 55,180,200,106,211,166,205,182, 99,199,142,101,108,216,176, -161,113, 66, 66,194,219, 13,121,189, 78,157, 58,189,181,117,235,214,200, 53,107,214,244,143,139,139,219,114, 53, 98,139, 16,210, - 34, 57, 57,249,104,203,150, 45,243, 9, 33,247, 5, 57, 61,198,103,103,103,151, 43,149,202,181, 76, 8, 50,220, 4,229,191, 53, - 33,164, 13, 19, 90, 12, 12, 12, 12, 13, 40,178,118,236,216, 17,101, 52, 26,113,236,216, 49,148,148,148, 28,108,200,107,158, 56, -113,226,210,142, 29, 59,144,152,152,136, 37, 75,150, 68,167,166,166,110,173,143,160,145,194,124,244,232,209,140, 13, 27, 54, 36, -196,196,196,188, 23,204,240,117,233,210,101,198,214,173, 91, 35,214,173, 91, 55, 32, 58, 58,122, 11, 19, 91, 12, 55, 96,185, 87, - 18, 66,238,231, 56,110, 79,235,214,173,127,203,204,204,252,149,227,184,157,132,144, 81,132, 16,254,166, 76, 19,105,137,133,213, -171, 87,111, 6,128,193,131, 7,223,198,178, 10, 3, 3,195, 53, 86,182,153,153,153,153,187,118,237,218,165, 49, 24, 12, 88,182, -108, 25,166, 78,157,106, 45, 47, 47,223, 10,160,214,195, 41,123, 1,252, 59,144,165,183, 8, 33,161, 0, 30, 7,208,217,195,223, -218,200,200,200, 30,211,166, 77, 19,110,191,253,118, 24,141, 70,140, 24, 49,194,120,226,196,137,246,148,210, 19,129, 10, 67,131, -193,128,125,251,246,225,174,187,238, 90,103,181, 90, 7, 6, 43, 93,194,194,194, 14,255,240,195, 15,183, 52,110,220, 24,103,206, -156,193,184,113,227, 74,138,138,138,122,250, 11, 27, 3,195,223,160,204,167, 0,120, 68,167,211, 61,216,171, 87,175,136,187,238, -186, 11, 81, 81, 81,176,217,108, 56,127,254, 60, 86,173, 90,133, 29, 59,118, 92, 48,155,205,115, 1,124, 76, 41,173,240,196,115, - 35,106, 17, 66, 41,197,234,213,171, 41,128, 94,142,200,109,102, 89,134,129,129,225, 26, 43,221, 29,122,189, 62, 75,175,215,163, -186,186, 26, 73, 73, 73, 16, 4,193,227,177,197,197,197,216,190,125, 59,158,120,226,137, 35,133,133,133, 61,125,173,123, 73, 8, -137,232,208,161,195,142,141, 27, 55,182, 8, 9, 9,113,238, 23, 69, 17, 22,139, 5, 86,171, 21, 22,139, 5, 38,147, 9, 38,147, - 9, 10,133, 2,106,181, 26,145,145,145,135, 40,165,109, 2, 21, 89, 7, 14, 28,192,216,177, 99, 75,202,202,202,130, 42,130, 8, - 33, 45, 98, 98, 98,182, 44, 90,180, 40, 58, 45, 45, 13,231,206,157,195,132, 9, 19, 74,207,158, 61,219,131,137, 45,134,191,113, -121,159, 52,124,248,240, 25,177,177,177, 92,235,214,173, 17, 31, 31, 15,147,201, 4,131,193, 0, 74, 41,120,158, 7,165, 20,149, -149,149,216,178,101, 11, 54,110,220,104,186,116,233,210,103, 0,230, 80, 74, 79,186,136,172, 27, 82,139, 56,133,214,224,193,131, - 9,203, 46, 12, 12, 12, 65,170,120,127,171,172,172,108,109, 50,153, 80, 91, 91, 27,208, 57,103,206,156,193,248,241,227,143, 20, - 22, 22,118,243,228,108, 17, 66, 66, 59,116,232,176,123,203,150, 45, 45,140, 70, 35,170,170,252,175, 59,175, 80, 40,160, 82,169, - 16, 21, 21,181,147, 82,154,237,173, 37,222,186,117,235,125, 59,119,238,140, 52, 24, 12, 56,120,240, 32,238,187,239, 62, 75,121, -121,249, 54,120,118,223, 0,160, 28,151,215, 81, 61,235,129, 47, 25,192, 83, 0, 82,188,156,171,141,142,142,238,190,120,241, 98, -121,211,166, 77,161,215,235, 49,106,212,168,242, 19, 39, 78,116,166,148,230,178,220,195,240, 55, 44,239, 39,142, 29, 59,150,110, -183,219, 81, 90, 90, 10,147,201, 4,189, 94,239, 20, 90, 50,153, 12,148, 82,216,108, 54,103,195,104,255,254,253,216,176, 97, 3, - 61,115,230,204, 84, 74,233,116, 73,104,221,136, 90,132,103, 89,132,129,129,161, 1, 48,186, 75,151, 46, 7,255,247,191,255,169, - 20, 10, 5, 86,174, 92,233,181,235, 48, 54, 54, 54,115,225,194,133,169,105,105,105,152, 55,111,222, 45, 35, 70,140,120, 28,192, - 76, 15,156,143,111,220,184,177,133,209,104,196,193,131, 7, 49,110,220,184,220,162,162,162,195,238, 34, 38, 53, 53,181,199,123, -239,189, 39,116,236,216, 17, 85, 85, 85,232,223,191,191, 30,192, 35, 62,194, 58,113,211,166, 77,145, 6,131, 1,213,213,213,232, -213,171, 23,202,202,202,228, 0,250,120, 59,193, 96, 48, 32, 37, 37,165, 5,128, 43,196, 91, 84, 84,212,127,207,157, 59,215, 91, -173, 86,251, 76, 32,139,197,130,252,252,124,132,135,135, 99,213,170, 85,145,205,154, 53,123, 21,192, 3, 44,235, 48,252, 29, 97, - 54,155,241,213, 87, 95,161, 67,135, 14,104,213,170, 21,106,106,106,156,162,203,108, 54, 59, 69, 22, 0,112, 28,135,206,157, 59, - 35, 61, 61,157, 60,243,204, 51,247, 1,152,126, 35,167,141, 36,180,166,177, 49, 90, 12, 12, 12,193, 2,165,244, 4, 33,164,125, -191,126,253,182, 46, 95,190,188,209,160, 65,131,208,172, 89, 51,225,238,187,239,142,174,173,173,237,235,214, 26,142, 24, 55,110, -220,190,243,231,207,167, 58,118,117,246, 66,219, 57, 36, 36, 68, 26,219,148, 91, 84, 84,212,201,189,155, 81,169, 84,174,253,229, -151, 95, 4,133, 66,129,189,123,247, 98,252,248,241,165,185,185,185,254,186,229,194,205,102, 51,100, 50, 25, 0, 32, 63, 63,223, -111,252,206,157, 59, 7, 81, 20, 77,158,254,227, 56, 78,185,127,255,126, 52,110,220,216, 39, 7,199,113,144,203,229,174,187, 42, - 88,206, 97,248,155,194,106, 54,155,209,169, 83, 39,228,230,230, 98,255,254,253, 78,193, 85, 90, 90,138, 11, 23, 46,212, 57,120, -207,158, 61, 56,112,224, 0,122,246,236,233,206,115, 67,106, 17,222, 17,161,215, 87,175, 94,205, 4, 22, 3, 3, 67,176,197, 86, -143, 59,239,188,115,203,162, 69,139,162,147,146,146, 16, 18, 18, 18,234,225,184, 75,132,144,195,130, 32,164, 6,202, 93, 84, 84, -116,216,211, 88,174,184,184,184,246,102,179, 25, 7, 14, 28,192,125,247,221, 87,226, 24,243,229,111,236,211,155,125,251,246,189, -115,221,186,117,145, 42,149, 10,135, 15, 31, 14,164,235, 48, 15,192, 28, 79,127,148,148,148,220,215,179,103,207, 41, 0, 34,189, -156,171, 77, 79, 79,239,190,111,223, 62, 57, 33, 4,121,121,121, 24, 53,106, 84, 57,128,127,177, 92,195,240, 55,197,107,195,135, - 15,255,244,241,199, 31, 15,235,218,181, 43,242,243,243,157,130,171,125,251,246,104,219,182, 45,126,255,253,119,172, 93,187, 22, - 7, 14, 28,128, 82,169, 68,179,102,205, 80,243,238,123,192,123,176, 74, 36, 55,170, 22,113,190,117,200,192,192,192,208, 32,149, - 12, 33, 45,228,114,249, 7,209,209,209,237, 10, 10, 10,158,165,148, 46,113,251, 63, 98,228,200,145,135,151, 46, 93, 26,159,151, -151,135,166, 77,155,174,164,148, 14,245,192,179,130, 82,122,215,153, 51,103,208,173, 91, 55,143,142, 22, 33,100,124, 92, 92,220, - 27,213,213,213,149,122,189,126, 84,160, 3,204, 9, 33, 45,154, 55,111,190,117,229,202,149,141, 52, 26, 13,142, 30, 61,218, 96, -131,225, 91,182,108,185,109,207,158, 61, 81,130, 32, 96,239,222,189, 24, 55,110, 28, 27, 12,207,112, 35,148,243, 16, 0, 47,164, -165,165, 61,255,232,163,143, 42,111,185,229, 22,228,231,231,163,164,164, 4,151, 46, 93,194,174, 93,187, 0, 0, 9, 9, 9, 72, - 72, 72,192,241,227,199,177,125,251,246,170,154,154,154, 7, 40,165,223,221,208,105,195,132, 22, 3, 3,195,159, 92, 33, 39,195, -101,176,248,200,145, 35, 59, 45, 94,188, 56,190,172,172, 12,187,119,239,198,136, 17, 35, 94,161,148,206,244,112,222,203,133,133, -133, 51, 0,224,208,161, 67,238, 99,180,188, 14, 78,175,143, 8, 74, 73, 73,217,186,108,217,178, 70, 81, 81, 81, 56,118,236, 24, - 70,141, 26,117,184,182,182,182,117,176,226,174,209,104,214, 21, 22, 22,246,151,203,229,216,185,115, 39,238,187,239, 62, 54,189, - 3,195,141, 86,190, 99, 0,188,122,203, 45,183, 60,242,224,131, 15,242,201,201,201, 40, 40, 40,192,207, 63,255,140,102,205,154, -225,252,249,243,216,184,113,163,185,164,164,228, 3, 0, 57,148,210,202, 27, 62, 81, 26,114,197,106,176,149,205, 25, 39,227,100, -156, 87, 30,183,246,200,145, 35, 84,130,221,110,167, 5, 5, 5,116,221,186,117, 52, 46, 46,238, 48,128, 80, 79,156, 0, 66, 91, -181,106,117,236,248,241,227,244,220,185,115,212, 98,177, 56, 57,142, 29, 59, 70, 1,108,190,214,112, 2,104,145,144,144, 80,188, -105,211, 38,122,252,248,113, 26, 23, 23,119, 62,152,113, 79, 73, 73, 41, 46, 41, 41,161, 63,255,252, 51,141,142,142, 46, 6,208, -130,229, 37,198,121, 35,114, 58, 26, 82,139, 59,118,236,104,159, 59,119, 46,125,228,145, 71,104,114,114,178, 29,192,127, 1, 36, - 52,164,246,184,222, 54,246,214, 33, 3, 3,195,159, 13,229,174, 93,187,160, 84, 42,157, 59,126,253,245, 87,215,121,180,170,188, - 52, 10,171, 8, 33,221, 6, 13, 26,180,117,238,220,185,173,172, 86,231,208, 14,108,218,180, 9, 0, 76, 65,104,120,158, 32,132, -244, 28, 56,112,224,156,168,168,168,118,133,133,133,175, 5, 51,226,121,121,121,207,182,105,211,102,102,117,117,117, 85,125,186, - 54, 25, 24,254,134, 38, 78, 30,128,177,132,144,183,247,239,223,255, 10, 0, 10,224, 77, 74,233,209,155, 45, 45,152,208, 98, 96, - 96,248,179, 49,254,161,135, 30,114, 31, 44, 30,208,204,240,142,129,243,217,131, 7, 15,118,159, 25,222,235,224,244,171, 17, 91, - 0, 6, 52,208,195,103, 9,128, 37, 44, 11, 48,220, 68,130,235, 48,128,123,110,230, 52, 96, 66,139,129,129,225,207,174,120,207, - 2,152,112, 13,231, 87,193,243, 60, 91, 12, 12, 12, 12,215, 29,216,162,210, 12, 12, 12, 12, 12, 12, 12, 12, 76,104, 49, 48, 48, - 48, 48, 48, 48, 48,252,189, 64, 0,244,243,244, 7,165,116, 67,192, 36,132,244,171,239,133,253,241, 51, 78,198,201, 56, 25, 39, -227,100,156,140,243,198,227,244,199, 93, 31,253,241,183, 64,128,175,113, 18,246,234, 43,227,100,156,140,147,113, 50,206, 64, 56, - 29,141,120,130,203,189, 38,156,244,251, 58,159,142,128, 92,175,113,191, 89, 56,111,202,233, 29, 8, 33,206,196, 34,132,136, 0, - 68, 26,132, 25, 78, 9, 33,210,141, 8, 10, 31, 67, 3, 88,157,151,239, 17,249, 67,143,179,251,196,192,192, 80,175,186, 67,230, -242,176,181, 3,176, 19, 66,112,189,213, 37,193,124,206, 53, 68,220,111,102,206, 27, 5,188,175, 4,147,201,100,235, 26, 53,106, -212,187,180,180, 84,116,236,135, 66,161, 0,199,113, 16, 4,193, 80, 93, 93, 29,122, 21, 55,227,191,177,177,177,227,203,202,202, - 68,142,227,160, 82,169, 64, 8,113,114, 86, 84, 84,132,254,213,137,146,146,146,114,201, 96, 48,232,220,247,171, 84, 42,227,217, -179,103, 67,110,134,138, 82, 46,151, 15,143,140,140, 12, 47, 41, 41,161,210,226,183, 50,153, 76, 90, 8,215, 86, 81, 81,241,121, -160,124,145,145,145,123, 34, 35, 35,195,165,243, 9, 33, 40, 43, 43,171, 40, 42, 42,234, 2, 0,106,181,122,187, 86,171,141,226, -121, 30, 50,153, 12, 50,153, 12,122,189,190,172,180,180,180, 27,123,108,253, 61,177,124,249,114,217,192,132, 9,205,120,106,104, -203,113, 52, 76, 20, 73,165,141,168,127, 93, 91,240,223,211,129,156, 63,114,228, 72, 59, 75,197, 63, 15, 74,165,242,131,216,216, -216, 7,107,106,106,244,132, 16, 74, 8,193,229,199, 0,174,248,180,219,237,249,165,165,165,157,252, 60,108, 5,133, 66,241,126, - 92, 92,220, 56,189, 94,175,119,240, 81, 66, 8,226,227,227,235,240, 1,128,213,106,205, 47, 41, 41,233, 20, 72, 88, 99, 98, 98, - 22,168,213,234,127,232,245,250, 90,135, 48,114,237,161,113,125,152,255, 94, 82, 82,210,195,159, 48, 80, 40, 20,115, 98, 99, 99, -255,233,136, 59, 8, 33, 52, 58, 58,250,154,227, 30, 27, 27, 59,174,182,182,182, 78,220, 99, 98, 98, 60,114,122,139,187, 39, 78, -215,112, 18, 66, 16, 29, 29,125,205,225,188, 30, 57,111,120,161, 5,128, 35,132,172,232,214,173, 91,175,205,155, 55,115,199,142, - 29,227, 50, 50, 50, 96,183,219, 33,138,151,243,117, 98, 98,162,230, 42, 30,224, 11,123,244,232,113,239,150, 45, 91,184, 21, 43, - 86,112,157, 59,119, 6, 33, 4,118,187, 29,118,187, 29,173, 91,183, 86, 95,163, 64,208,241, 60,255,140, 66,161,184,205,102,179, -181, 2, 0, 65, 16,142,154, 76,166,205, 54,155,109, 54,165,180, 38, 16, 30,139,197,162, 41, 46, 46,190, 34,109,210,210,210, 20, - 87, 27,182,208,208,208, 29, 28,199,165, 57, 19,216, 33, 56, 60, 21,102,233,147, 82,122,166,164,164, 36,219, 27,103, 68, 68,132, -147,211, 27,135,251, 62, 81, 20,207, 20, 23, 23,103,251, 17, 89, 35,122,244,232, 17,182, 97,195, 6,114,254,252,121,162, 86,171, - 33,138, 34,236,118, 59,172, 86, 43,110,185,229,150,122, 77, 11, 18, 30, 30, 30, 58,105,210,164,102,119,220,113, 7,190,249,230, - 27,220,127,255,253,232,222,189,251, 73,233,127,173, 86, 27,117,228,200,145,244,200,200, 72,232,245,122, 84, 86, 86,162,127,255, -254,127,251,194,213,181, 67,210,155,132, 35,206,185,162,168,205, 94,190,235,151,130, 87,175,149, 55, 60, 60,252,128, 66,161,136, -149,238, 43,199,113, 30,239,181,235, 62,163,209, 88, 84, 90, 90,218,193, 79,249, 73, 1,112,167, 76, 38,107,206,243,124, 75, 0, - 41, 54,155, 45, 22, 0,228,114,121,145, 76, 38,203,179, 90,173,199,205,102,243, 41, 0, 63, 56, 38, 36,244,136,129, 9, 19,154, - 17,155,126,100,181, 73, 28,164,105,154,211, 66,255,251,164, 19, 26,165,254,199,129, 9, 19,150, 7, 42,182,254,194,134, 70, 11, - 0, 95,227,242,130,210,143, 56,230, 1,186, 22,190, 4, 0,119, 1,104, 33,151,203, 83, 45, 22, 75, 41,128,253, 0, 54, 80, 74, - 79, 18, 66,146,163,163,163,151,136,162,104, 42, 43, 43,155,224,105, 25,161,172, 78, 77,246,113, 28,151, 8,135,140, 16,169, 61, -127,231,190,243, 65,121, 64,201,100,178, 57,119,223,125,247, 63,151, 47, 95,174,217,191,127,191,166, 85,171, 86,206,250, 73, 20, - 69,184, 27, 17,169,169, 62,215,254, 38, 0,120,142,227, 62, 24, 57,114,228,152,197,139, 23,107,206,158, 61,171,105,220,184,177, -147,211, 85,196, 73,104,220,184,113, 64, 97,141,138,138,250,239, 29,119,220, 49,118,209,162, 69,194,202,149, 43,213,141, 26, 53, - 66, 84, 84, 20,228,114,249, 21,199,118,235,214, 77,244, 67,199,113, 28, 55,103,232,208,161, 99,151, 46, 93,170,217,189,123,183, -166,117,235,214,144,201,100,215, 28,247, 97,195,134,141,249,234,171,175, 52,191,253,246,155,166,121,243,230,224, 56, 14, 28,199, - 93,193,199,113, 28,146,146,146, 2,226,188,235,174,187,198,124,253,245,215,154, 3, 7, 14,104, 90,182,108,233, 76, 79,151,110, -187,122,135,243, 58,231,188,113,133,150,195, 70, 93,220,173, 91,183,129,155, 55,111,150, 1,192,129, 3, 7, 80, 94, 94,142,132, -132, 4,232,116, 58, 40,149, 74, 24,141, 70, 90,207,202,230,191, 14,145, 37, 0,192,183,255, 24,134, 51, 2,240, 68,177, 25,114, -185, 28,191,255,254, 59,100, 50, 25,189,134,202,172,103,104,104,232,162,239,190,251, 46,162, 67,135, 14, 92,105,105, 41, 82, 83, - 83, 81, 94, 94,222,101,203,150, 45, 29, 39, 76,152, 48,129, 16,114, 63,165,116, 75,160,156, 63,254,248, 35,180, 90, 45, 52, 26, - 13,180, 90, 45,204,102, 51,185,234,132,230,249,196,188,188,188, 24,157, 78, 7, 81, 20,157,155, 91,255,182, 19,162, 40, 34, 61, - 61,221,226,167,130, 76, 60,123,246,108,140, 90,173, 6,165,180, 14,159,221,110,135, 82,169,116,109, 57,192,110,183, 35, 45, 45, -205,226,207,201,146, 68, 22, 0,124,249,229,151,136,139,139, 67, 76, 76, 12,180, 90, 45,212,106,117,157, 7,123,128, 21, 57, 6, - 14, 28,136,215, 95,127, 29, 57, 57, 57,120,225,133, 23,234, 84,180,130, 32, 32, 50, 50, 18,107,214,172, 65,104,104, 40,146,147, -147, 33, 8,194,223,223, 25,228, 72,228,206,125,231,156, 14,237,237,125, 50,248,174, 29,147, 63,116,220, 97,112, 28, 32,138,151, - 31,157,132,128,218,172,226,165,189,191, 22,188, 22, 64,122, 54, 62,123,246,108,140,235,204,234,190, 96,183,219,145,144,144, 32, -243, 83,126, 6,101,102,102,126,251,216, 99,143,201,155, 55,111, 78,228,114, 57,120,158, 7,207,243, 82,126, 76,166,148, 38,139, -162,216,171,168,168,136,206,155, 55,239,109, 66,200,221,148,210, 31, 61,230,119,106,104, 91,109, 18, 7,109, 61,136, 46, 35,251, -189,132, 53,203, 38,117,233,209, 94, 68,136,198,112, 26,192,117, 43,180, 8, 33, 45, 50, 51, 51, 15,238,222,189, 91,101,177, 88, -208,181,107,215, 93,132,144,142, 87, 51,131, 59, 33, 36, 2,192,123,147, 39, 79, 30,251,216, 99,143,201,194,195,195,161, 80, 40, - 80, 93, 93,141,211,167, 79,143,251,252,243,207, 41, 33,228,223, 0, 66,242,242,242,178,246,236,217,131,222,189,123, 63, 5,224, -153, 43, 21,129, 44,113,251,158,220, 24,233,247, 93, 3,219,200,179, 59, 39, 23, 93,110,144,185, 31, 77, 33,218,197,252,221, 7, -243, 59, 5, 16,198,183,135, 15, 31,126,223,242,229,203,117, 0, 48,127,254,124, 12, 31, 62, 28,145,145,145,208,104, 52,144,203, -229, 16, 4,161,206,167, 31,135, 72, 6,224,237,123,238,185,103,228,226,197,139, 67, 0, 96,241,226,197, 24, 54,108, 24,162,162, -162, 16, 18, 18, 2,133, 66, 1,153, 76, 86,239,123, 19, 21, 21,245,223,238, 93,186, 60,176,104,209, 34, 0,192, 43, 79, 63,141, - 59,110,189, 21, 58,141, 26, 26,181, 2, 82, 90, 40,100, 2,110,127,226, 73,127,241,230, 0,188, 59,124,248,240,209, 75,151, 46, - 13, 1,128,253,251,247,163,184,184, 24,177,177,177, 80,171,213, 80, 40, 20,206, 56, 19, 66,160, 86,171, 3,138,251,240,225,195, - 71,126,245,213, 87, 33, 0,176,112,225, 66, 12, 28, 56,208, 25,119,165, 82, 9,185, 92, 94,103,115, 23,157,158, 56,239,190,251, -238,145, 95,127,253,117, 8, 0,124,254,249,231,232,215,175, 31, 34, 34, 34,156,233, 41,113,213,231, 30, 93,207,156, 55,180,208, -146,198, 78,197,198,198,142,222,186,117, 43,231, 34, 18,160, 84, 42,161, 84, 42,161, 80, 40,156,221,135,245,168,112, 72,108,108, -236,248, 45, 91,182, 56, 79, 50,211, 43,172,235,122, 63,192, 93,248,251,245,238,221,251,171, 85,171, 86,169,228,114, 57, 12, 6, - 3, 14, 31, 62,140,176,176, 48, 40, 20, 10, 12, 29, 58, 84,214,173, 91,183,168, 94,189,122,125, 67, 8, 25, 19,200, 27, 13,148, - 82,232,116,186, 58, 66,235, 90,187,152,213,106, 53, 86,174, 92, 9,153, 76,230,177, 2,115,253, 30, 19, 19, 19, 72,188,161, 84, - 42,177, 99,199, 14,200,100, 50, 8,130, 0,158,231, 33, 8, 2, 86,175, 94,141,231,158,123, 14,165,165,165, 32,132, 64, 16, 4, -132,132,248,237,245, 36,145,145,145,225,146,200,146, 68,144, 90,173,134, 32, 8,132,231,121, 34,117,237, 17, 66, 72,160,125,238, - 28,199,225,139, 47,190,192, 91,111,189,133, 23, 95,124, 17, 11, 22, 44, 64,219,182,109, 93, 69, 40,170,170,170, 16, 17, 17,129, -136,136, 8,168, 84,170,171,206, 11,215, 19,220, 83,231,253,217,115, 53, 16, 41, 46, 15, 2, 17, 1, 17,160,160, 16,169,136,162, -130,211,152,250,250, 59, 1, 63,125,148, 74, 37,182,111,223,238, 20, 67, 60,207,131, 16, 2, 87,129, 36,109,113,113,113,126,249, -228,114,249,180,239,191,255, 94,241,197, 23, 95, 96,233,210,165,206,188,165,213,106, 17, 30, 30,142,168,168, 40,231,150,152,152, - 72, 62,253,244, 83,121,219,182,109,167, 1,248,209,243, 61,167, 97,154,166, 57, 45, 70,246,123, 9, 0, 48,242, 37,138, 75, 39, -103,180,227, 42, 94, 11,187,158, 69, 86,155, 54,109,182,237,216,177, 67,165,215,235, 33,138, 34,126,252,241, 71, 77,191,126,253, -182, 18, 66,122,212, 87,108,165,164,164,172,220,177, 99, 71,183,232,232,104, 84, 86, 86,162,170,170, 10, 86,171, 21, 50,153, 12, -201,201,201,120,251,237,183,201,208,161, 67, 39,142, 27, 55,206,168, 86,171, 37,103, 35,197, 91,125,228,138,121,255,250, 48,156, -210,203,249,135,138,180,206,103,121,113, 30,158,126,118,106, 64, 97, 76, 74, 74,122,228,155,111,190,209,185, 58, 75,174, 34,192, -181,142,146, 54,111,194,192,225,106,112, 77,154, 52,121, 96,201,146, 37, 78,206, 70,141, 26, 57,235, 37,158,231,193,113, 28,182, -110,221,138, 89,211, 38, 35, 34,186, 49,230,254,107,190,223,112,186,213,201,155, 0, 0, 32, 0, 73, 68, 65, 84,198,196,196, 44, - 24, 52,104,208, 63, 22, 46, 92,232,220,215,166,105, 83, 12,238,118, 43, 98, 26,133,162, 81,196,229,186,141,138, 4,191, 30,207, -245,251, 60, 2,192, 37, 37, 37, 77, 88,182,108,153,206,181, 65, 40,197, 21, 0,244,122,189,211,197, 55,155,205,232,212,169, 83, - 64,113,119,229,148,220, 54, 73,180,185,215,245, 82, 67,198, 23,103, 82, 82,210, 3,146, 16, 6,128,200,200,200, 58, 28,130, 32, - 96,217,154, 69, 87, 60, 27,174,149,179,190,247,221,157, 51, 47, 47, 15, 51,103,206,116,214, 73,146,171, 71, 8, 65, 66, 66, 2, -230,206,157,235,139,211, 19, 58, 3,136,118,249,109, 6,160,112,249, 44,193,229, 21, 38,220,143,147,246, 11, 0,218, 57,254,179, - 3,168, 6, 16,238,129,207, 27, 79, 41, 46, 47, 35, 20,237,118,188,251,117, 60, 11,173,213,171, 87, 83, 0, 88,185,114,101,239, -187,238,186,107,123,105,105,169,120,236,216, 49,110,255,254,253, 16, 4, 1, 49, 49, 49,232,220,185,179,212,173, 6, 65, 16,160, -213,106, 73,120,120,120,145,244,224,149, 18,209,181,175,221, 69,208,112,229,229,229,226,250,245,235,185,197,119, 15,128,153, 2, -237,167,204,194,192, 33, 67,176, 54, 65, 1, 25,128, 46,199, 74,161,209,104,120, 65, 16,172,210,205,144, 56, 93,199,110,185,139, - 36, 66, 72,136, 86,171,253,244,135, 31,126, 80,113, 28,135,234,234,106,136,162,136,110,221,186,129,227, 56, 28, 58,116, 8,175, -188,242, 10,190,253,246, 91,124,255,253,247,234, 14, 29, 58,124, 74, 8,105, 69, 41,173,118,169,196, 54,120,202,164, 33, 33, 33, -208,104, 52, 78,161, 37,197,217,213, 2,151,142,167,148, 22,148,150,150,118,244,197,105,183,219, 49,108,216, 48, 16, 66, 32,147, -201,234, 84, 62,174,159,114,185, 28,135, 14, 29,186, 34, 19,122, 18,136,162, 40,162,123,247,238, 0, 0,141, 70, 3,157, 78, 39, -173,251, 6, 0,104,223,190, 61,204,102, 51, 26, 53,106,132,163, 71,143,122,170,192,235,112,150,148,148,208, 11, 23, 46,144,197, -139, 23, 67, 16, 4, 68, 69, 69, 65,163,209,144, 69,139, 22, 77,150,203,229,137, 70,163, 81, 52,155,205, 80, 40, 20,115, 37,119, -139,231,249,218,202,202,202, 40,111,156, 50,153, 12,143, 61,246, 24,158,127,254,121, 44, 88,176, 0, 15, 63,252,240, 21,142,151, -209,104, 68,163, 70,141,156, 98, 43,144,184, 95,187, 16,106, 96, 78,145,226,240,129,181, 56,242,219, 6,136,118, 17,118,145,130, - 82, 59, 68, 27,176,127,253,174,244,139,103, 46, 36, 80, 80,192,209,193,161,172,172,177,245,106,164,108, 9, 96,197,166, 82,211, - 7,254,242, 39,207,243,176, 90,173,248,225,135, 31,112,250,244,105,172, 91,183, 14, 6,131,193,153,142, 89, 89, 89,120,224,129, - 7, 60, 10, 45,119, 78, 74,233,194,243,231,207,183,239,222,189, 59,169,168,168, 64, 69, 69, 5, 12, 6, 3,236,118, 59,108, 54, - 27,120,158,135, 74,165,130, 90,173, 70,108,108, 44,140, 70, 35, 53,153, 76, 11,189,113,138, 34,169,212,255, 62,233,196,154,101, -147,186,140,124,137, 98,249, 91, 4,205,154, 40,245, 63,237, 11,121, 96,197,182, 23,250, 3,160,162, 67, 59,112, 0,181,218,197, -210,231, 39,191, 55,241, 79,191, 71, 87,138,172, 40,131,193,128,234,234,203,213,131, 66,161,192,242,229,203, 27,221,121,231,157, - 91, 8, 33, 61,189,137, 45, 79,156, 33, 33, 33,201, 50,153, 12,135, 14, 29,194, 71, 31,125,132,159,126,250, 9, 69, 69, 69,151, - 26, 55,110, 28,214,171, 87, 47,238,233,167,159, 70,251,246,237,241,217,103,159,169,252,113, 82, 74,145,119,114, 43,242, 78,109, -131, 40, 82, 23, 87,220,243,119, 26, 96,220,107,107,107,141, 7, 15, 30,212,125,242,201, 39,136,137,137, 65,106,106, 42, 52, 26, - 13, 84, 42, 85,157,135,172,235,131,215, 95,217, 52, 24, 12,198,188,188, 60,221, 87, 95,125,133,168,168, 40,164,164,164, 64,163, -209, 64,161, 80, 56, 27, 4,139, 23, 47,198,151,175,223,135,188,227,191, 97,216,224,254,126,195,169,209,104,254,177,112,225,194, - 58, 22, 72,108, 68, 4,120,129,131, 76, 32,136,232,123, 55, 0,224,210,207,223,121,157, 29,210,141,147, 84, 87, 87, 27,119,239, -222,173,219,183,111, 31, 68, 81, 68, 74, 74, 10,244,122, 61, 66, 67, 67,157,241, 95,191,126, 61,134, 14, 29,138, 47,190,248, 2, - 89, 89, 89,126,227, 94, 83, 83, 99,252,237,183,223,116, 75,150, 44, 65,100,100, 36,146,146,146,156,113,151, 54, 65, 16, 32,147, -201,144,150,150,134,202,202, 74,232,116, 58,191,247,104,255,254,253,186, 37, 75,150, 32, 34, 34, 2,137,137,137, 78,199, 77, 18, - 71,111,125,248,122, 29, 14, 21,137,191,102,206,250,222,119,119,206, 97,195,134,161, 89,179,102, 8, 13, 13,133, 86,171,117,114, -251,226,148,180, 8,128, 94,131, 7, 15,222,236,118, 11,163, 9, 33,171, 92,174, 63,132, 16,178,202,245,211,219,113,142,175, 61, - 39, 79,158,220, 41, 39, 39,103,102, 86, 86,214, 87, 59,118,236,248,210, 27,159, 55,158,201,147, 39,103,230,228,228,204,116, 61, -222,195,117,188, 59, 90,131, 7, 15, 38,142, 72,242, 0,144,145,145,129,242,242,114, 40,149, 74,116,238,220, 25,165,165,165,208, -233,116,144,203,229,160,148, 98,226,196,137,178, 23, 94,120, 33,134,227, 56,216,108, 54,103,197,239,165,175, 93,228, 56, 14,217, -217,217, 56,236,232, 17, 26, 56,100, 8, 18, 19, 19, 33, 13,242, 80,169, 84,152, 56,113, 34,121,238,185,231,120,201,205,160,148, -194, 96, 48, 32, 62, 62, 94,237,163, 75,238,233,111,190,249, 38, 76,178,228,165,174, 51,153, 76,134, 99,199,142,225,221,119,223, -197,184,113,227,112,238,220, 57, 52,110,220, 24,207, 63,255,188, 46, 39, 39,231,105, 0,111,248,171,144,117, 58,157, 83,100,105, - 52, 26, 60,253,244,211,124,183,110,221, 98,116, 58, 29, 66, 66, 66, 32,117, 3,218,237,118, 52,109,218,212,175, 52, 23, 69, 17, -107,215,174, 5,207,243,126, 29, 45, 71, 6, 12,136,115,247,238,221, 78,145,230,218, 74, 34,132,224,240,225,195, 78, 81, 23, 0, - 39,229, 56, 14, 90,173, 22,113,113,113, 80,171,213,208,104, 52,228,171,175,190,122, 53, 53, 53, 53,254,185,231,158,227,170,170, -170,184,236,236,108, 12, 31, 62,156, 23, 69, 17, 22,139, 5,153,153,153,126,157,183,205,155, 55,227,163,143, 62,194,195, 15, 63, -236,209,209,146, 6, 75,134,134,254,229,239, 66, 4, 13, 34, 0,139,205, 10,125,141,193,217,181,107,183,219,241,219,166, 95,210, -207,252,114, 50,115,213, 87, 95, 8, 0, 96,220,244,157,235,105,241,195, 63,252,186, 69,175, 72,249,238, 77,229,150,221,254,156, -194, 39,159,124, 18,175,189,246, 26,238,185,231, 30,172, 95,191, 30,175,188,242, 10, 38, 76,152, 80,199,209, 10, 4, 86,171,245, - 63,247,223,127,255,195,203,151, 47,111,249,210, 75, 47,113,146,163,165,209,104,164, 49, 94, 48,153, 76, 48, 24, 12, 56,126,252, -184,248,208, 67, 15,157, 48,155,205,255,241,198,103, 35,234, 95, 53, 74,253,143, 77, 19,185,102,181,185,239,132,116,191, 53,197, - 64,212, 29, 43,239,110,209,143, 14, 26,159, 18, 1, 74, 65, 69, 64,164,128,201, 84,139,137, 19,159,146,253, 85,247,201, 85,100, - 25,141, 70, 28, 60,120, 16,189,123,247,198,249,243,231,113,244,232, 81,164,167,167, 99,209,162, 69,209, 99,198,140,241, 41,182, -220,241,219,111,191, 77,110,215,174,221,156,154,154,154,242,154,154,154, 57, 0,190,164,148, 86, 16, 66, 90,157, 62,125,122,222, -218,181,107,123, 76,157, 58, 85,230, 54, 70, 71,230,205, 30,181, 90,109, 48, 24, 76, 62, 5,150,244,155, 82, 49,208,184,211,150, - 45, 91,226,206, 59,239,132, 32, 8,206,198,154,107,183,153,187,224,242, 85,127, 0, 16, 9, 33,104,220,184, 49, 6, 13, 26, 4, -185, 92, 94,135, 83,122,176, 14, 26, 52, 8, 79,190, 49, 5,255,121,178, 15, 62,186, 63, 29,253,222, 44,242, 25, 78,189, 94, 95, -179,113,227, 70,245,243, 15, 63,140,118,205,155,163, 81,104, 40,154,196, 70, 67,173, 84, 64,238, 26, 38,226,223,100,167,148, 82, - 66,136, 40,147,201,208,186,117,107, 20, 21, 21, 33, 55, 55, 23,185,185,185,224, 56, 14,221,187,119,119,186, 48,167, 78,157,194, - 27,111,188, 1,147,201, 20,112,220,155, 55,111,142, 62,125,250, 64,161, 80, 64,163,209,212,233, 50,148,210,180,186,186, 26,205, -154, 53,195,138, 21, 43,208,162, 69, 11,191,156, 25, 25, 25,184,237,182,219,234,164,167, 90,173,118, 62, 55, 0,224,252,238, 26, -231, 53, 18, 18, 18,234,197,185,110,207, 57,124,178,126, 35, 76,102, 17, 85,122,107,157, 19,226, 27,133, 98,219,146,151, 2,138, -187,196,249,241,199, 31,163,162,162,194, 89, 7, 73,166,137,100, 82, 36, 37, 37, 97,254,124,207, 78,166,139, 22, 33, 94,238,223, -144, 0, 27, 84,210,113, 82,230, 82,230,228,228,204,116, 63,223, 31,159,235,255,110,231,155,221,196, 89, 81, 64, 93,135,210,243, - 65, 42, 12, 9, 9, 9,144,198,129, 72, 5,197, 89,145,218,108,248,246,219,111, 17, 19, 19,227,220,194,194,194,188,102,108,105, - 28,209,147, 37,151,135, 8,173,105, 44, 71, 30,128,193, 37,212, 57,142,196,110,183,227,155,111,190,129,171,144, 9, 9, 9,241, -217,141,164, 80, 40,122,117,238,220,153, 51,153, 76, 87,136,172,156,156, 28,140, 25, 51, 6, 45, 90,180,128, 40,138,168,169,169, - 65,239,222,189,133,185,115,231,246,170,143,208,210,104, 46,143,251, 55,155,205,216,180,105, 19, 34, 34, 34, 16, 21, 21,133,200, -200, 72,132,132,132, 72,111, 78, 82,127, 98,131, 82,138, 97,195,134, 57, 51,159,171,139,229, 46,186,118,236,216, 17, 80,151, 28, -165, 20,183,222,122, 43,180, 90, 45,116, 58, 29,116, 58, 29,214,174, 93,235, 60,166, 75,151, 46, 16, 69, 17, 49, 49, 49,216,185, -115,167,207,238, 79, 74, 41,149,203,229,206,227, 5, 65, 32,139, 22, 45,154,156,150,150, 22,255,236,179,207,114, 50,153, 12, 7, - 14, 28,192,145, 35, 71,144,146,146, 18,240,152,173,138,138,138,139,147, 39, 79,182, 79,158, 60, 25, 0,144,153,153,137,138,138, -138, 98,233,255,170,170,170,178, 1, 3, 6,212, 25,183, 81, 90, 90, 90,246,255,236, 93,119,120, 20, 85,251, 61,119,182,239, 38, -217,108,122, 33, 16,186, 8,136, 20, 65,248,232, 37,128,116,148, 46,136, 8, 40, 69, 84,252, 40, 34,242, 83, 64, 66, 47, 74, 85, -228,163, 40, 18,154, 32, 69, 32,210,155, 8, 8, 72,139, 68, 32, 36,164,215, 45,217, 58, 51,247,247, 71,118,227,102,179, 73, 54, - 33, 34,224,156,231,153,103,119,218,153,123,103,238,189,115,230,189,239,125,239, 83, 47,180,120, 30,172,149, 69,190,201, 4,189, - 46,191,208, 58,148,158,156,166,153,246,225, 7,146,197, 19,223, 4, 0,124,184,124, 37,116,235,254,106,200,118,127, 56, 36,184, -255,146,109,211, 1,244, 45,227,229, 3,179,217,140,200,200, 72, 92,184,112, 1, 58,157, 14, 93,186,116, 41, 98, 49,117,220,211, -178, 76,244,148, 82, 11, 33,164,117,175, 94,189,126, 93,182,108, 89,173,250,245,235, 19,131,193,128,252,252,124, 56,255, 94,187, -118,141,110,221,186,245,110,126,126,254,127, 40,165,150,146,248, 14, 61,252, 38,190, 91,149,183,118,252,124, 89,212, 43,184,118, -156,250, 97, 78, 45, 54,235,161,220,160, 53,222, 54,113,244, 6, 40, 7,112,224, 65, 89, 30,156,189,219,235,159,130, 82,169,252, -242,244,233,211, 1, 38,147, 9,151, 46, 93,194,240,225,195, 45,153,153,153, 50, 0,120,253,245,215, 45, 91,182,108,145,213,174, - 93, 27,155, 55,111, 14,122,245,213, 87,183, 3,120,193,195,134,254, 91, 0,223,186,110, 15, 8, 8,248,226,193,131, 7, 29,156, -125,126, 28, 31,171, 0,220,126, 84, 82, 30,176,217,108, 48, 26,205,200,203,211,193, 98,181,217,219, 76, 30, 28,199,218,127,121, -176,246,118, 84, 38, 21,251, 52,107, 20,166,167,148,130, 33, 36,247,226,181,148,170, 37,181, 75, 37,117,113,121, 98,205,114, 3, -206, 49,202, 44, 32, 32, 0, 18,137, 4,223,126,251, 45,174,158, 57, 4,153,136,130, 99,109, 96,109, 86,112, 54, 11, 36, 34, 17, -126,190,124, 15, 81,207,151, 61,144,155, 16, 66, 3, 3, 3,209,179, 85, 43,244,106,213,170, 96,120,155, 88, 12,111,185, 28, 42, -169,162,192,146, 5,128,114, 12,224, 89, 81,226, 29,233, 12, 9, 9,193,197,139, 23, 49,105,210, 36, 44, 88,176, 0, 74,165,178, -112,244,243,173, 91,183, 16, 19, 19,131,168,168,168,114,231,221, 97,193,155, 62,125, 58,146,147,147,177,124,249,114, 52,107,214, - 12, 18,137, 4,185,185,185,248,207,127,254,131,180,180, 52,143, 56,157,187,247,100, 50, 89, 17,235,147, 67, 0,150,247, 25, 57, -115,190,217, 47, 12,123,207,108, 5, 1,193,249,239, 62, 40,242, 46, 90,179,237, 84,185, 57,103,205,154, 85, 36,157,158, 88,179, -202,241, 97,180,207, 19,177,229,116,220, 37,135,177,117,250,244,233, 51, 8, 33,251,166, 79,159, 62, 35, 58, 58,250,186, 39,124, - 37,236,223,239,208,133, 78,219, 46,121, 44,180, 40,165, 84, 38,147,129,231,249, 34,226,202,213,241,214, 97, 10,116, 54, 53,150, - 37, 10,120,158, 47, 44, 20,174,159,109, 34,145, 8,231,206,157,195,185,115,231,138,108, 95,191,126,125,169, 47,114,150,101,235, -251,248,248, 20,177,102, 73,165, 82, 76,159, 62, 29,195,135, 15, 47, 20, 89, 82,169, 20, 27, 55,110,196, 75, 47,189, 4,139,197, - 82,191, 12,127,149,252,208,208, 80,198,209, 16,121,121,121,145, 73,147, 38,137, 88,150, 45,188, 39,142,197,225,187, 86, 86,161, -113,140, 98, 57,124,248,176, 71, 22, 45, 79,125,148, 40,165,184,114,229, 74, 17,241,230, 24, 53, 3, 0, 87,174, 92, 41,244,223, -242,132, 83, 36, 18,129,227, 56, 40,149, 74, 34,149, 74,137, 84, 42,141,112,136, 44,145, 72, 84,248,188,157,125,246,202,202,251, -195,135, 15, 59,150,182, 63, 61, 61,253,153, 13,227, 96,181,217, 96,204,183, 64,167, 55,226,179,232,255, 21,108,252, 12,191, 0, -248,165,245, 59,147, 48,190, 91, 84, 39, 23, 63, 0, 79, 26,154,194,151,227,206,157, 59, 33,145, 72,176,103,207, 30,168,213,106, -244,233,211, 7,106,181, 26,211,166, 77,195,224,193,131, 61,182,104,217,203, 82, 30, 33,164,245,251,239,191,255,235,162, 69,139, -170, 85,173, 90, 21, 22,139, 5, 86,171, 21, 22,139, 5,241,241,241,216,186,117,107, 98,126,126,126,107, 74,105, 94, 89,124,135, - 30,126, 19,191,235,228,135,201, 93, 6,191,106,188,149,246, 19, 82, 83,179,192,178, 15,193,115, 44,172,108,193, 8,102,142,101, -193,178, 28,164, 82,145,122,209,231, 31, 28,225, 65,193, 48,196, 50, 96,192,128, 87, 30,215, 51,210,104, 52, 13, 51, 50, 50,240, -199, 31,127,224,141, 55,222, 72,205,202,202,186, 9,160, 51, 0,100,101,101,157, 30, 62,124,120,253, 77,155, 54,133,214,168, 81, - 3,222,222,222,106, 15,158,143, 55,128,241, 0,186,218,253, 64, 28,200, 6, 48, 39, 40, 40, 72,126,233,210,165, 98,214,255,147, - 39, 79, 2,192, 47,238, 77, 6,118,139,150,201,132,140,172, 28,140,126,103,102,161, 41, 1,160, 69,196, 5, 5,197,184,119,161, - 0,128,204,180,120,188, 57,122,146,188,172, 15, 2,119, 47,194,114,248,232, 56, 91,138, 10,203,168,183,183,119, 65,247,219,158, -173,216,191,228, 29,128,179,130,218,140,128, 53, 31,176,234,193, 91,242, 65,164, 74,192,102,244, 72,104,121,123,123,195, 91,169, - 68,176, 70, 83, 16, 4, 82, 36,130, 68, 34, 6,111, 3, 8, 71, 10, 5, 41,207,121, 84,214,105, 96, 96, 32,120,158,135, 82,169, -196,253,251,247, 49,126,252,120, 88,173, 86,244,235,215, 15, 22,139, 5, 38,147, 9, 70,163, 17, 53,107,214, 68,126,126,190, 71, -121,119,180,243,142,222,159, 15, 62,248, 0, 47,189,244, 18,102,207,158,141,169, 83,167,162,102,205,154, 24, 55,110, 28,182,110, -221,138,134, 13, 27,150,202,235,124, 63, 29,156,142,231,226,218,197, 7,160,220,207,200,149,179, 96,124, 0,138, 61,247,247, 70, -116, 46, 55,231,252,249,243,145,145,145, 81,204,146,229,248, 95,165, 74, 21,172, 94,189,186,162, 93,255, 14,235, 81,136, 59,131, -152, 27, 75, 84,115, 20,248, 78,153,163,163,163,175, 71, 71, 71,247, 34,132,236,139,142,142,238, 85,138, 69,171,103, 25, 22,175, -158, 40,240,201,242, 8, 98,151,190,209, 14,206,150, 18,199,139,212,241, 66,119,110,228, 85, 42, 21,118,237,218, 5,199, 8, 16, -231, 99, 74, 19, 90, 7,130,236,166, 99,187, 37,203,121,189,119,239,222,168, 81,163, 70, 17,107,150, 82,169, 44,181,240,240, 60, -143,132,132, 4, 92,191,126, 29, 45, 91,182, 68, 94, 94, 30, 36, 12,131, 15,175, 93, 67,131, 17, 35, 96,177, 91,104,100, 50, 25, -222,126,251,109,143, 28,218,239,221,187,231,231,188, 30, 24, 24,152,212,182,109,219, 42, 23, 46, 92, 40,116,144,183,119,171, 21, - 10, 14, 79, 68, 12,165, 20,175,189,246, 90, 17, 43,150,179,200,114, 94,126,250,233, 39,143,186, 14, 41,165,104,219,182,109,161, - 53,203,199,199, 7, 63,252,240, 67,225,179,106,215,174, 93,129, 63, 67, 72,136, 71,156,142,124,216, 29,224, 97, 50,153,120,157, - 78,199, 92,186,116, 9, 50,153,172,208,130,167, 84, 42,161, 80, 40, 32,151,203, 43, 52,130,232,223, 0, 74,121, 88,108, 54, 24, -141, 70,232,245, 5,145, 69,226,127,223, 89, 84,136,153,181, 21,230,119, 88,173,116, 58, 29,126,254,249,103,236,222,189, 27,205, -154, 53, 43,230, 12,239,137, 69,203,169, 60,101, 16, 66,218, 76,153, 50,229,252,220,185,115,195,253,253,253, 97,181, 90,241,224, -193, 3,108,216,176, 33, 57, 63, 63,191, 13,165, 52,195,243,155, 0,216,108, 44, 76,249,102,228,105,117,248,244,243,141, 37, 22, - 61, 0,200, 78,191,141,222,125, 6,202, 30,231,115, 74, 78, 78,158,220,166, 77,155,207,117, 58, 93,110,126,126,254, 64, 0,139, -157, 13,135, 89, 89, 89,109,251,244,233,179,204,223,223,191, 89,122,122,250, 12, 15, 40,167,223,191,127,127, 70,100,100,100,145, -141,118,235,227,115,233,233,233,195,218,181,107,247, 9, 0,127,167,221, 62, 0, 14, 3, 88, 93, 82, 89,114,116, 29,234,245, 70, -168, 53, 97,120,120,239, 68,153, 9,145,138, 76,160, 60, 95,230, 7,160, 59, 43,150,115,251, 84,142,242, 67, 29, 62,129,142, 23, -246, 43,175,141,192, 43,227,231, 67, 37, 1,230,189,217, 26, 53, 53, 0,148,254,144,182,155, 6,162,177,223,163,241, 63,122,196, - 63,117,237, 90, 92,254,163, 32, 50, 76, 68, 80, 16,166, 12, 30, 12,106, 3,206,222,184,129,109,199,142, 97,112,199,142, 80, 41, - 20, 30,127,176, 56, 62,194,227,227,227,113,246,236, 89, 60,255,252,243,184,115,231, 78,145, 48, 20,148, 82,143,242, 79, 41,165, -142, 65, 76,114,185, 28, 18,137, 4,169,169,169,232,213,171, 87,225,135,254,137, 19, 39, 48,101,202, 20,140, 26, 53, 10, 29, 58, -116,112,235, 55,235,202, 25, 20, 20, 84,104, 64,112, 29,168,224,220,157, 91,158,103,228,142,211,129,138, 62,119,103,206,185,115, -231,186, 29, 80,225, 9,167,179, 22, 41, 5,151, 92,172, 73,112,248, 75, 57,132,145,235, 58, 0, 63,199,182,233,211,167,207,240, -244, 60,231,117,135, 69,172, 60, 93,152,133, 66,171,103,207,158,196,221,203,214, 97, 70,118, 7, 47, 47, 47, 76,152, 48, 1,179, -102,205, 66, 96, 96, 96,153,190, 53, 14, 37, 91, 26,126,252,177,120,101,219,179,103, 79, 89, 93,135,183,124,125,125, 95,234,216, -177, 35,242,242,242,144,152,152, 8, 47, 47, 47, 52, 88,178, 4,215,198,143, 71,227,181,107,193,116,234, 84, 24,108,245,218,181, -107, 80, 42,149,183,202,107, 65,240,241,241,129,159,159, 95, 97,159,187, 67,112, 57, 89,180,168, 7,133, 17, 7, 14, 28,112,251, -213, 88, 17, 31, 45, 71, 35,112,254,252,249, 34,254, 89,206,194,231,252,249,243,133, 22, 45,199,105,158,116,121, 41,149, 74,234, -224, 83,169, 84,240,247,247,135, 92, 46,135, 82,169, 44, 34,178, 60,177,230,149, 21,144, 84,169, 84, 94,240,242,242,210, 56,246, - 75, 36, 18,232,116,186,220,172,172,172, 22, 79,117,215, 33, 40, 88, 43, 11,163,209, 4,189,206, 88,233,252,142,129, 41,187,118, -237,194,203, 47,191, 92, 76,100, 57,238,117, 5,190, 24,147, 8, 33, 29, 86,172, 88,241,203,210,165, 75,253,244,122, 61,254,247, -191,255,229,233,245,250, 14,148,210,164,114,113,241, 20, 54,171, 21,249, 38, 51, 12,250,130,123,240,231,245,157, 79,152, 32,166, - 91, 1,108,117,181, 24, 58,237,255, 19, 64,175,114, 80,190, 28, 25, 25,137,212,212,212, 34, 27, 19, 18, 18,192,113,156,217, 30, - 39,235, 45,167,235,137, 40,165, 92, 89,109,135,213,222,117,168,215, 23, 88, 65, 76,134,204,202, 41,167,118,177, 81,146, 79, 86, - 69,186,120, 28, 35,157, 69, 34, 17, 38, 78,156,136,107, 87,175,162,115,184, 22, 53, 67,125, 64,181, 15, 33,237,244,127,184,146, -161,196,226,101, 7,202,205, 29,227, 52,216,103,113, 76,140,219,125,127,246,237, 91,174,188,199,197,197, 65,169, 84,130,227,184, - 98,239,155,242,230,223, 89,192, 44, 91,182, 12, 83,166, 76,193,198,141, 27,113,237,218, 53, 52,110,220, 24, 93,186,116, 65,122, -122, 58,174, 94,189, 10,179,217,236,113, 58,157,253,230,226,238,222, 64,236,217,131, 72, 72,186,135,228,212,196, 10, 63,119,103, - 78, 87,161,181, 43,246, 55,188, 22,213,180, 66,156,159,126,250, 41,210,211,211,139, 88,178,156, 7,144,149,100,209,114,213, 34, - 46,200,116,241,133,114,172, 91, 92, 68,143,235,186,235,241, 0,144, 14, 64, 84,198,121,174,235,153,209,209,209,199, 29,150, 48, - 59,175,168, 44,255, 44,183, 93,135, 14, 81,228,168, 40,174,150, 42,199,127, 47, 47, 47,248,248,248,192,199,199, 7,106,181,186, - 76, 75,145, 67,104,181,189,171, 43,226,235,229,176,108, 1,192,168, 81,163,138, 89,180,156, 3,123,186,131,217,108, 62,113,226, -196,137, 38,189,123,247, 22,221,186,117, 11, 34,145, 8, 60,207,195,210,170, 21, 26,175, 93,139,223, 63,248, 0,237,239,223,135, -201,106,133, 66,161,192,161, 67,135,172,249,249,249, 39,202,219,110, 56, 11, 45, 47, 47, 47,248,250,250, 22, 10, 13, 79, 84,186, -163,242,150,230,255,224, 88,156, 7, 3,120, 82,169, 29, 47, 84,103,191, 28, 66, 8,140, 70, 99,161, 83,167, 39, 86, 71,231,174, - 67,231, 10,200, 48, 12, 52, 26, 77, 97,227,225,176,104,121,106,205, 43, 43, 32,169, 74,165, 82,223,190,125,187,182, 35,252, 68, -102,102, 38, 58,117,234,244,199, 83,111,210,226, 1, 43,203, 65,111, 52, 65,111,204,175, 52, 90, 71, 89,251,246,219,111, 17, 31, - 31, 15,171,213,138,232,232,232, 98, 2,171, 60,206,240,110,202, 85,124,211,166, 77,249,238,221,187,227,252,249,243,144,203,229, - 54, 74,105,185,227, 95,241,148,135,149,101, 97, 50, 26,161, 55, 24,254, 45,198,204, 66, 85,125,243,230, 77, 88, 44, 22,204,158, - 61,155,251,245,215, 95,143, 3,120,199,254, 12, 25, 0,195,218,183,111, 63,167,103,207,158, 26, 66,200,123,148,210,141,165,213, -115, 27,107, 23,237,149,120, 31, 29,101,169,164, 54,169, 34, 97, 86,156, 95,172, 60,207, 99,236,152, 49,232, 18,174, 69,255,102, - 65, 48,164,252, 1,149,111, 16,136,166, 58, 22, 47, 59,128,235,119, 61,118,197,164, 0,208,189,125, 95,188,248,124,241,240, 96, -109, 58, 23,124,147,157,254,249, 2,210, 50,147,203,157,119,131,193, 80,162,229,202, 83,139,150,131,211, 17,102, 69, 34,145,160, - 73,147, 38,168, 91,183, 46,142, 31, 63,142,166, 77,155,226,206,157, 59,184,115,231, 14,238,223,191,143,107,215,174, 33, 39, 39, -167,220,207,232,135,195,219,144,163,203,134, 76, 42, 67,118,110, 38, 18, 30,222, 67, 72, 64,232, 35, 63,119, 7,234,245,252, 20, - 0, 16, 30,228, 91, 46,161,229,204,185,112,225,194, 98,226,189, 18, 66,246, 92, 40, 99,189,188,231, 63, 54,136, 75,176, 18, 25, -253,253,253,149,206,253,171, 12,195,192,215,215,151, 44, 88,176, 64,196, 48, 12,124,124,124,224,235,235, 11,135,185,176, 44,200, -100, 50, 99,245,234,213,149,142,130,232,168,136,106,181, 90,180, 96,193, 2,178,126,253,250, 18,173, 92,101,248,104, 45, 29, 62, -124,248, 91, 73, 73, 73,126,193,193,193, 72, 73, 73,129, 76, 38, 43,168, 28, 29, 59,162,237,221,187,176, 22,248, 28, 33, 46, 46, - 14, 95,125,245,149,193,108, 54, 47, 45,239,141,242,246,246, 70, 64, 64, 64, 97,151,161,195,162,227, 36, 26, 61,114,193, 44,205, - 68,239,248, 2,172, 72, 23,146,171,216,122,231,157,119,138,136, 46, 79, 33,149, 74, 89, 71,228,119,134, 97, 96,181, 90,209,180, -105, 83,164,167,167, 23, 86, 26,103, 75,158, 39, 66,171,172,128,164, 98,177, 24, 22,139, 5,237,218,181, 3, 33, 4, 43, 87,174, -124, 54,186, 35,121,158,120,123, 7, 32, 60,252, 57, 4, 5,155,192,243,149, 55,171, 12,203,178, 24, 55,110, 92, 17, 11,150, 99, -100,163,163,235,159, 82, 10,155,205, 86,225,224,175,142,122,253, 40,241,227, 40, 80,216,229,101, 48,152,158,186, 71, 24, 28, 28, -220,146, 16,178,199,101,115, 54,128, 57,238, 34,184,219, 81,248,160, 19, 19, 19,209,173, 91, 55, 28, 60,120, 80,180,123,247,238, -206,123,247,238,189, 81,187,118,237,196, 65,131, 6, 85,125,251,237,183,229,237,218,181, 67,102,102, 38,154, 53,107,246, 25,128, - 82,132,150,253, 62,154,204, 48, 24, 42,223, 58, 90,218, 7,223,163, 8,184, 89,179, 62, 65,151,176, 92,244,107,236,139, 77,251, -206, 96, 88, 19, 37, 96,145,151,155,207,145, 22,255,240, 26,168,222,176,101,177,253,114,117, 65,151, 93,245,134, 45,193, 36,222, - 41,119,222,157,211,236,218, 94, 86,196,162,231,124, 63, 71,143, 30,141,105,211,166,161,107,215,174,184,115,231, 14, 78,158, 60, -137, 59,119,238, 96,210,164, 73,104,216,176, 33, 26, 55,110, 92, 46,206,189,177, 59,160,213,231,129, 33, 12,178,243,178, 96, 50, - 27, 49,117,220,172, 71,126,238, 14,220,139,141, 6, 0,236, 60,114,185,194,156, 31,127,252, 49, 82, 83, 83,139, 88,178, 30,197, - 47,235,105,135, 91,161,149,149,149,229,182, 31, 48, 40, 40, 40, 45, 42, 42, 42, 56, 37, 37, 5,222,222,222,101,138, 44, 66, 72, - 23, 71,172,141,212,212, 84,183,156, 62, 62, 62,214,168,168, 40, 73, 88, 88, 88,145,209,134, 94, 94, 94,197, 42,153, 43,167,253, - 37,160, 35,132,140,109,221,186,245,166,159,126,250, 73, 85,183,110, 93,104,181, 90, 80, 74,177,113,227, 70, 76,156, 56, 17, 10, -133, 2,113,113,113,232,211,167, 79,126,126,126,254, 88,231, 24, 90,238, 56, 75,250, 66,115, 68,197,119, 35,178, 74,205,187,115, -101, 93,177, 98, 5,230,205,155,135, 25, 51, 74,119,245, 88,183,110, 29,224,210,205,231,142,147, 82,138,197,139, 23, 87, 26,103, - 86, 86,214, 70, 23,107,212,202,254,253,251,139, 19, 19, 19,139,136, 43,231,197, 77,195, 84,132,179,172,128,164, 34,145, 8, 33, - 33, 33,152, 59,119, 46, 2, 2, 2, 16, 26, 26, 90,204, 18, 83,214, 51,170,224,203,224,111,229,228, 40,127,105,209,252, 79,218, -252,111,203, 94,137, 92, 6,156, 59,185, 19,218,156,162,221, 73,102,235, 95, 67,169,101, 77, 59,195,114,249,103,143,210,105, 54, -155,177,112,225, 66,124,250,233,167,248,244,211, 79, 61,121,238,143,148,119, 79,196,150, 91, 78,158, 18,149,151, 31, 20, 94,225, -104,208,208, 15, 60,101,159,168,103, 84, 2,126,189,112,225, 66,159,128,128, 0, 36, 37, 37, 5, 73, 36,146, 62, 69,204, 85, 70, - 35,170, 87,175,254, 28,128,255,148,197, 57,105,210, 36,243,204,153, 51,229, 67,134, 12, 65,255,254,253, 49,100,200, 16,185, 84, - 42,173, 67, 41,133,213,106, 69, 82, 82, 18,126,254,249,103,100,100,100,220, 42, 45,157, 60,165, 68,169,210, 64,225, 21,134, 6, - 47,104,192,243,108,165,228,221,241, 18,116,181,102,149, 51, 32,181,219,182, 14, 0,126,253,121, 15,102,125,240, 2, 54,238,255, - 5, 95, 92, 0, 94,212,164,163, 65, 80, 6,248,140, 91,248,239,176,151,176,248,187,139, 0,128,147, 39,202,124, 70,165,198, 71, - 54, 25,173,143,148,119,103,203,149,243,117,202,242,209,114,199,233,248, 72,212,233,116,200,205,205,197,166, 77,155,240,230,155, -111, 34, 61, 61, 29,247,239,223,199, 31,127,252,129,239,191,255,190,112, 52,123,121,159,209,135, 99, 62,198,204,197,147, 65, 65, - 81,175,118, 3, 76, 31,255, 41,154,191,216,234,145,159,187, 43,202,178,102,149,198,185,124,249,242, 10,149,165,127,149,208, 42, -237,171,130, 97, 24, 4, 6, 6, 22, 22, 18,231, 2, 88,145, 47, 95,145, 72, 4,150,101, 11,125,127, 28, 11, 0,244,238,221, 27, - 63,254,248,163, 39, 35, 41,126, 34,132,188, 94,191,126,253, 13,159,125,246,153,119,251,246,237,197,225,225,225,104,222,188, 57, -226,226,226,176,127,255,126,219,234,213,171, 13,249,249,249,163, 40,165, 71, 42,210, 62, 57,166,180,113, 94,202,243,213, 99,181, - 90, 19,239,220,185, 19,182,120,241, 98, 17,195, 48, 88,190,124,121, 97,165,116, 4,124,117,198,201,147, 39, 89,158,231, 75,237, -170,177,217,108,137,119,238,220, 9, 91,178,100,137,136, 16, 82,200,201, 48, 12,156, 39,112, 46, 15,167, 59,145,233, 24, 24,225, -110,113,151,118,119,207,184,180,128,164, 98,177, 24,113,113,113,152, 53,107, 22, 8, 33,216,185,115,231, 51, 81,185,174,221,202, - 92,223,184, 65,176, 95,239, 87,218, 52, 2, 33,176, 90,138, 71, 67,240,206,209, 23,138,172,254, 75,182, 97,247,135,131, 61, 17, - 61,241,167, 79,159,246, 95,184,112,161, 88, 36, 18, 97,217,178,101, 69,130, 6,187, 62,247, 83,167, 78,177, 21,233,246,115,212, -103,171,213, 10,163,177, 98, 86, 20, 74,233,217,232,207,103, 70,109,254,246,128,132, 16, 11,206,157,216,137,188, 92,247,238, 12, - 50,137, 24,235, 55,237, 98,165, 18, 81,226, 63,252,232, 86,245,235,215,111,200,151, 95,126,217,192,221,206,196,196, 68,240, 60, - 95,154,115,205,125,147,201,132,135, 15, 31, 34, 63, 63,127,199, 71, 31,125,100, 61,112,224,192, 91,175,190,250, 42, 26, 55,110, -140,176,176, 48,164,164,164, 32, 62, 62, 30,155, 54,109,162,103,206,156,217, 1, 96, 66, 25,247,113,207,252,207,103,190,177,233, -187, 3, 50,134, 88,113,238,228, 78,228,185,136,246,226,214,105, 9,190,217,184,203, 42,149, 74,110,151,213,174, 59, 91,179, 42, -243,197,216,103,248,120,244, 95,241, 5,106, 53,239,134,249, 11,186,224,155,207, 7, 98,105,119, 41,172,219,135,225,197, 1,155, -177,117,118, 15, 0, 64,248, 55, 30, 90, 75,196, 82, 60,112, 99,177,202,205, 83,216,197, 77,249,172,166,142,188,151,214,134,151, -215,162,197, 48, 12,106,212,168,129, 90,181,106,161,117,235,214,104,218,180, 41, 58,118,236,136,171, 87,175,226,234,213,171,152, - 52,105, 82,137, 34,203,147,103,212,225, 63, 81,248,165,237,237, 71,126, 54,174,207,189, 50,224, 73, 89, 26, 63,126, 60, 0,252, -171,172, 91,226,138,220, 68, 71,193,124,212, 41,105, 28,156, 22,139,165,176, 75,206, 57, 46,147,195, 57,222,195, 17,125, 71, 8, - 33, 13, 63,249,228,147, 15, 20, 10, 69,199,252,252,252,231,236, 22,153, 56,179,217,124,204,104, 52, 46,163,148,230, 62, 74, 90, -157,195, 57,184, 75, 66,105,231,230,228,228,116,235,214,173,219, 17,177, 88, 92,195,117,194, 95,119, 21,153,231,249,251,105,105, -105,165, 14,113,207,202,202,234,214,181,107, 87,183,156,238, 26, 8, 79, 56,221, 61, 31,158,231, 75, 20, 89,158, 52, 68,101, 5, - 36, 21,139,197,240,242,242,194, 15, 63,252,128,192,192,192,103,170,130, 93,185,145,190,176,180,253, 29, 2,229, 39, 0, 4,245, - 95,178,237,193,241, 76, 75,100,135, 64, 89,194,238, 15, 7, 87, 43,237,156,204,204,204,174,111,190,249,230, 65,177, 88, 92,195, -245,254,187,123, 22, 44,203,222, 75, 77, 77, 45,119,184, 4, 74, 41,110,223,190,205,143, 30, 61, 58, 51, 35, 35, 99, 96, 69,242, - 63,125,214, 23, 75,231,125, 54, 49,160,123, 84,203,230, 96, 0, 75,201,206,191,148, 0, 84, 44, 17, 37, 78,153,177,124,204, 63, -249,204, 40,165, 90, 66, 72,235,215, 94,123,109, 2, 10,134,134, 23, 19, 82, 0, 86,148, 66,177,162,106,213,170, 47,136, 68, 34, - 57,128, 89,148,210, 4, 66,200,170, 51,103,206,116, 5,240,178, 72, 36, 10,227, 56,238, 33, 10,230,124,220, 70, 41,189, 82,118, - 57, 74,123,187,113,253,160,136,238, 93, 94,238, 6, 66,168,197, 98, 46,227, 3, 9, 20,148, 82,169, 84,114,251,194,149,228, 23, -203,178,214,219,103,224,168,244, 46,251, 9, 19, 38, 96,194,132, 9,133,229,105,229,202,182,216,241,251,105, 12,120, 49, 9,230, -175,218,128,168,171,121,252,193, 7, 0, 31,127, 50,186, 50, 45,155, 69, 6,105, 85,150,143,150, 72, 36, 66,102,102, 38,226,226, -226,144,150,150,134,252,252,124,220,188,121, 19, 86,171, 21, 57, 57, 57,120,225,133, 23, 42,156,206,202,122, 70,255, 36,231,191, -177,251,176, 92, 66,139,101,217,164,178,102, 89,183,217,108,229, 26,149, 36,145, 72, 76,117,235,214, 37,238, 70, 39, 56,254,123, -121,121, 25, 61,108, 32,115, 1,204, 2, 48,203, 62,159, 21,178,179,179, 31, 89, 13,114, 28,151, 28, 25, 25, 41, 42, 73,192,216, -239, 77, 90, 25,105, 51, 0,104, 85,201, 47,132, 74,231,116,243,124, 12,207, 63,255,124,161,175,151,107, 76, 20,251,100,171,165, -122,231,150, 21,144,212, 96, 48,164,116,235,214,141,115,222,239, 28,208,244,153, 6,161, 9, 61,134,188, 21,121, 60,211, 18, 9, - 0, 14,177,133,146,253,127, 64, 41, 53, 2,104,255,119, 39,237,238,221,187,150,151, 95,126,249, 91,157, 78, 55,158, 82, 90, 97, -111,254, 25,255,183,114,198,211,246, 88, 40,165, 90, 0,243, 42,120,110, 2,128, 78, 46,219,174, 0,184,242, 40,105,186,114, 51, -163,210, 99,139,177, 44,155, 84,171, 86,173,114, 89,110,202,106,227,109, 54, 91,169,239,137,235,240,197,140,243, 64,193, 52,113, - 89, 30,113,154, 76,166,236, 86,173, 90, 73,202,153,183,116, 79,243, 30, 22, 22,134,240,240,240,194, 95, 7, 92,183,151,149, 78, -150,101,147, 34, 34, 34, 16, 24, 24, 88, 98,196,119, 87,159, 44, 79, 56, 43,251, 25,149,198, 25, 30,190,185,210, 57, 43, 75, 47, -252, 43,132,150, 99, 14,195,202, 68, 90, 90,218,223, 50,231, 10,173, 12,115,219, 95,150,163,230,248,151, 34, 43, 43, 43,224, 81, - 57,202, 10, 72,154,150,150,214,241,223,122,127,143,103, 88, 70, 22,219,102, 23, 93,255, 52, 12, 6, 67,181,178,194, 14,148,132, - 1, 3, 6,112, 16,240,196, 35, 51, 51,179,210,219,244,191,227, 61,145,157,157,221,232,223,154,247,191, 35,157, 79, 11,231,179, - 2,193, 75, 77,128, 0, 1, 37,125,172, 8, 98, 73,128, 0, 1, 2, 30, 17, 4, 64,151, 18, 26, 89,143, 71,250, 16, 66,186, 84, -160, 17,143, 21, 56, 5, 78,129, 83,224, 20, 56, 5, 78,129,243,223,197, 89, 22,119,101,143, 52,126, 18,190, 90,255,182, 5, 64, - 23,129, 83,224, 20, 56, 5, 78,129, 83,224, 20, 56, 5,206,127,235, 34,116, 29, 10, 16, 32, 64,128, 0, 1, 2, 4,252, 77, 16, -132,150, 0, 1, 2, 4, 8, 16, 32, 64,128, 32,180, 4, 8, 16, 32, 64,128, 0, 1, 2, 4,161, 37, 64,128, 0, 1, 2, 4, 8, - 16, 32, 64, 16, 90, 2, 4, 8, 16, 32, 64,128, 0, 1,127, 31, 72, 37,198,245, 20, 32, 64,128, 0, 1, 2, 4, 8, 16,224, 4, - 49, 0,236,223,191,191, 80,109,245,236,217,147, 8,183, 69,128, 0, 1, 2, 4, 8, 16,240, 56,241,172,106, 17,177, 32,176, 4, - 8, 16, 32, 64,128, 0, 1, 79, 2,158, 69, 45,194,184, 83,146, 2, 4, 8, 16, 32, 64,128, 0, 1,143, 27,207,162, 22, 97,158, -101, 21, 41, 64,128, 0, 1, 2, 4, 8,120,122,240,204, 91,180, 4,171,150, 0, 1, 2, 4, 8, 16, 32,224,159,194,211,170, 69, - 8, 33,148, 16, 66,157,215, 11,255, 11,163, 14, 5, 8, 16, 32, 64,128, 0, 1, 2, 42, 38,176, 40,165,164,164, 95, 64,136,163, - 37, 64,128, 0, 1, 2, 4, 8, 16, 80, 33, 56,196,148,243,186,179, 53,235,111, 23, 90,132,144, 46, 2,167,192, 41,112, 10,156, - 2,167,192, 41,112, 10,156,255, 22,193, 69, 41, 37,206,235, 98,225,246, 8, 16, 32, 64,128, 0, 1, 2, 4, 60,178,248,164,238, -132,151, 32,180, 4, 8, 16, 32, 64,128, 0, 1, 2, 30, 81,100, 57,139, 43,193, 71, 75,128, 0, 1, 2, 4, 8, 16, 32,224, 49, - 64,176,104, 9, 16, 32, 64,128, 0, 1, 2, 4, 60, 2, 92,157,224,133,174, 67, 1, 2, 4, 8, 16, 32, 64,128,128, 74, 22, 91, -238,182, 19, 0, 93, 74, 56, 33,214, 83,242,138,140, 62, 40,139, 95,224, 20, 56, 5, 78,129, 83,224, 20, 56, 5,206,103,143,179, - 44,238,242,232,143, 39, 5,132,144,246, 0,142, 3,232, 96,255,253, 75,120, 81, 74,255,182, 5, 64, 23,129, 83,197,199,105, 41, - 0, 0, 32, 0, 73, 68, 65, 84,224, 20, 56, 5, 78,129, 83,224, 20, 56, 5,206,103,121, 41,144, 83,127,253, 58, 47,130, 51,188, -128,178, 84,186,152, 16, 34,174,232,254,199,197, 41, 64,128, 0, 1, 2, 4,252,195,239, 75,234,248,117,246,215, 18,151,112,112, - 29, 0, 51, 0,248, 58,109,190, 64, 41,141,118, 57,238, 59, 0, 42,167, 77, 6, 0,179, 41,165,119, 60, 72,147,212,206, 47,183, - 47, 60, 0, 19, 0, 51, 0, 29, 0,155,240,216,254,241, 66,211, 10, 64, 47,251,255,125,148,210,115,229,217,255,184, 56, 31, 23, -194,195,195,149,126,126,126, 93, 47, 95,190, 44,187,121,243, 38, 78,157, 58, 69,215,175, 95,111,205,201,201, 57,156,156,156,108, - 20, 74,204, 51, 81,230,187, 1,152,110, 95,157, 79, 41, 61,244,136,124, 68,165, 82, 77,242,242,242,234, 33,151,203,195, 89,150, - 37,249,249,249,201, 6,131,225, 8,203,178, 75, 40,165,124, 5, 56,251,250,251,251,191, 85,175, 94,189, 58,247,239,223,127,152, -156,156,252, 29,128,237, 0, 6,134,135,135, 15,171, 94,189,122,149,219,183,111,223,201,206,206,254,134, 82,186,231,159, 74,167, - 0, 1,255, 38,148,228,159, 85,162,208, 2, 48,139, 82, 58,204,165, 34, 22, 59,168, 83,167, 78,125, 14, 31, 62,172,226,121, 30, -142, 69,169, 84,178, 0, 70,150,145,166,128,179,103,207, 70,142, 31, 63,190,127,114,114,242, 75, 58,157,174, 5, 0,168, 84,170, - 95,130,131,131,127, 93,177, 98,197,247, 93,187,118, 77,178, 11,174,114, 89, 74, 36, 18,201,155,126,126,126, 61, 88,150,109, 74, - 41,133, 68, 34,185,156,147,147,115,200,102,179,125, 67, 41,181, 85,160, 81,147,137,197,226, 9,114,185,188, 27,203,178,141, 0, - 64, 44, 22, 95, 51,155,205,135, 88,150, 93, 69, 41,181, 84,128, 83, 33,147,201, 38,168,213,234, 40,139,197,210, 8, 0,100, 50, -217, 53,173, 86,123,196, 98,177,172,162,148,154,158,128, 23,142, 24, 64, 47, 74,169, 4, 0, 68, 34, 81,223, 86,173, 90, 69, 18, - 66,120, 71,124, 16,134, 97,154,112, 28,199,216,143,239, 69, 8,249,149, 82,202,150,135,243,229,151, 95,174, 42, 22,139,169, 61, -146, 46,195, 48,204,139,229,225,172, 44, 4, 5, 5,205,227,121, 62,188,180, 99,124,125,125, 95,186,124,249,114,189,152,152, 24, -238,171,175,190,202, 29, 53,106,148,247,248,241,227,197, 43, 87,174, 92, 5,224, 61,215,227, 3, 3, 3,151, 50, 12, 19,232,201, -245,121,158,207,204,204,204,156, 44, 52, 87,255, 56,166,175,142,213,181,163, 20,152, 16,229,195, 0,120, 36,161, 85,165, 74,149, - 77,111,188,241,198,144, 70,141, 26,137, 41,165,176,217,108, 48,155,205,245,206,157, 59,215, 97,231,206,157, 47, 1, 24, 88,206, -122, 57,102,218,180,105,115,231,204,153, 19, 40,145, 72,136,205,102,171, 29, 19, 19,211,244,237,183,223,126,127,221,186,117, 85, - 7, 13, 26,228,227,216, 62,107,214,172,230,132,144,154,148,210, 37,143, 59,157, 2, 4,252, 11, 63,210,218,163,168,143,214,103, -148,210, 79, 75, 19, 90, 94,246, 19,211, 0, 92,112, 88,180, 92, 15, 58,122,244,232, 94,177, 88,236,176,104,181, 48, 24, 12, 33, - 46, 86, 48,119,168, 62,124,248,240, 86, 59,118,236,152, 55,104,208,160, 84,149, 74, 85,247,213, 87, 95,213, 17, 66, 68, 49, 49, - 49, 77,106,213,170,165,236,221,187,247,240, 78,157, 58,125,120,240,224,193, 83, 0, 50, 60,204,100, 3,127,127,255, 93, 11, 23, - 46,140,236,214,173,155, 52, 48, 48, 16,148, 82, 36, 39, 39, 87,217,191,127,127,247,207, 62,251,236, 67, 66, 72, 63, 74,233,141, -114,220,184,230, 74,165,114,199,103,159,125, 22,214,189,123,119,113,104,104, 40, 76, 38, 19,110,222,188,217,229,208,161, 67,237, -214,173, 91,247, 30, 33,100, 0,165,244,215,114,112,182,240,245,245,221,249,191,105,211, 66, 90,190,249,166,216,223,223, 31,148, - 82,100,100,100,116, 57,189,121,115,135,113, 11, 23,190, 71, 8,121,141, 82,122,225, 73, 42, 68, 50,153,140,217,178,101, 75, 99, -153, 76, 6, 0,176, 88, 44,104,216,176, 33,121, 20, 78,137, 68,194, 44, 89,178,164,169, 88, 44,134,213,106,229,117, 58, 29,125, -245,213, 87,153,127,168,146, 68, 36, 39, 39,251, 74,165, 82,183,251, 57,142, 67,187,118,237,106, 72,165, 82, 44, 89,178,196,150, -153,153,217,228,203, 47,191,188,188,117,235,214,192, 85,171, 86, 13,112, 39,180, 24,134, 9, 76, 74, 74,114,203,201,113, 28,172, - 86, 43, 88,150,133,197, 98, 65,253,250,245,133,150,234,201, 64, 36, 0, 28,184,106, 2, 0,255, 71, 37,243,242,242,122,126,232, -208,161,226,140,140, 12, 72, 36, 18, 88,173, 86,164,166,166,162, 97,195,134,162,111,191,253,246,185,242,242,213,174, 93,123,212, -252,249,243,131, 14, 28, 56, 96,221,178,101,139, 37, 42, 42, 74, 50,106,212, 40,117,187,118,237,234, 71, 68, 68, 48, 27, 54,108, - 48, 31, 57,114,196, 54,124,248,112, 89,116,116,116,208,254,253,251,123, 3, 88,242,184,211, 41, 64,192,191, 16,199, 93, 39,149, - 6, 80,170,208,114,224, 2,165,180, 47, 0, 72,165,210, 38, 85,171, 86,221,196,178,108,168,221,170,147, 42,145, 72,150, 88,173, -214,223,236, 47,170, 61, 60,207,247, 41,203,146, 53,124,248,240, 86, 7, 15, 30, 92,124,238,220,185,188,172,172,172,208,189,123, -247,154, 62,252,240,195,251, 0,112,247,238,221,154,189,123,247,174, 50,113,226,196,164,174, 93,187,174,232,216,177,227,187,199, -142, 29, 59,130,130, 46,201, 82, 69, 86,195,134, 13,207,158, 60,121,210, 71,163,209, 20, 85,117,213,171,227,221,119,223,149,246, -233,211,167, 86,231,206,157,207, 16, 66,218, 82, 74,127,247, 68, 16,213,169, 83, 39,246,232,209,163,222,126,126,126,200,205,205, - 69,106,106, 42,242,243,243,161, 86,171, 49,104,208, 32,105,251, 54,173,171, 78,156,244, 94, 44, 33,164,139, 39, 98,139, 16,210, -162,117,131, 6,177, 91,163,163,189,109, 15, 30, 64,169, 84, 66,175,215, 3, 0,124,124,124,240, 82,141, 26,226,139,155, 55, 87, - 25, 54,117,170,131,243,177,139, 45, 66,136,220,110, 6, 53, 19, 66,246,137, 68,162,190, 50,153,140,233,219,183, 47, 98, 99, 99, -137,201,100, 18, 3,128, 66,161, 96,251,246,237, 11,165, 82, 9,139,197,194, 3,216, 87,146,229,201, 29,167, 68, 34, 97, 58,118, -236,152,127,225,194,133,108, 7,167, 74,165,178,117,236,216, 49, 64, 38,147, 41, 89,150,165,165,113,254, 77, 98, 18,241,241,241, - 69,182,233,116, 58,100,100,100, 32, 43, 43, 11,102,179, 25,185,185,185,224,121,158, 40,149,202, 12,158,231,193, 48, 5,198,183, -146, 56,165, 82, 41,226,226,226,138,108, 99, 89, 22, 6,131, 1,102,179, 25, 86,171, 21, 58,157, 78,233,227,227, 83,167, 65,131, - 6, 73, 0,246,100,103,103, 47, 73, 77, 77, 77, 16,218,173,127, 4, 15,246,253,102,170, 6,192, 2,224, 94, 37,240,241, 0,112, -234,212, 41,164,165,165, 33, 51, 51, 19, 25, 25, 25,136,136,136, 64, 69,186,227,226,227,227, 87,191,240,194, 11,228,250,245,235, -135, 0,172,140,137,137, 25,153,157,157, 61,125,202,148, 41,254,139, 22, 45,202,158, 58,117,234,124, 0, 27, 99, 98, 98,222,121, -254,249,231,123,220,186,117,107,221, 63,145, 78, 1, 2,254, 6, 52, 7, 16,100,255,159,105,111,119, 3,156,214,175,218,235,173, -227, 56, 11, 0,153,155, 95, 7, 28,235, 25, 0,126,117, 58,207,177, 94,145,247, 39,117,254, 45,252,232, 6,128,253,251,247, 83, -199,226,238,228,144,144,144, 73,157, 58,117, 90,124,233,210,165,250, 41, 41, 41,126, 41, 41, 41,126,151, 46, 93,170,223,169, 83, -167,197, 33, 33, 33,147, 28,199,217, 61,238,225,180,238, 60, 68, 83,122,246,236,217,200, 93,187,118,205,143,141,141,205,107,210, -164,137,229,232,209,163,108,215,174, 93,211, 1,176, 0,216,174, 93,187,166, 31, 59,118,140,107,217,178,165,242,224,193,131,137, -103,206,156, 89,186, 99,199,142, 16, 0,162, 18, 56, 65, 8,145,104, 52,154, 31, 78,156, 56, 81, 76,100, 57,163,106,213,170,216, -183,111,159, 90,163,209,236, 33,132, 72, 75, 73, 39, 8, 33, 10,133, 66,177,243,216,177, 99,222, 62, 62, 62, 72, 79, 79,135, 68, - 34, 65,112,112, 48,242,242,242,144,154,146,130,132, 63,254, 0, 99,177, 96,217,231,115,124,148, 74,229, 14, 66,136,172, 44, 78, - 95, 95,223,157, 91,231,205,243,206,138,141,197,149,185,115, 97,181, 90, 11,187, 92,173, 86, 43,206,140, 31,143,140,159,127,198, -134, 89,179,188,125,125,125,119, 18, 66, 20,165,113, 86, 6,156, 57, 9, 33,227, 1,100, 3,200, 38,132,140,167,148,158,107,216, -176,225,165,155, 55,111,162,109,219,182,216,190,125,251,139, 83,166, 76, 25, 63,101,202,148,241,219,183,111,127,177,109,219,182, -184,121,243, 38, 26, 54,108,120,201,217,151,202, 19,206, 19, 39, 78,160, 83,167, 78, 57,219,183,111,175, 57,107,214,172,121,179, -102,205,154,183,109,219,182, 90,157, 58,117,202, 89,190,124,185,185, 52,206,191, 35,239,206,150, 38,231,133,231,255,122,199,132, -135,135,167,239,218,181, 11,131, 6, 13, 98,100, 50, 89,202,224,193,131,229,167, 79,159,166, 0,246,149, 39,157, 38,147, 9, 70, -163, 17, 6,131, 1,119,239,222, 85, 46, 92,184,176,205,167,159,126, 90, 59, 54, 54,182,202,140, 25, 51,198, 5, 5, 5, 93, 14, - 13, 13,141,124,220,121, 23, 56, 1, 0,169, 0,172,246,143,187,132, 71,225,236,220,185,243, 11,181,107,215, 14,137,185,238,135, - 28,105, 61,240, 82, 13,120,169, 6, 92, 64,115,196,203, 94, 65,181,106,213, 66,124,124,124, 90,149,135,147, 82,186,229,247,223, -127,127,153, 82,250, 41,165, 52,139, 82,186,120,234,212,169,159, 17, 66, 78, 77,157, 58,117, 14,165,116,177,125,251,220,155, 55, -111,182,164,148,110,253, 39,210, 41,148, 37,129,179, 34, 40, 67,139, 4, 17, 66,246, 17, 66,246,125,244,209, 71, 29, 1, 4,184, -172,255,199,249, 56, 0, 50,119,191,142,197,105,123, 16,128,158, 78,231, 5, 85,240,126, 16,215,165,136,208, 2,128,158, 61,123, -146,158, 61,123, 58,118, 92, 32,132,236, 5,112, 65, 42,149, 54,105,220,184,113,223,159,126,250,201, 39, 40,232,175,235, 7, 5, - 5, 97,199,142, 29, 62, 13, 26, 52,232, 43,149, 74,155, 0,184,160, 86,171,247,194, 77, 23,163, 29,154,241,227,199,247, 31, 49, - 98,132,182, 73,147, 38, 0,144,123,227,198, 13, 85,203,150, 45, 13, 44,203, 18,150,101, 73,203,150, 45, 13, 55,110,220, 80,217, -108, 54, 93,243,230,205,189, 58,119,238,124,127,242,228,201,195, 1, 40, 74,201,223,208, 5, 11, 22, 68,248,249,249,149,118, 3, -160,211,233, 16, 18, 18,130,241,227,199,135, 74, 36,146,183, 74,187, 97, 98,177,120,194,130, 5, 11,130, 53, 26, 13,114,114,114, - 16, 17, 17, 1,139,197,130,184,184, 56,152, 12,122,216,116, 90,216,180,185,200,248,243, 14, 52, 18, 49,134,247,233, 21, 34, 22, -139, 39,148, 97, 45,153,240,205,212,169, 33,150,251,247,113,119,251,118,112,108,113, 67, 13,107,181,226,218,215, 95,195,148,148, -132,249,163, 71,135,200,100,178, 9,143,217,146,181,136, 82,170,164,148, 42, 9, 33, 43,254,243,159,255,124,171, 84, 42,199, 71, - 71, 71,119, 59,124,248,112,247,147, 39, 79,118, 96, 89, 86,194,178,172,228,212,169, 83,109, 77, 38,147, 88, 46,151, 67, 44, 22, - 83, 79, 57, 91,181,106,181, 73,169, 84,142, 91,179,102, 77,183, 99,199,142, 13,191,120,241,226, 4,142,227,100, 28,199,201, 46, - 94,188,248,182,209,104,148, 80, 74,185,146, 56, 31, 55, 36, 18, 9,164, 82, 41,148, 74, 37,218,180,105,243,231,250,245,235,109, - 17, 17, 17,146,157, 59,119,250,133,135,135,123,173, 92,185, 50, 87,167,211, 45,240,148,207,106,181,194,108, 54,195,104, 52,194, -100, 50,225,232,209,163, 53, 38, 78,156, 40, 54,153, 76, 92,239,222,189,179,109, 54,155,121,234,212,169,106,127,127,255, 15,133, - 15,216,127, 4, 44, 0,189, 93,104,153,157,203, 50, 33,164,145,195, 58,235, 9,114,115,115,215,125,243,205, 55, 17,140, 92,131, -211,150, 30,248,158,255, 12,135,125, 87, 34, 61,242,191, 8,142,168,141, 33, 67,134, 4, 83, 74, 87, 86,194, 11,239, 75, 74,105, - 59, 74,233,138,138,156,255,119,167,147, 16, 18,233,237,237,189, 93,173, 86,159,246,246,246,222, 78, 8,137,124,212, 60,119,173, - 67,186,244,173, 47, 74,234, 90,155,208,190,245, 69, 73, 93,235,148, 63,214,147,128, 39, 19, 46, 90,196, 25, 25,148,210, 94,148, -210, 94,243,231,207,159,231, 84,254, 29,235, 74, 15,235, 75, 47, 74,105, 47,151, 50,186,175, 18,222,161,212,117, 41,212, 20,206, - 74,210,145, 57,231,209,133, 85,171, 86,221,180,105,211, 38, 31, 87,210,148,148, 20,104,181, 90,204,156, 57,211,103,196,136, 17, -239, 37, 38, 38,190, 81, 70, 58,100,169,169,169, 77,135, 13, 27,166,176, 90,173, 57, 60,207, 51, 90,173, 86,236,235,235,203, 57, - 14,240,245,245,229,242,242,242, 36, 6,131, 65,196,113,156,121,196,136, 17,178,209,163, 71,191,228,108,209, 42, 38,113,131,130, -162,122,244,232, 33, 43,105,191,205,102,131,193, 96,128,193, 96,128,213,106, 69,155, 54,109,228,235,215,175,239, 10, 96, 77, 73, -231,200,229,242,168,168,168, 40, 73,118,118, 54,124,125,125,145,144,144,128,123,247,238,193,172,215,195,170,215,194,170,215,129, -213,105, 65,181,121,200,186,115, 27, 45,159,175, 39,253, 78, 46,239, 6, 96,105, 73,156,106,181, 58,170,229,200,145, 98, 47, 47, - 47,116, 24, 86, 48,206,224,224,243,207,131,114, 28,120,142, 3,199,178,232, 22, 23, 7,155,205, 6,134, 97,208, 60, 59, 91,172, -222,188, 57, 10,192,226,127,162,176,203,229,114,241,150, 45, 91,134,202,100, 50, 80, 74,137,197, 98,193,225,195,135, 31,153,115, -243,230,205,195, 29,156, 86,171,149,190,240,194, 11,197, 42,148,217,108,166, 79, 74,165,151,201,100, 80, 40, 20,176, 90,173,168, - 94,189,186,113,216,176, 97,103, 63,255,252,243,106, 12,195,120, 73,165,210,159,178,178,178,230, 37, 39, 39,223,245,148,207,102, -179,193, 98,177,192, 98,177,192,104, 52,226,207, 63,255, 12,173, 81,163, 6, 25, 63,126, 60,151,159,159, 95,243,139, 47,190,136, - 63,124,248,176,106,193,130, 5,175, 2,120, 87,104,118, 31, 31,236, 86,105,223,106, 1, 98,131, 68, 4, 61, 0, 31,187, 40,120, -149, 16,210,178,126,253,250,126, 55,111,222,204, 33,132,156, 7,240, 61,165, 52,165, 52, 62,158,231, 9,207,243,120,187, 69, 46, -198,183, 18,193,102,203, 67, 94, 94, 30, 18, 18, 18,112,227,198, 13,252,242,203,141, 10,165, 83,161, 80,188,229,237,237,221, 85, -161, 80, 84,103, 89,150,209,235,245, 9,249,249,249,177, 60,207,175,163,174,221, 10, 30,224,239, 74,167, 3, 94, 94, 94, 11,103, -204,152,209,218,215,215, 23,191,253,246, 91,205,109,219,182, 45,196, 35, 58,215, 43, 36,204,134,165,203, 87, 86,169, 18,172,193, -213,147, 63, 86,153,183, 54,102, 3,128, 8,161, 20, 63,253,112,214, 34, 46,248, 21, 64, 79,251,104,244, 94,143, 80,207, 31,233, -252,210, 44, 90,174, 19, 75, 23, 19, 90, 37,100, 12, 44,203,134, 58, 91,178, 40,165, 72, 73, 73,193,195,135, 15,145,145,145, 1, - 63, 63, 63, 88,173,214, 80, 79,222,179, 58,157,174, 69, 64, 64, 64,190, 68, 34, 49, 27,141, 70,168, 84, 42, 94, 34,145, 80,251, -117,136,125,212, 34,103, 54,155,137, 88, 44,182,249,248,248,120,155,205,230,122, 40,197,151,140, 82,218, 34, 32, 32,192,237, 62, -179,217, 12,189, 94, 15,131,193, 0,189, 94, 15,179,217,140,144,144, 16,176, 44,219,180,212, 79, 90,150,109, 20, 20, 20,132,228, -228,100, 40,149, 74, 36, 37, 37,193,162,215,193,170,211,129, 53,104,193,229,229,129,215,106,193, 27,180,176, 89,242, 81,165,238, -243,112,140, 72, 44, 9, 22,139,165, 81, 64, 64, 0, 12,134,191,220,205,168, 93, 96,177, 44, 11,214,238, 28,237,232, 78, 12, 12, - 12,132, 99, 68,226,227,128,221,127,106, 10,195, 48, 43,228,114,185,120,220,184,113, 72, 73, 73, 41, 82, 38,198,141, 27, 87,232, -147,213,174, 93,187, 83, 10,133,130,205,200,200,128,217,108,150,120,194, 89,189,122,245,132,153, 51,103, 94,176, 88, 44, 17,225, -225,225, 26,179,217,108,124,238,185,231,194,149, 74,101,136,197, 98,225, 94,122,233,165,117, 74,165,210,166,215,235, 41,203,178, -228, 73,168,244,132, 16, 16, 66, 10,158, 17,203, 34, 48, 48,208,144,153,153,249, 75, 78, 78,206,208,138,240,217,108, 54,199,136, - 46, 24,141, 70, 80, 74,241,219,111,191, 65,161, 80, 72, 56,142,187,206,178,172, 74, 34,145,128,177, 59,127, 9,120,108,207,185, - 67, 61,141,108,105,116,203, 96, 77,227,222, 94, 6,149, 76,100,224, 19, 26, 87,255,223,162, 27,219, 70, 12,127,203,103,246,236, -217,145,129,129,129,138,248,248,120,211,156, 57,115,106,108,217,178,133,148,245, 17,244,224,193,131,221, 51,102,204,240,239,209, -163, 71, 77,185, 92, 78,242,242,242,144,145,145,129,180,180, 52,220,187,119,143, 94,189,122,245, 79,179,217,188,189, 60,233, 12, - 15, 15, 95, 63,113,226,196, 17,205,154, 53,147, 56, 44,164, 6,131,161,201,137, 19, 39,250, 28, 60,120,176, 45,128,114,151,203, -196,196,196,237, 31,127,252,177,215, 43,175,188, 82, 79, 46,151, 51,149,145, 78,103, 48, 12, 19,226,237,237,141,216,216, 88,104, - 52, 26, 48, 12, 19,242,168,207,203,100,229,171,132,135, 6,192,116,102, 41,234, 5, 69,194,100,229,171, 8,165,248,217,177,104, -149,176,171,185,195, 34, 85,134, 88, 50, 78,159, 62,125, 6, 33,100,223,244,233,211,103,184,179,104,217,255,114,206,199, 57, 29, -111,174,108,177, 85,174,160,144, 60,207,227,225,195,135, 72, 78, 78,198,195,135, 15,145,149,149, 5,134, 97, 74,141, 31,225,156, - 6, 66, 8,127,228,200, 17,191,179,103,207, 26,154, 55,111,158,235,240,127, 97, 89,150,216,108, 54, 98,247,139, 33, 9, 9, 9, -210,211,167, 79,107,110,221,186, 21,130, 2,135, 53,190,140,204, 21,219,230, 16, 88,206,139,201,100,130, 66,161,240, 40,175,142, - 23,225,111,151, 46, 21,136, 44,189,206,222,101,152, 7, 78,155, 7,106,208, 65,198,217, 32, 3, 5, 49,229,123,124,255,156,225, - 16, 89, 86,187,208,178, 88, 44,176,217,108,224,121, 30, 44,203, 62,246, 2, 78, 41, 93,221,164, 73,147,166,187,119,239, 30,245, -240,225,195, 98,251,251,245,235,135,119,223,125, 23, 19, 39, 78,188,213,179,103,207,171, 63,254,248, 35, 38, 76,152, 0,158,231, - 27, 19, 66,242, 40,165, 7, 75,227,156, 62,125,250,197,196,196,196,227,127,252,241,199,184,224,224, 96,121,163, 70,141,238, 52, -106,212, 72,180,123,247,238,144, 49, 99,198, 92,234,222,189,251,253,159,127,254,217, 63, 54, 54, 86,193,243,124, 51, 66,200,195, -127, 58,142,150,217,108, 46,180, 64,153, 76, 38, 88,173, 86,160, 20,231,247,178,202,166,227,217,178, 44,235,224, 38,187,119,239, -194,169, 83,167,152, 27, 55,174, 71,140, 27, 55,222,225,112, 47,180,184,143, 71, 96,189, 34, 99,200, 87, 83, 26, 7, 40, 62,124, - 49,192, 32, 19, 19,125,220, 87, 51,244,247,170,169, 13, 33, 85, 85,150,136, 26,154,240,121,243, 62, 15,187,117,235,182,121,230, -204,153, 55, 7, 15, 30, 28,252,225,135, 31,214,223,185,115,103, 91, 66,200, 55,148,210,220, 18,120, 21, 35, 71,142, 60, 31, 28, - 28, 92, 99,237,218,181,233,137,137,137,126, 54,155,205,203,106,181,242, 6,131,225,158,209,104,140,181, 90,173,177,148,210, 75, -229, 73,175,143,143,207,139, 35, 71,142,148,228,230,230,194, 62, 90, 23,233,233,233,104,221,186,181,104,239,222,189, 13, 42,114, - 15,178,179,179,151, 18, 66,142,111,221,186,181,171, 90,173,110, 38,151,203, 67, 1,112, 58,157, 46,205, 96, 48, 92,169, 72, 58, -139,180,115, 28,151,118,233,210,165, 90,106,181, 26, 15, 30, 60, 0,199,113,105,143,250,220, 20, 82, 38,241,218,201,189, 85,159, - 15,172,129,211,103,207, 67, 33,101, 18,133,210,252,204,195,225, 67, 5,103, 1,229, 70, 32,157,141,142,142, 86,206,159, 63, 31, -209,209,209,215,221, 89,180, 28,130, 43, 58, 58,250,186,227, 56,167,227, 79, 62, 66,123, 82,178, 69,171, 20, 5, 9,177, 88,156, -154,145,145,225,167,209,104, 10, 5, 86,114,114, 50,146,147,147, 33,147,201,144,144,144, 0,153, 76,150,226,201, 71,136, 82,169, -188,216,164, 73,147,231,238,222,189, 43,157, 51,103, 78,213, 75,151, 46,169, 91,183,110,253,130, 82,169,228, 40,165, 48,153, 76, -204,205,155, 55,189, 23, 47, 94, 92,165, 69,139, 22,150, 22, 45, 90, 92,142,137,137, 49,162,148,224,165,132,144, 11, 41, 41, 41, - 53,171, 87,175,238, 16,109, 69,196,149,179,224, 2, 10,186, 60,197, 98,241,229,210, 18, 42, 22,139,175,197,197,197,117, 81, 41, -228,176,232,180,176,234,181, 96,117, 58,112,186, 60,112,121,121,128, 65, 11, 25,203, 66,194,217,160, 84, 40,240, 48, 41, 9, 98, -177,248, 90,105,156, 50,153,236, 90, 90, 90, 90, 23,141, 70, 83,248, 18,181,177,108,193,194,113,176,176,108,161, 69, 75, 34,145, - 32, 49, 49, 17, 50,153,236,218,227, 46,201, 12,195,112,142, 16, 14, 37,228, 3, 33, 33, 33,124,203,150, 45, 49, 97,194, 4,112, - 28,103,127, 12,164, 3, 33,228, 52,165, 84, 95, 18, 39,207,243,204,205,155, 55,251,199,199,199,139, 36, 18, 9,243,242,203, 47, - 55,108,211,166,141, 69, 38,147, 65, 42,149,138,245,122,189, 79,108,108,172,194,102,179, 17, 59,231, 99,139,163,229, 40, 59,197, - 62,141,236, 78,235, 70,163, 17,122,189, 30, 57, 57, 57, 98,165, 82,249,220, 11, 47,188,112,222, 98,177,108,103, 89,118,195,221, -187,119,181, 37,113,218,133, 89,161,232,226,121, 30,148, 82,112, 28, 7,155,205, 6,169, 84,202,159, 56,113, 18,139,151, 45,196, -166, 13, 91,104,159, 62,125,200,222,189,123,193,243,124,146,208,174, 62, 22, 44,201,253,254,115, 5, 88,206, 96, 62,177, 85,255, -237, 31, 90,195,236,111,151, 95,180,200, 68,218,151,218,135, 52,170, 89,227, 57,145, 70,227,199,172, 89,183, 34,235,187, 45, 59, -226, 31, 60,120,160, 93,181,106, 85,171,231,158,123,206,247,202,149, 43, 85, 0,184, 21, 90, 42,149,170,206, 91,111,189, 53, 50, - 39, 39, 71,186,105,211,166,152,148,148,148,139, 0,110, 80, 74, 13, 78,109, 87, 79, 66,200, 70, 20,140,124, 10,177,183,115,167, - 41,165,115, 74,251, 94, 35,132,224,216,177, 99,197, 70, 7,242,143,166,206, 53,181,107,215, 30,116,247,238,221, 83,169,169,169, -175,185,169,247,179,235,214,173,219,237,250,245,235,159, 81, 74, 15,148,135, 56, 63, 63,127,234,142, 29, 59, 22,137, 68,162,112, -142,227,146,141, 70,227,212, 71,182,104,217,248,209,209,107,182,125,109,180,112,213,148, 50,209, 3,147,141, 31, 35, 20,229,103, -218,154, 5,216,125,180, 28,255, 1, 16,151,245, 43,246,255, 22,167, 99, 51,156,172, 88, 22, 23, 43,152,187,125, 25,168, 96,176, -116,119, 35, 14, 29,162,171,164,200,240, 31, 1,104, 1,224,130, 68, 34, 89, 49, 98,196,136,197,223,125,247,157,143, 86,171, 69, - 90, 90, 26,210,211,211, 33, 22,139,161, 86,171,177,122,245,106, 99, 90, 90,218, 10,231,115, 92, 35,200, 59,234, 70, 96, 96,224, -197, 45, 91,182,132,126,245,213, 87,226, 55,222,120, 35,161,103,207,158,245, 86,175, 94,125, 87, 42,149, 82,142,227,136,217,108, - 38,111,191,253,118,173,101,203,150,221, 23,137, 68,170, 65,131, 6, 17, 47, 47,175, 11, 40,112, 80,117,127,231, 51, 50,142,252, -240,195, 15,253, 39, 79,158, 44,183, 88, 44,110, 45, 89,142,109, 26,141, 6,103,206,156,177,228,228,228, 28, 46,195,138,113,228, -167, 3,251,219,189, 62,120,176,212,166,211,194,166,211,130,213,106,193,233,114, 65,244, 90, 72, 56, 22, 74, 41,143,208, 8, 5, - 88,163, 55,246,255,122,197,102, 54,155, 75, 13,108,168,213,106,143,156,222,180,169, 67,139,200, 72,241,153, 73,147, 96,181,217, -240, 74, 92, 92,161,184,178, 90,173,216,211,168, 17, 56, 66,208,120,236, 88,220, 97, 89, 86,171,213, 30,121, 18, 43,195,213,171, - 87,211,135, 13, 27,118,137,231,249,166,229,177,238, 56,224,237,237,173,211,235,245,200,204,204,228,178,178,178, 76, 0,144,158, -158,158,179,119,239,222,155, 60,207,183,168, 8,103,101,192,102,179, 21,179, 70,113, 28, 87, 96,117, 44,176, 28,200,246,239,223, -223,238,230,205,155,210,223,127,255, 29,167, 78,157,106,252,221,119,223,125, 20, 25, 25,217, 40, 33, 33, 33,181, 44,241,230, 46, -232, 47,236,254,135, 49, 91,183,227,157,119,222, 33,169,169,169,248,254,251,239, 81, 86,240, 84, 1,149, 6, 3, 88, 78,105, 57, -177, 85,223,243,192, 3,221,185, 20,227, 28, 0,135,168,145,165, 85,171, 86,189,218,172,153, 95, 32, 0,152, 77, 92,104,157, 58, -117,218,139,197, 98,153,189, 12, 55, 11, 8, 8, 88, 13,160,141,155,246, 83, 52,120,240,224,150,193,193,193, 77, 14, 30, 60,120, - 37, 37, 37,229, 58,165,244, 23,215,227,106,213,170, 53,243,214,173, 91,205, 37, 18, 9, 41,163,140, 0, 0, 58,116,232,240, 92, -100,100,100,192,129, 63,124,161,149,214, 6, 21,229, 1, 98, 5, 56,205,139, 72,144,214, 71, 68,196,249, 0,141, 70,211, 56, 55, - 55,247, 74, 57, 95, 16, 29,251,247,239,191, 97,211,166, 77, 17,237,219,183,167,132, 16,198, 53,164, 67,173, 90,181,186,158, 59, -119,174,233,152, 49, 99,214,218, 71, 15,123,236, 60, 76, 41, 77, 0, 48,160, 50, 31,218,225, 59, 52, 22,246,152,103, 2,254, 53, -248,245,111, 58,182, 82, 80,145,200,240, 45,120,158,239,195, 48, 12,172, 86,107,116, 72, 72,200,158, 65,131, 6,245,251,232,163, -143,188, 3, 2, 2, 10, 45, 89,171, 87,175, 54,222,187,119,111,167,213,106,253,141, 16, 50, 43, 57, 57,185, 79,120,120,137,239, - 7,221, 23, 95,124,177,173,119,239,222,111,140, 29, 59,214,216,168, 81, 35,117,189,122,245,242,207,158, 61,235, 29, 21, 21,165, - 21,137, 68,244,204,153, 51, 62,181,106,213, 50, 17, 66,228, 63,255,252,115,214,249,243,231,107, 69, 71, 71,127,131,130,225,214, - 37, 97,235,220,185,115,103,246,233,211,167, 86, 64, 64, 0,180, 90,109, 17,177,229,248,175, 80, 40,144,154,154,138, 93,187,118, -165,216,108,182,111,202,176,108,172, 90,185,122,205,123, 29, 91,190, 92, 69,173, 82, 34, 53, 41, 1, 92, 94, 14, 96,208, 67,198, -218,160,148, 81, 84,169,173,130, 88,228,133,248, 84, 61, 54,157,253, 53,149,101,217, 85,165,113, 90, 44,150, 85,239, 46, 91,246, -222,185, 53,107,170, 68, 14, 28,136, 27,155, 55, 23,118, 21, 58,132, 22, 71, 8,170,117,238, 12,198,215, 23,243,214,174, 77,179, - 88, 44,171, 30,119, 97,225,121, 94,100,177, 88, 74,203, 7,120,158, 79,186,113,227,198, 54, 66,136,142, 16,210,193,190,235,184, - 59,107,150, 51, 39,195, 48,124,253,250,245,119,135,132,132,244, 7, 96,168, 95,191,254,110,185, 92,222,201, 98,177,188,204,243, -124,210,111,191,253,182,139, 16,146, 74, 8,113,124,117, 60,214, 56, 90, 54,155, 13,179,102,205,194,252,249,243, 49,125,250,244, -194,252, 58,186, 15,115,115,115,107,156, 62,125, 90,122,226,196, 9,186,118,237,218,172, 55,222,120, 67, 51,118,236, 88,205, 87, - 95,125,245, 1,128,169, 37,113, 78,157, 58, 21,107,215,174,197, 59,239,188, 83, 92,101,137, 68,124, 82, 82, 34, 76, 38, 19,253, -226,139, 47,146, 37, 18,137,223, 55,223,124,163, 28, 51,102, 12, 17,218,213,199,130,143,149,195, 62,121,223,222,198,172,160,148, - 30,119,236, 80,171,213,202,221,187,127, 16, 3,192,206, 29,187, 36,148, 82, 95, 71,128,217,111,191,253, 86,209,186,117,235,224, - 18, 26, 92, 78,161, 80,152, 23, 44, 88, 16, 48,122,244,232,238, 71,143, 30,245, 35,132,180, 4,112, 17, 64,154, 93, 92, 7, 3, -184, 17, 24, 24,168,142,137,137,169,210,181,107, 87,175,178, 18,170,211,233,190,217,182,109, 91,245,101,167,125,113,192,208, 31, -137,252, 64, 80, 13,133,127,176, 14,245,189, 31, 96,232,208,161,225, 43, 86,172,248, 26, 64,179,114,136,172,161,253,250,245,155, -191,105,211,166,240,209,163, 71,167, 94,190,124, 57, 13,192, 38, 55,130, 47,115,196,136, 17, 41,155, 55,111, 14,163,148,174, 33, -132,200, 40,165, 59,133,226, 35, 64, 64, 97, 93,106,143,130,136,240,197,196, 23,113,231,223, 68, 8,217,195,178,108, 31,177, 88, -188,215, 57, 96,105, 72, 72,200,123, 22,139, 37,140, 16, 66,165, 82,105,106, 90, 90,218, 10,231,128,165, 73, 73, 73,125, 34, 34, - 34, 10,207,177, 7,221,116,142,181,161,126,229,149, 87,186,156, 59,119,238,203,125,251,246,165,235,116, 58,239, 29, 59,118, 40, -231,207,159,159,192,243, 60,157, 54,109, 90,100,183,110,221,242, 57,142, 75, 25, 59,118,108,173, 26, 53,106,140,189,117,235, 86, -172,179,208,114,195, 9, 66, 72,131,218,181,107,159,217,185,115,167, 90,163,209, 32, 61, 61, 29,217,217,217, 48, 24, 12,224, 56, - 14, 18,137, 4, 25, 25, 25,152, 51,103,142, 54, 57, 57,185, 88,192,210, 18, 56, 91, 84,175, 82,229,200,138,207,102,249,104,196, - 12,178,110,223, 4,155,147, 5, 9,107, 67,213, 6,190,144,202,148,184, 19,167,195, 7, 91,119,233, 30,100,231, 22, 11, 88, 90, - 18,231, 75,117,234,196,174,157, 50,197,219,148,152,136,176, 55,223, 68,126,126, 62,172, 86, 43, 24,134,193,159, 43, 86, 64, 26, - 20,132,153, 49, 49,134,235, 15, 30,116,118, 13, 88,234,142,179, 18, 10, 71, 33, 39, 33,100, 60, 33,164,208, 25,190, 95,191,126, - 69,142,253,225,135, 31,176,102,205, 26,152,205,102,150, 82,250, 30,165,116, 53, 33,196,219, 94,160,244,101,113, 86,175, 94,253, - 65,195,134, 13,127,229, 56, 78,108, 23, 25,244,198,141, 27,205,238,221,187, 87,213,133, 83,108,231,100, 31, 87,222, 3, 2, 2, - 86, 28, 60,120,176,122,112,112, 48,113,142,216,110, 23,138, 0,128, 9, 19, 38,116, 62,127,254,188,188, 73,147, 38,230,204,204, -204,230, 65, 65, 65, 71,183,108,217, 18, 56,104,208,160,228,235,215,175, 87,113,229, 12, 12, 12, 92,188,115,231,206,218,181,107, -215,102, 28, 86, 49,215,238,201, 81,163, 70,117,217,178,101,139,172,127,255,254,102,131,193, 16,226,227,227, 19,191,115,231,206, -192,190,125,251,166, 94,191,126, 61,236,113,228, 93,224,116,143,134, 13, 27,222,185,126,253,122,109,199,186,209,104, 68, 70, 70, - 6, 50, 51, 51,161,209,104, 16, 21, 21,245,231,189,123,247,106,187,227, 36,132, 52, 25, 48, 96,192,103, 95,127,253,117, 23, 47, - 47, 47,233,201,147, 39, 13,177,177,177,166,132,132, 4,214,102,179,209,176,176, 48,113,155, 54,109, 20, 61,122,244,240,146,203, -229,204, 39,159,124,146,249,249,231,159, 7, 18, 66,182, 58,166, 63,115,229,108,218,180,233, 47, 63,253,244, 83, 11, 66, 8, 68, - 34, 17, 44, 22, 43,114,115,115,241,240, 97, 18,110,220,184,129,115,231,206,225,240,225,195, 87,244,122,125, 19, 15,235,123, 0, -128,147,102,179,185,158, 76, 38,243, 88,216,115, 28, 7,177, 88,124, 27, 64, 87, 74,105,146, 80,150, 4, 78, 1,127,249,103,149, -203, 25,222, 46,192, 90, 16, 66, 28,147,146, 94,112, 13,225, 64, 8,249,136, 16, 50,203,201, 10, 86, 86, 90,180, 7, 15, 30, 60, -213,165, 75,151, 9,157, 59,119, 94,214,181,107,215,148,148,148,148,154, 75,151, 46,141, 96, 89,214,122,227,198, 13, 38, 62, 62, - 62,225,226,197,139,181,235,214,173, 59,246,214,173, 91, 39,202,176,102, 57,210,122,131, 16,210,186, 99,199,142,187,198,142, 29, - 91,173,101,203,150, 50,141, 70, 3,177, 88,140,187,119,239,226,202,149, 43,150,152,152,152,164,220,220, 92,143,167,224,161,148, - 94, 32,132, 68, 13,154,248,222,206,177,253,122, 7,190, 92,239, 57, 89, 88, 88, 24, 96, 52,226,246,131, 84,156,191,125,197,186, -254,212,249, 12,179,217,252,154,167, 83,240,216, 57,187,116,154, 50,101,231,236,215, 95, 15, 65, 74,138, 56, 44, 44, 12, 50,153, - 12,247,238,221, 67, 60,207,179, 11,214,173, 75,211,106,181,143,125, 10, 30, 71,204, 43,158,231,197, 0,160, 84, 42,241,238,187, -239,194,121,202,157, 53,107,214,192,104, 52, 2,128,152, 16,178,136, 16,178,161, 36, 43, 86, 9,156,213, 14, 28, 56, 80,205,153, -243,249,231,159,119,199,105,126,220,149, 36, 59, 59,123,230, 43,175,188, 18, 45, 22,139, 75,140,122,235,231,231, 7,157, 78, 7, -150,101,185,135, 15, 31,222,246,243,243,131, 68, 34, 1,165,212,109, 61,202,202,202,154,249,218,107,175,205,101, 24, 38,184, 36, - 78,181, 90,157,112,244,232,209, 58, 99,198,140, 97,254,247,191,255,221, 29, 61,122,180,252,232,209,163, 28,165,116,151,208,116, - 61, 89,112,254, 40,181,127,196,209, 82,142,253,141, 16,178,236,226,197,139, 65, 19, 38, 76,168,249,250,235,175,171, 59,118,236, -232,237,124,140,209,104,228,127,252,241, 71,195,154, 53,107,242, 78,157, 58,117,127,212,168, 81, 45, 81,224, 95,226, 22, 15, 30, - 60,216, 63,111,222, 60,223, 30, 61,122,212, 5, 80,232,159,149,145,145,129,132,132, 4,252,254,251,239, 9, 86,171,117,111, 57, -242,147, 69, 8,153, 61,100,200,144, 69,155, 55,111, 14, 31, 61,122,116,106, 76, 76,204,239, 40, 8, 48,236, 10, 77,191,126,253, - 26,109,222,188, 57,108,244,232,209,169, 0,230, 80, 74, 5, 63, 66, 1, 2,254, 66, 7, 87, 63,173, 82,125,180, 0,228,241, 60, - 15,147,201, 20,194,243,124, 31,158,231,225,237,237,237,238,184, 22,201,201,201,125,156, 39,149, 70, 25,211,229, 0,200,136,141, -141, 61,178,117,235,214,206,211,166, 77,123, 61, 55, 55,183,197,213,171, 87, 91, 2,128, 68, 34, 57,231,229,229,245, 75,116,116, -244,155, 83,167, 78,205,240, 68,100,185,136,173,250,139, 23, 47,174,180, 73,165,237,194,168,206,170,237,187, 38,124, 35,151, 71, -185, 76, 42,125,196, 62,169,180,169, 34,156, 83,190,254,122,130,122,251,246, 39,118, 82,105,179,217,204,246,239,223,255, 27,134, - 97,120,251, 87,172,216,108, 54,191,137,114,142, 84,117,229,236,215,175,223,255, 68, 34, 17,107,183, 20, 49,102,179,249,173, 71, -225,172,196,151,168, 30,192,196,210,142,121,225,133, 23,182,236,221,187,119, 88,159, 62,125, 56,171,213,154,222,187,119,111,241, - 47,191,252, 66, 25,134,137, 45,129,211, 12,224,191,165,113,134,134,134, 70,174, 92,185,242,242,164, 73,147,212, 91,183,110,245, - 63,125,250, 52,247,197, 23, 95,104,179,179,179,151, 8,237,214,147, 5,137, 68, 2,149, 74, 5,139,197,130,140,140, 12,148, 21, -178,138, 82,122,140, 16,210, 99,202,148, 41,175, 78,153, 50,165, 71,104,104,104,173,234,213,171,171, 24,134,193,195,135, 15,217, -228,228,228,116,155,205,118, 4,192, 46, 0,168, 85,171,214, 8, 0,235, 75,226,203,202,202,154, 75, 8, 57,182,121,243,230,158, - 94, 94, 94,245, 21, 10,133,191,205,102, 99,116, 58, 93,182,209,104,188,105, 50,153,246, 81, 74,207,150,179,220,199, 16, 66, 50, -223,120,227,141, 13,155, 54,109,138,184,123,247,174,238,226,197,139,175,184, 30, 87,191,126,253,211,155, 55,111, 14, 27, 51,102, - 76, 74, 76, 76, 76,185,124,180, 4, 8,248,151,124,136,157, 64, 9,254,197, 37,189,224,230,201,100, 50, 49,236,147, 75, 59, 44, - 90,110,142,187,224,226,147,149, 7, 96,158, 7,105, 50, 12, 29, 58,244,222,208,161, 67, 23,217,211, 32, 66, 65, 8, 7, 22, 5, - 30,255, 86,148, 17,210,161,132,140,178, 0,190,182, 47,149,117,243, 76, 40,136,151,179,248, 73,230,172,132, 52,153, 9, 33, 83, - 8, 33,139,236,155,166,252,246,219,111,171, 93, 44, 84, 87,157,247,151,101,121,114,199,121,229,202, 21, 87,206,223,203,195,249, - 79, 34, 55, 55,247,189,149, 43, 87, 94,152, 62,125,186,124,228,200,145,248,253,247,223, 49,127,254,124,115,110,110,238,214,138, -114,166,166,166, 38,132,134,134, 54, 93,190,124,249,135,203,150, 45,235, 75, 8, 17,230, 58,124, 66, 96, 52, 26,255,124,241,197, - 23, 65, 10, 28,150, 40,203,178,133,163, 69,237, 17,254,255,244,196,106, 4, 96,157,125, 1, 33,196, 31, 5,163, 12,179, 40,165, -174, 31,146, 83, 60,224, 59, 7,224, 92, 37,215,253, 99,132,144, 55,227,227,227,231,253,249,231,159,110,133,218,157, 59,119,142, -183,105,211,198,231,234,213,171, 31, 83, 74,247, 11,165, 67,128, 0,207, 33, 46,161,226,221, 1,240,186, 7, 21, 52,250, 17,174, -205,121, 96,253, 18,240,120,197,214,106, 66,200, 6, 39,107, 76,185,246, 63, 46,206,127, 10, 73, 73, 73, 57, 0, 10,167, 34,169, - 89,179,102, 49, 63,182,138,138, 45, 20, 68,129, 23, 34,193, 63, 65,184,123,247,238, 43,127, 67, 29,203,126, 66,235,254,113, 0, - 45, 75,218,111,179,217,102, 1,184,162, 10,252, 0, 0, 32, 0, 73, 68, 65, 84,152, 37,148, 10, 1, 2,202, 15, 33,250,180, 0, -215, 6,215, 92,154,224, 41,107,255,227,226, 20, 32, 64,128, 0, 1, 2,158, 20,184,153,235,176,125,225, 62, 0, 93, 74,120,249, -197,150,227, 2,229,158,208,179, 44,126,129, 83,224, 20, 56, 5, 78,129, 83,224, 20, 56,159, 61, 78, 39,238,101, 37,236,186,237, -194,247,213,211, 40,188, 10, 71, 31, 82, 74,255,182, 5, 64, 23,129, 83,224, 20, 56, 5, 78,129, 83,224, 20, 56, 5,206, 10, 94, -103,236,227,184, 78, 37,167,153, 2,104,239, 88, 23, 67,128, 0, 1, 2, 4, 8, 16, 32, 64, 64,165,192,163, 56, 90, 59,118,236, - 16, 57,254, 15, 25, 50,100, 20,199,113,133,195,222, 69, 34,209,202,239,191,255,126, 67,105, 23, 25, 48, 96, 0, 87, 26,167, 59, -148,117, 29,119,156, 13,159,243, 29, 23,224,171,122, 47, 55, 47,127,249,221,100,238,148,201,100,170,239,216,167, 80, 40,110,110, -216,176,225,143,202, 78,231,168, 81,163,234,186, 94,167,122,132,164,131,191,143,226,221,236, 92,253,210,223,255,208,125, 37, 20, -179,191, 23, 3, 7, 14, 44,215,241,247,238,105,112, 25, 97, 80,123, 73,161, 55,216,192, 93,122, 54,124,122,195,194,194,234,169, -213,234,225, 0, 26,228,231,231, 7,171, 84,170,116, 0, 55,180, 90,237,150,148,148,148,219,158,242,116,168, 65, 18, 0, 84,179, -175, 62, 56,126,143, 70,122,178,175, 44,116,171, 77, 76, 20,144, 19, 2,235,161, 59,180,112, 2,205,238,117,136,137,167,197,183, -119,171, 67, 44,148, 66, 74, 0,243,161,120,170,120, 86,202, 43, 33, 68, 13, 32, 10, 64, 67, 0, 87, 1, 28,166,148,230, 11, 53, - 89,128,128,103, 7,174,129, 74,157,215,197, 37,136,137,118, 82, 49,249,146,130,106, 0, 26, 96, 54,155, 37, 50,153, 12, 22,139, - 5, 42,149,114,213,219,163, 71,125, 6, 6,185, 54, 22,239,110,216,176,161,194, 51, 93,151,231, 58, 3, 6, 12, 56,230,122,190, -159, 90, 57,247,248,143,211,252,218,245, 92, 48,223,114, 47,115,170, 78,167, 99,228,114, 57,204,102, 51,124,125,125, 91,143, 27, - 59,182, 25, 35,161, 22,169,212,235,236,178,101,203, 82, 43,154,206, 15, 62,248, 32,212,106, 53,253,135,231,121,153,197, 98,145, -187, 94,199, 87,229,181,224,248,143,211, 84,237,123,205,255, 12,128, 32,180,158, 32, 20,136,172, 80,188, 63,244,101, 44,156,212, - 5,154, 14, 11,158,133, 10, 45,170, 89,179,230,132,200,200,200,193,235,214,173,147,214,172, 89, 19, 10,133, 2, 70,163, 49,236, -207, 63,255, 12, 27, 55,110, 92,251, 90,181,106,109,187,123,247,238, 42, 74, 41,231, 1,101,181,227, 27, 63, 1, 0,180, 30, 62, -167, 26, 33,228,191, 0,242, 1,160,125,245,191,246,117, 24, 57,167, 26, 33,100, 10,138,142, 22, 78,161,148,186, 13,146, 73, 1, -217,190,205,139,209,103,196,127,197,132,144,113,142,237, 61,234, 2, 63,125,187, 2,221,135,188, 87,100,123,183, 90, 16,255,184, -121, 49,122,141,248,111,137,179,154,119,175,203,216,120,158,150,104,137,103, 24,194, 30,186, 67,221, 77, 48,156, 70, 41, 61,228, -230, 94,118, 67,193,132,206,110,143,239,245,188, 56,205,106,227,220, 6,156,149, 74, 68,233,251,110,177,197,206, 29,217,148,216, -108, 92, 65,219, 42, 21,131,243,245,245, 61,254,241,199, 31,139,123,245,234,133,245,235,215,183,249,234,171,175,198, 18, 66,126, - 6,176,151, 82, 26, 47,212, 82, 1, 2,158, 93,193, 85,162,208, 18,139,176,118,239,206, 13,181,211,210, 51,241,198,152, 15,177, -117,235, 86,228,228,228,192,207,207, 15, 50,169, 84,178,124,209, 39,161,106,181, 87,232, 27, 99,167,174, 5, 80,175,162, 9, 42, -231,117,234, 20,203,144, 61,160,169, 88,196, 72,100, 50, 25,179,109,219, 54,228,230,230, 66,163,209, 64, 38,147, 48,203,230,127, -164, 84,171,189,149,111,141,159,222, 6,192,246,138,166,211, 98,209,183,217,189,117,131, 58, 35, 35, 3, 35,223,153, 10,215,235, - 72,165, 82,206,241, 98, 17,138,217, 63,135,204,204, 76, 0, 64, 96, 96,160,139,200,106,137,101,147,187,226,131,165,135,145,111, -178, 60,245,249,172, 89,179,230,132,129, 3, 7, 14,158, 59,119,174,148, 97, 10, 6, 14, 27, 12, 6, 24,141, 70, 84,169, 82, 5, -199,143, 31,151,206,156, 57,115,240, 15, 63,252, 0, 0, 95,148,151,255,250,245,235,213,171, 85,171,102, 2,128,222,141,124, 92, -247, 69, 58,246, 1,128,143,143, 79,153,124, 1, 26, 47,243,245,235,231, 27, 56,206,155,208,185, 10, 87,194,118, 19, 0, 85,105, - 92, 60, 79,197,135,191, 28, 87,226,254, 49,115,191, 99,175,110, 63, 85,175,102,205,154, 70,231,237, 37, 4, 92, 6,128, 16,189, - 94, 95,205,117,163,227,120,171,141, 11, 46,233,122, 93,223, 93,227, 86,128,217, 56,136,191,251,238, 59, 0,192,146,255, 14, 19, -125,253, 75,166, 88, 44, 46,104,106, 23, 45, 90,132,217,179,103,203, 14, 29, 58,212, 99,243,230,205, 61, 8, 33,203, 75, 18,170, - 2, 4, 8,120,250, 68,150,243,111,169, 66,139, 33,196, 71,237,227,141, 1, 67,223,198,193,131, 63,161, 93,187,118,133,251,106, -212,168,129,129,175,245,197,247, 27,151, 1,128,207,163, 36,234, 81,175,147,147,103,248,191,238,131,191,156,243, 32, 85,127,110, -223,190,125,104,219,182,109,145,243,135, 14, 26,128,111,191, 89, 4, 74,169,244,145,110, 30,101,164, 62,106, 47, 12,121,227, 29, -184,187,206,216,145,253,246,117, 27,184,162, 75, 90,150, 97,153, 80,212, 30, 47,110,221,186, 5,179,217, 12,181, 90, 13,137, 68, - 2,185,166, 26,146,197, 45,144, 65,106, 34, 61, 56, 31,147,187,132, 96,201,251, 29,241,193,210,195, 88,190,245, 60,154, 34,245, -169,206,111, 88, 88, 88,189,200,200,200, 34, 34, 75,167,211, 65,175,215, 67,171,213, 66,167,211,129, 97, 24, 76,157, 58, 85,122, -226,196,137,193, 97, 97, 97,177, 30,116, 35, 62,104, 61,124, 78,129,216, 16, 73,244,179,102,205, 50, 7, 7, 7,155, 85, 42, 21, - 21, 75,229,186, 14, 35,231,248, 0, 0, 35,150,234,150, 47, 95,110,169, 82,165,138, 73, 44, 22,203,222,123,239, 61,143,194,195, -152,205,102,234,204,105,177,152, 11,183, 47, 88,176,192, 18, 18, 18, 98, 86,169, 84,212,106,245, 92, 4, 95,187,151, 13,185, 84, - 4,185, 84, 4,133, 76, 2,159,234,205, 33,207,249, 29, 44,203, 98,225,194,133,214,208,208, 80,139, 74,165,162, 50,153, 76, 58, -105,210,164, 50,211, 57,106,212, 40,170,209,104,172, 42,149, 74, 58,123,246,236, 98,209,157,143, 94,125, 8,165, 76, 2,149, 92, -140, 58, 53, 34, 32,167, 70,143,211, 42, 18, 21,245, 70,144,203,229,104,211,166, 13, 26, 52,104,128, 61,123,246,116, 0, 32, 8, - 45, 1, 2,158,114,184, 90,177,138, 9,173,253,251,247,183,135,125,214,233,158, 61,123, 22,204, 54, 13,138, 41, 19, 94,195, 91, - 35,135,128,227,248,194,233, 38, 8, 67, 48,254,205, 30,224,121,206,147, 11,151, 57,196,179,188,215,113,230,164,132, 17, 1, 64, -237,200, 48, 58,246,173,215,193,241,124, 65, 24, 84, 0, 16, 1,111,143,236, 94,176,173, 18,210, 41, 2,135, 15,199,189, 10,119, -215,169, 87, 59,156, 97,173, 38, 16,167,201, 30,255,142,201, 54, 5,206,162, 56,123,246, 44, 84, 42, 21,134, 13, 27,134, 73,147, - 38,129, 19,107,176,227, 92, 22,166,173, 62,135,124,179, 21, 67, 59, 86,199,228,215, 27, 97,242,242,163,133, 34,171, 70,141,220, -167, 58,239,106,181,122,248,186,117,235,138,137,172,180,180, 52, 70,175,215,195,106,181,242, 58,157, 14, 28,199, 97,250,244,233, -146,153, 51,103, 14, 39,132,204,182,243,152,221,113, 30,191, 71, 35, 9, 33, 83,174, 95,191, 30,249,241,199, 31, 91, 59,117,234, -244,160, 70,141, 26, 6,145, 72,132,176,176,176, 21, 81, 81, 81,254,115,231,206,181,246,232,209,227,190, 72, 36, 66,157, 58,117, - 12,191,255,254,123, 36, 0,165,167,121,119,230,220,112,116,165,227,171, 15, 81, 81, 81, 9,117,234,212, 49,136, 68, 34,252,241, -227, 2,234,233,253,148,136, 25,212,173,226,235,248,140, 4,148,222, 64, 78,193,106, 84, 84, 84, 82,189,122,245,244, 12,195,224, -218,181,107, 17, 0, 20,101,113, 42,149, 74,219,208,161, 67, 31,220,190,125,187,216,241, 0, 32, 22, 49,104, 89,207,110,192,170, -210, 20, 72, 58, 93, 98, 58, 37, 34,176, 51, 39, 12, 19,107, 20,128,220, 39,208,172,213,106,161, 86,171, 11, 44,100, 86, 43,126, -251,237, 55,180,106,213,170,253,246,237,219, 79, 8,245, 93,224, 20, 56,255,130, 59, 45,242,180, 89,179, 28,130,203,157,143,214, -113,215, 76,113, 28,139, 26,213, 66,176,224,147, 81,224, 56, 30, 28,199,129,181,255,114, 28, 7,155,213, 90, 41,137,123,148,235, -248,169,149,115,127,218,246,174, 95,167,126,139, 58, 71,127, 60,242, 8,199, 1, 60,111,131,205, 6,112,188, 13, 60,199,193,102, -171,156,174, 34, 27,207, 35, 50, 34, 20,209, 31,143,132,235,117,182,124,191,189,247,209,189, 83, 85,237,122,205,255, 16,192, 66, - 65,219, 63, 30, 75,150, 74,165,194,150, 45, 91,208,188,121,115, 0,192,169, 56, 22,211, 86,159,195,161,232,214,104,221, 32, 0, -233,185,102,188,183,234, 10, 14,158, 75, 47, 38,178,158, 98, 52,168, 89,179,102, 17,145,181,120,241,226,192,213,171, 87, 87, 1, -128,215, 94,123,237, 97,231,206,157, 51,227,226,226, 16, 22, 22, 70, 50, 51, 51,123, 2,120,207, 94,241,167, 80, 74, 87,151,192, -107,168, 86,173,154, 41, 40, 40,200,236, 16, 68, 12,195, 64, 44, 22,163, 90,181,106,166,224,224, 96,115,157, 58,117, 12, 82,169, - 20, 12,195,192, 33,244, 60,108,128, 32, 18,137,224,224,116,181,246, 56, 56,203, 3,137,216,233,120, 90,220,130,196, 48,140,219, -235,149, 4,133, 66, 65, 1,148,120,188,136,113,106, 30,197,165,123, 8,108,188, 76, 37,132,144,227,148, 82, 92,190,124, 25,119, -239,222,133, 84, 42, 69,104,104, 40,102,207,158, 13,179,185, 64,239, 14, 28, 56,176, 61,128,107, 66,109, 22, 32,160, 16,199,159, - 54,129,229,106,213,114,231,163,197,184, 81,147,133, 2,168, 64,236,184, 17, 63, 54, 22, 54,155, 21, 40, 99, 82, 85, 79,133, 86, - 73,215,225, 56,190,212,235, 56,124,180,120,158,138,221,138, 44,158, 7,107,179, 85,202, 13,228, 57, 27,120,222, 6,119,215, 33, -132,225,236, 13,190, 84,168, 39,143, 7,102,179, 25, 67,134, 12, 41, 20, 89, 0,144,169,179, 33,223,108, 67,235, 6, 1,104,214, -113, 32,130, 53,114,196,156,124,136, 96,141,234, 89, 17, 89,200,207,207, 15, 86, 40, 20, 48, 24, 12,133,150,172,213,171, 87, 87, -177, 88, 44,140,197, 98, 97, 98, 98,182, 71,108, 61, 18, 87,117,203,161,184,170,235,118, 93,170,154,147,147,215,128, 82,170,164, -148, 42, 1, 44, 34,132,200, 75,227,151, 74,165,133, 2,197, 89, 0,201,229,242, 10, 9,152,194,134,198, 46,206,164, 82,169,219, -237,174,221,107,101, 65,234, 44,180, 64, 11,172, 90, 46, 98, 75, 36, 18,193,225, 27, 85, 22,100, 50, 89, 97,222,221, 65, 44,114, -186,158,168,252,174,152, 86,171, 21,122,189, 30,185,185, 69, 44,170,112,136, 96, 1, 2, 4,184,215, 34, 79,171,216, 42,210,126, -184,170, 73,216,103,159,102,109, 86,183,226,103,251,143,103,240, 32,213,128,208,192, 11,160, 37,204, 84, 93, 18, 6, 15, 30,188, - 49, 44, 44,172,112, 62, 45,185,210, 59, 96,236,187,159,130,101,173,240, 81, 50, 24, 51,188,123, 17,145, 85, 96,209,178,160, 36, - 57,151,147,103,248,191,238, 3,191,152,227,171, 14, 56,231, 42,126,162, 55, 93, 26,144,163, 53, 71, 48,204,175,200, 33, 97,220, -192,183, 63, 29,229,212,184, 95,221,182,102,214,100,143,111, 28, 97, 36, 3,198,173, 24, 75,197,222,245, 85,140,238,228,180,145, - 47,239,118, 22,115,254,254,254,251,186, 14, 88,222, 37, 45, 91,240,209,122, 92,144,201,100,152, 52,105, 82,145,109,129, 62, 18, -168,228, 18,156,185,145,137, 75,199,182,227,212,245, 76, 40,164, 34, 4,209,187,207, 76,190, 85, 42, 85,122,126,126,126,152,209, -104,132, 86,171,133, 86,171, 45, 42, 8, 36, 18, 50,246,157,137,129, 18,169, 12, 54,171, 5, 7,183,124, 94, 38,103,135, 26, 36, -161,125,117, 84,235,221,200, 7, 34,137, 76,119,163,102,205, 21, 98,177, 24, 12,195,224,199, 85,211,222,219,181,244, 93, 31, 0, -184,186,111,149,118,200,212,149, 95, 48, 12, 3,179,217, 44, 47, 79,186, 19, 19, 19, 35,204,102,179,201, 46,208, 28,166,117,220, -187,119,175,170,217,108, 54, 58,111,247, 4, 74,149, 15,160,169, 1,168,130,139, 89,207,238,223,191, 31,110,179,217,242,197, 98, - 49, 44, 22,139, 71,170,136, 97, 24,233,181,107,215, 34,120,158,119,123,124,131, 90,225, 64,104, 35, 64,230, 91,158, 6,215,163, - 99,220,125, 1, 11, 16,240,111,183,108,161,156,250,226, 73, 16, 88,238,254, 59, 11,173, 14,251,247,239,167,206, 95,136,172,205, -102, 23, 89,127,137, 30,142,227,145,156, 97, 66, 92,220, 31, 88,190,124, 57,206,156,255,175,239,220,185,115,229, 51,103,206, 52, - 15, 30, 60,120, 41,207,243, 47, 50, 12,115,117,192,128, 1,110,191,210,120,158,175,122,233,210,165,154,142,117,155,205, 6, 31, - 31, 31,248,248,248,160, 94,157,136, 98, 34,139,227, 56, 88, 75,233, 58,116,248,104, 17,202, 83,155,141, 3,199,243,133,226, 39, - 71,107,142,216, 27,123,185,182,211,225,207, 57,254,180,105, 94,191,100, 49, 56,110,118, 97, 62,182,173,153, 53,121,238,250,245, -242, 28, 46,104,210,144, 1,111, 53, 28, 56,100, 56,134,190,250, 74,123,179,197,178, 71,196, 80,222, 86,120, 61, 48,160, 40,226, -163, 37,224,239, 67,102,102, 38,140, 70, 35, 52, 26, 77,145, 23, 86,152,151, 1, 83, 7,213, 69,212,180,211, 48, 89, 57,200, 37, - 12,222,235, 27,137, 95,126,136, 65,166, 57,179,112, 52,226, 83,142, 27,241,241,241, 97, 85,171, 86,133, 86,171, 5,203,178,252, -107,175,189,246, 80, 44,150, 68,136, 37, 18,210,107,200, 68, 62, 53, 53,217,198, 48, 34, 80,202,225,149,129,227,136, 92,161,148, - 90, 45, 22, 22,192,148, 18,230,148,116, 14,225,224, 19, 21, 21,229,239, 24, 9,184,107,233,187, 62, 78,251,212,205,154, 53,243, -119, 30,117,232,161, 40, 38,131, 7, 15, 86, 86,171, 86,141, 0,192,175, 91, 62,118, 88,207, 72,239,222,189, 21,213,170, 21,248, -225,255,188,202,243, 57,181, 3, 85, 20,200,187, 7,228,221, 47,102,201,234,221,187,183,188,102,205,154,229,170,139,118, 7,248, - 18, 99,119,121,137, 89, 32,245,178, 71, 92, 35,155, 18,219,199,237, 32, 94,250, 10, 3,153,119,128,185,229,180, 67,191, 8, 98, - 75,128, 0,143,224,162, 69,158, 30,216,231, 54, 60, 14,160,131,253, 23, 69,124,180,122,246,236,121,162,136,122,164,128,141,181, - 22, 19, 89, 28,199, 65, 66,204, 88,190,124, 57,222,127,255,125, 0,144, 78,158, 60,121,247,220,185,115,251,243, 60,255, 34,165, -180, 45, 33,164,180,175,198,227, 97, 97, 97,105,148, 82, 9,195, 48,109, 87,173, 90,229,223,163, 71, 15,248,248,248,128,242,180, -152,200,226, 56, 30, 86,171, 5, 37,153,180,252,212,202,185, 63,109,159,228,215,169,239,162,206, 28,207, 31,113,136, 44,158,227, - 0,190,224,164,172,244,135, 56,124,112, 15,214,174, 89,155, 3, 66,111,129,130,103, 24,230,106, 73,105,228,121,254,197,211,191, -222,108,219,166,121,125,204, 93,191, 94,126,253, 82,202,238,137, 31,204,104, 56,112,200,112,108,255,126, 11, 24, 54,247,178,179, -200,226,108, 60,242,114, 50,123, 31, 19,124,180,254, 49,216,108, 54,228,228,228,192,166,207,193, 75, 97, 6,124, 58, 48, 24,105, - 57, 38, 72,248,124, 60,175, 78,199,177,236,251, 80,169, 84,207, 68, 94,181, 90,237,150,113,227,198,181, 63,121,242,164,148, 97, - 24,104,181, 90,116,236,216, 49, 51,131,175,162, 24,251,206,196,192,228,228,135,172, 90, 41, 54, 75,165, 18,164,167,167,243,237, -123, 12, 51, 14, 25,245,126,248,251, 31, 71,175, 75, 62,179,122,181, 39,215,112, 30, 9,232,186,239,235,175,191,182, 84,169, 82, -197, 36,151,203,101, 35, 71,142,244,168,255,208, 98,177,208, 5, 11, 22,152, 93, 71, 23, 90, 44, 22,186,124,249,114, 75, 68, 68, -132, 89,169, 84, 82,155,173,108,191, 79,134, 33,236,152,185,223,177, 44,203, 22,177, 98, 57, 68,150,141, 39,250, 47,191,252,210, - 26, 17, 17, 97, 81,169, 84, 84, 46,151, 75, 61, 73,231,196,137, 19,169,159,159,159,213,203,203, 75, 58,117,234,212, 71, 26,117, -104,227, 32,158,187,170, 48,188,131,220,199,199, 7, 58,157,174, 48,173, 97, 97, 97,130,216, 18, 32,192, 13,138,105,145,167,204, - 10, 87,146,143,150, 91, 7, 6, 30,208,167,165,103, 6, 7,134, 84, 7,203,178,246,197, 6,214,102,195,164,183,135, 96,233,154, - 47, 1,192, 33,182,162, 38, 79,158,188, 27, 46,254, 94,238,176,109,219,182, 57,147, 39, 79, 86,167,165,165, 29,218,184,113,163, -255,176, 97,195, 48,101,202, 20, 44, 90,180, 8, 18,153, 2,254, 65, 85, 11,175,227,184,110,102, 70, 54, 40,168,222,173,130,180, -251,104, 81, 10,113, 64, 80, 36,108,156, 13,188,205, 6,155,205, 6, 34, 42,200,218,225,131,123, 48,236,205,137,144,200,213,126, - 43,151, 47, 52, 54,124, 41,172,255,204,209,163,205,101,203, 83, 48,215, 47,165,236,158,248,254,212, 40,135,200,218,185,101,205, -173, 37,211,251,110,149,203,196,133,215,177,241, 60, 24, 70, 36,248,104, 61, 70, 4, 6, 6, 34, 35, 35, 3,185,185,185,240,242, -242, 66, 86, 86, 22,178,179,179,145,155,155, 11,179, 54, 7, 1, 92, 46, 8,155, 13,177, 88,140,244,196, 2, 31,192,103,196,154, -133,148,148,148,219,181,106,213,218, 54, 99,198,140, 33,211,167, 79,151,240, 60,143,184,184, 56,128, 16, 42,145,202,192, 48, 12, - 36, 18, 49,242,242,180,188,202, 91,147, 98,165, 34,149, 68,250,255,236, 93,101,120, 84,215, 22, 93,231,142, 79,220,136, 17,197, - 3,193, 93,130, 20, 45,218,226,193, 93, 10, 20,104,113,138, 4, 9, 77,113, 43, 82, 74,105,208,240,112, 41, 86,156, 96,129, 32, - 9, 22, 18, 66,146,137, 18,159, 76, 70,239,121, 63,152,201,155,132,200, 76, 8,165,237,155,245,125,243,205,204,185,231,174,123, -174,157,187,238, 62,123,239, 35, 0,195,225,151, 22, 38,252,182,253,200,247,233, 29, 24, 46, 63, 71, 23, 9,200,231,243,113, 59, -100,117,118,251,145,203,172, 0,128, 47, 20,103,116,233,210, 37,182,118,237,218,210,251,247,239,123,162, 72,212, 97, 49,247,167, -250,171,145,179, 57,102, 98,145,180,115,231,206,111,117,156,111, 46,108,206, 30, 54,121, 1, 33, 28,129,180,103,207,158,177,190, -190,190, 82, 14,135,131,200,227, 65,217, 95,141,156, 45, 34,255,139,233,253, 0,231, 94,209,113,143, 66,174,215, 90,177, 98,133, -170,123,247,238,113, 58,127,177, 55,111,222,184,246,232,209, 67,184,110,221, 58, 85,143, 30, 61,226,235,214,173,155,203, 48, 12, -194,194,194,220, 74,179, 84,233, 32, 22,139, 85, 99,198,140,121,251,228,201,147,114, 69, 29,150, 5,119,119,119,176, 44,139, 14, - 29, 58, 32, 63, 63,223,100,217, 50,193,132,127, 33,138,230,209, 42, 53, 51,188, 74,173,154, 50,225,219,165,155, 1, 98,161,215, - 11,252,207,176, 68, 65,190,255,254, 59,115, 0, 98,157,216,154, 49, 99, 70, 70, 89,141,208, 19, 89, 77,134, 12, 25,130,121,243, -230, 97,205,154, 53,154,159,126,250,137,243,252,101,140,114,228,228,197,153, 69,182, 3, 10,154,203,170,216, 41,197,241,101,100, - 73, 23,251,245, 88,181, 52, 33, 57,239,198,200, 73, 11, 11,122, 47, 13,128,108,226,162, 1,128,109, 63,255, 44,229, 9,173,204, - 7, 12, 30, 6, 0,157, 55,175, 15, 58,186, 28,191,148, 45,182, 40,241,153, 50, 99,182,173, 78,100,109, 89,183,226,137, 53, 73, -222, 52,245,187, 8,149,254,118, 0,192,206, 18, 71,253,122,172,234,154,146, 46,221, 96,186,212,254, 26, 40, 20, 10,108,220,184, - 17, 11, 23, 46, 68,122,122, 58,210,210,210,144,145,145, 81,240,201,205,205,133,179,179, 51,254,248,227,143, 15,252,152,254,233, -136,142,142,222,114,226,196, 9, 92,189,122,117,208,220,185,115,121,206,206,206,196,218, 58,153,168,148, 10, 0,148,166,166,166, -178,102, 22, 54,137, 14, 78,110,111, 37, 73, 41, 62, 42,165, 2,172, 70, 89,162,183,185, 54,189,195,247, 79,159, 62,245, 90,189, -122,181, 66, 63, 18,112,240,236,205, 27, 27, 55,110,108,183,105,211, 38, 69,207,158, 61, 99,117,206,235,134, 56,195,159,127,141, -111,159, 62,125, 92,167, 40,103,251,241,171,119,233, 56,245,163, 17,123,125,183,125, 87,245,234,213,237,124,125,125, 99, 75,227, -173, 82,165,138,204,197,197, 69, 81,171, 86,173, 92, 30,143,247,222,146,165, 82,229, 85,169, 82,133,117,114,114, 82,212,174, 93, - 59,215, 88,167,125,177, 88, 76,117, 86,177,226, 96, 76,212, 33,143, 3,245,144, 33, 67, 10, 50,195,127, 95,189,122,226,176, 97, -195, 92,102,206,156,137, 93,187,118,225,230,205,155,233, 69,215,105,215,174, 29,174, 93,187,182, 20,192, 98,211,221,109,130, 9, -255, 60,148,153, 71,171, 40,118,239, 14,190, 4, 61,159,166,226,176,124,249,114,161,214,146,213,121,250,244,233,144,201,100,182, -197,168,187, 78,186, 92, 27,197,137,172,160,160,160,253,148, 82, 55, 0,109, 52, 26,246,206,206, 95,118,119, 48, 64, 49, 22,112, - 82,194,112, 24,134,228, 10,120,244,225,207, 59,118,237,213,175,167,117,126,175, 9,130, 71,155,215, 7,201, 0,116, 46, 42,182, -250,247,239,159, 87,148, 83,135,137,147, 38, 22,136,172,205,235,131, 46,248, 54,241,248,122,225,216,101,197,138,179,101,139, 39, -152, 51, 12,105,165,239,163, 85, 28,103, 5,168,101, 19,167, 22, 66,161, 16, 7, 14, 28,128,159,159, 31,234,215,175,143,244,244, -116,228,230,230, 34, 55, 55,183,192,234, 21, 25, 25,137,216,216, 88, 8,133,194,127,213,190,107,167,213,217,232,226,226,114,113, -209,162, 69,195,210,210,210,122,100,100,100,218,159,218,189, 12,221, 6, 76, 34,237,186,251, 75, 21,148, 43,138, 79, 76,174,117, -229,204, 62,187,179, 7,183, 64,169, 80, 76, 32,228,231,103,186,244, 14,197,180, 51, 79,151,198,161, 86,173, 90, 82,125,161,226, -225,225,145,239,234,234, 42,247,245,245, 45, 40, 47, 46,154,175,184,125, 55,150, 83,235,255, 37, 45,235,120,234, 68, 91,209,180, - 17,102,102,102,208,137, 47, 99,218,169, 31,109, 89,108, 71, 89, 70,212,161, 62,231,111, 15, 40, 79,127,217,111,132,112,130,131, -131, 59, 5, 7, 7, 55, 1,240, 16,192,121, 0, 42,237,122, 5, 78,243,148,210, 37, 0,150,152,238,119, 19,231,255, 43,231, 63, -220,154,213, 14, 90,223, 44, 45,218, 83, 74,175,150, 40,180,202,130,206,241, 29, 0, 51, 99,198,140, 12,153, 76,102, 59,108,216, -176, 82,215, 73, 74, 74,218,181,103,207,158, 66, 34,171,111,223,190,163, 14, 31, 62,124, 49, 37, 37,165, 92, 59,102,107, 37, 94, -126,245,228, 28,219,118, 61, 87, 77, 7,240, 83,241, 50, 19,172,111, 19,151,175, 55,175, 15, 58, 90, 68,108,253, 14,160,111,113, -199, 11, 0,186,124,217, 7,251,118,111,214,249,118,137,159,220, 79, 56, 59,232, 65, 64,177,209,138, 54, 22,194, 0,109, 59,102, -194,228,163,245,151,192,199,199, 7,183,110,221,194,164, 73,147,208,177, 99, 71,244,233,211, 7,238,238,238, 16, 10,133,120,253, -250, 53,174, 95,191,142,232,232,104,228,229,229,161,126,253,250,255,202, 99,144,152,152,248, 92,155,140,244, 91,221,219,148, 80, - 36,230,251,143,158,238, 86, 16,117,120,112, 11,228,249, 50, 0,224, 18, 66,126, 34,132,252, 90,130, 67,252,123, 65,193,229,242, -195,195,195, 61,117, 86, 43,165, 82, 41,212,149,223,191,127,223, 83,151, 91, 43, 63, 63,223,224,168,195, 79,197,249,248,241, 99, - 55, 93,116,164, 46,186,144,203,229,242,195,194,194,220,116,156,114,185,220,160,168, 67,129, 64,192, 15, 15, 15,119,211,104, 52, - 21, 22,117, 88, 68, 24,159,211,126,116,157,178, 78,100,233,124, 58, 76,195,134, 38,152,240,207,198,149,162,147, 74,235,244, 68, -185,132,150,206,241,221, 8,165,199,245,242,242,234, 50,120,240,224, 66, 34,171,127,255,254,154, 35, 71,142, 92,113,113,113, 73, -102, 24,230,185,177,237, 40,240,209, 2,120, 69,151, 49, 12,243,168, 77,211,218, 96, 24,230,209,194,177, 99,229,203,241, 75, 33, -177,117,252,232,161,174, 37,245,139, 0, 96,239, 88, 25, 67, 70, 77,193,144, 81, 83,108, 1,180, 6, 74,142, 86, 44,173, 29, 38, -124, 58,180,106,213, 10,207,158, 61,195,133, 11, 23,112,237,218, 53,228,229,229,129, 16, 2,177, 88, 12,133, 66, 1,161, 80,248, -175, 21, 89, 37, 65,169, 84,170,231, 46, 93,189,135,195,229,171, 89, 86, 73,148, 74,229,104, 99,238,243,185,115,231, 50, 40,198, -247,106,234,212,169,197,150,127, 46,206,249,243,231, 23, 27, 37, 56,117,234,212, 82,163, 7, 75,194,119,223,125, 87, 97, 81,135, - 6,138, 47,147,160, 50,193,132,127,159, 85,171,216,208,189,114, 9, 45,134, 97, 30, 21, 19, 93, 72, 0,208,226, 34,250, 40,165, -106, 14,135,179,212,198,198,102,130, 84, 42,253,163,111,223,190, 51,250,247,239,175, 1,222, 59,200,151,119,167, 50,178,164,139, -219,247,250,113,102,102,174,124, 83,209,101, 69, 45, 79, 58,177,181,101, 67,208,214,163,135, 15,244, 79,146,196,111, 45,105,223, - 74, 18, 84, 37, 69, 43,102,101,203,150,182,239,245,227,244,140,108,153,201, 71,235, 51, 88,182,116, 40, 58,169,244,255, 3, 40, -165,114, 66,200, 44, 66,136,206,162, 59, 43,250,242,134,173,255,187,241, 55, 62,214, 95, 86,138, 53, 43,209,144, 9,162,139, 91, -175,180,101,159,128, 51,185,148, 9,162, 75, 67,178,145,124,201, 0,192,231,113, 82, 74,154, 60,154,207,227,164, 84,208, 57,212, - 37, 56, 92,106,186,163, 77, 48,225, 31,219, 23, 27,231,163,165, 19, 65, 37,161,164, 60, 89,165, 65,163,209,252, 8,224,199,138, -220,177, 39, 47,115,118, 0,216, 97,104,125,173, 79,214, 8,237,167,248,118,190,123,106,244,190,245,239,223,127, 27,128,109,166, - 75,237,175, 65, 72, 72,136,233, 32, 20,190,193,183, 18, 66,126,213, 9, 47, 67,151, 21,169,119,226, 19,180,235, 83,112,158,251, - 43,249, 78, 61, 83, 59,125,238, 78,218, 4, 19, 76,248,251,163, 56,107, 86,169, 81,135, 38,152, 96,194, 63, 78,108,201,203,179, -204, 4, 19, 76, 48,193,132,138,123, 89, 42,206,215,146, 0,232, 84,194, 74, 6, 71, 19, 16, 66, 58,149,163, 81, 23, 77,156, 38, - 78, 19,167,137,211,196,105,226, 52,113,254,127,113,150,197,173,191, 62, 33,100, 60,165,116, 7,254, 1, 40, 49,160,133, 82,250, -201, 62, 0, 58,153, 56, 77,156, 38, 78, 19,167,137,211,196,105,226, 52,113,150,115, 59,227,255,138,237, 84, 64, 59,105,209,143, -110,153,105,232,208,132, 79, 14, 55, 55, 55,176, 44, 11,134, 97, 16, 31, 31,111, 58, 32, 38,152, 96,130, 9, 38,252,171, 96,180, - 51,188, 9,197,152, 4, 61,191, 90, 8, 22,243,223,255, 65, 16,125,123,108,201,191,109, 31, 7, 12, 24,192, 49,166,126, 76,140, - 13,243, 0, 46,107,172,204,249,189,114,165,170, 53,154,176, 69,155,138,171,199,178, 44, 78,158, 60,137, 94,189,122,233,204,171, - 0, 0, 23, 23, 23,156, 60,121,178,160, 94,227,198,141, 11,146, 55,154, 96,130, 9,159,184, 79,179,173,227, 14, 66, 70, 3,244, -127, 97,151, 44,141,160,153,145,187, 11,213,179,169, 61, 10, 12,169,163, 87, 36, 3,197, 78,154, 17, 17, 87,194,240,137,238,129, - 99, 19, 21, 21,229, 89,173, 90,181, 88, 0,153, 69,170,125,176,140,150,114,243, 19, 66,136, 67,149, 70,195,205, 68,102,147, 21, - 10,133,183,133,165,101, 74,250,187,212,109,233,111, 31,111,209,171,102,117,231,206, 29,151,230,205,155, 75, 0,228,148,197,105, -130, 9, 21,122, 63,125,152,176,180,226,156,225, 73,141,126,222, 80, 51, 35, 64, 49, 20, 4,225, 52, 58,164, 95,185,120,170,245, -173, 12,150,219, 12, 64, 35,128, 54, 50, 23,139, 26,202, 20,202, 20,150,210,225, 52,234,224, 67,163,249,170, 12, 56, 13,160,123, - 9, 75,151,210,232, 67,198, 9, 37,150, 46,184,119,237,136,208,198,140,160, 90,227,190,179,161,151,193,249, 35, 78,140, 24,192, - 72, 66, 72, 71, 51, 51,179, 26,121,121,121,111, 40,165,143, 1,108,165,148, 74,202,201,201, 0, 24, 99, 97,110,222,205,211, 82, -208,232,109, 90, 86, 66,142, 74,115, 29,192, 79,148,210,140,138,186,168,222,139, 44,231, 29,211,253,155,143, 12,154,214, 9, 54, -237,127,156, 13, 96, 83,105,235, 48, 12, 51,206,213,213,213,187,114,229,202, 49,155,123, 55,216, 57,229, 68, 56,250,244,233, 3, - 0,227, 88,150,245,174, 92,185,114, 12, 33,100,167,161,125, 35, 33,196, 5, 0,151, 82, 26,167,253,111, 14,192, 23, 64, 21, 0, -209, 0,158, 82, 74,165, 31,121,142,254, 17,156,110,110,110,174, 44,203,142,117,114,114,234,145,156,156,124,154, 97,152, 95,226, -227,227, 37,159,185,239,217,174,243,175, 48,244, 27,192, 4, 99, 54, 32, 22,139,147,243,243,243, 29, 1, 64, 36, 18,165,200,100, -178, 79, 22, 37,248, 87,110,235,175,121, 50, 96,220,249, 27, 79,187,233, 23,117,105, 83,167,152, 27,151,212, 57,127, 35,162,109, -225,122,190,154,226,250, 64,109,246, 85, 44, 93,186,148, 4, 4, 4,140,170, 90,181,106,117,134, 97, 94, 44, 90,180,168, 80,234, -155,162,203, 22, 47, 94,252,191,204,173,197,112,186,213,108,117,124,208,224, 1,237,191, 25, 63,210,162,114, 37, 11, 36,166, 73, -237,127,222, 21,188, 58, 56,120, 95,207,177,131, 58,119, 3,128,101,203,150,125,229,238,238,238,197,225,112, 98,126,248,225,135, -223, 75,227, 52,193,132, 79, 0,227, 38,149, 46,243,254,172, 51,192, 28,249,180, 63, 64, 70,182,107,217,184,205,132,225,189, 8, -229,136,224, 63,110,142,218,104, 46,175, 81, 66,112,100,203,235,249,214,153, 49,160, 87, 39,166,137,175, 23, 92, 42, 89, 3, 12, - 15,219,207,188,177,223, 20,244,195, 86, 0,205,203,209,204,238,175, 67,247, 35, 49, 83, 3, 66, 0, 66, 0,134, 0,185,249, 44, -186,124, 53, 98,177,241, 66,137, 48, 54,102, 4, 51,246,231, 3, 0,231,163,251, 56, 66, 26, 85,170, 84,105,203,180,105,211,108, -235,213,171,231, 34, 18,137,204,100, 50, 89,245,168,168, 40,239,133, 11, 23,118, 38,132,172,162,148, 30, 49,146,211,163,154,155, -235,161, 77, 51,198, 52,171, 95,197, 19, 60, 69, 46, 88,185,212,253,101,212,171,150, 19,183,134,140, 35,132, 12, 46,207,148, 9, -105,105,105, 4, 0, 28, 28, 28,104, 97,145,213, 98,228,186,153, 93, 48, 99,237,121,228,229, 43,246,150,180,190, 68, 34,209, 89, -182,188, 79,158, 60, 89,167, 87,175, 94,104,230,237,134, 59,189, 82,209,244,120, 60, 0, 20,148, 27,177,175, 1, 0,230,107,251, -225,125, 28, 14,231, 66,167, 78,157,188,199,142, 29, 75, 26, 55,110,140,176,176,176, 42,251,247,239,239,196,229,114, 99, 52, 26, -205, 99, 0, 47, 40,165, 42, 3,185,121, 0,106,114, 56,156,122,127,103, 78, 87, 87, 87,177, 66,161, 24,225,230,230, 54,190,119, -239,222,245,122,245,234, 69,106,214,172,137,231,207,159, 55, 62,123,246,236,226, 6, 13, 26, 60,142,143,143,223, 33, 16, 8,246, - 72, 36, 18,217,103,120,195, 27, 15,192, 85,107,224, 88,106,192,183, 4,192, 82, 74,105,162,161,219,200,207,207,119,212, 61, 71, - 9, 33,142,159,114,127,140,217, 22, 33, 36,146, 16, 98,167,253,141,210,190, 25,134,129, 90,173,150,170,213,234,170,101,112,214, - 4,192, 24,209,100, 74, 41, 45, 45, 17,180, 24, 0,186,180,174,147, 14,130, 8,157, 69,171,152,151,204,136, 2, 1, 70, 81,231, -252,205, 8,187, 66, 86,176, 34, 88,186,116, 41, 89,188,120, 49,150, 44, 89,210, 11,128, 31,203,178,215,125,124,124, 54, 22,162, -100,217,130,101,139, 23, 47,222,176,116,233, 82, 2,160, 88, 65,100,231,213, 96,216,215, 95,247,105,191, 98,193, 84,139,132,119, - 74,132,199,200, 96,103,193,199,226, 89,147, 4,114,185,170,229,214,223,131,199,111, 94, 53,103,167, 70,163,249, 2, 64, 19,141, - 70,115, 31,192,239,165,113,154, 96,194, 39, 64,123,163, 38,149, 46,225, 38, 39,168,218,175, 45, 52, 24,233,233,238,212,127,218, -216,129, 98, 95,159,106,200,135, 5,222,164,105,112,230,212, 89, 0, 56,104,156,213,105, 80, 19, 46, 31,123,130,150,204,170,229, -215,204, 23, 79, 18, 84,184,159,160, 65, 94,140, 10, 28, 70, 5, 13, 75, 1,138,252,242,238,117,124,134, 26, 55, 94, 40,192, 16, -128,195, 0, 12, 67,192, 97,202, 73,198, 42, 94, 46,219,253,192, 55, 45,153, 5, 88,197,203,143,124, 0,125, 81,163, 70,141,245, - 1, 1, 1,206,201,201,201,118,247,239,223,135, 80, 40,132,173,173, 45,215,213,213,181,214,250,245,235,179,166, 78,157, 58,139, - 16,242,144, 82,250,198, 64, 78,159,238, 77,234,221,218, 17,180,204, 90,117,231, 44, 50, 15,252, 7, 28,134,130,111,110, 1,111, -177, 24,103,191,174,102,215,255, 84,204, 17, 66,136, 15,165, 52,161, 44,190,103,207,158,113,228,114,249, 96, 43, 43,171, 22, 60, - 30,207, 73,104,227,193, 74,184,205,222,165,146, 42,209, 41,142,121,109,103,118,114,234,182,102,122, 7,204, 88,123, 30,235,247, -223,254,173, 17,146, 22, 25,115, 12, 50,239, 93, 70,120,198,135,167,214,217,156,103,200,190,218, 2,152,163, 80, 40, 24, 62,159, - 79, 68, 34,209,176, 21, 43, 86, 40,253,253,253, 11, 28,192,252,252,252,224,231,231, 71,114,114,114,170, 92,190,124,185, 74,112, -112,176,154, 16, 18, 73, 41, 61, 94,178,197,194,236,109,126,190,204, 93, 36, 22,231,253,188,117,235,154,182,109,219,178,250,243, - 36,150,135, 19, 0,108,108,108,118,214,168, 81,131,204,155, 55, 79, 82, 81,156,222,222,222,231,253,252,252, 58,116,233,210,133, -219,186,117,107,184,186,186, 22, 44,115,112,112,128,159,159, 31,137,139,139,171,127,253,250,245,173,231,207,159,223,232,237,237, -125, 57, 38, 38,166,203, 95,217,235,104, 45, 85, 48, 66, 56,237, 40, 38, 17,242, 63,211, 88, 68,136,197,246,237,219, 29,117,115, - 50,170, 84, 42,104, 52,154,130,111,221,135,101, 89,104, 52, 26,172, 88,177, 66, 99,224, 49,149, 66,155, 28, 90,239,195, 22,247, - 45, 16, 8, 12,203,220, 75, 16,225, 34,204,172,109,110,110,238, 9,160,123,141, 26, 53,230,232, 47,174, 94,233,253,183, 84, 42, -141, 77,148,219, 68, 0,104, 91,218,229, 30, 16, 16, 48, 98,201,146, 37,125,240,191, 57, 43,235, 13, 24, 48,224,114,145,122,245, -180,223, 82, 66,200, 21,134, 97, 78, 2,216, 13,224, 3,171,187,153,153,197,132,105,147,199, 90,196,167, 41,177,252, 72, 26,118, - 95,203,198, 8, 63, 75,204,248,210, 26, 67,252, 7,153,135,252,231,240, 4, 0, 59,245, 86,121,238,227,227, 67,158, 61,123,102, - 18, 89,255, 46, 52, 5, 80, 73,239,191, 2,128,110,202,172, 52,237,125, 97, 95,164, 92,191,158,238, 59, 85, 91, 94, 73,187, 30, -213,227, 77, 5,112,175,156,253,221, 85,109, 27, 62, 0, 23, 0, 78,159, 62, 77,123,244,232, 65,116,223,197,247,236,253,207,140, -241,239,221,173, 71,199, 86, 96, 68,182,120,153, 2,132,190,165,224, 50, 42, 48,160,184,115,243, 50, 5,151,221, 83,100,195, 37, - 90, 79,136,119,255,239,234,213,245,253,241,151,160,111, 57,145, 41, 92,236,190,158, 7,101,126, 46, 82,147,222, 34, 69, 18,139, -196,248,104, 36,188,141,126, 12,144,197,134,114,126,184,227,128,134,213,190, 3,178,208, 30,207, 98, 35, 47,203,230, 84, 74,159, - 85,169,233,235,155, 33,208, 0, 74,233, 51, 3, 14,250,197, 18, 58,224,206,213,170, 85,251,105,193,130, 5,110, 79,159, 62,181, -146, 74,165,210,179,103,207, 94,141,141,141,117,114,118,118,142,155, 52,105, 82,171,202,149, 43, 59,126,245,213, 87,102,135, 14, - 29, 90, 0, 96,172, 1,156,190,189, 91, 52, 12,221,181,113,157,249,187,144, 77, 80, 68, 61,194,153, 68, 41,110, 38,231,209, 42, -214, 66, 50,165,126, 37, 88, 8,185, 88,214,218,213,162,251,209,168, 31, 1, 12, 41,141,243,214,173, 91, 46,102,102,102,107,135, - 12, 25,226, 58,109,218, 52,129,134,107,195, 61, 28,250,206,122,206,214, 80,215, 60,185,146,227,223,193, 11, 51,135,214,195,204, -245,127,234, 68,214,120,111,239, 76,182, 56, 78, 55, 55,183,113, 44,203,122,107,255,122,233,190, 59,222,200, 9,212,219,100, 65, - 57,177,116, 8,116,117,117, 5,195, 48, 49,241,241,241, 59, 13, 61, 71, 34, 81,241,179,167,216,218,218,162, 93,187,118,240,241, -241,225,182,109,219,182, 30,128,227, 37,113, 42,149, 10, 23,150,165,176,180,180, 20,219,219,219,219, 90, 90, 90,190, 83, 42,149, - 31,197, 9, 0,118,118,118,253,218,181,107,199,221,191,127,127, 90, 76, 76,204, 20,250,171, 21, 0, 0, 32, 0, 73, 68, 65, 84, - 29,127,127,255,104, 43, 43,171, 66,214, 95,115,115,115, 84,175, 94, 29, 63,252,240, 3,183, 91,183,110,101,114, 58, 57, 57,117, - 14, 14, 14, 6, 33,164,224,161, 93, 20,158,158,158,112,118,118, 70,247,238,221,185,253,250,245,235, 92,222,251,200,136,142,230, - 98, 49, 22,173,165,133,197,108,201,195,111,197,213, 55,224,188,167,232,172, 75, 34,145, 40,165, 60,237, 44,130, 18,135, 59,133, - 66, 97,129, 21,170,232,182,138,227,100, 24, 6, 11, 23, 46, 4, 33, 4, 60, 30, 15,124, 62,191,216,239,246,237,219, 27,219,206, - 56, 66, 8,195,231,243,231,112,185,220,177,114,185,220, 77, 36, 18, 73, 52, 26,205,111,114,185,124,133,214, 34,106, 83,220,181, - 91, 18,167,185,185,185,231,203,151, 47,107,148,116, 80,228,114, 57,234,213,171, 7,200, 17, 89, 26,103, 84, 84,148,103,213,170, - 85,107, 2,208, 77,209,118,141, 82,218, 86,239,191, 62,174, 81, 74,191,212,254,126,241,250,245,107, 79,157,208,210,231, 84, 41, -149,222,110,142, 86, 8,127, 35,195,238,107,217,184,180,192, 21, 29, 87, 72,208,183, 17, 23, 62, 30, 22, 80, 43, 85, 53, 7, 12, - 24,176, 7, 64, 77,237, 67,242,171, 1, 3, 6,212,226,112, 56,127, 2, 56, 6, 32,235,175,186,230, 77,156, 31,135, 50,180, 72, - 37, 66,200, 41,189,237,247,212,253,159, 59,119,238,252,192,192,192,167,132,144, 83,250,229,250,245,244,191,181,253,205, 41, 74, -105,207,121,243,230,249,174, 90,181,106,165,174,238,167, 80,136,198, 12, 29, 90,165,230,155,227,250, 91, 43,112, 57, 26,112, 25, - 2, 46, 7, 0, 37,136,125, 19,133,156,236,204, 27, 52,250, 63, 49,134, 89,178, 6,180,110,208,176, 94,208,190,245,179,153, 95, -175,231, 33, 83,154,143,103, 15,175,224,222,149, 99, 73, 26,181,230, 24, 8,189, 15, 48, 97,136,102,159, 83, 26,162, 41,255,133, -128,247, 86, 49,144, 34, 98,235,179,189,229,126, 89,171, 86,173,192,133, 11, 23,122, 62,124,248,208, 50, 59, 59, 59,117,239,222, -189,207,229,114,249, 67, 0, 27,222,190,125,219,110,195,134, 13,102,171, 87,175,238, 82,175, 94,189,154, 33, 33, 33,121, 6,112, -214,159, 53,114, 72,232,216,105,211, 69,145,135,182, 64, 16, 25,134,133,143,210, 52,151, 18,243, 22, 0, 88,143,184,220,214,169, -249,234, 11,235,218,185, 51, 94,150,124, 84,179, 17,180, 47,203,146,101,102,102,182, 54, 56, 56,216,179,105,211,166, 12, 0, 92, -127,161, 22,206,217, 26,234,122, 46,176, 53,105, 93,199, 30, 41,153,114,124,187, 37, 28,103, 67, 83,254, 40, 42,178, 62, 48, 4, -106,135, 11,245,203, 78,158, 60,105, 6,224, 3,103, 16,253,242,210,134, 17, 41,165, 25,132,144, 31, 5, 2,193, 66, 66, 8,109, -218,180,105,120,221,186,117,115,109,109,109, 33,147,201, 32,151,203,193,231,243, 33,147,201, 16, 27, 27,139, 59,119,238,192,214, -214,214,168,115,149,155,155, 11, 75, 75, 75,176, 44,251,209,156, 26,141,134,108,219,182,205,252,233,211,167,230,135, 15, 31,118, -154, 49, 99,198,187,218,181,107,223, 31, 52,104,208, 43, 71, 71, 71,249,163, 71,143,112,235,214, 45,100,100,100,160, 69,139, 22, - 6,113, 42, 20, 10,112,185, 92,200,100, 50, 8,133, 66,112,185, 92,168,213,106,176, 44, 91, 32,190,114,115,115,145,158,158, 14, - 62,159, 15,133, 66,241,151, 95,239, 58,139,150, 62, 74, 27,126, 43,174,126, 89,168,104, 63,169,210,134, 59, 51, 51, 51,197, 54, - 54, 54,115, 12,177,208, 17, 66,192,225,112,192,231,243, 65, 8, 65,219,182,109, 49,102,204, 24, 52,106,212, 8, 81, 81, 81, 56, -112,224, 0,238,221,187, 7, 30,143, 87, 80,223,224,241,137,246,237, 57, 34,145,232, 86,239,222,189,125, 23, 44, 88, 32,242,242, -242, 66,100,100,164,199,170, 85,171,230, 92,188,120,177, 15, 33,164, 9,165,148, 45,219, 74,175, 29, 18,124, 63, 92,216, 93, 46, -151, 35, 50, 50,210,152,117, 62, 64,181,106,213, 98, 25,134,121,197,178,236,117, 0,245, 40,165,109, 9, 33,103, 1,152, 23,169, - 42,165,148,126, 73, 8,201, 6,240,152, 97,152, 23, 44,203,198, 22,231, 78,101,105,105,153, 26,159,146,237,100,111, 33,194,240, - 54, 22,232,184, 66,130,254, 77,132, 16,242, 9,158,199, 36,161, 90, 85, 47, 18,126,227,120, 19,173,200,106,154,152,152, 8, 0, - 77, 0,196,196,197,197,185,232,132,150, 9,255, 14, 20, 21, 67, 58, 1, 21, 24, 24,216,179, 56,113, 85,204,189, 89,168,124,213, -170, 85, 43,245,254,103,124, 68,223,209, 14,133,157,225,219,107,173, 92,255, 19, 90,167, 79,159, 46, 93,129,176,232,123,234,200, -254,219, 29,149,196,211,183,113, 27, 61,235, 16, 69,216,157, 91, 0,232,111, 6, 53,198,181,151,152, 49, 51,255,109,219,202,169, -204,246, 43,121,136,147,164,224,214,153,223,144,154,248,102, 55, 64,103,208,232,144,236,143,238, 44,171, 12,240,117,116,176, 71, -190,146,130,165, 0, 62, 16, 91,159, 69,100,245,170, 89,179,102, 64,104,104,168,103,126,126,190,229,205,155, 55, 51,131,131,131, - 95, 41, 20,138, 95, 40,165,123,181,117, 78,164,165,165, 45,163,148,194,210,210,146,203,227,241,196,165, 57,115, 18, 66, 26,205, - 26, 59,226,198,143,219,118,137, 94, 61, 9,199,134,195,103,144,153,151,167,185,146, 34,251,138, 82,122, 74, 91,231,207, 7,105, -178, 4, 10,234,206, 99, 8, 92,204,121,206,132, 16, 17,165, 52,191,132, 55, 87,255, 33, 67,134,184,234, 68, 22, 0,164,229,168, -184,121,114, 21,167,117, 29,123, 52,238, 48, 0, 97,151, 67,112,232, 90, 2,170, 86, 50,187,230,109,158, 89,234, 17,101, 24, 38, - 70, 79, 52,121,157, 60,121,210,172, 87,175, 94,121, 0,244,135, 68, 63, 40,103, 24, 38,166,140,155,109, 17, 33,196,105,207,158, - 61,140, 74,165,202,141,138,138,130,179,179, 51,156,156,156, 96,109,109,141,103,207,158,225,210,165, 75,120,254,252, 57, 88,150, - 69,131, 6, 13,140, 58, 95,239,222,189,195,163, 71,143,208,189,123,143, 25,169,169, 41, 86,182,118,246,210, 27,215,175,173, 46, - 15, 39,203,178, 4, 0,124,125,125,225,235,235, 43, 74, 72, 72,112, 59,117,234,148,227,242,229,203,223,122,122,122,238,147,201, -100,133, 44, 7,134, 10, 45,173,112, 41, 16,129, 34,145, 8,124, 62, 31,217,217,217, 72, 78, 78, 70, 78, 78,206,251,177, 28, 27, -155,207, 34,180,138,179, 80, 85,100,253, 79, 41, 14,139, 19, 83,132,144,161, 0,230, 24,184, 47, 80,171,213,224,243,249,104,222, -188, 57, 54,109,218,132,123,247,238,225,216,177, 99,240,240,240,192,200,145, 35,193, 48, 12,158, 62,125,106,108, 19,217,208,208, -208, 57, 95,125,245,149,239,158, 61,123, 68,177,177,177,120,254,252, 57,108,108,108,176,105,211, 38,225,248,241,227,171, 93,190, -124,121, 17,128,159,202,220, 87,189,232, 66, 87, 87,215,129,245,234,213,251,160,142,179,179,179,245,185,115,231, 28,117, 2,172, -104, 68, 98, 49,200, 92,180,104,209, 58, 31, 31,159,245,218,225, 66, 63, 0,230,148,210,246,135, 15, 31, 38, 0,208,191,127,127, - 74, 8,209, 61,144, 30,135,132,132,116,120,246,236, 25, 93,178,100, 73,177,253, 92,106, 74,226,182,117,155,182,175,251,113,233, - 44,193,204,238,214,232,223,132, 7, 17,159,192,202,140,135, 21, 27,119,170, 30,220,185,246,200,197,197,229, 20,128,175, 18, 19, - 19,225,226,226,146, 11,224, 5,135,195,137,209,104, 52, 18,147, 47,252, 63, 11,197,105, 17,173, 85, 57,177, 56,161, 84, 30,161, -166,111,241,210, 97,222,188,121,190,129,129,129,119, 63, 70,100,233, 59,193, 19, 66, 40, 33,164, 61,165,244,106,193,195,180,196, - 33,195, 2,219, 23,227,226,236,228, 96, 55,119,100,107,176, 44,160,214, 0,106, 13,133, 52, 79,134,200, 39,247,242, 32, 34,135, - 13,106,145, 80, 16,180,124,193,244, 42,225,241, 12, 36, 25, 74, 92, 61,190,157,166, 38,190,233, 71,163, 15,141,174, 40,145,229, -236,232,112,101,255,246,101,184, 23,173,128,134,125,175,179, 88,150, 22,252,254, 12, 15,156,234, 14, 14, 14,171,111,223,190,237, - 37, 20, 10, 45, 95,190,124,169, 9, 9, 9,145, 40, 20,138,173, 58,145,165,197,208,198,141, 27,171,204,205,205,145,155,155, 43, - 87, 42,149,185,165,136, 44,183,246,141,234, 95,251,113,219, 46, 81,190, 66,129, 44,153, 28, 28,123,199, 66, 34, 75,139, 86, 29, -106, 84,174, 76, 68,150,160, 0,222,100, 43, 37, 37,137, 44, 0, 16, 8, 4,157,166, 77,155,166, 63,190, 13, 7, 75,158,218, 76, -200,211,220,140, 72, 99,195, 46,135,224,250,211, 52, 86,196,231,104, 42,209,232, 42,101,237,123,124,124,252, 78,137, 68, 50, 79, - 34,145,204,211, 19, 87,111, 0,204,171,109,205,255,160,188,142,141, 96,158, 68, 34,153,199,178,236, 78, 3, 14,173,100,200,144, - 33,241,117,234,212,201,242,241,241,201,122,247,238, 29, 34, 34, 34,144,145,145,129, 13, 27, 54, 32, 50, 50, 18, 44,251, 94, 7, - 22, 55,140, 98,128, 64, 66, 70, 70,186, 5,165, 20, 25,233,239,204, 23, 44, 88, 96, 93, 30, 78,141, 70, 83,232,222,170, 92,185, - 50, 38, 77,154,196,207,203,203,179,121,251,246,173,149,254, 50, 67, 57, 21, 10, 69, 65, 42, 12, 74, 41, 20, 10, 5,178,178,178, -160, 80, 40,240,234,213,171, 2,145,165,221,254,103,179,104,233,126,139,197,226,100,157,131,168, 72, 36, 2, 33,164,184,225,183, - 10,201,254,172,219, 22, 33,132,138,197,226,228,114,136,195, 50,247,199,192,243, 14, 62,159,143, 49, 99,198,224,238,221,187,136, -138,138, 2,135,195,129, 84, 42, 69, 94, 94, 30, 58,119,238, 12,129, 64, 96,172, 69,139,242,249,252,161,243,231,207, 23,197,196, -196, 32, 45, 45, 77,231, 76, 15,141, 70,131, 25, 51,102,136,133, 66,225, 80, 99, 77,247, 18,137,164,235,203,151, 47,107, 22,253, - 36, 37, 37,101,233,251, 20,150, 23,135, 15, 31, 38,253,251,247,167,253,251,247,167, 58,193,101, 40, 50,227, 35,182, 29, 59,113, -234,194,119, 63, 4,229,230, 73,115, 80,213, 85,140,220,156, 44,172, 8,252, 81, 21, 26,122,253,202,156, 25, 19, 91,134,132,132, -172, 2,240, 66,187,202,139,144,144,144, 17, 63,252,240,195,239,208,166,121, 48,225,159,131,226,180,136,254,189, 87, 17,195,123, -197,113,104,135, 15,197,229,164,212, 69, 28,182,211, 9, 47,173,232,186, 82,200,162, 85,106,231, 83,109, 80, 67, 39, 7,251,203, -123, 54, 47,181, 56,245, 4,136,143,123,131,212,196, 88, 52,105,217, 30,145, 79,194,193,170, 52, 71,232,203,144, 50,195,211,137, -247,128, 26, 62,181,235, 76,110,215,178, 46,130, 78,229,226,101,216, 57,100,166, 38,110,166, 49,135,142, 84,196, 9, 34, 85, 6, -248, 58, 85,114,184,242,251,150, 0,187,179, 17, 12,226,226,222,224,248,239,235,161, 82,126,160, 43,206, 24,221,121,179, 10, 65, -110,102, 50, 20, 57, 26,136,152, 60,145,145, 39,245, 85,165, 74,149,246,172, 91,183,110, 98,203,150, 45,205,252,253,253, 95,102, -100,100, 44,167,148, 30,210,235,224,191,168, 89,179,230,247,155, 55,111,174, 22, 23, 23,135, 75,151, 46,189, 4,112,191, 20,206, -120, 14,135,179,245,210,239, 59,103,137,171,212,194,134,249,223,169, 15,223,139,232, 77, 41, 61,171,199,233,211,169, 94,141, 83, -203,191,255,134, 97, 31,252,129, 71,177,201,136,206,146, 95, 42,137, 51, 45, 45,141,200,100, 50, 47, 27, 27, 27,253,237,192,197, - 92, 42,159, 61,176,134,164,243,156, 27,174,249, 74, 13,132, 60,134,126,219,199, 83,114,231,216, 33,251, 52,121, 26,209, 69, 35, - 26,139,151,185, 26,112,185, 92, 56, 58,254,111, 4, 41, 34,195,168,216, 7,139,187,119,239, 50, 28, 14,167,144, 64,215,183, 16, - 25,107, 41, 50, 6,134,114, 22, 21, 90, 58,168,213,106, 82, 94, 78,185, 92, 94,108,206,177,226,124,181, 88,150,253, 36,251,111, -140,133, 74,127,200, 80,231, 79,151,159,159,239, 40, 22,139,147,117,195,127, 21,101,209,250,152, 72,196,210,134, 47,141,105, 31, -195, 48, 96, 89, 22,124, 62, 31, 13, 26, 52,192,169, 83,167, 96,103,103, 7, 43, 43, 43, 88, 89, 89, 65, 44, 22,195,222,222,190, - 64,104, 49,140,193, 81, 58, 84, 46,151,123,120,120,120,224,213,171, 87, 16,137, 68, 5, 31,161, 80, 8, 95, 95, 95, 72,165,210, -202,159,207,118,255,105, 48,110, 80,167, 62, 91,130,143, 14, 63,117,234,244,100,165, 60,191,110,173, 90, 53,233,253,208,203,143, -230,204,152,216,205, 36, 77,254,191,160,179, 70,233,251, 90,205,157, 59,119,126,121,249,230,206,157, 59,191, 56, 11, 87,121, 5, - 23,222, 15,245,233,190, 81, 32,180,116, 10,178, 56, 37,169, 19, 89,187, 55, 45,177, 58,250, 16,136,143,143,193,133, 67, 27,115, - 84, 74, 69, 6,203,170, 60,163,159,135, 3, 12,126, 51,168, 9, 12,109,214,167,123, 7,114,225,169, 2,217,153,169,120,113,255, -220, 27,200, 4,243, 42, 82,100,237,217,178,212,238,228, 19,130,184,184, 55, 56,123, 96,125,150, 74,173,252,130, 70,135, 60,252, - 24,238, 97, 2, 65,159, 65,181,109,122,142,245,147, 64, 67, 52, 24, 26,249,236, 75, 87, 63,210, 71,114,189,244,200, 48,125,164, -166,166,174,176,176,176, 96,126,250,233,167,209,249,249,249, 75, 40,165,135,245, 46,156,206, 85,171, 86, 13,218,182,109,155,219, -219,183,111, 5, 55,110,220, 72,191,114,229, 10, 5, 16, 88,198, 3,124, 54, 33,132,211,200,171,242,212, 7,111, 18,122, 83, 74, -255,208,227,244,237,217,184,206,205, 93,129,139, 44, 85, 55, 15, 35, 55, 49, 14,243,110,198,103, 3, 48,248,120,171, 84, 42,100, -100,100, 64,149,155,161,110,226, 34,205, 90, 50,192, 81,158,156,145,207,229,177,121,106, 31,171, 20,249,229,244, 55, 28, 51, 51, -179,114, 31, 87,190, 64, 0,149, 74,133,202,149, 43, 23,148,101,231,228,130, 16, 2, 23, 23,151,178,110,182, 0, 0, 51, 90,181, -106, 69,154, 55,111,126,103,253,250,245,231, 75, 19, 43,229,177,104,149, 5, 67, 57, 89,150,101, 74, 56,190,164,188,156,250, 22, -173,178,132,214,231,180,104, 21, 39, 90,244, 69,162,190, 16, 42,143,143,214,167, 20,135,198,136,176, 98,120, 10, 44, 90,225,225, -225,112,119,119,135, 82,169,132,165,165, 37, 44, 45, 45, 97, 97, 97,129,156,156, 28,240,120, 60, 24,185,207,172, 72, 36,122, 27, - 17, 17, 81,179, 82,165, 74,208,104, 52,133,196,214,203,151, 47, 97,110,110,158, 96,172, 69,203,213,213,245,156, 54,234,176, 16, -156,157,157,173, 43,226,184,234, 91,178,250,247,239, 95,174, 23,179, 45,129,179,130, 1, 4, 15, 24, 48, 96,207,227,208,211, 77, - 92, 92, 92, 78,251,248,248, 16, 0, 48, 69, 24,254,187,172, 89, 37,140,176,165, 22,177, 68, 41,244,254,167, 2, 32,218,255,169, -122, 66, 76,255,183,162,152,178,119,129,129,129,151,245,252,187, 82, 63,114, 23,116, 41, 30, 10,249, 66,115,203,178,100, 57,218, -219, 93,254,101,195, 18,171, 67, 97, 64, 66, 92, 12,174, 30,217,148,165,214, 40,191, 0, 75, 19, 67, 47, 30, 57, 12,130, 60, 68, - 31,190, 10, 28, 50,160,139, 64,163, 70,181, 61,113,236,169, 10,169,241, 47, 65, 41,187,155, 38,255,158,247,209,157,163, 86,100, -237,222,180,196,238,104, 56, 65,124, 92, 12, 46, 28,218,152,165,214, 40,191, 40, 79,178, 83, 29,198, 18, 98,203, 49, 23,109, 29, -222,165,233, 64,207,170,110, 96,169, 10, 44,159,162,239,108, 7,238,139, 7,121,199, 60,186,112, 14,177,185,236,228,248, 80,195, - 18,129,230,230,230, 46, 35,132, 28,165,148, 70,234,117,200, 95, 86,171, 86,109,229,207, 63,255,236,149,144,144, 96,249,224,193, -131,236, 29, 59,118,196,176, 44, 27, 64, 41, 45, 51,138,138, 82,250, 29, 33,228, 23,253,124, 57,132,144,250,179, 70, 15, 9, 29, - 50,106,172, 40,230, 98, 48,108, 99, 34,241,253, 77,137,230, 69,134,194,159, 82,154, 84, 18,151,131,131, 3, 77, 77, 77,125,147, -153,153, 89,211,220,220, 28,239,222,189, 67,122,122, 58, 50, 51, 51, 33,207,206, 80,219,107, 50,165, 68,157, 14, 46,151,139,148, - 56, 53, 52, 26, 77, 82, 89,214,172,146,162, 14, 1, 4,202,100, 50,157,200, 42, 40,183,178,178, 10,180,178,178,210,249,104,237, - 44,225, 33,166, 75,239, 64,180,233, 29, 90,252,241,199, 31,207,186,117,235, 22, 95,156, 88, 17, 10,133,200,207, 55, 46, 75, 72, - 73, 81,140,229,225, 44,201,162, 85,180,220, 24, 78,221,240,165,206, 9,190,104,185, 14, 28, 14, 7, 44,203,126, 80,254, 87,139, - 22,253,232,192,242,136,156, 66,214,229, 50, 18,135,150, 39, 18,177,162, 45, 90,186,115,193,231,243,113,226,196, 9,140, 26, 53, - 10, 26,141, 6,102,102,102,176,176,176,128,185,185, 57,142, 28, 57, 2, 93,250, 7, 99,154,168, 82,169,246, 6, 6, 6,206,223, -182,109,155,152, 82, 10,129, 64, 80, 32,180,150, 44, 89, 34, 83, 42,149,123, 13, 17, 90, 5, 25,223, 89, 26, 81,189, 82,233, 81, -135,197,173, 83,130,191,150, 77, 64, 64,192, 8,150,101,251,160, 72, 10,135, 34,245, 10,165,126, 40, 45,189, 3, 0,219,128,128, -128,113, 44,203,234, 2,104, 10, 69, 23,234,213,211, 61, 75,106, 14, 24, 48, 96, 79,209,168, 67, 19,254,241,184,247, 55,110, 91, -123,189, 68,165, 68,219, 95, 20, 8, 46,110,201, 34,107,128,143,163,189,195,229,157,235,151, 88,237,187, 11, 72,226,162,113,235, -196,230, 44, 13,171,210, 23, 47,109,140,236,121, 27,185, 58,218, 32,253,182, 12,217,105,111, 1,138, 7, 31, 47,178, 6, 85,119, -116,176,191,178,107,227, 18,187,144,135, 12, 18,222,198,224,138, 86, 12,126,140,200, 26, 38, 16,244,241,173,225,182,107,240,151, -173,109,173,137, 26,234,216,103,248,101,228, 64,132,245, 82,162,245, 32,107, 52,235,110,137,106, 13, 69, 3,207,236, 76,239,232, -234, 71,198, 26,106,221, 42, 34,178,122,121,121,121, 45,189,115,231,142, 39,203,178,150, 87,175, 94,205,217,182,109, 91,116,126, -126,254, 70, 74,233,105, 35, 30, 14,250, 34,171,209,220,241, 35,111,172,252,249, 23, 81, 68,216, 61, 4,237, 61, 9,153, 74,161, - 57, 23,159, 59, 64,127, 88,177, 20, 75,201,197,141, 27, 55,122, 45, 92,184, 80,144,158,158,142,180,180, 52,100,100,100, 20,124, -114,115,115,225,236,236,140, 63,254,248, 67,153,157,157,125,219,128,135, 77,133, 71, 29, 22, 7, 75, 75, 75,240,249,124, 40,149, -202, 2,139,150, 80, 40,132,181,181, 53,222,189,123,135,131, 7, 15, 2, 64,122,169, 22, 54,190, 32,145, 97,136,187,216,204, 76, - 46, 18,137,216,226,172,106,198,114,106, 17,255,229,151, 95,186, 5, 4, 4,136, 26, 55,110,252,129, 69,171, 60,156,148,210,188, - 46, 93,186,152,109,220,184, 17,158,158,158, 80, 40, 20,133, 4, 21,195, 48,224,243,249,136,139,139,195,242,229,203, 65, 41,205, -251,171,123, 30,125,209,162, 47,134,180, 62, 84, 31, 8, 33, 67, 45, 70,101, 13, 13, 26, 27,137,168, 47,220,132, 66, 33, 50, 51, - 51,197,132,144,161, 37,100,176, 55,216,162,165, 19, 90,145,145,145,216,179,103, 15,186,119,239, 14, 91, 91, 91,100,100,100,224, -208,161, 67,120,246,236, 25, 4, 2, 1, 8, 33,198, 88,181,216,230,205,155,255,120,253,250,245, 94,254,254,254,117,190,255,254, -123,113,221,186,117,241,226,197, 11, 4, 4, 4,228,135,133,133, 69,201,100,178, 0, 24,146,216, 84,155,241, 93,151,140,212,160, -168,195, 34,235, 20, 69, 9,233, 29,190, 44,129, 77, 63,245, 67,161,244, 14,250,184,117,235,150,183,151,151,151, 15,222, 71, 18, -234, 30,184,250,209,133,133, 30,198,137,137,137, 77, 97,138, 58, 52,225,175,237,235,174, 18, 66, 10, 18,150,234,196,215, 7, 81, -135, 31,174, 73,102,248,143, 28,111,181,247, 46, 65, 92,108, 20,238,159,217, 90, 84,100, 25,210,217,116,210,207,181, 33, 18,155, -215,101,201,251,112,230,236,180, 56,128,114,140, 22, 90, 69, 57, 65,217,239,252, 71,140,183,219,127,159, 64, 18,247, 26, 55,143, -111, 49, 90,100,233,115, 14, 19, 8,126,224,113,200,194, 30,109, 27,241,219, 52,172, 1,243,148, 55, 72,138,151,224, 96,100,106, -122, 84,134,124,236, 77,162, 68,236,107,249, 47,221,199,217,217,217, 58,243,208,115,162,189,221,237,147,217,199, 42,127,193, 40, -169,146, 6, 74,110,208, 37,197,182,243,195,109, 86,183,178,178,250, 41, 44, 44,172,146, 72, 36,178,186,127,255,190,102,251,246, -237,113,249,249,249,171, 41,165, 7, 12,218,247, 15,151,187, 53,173, 81,245,234,202, 45, 59, 69,185,210, 60, 72, 21, 74, 8,157, - 92, 52, 71, 67,159,244, 43, 41, 1,102, 81, 78,161, 80,184,255,192,129, 3,221,253,252,252, 60,235,215,175,207,164,167,167, 35, - 55, 55, 23,185,185,185, 58,171, 23, 34, 35, 35,217,216,216,216, 4,161, 80, 88,102, 59, 43, 42,234, 80,159, 83, 47,189,195,124, - 0, 12, 33,228, 94,120,120,120,110,183,110,221, 32, 22,139, 33,149, 74,225,225,225, 1,181, 90,141, 51,103,206, 32, 44, 44, 76, -202,178,236, 85, 0,225,165,237,187, 76,150,231, 65, 8, 97,100,121,121, 13, 70,140, 24,209,110,230,204,153,133, 66,210, 29, 29, - 29, 97,103,103,103, 20, 39, 0,164,167,167,215,254,227,143, 63,166,135,135,135,127,215,189,123,119,235,249,243,231, 11,189,189, -189,161,209,104,152,242,114,102,100,100, 88, 63,120,240, 96,117,155, 54,109,190,233,214,173, 27,119,229,202,149,176,182,182,134, - 70,163,129, 88, 44, 70,118,118, 54, 2, 2, 2,112,227,198, 13, 53,165,116, 75, 86, 86,214,247,198, 92, 75,229,180, 96, 21,226, - 44,201, 2, 84,146, 16, 42,174,254, 95,209,206, 34,194, 13, 54, 54, 54,115, 0,204, 41, 33,131, 61, 12,189, 55,117, 66,139,195, -225,224,205,155, 55,216,190,125,251, 7,121,180,116,233, 31,138,227, 46, 97,223,233,149, 43, 87, 52,132,144,150,247,239,223,159, - 51,124,248,240,177, 82,169,212,205,220,220, 92,162, 82,169,126,147,201,100,186, 60, 90,124, 99,250, 16,169, 84, 26, 91, 92,212, - 97,209, 58,128, 77,169,156, 69,210, 59, 20, 74,225, 80,100,181, 66,169, 31,138,166,119,208,231,108,213,170, 85, 12,195, 48,207, -181, 67,240,207, 81, 36,186, 80,143,179,102, 98, 98, 98, 83, 23, 23,151,171, 0,204,138, 70, 29,254, 21,215,146,137,243,255, 91, -108,161,180,132,165,197,175, 5,209,197, 59,111, 32, 16,167,227,209,165,221, 70,139,172,226, 32,207,207,139, 90,180,255,109, 67, -133, 60, 31,210,172,228, 23, 52,230, 64,202,199,159,109,152, 95,188, 23, 11,145,121, 38, 30, 94,252, 53, 83,163,201,255,130, 70, -253, 39,188,252,116,152,247,243,217,195,124, 98,109,135, 71,211, 71, 65,146, 41,197,217,232,140, 67, 52, 79, 62, 57, 88, 59, 87, -160, 91, 75,114,125,215,130,164,173,126,125,173, 7, 58, 84,230, 97,237,172,223, 32,154,107,207,111,214,177,173,193,115, 32,234, - 28,228, 55,108,216, 48,201,207,207,207, 98,224,192,129, 47,211,211,211, 11, 57,200,151,227, 68,199, 19, 66,126, 62,189,109,205, - 44,251,122, 45,176,249,135,217,154,253,161, 79,138, 70, 33,150, 10, 31, 31, 31,205,173, 91,183,102, 78,154, 52,105,109,199,142, - 29, 43,247,233,211,135,239,238,238, 14,161, 80,136,215,175, 95,227,250,245,235,202,232,232,232,132,188,188,188,153,245,235,215, - 47, 51,199, 89,124,124,252, 78,129, 64,128,136,136, 8,180,107,215, 46, 80,107,177,122,115,235,214,173,121,217,217,217,200,206, -206,198,224,193,131, 11,202,167, 76,153, 50,175,106,213,170, 72, 79, 79, 47,107, 95, 23, 17, 66,182,225,253, 92,135, 73,193,193, -193, 45,143, 31, 63,222,114,198,140, 25,252,238,221,187,227,246,237,219,184,112,225,130, 82,169, 84,134, 2, 8, 53,116, 90, 27, -109,254,161, 7,132,144, 39, 65, 65, 65, 45, 57, 28, 78, 65,198,251,136,136, 8,236,222,189,187, 60,156,106, 0,171, 9, 33, 63, - 7, 7, 7, 47,186,120,241,226,232, 17, 35, 70, 88,169, 84, 42, 68, 70, 70,226,215, 95,127, 45, 47,231,244, 74,149, 42, 45, 60, -115,230,204,111,231,207,159,255,106,216,176, 97,204,180,105,211,176,105,211, 38,252,231, 63,255, 97, 53, 26,205,113, 30,143, 55, - 34, 53, 53, 85,250,153, 58,158, 29,218,105,117,118, 24, 49,231, 97,153,188, 31, 51, 52,104, 96,187, 19, 63,186, 91,210,238, 71, -251,246,237, 11,172,140,148,210, 66,126,117, 58,129,101,236,208, 33, 0, 27,237,117,186, 5,239,231, 23,213,207, 10,207,193,255, - 50,199, 27,202, 88, 39, 81,110, 19, 1, 57, 34, 75,159, 84,218, 6,160,168, 83, 6, 91,230,162, 69,139,214, 45, 94,188,120, 93, -209, 20, 14,250,149,138,166,126, 88,186,116, 41, 74, 74,239, 0, 32, 99,209,162, 69, 63,106,251, 39,162, 29, 46,108, 2,109,116, -161, 30,231, 30,109,185,217,146, 37, 75,134, 3, 40,141,211, 4, 19,254, 50,148,226,163, 69,231, 71, 92,223,175, 2, 96, 15,194, -204,163,175, 15, 70,124,116, 7,198,210,185,127,238, 91,178, 9, 20, 25, 84,163,158, 83, 33,123,192,114, 22, 68, 92,223,199, 2, -196, 6,132,153, 75, 95,255,231,163,219, 73,172,237,144, 19, 48, 9,255,121, 42,161, 73, 82,213,215,193, 10, 69, 33,107,144,214, - 39,107,144,171, 31, 57,104,235,202, 59, 58,253, 11,123,114, 58,125,184,209,219, 73, 77, 77, 93,105, 97, 97,193, 89,189,122,245, -104,153, 76, 86,200, 65,254, 35, 30, 18,179, 9, 33,156,102,213, 61,167,222,125, 21,219,199,144,225,194,162,104,213,170, 85,226, -179,103,207,134, 92,184,112,193,255,218,181,107,157,242,242,242,188, 8, 33, 16,139,197,111, 20, 10,197, 69,161, 80,184,223, 16, -145,165,255, 64,209,159, 34, 6, 0,178,179,179,145,147,147, 83, 40, 13, 1,240,222,191, 42, 53, 53, 21, 30, 30, 30,198, 62, 16, -175, 17, 66,194, 2, 2, 2,218, 6, 4, 4, 52,208, 90,133,174,149,119,200, 76, 43,120,174,137,197,102, 18, 66,136, 27, 95, 32, -148,222,186,117,235,226, 71,114,230,105, 45, 37,107,215,174, 93,187,194,220,220,188,105, 68, 68,196,165,143,225,212,138,168,126, -246,246,246,174,123,246,236, 9,217,181,107, 87, 11, 46,151,123,155, 16, 50, 32, 51, 51,243,115, 79, 42, 61, 1,134,205,113, 88, -166,197,200, 16,139, 88,121,241, 41,132,155, 70,163,201, 93,184,112, 97, 74, 81,225, 85,212,122,165,251,175, 84, 42,243, 13,188, -151,140,137,162, 44, 67,100,144, 92, 0,120, 63,119,225,251,105,117, 12,157, 84, 26, 64,137,115,103, 46, 94,188,152, 46, 93,186, -148, 48, 12,115, 28,192, 11,134, 97, 94, 21,117, 86,215, 95,182,116,233, 82, 44, 94,188,152, 46, 89, 82,242, 59,170,142,243,217, -179,103,148,195,225, 92, 2, 16,195,225,112,222,232,243,234,151,235,214, 41,141,211, 4, 19, 62,187,208,162,209, 33,113, 0, 70, - 85,232,155, 98, 76,200, 69,188,119,100,172, 56,206, 55, 7, 98, 1, 12,171, 40, 62, 22,248,105,108,179,246,179, 0, 16, 10,172, - 45, 42,178,244, 33,185, 78,143,187,180, 38,129,205, 58,182,157,161,181,134,173, 52,118,123,197, 57,200, 87,128,216,250,192, 65, -222, 88,248,248,248,104, 0, 4, 3, 8, 46, 58,169,116, 57, 30, 58, 16,139,197, 5,195,136, 12,195,196,100,102,102, 66,103,209, -210, 47,215, 30, 19, 88, 91, 91,151,103,191,243, 0,156, 37,132,156,167,148,106, 42,226, 88,202,100,121,238,218, 7, 28,167,162, - 56,181, 65, 14, 99, 43,146,243,221,187,119, 18, 0,173,170, 85,171, 38,136,138,138, 82,252, 93, 58,152,138,176, 14,125,106, 84, -180,112,211,190, 48,212,254, 4,199,242, 69, 5, 19,254,218,165, 77, 29, 14,244,115, 7,149, 53,169,180, 78,160, 81,252, 90, 66, - 27, 41,121,175, 36, 41,128, 61,175, 95,191,246,100, 89, 54,182, 24,203, 82,161,101, 75,150, 44, 65, 73, 57, 3,139,112, 2,192, -177,184,184, 56, 87,141, 70,147, 88,132,183, 80,121,105,156, 38,152,240, 55,177,104,253,127, 98,175, 66,177, 24,192, 98, 67,235, - 39,222,164, 11, 0, 44,248,200, 14, 52,178,162,247,163, 60, 34, 43, 36, 36, 68,243, 41,142,169, 74,245,126, 52, 76,127,238, 66, -125, 12, 31, 62,124,103, 5,239,187,230, 19, 28,207,127, 4,231,223, 73,100,153,240,247, 6,205,136,136, 3,240, 67,153,245,202, -206, 6,255,129, 48,210,254,204, 0,144, 81,130,214, 41,109, 89,105,156, 0,144, 13, 32,187,152,117, 75, 42, 55,193,132,207, 10, -198,116, 8, 76, 48,193, 4, 19, 76, 48,193, 4, 19, 62, 13, 8,128, 78, 37,188, 65, 24, 28, 77, 64, 8,233, 84,142,183,249,139, - 38, 78, 19,167,137,211,196,105,226, 52,113,154, 56,255,191, 56,203,226, 46, 26,189, 92, 81,211,115,253,165,226, 74,191,221,186, - 72,152, 79,241, 1,208,201,196,105,226, 52,113,154, 56, 77,156, 38, 78, 19,167,137,179,156,219, 25,255, 87,108,231, 83,126, 76, - 62, 90, 38,152, 96,130, 9, 38,152,240, 15, 66,231,154,196,133,171, 1,115, 54,138, 38, 84, 4,223,151,213, 72,101, 0,168, 40, -190,255, 71, 16, 66, 92, 0,244,208, 43, 58,173, 11, 6, 50, 9,173,127,238, 73,173, 14, 96, 62, 0,253,240,188,187,148,210,192, - 34,245,246, 1,208,159,144, 80, 10, 32,128, 82,250,202,152,237,113, 56,156,192,182,109,219, 78,190,113,227,198, 26,149, 74, 21, - 80,142,246,122,186,184,184,252, 72, 8,105, 12,128, 71, 8,121,157,156,156, 28,168, 82,169, 46,126,196, 49,168,226,236,236,188, - 10, 64, 67,134, 97,120,132,144,168,228,228,228,229, 42,149,234,202, 71,112, 90, 58, 57, 57,181,166,148, 58, 3,224,240,120,188, -119, 9, 9, 9,119,202, 27, 61, 55, 96,233, 51,126,182, 84,205, 3, 0, 43,115,174, 42,100,177,143,210,208, 50,211, 85,110,130, - 9,255,247, 29, 61,167,104, 81,215,170, 88, 65, 40,190,215, 0,164,107, 21,178,241, 92, 12,190, 47,113,253,226, 2,110,138,112, -118,173,138, 21,148,190,231,232, 90,141,172, 62,247,186,140,224, 46, 3, 56,117,216, 1, 48,227, 13,153,224,252, 19, 4, 6,125, - 6,244,208, 31,226,212, 38, 96,222, 81,166,208, 26, 92,147,184,104,184,224,134, 68,208, 56,221, 67, 8, 64, 3, 0,213, 1,188, - 2, 16, 78, 41,205,249, 72,193,240,143,224,252, 27, 98, 17,165,116, 72,145,253,254,160,210, 23, 95,124,209,251,252,249,243,102, -186,233, 89, 88,150,133, 88, 44, 86, 3, 24,105,196,241,116,244,247,247,159,251,203, 47,191, 96,224,192,129, 11, 9, 33,235, 40, -165,185,134,174,111,103,103,215,191, 74,149, 42,155,118,238,220, 89,169, 69,139,150, 68, 32, 16,224,245,235, 40,183, 9, 19, 38, -212,117,114,114, 58,158,156,156, 60,214,216,157,183,183,183, 31, 90,181,106,213,181,219,183,111,119,104,211,166, 13, 8, 33, 8, - 11, 11,115,155, 62,125,122, 3,103,103,231, 3, 73, 73, 73,223, 24,203,233,224,224, 80,163,106,213,170, 29, 54,111,222, 44,110, -221,186, 53, 68, 34, 17,194,195,195, 45, 38, 78,156,232,236,236,236, 28,153,148,148,116,213, 88,145,245, 56,236,228, 87,106,165, - 60, 8, 0,184,124,225,236,150,235,178, 79,166,135, 93,235, 85, 86,217,128,165, 56,102, 18, 91, 38,152, 96,130, 62,134,186,194, -153, 82,204, 58,255,235, 15, 12, 0,116, 25,189,108,218, 80, 87,172,217, 43, 65, 82, 5,241,125, 63,162, 50, 54,237, 73, 64,242, -199,180,115, 7,192, 76,231,114,167, 53,107,222,220, 97,202,205,155, 81, 74,224,183,255, 19, 3,200,248,226,202, 75, 20, 90,253, -235,144, 0,112, 49, 31, 0,249,178, 58, 57,112, 33,134,115,189,115,231,206,213,198,140, 25, 67, 26, 53,106,132,176,176,176, 26, - 7, 14, 28,232,193,229,114,163, 52, 26, 77, 24,128,167,134,102,181, 38,132,240, 0,248,114, 56,156,198,127,103,206,191, 57,204, -181,251,157, 12,224,174,206,162, 85,180,210,159,127,254,121,130,203,229,234, 44, 90,205,164, 82,169, 83, 17, 43,152, 33,240, 82, -169, 84,120,254,252, 57, 24,134,225, 1,240,198,135, 83,106,148,116, 94,220,220,220,220,182,134,222, 13,179, 39, 92, 49, 50,242, - 1,228, 43, 33,176,112,194, 47,187,131,237,102,126,251, 77, 63, 43, 43,171,235,217,217,217,191, 27,113, 49,123,123,120,120,172, -123,244,232,145,189,153,153, 25, 88,150, 69, 78, 78, 14,156,157,157,177,115,231, 78,155,153, 51,103, 14, 17,139,197, 87,100, 50, -217,127,140, 17,231, 85,171, 86,237,240,228,201, 19,177,110, 66,105,133, 66, 1, 55, 55, 55,236,219,183, 79, 56,109,218,180,218, - 66,161, 48, 94, 46,151, 71, 27,202,153, 45, 85,243,212, 74,121,208,158, 45, 75,220, 1, 96,196, 55, 75,130, 4, 57, 86,103, 12, - 41,203,150,170, 79, 3, 48, 9, 45, 19,254,234, 7, 69, 99, 7, 7,135,195,105,105,105, 87, 1,140,173,136, 20, 36,132, 16, 87, - 46,151,235, 77, 41,181,209,254,207, 84,171,213, 49,148,210,114, 39,212,117,168,214,161, 23,132,102,163, 64,217, 6, 12, 0,194, - 48,225, 26,101,222,238,180, 23,151, 79,126, 20,167, 64, 60, 26,160, 13, 24,128, 37, 12,243,136, 85,231,237, 76,125,118,249,236, -223,229,252,220,206, 66,205,170,206,134, 79,140, 89, 17,124,131,171,192,133, 97,193,236,123, 3,131,135, 21,167, 2,221,191,253, -246, 91,231,111, 38, 79, 38,163, 70,142,172,126,245,198, 13,210,206,152,217, 10,254,129, 40,205, 97,191, 88,161, 53,160, 14,177, - 5, 48,231,192,166,249, 12,151,195, 33,254,223, 6, 14,217,181,101, 53,211,185,215,128,130,225, 19, 63, 63, 63,248,249,249,145, -160,160,160,234,151, 46, 93,170,190,111,223, 62, 53, 33,228, 17,165,244, 96, 73, 27,235, 86,141,200, 88, 64,212,163, 22, 87,234, -255,195,239,219,155, 55,111, 14,161, 80,136,143,225, 4,128, 46,213, 57,209,221,155, 87,123,228, 63,117, 81,108,139, 22,173,104, - 69,112,254,131,112,151, 82,218, 71,219,129,217,122,120,120,180, 86,171,213, 34, 0,224,114,185,249, 0,166, 82,237,212, 65,132, -144,227, 44,203,246, 54,162,131,100, 0, 44,238,221,187,247,194, 41, 83,166,192,195,195, 3,211,166, 77,131, 74,165, 10, 35,132, - 44, 2,176,170,172,132,128,142,142,142,139,182,110,221,106,199, 21,152,163,209,156, 24, 36,102,170, 1, 0, 22, 66,224,196, 36, -138,105,211,166, 89,221,191,127,127, 57, 0,131,133,150,163,163, 99,192,206,157, 59,237,204,204,204, 64, 41, 69,110,110, 46,114, -114,114, 10,230,100,252,230,155,111,172, 34, 35, 35,127, 4, 96,176,208,114,114,114,106,189,121,243,102,177, 72, 36, 66,110,110, - 46, 95,169, 84,146,156,156, 28,228,229,229, 81,133, 66,161,156, 58,117,170,240,233,211,167,237, 1, 68,195,132,191,139, 40,224, - 0,248,154,199,227,245,173, 86,173, 90,147, 87,175, 94, 61, 84,171,213, 71, 0, 28,249,216,151, 41, 66, 72, 71, 87, 87,215, 21, - 18,137,100, 51,165, 52,248,255,229,152, 58, 57, 57, 29,185,117,235,150,251,214,173, 91, 71,174, 89,179,230,140, 49,247, 80, 9, - 47,191, 45,155, 53,107,230,208,183,111, 95,158,179,179, 51,242,242,242, 16, 21, 21,101,118,241,226,197, 74, 34,145,232,157, 92, - 46, 15, 53,230, 92, 57,212,108,109, 1,174,213,129,150, 29, 58,181, 25,216,239,107, 75, 39,123,107,200, 20, 26,188,138, 77,244, -248,227,204,137,118,174,117,123,220, 82, 42,179, 6,167,189,184,153,107, 44,103,135,110, 61,219,116,234,216,209,210,218,198, 26, - 89, 82, 37, 94,191, 73,240,188,124,225,164,159, 75,221, 30,215, 88,162, 26,150,252,248,124,222,231, 60, 55,211, 0,174, 84,100, - 95,191, 65,171, 70,247,187,140, 89,222,132, 82, 10,134, 98, 99, 81,107,214, 52,128,187, 17, 80, 27,203, 7, 74, 41, 33, 88,173, -111,205, 42, 24, 86,100, 64,186,122,163,244, 97, 74,221,243, 24, 16,218,216,217, 53,159, 56,126, 60,201,201,206, 70,120,120,120, - 94, 81,145,181,174, 50,248,215, 24,120, 29,143,195,203,127,147, 53,171,232,208,161,238,191,193,121,180,204,204,204,138, 45,183, -182,182, 70,135, 14, 29, 16, 24, 24,200, 5,208,184,136,194, 43, 60,201, 42, 32, 60,181,109, 30,172,205,133,140,135,135,135,165, -149,149,213, 71,115,190, 47,100,189, 91,121,208, 47,239,253, 62,127,228,197,125,107,125,165, 57,153,188,162, 85, 44, 44, 44, 80, -179,102, 77, 44, 92,184,208, 48,206,143, 87,183,127, 41,167,139,139, 75, 45, 63, 63,191,198,127, 94,189,106, 35,145, 72,132, 18, -137, 68,120,254,207, 63,109, 90,182,108,217,216,197,197,165,150, 30,135, 49,237, 92,182,101,203,150, 69,199,143, 31,103,252,252, -252, 96,107,107,139, 14, 29, 58,224,204,153, 51,220, 53,107,214,172, 4,176,176,172,118, 50, 12,211,198,207,207,143,128, 82, 36, -101,169,113, 39,176, 22,194, 87,251, 32, 39,159, 34, 61, 43, 27, 50, 89, 62,204,204,204, 68,218,225, 94, 67,247,189, 85,203,150, - 45, 9,128, 2,113,149,147,243,254,147,155, 43,133, 66,161,132, 80, 40,180, 36,132,136, 12,229,164,148, 58,183,110,221, 26, 0, -160, 84, 42, 11,222,240, 50, 51, 51, 73, 86, 86, 22, 20, 10, 5,120, 60, 30,159, 16,194, 53,148,211,202,156,171,226,242,133,179, -130,112, 2,223, 0, 0, 32, 0, 73, 68, 65, 84, 71,124,179, 36,110,196, 55, 75,226,184,124,225,108,133,101,182,198,144, 50, 43, -115,174,234,115, 94,159,132,144, 74, 28, 14,231,215,106,213,170, 69,114, 56,156, 61,132, 16,231,143,225, 36,132, 52, 37,132,172, - 52, 51, 51,187, 88,187,118,237, 56,115,115,243, 63, 9, 33,171, 8, 33, 45,203,195, 73, 8, 17,152,153,153,253,185,114,229,202, -144,135, 15, 31, 14,188,116,233,146,247,227,199,143,251, 5, 5, 5, 29,176,176,176,184, 78, 8, 49,251,152,123,211,219,219,123, -215,157, 59,119,154,182,106,213,234, 23, 66,136,176, 34,238,119, 66, 8,135, 16,210,144, 24, 56,215,208, 95,125,222, 9, 33,174, -141, 26, 53,114, 23,137, 68,232,212,169, 19, 0,180,255, 72,206,150, 19, 39, 78,116,158, 57,115, 38, 47, 60, 60, 28,191,252,242, - 11,142, 31, 63,142,148,148, 20,244,236,217,147,255,197, 23, 95, 56, 11,133,194,150, 70,113,114,173, 14,124, 59,125, 70,183, 89, -211,198, 89, 62,122,171,196,238,139,111,113, 44, 52, 17, 41,121, 2,244,234, 55,194,186,107,159, 65, 93, 5, 66,235, 3,198,114, -206,157, 51,167,219,248,209, 67, 44, 35, 18, 89,156,184,157,132,219,207,179,160,230,217,160,123,191,177,182, 13, 90,119,235,193, - 5,239,183,207,125,142,118, 2, 45,190,253,246,219, 74,179, 87,239,189,233,218,244,235,141,169, 25,240,211, 23, 62, 53, 0, 27, - 59,115,243,175,159,183,107, 55, 78,252,126,206,199, 82, 57, 11,241, 53,238,179, 41, 37, 3,109,245,253,179,218,218,161,186,118, - 88,145,115,254,215, 31, 24, 74, 48,109,168, 43,156,203,106,231, 21, 96,224,183, 51,102,240,172,109,109,177,101,203, 22,200,165, -210, 66, 62,179, 29,221,209,237,162, 25, 55,190,138,143, 91,100, 7, 79,114,253, 95,248, 2, 56,190, 68,139,214,233,211,167,105, -143, 30, 61, 8, 0,132, 68,208,140,254,117,200,143,131,166,172, 92, 72, 24, 66,189,124, 91, 69, 84,174, 90, 71,106,111,111,143, -188,188, 60,200,229,114,240,249,124,228,231,231,227,237,219,183,184,125,251, 54,108,109,109,141,106, 76,118,118, 54, 44, 44, 44, - 96, 97, 97, 81, 33,156,243, 70,118, 18,190,142, 75, 21,158,187,125,165,221,134,201,255,105, 81,181, 97,251,199, 29, 7, 77,123, - 98, 85,201, 53,255,241,227,199,184,117,235, 22, 50, 50, 50,208,188,121,243,127,203,249,188,171,237,175,239, 18, 66,108,253,252, -252,220,206, 93,188,102,155,155,207, 90,189, 73, 86,241, 88,150,133,153,153,139,250,224,225, 19, 89, 3,251,245, 34,132,144, 20, - 0,119,181,226,246,110, 25, 23,138, 8, 64,173,254,253,251,207,157, 60,121, 50,162,162,162, 48,110,220, 56,217,221,187,119,223, -181,106,213,202,126,231,206,157,226,153, 51,103,226,234,213,171,139, 9, 33, 71, 1,196, 80, 74,243, 75,232, 52,248,124, 62, 31, -106,173,108, 80,106,216, 2,125,159,157,157, 13, 42,203, 0,159,207,231, 0,168, 4,192, 32, 63, 58,150,101,249, 60, 30,175, 64, -100,189, 77,206,198,219,148, 60,100,231, 42, 32,147,169,161,144, 81,112,204,236,185,192, 27, 39, 0,111, 12, 60,158, 28,145, 72, - 4,181, 90, 93, 48,255,162,206, 82,166, 80, 40,144,149,149, 5, 14,135, 99, 1,192, 10, 64,186, 33,132,239,157,220,113, 76, 59, - 12,136,123,123,123, 59,188, 58, 61, 79,217,127, 73,100, 65,153,149, 57, 87,117,120,102,109,142,189, 91,131, 27, 13, 7,254,230, -163, 43,251,156,254, 89,132, 16, 97,165, 74,149, 46,135,132,132,212,174, 94,189, 58, 98, 98, 98,124, 6, 12, 24,208,156, 16,210, -208,216, 57, 25, 9, 33,102, 12,195,252, 56,106,212,168,201,254,254,254,164, 70,141, 26,224,114,185, 80,171,213,110, 81, 81, 81, - 29, 14, 29, 58, 52,135,203,229,238,212,104, 52,223, 25,234,247, 71, 8, 97, 4, 2,193,193,237,219,183,183,109,222,188, 57,246, -236,217,131,187,119,239,178, 77,155, 54,101,134, 15, 31, 14, 79, 79,207,230,195,135, 15, 63, 70, 8,233, 94, 30,203, 22, 33,196, -115,232,208,161,238, 28, 14, 7,173, 90,181,226,223,186,117,171, 17,128, 91, 31,121, 76, 45,220,220,220,174,182,111,223,190,225, -197,139, 23, 31, 16, 66,218, 27,227,231, 72, 8,233,227,234,234, 26,100,109,109,109,107, 68, 31,155,151,144,144,240,189, 17,115, -168,182,104,220,184, 49, 98, 99, 99, 81,171, 86, 45,240,249,252,150,132,144, 9, 0,186, 1, 88, 96,204, 12, 22,132, 16,215,150, - 45, 91, 58,180,111,223,158,172, 90,181, 10, 0,192,227,241,160,209,104,192, 48, 12,120, 60, 30,124,124,124, 72,116,116,180, 29, - 33,196,213,144, 97, 68,135,106, 29,122,181,234,216,173, 77,219,230,245,153, 53,135, 95, 65,195,106,192, 33,106,112, 9, 11, 86, - 37,132,144,207, 65, 13,223, 38,156,231, 79, 31, 53,119,168,217,185, 87,218,139, 11, 39, 13,225,236,214,171,183, 95,237, 90, 53, -152, 13,199, 94, 35, 51, 33, 82,147,240,236, 90, 26,195, 97, 80,187,241, 23, 14, 53,234, 52,228, 52,108,222,158, 39,137,121,218, -193,174,122,187, 78,233,175,174, 94,252, 28,247,228, 82,128,227, 86,217,225,235,158,157,219,243, 19, 37, 18,233,161,195, 39,159, -228,169,112, 27, 0,174, 2,164, 59, 80,191, 94,179,102,237,118,174, 90,101,239,226,226,194, 27,230,239,175,222,241,224,193,131, -241,128,166, 36, 62, 7,103,231, 78, 19, 39, 78,228, 36, 74, 36,244,208,145,211,143,117,124, 0, 96, 6,212,171,239,230,211, 19, -210,231, 70, 13, 83,246, 2, 4, 78,206,206,181, 39, 76,152,128, 36,137, 4,123,130,131,115,243,129, 80,157, 21,235, 4, 7,155, -235, 84,117, 30, 53,123,108,111,226,238,226,128,137,139,119,180,236,160, 76,169,122, 25,255,179,108,233,107,145,127,170,200, 42, - 42,182, 74,124, 59, 63, 28, 65, 23, 89, 9,136,247,161, 67,251,153,212, 28,165, 52, 42, 42, 10, 14, 14, 14,112,113,113,129,181, -181, 53, 34, 34, 34,240,231,159,127,226,197,139, 23, 96, 89, 22, 13, 26, 52, 48,170, 65,105,105,105,120,244,232, 17,108,109,109, - 43,140,179,170,123, 37, 76,113,175,196, 79,126,151,205,191,120,247, 69,243, 29,243,250,213, 97,124,250,237,202,207,255,159, 6, - 80, 40,254, 29, 51,148,232, 71, 23,122,120,120,180,222,189,123, 55, 95,174,134,101,141, 9,161, 63, 73,243, 53,230, 0, 96, 46, -226, 72,195,130,106,126,183,108,217, 50,233,232,209,163,125,222,190,125, 27, 88, 22,175, 64, 32, 88,241,229,151, 95,206,162,148, -242,190,253,246, 91, 0,192,136, 17, 35,178,111,223,190, 93,131, 82,154, 66, 8,113, 29, 51,102,204,203,203,151, 47,155,205,152, - 49,131,163, 86,171, 35,184, 92, 46, 37,132, 4, 80, 74,151, 20,229, 99, 24,230,254,131, 7, 15,188, 92, 61,107,194,211,158,129, -223,194,247,211,181,217,155,177,136,127,243, 26,207, 30,223,133,179,179,179,181,139,139, 75,100,173, 90,181,148, 9, 9, 9,115, -114,115,115,183,150,214, 70, 62,159, 31, 30, 22, 22,230,226,233,233,137,220,220, 92,196,167,230, 97,218, 17, 51,100,203,222, 27, - 49,120,144,161,161,123, 77, 75, 49,163,184,235,228,228,164, 84, 40, 20, 63,100,102,102,150, 58,141, 8,143,199,123,247,248,241, - 99, 11, 15, 15, 15,228,231,231,211,244,244,116, 34,149, 74,145,147,147, 67, 78,159, 62,253, 85, 98, 98, 98, 83,111,111,111,226, -230,230, 22, 80,189,122,117, 89, 66, 66,194, 56, 67,124,192, 66, 22,251, 40, 9, 33, 26, 46,151,187,102,252,248,241, 3,143, 30, - 61,122,255,240,146,218,125, 40,165, 74,237, 13,105,237,235,235,123,174,126,253, 58,174,193,171,235,109,164,148,254,244, 55,184, -188, 70,205,159, 63,191,182,157,157, 29, 38, 78,156,136,165, 75,151, 98,209,162, 69,213, 39, 78,156, 56, 30,192, 58, 35, 58, 29, -177,179,179,243,189, 13, 27, 54,248,180,110,221, 26,103,206,156,193,254,253,251, 17, 29, 29,173,246,246,246,230, 54,111,222, 28, -139, 23, 47, 70,215,174, 93,199, 77,157, 58,181, 29, 33,164,145,129,226, 99,244,226,197,139,251,180,105,211, 6, 35, 71,142,148, - 95,185,114,101, 32,128,243, 23, 46, 92,248,226,234,213,171,135,247,238,221, 43, 94,185,114,101,167,153, 51,103, 78, 4,176,169, - 28,251,255, 85,219,182,239,231, 80,110,211,166, 13,130,130,130,186,126,140,208, 34,132, 8,236,237,237, 79,239,217,179,167, 97, -205,154, 53, 49,108,216,176, 70, 3, 7, 14, 60, 77, 8,233, 76, 41, 53,168, 67,170, 92,185,242,143,199,143, 31,175, 86,210,200, - 66,113,144,203,229,118, 95,127,253,245, 42, 0, 70, 9,173,125,251,246,225,251,239,191, 71,131, 6, 13,234,183,104,209, 98,219, -132, 9, 19,208,191,127,255,142,132, 16, 39, 74,169,212, 16, 34, 46,151,235,221,179,103, 79,222,145, 35, 71,222, 91, 71,218,182, - 69,167, 78,157,240,228,201, 19,220,184,113, 3, 28, 14, 7,230,230,230,104,221,186,181, 64, 34,145,120, 3, 40, 83,104, 49, 66, -179, 81,125,122,118,183, 60,113, 59, 17, 26, 86,141, 38,213,172,208,220,199, 17,207,227,179, 17, 22, 25, 15,141,130, 15, 43, 59, -123,180,108,215,197, 46, 41, 33,122, 20,128,178,253,181,132,102,163,250,246,233, 97,113, 34, 84,130, 76,201, 51,250,234,238,209, - 63, 85,249,210,113, 0,112,255,210,129,109,206,246,226,206, 53, 26, 55,225,180,239,220,219,246,200,254,164, 81, 0, 62,139,208, -186,234,142,237,158,188,180, 17,179,135,248, 81,158,173,219, 93, 75,149,106,179,110, 89, 87,160,203,156,249,243, 91,140, 29, 63, - 94,196,178, 44,246,254,254,123,246,163, 7, 15,158,151, 22,237,183, 25,240, 28,216,167,143,208,210,202, 10,211,167, 77,131,165, - 74,117,185,224,144, 0, 29,167,207,154,213,250,155,111,190, 17,111, 11,152,124,191,235,152,229,141, 89, 74, 73,113,195,148, 69, -113, 17,104, 58,166, 79, 31, 88, 90, 89,225,219,111,191, 5, 81, 42,207,233,150,157,226,226,242,232,175,252,154, 15,233,213, 6, - 4, 4,251, 79,221,192,171,216,212,199,151, 19,241,250, 95,242, 76, 54,206, 71, 75,135, 28, 37,146, 59,246,232,135, 7, 15, 30, - 0, 0,222,189,123,135,119,239,222,161, 90,181,106,216,180,169,112,255, 85, 30, 1,195,178,108,133,115, 2,128,147,189, 21,134, -117,111,198,189,241,104,191, 72,154,154, 42,178,176,176,200,255,183, 9, 45,125,168,213,106,145,183,183, 55,178,101, 32, 89,121, - 42,139,180, 3,239, 45,254, 14,131,175, 88, 40, 20, 10,198,194,194, 2,114,185, 92,100,192, 3,129,215,167, 79,159, 89, 7, 15, - 30,228, 61,123,246, 12, 85,171, 86,133, 82,169,196,237,219,183,227,181, 19, 33,131, 82, 42,225,112, 56, 18,150,101,171, 55,104, -208, 0,129,129,129,240,241,241, 33,221,187,119,159,163, 21, 91,133,110,238,196,196,196, 31, 39, 76,152,240,197,161,195, 71,237, -182, 15,146, 33, 59, 43, 27,185,185,185, 8,127,120, 31,233,201,249,216,177, 99, 7, 68, 34, 49, 1,192, 79, 73, 73,230,207,152, - 49, 99,163,155,155, 91,183,248,248,248,158, 37,181, 83, 34,145,172,248,230,155,111, 90, 30, 56,112,192, 38, 39, 39, 7, 50, 89, - 62,210,165,102,136, 92,255,126, 30,223,218,211, 35,177,101,243, 86,166,158,151,185, 67, 94, 94, 30, 38, 79,158,188,214,213,213, -181,181, 68, 34, 25, 83, 18,103, 66, 66,194,157, 41, 83,166, 56,237,221,187, 87,164, 80, 40,148, 26,141, 6, 50,153,140, 57,112, -224,192, 28, 47, 47, 47,219,157, 59,119, 18,145, 72,172,173, 27,207,159, 52,105,210, 65,103,103,231,189, 73, 73, 73, 35,203, 26, - 46,226,112, 56,235,131,131,131,135, 15, 26, 52,200, 50, 49, 49,177,206,241,227,199,133, 0,100,218, 42, 46,157, 59,119,246, 90, -189,122,117, 37, 95, 95,223, 57,132, 16, 30,165,116,229,231,188,158, 28, 28, 28,166,246,233,211, 7,171, 86,173,194,201,147, 39, -103,218,217,217,173, 93,186,116, 41, 92, 93, 93,167, 16, 66,214, 27, 49, 81,239, 79,235,214,173,243,241,241,241,193,136, 17, 35, - 20, 23, 47, 94,156, 15,224, 24,128,216,235,215,175,123,252,246,219,111,189, 14, 30, 60,184,106,195,134, 13,162, 77,155, 54, 85, -235,215,175,223,122, 0, 99,202,188,191,157,156,102,248,251,251, 99,245,234,213,184,114,229, 74, 63, 74,233, 25,237,162,179,132, -144, 94, 43, 87,174,188,180,112,225, 66,172, 91,183,238, 91, 99,133, 22, 33,196,162,118,237,218, 63,116,235,214, 13,215,175, 95, -135,159,159, 31, 90,182,108, 57,147, 16,178,145, 82,154, 86, 14,145,197, 88, 88, 88, 28,220,189,123,183,159,151,151, 23,150, 47, - 95,142, 89,179,102, 97,215,174, 93,126,195,134, 13, 59, 72, 8,233, 91,244,158, 41, 14,214,214,214, 22,102,102,102,152, 51,103, - 14,141,142,142,206, 40,171,190,187,187,187,237,218,181,107,137,173,173,173,181,129,237, 20,139, 68,162, 86,117,235,214,197,226, -197,139,113,225,194, 5, 44, 92,184, 16,117,235,214, 69,108,108, 44, 6, 15, 30,108,182, 96,193,130,254, 0,118, 27,248,208,177, -182,183,183, 71, 74, 74, 10,120, 60, 30, 90,183,110,141, 99,199,142, 65, 46,151,195,209,209, 17,153,153,153,104,214,172,153, 78, -148, 25, 24,156, 67,235, 58,216, 89, 35,229,105, 2,184, 80,163,113, 13, 7, 92,126,242, 14, 74, 21, 11, 71,123, 27, 36,165, 36, -163, 69, 93, 55, 40, 20, 30,160,148,173,107, 8,163,128,195, 52, 22,138,196, 72,207, 73, 67, 66,228,149,119, 74,141,124, 66,102, -244,141, 56, 0,176,171,218,118,194,253, 27, 23,238, 15,232,209,214, 49, 87,234, 14, 66,217,102,159,227,126, 28,224, 1,119,115, - 17,119,196,169,237,243,136,154,101,241,229,152, 21, 77,187, 57, 33, 15,201, 64, 37,192,123,192,224,193,173,190,251,238, 59,193, -203,168, 40,118,198,180,105,153, 15,239,221,187,242, 7,112,191, 52,206, 92,160,122,231,206,157,193, 0,248,227,252,121,105, 26, - 16, 15, 0, 78,128,123,239,175,191,110, 59,127,238, 92,193,235, 55,111,216,219, 81,185, 39, 94,167,208,192, 86,118,120,116, 32, -246,125,157,210,160, 1,234,233,120,207,157, 59, 71,101,218,118,180,119,199,148,174,173,125,155, 15,239,211, 22,241, 73,239, 16, -244,203, 9, 60,126,153,120,206,158,197,208,127,203,115,184,180, 12,246,140, 1, 55,204, 7,101,121,121, 31,142, 30,124,172,128, -249, 20,156,197,225,223, 40,180,116,208, 77,222,172, 80,177, 80,168, 88,221, 91, 45,100, 50,153,161,138, 92,117,238,220,185, 61, -211,166, 77,195,218,181,107,241,242,229, 75,240,249,124,212,173, 91,215,133, 16, 98,161,179,192, 52,110,220,216,145, 97, 24, 60, -127,254, 28,107,214,172,193,232,209,163,233,173, 91,183,118, 21,247,192,160,148, 62, 76, 79, 79,223, 60, 97,220,232,204,140,228, -183, 80,201, 50,144,146,240, 26,114,105, 38,150, 7,254,136, 60, 21, 23, 73, 89, 74, 36,101, 41,193, 8,237,176,109,231,110, 78, -237,218,181,187,113,185,220,158,165,180,243,118,114,114,242,206, 73,147, 38,101, 38, 37, 37, 21,236,159, 66, 69,161, 80, 21,190, - 94,205,204,204,176,126,253,122,235, 26, 53,106,244,225,241,120, 29, 74,225, 76,140,139,139,123, 54,105,210, 36, 69,114,114, 50, -178,178,178,112,226,196,137, 94, 94, 94, 94,182,171,126, 90, 75,164, 74, 46,146, 50,149, 72,202, 84, 66, 96,225,136,131,135,143, -114,106,214,172, 57,132,199,227,181, 44, 75,100,237,221,187,119,248,160, 65,131, 44,127,250,233,167,244,227,199,143,111,161,148, -234,159,144,231,235,215,175, 63,116,240,224,193,156, 89,179,102,217, 5, 5, 5,205, 36,132,204,255,140,157, 69,135, 65,131, 6, -213, 98, 89, 22, 33, 33, 33,143, 41,165,235,142, 30, 61,122, 79, 46,151, 99,240,224,193,222,218, 97, 36, 67,120,154, 14, 25, 50, -100,178,159,159, 31,166, 79,159,174,188,120,241, 98, 99, 74,233, 90, 74,233, 27,250, 30,177,148,210,141, 87,175, 94,109, 48,117, -234, 84,121,179,102,205, 48,114,228,200,209,132, 16,191, 50,120, 91,249,251,251,251,176, 44,139, 3, 7, 14, 60,210, 19, 89,186, -243,248,231,225,195,135,111, 43, 20, 10, 12, 29, 58,180, 10, 33,228, 11, 35,246,157, 47, 20, 10, 67,150, 45, 91,102,147,144,144, -128,225,195,135,203,159, 63,127,142, 37, 75,150,136,173,173,173,207,232,238, 1, 99, 32, 20, 10,119,252,252,243,207,125,234,213, -171,135, 73,147, 38, 41,182,110,221, 58,109,242,228,201,138,198,141, 27, 99,203,150, 45,125, 4, 2,129, 81, 83,139, 72, 36,146, -204,136,136, 8,251,178, 62,241,241,241,201, 6,238,179,153,165,165,101,168,175,175,111,118,221,186,117,155,168,213,106, 68, 68, - 68,188,222,179,103, 15, 91,183,110, 93,108,222,188, 25, 65, 65, 65,232,217,179, 39, 56, 28, 78,127, 99,218, 42,149, 74, 33, 18, -137,192,231,243, 17, 22, 22, 6,185, 92, 14, 51, 51, 51,136, 68, 34,112, 56, 28,216,216,216,192,210,210, 18, 48, 48, 26,141, 16, -208,236, 60, 21,120, 60, 6, 92,134,197,179,216, 44, 40, 85, 44, 68,124, 14,120, 92, 2, 80, 22, 54,230, 60,136, 4, 28, 48,132, -176, 6,114, 34, 75,170,132,128,207,128,199, 23, 16, 70,173, 17, 23, 60, 28,185, 26,177, 88, 44, 32, 14, 86, 66,136,248,127,163, -105,129,201,251,227, 53, 10,224,153,123,120, 12, 92,189,102,141, 32, 59, 55, 23,253,250,245, 75,127,115,239, 94,176, 12,184,215, -174,140, 99,202,112,185, 53,218,183,107,135,176, 7, 15,144,147,145,241, 10,120,239, 28, 47,112,117, 29,180,126,253,122,129, 44, - 63, 31,253,250,246,205,124,121,227,198,222,184, 92,156, 50, 68,100, 1, 0,135,207,119,214,241,102,101,100,100, 0,239, 83, 72, - 56, 85,178, 88,245,205,144,174,200,201,203,199,236, 31,131,217, 7,207, 18,167, 92,143, 71,143,163, 18,100,253,155,158,193,132, -144,241,250, 31,131, 44, 90, 58,171,147, 33, 98, 69, 46,151, 87,184, 0,250, 88,206,226, 68,226,199,114,254, 29,193,229,114,243, - 95,188,120, 33,176,178,119,101,237, 45,121, 25, 94,163,111, 88, 3,128,157, 5, 55, 75,169, 81,177, 18,137, 4, 66,161, 48,223, - 16,174,252,252,252,113,132,144,229, 0,234,112,185,220, 83,187,119,239, 38,193,193,193,182,254,254,254, 81,132,144, 4, 95, 95, - 95,207,221,187,119, 91, 1,192,198,141, 27,233,193,131, 7,187,226,125,202,140, 18, 77,202, 73, 73, 73, 75,120, 60,222,173,111, -190,249,102,147, 64, 32,176, 53, 55, 55,183,191,126,253, 58,201, 87, 82, 52,157, 31, 91, 16,137,104, 37,102,112,109,158, 21,198, -143, 31,207,137,140,140, 12, 4,112,170, 20,206, 57, 66,161,240,250,203,151, 47,215, 90,187, 53,172,100,238, 57,223,186,249,188, -231, 0, 0, 79, 7, 30, 24,109,191,152,153,153,137,212,212, 84, 76,158, 60,217, 54, 42, 42,106, 14,128,203, 37,113,198,199,199, - 95, 21, 10,133,241, 79,159, 62,109,207,227,241, 4,230,230,230, 77, 67, 67, 67, 73,190,130, 69,253, 57,177, 72,207,125,223, 78, - 59, 11, 46,238, 47,115,194,148, 41, 83,184,175, 94,189,250, 17, 64,155, 98, 59, 51,134, 9,210, 23, 89,179,103,207, 14, 7, 80, -133, 16, 82,104,104, 84,163,209,144,161, 67,135, 62, 1, 80,119,214,172, 89,118,148,210,153,132,144,116, 74,233,246,191,250, 90, -178,178,178, 90, 53, 97,194, 4, 28, 60,120, 16, 25, 25, 25,235, 1, 32, 59, 59,123,221,190,125,251, 14,140, 27, 55, 14,191,255, -254,251, 42, 66,200, 31, 6, 88,181,190, 28, 60,120, 48,206,158, 61,139, 75,151, 46,253, 64, 41,141, 40,225, 30,125, 73, 8,153, -115,252,248,241, 13,254,254,254,248,245,215, 95,187, 1, 40,205, 65,182,115,215,174, 93,113,230,204, 25,188,123,247,110, 75,113, - 21, 50, 51, 51,183,158, 56,113,162, 69,215,174, 93, 17, 24, 24,216, 25,192,159, 6,116,144, 62,214,214,214,187, 55,108,216,208, -180, 94,189,122, 24, 50,100, 72,190, 82,169,236, 54,107,214,172,147,251,247,239,183,220,179,103, 79,147,241,227,199,223, 33,132, -140,165,148,222, 54,232,161,195,225,172,220,180,105,211,152,246,237,219, 99,230,204,153,234,115,231,206,245,166,148,158, 39,132, - 68,205,158, 61,251,244,154, 53,107, 56,171, 87,175, 30,195,225,112, 82, 53, 26,205,231, 18,215,203, 54,110,220,216,162, 75,151, - 46,120,253,250, 53,110,223,190, 13,165, 82,249,123,104,104,232,181,234,213,171, 47, 83, 40, 20, 39,205,205,205, 71, 88, 90, 90, -250, 54,108,216,240, 11, 66,136,153, 33,126,122,132,144,204,168,168, 40,115, 71, 71, 71,240,120, 60, 60,122,244, 8,142,142,142, - 0,128,148,148, 20,212,173, 91, 23, 28, 14, 7,153,153,153, 0, 12,123,216, 18,194, 60,142,122, 35,169, 98,103,105, 14,104, 68, -120,248, 60, 30,149, 28,108,161, 33, 12,146,146, 18,209,176,150, 27, 8, 33,200,124,151, 4, 66,200, 19, 67, 56, 53,148, 13,123, - 43, 73,169,108,111, 41, 68,189, 22, 93,236, 67,255, 72, 13,182,174,218,102, 60,151, 67, 56, 66,145,213,246, 49, 35, 71, 58,176, - 44, 69,230,187,100,112, 25,230,238,231, 56, 65, 33,111, 17,215,174,170,232, 97,151, 49,203, 27, 18, 10, 42, 83, 98,207,175,201, -200, 48, 3, 26,110, 92,176,192,198,222,193, 1, 67,134, 12, 97,223, 37, 36, 92,204, 3, 12, 74,172, 92,165,122,117, 39, 11, 75, - 75,220,188,121, 19, 28, 32, 6, 0,118, 1, 62, 65,179,103,219, 59, 58, 59, 99,244,152, 49,108,242,219,183,127,202, 12, 24,210, - 45,196, 91,181, 42, 79,199,203,104,121, 19, 57,152, 54,171,183,159,208, 92, 44,196,202,109, 71, 17,151, 38, 61, 16,154,136,109, -255, 70, 99, 71,153, 22,173,146,156,207,222, 59, 85,155,149, 42, 86, 68, 34, 81,129, 53,197,136, 55,189, 10,231, 44, 11,159,130, -243, 51, 42,231,121,132,144,227,132,144,121,113,113,113,207,198,140, 25,163, 84, 43,229, 57,183,150, 87,153,251, 32,208,107, 82, -232, 18,151, 73,199,166, 89,207,205,203, 74,207,217,184,113,163, 42, 46, 46,238,153,254, 58,101, 92, 44,111, 41,165,103,126,251, -237,183,173, 33, 33, 33,168, 91,183, 46, 34, 34, 34, 28,165, 82,105,163, 39, 79,158,216,249,248,248, 32, 56, 56, 24, 7, 15, 30, - 92, 75, 41,189, 80,154,200,210,179,182, 93, 76, 76, 76,172, 25, 27, 27, 91,205,198,198, 70,101, 99, 99,131,162,145,136,217, 50, - 22,239, 50,179, 96,103,103, 15, 43, 43, 43,239,178, 56,229,114,249,153,196,196,196, 26,172,109,173,182, 53,210,214,103,133,173, -116, 71,216, 74,119,156,153,227, 10, 23, 27, 1, 50, 50, 50,144,154,154,138,212,212, 84, 16, 66,160, 82,169,106, 27,192, 25, 45, -145, 72,126,121,251,246,237,113, 39, 39, 39, 88, 90, 90,130, 2, 72,202, 84, 33,124,181, 15,194, 87,251, 32, 41, 83,133,236,156, - 28,120,121,121,193,210,210,178,110, 73, 67, 70,149, 43, 87,238, 62,104,208, 32, 75, 0,208, 10,168,142,148,210, 73,197,124, 38, -170,213,234,214,186,186,223,127,255,189, 29,128,174,127,241,245,196, 33,132,124, 51,110,220,184, 38, 34,145, 8,155, 55,111,142, - 6,176, 87,215,215,111,221,186,245, 57, 0, 76,155, 54,205, 23,192, 76, 82, 66, 38,104, 29,248,124,126,227,218,181,107, 35, 52, - 52, 20, 0,142,150,177,249,195,183,110,221, 66,245,234,213, 33, 18,137,154,150, 81,215,219,221,221, 29,207,159, 63, 7,128,135, - 37,212,121,248,252,249,115,184,187,187,131, 16,226,109,192,190,247,233,210,165,203,227,203,151, 47, 55,109,213,170, 21,198,140, - 25,163,184,115,231, 78,119, 74,233,181,135, 15, 31,118, 24, 58,116,168,180, 70,141, 26,184,122,245,170,207,208,161, 67,111,113, - 56,156,229, 6,112,142, 14, 8, 8,152,247,213, 87, 95, 33, 32, 32,128, 30, 58,116,104, 8,165,244,188,246,254, 58,119,224,192, -129,225, 43, 86,172,160,125,251,246,197,210,165, 75,231, 17, 66, 38,149, 97, 29,202,210,104, 52,144, 74,165, 6,153,228, 13,173, -239,224,224,240,101,151, 46, 93,176,112,225, 66, 84,174, 92, 25, 39, 79,158,164, 0, 78, 81, 74,175,203,229,242,182,148,210, 53, - 82,169,244, 88,104,104, 40, 58,119,238,204, 71,225, 41, 70, 74,132, 90,173,126,115,249,242,101,165,189,189,253,127,217, 59,239, -248, 40,138, 62,140, 63,115,189,223,165, 93, 58, 9,161,165,210,149, 42, 77, 67, 13,130,162,162, 72, 17, 17, 68, 1, 17, 68,138, -162,188, 22, 4,105,162,136, 20, 69, 80,154,226,139, 82, 34, 34,200, 43,136,212,132, 22, 66, 8, 36,164,151,203,165,151, 75,114, -109,231,253, 35,185, 24, 98,202, 93,130, 10, 56,223,207,103, 63,119, 55,187,251,220,236,236,222,238,115, 83,126, 3, 95, 95, 95, -248,249,249,161,172,172, 12,133,133,133,232,216,177, 35,122,245,234,133,178,178, 50, 28, 60,120,208, 84, 88, 88,104,215,128, 21, -139,177,236,171, 35,145,123,139, 92, 85, 18,248,186,107,208,218,199, 5,165,133,185,208,103,103,162,123,136, 31, 6,116,111,141, -220, 34, 35, 14, 31,220, 91, 80, 82, 98,248,202,174, 86,128, 74,195,214,163, 63, 29, 40,114, 86,137, 16, 24, 20,134,241, 83, 94, -233,218,181, 91,207, 35, 61,122,244, 61,188,114,249, 7,157, 31,233, 29, 66,210,115, 43,112,232,224,247, 5, 69,197,197, 91,255, -137,123,253, 59, 0,191, 66,211,225,196,250,125,209, 95,132, 14,155,250, 69, 92, 58,214, 2,128,153,207, 15, 30, 49,124, 56,210, -211,211,177,119,207,158, 44, 3,112,217, 94, 61,153, 76,198, 3,128,162,162, 34, 72,170,102, 11,129, 5, 8,138,136,136,128, 62, - 55, 23, 59,119,236,208, 31, 2, 46, 56,146,207, 71, 1,177, 92, 86, 85, 33, 88, 84, 84, 4, 2, 20, 3, 0, 17, 96, 68,143,142, -237,161,207, 47,198,255,206,197,149,182, 46,199,203,141,233,220,171, 29,225, 27,235,163,213, 84,125,104,238,220,185,115, 33,145, - 72,224,229,229, 85, 99,142,108,102, 69, 44, 22,195,203,203, 11, 22,139, 5,187,119,239, 6,128, 70,251, 48,240,128,202, 81, 47, - 45,227, 42,205,212, 32, 20, 10,239,136,102,117,205, 65,229, 19,243,191,228,126, 58, 85,255,160,152,230,104,222, 3,244,168,142, -137,213,131, 82, 90,144,156,156,156, 62,246,137, 81, 69, 41, 9, 87,179,203, 10, 51,179,138,243,210,178,210,110,197,100,191,177, - 96,110, 81,122,122,122, 90,117, 44,173, 30,153,153,153,163, 0,216,219,215, 96,238,216,177, 99, 55, 76,157, 58,149, 94,186,116, - 9, 0, 16, 29, 29,141,231,158,123,142, 78,156, 56,113, 45,128,133,205,200,119, 89,121,121,249,109,181, 33, 38, 43, 87,211,228, - 87, 92, 92,140,204,204, 76, 24,141, 70,187, 29,241,141,195,171,226,243,147,163,204, 97,254, 10,132,249, 43, 16,220, 74, 14, 98, - 41,173, 49, 89,122,189, 30, 58,157, 14, 0, 42, 28,200,103,113,101,101,229,109,249,172,221, 52, 89, 92, 92,140,236,236,108, 88, -173, 86, 99, 3, 63, 58, 46, 35, 35,227,240, 55,223,124, 83, 2, 0, 43, 87,174,204, 39,132,252, 66, 8,217, 80,207,178, 81, 32, - 16,252,110,219,118,213,170, 85,249, 0,126,252, 27, 77,214, 99,157, 58,117, 42, 88,180,104,209,167,179,103,207,198,198,141, 27, -145,149,149,181,144, 82,106,177, 29, 75,110,110,238,252,245,235,215, 99,242,228,201,120,251,237,183, 87,117,235,214,173,152, 16, -210, 96,255, 10,173, 86,235, 43, 16, 8,112,225,194,133, 98, 74,105, 98, 19, 55,168,236, 11, 23, 46,232, 8, 33,240,242,242,106, -219,216,182, 46, 46, 46,237, 84, 42, 21, 50, 50, 50,128,234,127,204,245,144,156,153,153, 73,197, 98, 49,188,189,189,219, 55,117, -252,206,206,206,243,191,248,226, 11,193,213,171, 87,241,200, 35,143,164, 31, 63,126,124, 48,165,244,215,234,188, 93,136,142,142, -238, 55,104,208,160,248, 35, 71,142,224,195, 15, 63, 36, 93,186,116,121,169, 41, 77,127,127,255,233,207, 63,255, 60,214,173, 91, -135, 77,155, 54,189, 68, 41,221, 83,231,152,119,173, 95,191,254,149, 77,155, 54, 97,202,148, 41, 8, 8, 8,104,180,175, 74, 74, - 74,202,130,129, 3, 7, 70,223,184,113,195,174, 25, 15,236,217,158, 16, 50,168,103,207,158,237,202,203,203,177,117,235,214,196, -118,237,218,157,223,179,103,207, 92, 74,105,221, 7,246, 15,123,247,238,197,132, 9, 19,208,165, 75,151,173,132,144,113,118, 60, -116, 50, 83, 82, 82,114, 47, 95,190,204,241,249,124,248,250,250, 98,196,136, 17,120,230,153,103,208,165, 75, 23,228,228,228,224, -196,137, 19, 92, 66, 66, 66,174,189,129, 75,115,227,255,119, 32, 41, 41,254,247, 11,103, 79,152, 5,124, 30,252,188, 92,240,120, -120, 87,188,240,100, 95,116, 15,246, 65, 74, 78, 57,142, 29, 59, 98, 78, 74, 74, 60,109,207,136, 67,155,102, 92,236,229, 83, 87, - 47,156,180, 8, 5, 4,193, 65, 29,176,248,141,249,206, 75,151, 44,112,234,208,214, 15,151,111, 21,225,200,207,135,204,153,233, -105,255,251,167, 70, 28, 30, 7, 68, 74, 9, 81,240,121, 60, 88,121,146, 50,126,117, 32,227,142,161,161,129, 30,158,158,136,140, -140, 4, 15,184,230,144,158,178,170, 21,188,180,180, 20, 54,189,118, 65, 65, 65,126,254,254,248, 49, 50, 18,124,142,187, 54,192, -193, 0,163,215, 1,121,109, 93, 2, 84,188,220, 10,170,118,173,220,131,156, 53, 10,156,189,124, 19,149,102,122,110, 71, 1, 12, -184, 15,169,219,108,232, 72,211,225,202,141, 27, 55,246,248,226,139, 47, 6,207,157, 59, 87, 57,105,210, 36, 72,165, 82, 24, 12, - 6,248,250,250,194,106,181,226,167,159,126, 66, 84, 84, 84, 41,199,113, 71, 80, 39,108, 0, 33, 36,188,118,172,141,159, 18,168, -172, 42, 8,166,161,199,190,167,158,186, 35,154, 0,160,188,201,169,243, 90, 27,183,127,178,231,228,152,157,135, 47,144, 87,199, - 13,224,117, 15,106, 5, 0,240,240,240,128, 90,173,118, 88,243, 14, 20,250, 95,174, 89,187, 89, 55, 43, 43,235, 58, 33, 36,103, -234,212,169,193,182,142,239, 18,137,164, 34, 45, 45, 45,206, 22,176,180,238, 62, 77,229,179,122,100,220,203,132,144,253, 69, 69, - 69,135, 95,127,253,117, 44, 93,186, 20, 7, 14, 28,232, 71, 41,253,189, 57,199, 78, 41,181, 6, 4, 4, 20,158, 59,119,206,163, -125, 72, 55,180,113, 23,162,255, 91, 55, 64, 41,133,171,156,162,164, 48, 31, 23, 47, 94, 64, 73, 73,201, 89, 71,242,233,237,237, - 93,152,147,147,227,230,238,238,142,252,252,124,228,230,230,214,152,172,130,130, 2,228,231,231, 83, 66,110,143,217,210,132,102, - 89,187,118,237, 12,113,113,113, 98,143, 86,237,209,214, 93,132,158,111, 92, 7, 40,133,159, 11, 15, 37,197,133, 56,125,250, 52, -138,138,138,126,109, 72,147,227,184,215,198,143, 31,207, 7, 48,241,245,215, 95,119, 1,208,101,254,252,249, 71,234,142, 44, 20, - 10,133, 31,109,223,190,189,163,173,137,113,193,130, 5,107, 40,165, 95,252, 93,215,146,171,171,235,107,145,145,145, 42,147,201, -132, 79, 62,249, 4,107,214,172,217, 66, 41,253,111,157,242,136,228,243,249,235,121, 60,222,140,153, 51,103,226,197, 23, 95,148, - 63,240,192, 3,115,107,213,122,221,166,153,145,145,177,184,123,247,238,111,231,228,228,216,213,177,255,198,141, 27,211,186,119, -239,190, 56, 39, 39,103, 69, 99,231, 72,161, 80, 40,172, 86, 43,146,146,146, 10, 40,165, 69, 13,156,187,138, 14, 29, 58,100, 88, -173, 86, 95,185, 92,238,210,212,245, 89, 80, 80,240,193, 3, 15, 60,240, 31,157, 78,247, 51,128,247,235,134, 42,161,148, 94, 34, -132,132,205,158, 61,123,214,242,229,203,199,100,103,103,239,110, 74, 51, 37, 37,229,131, 65,131, 6,189, 21, 31, 31,191,173,161, - 38, 96, 74,233,167,132, 16,211,246,237,219, 95, 74, 74, 74, 90,214,152, 38,165,244, 32, 26,105, 74,175, 71,187,222,237,107,107, -242,249,252,249,203,151, 47,231,109,220,184, 17,148,210, 85, 22,139,165,161,124, 94,230,243,249, 95,245,237,219,119,210,158, 61, -123,164, 97, 97, 97, 47, 2,216,213,212,245, 89, 89, 89,121,230,212,169, 83,189,146,147,147,221, 6, 13, 26, 36,178,253, 65, 41, - 44, 44,196,193,131, 7, 77, 9, 9, 9,185,101,101,101,103, 28,185,135, 88,140,197,227, 78, 29,219,183, 43,249, 70, 76,239,129, -195, 70, 59, 27, 77,190,144,228,241, 81,152,151,141,159, 14,238, 45, 72, 74, 74, 60,109, 48, 20,142,115, 68,211, 84, 89,244,204, -233,255,237,223,157,158, 20,215,171,255,160, 17,206, 21, 70,127, 72, 68, 60,228,233, 50,240, 83,228,190,252,164,164, 91,191, 85, -152, 43,159,251,167,238,243,252, 0,188,207,207,142,154, 58,253,209,174,144, 57,251, 94, 20, 2,159,244, 5,100,110, 30, 30,162, -234,223, 14,148, 64,138,189,154, 58, 64,220,190,186,149,202, 96, 48, 64, 8, 24, 39, 3, 66,173, 86, 43, 3,128,248,248,120,200, -129, 84, 71,243, 89, 10, 40,228,181,116,121,128, 33, 79, 0,159,118,106, 5, 1,128,244,236, 60, 24,205,248, 29,247, 41,182, 26, -173,250, 58,197, 55, 21,124,145, 3,112,134, 16,114, 97,197,138, 21,253, 55,108,216, 48, 96,206,156, 57,226,225,195,135,227,252, -249,243, 56,122,244,168,177,178,178,242, 56,128, 19,182,225,234,118,100,230,142,107,238,169,218,110,108, 15, 31,226, 98,226,202, -191, 95,188,225,208, 67,173, 61,157,168,197,202,145,152,152, 24,156, 58,117,202, 97,205,123,228,196, 2, 64, 15, 66,200,190,234, -164,115,117, 67, 56, 84, 55, 23,246,168, 85, 11,214,156,175,186, 40, 16, 8,104, 80, 80, 16,169,158,158, 38,182, 37,249,206,206, -206,126,118,193,130, 5, 63,127,251,221,247,130,189, 51,101, 40, 42, 44,170,186, 1, 23, 21, 34, 79,151,137, 99,199,142,153,244, -122,253,139,142,104,234,245,250,151,199,141, 27,247,237,174, 93,187, 92, 10, 10, 10,106,140, 86, 65, 65, 1, 56,142,195,150, 45, - 91,244, 58,157,238, 77, 71, 52,179,178,178,166,188,254,250,235,223,237,220,253,157,224,200, 66,103,148,218,162,207,151, 21, 33, - 47, 39, 11, 7, 14, 28,168,204,205,205,157,221,200,249,177, 18, 66, 94, 29, 63,126, 60,108,102,235,244,233,211,175, 16, 66, 62, -181, 61,204, 9, 33,109, 94,123,237,181,113,181,250,113,173,249,187, 71, 29,230,229,229, 45,237,213,171,215, 26,189, 94,127,203, -100, 50,237,161,148,214, 27,165,223,106,181,206, 36,132,156,250,244,211, 79,159,113,115,115,243,200,206,206, 94,238,232,131,190, -165,219,167,166,166, 46,234,222,189,251, 27, 57, 57, 57,203, 27,219,238,230,205,155, 51,170,183, 91, 97,199,119, 71, 2,136,108, - 98, 27, 11,170, 66, 91,124,100,231,241,236, 3,176,207,206,155,243,230,127,226,254, 97,181, 90, 87,118,234,212, 73,106,177, 88, -142, 52,213, 31,144,227,184,105,115,230,204, 73,159, 55,111, 94, 87,171,213,106,111, 25,152, 1,252, 70, 8,241,206,205,205, 13, - 0,224, 4, 0, 2,129,160,176,176,176,176, 89, 83,240, 84, 71,124, 31,233, 22, 56,248,209, 61,219,214, 77,166,156,181, 11, 33, - 4,124, 30,255, 82, 73,169, 97,171,189, 53, 89,245,104, 70,184, 5, 14,126, 84,151,145,242, 60,229,172, 93, 0,194, 9, 4,188, -203, 37,165,134,207,245,113, 71,254,177, 41,120, 38,249,192,131, 79, 48,243,231, 47,223, 34, 0, 48,248,249,247,186,182,118,130, -210, 82,136, 66, 84,223,203,179,178,178,224, 12, 20,216,171, 41, 7, 44,166,234, 62,209, 5,249,249,144, 3,229, 89, 0,191,186, -223, 37,209,101,103, 67,233,128, 94,205, 31, 70,192, 84, 71,183, 8,128,196,214,157, 51,191,184, 12,176, 63,174,225, 61, 89,163, - 85,247,125,141,225,162,148,218,189,160,106,126,189,199, 1, 44,171,126, 85, 52,177,125,248, 63,161,217,203, 11,129,225,237, 72, -220,136, 32, 65, 62,128, 39,239,132,166,163,203, 95,173, 9, 96,155,209,104,164, 21, 21, 21,212, 96, 48,208,210,210, 82, 10, 96, - 95, 61,251,236,203,204,204,164,233,233,233, 52, 53, 53,149, 38, 39, 39, 83, 0, 59, 28,205,167, 90,173,254,226,169,167,158,178, - 10,133,194,117,119,226,216, 93, 92, 92,150,245,236,217,211,244,241,199, 31,211, 31,126,248,129,126,254,249,231,116,230,204,153, -180, 99,199,142,149, 78, 78, 78,227,154,163,233,233,233,185, 56, 40, 40, 40,111,203,150, 45,116,199,142, 29,116,237,218,181,244, -205, 55,223,180,250,250,250,102,171, 84,170,161,205,209,116,119,119,223,252,208, 67, 15,153, 54,111,222, 76,143, 28, 57, 66,119, -238,220, 73, 95,123,237, 53, 26, 28, 28, 92,169, 80, 40,158,176, 71, 19, 0, 95, 32, 16,172,158, 62,125,122,182,183,183,119,100, -157,117,242,208,208,208,243,227,199,143,207, 4,176,224,126,185, 62,153, 38,211,100,154, 45,215,156,232, 3,239,193,109, 96,161, - 39,222,162,244,196, 91, 52,188, 13,184,103,189,225, 67, 1,190, 92, 36,122,102, 64,191,126,171, 68,192, 51, 20,224,215,187,212, -151, 79,128, 47,229,243,159,236,219,179,231, 42, 17, 48,206,182,173,148,207,127,114, 64,191,126,171,132,124,254,132, 6,245, 26, -209,164, 0, 95, 36, 16, 44,232,219,187,247,106, 1,240,134, 45,237,225, 54,228,218,107,195, 90,209,126,254,228,230, 4,119,200, - 27,211,108,160, 60,166,221,233, 50,254,187,151,101,131, 74,187, 0, 0, 32, 0, 73, 68, 65, 84,230, 94, 8,130, 59,125, 17,222, - 43,154,119,145,209,106, 95,221,108,179,175,214,178,168,158,125, 22,213,217,102, 27,128,246,205, 44, 79,217,157, 60,118, 0,157, -220,220,220, 14,181,111,223, 94,223,186,117,235, 76,103,103,231, 93, 0,124, 91,168, 25,230,233,233,249,181,135,135,199, 13, 47, - 47,175,203,110,110,110, 31, 1,208,182, 68, 83, 40, 20,246,244,240,240,248, 53, 32, 32,160,208,223,223, 95,231,230,230,182, 27, -128,135,163,154, 0,188, 80,207, 77, 5,128, 8,128, 23,123,232, 48, 77,166,201, 52,235, 26,152, 33,109,177,124,112, 27, 88, 6, -183,129,117, 72, 0, 62,170,109, 80, 70, 2,178,230,154,162,231, 0, 73,221,237,155,212,107, 66,147, 2,252, 62,128,178,238, 62, - 35,124, 17,106,143,230,189,108,180,108,249,172,190,207, 79,171,157,111, 65,115,170,200,108,157,100,239,112, 51,216, 61,161,121, - 23, 53, 27,222, 4,154, 14,246, 86, 59,130,252, 29,248,206,242, 59,124, 12, 87, 0, 12,191,195,154, 87, 1, 76,188,147,154, 38, -147,233, 44,236,156,247,173,137,188,101, 53,210, 23, 46, 11, 12, 6,131,113,251,205,193,122, 24, 88, 56, 56,144,124, 34,176,130, -119, 40,145,102,212, 94,125,224,143,192,199, 14,105, 2,192,214,122,166,231,105,150, 94, 45, 77, 0,248, 29,248,211,236, 14,145, - 45,236,110,114,143, 61,155,179, 0,108,118, 40,142, 22,131,193, 96, 48, 24,140,127,142, 35,241,148,253, 17,187,251,137,172, 51, -199, 97, 77,191, 79, 2, 32,188, 1, 87,102,247, 72, 10, 66, 72,120, 51, 92,223, 81,166,201, 52,153, 38,211,100,154, 76,147,105, -254,187, 52,107,105, 55, 52,176,226,122, 29,189,127,100,192,200,157,130,216, 63,109, 89, 51,196,239,209,176, 9, 76,147,105, 50, - 77,166,201, 52,153, 38,211,252,123, 53,239,105, 51,117,123,109,214,109, 6,145, 53, 29, 50, 24, 12, 6,131,193, 96,180,128,198, -106,221,152,209, 98, 48, 24, 12, 6,131,193,104, 1,132, 16, 47, 84, 77, 81, 21, 89,253,202,106,180, 24, 12, 6,131,193, 96, 48, -238, 16, 17,148,210,205,245, 69,134,231,177,178, 97, 48, 24, 12, 6,131,193,104, 25,182,126, 90,142,206,117,200, 96, 48, 24, 12, - 6,131,193,104,132,198,250,104,221, 54,234, 48, 50, 50,146, 70, 68, 68, 16, 86,100, 12, 6,131,193, 96, 48,254, 9,238, 69, 47, - 82,171, 6, 43,178,110,112,106, 86,163,197, 96, 48, 24, 12, 6,131,209, 2,108, 53, 90,213,205,134,183,165, 49,163,197, 96, 48, - 24, 12, 6,131,209, 2, 26,171,209,226, 1, 85,213,116,172,152, 24, 12, 6,131,193, 96,252, 83,220,203, 94,132, 82,186,185,122, -249,211,116, 73,182, 81,135, 3,171, 15,112, 32, 59,213, 12, 6,131,193, 96, 48,254, 1,238, 89, 47, 66, 8,241,170,110, 54,244, -250,211,186,191,114, 10, 30, 6,131,193, 96, 48, 24,140,251, 29, 91,252,172,250,226,104, 49,163,197, 96, 48, 24, 12, 6,131,209, - 66,163, 85, 55,173,166,131, 60, 51, 90, 12, 6,131,193, 96, 48, 24,127, 13,127,105,100,120, 66, 72, 56,211,100,154, 76,147,105, - 50, 77,166,201, 52,153,230,253,142, 45, 34,124,221,218, 45, 22,222,129,193, 96, 48, 24, 12, 6,163,133, 38,171,118,223,172,218, -159,217, 92,135, 12, 6,131,193, 96, 48, 24,127, 17,172, 70,139,193, 96, 48, 24, 12, 6,163, 5,216, 70, 28,214,254,204,140, 22, -131,193, 96, 48, 24, 12,198, 29, 52, 91,245,165,179,166, 67, 6,131,193, 96, 48, 24,140, 22, 80,183, 3,124,237,207, 4, 64,120, - 3,206,236,168, 3, 95,224,240,232,131,166,244,153, 38,211,100,154, 76,147,105, 50, 77,166,121,255,105, 54,165,237,136,255,184, -155,140, 86, 67,157,225, 65, 41,253,203, 22, 0,225, 76,147,105, 50, 77,166,201, 52,153, 38,211,100,154,247,243, 2,192, 11,192, -180, 90,139,151,109, 29,235,163,197, 96,220,235,124, 71,248, 40, 8, 10, 0,165,222,224,139,179,144,117, 37, 17, 75, 40,215, 98, - 77, 93,168, 63,100,102, 15, 88,164,122,232, 46,223,106,177, 38,131,193, 96,220,167, 84, 79, 38, 93,111, 31, 45,102,180, 24,140, -123, 29,125,112, 32, 4, 88, 6, 30,188, 64, 77, 9,208,134, 46, 3, 16,211, 98, 77, 17,247, 62,172, 60, 95, 80, 83, 60,220,131, -150, 3,136,101,133,205, 96, 48, 24,142,241,183,119,134, 23, 10,133, 58, 66, 8, 39,145, 72,246,214, 55,203, 53,131,113,167, 32, -132,120,201,100,178,189,132, 16, 78, 36, 18,233,238,203,131,220,222, 73, 14,158,117,184,209,204,249,252,116,165,208,221, 80,105, - 13, 4,207, 50, 2, 95, 6, 42, 91,164, 41, 32, 67, 42, 76,156,223,142,115, 6,143, 50,163, 37, 4, 20, 45,211,252,227,156, 56, -137,197,226,159, 8, 33,110,236, 10,189, 63, 9, 37,228,129, 7,133,194,121, 33,132, 60, 76, 8, 33,172, 68, 24,204,104,253,205, - 88, 44, 22,247,180,180, 52,242,249,231,159,143, 82,171,213, 9, 66,161,112, 17, 33, 68,244,111, 41,112,149, 74,117, 74,163,209, -232,156,156,156,116, 26,141,230, 66, 83,233,247,169, 1, 10,116,119,119, 79,113,117,117,141,175,157,238,222,101, 76,159, 14, 15, - 77, 90,226, 22,246,216,128, 22,234,139,132, 66,225, 34,141, 70,147,176,121,243,230, 81,113,113,113,196,108, 54,187,223,151,133, - 89,193,121,128,199, 31,116, 53,203, 32,207, 42, 54,123, 68, 39, 27, 84, 0,127, 32,140,104,254,159,152, 34,206, 3,160, 15, 95, - 74, 47, 87,156,202,215,122,252,150, 88,169, 6,143, 55, 8, 21,196,179,197, 55, 28, 30,239, 37,142,227, 6,139, 68,162, 87,217, -237,247,254, 68,204,227,245, 61, 53,106,212,251, 11, 58,119,158, 21, 12, 60, 90,159,217, 34, 85,188, 18, 18, 18,114,136, 16,242, -204, 29,188,183,124, 24, 28, 28,156, 65, 8,153,205,206, 4,227,111,126,174,117,179,253,193,175,158,134,199,203, 97,163,245, 84, - 27,210,247,217,182,228,248,211,109, 72,201, 51,109, 73,233,196,182,228,228,147,109,200,195,205,201,144,175,175, 47,250,244,233, -195, 79, 77, 77,149,205,158, 61,123,137, 68, 34, 73, 34,132, 12,109,142,150, 92, 46,143, 82, 40, 20,105, 66,161,240,182,188, 40, - 20,138, 40,165, 82,153, 38, 20, 10, 31,169,157,174, 86,171, 79,105, 52, 26,157, 90,173,190,208,128, 17,138,210,104, 52, 58,149, - 74, 21, 85, 59, 93, 40, 20, 62,162, 82,169,210,213,106,117,221,244,135,213,106,117, 90,221,244,134, 16, 10,133,190,105,105,105, -238,233,233,233,238, 98,177,216,163,118,122,106,106,170,123, 90, 90,218,109,233,142, 32, 20, 10, 31, 86, 42,149,105, 10,133, 34, -170,190,244,186,199,212, 16,181,202,238, 97,123,210, 29, 53, 89, 67,134, 12, 57,153,149,149,229,231,228,228,228, 84,123,157,139, -198,105,232,215, 91,214,207, 29, 61, 98,200, 75,238,161,143,119,106,166,254, 80,137, 68,146, 52,103,206,156, 37,233,233,233,178, -158, 61,123,242, 69,162,251,212,199,127, 23, 42, 2,225,250,115,148,106,175,101, 84,104, 35, 70, 61, 37,184,152, 86,174, 53, 91, -173, 46, 0,127, 32,182,181,150, 52, 75, 83, 96,238,199, 81,234,241, 75,178, 80, 59,104,236, 44,254,177,100,129,214,108,181,186, -130,135, 1,205,210,252,227,220, 8,249,124,254,220,213,171, 87,243, 0,204, 36,132,136,255, 77, 55,226,158, 62,196,231,145,246, -130,115,221,189, 73,223, 59,120,115, 15, 83, 40, 20, 81,132,144,192,187,229, 56,141, 28,119,125,247,173, 91,135, 39,180,107, 55, -114, 65,231,206,147,235,154,173,234,247, 11,150, 47, 95, 62,241,234,213,171,218, 54,109,218,188, 72, 8,225,221,129,178, 88,187, -124,249,242,249, 87,175, 94,245, 14, 8, 8,120,231, 78,104, 50,238, 46, 15, 15, 96, 16,128, 8, 0,143, 0,232, 81,253,254,193, -234, 37, 2, 85, 81, 20,106,191, 62, 88,189,175,109,125,207, 6, 52, 34,234,217,239,193, 90,233,181, 63,215,125,111,163, 91,245, -107, 68,245,104,195,136,154, 53,148, 82, 28, 60,120,144,214,126,173,187, 60, 29,128,255,204,234,227, 99,184,118, 96, 39, 45, 77, -187, 69, 11,226, 46,210,139,155, 63,160,179, 30,212, 26,158,109,131, 15, 29,236,153, 79, 41,165,116,199,142, 29,244,216,177, 99, -180,176,176,144,198,198,198,210, 30, 61,122,148,203,229,242, 95, 0, 4, 56,162,167, 82,169,116,191,252,242, 11, 29, 50,100, 72, -145, 82,169, 92, 5,128, 71, 41,133, 90,173,214,253,254,251,239,116,200,144, 33, 69, 42,149,106, 45, 0, 62,165, 20, 79, 60,241, - 68, 14,165,148,106,181,218,204,250,244, 70,143, 30, 93, 64, 41,165, 26,141, 70, 87,157, 95,190, 74,165, 90, 59, 99,198,140,210, -243,231,207, 83,103,103,103, 91, 58, 79,173, 86,175,154, 57,115,102,105,116,116,116, 77,122, 83,139,139,139, 75,154,213,106,165, - 7, 14, 28,160,238,238,238, 53,121,112,118,118, 78,179, 90,173,116,223,190,125, 13,230,173,145, 50,229, 41,149,202,149, 19, 38, - 76, 40, 73, 78, 78,166,174,174,174,186, 90,233,171, 38, 77,154, 84,146,154,154, 74,221,220,220,236,202,163,171,171,171,238,212, -169, 83,116,204,152, 49,197,181,203,212,213,213, 85,119,250,244,105, 91,250, 74, 91,122, 99,139,183,183,247,139,238,238,238,153, -238,238,238,153, 78, 78, 78, 75,189,188,188,178,245,122, 61,165,148,210,182,109,219,230, 80, 74,161,237,252,120,159,246,125, 39, - 46,113, 15, 27, 53,103,227,158,211,103, 79,196,228,233, 59, 15,126,105,165,166,243,104,141, 3,101, 16, 32,149, 74,127,233,223, -191,127,121,114,114, 50, 45, 45, 45,165, 81, 81, 81,244,183,223,126,163,215,174, 93,163,213,215,221,253, 53,210,101,125,168, 47, -221, 20,180, 59,246,109,191,184, 19,203,135,153,105,242, 49,186,115,178,214,124,124,142, 79, 2,221, 16,252, 95,186, 41,164, 85, -179, 52, 55,132,236,188,252,166,223,245,117,239,188, 98, 78, 73, 73,161,243, 38, 13,179,252, 60,203, 39,145,110, 12,222,211, 44, -205, 63,206,209,184,199, 31,127,188, 52, 53, 53,149,134,134,134,150,241,249,252, 41,255,150, 17, 73, 61,188,225, 19, 30, 40,206, -184,188, 99, 30,247,104,152, 60,175,155, 23,250,222,129, 81, 78, 97,238,238,238,185,219,182,109,163, 42,149, 42, 7, 64,224, 93, - 50,250,138, 4, 3,163,190,234,220,121, 31,247,228,147,214,175, 58,119,222, 23, 12,140, 66, 85, 56, 33, 2, 96,225,138, 21, 43, -162,205,102,115,244,214,173, 91,163, 71,141, 26, 21, 13, 96, 94, 11,191,243,227, 15, 63,252,144,154,205,102,186,117,235, 86, 58, -106,212, 40, 10,224, 19,123,247, 87, 42,149,237, 59,117,234,180, 61, 52, 52, 52,181, 75,151, 46,198,144,144,144,138,192,192,192, -228,176,176,176,109, 18,137, 36,128,141,170,251,123,150, 38,188, 72,143,133, 11, 23, 46, 2, 64, 23, 46, 92,184,136, 82, 26, 81, -125, 95,143,168,253,190,238, 43,165, 52,188,246,231,250, 52,108, 75,125,154,245,125, 71,157,247,117, 71, 29,122, 85,127,158, 86, -179,206,118, 80, 7, 15, 30, 28,112,240,224,193,227,117, 15,238,169, 54,232, 51,171,143, 79,121,185, 62,139,198,124,240, 42,253, -223, 32, 95,250,251, 64, 79, 26, 63,247,113,154,181, 99, 45,125,185,171,179,225,201, 54, 24,228,168,209,218,187,119, 47,221,183, -111, 31,253,241,199, 31,105, 76, 76, 12,205,203,203,163, 59,118,236,176,186,186,186,150, 75, 36,146,229, 0,100,246,232,169,213, -106, 29,165,148, 86, 86, 86,210,165, 75,151, 86,168, 84,170, 11, 0, 60,170,141, 18, 45, 44, 44,164,203,151, 47,175,208,104, 52, -151, 1,120,187,185,185,165,221,186,117,139,122,120,120,212,107,102,156,157,157,117,215,175, 95,167,206,206,206, 58, 0, 62,206, -206,206, 49,251,247,239, 55, 81, 74,105,122,122, 58,117,113,113,209, 1,240,112,117,117,189,120,240,224, 65, 19,165,148,102,102, -102, 82, 23, 23, 23,187,141, 86,121,121, 57,253,249,231,159,111,203,131, 45,253,208,161, 67,183, 25, 48, 59,202,211, 67,163,209, - 68,127,243,205, 55, 70,171,213, 74, 99, 98, 98,168, 70,163,209, 1,240,112,114,114,186,176,103,207, 30,163,213,106,165,113,113, -113,118,155,193,214,173, 91,231, 80, 74,169,197, 98,161, 27, 55,110,172,180,149,169, 45,221,104, 52,210,207, 62,251,172, 82,173, - 86, 71, 3,240,104, 76,203,205,205, 45,211,104, 52,210,194,194, 66,218,179,103,207,210,223,127,255,157, 22, 23, 23, 83, 74, 41, -173,214, 67,208,128, 41,239,157,189, 81, 90,252,252,252,245,223, 6,244,120,246,131,195,231, 50,210,191,248, 33, 42,218, 45,108, -244, 48, 59,142, 95, 38, 18,137,150,123,121,121, 85, 28, 59,118,204,106, 52, 26,233,205,155, 55,233,169, 83,167,232,153, 51,103, -104, 84, 84, 20,141,137,137,185,255,140,214, 30,240,233,166,160,209,116, 83, 80,244,182, 9,110,185, 37, 23,118, 81,122,100, 54, - 77,124,175, 13,125,123,152,170,132,219, 20, 20, 77, 55, 5, 63, 73,255, 51, 64,224,144,230,230,144, 71,233,166,160,232, 15,159, -242,207,187, 24,125,158, 30, 63,126,156,126,182,118, 5,157, 21,238, 83,198,109, 10,138,166, 27, 66,198, 56,164, 89,107,145, 72, - 36, 55, 78,158, 60, 73, 79,156, 56, 65,223,121,231, 29, 42,151,203, 83, 91, 94, 14, 33, 34,186, 33,208,159,126, 30, 56,128,110, -233,224, 69,127,109, 94,222,254,106,147, 53, 56, 80,156,158,123,241, 7, 74,243,111,210,236, 85,161,116, 88,144,176, 69,102,171, -218,100,233,147,147,147,105,118,118, 54, 93,179,102, 13, 85,171,213,119,181,217, 10, 2, 70, 3, 88,180,114,229,202, 26,147,181, -126,253,250,232, 43, 87,174, 68,251,249,249,253,216,130,239,250,100,229,202,149, 53, 38,107,253,250,245,244,202,149, 43,212,223, -223, 63,173,169,125, 39, 76,152, 32,239,211,167, 79,244,248,241,227, 13,219,182,109,163,201,201,201,244,242,229,203,116,229,202, -149,116,201,146, 37,244,203, 47,191,164, 99,198,140, 41,235,217,179,231,217, 39,159,124, 82,234, 96,222, 4,148, 82,113,245, 34, -164,148,218,140,166, 0,128,208,246,231,159, 45,183, 27,173,134,188, 72, 67,102,170, 33,131, 85,119, 93, 35, 70,172, 81,195,214, -212,247,213, 53, 85,245, 45,181,171, 86,127,141,136,136,248, 83,223, 24, 1,197,187,211, 94,123, 79,154,180,109, 13,116,223,124, - 10,126,161, 14,194,146, 60, 84,158,140,132,249,228,126, 76,236,221, 91, 38, 35,228,125, 71,235, 0,165, 82, 41,100, 50, 25, 36, - 18, 9, 10, 11, 11,145,152,152,136, 62,125,250,240,162,162,162,164,211,166, 77,155, 45,147,201, 82, 9, 33,143,217, 81, 93, 12, - 0, 56,117,234, 20,166, 78,157, 42,217,190,125,123, 23,173, 86,123,201,106,181,138, 1, 32, 46, 46, 14, 79, 63,253,180,100,215, -174, 93, 29,189,189,189, 47,152, 76, 38,185, 68, 34, 1,159,207,111, 80, 79, 44, 22,195,108, 54, 75, 58,116,232,112,249,210,165, - 75, 97, 35, 71,142, 20,166,164,164,224,214,173, 91, 48,155,205,226,192,192,192, 43, 23, 46, 92,232, 18, 17, 17, 33, 76, 75, 75, - 67, 74, 74, 10,236,237,243, 73, 8,129,209,104,132, 68, 34, 1,143,199,187, 45,189,178,178, 18, 98,177,216,110, 45,161, 80,248, -112,112,112,240,149, 75,151, 46,117, 27, 61,122,180,232,252,249,243, 72, 79, 79,135,213,106, 21,135,132,132, 92,185,116,233, 82, -215, 81,163, 70,137, 46, 95,190, 12,157, 78,119,219,247, 53,209,143, 6, 0,112,233,210, 37,140, 31, 63, 94,252,211, 79, 63,117, -245,242,242,186,108,177, 88,196, 0,112,229,202, 21, 60,253,244,211,226,195,135, 15,119,107,213,170,213,229, 38,154, 18,249, 0, - 96, 54,155,241,226,139, 47, 42,212,106, 53,210,210,210,192,113, 28,172, 86, 43, 0, 32,175, 32,239,202,165, 43, 49,113, 19,199, - 61, 53,160,220, 84, 89,121,250, 92,212,181,182,173,253,125, 9,161,173,155, 40,203,199,228,114,121,234,135, 31,126, 56, 39, 41, - 41, 73, 18, 20, 20,196,187,124,249, 50, 10, 11, 11, 33, 22,139, 33,149, 74, 33,145, 72, 32, 20, 10,239,191, 74,244,226, 80, 87, -112, 24,156,162, 55, 74, 36, 78,190, 42,165, 87, 32,144,122, 2,109,180, 18,240,121,124,233,249, 91, 6, 5, 64, 7,195, 47,215, -213, 49, 77,110,240,173, 28,163,196,236,210, 81,233,237,235,135,188,188, 60,180,106, 27,140, 10,177, 86,124,234,102,153, 18,196, - 65,205, 63,206, 85,191, 14, 29, 58,120,182,111,223, 30,185,185,185,232,214,173, 27,156,157,157,157, 9, 33,131,155, 93, 6,219, - 90, 75, 80,140,190, 0,111, 21,172,228, 29,152, 5,203,112, 83,223, 13,155,187,223, 53, 39,188,167, 15,241, 81, 43,197,103,118, -237,254,198,199,213, 47, 4,136,124, 30, 30, 78, 18,108,121,169,155,139, 86, 35,217,215,156,102, 68, 66, 72,152,135,135,199,177, -179,103,207,186, 73,165, 82, 92,184,112, 1,161,161,161, 88,179,102,141,214,217,217,249,196,221,208,140, 72, 41,165,113,192,129, - 15, 47, 95,222,186, 61, 33,225,224,132,118,237, 70,142, 15, 12, 92, 58,253,153,103,166,188,242,202, 43, 88,177, 98, 5,246,237, -219,135,190,125,251, 98,218,180,105,230,212,212,212,175,154,217, 92,248,233,170, 85,171,102,205,158, 61,187,174,166, 41, 37, 37, -229,195,198,246, 13, 11, 11,243,189,113,227, 70,198,220,185,115,187,109,223,190, 93, 38,151,203, 81, 88, 88,136,207, 63,255, 28, -139, 22, 45, 2, 33, 4,148, 82,124,249,229,151,242,201,147, 39,247, 72, 72, 72,200,104,221,186,181, 61,221, 58, 8, 0, 41, 0, -121,245,162, 0, 32,223,181,107,151,102,244,232,209,234,234, 52, 25, 0, 25, 33, 68, 2, 70, 93,234,245, 34,181,206,249,193, 58, -215,218,200,186,105,117,215, 81, 74, 71, 54,166,225,224,181, 93,223,247, 69,214,141, 12,127,219, 51,181,214,251,129,145,145,145, -199,255, 36, 10,116,246, 12, 8, 66,209,145, 61,144, 9, 8,100,252,234, 69, 64,192, 75,188,130, 86, 82, 33,204,148,134, 53,199, -104,217,204,150, 76, 38,131, 72, 36, 66,105,105, 41,204,102, 51,222,120,227, 13,201,145, 35, 71, 92,121, 60,222,127,155,210,169, -109,152,226,227,227, 17, 18, 18, 66, 14, 28, 56,224, 49,115,230, 76, 25, 0,136,197, 98, 20, 21, 21,161,125,251,246,228,208,161, - 67,238,111,190,249,166,178, 49, 51, 67, 8,129, 72, 36,194,236,217,179,101,231,206,157,115,241,246,246, 70, 98, 98, 34,242,243, -243,161, 84, 42, 49,123,246,108,217,217,179,103,181,222,222,222, 72, 78, 78, 70, 81, 81, 17,148, 74,165,195, 70, 75, 36, 18,221, -182, 15, 33, 4, 38,147, 9, 98,177,216,110, 67,164,209,104,118, 70, 71, 71,107, 53, 26, 13, 46, 95,190, 12,139,197, 2,141, 70, -131, 89,179,102,201,162,163,163,181, 78, 78, 78,136,139,139,179,213,252, 57,148, 71, 0,224, 56, 14,113,113,113,104,221,186, 53, - 78,156, 56,225, 62,125,250,116,169, 45,253,230,205,155,240,245,245,197,137, 19, 39,220, 21, 10,197,206,134,180, 56,142, 67, 86, - 86, 22,174, 94,189,138,196,196, 68,232,245,122,228,230,230,162,164,164, 4, 22,139,165,170,159, 93, 73,113,228,174,111, 15, 92, -146,201,100,242,208,192, 14,126, 87, 98, 98,115,100, 50,153,220,223,207, 47,144,144,119,120,141,228,243,191, 9, 9, 9,174,147, - 39, 79, 22,221,184,113, 3,153,153,153, 16, 10,133, 53,215,150,109,145, 72,238,179,123, 25, 33, 4,196,216, 1,132,116, 59,147, - 88,230,210,111,228, 56, 17,110,253, 4,112,102,128, 39,192,192,206,190,130,125, 87,202, 60, 64,209, 25,149, 8, 6,236, 56,241, -132, 16,192,212, 30, 32, 15,252,124,195,226,218,247,241,151, 68, 25, 25, 25, 16,137, 68,144, 72, 36,232,246,240, 19,130, 93,151, -204,158, 32,232, 2, 19,130,236,210,172,133, 76, 38,123,107,201,146, 37,138,218,154, 83,166, 76, 81,104, 52,154, 37,205, 54, 89, -101,242,222,176,208,217, 87, 51, 12,173,151, 70,102,135, 36,228,148, 7,129,210,185,128,185,107, 75,205, 22, 33,100,160, 84, 42, -189, 69, 8,121,168, 69, 38, 75, 37, 62,189,123,247, 55, 62, 46,173,170, 76, 22, 44, 21,128, 80, 6, 79,173, 19,182,204, 25,228, -162,117,146, 57,100,182,170, 77,214, 47,103,206,156,113,147, 74,165,136,142,142,134, 72, 36,130, 84, 42, 69,167, 78,157,176,105, -211, 38,173,139,139,203, 93,101,182,150, 95,190,188,109,217,213,171,241, 11,195,194,130, 31, 83, 40, 92,102,140, 31,175,121,243, -205, 55, 15,238,223,191,127,107, 68, 68, 68,238,185,115,231, 62,162,148,238,113,240,252, 16, 66,200,250,213,171, 87,207,176, 25, -183, 55,223,124,243,203,253,251,247, 47,139,136,136,200, 58,119,238,220, 92, 74,233,250,198, 52, 74, 75, 75,247, 47, 94,188, 88, -243,248,227,143,219, 62,227,228,201,147,248,234,171,175,160, 80, 40,110,219,118,212,168, 81,152, 58,117,170,179,209,104,108,244, -153,228,225,225,241,200,153, 51,103, 66, 1,136, 0, 72,108, 70, 43, 38, 38,198,169,184,184,216, 73,169, 84, 58,121,121,121,169, -108,102,235,241,199, 31,119, 18, 10,133, 15,129,129,166,188, 72,109,163, 99, 79, 90,115,183,183,215,108,213,249,156,213,208, 60, -135,183, 25,173,136,136,136,227, 0,250,215,183,145, 41, 95, 7, 9,172,144,241, 9,228,252, 90,102, 11, 28, 4, 69, 57,104,206, - 0,222,186, 15, 67,153, 76, 6,169, 84, 10,161, 80, 8,179,217,140,162,162, 34,135, 76,129, 90,173,134, 82,169, 68,121,121, 57, - 44, 22, 11,164, 82,169,205,140, 64,173, 86, 67, 40, 20,214, 60,132,235,214, 38,213,173,205, 17,137, 68, 80, 40, 20,200,202,202, - 66, 74, 74, 10, 56,142,131, 82,169,132, 66,161,128, 88, 44, 70,102,102, 38, 50, 51, 51, 65, 41,133, 66,161,128, 66,161,176,219, - 28, 1,128,213,106,133, 88,252,231,126,192,102,179,217,161, 26, 45,139,197,130,107,215,174, 33, 53, 53, 21, 82,169,180,230, 88, - 37, 18, 9,110,222,188,137,236,236,108,200,229,114,168,213,106,104, 52, 26,187,117,109,199,162, 82,169, 32,147,201, 80, 80, 80, - 0,131,193, 80, 83,166,106,181, 26, 10,133, 2, 69, 69, 69,200,201,201,105,244,216,173, 86, 43, 50, 51, 51,161,215,235,145,150, -150,134,220,220,220, 26,179,197,113, 45,143,127,121,226,196, 9, 36, 38, 38,218,154,166,106,206,111,237, 87, 91,190,239, 27, 62, - 11,211,192, 44, 28,146, 91,106,150,232, 77, 34,141, 71, 88, 56,112,235, 16,192, 19, 0, 82,103,244,234,216, 6, 41, 5, 86,197, -117,157, 81, 10,130,161, 88, 31,232,108,151,166, 85, 56, 88, 95, 98,150, 36,155,180,234,144,206,221,161,211,233, 32,145, 72, 32, -145, 72,240, 64,223,112,220,202,179,202, 99, 51,202,229,160, 24, 98,151,230, 31,191,209,182, 74,165,178,247, 67, 15, 61, 68,106, -107,142, 24, 49, 2,132,144, 78,132,144, 96,135,142,127, 93, 59, 49, 76,242, 94, 16,208,217,177, 89, 6,239,125, 49, 21,129,143, - 62,246,132,203,199, 71,115, 66,174,101, 87, 6,128,154, 95, 3, 53,117,111,174,217, 34,132, 12, 80,169, 84, 7,215,173, 91, 23, - 32,149, 74, 15, 17, 66,250, 53, 71, 71, 41,227,111,124,107,198, 56, 31,103,155,201, 50, 27, 0,129, 12, 16,202, 0,129, 12,158, -238,110,120,127,234, 96, 23,185, 84,184,215, 1,195,186,107,253,250,245,218,186, 38,203,182,116,235,214, 13,111,191,253,182,214, -197,197,101,231, 63,252, 95, 96,136,147,147,211,246,240,240,240, 51,153, 42,213,212,172,238,221,197,191,104, 52, 69,143, 20, 21, -105,252, 99, 98, 76, 65,192, 21, 0,159,165,165,165, 13,179,215,100, 17, 66,158,209,104, 52,209,225,225,225, 38,149, 74,149,186, -102,205,154,151,103,206,156,137, 21, 43, 86, 96,241,226,197,159, 3,120,129, 82,250, 70, 90, 90,154,119, 83, 38, 11, 0,178,179, -179,159, 93,176, 96, 65,110,110,110, 46, 0,160, 83,167, 78, 40, 44, 44,196,188,121,243,240,234,171, 85,131, 98,187,118,237, 10, - 74, 41,116, 58, 29, 86,173, 90,165,203,206,206,126,174,137,123,123,218,158, 61,123,122,152, 76, 38,223,234,230, 65, 73, 97, 97, -161, 58, 63, 63, 95,101, 50,153, 20, 28,199, 41,156,156,156,148, 0,228, 19, 39, 78, 20,196,198,198,134, 88, 44,150, 12,230,173, -254,160, 49, 47,210, 76, 34, 91, 82,115, 85, 95,141, 88, 3,215,103,227, 53, 90, 17, 17, 17,164,246,235,109, 53, 70, 4,151, 83, -163, 78,192, 37,172,251,109,181, 89,114, 62,129, 76,173,193,173,180, 20,136, 64,174, 58,122, 16, 54, 99, 85,215,108, 21, 21, 21, -225,165,151, 94, 42, 31, 59,118,108, 30,199,113, 79,216,107, 10, 52, 26, 13, 52, 26, 13, 98, 99, 99,233,152, 49, 99,116,107,214, -172, 41,175,109,180,226,227,227,233,144, 33, 67,114,150, 44, 89, 82,218,152,209,178,213,104, 45, 95,190,188,124,224,192,129,250, -171, 87,175, 82,155,153, 82, 42,149, 88,181,106, 85,249,160, 65,131,116,231,207,159,167,182, 52, 71,106,180,120, 60, 94,141,209, -170,189, 15,143,199, 3,199,113, 14, 25,173,178,178,178,103, 35, 34, 34,116,113,113,113,212,118,156, 26,141, 6,107,214,172, 41, - 31, 60,120,176,238,234,213,171,212,150,166, 86,171,237, 54,131,182,239, 87,169, 84, 80,171,213,136,141,141,165, 67,134, 12,209, -125,242,201, 39, 21,181,211,175, 93,187, 70, 71,141, 26,165, 43, 41, 41,121,182,177, 26,173,196,196,196,154, 26,172,138,138, 10, -228,230,230, 34, 45, 45,173,166,233,176, 92,161, 30, 54,110,236,163, 93,202,203,203, 13,177,241, 55, 82, 59,117, 12,117, 47, 47, - 47, 55,164,164,166,198, 83,186,132,107,228,135,240,196,243,207, 63,159,183,104,209,162,242,226,226,226,122, 77,150,237,245,190, -130,199,121,130,208,135,126,187, 81,234, 52,248,209,167,197, 36,251, 28, 96, 42, 5, 36,206,128,196, 25, 2,133, 43,134,247,235, -202,223,118,166,216, 19,148,235, 3,145,196,183, 73, 77, 33,245, 0,184,126, 71,226, 43,156, 31,122,114,150, 56, 63, 63, 31,124, - 62,191,198, 20,201, 21, 10, 60,242,216, 68,222,151,231, 42, 61, 1,218, 23,132,239,107,111,118,197, 98,241,252,183,222,122, 75, - 84, 80, 80, 0, 30,143,247,135,166, 92,142,233,211,167, 75,212,106,245, 98,187,143,253,187, 80, 17,132,146, 94, 0,125,245,122, -118,133,247,254, 43,229, 65,175, 45,223, 34, 11,235,218, 3, 47, 14,116,151, 45,143,204, 9,187,148, 86,222, 6,176,206,129,197, -248,128,163,102,139, 16,210, 79,165, 82, 69, 70, 69, 69,201, 71,140, 24,129, 85,171, 86, 41,100, 50,217, 33, 66,136,195, 55,254, -178, 82,235,204,119, 63,249, 90,119,249,163,161,128,169,172,202, 96,213, 90,114, 74, 57,188,189,229, 88,145,217, 76,199,217,171, - 89, 94, 94, 62,233,133, 23, 94,200,219,187,119,239,159, 76,150, 84, 42, 69, 82, 82, 18,150, 46, 93,154,159,159,159,255,220, 63, -105,178,102,206,156,185, 52, 61, 61, 61,232,200,145, 35, 2,189, 94,239,190,250,139, 47,138,190, 43, 42,202, 95, 22, 19,115,253, -141,142, 29, 59, 44,236,220,249,185,134, 66, 63, 52,100,178,102,204,152,177, 43, 61, 61,189,219,209,163, 71,133,122,189,222,119, -198,140, 25, 88,185,114, 37, 22, 47, 94,188, 9,192,139,180,186,179,140,189, 24,141,198,235, 5, 5, 5, 35,135, 14, 29, 90, 88, - 80, 80,128,206,157, 59,227,209, 71, 31,133,167,167, 39,188,189,189, 49,122,244,104, 4, 6, 6, 34, 47, 47, 15,227,198,141,203, -215,235,245, 67, 41,165,137,141,105,230,229,229, 37,236,220,185, 51,126,214,172, 89,221,210,211,211, 67, 0,184,150,148,148, 40, - 74, 74, 74, 36, 70,163, 81,230,236,236,236,220,181,107, 87,183,105,211,166, 41, 47, 94,188, 24,146,158,158, 94, 10, 32,133,217, -171, 26,147,213,160, 23, 1,160,175, 54, 60,198, 58,175,250, 38,214,217,187,111,189,239,237,216,238, 54,179, 85,123,249, 83,141, - 86, 67,152,128,183,191,218,179,173, 66,236,215, 30,154,160, 46,144, 75,165,144,137,197,144, 57,187,162,146,227,240, 69, 82,182, -161,140,210,197,142, 22,104,237,102, 67,169, 84, 10, 62,159,143,207, 62,251,204,210,187,119,239,138, 99,199,142,173, 51, 24, 12, -126,148,210, 31, 28, 49, 5,159,124,242,137, 97,246,236,217,151,114,114,114,186, 72,165, 82,163, 45,125,221,186,117,134,137, 19, - 39,198,164,167,167,119,147,203,229,134,134,250,103,213, 54, 90, 18,137,164, 50, 39, 39,167,199,148, 41, 83,226, 62,251,236,179, - 50,185, 92, 14,133, 66, 1,137, 68, 98,204,201,201,233,242,242,203, 47, 95, 90,185,114,165, 65, 38,147, 65,161, 80, 56,212, 44, - 71, 41,253,147,161,170,157,110, 47,102,179,249, 88, 78, 78, 78,151,217,179,103, 95,252,248,227,143,203,108, 6,168,118, 30, 87, -175, 94,109, 80, 42,149, 14,213,104,217,182, 83, 40, 20, 88,187,118,173, 97,214,172, 89,151,114,114,114,186, 72, 36, 18, 99,173, -244,178,153, 51,103, 94,204,201,201,233, 98, 54,155,143, 53,242, 15,207, 90, 92, 92, 12,129, 64,128,152,152,152, 74,145, 72, 4, - 30,143,135,155, 55,111,214, 24, 45, 23, 23,151,208, 46,157, 58, 6,127,189,107,207,113,153, 72, 34,233,221,227,129,144,196,228, -148,116, 74, 73,114, 19,255, 56,126,168,168,168,240, 59,121,242,228,186,161, 67,135, 86,124,254,249,231, 22,129, 64,240,167,135, -207,253,103,180, 32, 7,129,236, 70, 78,165, 74,202,179, 16,196,255, 80,101,178,164, 78,128,212, 25,144, 58,195,199,199, 23,231, -146, 12, 42,240, 32,134,213,142, 24, 98,148, 42, 64, 32,143,209, 65, 37, 20,203, 72,118,118,118,141, 33,178, 45, 1,237, 67,112, - 33,165, 84, 9, 66, 37,224,195,145, 16, 36, 35, 93, 93, 93, 5, 89, 89, 89,127,210, 12, 13, 13,229,155,205,102,251, 67,187,100, - 90,189, 0,110, 70,124,118,133,215,247,151,202,130,230, 44,251, 82, 38,179, 22, 2, 81,159, 32,172,173, 55,230, 60,217, 85,252, -230,126,125,216,249,100, 67, 91,240,233,139,224, 74,181, 14, 24,132,135, 84, 42,213,161,243,231,207,203, 85, 42, 21, 18, 19, 19, -209,163, 71, 15,108,222,188, 89, 46,151,203,127, 36,132, 12,116,228, 52,157,201,166, 41,165, 37,214,222,243,247,164,102, 95,206, -178,220,102,178,244,101, 20, 47,124,184,191,176,160,184,226,137,211,169, 13,255,126,234,185,230, 47, 22, 22, 22, 14, 89,188,120, -113,158, 94,175,191,237, 26, 79, 73, 73,177, 25,130,129,148,210,171,255,212,229,169,209,104,198, 47, 91,182, 12,231,207,159,199, -136, 17, 35,112,226,196, 9,228,231,231, 99,247,161, 67, 55,118,222,184,241,134,173,207, 86,125,161, 31, 26, 66,173, 86,191,182, -108,217, 50, 68, 69, 69,213,104,230,229,229, 97,217,178,101,233, 0, 94,114,212,100,217,208,233,116,231,174, 95,191, 62,180,115, -231,206,215,214,173, 91,151,238,229,229,197, 77,155, 54, 13, 47,188,240, 2,180, 90,173,117,237,218,181,169,253,250,245,139, 73, - 72, 72, 8, 47, 43, 43,187, 98,199,249,161,185,185,185,167, 54,111,222,124,230,225,135, 31,150, 79,154, 52, 73,187,111,223, 62, - 87,131,193,224, 45,145, 72,220,141, 70,163,248,218,181,107,252,239,190,251,206, 51, 54, 54, 54,169,188,188,252, 92,115,243,254, - 47,228,124,117,237,212,209, 58,175,231,155, 88,103,239,190, 13,189,111,106,187,218,231,127,115,237,165,246,138, 38,151,241,109, -241,159,233, 29, 85,134, 83, 19,122,209,236,105, 15, 81,221,211, 33,244,228, 0, 23, 58,165, 29, 41,155,212,204,240, 14, 25, 25, - 25, 84,167,211,209,188,188, 60,250,205, 55,223, 80, 79, 79,207, 50,149, 74,229,112,120, 7, 79, 79, 79, 93,113,113, 49,125,240, -193, 7,243,181, 90,109, 77, 40, 2, 47, 47, 47, 93, 89, 89, 25,237,213,171, 87,190,187,187,123, 77,120, 7, 95, 95,223, 52, 74, - 41,245,247,247,207,108, 72,207, 98,177, 80, 79, 79, 79, 91,136, 4,161,139,139,203,134,158, 61,123,230,235,116, 58,234,229,229, - 85, 19, 58, 65,171,213,174,234,209,163,199,109,233,118,228, 55, 45, 61, 61,157,166,167,167,211, 86,173, 90,101,214, 78, 79, 73, - 73,161, 41, 41, 41,212,215,215,215,225,240, 14, 90,173,118,101,221,188, 52, 55,143,126,126,126,186,242,242,114,218,167, 79,159, -219,202,212,207,207, 79, 87, 81, 81, 97, 75,183, 43,188,131, 76, 38,123, 81, 42,149,102, 74,165,210, 76,137, 68,178,180,117,235, -214, 57,223,126,251, 45, 93,187,118, 45, 85,169, 84, 85,225, 29, 66, 71,245,110,223,231,185, 55,180,161,163, 95,107, 73,120, 7, -149, 74,245,139,167,167,103,217,119,223,125, 71, 43, 43, 43,169,217,108,166, 54,112, 63,141, 58,220, 28,216,158,110, 8,222,159, -240,110, 64,236,236,254,242,138, 43,239,119,161,244,191,143, 83,250,227, 11,148, 30,155, 79,207,109,154, 70,251, 4, 72,172,191, -207,107, 21, 79, 55, 6,125,111, 87, 72,134,205,157,218,211, 13,193, 63,222,120, 39, 32,118, 82, 63,239,138, 47, 62, 91, 75,207, -158, 61, 75, 99, 98, 98,104, 98, 98, 34,253,241,135,111,105,159,182,242, 42,205, 13,193,251, 29, 9,243, 0,160,175, 68, 34, 41, - 93,179,102, 13, 61,115,230, 76,141,230,254,253,251,169, 92, 46, 55, 0,118,142, 90, 6, 8,221, 16,250,152,229,179,160,223,222, - 28,172, 44,201, 59, 56,159,210, 43,219, 40,221, 28, 70,233,214,158,148,126, 27, 65,233,129,231,232,153,181, 79,210,190, 1, 34, - 51,221, 24,116,130,110, 10, 29,108,111, 62,133, 66, 97,241,222,189,123,105,102,102, 38, 61,113,226, 4,141,138,138,162,113,113, -113, 52, 53, 53,149, 70, 70, 70, 82,161, 80, 88, 1,192,225, 81,141, 61, 61,224, 31,222, 65,148,117,105,121, 95, 74,247,141,163, -250,157,227,233,200,142,170,252, 94,173, 4, 15,183, 96,164, 93, 87, 87, 87,215,220,200,200, 72,154,148,148, 68,143, 31, 63, 78, -221,221,221,115, 1,132,253,211,215,103,120,120,248, 89, 74,105,244,136, 17, 35,162, 1,252, 20, 30, 30, 30,125,235,214,173,232, - 30, 61,122,156, 65, 35,161, 31, 26,211,124,228,145, 71, 76,148, 82, 58, 98,196, 8, 10, 32, 51, 60, 60,156,222,186,117,139,246, -232,209,195,120,135, 70, 73,242, 1, 60, 39, 20, 10,191,112,113,113,249,159,179,179,243, 49, 62,159,191, 25,192, 4,123,238,115, -141,104,122, 3, 8, 5,240, 64,245, 18, 82,157,198, 70, 28,254,155, 38,156,182,119,195, 39, 3,208,119,114, 91,114,252,217, 54, - 40, 25,215, 6,165,207,183, 35, 39,159, 8,192,195,142,206,238,109, 51, 90,249,249,249,244,226,197,139,116,192,128, 1,101, 10, -133, 34, 3,192,208,230,204, 24,238,230,230, 22,229,238,238,158, 38, 16,220,126,211,170,149,254, 72,237,116,119,119,247, 83, 94, - 94, 94, 58,173, 86,123,161, 62, 77, 55, 55,183, 40, 47, 47, 47,157,155,155, 91, 84,237,253,248,124,254, 8, 55, 55,183,140,186, -233, 2,129,224, 97,119,119,247,180,186,233,104, 96,102,115, 79, 79,207,180,204,204, 76,170,215,235,169,159,159, 95,102, 93, 3, -150,157,157,125,155, 1,115,100,182,244,134,242,210, 80,122, 67,154,118,148,169,195,231,189,214,186, 64, 31, 31,159,156,213,171, - 87, 83,165, 82,153, 83,123, 93, 80,255,231,223, 58,123,163,180,248,133, 5, 27,190,213,134, 60,214,169, 57, 51,197, 3, 24,170, - 80, 40, 50, 6, 13, 26, 84,118,243,230,205, 70,141, 22,238,145, 25,237,255,164,185, 39, 68, 68, 55,133,244,165, 27, 67, 34,227, -150,248, 95,123,174,167,162, 50,122,245, 8, 74,143,205,167,103, 54,188, 64,123, 7,136,171, 12,209,166,224, 67,244,203,192,254, -244,147,182, 98,187, 52,191,104,215,143,110, 10, 62, 20,251,182,255,181,199,187,107,141,187,182,109,162, 55,111,222,164,251,191, -219, 73,123,181,169, 54, 89, 27, 67,126,166, 27, 66, 6,217,165, 89,143,217,218,178,101, 11,189,121,243, 38,253,254,251,239,237, - 50, 89,183,105,214, 50, 90,139,194,149,133, 47,244,148, 86,142,235, 42, 54,142, 14, 19,153,134,180, 23, 89,250,248, 11,172, 93, -188,120, 92,136, 22,116, 72,144,172,146,110, 12, 58, 65, 55,134, 12,181, 55,159, 98,177, 56, 21,181, 98,234,212, 93, 36, 18,137, -190, 33,163,213,212,121,239,233, 1,255,240, 64, 73,214, 47,239, 62, 76, 31,237,172,202,179,199,100, 53,165, 9,160,171,155,155, - 91,238,214,173, 91,169,135,135,135,222, 30,147,245,119, 92,159, 26,141,102,123,105,105,105,244,225,195,135,163,195,195,195,163, -183,111,223, 30,125,242,228,201,104,185, 92,190,189,161,208, 15, 33,117,238,255,117, 53,213,106,117,116, 73, 73, 9, 61,124,248, - 48, 13, 15, 15,167,219,183,111,167, 39, 79,158,164,114,185, 60,250,174,250,109, 50,205,127,175,153,170,138,161,117,219,226,176, -209,186, 83, 39, 2, 0, 45, 44, 44,164,115,230,204, 49, 74,165, 82,131, 72, 36, 90, 4, 64,244,111,185, 8,221,220,220, 78,121, -120,120,232, 60, 60, 60,110, 51,123,181,211,221,220,220, 46,220,207, 63, 64, 0,129, 34,145, 40, 69, 40, 20,198,215, 78,215,134, -142,234,221,174,239,164,197, 30, 97,163,134,183, 36,159, 0, 68, 34,145,104,145, 84, 42, 53,204,155, 55,207, 88, 90, 90,122,127, - 25, 45, 74, 65, 63,105, 43,182,153,173, 43,139,253,227, 30,237, 40, 55,109,158, 59,132,246,110, 86,124,231, 23, 0, 0, 32, 0, - 73, 68, 65, 84, 93,199,100,109,245,151, 56,164, 89,109,182, 46,190,233, 23, 55, 40, 80,105, 89,182,120, 14,237,213, 70,118,187, -201,114, 68,179,142,217,146,203,229, 37, 75,150, 44,177,187, 38,235, 79,154, 95, 4,249,209, 77,193,219,171, 76, 84, 19,203,134, -160,207,233,167, 65,126,119,203,121,239,233, 1,255, 71, 2, 37, 87,237,173,201,178, 71, 19, 64, 87,103,103,231,107,246,214,100, -253, 29,199, 14, 96,200,244,233,211,163,111,221,186, 21,157,152,152, 24,125,242,228,201,232,199, 30,123, 44, 26,192,144,250,226, -108,153,198,140,169,236,202,227,205,105, 66,243,153,233,211,167,211, 91,183,110,209,196,196, 68,122,242,228, 73,250,216, 99,143, - 81, 0,207, 48, 3,195,140,214,221,190, 8,254,238, 70, 86,169, 84,154,227,228,228,164, 85, 42,149,145, 21, 21, 21,179, 40,165, - 89,255,166, 70,102,189, 94,223,199,145,244,251, 17, 74,105, 60, 0,255,186,233, 57, 87,247,157, 6,112,250, 14,232,155, 0, 44, - 35,132,124,181,105,211,166,117,171, 86,173,122, 76, 42,149,234,239,171, 66,156,149, 96,196,186,118, 81, 16,139,151,119,244,145, - 47,124,107, 4, 37,203, 14,159,242, 95, 49,198, 61,181, 79, 59, 69, 18,132,220,135, 32,149,231,240, 92,114,165,131,154,231, 32, - 51, 47,239,210, 74,190,240,131,209, 32, 31, 30,218,230,191,242, 49,215,212, 62,109,149,169,160,248, 16, 18,195,105,135, 52,111, - 63, 47,191, 19, 66,134,175, 94,189,250, 43,131,193, 48,149, 82,250, 63,135, 69, 84,188,108,148,153,151,192,204,239, 8, 10,113, - 35, 95,102, 0,143, 31,131, 28,220, 53,147,137,159,201,166, 41, 0,194,238,240,111,233, 98,117,115,212,221,244,251,254,153, 16, -130,157, 59,119,142, 15, 14, 14,110, 27, 27, 27,155,104, 48, 24,118, 80, 74,127,174,221,151,137, 16,114,224,195,203,151,203, 62, -141,141,253,221,200,113,191, 55,161,185,187, 90,243,181,224,224,224,176,216,216,216,171, 6,131, 97, 53,165,116, 55,235,186,196, -184,219,249,219,141, 86,121,121,185, 7, 43,118,198,223,116,195,207, 2, 48,230,190, 61,192, 90,102,171,187,159,108,214,222,233, - 50, 3, 40, 73,135,144, 91,235,176,201,170,199,108,245,240,151,189,250,253,139, 50, 3, 40,178, 65,241, 81, 75, 76, 86,109,179, - 5,160, 77,179, 5,158,140, 53, 1, 72, 2, 33,201,248, 15, 26,238, 68,253, 31,212,252,237,102,252, 51,102, 11,192,207, 77,108, - 67, 1, 28,171, 94,236,209,220, 13,128, 25, 43, 6, 51, 90, 12, 6,227,111, 54, 91,223,133,158, 71, 46,127, 30,120,104, 3, 88, - 82, 80,102,201,198,172,100, 99, 11, 53,207, 34,151,204, 6, 31,129, 16, 91, 18, 80,106,204,198,244, 22,104,254, 5, 79,114, 84, -245,157,170,159, 37,236,210, 96, 48, 24,127, 31,132,144,105,181, 71, 26,214,254,204,140, 22,131,113,175, 83, 85,203,147, 94,189, -220,189,154, 12, 6,131,241, 47, 51, 92, 64,213,156, 76,225, 13,252, 97, 60,234,128,112,120, 51,254,144, 30,101,154, 76,147,105, - 50, 77,166,201, 52,153,230,191, 75,179, 41,109, 71,252,199,221,100,176,234, 57,142,205,182, 55,127,235,168, 67,166,201, 52,153, - 38,211,100,154, 76,147,105, 50,205,127,203,194, 3,131,193, 96, 48, 24, 12, 6,163, 37, 53, 90,221,170, 95,189,170,167,224,241, -178,173,251, 71,251,104,201,221, 2,189, 32,224,117, 38, 28, 13, 6, 0,202, 35,113,176,112,151, 13,185,241, 45, 14,249,160,242, - 9,114,161, 16,239, 33, 48, 62, 85,146,113, 61,191,165,122,157,130, 52, 99, 60,220, 84,227,179,243,138,190,138,137, 43,217,231, -200,190, 78, 78,173, 53, 82, 23,231, 39, 43, 77,230,142, 98,145, 40,213, 84, 88,188, 57, 63, 63,161,132, 93,154, 12, 6,131,193, - 96,220, 23,116, 3,112, 1, 64, 4,165,116,115,117, 83, 98,227,157,225, 91,135,245, 59, 47,149,202, 2, 0,128,163, 20, 28, 5, -202,138, 11,163,179, 18,206, 15, 5, 0,109, 64,247,195, 66,169,186, 59, 71,171,214, 91, 57,192, 98,170, 72, 42, 74, 62,243,160, - 61, 57, 82,186, 7, 61, 30, 62, 36,124,204,200,145, 17, 65,157, 58,118,106, 7, 0, 87, 98,174, 36, 28, 60, 24,121, 93,233, 30, -180,183, 52,231,250,247, 45, 57, 98, 10,233,123, 15, 60,208,245,161,168,168, 11,239, 2,152,209,210, 18,116,117, 85,206,250,249, -191,243,250, 63, 50,102,149, 2,128, 67, 70, 75,234,226,252,228,232, 71,135,117,125,253,149,233,188, 23,230,125, 16,112,254,247, - 95, 87,168,188, 59, 22, 82,206,252,115,153,238,233,223, 26,155, 56,153,193, 96, 48, 24, 12,198, 93, 79,100,181,185,138,172,187, -162, 65,163, 37,149,202, 2,206,252,122,208,229,251,147,105, 0,128,240,110,158,120,227,253,117, 67, 8, 33,215, 1, 96,212, 11, -255, 9,124,119,209, 43, 56,117, 53, 7,148, 82,116,109,239,138,225,163,159,178, 43, 55, 50,207,208, 7,159, 30, 59,246,217,121, -243, 94, 27,117,243,230,205,228, 93,187,118,253, 6, 0,253,250,247,111,255,193, 7, 31,140, 93,229,236, 34,145,121,134,102,148, -103,199,158,111,206,209,202,124,218,249,132,118,232, 60,254,155, 47,215,241, 6, 14,125, 98,156,204,167,221,178,242,140,132, 12, -123,246,213,106,181,179,133, 66,161, 6, 0, 56,238, 15,255,211,182, 21,223, 19, 0, 44, 86, 78,229,226, 19, 92,194, 23, 73,173, - 18,137, 40,182,164,180,244,171,162,244,216, 47, 26,211,172, 52,155,195, 94,125,105, 50,239, 98, 98, 30, 2,194,250,241,215, 46, -123, 19,156,213,236, 60,103,209,251, 79, 70,157,253, 6,192,146,227,236, 26,101, 48, 24, 12, 6,227,222,164, 58,110,227,230, 90, -159, 55, 55,105,180, 0, 64, 41, 19,224,250,173,108, 0,128,147, 12,152,245,226, 36,228,229,234, 3,141, 22, 14,207, 79,154,128, - 11,113, 89,184,158,164, 7,165, 20,129,190,114,187, 51,196, 7,247,192,243, 83,158, 31,112,248,231,159,207,189,181,248,173,175, - 9,169,138, 6,190,105,243,231,189,223, 94,242,246,212, 9,147, 38, 12,254,238,187,239,174,162,206,204,216,246, 34, 32,170,117, - 43,151, 47, 21,167,231, 86, 84,204,158,183,144,123,109,238,236,181, 0,158,176,103, 95,161, 80,168, 73, 79, 79, 87,242,120,183, -119, 95,251,112,233,194, 19,131,199,172,186,145,156, 90,120,241,240,254,253, 15,134,134,134, 34, 61, 35,187,239,138,143, 55,118, -241,106,247,224,228,146,226,242, 49,101,250,216,122,163, 80, 75,132,194,171,239,172,216,208,149,115,106,207,123, 99,234, 8,132, -181,243, 70, 70, 78, 33,250, 15, 29, 37,136, 62,127,126, 8, 0,102,180, 24, 12, 6,131,193,184, 71,105,108,212, 33, 15, 0, 34, - 35, 35,235, 13,252,103,181, 82, 92, 79,202,194,245,164, 44,156,139,211,195, 68,133, 88,187,226, 29,172, 94,182, 4,249,229, 60, -124,127, 42, 13,241, 73,217,136, 79,202, 70,110, 65,105,125, 14,239,182, 33,154,171,151,203,187,173, 93,171, 89, 57,164,191, 98, -160,139,179,179,243,141,171, 95,151,189, 61, 87, 23,242,206,171,105, 34,161, 81,146,174, 80, 42,250,236,217,243,109,168,135,214, - 93,161, 84,170,230, 43,124,187,110,113,114,234,162,105, 76,179, 46,114,143,144, 81,163, 34,134, 61,236,233,233,193, 77, 95, 27, - 29,215, 49, 36,216,220,161,125,135,190,114,143,192, 81,141, 56,209, 26, 77,142,227,192,227,241,160,211,233,144,153,153,137, 91, -183,110, 33, 62, 62, 30,105,105,201, 58,142, 82,161, 21, 28,207,203,203, 23, 2,129, 24, 1,173,253,177, 97,237, 50,249,251,255, -121,163,135, 84, 33,222, 71, 8, 33,245,105, 86,228, 23,124,247,227, 79, 63,103, 28,218,181,193, 10, 0, 57, 5,165, 56,118,254, - 38, 46,196,166, 57,234,152,239,248,144, 87,166,201, 52,153, 38,211,100,154, 76,243,110,208,108,200,139,220, 11, 80, 74, 55,215, - 93,108,235, 26, 29,117,152,144,150,143,235,183,178,209, 61,216, 7,237, 90,123,225, 92,124, 1,118, 28, 75,195,150,195, 41, 56, -118, 73, 15, 78,160, 66,118, 49,112, 35, 89,135, 27, 41,185,141,197,105, 6, 0,240, 37,194,167, 95,125,181,104, 94,167,208,226, - 94,191, 30,154, 5, 31,237,141,208, 5, 11, 10,103,241, 37,194,167,157, 91,169,118, 45,156, 55,103,188, 74, 46, 23, 27, 43,141, -104,219,198, 95,250,202,204, 89,147,137,179,100,151,189, 7,170,246, 13,117,150,200,100, 95,188,255,159,249,146,143,190,191,145, - 90,102, 68,217,222,211,186,196,215, 22,190,157, 47, 16, 74, 55,168,125, 67,157,237,213, 50,155,205,168,172,172,132,209,104,132, -201,100, 66, 70,218,181, 81,191,124,255,250,208, 54,173, 92,134, 74,164, 82, 80, 0,197,229, 22,220,202, 50, 96,208, 35,131,249, -221,187,117, 11, 83,122,133, 76,169, 79,171,176, 48,185,136,163,124,213,193, 31,118,242,191, 61,114, 17, 95, 31, 60,143,125,255, -187,136,115,199, 15, 89, 40,103,174,153,166, 66,229,221, 33, 80,229,221, 57, 69,229,211, 69, 87,179,248,118,138, 98,255, 21, 24, - 12, 6,131,193,184,123,169, 30,105, 56,173,238,136, 67,160,145,166,195,138,138,242,164, 39,158,158, 0, 47,119, 79,229,232,129, -207,137,162, 19, 10,161,207, 74,193,205,248, 24, 24, 42,204, 16, 57,183, 1,164,158,104, 29,224,143,203,215,247,153, 62, 89, 25, - 89,202, 89, 42,147, 26,210, 27, 61,218,219,215, 75,171,224,173, 92,225,119, 38,254,122, 65,247,157,139,183,226,217,103,149,110, - 43, 87,248,157, 73, 78, 84,240,228, 82,218,103,242,164,113,132, 71, 40, 22, 44,152,135,209, 35,135,225,249,201, 19,201, 87, 95, -109,235,101,239,129,114, 16,126,186,232,205,119,196,186, 66,139,241, 92,124,105,165, 92, 33,147,253,126,163,180, 44, 44,192, 79, - 54, 98,204,115,153,145,123,190,248, 8,192, 36,123,180,108, 6,203,108, 54,195,100, 50, 1,128, 21, 0,120,188,170,215,188, 18, - 35,114, 10, 43,161, 43,172,132,197,202, 97,204,211,147,100,231,163, 46, 77, 2,208, 64,127, 45,142, 51, 91,204,216,123,228, 2, - 50,206,127,199, 17, 30,191,200,214, 25,222,102,178, 60, 61,253, 78,140, 28, 51, 81, 43,150, 86, 53,195,150,148, 85,226,171,141, - 43,216, 21,204, 96, 48, 24, 12,198, 93, 76,221,233,119, 8, 33,104,114, 10,158,228,171,191, 61, 8, 0, 65, 15, 14,205, 83, 74, - 5, 46, 2, 30,129, 46, 61, 1, 95,173,154, 13,142,163, 24, 49,117, 37, 84, 1,158,144,137,248,168, 44,205, 43,205,187,249,171, -107,227,110,207, 60,120,253,166,140,128,151, 95,106,171,222,185,179, 84, 8, 0, 59,119,150, 10, 95,154,222, 74,253,217,166,164, -128,158, 15,117, 7,181, 90, 49,114,244, 19,120,250,153,167,145,156,109,192,127, 79,164,162,172,220,104,215,252,106,114,109, 72, - 23,119,111,159, 97,175, 62, 55, 76, 33,224, 19,210,193, 95,195, 79,211,155, 45,124,190,208,122,224,124, 81,230,152, 49,207,184, - 29,251,241,219,135,229,218,144, 46, 6,253,181, 75, 77,233, 85, 86, 86,194,106,181,162,178,178, 18,102,179, 25, 46,110,109,126, - 28,252,196,170,244,172,236,146,200,236,130,138,158,101,102, 11,116,133,149,200, 41,172, 68, 97,153, 9,158, 42,103, 88,204,198, - 78,141,156,132,175, 31,123, 98,194, 68, 0, 60,194,179,108, 45,201,188, 22,111, 91,103, 51, 89,195, 70, 63,171, 61, 17,157,128, -155, 81,135, 10, 40,103, 49, 87, 21, 28,199,166, 64, 97, 48, 24, 12, 6,227, 46,167, 86, 63,173,200,234,206,241,184,205,104,217, -218, 70, 35, 34, 34, 72,221,157, 51,116,249,112, 85, 10,160,245, 14,192,248,217,171,241,245, 71,115, 97,181,154, 65, 41, 96,177, -218, 23,153,128, 82,225,145, 25, 47, 5, 4,183, 14,224,107,199, 63, 43, 47,223,177,211, 32, 27,255,172,188,188, 99, 39,215,162, - 25, 47, 5, 36,149, 84,248,245,181, 88,173,248,253,106, 14, 98,146,138, 16,147, 92, 12,165,204,254, 48, 95,124,177,232,165, 21, -203,151,137, 4,124, 66,174,166,148,150,166,231, 89, 74,249, 66,161, 73, 46, 19, 83, 35, 21, 84, 38,231,210,188, 71, 30,155, 92, -126, 96,251,199, 83, 0,204,108, 72,199, 54,210,208, 86,147,101,123,165,148, 82, 2,112, 28,177, 90,211,115, 43, 80,106, 50, 67, - 87,240,135,209, 34,150,134, 91, 78, 85,222, 29, 2, 53,106,151,159,248,124,190,132, 82,192,108,178,140, 85,121,119, 24, 90,146, -121, 35,190,182,201, 58,115, 53, 19, 9, 23,143,234,172, 38,195,132, 50, 93,220, 47,236,178,101, 48, 24, 12,198,191,137,198,188, -200,221,142,173, 6,171,222, 26,173,198, 14,136, 82,224, 70, 74, 46, 90,251,106,225,219,186, 29,226,175, 93,254, 99, 29, 0,139, -213,190,190,107,251,246,101,166,175, 89,163,225,230,206, 45,234,189, 98,133,223,233,151,166,183,210,116,236,228, 90, 52,127,126, -106,239, 53,107, 52,167,143,156, 17, 90,105,117,188, 46, 91,108,174,234, 48,255,118,194,235,209, 37,180, 13,255,157,157, 55, 82, -127,185, 82,146, 35, 18,137,204,158,206, 82,162, 82,138,249,124,158, 80, 92,105,230, 85, 6,134,117,227, 31,224, 85, 69,111,109, -202,104,213,109, 58,204,211, 39,140,250,249,191,243, 58, 14,124,108,165, 75,134,190, 28, 69, 70,126, 77,211, 33,159, 71,112,229, - 90, 10,192, 23,197,212,167,169, 86,185, 28,222,181,227,107,191, 53, 43,150,194,100,177, 98,198,220,183, 48,121,210,132,195, 42, -239, 14, 67,253, 2,130,162,127, 59,176, 85, 62,116,250, 6,164, 92,143,202,182, 84, 22,239,102, 38,139,193, 96, 48, 24,255, 54, -238, 69,115,101,163,206,168,195,250,107,180, 26,195,223,215, 3,103, 99,146,208, 41,184, 13, 52,106, 21,226, 18,210,193,231, 9, -193, 35,128,217, 98,191, 25,162, 38,243, 55,107,214,104,144,146,164,224,125,182, 33, 41, 96,198, 75, 1, 73,107,214,104, 78, 83, -147,249, 27, 0, 19, 40,173,154,123,209, 22, 32,213,234, 64, 24, 79,202,153, 91,121,184,200,249, 81,137,101,121, 60, 30,191,210, - 85, 35,229, 92, 53, 18,158,171, 74, 44, 20, 9,249,156,133,242, 76,190,238, 1, 21,148,227,186,216,163, 87,187,233,208,106,181, -130, 16,158,181,218,136, 41,210,242,202, 81, 84,193,135,174,176, 18, 5, 37, 38,116,240, 81,224,232,177,239, 12, 86,115,249,206, -250,180,248, 66,145,166, 93,128, 47,222,120,111, 13,202, 43,173,184,145, 81, 10,145, 68,226,233,225, 25,118,105,194,203, 11, 37, -175,108, 78,192,148,135, 93, 49,247,183,132, 12,131, 78,186,144,253,220, 24, 12, 6,131,193,184,119,168,221, 71,171, 46,118, 25, - 45,165, 92, 10,202,151,226,183,232, 4, 4,133,118,198,182,253,231,208,190, 83, 47,100,149, 88, 64,193,107,114,180,161,141,215, - 22, 26, 46, 0,184, 48,122,180,183,239,227,143,251, 12,166, 84,120,228,179,141, 69,233, 0,176, 97,247, 0, 80, 0, 28, 71, 65, - 41, 64,185, 42,195,101,191,157, 20,164, 36,101, 21,183, 14,240, 84, 32, 54,221, 84,169,144,136,120,206, 10, 49, 95,171, 17,139, - 68, 2, 1,172,148, 84,102,101, 37, 84, 18, 32,217, 30,185,186, 77,135,114,165,215,143,143, 60,182, 82,159,156, 90, 20,213, 33, -223,208,165,200, 36, 6,165, 64, 7, 31, 5, 98,206, 68, 90,117, 25, 55,111,148,235,174,111,172, 79,139,227,192, 55, 89, 56, 92, - 74, 44, 66, 97,153, 25,133,165, 38,244, 29,244,168,168,111,248, 40,252, 22,147, 11,206, 98,198,138,207, 35, 75,172,212,252, 52, -165,177,102,118,201, 50, 24, 12, 6,131,113,239, 80, 61,210, 48, 2, 85,145,225, 35,106,155, 47,187, 38,149,182,114, 20,110,174, - 46,144, 42,212, 72,210,153, 80, 66,220, 81, 96,160,176, 90,171,106,180,184,134,191, 56,188,190,244,125,251, 50,211,127,248, 65, -191,101,223,190,204, 90, 29,189,255,168,201,170,121,229,168,221,154,132, 90,143,238, 63,244,107,209,168,158, 90,103, 30,159, 95, - 46, 18,242, 42, 5, 34,190, 73, 36,224,153, 69, 2,158,209, 67, 45,228,255,122, 96,183,152, 18,252,218,148,102, 69, 69, 5,194, -195,195, 49, 98,196, 8,140, 30, 61, 26, 79, 61,245, 20, 2, 3, 67,220,121,124, 98,164,132,227,180,226, 18,180,211, 18, 8, 42, -210,240,203,238, 15, 13, 49,191,255,112,201, 90, 89,241, 40,173,213,214,121,155, 38,165, 92,126, 81, 37, 42, 76, 86, 20,148,154, - 80, 80,102,130, 69,219, 27, 63,156,202, 68,185,209,138,148,232,239,202,245,217,233,179, 43,116, 55,146,154, 56,145,225,127,193, -197,193, 52,153, 38,211,100,154, 76,147,105,254,227,154,247, 56, 17,213,198, 42,162,110, 28, 45, 59,106,180, 40,218,122, 41,208, -222, 71,129, 10,147, 59, 42,140, 86,148, 85, 88, 81,108, 48,161,216, 96, 70, 82,182, 1, 49,251, 91,158,195,170, 90, 44,128, 84, -191, 7,169, 50,120,246,214,105,137, 77,198,247, 86,175,248, 96,236,238,110, 93,141,175, 68,120,181,186,156,100,204, 36,132, 87, -206,227, 11,204, 46, 42,129, 48, 46,238,178,254,244,137, 31,251, 75, 45,214,137,141,233, 88, 44,150, 34, 31, 31, 31, 0,183, 79, -193, 19,210, 78, 54,250,247,200, 5,109, 6,140, 90,161,253,104,233, 60, 3,143, 47,226,136, 64, 20, 99, 53,151,239, 42,215, 93, -223, 64, 27,233, 80,198, 19, 73,175,157,189, 24,219,203,201,165, 21,110,102,148,161,172,194, 2,147,133,131,179, 82,132,244, 43, -135, 77, 73,113, 81,223,150,100, 92,218,198,174, 83, 6,131,193, 96, 48,238, 77,108,253,180,108,175, 77,134,119,168, 85,187,147, -244, 80,248,163,224, 56, 10, 43, 5, 56,107,117,205, 19,247, 71,237,147,213, 92,145,212,210, 12,114,156,245,220,167,155,183,140, -232,214, 99, 0, 63,212, 79,137,226,188,108,156,249,253,127, 22,112,244,180, 61,251,231,230,198,151,202, 61, 59, 60, 49,246,201, -199,247, 76,122,126,122, 97,255, 65,131, 20,238,238,158,149,233, 25,233,134, 47,183,239, 48, 31,254,113, 95,127, 14,150,103,114, -115,111,148, 54,166, 83, 88, 88,248,113,125,233,143, 60,212,170, 47,128, 54,124, 1, 49, 26,114,226, 21,142, 28, 91,110, 70,218, -152, 15,222,251, 79,242,179, 83,231,136,219,250,180, 67, 78, 17, 31, 73,233,217,136, 59,177,175, 50, 35,254,252,247,197,233, 23, -166,176, 75,148,193, 96, 48, 24,140,123,147, 22,245,209, 74,141,173,138,167,245, 87, 83,146,157, 51, 97,219,182,175,223,255,122, -251,238,190, 21, 70,163, 15,133, 40,205,106, 49, 30, 47,181,226,109,123, 53, 12,217, 55,162,220,220, 2, 59,126,249,249,167,111, -126,185,229,179, 1,224,172,193, 4, 72,166, 4,191, 74,205,214, 73, 77,153,172,198,141, 92,201,166,193, 79,172, 42,207,203, 43, -253,218,209,125, 13,185,113,217, 74,143,182,173, 54,173,125,111, 37,143,199, 31, 98,181,114, 66,206,106,190,105, 53, 85,124, 88, -174,191,190,159, 58, 54,188,146,193, 96, 48, 24, 12,198, 93, 4, 33,100, 90,221,160,165,118,215,104,253, 93,228,231, 39,148, 0, -120,165,165, 58,185,185,241,165, 0,238,248,200,189, 43,241, 69,255, 5,240,223,230,238, 95,170, 75,212,195,206,168,244, 12, 6, -131,193, 96, 48,238,125,195, 5,216,217, 25,158,193, 96, 48, 24, 12, 6,131,209,184,201,170,253, 90,147, 14,160,222,145, 3,142, -204,204,221,156,209, 7, 77,233, 51, 77,166,201, 52,153, 38,211,100,154, 76,243,254,211,108, 74,219, 17,255,113, 79, 24,176,191, -178,123, 16, 33, 36,252, 78, 23, 24,211,100,154, 76,147,105, 50, 77,166,201, 52,239, 63,205,123,218, 76,213,169,197,170, 54,140, -119, 87, 31, 45, 6,131,193, 96, 48,254, 46,220,220, 2,149, 64, 77,191,222, 38, 81,104, 67, 61, 0,160, 76, 31,171, 99,165,199, -104,200, 84,213,215, 71,171, 89, 70,139, 16, 34,228, 9,196,175, 74,101,202,231, 8, 15,234,210,194, 92,159,127,177,139, 37,129, -173, 21, 51, 91,181,210, 14, 74,207,208,125, 21,151,104,216,247, 79,104, 42, 61,218,106,137,216,249,123,194, 85,126, 80,156, 30, -115,232, 14, 31,163, 36, 52, 52,180, 43, 0,196,198,198, 94,164,148, 86,182, 84, 83,225, 17, 52,206, 89,237,244,162,137, 51, 90, - 13,101,134, 13,165,217,241,223,221,201, 60,171,188, 59,184, 66,160,218, 8,171,101, 16, 40,248,224, 11, 46,145,202,138, 23,138, -245,177,137,141,237,231, 55,122, 89,240,148,177, 17,139,183,124, 27,249,126,234,190, 69,113,117,215,187, 12, 95,167,154, 53,113, -200,130,245,187,247, 45,207,221, 63,191,148,221, 94, 28,199,239,161,103,157, 44, 2, 79,126,230,175,171,242, 28,217,207, 55,168, -247, 85,161, 80,168, 53,153, 76, 57, 25,241,103, 58,218,179, 79,171,224, 62, 23,248,124,158,183,213,194,165,167, 93, 63,245, 0, - 43,253,166,145,185,183,237, 13,139,229, 13, 10, 16, 16,193,234,138,188,196,255,181, 68,207,219,219, 91,166,209,104,250,171,213, -234, 86,114,185, 92, 90, 80, 80, 80, 94, 80, 80,144,154,146,146,114,140, 82,106,249, 39,142, 81,225, 17,180,136, 8,201,146,234, -247,239,148,233,174, 47,107,252,254, 26,252, 62,225,209, 69,213,239,151,149,234,226, 22,223, 13,231, 74,234, 25,228,207,167,120, -133,207, 19,244,177,112,230,165, 6, 93,252, 1, 71,246,119,113,113, 25, 34, 16, 8,100,182,207, 22,139,165, 60, 63, 63,255,103, -246, 43,104,214,115,114, 90,221,247,205,174,209, 34,132,240,133, 18,249,201,103,159,159,209,113,249,127, 22, 74,215,110,249, 1, - 82,165,115,108, 69,105, 65,232,221,120,240,218,182, 61,163,248, 60,190,111,237, 52, 43,103, 77,215, 39,158,189, 35, 55,221,160, -214,178, 41,111,206,159, 48,119,220,216,112,255,240,145,179, 9,128,122, 77,145,202,239,193, 83,132,240,218,240, 8,192,227, 17, -240, 8, 0,208,204,220,196,179,221,154,171,105, 67,227,222,174,141, 88,169, 61,241,208,232, 25,158,209, 71,119,108, 83,104, 67, - 7,151,233, 99, 47,223,129, 11, 71,219,174, 93,187, 7, 3, 3, 3, 93,103,205,154, 37, 2,128,143, 62,250,168,125,251,246,237, -243, 18, 18, 18,206, 83, 74,245,205,186,201,185, 7, 79,248,120,213,187, 95, 15, 31, 62, 2,153,185,101, 88,177,102,253, 64,165, -103,224, 83,119,202,108, 57, 59,183, 81, 11,212,206, 87,102,207,127,215,125,216,192, 7,249,165, 21, 22,252,116,226, 98,191, 29, -235,223, 61,167,214,134,246,104,204,108,113,134,162,197, 30, 74, 58,140, 51, 20, 1,192,184,186,235,125,148,230,112,173,204, 58, -204, 75, 34,184, 8, 96,111,147,121, 9,120,232,176, 80, 34,241,231,241,120,176,157,123, 62,169, 58,255,102, 83,121, 74,250,181, - 19, 67,239,134,223,137,218,191,103, 54,248, 2, 87, 30,249, 35,127,164,250, 58, 37,148, 22,103,197,255,230,122, 7,174, 39, 77, -199,246, 78, 97, 17,125, 31,250,242,248,173,124,133,223,128, 57,145,132,242, 62, 75, 57,177,250,146, 93, 15, 21,169,212,249,192, -129, 3,218, 97,195,134,105, 60, 58, 62,118,220,158,125,148, 98,105,232,193,131,251, 69,195,134, 13,117,224,250, 12, 26, 12, 30, -111, 59, 1,132, 28, 71, 63,226,115,244,219,210,188,248, 4, 71,195,176,200, 61,130,167,240, 64,237,190,207,112, 32, 81, 6, 93, -220,150,230,150,175, 80,170,121, 68, 40, 18,189,218, 38,176, 83,183,140,228,155, 81,101,165, 37,107,204, 21,133,199, 29, 22, 50, - 91, 94, 63,250, 91,244,112,129, 80, 72,134, 61,210,147, 15,160, 69, 70,203,195,195,227,177,117,235,214,181,237,221,187,183,237, - 97,174,222,179,103,143,231,123,239,189,167,176,231, 55,212,192,181,228,163,213,106,253,196, 98,177, 15, 0, 24,141,198, 12,189, - 94,159, 74, 41,205,104,242,154,240,108,231, 70, 32,120,247,183, 19, 39, 4, 0,208,175, 95,255,247,253,251,205,114,230,139,148, -229,245, 22,135,177, 68, 1, 96,206,153,179,167, 9, 0,244,234,217,123,161, 66, 27,250,233, 63, 89,179, 37,243, 8,238,201, 3, -230,246,237, 63,120,204,211,207, 76,224,133,117,240,195,144,193, 15, 47, 0,224,144,209, 18, 8, 4,178,115,231,206,181,227,241, -120,124,139,197, 82,209,171, 87,175,212,150,228,203, 39,168,207, 41, 2, 94, 43,147,197,248,185, 62, 49,234,125, 74, 41, 87,215, - 63,104, 90,117,123, 19,124,193, 84,142,227,210,138, 83,206,247,185,223,106,180,234, 45,103, 71,197,120, 2,241,171,227, 38,191, -220,113,206,107,111, 72,103,175, 61,134,200,245, 11,115,239, 86,147, 5, 0,124, 30,223,247,240,207,135,221,229, 98, 62, 0,160, -180,194,130,225,195,134, 53,185,159, 83, 64,207, 95,121,132, 4,217,166, 18,183, 90, 76, 82,129, 80, 92, 65, 0,128, 84,141, 34, -112,243,110,125,204,203,203, 69, 62,110,108,184,255,246,221, 71,210, 83,211,243, 26,188,169,241,120,124,223,125,251, 15,184,251, -184, 74, 33,224, 19,148,150, 91, 48,108,196,163,214,250,182,245,242,114,137, 24, 55, 54,220,127,231, 55, 71, 83,179,178,242, 35, - 27,189,153,123, 5,118, 87,104, 60,126, 26,243,226,123,174, 21, 60, 23,188,189,244, 99,183, 19,135,118, 30, 31, 16, 49,129, 75, - 73, 73,171,160,132,196, 22,228,103,189, 90,154,117,243,186,189, 70, 90,169, 84,182, 85, 42,149, 93,134, 15, 31, 46,157, 55,111, -158,112,224,192,129, 53,235,167, 77,155, 38,250,245,215, 95,189, 86,173, 90, 53,194,219,219,187,162,180,180,244, 82,105,105,105, - 34,165,212,106,239, 57,241,244,212,206,124,226,241, 71,241,240,152, 25,176,114, 4,211, 94,158,131,195,135,246, 78, 7,112, 71, -140,150, 89,174,126,111,234,139,243,180,189, 30,236,202,127,119,231,117,200,196, 2, 12,125, 32,136, 76,158,181,216,105,203, 39, -239,126, 1, 96, 64,125, 53, 89,156,161,104,113, 71, 55,227, 51,163,122,183,193,254, 93,198,103,124,195, 23,128, 39,215,212,212, -108,181, 27,254,138,202, 89, 38, 91,231,237,196,119,151, 88,245,235,218, 13,127,229,104,194,161, 79, 74, 26,125,248, 73, 36,254, -187,118,238,236,224,172, 18, 65,192, 35,224,243, 9, 4,124, 30, 42,140, 86, 60, 53,246,153, 59,245, 79,138, 47,115,239, 48,130, - 7, 76,174,122, 96, 99,107,121,206,141, 31, 29, 57, 39,132, 47,114, 61,184,255,123,129,187, 70, 2, 62,159,128,207, 3,248, 60, -130,100, 93, 57,166, 76,153,172,105,169, 97, 31,222,215,253,193, 95, 63, 29, 48,180, 87, 71,151,206,223,156, 38,154, 94,195,159, -118,205,173,144, 63,183,123,223,255,158,241,235, 63,247, 44,165,220,202,180,223,214, 54,250, 79,186,178,178, 82, 55,116,216,112, - 53, 17, 40,228, 71,127,216,214, 95,192, 35, 48, 91, 41, 44, 86, 10,107,245,220,168, 85,191, 87, 2, 30,143,128,114, 20, 83,167, - 78,193,208, 97,195, 13,156,133, 75,183,255, 38,199,219,254,211,209,223,181,149,102, 14,171,214,109,121,183,172, 72,255,238,173, - 56,215,100,185, 71,224, 28,131, 46,222,238,121, 48,120,160, 15,164, 37,198,188,184,243,224, 25,116, 12, 13,129,149,171,202,103, -144,175, 2, 59, 35,207, 32, 56, 40,184, 42,223, 28, 69, 96, 43, 37, 30,124,224, 65, 0,104,150,209, 18, 74,213,111, 15,136,152, -248,206,200,167,158,135,187, 86, 11, 30, 53,143, 60, 26,185,115,164, 80,166,121,221, 92, 94,180,202,177, 39,134,181,230,185, 64, - 57,174,197,221, 75,188,189,189,181, 15, 62,248, 71, 56, 70,139,197,130,128,128, 0,100,100,100, 4, 53,227, 90,146,123,121,121, - 69,108,218,180,201,125,196,136, 17, 66, 79, 79, 79, 0, 64,118,118,182,207, 79, 63,253,212,205,219,219, 59, 39, 43, 43, 43,146, - 82,106,104, 72,195,106,230,137,120, 2,240,165, 82,121,213, 49,130,240,230,205,156,216,217,195,203,187,222,154,122,189, 62, 91, - 60,127,198,255,136, 64, 32,170,222, 30, 60, 74, 57,210, 72, 45, 81,184, 80, 40,148,213,183,206,196, 87,247,162, 66,205, 11, 60, - 62,175,234, 98,181,152,245,249, 41,209, 33, 14,212,196,133, 9,197,162, 13,207, 78,122,177,207,147, 99, 70,195, 75,171,193,209, -147,151, 49,125,230, 92,179,197,100, 94,211,172,103, 36,159, 47,200,201,201, 73,118,118,118,246,108,249,243,150,180, 57,114,248, -144,251,209, 95,142, 45, 92,189,246,147,151,188, 3,251,153, 57, 74,107,230, 49,246,235,248,176,112,240,200,177,106,247,118,189, -164,159, 44,121, 65,120,191,213,104, 53,100,182, 28,254, 17,137,101,170,177,111,205,159, 37,125,111,199, 25, 68,174,159,158, 91, - 86,164,215,214,252, 83,208, 56, 95, 40, 45, 42,232,214,156, 76,170,220,131,122, 19,190,224, 69,194,231, 43, 8,143,136, 57, 43, -151,102, 49, 26,223, 55,228,198,103,181,180, 0, 56,142,226,191,167,114, 28, 43, 52,138,246,219,191,249,222,221,195, 73,130, 10, -147, 21, 79,143,155,128,175,191,254, 90,165,213,136, 81, 97,180, 96,229,234,213, 37,165,201,145,238,201,105, 5, 25,225,143,206, -253, 57, 49, 41, 39, 38, 53,171,226,219,134, 79, 2, 15,238, 26, 9,150,238,142,135, 90, 38,132,179, 74, 4, 30,143,212, 62, 73, - 53,205,133,153, 89, 5, 69,181, 52,119, 52,248,163,243,234, 52, 84,227,236,189,235,241, 23,151, 58,221,200, 17,128,194,132, 4, -181, 20, 99,159,123, 69,221,214, 83, 6,133,148,239,116, 43, 37,195,107,222,235,175,159,212,184,183,235, 81,148,147,112,171,169, -227,110,221,186,245,152,145, 35, 71,202, 95,123,237, 53, 97,171, 86,173,176,117,231, 30,255,126, 67,159,122, 52, 51, 75,215,138, - 82, 10, 15,119,247,180,169,147,159, 58,240,227,143, 63,166,164,165,165, 9, 87,172, 88,209,243,251,239,191, 15,117,228,159,169, -149, 82, 84, 84, 90, 97,173,126, 64,234,139, 42, 29,189,160,137,143,143,143, 36, 35, 35,163,210, 86,203, 64, 8,169, 41, 76,229, -255,217, 59,239,176,168,142,246,253,223,179, 13,182,193,210,155, 10,138,136, 32,138,189,247, 18, 53, 18,187,198,150,104,236,166, - 24,147, 24, 75, 52, 81, 99,141,177,151,152, 24, 99,140, 26,187,177, 97, 47,168,137,198, 2, 54, 84, 80,169,210,151,182,236,178, -125,247,204,239, 15,192, 16, 66, 89, 80,127,239,251,205, 59,159,235, 58, 23,123,150,221,123,207, 57,115,202, 61,207, 60, 51, 83, -171,121,159,158, 93,219, 10,126, 56,149, 0,141,222, 10,153, 88,136,132, 76, 45, 90, 53, 15, 37, 63, 90, 45,205,202,211,156,240, -118,216,124, 79, 57,237, 59,160,189, 63, 60,156,165,216,190,105, 41,142, 93,143,239,155,169, 33,112, 27,176,114,138,183,189,224, - 13,119,169,104, 99,183, 86, 1, 94, 61, 90,250,225, 86,171, 0,175, 43,145, 49,177,161,111,175,249, 40, 85, 35, 60,159,123,234, - 35,117,249, 55, 30, 30, 92, 28, 68,248,233, 76, 18,164, 98, 1,100, 98, 1,100,246, 69,127, 75,151,127,141,106,181, 62, 33,117, -248,156,117,130,163, 79,200,132,145,111, 15,247, 25, 61,114, 56, 5,159,135, 3,135,142, 15,220,189,123, 87,186,220, 43,104,155, -149,199,255, 73,151,246,240,121,149,199,148, 7,120, 40,236,240,249,182, 7,112,148, 8,225, 32, 21,194, 81, 42, 68,143,166,238, -224,243,106,124,227,113,158, 58,176,126,191,123, 59,123,117, 15,242,149, 7,222,125,166,122, 56, 97,201,237,117, 17,249,221,103, -108, 90, 27,226,170,201, 55, 10,190,154, 57, 73,144,146,150,214,253,192,241,203, 61,124,218, 76,136,177,152, 10,191,200,186,187, -191,220, 8,238,243,199,215, 90,212,110, 63, 92,108,210,152,239,223,141, 73, 9,200, 51,216, 35, 58,177, 0, 50,177, 0,242,146, - 99, 43, 22, 64, 38, 22, 66, 46, 22, 32, 45, 37, 1,185,133,252,223, 83, 93,121,221,105,196,181,106, 53, 81,233, 77, 86,220,137, -215,160,110, 80,115,120,123,251,192,216,111, 76,221, 27, 23, 15, 29,149,121, 55, 90, 94,152,254,232, 11, 91,117,126, 61,241, 39, -230,124, 50, 37,146, 0, 81,197, 15,233, 22, 95,173,216,220,242,235, 57, 31,252,237,189,153,139, 54,180,172,121, 36,203,113,126, -143,193,239, 47,234,252,198, 96,168,115, 51,113,237,236,126,244,121,107, 40,198,140,255, 24, 78, 78,110,223, 10,197,138,187,102, -189,234,226, 63,238,185,222,141, 58,133, 54,105,180,187,150,143, 79, 29,142, 43,154,229,131, 82,160, 83,215, 30,152, 53, 99, 18, - 56, 74,209,172, 69,155, 30,253, 70,126, 68,105,241,108, 32,217, 57,217,133, 49,143, 31,246,210,101, 62,190, 97,243,177,212,235, -205, 74,165, 18,119,238,220, 65,108,108, 44,162,163,163,145,147,147, 3,133, 66,161,169,230,249,228,216,180,105,211,209, 23, 47, - 94, 20, 59, 59, 59,191,120,223,104, 52,194,193,193, 1,163, 71,143, 22,246,238,221,187, 86, 88, 88,216, 88, 66,200,175,148,210, -130,242,116,116, 57, 79,210, 28,189,130,191,239,218,173,235, 52, 0,144, 56,122,199,111,252,249,120,116,165,215,154,194,199,175, - 67,135,142, 1,160, 20, 4,116,125, 97,118, 76, 70, 37, 81, 34,217,159,127,254, 89,159,207,231, 11,254,122, 6,113,248,110,251, -190,224,115, 87,239, 15, 89,241,237, 42,177,163,204, 30, 74,149, 17, 19,199, 12,182,249, 25, 44,245, 10,238,215,177, 99,215,163, - 95, 47,250, 82, 32,151,201,112,246, 70, 28, 62,154,241,185, 62, 61,241,193, 42,202, 9, 55, 23,102,197,100,189,228,163,242,149, -244,140, 11,172, 45,135,195,128, 62,226,169,239, 14, 16, 27,205, 86,228, 23,154, 97, 48, 89, 97,229, 40, 84,133,102, 60, 76, 86, -195,205,209,174, 38,210,173, 1,184, 3, 80, 2,184, 85,102, 29,197,175, 81,206,122,118, 81,120, 4,174, 0,140, 0, 74,255,120, -201,122, 69,239,151,124,255, 33,128, 70,197,154, 86, 0, 55, 1,228,149,103,182,202,139,114, 9,194,195,195,105, 88, 88,216,139, - 59,126,217,245,178,216,139,132, 62, 50,133, 59, 40,125,132, 82,207, 54,120,122,215,206,217,242,253,143, 46, 10,103,215, 36, 85, - 94,142, 95,241,143,156,183,229, 97, 33, 32,252, 53, 93,187,117,233, 61,237,253,247, 17, 84,191,182,200,106,181,210, 7,177,241, -230, 29, 63,109, 31,167,168, 19,186,174, 32,229,193,252,146, 16,100,117,123, 57, 88, 57,107, 74,217, 8,150,149,179,166,148, 57, - 24,231,255,121,192, 0, 39,185, 29,190, 63,149, 0, 74, 1, 2, 10,133, 76,136,189, 17, 41,136,143, 60, 92,240, 86,179,130,194, -209, 43, 22,246,232,222,111,250,197,135,207,244,251,179,178,244,103, 40,165, 25, 21,105,242, 8, 32,224, 19, 56, 74,133, 80, 72, - 69,112,146,137, 64, 74, 61,192, 74, 55, 23,118,235, 55,253,220,197, 63,146,190, 0,160, 44,157, 15, 85, 90, 83,226, 21,216,218, -209,169,246,254, 33,211, 86, 58,220, 79,177, 64,192, 7,252,189, 36,112,113, 16,193,104, 33, 72, 84,154,138,175, 28, 39,124, 52, -115,145,203,156, 79,167,157, 36, 36,164, 9,165, 15, 77,149,237,187, 86,171,181,123,231,157,119,132,102,179,217, 52,122,226,199, -189, 51, 50,148, 3,191, 91,255,141,189,135,135, 39,180,122, 11, 34,163,159, 54,250,250,235, 69,254,199, 79, 71, 28, 89,248,249, -212,163,125,251,246, 85,236,219,183,143,171,234,120,254,173,134,152,153,189,105,251,238,131, 59,215,174, 90,134,152,164, 60,252, -244,195,102, 80,171,229,251, 42,194,178,231, 75,189,166, 95,124,241,133,228,200,145, 35,181,101, 50, 89,129, 86,171, 85,254, 45, - 30,193, 35,130,204, 92, 45,220, 28,236, 32, 18,240,224,233, 44,134,135,194, 30, 66, 62,192, 35,196, 90,158,230, 79,251,195,151, -112, 90, 21,142,237, 49,142,220,190,105, 41,198,127, 56, 15, 15,178,237, 78,243,164,138, 37, 31,140, 28, 50,199, 93, 98,237,235, -227,196,243,232,209,178, 46,100, 98, 17,230, 78,127, 7,109, 34, 19, 61, 82,243,185,121, 74, 29,191, 57,128,121,229,150, 59,175, - 40,130,229, 32, 21,226,244,238,111,179, 10, 85, 74, 85, 73,147,156,209,160, 79,178, 49, 36,125,190,156,154,237,156,150,205,155, - 46,157, 54,121, 2,175, 99,251, 54,148,199, 19, 34, 91,109, 36,148, 2, 51, 62,154,138, 15,166, 78,242,122,158,150,245,213,230, -205,223,207,151,123, 52, 90,172,201,122,180,176, 50, 77, 30, 41,138, 2,201,197, 2,200, 37, 69,198, 69, 46, 22, 64,111,180,130, - 16,240,157,253, 90,170, 72, 81, 36, 55, 45, 39,177,252, 26,120, 89, 77, 23,223,198, 23,206,197, 59, 4,231,237,207,187,158,144, - 22,189, 36,242, 94,230, 77, 74,105,174,111,215, 79,199,154, 44, 20, 26,189, 5, 9,153, 90, 88, 76,148,140,127,211, 15,245,134, -145,160,101,219,163,118, 18, 66, 28, 75, 12,116, 89,205,148,235, 7,244,110,161, 67, 70,172,221,240,195,173, 85, 75,231,241,179, - 85, 70,112,148, 66,108,199,135,196, 78, 80,188,240,161, 43, 84, 97,243,150, 31, 51, 44, 32, 67,104, 68,132,165, 58,231, 39, 56, - 58,102,112,191, 46,123, 9, 96, 71,120,162, 20, 31,191,186,126, 61,251,143, 19,247, 28,240, 14,172, 22,227, 28,153,103,240,165, -194,204,199, 23,108,209,108, 18,210, 8, 4,136,210,100,198, 76, 5, 0,185,103,208,247,193, 65,193, 45,203,190,215,160, 65, 80, - 75, 91,202,189, 4,145,196,241, 67,103, 23,247,121, 65,141,155,123,212, 15,237, 74, 28, 92,107, 35,225,201, 29,236,217,242,213, - 46, 78,111, 92,116, 33,124,255,210,117, 63,253,246,118,207,190,131,177,253,187,111,230, 2,184,248,143,235,136,227,198,236,216, -182,181,142,208, 98,228, 74,123, 0, 0, 32, 0, 73, 68, 65, 84,206, 30,102, 11, 7,179,149, 22,253,181, 88,145,155,155, 7,179, -133,131, 88,234, 0, 11, 71, 96,182,114, 48, 91, 56, 24,140, 22,217,212,119,194,222, 7,112,163,188,237,172,221,168,219, 25,145, -189,189, 31, 69,209,220,181,148, 82,240, 45, 70,158,183,183,247,175, 0, 96,111,111, 15,123,123,123,112, 28,135,200, 24,229,135, -238,193,189,166,161,216,224, 89, 77,198,164,188,132,223,251, 84,180,239, 94, 94, 94,253,203,154, 44,189, 94, 15,141, 70,131,171, -215,111, 41,182,237, 60,216, 55, 33, 41,165, 62, 71, 21, 6, 7,143,250,125, 0,244,175,232,120, 22,100, 60,126,191, 78,251,201, -188,207, 62, 24,219, 96,195,142, 19, 55,159,156, 94, 60,183,178, 83,194,191,215, 28,227,103, 83,134,182, 90,177,254,167, 39,185, -191,111,249,164,170, 50, 18, 8, 4, 66,165, 82,249,226,250,222,248,227,158, 86, 81, 49,169,131,214,173, 93, 39,142,140, 83,227, -126, 66, 26,198,246,242,197,223, 30, 2,149,104,202,189, 2,220, 2, 2,130,127,221,188,126,133,224, 73,154, 30,155, 14,223,196, -197,163,223, 95,205,200,186,209,151,102,164,233,106,114, 15,121, 89,163, 85,153,230,165,123,217,208,232, 45, 48, 24, 45, 48,115, - 20, 5, 90, 51,178,242,141, 40,208,154,160,209, 89, 48,246, 13,223,114,191, 87,133, 31,113, 39,132,156,160,148,190,133,162, 97, -169,236, 74,173,131, 16,114,162,120,187,254,182, 62,103,206,156, 47,150, 47, 95, 30, 93,242,217,146,247, 75, 62, 91,217,251,165, -190,239, 58,119,238,220, 38, 43, 86,172, 88,214,190,125,251,189,215,174, 93,139, 47,207,104, 85, 26,209, 42,217,153,240,240,112, - 90, 69,141,162,190,212,209,213,222, 81, 34,132,127, 61, 95,188,247,197,118, 55, 71, 23,207, 44,177,157,128,127,234,212,105,151, - 28,163, 28, 60, 30,191,208,246, 40, 86,195, 14, 18,137, 52,124,245,234,213, 24,217,191,179, 36, 57,219,172,185,151,172,203, 44, - 52,194,226,225,222,208,110,201,178, 21,242, 21, 43,191,253,224,196, 49, 46, 31,192,183,229, 55,241,181,190,205, 39,165,114,176, - 8, 1,229,172, 41,185, 9, 55, 91, 1,192,203,228, 98,105,244,102,240,139,115,107, 8, 1,180,122, 11,248,124,146,149, 31,179, -255,225,232,197, 75,122,236,218,123, 46,141,242,156,212,133,133, 9, 82, 74,105, 74,229, 17, 3,130, 2,173, 25, 10,169, 16, 78, -114, 33, 20, 50, 17,248,165, 46,178,146,230,194, 93,123,206,166, 38, 37,229,220, 42, 54, 89, 21,106, 10,248,188,120,106, 53,235, - 41,181, 58,188,213,218, 29, 30, 78,118,240,118,182,135,189,157, 0,102, 11,160, 51,114,208, 27,173, 72,204,210, 65,173,147, 32, -180,235,112,127, 87,239,219, 6, 87,191,214, 71,114,146,110, 13,169,212,156, 90,173,216,241,235,193, 6,105,105,153, 3, 79, 30, -217,109,175, 44, 48,227, 94, 98, 33,178,242, 13, 0,223, 29, 11,150,109,178,159,253,201,228, 65, 59,246, 28, 74,234,217,185,109, - 82,117,143,107, 97,214,227, 93,161, 29,194,190,127,235,173, 65,146,232, 27, 39,241,228,206,133,165,154, 76,219,243,179, 8, 33, -188, 3, 7, 14, 88, 38, 79,158,172, 94,182,108, 89,157, 99,199,142,213, 83, 42,149,119, 0,152,157,156,156,130, 27, 54,240,187, -123,246,244,169, 90, 97,131,134, 11, 83,178,117, 80, 72, 69,240,243,144,226,250,213, 51,102, 59, 59, 97,185,249, 38,197,205,131, -163,106,247,154,141, 99,215,227,251, 70,231,136, 35, 38, 77, 24,155,116,246, 74, 76,206,198,157,103,191,169, 37, 55,223, 17,115, -202,141,183, 91, 5,120,205,249,232, 29, 44,223,176, 11,151, 35, 99,178, 10,121,222, 75,211, 13,150,115, 11, 71,204,170, 32,148, - 94,100,176, 29, 36, 66, 20, 22, 40, 85, 79, 35, 79, 53,124, 69,145,234,177,103,143,236,226,229,170,205,120,158,173, 39,105,185, -106, 88, 57, 10, 39,169, 8, 22,142, 34, 63, 55,155,236,222,181, 19,183,110, 93,231,129,207,155, 8, 96, 97,165,205, 92,164,168, -169, 80, 46, 22, 22, 69,132, 36, 69,127,205, 86, 14, 65, 13, 2,176,117,227, 26, 71, 55, 15, 79,116,234,210,221,246, 40,181,171, - 95,179,189, 63,111, 68,196,181,168,110,151,215,109,106, 45,247,113,223,224, 88, 59,100,149,162,222, 27,122,131,201, 10, 85,126, - 30,236,140,207,209,166,150, 18, 46, 82, 43, 18, 11,188,241, 32,227,137,188,170, 92,168,236,251,135,239,184, 55, 25, 60,255,224, -241,139,203,251,188,209, 13, 15, 18, 11, 32,177, 19, 64,108,199,135,216,142, 15, 33,177, 98,205,150,239,205,121, 42,245, 91,217, - 15,142,100,215,224,252, 60, 95, 92,251, 45,122,200,121,214,119,223,181, 97,254, 47,147,102,173,236,211,119,240, 56,242,224,214, -165, 47, 0, 92,176,173,162, 71,109,122,143,227,108,127,198, 73, 28,221,215,127, 58,255,219,233,189,223, 26, 14, 62, 95, 0,179, -217,140, 67,251,118,225,231, 77, 11, 30, 27, 53, 57,227, 40,165, 28, 33, 46,147,247,239,218, 50,124,214, 87,107, 72,147,102,109, -218,150,235, 39,249,228,135,119, 39, 76, 25,225,233,233,233,240, 87, 68,139,162, 97, 80, 8,250, 13, 24,138, 51, 71,127,195,195, -232,123,224,104,145, 97,226, 56,138,252,188,156, 12,139,217,184,163,194, 22, 15,177,216,111,251,207, 59, 3,121, 60, 2,147,153, -131,209,194,225,147,247,223, 51, 78,157,241, 69,167,126,189,187, 70,219,241, 81,144,152,156,238,116, 61,234, 81, 40, 39,148,215, -153, 48,115,141, 72,111,176, 66,165, 53,227,228, 79, 21,123, 29,137,139, 95,251,102, 29, 6, 77,152,250,229, 86,123,123, 62,207, -212,184, 97,157,248,174,237, 26, 63,247,245,113, 83,127,189, 98, 83,155,223,111, 68,245,123,123,244, 4,241,216,224,150,196,199, - 85,226,240,222,232,193, 77,101,174,190,239, 22,230, 36, 87, 56,101,154, 80,234,156,239, 91,175,129,246,175,136, 81,208, 97, 66, -225,255,183, 7, 39, 65,188, 54, 35,102, 8, 0,120,251,248,234,133,246,142,234,106, 24, 17, 10, 0, 27,126,220,211,234,110,108, -218,164,181,107,215, 73, 35,227,212,184, 19,167,130,189,136, 7,147,153, 3,177, 49,168,205, 81,254,148,121,115,231, 56,230, 21, - 90, 17,113, 79,137,232,219,151,168, 81,163, 31, 45,181, 56, 14,145,121, 6,189, 11, 32, 0,192, 51, 66,232, 15,133,153, 94, 71, - 41,141,168,118, 39, 3,142, 43,170, 47, 43, 60, 2,252,173, 2,251,126, 66, 59, 89,123, 66,104, 99, 66,225, 12,208,212,156,226, -103,170,173, 78,173, 48, 51, 22, 43,151,125,133,245,219,126, 67, 90,142, 30, 10,235,115, 28,253,105, 9, 62, 91,254, 43,116,134, -138,179, 26,170,242, 35,229, 25,163,178,134,171,228,117,201,231,150, 47, 95,254, 86,153,178,121,171,130, 50,251,199,231, 74,190, -191, 98,197,138,101,165,254,175,181,213,100,189, 48, 90, 37, 59, 85,197,206, 53,116,247,246,187,118,244,200, 97,231, 60,141, 9, - 98, 17, 31,190,245, 26, 96,225,198,163,238,111,182,114, 67,182, 73,129, 61, 91, 87,229,234,181,234,125, 54,221, 44, 60,131,219, - 58, 56, 56,156, 60,124,232, 55,212,247,245, 16,237,190,154,155, 16, 21,175,123, 17,234, 45, 80, 38,217,213,115,212, 10,134, 12, - 30, 44,189,112,241,210,140,138,140, 22,159,240,107,255,184,243,144,135,131, 68, 8, 66, 0,181,206,130, 73,239, 14,125,249,199, - 24,229,248, 19,198,141, 5, 41, 54, 89, 5, 57, 25,248, 98,246,251,122,153,249,201,195,228,196,228,212, 94,253, 63,187, 80,160, - 33,250, 17,239,188,127,235, 97,236,242,188,170,207, 98,115, 74,191,176,126,162,162,200, 1,192, 39, 4, 28,229, 50,131,234,201, - 63,250, 71,115, 97,134,225,199,170,140,155, 58, 53, 38,215,193, 59,116,216,174,213, 31,254,232,227,233,225, 42,151, 73,168, 92, -106, 79, 26, 7, 7,138,218,181,235, 96, 87, 47,168,169,232,234, 35, 29,146,149, 58,196,167,169, 96,239,217, 92, 48,178,199,155, -216,181,110,102, 55, 66, 8,175,108,146, 98, 89,206, 69,252,217,127,219,150,181,246,153,249, 38, 60, 78,214, 32, 35, 79,143,244, - 60, 3, 50,114,245,144, 75,132,232, 50, 96,178,125,248,209, 31,250,247,236,220,118, 67, 77, 14,111,124,124, 66,120, 98,106,250, -240,166, 45,218, 96,215, 47, 63,119,118,118,246,119,204,203,139, 47,176,181,116,150, 44, 89, 98,183, 98,197, 10,193,198,141, 27, - 11,218,181,107,231, 53,119,238,220, 62, 89, 89, 89, 55,235,214,173, 27,116,230,240,142,139,205,187, 12,108, 13,206,228,222,185, -107,119,145, 61, 39,192,217, 19, 39, 76,251,247,237,206,209,233,212, 83, 43, 53, 28, 82,197,146, 76, 13,129,123,173, 90,209,114, - 59,235, 27, 2, 94,126,108,238,169,143,118, 2, 56, 28,240,230,244,243,151,110,199,196,182,138, 76,244,184, 24,249, 52, 43, 87, -107,106,248,236,212,167,149,222,120,249,132, 64,200,231,193, 65, 34, 0,175,248,174,234, 80,171,217, 83, 16,226, 94, 18, 57, 37, - 32,197,127, 1, 66,144,150,155, 20,101, 67,206, 6,161, 28, 5, 98, 82, 10,161,209, 23,133,230,107,187, 73,161,204, 76,193,119, - 27,118, 32,234,246, 45,244,126,115, 0, 54,255,184, 27,147,222, 29,174,175, 74,141,199, 43,142,104,149,138,102,201, 37, 2, 0, - 4,249,133,102, 28,250,253, 57, 2,252,121, 54, 63, 24, 0,192, 65, 46,133, 74,173, 3, 79,228,128,103,145, 39,165,167, 46,221, -152, 59,127,241,218,207,243,210,239, 37, 63,189,127, 21, 65,110, 42,248,215, 50, 33, 58,195, 17,183,115,234, 33,168, 65,125,240, - 68,183,108,210,206,142, 14, 93,121,148,119,232,173, 86,205, 67,218,251,121, 56, 65,103,180, 22, 71,181,248,248,121,251, 78, 36, - 38,164, 76,200,142, 62, 18,245, 42, 28,173, 38, 51, 78, 41,246, 12,252,224,254,141, 11,241,131, 71,127, 0,239, 90,190,205,170, -147,182, 96,203,123, 86, 27,141,150,157,204,121,238,204,175, 86, 79,239, 29, 54, 12,127, 94,189,128, 59,209,207,208,182,109,107, -188, 57,104, 36,212, 5,185,193, 7,118,174,123, 3,192, 25,129,189,101,122,155, 14, 61, 8,103,181,226,201,227, 7,207,202,211, -210,166, 61,190, 3,192,241,111,205, 83,238,141,154,201, 21, 46,119, 12, 38, 43, 82, 83, 83,240,199,181,136, 22,197,159,179, 25, -123, 17, 31,103,163,178, 96, 50,115, 48, 89, 56,116,233,250,134, 81,196, 51,116, 94,186,118,123,187,244,180,116,158,204,209,141, -115,169,213, 72,228,109,111, 50,220,141, 83,137, 76,102, 14,245,125,100,149,106,186,251, 52, 88, 54,115,230, 39,141,248, 34, 9, -212,133, 6, 99,122, 90,170,215,214, 61,151, 52,143, 30,223,175, 85,219, 67,225,248,205,186, 31, 68, 5,122,130, 44,149, 1,185, -234, 2, 50,122,202, 44,159,109,155,150,143, 1, 96,243,220,180,132,194, 63,252,236,213, 96,103, 7, 17,209,232, 45, 92, 78,129, -201, 58,122, 80,247,151, 58,119,138, 77,214,228,181,107,214, 73,163,226,212,184, 27,167,130, 88,196,135,157,136, 7,163,153,131, - 45,151, 19, 33,132,231,223,164,235,212, 14,173, 66,113,230, 78, 54,248,124, 30,116,234, 60,173, 0, 57,177,173,186,245,150,182, -108,211, 14,221,187,117,197,211,216, 24,223, 19,199, 14,245,188,254,199,229, 12,185, 71,208,135,154,172,152,223,170,117,158,107, -181,124,179,157,215,123,222,181,234,118, 28, 50,242, 61,133,159,111, 45,226,225,230, 10, 11, 21, 96,242,187, 67,109,190,242,139, -140, 57,176, 98,241, 92, 24, 12, 70,184, 59,217,129, 82, 96,251,134,133, 48, 26,141,240,113,181,135,170,208, 92,225,247,171,242, - 35, 21, 69,161,170,217, 12,125,162, 60,179, 85,246,125, 66,200,137, 57,115,230,124, 1,128,206,153, 51,231,139,146,245,229,203, -151,235, 0,164, 85,214,116, 88,218,120, 9, 74,239, 92,133, 27,101,103, 23,228,230,237,119,253,236,153,211,138, 35,119, 57,252, -249,219,109,132,181,245,134, 72,192,131, 84,225,131,187, 9, 42,132, 31,222,146,127,116,239, 15,169, 6,131,225,219,170,219,154, - 3, 91, 57,200, 28,207,252,178,107, 31,231,230,234,202,251,238,172, 50, 46, 71,109,121,209,164, 21,123,227, 24,119,251,204, 86, -111, 10,114, 90, 44, 22, 55, 48, 26,141,206, 85, 21,236,246,179, 73,197, 73,188,228, 85,220, 91, 65,248,124,235,174,221,187,224, -230,104, 7,131,153,195,156,207, 63,214,141,237, 45,207, 31,253,246,200, 30,221,251, 77,191, 40,148, 5, 94,232,208, 34,144, 54, -111,222, 60,159,207,231, 87,169,151, 19,127,243, 31,189, 43,130,235, 73, 39,206,155, 53,118, 94, 57,205,133, 54, 37,238,170,211, -239,255, 14,224,111, 17, 18, 18, 16, 96,247,235,129,163, 31, 15,123,123,196,252, 90,205, 6,201, 19,210, 85, 16, 17, 19, 90, 55, -242,198,165,211,191,209,148,196,216, 79,170, 50, 89, 0,144,165,204,173,227,238,238,137,168,120, 13, 82,115,116,200, 40, 54, 89, -233,121, 6,168,117,106, 52,245,243, 65,190, 74, 85,167,198,199, 23,248,237,204,153, 51,195,251, 13, 28,129,233,159, 47,234,244, -211,150, 85,247,228, 94, 13,199,107, 50, 98, 35,108,169, 41, 18, 66,114,103,207,158, 29,240,227,143, 63,242,198,140, 25,163, 11, - 13, 13, 21,191,243,206, 59,157,118,238,220, 41,150, 74,197,186,187, 87,143,205,159,248,209,156,129, 91,215, 47,105,150,151,151, - 71, 44,102,243, 41, 83, 94,222, 28,117, 21,102, 46,249,232,220,199, 36,100,209,184, 55, 58,187, 31,115,145,242, 26,219, 83,227, - 72, 18,178,104, 31,125,184,192,244,236,212, 6,117,232,219,107, 62, 74,203,231,230,233,121, 30, 75,171, 50, 89, 0,192,227, 19, - 24, 45, 86, 56, 72,132,224,241,120, 37, 38,222,251,231,125,167,164,238, 10, 59, 8,249, 60, 8,248, 69,209,206,236, 2, 19, 62, -120,111,160,205, 53, 1,139,149, 66,103,180, 64, 91, 92, 59, 84, 23,100, 99,238,231,159,226,205,254,131, 49,113,234,167,200,211, - 1,183,227,213, 48,153,205, 85, 94, 20, 60,194,131,214, 96,193,248,222,126,200,213,152, 80,168,179,192,104,225, 32,181, 19, 64, - 40,224, 65, 38, 22,192, 81, 42, 4, 40, 21,149,220, 76,132, 66,161,222,100, 50,237,170,164,156, 80,175,142, 39,116,102, 30,218, -140, 88,133, 94,237, 27, 34,250,247, 67,130,203,127,222,247,159,241,249, 60,124, 60,169, 63, 14, 62, 14,128,139,135, 31,228, 50, - 9,204,148, 7,192,182,161, 67, 40, 93,192,121, 7, 15, 25,245,253,143,219, 99,190,254,106,142, 56,191,144,192, 94,196,199,197, - 11,231,113,253,198,237,245,202,232, 35,187,240, 10, 17, 82,158,167,163,163, 35,196,118,124, 24, 77, 6,163,237,169, 11, 20, 20, -104, 33,247, 12,250,190,184,198,223,194,202,161,156,247,170, 54, 90, 66,137, 98,206,244,217, 75,150,245, 14, 27,134,179, 39, 14, -226,192,193,125,214,246,125, 39,240,119,255,188, 5,157,122, 13, 64,167,222, 35,112,234,183,157,159, 10, 37,138,144,201, 31,127, -185,184, 75,143,126, 56, 27,126, 16,153, 25, 41,171,109,221, 94,190,144, 76,239,241, 70,127,232,141, 86,116,238,249, 22, 78, 31, -255,237, 35, 20,119,178,176,253, 33, 86,230,254, 12,158,229,211, 79,166, 11,179,242,141, 66,101,129, 17, 41, 74, 45, 18, 50,181, - 56,186,247, 39,106,251,253,194,216,186, 75,211,218,194,201, 43, 47, 62,175, 83,219,219, 32, 52,232, 36,177,207,226,130, 39,190, - 55, 86,232,223, 32,152,151,165, 50, 64,169, 50, 32, 91,101,128, 70,111, 65,131,218,129, 60,179,133,180,175,110, 57,187, 41,236, -132,155,143,199,195, 81, 38, 68,135,224,154,119,180,229, 56,238, 47,147,181,182,200,100,221,139, 87,193, 94,196,135,189,136, 7, -123, 17, 31, 22, 43,181,169,226, 34,241,104,216,239,131, 15,223,247, 49, 90,128, 28,149, 17, 2, 62,129,135,155,179,172,117,179, - 81,216,190,234, 35, 0,192,164,217,223, 97,226,248,119,208,168,113, 40,242,243,242,188, 70, 13,235,183, 22,192,111,182,110,235, -201,179, 17,190,103,175, 68,205,254, 96,230, 2,249,219,253,187,243,239,196,169,144,158,107,192,179, 88,117,181, 34,111, 0, 96, -177,114,160,160,216,177,239, 4, 36,118, 2, 40, 85, 38, 80, 74,177,100,227,126, 56, 72,132, 72,207, 43,106,238,175,140,202,252, - 72,101, 17,169,106, 68, 27,223, 66, 81, 46,151,187,173, 17,173,229,203,151, 71, 47, 95,190,188,220, 8, 89,137,201,170,241,164, -210,118,118,242, 96, 55, 87,159, 63,207,158, 62,233,240,219, 93, 43, 46,221,205,193,176,206,181,161,201, 77,198,183,159,191,157, - 75, 64,141, 60, 62, 63,223,160,211, 30,214,233, 10,151, 82, 74, 77,149,154, 44,239,160, 22, 50,137,227,249,205, 91,127,177,184, -121,120, 96,215,213,220,148,188, 66,139,249,175,102, 43, 51,185,125,102,171,191,133, 51,247,213,101, 60,169,178,122,203, 81,136, -150,111, 57, 10,128,130,227, 56, 80,142,131, 80, 44,151,185, 7,180,207, 44,190,209,137, 5, 60,162, 47,125, 7,160,156, 37, 69, - 25, 87,121, 24,148, 0, 80, 72,133,216,119, 57, 21, 0, 50,249,234,200, 71,163,223, 46,106, 46,212, 27,197, 5,141, 3, 2,104, -235,214,173,243, 37, 18, 73,141, 11,187,186,205,133, 54,157, 64,207,158, 25, 1,172,244, 9,234, 60,184,143,188,105, 27, 59,158, - 8, 45,131,188,113,233,204, 17,250,231,233,237,147,180,153, 49,191,216,120, 34, 66,163, 55, 35, 45, 71,143,212, 28, 61, 50,242, -244,200,200, 53, 32, 35, 79, 15, 66, 8,244,198,151, 27,254,166, 48, 43,230,192,174, 95,182, 13, 48,152, 48,178, 75,239,193,248, -116,193,102,191, 93,223,175, 56, 47,241, 12,238,104, 75,162, 45,165,212, 74, 8, 73,124,239,189,247,154,237,217,179,135,223,164, - 73, 19,221,163, 71,143,164, 0, 56, 0, 38,185, 92, 42,249,105,211,242, 51,109,218,180,217,155, 26,251,248, 34,128, 60, 91,186, -231,215,237,246,158,125,176, 99,238,100, 95, 89,135, 62,245,189,164,240,149,169,251, 4,203,239,126,235,209,115,198,178,172, 11, -235,178,210, 13,150,115, 74, 29,191,121,170, 70,104, 83,174,160,217,160, 79, 26, 50,108, 36,248,132, 7,147, 94,155, 84,114,114, -121, 40,236,176,112,247, 99,200,197, 66, 56, 72, 4,144, 75,132,232, 20,226,130,106,220,207,168,217,202, 65,107,176, 66,103,176, - 64,111,180,192,173,142, 51,126,220,117, 0,201, 89, 58, 28,189,149,141,152, 36, 53, 2,107,203, 64,105,213,183, 73,206,106, 46, -236, 63,116,140, 3,159, 71,192,231, 17, 94, 72,112, 67,228,106, 76, 16, 9,120, 16,137, 37,144,217, 11,224, 40, 17, 66, 36, 18, - 34, 43, 43, 11, 6,131, 1,190,190,190,226,202,173, 32,133,131, 92,130, 64,127, 31,152,204, 22,156,188,242, 16, 75, 63, 25,130, - 55,186,180, 2, 17,202,241,216,208, 2, 14, 46, 14,224,120, 60,152, 44, 28,140, 38, 43, 0, 94,133,209, 55, 95, 95,223, 30, 50, -153, 76,166,213,106,213, 73, 73, 73, 17,233,143, 15, 39,123, 52, 30, 52,249,244,217,139,187,222,122,243, 13, 68,221,139,198,193, -223,142, 93,205,118, 85,205, 44,249, 78,147, 38, 77,218,185,185,185,201,115,114,114, 10,238,223,191,127,179,134,181, 95, 34,243, - 12,158,209,190, 83, 55,104,242,179,144,249, 60,193,230, 90,116, 35, 63, 7,124,185,124,115,203,160,134, 65, 45,173,180,200,120, -133,248, 58,224,179, 5, 27, 90, 6, 4, 54,108, 89,210, 33,164,145,175,188,114,147, 37,115,236,253,238,228,207,150, 15, 24, 54, - 14, 23,207, 30,195,154,165,159,239,146, 41,220, 27,185, 56, 43,154, 55,105,215, 27, 87,207, 31,131,216,193, 11,206,174, 94,157, -198,140,255,176,215,176, 49, 83,112,253,234,121,172, 95,241,197, 78,171, 65,253,171, 45,219, 42,247,172,239,222,188,117,151,209, - 14, 46,158,200, 87,169,225,224,236,129, 70, 77, 91,143,150,123,214,159,173,201,140, 83,214,244, 90,231, 40,133,193, 68,145,167, - 49,225,185, 82,135,196,140, 34,163,197,113,213,200, 9,178,114, 68, 46, 22, 8, 92,204, 79,125,239,159,191, 72,253,234,120,146, -149,139, 63,231,155, 32,134, 50,191,200,100, 41, 11,140, 80,170,140,208,232,205,112,145, 9,192, 89,185,106,215,186,243, 52, 38, - 56, 20,231,209, 90,185,154,231,134,111,249,121, 95,208,221,216,180, 65,107,214,172,147,222,137, 47,101,178,132, 69,209, 44,123, - 17, 31, 86,142, 43,126,210, 84, 97,176, 5,194,233, 3,251,245,194,243,108, 93, 81,175,101, 30, 65, 96,104, 27,184, 73, 56,244, - 28, 49, 7, 0,208,191, 95,209,240, 37,241,233,133, 56,254,167, 18,248,123, 98,119,229,247, 98,157,142,191,117,119,248,140, 3, -251,247, 42,244, 86, 1,126, 56,149, 8,173,193, 2,177,136, 15,123, 17, 31, 18, 17,255,111,249,216, 85, 27,173,162,156,187,228, -108, 51,180,122, 61, 10,116,102, 80, 0, 55,159,106,160, 51, 90,160, 42, 52,163, 93,176,243,203,214,125,194, 1,132,149, 53, 68, -101,205, 82,169,136, 84,121,220, 42,173, 81,242,249,138,140, 92,233,156, 45, 0,213,234,193, 37, 40,235, 28, 75,175,219,201, 93, - 26, 41, 92,221,255, 60,125,234,132,252,183,187, 28, 34,238, 21,153, 44,179, 46, 27,171,103,143, 74, 41,200,207,238, 78, 41,141, -179,245,199,100,238, 33, 77, 37, 82,233,197,111,214,253, 96,242,240,172,197, 29,254, 51, 63, 75,165,181,254, 45,134,104, 53, 24, -120,148,163, 34, 91, 76, 86,113,147,135,105,193, 71,131,193, 81,138,133,235, 14, 96,217,204, 17,144, 75,198, 72, 9, 33,210, 66, -189, 5,159, 44,218,134,213, 95, 78,112,144,218, 11, 64, 8,160, 55, 90,241,238,200,193,182,157,128,122, 11,158,221,216,163, 81, -199,159,120, 84,186,185,176,109,167, 55,111,183,109,219, 54,223,217,217, 25, 18,137,228,175, 72,133,141, 55,237,242,122, 23,102, -229, 35,197,193,193,161,171,163,163, 99,105,189,194,252,252,252, 35, 53, 57, 11,213,249,217, 23, 51, 18,239,183,233,216,189, 63, - 34,206, 28,161,127,158,250,105, 82,117,198,232,113,118,113,126, 30,121,255, 89, 35, 66, 92,138, 34, 90,197, 38,203,104,230,224, -231, 41,197,243,196,103,112, 82, 40,158,219,170, 39,245, 8, 30, 72,120,116, 42, 1,221,174,201,136, 61, 80,108,122, 70,201,188, -130,239, 69, 63,184,179,244,173,209,211, 5,189,135,189,207,255,126,249,135, 95,160, 76, 18,107, 37,152, 98, 98, 98, 30, 78,152, - 48,161,195,245,235,215,173, 0,180,132, 16, 51,159,207,151, 26,141, 70, 81,247,238,221, 85,143, 31, 63,190,140,114,146, 22,203, -210,121,252, 65, 55, 98,175,126, 51, 32,176,245, 40, 63, 7,245, 27,221, 59,183, 71,251,198,117,240,188,115,123, 0,152,158,164, -145, 7,117,154,246,211, 62,127,247,218, 39,191,255,249,248,178, 73, 35,122,125,226,211,127,209,154,180,227, 11, 42, 77, 68, 77, -126, 24,209,167, 60, 27, 47,224,243,224, 32, 17, 66, 46, 17,192, 65, 34,132,131, 88, 8,179,133, 86,167,230, 72,205, 22,174, 40, -162,101,180, 64,163,179,224,226,157, 76,100,168,140,200, 87,155,160, 51, 89, 65, 65,139,106,163, 54,220,205,179,158,252,238,244, -162,236,253, 90,170,182,110, 92,229,120,232,247,148, 23, 61,250, 20, 82, 59, 56, 72,139,122, 99, 95,185,114, 5,174,174, 85,215, -246, 57,142,195,193,211, 55,177,102,199, 69,156,222, 62, 11, 98, 17, 31, 77, 7, 46,194,184, 65,109,193, 81, 14,207, 98,162, 51, - 3, 67,154,121,242,120, 18,240, 8,129,193,204, 1,160, 21, 30, 79,163,209,232,154,156,156, 92,208,160, 65, 3,175, 90,181,106, - 13,227,243,249,212, 30, 48, 28,217,155,171,189,112,226, 87,105,161,206, 96,149, 90, 84,219, 27,164,235,194, 2, 3, 3, 65, 8, -161,110,110,110,162,139, 23, 47,106, 66, 67, 67,221,107,104,178,120, 18,143,134,235, 39, 78,155, 49, 44,160,126,125, 28,248,117, - 59, 40, 37,135,108,253,254,238,227,215,177,120,238,223,123, 24,126,182, 96, 67,203,213,139,166,255,237,189,105,115,215, 84,218, -235, 80, 98, 47,159, 57,100,212,100,220,190,121, 13,223, 46,250,108,175, 65,147, 59,206,108, 49, 15,207, 77,143,223,235, 31,210, - 22,212,164,198,217,253,171, 48,226,157, 73,246,189,223, 26,134,235, 87,207, 99,217, 23,211,118,107,243,179,222,179,117,252, 47, -142, 10,167,118,239, 51, 72,168, 51,152,176, 97,229, 87,152, 50,115, 41,218,245,232, 47,124,112,231,207,169, 0,190,182,117,159, - 13, 38, 43,186,135,186, 21,153,103, 51,135, 99,241,124, 65,121,103,160,128, 79,120,205,235, 59, 65,103,180,160, 64,107,174,252, - 65, 37, 18,102,228,171, 10,234,110, 90, 54,131, 95,168,183, 64,169, 50, 34, 75,101, 64,118,254, 95, 6, 43, 91,101,128, 82,101, -132, 80, 64, 16, 27,151, 4,158, 80, 80,237,252,188, 60,141, 25,109, 26, 58, 23, 93,163, 53,108, 29, 49, 11, 28,219,158,190,124, -119,200,154, 53,107,197,119, 19,212,184, 23, 95, 80, 28,201,226,195, 94,200,131, 93,241,107, 43, 7, 84,245, 19, 10,143, 0,255, -177, 19, 38,245,116,148, 75,144,246, 36, 11, 2,126,209, 16, 49, 10,143, 58, 80,216,235,241,225,180,201,112,115,117, 66,114,182, - 1,235,127,139,197,189,135, 79,193,233,170,183,219, 27,126,216,219,119,226, 7,159, 57,241,132,118,216,121, 38,161,104, 59,249, - 86, 60,254,243,184, 62,237,217,253, 66, 77, 65, 14, 5,181,218, 24, 0, 32,212, 98, 45, 58,221,150, 45,156,131,189, 59,190,195, -153,200,172, 23,201, 91,191, 31, 90,141, 25,115,151, 32,187,192, 88,124,234, 87, 30,201, 42,179,174, 44, 21,137,250,199,122, 41, -115, 84,222, 58, 41, 94, 55, 86,160, 97, 44, 99,174,140,101,222, 55,150,209,187, 91, 78,229,127,107,149, 77,135,255, 48, 69,206, - 30, 77, 20, 14,138,107,167, 78, 29,151, 29,185, 71, 95,152, 44,147, 54,155, 46,157,222, 63,165, 32, 95,217,187, 90, 38,203,163, - 97, 19,123,153,236,242,252, 37,235, 13,158,181,234, 90, 78,222, 41,200, 81,235,173,255, 8,139,136,164, 50,171, 76,225,174,119, -242,107,177, 70,168, 51,126,165, 84, 62, 44,172, 42,242,196, 81,138, 19, 55, 50, 64,105, 81, 21,105,255,149, 84, 20,215,204, 97, -229,138,154, 85,206,221,201,130,160, 56, 15,197,214,240,247,150, 31,190, 43, 8, 11, 85, 21,142, 94,182,240, 69,115, 97,187,102, - 69,145, 44, 71, 71, 71, 56, 57, 57, 65, 46,151,195,150,166,195, 18, 42,234, 93,232,224,224,208,245,206,157, 59, 98, 71, 71, 71, -240,249,124, 24, 12, 6, 52,110,220,184, 70, 23,186,220, 43,248,131, 54, 61, 6,127,209,169, 71,127, 92, 60,125,152,254,121,250, -231,201,213, 29, 8, 49,172, 87,135,227,139, 23, 47,244,159,191,116,147,189,131, 88,128, 71, 26, 35,120,132,192,207, 83, 10, 87, - 25, 15, 17, 71,118,234, 71,244,239, 96,243,224,120,117,234,212,218,181,122,227, 86,217,234, 21,139,186, 59,212, 10,186,168, 78, -141,201, 5,128,194,140,199, 43,165, 94,193, 15,107, 95, 59,123,178, 89,215,193,240,244,169,255, 70, 53,194,191,148, 16,162,141, -139,139,139,159, 63,127,126,208,138, 21, 43, 40,159,207,231, 0,216,175, 91,183, 78,251,228,201,147, 59, 40,234,154,139,170, 30, - 54, 61,223,104,252,137,220,206,218,206, 69,202,107, 92,223, 75,138,246,141,139, 90, 69, 71,132,117, 66, 29, 95, 95,196,101,104, -155,231,106, 57,161,198,200,175,191,249,135,123,183,234,185,241, 39, 89,116,198,135,168, 98, 48,217,138,206,217,146, 4,249,146, -104,150,131, 68, 8,174,232,193, 94, 45,163,101, 48, 89,161, 51, 88,161, 51, 90, 80,104,180, 66,107,180,130,163, 69,215, 4, 33, - 4, 38, 11, 7,155,170,205,101,206,125, 71, 23, 55,212,175, 87,212, 75,214, 65, 82, 52,212,131,163, 84, 88,212, 71,218,213, 21, - 30, 30, 30, 54, 69, 69,141,166,162, 75,220,104,230, 94, 52,235, 27, 77, 22, 80, 74, 17, 27, 27, 51, 43, 49, 62,126, 96,131,192, - 6, 93, 66,154, 54,115,145,218,243, 0,160, 66,163,165,213,106,173, 14, 14, 14, 30, 46, 46, 46,188,212,212,212, 23,230,185, 65, -243,238,150,223, 14, 31,194,144, 33,131, 53,143,110,222,125,209,197, 93,167,211,145,142, 29, 59, 58,214,169, 83,135,103, 48, 24, - 10,170,119, 12, 8,145,185, 55, 28, 84, 39,184,195,210,119,223,155,210,176,123,175,190,184,116,225, 44,142, 30,222,243, 75, 97, - 86,140,205, 35,103, 7, 5, 5,255,163,215, 97, 64, 96,195,127,244, 58,172,235, 31, 88,169,209, 10,105,218,186, 45, 37, 2,156, - 57,177,159,234,121,166,105, 69, 9,239,100,255,190, 45, 95,126, 61,106,234,220,128,126, 3, 70,225,221,119,198, 65, 32,224, 35, -226,220,113,172, 94,244,105,184, 70,149, 53,214,150, 52, 1, 0, 32, 33, 33,162, 6,190,117, 63,246, 13,104,130,200, 63,175,226, - 89,236,131,232,187,183,174, 55,110, 16,218, 14,238, 62,126, 31,147,144,144, 21,244,225, 67, 83, 85, 58, 70,189, 62,105,220,216, -119, 80,186,215, 97,251, 22, 65,174,164,236, 5, 0, 64,171,206, 50,253,180,234,147, 39, 37,189, 14, 57,147, 49,169, 34, 93, 85, -158,242, 96,196, 31, 55,102, 14, 12,235,203,203, 46, 48, 22, 69,176, 84,198,226,197,128,236,146,215, 5, 6, 4,250,200, 17, 19, - 29,201,233, 85,217,135,170,121, 93,234,199, 13,239,243,176,228,220,229, 56, 10, 2,232,171,123,125, 83,161,227,228,149,223,174, - 17,223,141,215,224, 94, 66, 65, 81, 83,161,144, 95,100,176,132,188, 23,166,171,168, 55,123, 21,209, 33,194, 95, 54,126,236, 72, -100, 23,152,192,113,128,128,207, 43, 94, 68, 72, 86, 19, 60, 87,107,145,157,167, 68,124, 98, 18,242, 51,158,129,199,227,193,205, -167, 33,108, 13, 63, 90,169,157,183,214, 72, 67,135,133,117, 17, 28,190,150, 14,169,189, 0, 6,117, 38, 78,237, 91,165, 52,104, - 10,150,234,180,154,195,186,156, 39,105,182,238, 59,143, 16,101,129, 70,239,105, 47,228,227,192,142, 77, 24, 62,110, 90,241, 65, - 41,250, 51,107,222, 98,128, 71,144,155,167, 6, 33,164,186, 81,210, 91, 85,172,215,132, 87,161,129,242,204,213,223, 42, 10, 21, -215, 70,233,169,179,167,143,203,126, 79,180,199,205,152,244, 98,147,165,228,150,124, 20,150,162, 86,229,246,161,148,198, 86,107, - 11,120,188, 62, 35,198,207,140,174,223, 48,196,112,233,129, 38, 33,191,208, 92, 97,158, 67,251, 97,243,163,111,135,111,236,167, - 50,199,189, 47,247,105,108,229, 44,150,149,218,172,152, 69, 21, 52, 29,218, 45, 90,127,224, 69,179,225,236, 21, 59,139, 94, 91, -173,176, 82, 14,148, 3, 62,252,114, 11, 44,156, 21,156,213, 10,206, 74, 97,182, 82,105, 85,155,235,225, 83,247,112,222,227,253, -193,163,191,254,103,115,161,147,147, 19, 92, 93, 93,225,234,234,138, 18, 99,244,178,205,133,142,142,142,144,203,229,184,122,245, - 42, 36, 18, 9,100, 50, 89,181,116, 75,153,172,247, 91,119, 27,184,169,199,128, 9, 56,119,248, 7,122,235,202,241, 41,218,204, -152,109, 54, 71,232,173, 86, 98, 54,155, 17,214,187, 91, 82, 84,244,211,211,243,102, 78,237,219,225,173, 41,246,237,131,106, 65, -111,180, 34, 37,241, 25, 34,142,252,172,111,232,239,125,166,103,231,182, 73,102,179, 25, 86,171,181,202, 7,185,222,104,202,230, - 11, 37,178,145, 35, 71, 11,111,221,188,121, 72,238,209,240,128,149,240,238, 18,202, 53, 37,132, 12,105,218,180, 17, 76,102, 14, - 90,109, 65, 94,117,247, 89,173, 86,199,111,223,190,221,127,236,216,177,210,144,144, 16,225,179,103,207,176,122,245,234, 28,181, - 90, 29,111,171,198,217, 43, 49,235, 4, 36,239,137, 29,103, 26,229,231,160,126, 35,185, 83,123,140,124,171, 19,246,134,255,142, -136,171,215,145,164,145,223,209, 88, 4, 71,158, 39,165, 25, 26,187, 20, 28, 26,208,190, 46,255,192,142,188, 67, 30,221,231,190, - 77,169,253, 89,101,196,130, 66,219, 31,226,128, 90,103,134,163,180,104,188,167,146,200, 22,159, 16,155, 29, 17, 1,226,175, 94, -143,108,210, 42, 48, 4, 81,241, 42,100,229, 27,160, 51, 88,192,113, 20, 28, 40, 92, 29,236, 32, 22,241,144,156, 24, 15,142,154, - 18,170,121,187, 80,118,237,210, 85, 0, 16, 16, 66, 5, 66,129, 0, 20, 69,227, 43, 74, 36, 18,141,135,135,135, 77, 17, 45,147, -197,130, 33,125,219,162, 93,235,166, 24, 56,165,104,204,204, 11,191,204,129,179, 92,136,189,187,182, 33,249,242,218, 93,245, 59, - 76, 59,251,224,126,244,208,232,168,107,163,223,108, 41,105,238, 37, 72, 19, 85,164,167,209,104, 14, 17, 66,236, 68, 34, 81,223, - 46, 93,186,184, 28, 58,116, 40,223,205,205,141,179, 19,137,148, 3,250,191,197, 9, 69,162,220,146,207,254,241,199, 31,194, 41, - 83,166, 56,228,229,229, 37,103,102,102, 94,167,148,154, 43,175, 8, 6,247, 2, 15,123, 64,136, 88, 46,145, 38,181,239, 53,210, -167,117,187,182,138, 65, 67,134,195,222,206, 30,231,206,158,198,134,181, 43,246,107,210, 31,141,175,206,145,124, 85,189, 14, 83, -146, 19,226,181, 58, 67,104,147, 86,221,200,213,179, 71,166, 19,226,190,150,111,239,184,170,215,144,105, 1,241,105, 26,108, 88, - 62, 11,206, 10, 25, 18,158, 61,214, 61,121,116,127,139, 89, 95, 48,203, 86,147, 5, 0,210, 28,235,208,246,239,244,117, 54,152, -172,184,114, 49, 92,207, 89,184,190,215, 47,159,124, 86,187, 97,107,113,147,214, 61,157,179,143,110, 27, 2, 96,111, 85, 58, 41, -143,254, 25,193,245, 13,106,147,112,225,226,121,133,167, 95, 99, 62, 1,129,201,160,135, 50,238,150, 69,155,249,184, 64,149,114, -223,166, 94,184, 57,207,241,229,220, 5,223,188,223,186, 85, 43, 25,133,248,111, 17,172, 18,131,149, 93, 96,132,155,131, 29,116, - 5, 74, 60,185,117, 90,175, 85,242, 43, 29,239,204, 98, 44,148,102,103,101,190,104, 98,211,100,198,180,171,236,243,217, 89,153, -118, 22, 99,161,180,234, 71, 29, 31,142, 50, 59,220, 79, 72,125,145,248,110, 47, 44,202,205,178, 19,242, 95,228,105,149,220, 11, -170,160,155, 72,236,132,212, 28, 61, 8, 40, 56,171, 5, 22,179, 17,234,130, 2,164,166,101, 32, 51, 35, 19,106,117, 62,164,114, -103, 52,105,222, 6, 14, 50, 49,238, 70,236, 7,165,212,166,113, 13,205, 68, 24,212,186, 93,103,251, 7,137, 69,185, 88, 98, 33, -197,241, 61, 43,114, 52, 5, 89,157,213,105,177, 79,170,123, 47,182, 88,173,231,239, 61,124,210,184,182,119, 61,114,231,153, 10, -187,126,220, 8, 99,113,100,211,108,182,226, 65,114, 33,210,115,181, 72,142,123, 68, 57,171,245,127,102, 66,106, 65,197, 1, 64, - 8,154, 54,105,132,222, 99, 6,225,187,239,182, 32, 46, 62,145, 91, 58,189, 95,178, 70,157,255,166,173, 38,171,244,236,222,133, - 25,143, 87,142,255, 46, 33,229, 88, 84, 46, 79,103,172,124,126, 43,177,187, 31, 58,143, 95,125, 70,167,206,181,179, 26,180,130, -227,187,198,239, 41, 79,179,200, 65,195,184,244,179, 17,144, 75, 4, 32,132,160,164,185,112,243,226,201,144,218, 23,181, 45,235, - 12, 22,140,249,100, 13,118,173,249, 20, 20,192,168,225,191,107, 43,218,206, 82, 77,123,181,147, 18,179, 82,123,245,255,236,130, -222,100,111,120,107,240,216,219,173, 90,181,202,151, 72, 36,144, 72, 36,112,116,116,132,179,179, 51,156,156,156,170,220,247, 10, - 7, 35, 45,213,187,144,199,227,129,199,227, 65, 38,147, 65, 46,151, 67, 38,147, 85,170, 89,161,201,234, 58, 96,115,207,129, 19, -113,238,240, 86,122,235,202,241,169,218,204,152, 31,109, 45,163,226,230,158,187, 67,134, 12, 9,157, 50,101,138,104,193,204, 41, -103,194,207, 70,196, 30, 56,177,181,127, 94, 94,126, 29, 74, 41,156, 20,138,231, 35,250,119, 56,222,189, 99,235,164, 11, 23, 46, -112,123,246,236, 49, 16, 66,238, 87,181,157,217, 89, 89,191, 92, 56,127,113, 97,231,174,221,176,109,199,158,174,209, 15, 31,117, -125,246,236, 9,234,248,213, 71, 61,255, 64,104,137, 51, 46, 94,190, 10, 77,126,214, 47,182,108,103,153,168, 22,201,203,203,187, - 54, 98,196,136,222,191,255,254, 59,111,196,136, 17,218,236,236,236, 63, 74,234, 81, 21, 69,179, 74,107, 94,219, 50, 72, 9,224, -151,186,221,222,219,159,106,202,255, 24,192, 10, 95, 63, 95, 68, 92,189,142,235,191,223,216,146, 45,245, 93, 52,126,204,123,147, -235, 14,224, 79, 28,208,190, 46,223,195, 89,138, 95,183,174,230, 31,187,158,184, 38, 49,199,186, 13,192, 98, 91,202,232,197,131, - 67,109, 66,199, 70, 46, 48, 91, 41, 56, 90,116,195,117, 16, 11,203,189,241,150,167, 41, 48,218,143,159, 58,101,202,179, 38, 77, -155,207, 24,243,222, 84, 81,243,250,117,112,243,105, 62, 64, 8, 92,188,100, 72, 79, 79,199,149,131, 91, 45,121,169,143,183,240, -249,220,215,213, 57,151,114, 19,163, 26,148,250,220,228,236,236,108, 68, 68, 68,160,196, 96,185,187,187,151,107,180,202,106,230, -100,166,253,177,248,219, 31, 58, 78,122,119, 48,222,234,214, 24,151,111, 61,131,177,120,188,166,146,174,228,241,215,191,183,251, -120, 68,125,227,251, 67, 26, 22,232,204,118,137, 95, 38,168,174,148,238, 21, 91, 86,147, 82,106, 36,132, 28,139,137,137,233,212, -172, 89,179,186, 39, 79,158,204,141,190,113,102,122,233,237,248,208,158,168,121, 0, 0, 32, 0, 73, 68, 65, 84,236,179,207,228, -223,125,247,157,148, 82,250,135,193, 96,136,179,105,223,121,248, 53,242,246,109, 87,147,153,195,213, 27,119, 27,245,236,216, 28, - 28, 5,110,221,186,133,109, 63,109,211,223,191,119,103, 85, 97,166,215,215, 21,153,151,138,142,167,245, 37,122, 29,150,214, 76, - 79, 77, 92,117, 46,252,224,174,214, 93,251, 99,244,135, 95,127, 29, 17,190,103, 97,203,206,111,241, 26,181,238,141,200,235, 23, -113,254,228,233,111, 76,154,220,133, 85,205, 67, 90,209,118,218, 75,164, 31,133,180,236,138,228,164, 68, 36, 60,121,240,139, 46, -231, 73,154,220, 43,248,151,180,148,164,169,254,141, 59,226,247, 51,123,167, 87,100,180,170, 58,231,235,184, 75,182,158, 60,113, -108,100, 74,202,247, 94,133, 58,189, 61,165, 84,111,111, 39,200,144,243, 42,238,161,254,207,114,127,104,146,185,212, 27, 50,124, -204,212,240, 13, 27,214, 10, 61,157,164,200,200,211,163, 64,103,130, 90,107, 2,143, 16, 52,240,145, 65,171,206,197,229,131,223, -154,141,154,188, 17,148, 62, 53, 85,164, 41,247, 12, 94, 2,208, 15, 63,155,118, 9,118,138, 58, 62,254, 61,191,168, 52, 90,167, - 78,187,215,255,179,105,199,131, 40,165, 61,229,158,193,234,146,185, 14,203,219,119, 66,138,174,239,209,221,235,192,100, 41, 26, -127,204,194, 1, 86,142, 43,142,242, 1,244, 69,123, 62,169, 98,223, 9,183, 47,252, 15,164,101,230, 67,103, 52,195, 96,180,192, -100,182,130,199,231,195,201,217, 9,129,245, 90, 64,225,228,136,204,140, 52, 92,191,112, 12,177,247, 46,255, 65, 40, 22,105,179, - 98, 47,216, 82, 70, 34,137, 83,144,183,143, 23, 47,189,192, 8,137, 29, 31,119, 46,159, 52,153,141,134, 85,182,152,172,242, 52, -243,115,114,215,204,152,249,249,168,159,183,239,240, 10,245,119, 68, 74,182, 14, 41, 74, 61,212,122,115,177, 17,227, 96,208,100, -227,222,197, 29, 25, 86,189,122,205,255,188,209,178,152,244,234, 67,167,111,186,206, 89,248, 45,255,233,179, 56,243,146,143,195, - 82,116,154,130,126,213,142,100,149, 98,251,251,245,246, 86,239, 27,197, 67,154,124,157, 88,121,253,187,108,115, 33,229,192, 81, -138,227, 55, 50, 94, 52, 23,114,197,153,151, 81,207,242,171,213,180,119, 47, 70,189, 91,167,203, 84, 60,126,186, 42, 15, 0,248, -124,254,139,165, 36,151, 74,175,215, 27,107,210, 92, 88, 54,241,157,227, 56, 56, 58, 58, 66, 34,145, 84,187, 73, 82,230, 25, 52, -178,117,183,129,155,122, 14,154,132,243,191,253, 72,111, 93, 62, 54, 77,155, 21,179,181,218, 57, 10,121,121,209,132,144, 39,171, - 86,173,106,190,109,219, 54,255,153, 51,103,198,237,220,180,112, 3, 0,228,228, 20,205, 1, 28, 21, 21, 69,167, 77,155,102,208, -235,245,241,121,121,121,145, 85,117,128, 0, 0,157, 82,186,108,219,230, 21, 77,158,167,166, 15,174,223,164, 13,220,253,219,192, -171, 65, 91,228,169, 77,184,249, 52, 13,113,143, 46,224,209,213,131, 39,181,114,203,194,234,110,115,179,102,205,234,240,120,188, -122, 26,141,198, 43, 36, 36,164,153, 76, 38,139,106,214,172, 89, 11,129, 64,144,114,251,246,237,196,234,104, 37, 70,252,108,168, -219,237,189,245, 73,106,135,238,113, 25,218, 22, 73,106,135, 40,173,189,226,211,172, 11,235, 12,158,189, 87,173,161,166,236,232, - 3, 59, 10, 14,253,186,117, 53,127,204,228,207,172, 15, 84,206, 31, 11, 36,118,231,150,143, 11,173, 70,179, 20, 47,253,253,177, - 3,255, 26,222,161, 56,146, 85,252,218,166, 48,125,126,254, 93, 21,128,217, 18,159,198,155, 30,124, 60,101,113,211,214, 29,223, -233,242,230, 8,158, 69, 36,199,153,223,190,167,241,247, 46, 30, 16, 80,235, 60,173, 13,179, 1, 84,217, 28,100, 52, 86,105,178, -202,109,238,121, 46,235,118, 96,207, 79,227, 14,253,118,120,249,160, 1, 3, 93, 55,127,249, 54,190,253,225, 8,100, 18,123, 80, -142,195,136, 30,190,195, 30,237,233,211,191,142,167,184,214,161, 75, 41, 87, 62, 92,251, 96,182, 86,107,138,173, 42, 18, 83,108, -156,175, 58, 56, 56, 40, 59,117,234,212,206,222,222,158,100,103,103, 11, 60, 60, 60, 44, 10,133,194,152,146,146,162, 53, 24, 12, -135, 40,165,133,213,217, 79,147,153, 67, 66,166, 30, 71, 15, 31,194,221, 27, 23,240,232, 81,140,250,209,195, 71, 27,137,128,174, -213,100,196,230,214,228,216,113,229,246, 58,164,213,238,117,104, 53,168,127,221,185,101, 73, 15,173,222, 48,174, 89,135, 48,212, -109,212,145,103, 50, 91,113,255,214, 37, 92, 58,184,246, 91,163, 58,103,206,203,148,177, 79,109,255, 64,202,183,195,181,136,112, - 80,142,219, 2, 0,148,227,182, 68,253,126,114,106,219,126, 19,225,226, 81,183, 25, 33,132, 84,119,190, 71, 0, 16, 9,120,133, -167, 14,253,252, 91, 66, 66, 2, 30, 63,126,140,167, 79,159, 34, 55, 55, 23,191,254,154, 80,173,242, 41,204, 77, 56, 39,119,173, -223,103,232,219,163,143, 15, 27,249,174,216, 63, 48,148, 23, 84,219, 25,174,114, 1, 98,158, 38, 34,246,246, 61, 46,230,230, 73, -189,169, 32,107,144, 54, 55,161, 66,227, 39,115, 15,241, 36, 60, 58,167,100,238,194,246,237, 59, 6,125,190,116,121, 59, 87,119, -143,114,239,227, 57,202, 44,187, 89, 31, 30, 11,186,254,231, 53,155,230, 58,228,172,214,156,201,227, 70,112,252,162,137, 66,241, - 34, 78, 77,138, 10,187,168, 50, 85,244, 62,229, 44, 85, 70,240,223, 27,220, 25, 22,142, 67,161,206,132,130, 66, 3, 84,106, 61, -210,179,114,112,247,222, 61, 92, 62,126, 12,207, 98,238,198,155,141,198,179, 60, 30, 57,168,205,136,185, 92,189,150, 38,129,191, -171,139, 11,226,115, 53, 16,219, 9,144, 24,123,219, 80, 88,160,218, 93,211,243, 72,155, 29,155, 46,243, 12,234, 61, 98,196,200, -211, 61,250, 12, 80,180,238,208, 75,234,230,232, 4,145,128,226, 73, 66, 26, 34,255, 56, 93, 24,119,247, 74,129,217,168,233,251, - 42,102,125,249,111,198,166, 94,135, 38, 67, 97,255, 81, 3,187, 30,230,243, 5,118, 28,103, 49,152,140,134,161, 47, 99,178, 94, - 23,148, 90, 83,198,141, 26,252,183,186,129,133,163,146, 81,195,207,232, 74,215, 21,204, 86, 42, 29, 53,252, 15,109,209, 13,164, -226,196,190, 23, 77,123,123,207,165, 36, 37,229,220,202,205, 53, 92,122,217,158,128,165,231, 46,172,164,119, 97, 97,112,112,240, - 11,115,197,231,243, 97,181, 90,109,190, 17,137,236, 37,147,122, 12,152, 64,206, 31,249,145,222,140, 56,242,190, 54, 43,246,135, -151,104,103, 54, 1,184, 65, 8,121, 48,111,222,188,214,158,158,158,158, 95,125,245,149,184,160,160, 64,184,121,243,102,125,118, -118,118, 70, 65, 65,193,117, 74,169,206,118,205, 72, 51,128, 33,114,207,134,221,233,161, 31,223,112,114,171,213, 91,225, 94, 59, - 32, 95,153, 26,175, 82,166,157, 5,112,190,120,160,200,106,209,162, 69,139,250, 60, 30,111, 4,128, 38, 50,153,172,129, 92, 46, -183,167,148, 6, 19, 66,162, 57,142,187, 23, 18, 18,114, 2, 64,181,202, 47, 49,226,103, 67,151,247,127,218,147,171,229, 68, 70, -158,104, 79, 98,196,207, 6, 0,200, 60, 59, 83, 11,224,168,103,247, 57, 67,142, 93, 79,220, 16,157,167,152,158,117,105,217,177, -234,110,115,254,243, 59, 13, 94,213,249,175, 75,139, 78, 1, 48, 78,230, 25,180,250,126,212,245, 5,132, 66,104,133,101,137, 54, -243,201,237, 87,161, 47, 20, 10,245,181,106,213, 42,183,119,161,189,189,189,190,242, 50,143,176, 0,216, 70, 72,183, 29,135,247, -239, 24,119,228,216,209,229, 93,122, 14,114, 21,215,174,141,122, 30, 4, 59,230,180,156,126, 33, 74,121,115,192,231, 87,190,139, - 75,211,223,163,148, 86, 43, 31, 70,173, 86,199, 18, 66,242, 52, 26,205, 64, 74,233,115, 66, 72,157,188,188,188, 59,102,179,249, -126,181, 13, 1,135,209,237,219,183,249,149, 16, 34,160, 22,110,229,117, 33,127,143, 62,253, 81, 74, 77,140, 69,105, 66,235, 57, -226,147,175,214,183, 12,104,208,176,101,201, 92,135,141,235, 58, 96,202,236,213, 45,235,250, 7,182,252,107,254, 67,121, 85,215, - 36, 37,132,140, 63,252,211,202, 43, 81,127, 94,250,194,205,187,110,221,140,148,184, 71,207,159,222, 89,108,209,169, 14,191,108, - 57, 39, 60,141, 94,187,109,213,236,153,233,169,241,219, 10,179, 98, 31, 0, 64, 97, 86,236, 3,169,103,195, 47,179, 51, 82,102, -230,100,197,173,170,233,177, 40, 44, 44, 76,219,189,123,183, 83,199,142, 29,121,158,158,158, 80, 42,149,184,116,233, 18,199,113, - 92,106,117,181, 52, 57,113,151, 8, 9,112,249,229,135, 77, 43, 69, 50,135,126, 22,139,197,135, 82, 64, 32, 16,164, 27,181, 5, -167,213, 60,217,231, 52, 55,161,138,243,146, 35, 0,120, 37,115, 23,114, 28, 71, 86,110,216,145, 40, 20, 59,148, 59, 63,162, 89, -175,150,114, 28,103,243, 92,135,121, 73,183, 3, 94,217,195,154,210, 69,205, 90,181,251,194,108, 54,233, 81,148, 47,166, 7,160, -167, 20, 57, 60, 30,185,204,231,204,103, 84, 47, 81,153, 34, 4,142,148, 8,224, 32, 17,128,128, 64,163,202,165,213,201,201, 42, -183,188, 51, 99,162, 9,233,230,119,202,184,127,236,197,115, 39,135, 91,173,214,122,197,103, 78,130, 65, 87,120, 64,147,238,252, - 11,165,183, 44,248,247, 19, 94, 98,182, 4,149, 92,216,177, 40,154,219,231,191,154,156,248,155,173, 94,165, 94,122,102,238,142, - 62,131,102,210,132,196,172,155,201, 25,134, 95, 74, 79,171,243,178,154,207,159, 43, 47, 21, 55, 23, 26,254, 25,161,168, 89,239, -194, 23,198, 88,175,251,102,221,188,145,208,235, 10,119,106,179, 98,119,188, 26, 19, 75,117, 0, 46, 19, 66, 20,239,191,255,126, - 11,185, 92, 46,204,206,206,190, 65, 41, 85,213, 84, 83,147, 25,123, 9,192, 37, 0,115, 94,197, 54, 70, 69, 69,197, 53,111,222, -124, 23,143,199,171, 71, 41,245,164,148, 42,138,141,108,182, 64, 32, 72,125,248,240, 97,106,141,246,221,224,112, 74, 99,228, 7, - 90,168,243,233,127,152, 15, 87,143,115, 73,185,214, 31,249, 50,241,127, 77,142, 65, 97,102, 76, 52,128,161,175, 90,183,178,113, -178,108, 63,143,254, 50, 92, 17,225, 63,143,227,217, 41,150,244, 12,210,107,123,207, 72, 93,124,245,190,242, 6,165, 84,253, 18, -231,168,210,206,206, 78, 71, 8,169, 35, 18,137,116, 70,163,241, 94,141,142, 95,145,201,119,127,149,199,142, 3,185,221,178,101, -171,106,125,222,134, 72,222,142,226,229,149,162,201,120,188, 24,197,205,223,127,139, 80,100,198, 46, 1,176,228,101,180,111,221, -186,117,124,213,170, 85,170, 13, 27, 54,248, 90,173, 86,169,209,104,212,234,116,186,132,148,148,148,107, 53, 43,243,103, 70, 0, - 31, 23, 47, 53,136,186, 60,206,144,123, 54, 92,223,161,125,135,143,139, 42,232,116,125,194,229,245,159, 84,246, 29,185,103, 67, - 93,233,207, 87, 54,215,225, 43, 45,151,172,216, 45, 0,182,188,190, 72, 5,167, 28, 61,108, 32, 80, 60, 48, 55,103,177, 40, 95, -137,108,209, 53,255, 19,106, 56, 73,250,191, 1, 74,105, 58,128,173,197,134,153,190,182, 31,178, 53, 95,133,105, 50, 77,166,249, -191,165,105,203,236, 4,236,120, 50,205,215,169, 41,241, 9,169, 3, 0,182, 76,186, 94,209,231,217,241,164,255, 51, 9,237, 54, - 28,143,201,229,152, 45,219, 6, 44,101, 48, 24,140,215, 80,219,227,216, 81, 96,252, 39,177,213, 96,213,244,243,140,255,185,123, - 90,133, 57,209, 4, 69,179, 96,151,247, 37,155,157, 42, 33,164, 87, 13, 54,234, 60,211,100,154, 76,147,105, 50, 77,166,201, 52, -255,183, 52,171,210,254,191, 24, 41, 43, 39,162, 21, 94,220,124, 88, 52, 48,219,235, 90, 0,244, 98,154, 76,147,105, 50, 77,166, -201, 52,153, 38,211,252, 95, 90, 0, 76, 46,121,205, 3,131,193, 96, 48, 24, 12, 6,227,181,192,114,180, 24, 12, 6,131,193, 96, - 48, 94,130,242,154, 14,153,209, 98, 48, 24, 12, 6,131,193,120, 5, 84,150, 12,207,154, 14, 25, 12, 6,131,193, 96, 48, 94,130, -146,136, 22, 33,196,155, 16, 50,185,116,132,139, 25, 45, 6,131,193, 96, 48, 24,140, 87, 0,165, 52,189,108,116,139, 80, 74, 17, - 30, 30, 78,195,194,194, 8,128,191,189,102, 48, 24, 12, 6,131,193,248,255,193,255,101, 47, 66, 8,241, 6, 16, 86,122,119, 74, -134,119,224,149,222, 65, 86,204, 12, 6,131,193, 96, 48,254,147,102,235,255,226,118,151, 68,178, 74, 45, 47, 38,205,126, 97,180, -194,194,194, 8, 51, 91, 12, 6,131,193, 96, 48,254, 83,252, 27,189, 8,175,236, 14,178, 98,102, 48, 24, 12, 6,131,241,159, 52, - 91,255,166,253, 97,195, 59, 48, 24, 12, 6,131,193, 96,188, 4,149,229,104,145,226,161,226, 25, 12, 6,131,193, 96, 48, 24, 53, - 51, 90,147, 75,247, 54, 44,189,206, 34, 90, 12, 6,131,193, 96, 48, 24,175,192,108,149,251, 62,139,104, 49, 24, 12, 6,131,193, - 96,188, 30, 94,235,128,165,132,144, 94, 76,147,105, 50, 77,166,201, 52,153, 38,211,100,154,255,102, 74, 70,132, 47,126, 61,185, - 56,103,235,245, 27, 45, 6,131,193, 96, 48, 24,140,255, 1,194, 40,165, 91, 75,229,102,133, 49,163,197, 96, 48, 24, 12, 6,131, -241, 10, 41,111,114,105,102,180, 24, 12, 6,131,193, 96, 48, 94,161,193, 42,189,206,140, 22,131,193, 96, 48, 24, 12,198,107,130, - 25, 45, 6,131,193, 96, 48, 24,140,215, 4, 1, 80,110,207, 1, 74,233,121,155, 69,106,208,251,160, 42,125,166,201, 52,153, 38, -211,100,154, 76,147,105,254,251, 52,171,210,174,142,255,248,175, 49, 83,127,141, 12, 31, 94,252,247,175,230, 67, 74,233,107, 91, - 0,244, 98,154, 76,147,105, 50, 77,166,201, 52,153, 38,211,252, 55, 47, 0, 38,151,254, 91,122, 97, 77,135, 12, 6,131,193, 96, - 48, 24, 47, 31,213, 42, 61,142,214,139, 81,226,217, 20, 60, 12, 6,131,193, 96, 48, 24, 47, 65,121,195, 58,148,192, 34, 90, 12, - 6,131,193, 96, 48, 24, 47, 65,217,121, 14, 75,175, 51,163,197, 96, 48, 24, 12, 6,131,241, 26, 12, 23, 51, 90, 12, 6,131,193, - 96, 48, 24,175,208,100,253, 35,186, 85,156, 37,143,240,240,112, 26, 22, 22, 70,216,161, 98, 48, 24, 12, 6,131,241,159,224,223, -232, 69,120,165,119, 44, 60, 60,156,178, 98,102, 48, 24, 12, 6,131,241,159, 50, 89,255, 23,189, 8, 33,196,187,164,183, 97,241, -226, 93,242, 63,214,235,144,193, 96, 48, 24, 12, 6,227,229, 8, 43,221,243,176,184,249,112, 43, 51, 90, 12, 6,131,193, 96, 48, - 24,175,128,242, 18,225, 1,150,163,197, 96, 48, 24, 12, 6,227,191,132,127,163, 23,121, 97,180, 24, 12, 6,131,193, 96, 48, 24, - 53, 48, 83,229, 68,179, 74,154, 18,153,209, 98, 48, 24, 12, 6,131,193,120, 69,134,171,236, 40,241,108, 28, 45, 6,131,193, 96, - 48, 24,140,215, 96,178, 94,187,209, 34,132,244, 98,154, 76,147,105, 50, 77,166,201, 52,153, 38,211,252,183,155,172,146,191,108, - 82,105, 6,131,193, 96, 48, 24,140, 87, 8,155, 84,154,193, 96, 48, 24, 12, 6,227, 53,193, 38,149,102, 48, 24, 12, 6,131,193, -248,255,108,184,152,209, 98, 48, 24, 12, 6,131,193,120,133, 38,171,172,217, 98, 57, 90, 12, 6,131,193, 96, 48, 24, 47, 65,101, - 57, 90, 4, 64,175, 10,190,116,190, 26, 46,174, 87, 13, 54,234, 60,211,100,154, 76,147,105, 50, 77,166,201, 52,255,183, 52,171, -210,174,142,255,248,111,229,111, 67, 61, 80, 74, 95,219, 2,160, 23,211,100,154, 76,147,105, 50, 77,166,201, 52,153,230,255,210, - 2, 96,114,201,107,214,116,200, 96, 48, 24, 12, 6,131,241,146, 17,172,138,254,199,140, 22,131,193, 96, 48, 24, 12,198, 75,192, -198,209, 98, 48, 24, 12, 6,131,193,120, 77, 16, 66,188,139, 71,132, 47,249,219,130, 25, 45, 6,131,193, 96, 48, 24,140, 87, 67, - 88,113, 84,171,228, 47, 51, 90, 12, 6,131,193, 96, 48, 24,175,138,138,198,209, 34,148, 82,132,135,135,211,226,245,110, 97, 97, - 97,151,217,225, 98, 48, 24, 12, 6,131,241,255,147,127,171, 23,121, 17,209, 10, 11, 11, 35, 0, 34, 88, 81, 51, 24, 12, 6,131, -193,248, 79,240,111,244, 34,188, 50, 78,178, 27, 43,102, 6,131,193, 96, 48, 24,255, 9,254,141, 94, 68, 80,198, 69, 50, 24, 12, - 6,131,193, 96,252, 71,248,191,234, 69, 8, 33,222, 0,194, 0,132, 23,255,125, 49,228, 3, 27, 71,139,193, 96, 48, 24, 12, 6, -227, 37, 61, 34,165,116,235,223,166,222, 41, 49, 97,197, 67,197, 51, 24, 12, 6,131,193, 96, 48,106, 64,121, 35,195,151, 24, 46, -102,180, 24, 12, 6,131,193, 96, 48, 94, 19,172,233,144,193, 96, 48, 24, 12, 6,227, 37, 41, 29,213, 42,221,124,200,123,205, 63, -218,139,105, 50, 77,166,201, 52,153, 38,211,100,154, 76,243,223,110,178, 40,165, 91, 75,150,210,166,139,141, 12,207, 96, 48, 24, - 12, 6,131,241,154, 96, 77,135, 12, 6,131,193, 96, 48, 24, 47, 65,217, 40, 86,233,166, 67,102,180, 24, 12, 6,131,193, 96, 48, - 94,129,217, 42,239,125,214,116,200, 96, 48, 24, 12, 6,131,241, 18,148, 55,188, 3, 51, 90, 12, 6,131,193, 96, 48, 24,175,217, -112, 17, 0,229,246, 28,160,148,158,175,134,112,181,123, 31, 84,165,207, 52,153, 38,211,100,154, 76,147,105, 50,205,127,159,102, - 85,218,213,241, 31,255,205, 6,235, 69, 83, 34,165,244,181, 45, 0,122, 49, 77,166,201, 52,153, 38,211,100,154, 76,147,105,254, -175, 46,172,233,144,193, 96, 48, 24, 12, 6,227, 53, 97,179,209, 34,132,184, 11,133,194, 47,164, 82,233,119, 82,169,244, 7,161, - 80,184,138, 16,226, 92,221, 31,148,203,229,211,189,189,189, 31,123,123,123,167,248,249,249,157,116,116,148,205, 8, 16,147, 46, -132, 16,225, 43, 8,221,241, 8, 33, 65,132,144, 25, 82,169,244,145, 68, 34, 73, 36,132,236, 34,132,204, 32,132,184,189,140,246, -146, 90,100,104,244,140, 65, 71,150,212, 34, 67,203,252,102,152,151,151,215, 85, 66, 72,239, 87, 85, 40,163,100,164,215,112, 57, - 73, 30, 46, 39,201,163,100, 53, 31, 20,206,209,209,241, 29, 31, 31,159,235,110,110,110,169, 62, 62, 62,127, 72, 36,146, 97,213, - 60,158, 30, 94, 94, 94,223,250,250,250,198,214,170, 85,107, 93,241,236,228,255,181,116, 17,147,206,237,197, 68,217,193,158,168, - 59,217,147,239, 58,216,147, 55,122, 19, 34,173,225,185,212,137, 16,114, 80,161, 80,220, 17, 10,133, 39, 8, 33, 67,138,207,175, - 33, 66,161,240,132, 66,161,184, 67, 8, 57, 72, 8,233, 84,195,243,244, 91, 66, 72, 42, 33,100, 89,241,250, 71,190,190,190,234, -102,205,154, 37, 54,107,214,236,231,192,192,192,119,109,213,147,201,100,111,248,250,250, 30,242,243,243, 75,236,208,161, 67,110, -237,218,181, 99,234,212,169,179, 67, 44, 22,119, 99,183, 56, 6,131,193,248, 15, 99, 67,120,176, 63,128,229, 0, 54,222,187,119, - 47,146, 82, 26, 73, 41,141,188,119,239, 94, 36,128,239, 0,172, 64, 5, 33,196,178,239,187,186,186, 46, 90,178,100,137, 62, 61, - 61,157, 42,149, 74, 26, 27, 27, 75,215,206,159,205,245,113, 17,208,250,238,206, 90,111,111,239,103,126,181,107,239,109, 44,231, -205, 6, 16, 80,157,112, 37, 0,103,137, 68,114, 99,254,252,249,154,171, 87,175,106,140, 70,163,134,227, 56, 77, 90, 90,154,230, -252,249,243,154,142, 29, 59,106, 0,124, 2,128, 95,147, 16,232,215, 62,184, 76,127,250,146,126,237,131,203,165,223, 15, 14, 14, -126,200,113, 28, 29, 58,116,168, 1, 64,173,151, 9,171,214, 2,196,141, 29,225, 52, 76,142, 76,203,142,197,148,110,158, 73,135, -201,144, 92, 19, 77, 15, 15,143,163,211,167, 79, 47, 72, 77, 77,165, 6,131,129, 38, 39, 39,211, 41, 83,166,168, 60, 60, 60,118, -219,120, 60, 93, 67, 67, 67, 51,175, 95,191,206,229,231,231,211,136,136, 8,174, 73,147, 38,153, 0,188,171, 27, 82,246,240,240, -216,234,227,227,115,178, 58,139,135,135,199,182,234,150, 81, 91,123, 36,155, 34, 47, 81,122,235, 44, 61, 54,180, 61, 93,219,170, - 54, 29,226, 98,151,223,201, 14, 31,117, 5, 4,213, 56,151,134,119,237,218,181,240,254,253,251,214,156,156, 28,250,240,225, 67, -110,210,164, 73,122, 0,209,147, 38, 77,210, 63,124,248,144,203,201,201,161,247,239,223,183,118,237,218,181, 16,192, 68, 91,183, -179,184,114,179,125,225,194,133,148, 82, 74,151, 44, 89, 66,155, 54,109, 74,123,244,232, 65, 53, 26, 13,165,148, 38, 82, 74,127, -182, 88, 44,227,108,209, 84, 40, 20,239, 76,159, 62, 93,163,213,106,105, 9, 28,199,209,252,252,124,186,113,227,198, 66, 47, 47, -175,147, 0,220, 88,243, 4,211,100,154, 76,147, 53, 29,190,214, 84, 41,111, 0,147, 75, 45, 47,158,149, 85,125,113,212,236,217, -179, 75, 76,213,169, 78,157, 58,221, 28, 55,110, 92,228,184,113,227, 34, 59,117,234, 20, 1,224,204,237,219,183, 35,103,205,154, - 21, 9, 96, 84,101, 5, 1,192,185, 67,135, 14,249, 25, 25, 25, 52, 48, 48,144,214,173, 91,151,102,100,100, 80, 74, 41,189, 53, -188, 37,189,208, 8,244,249,149, 83,244,236,111, 7,233, 36,111, 1,237,236,173, 48,123,123,121,229,184,185,185, 45, 69,241,228, -215, 21, 21, 46,128,193,141, 26, 53, 82, 71, 71, 71,107,158, 60,121,162, 89,180,104,145,166, 71,143, 30,154,208,208, 80,205,144, - 33, 67, 52, 27, 54,108,208,152, 76, 38,205,182,109,219, 52,142,142,142,209,101,205,214,203, 24, 45,129, 64,176,254,222,189,123, -244,217,179,103, 20,192,183, 21,105, 2, 80, 56, 57, 57,245,117,118,118,254,196,201,201,169, 47, 0, 5,165, 20,129,128,188,153, - 2,190, 31, 53,171, 31,124, 98, 84,175,128,141,189, 90,183, 28,230,192,203, 55,111,154, 73,233, 80,223, 26, 25, 45,133, 66,241, -206,140, 25, 51,212, 6,131,129,106,181, 90,170,209,104,168, 86,171,165,106,181,154,142, 26, 53,170, 64, 44, 22, 15,174, 74,211, -205,205,109,241,149, 43, 87, 44, 25, 25, 25,244,202,149, 43,244,228,201,147,116,243,230,205,156,135,135,199,154,234, 94,128, 94, - 94, 94,231,206,158, 61, 27, 25, 21, 21, 21,121,227,198,141, 72,179,217, 28,105, 50,153, 34, 77, 38, 83,228,137, 19, 39, 34, 15, - 31, 62, 28,185,111,223,190, 72,163,209, 24,105, 52, 26, 35, 13, 6, 67,164,191,191,255,233,234,150, 81, 27,123, 60, 55, 94, 61, - 70,233,154, 15,168,234,155,105, 52,255,211,126, 52,107, 74, 23,250, 93,235,218,180,139, 4,199, 75,159, 71,149,105, 10,133,194, -203,137,137,137,220,220,185,115,141, 33, 33, 33,170,241,227,199,235, 13, 6, 3,165,148, 82,131,193, 64,199,143, 31,175, 15, 9, - 9, 81,205,157, 59,215,152,144,144,192, 9, 4,130,243,213, 48, 90, 43, 74, 76,214,229,203,151,105,105, 52, 26, 13,237,209,163, - 71, 98,211,166, 77,127,174, 87,175,222,232,170, 52,229,114,249,192, 57,115,230,104,104, 57,152,205,102,170, 86,171,105, 66, 66, - 2, 87,183,110,221, 52, 0,174,236,102,206, 52,153, 38,211,100, 70,235,181, 25,173,201, 21,173, 87,122, 16,103,205,154, 21, 73, - 41,141,156, 55,111, 94,100,113,100, 75, 4, 64, 94,188, 8, 0,140,156, 51,103, 78, 36,165, 52,114,246,236,217,145, 0,250, 87, - 98,180,250, 31, 56,112,192,180,110,221, 58,234,233,233, 73,189,188,188,232,250,245,235, 41,199,113, 52,227,196,110,122,161, 17, -232,163, 47,198, 82, 74, 41,141, 93,250, 33,189,208, 8, 52,110,203,215,116,204,152, 49, 90,169, 84, 58,170, 18, 3,227,210,178, -101, 75,181, 78,167,211,236,216,177, 67, 35,149, 74,111, 1, 8, 1, 32, 68, 81,175, 74, 57,128,119, 67, 66, 66, 10, 30, 60,120, -160,217,179,103,143, 6,192, 34, 27, 35, 27, 1, 0,186,203,100,178, 33,115,106, 9,159,208,159,190,164,115, 60,113, 31, 64, 19, - 0,238,197,159,241,153, 61,123, 54,165,148,210, 58,117,234, 92,169, 96,223, 21,161,161,161,179,159, 60,121,178,192,108, 54, 47, -136,138,138, 90,208,176, 97,195,185, 3,252,189,219, 31, 25,245, 70, 11,213,215,211, 90,208,213,159,134,174,122,179, 77,175,189, - 35,186,141,122,175,158,219,213,241, 30, 98,237,219, 10,190,122,164,244,111, 58, 54,157,216,181,106,213,186,145,156,156,252,194, - 92,169,213,106,154,154,154, 74,227,227,227,233,213,171, 87,169,183,183,247,133,170, 52,189,188,188, 30, 38, 39, 39,211, 45,107, -215,210,161, 77,130,105, 23, 39, 7,218,213,217,129,182,146,139, 11, 27, 1,173,170,107,180,238,220,185, 19, 9, 32, 18, 64,100, - 78, 78, 78,100, 78, 78, 78,100, 94, 94,222,139,247, 0, 68,170, 84,170, 72,149, 74, 21,105, 52, 26, 35,235,215,175, 95,109,163, -213, 81,140,142,109,197,200,109,111, 15, 93,255, 90,110,105,211,252,221,172,127,142,106, 79,243, 62,232, 65,215,181,168, 69, 59, -217,225, 35, 27,203,189,191,157,157, 93, 4,128,153, 0,248, 0,198,246,237,219, 87, 75, 41,165,125,251,246,213, 2, 24, 91,252, -254, 12,129, 64,112, 30, 64, 95, 91,182, 19, 0,175, 65,131, 6,133, 37,145, 44, 0,215, 26, 52,104, 80,216,180,105, 83,218,180, -105, 83, 90,167, 78, 29, 53,128,177,182,222,208, 2, 2, 2, 98,117, 58,221, 11, 3,152,159,159, 79,211,210,210,104, 92, 92, 28, -141,142,142,166,183,110,221,162,137,137,137,116,255,254,253, 86, 39, 39,167,112,118, 51,103,154, 76,147,105, 50,163,245,250,140, - 86,217,229, 31, 70,235,196,137, 19,180,204,151,190,185,125,251,118,228,156, 57,115, 34,203, 58,181,178,226,243,230,205, 43,137, -122, 45,175,228,225,191, 45, 54, 54,150,142, 29, 59,150, 6, 5, 5,209,160,160, 32, 58,110,220, 56,170, 82,169,168,230,233, 3, -122,161, 17,232,173,183, 91, 81, 74, 41, 85, 63,138,162, 23, 26,129, 70,142,233, 64,239,222,189, 75,107,215,174,125,182,146,223, - 63,254,199, 31,127, 40,119,239,222,157, 1, 96, 87,177,193,106, 7, 96,189, 68, 34,217, 94,220, 92, 88, 23,128,115, 96, 96, 96, -174, 86,171,213, 12, 29, 58, 84, 3,192,183, 18,205,174, 65, 65, 65,207,182,109,219, 70,179,178,178,104,110,110, 46, 93,217,177, - 33,165, 63,125, 73,151,180,170,203,109,217,178,197, 48,115,230,204, 66, 23, 23,151, 19, 0,124,134, 14, 29,106,161,148,210, 46, - 93,186,100,150,167,231,228,228,212,247,201,147, 39, 11,244,122,253,130,252,252,252, 5,185,185,185, 11,142, 29, 57,178,160, 79, -147,134, 99, 85, 95, 79,107,113,100,212, 27, 45,222,172,229, 60,100, 77,239,214, 83, 83,231, 78, 28, 58,175, 67,200, 35,253,138, -143, 47, 13,247,247,252,182, 38, 5,238,238,238,158,110, 48, 24, 40,128,127, 44,207,158, 61,163,174,174,174,201, 85,105,184,184, -184,204,155, 49,114,132,117,112,221, 90,244,217,186,249,212,124,110, 15, 53,159,220, 65,159,126,243, 41, 29,224,229, 86,208, 78, -196,155, 99,235,246,120,121,121,157,187,113,227,198,223,140, 86, 94, 94, 94,185, 70,171,160,160, 32,210,104, 52, 70, 54,104,208, -224,244,203,158,248,237,236, 80,191,171,132,127, 43,106,108,103,170,156,214,131,246, 85, 8, 19, 95,226, 34, 26, 9, 32, 2,192, -152,106,126,143, 7, 96, 69,137,161,250,230,155,111, 40,165,148, 54,104,208,160, 16, 0,239, 37,182, 71, 17, 28, 28, 28, 63,113, -226, 68, 75,163, 70,141,178, 58,118,236,152,127,243,230, 77,122,249,242,101,122,242,228, 73,122,240,224, 65,250,224,193, 3,154, -154,154, 74, 99, 99, 99,105, 88, 88, 88, 62,128,174,236,134,200, 22,182,176,229,191,121, 41,235, 69,254, 53,189, 14,195,195,195, -105, 88, 88, 24, 9, 15, 15,167,197,201,186, 10, 0,226, 86,173, 90, 41, 87,172, 88,177,186,120, 14, 31,210, 84, 64,134,247,148, - 10,239,246,148, 10,239, 54, 21,144,225,132, 16, 66, 41,221,186,116,233,210,197, 77,155, 54, 77, 7, 32, 33,132,120, 85,144, 11, -214,217,213,213, 21,201,201,201, 80, 40, 20, 80, 40, 20, 72, 78, 78, 6,165, 20, 22, 10,152, 41, 96, 48,153,160,211,233,160,231, - 40,116, 28, 80,160,209,192,203,203, 11, 38,147,169,126, 5, 73,197,205,222,126,251,237,250,161,161,161,202, 89,179,102,165, 1, -152, 8, 96,251,132, 9, 19,206, 93,187,118, 45, 84,163,209,228, 70, 71, 71,235,155, 52,105,210, 23,128,215,147, 39, 79,222,217, -184,113, 35,198,142, 29, 11, 0, 93, 43,208,108, 18, 22, 22,118,242,193,131, 7,245,199,140, 25,131,136,136, 8,172, 92,185, 18, -217,217,217, 20, 0, 12, 6, 3,181, 90,173,166, 14, 29, 58,152,214,173, 91,215,166, 75,151, 46, 55,252,253,253,249, 0, 16, 31, - 31,255,180, 2,205,134,126,126,126, 48, 24, 12, 80, 42,149,120,240,224, 1, 28, 20, 10,220, 75,203,246,236,182,102, 75,206, 23, - 71,206, 9, 71,182, 9,117,249,228,141,142,134,101,103, 35, 2, 67,124, 60, 61,141, 38,179, 87,108,122,102, 90, 77,242,238, 68, - 34, 81,114,118,118, 54,140, 70, 35,116, 58, 29, 10, 10, 10,144,147,147,131,236,236,108,164,165,165, 65, 36, 18, 61,171, 50,145, - 62, 55,247, 74,252, 31,151,201,254,239,191, 65,125, 75, 46, 4,135,214, 67,112,244, 59, 4, 24,149,248, 97,254, 20, 7,163,171, -251, 66,133,163, 99,158,179,179,243, 86, 66, 72,131,170,244, 90,180,104,129,156,156, 28,228,228,228,192,213,213, 21,206,206,206, -112,118,118, 70,126,126, 62, 84, 42, 21, 10, 10, 10, 16, 24, 24,136,102,205,154, 97,231,206,157,175, 36,255,240,186,129,198, 89, - 96,157,118, 46, 38, 13, 34,153, 12,254,206,114,191, 54, 14,196,165,146, 36,245, 30, 34,145,232,128,171,171,235, 89, 66,200, 7, -132, 16, 25, 33,228, 3, 87, 87,215,179, 66,161,112, 16,128, 37,148,210,221,213,220,140,101, 11, 23, 46,156,253,228,201, 19,233, -221,187,119, 49,107,214, 44, 44, 90,180, 8, 79,159, 62,221, 68, 41,229,138,127,247,125, 55, 55,183, 19,124, 62,255, 71, 66, 72, - 63, 66, 72, 95, 31, 31,159,158, 85,232, 14,154, 57,115,166,190,101,203,150,177,143, 30, 61, 26,244,199, 31,127,180,250,244,211, - 79, 85, 73, 73, 73,136,141,141,133,183,183, 55,234,212,169, 3,141, 70,131,188,188, 60, 12, 26, 52, 72,225,232,232, 56,138,101, -165, 50, 24,140,255, 86,202,122,145,255, 75,148, 29, 71,171,244,122,185,189, 14,165, 82,233,194,200,200,200,246, 77,155, 54, 21, - 0,216, 15, 0,161,124, 12, 27,212,161,249,246, 35, 91,191,105,122,120,221,252,166,125,154, 6,110, 15,229,163,164, 23,219,137, - 86,173, 90, 57, 71, 70, 70,118,176,183,183,255,168,162,188,123, 0,112,118,118,134, 66,161,128,147,147, 19,156,157,157,193,113, - 28, 52, 90, 61, 10,173,128, 90,111,132, 74,165,130,186,120, 93, 99, 48,161,176,176,240,197,119,203,161,219,196,137, 19,149, 27, - 55,110,204, 74, 79, 79,255, 6, 64,147,177, 99,199, 14,220,176, 97, 3, 46, 94,188,168,239, 23, 20,224,186,180,115,243,197, 33, -233, 79, 23, 4, 9, 49, 9,192,149, 43, 87,174,160, 67,135, 14, 32,132,140, 40, 79, 80, 34,145,124,183,119,239, 94, 73,116,116, - 52, 2, 2, 2,162, 71,140, 24, 49,252,155,111,190,169, 47,211,228,254, 14, 0,150,156,140,232, 15, 63,252,240,203,165, 75,151, - 42,149, 74,165, 73,171,213,122, 12, 24, 48, 0,201,201,201, 72, 77, 77,189, 86,129,201,140,141,138,138,162, 42,149, 10,113,113, -113,136,138,138,146,124,249,229,151,109,172, 60,222,192, 20, 56,188, 55,182, 99,171, 54, 99,218, 53,199,238,235,119, 69, 87, 99, -226,157, 90,213,173,229,124,231,121,122, 61, 51,193,179,154, 20,184, 90,173, 94,191,120,241, 98,141, 70,163, 65, 74, 74, 10,238, -223,191,143, 71,143, 30, 33, 49, 49, 17, 43, 87,174,212,228,230,230,110,168, 74,195, 71, 44,248,236,219, 79, 39, 16,193,195,107, -192,221,203,128, 86, 13,232, 52, 48, 60,142,196,207,143, 51,176,249,208,111,118, 73,201,201, 78,251,246,237,155,232,235,235, 27, - 73, 8, 9,172,170,211, 5, 0,240,120,188,178, 39, 39,120, 60,158, 26, 64,134, 76, 38,123,238,224,224,240,156,199,227,101, 80, - 74, 11, 95,197,201,207,179,192, 4, 62, 31,176,147,128, 39, 20, 84,118,145, 12, 31, 49, 98,196,222,231,207,159,247,137,139,139, -107,191, 97,195,134,197, 98,177,248,222,134, 13, 27, 22,199,197,197,181,127,254,252,121,159, 17, 35, 70,236, 37,132,188, 91,157, -223,111,208,160,193,135, 11, 22, 44,192,202,149, 43,209,172, 89, 51, 4, 6, 6,106, 23, 46, 92,184, 30,192,124, 66,200, 71,129, -129,129,191,127,248,225,135,227,179,178,178,188, 82, 82, 82,154,109,218,180,105,202,250,245,235, 91,167,165,165,137,171,144,238, -212,187,119,111,156, 58,117, 10, 0,210, 41,165,113, 57, 57, 57,150,180,180, 52, 4, 7, 7,163, 77,155, 54,208,104, 52,208,104, - 52,200,207,207,135,159,159, 31, 56,142,107,207,110,229, 12, 6,131,241,255,207,112, 85,104,180,196, 98,177,115,139, 22, 45,224, -239,239,239, 92,156,139, 5, 87, 59,193,220, 79, 38,142,148,202, 35, 79,131, 68, 93,192,136,206,141,165,174,118,130,185,197, 95, - 17,248,249,249,217,183,104,209, 2, 50,153,172, 86, 5,191, 31,145,145,145,129, 22, 45, 90,192,201,201, 9, 10,133, 2, 45, 90, -180,128,201,100,130, 74,173, 70,161, 21,208,154, 57,168, 84, 42,228, 42, 51,161,181, 2, 22, 7, 87, 36, 38, 38,130,207,231,199, - 87,160,233, 29, 16, 16,160,188,119,239,158, 18,192, 21, 0, 83, 23, 45, 90,132, 57,115,230,224,171,175,190,218, 43, 77, 79,232, -189,247,212, 81,215, 95, 23,190,239, 30,104, 71, 70, 2, 48, 61,127,254, 28, 78, 78, 78,144,201,100,229, 26,131, 46, 93,186,180, -148,201,100,216,177, 99, 7, 77, 73, 73,233, 72, 41, 61, 72, 41,141, 39,164,200,236, 73,120, 80, 81, 74,215, 71, 70, 70,182,253, -242,203, 47, 99,122,245,234, 37,108,215,174, 29,150, 44, 89, 2, 0, 39,202,211,204,207,207,255,243,221,119,223, 53, 94,186,116, - 9,143, 31, 63,150, 29, 57,114,100,216,146, 37, 75, 26, 39, 37, 37,217, 31, 63,121,250,205, 93,207, 11,134,125,115,246,170,120, -233,153,136, 63,221, 28,101, 33,245,220, 92,254, 31,123,223, 29, 22,197,213,190,125,159,221,217, 2,236,210, 97,233,160,162,136, - 5, 84,236, 93, 99,143, 29,177,151,216, 99,121, 53, 26, 53,182,128, 24, 53, 70, 99,108, 49,209,196, 22,209,136, 5,141, 98, 39, -246,196,142,162, 32, 10, 34, 8, 72, 89,218,238,178,203, 22,182,156,239, 15,129,151, 24,202, 98,146,223,247, 38,153,251,186,230, -162,204,204, 61,231,156, 57,103,230,158,231, 60,231,121, 16,251,234, 53,223,200,197,221,218,110,106, 7, 62, 51,173,167, 37, 47, -182,155, 5, 55,187,167, 37,239, 65, 59, 62, 51, 85,161, 80, 68,158, 58,117,234,194,194,133, 11,149, 82,169, 20,214,214,214, 40, - 40, 40,192,186,117,235,148,177,177,177,199,181, 90,237,233,218,120,141, 38,218,218,171,158, 55,240, 34,174,226,127,165, 38,138, -187, 58, 62, 6,125, 56, 31,254, 77,154, 64,167,211, 33, 32, 32,128,132,135,135,139,108,109,109, 23,215, 42,122, 56,191,235,110, - 6, 66, 72, 14,165,244,181, 82,169,204,180,180,180,124,197,231,243, 95, 21, 22, 22,102, 82, 74,115,255,132, 14,207,161, 28,124, -220, 41,160, 17, 32,180,196,171, 2,101,214,221, 98, 90, 88,213,177,214,214,214, 83,119,236,216, 97,177,103,207, 30,253,220,185, -115,181, 51,103,206,228,169,213,106,201,204,153, 51,121,115,231,206,213,238,217,179, 71,191, 99,199, 14, 11,177, 88, 28,252, 46, -101,209,235,245,136,139,139,251, 34, 41, 41, 73, 68, 41,253, 8,192,252, 85,171, 86, 77, 74, 74, 74,178,216,190,125, 59,142, 29, - 59,134, 99,199,142, 97,232,208,161,152, 55,111, 30,194,194,194,106,170,151, 85,139, 22, 45,130, 28, 29, 29,113,237,218,181, 44, - 74,233, 43, 66, 72,107,177, 88,108, 61,116,232, 80,244,235,215, 15, 26,141, 6,165,165,165, 21, 66,139,203,229,194,206,206,206, -145,125, 12,178, 96,193,130,197, 95, 43,178,222, 22, 91, 12, 0,148,155,234, 6, 14, 28, 72,106,122, 49, 26,139,164,144,169, 74, -144, 38, 47, 65,122,145,233, 55,251, 76, 38, 83,141, 5,200,202,202, 58,125,235,214,173,169, 65, 65, 65, 76, 86,214,155, 25,177, -160,160, 32,148,148,148, 32,235,209, 29,168, 76,128,168, 97, 32, 84, 42, 21,138,158, 62,132,184, 69, 71, 56, 14, 28,143,175,182, -111,215, 22, 20, 20,236,172,138, 83, 32, 16,240, 60, 61, 61,243, 94,190,124,105, 0, 80,104,107,107,219,215,219,219, 27, 87,175, - 94, 5,128,131, 20,216,136,216, 43,192,181, 40,208, 55, 38, 21,177,143,143, 15,164, 82, 41,148, 74,229,213,170, 56,111,221,186, -149,164,215,235, 3,134, 12, 25, 66,126,248,225,135, 35,132,144, 80, 0,143,151,187,130,251, 40, 35, 23, 42, 35, 44, 8, 33,125, -236,237,237, 63, 10, 11, 11,235, 53,119,238, 92,156, 58,117, 10, 23, 47, 94, 44,197, 27, 95,176, 91, 85, 88,115,228,132,144, 93, -139, 22, 45,234,192,225,112, 62,188,116,233,146,193,207,207, 79, 81, 90, 90,106,108,236,239,207, 9, 13, 95,205,140, 99,206, 5, - 0, 0, 32, 0, 73, 68, 65, 84,159,243,225, 12,187,130, 18, 36,244,107,236,214,137, 16, 32,225,181,244, 85, 82, 49, 45,168,169, - 77,187, 11,153,232,209, 93, 91,116,155, 58,122,176, 88,212,176, 25, 84, 79,238,184,238, 58,122,246,171, 30,150,204,160, 92,181, - 97,168,173,173,109,200,213,171, 87,231,232,116,186, 6, 66,161,240,133, 76, 38,219, 82, 92, 92, 92,171,200, 98, 24,102, 96,160, -151,167,189,172,176, 16, 22,101,150, 40,133,222,132,124,173, 1,137,118,126, 24,235,233, 85, 49, 13,154,147,147, 3, 87, 87, 87, - 98, 52, 26, 7,215,196,121,241,226, 69, 12, 26, 52,168, 92,120,130, 16, 2, 66, 72,190,191,191,127,174, 80, 40, 44,224,243,249, -138,141, 27, 55,106, 52, 26, 13, 24,134,177, 48, 26,141,220, 63,210,225,219,139,136,164,155, 37,249,102,230,144,158,189, 91, 54, -107, 66,175,223,123, 68,138, 74, 52,251,106,176, 2,126,221,168, 81, 35,166,176,176,240, 52,128, 68,189, 94,127,232,200,145, 35, - 22, 19, 38, 76,208, 28, 61,122,116, 28, 0,223, 77,155, 54,133, 40,149,202,239,234, 82,142,228,228,228,175,215,174, 93,251,201, -138, 21, 43,112,224,192,129,185, 0,150,150, 89,186,134,134,133,133, 97,227,198,141, 56,112,224,128, 41, 49, 49,241,172,201,100, - 74, 94,184,112, 97, 11, 23, 23,151,252,236,236,236,228,240,240,240,234,104,219,244,239,223, 95,123,243,230, 77, 65,113,113,241, - 13, 66,200, 71,179,102,205,154,214,190,125,123,197,232,209,163,197,133,133,133, 50, 43, 43, 43,193,238,221,187,237, 25,134,129, - 74,165, 2, 33, 4,197,197,197, 58,246, 81,200,130, 5,139,255, 85, 84,167, 69,254, 14,168, 72,183, 83,213, 59,181,170, 10,150, -148,148,228,166,167,167, 55,121,253,250,181, 1,128, 1, 0, 10,116,134,207,215,238,142,218, 19,220,161,145, 40, 91,175,199,201, -123,241, 37, 5, 58,195,231,229,150,137,215,175, 95, 23,191,122,245,202, 90,173, 86, 43,171,185,214,175,223,124,243,141,250,202, -149, 43,214, 41, 41, 41, 48, 26,141,104,221,186, 53,158, 63,127,142,162,196, 56,136,154,180,134,168,251, 32,196, 63,184,135,216, -139, 49, 72, 85,234, 12,207, 86,174,149, 43, 85,170, 48,157, 78,119,178, 42, 66, 30,143, 87,248,166,126,212, 8, 0, 10,133,226, -177, 82,169,236,234,226,226,130,132,132, 4,145,202,136,121, 33,203,190,218, 70, 41, 53,242,223,172, 20, 91, 48,122,244,104,220, -191,127, 31, 0,238, 87,197,169, 80, 40,230, 78,159, 62,253,202,254,253,251,153,148,148,148,126,123,246,236,233,247,236,217, 51, - 74, 10,211,141, 55, 75,120,240,157, 52,175,237,183, 62,254, 23, 7, 13, 26, 4, 55, 55, 55,236,222,189, 27, 91,182,108,209,207, -158, 61, 59,105,203,150, 45,109, 1, 28,170,230, 38,200, 1,156,119,114,114,154,211,188,121,243, 98,149, 74,133,130,130, 2,100, -101,101,193,193,209,145, 99, 0,167,147,179,157,221,161,211, 57,197, 34,230,252,109,220,201,204,174,209,154,213,145,207, 76, 28, -211,163, 85,183,255,172, 88, 38,198,205,147, 32,211,195, 64,247,124,134,249, 31,132, 88,107,180,135,186,183, 97,152, 9,114,131, - 33, 2,192,177, 58, 42,242,254, 93,187,118, 61,188,118,237, 90,203,229, 27,214, 98, 83, 19, 15, 24, 10, 10,144,167, 53, 34, 95, -107,128,162, 40, 17, 9, 9,241,112,116,116, 66,106,106, 42, 52, 26, 13,158, 62,125, 74,185, 92,238,233,218, 44, 58,149,174, 81, - 62, 93, 40, 19, 10,133, 5, 60, 30, 47,151, 97,152,194,148,148, 20,149, 70,163, 1,135,195, 17, 25,141, 70, 75, 51,202,234,233, -228,228,180, 16, 64, 48,128, 83,197,249,249, 91,131,120,176, 3,131, 30, 13, 36,142, 3, 86,206,156,224,228,237, 46,145,165, 36, -189,208,239,188,240, 75,190, 70,139,207,107, 24, 36,209,149, 45,146,132,144,249, 71,143, 30,157, 6, 96,111, 89,222,173, 24, 0, -223,190,195,248, 91,121,252,248,241, 79, 86,172, 88, 1, 75, 75,203,138,224,169,150,150,150, 22, 0,240,227,143, 63, 34, 33, 33, -161,125,185,191, 22,128,195,102,112,250, 6, 6, 6,166, 68, 69, 69, 9, 0,184,207,154, 53,171,227,182,109,219,240,193, 7, 31, -228,197,199,199,119,120, 99,129, 37,190, 31,126,248,225,221, 3, 7, 14,216,155, 76, 38, 20, 21, 21, 65,167,211,189,100, 31,229, - 44, 88,176, 96,197,214, 95, 98,205, 10,162,148,198,150, 5,246, 30, 8,224, 12,165, 52,251, 55, 66,171,188,130, 0,160,209,104, -190,246,241,241,177, 5,224, 5, 96, 16,128, 83,143,141, 56,134,103,105,136, 75,205, 92, 86, 46,188, 30, 27, 43, 94,226,163,238, -222,189,171,171, 87,175,222, 35, 0,159, 85,243, 34, 83, 56, 57, 57,173, 89,184,112,225,186, 53,107,214, 48, 12,195,224,202,149, - 43,184,117,225,140,233,233,141, 59, 36, 77,109, 84, 43,238, 45,122,205, 80,227,109, 23,117,225,147,135, 37, 56, 78, 41,205,172, -169, 98, 42,149, 42, 61, 57, 57, 89,208,188,121,115,227,195,135, 15,157, 40,165, 39,206,158, 61,219,117,201,146, 37,184,122,245, -234,161, 75, 26,227, 88, 74, 77, 71, 8, 33, 12,128,177,131, 7, 15,254, 40, 36, 36, 4, 45, 91,182, 44, 5,112,160,154,114,222, - 36,132,140,205,200,200,216,181,120,241, 98,187,197,139, 23,131,195,225,144,202,109,149,159,159,143, 71,143, 30, 97,244,232,209, -242, 95,126,249,101, 94,175, 94,189,166,116,233,210, 5,231,206,157,115, 55,227,102,252,250,244,233,211,225,182,182,182, 36, 57, - 57, 25, 10,133, 2, 55,111,222,228,249,248,248,116, 58,114,228,136,176, 65,131, 6,136,127,242, 4,103,199,142, 29, 72, 8,241, -161,148,190,170,138,199,146, 71,230, 76, 26, 57, 88,172,189,121, 26,136,189, 14, 0, 80, 42,138,161, 78,141, 67, 72,187, 70, 54, - 87,159,166,205,194,155, 85,152,117,130,131,131,195,252, 77,155, 54,137,252,252,252,240,241,218, 13, 88,184, 98, 9, 62,148,248, - 64,241, 58, 29,249, 70, 64, 96,101,133, 53, 43, 87, 96,240,200,209,144, 72, 36,120,242,228, 9,221,189,123,183, 74, 46,151,111, - 52, 71,104,113,185, 92, 16, 66, 0, 64, 37,151,203,149, 2,129, 64,206, 48, 76,129,209,104,204,141,222,190,181, 53,167, 32,119, - 50, 33,132,107,105,226, 68,151, 45,182,168,210, 63,207,142, 16,159,134,190,190, 79,190,223,189, 91,212,190,125,123,114,239,222, -189, 57,179,102, 76,159, 22, 28, 88,255,236,176,222,221,224,234,230,170, 53,149,234,100,103, 79, 69,235,191, 61,122,246,154,142, -152, 22, 63,160, 84, 93,135,175,147,195,149, 69, 15, 33,100, 12,128,145, 0,162, 40,165, 7, 9, 33,147, 0, 12, 3,112,188, 58, - 7,121, 66, 8, 7,192,119, 35, 70,188, 73, 38,160, 86,171, 75,202,255,223,162, 69,139,202,215, 50,213,229, 30, 89, 89, 89, 89, - 91, 88, 88,188, 56,119,238,156,229,232,209,163,237,215,173, 91,247,250,131, 15, 62,240, 56,116,232,208,215, 0, 82, 9, 33,254, - 0, 26,170, 84, 42, 35,135,195,129,191,191, 63,118,236,216,161, 52, 26,141,123,217,199, 56, 11, 22, 44,254, 14, 98,235,111, 88, -236, 32, 0,177, 0, 6,150, 45, 32,156, 1,160,230,164,210, 0,214,198,197,197,149,199,208,154, 85, 83,120,135,165, 75,151, 62, -184,127,255,254, 3, 0,235,107, 91,230,200, 48,204,137,217,179,103, 83, 23, 23, 23,165, 68, 34, 57,193,227,114,167,121, 89, 34, - 8,239,176,212, 29, 64,215,136,136,136,161, 95,127,253,245, 64, 0,237, 1,240, 60, 60, 60,178,114,114,114,148,191,252,242,139, -178,115,231,206, 74, 39, 39, 39,105, 96, 96,160,114,211,166, 77, 74,189, 94,175, 92,184,112,161, 18,111,197,251,170,134,219, 2, -192, 28,129, 64,112,162,105,211,166,113, 43,135,188,167,223, 48,111, 26,157,212,200, 89, 9,224,107, 0,179, 1,216, 1,224,133, -132,132,252,252,244,233,211, 11,129,129,129,187,204,224,117,111,222,188,249,229,195,135, 15,223,143,138,138,122,176,120,241,226, -251,142,142,142,153, 73, 73, 73, 38,141, 70, 67,139,138,138,168, 76, 38,163,103,206,156, 49, 58, 56, 56,108,175,142,167,171,144, -155, 77, 47, 30,172, 50,132, 67,198,138,241,180,179,128,243,250, 93,150,161,138, 68,162,194,130,130, 2,154,147,147, 67, 83, 82, - 82,232,241,227,199,105,255, 78,237,104,228,135,193,244,224,212,161,116, 99,255,118,180,189,181,133,202,213, 90,124,223,218,218, - 90,106,103,103,247, 29,128, 70,181,133,119,208,106,181, 21,225, 27, 60, 61, 61, 31,248,251,251, 71, 5, 6, 6,126,117,234,212, -169,249,155, 55,111, 30,218,179,190,207, 39,235,250,117, 82,151,196, 28,165,197, 71,190,166, 75, 91,251,105, 2,185, 24, 89,109, -184, 16, 71,135,136,107, 87,175,154,202, 3,116, 26, 12, 6,122,242,196, 9, 58,106, 64,159, 56,249,249, 31,191,191, 17, 54,247, -240,194,214,126, 39, 59, 91, 96, 12,222, 10, 84, 90,213, 22, 36,134, 99, 55, 27,206,142,247,189, 29,178,187,218,114,190,238, 96, - 13,251, 74,247,108,148,159,159, 95, 10,165, 52,187, 73,147, 38, 41, 0, 14, 54,105,210,164,242,223,147,107, 11, 78,186,106,213, - 42,138, 55, 89, 20, 56, 0, 66,215,174, 93,251,128, 82,250,160, 81,163, 70, 55, 41,165,104, 41,130, 83,119, 91,206,247, 67,124, - 93, 10,186,219,114,190,111, 41,250,125, 52,119, 74, 41,124,248,104,220,213,217,234,198,208, 70,110,197, 61, 60,108,175, 31,220, -183,103,195,251,239,191,191, 27,192,118, 0,159, 57, 58, 58,222, 24, 51,102, 76,194,129, 3, 7, 18, 54,109,218, 84,154,148,148, - 68,167, 76,153,162, 18, 10,133,159,177, 75,199,217,141,221,216,141,221,254,242,200,240,110,117, 9, 88, 58,248,147, 79, 62,121, - 64, 41, 45,143,165, 53,161,138, 99,134,172, 88,177,226, 1,165,180, 60, 58,124,239,218, 2,154, 1, 88,181, 99,199, 14, 42, 20, - 10,191,255,163, 65,210, 0,184, 14, 27, 54,172,131, 66,161,104,235,226,226,210,182,204,234,228,229,228,228,148,114,232,208, 33, -165, 90,173, 86, 82, 74,149, 6,131, 65,121,255,254,125,101,143, 30, 61,148,120, 19, 2,194,172, 8,225,149,183,229,174,184,121, -111,229, 84,186,220, 21, 55,223, 58,119,252,222,189,123,207,189,124,249,242,180,141,141,205, 18, 51, 3, 87,122, 57, 59, 59,135, - 58, 56, 56, 92,112,114,114, 90,238,224,224,144, 93, 90, 90, 74,139,138,138,232,243,231,207,233,213,171, 87,233,173, 91,183,168, -131,131, 67,102,117,229,236,101,201,220, 46,218, 48,135,154,246,174,165,186,109,203, 40, 0, 42,219,188,148,230,127, 19, 78,239, - 77,239, 71,123, 88,112,127,125,151,160,115,118,118,118,223,157, 56,113,194,148,156,156, 76,163,163,163,233,153, 51,103,232,188, -121,243,104, 99,119, 55,109, 7, 1, 39,183,171,144,185,240, 46, 1, 75,181, 90,237, 3,133, 66,241, 64,169, 84, 62,104,218,180, -233,131,118,237,218, 69,117,232,208,225,171,163, 71,143,206, 95,183,110,221,208, 94,214,194,231, 37, 49, 71, 41, 93, 60,128,210, - 57, 93,232,139,105, 61,232,123,150,204,163,106, 57, 93, 92, 50,203,163,181,171, 84, 42,122,253,250,117,122,249,242,101,234,234, -228,164,232,102,201,157,209, 89,136,238,157,109, 96,103,110, 57,123,218,114,246,221,254,230,115,163,250,220, 1,250,227,164, 1, -134, 30,118,156, 29,149,142,139,164,148,102,143, 24, 49, 34,149, 82,154,125,252,248,241, 12, 74,105,118,112,112,112,106,153,105, -248,112, 85,156,111, 5, 39,221, 91, 38,178,230,172, 90,181,234, 1,165,244,193,170, 85,171, 30, 0,111,130,168,118,183,229,236, -191,179,107,163, 73,123,102, 63, 61, 58,101,160,177,187, 45,103,127,149,229,180, 99, 78,199,238,221, 76,117, 23, 14,210, 19,243, -198, 25,187,184,218, 92,243,243,243,219, 56,127,254,252,168, 91,183,110, 61, 54, 26,141, 9, 41, 41, 41, 9,219,183,111, 79,232, -216,177,227, 77, 71, 71,199, 56,129, 64, 48,155, 13,138,200,114,178,156, 44, 39, 27,176,244,255,207,198,212, 48,117,114,154, 16, - 34,162,148, 46, 12, 9, 9,193,250,245,235, 71, 5, 4, 4,140,241,240,240,112, 6,128,172,172,172, 18, 0,138,144,144, 16,132, -134,134, 98,195,134, 13, 95,149,249,178,252, 95, 58,159,229, 16, 66, 60,231,206,157, 43, 93,183,110,157,105,202,148, 41, 77, 40, -165, 79, 8, 33,141,199,141, 27, 55,135, 97,152, 16, 31, 31,159,192,236,236,236, 60,181, 90,125, 16,192,174,242, 57,211,186, 66, -200,129,177, 77, 61, 55, 92,224,192, 88,105,106,104, 64,104,104,232,232,224,224,224,210,205,155, 55, 27, 20, 10,197, 41, 51,203, -157, 1, 96,117,249,223,142,142,142,174,143, 30, 61,154, 45,145, 72, 56, 41, 41, 41,208,106,181, 72, 78, 78, 54, 1,248,169, 58, - 14,165,129,110,253,246,248, 37,255,133,227, 7,217,148, 36, 62, 4,159,203,133,158, 39, 64,206,237, 11,216,123, 61, 81,161, 42, -197,182,119,169,167, 76, 38,251,114,222,188,121,227,150, 44, 89, 98,225,227,227, 67,126,253,245, 87, 28, 57,114, 68, 43,149, 74, -251, 83, 74,175,189,235,189, 50,153, 76, 16, 8, 4, 0,128,165, 75,151,130,195,225,240,164, 82,169,128, 16, 34, 36,132, 88, 17, - 66,184,250,151, 9, 48, 41,138,144, 91, 36, 67, 70,174,172, 70, 62,163,201,116,228,206,157, 59, 11, 90,181,106,197,185,119,239, - 30,242,242,242,144,156,156, 76,141,148, 30,190, 86, 98,248,174,174,229,179,114,112, 28,214,210, 94,200, 17,236, 11, 69, 55, 29, -135,187,211,132, 17, 0,230,148,237,222, 75, 8,225, 3, 40,104,218,180,105,207,167, 79,159, 90, 54,109,218, 84,157,152,152,120, -142, 16,226, 1, 96,127,149,211,187,150,150,249, 0,242,143, 31, 63, 14, 0,211, 41,165, 38, 66, 72,235,176,176,176,236,235,215, -175, 99,213,170, 85,185, 0,118, 0,128,216,222,113, 72,160, 45,159, 8,126, 88,133,142, 90,112,182,153,104,149,139, 11,196, 18, -151,247,154,139, 56,224,237,249, 20,109, 93,253, 57, 2, 67,105, 64,120,120,248,117,165, 82,169,141,140,140,212, 77,158, 60,153, -155,148,148,116, 23,192,141,178,105, 77, 3, 59, 17,193,130, 5, 11, 22,127,185,143,214,219, 97, 29,170,246,209,170, 66, 16,252, - 72, 8,201,223,176, 97,195,123, 0,108,142, 30, 61,218,166,113,227,198, 0,128,231,207,159, 91,249,251,251, 63,107,209,162,197, - 83, 0,183, 41,165,167,205, 44, 79,249,131,223,244, 39,213, 47,126,201,146, 37,228,192,129, 3, 6,224,141, 8, 42,123,185,108, - 5,176,181, 38, 63,159, 63, 10, 63, 63,191, 62,159,126,250,169,110,207,158, 61,198,207, 62,251,236, 20,165, 52,233, 93,120, 10, - 11, 11, 55, 77,152, 48, 97, 92, 88, 88,152,173,181,181, 53,137,139,139, 51,237,221,187, 87, 81, 88, 88,184,169,186,115,238,232, - 12,145,221,133, 76,176, 76,117,180,207,168,160,122,214, 79,231, 14,196,243, 59, 55,112,240, 90, 66,113, 82,161,250,226, 61,131, -225,200, 59,138,215,100, 66, 72,203,208,208,208,165,165,165,165,193, 60, 30,239,174, 66,161, 8,167,148,254,250,174,237,164,215, -235,115, 27, 52,104,240,246,117,244, 38,147,137, 82, 74,121, 6,131, 65,228, 80,106, 58, 19,182,101,207,135,147,253,109,133,249, -249, 50,252,144,164,208, 86, 90,108,241, 59,228,229,229,125, 53,109,218,180, 15,194,194,194,236,109,108,108, 72,124,124, 60,141, -140,140, 84,230, 21, 20,172,127,151, 50,150, 20, 21, 94,140, 62,118, 52,164,139,206, 64, 34, 82,139, 41,195, 37,231, 42,149,245, - 18,128, 75,101,131,105, 60, 33,100, 4,128,147,148,210, 31,106,228, 44, 41,185, 8, 64, 48, 98,196, 8,196,197,197,141, 2,240, - 35,128,195,171, 87,175,238, 16, 26, 26,138,240,240,112,132,133,133,245, 1,112,161,184,168,224, 76,212,225,131, 99,123,232,245, -156,136,180, 98, 19,151, 67,206, 86,201,153,159,123,233,220,165,152, 33,109,109,220,201,119, 23,110,152, 74, 76,244,225,164, 73, -147,138,116, 58,221, 5, 0,219, 0,196, 81, 74,217,213,133, 44, 88,176, 96,241,127,107,248,249,174, 10,225,245, 93,173, 66,171, -236,228, 24, 0, 49,132, 16,215,206,157, 59,175,181,181,181, 21, 25,141, 70, 20, 22, 22,190, 6,176,165,204, 58, 83, 23, 68,202, -229,242,197, 66,161,112,231,159, 84, 57, 13, 33, 68,210,180,105, 83, 30, 0,109, 21,251,255, 28,145, 69,113, 60, 57, 41,217, 6, - 20,199,203,255,149,148,148,116, 56, 48, 48,112,104, 98, 98,226, 47,148,210,179,127,160, 14,175, 8, 33,173,230,205,155,247, 49, -128,161, 0,126, 42, 44, 44,220, 84,157, 35,124, 57,174,105, 13, 33,109, 25,102,220,195,180,156,217, 58, 19,173, 47,224,112, 94, -170, 74,233, 55,119, 13,134, 31,255, 96,155, 38, 3,152, 82,182,253, 97,228,231,231,215, 26,228,147, 16, 66,174,189,200,186,157, -144, 33,173,106,177, 69, 85,101,204, 38,132,180, 92,184,112,225, 66,147,201, 52,146,195,225,156,200,207,207,175,181,205,170,181, -228,233,140, 11,118, 94,185,199,223, 98, 52,245, 22,114, 56, 23,148,122,227,178,106,174,123, 16,128, 89,209,225, 95,188,120,241, -125,120,120,120,243,176,176, 48,124,251,237,183,229,203, 46, 99,194,194,194,164, 70,163,209, 43, 60, 60, 28,187,118,237, 50, 0, -128, 86,111, 90,180,231,250, 67,206, 78,147,105, 0,143,195, 57,167,213,155, 22, 85, 41,202, 53,134, 57,219,162,206,151,150,154, - 76,125,184, 32,231,178,117,166,149, 90, 45, 77, 99, 31,115, 44, 88,176, 96,241,191, 9,198,220, 3, 41,165, 57,127,198,139,151, - 82,154, 2,192,102,249,242,229,127,166,146,148,254,213, 13,245,105, 22,253, 26,192,215,159,126, 17, 89,249,186,119,129,218,131, -138,154, 43,182, 0,252,167,108, 51, 27,247, 12,134, 67,168, 38,164,196,223,236,107,128, 2, 56, 90,182,153,123, 78, 38,222,228, -178, 92,240, 71,175,255,176,132,102,227,205, 42,194, 63,179, 78,177,120,179, 10, 5,175, 95,191,174, 92,207,199,101, 27,202, 99, -202,221, 81, 81, 41,128,113,102,150,115, 20,251,232, 98,193,130, 5,139,255, 29, 84, 53,117, 88,103,161,197,130, 5, 11, 22, 44, - 88,176, 96,193,162,202, 15,235,106,125,131, 9,128,222,213,156,100,182, 99, 59, 33,164,247, 59, 20, 42,134,229,100, 57, 89, 78, -150,147,229,100, 57, 89,206,127, 23,103,109,220,255,215, 11,235,254, 47, 84,216, 95, 25, 87,130, 93,250,202,114,178,156, 44, 39, -203,201,114,178,156, 44,231,191,118,227,176, 6, 63, 22, 44, 88,176, 96,193,130, 5,139,119, 7, 33, 36,168,236,167, 27, 33,100, - 70, 89, 42, 30, 0,213,248,104,241,218,175,205, 53, 24, 12, 18, 0, 96, 24, 70,170,191,187,210,173,166, 11,240,128, 94, 6,224, -251, 50,194,233,250, 55,203,225,223,230,188,100, 48, 24,236,203, 56,139,244,119, 87,246,171,145,179,221,154, 11,191, 57,254,206, -138, 62, 85,212,140,203,107,183, 38,235,173,178,186,155,221, 50,101, 57, 18,255,234,114,254, 93, 56,255,205,224,119, 88,155,171, -215,191,233, 71, 60, 30, 35, 45,189, 83,115, 63,226,183, 95,147,245,155,227,111,175,112,169,137,211,202, 82, 88,208,208,195,249, -171,154, 56, 83,178,242, 23,170, 74, 52,142, 53,113,214,117,108,122,185,185,245, 50,150,141, 77, 46, 48, 61, 35, 43,235,210,255, - 82, 95, 34,132,180, 1,176, 18,128, 77,165,127,199, 81, 74, 63, 98,123, 37, 11, 22, 44,254, 70,168, 54, 5, 79,149, 66,203, 96, - 48, 72, 30,156, 8,131, 74, 11,244,154,184, 70,226, 59,108,215,239, 86,181, 25, 52, 69, 2, 89,124,100, 32, 87,175,176,119,102, - 74,109,178,178,178, 72,217,131,243,123, 0,222, 85,112,218, 63, 56, 17,134, 18, 29,208,109, 76,184,189, 55, 96,147,199,231,127, -108, 41, 18,245, 84,171,213,205, 1,192,210,210, 50, 94,173, 82, 93,113, 46, 45,221,244,246,241,213,213,172,114, 89,223,155,176, - 70,210,100,216,174,121, 70,147, 73,240,250,222,206,110,154,252, 36,134,103,208,238, 88, 14,156, 11, 3,140,230,180,212,111,174, - 59,114,153, 35, 15,120, 79, 96, 97,209,210,206,222,190,171,137,210,166, 38,147,137, 24, 13,134, 4,133, 92,126,195,100, 48, 60, - 50,232, 84,142, 15, 78,125,110,170,169,156,111,215,101, 36,192,156, 0, 66, 68, 98,113, 79, 46,143,215, 9, 0,140,122,253,175, - 42,165,242,202,112,224,152, 57,117, 55,183,125,222,245,248,127, 27,244,122,131,228,229,133, 48,104,245, 64,208,136,207, 37, 45, -198,253,112, 8, 0,116,210, 71, 46,202,164, 83,237, 1, 64,212,112,208, 29,161,107, 80, 46, 0, 48,175,178, 37,207,163, 87, 64, -171, 7,154, 14, 10,151,212,198, 57, 57,244,136,227,146, 25,193, 66, 0,184,120,252,235,198,151,163,190, 29, 0, 0,239, 5,207, - 58,215,119,196,220,231, 0,176,225,187, 40,199,195,159,143,170,145,211,188,177, 41,231,203,147,162, 27,233, 20,217,118, 94, 34, -198, 53, 41, 41,137, 3, 0,238,238,238,102,141, 77, 79,192, 54, 27,152,195,225,114,187, 54,108,212, 40, 8, 0, 77,121,241, 34, -214,104, 48,220,116, 3,118,252,201,125,105, 30,165,191, 13,206, 90,150, 11,147, 5, 11, 22, 44,254, 78, 56, 83, 38,174,206,188, -189,163,218, 85,135, 42, 45,112, 45, 25,232,222,161, 5,102,140,123, 95, 92,121,223,177, 93,225,222, 73,247,126,106,178,231,135, - 77,156, 22, 45, 90,224,229,203,151,102,149,162, 68, 7, 92, 77, 2, 32,123,106, 93, 36, 18,189,216,188,113,163, 77,159, 62,125, - 24,119,119,119, 16, 66,144,147,147,211, 33, 38, 38,166,205,130, 5, 11, 62,132,236,105, 81,137, 14,197, 87,205, 8, 1, 90, 94, -214,230,141,235, 97,229,220, 81,182, 0,176,124,226,142, 54,247,158,229, 58,188,120,241,162,215, 39,159,124, 82,192,189,114,229, - 91, 39, 96, 95, 46,144, 97, 78, 57, 15,156,190, 99, 97,155,253,163,239,248,185,115,143, 55,106,212, 72,236,227,227, 67,172,173, -173,193,229,114, 81, 84, 84,228,253,228,201,147, 1,119,239,222, 85,197, 92,251, 94,112,255,238,144, 20,169, 69,123,141, 89,117, - 87,103, 89, 92,180,182,142,159, 48,124,184,231,168, 81,163, 44, 26, 54,108, 8, 0,120,241,226,133,223,177, 99,199,198, 28, 63, -126, 60, 20,234, 44, 67,137, 14,154,218,234, 94,193, 9,192, 2,232,100, 39,145,140,231,242,120,205, 13, 6,131, 71,153,181,225, -181, 81,175,143,151, 73,165, 7,223, 62,158,197,239,161,213, 3, 79,179,129,222, 93,131, 48, 33,184,183, 8, 0, 62, 25,189,182, -195,171,212,100,190, 78,167, 67, 99,255,166,157, 63,251,252,171, 11,224,112, 16, 17, 21, 83,113,188, 57,156,113, 79, 95, 34,236, -179,205,200,122,124,172,131, 81,158,220,179, 88, 33,231, 2,128,141,173,109,240,177,200, 31,175,184, 7,134,220, 78,206, 47, 53, -139,179,166,177,121, 62,114,187, 91,230,147, 43,205,190,185,184,151,231,237,237,141,199,143, 31,215,109,108,202,159, 89,155,220, -220, 18, 54, 45, 94,236,218,173, 91, 55,136,197, 98, 48, 12, 3,131,193,208,251,230,205,155,189,195,194,194,102, 65,254, 76,101, -238,216, 52, 3,155, 8, 33, 61, 39,207,152,231,246,254,208, 16, 4,247,239,204,118, 68, 22, 44, 88,252,173, 64, 8,153, 81,182, -234,176, 98,229, 97,229, 85,136, 85, 10, 45,134, 97,164,125, 38,173,147,116,109, 31,128,123,143,158,203,211,210,179,149,229,251, - 10,227,143, 53, 30,218,217,163,217,245,235,215,160,213,106,241,235,175,191,226,209,163, 71, 72, 77, 77,197,204,153, 51,181, 12, - 48,189, 26,206,162,110, 99,194,237, 33, 79, 18,251, 9,158,213,143, 73, 76,228,106, 52, 26, 92,191,126, 29, 69, 69, 69, 16, 8, - 4,240,244,244, 68,223,190,125,153,196,196, 68,135, 94,125,250,219,118,235, 63,246, 37,108,253,148, 12,195, 20, 85, 87, 65,134, - 97,164,189, 38,174,145, 52,243,171,135, 23,105, 89,242,149,159,239, 81,154, 76,148, 73, 73,125, 85,122,237,218, 53, 4, 5, 5, -225,210,165, 75,142,133,133,133,159,238,216,177, 99, 37,239,139,111,182,234,117, 5,139,106,224, 43,234, 54, 38,220,222, 81,122, -212,231,242,249,147,252,248,248,120,254,206,157, 59, 81, 80, 80, 0,129, 64, 0, 59, 59, 59,184,186,186,162,113,227,198,100,249, -242,229,226, 65,131,226,241,159,233, 33, 62,165,190,211,158, 85, 87,206,138,186, 43, 95, 89, 57, 41, 46, 54,140, 58,115,134,211, -165, 75,151,223,124,182, 55,104,208, 0,253,250,245,179, 24, 63,126,124,195, 81, 99,198,153,186, 13,156,252, 2, 98,159,146, 90, - 57, 85, 25,150,142, 37,183,220,123,143, 25,115, 42, 60, 60,220,206,213,213, 21, 34,145, 8, 0, 32,151,203, 61,211,210,210, 58, -132,134,134,142,184, 19, 23,201,116, 27,148,145, 5,145,151,186,166,246,252,183,130,199, 99,164,229, 86, 36,107,145,101, 81, 70, -102,174, 10, 0,116, 58, 29,116, 58, 29,180, 90, 45,102,207,154,201,157, 62,162, 93, 35,159,174,243, 30,166,190,206, 45,108, 26, -115,219,161,252,220,218, 56,153,146, 84,153, 44,253,231,233, 97,139, 23,187,186,184,252,119, 70, 48,226,192, 1,110, 97, 97, 97, -239,176,176,176,102,212,170,135,172,233,160,112,187,154, 56,107, 26,155,178,231,103,234,127, 54,183, 95,203, 93,159, 71,195,104, - 52,226,214,173, 91,184,126,253, 58,190,250,234, 43,122,238,220, 57,185,141, 72, 84,203,216,124,102,221,197, 45,199,247,139, 47, -142, 19,161, 80,136,159,126,250, 9,137,137,137,224,112, 56,104,209,162, 5, 38, 76,152,128,222,189,123,187,206,152, 49,147,118, -235, 63, 58, 5,182,254,197,127,164, 47, 17, 66, 56, 0,230, 45, 11,251,194,109,226,180, 57,216,240,217,114, 86,104,177, 96,193, -226,111,107,205,170, 54,196, 3,165, 20,209,209,209,180,108,235, 78, 41, 5, 5, 56, 13,134,237, 58,124,244,190,233, 76,131, 97, -187, 14, 83,128, 67, 1,142, 13, 80,175, 85,171, 86,122,153, 76, 70,239,222,189, 75,103,207,158,173,218,186,117,235,149, 51,103, -206, 28, 51,148,150,238,118,119,115,251,146, 2,156, 42, 61,239, 1,142, 15, 96,107,101,101,149,151,158,158, 78,207,158, 61, 75, - 87,173, 90, 69, 15, 30, 60, 72,207,157, 59, 71, 99, 98, 98,232,185,115,231,232,225,195,135,105, 92, 92, 28,125,254,252, 57, 21, -137, 68,121, 62,128,109, 13,156, 92, 10,112, 27, 15,219,185,232,248, 61,125,184,255,176, 93, 11, 40,192,181, 7,154,180,106,213, -202,120,236,216, 49, 26, 17, 17, 65,127,248,225, 7, 26, 23, 23, 71,243,243,243, 41, 35, 20,229,149,159, 87, 93, 57, 41,192,241, -240,240,200,147,201,100,212,203,203,139, 10, 4, 2,234,226,226, 66, 27, 55,110, 76, 59,116,232, 64, 7, 12, 24, 64,199,141, 27, - 71, 63,253,244, 83, 42,147,201,168,133,133, 69,110,249,121,213,113, 6, 1,150, 34,145, 40,253,193,131, 7,180, 58,168,213,106, -154,159,159, 79, 47, 92,184, 64, 69, 34, 81,122, 16, 96, 89, 19,167, 37,208, 58, 48, 48, 48, 47, 63, 63,159,150,150,150,210,244, -244,116,250,228,201, 19,154,152,152, 72,211,211,211,169, 90,173,174,224,126,254,252, 57,245,245,245,205,179, 4, 90, 87,203,249, -111,222,202,251,196, 91,155,183,139,203, 0, 87, 87, 87,245,241,227,199,233,235,215,175,233,254,253,251, 41, 7, 88,251,187, 99, -107,224, 20, 0,125,187,116,233, 98,188,117,235, 22,125,248,240, 33, 93,186,116, 41,237,215,175, 31,237,223,191, 63, 13, 11, 11, -163,153,153,153, 52, 51, 51,147, 14, 24, 48,192, 40, 0,250,214,214, 63,171, 26,155,182,128,247,160, 65,131,212,165,165,165, 52, - 37, 37,133, 54,111,222, 60,147, 11,140, 23, 1,205,186, 3,194,218,250,167, 7, 96,239,230,230,150,125,235,214, 45, 26, 21, 21, - 69,125,124,124,242,184,192,100, 27,160,129, 13,208,128, 11, 76,110,208,160, 65,222,173, 91,183,104, 65, 65, 1,245,246,246,206, -246, 0,236,223,181, 47,225, 77,130,237,189,203,194,190,160,207, 50, 85,116, 89,216, 23, 20, 64,122, 89, 64,215, 75,108,159,100, - 55,118,251,247,109,191,211, 34,255,180, 85,135, 3, 7, 14, 36, 0,174,214, 36,217,212, 92,238,186, 13, 27, 54, 48, 26,141, 6, -123,246,236, 41, 30, 57, 98,196,209,238, 93,187,166,212,247,241,145, 17, 14,167,214,220,133,121, 66,225,252, 13, 27, 54,216,233, -116, 58,220,191,127, 31,109,218,180,129,171,171, 43,196, 98, 49,196, 98, 49, 36, 18, 9,252,253,253, 33,149, 74, 97,109,109,141, - 37, 75,150,216,230, 9,133,243,107,227, 53,153, 40, 3, 0, 70,147, 73,192, 7,102,248,182,109,123, 63, 52, 52,148,227,232,232, - 8, 7, 7, 7,136,197, 98, 36, 38, 38, 66,167,211,193,202,210,202,172, 32,173, 28, 14,135, 35, 22,139,113,249,242,101,204,155, - 55, 15,157, 58,117,130,157,157, 29,172,173,173,209,188,121,115,244,237,219, 23,211,167, 79, 71, 74, 74, 10,136, 25, 78, 37, 9, - 12, 51,103,250,244,233,146,160,160,160, 42,247,107, 52, 26,200,100, 50,228,229,229,193,211,211, 19, 33, 33, 33,146, 4,134,153, - 83, 29,159, 35,224,234,233,231,119,234,238,221,187, 78, 34,145, 8, 17, 17, 17, 56,121,242, 36,206,159, 63,143,179,103,207, 34, - 58, 58, 26, 63,253,244, 19,242,242,242, 0, 0,126,126,126, 56,114,228,136,147, 88, 34,137,118, 4, 92,217, 15, 16,243,240, 42, - 55,247, 98,243,156, 28,167,241,227,198,221, 80, 42,149, 24, 63,126, 60,214,173, 95,191,156,103,102, 52,122,127,192,214,193,205, -109,223, 23, 95,124,193,201,201,201,193,240,225,195,243, 55,173, 95, 63, 53,246,194,133,134, 15,206,159,111,184, 46, 60,124,106, -247,238,221,243, 51, 51, 51,113,224,192, 1,142,139,183,247, 62,127,192,182,174,229, 44, 6,230,109,217,178,197, 66,163,209,160, - 79,159, 62, 41,166,248,120,127, 3,240,163, 18, 72,188, 10,148,214,118,126, 54, 48,103,201,146, 37,174, 66,161, 16, 31,127,252, -113,126,201,171, 87, 1, 6,224, 7, 57,144, 38, 7,210, 12,192, 15,197, 47, 95, 6, 76,156, 56, 49, 95, 40, 20, 98,243,230,205, -174,217,255, 77,186,109,174, 5,171, 13, 33,228, 20, 33,228, 26,128,172,201, 51,230, 77, 14,106,215, 17, 7,118,239,192,231,225, -159,236, 3, 48,146, 16,114, 16,192, 34,182,231,177, 96,241,239,132, 57, 90,228,127,117,250,176,218,153,178, 10,187,215,153, 51, - 20, 64,143,154,136,236, 29, 29,219, 4, 4, 4,224,250,245,235, 8, 12, 12,188,107,103,103,103,224, 11,133,224,241,120,160,166, -218,115, 68, 91,138, 68,189,122,247,238,205,220,190,125, 27,190,190,190,176,180,180, 4,143,199,251,205,198,231,243,225,230,230, - 6,133, 66,129, 94,189,122,241,182,109,219,214, 11, 90,237,103,181,190, 16,147,158,136,243,110,127, 49,238,251,253,251, 26,116, -235,214, 13,114,185, 2, 38,147, 9, 86, 86, 86,208,233,116, 96, 24,230,205, 20,144,158, 42,204,105, 52,163,209,104,228,114,185, -240,245,245,197,186,117,235,160,209,104,192,231,243, 1, 0, 10,133, 2, 50,153, 12, 79,158, 60, 65, 90, 90,154, 89,249, 20,173, -109,109,223, 31, 53,106,148,160,170,125, 90,173, 22,114,185, 28,114,185, 28, 50,153, 12, 26,141, 6, 29, 59,118, 20,156,137,142, -126, 31, 5, 5, 85, 38,150,214, 90, 88,140, 56,112,224,128, 68, 32, 16, 64,173, 86,163,184,184, 24, 25, 25, 25,120,245,234,149, - 70, 42,149, 26,172,173,173, 57, 62, 62, 62, 28,161, 80, 40, 28, 54,108, 24, 81, 40, 20, 32,132, 96,208,160, 65,142,135, 34, 34, - 70, 1,248,138, 29,210,230,225, 34,160,109,173,211, 13,110,223,174,221,229,187,247,238, 5,205,159, 63, 31,113,113,113, 95, 88, - 69, 70, 94, 43, 1, 30,213,116,110, 10, 48,231,203, 74, 2,134,190,122, 21, 88, 10,228, 85, 58, 36,205,231,229,203,243, 19, 39, - 78,124, 28, 23, 23,231,180,121,243,102,215,145,195,135,207, 1,176,182, 46,101,180,182,181,109,235,230,230,134,115,231,206, 33, - 61, 53,245, 19, 3,160,174,203,249, 28, 46,183, 75,183,110,221,240,211, 79, 63, 33,243,213,171, 79, 12,191, 45,227,155, 15, 37, - 32,143, 73, 73,249,100,223,190,125,123,167, 76,153, 2, 46,195,116,129,193, 80,151,203,252,206,241,125,202,204,249,216,247,221, -182,125, 0,166, 81, 74, 77,248,147, 82, 90,177, 96,193,226,111, 58, 7,103,134, 22,249,187,136,173,242,169,196, 58, 89,180, 36, - 18,137,135, 88, 44, 70, 86, 86, 22,154, 54,105, 34, 21, 10,133, 16,240,120,176, 16, 8,204, 42, 68, 73, 73, 73,160,187,187, 59, -228,114, 57,156,156,156,192,231,243, 43, 54,129, 64, 80,241,187,181,181, 53, 56, 28, 14,188,189,189, 81, 82, 82, 18, 88, 43,111, -238, 19, 73,228,182, 89,179,111, 93, 59,215, 96,248,240, 96,216,219, 59,192,203,203, 19, 18,137, 4,150,150,150,240,242,242, 66, -195,134, 13,233,166, 77,155, 96, 37,105, 97,214,131,188,178,120, 98, 24, 6, 70,163, 17,185,185,185,120,246,236, 25,226,226,226, -112,235,214, 45, 60,124,248, 16,197,197,197, 48, 39,111,117,137, 90,221,146, 97,152, 42, 69,150, 76, 38,131, 76, 38,171, 16, 90, -121,121,121, 72, 75, 75,131, 82,165,106, 85,131,232, 13, 14, 8, 8,224, 2,128,165,165, 37, 90,181,106,133, 93,187,118, 25, 78, -159, 60, 57,186,217,173, 91, 14, 94, 23, 46,216,125,191,115,231,232,144,144, 16,227,237,219,183,161, 80, 40,240,244,233, 83, 56, - 59, 59, 51, 2, 11, 11, 54, 87, 94, 29,241, 0, 80, 57, 21, 23,247,239,212,169,211, 75,185, 92,142,141, 27, 55,114,120,214,214, -223,133, 3,220, 26, 79,228,114, 59,119,235,214, 13,167, 78,157, 66,214,171, 87, 75, 95, 85, 33, 96, 94, 1,121,233, 41, 41, 75, -247,237,219,135,190,125,251,130, 48, 76,157, 29,149, 58,116,232, 16, 96, 50,153,240,248,241, 99,216, 1,119,234,122,126,195, 70, -141,130,202, 45,191, 34,224, 70,117,199,137,128, 27,177,177,177,176,180,180, 68,211,102,205, 90,215,241, 50,155, 8, 33,217, 83, -102,206, 71,212,249, 95, 0, 0,251,190,219,150, 91, 73,100,177, 96,193,130,181,104,253, 45, 45, 90,229,194,170,242, 86,241, 33, - 91, 71, 18, 0, 0,143,199,131, 64, 40,132, 64, 32,120, 35,144,132,194,186, 40, 62, 88, 88, 88, 84, 8,171,202, 2,171,242,239, - 86, 86, 86,102, 9, 24, 0, 40, 74, 62,223,117,218,212, 41, 2,161, 80, 8,157, 78, 11, 74, 41,132, 66, 11,216,217,217,193,215, -215, 23, 10,133, 2,157, 58,119,215,102,200,248,209,142, 77,135,197,189, 75, 3, 26, 12, 6,168, 84, 42, 20, 21, 21,161,176,176, - 16, 10,133, 2,106,181,218,236,165,232, 38,147,137,155,145,145,129, 31,127,252, 17, 5, 5, 5, 0,222, 56, 90,151,139,171,242, -159, 47, 95,190, 68, 68, 68, 4, 82, 83, 83,235,116,127,186,118,237,138,232,232,104,110,143, 94,189,118, 95,242,241,201,186,228, -227,147,213,163, 87,175,221,167, 78,157,226,122,120,120, 32, 45, 45, 13,247,239,223, 71, 81, 81, 17, 40,165,236,250,249,119,192, - 11,160,168,164,176,112,202,242,229,203,169, 88, 44,198,198, 47,191,108,185, 22, 24,107,174,128,177,173, 65,192,216,254, 49, 1, - 3, 74, 41, 76, 38, 19,140, 70,227, 59,213,141, 16, 66,120, 60, 94, 93, 67, 43,144, 58,240, 87, 56,190, 47,249,116, 29,206,254, -116,172,124, 87, 18, 43,178, 88,176, 96,241,119, 71, 77,185, 14,153, 74, 10,178,226,103,117,200,205,205,125,173, 82,169, 26,248, -248,248, 32, 51, 51, 83,226,237,237,253, 74,192,227,129, 47, 16,128,112,106,215, 4, 86, 86, 86,143,179,178,178, 58,123,120,120, -192, 96, 48, 84,136,170,183,167, 14,203,173, 52, 15, 31, 62,132,149,149,213, 99,104,106,140,156, 0,163,174,168, 94,235,214,173, - 43, 44, 67,118,118,118,176,179,179,133, 80,104,129, 21, 43, 86,152, 54,111,218,180,195,251,189,112,249, 7, 11,150,211,229,107, -119,255,169,141,107,238,139,201,202,202,234,177,151,151, 87, 71, 91, 91, 91, 68, 69, 69, 33, 45, 45, 13, 69, 69, 69, 40, 41, 41, -129, 86,171, 69, 73, 73, 9,116, 58, 29, 44, 44, 44,208,172, 89, 51,216,216,216, 32, 38, 38,230, 49,180,218,170,197,101, 65, 65, -212,227,199,143, 59,182,107,215,174,194,162,210,179,103, 79,210,179,103, 79,167, 10, 43, 90, 73, 9,242,243,243,113,247,238, 93, -196,196,196,128, 16,130,164,164, 36,163, 86,173, 62,204, 14,139,119,131, 6,248,149,187,111,223,222, 15, 63,252,112,106,231,206, -157, 97, 4, 6, 0,136,248,255, 37, 96,202,113,235,214,173, 39, 70,163,177,115,227,198,141, 33, 3,218, 3,248,169, 78, 34, 50, - 57, 57,214, 96, 48,244,106,217,178, 37,162,142, 30,237, 10, 32,173,170,227, 84, 64,215,160,160, 32,168,213,106, 60, 77, 72,120, - 80, 7,145,181,123, 89,216, 23,147, 39, 78,155,131, 3,187,119, 96,223,119,219, 50,246,238,218,234, 5, 51,252,199, 88,176, 96, -241,175,178,102,213,170, 69,254, 23, 81,149,143, 86,185,248, 98,234, 66, 36, 47, 42,122, 16, 27, 27,219,160,117,235,214,216,189, -123,119,187, 78, 29, 59,190,230, 11, 4, 6, 1,159, 15,142, 25, 47, 18,181, 74,245,243,207, 63,255,220,126,216,176, 97,204,237, -219,183,225,234,234, 90, 33,180, 13,123,141, 42, 0, 0, 32, 0, 73, 68, 65, 84,202,127, 50, 12, 3, 74, 41,172,172,172,112,226, -196,137, 82,181, 74,245,115,173,214, 34,163,201,200, 41, 19,122,148, 82,200,100, 50,240,249,124,124,245,213,102,108,223,180,105, -156, 17, 56,230, 39,114, 94, 12,192,226,255,219, 11,186,164,228,242,217,179,103,219,132,134,134,242, 60, 61, 61, 33,147,201, 80, - 84, 84,132,130,130, 2, 40, 20, 10, 40, 20, 10, 20, 21, 21, 65, 38,147,193,194,194, 2,113,113,113,122, 77, 73,201,229,234,248, -132, 26,205,241, 73,147, 38, 45,137,141,141,117, 99, 24, 6,122,189, 30, 38,147, 9, 38,147, 9,165,165,165, 72, 78, 78, 70,124, -124, 60, 18, 19, 19, 81, 88, 88, 8, 30,143, 7, 46,151,139,135, 15, 31, 22,137,244,250,163,236,144,126,119,240,128,168,155, 55, -111, 78,157, 48, 97, 2,220, 61, 61,187, 35, 51,211, 44, 1,115,178, 6, 1, 35,127, 7, 1,243, 27, 1, 84, 92,124,239,229,203, -151,157,123,244,232, 1, 55, 79,207, 47,154,101,102, 94, 74,168,131,159,150,209, 96,184,113,243,230,205, 94, 19, 39, 78,196,238, -221,187,191,112,126,249,242,124,222, 91,211,156,206,128,115,253,134, 13,191,152, 60,121, 50, 46, 94,188, 8,163,193,112,163,134, -135, 78,229,136,239,245, 38,207,152,231,245,150,227,251, 46, 66,200, 92, 0, 27,217, 30,197,130, 5,139,127,178, 69,171, 78, 83, -135,150, 70,227,178, 69,139, 22,233, 57, 28, 14,130,131,131,173,127, 58,117, 42,228,225,163, 71,190, 82,169,212,206,104, 52,214, -202,229,172,213,110, 93,180,104,145, 76,167,211,193,223,223, 31,133,133,133, 48, 26,141, 96, 24, 6, 12,195,128, 16, 2, 14,135, - 3,177, 88,140,216,216, 88,236,221,187, 87,225,172,213,110,173,245, 37, 97, 52, 62,142,136,136, 0,151,203,165, 22, 22, 22, 32, -132,128, 97, 24,108,222,188, 89,186, 29,136, 2, 0, 46,135,163, 3, 0, 14,135,152,235,189, 91,235,188,165, 64, 32,128,233,205, - 34,128, 90,143,181,215,106,183,108,216,176,161,248,233,211,167, 80,169, 84, 21,214, 55,165, 82, 89,225, 92, 47,147,201, 64, 8, -129, 74,165,194,169, 83,167,138,237,181,218, 45,213,241, 21, 0, 57,153, 73, 73, 67,218,181,107, 87,240,242,229, 75,200,229,114, - 60,126,252, 24, 49, 49, 49, 56,114,228, 8, 46, 94,188,136,228,228,100, 24, 12, 6,120,120,120,128, 82,138,147, 39, 79,202, 13, -197,197, 3, 10,128, 28,118, 88, 84,143,122,174,174,189, 92, 36,146,116,103, 39,167,204,122,174,174,189,222,222,111, 11, 60,127, -254,252, 57, 12, 6, 3,124,125,125, 29,106,242,211,162, 6,195,205,155, 55,111, 98,226,196,137,240,106,208, 96,189, 15,224,252, -246, 49, 62,128,179, 79,195,134,235,203, 5, 12, 53, 24,110,214,181,204,214,192,182,197,139, 23,171,249,124, 62, 34, 35, 35,125, -245,141, 26, 37, 50,192, 88, 49,208,164, 7,192,175,237,124, 55, 96,199,167,159,126,154, 67, 8,193,193,131, 7,157,108, 27, 54, -124,194, 0,147,108,129,122,182, 64, 61, 6,152,100,219,176,225,147,200,200, 72, 39,131,193,128, 5, 11, 22,228,184, 1, 59,106, -160,156, 71, 41, 29, 76, 41,237, 70, 41,245,218,187,107, 43,206,254,116,172, 92,100, 77,163,148,222,165,148, 78,160,148, 62, 97, -123, 28, 11, 22, 44,254,201, 32, 85,249, 65,241,218,175,205, 5,168,164,123,135, 22,184,247,232,153,220,201,222,230, 66,249,190, -194,248, 99,141,223, 11,180,105,241,205, 55,223,128,199,227, 33, 35, 35, 3, 9, 9, 9,176,177,177,193,184,113,227,180,234,226, -226, 33,229,185, 14, 9, 33,189, 41,165, 49,101,156,111,242,169,201,147,196, 13,153,184, 6,231,207, 70,115,109,109,109,161, 84, - 42,193,225,112, 96, 97, 97, 1, 43, 43, 43, 88, 90, 90,226,254,253,251, 24, 56,120,168, 49,207,170, 91, 69,192,210,242,124,106, -149, 57, 65, 8, 23, 0,218, 3, 86,177,192,199, 18,119,247, 69, 43, 87,174,180,236,215,175, 31,248,124, 62, 60,235,249,229,248, -246,223,184,141,195, 33,134,204, 2,197,138,134,245,220,109, 19,146,210, 0,144, 55, 57, 17,203,114, 29, 86, 85, 78,111,221, 53, -223, 19, 63,108,178,105,213,234,141, 63,186, 76, 38, 67,110,110, 46,164, 82, 41,100, 50, 25, 84, 42, 21, 0, 32, 58, 58, 26,103, -175, 39, 42,212,158, 33, 41,213,149,243,191,117,127,102,237, 94,122,167,254,161,136, 31,184,206,206,206,200,205,205, 69, 94, 94, - 30,100, 50, 25,212,106, 53,140, 70, 35, 10, 11, 11,177,103,223, 15,198, 2,113,183,212,242,128,144, 53,114,170, 50, 44, 29,148, -191,120, 4, 53,243,161, 83,167, 78,181,182,177,177,129,201,100, 66, 81, 81, 17,210,211,211,241,242,229, 75, 92,191,126, 93, 37, -149,233,160,114,234,147, 89, 30,176,180,202,246,252,243, 76,168,127, 63,206,178,190, 4, 0,238,110,110, 89,175, 94,189,146, 24, -141, 70,120,120,120, 24,100,133,133,235, 5,192, 69,107, 32, 27, 0,205, 7, 86,110,217,182,109,202,208,161, 67,209,182,109,219, -140,156,220,220,250, 85,245, 37, 16,194,245, 7,108, 75, 60, 61,227,239,222,189,235,154,158,158,142,137, 19, 39,230,191,122,241, - 98,105,185,191,150, 28,232,234,211,176,225,250,200,200, 72,167, 6, 13, 26, 32, 48, 48, 48,199, 34, 61,189,249, 51, 64, 94, 77, -255,172,118,108,202,158,159,169, 63,107,120, 64,219,217,179,103,195, 96, 48,224,250,245,235,184,115,231, 14, 94,189,122,133, 95, -126,249, 69,102, 35, 18,141, 46,207,117, 88, 93,255, 28,224,167,242, 61,120, 48,130,240,249,124,236,219,183, 15,177,177,177, 0, -128,160,160, 32, 76,158, 60, 25, 6,131, 1,227,199, 79,160,103,158, 89,166,212,212, 63, 9, 33, 1, 0,190,196, 27,145,215,150, - 82,106, 65, 8,201, 2,224, 85, 23,159, 44,182,127,178,156, 44,231,191,135,243,159,138, 90,115, 29,174,249, 22,182,191, 77,243, - 49, 61,235,216,174,112,166, 75,215,110, 77,194, 87,133,113,218,181,107, 7, 47, 47, 47, 4, 5, 5, 33, 61, 61, 93,104,103,103, - 87, 91, 62, 53,101,183,254, 99, 95,182,104,209,194,110,233,210,165,182,125,251,246,229,121,121,121,129, 82,138,216,216, 88, 68, - 69, 69,149,238,222,189, 91, 81,226, 50, 88,246,224,202,143, 74,115,242,169,221, 1, 74, 0,172,246,204,202,250,110,206,172, 89, - 97,173, 90,183,158,186,106,213, 42,142,216,202,146,183,110,197, 52, 11, 0, 88,243,245, 17,219,161, 33,227,176,165, 17,208,125, -108,213,121,228, 42,151, 51, 61,115,250,171,247,135,247,106,244,241,220, 41,198, 81,163, 70,137,108,108,108,224,229,229, 5,123, -123,123,164,164,164, 32, 51, 51,147,158, 62,125, 90,121,235,225,115,222,201,139,247, 94, 89,216,186,153,147,151,176,184, 91,191, -145,169,239,191,255,190,253,164, 73,147,172,219,180,105,195, 19, 10,133, 16, 10,133,200,205,205, 69,114,114,114,233,233,211,167, -149, 37,146, 1, 69, 15,174, 68, 22,155,153,235, 80,221,109, 76,120,242,141, 75,171, 22,196, 63,126, 60,193, 4,180, 44, 45, 45, -245, 48, 26,141,132,195,225,100,155, 76,166,199,165,197,197,123,181, 65,171, 54,179,185, 14,205,131,209,104,228, 27,141, 70,200, -100, 50, 92,186,116,137,121,241,226,197,202, 71,143, 30,173,204,202,202,130, 94,175,199,136, 17, 35, 16, 20, 20,132, 43, 87,174, - 32, 47, 55,247,116, 77, 92,207, 0,185, 48, 51,115,242,244,233,211,207, 69, 68, 68,112, 30, 61,122,228,180,111,223,190, 61, 85, - 9,152, 9, 19, 38,152,114,211,211, 39,107, 1,121, 13,253,179,166,177,153,127, 62,114,251,163, 97,193, 33,205, 86,133,174,228, -117,234,212, 9, 78, 78, 78,232,218,181, 43, 74, 75, 75,237,154, 54,109, 90,219,216, 44,238,214,127,116, 74,203,150, 45, 69,155, - 55,111,118,157, 50,101, 10,230,206,157, 11, 0, 80,171,213,184,120,241, 34, 22, 44, 88,144,147,206,180, 87,213,214, 63,203, 44, - 85,229, 2,236, 26,128,110, 0, 82, 88,199,119, 22, 44, 88,252, 35,173, 86,132, 4, 81, 74, 99, 9, 33,110, 0, 6, 2, 56, 67, - 41,205,174, 86,104, 1,255,205,167,118,227,206, 19, 84, 78,243,241, 6,110, 9, 6,239, 73, 47,102, 46, 90, 31,200,213, 43,236, -121, 68, 99,147,244,252, 57,169, 45,231, 97, 69, 62, 53, 91, 63,165,227,203,195,237,214,173, 89, 51,127,203,150, 45,189,202, 67, - 56, 88, 89, 89, 61, 86,171, 84, 63, 59,107,181, 91, 75,108,253,126,174,107,110,190, 76, 32, 23,192, 44,251, 7, 15,182, 13, 26, - 58, 98,131,133,131, 47,111,249,218,221, 26, 46,135,163, 75,206,202,195,150, 70,128,200,140, 5,146, 37, 58, 32, 94,230,102,200, -117, 12,121,246,233,226,197, 31,175, 89,189,186,157, 88, 44,238, 94,106, 48,248,153, 76, 38,192,100, 74, 42, 81,169,174,209,210, -210,187,218,160,208, 77, 22,182,110,212,236,188,132,118, 77,139, 29, 82,143,181,219,191,119,239,188,163, 71,143,254,174,238,142, - 90,237,182, 18,187,166, 49,230,212,189,242, 49, 26,224, 87, 72,165,191, 86,219, 9,192,230, 58, 52,251,235,195,100,154, 97,111, -111,127,160, 87,175, 94, 22,189,123,247,198,192,129, 3,209,169, 83, 39,152, 76, 38, 80, 74, 81, 92, 92,140, 35, 71,142, 96,195, -134, 13, 73,245,129,213,181,241,105,129,159,133,103,207, 14,104,217,178,229,190,154, 4, 76,153,200,170,213, 39,177,230,177, 41, - 76, 50,216, 14, 73, 27, 51,103, 93, 35,157, 34,219,206,209,202,224, 26,255,228, 49,199,252,177,233, 95,108,140, 61,210,126,196, -240,225,115,184, 12,211,181,108, 5, 36,125,154,144,240,160, 60,169, 52,130, 38, 95,170, 99, 95, 42,143, 93,199, 58,190,179, 96, -193,226,159,138, 32, 0,177, 0, 6, 82, 74,191, 43,115,142,175,222, 25,158, 97, 24,105,185,213,135, 97, 24,105,202,201,153,227, -106, 98,231, 1,189,202, 44, 89,168, 53,215, 97,217,239,105, 64, 49,180,218,207,126, 19,140,180,210,234, 66,222, 91,199,215,165, -182, 69,192, 51, 24,180,131, 32, 77, 0, 78,205,122,195,215,110,205, 39,149,235, 84,237, 75,246, 55,215,229, 23,106,128, 27, 80, - 42,111, 64,169,172,210,105,151,199,240, 11,107, 43,231,219,117, 79, 7, 20,127,180,238, 76, 29,219,135,249, 3,237,249,111,195, -235,252,252,147, 0,196,158,209,209, 46,231,163,163, 71,125,188,112,225, 8, 55,119,247,134, 78, 78, 78,246,214,214,214,156,219, -183,111,191, 52,104, 52,219, 90, 1,251,203,172,169,181, 66, 11,252,236,159,158,222,124,228,240,225,115, 8,195,116,169, 44, 96, -168,193,240,139, 47,176,163, 38, 75,214,187,142, 77, 47,161, 91,175, 50, 75, 22,184,102,142,205,204, 55,229, 88, 11,131, 97, 45, -226,226,170,232,243,117,238, 75,107, 8, 33,197, 96, 29,223, 89,176, 96,241,207,197,153, 50,113,117,230,119,123,254,202,252, 62, - 0,122,179,156, 44,231, 63,133,243,141, 86,129, 13,219,158, 44, 39,203,201,114,178,156,127, 62,231, 63,117, 99, 88, 17,202,130, -133,121,160,111,156,211, 21,108, 75,176, 96,193,130, 5,139,202,168,228,155, 85,249,157,241, 29,240,198,117,167,119, 53, 47,149, -152, 58, 92,160,247, 59,188,180, 98, 88, 78,150,147,229,100, 57, 89, 78,150,147,229,252,119,113,214,198,253,119, 92,205, 72, 8, -153, 81,238,155,245,118, 76, 45, 98,110,154,155,119,188, 48,187,244,149,229,100, 57, 89, 78,150,147,229,100, 57, 89,206,127, 52, -106,178,104,113,216,230, 97,193,130, 5, 11, 32, 60,156,112, 0, 66,128,112, 14,112,140, 11,140,228,190,249,251,221, 49,114, 36, -169, 50,152,237,188,241, 14,214,108,139,179, 96,241,207, 1,165, 52,187,186,164,210,172,143,214,255, 95, 5,236,237,234,234,186, - 11, 0,201,201,201,153, 65, 41, 77,103, 91,229,127, 15,142,142,142,189, 12, 6, 3,228,114,249,207,255,196,250, 53,111, 68,134, - 83, 14,154,254,247,137,129,244,132, 36,122,160,170, 99,155,249,145,137, 32,255,141,197, 69, 76,120, 26,159, 76, 79,212,161,207, -115, 6,244,246,218, 1, 0,231, 98, 50,230,252, 21,113,181, 8, 33,141,157,157,157, 47, 48, 12,195, 24,141,198, 89,185,185,185, -209,213, 11,161,145, 92, 0,224,209, 43,203,156, 28,154, 44,253,232, 67,194, 43,209,238,149,105,213, 42, 57,151,199, 77, 21,242, - 92,111,130,235,113,174, 72,217, 49,161,170,243,143, 30, 61, 90,109, 22,239, 0, 63, 50,160, 73,179,102,131, 91, 7, 90,166,124, -185,181,221,150,238,190, 78,188,151, 25, 15,197, 95,236,148,239,178,113,168, 55,120,210,104,199,104,198,138, 76,216,179, 39, 95, -201,142, 50,243,241, 57, 33, 14,165, 64, 32, 79, 40,244, 50, 26, 12, 46, 4,160, 92,134,201,213,107,181, 25,124, 32,110, 41,165, -178,127, 58, 39, 95, 40,244, 52, 26, 12, 46, 0,240,191, 88, 78, 22,191, 69,181, 66,203,218,218,250, 62,135,195,241,172,156, 12, -183, 60,159, 96,249,255, 42,239, 35,132,192,104, 52,102, 22, 22, 22,182,169,195, 3,209, 6,192, 40, 0,229, 75,212, 15, 1, 56, - 66, 41, 85,188,227, 3,214,134,207,231, 47, 18,137, 68,239,169,213,234,230, 0, 96,105,105, 25,175, 82,169, 46,151,150,150,126, -249, 46,188,132, 16, 6,192, 72,177, 88,220,147,195,225,244,164,148, 18, 74,233, 21,165, 82,121, 25,192, 81, 74,169,225, 29, 56, - 45, 37, 18,201,218, 38, 77,154,140, 93,182,108, 89,129,163,163,163,255,130, 5, 11,238, 57, 59, 59,255,152,159,159,191,130, 82, -170,254, 95,232, 28,132,144,134,174,174,174,135,120, 60, 30, 55, 35, 35,163, 39, 0,120,121,121, 93,209,233,116, 70,169, 84, 58, -142, 82,250,162,142,124, 34, 0, 29,196, 98,113, 27,177, 88,220,205,104, 52, 54, 45,203,207,248, 84,169, 84, 94, 47, 45, 45,189, - 15,224, 54,165, 84,245, 63, 36,134,173, 37, 18, 73, 4, 33, 4,132, 16, 63, 74,105,241, 63,238, 75,140,131,166, 9,241,137,254, - 21, 98,170,121,147, 26, 26, 4,222, 85, 28,107,182,208,122,175,187,219,224, 33, 67,250,112, 0, 64,167, 63, 55, 24,117, 76,126, -109,142,200, 10, 14, 14,254, 53, 34, 34,194, 94,171,213, 98,198,140, 25,135,108,109,109,119,200,229,242,101, 53,157,103, 35,182, - 95,176,113,243, 69,171, 55,249,175, 33, 49,153,140,146,215,175, 95,248, 37, 60,249,181,127,124,252,173,117,234,196,203,183, 77, -132, 55,179, 20, 93, 19,205, 41, 71,179,134,100,208,208,145,195, 7,174, 94,189, 10, 99, 71,143,173, 23, 31,175,177,244,176, 73, - 17, 20,170, 69,141, 28,157, 37, 67, 86,175, 57, 70,110,222, 56, 57, 36, 98, 95,248,229,169, 83,157,222, 99,197,150, 89,247,150, -172, 97,152, 14,246, 77,154,116, 27,125,242, 36,196, 94, 94, 12, 35, 20,114, 0,192,160,213,122, 41, 51, 50,220, 34,135, 12,105, - 31, 78,200,213, 48, 74,239,176,156,255,247,156, 44,234, 40,180, 56, 28,142,231,235,215,175, 37, 34,145,168,220, 44, 6,163,209, - 8,163,209, 88,145,188,152, 82, 90,241,211, 96, 48,160, 73,147, 38,102,125,209, 2,120, 15,192, 7, 61,122,244, 8,249,242,203, - 47,121,129,129,129,229, 41, 67,186, 46, 95,190,252,107, 66,200,113, 0,251, 1,252,108,238, 23, 47, 33,164,159, 72, 36, 58,184, -113,227, 70,155, 62,125,250, 48,238,238,238, 32,132, 32, 39, 39,167, 67, 76, 76, 76,155, 5, 11, 22,204, 34,132,140,167,148, 94, -168,195,192, 14,176,182,182, 62, 54,124,248,112,207,238,221,187, 91, 52,107,214, 12, 70,163, 17, 15, 31, 62,156,114,255,254,253, - 49,199,143, 31, 15, 35,132,132,152,155,175,141, 16, 66,196, 98,241, 36, 15, 15,143,181,161,161,161, 14,227,199,143, 23, 60,121, -242,164,200,215,215,151,220,188,121,211,249,200,145, 35,179,214,175, 95, 63,210,218,218,122,133, 82,169,252,129,154,225, 64,103, - 99, 99,115,159,195,225,120,154, 35,132, 1,152, 45,134, 9, 33,173,234,215,175,127,228,198,141, 27,245,211,210,210,140,195,134, - 13, 59, 0, 0,151, 47, 95, 14,212,235,245,164,111,223,190,231, 8, 33,163, 40,165, 15,205,172,123, 11, 7, 7,135,159,198,142, - 29,235,208,176, 97, 67,171,250,245,235, 19,145, 72, 4, 46,151, 11,185, 92,238,254,228,201,147,222,119,238,220, 81,199,196,196, - 20, 18, 66,134, 80, 74,227,234,112,159, 58, 73, 36,146, 9, 60, 30, 47,192, 96, 48,120, 0, 0,195, 48,175,245,122,253, 19,169, - 84, 26, 65, 41,253,245, 93, 7,136,139,139,203,246,181,107,215, 58, 73,165, 82,186,126,253,250,237, 0, 38,253, 83, 31, 6,135, -126, 60,138,251,247,238, 0, 0,159, 16, 66,222,238,127,132, 16,210,212, 15,252,143, 62, 90,136, 54,109,219, 99,220,216,145,181, -114, 14,236,237,181,145, 39,224, 59,106, 52,154, 95,229, 37,218,163, 46,142,118,163,198,142, 25,148, 4, 0,231,206, 95, 29,213, -190,189,195, 21, 91, 43,225, 72, 11, 11,139, 78,122, 93,105,193,153,152,140,197,117, 17, 85, 30, 30, 30, 23,236,237,237,173, 10, - 11, 11,115,242,242,242,190, 13, 14, 14, 94,179,127,255,126,251,151, 47, 95, 34, 35, 35, 3,243,231,207, 23,103,102,102,206, 17, - 10,133,183,180, 90,109,181,150,173,226,226,194,173,203,151, 14, 13,181,181,117,226,138,172,108, 96,109,235, 0,223,134, 45,209, -161,211, 96, 12, 24, 56, 21,201, 73,177, 29,246,239, 91, 29,251,250,117,204,231, 98,135, 6,107,100,178,250,213, 62,151,154,251, -147,238,229, 34, 43, 52,116, 21,158, 39, 38, 22,167,165,114,254,115,230, 36, 99, 53,160, 87, 19,161, 65,151,147,118,243,198,201, -250, 93,186, 14, 3,128, 54, 17,251,194, 47,207, 27,239,208,107,219,193,194, 98,246,149, 84,253,179,115, 53,143, 55,169,223,230, -205,146,160, 89,179,248,202,212,212,210,148,157, 59, 75,114,175, 95, 55, 50, 66, 33,245,234,223,159, 56,247,236,105, 49,235,233, - 83,254, 47,235,215,119, 91, 39, 16,248, 46,215,233, 14,178,156,255,119,156,108, 31,173,112,134,175,240,213, 42,159, 62,100,106, - 56, 9, 34,145, 8,145,145,145,224,241,120, 96, 24, 6, 60, 30,175,218,223,189,189,189,205, 41, 72,176,171,171,235,215, 59,118, -236,112,233,215,175, 31, 44, 44, 44, 42,246,113,185, 92,244,233,211, 7,189,123,247,230,101,101,101,141,137,140,140, 28,179,110, -221,186, 92, 66,200, 92, 74,105, 84, 45,188, 61,253,253,253,163, 46, 94,188,104,169,209,104,112,253,250,117, 20, 21, 21, 65, 32, - 16,192,211,211, 19,125,251,246,101, 18, 19, 19, 29,250,244,233, 19, 69, 8, 25, 68, 41,189, 98, 70, 89,219, 72, 36,146,107, 71, -143, 30,181,104,217,178, 37, 73, 78, 78, 70, 80, 80, 16, 0, 64, 46,151, 99,216,176, 97, 22,227,199,143,111, 56,102,204,152,219, -132,144,238,148,210,251,181,240,181,118,117,117,253, 97,248,240,225,238,235,214,173,179,177,182,182, 70, 90, 90, 90,182,171,171, -171, 95,121,123,143, 25, 51, 70, 48,120,240, 96,183, 13, 27, 54,108, 61,118,236,216, 98, 66,200, 36, 74,233,131,154,120,203, 5, -177,149,149, 21,114,115,115,113,232,208, 33,204,153, 51, 7, 92, 46, 23, 82,169, 20, 71,142, 28,193,127,254,243,159,114, 65, 99, -150, 24, 22,137, 68,189, 91,182,108,185,231,242,229,203,158,118,118,118,112,119,119,231,124,250,233,167, 1,190,190,190,150,245, -234,213,227,102,103,103, 35, 42, 42,202,119,194,132, 9, 63, 89, 88, 88, 76,209,104, 52,181, 78,169,185,184,184,236, 61,115,230, -140,119,124,124, 60,118,238,220,137,194,194, 66, 8, 4, 2,216,217,217,193,213,213, 21,126,126,126,100,233,210,165, 86,131, 7, - 15,182,154, 59,119,238, 94, 0,173,204,184, 71, 45, 37, 18,201,174, 49, 99,198,248,134,135,135,219,185,186,186,162,252,195, 64, - 46,151,123,166,165,165,117, 8, 13, 13, 13,113,113,113,121, 41,149, 74,103, 82, 74, 31,213,113,224,180,234,213,171,215,160, 97, -195,134,113,179,179,179, 17, 17, 17, 49,136, 16,210,202, 92,113,249,119,195,253,123,119, 48, 99,246,124,165,187,151, 23,255,226, -133, 61,193, 50, 89,179,123,118,150,111, 18, 82,203,212, 40,125,175, 59,183,109,223,126, 83,249,239, 15, 28,166,252,238,155,173, - 98,115,132, 22, 79,192,119, 60,116,240,171,244, 27, 55,239, 7, 92,138,185,211, 63,120,200, 16,202,231,219,249, 2,192,226, 5, - 31,241,162, 78,157,218,215,167,119,251,172,174, 93,218,164,143, 27,191,208,187, 14,247,166,113,227,198,141,175,198,198,198,186, - 8,133, 66, 20, 22, 22, 58,126,247,221,119, 95,117,233,210,133,147,146,146,130,196,196, 68,164,166,166, 66, 46,151,163, 79,159, - 62,226, 7, 15, 30,124, 11,160, 90,161, 85,202,121,111,173,123, 61,253, 54, 71, 75, 81,253, 82,163, 66, 66,245,217,205, 46,157, -185,212,226,112,132, 58,200,197,173,137,223, 7,147,195,176,122,205,113,222,143,135,190, 8,253, 57,230, 48,192,169, 95,125, 70, - 0,138, 78,203, 87, 44,131,162, 88,139,241, 99,167, 99,194,216,233,142, 20, 58, 55,106,212,136,116,234, 34, 59,107,254,211,232, - 29,187,191, 26, 14,192,179,146,216,250,153, 21, 91,213, 99, 53,195,180, 31,244,245,215,206, 1,211,166, 9, 31,133,135,171,242, -175, 95, 87, 55,122,255,253,162,160, 15, 63,212, 2, 64,113,106, 42,255,121, 88,152,149,115,183,110,150, 29, 23, 45,178, 55,234, -116,174,159, 17,210,238, 83, 74,239,214,149,211,123,212, 40, 99,232,190,125,109,175, 47, 92,216,131,232,245,220,254, 29, 59, 62, - 92, 31, 17,241,250,143,112,254,153,229,204,186,118, 77, 91,232,235,139,160, 97,195, 10,188, 37, 18,237,159, 89,247, 63, 82, 78, - 22, 40, 55, 74,101, 3, 40,143, 12,255,230,121, 69, 41,197,153, 51,103,186, 3,184, 10, 32,124,224,192,129,171, 0,192,206,206, - 46, 87, 38,147, 73,162,162,162,106, 21, 89, 60, 30, 15,110,110,110,240,243,243,147,230,230,230,186,212,240,112,204, 48,153, 76, -158,148,210, 10,235, 75,117,208,106,181, 72, 74, 74, 66,139, 22, 45, 50, 41,165, 94, 53, 77,237, 88, 89, 89,165, 36, 38, 38, 58, - 37, 36, 36,224,254,253,251,240,245,245,133,189,189, 61,120, 60, 30,244,122, 61, 20, 10, 5,252,253,253, 33, 20, 10,209,186,117, -235,124,149, 74,229, 91,211, 20, 16, 33, 68, 40, 18,137,146,174, 93,187,230, 21, 20, 20,132,187,119,239,194,203,203, 11,174,174, -174, 0,128,212,212, 84,220,188,121, 19,239,191,255, 62, 98, 99, 99, 49, 98,196,136, 12,149, 74,229, 71, 41,213, 86,199,233,232, -232,152,125,249,242,229,204,192,192, 64,141, 74,165,226,228,230,230,242,174, 95,191,110, 40, 46, 46, 22,203,229,114,158, 76, 38, -227, 41, 20, 10, 70,165, 82,241, 56, 28, 14, 95,173, 86,243,126,254,249,103,174, 78,167,179,169,169,157,202,239,211,169, 83,167, - 16, 24, 24,136,168,168, 40,124,252,241,199,248,229,151, 95,224,229,229,133,163, 71,143, 98,209,162, 69,120,246,236, 25,156,156, -156,208,172, 89,179, 26,239, 17, 0, 52,106,212, 40,249,241,227,199, 13,249,124,126,121, 94,199,242,124,121,200,203,203,195,139, - 23, 47,240,250,245,107, 52,106,212, 8, 99,199,142,125,145,153,153,217,168,182,206,231,233,233,153, 23, 31, 31,239,212,162, 69, - 11,228,230,230,194,206,206, 14,182,182,182,176,179,179,171,248,221,215,215, 23, 11, 23, 46,132,171,171,171, 84,173, 86,187,212, - 38,130, 2, 3, 3, 47,252,252,243,207, 78, 54, 54, 54,200,201,201,129, 66,161, 0,195, 48,176,178,178,130,147,147, 83,133,144, - 79, 74, 74,194,192,129, 3,243, 83, 82, 82,250,213,193, 2,199,113,113,113, 73,140,139,139,243,163,148, 34, 61, 61, 29,207,158, - 61,195,236,217,179,147, 52, 26, 77,147,127, 82,206,190, 74,126, 87,252, 73,147,103,240,135, 15,237,164,123, 26, 31, 77,132,166, -103,104, 21, 96, 35, 7,128,135, 79, 20,182, 90,142, 63,154, 54, 31, 68, 79,252,244,171,224,135,253,223,241, 96,130, 11, 8,158, - 37, 60,167,159, 85,199,221,239, 61,247,105, 31,125, 52, 37,160, 71,151,238,156, 98,149, 74,242,237,183,155, 91,167,164, 60,149, - 0,128,175,111, 83,233,172, 89, 11, 30, 88,139, 68,210,171, 55,175,153,182,108,217,251,228,194,229,172,221,102,220, 27, 95, 63, - 63,191, 91,167, 78,157,114,146, 72, 36,176,181,181,133, 74,165, 66,105,105, 41, 18, 18, 18, 52,145,145,145,122, 27, 27, 27,235, -156,156, 28,200,100, 50, 16, 66,112,234,212,169,116, 74,169,207,219, 92,229, 62, 90, 0, 48,123, 64, 83, 94,179,247,252,236,249, - 66,131,165, 37,239,185, 27,136, 81, 72,168,216,229,220,133,135, 45,206, 93,186, 59,110,120,240,199,206, 93,187, 15, 71,232,202, - 16,125, 86, 86,122, 80, 41,186, 38, 86,229,163,213,212,143,188, 55,108,196,240,145,171, 87,175,194,170,208,112, 68,159, 58, 41, - 23,139, 56, 90, 27, 59,158,109,183, 14,157, 53, 11,231, 12,205, 80, 42,179,188, 86,111,136, 28, 59,112,232, 66,207, 46, 93,135, -225,230,141,147,136,216, 23,126,159, 88, 82,118, 26,241, 45,132, 19, 98,111,231,235, 59,115, 94, 82, 18,255,209,170, 85, 74, 67, - 86, 86, 81,155, 5, 11,242,171, 58, 54,243,210, 37,145,192,221,221,198,126,200, 16,135,173, 62, 62, 84, 47,149,238,170,202,199, -168, 42,206, 24,177,216,238,240,185,115,189, 40,143,215,125,201, 39,159, 88, 14, 26, 52, 8, 10,133, 2,199,143, 31,199,174,157, - 59,181,110,110,110,143,221,159, 60,137, 13, 80, 40, 86,154,203,217,102,193,130,124,163,209, 72, 70, 46, 90,212, 39, 62, 53,245, -189, 28,169,180, 30, 0,184, 57, 56,100,180,241,245,189,191, 55, 58,250,217,246,250,245, 77,230,150,243,251,243,231, 93,142,165, -165, 77,115,112,112,176,204,149, 74, 25,161, 64, 80,208,161, 89,179,163,223,172, 88,113,213, 16, 23,199,183,240,244,180,177, 29, - 52,168,206,117,111,179, 96, 65,126, 97,113, 49, 51,111,205,154,206,175,114,115,235, 41,181,218, 70,178,226, 98, 87,163, 94,207, -177,177,178, 42,104,224,239, 47, 85, 95,191,158,221,160,164,100,254,247,148, 74,255,170,123, 93,149, 22,249, 27, 89,180,222, 94, -117,248,187, 92,135, 87, 7, 14, 28, 72,170, 80,102,102, 89,179,120, 60,222,111,166,169,106, 0,159, 16,130, 7, 15, 30,192,209, -209, 17,174,174,174, 16, 10,127,155,124, 48, 47, 47, 15,191,252,242, 11,158, 62,125,138,150, 45, 91, 2,120,243, 69, 93, 29,132, - 66,225, 71, 27, 54,108,176,211,233,116,184,127,255, 62,218,180,105, 3,161, 80, 8, 62,159,255, 27, 17, 40,149, 74,209,188,121, -115, 44, 89,178,196,118,221,186,117, 31,161,134, 28,117, 12,195,204,157, 62,125,186,164,220,130,149,145,145,129,214,173, 91, 87, -236,119,118,118,198,195,135, 15,209,166, 77, 27,120,122,122, 34, 36, 36, 68, 18, 17, 17, 49, 23,192,151,213,113, 10, 4, 2, 78, - 96, 96, 96,219, 50,139, 17, 56, 28,206,115, 27, 27, 27,103, 23, 23, 23,145,141,141,205,239,234,184,111,223, 62, 25,135,195,209, -215,214,160, 28, 14, 7, 57, 57, 57, 8, 8, 8,128, 92,254, 38,131,139, 74,165, 66,163, 70,141,160, 80, 40, 42, 68,171,187,187, - 59,212,234,154, 93,191, 90,182,108,185,170, 73,147, 38,125,123,244,232, 33,228,241,120,120,244,232, 17,130,130,130, 16, 25, 25, - 9,111,111,111, 88, 89, 89, 33, 41, 41, 9,129,129,129,184,118,237, 26,156,157,157,209,188,121,115, 97,235,214,173,111, 20, 22, - 22, 94, 73, 75, 75, 91, 85, 67, 57, 57, 98,177, 24,215,174, 93,195,222,189,123,145,154,154,138,172,172, 44, 88, 91, 91,163, 85, -171, 86,104,214,172, 25, 58,117,234,132,164,164, 36,144, 90, 58, 19, 33,196,213,207,207, 47,250,238,221,187, 78,148, 82, 68, 68, - 68, 64,169, 84, 66,167,211,129,195,225,192,194,194, 2,246,246,246,120,239,189,247,224,236,236, 12, 63, 63, 63, 28, 57,114,196, -105,192,128, 1,103,203, 44, 82, 57,181,181,171,189,189,253,252,176,176, 48, 47,137, 68,130,180,180, 52,200,229,114,184,184,184, -160, 71,143, 30, 30, 49, 49, 49,243, 1,108,254,167,188,200,202, 29,223, 9, 33,228,226,133, 61,193,126, 13,138, 2, 91,250, 91, -121, 69, 69,187,120, 69, 70, 75,155, 3, 64, 64, 83,151,248,224, 65, 86, 25,143,226,163, 51, 46, 94, 56,121,255,233,115, 68,153, - 51,181, 45, 47,209, 30,189, 20,115,167,127, 80,203,214,166, 13, 95, 44, 26, 56,103,246, 52,161,196,101, 42,114,211, 79, 34,230, -242, 3,239, 69, 31, 79,119,254,114,211,247,231, 46,197,220,225,200, 75,180, 43,205, 41,111,227,198,222,219,247,127,211,201,169, - 56,255, 24,146, 19, 5,176,180, 14,128,175,111, 99, 40, 20, 10, 88, 88, 88, 88,140, 29, 59,214,184,108,217,178, 18, 27, 27, 27, - 43, 66, 8,174, 92,185, 34, 5,208,175, 54, 94,141,196,158, 26, 75,245, 6, 42,224,154, 40,177, 86, 19, 99,161,224, 73,194, 75, -244,237,221, 51,183, 75,251,128,117,203, 86,111, 90,238,215, 56,200,121,202,180,112,222,154, 85,227,118,130,160,107, 85, 60, 79, -147,232,229,102, 13,137, 37,128,129,171, 63, 91,133,148,148, 36,251, 25, 31,200,194, 25,161,165,123, 19,159,206,214, 59,247, 94, -233,223,168, 81,253,122, 11,231,134,156,249,234,235,175, 6, 86,182,108,237,223, 23,246, 19, 33,164, 23,253, 43,227,238,252,253, -208, 98, 66,116, 52,148,233,233,250,194, 27, 55, 52,189,190,254, 58,223,171, 95,191,205,186,210, 82,167,242, 71, 5,135, 16,144, -114,215, 9,147,137, 48, 75,150,112, 40,195, 64,111,111,255,193, 82,160,113,109,156, 31,103,103, 7,143,155, 54,109,224, 79,231, -207,163,126,253,250, 21,239, 51, 59, 59, 59, 44, 90,180, 8, 11, 22, 44, 16, 62,124,248,176,221,177, 99,199,218,125,185,113,163, -203, 82, 32,216,156,114, 94,188,125,219,254,195,213,171, 87,180,108,211,198,251,192,161, 67,194,134, 13, 27, 2, 0, 94,188,120, -225,247,197,250,245, 62, 1,129,129,185,235, 62,250,104,127,252,178,101,205, 1,220,168,137, 51,231,250,117,221,177,180,180,105, -151,175, 92,177, 11, 8, 8, 0, 0, 60,123,246, 76,178,117,235,214,233,205, 67, 66,198,175,158, 53,107,229, 32,141, 70,102,147, -151, 39, 28,180,125, 59,115,120,228,200, 90, 57,203,203, 9, 0, 61,166, 76,249,168,107,207,158,205,130,167, 77,115,240,246,246, - 38, 98,177, 24,165,165,165,200,202,202,178,143,143,143,111, 24, 93, 92,172, 56,113,251,118,196,247,101,201,226,255, 34, 84,169, - 69,254, 78,150,172, 42, 53, 69,217,207, 30,103,206,156,161, 0,122, 12, 28, 56,240, 90,249, 11,220,104, 52,154, 37,178, 24,134, - 65,153,179,176,185, 5, 66,126,126, 62,242,243,243, 43,166,142,164, 82, 41, 46, 95,190,140,164,164, 36,240,120, 60,240,249,124, -148,150,214,158,131, 86, 36, 18,245,238,221,187, 55,115,251,246,109,248,250,250,194,210,210,178,162, 92,229, 27,159,207,135,155, -155, 27, 20, 10, 5,122,245,234,197,219,182,109, 91,239,154,132,150,173,173,237,251,163, 70,141, 18,148,255,173, 84, 42,193,229, -114, 43, 68,139, 82,169, 68, 97, 97, 33,100, 50, 25, 52, 26, 13, 58,118,236, 40,136,142,142,126,191, 38,161, 85, 25, 37, 37, 37, - 74,169, 84,106,215,181,107, 87,251,253,251,247, 63,235,216,177,163,255,111,122,218,213,171, 26,141, 70,195,227,112, 56,102,229, -209, 59,120,240, 96, 69,219,191,126,253, 26, 59,119,238,172,216,151,148,148,132,109,219,182, 85,164, 2,168,233, 30, 53,105,210, -100, 64, 68, 68, 68,155, 3, 7, 14, 20,113,185, 92, 60,123,246, 12,135, 14, 29, 2,165, 20,206,206,206, 40, 41, 41, 65,110,110, - 46,174, 92,185, 2,131,193, 0,177, 88, 12, 15, 15, 15,139,185,115,231,118, 9, 15, 15,231, 1,168, 86,104, 25,141, 70, 35,151, -203,133,143,143, 15, 66, 67, 67,161,209,104,192,231,191,209,151, 10,133, 2, 50,153, 12,177,177,177, 72, 75, 75, 67,109, 47, 25, - 11, 11,139,144, 3, 7, 14, 72, 4, 2, 1,212,106, 53,138,139,139,145,145,145,129, 87,175, 94,105,164, 82,169,193,218,218,154, -227,227,227,195, 17, 10,133,194, 97,195,134,145,114,193, 57,104,208, 32,199,136,136,136,209,181,137, 36, 66,136,115,211,166, 77, -151, 79,159, 62,221,162,114,159,205,201,201, 65,112,112,176,213,175,191,254,186,140, 16,114,136, 82,154,247, 15, 51,121, 83,153, -172,217,189,251, 49,207, 2,163,162, 93,188, 94,101, 26, 59, 47, 90,188,137, 1,128,239,118,125,222, 57, 42,250,245, 47, 77,234, -231,102, 28, 59,209,248,158,157, 93, 2,173,205, 34,248, 94,119,183,193, 46,142,118,163,130,135, 12,161,223,126,187,185,245,156, -217,211,132, 62,141, 23, 1, 0, 60,120, 18,244, 50,124, 70, 74,212, 47, 44,190,253,118,115,235,224, 33, 35, 98, 83, 83,211,118, -245,234,225,126,228,242,181,236,211, 53, 89, 12, 37,142, 22, 30, 86, 66, 21, 60,124,155,193,191,169, 8, 15, 31, 61,195,241,163, -183,208,180,121, 7,104,181, 90, 24, 12, 6,209,224,193,131, 75, 34, 35, 35, 53,207,159, 63, 47, 86,171,213,221, 41,165,207,107, -171,127,102,102,130,201,223,181, 67, 41,223, 82,104, 40,150,243, 75,150,174, 60, 54,178,117,251,190,109,236,221, 60,120,206, 34, -211,233, 1,125,218, 29,218,187, 59,116,193,202,176, 67,104,219,174,111,199,167,207,110, 52, 3,240,184, 74,241,250,130, 70, 7, -248, 17, 67, 74,114,242,192, 87,105,105,153,141, 93, 92,117, 47,100, 84, 63,127,233,247,125,186,118, 15,105,209,176,105, 55,193, -211,132,107, 36,116,201,232, 31, 87,111,248,106,108,185,216,250,249,210,143,221, 63,248,224,150, 0,128,150,213, 87,101, 95,231, - 66,161,167,216,199,135, 73,221,191, 95,237, 59,120,112, 17, 0,232, 74, 75,157, 82,211,210,108,173,172,172, 64, 41,133, 94,175, -255,141, 15,113,185,223,112,128,191,191,139, 57,156,169,159,126,218, 98,201,146, 37,200,201,201,129,193, 96, 0,143,199,123,251, -153, 13,149, 74,133, 15, 62,248, 0,219, 55,110,236, 96, 14,167,209,104, 36, 31,174, 94,189,226,147, 21, 43, 26,206,156, 57,147, - 83,249,217,235,224,224,128, 99,199,143, 11,118,236,216,225,185,124,251,246, 15,198, 9,133, 41,181,113,230, 55,106, 4,135,220, - 92,203,114,145, 5, 0,254,254,254,216,185,115,167,112,234,212,169,130,193,131, 7,111,122,216,178,229,214,205, 93,186, 36, 59, - 54,110,108, 35, 16, 10, 61,205,109, 79, 0, 40,214,104, 2, 54,111,221,106,127,231,206, 29,228,230,230, 34, 39, 39,167,124, 44, -163,109,219,182,100,194,132, 9,182, 13,188,188,218,253,197,183,251,119, 90,228,111,100,209,154, 81,197, 51,245,191, 62, 90,101, - 21, 34,101, 21, 36,149, 94,142,191, 17, 44,181, 9,173,119,129, 76, 38,131, 76, 38,195,238,221,187,193,231,243, 43, 94,190, 0, -160,211,233,204, 17, 45,129,238,238,238,144,203,229,104,220,184,241,111, 44, 89,124, 62, 31, 12,195,128,207,231, 67, 40, 20, 66, -171,213,194,219,219, 27, 37, 37, 37,129, 53,113,170,213,234, 86, 14, 14, 14, 21, 47, 88,173, 86, 91, 33,178,202,203,171,211,233, - 80, 84, 84, 4,165, 82,137,226,226, 98,168, 84,170, 32,115,234,107, 50,153,240,228,201,147, 23,254,254,254,173,184, 92, 46,196, - 98,177, 72,165, 82, 85,248, 22, 21, 22, 22,226,135, 31,126, 80, 77,156, 56,209,233,212,169, 83, 37,102,220, 92,252,231, 63,255, -129, 80, 40, 68, 73, 73, 9,190,253,246, 91,204,155, 55, 15,124, 62, 31,197,197,197,216,185,115, 39, 22, 46, 92, 8,134, 97,160, -211,233,176,117,235,214,234, 45, 27, 9, 9,169,183,111,223, 14,106,221,186,181,253,137, 19, 39,242,250,244,233,227,220,175, 95, - 63, 88, 90, 90, 66,173, 86, 67,175,215,163, 67,135, 14,104,210,164, 9,164, 82, 41,206,157, 59,151,239,231,231,231,116,231,206, - 29, 83, 78, 78,206,171,218, 94,226,149, 44,134, 48, 26,141,200,205,205,133, 76, 38, 67, 94, 94, 30,178,178,178,144,153,153, 9, -134, 97, 80,219,199,188,163,163,227,136,128,128, 0, 46, 0, 88, 90, 90,162, 85,171, 86, 88,177, 98,133, 65,173, 86,143, 2,112, -174,236,176, 1,223,127,255,253,137,155, 55,111, 50,238,238,238, 72, 76, 76,132,179,179, 51, 99, 97, 97, 81,171,208,114,117,117, -221,119,250,244,105,135,114,113, 93,222,206, 37, 37,111,110, 71,112,112,176,195,129, 3, 7,246, 1,120,255,159,246, 82,179,179, - 4,191, 85,128,141, 60, 50, 90,218,124,209,226, 77, 76,147,128, 55, 31,175, 51,102,130,249,114,227,199,205,199, 15,181, 57, 99, -103,169,224,215,198, 51,160,183,215,142, 33, 67,250,112,198,142, 25,148,196,231,219,249,238,250, 46, 92, 34,113,153, 90,201,196, -105, 3, 71, 39, 27,248,250, 8,200,177, 51, 79, 37, 75,151,125,166,253,127,236, 93,119, 88, 20,215,250,126,207,246, 70,239, 93, - 17, 5,165,168, 24,148,196,222, 11,104, 52, 38,150, 68, 99, 76,177, 36, 38,154,104,140,198, 68, 19, 83,136, 38, 38,106,162,215, -150,162,177,119, 99,175,104,140, 37,118, 1, 1, 69, 1,129,133,101,105,187,176,125,103,231,252,254, 16,184,200,165, 44,168,247, - 38,249,205,251, 60,251, 48, 59,156,121,231,156,153,179, 51,239,249,206,119,190,107, 23,146, 4, 0, 0, 32, 0, 73, 68, 65, 84, -111,227,134,111,239,110,222,178,127,176, 88,120,108, 32,128,169,245,113,167,103,148,237,211,155,164,225,218,226, 27,196,205,187, - 27,162, 59,182,133,151,103, 41,214,254,188, 21,193,173, 58,195,100, 50,193,201,201, 73,110,179,217, 44,124, 62,127,163, 61, 34, - 11, 0, 78,156, 40, 99, 35, 35,203,204,252,114,150,121,235,157,111,158, 27, 48,228,217,136,190,125,251,179, 71,143, 29,181,116, -235,100,201, 31, 50, 40, 90,117,248,216,138,219,249,202,123,161,145,237,187, 35, 37,249,212, 96,128, 36, 1,117,119,216,164,219, -244,112,235,214,228,212,214,173,147, 88, 3,123, 85,246,249, 23, 55,135,196,199, 79,136,234,217,163, 39,123,236,248, 73,179, 24, - 69,183,156,186,119,205,123,235,245, 33,187,127,220,184,108,224,225, 67, 63,183,209,104,179,247,255,252, 51,229, 68, 86,205, 65, - 26,195,120, 11, 36, 18,158,250,212, 41,166,253,107,175,153,170,126,143,114,185, 28,123,247,238,133, 88, 44,174,254,136, 68,162, -234,109,111,111,239,170,197, 87,118,113, 2, 64,126,126, 62, 10, 10, 10,224,236,236, 12, 79, 79, 79, 20, 20, 20,224,220,185,115, - 72, 79, 79,135, 80, 40,196,224,193,131,193,171,199,183,185, 54,231,168, 89,179, 6,132,183,111, 31, 84, 91,100, 1,128,197, 98, - 65, 73, 73, 9,134, 15, 31,206, 59,116,232,144,207,225,251,247,159,253, 24,216,216, 16,103,167,248,248, 98,213,142, 29,117,158, -251,169,167,158, 34,127,252,241,135,100,240,160, 65,239,206,252,226,139, 21,223,111,216,144, 99, 99, 24,159,166,180,157,199,227, -241, 8, 33, 8, 12, 12, 68, 73, 73, 9, 42, 42, 30,204, 96, 59, 56, 56,192,213,213, 21, 86,171, 21, 44,165,194, 39,121,175,235, -211, 34,127,147,129,234,154, 42,193, 85, 59, 50,188,160,114, 94,180,234, 65,209,187,230,139,133,101, 89,187, 68,150, 80, 40,108, -212,231,202, 30, 43, 87,109,216, 35,180,170,234, 42,149, 74,171,127,104, 53, 5, 86, 85, 61,121, 60, 30,248,124, 62,236,177,200, -179, 44,203, 47, 47, 47,199,206,157, 59,209,171, 87,175,234,105, 41,141, 70,131,178,178, 50,104, 52, 26, 24,141, 70,100,102,102, -226,196,137, 19,104,211,166, 13, 96,103,240,215,187,119,239, 94, 14, 14, 14,142,169,122,137,247,233,211, 39,224,151, 95,126, 81, -198,197,197,249, 81, 74,241,209, 71, 31, 21, 61,253,244,211, 30, 53, 95,242,141,129,207,231,227,220,185,115,104,211,166, 13, 40, -165, 16,137, 68, 72, 75, 75,131,151,151, 23, 88,150,133, 64, 32,128, 90,173,134,163, 99,195, 49, 18,147,146,146, 38,190,250,234, -171, 74,103,103,231, 14,197,197,197,249, 18,137,164,199,153, 51,103, 2, 45, 22, 11,156,156,156,224,228,228,132,131, 7, 15,194, -197,197, 5, 51,102,204,184,111, 48, 24,206, 41, 20, 10,111,131,193,112,163,160,160,224,163,166,220,111,134, 97,160,211,233, 80, - 90, 90,138,146,146, 18,104,181, 90, 24,141,198, 70,235, 88, 23,122,244,232,129,253,251,247,243, 19, 18, 18,126,188,123,247,193, -192, 48, 36, 36, 4, 51,102,204,224,251,251,251, 35, 51, 51, 19,151, 47, 95,134,197, 98, 1,165,180,193, 31,175, 80, 40,236, 51, -115,230,204,238, 65, 65, 65,196, 98,177,128,101, 89,152, 76, 38, 84,109,223,191,127, 31,225,225,225,188, 22, 45, 90, 60, 67, 8, -233, 99,207,194, 10, 14, 15,160,186,191, 7,254, 66, 47,128,231, 4,106,216,131,226,162,230,165,141, 44, 44, 44,252, 98,246,199, -127,188,246,253, 98,139,119,110, 62,208, 54,106, 4, 66, 35,250, 97,226,120, 6, 9, 95,239, 68, 80,139,182,200,206,206, 70,159, - 62,125, 68, 74,165,242, 85, 0,179,236,229, 62,118,236,130,237,232,193, 67, 47,140, 26, 51, 33,166,127,255, 56,230,200,145,131, - 72,186,113, 36,249,213, 49,207, 23, 82,182,130,184,185,200,174,166,165, 94, 10,237, 16,221, 27,102,198,214, 3,248,100, 49,128, -122, 31, 42, 25, 25,212,252,233,167,159,242, 14,236,249,121,252,139,227, 94,233,216,175,223, 64,235,145, 99,191,225,242,249, 99, -215,151, 44,126,227,116,194,178,109,125, 6, 12,126, 62,210,211,251,220,193,168, 48,211,235,129,238,206, 25, 92, 79,169, 27, 2, -169,148, 69,229,115,145, 71, 8, 40,165, 15,137,172,218, 66,139,199,227, 53,106, 0,168,201, 89,243, 93, 84, 53,160, 94,189,122, - 53, 36, 18, 9,196, 98, 49,132, 66, 97,163,238, 23, 53, 57,147, 51, 51,251,174,223,184, 81, 82,151,200, 42, 46, 46, 70,113,113, - 49, 42, 42, 42, 48,118,236, 88,209,167,151, 46, 61,213, 24,103,144,175,175, 73, 33,147,169, 82, 82, 82,252, 34, 34, 34, 30,170, -175, 86,171,133, 76, 38,195,198, 77,155, 68, 67,227,227,223,236,119,240,224, 18, 0,101, 77,109, 59, 33, 4, 94, 94, 94,112,117, -117, 5, 33, 4, 12,195,160,160,160, 0,201,201,201,184,116,233, 18,248,132, 48, 79,242, 30,215,165, 69,254,110, 86,173,218, 34, -171,166, 69,139,212,103,125,177, 87,104,241,249,252,102, 91,181,234,131, 61, 83,135,114,185,252,166, 82,169,236,230,239,239, 15, -134, 97,170,133, 86,237,169,195, 42,235,199,181,107,215, 32,151,203,111, 54,198, 73, 41,125,166, 75,151, 46,216,181,107, 23, 78, -157, 58,133,123,247,238, 65,175,215,195,100, 50,193, 96, 48, 32, 57, 57, 25, 44,203, 34, 42, 42, 10, 10,133,162, 81, 78, 0,208, -233,116,249, 66,161,176,173, 76, 38,171,222,231,235,235,139,226,226, 98,214,106,181, 98,253,250,245, 90, 31, 31, 31,133, 76, 38, -179, 91,184, 18, 66, 80, 88, 88,136,128,128,128,106, 31,173,242,242,114,120,121,121, 85, 9, 11,152, 76, 38, 56, 58, 58, 54, 58, -117, 72, 41, 53, 2,152, 89,131,187,243,168, 81,163, 54,111,221,186,181,213,241,227,199,113,241,226, 69,120,122,122,226,203, 47, -191,188,151,149,149,245, 34,165,244,210, 19,232,168,141,150, 41, 46, 46,222,121,243,230,205,103,186,116,233, 82,253,148,232,211, -167, 15,233,211,167,143, 71, 77, 83,191, 90,173,198,159,127,254,137,227,199,143,131, 16,130,219,183,111,219, 12, 6,195,230, 6, -206, 45,106,209,162,197, 47,243,230,205,115, 96, 24,166,186,111,203,100, 50, 72,165, 82,136, 68, 34,240,249,124,100,101,101, 97, -248,240,225,206, 63,252,240,195,207,132,144,214,148, 82, 11,254, 33, 40, 51,192,114, 45, 73,235, 28, 21,238,157,188,102,117, 66, -183, 73,147, 81, 53,117,200, 68,133,123, 37, 95, 75, 82, 57,199,120,193,226, 34,110,152,231,208,241,156,183,204,214, 67,195, 14, - 29, 78, 28,253,254,187, 51,132, 33, 33,225,133,199, 79, 94, 9,234,199,124, 70,220, 61,156, 80, 92,164, 69,214,125, 21,238,102, -155,105, 72, 72,120,225,229, 63,111, 74,190,254,110,105,168, 78,111,220,118,242,116,254,111,141, 12,202,140,132,144, 17, 75,150, - 75, 78, 79,120,181,179, 88, 38,243, 67, 73,209, 77, 4, 5,121, 98,248,208, 14,248,105,195, 57, 56, 59,187,193,219,219, 27, 60, - 30, 79, 97,111,219,139,138,138,200,206, 45,191,191,246,242, 43,111, 60, 61,104, 96, 60,115,248,200, 1,193,169,163,251,206,253, -188,230,195,221,148,175,147, 19, 90, 46,107, 25,236,115, 35,227,206,181, 23,251,246, 31, 11,153,200,177, 13,208,174,206, 14, 91, -189,192,128,226, 62,143, 7,233,203,175, 76,234, 58,104,208,179,204,145, 35,123,112,228,224,134, 11, 11, 22,180, 60,120, 47,111, -147,232,252,165, 92,233,136, 23,166,150,238, 63,116,203,252,252,176,224,116, 63, 69,180, 1, 28, 30, 30, 72, 10, 4, 42,198,100, - 10, 12, 24, 52,136,175,207,206, 22, 58,120,123, 51, 0, 96,181, 90, 27, 21, 90, 0, 88,123, 56,237,173,139, 94,175, 7, 11, 48, -246,112, 22, 20, 22,182,172, 28,132, 87,195,106,181, 86,139,172,226,226, 98,148,149,149, 65,161, 80, 64,109, 50,121,219,195, 57, - 48, 54,118,253,167,159,124, 50,107,199,206,157,162,154, 34,171,234, 35, 20, 10,177,104,241, 98,209, 59,239,191, 63,245, 77,129, - 96,122, 83,174,103,213,160,157,207,231, 67, 32, 16, 32, 59, 59, 27,247,239,223, 71,118,118, 54,178,179,179, 33,147,201, 64,235, -185,158,143,209,162, 69,254,174,253,180,106,234,176,230, 20,162, 93,225, 29,154,226, 12,111,175, 48,176,217,108,143, 85,104,233, -116,186,227, 39, 78,156,136, 29, 49, 98,132,224,194,133, 11,240,241,241,169, 22, 90, 85,127,171,166,163,228,114, 57,118,239,222, -109,209,233,116,199, 27,249, 49,157, 56,120,240, 96,204,252,249,243,133, 19, 39, 78, 68, 74, 74, 10, 38, 79,158,140,178,178, 50, -104,181, 90, 20, 23, 23, 67,175,215, 35, 54, 54, 22, 82,169, 20, 55,110,220,176,234,245,250, 19,141,188, 28,104, 97, 97, 97,133, -167,167,167,111,237,255,189,240,194, 11,222, 43, 87,174,212,167,166,166, 90,187,117,235,230,100,175,224,168,194,150, 45, 91,170, - 45,117,233,233,233, 88,185,114,101,181, 79,214,149, 43, 87,240,205, 55,223, 84,199, 62,107,162,149,241, 82,100,100, 36, 99,181, - 90,209,166, 77, 27,248,251,251,195,104, 52, 98,233,210,165,204,147, 16, 89,246,194,104, 52,238,152, 48, 97,194, 7, 87,175, 94, -245, 21, 8, 4, 15, 76,218,149,237,179, 88, 44,184,115,231, 14,146,147,147,145,154,154,138,146,146,146,234,129,192,181,107,215, - 74,173, 86,235,182,250,120, 61, 61, 61, 63,250,233,167,159,124,228,114,249, 67,253,185,202, 26, 90,101, 37, 85,171,213,112,113, -113, 65,191,126,253,188, 78,156, 56,241, 17,128,249,255,132, 23, 26, 33,132,244,237,197,239,252,206, 91, 35, 48,114,168, 60,103, -215,254,188, 63,190,249,122,102,165, 51,188, 87,242,200,161,254, 57,215,211, 92,240,194,115,123, 58,159, 60, 77,114, 27,242,165, -171,244,177,218, 27, 27,235,118,106,215,190,125, 63,207,157,253,238,149, 89, 51,223,240,212, 27, 50,164, 33, 45,196, 4, 0,238, -102,155,233,141, 20,214,248,205,146,119,175, 36, 44,254,129,167, 42, 46,155,124,241, 98,253,225, 13,106,138,151,200, 48, 72, 67, -218,245, 82,134,134,117, 15,190,112,110, 35, 28,228, 6,180,109,215, 25,131, 6, 62,131, 83,137,215, 80,160, 54, 34, 63, 63, 31, - 38,147,169,193,112, 9,169, 55,118,143,167,132, 6, 17, 74,238, 19, 30,149,142,159,240,122,143,248,248,103,233,254,253,251,152, - 61,187, 55,158,221,246,235,242, 29, 60,145, 80, 96, 48, 59,155, 9, 49,106,192, 75, 74,169,208, 61, 24,208, 8, 37,162,250,205, -175,149,129, 93, 35, 34,219,249,140,159, 48,217, 57,110,200,112,122,240,224, 30,118,219,214,245,167,182,173,107,191,145,229,105, - 69,249, 57,122,137, 70,107,213, 80, 34,118,169,208,178,122,213,221,214, 70,191,248, 23,254, 49,162,253,177, 13,184, 77,166,220, -138,156, 28, 95,183, 94,189, 36,119, 62,249, 68,238, 29, 27,107, 36,149, 62,196, 13, 9, 45, 62,159, 15,240,120,172, 61,156,246, -214,197, 96, 48,128, 5,172,205,225,100, 24,230, 33,145, 85, 37,180,170,236, 26,246,112,174, 89,176,224, 66,208,160, 65, 37,137, -137,137,222,189,123,247, 38,229,229,229, 40, 47, 47,127, 72,108,249,249,249,145,136,168, 40,249,150, 83,167, 66,230,219,121, 61, -237,105, 59,143,199,123,226, 66,235,239,140,186, 44, 89, 15, 89,180,234, 67,149, 69,203, 30,161,101,167, 69,203,106,181, 90,225, -229,229,133,162,162,162,122, 95,252, 60, 30, 15, 50,153,172,106,142,184,193,149,119, 38,147,105,233,172, 89,179,166, 13, 25, 50, -196,163,109,219,182, 80,171,213,240,246,246,134, 84, 42,173,246, 29,171,226,187,114,229, 10,126,250,233, 39,173,201,100, 90,218, - 8,231,119,139, 23, 47,126,107,228,200,145,110, 62, 62, 62,112,117,117,197,141, 27, 55,224,234,234, 10,173, 86,139,180,180, 52, - 56, 58, 58, 86,251,237,236,219,183,175,220,100, 50,125,215,136,120,163,103,206,156,177, 56, 58, 58,222, 80,171,213,252,146,146, - 18, 65,105,105,169, 64,171,213, 10, 53, 26,141,240,240,225,195, 30,206,206,206,250,147, 39, 79,170,131,130,130,248,247,238,221, -227, 91,173, 86,158, 29, 47, 71, 76,159, 62, 29, 34,145, 8, 38,147, 9, 75,151, 46,197,172, 89,179,170,125,178, 22, 47, 94,140, -121,243,230, 85, 11,231,181,107,215, 54,181,243,192, 98,177,192,106,181,194,106,181,218, 37,126, 31, 5,246, 8,118, 74,105, 1, - 33,100,104,151, 46, 93,142,110,223,190,221,189, 50, 38, 25, 84, 42, 21, 84, 42, 21,212,106, 53, 42, 42, 42,192, 48, 12,252,253, -253,161, 82,169,176,103,207, 30, 77,121,121,249,160,134, 86, 28,242,249,252, 9, 61,122,244, 16,212,174, 67,213, 40,175, 74,188, - 75, 36, 18, 40,149, 74,244,233,211, 71,156,152,152, 56,225,239, 46,180,170, 4, 76,120, 40, 68, 3, 7,189, 38, 10,143,236,106, -190,158,188, 63,167, 93,176, 42,103,220,112,167, 3, 0,112, 45, 73,229,124, 61,205, 5,225,145, 67,233,192, 65,174, 49,170,130, - 53,237, 35,194,136,165,161,116, 61, 0,224, 44,151,140, 26,208, 63, 86,233,168, 80,240,190, 89,178,246,208,191,254,245,221, 83, - 59, 14,252, 59,188,195, 55, 75, 30,132,119, 24,208, 63,150, 77,189,149, 58, 10,192, 58,123,197,203,208,161,195,174,254,244,203, - 79, 72, 77, 62,233,247,193,244, 14,226, 18,149, 21, 50,135, 64,196, 68,123, 99,205, 47, 55,113,253,250,245, 2,179,217,220,167, -193,190, 68,104, 80,114, 74, 82, 88,251,200, 8,159,241, 19, 38, 57, 13, 29, 58, 28,251,247,239,197,175,235,215,157,121,126,236, -200, 31,243, 74,181,124, 47,161, 92, 36,167,172,152, 47,114, 22,136, 36,178, 66,179,249,193, 26, 8,161, 80,234, 4,140, 98, 27, -152, 57,196,148, 73,227,156,251,246, 31,142, 3, 7,247,226,215,245,107, 78,127, 28,249,194,186,224, 78,225, 36,246,169,175,167, - 6,183, 10,110,161,171, 80,105,121, 68,108, 49, 26, 89,199,175,215,103,125,123,119,222,132,187, 87,147, 70, 45,225, 86, 29, 62, -132, 27,191,198,197,117,121, 39, 35, 67,228,217,189,187, 76,121,234,148,188, 50, 19, 73,131, 66, 75, 32, 16,128,214, 63,213,245, - 16, 39,217,176,129, 7,160,193, 69, 88, 34,145, 8,122,189, 30, 86,192, 98, 15,167,239,145, 35, 57, 25, 25, 25,161,110,110,110, - 15,137,172,146,146,146,234,109,163,209, 8,189, 94, 15,153, 76,150,108, 15,167,234,204, 25,227, 87,211,167,207,127,113,236,216, -229,199, 79,156,144,186,187,187, 67,163,209, 60, 36,180,204,102, 51,250,246,235, 39, 90,124,245,234,120, 0, 11,236,185,158,222, -125,250, 52,234, 15,204,231,243,193, 62,225,169,195,127,192, 96,117, 82, 93,194,139,215,216, 20,142,189,171, 14,235,122, 65, 18, - 66,250,215,218, 53, 47, 38, 38,198,152,158,158,142,160,160,160,106,177, 82,243,156, 78, 78, 78,112,113,113,193,149, 43, 87,240, -197, 23, 95, 24, 0,204,107,136,147, 82, 90,174,215,235,199, 12, 24, 48,192, 32, 16, 8,208,174, 93,187,234,248, 89, 44,203, 66, - 44, 22, 67,161, 80,224,234,213,171, 24, 54,108,152, 94,175,215,143,169, 29, 67,171, 14, 78,141, 94,175,127,105,224,192,129,250, -148,148, 20,244,232,209, 3,215,175, 95, 71, 69, 69, 5, 42, 42, 42,144,153,153,137,136,136, 8,232,245,122,172, 92,185,210,160, -215,235, 95,162,148,106, 26,226, 44, 47, 47, 31, 54,107,214, 44,254,230,205,155,131,253,253,253, 35, 59,119,238,220,182, 95,191, -126,173,159,123,238,185, 22,113,113,113,190,161,161,161,198, 65,131, 6,121, 14, 25, 50,196, 83,175,215, 11,255,248,227,143,124, -171,213, 58,164,145,235, 89, 45, 78,210,211,211,171,167, 10, 5, 2, 1,138,138,138,170, 35,247, 87, 61,148,234, 18,194,245,113, -214, 20,219, 85, 2,171, 74,112, 53,246, 14,168,135,179,209, 23,135, 88, 44,174,178,120,210,198, 56, 41,165,215,110,221,186, 53, -160, 87,175, 94,215, 94,123,237,181,242,130,130, 2, 56, 58, 58, 34, 36, 36, 4, 97, 97, 97,240,240,240,128,197, 98,193,238,221, -187,117,123,246,236,185,169,209,104,250,212,142,161, 85,155,147,199,227,101,214,245,144,173,178,102, 85, 9, 45,169, 84, 10,127, -127,255,170,107,155,217,148,235,217,204, 31,239,147,229,172, 20, 48,253,250, 14,106, 21, 23, 63,194,121,247,222,115,226,229, 43, -246,220,140,233,143,181,238, 45,181,251,220, 91,106,247,197,244,199,218,229, 43,246,220,220,189,247,156, 56, 46,126,132,115,191, -190,131, 90,165, 36,167,182,125, 40,239, 97, 29,245,148, 74,165, 93,123,116,143, 41, 77, 60,123,154, 77, 88,252, 3,175,111,159, -231,175,174,251,113,247,238,117, 63,238,222,221,183,207,243, 87, 19, 22,255,192, 75, 60,123,154,237,209, 61,166, 84, 42,149,118, -181,167,237, 83, 38,141,115,142,143, 27,142,253,251,119, 51, 59,182,172, 92,188,117,231,237, 94,175, 79, 59,163, 74, 79,191, 78, - 11,115,143, 64,200,203,198,173, 91,183, 52,102,179,185, 79, 93,142,240,117,113, 78,126, 99, 92, 77,145,245,187,187, 79,143,181, -183,110,193,118,236,216,111,214, 19, 39,174, 26,126,191, 86,168,185,156, 82, 84,162, 84,151,220,211,106,139,205, 44,107,131,205, -102,227,127,250,233, 3,135,221,250,238, 81,183,110,189,113,242,248, 38,172,255,101,181,134,101, 97,124, 97,251,118,219,168, 81, -159,208, 22, 45, 91,182,216,184,101, 19, 25,250,236, 8,103, 10,176,195, 70, 14,119,217,188,117, 51,105,213,166, 85,203,144,144, - 7, 33,109,254,150,125,233, 9,112, 46,160,180, 84,155,157,125,250,202, 15, 63,152,188,199,140,113, 19,123,123, 59,193,102, 35, - 85,207,247,250, 62, 2,129,224, 33, 11, 76, 67,156,254, 30, 30,121,251,246,237, 67, 88, 88, 24,252,253,253, 81,211, 71,182, 42, - 32,183,187,187, 59,118,238,220, 9, 10, 92,182,135,179, 83,112,240,149, 69, 95,125,101,102, 89, 22,165,165,165,255, 97,205, 42, - 45, 45, 5,203,178, 56,120,224,128, 89, 91, 81,177,222,222,182,247,225,243, 43, 94,236,217, 51, 33, 62, 62,222,146,145,145, 1, -150,101, 81,211,178, 85, 88, 88, 8, 7, 7, 7, 24, 77,166, 64, 66,136,220, 30,206,194,195,135, 21,104,228,185, 94,219,162,245, - 36,238,251,223, 93,100,213, 76, 40, 93, 83,116, 53,104,209, 98, 24, 6,129,129,129, 15,165,116,225,241,120, 15,125,154,178,226, -144, 82,186,129, 16,114,100,208,160, 65,243,159,126,250,233, 41,243,231,207,231,183,109,219, 22, 26,141, 6,174,174,174,240,242, -242, 66, 90, 90, 26,246,237,219,103, 43, 42, 42, 90, 5, 96,161, 61, 75,232, 41,165,167, 8, 33, 67, 59,116,232,176,117,206,156, - 57,206, 3, 7, 14, 20, 6, 6, 6,130, 82,138,171, 87,175, 98,215,174, 93,150,117,235,214,105, 43, 69,214, 41, 59,235,122,148, - 16,242,252,144, 33, 67, 54, 78,152, 48,193,209,102,179, 9, 51, 51, 51, 97, 50,153, 96,181, 90,113,255,254,125,203,254,253,251, - 43,244,122,253, 56, 74,233, 81, 59,248,174, 16, 66, 34,142, 29, 59, 54,225,143, 63,254,248,226,181,215, 94,115,239,215,175,159, -136, 97, 24,156, 61,123, 86,221,169, 83, 39,175,194,194, 66,203,206,157, 59,139,141, 70,227, 60,155,205,102, 87, 10, 30, 66, 8, -180, 90, 45, 60, 60, 60, 96, 50,153,192,178, 44,204,102, 51, 28, 28, 28,170,211, 38, 81, 74,209, 20,231,250, 90,125,128,111,177, - 88, 48,118,236, 88,176, 44,139,165, 75,151,130, 97,152, 38,147, 57, 59, 59, 95,190,118,237,218,208,232,232,232,106,241, 82,213, -135, 36, 18, 9, 60, 60, 60,224,238,238,142,253,251,247, 67, 40, 20, 94,182,243, 30, 93, 7,208,137, 16,210,245,230,205,155, 47, - 3,136,182, 88, 44,254, 54,155,141,240,120,188,124, 74,233, 13,173, 86,251,163,189, 41,120, 10, 11, 11,191,120,229,149, 87, 58, -109,218,180,201, 65, 32,248,247, 79, 67, 32, 16, 64, 34,145,160, 42, 56, 38,165, 20,102,179, 25, 31,125,244,145, 86,167,211,125, -241, 79,121, 80,196,116,142,197,154,149,203, 28, 78,156, 60,162,190,117, 27,187,106,134,112,112, 17, 3, 39, 79,147, 92, 85,193, -154,246,202,156, 28,135,152,206,177,118,113, 90,205,150,226,151,198,189, 23, 84,153,130,231,163,204,204,172,213, 27, 55,124,123, - 23, 0,190,254,110,105,168,170,184,108,114,234,173,212, 81,171, 87,111,233,106, 53, 91,138,237,225,252,183,120,217,168, 1,133, -145, 82,122,145, 16, 18, 60,108,204,225,121,109, 90, 57, 61, 91, 88,108,200,171,168,208,191, 77, 41,189,107,111,219,187,119,235, -133,147, 71, 55,227,215,245, 27,181,148,229, 27, 61, 60, 60, 40, 0,220,186,229, 65,111,221, 42,163,255,246, 43,118,209, 9,233, -245,133,239,189,221,239, 61,141,182,228,187,239, 86, 52, 28,184,182, 67,199,167,209,161,227,211,152,246,246,135,206, 17,145,237, -130, 0, 96,251,118,106,139, 10, 37,191,205,255,248,147,103, 23, 46,252, 4,218,114, 19,170,210,245,164, 37,165, 28,200,200,160, -102,238,181,245, 48,230, 51,204, 69,188,247, 94,168,190,164,196,179,251, 7, 31,120, 8,222,127,159,215,144, 51,124,205,223,175, - 61,156,151,110,220, 56, 48,249,245,215,243, 22,204,159, 63,104,213,234,213,178,246,237,219,163,160,160, 0,237,218,181,131,191, -191, 63,142, 29, 59,134,157,219,182,233,202,202,203,231, 1,248,151, 61,156, 27, 14, 30, 76,107, 27, 25, 89,180,122,245,106,191, -248,248,120,162,211,233,160,209,104,160,209,104, 96, 50,153, 80, 25, 16,154,166,223,190,125,203,106,181,174,178,183,237, 54,181, - 90,186, 48, 54, 54, 87,196,178,139,158, 31, 57,114,214,194,207, 62,147,180,106,213,138,152, 76,166,106,171,150,197, 98,129,131, -131,131,197,108, 54,187, 3,208,219,195, 41, 89,183,142, 81,171,213,240,244,244,172, 14,215, 84, 51, 46, 97,121,121, 57, 40,165, - 92, 48,221,230,136,176,250,222,229,110,110,110,151, 5, 2, 65, 64, 77,235, 86, 93,185,243,106,238,179, 90,173,185,106,181, 58, -166,166,226,165,148, 30,175, 71, 32,132, 0,248,178,111,223,190,207,207,156, 57,147, 36, 38, 38, 98,207,158, 61,244,238,221,187, - 59, 0,204,171,239, 33,217, 8,167,163, 68, 34,153,161, 80, 40,250, 87,133,112,144,203,229, 55,117, 58,221,113,147,201,180,180, -190,104,240,141,112, 58, 73, 36,146,233, 10,133, 98, 64,121,121,121, 52, 0, 56, 58, 58, 94,211,233,116,199, 76, 38,211,178,250, - 18, 85, 55,194, 41,115,118,118,254,194,195,195,227,165,247,223,127,223,253,204,153, 51,249, 39, 79,158, 20,149,149,149,109, 50, -155,205,245, 38,149,174,139,211,221,221,253, 50,159,207, 15,120, 18,247, 8, 0, 58,118,236,184,127,216,176, 97,241,227,198,141, -131,213,106,197,191,254,245, 47, 28, 59,118,236,192,237,219,183,135, 54, 52, 26,173,205, 73, 8,241, 8, 8, 8, 72,156, 50,101, - 74,139,177, 99,199,202, 93, 93, 93, 33, 16, 8,160,211,233,112,231,206, 29, 92,189,122,149,238,221,187,183,226,202,149, 43,185, -122,189,190, 55,165,180,200,222,235,249, 40,163,230,218,156, 66,161,176, 87, 96, 96,224,150, 5, 11, 22, 56, 14, 24, 48, 64,230, -238,238, 14, 62,159, 15,171,213,138,252,252,124, 36, 37, 37,225,200,145, 35,186, 29, 59,118,232,138,139,139,199, 82, 74, 79,255, - 47,234,249, 56, 57, 35,194,200,199,181, 18, 69,215, 27,237,189,161,178,246,212,179, 95,111,191,225,163,158, 31, 50, 24, 0,182, -239, 60,116,248, 68,162,114,111,115,235,217, 88, 93,237,225, 12, 15,229, 47, 72, 78, 73,122, 40,160,101,100, 68, 84,122,120,251, -145,159,219,195, 85, 21, 25,190,118,219,107, 68,219,175,105,211,125,104,154,181, 42,241,244,135,243,230,226,203, 47, 18,176,119, -251,238, 3, 41, 25,116,255,223,185, 47, 61, 73,206,170, 36,200,114, 95,223,158, 75, 89,118,238,245,164, 36,135,154, 3,182, 42, -203,115,205, 65,165,159,159, 95,161, 82,169,244,182,135,115,232,247,223, 91,244, 10,133,100,238,162, 69,189, 42,140,198, 94, 11, - 23, 46, 20, 92,186,116, 9, 43,127,248,129, 49,230,230,110, 84, 3,211,235,154, 13,105,136,179,197,244,233,210,217, 43, 87, 78, - 12,105,211,198,235,229,151, 95, 22, 10,133, 66,232,116, 58,228,228,228,224,232,145, 35,230,148, 91,183, 82,180, 90,237,179,148, - 82,165,189,156, 67,191,255,222,226, 18, 18, 2,185,167, 39, 61,113,234,148,243,228, 25, 51,166,180, 12, 14,118, 30, 52,120,176, -208,201,201, 9,165,165,165,200,204,204,196,238,221,187, 11, 43, 42, 42,252, 40,165, 54,123, 56, 55,254,241, 71,135,131,167, 79, -191,240,249,231,159,139,163,162,162,224,236,236,140,242,242,114, 36, 37, 37,225,244,233,211,166, 85,171, 86,105, 52, 26,205, 20, -134, 97,246, 61,169,251,254, 79,157, 58, 36, 79,210, 21,192,158, 27, 65, 8,137, 1,240,113,229,215,207,236,200, 25,248,143,121, -248, 16, 66,130,220,220,220,214, 24,141, 70,106, 48, 24, 38, 83, 74,239,255,213,234, 73, 8, 17,196,196,196,172, 44, 44, 44,236, - 74, 41,133,179,179,243,185,228,228,228, 55, 41,165, 76, 83, 57, 9, 33,124, 0, 93, 29, 28, 28, 98, 29, 29, 29,123,153, 76,166, -240,202,233,183, 91, 58,157,238,180,197, 98,185, 8,224, 28,165,212,246,191,108,123,101, 61, 7,248,249,249,189,206,178,108, 27, - 66,136,139,205,102,131,213,106, 45, 99, 89,246,142, 70,163, 89, 7,224,216,255,186,158,143,139, 51,178, 13,121,142,242, 16, 94, -159, 32,120, 72,216,212, 18, 16,132,197,173,228, 59,116,119, 19,250, 60,111, 72,255,192, 21,192,131,149,137,141,165, 50,122, 72, -104,217, 33, 94,154, 44, 50,219, 8, 94,161,132, 6, 61, 60,250, 36,247,219,117,120,238,215, 71, 17, 90,246, 34,178, 45,233, 5, -138,174, 44,197,197, 91,183,233,201,127,234,179,238,113,114, 38, 16,226,246,131,171,235, 57,158, 64,224, 3,128, 87,105,125, 97, - 89, 66,108,148, 16,166,230,244, 86,205,129,101, 99,156, 22,160,189, 80, 34, 9,180, 49,140,119, 1,224,112,208,102,123,202, 72, -105, 69, 0,240,241, 85, 74,211,154, 83, 79, 11,208,158, 47,145, 4, 29,164,116,184, 90,161,232, 80,104, 48,120, 2,160, 14, 10, -197, 45,173, 78,183,222,104, 52,174,168, 35,121,123,163,156, 34,137, 36,192,198, 48,222, 0,192, 19, 8, 10,183,154, 76,129,185, - 78, 78, 47, 27, 77,166, 22, 14, 14, 14, 86,179,217,172, 53, 26,141,227,172, 86,235,137,166,180,253, 14,195, 68,252,193,227,245, -176, 40, 20,238, 22, 66, 20,102,134,177,152, 45,150, 28,163,209,120, 19,192,183,148,210,140, 39,121,223,255,177,168, 90,157,246, - 36, 62, 0,250,115,156, 28, 39,199,201,113,114,156, 28, 39,199,249,228, 57, 1,200, 1, 4, 1,224,255, 29,219,254, 79,250, 0, -152, 84,181, 45,224,164, 38, 7, 14, 28, 56,112,224,240,143, 48,156,232, 81,135, 79, 22,135,255, 45, 8,128,254,245,220, 48,187, - 77,130,205, 89,125, 96,199, 20, 3,199,201,113,114,156, 28, 39,199,201,113,114,156,255, 48,206,198,184,255,142, 83,146, 13,229, - 58,228,166, 14, 57, 78,142,147,227,228, 56, 57, 78,142,147,227,228,166, 14,159,208,135, 7, 14,245,169, 83,111, 66,136,247,227, - 46,203,225,159,221, 23,234, 56,214,159, 16,226,223,196,242,190,220, 85,231,192,129, 3,135,127, 6,254,235, 66,203,222,151,214, - 35,190,220, 30, 73,248, 16, 66, 18, 8,129,242,193,135, 36, 60,174,178,118,156,215,207,211,211,243,157,200,200,200,141, 62, 62, - 62,211, 8, 33, 94, 77, 60, 62, 84,161, 80, 44,115,112,112, 72,116,112,112, 72, 84, 40, 20,203, 8, 33,161,143,233,190, 17, 66, -200,100,169, 84,122,202,207,207, 47, 79, 34,145,156, 34,132, 76, 33,205, 76,112, 73, 8,105, 75, 8, 89, 72, 8,249,140, 16,210, -161, 41,199,122, 71,141,216,230, 21, 53,226,134, 87,212,136, 36,143,246,207,134,122, 69,141, 72,242,138, 26,113,195, 59,106,196, -182, 39,208, 95,155,125,127, 43,143,189,255,224,211,248,177,132,144,111, 9,144, 67, 8,114, 31,181, 47,113,224,192,129, 3,135, -191, 6,154,228, 12,239,239,239,255, 60,165,116, 50, 0, 74, 8, 89,147,151,151,183,179, 25, 47,158,217,149,219,139, 41,165,115, - 31,165,156, 29,199,126, 71, 41,157,213,116,145,134,217, 44, 75,121, 0,192,227,145, 15,188,189,189,229,124, 62,255, 63, 28, 12, -109, 54,155,156, 16, 76, 99, 89, 74, 42,203,206, 38,132, 44,163,148,170,154, 35, 14,199,143, 31,255,221,178,101,203,164,114,185, - 28,217,217,217, 3,167, 76,153,210,141, 16,242, 30,165, 52,191,177,227,101, 50,217,139, 93, 98,187,190,183,232,235, 37, 14,222, - 94, 94, 10,198,198, 90, 50,179,179,228, 31,205,153, 21, 43,147,201,150, 53,148, 76,185,182,160, 2, 48, 73, 32, 16,140,150, 74, -165,173,141, 70, 99, 6,195, 48, 59,248,124,254,160, 47,190,248, 34, 42, 46, 46, 78,170,213,106,197, 12,195,180,249,245,215, 95, -223,251,233,167,159,134, 16, 66,134, 55,180, 76,191,202,162, 67, 41,205,171,177,251,133,236,236,236, 24,145, 72, 68, 66, 66, 66, -120, 0,110, 52, 82,190, 26, 20, 8, 77, 62,187,189, 61, 0, 68,118, 31,149,158,124,118, 59, 42,183,159,192,160,224,225,190, 32, -149, 74, 87, 25,141,198,251, 85,255,175,172,167,202,158, 99, 9, 33,203, 43,211, 7,197, 0,120,185,178,232, 6, 74,233,101, 66, -136,143, 84, 34,153, 97, 48, 26, 9, 0,242, 40,125,137, 3, 7, 14, 28, 56,252,215,141, 72,157, 40,165, 87, 43,103, 36,226, 1, - 28,168,122,119, 55,117,213,225, 91,183,111,223,118, 0,128,176,176,176, 55, 1,236,108, 66, 37,254,227,197,211,175, 95,191, 78, - 50,153,236,161, 40,200, 6,131, 65, 76, 8,250, 53, 71,188, 84,157,195,108, 54,241,132, 66, 49,120, 60,242, 94,135, 14, 29, 90, - 22, 21, 21,157,225,241,120, 27,115,115,115, 75,155,113,241,176,118,237,218, 48, 95, 95,223,255,136,214,156,159,159, 47, 30, 62, -252,217, 38,241, 77, 36, 68, 98,146, 72, 98, 69,132,248,218, 24,198, 5, 0, 4, 2, 65,105, 91,103,231,152, 47, 63,255, 92, 78, - 8, 97,139,139,139, 97, 48, 24,240,238,187,239,202, 82, 82, 82, 70, 0, 88,209, 72, 29,195,158,126,166,219,187, 71,142, 28, 14, -215,150,148, 26,215,126,183,250,138, 65, 32,210, 7, 71,180, 19,173, 92,179,222,117,210,196,113,111, 19, 66,174,213,149,142,164, - 22, 15, 15,192,238, 25, 51,102, 68, 14, 29, 58, 84, 92, 94, 94, 46, 53, 24, 12, 45, 55,110,220,248, 81, 76, 76,140, 67,116,116, -180,120,203,150, 45, 68,163,209,128, 82, 42,111,215,174, 29, 29, 61,122,180,113,235,214,173,211, 0, 44,111, 76,248,242,249,252, -165,109,219,182, 93, 80,217,102, 81,141, 50,194,136,136, 8, 5, 0,164,165,165,125, 74, 8,102, 52, 36,178, 9,112, 59,178,251, - 40,128,160, 77,242,217,237,210,200, 30,163,140,160,184, 67,128,219,149, 3,130,133, 64,141,184, 80, 15,227, 86, 94, 94, 94,179, -114, 19,198,199, 15, 37,132,144, 29,126,126,126, 59, 11, 11, 11,131, 9,193, 27,246, 14, 6, 8, 33,196,221,221,253, 21, 0, 9, - 0, 94,191,117,235, 86, 39, 0, 8, 15, 15, 23, 1,184,236,228,228,212,205, 98, 54, 19,238,113,197,129, 3, 7, 14,127, 75,116, - 2,112, 21, 64,124,141, 20, 60,107,154, 35,180,196, 0,112,230,204, 25, 0,144, 52, 71,244,213, 20, 48,211,167, 79,135,175,175, -111,109,241,130,196,196, 83,143,210,216,135,206,241,217,103,159, 57,148,149,149,245,255,241,199, 31,123,250,251,251,127,147,151, -151,119,161,161,131, 41,165, 42, 66,200,226, 74, 11, 4, 36, 18,105,250,148, 41, 83,174, 86,254,187,229,111,191,253, 38, 31, 54, -108,152, 30, 64, 22, 0, 72, 36, 82,127, 62,159, 23,246,192,233, 13,139, 27, 18,132,163, 8, 9, 17,139,197,125, 39,127,255, 61, -243,212,176, 97, 2,133,167, 39, 1,128,172,212, 84,247,197, 95,127,221,173,244,238, 93,177,193,221,189,184, 88,167, 51,164,167, -167, 67, 34,145, 16, 62,159,255, 84, 99, 13, 86, 40, 20,239,124,254,229, 34,133,182,164,204, 96,212,150,155,249,140,213,228, 40, -147,219, 84, 5,133,197, 14, 50,133,254,131,143, 63, 17,191,245,198,132,119, 0,188,217, 8,213,180,247,222,123, 47,188, 75,151, - 46,254,219,182,109, 35, 26,141, 6, 2,129,192, 33, 58, 58, 26, 49, 49, 49,182,147, 39, 79,146,224,224, 96, 68, 69, 69,225,236, -217,179, 56,119,238, 28,233,212,169,147,124,215,174, 93,227,235, 18, 90,181,197, 53,159,207,123,183, 93,187,118,209, 10,133,194, - 28, 22, 22,134, 55,222,120, 3,148, 82,244,239,223, 63,202,193,193, 97,167, 78,167, 19,167,165,165,246,108, 76,100,171,146,246, -140, 6, 0,175,168, 17, 55, 0,180, 7,197,157,194,164, 61, 53,167, 31,195,211,210,210,158, 46, 45, 45,173,118, 70,172, 74, 96, -222,179,103, 79,187, 59, 82, 85, 95, 24, 54,108,232, 7, 0, 33,253,251,247, 47,155, 54,109, 26, 47, 53, 53,245,165,231,158, 27, - 17,117,251,246, 29,212, 87,207, 90,253,136,188,242,202, 68,149,131,131,195, 72, 63, 63,191, 52, 0, 2,145,168, 90,103,242,189, -189,189, 61, 59,116,232, 48,213,205,205,173,144,207,227,121, 81, 80,218, 88, 95,226,192,129, 3, 7, 14,127, 41, 28,168, 20, 87, - 7,106,255, 67, 0, 0, 7, 14, 28,160,255, 30,181,199,147,134, 94, 60,215,175, 95, 15,212,235,245,176,231, 37, 80,115,137, 38, -165, 84,197,231,243, 87,242,120,228, 77, 66, 8,162,162,218,223, 91,186,116,105, 93, 57,189,204, 81, 81,237,239,241,249,188, 86, -148, 82, 16,194,251, 23,203,218, 84,117,113,214,247, 98, 20,139, 37,179, 1,192,199,199,247,238,161, 67,135,204, 47,188,240, 2, -190,254,250,107,209,156, 57,115,102,181,104,209, 98, 90,118,118,118, 65,125,245,172,252, 62,215,219,219, 91,190,118,237,218,176, - 41, 83,166, 92, 85, 42,149,115, 1,192,207,207, 47, 1, 64, 4,128,172, 26,251,176,106,213,214,188, 55,222,120, 35, 93,165, 82, -205,173,143,243,121, 66, 90,183,104,215,174,239,194, 51,103, 40,207,100, 34, 69,191,255,174, 85,171, 84,214, 12,181, 90,254,203, -229,203, 67, 63, 74, 72, 16, 6, 6, 5, 33,113,223, 62,143, 34,189, 94,173, 49,153,140, 42,149,138, 50, 12,115,206,142,182, 71, -122,121,122,201, 87,127,251,175, 75,142, 66, 62,235, 21,224, 79,132,110,110, 2,158,220, 73,204, 23,240, 76,173, 90,134,138, 1, - 68, 54,118,143, 68, 34,209,248,129, 3, 7,202,183,110,221, 74,162,162,162,224,226,226,130,223,127,255, 29,215,174, 93, 67,105, -105, 41,207,106,181,162,115,231,206, 88,180,104, 17,130,130,130, 80, 86, 86,134,251,247,239,123,136,197, 98,207, 6,174,231, 67, -253,105,246,236,217,240,245,245, 5,195, 48, 40, 41, 41, 1,195, 48,112,112,112, 0, 0,228,230,230, 98,223,190,189,141,246, 37, - 59, 69, 18,158,121,230,153,114, 66,200,173,218, 22,173,166,112,250,251,251,111, 81,171,139,134,244,237,219, 23,165,165,165,214, - 79, 62,249, 4, 29, 58,116, 64, 88, 88,152, 61,125,126,174, 68, 34,249,177, 69,139, 22,223, 78,159, 62,221,215,205,205, 13, 38, -147,233,163,130,130, 2, 76,157, 58, 21, 0, 16, 23, 23,215, 65, 40, 20, 30,122,237,181,215, 16, 28, 28,156, 87, 82, 82,114,255, -202,149, 43,111,232,116,186,164,230,182,221,206,235,195,113,114,156, 28, 39,199,249,151,226,180, 87,139,252, 21, 81, 57, 77,184, -166,198,247, 53, 15, 9,173,248,248,120,114,224,192, 1,106, 71,195,138, 3, 2, 2, 2,101, 50, 25, 0, 20, 55,181, 34, 54,155, -109,154,135,135, 71,225,220,185,115,187,135,133,133,153,167, 77,155,150,148,153,153, 57,175,102,153,224,224,224, 47,126,248,225, - 7,164,167,167,103, 37, 36, 36,156, 45, 42, 42,250,172,137,141,157, 67, 8, 89, 90,105, 29, 43,218,183,111, 95,135, 51,103,206, -188,249,221,119,223,121,190,245,214, 91,162,119,222,121,103, 28,128,175, 27,227,225,243,249,250,186,166, 11,235,130,175,175,175, -185, 46, 31,174, 42, 12, 35, 68,230, 36, 22,247, 89,120,230, 12, 53,103,101,233,127, 90,178,196,113,245,159,127, 46,176, 82,234, -237,229,229,133, 30,221,186, 85, 72,249,252,162,194,130, 2,214,171,117,107,126,230,161, 67, 30, 6,177, 88,185,117,235, 86, 77, -113,113,241,158, 70, 77,120,132,104, 89, 74,205, 14, 1, 65,214, 23, 70, 12,136,186,116,241, 90,170,163,151, 7,175, 83,116, 84, -135,212,244,172, 43, 96, 89, 11, 33, 68,219, 24,143,179,179,115, 88,113,113, 49,180, 90, 45, 60, 61, 61,177,116,233, 82,248,248, -248, 64,175,215, 35, 57, 57,153, 6, 4, 4,144, 51,103,206, 32, 32, 32, 0,106,181, 26,102,179, 25,229,229,229,133, 38,147,201, - 80,159,240, 21, 8, 4, 63,243,120,100, 34, 33, 4,173, 90,133,100,175, 88,177,194,204,178, 44,194,195,195,241,220,115,207, 97, -215,174, 93, 72, 78, 78,174,178, 60,153, 91,180,104,153,205,227,145, 22,149, 90,169,217, 86,157,170,212, 62,121,121,121, 35,155, -101, 22, 37,132,231,231,231, 55, 46, 52, 52,244,205, 23, 95,124,209, 42, 22,139,161,211,233,170,174,133,117,200,144,184,178, 97, -168,130,175, 28, 0, 0, 32, 0, 73, 68, 65, 84,195,134, 58, 31, 56,112,160,193,122,154, 76,166,187,222,222,222,175,191,247,222, -123, 27, 87,173, 90,229, 58,111,222, 60,176, 44, 11, 74, 41, 24,134,169, 78,250,205,178, 44,118,239,222,141,140,140,140, 47,106, -138, 44, 14, 28, 56,112,248,255,130, 38,104,145,191, 28,106,248,102,161,182,216,250,175, 71,134,231,243,249,171,143, 30, 61, 26, -221,179,103, 79, 65,191,126,253,162, 2, 2, 2,162,114,115,115,147, 0, 32, 32, 32, 32,106,240,224,193, 81, 94, 94, 94, 88,182, -108,153,158,207,231,175,110,166,178,172,249,210,187,234,235,235,251,205,174, 93,187, 22, 79,158, 60, 25, 62, 62, 62, 17,255,237, - 54, 59, 73, 36,157, 94, 91,186,148, 17, 90,173,188,239,191,249,198,105,201,169, 83,139,183,109,223, 46,120,230,153,103, 8,165, - 20, 55,111,220,144, 45, 90,190, 92, 62,118,196,136,172,180,187,119,153,189, 71,142, 88, 85,121,121, 37,121,106,245,124, 74,105, - 73, 99,252, 86,171,245,252,237,219,183,253,122,244,122,198,255,244,159, 73,215, 94, 24, 17,215, 87, 40,224,145, 59, 89,185,151, -125,125, 60,156, 19, 79, 29, 55, 88,173,214,243,141,241,232,116,186, 76,134, 97,220, 40,165,158,137,137,137,240,244,244, 68,105, -105, 41,172, 86, 43,204,102,179, 89,175,215, 75,139,139,139, 97, 52, 26, 97, 50,153,224,228,228,132,155, 55,111,170, 24,134, 57, - 89, 31, 39,195, 48,175, 73,165,210,207,132, 66,161, 88, 36, 18, 41, 47, 95,190, 12,173, 86,219,210,197,197,229,107,134, 97,160, - 84, 42,113,230,204,153,247,157,156,156,178, 0, 64, 42,149, 66, 44,150,184,155, 76, 38,166, 62,103,120,123, 45, 90,205,133,175, -175,111, 80,171, 86,173, 22,126,240,193,236,240,142, 29,163,161, 86,171,193,178, 44, 20, 10, 5,244,122, 61,156,156,156,208,181, -107,215,204,133, 11, 23,230, 83,138, 73,141,137, 65,149, 74,165,246,247,247,159, 54,121,242,228,207,194,194,194, 90, 81, 74, 17, - 26, 26,138,129, 3, 7,226,208,161, 67, 72, 79, 79,135, 78,167,179, 93,184,112, 97,179, 82,169,252,141,123,220,114,224,192,129, -195,223, 79, 39, 86,249,102,213,180,102,253, 79,132,150, 74,165, 82, 7, 4, 4, 28,190,114,229,202,208,209,163, 71, 35, 49, 49, -241, 21, 0,239, 1,128, 68, 34,121,101,244,232,209,184,114,229, 10, 82, 83, 83, 15,171, 84, 42,245,227, 56,167, 88, 44, 54,154, -205, 15,140, 83, 82,169, 84,218,196,195, 91, 86, 78, 25, 2, 64,203, 6,246,213, 11,158, 64,224,219,126,240, 96, 65,233,181,107, -218,181, 23, 47,126,182,113,227, 70, 65,247,238,221,137,213, 98,129,141,101, 17, 18, 18, 66,250,245,239,175,248,121,227, 70, 55, -155, 78,119,230,243, 15, 62,248,125,205,107,175, 85,164, 83,154,101, 79, 5, 77, 38,211,242, 55,167,190,222,255, 84,226,239,254, - 17,237, 90,187, 29, 62,122,234,170,187,187,179, 60,172, 77, 27, 69,113,105,137,109,222,156,247, 5, 38,147,233,251,198,120, 12, - 6,195,238,227,199,143,143, 8, 12, 12,244, 76, 74, 74,130,217,108,134,205,102, 67,191,126,253, 64, 41,149, 0, 96, 5, 2, 1, - 82, 83, 83, 97,177, 88, 10,111,223,190,173,188,115,231,142, 4,192, 87, 13,241, 26,141,198,236,154,223, 3, 3, 3, 7,196,199, -199,131, 97, 24, 12, 30, 60, 24,123,247,238, 29,144,146,146,178,164,166,230,123,212,123, 94,105, 33, 11,247,247,247,223, 85,185, -203, 46, 39,248,128,128,128,168,208,208,208, 85, 95,125,245,149, 40, 32, 32, 0,148, 82,184,186,186, 64,175,215,163,168,168, 24, - 17, 17, 17, 8, 12, 12,196, 87, 95,125, 5, 0,155,237,181,184,229,229,229,221, 1, 48, 58, 34, 34, 66, 84, 86, 86, 22, 51, 96, -192,128,101,253,251,247,199,213,171, 87,241,251,239,191,143,149, 72, 36,133, 22,139,133,241,245,245,157, 68, 8,113,178, 88, 44, -155,138,138,138,242,185,103, 23, 7, 14, 28, 56,252, 45, 80,229,163, 85, 29, 37,190,201, 22,173,136,136, 8,133, 70,163,121,185, -101,203,150, 98, 0,144,201,100, 17,173, 91,183,158,149,145,145, 81,222,212,218,232,245,250,109, 27, 55,110, 28,248,237,183,223, -138,226,226,226, 90, 7, 4, 4,116, 1,128,145, 35, 71,182,118,116,116,196,198,141, 27, 45,122,189,254,177,197, 68,178, 90,173, - 61, 59,119,238,140,146,146, 18,100,101,101, 53,105, 90,230,183,223,126,147,227,129, 95, 86,131,251, 26, 2, 99, 54,187,186,248, -251,243,242, 78,157,178,148,104,181,190, 61,123,245, 34, 86,139, 5, 60, 30, 15,197,197,197,184,127,255, 62,156, 93, 92, 72,234, -237,219, 14,235,102,207,254,173,101,199,142, 98,155,217,236,222, 4, 81,161, 35,132, 76,124,123,218, 91,187, 55,109,218,236, 89, -166,213,102,200,100,114,147, 68, 34,242,153,254,246,219,182,146,146,146, 9,148,210, 10, 59,168,190,218,180,105,211,224,193,131, - 7,223, 8, 10, 10,242, 82,171,213, 62,101,101,101,182,146,146, 18, 62, 30,248, 90, 17, 0, 56,117,234, 20,180, 90, 45, 99,179, -217,206, 0, 88, 72, 41, 53,219, 91,215,150, 45, 91, 58,199,198,198,246,246,244,244,132, 70,163,129,187,187, 59,162,163,163,123, -183,108,217,242,199,172,172, 44,205,227,236,245,199,142, 29,115,164,148, 62, 77, 41,197,224,193,131,237, 58,198,102,179,189, 26, - 31, 31, 47, 34,132,192, 96,208, 67, 42,149, 65,161,112,128,163,163, 19,194,194,218, 66,169, 84, 98,208,160, 65,230,140,140,140, -149,249,249,249, 77,238,163, 26,141,102,120,215,174, 93,103, 78,157, 58, 21, 12,195, 96,248,240,225,200,201,201, 89,146,153,153, -185,213,207,207,111,220,171,175,190,234,233,238,238,142,153, 51,103,202, 0,124,202, 61,187, 56,112,224,192,225,175,143,218, 62, - 90,117, 90,180, 26,154, 19,245,245,245,237,225,230,230,246,145,193, 96, 16, 87, 77,201, 16, 66,196,158,158,158,123,253,252,252, - 18,148, 74,101,147,156,226, 74, 75, 75,181,190,190,190,123,207,159, 63, 63,106,228,200,145, 56,118,236,216,132, 74,161,133,243, -231,207,227,222,189,123,123, 75, 75, 75,181,143,163,241, 1, 1, 1, 67,122,247,238, 61,178,115,231,206,216,191,127, 63,108, 54, -219,185,166, 28, 95,115,133, 33,234, 88,117, 88,181,207, 46, 50, 62, 31,132, 16, 48, 12, 3, 0, 40, 82,171,145,158,150,134,146, -210, 82,152,140, 70,232,244,122, 91, 88,112,176, 65, 99, 54, 11, 9, 64,155,120,147,179, 29, 28, 28,238,235,117, 58, 47,119, 87, - 55,131, 92, 46, 65,153, 86, 35,186,124,233, 66, 5,165, 52,195, 78, 14, 51, 33,164,215,161, 67,135,230,243,249,252,209, 14, 14, - 14,120,243,205, 55,249,189,123,247,134, 72, 36,130,201,100, 66, 89, 89, 25, 54,110,220,168,102, 24,166, 85,101, 63,112, 80, 40, - 20,235,249,124,126,174, 86,171,253,168,177,115,152,205,230,184,161, 67,135, 10,204,102, 51, 62,255,252,115, 44, 88,176, 0,131, - 7, 15, 22, 92,186,116, 41, 14,192,166,199,213,233, 89,150,197,128, 1, 3,106, 58,195,223,178,231, 56,161, 80, 24,213,166, 77, - 27,168,213,106,168,213,106,120,122,122,194,207,207, 15, 62, 62, 62, 88,178,100, 9, 93,182,108,217, 97,139,197,178, 82,173, 86, -171,154,209, 23, 39,189,242,202, 43,147, 70,141, 26,133,138,138, 10,156, 63,127, 30,221,186,117,195,226,197,139,125,207,156, 57, -243, 94,231,206,157, 33, 20, 10,145,152,152, 8,134, 97,114,184, 71, 23, 7, 14, 28,254,191,225,239,232,159,213, 24, 26,180,104, - 5, 5, 5,185,216,108,182,247,135, 13, 27, 54, 96,196,136, 17, 24, 52,104,208, 67,255,223,180,105,147,227,206,157, 59, 19, 2, - 3, 3, 7, 91, 44,150,175,154, 50,213,199,178,236,238, 77,155, 54,197, 61,243,204, 51,242, 62,125,250,132, 0,128, 68, 34, 49, -111,218,180, 73,207,178,236,238,166, 54,164,118,240, 72,127,127,255, 14, 2,129, 96,228,208,161, 67, 59, 76,156, 56, 17,201,201, -201,216,184,113,227,157,176,176,176,179, 77,164,206,106,100,213, 97, 66, 99,214, 45,190, 88, 92, 92, 86, 80,224,226, 16, 20, 36, -116,117,116,204,223,191,127,127, 96,255,254,253, 73, 78, 78, 14, 74, 75, 75, 97, 52, 26,113,233,210, 37, 86, 0,100, 11, 92, 93, - 73,246,249,243,132, 47, 22, 55,121,177, 65,160,175,107,232,199,115,166,180, 52,154,140,145, 26,141,134, 17, 8,133,194, 0, 31, -151, 38,189,176, 41,165, 38,133, 66, 17, 3, 64,192,178,172,222,205,205, 77,126,244,232, 81,136,197, 98, 16, 66,208,190,125,123, - 72,165, 82,145, 66,161,184, 15, 0, 62, 62, 62,226,213,171, 87, 59,143, 27, 55,238,247,198,184,159,122,234, 41, 97,112,112,240, -179, 97, 97, 97, 56,127,254, 60,146,146,146,178,207,159, 63,223,162, 83,167, 78, 8, 10, 10,122,246,169,167,158,218,126,229,202, - 21,235, 99, 26, 93, 52,203, 25,222,102,179,177,132, 16,240,120, 60,176, 44, 11,181, 90,141, 86,173, 90, 97,197,138, 21, 88,186, -116,233,231, 74,165,114, 95,115,234, 19, 17, 17, 33,138,142,142,158, 48,106,212, 40,220,189,123, 23, 9, 9, 9, 69,249,249,249, -167,142, 28, 57,242,252,212,169, 83,249,221,186,117, 67,113,113, 49,126,254,249,103,230,242,229,203, 63, 21, 20, 20,108,224, 30, -185, 28, 56,112,224,240, 15, 22, 90, 65, 65, 65,163, 68, 34,209,204, 49, 99,198,240,219,182,109, 11,149, 74, 5, 39, 39, 39, 43, - 33, 68, 8, 0, 46, 46, 46, 86,153, 76,134, 41, 83,166,160, 99,199,142, 61,102,207,158,221,205,223,223,127, 69, 94, 94,222,122, -123, 78,172, 82,169,244,190,190,190, 59,222,124,243,205,175,174, 93,187,218, 10, 0,254,252,243,207,123, 74,165,114,142, 74,165, -210, 55, 81,100, 85, 5,197, 36, 50,153,236, 98,104,104,104,230,144, 33, 67,156, 70,140, 24, 1, 79, 79, 79, 92,185,114, 5,139, - 22, 45,186,109, 54,155,231, 39, 38, 38, 50,255,237,139,204,152, 76, 5,151,247,236,113,236,253,210, 75, 78,211,227,227,191,121, -235,205, 55,191,253,248,227,143, 5,109,219,182, 37,122,189, 30, 23, 47, 94,164, 59,119,238,180,254,252,217,103, 75,161, 80, 8, -207,239,220, 41, 54,155,205,217, 77,180,150,244,138, 27,220,171,237, 55,223, 46,135,209, 80,129,139,231, 14,160,180, 84,141,213, -107,118,181, 13, 8, 8,232,149,155,155,123,186, 9,215, 51,236,216,177, 99, 94,148, 82,136,197, 98, 44, 92,184, 16,126,126,126, -112,114,114, 66,121,121, 57,222,123,239, 61,231, 25, 51,102, 56, 3, 64,114,114,114,117,120,134,198,160, 84, 42,187, 78,153, 50, -197,145, 97, 24, 28, 62,124,216, 76, 8,249,232,248,241,227, 63,182,111,223, 94,220,163, 71, 15,199, 13, 27, 54,116, 3,144,248, -184,132, 86, 51,143,187,115,244,232,209,206,163, 71,143,166, 66,161,144,148,149,149,193,197,197, 5, 43, 86,172,208,229,231,231, - 31,104,118, 31, 96, 24,177, 92, 46, 23, 83, 74,177, 99,199, 14,100,103,103,191, 90, 84, 84, 84,224,237,237,189,235,253,247,223, -159,213,182,109,219,224,180,180,180,236,242,242,242,197, 42,149, 42,147,123, 52,113,224,192,129,195,223, 7, 85, 78,240, 77,138, - 12,111,179,217,166, 28, 57,114,132,207,178, 44,214,172, 89,131,203,151, 47, 83,185, 92,254,145, 92, 46,255, 65, 38,147,217, 12, - 6,195,228, 55,222,120, 99,220,130, 5, 11,120, 61,122,244,192,249,243,231,121,173, 90,181,154, 0, 96,125,141, 19,247,111, 40, -214,134, 70,163,185,164, 82, 21,180,170, 17,160,178,149, 68, 34,189,212, 72, 99, 30,226,172, 35, 40,102,236,194,133, 11,117,190, -190,190,230,164,164, 36,172, 90,181,138,189,124,249,242, 41,177, 88,188, 90,169, 84,154,236,225,124, 76, 23,189,154, 83,204, 48, - 87,126,157, 53, 43,252,169,225,195,217,215,103,206,172, 16,201,100,239,124,179,124,249,236,178,242,114, 63, 16, 66,221,157,157, -179,215, 44, 92,152, 48,248,217,103, 43,146, 79,159,150, 94, 59,118, 76,232,105,181, 94,111, 74, 61,115,115,115, 79,135,182, 14, -194, 47,107,191,133,197, 98, 66,126,222, 3,157, 86, 84,172, 65, 67, 34,171, 46, 78,134, 97, 52,207, 63,255,188, 8,128,108,252, -248,241,226,194,194, 66,180,110,221, 26, 0,160,213,106,113,224,192, 1,180,107,215, 14, 0,112,243,230,205,234,237,198,234,169, - 80, 40,158,237,214,173, 27,178,179,179,145,156,156,124, 66,169, 84, 22,251,249,249,157,200,201,201,137,235,220,185, 51,118,239, -222, 61,172, 62,161,213,212,123,100,143,208,170,139, 83, 38,147,205,217,181,107,215,171,231,206,157, 27, 61,107,214, 44, 97,191, -126,253, 0, 0,229,229,229,122, 74,169,173, 57,156, 53,235,100,181, 90,193,178, 44,220,220,220,116,149, 3,142, 76, 52, 18, 72, -246, 73,247, 79,142,147,227,228, 56, 57,206,191, 2,231, 63, 4,246, 71,134,167,148, 50, 44,203, 34, 49, 49, 17,187,118,237,178, - 89, 44,150, 73, 74,165,242,102,141, 34,203,253,252,252,142, 61,255,252,243,235,211,210,210,248, 41, 41, 41,176,231, 69, 84, 19, - 70,163,209, 90, 59, 37,177,209,104,124,228,169,163, 95,126,249, 5, 5, 5, 5,150,156,156,156,227, 12,195,236,126,196,213,139, -143,188,234,240,103, 74, 77, 47, 17,114,124, 65,247,238, 3,230, 31, 59, 38,121,253,195, 15, 77,175, 76,156,248,190,205,108,182, -242, 69, 34, 86,172, 80,240,108, 18,137, 48,249,244,105,233,178,169, 83,221, 12, 38,211,225, 95,155,224, 96, 94,195,162,133, 87, - 94,127, 23,134, 26, 22,173,243,151,210,209, 84,139,150,209,104,140,172, 20, 29,247, 1,248,188,252,242,203, 96, 89, 22, 6,131, - 1,229,229,229, 80, 42,149,154,137, 19, 39,218, 42,197,147, 96,228,200,145, 78,246,240,134,132,132,248, 9,133, 66, 28, 62,124, - 24, 66,161,240, 0, 0, 8,133,194, 3,199,142, 29,139, 27, 59,118, 44,252,253,253, 67, 8, 33,132, 54,162,146,188,163, 70,108, -163, 64, 40, 8,218, 60,248,197,163,141, 87,212,136, 27, 4,184, 93, 25, 53,254, 86,167, 78,157, 0, 59,253,178,106,162,114,113, -199, 82, 15, 15,143,237,179,103,207,126, 51, 54, 54,118,224,130, 5, 11, 8, 0,254, 99,177,110, 50,204, 35,133,158,224,192,129, - 3, 7, 14,127, 93,171, 86, 93,251, 5, 13, 28,176,166, 87,175, 94,147, 0,240, 9, 33,171,242,242,242,110,214, 46,163, 84, 42, -211,253,253,253,191, 14, 14, 14,174, 78, 52,221,148, 74, 85, 70,114, 95,196,227,145,217, 15,190, 55, 61, 64,101,141, 84, 39,179, - 1, 16, 30,143,191,254,234,213,171, 31,222,191,127, 95,221, 84,225, 87, 23, 30,199,170, 67, 0,216, 68,105,230, 88, 66,142,204, -140,138,234, 63,120,234, 84,116, 24, 60,216,201,175, 69, 11,155,193, 98, 97,111,158, 61, 75,206,237,216, 33,186,118,236,152,208, - 96, 50, 29,222, 69,233,253,166,214, 51, 55, 55,247,116,235,144,128,163, 47,140,140, 27, 24, 18,236, 7, 0,184,155,169, 68, 81, -137,230,104, 83, 68, 86, 45,193, 53,124,197,138, 21,251, 68, 34,145,160,102, 42, 27,139,197, 82, 82, 37,198, 8, 33,126,107,214, -172,217,194,227,241,178, 27,227, 75, 73, 73,217, 59,127,254,252,145, 89, 89, 89, 71,239,223,191,159, 5, 0,217,217,217, 89,126, -126,126,235,243,243,243, 71,102,103,103,239,164,118,168,144, 90, 73,165,145,124,118,187, 20, 64,251,170,164,210,205,205,101, 88, - 19,149,161, 21, 62,242,245,245,221, 52,112,224,192, 55, 0,228, 61, 10,159,217,108,182, 26, 12, 6,198,102,179, 9, 44, 22, 11, - 53,155,205, 86,238,177,196,129, 3, 7, 14, 77, 66,103, 0, 85,153, 72,170, 12, 40,158,181,182,205,168, 76, 23, 88,245,248,173, -252,174, 6,112,169, 6, 71,205,253,141, 29, 11, 0, 69, 0,110, 84,238,171, 75,139,172,169,239,123,189, 66, 43, 47, 47,111, 39, -236, 72, 26,109,111,185, 6,132,210, 92, 66,200,178, 42,209,244,168, 28, 12,195, 60,150,252,112, 60, 30, 47,115,216,176, 97, 77, - 42,223, 88,153, 45,148,102,191, 67,200,134,253,223,127, 31,125,120,213, 42,127, 27,195,184, 19,128,242,197,226, 98,179,217,156, -229,105,181, 94,111,170, 37,235, 33,107,204,221,220, 65, 0, 16, 26, 26, 74,239,220,185, 3, 74,233, 35,173,222,160,148, 94, 7, - 16,216, 72, 25, 37,128, 30,118,138,193,205, 0, 54,215, 33,216,183, 0,216, 98,247,168,161, 42,169, 52,192, 99, 9,251, 66,100, -247, 81, 59, 0,176, 85, 73,165, 31, 39,242,243,243,211, 80, 25,231,237, 81,144,149,149,101, 10, 14, 14,254,117,209,162, 69,227, -175, 93,187,182, 53, 47, 47,207,196, 61, 51, 57,112,224,192,161,105, 34,139, 16,178,191,242,221, 51,180,114,176,191,191,246,118, - 85,153,170,114, 53,203, 84,113,212,222,223,208,177, 0, 48,103,206,156, 15, 19, 18, 18,228, 0,236, 74,198, 92, 51,112,169,224, -175,112,245, 30, 71,242,220,199,157,128, 55, 55, 55,119,237,147,104,235,242, 7, 66,234,194,147,188,158,183,111,223, 38,255,228, - 95, 91, 85, 82,233, 26,136,250, 59,212, 59, 51, 51,115, 69,239,222,189, 87,231,229,229, 49,224,192,129, 3, 7, 14, 77,129,103, - 93,194,168, 30, 61, 48,180,161,255,215, 18, 68,255, 81,174,174,239,132,144,253, 9, 9, 9, 67,237,173,108, 77,139, 22,143,187, -119, 28, 56,252,247,240,191, 88,245,202,129, 3, 7, 14, 28,234, 21, 68, 15, 89,177,170,196, 87,237,239,115,230,204,249, 16,245, - 76, 27, 86,150,241, 37,132, 76,170, 92,117,248,144,191, 22, 1,208,191,158,147,219,189,154,128, 16,210,191, 25,141, 59,206,113, -114,156, 28, 39,199,201,113,114,156, 28,231,255, 47,206,198,184,235, 57, 62,190,190,169,190,134,166, 17,107,111, 55,118,172, 29, -101, 15,212,211,150, 73, 53,115, 29, 62,148,243,176,202,201,249, 73,124, 0,244,231, 56, 57, 78,142,147,227,228, 56, 57, 78,142, -147,227,124,196, 79,103, 74,105, 60, 30,100, 77,161,148,210,120, 74,233,224, 57,115,230,204,173,218, 55,103,206,156,185,148,210, -126, 85,229, 42,203, 84, 31, 83,181,175,246,223,218,251, 26, 41, 91,223,245,152, 84,115,187,230,247,191,132,143, 22, 7, 14, 28, - 56,112,224,192,129, 67, 3,184, 4,160,115, 13,107,147, 26,192,205,132,132,132,210, 26,190, 83,106, 0,215, 1,116,172, 44,167, -174, 52, 40,213,244,173, 50, 87,126, 55,215, 81,198,108, 79,217,122,172,112,107,234,218, 6,192, 9,173,250, 16,237,203,255, 44, - 40,192, 43,166,218,234,199,178, 0, 0,182, 50,250, 64,117, 24, 2,150, 5,165, 20,202,194,178, 43, 55, 84,244,227,230,158,175, -173, 63,113,243,146, 74,151,178,148,118,175,220,117, 90, 83,108,122, 55, 73, 67,203,236,229, 8,247, 33,225, 82, 30,222,103, 41, - 58, 0, 0,143,224,134,145,197,215,183, 10,232,173, 71,189, 30,132, 16, 18,233,137, 73, 98,153,124,140,179,139,107,155,210,210, -162,219, 22,163,105,123,138, 26,171,105, 51, 2, 67,181,118, 35, 79,179, 20, 31, 2,224, 9,121, 88,146, 94, 76, 79,113,189,142, - 3, 7, 14,255, 37, 60,106, 92,188,186, 66, 7, 61,234, 34, 36, 46,192,158,125, 98,171, 54,254,180,179,220,255, 12, 77, 18, 90, -145, 94,100, 42, 8, 62, 1, 64, 65,241,105,114, 33,253, 87,147,142,247, 35,253,165,124,254, 58, 0,124,163,197, 54,147,178, 56, - 83,231, 75,157,135,158, 82, 17,127, 9, 0,214,104,179,189,150,172,180,223, 95, 44, 42,128, 12, 22,176,188, 95, 89, 74,133, 54, -150,174, 7,197,126, 7, 17,254, 56,159, 75,141, 77,169,107, 80,128, 87,204,158, 63,243, 7,158,250,215,116,196,118,104, 13,106, - 99, 0,214, 10,121,143,247,113,226,187,151, 17, 27, 30, 4,202, 90, 1,150,129,195,144,111, 48, 36,202,185,217, 63,146,182,254, -196,173,133,135, 87,210,218,181,235,124,252, 66, 34, 8,203, 88,144,246,231,209,113, 51,102,207,239, 27,229, 76,162,236, 17, 91, - 29,253,200,235,173, 91,181,125,255,221, 79,190,229,251,250, 5, 42, 88,171,137, 41,200,188,213,105,249,226,249, 59, 59,250,145, - 37,215,149,116,157,189,130, 42,194, 19,147, 5, 18,241, 40,153, 84,209, 70,175, 47,191, 99,179, 88,183, 71,249, 9, 6,127,253, -205,210,232,222, 3,226, 28,108,229, 5, 60, 43,139,136,109, 91,183,180,248,126,197,202, 56, 66,200,179,148, 82,182, 41,109,102, - 41,102,167,111,152, 20, 39, 20,240, 73,248,171,107,249,176,115,201,108,109, 68,120,147, 23, 9,109, 60,188, 4, 37,248, 61, 69, - 69, 55, 55,231, 28,225,222,228, 71, 66, 17, 6,130, 29,132, 98, 75,114, 33, 45,228,158,119, 28, 56,252,179,192,227,241, 78,177, - 44,219,231,113,114, 18, 66,158,166,148, 94,224,174,238,255,111, 52,205,162, 69,240,121,114, 70,142, 43,108, 22, 68,134,133,124, - 6,160, 73, 66, 75,202,231,175,191,116, 91,229, 3,198,130,181, 95,188,185,213,108, 5, 24,171, 5, 54,198, 10, 27, 99, 5,195, - 88, 96,179, 90, 65,173, 38,204,255,233, 20, 96, 46, 71, 76, 84,232,122, 0,190,246,158, 67, 72,121,191, 94, 57,123,212,141,152, - 53,216,252,175,132,183,115,212, 21,111, 31,191,161, 44,138,244, 38,115, 83, 10,241,115, 83, 4,193,169, 85,211,177,113,247,129, -220,101, 63,234, 82, 89, 74,225,230, 36,107, 59,110,104,114,224,134,189,167,114,150,174, 55,166, 2,128,179, 66,220,118,194,141, -219, 65,143,114, 19,188,164,210,165,171, 87,126,239,227,235, 46, 35,204,185,175,192,216,108, 8,108, 17,207,159, 59,109,156,239, -231,223,173,251, 14,192, 43, 13, 29,223,206,155, 68,132,181, 14,159,185,254,192,185, 32,157,182,208,124,116,211,135, 25, 48,193, -234,227, 31, 46,252, 44,225, 91,254,188, 15,166,191,215,206,155, 92, 76, 85,209,148, 70, 30, 10,188,112, 47,236, 77,248,234,155, - 14,125,135, 12,117, 96, 43,212,124,163,174, 34,108,237, 79,235, 62,105,215,161,139,188, 71, 84,128,168,112,251, 20, 98, 40, 47, -129,133, 39,149,244,141,236,239,100, 24, 63,214,186,246,151,141,211, 0, 44,111,210,112,176,198,180, 53,203, 54,127,116, 73, 40, -122, 92,187,112,106,178, 77,121, 9,212,102, 5,108,150,234,191,176, 89, 65,217, 7,127, 99,167,252, 4,212, 17,195,203,174, 7, - 48,197,192,227,103, 47,249,170, 10,242, 59,127,247,205,151,115, 35,188,200, 33,216,240,235,173, 18,156,110,170,192,228,192,129, -195, 95, 23,132, 16,134, 82, 42,120,204,156,113,148,210,131,143,200,241, 62,128,215, 43,191,174,163,148,126,253, 24,234, 21, 0, -192,167,242,107, 1,165, 52,151,235, 1,143,116, 61, 39,213,156, 50,124,148, 56, 90, 82, 80, 22,216, 49, 2, 0,100, 77,173, 8, - 5,164, 32,124,192,170,195,240, 33, 3,224,225,229, 3, 88,245,128, 69, 15, 88, 13,128, 85, 7, 88, 13, 40,202,207, 6, 44, 58, -224,238, 33, 48,148, 74,154,220, 98,147, 6, 72,223,142,126,157,130,224,233, 44,197,244,225, 17, 30,107, 14,167,175, 91,119, 52, -173, 63,128, 49,118,213,149, 82,196,182,111,131,101,235,116,169,251,174, 20, 14, 2,128,248,104,143,195,177, 17, 45, 2,151,174, - 55,166, 30,184, 81, 50, 24, 0,134, 68, 57, 31,234,210,214, 55,136,125, 4,171, 47, 75,105, 15,191,150,109,136,237,218,106,176, -218, 92,104,181, 6,228,102,110,128,171,255, 83, 60, 27,139, 94,141, 29, 47,227, 99,206, 59,243, 22, 9,245, 90,149,153,181,168, -109,158,252, 82,190, 64,204, 18,228,157, 54, 85,176,101,182,119, 39,189,204,204,252,248,139, 57, 0,198, 53,104, 29,242,194,180, - 37, 75,150,182,239, 22,211,206,171, 96,231,116, 82, 81,170, 2,195,151, 75,134, 63,211, 13, 46,161, 17,172, 42,113, 9, 17,135, -244,135,139,123, 8,242,206,109, 66,214,133, 93,164,123,167,145,146,159, 55,139,198,215, 39,180, 66, 61, 73,247, 65, 61,187,108, - 13, 9,242,243,165,148, 5,203, 82, 80,214,134, 87, 95, 24,136,185,219,238,194,102,179,225,249, 65,221,251, 45,154,220,151,178, - 44, 11, 74, 89,228, 20, 20,235, 79, 94, 76,237,151, 81, 66, 47,218, 99,169,234,248,116,159,238, 55,174, 92,104,103, 77,255, 13, - 49,227, 18, 82, 9,112,182, 70,159,235,126,245,200,207,237,128,159,154,251,227, 33,225, 94,176,101, 29,254, 10, 65, 61, 39,241, - 87,111, 62,236,169, 81,231, 77,216,185, 97,229, 11,255, 90,189,122, 35,128, 41,220, 35,134, 3,135,127, 6, 40,165,143, 93,108, -101,103,103, 43, 31, 69,108, 5, 4, 4,244, 4,176,184,202, 67,131, 16,178, 56, 56, 56,120,254,191, 7,170, 15,141,245, 52, 54, -155,109, 92,110,110,238,153,134, 56,135, 14, 29,234, 7, 32,184, 6,103, 48, 33, 36,184,174,178, 46, 46, 46,182,174, 93,187,102, -237,223,191, 95,201,245,144,166, 11,174,230, 8,173,212,251,219,167,119, 50,229, 87, 0, 64,170, 29,157,246,161, 41, 63,163,213, -246,213, 47,159,188,252, 85,100, 75, 55,148,235,204, 56,122, 57, 11, 54,155, 21, 54,134,169,180,108, 49,176, 49, 86, 12,234,232, -129,174,198, 41, 88,190, 63, 13,140,141, 77,104,136,179, 54, 44,148,125, 49,186,255,232,109, 44, 75,197, 18, 33, 79, 19, 22,232, -238, 53,243,249,142,188,233,195, 35, 97,176, 48,163, 35,188,201,201, 20, 21, 93,107, 23, 39,251,159, 33,143,104, 93,251,108, 76, -163,109,111,192, 26, 21, 59,118,232, 0, 39,106,210,192, 90,116, 23,229,122, 43,238, 22, 91, 81, 96, 44,131,132,228,219,197,201, - 82,116, 8,240,247,149,255,177,245,131, 76,119,190, 86,224,197,103, 68, 98, 30, 3, 27, 75,249,180, 44,197,228,214,110,128,176, -202,111,171,161,122,202,228,142, 47,247, 28, 24,239,124,127,211, 36, 34, 11, 27, 4,175, 78,129,200, 60,243, 11, 10, 47,239, 71, -177, 50,139, 56, 25,203,224,237,222, 26, 67,198,141,193,215, 99, 58,163, 92, 91, 14,126,126,134,179, 88, 40,113,169,143,147,218, - 48,110,201,162, 47,124, 5,124,222,131,235, 89,245,177, 89, 97, 48,153, 0, 27, 3,169,128, 5,161, 85,255,179,194,102,181,200, - 59,140,252,224, 77, 0, 23, 27,107,123,138,138,110,142,244, 34, 61,192, 90,219, 81,171, 1, 4, 56,155, 92, 72,171,197, 79,132, - 55,121,241,169, 65, 19,123, 80,130,223,155,115,143,162,220, 49, 52, 38,216, 65,161,208,166, 34,119,199,219,200,128,148,122,119, -123, 29, 47,190, 58, 77,190,102,205,154, 97,132,144,169, 53,125,212,158, 68,146, 85,142,147,227,252,187,114, 58, 59, 59,183,106, -217,178,229,124,171,213,218, 83, 36, 18,121, 91, 44, 22,176, 44, 91, 32, 22,139,127,207,202,202, 90,168,209,104,238,253,213,218, -126,227,198, 13,187,197,150, 61,156, 66,161, 16,105,105,105,119,236, 21, 91,181, 57,133, 66,225,175,103,207,158,197,182,109,219, - 0, 0,233,233,233, 8, 13, 13, 85,212,117,108,102,102,166,162,119,239,222,191,162, 86, 70,143,218,156, 55,111,222,108,245,219, -111,191, 97,199,142, 29, 0,128,180,180, 52,132,133,133,213, 89,159,179,103,207,242, 95,122,233,165, 86, 0,148, 79,250, 30,253, - 19, 68, 86,205,191, 15, 9,173, 3, 7, 14,208,248,248,120, 82,123,187, 14,220, 13,114, 21,119,130,209, 6, 0,119,155, 90,137, -148, 2,186,168,163,175,112,240,137, 29, 43,122, 74, 69, 60, 44, 88, 59, 51, 71, 93, 82,254,180,128,128, 5, 0,134,130,231,234, - 32, 62,159, 48,161, 99, 80,105,133, 17,251,254,204, 59,147,172,106,154,137, 52, 89, 73,143, 1,112,249,247,139,146,132, 77,248, -250,216,150, 45,115, 6,119,120,119,120, 7,236, 61,151,245, 46,128, 70,163,190, 83,150, 5,101,153,106,231,247,202,161, 3,192, - 62,156, 20,152, 5,125,176,143,109,154, 69,171, 55, 33,130, 82, 47, 12,113,147,139,127,152, 60,249, 13, 39,171,250, 54, 74,204, - 34,228,148, 26, 81, 96, 16,162, 66,224,133,188,212,155, 54, 30,193,177,198,111, 46,180,148, 49,186,184,138, 29,120, 81, 3,222, -244,215, 30,254,176, 84, 76, 24,190,211,115,159,187, 20,157,248, 54,139,209,169,117,132,160,209,220,122,206,206, 46,161,198,226, - 44,190,166,180, 8, 46, 62,145, 24, 60,122, 40, 62,141,143, 64,185, 86, 7,117,201,121,218,198,215,137,100,255,190, 17,243,134, -132,163, 88,149, 15,147, 21, 32, 58, 83,137,209,108,172,168,247, 58,242,176,122,198,172,217, 47,182,240,245, 84, 84, 45, 42,160, -172, 13, 29,195, 67, 48,160,103, 44,142,157,253, 3,151,110,166,131,173, 92, 84, 64, 89, 22,185,133,165, 42,163,197,246, 75,147, - 46,168,141, 1,181, 26,235, 20, 98,104,198,148, 97,123,111, 34,183, 1, 31, 63,221,198,241,181, 57, 67, 91, 56, 42, 36, 4, 70, -171, 13, 70,179, 21,229,127,252, 0,247,150,237, 33,151, 74, 73, 39, 24, 4, 0,184,188,133, 28, 56,212,192,168, 81,163,164, 42, -149, 42, 49, 62, 62, 62, 98,192,128, 1,242, 30, 61,122, 64,167,211,225,232,209,163,208,233,116, 45, 2, 3, 3, 91, 28, 61,122, -116,228,211, 79, 63,157, 18, 16, 16,208,123,251,246,237, 77,241,161, 21,224,223,206,236, 44, 0,134, 16,130,202,125, 4, 0,251, - 40,121,110,197, 98, 49,178,179,179, 31,187,101, 43, 47, 47,239, 78,115, 44, 91, 21, 21, 21, 34,127,127,127,120,122,122,194,102, -179, 65,167,211, 97,207,158, 61,208,104, 52, 96, 89, 22, 50,153, 12,159, 47, 89,139,212,171,137,184,120,241, 34, 52, 26,141,168, - 49,206,220,220, 92,210,177, 99, 71,152, 76, 38, 48, 12, 3,163,209,136,227,199,143, 87,127, 23, 8, 4,152,253,217,119, 72,191, -156,136,107,215,174, 33, 55, 55,247,191,146,109,164, 9, 90,228,175,104, 13, 93,211, 80,135,253,175,194,102, 99,230,174, 89,191, -229,252,220, 41, 99, 48,109,108,255,192,133, 43,118,245, 79, 81,211,245, 0, 16,225, 73, 38,140,239,211, 38,200, 69, 46,196,167, -155, 46, 3,148,206,125,212,243, 37, 21,211,244, 72, 31,242,238,238,139,217,137, 31,142,233,132, 16, 95,167,208,214,173,137, 56, - 35,195,142,156,130, 44, 3, 87, 7, 73,219,248,104,143,195, 96, 89,184, 56, 74,218,193,198,192,197, 65,210,118, 72,148,243, 33, - 0,112,145,139,218,213,101,249,170, 15,157,131, 68,147,228, 18,193, 36,197, 83,190, 65,175, 12, 27, 32,139, 27, 54, 82,230, 32, -100, 80,124,241, 40,180,194, 0, 88,221, 90,192,100, 45, 65,238,189, 12,219,137, 11,183,242,138,202, 77, 51, 27,173, 38,197,153, -188,123,105,158,173, 58, 12,112, 45,218, 63,175,176,213,196, 77,193, 60,176,188,242,141,207,169, 20, 94, 93,100,127,222,189, 87, -193,210,255,180,232,212,134, 86,163,201,178,218,224,107,176, 9, 28, 51, 78,253,140, 57, 67,218,163,180,164, 16, 70, 11, 3,141, -129,177,248,184, 72, 37,166,123, 73, 48, 89, 24,152,173, 44,132, 46,254, 56,122,254,102, 17,107,181, 30,170,143, 51,163,136, 94, - 3,224, 80,115, 95,107, 79,210,241, 3, 39,217, 53, 88, 13,200,206, 85, 98,253,129,243,157, 42,203, 53,191,147,179,204,131,233, -231, 26,150, 44, 66,209,163, 57, 78,240,225,222,164,139, 76, 42,250,126,241,187, 47, 69, 60, 19,230, 38, 97,115,207,131,176, 22, - 40,108, 2, 24,196, 54, 56, 7,134,128, 53,151, 83,189,209, 88,150, 12,112,145,222, 57,112,168,129,118,237,218,249, 56, 59, 59, - 39,207,154, 53,203,237,185,231,158,195,238,221,187,161,213,106,241,203, 47,191, 96,233,210,165,248,228,147, 79, 96,181, 90,177, -102,205, 26,249,206,157, 59,187,172, 92,185, 50,183, 69,139, 22,145,217,217,217, 5,141,141, 41, 1, 72, 0, 8, 43,223, 93, 4, - 0,123,240,224, 65,196,197,197,225,224,193,131,108,229, 62, 27, 33,196, 74, 41,109, 86, 62, 81,177, 88, 12,177, 88, 12,141, 70, -243, 88,196,150, 80, 40,132,131,131, 3,196, 98, 49,202,203,203,155, 44,182, 24,134,225,231,230,230, 66,163,209, 96,192,176, 97, -248, 46, 33, 1,125,250,244,193,128, 1, 3, 64, 41,197,241,227,199,209,191, 91, 20,198, 60,219, 27,183,110,221, 2,195, 48,118, -213,183,160,160, 0, 42,149, 10,131,135, 13,195,218,149, 43, 17, 27, 27,139,182,109,219,130, 97, 24, 36, 38, 38,226,133, 65,221, - 32, 29,209, 31,233,233,233, 92,167,182,211,154,245,184,124,180, 30, 25, 73,133,244, 66,132, 39,217, 63,118, 80,151,161,195,186, - 71, 96,237,214, 19, 95, 68, 68,144, 45, 0,224,238, 40,249,252,229, 62, 33, 72,185, 95,138, 19,215,148,251, 83,212,143,103,181, - 6,107,131,135,187,147, 28,224,139, 97,176,176,140,211, 93, 52,234,192,204, 82, 10,121,207, 15, 48,126, 88, 74, 96,108, 68, 96, - 96,213,170, 67,135,184,111, 49,225,230,157,160,206,109,125,130, 96,179, 2, 54, 43,156,198,108, 2, 62, 83, 52, 90,143,238,173, - 36,199, 62,152,249,110,215, 33, 35, 70,203,196,114,103,216,180, 57,176, 22,220, 68,241,237, 51,208,201, 67, 81,144,125, 23,219, -142, 92,212,220,206, 45,214,242,120, 56,170,210,152,222,207, 40,161, 21,141,241, 26,173, 72,152, 63,111,102,252,182, 45, 91, 29, - 37, 33,221, 73,198, 15,113, 26,177,128,145,120, 6, 63,197,211, 75, 61,232,151,191,108,117,210,153,241, 85, 99, 60,122,157,118, -215,241,163,135,199,180,105,213,221, 49,243,210, 1, 24,140, 38,152,172, 64,100,151,222,176,217,168,152,240, 8,235,196,231,147, -194,226, 82, 16,171, 77,245,251,245,204,252,179,215,239,242, 77,142,141,115, 63,164,238, 9,255,157, 97,189,163, 1,171, 1,207, -246,108,143,239, 54,158,120, 27,192,196, 71,187,201, 15, 44, 90, 20,232, 30,233, 69, 86, 1,232,126,121,207,210,118, 49, 35,102, -160, 41, 22,173, 40, 79, 50, 36,170,181,223,207,223,125,254,129,155,123, 64, 40,159,176, 86, 80,159, 14,128, 54,151,146,220,243, -112,246,143,133,205,175, 27,214, 44,255,166,130,101,233,150,230,132,182,224,192,225,159, 12,163,209,184,107,209,162, 69,110, 67, -135, 14,173,178,200,224,252,249,243, 88,183,110, 29, 20,138,135,159,147,113,113,113,160,148,186, 45, 88,176, 96, 23,128,103,234, -227,236,214,173,219,176,229,203,151, 43,163,163,163,239, 86,138, 45, 17, 0, 94, 82, 82, 18, 47, 39, 39,135,184,186,186, 82, 63, - 63, 63,171, 82,169,100, 1,216, 94,125,245, 85,190,131,131, 67,155,138,138,138,211,205, 21, 90, 98,177,248,177,248,108, 9,133, - 66, 16, 66, 32, 22,139, 33, 18,137, 64, 41,109,146,216,178,217,108,130,131, 7, 15,226,242,229,203,248, 36, 58, 26,239,250,251, -195,205,205, 13,137,137,137,160,148, 66,161, 80,160,164,164, 4, 91,182,108, 65,223,190,125,193, 48,140,200, 30,222, 29, 59,118, -224,202,149, 43,248, 44, 38, 6,239, 58, 59,195,193,193, 1,199,143, 63,152, 13,148, 72, 36,200,206,206,198,241,227,199,209,187, -119,111,174, 83, 63, 34,236,238, 60,189, 9, 17, 16,111,248, 88,204, 6, 80,134, 2, 4,126, 17, 17, 68,148,146, 66, 45, 77, 61, - 41,143,135,121,203,215,239,143,255,118,198, 48, 50,105,120, 39,191,133, 63,159,154, 10, 0,175, 61, 31,230, 47,151, 8,176,108, -111, 10,229,241, 48,239,113, 52, 48, 34,130,136,120, 60, 76, 29, 16,219, 22,202, 50, 51, 50,148,101, 39, 83, 40,181,107,170,231, -196,183,227,177, 97, 95, 98,206,210, 13,198, 84, 74, 41, 92, 28, 36,109, 39,220,200, 8,250,249,224,149,251, 75,182, 25, 83, 41, - 75,225, 34, 23,182,155,120,171, 91,163,171, 14, 59, 7,137, 38,205,253,224,253,110,195, 39,206,146, 50,169,219, 97,206, 56, 2, -214, 98,128,214, 34, 66, 25,223, 7,185,247,239,227,203, 53,251,115,180, 58,243,152,164,194,166, 9,204,244, 34, 90, 17,225, 73, -158,251,242,211, 15,143, 37,124,190,192,193,112, 55,177,130, 79, 24, 3,191,101, 47,193,231,159,124, 75,202, 77,230,209, 25, 37, -180,188, 49, 30,147, 35,190, 90,180,100,121,252, 27,227, 70,166,134,133,246,114,183, 41,239,185, 27,181,218,194, 77,135,175,248, - 84,142, 20, 9, 0,100,228, 22, 67,173,209, 49, 54,198,122,218, 81,136,133,201,246, 88, 7, 43, 17,226, 77, 60,159,235,209,225, - 37, 79, 71, 17, 12, 21,101,240,114, 20, 98, 80,108,235,151, 66,188,201, 7,119, 85, 84,221,124,161,101, 5,181, 26,112,225,171, -190,237,168,205,218, 14, 54, 43, 44, 55,126,109,186,101,140,224,221,105, 61, 29,156, 92,205,153, 60,232, 20,128,204, 3,196,169, - 5,224, 28, 76,132,225,163,161,188,155,204,188,253,210,184,226,123, 89,185, 63,122,200,240, 53,247, 8,225,192,225, 97,100,103, -103,191, 60,119,238,220,179,177,177,177,222, 30, 30, 30,104,223,190, 61,246,237,219,135, 89,179,102, 85,151,137,142,142, 6,165, - 20, 37, 37, 37, 88,180,104, 81,129, 82,169,124,185, 33,206,228,228,228,212, 13, 27, 54,244,140,136,136,176,136, 68,162, 50, 0, -146,178,178, 50,105, 73, 73, 9, 49, 26,141, 96, 89,150,117,118,118,182, 41,149, 74,235,152, 49, 99, 76,231,206,157,107,173,211, -233,178, 31,197,162, 21, 24, 24,152, 84, 92, 92,172, 33,132, 60,114,232,135, 42,145,229,225,225,225, 89, 81, 81,193, 2, 40,109, - 78,232, 7,134, 97, 16, 19, 19,131, 35,103,174,226,224,137,115,208, 42,211, 48,245,141,151,209,190,125,123, 28, 57,114,164,217, -247,172, 99,199,142, 56,124,252, 44,206, 94,190, 23, 9, 63, 8, 0, 0, 32, 0, 73, 68, 65, 84,142,236,244, 27,120,123,234, 27, -136,140,140,196,225,195,135,185, 14,109, 63, 14,212,242,205, 58, 80, 91,104,245, 62,112,224, 64,213,200,252, 63,228,107,184, 39, -233,232,215, 70,252,235,130, 33,173,195,133, 3, 22,128, 8,101,216, 30,122,184,219,188, 47,127, 72,109,239, 77,198,221, 84, 53, -190, 58,236, 33,171,150,138, 38, 71,122,145,205,215,111,181,123,233,217,216, 64,172,221, 39,255, 24, 0, 70,247,104,133, 63,111, -171,113, 49,189,112,115,114, 33, 77,126,212, 86,183,247, 38,114, 80,108, 94,244,206,240,222, 45, 2,124,176,110,247, 89, 16,130, - 93,118,189,112, 41,165,177, 17, 45,176,116, 67,237, 21,134, 62, 65, 75,182, 25, 83,143, 36,105,135, 0,192,192,112,197,161,206, -173, 93,131, 26,179,108,200,196,130,201, 67, 70,142,151, 50,233,251,128,172,227, 32,140, 9, 6, 11,139,252,162,114,232,157, 3, -145,120,254,186, 65, 99, 52,207, 72, 46,108,158, 21, 47, 69, 77,239, 70,251,146,251, 21, 58,131,175,220,179,181,145,207, 99,217, - 10, 19,197,159, 41, 89,218,228,124,154,102, 15, 71, 70, 6, 53, 63, 19, 64,122,172, 90,191,109,190, 80, 36, 30,205, 39, 32, 94, - 46, 10,207, 85,223,126, 6, 71, 71, 7,176,230, 10, 64,167,198,115,111,125,169,190,153,103,105, 5, 0, 97, 30,196,161,103,136, -104,189,128, 71,114, 79,222, 49,127,212,168,121,213,138, 41,227, 6, 69, 11, 89,179, 14,239, 44,218,138,213, 31, 12,199,248,126, -225,194, 3,127,164, 79, 1,176,176,185,247,154,218, 24, 80,171, 1,207,124,120, 38,149, 0,103, 41,208,253,242,182,207,219, 1, - 87,237,230,120,138, 16,161,192,151,132,119, 8, 82,136,216,220, 63,192,230,254, 65,249,129,221, 64,130,122, 18,226, 19, 67,191, - 95,252,137,110,237,218,117, 71, 89, 30, 62,109, 44, 84, 6, 7, 14,255, 95, 65, 41,189,235,226,226, 50, 56, 46, 46,238,196,145, - 35, 71,220,162,162,162, 0, 0,151, 47, 95, 6, 0,196,196,196, 32, 44, 44, 12, 42,149, 10, 99,199,142, 45,202,207,207, 31, 76, - 41,109,208,231,183,188,188,252,222,142, 29, 59,188,117, 58, 93,244, 71, 31,125, 84,216,162, 69, 11,173,209,104, 36,101,101,101, - 44,195, 48,112,117,117, 21, 71, 71, 71,163,107,215,174, 21,231,207,159,111,153,147,147, 83, 14, 32,171, 57,245, 31, 62,124, 56, -206,156,121,176,104,239,113,196,213, 18,137, 68,136,138,138,242,191,123,247,110, 94,229,245,185,208,140,107, 90,189,125,253,250, -117,156,190,154, 11,129,217, 0,177, 90,137, 11,187,119, 96,216,228, 55,193, 48,205,247, 98,184,126,253, 58,246, 28,191, 0,133, - 68,128,180,180,100,236,216,177, 3, 83,167, 78,125, 36,206,102,162, 65, 45,242, 23,239,247,249, 0,214,212,107,209,138,143,143, - 63,141, 58,162,218,182,110, 77,196,146, 10, 44, 24, 20,227, 63,123,116,247,214,124,171, 86, 9,214,198,130, 47, 4,188, 60,156, -240,235,175,155, 91,109,222,186,245,124, 71,127,225,114,150, 97,230,221, 84, 81,125, 19,234,181,224,219,173,103, 71,255, 58,179, -183, 96,234,144,118,110, 0, 32, 18,240,176,108, 95, 50, 3, 96,193,163, 52,248,153, 0, 34,173,176, 98,146,143,187,243,199,115, - 95,143,119,235, 29, 19,134,211, 23,147,176,124,199,249, 51,226, 66,108,176,251,194,177, 86,212,214, 79,117,173, 58, 4,219,184, -223,165,205, 70,125, 68, 10, 87, 88,178, 78, 1, 22, 35,140, 38, 11,114,138,109,200, 41, 49, 66, 32, 23,225,114,250,255,177,119, -221,241, 81, 20,239,251,153,221,189,150, 75,239, 61, 33,148, 36, 36,132,208, 59, 2,210,196,192, 23, 8, 93, 20, 16,129, 8, 40, - 32, 74, 71,138, 74, 71, 64,233,160, 82,164,131,180,168, 20,165, 35, 69, 64, 18, 2,132,132, 22,210,123,191, 92,219,157,223, 31, - 41,191, 35,164,220, 37,216,112,159,207,103, 63,123,123,123,251,220,204,206,238,204, 51,239, 59,243, 78,188,202, 62, 25,199,107, -154,103, 66, 8,233, 80, 79,225,246,233, 23, 43, 61,138, 84,249,250,220,172,116,189, 84,118, 69,162, 52,147, 39,153,194,243, 91, - 60, 45,234, 84, 87,218, 28, 16, 88,153,130, 22,206,250,104,164,121, 66,212, 9, 52, 96, 18, 65, 40,133, 89, 64, 8, 44,205, 88, -105, 71, 31,105, 28, 0,248,184, 88,203,150, 46,248,216,122,242,244, 5,213,142, 1, 11, 36, 68,218,184,165,203,228, 32,111, 91, -156,191,113, 15,231, 35,158,222, 57,255,251,253, 70, 93, 26,187,193,207,195,102, 82, 32, 33, 75,162,168,233, 22,210,226,130,209, - 3,186,162,178, 89,135,129,206,100, 88,203,193,115, 42,156,109, 88, 25,124, 0, 33,154,167, 32, 44, 11, 16,166,120, 6,228,179, - 75,224,108,234,209,221,251, 14, 23,110,221,186,227,179,168, 52, 42, 90,177, 68,136,168, 6,217,217,217,183,149, 74,101,207,224, -224,224,109, 31,126,248,161,229,240,225,195,221,198,140, 25,195, 0, 64, 74, 74,138,176,122,245,234,196,175,191,254, 58, 39, 61, - 61,125,148, 86,171,141, 48,166,227, 75, 8,185,252,205, 55,223,164, 93,184,112,161, 81,171, 86,173,228,205,155, 55, 23,108,109, -109, 57,185, 92,206,107, 52,154,162,232,232,104,254,225,195,135,174,217,217,217, 49, 0, 98,107,226,214, 47,177, 94, 45,100, 89, -246, 83, 74,105,208,203, 24,163,165, 84, 42,221, 0,196, 16, 66, 26,152,234, 54,124,161,193,230, 56,100,101,101,161, 48,249, 14, - 20,241, 15, 16,108,206, 32,208,214, 2, 86, 86, 86,181, 18, 69, 57, 57, 57, 64, 65, 2, 46, 94,252, 3,208,235, 97,109,109, 13, -107,107,235,191, 92,104, 85,166, 69,254, 13, 40, 63,211,176,228,185,173,122,140, 86, 35, 39,242,190,173, 12,171,199,133,212,151, -250,120,121, 64, 29,255, 59,254,120,150,143,217,109, 90, 69,177,114,203,162,113,239,244,109, 17, 58,176, 14, 58,183,107, 73,124, - 92,173, 39, 45,249,114,195,132, 70,206,228,227, 59, 41,116,141, 49,137,186,147, 74, 31, 5, 56,145,173,103,110,199,135,121, 40, - 85, 16, 4,138, 51, 17, 73,136,120,146,181,245,110, 42,125,100, 74, 6, 27,185,145,110, 28,152,189,148, 82,133,181,185,121, 94, -211, 38, 13, 29,186,181,109,194,188,209,169, 5,164, 44,112,241,218, 31,152,242,229,161, 43,130, 64, 67,110, 24,233, 54, 44,158, - 97,248,188,128, 42,158, 97,168,123,110,134, 33,165,148, 22,207, 58,172,122,216, 23,203,146,228,194,167,215, 93, 36,246,190, 80, -197,158,193,147, 44, 1, 79, 83,243,144,203,185, 64,157,144, 0, 80, 33,238, 44,165, 53,126,170, 29, 28, 28,156,234, 6,250,213, - 95,187,253, 0,180,133, 57,120,116,118, 27,242,179,146,240,249,198,163,245, 61, 60, 60, 58,197,199,199,159, 51,225,129,241,251, -229,248,110, 39, 80,128,149,200, 17,190,126, 31,210,237,205,224,160,148, 66, 80,165, 97,220,228,225,214,189,186, 15,183, 6,128, -167,247,111,193, 91,169, 50,138, 87,107,143,208,193, 93,252,109,160, 83, 97,251,207,183,138, 24,224,141, 29, 39,239,196,118,105, -104,163, 24,220,193,219,118, 97, 98,246, 0,212, 48,168,104,169, 69,171,204,194, 87,131,217,134,251, 41,229, 3, 28, 73,236,222, -203,169,230, 3,187, 55, 87, 74, 57, 66,104,126, 2,168,153, 3, 54,108,223,159, 47,211, 97,179,216,132,138, 16, 97, 28, 10, 11, - 11,111, 16, 66, 26,127,242,201, 39,195,102,205,154,245,154,185,185,121, 93, 0, 40, 40, 40,120,164,211,233,206, 3,216,109,202, -236,192, 18,225, 20, 67, 8,121, 20, 27, 27,235,252,253,247,223,219, 0, 80,148,156, 46, 2,144, 13, 32,165, 54, 51, 14, 75, 69, - 21, 33,228,211,151,104,233,248,177,132,179, 65, 77,174,103, 24,134, 39,132,128, 16, 2,185, 92,142, 11, 23, 46, 96, 80, 72,119, -220, 13,207, 70,144,141, 5, 90,141, 26,135,189,167, 78,129,101, 89, 16, 66,192,178,172, 73,237, 8,199,113,184,120,241, 34,222, - 30, 58, 16,114, 14,176,182,182,198, 39,159,124,130, 35, 71,142,128,227,196, 85,250, 76, 40,231,205,165,130,203,248, 56, 90, 4, - 11, 79,109, 91, 36, 5,175,195,177,109, 43,112, 60, 50, 95,115, 63, 13,179,253,211,176,250, 0,242,132,180, 47,119,132,157,186, - 24,185,252,221, 33,189,149,175,119,233,142,215, 59,119,225, 26,181,236, 52, 23,192, 26,131, 6,187, 91, 85,177, 54,120, 1,159, -109,254,249,222,184,189,103,163, 9,180,121, 24,210,163, 37,229, 5,124, 86,141, 8,120,129,211,218,204, 98,239,197,223,126,179, -133, 54, 31, 79,110,253,170,168, 83,183, 62,192,107, 17, 19,243, 0, 95,111,255, 65, 56,123,237,254, 78,141, 30, 31,198,102,210, - 2, 99, 57,139,149,149, 30,214,230, 50,255, 94, 65,214, 63, 9,160,176, 81, 74, 27, 82,129,135,141, 82,210,176, 71,128,249, 79, -148, 82,106,105, 38,105, 72,121, 93,181,156, 42,141,126,211,246,111,183,174, 28, 61,122,180,121,122,124, 50, 18,115, 35,145, 47, -115,135, 78,233,137,216, 91,231, 85,133,106,125,181,141,120, 85,247, 51, 61, 61, 61,245,198,213, 76,236,221,184, 24, 58,141, 26, -169,241,197, 90, 53, 49, 61, 23, 86, 14,238,191,153,194,169,213, 11, 57,161,195,199, 74,205, 44, 97,246,118,104,111, 89,108,134, - 26,205,220, 44,139, 31,166,252, 52,220, 61,125, 17,157, 11,138,117,219,195,103, 12,188,155,184, 25,149, 78, 75,133,244,195, 94, -205,221,241, 40, 46, 9, 23,238, 36,108,127,152, 65, 19,235,217,147,237,177,137,217, 97,125,219,120, 97,213,145,168, 15, 42, 19, - 71,149,113, 6, 58,147, 97, 0, 58, 20, 15,134, 87,129, 2, 29, 2,157,201, 48, 99,102, 26, 86,196,201, 73,241,214,202,159,158, -206,217,127, 61,189,239,180,183, 58, 90,181,107,247,166, 12,122, 13,242, 84,106, 93, 84, 22,205,173, 77, 25,213,162,167, 36,114, -138,156,255, 74,206, 18,209,179,179,100,123,153,156,137, 40, 23,215,169,182,121, 55,116, 19, 82, 74,185, 18,107, 86,149,131,225, -171,227, 52,116, 19, 82, 74,127, 44,177,102, 85,105,213, 42,207, 41, 8, 66, 98,139, 22, 45,236,250,244,233, 3,158,231,241,224, -193, 3, 60,125,246, 12,221,194, 62,128,141,141, 13,206,223,190,141,251,247,239,227,211, 79, 63,133, 78,167,195,225,195,135,227, -171,227,228, 56, 78, 91,191,126,125,105,191,126,253,160,215,235,241,240,225, 67, 36, 36, 36, 96,202,148, 41,176,182,182,198,141, - 27, 55,202, 56,211,211,211,193,113,156,246,175,120,150,254,237,168, 72,100, 85, 45,180, 0, 30,188, 14, 57,167,230, 97,205, 5, -104,181, 58, 52,188,147, 74, 31, 27,156,223, 16,108, 79,142,221,142,188,247,232,198,165,215,101, 72,141, 40,190,198, 4, 68,167, -211,164,150,158, 92, 30,180,121, 86,120,248, 19, 30,167,228,229, 71,167,211, 36, 83, 51, 71, 5,158, 64, 91, 8, 36,253,142,203, -231,207,225,236,149, 63,112, 61,226, 30,127,249, 70,244, 94, 70,192,103, 81,233,244, 65, 13,212, 41, 44, 66, 86, 97,100, 68,140, - 87, 75, 63,103, 47,240,122, 80, 65, 7,235, 33,187, 49, 42,170,157, 87,203,122, 54, 94,197,150, 44, 29,108,223,251, 21, 88,169, -168,146,239,122,156,118,115,135,186,242, 1,121,217, 25,109,186,118,106,107,110, 29,208, 11,233, 49,209,120,240,199, 69,213,141, -200,216,203,215,227,180,181,178,150,184,187,187,191,214,181,147, 63,134,140,155, 9,109, 97, 14, 30,158,253, 22,249,153,201,184, -240,155, 5,238,229,230,182, 5, 96,180, 69,235,242, 83, 93, 35, 0,232,224, 35,141,179,132,218,229,157,222,125, 32, 39, 69, 16, -212,185, 32,133,233,136, 77,208,228, 12,216,248,140, 7, 0,165,156,112,230, 52,199,202, 24,222, 64,111,123, 95, 37,171,195,142, - 83,119, 32, 8,197,203, 55, 9, 2, 54,236,248, 53, 54,236,179,183,155, 33,208,203,182, 9, 33,132,152, 98,242, 39, 20, 29,175, -239, 93,208,176,232,151,185,128,160,197,197, 73,118, 13, 59,174,201,236, 88, 83,203, 88, 68, 2, 77, 0, 16, 22,224, 70, 54, 77, - 90,243,243,220, 22,167,162, 58, 76,125,175,175, 21,168,184, 0,187, 8, 17, 34,254,122,228,231,231,143, 27, 53,106,212, 38,137, - 68,226, 8,128, 8,130, 0, 65, 16,184,229,203,151, 75,120,158,103, 24,134,225, 89,150,213,255,248,227,143, 58,158,231,211,138, -138,138,198, 85,199,169,215,235, 99,199,143, 31, 95,191,186, 25,138,123,246,236, 1,199,113, 90,189, 94, 31, 43,150, 68,245, 34, -203,112,111,104,229,170,188,241,160, 88,208,254,237,121,243, 0, 16, 80,204, 47, 39,178, 0, 0,183, 51,104, 98, 35, 39, 50,165, - 81,203, 78,243, 74,175, 49, 53,113, 69, 60, 63,176,101, 99,191, 61, 0,160,166,252,219, 53,201, 96,174, 90, 53,184,105,203,182, -123, 5, 74, 57, 61,165, 91, 25, 1, 7,139,244,184,107,204, 76,187,202,144,152,154,125,163,116,161,104, 1,244,255,221,133, 37, - 97, 28, 40,165,180,204, 93,184, 66,129,244, 28,117,181,113,160, 46, 62, 82,119,111,233, 37, 29,123,242,210,173,113, 60, 79, 93, - 88,150, 36,171, 52,250, 77,181, 21, 89, 0, 16, 31, 31,127, 46,208,137,156,188,221,196,185,135,131,178,196,202, 85, 8,164, 23, -226,100,124,106,222,185,154,112,102, 21,232,250,206, 90,125,228,168, 76,194,114,160,180, 56,160, 40,165, 40,210,242,153,165, 98, - 44,216,158,184,125,114, 88,191,135,101,201,211,234,248,174,222, 79, 90, 53,100,201,233,143,239, 60,201,218,250, 56,139, 70, 2, -192,227, 44, 26,217,192,158,204,141, 77,206,251, 56,242,105,214, 10, 83,199, 85, 80,130, 11, 45,135,204,123,225,187,218,222,207, -187,137,244, 15, 0,253, 27, 57,145,238, 67,166,126, 61,149, 16,136,203, 79,136, 16,241, 31, 66,169, 85,139, 97,152,133, 47,145, -243, 71, 66,200,155, 0, 98, 76,184,230, 42,128,198, 47, 57,111, 25, 0, 50,196, 82,126,169,247,212,244,128,165,119, 82,233, 6, - 24,177,104,180,177,191,171,244,250, 68,122, 26,128,125,109, 50, 88,194, 97,247, 50,111,218,237, 20, 58,247,207, 40,140, 18, 81, -245,167,140,245,137, 74,165, 61, 1,192,215,215,151,198,196,196,128, 82, 90,171, 65,133,119,211,232, 31, 40,183,148, 67, 69, 98, - 27, 64, 71, 99,248,162,211,233,103,192,139,174,225,152, 12,250, 57,128,207,107,148,231, 26, 70,126, 55,250,217, 74,165,167,128, -234,163,243,139, 16, 33,226,213, 20, 91,127, 2,231,143,226,157,125,245, 80, 85,192, 82, 70,188, 61,175, 30, 30, 60,120, 64,106, - 43,178, 68,136, 16, 33,226, 21, 6, 95,203,173, 66, 13, 85,203, 77,196, 43, 34,184,202,127, 39, 10, 45, 17, 34, 68,136, 16, 33, - 66,132,136,151, 36,178,202,139, 45, 2,160, 91,133,210,220,132,217, 4,132,144,110,166, 38,168, 58,126,145, 83,228, 20, 57, 69, - 78,145, 83,228, 20, 57, 95, 61,206,234,184, 95,185,217,140,212, 96,144,243,203,222, 0,116, 19, 57, 69, 78,145, 83,228, 20, 57, - 69, 78,145, 83,228,124,149, 55, 0, 99, 43, 59, 22, 93,135, 34, 68,136, 16, 33, 66,132, 8, 17,127, 18,196,216, 64, 34, 68,136, - 16, 33, 66,132, 8, 17,181, 67,181,139, 74,139, 16, 33, 66,132, 8, 17, 34, 68,136,168, 1,170, 93, 84, 90,132, 8, 17, 34, 68, -136, 16, 33, 66, 68,205, 80,163, 69,165, 69,136, 16, 33, 66,132, 8, 17, 34, 68, 84,143,170, 34,195, 19, 19, 87, 60, 17, 33, 66, -132, 8, 17, 34, 68,136, 16, 81, 5, 94,136, 12, 31, 30, 30, 78, 13,247, 34, 68,136, 16, 33, 66,132, 8, 17,127, 37, 94, 85, 45, - 34,186, 14, 69,136, 16, 33, 66,132, 8, 17, 34,106,129,138,198,104,137, 66, 75,132, 8, 17, 34, 68,136, 16, 33,226, 37,160,170, - 49, 90,165, 1, 75, 59,151,152,234, 58,139,183, 75,132, 8, 17, 34, 68,136, 16,241, 55,224,149,212, 34,101,131,225,195,195,195, -105, 72, 72, 8, 17,203, 89,132, 8, 17, 34, 68,136, 16,241,119,224, 85,212, 34,226,172, 67, 17, 34, 68,136, 16, 33, 66,132,136, -218,136, 41,131, 89,134,229,143,197,181, 14, 69,136, 16, 33, 66,132, 8, 17, 34, 94,146,224, 42,255, 29,243, 39,255, 97, 55,145, - 83,228, 20, 57, 69, 78,145, 83,228, 20, 57, 69,206,255,138,200, 42, 47,182,196, 89,135, 34, 68,136, 16, 33, 66,132, 8, 17,181, -128, 49,179, 14, 69,136, 16, 33, 66,132, 8, 17, 34, 68,212, 0,132,144,177,132,144,222, 37,159,123, 27, 90,181, 68,139,150, 8, - 17, 34, 68,136, 16, 33, 66, 68, 45, 64, 41,221, 76, 8,113, 45, 17, 88,225,148,210, 36, 81,104,137, 16, 33, 66,132, 8, 17, 34, - 68,188, 4,148, 27,151, 21, 66, 8, 41,115, 39,138, 66, 75,132, 8, 17, 34, 68,136, 16, 33,162, 22,168,106,140, 22, 1,208,173, -146,139, 78,155,160,228,186,213, 32, 81,167, 69, 78,145, 83,228, 20, 57, 69, 78,145, 83,228,252,111,113, 86,199,109,138,254,248, -167,160,162,176, 14,101,226,139, 82,250,167,109, 0,186,137,156, 34,167,200, 41,114,138,156, 34,167,200, 41,114,254, 87,183,151, - 62,235,176, 57, 33,102,162, 17,241,213, 3, 33,196,153, 16,226, 44,222, 9, 17, 34, 68,136, 16, 33,194,120, 11,215, 75, 29,163, - 21, 72,200,123,239, 5, 57,110,108, 76,136, 85, 4,165,133, 85,253,214,201,201,105,147, 82,169, 28, 94, 88, 88, 88, 64, 8, 17, - 12, 76,109, 0, 96,184, 46,208,195,212,212,212,142,213,253,183, 92, 46, 95,237,236,236,252, 94,126,126,126, 33, 33,132, 18, 66, - 64, 8, 41,205,240,115,123,158,231,227,211,211,211, 91,252,171, 11, 17, 96, 29,156,157,175, 73, 88,214,221,212,107,121, 65,120, -156,146,156,220,214,132, 7,102, 49, 33,152, 86,242,121, 25,165,116,230, 43,248, 86,176,198,252, 44, 8,176,140, 6,134,240, 12, -243,129, 4, 88,167, 22,132,141, 37, 15, 46, 95,211,191,214, 92, 35,245, 9, 69, 19, 66, 96, 77, 41,114, 40,193, 31,178, 86, 52, -246,111,170, 28, 66, 37, 18, 73, 95, 43, 43, 43,139,140,140,140,115, 0,246, 0, 24,106,111,111,223, 41, 55, 55, 55, 95,167,211, - 29,161,148, 30,170, 9,247,107, 77,201,116,153, 84,242,110,145, 86,183,244,226, 45,250,109,231,230,196, 94, 47, 96,137, 66,202, -117, 84,107,244,203, 46,252, 65,183,154,152, 86, 82,252, 42,148, 86, 29,166,175, 39,118,192,200,114, 7,128,195,182,182,126,114, - 71,171, 95, 36, 50,246,113,118, 74,254,240,129,169,169,207, 6,214,162,220,255,137,112,116,116, 28,201, 48,204, 23,148, 82,240, - 60, 63, 59, 35, 35, 99,219, 75,122,174,102, 3,176, 41, 57,204,166,148,126, 81, 75,190,167, 0,188, 74, 14,227, 40,165,222, 98, -211, 94,227,123,185,225,135, 31,126, 8,235,210,165, 11, 86,173, 90,133, 13, 27, 54, 60, 73, 75, 75, 91, 2, 96, 59,165, 84,243, - 87,243,188,138,120,105, 66,171, 17, 33,111,142,236,217,122,211,196,193,111,146,201, 35,231, 20, 86,243, 50,127,243,198, 27,111, -188,189,125,251,118, 73,116,116,180,153,143,143, 15, 24,134, 41, 19, 66,134,245,101,157, 58,117,132,234,254,155,101,217, 53,253, -251,247, 31,117,224,192, 1,229,141, 27, 55,148, 1, 1, 1,101,124,130, 32,160,124,253,235,227,227, 83, 37,159,181,181,245,239, - 44,203,122, 84, 36,210, 42,251,204,243,124,124, 70, 70, 70, 11, 35, 30,198,158, 0,102, 24,113, 75,151, 80, 74, 79, 84,245, 3, - 9,203,186, 39, 38, 38, 58,153, 90, 86,158,158,158, 90, 19, 94, 30,103, 66, 48, 77, 16, 40, 3, 0, 12, 67,166, 43, 20,138,141, - 69, 69, 69,113,165,231, 75,202, 44,197,148, 52,184,187,187, 15,160,148,142, 3, 64, 9, 33,155, 19, 18, 18, 14,154,114,189,149, -149,213,239, 50,153,204,131,227, 56, 82, 81,185,148, 63,230,121,158,106,181,218,248,204,204, 76,147, 5,246, 57,128,188, 1,188, -166,103,217,201,246, 14, 14, 29,111,156, 60,105, 30, 20, 20,196,176, 44, 59, 19,192,198,218,188, 55,154,107,164, 62,175,195, 32, -149, 78,222, 91,238, 61,223, 79,253,116,126,180,153, 68,125, 92,115,141,236,255,171,197, 22, 33,100,196,136, 17, 35, 38, 47, 93, -186,212, 65, 38,147, 49,251,246,237,243,155, 50,101, 74,232,170, 85,171, 28, 6, 15, 30,108,169,209,104,132,233,211,167, 7, 18, - 66,156, 40,165,235, 77,225,110,215,148,180,241,247,113,253,116,226,240,215,241,241,226, 61, 19, 59, 52, 38,233,102,230,210, 13, - 3, 58,214,183,105, 84,215, 22, 11, 54, 93,254, 16,192, 86, 19,210, 74, 56,142,107,235,230,230,230, 91, 84, 84,164, 47,233,188, - 81,131, 58,161,248,254,106, 52,154,204,204,204,253,181,189, 55, 31, 43, 20,173, 91,219, 88,156,154, 55,108,132, 89,110, 86,166, -243,154,240,163,183, 15,192, 41,120, 32,240,228, 85,106, 16, 24,134,249, 34, 33, 33,193,149, 82, 10, 87, 87,215, 47, 0,108,123, - 73,212, 54,165,245, 48, 33,196,230, 37,240,121, 25,240,121,189,132,103, 95,193, 49,204,120,153, 68,210,131,231,249,198, 37,207, - 80,132, 70,167, 59,165, 23,132,117,148,210,162, 87, 88, 7, 76, 11, 11, 11,235, 62,107,214, 44,159,105,211,166, 97,218,180,105, -117,182,108,217,178,105,209,162, 69,211, 9, 33,193,148,210,252,191,152,231, 95,111,193,250, 83,132, 86, 32, 33, 45,186, 54,105, -112,112,210,200, 33, 16, 14,172, 38, 24, 57,167, 74,145,213,182, 69,139,119,183,111,223, 14, 0, 24,222,183, 47,122,180,106, 5, - 75, 11,115,200,100,197,201, 33,148, 64, 42,145,162,223,148,143,140,201,220,178,208,208,208,183, 14, 28, 56, 96, 1, 0, 27, 54, -108, 64,104,104, 40,236,236,236,160, 84, 42, 33,149, 74, 33,145, 72,158,219, 27, 33,220, 60, 18, 18, 18,156, 20, 10, 69,153,240, - 19, 4,225,185,205,192, 79, 13,189, 94, 15, 95, 95, 95, 99,111,215,140,156,156,156,215, 10, 10, 10,170,244,233,214,173, 91, 23, - 0, 78, 24, 67,248,197,231,159, 65,208, 23,128,227, 0,189, 30, 80,107, 25, 8, 21,244,237,221,220,220, 48,126,252,120,212,102, - 33,241,144,144,222,132, 16,114,192,205,205,237, 96,106,106,170, 15, 33, 24, 83, 67, 75,215,132, 7, 15, 30, 88, 0,128,159,159, -223,120, 0, 38, 9, 45,142,227, 60,110,223,190,237, 36,151,203, 43,181, 92, 26,136, 96,104,181, 90, 52,107,214, 76,111,202,127, - 56, 3, 94,153, 12, 51,166,105,243,230, 99,231,245,235,167,184,118,237,154,130, 97, 24,232,245,122, 44, 95,190, 92, 79, 41,181, - 9, 4,172,162,128,220, 42,158,207, 89, 0, 70,150, 88,105,183, 82, 74,151, 63,119,158,162,137, 74, 39,239,253, 48,191, 95,171, -214,117,166, 35,234, 78, 68,171,122, 22,135, 97,201,169, 99, 1,252,165, 66,203,202,202,170,239,170, 85,171, 28,183,110,221,154, -123,255,254,125,237,198,141, 27, 29,199,141, 27,103,169,213,106, 17, 22, 22,150,230,239,239, 47, 93,181,106,149,227,161, 67,135, - 94, 7, 96,146,208,226, 8, 62, 27,218,183, 7,138,116, 12,116, 58,189,163,171,163,229,206, 73, 35, 58, 75, 40,213, 96,199,145, - 27,208,233,133,111, 77,180,100,181, 29, 56,112, 96,189,221,187,119,115,247,238,221,227, 26, 54,108, 8, 65, 16,192,243, 60,116, - 58, 29, 0, 64, 16, 4, 52,104,208,160,214,247,229, 93,192,207,193,217,238, 84,219, 55,123,153,185, 42,228,176,203, 74,195,104, - 41,103,185, 77,169,254, 30, 64,187, 87,169,177,160,148,130,227, 56, 60,123,246, 12, 78, 78, 78,102,118,118,118, 73, 0,230,103, -102,102,110,126,133, 27,200, 86, 50,142, 59,184,227,219, 53, 46,173,219,181, 99,157, 93,157, 16,253, 32, 14, 28,225,187,221,190, -126,163,243,187,239, 79,157, 68, 8, 25, 64, 41,189,246,170,229,221,181,253,132,254,174, 29, 62,216, 64,168,128, 5,107,143,230, - 45, 94,182, 90, 25, 54,102, 4, 59,101,202, 20,120,122,122,250,244,239,223,127, 25,128,247,171,229,105, 51,161,191, 75,187,137, - 27, 64, 41,230,125,125, 52,111,209,178,213,202,247,107,192,243, 47,127,119, 54,255,105, 66, 43,144,144,122,141, 60,157, 78, 46, -158,246,190,132,254,244, 29, 83,152,145,138,202,164,140,147,147,211,166, 94,189,122, 13,223,182,237,255, 59, 73,109,131,130,208, -255,245, 14,112,178,183,134,210, 92, 86,220, 28, 9, 4,127,220,127,108,148, 32,240,244,244, 12, 59,120,240,160,133,161,152,144, - 74,165,101,155,161,200, 42,221,202, 91, 62, 42,130, 66,161,192,233,211,167,193,113, 28, 88,150, 5,199,113,101,155,225, 49,203, -178,112,118, 54,105,232,210, 18,107,107,235,224,188,188, 60,171,236,236,108,120,121,121,229, 2,184,109,112, 62, 56, 45, 45,205, -202, 20, 66, 65, 95,128, 41,163, 3, 32,209, 92,129, 70,210, 10, 42,174, 61, 46, 95,191,139,227, 39,206, 33, 33, 49, 25, 29,218, - 52,197, 59,195, 6,226,212,169, 83,224,121,222,212,135, 39,133, 16,178,172, 79,159,222,211, 1, 66,186,117,235,150, 61,113,226, - 68,230,222,189,123,111,245,239,223, 47,232,193,131,152,146,158, 48,153, 70, 8, 89, 99,130,101, 75, 6, 0,231,207,159, 7, 0, -121, 77,158, 61,185, 92,142,223,126,251, 13,165,110, 98,134, 97,192, 48, 12, 88,150,197,177, 24, 7, 20,104, 24, 20,166, 68,226, -131,222, 94,168, 91,183, 46, 24,166,250, 33,137,157, 1,197,101,160, 63,145, 72,166,184,186,185,249,116,170, 87, 79,121,250,244, -105, 22, 0,188,189,189,105, 82, 82, 82,246,145, 35, 71,242, 56, 96,131, 55,165,219,171, 18, 89, 94, 94, 94,237, 25,134,249,162, -244,158, 19, 66,150,249,248,248,124, 90, 86,110,130,128, 97,221,237, 36,147, 38, 77,150,182,238, 92,220, 57,105,221,103, 55,114, - 31, 46, 14, 32,153,179,172,255,234,138, 34, 55, 55,119,111,131, 6, 13,216,140,140,140,203, 0,158,234,116,186, 25, 59,119,238, -116, 26, 61,122,116,234,247,223,127,191, 4,128,219,210,165, 75, 59, 23, 20, 20,236, 51,133,183, 99, 19,242,102,139,166, 65,109, -188, 60, 61,113,238,242, 53, 72,101, 18,155,241, 35,123,195,194,130,195,138,173,225,194,211,248,204,137, 23,254,160,219, 77, 16, - 89,173, 6, 14, 28,232,179,123,247,110, 25, 0,220,190,125, 27,201,201,201,112,116,116,132,153,153, 25, 36, 18, 9, 88,150,133, - 68, 34,121, 41, 34,203,218,211,254,234,225,195, 71,204,236,236,108,176,246,163, 73,120, 39, 53, 5, 54,150, 22,208,229, 23,248, -188, 98,130,195,111,192,128, 1, 10,158,231, 81, 80, 80,128,179,103,207, 90,155,153,153, 89,123,120,120,204, 3, 96,180,208, 50, - 51, 51, 75, 41, 42, 42,114, 42,169, 71, 83, 85, 42,149, 51,128, 92,185, 92, 94, 90, 79,231,151,252,159, 81,238,196, 74,220,132, -113, 6,150,172,184, 90,228,185,101,171,150,193,167, 15, 29,216,101,145,147,151, 12, 27,219, 84, 48,200,193,230,205,235, 96,102, -102,133,121,243,102,113,143,187,189,238,222,243,205, 1,167, 9, 33,221, 94, 57,177, 69,201,230,110,125,134,219,153, 41, 45, 75, -218, 18, 29,182,109,153, 4,134, 97,240,233,167,159,162, 81,163, 70, 99, 9, 33,115, 40,165,153, 85,211, 96,115,227,215, 6,219, -201, 20,197, 69, 44,240, 58,108,220,243,113, 49,207,204,113, 24,218,167,238,216, 63,190, 39, 63, 55,170,135,188,226,118, 5, 42, - 9,131, 56,180,162,169,165, 28,225,225,225,157, 66, 66, 66,206, 85,118,252, 47,120,127, 92, 1,132, 84, 36,190,184,240,240,112, - 26, 18, 18, 66, 12, 50,247,220,113, 85,104, 74,136,131,179,181,242,244,134,249,147, 44,184, 43,225,172, 42, 46, 6,137, 69,124, -217,155, 83,126,138,166, 82,169, 28,190,109,219,182,231,116,152,151,179, 19,164, 82, 9, 36, 82, 2,155,142,189,139,223,184, 11, -199, 65, 8,173,172,225,127,142,179,160,160,160,232,214,173, 91, 22, 91,183,110,133,147,147, 19,124,124,124,160, 84, 42,161, 80, - 40,158, 19, 87,134,130,171,188,208, 42,207, 89,122,158,227, 56, 48, 12,131, 83,167, 78, 65,175,215, 99,224,192,129, 47,136, 44, -142,227, 42, 20,110,149, 77, 79,165,148,158, 32,132,220,166,148,190, 86,210, 0,223,166,148,118, 50,248,239,158,142,142,142, 51, - 0, 44, 49,150,147,101, 41,216,162,203, 16, 60, 86,131,123, 54, 9, 26, 73, 19,156,185,120, 3,219, 54,173, 2, 0,248, 52,108, -137, 65,253,123,151, 89,227,140,225, 52,132,187,187,251,158,180,180,244, 94,175,191,254, 58,178,178,178,116,243,231,207, 71,112, -112, 48,252,252,252,140, 42,163,202, 4,220,237,219,183, 61, 85, 42,149, 81,110,199,138, 56, 9, 33,216,185,115, 39,138,138, 94, -180,234,219,118, 90,132,143, 67,189, 49,234,131,237, 88,118,127, 31,214,175, 95, 95,101,222,149, 64,112,145,117,131, 53, 50, 86, - 31,188,100,214, 4,249, 59,239,188,195,142, 26, 53, 10,113,113,113, 24, 61,122,116,209,169, 83,167, 52,201, 73, 73, 71,100,130, -176, 86,251,188, 48,174,148, 83, 46,151,239, 56,113,226, 4,246,237, 43,214, 37,209,209,209,240,245,245, 53,127, 78, 36,103,238, - 71,222,211,181,184,122,236, 30, 90,247,217,141,171,199,134,129,207, 14,151,180,240, 69,142, 41,247,179, 6,189,175,211, 21,124, -183, 15,192, 62,131,251,107,246,253,247,223,247, 3,112,180,228, 28, 0,124,105, 10,103, 49, 17, 70, 13, 14,237, 7, 78,106,137, -123, 49,241,232,212,182, 25,156,157,156,112,251,110, 44,158, 38,100,166, 16,130,145,111,180,151, 47, 81,169, 52,115,206,223,162, -223, 84,195, 73, 60, 60, 60,252,246,239,223, 47, 53,176, 64,151,189,227, 44,203,150, 29,151, 10,239,154, 60,159,165, 34,203,210, -195,226,234,103,235,218,155, 95,141,248, 30,190,222,111,194,246,205,222,248,230,228, 73, 60,184, 19, 85,164, 41,212,119,253,171, -203,232,207,226, 36,132,248,133,134,134, 94,222,181,107,151,205,179,103,207,112,254,252,121,248,248,248,160,176,176,176,218, 14, -111,121,206,162,162, 34, 39, 3,183, 94,233,208,134, 47, 52, 26, 77,105, 97,148,190,136,149,186, 19,203,113,190,224, 38,172,201, -152,172, 10,234,121,153, 66, 42,221,127,248,208, 30,139,168,123,231,209,180, 73, 27, 88, 88, 7, 66,224,147,145,145,153,143,172, -152, 68,124,254,249, 50,204,155, 63, 27, 71,127, 56, 96,225, 31,208,228, 32, 33,164,129,161, 27,241,223, 94,238, 32,116,236,233, - 99,223,111, 32, 84,128, 42,229,158, 92, 82,240, 72, 57,124,216, 0,118,200,144, 33, 56,122,244, 40,238,220,185,179,161, 50,145, -101,200, 73, 40,198, 70,158,223,183, 1,148, 66,149,122, 79, 46, 85, 61, 82,142,120,107, 16,251,206,208, 30,184,242,235, 26,244, -104,250, 40,210,205, 9,253,179, 74,156,135, 28,139, 12,185, 2,151,204,174,145, 43, 6, 98,235, 44, 0, 98, 32,176,206,226,255, -199, 96,254, 27, 16, 82, 18, 29,126,108,121,235, 22, 87, 19,129, 5, 0,126,132, 88, 40,101,210,171,219,230, 77,112, 83,198,221, -225,212,145,191, 33, 81, 45,208,141, 79,244,194, 85, 66,204,110, 80,170, 42,127, 77, 97, 97, 97, 65,108,108,172,217,200,254,253, -209, 46, 40, 8,174,246,246,104,224,225, 1, 51,185, 12, 50,169,196,160, 94, 54, 73, 69, 82,127,127,127,244,233,211, 7, 18,137, - 4, 74,165, 18, 22, 22, 22,144,201,100, 21, 90,179,140,237,229, 82, 74,193,178, 44, 34, 35, 35,241,244,233, 83,216,216,216,224, -210,165, 75,232,218,181,235, 11, 86, 45, 67,113,102,138,137,190,124,195, 95, 42,196, 96,164,203,176, 20, 60, 79,144, 79,155, 64, -241,100, 34, 10, 73, 51,168,213,122,168,213,106,124,115, 81,139,107,177, 5,208,106, 53, 80,171,213,149,254,103, 21,247,150,113, -115,115, 27,238,235,235, 59,126,216,176, 97, 58,153, 76,134,130,130, 2, 20, 22, 22,226,206,157, 59,186, 94,189,222,204,238,211, -167,183,117,120,120, 56,165, 20,203, 76, 28,167,149,225,238,238,238, 89,226,158,205,168, 97, 15,162, 76,196,148,199,200, 47,163, -192,177,197,101,178, 97,195, 6,240, 60, 15, 74,105,165,133, 84, 68,200, 47,243, 23,173,180, 94,186,250, 91, 88,219, 57,227,220, -185,115,252,207, 63,255,156, 71,128,232, 7,119,238,124,249, 63,224,199,253,128,214,148,244,101,101,101,153,249,248,248,192,195, -195, 3,130, 32, 64,167,211,149, 89, 95, 50, 50, 50,160, 82,169, 96,103,158,141,250,246, 30,208,231,157, 69, 82,228, 2,184, 90, -220,195,246, 19, 26, 93,115, 63,252,241, 15, 48,133,127, 7,224,187,218, 19,193,221,201,197, 19, 12,213, 33, 49, 53, 3,253, 66, -122,128,149, 90,224,241,179,116, 52, 9,172,231,250,214,255,218,187,178, 68,143,105, 75,118,143, 7,240, 77,117,116,249,249,249, -252,189,123,247,112,251,118,177,222,181,178,178,130,185,185,249,115,239, 56,195, 48,181,178,104,149,138,172, 69, 27,186,154, 51, -146, 2,228,242,167,177,117,231, 13, 52,241,239,141,141, 87,175, 23,241, 41,153,221, 86, 20, 21, 69,255,171,221, 70,174,174,227, - 4, 65,152, 71, 41,205, 14, 13, 13,117,222,189,123,183,109, 66, 66, 2,110,220,184,129, 79, 63,253, 52,141,231,121, 61,165,148, - 80, 74, 23,188,132,103, 73, 48, 16, 88, 47,211,138, 32, 81, 42,240,129,131, 21,233,203, 49, 86, 62,250,220,252,199,233, 26,122, -164, 80, 47,124, 77, 41,213, 85,117, 45,195, 48,239, 29,216,187,193,205,193, 81, 64,103,199,215,145,148,162,197,162,143, 70, 32, - 35, 35, 15,223,108, 89, 12, 64, 6,173,158,197,107,157, 7,192,201,201, 29, 99,199,140,117,217,176,105,227, 4, 0, 43, 94, 21, -131, 86,210,165,117, 63, 16, 66, 78, 59, 58, 58,222,153, 48,118,172,163,143,207,219, 80, 40, 20,216,179,103, 15,118,175, 93,203, -175, 6, 6,109, 34,228,204, 56, 74,127,168,146,231,202,255,243, 76, 10, 11,115, 12, 8, 8,131, 92, 46,199,175, 63,127,135,162, -228,157,121, 33,237,160, 45, 44, 66, 72,157, 62,212,238,201, 49,146, 41,145, 32, 6, 0, 36, 10, 36, 73,128,212,114,116,255, 54, -129, 85, 38,163, 74,199,105,149,238,107, 29, 25,158, 74,100, 17, 91, 38, 15,245,118,134,154,104, 46, 30, 67,130, 90,224,151, 62, -208,178, 55,115,232,199, 81, 21,136,172,146, 7, 91,240,242,242,194,235, 45, 90,160,127,199,142,224, 56, 14, 10,153, 20,150, 10, - 51, 80,190,216,146, 85,234, 58,172,162, 77, 68, 69,214, 39,123,123,123, 72,165,210, 50,129,101,172, 53,171, 50, 78, 65, 16,192, -113, 28,110,223,190,141, 14, 29, 58,192,211,211, 19,251,246,237, 67,207,158, 61, 95,112, 37,154, 42,178, 74,133,150,161, 27,207, - 96,144,124,181,131,224, 95, 16, 9, 26,130,116, 77, 19, 16, 18, 4,189, 30,224, 41,160, 46, 42, 2,165, 0,165,128, 78,171, 65, - 81, 81, 81,217,127, 26,227,146,117,117,117,245,170, 91,183,238,194,233,211,167, 5, 52,105,210, 20,105,105,105, 16, 4, 1,230, -230,230, 40, 44, 44,132,149,149, 21,218,181,107,247,120,225,194,133, 73,148, 98,172,169,131,225, 95, 66, 5, 11, 0, 56,121,242, -228,115,110,195,210,173, 32, 41, 30,163, 62,252, 30, 50,174,216,181, 84, 58,134,167,170,122,183,203,107,237,113,249,102,180,254, -189,105,107,212,146,140, 27, 75, 92, 4, 97, 91, 60,144, 82,139,198, 5,233,233,233, 72, 73, 73, 65,223,126,253,176,123,215, 46, - 60,121,242, 4,129,129,129,232,210,165, 11,156,156,156,240,228,201, 19, 92,187,160,134, 58, 43, 19,153,154, 27, 80, 90,182,198, -225,115,177,234,185,235, 53,177,127, 87,109, 65, 8,233, 11, 96,132,149,149, 85,221,194,194,194, 36,189, 94,191, 31,192,126, 0, -131, 56,142, 27,164, 84, 42, 93,115,115,115, 31,161,120, 54,209,145,106, 93, 73, 10,133,189, 92, 97, 5, 65,175, 6,199,113,240, -244,244, 1,229, 53,200,202, 85, 97,228,144, 62,184,121,251, 46,126, 62,115, 69,175,211, 9, 95, 25,115, 91, 89,150,165,126,126, -126, 72, 77, 77,133, 68, 34,129,153,153, 25, 44, 44, 44, 48,115,230, 76,172, 93,187,182, 76,100,213, 84,104,189, 11,248, 89,121, - 89, 92,249, 98, 93,177,200, 74, 78, 76, 66, 74,188, 4,142,246,206,248,106,237,234,130,172, 39,201,173,191, 5,254,213, 34, 11, - 0, 4, 65, 88,144,144,144,224,196,113,156,139, 94,175,199,179,103,207,240,251,239,191, 99,226,196,137, 41, 25, 25, 25,157, 41, -165, 53,202,163, 66,161, 72, 45,181,100, 41, 20,138, 84,160, 82,119, 98,182,129, 37, 43,187, 10,202, 10,221,132,132,144,122, 62, - 30,150,167,182,172,154,226,213,178,117, 59, 70,201, 89,101,229,199, 36,119,184,120,254, 92,187,137,171,190,153, 64, 8,233, 65, - 41,125, 88, 25,169, 92, 34,233,213,166,125,123, 14, 52, 5,156,172, 3,150, 45, 29,130,180,244, 92,100,101,230, 65, 42, 53,135, - 70,199,130, 23, 8,218,117,232,136,239,182,239, 69,163, 49,163, 89,153, 68,210,253, 85, 18, 90, 37, 88,252,245,215, 95,123,249, -251,251, 99,219,182,109, 56,179, 99, 7,222,201,201,193, 57,134, 97,117, 18,137,195,143, 58,221,102, 0, 63, 24,203,211,168, 81, - 35,124,251,237,183,216,185,115,103,220,240,174,169, 7,167, 12,135,147, 86,139, 55,110,220,135, 93,157, 62,192,141,251,176,107, -238,143, 6,122, 14, 49,132,224,185,112, 80,225,225,225,157, 12,247,255, 38,148,172,109, 88,161,139,157, 3,208, 57, 60, 60,156, - 26,238,171, 35, 84, 58,249,133,237, 28,242,186,119, 80,125, 47,162,219,183, 6,207, 10,244,154, 60, 32,158, 67, 0, 0, 32, 0, - 73, 68, 65, 84, 57,247,181,178, 7,249,116, 74, 20,165,171,171,232, 65, 80,150,101, 97,105,102, 6, 71, 27,155, 98, 51, 63,195, - 0, 2, 32,232, 0,194, 23, 11, 0, 42, 16,152, 50,105, 90, 16, 4,200,100,178, 10, 7,190,155, 58, 54,203,144, 51, 47, 47, 15, -143, 31, 63,198,216,177, 99,161, 84, 42, 1, 0,201,201,201,240,246,246, 6,199,113, 72, 72, 72,192,175,191,254,138,186,117,235, - 66, 46,151, 19, 19, 11,165,180,225, 15, 38,132,156, 3, 16,156,148,148,100,229,234,234, 10,147, 45, 90, 2, 69,161,154, 64,163, -225,241,224,193, 3, 36, 38, 38,226,241,163, 24,180, 44,200, 5, 5, 11, 74,169, 73, 22, 45, 15, 15,143, 32, 95, 95,223,141, 75, -150, 44,145,122,120,120,128, 82, 10, 91, 91, 27, 20, 22, 22, 34, 61, 61, 3,129,129,129,240,244,244,196,178,101,203, 0, 96,247, - 95, 45,178,202, 61, 83,101, 66,203, 80,112,125,248, 63, 47,100,102, 90,128,101,255,127,246,105, 53, 99,180,164, 0,208,185, 71, - 40,119,234,231, 31,205,245,192,194,100,150, 93,200, 85, 95,142, 58, 94, 16,148,149,157,127,246,236, 25, 36, 18, 9, 14,236,223, -143,204,148, 20, 52,105,210, 4,173, 90,181, 66, 76, 76, 12,110,222,188, 9,123,123,123, 56,122,180,197,185, 71, 90, 68, 37,170, - 96,109,109,141,216,120,230,111, 11, 25, 64, 8, 25,211,173, 91,183, 79,191,252,242, 75, 39, 23, 23, 23, 73, 90, 90,154,255,186, -117,235,154,172, 91,183,110,210,132, 9, 19,156, 39, 76,152, 96,235,232,232,200, 37, 39, 39,251,125,244,209, 71,205, 9, 33,117, - 41,165, 43,171,226, 52, 55,183,180, 99,165,230, 32,132,131,141,181, 45, 56,153, 57, 4, 61, 7, 94, 0,172,172, 29,113,249,230, - 1, 92,138,200, 27,151,154,129,253, 70,188, 55,212,222,222, 30, 12,195,192,222,222,254, 5, 75,245,196,137, 19,177,101,203,150, - 50, 55, 98, 77, 69,214,162,117, 93, 45, 72,137,200, 74,126,198,129,168,235,226,216, 15,191,101,103, 61, 73,238,240, 42,136,172, -210, 58,142, 82,138, 71,143, 30,161,176,176, 16, 23, 46, 92,192,130, 5, 11,210,202,139, 44,103,103,231, 49, 86, 86, 86,243,243, -243,243,151, 37, 37, 37,173,169,142,183, 68, 68, 61,223, 25,172,192,157,104,108,136,135,138,220,132,132, 16,137,167,171,226,196, -205, 11,223,123, 91,211, 63, 8,158,142, 5, 30,228,222,177,188,234,244,218,155, 45, 67,152,102,235, 63,171,211,106,220,204, 19, -132, 16,255,202, 44, 91, 2,207, 55, 51,183,176, 4,144,138, 27,191,159, 45, 19, 89, 25,153, 57, 80,107, 89,168, 53, 4, 69, 90, - 6,175,119,123, 3,107, 55,238, 68, 66,106, 38, 74,103, 36,190, 42, 32,132,216, 5, 5, 5,133, 13, 26, 52, 8, 11, 23, 46,196, -233, 47,191,212,188, 79, 72, 46, 7,208,112,158,135, 64, 41, 97,140, 24,196, 94,158,103,197,138, 21, 63, 0, 24,186,100, 34,218, -102,229, 99,164, 91, 31,106, 87,167, 79,241,111, 7, 78,167, 0, 96,151,118,250,249, 38, 51, 36, 36,132,148,122,214, 76,245,176, -253,211,193,133,132,132,156, 11, 15, 15,135,225,190,170, 11,172, 92, 26,190, 57,243,147,137, 75, 91,246,236, 72,146,166,118, 71, -102,110,145,126, 86,148, 86, 22,175,170, 90,100, 25,226,147,117,235,112, 51,186,248, 61,246,112,114,194,180,183,222, 2,213, 3, -151,238, 68, 97,239,233,211, 24,210,173, 27,204, 75,102,252, 25,107,125,170,200,138,101,104,205, 50,213,234,148,157,157,141,253, -251,247,163, 85,171, 86, 80, 42,149,224, 56, 14,193,193,193,184,123,247, 46,234,213,171, 7, 66, 8, 14, 31, 62,140,254,253,251, -227,225,195,135,104,219,182,173, 69, 77,132, 86, 84, 84,148, 21,165,244,181, 82,235, 71, 77,161, 86,171,113,239,222, 61,244,233, -211, 7,182,182,182,112,119,223,141,211, 39,190,135, 50,232, 29, 16, 2,147,132, 22,207,243,239,134,132,132, 72, 9, 33, 80,169, - 10,161, 80,152,193,220,220, 2,150,150, 86,240,243,243, 71, 98, 98, 34,122,246,236,169,137,141,141, 93,159,148,148,180,207,212, -180, 6, 6, 6,154,231,228,228,188, 83,167, 78, 29, 89, 73,111, 55,176,126,253,250, 31,199,198,198,230,153,106,213, 42, 21, 88, -132, 16,176, 44, 91, 38,180, 56,134,129,171,139, 83,217,113,201,248, 52, 82, 5, 87,110, 66,134, 90, 14, 0, 94, 94, 94, 88,187, -233, 40, 19, 18, 18,130, 73,147, 38, 65,167,211, 97,253,250,226, 73,118,195,134, 13,131, 86,171,197,193,131,197,147, 36, 57,142, -171,210,108,242,251,239,191,227,198,141, 27,208,233,116,200,201,201,193, 79, 63,253,132,115,231,207, 99,207,225, 95,240,228, 81, - 12,130,253,189, 49,122,244,187,144, 72, 36,216,190,125, 59, 58,116,232,240,183, 86, 8, 18,137,100,248,150, 45, 91, 92,183,109, -219,150,125,248,240,225,130, 54,109,218,200, 87,175, 94,237,180,118,237, 90, 71,141, 70,131,201,147, 39,167, 94,185,114, 69,221, -175, 95, 63,243,205,155, 55,187,214,175, 95,191, 59,128,149, 21,220, 79,115, 0, 67, 0,188,221,185,149, 53,151,157,167,130,160, -215,224,209,147,199,200,201,215, 64,224,181,136,139, 79, 68,126, 17,143,140,204, 60, 4, 55,235,241,245,217,179,103,103, 19, 66, -102, 81, 74,143, 87,151,206, 59,119,238,224,202,149, 43,120,242,228, 9, 30, 61,122,244,220,185, 49, 99,198, 96,231,206,157, 38, - 91,180, 42, 22, 89, 44,136,186, 30,142, 31,190,154,157, 26,147,244,202,136,172,146, 58,104,158,171,171,235, 60, 87, 87, 87,197, -201,147, 39,173,235,212,169, 3,189, 94,175, 41,111,201,234,220,185,243,156, 45, 91,182,184,214,171, 87,111, 34,128, 53,255,132, -180, 51, 12,198, 44,219, 16,230, 96, 41,139, 75,196,131,149, 37,177, 4, 89,160, 48, 23, 56,187, 11, 92,251,185,143, 39,246,155, -110, 59, 99,219,194, 49,168, 98,134,108,236,195,103,216,176, 97, 45,166, 76, 30,137,239,190, 89, 6, 65,224,160,214,177,240,242, -105, 3,181, 86, 0, 97, 56, 52,105,214, 2,103,206, 94,128,132, 1,246,111,219,240, 74,153,178, 40,165,153,132,144,245,135, 15, - 31,254, 96,210,164, 73, 16, 4, 65, 54,127,195, 6, 85, 90, 90,218, 98,152, 16,255,170, 2,158,254, 27, 54,108,136,158,177, 54, -237,135, 41,195,193, 62, 57, 70, 50,111,220,135,221,192,233, 20, 7,150, 18, 52,247, 71,166,178,226, 38,254,124,185,253,171, 33, -180, 74,149,164,225,190, 34, 52,247,171,247,153,181,157,237,187,173,130,253, 28,166, 77,122,159,123,152, 92,132,131,117,222,202, -255,117,199, 87,230,201,122,249,215, 49, 84,181,218,148, 63,222,251,235,175,101,159,151,239,222, 93,225,185,164,129, 3,141,238, -153, 85,102,197, 50,213,146, 5, 0, 74,165,210,166,123,247,238,232,218,181, 43, 6, 12, 24, 80, 54, 38,171,105,211,166,216,179, -103, 15, 66, 67, 67,113,235,214, 45,184,186,186,162, 97,195,134,104,216,176, 33,126,252,241, 71, 83, 31,112,240, 60,143,160,160, -160,210, 89,135,193,241,241,241, 86, 53, 45, 72,181, 90,141,140,140, 12,216,217,217, 65, 38,147,161,117,235, 86,248,224,195,214, -112,112,253, 22, 65, 1,254, 40, 40, 40, 40,155,254,110, 68, 99, 27,212,160, 65, 3,164,165,165, 33, 45, 45, 13,142,142,142,112, -115,115,131,139,139, 11, 86,174, 92, 73,215,172, 89,243,179, 86,171, 93,159,150,150,102,178, 37,203,213,213,181,163,157,157,221, - 28,149, 74, 37, 51,232,225,202, 28, 29, 29,143,184,185,185, 45, 78, 76, 76, 52,101,141, 77,104,181, 90, 16, 66, 16,254,200, 13, - 5, 26,130,220,248, 27,152,244, 63,239,231,132,151, 68, 34, 49,102, 64,111,193,208,161, 67,157, 60, 61, 61,240, 44,246, 14, 14, - 28,160,248,242,203, 47, 75,103, 69, 34,186,164, 99, 80,122,220,165, 75, 23,248,248,248,192,148, 32,153,130, 32,224,246,237,219, -216,125,228, 28, 92,189, 3, 16,247,224, 30,110,254,120, 12,117, 28,237,208,168, 89, 11,232,116,186, 90,133,222,120, 25,208,233, -116, 91,125,125,125,169, 70,163, 57, 7, 96,109, 68, 68,196,200,164,164,164,201, 71,143, 30,117, 27, 52,104, 80,226,177, 99,199, - 86, 3,216, 22, 17, 17, 17,246,249,231,159,119,213,235,245, 21,206, 22,100, 89,246,187,143, 62,250,168,243,160, 65,131,136,148, -209,105, 78,158,216,206,233,245, 58,242,201,172,173,252,217,139,231, 24,189, 94, 71, 6, 12,253, 72,248,241,215, 8,102,220,135, -203,249,166,109, 66, 16, 25, 25,233,210,187,119,239,207, 1, 84, 41,180, 74, 45, 85,149, 89, 40, 89,150,197,200,145, 35,177,103, -207, 30,163,243, 61, 26,168,103,229,109,113,101,209,186,110, 22,132,203, 55, 16, 89,245,113,252,240,213,236,148, 7,137,175,148, -200, 2,128,244,244,244, 77, 0, 54,217,217,217,165,152,155,155, 35, 47, 47,239,133,231,143, 16,162,240,247,247, 87,200,100, 50, -244,232,209,195,206,213,213, 53,154, 97,152, 53, 9, 9, 9,149, 42,142,138,220,132, 21,185, 19,107, 51,235,208,214, 17,189, 91, -119,108,102,121,223,122,161,165,130, 43,186, 85, 39, 90, 97, 69, 0,228,168,157, 31, 93,126, 58, 36,151,164,202,155,182,232,210, - 28, 86,156,121,239,202,132, 22,195,178, 55,115,178,178,123,229,230,105,112,241, 82, 36,134, 14,105, 0,181,150, 64, 16, 24,228, - 23,168, 1, 86, 2, 6,192,176,183, 70,128, 18, 14,153, 41,137, 96, 89, 54, 2,175, 30,102,134,133,133,245,154, 53,107, 86,221, -146,248, 87,222, 37,241,175,166, 17, 66, 26,211,106,130,143, 87,193, 83,231,216,158,185, 83,143, 92,216,152, 19,210, 78,245,160, -185, 63, 0,192,174,185, 63, 50, 37, 18,196,112, 44, 50, 40,133,170,156, 85,171,147,225,254, 95,102, 29,124,110, 16,188,225,177, - 81, 99,180,124,235,121,188,209,169,101,139, 15,103,207,154,109,121,247,242, 89,204,248,108, 45,245,109,209, 61,111,211,133,155, -154,124,115,159, 94,121,105, 15, 46, 25,171, 47, 0,224,141,215, 67, 17, 28,216,234,133,147, 29,186, 20,199,146,188,120,230,119, -164,164, 37, 24,221,216,150,136,131, 10,199,100, 25, 51,165,191, 2,211,119,118,100,100,164, 83,124,124,252,115, 3,223,125,124, -124, 64, 8,193,213,171, 87,113,229,202, 21, 12, 29, 58, 20, 28,199, 65, 34,145,224,220,185,115, 38, 89, 99, 12,172, 75,183, 41, -165,157, 8, 33, 61, 61, 60, 60, 42,156,109,104, 12,151, 74,165, 66, 78, 78, 14, 78,156, 56,129, 6, 13, 26, 96,209,162, 69,112, -115,117,198,236,217, 83, 33, 8, 2,114,115,115,193,243,188,177, 22, 45,161,212, 90, 36, 8, 2,210,210,210, 80,183,110, 93,172, - 91,183, 14,171, 87,175,254, 60, 49, 49,241,168,169,105,244,242,242,178,225,121,254,147, 62,125,250,116,239,215,175, 31,122,246, -236,249,220,249, 93,187,118, 89, 30, 60,120,112,177,167,167,231, 27, 90,173,118, 73, 74, 74, 74,154, 49,188,223,126, 91, 28,126, - 73,217,102, 30,102, 12,170,131,183,199,111,199,202,149,135, 32,151,203,159,107,120, 23, 46, 92, 88,165,136, 17, 40,245,149,166, - 95, 78,156, 58,125,133,211,226,197,167,113,250,116, 42, 24,134,129,171,171, 43, 24,134,193,227,199,143,193, 48, 12,188,189,189, -193, 48, 12, 18, 18, 18, 74,199, 4,102,161,200,184, 88,134, 12,195,160,168,168, 8,207,226,158, 32, 62, 54, 26, 22,185,201,112, -180, 82, 34,235,206,109, 4,143, 30, 83, 22,255,233,111,238,225,238, 4,176,211,224,171, 21,132, 16, 13, 33,100, 0,128, 31, 40, -165,165, 22,141,207, 75,182, 10,209,166, 77,155,166,179,102,205,146,148,134,219,112,243,250, 66,175,213,106, 5, 0,240, 15,126, -237, 57,181, 31, 19, 19,131,149, 43, 87,162,160,160, 0, 82, 99, 2,221,149,136,214,210, 25,134, 21,137, 48, 83, 68, 22, 0,216, -123,123,124,125,245,198, 57,254,143,216,141,170,136,251, 63,153, 37,197, 49, 96, 52,175,174,200, 42,111,217,242,240,240,152, 39, - 8, 2,165,148,206, 53,168, 91,229, 94, 94, 94, 23, 78,158, 60,105,175,215,235,241,213, 87, 95,217, 36, 39, 39,219,188,246,218, -107, 51, 0, 84, 42,180, 42,114, 19, 86,228, 78,132,193,172, 67,185, 92,110, 87, 85,245, 81,126,214, 33,207,195,207,202,210, 6, - 89,136,135,218, 65,215, 52,219, 94,159,121, 42,105,204, 45,183,167,205, 2,205,121, 93, 93, 38, 87, 3,119,165, 13, 4, 74,253, - 42,237,156,234,116, 63,221,186,113,179,135,151,103, 3,246,232,241,243,232,219,127, 16,212,106, 6, 69, 58, 2,194, 74, 64, 88, - 41, 26, 7, 55, 67,195, 70,193,160, 0,126,191,118, 89,175,209,233, 78,189, 74,101,239,214,225,195,161,110, 29, 62, 88, 3, 42, -208, 10,226,104,213,237,223,191,255, 98, 0, 31, 86,199,227,220,246,195,161, 46,237,138,121, 12,227,104,125,244, 65, 24,238, 92, -147, 88,159,191,177, 84,218,179, 13,194,211, 78, 19, 40, 21,255, 63,235, 80,194,212, 60, 52,199,191, 69,112, 25, 37,180,188,188, -188,108,156, 44,148,223, 78, 24,253,174,229,211, 63,126, 67,114,212, 85, 92, 58, 31,157,181,247,224,161,204,130,140,212,209, 38, -136,172, 50, 55,159,189, 75, 29,248, 4,188, 40,180, 20, 22,142, 0, 0,159,128, 86, 96,205, 77, 11, 35, 84,145, 53,171, 38, 34, -203,176,194,174, 40,134,214,184,113,227,176,101,203, 22,180,111,223, 30,190,190,190,101,149,189,169, 86,179,242,214,165,154,204, - 54, 52, 68, 94, 94, 30,188,189,189,177,121,243,102, 68, 68, 68,192,210,210, 18, 67,135, 14, 69, 94, 94, 94,153,192, 50,118, 48, - 60,165, 52,230,228,201,147, 45, 7, 15, 30, 76, 37, 18, 9,201,206,206,134,141,141, 13,214,173, 91, 87,144,148,148, 20, 94, 3, -145, 53, 72, 42,149, 78, 29, 50,100, 8,235,239,239,143,148,148, 20, 88, 89, 89,233, 8, 33, 18, 0,176,177,177,209,153,153,153, - 33, 44, 44, 12, 77,154, 52,233, 56,109,218,180,246,238,238,238,235, 18, 18, 18,182, 87,245, 44, 17, 66,202, 26,212,209,107,238, - 65,163, 41, 22, 42,235,215,175, 71,201, 88,183,255,119, 17,196,198, 2, 70,204,100,177,176,176,128,175,175,111,133,101,223,177, - 99, 71,252,254,251,239,197,174, 73,142,131,147,147, 19, 46, 93,186,100,212, 76,170,210, 64,144,145,145,145, 8,240,113, 64,196, -233,147,112, 80, 74,208,196,205, 5, 30, 29, 59, 33, 58, 58,250,111,179,102,149,196,166,122, 31, 64,183,146,103,112, 43,128,113, - 6,199,235, 40,165, 95,155,194,169,215,235, 41,195, 48,228,217,179,103, 90,165, 82, 73,236,236,236, 56,185, 92, 14,181, 90, 93, - 38,184, 98, 98, 98,112,252,248,113,196,199,199,195,206,206,142,177,182,182,134, 86,171,205, 50,134,223,207,207, 15, 46, 46, 46, -207, 13,124, 31, 61,122,116,141, 68,214, 72, 32,104,203, 23, 75,234,200, 25,214, 58,192,225, 13, 60,186,247,184,136,209, 64,241, - 95, 16, 89, 0,144,149,149,181, 9,192,166,210, 99, 71, 71,199, 81, 44,203,206,182,182,182,182, 62,119,238,156,141,163,163, 35, -217,190,125,187,110,238,220,185,217, 44,203,102, 17, 66, 86,253,253,226, 16, 81,233, 57,177,222, 18, 91, 55,225,143, 34,122,121, -242,179, 25, 13,179, 36, 13, 28, 73,163, 32,244, 79,189,123,113,148, 62,182, 93, 74, 82, 50, 67, 33, 68, 85, 81, 7,111,157, 49, -107,225, 39,209,247,110,122, 41,172, 20, 24, 23, 54, 11,225, 63,159, 1, 97, 36,184,112,249, 42, 52, 90, 30,233,153, 57, 24, 50, -108, 56, 60, 92, 29, 16,117,229, 68,154, 94, 16,214,189, 90, 34, 91, 88,219,163,239, 40, 91,185,153,178,228,158,240,216,249,205, - 84, 48,204, 26,124,250,233,167, 8, 10, 10, 26, 79, 8, 89, 80, 93, 28, 45, 66,132,181,141, 59, 13,179,149,202,139,121,168,192, - 99,243,254, 25, 37,113,180,166, 96,221,166,131,141, 27,249, 60,154, 95, 85, 28,173, 87, 69,100, 25,238,171, 21, 90,117,234,212, -145,155, 75, 48,214,206, 76, 58,109,194, 91,253, 28, 83, 99,239, 32,254,238,205, 98,247,130, 86,165, 77,138,142,242, 53,226, 79, -187,149,139,223, 65,171,114, 93, 21, 21,233, 96, 42,103,105,131, 91,222,154,101,138,200,170,136,211, 80,108, 25,198,205,242,244, -244,196,226,197,139,171,141,163, 85, 65,222, 75,191,239, 9, 32,184, 84,108,161,120, 48,124, 79, 99,102, 26, 86,198,233,232,232, -136,140,140,226, 8, 9,157, 59,119, 70,231,206,255, 63,159, 65,171,213,150, 89,177, 44, 45, 45, 95,176,104, 85,196,105,102,102, - 54,227,208,161, 67,239, 94,190,124,121,240,199, 31,127, 44,233,218,181,107,169,152, 43,164, 70,172,237, 86,158,147,231,249,176, - 19, 39, 78,176,130, 32, 96,243,230,205,248,253,247,223,169, 82,169,156,163, 84, 42,215,154,153,153,241, 42,149,106,220,152, 49, - 99,134,207,159, 63,159,233,216,177, 35,126,251,237, 55,166,110,221,186, 35, 0,108,175, 46,239, 87,175, 94, 5,195, 48,208,103, -198, 97,252,140,189, 48, 55,227,112,239,222, 61,100,102,102,190, 16,196,212,152,251,105,104, 41, 41,221, 58,118,236, 88,230,134, -108,221,186, 53, 88,150,197,173, 91,183, 42,116,195,150,227,164,246,246,246,101,207,135, 84, 42,197,153, 51,103,240,217,103,159, -193,203,206, 6, 89,119, 35,224,210,249,117,116,127,119, 12,134, 14, 29, 10,150,101, 97,103,103, 87,102,249,173, 46,239,181,172, - 16, 12, 57,223, 13, 8, 8, 24, 17, 21, 21,229,209,184,113, 99,215,200,200,200, 46, 65, 65, 65,222, 17, 17, 17,165,199,114, 24, - 49, 54,199,144,243,250,245,235, 7,214,174, 93, 27, 54,114,228, 72,169, 32, 8,252,211,167, 79,117, 0,136,139,139, 11,123,253, -250,117,225,232,209,163, 80,169, 84,240,240,240, 96,220,221,221,201,169, 83,167,132,187,119,239, 94,165,148,206, 50, 38,239, 60, -207, 63, 23,198,161,244,243,174, 93,187, 76,126,223,235, 52,244, 91,212,245, 53,127,207,244,196, 91, 72, 74,136, 5,159,227,168, - 61,126,248,152,218, 20,145,245, 23,148,209, 95,201,185,240,193,131, 7,238,106,181, 26, 50,153, 12,235,215,175,215, 46, 94,188, - 56, 42, 61, 61,189, 3,173, 96, 70,121,121,206, 26,206, 58,204,172,130,243,133, 89,135, 57, 25, 8, 63,124,228,122, 75,139,254, - 91, 49, 62, 49,173,108, 96, 35, 37,196,238,144,115, 96, 7,101,171,198, 9,204,143,243,152, 60,190, 48,188,178,116, 82, 74, 53, -132,144, 65,253, 67,135,253,178,103,207,110,139,185,243,230,225,210,213, 8,100,100,231, 67,160, 44, 4, 66, 48,123,246, 92,184, - 56,216, 33, 55,241, 65,161, 90,171,237, 95,126, 41,158,127,123,185, 19,194, 76, 60,117,116,251, 26,134, 64, 40, 72,185, 47,103, -243, 98,149,111, 15,237,207, 13, 26, 52, 8,135, 14, 29, 66,100,100,228,198,202, 68,150, 33, 39,165,204,196,136,115,123,215, 16, - 64, 80,165,221,151,115,249,143,148, 35,222,234,207, 13, 29, 58, 20, 63, 28,191,140, 61,199, 30,109,216,125,148, 30,123,149, 59, - 44, 53,138, 12,111,201, 33,178, 67, 96, 61,247,142,205, 26, 41, 56, 94,133,248,187,177,200, 44, 40,194,169, 59, 79,179, 25,202, -212, 56,182, 78,113, 5, 41, 69, 92,220,131, 23,206,101,103, 43, 74, 26,116,211,150,149, 98, 24,230, 57,107, 86,109, 44, 89,134, -233,116,118,118,126,110, 57, 23,195,134,187,116, 12, 80, 13, 66, 59,204,136,139,139,179,138,139,139, 3,165, 20, 87,175, 94,181, -106,221,186,245,140,218, 88,179,166, 78,157, 90,102,181, 42,191,175,232,187,234, 80, 50, 40,125,181,131,131,195,254,105,211,166, -141,111,221,186,117,143,121,243,230, 17, 0,108, 13, 31, 64,189, 32, 8, 56,123,246, 44, 14, 29, 58,196,107,181,218,177,137,137, -137,134, 99, 29,190,114,115,115, 59, 21, 26, 26,186,253,254,253,251,108, 84, 84, 20,140, 17,116, 42,149, 10,190,190,190,208,235, -245, 88, 58,222, 19,121,121,141,161,215,235,193,243, 60,204,205,205,159, 91,231,210,152,114, 98, 24, 6, 60,207,191, 32,180,174, - 94,189, 10,150,101,209,161, 67, 7,220,188,121,179,204,162, 85,157, 5, 74,171,213,198, 57, 59, 59, 59, 47, 92,184,176, 44, 93, -105,105,105, 56,121,242, 36,218,180,109,135,192,177,227,144,152,152,136, 85,171, 86,193,205,205, 13,139, 22, 45, 66,102,102, 38, -244,122,253, 95,109, 78,239, 21, 21, 21,229,241,214, 91,111,165, 70, 68, 68,120, 28, 63,126,220,166,119,239,222,230,195,134, 13, - 75,141,136,136,240, 32,132,180,131,137,131,160,121,158,159, 73, 8,249,121,209,162, 69, 51, 62,252,240,195,214, 35, 71,142,148, - 72, 36, 18, 33, 33, 33, 65,191,123,247,110,226,235,235,203, 72,165, 82,114,226,196, 9,225,218,181,107, 87,244,122,253, 82, 74, -233, 5, 83, 44,206,134, 34,139,101, 89,163, 68, 86,121, 76,118,146,143,176,100,210, 58,172, 93,191,152,241,247,241,208,238,216, -125,242,217,133,223, 30, 60,100,213,250,201,223, 2, 15,241, 31, 4,203,178,251, 2, 2, 2, 70, 77,156, 56,209,172,103,207,158, -242,249,243,231,231,228,229,229, 85, 40,178, 42,121, 47,255,244, 89,135, 0,190,153,249,241,241,201, 31, 53, 30, 85,239, 61,151, - 58, 56, 93,144,138, 44,142,101,172,108, 24, 52,243,102,145,151, 30,227,120,236,151,109,143, 81, 77, 92, 54, 74,233,117, 66, 72, -183, 70,141,155, 30, 92,186,104,169,211,156,233,211, 36, 7,143,255, 4,170,215,226,234,185,115,176,144,242,244,238,141,211, 41, -106,173,166,223,171,184, 4, 79,226,197,175,246, 16, 66,142,216,217,217,253,241,238,200,145,190, 1, 1,195,160, 84, 42,113,224, -192, 1,236,252,234, 43,126, 53, 48,120, 19, 33, 55,199, 21,199,212,171, 20, 41,191,149,241,220, 26,243,238,187,126,205,154,189, - 7,165, 82,137,253,251,247, 99,251,234,213, 70,243,252,203,173, 89,165,145,225,195, 75,246, 70,196,209, 98, 72,222,149, 7, 79, -243,175, 62,120,154, 15,129, 82,129, 82, 53,195,224, 89,129, 86,187, 40,250, 97,252,137, 26, 38, 4,130, 32,224,243, 47, 38,190, -204,204,149,137,159,154, 78,233,174,160,145,136, 55, 92, 35,173,186, 5,165, 1, 64,167,211,197, 27, 73,191,196,203,235,133, 53, - 80,151,212, 52,173,165,238, 64, 99, 69,150,177,113,180, 0, 32, 61, 61, 61, 9,192, 28, 87, 87,215, 93, 61,122,244, 24, 3, 32, -161,134,101,180,185, 83,167, 78, 99, 1,176,132,144,141, 9, 9, 9, 47, 12, 40, 77, 76, 76,140,118,119,119, 95,238,227,227, 83, -182,208,116, 85,156,130, 32, 60,106,220,184,177,182,162,178,168,236, 88, 16,132,106,203, 40, 59, 59, 27,173, 90,181,122, 97, 77, - 75, 74, 41,158, 62,125, 90,106,113, 42,187,247, 85, 9,184,252,252,252,113, 31,124,240,193, 38,137, 68,226, 5,128,148,138, 92, -158,231,217,175,191,254, 90,193,243, 60, 11,128, 48, 12,163,151, 72, 36, 69,135, 14, 29,210,235,245,250, 56,181, 90, 61,238, 47, -174, 35,246,147,226,165, 24, 10,162,162,162,252, 75, 44, 89,241,145,145,145,183,246,236,217,227, 8, 96,111, 13,159,205, 11, 0, - 46, 16, 66, 58,174, 95,191,126,230,184,113,227, 90, 13, 29, 58,148,235,220,185, 51,194,195,195,249,179,103,207, 94, 85,169, 84, - 75, 76, 17, 88, 37,101,153,227,233,233, 89, 38,184,170,121,151,171, 28,200,107,239, 45, 95, 59,252,125, 55,197,230, 37, 39,243, -211, 19, 53,151,117,249,154, 89,219,128, 72,252,135,145,156,156,252, 49, 33,100,238,170, 85,171, 18,155, 52,105, 34,151, 74,165, - 26, 99, 69,214, 95,104, 61,208, 19, 66,222,252,178,251,192, 35,157,102,127,224,211,189, 75, 7,165,103, 29, 39,247,187,177, 41, -136,249, 45,188,224,143, 99, 95, 60,161,234,172,190,148, 82,189, 17, 92,215, 8, 33, 13,166, 78,155, 90,186,168,116,112,215, 83, -135,233,127,104, 81,233,207,151, 47, 95,238, 27, 16, 16,128, 3, 7, 14,224,212,247,223, 99, 72,122, 58,206,176, 44,203, 72,165, -246,199,180,218, 21, 48, 46,112,241,231, 43, 87,174,244, 11, 10, 10,194,190,125,251,112, 98,251,118, 12,174, 25, 79,101,104, 9, -192,177,180,121, 2,112, 31, 64,115, 0,102, 0,212, 40, 94,218,201,193,224,247, 25, 37,231, 74,207,159, 7,240,103, 14,132,173, - 62, 50,124,121, 68, 60,120,220,252,101,167, 66,165, 82,101,250,250,250,154, 52,231, 90,167,211, 85,233,195,213,235,245,241,245, -234,213, 51,218,106, 97,140, 40,202,200,200,104,241, 39, 86, 16,181, 26,139,245, 92, 35, 34, 8, 79, 92, 93, 93,133,210, 70,191, - 34, 17, 86,209,119, 20,120,108,202,255, 36, 37, 37,221, 7,240, 81, 77,211,153,144,144,112, 16, 70, 44, 26,109,236,239, 0, 32, - 51, 51,243,165, 47,230, 75, 40, 77,152, 63,127,190, 73, 2, 27,148, 38, 84, 81,214, 17, 0, 90,255,211,107,217,210,165,119, 8, - 33, 76,100,100,228,152, 18,247,246,105, 0, 27, 75, 34,122,215,150,191, 76,112,109,222,188,121, 50,165, 20,185,185,185,171, 77, - 21, 88,101,189,231,148,148,240,151,149,247,204, 20,205,175,187, 55,198,191,174,202,214, 78,222,146,175,217, 14, 17,165,101, 86, -228,228,228,244,221,219,111,191,221, 6,192,182,218,242, 85,228, 78,124, 9,105,124, 76, 8,105,114,102,234,103,239,158,177,177, - 12, 1,207,249, 67,195, 28,131, 38, 35, 28,192,183,198, 88,197, 13,243,139,226, 48, 37, 43,255, 75,229, 92, 18,255,106,242,168, - 81,163, 48,119,238, 92,156, 88,177, 66,251, 62, 33, 57, 18,128,254, 92,220,209,100, 8, 48,221, 88,158, 17, 35, 70, 96,238,220, -185,248,113,233,210, 26,241, 84, 3, 71, 66,200,113, 0,152, 49, 99,198,172,197,139, 23,219,206,156, 57, 51,120,201,146, 37,139, - 74,142,239,148,158, 47, 41,211,222, 51,103,206,108,100,112, 62, 15,192,245, 63,249,126, 86, 24, 25,254,185, 30,251,203,222, 0, -116, 19, 57, 69, 78,145, 83,228, 20, 57, 69, 78,145, 83,228,172,229, 22, 82, 44, 89, 42,223, 87,246,217,224, 59,252, 29, 27, 39, -246,221, 68,136, 16, 33, 66,132, 8, 17,255, 82,171,220,241,218,156,127,137,233, 40, 29,163,101,104, 41,221, 12, 20, 79,119,239, - 86,137, 41,213,148,192,145,221,106, 96,246, 61, 45,114,138,156, 34,167,200, 41,114,138,156, 34,231,127,139,179, 58,238, 74,174, - 15, 33,132, 28,167,148,246,174,108, 95, 42,172,202,127, 54,248,238,165, 13, 59,168, 32, 47, 99, 43, 27,163, 37,186, 14, 69, 78, -145, 83,228, 20, 57, 69, 78,145, 83,228,252, 87,184, 14, 1,208, 25, 51,102,204,252,167,185, 14, 1,184, 2, 24,107,184, 25,225, - 58, 60,192, 38, 36,192, 74, 38, 83, 74, 1, 64,163, 41,212,186,187, 35, 23, 24,248,183, 45,120, 43,226, 95,107,218,117, 46, 17, -245, 41, 47,243,183, 34, 68,136, 16, 33,226, 63,131,180, 82, 75, 21,128, 52, 0,164,228, 88, 83,178, 79, 43,105, 59,202,127,126, -238,252,159, 5, 74,105, 18,128, 10,103,203,115,149,137,172,244,116,165, 3,199,101,249,241,124, 81, 67, 0,224, 56,230, 94,122, -186,109,180,131,195,129,244,154,136, 45, 71,103,231, 27, 18,150,117, 55,230,183, 58,158, 79, 72, 79, 73,121, 46,116, 60, 5,254, -245, 2,207, 88, 17, 81, 27,177,241, 87, 8, 21, 71, 71, 71,103,103,103,231,255, 89, 89, 89,181,205,206,206,190,150,150,150,246, - 67,101,235, 30, 18, 66, 22, 19,130,105, 37,159,151, 81, 74,103, 86,145,118,163,127, 91,193,181,190, 74,165,114, 60, 33, 36,168, - 36,255,145,133,133,133,235, 41,165, 15,254,131,194,214, 12, 64, 63,142,227, 70, 56, 56, 56,180, 74, 78, 78,158, 79, 41, 93, 85, - 67, 46, 14,192, 84, 27, 27,155,161, 54, 54, 54,117, 51, 51, 51, 31,230,230,230,238, 3,176,146, 82, 90,237, 84,233, 5,147,220, -218,118,238,217,121,206,217, 19,103, 63,159,183, 38,241,183, 23,206,127,236,102,223,163,123,251,185,103,143, 93, 94, 56,115,109, - 66,166,137,105, 99, 0,148, 6,205, 19, 74,122,173,244, 37,223, 75, 9,128, 62, 0, 58, 3, 56, 11,224,152, 49,249,174,132,171, - 13,128, 89, 37,105, 94, 73, 41, 61,243, 15,127,142,204,157,157,157,151, 2,232,195,113, 92, 84, 66, 66,194, 88, 74,105,252,223, -156, 38, 14,197,211,252,131, 80, 28,134,227,186, 49, 33, 28,140,129,131,131, 67,111,142,227,198,151,132,118, 89,159,158,158,126, -252,159, 90, 54,114,185,124,181,139,139,203,123, 42,149,170,144, 16, 66, 13,227, 61,234,245,250,248,180,180,180, 22,175, 96,213, -118,253, 31,254,190,140,173, 64,124, 85, 30, 71, 43, 33, 1, 86, 28,151,229,151,154, 28, 49, 36, 49,233,246, 96, 0,112,115, 13, -222,231,228,210,120,111, 66,130, 76,219,178,123,168,133, 68,201,173,103, 89, 73,211, 34,141,218, 65,194, 73,210,181,122,221, 45, - 70, 67,199, 39,221, 59, 84, 97,176, 69, 9,203,186, 63,137, 62,227,164,215,102, 66,162,112,131,196,204,171,210, 4,187,185,185, -213, 40,163,118,118,245, 45,181,114,197,100,137,132,237, 46, 80,125, 16, 21, 0,134, 72, 34,245,188,238, 23,169, 90,253,101,102, -102,108, 94, 77,111, 98, 67, 7,226, 66,129,161, 32,232, 14,138, 83, 4,216,115, 47,157, 38,155, 80, 8, 70,137,136, 90,138, 13, -195,107, 87, 81, 74, 63,126,217, 15,147,135,135,135,237,128, 1, 3, 86,127,246,217,103,102, 22, 22, 22, 36, 46, 46,174,231,244, -233,211, 95,243,240,240,248, 40, 62, 62, 62,177,188,232, 35, 4,211, 4,129, 50, 0,192, 48,100,186,179,179,179,146,101,217, 23, - 98, 27,241, 60,175, 36, 4, 19, 5,129,146,146,223, 78, 35,132,172, 49, 70, 48,154,153,153, 13,107,213,186,221, 71, 75,151,175, -180,112,118,114, 50,215,243,130,246,241,211, 39,202, 57, 51, 62,110,109,102,102,182, 70,165, 82,237,174,193, 75, 67, 88,150, 29, - 34,151,203,123, 3, 8, 40,249,250,174, 90,173, 62,206,243,252, 94, 99, 27,116, 23, 23,151,243, 44,203,214, 49,229,191,121,158, -143, 75, 78, 78,238, 80,195,151,125,144,151,151,215,183,157, 58,117, 82,182,106,213, 10, 50,153, 12,115,231,206,157, 10, 96,149, - 49,130, 74,169, 84, 14, 49, 55, 55,175,151,159,159, 31,171, 82,169, 14,202,100,178,110,107,214,172,241,108,223,190,189,101, 74, - 74, 10, 97, 89,214,249,248,241,227,239,124,245,213, 87, 61, 9, 33, 93,171,107,228,114, 98,233, 28,121,159,128,142, 57,177,103, -230, 0,232, 85,254,188,190, 72, 49,130,178,158,189, 85,244,230, 51,152, 48,181,158, 16,194, 72, 36,146, 53, 46, 46, 46,163,138, -138,138,138, 80, 28,123,141, 58, 59, 59,151, 53, 56, 0,160,209,104,178,178,178,178,252,107,112, 31,253, 1,140,182,177,177, 25, -245,201, 39,159,216,246,234,213, 11,223,127,255,253,132, 45, 91,182,100, 17, 66,190, 3,240, 13,165,244,190,137,180,211,146,147, -147,223,148, 72, 36,196,211,211,147, 5,112,198,132,244,248, 1,152, 93,210,216,172,167,148,242,132,144, 46, 64,241,251, 14, 96, - 89,169,112, 99, 89,118,189,191,191,255,255,238,222,189,187,129, 82,250,121, 77,223,117, 23, 23,151, 77,235,214,173, 27,220,183, -111, 95, 54, 45, 45,205,189, 73,147, 38,187, 0,116,124, 9, 13,210,187,114,185,124, 74,112,112,112,224,253,251,247,163,115,115, -115, 87,150,220, 79, 90,197, 53, 30, 0,186,217,216,216,116,157, 61,123,182, 69,239,222,189,177,121,243,230, 55,183,108,217,146, - 79, 8,249, 5,192,233,218,138, 64,142,227,198,199,199,199, 59, 80, 74,225,234,234, 58, 30,213, 44,110,254,119,129,101,217, 53, - 67,134, 12, 25,181,107,215, 46,229,147, 39, 79,148,238,238,238,101,193,179, 9, 33, 53,110, 63, 69,212,218,162,181,185, 84,112, - 25, 21, 71, 75, 38, 83, 74,121,190,168, 97, 98,210,237,193,175,117,250,218, 26, 0,206,159,251, 96,176,147, 75,163, 72,153, 76, - 25, 45,183, 82, 28, 10,237,211,173,233,192,222,157,136,135,171, 19,226,147, 82,157,191,217,115,226,141,227, 39,206, 28, 66,113, - 0,177, 10,161,215,102,194, 76,123, 26,247, 47,126, 5,135,206,137, 88,251, 99, 60,126,251,227, 49, 10,115,210, 81,199,197, 12, -203, 39,247,128,139,173,178, 70,153,180,112,246,235,194, 40,148,123,223, 26,246,182,245,255,250, 5, 72,188, 93, 92, 64,169, 28, -209,177,249,237,126, 58,121,166,229,193,253,187,199, 91, 56,251, 13,201, 79,137, 54,186,114,107,238, 70,204, 10,180,232,199,177, -228,157,142,173, 27,117, 29,246,102, 71, 38, 48,160, 1,162,238,220,237,113,228,215,171,203, 3,157,153, 95,244, 60,221, 97, 46, -197,225, 27,137,149, 7,244,171, 72,112,116,239,222,189,163, 92, 46,215, 26,254, 78,173, 86, 75, 9, 65,155,154,136,141,210,255, -208,104,212,140, 68, 34, 3,195,144,143,130,131,131, 3,210,211,211,207, 16, 66,190, 77, 72, 48,205, 90,240, 33, 33,178, 44,142, -107,206,200,229,174,188, 70, 99, 15, 0, 68, 38,203,242,176,181,109, 60,123,214, 44, 11,150,101,133,140,140, 12, 20, 22, 22,146, - 49, 99,198, 40, 98, 99, 99, 67, 1,124, 85, 77, 26,177,101,203, 22, 63, 87, 87, 87, 77,249,115, 73, 73, 73,178,190,125,255, 87, -147, 74,219,175, 77,219,246, 83, 78,156,248, 57, 32, 55, 51,171,104,203,170, 77, 55,116, 10,165,186,110,128,191,100,253,230,237, -214, 99, 71, 13,255,128, 16,114,139, 82, 26,109, 2,167,151,153,153,217,161, 21, 43, 86, 4,117,233,210, 69,226,228,228,132,148, -148, 20,220,189,123, 55,232,215, 95,127,237,183,125,251,246,169,132,144, 80, 74,169, 49, 17,220,125,127,217,241,173,147,185,157, - 61,120,157, 14,110,193,205,202,226,155,197,252,122, 18,122,173, 22,130, 78,135,128,222,253,138,205, 50,130,128,192,192,192, 26, - 69,221, 37,132,184, 53,106,212,104,231,162, 69,139,164,106,181, 26, 87,175, 94,197,153, 51,103,132,164,164,164, 37,213,137, 44, - 66,200,201,121,243,230,121,116,232,208,193, 50, 61, 61, 29, 60,207, 59, 28, 62,124,120,124,179,102,205,172, 60, 61, 61,101, 59, -118,236, 64,126,126, 62,244,122,189, 93,189,122,245,236,134, 13, 27,166,217,177, 99,199, 84, 0, 75, 43,179,100,229,198,210, 57, -201,164,222, 27,254,205, 71, 32,153,252,252,198, 71,189, 92,127,178,170, 79,202, 44, 91,189,234,215,183,172,215,208,124,186,133, - 85, 99,187,220,132,211,211,123,213,175,191,229,167,216,234, 59, 67,132, 16,134, 97,152, 53,161,161,161,111,237,217,179, 71,121, -247,238, 93,101, 64, 64, 0, 4, 65, 40,139,192, 95, 26,112,214,215,215,183, 38,247,113, 73, 88, 88,216,244,193,131, 7, 35, 56, - 56,184, 44, 40,234,167,159,126,138,233,211,167,219,158, 63,127,126,234,238,221,187,167, 18, 66,150, 82, 74,103,152,210,150, 27, -182,151, 38, 38,107,193,163, 71,143, 6, 29, 58,116,104,248,180,105,211,124, 1, 76, 4, 48, 55, 35, 35,163, 19, 0,216,219,219, -203, 0,156, 33,132,188,251,201, 39,159,188, 63, 99,198, 12,188,249,230,155,115, 9, 33, 95,212,196,202, 71, 8, 97, 29, 28, 28, -222,236,219,183, 47,171,211,233, 96,110,110, 14,157, 78, 87,191,150, 2,139, 0, 88, 55,110,220,184,247,195,194,194, 96,107,107, - 11,157, 78,231,183,103,207,158, 45,115,231,206,109, 75, 8, 25, 93, 81, 90, 9, 33, 35,222,127,255,253, 1,111,191,253, 54, 90, -180,104, 1,142, 43,190,141, 43, 86,172,192,194,133, 11, 45, 78,158, 60,217,111,199,142, 29,253, 8, 33, 7, 41,165, 53,142,133, - 38, 8, 2, 56,142,195,179,103,207,224,228,228, 36,183,179,179, 59, 65, 8,217,156,145,145,241,195, 63,200,106,178,108,200,144, - 33,111,237,218,181,203, 2, 0,150, 47, 95,142, 41, 83,166,192,217,217, 25, 22, 22, 22,162,218,249,135, 88,180,202,199,209,170, - 81,120,135,194,194,194,102, 51, 63,124, 7, 12, 83,220,107,108, 80,215, 11,139,103,141, 37, 71,142,159,104, 86,213,117, 18,133, - 27,238, 95,252, 10,114,207,201, 80,235,244,184,242,199, 35,156, 90,222, 19, 0,224,215,107, 54,212,218,174,165,202,208, 78,102, -102,182, 76,195,243,151,224,226,114, 21, 79,159,166, 85, 39,178, 28, 93,156,143,111,220,184,212, 44,168,190, 63,180,122, 29, 18, - 82, 19, 64,136, 28, 30,238,150,120,119, 68, 47, 73,167, 78,110, 14, 11, 22,108, 10, 55,119,244,235, 95,144, 22, 93,109,192, 80, -127, 71,178,173, 99, 51,223,193,195, 66, 58,200, 27, 7, 53,130, 84,110,246,255, 2,172, 69, 11, 52,111,209,130,153,145,159,215, -253,218,245, 27,221, 15,156,188,162,246,119, 36,251,238,167,209,145, 85,149,131,161,224,152, 52,105, 18, 74,123,223,165, 72, 73, - 73,193,175,191,254, 82,225, 53,198,150,181,225,127,124,241,197, 23,150, 89, 89, 89,189,182,110,221,250,186,171,171,235, 23, 73, - 73, 73, 23,141, 33,121,135,144, 58,144,203,187,142, 90,185, 82,104,250,191,255,177, 54, 46, 46,140,192,243, 36,241,225, 67,251, - 85, 95,125,213, 57, 51, 38,198,172,192,206, 46, 51, 75,165, 42,140,142,142,134, 66,161, 32, 28,199,181,172, 64,225,167, 16, 66, -150, 49, 12,153, 78, 8,129, 92,174,136, 14, 11, 11,187, 89,114,186,206,177, 99,199,148,125,250,244, 41, 4,240,164,216, 28,174, -112,103, 89,198,175,120, 0, 33,150, 25, 35, 48,205,205,205, 63,252,124,209, 82,243,220,204,108,149,182,160, 64,231,104,101, 65, -136,133, 37,155, 75, 45, 88,132, 0, 0, 32, 0, 73, 68, 65, 84,155,147,151,151,144,148,166,158, 61,127, 33, 59,238,221,183, 63, - 4, 48,222, 88,145,213,164, 73,147,107,135, 14, 29,114,178,183,183, 71,118,118, 54, 50, 50, 50,112,237,218, 53, 8,130,128,208, -208, 80,121,187,214,173,154,205,154, 61,231, 55, 66, 72, 91, 99,196,150,185,157, 3,150,119,104, 90,220, 88, 63,201, 40, 43,159, -205,131,122,151,253,102, 97,124, 14, 0, 64,161, 80,212,102, 9,169,182, 93,187,118,149, 2,192,232,209,163,115,243,242,242, 22, - 3,216, 69,171, 8,170, 90,130,169,115,230,204,113,175, 91,183,174,247,174, 93,187,144,159,159, 15, 0, 78,117,235,214,133,191, -191, 63,127,246,236, 89,248,249,249,193,210,210, 18,231,207,159,199,149, 43, 87,208,188,121,115, 75,169, 84, 58,184, 50,161,213, -185,103,231, 57,242, 62, 1, 29,253,155,143,128,133,149, 43,182,236,222,139,251, 55,182,119, 84,107,239,206, 89, 60,209,253,109, - 21,149,143,244,240,181,156, 81,167, 69, 39,251, 6,141,254, 7,239,230, 55, 29,138,248, 11,143,230, 78,168,183,132, 83, 20,109, -159,183, 34, 49,163, 50,145, 5, 96,121,104,104,232,160, 61,123,246,216, 0, 64, 68, 68, 4, 82, 82, 82,224,232,232, 8,133, 66, - 1,137, 68, 82,182, 62,105, 13, 49,114,253,250,245,101,162, 77,175,215,151,173, 2,160, 84, 42,241,218,107,175,161,105,211,166, -248,225,135, 31, 70, 2,152, 81, 65, 26, 59,180,110,221,250,123,111,111,111, 79,195,239, 67, 66, 66, 48,116,232, 80, 0, 64,167, - 78,157,186, 14, 28, 56,144,150, 10,194,164,164,164,252,235,215,175,119,167,148, 94,173, 40, 65, 12,195,168, 18, 18, 18,240,201, - 39,159,224,241,227,199, 19, 8, 33, 79, 1, 40,100, 50, 89, 89,255,152, 16,226,215,168, 81,163, 53, 83,166, 76, 65,108,108, 44, -162,162,162,174,213,212,149, 74, 41,229,125,124,124, 98,116, 58, 93, 11,189, 94, 15,149, 74,133,254,253,251, 43,236,236,236, 82, - 88,150,189,151,158,158, 62,188,100, 76,138,177,141,144, 2,192,202,176,176,176,247,167, 77,155,134, 95,126,249, 5, 71,142, 28, -193,219,111,191,141,201,147, 39,195,194,194, 98,212,228,201,147,127, 67,241,130,230,229,209,117,253,250,245,224,121,254,133,119, - 67,161, 80,160, 67,135, 14, 8, 12, 12,196,145, 35, 71,186,194, 96,125, 84, 19, 27, 73,239,208,208, 80,153, 32, 8, 40, 40, 40, -192,217,179,103, 45,204,204,204, 44, 60, 60, 60,198, 0,248,199, 8, 45,111,111,239,176, 61,123,246, 88, 24,122,127,228,114, 57, - 12,158, 3, 17,127,179, 69,171,186, 30, 86, 25, 52,154, 66, 45,199, 49,247,220, 92,131,247,157, 63,247, 65,153,235, 16, 96,238, -105, 52,133, 90, 0,224, 5,138,220, 66, 61,204,228, 12,158, 36,231,225,206,195,244,138,254,248,185, 41,154, 18, 51, 47,200, 91, - 61, 1,165, 20, 26, 45, 15,117, 78, 50, 22,135, 23,226,110,124, 17, 52, 5, 89,208,104,139,135, 97, 57, 56, 56,112, 39, 78,252, - 52,229,244,233, 95,223,255,238,187,239,216,120,107,235, 40,228,228, 52,171,136,211,206,174,190, 37,103,110,182,111,195,198,185, -102,148,125,136,232,184, 2, 52,240,104, 5, 7, 27, 79, 36,167, 23,224, 82,212,143,184,247,224, 56,234,186,122, 99,242,135,111, - 40, 62, 95,180,107,175,173,109, 93,175,172,172, 71,185,149,165,179, 4, 35, 54,253, 28, 13,125,230, 67,240, 25,177,224,243, 18, - 95, 20,120,142, 94,104,222,197, 29,142,158,245,229, 35, 39, 47, 28, 1, 96,100, 69,156,148,210, 20,150,101, 55, 48, 12,121,159, - 16,130,224,224, 38,241, 43, 87,174,212, 86,240,159,218,224,224, 38,241, 44,203,120, 20, 87,236,204,122, 65,224, 83,170, 73,231, -115,162, 70, 38,147, 79, 43, 54,251,187, 62, 11, 15, 15,215, 14, 26, 52, 8, 43, 86,172,144, 77,159, 62,125,182,135,135,199,232, -242,238,189,242,156,161,132,120,185,215,175,223,227,139, 75,151,168, 68,167, 35,153,215,174,229,102, 39, 37,233,147,243,242,100, -251,239,221,123,243,189,143, 63,150,121,122,122,226,226,241,227,246,105, 5, 5, 52, 91,173, 86,101,103,103, 83,189, 94,127,173, -146,188,207,116,118,118, 86,110,217,178,197, 47, 44, 44,236,102, 98, 98,226,204,146, 10, 98, 49,128, 64, 0, 79, 12,190,195,198, -141,123, 19,198,140, 25, 19,157,146,146, 50,179,170,116, 26,160,145,147,163,147,114,247,166, 29,183,237, 44,205, 24, 71, 15, 55, - 70, 98, 99,195,233,101,102, 82, 1, 80,213,245,172,111, 14,160, 81, 37,247,236,116,249, 30,183,153,153,217,161,163, 71,143, 58, - 73, 36, 18,240, 60, 15, 71, 71, 71, 60,126,252, 24,217,217,217,200,203,203,195,163,123,119,225,227,233,137, 5, 51,166,187, 78, -156, 62,227, 16, 33,164,133, 97, 99, 86,225, 2,200, 58,237, 11,150,189, 74, 22, 34,127,110,111, 76,185,151,195,227,184,184, 56, - 88, 88, 88, 32, 40, 40,200,226,210,165, 75, 23, 42, 19, 89,229, 22, 1, 30,220,190,125,123,203,221,187,119,163,121,243,230,176, -182,182,198,217,179,103, 17, 17, 17, 1,173, 86,203,228,231,231,195,210,210, 18, 75,150, 44,129,183,183, 55,114,115,115, 17, 23, - 23,103, 47,145, 72, 28, 42,227, 60,123,226,236,231, 57,177,103,230, 36,147,159,223,216,178,123, 47,198, 12, 27, 2, 23,250,240, -130,117,125,242,121,143, 62,237, 63,165,172,103,111,115,203, 96, 91,223,160, 62,144,202, 44, 48,113,218, 66, 68, 71, 30,179, 45, -204,187, 61,129,240,207, 60, 1, 76, 42,207, 89, 98, 17, 97, 60, 61, 61,223,219,191,127,191,165,129, 43,165,108,205, 67,195, 69, -224, 43, 91,240,221,152,251, 73, 8,193,227,199,143,225,228,228, 4, 11, 11,139,178, 5,196,239,222,189,139, 43, 87,174,160,116, - 53,138, 74, 56,135,159, 62,125,218,211,220,220,188,252,111,144,158,158, 14,189, 94, 15,165, 82, 9,158,231,161,213,106,161,211, -233, 80, 84, 84,100, 17, 24, 24, 56, 30,192,213,138, 56, 5, 65,248,104,240,224,193,237,175, 94,189, 90,239,171,175,190,130, 70, -163, 89,158,156,156,140, 1, 3, 6, 64, 16, 4,116,237,218,181, 13,165,244,254,236,217,179, 1, 0, 83,166, 76,209, 21, 20, 20, -132,213, 36,239, 37,249, 15, 28, 56,112, 96,189, 95,126,249, 5, 29, 59,118,132, 90,173,198,138, 21, 43,172, 54,110,220,104,181, - 99,199, 14,199,105,211,166,125, 11,160,103, 85,156, 37,229,181,220,197,197,229,253, 97,195,134,153,149,172, 97,138,237,219,183, - 99,193,130, 5,123, 0,204,254,233,167,159,230, 29, 57,114,100,196,123,239,189,135, 5, 11, 22, 76, 46, 21, 90, 21,113, 62,122, -244, 8,142,142,142,176,178,178, 42,174, 44,181, 90,220,186,117, 11,167, 78,157, 66,195,134, 13,141,105, 8, 79, 87, 33,178,190, -221,189,123,183,229,179,103,207,112,254,252,121,248,248,248,160,176,176,176,218,181, 97, 95,246,226,207,213,113,170, 84,170,162, -184,184, 56,139,165, 75,151,194,213,213, 21,222,222,222, 80, 40, 20, 32,132, 64,167,211, 85,186,188,154, 49,233,236,220,153,112, -233, 9,182,125,173,109,108, 39, 80, 74,185,156,156,172, 77, 90,100, 31,136,141,165,154,191, 42,239,255,114,139, 86, 51, 74,233, - 77,195, 53, 15, 75, 59, 35, 28, 0,132,135,135,211,144,144, 16, 82,186,119,119, 71,110,122,186,109,180,147, 75,227,189, 78, 46, -141, 74,214,253, 98,238,177,172,109,180,179,115, 97, 46, 0,104,245, 20,151,239,101,227,118, 76, 50, 34, 98,146, 97, 46, 55,206, -248,162,214,234,139,231,103, 82,138,162,252,255,239,180,106, 11,179,160,214, 22, 15,247,208,168, 11,145,147, 22, 69, 6,245,239, -174,120,255,253,113,112,117,117,119,172,140, 79, 43, 87, 76,158, 56,229, 77, 27, 59, 27, 9,142, 95,250, 25,109, 26,246,135, 66, - 46, 65, 70, 78, 17, 64,128, 7, 15, 79, 1,130, 37, 34,163,227,208,186,145, 18, 61,123, 4, 88,252,112,224,254,199, 0,230, 26, -147, 94,125,252, 53, 72,125,123, 65,194,235,160, 75,191, 15, 33,251, 41, 96,238, 2, 21,177, 64, 70,210, 83,220,187,112,176,120, -194,105, 53,224,121,126,130,163,163, 99,246,236,217,179, 59, 55,104,208, 64, 59,126,252,248, 63,158, 60,121,242,220,178, 54,117, -234,212,249,114,253,250,245,136,137,137, 73,248,226,139, 47,206,166,165,165,205, 49,241, 5,157, 65, 8, 89, 93,226,138, 75, 63, -124,248,112,243,115,231,206, 77, 94,189,122,245,255,177,119,221, 97, 81, 29,237,247,204,118, 88, 22,144, 94, 69,177,128,189,151, -168, 40, 98, 52, 22, 44,177,183,196,222,177,119,141,177,196,150,168,177,119, 99,193,110,108,193, 94, 80, 44,104, 84,148,162,136, - 40, 69,170,212,165,109,223,187,119,126,127, 80, 62, 68,202,130,250,149,252,246, 60,207, 62,112,119,239,158,157, 59, 51,119,230, -220,247,157,121, 95,187,233,211,167, 11,167, 79,159, 62, 22,192, 47,229,185, 11, 77, 68,162,174,107,238,221,163, 76, 66,130,234, -232,246,237,194,157,129,129, 75, 53, 44,235,104,109,107, 75,218,183,109, 43, 19,115, 56,233, 25, 41, 41,140, 77,237,218,220,152, -155, 55,173,168,177,113,210,213,171, 87,115,242,242,242,202, 76,157,195,229,114,229,165,185, 11, 75,131,131,131,131,186,180, 53, - 92,229,116,238, 28,150, 82, 77,181, 90,181,232,119,223,182,171,251, 54, 34, 42,202,168, 90, 53,174, 91, 93,215,122, 47, 95,199, - 60,161, 58,157,146, 16,146,163, 15, 23,151,203, 29,186,101,203,150, 38,102,102,102, 96, 89, 22,230,230,230, 72, 75, 75,131, 90, -173, 70, 78, 78, 14,212,185,217, 80,103,103, 35,244,125, 12, 58,116,238,140,193, 61,190,107,224,123,225,175,161, 0, 78,150,199, -235,216,180, 69,145, 37,107, 85, 77,171,127,249,130,226,179,138, 68,215,175, 45,220, 32,144, 72,208,109,206,162,207, 25,160,159, - 11,133,194, 43, 3, 6, 12,232, 53,111,222, 60, 78,114,114,242, 53, 66, 72, 7, 74,233,171,114, 45,194, 18, 73,157,244,244,116, -228,230,230,194,220,220, 28, 91,182,108,129,157,157, 29,228,114, 57,158, 62,125, 74,157,157,157,201,157, 59,119,224,236,236,140, -244,244,116,104, 52, 26,200,100,178, 15,106,181,186, 76,119,121,129,123,176,231,156,158, 14, 87, 35,130,142,116,116, 34,209, 79, -135,204,245,124, 27, 17,250, 58,238,198,205,135,191, 48, 74,163,248,172,132, 91, 11,107,181,126,110, 61,109,254, 74,236,216,176, - 28, 17,127,223,203,180,115,201,217,105, 76, 84,135,219,118, 43,187,188, 50,153, 76,249,250,245,107,211,224,224, 96, 16, 66, 96, -110,110, 14,177, 88, 92,170,216,170,194, 96,201, 41,246, 59,144,201,100, 16, 8, 4,176,178,178,194,129, 3, 7,138, 38, 94, 87, - 87,215,242,104,246,118,235,214,109,168,139,139,139,105,241, 55, 91,183,110,141, 73,147, 38, 97,247,238,221, 8, 12, 12,252, 40, -159,230,135, 15, 31,146,181, 90,237,225,114,218, 54,139, 16,210,163,127,255,254, 65,247,239,223, 55, 59,112,224, 0, 24,134, 41, -245,181,127,255,126, 60,126,252,120, 25,165,244,117, 21, 39,140,250, 3, 7, 14,188,119,236,216,177,106,105,105,105, 72, 79, 79, - 71, 94, 94, 30,100, 50, 25,116, 58, 29,234,213,171, 71, 24,134,169, 87, 81, 61,114,185,220, 11,219,183,111,239, 51, 97,194, 4, -240,120, 60,168,213,106,108,223,190, 29, 11, 23, 46, 76, 1, 48,154, 82,170, 33,132, 44, 61,124,248,240,168,190,125,251,162, 89, -179,102, 13,202,227,204,203,203, 67, 94, 94, 30,248,124, 62,236,237,237,177,122,245,106,168,213,249,195,138,187,187,123,145,203, - 19,192, 94,119,119,247, 62,111,222,188,217, 72, 41,253,173,140,113,166, 63,165,116,162, 78,167,203, 29, 48, 96,128,213,137, 19, - 39, 76, 19, 19, 19, 17, 20, 20,132,101,203,150, 73, 89,150,213,177, 44, 75, 20, 10, 69,180,157,157, 93,144, 72, 36, 50,150,203, -229,153, 25, 25, 25,107, 41,165,215,254,131,147, 57,225,243,249, 24, 55,110, 28,120, 60, 30,140,141,141,161, 84, 42,161,213,106, -139,196, 60, 42,233,150,118,115, 51,181,226, 65, 48,193,221,189,211,172,193, 51,123,219, 56, 56, 58,161,154,153, 8,225,225,175, - 58,248,223,190,185,189, 97, 61,155, 61,172, 90,187,231,117, 76,214, 87, 79,118, 95, 82,139,252,143,105,173, 22, 0,158,163, 88, -206, 67, 20,236, 66, 44, 99, 36, 26,164,179,182,254, 51, 61, 49, 81,168, 17, 10,197,111, 10,173, 92,249, 34,107,144, 14, 56, 1, - 70,163, 45, 24, 40,104,193, 75, 79,161,165,213,225,109, 68, 24,238,223,248, 11,214,242, 68,164, 71, 55, 7, 4, 77,160, 86,100, - 67,169,214, 20, 60,189,233, 16, 28,116, 27, 57,217,153,104,220,170, 55,192,225, 60, 46,139,207,220,138,244,110,223,178, 41,247, -109, 92, 24, 90,187, 15, 66,109,231,142,120,159,156,131,172, 60, 21,164, 57, 74, 52,111,188, 8,105, 82, 5,114,228, 74,188,122, -235, 11, 39,199,218, 28,194,139,250, 86, 95,161,165,122,117, 14,170,215, 23, 33,168,209, 1,194,122,125,193,173,225,129,184,144, - 59, 8,190,186, 25, 9, 47, 31,128,178, 58, 56,184,183,209,247, 38,217,126,237,218,181, 54, 29, 58,116,224,117,237,218,181,153, -163,163, 99,179,164,164,164,224, 2,107, 78,179, 94,189,122, 53,179,177,177,193,214,173, 91, 21,132,144,237, 85,156,108,139,187, -219,158,216,217,217,173, 57,119,238,220,246, 73,147, 38,193,214,214,182, 73,121,223, 77,227,243,155,141, 94,187,150,242,185, 92, -122,114,199, 14,193,202,107,215, 54, 29, 58,124, 88,208,197,203,139, 80, 74,241,226,197, 11,241,175, 59,118,136, 71,244,235, 23, -251, 62, 53,149, 9, 8, 12,212, 36, 39, 36,228,166,202,100, 43,147,146,146, 62,252, 39,122,182, 86,171,125, 20, 29, 19,237,212, -170,109,115,155,231,225,209, 47,187,119,105,223,158,195,225,112, 34,162,222, 7,218,216,152,137,111,222,184,169,209,106,181,143, -244,225, 18,137, 68,189,187,116,233,194,147, 74,165,112,116,116, 68, 90, 90, 26, 18, 19, 19,243, 45, 14,217, 82,104,178,179,161, -205,201,130, 78,150,135,232,167, 79,208,188,118, 45,209,153,252,197,242, 39, 43,104,147, 82, 45, 85,197, 45, 91, 66, 83, 83, 8, - 37, 18,144, 74,186, 13, 9, 33,253,170, 85,171,182, 48, 43, 43,235, 10,165,116,181, 70,163,241, 89,184,112, 97,235,109,219,182, - 89,175, 89,179,198,108,226,196,137,103, 8, 33,205, 41,165,170,114, 38,176,119, 12,195, 88, 3,176,189,125,251, 54,108,109,109, -145,157,157, 93,104,105, 81,203,229,114,163,140,140, 12,168, 84, 42,168,213,106,152,153,153,225,217,179,103, 82,134, 97,254,170, -168,124,102,117,200,106,149, 38,252, 39,171, 6, 38, 73, 26,198,194, 51, 53,147,149, 46,223,152,180, 10,192,166,158,117,234,236, -215,176,247,162, 35,195,252, 44, 98,158,222,205, 76,138,148,213,222,127, 57, 42,183,156,122,164,132, 16,150, 16, 66,221,221,221, -145,150,150, 6, 46,151, 11,177, 88, 12,137, 68,130,197,139, 23, 99,251,246,237,149, 22, 90,132, 16, 35, 19, 19,147,181, 28, 14, -103,168,185,185,185,141, 78,167,195,162, 69,139,208,167, 79, 31, 8,133, 66,104, 52,154, 34,139,102,161,149,170, 60, 75, 7,165, -244, 5, 0,179, 18,191,225,101,109,109,237,175, 82,169, 16, 21, 21,133, 11, 23, 46,116,166,148, 6, 84,242,222,142, 34,132,244, -240,240,240, 56,210,178,101,203, 58,148, 82, 52,105,210, 4,195,134, 13,131,175,175, 47,130,131,131,145,157,157,205,222,188,121, -243, 16,128,141,149,157,192, 11,234,183,222,192,129, 3, 31, 28, 63,126,220, 34, 35, 35, 3, 10,133, 2, 50,153, 12,103,206,156, - 65,135, 14, 29, 96,109,109,141, 99,199,142, 49,148, 82,191,242, 68, 22,135,195, 57,176,103,207,158, 62,227,199,143,199,206,157, - 59,113,242,228, 73,244,237,219, 23, 67,135, 14, 69, 90, 90,154,221,134, 13, 27, 70, 17, 66, 14, 0, 88, 62,108,216, 48,228,229, -229,225,233,211,167,225,122,222,243,200,202,202, 66, 86, 86, 22,140,141,141,139,223, 99, 4,128,239,230,205,155,135,207,154, 53, - 11,181,107,215, 94, 94,176, 41,232,147, 93,162, 44,203, 78, 78, 76, 76,180,224,241,120, 86, 12,195, 32, 62, 62, 30,207,158, 61, -195,180,105,211, 50, 51, 51, 51, 39, 81, 74,223, 19, 66,150,142, 27, 55,110,245,156, 57,115,138,250,210,156, 57,115, 46, 17, 66, -122,252,187,173, 57,245,234, 89, 52, 18,114, 69, 51, 5, 2,190,149, 84, 42, 45, 26, 59,212,106, 53, 84, 42,213, 71,150, 44,129, -128,111,213,166, 69,141,203, 10,121,238,146,151,111,164,101, 38, 72,111, 88,183, 90, 83,177,137,249, 44,239, 30,131, 71,126,215, -227,123, 46,163,213,226,250,117, 63,252,241,199, 46,120,121,184,163,118,221, 38,152, 62, 99,166,185, 74,205, 44,186,121,243,218, -194,246,109,106, 93,203,205,201, 90, 92, 30,231,255,115, 92, 46, 16, 87,151, 75,117, 29,150,174, 32, 7,233,156,156, 32, 45,184, -113,172, 45, 44, 44,118,232,116, 58, 47, 96, 2,248, 18,123,188,122,246, 55, 50,165,124,168, 20, 58,176, 52, 95,108,233, 37, 92, - 84,106,220,187,126, 17, 91, 54,111, 66, 70, 70, 6, 60, 58,117, 70, 30,175, 58, 92,170,187, 64,169,144, 23,220, 52,128, 70,173, -133,141, 93, 13, 60,127, 30,172,205,145,201,202, 28,144, 4, 70,154, 6, 46,118,238, 80,105,218,193, 72, 40, 68,118,174, 26,210, - 2,145,117,236,207, 33, 80,201, 21, 96,212, 26, 48,106, 45,108, 92, 6,162,190, 93, 23,176, 58,191, 70,149,170, 62, 86, 7, 77, -204, 61,104, 98,238,193,184,221, 12,252,181,110,120,137, 1, 80,191,188,187,169,169,169,169,142,142,142,126, 47, 94,188,232, 63, -100,200, 16,220,185,115,103, 34,128, 41, 5,238,155,137, 67,134, 12,193,139, 23, 47,240,242,229, 75,191,212,212,212, 47,146,120, - 85, 40, 20, 42, 84,170,252, 57, 86, 44, 22, 27, 85,112,174, 83,235, 1, 3, 56,217,207,159,231,108,126,248,112,249,254, 3, 7, - 4, 93,191,253,150,104, 25, 6,172, 78,135,186,110,110,228,187,239,190, 51,241, 61,125,218,138,171,213, 62,158,239,227,115,123, -247, 15, 63,228,254,157,151,167,239, 66,243,154, 5, 46, 67, 0,168, 89,206,123,122, 67,165, 82,109,155, 60, 97, 76,215,128,123, - 15,170,187, 84,119, 50,187,126, 51, 32, 88,100, 44,228,212,118,173,195,149,102,103,242, 86, 45, 95, 98,172, 82,169,244, 21,173, - 13,172,173,173,241,225,195, 7,188,125,251, 22, 42,149, 10, 90,173, 22,172, 92, 6,181, 52, 11,234,236, 76, 16,165, 2, 34,157, - 14,202,244, 20,212,172, 93, 11,248,215,142,196, 10, 93, 81,165, 9,173,194,191, 70,102,102, 16,152, 72,192,225,243,245, 78,142, - 78, 8,105,217,166, 77,155,211,103,207,158, 21,140, 29, 59,182, 45, 33,100, 71,193, 4,241,237,178,101,203,158,236,216,177, 67, - 52,105,210,164,122, 27, 55,110, 28, 5, 96,111, 89, 60, 74,165,242,244,229,203,151, 71,212,168, 81,195, 54, 52, 52, 20, 74,165, - 18, 44,203,162,103,207,158, 0, 80,212,103, 34, 34, 34, 20, 74,165, 50, 53, 44, 44, 44,231,253,251,247,106,232,177, 75,112,249, -214,164, 71,115, 6, 59, 15,176,179,119,122,108,100, 92,211,149,230, 61,239, 63,103,176,243,134,223,207, 36, 40,175,190,123,151, -187,108, 90,237,245,178,220,144,105,213,156,243,118, 94,245,139,210,103, 87, 48, 45,220,206,110,101,101, 5, 30,143, 7, 62,159, - 15,129, 64, 0, 66, 8,102,204,152,129,125,251,246,149,235, 58, 44, 41,178, 76, 77, 77, 95,174, 92,185,210,121,210,164, 73, 2, - 35, 35, 35, 72,165, 82, 28, 59,118, 12,227,198,141,195, 31,127,252, 81,234,250,151,138, 92, 74,165, 88, 75,103,253,240,195, 15, - 80,171,213, 24, 54,108, 24,246,239,223, 63, 11, 64, 64,101,251, 59,165,244, 49, 33,196, 45, 56, 56,216, 12, 64,223,161, 67,135, - 30, 30, 56,112, 32, 2, 2, 2,224,231,231,215, 25,192, 27, 0, 10, 0,235, 10,146, 56,175, 43,111, 35, 72, 65, 8,135, 93, 54, - 54, 54,125, 27, 53,106, 20, 60,112,224,192,198,199,143, 31,175,150,154,154, 90,184,249, 1, 49, 49, 49, 56,120,240, 96,242,129, - 3, 7,114,116, 58,157, 21,135,195,185,156,149,149,181,184, 28,119,225,129,205,155, 55,143, 41,112, 7,226,236,217,179,116,211, -166, 77,100,217,178,101,144, 74,165,240,242,242,194,158, 61,123,102,230,229,229, 53,219,180,105,211,132,193,131, 7, 99,213,170, - 85,144,201,100,155, 43,122, 88, 41, 71,124, 17, 0,237, 55,111,222, 92, 99,214,172, 89, 56,123,246, 44, 90,182,108,105, 28, 29, - 29,189, 27,192,248,210,218,143, 82,138,232,232,104,200,229,114, 60,120,240, 0,203,151, 47,151, 22, 19, 89, 51,167, 76,153,178, -122,230,204,153, 88,187,118, 45, 13, 13, 13, 77, 29, 56,112,160,221,190,125,251,184,117,235,214,157,137,252,164,235,255, 22,212, -119,179, 90,223,166,181,231, 66, 7,167,186, 56,118,252, 4, 50, 51, 51,139,234,164,176, 94, 40,165,200,205,205,197,135, 15, 31, - 96,110,102,138, 13, 27, 87,247,154, 58,113, 76,117,228,135,193,248,116,160,171, 99,185,113,208,176,241,115,135,141, 24,131,208, -224, 32,248, 30,222,139,176,208, 23, 69,124,140, 86,131, 55,225,207,240, 38,252, 25,236,236,107,224,187,174,157,201,240,225,195, -123,254, 48, 98,168, 13,128,175, 22, 58,226,127,216,154,245, 73, 28,173,226,107,182,120, 21,153,235, 10, 68,214,203, 83,167, 78, - 89,121,120,120,112, 25,134,193,181,235,215, 49,109,202,143, 24,245,195, 34,104, 96, 1, 70, 45, 0, 43, 48,210,171, 48, 10,133, - 28, 20, 20, 50,153, 12,129,129,129,160, 44, 3,223,125,155, 64, 41, 91, 36,180, 0, 10,181, 70, 3, 39,151,122,216,181,127, 13, - 3, 62,255, 73, 89,124, 57, 25, 92,157,150,161, 72, 76,141, 67, 92,114, 24,204, 77, 93,192,227,187, 32, 35, 75, 14, 30,199, 30, - 90,101, 4,116, 5,102, 85,185, 44, 1, 10,205,231,181,159, 46,251, 83,235, 41,173,196,160,171, 80, 40,142, 30, 61,122,180,215, -239,191,255, 46,244,246,246,118,119,116,116,108, 15, 0,131, 6, 13,114, 55, 51, 51,195,209,163, 71,213, 10,133,226,232, 23,180, -248,116,105,211,166, 13,164, 82, 41, 98, 98, 98,130,203,189, 54,181,218, 74, 98,107,203, 77,189,115, 71,155, 38,149, 86,239,210, -165, 11,209, 50, 12, 56,132, 32, 51, 59, 27,239, 99, 99, 81,173, 90, 53,242, 50, 34, 66,178,125,250,244,243,238,141, 27,243, 10, -119, 36,234, 3, 63, 63, 63, 49,242,215,101,149,251, 94, 37, 59,183,140, 16, 50,198,199,199,231,252,209,163,199,204, 83, 82, 83, -222,136,132, 66, 70, 34, 49,114,252, 97,228, 84, 94, 86, 86,214, 8, 74,105,158,190,124, 82,169, 20,209,209,209, 48, 54, 54,134, -128,207, 7,171,144, 67, 39,203,131, 50, 51, 13, 92,141, 26, 66,157, 14,150, 98, 17,170,219,217,193,197,198, 90, 47,206,183,254, - 55,138, 22,190, 23,119, 23,110,104,211, 0, 66, 19, 9,132,166, 18, 76,189,116,183,224,105, 84, 0, 44,251, 69, 31,145,101,237, -228,228,244,215,241,227,199, 5,105,105,105,120,241,226, 69, 48,165, 52,155, 16, 98, 10,128, 13, 15, 15,191, 21, 22, 22,214,187, - 96,215, 93, 69,187,197, 54,157, 59,119,174,155,135,135, 7,227,234,234,106,146,146,146,226,146,145,145, 65,146,147, 63, 94,235, -124,229,202, 21, 35,133, 66, 33, 99, 89,246, 60,242,227, 64, 85, 24,191,104,206, 96,103,163,192,231,152,225,217,189,102, 19, 51, -235,166,200,100,158, 55,121, 28,156, 60, 99,206, 96,231,109,191,159, 73, 80, 26, 19,213, 97,162,139,175,206, 51, 82, 30,209,179, -189,169,181,181, 53,194,195,195, 17, 24, 24,136,247,239,223, 35, 58, 58,250, 35, 65, 53,113,226, 68,248,250,250,234,101,209, 50, - 49, 49, 89,187, 98,197, 10,231, 89,179,102, 9,138,137, 34,248,248,248, 32, 59, 59, 27,251,247,239,135,143,143, 79,165, 39,254, - 18,109, 85,171, 91,183,110,222, 14, 14, 14,200,200,200,128,189,189, 61, 60, 60, 60,250, 16, 66, 92, 41,165, 49, 85,236,250, 83, -187,119,239,190,122,229,202,149,208,106,181, 24, 55,110, 28, 34, 35, 35, 79, 71, 70, 70,110,113,113,113,153,177, 96,193, 2, 59, - 59, 59, 59, 12, 25, 50,196, 4,192,128,178, 72, 44, 45, 45,215,237,221,187,119,132,183,183, 55, 71,163,209,116,242,247,247, 71, -108,108, 44,212,106, 53, 24,134,193,187,119,239,224,227,227,147,156,145,145,225, 73, 41,125,167, 71,185,198, 46, 93,186,116,204, -140, 25, 51,240,235,175,191, 98,197,138, 21,135,204,205,205, 27, 55,111,222,188,197,138, 21, 43, 48,127,254,124,212,168, 81, 3, - 86, 86, 86,245,151, 45, 91,214, 96,206,156, 57,216,182,109, 27,150, 47, 95,126, 8,192,193,170, 84, 4,203,178,100,253,250,245, -205, 54,111,222,236, 80, 40,178, 56, 28, 14, 78,157, 58,133,231,207,159,247, 41,227, 59,123,236,237,237, 39, 58, 56, 56, 8,111, -222,188, 41,169, 81,163, 6, 24,134,209, 22,136,172,237, 46, 46, 46,211,222,189,123, 7,111,111,111, 68, 69, 69, 29,165,148,142, -242,244,244,148,205,153, 51, 71,108,108,108,108,254,239,156,192,185, 28, 50,122,237,170,249,120,250, 60, 2,231,206, 9,240,244, -233, 83,216,217,217, 65, 36, 18,129, 82, 10,149, 74,133,180,180, 52,104, 53, 42, 52,105, 84, 11, 71, 14,172, 71,106,106, 26,192, - 33,101, 46,185, 33, 28, 50,114,204,143,253,113,255,193,117,236,222,189, 23,121,121,178, 50, 30,190,141, 80,215,189, 1,156, 28, -109, 17,159, 16, 15,194,129,245,215,188,214,255,113,215, 97,225,253,174, 95,120,135,226,168, 86,173,218,150,147, 39, 79, 90,121, -121,121,113,101, 50, 25, 88,150, 69, 71, 15, 15,204,152, 53, 11,126,199,143,195,173,237, 48, 16,181, 4,140, 88,191, 93, 15, 74, -133, 28, 13, 91,180,199,224, 33, 67, 17,247,254, 61,186,247, 30, 8,165, 82, 94,244,132, 81,104,209, 82,171, 53,176,182,173,142, - 27, 55,110,112, 49,110, 92,153,107, 76,116, 26, 97,200,155,119,202, 14, 89,138,231, 8,124,234, 11,141, 74,131, 38, 77,150, 65, -195, 90,193,214,121, 34,180,218, 11,200, 73,243,207,119, 99, 88,121, 33, 33, 46, 14, 28,174,224,101, 85, 43,145,149,165,125,214, -160,155,149,149,149,237,232,232,248,103, 96, 96,224,200, 1, 3, 6,224,198,141, 27, 19, 0, 96,192,128, 1, 8, 12, 12, 68,116, -116,244,159, 89, 89, 89,217, 95,162,193, 29, 29, 29,251,122,121,121, 13,107,221,186, 53, 46, 93,186, 4, 74,233,125,189,110,108, - 62,159,114, 56, 28,176, 44, 11, 2, 32, 35, 43, 11,145,145,145,200, 72, 79,135, 86,171,133, 44, 47,143,109,224,238,158, 71, 89, -214,180, 50,229, 41,190,195, 16,165,236, 58, 44,124,175, 10, 98,235,189, 68, 34,137,203,205,203,179,177,168,102,145, 43, 20, 10, -117,210,172,172,236, 87, 47, 67,213,122, 78, 14,133, 8, 15, 11, 11,107,156,148,148,132,184,184, 56, 48,178, 92,112, 85,106,112, - 84,114,124,219,190, 29,140, 65, 97, 4, 22,124, 86, 11, 62,151,143,220,252,221,121, 21,186, 59, 10,133,126,113,203, 22, 33, 36, -223, 93,104, 98, 2,161,196,244, 35, 11,151, 62,253, 73, 36, 18, 29, 63,115,230,140,131,147,147, 19, 86,173, 90, 5,103,103,231, -250, 77,154, 52,145,119,236,216,209,216,206,206, 14, 13, 27, 54, 68,251,246,237,113,245,234, 85, 0,120, 87, 65,253, 49,132,144, -239,238,223,191, 63,247,225,195,135,131, 9, 33,100,209,162, 69,232,209,163, 7,140,140,140, 32,151,203, 33,149, 74,177,111,223, - 62, 66, 41,109, 81, 80,214, 26, 70, 70, 70, 39, 8, 33, 9, 10,133, 98, 72, 73, 78,223,205, 77, 29, 83, 51,217,113,118,246, 78, -253, 61,187,215,108,210,165,123, 87,212,114,235,130, 46,221,227, 0, 96,189, 37, 47,118,216,134,159, 26,159,183,174,110,121,240, -198,181,155,203, 61, 60,187, 44, 93, 52,201, 98,245,250,189,210, 28, 61, 6, 50,176, 44,251, 81,236,160,146,159,143, 26, 53, 10, -167, 78,157,170,176, 30, 57, 28,206,208, 73,147, 38, 9,138,191, 87,232, 50,238,221,187, 55, 6, 12, 24,240,145,208,178,182,182, -134,189,189, 61, 98, 99, 99, 1, 32, 67,207,126, 53, 99,236,216,177, 68,161, 80, 96,252,248,241,216,191,127, 63,134, 13, 27, 70, - 2, 2, 2,102, 0,152, 85,217,254,206,225,112, 54, 44, 88,176, 96,174,143,143, 15, 50, 51, 51,113,229,202, 21,244,236,217, 19, -167, 78,157,178,185,114,229,202, 90, 47, 47, 47,112,185, 92, 92,186,116, 9, 12,195,148, 27,235, 75, 32, 16,244,245,246,246,230, -196,199,199, 67, 32, 16,160, 85,171, 86, 72, 72, 72,128, 92, 46, 71, 98, 98, 34,102,206,156,249, 33, 35, 35,163,179,190,247,145, - 64, 32,152, 53, 99,198, 12,156, 60,121, 18,139, 22, 45, 58, 12, 96,124,118,118,246,224,135, 15, 31,158,236,215,175, 31, 18, 19, - 19,113,254,252,121, 44, 95,190,156,140, 26, 53, 10, 59,119,238,196,204,153, 51, 15, 1, 24, 95,206, 14,201,220,212,212, 84,243, - 58,117,234, 32, 37, 37, 5,121,121,121, 56,127,254,188,237,213,171, 87, 93,157,156,156,204,162,163,163,117,191,252,242,139,112, -214,172, 89,216,178,101, 11, 94,188,120, 1, 95, 95, 95,116,233,210,133,137,138,138, 42,213, 74, 86, 16,178,225,188,165,165,229, - 77, 19, 19, 19,228,230,230, 22,238, 44,157,183,104,209, 34,159,117,235,242,141,236, 73, 73, 73, 24, 61,122,244, 15,132, 16,118, -229,202,149, 98,129, 64, 0,165, 82, 41,251,119, 78,220,172,142, 5,192,194,181,186, 4,215,253, 14, 32, 40, 56, 10, 65,193, 97, - 16,138,242, 23,193, 43, 20,114,180,104, 82, 23,109, 91,181, 65, 82,114, 34,142,250, 30,128,165,181, 83,185,227, 8,165, 20, 2, -158, 14, 13,220,237,113,220,119, 47, 46, 93,185, 13,223,163, 39,138,214,188,241,120,124, 52,111,209, 22,173, 90,121, 32, 42,250, - 29, 14, 28,216, 13, 27,219,234, 6,231, 96, 21, 81,228, 58, 44,254,183,132,242,239,226,225,225,193,205,203,203,131, 82,169,196, -135, 15, 31, 16, 27, 27,139,106, 22,213, 16,149, 20,131,206, 98, 13, 62,176, 57, 8, 15,126,169, 35, 92,254,139, 10, 77,131,158, -205, 1,207,230,152, 54,118, 88,217,157, 0, 20, 38,102,214,249,174, 27,134,121,139,109,219,202,124,114,102,116,218, 91,215,111, -250,183, 25, 59,170, 47,255,134,255,126,104,213, 44, 20, 90,115,200,148,106,200, 52,124,112,204,123, 2,233, 1,224,242, 68,248, -166, 89, 93,156, 63,119, 85, 67, 25,237,109,189, 43,200,174, 49,152,148,176, 98, 66,235, 99,143,158,145,169,165,222,174,195,162, -137, 87,167, 59,117,236,216,177,239,219,181,107, 39,246,242,242,170, 83, 48,113,106,142, 29, 59, 38,215,233,116,167, 42,219,136, - 37,163,193, 59, 56, 56,180, 16, 8, 4,195,250,246,237,219, 98,204,152, 49,120,245,234, 21,142, 30, 61,250,166,110,221,186,229, -198, 16,227, 10,133, 25,121,169,169,213, 36,174,174, 60, 11, 83,211,164,171, 87,174,212,232,218,173, 27,137,139,139, 67, 70, 70, - 6,148, 74, 37, 94, 4, 7, 83, 62,151,155, 64,204,204, 56, 17,207,159,115,184, 66, 97, 70, 37,138, 26, 91,193,174,195,117, 85, -181,110, 85,119,176,168,179,124,209,228, 90, 74,149,178,113, 78, 78, 14,195,227,243,249,206,246,213,222, 87,210, 13,121,233,214, -173, 91,223,119,237,218, 85,244, 38,228, 5,152,236,108,168,179,165, 16,176, 58, 88,182,104, 6,174, 70, 5,168,181,112,106, 64, -161,204, 18, 35,224,239, 8,173, 74,165,170, 48,168, 97,161,208,226,148, 16, 6, 66,137, 4, 34, 83, 51,136, 36,146,146,130,129, - 84,208,222,226,190,125,251,126,251,205, 55,223,128, 82,138,125,251,246, 65,163,209, 8, 53, 26, 13,212,106, 53, 52, 26, 13,114, -114,114,224,235,235,139, 93,187,118, 61, 4,112, 72, 15,177,202,240,249,124, 31,134, 97,108, 69, 34,145,198,198,198, 70,112,250, -244,233,162,112, 19,205,155, 55,135,137,137,137,138, 16,162, 1, 0,123,123,123,237,225,195,135,121,253,250,245, 19,148,198, 87, -175, 73,253,249,181, 24, 11, 79, 35,227,154,174,102,214, 77, 81,203,173, 11, 0,160, 91,239,177,168, 85,215, 5, 57,233, 33,174, - 74, 69,108,127, 1, 79,106,241,114, 91,226, 43, 99,239,198, 99,100,169,119, 35, 81,250,246,254, 82, 39, 10, 14,135, 83,166, 59, - 86, 31,145, 69, 8,225,152,155,155,219, 20,174,243, 41,152,128,145,156,156,140,240,240,112,212,171, 87, 15,153,153,153,112,114, -114,130, 90,173, 70,235,214,173,161, 80, 40,176,121,243,102, 60,120,240,224, 33, 10,118, 70, 86,240, 27,198,110,110,110,163, 91, -180,104,129, 43, 87,174,224,233,211,167,137,215,175, 95,119,242,240,240,128,171,171,235, 24, 66,200, 18, 74,203,142,193, 87,154, -171,175, 83,167, 78,211,125,124,124, 16, 22, 22,134,201,147, 39,103,196,199,199,159, 63,125,250,244,248,229,203,151,115,186,119, -239,142,228,228,100,108,216,176, 65,247,224,193,131,141, 0, 86, 85, 80,143,175,227,227,227,157,149, 74, 37, 50, 51, 51,193, 48, - 12,228,114, 57,174, 94,189, 10, 95, 95,223,148, 2,145,245, 86,223,242, 53,107,214,172, 33,135,195,193,201,147, 39, 1,224, 39, - 74, 41, 75, 8, 57,223,191,127,255,196, 95,126,249,197,105,241,226,197,152, 48, 97, 2, 52, 26, 13,126,253,245, 87, 44, 94,188, -248,114,129,200, 42,111, 16,253,221,222,222,126,226,228,201,147,235,207,153, 51, 7,129,129,129,182,207,158, 61,107,245,226,197, - 11, 84,175, 94, 29, 25, 25, 25, 60, 43, 43, 43,108,217,178, 5,179,103,207, 62, 11, 32,253,209,163, 71, 67,163,163,163,215, 81, - 74, 55, 84, 80,159,123,156,156,156, 38, 82, 74,169, 92, 46,143, 93,180,104,209,134, 53,107,214, 96,246,236,217,120,249,242, 37, -178,179,179, 97,106,106, 74, 22, 44, 88, 48,250,167,159,126,194,184,113,227,168, 76, 38,219,245,239,119, 75,233, 32,151,134, 65, -167,178, 64,243, 38,245,208,188,113, 77, 92,247, 15, 2, 0,124, 59,208, 3,114, 89, 46, 14, 31,222,135,183,111, 35,193,227,243, - 81,205,210, 94, 31, 75, 32,212, 57,175,145,165, 73, 70, 87,175, 86,232,217,189, 51, 14, 29, 57, 5, 70,171,193,248,177, 35, 32, -205,202,194,145, 35, 7, 16, 21,253, 14, 60, 62, 31, 86,214, 95, 63, 16,106,121, 90,228,127, 94,104,233,225,126, 2,203,178, 72, - 76, 76,196,179,103,207, 16, 19, 19, 3,177, 88, 12, 5,163, 99,119,223,122,192, 18, 34, 72, 96, 41,125, 72,153,162, 40,197,159, -114,232,116,137,197, 34,214,154, 91, 88, 88, 8, 85, 42, 5, 24, 70, 91,108, 86, 33, 0, 1, 4, 60,192,193,177, 22,226,227,226, -169, 82,169,188, 91,238, 19,148, 74,185,229,226,249, 51, 62,237, 59,120, 88,247,252,118, 37,206, 95, 88, 6,105, 78, 14,148, 26, - 62,100, 74, 13,228, 74,160,154,165, 59, 90, 55,105,138,164,164, 12,132, 60, 13,200,227,169,228,250, 44, 20,141,220,190,116,172, -219,216,105,243, 97, 92,163, 3, 84,225,231,193,230,165, 20, 89,180,140, 36, 22,176,116,105,128, 44,153, 10,103,110, 7, 1,128, -222,169, 94, 82, 82, 82,228,142,142,142,199,124,124,124,126, 13, 10,122,230, 12, 0, 65, 65, 65, 9,201,201,201, 11, 83, 82, 82, -228,149,105,192, 98,209,224,137, 88, 44, 14,170, 91,183,110,146,183,183,183,121,255,254,253, 97,109,109,141, 23, 47, 94, 96,221, -186,117,175, 53, 26,205,252,187,119,239,150,235,234, 81,171,213,137, 65, 23, 46,152,117,254,241,199,106,243,251,244,217,224,227, -227,179,101,213,170, 85,124, 55, 55, 55,162,213,104, 16, 26, 26, 74,143, 31, 59,166,221,181,120,241,102,161,137, 9,239,201,197, -139,124, 70,165, 74,252, 79,119, 98,103,103,103,207, 94, 61, 60, 27,108,252,125, 27,148,138, 60,252, 29,120, 25, 82,105, 26,246, -238, 59,215,192,217,217,217, 51, 33, 33, 33, 64, 95, 1,124,240,224,193,185,109, 91,180,104, 81,187,122,117,132,190,143,129,144, -213, 65,192, 48,224,106, 84,224, 48, 74, 84,111, 76, 65, 56,166, 72,254,144,131, 53, 39,255, 12,211, 71, 24,215,239,213, 23,171, - 18,178, 65, 8,193,166,118,141, 33, 52,149, 64, 96, 34,193,212,191,252,139,132,193,165, 85,139, 33,148, 72, 80,167,173,135, 30, -131, 46,149,155,154,154, 62, 11, 13, 13,109,221,184,113, 99,204,157, 59, 23,177,177,177, 96, 89, 22, 41, 41, 41,202,228,228,228, -196,180,180,180, 88,228,199,255,217, 79,245,124, 18, 96, 24,198, 54, 40, 40, 8, 0, 4, 0,112,251,246,109, 56, 58, 58,194,220, -220, 28, 57, 57, 57,152, 63,127,190,232,231,159,127, 6, 0, 60,123,246,140, 95, 92,160,148, 68,104, 80,248,198,172, 92, 42,165, -121,207,251,103, 50,207,155,116,233, 30,143,110,189,199,224,230,165, 67,240,191,126, 11,150,188,216, 24,152,228, 94, 77,143, 73, -207, 73,144,185,237,105,208,114, 60, 55, 89,118,125,207,140,126, 22, 92, 7, 7,246,204,162, 93,217, 89,229,149,213,205,205, 13, -118,118,118, 69,107,180,120, 60, 30,198,141, 27, 7, 74,169, 94, 34,171,160, 30, 89, 51, 51,179, 52,165, 82,105,103,100,100,132, - 15, 31, 62,224,221,187,119,136,138,138, 42, 10, 29,192,178,172, 2, 70, 94,132, 0, 0, 32, 0, 73, 68, 65, 84,118,222,188,121, -252,233,211,167, 99,247,238,221,184,123,247,238, 67, 0, 43, 41,165,250, 62,172,141, 24, 50,100,136,169, 90,173,198,137, 19, 39, - 24, 0,189,207,156, 57,243,172,117,235,214,188, 30, 61,122,152,238,220,185,115, 4,128,253,149,232,238, 38,102,102,102, 2,141, - 70,131,157, 59,119, 34, 62, 62,222,147, 82, 26, 78, 8,217, 51,100,200,144, 93,141, 27, 55,174, 27, 22, 22, 22,153,151,151, 55, -149, 82, 26,162,199, 88, 52,182, 85,171, 86,103, 88,150,173,209,181,107, 87,147,223,127,255,221, 44, 34, 34, 2,206,206,206, 96, - 89, 54,180,178, 41,172, 34, 35, 35,195,147,147,147, 27,116,238,220, 25, 87,175, 94, 93, 79, 8, 89, 11,224,215, 41, 83,166, 56, -189,127,255, 30, 45, 90,180,128,165,165, 37, 34, 34, 34,114,147,147,147,119, 1, 88, 82, 81,172, 47, 74,105, 52,128,133,132,144, -166,123,246,236, 25,102,105,105,249,205,139, 23, 47,112,255,254,125,108,220,184, 17, 63,255,252, 51, 58,118,236,136,185,115,231, -166, 3, 24, 86,224,210,214, 43,110, 94,161,101, 11, 0, 90,181,106,149,180,110,221, 58,140, 31, 63,158,254,241,199, 31, 91,143, - 29, 59, 54,107,196,136, 17, 69,115,224,232,209,163,233,209,163, 71, 71,151,183, 17,224, 43, 65,171,209,168, 97,102, 89, 11,121, - 89,113, 72,139, 15,132,216,212, 30,221,187, 52,131, 92,161,134,223,197,179, 8, 9, 13, 6,135,195,129,157,125,117, 84,179,176, -198,155, 55,145, 0,240,170,124, 78, 13, 76, 45,106, 34, 47, 59, 30,234,212, 32, 24, 75,108, 49,230,199,254,144, 43, 52, 56,119, -254, 44,194,194, 66,192,229,114, 97,239, 80, 29,230,213,242, 57, 9, 45,151,211, 0,148, 30, 79,171, 66,161,197,229,114,239, 92, -187,118,109, 80,219,182,109,121,111,223,190,197,219,183,249, 15, 55, 82,169,148, 33,208,253,153, 18,114, 97,120, 57, 34,160,107, -225,238,140,226,185, 11, 37,166,166,137, 17,175,195,237,164,153, 41, 8,126,254, 0,111,223,132, 34, 38, 42, 28, 26,141, 18, 92, - 14, 7, 28, 46, 7, 53,107, 53,194,131,135,129,106, 37,195, 4,150,197, 9, 0,153,153,239,114, 37,118,238, 67, 87,175, 90,114, -105,246,252, 21,198,131, 7,237, 70, 72,196, 43,228, 49,246,160, 20,176,183, 50, 65,243,218, 11,144,152,148,134,147,135,118,202, - 89,141,102,100,241, 24, 90,165,113, 2,128, 93, 58, 26,238,218,119,104,220,126,223,227, 43,230, 79,159,100,215,111,192, 72, 8, - 51, 95, 65,155, 20,132, 90,173,123,130,136,170,225,202, 13,127, 4, 60,123,149,194,234,232, 10,187, 12,252, 81, 17,103, 9, 23, -226,163, 15, 31,146,157,139, 69,129,119, 22,137,140, 30, 85, 32,170,186,150,136, 43,244, 81,196,121, 46,151,211,114,245,234,213, - 90, 59, 59, 59, 77, 88, 88, 24,118,239,222,205, 6, 5, 5,221,224,112, 56,219,147,146,146,148, 21,113,218,104,181,193,199, 23, - 45,106,216,102,192, 0, 58,124,250,116, 57, 68,162, 25, 27, 54,109, 90,148, 38,149, 58, 82,150,133,141,165,101,194,134,197,139, -215, 13, 26, 50, 68,250,242,193, 3,227,192, 11, 23,140,133, 12, 19, 84, 81, 57,191,144,223,187, 76,206,132,132,132, 0,183, 58, - 46, 56,188,255,119,104, 52, 42, 36, 39,230, 27,178,210, 51,178, 81,158,200, 42,201, 89,176,235,106,192, 79, 63,255,252,248,167, -217,179,236, 59,125,219, 21,113,193, 47,160,201, 76, 3,209, 50,224, 19, 30,100,169, 98,164,166,228, 97,225,209,211,169,121,114, -249,128,146,147, 68, 89,229, 44,180, 88,137,204, 76, 33, 48,145, 64, 40, 49,253,200,138,101,100,102, 6,161,137, 4, 60,161,176, - 52, 43,205, 39,156,121,121,121, 3, 7, 13, 26, 20,242,228,201, 19,139,241,227,199,163,125,251,246,207, 21, 10,133, 23,165, 52, -183,170,245,201,227,241, 82, 91,182,108,105,203,231,243,153,113,227,198,241,210,211,211,139, 34,171,231,229,229,225,234,213,171, -168, 87, 47,127, 87,255,203,151, 47,209,168, 81,163, 50, 57,199, 47, 8, 77, 4,176,106,206, 96,231, 13,143,131,147,103, 0, 88, - 95,171,110,117,248, 95,191,133,251,254,129,139,190,105,204,110,235, 53,178,245, 47, 98,175, 33,243, 27,180, 28,207,149,152, 57, -224,200,185,179,220,240,160, 3,107,228,242,208, 58, 0,230,149, 85, 78, 66, 8, 40,165,159,132,114,224,114,185, 56,118,236, 88, -101,175,253,244,254,253,251,167, 76,158, 60, 89,144,156,156,140,215,175, 95, 67, 38,147,193,200,200, 8,215,175, 95,103, 0,236, - 60,118,236,216,245, 99,199,142,245, 64,126, 92,156,219,149,233,159, 38, 38, 38, 62,221,187,119,199,235,215,175,241,244,233,211, -179,148,210, 16, 66,200,217,183,111,223, 14,237,216,177, 35, 14, 29, 58,228, 83,150,208, 42,139,147,101,217,226, 49,147, 50, 11, -250,110, 48,128,111, 42,219,238, 5, 11,120, 59, 0,128,149,149, 85,188,157,157,157, 89,112,112, 48, 92, 92, 92,160,209,104,218, - 86,182, 47,101,103,103,255,190,125,251,246, 63,198,142, 29,139, 95,126,249,101,228,233,211,167, 71,246,234,213, 11,222,222,222, - 56,120,240, 32, 66, 66, 66,214,235,147, 86,172,180,107, 47, 16,142, 33, 13, 27, 54,156, 86,189,122,117,108,220,184, 17,161,161, -161,235, 86,173, 90,181, 56, 36, 36, 4,245,234,213, 19,189,122,245,138,169,202, 24, 2, 0,102,102,102,102, 90,173, 22, 23, 46, - 92,248,155, 82, 58,155, 16, 98,187,101,203,150, 97, 18,137, 4,153,153,153,138,176,176,176, 17,148,210,139,255,238,177,142, 18, -178,116,252,132, 25,123, 38,140, 31, 97,212,170,101,115,200,115, 18,160,200, 75,129, 60,247, 3,182,239,191, 1, 66, 56,176,177, -113,128,173,189, 51,222,191,143,195,195,203, 87,212, 50,185, 98,139, 80,203,174, 47,159,115,122, 62,103,139,124, 78,185, 44, 21, -138,188,212, 34, 78, 91, 91,199, 2,206,247,120, 16,120, 69,169,144,201,126, 87, 83,242,219,215,188,246,255,101, 84, 58,215, 97, -113, 72,165,210,153,147, 38, 77,242, 90,184,112,161, 21,195, 48, 92, 75, 75, 75,188,127,255,158,249,243,207, 63, 51,243,242,242, -102, 86,165, 64, 60, 62, 63,196,205,189,158, 87,191,126,253,152,190,125,251, 8,126, 24,219,131,103, 99,107,139,236,172, 12,188, -121,253, 2, 17,175,130,224, 86,175, 25,150,175,218, 12, 84,171, 86, 97, 34,201,188,148, 55,119, 36,118,238,189, 87,254, 52,239, - 84, 7,207,239,204,234, 53,106, 38,104, 94,199, 28, 26, 45,131,132,132, 4, 92,188, 16,172, 9,123,118, 63,135,101,212, 67,101, -105,250,165,224,185,155,255, 84,180,183,137, 29, 57,182,118,195,246,185, 59,247, 30,158,191,112,198,120,147,142, 30,221, 16,122, -235, 16,206, 94, 58, 37, 83,170,212, 27, 4, 92,108, 10, 77,167,242,202,214,129, 82,169,212,148,220, 16,165, 84, 42, 53,159,219, -216, 7, 15, 30, 68, 74, 74,138, 58, 54, 54,246, 26,195, 48,167,203, 74,246, 92, 26,182, 81,170, 30, 64,200,173,159, 60, 60,122, -252,116,253,186,209,232, 5, 11,212, 35,127,248, 97, 30, 84, 42, 13,132, 66,202, 51, 49,225, 64, 36,226,191,124,240,192,120,235, -148, 41,150, 68,173,190,121,168,156,176, 1,165,224,139,239, 58, 44,102,209,194,232,241,179,161, 40,102,209,122,244,244, 13, 42, - 99,209, 42,184, 49,226, 8, 33,223,204, 88,250,211,185,161,221,191,109,208,184, 70, 77,145,141,107, 77, 72,236,237,145,145,150, -134, 7, 79, 35,180,171, 78,157, 11, 43, 16, 89,122,197,149, 97, 89, 54,127,145, 59,128,111,103, 46, 4,225,114,129,130, 48, 14, -133, 59,135, 92, 91,183, 7,225,241,160,163, 44, 84, 42, 21,213,163,156, 9,132,144,129, 35, 71,142,188,125,233,210, 37, 78,247, -238,221,155,159, 63,127,158,253,156,190,163,213,106,157, 11, 4, 87,142, 88, 44,230,141, 25, 51, 6, 90,173, 22,114,185, 28,217, -217,217, 8, 15, 15, 87, 13, 30, 60, 88, 84, 32, 32,180, 67,135, 14,173,112,252,248,253, 76,130,114,206, 96,231,109,150,188,216, - 97, 57,233, 33,174,150,188,216,152,111, 26,179,219,126, 63,147,160, 92, 57,187,218,234,244,216,128, 55,201,178,235,123,142,156, - 59,203, 29,213,127,160,206, 89, 18,185,200,200,150,254,217,165, 79,133,131,218, 39,193, 73,245, 17, 89, 37,145,155,155,187,120, -217,178,101,222, 82,169,212,185, 71,143, 30,130, 6, 13, 26,224,241,227,199,184,116,233, 18,243,232,209,163,120,153, 76,182,132, - 82,170, 4,112,163, 42,117,234,238,238,238,202,227,241, 10, 93,105, 59, 10,222,222,113,254,252,249,161,227,199,143, 71,205,154, - 53, 27, 18, 66, 68,180, 18,247, 17,165,180,200,203,240,133, 39,138,168,173, 91,183, 58,217,219,219,147,171, 87,175, 50, 92, 46, -183,210,150, 27, 74,233, 65, 66, 72, 91,173, 86, 59, 97,226,196,137,240,244,244, 4,195, 48, 56,122,244, 40, 14, 28, 56,176,190, - 50,185, 91,203,194,155, 55,111,130,226,227,227, 59,205,155, 55, 15, 27, 55,110, 92, 60,111,222, 60,196,199,199,227,205,155, 55, - 47, 62,135, 55, 39, 39, 71, 17, 23, 23, 39,110,215,174, 93, 43, 23, 23,151,176,209,163, 71, 55, 26, 63,126, 60,214,175, 95, 79, -239,222,189, 59,136, 82,122,245, 63, 49,129,191,142,204,240,109, 82,219,238,250,170,213,191,255, 92,167,182,235,228,113, 99,134, -112,221,221, 26, 65,150,157, 0, 43,107, 59, 56, 87,175,133,180,212,116, 92,187,118, 85,151,158,158,117, 80,199, 33, 43, 35, 35, - 51,146, 62,135,211,201,185, 22, 82, 83, 83,113,229,202, 21, 93,150, 52,103, 31,180,156, 85,175, 98,165, 41, 48,160, 66, 75, 86, -105,139,225,137, 62, 11,111, 11,118, 30,110,205, 15,239,144,111,229,146, 74,165, 51, 41,165,233,250, 42,115, 82, 50,136,218,224, -193, 2, 92,190,220, 20, 90,237, 55,213, 76, 77,191,165, 44,219,186, 89,179,102,146, 33, 67,134,176, 30, 30,237,133,102,102,102, -164, 97,195,198, 57,217, 89, 89,150, 0, 64, 1, 93, 69, 42,186, 48,169, 52,143,203,239,170,211,105,154,228,151,181,226,164,210, -250, 40,243,218,118,196,134,199, 98, 57,135,144, 49, 44,165,135, 24, 14, 86, 70,165,208,180,170, 62, 61,149,112,251, 21,166,156, - 89, 92,217,167,188,226,174, 67, 14,135,235,235,224,224,176, 36, 33, 33, 33,149, 82,170,171,170,101,163, 48, 5, 79,239, 89,179, -180, 45,191,251,142,177,172, 94,157,165,148,234, 98,130,130,200,163,139, 23,249,143, 46, 94, 52,210,170, 84,119,206, 80, 26,165, - 15,167,163,163,227, 58, 63, 63, 63,189,215, 94,245,233,211,231, 85,225,186, 45,125,235,179, 78,109,231,235,181, 93,157,190,171, -237,154,239,158,142,138, 73, 66, 84, 76,226,141,119, 81, 9,221,171,210, 70,197,147, 74,147,130, 16, 14, 84,143,164,210, 37, 57, -173,173,173,159,241,120, 60,231,202,220,176, 58,157, 46, 41, 45, 45,173,133,158,229, 28,238,234,234,186,254,253,251,247,231,116, - 58,221,236, 47, 97, 33, 36,132,180,231,114,185, 87,116, 58,157,113, 73,139, 87,161, 24, 35,132,212, 16,137, 68, 31, 45,134, 47, -143,115,195, 79,141,127,110,215,177, 99,255, 71,247,239,159,159,191, 58,236,163,117, 67, 51,250, 91,142, 29, 62,109,230,111, 39, -118,110, 93,176,237,124,230,193, 10,173,205,118,118,119, 1,184, 21, 10, 46, 61,234,178, 85, 5,150, 97, 35, 83, 83,211,117, 0, -134,178, 44,107, 77, 8, 73,167,148,158, 44, 38,178,170, 92,159, 92, 46,119,125,253,250,245,103, 70, 68, 68,156, 96, 24,102, 92, -177,243, 55,214,169, 83,103, 90,108,108,236, 14,173, 86, 59,191, 18,247,187, 89,199,142, 29,165, 91,183,110,229,204,158, 61, 27, - 1, 1, 1,150,148, 82,233, 23,106,119,123, 11, 11,139, 63,116, 58, 93, 3, 74,169, 95,110,110,238, 98, 74,169,172,178,156, 5, - 33, 30,134, 58, 57, 57,205,119,115,115,115,139,140,140, 12, 73, 76, 76,220, 80,210, 26,244, 25,229,244,254,254,251,239,253,182, -108,217, 66,170, 87,175,142,248,248,120,204,154, 53,139, 94,184,112,161, 15,165,244,114, 85,199,100, 66,200,210, 41, 83,166,172, -254,225,135, 31,138, 4,237,186,117,235,232,229,203,151, 71, 83, 74,125,171, 58,206,127, 73,235,125,195,218, 54,181, 41, 87,183, -166, 89,227, 6,131,126, 28,217,159, 60,122, 26,137,199,143, 2,145,144,148,116,158,229,112,150,188,121,147, 30,249,185,156,129, - 79,223,224,113, 96, 32, 77, 78, 74, 62, 3,202,253,233, 85, 84, 90,212,191,235,218,255, 9, 86,173,210, 92,135,164,138,169,176, - 42,221, 97,136, 62,209,106, 29, 29, 29,145,145,209,214,136,199,243, 16,137, 68, 94, 28, 46,247, 78,102, 90,218, 44,125,133,214, -215,232,216,159, 76,232,117,136,176,172,148, 4, 85,225, 44,185,144,189, 42,156,149,225,208,151,179,172,164,210,172, 74,149,100, -197, 48,207,182,209,178,235,160, 36,167,179,179,243, 4,150,101, 93,245, 45, 19,135,195,137, 73, 72, 72,216, 95,149,250,116,115, -115,163,111,223,190, 5,165,148,124,201,118,255, 26,125,233,255, 19,167,239,230,166,142,245,154,212,159, 31, 26, 20,190,177,192, -173, 88,132,149, 51, 44, 77, 61,186,116, 94,246,192,255,238, 47,203,183,101,230,254, 39,203, 73, 8,225,208,202,238,110,169, 34, -103, 97,144,208,202,114, 10, 4,130, 61,109,218,180,153,240,248,241,227, 63, 24,134,153,248,255,177,127, 18, 66,188,185, 92,238, - 60,119,119,247,230,111,222,188,121,161,211,233, 54,150, 39,178, 42,241,240,187,196,213,213,117,170, 64, 32, 16,229,229,229, 73, -147,146,146,150, 81, 74, 79,255,183,213,103, 67, 55,171, 86,148, 22, 5,221, 94, 19,254, 54,227,201, 23,227,164,172,142,165,220, -213, 17, 81,233,207,255,221,237,254,191, 46,178,202,178,114,241,254, 93,133, 40, 20, 74,229, 34, 41, 41, 30, 64, 60,128, 51,255, -173,149,169,143,200,170,164,185, 49,229,191,129,163, 36, 10,132, 84,224,151,224, 42, 41,154,190, 38, 34, 35, 35,137,225,150,255, -239,195,143,179, 67,146, 0,204,106,229,245,233,103, 5,226,106,190, 87,223,255,124, 57,171, 34,178,170,202, 89,213,132,207, 26, -141,102, 50, 33,100, 78,101,118, 43,254,211, 80, 32,170, 46,127, 5,222,181, 0,214,254,183, 95,255,171,200,140,103, 0,250,252, -183,115,254, 63,235,147,149, 75, 42,109,128, 1, 6, 24, 96,192,127,245,160,174, 48,212,130, 1, 6,252,119,161,184, 85,171,184, -240, 34, 0,186,150,113, 35,223,170, 4,121,215, 42, 12, 20,183, 12,156, 6, 78, 3,167,129,211,192,105,224, 52,112,254,255,226, -252,167,138,172,143,196, 85,241,227,194, 93, 79, 95,227, 5,160,171,129,211,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3,231, - 63,249, 5, 96, 98, 89,199, 6,215,161, 1, 95, 29,219, 7, 16, 39, 0,152,126,142, 38,126,141,243, 13, 48,192, 0, 3, 12, 48, -224, 63, 9, 74,233,190,178, 92,135,255,113,161, 69, 8,113, 68,126,160,189, 58, 0, 34, 0,220,175,204,118,229, 82,248,172, 1, - 12, 33,132, 12, 46,184,216, 51, 0, 78, 87, 20,138,162, 16,198,198,198, 41, 74,165,210, 22, 0,140,140,140, 82,149, 74,101,241, - 92, 6, 4,159,166, 71,161,249, 63, 83,246,194,214, 90,181,106,165,168, 84, 42, 91, 61,126, 62,155, 82, 26,194,225,112, 66, 37, - 18,137,127, 68, 68,196,165,202, 92,123,151, 46, 93, 70,115,185,220, 53, 0,160,211,233,150,250,251,251, 31,254,138,237,214,182, -186,163,253, 33,141, 86,195,164,164,101, 46, 43,107,235,246,174, 62,100, 29,143, 96,126,193,255, 27,166,250,149, 31,194,162,178, -231,151, 83,190, 86,124, 62,223,199,206,206,174,103, 66, 66,194, 51, 0, 11, 40,165, 21, 70, 53,118,113,113,249,145,199,227,141, -212,233,116,181,185, 92,110, 20,195, 48,199,226,226,226,124, 13,195,136, 1, 6, 24, 96,128, 1, 21,137,173,210,222,175,148,208, -170,111, 77,236, 41, 48, 12, 4,221, 64,113,147, 0, 39, 95,167,211, 15,250,126,223,187, 62,209,106,153,252,223, 20,112,160,187, -250,142,179,207,219,219,219,121,250,244,233,104,223,190, 61, 30, 63,126,220,238,224,193,131, 99,185, 92,110, 8,203,178,119, 0, - 60,166, 84,175, 80, 10, 38, 0,250, 1, 24,209,179,103,207,174,107,214,172,225, 54,106,212, 8, 10,133, 2,119,239,222,245,216, -176, 97,195, 22, 66,200, 45, 0,199, 1, 92, 44, 47, 54,140, 82,169,180, 45,212, 76,132, 16,219, 65,131, 6, 61, 41, 46,174, 10, -242,171, 17, 74,233, 35, 66, 72,160, 78,167,123,124,230,204,153,248,250,132,180,157,228, 42,248,115,102,180,250,147,152, 73, 42, -149,202,246,194,111,107,193, 19,137,160,202,205, 65,187, 49,255,218, 5,122,243,231,249, 32, 44, 3, 46,168,212,107,245,150, 16, - 0,161, 73, 73, 73, 33,158,158,158, 49,149,109,100, 46,151,187,230,218,181,107, 14,148, 82,116,239,222,125, 13,128,175, 34,180, - 8, 33,162,111, 90, 53,187,227,119,246,132, 81, 94,102, 10,122,244, 27,122,140, 16, 50,154, 82,122,246, 35,209,212,139,216, 17, - 30,230, 79, 89,123,156, 11, 0,187,150,140, 88,176,165, 59,217, 54,235, 58,253, 64, 8,241, 2,138, 82, 54,253, 70, 41,189,179, -171, 23,177, 3, 23, 11,167,172, 61, 78, 0, 96,247,146, 17,243,119,245, 34, 91,167, 94,169,220,174, 74, 66,200,212,209,163, 71, -111, 91,179,102, 13,215,193,193, 1,137,137,137, 61, 26, 54,108,232, 78, 8,105, 88,222, 34, 98, 87, 87,215, 83,157,187,125, 95, -107,192,224, 97, 98, 27,107, 11, 36, 37,167,155,157, 58,241,199, 36, 87, 87,215,158, 49, 49, 49, 67, 13,195,136, 1, 6, 24, 96, -128, 1,101,204, 59, 85, 15,239,208,210,145, 24,203, 52,248,158,199, 37, 63,118,108,219,232,219,225,189, 58,114, 26, 54,168,139, - 87, 47,195,191,187,232,255,247,134,134,118,156,219,140,142,250,154, 8,112, 33, 40,169,252,157, 48, 90, 6,188, 27, 23,142, 3, - 0,166,142, 29,193,125,242,228, 73,221,150, 45, 91, 22, 5, 4,252,246,219,111,241,237,183,223,146, 93,187,118, 53,187,113,227, - 70,179, 3, 7, 14,104, 8, 33,135, 42, 8, 66,231, 83,167, 78,157, 13,219,182,109, 19,121,122,122, 66, 36, 18, 21,125, 38,145, - 72,208,167, 79, 31,244,233,211,135,155,148,148,212,221,207,207,175,251,111,191,253,166, 38,132,204,163,148,238,208,167,242,150, - 45, 91,214,170,148,183,175, 17, 66,222, 49, 12,243,162,105,211,166,241,245, 8,169, 59,185, 87,251,155, 83, 59,184,153,148,197, -195, 19, 10,113,100,116,254, 92, 93, 92,104,197,248, 95,133,196,204, 52, 67,108,106, 26, 2, 32, 20, 64, 8,165, 52,244,221,187, -119,225, 13, 8,105,246,141, 5,231,208,129, 76, 93,211, 74,136, 45,196,199,199,195,220,220,220,184,115,231,206,201,132,144, 21, -119,238,220,217,247,133,251, 84,219, 21,243,167, 10,164,177, 33,248,240,250, 17,230, 12,246, 16,207,218,254,215, 47, 0,206,150, -223, 17, 57,156,223, 2,217, 69,179,242,147,241, 46,203,200,200,240, 4, 0, 43, 43, 43, 33,128, 59,155,255, 70,175,217, 29, 8, -249,140,142, 46,224,114,185, 59,143, 28, 57, 50,254,199, 31,127,204, 79, 29,241,224, 1, 36, 18, 9, 86,173, 90, 85,115,238,220, -185,235, 80, 70, 34, 96, 23, 23,151, 31, 59,119,251,190,214,214,141,191, 52,204,205,204, 86,237,221,121,250,169, 99,227,122,156, - 41, 62,115, 77,183,106, 84,246, 46, 46, 46, 63, 26, 44, 91, 6, 24, 96,128, 1, 6, 84,198,154, 85,161,208,170,103, 67, 14,119, -108,225, 54,100,184,183,135,168, 73,227, 70, 16,136,254, 21, 40,186,101,171, 86,104,217,170, 21,103, 81, 94,110,183, 39, 79,131, -186,253,121,227,177,170,158, 13, 57, 29,145, 70, 71,235, 91,176,194,164,180,107,250,217,117,145,101,165, 26, 1,128, 73, 53, 91, -229,146, 11, 31,252, 59,116,232, 0,103,103,103,193,237,219,183,199,161,252,120, 41, 75, 34, 34, 34, 68, 92,110,249,241, 80, 29, - 29, 29, 49,104,208, 32,212,171, 87, 79,216,185,115,231, 37,248, 87, 58,140,143, 96,100,100,148, 74, 8,177, 5, 0, 75, 75, 75, -221,138, 21, 43, 94, 80, 90,228, 25,164,148,210, 71, 28, 14,231, 49,203,178,127, 95,188,120, 49,161, 17, 33,182,189, 91,214,187, - 63,245,135, 65, 98,250,231,150, 50, 69,130, 50, 39,167,212,247,197, 18,147, 52, 99, 19,147, 16,145,216, 40, 20, 64, 8,128, 80, - 39, 39,167,240, 70,132, 56,127, 83,207,245,198,174,217, 35, 76,245,169,203,150, 45, 91,186,123,121,121, 25,233,116, 58,200,100, - 50,236,222,189,219,220,216,216,216,188,103,207,158,203, 1, 20,117,128,134,132, 52, 25,232,200,157,184, 34,145,153, 86, 5, 33, - 83,173, 99,187, 86,177,219,215, 47, 55,107,245, 77, 71, 68,222, 57,138,204,204, 92,100,103,229,129,101,217, 79, 50, 12, 79,189, - 66, 83,118,245, 33, 27,118, 45, 30,177,144,112, 56,164, 89,255, 5,232,107,159, 61,131, 16,242, 18, 0, 95, 40, 20, 22,245, 67, - 66,136, 99,227,198,141, 55,212,253,174, 35,118, 47,253, 1,148,101, 41,128, 13,250, 90,179, 8, 33,182,166,166,166, 23,111,220, -184,209,182,117,235,214,120,252,248, 49,162,163,163, 49,117,234, 84,245,180,105,211, 4,163, 70,141, 34,115,230,204,153, 78, 8, -249,147, 82,250,240,147, 27,129,199, 27,217,111,192, 80, 97, 94, 86,142, 82,173,210,168, 45,173,171,177, 42,153, 82,158, 46,205, - 81, 14, 29, 49, 65,253,242,249,223, 35, 1,124, 34,180, 62,167, 62, 13, 48,192, 0, 3, 12,208, 27,173, 1,216, 0, 72, 3,240, -180,196, 49, 10,254, 71, 41,199,233,200,247, 74, 89, 21,227, 74, 71,254,178, 31, 27,228,199,248,124, 2, 64,250, 57,133, 43, 43, - 42, 60, 80, 16, 25,190, 32, 64,113, 97,160, 98, 82, 76,104,209,136, 52, 10, 38, 51, 10,186,140,119,208,229,126,154, 62,137, 24, - 85, 67,182, 66,135,248,168,112,140,158,181, 10, 17,105,101, 71,228,246,174, 79,180,230, 66,240, 76, 5,128, 64, 92, 77, 53,124, -253,245,192, 86,173, 90, 41,151,120,114,188,215,237,202,183,116,205,153, 56, 2,237,102,255,121, 61, 42, 42,138,113,116,116,196, -143, 63,254, 8, 74,105,239,114, 46, 46, 37,247,105,160,237,235,222,237,209, 38,165,244,101, 82,111,222,188,193,189,123,247, 16, - 23, 23,135,218,181,107, 99,220,184,113,169,148, 82,187,178, 56,123,244,232,113,247,183,223,126,243,220,180,105, 83,240,145, 35, - 71, 58,148,229,110,106, 72,136, 73,179,154,246, 79, 15,172, 91, 88,155, 92, 61,196,151,199,189, 69,181, 0, 5, 41, 69,228,209, -164,164,127,213,221,175,238, 14, 48, 49, 55,133,137,153, 36,101,212,141,103, 69,150,172,130,191, 17, 45, 9, 49,115,118,176,122, -118,114,243, 50, 39,142,255, 41, 35,193,222, 71,164, 34,145,213,185,115,231,192, 53,107,214, 88, 36, 37, 37,225,214,173, 91,168, - 89,179, 38,228,114, 57,126,255,253,247,228,251,247,239, 59, 22,148,215,174, 77,189, 26, 33,187,231,142, 49, 23,140,251, 89, 84, -217,142, 36,224,241,118, 4, 94, 59, 53,205, 92, 68,145,149, 20,141,119,225, 47,241,228, 85,140,214,247,102,136, 46, 71,161,242, -166,148,250,151,246, 61, 31, 15, 82,247, 78,146,141,223,181,187, 79,221, 28, 28, 28, 48,105,210, 36,124,248,240, 1,148, 82,176, - 44, 91,180, 75, 99,201,146, 37,112,119,119,199,232, 97,125,229,162,204,160,206,126,175,232, 51, 61, 59,120,227, 26, 53,106,220, -184,115,231,142,157,147,147, 19,238,223,191,143, 15, 31, 62,192,222,222, 30,183,111,223,198,250,245,235,143, 76,153, 50,101,240, -154, 53,107,140,134, 15, 31,158,120,253,250,245,234, 37,215,212,213,172, 89, 51,220,239,250,125,137,255,249, 27,239, 44, 76,197, - 48,177,181, 2, 87, 98,166,164, 32,114,123, 91, 11,193,208,239,191,173, 27, 27, 27,219,160, 68,251,127, 86,125, 26, 96,128, 1, - 6, 24,240, 47, 92,190,124,153,122,123,123,147,194,191, 37, 37, 4, 33,228, 82,129, 30, 80, 3, 16, 22, 59, 6, 33,228, 82,129, - 53,228,163,227, 69,139, 22, 45, 89,183,110,221,203,194,227,194,115, 22, 47, 94,220,104,253,250,245,107,219,181,107,119, 50, 48, - 48,112, 5,128,183,159, 43,180,202,178,114,233,181, 70,139, 73,120, 2,129, 91, 79,240,117, 90,104,211, 35,192,102,189, 7, 76, -236,161, 32, 18,100, 36,191,199,235,251,103,243,181, 97, 69,149,248,154,242, 9, 33,183,195,195,195,241,250,245,107,196,199,199, - 67, 44, 22,127,114,222,131, 7, 15, 96,108,108, 12, 7, 7, 7,253, 76,118,234,143,243,177,134,180,172, 1, 73, 59, 79,164, 15, -159,140,219,183,111, 35, 53, 53, 21, 2,129, 0, 66,161, 16, 12,195, 84,200,199,225,228,103,252, 45,180, 98,149,118, 78,103, 66, -120,206,150, 18,191, 93,203,103,186,114, 30, 93,226, 43,226,222, 34, 73,169, 67, 53,125, 44,121, 18, 19,136, 77,196,201,198,198, -226,146, 34, 43,178, 37, 33,124, 19,137,145,223,161,213,115,236,185,207,111, 27, 41,222,134, 64, 80, 10, 71,183,110,221, 38, 1, - 88, 78, 41,205,234,220,185,179,221,154, 53,107, 44, 18, 19, 19,241,234,213, 43,156, 62,125, 58,141,201,191, 80, 66, 41, 93, 9, - 0,237, 8, 49,114,177,169,118,125,199,207, 51, 77,113,231,148, 16,227,126,174,116, 71, 50,111,208,231,242,192, 81, 83,166,109, -155,217, 7,178, 92, 5,142,223,124,142,107, 65,239,250, 2,120, 80,222,186,183, 29, 15,232, 91, 66,200,183, 3, 6, 12,120,113, -239,222, 61,235, 3, 7, 14,128, 97,152, 82, 95, 7, 14, 28,192,173,251, 65, 51, 40,213, 91,100, 57,186,186,186,222,250,251,239, -191,109,196, 98, 49,110,222,188,137,172,172,172, 34, 75,214,232,209,163, 73, 86, 86,214,176,221,187,119, 15,140,141,141,221,120, -255,254,253, 12,228,167,131,250,168, 35,112,185,220,119, 12,163,169,239,208,160, 46,111,112,159,142, 29,243, 50, 66, 32,177,106, -138, 71,193,239,252,178,164, 25, 10, 46,151,251,174,248,249, 95,162, 62, 13, 48,192, 0, 3, 12,168,180,160,185, 68, 41,237, 93, - 92, 56,149, 20, 92,133,255, 23,158,183,110,221,186,222,197, 69, 24, 0,172, 95,191,126,109,177, 99,249,151, 40, 91, 69,139,225, - 59, 19, 66, 40,128,206,165,157,164,122,117, 14,170,215, 23, 33,168,209, 1,194,122,125,193,173,225,129,184,144, 59, 8,190,186, - 25, 9, 47, 31,128,178, 58, 56,184,183,209,183, 44,202,250,245,235, 67,169,204, 95,154,165, 82,169, 32, 48,177, 80,206,153, 56, -194, 8, 0, 88,158,145,170, 88,161,245, 34, 52,237,224,133, 54, 41, 20, 79,236,242, 5,112,161,101,107,245,152, 49, 16, 8, 4, - 16, 8, 4, 69,201,103,245, 17, 90, 5, 73, 81,193,230,187,175,104,105,159,183, 18,241,143,159, 92,238,211, 70, 20, 27, 42, 84, -133, 61, 66,146,138,165,126, 41,186,203,250,100, 78, 22,155,136, 19,141,197,226, 80, 99,137, 73,113,161,245, 14, 0, 40,159,239, -123,116,165, 79, 83,147,148, 40, 19,229,211,219, 72, 86,178, 26,179,210,105, 86, 94,189,122,213,150,199,227,217,235,116, 58,196, -197,197,225,229,203,151,216,186,117,107, 74,110,110,110,231,160,160,160, 55,197,202,203,105,109, 44, 60,237,187,106,102, 45, 94, - 72,128,145,234, 93, 88,169,226,173, 60,216, 52,233,223,189,111,231,102,151, 39,253,176, 20,223,247,250, 14,163, 58, 55,164, 49, - 73,153, 74, 0, 55,245, 73, 96, 77, 41, 77, 36,132,116,235,212,169,211,177,230,205,155, 55,160,148,162, 73,147, 38, 24, 54,108, - 24,124,125,125, 17, 28, 28,140,156,156, 28,205,141, 27, 55,182, 80, 74, 15,234,121,195,137, 45, 44, 44,174,249,251,251,219,136, -197, 98,220,184,113, 3, 10,133, 2, 14, 14, 14,152, 54,109,154,112,253,250,245, 71,114,114,114, 6,175, 91,183,206, 40, 38, 38, -102,199,245,235,215,107, 2,224, 80, 74, 63,233, 4,106,181,122,223,113,223,195,219,166,249, 76,119,242,127,252,234,182, 42, 47, -215,188, 70,141,248, 28, 27, 11,137,233,150, 95, 87,186,168,213,234, 73,165,215,231,221, 42,213,167, 1, 6, 24, 96,128, 1,159, -218, 48, 46, 95,190, 92,166, 22, 41, 46,158, 74,138,173,202,136, 52, 0,138, 69,139, 22, 45, 33,132, 92, 42,176,120, 41, 0, 36, -125, 13,145, 85, 36,180, 40,165, 1,132, 16, 80, 74, 3,202,100, 97,117,208,196,220,131, 38,230, 30,140,219,205,192, 95,235,134, -151,248,145,170,167, 8,235,179,234,166,191, 74,165,226, 29, 62,124,184,104,221, 22, 0,232,116,186, 47,222,138,149, 17, 90, 5, - 66,239,147, 66,184,138, 36, 1,251,102, 15,254,198, 74, 39,231,171, 31,248, 33, 81,197, 50, 27,223,106,228, 79,179,232,111, 75, -202,224,188, 48,107, 18,226,239,223,130, 88, 34,137, 31,127, 47,180,184, 21, 43, 4, 64, 52, 0,184, 26,153,221, 62, 61,103,184, -135,189, 0, 2,245,229, 51, 72, 82,177,170, 61,177,218,131, 91, 75,111, 84, 80, 74, 17, 29, 29, 13,185, 92,142,192,192, 64,156, - 61,123, 54,173,164,200, 42, 40,239,221, 63, 22,140,108,107,150,251, 65,160,126,122, 11, 73, 42, 86,229,174,143,184,106,218,191, -131,128, 67,110, 16, 14,215,184, 87,199,134,152, 53,161, 63, 54,255,241, 23,163,182,237,216,123,219,197, 43, 67,242, 84,154, 37, -250,136,172, 98,101, 14, 1,208,144, 16, 34, 2,224, 53,108,216,176, 43, 3, 7, 14, 68, 64, 64, 0,252,252,252,220, 0, 36, 23, -212,255, 42, 0,118,200,223,141, 88, 86,230,120,142, 64, 32, 56,121,235,214,173, 70,142,142,142,184,117,235, 22, 20, 10, 5,166, - 76,153,162,246,241,241, 17,140, 30, 61,154,100,103,103, 23, 89,178, 2, 3, 3, 51,202, 18, 89, 0,144,144,144,112,181, 70,141, - 26,237, 59,117,234,212,191,150, 91, 61,179,168,220,156, 84,177,216,200,248,126,192, 29,193,211,191, 31,238, 72, 72, 72,120, 82, -122,125,222,214,187, 62, 13, 48,192, 0, 3, 12, 40, 27,222,222,222, 1,151, 47, 95,134,183,183,119, 64, 5,115, 73,239, 42,138, -161,194,239,241,215,173, 91,247,114,221,186,117, 31, 89,188, 62,211,210, 86,210,117,120,153, 82,154, 92,220,162, 85, 41,232,178, -227, 62,189, 0,150,173,204,197,126,242,158,133,133, 5, 99,108,108,252,145,208, 98,245,228,204, 60,127, 2, 81, 83, 71, 20, 89, -178, 10, 45, 91,232, 49,250,179,132, 22,203,178,129, 0, 62, 42,132,137, 93,189,225, 39,127,232,214,161, 97, 45, 39,142,246,244, - 86, 36,200, 25,229,242, 8,141,242,117, 46,237,251,170,148, 69,214, 69,156,140, 22, 70, 38,198,239,141, 37, 38, 37, 69, 86, 44, - 0, 72,236,221, 7, 30, 25,238,213,185, 89,189, 58, 28,230,212,239, 72,148,107,243, 22,133,107, 52, 81, 50,122,174,140, 58, 92, -254,221,119,223, 45,183,178,178, 50,218,182,109,155,121,141, 26, 53,192, 48,140,186,164,200, 50,177,171, 55,252,212,232, 30, 29, -220,237, 45, 56,218, 63,183, 35, 94,161,147,111,141,210, 30,217,163,135,200,178, 54,151, 92,223,179,118,170,177, 88,196,135, 82, -169,196,250, 93,127,226,198,195,176,222,105,161,231,175, 3,184,254, 25,125,114,124,239,222,189, 55,175, 90,181, 10, 90,173, 22, -227,198,141,195,187,119,239,110, 68, 68, 68,108,117,113,113,153,183, 96,193, 2, 71,123,123,123, 12, 25, 50, 68, 0, 96,116, 25, - 28,191, 30, 63,126,188,119,179,102,205, 16, 16, 16,128,172,172, 44, 56, 56, 56,192,199,199, 71,184,110,221,186, 35, 57, 57, 57, -131,215,174, 93,107, 20, 29, 29, 93,174, 37,235,163,126,173,211,173,222,187,121,234,188,214,223,120,112,222,190,125,195,196,181, -241,228,220,185,229,119,207,202,202,234,200, 71,245, 57,166,103,165,235,211, 0, 3, 12, 48,192,128, 47,134,203, 0,188, 75, 90, -185, 74,138,176, 66,139, 85,241,227,146,231, 23,124,174,250,220, 2,149,180,104, 21, 8,175,143,215,104, 21, 95, 4, 95, 17, 88, - 89,154, 94,226,233, 19,181, 90,159,104, 39,181, 6,111,137, 39, 7, 2, 19, 11,101,159, 85, 55,253,203, 58,215,196,196, 68,111, -139, 22,171, 82, 86, 36,156, 42, 37,180, 10,214,104, 93,163,148,126, 36,180,170,217,215,243,252,105,225,204, 45, 30, 3,123,112, - 82, 38,180, 67, 86,158, 74,181,224, 21,195, 38,200,203, 23, 89,249,179,184, 54, 70,108, 34, 9, 53, 50,249,104, 93, 86, 28, 0, - 24,219,213,109,179,104,246,244, 93, 93,134,247, 33,105, 83, 60, 32,205, 82,168,230,189,100, 72,162,130, 14,126, 69,233,157,210, -232,110,223,190,189, 23,192,222,206,157, 59,167,152,152,152, 32, 47, 47,239,147, 54, 40, 44,111,135,129, 61, 56, 41,227,219, 34, - 83,166, 81, 45,120,201, 32, 73,193,158,172, 72,100,217, 84, 51,189,190,103,205, 84,113, 82, 66, 44, 4, 2, 1, 36, 18, 9,110, - 62, 8, 69, 90,216,133,207, 17, 88,224,114,185, 43,150, 44, 89,178,124,218,180,105,200,200,200,128,159,159, 31,122,245,234,133, - 19, 39, 78,212,184,114,229,202,102, 47, 47, 47,112,185, 92, 92,186,116, 9, 90,173, 54,178,140,246,236, 63,113,226,196,121, 3, - 7, 14,196,147, 39, 79,144,156,156,252,145, 37, 43, 43, 43,107,216,174, 93,187, 6,198,196,196, 84,104,201, 42,129, 54,174,117, - 90, 8, 22, 47,219, 4,149, 60,149,151,150,248, 56,224,246, 77,206,163,204,204, 76, 49,128,236,170,214,167, 1, 6, 24, 96,128, - 1,122, 91,181,202,210, 34,105, 5, 34, 42,173,180,227, 98, 2,171,180, 99, 82,194, 10,166, 46,241,121,240,215,188, 38,189, 44, - 90, 60,187,198, 96, 82,194,138, 9,173,212,143, 62, 55, 50,181,212,203,117,168,101,192,219,115,176, 40,142,150, 81, 70, 70,134, -145,181,181,181,178,184, 64, 16,139,197,112,116,116,132, 84, 42,197,190,125,251, 0,160,162, 69,209,140,217,192, 31,208,102,248, - 56, 60,117, 22,130,106, 53, 69,150,173, 61, 99,198,124, 36,182, 4, 2, 65,225,218,176,138, 38,221,191, 9, 33,177, 0, 30, 81, - 74,105, 75,247,218,191, 24,153,152,140,105,213,180,142,245,172,169,227,249, 49,169, 42,248,123, 44,206,250,243,215,133,146,120, - 42,153,246,158,102, 61,172,128, 47,170,223,238,163, 37, 45, 89, 9, 45,220,107, 47, 53, 18, 27, 77,248,166,177,187,253,162, 57, - 83,249, 49, 41, 42,226,223,102, 65,206,217,223, 22,136,163, 97, 58, 47,158, 74,239,232,209, 60,203,123,245,234,181,156, 82, 74, - 89,150, 93, 6, 0,197,203, 59,199,103, 2, 63,234,131, 18,183, 61,150, 74,207,254,186,208, 52, 30,229,151,215,166,105,255, 14, -118, 22,102,215,247,172,157, 38, 78, 78,124, 15,145, 72, 4, 83, 83, 83,196,167,100,131,207,227, 42, 62,167,179, 17, 66, 68,158, -158,158, 11,167, 78,157,138,208,208, 80, 76,153, 50, 37, 57, 46, 46,238,220,169, 83,167,166,252,252,243,207,188,238,221,187, 35, - 57, 57, 25, 27, 54,108,208, 62,120,240, 96, 45,128, 13,165,246, 71, 30,111,252, 47,191,252, 66,147,146,146, 72,116,116, 52, 28, - 28, 28, 48,125,250,116,225,218,181,107,139,214,100, 85,198,146, 85,136,132,132,132, 0,183, 58, 46,232,123,117, 11, 24,173, 42, - 32, 43, 35,238,222,235, 40,105,128,165, 80, 56,215,163,101,211, 42,213,167, 1, 6, 24, 96,128, 1, 95, 4, 79, 43, 56,254,143, -162, 52,215,161,190, 66, 43,114,251,210,177,110, 99,167,205,135,113,141, 14, 80,133,159, 7,155,151, 82,100,209, 50,146, 88,192, -210,165, 1,178,100, 42,156,185, 29, 4, 0,145,149, 41, 88,110,110, 46, 90,182,108,137,157,163,221,187, 40,115, 51,140,140, 1, -168, 68,102,202, 11,194,142,254, 87,174, 92,145,179, 44,123, 18,192,149, 10,104, 86, 52,106,212,104,199,166, 77,155,132, 13,134, -143, 69,222,227,251, 37,173, 83, 48, 54, 54,134, 72, 36, 66, 72, 72, 8,252,253,253,213, 0, 86, 84, 80, 97,127, 51, 12, 19,124, -242,228,201, 4,183,218,206, 61, 58,183,110, 51, 99,201,226, 69,166,175,238,223,192,178,181, 59,216,186,173,186,103,175, 63,113, - 33, 55, 91,226,242,173, 60,233,245, 11, 61, 46, 53,184,132,200, 74,106, 80,203,165, 75,187, 22,205,231, 47, 91,182,212,236,229, -253,155,248,249,183, 61,212,173, 89,215,236,223,206, 94,204, 73, 23,215,252, 78,145, 18,254, 68,159, 58,188,123,247,238, 94, 0, -123, 11,143, 75,150,119,209,170,173,172,123,235, 30,210,245, 39,206,202,114, 76, 93,186,150, 87, 94,219,134, 3,218, 87,119,176, -188,190,125,245,100,241,135,196, 56,136, 68, 34, 72, 36, 18,196, 37,103, 97,249,150,211, 50, 13,203,246,248,204,190, 40, 50, 53, - 53, 21,105, 52, 26,236,220,185, 19,113,113,113,237, 40,165,113,132,144, 61, 67,135, 14,221,214,164, 73,147,250, 47, 95,190,140, -204,203,203,155, 70, 41,125, 93, 22, 73,181,106,213,218,217,216,216,144, 71,143, 30, 97,242,228,201,234,233,211,167, 11, 70,141, - 26, 69,164, 82,105, 85, 45, 89, 0, 0,103,103,103,207,126,222,237,209,161,219,148, 0,181, 50,235, 94,204,235, 35, 1, 28,250, -208,168,101,243,166, 85,170, 79, 3, 12, 48,192, 0, 3,254,127,160,188,197,240,229,102,163,246, 4,120,238, 86,152,212,200, 73, -240,193,247,215,233, 52, 55, 42,144, 42,158,236,165, 57,231, 39,208,203, 27, 70,209, 43,219,103,209, 41,222,141,230, 86,141,230, - 0, 0, 32, 0, 73, 68, 65, 84,104,125, 91,242,193,221, 10,147, 60, 1, 94,121,217,189,123,213,131,182, 91, 29,208,110,117, 64, -189,221,161, 5,176,164, 69,139, 22, 23,124,218,128,210, 87,199, 41,125,117,156,250,180, 1, 5, 48, 25,128, 68,223,140,225, 0, - 28, 0,236,107,217,178, 37,115,231,206, 29, 26, 49,184, 43,125, 94,223,154, 78,155, 54,141,254,252,243,207,116,196,136, 17,212, -198,198,134, 65,190,191,212,161, 34,206,190,125,251, 58, 83, 74, 81,189,122,245,106,173, 26,212,253, 16,114,219,143,222,243,221, - 70,255,240, 25, 64,219, 54,105,144,110, 95,191, 83,176,177, 67,189,230,250,102, 54,183,183,183, 95, 76, 41,237, 65, 41,117,160, -148,194,205,205, 74,210,162,126,221,164,224, 91,126,244,254,209, 29,244, 15,159, 1,244,155,166, 13, 51,156, 27,120,189, 54,178, -173,223,166,170,217,210, 75, 45,111,227,250,233,118,117,219,191, 40,171,188,197, 57,107,181, 25,114, 49, 33, 41,133,254,253,247, -223,244,202,149, 43,244,254,253,251,212,247,212, 69,234,210,122,112,158,117,147,239, 59,124,110, 86,119, 0,230,222,222,222, 52, - 50, 50,146,246,236,217,147, 2, 48,175, 10, 39,128, 11, 49, 49, 49, 52, 44, 44,140, 46, 89,178,132, 2, 56, 60,117,234, 84, 69, -118,118, 54,237,218,181,107, 28, 0, 14, 74,244, 69,125,203, 89,219,213,105,125,255, 62, 29, 87,248, 76, 30,232,249,185,245,249, - 5,179,194, 27, 56, 13,156, 6, 78, 3,231, 63,158,243,127,249, 85,160, 67, 38, 22,251,219,162,240,179,114, 45, 90,119,243,173, - 1,123,155,216,145, 99,107, 55,108,159,187,115,239,225,249, 11,103,140, 55,233,232,209, 13,161,183, 14,225,236,165, 83, 50,165, - 74,189, 65,192,197,166,208,116, 90, 97, 28,138,203,175, 41,191, 20,235,145,216,178, 14,138, 98, 48,189,149, 2,148,210, 61,149, - 84,146,201, 0, 38, 18, 66, 54,121,121,121,173,153,208,161,205, 0,159,246, 93,160,213,106,225,235,235,139,247,239,223,159, 3, -176,148, 82,170,151,197, 45, 52, 52, 52,189, 81,221,154, 51, 45,141, 5,243,167,141,232,111,147,246,238, 21, 18,194,159, 3, 0, - 84, 42,133, 54,249, 77, 64,179,202,148,207,216,216,248,111, 27, 27,155, 8, 27, 27, 27,169, 78,149, 55,209,136,103,182,108,202, -176,126,182, 25, 49,175, 17,255, 50,223, 51,170, 82,202, 53,241,111,252,235, 87, 69, 73,215,172, 89, 83,100,194,199,164, 82,203, -171, 86,106, 63, 68,134, 55,215,135, 71,174, 82,175, 93,185,217,247,187,213,243,199,136,204,204,204, 16, 20,246, 22,203,126, 63, - 33, 83,168,181, 61,210, 66,206, 63,252, 66,170, 31, 90,173, 86,239,141, 14,101, 96, 97,179,102,205,234,173, 89,179,198,109,244, -232,209,248, 92, 75, 86,113,188,139, 78, 88,212,185,115,231,134,111, 35,130,188, 44,141, 5,199, 62,167, 62, 13, 48,192, 0, 3, - 12,248,127, 3,111, 74,233,190,194, 8,241, 5,174,196,231,250,184, 14,243,133, 71, 10,149, 3, 88, 85,219,142,236, 89,188,102, -243,114, 14,217, 50,134,165,244, 16,195,193,202,168,116,154,246,153, 19,175,220,187, 62, 97,190,251,126, 4, 15, 0,248, 60, 48, -159,193, 21, 9, 96, 32, 33,164,245,254,135, 79,126, 42,120,123, 53,165,180, 82,190, 92, 83, 30,194, 60, 26,214,118,234,216,162, -145, 17, 87,167, 64, 66,248, 59,100,202,148,184,249,242,125, 22,135,114, 14, 85,182, 92, 81, 81, 81,119, 1,160,113,221,154,225, - 29, 27,214,113,233,212,178,145,152, 79,212, 72,120, 21,132,108,133, 26, 55, 94,190,207, 6, 33, 85, 94, 80,253,165,202,251, 33, -228,194, 83,155,166,253,187, 18, 66,110, 45,241, 25, 46, 90,254,251,201, 47, 42,178, 0,200, 19, 19, 19, 51,228,114,185, 85, 82, - 82,146, 26, 85, 12, 18, 71, 41,125, 75, 8,105, 50,107,214,172, 85,243,230,205,155,255,235,175,191, 10,170,178, 38,171, 44, 72, - 19,223,159,239,212,232,203,181,191, 1, 6, 24, 96,128, 1,255,124, 20,174,211, 42,185, 94,171, 82,225, 29,162, 82,104, 26,128, -105,117,234,144, 57,239,222, 81,245,151, 42, 92,105,150,174,207, 20,111, 79, 1,244,169, 50, 1,135,228, 62,142,124,159,247,119, -228,251, 60,176,148,178,148,170, 56, 28,196,203, 52,154,181,111,162, 18,174,127, 70, 43,232,158,190,141, 83, 60,123, 23,175,164, - 44, 75, 89, 74,213,132,224,131, 86,203,174, 13,139,138,189,248,223, 80,222,180,144,243, 15,237, 27, 14,232,248,240,239,176, 57, - 50,153,102, 71,218,171,243,129, 95,176, 93,180,132,144,145,237,218,181, 27,171,211,233,246, 80, 74,181,159,193,165, 6,176,144, - 16,114, 46, 52, 52,244,116, 96, 96, 96,242,151, 16, 89, 95,181,253, 13, 48,192, 0, 3, 12,248, 71,162,202, 73,165,203,194,151, - 20, 89,255,141, 8,141,140,105,249, 53,120,195, 34, 99, 26,255, 47,148,247,195,171,115,207, 0, 12,251, 74,157,241, 6,128, 27, - 95, 82, 84, 19, 66, 92, 1,112,191,136,200,250,138,237,111,128, 1, 6, 24, 96,192, 63, 19,159,157,235,208, 0, 3,254,203,159, - 36, 40, 0,198, 80, 19, 6, 24, 96,128, 1, 6,252,135,230,161, 50, 45, 90, 4, 64,215, 50,190,116,171, 18, 74,174,107, 21, 10, -117,203,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3,231,255, 47,206,127, 34, 8, 33, 14,200,143, 86, 95, 20,181,190, 72,124, -125,229,237,142,134,173,175, 6, 78, 3,167,129,211,192,105,224, 52,112, 26, 56,255,233,225, 29, 38, 22,255, 91,252,197, 49, 24, -252, 12, 48,192, 0, 3, 12,248,138, 79,250,162,130, 68,242, 85,250,220, 0, 3,254,135,250,122,209,174,195,226,107,182,120, 85, - 32,170, 91, 96, 9,123,251, 21, 11,235,227,224,224, 48,177,105,211,166, 13, 4, 2, 1, 39, 55, 55,119,165,191,191,255,138,146, -231,117,106,196,127,198,229,192,185,216, 55, 1,194, 5, 56, 28,232, 40, 18,238, 5,203, 91, 25,154,254,191,186, 83,214, 48, 54, -179,249,139,112,184, 66, 29,163,129, 78,171, 1,240,175,116, 76, 44,203,188,103,212,202,238,101,125,223,161,249, 0, 23, 70, 71, -215, 3,236, 46, 2,206, 20, 10,118, 55,161,156, 41,148,131, 93,132,197,100,240,180, 27,192,240,231,241, 4,188,165, 73, 65,103, -226,255, 9,117,246,231,159,127,114, 63,231,251,131, 6, 13, 42, 53,129,168,147,147,211, 37,177, 88, 92,167,172,239,201,100,178, -228,164,164, 36,175,127,120,127,236, 4, 96, 59,128, 70, 37, 62,122, 13, 96, 38,165,244,246,231,254, 70,103, 66,120,118,192, 36, - 1,176, 0, 0, 52,192,111, 41,192,222,187, 95,104, 35,199,151,128,173,173,237, 61, 30,143,231, 38,147,201,100, 57, 57, 57,181, -205,204,204,162, 76, 76, 76, 76, 24,134,137, 76, 77, 77,237, 84,201, 58,157,138,130, 84, 90,132,144,249,148,210, 93,149,249,220, - 0, 3,254, 87,240, 89,187, 14, 9, 33,238, 0, 60, 11, 94,157, 90,183,110,109, 39,147,201, 64, 8, 73, 1,112, 15, 64, 0,128, - 0, 74,233,155, 47, 81, 88, 46,151,187,113,235,214,173,115,167, 79,159, 94,148, 12, 58, 36, 36,164,244,115, 57,112,190,227,119, -203,246,105,232, 27,180,238, 58,168, 64,104,113, 0, 89, 50,188,186,181,169,234, 96,107,106, 97, 97,177,146, 16, 50,152,195,225, - 84, 56,169,177, 44,171,163,148,158,145, 74,165,203, 41,165,185,149,249, 45,137,137,145,150,209,233, 74,253, 13, 30,151,171,203, -147, 41,203, 12,123, 97,101,101, 21,200,225,112,106, 21, 79,152, 93, 80,254, 82,255, 47,126,204, 48, 76, 66, 90, 90, 90, 43, 61, -234,194,136,195, 19,204, 36, 68,208, 13, 28,214, 29, 32, 32,224,188, 97,117,234,155, 44,163,217, 74, 41, 85,126,142,200,114,168, - 94,251,254,236,165,235,157,195,194, 95, 99,137,207, 8,252,186,253, 48, 22,207, 28,139,173,251, 78, 96,230,196,225,104,216,176, - 81,185, 28, 58, 74, 86, 46,155, 57,210,107,205,214,227,173,151,206, 28, 97,178,102,235,241,214, 75,103,141,144,172,217,118,188, -213,210, 89, 35, 37,171,183, 29,107,245,211,172,145,102,107,182, 29,215, 0, 24, 87,149,114,142,112,119,146, 17,134, 41,245,105, -155,242,120,170,227,111, 18, 77,254, 19, 55,245,232,209,163,155, 42, 20,138,160, 17,221, 90,172,111,238,238,148, 88,218, 57, 25, - 31, 18,157,162, 34,158, 47,226, 11,140, 91,246, 91,116, 56,164, 60, 62,145, 72, 84,235,245,235,215,110, 44,203, 66,167,211,129, - 97,152,162,191,106,181, 26,157, 58,117,250, 34, 27,103, 8, 33,125, 0,172,204,191, 89,177,142, 82,122,250, 51,184, 36, 60, 30, -111,182, 80, 40,244,100, 24,166, 1, 0,240,249,252,112,149, 74, 21,192, 48,204,102, 74,105, 94, 37, 41,183, 36, 38, 38, 54,148, - 72, 36,208,104, 52, 69, 9,232,185, 92,110,125, 23, 23,151,157, 0,220, 62,247,250,237,128, 73,237, 61, 60,182,142,154, 59,151, -171,184,119, 15, 91, 15, 30,220,130,156, 28, 0,216, 89,209,119, 69, 34,209,117, 14,135, 83,163, 50,191,199,178,236,123,149, 74, -213,189, 50,223,225,241,120,110, 73, 73, 73,182,142,142,142, 0, 0, 19, 19, 19,147,226,199,149,177,100, 1,216, 64, 41, 53, 6, - 0, 14,135,179,181,125,251,246,237, 8, 33, 12, 0,202,178, 44,135, 16, 50,156,101, 89, 94,193,249, 27, 8, 33, 7, 41,165, 42, -195,180,109,192,255,162, 53,171, 44,177,197, 43,231, 75, 87, 0,120,182,110,221,218,120,216,176, 97,240,244,244,132,155,155, 27, -140,140,140,242, 7,241,140, 12,187, 23, 47, 94, 12,185,119,239,222, 16, 63, 63, 63, 16, 66, 20, 0, 30, 80, 74, 75,189,169,187, -246,233, 56,221, 72, 34,218, 6, 0,105, 9, 25,201, 9,209,169,219,146,147,147, 55,208, 98,217,168, 9, 33,181, 71,141, 26, 53, -103,198,140, 25,184,116,233, 18, 78,156, 56, 1,149, 74,133,220,220, 92,248,251,251,151, 94, 80,121, 42,164,254,235, 1,147, 24, - 32, 46, 0, 16,219, 2, 38,118, 85,174, 44, 11, 11,139,149, 51,103,206,156,213,176, 97,195,162, 40,230, 90,173, 22, 12,195, 64, -171,213, 66, 42,149, 98,206,156, 57,133, 10, 22, 44,203,226,234,213,171,211, 39, 78,156, 8, 0,179, 75,227,108,215,202,229, 25, -135,112,156, 11,109, 53, 84,167, 75,120,244, 60,190, 21,163,211,113,149, 74, 77,169,153,202,141,140, 4,229,138, 60, 62,159,239, -252,234,175,191,108, 57, 66, 33,168, 78, 7,176, 44, 40,203, 2, 40,246,162,249,239, 81, 29, 11,170,213,129,101, 88, 48, 10, 21, -218, 76,157,170, 79,167,105,207, 23, 26,159, 24, 57, 97,174,125,219,111,190,225,215,172,238, 8, 70,199,226, 93, 76,130,125,208, -179,199, 29,206, 28,217, 57,133, 16, 50,156, 82, 90,165, 56, 91, 66,177,217,141, 29,187,247, 59, 63,125, 17,134,219,119,238,225, -150,127, 0, 0,224,250,157,124, 58, 14,135, 83, 81,249, 44,172,220,188,154, 78, 31,251,189,201,234, 77, 7, 68,211,199,126,207, -251,215,223,253,162,233, 99,251,241,214,108,222, 47,154, 62,182, 31,255,151,223,118, 52, 39,132, 88, 80, 74,165,101,241,149,213, - 70,132, 97, 68,199,162, 82,184, 0,144,182,103, 15,180,169,169,112, 92,190, 28, 0, 48,178,182,157,222,238, 14, 27, 27,155,103, -124, 62,223,185,162,243,180, 90,109,133, 34,120,244,232,209,205, 20, 10,197, 51,134, 97, 40,143,199, 91, 52,162,255,119, 23,122, -116,108,150, 81,252,156,144,144, 96,171,181,107,255,250,254,116, 80, 46, 29,210,210, 52,232,210,198,209,173,122,207, 59, 28, 92, -206,132,204, 81,169, 84,136,140,140, 68,241, 36,239,197,117,109, 21, 7, 31, 14,128,173, 86, 86, 86,109, 51, 50, 50, 70, 2, 88, -146,147,147,211,148,203,229,194,210,210,114, 9, 33,228,157,185,185,249,129,236,236,236,192, 2,171, 17,171, 39,111, 39, 51, 51, - 51,223,243,231,207, 91,180,104,209,130,147,158,158, 14, 87, 87, 87,100,102,102,182,185,119,239, 94,203,113,227,198,141, 35,132, -252, 72, 41,189, 87,137,226,214, 19,139,197,116,212,168, 81, 68,167,251,215,229,254,241,199, 31,232,222,152,169, 51,185,135,137, - 92,169,166,217,183, 35,205, 39, 11, 4,130, 7,177,177,177,217,149,173, 15, 1,176, 96,212,220,185, 92, 73,108, 44, 36,193,193, - 24,153,147,195,251, 53,223,186, 85,161,208,226,112, 56, 53,124, 79, 28,114, 19, 10,133, 96, 24,166, 72, 12, 22,142, 81, 90,173, - 22, 26,141, 6, 90,173, 22, 58,157, 14, 90,141, 22,235, 86,255, 86,229,177, 80, 44, 22,139, 29, 29, 29, 83,196, 98,177,248, 75, - 76, 68, 34,145,136,119,228,200,145,225, 66,161, 16, 0,160, 86,171,209,184,113, 99, 98,152,162, 13,248, 39,137,173,210,172, 92, -229, 61,165,254, 31,123,223, 29, 22,213,209,182,127,207,246, 93,150,222, 65, 4, 21, 68,105,130, 29,176, 96,141, 49,160,177,198, - 24, 91, 18, 19,223, 68,163,177, 36, 98,139, 93, 72,172, 49, 49, 81,147, 24,203,107,195, 46,182,216,130,137, 93, 17, 5, 84, 84, -164, 9, 8, 75, 93, 96,251,158, 51,191, 63, 40,174, 8,236, 98,242,254,190,247,251,178,207,117,237,181,231,236,153,243,236,156, -153, 57, 51,247,220,207, 51,207, 12,150,203,229, 96, 24, 6, 86, 86, 86,224,114,185,245, 25, 21, 12, 28, 56, 16,189,123,247,198, -187,239,190,139,212,212, 84,201,187,239,190, 59,176, 81,102, 96,118, 20, 90,250,186,212, 12, 38,172,219,229, 19,119, 98,127, 89, -126,192, 9,192,108,131,100, 31, 78,153, 50,133, 20, 23, 23, 99,244,232,209,151,212,106,245, 80, 74,169,188, 81, 70,131,197,179, -190,239,142, 3, 75,137,100,253,245,159,136, 70,165,164, 28, 14, 71, 89,107, 58,124,205,130, 26,237,238,238,142,189,123,247, 66, -163,121, 53, 92,152,181,181, 53, 82, 82, 82, 12, 25, 56,132,134,134,114, 9, 33,163, 27, 3, 90,132,112, 60, 46,223,204,116,174, - 61,143, 26, 24, 40, 8,235,226, 85,224,228, 96, 69, 1,144, 5, 11, 22,212, 1, 55, 0, 88,186,116,169, 41,249, 4,135,207,135, - 44, 33,225, 69, 71,204,227,128, 35, 32, 32,124,128,195,171,182,162,130, 2,148, 1, 88, 61,192,234, 0,177, 91, 75, 83,116,119, -107,225,233, 27,191,106,221, 15,182,106, 29,197,222,163,231,145,145,241, 20, 92, 14, 7,222, 62,190,120,163, 79, 47,126,231,174, - 97, 45,191, 89, 50,251, 56, 33,100, 48,165,244, 70,179, 11,154,165, 98, 31, 79, 71,252,252,203,109, 56,217, 89, 98,244,176,183, - 32, 17,139,240,245,119,191, 98,197,188,105,240,245,246,194,150, 13, 43, 27,189,221,198,198,102, 89,167, 14,126,222,191,238, 63, -141,136,222,225,188,237,251,207,160, 79,239, 30,188, 95,247,159, 70,159,136, 94,188,237,251, 79,163, 79,239,158,252,237,251, 79, - 35,180, 75, 7,159, 43,197,119,151, 1,152,214,248, 51,215,171,163, 55,170,235,200,151, 39,168, 27, 8, 50, 63,249, 4, 0,234, -128, 86,115,132,207,231,123,228,229,229, 57, 27, 75,103,140, 53,168, 97,178,110,233,245,122, 20, 22, 22,146,178,178, 50,106,107, -107, 59,236,244,150,249,135, 7,245, 12, 41, 1,128,164,164, 36,251,152,152, 85,195,246,221,146, 67,121,237,123,242,239, 99, 9, -236,184,161, 17,183,142,198, 78,234, 60,106,212,168,196,134,244,170,213,234,140,142, 29, 59,210,154,227, 22, 34,145, 72, 80,175, - 77,184,251,250,250,190,194, 90,155, 96, 82,252,246,234,213,171,211, 2, 2, 2,224,231,231,119,165,123,247,238,214, 82,169, 20, -167, 79,159,134,191,191,127,160,181,181,245,245,184,184, 56,254,220,185,115, 67,182,109,219, 6, 0,159,153,208, 62, 7,244,237, -219,119,111,124,124,188, 88, 32, 16, 64,169, 84, 34, 37, 37, 5, 54, 54, 54, 16, 10,133,120,251,237,183,185, 61,122,244,112,232, -211,167,207,193,154,201,128,201, 43,160, 84, 42, 21,157, 63,127, 62, 44, 44, 44, 96, 97, 97, 1,169, 84, 10,169, 84, 10, 75, 49, -200,230, 25,158,146,233, 91,203, 36, 51, 23,111,142,221,249,195,146,139,158,158,158, 95,101,103,103,151, 53,183, 45, 40, 47, 93, -130,101, 82, 18, 96,240,238,154, 42, 54, 82,123, 68, 71, 71, 27, 99,164, 32, 16, 8, 16, 30, 30,110, 84,159,131,131,195, 33, 30, -143,231, 82,111,112, 16, 71, 71, 71, 51,105,105,105, 82, 14,135, 35,101, 89, 22,209,209,209,140, 94,175, 23,187,184,184, 92, 97, - 89,182, 64, 38,147,141, 48,166,155, 82,170, 38,132,124,193,225,112,190, 21,137, 68,188, 86,173, 90,101, 45, 90,180,232,106, 13, -155, 9, 74, 41,167, 85,171, 86,221, 36, 18,137,151, 90,173,214, 3,248,194,204,102,153,165, 9,233, 92, 77, 10,215,137, 6,128, -176,150,192,175, 30,237,224, 88,239,119, 0, 40,170,153, 40,186, 52,114, 94, 12, 32, 21, 64,123, 0,206, 53,215,110, 2, 40,105, -110, 6,155,100,180, 8, 33,212, 32, 97,221,192, 98,101,101,133,155, 55,111,130, 16, 2, 43, 43, 43, 88, 91, 91,195,198,198, 6, -114,185, 28,169,169,169,120,240,224, 1, 50, 51, 51, 65, 8,129,183,183, 55,106, 95, 32, 3, 93,117, 29,220,238,181,241, 16, 91, -138, 64, 8,208,169, 95, 48,130,123, 7,161,235,141,244, 25,238,238,238, 91,243,242,242, 30, 17, 66,120, 65, 65, 65, 31,134,134, -134, 98,221,186,117, 80,171,213,235, 26, 2, 89,134, 58, 47,165,232,186,212, 12, 78,115,118,157,126, 98, 49,254, 77, 31, 69, 94, - 94,222,154,215, 40,156,151, 58,226,162,162, 34,147,247,226, 99, 89, 22,165,165,165, 77,234,172,207, 16,172,255,246,123,219,138, -242, 2, 44,255,122, 23,116, 58, 29,102,207,158, 13,150,101,235, 62,101,101,101, 38,229,147, 50,245, 72, 6, 78,245,135,112, 0, -194, 3, 60,199, 84,227,138,236,189,223,131, 80,128, 48, 0,234, 61, 87,125,157,132, 16, 49, 87, 32,217,183,228,235,141,182,137, - 15,158,225,232,249, 68,104,229,185,200, 79, 58, 12, 0,240, 14, 31,139,253,106, 46,186, 7,251,224,243, 5,223,216, 45,252,124, -194, 62, 66,136,159,161, 25,209,148,129,141, 82, 6,203,151, 45,195,214,141,235,240,205,186,141,144,151,151,129,207,119, 4, 0, -232,245, 12,152,122,207,246,202,179, 83,250,230,194, 57, 83,200,183, 63, 29, 68, 80, 91, 87, 28, 63,123, 5, 93, 2,189,112,234, -194, 13,132,118,104,141, 51, 9,183, 17, 26,220, 6, 9,215, 82, 48,123,234, 68,114,249,212,246, 55,155, 83, 71, 27, 54,124,111, - 91, 33, 47, 64,252,202, 29, 40,220,180, 9, 89,211,166,161, 91, 77,154, 27,132, 64,224,225, 1, 8,140,215, 81,125,185,127,255, - 62,212,106,117, 67,179,125,248,251,251, 27,173,119,165, 82,121, 91,175,215,211,130,130, 2, 82, 80, 80, 0,169, 84, 74, 82, 82, -146,153,192,192,160,225,244,193,129,159, 0, 32, 38,102,213,240,253,183,229, 80, 92,217, 8,229,213,239, 32,104,125,151,179,117, -233, 20,237,199,139,183,220, 54, 24,228, 94,202,103,126,126,254,224,218, 99,111,111,239, 7,105,105,105,237,107, 77,205, 53, 38, - 68,129, 94,175,247,173, 53, 39,234,245,122,168,213,106, 12, 24, 48,128,219,212,179,219,217,217,133,250,251,251, 35, 49, 49, 17, - 27, 55,110,180,239,219,183, 47, 30, 63,126, 12, 66, 8, 86,173, 90, 69, 2, 2, 2,248, 69, 69, 69, 24, 52,104, 16, 14, 29, 58, - 20,110,172, 60, 9, 33, 86, 82,169,116,219,241,227,199,197, 28, 14, 7, 21, 21, 21, 96, 89, 22, 61,122,244, 0,135,195, 65,114, -114, 50, 22, 44, 88,128, 67,135, 14,225,200,145, 35,146,206,157, 59,111, 35,132,248, 27,154,245,155,168, 35,170, 82,169,168, 72, - 36,130, 72, 36,130, 88, 44,134, 88, 44,134, 80, 40, 68,165, 10,248,120,125,150,154, 43,118,100, 3, 59,246,244,121,127,250, 42, -206,154, 69, 31, 92, 0,112,212,212, 54, 15, 84,251,100,125,251,235,175, 27,199,149,151,115, 0,224,103, 66, 88, 45,165,223,152, -242,190, 3, 64,165,170, 28, 94,222, 30, 56,184,239, 8, 70,142, 25,214, 32,200,226,243, 5, 16,240,249,176,182,151, 26,213, 41, - 16, 8, 92, 30, 60,120,224,192,231,243, 65, 41, 5,195, 48,208,106,181, 5, 11, 23, 46,116,138,140,140,180, 58,117,234, 20, 39, - 50, 50,146,181,179,179,171,186,113,227, 70,161, 94,175,119,232,213,171,151,201,109,158, 82,250, 67,199,142, 29, 59, 29, 62,124, -248,131,232,232,232, 91,115,230,204, 89,110,120,125,245,234,213,203, 78,158, 60,233, 53,124,248,240,157,119,238,220,249,161, 57, -125,200, 95,237,231,205, 58,255,251,116,158, 56,113,162,174, 35,142,140,140,172,207,118,186, 16, 66,226, 13,254, 63,170,246, 60, - 58, 58,122,126, 76, 76, 76, 10, 33, 36,222,240,247,218,116, 53,125, 71,124, 67,231, 53,247,218,207,155, 55, 47, 40, 54, 54,118, - 85, 88, 88,216,222, 43, 87,174, 60,109, 46,208, 50,234,163, 85, 11,174, 12, 1, 87, 61, 5,144,203,229,144,203,229,200,201,201, -193,230,205,155,107, 94,104, 62,120, 60, 30,120, 60, 94,157, 63, 67, 99,114,238,248, 31,223, 1,248,174,115,231,206,252,123, 87, -227, 78,125,185,117,122,255, 46, 3, 58,113,111,159,191, 55, 10,192, 10, 0,131, 39, 78,156,232, 8, 0, 59,118,236, 40, 2,112, -234,127, 2, 50, 83, 74,227, 30, 61,122,244,185,155,155, 91,157,143,138,161,249, 80,175,215, 67, 44, 22,163,214,151, 69,165, 82, - 97,243,230,205,122, 74,105, 92, 19, 58,145,150,114, 1,143, 82, 46, 86,223,199,178, 96,153, 23,247, 47, 89,178,196,112,137, 40, - 62,169, 97, 78,140,130,188,134,202,156,214,251,174,247,251, 43,224,236, 21,243,132, 96,250,168, 9,211,220, 88,194,195,177, 11, -119,192,231,243,193, 26,176,153,124,110,245,108, 57,229,113, 30,220, 93, 2, 49,116,236, 20,215,195, 59,191,159, 14,224,235,230, -150,181, 95,112, 24,102,124,254, 57,126,218,186, 21, 11, 22, 47,171, 67,233,122,134,129,222,104, 62, 57,156, 30, 93, 2, 80, 89, -252, 12, 92, 46, 23,225, 29,125,192,229,114,209,171, 75, 59,112,185, 92,244,236,218, 30, 60, 30, 15,125, 66, 3,208,182,109, 91, -240,120, 60,142,145,122, 71, 90,202,121, 60, 74,249,221, 0,244, 82, 80, 0,218,252,252, 87,210,235,242,243, 65, 61, 29,154,219, -182,240,225,135, 31,150,229,228,228,104,235, 95,107,217,178,165,224,210,165, 75,182,141,152,237,234, 68, 34,145,116,230,241,120, -183, 75, 74, 74, 88, 11, 11, 11, 14,203, 50,108, 96, 96, 16,247,244,150,249,135,107,211,204,155, 55,255,240, 59,157,173,135,239, -138,139,167,130, 86, 61, 9,225,139,244, 31, 45,222, 34,224, 11, 36, 38, 69,188,175, 53, 35, 62,124,248, 16,198,242, 99, 56, 49, -107, 72, 74, 75, 75, 39,250,251,251, 95,250,238,187,239,236, 9, 33,248,227,143, 63,192,229,114,235, 62,233,233,233,224,112, 56, -248,242,203, 47,181,114,185,124,178,177,188,241,120,188,207, 15, 30, 60,104, 35, 20, 10, 81, 81, 81, 81,247,222,112,185, 92, 60, -120,240, 0,107,214,172,193,196,137, 19,145,157,157, 13,119,119,119,204,158, 61,219, 50, 54, 54,246,115, 0,203, 76,120,244,187, - 26,141,166,139,133,133, 5,196, 98, 49,106, 1, 23, 0,252,150,194, 79, 86, 40, 20, 29, 28, 29, 29, 93,157, 18,226,143,133,247, - 29, 26,226,224,228, 22, 86, 11,180, 76,149, 39,192,214, 12,134, 89, 56,248,240, 97,231,203,135, 15,179,215,142, 31,127, 38,170, -168,216, 98,114, 27,210,113,144,149,254, 12,157, 59,119,198,237,219,183,209,185,115,103, 67,208, 4,161, 80, 8,129, 64, 0,129, - 64, 0, 71, 59,147, 92, 40, 40,135,195,193,229,203,151,193, 48, 12, 52, 26, 13, 52, 26, 13, 2, 2, 2, 74, 46, 94,188,104, 9, - 0,233,233,233,116,252,248,241,101,215,175, 95, 71,199,142, 77,239,167,238,234,234,122,137,203,229,182,170,247,174,218,141, 24, - 49, 2,165,165,165,111,141, 24, 49,162,103,205,111,185, 7, 14, 28, 24, 15, 0, 66,161, 16, 28, 14,135,129, 89,254,241, 82, 11, -174, 12, 1, 87, 3,125, 78, 84,253,115, 66, 72,124, 76, 76, 76, 84,253,223, 12, 65, 85, 67,199,134,247,198,198,198,174, 50,208, -173,124, 13,107,152,113, 31, 45, 66, 8, 53,214,105, 54, 37,198,128, 86,173,220,190,125, 91,215,162, 69,139,159, 30,221,201,236, -239, 19,236, 13,137, 84,244, 6, 33,228, 59,145, 72, 52,107,194,132, 9,184,118,237, 26,146,147,147,127,249,171,219,169,116,232, -208,225,140, 72, 36,242,106,196, 76,146,117,239,222,189, 65,141, 12, 12,139,107,124,206, 26,117,134, 55,244, 23, 51,116,134,111, -180, 97,176, 20, 58,173, 14, 85, 10,229,139, 65,188, 6,104, 85, 85, 85, 97,204,152, 49, 47, 49, 90,133,133,133,166, 84, 42,214, - 28, 61,138,179,113,113,120, 43, 36, 4,135,110,220, 64,236,132,247,224,231,213, 2,148, 33,160, 4,200,222,243, 61,138,229,149, -216,125,254, 50, 74, 42, 20, 24,215,171, 23,124,173, 29,155,214,203, 23, 12,236, 22, 26, 38, 56,119, 37, 21,124, 62, 15, 28,176, -160, 58, 5,220,253,251,128,203,225,192,198,165, 53, 4,124, 62,248,124, 30,210,115,138,224, 31,212, 85, 24, 47, 20, 15,124, 29, -160,213,210,171, 53, 24,134,193,196,137, 19,177,119,239, 94, 56,184,122,193,166,101, 16, 86,172,219,138,183, 6,244, 50,250,252, -181, 51,120, 30,143, 7, 46,151,251,202,119,237,177, 41,236, 36,101, 41,180,245,235,136,165, 0,165,240, 88,185, 18, 30, 43, 87, -226, 70,205,127, 6, 84, 85, 65,169, 84, 2,221, 3,155, 5,178, 52, 26, 13,114,114,114,180,249,249,249, 46, 13, 12, 80, 5, 26, -141,198, 40,176,217,190,125,251,221, 73,147, 38,117,177,183,183,191,117, 55, 41, 73, 23, 28, 18,194, 63,181,121,254,145, 90,179, - 33, 0,132,132,132,148,204,159, 63,255,200,248,209, 81,195,126,136,126,151,249,116,217, 78,158, 72, 34,233, 18, 53,167,105,135, -120,131,247, 35, 35, 56, 56,152,154,146, 86,161, 80, 60,111,162,142,134, 0, 88,218,169, 83, 39,235,190,125,251,226,210,165, 75, - 24, 57,114,164, 90,171,213, 62,170,233, 84,219,237,222,189, 91,152,154,154, 10, 39, 39, 39,126, 86, 86,214, 54, 66, 72,147, 14, -242, 66,161,176, 79,215,174, 93, 57,106,181,250, 21,144, 21, 27, 27,139,177, 99,199,162, 93,187,118, 96, 89, 22,149,149,149,232, -219,183, 47,127,227,198,141,125, 76, 4, 90, 51,252,252,252,214,160,122,213,161, 97, 95,120, 31,192, 23, 53,108,247,243,168,145, - 19, 83,122, 13, 24,209,165, 85,219, 32, 55, 99, 10, 93, 92, 92,230,113, 56,156,119, 88,150,229,202,229,242, 28, 13, 33,109, 3, -188,188, 92,122, 12, 27,134,114, 62,159,251,237,249,243,156,130,138, 10, 75, 0, 38,153, 32, 85,186, 42,120,121, 87,187,250,141, - 28, 51, 12,183,111,223,198,168,119,135, 67, 32, 16,128,199,227, 87,191,155,130,106, 70,203,214,209,218,164,182,169,211,233,234, -250,240, 90, 63, 47,173, 86,139, 90,215, 44, 11, 11,139,186,107,106,181,186,209, 9,121,141,248,238, 95,182,200, 89, 98,109, 3, - 70,167, 67,224,176, 81,117,109,250,250,207, 63, 72,192,178,146,178,172, 12,124, 22,119,156, 15,179,152,165, 17, 86,171, 1, 54, -203,176, 95,137,175, 15,182, 94, 87, 8, 33,241,209,209,209,243, 1,208,232,232,232,249,181,231, 49, 49, 49, 74, 0,185,175, 3, -182, 26, 98,185,120,127, 7,200,170, 53, 47, 52, 37,253,250,245,251,204,202,202,106, 35, 0,116,233,210, 5, 57,215,114,145,115, - 45, 23,254,237, 3,123,116, 10,233, 82, 62,118,236, 88, 56, 56, 56, 96,206,156, 57, 20,192, 47,205,253,255,244,180, 20, 75, 0, -212,221,221,125, 14, 0,184,187,187,135,220,184,113,195,233,230,205,155,232,218,181,235, 11,234, 94,171, 69,207,158, 61,155, 26, - 16, 43, 80,237,107, 53,243,239, 99,201, 88,104,181, 90, 40, 20, 74,104, 52, 90,232,117, 44,244,122, 61, 58, 7, 90, 97,231,214, -232,234,223,244,181,236, 89, 53,107,230,225,106,133,206, 29, 92,117, 28, 14, 81,222, 76,202,111,176,199,212,104, 52,184,155,149, -133,164,204, 76, 0,192,208,152,166, 29, 95,119,158,191,132,128,128, 0, 99,185,245,241,112,119, 69,222,217,187,213,157,183, 50, - 7, 55,255,220, 15, 43, 43, 75, 0, 64, 96,196, 56, 8, 4,213, 64,171, 74,169,133, 99,251,150, 32,148, 54, 26, 22, 64,106,239, -118,134, 39, 16,123, 81,134, 5,165, 44, 40,203,128, 82, 22, 34, 43, 7,139,207, 62,249, 0, 44,203,160, 91,183,110, 32, 92, 46, - 24,157, 26,163,135, 12, 68,105,121, 5, 28,108, 77, 27, 36, 4, 2, 1, 34, 34, 34, 36,141, 93,127,252,248,177,210, 16,152, 53, - 93, 71, 58, 84, 85, 41,161, 86,171,161,213,232,161,213,233,193,180, 17, 96,249,194,247,160,215,234,161,120, 55, 12, 90,157, 30, -236,231,195,161,213,232,144,109,193,225,132, 4, 56,233, 56, 32,202,196,212, 66,107, 99, 64,171, 22, 28, 52, 38, 13,249, 4, 54, - 2,182,146, 38, 77,154,212, 57, 56, 36,228,246, 59, 3, 66,214,222, 75, 78,201,187,151,156,242, 74, 58,175,118, 33, 25,159,198, -238,157,205, 23, 72, 58,155, 10,178,128,151,205,136,127, 81,230, 87, 84, 84, 4, 91, 90, 90, 34, 45, 45, 13, 92, 46, 23,132,144, -199,148,210, 96, 0,152, 50,101,202, 19, 30,143,231,205,229,114,177,105,211, 38,194,227,241, 58,132,133,133,205, 7,176,191,137, - 9,157,191,149,149,213, 75,108,150, 64, 32, 64,116,116, 52,198,143, 31, 95, 7,178, 4, 2, 1,182,111,223,142, 46, 93,186, 64, -163,209,248,155, 8,134,111, 2,232,101, 2,227, 71,106,192,185, 81, 48,170,215,235, 39, 21,191,243, 78, 91, 36, 36,160,135,183, -119, 64,231,206,157,161,213,190, 32, 52,189,189,189, 91, 86, 84, 84, 60, 39,132,252, 27,192, 15,148,210, 59, 77,130, 34, 21,139, -172,244,103,181,147, 86,116,235,214,173,142,193, 50,100,179, 4, 2, 1, 36, 66,203,102, 1, 45,150,173,238,151, 42, 42, 42, 56, - 9, 9, 9,142,126,126,126, 4, 0,252,252,252,200,157, 59,119,236, 45, 44, 44,138,124,124,124,140, 78,128, 37,214, 54,216, 62, -105, 12, 0,224,171, 1,111,214, 77,140, 78, 47,157, 15, 62,159,143,254,115,230,191,210,238, 89,150,229,194, 44,102,144,101, 4, -100, 53,196,104,253,181,177,249, 5,163, 21, 19, 19,147, 18, 19, 19,243, 10, 59,214, 76,125,198, 25, 45, 83, 76, 1,198, 94,214, -198,100,221,186,117,232,208,161, 67,147, 3,209,198,141, 27,177,107,215,174,117,148,210,244,230,254,127, 84,255, 78,129, 88,127, - 56,197,187, 93, 32, 1,128,101,159, 15,225, 84, 85, 85,225,242,229,203,176,177,177,193,227,199,166,133,253, 34,132, 88,217,216, -216, 44,229,112, 56,163,185,245, 87, 0, 52, 12, 48, 25,150,101,227,202,203,203, 27, 13,239, 64, 41,160,213,233, 81,165, 80, 65, -163,209,224,243, 47,191, 55,154,143, 24,128,104, 53, 21,188,136,222, 97,146,198, 24,157,110, 29,250, 96,234, 4,203, 87, 6,111, - 46, 7,224,112,128,142,221,170, 25,151, 59, 55, 82,192,178, 0,195, 2,142,206,118,248,101,207,218, 38,139, 64,207,176, 53,179, - 99, 6,149,106, 6,254,161, 81,120,118, 63,161,142, 65, 18, 10,170, 77,198, 2, 62, 31, 44, 37,213, 81, 31, 26, 3, 66, 66,137, - 87,105,126,186,239,214,248,123,248, 56,170, 3, 14,156,187,139, 81, 3,130,113,241,122, 42,250,118, 15, 64,202,163, 76, 4,250, -182,194,166,109,113,160, 20, 21, 63,174, 95,241,252,197,128,166,207, 50,133,209,186,118,237,154,178, 62,139,101,248, 77,141,143, -135,160,244, 5,163,165, 84,169, 49,103,158, 73,225,124,170,235,168, 87,168,196,148,196, 77, 49, 86,166, 0,177,250,204, 22,140, -132,103,105, 3,160, 11, 48,247,127,178,227,100, 24, 6, 39, 78,156,168,171,143,134,234,209,176,238, 76, 0, 57,200,202,202, 66, - 74, 74, 10, 66, 67, 67, 81, 94, 94, 14, 62,135,131,217,247,238, 33, 96,194, 4,104, 4, 2,176, 44, 11,161, 80,136, 41, 83,166, -152, 92,158,205,236, 77,107,252,220, 24,106,164, 47, 89, 27, 21, 21,213, 54,173,170, 10, 41, 15, 30, 96,192,146, 37, 0,128,147, - 39, 79,190,212, 38,102,205,154, 37, 76, 77, 77,253,240,214,173, 91, 31, 18, 66,214, 81, 74,103, 55,218,207, 82,117,157,143,214, - 59,239,141, 68, 91,191, 54,216,245,235,158,186,235,179,190,152, 1, 62, 95, 0,190,128, 15, 91, 27, 91,147,158, 70,167,211,213, -129, 86,133, 66,193, 57,121,242,164,199,192,129, 3, 5, 51,102,204, 32, 0,176,107,215, 46,206,119,223,125, 39, 61,123,246,172, -160, 69,139, 22,249, 70,193,165, 86,251, 74, 29, 19, 66,192,231,243, 33, 16, 10, 0,150, 5, 33, 68,186,122,245,234,101, 41, 41, - 41, 93,253,252,252,160, 86,171, 39, 16, 66, 18,205,113,180,204, 82,107, 54,108, 12,112, 53,228,107, 85,195, 74, 53, 38, 50, 67, -191,173,198,128,154,161,207, 22, 0,117,243,187, 5, 19,125,180, 26, 18, 46,151,107,148,173,226,112, 56, 70, 77,135,179,102,205, -130,149,149, 85, 99, 3, 16,189,119,239, 94,106,126,126,254, 86, 74,233,247,175, 83, 57,241,231, 19, 83,150,206, 28, 94,129, 26, -219,170,173,173,109, 81,191,126,253, 42, 1,104,247,239,127,121,130,172, 86,171, 27, 29,192,109,108,108,150,254,252,243,207,211, -135, 13, 27,198,169, 31, 98,192,208,188, 87,251,209,233,116,216,191,127,255,244,185,115,231,162, 49, 22,172,118, 16, 87, 84, 41, -161,172,113,132,126,146,124,192,212,218,107,244,146,165,173, 27, 60,218, 4, 55, 58,152,112, 4,213, 62, 68, 46,158, 47, 6, 48, - 43, 43, 49,152, 38,116, 18,194, 73,207,204,206,107,209,210,213, 30, 79,114,100,112,105,213, 1,165,185, 47,202,129,199,227,130, - 95, 99, 58,180,181,150, 66, 86, 88, 8, 14,135,219, 36, 48, 94,177, 59, 17,215,147, 51,113,240,220, 29,104, 85, 85, 88,191,227, - 52,180,234, 74,104, 85, 85,208,170,170,191, 87,205,253, 8,132,224,185, 86, 85,217,174, 57,245,206,227,241,208,189,123,247, 70, -129, 78,110,110,174,137,140, 22,173, 99,180,148,170,102,214,145,105, 47, 97,147,140, 85,237,245,215, 5, 6,181, 33, 31, 36, 18, - 73,151,237,219, 27, 15,227,208,144,184,185,185,157,178,180,180,108,109,106,250,102, 4, 47, 93,101,107,107,187,212,207,207,207, -127,253,250,245,124, 46,151,139,254,253,251,183,251,232,163,143,178, 0,160, 67,135, 14,238,181,125,204,167,159,126, 74,175, 93, -187,150, 92, 61,199,104, 92,132, 66,225, 3, 27, 27,155, 46,125,251,246, 69,121,121, 57,114,114,114, 32,149, 74, 17,176,118, 45, -238,125,250, 41, 66, 54,111, 6,167, 95, 63, 16, 66, 32, 20, 10,113,239,222, 61, 72, 36,146, 7, 77,128,161,238, 0,190, 1,208, - 3, 47,204,133, 20,192,101, 0, 95, 82, 74,175, 55,208,223,113, 0,128, 97, 89, 99,149,245,222,156, 57,115, 80,198,231, 3,145, -145, 16,164,167, 67,171,213, 34, 52, 52,180,142,101, 15, 13, 13, 5,143,199, 67,112,112, 48,220,221,221,177,105,211,166,247,240, -242, 74,236,151, 68, 85,169, 69, 86,250, 51,132,133,133,213, 49, 87,145,145,145,117,140, 22,159,207,175, 99,182, 8, 99, 28,184, - 18, 66,168,225, 36,153, 97, 24,194,227,241,120, 51,103,206, 36, 35, 71,142,164, 26,141,134, 21, 10,133,156,131, 7, 15,146,139, - 23, 47,242,170,170,170,140, 78,196,131,134,143,198, 87, 3,171, 73,209, 21,173,157,192, 23,240, 33, 20, 8, 48,231,193,179,186, -122,177,222,190, 87, 24, 27, 27, 59,202,207,207,175,218, 12, 15,240,204,113,180,204, 98,132,205,146,213, 3, 73, 26,131,115, 25, - 0, 82,115, 46, 51, 0, 84, 50, 84,175, 32,236, 90, 47,109,237,117, 77,189,239,218,235, 73,205,205,187,193, 94,135,175,128,175, -166,102,196,143,174, 94,189,234,219,185,115,103,100,103,103,191,178, 18,174,118,224,146, 74,165,144, 72, 36,184,114,229, 10, 0, - 60,106, 76,217,133, 11, 23,190, 67,117,212,101, 0,128,187,187,123, 88,223,119,250, 92,233,246,102, 87,236,142,217, 83,158,159, -159, 31, 92, 27, 67,135, 16, 66,220,221,221,199,243,133,188, 49,222, 65,158, 17, 96,217,111,206, 29,251,115, 73, 83, 15,233,221, - 46,176, 18,128,210, 96,213,225,154,215,169,104, 14,135, 51,122,216,176, 97,156,212,212, 84,140, 25, 51, 6,187,118,237,106, 52, -237,248,241,227,177,119,239, 94, 12, 27, 54,140, 51,111,222,188,209,198,128, 86, 53, 91,162,249,219, 26,101,218,227, 36,236,220, -251,115,163, 62, 72,206,206,213,254, 88,133,133, 69,117,191,117,237,220,180,101,132,213,107,206, 38,222,186, 17, 22,222,187,191, - 32,167,160, 12,172, 94, 13, 85,197,139,251, 21,101, 5,160,122, 21, 4, 22,246,112,117,180,193,237,171,191,105,180, 26,213,217, -166,116, 78, 31, 22,136, 79,135,248, 3,148,197,240,217,191, 32,254,251,207,234,102,208, 61, 71,206,192,249,253,223,154,236,227, - 87, 95,248,124, 62,238,221,187,167,108,140,205,226,114,185, 70, 99,114,189, 96, 29,117, 80, 40,148, 80, 40, 85,127, 91, 29, 17, - 66,156, 92, 92, 92,126,180,183,183, 23, 55, 4,164, 8, 33, 78, 78, 78, 78, 63, 58, 56, 56,136, 77, 53, 29, 54, 6,178,106,226, -106,221,154, 52,105, 82,179,192,150, 72, 36,106,253,232,209,163,186, 96,165, 77,125,107, 52, 26,244,237,219,215,164,224,165,148, -210,227,132,144,167,110,110,110,227,242, 19, 73, 0, 0, 32, 0, 73, 68, 65, 84,151, 3, 2, 2,108,158, 60,121,130, 61,123,246, - 8,248,124,190,103,109,255, 81, 81, 81, 1, 46,151,139,194,194, 66, 29,128, 15,140,153,206,212,106,117, 66, 66, 66, 66,199, 33, - 67,134,112, 31, 60,120, 0, 46,151, 91,157,175,176, 48,132,108,222,140,228,153, 51, 17,145,153, 9,149, 86, 11,177, 88,140, 51, -103,206,104, 21, 10, 69, 66, 99,250, 36, 18,201,214,140,140,140, 64,177, 88, 12,173, 86, 11,150,101,193,225,112, 8,143,199,235, -105,107,107,187, 17, 64,215,151,223, 41,103,231, 41,179,190,110,207,232,245, 76,126,246, 19,153,177, 50, 40, 46, 46,198,241,227, -199, 17, 26, 26,138,136,136, 8,228,230,230, 34, 61, 61, 29,111,189,245, 86, 93,154,164,164, 36, 36, 38, 38,194,199,199,199, 56, -163,199,209,193,167,125,107, 8, 4,130,106,134,136, 47,168,153,248,240,235,152, 44, 1, 95, 0, 62,143, 15,177, 68,108, 50,163, - 69, 8, 1,135,195, 1, 33, 4, 18,137,164,118,146,205,122,120,120,228,151,148,148,184, 1,224, 74, 36, 18, 48, 12, 99,210,164, -165,118,140,168, 5, 89, 2,161,160,142,217, 2,128,178,178, 50,213,176, 97,195,254,173, 86,171,223,199,107,236, 80, 98,150,127, -164,220,252, 31,186,215,100,156, 72, 41,221,218,144, 83,124, 83, 13,252,173,240,240,240,205, 99,199,142,237,191, 97,195, 6, 88, - 90, 90, 34, 63, 63,191,110, 64, 20, 10,133,104,217,178, 37, 74, 74, 74,176,101,203, 22, 60,123,246,236, 2,128, 41,166,230, 40, - 63, 63,255,218,227, 59,143,138,251,142, 10,119, 8, 12,111,111,155,243,232, 89, 40,128, 43, 53, 32,235,151,177,179,222,122,191, -239,136,110, 16, 8,249,200,121,252,252,255, 91, 77,114,185, 92, 46, 33, 4, 99,198,140, 49, 41,253,187,239,190,139,132,132, 4, - 52,101,102,100,107, 25, 45,133, 10, 85,202,191,111,178, 54,245,179,241,152,250,217,248, 58, 48, 97,138,233,165, 26,228,238,107, - 2,104,105, 55,196,239,219,242,113,167,110, 97, 94, 93, 2, 91,227,250,173, 59,216,189,249, 5,201,176,237,187,101,248,122,219, - 5,180,116,177,131, 86, 93,133, 83, 7,126,122,174, 85, 43, 54,188, 38, 41, 87, 13,110, 9,129,137,113, 42, 95, 98, 81,107,129, - 86, 80, 80, 80,163,140, 86, 73, 73,137,210,216,192, 80, 87, 71, 26, 29, 42,171,148, 80, 42,254, 30,160, 69, 8, 9,233,217,179, -231,217,184,184, 56, 7,103,103,103,228,229,229,189, 4,180, 8, 33, 33, 61,122,244, 56, 27, 23, 23,231,224,226,226,130,156,156, - 28,147,195,138, 52, 0,178, 32,147,201, 72,105,105, 41,107,103,103,215, 44,176,197,225,112,160, 86,171,113,255,254,125, 83,255, -214,228, 21, 98, 54, 54, 54,219,247,238,221,107, 83, 84, 84, 4, 46,151,139,251,247,239,191,180,234,176,246,243,203, 47,191, 8, -134, 15, 31,254, 51,128, 38,151,181,233,245,250,117,227,199,143,255, 48, 55, 55,215,206,217,217, 25,249,249,249, 16, 10,133,160, -148,130,244,237,139, 94, 79,159, 66,203, 48,144, 72, 36, 72, 75, 75,195,214,173, 91,171,212,106,245,186, 70,234, 71,104, 97, 97, -225, 43, 16, 8, 48,110,220,184,151,174,237,216,177, 3, 67,187,112,187,124, 60, 80, 84,169,135, 88, 93, 32, 25,124,138,203,229, -146, 41,115,190,105,215,189,119,100,208,195,228,235, 79,100, 5,207, 46, 27,121,124,157, 70,163,129,159,159, 31,110,222,188,137, -115,231,206,161, 95,191,126,136,136,136,192,221,187,119,241,219,111,191, 33, 49, 49, 17,132, 16, 56, 56, 56,212,186, 95, 52,233, -131,161, 81,232, 81,152, 87,252, 10,123, 85,255, 92, 32, 16, 64,173,212,154, 84, 71, 15, 30, 60,192,205,155, 55,235, 66,203,112, -185, 92,253,132, 9, 19, 64, 41,165, 25, 25, 25,176,178,178,162,147, 38, 77, 98,120, 60,158, 62, 55, 55,215,212,182, 95,205, 94, -213,128, 44,158,128,255, 18, 64, 99, 89,182, 34, 41, 41,233, 99, 66,200, 93, 66,200,234,154,159,205,113,180,204,242,191, 89, 78, - 24,238,117,104, 18,163, 69, 41,125, 10, 96, 0, 33,228,189, 35, 71,142,172,219,184,113,163, 83, 84, 84, 20, 74, 75, 75,225,229, -229, 5, 55, 55, 55,196,199,199,227,228,201,147, 69, 12,195,204,166,148,238,106,224,101, 27,208, 88,172, 13, 74, 41,117,119,119, -143, 83, 87, 86,126,218, 57,194, 31, 23,246,255, 17,227,230,230, 54,165, 69,139, 22,159, 79,154,255,246,251,125,134,117, 69, 90, - 98, 6,174,253,118, 15, 5,217, 69,152,212,235,203, 38,117,214,119,134,183,181,181,253,208,194,194, 66, 8, 64,219,192,172,248, -165, 85,135,134, 58, 25,134, 97, 52, 26, 13,246,237,219,103, 18,216,218,179,103, 15, 84, 42, 21,152,122,246, 85, 67,157,148,165, -132,199, 23,193,189,165, 31,180,218, 42,176,236,235,177, 55,134, 58,107,103,160, 79,132, 66, 56, 23, 21,225,250,245,235,166, 82, -179, 77,214, 17,165, 84, 69, 8, 25,247,237,202, 57,241,211,162,191,177,237, 23,222, 17, 95,173,221, 1,173,118, 27, 56, 92, 14, - 36, 34, 1, 58,119,235, 1, 46,212,248, 49,246,139, 50,133,188,116, 92,253,173,120, 94,209,217,148,133,133, 2, 12,203,226,220, -165, 27, 38, 63,123,221,104,207, 48,224,241,120,120,252,248,177,178,161,213,134, 92,110,181,153,179,118,166,222,148, 78,202,178, -132, 47, 16,163,165, 87, 0, 52,234,202,191,165,142,156,157,157,191, 56,124,248,176, 67,109,168,132,187,119,239,130, 16,114,223, -128, 29,249,226,240,225,195, 14, 74,165, 18,201,201,201,181, 91, 77,221,111,206,123, 84,203,100,201,100, 50,146,159,159, 15, 11, - 11, 11,206,221,187,119,213,193,193,193,183,208,244,206, 15,117, 58, 85, 42, 85,102, 99,254,147, 42,149,170,133, 88, 44,230,215, -187,215,221,215,215, 55,173,190, 9,177,161,124,150,151,151, 95,159, 59,119,110,231, 55,223,124, 19, 95,124,241, 69,137,157,157, -157,213,143, 63,254,200,227,114,185,100,218,180,105, 76, 97, 97, 97,229, 79, 63,253,100,115,228,200, 17,148,149,149, 93, 49,246, -236,148,210, 10, 66,200,199,225,225,225, 59, 78,159, 62,109,225,235,235, 11,185, 92, 14, 74, 41,182,111,223,142,105,211,166, 65, - 44, 22, 35, 45, 45, 13, 67,135, 14, 85, 40, 20,138,143,235,251, 78, 26,232, 36,132, 16,202,178, 44, 22, 45, 90, 84, 23,156,180, - 54, 88,169,149,132, 96,235,172, 54,210, 25, 63,149, 75,223,251,234,167, 9, 0,192,232,245,204,195,228,235, 79,182,127,255,213, - 69,129, 64,112,201, 72, 29, 45,152, 49, 99,198,143,145,145,145, 18, 75, 75, 75,148,148,148,224,242,229,203,184,122,245, 42,174, - 93,187, 6,141, 70, 3, 7, 7, 7,216,217,217, 33, 63, 63, 31, 15, 30, 60, 80, 2, 88,208,148, 78,161, 5, 31,222,237,106, 87, -254, 86, 51, 88,124,131,213,134,134,236,150,128,207, 55,233, 61,234,221,187, 55,186,119,239, 94, 11,128,152,172,172,172,124,181, - 90, 77, 12, 64,127,110, 45, 32,247,244,244,212,239,218,181,139, 54,165,243,218,214, 77, 56,189,124, 1,132, 2, 1,102,223,207, -169, 3, 93, 59,250,117, 2, 95, 40,128,255,144,145,134,227,192, 15,132,144,109, 53,199,106, 83,218,252, 95,152,248,152,117,254, -151,235,252,223, 44,148,210,124, 0,205,219,130,199,224,230,221,132,144, 83, 31,125,244, 81,108, 72, 72,200, 71,235,215,175, 39, - 2,129, 0, 75,150, 44,161,121,121,121,191,214,204, 66, 74, 95, 51, 99,191,254,126,232,202, 39, 19,163,135,145, 89, 27, 38,245, -188,117, 62,249, 65,135,112, 95,116, 8,247,197,173, 11,169,248,126,254,158, 93,140,142, 89,148,159,159,159,109, 68,149,122, 64, -143,246,245,157,225, 29, 18, 46,158,119,104,238,170, 67,150,101,227,246,236,217, 51,125,196,136, 17,156, 27, 55,110,188,226,147, - 85,187,237, 14,203,178, 56,123,246, 44,180, 90, 45,126,253,245, 87,150,101,217,198,227,104,129, 30,253,118, 67,236,196, 95,119, - 30, 21, 10, 5, 4, 87, 47, 29, 68,121,105,211, 44,157, 64,192,199, 47,219, 15,105, 5, 2,254,195,134,174,107,181,218,156,243, -231,207,187, 12, 98, 24, 62,135,195,121, 5, 64, 53, 38,113,113,113, 58,150,101,179,140,212,203, 21, 66,248, 67, 86,124,241,193, -158,200,119, 62,114, 9, 15,239,201,119,116,118, 1, 33, 4,133, 5,133, 72, 75,190,161, 59,117,240,231,130, 42, 69,133, 73, 91, -240,124,176,230,247, 58,159, 44, 0,136,154,182,177,206, 63, 11, 0,134, 76,154,139,190,161,129, 32,166, 80, 79, 47, 64, 22,171, -215,235, 33,149, 74,161,215,235, 27, 12,241, 96, 99, 99, 35, 81,169, 84,202,154, 64,140, 77, 82, 69, 20,248,219,235,136, 97, 24, -255,210,210, 82, 84, 85, 85,225,234,213,171,116,229,202,149, 50,153, 76, 86,231,180,169,211,233,252, 75, 74, 74, 80, 89, 89,137, - 43, 87,174,208,216,216, 88, 89,113,113,241,252,230,188, 67, 18,137,164, 11,143,199,187, 85, 90, 90,202, 90, 88, 88,112,116, 58, -157, 46, 56, 56, 88, 36,145, 72, 76,222, 80, 61, 47, 47,239,205,198,174,249,248,248, 60,122,244,232, 81, 91,134, 97, 12,247, 64, - 20,168, 84, 42,223,240,240,112, 83, 76, 62, 51,182,109,219,134, 67,135, 14,117,147,203,229,227,179,178,178,118, 0,232,198,227, -241,112,231,206,157,251, 42,149,106,236,136, 17, 35,182,151,150,150, 94, 7, 48,195,196,126,227, 52, 33,100,156,191,191,255,182, -165, 75,151, 90, 70, 68, 68,240,220,221,221,209,181,107, 87,164,165,165,225,196,137, 19,186, 31,126,248,161, 74,161, 80,124, 64, - 41, 61,219,116,181,131,232,245,122, 8,133,194,186,143, 72, 36,130, 64, 32, 64,133,146, 98,242,218,116,165, 30, 18,229,186, 37, - 31,159,160, 0,121,158,147, 94, 84,248, 60,231, 58, 33,228, 82, 94, 94, 94,121, 35,101, 38, 84,169, 84, 29,221,220,220,184,132, -144, 13, 90,173,118,210,103,159,125,230,182,106,213, 42,180,111,223, 30, 69, 69, 69,144, 74,165,240,245,245,133, 76, 38,195,141, - 27, 55, 24,133, 66,177, 25,192, 50, 74,105,147,230,200,178, 34, 57, 60, 92, 61, 95, 98, 62, 41,165,160, 12,160, 83, 51, 96,180, - 20, 26,162, 3,159,175,131, 64, 32, 48,101,176,164, 44,203,162,212,205, 13,108,114, 50,174, 93,187, 6, 74,105,163,172,154,159, -159,159, 9, 21,196, 66, 40, 18,190,100, 46, 36,132, 64, 32, 20,130, 47, 20,188,178,114,198,204, 98,153,229,255,186,152,234,107, - 81, 6, 96, 10, 33,100, 71,159, 62,125,226, 41,165,124, 84,219, 35,255,248, 43,127,158,159,159,127,219,221,221,125,158,139,135, - 93,236,224,241, 61,209,190,163, 23, 24, 61,131,203, 39,239,224,215, 85, 71,246,230,230,228, 78, 50,101,239, 51,150,101, 47,246, -232,210,158, 3,131, 88,221,238,238,238,236,235,172, 58, 44, 47, 47, 95, 60,123,246,108,124,241,197, 23,205, 94,117,216, 88,154, -187,247, 11,167,132,248, 59,121, 12, 25,220,107, 16, 8,135,106, 52,234, 38, 58, 62,212, 69, 46, 21, 8,248, 15,111, 36,229, 5, - 55,148, 78, 38,147, 13,122,255,253,247,207,242,120,188,214,205, 41,115,150,101,179, 10, 10, 10,250, 27,175,115,221,101, 66,136, -239,241,189, 91,102,158, 62,180,109, 16,203, 50, 62, 4, 0,151, 39,120,162,211,106,207,168,149,242,245,166,110, 42,189,122, 74, - 24,102,124,251, 27, 54,125, 49, 4,159,197,238,199,207,139, 38, 99,222,218, 61,248,230,139, 25, 88,185,241,223,248,106,198, 56, -140,122,239,125,150, 18,206,159,166, 62, 7,151,203, 61,189,101,203,150,137,147, 39, 79,174, 91,180, 64, 41,125,169, 99,215,233, -116, 74,150,101,177,121,243,102, 22,192,233,166,244,189, 92, 71,132, 54,229, 47,101,106, 29,201,229,242, 15,194,194,194,182, 3, - 16, 81, 74, 31,151,150,150,254,139, 82, 90,183, 53, 84,101,101,229, 7,225,225,225,219, 41,165, 34, 66,200, 43,215, 77,145,154, - 80, 15, 93,236,236,236,110,213, 48, 89,162,215,113,136,111,170,168,155, 48, 43, 50, 38,244, 29, 44, 12,182,213, 33,132,172,234, -214,173,155,225,166,210,247, 1,116,105,110,166, 40,165,103, 9, 33,129,139, 22, 45,154, 41, 22,139,251, 42, 20,138,118, 0, 32, -149, 74,211,212,106,245, 69,165, 82,185,190,166,223,106, 74,135,198,194,194, 34, 77,175,215, 7, 57, 57, 57, 85,175,168,173, 1, - 91, 0,112,236, 22,115,139, 82,125,215,230,230,237,228,201,147,173,236,236,236,222, 32,132,140,162,148,250, 85, 84, 84,168, 23, - 45, 90,116, 37, 46, 46,174,188,117,235,214,131, 35, 35, 35,137,189,189, 61,110,222,188, 73,139,139,139, 15, 2,152,111,202, 74, -107,150,101,179, 86,175, 94,141,230,190,239, 77, 93,215,106,181,207, 79,158, 60,233,248,102, 97, 33,143,101, 89, 12, 25, 50,228, - 37, 0, 87, 95, 30, 62,124, 8,181, 90,221,100, 48, 71,117,121, 41,250,205,156, 11,212,172,254,172,149,106, 38,139,130,106,204, -184,202, 44,255, 44, 33,255,145,229,207,205,164, 22,221,221,221,199,136,165,162,169, 94,237,220,130,243,210, 11, 83, 43,202, 21, -187,242,243,243,183, 80, 74,153,215,213,217,156,128,165,102,250,247, 63,167,243, 69, 28, 45, 6,148, 50,160, 44, 5,165, 44, 88, -150,169,222,240,154,178,160, 12, 67, 8,193,159,106, 69,249,100, 83,243, 73, 8,177,115,116,116, 92, 70, 41,125,147,203,229,114, - 12,201, 48,195,227, 26, 38,235,180, 76, 38,251,170, 62,243,250,191,177, 60, 15, 28, 56,208, 32,248, 55,117,213,225,168, 81,163, -152,102,190,155, 23,165, 82,105,131,129, 57,171,170,170,178,243,242,242,222,248,111, 40,207, 90, 54,148,154,208,161,213, 51,193, - 55,123,213,161, 49,157,173, 90,181, 18,105,181,218, 78, 0,124, 9, 33,182, 0, 74,180, 90,237, 25,153, 76, 86, 64, 8,233, 2, - 96, 81,205,109,203, 41,165,183,254, 39,223,119, 66,136,196,209,209,113, 27,135,195,241, 48,229,126,189, 94,175, 41, 41, 41,153, -104, 56, 33, 48,212,233,232,232,120,139,199,227,121,152,160,231, 89, 81, 81, 81, 23,115,255,105,214,249,127, 6, 76,213,115,130, - 55, 60,255,175, 88,237,145,151,151,183, 15,192,190,191, 83,103, 99,145,223,205,242,255, 87,170, 74,242,255, 35,245, 80, 3,154, -166,253,211,202,179, 22, 40, 53,240,251,109, 0,228, 63,240,110,246,253,223, 80, 46,244, 53,103,140, 53, 64,170,215,223,153,151, -204,204, 76, 53,128, 43, 53,159,250,255,119, 11,192,144,255,162,114, 83, 2, 24,243,119,233,107, 10, 60,153,197, 44,255, 84, 49, - 47,171, 53,139, 89,204, 98, 22,179,152,197, 44,102,249,107,114,162,222, 22, 60, 39,106, 15, 8,128, 1,141,204,116, 76,166, 4, - 9, 33, 3, 94, 99, 38,117,206,172,211,172,211,172,211,172,211,172,211,172,211,172,243,159,165,243, 31, 39,181,129, 35,255, 19, - 31, 0, 3,204, 58,205, 58,205, 58,205, 58,205, 58,205, 58,205, 58,205, 58,255, 47,127, 0,124,220,216, 57,199, 12, 53,205, 98, - 22,179,152,197, 44,102, 49,139, 89,254, 51, 98, 50,208,178,116,245,247,119,106, 21,178,221,190,101,240, 93,251,150,193,119,157, - 90,133,108,183,116,245,247,255, 39, 22, 26, 33, 68, 66, 8,121,143,207,231,159,117,115,115,147, 19, 66,102,254, 31,125, 78,107, - 66,200, 40, 66,200, 50, 66,200,112, 66,136,197,223,169,191, 15, 33,188,119, 9,153, 58,145,144,236,137,132,100,191, 75,200,212, - 62,132,252,159,243, 27, 92, 58,195, 61,236,143,211,227, 78, 45,157,225, 30,214,224,245, 57,238, 14,215,207,190,243,109,204,180, - 22,246,127, 83,189, 89,185,184,184,108,117,117,117,205,116,113,113,201,114,113,113,217, 70, 8,177, 49,119,119,102, 49,139, 89, -204,242, 31,147, 19,132,144,143,107, 63, 48,240,209,226, 1,192,137, 19, 39, 34, 0,252, 14,160, 79,100,100,100, 66,253,187,237, -189, 58, 76,246,247,107,255,197,138, 37,243,137,171,179,163,133,158, 97,181, 25,153, 57, 1,139, 87,196, 30,176,247,234,176,174, - 36,235,222,207,175, 49, 24, 16, 46,151, 59, 70, 36, 18, 69, 1,168, 5,108,247,213,106,117, 60,195, 48,251, 76, 93, 69,228,234, -234,122,137,203,229,182,106,206,127, 51, 12,147,253,252,249,243,158,175, 57,136,141,246,244,244,220, 22, 17, 17, 97,209,173, 91, - 55, 8,133, 66, 44, 90,180,104, 54,128,245,166,234,176,183,247,177,210,138,196,159,243,132,194,129, 84,167, 9,162,160, 0, 71, -148,204,234,213,231, 5,106,245,186,146,146, 39, 21, 38,230,101, 62,128, 73,168, 94,142,254, 51,165,116,245, 95,105, 37,147, 58, - 17,157,142,169,110, 19, 2, 30, 24, 27, 27,155,223, 23, 44, 88,192,139,138,138,194,207, 63,255,220,115,235,214,173, 31, 19, 66, -206, 3, 56, 70, 41,125,242, 87, 91,165, 11, 48, 37,188,103,207,111, 39,206,158,205, 85, 94,186,132,111,183,109,219, 0,185, 28, - 0, 54, 53,183, 45, 9, 4, 24,229,232,200,143,162, 20,157, 8, 64, 8,112, 71, 86,204,158,212,106,153,125,180,185,251,251,188, -172,251, 61,188,188, 28,127,119,115,117,148, 63,161, 11, 69, 67,252,123,149, 63,185,184, 16,192,224,250,215,245, 42,241, 68,202, -109, 25,165,164,137, 57, 0,214,254, 69,144,101,225,228,228,116,247,232,209,163, 30,221,186,117,227, 1,192,173, 91,183, 38, 68, - 69, 69,245, 35,132, 4, 81, 74,229,255, 67,160, 93,204,227,112,166, 10,249,252,129, 12,195,116, 0, 0, 46,151,123, 79,163,211, -157,213,179,236, 38, 83, 99,178,153,197, 44,102,249, 63,140, 84,140, 96,145,255,102, 49, 37, 50,252,239,145,145,145,228,196,137, - 19, 20,245,150,136, 91,186,248, 5, 4, 6,250,207, 62,125,120, 71,203,178,146, 50,213,119,107,118,220,174,226, 9, 21,190, 1, -190,130,239,214,175,182,155, 58, 99,214,231,150, 46,126,215, 43, 11, 30,164, 54,163,211,245,148, 72, 36,135,214,172, 89, 19,212, -183,111, 95,190,179,179, 51, 10, 10, 10,112,255,254,253,160, 11, 23, 46, 12,219,177, 99,199,108, 66,200, 8, 74,105,182, 9,234, -124,207,239,220,230, 44,181,119, 0,163,211,193, 61,184, 83, 93,160,189,199, 23,126,131, 94,171, 5,171,211,193, 63,106, 24, 0, -128,101, 89, 4, 4, 4,112, 95,167, 32, 9, 33,238,129,129,129,187, 86,173, 90, 37, 80,171,213,184,126,253, 58, 46, 94,188,200, -230,231,231,199,154,170,195,210,165, 93, 95,142, 68,186,111,204,184,143,108,222,142,106,195,247,116,113, 2, 96,129,135, 25,250, -240, 83,191, 93,232,122,120,223,175,159, 90,186,180, 27, 83, 89,144,118,177,105,176,102, 31, 74, 8, 89, 89, 27, 33,154, 16,242, - 77,235,214,173,191, 50, 76, 83,127,223, 60, 74, 41,120, 60, 94, 65, 69, 69,197,152,162,162,162,196,250, 58,117, 12,120,187,119, - 87,227,136,133, 83,223,227,254,249,231,159,210,128,128, 0, 53, 0,172, 94,189, 26,203,150, 45, 19,158, 57,115,230,173,157, 59, -119,190, 69, 8,217, 64, 41, 61,246, 87, 26,166, 0,248,114,226,236,217, 92,203,204, 76, 88, 38, 37, 97,156, 92,206,251, 26,248, -178, 57, 64,139, 16,210,198,213,149,127, 96,246,172,247,253,189,125, 66, 5, 2,129, 99,245, 38,222,154,162,118,217,217,137,163, - 98,191,222, 26, 77, 8, 25, 73, 41,125,108,162, 62, 30,128,165, 0,196, 0, 22, 2, 88, 36,147,201,124, 25,134,129,171,171,235, - 34, 66,200, 17, 0, 43,156,156,156,168, 76, 38,155, 75, 41,213, 55,197,100,201,159,208,133,207,137,247,155,237, 59, 79,196,115, -114,250,205, 89,131,221, 78, 89,251,144, 21,139,191,205,187, 10, 0,131,125,124,172,188,253,164,115, 45,173, 59,216,203,115,207, -205, 29,236,227,243,211,169, 39,166, 1,237,250, 96, 19, 0,220,221,221, 87,239,220,185,179,101,247,238,221,235,218,120,199,142, - 29,185,171, 87,175,110, 49,115,230,204, 13, 0,222, 55, 81, 95, 59, 39, 39,167, 51, 12,195,168,139,139,139,219,213,254,238, 28, - 50, 34,220,193, 74,218, 95, 86, 90,113,169, 40,229, 72,130,137,186,186,137, 5,130,131,199,118,125,235,214,177,123, 24,199,210, -209, 25,170,220, 60, 84,234,180, 3, 46, 94,190,214,231,227,169, 95,206,168,169,163, 27,230,161,198, 44,102,249, 71, 75,163, 88, -228,127,179,240, 12,144,100,131, 12,146, 72, 36,140, 94,188, 96, 46, 41, 43, 46, 83,170,228, 21, 26,157, 74,165,226, 8,168,234, - 94,234,211, 66, 14,143, 91, 54,115,198,116,171,232,121, 11,162, 1,140, 51, 21,100,133,132,132,220, 56,116,232,144,179,189,189, - 61,202,203,203, 81, 92, 92,140, 27, 55,110,128, 82,138, 17, 35, 70,136,186,119,237,218,105,225,162, 69, 87, 9, 33, 97,166,128, - 45,169,189, 35, 86,247,172,222,139,246,171,204,226,218,255,193,214,209, 81,117,105,150, 61,171,222, 45, 67, 44, 22,215,109, 72, -252, 26, 18,214,191,127,127, 1, 0,124,248,225,135,242,138,138,138, 24, 0,187, 41,165, 38,237,180,106,233,210,174,175,163,155, -123,252,143,155, 87, 75, 58,248,248, 66,171,211, 35,235,121, 30,120,124, 91,120,120, 8,240,254,184,129,252,222,225,246,142, 43, -151,111, 61, 33,117,106, 55,188, 74,150,118,166, 49, 93,182,182,182, 59,246,237,219,135,253,251,247, 3, 0,210,210,210,224,235, -235, 43, 53,150,135,228,228,100,239,161, 67,135,238, 5,208,214, 88,218,250,129,241, 69, 34, 17,122,246,236,137,128,128, 0, 28, - 61,122,180, 15,128, 99,127,181, 1, 42, 47, 93,130,101, 82, 18,144,208,252,201, 11, 33,164, 77,231,206, 94,215, 78,158,216,229, -120,226,228,125,172, 93,187, 13, 79,158, 84, 19,109,222,222,222,120,111,236,104,254,189,123, 87, 2, 71,141,122,239, 10, 33,164, - 39,165, 52,205, 4,181, 75,127,250,233,167,249,173, 91,183,198,168, 81,163, 70, 7, 6, 6,186, 90, 91, 91, 99,203,150, 45,112, -115,115,243,214,104, 52,143,143, 30, 61,234,254,252,249,115, 76,159, 62, 29, 0,102, 55,166,168,207,160, 62, 11, 69, 67,252,123, -181,239, 60, 17,150,214,110,248,105,207, 62, 60,188,189,163,151, 90,123,127, 97,204,180, 22,227,149, 84, 52,201,195,215, 42,186, - 85,151, 8,135,182,129, 67,225,213, 57,209, 81,197,252,241,116,209, 84,239, 88,158, 88,181, 99,241,154,188,226, 87,158,121,244, - 1,110,144,252,129,125,242, 89, 20, 83,186,152,173, 1, 88,117, 29, 18, 67, 49,180,119,239,222,117, 21,151,153,153, 9,181, 90, - 13,127,127,127,142, 70,163,233,107, 98,185,182,123,227,141, 55,254, 60,121,242,164, 67,187,118,237, 94,218, 18,198,213,193,118, - 80,194,161, 13,211, 87,126,251,111, 63,231,128,225,101,133,169,135,239, 25, 3, 89, 61, 66, 59,159, 59,117,104,151, 37,169,204, -129,208,182, 8, 96,139,145,190,247, 23, 16, 11,123,140,249,100, 22,175,111,255,126, 45, 6, 14, 30,121,142, 16,210,159, 82,122, -211, 60,214,152,197, 44,255,104, 86,139,254, 95,123,166, 58,160,101,128, 34, 95, 18,150,178,193, 46,206, 14,146, 13,107,182,223, -228,106, 53, 26,169,173,141,134,111, 99,205, 18, 43, 27,174, 86,163,171,244,242,246, 18,178,148, 13,110,132, 74, 59, 87,127,214, - 45,145, 72, 14, 29, 59,118,204,153,207,231,131,101, 89, 56, 57, 57, 33, 35, 35, 3,101,101,101,168,168,168,192,147,251,247,209, -218,179, 37,150, 68,207,117,155, 62, 55,250, 16, 33,164,139,161, 25,177,161,101,163,140, 78, 91,191,115,111,108, 19,225,151,190, -155,210,217,136,100,100,103,103,195,210,210, 18, 65, 65, 65,150,151, 47, 95,254,163, 49,144, 85, 95,167,189,189,143, 21,207, 82, -178,255,135, 31, 23, 73,180,186,100,164,166,151,160,125,235, 94,112,113,240, 68, 94,137, 6,215,110, 28, 67,242,221,221,240,105, -225,137,105,159,244, 19,199,174, 62,176,207,206,174,141,103,105,233, 83,121, 67, 58,229,114,185,101,155, 54,109,224,233, 89,189, -239, 25,195, 48, 72, 77, 77, 5,195, 48,117,231,134,223,219, 15, 94,128, 94,158,133,137, 19, 38,160,184,184,216,178, 33,157,124, - 46,244,179, 62,126,143, 39,225, 3, 66,169,189,166,178,178,178,142, 29,212,106,181,184,115,231, 14,194,194,194, 34,226,226,226, - 18,140, 80,168, 38,149,167, 22,248,230,219, 95,127,221, 56,174,188,156, 3, 0, 63, 19,194,106, 41,253,198,212,182,228,236,204, - 63,120,250,212, 78, 71, 46,231, 1,236,109,190,198,141, 27, 89,208,106,171,243, 91, 92, 92,136,207,166,202, 33,224, 91,225,232, -209,127, 59,248,251,247, 60, 88, 99, 58, 99,141,228, 83,124,234,212, 41,124,246,217,103, 72, 77, 77,117,231,114,185,184,126,253, - 58, 36, 18, 9,214,172, 89,195,245,247,247,119,151, 74,165, 56,125,250, 52, 10, 10, 10, 72, 83,249,252,253,204,239, 43,202,159, - 92, 92,248,156,156,126,243,167, 61,251,240,209,216, 49,112,165,233,127,216,248,144, 21,111, 12,233,241, 21,229,182,140,146, 90, - 5,219,249, 6, 13,129, 64,104,137,105, 95, 46, 67, 90,242,113, 59, 69,197,221,169,132,201,105,137,154,189,255, 94,218, 84, 57, -110, 20,179,113,207,149,206,103, 61,111,122,185,119,158,114, 29,192,221, 23, 64,203,155, 71, 56,140, 77, 45,123,249,248,241, 99, - 60,121,242, 4, 60, 30, 15, 74,165, 18,122,189,190,193,124,182,104,209, 98,138, 94,175,255,170,166,158,183,187,185,185,125,176, -107,215, 46, 7, 67,160, 93,203,100,149,148,201, 75,175,220, 76,121, 56,107,202,168, 62,151,174, 37,231,216,134, 12,203, 46, 75, - 58, 82,222, 72, 29,137, 37, 66,225,193,211,135,255,109,169,123,122, 1, 82,255, 62,224, 91,250,130,209,229, 66, 81, 90,133,138, - 39,249, 80,255,248, 61, 58, 78,157,137,227, 71, 14, 88, 6,118,232, 18, 71, 8,241,165,148,106, 94,227,221,108, 14,197,111,214, -105,214,105,214,249, 95,168,179, 41, 44, 2,160, 51, 0,151,154,227, 98, 84,187,204, 56, 2, 40, 66,245,118, 96, 46, 0, 52, 0, -132, 6,247,212, 63, 55, 76, 91,255,220,240,184,184,230,216,185,230,251, 38,128, 18, 35,147, 74, 55, 0,145,168,246,205,138,172, - 41, 35,211, 34,195, 19,194,145, 51, 12, 43, 18, 56, 57,171, 62,124,167,127,135,223,206,221,186, 99,225,104,205, 27,212,167, 83, -196,141,123, 79,175, 18, 14,209, 17,194, 49,201,239,131,203,229,142,217,176, 97, 67, 7,107,107,107,176, 44, 11, 27, 27, 27,200, -100, 50,104, 52, 26,148,151,151, 67, 93, 33,135,182, 66,142,164,156, 76,244,136,232,131,145,111,190,225,255,239, 35,199,198, 0, -216,219,148, 94,247,224, 78,117, 76,214,178, 86, 14, 47,168,137,156,178, 58,208,245,117, 39, 95, 8, 44, 45, 49,112, 86,244, 95, -105, 88,137, 66,161,240,212,136, 17, 35, 6,207,153, 51,135,147,159,159,127,154, 16,210,131, 82,106,212,108,170, 21,137, 63,255, -244,243, 40, 59, 59, 75,138,184,179,199,208,187,211, 88, 88, 8,185, 40,150,107, 65, 8,112, 63,229, 16, 8,177,199,221,180,124, -244,234,104,141, 55, 6,249, 91, 30, 57,112,127, 14, 94,248, 7,189, 82, 53,165,165,165, 40, 44, 44,132, 78,167,131, 78,167,195, -168,209,163,177,115,199, 14, 84, 85, 85, 65,169, 84, 66,163,209,128, 97, 24,112, 56, 28,156,141,143, 67,206,211,251, 8, 15, 11, - 67, 99,148,236,246, 68,202, 39,132, 92,123,248,240, 33,238,223,191,143,103,207,158, 65, 44, 22,195,213,213, 21,203,150, 45,131, - 90, 93,189, 71,217,232,209,163, 35, 0,220,251,171, 47,212, 19, 96,107, 6,195, 44, 28,124,248,176,243,229,195,135,217,107,199, -143, 63, 19, 85, 84,108, 49,229, 94,129, 0,163, 86,127,243, 73,123,169, 84,138,103,217, 27,224,231, 39,192,236,153, 14,136,249, -186, 8, 0, 48,253, 51, 15,116,237,226, 8,121,217, 1, 56, 58,207,199,198,141, 51,124, 38, 77, 90, 55, 1,192,118, 35,170, 23, - 30, 59,118,108,164,175,175,111,139,196,196, 68, 34, 20, 10, 33,145, 72, 32,145, 72, 32, 22,139, 81, 88, 88,136,140,140, 12,186, -122,245,234, 92, 84,155, 22, 27,149, 26,243,224,224, 89,131,221, 78, 61,188,189,163, 87, 11,238,211,164,145,211,122,102,222,189, -150, 88,241,219,217,203,203,245, 42,113, 78,217,179,115,115,219,116, 77,116,156,250,197, 82,124,191,122, 49, 30, 94,191, 84,226, -226, 41,223, 36, 33,234,237,221, 7, 54,192,146,245, 89,202,155,186,232, 29,253,148, 73, 35,109,143,187, 92,153,114,146, 71,100, -207,139,110,175, 65, 70,162, 82,212,182,211,248,118,222, 28,205,133, 11, 23, 36,189,123,247,134, 74,165,170, 99, 38,119,237,218, -197,234,245,250, 6,205,209, 90,173,246,171,220,220, 92, 55,165, 82,137, 55,223,124,115,250,154, 53,107,164,181,123,212, 49, 12, -243, 18,147,181, 98,253,206, 51,159,127,181,233,226,153,189, 95,187,175,136,254,160,207,184,105, 43, 47,162,145,125, 36,121, 28, -206,212,227,135,183,185,138,237,116,144,216,191, 1, 85,129, 18, 15,183,126, 4,133, 92,133,174, 43,150, 2, 16, 66,163,227, 96, -203,144, 81,224, 59,184, 99,241,228, 15,220, 23,108,249,233, 19, 0, 27,204,243,122,179,152,197, 44,245,196,133, 16, 18, 15, 0, -209,209,209,243, 99, 98, 98, 82, 8, 33,241,148,210,168, 26,160, 19, 79, 41,141,170, 77, 83, 51,102,191,114, 94,155,182,254,121, -253,227,121,243,230, 5,198,198,198,174, 10, 11, 11,219,123,229,202,149,167,198,128, 22,170,247,127,222, 90,127, 43, 30,160,102, -213, 97,100,100, 36, 49,252,126,137,209, 98,217, 75,143,159,102, 42,222, 24,208,221, 35, 62,225,222,205,247,223,143,236, 63,102, - 72,239, 65, 25,217,197,247,125,188, 92, 29, 83, 82,238, 89,179, 44,123,201,148, 82, 18,137, 68, 81,253,250,245,227,149,150,150, -194,194,194, 2, 50,153, 12,185,185,185,208,106,181, 80,149,151, 65, 93, 94, 6, 85, 89, 41,180,229,165,120,114,235, 6,130,125, -188, 69, 53,206,242,198, 0, 80,131, 76,149, 33,179, 37,180,178,130,200,202, 10,164,153,102, 67, 66,200,219,118,118,118,215, 8, - 33, 11,107, 6,165,169,115,231,206, 45, 98, 89, 22, 43, 87,174,180,182,180,180,140, 35,132,136,140,233,177,114,226, 70,133,117, - 12,226, 60,200,184,139,158, 33, 19,209,174,205, 91,200, 40, 80,162,168, 66,139,194, 50, 45,186,246,254, 14,173, 66,150,162,101, -199, 24,220,207, 42,129,123, 11, 95, 14,120,162, 38, 55,127,206,201,201,121,233,124,239,158, 61, 80, 40, 20,240,241,241,193,216, -177, 99, 49,119,238, 92,140, 29, 59, 22,238,238,238, 24,247,206, 80, 44, 94,188, 24,207,159, 63, 55,150, 85,117,187,118,237,212, - 94, 94, 94,106, 47, 47, 47,181, 86,171, 69,101,101, 37,202,202,202,234,151,247,140,102,191, 37, 46, 46,243,220,220,220,238,186, -184,184,164,136,197,226,147,119, 8,121,160,242,242,114,233, 49,108, 24, 9,120,231, 29,110,150, 68, 66, 18, 0, 75, 83,116, 57, -218,243, 35,251,246, 27, 44, 44, 43,221, 6,160,154,164,250,224,125, 39,252,153, 16,136,203,127,116,193,103, 83,125, 64, 56, 98, - 16,142, 16,138,170, 11,232,222, 45, 76, 96,107, 75,162,140,212,245,123, 0,238,244,232,209,195,125,218,180,105, 68, 36, 18, 97, -250,244,233,218,201,147, 39, 63, 26, 59,118,236,163,243,231,207, 51, 94, 94, 94,104,217,178, 37,105,217,178,165, 27,128, 59, 53, -247, 52, 41,214, 62,100,133, 90,123,255, 15, 91, 95,233, 83, 6,142,225,149, 58,209,168,197,107,242,138,151,111, 74, 95,155,241, - 80,225,253,240,250,165,226, 71,201,199,217,140,155,191, 23,229, 61,170,240, 94,190, 41,125,237,188,239,115, 27,124,169, 19, 18, -192, 30,138, 79,208, 42,170, 20,188, 97, 67,250, 42,166,124, 56,166,157,189,101,224, 46,180,120, 35,164,149,167,199,184,197,171, - 54,106, 39,127,242,185,246,231, 95,182,209,138,138, 10,200,229,114,108,220,184, 81,127,252,248,241, 92,134, 97, 62,111,108, 14, - 4, 0, 58,157, 14, 83,166, 76,145, 90, 91, 91, 35, 39, 39,167,142, 17, 5,128,124, 89,241,189,203, 55,147, 31,204,250,215,232, -136, 42,181, 90,125,230,247, 91,247, 3,124,189, 60, 8,161,141, 46, 68, 17,242,249, 3,187,116,239,206,165,180, 12,132,231,137, - 39, 59, 86, 67,254,188, 4,242,194, 18,112,249, 82,232, 33,130,142, 21,194, 54,184, 27,210,110, 38,162,133,147, 11, 79,196,231, -155,183,206, 50,139, 89,254,161,210, 20, 22, 49, 4, 75,177,177,177,171,154,186,110,240,173,169,119, 94, 7,164,234,131, 48,195, - 99, 0,136,141,141, 93, 69, 41,141,186,114,229,202, 30, 0, 74, 19,241,194,199,181,223,134, 81,226,141,162, 14,174, 74, 19, 51, -103,238, 66,216,217, 72,108,186,117,242,117, 61,122, 58,225,214,165, 43,183,238,183,106,233,232, 68,117, 26,187,111,214,125,239, - 65, 20, 74, 83,157,193,253, 29, 29, 29,161,213,106,241,248,241, 99, 60,123,246, 12, 90,173, 22,250,170, 42,168,203,202,160, 42, - 45, 5, 83, 85, 1, 1,195, 64, 41, 43,132,131,133, 24,120,177, 34,209,216, 3, 54, 8,180,106,191,197,214,214, 16, 89, 89,131, -195,231, 55,104, 86,108, 68,103,231,110,221,186,237, 79, 78, 78,238, 62, 96,192,128,229,132, 16, 27, 74,105, 86,110,110,110,255, - 69,139, 22,169, 93, 92, 92, 48,101,202,148,246, 0, 38, 26, 5,153, 66,141,191,151,107,123,180,243,158,136, 86, 45,251,161,172, - 74, 7,153, 92,135,194, 50, 45,182,124, 23,134,131, 63,119,195,159, 7,123, 33,249,204, 64,148,233, 92, 97,233,254, 54, 40,163, - 9,108, 74,231,217,179,103,177,108,217, 50, 44, 95,190, 28, 43, 87,174,196,242,229,203,145,155,155,139,160,160, 32,100,103,103, -227,212,169, 83,200,207,207,135,163,163, 35,110,220,184,129,245,235,215,227,207, 63,255, 52,133,185, 51, 41, 13, 33,164, 89,182, -116,189, 94, 63, 41,127,216,176, 14, 5,246,246, 1,157, 58,117, 26, 60,125,250,116,239, 30, 61,122,212, 93,247,246,246,246,148, - 72, 36,207, 9, 33, 63, 19, 66, 58, 54,165,139, 5, 58, 57, 57, 5, 65,163,126, 80, 83, 87,124, 16, 34, 70,191,129,247,209,163, -215, 45,104,117, 2,112,136, 8, 28,142, 24,122,125, 49,236,236,220, 65, 41, 9, 50,146,197, 69, 50,153,204,247,220,185,115,156, -140,140, 12,136,197, 98, 0,200, 92,178,100,201,247,107,215,174, 77,117,112,112, 96,226,227,227,113,228,200, 17, 68, 69, 69,113, - 39, 79,158,236,219,178,101,203,205,198,158,123,241,183,121, 87,119,175, 59,245, 46, 95,103,215, 81, 44,105,213, 26, 85,150,111, - 79,237,227, 36, 5,128, 83, 79,158, 84, 56,123,202, 99,171, 42,238,102,219,122, 84,126,109,204, 17,158,210,197,236,237, 71, 15, -174,237, 62,124,186,188,176,160,148,223,169, 67,160, 50,102,217, 23,130, 86,173,219,126,179,120,238,191, 92,115,229,226,178,129, -211, 79, 61, 56,116,250, 70,229,248,247, 63,210,127,248,241, 52,213,169,211,103, 15,179, 44,219,161,177, 21,135, 44,203, 34, 63, - 63, 31, 41, 41, 41, 72, 79, 79,135, 76, 38, 67, 81, 81, 17, 42, 42, 42,234,204,141, 22, 21,242, 19,223,255,122, 60, 73, 42,145, - 88,116,239,224,235,121, 61, 49,181, 80, 42,145, 88,248,182,246,108, 71,200,210, 6,251, 17,134, 97, 58,136, 45, 36, 0, 8,202, -146, 47,161,178,180, 18,149,101,149,168, 40,169,132, 90,203,133, 74,205,129, 82,195,129, 87,196, 27,168,172, 82,161,178,184, 28, - 44,195,132,152,135, 27,179,152,197, 44, 77,140,203,241,209,209,209,243, 77, 76,110,178,121,179, 62,240,138,142,142,158, 79, 8, -137,159, 55,111, 94, 32, 76,240,105,166,148,110,173,255,169,189,102, 52,188, 67, 81, 81, 90,165,181, 83,192,136,153, 95,126,117, -106,207, 47,223, 57,171,213,138,108, 7, 59, 75,198,210, 66,232,248,225,148,149,168,168, 44, 29, 94, 89, 98,250, 42,169,210,210, - 82, 60,125,250, 20, 18,137, 4, 2, 62, 31,140, 82, 9, 70, 89, 5,101,105, 49, 56, 90, 53, 4, 12, 3,123, 11, 9,188,220, 93, -209,202,197,213, 36,157,143, 47,252, 86,231,248,110,104, 46, 92,221,205, 31, 66,169, 37,132, 86,150,248, 52,254,119, 0,128, 64, - 32, 0, 22, 45, 55,165, 50, 29, 91,180,104,113,108,247,238,221, 2,153, 76,134, 59,119,238, 36, 81, 74,203, 9, 33, 86, 0,216, -251,247,239,159, 75, 78, 78,142,242,245,245, 5, 0, 31, 99,250,228, 69, 28, 70,167,167,200,121,158,137,140,103,137,176,183,105, - 3,190, 69, 59, 20,150,105, 33,146,180,129, 78,253,194,250,168,146,103, 65,169, 53,109, 97,164, 70,163,129, 94,175,135, 94,175, -135, 70,163,193,199, 31,127,140,203, 87,174, 96,239,145,243,120,250, 36, 13,237, 91,187, 98,194,132,241,232,214,173, 27,174, 92, -185,210,164,174, 73,157,136,110, 65,111,240,214, 13,230, 64,104,233,160, 14,157,123,230,186, 41, 96,139, 82, 74, 76, 40,207,181, - 81, 81, 81,109,211,170,170,144,242,224, 1, 6, 44, 89, 2, 0, 56,121,242,228, 75,207, 50,107,214, 44, 97,106,106,234,135,183, -110,221,250,144, 16,178,142, 82,218,176,179, 57, 5, 78,156,184,138,127,253, 43, 21, 50, 89,181,191,246,190, 61, 47,112,105,198, - 83, 45,222,140,172,182,104,217,218,218, 98,221,186, 32,147,202,147, 97, 24,108,221,186,181,206, 92, 8, 0, 60, 30,175,199,172, - 89,179, 70, 52,148,190,109,219,182, 2, 99, 58,103,141,246, 16,223,201,146, 76,130,163,223,136, 0, 0, 32, 0, 73, 68, 65, 84, -181,105,219, 42,208,218, 49, 24,197,186,196,160,196,220,252,207,102,141,246,216,176, 46,238,153, 74, 66,212,219, 9,147,211,146, - 39, 86,237, 48, 37,143, 79, 78,109,212,216,182,122,127,199,115,153,124,193,180,143,222,115,176,182,117,174,250,249,251, 24, 59, - 14,151, 67,143,221,210,150, 5,122, 59,216,190, 29,250,109,229,191,102, 46, 74,212,232,115,166, 33,231, 88, 90, 83, 33, 46, 24, -134, 65, 94, 94, 30,100, 50, 25,178,179,179, 81, 84, 84, 84,243,238, 23,189,178,114,181,153, 29, 34,148,217,217,200, 58,252, 51, - 90,141, 31,143,174,203,151,129, 97,121, 80, 42, 24,172, 11,239,143,210,114, 37,212, 44,129,123,231,112,124,116,242, 15,112, 40, - 3,108,217,100, 30, 73,204, 98,150,127,168,152, 18,222,161, 22, 16,197,196,196, 68,253,221,255,111, 8,182, 98, 98, 98, 82, 98, - 98, 98, 76,254,175,250, 38, 67,195,115,163,225, 29, 0, 64, 46, 75, 77,119,240, 10,206,171, 82, 86, 89,184, 56, 59,169, 45,196, - 34,182, 92, 94,193, 77,188,151,164,173,204,127,252,176, 25,207,113, 63, 57, 57, 57, 40, 47, 47, 15,217, 89, 89,208, 43,171,192, - 81,107, 64, 85, 10, 12,232, 25, 14, 49, 0, 49,135, 64,192,106,193,227, 10, 81, 81, 41, 7,128,251, 70, 7, 71,157,238, 21,102, -139, 16, 2,161,149, 21,132, 82, 41,132,150, 86, 47, 49, 92,166, 48, 54, 34,145,104,119, 92, 92,156, 91,139, 22, 45,176,108,217, - 50,120,120,120,248,117,232,208, 65,209,171, 87, 47,137,139,139, 11, 2, 2, 2, 16, 30, 30,142, 83,167, 78, 1,128,209,152, 82, - 58,189,248,238,195, 76,244, 40, 42,185,130, 63,126,255, 17, 26,165, 26,157, 34,126,132,150,215, 10, 78,129, 75,193, 62,222, 5, -197,243,163,213,236,129,235, 16, 60,203,206, 4,225, 10, 83, 76,101,158,106,143,147,146,146,176,231,104, 2,220,188,252,145,253, -232, 1, 30, 92, 60,135,203, 78, 14,240,242, 15,168, 51, 3, 53,154, 71, 6,188, 21,155,234,194, 59,136, 74, 74, 74, 68,246,246, -246,234,218,178,115,115,115,251, 43, 96,235,189, 57,115,230,160,140,207, 7, 34, 35, 33, 72, 79,135, 86,171, 69,104,104, 40,186, -118,237, 10, 0, 8, 13, 13, 5,143,199, 67,112,112, 48,220,221,221,177,105,211,166,247,208,200,170, 62, 14,193, 29,189,190,216, -207,219,219,187, 14,104,237,216, 41, 67,226,173,129, 32, 16, 98,227,247, 47,162, 57,120,122,122,226,121,126, 58, 8,161,201, 70, -242,184,220,213,213,117,145,155,155,155,247,218,181,107,185, 98,177, 24,159,124,242, 73,155,202,202,202, 86, 53, 84, 50,230,205, -155, 87,205, 82, 45, 94,140, 37, 75,150, 64,173, 86, 43, 26, 83,182,115,125,176,123, 97, 9,251,161,139,107,139,225,125, 29, 91, -117,232, 55,104, 0,218,248,246, 67,191, 65,217, 0,176,202,158,151,249,206,234,133, 65,135, 29, 91,218,111,251,237,244,217,197, - 61, 35,250, 45,136,158, 98,183, 34,118, 75,169, 81,159,199,242,172,237, 21, 15,133, 99,214,127,183,121,231,250,175,230,205, 16, -103,203, 52,165,185,165,180,210, 82,196,179,244,113, 33,150,159,125,185,252,105, 94, 94,250,108,228,156, 54,186,210,146,101, 89, -164,167,167,215,249,244,169, 84, 42, 84, 85, 85, 33, 39, 39,167,174,205, 40,165,214,111, 78,123,127, 72, 72,149, 82,169,184,126, -239, 81,246,194,233,227,194,170,148, 74,197,163,140,236, 52, 74,191,109, 16,141,113, 56,156,123,138, 10,197, 0, 69,153, 10,178, - 59, 15,225,209,223, 11, 58, 61,129, 70,207, 64, 86, 92, 1,181, 30, 96, 56,124, 4,190, 51, 1, 12,225,161, 40, 47, 23, 28, 46, - 55,201, 60,220,152,197, 44,255, 88, 49, 26,222,129, 16, 18, 31, 22, 22,182,215,144,117,170, 61, 6,160, 6,208,148, 43,143,204, - 16, 76,213,154, 19, 27,251,159,122,122, 77,157, 96,190,226,163,101, 52,188, 67,205,141, 36,164,131,151,251,234,197,227, 60, 88, -189,190,125, 97, 81,129,158,199, 19,241, 91,218, 40,243,155, 83,130,106,181, 58,254,220,185,115,195, 6, 14, 28, 40,122,116, 47, - 9,154,242,114,104,202,203,192,103,245,176,151,116, 1, 71,171, 6,209,104,208,194,143,133,170, 66,130,132,203,201, 58,181, 90, - 29,111, 42,208,226,112,185, 47,251,101, 89, 90, 66,100,101, 13,145,165,101,125,211, 34, 49, 82, 80, 22, 67,135, 14,237, 31, 26, - 26, 10, 74, 41,182,110,221, 10,173, 86, 43,212,106,181,208,104, 52,208,106,181,144,203,229,216,185,115, 39,126,248,225,135,203, - 0,126, 53, 58,152,233, 53,231,206,156,189,208,237,131,113, 81,252,147,241,235,160,215, 48, 80, 18, 15, 84, 85,233, 80,169,177, - 0,227, 48, 30, 40, 56, 1, 46, 79,140,176,224, 54, 56,122,224,144, 22,122,245,121, 19, 81,248, 75,172, 80, 78,118, 38,158, 61, - 73,131,165,252, 57,156,172, 45,160, 72, 79, 67,167, 9, 19, 95,139,157,104,217,178, 37, 88,150, 69,223,190,125,235,156,171, 95, - 23,108, 21, 23, 23,227,248,241,227, 8, 13, 13, 69, 68, 68, 4,114,115,115,145,158,158,142,183,222,122,171, 46, 77, 82, 82, 18, - 18, 19, 19,225,227,211, 52, 73, 88, 84,162, 59,249, 44,231,206,232,183,223,126, 91,112,237,218, 53, 80, 74,225,235,107, 13,107, - 43, 41, 8, 71, 4,127,127,103, 0,213,115,128, 62,125,250, 64, 46, 79,215,151,150,210,147, 70,202,113, 55, 33,228,136, 70,163, -121,220,187,119,111,247, 39, 79,158, 96,230,204,153,188,125,251,246,213, 82,201,136,142,126,121, 49,133, 82,217,184,233,190,125, - 7,191, 47,218,232,237, 34,196,146, 86,173,173, 29,131,209,198,183, 31, 0, 96, 96,212, 7,104,211,214, 19,242,162,187,173, 85, -202,204,225, 2, 94,169,221,221,141,185,169,146,200,160,247, 85,133,191, 63, 2, 96, 74, 0, 96,170,124,180,175, 32,155, 63,126, -255,145, 99,167,166,188, 21, 53,148,175, 99,244,250, 32, 47,190,109,220,225, 19,133,185, 89,217,223, 34,251,116,242, 11,254,175, - 73, 22,143,145,203,229,144, 74,165, 72, 78, 78, 86, 71, 70, 70,138, 56, 28, 14, 30, 63,126, 92, 7,180,156, 29,237, 3,122,116, - 13,242, 91,177,126,231, 25,169, 72, 36, 26,212,167,139,127,234,163,172,103,148,146,204, 70,217, 86,157,238,236,189, 59, 73,125, -157,220,219,114,211,127,191, 6,135, 94,111, 65,173,230, 64,169, 97,161,214, 3,122,174, 0,110, 29,187,195,214,199, 31, 20,192, -205,107,151,117,106,157,238,140,121,172, 49,139, 89,254,209,172, 22,109, 10, 36,213, 28,151, 0,200,140,137,137, 41, 50, 96,155, -100, 0,146, 0,132,212,164,147,213,187, 79,134,234,213,131, 93, 13,244,200, 12, 0,151,225,177,166, 94, 26,147, 38,128,134, 62, - 90, 13, 2,173, 38,150, 84,194,209,209,209,185, 83,167, 46, 62, 63,253,178, 31,148, 82, 60, 76, 92,131,210,194, 7, 88,180,234, -170,143,135,135, 71,196,179,103,207, 18, 76,201, 4,195, 48,251,182,109,219, 54,187,123,231, 78,157, 90,123,120, 32, 41, 51, 3, - 2,202, 64,192, 48,224,104,213,224, 49, 26,120, 4, 49,224, 16, 75,228,229,149, 35,118,247,254,100,134, 97,246, 25,211,235,247, -214, 80, 44,123, 86, 14, 66, 8,214,134, 5, 65,104,101, 9,129,212, 18,159, 30,187, 80, 7,174,226,151,205,131,208,210, 18, 62, -221,141, 7,132,167,148, 42,172,172,172,110,221,187,119,175,107, 80, 80, 16,102,207,158,141,204,204, 76,176, 44,139,130,130, 2, - 85,126,126,126,174, 76, 38,203, 4,112, 24,192, 79,166, 68, 30, 23,168, 85, 27,226, 15,238,152, 22,214, 51,194,241,237,225, 63, -224,200,129, 89, 40, 43,151, 67,161,151,160, 74,165, 71,149,154, 11,123,135, 14,232, 30, 28,140,188,220, 66,164, 92, 59, 83,201, - 83, 43,214, 52,167,129, 18, 66,144,152,152, 8,111,119, 43,164,253,145, 0, 71, 11, 62, 66,220, 93,225,222,163,103, 93,124,169, -166,132,207,133,254,189,247,222,171,139, 12,255,198, 27,111,100,140, 31, 63,222,109,214,172, 89,248,229,151, 95,112,249,242,229, - 87, 28,180, 35, 34, 34,112,233,210,165,165, 0, 22, 27, 35,245, 52, 26, 13,252,252,252,112,243,230, 77,156, 59,119, 14,253,250, -245, 67, 68, 68, 4,238,222,189,139,223,126,251, 13,137,137,137, 32,132,192,193,193, 1,186,106,240,172,107, 76,153, 86,139,184, -175,191,217, 54,127,253,250, 31, 2,199,141, 27,135,131, 7,247,226,131,247,219,131,112, 68, 32, 68,132,161, 67,218, 99,217,242, -155,232,222,189, 15, 28, 29,249, 88,191,238,232, 83,165,146,217,105, 66, 49,174,248,237,183,223,220, 85, 42, 21,202,202,202,168, -165,165, 37, 41, 46,174, 94,209,218, 16,163,165, 80, 40,196,141, 41,186,119,251,254,154,178, 10, 90, 74, 43, 19,135,151,232, 19, - 59,244, 27,148,131,129, 81,239,227,108,252,175,184,112,230, 28,236,121,153, 25,144, 86,156, 42,202, 40,146,231, 87,249,110,246, -239, 60,153,251,172,234,204,230,233,111,219,113,221,220,216,184,232, 31,202,203,154,104,163,148, 16, 66, 74, 82,119, 29, 59, 76, - 49, 52, 60,172,123,219, 32, 79, 55, 97,105, 81, 33, 61,112,244, 84,178, 54,227,224,241, 90,128,101,108,151, 5, 74,233,178,232, -232,232,175,106,142,183, 47, 92,184,112,114,108,108,172,211,243,231,207,235,124,180, 10,139, 74, 46,132, 71,126,198, 20,151,149, -107,182,173,255,114,148, 68, 44, 18, 46,140,221,246,187,142,139,107,141,233,213,179,236,166,119,102, 46,154,241,232, 97, 98,139, - 86, 18, 33,142,126,185, 24, 73,191, 93,132,142, 35,192,191,206, 93,135, 90,203,160,172,168, 24,231, 63,156, 10, 75, 23, 59,252, -240,251,193, 2,150,101,127, 52, 15, 53,102, 49,203, 63, 87,154,192, 34, 13,197,216, 43, 48, 33,221, 77, 19,244,252,101,169,207, - 98, 25,138, 73, 75,240,138,138,138, 10, 47, 93,186,142,223,227, 87, 32, 33,126, 5, 82, 18,147,144,151,171, 65,110,129, 10,214, -214,214, 87,155, 24,248, 7,212, 31, 28, 20, 10,197,136,133,139,190,122, 46,150, 88,160,119,255,254,112,117,114,134,133,128, 15, -174,158, 5,151,240, 81, 41,179, 69,218, 93, 5,230,110,219, 85, 88,169, 80,140,168, 63, 72,212,215,105, 8, 50, 8, 33, 16, 89, - 91, 65,104,105, 5,145,149,245, 75,102, 68,177,181, 53,196, 86,214,224, 9,133, 13, 57,205,191,162,179,178,178,114,228,168, 81, -163, 74,203,203,203, 49,121,242,100, 36, 36, 36, 36,158, 57,115,198, 58, 41, 41, 73, 82, 88, 88,216,150, 82,250, 6,165,116, 75, - 99, 32,171,190,206,146,146, 39, 21, 84,175, 30, 19,243,213,231, 74,149,222, 1,163, 39,238,131,148,147, 3, 61,195,130, 2,112, -183, 23,162,199,128,229, 40,212,132, 99,223,230,149, 10, 86,171, 26,103, 24, 67,171,190, 78, 74, 41,117,113,113,121,165, 12,206, -157, 59,135,209,163, 70, 98,208,240, 97,112,106,237, 13,231, 1,111, 97,208,228,127, 97,243,230,205,224,112, 56,112,116,116,124, -137,225, 48,212,185, 61,145,242,119,223,165,100,247, 93, 74,126,189, 77,121, 0, 38,236,218,181,235,235,144,144,144,139,151, 47, - 95, 94, 3, 96,140,225,127, 25,228,101,137, 33,155,213, 72, 29, 45,152, 49, 99,134,242,209,163, 71,144, 74,165,208,235,245,184, -124,249, 50,126,248,225, 7,172, 93,187, 22,137,137,137,112,112,112,128,143,143, 15,212,106, 53,110,222,188,169, 4,176,160,137, -182,196,202,100,250,145, 27, 55,198, 22, 71, 69,245,194,182,109,223,195,213, 53, 28,124,158, 43,120,124, 39, 72, 45,253,240,243, - 79, 95, 99,240,224, 78, 56,118,116,127, 73, 81,177,126,100,253, 40,238,141,228, 83,117,253,250,117,108,222,188, 25,163, 70,141, -202, 29, 61,122, 52, 83, 94, 94, 94,199,104,213,238,198,190,164,198,199, 76,173, 86,139, 26,211, 57,249,203,123,185, 95,172, 72, - 94, 86,240, 60, 55, 52,225,226,213,247, 46,156, 57,135,167,143, 46,224,194,153,115,248,227,194,149,232,130,231,185,161,157,186, -181, 19,140,152, 60,237,139, 29,135, 14,114, 45,173,221,176,227,208, 65,238,216,207, 62, 95,217,101, 80,191, 5,198,218,124, 77, - 61,210,202,194,130,121,171,214,124, 87,169,215,170, 56,171,191,221,148,167,148,229, 47, 64,237, 82,204, 70,216, 44, 67,157, 10, -133, 98,139, 82,169,116, 87, 42,149,238, 42,149,106, 65,102,102,102,239,217,179,103,203, 24,134,169, 99, 75, 11, 83,142, 94,189, -255,199,175,171,156, 29,237, 36,225, 93, 3,219,175,219,114,224,247,236,156,130,127,215,198,208,106,164,142, 84,149, 74,213,200, - 97, 35,198, 87,149,149,170, 17,246,121, 52, 88,177, 37,212, 12,160,163, 92,232, 9, 15,247, 86,172,131,196,222, 10,187, 51,110, - 43,202,117,218,145,134, 49,180,140, 60,251,107,139, 89,167, 89,167, 89,231,127,167,206,255,205, 66, 8,113, 51,220,235,176, 38, -174,214, 11, 70,203,216,146,202, 22, 45, 90,244,126,123,232, 0,244,137, 90, 8, 74, 41, 30,220,254, 6,165,178,135,104,225, 42, - 66,122,182, 60, 12, 64,130,169,153,161,148,102, 19, 66, 66,103, 44, 88,120,104,244, 27,253,253,131, 90,183, 22,181,106,229, 5, -169,179, 51,138,138,100,248,243, 90,170,110,229,158,184,228, 26,144,101,202, 22, 60, 96, 89,182,218,201, 29, 64,255, 25,115, 65, -184, 92,160, 38,140, 67,237,192,216,186,107, 56, 8,143, 7,134,178, 80,171,213,212,132,124, 62, 35,132,140, 28, 55,110,220,249, -248,248,120,206,160, 65,131, 58, 30, 62,124,152,253, 43, 21, 81, 89,144,118,209,210,165, 93,212,202,121, 83,246,133,246, 27,102, -237, 27,216, 69,208,165, 21, 23, 90, 29, 65, 94,110, 22,226, 15,221,208,166, 94, 63, 35,167,122,213,152, 42, 89,211, 91,240,104, -181,218,236,182,109,219,186,108,222,188,185,206, 25,158, 97, 24, 20, 21, 21,225,234,213,171,232,208,181, 59,252,223,255, 16, 50, -153, 12, 27, 55,110,132,167,167, 39,134, 12, 25,130,146,146, 18,232,245,250,108, 19,235,138, 1,112,166,230,243, 18,160,173, 33, - 84,168, 49,179,161,143,143,143, 80,165, 82,117,116,115,115,227, 18, 66, 54,104, 52,154, 73,243,230,205,115, 91,181,106, 21,218, -183,111,143,162,162, 34, 72,165, 82,248,250,250, 66, 38,147,225,198,141, 27,140, 66,161,216, 12, 96, 25,165, 84,102, 36,127,143, - 9, 33,161,211,167,127,122,232,235,216, 41,190, 42,117, 31,161,189,125, 79, 80,170,135, 76,150,137, 10,249,101,237,242,101,191, - 62, 41, 40,212,141,160,148, 62, 50,177,154, 22, 79,155, 54, 13,168,217,130, 39, 61, 61,253,142,191,191,191,111, 99,140,150, 41, -178, 46,238,153, 10,192,158,213, 51,195,103,202,139,238,250,218,243, 50, 51, 66,131,216,141,235,226,158,169,150,206,180, 93, 81, -148,153,144,150, 95,117,102,243,142, 67, 7,185, 19,135,143,100, 60, 44, 31, 69,139,157,233,129,126, 67,140,214, 15,237,216,177, - 99, 75, 66, 74,218, 20, 22, 63,188,245,193,228, 41,239,216, 8,148, 39, 67, 60,138,125, 56,158,157,196,137,137,137, 25,166,238, - 25, 90, 79,111, 26, 33,164,247,188,121,243,206, 80, 74, 95,242, 77, 40, 44, 42,185, 16, 22, 53,141,150,149,149,223, 41, 76, 61, -122,207, 4, 93, 55, 8, 33,253,131, 58,116, 58,248,245,170, 88,151, 62, 51,102,243,210, 46,254, 14, 48, 58,100, 37,252, 14, 70, -164, 97,215, 93, 57, 91, 80,174,213, 14, 55, 71,133, 55,139, 89,204,108, 86, 83, 88,228,191, 61,251,245,157,225, 81,179,247, 33, -207,148,187,159, 61,123,150,224,227,237,241, 91, 90, 90,239, 55, 60, 61,156, 0, 0,233, 25,121,200, 45, 80,255,102,170,217,176, - 1,176,213,101,215,241,147, 99, 68, 34, 81, 20,169, 9,225, 64, 95, 99, 83,105,189, 94,255,172,117,235,214,141, 92,109, 56,212, - 19,195, 48, 5, 38,230,243,119, 66,200,120, 31, 31,159,216,172,172,172, 67,148,210,170,191, 90, 19,149, 5,105, 23,237,237,125, -188,175,156, 59,248,249,181,223,227, 7, 80,189,166, 3, 0, 16,158,176, 89,155, 74, 87, 86, 86, 78,249,228,147, 79,182,240,249, -124, 79,212,248,156,213,250, 96, 49, 12,195,213,106,181, 98,134, 97,184, 0, 8,135,195,209,243,249,124,213,161, 67,135,244,122, -189, 62, 91,173, 86, 79,249, 11,244,104,179, 94,128,147, 39, 79,182,178,179,179,123,131, 16, 50,138, 82,234, 87, 81, 81,161, 94, -180,104,209,149,184,184, 56,121,235,214,173,223,140,140,140, 36,246,246,246,184,121,243, 38, 45, 46, 46, 62, 0, 96, 1,165, 52, -189, 25,249, 73, 39,132,132, 76,249,215,143,239,218,219,111,137,164, 20,255,143,189,235,142,139,234,104,187,103,238,221,190,203, -194,238,210, 23,176,128,130,136, 5, 16, 37,198, 18, 81, 19, 19,177, 71, 44,177, 71,163, 38,209, 24,163, 6,141, 53,182,196,215, -196, 18,141, 93, 99,141, 61,138,216,162,198, 22,163,198, 18, 43,138,130, 40,189,215,133,237,119,190, 63,100, 9, 33,128, 11,234, -251,198,124,123,126,191,203,101,119,239,158,157,153, 59,119,230,204, 51,207, 60, 19, 8, 10, 66, 24,220,204,207,231, 14, 23, 23, -155,183,149, 10, 70,107,249, 76, 21, 44,105,115,111,221,186,181, 9, 0,191, 50, 31,173, 26, 65, 90,116, 80, 91,146,240, 46,177, - 43,222,255,237,178, 36, 45, 0,204, 90,146,151, 15, 96,253,248,222, 42,238,238,213,245,139, 60,236, 99,167, 44,219,159,179,209, - 26,186,224,224, 96, 31,134, 97,250, 3,104,234, 34,202,107,232, 44,204, 55, 19, 66,195, 8, 97,156, 0,220, 8, 8, 8, 56, 4, - 32,169,150,247,249, 62,128,186, 21,223,207,184,125,224, 55, 0,191,213,144,235, 50, 33,164,225,167,147, 38,126, 36,228,243,223, -132,217,220,124,238, 79,187,169,109, 83,105, 27,108,176,225, 95,102,213,250,160,178,247,121,214, 18, 60,140, 75,234, 2, 0,190, -190,190,244,193,131, 7, 53,238,112, 43, 27,141,227,105,196,247, 31,159,135, 39, 43, 43, 43,228,101, 22, 28,165,116, 7,128, 29, - 47,146,179, 84, 72,125, 89,122,212, 54, 93, 55, 1,132,254, 47, 43,149,197,170,133,167,155, 48, 87,138,183,222,122,235,177,193, - 96, 56, 1, 32,145, 16,162, 0,144, 99, 48, 24,142, 25,141,198,116, 66, 72,200,183,223,126,107,137,124, 63,151, 82,122,165,150, -233,224, 0,108, 47, 61, 94,116, 30,183,171,213,234,137,142,142,142, 13,180, 90,173, 80,171,213, 10,202,143, 1, 36, 18, 73,166, -181, 92, 10, 57,249, 65,192,203,117, 84,200,201,223,132,148,202, 3,123, 75, 52,183, 26,169, 60,176,215, 90,190,107,215,174,197, - 5, 5, 5,109,101, 24,166, 62,165,212, 21,160, 14,148, 34,147, 82,154,197,227,241,146,239,220,185,147,252, 79,105,128, 74,133, -212,226,210,195, 6, 27,108,176,225, 95,133,234,124,180,120, 53, 37,139,141,141, 37,182, 34,181,161,188,216,170,238,243,132,132, - 4, 29,128, 11,165, 71,197,239, 94, 1,208,253,159,158,199,148,148,148,224, 23,193, 51,114,202,205,100, 0, 19, 66, 42,217,218, -121,214,242,156, 66, 0,147,195,122,212,140,243,250,245,235, 79, 0, 60,177,213, 68, 27,108,176,193,134,255, 29, 42,179,102, 89, -189,215,161, 13, 54,216, 96,131, 13, 54,216, 96,131, 13, 85,195, 34,170, 42,139,163, 69, 0,116,174,226, 75, 86,135,174,175,205, -234,131,103,241,219, 56,109,156, 54, 78, 27,167,141,211,198,105,227,252,247,113,254, 91, 81,153,200, 2, 0, 82,139, 69, 73, 53, -249,209,206, 47,186,192,109,156, 54, 78, 27,167,141,211,198,105,227,180,113,254,251, 56, 95,117,145, 85,137,224,180, 77, 29,218, - 96,131, 13,255,191,177,103,207, 30,171, 54, 21, 29, 48,101,125, 55, 59, 59,229,140,162,130,252,175,126, 92, 60, 98,191,229,253, -190,125,251,154,109,165,104,131, 13, 54,212,202, 25,222,199,199, 43,128, 49,115,109, 40,101, 88,202, 80, 35, 41, 40,217,249, 48, - 39,231, 47, 97, 7,234,212,169,163,224, 51,232, 78, 40,149, 17,194,153, 57,150,249, 53, 46, 46,241, 78, 13, 20,160, 80,169, 84, -126, 44, 16, 8, 58,235,245,122, 79,134, 97,146,116, 58,221,137,226,226,226, 21, 21, 3, 23,254, 47,209,168, 81,163,129,167, 79, -159, 86,180,109,219, 86, 39,145, 72, 76, 37, 37, 37,188,163, 71,143,138,222,121,231,157,188, 7, 15, 30,212,106, 69,162,135,135, - 71,199,245,235,215,123,119,233,210, 5, 13, 27, 54,212,244,239,223, 95,208,186,117,107,193,200,145, 35,227,147,147,147, 79,213, - 80, 73, 7, 16, 66,182, 16, 66, 88,142,227,134,148,174, 72,124, 25,138,157, 97, 24,102, 52, 33,164, 55,165,212,135, 16, 18, 71, - 41,221,207,113,220, 26,107,162,227, 87,194,247, 46,128,174, 12,195, 4, 3, 0,199,113,215, 0, 28,166,148,238,125,142, 52,190, - 52, 78,169, 84, 26, 4, 0,197,197,197,215, 95, 20, 39, 33, 36,168,244, 33,173, 21, 39, 33,100,184, 68, 34, 25, 5, 0, 37, 37, - 37,235, 40,165,155,106,156,152, 53,141,105,240,156, 24, 0,192,181, 89,254, 0,128, 26,189, 30,125,151,212,228,183, 42,227,171, - 17,199,223,203,160,235,160, 65,131, 22,108,219,182,109, 22,165,244,192,203,168,251,110,110, 94, 43,190, 89,182, 86, 61,225,227, -247,191,194,211, 29, 33,170, 69, 19, 66,222, 20,178,108, 15,189,217,124,238, 14,176, 27, 0, 79,165, 82, 13, 20, 10,133,237,245, -122,189, 59,143,199, 75,213,235,245,103,243,243,243,119, 80, 74,141,207,157,192, 24,162, 52, 20,195,141,112,127,238,243, 70, 25, -232, 4, 82,164,193,159,230,254, 3, 70,251, 12,158,198,219, 49, 2,216, 80,155,112, 30, 44,203, 78, 80,171,213,189, 11, 10, 10, -138, 89,150,165, 79,105,201,211, 63, 0, 24,134, 33, 28,199,101,100,103,103, 15,249,127,100, 69,169, 91, 90,174,245, 74,223,226, - 3,112, 5,112, 3,192, 4, 74,105,145, 77, 2,253,215,238, 69, 69,139, 86, 52,165, 52,181, 76,104,149, 11,119,223, 33, 60, 60, -252,140,143,143, 87, 64,223, 94,125, 22,140, 25, 61,150,176, 44,131, 91,183,111,243,222, 27, 50,252, 45,149, 74,229, 97,167,211, - 53, 6, 33, 92,177, 88,124,203,104, 52, 36,239,222,177, 77,238,223,168,145,217,108,230,176,122,205,170,119,124,124,188,166, 89, - 35,182, 8, 33,126,110,110,110, 91, 34, 35, 35,221,122,244,232,193,186,185,185, 33, 33, 33, 65,241,227,143, 63, 54,250,238,187, -239,250, 17, 66,134,148,198,242,169,105,102,219,185,169,152,183,228, 18,210, 9,133,102, 20, 26,113, 50,173, 4,199, 41,165,231, -106, 91,128,197,197,197,227,138,139,139, 67, 91,182,108, 73, 55,108,216, 64,134, 13, 27, 70, 9, 33,164,164,164,228, 7,212, 50, -244,131, 76, 38, 91,217,165, 75, 23, 95, 95, 95,223,184,135, 15, 31,118,221,181,107,215,225,161, 67,135,250,200,100,178, 88, 0, -126, 53,164,219,148,157,157, 29, 88, 82, 82, 2, 79, 79,207, 13, 0, 90,188,132, 74, 68, 88,150,221,239,225,225, 65, 23, 45, 90, -116, 32, 48, 48,208, 53, 39, 39,199, 52,121,242,228,206, 23, 47, 94,124,135, 16,210,195, 90,177, 69, 8, 81, 18, 66,214,184,185, -185, 57,125,245,213, 87, 15, 66, 66, 66,110,136, 68, 34, 97,108,108,172,116,226,196,137,159, 50, 12,211,143, 82, 58,154, 82,235, - 59, 8, 11,167,135,135,135,211,130, 5, 11, 18,130,131,131,111, 9, 4, 2, 65,108,108,172,236,243,207, 63,159, 80, 91, 78,134, - 97, 86,183,110,221, 90, 57,107,214,172,187,141, 26, 53,186,192,178,172, 48, 41, 41,137,153, 61,123,246,199, 44,203, 70,112, 28, - 55,166, 54,233,116,117,117, 85,206,158, 61,251,110,235,214,173, 47, 10, 4, 2,193,189,123,247,152,200,200,200,143,107,146, 78, - 71, 71,199, 48, 71, 71,199,181,105,105,105, 60, 0,112,119,119,111,213,160, 65,131,239,202,239,105,105,113, 13, 48, 26,141,133, - 90,173,118, 80,118,118,118,165,129,112,135, 77, 93,222, 29, 0,190, 51, 88, 94, 63, 61, 63,235, 53,176, 58,202,154,124, 7,187, - 19, 10, 0, 3, 63, 91,220,235,233,249,233,251,223,104, 0, 30,143,199,109,113, 39,244, 90,170,245, 33, 99, 8, 33, 61, 59,118, -236, 56,251,212,169, 83,171, 58,116,232,240,249,214,173, 91, 93, 18, 19, 19,191, 38,132,120, 13, 24, 48, 96,216,201,147, 39, 23, -102,102,102,238,121, 81,245, 95, 40, 16,137, 8, 67, 32, 17, 75,237,173,185,158,207, 48,221, 46,244,236, 57,106,221,189,123,193, -223,197,196,120,107,220,221, 67,199,143, 31,239,218,167, 79, 31,198,203,203, 11, 15, 30, 60,112,220,186,117,107,227,117,235,214, -245, 38,132,124, 66, 41,125,252, 60, 34, 75,147,135,102, 58, 61,130, 41,133,226,207, 50, 66,158,200,128,107,178, 24,114,243, 31, - 32,182,102,110,218,180,105,214,131, 7, 15,176,112,225, 66, 0, 88, 81,195,246,103, 98,239,222,189,195,247,237,219, 39,217,189, -123,183,164,101,203,150,112,115,115, 67,233, 96,170, 44, 48,181,183,183,247,255,171,206,221,209,209,113, 67,124,124,124,152, 76, - 38,251,203,251,113,113,113, 65,190,190,190,249, 0, 62,171,169,112,115,118,118,222,206,113,156, 46, 59, 59,251,125, 0,144,203, -229,219,100, 50,153, 50, 53, 53,117,218,203, 26,200,148, 41,147, 10, 90,228, 85,182,104, 85, 26,176,180,252,142,217,140,153,107, - 51,102,244, 88,210,127,224,128,180, 7,113,241, 28,143, 47, 28,120,244,216, 49,105, 64, 64, 0,163, 91,177, 2,166,204, 76, 24, - 63,253,244,245, 19, 39, 78, 24, 35, 6, 14, 46,225,179,100,147,143,119,125,233,206, 29, 63,186,237,219,187,167, 13,128, 59,207, -178,100,185,185,185,109, 57,125,250,180,135,183,183, 55,242,242,242,144,144,144, 0,141, 70,131,126,253,250,241,219,180,105,227, -209,183,111,223, 45,132,144,182,214, 90,182, 8, 33,174, 13, 61,121,135,190,153,217,207,239,157,183,218,200, 60,188, 26,128,166, -105,145,248, 48,166,229,161,211, 23,199,251, 42,152,251, 15,242,105, 55, 74,105,122, 77, 11, 48, 43, 43,107, 74,239,222,189,247, -134,133,133, 57,139, 68, 34,168,213,106,210,163, 71,143,140,148,148,148, 57,207, 33, 92, 80, 58, 10, 51,151, 63, 87,220, 30,200, - 74,120, 42,149, 74, 40,149, 74, 0,240,120,222,145,167, 66,161, 88, 33,151,203,251, 22, 20, 20,148, 48, 12, 67, 9, 33, 84, 38, -147, 73,148, 74,229, 31,119, 99,238,171,117, 58, 93,195,197, 75,215, 45,235,216, 46,208,254,231,159,127, 70,159, 62,125,232,241, -227,199, 71, 3, 88,101,229,111,172,233,221,187,119,241,140, 25, 51,180, 15,226, 18, 60,238,222,143, 35, 50,177,144,115,114,114, -226, 95,190,124,153,183,100,201, 18,241,236,217,179,215, 0,232, 91,131,116,175, 25, 48, 96,128, 97,210,164, 73,169,247, 30,196, -187,220,188,251,128,218,137,249, 38, 39, 39, 71,246,226,197,139, 92,109, 56, 25,134, 89, 61,101,202,148,130,209,163, 71,231,102, -231,228,187,229, 22, 20, 81, 17,159, 53,186,185,185,241, 14, 28, 56,160,219,190,125, 59, 51,106,212,168,213, 0, 34,106, 80,196, -171,123,244,232, 81, 24, 25, 25,153, 23, 27,247,200,237,230,157,251,144,138,248, 70, 87, 87, 23,246,247,223,127, 55, 44, 94,188, -152,153, 55,111,158, 85,233,148,201,100,155,119,237,218,197, 59,112,224,105,219,247,219,111,191, 49, 62, 62, 62,210,242,215,148, -104,117, 96, 8,144,149,149, 37,109,221,186,245,102, 0,158,127, 19, 65,115, 98, 48,108, 42, 48,110,220,184,212,154,214,151, 96, -247,241,184,246,140,240,183,220,234,198,116,224,103,139,123,241,120, 60,110,212,168, 81,105, 21, 63,215,106,181, 4, 64,143,224, - 26,136,173,174, 93,187,126, 17, 29, 29,221, 96,235,214,173,223,110,223,190, 93, 15, 0, 98,177,216,233,199, 31,127, 92,216,175, - 95, 63,244,235,215,111, 6,128, 23, 38,180,204,212,108, 0, 0,145, 88, 36,138,137,137, 33,254,254,254,213, 58,183, 26, 56,238, -202,186,123,247, 66, 62,244,247,111,153,195,113, 13, 5,239,188, 83, 52,113,226,196,172,130,130, 2, 36, 36, 36,192, 96, 48, 96, -216,176, 97,108,135, 14, 29,212,253,250,245, 91, 78, 8,121,151, 82,106,176,194,170,179,216,195,195,227,131,252,252,252, 34,139, - 85,167,113,125, 57,175,125,144, 73,212,188,161, 81, 40, 96, 77,130,238,159,114,228,248, 10,162,241,247,198,121, 0, 16, 20, 35, - 83, 0, 60,183,208,114,240, 34,222,102, 62,230, 57,215,147,190,153, 25, 87, 60,171,232, 49, 93, 81,157,197, 86, 38,147,245,210, -104, 52,123, 74, 59,103,191,110,221,186,225,226,197,139, 0,208, 6,192, 10, 66, 72, 71,134, 97,222,227, 56,110, 61,165,180,186, -173,220,198,247,236,217,243,205,125,251,246,201, 1, 96,207,158, 61, 48, 26,141,240,241,241,129, 64, 32,128, 80, 40, 4,159,207, - 47,219, 29,228,255, 19, 24,134, 17,221,184,113, 3,106,181,186, 98, 61, 1,128,246,181,160,156, 17, 23, 23,215,250,234,213,171, - 8, 11, 11,155,209,172, 89,179,183,207,156, 57,227,150,157,157,141,176,176,176,229, 0, 14,188,236, 60,149,215, 34,255,154,251, - 84, 65, 73,118,120,170,204, 24,150,101, 25,196,199, 37, 24,195,194, 58, 13,125,242,228,137, 93,104,104, 40,195,231,243,161, 57, -117, 10,218,223,127,135,157,157, 29,122,247,238,205, 63,123,246,172,189,189,157,253,200, 71,241,143, 10, 89,150, 1,165,204, 51, -125, 30,148, 74,229,199,211,166, 77,115,243,245,245,133,201,100, 42,139,104,110, 50,153,144,152,152, 8, 59, 59, 59, 12, 25, 50, -196, 69, 42,149,126,108,101, 39, 91,207,207,199,229,218,233,195,107, 90, 76, 28,211, 85,230, 39,253, 25,178,196, 79, 96,183,231, - 67, 52, 78, 57,138,200, 94,161,178,227, 43,103, 4, 55, 80,171,174, 17, 66,234,213,180,144,180, 90,237,249, 91,183,110,141, 60, -115,230, 12, 7, 0,191,252,242, 11,189,123,247,238,232,231, 25,133,114, 28,135,188,188, 60,112, 28,199,150,190,182,156,255,167, -230,125,123,123,251,213,111,191,253,246,128,199,143, 31, 75,142, 28, 57,226,248,228,201, 19,167, 71,143, 30, 57,251,249,249,241, - 22, 46, 92, 24,173,213, 25, 88,163,153,234, 77,102, 99, 97,234,237,219,113,185,233,233,215, 54,110,220, 88, 66, 8,233,109,229, -111,188,235,238,238,238, 56,117,234, 84, 16,190,180, 85,163,198,205,124, 89,190,196,129,225, 11, 29, 74, 74,180,230,248,248,248, -196,169, 83,167,214, 15, 12, 12, 84,151, 78,175, 89,197,169, 86,171,157, 38, 77,154, 4,158, 72, 30,212, 60, 48,184,129, 80, 36, -147,179,124,137, 60, 52, 52,180, 67, 92, 92, 92, 74,100,100,164,123,203,150, 45,107,196,217,178,101, 75,229,168, 81,163, 76, 98, -137,188,181,183,183, 79,227,230, 77, 26,135,251,249,249,245,226,241,120,166,204,204,204,199, 67,134, 12,113,239,222,189,187,107, - 77, 56, 93, 92, 92,148,145,145,145, 38,175,186, 62, 93,186,188,249,214,107, 2,137,220,129, 39,148, 41,138,139,181,230,123,247, -238, 61,158, 62,125,186,123, 80, 80,144,139, 53,156,197,197,197,124, 39, 39, 39, 52,109,218, 20, 1, 62, 62,200,207,207,199,190, -125,251,176,105,211, 38,172, 95,191, 30, 59,118,236, 64, 72,219,183, 32,151,203,145,146,146,130,130,130, 2,254,127,187, 78,113, -171, 27,211,239,244, 31,244, 24, 59,118,108,202,168, 81,163,210, 36, 18, 9, 87,241, 80,169, 84,230, 65,131, 6,165, 15,249,124, -105, 15,203,212, 98,117,150,172, 78,157, 58,221, 56,124,248,240,195,173, 91,183, 34, 32, 32, 0, 93,186,116, 17, 2,192,199, 31, -127, 44,236,215,175, 31,118,237,218,133, 61,123,246,220,241,243,243,251,149, 16,210,211,154,116, 14, 25, 50,164,109, 68, 68,196, -185,136,136,136,235,253,251,247, 95, 59,122,244,232,191,244, 92,169, 41, 73, 87,244,122, 61, 2,131, 91, 74,231,110,184, 52,232, - 89,124,119,129,173,107, 99, 98, 54,125,117,251,246,227, 25, 1, 1,138,186,143, 30,169,126, 88,188,216,201,178, 73,183,209,104, - 68, 98, 98, 34,148, 74, 37, 6, 13, 26,228, 36, 18,137,134, 88, 81,127,150,244,236,217,115,248,147, 39, 79,236,214,173, 91,231, -126,253,250,117,117,106,106,170,251,201, 19,199,156, 39,127,246,177,220,193, 78, 40, 76,201,124, 42, 84, 31,165, 64, 22, 19,143, -182,148, 66, 81,126, 58,177, 86,237,130,154, 72,164, 94,228,187, 6,109, 21,247, 39,237, 10,234, 31,249, 83,144,210,201, 75, 60, -173,154,116, 54, 95,180,104,209,238,168,168,168,129,109,219,182,221, 75, 8,145, 84,114,141, 56, 36, 36,100,223,174, 93,187,134, -183,107,215,238, 60, 33,164,105,149,163, 72, 79,207,222, 63,253,244,147,163,229,181,147,147, 19,196, 98,241,223, 68,150, 64, 32, - 0,195, 48,248,255,132,204,204,204,247,218,183,111,191,187,107,215,174,186,171, 87,175, 34, 51, 51, 19, 30, 30,101, 99,237,180, - 90, 80,170,164, 82, 41,188,188,188,224,235,235, 59,240,236,217,179,110, 70,163, 17,143, 30, 61, 66, 70, 70,198,181,255, 70,158, -202,107,145, 87, 9, 21,246, 57,252, 0, 64,244,223,132, 86,233,222, 66,167, 1,128, 18,162,185,113,235, 22,159, 21, 10, 7,111, -219,190, 93, 36, 16, 8,240,248,241, 99,220,185,115, 7,197, 39, 79,162,228,194, 5,164,167,167,163,168,168, 8,174,174,174, 88, -179, 97,131, 76,111,166, 35,238,221,191,207, 82,230, 79,127,131,170, 86, 36,136, 68,162,206,125,250,244,169, 82,144,165,164,164, -160,107,215,174,124,150,101, 59, 87, 98,158, 59, 81, 33,115, 68,237, 76,162, 78,238,157,235,238, 46,188, 3, 60,152, 8, 20, 94, - 3,168, 14, 48,233,129,228,155, 64,244, 28,212, 45,138, 33,199,230, 14,117,243,144,242,162, 72, 5,179,145, 21,203, 91,125,252, -253,253,215, 15, 30, 60,152, 1,128,142, 29, 59, 18,127,127,255,181,132, 16,159,106,204,136, 39,158,209, 73, 94,204,205,205, 69, -191,126,253, 28, 27, 52,104,112,162, 95,191,126,142,150,247,107,203,105,177, 38, 55,105,210, 36, 91, 34,145,236, 32,132, 60,179, -129, 45,207,169, 80, 40, 86,116,237,218,181,239,246,237,219, 5, 0,112,250,244,105, 68, 69, 69,225,246,237,219,136,141,141,229, -130,131,131,157,151,174,223,189,122,197,170,205, 75,122,181, 9, 84,119,104, 21,220,216,174, 40,183,200,213,213,181, 13,165,212, -199,202,116,118,157, 51,103,206,157,187, 15, 31, 59, 48, 60, 62, 79,192,231,137,236,237,101,174, 74,185,204, 83, 37, 21,123,136, - 24, 98, 87, 92, 92,156,182, 99,199, 14, 14, 64, 87,107, 57,231,206,157, 27,127,247,193, 99, 5, 97,120, 60, 62,143, 47,176,179, -147, 42,222,233, 18,214, 18, 0, 4,160,130,130,130,130,244, 77,155, 54, 25,106,194, 57,107,214,172, 91, 57,121, 69, 74, 30,159, -207,231,241,216,178,178,148, 73, 36,206, 82,145, 72,168,211,233,146,151, 45, 91, 86, 82, 19,206, 57,115,230,220,185,247,240,137, -138, 33,132, 37,132,225,217,203,101,142,142, 14, 82,103,103, 59,137,147,148,199, 10, 11, 10, 10,146,183,108,217, 98, 21,167,193, - 96, 16,164,167,167,227,238,221,187,240,106,217, 18, 63,255,252, 51,234,212,169,131,126,253,250, 97,192,128, 1,144, 72, 36,232, -216,186, 25,166, 78,157,138,135, 15, 31,194, 96, 48,136, 42,227, 44,243,147,170, 0,181, 90,125,245, 89,245,167,252,119, 43,166, - 51,216,157,208,239,244, 31,244, 40, 47,176,170,226, 87,169, 84,230,202,172, 93, 21, 57,187,118,237,250,197,201,147, 39, 27,108, -217,178,165,199,144, 33, 67,206,111,217,178, 5,175,189,246, 26,238,222,189,139,250,245,235,227,135, 31,126,192,128, 1, 3,206, - 47, 95,190,188,199,213,171, 87, 3,189,189,189,167, 61,139,179,127,255,254, 31, 5, 5, 5,157, 74, 75, 75,107,157,147,147,211, -116,223,190,125, 35,122,247,238, 29, 63,112,224,192, 78,101, 22, 45,163,113,123,244,193,189, 8,239,209, 7,141,154, 52, 93, 61, -108,218,214,102,213,113, 82, 74,233,109, 96,237,166,212,212,204,237, 90,109,113, 63, 62, 95, 42,189,116, 73,181,103,213, 42,167, -242, 43,189,147,147,147,209,189,123,119,190, 64, 32,104, 87, 93, 58, 9, 33,139,122,245,234,213,111,223,190,125, 74,139, 85,231, -194,133, 11,184,121,243, 38, 18, 18, 18,144,151,151,135, 78,163,139, 48,118,225, 83,238,177, 11, 41,222,250,152,202,106,217,134, -148, 65, 90,151,184, 57,218,243,126, 29,177,172,209,199, 31,172, 14,224,217,169,248,216,246,121, 44,210, 31,104,247, 84,145, 78, -210,186,117,235,173, 17, 17, 17, 68,175,215, 67,175,215,235, 41,165, 37,149,113,123,120,120,136,155, 55,111,142,209,163, 71, 51, -246,246,246,203,171, 74,167, 70,163,209, 29, 62,124, 24, 67,134, 12,193, 39,159,124,130,134, 13, 27, 66,169, 84,130,207,231, 99, -243,214,157, 78, 3, 70,140,241,107,209,182,125, 96, 64,139,215,154, 23,234,216,150, 2,169,106, 20,169,100,106,224,101,172,144, -251, 39,112, 54,107,214,172,237,229,203,151, 69,237,219,183,199,227,199,143,193,231,151,141,167,204,207,147,206, 57,115,230,136, -180, 90, 45,254,248,227, 15, 12, 29, 58, 52,217, 96, 48,124,250,178,243, 94, 81,139,188, 74,160,148,174,173,112,164, 86,101,209, -154, 3, 0, 70, 14, 81,131,135,142, 40, 62,116,232,144, 84, 40, 20,226,241,227,199, 72, 77, 77,197,230, 77,155,204, 29, 93, 92, -191,128,178, 5, 0, 0, 32, 0, 73, 68, 65, 84, 10,187,120,120, 20,108,222,180,137,234,245,122, 80, 74,225,239,239,143,190,125, -251, 74,222,237, 55, 48,131, 20,148,236,180, 66,249,185, 91,230,215, 71,140, 24,241,183,207, 39, 79,158, 12,123,123,123, 16, 66, -220,172,200, 95,196,248, 57,189, 60,149,222,138,116,154,182, 57, 7,172, 24,224,201, 1,158, 61, 32,118, 0, 68,114, 64, 40,133, -238,234,169, 28,134,118, 73,232,211,238,125,143, 26, 78,245, 64,173, 86,207, 56,117,234,148,243,213,171, 87,105, 65, 65, 1, 82, - 83, 83,233,130, 5, 11,156,213,106,245,140,218,222,148,148,148,148,185,225,225,225,233, 67,135, 14,117, 56,122,244,168,215,208, -161, 67, 29,194,195,195,211, 83, 82, 82,230, 62,207,205, 22, 8, 4,236,237,219,183, 85,243,230,205, 27, 0,224, 74,211,166, 77, -179, 61, 61, 61,175,148, 58, 77, 86, 11,185, 92, 94, 38,178, 44,214, 53, 30,143, 7, 62,159, 15,181, 90,173,207,201,201, 49,183, -107,225, 35,241,119, 96,140,106,145, 64,162,146,136, 61,229,246, 14,161,217,217,217, 55, 8, 33, 86,237, 79, 72, 8, 9,106,213, -170, 21,223, 76,249,220,216,193, 29,213, 31, 15, 15,115,249,126,222,168, 58,203,230,126,224,177,104,246, 72,255,185, 83, 6,133, - 49, 28,167,173, 95,191,190,155,197,161,221, 10,243,121,112, 72, 72, 8,143, 3, 31,119,239, 39,164, 63, 78, 74, 46,124,179, 67, -235, 50,203,101, 64, 80,112, 23,103,103,231,246,254,254,254, 33,214,198,132,145, 72, 36, 65,141, 26, 53,226, 49, 44,159, 56, 42, -229, 94,114, 59,137,171,229, 51,123,133,226,117,149,179,115, 4, 67,105,190,187,187,187,139, 68, 34, 9,170, 65,222,121, 28, 4, -112,117, 81, 57, 56, 59, 41,236,186,132,181,105,216,250,245,214,126,205, 66, 95,107,221,164, 69,200,187,196,100, 42,240,241,241, -113,177, 56,201, 87, 7,157, 78, 39,222,190,125, 59,230,205,155,135,230,117,235,194,195,195, 3, 46, 46, 46,184,112,225, 2, 46, - 95,190, 12,165, 82,137,140,140, 12, 44, 94,188, 24,251,247,239,135,193, 96,144,215,180, 62, 89, 35,182,170,131,201,100, 98, 42, - 10,172,170,248, 37, 18, 9,103,113,146,175, 10,135, 15, 31,222,106,177,100, 77,152, 48,161,237,210,165, 75,207,199,196,196,192, -206,206, 14,151, 47, 95,198,136, 17, 35,206, 47, 95,190,188,237,152, 49, 99,176,105,211, 38,196,199,199,111,168,142,175,127,255, -254,179, 71,142, 28,185,236,204,153, 51,140,171,171, 43,148, 74, 37,122,245,234,133, 13, 27, 54,240, 76, 38,211,198,136,136,136, -235, 17, 17, 17,215,205,137,199,191,216,189,126,193,133, 91, 55,174,227,163,241,147,132,122,147, 49,210,138,134,151,150,216,217, - 21,154,218,183,207,217,101, 52, 22,247, 23, 8,164, 14,215,175,171,162, 54,110, 44, 19, 91, 83,167, 78,133,131,131, 3,240,212, -129, 25,213, 88,117, 62,216,191,127,127, 89,123,232,232,232, 8,161, 80, 8,129, 64, 0, 62,159, 15,150,101,113, 98,181, 12,171, -166, 62,213, 23,171,166, 18, 28, 95, 65,158,107,111, 86,153, 39,105,170,116, 21, 94,255,240,135, 38,129, 77, 59, 57,226,194,143, -105, 88, 16,126, 53,233,242,174,204,137,218,140, 42,183, 82,106, 49,121,242,228,128,140,140, 12,252,254,251,239,248,253,247,223, -231, 85, 81, 54,218,131, 7, 15,126, 93, 84, 84, 4,111,111,111,244,236,217,179, 61, 33,164,101, 21,207, 13, 66, 66, 66,208,189, -123,119,132,133,133,161,121,243,230,208, 27, 76,252,136,193, 31, 52,186, 29,159,233,177, 96,241, 2,233,169, 95,246, 49,231,207, -159, 97,183,238, 61,238,208, 58,236,173,101, 2,185,251, 69, 34,117,114,255,183, 91,180,196, 98,241,210, 51,103,206,184, 25, 12, - 6,220,186,117, 11,159,124,242,201,243,238, 25, 90,102, 0,241,242,242,194,233,211,167, 49,104,208, 32,109,122,122,250,111,255, -173, 60,149,215, 34,255, 22,240,202, 41,200, 50, 60,121,242, 36, 79,165, 82,121, 52,106,212,136,209,235,245, 79,167, 36,246,236, - 49,175,223,184, 49, 90,171,213,142, 7, 32, 88,241,253,247,171, 61, 60, 61,195, 6, 15, 25, 66,140, 70, 35,194,195,195,133,135, - 14, 29,114,124,152,158,254,204, 13,145, 43,142, 54,134, 13, 27,134,165, 75,151, 2, 0,198,141, 27, 87,102, 90, 39, 86, 56, 44, -217, 57,160,107,151,110, 33,246,137,178,239,236, 13,175, 27,139,234, 61,148, 95,148, 21, 73, 66,192, 8,121, 16,179,224, 12, 70, - 83,108, 70,239, 43, 15, 99, 27, 7, 72,114,178,235,119,110,242, 6,214,255,188,165, 43,128, 93, 86,143,234,164,210, 86,118,118, -118,184,114,229, 74, 78, 72, 72, 72, 30,165,212, 97,238,220,185, 78, 82,169,180,213,115,168,223, 71,132,144,246,109,218,180,249, -152, 97,152,206, 28,199,157, 72, 79, 79, 95, 65, 41,125,100,101,167, 61, 22,192, 44,148,243, 67,209,235,245, 96, 24, 6,148, 82, -244,239,223, 31, 83,167, 78, 13,184,121,243, 38, 78,157, 58,165,234,220,185,243, 69, 66, 72, 30,128,247, 41,165,149, 90,205, 10, - 10, 10, 74, 46, 95,190, 44, 57,117,234, 20, 56,142,131, 74,165,130,189,189, 61, 68, 34, 17,122,245,234,101, 23, 25, 25,217,233, -216,177, 99, 25, 5,245,234,176,226,212,100,141,200,206, 78, 14, 55,143,118, 99, 6,190, 23, 67, 41,221, 95,131,198, 65, 40,225, -153,180,196,172, 99, 22,205, 92,206, 72, 5, 2, 34, 22,240, 32,226,138,241,197,215,243,137,128,154,121,168,225,252,188, 64, 32, - 16,200, 69,208,179, 66,214, 40, 37,120, 33,193,225, 88,150, 21,138, 5,208, 85,245, 57,159, 97, 24,134, 97, 4, 0, 76,214,114, -138, 68, 34,129, 92, 68,171,228,148,176,132, 37,132, 8,241,116,117,214,223, 16,236, 78,104, 57, 43,146,174,188, 40,110,215,174, - 29,162, 79, 93,193,158,168, 19,200,122,124, 3,211, 63,159,128,150, 45, 91,226,208,161, 67,213,166,201,226,163, 85,149,117, 89, -173, 86, 95, 77, 73, 73,105, 81,213,119, 43,243,209,226, 86, 55,166, 67, 62, 95,218,163, 50, 43, 85,165,252, 51, 29,158,114, 85, -227,163, 69, 8,233,217,174, 93,187,143,182,111,223,174,127,251,237,183,133,253,251,247, 71,211,166, 77,219, 14, 31, 62, 28, 0, -208,185,115,103, 44, 93,186,180,237,240,225,195,177,115,231, 78,236,219,183, 79,215,161, 67,135,207, 9, 33,201,148,210,195,149, -113,114, 28,215,125,205,154, 53, 21, 45,133, 48,153, 76, 48, 26,141,238, 38,147,201,189,180, 45,194,178,101,203,179,142, 31, 59, -132,207,167,205,129,139,179, 91,144,149,117,136, 12,155, 52, 41,235,135,197,139,177,120,231, 78, 76,170, 95, 95,186,229,206, 29, - 28,215,106,177,235,212,169,172,210,223,121,166,111,166, 70,163, 41, 57,124,248,176,253,174, 93,187,160, 80, 40,208,176, 97, 67, -168, 84, 42,240,249,124, 48,172, 4,172, 64,137, 70, 77, 90, 1,184, 12, 0,168,175,134,198,223, 27,231, 9, 65, 30,101,170,174, -195, 85, 62,163,117, 73, 61,215,186,226, 51, 31,109,106,170,176,119, 17,224,232,138, 39, 56,246, 93,226,126,109, 22,190,133, 9, -247,170, 89,172, 17,226,237,237,141,140,140, 12, 28, 62,124, 88, 3,224,155,170,126,131,227,184,175,191,255,254,251,201,211,166, - 77, 19,249,251,251, 3, 64, 16,128,223, 43, 21,125, 50, 25, 60, 60, 60,202,132,101,255,161, 99,124, 70, 79, 28, 35,233,253, 86, - 24,120, 60, 39,228,105,140,200, 46, 52, 66,233,100,135,207, 39, 70,136, 79,132,120,180, 92,179,124,219, 65, 66, 72, 75,250, 50, -131, 69,254,143,225,232,232, 24,148,157,157,141, 71,143, 30, 97,232,208,161,201, 89, 89, 89, 63,107, 52,154, 17, 41, 41, 41, 0, -144, 83, 11,202, 50, 49, 31, 20, 20,132, 86,173, 90,161, 95,191,126,226,226,226,226, 8, 31, 31, 31, 15, 0,175,191,204,252, 84, -212, 34,255, 42,161, 85,105,135, 96, 52, 54,210,173, 94, 13,205,137, 19, 16, 30, 63,142, 93,106,117,145, 86,171,253,140, 82,154, - 88,218,232, 77,216,244,195, 15,191,246,248,237, 55,123,125, 76, 12,124,110,222, 4, 95,161, 8,170,105, 2, 54,110,220,136,130, -130, 2,228,231,231, 3, 0,190,251,238, 59, 20, 20, 20,192,226,203,240,204, 12, 8,208,214,205,165, 62,210, 16, 11,142,199,216, - 37, 52, 42,126,205, 78, 43, 79,241,120,226,170,201,103, 60, 16,243, 56, 84, 86,146,173,127,141,176,122,104,179,138,225,209,166, - 33,120,224,181,173, 73, 26, 45,243,254, 60, 30, 47,231,254,253,251,221,253,252,252,162, 0, 56, 61,175, 63, 0,165,244, 1,128, -241,181, 20, 1,179,226,227,227, 93, 54,108,216,240,241,220,185,115,105,121,161,101,249,159,199,227,129, 82, 10, 7, 7, 7,240, -249,124,215, 11, 23, 46,184,134,134,134,174, 44,109,208, 42,203, 39,109,218,180, 41,226,227,227,193,227,241,224,224,224, 0,206, -100,192,156,137, 99, 96,102, 69,188, 41, 83,166, 4,245,233,211,231,214,134, 13, 27,140,246,173,219,188,158,157,157,125,251,163, - 65,131,111, 29, 56,112, 64,207,113,220, 26, 43,243,124, 61, 54, 54,150,245, 84,187,178,212, 84,204,201, 4,128,248,198, 50, 42, -180,115,131,152,199, 82, 1, 97, 32, 18, 75, 28, 30, 37, 37,101,115, 28,119,215, 26, 78,142,227,174,197,199,199, 75, 92, 93, 28, -121,197, 37,250, 34, 9,159, 10, 19,174, 93,137,171, 23, 28,226, 3, 0,218,107,151, 79,139, 26, 53,150, 36,164,103,202,234,215, -175,111, 21,103, 73, 73,201,245,228,228,100,214,213,213,149,247, 56, 49,233,160,194, 78,230,108,175, 80,188, 6, 0,134,194,252, -203,140, 78,151,201,242,121,174,153,217,217, 57, 37, 37, 37,241,214,230,253,225,195,135, 60,119,119, 23,246,232,241,147, 81,174, - 82,145,139, 92,200,179, 23, 17, 66,164, 44, 41, 16,152,184, 44,177, 84,234,242, 40, 41, 41,135, 82, 90,165,133,240,171,188,193, -189,159,222,175, 57, 59,203,113,227,198,141, 27, 56,114,254, 46,100, 84, 15,162,205,199,241, 77,235, 48,104,202,180,231,246,251, -123,150,216,170,149, 53,107, 77,227,171, 21,248,145,242, 12, 71,248, 65,131, 6,205,217,186,117,107,153, 3,202,221,187,119,209, -177, 99, 71,203, 52, 7,186,116,233,130,208,208, 80,220,189,123, 23,190,190,190, 56,117,234,148,136,101, 89,209,224,193,131, 23, - 0, 56,252,172,244,174, 93,187, 22, 35, 70,140,168,204,177,250, 33, 0, 45, 81,250, 23, 77,253,106,179, 83, 78,118, 22, 50, 50, -211,174, 91, 91, 14,132, 16, 12,155, 52, 41,107,141, 94,143,237,151, 46, 97,136, 76, 38,253,225,193, 3,132,135,134,162, 89,199, -142, 89,214,180,117, 22,171,142, 86,171, 5,159,207,135,189,189, 61, 28, 29, 29, 33, 16, 8,192,242,213,224, 9, 3,193, 8, 4, - 8,110, 23,136,197,159,201,138,135,190,131,229,132, 32, 79, 36,196, 53,129,180,114, 95, 29, 66, 8,145,213, 65, 47, 74, 81, 80, -156,136, 95, 44,130, 68, 81,143, 56,216,217,243,143,143, 92,233,175,176,119, 17,224,200,242,199, 56,190, 50,105,175, 54, 13,211, - 1, 60,172,110,117,177, 72, 36,106,166, 80, 40,144,152,152,136, 39, 79,158,220,169,206,193,159, 82, 90,220,186,117,235, 56,145, - 72, 20,224,236,236, 12, 0,222, 85,165,147,227,184, 50, 63,172, 45,219,119, 59, 5,181,247, 17,191,217, 54, 0,155,163,230,227, -195,136,229,224,179, 4,102,179, 1,223, 46,237, 6,179,174, 8, 17, 61, 62, 32,111,116,246, 13, 60, 17,165, 31, 9, 96,221,191, - 85,104, 37, 37, 37,141,111,223,190,253,130,194,194,194, 92,141, 70, 51, 8, 0,188,189,189,235, 50, 12, 35, 2, 48,183,154,250, - 84, 23,149,135,133, 16,220,188,121, 19,114,185, 28,201,201,127,238, 73,159,152,152, 8,142,227,116,176,161,186,103, 52,152, 82, -122,141, 16,226, 14, 32, 28,229,194, 59, 48,165,166,186, 55,162,163,163,105,116,116,244, 27,101,157, 23,165,156, 41, 39, 7, 84, -247,180,108,249,124, 62, 5, 80,126, 69,147, 84,161, 80, 16,190,167, 39,136,232,169,235, 7, 45, 55, 39,252,188, 48, 26,173, 11, - 45,195,153,193,130, 24, 64,203, 25, 49, 52, 98,130,249, 78,157, 48, 94, 56, 3,105, 66, 69,249, 39, 27, 48, 81,152,193,177, 53, - 76, 14,213,104, 52, 48,153, 76,202, 6, 13, 26, 68,155, 76, 38,165,101,106,224,127,117, 83,205,102,115, 28,203,178,248,248,227, -143, 97,177,254,232,245,122,164,165,165, 65,167,211, 65,175,215, 35, 62, 62, 30,249,249,249,208,235,245,184,125,251, 54,188,189, -189,193,178,172,123, 53, 21,133, 82, 74,225,229,229,133,122,245,234,129, 37, 20,235, 23,205,198, 23,159,140,193, 0,111, 14, 27, - 87,124,139, 14, 29, 58, 52,174, 95,191,126,107, 30,143,103,118,115,115, 19,236,219,183,239,160,217,108,238, 85,131, 56, 90,135, -167, 78,157, 90,175, 73,147, 38, 46, 10,123,185, 81, 36,100, 33, 52,106,168, 72,151, 77,121,197, 89,240,242,170,107,130, 68,234, - 59,100,200, 16,179, 53,157,163,133,243,179,207, 62,115,247,247,247,119, 80, 42,228, 26, 33,159,205, 16,128,102,229,223,248,253, - 34, 0, 8,157, 93,180, 16, 75, 3,134, 14, 29,106,170, 9,231,140, 25, 51,188,157,157,157, 21, 12,104,161,217, 96,248,115,190, - 93,167,207, 38,124,126, 9, 4,194,144,113,227,198,145,154,112, 78,158, 60,185,126, 64, 64,128, 66, 97, 47, 43,226,241,217, 84, - 1,199,165,138,193,165,241,245,134, 92,177,179, 83, 49,164,118,193, 67,134, 12,169,146,211, 98,205,138,140,140, 76,172, 32,188, -145,147,147, 3,109,218, 45, 8,146, 99, 16,104,199, 71, 75,103, 37, 68, 34, 81,217,210,247,170,170,107, 85, 62, 90,149,137, 45, -107,191, 27,242,101, 53, 83,128,107, 26, 95,173, 24, 55,171,148,191,218,231,105,219,182,109,211,194,194,194, 50,186,116,233,162, -143,142,142, 6, 33, 4,167, 78,157, 66,114,114, 50,186,116,233, 2, 74,169,101, 85, 27,174, 95,191,142,206,157, 59,235,219,183, -111,159,188,109,219,182, 89,214,220,156, 17, 35, 70,192,104, 52,162,168,168, 8, 57, 57, 57, 56,116,232, 16, 2, 3, 3,169, 84, - 42,237,195,122,189, 53, 63, 98,228,180,215,155, 54, 15,194,202,229,139,245, 66, 30,255,171, 26, 54,194, 24,250,217,103, 89,249, -193,193, 57, 91, 52,154,226, 97,246,246,210, 6,137,137,170, 43,199,142, 57, 25, 12, 6,171, 56, 44, 86, 29, 79, 79,207, 50,145, - 37, 16, 8,192, 19, 58,131,149, 53,131,208,177, 11,164,110,125,240,203, 53,145,206, 65,134,253,114, 59, 28,149, 41, 80,101,104, - 7,169, 23,230,191,222,223,125, 95,155, 1,238, 39,165,117,176,129, 16,194, 16, 66, 24,202, 35,251,134,127,235,215,192,185,158, - 4,191,237, 78,195,241,149, 73, 63,105,211, 48, 27,192,131,103, 61,231, 6,131, 65,107, 54,155,193, 48, 12,120, 60, 94,121, 31, -209, 95,127,250,233, 39, 92,185,114, 5, 0,202,194,246, 20, 22, 22,154, 89,150,133, 88, 44, 6, 0,187,106,218, 59,240,249,124, -240,249,124,156,190,120,214,113,192,187,221,200,133, 63,126, 70,155,192,129,200, 46, 50, 32, 61,223,128,188, 98,160, 73,203,233, -104,218,121, 63,110,196, 23, 34,168,121, 83,150, 21,202,134,190,226,157,119, 93, 23, 23,151, 11, 78, 78, 78,167, 8, 33,117, 9, - 33,117,237,237,237,127, 85,171,213, 49,132,144,158,148,210, 3, 41, 41, 41,254, 69, 69, 69,109, 40,165,143, 41,165,143,179,178, -178, 58,102,100,100,188, 94,221, 98, 45, 71, 71,199, 13, 5, 5, 5, 19,204,102,115,143,210,227, 29,179,217, 28, 20, 27, 27, 27, - 16, 20, 20,116,199,199,199,231,186,143,143,207, 17, 31, 31,159,131, 62, 62, 62, 7,195,194,194,150, 90,194, 61,188, 76, 84,166, - 69, 94, 33, 88, 92, 93,194, 75, 67, 61,132,151,245, 25,165,231,211, 21, 29,208, 76, 34,209,109,211, 71, 31, 65,113,240, 32,248, -177,177, 24, 62,116,168,189, 84, 42, 93, 78, 8,105, 65, 8,105, 99,103,103,183,114,246,236,217,114,167,133, 11,161, 62,123, 22, - 9,135, 14,193,200,231,255, 94,155,212,149,148,148,128,199,227,149, 89, 98,100, 50, 25,204,102,115,169,118,123,134,224, 48,225, -183,228,244, 24, 8, 81, 15, 28,104,209,209,130,246,151, 6,198, 77,119, 57, 84,224,237,251, 64, 35,240,253,210,249, 53,151,229, -117,219, 94,210, 16, 94,145, 80, 33,198,147, 39,137, 48,131,171,209,124,179, 86,171,205,215,104, 52, 8, 10, 10,114,188,114,229, - 74,131,192,192, 64, 85,233,251,151,159,243, 33,106,237,225,225,177,219,211,211,243,145,135,135,199,110, 66, 72,235, 26,124,125, -195,185,115,231,192,178, 44,102,207,158,141,194,194, 66, 24, 12, 6,100,103,103,227,201,147, 39,208,235,245, 72, 74, 74,194,189, -123,247,160,215,235,145,144,144, 0,157,238,217, 3, 18,142,227, 96,111,111, 15,109, 73, 17, 86,205,255, 2, 51, 34, 39, 34,255, -225, 85, 36,165,164, 67,225, 32,195,248,241,227, 89,165, 82,201,153,205,230,122, 38,147,169,179,217,108, 94,109,173,224, 44, 13, - 90,120,222,203,203,171,233,162, 69,139, 2,190,152,191, 90, 96,207, 43,162, 34,185,152, 19,202, 69, 84,216,248, 53,140,152,190, - 92,176,108,201, 55,247,127,251,237,183,100,107,130,119, 90, 56,131,131,131,253,146,147,147, 3,253,253,253, 27, 57,213,173, 47, - 18,185,123,228, 9,220,235, 20, 80,157,246, 18,241,168,211,110,245,234,213,183,126,253,245,215,148,154,112,202,100,178,198,155, - 55,111,110,234,234,234,218,148, 47,145,136,139,243,243,119,153,138, 53,187, 89,133, 82,204,216, 43,222,217,191,127,255,213,189, -123,247,166,213,132,211,215,215,215,127,254,252,249, 77,154, 53,107,214,196,205,187,129, 72,226,225,149, 45,246,172,155, 45,105, - 22, 40,130,103,189,183, 87,174, 92,121,253,183,223,126,179,138,147,101, 89, 19,195, 48,224,243,249,144, 74,165, 56,122,244, 40, - 62, 26, 57, 16, 94, 30,142,104,228,239,143, 78, 31, 78,192,222,189,123,203,124,120, 88,150,173,178, 71,255, 97,225,248,168, 96, -119,114, 21,107, 26, 95,197,154,198, 87,131,221,201,213, 42,197, 86,233,231,149, 93, 99, 85,107, 84,133, 31,214,179,196, 22,165, -244,240,233,211,167,191, 30, 54,108,152,176,107,215,174,184,116,233, 18, 70,140, 24,113,126,223,190,125, 0,128, 75,151, 46,225, -211, 79, 63, 61,127,242,228, 73,140, 25, 51, 6, 29, 59,118, 20,158, 59,119,110,165, 53,177,127, 76, 38, 19, 54,110,220, 8,147, -201, 4, 59, 59, 59,168, 84, 42,116,235,214, 13,183,110,221, 26,179,105,211,166, 24,150,207,127, 47,188,199,187,136, 62,184, 15, -247,110,223, 26,243,195,130,193, 53, 14, 10,204, 48, 12,186, 14, 29,154,149,213,164, 73,206, 15, 5, 5,197,239, 43,149, 82,255, -180, 52,213, 47,187,119, 59, 89, 81,127,136,217,108, 46, 19, 87, 22,209, 97, 57,120, 66,103,240,100, 77,193,147,183,196,141, 7, - 2, 35,191, 21,189, 38, 8,161,119,171,139,159,197, 23, 50, 35,250,124,225,141, 62, 95,120,163,231,148,250,195,165,117,176, 94, - 86, 7, 99,187,126, 82, 47,204,167,165, 3, 10, 50, 12, 56,244,109,194, 99,109, 54, 22, 2,184,103,205,115,206,113,220,157,228, -228,100, 8,133, 66,212,169, 83,199,143, 16, 98,241, 11,220, 48,106,212,168,113, 95,126,249,229, 68, 0, 95,150,230,201, 46, 44, - 44,172, 73, 81, 81, 17, 98, 99, 99, 1,224, 74, 53,247,190,108,149, 97, 78, 65,130,168,190,186, 25, 2, 27,143,134, 82,217, 28, -201, 57,122,164,228,232,177,126, 85, 47, 92, 61, 55, 15, 87,142, 15,193,227,180, 52, 72,220,122,195,108,210, 53,125,197, 13, 37, - 51,226,226,226, 90,239,222,189, 59, 12,192,140,102,205,154,253,246,228,201,147,215,207,158, 61,219,200,211,211,115,121,109, 73, - 45, 97, 33, 18, 18, 18,254,114,148,134,133,208, 83, 74,131, 41,165, 93, 41,165, 61, 75,143, 79,159, 43,214,155,245, 56,253,170, - 58,195, 3,136,174,184,218,176,162,208, 42, 31, 40, 12, 13, 84, 42,185,209,104, 72,250,249,231,159, 13, 12,195, 64, 42,149, 98, -216,136, 17,204,170,239,191,111, 55,176,117,235, 83, 31,188,249,230,145, 83, 39, 79, 6,135,134,134,130, 82, 10,134, 97,176,115, -231,206, 18,173,182, 36,187, 78,157, 58, 10,107, 26,141,242, 15, 80, 65, 65, 65,153,208,202,207,207,135,171,171,171,213, 83,135, -154, 2,156, 56,121,244,106, 46, 53,127,248,164,235,131, 37,134,175,210,122,133,230,113,102, 94,190,217,136,252, 18,138, 66, 45, -120,151, 24, 85,232, 48,223,222,134,248,206,161,247,206,196, 92,200,214,154,181, 53, 90, 45,145,145,145,241, 69, 68, 68, 68,182, -187,187, 59,177,183,183,135,135,135, 7,211,179,103,207,172,196,196,196, 47,107,123, 71,156,156,156, 6,132,133,133, 69, 37, 39, - 39,247, 61,115,230, 76,189,179,103,207,246, 13, 11, 11,139,114,114,114, 26, 96, 37,197,174,105,211,166,105,132, 66, 33, 94,123, -237, 53, 20, 22, 22,162,116,149, 79,181,199,179, 58, 2, 0, 16, 8, 4, 88,179,104, 22,102, 68, 78, 68, 78,204, 37,220, 56,255, - 51, 78,167, 17, 76,159,255, 13, 4, 2, 65,173, 98,125,249,186,200,154, 53, 83,203,239,126, 58,162,127,202,212,200, 72,249,245, -235,215,249,227, 62,249,148, 38,164,230, 64,216,117, 49,139, 55,190, 96,254,208, 56, 35,252,157, 78,152, 61, 99, 82, 51, 74,233, -232,103,113, 6,184,200,154, 53, 85,203,239, 76,250, 96, 96,220, 39,159,124, 34,249,234,171,175,180,173, 91,183, 46, 73, 79, 79, -151,200,148, 42,127,158,131,162,105, 66,106,154, 93,235,214,173,227, 63,252,240,195,188,154,114, 78,159, 62, 93,122,236,216, 49, - 94, 68, 68,132, 41, 55, 55,215,142, 47,145, 4, 17,145,184, 85,102,110,174, 67,223,136,136, 7,125,251,246, 45,230, 56,110, 76, - 77, 56,103,206,156, 41,189,119,239, 30,175,117,235,214,198,180,180, 52,185,204,209, 41,144, 85,168, 90, 62, 74, 77,183,111, 21, - 26,250,112,220,184,113,154,234,210, 89, 94,164,200,229,242,228, 54,109,218,224,219,111,191,197,178,101,203,240,246,219,111,227, -214,237, 91, 8, 31, 55, 17, 1, 99, 63,197,193, 11, 23,145,156,156,140,185,115,231, 34, 48, 48, 16, 2,129,224, 94,165,164,163, -239,146,107,169,148, 92, 75,165, 4,163,239, 18,203,235, 42,197,208,151,249,248,203,245,149,224,202,204,202, 45, 93,193,238,228, -106,117,126, 88,207, 18, 91,125,251,246,253,200, 18,194,225,253,247,223, 63,191,124,249,242,182,239,191,255,116,160,253,218,107, -175, 97,222,188,121,109,167, 79,159,126,126,254,252,249,232,212,169, 19,124,124,124,158,185,240,197,108, 54,195,100, 50, 97,224, -192,129, 48,153, 76,200,204,204,196,253,251,247,177,118,237, 90, 80, 74,197, 0,224,174,246, 12, 17, 10,133,248,227,218,239,197, - 51,222, 15,221, 86,131,193, 20, 41, 63,136, 41, 42, 42, 66,223,177, 99,179,146, 26, 54,204, 89,157,149, 85, 60, 82,169,148,214, -127,252, 88, 37,215,235, 61,170,243, 73, 37,132,128,227,184, 50, 97,101, 17, 92, 21,143,210,142,210, 42, 24,138,185,195,103,183, -166, 0, 0,218, 15, 86,163,231,148,250,195,221,125,165,223,181, 27,244,212,232,189,119, 94, 28, 45, 76, 49,127, 5, 35,238,212, -192, 98,125,233,210,165, 75, 80, 40, 20,136,136,136, 16, 49, 12,179,176,180,157,215, 82, 74, 87, 80, 74,151, 88,184, 68, 34,209, -226, 33, 67,134, 48,121,121,121,184,113,227, 6, 0,156,172,170, 93,162,148,150,229,189, 40,135,192,204, 9,241,235,181,163, 56, -126,118, 15, 30, 37,103,226,113,134, 22,224, 57, 64,171, 73,130,161, 36, 25,250,188,107, 40,208, 73,255, 13, 51, 82, 47, 37,220, -194, 75, 8, 11,241, 34,173, 90,175,164, 79, 29,165, 52,181,252,106,195,242, 1, 76, 43, 11, 88, 10,106, 47,233,191,103,229, 42, -135,136,129,131, 53,129,129,129, 74, 15, 15, 15, 16, 66,208,171,119,111, 18,118,230,140,156,175, 86,195,177, 69,139,178,233,136, - 19, 63,255,140,163, 71,143,106,162,127,218,239, 49, 98,228,200,238, 0, 54, 87,211, 96,240, 26, 52,104, 80,246,187,169,169,169, - 16,137, 68,101, 62, 17, 5, 5, 5,112,118,118, 70,106,106, 42,172, 52,148,108,153, 26,121, 49, 50, 35,244, 11,239, 80, 57,159, - 28,209,164,193, 76, 41,248,196, 12,148, 80, 24,205,128,206, 72, 17, 82,159, 85, 29, 47, 49, 41, 15, 93,218, 23, 15, 96, 75, 13, - 45, 90,191, 16, 66, 70,115, 28,183, 7, 0,115,230,204, 25,238,206,157, 59, 31, 89,235,184, 94,169,217, 94, 42,157,114,234,212, - 41,213,148, 41, 83,114, 15, 29, 58,148,223,173, 91, 55,135,181,107,215,170, 58,118,236, 56, 5,192,143, 86,220,212, 18, 66,200, -230,196,196,196,143, 90,182,108,137,156,156, 28, 24, 12, 6, 92,189,122, 21,190,190,190,184,114,229, 10,252,252,252,240,251,239, -191,163, 81,163, 70, 48,155,205,208,106,181,224, 56,206,252,172,198, 60, 39, 43, 19,200,126,130,148, 75, 71,112,255,230, 85,156, - 74, 33, 88,241, 99, 20,234,212,243,174, 85,156,154, 70,174,178, 38, 30, 46,142,199,191,154, 51,211, 37,225,151,157,216,183,113, - 5,119,250,200,145, 0,161, 28,163,223, 24, 56,225, 93,189, 17,117, 1, 8, 95, 15,109,137,174,202,123,102,105, 61,164,157,188, - 93,125, 36,235, 70,174,178, 38,106,103,199, 99,255, 89,248,165,252,225,209, 31,176,107,205,183,116,239,214, 29,129, 90, 32,180, - 73,147, 38, 93, 25,134, 81, 0,208,150,250,121, 89,181,181, 77,101,156, 39,162,162,130,181, 64,232,129, 3, 7,186, 74,165, 82, - 55, 0,198,226,226,226,184,231,225, 60,121,232, 80,176, 37,157,132, 16, 23, 0, 6, 74,233, 67,212,112, 11,158,126,253,250,205, -251,244,211, 79, 35,205,102,179,179,229, 61,163,209,200, 46, 94,188,152,199,113, 28, 75, 41, 53, 48, 12, 99, 56,118,236,152,217, -100, 50,165,104,181,218,177,207,211,144,188,251,238,187,184,120,241,226, 28, 60, 93,132, 97,173,181,250, 47,126, 90,213, 77, 83, - 90,195,127,230,204,153,185,239,189,247,222,212, 31,127,252,241,254,242,229,203,123,140, 25, 51, 6, 59,119,238, 68,195,134, 13, -241,199, 31,127,224,139, 47,190, 0,128,182,211,167, 79, 63,184, 97,195, 6,159,132,132,132,197,207, 74,163,209,104,132,201,100, -194,142, 29, 59,208,171, 87, 47, 56, 59, 59, 67,173, 86,131, 16,242,203,200,145, 35,191, 7, 0,150,176, 2, 0,208,105,117, 58, -127,255,150, 86, 91,112,125,124,124,202,218,186,180,180,180,178,149,130,111,189,247, 94,214,250,175,190,194,182,146, 18,140, 84, - 42,165, 73,158,158,238, 7, 31, 62,252,128, 16,178,182, 42,203,145,197,170,243, 44,145,101,173,133,185, 36, 21,211,126, 90,240, -200, 13,192,219,237, 7,171,209,126,176, 26, 45,123,186, 16,134, 37,184,121, 60, 27,183, 78,228,236, 53, 22,224,151,154,108,151, - 67, 41,189,227,232,232,120,240,141, 55,222,232,209,184,113, 99,140, 26, 53,234, 67,129, 64, 32, 48, 26,141,159, 88,194, 60, 16, - 66, 28, 24,134,249,114,211,166, 77, 31,168, 84, 42,156, 59,119, 14,103,207,158,253,133, 82,250,164,170,118, 9, 64, 89,204,172, - 58, 94,126,218,123, 9, 69,210,140,228, 95,113,254,220, 79,104, 24, 56, 1, 18,183,238, 80,249,207,135, 33,102, 25,244,217,199, -161,242,234,134,164,132,135, 96,121,162, 91,248,151,192, 18,110,225,214,173, 91,149,134, 91,168, 41,154, 53,107,214,246,236,217, -179, 34,173, 86,139,211,167, 79,163, 85,171,178,181, 93,255,211,253, 59,203,107,145, 87, 9,213,109, 42, 93,105,175, 73, 56,194, -111,228,231,103, 22, 48,216,212,171,123,247,226,235,215,175,151,141,250,180,151, 47, 67,115,244, 40,204,102, 51, 40,165, 56,123, -230, 12,134, 12, 30, 92,196,103,201,250,250,245,235, 81, 66,255,140,221, 82,217, 82,122,129, 64, 16, 17, 17, 17, 81,214,248, 36, - 38, 38, 66, 38,147, 65, 40, 20,130,227, 56,152, 76, 38,176, 44, 11, 7, 7, 7,152, 76, 38,125, 37,153,233, 92, 33, 35, 70,115, -142,166,239,134,240, 65,169,234, 34, 3, 29,173,168,143,186, 2, 73,217,195,233,102, 79,208, 35,144, 15, 39, 94, 6, 61,185,248, -205, 20, 78,151,221,183,226,222, 98,207, 90,242, 79, 8,241,107,222,188,249,247, 67,134, 12, 97, 0,160,115,231,206, 76,243,230, -205,191, 35,132,248, 85,243,157,106, 57,197, 98,177, 8, 0,162,162,162,114,238,223,191,255,118, 84, 84, 84, 78,249,247,173,228, - 92,187,104,209, 34, 72,165, 82,152, 76, 38,232,245,250, 50,255,172,242,103,131,193, 0, 39, 39, 39, 68, 71, 71,195,108, 54, 71, - 63, 43,157, 94,117,235,129, 56, 55,192,230,168, 83, 56,155, 37,168,177,200, 42,207,217,208,221,174,145,155,147,227,207,255, 89, - 48,215, 57,247,193, 85, 36, 37, 37,209, 99, 71,163,127, 43,161, 52, 57,175,128,206,200, 45,162,141,138,117, 84,220,202, 7, 79, -126, 94,243, 57,157,222, 30, 70, 84,178,106,176, 60,103, 19,119,187, 70, 30,206,142,199,190,249,207, 2,121,222,131,171, 72, 77, - 75,195,225,232,168,235, 37,148, 38, 83, 74,247, 82, 74,135,155,205,230,166,102,179,185, 41,165,116,120, 85,226,165,166,156, 26, -141,166,153, 70,163,105,246, 34, 57, 57,142,107,198,113,156,213,156,229,133,202,146, 37, 75, 98, 82, 83, 83,135,100,100,100,116, -177, 28,185,185,185,157,139,138,138, 58, 20, 23, 23,183, 43, 89, 82,207, 65,163,209,184, 20, 22, 22,186,151,148,148,132, 80, 74, -175, 90, 91, 63,203,163,124,212,233,148,148,148,217, 41, 41, 41,228, 89,233,100,198,220, 37,219,191,153,244,211,154, 53,107,220, -159,135,191, 98, 58, 51, 51, 51,247,236,216,177, 35,200,219,219,219,103,248,240,225, 88,189,122, 53,150, 47, 95,174, 3,128, 13, - 27, 54,232,202, 89,178,188, 30, 61,122,212,178,178,105,195,191,164,147, 97,182,188,245,214, 91,244,236,217,179,232,213,171, 87, - 89, 32,209,117,235,214,193,100, 50, 21,116,234,212,137, 3,128, 18,109,113, 1,229, 40,244,134,202,231,223, 43, 43, 79,161, 80, -248, 78,249,120,129,150, 96,204, 66,161, 16,148, 82, 52,106,219, 54, 43, 47, 48, 48,103, 99,126,126,241,236,102,205,236, 63,240, -247, 31,222, 24, 24, 92, 25, 39, 33,228, 47, 86,157,138,135,181,150,172,242,156,148,210,140,146, 20,140,250,105,193,163,163, 22, -203,150,216,142, 7,109,161, 9,251,191,122,148,169,205,196, 58, 0, 79,106,194, 9, 0, 57, 57, 57,227,190,250,234, 43,157, 82, -169,196,187,239,190,139,249,243,231,143,108,219,182,109,190,171,171,235, 69, 95, 95,223,155,253,251,247, 79,189,122,245,234,184, -176,176, 48,196,198,198,226,155,111,190,201,203,205,205, 29, 84, 29, 39, 33,164,204,146,215, 51,188,115,206,170,239,190,229, 58, -189,241, 17,164, 18,123, 24,249, 94,200, 41, 50, 34, 87, 67,161, 23,133, 66, 40, 16,161, 75,235, 38,184,120,236,135, 98,179, 94, -179,185, 54,117,190, 6,157,235,203,230,124, 33,225, 22, 42,166,243, 69,132,133,120, 25,121,127,149, 81, 73, 28,173,191, 90,180, - 44, 75, 42, 45,103, 66, 56,179,217,204,161,190,119,125,121,194,163, 39, 43,250,245,139,120,191,107,215,112,105,120,120,184,184, - 73,204,211,169,139,168,168, 40,236,219,183,175,248,248,241,227, 5, 34, 62,187,193,171,142,151,171,217,204,129, 16,174, 90, 53, - 44,151,203, 63,153, 54,109,154, 36, 63, 63, 31,203,151, 47,231,130,130,130, 24,153, 76, 6,131,193,128, 13, 27, 54, 24,155, 52, -105,194,103, 24, 6,249,249,249, 96, 24,230,158,149, 25,188, 65, 8,233,242,125, 88,159,125, 45, 63, 30,225, 24, 16,246,186,178, -131,151, 7,140, 45, 40, 82, 18, 31,225,254,201,227,185,183,143, 45,205,134, 54,189, 15,165,244, 78, 77, 11, 80,173, 86,207, 58, -126,252,184,203,184,113,227,168, 86,171, 37, 79,158, 60,161, 11, 22, 44,112, 25, 53,106,212, 44, 0, 3,106,251, 60,229,229,229, -129, 16,194,149, 86, 90,203,168,159,212,224,198,222, 34,132, 28,232,221,187,119,207, 78,157, 58, 33, 38, 38,166,108,138,176,188, -208,178,172, 62, 92,184,112, 97, 30,128,169,207,226,229,243,249, 88,190,121, 15,242,114,179,224,234,170,134, 88, 34,169,117,196, -101, 33,195,204,254,122,238, 76,151,172,187, 23,201,173,223, 78,113,187,111,164,103,152,204,180,242,136,255,133, 41,180, 84,253, - 87, 63,154, 97,216,217, 95, 47,248,210,193, 50,173,249,227,181,212, 2, 98,166,227,158,235, 41,121, 85, 56,255,203, 80,171,213, - 72, 73, 73, 33,106,181,154, 90,166,245,170, 18, 90,127,171,224, 79,167,203, 72,117,211,134,181,229,143,143,143, 95,208,162, 69, -139, 73,177,177,177,187, 3, 2, 2,198, 0,168,163,211,233,242,166, 79,159,254,159, 13, 27, 54,188,111,141, 37, 11, 0,118,238, -220,185,116,196,136, 17, 71,187,119,239,254, 57,199,113,205,203,117, 34,241, 46, 46, 46,101, 83,184,153,233,105,145,163,223, 31, - 24, 89, 84,148,107,117,156, 59, 59, 59,187, 15,166, 79,159, 46,214,104, 52, 88,185,114, 37,215,164, 73, 19,198, 50, 40,218,186, -117,171,201,207,207,143, 23,241,209, 71, 89, 75,210,210, 48,239,220, 57, 77,100,211,166, 65, 27,239,223, 15,169,204,226,110, 25, - 56, 86,102,201,178,184, 93,212,178,115, 72, 33,132,140,250,105,193,163,117, 0,222,126,189,159, 27, 14, 44,122,132,220, 4,253, -127, 96,194, 67,107,182, 5,170,132, 51,137, 16,210, 37, 61, 61,253,192,204,153, 51, 29, 66, 66, 66,208,180,105, 83,190,157,157, - 93,168, 37, 92, 76,126,126, 62, 78,156, 56,129,213,171, 87,235,111,223,190,221,155, 82, 90,229,116,149,217,108,206,240,243,243, -179,148, 3, 37,132,100, 23,232,136,195,174,198,161,118,195, 71,239, 38,231,127,191,128, 20, 3, 7,157,145, 67,125,239, 96,116, -120,123, 9, 14, 30,185,105, 78, 73,184,115,199, 88,146,187,254, 21,239,191, 95, 74,184,133,151, 16, 22,226,133, 89,179,202,159, -255, 45,168,244, 9,229, 88,230,215,213,107, 86,189,179,115,199,143,110, 44,203,184, 61,140,139,251,189, 71,159,190,201, 63,255, -252,179, 74,224,224,208, 10, 0,167, 31, 51,230, 55,131,174, 36,231,208,129, 3,117,235,215,175, 23, 88,186,169, 52,229, 88,230, -215,234,126,176,168,168, 72,115,238,220,185,226,169, 83,167,146,196,196,196,237,174,174,174,253,143, 28, 57, 98,215,167, 79,159, -146,152,152,152,189,110,110,110, 61,195,194,194,228,147, 38, 77,210, 21, 21, 21,173,168,193,195,125,135, 16,210,248,242,204,197, -239, 93, 94,180,234, 77,240,216, 54,208,241, 1,206,248, 43, 12,133, 63, 3,216, 78, 41, 53,213,166,144,100, 50, 89,160, 84, 42, -197,245,235,215,115, 67, 67, 67,245, 90,173, 86, 48,127,254,124, 71,153, 76, 22,248, 28, 13, 28,205,205,205, 5,199,113, 60, 0, -164,244, 12,174,230,107,241, 7,244,232,209,227,192,174, 93,187,222, 10, 15, 15,135,143,143, 15,140, 70, 35,252,252,252,160,215, -235,225,235,235, 11,157, 78,135, 57,115,230, 32, 63, 63,127, 98,117,155, 21, 19, 66, 96, 50,153,202,156,109, 61, 60,235, 62,141, -211,243, 28, 97, 44,100,124,198,231,222,161,141,200,200,206,226,118,253,145,158, 94,108, 48,119,137,205,208,220,174,120, 93,177, - 25,154,176,225,227,147, 1, 64,199,161,218, 29,231,101, 66,248,220,143, 94,135,244,140, 44,236,188,150,154,167, 49,112,111,223, -171,132,179, 70,233,124, 69, 56,131,231,196,160,239,120,235,175,189, 54,186,246,191,101,173,160,170, 10,215, 82, 41,225, 86, 55, -166, 88,179,177,210, 24, 89,207,195, 95,106,169, 58, 80, 90,111, 19, 7, 14, 28, 24,249,232,209,163,185,165,241,178,214,212,132, -107,227,198,141,177, 0, 70, 84,119,205,143,139, 71,236, 7,176,191, 38,188,133,133,133,218,171, 87,175,106, 39, 77,154, 68, 18, - 19, 19,143,184,185,185,189,117,244,232, 81,105,159, 62,125,116,183,110,221, 58,169, 86,171,219,119,238,220,217,238,240,165, 75, -201,197, 15, 31, 30, 58,244,232,145,167,145,227, 14, 85,247,124,190, 72,145, 85, 81,108,237,159,247,232,235, 3, 95, 63,234,204, -233,176, 87,159,139,223, 0, 36, 61, 7,231, 89, 66, 72,192,224,193,131,119,117,235,214,237,245,128,128, 0,212,169, 83, 7,247, -239,223, 71,102,102, 38,110,220,184,129,168,168,168, 40,173, 86,251,204, 13,181,179,179,179,255,182, 61, 17,145, 56,170,127, 88, - 57, 59,234,247,243,173,252,218,133, 15,147, 52, 85,115,208, 27, 40, 18, 31, 63,196,156, 25,235,139, 83, 31,199,222, 49,152, 12, -189,255, 5, 49,180,206,198,197,197, 5,179, 44,251, 66,195, 45,212, 54, 44,132, 13, 47, 80,104,197,197, 37,222,241,241,241,154, -182,111,239,158, 54,148, 50, 44, 37, 68,163, 80, 40,163,158, 60,121,146, 87,254,186, 6, 42,149,124,196,168, 17,253, 9, 71,248, -132,112,102,142,101,126,141,139, 75,172,214, 98,164,215,235, 71,247,239,223,127,185, 84, 42,157,158,147,147,115, 93,161, 80,252, - 17, 24, 24, 56,151, 82, 58,163,164,164,228,128, 92, 46,191,244,250,235,175,207,175, 91,183,238, 82, 74,233,149, 26, 62,220, 38, - 60,245, 15,219,252,130, 77,185, 95, 82, 74, 29, 14,146, 20,204, 0, 0, 32, 0, 73, 68, 65, 84,120, 60, 94,254,205,155, 55,119, - 52,106,212,104, 32,165,212,129, 16,146, 95, 91, 78,173, 86, 59, 46, 47, 47,207,233,131, 15, 62, 48,174, 93,187,182,209,176, 97, -195, 34,111,223,190,205,215,106,181,113, 53,204,179,142, 16,210,179, 95,191,126,235,249,124,126, 39,134, 97, 8,199,113,180,220, -231,160,148,194,108, 54, 31,124, 86,185,152,205,230,228,198,141, 27,255,101, 4, 93,153,127,174,209,104, 76,182,186,179,209,155, - 39,172, 58,117,123,161,214, 72,169,137,163,163,239,165,107, 42, 93,114,118,249, 30,109, 98, 53,167,150,155,176,252,216,157,133, - 58, 35,199,153, 56, 58,166, 42,206, 26,117,138,175, 8, 39, 0, 68, 42,182,238,199,154,173,101,142,241,150,233,196,138,175, 95, - 36, 44, 86, 39,212, 48, 98, 51, 51,230,169,179,252,179, 4, 95,109,249, 43,138,174,154,162,111,223,190, 47,205, 31,197, 96, 48, -124,209,163, 71,143,185, 10,133,226, 63,153,153,153,215, 21, 10,197, 29,127,127,255, 9, 28,199, 45, 45, 46, 46,142,146,203,229, -221, 91,182,108, 57,177, 94,189,122, 63, 36, 80,250,195,179,158, 77,139, 85, 7, 0,181, 60,151, 22, 33, 81, 94, 80, 24,141,198, -164, 90,148, 97, 10, 33,228, 51, 0,245,241, 52, 0,239, 3, 74,233,115,149, 13,165, 52, 5, 64, 27, 66,136, 55,128, 78,120, 26, -191, 47, 15, 64, 60,128, 43,148,210, 27,181,230, 46,201, 78, 33,132,180,184,123,237,220,152,251,119,174,189,103, 89, 93,200,178, -194, 91,102, 67,241,102, 99, 73,238,250,127, 73,160,210,217,190,190,190, 14, 0,154, 3, 72,199,159,129,140, 19, 0, 44,123, 17, - 3,149,114,232,104,147, 68,207,165, 19, 62, 40, 63, 93,248,151,207, 94,102, 93, 36,132,116,126,209,251, 33,217, 56,109,156, 54, - 78, 27,167,141,211,198,105,227,252,247,113,190,234, 66,171, 18, 65,187,182, 74,139,150, 13, 54,216, 96,131, 13, 54,216, 96,131, - 13,214,163, 74,139, 22,128,206, 85,124,193,106,165, 90,155,213, 7,207,226,183,113,218, 56,109,156, 54, 78, 27,167,141,211,198, -249,239,227,252,255, 6,219,212,161,141,211,198,105,227,180,113,218, 56,109,156, 54,206,255, 57,231, 43, 45,166,108, 83,135, 54, -216, 96,131, 13, 54,216, 96,131, 13, 47, 7, 22, 81, 85,153, 83,188, 77,104,213, 92,181, 50, 0, 62, 4,208, 23, 64, 3, 0, 15, - 1,236, 1,240,125, 13,182,169, 40,207,103, 15, 32, 18, 64, 27, 60,221,189, 62, 30,192, 57, 0, 95, 81, 74,139,108, 37, 94, 57, -156,157,157,167,241,249,124, 5,240,116,107, 19,203,185,252,255,102,179, 57, 47, 63, 63,127,193, 75,170, 7,172,181,171,178, 44, -105, 45,159,182,242,103,163,209,248,210,210,105,195, 63,182, 29,241, 83,169, 84,219,114,114,114, 6, 81, 74,239,219, 74,196,134, -127, 19, 92, 92, 92,198, 24, 12,134,233, 2,129, 96,126, 70, 70,198,170,255, 71,207,117,165, 43, 15,203,132, 86,116,116,244, 25, - 0, 8, 15, 15,127, 3, 0,228,114,249, 5,134, 97,188, 75,191, 12,224,207,189,240, 42, 46,253,183,156, 57,142,139,207,206,206, -174, 50,128,154, 84, 42,189,192,178,172, 55, 33, 4, 12,195,148, 29, 70,163, 81,206,178,108, 97, 21,156, 73, 57, 57, 57, 33,255, -144, 66, 36, 0, 14, 41,149, 74,237,220,185,115,191,239,208,161,131, 87, 74, 74,138,105,202,148, 41,237,255,248,227,143,112, 66, -200, 59, 53, 17, 91,132,144,214,132,144, 31,130,130,130,246, 15, 29, 58,116, 87,104,104,168, 48, 59, 59, 91,190,103,207, 30,143, -205,155, 55, 95, 37,132, 12,170,105,136,139, 87,160, 34,242,170,138,103, 86,221,103, 21,193,231,243, 21, 73, 73, 73,242,210,145, -132, 69, 88,193,104, 52,194,104, 52, 66,163,209, 32, 48, 48,240,133,167,223,221,221, 61,152, 16,178,194,215,215, 55, 68,173, 86, -255, 14,224,163,148,148,148, 63,106,146, 86,147,201, 4, 74,105, 89, 58, 3, 2, 2,108, 45,115,205,234,208, 72,161, 80,248,182, -175,175,111, 43,157, 78,151, 27, 31, 31,127,217,108, 54,207,172, 46,232,101, 13,249, 29, 0,204, 20,137, 68,161, 13, 26, 52,240, -138,141,141, 77, 52, 24, 12,151, 0,124, 73, 41,205,127, 1,252,126,111,188,241,198,249,149, 43, 87, 58,142, 29, 59,246, 60, 33, -164,173, 77,108,217,240,191, 66,157, 58,117, 20, 26,141,102, 61,128, 96, 62,159,239, 38, 22,139, 33,145, 72,210, 68, 34,209,117, -137, 68,242,254,249,243,231,243,106,202,105, 54,155,103, 38, 36, 36,184,189,246,218,107,139,154, 54,109, 58, 39, 43, 43, 75,107, - 48, 24, 78,230,230,230, 78,164,148, 22, 84,247,221,138, 90,228, 85, 18, 89,229,207,165,237,253,159, 83,135,165,251, 10,117,248, -139, 2,227,241, 60, 19, 18, 18, 92,228,114, 57,204,102,115,153,181,192,210,169,149,247,237, 42,141,211, 4,127,127,127,195, 51, - 58, 28,175,164,164, 36, 23, 59, 59,187,178,247, 12, 6, 3,220,220,220,184,228,228,100, 23,177, 88,252,151,235,245,122, 61, 60, - 61, 61,255, 73,177, 80, 62, 84,169, 84,249, 79,158, 36, 6,106,117,134, 47, 71,141,155, 58,109, 80,223, 55,149, 23, 46, 92,224, -222,121,231, 29,221,153, 51,103, 62, 4,176,194,202,155,226, 64, 8,217, 60,101,202,148, 57, 98,169,189,227,169, 11,119,116,155, -247, 68, 39, 7,249,213, 39, 19, 39, 78,100,199,143, 31,127, 54, 56, 56,120, 27, 33,164, 69, 77, 44, 91,114,185,252,168, 72, 36, -170,199,178, 44, 12, 6,195,147,156,156,156,183,254, 65, 21, 49, 8,192, 53, 66, 72, 48,165,244,186,181,159, 85,135,236,236,108, -148,148,148,252,237, 8, 8, 8,192,139,246, 63, 36,132,240,188,188,188, 14, 44, 92,184,208, 35, 45, 53, 21,223, 46, 89,242, 26, -128,239, 1,188,102,205,247, 51, 50, 50,254,150, 78,127,127,127,216, 80,163,123, 16, 57,103,206,156,133,239,189,247, 30,204,102, - 51, 74, 74, 74,212, 15, 30, 60,104, 50,125,250,244,222,132,144, 86,148,210,184,231,228,119,246,245,245,141,153, 48, 97,130,170, - 85,171, 86, 40,221,165, 66,125,238,220,185,215, 54,108,216, 48,132, 16,226, 79, 41,205,124,158,223, 80,169, 84,219,214,173, 91, -231, 40,149, 74,113,240,224, 65,199, 78,157, 58,157, 35,132,180,171,173,216, 34,132, 48,142,142,142,227, 1,116,228, 56, 78, 8, -224, 82,110,110,238,188,218, 68,117,183,225,255, 23,156,156,156, 70, 22, 22, 22,174, 20,137, 68, 2,165, 82, 9,169, 84, 10, 30, -143, 7, 30,143, 87, 71, 36, 18,213, 17,137, 68, 93, 59,118,236,248,209,169, 83,167,170,141,176,255,122,176,219,112, 48,228, 75, -150, 48, 44, 0, 4,248, 58,218, 59, 56, 56,224,203, 47,191,148,245,236,217, 83, 6, 0,231,207,159, 31, 58,108,216,176, 78,132, -144,166, 85,137,173,202,180,200,171,130,170, 86, 28,254,197,162, 21, 30, 30,126,166,194,195, 11,137, 68,130, 93,187,118,129,101, -217,191,236, 26, 95,217,255,117,234,212,121,102, 66, 44, 22,177,168,168, 40,216,219,219,195,193,193,161,172,163, 17,137, 68, 56, -121,242, 36,248,124, 62,120, 60, 30,248,124, 62, 66, 66, 66, 80,205,134,246, 47, 5, 17, 77, 8, 5,128,221, 31, 63, 77, 87,196, -138,167, 65, 32,119,127,236,143,118, 13, 36,232, 59,126,118,255, 98,173,161, 37, 0, 77, 94,110,110,238,239,251,246,165, 4,249, -249, 9,182,109,219,214,202,195,195,163,175,181, 66, 11, 64,100,139, 22, 45,246,178, 18, 7,167,161,195,134, 15,125,159,199, 24, -134,140,158, 52, 63, 49, 53, 75,243,193, 7, 31,236, 59,120,240,224,208,175,191,254,250,238,228,201,147, 35, 1,124, 97,109,250, -133, 66, 97,189, 7, 15, 30,248,114, 28,135,102,205,154,253, 99,182, 49,176, 8, 41, 74, 41, 8, 33,127, 17, 84,213,125,246, 44, - 88, 44, 88,149, 29, 47, 26, 30, 30, 30,254,131, 7, 15,118,202,201,202,194,183, 75,150, 88,222, 14,121,214, 52,162,101,138, 80, -175,215,227,221,119,223, 29,108, 54,155,121, 22, 17,168,211,233,244,249,249,249,218,114, 43,123, 50, 41,165,111, 90, 81,158,222, - 50,153,236, 63, 0,130, 75, 74, 74, 60, 0, 64, 38,147, 37,115, 28,183, 95,163,209,124, 97,217,192,183, 22,247,201, 11, 64, 19, - 84,189, 21, 20, 93,184,112, 97,108,100,100,100,220,127,155,147, 16, 82,207,213,213,117, 65, 68, 68, 4,162,163,163,113,248,240, - 97,163, 68, 34,225, 13, 27, 54,140,124,244,209, 71,202, 9, 19, 38,116,197,115, 4,113, 44, 69,215, 57,115,230,168, 26, 55,110, -140, 61,123,246,224,198,141, 27, 37,190,190,190,146, 14, 29, 58,128,199,227,169,166, 77,155,246, 14,128, 31,158,231, 7,114,114, -114,230, 77,154, 52,105,243,142, 29, 59,228,241,241,241, 88,177, 98,133, 83,255,254,253,207, 16, 66,222,176, 86,108, 17, 66, 68, - 0,198, 3, 8, 99, 89,182,221,176, 97,195, 76,227,198,141,227, 51, 12, 99, 92,178,100,137,243,134, 13, 27,250, 59, 57, 57, 5, -103,101,101,217,220, 15,170, 1,203,178, 6,142,227,248, 0,196,148, 82,221,179, 94,255,155,242,238,232,232, 56, 54, 55, 55,247, -123, 55, 55, 55,184,186,186,254,173,175,213,233,116, 16,139,197, 2, 55, 55,183,117,189,122,245,226,255,244,211, 79, 85, 78, 1, - 18,150,204, 60,248,227, 92, 15,149, 82, 14, 0, 88,186,250, 88, 49, 0,252,244,211, 79, 72, 73, 73,129, 82,169, 68,211,166, 77, -217,185,115,231,186, 79,156, 56,241, 91, 0,239, 87,197, 85, 81,139,188, 74, 22,173,242, 98,171,252,235,106,125,180, 56,142, 43, -219,176,212, 34,168, 44, 34,168,226,255, 22,113, 86, 65,225,157,168,144, 16, 82, 84, 84, 84, 38,178,236,237,237, 81,218,185,194, -104, 52,254,141,215,108, 54,131, 16, 66,171,227,172, 34,195, 99, 1,156,164,148, 62,180, 82,137,150,113,238,254,216, 31,155, 69, - 83, 6, 90, 66,168,119,157,244,244,188, 25,192,133, 71,239,175, 88,249,198, 27, 30,227,103, 44,159, 93,146,157,146, 53,109,112, -247,122,190,110,142, 18, 89, 94, 70,190,170, 81,163, 46,120, 26, 81,217,218,116,182, 31, 58,116,232,150,227, 23, 19,136, 88, 44, - 16,240, 88,150,223,182,153,159,163,151, 3,235, 32, 7, 28, 18,227, 98, 47, 12, 31, 62,188,217,228,201,147,219,213, 36,239, 12, -195,192,222,222, 30, 91,182,108, 1, 99,197,222, 57, 47, 99,213, 72, 37,247,157,103, 17, 82, 57, 57, 57,136,142,142, 70,120,120, -248, 53, 66, 72,112,233, 37,215, 40,165, 40, 40, 40, 64,106,106, 42,220,221,221,175, 17, 66,248,229,167, 17, 43,114, 90,172,170, - 22, 81, 53,108,216,176,193, 38,147,137, 87,174,145,168, 40, 96,254, 38, 98,172,205,187, 90,173, 62, 14,224, 77,150,101,161,215, -106,245,255,249,230,155,242, 31, 95, 41, 47,178,170,226,180,164,213,108, 54,243,174, 93,187,198,183, 60, 51, 0,248, 0,100, 0, -156, 40,165, 96, 24,230,166, 21,229,233, 47,149, 74, 47, 68, 69, 69,217,135,132,132, 16,161, 80, 8,147,201,132, 91,183,110,121, -125,253,245,215,163, 79,156, 56,241, 14, 33, 36,160,226,230,233, 86,222,247, 38,231,206,157,211,248,248,248, 84, 42, 28, 11, 10, - 10,120,126,126,126,111, 0,136,251, 31,112, 38,165,167,167,247,122,243,205, 55,199,164,165,165,197,152, 76,166,207, 1, 52,117, -114,114,186,214,167, 79, 31, 72, 36,146, 48,107,132, 86,117,247,221,197,197,165,231,235,175,191,142, 21, 43, 86,224,235,175,191, -238, 76, 41, 61, 73, 8,233, 84, 80, 80,112,162, 71,143, 30, 80, 40, 20,189, 42, 19, 90,214,214, 37, 66,136, 95,251,246,237,215, -125,249,229,151,242,232,232,104,248,250,250,162,176,176, 16,159,125,246,153,203,172, 89,179, 78, 19, 66, 58, 88,196, 86, 85,156, -132,144, 0,145, 72,244,195,142, 29, 59,236,124,124,124,124, 4, 2, 1,227,227,227,131,156,156, 28,104,181, 90,209,252,249,243, -155, 73, 36,146, 63,150, 45, 91,246, 3,128, 62,255,237,231,189, 66, 90,243, 1,216, 3, 80,212,100,218,181,154,188,231, 3, 16, -149, 61, 60,124, 62,196, 98, 49,196, 98, 49, 68, 34, 17,238,221,187, 55, 67, 44, 22, 47, 41,223, 22, 87,199, 73,254,236,180, 2, - 9, 33,151, 89,150,173,246,117, 69,215,144,255,118,121,150,166,217,147, 16,178, 20, 64,216,211, 38,159, 57,227,228,228,244, 73, - 90, 90,218, 99,107, 57,213,106,181, 99, 81, 81,209, 50,119,119,119,184,186,186,150,245, 29, 30, 30, 30, 48, 26,141, 72, 79, 79, - 7,165, 20,121,121,121,144, 74,165, 80,171,213,203, 70,143, 30,189,103,205,154, 53,217,149,114,114,248,186, 71,255,233, 51, 89, -150,101, 0,128,229,217,217, 77,152, 10,212,171, 87, 15,109,219,182,133, 86,171, 69,126,126, 62,154, 52,105,194, 35,132, 12,101, - 24,198,158, 82,186,138, 82,122,234, 95,104,117,175,210, 25,126, 78,197,121, 81, 66, 8, 56,142, 3,143,199,251,139,208,170,120, - 88, 68, 81,105,125, 37,207, 50,113,235,245,250, 50,145,229,224,224, 80, 38,210, 76, 38, 83, 85, 66,171, 54, 74,189, 57,199,113, -222,132,144, 53,214,138,173,138, 24, 58,116,232,223,252, 61, 38, 78,156,152,148,145,145, 65,223,237, 18, 40,139, 57,146,146,218, - 64,105, 39,113,150,203,235,139,149, 42, 69,118,118,246,111, 0, 20, 53,248,137,134, 45, 90,180,144,108,222,119, 46,105,212,167, - 11,231,134,248, 56,218, 55,247,116, 82,186, 57, 72,132,118, 12,209,136, 77,198, 36,149, 74,229, 91,139, 17, 26, 0, 64,161, 80, -128,199,227,253, 35, 44, 90,148, 82, 19, 33, 36,152, 16,114, 45, 58, 58, 26,161,161,161,101, 98,203, 34, 66,242,243,243,113,235, -214, 45,180,111,223, 30, 0,130,173,241,213,226, 56, 14, 6,131, 1, 6,131,161, 76,192, 8, 4,130,191, 9, 24,203,181, 44,203, -222,172,101, 22,230, 42,149,202,246, 97, 97, 97,194, 31,119,237, 18, 82, 74, 53,120,186,241,117, 17,165, 85,108,144, 93, 1, 38, -147,169,204,202,198,231,243,241,228,201,147, 50,171,176,197, 50, 92,113,234,188, 42,136, 68,162, 73, 59,119,238,180,111,213,170, - 21,201,206,206, 6,199,113,101,141,228,247,223,127, 47,238,219,183,175,199,213,171, 87,167,161, 22,219,217, 0, 32, 85, 9, 34, - 0,176,183,183, 55, 1, 96, 94, 4,167,201,100, 34,109,218,180,153,156,149,149,213,172,164,164,100,190, 53,245, 8,192,193,210, -195,210,166,252, 17, 19, 19, 83,210,175, 95, 63, 73,253,250,245, 67,159,183,174,250,249,249,181,230,243,249,184,116,233,146, 14, -128,101,100,125,230,198,141, 27,186, 62,125,250,136,188,188,188, 90,215,160,193,245,243,247,247,255,217,197,197, 69, 98,177, 96, - 70, 68, 68,240,215,174, 93, 43, 79, 78, 78,134,193, 96, 64,100,100, 36,186,117,235, 6, 39, 39, 39, 76,156, 56,209,117,209,162, - 69,219, 0,180,168,134, 83, 44, 20, 10,183, 60,120,240,192,215,221,221, 93,114,241,226, 69, 52,111,222, 28, 89, 89, 89, 72, 75, - 75, 67, 81, 81, 17,210,210,210,240,254,251,239,187,124,251,237,183,234,127, 80,255,147, 39, 16, 8, 32,149, 74, 21,121,121,121, -207,227,231, 38, 2, 32, 44, 47,178, 68, 34, 17, 68, 34, 17,196, 98,241,115,237,203,250,138,116,226, 30,132,144, 59, 2,129, 64, - 36,149, 74, 5, 12,195, 64, 36, 18,117, 81,169, 84,183,223,122,235,173,166,199,143, 31, 79,176,134, 71,171,213,110, 17,137, 68, -124, 23, 23, 23, 0,128,175,175, 47,154, 55,111, 14,141, 70,195,229,231,231, 67,161, 80, 48,143, 31, 63, 70, 73, 73, 9, 82, 83, - 83, 81,183,110, 93, 62,195, 48, 91, 0,188, 83, 25,223,175, 87, 83, 87, 3, 88,109,121,237,236,236,156, 14, 64, 98,121, 45, 22, -139,225,225,225,129,228,228,100,200,229,114,118,214,172, 89,125,118,237,218,213,155, 16, 50,148, 82,186,181, 28,213,156, 87,213, - 71,203, 34,178,202,159,255, 34,180,194,195,195,103, 71, 71, 71,191, 81, 89, 71, 86, 58, 95, 91,165, 37,203,114, 88, 35,136, 8, - 33, 48,155,205,112,117,117,133, 84, 42,133, 84, 42, 5, 33,164,236,253,138,252,165, 35,252, 26,103, 86, 38,147,225,189,247,222, -163,171, 86,173, 26, 83, 42,182, 30, 88,251,221,136, 21, 49,101, 86,172,138, 8, 8, 8,184, 48,109,218,180,158,191,252,242, 75, -114,136, 79,125,158, 44,229,113,145,216, 94,161,128,103,157,240, 97,189,250,220,192,211,213,135,214,226, 65, 97, 97,161,164,129, -167, 84,207, 48, 90, 82, 71,196,147,187,203, 4, 34, 55,165,210, 67,160,215,101,216, 43,149, 66,157, 78,151, 7, 32,183, 58, 18, -123,123,251, 99, 34,145,168, 46,203,178, 96, 89, 22, 78, 78, 78, 14,148, 82, 40, 20, 10,120,122,122,218, 53,106,212,232, 62,143, -199, 3,195, 48, 40, 42, 42,122,252,232,209,163, 46,207, 74,152, 82,169, 60, 38, 18,137,234, 50, 12, 3, 66, 8, 88,150, 45, 91, -184, 96,249,159,101, 89, 16, 66, 80, 92, 92,108, 21, 39,165,244, 58, 33, 36, 56, 60, 60,188, 76,108, 29, 57,114, 4,111,191,253, - 54,242,242,242,112,251,246,237,242, 34,203,170,105,195,242,206,239,148, 82, 8, 4, 2,220,187,119,239, 47, 83,218,150, 67, 46, -151,215,250,225, 81,169, 84,231, 35, 34, 34,176,110,221, 58, 74, 41, 37, 0,100,132,144,230, 14, 14, 14,247,238,220,185, 99,149, - 31, 12,165, 20, 6,195,159,151, 90,234,120,249,231,171, 6, 98,186, 75,139, 22, 45, 72,126,126,190, 69, 64,150, 13,136, 88,150, -197,202,149, 43, 37,173, 90,181,154, 46, 22,139, 39, 11, 4,130, 2,163,209,248,163, 86,171,157, 79, 41,205,251, 39, 53, 74,237, -218,181,251, 52, 49, 49,177, 91,221,186,117,163,158, 67,196,211,150, 45, 91,234, 1, 72, 88,150,229,191,128,134,146, 45,173, 91, - 90,139,216,167,148,154, 90,180,104,161, 45,237,228, 89,107,185,156,156,156,182, 29, 62,124,216,179,110,221,186, 48, 26,141, 48, -153, 76, 40, 42, 42,194,153, 51,103,160,211,233, 96, 50,153,224,235,235,139,153, 51,103,106, 63,249,228, 19,241,154, 53,107, 50, -138,138,138, 6, 61,131,246,147, 61,123,246,200,220,221,221, 37, 37, 37, 37,136,139,139, 67,139, 22, 45, 80, 88, 88, 8,141, 70, -131,226,226, 98, 24, 12, 6, 20, 20, 20, 40,204,102,179,254,159,114,175,121, 60, 30, 68, 34, 17, 4, 2, 65, 94,221,186,117, 65, - 8, 17, 39, 36, 36,212,102, 42,206, 30, 64, 1,159,207, 23,150, 23, 88, 34,145, 8,151, 46, 93,154, 38, 20, 10, 43,181,102, 85, - 87,127,106,242,250, 31,208,145, 47, 21, 8, 4, 34,149, 74, 37, 40,215, 79, 11,236,236,236,224,226,226,178, 2, 64, 87, 43,243, - 29,164, 82,169,202,218,247,192,192, 64, 36, 38, 38,238,207,207,207, 31,146,145,145, 1,134, 97,182, 48, 12,211,219,162, 3,114, -115,115,225,229,229, 21, 84, 21, 95,155, 22,238, 99, 64,104,153, 69, 43,160,161,202,174, 66, 63, 5,123,123,123, 60,122,244, 8, - 26,141,134,198,198,198,146,177, 99,199, 18,189, 94,191,137, 16,242, 27,165, 52,190, 58, 45,242, 42,160, 86, 62, 90,150, 2,174, - 74, 88, 85, 20, 94,214, 8, 34,189, 94,111,215,162, 69, 11,206,210,129, 91, 14, 0,164, 42,161, 85,106, 57,168, 49,248,124,190, -124,236,216,177,133,171, 86,173, 26, 77, 8, 89, 75, 41,141,173,109, 1, 70,237,221,225,250,245,204,200,153, 42,117,253, 6,147, - 39,207,224,117,239,222,253,226,230,205,155,205,170,198, 93, 59,157, 58,182,213,117,217,103, 83,142, 28, 62,124, 24,120,234, 24, -109, 45,206, 31, 58,116,200,109,226,248,143, 48,115,210, 39, 71,237,125,157,132,118, 68, 37, 19,235, 52,153,118,160, 37,162,134, -254,221,246, 69, 69,165, 2,184, 90, 29,137, 68, 34,169, 27, 27, 27,235, 91, 94, 72, 24, 12, 6, 40, 20, 10,108,222,188,217, 89, - 46,151, 59,219,217,217,129,199,227,161,121,243,230,214, 90, 76,234,222,191,127,223, 87, 46,151,163,184,184, 24, 58,157, 14, 70, -163, 17, 28,199,129, 16, 2, 62,159, 15,161, 80, 8,153, 76, 86,163,149,125,229,197,214,145, 35, 71,208,164, 73, 19,228,230,230, - 34, 38, 38,166,198, 34,171,188,149,168,188, 63, 22,143,199,195, 54, 31, 31,140, 74, 73, 41, 19, 48, 75, 29, 28, 48,147,227,106, -117,239,155, 53,107, 70,127,253,245, 87, 28, 61,122, 20, 61,122,244, 32, 7, 14, 28, 48,152,205,102, 65,114,114,178,213,214, 49, -142,227,202,210,106,105,183,203, 11,172,154, 10, 45,147,201, 36, 23, 10,133,208,106,181,101, 83,251,229, 15,111,111,111,228,228, -228,240, 10, 10, 10,120, 41, 41, 41,210,121,243,230,141, 59,125,250,180, 59,128,129,255,203,134,104,213,170, 85,117, 71,141, 26, -245,132,199,227,209,183,223,126,123,240,227,199,143,123,185,187,187,159,252,229,151, 95,190, 1,224, 87, 83, 62,103,103,231, 43, - 60, 30,207,211,206,206, 78,176,123,247,110, 99, 97, 97,161,192,197,197, 37,221, 34,108, 45,101,109, 52, 26,147,242,243,243, 67, -172,225,115,118,118, 22,124,247,221,119,198,236,236,108,129,155,155, 91,186,133, 71, 38,251,191,246,190, 60, 46,170,178,125,255, -122,206,153,149,217, 24,214, 1, 4,193, 13,113, 55,220, 3, 21,211,212,164,222,212, 76, 95, 77,211, 80,204,236, 87,154,169,245, - 85,223,220, 73,211, 52, 51, 83, 94,247, 50,211,108, 51, 51,115, 9,114, 41, 53,169, 20,196, 5, 18,217,215, 97,103,152,237,204, -249,253,193,204, 52,224,192,204,224,160,216, 59,247,231,115, 62,156,153, 51, 92,231,217,159,235,185,159,251,185,111, 49,239,240, -225,195,186,138,138, 10,158, 92, 46,255,173,172,172,204, 38, 94,113,113,241, 11, 47,190,248,226,217,211,167, 79,123,211, 52,141, -187,119,239,162,164,164, 4,114,185, 28,251,247,239, 71,112,112, 48,190,248,226, 11,165, 82,169,156,249,222,123,239, 45,173,170, -170,178,199,213,195,144, 1, 3, 6, 4,151,149,149, 65, 46,151,163,186,186, 26,191,253,246, 27,186,117,235,134,220,220, 92, 80, - 20, 5,185, 92,142,109,219,182,213, 16, 66,148,173, 97, 2,162,105,218,172,117,178, 32, 71,181,131, 6, 13, 66, 66, 66,194, 34, - 71,200, 17,203,178, 26, 46,151, 91,143, 96, 89,220,235, 29, 77, 27,195, 48, 60,163,141, 40,177,231,115, 43,144,161,110,110,110, -188,134, 95,214,212,212,240,252,253,253, 7, 59, 64,124,189,220,220,234, 20, 78,193,193,193, 40, 47, 47,103, 52, 26,205,164,253, -251,247,235, 0,160, 79,159, 62,147, 24,134,169,213,235,245, 52,159,207, 71,117,117, 53,124,125,125,189, 26, 5,164,176,248,219, -131,171,253, 26,218,104,249,251,251, 35, 60, 60, 28,106,181, 26,121,121,121, 72, 76, 76,212, 49, 12,115,224,227,143, 63, 54,248, -248,248,188,244,220,115,207,209, 87,174, 92,121, 21,192,252,166,184,200,163,162,205,106,140,108,153, 78, 29, 14, 5,144, 0, 32, -202,148, 73,203,173,195,166, 52, 89, 13, 52, 90,196, 70,135, 43,203,206,206, 22,139,197, 98,243,119, 58,157, 14, 1, 1, 1, 6, -131,193, 64, 26,190,199,148,142,230, 10,151,203,149,190,253,246,219,101,219,182,109,155, 6, 59, 13,202, 15,191,218, 5,251, 26, -144,172,237,235, 86,110,253,112,221,106,207,180, 31,246, 96,231,150, 13, 12,195,224, 74,207,158, 61, 7, 87, 85, 85,113,220,197, - 58, 20,151,225, 56,234,252,104,177,118, 86, 8, 5, 96,247,165, 75,151,174,140, 25, 51,230,252,238,207,191,244,204, 77, 79,255, - 69, 80, 81,156, 39,235, 20,202,225,181, 9, 30, 87, 89, 91,203,155, 52,105,146, 15,128,231,154,194,162, 40, 10,233,233,233,200, -200,200,128, 68, 34,129, 84, 42,133, 68, 34,129, 76, 38,131, 84, 42,133, 84, 42,117,184, 12, 41,138, 2,195, 48, 56,114,228, 8, - 68, 34, 17,196, 98,113,189,203, 68,178,238,167,110, 70,143, 30, 13,165, 82, 9,137, 68, 98,222,238,116, 68, 76, 54, 90, 26,141, - 6, 26,141, 6, 90,173,150, 1,192,229,112, 56,136,201,206, 54,107,121, 28, 33, 48, 13,165, 87,175, 94,236, 47,191,252,130,243, -231,207,163,186,186, 26, 31,126,248, 33,252,253,253,159, 0,176,204, 81, 44, 11, 35,125,166,162,162,130, 91, 81, 81, 97,214, 14, -114,185, 92,179,198,208,222,201,129,195,225,152, 87,163,166,203, 82,171, 69,211, 52, 20, 10, 5,252,252,252,176,125,251,118, 94, -187,118,237,158,126,152,131,208,250,245,235, 59,109,222,188,121,215,190,125,251,142,191,240,194, 11,135,174, 93,187, 54,195,221, -221,253,234,153, 51,103, 86, 11, 4, 2, 67, 51,251,119, 96,110,110,174,175,229, 87, 6,131, 65,164,215,235,205,196,182,166,166, - 6, 61,122,244,176, 27, 47, 37, 37, 69, 4, 0,171, 87,175,230, 2, 16,153,220,134,152, 48,107,106,106,184,221,186,117, 11,180, -147, 20,220, 36,132, 12, 30, 49, 98,196,133,147, 39, 79,122, 4, 7, 7, 35, 39, 39, 7, 57, 57, 57,232,212,169, 19,214,174, 93, - 91, 93, 81, 81, 17, 97, 36, 87,223,216,153,237, 0, 15, 15, 15,110,102,102, 38,244,122, 61, 30,123,236, 49,108,219,182, 13,147, - 38, 77, 66,143, 30, 61, 80, 81, 81,129,148,148, 20,236,221,187,215,131,199,227, 61,247,176, 39, 31,227,214, 86,163, 87,115, 68, -175,215,203,132, 66, 97,133, 64, 32,224,155,236,179, 18, 19, 19, 29,214,102, 89, 46, 0, 29,249,220, 26, 72,107, 67,225,243,249, -240,243,243,179, 27, 71, 32, 16, 16,211,216,168,215,235, 81, 94, 94,206,248,251,251,155,183,247,147,146,146,152,144,144, 16,134, -166,105,154,207,231,131, 16, 2,145, 72,212,232,128,207, 50,236,202,103, 38, 45, 51,159, 58,164,184, 98,217,188,183,235, 22,253, - 73, 73, 73,208,106,181, 72, 76, 76,212,189,247,222,123,185,101,101,101,243, 0,112, 78,156, 56,241,226,162, 69,139,104, 95, 95, - 95,179, 29,173, 53, 46,242,168,145, 45,107, 90, 46,211, 44,148, 16, 29, 29, 77,140, 71, 43,137,137,224,176, 44,123, 15,185,106, -140,120, 25, 39, 9, 98,171,211,209, 52,141, 31,126,248,193, 76, 8, 76,167, 14, 89,150,133,179,137,150,151,151, 87,245,128, 1, - 3,100, 89, 89, 89,159, 53, 87,147,181,125,221,202,173,113,171,222,241, 84, 94,255, 21,217,185,121, 80, 22,234,174,156,187,122, -231, 43, 0, 95, 1, 0,118,116, 77,192,236,235, 31,217,139,217,213, 71,212,187,103,128,244,171, 39,199, 60, 29, 52, 49,118, 62, -245,202, 43,175, 68,190,248,226,139,229, 47,188,240,194,107, 18,137,164,179, 86,171, 45,253,242,216,177,140,137, 19, 39,182, 99, - 24,230, 69, 91, 62, 71,116, 58,221,221,241,227,199,155,203,214,207,207, 79,118,240,224, 65,133, 84, 42,197,212,169, 83,139, 50, - 50, 50,204,219, 69,149,149,149,119,237, 73,163, 86,171,189,219,187,119,239, 70,183, 11, 77, 26, 73, 71, 48,141,117,105, 62, 93, - 88, 82, 82,130, 27, 55,110,128,195,225, 96,224,192,129, 56,119,238, 28, 34, 35, 35, 29, 58,113, 88, 91, 91,139,224,224, 96,212, -214,214,162,186,186,186, 6,128, 96,127,187,118, 0,128, 87, 75, 74,240,219,123,239,225,215,184,184,102,181,163,222,189,123,179, - 23, 47, 94,196,213,171, 87,161, 86,171, 49,115,230, 76, 24,183, 13, 1, 96,164, 3,121,238,224,231,231, 55,122,204,152, 49, 1, - 0, 80, 93, 93, 77, 46, 93,186, 4,161, 80, 8, 66, 8,242,242,242,112,244,232, 81,228,228,228,128, 16, 2, 15, 15,143, 64, 66, - 72, 59,150,101,239, 52, 49, 49,144, 59,119,238,224,221,119,223,133,193, 96,192,162, 69,139, 16, 26, 26,106, 38, 88,119,239,222, -197,234,213,171,193, 48, 12,222,121,231, 29,116,234,212, 9, 58,157, 78,232,136,159, 50,103,203, 27,111,188,145,246,213, 87, 95, - 29,207,202,202,122,106,221,186,117, 67, 9, 33,134,133, 11, 23,190, 43,147,201,152,251,193, 45, 45,175,196,141,219,119,205, 68, -168,225,229,227,237,233, 48,222,173,244, 44,243,255, 51,140, 37, 30, 3, 47, 79, 15, 71,147, 88,163,211,233,170,199,141, 27, 39, - 63,114,228, 8,233,212,169, 19,254,250,235, 47,211,226,180,166, 25, 46, 29,114,148, 74,101, 40, 77,211,188,219,183,111, 35, 36, - 36, 4, 3, 6, 12,192,154, 53,107, 80, 92, 92, 12,189, 94, 15, 95, 95, 95,131, 78,167, 75,210,104, 52, 63, 63,236,137,199, 82, -235,100,121, 37, 38, 38, 46,226,243,249, 44,128,139, 0, 28, 34,218, 44,203,106,218,182,109,219, 16, 91,143, 86, 34, 45,121,146, -209,223,223, 63, 81, 42,149, 62, 93, 90, 90, 90, 79,171, 21, 17, 17,161, 85, 40, 20,103,237,197,145, 72, 36,165, 52, 77,123, 1, - 64, 78, 78, 14,196, 98, 49, 47, 61, 61, 61,142, 16,242, 22, 0,180,107,215, 46, 78,169, 84,242,218, 25,199, 83, 63, 63, 63,104, - 52,154, 70,205, 88, 46, 36,229,239, 1,176,199, 98,238,205, 43, 47, 47,119,219,176, 97, 67, 85, 92, 92,156,138, 97, 24, 53,128, - 51,101,101,101,102, 63, 90, 33, 33, 33,229, 92, 46,215, 83, 46,151,183,177,128,186,135,139, 60, 74,210,164, 70,203,200, 36, 89, - 43,255,100, 85,147,101,141,108,217,163,149, 32,132, 64,165, 82,213,211,142,152, 78, 29, 90, 35, 90,198, 9,189, 89, 91,135, 70, -146,229,118,240,224,193, 3, 91,182,108, 57,111,239,255, 89,218,104,237,216,184,106,157,137,100,253,121,254, 36,190, 73, 45, 47, - 94, 20,183,105,115,115, 43,161,155,143,184,151,159,194, 59,225,189,181, 43,101,105, 63,236,197,161, 29,239,179,127, 94,190,220, -255,242,229,203,211,230,206,157,219,214,216,176,148, 0,254, 0, 48,209,158, 83, 58, 69, 69, 69,245,236,163, 66, 67, 67,111,202, -229,114,133, 80, 40, 68,122,122,122, 85,114,114,178,195, 91, 50, 13, 49,157,196,244,235,145,172,228,228,100, 12, 27, 54, 12, 0, -112,238,220, 57, 68, 68, 68, 56, 68,182,116, 58, 93, 89,215,174, 93,205,218,173,242,242,114, 3, 0,196,230,229, 33,222,223, 31, - 28, 14, 7,191,198,197, 97,137, 78,135, 53, 92,199, 76,119, 30,123,236, 49,246,242,229,203,200,200,200,128, 94,175,199,179,207, - 62,107, 73,178, 28,201,115,143, 46, 93,186,156, 58,115,230,140,143, 68, 34, 65,117,117, 53,170,170,170, 48,125,250,116, 76,154, - 52, 9,106,181, 26,135, 15, 31,198,183,223,126, 11,169, 84,138,234,234,106, 84, 87, 87,123, 68, 71, 71, 95, 32,132, 12,105,204, -182,144,101, 89,118,212,168, 81, 56,123,246, 44,104,154, 70,255,254,253, 81, 82, 98, 62, 12, 4,133, 66, 97,237, 25,109,236,239, - 15,101, 66,226,112, 56,108, 98, 98,226,186,161, 67,135, 34, 43, 43,235,169, 62,125,250,124, 56, 99,198,140,156,251,197,245,112, -151,162,119,183, 14, 80,171,213, 80,171,213, 8, 8, 8, 64,101,101, 37,210,210,210,160, 86,171,161,240,149, 59,140, 23,222,163, -147, 25,207,215,215, 23,213,213,213,184,115,231, 14, 52, 26, 13,188,189, 61, 28,169,255,160, 81,163, 70,253,116,224,192, 1,175, -189,123,247,106,162,162,162,248, 31,126,248, 33,145,201,100, 40, 44, 44,108,110,150, 19,207,157, 59, 23, 60, 98,196,136,176,235, -215,175, 35, 49, 49, 17, 26,141, 6,225,225,225,184,117,235, 22, 6, 13, 26,132,170,170,170,139,151, 47, 95,254,182, 53, 76, 60, -166,109, 61, 11,205,211, 18,185, 92,174, 5,176,249,126,218, 98,102,102,166,160, 87,175, 94,106,161, 80,200, 55,146,182, 77, 15, -171,109, 91,169,247,251, 58,201,216,148,248,249,249,205,243,246,246, 30,209,190,125,123, 20, 20, 20,240,248,124, 62, 34, 34, 34, -180,253,250,245,211,250,249,249,189,234, 64,189, 92,231,241,120, 67,234, 22, 19, 12, 50, 51, 51,193,178,236,162, 30, 61,122,188, - 94, 89, 89,137,146,146, 18,190, 76, 38, 51, 47,170,195,194,194,160, 86,171,175, 59, 64, 54, 87,134,132,132, 44,229,241,120,107, -138,138,138, 62,182, 82, 70,252,222,189,123,203,120, 60, 30,180, 90,109, 61,178,105,141,139, 60,202, 36,171, 30,209,178, 96,145, - 13,213,233, 54,183, 13,237,181,209, 34,132, 64,163,209, 64, 44, 22,155,183,164, 44, 61,193, 91, 35, 90,205,145,160,160, 32, 12, - 24, 48,192,237,208,161, 67,159,110,216,176,225, 66,115, 48,190, 56,240,137,191,187,161, 38, 40,247,226,247,184,121,245, 10,190, - 74, 41, 43, 94, 20,183,233,181,103,158,155, 92,208,144,152, 29,158,109, 27,175,179,175,184, 71, 27,133, 87,194,198,245,113, 50, -229,245, 95,145,151,159,143,239, 47, 94,190,162, 97,217, 20, 0,139,156, 85,217,150,167,215,154, 75, 82, 91, 96,224, 49,187,119, - 40, 46, 46, 70, 74, 74,138,137,100,133, 3, 64,100,100,100,146,137,108, 93,185,114, 5,125,250,244,185,199,189,195, 61,154,135, -210,210,181, 13,222, 49, 2,128,183,137,240,115, 56, 28, 68, 44, 93,234, 48,201, 34,132,176, 12,195, 64,169, 84,154, 86,138,205, - 34, 89,198, 65,241,205, 51,103,206,248,236,222,189,187, 98,223,190,125, 37, 6,131,129,219,187,119,239,192,190,125,251,146,253, -251,247, 3, 0, 38, 78,156,136, 69,139, 22, 33, 57, 57, 25, 98,177, 24,145,145,145,204,242,229,203,125,231,205,155,247, 42,234, -252, 36,221, 35, 12,195,240,218,181,107,119, 26,192, 19,215,175, 95, 7,128, 11, 44,203, 70,152,158, 55,245,204, 14, 49, 84, 86, - 86,114,165, 82,169, 85,215, 16,188,186, 99,157,142,110,245,153, 49,207,159, 63,255,238,198,141, 27,191, 90,176, 96,193,237,251, -196,180,170,209,122,250,233,167,161, 82,107,145, 93, 80, 14,134,209, 67,165, 45,116, 24,207, 82,163,245,244,211, 79,163,166, 86, -131,204, 60, 37,244,122, 6,149, 42,189,189,237, 72,244,228,147, 79,158, 56,120,240,160,223, 47,191,252, 2,134, 97, 12,183,110, -221,186, 51,110,220, 56,217,194,133, 11,189, 44,108, 80, 29,149, 45,147, 39, 79,158,112,254,252,121,101, 88, 88,152,231,197,139, - 23, 81, 88, 88, 8,189, 94,143, 39,158,120, 2,124, 62, 63, 51, 46, 46,142, 7, 96, 75,107, 33, 90, 2,129, 0,151, 46, 93,114, - 10,193,178, 20, 62,159,223,236,237,199, 71, 85, 46, 94,188,152, 51,119,238,220,110, 50,153,108,243,224,193,131,135,121,121,121, - 81, 30, 30, 30,137,109,218,180,121,189, 87,175, 94,118,239, 46,112,185,220, 25, 98,177, 56, 77,175,215,211, 85, 85, 85,168,174, -174, 6, 0,232,245,122, 62, 69, 81,104,215,174,157, 89,121,210,191,127,127,248,249,249, 49,169,169,169, 51,236,197, 47, 44, 44, -172,119, 10,209,138,204,142,136,136,224,168,213,106,100,100,100,156,179,124,208, 24, 23,105,237,210,172,160,210, 20, 69,129,101, - 89, 8,251,246, 69,222,201,147, 56,114,228, 72,147, 47,217,177, 99, 7, 26,170,250, 26, 70,247, 54,157, 46,156, 53,107,150,249, - 55, 87,174, 92, 49, 27,197, 63,251,236,179,245, 48, 47, 93,186,116, 15,217,178, 39, 98,120, 97, 97,225,245,195,135, 15, 95, 94, -191,126,253, 69, 59, 11,200,140,105,178,209,154, 48,101,106,222,214,119,255,115,109,223,209, 51, 61,242, 84,108,222,162,184, 77, - 11, 26,146, 44,123, 49,187,250, 73,186, 6,250,122, 37,110, 88, 31,231,110,210,142, 29, 76,202, 47,135,158,157,237, 96, 69,218, -204,187,165,102,145, 16, 98,112, 6,102, 51, 26, 92, 61, 76, 75,247, 14,121,121,121,102,146,101,225,176, 52, 60, 50, 50, 50,201, - 72,178, 76,207,244,205, 73, 39,135,195,193,130,170, 42,112, 56, 28, 68,173, 88,129, 39, 86,173,114, 56,239, 12,195,128,195,225, - 32, 52, 52,212, 97,146,101,137, 73, 8,137,168,169,169,193,222,189,123, 43,111,223,190,221,161,125,251,246,243,246,236,217,179, - 73, 36, 18,213,251,159,154,154, 26, 60,243,204, 51,248,248,227,143, 49,106,212, 40,221,140, 25, 51, 4, 20, 69,141,104, 42,157, - 25, 25, 25,179,135, 15, 31,190,163,182,182,150, 83, 82, 82, 50,219,222,103,182,242,126,248,240,225,219,161,161,161, 67,209,184, - 11, 7, 3,128, 95,238, 7,115,243,230,205, 0, 16,118, 63,152,141,105,180, 62,255,252,115, 24, 12, 6, 4,249,201,161, 86,171, -209,176,172,109, 97, 54,212,104, 29, 58,116, 8, 6,131, 1,109,253, 61,161,209,104, 96, 50, 32,182,133,233,229,229,245,254,190, -125,251, 2, 83, 83, 83,145,157,157,141, 77,155, 54,221, 45, 43, 43, 27, 83, 86, 86, 38, 88,190,124,121,194,148, 41, 83, 20, 6, -131, 65,237,104,223,100, 89, 86, 77, 8,153,241,248,227,143,239, 95,189,122,245, 95, 93,186,116,105, 27, 17, 17, 33, 47, 41, 41, - 41,250,253,247,223,239,236,216,177, 67,162,215,235,103, 52,182, 37,245, 32,250,187,165,228,228,228,172, 48,106, 83, 29, 34, 88, -246,164,243,210,165, 75,111, 27,177, 47,219,131,253,160,242,126,191, 39, 25,109,165,243,163,143, 62,202, 70, 3,255,104,142,166, -243,210,165, 75, 25, 35, 70,140, 88,165, 80, 40,150, 11,133, 66, 20, 21,213, 5, 59, 48,105, 30, 77,243,117,223,190,125, 49,106, -212, 40,220,188,121,115,213,210,165, 75, 51,238,167, 60,141, 11,238, 14, 0,166, 13, 31, 62,124,225,132, 9, 19,240,209, 71, 31, -129,101,217, 93,255, 4, 18,108, 51,168,116,116,116, 52,177,252, 11, 0, 58,157, 46, 43, 45, 45,205,191, 83,105, 41, 29, 64, 8, -250,247,239, 15,203, 24,133, 38,187, 29,147, 65,221,207, 63,255,172, 55, 24, 12, 77,250,172, 98, 24, 38,235,252,249,243,138,147, - 39, 79,114, 77, 21,106, 52,234, 52,228,230,230, 82, 9, 9, 9,102,237, 24,135,195, 65, 98, 98, 81,136,152,192, 0, 0, 32, 0, - 73, 68, 65, 84,162, 94,171,213,102, 58,154,225,155, 55,111, 58,101, 53,247,115,114,198,235, 39,190,255,218,123,224,128,193,101, - 50, 79, 79,171, 29,217,228, 65,190,201, 6,198,161,214,172, 91,187, 82,110, 34, 89,159, 39,229,151,213,170,153, 97,215,139,106, -254,116,118,101, 87, 86, 86,102,152, 78, 23, 86, 85, 85,101,182,162, 70,248, 59, 33, 36,220,223,223, 63, 9, 13, 78, 23,154,158, -245,233,211,231,158,103, 14,169, 77, 12, 6,184,187,187,155, 7, 9, 71,237,178, 8, 33,172,105, 43,219,152, 46,114,159,121, 62, -127,237,218,181,144,233,211,167, 75, 67, 67, 67,211, 9, 33,220,152,152, 24,173,159,159, 31,239,220,185,115, 58, 0,100,232,208, -161,156,252,252,124, 54, 39, 39, 71,249,175,127,253,171,114,214,172, 89, 94,127,252,241, 7,223, 96, 48,156,178,129,253, 23,128, -225,142, 62,179, 37, 19, 38, 76, 72,135, 21,199,161,247, 35, 45,129,105, 18,101, 89, 5,210, 51,114,140,177, 46, 13, 96,238, 22, -152,237,170,116, 58, 61,148, 21, 37, 14,107,180,210,238,228, 24, 67,142, 49, 96,152, 92, 35, 94,157, 65, 60, 91, 90, 99,143,182, - 32,114,243,230,205, 99, 40,138,162,126,253,245, 87,245,250,245,235,179,138,138,138,158,101, 89, 54,211,216,206,162,246,238,221, -251,169, 29,174, 28, 26,171,251, 20, 66,200,160,197,139, 23,191, 6, 32, 18, 64, 91, 0,153, 0,206, 1,216,210,202, 60,152,111, -122, 68,177,155, 45,143,202, 73,198, 83,167, 78,173, 24, 59,118, 44, 39, 56, 56,248,255,130,131,131,169,210,210, 82, 84, 85, 85, -129,162, 40,248,249,249,161,123,247,238,240,243,243, 51, 92,191,126,125,237,226,197,139,109,250,228,235,214,173, 91, 7,157, 78, -215,145,162,168, 14, 0, 58,176, 44,219,129, 16,210, 1,128,167, 81, 51, 38, 11, 9, 9,225, 12, 28, 56, 16, 3, 6, 12, 64, 66, - 66, 2,190,248,226,139, 61, 44,203,158,176,212,102, 53,228, 34,173, 65, 82,250,146,161,196,128, 4,150, 66, 84,183,223,216,196, -235,225,132,237,154,116,239,252, 96, 51,168,244, 61, 3, 78,105,233,168, 49, 99,198,156,164,105,186,157,181,137,203, 74,240,231, -140,130,130,130,167,154, 28,196, 74, 75, 71,189,254,250,235, 39,105,154,110,103,210, 84,233,245,122,181, 82,169,124, 37, 42, 42, -106, 27,151,203, 21, 88,226, 26, 12,134,187, 5, 5, 5, 15, 52, 86, 95, 67, 63, 90,163,198,140, 45,190, 95, 76, 9,143,234,120, -243,216,127, 81, 80, 88,140,207,147,242, 75, 43, 53, 76,212,205,162,234,107, 45,145,254,140,140,140,209,173,152,241,255,222,216, -150, 96, 83,207,236,148, 34, 59, 28,146, 22,217, 72, 31, 49,146, 45,167,116,242,252,252,252, 13, 75,151, 46, 29,185,118,237, 90, -159,227,199,143,203,140,239,192,248,241,227, 11,175, 93,187, 54, 24,128,160,182,182,246,212,218,181,107,125, 86,174, 92,233, 5, -192,203, 56,200, 20, 20, 20, 20,108,133, 75,154, 20,157, 78,151,221,189,107,152,169,238,234,185,116,176,188,215,235,245,217,142, -224, 89,195,177,252,204, 48, 76,182, 13,173,242,130, 1, 3, 6,208, 11, 22, 44, 40, 56,126,252,184, 41,144,110,141, 69, 59,187, -137, 38,156,146,218,217,151,212, 0,214, 27, 47,151,180,194,177,206,145,207, 15, 75,190,254,250,235,101,147, 38, 77,218,235,233, -233,249, 73,135, 14, 29,194, 20, 10,133,204,205,205, 13,106,181,186, 82,163,209,220,184,121,243,230, 11, 75,151, 46,253,203, 30, -172,189,123,247,210, 0,120, 6,131, 65, 72, 81,148, 24,128,140, 16,226, 97, 34, 90,132, 16,104,181, 90,100,100,100, 96,201,146, - 37,204,233,211,167,223, 3,240,142, 3,201,237, 7,192,199, 98, 28,247, 1,160, 65,157, 3,219, 34,163,102,179, 69,132, 24,144, -208, 53,137, 37,215,195, 73,163, 70,250, 54,131, 74, 55,210, 80,170, 1, 12,114,114,227,107, 10, 51,184,181,116,146, 23,213,235, - 63,195,142,245,245,226, 28,154, 72,152,213,207, 54, 54, 0,203, 85,250,185, 91, 78, 36,111, 80,235, 89,131, 86,111,120,233,102, - 97,117,202,255,240, 0,164,111,206, 51, 59,112,159,116, 82,250,136, 19,243,122,141, 16,242,248,220,185,115,151,137, 68,162,254, - 0, 80, 83, 83,243,107,110,110,238, 42,211,169, 66, 91,207, 93,210, 4,107, 46, 42,234,219, 26,241, 52, 26,205,235,143, 63,254, -248, 7, 12,195,108,212,233,116,231, 92, 53,229,146,214, 44,159,127,254,249, 95,166,121,249,249,231,159,167, 1,224,240,225,195, - 14,159, 6,158, 62,125, 58, 99, 12,100, 94, 11,160, 26, 64, 5,234, 28,110, 19, 0,168,174,174, 46,205,205,205,189,206, 48,204, -117, 0,159, 54,227,196,173, 15, 33,228, 59,150,101,159, 54,142,157,223,177, 44,251,180,229,119, 45, 45, 22,100,203,218,120,111, -219, 24,222, 37,117,114, 56,249,239,137,182, 33,129,178,245,185, 49,185,145, 95,149,120,191, 43, 88,151, 60,178,196, 50, 29,192, -139,205,125,238,146, 71,178,206, 51, 1, 60,235, 42, 9,151, 60,114,243, 95, 51, 8,150, 73, 82, 82, 82, 90,204, 68,224, 97,139, -229, 54,161,181, 45, 67,147, 88,211,102,185,136,150, 75, 92,226, 18,151,184,196, 37, 46,113, 73, 83, 36,210,104,163,101, 38, 81, - 70, 91,173,134, 36,203,146, 92, 89,126, 38, 0, 70, 52,178, 42,115,228, 52,193,136,102,172,250, 78,185, 48, 93,152, 46, 76, 23, -166, 11,211,133,233,194,252,223,194,108,166, 68,219,216, 58, 60,214, 82, 68,203,100,252,158, 18, 78,150,119, 75, 98,151, 91, 51, -134,111,138,104,213, 51,246,116,246, 5, 96,132, 11,211,133,233,194,116, 97,186, 48, 93,152, 46, 76, 23,230,125, 94,195,222,122, -235,173,183, 81, 23,255,152,125,235,173,183,222,102, 89, 54,186,142,198,176,209, 45,249,238,228, 62, 24,154,242, 24, 88,211,149, -220, 7, 67, 27, 41,147, 88,211,101,249,189,107,235,208, 37, 46,113,137, 75, 92,226, 18,151,180,118,185, 16, 23, 23, 87, 19, 23, - 23,103, 50,124, 47, 2, 64,140,218,172,162,150,124,177,113,155,208,230, 65, 41,155, 33,120, 30,180, 16, 66, 2, 40, 14,111, 42, -151, 39, 24, 6,214,208, 29, 0, 64,209,201,140,166,246, 39,189, 94,251, 9,203,178,185,205,197,238, 74, 72,215, 78,114,183,111, -213, 12,195,203,170,212, 76,184,206,178,151,154,131,243, 60, 33, 17, 2, 62,255, 71,129, 92,110,213, 75,161,186,172, 76,165,214, -104, 70, 30,102,217,243,174, 62,224, 18,151,184,196, 37, 46,121, 20,132, 16, 34,246,240,240, 56, 77, 81, 84,176,197,119,176,118, - 15, 0, 12,195,228, 41,149,202,145, 44,203, 22, 63, 72,204, 6,162, 1,112,169, 53,148,159,163, 91,135, 28,160, 94,108, 33,155, - 17,179,187,248, 75, 6,135,117, 8, 62,144,155, 95,144, 84, 81,171,137,185,145, 83,169,116, 52,145, 28,158,112,150,220,219,111, -205,191,103,188,238, 21,218, 57,140, 4, 5,181, 1, 88, 32, 51, 43, 91,145,118,251,214,240, 67,251,182,188,193, 19, 10,151,104, -107,107,255,235, 48,243, 36, 68, 28, 44, 17,156,251,239, 91, 83,228, 28,232, 49,121,245,129, 31,186, 17, 18,148, 82,231, 90,194, - 33,146, 37,247,242, 58, 17,119,234,148,155,135,209, 1,168, 5,107,173,139,175,247,231,159,110,255, 55,114,228,137,231, 9, 25, -229, 34, 91,255,200,193,200, 79, 38,147,205,227,114,185, 81, 90,173, 54,152,207,231,103, 49, 12,147, 88, 90, 90,186,153,101,217, - 28, 87, 9,185,196, 37, 54,251, 80,163,129,204, 31,102,144,115, 0,144, 74,165,191, 81, 20, 21,104, 73, 2, 76,254, 29, 27,250, -137,180,240, 23,249, 87, 73, 73,201,227, 77,228,183,131,167,167,231, 54, 0,253,108, 57, 76, 54,110, 53, 93, 86, 42,149,175, 24, - 79, 31, 91,195,147,122,120,120,172, 32,132, 60, 79, 81,148,205,128,194, 6,131,129, 97, 89,246,112,105,105,233, 59, 44,203, 86, - 54,246, 59, 15, 15,143, 83,169,169,169,253,124,125,125,109,106,105,244,122, 61, 50, 51, 51,125,250,247,239,255, 51,128, 46, 45, -137,233, 8, 23,121,152,210,212,201, 67,171,156,199,116, 99,111,196,108,131, 1, 83,119,175,121,165, 77,222,221,219,109,102,175, -253,172,115, 23,111, 81, 84,106,113, 77,190,189, 47,228,187, 73,191,141,124,226,233, 97,115, 94, 91, 32,254,253,218, 13,252,152, -240, 11, 42,170,213,160, 41, 10,114,169, 8,157, 59,119, 36,155,226,143,120,239,217,190,105,163,155, 68, 30,173,170, 42,251,151, - 35, 25, 18,139, 56, 75, 22,141,235, 47,246,242,100, 0, 3,131, 55,199,244, 22,255,223,119, 73, 75, 0,188,237, 48,201, 58,125, - 90, 84, 88, 80,128,149, 1, 1,224,232,245, 16, 82, 20,132,132, 64, 72, 81, 16, 11,133, 24,189,107, 23, 86, 29, 63, 46, 90,246, -212, 83, 46,178,245, 15, 19,169, 84, 58,163,115,231,206,235,119,238,220,233,213,190,125,123,136,197, 98, 40,149, 74,239,155, 55, -111, 62, 54,127,254,252, 23,221,221,221,151,150,151,151,239,112,149,148, 75, 92,210, 40,233,120, 12,128,213, 32,241, 77, 61,123, - 80, 66, 81, 84, 96, 78, 78,142,175, 72, 36, 2,195, 48,198,104, 0, 6,243, 66,218, 50, 82,142,209, 81, 45,186,116,233,162,181, - 49,110,124, 84, 88, 88, 56,194, 50, 20, 90, 83, 17,119,114,114,114, 70,116,235,214,237, 35, 0, 35, 27, 33, 47, 43, 94,123,237, -181,121, 61,122,244, 48,105,129,140, 81, 16,234,254, 22, 23, 23, 99,238,220,185,230,119, 24, 12, 6,156, 60,121,242,181, 25, 51, -102, 0,192,252, 38,242, 30,236,235,235, 75,102,207,110,218, 71,209,242,229,203,177,124,249,114,108,217,178,133,112,185, 92,185, -141,242,116, 10,166,189, 92,228, 97,104,176, 26,122,136,111,240,179, 99, 13,226, 29, 30,187,135,104,217,221, 56, 89,195,247,171, - 55,239,140, 89, 57, 61,146,236,158, 63, 34,244,229, 45,167,126,233, 22,224, 54, 36, 37, 87,149,101,135, 38,235,165,129, 67,158, -138,154, 59,111,145,248,179,175,207,224,230,245, 63,145,122,238, 96,189,223,244, 29, 57, 3,249,197,149,152, 49,231, 77, 9,161, - 57, 81, 60,161,232, 37,109,109,205,110, 59,181, 89,138,110,158,162,255, 55,176,127,119,110,142,219, 77,248,121,184, 33,178, 79, - 39,110,208,137,171,255,175, 27, 33, 31,164,176,172,205, 88,133, 13, 73,214,206, 41, 83, 48, 88,167,131, 47, 77,131, 38, 4, 52, - 0,138, 16,212,170,213,184, 60,117, 42,250,239,223,143,119,142, 30, 21,173,120,230, 25,135,201,150, 72, 36,218,163, 82,169,214, - 53,195,113,219,195, 28, 60, 59, 75,165,210, 37, 21, 21, 21, 83, 91, 81,154,252, 1, 20, 89,137,143,200, 3, 32,103, 89,214,161, -200,194, 66,161,112,214,228,201,147, 55,109,221,186, 85, 84, 80, 80,128,220,220, 92, 48, 12, 3,161, 80,136,208,208, 80,114,234, -212, 41,175, 69,139, 22,109,144,201,100,130,138,138,138, 15, 28, 72, 39,197,229,114,167,123,122,122,142, 85, 40, 20,190, 69, 69, - 69, 69,165,165,165, 71,213,106,245,238,230,174,236,141,152, 47,132,132,132,140, 13, 8, 8, 80,228,228,228, 20,103,103,103,127, -171, 86,171,247,176, 44,107,184,207, 50,237, 5,163,183,122, 0,121, 33, 33, 33,201,119,238,220, 41,116, 34,102,110, 72, 72, 72, -138,163,152,132, 16, 49,128, 67, 0, 2,108,252, 52, 23,192, 68,214, 65,109,182, 75,156, 71,178,140, 33,173,234, 17,170,166,158, - 61,104,113,115,115,195,193,131, 7,193,229,114,193,229,114, 81, 90, 90,138,192,192, 64,243,103, 30,143,103,190,111,219,182,173, - 77, 60,134, 97,250,211, 52,141,170,170, 42, 48, 12, 99,190,202,202,202,192,178, 44, 4, 2, 1, 24,166, 46,156,147,197,243,254, - 77,148,227,243, 1, 1, 1,248,236,179,207,160,209,104,238,121, 46,147,201,112,237,218,223, 65, 70,104,154,198,128, 1, 3, 40, - 66,200,243, 77, 17, 45, 66,234,156,110,198,198,198,130,166,105,115, 72, 61,211,189,233, 98, 24, 6,203,151, 47,135,101,104,178, - 7,137,217,234,218,117, 19, 30,226, 89,150,205, 3, 96,213, 70,139,106, 10,180,139,159,228,149, 55,166, 60, 89,179, 52, 38,154, -253,191, 23, 71,178,139,167, 68,177, 79, 13,233,249, 53,205,225,144,139, 41,153, 8,116, 7,246,204,237, 23, 28,228, 45,190,214, -195, 75,218,217,138,106,212, 50,160,116,128, 72, 44,123,247,149,215,223,148, 28,251,249, 42, 50,179, 50,239, 33, 89, 0,240,219, -143,123,144,151,155,131,164,212,108,188,240,210,171, 18,153, 76,254, 46, 33, 36,192, 26,102, 67,113,151,242,222,123,107, 98,164, -176, 74,151,139, 74, 15,128,238,192, 7, 87, 84,141, 69, 79,247, 18,200,164,188,245, 77,168,112,205,152, 2, 62,255,199,184, 83, -167,204, 36, 43, 66,173,134,128, 97,160,103, 24, 51,201,210,232,245, 80,105, 52,240,175,170, 66,218,140, 25, 96,117, 58, 44,253, -234, 43,145,128,207,255,209,158,116, 90,172, 0,198,200,100,178, 4, 66, 72,103,123, 42,185, 37,142,204, 58,232,198,163,179, 84, - 42, 77, 32,132, 60,213, 26,210, 73, 8,161, 8, 33,171, 99, 98, 98,174,116,236,216,241,140,145, 88,153,158,113, 58,118,236,120, - 42, 38, 38,230,119, 66,200,114, 66, 8,101, 39,102,155,128,128,128, 53, 91,183,110, 21,221,186,117, 11, 57, 57, 57,208,233,116, -152, 60,121, 50, 24,134,129, 74,165,130, 70,163,193,186,117,235,196, 94, 94, 94, 75, 8, 33,193,246,228,157, 16, 66,187,187,187, -239,221,183,111, 95,236,157, 59,119,252,126,250,233, 39,234,234,213,171,138,141, 27, 55,206,240,242,242,218,111, 12,184,234, 80, -121, 18, 66, 40,127,127,255,221,223,124,243,205, 43,215,174, 93, 11,252,242,203, 47,185,191,254,250,171,255,246,237,219,103,250, -251,251,239, 39,132,208,205,169, 35, 66,200, 99, 34,145,104,248,194,133, 11, 13, 23, 46, 92,200,185,112,225, 66,206,166, 77,155, - 48,120,240,224,136, 85,171, 86,133, 55, 19,179,143, 84, 42,125, 98,225,194,133,134,179,103,207,230, 94,188,120, 49,123,195,134, - 13,212, 19, 79, 60, 17,185,118,237,218, 94, 14, 98, 30,186,112,225,194,208,172,172,172,246,217,217,217,237,178,179,179, 67,178, -179,179, 67,114,114,114,130,243,242,242,218,230,231,231, 7, 21, 22, 22, 6, 37, 38, 38, 70, 2, 56,208,218,250,209, 63, 29,211, -216,150,147, 88,150,133, 82,169,196,177, 99,199, 96,212, 94, 61,102, 73,178, 42, 42, 42,144,151,151,103,122,198,121, 8,233, 4, -195, 48,102, 34,117,242,228, 73,196,196,196, 64,169, 84,154,191,227,112, 56,230,123,211,255,216,194, 52,105,158, 24,134,193,197, -139, 23, 49,123,246,108,108,218,180, 9, 7, 14, 28,192,119,223,125, 7,165, 82,105, 38, 91,122,189,222, 38,102,113,113, 49, 12, - 6,131,189,121, 68,121,121,185,221,245,110, 73,128, 56, 28,206, 61,164,200,116, 57,210,150,238, 7,179, 53, 75, 99, 30,225,237, - 17,115,227, 54,170,234,162, 44, 31,134,133,248, 45, 89, 63,239,121, 55, 48, 90,176, 58, 21,160,173, 1,180, 85, 48,104,106, 64, -120,110,128, 78, 5, 31,129, 18,135,230,132,201, 22,127,150,126,189,171,143, 44,250,122, 81,197, 15, 86, 73, 5,135,247,194,243, -211, 95,243,202, 46,172, 64, 78, 65, 57,104,234,239,121, 47,124,196,116,112,104, 10,151, 78,212, 41,174, 40,154, 70,121,181, 26, -101, 85, 90, 76,152, 62,207,243,191,155,254,243, 2,128,117, 77,101,164, 39, 33,161,131, 2, 60,199,117,235,214,150,186, 46, 72, - 69,248, 83,231,192, 24, 0,246,236, 51,120,172,212,151,238,242, 35,127, 92, 79, 66,214, 92,101,217, 91, 77,225, 8,228,114, 55, -143, 94,189,176, 50, 32, 0, 67,116, 58,240, 88, 22, 79, 22, 20,224,207,121,243,160, 62,114, 4, 20, 0,222,115,207, 97,216,230, -205,248, 57, 32, 0,126, 42, 21,202,222,120, 3, 62, 63,252, 0,158, 76,230,230, 72,225,243,120, 60,237,206,157, 59, 3,102,206, -156,153, 64, 8,137,106,205,154, 45, 66, 72,103, 79, 79,207,132,119,223,125, 87,177,108,217,178, 60, 39, 97, 42,196, 98,241,225, -234,234,234,121,142,174,104,141,196,105,245,142, 29, 59, 94,142,141,141,149,207,156, 57,147, 77, 75, 75,147, 3, 48,105, 71,124, - 6, 15, 30,220,113,231,206,157,126,253,250,245,123,109,246,236,217, 60, 66,200, 82, 91, 90, 30,137, 68, 50,103,231,206,157,222, -197,197,197,168,170,170, 50, 15,178,217,217,217,112,115,115, 51, 7, 85,231,114,185,120,247,221,119,189,230,204,153, 51, 15,192, - 60, 91,233, 21, 8, 4,211,183,109,219,214,105,212,168, 81,156,140,140, 12, 80, 20, 5,129, 64,128, 41, 83,166,112,107,106,106, -130, 87,174, 92, 25, 11, 96,155, 35,101,192,229,114, 95,136,143,143,239, 28, 17, 17,193, 73, 77, 77,197,160, 65,131,112,233,210, - 37, 60,247,220,115,220,202,202,202,118,139, 22, 45,138,105,108,133,213,148,214, 73, 36, 18,245,248,233,167,159,178,130,130,130, -204, 3, 75,187,118,237,152,232,232,104,101,106,106,106,216, 47,191,252, 82, 50,104,208,160, 76, 7, 48,219,136, 68,162, 46,223, -127,255,125,222,202,149, 43,135,239,216,177,227, 89, 0,232,223,191,255,183,171, 86,173, 58,163, 84, 42,187,159, 61,123, 86, 57, -120,240,224,108, 59, 33, 3,252,253,253,153,185,115,231, 74,154,250,209,174, 93,187,202, 0,180, 37,132,180, 55, 6,218,118,201, - 3, 16,150,101,245,132,144,112, 66, 72,210,177, 99,199, 48, 96,192, 0, 28, 59,118, 12,209,209,209, 73,150,100,224,218,181,107, - 24, 50,100, 8, 80, 23, 72,254,161,216,106, 49, 12, 3, 14,135,131,236,236,108,236,218,181, 11,107,215,174, 69,104,104, 40,116, - 58,221, 61,100,203, 72,136,236, 82,193,232,245,122, 92,190,124, 25,159,236,223,143,165, 75,150, 64, 42,149, 2, 0,180, 90, 45, -148,165,165, 16, 10,133,102, 50,102,163, 44, 15,223,190,125,123, 94, 96, 96, 96,189, 45, 67,211, 95,227,152, 5,131,193, 0,189, - 94,143,218,218, 90,108,218,180, 73,207,178,236, 97, 27,125,210, 76,138,230,205,155, 7,181,250,239, 56,228,189,140, 54,201, 33, - 33, 33,232,221,187,183,249, 51, 69, 81,172,189,152,255,125,188, 7, 84, 22,191, 14, 91,190, 1, 0, 16, 24, 24,136,176,176, 48, -248,251,251, 55,138,105,141,139, 60,108,105,104,147,213, 44, 27,173,198, 34,101, 95,191,147,191,110,230,162, 13, 27,196, 66,154, -251,250,216,158,104, 43,231, 1,110,158,224, 13, 89, 12, 34,175, 91,200,179,202,191,128, 31, 23, 99,227, 56, 37, 21,251,105,237, -215, 29, 61, 61,125,210,148,202,123,140,240,184, 60,225,176, 14,157, 58,147,204, 60, 37, 56, 28, 14,196,238,222,120,124,236,124, -208, 52, 5,137,220, 27,132, 81,253,205,136, 41, 26, 28,154, 3,101,165, 10, 33,237, 59, 81, 2,161,219, 48, 91, 68, 75,230,206, -221,182,112,210,227,194, 18,125, 54,220,218, 10,193,152,166,211, 0, 62, 40,175, 74, 44, 24, 29,234, 22,251,237,213,109, 0,158, -176,167, 96,104,189, 30,190, 52, 13, 45,203,226,207,121,243, 16, 30, 31,143, 36, 19, 49,140,143, 71, 82,108, 44, 60,185, 92, 8, - 40, 10,172, 78,119,207,158,190,157, 19, 16,198,142, 29,139,226,226, 98,197,146, 37, 75,154, 77,182,220,220,220, 62, 33,132,140, -225,114,185, 90, 66, 8, 40,138, 50, 7, 1, 55,221,107,181, 90, 30, 77,211,223, 23, 23, 23, 59,188,229, 71, 8,233,236,225,225, -145,112,225,194, 5,133, 88, 44,198,242,229,203,157, 66,178,164, 82,233,175, 49, 49, 49,109, 63,249,228,147, 31, 8, 33,163,237, - 37, 91, 13, 73, 86,124,124,124,217,174, 93,187,254,107,185, 69,200,178,108, 30, 33,100,119,191,126,253, 94,137,141,141,149, 3, -120,121,246,236,217,176, 69,182, 4, 2, 65, 84,135, 14, 29,234,173,106, 5, 2, 1, 0, 64, 44, 22,195,221,221, 29, 60, 30, 15, -106,181, 26,225,225,225,132,207,231, 71,218,147,102,169, 84, 58,102,220,184,113,156,243,231,207, 35, 63, 63, 31,238,238,238, 16, -139,197, 96, 24, 6,179,102,205,226,109,222,188,249, 41, 71,137, 86, 80, 80,208,179,195,135, 15,231, 36, 39, 39,227,206,157, 59, - 80,171,213,184,121,243, 38,100, 50, 25,166, 77,155,198, 91,191,126,253, 51,142, 18, 45, 0, 61, 98, 99, 99, 11, 44, 73,150, 73, -196, 98, 49,233,220,185,179,210,203,203,171, 15,128, 76, 71, 48, 95,125,245,213,194,184,184,184, 33,167, 78,157, 90,108,250,242, -212,169, 83,139, 0,224,131, 15, 62, 56,235,227,227,211, 7,128,189, 68, 11, 44,203, 26,254,253,239,127,223,229,243,249,224,114, -185,224,243,249,245, 46, 30,143, 7,138,162,164,166,238,252, 79, 37, 53,132,144,126, 0,222, 71,221,137,172, 37, 44,203, 94,108, - 37,100,235,119, 66, 72,120,116,116,180,153,108, 29, 63,126, 28,163, 71,143, 70, 89, 89, 25,146,147,147, 45, 73,214,195,178,209, -130,193, 96, 0,151,203,197,134, 13, 27,160,213,106,241,233,167,159,226,139, 47,190,168, 55,134,202,100, 50,108,217,178,197,161, -109, 46,134, 97,176,119,239, 94, 44, 94,180,200, 76,178,140,139,107,248, 41, 20,240,242,246, 70,122,122,186, 77,162, 85, 90, 90, -250,206,209,163, 71,209,148, 49,252,209,163, 71,205,247,150,198,240,118,205,115, 52, 13,181, 90,141, 39,159,252, 59, 84,236,171, -175,190,106,190, 87, 42,149,160,105,218, 84, 22,196, 94, 76, 21, 11,140, 21,254,253,221,152, 5, 11,234,105,232, 26,195,108,140, -139,180, 70,237,150,149, 83,135,225, 44,203, 38, 25, 77, 36,162, 1, 28, 51,110, 39, 54,109,163,117,171,176,122, 43,135,228,245, -142,155, 59,114,122, 91, 95,119,176, 85, 5,224, 61,241, 14,254, 40,114,195,134, 77,223, 3, 0,222,156,210, 23,189, 70,172,134, -102,207, 72,204, 27, 68,243,167,102,171, 23, 2, 88,118,111,199, 51,116, 9,108, 19,128, 63,210,174,129, 67,211,224,187,123,195, -221, 83, 1,131, 94,131,242,194, 59, 72,248,242, 35, 0,192,142,189,135, 65, 81, 20, 56, 28, 26,106, 13,131,208,182, 1, 48, 24, - 12, 93,154, 74,103, 55, 66, 30, 31,223,217,127, 64, 80,176,156, 36,123,220, 65,103, 95,175,250, 63,120, 76,128,208, 92, 9, 25, - 36,113,235,223,141,144,199, 83, 88,246,130, 77, 13, 4, 69,129, 34, 4, 34, 30, 15,234, 35, 71,144,100, 36, 88, 0,144, 20, 27, - 11,234,235,175, 33, 21, 8, 64, 19, 2,142, 81, 5,221,156,142, 14, 0, 97, 97, 97,216,177, 99,135, 98,206,156, 57,205, 34, 91, -181,181,181,107,100, 50,217,240,221,187,119, 43,198,141, 27,119,207,243,180,180, 52, 12, 25, 50,164, 32, 63, 63,127,205,253,144, - 44,185, 92,142,172,172,172,251,222, 87, 55,145,172,147, 39, 79, 6, 7, 6, 6, 34, 60, 60,220,231,205, 55,223,116,132,108, 45, -179, 36, 89,179,103,207,190, 10,192,151, 16,210,144,168, 16,227,179,158, 22,100,171, 28,192,250, 38, 86,162,193, 98,177, 24,133, -133,133,152, 62,125, 58,110,221,250, 91, 1, 26, 16, 16, 96, 94,233,165,167,167,195,199,199, 7,132, 16, 95,123,242,236,227,227, -163,208,104, 52,120,233,165,151,144,149,245,183, 57, 99,155, 54,109, 76,101,234,237,104, 57, 42, 20, 10,133, 74,165,194,224,193, -131, 81, 91, 91, 11, 0,152, 56,113, 34,184, 92, 46, 10, 11, 11,193,229,114,189,155, 81, 61,222,209,209,209,141,186, 86,145,201, -100, 90, 15, 15,143,174, 14, 98,122, 61,243,204, 51, 57,241,241,241,247, 28,108,185,116,233,210,191, 60, 61, 61, 79,121,122,122, -118,118, 16,211, 96, 73,170,120, 60, 94, 61,162,197,229,114, 65, 81,148, 1,255,124,121, 15,128,233, 20,220,199, 0,122,183, 34, -205,150,153,108, 29, 63,126, 28,221,187,119, 71,105,105, 41, 82, 83, 83, 31, 58,201,178, 32, 38,224,112, 56,230, 69,178, 80, 40, - 68,120,120,184,153,100, 17, 66, 80, 83, 83, 3, 14,135, 99, 26,175,237, 26,252,202,202,202,224,239,231, 7,169, 84,138, 78,161, -161,184,109, 28, 71, 76,247, 2,129, 0,132, 16,232,245,122, 91,101, 88,137, 58, 91,171,249,206,174, 30, 19, 41,106, 82,117, 28, - 16, 0,131,193, 96, 26,243, 89,103, 96,122,123,123,163,170,170,202, 94,204, 86, 41,141,104,180,194, 1, 36, 1,136,102, 89, 54, -222,104, 24, 95,207,189,195, 80, 0, 9,176, 56, 82, 73, 8,161,186, 42, 36,187,226,230, 12,159, 62,178,187, 55, 84, 69,119, 32, -148,122,131,200, 67,176, 97,211,247, 72,254,171, 4, 0,176,225,192,111,248,108,229, 24,192,205, 19, 97,238,197,240,147,114,198, - 89, 35, 90, 4, 44, 49,176, 44, 56, 52,101,220,187,165, 65,211, 20,148, 69,121,216,252,206,203, 70,146,245, 5,142,157, 77, 69, - 96,135,238,127,239,227, 18, 2,176, 77, 55,110, 31,119, 94,252,156,241, 3,221, 10, 72, 30,228, 1, 34, 8,133, 13,248,163, 7, - 15, 36,132,194,220,168, 64,209,229,163,181,241, 0,108, 78, 20, 66,138,170, 51,126, 39,196,170, 33, 27,101,124, 70, 19, 82,231, -253,213,224,248,152,110, 34, 44, 18,137, 4, 10,133, 2,107,215,174, 85,188,245,214, 91,159,194,193, 0,212, 44,203,222, 36,132, - 68,205,154, 53, 43,161,164,164, 68, 17, 22, 22, 6,137, 68, 2,137, 68,130,130,130, 2, 76,152, 48,161, 32, 63, 63,191,185,218, -178,253, 49, 49, 49, 10, 30,143,135,180,180, 52,120,122,122,154, 9, 98,115, 73,150, 76, 38,251,245,212,169, 83,193, 29, 59,118, -196,141, 27, 55,208,181,107, 87, 28, 58,116,200,103,242,228,201,118,145, 45, 55, 55,183,177, 70,226,132,216,216, 88,121,108,108, -236, 80, 0, 67,109,189, 59, 54, 54, 86, 62,127,254,252,103,154, 34, 90, 92, 46, 55, 75,169, 84,250,185,185,185,225,203, 47,191, -132, 68, 34,129, 72, 36, 66, 64, 64, 0,148, 74, 37, 68, 34, 17, 88,150,133, 78,167, 51, 13, 22, 37,246,228,187,168,168,168,128, - 97,152,160, 31,126,248, 1, 69, 69,127,251,214, 11, 14, 14, 70,121,121, 57, 24,134, 41,118,180, 44,115,115,115, 11, 8, 33, 65, -127,252,241, 7, 50, 50, 50, 48,122,244,104,124,253,245,215,232,219,183, 47, 0, 64,163,209, 52,199,137, 31, 67,211, 52,219, 68, -253, 17, 0, 30,206,196, 52, 78, 94, 14, 97, 26, 12, 6,131,137,100, 89,254,181, 36, 95, 54,222,249, 79, 17,119,203,117, 66,107, - 77,228,232,209,163,161, 84, 42, 33,145, 72, 90,149,125,142, 73,163,181, 98,197, 10,188,252,242,203, 80, 40, 20, 88,188,120, 49, - 56, 28,142,249,178,220, 25,112, 68,124, 21,138, 38,159,155, 12,226,109,140,151, 82,119,119,247, 21, 20, 69, 61, 79,219, 81,112, - 12,195, 48, 6,131,225,112,121,121,121,147,238, 29, 76,134,235,246,212,133,101, 25,216, 72,235,125, 99, 90,227, 34,173, 65, 26, -158, 54,180,166,209,194,223,167, 14,239, 9, 5,100,202,101,130, 81,101,151, 96, 73,178,222,125,121,216,244,145,221, 61,240,237, -233,139,224,105,203, 0, 77,101, 19, 53,172, 3,225,137,161,112,231, 6, 90,173, 4,138,190,145,157,147, 11, 47, 15,137,145,100, - 25, 47,138, 66,175,238,117,139,217, 99,103, 83, 17,216,190, 59, 56, 52, 13, 14, 77, 67,226, 38, 64, 65,126, 30, 56, 28,234, 70, - 99,175,237,201, 33,227,199,119, 14, 10,241,240,226,162,216, 71, 3,127,133,200,250, 15,251, 72, 17,232,207,199, 40, 47, 97,112, - 79, 14, 25,111,131,184,152,137,150, 86,175, 7,239,185,231,204,219,133, 73,177,177, 8,143,143, 7,243,236,179,168,214,106,235, -169,138, 29, 21, 83,131, 52, 17,162,101,203,150, 21,148,148,148,188,208,204,213,227,205,210,210,210,168, 37, 75,150, 20, 20, 23, - 23, 67, 36, 18, 33, 47, 47,239,190, 72, 22, 0,168, 84,170,105,241,241,241, 5, 9, 9, 9,144, 72, 36,144, 74,165,205, 38, 90, - 38, 77,214, 59,239,188,211, 54, 40, 40, 8,233,233,233,112,119,119,135,151,151, 23,122,245,234,133,243,231,207,251, 4, 5, 5, -253, 96, 52,152,109, 42, 77,223,196,199,199,151, 1, 64,124,124,124, 25, 33, 36,145, 16,178,157, 16,242,113,131,107, 59, 33, 36, -209,242,183, 42,149,234,171,166,176, 53, 26, 77, 98,106,106, 42, 43, 18,137, 64,211, 52,180, 90, 45,132, 66,161,185,190, 42, 42, - 42,160, 82,213,109,115, 95,185,114, 5, 58,157,238,156, 61,121,175,172,172, 60,190,103,207, 30, 93, 80, 80, 16,122,246,236,137, - 62,125,250, 96,208,160, 65, 8, 14, 14,198,138, 21, 43, 52,213,213,213,199,155, 65,180,142, 29, 58,116, 72, 23, 20, 20,132, 62, -125,250, 64, 32, 16,160, 87,175, 94, 8, 8, 8,192,218,181,107, 53,229,229,229,199,155, 81, 77,153,215,174, 93,163,155, 32,185, - 50, 0, 5, 14, 98,102, 93,190,124,153, 30, 56,112,224,183, 13, 31,244,239,223,255, 91,137, 68,226, 14,192, 81,187, 63,214,146, - 92, 9, 4, 2,243,101,250,158,195,225,252, 47,104,180,230, 1,184, 10, 32, 29,192,226,214,148, 48, 75,195,247,146,146, 18,164, -166,166,226,202,149, 43, 24, 56,112, 32,206,157, 59, 7, 24, 13,228, 31, 98,250,192,178, 44,184, 92, 46,194,194,194, 48,127,254, -124,124,255,253,247,184,121,243, 38,116, 58,157,153, 8,153,108, 50, 29,209,104,241,120, 60, 40, 20, 10,232,116, 58,179, 54, 11, - 0,110,223,186, 5, 14,135, 3,131,193, 0,141, 70, 99, 83,163,229,238,238,190, 98,231,206,157,175, 21, 23, 23,251, 23, 21, 21, -249, 90, 94, 5, 5, 5,190,121,121,121,190, 57, 57, 57,190, 89, 89, 89,190,119,239,222,245,189,115,231,142,255,186,117,235, 94, -115,119,119, 95, 97,239, 28,212,171, 87, 47,188,250,234,171,230,107,235,214,173,230, 43, 33, 33,193, 97,227,117,154,166, 17,182, -124, 3,198, 20,177,230,235,123, 31, 98,190,146,223,156,221, 20,102, 61, 46,210,106,218,178,241,180,161,101, 96,105, 43,115,112, - 30,203,178,241,166,237, 66, 75,231,165, 13,141,225, 1, 0, 93,252, 68,171,223,157, 53,100,250,147, 93,221,241,205,233,223,176, -242,171,191,110,132, 78,247, 9,235,232, 81, 4, 67, 81, 42,222,156,210, 23, 27, 14,252, 6,160,110,235,208, 80,152, 12,182, 52, - 29,172, 52, 8,119,148,197, 86,183, 29,244,154,218, 51,127,165,221, 26, 22,214,163, 31,149, 95, 92, 85,239,248,103,120,212, 4, - 16, 66,208,166,125,119,208, 28, 14,104,154, 2,135,166, 33,151, 9,145,250,199, 31, 6,181, 74,117,198, 26,102, 20, 33, 28, 63, - 9,127,235,148, 81,189,132,185,252, 66,248,248,139,193,227,214,145, 0,246,175, 9, 13,102, 8, 14,208, 67,138, 25, 57, 94,110, -103, 10,106,183, 70, 17,242,109, 66, 35, 6,152, 6,131, 1, 18,129, 0,181,106, 53, 84,122, 61,162, 54,111, 54,111, 23, 82,132, -224,119, 0, 61, 55,111,198,133, 35, 71, 32,227,243, 1,129,192,238, 83, 33,214, 52, 90, 5, 5, 5,152, 56,113,226,125, 17, 34, - 75,205,214,156, 57,115, 18,214,174, 93,171, 88,182,108,153,211, 48, 23, 47, 94,156,112,224,192, 1, 69,187,118,237,154,221, 88, - 37, 18,201, 34,131,193, 32, 95,191,126,125,254,198,141, 27,209,208,158,204, 72,116, 4,114,185,124, 3,128, 97, 77, 64,173,156, - 61,123, 54, 15,192,203, 70,205, 86,207,217,179,103, 95, 96, 89,118,105,131,242, 93,190, 99,199,142,137, 22, 91,140,219, 1,108, -110, 42,141, 21, 21, 21, 31,207,159, 63,255,165,159,127,254,217, 91, 40, 20,130, 16, 2, 30,143,135, 78,157, 58,153, 79,209,112, -185, 92,176, 44,139, 5, 11, 22, 20, 23, 22, 22,218,229,222, 65,173, 86,239, 93,185,114,229, 48,149, 74, 21, 60, 99,198, 12,158, -135,135, 7, 10, 10, 10,240,254,251,239,107,246,238,221,155, 85, 93, 93,237,168, 45, 21,116, 58,221,222,255,252,231, 63, 81, 85, - 85, 85,237,103,206,156,201, 43, 47, 47,135, 74,165,194,194,133, 11, 53,187,119,239,206, 86,169, 84, 14, 59,252, 29, 52,104, 80, -218,221,187,119, 35,107,106,106, 74, 69, 34, 81, 67,109, 31, 17,139,197,253, 0,236,119, 4, 51, 60, 60, 60, 61, 51, 51,115,224, -234,213,171, 19,117, 58, 29,247,210,165, 75,102, 99,248, 15, 63,252, 48, 65, 40, 20, 14,135,227, 70,251, 6,129, 64, 80, 79,131, -213,240,158,195,225,252,227, 53, 90, 44,203, 38,160,206,101, 70,171,146,134, 36, 43, 57, 57, 25,195,134,213,117,233,115,231,206, - 33, 34, 34, 2,231,206,157, 67,100,100,228, 67,117,239, 96, 34, 90, 28, 14, 7,147, 39, 79,198,136, 17, 35,208,182,109,219,122, -167, 13, 77,247,142,144, 13,189, 94,143, 30, 61,122, 64,173,209,128,199,227,153,183, 38, 57, 28, 14,124,124,125,145,150,150,102, -151, 70,139,162,168,231,199,142, 29, 75,165,164,164, 96,210,164, 73,248,228,147, 79, 26,253,237,212,169, 83,113,240,224, 65,140, - 29, 59,150,122,251,237,183,155,116,239, 96, 50, 66,183, 39, 79,166,121,218,150, 70,207, 89,152,150, 92,164,181,137,133,107, 7, -107,109, 62,214, 74,251,138,175, 71,180, 44,156,132,161,189,143,104,198,136, 78, 28,124,115,230, 55,172,252, 38,115, 47,195,178, - 95,126,153, 84,250,221,226, 8, 64,123,120, 10,122, 77,216, 95,183, 93, 8,192, 80,152, 12,237,225,169, 32, 34,111,156,205,225, -162, 92,165, 61,102,189,225,105, 63,249,250,211,143,230, 15,220, 22,233,227,239,235, 14,101,185,202, 76,182,146, 18,190, 0, 0, -140,159,189, 6, 28,186,110, 75, 81, 38, 17,194,141, 71,227,200,190, 15,138,181,218, 90,171,173,171,146, 75,189,252,246,227,157, -220,249, 98, 29, 42,252, 88,116,247,249,251,208, 31,105,255,197,189,132,235, 49, 15,120, 39,151, 98, 74, 71,137,236,131,148,178, -151, 1,108,189,103, 66, 44, 43, 83,149,253,241,135,219,232,157, 59,113,105,218, 52,180, 97, 24, 36, 6, 4,192,147,203,133,187, - 64, 0,138, 16,168,190,251, 14, 23,190,252, 18, 10,129, 0,144, 74,161, 95,181, 10,234,212, 84,232, 42, 43, 85,142, 18,173,219, -183,111,223,183,214,201, 26, 49,122,235,173,183, 62, 45, 41, 41,121,193,153,152,211,166, 77, 75, 56,125,250,180,162,185, 56,149, -149,149,111, 0,120,195, 9,233, 49, 16, 66,150, 26, 29,227,189, 28, 27, 27, 43,191,124,249,242, 75,132,144,109,166,213, 4, 33, -196, 55, 38, 38,102, 86, 3,146,101,243,212, 33,203,178,153, 18,137,100,213, 27,111,188,177,102,227,198,141, 18,147,225,251,159, -127,254, 9,189, 94, 15, 46,151, 11,134, 97, 16, 19, 19, 83, 85, 82, 82,178,161, 49,143,206, 86,112,245,132,144,169,107,214,172, -137,249,224,131, 15,158,166,105,218,135, 97,152, 34,149, 74,245,131, 74,165,138,111,206,169, 43, 99, 57,188,184,108,217,178, 23, - 55,109,218, 52,150,162, 40, 95,189, 94, 95, 92, 89, 89,121, 84,165, 82, 53,203, 55,215,133, 11, 23,138,182,109,219,246, 87, 81, - 81, 81,151,192,192,192,114,137, 68,162,209,104, 52,180,155,155,155, 76, 44, 22,135, 3,248, 5,192,117, 71, 48,175, 92,185,146, -191,125,251,246, 12,181, 90, 29,182,125,251,246,179, 50,153,236, 52, 33,132,240,120, 60, 15, 55, 55,183, 97, 0, 18, 1,220,118, - 4,147,162, 40,131,165,246,170,161,125, 22,159,207,255, 95,177,209,106,117, 98,233,222,161,184,184, 24, 41, 41, 41, 38,146, 21, - 14, 0,145,145,145, 73, 38,178,117,229,202, 21,244,233,211, 39,137, 16,194,125,208, 39, 15, 45, 53, 90, 38, 66,213,182,109, 91, -243,103,203,203,194, 70,203, 46, 97, 24, 6, 60, 30, 15, 28, 14, 7,254, 1, 1,230,119,177, 44,139,180,180, 52, 40,149, 74,187, -136, 22, 77,211, 52, 33, 4,147, 38, 77,178,235,189,255,254,247,191,145,152,152, 8,218, 78, 86, 72,211, 52, 66, 66, 66,236,218, -121,129,157,246, 84, 52, 77, 35, 48, 48,176,217,152,150, 92,164, 53, 17, 44,107,247,214, 72,149, 53,177,106, 12,159, 94,168, 90, - 61,245,253,243,111, 95,207,175,253, 50,181,160,102, 62, 0,246,112,178,232,199, 94, 62,244,200,145,157,179,161,142,143, 4,145, -213, 57,111, 99,171,242, 64,196, 10,100, 27,218, 96,249,183, 55,242,245, 32,235, 27, 73, 68, 46, 79, 40, 90,186,111,231,135, 27, - 99,230, 44,144, 36,167, 23,160,188, 74, 13,154,166, 44, 7, 79,112, 56, 52,100, 98, 33,130,252,220,113,224,191,239, 87, 86, 86, -148, 45,107, 44,238, 97, 91, 41,111,246,240,126, 29, 5, 60,255,106,132,245,156, 8, 90,248,183,147, 89, 54,191,145,221,193,136, - 31,241, 84,102,181,240,235,204,234,217, 86,137,150, 70, 51,114,201,168, 81, 39, 86,126,255,189,168,255,222,189, 72,143,137, 65, -128, 74, 5,129,113, 43,145, 34, 4, 18, 30, 15, 18, 30,175,142,100,109,218, 4,149, 94,143,205,211,166,213,168, 53,154, 81, 14, -106, 36,120, 67,135, 14,117, 26,201,178, 36, 70,112,208,206,203, 94,178, 53, 98,196,136, 4,150,101, 5,173, 96, 37,111, 34, 91, -218,203,151, 47,207, 58,123,246,108, 58,234, 7, 22, 45, 59,123,246,108,250,204,153, 51,201,174, 93,187,118, 3,248,143,189, 14, - 60,171,170,170, 62,148,203,229, 24, 50,100,200,127,226,226,226,188,250,246,237, 11, 95, 95, 95, 84, 86, 86,226,202,149, 43,152, - 55,111,158,178,162,162, 34,174,180,180,116,163,131,105,102,140,154,155,120,103,150, 3,128, 61,198,203, 41,242,202, 43,175,252, -153,158,158, 94,226,227,227, 51,128,199,227,245, 68,157, 29, 80, 62,128,221,142, 18, 34,147,188,252,242,203,127,164,167,167, 23, -183,105,211,102,247,187,103,196, 0, 0, 6, 32, 73, 68, 65, 84,160, 17, 83, 14, 32, 7,192,206,102, 96,230,254,246,219,111,129, -253,250,245,163,184, 92, 46, 75,211, 52,184, 92, 46,203,225,112, 88,163, 93, 13, 11, 0, 71,143, 30, 21, 0, 80,194, 37, 15,186, -111,154,221, 59,228,229,229,153, 73,150,133,195,210,240,200,200,200, 36, 35,201, 50, 61,211, 63,164,180, 98,229,202,149,216,177, - 99, 7,108,121, 52, 55,158,238, 35,182,240, 76, 26, 45,134, 97,160,213,106,145,156,156,108,246,217,101,218, 46, 52,185,118,208, -235,245, 77,158, 86,103, 24,134,209,104, 52,248,252,243,207,237, 34, 91,159,125,246, 25,106,107,107,193,216, 96,112,150,174, 24, -122,247,238, 13,165, 82,105, 62,236, 19, 30,254,183,171, 60,173, 86,235, 16,113, 53, 97,134,133,133,161,184,184, 24,222,222,117, -231,113,130,166,253,173,236,209, 87,255, 51,253, 7, 55,165,209, 34,246,186, 36,232, 45,151,187,171,249,186,175,254,213, 93, 16, -245,124,184, 59,218,251, 73,193,229, 9,145, 91,161,199,169,235, 21,216,153,144,159,165,210, 49, 79,223, 44,172,190,214, 20,142, - 80,236,254, 67,223,199, 71, 68, 76,155, 53, 79, 92,165,102,144,145,113, 23, 69,133,121,160, 8, 5,255, 54,129, 8, 14, 14,129, - 27,159,194, 39,241, 27,171,147, 46,156, 62, 95, 89,161, 28,221, 24,214,211,114,254,133, 77,207, 69, 12,236,208, 65, 74,160,215, - 1,140, 14,208,235, 0,131,241,175,233, 59, 67,253, 54,151,146, 82,198,190,253,187,242,215,239,202, 52, 86, 99, 86, 61, 79, 72, -132,220,211,243,196,242,163, 71, 69, 6,173, 22, 37,111,188, 1,145, 94, 15,161,113, 85, 2, 0, 16, 8,160, 95,181,170,142,100, - 77,157, 90, 83, 94, 86,230,112, 8, 30, 31, 31,159, 61,197,197,197,143,156,103,120, 47, 47,175, 37,205,113, 19,209,130,105,242, - 5, 80,198,178,172,214,202,202,218,199,164,229,106, 6,110,136,143,143,207,219, 20, 69, 13, 98, 89,214,139,162,168, 82,131,193, -240, 75, 97, 97,225, 58,150,101,211, 92, 83,234, 67,171,111,147,103,120, 91,251,216,133, 0, 94, 7, 80,201,178,108,134,171,228, - 30,120, 61, 61,134,186, 83, 88,141,134,224,193, 67, 60,121,232,229,229,117,241,196,137, 19,125,219,183,111, 79, 89,154, 49,152, -124,229,153,182,183, 56,156, 58,125,196,207, 63,255,172,159, 52,105,210, 47,249,249,249, 67, 26,195,148,201,100, 63, 94,189,122, -245,201,242,242,242,123, 8,149,165,167,120,211,231,234,234,106,204,153, 51,231,100, 69, 69,133,213, 16, 60,114,185,124,211,198, -141, 27, 95, 27, 63,126, 60,101,114, 71, 97,121,153,194, 5,153, 46,173, 86,139,253,251,247, 27, 62,248,224,131, 45,101,101,101, -141,110, 29, 6, 4, 4,100,229,230,230, 6,154, 92, 45,216,227, 84, 52, 36, 36, 36, 47, 35, 35, 35,224, 65, 98, 62,170,132,171, -161,118,139, 56,226,251,137, 16, 66,194,124,197, 19, 89,224,121, 10,134, 30, 20, 33,124, 61,139,155, 96,241,163,136, 83,179,237, - 74, 46,107,215,214, 25, 79, 36,154, 43,149,120,188, 51,254,133, 87,189, 66, 58,132, 18,133,127, 27, 16, 80, 40,200,207,193,221, -191,110,177, 95,125,250, 81, 73,117,133,114, 69, 77, 77,213, 71, 77,225,116, 35,164, 67, 59, 25,239, 48,159, 65,103,152,242,209, - 32, 62,213, 61, 12, 19,128,150, 75,221,200,168,212, 77, 76,105, 98,219,199, 68,182,150,126,245,149,136,223,185,243, 61,142,226, - 12, 6, 3,212,169,169,216, 60,109, 90,179, 72,150, 75, 92,226,146,251, 30,208,218,195,182,143, 44, 29,128,236,135, 25,188,248, -127,188,142, 90,109, 80,105, 66,136,216,211,211,243, 52, 77,211,193, 38,141,140,165,205,144,149,128,210, 25, 5, 5, 5,195, 89, -150,173,105, 2,179,131, 84, 42,253,136, 97,152,254,246, 4,149,166,105,250, 82,101,101,229,220,166,130, 74,183,196,169, 67,111, -111,239,180,187,119,239,118, 48,157,162,182,156, 43, 27,150, 3, 0,220,190,125, 27, 67,135, 14,189,155,151,151, 23,242, 32, 49, - 91,171, 52,226, 71,235,254, 53, 90, 45,208,200, 3,120, 2,201,139,124, 55,225, 19, 6,157, 62, 12, 4,224,112,185, 55, 52,181, -170, 51,106, 85,213,190,198,182, 11, 31,164, 60, 79, 72,132,128,207,255,145, 39,147,185, 89, 43, 39, 93,101,165, 74,173,209,140, -116,145, 44,151,184,196, 37, 46,113,201, 35, 68,128, 59,123,122,122,158,224,114,185, 2, 75, 50,217,240,222, 36,122,189,190,182, -168,168,104,116, 83,187, 47, 45,129,249,143, 41,111, 71,137,214,177, 99,199, 88,123,189,183, 18, 66, 70,216, 19,179,202,194,240, -205,166,239,140,135,141,217,130,121,183,233, 21,215, 1,204,161,168, 59, 30,187, 34, 58, 58,122,249, 35,144, 78,103,214,145, 83, - 49, 77,117,110, 47,174, 35,152,246,182, 41, 7,211,105, 87,187,111, 13,152,246,244,165,102,166,179,201, 54,218,204,122,111,178, - 47,181,162,116, 58,179,142,156,130,217,176,253,216,131,235, 40,166, 61,125,169, 25,233,180,217,238, 91, 11,230,253,142, 33, 77, -164,179,209, 54,106,111, 91,106,164,238,109,206, 77,173, 85,147, 5, 0, 38,127, 90, 13, 53, 90,141, 25,196,115, 28, 37, 89, 45, -145,120,203, 73, 7,118,250, 41,121, 24,152,205, 33, 92,142,164,213,137,146,224,108,204, 6,229,233, 44, 89,110, 28,208, 19, 97, -135,195, 81, 71,242,238,140,122,111,144, 87,167,224, 90, 98, 58,171, 44,173, 13,138,206, 76,103, 75, 96, 58,171, 47, 53,196,116, - 70,187,183, 86,239, 45, 88, 71,206, 74,167, 83,250, 82, 75,180,121, 43,237,231,190,113, 27, 98, 58,163, 47, 53,196,116, 70,187, -127, 16,152,206,232, 75,214, 48,157,209,238, 27,171,251, 71, 85, 51,101,218, 46, 52, 18, 46, 98,133,124,214,219, 62, 52, 17, 47, -170, 57,133,214, 18,210, 18,129, 36,157, 77,136, 90,138,108, 30, 59,118,140, 53, 50,253, 86,143,233,228, 58, 90,110,196,116,230, -202, 38,202, 89,117,212, 18,237,221, 18,211, 89,248, 13,113,156, 81, 79,214, 48,239, 55,189,141,164,211,233,121,191,223,118,255, -160, 48,157, 92, 71, 78,233, 75, 13, 48,163,156,188, 24,136,178,248,188,220,153,152,206,234, 75, 86,210,121,223,245,100, 13,243, -126,211,219, 72, 58,157,158,119,103,204, 33, 45,133,251,176, 52, 90,215,195, 9,203, 82,214,219,132,209, 97,169,249,106,150, 70, -171, 37, 73, 86, 75, 77,106,206,196,110, 9,173, 78, 75,105,222,156,165,213,177,130,155,232, 68,184, 4,103,167,211,152, 62,210, -154,157,222,185,250,146,171, 47,253, 47,245, 37,107,237, 38, 58, 58,122,249,177, 99,199,222,105, 77,237,188, 33,166,179, 8,145, -149,188,223, 87, 95,106,248,191,206,232, 75, 54, 48, 73, 75,228,223,217,253,233, 65,106,180, 26, 35, 89,141, 61,227,180,150, 12, -152, 26,137,147, 87, 38,112,178, 6,166,197,242,237,228,116, 70,181,132,134,176, 5,196,233,233, 52,174,148,223,105,129,188, 63, - 42,101,234,234, 75,174,190,212,234,250, 82,131, 54, 25,229, 68, 77,145, 83, 53,207, 13, 49,157,241, 14, 75, 12,103,181,209,150, -206,187, 51,251, 82, 75,212,253,163, 38,255, 31, 0, 52, 22,173,101,127,139,184, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, +137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, + 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, + 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, + 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, + 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162, +142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, + 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, + 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128, +132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, + 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, + 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192, +206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, + 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, + 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206, +206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26, +128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, + 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247, +245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255, +252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100, +226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242, +187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, + 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, + 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134, +147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, + 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, + 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, + 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67, +199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3, +187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, + 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18, +143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44, +169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, + 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, + 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23, +104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136, +103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, + 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, + 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, + 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171, +134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148, +102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92, +107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, + 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110, +167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, + 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185, +209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, + 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, + 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157, +173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174, +182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29, +126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41, +196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74, +116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51, +115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173, +215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, + 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122, +124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, + 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112, +136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46, +106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237, +243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, + 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, + 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22, +154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254, +197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102, +191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, + 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, + 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, + 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220, +148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86, +180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, + 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, + 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, + 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156, +198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154, +242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84, +201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239, +186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116, +234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121, +241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173, +188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133, +131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100, +207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234, +192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32, +127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 32, 99, 72, 82, + 77, 0, 0,122, 37, 0, 0,128,131, 0, 0,249,255, 0, 0,128,233, 0, 0,117, 48, 0, 0,234, 96, 0, 0, 58,152, 0, 0, 23, +111,146, 95,197, 70, 0, 3, 39, 3, 73, 68, 65, 84,120,218,236, 93,119,152, 19, 69, 31,126,103,179,233,185,222, 27, 28,119,244, +222,145,222,139,210,145,206,135, 32, 98,161,136, 21, 4, 11, 74,145,162, 72, 85, 16, 59,160, 72, 85, 16, 84,138,210,123,239, 85, +234,221,113,189,167,151,157,239,143,203,198, 92, 72, 46, 57, 56, 16,113,222,231,217, 39,217,246,238,204,238,148,119,126,243,155, + 25, 66, 41, 5, 3, 3, 3, 3, 3, 3, 3, 3, 67,217,131, 99,175,128,129,129,129,129,129,129,129,225, 17, 17, 90,155, 55,111, +246,217, 4, 70, 8,233,232, 43,167,125,107,243,168,115, 62,192,184,211, 50,228,108, 99,231,252,224, 95, 18,206, 54,143, 42,167, + 24, 95, 95,121, 75,195,233,107,154, 42,101, 56,105, 89,135,243, 65,113,150, 85, 62,114, 19, 78,250, 0,190,251, 7,255,146,112, +182,121,212, 56, 93,211,143, 47,188,165,229,244, 37, 77,221, 67, 56,105, 89,135,243, 65,113,222,111, 62, 42, 33,156,244,126,211, +146,135,111,255, 1,254, 67,224, 31,148,200, 42, 13,186,117,235, 70,156,248,201,163,202,233,252, 30, 68,254,178, 12,107, 25, 98, +103, 89,115,186,188,207,178,194, 7,221,186,117, 35,155, 55,111,222, 5,160, 77, 89,198,189, 44,190,187, 75, 92,203,132,183,180, + 34,171,180,156,101,149,238, 31, 52,103, 89,229, 37, 87,206,178, 72,247,238,190,251, 3,252, 70,101, 21,206, 50,201, 75, 15, 34, +205,187, 73, 63,247,205,235,202, 89, 22,121,201,149,179, 44,210,253,195,224, 44,139,188,228,142,179, 44,210,189,167,111,207, 44, + 90, 15, 87, 16,184,102,240,182,143,178, 32,122, 80, 98,211, 87, 11,204,163,192, 89,198,223,232, 3, 59,103, 89,182,110,218,150, +213, 55,122, 16,233,221,153,179,172,248, 93,121,202,226, 59,185,227,188,223,240,122, 8,103,153,199,253,126,211,253,195,226, 44, +227,111, 84, 38,121,201,133,179,109, 25, 55, 6,218, 58,237,127, 80,150,156,101,149,151,220,132,243,190,191,147, 59,206,251, 13, +175,135,112,150,121,220,203,162, 14,121, 80,188,143,173, 69,235, 65,138,172, 7, 85,169,149, 37,247,131,176,234, 60, 40,203, 91, + 89, 89,117,220,240,238, 42, 67,186,157,101, 29, 78,123,248,200,131,178,190, 62,234, 96,121,137,229,165, 71, 45, 47,185, 75, 55, +221,186,117,251, 96,243,230,205,239, 63,106,141,104,103,206,178, 18, 68,110,226,126, 95,121,201,245,222,178,200, 75, 94, 56,201, +131,136,127, 89,231, 39, 38,180, 74, 97, 41, 42,227,150, 9,202,216, 2,243,192,226, 93,198,225,108,251, 32, 44,132, 15, 0,101, + 30, 78,123, 75,249,253, 7, 16,247,127,203, 59,101,121,137,229,165, 71, 46, 47,185,164,201,182,101,104, 41, 42, 83,203,179, 43, +103, 89, 60,195,153,163,172,210,232,131,142,123, 89,230,165, 7,241,237,255,117,160,148, 62,176, 13, 64, 71,198,201, 56, 25, 39, +227,100,156,140,147,113, 50,206,255,234,198,166,119, 96, 96, 96, 96, 96, 96, 96, 96,120, 64, 32,108,194, 82, 6, 6, 6, 6, 6, + 6, 6,134, 7, 3,143, 62, 90,177,177,177,155,212,106,117, 37, 79,231,181, 90,237,157,148,148,148,118,236, 21, 50, 48, 48,120, +109,209, 17,194,225,239, 81,206, 2, 0, 74, 89, 43,143,129,129,225,191, 44,180, 20, 10, 69,226,133, 11, 23,170, 8,130, 0,155, +205, 6,171,213,234,248, 53,153, 76,104,221,186,117,169, 29,233,163,162,162,118, 75, 36,146, 10,165,185,199,102,179,221, 74, 77, + 77,109, 89, 66, 1,190, 31, 64, 34, 33,196,249, 88,137,191, 0, 82,204,102,115,131,146, 56, 9, 33,137,174,124, 30,184,196,255, + 37,114, 6, 5, 5, 29,229,121, 62,206, 29,151,167,255,130, 32, 92, 75, 79, 79,111,206,146,233,195, 65, 84, 84,212,110,158,231, + 75,157, 62,239,220,185,227, 49,125,198,196,196,156,224, 56, 46,166, 20,148, 18, 65, 16, 46,221,185,115,167,165, 39, 33, 34,166, +121, 47,194,166,216,127, 66, 72,146,213,106,109,228, 45, 31,149,196,229, 38,141,150,200,233, 44,178,120,158,159, 21, 17, 17, 49, + 74,167,211, 25, 0, 80,137, 68, 66, 67, 67, 67,197,176, 1, 0,172, 86,107, 70, 78, 78, 78,109,150, 18, 25, 24, 24,254, 19, 66, + 75, 16, 4,206,104, 52,226,242,229,203,240, 80,222,219,238,225,121, 85,142,253,177, 45,194, 63, 34, 18, 86,179, 25,154,176,112, + 7,119,218,249,179,176, 90,204,176,154, 76, 40,223,184,169, 88,137,161,102,205,154, 18, 47,156,113,179,103,207,142,240,247,247, +135,193, 96,128,193, 96,128,209,104,132,193, 96,128,201,100,130,201,100,130,217,108,134,217,108,134,213,106,133,209,104,196,246, +237,219,189,133, 61,238,195, 15, 63,140, 8, 8, 8,112,240,137,155,200, 41,242, 90, 44, 22, 24, 12, 6,252,249,231,159, 37,114, +242, 60, 31,151,146,146, 18, 33,147,201, 64, 41,133, 32, 8,238,156, 11,139,161, 98,197,138,102,150, 68, 31, 42,170,124,184,114, +115, 68,160, 74, 1,171, 32,160,123,221,138,142, 19,215,190, 90, 3,106,181, 65,176, 90, 81,121,236, 80,160,200, 36,131, 26, 53, +106,148,152, 62, 41,165,241, 31,174,220, 28,228, 43,103,102,102,166,190,122,245,234, 41, 40, 26,250,236,201,226, 19,167,215,235, + 35,196, 48,184, 10, 34,142,227,138,109, 91,182,108, 65,247,238,221,189,197, 61,238,181,215, 94,139,176, 88, 44, 48,153, 76, 48, + 26,141,176, 88, 44,176, 90,173,142,205,102,179, 57, 54,147,201,132, 67,135, 14,249,106,201,154,221,169, 83,167, 17,155, 55,111, +214,252,252,243,207,154, 10, 21, 42, 64, 38,147, 65, 34,145, 64, 34,145,128,227, 56,240, 60,143, 39,158,120,130,176, 36,200,192, +192,240,159, 17, 90, 70,163,241,122,253,250,245,169,253,127,172, 66,161,144,185, 20,160, 49, 85,170, 84,185,228,122,159,183, 46, + 69,255,136, 72, 76, 42, 23, 2, 0,152,124, 51,203, 81, 65,124,212,188,158,227,154,169,201,121, 0, 0,149, 74, 5,226,220,140, +246, 0,141, 70,131, 78,157, 58, 65, 46,151,163, 81,163, 70,144, 74,165,110, 55,153, 76, 6,169, 84,234, 75,229, 0, 63, 63, 63, + 76,153, 50, 69, 20, 73,208, 40, 21,120,185,121, 35, 40, 65,241,197,217, 43, 48, 9, 20, 60,207, 59, 54, 95, 56,101, 50, 25,206, +156, 57, 3,158,231, 33,145, 72, 28,191,226,255,141, 27, 55,162, 95,191,126,224,121, 30, 42,149, 10,248, 15,205, 51,242,168, 32, + 80,165,192,176, 37, 63, 1, 0,110,207, 27,235,248,118,135, 70, 79,118, 92, 19,255,194, 0, 16, 66, 32,149, 74,193,113, 92,153, +113,102,103,103,235, 7, 13, 26,180,215,223,223,127, 75,126,126, 62,188, 8, 56,220,190,125, 27, 60,207,123, 76,239, 28,199, 97, +238,220,185,184,122,245,170, 79,113, 55, 24, 12,248,242,203, 47, 97,179,217,138,241,138,255, 93,143,249, 40,178,166,119,238,220, +121,232,230,205,155,131, 9, 33,248,244,211, 79, 33,147,201,208,181,107, 87,132,134,134, 98,235,214,173,144,201,100,152, 48, 97, + 2, 75,124, 12, 12, 12, 37, 65, 10,160, 30,128,112,187,161,167, 0, 64,144,211,249, 12,251,111,184,211,254, 17, 55, 60,141,237, +215,136,231,197,125, 19, 0,185,155,227, 89, 0, 84,246,205, 8, 96, 63,128, 90, 78,207, 17,239,131,167,231,242, 64,209,250, 67, + 0,118, 2,104, 43, 78,162,119,231,206,157,167,156, 44, 43, 23, 46, 93,186, 84, 77,212, 60,246, 46, 68,153,213,106,173, 34,118, + 39,138,214,162,142, 29, 59,150,216,194,183,154,205,119, 9, 16,119, 90,202, 93,119,133, 39, 1, 99, 54,155, 49, 96,192,128,162, + 47,225,161,210,113,222,124,208,110, 48,153, 76,224,121, 30, 85,203,133,227,189, 46,245,209,132, 90,160, 45, 36,176,230,105,209, +203,207,130, 11, 53, 26, 96,233,173, 12,220,204, 47, 4,207,243, 62,113, 10,130,224, 81,100, 73, 36, 18, 44, 89,178, 4,131, 6, + 13,130, 68, 34,241,137,143,161,236, 97, 21, 4,183,233,208, 83,154,245,229, 59,249,194,153,157,157,173,239,222,189,251, 65,133, + 66,177, 44, 50, 50, 50, 37, 41, 41,201,171,208,114, 21, 63,174,141,138, 79, 62,249, 4, 11, 23, 46, 68,187,118,237,124, 10,167, +209,104, 4, 33, 4, 75,151, 46,189,235,220,180,105,211,238,122, 94, 73,156,246, 6, 18, 23, 19, 19, 51,250,247,223,127, 15, 16, +175, 13, 11, 11,131, 84, 42, 69,237,218,181,225,239,239,143,189,123,247,194,102,179,249,156, 47, 25, 24, 24, 30, 95,184,211, 34, + 78,104, 61,105,210,164, 70,179,102,205,154,209,172, 89,179, 31,247,239,223,191,146, 16,178,201,169, 76,236,110, 47,123, 54, 57, +237, 55,118, 17, 61, 82, 0,225,132,144, 77,226,245,206,251, 78,199, 59, 2,144,139,251,147, 38, 77,170, 53,107,214,172, 25, 19, + 39, 78,124,123,230,204,153,178, 73,147, 38,213,153, 53,107,214, 12,241, 57,238,194,225,206,162, 85,226,172,194, 98, 55,226,197, +139, 23,225,205,127,149, 82, 90, 98,105,169, 9, 11,119, 88,178,166,198,135, 58,142, 79, 73,202,117, 84, 96,139, 26, 86,130, 70, +163, 65,151,169, 31,251,100, 41, 50,153, 76, 72, 79, 79,119, 88, 25,188,109,190,114,170, 85, 74,108,127,173, 54,110,103,201,241, +193,129,108,108, 62,121, 21, 82,169, 20, 79,214,168,141,167,100,254,120, 55, 94,142,215,174,220,128,197, 71,159, 94, 74,169, 91, +129, 37,254, 23,187, 80,152,208,250,231,208,189,110, 69,135,213,233,144,127, 7,199,241,126,218, 51,142,111,242,198,146,143, 0, + 0,237, 26, 60, 1, 95,252,185,189,113,102,101,101,233, 91,118,104,187,203,166, 55,125, 55,116,232,208,235, 59,118,236, 80,249, +212,188,115, 35,180, 68,171,173, 40,178,120,158,135,201,100,242, 41,238, 38,147,201, 99,254,144,201,100,165,182,104, 1,128, 86, +171, 53,109,216,176, 1,139, 22, 45, 66,104,104, 40, 58,119,238,140,232,232,104,172, 89,179, 6,148, 82,140, 29, 59, 22, 42,149, + 74,180, 94,179, 4,200,192,240,223, 70, 73, 90, 68, 49,107,214,172, 25,174, 66,198,121,223, 89, 64,185,136, 41,103,177, 86,203, + 75,253,191,201, 85, 60,137,207, 37,132,108,154, 57,115,102,119, 47,225,200,240, 36,180, 74,156,190,223,104, 52, 94,175, 91,183, +174, 79,106, 66,167,211,165,122, 19, 27,238, 90,245,206, 86, 2, 63, 63, 63,104, 2,252,192,249, 88,238, 90, 44, 22,135, 80,217, +182,109, 27, 84, 42, 21,186,118,237,122, 95, 22, 45,179,217, 12,185, 76, 10, 46, 44, 18,195,230,237, 64, 86,129,222, 81,193,236, +188,118, 29,199,211,210,241, 90,179, 14,208,168,210, 81,104, 50,249,100,121, 19, 4,225, 46,145,197,243, 60, 6, 12, 24,224,176, + 38, 56,251,173,128,117, 29,254, 99,112,151, 62, 93,143, 11, 46,150,170,123,225,204,202,202,210,119,239,222,253,160, 77,111,250, + 46, 57, 57,249, 32, 0,101,147, 38, 77, 74, 45,180, 68,129, 37,149, 74, 49,119,238, 92, 44, 92,184,208,113,222, 87,161,101,181, + 90,139, 9,168, 43, 87,174, 20,123,150,171,176, 43,169,219,148, 82, 74, 9, 33, 2, 0, 33, 49, 49,209,113, 79, 84, 84, 20,130, +130,130, 32, 8, 2, 4, 65,128, 82,169,132, 74,165,130, 76, 38, 99,137,142,129,129,161, 36, 45,162,159, 56,113,226,219,132,144, + 77,118,203,210,217, 18, 4,149, 59, 52,118, 17,107, 25, 30,202,174,238,238,196,150,243,127, 17,147, 38, 77,170,229, 38, 28, 71, + 60, 10, 45,151,105,247,139,193,185, 27,177,172, 42,177,146, 42, 50,191,160, 0,168, 52, 26, 72, 36, 28, 8, 33,212, 27,151,217, +108,118, 20,252,163, 70,141, 42,209,111,197, 87,127, 42,179,217, 12,142,151,224, 78, 84, 2,108,220, 30,199,189,226,198,241, 82, +220,140,170, 6,201,197, 19,144,250, 88,225,186, 90,180,198,142, 29,139, 47,191,252, 18, 28,199, 57,222, 9,207,243,168, 92,185, + 50,174, 95,191,206,114,220, 35, 34,178, 60, 29,183,217, 4,159,173, 48,238,174,203,202,202,210,247,239,223,127, 87, 94, 94,222, +119, 53,107,214,188,130,162,233, 15, 56, 95,249,120,158, 47, 38,176, 68,145,181, 96,193,130, 98,162,200, 98,177,248,212, 16,176, + 88, 44,119, 9,158, 57,115,230, 20,251, 5,128,230,205,155,251,100, 25, 6, 64, 57,142,163, 50,153, 12,157, 58,117, 66,157, 58, +117,240,243,207, 63, 67, 16, 4,140, 25, 51, 6, 42,149, 10,243,231,207,135,213,106,197,236,217,179,153, 69,139,129,129,161, 36, + 45, 98,156, 57,115,230,217,153, 51,103, 58, 44, 75,174, 22, 45, 79,148,118, 81, 21, 46,138, 52, 20,249, 90, 29, 41,161,174,238, +238, 73,128, 57, 31,155, 53,107,214, 12, 55,225,112,237,174,124,248,107, 29,166,158, 59,131,143, 91,212, 7, 80,188,187,112,201, + 19,213,160,241,211, 64,227,239,135,254, 27,247, 0,128,189,208,159,232,147, 69, 75, 20, 90, 89, 89, 89, 37,138,172,210, 88,180, + 56, 57,143,181,113, 57,160,114, 41,120,147,165,152,208,146,240, 82,220, 14, 77, 0, 39,149,129,183, 89,125,226,164,148,222,213, + 85, 56,124,248,112, 16, 66, 28, 35,196,234,214,173,235,204,197,106,158,135,157, 62,143,126,133, 11,235, 70, 3, 0, 90,106,181, +142,111,241, 97,221,191,199,119,204, 59,179,203, 97,125,156,138, 55,239,137, 51, 43, 43, 75,223,164,122,173,131,178,144,192,239, +110,221,186,117, 16, 0, 55,112,224,192,160,186,117,235,250,148, 39,197,193, 21,174, 34,203,217,146, 37,254, 90, 44, 22,159,226, + 46,250, 74,121,131,216,141,232, 45,205, 83, 74,105, 72, 72, 8, 56,142, 67, 64, 64, 0,252,252,252, 28, 35,110,149, 74, 37,212, +106,181,195,191,211, 71,225,198,192,192,240,223, 69,176, 40,116,236, 98,169,152,165,137, 82,218,221, 89, 12,121,234, 66,180, 91, +160,118,123, 51,172,217, 5,154, 91,136,150, 53,151, 50,121,147, 39,145,198,139, 10,210,249, 55, 58, 58,250, 55, 63, 63,191, 4, + 95, 99, 95,154,201, 75,109, 22,243, 93,150, 45, 66, 8,252,252,253,160,242,211, 64,229,239,231,209,234, 85,146,208, 18, 45, 69, + 98,165,179,108,217, 50,248,249,249,225,217,103,159, 45,181,143,150, 67,104,201, 56,108, 85,252, 9,137,156, 47, 38,178,120,158, +135, 68, 42, 69,170, 95, 52, 56,169, 20,188,213, 55, 43, 89, 94, 94, 30,120,158,199,123,239,189,231,104,193, 59,139,172,210,196, +153,225,193,128,218, 44,119, 89,161, 60, 89, 95,239,149, 83,180,100,201, 66, 2,191,171, 86,173,154,195,146,165, 86,171,197,209, +166, 94,193,113,156, 91,145,229, 58, 66,144,231,249,162,180,236,101,116,164,179, 69,107,230,204,153, 14, 94,103, 75,150,136,210, +228, 35, 49,172,187,118,237,194,241,227,199, 49,106,212, 40,168, 84, 42, 44, 92,184, 16, 86,171, 21,211,166, 77,131, 74,165,130, + 92, 46,103,137,143,129,129, 89,179,138,105, 17, 23,100,184,248, 65, 17, 23, 81,147,225, 78, 96, 57,119, 19, 58,253,183,184,225, + 53,185,116, 41,186, 30, 23,127,179,102,206,156,185, 67,180,100, 57, 29, 47, 22, 14,175, 22, 45,133, 66,145,112,249,242,101,199, +100,165, 37,253,154, 76, 38,180,107,215,206,103,203,152, 56,234,144,231, 37,197,132,133,218,223, 15,234, 0,127,168,252,252, 92, + 5, 7,241, 86,136,139, 45, 98,103,161,245,254,251,239,131,231,121,124,249,229,151, 0,128, 55,223,124,211,103, 31, 45,145, 19, + 54,130, 36,250, 23,234,207,235, 7,211,247, 22,164,237, 59, 5,158,231, 17,209,244, 41, 8, 77,250, 65,167,242, 3,111,179,250, + 60,234, 48, 59, 59, 27,215,175, 95,135, 68, 34,193,235,175,191, 94,108,174, 35,215,145,108,219,182,109, 99, 22,173,127, 66,104, + 9, 86,159, 68, 85,105,172,142,206,156,162, 79, 86, 94, 94,222,119,183,110,221, 58, 4,128, 27, 58,116,104,144, 90,173,198,215, + 95,127,173, 3, 32, 95,179,102,141,202,155, 40, 18,211,141, 55,145, 37,149, 74,139,210,178, 47,113,167,197,167, 44,241,230, 24, +239, 75,154, 23,195, 74, 8,129,205,102,131, 74,165, 42,102,201, 82, 42,149, 80, 40, 20, 44,225, 49, 48, 48,120,195,145, 82, 92, +219,216, 73, 52, 29,185, 71,222, 35,101, 21,112,222,147,208, 48, 26,141, 56,127,254,188,175, 60, 62, 79, 94, 90,174,209, 19,152, +154,156, 7, 66, 8,190,104, 94, 19,154, 0, 63,168, 53, 26,244,253,121,151,163,224, 62, 51,227, 77, 40, 52,126,136,105,213,217, +167,130, 92,236, 58,116, 22, 90,185,185,185,144, 74,165,152, 62,125, 58, 56,142,195,236,217,179, 17, 27, 27,139, 59,119,238, 96, +205,154, 53, 62, 89,180, 36, 54, 9,162,159,169, 14,245,240, 64, 4, 60,211, 26,193,157,222, 71,178,137,199,126,131, 26,173, 13, +231, 32,223,186, 0, 38,193,230,243, 8, 44,171,213,138, 93,187,118,185, 58,188,131, 82,234,152,117,223, 98,177,192,108, 54, 99, +246,236,217, 96, 43,148, 60,124, 68, 55, 29,139,240, 70, 47, 1, 0, 54,206,124,206,113,252,189, 51,127,167,207,185,223, 23, 45, + 0, 80,173, 66,231, 82,113,102,101,101,233,159,108,215,124,183, 65,144,126, 91,187,118,237, 98,150, 44,165, 82, 73,236,251, 62, +137,107,142,227, 32,145, 72,238,234, 46,244, 36,182,124,241,209,178, 90,173,142,137, 68, 75,242,103,188, 23,139,214,115,207, 61, +135,232,232,104,135, 37,107,234,212,169, 80,169, 84,152, 52,105, 18, 44, 22, 11, 22, 44, 88,192, 18, 31, 3, 3,195, 63, 33,202, + 30, 56,220,150,164, 6,131,225, 70,157, 58,117,224,225, 92,172, 82,169,148,186, 20,210, 49, 85,170, 84,185,228,218,133, 72, 8, +233, 72, 41,221,238,174, 80, 39,132,192, 63,192, 31, 74, 63, 13,212, 46, 86, 44,165,127, 0, 20,126,126,224,100, 82,119, 21,194, + 93,156,162,111,137,179,208, 18,183,188,188, 60, 72,165, 82, 44, 90,180, 8, 1, 1, 1, 48, 26,141, 94, 57,197, 74, 71, 34,145, + 64,119,187, 0, 23,102,108,135, 92,185, 31,149, 58, 15, 66,180, 84, 5,217,222,245,208,219, 44, 37, 78, 88,234,142,179, 74,149, + 42,152, 60,121,242, 93,211, 58,120, 66,108,108,172,215,184,223, 47, 24,167,123,206,146, 70,197,138, 16,168,205,221,117,110, 57, + 69, 75,150, 65,144,126,123,253,250,117,209,146, 21,168, 86,171,241,249,231,159,235, 0,112,211,166, 77, 83,199,199,199, 75,124, + 73, 75, 18,137, 4,243,230,205,115,235,147,229, 78,116,149, 38, 31, 57,223,219,166, 77, 27,183, 19,150,186, 19,111,238, 56,197, +176,134,134,134, 58, 44, 89, 54,155,205, 49,218, 80,156,125,222, 83,163,130,165, 79,198,201, 56,255, 59,156,143, 43,220,214,242, + 41, 41, 41, 79,122,186,161, 82,165, 74,151, 47, 95,190, 92, 89, 92,138,195, 94,112,202, 12, 6, 67,149,230,205,155,123, 53,237, + 8,130, 0,133, 66, 1, 74, 41,218, 79,158, 5,194, 1, 28,138, 87, 98, 17, 45, 58, 64, 34,225, 33, 20, 45,245,225,117,212,161, + 94,175, 47, 86, 57,184,219, 10, 11, 11, 97, 52, 26,125,158,205,219, 96, 48, 20,155,130,129, 80, 1, 55,255, 88,125,215,232, 67, +113,243,213,111, 71,169, 84, 22,235,250, 41, 9,222,230, 36, 99, 40,123,136, 3, 22, 0,160,106,243,174, 16, 4, 27,168,205, 86, +108,153,164,234, 9, 79, 66,160, 54,152, 45, 58, 24,141, 70,111,102, 71,146,153,153,169,239,223,191,255, 46, 0,223,244,234,213, +235, 18,138, 70,188, 80, 63, 63, 63,133, 84, 42, 21, 0,100, 3,160, 57, 57, 57,129,201,201,201,130,193, 96, 40,239, 45,156,155, + 55,111,198,249,243,231,209,170, 85,171, 98,203, 65,137, 86, 81,231,217,221,125, 73,159, 98,119,185,187, 25,225, 61, 9, 57, 95, + 33,145, 72, 16, 24, 24, 8,153, 76,134,233,211,167, 67, 38,147, 65,173, 86, 3, 0, 22, 44, 88,224,152,124,149,129,129,129,225, + 63, 35,180,188,149,155, 37,116, 43,150,216,133,104,181, 90,147,226,227,227, 75,245, 48,155,205,150,230, 69,184, 37,173, 89,179, + 70,230,108,133,240,246, 75, 41, 77,243, 82,217, 38,109,220,184, 81,230,206,186,225,105,129,105,111,156, 54,155, 45,169, 66,133, + 10, 30, 45, 38,238, 96,177, 88,146, 89, 18,125,120,176,217,108, 37,164,207,119,238, 53,125, 94,169, 90,181,106,114, 80, 80,208, +175,145,145,145, 89,251,246,237, 11,109,220,184,113,168,243, 53,141, 27, 55,142,118,185,205, 4,207,235, 28,130, 16,146,212,171, + 87, 47,183,105, 94, 20, 77,110,210,103,146,183, 52,127,248,240, 97,153,243,253,158,248,157,242, 81,146, 15,194,245,102,253,250, +245, 57,103, 30, 79,105,223, 98,177,100,176, 84,200,192,192,240,159, 23, 90,122,189,254,118,157, 58,117,172, 30,206,221, 42,233, +222,204,204,204, 70,101, 29, 1,179,217,220,252,223,192,153,145,145,209,136, 37,183, 71, 27, 15,226, 27,165,165,165, 53, 41,107, + 78,171,213, 90,230,233,211, 98,177, 52,127, 16,239, 52, 43, 43,171, 25, 75, 89, 12, 12, 12, 76,104,149, 2,190, 78,227,192,192, +192,192,192,192,192,192,240, 95, 7,199, 94, 1, 3, 3, 3, 3, 3, 3, 3,195,131, 1, 65,209, 42,213,119,161, 52,163, 9, 8, + 33, 29, 75,251, 96,111,252,140,147,113, 50, 78,198,201, 56, 25, 39,227,124,252, 56,189,113, 63,118,163, 25,197,209, 84, 15, 98, + 3,208,145,113, 50, 78,198,201, 56, 25, 39,227,100,156,140,243,191,186,177,174, 67, 6, 6, 6, 6, 6, 6, 6,134, 7, 4,158, +189,130,127, 6,132, 16, 9,165,212, 86,134,148,193, 0, 60, 45, 24,103, 2,144,115, 47,193, 4, 32,179,111,226, 68, 71, 22, 0, +102,251,230,195,212,245, 83,184,148,148,224, 90,212, 38,109, 76, 9,145, 10, 2, 78,150, 47, 95,238, 4,240,164, 9, 0,252,162, +106,212,240,211,168, 58, 26,205,166, 4,133, 84,126, 62, 87, 91,184,205,144,118,233, 6, 75, 33, 12, 12,255, 72,185,212, 3,192, + 20,123,222,159, 73, 41, 93,205,222, 10, 3,195, 3, 18, 90,254,254,254, 71, 57,142,139,243, 54, 63,143, 83, 6,133,205,102, 75, +202,206,206,110,228, 99,134,230, 1,244,247,243,243,107, 39,149, 74, 91, 0,128,197, 98,217, 87, 88, 88,184, 3,192, 26, 74,169, +245, 30, 11,138, 0, 0, 3, 0, 12,177, 31,250, 1,192,106, 74,105,254, 61,242,213, 9, 12, 12, 92, 39,149, 74,105,102,102,102, + 83, 0, 8, 13, 13, 61,104,177, 88, 72,126,126,126, 95, 74,233,233, 82,242,113, 82,169,116,110,171, 86,173, 90, 19, 66,190,161, +148, 46, 42,163,111,169,224, 56,206,173, 64, 17, 4,161,194, 61,240,201, 0, 4, 46, 90,180, 40,116,197,138, 21,245,147,146,146, +106, 3, 64, 92, 92,220,153,161, 67,135,158,120,249,229,151,179, 0,228,217, 5,151, 71,164,164, 4,215, 74, 79,189, 54, 42, 45, +253,252, 0, 0,136,138,174,189, 90, 34,225,100,177,177,199, 15,168,195,134,132, 85,173, 86,241,165, 31,191, 94, 36,171,144, 80, + 14,127,238, 63, 94,239,229, 87,222,174,165,140,172,250, 9, 19, 91, 15, 15, 1, 1, 1, 71, 57,142,139, 43, 41,143,187,203,243, + 54,155, 45, 41, 43, 43,171,145, 39, 78,158,231,227, 74, 42, 47,220, 29, 19, 4,225, 90, 70, 70,134,219,169, 38, 2, 3, 3, 15, +240, 60,159,224, 43,151,248,107,181, 90,147, 60, 77, 45, 19, 24, 24,120, 84, 34,145,196,149, 20, 79,119,231, 4, 65,184,150,158, +158,238, 41,156,119,197,189, 44,194,121, 47,156, 37,133, 83, 44,143, 0, 44, 8, 13, 13,125, 34, 43, 43,235,127, 0,222,206,207, +207,175, 43,145, 72, 16, 18, 18,242, 54, 33,228,106, 96, 96,224, 87,121,121,121,251, 1,188, 66, 41, 21, 88,142, 97, 96, 40, 35, +161,197,113, 92, 92,114,114,114,132, 70,163, 1,240,247,122,124,226, 98,210,130, 32,128, 82,234,248,181, 90,173,168, 94,189,186, +175, 98,163,118, 64, 64,192,218, 73,147, 38,149,239,223,191,191, 92, 92,106, 38, 37, 37,165,202,186,117,235,254, 55,125,250,244, +247, 9, 33,253, 40,165,103,124, 21, 47, 0, 58, 0, 24, 94,191,126,253,167,167, 78,157, 42,107,223,190, 61,108, 54, 27,126,253, +245,215, 86,211,166, 77, 91, 68, 8, 89, 15,224, 59, 0,127,248, 90, 88, 16, 66, 90, 70, 69, 69,173,220,187,119,111,244,245,235, +215,109,253,251,247, 95, 5, 0, 71,143, 30, 77,180,217,108,164,105,211,166,155, 9, 33,131, 41,165,123, 75,241,206,159, 30, 55, +110,220,192,177, 99,199, 70, 60,251,236,179, 35, 0, 44,178, 63,139,216,223,115,105, 23, 56,116, 88,178, 40,165,178, 18,174,139, + 42,133,101, 75,115,253,250,245,224,230,205,155,143, 78, 79, 79,127,205,153, 55, 45, 45, 13,199,142, 29, 51,207,152, 49, 99,222, +254,253,251, 23, 39, 36, 36,228, 0,208,122, 34,162, 54,105,227,180,244,243, 3, 90, 55, 91, 20, 8, 0,107, 54,142, 30,116,248, + 68,134,255,166,223,151,254, 79,174,148, 25, 87,124, 49, 79, 86,185, 82, 5,236, 60,122, 5,135,206,103,147,218, 45,187,243,121, +155,150,119, 2,176,148,101,207,135, 3,137, 68, 18,155,148,148, 20,161, 86,171,221, 46, 28,239,226,151, 33, 78,128,138, 42, 85, +170,120, 46, 88,120, 62, 46, 57, 57, 57, 66,169, 84, 58,202, 14,215, 50, 67, 44, 87, 28,105,133, 82, 84,173, 90,213, 92, 66,153, + 20,127,235,214,173, 8,181, 90,237,224,113, 23, 62, 87,193, 81,181,106,213,146,226, 94, 44,156,190,112, 82, 74, 81,185,114,101, +155,183,184,139, 43, 96,120,139,183,200,153,144,144, 64, 75,195,233, 75, 56, 43, 86,172,104,246,242,249, 23, 92,186,116,105,108, +185,114,229, 80,185,114,229,253, 79, 60,241, 68,128, 70,163,193,239,191,255,142, 26, 53,106,212, 10, 8, 8, 56,180,102,205, 26, +233,132, 9, 19,234,125,251,237,183, 0,240, 50,203, 49, 12, 12,101, 36,180, 8, 33,208,104, 52, 88,181,106,149,199,229, 56,156, +255,151, 47, 95,222,167, 7, 18, 66, 26, 37, 36, 36,236,218,187,119,175, 42, 58,250,239, 9,177, 77, 38, 19,130,131,131, 49,102, +204, 24,121,143, 30, 61, 42,119,238,220,249, 32, 33,164, 13,165,244,168, 23,190,167,195,195,195, 63,125,239,189,247, 34, 7, 14, + 28,136,208,208, 98,147,110,163,127,255,254,232,219,183,175,236,210,165, 75,131,150, 45, 91, 54,104,201,146, 37,169,132,144,151, + 41,165,235, 75,226, 85,171,213,189, 42, 85,170,244,249,222,189,123, 35, 34, 34, 34,144,152,152,200, 77,152, 48,161,114,149, 42, + 85, 84,113,113,113,220,157, 59,119,240,243,207, 63,199, 14, 30, 60,120,173, 92, 46,127,201,100, 50,109,240, 33,238,242,208,208, +208,183, 95,122,233,165,176,252,252,124,235,177, 99,199, 46,139,199,229,114,249,180,102,205,154, 53, 38,132,124, 79, 41,253,234, + 94, 44, 89,118,171,157,235, 90, 38, 22,241,188,143,150, 45,249,201,147, 39, 67,154, 53,107,182,222,104, 52, 54, 24, 53,106,212, +173, 25, 51,102,168, 2, 2, 2, 2, 0,144,252,252,252,156, 41, 83,166,152,230,207,159,255, 86,141, 26, 53, 58, 28, 56,112,224, +233,122,245,234, 89,236, 34,238,110,161, 69,136, 35, 60,183,147, 51,176,107,191, 32,159, 60,233,205,184,143, 62, 76,184,121,228, +220,109,129, 87, 5,224,151,221,103,145,150, 85,136,223, 14,156, 67, 84,168, 63,145, 41,164,181,130,226,106,181,201, 75, 62,183, +155,178,149,181, 31, 56, 8, 33, 80,171,213,248,229,151, 95,238, 90,186,202,221,178, 86, 60,207, 35, 40, 40,200,235,234, 6, 74, +165, 18,219,182,109,115,187,246,162,187, 37,125, 2, 3, 3,129, 18, 22,213, 38,132, 64,169, 84, 98,223,190,125,224, 56,206,237, +210, 64,174,199, 52, 26, 13,184, 18,214,186, 18, 57,119,239,222,237,149, 75,252,245,243,243, 3, 0, 73,137,153, 82,161,192,222, +189,123, 61,198,217,245,191,159,125,189, 87,111,156,251,246,237, 43,182,244,151,235,146, 96,206,251, 26,141,198,209,128,243,216, + 74, 11, 14,110, 26, 23, 23,135,195,135, 15, 99,205,154, 53, 33,181,106,213,194,149, 43, 87, 64, 8,193,140, 25, 51, 72,205,154, + 53,165,169,169,169,104,213,170, 21,126,250,233,167,230, 44,183, 48,252,131,144, 2,168, 7, 32, 28, 69,171,208, 20, 0, 8,178, +215, 61,114, 0, 89, 0, 84,246,205, 8,160, 16, 64,152,253,222, 76,123,217,226, 44, 16, 50, 80,124,241,233,198,118,110,113,133, +138,112,167,115,226, 51, 92,247, 93,127,221,114,243, 0,176,121,243,102,177, 50,107,219,173, 91,183, 93,197, 98,230,131,200, 18, +215, 41,115,205,211,110, 22,152, 85,104, 52,154,117, 7, 15, 30, 84,133,135,255, 29, 7,163,209,136,130,130, 2, 20, 22, 22,162, +160,160, 0,254,254,254, 88,179,102,141,170, 67,135, 14,235, 8, 33, 85, 40,165, 70, 79,156, 0,230,221,185,115, 39,210,106,181, + 66, 46,151,123,106, 9,163,122,245,234,120,251,237,183,209,165, 75,151,168,118,237,218,205, 3,176,190, 4, 78,168,213,234,207, +143, 29, 59, 22,161, 86,171,113,249,242,101, 36, 37, 37,225,141, 55,222, 40, 39, 8, 2,110,223,190,141, 43, 87,174, 32, 57, 57, + 25,203,150, 45,139,232,221,187,247,231, 0, 54,148, 20,119, 59, 70,189,246,218,107,213,130,131,131,185,143, 63,254, 56, 87,171, +213,126,102, 63, 62,121,225,194,133,207,180,110,221, 58, 98,228,200,145,148, 16,178,130, 82,122,151,112,113,225,116,103,201,178, + 1,184,224,114, 91,117, 23, 75, 87,148, 61, 17,230,186,225, 36, 0, 2, 59,119,238,252,186,209,104,108,176,119,239,222,171, 45, + 90,180,136, 7,112, 71, 76,124,129,129,129,154,121,243,230, 69,118,239,222,253, 82,251,246,237, 27,116,238,220,249,245,140,140, +140, 25,246,243,212,149, 83, 16,112, 50, 42,186,246,234,221, 7, 94, 30,176,115,159, 73,246,230, 43,239,223, 42, 95,174, 66,222, +201,203,217,182,115,215, 50, 80,160,183,162, 79,251,162, 5,204,155,214, 46,143, 79, 87,237,197,152, 87,223,145,174, 95,189,188, +239, 85, 10, 13,128,205, 37,188,207,251, 2,227,252, 91,108, 8,130, 0,169, 84,138,167,158,122, 10,132,144,187,214,242,148, 74, +165, 56,112,224, 0,218,183,111, 15,169, 84,138,231,158,123,206, 39, 78,158,231,209,185,115,103,199, 58,138,206,124,174,162,193, +157, 38,112,141, 59,165, 20, 60,207,131,227, 56,143, 11,105,187,114,122, 43,151,196,112,150,196,229,124,206, 91, 56, 69,107,146, +175, 34,203, 87, 78, 49,156, 60,207,163,121,243,230, 56,113,226, 68,137,162,203,157,190,116,141,123, 78, 78,206,176, 42, 85,170, +236, 94,180,104, 81, 8, 0,100,101,101, 57, 22,188,151, 72, 36,184,120,241, 34, 76, 38, 19, 62,248,224, 3,115,126,126,254, 72, +150,143, 24,231,131,228, 44, 73,139, 0,104, 61,105,210,164, 70,179,102,205,154,209,172, 89,179, 31,247,239,223,191,146, 16,178, +137, 82,218, 93,252,157, 52,105, 82,173, 89,179,102,205,152, 56,113,226,219, 51,103,206, 60, 75, 8,217, 4, 0,174,251,246,240, +119,119, 17,113,225, 34,143, 61,207, 21,187,214,221,190,235,175, 7,238,191, 45, 90,221,186,117, 35,246, 72, 18,231, 66,205, 87, +161,229,203,218,125, 60,207,143,157, 49, 99, 70,100, 73, 34,171,176,176, 16, 41, 41, 41,136,143,143,199,115,207, 61, 23,185,104, +209,162,177, 0,230,148, 64, 43,147, 72, 36, 56,124,248, 48,210,211,211, 81,167, 78, 29, 36, 36, 36, 20,187,224,175,191,254,194, +175,191,254,138,220,220, 92, 52,108,216, 16, 40,242, 63,114,139,122,245,234,125, 80,189,122,245,206,157, 59,119,182,170, 84, 42, +156, 60,121, 18, 13, 26, 52,192,170, 85,171, 80,190,124,121,168,213,106, 92,186,116, 9,117,234,212,193,174, 93,187, 16, 30, 30, +142,250,245,235, 91, 27, 54,108,184, 39, 59, 59,123,199,141, 27, 55, 62,240,208,114,150,197,198,198,190,255,226,139, 47,202, 83, + 82, 82,132,239,190,251,110, 47,165,116, 47, 33,100,236, 59,239,188, 51,162, 75,151, 46, 17,199,143, 31,207, 59,114,228,200, 33, +119, 34,203, 71, 75,150,213,181, 82,178,217,108, 70,189, 94,111, 50, 26,141, 22,142,227,110, 16, 66, 76, 54,155,205, 83,159,143, +114,248,240,225, 21, 51, 51, 51,199,188,250,234,171,215,237, 34,235, 34,138, 28,224, 1, 0, 86,171,213, 88, 88, 88,152,223,172, + 89,179,248,193,131, 7, 95, 93,185,114,229,152,225,195,135,175,249,238,187,239, 10, 1,232, 93, 9,203,151, 47,119, 66, 34,225, +100,218,130,144,107,107,215,124,245,218,175, 27,199,150,187,125, 59,185,114,104, 88,184, 86,230, 23,158,178,230,135,111,143, 2, + 48,165,100,228,227,244, 95,169,144, 74, 37, 56,127, 59, 15,173,159,236, 47,189,122,249,195,150,162,208, 98,120,160,160,226, 34, +212, 59,119,238, 44,209,162,117,224,192, 1, 72,165, 82,168, 84, 42,204,159, 63,191, 68, 82, 81, 24,136,214, 34,111, 98,134,227, +184, 18,203, 17, 81,108,136, 11,189,187,110,159,125,246, 25, 94,125,245,213, 98,207,176,139, 13,226,141,211, 83,248,226, 43, 84, + 64,122, 90, 90,177, 99,190, 44, 74,111,179,217, 32,149, 74,241,229,151, 95,162,123,247,238,216,180,105, 83,137,191, 79, 61,245, + 20, 56,142,163,190,188,207,230,205,155,195,108, 54, 59,194,124,241,226, 69,183,188, 75,150, 44,241,102,201,236, 1, 96, 74,131, + 6, 13, 2,218,181,107,135,221,187,119,163,111,223,190, 70,179,217,124,217, 94, 39, 84, 93,180,104,145,252,216,177, 99, 8, 13, + 13,149,222,186,117,235, 27, 66, 8,115,144,103,120,160,112,167, 69,196, 58,111,214,172, 89, 51, 92, 69,140, 51,196,243,132,144, + 77, 51,103,206,236,238, 44,138,156,247,157,172, 78,206, 34,174,150,179, 69,202, 89, 68,121, 18, 80, 46,245,173,243,245, 25,110, +133,150, 61, 98,109,157,173, 64, 98,225,235, 77,100,121,106, 57,186, 34, 48, 48,176,107,159, 62,125, 28, 34,199, 96, 48, 56, 4, +150, 40,178,196,253, 75,151, 46,161, 81,163, 70,178,192,192,192,174, 94,132,150, 40,226, 16, 19, 19,131,204,204, 76,156, 57,115, + 6,241,241,241,176, 88, 44,216,178,101, 11,242,242,242, 32,149, 74, 33,147,201, 96, 54,151,236,178, 80,189,122,245,167, 86,172, + 88,209,104,249,242,229, 57, 98,139,238,135, 31,126, 0,165, 20,225,225,225,208,233,116, 72, 75, 75,195,142, 29, 59, 96,181, 90, +225,231,231,135,196,196, 68,121,175, 94,189, 90, 78,153, 50, 69, 10,224, 3, 15,212,205,251,246,237, 27, 24, 16, 16,128, 87, 94, +121,133,154,205,230,153,132,144,230,125,251,246,125,255,229,151, 95, 14,189,113,227,134,233,249,231,159, 63,108, 54,155, 63,182, + 23,130, 82, 74,169,197, 75,139,194,163, 37,203, 98,177,136,239,244,122, 97, 97, 33,194,194,194,226,189,248,112, 1,128,108,223, +190,125,205, 1, 72,166, 77,155,166, 4,144,230, 44,178, 76, 38, 19, 10, 11, 11,161,213,106, 45,121,121,121,233,227,199,143,183, +174, 92,185, 82, 98,191,231,188, 59,161, 5, 60,105,170, 89, 83, 35,167, 84,242,206,210,165, 75,253,186,116,233,194,249,249,249, +161,160,160, 32,224,183,223,127,247,235,208,174,101,226,140, 89, 31,109, 13,136,171,147,182,239,228, 53, 36,167,230,193,100,177, + 32, 49, 58,176,200, 30,198,240,192, 97, 31,200,226,176,104, 57,139,138,221,187,119,227,201, 39,159,116,228,117,153, 76, 86,204, +242,229,141,147,231,121, 60,249,228,147,119, 89,120,118,238,220,233,214,250,228, 13,206,162,200, 85, 28,185, 19, 96, 28,199,193, + 91,239,179,104,205,115, 39,182,156,173,250, 46,226,205, 91,107, 31, 60,207,227,229,151, 95,134, 84, 42,197,132, 9, 19,192,243, + 60,234,215,175, 15,158,231,209,172, 89, 51, 72,165, 82,180,111,223,190,212,113, 63,120,240, 32, 26, 52,104,224, 8, 83,253,250, +245,209,184,113, 99,240, 60,143, 86,173, 90, 65, 42,149,162,115,231,206,190,112,190, 93, 80, 80, 80,215,207,207, 15,151, 46, 93, +130, 68, 34, 1, 33,228, 10,165,180, 46, 0,188,248,226,139, 87,117, 58, 93, 69,131,193,128, 23, 95,124,145,152, 76,166, 58, 19, + 38, 76,120, 7, 0, 19, 90, 12, 15, 12,174, 90,196, 9,250,137, 19, 39,190, 77, 8,217, 36, 90,168, 92, 45, 79,238,246,221,148, + 77,162, 24, 18,187,246, 26,187,136, 56,177,219,175, 91, 9,247,154, 92,132,149,107,215,225, 17,159, 45, 90, 98,225,235,171,208, +242, 6,131,193, 80, 47, 34, 34,194,163,200,114,254, 53,153, 76, 72, 72, 72,128,193, 96,168, 87,218, 74, 35, 58, 58, 26,102,179, + 25, 95,125,245, 21,100, 50, 25,100,178,191,245,133,201, 84,178,177,232,220,185,115,215, 15, 30, 60,216,160, 97,195,134,193, 63, +253,244, 83, 70,155, 54,109,194,187,116,233, 2,149, 74, 5,189, 94, 15,139,197,130,166, 77,155,162,122,245,234, 72, 74, 74,194, +111,191,253,150, 89,165, 74,149,176, 67,135, 14, 9,169,169,169, 55, 75,160,238,212,161, 67, 7, 16, 66,240,251,239,191,103, 82, + 74,143, 40,149,202, 95, 63,252,240,195, 96,147,201, 36, 12, 29, 58,244, 86,118,118,246,171, 0,204, 10,133, 98, 97,231,206,157, +155, 73, 36,146,239,109, 54,219,252,210, 38, 84,215,119,171,213,106,161, 84, 42,125,153, 74, 66,154,157,157, 93, 27, 0, 52, 26, + 77, 8,128,171,142, 20,174,215, 23, 19,195, 38,147,201, 16, 18, 18,162, 1, 0,251, 61, 82, 15,223, 35, 92,173, 86,175,189,121, +243,154,191,179,255, 92, 80, 80, 16,134, 12, 30,204,181,104,222, 92, 94,183, 94,189,206,239,126,178,124, 85, 76,104,128, 41, 49, + 38, 20, 22,155, 5,219,183,110, 17,168, 96,217,202,138,157,135, 35,180, 68,177,225,106,209,146, 74,165,216,181,107,215, 93,199, +100, 50, 25,190,248,226, 11,159,132,129, 40,170, 60,117,157,185,116,117, 17,111, 2, 70, 42,149, 66, 34,145,224,203, 47,191,132, + 32, 8,120,237,181,215,138,117, 39, 58,243,251,216, 5,226,184,167,250,251, 2, 0, 19,146,230, 42, 28,247,187,134,215,126,143, + 79, 86,178, 69,139, 22,249,100,209,234,214,173,155, 87,225,234,220,195,224, 28,174, 19, 39, 78,184,229, 93,186,116,169,215,247, +105,179,217,176,121,243,102,135, 72, 21,241,222,123,239,189, 24, 23, 23, 23,185,103,207, 30,164,166,166, 66,171,213,162,176,176, + 16, 77,155, 54, 77,236,216,177,227,201,212,212,212, 27,231,206,157,235,195,114, 15,195, 67,180,104, 25,103,206,156,121,118,230, +204,153,110, 45, 86,174,150,165,146, 44, 79, 78, 2,235, 8,236, 93,134, 19, 39, 78,124, 27, 69,110, 53, 71,124,184, 87,238,218, +117, 88,162, 33,200, 69, 69, 78,113, 87,248,250,210,125,232,163, 57,157, 39,132,192, 96, 48,184, 21, 88,206,226,192,108, 54, 35, + 59, 59, 27, 54,155,237,158,231,250,114,215,146,245, 38,180,206,156, 57,243,236,136, 17, 35, 82, 2, 3, 3,235,102,100,100,164, + 11,130,208,254,192,129, 3,225, 60,207, 35, 32, 32, 0, 1, 1, 1,248,245,215, 95,161, 86,171,241,242,203, 47,167,219,108,182, +221,254,254,254,161,122,189,254, 84,106,106,234,187, 30, 21,140, 84,218,185, 85,171, 86, 56,118,236, 24,114,114,114,182, 17, 66, +234,143, 28, 57,242,201,114,229,202,145, 15, 63,252,208,240,215, 95,127,205, 7,144,174,209,104, 86,172, 88,177,162, 93,195,134, + 13,253,135, 14, 29, 10, 66,200, 82, 74,169,193,215, 56,107,181,218, 98, 2, 43, 63, 63, 31, 5, 5, 5,208,104, 52, 86, 31,223, +153, 20, 69,190, 86,162,191,149,227,219,216,173, 89,226,247,161, 60,207,211,162, 75,168,212, 19,159, 70,163,153,182,124,249,114, +149,235, 32, 5,155,205,134,180,180, 52, 4, 4, 4,224,189,119,223,149, 77,125, 99,100, 3,137, 95,228, 1,142, 35, 48,153,105, + 46, 21, 76, 91,180,105, 3,247,176, 98,231,225, 64, 20, 6, 61,123,246,188,171,187, 80, 38,147, 97,219,182,109,232,221,187,183, +163,225,210,176, 97, 67,175,141, 43, 81, 24,244,232,209,195, 97, 25,218,178,101,139,219,110, 63,209, 34,229,139, 32, 20,175, 29, + 55,110, 28,120,158,199,167,159,126,138,215, 95,127, 29, 28,199, 97,238,220,185,224, 56, 14,147, 39, 79,246, 89,100, 58, 11,152, + 27, 31, 21,253,198,189,158,143,172, 37,145, 0, 0,255,128, 0, 49, 66,165, 42,123,120,158,119, 88,178,234,213,171, 7,169, 84, +138,102,205,154,129,231,121,135, 37,171,107,215,174,206,239,145,250,194,201,243, 60, 46, 95,190,236, 8,115,179,102,205,138, 89, +178,120,158, 71,183,110,221,124, 9,230,140,160,160,160, 41,213,171, 87,175, 49,111,222, 60,169, 68, 34, 65,135, 14, 29,170, 62, +255,252,243, 55, 67, 67, 67, 67,167, 77,155,166,118,115,143, 10, 64,221, 26, 53,106,104, 88,174, 97,120,128, 22,173, 41,110, 78, + 5, 59,251, 92,149,162, 33,185,201,249,122,145,195, 85, 28,217, 45,100,187,189,113,185,187,215, 27,120, 81, 65,150,100, 82,247, + 69,104,217,205,206, 37, 62, 76,173, 86,159, 78, 79, 79,111,166, 82,169,138,137, 44,119,130, 75, 34,145, 32, 53, 53, 21,106,181, +250,116, 89,126, 68,111, 93,135,118, 81,243,134,211,139,237,216,181,107,215,239,182,109,219, 22,189,125,251,118, 28, 58,116, 8, +225,225,225, 88,180,104,209,157,180,180,180,103, 41,165,219,124,121,110,197,138, 21,107,251,249,249, 97,223,190,125, 0,176, 11, +192,200, 49, 99,198, 16,139,197,130, 37, 75,150,104, 1,252, 30, 20, 20,180,121,205,154, 53, 13,234,214,173, 43,223,190,125,123, +254,161, 67,135,254,240, 81,100,217, 4, 65,184, 75, 96, 57,191, 83,127,127,127, 95, 44, 90,150,192,192,192, 51,249,249,249,253, +245,122,125,190, 66,161,240,207,207,207, 55, 58, 11, 44,145,159,231,121,233,229,203,151, 83, 0, 36, 6, 6, 6,158,129, 83, 23, + 99,177, 4,198,243, 29, 58,116,232,192,187,126,131,180,180, 52,164,166,166,194,108, 54,163, 97,195,134, 68, 66, 44,146,236, 91, +167, 94,100,197,204, 63, 98,209,162, 98, 94, 23, 71, 9,186, 27,105,184,101,203, 22,199, 62,199,113,176, 15,247,247, 42,138,182, +109,219, 86,162,195,186, 75,215,161, 87,211,184,120,253,226,197,139,139,150,183,176, 91,178, 56,142,195,196,137, 19,161, 80, 40, +240,225,135, 31, 98,226,196,137,224,121,222,107,215,161,179,128,169, 48, 65,231,220, 56, 42,202, 20,118,127, 40, 66,136,179,216, + 34,190,138,183,146,172,121,190,244, 4, 56,115,138,247, 41,149, 74,143,142,240, 46,156,164,132,120,255, 66, 8,185, 22, 29, 29, +189,175, 89,179,102,129, 71,143, 30,197,220,185,115,101, 70,163,177,252,246,237,219, 29,207,117,247,190,180, 90,173,138,229, 28, +134, 7, 97,205, 42,225,116,134,139,127, 21,113,238,198, 43,225,215,245,122, 56, 29,115,230,205,112,169,199,156,143,187,138, 43, +215,103, 56, 95,147,225,209,162,229,173,176,240, 38,184,124,177,104,233,116,186, 63,126,255,253,247,198,131, 7, 15,230, 75,234, + 54,212,106,181,136,140,140,196,217,179,103,173, 58,157,238, 15, 31, 44,101,101, 38,180,220, 20, 42,219,163,162,162, 36, 22,139, + 5,149, 43, 87, 70,108,108, 44, 12, 6, 3,114,115,115, 37,190,138, 44, 66,136,172, 81,163, 70, 18, 0,200,205,205, 5,138,134, +154, 86,173, 82,165, 10,142, 29, 59,134,236,236,236,245, 0,186, 76,153, 50,165, 97,211,166, 77,101,171, 86,173,210,141, 26, 53, +106,189,197, 98,249,192, 71,107,132,201,106,181, 38,112, 28,103,206,205,205, 77,118,126,159,145,145,145, 33, 26,141,134,164,165, +165, 89,124, 17, 90,117,235,214, 61,124,235,214, 45, 76,155, 54, 45, 99,198,140, 25, 85, 10, 10, 10,114,242,242,242,172,206, 98, +203, 96, 48,112, 97, 97, 97,138, 37, 75,150,168, 0,160,110,221,186,135, 61, 9, 45,173, 86, 91, 78,173,254,187, 97,108, 52, 26, +145,154,154,138,212,212, 84,164,165,165,161,160,160, 0,137,137,137,208,233,116,241,172,152,249,199,132, 86,177,238, 51,231,252, +237, 92,145,151, 38,175, 59, 11,152,158, 61,123, 58,124,187, 68, 11,153,184,173, 93,187,214,213,193,220, 39,161,181,120,241, 98, +140, 27, 55, 14, 74,165, 18,243,230,205, 43,214,117,232, 42, 14, 4, 65, 32,190,196, 61,225, 45, 61, 82, 23,134, 64, 42,149, 34, +116, 84, 90,177, 46, 58, 55,130,195,167,112,206,152, 49,163, 76,186, 14,157, 57,227,227,139,178,202,151, 95,126,137,254,253,251, + 99,207,158, 61,247,220,117, 88,171, 86,173, 31, 54,109,218, 20,120,238,220, 57,228,231,231, 35, 35, 35, 3, 70,163, 17, 73, 73, + 73, 30,123, 5,236,101,185,146,229, 28,134,135,140, 35, 15,153,183,204,158,199,123,169,192,125, 22, 90,190, 88,180,140, 70,227, +188, 87, 94,121,101, 76,199,142, 29, 67,252,253,253,145,146,146,114,151,200, 42, 44, 44,132,159,159, 31,244,122, 61, 54,110,220, +152,111, 52, 26,231,121, 19, 7, 22,139, 5, 17, 17, 17,200,204,204,132,224,193,127,154,227, 56,168, 84, 42, 20, 22, 22,194,147, + 40, 40,169,194, 48,155,205,176, 88, 44,176, 88, 44, 48,155,205, 40,229,244, 78,106,113,226, 87,173, 86, 11, 0,218,152,152,152, +202, 74,165, 18,215,175, 95, 7,138, 70,246,117,124,242,201, 39,165, 89, 89, 89,244,249,231,159,223, 75, 41,125,209,203,236,248, +166,221,187,119, 39, 0,128, 74,165,186, 4, 0, 73, 73, 73,150,220,220,220, 98,150, 66,181, 90, 77,123,247,238, 29, 77, 41,197, +238,221,187, 19,100, 50, 25,133,135, 57,175, 0, 24, 54,108,216,112, 46, 48, 48,112,229,172, 89,179, 6,119,239,222,253,108,237, +218,181, 19,180, 90,109,186, 94,175,215, 27, 12, 6, 42,145, 72,100,193,193,193,202,173, 91,183, 94, 61,112,224, 64,199,128,128, +128,149, 27, 54,108, 56, 7,192,173,229, 77,163,209, 36,233,116,186, 10,226, 55,117, 22, 89,169,169,169,160,148,226,218,181,107, + 80,171,213,183, 88, 57,242,207, 65,108, 84,185, 90, 94, 92,143,249, 42,178,156,133,193,214,173, 91, 75,156, 67,203, 87, 78,103, + 81,244,250,235,175, 99,225,194,133,119, 89,180, 62,252,240, 67, 0,192,187,239,190,235,179,143,150,104,189, 74, 93, 24,130,168, +113,217,197,194, 14, 0, 68, 12, 95, 41,167,116,227,121, 30,211,166, 77,187,203, 73,221,185,107,207,199, 46,190, 98,225, 76, 79, + 79, 7,207,243, 8, 9, 9,193,144, 33, 67,208,185,115,103, 71, 23,100,105,121, 47, 92,184,176,239,173,183,222,170, 83,171, 86, + 45, 76,159, 62, 61, 59, 40, 40,200,255,133, 23, 94,224,115,115,115, 73, 73, 22, 45, 38,180, 24, 24,202, 64,104,137, 25,204,215, + 81,135,238, 10, 75, 66, 72, 71,231,185, 54, 40,165,121,132,144, 33,157, 58,117,250,105,245,234,213,170,138, 21, 43,226,194,133, + 11,200,206,206,134,201,100,130, 76, 38, 67,116,116, 52,114,115,115,241,237,183,223,234,117, 58,221, 16, 74,105, 94, 73,156, 0, +222,105,212,168,209,231,115,230,204, 81,214,175, 95, 31,217,217,217, 40, 44, 44, 44, 54,139,117, 64, 64, 0, 84, 42, 21, 14, 31, + 62,140, 45, 91,182,232, 1,188,227,133,211,157,154,131,217,108,118, 8, 46,111, 66,203,133, 83, 35, 90,117,116, 58, 29, 0, 88, +202,149, 43, 23, 5, 0,215,174, 93, 3,128, 27,137,137,137, 83, 42, 86,172, 72, 86,172, 88, 65, 41,165, 91,220,137, 44, 23,206, +236, 86,173, 90,229, 0,136, 50,153, 76, 50, 0,200,203,203, 51,135,133,133, 69, 40, 20, 10, 65,165, 82, 9, 74,165, 82, 72, 73, + 73,177, 90,173, 86, 25, 0,180,106,213,202, 4, 32, 21, 78,190, 32, 46,156, 2,128,252,165, 75,151, 78, 25, 58,116,104,179,230, +205,155,215, 26, 61,122,244,153,231,159,127,158,139,141,141, 13, 46, 40, 40, 48, 92,185,114, 37,231,147, 79, 62, 41, 56,120,240, + 96, 71,169, 84,122,115,233,210,165, 83, 0,228,219,239,189,139,211,106,181,254,177,125,251,246,103,187,119,239,206, 39, 39, 39, + 35, 45, 45,205, 33,178,210,210,210, 80,189,122,117, 28, 56,112,192,102, 54,155,183,151,226,125,150,149, 37,135,113, 22, 53, 66, +168,152,215, 61, 9, 44,177, 49,229, 43,167,179, 40,234,223,191,127, 49, 43,150, 76, 38,195,186,117,235,220,150, 27,110,102, 56, +239,232, 58,159,148, 24,166,183,222,122,171,152,104,123,239,189,247, 60, 6,205,219,251, 20,121,242,190,140, 45, 62,234,208, 67, + 62, 47, 41,156, 98,217, 41,149, 74,241,222,123,239,249,108,209,130,139,143,150, 59, 78, 49,238,109,218,180,129, 78,167,115, 8, + 89, 79, 22, 45,111,239,211,102,179,141, 91,184,112, 33, 13, 8, 8,120, 34, 63, 63,255,127,183,110,221, 90,166,211,233,154,228, +229,229,149,104,209, 50, 26,141, 10,150,143, 24,231,131,152, 75,235, 63, 37,180,236,149, 36,202,149, 43, 87,108,237, 44,142,227, +138,109,165,241, 51,176,103,220,173,132,144,167, 91,180,104,241,253,184,113,227,252,235,215,175, 47,173, 80,161, 2,180, 90, 45, +174, 95,191,142,179,103,207, 90, 55,108,216,144,175,211,233,254, 71, 41,221,234, 3,223,114, 66,200,150, 46, 93,186, 76,110,218, +180,233, 75,239,191,255,190,164,106,213,170,200,203,203, 67,112,112, 48, 34, 34, 34,112,241,226, 69,108,220,184,209,150,153,153, +249, 57,128,169,148,210,140,210, 54,248,205,102, 51, 6, 13, 26, 4, 65, 16, 48,127,254,124, 16, 66, 74,211,188, 53,155,205,102, + 10,128,100,102,102, 2,128,206, 62,187, 52,174, 92,185, 2, 0, 55, 19, 18, 18,252, 1, 96,251,246,237, 4,128,175, 75,250, 80, +103,203, 86,245,234,213,175,187, 22,142,162, 37, 75,180,130,193,251, 66,208,134, 1, 3, 6,164,235,116,186, 46,175,191,254,250, +228,197,139, 23, 15, 94,188,120,241, 93, 23, 5, 4, 4,172,156, 59,119,238,212, 1, 3, 6,164,123,178,102,217, 45,120,239, 14, + 27, 54,108,192,233,211,167,253,149, 74, 37,180, 90, 45,178,178,178, 96, 54,155,145,152,152,136,244,244,116, 44, 95,190,188, 64, +175,215,127,192,178,227, 63, 3,103, 97,224,201,170,229, 77,100,149,100,213,249,229,151, 95,220,206, 81, 85, 90, 78, 87,177,225, +235,220, 86, 37, 53,138,196,105,105,220, 77, 25, 81,154,114,205, 29, 47,207,243,248,248,227,143, 29,147,182,186,179,100,149,198, +162, 37,114,134,132,132, 20,153,201,237, 75, 38,117,235,214,237,158,121,237,203,145,189,236,244,140, 25,227,199,143,159, 82,189, +122,245,170, 0, 20,206,239,128, 45,210,192,192, 80,198, 66,203,102,179, 37, 85,171, 86,173, 88, 1,231,109, 49, 83,139,197,146, +228, 99,230,222, 66, 8, 73,156, 59,119,238, 43, 26,141,166,163, 78,167,171, 99, 47, 56, 78,107,181,218,237, 70,163,113, 65,105, + 22,129,182, 11,167,177,132,144,249, 93,186,116,249,176,125,251,246,253,222,120,227, 13, 66, 41,197,146, 37, 75,232, 95,127,253, +181, 22,192, 59,148,210,191,238,229, 37,133,132,132,156,251,246,219,111, 35,127,250,233, 39, 88, 44, 22, 44, 88,176, 0,254,254, +254,231, 74, 17,190,116,158,231,191,107,222,188,249, 51, 7, 14, 28, 88, 78, 41, 61, 37,151,203,151,181,108,217,114,216,129, 3, + 7,126,160,148,158,229,121,126, 89,211,166, 77,135, 29, 57,114,100, 13,165,244, 68, 41,130,231,176,108, 89,173,238,123, 26,221, + 89,178,188, 32,127,196,136, 17,230, 17, 35, 70,188, 49, 96,192,128,175,142, 28, 57,210, 36, 55, 55,183, 14, 0, 4, 5, 5,157, +110,220,184,241,225,213,171, 87, 95,180, 91,178, 12,222,190, 13, 33,164,119,157, 58,117,214, 79,159, 62, 93, 83,171, 86, 45,190, +114,229,202,184,113,227, 6,206,156, 57, 99,253,230,155,111, 10,245,122,125, 79, 74,105, 14,203,142,255,156,208,162,148, 34, 40, + 40,168, 88, 35, 74, 28,242, 95,218,238, 66,231,138, 89, 92,170,199,149,215, 19,103, 73,211, 38,136,240,243,243,115, 76,110,234, +139,203,130, 32,148, 60, 31, 27,165,212,193, 41,110, 62,136, 44,175, 35, 4,237, 75,224,248,204,233,203,244, 14, 26,141, 6, 22, +139,197,193,235,195,200, 79, 82,202,111,246, 11,128, 95, 42, 87,174,124, 5, 64, 37, 38,174, 24, 24, 30,160,208,202,206,206,110, +244, 32, 31,108, 23, 82, 83,237, 91, 89,113,254, 5, 96, 0, 33,100,206,159,127,254, 41,246, 35, 76,243,182, 94,162, 55, 92,184, +112,161,187, 84, 42,253, 98,229,202,149, 77, 41,165, 8, 12, 12, 60,120,227,198,141, 23, 74,195, 97,181, 90, 71, 16, 66,198,136, +163, 8, 77, 38,211, 8, 66,200, 43,148,210, 66,167,243,142,253,210, 70, 29,128,145, 82, 26,227,225,188,177, 20, 34,203, 97,217, + 2, 96, 90,189,122,117, 33,128,147,248,123,158, 44,139,125, 51,192,169,187,208,203,119,217, 65, 8,169,252,222,123,239,205,144, + 72, 36, 29,180, 90,109,172, 70,163,185,109,181, 90,255,208,233,116,239, 80, 74,179, 88, 86,252,231, 96, 50,153,146,171, 85,171, +198,187,107, 64,149, 84,145,151,212,176,178,217,108, 73, 85,170, 84,241,218, 56,115,195,153, 92, 66, 58,186,153,152,152,200,249, +202, 37,194,108, 54,167,151, 20,206,196,196, 68,148,150,211, 91,220, 19, 18, 18,220,198,221,139, 32, 76, 46,161,252,184, 39,206, +146,222,103, 73,208,235,245, 57,225,225,225,133, 6,131, 65,106, 52, 26,165, 86,171,181,152,249, 81,165, 82,101,176,156,195,192, +112,159, 66,235,223, 12,187,176,234, 81,134,124, 70, 0,207,148, 1,143,193,101,191,176,164,253, 82,226, 65, 88,132, 4, 0,186, + 50,122,135,153, 0,158,103, 89,238,209, 67,102,102,230, 19,101,205,153,149,149, 85,230, 13,181,140,140,140,102, 15, 32,238,141, +254,171,156, 37, 33, 57, 57,249, 9,150, 51, 24, 24,202, 6, 28,123, 5, 12, 12, 12, 12, 12, 12, 12, 12, 15, 6, 4, 64, 71,119, + 39, 74, 51,154,128, 16,210,177,180, 15,246,198,207, 56, 25, 39,227,100,156,140,147,113, 50,206,199,143,211, 27,247, 99, 55,154, +145, 82,250,192, 54, 0, 29, 25, 39,227,100,156,140,147,113, 50, 78,198,201, 56,255,171, 27,235, 58,100, 96, 96, 96, 96, 96, 96, + 96,120, 64, 96, 66,139,129,129,129,129,129,129,129,129, 9, 45, 6, 6,134,127, 35, 8, 33, 85,203,151, 47,127,190, 90,181,106, +201,132,144,225, 15,248, 89, 67,154, 53,107,150,165, 84, 42,183, 18, 66,170,178,183,207,192,192,192,132, 22, 3, 3,195, 99, 45, +178,234,212,169,179,247,194,133, 11,213,183,111,223, 30, 19, 27, 27,251,209,131,124, 94,163, 70,141,102,239,217,179, 39,228,247, +223,127,239, 20, 21, 21,181,251, 94,196, 22, 33,164,106,124,124,252,249,106,213,170, 37, 17, 66,134,148,241,251, 24,222,188,121, +243,108,133, 66,177,133, 9, 65,134,255, 64,254,175, 77, 8,169,195,132, 22, 3, 3, 3,195, 3, 20, 89,251,247,239, 15, 53, 24, + 12,184,112,225, 2, 50, 50, 50, 78, 60,200,103, 94,186,116, 41,103,255,254,253,136,139,139,195, 15, 63,252, 16,158,144,144,176, +167, 52,130, 70, 12,243,249,243,231,171,111,223,190, 61, 54, 34, 34,226,147,178, 12, 95,147, 38, 77, 62,220,179,103, 79,240,214, +173, 91, 59,135,135,135,239,102, 98,139,225, 49,204,247, 10, 66,200, 51, 28,199, 29,174, 93,187,246,233, 90,181,106,157,226, 56, +238, 0, 33,164, 63, 33,132,255, 79,190, 19,113,137,133,205,155, 55,239, 2,128,110,221,186,181, 97, 73,133,129,129,225, 62, 11, +219, 90,181,106,213, 58,120,240,224, 65,181, 94,175,199,154, 53,107,240,254,251,239, 91,178,179,179,247, 0,208,186,185,229, 8, +128,207,124, 89,122,139, 16, 18, 0, 96, 12,128,198,110, 78,107, 66, 66, 66, 90, 77,153, 50, 69,250,228,147, 79,194, 96, 48,160, +111,223,190,134, 75,151, 46,213,167,148, 94,242, 85, 24,234,245,122, 28, 61,122, 20, 61,123,246,220,106,177, 88,186,148,213,123, + 9, 12, 12, 60,251,203, 47,191,212,140,137,137,193,181,107,215, 48,108,216,176,140,180,180,180,214,222,194,198,192,240, 47,200, +243, 21, 0,188,228,231,231, 55,178,109,219,182,193, 61,123,246, 68,104,104, 40,172, 86, 43,110,223,190,141, 77,155, 54, 97,255, +254,253, 41, 38,147,105, 33,128, 47, 41,165,185,238,120, 30, 71, 45, 66, 40,165,216,188,121, 51, 5,208,214, 30,185, 93, 44,201, + 48, 48, 48,220,103,161,187, 95,167,211, 53,211,233,116, 40, 40, 40, 64,185,114,229, 32,149, 74,221, 94,155,158,158,142,125,251, +246,225,229,151, 95, 62,151,154,154,218,186,164,117, 47, 9, 33,193, 13, 26, 52,216,191, 99,199,142,170,254,254,254,142,227,130, + 32,192,108, 54,195, 98,177,192,108, 54,195,104, 52,194,104, 52, 66, 46,151, 67,165, 82, 33, 36, 36,228, 12,165,180,142,175, 34, +235,248,241,227, 24, 58,116,104, 70, 86, 86, 86,153,138, 32, 66, 72,213,136,136,136,221,203,151, 47, 15, 79, 76, 76,196,173, 91, +183,240,220,115,207,101,222,188,121,179, 21, 19, 91, 12,255,226,252, 62,241,233,167,159,254, 48, 50, 50,146,171, 93,187, 54,162, +163,163, 97, 52, 26,161,215,235, 65, 41, 5,207,243,160,148, 34, 47, 47, 15,187,119,239,198,142, 29, 59,140, 57, 57, 57,223, 2, + 88, 64, 41,189,236, 36,178, 30, 75, 45,226, 16, 90,221,186,117, 35, 44,185, 48, 48, 48,148, 81,193,123, 58, 47, 47,175,182,209, +104,132, 86,171,245,233,158,107,215,174, 97,248,240,225,231, 82, 83, 83, 91,184,179,108, 17, 66, 2, 26, 52,104,112,104,247,238, +221, 85, 13, 6, 3,242,243,189,175, 59, 47,151,203,161, 84, 42, 17, 26, 26,122,128, 82,218,220, 83, 75,188,118,237,218, 71, 15, + 28, 56, 16,162,215,235,113,226,196, 9, 12, 25, 50,196,156,157,157,189, 23,238,173,111, 0,144,141,162,117, 84,111,186,225,139, + 7,240, 10,128, 10, 30,238,213,132,135,135,183, 92,177, 98,133,172, 98,197,138,208,233,116,232,223,191,127,246,165, 75,151, 26, + 83, 74,175,179,212,195,240, 47,204,239,151, 46, 92,184, 80,197,102,179, 33, 51, 51, 19, 70,163, 17, 58,157,206, 33,180, 36, 18, + 9, 40,165,176, 90,173,142,134,209,177, 99,199,176,125,251,118,122,237,218,181,247, 41,165,211, 68,161,245, 56,106, 17,158, 37, + 17, 6, 6,134, 7,128, 1, 77,154, 52, 57,241,219,111,191, 41,229,114, 57, 54,110,220,232,177,235, 48, 50, 50,178,214,178,101, +203, 18, 18, 19, 19,177,104,209,162,154,125,251,246, 29, 3, 96,134, 27,206, 49, 59,118,236,168,106, 48, 24,112,226,196, 9, 12, + 27, 54,236,122, 90, 90,218, 89, 87, 17,147,144,144,208,234,147, 79, 62,145, 54,108,216, 16,249,249,249,232,212,169,147, 14,192, + 75, 37,132,117,236,206,157, 59, 67,244,122, 61, 10, 10, 10,208,182,109, 91,100,101,101,201, 0,180,247,116,131, 94,175, 71,133, + 10, 21,170, 2,184, 75,188,133,134,134,126,125,235,214,173,118, 42,149,170,196, 23,100, 54,155,145,148,148,132,160,160, 32,108, +218,180, 41,164, 82,165, 74,239, 2, 24,193,146, 14,195,191, 17, 38,147, 9, 63,254,248, 35, 26, 52,104,128, 26, 53,106,160,176, +176,208, 33,186, 76, 38,147, 67,100, 1, 0,199,113,104,220,184, 49,170, 84,169, 66, 94,123,237,181, 33, 0,166, 61,206,239, 70, + 20, 90, 83,152,143, 22, 3, 3, 67, 89,129, 82,122,137, 16, 82,191, 99,199,142,123,214,174, 93, 27,214,181,107, 87, 84,170, 84, + 73,218,167, 79,159,112,173, 86,219,193,165, 53, 28, 60,108,216,176,163,183,111,223, 78,176, 31,106,236,129,182,177,191,191,191, +232,219,116, 61, 45, 45,173,145,107, 55,163, 66,161,216,114,242,228, 73,169, 92, 46,199,145, 35, 71, 48,124,248,240,204,235,215, +175,123,235,150, 11, 50,153, 76,144, 72, 36, 0,128,164,164, 36,175,241,187,117,235, 22, 4, 65, 48,186, 59,199,113,156,226,216, +177, 99,136,137,137, 41,145,131,227, 56,200,100, 50,231, 67,185, 44,229, 48,252, 75, 97, 49,153, 76,104,212,168, 17,174, 95,191, +142, 99,199,142, 57, 4, 87,102,102, 38, 82, 82, 82,138, 93,124,248,240, 97, 28, 63,126, 28,173, 91,183,118,229,121, 44,181, 8, +111,143,208, 7,155, 55,111,102, 2,139,129,129,161,172,197, 86,171, 30, 61,122,236, 94,190,124,121,120,185,114,229,224,239,239, + 31,224,230,186, 28, 66,200, 89,169, 84,154,224, 43,119, 90, 90,218, 89,119,190, 92, 81, 81, 81,245, 77, 38, 19,142, 31, 63,142, + 33, 67,134,100,216,125,190,188,249, 62, 77,239,208,161, 67,143,173, 91,183,134, 40,149, 74,156, 61,123,214,151,174,195, 27, 0, + 22,184, 59,145,145,145, 49,164,117,235,214,239, 1, 8,241,112,175,166, 74,149, 42, 45,143, 30, 61, 42, 35,132,224,198,141, 27, +232,223,191,127, 54,128, 79, 89,170, 97,248,151, 98,242,211, 79, 63,253,205,152, 49, 99, 2,155, 54,109,138,164,164, 36,135,224, +170, 95,191, 62,234,214,173,139,191,254,250, 11, 91,182,108,193,241,227,199,161, 80, 40, 80,169, 82, 37, 20,206,249, 4,248, 4, + 22,145,228,113,213, 34,142, 81,135, 12, 12, 12, 12, 15,164,144, 33,164,170, 76, 38,155, 31, 30, 30, 94, 47, 57, 57,249,117, 74, +233, 15, 46,231,131,251,245,235,119,118,213,170, 85,209, 55,110,220, 64,197,138, 21, 55, 82, 74,123,185,225,217, 64, 41,237,121, +237,218, 53,180,104,209,194,173, 69,139, 16, 50, 60, 42, 42,106,106, 65, 65, 65,158, 78,167,235,239,171,131, 57, 33,164,106,229, +202,149,247,108,220,184, 49, 76,173, 86,227,252,249,243, 15,204, 25,190, 90,181,106,123, 15, 31, 62, 28, 42,149, 74,113,228,200, + 17, 12, 27, 54,140, 57,195, 51, 60, 14,249,220, 31,192,248,196,196,196, 55, 71,141, 26,165,168, 89,179, 38,146,146,146,144,145, +145,129,156,156, 28, 28, 60,120, 16, 0, 16, 27, 27,139,216,216, 88, 92,188,120, 17,251,246,237,203, 47, 44, 44, 28, 65, 41,253, +233,177,126, 55, 76,104, 49, 48, 48, 60,228, 2, 57, 30, 78,206,226,253,250,245,107,180, 98,197,138,232,172,172, 44, 28, 58,116, + 8,125,251,246,125,135, 82, 58,195,205,125,111,167,166,166,126, 8, 0,103,206,156,113,245,209,242,232,156, 94, 26, 17, 84,161, + 66,133, 61,107,214,172, 9, 11, 13, 13,197,133, 11, 23,208,191,127,255,179, 90,173,182,118, 89,197, 93,173, 86,111, 77, 77, 77, +237, 36,147,201,112,224,192, 1, 12, 25, 50,132, 77,239,192,240,184,229,239, 8, 0,239,214,172, 89,243,165,145, 35, 71,242,241, +241,241, 72, 78, 78,198,159,127,254,137, 74,149, 42,225,246,237,219,216,177, 99,135, 41, 35, 35, 99, 62,128, 89,148,210,188,199, +254,165, 60,200, 21,171,193, 86, 54,103,156,140,147,113,222,125,221,150,115,231,206, 81, 17, 54,155,141, 38, 39, 39,211,173, 91, +183,210,168,168,168,179, 0, 2,220,113, 2, 8,168, 81,163,198,133,139, 23, 47,210, 91,183,110, 81,179,217,236,224,184,112,225, + 2, 5,176,235,126,195, 9,160,106,108,108,108,250,206,157, 59,233,197,139, 23,105, 84, 84,212,237,178,140,123,133, 10, 21,210, + 51, 50, 50,232,159,127,254, 73,195,195,195,211, 1, 84,101,105,137,113, 62,142,156,246,134,212,138,134, 13, 27,218, 22, 46, 92, + 72, 95,122,233, 37, 26, 31, 31,111, 3,240, 53,128,216, 7,169, 61, 30,181,141,141, 58,100, 96, 96,120,216, 80, 28, 60,120, 16, + 10,133,194,113,224,212,169, 83,206,243,104,229,123,104, 20,230, 19, 66, 90,116,237,218,117,207,194,133, 11,107, 88, 44, 14,215, + 14,236,220,185, 19, 0,140,101,208,240,188, 68, 8,105,221,165, 75,151, 5,161,161,161,245, 82, 83, 83, 39,151,101,196,111,220, +184,241,122,157, 58,117,102, 20, 20, 20,228,151,166,107,147,129,225, 95,104,196,185, 1, 96, 40, 33,228,163, 99,199,142,189, 3, +128, 2,152, 78, 41, 61,255, 95,123, 23, 76,104, 49, 48, 48, 60,108, 12,127,254,249,231, 93,157,197,125,154, 25,222,238, 56,223, +188, 91,183,110,174, 51,195,123,116, 78,191, 23,177, 5,160,243, 3,170,124,126, 0,240, 3, 75, 2, 12,255, 33,193,117, 22,192, +192,255,242, 59, 96, 66,139,129,129,225, 97, 23,188, 55, 1, 60,119, 31,247,231,195,253, 60, 91, 12, 12, 12, 12,143, 28,216,162, +210, 12, 12, 12, 12, 12, 12, 12, 12, 76,104, 49, 48, 48, 48, 48, 48, 48, 48,252,187, 64, 0,116,116,119,130, 82,186,221,103, 18, + 66, 58,150,246,193,222,248, 25, 39,227,100,156,140,147,113, 50, 78,198,249,248,113,122,227, 46,141,254,248, 87,192,199, 97,156, +132, 13,125,101,156,140,147,113, 50, 78,198,233, 11,167,189, 17, 79, 80,212,107,194,137,251,143,248,116, 4,228, 81,141,251,127, +133,243, 63, 57,189, 3, 33,196,241,178, 8, 33, 2, 0,129,150,193, 12,167,132, 16,241, 67,148, 9, 31,195, 3, 48,117, 22,125, + 35,242,183, 30,103,223,137,129,129,161, 84,101,135,196,169,178,181, 1,176, 17, 66,240,168,149, 37,101, 89,207, 61,136,184,255, +151, 57, 31, 23,240, 37,189, 48,137, 68,178, 53, 44, 44,172, 93,102,102,166, 96, 63, 14,185, 92, 14,142,227, 32,149, 74,245, 5, + 5, 5, 1,247,240, 49,190,142,140,140, 28,158,149,149, 37,112, 28, 7,165, 82, 9, 66,136,131, 51, 55, 55, 55,224,159,126, 41, + 21, 42, 84,200,209,235,245,126,174,199,149, 74,165,225,230,205,155,254,255,133,130, 82, 38,147, 61, 29, 18, 18, 18,148,145,145, + 65,197,197,111, 37, 18,137,184, 16,174, 53, 55, 55,247, 59, 95,249, 66, 66, 66, 14,135,132,132, 4,137,247, 19, 66,144,149,149, +149,155,150,150,214, 4, 0, 84, 42,213, 62,141, 70, 19,202,243, 60, 36, 18, 9, 36, 18, 9,116, 58, 93, 86,102,102,102, 11, 86, +109,253, 59,177,118,237, 90, 73,151,216,231, 42,241, 84, 95,151,227,104,160, 32,144, 60, 43, 81,157,218,146,252,245, 85, 95,238, +239,215,175,159,141,189,197,135, 7,133, 66, 49, 63, 50, 50,114,100, 97, 97,161,142, 16, 66, 9, 33, 40,170, 6,112,215,175,205, +102, 75,202,204,204,108,228,165,178,149,202,229,242,185, 81, 81, 81,195,116, 58,157,206,206, 71, 9, 33,136,142,142, 46,198, 7, + 0, 22,139, 37, 41, 35, 35,163,145, 47, 97,141,136,136, 88,170, 82,169,254,167,211,233,180,118, 97,228,220, 67,227, 92,153,255, +149,145,145,209,202,155, 48,144,203,229, 11, 34, 35, 35,159,181,199, 29,132, 16, 26, 30, 30,126,223,113,143,140,140, 28,166,213, +106,139,197, 61, 34, 34,194, 45,167,167,184,187,227,116, 14, 39, 33, 4,225,225,225,247, 29,206, 71,145,243,177, 23, 90, 0, 56, + 66,200,134, 22, 45, 90,180,221,181,107, 23,119,225,194, 5,174,122,245,234,176,217,108, 16,132,162,116, 29, 23, 23,167,190,135, + 10,124, 89,171, 86,173, 6,237,222,189,155,219,176, 97, 3,215,184,113, 99, 16, 66, 96,179,217, 96,179,217, 80,187,118,109,213, +125, 10, 4, 63,158,231, 95,147,203,229,109,172, 86,107, 13, 0,144, 74,165,231,141, 70,227, 46,171,213, 58,143, 82, 90,232, 11, +143,217,108, 86,167,167,167,223,245,110, 18, 19, 19,229,247, 26,182,128,128,128,253, 28,199, 37, 58, 94,176, 93,112,184,203,204, +226, 47,165,244, 90, 70, 70, 70,115, 79,156,193,193,193, 14, 78, 79, 28,174,199, 4, 65,184,150,158,158,222,220,139,200,234,219, +170, 85,171,192,237,219,183,147,219,183,111, 19,149, 74, 5, 65, 16, 96,179,217, 96,177, 88, 80,179,102,205, 82, 77, 11, 18, 20, + 20, 20, 48,113,226,196, 74, 79, 61,245, 20,214,173, 91,135,103,158,121, 6, 45, 91,182,188, 44,158,215,104, 52,161,231,206,157, +171, 18, 18, 18, 2,157, 78,135,188,188, 60,116,234,212,233, 95,159,185,154, 54, 40, 55,157,112,196, 49, 87, 20,181,218,178, 15, +158, 76,126,247,126,121,131,130,130,142,203,229,242, 72,241,187,114, 28,231,246, 91, 59, 31, 51, 24, 12,105,153,153,153, 13,188, +228,159, 10, 0,122, 72, 36,146,202, 60,207, 87, 3, 80,193,106,181, 70, 2,128, 76, 38, 75,147, 72, 36, 55, 44, 22,203, 69,147, +201,116, 5,192, 47,246, 9, 9,221,162, 75,236,115,149,136, 85,215,175,192, 40,116, 85, 87,156, 85, 85,247,215,196, 75,106,133, +238,215, 46,177,207,173,245, 85,108,253,131, 13,141,170, 0, 86,163,104, 65,233,151,236,243, 0,221, 15, 95, 44,128,158, 0,170, +202,100,178, 4,179,217,156, 9,224, 24,128,237,148,210,203,132,144,248,240,240,240, 31, 4, 65, 48,102,101,101, 61,231,110, 25, +161,102,141,202, 31,229, 56, 46, 14,118, 25, 33, 80, 91,210,129,163,183,203,164,130,146, 72, 36, 11,250,244,233,243,236,218,181, +107,213,199,142, 29, 83,215,168, 81,195, 81, 62, 9,130, 0, 87, 67, 68, 66, 66,137,107,127, 19, 0, 60,199,113,243,251,245,235, + 55,120,197,138, 21,234,155, 55,111,170, 99, 98, 98, 28,156,206, 34, 78, 68, 76, 76,140, 79, 97, 13, 13, 13,253,250,169,167,158, + 26,186,124,249,114,233,198,141, 27, 85, 97, 97, 97, 8, 13, 13,133, 76, 38,187,235,218, 22, 45, 90, 8, 94,232, 56,142,227, 22, +244,234,213,107,232,170, 85,171,212,135, 14, 29, 82,215,174, 93, 27, 18,137,228,190,227,222,187,119,239,193, 63,254,248,163,250, +244,233,211,234,202,149, 43,131,227, 56,112, 28,119, 23, 31,199,113, 40, 87,174,156, 79,156, 61,123,246, 28,188,122,245,106,245, +241,227,199,213,213,170, 85,115,188, 79,167,110,187, 82,135,243, 17,231,124,124,133,150,221,140,186,162, 69,139, 22, 93,118,237, +218, 37, 1,128,227,199,143, 35, 59, 59, 27,177,177,177,240,243,243,131, 66,161,128,193, 96,160,165, 44,108,190,182,139, 44, 41, + 0,172,255, 95,111, 92,147, 2, 47,167,155, 32,147,201,240,215, 95,127, 65, 34,145,208,251, 40,204, 90, 7, 4, 4, 44,255,233, +167,159,130, 27, 52,104,192,101,102,102, 34, 33, 33, 1,217,217,217, 77,118,239,222,221,240,185,231,158,123,142, 16,242, 12,165, +116,183,175,156,191,254,250, 43, 52, 26, 13,212,106, 53, 52, 26, 13, 76, 38, 19,185,231, 23,205,243,113, 55,110,220,136,240,243, +243,131, 32, 8,142,205,165,127,219, 1, 65, 16, 80,165, 74, 21,179,151, 2, 50,238,230,205,155, 17, 42,149, 10,148,210, 98,124, + 54,155, 13, 10,133,194,185,229, 0,155,205,134,196,196, 68,179, 55, 75,150, 40,178, 0, 96,229,202,149,136,138,138, 66, 68, 68, + 4, 52, 26, 13, 84, 42, 85,177,138,221,199,130, 28, 93,186,116,193, 7, 31,124,128, 89,179,102, 97,252,248,241,197, 10, 90,169, + 84,138,144,144, 16,252,254,251,239, 8, 8, 8, 64,124,124, 60,164, 82,233,191,223, 50,200,145,144, 3, 71,111, 57, 44,180, 79, +182,175,206, 55,109, 24,191,216,254,133,193,113,128, 32, 20, 85,157,132,128, 90, 45, 66,206,145, 83,201,147,125,120,159, 49, 55, +111,222,140,112,158, 89,189, 36,216,108, 54,196,198,198, 74,188,228,159,174,181,106,213, 90, 63,122,244,104, 89,229,202,149,137, + 76, 38, 3,207,243,224,121, 94, 76,143,241,148,210,120, 65, 16,218,166,165,165,209, 69,139, 22,125, 68, 8,233, 67, 41,253,213, +109,122,167,250,186, 5, 70,161,235,158, 19,104,210,175,227, 91,248,125,205,196, 38,173,234, 11,240, 87,235,175, 2,120,100,133, + 22, 33,164,106,173, 90,181, 78, 28, 58,116, 72,105, 54,155,209,180,105,211,131,132,144,134,247, 50,131, 59, 33, 36, 24,192, 39, +147, 38, 77, 26, 58,122,244,104, 73, 80, 80, 16,228,114, 57, 10, 10, 10,112,245,234,213, 97,223,125,247, 29, 37,132,124, 6,192, +255,198,141, 27,205, 14, 31, 62,140,118,237,218,189, 2,224,181,187, 21,129, 36,110,223,225,235, 17,226,126,207, 46,117,100,205, + 27,199,167, 21, 53,200, 92,175,166, 16,108, 66,210,161, 19, 73,141,124, 8,227, 71, 79, 63,253,244,144,181,107,215,250, 1,192, +146, 37, 75,240,244,211, 79, 35, 36, 36, 4,106,181, 26, 50,153, 12, 82,169,180,216,175, 23, 11,145, 4,192, 71, 3, 7, 14,236, +183, 98,197, 10,127, 0, 88,177, 98, 5,122,247,238,141,208,208, 80,248,251,251, 67, 46,151, 67, 34,145,148,250,219,132,134,134, +126,221,178, 73,147, 17,203,151, 47, 7, 0,188,243,234,171,120,234,137, 39,224,167, 86, 65,173,146, 67,124, 23,114,137, 20, 79, +190, 60,206, 91,188, 57, 0,115,158,126,250,233, 1,171, 86,173,242, 7,128, 99,199,142, 33, 61, 61, 29,145,145,145, 80,169, 84, +144,203,229,142, 56, 19, 66,160, 82,169,124,138,251,211, 79, 63,221,239,199, 31,127,244, 7,128,101,203,150,161, 75,151, 46,142, +184, 43, 20, 10,200,100,178, 98,155,171,232,116,199,217,167, 79,159,126,171, 87,175,246, 7,128,239,190,251, 14, 29, 59,118, 68, +112,112,176,227,125,138, 92,165,249, 70,143, 50,231, 99, 45,180, 68,223,169,200,200,200, 1,123,246,236,225,156, 68, 2, 20, 10, + 5, 20, 10, 5,228,114,185,163,251,176, 20, 5, 14,137,140,140, 28,190,123,247,110,199, 77, 38,122,151,233,186,212, 21,184, 19, +127,199,118,237,218,253,184,105,211, 38,165, 76, 38,131, 94,175,199,217,179,103, 17, 24, 24, 8,185, 92,142, 94,189,122, 73, 90, +180,104, 17,218,182,109,219,117,132,144,193,190,140,104,160,148,194,207,207,175,152,208,186,223, 46,102,149, 74,133,141, 27, 55, + 66, 34,145,184, 45,192,156,255, 71, 68, 68,248, 18,111, 40, 20, 10,236,223,191, 31, 18,137, 4, 82,169, 20, 60,207, 67, 42,149, + 98,243,230,205,120,227,141, 55,144,153,153, 9, 66, 8,164, 82, 41,252,253,189,246,122,146,144,144,144, 32, 81,100,137, 34, 72, +165, 82, 65, 42,149, 18,158,231,137,216,181, 71, 8, 33,190,246,185,115, 28,135,239,191,255, 30,179,103,207,198,132, 9, 19,176, +116,233, 82,212,173, 91,215, 89,132, 34, 63, 63, 31,193,193,193, 8, 14, 14,134, 82,169,188,231,180,240, 40,193,245,237,204,157, +183, 80, 13,129,162,200, 9, 68, 0, 4,128,130, 66,160, 2,210,146,175,226,253, 15, 62,246,185,246, 81, 40, 20,216,183,111,159, + 67, 12,241, 60, 15, 66, 8,156, 5,146,184, 69, 69, 69,121,229,147,201,100, 83,126,254,249,103,249,247,223,127,143, 85,171, 86, + 57,210,150, 70,163, 65, 80, 80, 16, 66, 67, 67, 29, 91, 92, 92, 28,249,230,155,111,100,117,235,214,157, 2,224, 87,247,223,156, + 6,170, 43,206,170,218,175,227, 91, 0,128,126,111, 81,228, 92,254,176, 30,151, 59, 57,240, 81, 22, 89,117,234,212,217,187,127, +255,126,165, 78,167,131, 32, 8,248,245,215, 95,213, 29, 59,118,220, 67, 8,105, 85, 90,177, 85,161, 66,133,141,251,247,239,111, + 17, 30, 30,142,188,188, 60,228,231,231,195, 98,177, 64, 34,145, 32, 62, 62, 30, 31,125,244, 17,233,213,171,215,216, 97,195,134, + 25, 84, 42,149,104,217,168,224,169, 60,114,198,162, 79, 23, 7, 81, 90,148,126,168, 64,139,253,102,167,223,192,171,175,191,239, + 83, 24,203,149, 43,247,210,186,117,235,252,156, 45, 75,206, 34,192,185,140, 18, 55, 79,194,192,110,213,224,202,151, 47, 63,226, +135, 31,126,112,112,134,133,133, 57,202, 37,158,231,193,113, 28,246,236,217,131,153, 83, 38, 33, 56, 60, 6, 11, 63, 93,226, 53, +156, 17, 17, 17, 75,187,118,237,250,191,101,203,150, 57,142,213,169, 88, 17,221, 90, 60,129,136,176, 0,132, 5, 23,149,109, 84, + 32, 56,117,241,186,215,250, 8, 0, 87,174, 92,185,231,214,172, 89,227,231,220, 32, 20,227, 10, 0, 58,157,206, 97,197, 55,153, + 76,104,212,168,145, 79,113,119,230, 20,173,109,162,104,115, 45,235,197,134, 76, 73,156,229,202,149, 27, 33, 10, 97, 0, 8, 9, + 9, 41,198, 33,149, 74,177,230,247,229,119,213, 13,247,203, 89,218,239,238,202,121,227,198, 13,204,152, 49,195, 81, 38,137, 86, + 61, 66, 8, 98, 99, 99,177,112,225,194,146, 56,221,161, 49,128,112,167,125, 19, 0,185,211,111, 6,138, 86,152,112,189, 78, 60, + 46, 5, 80,207,126,206, 6,160, 0, 64,144, 27, 62, 79, 60,153, 40, 90, 70, 40,220,229,122,215,231,184, 23, 90,155, 55,111,166, + 0,176,113,227,198,118, 61,123,246,220,151,153,153, 41, 92,184,112,129, 59,118,236, 24,164, 82, 41, 34, 34, 34,208,184,113, 99, +177, 91, 13, 82,169, 20, 26,141,134, 4, 5, 5,165,137, 21,175,248, 18,157,251,218,157, 4, 13,151,157,157, 45,108,219,182,141, + 91,209,167, 51, 76, 20,168,255,222, 76,116,233,222, 29, 91, 98,229,144, 0,104,114, 33, 19,106,181,154,151, 74,165, 22,241, 99, +136,156,206,190, 91,174, 34,137, 16,226,175,209,104,190,249,229,151, 95,148, 28,199,161,160,160, 0,130, 32,160, 69,139, 22,224, + 56, 14,103,206,156,193, 59,239,188,131,245,235,215,227,231,159,127, 86, 53,104,208,224, 27, 66, 72, 13, 74,105,129, 83, 33,182, +221, 93, 34,245,247,247,135, 90,173,118, 8, 45, 49,206,206, 38,112,241,122, 74,105,114,102,102,102,195,146, 56,109, 54, 27,122, +247,238, 13, 66, 8, 36, 18, 73,177,194,199,249, 87, 38,147,225,204,153, 51,119, 37, 66,119, 2, 81, 16, 4,180,108,217, 18, 0, +160, 86,171,225,231,231, 39,174,251, 6, 0,168, 95,191, 62, 76, 38, 19,194,194,194,112,254,252,121,119, 5,120, 49,206,140,140, + 12,154,146,146, 66, 86,172, 88, 1,169, 84,138,208,208, 80,168,213,106,178,124,249,242, 73, 50,153, 44,206, 96, 48, 8, 38,147, + 9,114,185,124,161,104,221,226,121, 94,155,151,151, 23,234,137, 83, 34,145, 96,244,232,209,120,243,205, 55,177,116,233, 82,188, +248,226,139,119, 89,188, 12, 6, 3,194,194,194, 28, 98,203,151,184,223,191, 16,122,192,156, 2,197,217,227, 91,112,238,244,118, + 8, 54, 1, 54,129,130, 82, 27, 4, 43,112,108,219,193, 42,119,174,165,196, 82, 80,192,222,193,161,200, 43,180,182, 13, 83, 84, + 3,176, 97,103,166,113,190,183,244,201,243, 60, 44, 22, 11,126,249,229, 23, 92,189,122, 21, 91,183,110,133, 94,175,119,188,199, +102,205,154, 97,196,136, 17,110,133,150, 43, 39,165,116,217,237,219,183,235,183,108,217,146,228,230,230, 34, 55, 55, 23,122,189, + 30, 54,155, 13, 86,171, 21, 60,207, 67,169, 84, 66,165, 82, 33, 50, 50, 18, 6,131,129, 26,141,198,101,158, 56, 5,129,228,233, +254,154,120,233,247, 53, 19,155,244,123,139, 98,237,108,130, 74,229, 21,186, 63,142,250,143,216,176,119,124, 39, 0, 84,176,107, + 7, 14,160, 22,155,144,249,230,164, 79,198, 62,244,111,116,183,200, 10,213,235,245, 40, 40, 40, 42, 30,228,114, 57,214,174, 93, + 27,214,163, 71,143,221,132,144,214,158,196,150, 59, 78,127,127,255,120,137, 68,130, 51,103,206,224,243,207, 63,199, 31,127,252, +129,180,180,180,156,152,152,152,192,182,109,219,114,175,190,250, 42,234,215,175,143,111,191,253, 86,233,141,147, 82,138, 27,151, +247,224,198,149,189, 16, 4,234,100, 21,119,255,159,250, 24,119,173, 86,107, 56,113,226,132,223, 87, 95,125,133,136,136, 8, 36, + 36, 36, 64,173, 86, 67,169, 84, 22,171,100,157, 43, 94,111,121, 83,175,215, 27,110,220,184,225,247,227,143, 63, 34, 52, 52, 20, + 21, 42, 84,128, 90,173,134, 92, 46,119, 52, 8, 86,172, 88,129,149, 31, 12,193,141,139,167,209,187, 91, 39,175,225, 84,171,213, +255, 91,182,108, 89, 49, 19, 72,100,112, 48,120, 41, 7,137,148, 32,184, 67, 31, 0, 64,206,159, 63,121,156, 29,210,133,147, 20, + 20, 20, 24, 14, 29, 58,228,119,244,232, 81, 8,130,128, 10, 21, 42, 64,167,211, 33, 32, 32,192, 17,255,109,219,182,161, 87,175, + 94,248,254,251,239,209,172, 89, 51,175,113, 47, 44, 44, 52,156, 62,125,218,239,135, 31,126, 64, 72, 72, 8,202,149, 43,231,136, +187,184, 73,165, 82, 72, 36, 18, 36, 38, 38, 34, 47, 47, 15,126,126,126, 94,191,209,177, 99,199,252,126,248,225, 7, 4, 7, 7, + 35, 46, 46,206, 97,113, 19,197,209,236,197, 31, 20,227, 80,146,232,251,230, 44,237,119,119,229,236,221,187, 55, 42, 85,170,132, +128,128, 0,104, 52, 26, 7,119, 73,156,162, 22, 1,208,182, 91,183,110,187, 92, 62, 97, 56, 33,100,147,211,243,187, 19, 66, 54, + 57,255,122,186,206,254,183,245,164, 73,147, 26,205,154, 53,107, 70,179,102,205,126,220,191,127,255, 74, 79,124,158,120, 38, 77, +154, 84,107,214,172, 89, 51,156,175,119,243, 28,207, 22,173,110,221,186, 17,123, 36,121, 0,168, 94,189, 58,178,179,179,161, 80, + 40,208,184,113, 99,100,102,102,194,207,207, 15, 50,153, 12,148, 82,140, 29, 59, 86, 50,126,252,248, 8,142,227, 96,181, 90, 29, + 5,191,135,190,118,129,227, 56, 52,111,222, 28,103,237, 61, 66, 93,186,119, 71, 92, 92, 28, 68, 39, 15,165, 82,137,177, 99,199, +146, 55,222,120,131, 23,173, 25,148, 82,232,245,122, 68, 71, 71,171, 74,232,146,123,117,221,186,117,129,162, 73, 94,236, 58,147, + 72, 36,184,112,225, 2,230,204,153,131, 97,195,134,225,214,173, 91,136,137,137,193,155,111,190,233, 55,107,214,172, 87, 1, 76, +245, 86, 32,251,249,249, 57, 68,150, 90,173,198,171,175,190,202,183,104,209, 34,194,207,207, 15,254,254,254, 16,187, 1,109, 54, + 27, 42, 86,172,232, 85,154, 11,130,128, 45, 91,182,128,231,121,175, 22, 45,123, 2,244,137,243,208,161, 67, 14,145,230,220, 74, + 34,132,224,236,217,179, 14, 81,231, 3, 39,229, 56, 14, 26,141, 6, 81, 81, 81, 80,169, 84, 80,171,213,228,199, 31,127,124, 55, + 33, 33, 33,250,141, 55,222,224,242,243,243,185,230,205,155,227,233,167,159,230, 5, 65,128,217,108, 70,173, 90,181,188, 90,222, +118,237,218,133,207, 63,255, 28, 47,190,248,162, 91,139,150,232, 44, 25, 16,240,143,143,133, 40, 51, 8, 0,204, 86, 11,116,133, +122, 71,215,174,205,102,195,233,157, 39,171, 92, 59,121,185,214,166, 31,191,151, 2,128, 97,231, 79,206,183, 69, 63,189,120,117, +213,182, 33,178, 67, 59,179,205,135,188, 89, 10,199,141, 27,135,201,147, 39, 99,224,192,129,216,182,109, 27,222,121,231, 29, 60, +247,220,115,197, 44, 90,190,192, 98,177,124,241,204, 51,207,188,184,118,237,218,106,111,189,245, 22, 39, 90,180,212,106,181,232, +227, 5,163,209, 8,189, 94,143,139, 23, 47, 10,207, 63,255,252, 37,147,201,244,133, 39, 62, 43, 81,157, 82, 43,116,191, 86,140, +227, 42,105,175,127,236,223,242,137, 10,122,162,106,152,215,167,106, 71,218,117,120,133, 96, 80, 10, 42, 0, 2, 5,140, 70, 45, +198,142,125, 69,242, 79,125, 39,103,145,101, 48, 24,112,226,196, 9,180,107,215, 14,183,111,223,198,249,243,231, 81,165, 74, 21, + 44, 95,190, 60,124,240,224,193, 37,138, 45, 87,156, 62,125,122, 82,189,122,245, 22, 20, 22, 22,102, 23, 22, 22, 46, 0,176,146, + 82,154, 75, 8,169,113,245,234,213, 69, 91,182,108,105,245,254,251,239, 75, 92,124,116, 36,158,204,163, 22,139, 21,122,189,177, + 68,129, 37,238, 83, 42,248, 26,119, 90,173, 90, 53,244,232,209, 3, 82,169,212,209, 88,115,238, 54,115, 21, 92, 37,149, 31, 0, + 4, 66, 8, 98, 98, 98,208,181,107, 87,200,100,178, 98,156, 98,197,218,181,107, 87,140,155,250, 30,190, 24,215, 30,159, 63, 83, + 5, 29,167,167,149, 24, 78,157, 78, 87,184, 99,199, 14,213,155, 47,190,136,122,149, 43, 35, 44, 32, 0,229, 35,195,161, 82,200, + 33,115, 14, 19,241,110,100,167,148, 82, 66,136, 32,145, 72, 80,187,118,109,164,165,165,225,250,245,235,184,126,253, 58, 56,142, + 67,203,150, 45, 29, 86,152, 43, 87,174, 96,234,212,169, 48, 26,141, 62,199,189,114,229,202,104,223,190, 61,228,114, 57,212,106, +117,177, 46, 67,241,157, 22, 20, 20,160, 82,165, 74,216,176, 97, 3,170, 86,173,234,149,179,122,245,234,104,211,166, 77,177,247, +169, 82,169, 28,245, 6, 0,220, 62, 84,232,120, 70,108,108,108,169, 56,183, 30,190,133,175,182,237,128,209, 36, 32, 95,103, 41, +118, 67,116, 88, 0,246,254,240,150, 79,113, 23, 57,191,252,242, 75,228,230,230, 58,202, 32,209,104, 34, 26, 41,202,149, 43,135, + 37, 75,220, 91, 50,157,180, 8,241,240,253,186,251,216,160, 18,175, 19, 19,151, 98,214,172, 89, 51, 92,239,247,198,231,124,222, +229,126,147,139, 56, 75,243,169,235, 80,172, 31,196,204, 16, 27, 27, 11,209, 15, 68,204, 40,142,130,212,106,197,250,245,235, 17, + 17, 17,225,216, 2, 3, 3, 61, 38,108,209,143,104, 92, 70,145,139,208,239, 49, 50,220, 0,208, 45,131, 58,252, 72,108, 54, 27, +214,173, 91, 7,103, 33,227,239,239, 95, 98, 55,146, 92, 46,111,219,184,113, 99,206,104, 52,222, 37,178,102,205,154,133,193,131, + 7,163,106,213,170, 16, 4, 1,133,133,133,104,215,174,157,116,225,194,133,109, 75, 35,180,212,234, 34,191,127,147,201,132,157, + 59,119, 34, 56, 56, 24,161,161,161, 8, 9, 9,129,191,191,191, 56,114,146,122, 19, 27,148, 82,244,238,221,219,145,248,156,173, + 88,174,162,107,255,254,253, 62,117,201, 81, 74,241,196, 19, 79, 64,163,209,192,207,207, 15,126,126,126,216,178,101,139,227,154, + 38, 77,154, 64, 16, 4, 68, 68, 68,224,192,129, 3, 37,118,127, 82, 74,169, 76, 38,115, 92, 47,149, 74,201,242,229,203, 39, 37, + 38, 38, 70,191,254,250,235,156, 68, 34,193,241,227,199,113,238,220, 57, 84,168, 80,193,103,159,173,220,220,220, 59,147, 38, 77, +178, 77,154, 52, 9, 0, 80,171, 86, 45,228,230,230,166,139,231,243,243,243,179, 58,119,238, 92,204,111, 35, 51, 51, 51,235, 95, + 47,180, 4, 1, 86,179, 21, 58,131, 1,133, 5, 58,135,117, 40, 61, 37, 45,232,173, 55, 94,147,206, 25,251, 44, 0,224,141,249, +159,162, 96,233,223, 5,217, 79,111, 12,138,232,243,201,170,137, 0,122,121,169,124, 96, 52, 26, 17, 31, 31,143,195,135, 15,163, +160,160, 0, 29, 59,118, 44,102, 49, 21,223,169, 55, 19, 61,165,212, 68, 8,105,209,189,123,247, 35,243,230,205,171, 88,163, 70, + 13,162,213,106,161,211,233,224,252,123,250,244,105,186,114,229,202,107, 58,157,174, 57,165,212,228,137,111, 75,242,215, 87,187, +196, 62,183,246,143,227,146,238, 17,149, 46, 5, 36,231, 84,180,102, 37, 43,180,249,250,139, 6, 27, 61, 7,106, 3,108, 16, 64, +173, 2,108,246,110,175,127, 10, 42,149,106,209,222,189,123, 67, 13, 6, 3,142, 29, 59,134,161, 67,135,154, 50, 51, 51,229, 0, +240,191,255,253,207,180, 98,197, 10,121,165, 74,149,176,124,249,242,240,167,159,126,122, 13,128,218, 62, 22,244,223, 3,248,222, +245,120,104,104,232,194, 91,183,110,181,117,246,249, 17, 27,171, 0,220, 54, 42,169, 0, 88, 44, 22,232,245, 70,228,229, 21,192, +100,182,216,203, 76, 1, 54,155,213,254, 43,192,106, 47, 71,229, 50,222,191, 97,157,232, 66, 74, 41, 56, 66,114,143,158,190, 83, +206, 83,185,228,169,139,203, 23,107,150, 27,216,196, 81,102,161,161,161,144, 74,165,248,254,251,239,113,106,223, 22,200, 37, 20, + 54,171, 5, 86,139, 25, 54,139, 9, 82,137, 4,127, 28,191,142, 78,213,189, 15,228, 38,132,208,176,176, 48,116,107,214, 12,221, +155, 53, 43, 26,222,198,243,240, 83, 40,160,150, 41,139, 44, 89, 0,168,141, 3,124, 75, 74,130, 24,206,200,200, 72, 28, 61,122, + 20,227,198,141,195,236,217,179,161, 82,169, 28,163,159, 47, 92,184,128,213,171, 87,163, 83,167, 78,165,142,187,104,193,155, 56, +113, 34, 82, 82, 82, 48,127,254,124, 52,108,216, 16, 82,169, 20,185,185,185,104,222,188, 57,210,210,210,124,226,116,238,222,147, +203,229,197,172, 79,162, 0, 44,237, 55,114,230,124,182,119, 52, 54,238, 91, 9, 2,130,131, 63,188, 86,172, 46, 90,178,106, 79, +169, 57, 39, 79,158, 92, 44,156,190, 88,179, 74,209, 48,218,228,139,216,114,186,238,152,104,108,157, 56,113,226,219,132,144, 77, + 19, 39, 78,124,123,230,204,153,103,125,225,243,112,126,179,168, 11,157,142, 29,243, 89,104, 81, 74,169, 92, 46,135, 32, 8,197, +196,149,171,227,173,104, 10,116, 54, 53,122, 19, 5,130, 32, 56, 18,133,107,179, 77, 34,145,224,192,129, 3, 56,112,224, 64,177, +227, 95,125,245, 85,137, 21,185,213,106,173,225,239,239, 95,204,154, 37,147,201, 48,113,226, 68, 12, 29, 58,212, 33,178,100, 50, + 25,190,251,238, 59, 52,106,212, 8, 38,147,169,134, 23,127, 21, 93, 84, 84, 20, 39, 22, 68, 26,141,134,140, 27, 55, 78, 98,181, + 90, 29,239, 68,220, 68,223, 53,111,137, 70, 28,197,178,117,235, 86,159, 44, 90,190,250, 40, 81, 74,113,242,228,201, 98,226, 77, + 28, 53, 3, 0, 39, 79,158,116,248,111,249,194, 41,145, 72, 96,179,217,160, 82,169,136, 76, 38, 35, 50,153, 44, 78, 20, 89, 18, +137,196,241,189,157,125,246,188,197, 61, 57, 57,185, 93, 73,231,211,211,211, 31,219,105, 28,204, 22, 11,244, 58, 19, 10, 10,245, +152, 50,243,219,162,131, 83,112, 8,192,161, 22, 47,141,195,232, 46,157,218,187,248, 1,248, 82,208, 56, 42,199,117,235,214, 65, + 42,149, 98,195,134, 13, 8, 8, 8, 64,207,158, 61, 17, 16, 16,128,183,222,122, 11, 3, 7, 14,244,217,162,101, 79, 75,121,132, +144, 22,175,190,250,234,145,143, 63,254,184,124,185,114,229, 96, 50,153, 96, 54,155, 97, 50,153,112,245,234, 85,172, 92,185,242, +182, 78,167,107, 65, 41,205,243,198,183, 37,249,235,171,235,119,191,145,210,113,224,211,250, 11,105,191, 35, 53, 53, 11, 86,107, + 50, 4,155, 21,102,107,209, 8,102,155,213, 10,171,213, 6,153, 76, 18,240,241,135,175,109, 19, 64,193,113,196,212,175, 95,191, +167, 30,214, 55, 10, 10, 10,170,149,145,145,129,203,151, 47, 99,216,176, 97,169, 89, 89, 89,231, 1,116, 0,128,172,172,172,189, + 67,135, 14,173,177,108,217,178,168,132,132, 4,248,249,249, 5,248,240,125,252, 0,140, 6,208,217,238, 7, 34, 34, 27,192,180, +240,240,112,197,177, 99,199,238,178,254,239,222,189, 27, 0, 14,185, 55, 25,216, 45, 90, 6, 3, 50,178,114, 48,242,165,119, 29, +166, 4,128, 22, 19, 23, 20, 20,163, 94,134, 18, 0, 50,211,174,226,217,145,227, 20,222, 26, 4,238, 42,194, 82,248,232, 56, 91, +138, 28,105,212,207,207,175,168,251,109,195, 74,108,254,228, 37,192,102, 6,181,232, 1,179, 14, 48, 23, 66, 48,233, 64,100, 42, +192,162,247, 73,104,249,249,249,193, 79,165, 66, 68, 80, 80,209, 36,144, 18, 9,164, 82, 30,130, 5, 32, 54,226, 16,164,130,205, +167,180, 78,195,194,194, 32, 8, 2, 84, 42, 21,110,220,184,129,209,163, 71,195,108, 54,163,119,239,222, 48,153, 76, 48, 24, 12, +208,235,245, 72, 76, 76,132, 78,167,243, 41,238, 98, 57, 47,246,254,188,246,218,107,104,212,168, 17,166, 78,157,138, 9, 19, 38, + 32, 49, 49, 17,163, 70,141,194,202,149, 43, 81,171, 86,173, 18,121,157,223,167,200, 41,126, 23,215, 46, 62, 0,165,254, 70,174, +156, 69,227, 3,112,215,119,127,229,153, 14,165,230,156, 53,107, 22, 50, 50, 50,238,178,100,137,255, 99, 99, 99,177,120,241,226, +123,237,250, 23,173, 71,145,238, 12, 98,110, 44, 81,141, 81,228, 59,101,156, 57,115,230,217,153, 51,103,118, 39,132,108,154, 57, +115,102,247, 18, 44, 90,221,188, 88,188,186,161,200, 39,203, 39,240, 46,125,163,109,157, 45, 37, 98, 69, 42, 86,232,206,133,188, + 90,173,198,250,245,235, 33,142, 0,113,190,166, 36,161,245,107,184,221,116,108,183,100, 57,239,247,232,209, 3, 9, 9, 9,197, +172, 89, 42,149,170,196,196, 35, 8, 2,110,222,188,137,179,103,207,162,105,211,166,200,203,203,131,148,227,240,198,233,211,168, +249,204, 51, 48,217, 45, 52,114,185, 28, 47,190,248,162, 79, 14,237,215,175, 95, 15,118,222, 15, 11, 11, 75,106,213,170, 85,236, +225,195,135, 29, 14,242,246,110, 53,135,224,240, 69,196, 80, 74,209,183,111,223, 98, 86, 44,103,145,229,188,253,254,251,239, 62, +117, 29, 82, 74,209,170, 85, 43,135, 53,203,223,223, 31, 63,255,252,179,227, 91,181,110,221,186,200,159, 33, 50,210, 39, 78, 49, + 30,118, 7,120, 24, 12, 6,161,160,160,128, 59,118,236, 24,228,114,185,195,130,167, 82,169,160, 84, 42,161, 80, 40,238,105, 4, +209,127, 1,148, 10, 48, 89, 44,208,235,245, 40, 44, 44,154, 89,228,234,153,117,197,133,152, 49,255,158,249, 69,171, 85, 65, 65, + 1,254,248,227, 15,252,244,211, 79,104,216,176,225, 93,206,240,190, 88,180,156,210, 83, 6, 33,164,229,248,241,227, 15, 78,159, + 62, 61, 38, 36, 36, 4,102,179, 25,183,110,221,194, 55,223,124,147,162,211,233, 90, 82, 74, 51,124,127, 9,128,197, 98,133, 65, +103, 68, 94,126, 1, 62,248,240, 59,143, 73, 15, 0,178,211, 47,162, 71,207,254,242,135,249,157, 82, 82, 82, 94,111,217,178,229, +135, 5, 5, 5,185, 58,157,174, 63,128, 57,206,134,195,172,172,172, 86, 61,123,246,156, 23, 18, 18,210, 48, 61, 61,253,109, 31, + 40, 39,222,184,113,227,237,248,248,248, 98, 7,237,214,199,170,233,233,233, 67, 90,183,110,253, 30,128, 16,167,211,254, 0,182, + 2, 88,236, 41, 45,137, 93,135,133,133,122, 4, 4, 69, 35,249,250, 46,175, 1,145, 73, 12,160,130,224,181, 1,232,206,138,229, + 92, 62,149, 34,253, 80,209, 39, 80,172,176,159,234,251, 12,158, 26, 61, 11,106, 41, 48,227,217, 22, 72, 12, 2,160, 10,129,172, +245, 91, 32, 65,246,119, 52,250, 23,159,248, 39,124,254, 57,142, 95, 46,154, 25, 38, 46, 60, 28,227, 7, 14, 4,181, 0,251,207, +157,195,170, 29, 59, 48,176, 93, 59,168,149, 74,159, 27, 44, 98, 35,252,234,213,171,216,191,127, 63,170, 87,175,142, 43, 87,174, + 20,155,134,130, 82,234, 83,252, 41,165, 84, 28,196,164, 80, 40, 32,149, 74,145,154,154,138,238,221,187, 59, 26,250,187,118,237, +194,248,241,227, 49, 98,196, 8,180,109,219,214,173,223,172, 43,103,120,120,184,195,128,224, 58, 80,193,185, 59,183, 52,223,200, + 29,167,136,123,253,238,206,156,211,167, 79,119, 59,160,194, 23, 78,103, 45, 82, 2,142,185, 88,147, 32,250, 75,137,194,200,117, + 31, 64,176,120,108,226,196,137,111,251,122,159,243,190,104, 17, 43, 77, 23,166, 67,104,117,235,214,141,184,171,108, 69, 51,178, + 59,104, 52, 26,140, 25, 51, 6,147, 39, 79, 70, 88, 88,152, 87,223, 26, 81,201,150,132, 95,126,185, 59,179,109,216,176,193, 91, +215,225,133,192,192,192, 70,237,218,181, 67, 94, 94, 30,110,223,190, 13,141, 70,131,154,159,124,130,211,163, 71,163,222,231,159, +131,107,223,222, 49,217,234,233,211,167,161, 82,169, 46,148,214,130,224,239,239,143,224,224, 96, 71,159,187, 40,184,156, 44, 90, +212,135,196,136, 95,127,253,213,109,171,241, 94,124,180,196, 66,224,224,193,131,197,252,179,156,133,207,193,131, 7, 29, 22, 45, +241, 54, 95,186,188, 84, 42, 21, 21,249,212,106, 53, 66, 66, 66,160, 80, 40,160, 82,169,138,137, 44, 95,172,121,222, 38, 36, 85, +169, 84,135, 53, 26, 77,144,120, 94, 42,149,162,160,160, 32, 55, 43, 43,171,201,191,186,235, 16, 20, 86,179, 21,122,189, 1,133, + 5,250, 50,231, 23, 7,166,172, 95,191, 30, 79, 60,241,196, 93, 34, 75,124,215,247,208, 98, 76, 34,132,180, 93,176, 96,193,161, +185,115,231, 6, 23, 22, 22,226,219,111,191,205, 43, 44, 44,108, 75, 41, 77, 42, 21,151, 64, 97, 49,155,161, 51, 24,161, 45, 44, +122, 7,127,157, 93,247,136, 9, 98,186, 18,192, 74, 87,139,161,211,249,191, 0,116, 47, 5,229, 19,241,241,241, 72, 77, 77, 45, +118,240,230,205,155,176,217,108, 70,251, 60, 89,207, 57, 61, 79, 66, 41,181,121, 43, 59,204,246,174,195,194,194, 34, 43,136, 65, +155, 89, 54,233,212, 46, 54, 60,249,100,221, 75, 23,143, 56,210, 89, 34,145, 96,236,216,177, 56,125,234, 20, 58,196,228, 35, 49, +202, 31, 52, 63, 25,178,246,239,227,100,134, 10,115,230,253, 90,106,238,213, 78,131,125,230,172, 94,237,246,220, 95,189,122,149, + 42,238,151, 46, 93,130, 74,165,130,205,102,187,171,190, 41,109,252,157, 5,204,188,121,243, 48,126,252,120,124,247,221,119, 56, +125,250, 52,234,213,171,135,142, 29, 59, 34, 61, 61, 29,167, 78,157,130,209,104,244, 57,156,206,126,115,151,174,157,195,246,253, +191,225,102,210,117,164,164,222,190,231,239,238,204,233, 42,180,214,111, 63,129,190,157, 26,220, 19,231, 7, 31,124,128,244,244, +244, 98,150, 44,231, 1,100,158, 44, 90,174, 90,196, 5,153, 46,190, 80,226,190,201, 69,244,184,238,187, 94, 15, 0,233, 0, 36, + 94,238,115,221,207,156, 57,115,230, 78,209, 18,102,231,149,120,243,207,114,219,117, 40,138, 34, 49,163,184, 90,170,196,255, 26, +141, 6,254,254,254,240,247,247, 71, 64, 64,128, 87, 75,145, 40,180, 90, 93, 43, 40,230,235, 37, 90,182, 0, 96,196,136, 17,119, + 89,180,156, 39,246,116, 7,163,209,184,107,215,174, 93,245,123,244,232, 33,185,112,225, 2, 36, 18, 9, 4, 65,128,169, 89, 51, +212,251,252,115,156,121,237, 53,180,185,113, 3, 6,179, 25, 74,165, 18, 91,182,108, 49,235,116,186, 93,165, 45, 55,156,133,150, + 70,163, 65, 96, 96,160, 67,104,248,162,210,197,204, 91,146,255,131,184, 57, 15, 6,240, 37, 83,139, 21,170,179, 95, 14, 33, 4, +122,189,222,225,212,233,139,213,209,185,235,208, 57, 3,114, 28,135,160,160, 32, 71,225, 33, 90,180,124,181,230,121,155,144, 84, +173, 86, 7, 92,188,120,177,146, 56,253, 68,102,102, 38,218,183,111,127,249, 95,111,210, 18, 0,179,213,134, 66,189, 1,133,122, + 93,153,209,138,105,237,251,239,191,199,213,171, 87, 97, 54,155, 49,115,230,204,187, 4, 86,105,156,225,221,164,171,171, 13, 26, + 52, 16,158,124,242, 73, 28, 60,120, 16, 10,133,194, 66, 41, 45,245,252, 87, 2, 21, 96,182, 90, 97,208,235, 81,168,213,254, 87, +140,153, 14, 85,125,254,252,121,152, 76, 38, 76,157, 58,213,118,228,200,145,157, 0, 94,178,127, 67, 14,192,144, 54,109,218, 76, +235,214,173, 91, 16, 33,228, 21, 74,233,119, 37,229,115,139,213, 46,218,203,240, 61,138,105,201, 83,153,116, 47,211,172, 56, 87, +172,130, 32,224,133,231,159, 71,199,152,124,244,105, 24, 14,237,157,203, 80, 7,134,131, 4, 85,192,156,121,191,226,236, 53,159, + 93, 49, 41, 0, 60,217,166, 23,234, 86,191,123,122,176,150, 29,138,218,100,123,255, 56,140,180,204,148, 82,199, 93,171,213,122, +180, 92,249,106,209, 18, 57,197,105, 86,164, 82, 41,234,215,175,143, 42, 85,170, 96,231,206,157,104,208,160, 1,174, 92,185,130, + 43, 87,174,224,198,141, 27, 56,125,250, 52,114,114,114, 74,253,141,126,222,186, 10, 57, 5,217,144,203,228,200,206,205,196,205, +228,235,136, 12,141,186,239,239, 46,162, 90,183, 15, 0, 0, 49,225,129,165, 18, 90,206,156, 31,125,244,209, 93,226,189, 12,166, +236, 57,236,101,191,180,247, 63, 52,240, 30,172, 68,250,144,144, 16,149,115,255, 42,199,113, 8, 12, 12, 36,179,103,207,150,112, + 28, 7,127,127,127, 4, 6, 6, 66, 52, 23,122,131, 92, 46,215, 87,168, 80, 65, 37, 38, 68, 49, 35, 6, 4, 4, 72,102,207,158, + 77,190,250,234, 43,143, 86, 46, 47, 62, 90,115,135, 14, 29,250, 92, 82, 82, 82,112, 68, 68, 4,238,220,185, 3,185, 92, 94,148, + 57,218,181, 67,171,107,215, 96, 46,242, 57,194,165, 75,151,240,197, 23, 95,104,141, 70,227,220,210,190, 40, 63, 63, 63,132,134, +134, 58,186, 12, 69,139,142,147,104,244,201, 5,179, 36, 19,189,216, 2,188,151, 46, 36, 87,177,245,210, 75, 47, 21, 19, 93,190, + 66, 38,147, 89,197,153,223, 57,142,131,217,108, 70,131, 6, 13,144,158,158,238,200, 52,206,150, 60, 95,132,150,183, 9, 73,121, +158,135,201,100, 66,235,214,173, 65, 8,193,167,159,126,250,120,116, 71, 10, 2,241,243, 11, 69, 76, 76, 85,132, 71, 24, 32, 8, +101,183,170,140,213,106,197,168, 81,163,138, 89,176,196,145,141, 98,215, 63,165, 20, 22,139,229,158, 39,127, 21,243,245,253,204, + 31, 71, 1, 71,151,151, 86,107,248,215,125,194,136,136,136,166,132,144, 13, 46,135,179, 1, 76,115, 55,131,187, 29,142, 15,125, +251,246,109,116,233,210, 5,191,253,246,155,228,167,159,126,234,176,113,227,198,115,149, 42, 85,186, 61, 96,192,128,114, 47,190, +248,162,162,117,235,214,200,204,204, 68,195,134, 13,167, 0, 40, 65,104,217,223,163,193, 8,173,182,236,173,163, 37, 53,248,238, + 71,192, 77,158,252, 30, 58, 70,231,162,119,189, 64, 44,219,180, 15, 67,234,171, 0,147,162,212,124, 98, 88, 66, 98, 18, 80,161, + 86,211,187,206, 43, 2,138,186,236, 42,212,106, 10,238,246,149, 82,199,221, 57,204,174,229,229,189, 88,244,156,223,231,200,145, + 35,241,214, 91,111,161,115,231,206,184,114,229, 10,118,239,222,141, 43, 87,174, 96,220,184,113,168, 85,171, 22,234,213,171, 87, + 42,206,141,219,215, 34,191, 48, 15, 28,225,144,157,151, 5,131, 81,143, 9,163, 38,223,247,119, 23,113,125,251, 76, 0,192,186, +109,199,239,153,243,157,119,222, 65,106,106,106, 49, 75,214,253,248,101,253,219,225, 86,104,101,101,101,185,237, 7, 12, 15, 15, + 79,235,212,169, 83,196,157, 59,119,224,231,231,231, 85,100, 17, 66, 58,138,115,109,164,166,166,186,229,244,247,247, 55,119,234, +212, 73, 26, 29, 29, 93,108,180,161, 70,163,185, 43,147,185,114,218, 43,129, 2, 66,200, 11, 45, 90,180, 88,246,251,239,191,171, +171, 84,169,130,252,252,124, 80, 74,241,221,119,223, 97,236,216,177, 80, 42,149,184,116,233, 18,122,246,236,169,211,233,116, 47, + 56,207,161,229,142,211, 83, 11, 77,156, 21,223,141,200, 42, 49,238,206,153,117,193,130, 5,152, 49, 99, 6,222,126,187,100, 87, +143,165, 75,151, 2, 46,221,124,238, 56, 41,165,152, 51,103, 78,153,113,102,101,101,125,231, 98,141,250,180, 79,159, 62,252,237, +219,183,139,137, 43,231,205, 77,193, 84,140,211,219,132,164, 18,137, 4,145,145,145,152, 62,125, 58, 66, 67, 67, 17, 21, 21,117, +151, 37,198,219, 55,186,199,202,224,129,114,218,168,112,236,227, 89,239,181,252,118,197, 70,169, 66, 14, 28,216,189, 14,249, 57, +197,187,147,140,230,191,135, 82,203, 27,116,128,233,248, 31, 62,133,211,104, 52,226,163,143, 62,194, 7, 31,124,128, 15, 62,248, +192,151,239,126, 95,113,247, 69,108,185,229, 20, 40, 81,107,130,161,212,196,160,102,173, 96, 8,212,250, 72,125, 35, 15, 56,114, +248,240,225,158,161,161,161, 72, 74, 74, 10,151, 74,165, 61,139,153,171,244,122, 84,168, 80,161, 42,128,230,222, 56,199,141, 27, +103,124,247,221,119, 21,131, 6, 13, 66,159, 62,125, 48,104,208, 32,133, 76, 38,171, 76, 41,133,217,108, 70, 82, 82, 18,254,248, +227, 15,100,100,100, 92, 40, 41,156, 2,165, 68,165, 14,130, 82, 19,141,154,181,131, 32, 8,214, 50,137,187, 88, 9,186, 90,179, + 74, 57, 33,181,219,178, 14, 0,142,252,177, 1,147, 95,171,141,239, 54, 31,194,194,195, 64,221,160,116,212, 12,207,128,144,113, + 1,111, 14,105,132, 57, 63, 28, 5, 0,236,222,229,245, 27,149, 56, 63,178, 65,111,190,175,184, 59, 91,174,156,159,227,205, 71, +203, 29,167,216, 72, 44, 40, 40, 64,110,110, 46,150, 45, 91,134,103,159,125, 22,233,233,233,184,113,227, 6, 46, 95,190,140, 31, +127,252,209, 49,154,189,180,223,232,141,231,223,193,187,115, 94, 7, 5, 69,181, 74, 53, 49,113,244, 7,104, 92,183,217,125,127, +119, 87,120,179,102,149,196, 57,127,254,252,123, 74, 75,255, 41,161, 85, 82,171,130,227, 56,132,133,133, 57, 18,137,115, 2,188, +151,150,175, 68, 34,129,213,106,117,248,254,136, 27, 0,244,232,209, 3,191,252,242,139, 47, 35, 41,126, 39,132,252,175, 70,141, + 26,223, 76,153, 50,197,175, 77,155, 54,124, 76, 76, 12, 26, 55,110,140, 75,151, 46, 97,243,230,205,150,197,139, 23,107,117, 58, +221, 8, 74,233,182,123, 41,159,196, 37,109,156,183,210,180,122,204,102,243,237, 43, 87,174, 68,207,153, 51, 71,194,113, 28,230, +207,159,239,200,148,226,132,175,206,216,189,123,183, 85, 16,132, 18,187,106, 44, 22,203,237, 43, 87,174, 68,127,242,201, 39, 18, + 66,136,131,147,227, 56, 56, 47,224, 92, 26, 78,119, 34, 83, 28, 24,225,110,115, 23,118,119,223,184,164, 9, 73,121,158,199,165, + 75,151, 48,121,242,100, 16, 66,176,110,221,186,199, 34,115,157,190,144,249, 85,189,154, 17,193, 61,158,106, 89, 7,132,192,108, +186,123, 54, 4,191,156, 66,135,200,234,243,201, 42,252,244,198, 64, 95, 68,207,213,189,123,247,134,124,244,209, 71,188, 68, 34, +193,188,121,243,138, 77, 26,236,250,221,247,236,217, 99,189,151,110, 63, 49, 63,155,205,102,232,245,247,102, 69,161,148,238,159, +249,225,187,157,150,127,255,171,148, 16, 19, 14,236, 90,135,188, 92,247,238, 12,114, 41,143,175,150,173,183,202,164,146,219,255, +240,167,251,172,119,239,222,131, 22, 45, 90, 84,211,221,201,219,183,111, 67, 16,132,146,156,107,110, 24, 12, 6, 36, 39, 39, 67, +167,211,173,157, 52,105,146,249,215, 95,127,125,238,233,167,159, 70,189,122,245, 16, 29, 29,141, 59,119,238,224,234,213,171, 88, +182,108, 25,221,183,111,223, 90, 0, 99,188,188,199, 13,179, 62,124,119,216,178, 31,126,149,115,196,140, 3,187,215, 33,207, 69, +180,223,109,157,150,226,235,239,214,155,101, 50,233, 69,111,229,186,179, 53,171, 44, 43,198,158, 67, 71,163,207,130,133,168,216, +184, 11,102,205,238,136,175, 63,236,143,185, 79,202, 96, 94, 51, 4,117,251, 45,199,202,169, 93, 1, 0, 49, 95,251,104, 45,225, +101,184,229,198, 98,149,155,167,180,139,155,210, 89, 77,197,184,151, 84,134,151,214,162,197,113, 28, 18, 18, 18, 80,177, 98, 69, +180,104,209, 2, 13, 26, 52, 64,187,118,237,112,234,212, 41,156, 58,117, 10,227,198,141,243, 40,178,124,249, 70,109,155,119,194, +161, 86, 23,239,251,219,184,126,247,178,128, 47,105,105,244,232,209, 0,240,159,178,110,241,247,242, 18,197,132,121,191, 75,210, +136,156, 38,147,201,209, 37,231, 60, 47,147,232, 28,239,227,136,190,109,132,144, 90,239,189,247,222,107, 74,165,178,157, 78,167, +171,106,183,200, 92, 50, 26,141, 59,244,122,253, 60, 74,105,238,253,132,213,121, 58, 7,119, 65, 40,233,222,156,156,156, 46, 93, +186,116,217,198,243,124,130,235,130,191,238, 50,178, 32, 8, 55,210,210,210, 74, 28,226,158,149,149,213,165,115,231,206,110, 57, +221, 21, 16,190,112,186,251, 62,130, 32,120, 20, 89,190, 20, 68,222, 38, 36,229,121, 30, 26,141, 6, 63,255,252, 51,194,194,194, + 30,171, 12,118,242, 92,250, 71, 37,157,111, 27,166,216, 5, 32,188,207, 39,171,110,237,204, 52,197,183, 13,147,223,252,233,141, +129,229, 75,186, 39, 51, 51,179,243,179,207, 62,251, 27,207,243, 9,174,239,223,221,183,176, 90,173,215, 83, 83, 83, 75, 61, 93, + 2,165, 20, 23, 47, 94, 20, 70,142, 28,153,153,145,145,209,255, 94,226, 63,113,242,194,185, 51,166,140, 13,125,178, 83,211,198, +224, 0,147,103,231, 95, 74, 0,202, 75, 37,183,199,191, 61,255,249,127,242,155, 81, 74,243, 9, 33, 45,250,246,237, 59, 6, 69, + 67,195,239, 18, 82, 0, 22,148, 64,177,160, 92,185,114,181, 37, 18,137, 2,192,100, 74,233, 77, 66,200,103,251,246,237,235, 12, +224, 9,137, 68, 18,109,179,217,146, 81,180,230,227, 42, 74,233, 73,239,233, 40,237,197,122, 53,194,227,158,236,248, 68, 23, 16, + 66, 77, 38,163,151, 6, 18, 40, 40,165, 50,153,244,226,225,147, 41,117,189, 89,235,237, 43,112,148,121,151,253,152, 49, 99, 48, +102,204, 24, 71,122,250,244,211, 86, 88,123,102, 47,250,213, 77,130,241,139,150, 32, 1,229,125,110,240, 1,192, 59,239,141, 44, + 75,203,102,177, 65, 90,101,229,163, 37,145, 72,144,153,153,137, 75,151, 46, 33, 45, 45, 13, 58,157, 14,231,207,159,135,217,108, + 70, 78, 78, 14,106,215,174,125,207,225, 44,171,111,244, 79,114,254, 23,187, 15, 75, 37,180,172, 86,107,146,183, 85,214, 45, 22, + 75,169, 70, 37, 73,165, 82, 67,149, 42, 85,136,187,209, 9,226,127,141, 70,163,247,177,128,204, 5, 48, 25,192,100,251,122, 86, +200,206,206,190,111, 53,104,179,217, 82,226,227,227, 37,158, 4,140,253,221,164,121, 9,155, 22, 64,179, 50,174, 16,202,156,211, +205,247,209, 86,175, 94,221,225,235,229, 58, 39,138,125,177,213, 18,189,115,189, 77, 72,170,213,106,239,116,233,210,197,230,124, +222,121, 66,211,199, 26,132,222,236, 58,232,185,248,157,153,166,120, 0, 16,197, 22, 60,251,255,128, 82,170, 7,208,230, 65, 7, +237,218,181,107,166, 39,158,120,226,251,130,130,130,209,148,210,123,246,230,127,251,253, 79,223,254,183,125, 22, 74,105, 62,128, + 25,247,120,239, 77, 0,237, 93,142,157, 4,112,242,126,194,116,242,124, 70,153,207, 45,102,181, 90,147, 42, 86,172, 88, 42,203, +141,183, 50,222, 98,177,148, 88, 79,156, 69, 32,222, 62, 8, 20, 45, 19,151,229, 19,167,193, 96,200,110,214,172,153,180,148,113, + 75,247, 53,238,209,209,209,136,137,137,113,252,138,112, 61,238, 45,156, 86,171, 53, 41, 46, 46, 14, 97, 97, 97, 30,103,124,119, +245,201,242,133,179,172,191, 81, 73,156, 49, 49,203,203,156,179,172,244,194,127, 66,104,137,107, 24,150, 37,210,210,210, 30,200, +154, 43,180, 44,204,109,127, 91,142, 26,227, 63,138,172,172,172,208,251,229,240, 54, 33,105, 90, 90, 90,187,255,234,251,221,153, + 97, 26,126,215, 49,187,232,250,167,161,213,106,203,123,155,118,192, 19,250,245,235,103, 3,195, 35,143,204,204,204, 50, 47,211, + 31, 68, 61,145,157,157, 93,231,191, 26,247, 7, 17,206,127, 11,231,227, 2,230,165,198,192,192,224,169,177,194,196, 18, 3, 3, + 3,195,125,130, 0,232,232,161,144,245,121,164, 15, 33,164,227, 61, 20,226,219, 25, 39,227,100,156,140,147,113, 50, 78,198,249, +223,226,244,198, 93,214, 35,141, 31,133, 86,235, 3,219, 0,116,100,156,140,147,113, 50, 78,198,201, 56, 25, 39,227,252,175,110, +172,235,144,129,129,129,129,129,129,129,225, 1,129, 9, 45, 6, 6, 6, 6, 6, 6, 6, 6, 38,180, 24, 24, 24, 24, 24, 24, 24, + 24,152,208, 98, 96, 96, 96, 96, 96, 96, 96, 96, 96, 66,139,129,129,129,129,129,129,129,225,193,129,148,225,188,158, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 78,224, 1, 96,243,230,205, 14,181,213,173, 91, 55,194, 94, 11, 3, 3, 3, 3, 3, 3,195,195,196,227, +170, 69,120, 38,176, 24, 24, 24, 24, 24, 24, 24, 30, 5, 60,142, 90,132,115,167, 36, 25, 24, 24, 24, 24, 24, 24, 24, 30, 54, 30, + 71, 45,194, 61,206, 42,146,129,129,129,129,129,129,225,223,131,199,222,162,197,172, 90, 12, 12, 12, 12, 12, 12, 12,255, 20,254, +173, 90,132, 16, 66, 9, 33,212,121,223,241,159,141, 58,100, 96, 96, 96, 96, 96, 96, 96,184, 55,129, 69, 41, 37,158,126, 1, 54, +143, 22, 3, 3, 3, 3, 3, 3, 3,195, 61, 65, 20, 83,206,251,206,214,172, 7, 46,180, 8, 33, 29, 25, 39,227,100,156,140,147, +113, 50, 78,198,201, 56,255, 43,130,139, 82, 74,156,247,121,246,122, 24, 24, 24, 24, 24, 24, 24, 24,238, 91,124, 82,119,194,139, + 9, 45, 6, 6, 6, 6, 6, 6, 6,134,251, 20, 89,206,226,138,249,104, 49, 48, 48, 48, 48, 48, 48, 48, 60, 4, 48,139, 22, 3, + 3, 3, 3, 3, 3, 3,195,125,192,213, 9,158,117, 29, 50, 48, 48, 48, 48, 48, 48, 48,148,177,216,114,119,156, 0,232,232,225, +134,237,190,146,223,203,232, 3,111,252,140,147,113, 50, 78,198,201, 56, 25, 39,227,124,252, 56,189,113,151, 70,127, 60, 42, 32, +132,180, 1,176, 19, 64, 91,251,239,223,194,139, 82,250,192, 54, 0, 29, 25, 39,227,100,156,140,147,113, 50, 78,198,201, 56, 31, +231,173, 72, 78,253,253,235,188, 49,103,120, 6,111, 42,157, 39,132,240,247,122,254, 97,113, 50, 48, 48, 48, 48, 48,252,195,245, + 37, 21,127,157,253,181,120, 15, 23, 87, 6,240, 54,128, 64,167,195,135, 41,165, 51, 93,174,251, 1,128,218,233,144, 22,192, 84, + 74,233, 21, 31,194, 36,179,243, 43,236,155, 0,192, 0,192, 8,160, 0,128,133,125,182,127, 60,209, 52, 3,208,221,254,127, 19, +165,244, 64,105,206, 63, 44,206,135,133,152,152, 24, 85,112,112,112,231,227,199,143,203,207,159, 63,143, 61,123,246,208,175,190, +250,202,156,147,147,179, 53, 37, 37, 69,207, 82,204, 99,145,230,187, 0,152,104,223,157, 69, 41,221,114,159,124, 68,173, 86,143, +211,104, 52, 93, 21, 10, 69,140,213,106, 37, 58,157, 46, 69,171,213,110,179, 90,173,159, 80, 74,133,123,224,236, 21, 18, 18,242, + 92,181,106,213, 42,223,184,113, 35, 57, 37, 37,229, 7, 0,107, 0,244,143,137,137, 25, 82,161, 66,133,216,139, 23, 47, 94,201, +206,206,254,154, 82,186,225,159, 10, 39, 3,195,127, 9,158,252,179, 60, 10, 45, 0,147, 41,165, 67, 92, 50,226, 93, 23,181,111, +223,190,231,214,173, 91,213,130, 32, 64,220, 84, 42,149, 21,192,112, 47, 97, 10,221,191,127,127,252,232,209,163,251,164,164,164, + 52, 42, 40, 40,104, 2, 0,106,181,250, 80, 68, 68,196,145, 5, 11, 22,252,216,185,115,231, 36,187,224, 42,149,165, 68, 42,149, + 62, 27, 28, 28,220,213,106,181, 54,160,148, 66, 42,149, 30,207,201,201,217, 98,177, 88,190,166,148,150, 90,188, 17, 66,228, 60, +207,143, 81, 40, 20, 93,172, 86,107, 29, 0,224,121,254,180,209,104,220, 98,181, 90, 63,163,148,154,238,129, 83, 41,151,203,199, + 4, 4, 4,116, 50,153, 76,117, 0, 64, 46,151,159,206,207,207,223,102, 50,153, 62,163,148, 26, 30,129, 10,135, 7,208,157, 82, + 42, 5, 0,137, 68,210,171, 89,179,102,241,132, 16, 65,156, 31,132,227,184,250, 54,155,141,179, 95,223,157, 16,114,132, 82,106, + 45, 13,231, 19, 79, 60, 81,142,231,121,106,159, 73,151,227, 56,174,110,105, 56,203, 10,225,225,225, 51, 4, 65,136, 41,233,154, +192,192,192, 70,199,143, 31,175,182,122,245,106,219, 23, 95,124,145, 59, 98,196, 8,191,209,163, 71,243,159,126,250,233,103, 0, + 94,113,189, 62, 44, 44,108, 46,199,113, 97,190, 60, 95, 16,132,204,204,204,204,215, 89,113,245,143, 99,226,226,237, 5,173, 41, + 5,198,116,242,231, 0,220,151,208,138,141,141, 93, 54,108,216,176, 65,117,234,212,225, 41,165,176, 88, 44, 48, 26,141,213, 14, + 28, 56,208,118,221,186,117,141, 0,244, 47,101,190,124,254,173,183,222,154, 62,109,218,180, 48,169, 84, 74, 44, 22, 75,165,213, +171, 87, 55,120,241,197, 23, 95, 93,186,116,105,185, 1, 3, 6,248,139,199, 39, 79,158,220,152, 16,146, 72, 41,253,228, 97,135, +147,129,225, 63,216, 72,107,131,226, 62, 90, 83, 40,165, 31,148, 36,180, 52,246, 27,211, 0, 28, 22, 45, 90,174, 23,253,249,231, +159, 27,121,158, 23, 45, 90, 77,180, 90,109,164,139, 21,204, 29, 42, 12, 29, 58,180,217,218,181,107,103, 12, 24, 48, 32, 85,173, + 86, 87,121,250,233,167, 11, 8, 33,146,213,171, 87,215,175, 88,177,162,170, 71,143, 30, 67,219,183,111,255,198,111,191,253,182, + 7, 64,134,143,145,172, 25, 18, 18,178,254,163,143, 62,138,239,210,165,139, 44, 44, 44, 12,148, 82,164,164,164,196,110,222,188, +249,201, 41, 83,166,188, 65, 8,233, 77, 41, 61, 87,138, 23,215, 88,165, 82,173,157, 50,101, 74,244,147, 79, 62,201, 71, 69, 69, +193, 96, 48,224,252,249,243, 29,183,108,217,210,122,233,210,165,175, 16, 66,250, 81, 74,143,148,130,179, 73, 96, 96,224,186,111, +223,122, 43,178,233,179,207,242, 33, 33, 33,160,148, 34, 35, 35,163,227,222,229,203,219,142,250,232,163, 87, 8, 33,125, 41,165, +135, 31,165, 68, 36,151,203,185, 21, 43, 86,212,147,203,229, 0, 0,147,201,132, 90,181,106,145,251,225,148, 74,165,220, 39,159, +124,210,128,231,121,152,205,102,161,160,160,128, 62,253,244,211,220, 63,148, 73,226, 82, 82, 82, 2,101, 50,153,219,243, 54,155, + 13,173, 91,183, 78,144,201,100,248,228,147, 79, 44,153,153,153,245, 23, 45, 90,116,124,229,202,149, 97,159,125,246, 89, 63,119, + 66,139,227,184,176,164,164, 36,183,156, 54,155, 13,102,179, 25, 86,171, 21, 38,147, 9, 53,106,212, 96, 37,213,163,129,120, 0, +248,245,148, 1, 0, 66,238,151, 76,163,209, 84, 31, 60,120, 48,159,145,145, 1,169, 84, 10,179,217,140,212,212, 84,212,170, 85, + 75,242,253,247,223, 87, 45, 45, 95,165, 74,149, 70,204,154, 53, 43,252,215, 95,127, 53,175, 88,177,194,212,169, 83, 39,233,136, + 17, 35, 2, 90,183,110, 93, 35, 46, 46,142,251,230,155,111,140,219,182,109,179, 12, 29, 58, 84, 62,115,230,204,240,205,155, 55, +247, 0,240,201,195, 14, 39, 3,195,127, 16, 59, 93, 23,149, 6, 80,162,208, 18,113,152, 82,218, 11, 0,100, 50, 89,253,114,229, +202, 45,179, 90,173, 81,118,171, 78,170, 84, 42,253,196,108, 54,159,176, 87, 84, 27, 4, 65,232,233,205,146, 53,116,232,208,102, +191,253,246,219,156, 3, 7, 14,228,101,101,101, 69,109,220,184,209,240,198, 27,111,220, 0,128,107,215,174, 37,246,232,209, 35, +118,236,216,177, 73,157, 59,119, 94,208,174, 93,187,151,119,236,216,177, 13, 69, 93,146, 37,138,172, 90,181,106,237,223,189,123, +183,127, 80, 80, 80,113, 85, 87,161, 2, 94,126,249,101, 89,207,158, 61, 43,118,232,208, 97, 31, 33,164, 21,165,244,140, 47,130, +168,114,229,202,219,255,252,243, 79,191,224,224, 96,228,230,230, 34, 53, 53, 21, 58,157, 14, 1, 1, 1, 24, 48, 96,128,172, 77, +203, 22,229,198,142,123,101, 59, 33,164,163, 47, 98,139, 16,210,164, 69,205,154,219, 87,206,156,233,103,185,117, 11, 42,149, 10, +133,133,133, 0, 0,127,127,127, 52, 74, 72,224,143, 46, 95, 30, 59,100,194, 4,145,243,161,139, 45, 66,136,194,110, 6, 53, 18, + 66, 54, 73, 36,146, 94,114,185,156,235,213,171, 23,182,111,223, 78, 12, 6, 3, 15, 0, 74,165,210,218,171, 87, 47,168, 84, 42, +152, 76, 38, 1,192, 38, 79,150, 39,119,156, 82,169,148,107,215,174,157,238,240,225,195,217, 34,167, 90,173,182,180,107,215, 46, + 84, 46,151,171,172, 86, 43, 45,137,243, 1,137, 73, 92,189,122,181,216,177,130,130, 2,100,100,100, 32, 43, 43, 11, 70,163, 17, +185,185,185, 16, 4,129,168, 84,170, 12, 65, 16,192,113, 69,198, 55, 79,156, 50,153, 12,151, 46, 93, 42,118,204,106,181, 66,171, +213,194,104, 52,194,108, 54,163,160,160, 64,229,239,239, 95,185,102,205,154, 73, 0, 54,100,103,103,127,146,154,154,122,147,149, + 91,255, 8,110,109, 58, 97, 40, 15,192, 4,224,122, 25,240, 9, 0,176,103,207, 30,164,165,165, 33, 51, 51, 19, 25, 25, 25,136, +139,139,195,189,116,199, 93,189,122,117,113,237,218,181,201,217,179,103,183, 0,248,116,245,234,213,195,179,179,179, 39,142, 31, + 63, 62,228,227,143, 63,206,158, 48, 97,194, 44, 0,223,173, 94,189,250,165,234,213,171,119,189,112,225,194,210,127, 34,156, 12, + 12, 15, 0,141, 1,132,219,255,103,218,203,221, 80,167,253, 83,246,124, 43, 94,103, 2, 32,119,243, 43, 66,220,207, 0,112,196, +233, 62,113,255, 94,234, 79,234,252,235,104,116, 3,192,230,205,155,169,184,185,187, 57, 50, 50,114, 92,251,246,237,231, 28, 59, +118,172,198,157, 59,119,130,239,220,185, 19,124,236,216,177, 26,237,219,183,159, 19, 25, 25, 57, 78,188,206,238,113, 15,167,125, +231, 33,154,178,253,251,247,199,175, 95,191,126,214,246,237,219,243,234,215,175,111,250,243,207, 63,173,157, 59,119, 78, 7, 96, + 5, 96,237,220,185,115,250,142, 29, 59,108, 77,155, 54, 85,253,246,219,111,183,247,237,219, 55,119,237,218,181,145, 0, 36, 30, + 56, 65, 8,145, 6, 5, 5,253,188,107,215,174,187, 68,150, 51,202,149, 43,135, 77,155, 54, 5, 4, 5, 5,109, 32,132,200, 74, + 8, 39, 8, 33, 74,165, 82,185,110,199,142, 29,126,254,254,254, 72, 79, 79,135, 84, 42, 69, 68, 68, 4,242,242,242,144,122,231, + 14,110, 94,190, 12,206,100,194,188, 15,167,249,171, 84,170,181,132, 16,185, 55,206,192,192,192,117, 43,103,204,240,203,218,190, + 29, 39,167, 79,135,217,108,118,116,185,154,205,102,236, 27, 61, 26, 25,127,252,129,111, 38, 79,246, 11, 12, 12, 92, 71, 8, 81, +150,196, 89, 22,112,230, 36,132,140, 6,144, 13, 32,155, 16, 50,154, 82,122,160, 86,173, 90,199,206,159, 63,143, 86,173, 90, 97, +205,154, 53,117,199,143, 31, 63,122,252,248,241,163,215,172, 89, 83,183, 85,171, 86, 56,127,254, 60,106,213,170,117,204,217,151, +202, 23,206, 93,187,118,161,125,251,246, 57,107,214,172, 73,156, 60,121,242,140,201,147, 39,207, 88,181,106, 85,197,246,237,219, +231,204,159, 63,223, 88, 18,231,131,136,187,179,165,201,121, 19,132,191,235,152,152,152,152,244,245,235,215, 99,192,128, 1,156, + 92, 46,191, 51,112,224, 64,197,222,189,123, 41,128, 77,165, 9,167,193, 96,128, 94,175,135, 86,171,197,181,107,215, 84, 31,125, +244, 81,203, 15, 62,248,160,210,246,237,219, 99,223,126,251,237, 81,225,225,225,199,163,162,162,226, 31,118,220, 25, 39, 0, 32, + 21,128,217,222,184,187,121, 63,156, 29, 58,116,168, 93,169, 82,165,200,213,103,131,145, 35,171, 6, 65, 22, 4, 65, 22, 4, 91, +104, 99, 92,149, 63,133,242,229,203, 71,250,251,251, 55, 43, 13, 39,165,116,197,153, 51,103,158,160,148,126, 64, 41,205,162,148, +206,153, 48, 97,194, 20, 66,200,158, 9, 19, 38, 76,163,148,206,177, 31,159,126,254,252,249,166,148,210,149,255, 68, 56, 89, 90, + 98,156,247, 2, 47, 90, 36,156, 16,178,137, 16,178,105,210,164, 73,237, 0,132,186,236, 55,119,190, 14,128,220,221,175,184, 57, + 29, 15, 7,208,205,233,190,240,123,124, 31,196,117, 43, 38,180, 0,160, 91,183,110,164, 91,183,110,226,137,195,132,144,141, 0, + 14,203,100,178,250,245,234,213,235,245,251,239,191,251,135,135,255,253,252,240,240,112,172, 93,187,214,191,102,205,154,189,100, + 50, 89,125, 0,135, 3, 2, 2, 54,194, 77, 23,163, 29, 65,163, 71,143,238,243,204, 51,207,228,215,175, 95, 31, 0,114,207,157, + 59,167,110,218,180,169,214,106,181, 18,171,213, 74,154, 54,109,170, 61,119,238,156,218, 98,177, 20, 52,110,220, 88,211,161, 67, +135, 27,175,191,254,250, 80, 0,202, 18,226, 55,120,246,236,217,113,193,193,193, 37,189, 0, 20, 20, 20, 32, 50, 50, 18,163, 71, +143,142,146, 74,165,207,149,244,194,120,158, 31, 51,123,246,236,136,160,160, 32,228,228,228, 32, 46, 46, 14, 38,147, 9,151, 46, + 93,130, 65, 91, 8, 75, 65, 62, 44,249,185,200,248,235, 10,130,164, 60,134,246,236, 30,201,243,252, 24, 47,214,146, 49, 95, 79, +152, 16,105,186,113, 3,215,214,172,129,205,122,183,161,198,106, 54,227,244,151, 95,194,144,148,132, 89, 35, 71, 70,202,229,242, + 49, 15,217,146,245, 49,165, 84, 69, 41, 85, 17, 66, 22, 52,111,222,252,123,149, 74, 53,122,230,204,153, 93,182,110,221,250,228, +238,221,187,219, 90,173, 86,169,213,106,149,238,217,179,167,149,193, 96,224, 21, 10, 5,120,158,167,190,114, 54,107,214,108,153, + 74,165, 26,181,100,201,146, 46, 59,118,236, 24,122,244,232,209, 49, 54,155, 77,110,179,217,228, 71,143, 30,125, 81,175,215, 75, + 41,165, 54, 79,156, 15, 27, 82,169, 20, 50,153, 12, 42,149, 10, 45, 91,182,252,235,171,175,190,178,196,197,197, 73,215,173, 91, + 23, 28, 19, 19,163,249,244,211, 79,115, 11, 10, 10,102,251,202,103, 54,155, 97, 52, 26,161,215,235, 97, 48, 24,240,231,159,127, + 38,140, 29, 59,150, 55, 24, 12,182, 30, 61,122,100, 91, 44, 22,227,132, 9, 19, 2, 66, 66, 66,222, 96, 13,216,127, 4, 86, 0, +133,118,161,101,116, 78,203,132,144, 58,162,117,214, 23,228,230,230, 46,253,250,235,175,227, 56, 69, 16,246,154,186,226, 71, 97, + 10,182, 6,126,138,244,248, 55, 17, 17, 87, 9,131, 6, 13,138,160,148,126, 90, 6, 21,222, 34, 74,105,107, 74,233,130,123,185, +255, 65,135,147, 16, 18,239,231,231,183, 38, 32, 32, 96,175,159,159,223, 26, 66, 72,252,253,198,185,115,101,210,177, 87, 13, 73, + 82,231, 74,132,246,170, 33, 73,234, 92,185,244,115, 61, 49, 60,154,112,209, 34,206,200,160,148,118,167,148,118,159, 53,107,214, + 12,167,244, 47,238,171,124,204, 47,221, 41,165,221, 93,210,232,166, 50,168, 67,169,235,230,208, 20,206, 74, 82,140,156,243,232, +194,114,229,202, 45, 91,182,108,153,191, 43,233,157, 59,119,144,159,159,143,119,223,125,215,255,153,103,158,121,229,246,237,219, +195,188,132, 67,158,154,154,218, 96,200,144, 33, 74,179,217,156, 35, 8, 2,151,159,159,207, 7, 6, 6,218,196, 11, 2, 3, 3, +109,121,121,121, 82,173, 86, 43,177,217,108,198,103,158,121, 70, 62,114,228,200, 70,206, 22,173,187, 36,110,120,120,167,174, 93, +187,202, 61,157,183, 88, 44,208,106,181,208,106,181, 48,155,205,104,217,178,165,226,171,175,190,234, 12, 96,137,167,123, 20, 10, + 69,167, 78,157, 58, 73,179,179,179, 17, 24, 24,136,155, 55,111,226,250,245,235, 48, 22, 22,194, 92,152, 15,115, 97, 1,172, 5, +249,160,249,121,200,186,114, 17, 77,171, 87,147,253,160, 80,116, 1, 48,215, 19,103, 64, 64, 64,167,166,195,135,243, 26,141, 6, +109,135, 20,141, 51,248,173,122,117, 80,155, 13,130,205, 6,155,213,138, 46,151, 46,193, 98,177,128,227, 56, 52,206,206,230, 3, +150, 47,239, 4, 96,206, 63,145,216, 21, 10, 5,191, 98,197,138,193,114,185, 28,148, 82, 98, 50,153,176,117,235,214,251,230, 92, +190,124,249, 80,145,211,108, 54,211,218,181,107,223,149,161,140, 70, 35,125, 84, 50,189, 92, 46,135, 82,169,132,217,108, 70,133, + 10, 21,244, 67,134, 12,217,255,225,135, 31,150,231, 56, 78, 35,147,201,126,207,202,202,154,145,146,146,114,205, 87, 62,139,197, + 2,147,201, 4,147,201, 4,189, 94,143,191,254,250, 43, 42, 33, 33,129,140, 30, 61,218,166,211,233, 18, 23, 46, 92,120,117,235, +214,173,234,217,179,103, 63, 13,224,101, 86,236, 62, 60,216,173,210,129,229, 67,121,173, 84,130, 66, 0,254,118, 81,240, 52, 33, +164,105,141, 26, 53,130,207,159, 63,159, 67, 8, 57, 8,224, 71, 74,233,157,146,248, 4, 65, 32,130, 32,224,197, 38,185, 24,221, + 76, 2,139, 37, 15,121,121,121,184,121,243, 38,206,157, 59,135, 67,135,206,221, 83, 56,149, 74,229,115,126,126,126,157,149, 74, +101, 5,171,213,202, 21, 22, 22,222,212,233,116,219, 5, 65, 88, 74, 93,187, 21,124,192,131, 10,167, 8,141, 70,243,209,219,111, +191,221, 34, 48, 48, 16, 39, 78,156, 72, 92,181,106,213, 71,184, 79,231,122,165,148,251,102,238,252, 79, 99, 99, 35,130,112,106, +247, 47,177, 51, 62, 95,253, 13,128, 56,150,138,255,253,112,214, 34, 46, 56, 2,160,155,125, 52,122,247,251,200,231,247,117,127, + 73, 22, 45,215,133,165,239, 18, 90, 30, 34, 6,171,213, 26,229,108,201,162,148,226,206,157, 59, 72, 78, 78, 70, 70, 70, 6,130, +131,131, 97, 54,155,163,124,169,103, 11, 10, 10,154,132,134,134,234,164, 82,169, 81,175,215, 67,173, 86, 11, 82,169,148,218,159, + 67,236,163, 22,109, 70,163,145,240, 60,111,241,247,247,247, 51, 26,141,213, 80,130, 47, 25,165,180, 73,104,104,168,219,115, 70, +163, 17,133,133,133,208,106,181, 40, 44, 44,132,209,104, 68,100,100, 36,172, 86,107,131, 18,155,180, 86,107,157,240,240,112,164, +164,164, 64,165, 82, 33, 41, 41, 9,166,194, 2,152, 11, 10, 96,213,230,195,150,151, 7, 33, 63, 31,130, 54, 31, 22,147, 14,177, + 85,170, 67, 28,145,232, 9, 38,147,169, 78,104,104, 40,180,218,191,221,205,168, 93, 96, 89,173, 86, 88,237,206,209, 98,119, 98, + 88, 88, 24,196, 17,137, 15, 3,118,255,169,241, 28,199, 45, 80, 40, 20,252,168, 81,163,112,231,206,157, 98,105, 98,212,168, 81, + 14,159,172,214,173, 91,239, 81, 42,149,214,140,140, 12, 24,141, 70,169, 47,156, 21, 42, 84,184,249,238,187,239, 30, 54,153, 76, +113, 49, 49, 49, 65, 70,163, 81, 95,181,106,213, 24,149, 74, 21,105, 50,153,108,141, 26, 53, 90,170, 82,169, 44,133,133,133,212, +106,181,146, 71, 33,211, 19, 66, 64, 8, 41,250, 70, 86, 43,194,194,194,180,153,153,153,135,114,114,114, 6,223, 11,159,197, 98, + 17, 71,116, 65,175,215,131, 82,138, 19, 39, 78, 64,169, 84, 74,109, 54,219, 89,171,213,170,150, 74,165,224,236,206, 95, 12, 15, +237, 59,183,173, 22, 36,159, 59,179,105, 68, 80,189, 30, 26,173, 90, 46,209, 10, 55,235, 85,248,246,227,115,171,158, 25,250,156, +255,212,169, 83,227,195,194,194,148, 87,175, 94, 53, 76,155, 54, 45, 97,197,138, 21,196, 91, 35,232,214,173, 91, 63,189,253,246, +219, 33, 93,187,118, 77, 84, 40, 20, 36, 47, 47, 15, 25, 25, 25, 72, 75, 75,195,245,235,215,233,169, 83,167,254, 50, 26,141,107, + 74, 19,206,152,152,152,175,198,142, 29,251, 76,195,134, 13,165,162,133, 84,171,213,214,223,181,107, 87,207,223,126,251,173, 21, +128, 82,167,203,219,183,111,175,121,231,157,119, 52, 79, 61,245, 84, 53,133, 66,193,149, 69, 56,157,193,113, 92,164,159,159, 31, +182,111,223,142,160,160, 32,112, 28, 23,121,191,223,203, 96, 22, 98, 99,162, 66, 97,216, 55, 23,213,194,227, 97, 48, 11,177, 44, + 21, 63, 62, 22, 45, 15,167, 26,139, 22, 41, 47, 98, 73, 63,113,226,196,183, 9, 33,155, 38, 78,156,248,182, 59,139,150,253,175, +205,249, 58,167,235,141,101, 45,182, 74, 53, 41,164, 32, 8, 72, 78, 78, 70, 74, 74, 10,146,147,147,145,149,149, 5,142,227, 74, +156, 63,194, 57, 12,132, 16, 97,219,182,109,193,251,247,239,215, 54,110,220, 56, 87,244,127,177, 90,173,196, 98,177, 16,187, 95, + 12,185,121,243,166,108,239,222,189, 65, 23, 46, 92,136, 68,145,195,154,224, 37,114,119, 29, 19, 5,150,243,102, 48, 24,160, 84, + 42,125,138,171, 88, 17,158, 56,118,172, 72,100, 21, 22,216,187, 12,243, 96,203,207, 3,213, 22, 64,110,179, 64, 14, 10, 98,208, +249,252,254,156, 33,138, 44,179, 93,104,153, 76, 38, 88, 44, 22, 8,130, 0,171,213,250,208, 19, 56,165,116,113,253,250,245, 27, +252,244,211, 79, 35,146,147,147,239, 58,223,187,119,111,188,252,242,203, 24, 59,118,236,133,110,221,186,157,250,229,151, 95, 48, +102,204, 24, 8,130, 80,143, 16,146, 71, 41,253,173, 36,206,137, 19, 39, 30,189,125,251,246,206,203,151, 47,143,138,136,136, 80, +212,169, 83,231, 74,157, 58,117, 36, 63,253,244, 83,228,243,207, 63,127,236,201, 39,159,188,241,199, 31,127,132,108,223,190, 93, + 41, 8, 66, 67, 66, 72,242, 63, 61,143,150,209,104,116, 88,160, 12, 6, 3,204,102, 51, 80,130,243,187,183,180, 41,126, 91,171, +213, 42,114,147,159,126, 90,143, 61,123,246,112,231,206,157,141, 27, 53,106,180,232,112,207, 74,220,135, 35,176,158,146,115,228, +139,241,245, 66,149,111,212, 13,213,202,121, 82,120,233,139,183, 11,175,151, 15,208, 70,150, 83,155,226, 18,130, 98,102,204,248, + 48,250,194,133,139,198,119,223,125,247,252,192,129, 3, 35,222,120,227,141, 26,235,214,173,107, 69, 8,249,154, 82,154,235,129, + 87, 57,124,248,240,131, 17, 17, 17, 9,159,127,254,121,250,237,219,183,131, 45, 22,139,198,108, 54, 11, 90,173,246,186, 94,175, +223,110, 54,155,183, 83, 74,143,149, 38,188,254,254,254,117,135, 15, 31, 46,205,205,205,133,125,180, 46,210,211,211,209,162, 69, + 11,201,198,141, 27,107,222,203, 59,200,206,206,158, 75, 8,217,185,114,229,202,206, 1, 1, 1, 13, 21, 10, 69, 20, 0, 91, 65, + 65, 65,154, 86,171, 61,121, 47,225, 44, 86,206,217,108,105,199,142, 29,171, 24, 16, 16,128, 91,183,110,193,102,179,165,221,239, +119, 83,202,184,219,167,119,111, 44, 87, 61, 44, 1,123,247, 31,132, 82,198,221,102,169,249,177,135,232, 67, 5,103, 1,229, 70, + 32,237,159, 57,115,166,106,214,172, 89,152, 57,115,230, 89,119, 22, 45, 81,112,205,156, 57,243,172,120,157,211,245,187,239,163, + 60,241,108,209, 42, 65, 65,130,231,249,212,140,140,140,224,160,160, 32,135,192, 74, 73, 73, 65, 74, 74, 10,228,114, 57,110,222, +188, 9,185, 92,126,199,151, 70,136, 74,165, 58, 90,191,126,253,170,215,174, 93,147, 77,155, 54,173,220,177, 99,199, 2, 90,180, +104, 81, 91,165, 82,217, 40,165, 48, 24, 12,220,249,243,231,253,230,204,153, 19,219,164, 73, 19, 83,147, 38, 77,142,175, 94,189, + 90,143, 18, 38, 47, 37,132, 28,190,115,231, 78, 98,133, 10, 21, 68,209, 86, 76, 92, 57, 11, 46,160,168,203,147,231,249,227, 37, + 5,148,231,249,211,151, 46, 93,234,168, 86, 42, 96, 42,200,135,185, 48, 31,214,130, 2,216, 10,242, 96,203,203, 3,180,249,144, + 91,173,144,218, 44, 80, 41,149, 72, 78, 74, 2,207,243,167, 75,226,148,203,229,167,211,210,210, 58, 6, 5, 5, 57, 42, 81,139, +213, 90,180,217,108, 48, 89,173, 14,139,150, 84, 42,197,237,219,183, 33,151,203, 79, 63,236,148,204,113,156, 77,156,194,193, 67, + 60, 16, 25, 25, 41, 52,109,218, 20, 99,198,140,129,205,102,179,127, 6,210,150, 16,178,151, 82, 90,232,137, 83, 16, 4,238,252, +249,243,125,174, 94,189, 42,145, 74,165,220, 19, 79, 60, 81,171,101,203,150, 38,185, 92, 14,153, 76,198, 23, 22, 22,250,111,223, +190, 93,105,177, 88,136,157,243,161,205,163, 37,166,157,187,154, 70,118,167,117,189, 94,143,194,194, 66,228,228,228,240, 42,149, +170,106,237,218,181, 15,154, 76,166, 53, 86,171,245,155,107,215,174,229,123,226,180, 11, 51,135,232, 18, 4, 1,148, 82,216,108, + 54, 88, 44, 22,200,100, 50, 97,215,174,221,152, 51,239, 35, 44,251,102, 5,237,217,179, 39,217,184,113, 35, 4, 65, 72, 98,229, +234, 67,193, 39,185, 63,126,168,132,213,166, 53,238, 90, 89,248,253,229,124,237,212,239,231, 31, 53,201, 37,249,141,218, 68,214, + 73, 76,168, 42, 9, 10, 10,230,150, 44, 93,144,245,195,138,181, 87,111,221,186,149,255,217,103,159, 53,171, 90,181,106,224,201, +147, 39, 99, 1,184, 21, 90,106,181,186,242,115,207, 61, 55, 60, 39, 39, 71,182,108,217,178,213,119,238,220, 57, 10,224, 28,165, + 84,235, 84,118,117, 35,132,124,135,162,145, 79,145,246,114,110, 47,165,116, 90, 73,237, 53, 66, 8,118,236,216,113,215,232, 64, +225,254,212,121, 80,165, 74,149, 6, 92,187,118,109, 79,106,106,106, 95, 55,249,126,106,149, 42, 85,186,156, 61,123,118, 10,165, +244,215,210, 16,235,116,186, 9,107,215,174,253, 88, 34,145,196,216,108,182, 20,189, 94, 63,225,190, 45, 90, 22, 97,228,204, 37, +171,190,212,155,108,229, 85,114,201, 45,131, 69,120,158, 37,229,199,218,154, 5,216,125,180,196,255, 0,136,203,254, 73,251,127, +147,211,181, 25, 78, 86, 44,147,139, 21,204,221,185, 12,220,227,100,233,238, 70, 28,138,162,203,211,204,240,147, 0, 52, 1,112, + 88, 42,149, 46,120,230,153,103,230,252,240,195, 15,254,249,249,249, 72, 75, 75, 67,122,122, 58,120,158, 71, 64, 64, 0, 22, 47, + 94,172, 79, 75, 75, 91,224,124,143,235, 12,242, 98,222, 8, 11, 11, 59,186, 98,197,138,168, 47,190,248,130, 31, 54,108,216,205, +110,221,186, 85, 91,188,120,241, 53,153, 76, 70,109, 54, 27, 49, 26,141,228,197, 23, 95,172, 56,111,222,188, 27, 18,137, 68, 61, + 96,192, 0,162,209,104, 14,163,200, 65,213,253,155,207,200,216,246,243,207, 63,247,121,253,245,215, 21, 38,147,201,173, 37, 75, + 60, 22, 20, 20,132,125,251,246,153,114,114,114,182,122,177, 98,108,251,253,215,205,173,255, 55,112,160,204, 82,144, 15, 75, 65, + 62,172,249,249,176, 21,228,130, 20,230, 67,106,179, 66, 37, 19, 16, 21,167,132, 85,239,135,205, 71, 78, 90,140, 70, 99,137, 19, + 27,230,231,231,111,219,187,108, 89,219, 38,241,241,252,190,113,227, 96,182, 88,240,212,165, 75, 14,113,101, 54,155,177,161, 78, + 29,216, 8, 65,189, 23, 94,192, 21,171,213,154,159,159,191,237, 81,204, 12,167, 78,157, 74, 31, 50,100,200, 49, 65, 16, 26,148, +198,186, 35,194,207,207,175,160,176,176, 16,153,153,153,182,172,172, 44, 3, 0,164,167,167,231,108,220,184,241,188, 32, 8, 77, +238,133,179, 44, 96,177, 88,238,178, 70,217,108,182, 34,171, 99,145,229, 64,190,121,243,230,214,231,207,159,151,157, 57,115, 6, +123,246,236,169,247,195, 15, 63, 76,138,143,143,175,115,243,230,205, 84,111,226,205,221,164,191,176,251, 31,174, 94,185, 6, 47, +189,244, 18, 73, 77, 77,197,143, 63,254, 8,111,147,167, 50,148, 25,180,176,218, 84,166, 93, 43, 11,187,253,122,171,224,192, 29, +253, 52, 0, 91,168,222, 74,203,149, 43,119,170, 97,195,224, 48, 0, 48, 26,108, 81,149, 43, 87,110,195,243,188,220,158,134, 27, +134,134,134, 46, 6,208,210, 77,249, 41, 25, 56,112, 96,211,136,136,136,250,191,253,246,219,201, 59,119,238,156,165,148, 30,114, +189,174, 98,197,138,239, 94,184,112,161,177, 84, 42, 37, 94,210, 8, 0,160,109,219,182, 85,227,227,227, 67,127,189, 28,136,124, + 89, 37, 80, 73, 30,192, 43, 97, 11,170,139,155,178, 26,136,139, 59, 24, 26, 20, 20, 84, 47, 55, 55,247,100, 41, 43,136,118,125, +250,244,249,102,217,178,101,113,109,218,180,161,132, 16,206,117, 74,135,138, 21, 43,118, 62,112,224, 64,131,231,159,127,254,115, +251,232, 97,159,157,135, 41,165, 55, 1,244, 43,203,143,182,245, 10,221, 14,251,156,103, 12,255, 25, 28,121, 64,215,150, 9,238, +101,102,248, 38,130, 32,244,228, 56, 14,102,179,121,102,100,100,228,134, 1, 3, 6,244,158, 52,105,146, 95,104,104,168,195,146, +181,120,241, 98,253,245,235,215,215,153,205,230, 19,132,144,201, 41, 41, 41, 61, 99, 98, 60,214, 15, 5, 11, 23, 46, 92,213,163, + 71,143, 97, 47,188,240,130,190, 78,157, 58, 1,213,170, 85,211,237,223,191,223,175, 83,167, 78,249, 18,137,132,238,219,183,207, +191, 98,197,138, 6, 66,136,226,143, 63,254,200, 58,120,240, 96,197,153, 51,103,126,141,162,225,214,158,176,114,250,244,233,239, +246,236,217,179, 98,104,104, 40,242,243,243,139,137, 45,241,191, 82,169, 68,106,106, 42,214,175, 95,127,199, 98,177,124,237,197, +178,241,217,167,139,151,188,210,174,233, 19,177, 1,106, 21, 82,147,110,194,150,151, 3,104, 11, 33,183, 90,160,146, 83,196, 86, + 82,131,151,104,112, 53,181, 16,203,246, 31, 73,181, 90,173,159,149,196,105, 50,153, 62,123,121,222,188, 87, 14, 44, 89, 18, 27, +223,191, 63,206, 45, 95,238,232, 42, 20,133,150,141, 16,148,239,208, 1, 92, 96, 32,102,124,254,121,154,201,100,250,236, 97, 39, + 22, 65, 16, 36, 38,147,169,164,120, 64, 16,132,164,115,231,206,173, 34,132, 20, 16, 66,218,218, 79,237,116,103,205,114,230,228, + 56, 78,168, 81,163,198, 79,145,145,145,125, 0,104,107,212,168,241,147, 66,161,104,111, 50,153,158, 16, 4, 33,233,196,137, 19, +235, 9, 33,169,132, 16,177,213,241, 80,231,209,178, 88, 44,152, 60,121, 50,102,205,154,133,137, 19, 39, 58,226, 43,118, 31,230, +230,230, 38,236,221,187, 87,182,107,215, 46,250,249,231,159,103, 13, 27, 54, 44,232,133, 23, 94, 8,250,226,139, 47, 94, 3, 48, +193, 19,231,132, 9, 19,240,249,231,159,227,165,151, 94,186, 91,101, 73, 36, 66, 82,210,109, 24, 12, 6,186,112,225,194, 20,169, + 84, 26,252,245,215, 95,171,158,127,254,121,194,202,213,135,130,119, 84, 67,222,123,213, 94,198, 44,160,148,238, 20, 79, 4, 4, + 4,168,126,250,233,103, 30, 0,214,173, 93, 47,165,148, 6,138, 19,204,126,255,253,247,202, 22, 45, 90, 68,120, 40,112,109, 74, +165,210, 56,123,246,236,208,145, 35, 71, 62,249,231,159,127, 6, 19, 66,154, 2, 56, 10, 32,205, 46,174, 35, 0,156, 11, 11, 11, + 11, 88,189,122,117,108,231,206,157, 53,222, 2, 90, 80, 80,240,245,170, 85,171, 42,204,219, 27,136, 95,181,125,112, 91,232, 15, + 26, 68, 17, 18, 81,128, 26,126,183, 48,120,240,224,152, 5, 11, 22,124, 9,160, 97, 41, 68,214,224,222,189,123,207, 90,182,108, + 89,204,200,145, 35, 83,143, 31, 63,158, 6, 96,153, 27,193,151,249,204, 51,207,220, 89,190,124,121, 52,165,116, 9, 33, 68, 78, + 41, 93,199,146, 15, 3,131, 35, 47,181, 65,209,140,240,119,137, 47,226,206,191,137, 16,178,193,106,181,246,228,121,126,163,243, +132,165,145,145,145,175,152, 76,166,104, 66, 8,149,201,100,169,105,105,105, 11,156, 39, 44, 77, 74, 74,234, 25, 23, 23,231,184, +199, 62,233,166,243, 92, 27, 1, 79, 61,245, 84,199, 3, 7, 14, 44,218,180,105, 83,122, 65, 65,129,223,218,181,107, 85,179,102, +205,186, 41, 8, 2,125,235,173,183,226,187,116,233,162,179,217,108,119, 94,120,225,133,138, 9, 9, 9, 47, 92,184,112, 97,187, +179,208,114,195, 9, 66, 72,205, 74,149, 42,237, 91,183,110, 93, 64, 80, 80, 16,210,211,211,145,157,157, 13,173, 86, 11,155,205, + 6,169, 84,138,140,140, 12, 76,155, 54, 45, 63, 37, 37,229,174, 9, 75, 61,112, 54,169, 16, 27,187,109,193,148,201,254, 65, 60, +135,172,139,231, 97,205,201,130,212,106, 65,185,154,129,144,201, 85,184,114,169, 0,175,173, 92, 95,112, 43, 59,247,174, 9, 75, + 61,113, 54,170, 92,121,251,231,227,199,251, 25,110,223, 70,244,179,207, 66,167,211,193,108, 54,131,227, 56,252,181, 96, 1,100, +225,225,120,119,245,106,237,217, 91,183, 58,184, 78, 88,234,142,179, 12, 18,135,131,147, 16, 50,154, 16,226,112,134,239,221,187, +119,177,107,127,254,249,103, 44, 89,178, 4, 70,163,209, 74, 41,125,133, 82,186,152, 16,226,103, 79, 80,133,222, 56, 43, 84,168, +112,171, 86,173, 90, 71,108, 54, 27,111, 23, 25,244,220,185,115, 13,175, 95,191, 94,206,133,147,183,115, 90, 31, 86,220, 67, 67, + 67, 23,252,246,219,111, 21, 34, 34, 34,136,243,140,237,118,161, 8, 0, 24, 51,102, 76,135,131, 7, 15, 42,234,215,175,111,204, +204,204,108, 28, 30, 30,254,231,138, 21, 43,194, 6, 12, 24,144,114,246,236,217, 88, 87,206,176,176,176, 57,235,214,173,171, 84, +169, 82, 37, 78,180,138,185,118, 79,142, 24, 49,162,227,138, 21, 43,228,125,250,244, 49,106,181,218, 72,127,127,255,171,235,214, +173, 11,235,213,171, 87,234,217,179,103,163, 31, 70,220, 25,167,123,212,170, 85,235,202,217,179,103, 43,137,251,122,189, 30, 25, + 25, 25,200,204,204, 68, 80, 80, 16, 58,117,234,244,215,245,235,215, 43,185,227, 36,132,212,239,215,175,223,148, 47,191,252,178, +163, 70,163,145,237,222,189, 91,187,125,251,118,195,205,155, 55,173, 22,139,133, 70, 71, 71,243, 45, 91,182, 84,118,237,218, 85, +163, 80, 40,184,247,222,123, 47,243,195, 15, 63, 12, 35,132,172, 20,151, 63,115,229,108,208,160,193,161,223,127,255,189, 9, 33, + 4, 18,137, 4, 38,147, 25,185,185,185, 72, 78, 78,194,185,115,231,112,224,192, 1,108,221,186,245,100, 97, 97, 97,125, 31,243, +123, 40,128,221, 70,163,177,154, 92, 46,247, 89,216,219,108, 54,240, 60,127, 17, 64,103, 74,105, 18, 75, 75,140,147,225,111,255, +172, 82, 57,195,219, 5, 88, 19, 66,200, 6,251,161,195,174, 83, 56, 16, 66, 38, 17, 66, 38, 59, 89,193,188,133, 37,255,183,223, +126,219,211,177, 99,199, 49, 29, 58,116,152,215,185,115,231, 59,119,238,220, 73,156, 59,119,110,156,213,106, 53,159, 59,119,142, +187,122,245,234,205,163, 71,143, 86,170, 82,165,202, 11, 23, 46, 92,216,229,197,154, 37,134,245, 28, 33,164, 69,187,118,237,214, +191,240,194, 11,229,155, 54,109, 42, 15, 10, 10, 2,207,243,184,118,237, 26, 78,158, 60,105, 90,189,122,117, 82,110,110,174,207, + 75,240, 80, 74, 15, 19, 66, 58, 13, 24,251,202,186, 23,122,247, 8,123,162, 90, 85,121,116,116, 52,160,215,227,226,173, 84, 28, +188,120,210,252,213,158,131, 25, 70,163,177,175,175, 75,240,216, 57, 59,182, 31, 63,126,221,212,255,253, 47, 18,119,238,240,209, +209,209,144,203,229,184,126,253, 58,174, 10,130,117,246,210,165,105,249,249,249, 15,125, 9, 30,113,206, 43, 65, 16,120, 0, 80, +169, 84,120,249,229,151,225,188,228,206,146, 37, 75,160,215,235, 1,128, 39,132,124, 76, 8,249,198,147, 21,203, 3,103,249, 95, +127,253,181,188, 51,103,245,234,213,221,113, 26, 31,118, 38,201,206,206,126,247,169,167,158,154,201,243,188,199, 89,111,131,131, +131, 81, 80, 80, 0,171,213,106, 75, 78, 78,190, 24, 28, 28, 12,169, 84, 10, 74,169,219,124,148,149,149,245,110,223,190,125,167, +115, 28, 23,225,137, 51, 32, 32,224,230,159,127,254, 89,249,249,231,159,231,190,253,246,219,107, 35, 71,142, 84,252,249,231,159, + 54, 74,233,122, 86,116, 61, 90,112,110,148,218, 27,113,180,132,107, 79, 16, 66,230, 29, 61,122, 52,124,204,152, 49,137,255,251, +223,255, 2,218,181,107,231,231,124,141, 94,175, 23,126,249,229, 23,237,146, 37, 75,242,246,236,217,115, 99,196,136, 17, 77, 81, +228, 95,226, 22,183,110,221,218, 60, 99,198,140,192,174, 93,187, 86, 1,224,240,207,202,200,200,192,205,155, 55,113,230,204,153, +155,102,179,121, 99, 41,226,147, 69, 8,153, 58,104,208,160,143,151, 47, 95, 30, 51,114,228,200,212,213,171, 87,159, 65,209, 4, +195,174, 8,234,221,187,119,157,229,203,151, 71,143, 28, 57, 50, 21,192, 52, 74, 41,243, 35,100, 96,248, 27,109, 93,253,180, 74, +244,209, 2,144, 39, 8, 2, 12, 6, 67,164, 32, 8, 61, 5, 65,128,159,159,159,187,235,154,164,164,164,244,116, 94, 84, 26, 94, +150,203, 1,144,177,125,251,246,109, 43, 87,174,236,240,214, 91,111,253, 47, 55, 55,183,201,169, 83,167,154, 2,128, 84, 42, 61, +160,209,104, 14,205,156, 57,243,217, 9, 19, 38,100,248, 34,178, 92,196, 86,141, 57,115,230,148,217,162,210,118, 97, 84,249,179, + 53,235,199,124,173, 80,116,114, 89, 84,122,155,125, 81,105,195,189,112,142,255,242,203, 49, 1,107,214, 60,178,139, 74, 27,141, + 70,107,159, 62,125,190,230, 56, 78,176,183, 98,121,163,209,248, 44, 74, 57, 82,213,149,179,119,239,222,223, 74, 36, 18,171,221, + 82,196, 25,141,198,231,238,135,179, 12, 43,209, 66, 0, 99, 75,186,166,118,237,218, 43, 54,110,220, 56,164,103,207,158, 54,179, +217,156,222,163, 71, 15,254,208,161, 67,148,227,184,237, 30, 56,141, 0,222, 44,137, 51, 42, 42, 42,254,211, 79, 63, 61, 62,110, +220,184,128,149, 43, 87,134,236,221,187,215,182,112,225,194,252,236,236,236, 79, 88,185,245,104, 65, 42,149, 66,173, 86,195,100, + 50, 33, 35, 35, 3,222,166,172,162,148,238, 32,132,116, 29, 63,126,252,211,227,199,143,239, 26, 21, 21, 85,177, 66,133, 10,106, +142,227,144,156,156,108, 77, 73, 73, 73,183, 88, 44,219, 0,172, 7,128,138, 21, 43, 62, 3,224, 43, 79,124, 89, 89, 89,211, 9, + 33, 59,150, 47, 95,222, 77,163,209,212, 80, 42,149, 33, 22,139,133, 43, 40, 40,200,214,235,245,231, 13, 6,195, 38, 74,233,254, + 82,166,251,213,132,144,204, 97,195,134,125,179,108,217,178,184,107,215,174, 21, 28, 61,122,244, 41,215,235,106,212,168,177,119, +249,242,229,209,207, 63,255,252,157,213,171, 87,151,202, 71,139,129,225, 63,210, 16,219, 5, 15,254,197,158, 42,184, 25,114,185, +156,135,125,113,105,209,162,229,230,186,195, 46, 62, 89,121, 0,102,248, 16, 38,237,224,193,131,175, 15, 30, 60,248, 99,123, 24, + 36, 40,154,194,193,138, 34,143,127, 51,188, 76,233,224, 33,162, 86, 0, 95,218,183,178,122,121, 6, 20,205,151, 51,231, 81,230, + 44,131, 48, 25, 9, 33,227, 9, 33, 31,219, 15,141, 63,113,226,196, 98, 23, 11,213, 41,231,243,222, 44, 79,238, 56, 79,158, 60, +233,202,121,166, 52,156,255, 36,114,115,115, 95,249,244,211, 79, 15, 79,156, 56, 81, 49,124,248,112,156, 57,115, 6,179,102,205, + 50,230,230,230,174,188, 87,206,212,212,212,155, 81, 81, 81, 13,230,207,159,255,198,188,121,243,122, 17, 66,216, 90,135,143, 8, +244,122,253, 95,117,235,214, 5, 41,114, 88,162, 86,171,213, 49, 90,212, 62,195,255, 95,190, 88,141, 0, 44,181,111, 32,132,132, +160,104,148, 97, 22,165,212,181, 33, 57,222, 7,190, 3, 0, 14,148,113,222,223, 65, 8,121,246,234,213,171, 51,254,250,235, 47, +183, 66,237,202,149, 43, 59, 91,182,108,233,127,234,212,169,119, 40,165,155, 89,234, 96, 96,240, 29,188,135,140,119, 5,192,255, +124,200,160, 51,239,227,217, 54, 31,172, 95, 12, 15, 87,108, 45, 38,132,124,227,100,141, 41,213,249,135,197,249, 79, 33, 41, 41, + 41, 7,128, 99, 41,146,196,196,196,187,252,216,238, 85,108,161,104, 22,120, 54, 19,252, 35,132,107,215,174, 61,245, 0,242, 88, +246, 35,154,247,119, 2,104,234,233,188,197, 98,153, 12, 96, 50, 75, 21, 12, 12,165, 7,155,125,154,193,181,192, 53,150, 36,120, +188,157,127, 88,156, 12, 12, 12, 12, 12, 12,143, 10,220,172,117,216,198,113, 14, 64, 71, 15,149,223,246, 82, 60,160,212, 11,122, +122,227,103,156,140,147,113, 50, 78,198,201, 56, 25,231,227,199,233,196, 61,207,195,169,139, 46,124, 95,252, 27,133,151, 99,244, + 33,165,244,129,109, 0, 58, 50, 78,198,201, 56, 25, 39,227,100,156,140,147,113,222,227,115, 94,120, 24,207, 41,227, 48, 83, 0, +109,196,125, 30, 12, 12, 12, 12, 12, 12, 12, 12, 12,101, 2,159,230,209, 90,187,118,173, 68,252, 63,104,208,160, 17, 54,155,205, + 49,236, 93, 34,145,124,250,227,143, 63,126, 83,210, 67,250,245,235,103, 43,137,211, 29,188, 61,199, 29,103,173,170,129,163, 66, + 3,213,175,228,230,233,230, 95, 75,177,237, 49, 24, 12, 53,196,115, 74,165,242,252, 55,223,124,115,185,172,195, 57, 98,196,136, + 42,174,207,169, 16, 39,109, 27,226,175,124, 57, 59,183,112,238,153,203, 5, 95,176,100,246, 96,209,191,127,255, 82, 93,127,253, +122, 16,142, 35, 26, 1, 26, 25, 10,181, 22,216,142, 61, 30, 62,189,209,209,209,213, 2, 2, 2,134, 2,168,169,211,233, 34,212, +106,117, 58,128,115,249,249,249, 43,238,220,185,115,209, 87,158,182, 9,228, 38,128,242,246,221, 91, 59,175,211,120, 95,206,121, + 67,151, 74,196, 64, 1, 5, 33, 48,111,185, 66, 29, 11,104, 62, 89,153, 24, 4,122,247,241, 46,149,137,137, 82,200, 8, 96,220, +114,149, 42, 31,151,244, 74, 8, 9, 0,208, 9, 64, 45, 0,167, 0,108,165,148,234, 88, 78,102, 96,120,124,224, 58, 81,169,243, + 62,239, 65, 76,180,150,241,100, 17, 5, 13, 2,104,168,209,104,148,202,229,114,152, 76, 38,168,213,170,207, 94, 28, 57, 98, 10, + 56,228, 90,172,120,249,155,111,190,185,231,149,174, 75,243,156,126,253,250,237,112,189, 63, 56, 64, 53,125,231, 47,111, 5,183, +238, 54,123,150,233,122,230,132,130,130, 2, 78,161, 80,192,104, 52, 34, 48, 48,176,197,168, 23, 94,104,200, 73,169, 73, 38,211, +236,159, 55,111, 94,234,189,134,243,181,215, 94,139, 50,155, 13,205, 5, 65,144,155, 76, 38,133,235,115, 2,213,154,217, 59,127, +121, 75,221,166,251,172, 41, 0,152,208,122,132, 80, 36,178,162,240,234,224, 39,240,209,184,142, 8,106, 59,251,113,200,208,146, +196,196,196, 49,241,241,241, 3,151, 46, 93, 42, 75, 76, 76,132, 82,169,132, 94,175,143,254,235,175,191,162, 71,141, 26,213,166, + 98,197,138,171,174, 93,187,246, 25,165,212,230, 3,101,249,157,223,189, 7, 0,104, 49,116, 90,121, 66,200,155, 0,116, 0,208, +166,194,223,231,218, 14,159, 86,158, 16, 50, 30,197, 71, 11,223,161,148,186,157, 36,147, 2,242, 77,203,231,160,231, 51,111,242, +132,144, 81,226,241,174, 85,128,223,191, 95,128, 39, 7,189, 82,236,120,151,138,224,127, 89, 62, 7,221,159,121,211,227,170,230, + 79, 86,225, 44,130, 64, 61, 90,226, 57,142, 88,183, 92,161,238, 22, 24, 78,163,148,110,113,243, 46,187,160,104, 65,103,183,215, +119,175,206,167,153, 45, 54,183, 19,206,202,164,146,244, 77, 23,172,119,221, 59,188, 1,177, 88,108, 69,101,171,140,135, 45, 48, + 48,112,231, 59,239,188,195,119,239,222, 29, 95,125,245, 85,203, 47,190,248,226, 5, 66,200, 31, 0, 54, 82, 74,175,178, 92,202, +192,240,248, 10, 46,143, 66,139,151,224,243,141,235,190,169,148,150,158,137, 97,207,191,129,149, 43, 87, 34, 39, 39, 7,193,193, +193,144,203,100,210,249, 31,191, 23, 21, 16,160,137, 26,246,194,132,207, 1, 84,187,215, 0,149,242, 57,149,239,138,144,125, 66, + 83, 94,194, 73,229,114, 57,183,106,213, 42,228,230,230, 34, 40, 40, 8,114,185,148,155, 55,107,146, 42, 32,192, 79,245,220,232, +137, 45, 1,172,185,215,112,154, 76,133, 45,127, 90,249, 77, 64, 70, 70, 6,134,191, 52, 1,174,207,145,201,100, 54,177, 98, 97, +201,236,159, 67,102,102, 38, 0, 32, 44, 44,204, 69,100, 53,197,188,215, 59,227,181,185, 91,161, 51,152,254,245,241, 76, 76, 76, + 28,211,191,127,255,129,211,167, 79,151,113, 92,209,192, 97,173, 86, 11,189, 94,143,216,216, 88,236,220,185, 83,246,238,187,239, + 14,252,249,231,159, 1, 96, 97,105,249,207,158, 61, 91,161,124,249,242, 6, 0,232, 81,199,223,245, 92,188,120, 14, 0,252,253, +253,189,242,133, 6,105,140,103,207, 30,172, 41,222, 55,166, 67,172,205,195,113, 3, 0,117, 73, 92,130, 64,249,173,139, 70,121, + 60,255,252,244, 31,172,167,214,236,169,150,152,152,168,119, 62,238, 97,194,101, 0,136, 44, 44, 44, 44,239,122, 80,188,222,108, +177, 69,120,122, 94,231,151,151,184, 21, 96, 22, 27,248, 31,126,248, 1, 0,240,201,155, 67, 36, 95, 30,202,228,121,190,168,168, +253,248,227,143, 49,117,234, 84,249,150, 45, 91,186, 46, 95,190,188, 43, 33,100,190, 39,161,202,192,192,240,239, 19, 89,206,191, + 37, 10, 45,142, 16,255, 0,127, 63,244, 27,252, 34,126,251,237,119,180,110,221,218,113, 46, 33, 33, 1,253,251,246,194,143,223, +205, 3, 0,255,251, 9,212,253, 62, 39, 39, 79,251,254,147, 3, 23, 77,187,149, 90,120, 96,211,166, 77,104,213,170, 85,177,251, + 7, 15,232,135,239,191,254, 24,148, 82,217,125,189, 60,202,201,252, 3, 52, 24, 52,236, 37,184,123,206, 11,195,123,111,234,210, +127, 65,199,180, 44,237, 60,150,212, 30, 46, 46, 92,184, 0,163,209,136,128,128, 0, 72,165, 82, 40,130,202, 35,133,111,130, 12, +146,136,244, 8, 29, 94,239, 24,137, 79, 94,109,135,215,230,110,197,252,149, 7,209, 0,169,255,234,248, 70, 71, 71, 87,139,143, +143, 47, 38,178, 10, 10, 10, 80, 88, 88,136,252,252,124, 20, 20, 20,128,227, 56, 76,152, 48, 65,182,107,215,174,129,209,209,209, +219,125,232, 70,188,213, 98,232,180, 34,177, 33,145, 22, 78,158, 60,217, 24, 17, 17, 97, 84,171,213,148,151, 41, 10,218, 14,159, +230, 15, 0, 28, 47, 43,152, 63,127,190, 41, 54, 54,214,192,243,188,252,149, 87, 94,241,105,122, 24,163,209, 72,157, 57, 77, 38, +163,227,248,236,217,179, 77,145,145,145, 70,181, 90, 77,205,102,223, 69,240,233,235,217, 80,200, 36, 80,200, 36, 80,202,165,240, +175,208, 24,138,156, 51,176, 90,173,248,232,163,143,204, 81, 81, 81, 38,181, 90, 77,229,114,185,108,220,184,113, 94,195, 57, 98, +196, 8, 26, 20, 20,100, 86,171,213,178,169, 83,167,222, 53,187,243,159,167,146,161,146, 75,161, 86,240,168,156, 16, 7, 5,213, +251, 28, 86,137,164,184, 55,130, 66,161, 64,203,150, 45, 81,179,102, 77,108,216,176,161, 45, 0, 38,180, 24, 24,254,229,112,181, + 98,221, 37,180, 54,111,222,220, 6,246, 85,167,187,117,235, 86,180,218, 52, 40,198,143,233,139,231,134, 15,130,205, 38, 56,150, +155, 32, 28,193,232,103,187, 66, 16,108,190, 60,216,235, 16,207,210, 62,199,153,147, 18, 78, 2, 0,149,226,163,233, 11,207,253, + 15, 54, 65, 40,154, 6, 21, 0, 36,192,139,195,159, 44, 58, 86, 6,225,148,192,134, 55, 70, 61, 13,119,207,169, 86, 41,134,179, +154, 13, 32, 78,139, 61, 62,136,197, 54, 25,103,113,236,223,191, 31,106,181, 26, 67,134, 12,193,184,113,227, 96,227,131,176,246, + 64, 22,222, 90,124, 0, 58,163, 25,131,219, 85,192,235,255,171,131,215,231,255,233, 16, 89, 9, 9,185,255,234,184, 7, 4, 4, + 12, 93,186,116,233, 93, 34, 43, 45, 45,141, 43, 44, 44,132,217,108, 22, 10, 10, 10, 96,179,217, 48,113,226, 68,233,187,239,190, + 59,148, 16, 50,213,206, 99,116,199,185,243, 58,141, 39,132,140, 63,123,246,108,252, 59,239,188, 99,110,223,190,253,173,132,132, + 4,173, 68, 34, 65,116,116,244,130, 78,157, 58,133, 76,159, 62,221,220,181,107,215, 27, 18,137, 4,149, 43, 87,214,158, 57,115, + 38, 30,128,202,215,184, 59,115,126,243,231,167, 98,171, 15,157, 58,117,186, 89,185,114,101,173, 68, 34,193,229, 95,102, 83, 95, +223,167,148,231, 80, 37, 54, 80,108, 70, 2, 42, 63, 32,167,104,183, 83,167, 78, 73,213,170, 85, 43,228, 56, 14,167, 79,159,142, + 3,160,244,198,169, 82,169, 44,131, 7, 15,190,117,241,226,197,187,174, 7, 0, 94,194,161,105, 53,187, 1, 43,182, 1,144,180, +215, 99, 56,165, 18, 88,223, 29, 51,132, 15, 82, 2, 10,255, 48, 99,126,126, 62, 2, 2, 2,138, 44,100,102, 51, 78,156, 56,129, +102,205,154,181, 89,179,102,205, 46,150,223, 25, 39,227,252, 27,238,180,200,191,205,154, 37, 10, 46,119, 62, 90, 59, 93, 35,101, +179, 89,145, 80, 62, 18,179,223, 27, 1,155, 77,128,205,102,131,213,254,107,179,217, 96, 49,155,203, 36,112,247,243,156,224, 0, +213,244,223, 87,189, 28,220,190,247,199, 29,102,190, 51,124,155,205, 6, 8,130, 5, 22, 11, 96, 19, 44, 16,108, 54, 88, 44,101, +211, 85,100, 17, 4,196,199, 69, 97,230, 59,195,225,250,156, 21, 63,174,233,241,231,198, 9,234,214,221,103,189, 1,224, 35,166, +237, 31,142, 37, 75,173, 86, 99,197,138, 21,104,220,184, 49, 0, 96,207, 37, 43,222, 90,124, 0, 91,102,182, 64,139,154,161, 72, +207, 53,226,149,207, 78,226,183, 3,233,119,137,172,127, 49,106, 38, 38, 38, 22, 19, 89,115,230,204, 9, 91,188,120,113, 44, 0, +244,237,219, 55,185, 67,135, 14,153,151, 46, 93, 66,116,116, 52,201,204,204,236, 6,224, 21,123,198, 31, 79, 41, 93,236,129, 87, + 91,190,124,121, 67,120,120,184, 81, 20, 68, 28,199,129,231,121,148, 47, 95,222, 16, 17, 17, 97,172, 92,185,178, 86, 38,147,129, +227, 56,136, 66,207,199, 2, 8, 18,137, 4, 34,167,171,181, 71,228, 44, 13,164,188,211,245,244,110, 11, 18,199,113,110,159,231, + 9, 74,165,146, 2,240,120,189,132,115, 42, 30,249,146, 61, 4,190, 59, 78,165,132,144,157,148, 82, 28, 63,126, 28,215,174, 93, +131, 76, 38, 67, 84, 84, 20,166, 78,157, 10,163,177, 72,239,246,239,223,191, 13,128,211, 44, 55, 51, 48, 56,176,243,223, 38,176, + 92,173, 90,238,124,180, 56, 55,106,210, 33,128,138,196,142, 27,241, 99,177,194, 98, 49, 3, 94, 22, 85,245, 85,104,121,122,142, +205, 38,148,248, 28,209, 71, 75, 16, 40,239, 86,100, 9, 2,172, 22, 75,153,188, 64,193,102,129, 32, 88,224,238, 57,132,112, 54, +123,129, 47, 99,249,228,225,192,104, 52, 98,208,160, 65, 14,145, 5, 0,153, 5, 22,232,140, 22,180,168, 25,138,134,237,250, 35, + 34, 72,129,213,187,147, 17, 17,164,126, 92, 68, 22,116, 58, 93,132, 82,169,132, 86,171,117, 88,178, 22, 47, 94, 28,107, 50,153, + 56,147,201,196,173, 94,189, 38,110,229,182, 75,229, 86,108,185, 84,110,233,250, 99,229,114,114,242,106, 82, 74, 85,148, 82, 21, +128,143, 9, 33,138,146,248,101, 50,153, 67,160, 56, 11, 32,133, 66,113, 79, 2,198, 81,208,216,197,153, 76, 38,115,123,220,181, +123,205, 27,100,206, 66, 11,180,200,170,229, 34,182, 36, 18, 9, 68,223, 40,111,144,203,229,142,184,187, 3, 47,113,122,158,164, +244,174,152,102,179, 25,133,133,133,200,205, 45,102, 81,133, 40,130, 25, 24, 24,220,107,145,127,171,216, 42, 86,126,184,170, 73, +216, 87,159,182, 90,204,110,197,207,154, 95,246,225, 86,170, 22, 81, 97,135, 65, 61,172, 84,237, 9, 3, 7, 14,252, 46, 58, 58, +218,177,158,150, 66,229, 23,250,194,203, 31,192,106, 53,195, 95,197,225,249,161, 79, 22, 19, 89, 69, 22, 45, 19, 60,201,185,156, + 60,237,251, 79,246, 95, 56, 45, 48, 32,244,128,171,248,153,185,236, 88,191,156,124, 99, 28,199, 29, 65, 14,137,182,245,127,241, +131, 17, 78,133,251,169, 85, 75, 38,191,238,243,139, 35,156,180,223,168, 5, 47, 80,222,175,134,154, 43,216,253,214,240, 39,126, +114, 22,115, 33, 33, 33,155, 58,247,155,223, 49, 45,155,249,104, 61, 44,200,229,114,140, 27, 55,174,216,177, 48,127, 41,212, 10, + 41,246,157,203,196,177, 29,107,176,231,108, 38,148, 50, 9,194,233,181,199, 38,222,106,181, 58, 93,167,211, 69,235,245,122,228, +231,231, 35, 63, 63,191,184, 32,144, 74,201, 11, 47,141, 13,147,202,228,176,152, 77,248,109,197,135, 94, 57,219, 38,144,155,109, + 42,160,124,143, 58,254,144, 72,229, 5,231, 18, 19, 23,240, 60, 15,142,227,240,203,103,111,189,178,126,238,203,254, 0,112,106, +211,103,249,131, 38,124,186,144,227, 56, 24,141, 70, 69,105,194,125,251,246,237, 56,163,209,104,176, 11, 52,209,180,142,235,215, +175,151, 51, 26,141,122,231,227,190, 64,165,246, 7,130, 18, 0,117,196, 93,214,179, 27, 55,110,196, 88, 44, 22, 29,207,243, 48, +153, 76, 62,169, 34,142,227,100,167, 79,159,142, 19, 4,193,237,245, 53, 43,198, 0, 81,117, 0,121, 96,105, 10, 92,159,174,113, +215, 2,102, 96,248,175, 91,182, 80, 74,125,241, 40, 8, 44,119,255,157,133, 86,219,205,155, 55, 83,231, 22,162,213, 98,177,139, +172,191, 69,143,205, 38, 32, 37,195,128, 75,151, 46, 99,254,252,249,216,119,240,205,192,233,211,167, 43,222,125,247, 93,227,192, +129, 3,231, 10,130, 80,151,227,184, 83,253,250,245,115,219, 74, 19, 4,161,220,177, 99,199, 18,197,125,139,197, 2,127,127,127, +248,251,251,163, 90,229,184,187, 68,150,205,102,131,185,132,174, 67,209, 71,139, 80,129, 90, 44, 54,216, 4,193, 33,126,114,242, +141,113, 27,183, 31,175,228,116,121, 85,241, 79,203,198, 53, 60,139,193, 81, 83, 29,241, 88,181,100,242,235,211,191,250, 74,145, + 99, 11, 31, 55,168,223,115,181,250, 15, 26,138,193, 79, 63,213,198,104, 50,109,144,112, 84,176, 56,158, 7, 14, 20,197,124,180, + 24, 30, 28, 50, 51, 51,161,215,235, 17, 20, 20, 84,172,194,138,214,104, 49, 97, 64, 21,116,122,107, 47, 12,102, 27, 20, 82, 14, +175,244,138,199,161,159, 87, 35,211,152,233, 24,141,248, 47,199,185,171, 87,175, 70,151, 43, 87, 14,249,249,249,176, 90,173, 66, +223,190,125,147,121, 94, 26,199, 75,165,164,251,160,177, 66,106,106,138,133,227, 36,160,212,134,167,250,143, 34, 10,165, 74,102, + 54,153,172, 0,198,123, 88, 83,210,121, 10, 7,255, 78,157, 58,133,136, 35, 1,215,207,125,217,223,233, 92, 64,195,134, 13, 67, +156, 71, 29,250, 40,138,201,192,129, 3, 85,229,203,151, 39, 0,112,100,197, 59,162,245,140,244,232,209, 67, 89,190,124,145, 31, +254, 31,159,249,190,166,118,152,154, 2,121,215,129,188, 27,119, 89,178,122,244,232,161, 72, 76, 76, 44, 85, 94,180, 59,192,123, +156,187, 75,195, 91,129,212,227, 62,113, 13,111, 64, 44,239,180, 6, 63,247, 41, 14,114,191, 80, 99,211,183,182, 28, 98, 98,139, +129,193, 39,184,104,145,127, 15,236,107, 27,238, 4,208,214,254,139, 98, 62, 90,221,186,117,219, 85, 76, 61, 82,192, 98, 53,223, + 37,178,108, 54, 27,164,196,136,249,243,231,227,213, 87, 95, 5, 0,217,235,175,191,254,211,244,233,211,251, 8,130, 80,151, 82, +218,138, 16, 82, 82,171,113,103,116,116,116, 26,165, 84,202,113, 92,171,207, 62,251, 44,164,107,215,174,240,247,247, 7, 21,232, + 93, 34,203,102, 19, 96, 54,155,224,201,164, 21, 28,160,154,254,251,154,113,193,237,123,125,220,193, 38, 8,219, 68,145, 37,216, +108,128, 80,116, 83, 86,122, 50,182,254,182, 1,159, 47,249, 60, 7,132, 94, 0,133,192,113,220, 41, 79, 97, 20, 4,161,238,222, + 35,231, 91,181,108, 92, 3,211,191,250, 74,113,246,216,157,159,198,190,246,118,173,254,131,134, 98,205,143, 43,192, 89,115,143, + 59,139, 44,155, 69, 64, 94, 78,102,143, 29,204, 71,235, 31,131,197, 98, 65, 78, 78, 14, 44,133, 57,104, 20,173,197, 7,253, 35, +144,150, 99,128, 84,208,161,122, 64, 58,118,100,223,128, 90,173,126, 44,226,154,159,159,191, 98,212,168, 81,109,118,239,222, 45, +227, 56, 14,249,249,249,104,215,174, 93,102,134, 16,171,124,225,165,177, 97, 41, 41,201,214, 0, 21,111,148,201,164, 72, 79, 79, + 23,218,116, 29,162, 31, 52,226,213,152, 87,223,153,185, 52,101,223,226,197,190, 60,195,121, 36,160,235,185, 47,191,252,210, 20, + 27, 27,107, 80, 40, 20,242,225,195,135,251,212,127,104, 50,153,232,236,217,179,141,174,163, 11, 77, 38, 19,157, 63,127,190, 41, + 46, 46,206,168, 82,169,168,197,226,221,239,147,227,136,245,249,233, 63, 88,173, 86,107, 49, 43,150, 40,178, 44, 2, 41, 92,180, +104,145, 57, 46, 46,206,164, 86,171,169, 66,161,144,249, 18,206,177, 99,199,210,224,224, 96,179, 70,163,145, 77,152, 48,225,190, + 70, 29, 90,108,224,167,127,230,152,222, 65,225,239,239,143,130,130, 2, 71, 88,163,163,163,153,216, 98, 96,112,131,187,180,200, +191,204, 10,231,201, 71,203,173, 3,131, 0, 20,166,165,103, 70,132, 69, 86,128,213,106,181,111, 22, 88, 45, 22,140,123,113, 16, +230, 46, 89, 4, 0,162,216,234,244,250,235,175,255, 4, 23,127, 47,119, 88,181,106,213,180,215, 95,127, 61, 32, 45, 45,109,203, +119,223,125, 23, 50,100,200, 16,140, 31, 63, 30, 31,127,252, 49,164,114, 37, 66,194,203, 57,158, 35, 62, 55, 51, 35, 27, 20,180, +208,173,130,180,251,104, 81, 10, 62, 52, 60, 30, 22,155, 5,130,197, 2,139,197, 2, 34, 41,138,218,214,223, 54, 96,200,179, 99, + 33, 85, 4, 4,127, 58,255, 35,125,173, 70,209,125,222, 29, 57,210,232, 93,158,130, 59,123,236,206, 79, 99, 95,157,208, 73, 20, + 89,235, 86, 44,185,240,201,196, 94, 43, 21,114,222,241, 28,139, 32,128,227, 36,204, 71,235, 33, 34, 44, 44, 12, 25, 25, 25,200, +205,205,133, 70,163, 65, 86, 86, 22,178,179,179,145,155,155, 11, 99,126, 14, 66,109,185, 32,214,108,240, 60,143,244,219, 69, 62, +128,143,137, 53, 11,119,238,220,185, 88,177, 98,197, 85,111,191,253,246,160,137, 19, 39, 74, 5, 65,192,165, 75,151, 0, 66,168, + 84, 38, 7,199,113,144, 74,121,228,229,229, 11,106,191,160, 59,102, 42, 81,255,159,189,171, 14,143,226,120,195,239,236,185,228, +114,113, 39, 33, 88, 18, 18,188, 56, 65, 74,144,162, 45,238, 80,138, 21, 43, 20,135, 98, 45,133, 98,165, 88,145, 82,160, 56,252, +104,241, 34,197, 29,130,135, 32,129,184,187, 93,114,186,243,251,131, 92,122,164,145,187,132,150, 66,247,125,158,125,246,110,118, +247,221,153,217,221,217,119,191,249,230, 27,129, 80, 4,134, 39, 44,109,152,112, 84,235,161,175,194, 59, 48,124, 97,182,113, 36, +160, 80, 40,196,245,253,203,179, 90, 15,253,218, 26, 0,132, 98,105,122,251,246,237, 35,107,214,172,153,123,251,246,109, 47, 20, + 25,117, 88,204,243,169,255,120,232, 52,158, 76, 42,201,109,215,174, 93,148,145, 51,226,244,218,172, 65,159,207, 38,132, 39,202, +237,210,165, 75,100, 64, 64, 64, 46,143,199,195,227, 67, 75,179, 62, 30, 58, 77, 66,254, 28,211,251, 23,156,124, 78, 71,220,223, +127,201,119,209,162, 69,186, 78,157, 58, 69, 27,253,197, 34, 34, 34,220, 58,119,238, 44,254,254,251,239,117,157, 59,119,142,169, + 85,171, 86, 14,195, 48, 8, 14, 14,246, 40,205, 82,101,132, 84, 42,213, 13, 31, 62, 60,234,225,195,135,229, 26,117, 88, 22, 42, + 85,170, 4,150,101,209,166, 77, 27,228,231,231,115,150, 45, 14, 28,222, 67, 20,141,163, 85,106,100,120,157, 94, 55,110,212,196, + 5,107, 1, 98,101,210, 10,252,105, 88,162, 32, 83,166,124, 41, 7, 32, 53,138,173, 73,147, 38,165,151,149, 9, 19,145,245,193, +128, 1, 3, 48,115,230, 76,172, 88,177,194,176,108,217, 50,222,147,103,225,218,161,159,207,203, 40,114, 30, 80,208, 28, 86,199, +142, 43,142, 47, 61, 51,119, 94, 96,231, 37, 11, 98, 19, 85,151,135,142,153, 83,216,122, 25, 0,100, 17, 87, 3, 0,108,248,241, +199, 92,129,216, 90,222,187,223, 32, 0,104,183,118,213,210, 95,191,193, 79,101,139, 45, 74,252,198, 77,154,102,107, 20, 89,235, +190, 95,244, 80, 73, 18,215,140,255, 50, 68,103,122, 30, 0,176, 83,224,215,192,206, 75, 58, 36,165,229,254,192,221,106,255, 12, + 52, 26, 13, 86,175, 94,141, 57,115,230, 32, 45, 45, 13, 41, 41, 41, 72, 79, 79, 47, 92,114,114,114,224,226,226,130,223,127,255, +253, 47,126, 76,239, 58, 94,190,124,185,238,240,225,195,184,112,225, 66,223, 25, 51,102, 8, 92, 92, 92,136, 82,153, 72,116, 90, + 13, 0, 74,147,147,147, 89,153,149, 77,188,131,179, 71, 84, 92, 66,146,159, 78,171, 1,107,208,150,232,109, 94, 16,222, 97,202, +163, 71,143, 42, 47, 95,190, 92, 99, 58, 18,176,223,180,181,171, 27, 52,104, 96,183,102,205, 26, 77,151, 46, 93, 34,141,206,235, +230, 56,195,159,122,129,137,143, 30, 61,240, 47,202,217,122,228,242, 45, 70, 78,211,209,136, 93,191,220,184,165,122,245,234,118, + 1, 1, 1,145,165,241, 86,169, 82, 37,207,213,213, 85,227,235,235,155, 35, 16, 8, 94, 89,178,116, 58, 85,149, 42, 85, 88,103, +103,103, 77,205,154, 53,115, 44,117,218,151, 74,165,212,104, 21, 43, 14,150,140, 58, 20,240,160, 31, 48, 96, 64, 97,100,248, 41, +213,171,199, 15, 26, 52,200,117,242,228,201,216,178,101, 11,174, 92,185,146, 86,244,152, 86,173, 90,225,226,197,139, 11, 0,204, +227,158,110, 14, 28,222, 61,148, 25, 71,171, 40,182,110,221,241, 7, 76,124,154,138,195, 55,223,124, 35, 46,176,100,181,251,226, +139, 47,144,151,151,103, 91,140,186, 11, 50,198,218, 40, 78,100, 45, 93,186,116, 55,165,212, 3, 64, 11,131,129,189,177,249,167, +173,109,204, 80,140,133,156,148, 48, 60,134, 33, 57, 34, 1,189,251,227,166, 45, 59, 77,247, 43,112,126,247, 1,193,253,181,171, +150,230, 1,104, 87, 84,108,245,234,213, 75, 85,148,211,136,209, 99, 70, 23,138,172,181,171,150,158, 14,248,192,243,147, 57,159, +125, 93,172, 56,251,122,222, 40, 57,195,144,102,166, 62, 90,197,113,190, 1,181,204,113, 22, 64, 44, 22, 99,207,158, 61, 8, 12, + 12, 68,157, 58,117,144,150,150,134,156,156, 28,228,228,228, 20, 90,189, 30, 63,126,140,200,200, 72,136,197,226,247,170,236, 5, +211,234,172,118,117,117, 61, 51,119,238,220, 65, 41, 41, 41,157,211,211, 51,236,143,110,253, 26, 29,123,143, 33,173, 58,245,207, +213, 80,190, 36, 38, 62,209,247,252,241, 93,118, 39,246,174,131, 86,163, 25, 69,200,143,161,198,240, 14,197,228, 83,101, 12,227, +224,235,235,155,107, 42, 84, 60, 61, 61,243,221,220,220,212, 1, 1, 1,133,233,197,141,230, 43,174,236,150,114, 22,248,127,229, +150, 85,159, 70,209, 86, 52,108,132, 76, 38,131, 81,124, 89,146, 79,211,209,150,197, 54,148,101,140, 58, 52,229,220,118,135, 10, + 76,183,109, 35,132,183, 99,199,142,160, 29, 59,118,124, 0,224, 46,128, 83, 0,116, 5,199, 21, 58,205, 83, 74,231, 3,152,207, + 61,239, 28,231,127,149,243, 29,183,102,181, 66,129,111, 86, 1, 90, 83, 74, 47,148, 40,180,202,130,209,241, 29, 0, 51,105,210, +164,244,188,188, 60,219, 65,131, 6,149,122, 76, 66, 66,194,150,237,219,183,191, 38,178,122,244,232, 49,236,192,129, 3,103,146, +146,146,202, 85, 48, 91,107,233, 55, 23,142, 76,183,109,213,101,201, 23, 0,150, 21, 47, 51,193, 6,124,224,250,201,218, 85, 75, +127, 45, 34,182,126, 1,208,163,184,250, 2,128,246, 31,117,199,174,173,107,141,190, 93,210,135,183, 99, 79,244,189,179,176,216, +209,138, 54, 86,226,133, 5,249,152, 12,206, 71,235, 31,129,159,159, 31,174, 94,189,138, 49, 99,198,160,109,219,182,232,222,189, + 59, 42, 85,170, 4,177, 88,140, 23, 47, 94,224,210,165, 75,120,249,242, 37, 84, 42, 21,234,212,169,243, 94,214, 65,124,124,252, +147,130, 96,164, 19,141, 95, 83, 98,137, 84,216,255,211, 47, 60, 10, 71, 29,238, 93, 7,117,126, 30, 0,240, 9, 33,203, 8, 33, + 63,151,224, 16,255, 74, 80,240,249,194,123,247,238,121, 25,173, 86, 90,173, 86,108, 76,191,125,251,182,151, 49,182, 86,126,126, +190,217,163, 14,255, 46,206, 7, 15, 30,120, 24, 71, 71, 26, 71, 23,242,249,124, 97,112,112,176,135,145, 83,173, 86,155, 53,234, + 80, 36, 18, 9,239,221,187,231, 97, 48, 24,222,216,168,195, 34,194,248,100,193, 98,108,148,141, 34,203,232,211,193,117, 27,114, +224,240,110,227,124,209, 73,165,141,122,162, 92, 66,203,232,248,110,129,210,227, 87,174, 92,185,125,191,126,253, 94, 19, 89,189, +122,245, 50, 28, 60,120,240,188,171,171,107, 34,195, 48, 79, 44,205, 71,161,143, 22, 32, 40,186,141, 97,152,251, 45, 26,214, 4, +195, 48,247,231,124,246,153,250, 27,252,244,154,216, 58,244,235,190, 14, 37,181,139, 0, 96,239,228,142, 1,195,198, 97,192,176, +113,182, 0,154, 3, 37,143, 86, 44, 45, 31, 28,254, 62, 52,107,214, 12,161,161,161, 56,125,250, 52, 46, 94,188, 8,149, 74, 5, + 66, 8,164, 82, 41, 52, 26, 13,196, 98,241,123, 43,178, 74,130, 86,171,213,207, 88,176,124, 59,143, 47,212,179,172,150,104,181, +218, 79, 45,121,206,103,204,152,193,160, 24,223,171,241,227,199, 23,155,254,182, 56,103,205,154, 85,236, 40,193,241,227,199,151, + 58,122,176, 36,124,249,229,151,111,108,212,161,153,226,139, 19, 84, 28, 56,188,127, 86,173, 98,135,238,149, 75,104, 49, 12,115, +191,152,209,133, 4, 0, 45,110, 68, 31,165, 84,207,227,241, 22,216,216,216,140,202,205,205,253,189, 71,143, 30,147,122,245,234, +101, 0, 94, 57,200,151,183, 80,233,153,185,243, 90,119,253,110,114, 70,142,122, 77,209,109, 69, 45, 79, 70,177,181,238,135,165, +235,127, 61,176,167, 87, 66, 92,204,250,146,202, 86,146,160, 42,105,180, 98,102, 86,222,130,214, 93,191,251, 34, 61, 43,143,243, +209,122, 11,150, 45, 35,138, 78, 42,253, 95, 0,165, 84, 77, 8,153, 74, 8, 49, 90,116,167,190, 60,247,195,250, 63, 31,252,213, + 15, 76,183,149, 98,205,138, 55,103,130,232,226,142, 43,109,219,223,192,153, 88,202, 4,209,165, 33,209, 66,190, 68, 0, 16, 10, +120, 73, 37, 77, 30, 45, 20,240,146,222,208, 53, 52, 6, 56, 92,192, 61,209, 28, 56,188,179,109,177,101, 62, 90, 70, 17, 84, 18, + 74,138,147, 85, 26, 12, 6,195,119, 0,190,123,147, 5,123,248, 44,123, 19,128, 77,230,238, 95,224,147, 53,164, 96, 41, 62,159, +169,143, 44, 46, 91,175, 94,189, 54, 0,216,192,221,106,255, 12,246,239,223,207, 85,194,235, 15,248,122, 66,200,207, 70,225,101, +238,182, 34,251, 29,254, 27,242,245,119,112,158,252, 39,249,142,134,234,157,223,118, 35,205,129, 3,135,127, 63,138,179,102,149, + 58,234,144, 3, 7, 14,239,156,216, 82,151,103, 27, 7, 14, 28, 56,112,120,115, 31, 75,197,249, 90, 18, 0, 65, 37, 28,100,246, +104, 2, 66, 72, 80, 57, 50,117,134,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,255, 22,103, 89,220,166,199, 19, 66, 70, 82, + 74, 55,225, 29, 64,137, 3, 90, 40,165,127,219, 2, 32,136,227,228, 56, 57, 78,142,147,227,228, 56, 57, 78,142,179,156,231, 25, +249, 79,156,231, 13,228,147, 22, 93,140,219,184,174, 67, 14,127, 59, 60, 60, 60,192,178, 44, 24,134, 65, 76, 76, 12, 87, 33, 28, + 56,112,224,192,225,189,130,197,206,240, 28,138, 49, 9,122,125, 60, 7, 44,102,189,250,131,165, 52,234,183,249,239, 91, 25,123, +247,238,205,179,100,255,240,112, 27,230, 14, 92, 87, 88,203,133, 93,115,114,117, 43, 12,193,115,215, 20,183, 31,203,178, 56,114, +228, 8,186,118,237,106, 52,175, 2, 0, 92, 93, 93,113,228,200,145,194,253, 26, 52,104, 80, 24,188,145, 3, 7, 14,127,115,155, +102,235, 95, 9,132,124, 10,208, 63,135, 93,178, 52,132,102, 60,222,250,218,126, 54, 53,135,129, 33,254, 38, 73,121,160,216, 76, +211, 67,162, 75,232, 62, 49,190,112,108,194,194,194,188,170, 85,171, 22, 9, 32,163,200,110,127,217, 70, 75,121,248, 9, 33,196, +161, 74,253,193, 50,137,236,115,141, 70,227,109,165, 80, 36,165,165, 38,111, 72,139,122,176,206,100, 55,235, 27, 55,110,184, 54, +110,220, 56, 14, 64,118, 89,156, 28, 56,188,209,231,233,175, 1, 75,223,156, 51, 60,169,209,211, 27,122,102, 8, 40, 6,130,224, + 30,125,185,191,103,185,120,170,245,112, 7,203,111, 4,160, 62, 64,235,203,165,146,122,121, 26,109, 18, 75,233, 96, 26,182,247, +174,197,124, 85,122, 31, 3,208,169,132,173, 11,232,203,125,150, 9, 37,150,206,190,117,241,160,216, 70, 70, 80,173, 65,143,105, + 48,137,224, 92,129, 11, 35, 5, 48,148, 16,210, 86, 38,147,213, 80,169, 84, 17,148,210, 7, 0,214, 83, 74,227,202,201,201, 0, + 24,110, 37,151,119,244, 82,136,234, 71,165,100,198,102,235, 12,151, 0, 44,163,148,166,191,169,155,234,149,200,114,217,244, 69, +255,198, 67,151, 78, 8,130, 77,235,239,166, 1, 88, 83,218, 49, 12,195,140,112,115,115,243,118,119,119, 15, 95,219,173,238,230, +113,135,239,161,123,247,238, 0, 48,130,101, 89,111,119,119,247,112, 66,200,102,115,219, 70, 66,136, 43, 0, 62,165, 52,186,224, +191, 28, 64, 0,128, 42, 0, 94, 2,120, 68, 41,205,173,224, 53,122, 39, 56, 61, 60, 60,220, 88,150,253,204,217,217,185,115, 98, + 98,226, 49,134, 97,126,138,137,137,137,123,203,109,207, 70,163,127,133,185,107, 0,163, 44, 57,129, 84, 42, 77,204,207,207,119, + 2, 0,137, 68,146,148,151,151,247,183,141, 18,252, 39,207,245,207,188, 25, 48,226,212,229, 71, 29, 77,147,218,183,240, 47,230, +193, 37,254,167, 46,135,180,124,125,191, 0, 67,113,109, 96, 65,244, 85, 44, 88,176,128, 44, 92,184,112, 88,213,170, 85,171, 51, + 12,243,116,238,220,185,175,133,190, 41,186,109,222,188,121,127, 70,110, 45,134,211,195,167,217,161,190,253,122,183, 30, 59,114, +168,149,187,163, 21,226, 83,114,237,127,220,178, 99,249,142, 29,187,186,124,214,183, 93, 71, 0,248,250,235,175, 63,174, 84,169, + 82,101, 30,143, 23,254,213, 87, 95,253, 82, 26, 39, 7, 14,127, 3, 44,155, 84,186,204,231,211,191,183, 28,249,180, 23, 64,134, +182,106,218,160,197,168,193, 93, 9,229, 73,208,127,196,116,189,197, 92,149,135,137,193,203,251,166,118,128,255,164,222, 93,131, +152, 15, 2, 42,195,213, 81, 9, 48, 2,108, 60, 30, 97,191,102,233, 87,235, 1, 52, 46, 71, 54, 59,189,184,182, 27,241, 25, 6, + 16, 2, 16, 2, 48, 4,200,201,103,209,254,227, 33,243, 44, 23, 74,132,177,145, 17, 76,218,157, 15, 0,188, 10,183,113,132,212, +119,116,116, 92, 55, 97,194, 4,219,218,181,107,187, 74, 36, 18, 89, 94, 94, 94,245,176,176, 48,239, 57,115,230,180, 35,132, 44, +161,148, 30,180,144,211,179,154,135,219,190, 53,147,134, 55,170, 83,197, 11, 2, 77, 14, 88,117,110,165,103, 97,207,155,142, 94, +191,127, 4, 33,164, 95,121,166, 76, 72, 73, 73, 33, 0,224,224,224, 64, 95, 23, 89, 77,134,126, 63,185, 61, 38,173, 60, 5, 85, +190,102,103, 73,199,199,197,197, 25, 45, 91,222, 71,142, 28,241,239,218,181, 43, 26,121,123,224, 70,215,100, 52, 60, 20, 3, 0, +133,233, 22,148,117, 33,128, 89, 5,237,240, 46, 30,143,119, 58, 40, 40,200,251,179,207, 62, 35, 13, 26, 52, 64,112,112,112,149, +221,187,119, 7,241,249,252,112,131,193,240, 0,192, 83, 74,169,206, 76,110, 1, 0, 31, 30,143, 87,251,223,204,233,230,230, 38, +213,104, 52, 67, 60, 60, 60, 70,118,235,214,173,118,215,174, 93,137,143,143, 15,158, 60,121,210,224,196,137, 19,243,234,214,173, +251, 32, 38, 38,102,147, 72, 36,218, 30, 23, 23,151,247, 22,190,240, 70, 2,112, 43, 48,112, 44, 48, 99, 29, 7, 96, 1,165, 52, +222,220,115,228,231,231, 59, 25,223,163,132, 16,167,191,179, 60,150,156,139, 16,242,152, 16, 98, 87,240, 27,165,173, 25,134,129, + 94,175,207,213,235,245, 85,203,224,244, 1,192, 88,144,101, 74, 41, 45, 45, 16,180, 20, 0,218, 55,247, 79, 3, 65,136,209,162, + 85,204, 71,102, 72,161, 0,163,240, 63,117, 37,196,238, 53, 43, 88, 17, 44, 88,176,128,204,155, 55, 15,243,231,207,239, 10, 32, +144,101,217, 75,126,126,126,171, 95,163,100,217,194,109,243,230,205,251, 97,193,130, 5, 4, 64,177,130,200,174,114,221, 65,159, +124,210,189,245,162,217,227,173, 98, 83,181,184, 23,158, 7, 59, 43, 33,230, 77, 29, 35, 82,171,117, 77,215,255,178, 99,228,218, + 37,211, 55, 27, 12,134, 15, 1,124, 96, 48, 24,110, 3,248,165, 52, 78, 14, 28,254, 6,180,182,104, 82,233, 18, 30,114,130,170, + 61, 91,194,128,161, 94,149,156,123, 77,248,172,143, 52,192,175, 26,242, 97,133,136, 20, 3,142, 31, 61, 1, 0,123, 45,179, 58, +245,253,128, 47,196,246,165,243,167,250, 6, 54, 10,192,195, 88, 29,110,199, 26,160, 10,215,129,199,232, 96, 96, 41, 64,145, 95, +222, 82,199,164,235,113,249,169, 6, 12, 1,120, 12,192, 48, 4, 60,166,156,100,172,230,217,215, 91,239, 4,164, 36,178, 0,171, +121, 86,193, 23,208,135, 53,106,212, 88,181,112,225, 66,151,196,196, 68,187,219,183,111, 67, 44, 22,195,214,214,150,239,230,230, +230,187,106,213,170,204,241,227,199, 79, 37,132,220,165,148, 70,152,201,233,215,233,131,218, 87, 55, 45,253, 90,169,187,113, 2, + 25,123,254, 7, 30, 67, 33,148, 91,193, 91, 42,197,137, 79,170,217,245, 58, 26,126,144, 16,226, 71, 41,141, 45,139, 47, 52, 52, +148,167, 86,171,251, 89, 91, 91, 55, 17, 8, 4,206, 98, 27, 79, 54,142,223, 40, 53,153, 84,121,153,228,164,106, 57, 57,200,185, +227,138, 47,218, 96,210,202, 83, 88,181,251,250,182,250, 72,152,107, 73, 29,100,220, 58,135,123,233,127,189,180, 46,114,129, 57, +101,181, 5, 48, 93,163,209, 48, 66,161,144, 72, 36,146, 65,139, 22, 45,210,246,239,223,191,208, 1, 44, 48, 48, 16,129,129,129, + 36, 59, 59,187,202,185,115,231,170,236,216,177, 67, 79, 8,121, 76, 41, 61, 84,178,197, 66, 22,149,159,159, 87, 73, 34,149,170, +126, 92,191,126, 69,203,150, 45, 89,211,121, 18,203,195, 9, 0, 54, 54, 54,155,107,212,168, 65,102,206,156, 25,247,166, 56,189, +189,189, 79, 5, 6, 6,182,105,223,190, 61,191,121,243,230,112,115,115, 43,220,230,224,224,128,192,192, 64, 18, 29, 29, 93,231, +210,165, 75,235, 79,157, 58,181,218,219,219,251, 92,120,120,120,251,127,178,213, 41,176, 84,193, 2,225,180,169,152, 64,200,239, +166,177,136, 16,171,141, 27, 55, 58, 25,231,100,212,233,116, 48, 24, 12,133,107,227,194,178, 44, 12, 6, 3, 22, 45, 90,100, 48, +179, 78,115, 81, 16, 28,218,100, 97,139, 91,139, 68, 34,243, 34,247, 18,132,184,138, 51,106,202,229,114, 47, 0,157,106,212,168, + 49,221,116,115,117,199, 87,235,220,220,220,200,120,181, 77, 8,128,150,165,221,238, 11, 23, 46, 28, 50,127,254,252,238,248,115, +206,202,218,189,123,247, 62, 87,100,191,218, 5,235, 92, 66,200,121,134, 97,142, 0,216, 10,224, 47, 86,119,153,204,106,212,132, +207, 63,179,138, 73,209,226,155,131, 41,216,122, 49, 11, 67, 2, 21,152,244,145, 18, 3,250,247,149,239,255,223,129, 81, 0, 54, +155, 28,242,196,207,207,143,132,134,134,114, 34,235,253, 66, 67, 0,142, 38,255, 53, 0,140, 83,102,165, 20, 60, 23,246, 69,210, + 77,247, 51,174,147, 11,210, 29, 11,142,163, 38,188,201, 0,110,149,179,189,187, 80,144,135,191,128, 15, 0,199,142, 29,163,157, + 59,119, 38,198,117,241, 45,123,175,227,195,251,119,235,216,185,109, 51, 48, 18, 91, 60, 75, 2,174, 69, 81,240, 25, 29, 24, 80, +220,184,114,142,130,207,110, 47,114,226, 18,173, 39,196,187,215,151,181,107, 5,124,247,211,210,137,188,199, 73,124,108,189,164, +130, 54, 63, 7,201, 9, 81, 72,138,139, 68,124,204, 75,196, 70,189,124, 0,144,121,230,114,254,181,224,128,129, 45,248, 6,100, + 81, 80,159,197,142,188, 44,155, 83,155, 27, 90,197, 39, 32, 32, 93,100, 0,180,185,161,102, 84,250,153, 18, 26,224,118,213,170, + 85, 91, 54,123,246,108,143, 71,143, 30, 89,231,230,230,230,158, 56,113,226, 66,100,100,164,179,139,139, 75,244,152, 49, 99,154, +185,187,187, 59,125,252,241,199,178,125,251,246,205, 6,240,153, 25,156, 1,221,154,212,187,182,101,245,247,242,212,253,107,160, + 9,187,143,227,241,185,184,146,168,162, 85,148, 98, 50,174,142, 35,172,196,124,124,221,220,205,170,211,175, 97,223, 1, 24, 80, + 26,231,213,171, 87, 93,101, 50,217,202, 1, 3, 6,184, 77,152, 48, 65,100,224,219,240, 15, 92, 75, 85, 78, 95,127,205, 77,165, +214,242,250,183,169,140,201, 3,107, 99,242,170,179, 70,145, 53,210,219, 59,131, 45,142,211,195,195, 99, 4,203,178,222, 5,127, + 43, 27,215,109, 47,103, 47, 54, 57,101, 97, 58, 81, 56, 44,118,115,115, 3,195, 48,225, 49, 49, 49,155,205,189, 70, 18, 73,241, +179,167,216,218,218,162, 85,171, 86,240,243,243,227,183,108,217,178, 54,128, 67, 37,113,106,181, 26, 87,150,165, 80, 40, 20, 82, +123,123,123, 91,133, 66,145,170,213,106, 43,196, 9, 0,118,118,118, 61, 91,181,106,197,223,189,123,119, 74,120,120,248,141,254, +253,251,191,180,182,182,126,205,250, 43,151,203, 81,189,122,117,124,245,213, 87,252,142, 29, 59,150,201,233,236,236,220,110,199, +142, 29, 32,132, 20,190,180,139,194,203,203, 11, 46, 46, 46,232,212,169, 19,191,103,207,158,237,202,251, 28, 89,208,208,156, 41, +198,162,181,224,117, 49, 91,114,247, 91,113,251,155,113,221,147,140,214, 37,137, 68,146, 84,158,124, 22, 65,137,221,157, 98,177, +184,208, 10, 85,244, 92,197,113, 50, 12,131, 57,115,230,128, 16, 2,129, 64, 0,161, 80, 88,236,186,117,235,214,150,230, 51,154, + 16,194, 8,133,194,233,124, 62,255, 51,181, 90,237, 33,145, 72,226, 12, 6,195, 54,181, 90,189,168,192, 34,106, 83,220,189, 91, + 18,167, 92, 46,247,122,246,236, 89,141,146, 42, 69,173, 86,163,118,237,218,128, 26,143, 75,227, 12, 11, 11,243,170, 90,181,170, + 15, 0,227, 20,109, 23, 41,165, 45, 77,254,155,226, 34,165,244,163,130,223, 79, 95,188,120,225,101, 20, 90,166,156, 58,173,214, +219,195,201, 26,247, 34,242,176,245, 98, 22,254,152,237,134,182,139,226,208,163, 62, 31,126,158, 86,208,107,117, 62,189,123,247, +222, 14,192,167,224, 37,249,113,239,222,189,125,121, 60,222, 89, 0,191, 1,200,252,167,238,121,142,179, 98, 40, 67,139, 56, 18, + 66,142,154,156,191,139,241,255,140, 25, 51,102, 45, 94,188,248, 17, 33,228,168,105,186,233,126,166,235,130,246,230, 40,165,180, +203,204,153, 51, 3,150, 44, 89,242,173,113,223,191, 67, 33, 90,210,117,104,157,156, 47,199,165, 40,107,240,121, 6,240, 25, 2, + 62, 15, 0, 37,136,140, 8, 67,118, 86,198,101,250,242,127,225,230, 89,178,122, 55,175, 91,175,246,210, 93,171,166, 49, 63, 95, + 82, 33, 35, 55, 31,161,119,207,227,214,249,223, 18, 12,122,195,111, 32,244, 54,192, 4,227, 37,251,132,210,253,134,242,223, 8, +120,101, 21, 3, 41, 34,182,222,218, 87,238, 71,190,190,190,139,231,204,153,227,117,247,238, 93, 69, 86, 86, 86,242,206,157, 59, +159,168,213,234,187, 0,126,136,138,138,106,245,195, 15, 63,200,150, 47, 95,222,190,118,237,218, 62,251,247,239, 87,153,193, 89, +103,234,208, 1,215, 62,155,240,133,228,241,190,117, 16, 61, 14,198,156,251, 41,134, 63,226, 85,179, 1,172, 66,116, 78,243,228, +124,253,233,239, 91, 85, 98, 42, 43,132,168,102, 35,106, 93,150, 37, 75, 38,147,173,220,177, 99,135, 87,195,134, 13, 25, 0,184, +244, 84, 47,158,190,254,154,219,201,197,205, 73,115,127,123, 36,101,168, 49,113,221, 61,156,184,150,244,123, 81,145,245, 23, 67, + 96, 65,119,161,105,218,145, 35, 71,100, 0,254,226, 12, 98,154, 94, 90, 55, 34,165, 52,157, 16,242,157, 72, 36,154, 67, 8,161, + 13, 27, 54,188, 87,171, 86,173, 28, 91, 91, 91,228,229,229, 65,173, 86, 67, 40, 20, 34, 47, 47, 15,145,145,145,184,113,227, 6, +108,109,109, 45,186, 86, 57, 57, 57, 80, 40, 20, 96, 89,182,194,156, 6,131,129,108,216,176, 65,254,232,209, 35,249,129, 3, 7, +156, 39, 77,154,148, 90,179,102,205,219,125,251,246,125,238,228,228,164,190,127,255, 62,174, 94,189,138,244,244,116, 52,105,210, +196, 44, 78,141, 70, 3, 62,159,143,188,188, 60,136,197, 98,240,249,124,232,245,122,176, 44, 91, 40,190,114,114,114,144,150,150, + 6,161, 80, 8,141, 70,243,143,223,239, 70,139,150, 41, 74,235,126, 43,110,255,178,240,166,253,164, 74,235,238,204,200,200,144, +218,216,216, 76, 55,199, 66, 71, 8, 1,143,199,131, 80, 40, 4, 33, 4, 45, 91,182,196,240,225,195, 81,191,126,125,132,133,133, + 97,207,158, 61,184,117,235, 22, 4, 2, 65,225,254,102,247, 79,180,110,205,147, 72, 36, 87,187,117,235, 22, 48,123,246,108, 73, +229,202,149,241,248,241, 99,207, 37, 75,150, 76, 63,115,230, 76,119, 66,200, 7,148, 82,182,108, 43,125, 65,151,224,171,238,194, + 78,106,181, 26,143, 31, 63,182,228,152,191,160, 90,181,106,145, 12,195, 60,103, 89,246, 18,128,218,148,210,150,132,144, 19, 0, +228, 69,118,205,165,148,126, 68, 8,201, 2,240,128, 97,152,167, 44,203, 70, 22,231, 78,165, 80, 40,146, 99,146,178,156,237,173, + 36, 24,220,194, 10,109, 23,197,161,215, 7, 98,136,133, 4, 79,194, 19, 80,173,106,101,114,239,242,161, 15, 10, 68, 86,195,248, +248,120, 0,248, 0, 64,120,116,116,180,171, 81,104,113,120, 63, 80, 84, 12, 25, 5,212,226,197,139,187, 20, 39,174,138,121, 54, + 95, 75, 95,178,100,201,183, 38,255,211, 43,208,118,180,194,235,206,240,173, 11,172, 92,127, 10,173, 99,199,142,149,174, 64, 88, +244, 56,122,112,247,245,182, 90,226, 21,208,160,133,137,117,136, 34,248,198, 85, 0,116,155, 89,153,113,235, 42,101,100,242,109, + 27,190, 29,207,108, 60,175, 66,116, 92, 18,174, 30,223,134,228,248,136,173, 0,157, 68, 95,238,207,170,112, 99, 89,165,119,128, +147,131, 61,242,181, 20, 44, 5,240, 23,177,245, 86, 68, 86, 87, 31, 31,159,133,215,174, 93,243,202,207,207, 87, 92,185,114, 37, + 99,199,142, 29,207, 53, 26,205, 79,148,210,157, 5,251, 28, 78, 73, 73,249,154, 82, 10,133, 66,193, 23, 8, 4,210,210,156, 57, + 9, 33,245,167,126, 54,228,242,119, 27,182, 72,158, 63,188,135, 31, 14, 28, 71,134, 74,101, 56,159,148,247, 49,165,244,104,193, + 62,103,239,164,228,197, 82,208, 74, 2,134,192, 85, 46,112, 33,132, 72, 40,165,249, 37,124,185,246, 31, 48, 96,128,155, 81,100, + 1, 64, 74,182,142,175, 82,235,120,205,253,237,209,160, 77,111, 4,159,219,143,125, 23, 99, 81,213, 81,118,209, 91,158, 81,106, +141, 50, 12, 19,110, 34,154, 42, 31, 57,114, 68,214,181,107, 87, 21, 0,211, 46,209,191,164, 51, 12, 19, 94,198,195, 54,151, 16, +226,188,125,251,118, 70,167,211,229,132,133,133,193,197,197, 5,206,206,206, 80, 42,149, 8, 13, 13,197, 31,127,252,129, 39, 79, +158,128,101, 89,212,173, 91,215,162,235,149,154,154,138,251,247,239,163, 83,167,206,147,146,147,147,172,109,237,236,115, 47, 95, +186,184,188, 60,156, 44,203, 18, 0, 8, 8, 8, 64, 64, 64,128, 36, 54, 54,214,227,232,209,163, 78,223,124,243, 77,148,151,151, +215,174,188,188,188,215, 44, 7,230, 10,173, 2,225, 82, 40, 2, 37, 18, 9,132, 66, 33,178,178,178,144,152,152,136,236,236,236, + 87,125, 57, 54, 54,111, 69,104, 21,103,161,122,147,251,255,157,226,176, 56, 49, 69, 8, 25, 8, 96,186,153,101,129, 94,175,135, + 80, 40, 68,227,198,141,177,102,205, 26,220,186,117, 11,191,253,246, 27, 60, 61, 61, 49,116,232, 80, 48, 12,131, 71,143, 30, 89, +154, 69,246,218,181,107,211, 63,254,248,227,128,237,219,183, 75, 34, 35, 35,241,228,201, 19,216,216,216, 96,205,154, 53,226,145, + 35, 71, 86, 59,119,238,220, 92, 0,203,202, 44,171,201,232, 66, 55, 55,183, 62,181,107,215,254,203, 62, 46, 46, 46,202,147, 39, + 79, 58, 25, 5, 88,209, 17,137,197, 32, 99,238,220,185,223,251,249,249,173, 42,232, 46, 12, 4, 32,167,148,182, 62,112,224, 0, + 1,128, 94,189,122, 81, 66,136,241,133,244, 96,255,254,253,109, 66, 67, 67,233,252,249,243,139,109,231,146,147,226, 55,124,191, +102,227,247,223, 45,152, 42,154,220, 73,137, 94, 31, 8, 32, 17, 18, 88,203, 4, 88,180,122,179,238,206,141,139,247, 93, 93, 93, +143, 2,248, 56, 62, 62, 30,174,174,174, 57, 0,158,242,120,188,112,131,193, 16,199,249,194,191, 91, 40, 78,139, 20, 88,149,227, +139, 19, 74,229, 17,106,166, 22, 47, 35,102,206,156, 25,176,120,241,226,155, 21, 17, 89,166, 78,240,132, 16, 74, 8,105, 77, 41, +189, 80,248, 50, 45,177,203,176,208,246,197,184,186, 56, 59,216,205, 24,218, 28, 44, 11,232, 13,128,222, 64,145,171,202,195,227, +135,183, 84,144,144, 3,102,229, 72, 44, 90,250,205,236, 47,170,220,139, 97, 16,151,174,197,133, 67, 27,105,114,124, 68, 79,250, +114,223,167,111, 74,100,185, 56, 57,156,223,189,241,107,220,122,169,129,129,125,165,179, 88,150, 22,254,126, 11, 47,156,234, 14, + 14, 14,203,175, 95,191, 94, 89, 44, 22, 43,158, 61,123,102,216,191,127,127,156, 70,163, 89,111, 20, 89, 5, 24,216,160, 65, 3, +157, 92, 46, 71, 78, 78,142, 90,171,213,230,148, 34,178, 60, 90,215,175,115,241,187, 13, 91, 36,249, 26, 13, 50,243,212,224,217, + 59,189, 38,178, 10,208,172, 77, 13,119,119, 34, 81,128, 2,136,200,210,198,149, 36,178, 0, 64, 36, 18, 5, 77,152, 48,193,180, +127, 27, 14, 10,129, 94, 38, 22, 24,174,132,164,176,193,231,246,227,210,163, 20, 86, 34,228, 25, 28,233,203, 42,101,149, 61, 38, + 38,102,115, 92, 92,220,204,184,184,184,153, 38,226, 42, 2,192,204,154, 74,225, 95,210,253,109, 68, 51,227,226,226,102,178, 44, +187,217,140,170,141, 27, 48, 96, 64,140,191,191,127,166,159,159, 95,102,106,106, 42, 66, 66, 66,144,158,158,142, 31,126,248, 1, +143, 31, 63, 6,203,190,210,129,197,117,163,152, 33,144,144,158,158,102, 69, 41, 69,122, 90,170,124,246,236,217,202,242,112, 26, + 12,134,215,158, 45,119,119,119,140, 25, 51, 70,168, 82,169,108,162,162,162,172, 77,183,153,203,169,209,104, 10, 67, 97, 80, 74, +161,209,104,144,153,153, 9,141, 70,131,231,207,159, 23,138,172,130,243,191, 53,139,150,241,183, 84, 42, 77, 52, 58,136, 74, 36, + 18, 16, 66,138,235,126,123, 35,209,159,141,231, 34,132, 80,169, 84,154, 88, 14,113, 88,102,121,204,188,238, 16, 10,133, 24, 62, +124, 56,110,222,188,137,176,176, 48,240,120, 60,228,230,230, 66,165, 82,161, 93,187,118, 16,137, 68,150, 90,180,168, 80, 40, 28, + 56,107,214, 44, 73,120,120, 56, 82, 82, 82,140,206,244, 48, 24, 12,152, 52,105,146, 84, 44, 22, 15,180,212,116, 31, 23, 23,215, +225,217,179,103, 62, 69,151,132,132,132, 76, 83,159,194,242,226,192,129, 3,164, 87,175, 94,180, 87,175, 94,212, 40,184,204, 69, + 70, 76,200,134,223, 14, 31, 61,253,229, 87, 75,115, 84,185,217,168,234, 38, 69, 78,118, 38, 22, 45,254, 78,119,237,218,165,243, +211, 39,141,110,186,127,255,254, 37, 0,158, 22, 28,242,116,255,254,253, 67,190,250,234,171, 95, 80, 16,230,129,195,187,131,226, +180,136,233,179,247, 38,186,247,138,227, 40,232, 62,148,150,147,210, 56,226,176,149, 81,120, 21,136,174,243,175, 89,180, 74,109, +124,170,245,173,231,236, 96,127,110,251,218, 5, 86, 71, 31, 2, 49,209, 17, 72,142,143,196, 7, 77, 91,227,241,195,123, 96,117, +134,131,244,217,254, 50,135,167, 19,239,222, 53,252,106,250,127,222,170,105, 45, 44, 61,154,131,103,193, 39,145,145, 28,191,150, +134,239, 59,248, 38, 46, 16,169,210, 59,192,217,209,225,252, 47,235, 22,218,157, 8, 97, 16, 29, 29,129, 67,191,172,130, 78,251, + 23, 93,113,220,226,198,155,213,136,114, 50, 18,161,201, 54, 64,194,168, 36, 22, 94,212,231,142,142,142,219,191,255,254,251,209, + 77,155, 54,149,245,239,223,255, 89,122,122,250, 55,148,210,125, 38, 13,252,135, 62, 62, 62, 83,214,174, 93, 91, 45, 58, 58, 26, +127,252,241,199, 51, 0,183, 75,225,140,225,241,120,235,255,248,101,243, 84,105, 21, 95,252, 48,235, 75,253,129, 91, 33,221, 40, +165, 39, 76, 56,253,130,106,215, 56,250,205,148,177, 12,123,231,119,220,143, 76,196,203, 76,245, 31, 37,113,166,164,164,144,188, +188,188,202, 54, 54, 54,166,231,129,171, 60, 87, 61,173, 79,141,184,118,211, 47,187,229,107, 13, 16, 11, 24, 58,177,187, 87,220, +141,223,246,217,167,168, 83,136,113, 52,162,165,120,150, 99, 0,159,207,135,147,211,159, 61, 72, 33,233, 22,141,125,176,186,121, +243, 38,195,227,241, 94, 19,232,166, 22, 34, 75, 45, 69,150,192, 92,206,162, 66,203, 8,189, 94, 79,202,203,169, 86,171,139,141, + 57, 86,156,175, 22,203,178,127, 75,249, 45,177, 80,153,118, 25, 26,253,233,242,243,243,157,164, 82,105,162,177,251,239, 77, 89, +180, 42, 50, 18,177,180,238, 75, 75,242,199, 48, 12, 88,150,133, 80, 40, 68,221,186,117,113,244,232, 81,216,217,217,193,218,218, + 26,214,214,214,144, 74,165,176,183,183, 47, 20, 90, 12, 99,246, 40, 29,170, 86,171, 61, 61, 61, 61,241,252,249,115, 72, 36,146, +194, 69, 44, 22, 35, 32, 32, 0,185,185,185,238,111,207,118,255,247, 96, 68,223,160,238,235,118,252, 58,248,232,209, 99,159,107, +213,249,181,124,125,125,232,237,107,231,238, 79,159, 52,186, 35, 39, 77,254, 91, 48, 90,163, 76,125,173,102,204,152, 49,171,188, +124, 51,102,204,152, 85,156,133,171,188,130, 11,175,186,250,140,107, 20, 10, 45,163,130, 44, 78, 73, 26, 69,214,214, 53,243,173, +127,189, 11,196,196,132,227,244,190,213,217, 58,173, 38,157,101,117, 94, 47,159,220, 3, 24,108, 51, 43, 11, 12,109,212,189, 83, + 27,114,250,145, 6, 89, 25,201,120,122,251,100, 4,242, 68, 51,223,164,200,218,190,110,129,221,145,135, 4,209,209, 17, 56,177, +103, 85,166, 78,175,253,144,190,220,127,183, 34,220,131, 68,162,238,125,107,218,116,249, 44, 48, 14, 6, 98,192,192,199,161, 31, +185, 5,146,238,113,151, 74, 31, 25,102,138,228,228,228, 69, 86, 86, 86,204,178,101,203, 62,205,207,207,159, 79, 41, 61, 96,114, +227,180,171, 90,181,234,210, 13, 27, 54,120, 68, 69, 69,137, 46, 95,190,156,118,254,252,121, 10, 96,113, 25, 47,240,105,132, 16, + 94,253,202,238,227,239, 68,196,118,163,148,254,110,194, 25,208,165,129,255,149, 45,139,231, 42,116, 87, 14, 32, 39, 62, 26, 51, +175,196,100, 1, 48,187,190,117, 58, 29,210,211,211,161,203, 73,215,127,224,154,155, 57,191,183,147, 58, 49, 61,159, 47, 96, 85, +122, 63,235, 36,245,185,180, 8,158, 76, 38, 43,119,189, 10, 69, 34,232,116, 58,184,187,187, 23,166,101,101,231,128, 16, 2, 87, + 87,215,178, 30,182,133, 0, 38, 53,107,214,140, 52,110,220,248,198,170, 85,171, 78,149, 38, 86,202, 99,209, 42, 11,230,114,178, + 44,203,148, 80,191,164,188,156,166, 22,173,178,132,214,219,180,104, 21, 39, 90, 76, 69,162,169, 16, 42,143,143,214,223, 41, 14, + 45, 17, 97,197,240, 20, 90,180,238,221,187,135, 74,149, 42, 65,171,213, 66,161, 80, 64,161, 80,192,202,202, 10,217,217,217, 16, + 8, 4,176,176,204,172, 68, 34,137, 10, 9, 9,241,113,116,116,132,193, 96,120, 77,108, 61,123,246, 12,114,185, 60,214, 82,139, +150,155,155,219,201,130, 81,135,175,193,197,197, 69,249, 38,234,213,212,146,213,171, 87,175,114,125,152,173, 91, 60,117, 7,128, + 29,189,123,247,222,254,224,218,177, 15, 92, 93, 93,143,249,249,249, 17, 0,224, 70, 24,190, 95,214,172, 18,122,216,146,139, 88, +162, 52, 38,255,147, 1,144,130,255,201, 38, 66,204,244,183,166,152,180,212,197,139, 23,159, 51,241,239, 74,174, 96, 17,140, 33, + 30, 94,243,133,230,151,101,201,114,178,183, 59,247,211, 15,243,173,247, 5, 3,177,209,225,184,112,112, 77,166,222,160,253, 16, + 44,141,191,118,230,224, 1, 16,168,240,242,192, 5, 96,159, 25, 77, 4,234,215,175,233,133,223, 30,233,144, 28,243, 12,148,178, + 91,105,226, 47,170, 10, 55,142, 5, 34,107,235,154,249,118,191,222, 35,136,137, 14,199,233,125,171, 51,245, 6,237,135,229, 9, +118,106,196,103,132,216,242,228,146,245,131,219, 55,236,227, 85,213, 3, 44,213,129, 21, 82,244,152,230,192,127,122, 71,245,155, +103,123,222, 62, 54,135,253, 60,230,154,121,129, 64,115,114,114,190, 38,132,252, 74, 41,125,108,210, 32,127, 84,173, 90,181,111, +127,252,241,199,202,177,177,177,138, 59,119,238,100,109,218,180, 41,156,101,217,133,148,210, 50, 71, 81, 81, 74,191, 36,132,252, +100, 26, 47,135, 16, 82,103,234,167, 3,174, 13, 24,246,153, 36,252,204, 14,216,134, 63,198,148, 43,113,134,167,233,154,254,148, +210,132,146,184, 28, 28, 28,104,114,114,114, 68, 70, 70,134,143, 92, 46, 71,106,106, 42,210,210,210,144,145,145, 1,117, 86,186, +222,222,144,145, 75,244,105,224,243,249, 72,138,214,195, 96, 48, 36,148,101,205, 42,105,212, 33,128,197,121,121,121, 70,145, 85, +152,110,109,109,189,216,218,218,218,232,163,181,185,132,151,152, 49,188, 3, 41, 8,239,208,228,247,223,127, 15,237,216,177, 99, + 76,113, 98, 69, 44, 22, 35, 63,223,178, 40, 33, 37,141, 98, 44, 15,103, 73, 22,173,162,233,150,112, 26,187, 47,141, 78,240, 69, +211,141,224,241,120, 96, 89,246, 47,233,255,180,104, 49, 29, 29, 88, 30,145,243,154,117,185,140,192,161,229, 25,137,248,166, 45, + 90,198,107, 33, 20, 10,113,248,240, 97, 12, 27, 54, 12, 6,131, 1, 50,153, 12, 86, 86, 86,144,203,229, 56,120,240, 32,140,225, + 31, 44,201,162, 78,167,219,185,120,241,226, 89, 27, 54,108,144, 82, 74, 33, 18,137, 10,133,214,252,249,243,243,180, 90,237, 78, +115,132, 86, 97,196,119,150,134, 84,119, 44,125,212, 97,113,199,148,224,175,101,179,112,225,194, 33, 44,203,118, 71,145, 16, 14, + 69,246,123, 45,244, 67,105,225, 29, 0,216, 46, 92,184,112, 4,203,178,198, 1, 52,175,141, 46, 52,217,207,248, 46,241,233,221, +187,247,246,162,163, 14, 57,188,243,184,245, 47,206, 91,107,147, 64,165,164,160,189, 40, 20, 92,252,146, 69, 86,111, 63, 39,123, +135,115,155, 87,205,183,222,117, 19,136,139,126,137,171,135,215,102, 26, 88,157,169,120,105, 97, 97,203, 91,223,205,201, 6,105, +215,243,144,149, 18, 5, 80,220,169,184,200,234, 91,221,201,193,254,252,150,213,243,237,246,223,101, 16, 27, 21,142,243, 5, 98, +176, 34, 34,107,144, 72,212, 61,160,134,199,150,126, 31, 53,183, 85, 18, 61,244,145,161,248,105,104, 31, 4,119,213,162,121, 95, + 37, 26,117, 82,160, 90, 61, 73,159,227,155,211,218,186, 5,146,207,204,181,110, 21, 17, 89, 93, 43, 87,174,188,224,198,141, 27, + 94, 44,203, 42, 46, 92,184,144,189, 97,195,134,151,249,249,249,171, 41,165,199, 44,120, 57,152,138,172,250, 51, 70, 14,189,252, +237,143, 63, 73, 66,130,111, 97,233,206, 35,200,211,105, 12, 39, 99,114,122,155,118, 43,150, 98, 41, 57,179,122,245,234,202,115, +230,204, 17,165,165,165, 33, 37, 37, 5,233,233,233,133, 75, 78, 78, 14, 92, 92, 92,240,251,239,191,107,179,178,178,174,155,241, +178,121,227,163, 14,139,131, 66,161,128, 80, 40,132, 86,171, 45,180,104,137,197, 98, 40,149, 74,164,166,166, 98,239,222,189, 0, +144, 86,170,133, 77, 40,138,103, 24, 82, 73, 42,147,169, 37, 18, 9, 91,156, 85,205, 82,206, 2,196,124,244,209, 71, 30, 11, 23, + 46,148, 52,104,208,224, 47, 22,173,242,112, 82, 74, 85,237,219,183,151,173, 94,189, 26, 94, 94, 94,208,104, 52,175, 9, 42,134, + 97, 32, 20, 10, 17, 29, 29,141,111,190,249, 6,148, 82,213, 63,221,242,152,138, 22, 83, 49, 84,224, 67,245, 23, 33,100,174,197, +168,172,174, 65, 75, 71, 34,154, 10, 55,177, 88,140,140,140, 12, 41, 33,100, 96, 9, 17,236,205,182,104, 25,133,214,227,199,143, +177,125,251,118,116,234,212, 9,182,182,182, 72, 79, 79,199,190,125,251, 16, 26, 26, 10,145, 72, 4, 66,136, 37, 86, 45,182,113, +227,198,223, 93,186,116,169,107,255,254,253,253,167, 76,153, 34,173, 85,171, 22,158, 62,125,138,133, 11, 23,230, 7, 7, 7,135, +229,229,229, 45,132, 57,129, 77, 11, 34,190, 27,131,145,154, 53,234,176,200, 49, 69, 81, 66,120,135,143, 74, 96, 51, 13,253,240, + 90,120, 7, 83, 92,189,122,213,187,114,229,202,126,120, 53,146,208,248,194, 53, 29, 93,248,218,203, 56, 62, 62,190, 33,184, 81, +135, 28,254,217,182,238, 2, 33,164, 48, 96,169, 81,124,253,101,212,225, 95,143, 36,147,250, 15, 29,105,189,243, 38, 65,116,100, + 24,110, 31, 95, 95, 84,100,153,211,216, 4,153,198,218,144, 72,229,181, 88,242,106, 56,115, 86, 74, 52, 64,121, 22, 11,173,162, +156,160,236,151,253,135,140,180,219,125,155, 32, 46,250, 5,174, 28, 90,103,177,200, 50,229, 28, 36, 18,125, 37,224,145, 57,157, + 91,214, 23,182,168, 87, 3,242,164, 8, 36,196,196, 97,239,227,228,180,176,116,245,103, 87,136, 22,145, 47,212, 63,117, 26, 97, +103,103,235, 34, 64,151,209,246,118,215,143,100,253,230,254, 33,163,165, 90,186, 56,238, 50,157, 95,108, 62,255,122,206,234,214, +214,214,203,130,131,131, 29, 37, 18,137,245,237,219,183, 13, 27, 55,110,140,206,207,207, 95, 78, 41,221, 99, 86,217,255,186,221, +163, 97,141,170, 23,190, 93,183, 89,146,147,171, 66,174, 70, 11,177,179,171,225,215,107, 15,123,150, 20, 0,179, 40,167, 88, 44, +222,189,103,207,158, 78,129,129,129, 94,117,234,212, 97,210,210,210,144,147,147,131,156,156, 28,163,213, 11,143, 31, 63,102, 35, + 35, 35, 99,197, 98,113,153,249,124, 83,163, 14, 77, 57, 77,194, 59,204, 2,192, 16, 66,110,221,187,119, 47,167, 99,199,142,144, + 74,165,200,205,205,133,167,167, 39,244,122, 61,142, 31, 63,142,224,224,224, 92,150,101, 47, 0,184, 87, 90,217,243,242, 84,158, +132, 16, 38, 79,165,170, 59,100,200,144, 86,147, 39, 79,126,109, 72,186,147,147, 19,236,236,236, 44,226, 4,128,180,180,180,154, +191,255,254,251, 23,247,238,221,251,178, 83,167, 78,202, 89,179,102,137,189,189,189, 97, 48, 24,152,242,114,166,167,167, 43,239, +220,185,179,188, 69,139, 22, 99, 59,118,236,200,255,246,219,111,161, 84, 42, 97, 48, 24, 32,149, 74,145,149,149,133,133, 11, 23, +226,242,229,203,122, 74,233,186,204,204,204, 41,150,220, 75,229,180, 96,189,198, 89,146, 5,168, 36, 33, 84,220,254,255, 68, 62, +139, 8, 55,216,216,216, 76, 7, 48,189,132, 8,246, 48,247,217, 52, 10, 45, 30,143,135,136,136, 8,108,220,184,241, 47,113,180, +140,225, 31,138,227, 46,161,236,244,252,249,243, 6, 66, 72,211,219,183,111, 79, 31, 60,120,240,103,185,185,185, 30,114,185, 60, + 78,167,211,109,203,203,203, 51,198,209, 18, 90,210,134,228,230,230, 70, 22, 55,234,176,232, 62,128, 77,169,156, 69,194, 59,188, + 22,194,161,200, 97,175,133,126, 40, 26,222,193,148,179, 89,179,102,225, 12,195, 60, 41,232,130,127,130, 34,163, 11, 77, 56,125, +226,227,227, 27,186,186,186, 94, 0, 32, 43, 58,234,240,159,184,151, 56,206,255,182,216, 66,105, 1, 75,139, 63, 10,146, 51, 55, + 34, 32,146,166,225,254, 31, 91, 45, 22, 89,197, 65,157,175, 10,155,187, 59,170,158, 70,157,143,220,204,196,167, 52,124, 79, 82, +197,175, 54,228,103,110, 69, 66, 34,207,192,221, 51, 63,103, 24, 12,249, 31,210,176,255,221, 43, 63, 29,102,254,120,226,128,144, + 40,237,112,255,139, 97,136,203,200,197,137,151,233,251,168, 74,253,249,142,130,185, 2, 61,154,146, 75, 91,102, 39,172, 15,236, +161,236,227,224, 46,192,202,169,219, 32,153, 97, 47,108,212,182,165,217,115, 32, 26, 29,228,127,248,225,135, 49,129,129,129, 86, +125,250,244,121,150,150,150,246,154,131,124, 57, 46,116, 12, 33,228,199, 99, 27, 86, 76,181,175,221, 4,107,191,154,102,216,125, +237, 97,209, 81,136,165,194,207,207,207,112,245,234,213,201, 99,198,140, 89,217,182,109, 91,247,238,221,187, 11, 43, 85,170, 4, +177, 88,140, 23, 47, 94,224,210,165, 75,218,151, 47, 95,198,170, 84,170,201,117,234,212, 41, 51,198, 89, 76, 76,204,102,145, 72, +132,144,144, 16,180,106,213,106,113,129,197, 42,226,234,213,171, 51,179,178,178,144,149,149,133,126,253,250, 21,166,143, 27, 55, +110,102,213,170, 85,145,150,150, 86, 86, 89,231, 18, 66, 54,224,213, 92,135, 9, 59,118,236,104,122,232,208,161,166,147, 38, 77, + 18,118,234,212, 9,215,175, 95,199,233,211,167,181, 90,173,246, 26,128,107,230, 78,107, 83, 16,127,232, 14, 33,228,225,210,165, + 75,155,242,120,188,194,136,247, 33, 33, 33,216,186,117,107,121, 56,245, 0,150, 19, 66,126,220,177, 99,199,220, 51,103,206,124, + 58,100,200, 16,107,157, 78,135,199,143, 31,227,231,159,127, 46, 47,231, 23,142,142,142,115,142, 31, 63,190,237,212,169, 83, 31, + 15, 26, 52,136,153, 48, 97, 2,214,172, 89,131,255,253,239,127,172,193, 96, 56, 36, 16, 8,134, 36, 39, 39,231,190,165,134,103, + 83,193,180, 58,155, 44,152,243,176, 76,222,138,116, 13,154,153,239,248, 10, 55, 75, 5,229,104,221,186,117,161,149,145, 82,250, +154, 95,157, 81, 96, 89,218,117, 8,192,166,224, 62, 93,135, 87,243,139,154, 70,133,231,225,207,200,241,230, 50,250,199,171,109, + 66,160,198,227,210, 39,149,182, 1, 40,252,203, 96,203,152, 59,119,238,247,243,230,205,251,190,104, 8, 7,211,157,138,134,126, + 88,176, 96, 1, 74, 10,239, 0, 32,125,238,220,185,223, 21,180, 79,164,160,187,240, 3, 20,140, 46, 52,225,220, 94,144, 46,155, + 63,127,254, 96, 0,165,113,114,224,240,143,161, 20, 31, 45, 58, 43,228,210,110, 29, 0,123, 16,102, 38,125,177, 55,164,194, 13, + 24, 75,103,156,221, 53,127, 13, 40,210,169, 65, 63,253,141,148,128,229,205, 14,185,180,139, 5,136, 13, 8, 51,131,190,248, 95, +133,243, 73,148,118,200, 94, 56, 6,255,123, 20, 71, 19,114,117,159,236,208,104, 94,179, 6, 21,248,100,245,117, 11, 36,123,109, +221, 4,191,126,241,161, 61, 57,150, 54,216,226,243, 36, 39, 39,127,107,101,101,197, 91,190,124,249,167,121,121,121,175, 57,200, + 87,224, 37, 49,141, 16,194,107, 84,221,107,252,205,231,145,221,205,233, 46, 44,138,102,205,154,197,135,134,134, 14, 56,125,250, +116,255,139, 23, 47, 6,169, 84,170,202,132, 16, 72,165,210, 8,141, 70,115, 70, 44, 22,239, 54, 71,100,153,190, 80, 76,167,136, + 1,128,172,172, 44,100,103,103,191, 22,134, 0,120,229, 95,149,156,156, 12, 79, 79, 79, 75, 95,136, 23, 9, 33,193, 11, 23, 46, +108,185,112,225,194,186, 5, 86,161,139,229,237, 50, 43, 16, 60, 23,165, 82, 89, 28, 33,196, 67, 40, 18,231, 94,189,122,245, 76, + 5, 57, 85, 5,150,146,149, 43, 87,174, 92, 36,151,203, 27,134,132,132,252, 81, 17,206, 2, 17,213,211,222,222,222,109,251,246, +237,251,183,108,217,210,132,207,231, 95, 39,132,244,206,200,200,120,219,147, 74,143,130,121,115, 28,150,105, 49, 50,199, 34, 86, + 94,252, 29,194,205, 96, 48,228,204,153, 51, 39,169,168,240, 42,106,189, 50,254,215,106,181,249,102, 62, 75,150,140,162, 44, 67, +100,144, 28, 0,120, 53,119,225,171,105,117,204,157, 84, 26, 64,137,115,103,206,155, 55,143, 46, 88,176,128, 48, 12,115, 8,192, + 83,134, 97,158, 23,117, 86, 55,221,182, 96,193, 2,204,155, 55,143,206,159, 95,242, 55,170,145, 51, 52, 52,148,242,120,188, 63, + 0,132,243,120,188, 8, 83, 94,211,116,227, 49,165,113,114,224,240,214,133, 22,125,185, 63, 26,192,176, 55,250,165, 24,190,255, + 12, 94, 57, 50,190, 57,206,136, 61,145, 0, 6,189, 41, 62, 22, 88,246, 89,163,214, 83, 1, 16, 10,172, 44, 42,178, 76, 17,119, +137, 30,114,109, 78, 22, 55,106,219,114, 82,129, 53,236, 91, 75,207, 87,156,131,252, 27, 16, 91,127,113,144,183, 20,126,126,126, + 6, 0, 59, 0,236, 40, 58,169,116, 57, 94, 58,144, 74,165,133,221,136, 12,195,132,103,100,100,192,104,209, 50, 77, 47,168, 19, + 40,149,202,242, 10,153, 19,132,144, 83,148, 82,195,155,168,203,188, 60, 85,165,130, 23, 28,239, 77,113, 22, 12,114,248,236, 77, +114,166,166,166,198, 1,104, 86,173, 90, 53, 81, 88, 88,152,230,223,210,192,188, 9,235,208,223,141, 55, 45,220, 10, 62, 24,106, +254, 13,117,249,244, 13, 19,254,220,190,133, 63, 15,166,177,131,202,154, 84,218, 40,208, 40,126, 46, 33,143,148,188, 82,146, 20, +192,246, 23, 47, 94,120,177, 44, 27, 89,140,101,233,181,109,243,231,207, 71, 73, 49, 3,139,112, 2,192,111,209,209,209,110, 6, +131, 33,190, 8,239,107,233,165,113,114,224,240, 47,177,104,253, 55,177, 83,163,153, 7, 96,158,185,251,199, 95,161,179, 1,204, +174, 96, 3,250,248, 77,151,163, 60, 34,107,255,254,253,134,191,163, 78,117,186, 87,189, 97,166,115, 23,154, 98,240,224,193,155, +223,112,217, 13,127, 67,125,190, 19,156,255, 38,145,197,225,223, 13,154, 30, 18, 13,224,171, 50,247, 43, 59, 26,252, 95,132, 81, +193,207,116, 0,233, 37,104,157,210,182,149,198, 9, 0, 89, 0,178,138, 57,182,164,116, 14, 28,222, 42, 24,174, 10, 56,112,224, +192,129, 3, 7, 14, 28,254, 30, 16, 0, 65, 37,124, 65,152, 61,154,128, 16, 18, 84,142,175,249, 51, 28, 39,199,201,113,114,156, + 28, 39,199,201,113,254,183, 56,203,226, 46, 58,122,249, 77, 77,207,245,143,138, 43,211,124, 27, 71,194,252, 29, 11,128, 32,142, +147,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,114,158,103,228, 63,113,158,191,115,225,124,180, 56,112,224,192,129, 3,135, +119, 8,237,124,136, 43,223, 0,230, 68, 24,141,125, 19,124, 31, 85, 35,238, 0,240,166,248,254,139, 32,132,184, 2,232,108,146, +116,204, 56, 24,136, 19, 90,239,238, 69,173, 14, 96, 22, 0,165, 73,242, 77, 74,233,226, 34,251,237, 2, 96, 58, 33, 97, 46,128, +133,148,210,231,150,156,143,199,227, 45,110,217,178,229,231,151, 47, 95, 94,161,211,233, 22,150, 35,191, 94,174,174,174,223, 17, + 66, 26, 0, 16, 16, 66, 94, 36, 38, 38, 46,214,233,116,103, 42, 80, 7, 85, 92, 92, 92,150, 0,168,199, 48,140,128, 16, 18,150, +152,152,248,141, 78,167, 59, 95, 1, 78,133,179,179,115,115, 74,169, 11, 0,158, 64, 32, 72,141,141,141,189, 81,222,209,115,189, + 23,132, 10,179,114,245, 2, 0,176,150,243,117,251,231,249,105,205, 77,227,238,114, 14, 28,254,243, 13, 61,175,104, 82,135,170, + 88, 68, 40,166, 24, 0,210,161, 10, 89,125, 50, 28, 83, 74, 60,190,184, 1, 55, 69, 56, 59, 84,197, 34, 74, 95,113,116,168, 70, +150,159,124, 81,198,224, 46, 51, 56,141,216, 4, 48, 35,205,153,224,252,111, 24, 24,244, 22,208,217,180,139,179, 32, 0,243,166, + 50,133, 86, 63, 31,226,106,224,131,191, 63,132, 70, 27, 95, 66, 0,234, 2,168, 14,224, 57,128,123,148,210,236, 10, 10,134,119, +130,243, 95,136,185,148,210, 1, 69,202,253,151,157, 62,252,240,195,110,167, 78,157,146, 25,167,103, 97, 89, 22, 82,169, 84, 15, + 96,168, 5,245,233,212,191,127,255, 25, 63,253,244, 19,250,244,233, 51,135, 16,242, 61,165, 52,199,220,227,237,236,236,122, 85, +169, 82,101,205,230,205,155, 29,155, 52,105, 74, 68, 34, 17, 94,188, 8,243, 24, 53,106, 84, 45,103,103,231, 67,137,137,137,159, + 89, 90,120,123,123,251,129, 85,171, 86, 93,185,113,227, 70,135, 22, 45, 90,128, 16,130,224,224, 96,143, 47,190,248,162,174,139, +139,203,158,132,132,132,177,150,114, 58, 56, 56,212,168, 90,181,106,155,181,107,215, 74,155, 55,111, 14,137, 68,130,123,247,238, + 89,141, 30, 61,218,197,197,197,229,113, 66, 66,194, 5, 75, 69,214,131,224, 35, 31,235,181,234,165, 0,192, 23,138,167, 53,253, + 62,235, 72, 90,240,197,174,101,165,245, 94,128,223, 56,177,197,129, 3, 7, 83, 12,116,131, 11,165,152,122,234,231,175, 24, 0, +104,255,233,215, 19, 6,186, 97,197,206, 56, 36,188, 33,190, 41, 67,220,177,102,123, 44, 18, 43,146,207, 77, 0,243, 5,159, 63, +161, 81,227,198, 14,227,174, 92, 9,211, 2,219,254, 35, 6,144,145,197,165,151, 40,180,122,249,147,133,224, 99, 22, 0,242, 81, +117,178,231,116, 56,239, 82,187,118,237,170, 13, 31, 62,156,212,175, 95, 31,193,193,193, 53,246,236,217,211,153,207,231,135, 25, + 12,134, 96, 0,143,204,141,106, 77, 8, 17, 0, 8,224,241,120, 13,254,205,156,255,114,200, 11,202,157, 8,224,166,209,162, 85, +116,167,179,103,207, 30,230,243,249, 70,139, 86,163,220,220, 92,231, 34, 86, 48,115, 80, 89,167,211,225,201,147, 39, 96, 24, 70, + 0,192, 27,127,157, 82,163,164,235,226,225,225,225,177,254,218,205, 96,123,194,151, 34, 61, 31, 64,190, 22, 34, 43,103,252,180, +117,135,221,228,137, 99,123, 90, 91, 91, 95,202,202,202,250,197,130,155,217,219,211,211,243,251,251,247,239,219,203,100, 50,176, + 44,139,236,236,108,184,184,184, 96,243,230,205, 54,147, 39, 79, 30, 32,149, 74,207,231,229,229,253,207, 18,113, 94,181,106,213, + 54, 15, 31, 62,148, 26, 39,148,214,104, 52,240,240,240,192,174, 93,187,196, 19, 38, 76,168, 41, 22,139, 99,212,106,245, 75,115, + 57,179,114,245, 2,189, 86,189,116,251,186,249,149, 0, 96,200,216,249, 75, 69,217,214,199,205, 73,203,202,213, 31, 3,192, 9, + 45, 14,255,244,139,162,129,131,131,195,129,148,148,148, 11, 0, 62,123, 19, 33, 72, 8, 33,110,124, 62,223,155, 82,106, 83,240, + 63, 67,175,215,135, 83, 74,203, 29, 80,215,161, 90,155,174, 16,203,134,129,178,117, 25, 0,132, 97,238, 25,180,170,173, 41, 79, +207, 29,169, 16,167, 72,250, 41, 64,235, 50, 0, 75, 24,230, 62,171, 87,109, 78, 14, 61,119,226,223,114,125,174,103,194,167,170, +139,249, 19, 99,190, 9,190,126, 85,224,202,176, 96,118, 69,192,236,110,197,241, 64,167,137, 19, 39,186,140,253,252,115, 50,108, +232,208,234, 23, 46, 95, 38,173, 44,153,173,224, 29, 68,105, 14,251,197, 10,173,222,254,196, 22,192,244, 61,107,102, 49,124, 30, +143,244,159,184,120,192,150,117,203,153,118, 93,123, 23,118,159, 4, 6, 6, 34, 48, 48,144, 44, 93,186,180,250, 31,127,252, 81, +125,215,174, 93,122, 66,200,125, 74,233,222,146, 78,214,177, 26,201, 99, 1, 73,103, 95,126,110,255,175,126,217,216,184,113, 99, +136,197, 98, 84,132, 19, 0,218, 87,231,189,236,212,184,218,253,254,227,231, 70, 54,105,210,140,190, 9,206,119, 8, 55, 41,165, +221, 11, 26, 48, 91, 79, 79,207,230,122,189, 94, 2, 0,124, 62, 63, 31,192,120, 90, 48,117, 16, 33,228, 16,203,178,221, 44,104, + 32, 25, 0,243,186,117,235, 54,103,220,184,113,240,244,244,196,132, 9, 19,160,211,233,130, 9, 33,115, 1, 44, 41, 43, 32,160, +147,147,211,220,245,235,215,219,241, 69,114,212,159, 30,142,248, 12, 61, 0,192, 74, 12, 28, 30, 67, 49, 97,194, 4,235,219,183, +111,127, 3,192,108,161,229,228,228,180,112,243,230,205,118, 50,153, 12,148, 82,228,228,228, 32, 59, 59,187,112, 78,198,177, 99, +199, 90, 63,126,252,248, 59, 0,102, 11, 45,103,103,231,230,107,215,174,149, 74, 36, 18,228,228,228, 8,181, 90, 45,201,206,206, +134, 74,165,162, 26,141, 70, 59,126,252,120,241,163, 71,143, 90, 3,120, 9, 14,255, 22, 81,192, 3,240,137, 64, 32,232, 81,173, + 90,181, 15,158, 63,127,126, 87,175,215, 31, 4,112,176,162, 31, 83,132,144,182,110,110,110,139,226,226,226,214, 82, 74,119,252, + 87,234,212,217,217,249,224,213,171, 87, 43,173, 95,191,126,232,138, 21, 43,142, 91,242, 12,149,240,241,219,180, 81,163, 70, 14, + 61,122,244, 16,184,184,184, 64,165, 82, 33, 44, 44, 76,118,230,204, 25, 71,137, 68,146,170, 86,171,175, 89,114,173, 28,124,154, + 91,129,111,189,167,105,155,160, 22,125,122,126,162,112,182, 87, 34, 79, 99,192,243,200,120,207,223,143, 31,110,229, 86,171,243, + 85,173, 54,179, 95,202,211, 43, 57,150,114,182,233,216,165, 69, 80,219,182, 10,165,141, 18,153,185, 90,188,136,136,245, 58,119, +250, 72,160,107,173,206, 23, 89,162, 27,148,248,224,148,234,109, 94,155, 9, 0, 63, 87, 98, 95,167,110,179,250,183,219, 15,255, +230, 3, 74, 41, 24,138,213, 69,173, 89, 19, 0,254,106, 64,111, 41, 31, 40,165,132, 96,185,169, 53,171,176, 91,145, 1,233,224, +141,210,187, 41,141,239, 99, 64,108, 99,103,215,120,244,200,145, 36, 59, 43, 11,247,238,221, 83, 21, 21, 89,223,187, 67,120,145, + 65,229, 67,209,120,246, 62, 89,179,138,118, 29, 26,255,155, 29, 71, 75, 38,147, 21,155,174, 84, 42,209,166, 77, 27, 44, 94,188, +152, 15,160, 65, 17,133,247,250, 36,171,128,248,232,134,153, 80,202,197,140,167,167,167,194,218,218,186,194,156,175, 18, 89,239, +102,158,244,163, 91,191,204, 26,122,102,215,202,128,220,236, 12, 65,209, 93,172,172,172,224,227,227,131, 57,115,230,152,199, 89, +113,117,251,143,114,186,186,186,250, 6, 6, 6, 54, 56,123,225,130, 77, 92, 92,156, 56, 46, 46, 78,124,234,236, 89,155,166, 77, +155, 54,112,117,117,245, 53,225,176, 36,159, 95,175, 91,183,110,238,161, 67,135,152,192,192, 64,216,218,218,162, 77,155, 54, 56, +126,252, 56,127,197,138, 21,223, 2,152, 83, 86, 62, 25,134,105, 17, 24, 24, 72, 64, 41, 18, 50,245,184,177,216, 23,247,150,251, + 33, 59,159, 34, 45, 51, 11,121,121,249,144,201,100,146,130,238, 94,115,203,222,172,105,211,166, 4, 64,161,184,202,206,126,181, +228,228,228, 66,163,209, 66, 44, 22, 43, 8, 33, 18,115, 57, 41,165, 46,205,155, 55, 7, 0,104,181,218,194, 47,188,140,140, 12, +146,153,153, 9,141, 70, 3,129, 64, 32, 36,132,240,205,229,180,150,243,117,124,161,120,218,144,177,243,163,135,140,157, 31,205, + 23,138,167,105, 20, 89, 6,115,210,172,229,124,221,219,188, 63, 9, 33,142, 60, 30,239,231,106,213,170, 61,230,241,120,219, 9, + 33, 46, 21,225, 36,132, 52, 36,132,124, 43,147,201,206,212,172, 89, 51, 90, 46,151,159, 37,132, 44, 33,132, 52, 45, 15, 39, 33, + 68, 36,147,201,206,126,251,237,183,251,239,222,189,219,231,143, 63,254,240,126,240,224, 65,207,165, 75,151,238,177,178,178,186, + 68, 8,145, 85,228,217,244,246,246,222,114,227,198,141,134,205,154, 53,251,137, 16, 34,126, 19,207, 59, 33,132, 71, 8,169, 71, +204,156,107,232,159,190,238,132, 16,183,250,245,235, 87,146, 72, 36, 8, 10, 10, 2,128,214, 21,228,108, 58,122,244,104,151,201, +147, 39, 11,238,221,187,135,159,126,250, 9,135, 14, 29, 66, 82, 82, 18,186,116,233, 34,252,240,195, 15, 93,196, 98,113, 83,139, + 56,249,214,123, 38,126, 49,169,227,212, 9, 35, 20,247,163,180,216,122, 38, 10,191, 93,139, 71,146, 74,132,174, 61,135, 40, 59, +116,239,219, 65, 36, 86,238,177,148,115,198,244,233, 29, 71,126, 58, 64, 17, 18,207,226,240,245, 4, 92,127,146, 9,189,192, 6, +157,122,126,102, 91,183,121,199,206,124, 8,182,189,237,107,180, 25,104, 50,113,226, 68,199,105,203,119, 94,113,107,248,201,234, +228,116, 4,154, 10,159, 26,128,141,157, 92,254,201,147, 86,173, 70, 72, 95,205,249, 88, 42,231,107,124, 13,186,175, 73, 74, 71, + 75, 83,255,172,150,118,168, 94,208,173,200, 59,245,243, 87, 12, 37,152, 48,208, 13, 46,101,229,243, 60,208,103,226,164, 73, 2, +165,173, 45,214,173, 91, 7,117,110,238,107, 62,179,109, 43,161,227, 25, 25, 63,166,138,159,199,227, 54, 94,228,210,123,248, 1, + 56,178, 68,139,214,177, 99,199,104,231,206,157, 9, 0,236, 15,161,233,189,252,201,119,125,199,125, 59,135, 48,132, 86, 14,104, + 22,226, 94,213, 63,215,222,222, 30, 42,149, 10,106,181, 26, 66,161, 16,249,249,249,136,138,138,194,245,235,215, 97,107,107,107, + 81,102,178,178,178, 96,101,101, 5, 43, 43,171, 55,194, 57,115,104,144,248, 69,116,178,248,228,245,243,173,126,248,252,127, 77, +170,214,107,253,160,109,223, 9, 15,173, 29,221,242, 31, 60,120,128,171, 87,175, 34, 61, 61, 29,141, 27, 55,126, 95,174,231,205, +130,246,250, 38, 33,196, 54, 48, 48,208,227,228,153,139,182, 57,249,172,117, 68,162, 78,192,178, 44,100, 50, 87,253,222, 3,135, + 51,251,244,236, 74, 8, 33, 73, 0,110, 22,136,219,155,101,220, 40, 18, 0,190,189,122,245,154,241,249,231,159, 35, 44, 44, 12, + 35, 70,140,200,187,121,243,102,106,179,102,205,236, 55,111,222, 44,157, 60,121, 50, 46, 92,184, 48,143, 16,242, 43,128,112, 74, +105,126, 9,141,134, 80, 40, 20, 66, 95, 32, 27,180, 6,182, 80,223,103,101,101,129,230,165, 67, 40, 20,242, 0, 56, 2, 48,203, +143,142,101, 89,161, 64, 32, 40, 20, 89, 81,137, 89,136, 74, 82, 33, 43, 71,131,188, 60, 61, 52,121, 20, 60,153, 61, 31,136,112, + 6, 16, 97,102,125,242, 36, 18, 9,244,122,125,225,252,139, 70, 75,153, 70,163, 65,102,102, 38,120, 60,158, 21, 0,107, 0,105, +230, 16,190,114,114,199,111, 5,221,128,184,181,179,155,195,243, 99, 51,181,189,230, 63, 46, 76,179,150,243,117, 7, 38,215,228, +217,123,212,189, 92,175,207, 54, 63, 99,218,219,244,207, 34,132,136, 29, 29, 29,207,237,223,191,191,102,245,234,213, 17, 30, 30, +238,215,187,119,239,198,132,144,122,150,206,201, 72, 8,145, 49, 12,243,221,176, 97,195, 62,239,223,191, 63,169, 81,163, 6,248, +124, 62,244,122,189, 71, 88, 88, 88,155,125,251,246, 77,231,243,249,155, 13, 6,195,151,230,250,253, 17, 66, 24,145, 72,180,119, +227,198,141, 45, 27, 55,110,140,237,219,183,227,230,205,155,108,195,134, 13,153,193,131, 7,195,203,203,171,241,224,193,131,127, + 35,132,116, 42,143,101,139, 16,226, 53,112,224,192, 74, 60, 30, 15,205,154, 53, 19, 94,189,122,181, 62,128,171, 21,172, 83, 43, + 15, 15,143, 11,173, 91,183,174,119,230,204,153, 59,132,144,214,150,248, 57, 18, 66,186,187,185,185, 45, 85, 42,149,182, 22,180, +177,170,216,216,216, 41, 22,204,161,218,164, 65,131, 6,136,140,140,132,175,175, 47,132, 66, 97, 83, 66,200, 40, 0, 29, 1,204, +182,100, 6, 11, 66,136, 91,211,166, 77, 29, 90,183,110, 77,150, 44, 89, 2, 0, 16, 8, 4, 48, 24, 12, 96, 24, 6, 2,129, 0, +126,126,126,228,229,203,151,118,132, 16, 55,115,186, 17, 29,170,181,233,218,172,109,199, 22, 45, 27,215, 97, 86, 28,120, 14, 3, +107, 0,143,232,193, 39, 44, 88,157, 24, 98, 33, 15, 53, 2, 62,224, 61,121,116,191,177,131, 79,187,174, 41, 79, 79, 31, 49,135, +179, 99,215,110,129, 53,125,107, 48, 63,252,246, 2, 25,177,143, 13,177,161, 23, 83, 24, 30,131,154, 13, 62,116,168,225, 95,143, + 87,175,113,107, 65, 92,248,163, 54,118,213, 91, 5,165, 61,191,112,230,109, 60,147, 11, 0,158,135,187,195, 39, 93,218,181, 22, +198,199,197,229,238, 59,112,228,161, 74,135,235, 0,112, 1, 32,157,128, 58,181, 27, 53,106,181,121,201, 18,123, 87, 87, 87,193, +160,254,253,245,155,238,220,185, 51, 18, 48,148,196,231,224,226, 18, 52,122,244,104, 94,124, 92, 28,221,119,240,216, 3, 35, 31, + 0,200,128,218,117, 60,252,186, 32,247,137, 69,221,148, 93, 1,145,179,139, 75,205, 81,163, 70, 33, 33, 46, 14,219,119,236,200, +201, 7,174, 25,173, 88,135,121, 88,235, 95,213,101,216,180,207,186,145, 74,174, 14, 24, 61,111, 83,211, 54,218,164,170,231,240, +167,101,203, 84,139,188,171, 34,171,168,216, 42,241,235,252, 64, 8,157,107, 45, 34,222,251,246,237,102,146,179,181,185, 97, 97, + 97,112,112,112,128,171,171, 43,148, 74, 37, 66, 66, 66,112,246,236, 89, 60,125,250, 20, 44,203,162,110,221,186, 22,101, 40, 37, + 37, 5,247,239,223,135,173,173,237, 27,227,172, 90,201, 17,227, 42, 57, 10, 19, 83,179,132,103,110, 62,109,188,105,102, 79,127, +198,175,231,150,252,252, 63, 53,128, 70,243,126,204, 80, 98, 58,186,208,211,211,179,249,214,173, 91,133,106, 61, 20, 53, 70, 93, + 91,150,155,111,144, 3,128, 92,194,203, 13, 94,234,243,229,215, 95,127,157,251,233,167,159,250, 69, 69, 69, 45, 46,139, 87, 36, + 18, 45,250,232,163,143,166, 82, 74, 5, 19, 39, 78, 4, 0, 12, 25, 50, 36,235,250,245,235, 53, 40,165, 73,132, 16,183,225,195, +135, 63, 59,119,238,156,108,210,164, 73, 60,189, 94, 31,194,231,243, 41, 33,100, 33,165,116,126, 81, 62,134, 97,110,223,185,115, +167,178,155,151, 15,188,236, 25, 4,206,121, 53, 93,155,189,140, 69, 76,196, 11,132, 62,184, 9, 23, 23, 23,165,171,171,235, 99, + 95, 95, 95,109,108,108,236,244,156,156,156,245,165,229, 81, 40, 20,222, 11, 14, 14,118,245,242,242, 66, 78, 78, 14, 98,146, 85, +152,112, 80,134,172,188, 87, 70, 12, 1,242, 80,175,146,143, 66,202,104,110, 58, 59, 59,107, 53, 26,205, 87, 25, 25, 25,165, 78, + 35, 34, 16, 8, 82, 31, 60,120, 96,229,233,233,137,252,252,124,154,150,150, 70,114,115,115,145,157,157, 77,142, 29, 59,246,113, +124,124,124, 67,111,111,111,226,225,225,177,176,122,245,234,121,177,177,177, 35,204,241, 1,219, 63,207, 79, 75, 8, 49,240,249, +252, 21, 35, 71,142,236,243,235,175,191,222, 62, 48,191,102,119, 74,169,182,224,129, 84, 6, 4, 4,156,172, 83,199,223,109,199, +242,218,171, 41,165,203,254, 5,183,215,176, 89,179,102,213,180,179,179,195,232,209,163,177, 96,193, 2,204,157, 59,183,250,232, +209,163, 71, 2,248,222,130, 70, 71,234,226,226,114,235,135, 31,126,240,107,222,188, 57,142, 31, 63,142,221,187,119,227,229,203, +151,122,111,111,111,126,227,198,141, 49,111,222, 60,116,232,208, 97,196,248,241,227, 91, 17, 66,234,155, 41, 62, 62,157, 55,111, + 94,247, 22, 45, 90, 96,232,208,161,234,243,231,207,247, 1,112,234,244,233,211, 31, 94,184,112,225,192,206,157, 59,165,223,126, +251,109,208,228,201,147, 71, 3, 88, 83,142,242,127,220,178,229,171, 57,148, 91,180,104,129,165, 75,151,118,168,136,208, 34,132, +136,236,237,237,143,109,223,190,189,158,143,143, 15, 6, 13, 26, 84,191, 79,159, 62,199, 8, 33,237, 40,165,102, 53, 72,238,238, +238,223, 29, 58,116,168, 90, 73, 61, 11,197, 65,173, 86,219,125,242,201, 39, 75, 0, 88, 36,180,118,237,218,133, 41, 83,166,160, +110,221,186,117,154, 52,105,178, 97,212,168, 81,232,213,171, 87, 91, 66,136, 51,165, 52,215, 28, 34, 62,159,239,221,165, 75, 23, +193,193,131, 7, 95, 89, 71, 90,182, 68, 80, 80, 16, 30, 62,124,136,203,151, 47,131,199,227, 65, 46,151,163,121,243,230,162,184, +184, 56,111, 0,101, 10, 45, 70, 44, 27,214,189, 75, 39,197,225,235,241, 48,176,122,124, 80,205, 26,141,253,156,240, 36, 38, 11, +193,143, 99, 96,208, 8, 97,109,103,143,166,173,218,219, 37,196,190, 28, 6,160,108,127, 45,177,108, 88,143,238,157,173, 14, 95, +139, 67, 70, 92, 40,125,126,243,215,179,186,252,220, 17, 0,112,251,143, 61, 27, 92,236,165,237,106, 52,248,128,215,186, 93, 55, +219,131,187, 19,134, 1,120, 43, 66,235, 66, 37,108,244, 18,164, 12,153, 54, 32,144, 10,108, 61,110, 42,116,186,181,198,109, 29, +128,246,211,103,205,106,242,217,200,145, 18,150,101,177,243,151, 95,178,238,223,185,243,164,180,209,126,107, 1,175, 62,221,187, +139, 21,214,214,248, 98,194, 4, 40,116,186,115,133, 85, 2,180,253, 98,234,212,230, 99,199,142,149,110, 88,248,249,237, 14,195, +191,105,192, 82, 74,138,235,166, 44,138, 51, 64,195,225,221,187, 67, 97,109,141,137, 19, 39,130,104,181, 39,141,219,142,242,113, +238,211,143, 3, 27, 15,232,218, 2, 4, 4,187,143, 94,198,243,200,228, 7,231,226,241,226, 61,121, 39, 91,230,163,101, 68,182, + 22,137,109, 59,247,196,157, 59,119, 0, 0,169,169,169, 72, 77, 77, 69,181,106,213,176,102,205,235,237, 87,121, 4, 12,203,178, +111,156, 19, 0,156,237,173, 49,168, 83, 35,254,229,251,187, 37,185,201,201, 18, 43, 43,171,252,247, 77,104,153, 66,175,215, 75, +188,189,189,145,149, 7,146,169,210, 89,165,236,121,101,241,119,232,119,222, 74,163,209, 48, 86, 86, 86, 80,171,213, 18, 51, 94, + 8,130,238,221,187, 79,221,187,119,175, 32, 52, 52, 20, 85,171, 86,133, 86,171,197,245,235,215, 99, 10, 38, 66, 6,165, 52,142, +199,227,197,177, 44, 91,189,110,221,186, 88,188,120, 49,252,252,252, 72,167, 78,157,166, 23,136,173,215, 30,238,248,248,248,239, + 70,141, 26,245,225,190, 3,191,218,109,236,155,135,172,204, 44,228,228,228,224,222,221,219, 72, 75,204,199,166, 77,155, 32,145, + 72, 9, 0, 97, 82, 82,162,112,210,164, 73,171, 61, 60, 60, 58,198,196,196,116, 41, 41,159,113,113,113,139,198,142, 29,219,116, +207,158, 61, 54,217,217,217,200,203,203, 71, 90,174, 12,143, 87,189,154,199,183,230, 23,143,177,110,237,122,166,118,101,185,131, + 74,165,194,231,159,127,190,210,205,205,173,121, 92, 92,220,240,146, 56, 99, 99, 99,111,140, 27, 55,206,121,231,206,157, 18,141, + 70,163, 53, 24, 12,200,203,203, 99,246,236,217, 51,189,114,229,202,182,155, 55,111, 38, 18,137,180, 96,223, 24,225,152, 49, 99, +246,186,184,184,236, 76, 72, 72, 24, 90, 86,119, 17,143,199, 91,181, 99,199,142,193,125,251,246, 85,196,199,199,251, 31, 58,116, + 72, 12, 32,175, 96, 23,215,118,237,218, 85, 94,190,124,185, 99, 64, 64,192,116, 66,136,128, 82,250,237,219,188,159, 28, 28, 28, +198,119,239,222, 29, 75,150, 44,193,145, 35, 71, 38,219,217,217,173, 92,176, 96, 1,220,220,220,198, 17, 66, 86, 89, 48, 81,239, +178,239,191,255,222,207,207,207, 15, 67,134, 12,209,156, 57,115,102, 22,128,223, 0, 68, 94,186,116,201,115,219,182,109, 93,247, +238,221,187,228,135, 31,126,144,172, 89,179,166, 90,207,158, 61, 87, 1, 24, 94,230,243,237,236, 60,169,127,255,254, 88,190,124, + 57,206,159, 63,223,147, 82,122,188, 96,211, 9, 66, 72,215,111,191,253,246,143, 57,115,230,224,251,239,191,159,104,169,208, 34, +132, 88,213,172, 89,243,171,142, 29, 59,226,210,165, 75, 8, 12, 12, 68,211,166, 77, 39, 19, 66, 86, 83, 74, 83,202, 33,178, 24, + 43, 43,171,189, 91,183,110, 13,172, 92,185, 50,190,249,230, 27, 76,157, 58, 21, 91,182,108, 9, 28, 52,104,208, 94, 66, 72,143, +162,207, 76,113, 80, 42,149, 86, 50,153, 12,211,167, 79,167, 47, 95,190, 76, 47,107,255, 74,149, 42,217,174, 92,185,146,216,218, +218, 42,205, 21,197, 18,137,164, 89,173, 90,181, 48,111,222, 60,156, 62,125, 26,115,230,204, 65,173, 90,181, 16, 25, 25,137,126, +253,250,201,102,207,158,221, 11,192, 86, 51, 95, 58, 74,123,123,123, 36, 37, 37, 65, 32, 16,160,121,243,230,248,237,183,223,160, + 86,171,225,228,228,132,140,140, 12, 52,106,212,200, 40,202,148,102,190,202,106, 57,216, 41,145,244, 40, 22,124,232,209,160,134, + 3,206, 61, 76,133, 86,199,194,201,222, 6, 9, 73,137,104, 82,203, 3, 26,141, 39, 40,101,107,153,195, 40,226, 49, 13,196, 18, + 41,210,178, 83, 16,251,248,124,170,214,160, 30,149,241,242,114, 52, 0,216, 85,109, 57,234,246,229,211,183,123,119,110,233,148, +147, 91, 9,132,178,141,222,198,243,216,219, 19,149,228, 18,254,144,163, 27,103, 18, 61,203,226,163,225,139, 26,118,116,134, 10, +137,128, 35,224,221,187, 95,191,102, 95,126,249,165,232, 89, 88, 24, 59,105,194,132,140,187,183,110,157,255, 29,184, 93, 26,103, + 14, 80,189, 93,187,118, 96, 0,252,126,234, 84,110, 10, 16, 3, 0,206, 64,165,110,159,124,210,114,214,140, 25,162, 23, 17, 17, +236,245,176,156,195, 47,146,232,226,102,118,184,191, 39,242,213, 62,165,193, 0,212, 54,242,158, 60,121,146,230, 21,228,163,117, + 37,140,235,208, 60,160,241,224,238, 45, 17,147,144,138,165, 63, 29,198,131,103,241, 39,237, 89, 12,124, 95,222,195,165, 69,176, +103,204,120, 96,254,146,166, 82,253,181,247,160,162, 2,230,239,224, 44, 14,239,163,208, 50,194, 56,121,179, 70,199, 66,163, 99, +141, 95,181,200,203,203, 51, 87,145,235, 78,158, 60,185,125,194,132, 9, 88,185,114, 37,158, 61,123, 6,161, 80,136, 90,181,106, +185, 18, 66,172,140, 22,152, 6, 13, 26, 56, 49, 12,131, 39, 79,158, 96,197,138, 21,248,244,211, 79,233,213,171, 87,183, 20,247, +194,160,148,222, 77, 75, 75, 91, 59,106,196,167, 25,233,137, 81,208,229,165, 35, 41,246, 5,212,185, 25,248,102,241,119, 80,233, +248, 72,200,212, 34, 33, 83, 11, 70,108,135, 13,155,183,242,106,214,172,217,145,207,231,119, 41, 37,159,215, 19, 19, 19, 55,143, + 25, 51, 38, 35, 33, 33,161,176,124, 26, 29,133, 70,247,250,253, 42,147,201,176,106,213, 42,101,141, 26, 53,186, 11, 4,130, 54, +165,112,198, 71, 71, 71,135,142, 25, 51, 70,147,152,152,136,204,204, 76, 28, 62,124,184,107,229,202,149,109,151, 44, 91, 73,114, +181,124, 36,100,104,145,144,161,133,200,202, 9,123, 15,252,202,243,241,241, 25, 32, 16, 8,154,150, 37,178,118,238,220, 57,184, +111,223,190,138,101,203,150,165, 29, 58,116,104, 29,165,212,244,130, 60, 89,181,106,213,190,189,123,247,102, 79,157, 58,213,110, +233,210,165,147, 9, 33,179,222, 98, 99,209,166,111,223,190,190, 44,203, 98,255,254,253, 15, 40,165,223,255,250,235,175,183,212, +106, 53,250,245,235,231, 93,208,141,100, 14, 79,195, 1, 3, 6,124, 30, 24, 24,136, 47,190,248, 66,123,230,204,153, 6,148,210, +149,148,210, 8,250, 10,145,148,210,213, 23, 46, 92,168, 59,126,252,120,117,163, 70,141, 48,116,232,208, 79, 9, 33,129,101,240, + 54,235,223,191,191, 31,203,178,216,179,103,207,125, 19,145,101,188,142,103, 15, 28, 56,112, 93,163,209, 96,224,192,129, 85, 8, + 33, 31, 90, 80,118,161, 88, 44,222,255,245,215, 95,219,196,198,198, 98,240,224,193,234, 39, 79,158, 96,254,252,249, 82,165, 82, +121,220,248, 12, 88, 2,177, 88,188,233,199, 31,127,236, 94,187,118,109,140, 25, 51, 70,179,126,253,250, 9,159,127,254,185,166, + 65,131, 6, 88,183,110, 93,119,145, 72,100,209,212, 34,113,113,113, 25, 33, 33, 33,246,101, 45, 49, 49, 49,137,102,150, 89,166, + 80, 40,174, 5, 4, 4,100,213,170, 85,235, 3,189, 94,143,144,144,144, 23,219,183,111,103,107,213,170,133,181,107,215, 98,233, +210,165,232,210,165, 11,120, 60, 94, 47, 75,242,154,155,155, 11,137, 68, 2,161, 80,136,224,224, 96,168,213,106,200,100, 50, 72, + 36, 18,240,120, 60,216,216,216, 64,161, 80, 0,102,142, 70, 35, 4, 52, 75,165,131, 64,192,128,207,176, 8,141,204,132, 86,199, + 66, 34,228, 65,192, 39, 0,101, 97, 35, 23, 64, 34,226,129, 33,132, 53,147, 19,153,185, 90,136,132, 12, 4, 66, 17, 97,244, 6, +105,225,203,145,111,144, 74,165, 34,226, 96, 45,134, 68,248, 47,154, 22,152,188,170,175, 97,128, 64,238,233,217,103,249,138, 21, +162,172,156, 28,244,236,217, 51, 45,226,214,173, 29,121,192,173, 86,101,212, 41,195,231,215,104,221,170, 21,130,239,220, 65,118, +122,250,115,224,149,115,188,200,205,173,239,170, 85,171, 68,121,249,249,232,217,163, 71,198,179,203,151,119, 70,231,224,168, 57, + 34, 11, 0,120, 66,161,139,145, 55, 51, 61, 61, 29,120, 21, 66,194,217,209,106,201,216, 1, 29,144,173,202,199,180,239,118,176, +119, 66,227,199, 93,138, 65,231, 95,227,144,249, 62,189,131, 9, 33, 35, 77, 23,179, 44, 90, 70,171,147, 57, 98, 69,173, 86,191, +113, 1, 84, 81,206,226, 68, 98, 69, 57,255,141,224,243,249,249, 79,159, 62, 21, 89,219,187,177,246, 10, 65,122,229, 79, 47, 43, + 1,192,206,138,159,169, 53,232,216,184,184, 56,136,197,226,124,115,184,242,243,243, 71, 16, 66,190, 1,224,207,231,243,143,110, +221,186,149,236,216,177,195,182,127,255,254, 97,132,144,216,128,128, 0,175,173, 91,183, 90, 3,192,234,213,171,233,222,189,123, + 59,224, 85,200,140, 18, 77,202, 9, 9, 9,243, 5, 2,193,213,177, 99,199,174, 17,137, 68,182,114,185,220,254,210,165, 75, 36, + 95, 75,209,112, 86,100,225, 72, 68,107, 41,131,139, 51,173, 49,114,228, 72,222,227,199,143, 23, 3, 56, 90, 10,231,116,177, 88, +124,233,217,179,103, 43,149, 30,245, 28,229, 94,179,148,141,103, 62, 1, 0,120, 57, 8,192, 20,180,139, 25, 25, 25, 72, 78, 78, +198,231,159,127,110, 27, 22, 22, 54, 29,192,185,146, 56, 99, 98, 98, 46,136,197,226,152, 71,143, 30,181, 22, 8, 4, 34,185, 92, +222,240,218,181,107, 36, 95,195,162,206,244, 72,164,229,188,202,167,157, 21, 31,183,191,118,198,184,113,227,248,207,159, 63,255, + 14, 64,139, 98, 27, 51,134, 89,106, 42,178,166, 77,155,118, 15, 64, 21, 66,200,107, 93,163, 6,131,129, 12, 28, 56,240, 33,128, + 90, 83,167, 78,181,163,148, 78, 38,132,164, 81, 74, 55,254,211,247,146,181,181,245,146, 81,163, 70, 97,239,222,189, 72, 79, 79, + 95, 5, 0, 89, 89, 89,223,239,218,181,107,207,136, 17, 35,240,203, 47,191, 44, 33,132,252,110,134, 85,235,163,126,253,250,225, +196,137, 19,248,227,143, 63,190,162,148,134,148,240,140, 62, 35,132, 76, 63,116,232,208, 15,253,251,247,199,207, 63,255,220, 17, + 64,105, 14,178,237, 58,116,232,128,227,199,143, 35, 53, 53,117, 93,113, 59,100,100,100,172, 63,124,248,112,147, 14, 29, 58, 96, +241,226,197,237, 0,156, 53,163,129,244, 83, 42,149, 91,127,248,225,135,134,181,107,215,198,128, 1, 3,242,181, 90,109,199,169, + 83,167, 30,217,189,123,183, 98,251,246,237, 31,140, 28, 57,242, 6, 33,228, 51, 74,233,117,179, 94, 58, 60,222,183,107,214,172, + 25,222,186,117,107, 76,158, 60, 89,127,242,228,201,110,148,210, 83,132,144,176,105,211,166, 29, 91,177, 98, 5,111,249,242,229, +195,121, 60, 94,178,193, 96,120, 91,226,250,235,213,171, 87, 55,105,223,190, 61, 94,188,120,129,235,215,175, 67,171,213,254,114, +237,218,181,139,213,171, 87,255, 90,163,209, 28,145,203,229, 67, 20, 10, 69, 64,189,122,245, 62, 36,132,200,204,241,211, 35,132, +100,132,133,133,201,157,156,156, 32, 16, 8,112,255,254,125, 56, 57, 57, 1, 0,146,146,146, 80,171, 86, 45,240,120, 60,100,100, +100, 0, 48,239,101, 75, 8,243, 32, 44, 34,174,138,157, 66, 14, 24, 36,184,251, 36, 6,142, 14,182, 48, 16, 6, 9, 9,241,168, +231,235, 1, 66, 8, 50, 82, 19, 64, 8,121,104, 14,167,129,178,193, 81,113, 73,238,246, 10, 49,106, 55,105,111,127,237,247,228, + 29,202,170, 45, 70,242,121,132, 39,150, 88,111, 28, 62,116,168, 3,203, 82,100,164, 38,130,207, 48, 55,223,198, 5,218, 31,133, +232, 86, 85, 37,119,219, 15,255,166, 30,161,160,121, 90,108,255, 57, 17,233, 50,160,222,234,217,179,109,236, 29, 28, 48, 96,192, + 0, 54, 53, 54,246,140, 10, 48, 43,176,114,149,234,213,157,173, 20, 10, 92,185,114, 5, 60, 32, 28, 0,182, 0,126, 75,167, 77, +179,119,114,113,193,167,195,135,179,137, 81, 81,103,243,204,232,210,125,141,183,106, 85,129,145,151, 41,224,141,231, 97,194,212, +110,129, 98,185, 84,140,111, 55,252,138,232,148,220, 61,215,226,177,225,125, 52,118,148,105,209, 42,201,249,236,149, 83,181,172, + 84,177, 34,145, 72, 10,173, 41, 22,124,233,189,113,206,178,240,119,112,190, 69,229, 60,147, 16,114,136, 16, 50, 51, 58, 58, 58, +116,248,240,225, 90,189, 86,157,125,245,155, 42, 51,238, 44,174, 60,230,218,124,215, 49,191, 77, 80,206, 80,101,166,101,175, 94, +189, 90, 23, 29, 29, 29,106,122, 76, 25, 55, 75, 20,165,244,248,182,109,219,214,239,223,191, 31,181,106,213, 66, 72, 72,136, 83, +110,110,110,253,135, 15, 31,218,249,249,249, 97,199,142, 29,216,187,119,239, 74, 74,233,233,210, 68,150,137,181,237, 76,124,124, +188, 79,100,100,100, 53, 27, 27, 27,157,141,141, 13,138,142, 68,204,202, 99,145,154,145, 9, 59, 59,123, 88, 91, 91,123,151,197, +169, 86,171,143,199,199,199,215, 96,109,125, 91,214, 72, 89,149, 25,252,109, 37, 4,127, 91, 9,199,167,187,193,213, 70,132,244, +244,116, 36, 39, 39, 35, 57, 57, 25,132, 16,232,116,186,154,102,112,190,140,139,139,251, 41, 42, 42,234,144,179,179, 51, 20, 10, + 5, 40,128,132, 12, 29,238, 45,247,195,189,229,126, 72,200,208, 33, 43, 59, 27,149, 43, 87,134, 66,161,168, 85, 82,151,145,187, +187,123,167,190,125,251, 42, 0,160, 64, 64,181,165,148,142, 41,102, 25,173,215,235,155, 27,247,157, 50,101,138, 29,128, 14,255, +240,253,196, 35,132,140, 29, 49, 98,196, 7, 18,137, 4,107,215,174,125, 9, 96,167,177,173, 95,191,126,253, 19, 0,152, 48, 97, + 66, 0,128,201,164,132, 72,208, 70, 8,133,194, 6, 53,107,214,196,181,107,215, 0,224,215, 50, 78,127,224,234,213,171,168, 94, +189, 58, 36, 18, 73,195, 50,246,245,174, 84,169, 18,158, 60,121, 2, 0,119, 75,216,231,238,147, 39, 79, 80,169, 82, 37, 16, 66, +188,205, 40,123,247,246,237,219, 63, 56,119,238, 92,195,102,205,154, 97,248,240,225,154, 27, 55,110,116,162,148, 94,188,123,247, +110,155,129, 3, 7,230,214,168, 81, 3, 23, 46, 92,240, 27, 56,112,224, 85, 30,143,247,141, 25,156,159, 46, 92,184,112,230,199, + 31,127,140,133, 11, 23,210,125,251,246, 13,160,148,158, 42,120,190, 78,238,217,179,103,240,162, 69,139,104,143, 30, 61,176, 96, +193,130,153,132,144, 49,101, 88,135, 50, 13, 6, 3,114,115,115,205, 50,201,155,187,191,131,131,195, 71,237,219,183,199,156, 57, +115,224,238,238,142, 35, 71,142, 80, 0, 71, 41,165,151,212,106,117, 75, 74,233,138,220,220,220,223,174, 93,187,134,118,237,218, + 9,241,250, 20, 35, 37, 66,175,215, 71,156, 59,119, 78,107,111,111, 15, 15, 15, 15,120,122,122, 34, 55, 55, 23, 25, 25, 25,168, + 85,171, 22,154, 52,105,130,220,220, 92, 28, 61,122, 84,155,145,145, 97,214,128, 21,189, 38,119,251,233, 99, 7, 51,237, 21, 98, +120, 56, 41, 81,217,221, 14, 57, 25, 41, 72, 78,136, 67,131,154,158,104,213,160, 50, 82, 50, 53, 56,121,244, 96,122,118,182,106, +187, 89,189, 0,106,213,214, 51,191, 31,201,180, 85, 8,225,227, 27,128,129,195, 39,212,171, 87,191,241,233, 70,141,154,159, 92, +182,228,219, 58,109,155,214, 36, 49, 41,249, 56,113,244,215,244,204,172,172,173,111,163,173, 95, 0,240,242,149, 53, 46,174, 59, + 20,252,147,127,199, 17, 63,133,198, 96, 21, 0,232,120, 60,191, 78, 31,125,132,152,152, 24, 28,220,191, 63, 94, 5,220, 55,151, + 79, 42,149, 50, 0,144,153,153, 9,241,171,217, 66,160, 7,124, 59,119,238,140,228,148, 20,236,218,185, 51,249, 4,112,199,146, +124,118, 5, 68, 50,233, 43,131, 96,102,102, 38, 8,144, 5, 0,132,143, 78,141,106, 85, 71,114, 90, 22,206,221, 12,205,169,156, +135,207, 75,227,121, 87, 29,225, 75,243,209, 42,203, 30,154, 50,121,242,100,136,197, 98,184,186,186, 22,138, 35,163, 88, 17,137, + 68,112,117,117,133, 94,175,199,158, 61,123, 0,160, 84, 31, 6, 6, 80,119, 27,179,152, 85,235,168, 74, 32, 16,188, 17,206, 2, +203,129,186,231,180,159,217,223,175, 22, 63, 40,166, 60,156,239, 0, 26, 21,196,196,106, 68, 41, 77,143,136,136,136,233,211,179, + 91,102,100,216,163,132,220,140,184,248,172,212,232,248,232,151, 15, 19,102, 77,159,156, 25, 19, 19, 19, 93, 16, 75,171, 81, 92, + 92, 92, 55, 0,230,250, 26, 76,238,211,167,207,143, 35, 70,140,160,247,238,221, 3, 0, 4, 7, 7, 99,232,208,161,116,240,224, +193,171, 0,204, 40, 71,190,115,243,242,242, 94,179,134,104, 13,108, 97,151, 95, 86, 86, 22,226,226,226,160,209,104,204, 86,196, +207, 78, 46,127,154, 22,113, 91, 23,224, 37, 71,128,151, 28,126,149,100, 32,250,156, 66,145,149,156,156,140,196,196, 68, 0,200, +183, 32,159, 89,106,181,250,181,124,154,118, 77,102,101,101, 33, 33, 33, 1, 6,131, 65, 83,194, 67,199,198,198,198,158,220,187, +119,111, 54, 0, 44, 91,182, 44,141, 16,242, 7, 33,228,199, 98,150, 13,124, 62,255,138,113,223,229,203,151,167, 1, 56,254, 15, +138,172,143,107,215,174,157, 62,115,230,204,181, 19, 39, 78,196,134, 13, 27, 16, 31, 31, 63,131, 82,170, 55,150, 37, 37, 37,101, +218,186,117,235, 48,108,216, 48,204,157, 59,119,121,253,250,245,179, 8, 33, 37,250, 87, 56, 58, 58,122,240,249,124,220,185,115, + 39,139, 82,250,162,140, 6, 42,225,206,157, 59,137,132, 16,184,186,186, 86, 45,109, 95, 59, 59,187,106, 10,133, 2,177,177,177, + 64,193, 23,115, 49,136,136,139,139,163, 34,145, 8,110,110,110,213,203, 42,191,173,173,237,180,159,126,250,137,255,232,209, 35, +180,109,219, 54,230,194,133, 11,237, 40,165,231, 11,242,118, 39, 56, 56, 56,176, 77,155, 54, 79, 79,159, 62,141,239,190,251,142, +212,173, 91,119, 76, 89,156, 94, 94, 94,163, 63,253,244, 83,172, 89,179, 6, 27, 55,110, 28, 67, 41,221, 95,164,204,187,215,173, + 91, 55, 97,227,198,141, 24, 62,124, 56,188,189,189, 75,245, 85,137,140,140,156,222,186,117,235,224,103,207,158,153, 53,227,129, + 57,251, 19, 66,218, 52,110,220,184, 90, 94, 94, 30,182,110,221,250,162, 90,181,106,183,246,239,223, 63,153, 82, 90,244,133,253, +219,193,131, 7, 49,104,208, 32,212,173, 91,119, 43, 33,164,191, 25, 47,157,184,200,200,200,148,251,247,239,179, 60, 30, 15, 30, + 30, 30,232,212,169, 19,250,245,235,135,186,117,235, 34, 41, 41, 9, 23, 47, 94,100,195,194,194, 82,204, 13, 92,154,242,244,220, +145,240,240,167, 87,238,220,184,168,227,243, 24,120,186,218,225,147,160,122,248,172, 87,115, 52,240,115, 71,100, 82, 30,206,158, + 61,173, 11, 15,127,113,205,156, 17,135, 70,206,208,144,251, 87, 31,221,185,172, 23,240, 9,252,124,107, 96,206,172,105,182,139, +230, 77,183,169, 81,213, 19,247, 95,102,226,244,169, 19,186,184,152,232,115,111,107,196,225, 5, 64,104, 37, 38,114, 30,195,192, +192,136,115,121, 5,129,140,107,249,251,251, 56,187,184,224,216,177, 99, 96,128,199, 22,241, 89,189,234, 5,207,201,201,129,145, +175,154,175,175,175,167,151, 23,142, 31, 59, 6, 30,203, 62,110,101, 97,128,209, 39,128,204,148,151, 0,249,159, 87,130,162, 90, + 37, 39, 95, 91,165, 28, 55,238, 63,135, 90, 71,111,238, 76,135, 10,239, 33,138,118, 27, 90,210,117,184,108,195,134, 13,141,126, +250,233,167,118,147, 39, 79,182, 26, 50,100, 8, 36, 18, 9, 84, 42, 21, 60, 60, 60, 96, 48, 24,240,251,239,191,227,246,237,219, + 57, 44,203,158, 70,145,176, 1,132,144, 32,211, 88, 27,191,135, 81,233,171, 32,152,170, 70,135,122,247,126, 35,156, 0, 96,245, +156,181, 78,173,172,217,177,122,255,229, 30,187, 78,222, 33, 95,244,111,197, 52,240,173, 4, 0,112,118,118,134,181,181,181,197, +156,111,160,210,255,118, 78,211,110,221,248,248,248, 39,132,144,164, 17, 35, 70,248, 25, 29,223,197, 98,113,126,116,116,116,168, + 49, 96,105,209, 99,202,202,103,193,200,184,207, 9, 33,135, 51, 51, 51, 79, 78,157, 58, 21,139, 22, 45,194,145, 35, 71, 2, 41, +165, 87,202, 83,118, 74,169,193,219,219, 59,227,230,205,155,206,213,107,214, 71, 21, 39, 1, 90,126,245, 12,148, 82,216,203, 40, +178, 51,210,112,247,238, 29,100,103,103,223,176, 36,159,110,110,110, 25, 73, 73, 73, 14, 78, 78, 78, 72, 75, 75, 67, 74, 74, 74, +161,200, 74, 79, 79, 71, 90, 90, 26, 37,228,245,152, 45,101,112,230, 86,171, 86, 77, 21, 26, 26, 42,114,174, 84, 29, 85,157,132, +104, 60,235, 9, 64, 41, 60,237, 24,100,103,101,224,218,181,107,200,204,204, 60, 95, 18, 39,203,178, 95, 14, 28, 56,144, 7, 96, +240,212,169, 83,237, 0,212,157, 54,109,218,233,162, 35, 11, 5, 2,193,247, 59,118,236,168,101,236, 98,156, 62,125,250, 74, 74, +233, 79,255,212,189,100,111,111,255,229,177, 99,199, 20, 90,173, 22,171, 87,175,198,202,149, 43,183, 80, 74,255, 87,164, 62,142, +241,120,188,117, 12,195,140, 29, 55,110, 28, 70,141, 26, 37,251,224,131, 15, 38,155, 88,189, 94,227,140,141,141,157,211,160, 65, +131,185, 73, 73, 73,102, 57,246, 63,123,246,108,100,131, 6, 13,230, 36, 37, 37, 45, 45,237, 26,201,229,114,185,193, 96, 64,120, +120,120, 58,165, 52,179,132,107,151, 95,163, 70,141, 88,131,193,224, 33,147,201,236,202,186, 63,211,211,211,191,253,224,131, 15, +230, 39, 38, 38,158, 2,240, 77,209, 80, 37,148,210,123,132,144,128,137, 19, 39,142, 95,178,100, 73,143,132,132,132, 61,101,113, + 70, 70, 70,126,219,166, 77,155,175,158, 62,125,186,173,164, 46, 96, 74,233, 90, 66,136,118,199,142, 29, 99,194,195,195, 23,151, +198, 73, 41, 61,138, 82,186,210,139,225, 46,118,127, 83, 78, 30,143, 55,109,201,146, 37,204,134, 13, 27, 64, 41, 93,174,215,235, + 75,202,231,125, 30,143,183,189,121,243,230, 67,246,239,223, 47, 9, 8, 8, 24, 5, 96,119, 89,247,167, 90,173,190,126,245,234, +213, 38, 17, 17, 17, 14,109,218,180, 17, 26, 63, 80, 50, 50, 50,112,244,232, 81,109, 88, 88, 88, 74,110,110,238,117, 75,218, 16, +189, 38,171,255,213,179,135,118, 71, 60,123,216,180,117,199,238,182, 26,173, 7,196,169, 60,100,164, 38,224,247,163, 7,211,195, +195, 95, 92, 83,169, 50,250, 91,194,169, 85,103,246,187,118,238,240,158,152,240,208, 38, 45,219,116,178,205,215,120, 65, 44,100, +144,154, 24,139,223,143, 29, 74, 11, 15,127,121, 41, 95,167, 30,250,182,218,121,158, 55,190,225, 37,220, 30, 49,186,107, 61, 72, +109, 61,238, 10,128,213,205, 1,169,131,179,179,176,224,217,129, 21, 16,105, 46,103, 34, 32,170, 94,208, 75,165, 82,169, 32, 0, + 52,195, 0,129,163,163,163, 20, 0,158, 62,125, 10, 25, 16,101,105, 62,115, 0,185,204,132,151, 1, 84,169,124,184, 87,179,150, + 19, 0,136, 73, 72,133, 70,135, 43,120, 79, 97,180,104, 21,231, 20, 95, 86,240, 69, 22,192,117, 66,200,157,165, 75,151,182,252, +241,199, 31, 91, 77,154, 52, 73,244,209, 71, 31,225,214,173, 91, 56,115,230,140, 70,173, 86, 95, 0,112,209, 56, 92,221,140,204, +188,113,206,253,175,246,235,211,200,157,216,105,217,188, 95,231,252,120,162, 69,101, 23, 27,170, 55,176,228,225,195,135,184,122, +245,170,197,156,239,200,133, 5,128, 70,132,144, 67, 5, 73, 55,139,134,112, 40,232, 46,108,100, 98, 5, 43,207,169,238,242,249, +124,234,235,235, 75, 10,166,167, 9,169, 72,190, 19, 18, 18, 6, 76,159, 62,253,212,190, 3,191,242, 15,142,147, 34, 51, 35,243, + 85, 3,156,153,129,212,196, 56,156, 61,123, 86,155,156,156, 60,202, 18,206,228,228,228,207,251,247,239,191,111,247,238,221,118, +233,233,233,133, 66, 43, 61, 61, 29, 44,203, 98,203,150, 45,201,137,137,137,179, 45,225,140,143,143, 31, 62,117,234,212, 3,187, +246, 28,224,159,158, 97,139, 28, 99,244,249,220, 76,164, 38,197,227,200,145, 35,234,148,148,148,137,165, 92, 31, 3, 33,228,139, +129, 3, 7,194, 40,182,174, 93,187, 54,129, 16,178,214,248, 50, 39,132, 84,249,242,203, 47,251,155,248,113,173,252,167, 71, 29, +166,166,166, 46,106,210,164,201,202,228,228,228,151, 90,173,118, 63,165,180,216, 40,253, 6,131, 97, 28, 33,228,234,218,181,107, +251, 57, 56, 56, 56, 39, 36, 36, 44,177,244, 69, 95,209,253,163,162,162,102, 54,104,208, 96, 86, 82, 82,210,146,210,246,123,254, +252,249,216,130,253,150,154,113,238, 99, 0,142,149,177,143, 30,175, 66, 91,124,111,102,121, 14, 1, 56,100,102,227,188,233,109, +180, 31, 6,131, 97, 89,237,218,181, 37,122,189,254,116, 89,254,128, 44,203,142,156, 52,105, 82,204,148, 41, 83,234, 25, 12, 6, +115,235, 64, 7,224, 18, 33,196, 45, 37, 37,197, 27,128, 13, 0,240,249,252,140,140,140,140,114, 77,193, 83, 16,241,189,139,131, + 79,187,174,251,183,173, 25, 70, 89, 67, 93, 66, 8,120, 12,239, 94,118,142,106,171,185,150,172, 98, 56, 59, 59,248,180,235,154, + 24, 27,249, 41,101, 13,117, 1,194,242,249,204,253,236, 28,213,230,228,208,211,111,109, 10,158, 33,238,112,230, 17,140, 59,245, +243, 87, 4, 0,218,125,250,117,189,202, 54,176,210,103, 32, 3, 5,109,121,124,124, 60,108,129,116,115, 57,101,128, 94, 91,224, + 19,157,158,150, 6, 25,144, 23, 15,240, 10,252, 46, 73, 98, 66, 2,172, 44,224, 43,252, 96, 4,180, 69,120, 51, 1,136,141,238, +156,105, 89,185,128,249,113, 13,223, 73,139, 86,209,223,133,130,139, 82,106,246,130, 87,243,235,125, 2, 96,113,193, 90, 94,198, +254, 65,111,131,179,137, 43,124,130,170,145,208, 78,190,252, 52, 0,189,222, 4,167,165,203,223,205, 9, 96,155, 70,163,161,249, +249,249, 84,165, 82,209,156,156, 28, 10,224, 80, 49,199, 28,138,139,139,163, 49, 49, 49, 52, 42, 42,138, 70, 68, 68, 80, 0, 59, + 45,205,167,181,181,245, 79,189,123,247, 54, 8, 4,130, 53,111,162,236,118,118,118,139, 27, 55,110,172,253,225,135, 31,232,111, +191,253, 70, 55,111,222, 76,199,141, 27, 71,107,213,170,165,182,177,177,233, 95, 30, 78, 23, 23,151, 57,190,190,190,169, 91,182, +108,161, 59,119,238,164,171, 86,173,162,179,103,207, 54,120,120,120, 36, 40, 20,138, 14,229,225,116,114,114,218,212,162, 69, 11, +237,166, 77,155,232,233,211,167,233,174, 93,187,232,151, 95,126, 73,253,252,252,212,114,185,188,167, 57,156, 0,120,124, 62,127, +197,232,209,163, 19,220,220,220,142, 21,217, 38,243,247,247,191, 53,112,224,192, 56, 0,211,223,151,251,147,227,228, 56, 57,206, +138,115, 14,118,135, 91,187, 42,208,211,139, 95, 81,122,241, 43, 26, 84, 5,236, 0, 55,184, 83,128, 39, 19, 10,251,181, 10, 12, + 92, 46, 4,250, 81,128, 87,236, 82, 92, 62, 1,158,132,199,235,213,188,113,227,229, 66,160,191,113, 95, 9,143,215,171, 85, 96, +224,114, 1,143, 55,168, 68,190, 82, 56, 41,192, 19,242,249,211,155, 55,109,186,130, 15,204, 50,166,125, 88,133, 60,254,178, 99, + 37, 26,232, 69,158, 15,114,130,172, 52,206, 18,234, 99,228,155,174,227,127,122, 41,239,141,192,127,211, 55,225,187,194,249, 47, + 18, 90,213, 11,186,109, 14,153, 44, 51,139, 57,102,102,145,125,182, 1,168, 94,206,250,148,190,201,178, 3,168,237,224,224,112, +162,122,245,234,201,149, 43, 87,142,179,181,181,221, 13,192,163,130,156, 1, 46, 46, 46,191, 56, 59, 59, 63,115,117,117,189,239, +224,224,240, 61, 0,199,138,112, 10, 4,130,198,206,206,206,231,189,189,189, 51,188,188,188, 18, 29, 28, 28,246, 0,112,182,148, + 19,128, 43,138,105, 84, 0, 8, 1,184,114, 47, 29,142,147,227,228, 56,139, 10,152,246, 85,177,164, 93, 21,232,219, 85,129,161, +189, 55,190, 55, 21, 40, 93, 0,105,121, 69,209, 80, 64, 92,116,255, 50,249,202,224,164, 0,175, 25, 96, 85,244,152, 78, 30,240, + 55,135,243, 93, 22, 90,198,124, 22,180,243, 35, 77,243,205, 47,143,137,204,232, 36,251,134,187,193,222, 9,206,127, 81,183,225, +115,160,236, 96,111,166, 17,228,223,192, 57,243,222,112, 25, 30, 0,248,232, 13,115, 62, 2, 48,248, 77,114,106,181,218, 27, 48, +115,222,183, 50,242, 22, 95,138, 47, 92, 60, 56,112,224,192,225,245,198,193,112, 18,152,209,206,135,172,230, 27,192,156,120, 65, + 99, 77, 55, 31,249, 51,240,177, 69,156, 0,176,181,152,233,121,202,197,103,194, 9, 0, 87,128,191,204,238,112,172,130,238, 38, +239,216,187, 57, 30,192, 38,139,226,104,113,224,192,129, 3, 7, 14, 28,222, 30, 78, 63,165,220,135,216,191, 31,199,138,204,113, + 88,232,247, 73, 0, 4,149,160,202,204, 30, 73, 65, 8, 9, 42,135,234, 59,195,113,114,156, 28, 39,199,201,113,114,156, 28,231, +127,139,211,132,187,164,129, 21, 79,138,240,189,149, 1, 35,111, 10,196,252,105,203,202, 65,254,142,134, 77,224, 56, 57, 78,142, +147,227,228, 56, 57, 78,142,243,159,229,124,167,197,212,235,214,172,215, 4, 34,215,117,200,129, 3, 7, 14, 28, 56,112,224, 80, + 1,148,102,117,227,132, 22, 7, 14, 28, 56,112,224,192,129, 67, 5, 64, 8,113,197,171, 41,170,142, 21,172, 57,139, 22, 7, 14, + 28, 56,112,224,192,129,195, 27, 66,103, 74,233,166,226, 34,195, 51, 92,221,112,224,192,129, 3, 7, 14, 28, 56, 84, 12, 70, 63, + 45, 75,231, 58,228,192,129, 3, 7, 14, 28, 56,112,224, 80, 10, 74,243,209,122,109,212,225,177, 99,199,104,231,206,157, 9, 87, +101, 28, 56,112,224,192,129, 3,135,183,129,119, 81,139,152, 88,176,142, 21, 13, 78,205, 89,180, 56,112,224,192,129, 3, 7, 14, + 28, 42, 0,163, 69,171,160,219,240,181, 52, 78,104,113,224,192,129, 3, 7, 14, 28, 56, 84, 0,165, 89,180, 24,224,149,153,142, +171, 38, 14, 28, 56,112,224,192,129,195,219,194,187,172, 69, 40,165,155, 10,150,191, 76,151,100, 28,117,216,186,160,128,173,185, + 75,205,129, 3, 7, 14, 28, 56,112,120, 11,120,103,181, 8, 33,196,181,160,219,208,245, 47,219,254,206, 41,120, 56,112,224,192, +129, 3, 7, 14, 28,222,119, 24,227,103, 21, 23, 71,139, 19, 90, 28, 56,112,224,192,129, 3, 7, 14, 21, 20, 90, 69,211, 10, 29, +228, 57,161,197,129, 3, 7, 14, 28, 56,112,224,240,247,224,111,141, 12, 79, 8, 9,226, 56, 57, 78,142,147,227,228, 56, 57, 78, +142,147,227,124,223, 97,140, 8, 95,212,186,197,133,119,224,192,129, 3, 7, 14, 28, 56,112,168,160,200, 50,245,205, 50,253,207, +205,117,200,129, 3, 7, 14, 28, 56,112,224,240, 55,129,179,104,113,224,192,129, 3, 7, 14, 28, 56, 84, 0,198, 17,135,166,255, + 57,161,197,129, 3, 7, 14, 28, 56,112,224,240, 6,197, 86,113,233, 92,215, 33, 7, 14, 28, 56,112,224,192,129, 67, 5, 80,212, + 1,222,244, 63, 1, 16, 84,130, 50, 59, 99,193, 9, 44, 30,125, 80, 22, 63,199,201,113,114,156, 28, 39,199,201,113,114,156,239, + 31,103, 89,220,150,232,143,127,147,208, 42,201, 25, 30,148,210,191,109, 1, 16,196,113,114,156, 28, 39,199,201,113,114,156, 28, + 39,199,249, 62, 47, 0, 92, 1,140, 52, 89, 92,141,219, 56, 31, 45, 14, 28,222,117, 28, 32, 60,164,251,122,131, 82, 55,240, 68, +241,136,127,240, 2,243, 40, 91, 97,206, 68,127, 47, 72,117,206,208, 75,146,145,120,255,101,133, 57, 57,112,224,192,225, 61, 69, +193,100,210,197,250,104,113, 66,139, 3,135,119, 29,201,126, 62,224, 99, 49, 24,184,130,106,195,224,232,191, 24,192,195, 10,115, + 10,217,111, 96, 96, 60, 64,181, 79,225,228,187, 4, 64, 8, 87,217, 28, 56,112,224, 96, 25,254,113,103,120,129, 64,144, 72, 8, + 97,197, 98,241,193,226,102,185,230,192,225, 77,129, 16,226, 42,149, 74, 15, 18, 66, 88,161, 80,152,248, 94, 22,114, 71,109, 25, + 24,195, 71, 26, 29,235,254,251,131, 12, 39,149,218,224, 3, 70,223, 9, 63,251, 88, 85,136,147, 79,218,231,107, 89,207,157, 55, + 85,206,185, 26,125, 77, 80, 84,140,243,207,107, 98, 35, 18,137,126, 39,132, 56,112,119,232,251, 9,127, 66, 62,104, 40, 16, 76, +169, 73,200,135,132, 16,194,213, 8, 7, 78,104,253,195,208,235,245, 78,209,209,209,100,243,230,205,221,172,173,173,195, 4, 2, +193, 76, 66,136,240,191, 82,225, 10,133,226,170, 82,169, 76,180,177,177, 73, 84, 42,149,119,202, 74,127, 79, 5,144,143,147,147, + 83,164,189,189,253, 83,211,116,167,186, 61,154,213,104, 49,100,158, 67,192,199,173, 42,200, 47, 20, 8, 4, 51,149, 74,101,216, +166, 77,155,186,133,134,134, 18,157, 78,231,244, 94, 86,102, 62,235, 12,134,215,230, 81,188, 74, 22,159,165,115, 14,142, 80, 41, + 0, 94,107,104, 80,254,143,152, 76,214, 25,160, 31,222,139,201,147, 95, 77,115,116,190,244, 66,109, 13,134,105,131,124,226, 82, +225, 6,135, 97,198,176, 44,219, 78, 40, 20,126,193, 53,191,239, 39, 68, 12,211,252,106,183,110,223, 76,175, 83,103,188, 31,208, +181, 56,177, 69, 94, 97, 66,205,154, 53, 79, 16, 66,250,189,193,182,229, 59, 63, 63,191, 88, 66,200, 68,238, 74,112,248,135,223, +107,245,141, 31,248, 5,211,240,184, 90, 44,180,122, 87, 33,205, 7, 84, 37, 23,250, 86, 33,217,253,170,146,156,193, 85,201,229, + 94, 85,200,135,229,201,144,135,135, 7,154, 53,107,198,139,138,138,146, 78,156, 56,113,158, 88, 44, 14, 39,132,116, 40, 15,151, + 76, 38,187, 45,151,203,163, 5, 2,193,107,121,145,203,229,183,173,172,172,162, 5, 2, 65, 91,211,116,107,107,235,171, 74,165, + 50,209,218,218,250, 78, 9, 66,232,182, 82,169, 76, 84, 40, 20,183, 77,211, 5, 2, 65, 91,133, 66, 17, 99,109,109, 93, 52,253, + 67,107,107,235,232,162,233, 37, 65, 32, 16,120, 68, 71, 71, 59,197,196,196, 56,137, 68, 34,103,211,244,168,168, 40,167,232,232, +232,215,210, 45,129, 64, 32,248,208,202,202, 42, 90, 46,151,223, 46, 46,189,104,153, 74,130, 73,221,125,104, 78,186,165, 34,171, +125,251,246,151,227,227,227, 61,109,108,108,108, 76,183,217, 41,109, 58,252,178,101,221,228,238,157,218,143,113,242,255,164,118, + 57,249, 59,136,197,226,240, 73,147, 38,205,139,137,137,145, 54,110,220,152, 39, 20,190,167, 58,254,128,191, 16,132,109,201, 82, +234,248, 56, 54,223,177,115,183,222,252,187,209,121,142, 58,131,193, 14,224,181,198,182,202,226,114,113,242,117,129, 44,165,206, +127, 68, 8, 28,219,244, 25,207, 59, 27,193,119,212, 25, 12,246, 96,208,170, 92,156,127, 94, 27, 1,143,199,155,188, 98,197, 10, + 6,192, 56, 66,136,232,191,212, 16, 55,118, 39,238,109,171,243,111, 54,112, 35,205,223, 96,227, 30, 32,151,203,111, 19, 66,124, +254, 45,229,212,176,236,147, 61, 47, 95,158, 28, 84,173, 90,151,233,117,234, 12, 43, 42,182, 10,126, 79, 95,178,100,201,224, 71, +143, 30, 57, 86,169, 82,101, 20, 33,132,121, 3,117,177,106,201,146, 37,211, 30, 61,122,228,230,237,237,189,224, 77,112,114,248, +119,105,120, 0,109, 0,116, 6,208, 22, 64,163,130,223, 13, 11,150,206,120, 21, 69,193,116,221,176,224, 88,227,246,198, 37,112, +116, 46,230,184,134, 38,233,166,255,139,254, 54,162,126,193,186,115,193,104,195,206,133, 91, 40,165, 56,122,244, 40, 53, 93, 23, + 93,250,122, 99,254,248,102,238,170,199, 71,118,209,156,232,151, 52, 61,244, 46,189,187,233, 91, 58,190,161,163,106, 64, 21,124, +103,161,103, 62,165,148,210,157, 59,119,210,179,103,207,210,140,140, 12, 26, 18, 18, 66, 27, 53,106,148, 39,147,201,254, 0,224, +109, 9,159, 66,161, 72,252,227,143, 63,104,251,246,237, 51,173,172,172,150, 3, 96, 40,165,176,182,182, 78,188,114,229, 10,109, +223,190,125,166, 66,161, 88, 5,128, 71, 41, 69,207,158, 61,147, 40,165,212,209,209, 49,174, 56,190,238,221,187,167, 83, 74,169, + 82,169, 76, 44,200, 47, 79,161, 80,172, 26, 59,118,108,206,173, 91,183,168,173,173,173, 49,157,177,182,182, 94, 62,110,220,184, +156,224,224,224,194,244,178, 22, 59, 59,187,104,131,193, 64,143, 28, 57, 66,157,156,156, 10,243, 96,107,107, 27,109, 48, 24,232, +161, 67,135, 74,204, 91, 41,117,202, 88, 89, 89, 45, 27, 52,104, 80,118, 68, 68, 4,181,183,183, 79, 52, 73, 95, 62,100,200,144, +236,168,168, 40,234,224,224, 96, 86, 30,237,237,237, 19,175, 94,189, 74,123,244,232,145,101, 90,167,246,246,246,137,215,174, 93, + 51,166, 47, 51,166,151,182,184,185,185,141,114,114,114,138,115,114,114,138,179,177,177, 89,228,234,234,154,144,156,156, 76, 41, +165,180,106,213,170, 73,148, 82, 56,214,249,164, 89,245,230,131,231, 57, 5,116,155,180, 97,255,181, 27, 23, 31,166, 38,215,105, + 55,102,153,178, 78,119,165, 5,117,224, 45,145, 72,254,104,217,178,101, 94, 68, 68, 4,205,201,201,161,183,111,223,166,151, 46, + 93,162,143, 31, 63,166, 5,247,221,251, 53,210,101,157,191, 7,221,232,187, 39,100,174,103,232,197, 37, 29,117, 52,226, 44,221, + 53,204, 81,119, 97,146,123, 24,253,209,239,127,116, 99,205, 74,229,226,252,177,230,174,251,179, 61,159,172, 89, 48, 65, 23, 25, + 25, 73,167, 12,233,168, 63, 53,222,253, 5,221,224,183,191, 92,156,127, 94,163,254,159,124,242, 73, 78, 84, 84, 20,245,247,247, +207,229,241,120,195,255, 43, 35,146, 26,185,193, 61,200, 71, 20,123,127,231, 20,182,107,128, 44,181,190, 43,154,191,129, 81, 78, + 1, 78, 78, 78, 41,219,182,109,163, 10,133, 34, 9,128,207,191,100,244, 21,241, 3,186,109,175, 83,231, 16,219,171,151, 97,123, +157, 58,135,252,128,110,120, 21, 78,136, 0,152,177,116,233,210, 96,157, 78, 23,188,117,235,214,224,110,221,186, 5, 3,152, 82, +193,115,254,240,221,119,223, 81,157, 78, 71,183,110,221, 74,187,117,235, 70, 1,172, 54,247,120, 43, 43,171,234,181,107,215,222, +225,239,239, 31, 85,183,110, 93, 77,205,154, 53,243,125,124,124, 34, 2, 2, 2,182,137,197, 98,111,110, 84,221, 63,179,148,161, + 69, 26,205,152, 49, 99, 38, 0, 58, 99,198,140,153,148,210,206, 5,237,122,103,211,223, 69,215,148,210, 32,211,255,197,113, 24, +151,226, 56,139, 59, 71,145,223, 69, 71, 29,186, 22,252, 31, 89,184,205, 88,168,163, 71,143,182, 58,122,244,232,133,162,133,235, + 93, 5,205,198, 55,115,207,203, 75,142,167, 15,191,253,130,158,107,227, 65,175,180,118,161, 79, 39,127, 66,227,119,174,162,159, +215,179, 85,245,170,130, 54,150, 10,173,131, 7, 15,210, 67,135, 14,209,227,199,143,211,135, 15, 31,210,212,212, 84,186,115,231, + 78,131,189,189,125,158, 88, 44, 94, 2, 64,106, 14,159,181,181,117, 34,165,148,170,213,106,186,104,209,162,124,133, 66,113, 7, +128,115,129, 80,162, 25, 25, 25,116,201,146, 37,249, 74,165,242, 62, 0, 55, 7, 7,135,232,151, 47, 95, 82,103,103,231, 98,197, +140,173,173,109,226,147, 39, 79,168,173,173,109, 34, 0,119, 91, 91,219,135,135, 15, 31,214, 82, 74,105, 76, 76, 12,181,179,179, + 75, 4,224,108,111,111,127,247,232,209,163, 90, 74, 41,141,139,139,163,118,118,118,102, 11,173,188,188, 60,122,234,212,169,215, +242, 96, 76, 63,113,226,196,107, 2,204,140,250,116, 86, 42,149,193,123,247,238,213, 24, 12, 6,250,240,225, 67,170, 84, 42, 19, + 1, 56,219,216,216,220,217,191,127,191,198, 96, 48,208,208,208, 80,179,197, 96,229,202,149,147, 40,165, 84,175,215,211, 13, 27, + 54,168,141,117,106, 76,215,104, 52,116,253,250,245,106,107,107,235, 96, 0,206,165,113, 57, 56, 56,196,105, 52, 26,154,145,145, + 65, 27, 55,110,156,115,229,202, 21,154,149,149, 69, 41,165,180,128, 15,190,173,134,127,125,227, 89, 78,214,167,211,214,237,243, +110, 52,224,219,147, 55, 99, 99,126,250,237,118,176, 67, 64,247,142,102,148, 95, 42, 20, 10,151,184,186,186,230,159, 61,123,214, +160,209,104,232,243,231,207,233,213,171, 87,233,245,235,215,233,237,219,183,233,195,135, 15,223, 63,161,181, 31, 60,186,209,183, + 59,221,232, 27,188,109,144, 67, 74,246,157,221,148,158,158, 72, 95,124, 93,133,206,237,168,200,102, 55,250, 6,211,141,126,189, +232,252, 86,124,139, 56, 55,213,236, 74, 55,250, 6,127,215,219, 43,245,110,240, 45,122,225,194, 5,186,126,213, 82, 58, 62,200, + 61,151,221,232, 27, 76,127,172,217,195, 34, 78,147, 69, 44, 22, 63,187,124,249, 50,189,120,241, 34, 93,176, 96, 1,149,201,100, + 81, 21,175,135,154, 66,250,163,143, 23,221,236,211,138,110,169,225, 74,207,151, 47,111,127,183,200,106,231, 35,138, 73,185,251, + 27,165,105,207,105,194,114,127,218,209, 87, 80, 33,177, 85, 32,178,146, 35, 34, 34,104, 66, 66, 2, 93,185,114, 37,181,182,182, +254, 87,139, 45, 95,160, 59,128,153,203,150, 45, 43, 20, 89,235,214,173, 11,126,240,224, 65,176,167,167,231,241, 10,156,107,245, +178,101,203, 10, 69,214,186,117,235,232,131, 7, 15,168,151,151, 87,116, 89,199, 14, 26, 52, 72,214,172, 89,179,224,129, 3, 7, +170,182,109,219, 70, 35, 34, 34,232,253,251,247,233,178,101,203,232,188,121,243,232,207, 63,255, 76,123,244,232,145,219,184,113, +227, 27,189,122,245,146, 88,152, 55, 62,165, 84, 84,176, 8, 40,165, 70,161,201, 7, 32, 48,126,252,115,203,235, 66,171, 36, 45, + 82,146,152, 42, 73, 96, 21,221, 86,138, 16, 43, 85,176,149,117,190,162,162,170,184,197,212,180,122,190,115,231,206,127,241,141, +225, 83, 44, 28,249,229,215,146,240,109, 43,145,184,119, 45,120, 25,137, 16,100,167, 66,125,249, 24,116,151, 15, 99,112,211,166, + 82, 41, 33,223, 88,106, 3,148, 72, 36,144, 74,165, 16,139,197,200,200,200,192,139, 23, 47,208,172, 89, 51,230,246,237,219,146, +145, 35, 71, 78,148, 74,165, 81,132,144,143,205, 48, 23, 3, 0,174, 94,189,138, 17, 35, 70,136,119,236,216, 81,215,209,209,241, +158,193, 96, 16, 1, 64,104,104, 40,250,246,237, 43,222,189,123,119, 45, 55, 55,183, 59, 90,173, 86, 38, 22,139,193,227,241, 74, +228, 19,137, 68,208,233,116,226, 26, 53,106,220,191,119,239, 94, 64,151, 46, 93, 4,145,145,145,120,249,242, 37,116, 58,157,200, +199,199,231,193,157, 59,119,234,118,238,220, 89, 16, 29, 29,141,200,200, 72,152,235,243, 73, 8,129, 70,163,129, 88, 44, 6,195, + 48,175,165,171,213,106,136, 68, 34,179,185, 4, 2,193,135,126,126,126, 15,238,221,187, 87,191,123,247,238,194, 91,183,110, 33, + 38, 38, 6, 6,131, 65, 84,179,102,205, 7,247,238,221,171,215,173, 91, 55,225,253,251,247,145,152,152,248,218,249,202,240,163, + 1, 0,220,187,119, 15, 3, 7, 14, 20,253,254,251,239,245, 92, 93, 93,239,235,245,122, 17, 0, 60,120,240, 0,125,251,246, 21, +157, 60,121,178,126,165, 74,149,238,151,209,149,200, 3, 0,157, 78,135, 81,163, 70,201,173,173,173, 17, 29, 29, 13,150,101, 97, + 48, 24, 0, 0,169,233,169, 15,238, 61,120, 24, 58,184,127,239, 86,121, 90,181,250,218,205,219,143,171, 86,246,242, 32,132, 86, + 46,163, 46, 63,150,201,100, 81,223,125,247,221,164,240,240,112,177,175,175, 47,115,255,254,125,100,100,100, 64, 36, 18, 65, 34, +145, 64, 44, 22, 67, 32, 16,188,127, 70,244, 44,127,123,176,104, 23,153,172, 17,139,109, 60, 20, 86,174, 62, 64,212, 69, 84,113, + 20,131,199,240, 36,183, 94,170,228, 0,109, 7,207, 20,123,203, 56,217,118, 47,147, 52, 98,157, 93, 45, 43, 55, 15, 79,164,166, +166,162, 82, 85, 63,228,139, 28, 69, 87,159,231, 90,129, 88,200,249,231,181, 10,172, 81,163,134, 75,245,234,213,145,146,146,130, +250,245,235,195,214,214,214,150, 16,210,174,220,117,176,173,178, 24, 89,104, 14, 48,203, 97, 32, 11,160,227, 47,198,243,228,250, +216,212,224, 95,115,193, 27,187, 19,119,107, 43,209,245,221,123,246,186,219,123,214, 4,142,125, 10,103, 27, 49,182,140,169,111, +231,168, 20, 31, 42, 79, 55, 34, 33, 36,192,217,217,249,236,141, 27, 55, 28, 36, 18, 9,238,220,185, 3,127,127,127,172, 92,185, +210,209,214,214,246,226,191,161, 27,145, 82, 74, 67,129, 35,223,221,191,191,117, 71, 88,216,209, 65,213,170,117, 25,232,227,179, +104,116,191,126,195, 39, 76,152,128,165, 75,151,226,208,161, 67,104,222,188, 57, 70,142, 28,169,139,138,138,218, 94,206,238,194, +181,203,151, 47, 31, 63,113,226,196,162,156,218,200,200,200,239, 74, 59, 54, 32, 32,192,227,217,179,103,177,147, 39, 79,174,191, + 99,199, 14,169, 76, 38, 67, 70, 70, 6, 54,111,222,140,153, 51,103,130, 16, 2, 74, 41,126,254,249,103,217,176, 97,195, 26,133, +133,133,197, 86,174, 92,217, 28,183, 14, 2, 64, 2, 64, 86,176,200, 1,200,118,239,222,173,236,222,189,187,117, 65,154, 20,128, +148, 16, 34, 6,135,162, 40, 86,139,152, 92,243,163, 69,238,181, 46, 69,211,138,110,163,148,118, 41,141,195,194,123,187,184,243, + 29, 43, 26, 25,254,181,119,170,201,239,214,199,142, 29,187,240, 23, 82,160,142,139,183, 47, 50, 79,239,135,148, 79, 32,229, 21, + 44,124, 2,230,197, 3, 84,146, 8,160,163, 52,160, 60, 66,203, 40,182,164, 82, 41,132, 66, 33,114,114,114,160,211,233, 48,107, +214, 44,241,233,211,167,237, 25,134,249, 95, 89, 60,166,130,233,233,211,167,168, 89,179, 38, 57,114,228,136,243,184,113,227,164, + 0, 32, 18,137,144,153,153,137,234,213,171,147, 19, 39, 78, 56,205,158, 61,219,170, 52, 49, 67, 8,129, 80, 40,196,196,137, 19, +165, 55,111,222,180,115,115,115,195,139, 23, 47,144,150,150, 6, 43, 43, 43, 76,156, 56, 81,122,227,198, 13, 71, 55, 55, 55, 68, + 68, 68, 32, 51, 51, 19, 86, 86, 86, 22, 11, 45,161, 80,248,218, 49,132, 16,104,181, 90,136, 68, 34,179, 5,145, 82,169,220, 21, + 28, 28,236,168, 84, 42,113,255,254,125,232,245,122, 40,149, 74,140, 31, 63, 94, 26, 28, 28,236,104, 99, 99,131,208,208, 80,163, +229,207,162, 60, 2, 0,203,178, 8, 13, 13, 69,229,202,149,113,241,226, 69,167,209,163, 71, 75,140,233,207,159, 63,135,135,135, + 7, 46, 94,188,232, 36,151,203,119,149,196,197,178, 44,226,227,227,241,232,209, 35,188,120,241, 2,201,201,201, 72, 73, 73, 65, +118,118, 54,244,122,253, 43, 63,187,236,172, 99,187,247, 29,185, 39,149, 74,101,254, 62, 53, 60, 31, 60, 12, 73,146, 74,165, 50, + 47, 79, 79, 31, 66, 22, 48,165,228,243,127, 97, 97, 97,246,195,134, 13, 19, 62,123,246, 12,113,113,113, 16, 8, 4,133,247,150, +113, 17,139,223,179,182,140, 16, 2,162,169, 1, 66,234, 95,127,145,107, 23,216,165,191, 16, 47,127, 7, 88, 29,192,240,209,186, +142, 7,255,208,131, 92,103, 80,212,129, 26,126,128, 25, 23,158, 16, 2,104,171, 3,228,131, 83,207,244,246,205, 63, 25, 35,140, +141,141,133, 80, 40,132, 88, 44, 70,253, 15,123,242,119,223,211,185,128,160, 46,180,240, 53,139,211, 4, 82,169,244,171,121,243, +230,201, 77, 57,135, 15, 31, 46, 87, 42,149,243,202, 45,178,114,101, 77,161,167, 19, 31,197,170, 42, 47, 58,150, 80, 51, 44, 41, +207, 23,148, 78, 6,116,245, 42, 42,182, 8, 33,173, 37, 18,201, 75, 66, 72,139, 10,137, 44,133,232,218,158, 61,123,221,237, 42, +189, 18, 89,208,231, 3, 2, 41, 92, 28,109,176,101, 82, 27, 59, 71, 27,169, 69, 98,171, 64,100,253,113,253,250,117, 7,137, 68, +130,224,224, 96, 8,133, 66, 72, 36, 18,212,174, 93, 27, 27, 55,110,116,180,179,179,251, 87,137,173, 37,247,239,111, 91,252,232, +209,211, 25, 1, 1,126, 31,203,229,118, 99, 7, 14, 84,206,158, 61,251,232,225,195,135,183,118,238,220, 57,229,230,205,155,223, + 83, 74,247, 91,120,125, 8, 33,100,221,138, 21, 43,198, 26,133,219,236,217,179,127, 62,124,248,240,226,206,157, 59,199,223,188, +121,115, 50,165,116, 93,105, 28, 57, 57, 57,135,231,204,153,163,252,228,147, 79,140,255,113,249,242,101,108,223,190, 29,114,185, +252,181,125,187,117,235,134, 17, 35, 70,216,106, 52,154, 82,223, 73,206,206,206,109,175, 95,191,238, 15, 64, 8, 64,108, 20, 90, + 15, 31, 62,180,201,202,202,178,177,178,178,178,113,117,117, 85, 24,197,214, 39,159,124, 98, 35, 16, 8, 90,128, 3,202,210, 34, +166, 66,199,156,180,242,238,111,174,216, 42,242, 63,190,164,121, 14, 95, 19, 90,157, 59,119,190, 0,160,101,113, 59,105,211, 18, + 33,134, 1, 82, 30,129,140,103, 34,182,192,130,159,153,132,242, 12,224, 45,250, 50,148, 74,165,144, 72, 36, 16, 8, 4,208,233, +116,200,204,204,180, 72, 20, 88, 91, 91,195,202,202, 10,121,121,121,208,235,245,144, 72, 36, 70, 49, 2,107,107,107, 8, 4,130, +194,151,112, 81,107, 82, 81,107,142, 80, 40,132, 92, 46, 71,124,124, 60, 34, 35, 35,193,178, 44,172,172,172, 32,151,203, 33, 18, +137, 16, 23, 23,135,184,184, 56, 80, 74, 33,151,203, 33,151,203,205, 22, 71, 0, 96, 48, 24, 32, 18,253,213, 15, 88,167,211, 89, +100,209,210,235,245,120,252,248, 49,162,162,162, 32,145, 72, 10,203, 42, 22,139,241,252,249,115, 36, 36, 36, 64, 38,147,193,218, +218, 26, 74,165,210,108, 94, 99, 89, 20, 10, 5,164, 82, 41,210,211,211,161, 82,169, 10,235,212,218,218, 26,114,185, 28,153,153, +153, 72, 74, 74, 42,181,236, 6,131, 1,113,113,113, 72, 78, 78, 70,116,116, 52, 82, 82, 82, 10,197, 22,203, 86, 60,254,229,197, +139, 23,241,226,197, 11, 99,215, 84,225,245, 53, 93, 27,243,253,222, 96,125,128, 18, 58, 65,251,148, 28,157, 56, 89, 43, 84, 58, + 7, 4, 1, 47, 79, 0, 12, 31,144,216,162, 73,173, 42,136, 76, 55,200,159, 36,106, 36, 32,232,128,117, 62,182,102,113, 26, 4, +237,146,179,117,226, 8,173,163,117,205, 58, 13,144,152,152, 8,177, 88, 12,177, 88,140, 15,154, 7,225,101,170, 65, 22, 18,155, + 39, 3, 69,123,179, 56,255,124, 70,171, 90, 89, 89, 53,109,209,162, 5, 49,229,236,212,169, 19, 8, 33,181, 9, 33,126, 22,149, +127, 77, 53, 17,180,178, 38,224,211,137, 33,241, 42,183, 67, 15,243,125,186,126,220,211,238,135, 51, 73, 53, 31, 39,168,189, 65, +117, 95,130,106, 27,148, 87,108, 17, 66, 90, 41, 20,138,163,107,214,172,241,150, 72, 36, 39, 8, 33,129,229,225,177,146,242, 54, +124, 53,182,191,187,173, 81,100,233, 84, 0, 95, 10, 8,164, 0, 95, 10, 23, 39, 7,124, 51,162,157,157, 76, 34, 56,104,129, 96, +221,189,110,221, 58,199,162, 34,203,184,212,175, 95, 31,115,231,206,117,180,179,179,219,245,150,191, 5,218,219,216,216,236, 8, + 10, 10,186, 30,167, 80,140,136,111,208, 64,244,135, 82,153,217, 54, 51, 83,233,245,240,161,214, 23,120, 0, 96,125,116,116,116, + 71,115, 69, 22, 33,164,159, 82,169, 12, 14, 10, 10,210, 42, 20,138,168,149, 43, 87,126, 62,110,220, 56, 44, 93,186, 20,115,230, +204,217, 12,224, 51, 74,233,172,232,232,104,183,178, 68, 22, 0, 36, 36, 36, 12,152, 62,125,122, 74, 74, 74, 10, 0,160,118,237, +218,200,200,200,192,148, 41, 83,240,197, 23, 95, 0, 0,234,213,171, 7, 74, 41, 18, 19, 19,177,124,249,242,196,132,132,132,161, +101,180,237,209,251,247,239,111,164,213,106, 61, 10,186, 7,197, 25, 25, 25,214,105,105,105, 10,173, 86, 43,103, 89, 86,110, 99, + 99, 99, 5, 64, 54,120,240, 96,126, 72, 72, 72, 77,189, 94, 31,203,105,171, 63, 81,154, 22, 41, 39,142, 85,196,114, 85,156, 69, +172,132,251,179,116,139, 86,231,206,157,137,233,250, 53,139, 17,193,253,168,219, 23, 97, 23,208,224, 53,107,150,140, 71, 32,181, + 86,226,101,116, 36,132, 32,143, 44, 45,132, 81, 88, 21, 21, 91,153,153,153, 24, 51,102, 76, 94,159, 62,125, 82, 89,150,237,105, +174, 40, 80, 42,149, 80, 42,149, 8, 9, 9,161, 61,122,244, 72, 92,185,114,101,158,169,208,122,250,244, 41,109,223,190,125,210, +188,121,243,114, 74, 19, 90, 70,139,214,146, 37, 75,242, 90,183,110,157,252,232,209, 35,106, 20, 83, 86, 86, 86, 88,190,124,121, + 94,155, 54,109, 18,111,221,186, 69,141,105,150, 88,180, 24,134, 41, 20, 90,166,199, 48, 12, 3,150,101, 45, 18, 90,185,185,185, + 3, 58,119,238,156, 24, 26, 26, 74,141,229, 84, 42,149, 88,185,114,101, 94,187,118,237, 18, 31, 61,122, 68,141,105,214,214,214, +102,139, 65,227,249, 21, 10, 5,172,173,173, 17, 18, 18, 66,219,183,111,159,184,122,245,234,124,211,244,199,143, 31,211,110,221, +186, 37,102,103,103, 15, 40,205,162,245,226,197,139, 66, 11, 86,126,126, 62, 82, 82, 82, 16, 29, 29, 93,216,117,152, 39,183,238, +216,191, 79,215,186,121,121,121,170,144,167,207,162,106,215,242,119,202,203,203, 83, 69, 70, 69, 61,165,116, 30, 91,202,131,208, +243,211, 79, 63, 77,157, 57,115,102, 94, 86, 86, 86,177, 34,203,184,126,175,192,176, 46, 32,180,197,165,103, 57, 54,237,186,246, + 21,145,132,155,128, 54, 7, 16,219, 2, 98, 91,240,229,246,248, 40,176, 30,111,219,245, 44, 23, 80,182, 25,132, 98,143, 50, 57, + 5,212, 25, 96, 3, 79, 63,205,183,109,209,107,188, 40, 45, 45, 13, 60, 30,175, 80, 20,201,228,114,180,253,120, 48,243,243, 77, +181, 11, 64,155,131,240, 60,204,205,174, 72, 36,154,246,213, 87, 95, 9,211,211,211,193, 48,204,159,156, 50, 25, 70,143, 30, 45, +182,182,182,158, 99,118,217, 15,248, 11, 33, 16, 55, 1,232, 23, 79, 18,242,221, 14, 63,200,243,253,114,201, 22,105, 64,189, 70, + 24,213,218, 73,186,228, 88, 82,192,189,232,188, 42,128, 97, 18,244,154, 15, 44, 21, 91,132,144, 64,133, 66,113,236,246,237,219, +178, 78,157, 58, 97,249,242,229,114,169, 84,122,130, 16, 98,113,195,159,155, 99, 24,183,112,245, 47,137,247,191,239, 0,104,115, + 95, 9, 44,147, 37, 41,135,197,220, 45,103, 51,117, 58,218,223, 92,206,188,188,188, 33,159,125,246, 89,234,193,131, 7,255, 34, +178, 36, 18, 9,194,195,195,177,104,209,162,180,180,180,180,161,111, 83,100,141, 27, 55,110, 81, 76, 76,140,239,233,211,167,249, +201,201,201, 78, 43,126,250, 41,243, 64,102,102,218,226,135, 15,159,204,170, 85,171,198,140, 58,117,134,150, 20,250,161, 36,145, + 53,118,236,216,221, 49, 49, 49,245,207,156, 57, 35, 72, 78, 78,246, 24, 59,118, 44,150, 45, 91,134, 57,115,230,108, 4, 48,138, + 22, 56,203,152, 11,141, 70,243, 36, 61, 61,189, 75,135, 14, 29, 50,210,211,211, 81,167, 78, 29,116,237,218, 21, 46, 46, 46,112, +115,115, 67,247,238,221,225,227,227,131,212,212, 84,244,239,223, 63, 45, 57, 57,185, 3,165,244, 69,105,156,169,169,169, 97,187, +118,237,122, 58,126,252,248,250, 49, 49, 49, 53, 1,216,103,103,103,203,179,179,179,197, 26,141, 70,106,107,107,107, 91,175, 94, + 61,135,145, 35, 71, 90,221,189,123,183,102, 76, 76, 76, 14,128, 72, 78, 94, 21,138,172, 18,181, 8,128,228, 2,193,163, 41,178, + 78, 46, 99,155,185,199, 22,251,219,140,253, 94, 19, 91,166,203, 95, 44, 90, 37, 65, 11,204,221,190,127, 91,190,200,179, 58,148, +190,117, 33,147, 72, 32, 21,137, 32,181,181,135,154,101,241, 83,120,130, 42,151,210, 57,150, 86,168,105,183,161, 68, 34, 1,143, +199,195,250,245,235,245, 77,155, 54,205, 63,123,246,236, 26,149, 74,229, 73, 41,253,205, 18, 81,176,122,245,106,213,196,137, 19, +239, 37, 37, 37,213,149, 72, 36, 26, 99,250,154, 53,107, 84,131, 7, 15,126, 24, 19, 19, 83, 95, 38,147,169, 74,242,207, 50, 21, + 90, 98,177, 88,157,148,148,212,104,248,240,225,161,235,215,175,207,149,201,100,144,203,229, 16,139,197,154,164,164,164,186,159, +127,254,249,189,101,203,150,169,164, 82, 41,228,114,185, 69,221,114,148,210,191, 8, 42,211,116,115,161,211,233,206, 38, 37, 37, +213,157, 56,113,226,221, 31,126,248, 33,215, 40,128, 76,243,184, 98,197, 10,149,149,149,149, 69, 22, 45,227,126,114,185, 28,171, + 86,173, 82,141, 31, 63,254, 94, 82, 82, 82, 93,177, 88,172, 49, 73,207, 29, 55,110,220,221,164,164,164,186, 58,157,238,108, 41, + 95,120,134,172,172, 44,240,249,124, 60,124,248, 80, 45, 20, 10,193, 48, 12,158, 63,127, 94, 40,180,236,236,236,252,235,214,174, +229,247,203,238,253, 23,164, 66,177,184,105,163, 15,106,190,136,136,140,161,148, 68,148,241,197,241, 91,126,126,190,231,229,203, +151,215,116,232,208, 33,127,243,230,205,122, 62,159,255,151,151,207,251, 39,180, 32, 3,129,244, 89,146, 90, 33, 97,244, 4, 79, +127,123, 37,178, 36, 54,128,196, 22,144,216,194,221,221, 3, 55,195, 85, 10, 48, 16,193, 96, 70, 12, 49, 74,229, 32,144, 61, 76, +132, 66, 32,146,146,132,132,132, 66, 65,100, 92,188,171,215,196,157,200, 28, 43, 16, 42, 6, 15,150,132, 32,233, 98,111,111,207, +143,143,143,255, 11,167,191,191, 63, 79,167,211,153, 31,218, 37,206,224, 10,176, 99,159, 38,228,187,254,122, 47,215,119,210,226, +159,165, 82, 67, 6,112,123, 53, 2,170,186, 97, 82,175,122,162,217,135,147, 3,110, 69,168,170,130, 71, 71,129,205,113,180, 64, + 32,180, 80, 40, 20, 39,110,221,186, 37, 83, 40, 20,120,241,226, 5, 26, 53,106,132, 77,155, 54,201,100, 50,217,113, 66, 72,107, + 75, 46,211,245, 4, 26,153,147,109,104, 58,109,127, 84,194,253,120,253,107, 34, 43, 57,151,226,179,239, 14,103,164,103,229,247, +188, 22, 85,242,243, 83,204, 61,127, 55, 35, 35,163,253,156, 57,115, 82,147,147,147, 95,187,199, 35, 35, 35,141,130,160, 53,165, +244,209,219,186, 61,149, 74,229,192,197,139, 23,227,214,173, 91,232,212,169, 19, 46, 94,188,136,180,180, 52,236, 57,113,226,217, +174,103,207,102, 25,125,182,138, 11,253, 80, 18,172,173,173,191, 92,188,120, 49,110,223,190, 93,200,153,154,154,138,197,139, 23, +199, 0, 24, 99,169,200, 50, 34, 49, 49,241,230,147, 39, 79, 58,212,169, 83,231,241,154, 53,107, 98, 92, 93, 93,217,145, 35, 71, +226,179,207, 62,131,163,163,163, 97,213,170, 85, 81,129,129,129, 15,195,194,194,130,114,115,115, 31,152,113,125,104, 74, 74,202, +213, 77,155, 54, 93,255,240,195, 15,101, 67,134, 12,113, 60,116,232,144,189, 74,165,114, 19,139,197, 78, 26,141, 70,244,248,241, + 99,222,129, 3, 7, 92, 66, 66, 66,194,243,242,242,110,150, 55,239,255, 65,220, 42,176, 78,157, 41,178,190, 85,198, 54,115,143, + 45,233,119, 89,251,153, 94,255, 77,166,139,233,134, 50,151,129, 85, 49,127,116, 45,133,234,234,160, 38, 52, 97,100, 11,154,216, +183, 38,189,220,202,142, 14,175, 70,114,135,148, 51,188, 67,108,108, 44, 77, 76, 76,164,169,169,169,116,239,222,189,212,197,197, + 37, 87,161, 80, 88, 28,222,193,197,197, 37, 49, 43, 43,139, 54,108,216, 48,205,209,209,177, 48, 20,129,171,171,107, 98,110,110, + 46,109,210,164, 73,154,147,147,211, 42, 20,140,240,240,240,240,136,166,148, 82, 47, 47,175,184,146,248,244,122, 61,117,113,113, + 49,134, 72, 16,216,217,217,253,216,184,113,227,180,196,196, 68,234,234,234, 90, 24, 58,193,209,209,113,121,163, 70,141, 94, 75, + 55, 35,191,209, 49, 49, 49, 52, 38, 38,134, 86,170, 84, 41,206, 52, 61, 50, 50,146, 70, 70, 70, 82, 15, 15, 15,139,195, 59, 56, + 58, 58, 46, 43,154,151,242,230,209,211,211, 51, 49, 47, 47,143, 54,107,214,236,181, 58,245,244,244, 76,204,207,207, 55,166,155, + 21,222, 65, 42,149,142,146, 72, 36,113, 18,137, 36, 78, 44, 22, 47,170, 92,185,114,210,190,125,251,232,170, 85,171,168, 66,161, +120, 21,222,193,191, 91,211,234,205,134,206,114,244,239,254,101, 69,194, 59, 40, 20,138, 63, 92, 92, 92,114, 15, 28, 56, 64,213, +106, 53,213,233,116,212, 8,188, 79,163, 14, 55,249, 84,167, 63,250, 29, 14, 91,232, 29, 50,177,165, 44,255,193, 55,117, 41,253, +223, 39,148, 30,255,140,210,179,211,232,205,141, 35,105, 51,111,177,225,202,148, 74, 79,233, 6,223, 95,205, 10,201,176,169,118, +117,250,163,223,241,103, 11,188, 67,134, 4,186,229,255,180,126, 21,189,113,227, 6,125,248,240, 33,125,241,226, 5, 61,254,219, + 62,218,172,170,236, 21,231,143,126,135, 45, 9,243, 0,160,185, 88, 44,206, 89,185,114, 37,189,126,253,122, 33,231,225,195,135, +169, 76, 38, 83, 1,102,142, 90, 6, 8,253,209,255, 99,253,122,223, 75,179,219, 89,101,167, 30,157, 70,233,131,109,148,110, 10, +160,116,107, 99, 74,247,117,166,244,200, 80,122,125, 85, 47,218,220, 91,168,163, 27,124, 47,210,141,254,237,204,205,167, 64, 32, +200, 58,120,240, 32,141,139,139,163, 23, 47, 94,164,183,111,223,166,161,161,161, 52, 42, 42,138, 30, 59,118,140, 10, 4,130,124, + 0, 22,143,106,108,236, 12,175,160, 26,194,248,123, 75,154, 83,122,168, 63, 77,222, 53,144,118,169,165, 72,107, 82,137,255, 97, + 5, 70,218,213,179,183,183, 79, 57,118,236, 24, 13, 15, 15,167, 23, 46, 92,160, 78, 78, 78, 41, 0, 2,222,246,253, 25, 20, 20, +116,131, 82, 26,220,169, 83,167, 96, 0,191, 7, 5, 5, 5,191,124,249, 50,184, 81,163, 70,215, 81, 74,232,135,210, 56,219,182, +109,171,165,148,210, 78,157, 58, 81, 0,113, 65, 65, 65,244,229,203,151,180, 81,163, 70,154, 55, 52, 74,146, 7, 96,168, 64, 32, +248,201,206,206,238,156,173,173,237, 89, 30,143,183, 9,192, 32,115,218,185, 82, 56,221, 0,248, 3,248,160, 96,169, 89,144,198, +141, 56,252, 47, 77, 56,109,238,142,189,188,209,124, 88, 85,114, 97, 64, 21,100,247,175,130,156, 79,171,145,203, 61,189,241,161, +165,179,123, 27,133, 86, 90, 90, 26,189,123,247, 46,109,213,170, 85,174, 92, 46,143, 5,208,161, 60, 51,134, 59, 56, 56,220,118, +114,114,138,230,243, 95,111,180, 76,210,219,154,166, 59, 57, 57, 93,117,117,117, 77,116,116,116,188, 83, 28,167,131,131,195,109, + 87, 87,215, 68, 7, 7,135,219,166,199,241,120,188, 78, 14, 14, 14,177, 69,211,249,124,254,135, 78, 78, 78,209, 69,211, 81,194, +204,230, 46, 46, 46,209,113,113,113, 52, 57, 57,153,122,122,122,198, 21, 21, 96, 9, 9, 9,175, 9, 48, 75,102, 75, 47, 41, 47, + 37,165,151,196,105, 70,157, 90,124,221, 77,182,249,184,187,187, 39,173, 88,177,130, 90, 89, 89, 37,153,110,243,109,249,233, 87, + 55,158,229,100,125, 54,253,199,125,142, 53, 63,174, 93,158,153,226, 1,116,144,203,229,177,109,218,180,201,125,254,252,121,169, + 66, 11,239,200,140,246,127,225,220, 95, 83, 72, 55,214,108, 78, 55,212, 60, 22, 58,207,235,241,208,198,114,117,240,138, 78,148, +158,157, 70,175,255,248, 25,109,234, 45,122, 37,136, 54,250,157,160, 63,251,180,164,171,171,138,204,226,252,169, 90, 32,221,232, +119, 34,100,174,215,227, 79, 26, 56,106,118,111,219, 72,159, 63,127, 78, 15, 31,216, 69,155, 84, 41, 16, 89, 27,106,158,162, 63, +214,108, 99, 22,103, 49, 98,107,203,150, 45,244,249,243,231,244,215, 95,127, 53, 75,100,189,198,105, 34,180,102, 6, 89,101,124, +214, 88,162,238, 95, 79,164,233, 30, 32,212,182,175, 46,212, 55,243,226, 27,234,186, 50,108, 77, 71,208,246,190, 82, 53,221,224, +123,145,110,168,217,193,220,124,138, 68,162, 40,152,196,212, 41,186,136,197,226,228,146,132, 86, 89,215,189,177, 51,188,130,124, +196,241,127, 44,252,144,118,173,163, 72, 53, 71,100,149,197, 9,160,158,131,131, 67,202,214,173, 91,169,179,179,115,178, 57, 34, +235,159,184, 63,149, 74,229,142,156,156,156,224,147, 39, 79, 6, 7, 5, 5, 5,239,216,177, 35,248,242,229,203,193, 50,153,108, + 71, 73,161, 31,106, 22,105,255,139,114, 90, 91, 91, 7,103,103,103,211,147, 39, 79,210,160,160, 32,186, 99,199, 14,122,249,242, +101, 42,147,201,130,255, 85,207, 38,199,249,223, 21, 83,175, 98,104,189,182, 88, 44,180,222,212,133, 0, 64, 51, 50, 50,232,164, + 73,147, 52, 18,137, 68, 37, 20, 10,103, 2, 16,254, 87,110, 66, 7, 7,135,171,206,206,206,137,206,206,206,175,137, 61,211,116, + 7, 7,135, 59,239,243, 3, 8,192, 71, 40, 20, 70, 10, 4,130,167,166,233,142,254,221,154, 86,107, 62,100,142,115, 64,183,143, + 42,146, 79, 0, 66,161, 80, 56, 83, 34,145,168,166, 76,153,162,201,201,201,121,191,132, 22,165,160,171,171,138,140, 98,235,193, + 28,175,208,174,181,100,218, 77,147,219,211,166,149,139,136,172,173, 94, 98,139, 56, 11,196,214,221,217,158,161,109,124,172,244, +139,231, 76,162, 77,170, 72, 95, 23, 89,150,112, 22, 17, 91, 50,153, 44,123,222,188,121,102, 91,178,254,194,249,147,175, 39,221, +232,183,227,149,136, 42, 99,249,209,119, 51, 93,235,235,249,111,185,238,141,157,225,213,214, 71,252,200, 92, 75,150, 57,156, 0, +234,217,218,218, 62, 54,215,146,245, 79,148, 29, 64,251,209,163, 71, 7,191,124,249, 50,248,197,139, 23,193,151, 47, 95, 14,254, +248,227,143,131, 1,180, 47, 46,206,150,182, 71, 15,117, 61,134,153, 84, 6,103,191,209,163, 71,211,151, 47, 95,210, 23, 47, 94, +208,203,151, 47,211,143, 63,254,152, 2,232,199, 9, 24, 78,104,253,219, 23,254, 63,221,201, 42,145, 72,146,108,108,108, 28,173, +172,172,142,229,231,231,143,167,148,198,255,151, 58,153,147,147,147,155, 89,146,254, 62,130, 82,250, 20,128, 87,209,244,164, 71, +135,174, 1,184,246, 6,248,181, 0, 22, 19, 66,182,111,220,184,113,205,242,229,203, 63,150, 72, 36,201,239, 85, 37,142, 15,211, + 96, 77,181,219, 16,137,150,212,114,151,205,248,170, 19, 37,139, 79, 94,245, 90,218,195, 41,170, 89, 53,121, 56, 4,236,119, 32, +234,155, 24, 26,161,182,144,243, 38,164,186, 37,117, 43,201,102,124,219, 29,228,187, 19,219,188,150,125,108, 31,213,172,170, 85, + 20, 40,190,131, 88,117,205, 34,206,215,175,203, 21, 66,200, 71, 43, 86,172,216,174, 82,169, 70, 80, 74,207, 89, 76,162, 96, 18, +144,171,155, 7, 29,175, 22, 40, 68,165,156, 76, 5,134,247, 16, 73,248,215, 76, 38,126, 61,129, 70, 2, 8,120,195,207,210,221, +130,238,168,127,211,243,125,138, 16,130, 93,187,118, 13,244,243,243,171, 26, 18, 18,242, 66,165, 82,237,164,148,158, 50,245,101, + 34,132, 28,249,238,254,253,220,181, 33, 33, 87, 52, 44,123,165, 12,206, 61, 5,156, 95,250,249,249, 5,132,132,132, 60, 82,169, + 84, 43, 40,165,123, 56,215, 37, 14,255,118,252,227, 66, 43, 47, 47,207,153,171,118, 14,255, 80,131, 31, 15,160,199,123, 91, 64, + 19,177,213,192, 83, 58,254,224,104,169, 10,148,196, 64,192,174,178, 88,100, 21, 35,182, 26,121, 73,191,248,117,148, 84, 5,138, + 4, 80,124, 95, 17,145,101, 42,182, 0, 84, 41, 55, 65,175, 16, 45,128,112, 16, 18,129,249, 40,217,137,122, 62, 10, 63,187, 57, +188, 29,177, 5,224, 84, 25,251, 80, 0,103, 11, 22,115, 56,247, 0,224,132, 21, 7, 78,104,113,224,192,225, 31, 22, 91, 7,252, +111, 33,133, 55, 5, 12,170, 0,250, 72,228,234, 19, 48, 62, 66, 83, 65,206, 27, 72, 33, 19,193,131, 15, 68,250, 48,228,104, 18, + 48,186, 2,156,127,195,155, 28,175,124,167,138,199, 60,238,214,224,192,129,195, 63, 7, 66,200, 72,211,145,134,166,255, 57,161, +197,129,195,187,142, 87, 86,158,152,130,229,223,203,201,129, 3, 7, 14,255, 49,193, 5,188,154,147, 41,168,132, 15,198, 51, 22, + 16, 7,149,227,131,244, 12,199,201,113,114,156, 28, 39,199,201,113,114,156,255, 45,206,178,184, 45,209, 31,255, 38,129, 85, 76, + 57, 54, 25,127,252,163,163, 14, 57, 78,142,147,227,228, 56, 57, 78,142,147,227,228, 56,255, 43, 11, 3, 14, 28, 56,112,224,192, +129, 3, 7, 14, 21,177,104,213, 47, 88,187, 22, 76,193,227,106,220,246, 86,125,180,100, 14, 62,174,224, 51,117, 8, 75,253, 0, +128, 50, 36, 20,122,246,190, 42,229,105,133, 67, 62, 40,220,125,237, 40, 68,251, 9, 52,189,179, 99,159,164, 85,148,175,182,175, +178,135,179,131, 98, 96, 66,106,230,246,135,161,217,135, 44, 57,214,198,166,178, 82, 98,103,219, 75,173,213,213, 18, 9,133, 81, +218,140,172, 77,105,105, 97,217,220,173,201,129, 3, 7, 14, 28, 56,188, 23,168, 15,224, 14,128,206,148,210, 77, 5, 93,137,165, + 59,195, 87, 14, 8,188, 37,145, 72,189, 1,128,165, 20, 44, 5,114,179, 50,130,227,195,110,117, 0, 0, 71,239, 6, 39, 5, 18, +235, 6, 44,125,181,221,192, 2,122,109,126,120,102,196,245,134,230,228,200,202,201,247,147,160,246, 65, 61,186,116,233,236, 91, +187, 86,237,106, 0,240,224,225,131,176,163, 71,143, 61,177,114,242, 61,152,147,244,228,215,138,148,152, 66,242,245, 7, 31,212, +107,113,251,246,157,133, 0,198, 86,180, 6,237,237,173,198,159,250,223,148,150,109,123, 44,151, 3,176, 72,104, 73,236,108,123, +117,239,218,177,222,212, 9,163,153,207,166,124,235,125,235,202,249,165, 10,183, 90, 25,148,213,157,202, 77,236,123,169,180,137, +147, 57,112,224,192,129, 3, 7, 14,255,122, 28, 43, 16, 87,199,138,110, 40, 81,104, 73, 36, 82,239,235,231,143,218,253,122, 57, + 26, 0, 16, 84,223, 5,179,190, 89,211,158, 16,242, 4, 0,186,125, 54,223,103,225,204, 9,184,250, 40, 9,148, 82,212,171,110, +143,143,186,247, 54, 43, 55, 82, 23,255,134,125,251,244, 25, 48,101,202,151,221,158, 63,127, 30,177,123,247,238, 75, 0, 16,216, +178,101,245,111,191,253,182,207,114, 91, 59,177,212,197, 63, 54, 47, 33,228, 86,121, 74, 43,117,175,230,238, 95,163,206,192,189, + 63,175, 97, 90,119,232,217, 95,234, 94,109,113, 94,108, 88,172, 57,199, 58, 58, 58, 78, 20, 8, 4, 74, 0, 96,217, 63,245, 79, +213, 74, 60, 23, 0,208, 27, 88,133,157,187, 95, 54, 79, 40, 49,136,197,194,144,236,156,156,237,153, 49, 33, 63,149,198,169,214, +233, 2,190, 24, 51,140,185,251, 34, 21,222, 1,129,188, 85,139,103,131, 53,232,108, 39,205,252,166,215,237, 27,123, 1,204,187, +192,221,163, 28, 56,112,224,192,129,195,187,137,130,184,141,155, 76,254,111, 42, 83,104, 1,128,149,148,143, 39, 47, 19, 0, 0, + 54, 82, 96,252,168, 33, 72, 77, 73,246,209,232, 89,124, 58,100, 16,238,132,198,227, 73,120, 50, 40,165,240,241,144,153,157, 33, + 30,216, 15, 62, 29,254,105,171,147,167, 78,221,252,106,206, 87,191, 16,242, 42, 26,248,198, 77,155,155,206,157, 55,119,196,160, + 33,131,218, 29, 56,112,224, 17,138,204,140,109, 46,248, 68,177,102,217,146, 69,162,152,148,252,252,137, 83,102,176, 95, 78,158, +184, 10, 64, 79,115,142, 21, 8, 4,202,152,152, 24, 43,134,121,221,125,237,187, 69, 51, 46,182,235,177,252, 89, 68, 84,198,221, +147,135, 15, 55,244,247,247, 71, 76,108, 66,243,165, 63,108,168,235, 90,173,225,176,236,172,188, 30,185,201, 33,197, 70,161, 22, + 11, 4,143, 22, 44,253,177, 30,107, 83,157,153, 53,162, 19, 2,170,185, 33, 54, 41, 3, 45, 59,116,227, 7,223,186,213, 30, 0, + 39,180, 56,112,224,192,129, 3,135,119, 20,165,141, 58,100, 0,224,216,177, 99,197, 6,254, 51, 24, 40,158,132,199,227, 73,120, + 60,110,134, 38, 67, 75, 5, 88,181,116, 1, 86, 44,158,135,180, 60, 6,191, 94,141,198,211,240, 4, 60, 13, 79, 64, 74,122, 78, +113, 10,239,181, 33,154, 43,150,200,234,175, 90,165, 92,214,190,165,188,181,157,173,173,237,179, 71,191,228,206,157,156, 88,115, +193, 23,209, 66,129, 70, 28, 35,183,146, 55,219,191,127,159,191,179,163,147,220,202, 74, 49, 77,238, 81,111,139,141, 77, 93,101, +105,156, 69, 33,115,174,217,173, 91,231,142, 31,186,184, 56,179,163, 87, 5,135,214,170,233,167,171, 81,189, 70,115,153,179, 79, +183, 82,148,104, 33, 39,203,178, 96, 24, 6,137,137,137,136,139,139,195,203,151, 47,241,244,233, 83, 68, 71, 71, 36,178,148, 10, + 12, 96, 25, 87, 87, 15,240,249, 34,120, 87,246,194,143,171, 22,203,190,153, 63,171,145, 68, 46, 58, 68, 8, 33,197,113,230,167, +165, 31, 56,254,251,169,216, 19,187,127, 52, 0, 64, 82,122, 14,206,222,122,142, 59, 33,209,150, 42,230, 55, 62,228,149,227,228, + 56, 57, 78,142,147,227,228, 56,255, 13,156, 37,105,145,119, 1,148,210, 77, 69, 23,227,182, 82, 71, 29,134, 69,167,225,201,203, + 4, 52,240,115, 71,181,202,174,184,249, 52, 29, 59,207, 70, 99,203,201, 72,156,189,151, 12,150,175, 64, 66, 22,240, 44, 34, 17, +207, 34, 83, 74,139,211, 12, 0,224,137, 5,125,191,248, 34,115, 74,109,255,172, 38,231, 79,140,135,187,227, 51,255,233,211, 51, +198,243,196,130,190,182,149, 20,187,103, 76,153, 52, 80, 33,147,137, 52,106, 13,170, 86,241,146, 76, 24, 55,126, 24,177, 21,239, + 54,183,160,214, 30,254,182, 98,169,244,167,111,230, 79, 19,127,255,235,179,168, 92, 13,114, 15, 94, 75,124,241,229,140,185,105, +124,129,228, 71,107, 15,127, 91,115,185,116, 58, 29,212,106, 53, 52, 26, 13,180, 90, 45, 98,163, 31,119,251,227,215,169, 29,170, + 84,178,235, 32,150, 72, 64, 1,100,229,233,241, 50, 94,133, 54,109,219,241, 26,212,175, 31, 96,229, 90,115,120,113, 92, 25, 25, + 17,153, 44,229, 41,142,254,182,139,183,239,244, 93,252,114,244, 22, 14,157,187,139,155, 23, 78,232, 41,171, 43,156,166, 66,225, + 86,195, 71,225, 86, 39, 82,225, 94, 55,177,112,241,168,125,155,251, 86,224,192,129, 3, 7, 14, 28,254,189, 40, 24,105, 56,178, +232,136, 67,160,148,174,195,252,252,188,240,158,125, 7,193,213,201,197,170,123,235,161,194,224,176, 12, 36,199, 71,226,249,211, +135, 80,229,235, 32,180,173, 2, 72, 92, 80,217,219, 11,247,159, 28,210,174, 94,118, 44,135,213,171,195, 75,226,235,222,221,205, +195,213, 81,206, 44, 91,234,121,253,233,147,244, 6,187,230,108,197,128, 1, 86, 14,203,150,122, 94,143,120, 33,103,100, 18,218, +108,216,144,254,132, 33, 20,211,167, 79, 65,247, 46, 29,241,233,176,193,100,251,246,109, 77,204, 45, 40, 11,193,218,153,179, 23, +136, 18, 51,244,154,155, 79,115,212, 50,185, 84,122,229, 89, 78,110,128,183,167,180, 83,143,161,113,199,246,255,244, 61,128, 33, +230,112, 25, 5,150, 78,167,131, 86,171, 5, 0, 3, 0, 48,204,171,117,106,182, 6, 73, 25,106, 36,102,168,161, 55,176,232,209, +119,136,244,214,237,123, 67, 0,148,224,175,197,178, 58,189, 14, 7, 79,223, 65,236,173, 3, 44, 97,120,153, 70,103,120,163,200, +114,113,241,188,216,165,199, 96, 71,145,228, 85, 55,108,118,174, 26,219, 55, 44,229,238, 96, 14, 28, 56,112,224,192,225, 95,140, +162,211,239, 16, 66, 80,230, 20, 60, 17,143, 46, 53, 4, 0,223,134, 29, 82,173, 36,124, 59, 62, 67,144, 24, 19,134,237,203, 39, +130,101, 41, 58,141, 88, 6,133,183, 11,164, 66, 30,212, 57,169, 57,169,207,207,219,151,174,246,116,237,214,109,140,245,254,124, + 76, 85,235, 93,187,114, 4, 0,176,107, 87,142, 96,204,232, 74,214,235, 55,134,123, 55,110,209, 0,212, 96, 64,151,238, 61,209, +183, 95, 95, 68, 36,168,240,191,139, 81,200,205,211,152, 53,191,154,204,177,102, 93, 39, 55,247,142, 95, 12,237, 40,231,243, 8, +169,225,165,228, 69, 39,235,244, 60,158,192,112,228, 86,102, 92,143, 30,253, 28,206, 30,223,247,161,204,177,102, 93, 85,242,227, +123,101,241,169,213,106, 24, 12, 6,168,213,106,232,116, 58,216, 57, 84, 57,222,174,231,242,152,248,132,236, 99, 9,233,249,141, +115,117,122, 36,102,168,145,148,161, 70, 70,174, 22, 46, 10, 91,232,117,154,218,165, 92,132, 95, 62,238, 57,104, 48, 0,134, 48, +250,173,217,113,143,159, 26,183, 25, 69, 86,199,238, 3, 28, 47, 6,135,225,249,237, 19,233,148,213,235, 94, 85, 28,203, 77,129, +194,129, 3, 7, 14, 28, 56,252,203, 97,226,167,117,172,192, 57, 30,175, 9, 45, 99,223,104,231,206,157, 73,209,131, 99, 19,211, + 96,111,197,135,163,155, 55, 6, 78, 92,129, 95,190,159, 12,131, 65, 7, 74, 1,189,193,188,200, 4,148, 10, 78,143, 29,227,237, + 87,217,155,231, 56,112,128, 44,111,231, 46,149,116,224, 0, 89, 94,173,218,246,153, 99,199,120,135,103,231,123, 54,215, 27, 12, +184,242, 40, 9, 15,195, 51,241, 48, 34, 11, 86, 82,243,195,124,241, 68,194, 49, 75,151, 44, 22,242,121,132, 60,138,204,201,137, + 73,213,231,240, 4, 2,173, 76, 42,162, 26,202, 87, 71,164,208,212,182, 31, 15,203, 59,178,227,135,225, 0,198,149,196, 99, 28, +105,104,180,100, 25,215,148, 82, 74, 0,150, 37, 6, 67, 76, 74, 62,114,180, 58, 36,166,255, 41,180,136,190,228,158, 83,133, 91, + 13, 31,165,181,221,239, 60, 30, 79, 76, 41,160,211,234,251, 40,220,106,116,200,142,123,246,212, 84,100, 93,127, 20,135,176,187, +103, 18, 13, 90,213,160,220,196,208, 63,184,219,150, 3, 7, 14, 28, 56,252,151, 80,154, 22,249,183,195,104,193, 42,214,162, 85, + 90,129, 40, 5,158, 69,166,160,178,135, 35, 60, 42, 87,195,211,199,247,255,220, 6, 64,111, 48,207,119,237,208,161,184,152,149, + 43,149,236,228,201,153, 77,151, 46,245,188, 54,102,116, 37,101,173,218,246,153,211,166, 69, 53, 93,185, 82,121,237,244,117,129, +129, 22,196,235, 50,198,230, 42, 8,243,111, 38,152, 70,117,253,171,240, 22,236,122, 22,245,199,131,236, 36,161, 80,168,115,177, +149, 16,133,149,136,199, 99, 4, 34,181,142, 81,251, 4,212,231, 29, 97, 94, 69,111, 45, 75,104, 21,237, 58, 76, 77, 14,235,118, +234,127, 83,106,181,254,120,153, 93,108,114, 30, 50, 53,188,194,174, 67, 30, 67,240,224,113, 36,192, 19, 62, 44,142,211, 90, 97, +119,114,247,206, 95, 60, 87, 46, 93, 4,173,222,128,177,147,191,194,176, 33,131, 78, 42,220,106,116,240,244,246, 13,190,116,100, +171,172,195,232, 31, 17,249,228,118,130, 94,157,181,135, 19, 89, 28, 56,112,224,192,225,191,134,119, 81, 92, 25, 81,100,212, 97, +241, 22,173,210,224,229,225,140, 27, 15,195, 81,219,175, 10,148,214, 10,132,134,197,128,199, 8,192, 16, 64,167, 55, 95, 12, 81, +173,110,239,202,149, 74, 68,134,203,153,245, 63,134,123,143, 29,227, 29,190,114,165,242, 26,213,234,246, 2, 24, 68,233,171,185, + 23,141, 1, 82, 13, 22,132,241,164,172,174,146,179,157,140,119,251, 69,110, 42,195,240,212,246, 74, 9,107,175, 20, 51,246, 10, +145, 64, 40,224,177,122,202,104, 61,156,188,243, 41,203,214, 53,135,207,180,235,208, 96, 48,128, 16,198, 80, 32,196,228,209,169, +121,200,204,231, 33, 49, 67,141,244,108, 45,106,184,203,113,230,236, 1,149, 65,151,183,171, 56, 46,158, 64,168,172,230,237,129, + 89, 95,175, 68,158,218,128,103,177, 57, 16,138,197, 46,206, 46, 1,247, 6,125, 62, 67, 60, 97, 83, 24,134,127,104,143,201,151, +194, 98, 85,137,146, 25,220,227,198,129, 3, 7, 14, 28, 56,188, 59, 48,245,209, 42, 10,179,132,150,149, 76, 2,202,147,224, 82, +112, 24,124,253,235, 96,219,225,155,168, 94,187, 9,226,179,245,160, 96,202, 28,109,104,196,151, 51, 84,119, 0,220,233,222,221, +205,227,147, 79,220,219, 81, 42, 56,189,126, 67,102, 12, 0,252,184,167, 21, 40, 0,150,165,160, 20,160,236, 43,193,101,190,156, +228, 71,134,199,103, 85,246,118,145, 35, 36, 70,171,150,139,133,140,173, 92,196,115, 84,138,132, 66, 62, 31, 6, 74,212,241,241, + 97,106, 2, 68,152, 67, 87,180,235, 80,102,229,122,188,237,199,203,146, 35,162, 50,111,215, 72, 83,213,205,212,138, 64, 41, 80, +195, 93,142,135,215,143, 25, 18, 99,159, 63,203, 75,124,178,161, 56, 46,150, 5, 79,171,103,113,239, 69, 38, 50,114,117,200,200, +209,162,121,155,174,194,230, 65,221,112,233, 97, 10, 88,189, 14, 75, 55, 31,203, 54, 80, 93, 95, 74, 67,116,220, 45,203,129, 3, + 7, 14, 28, 56,188, 59, 40, 24,105,216, 25,175, 34,195,119, 54, 21, 95,102, 77, 42,109, 96, 41, 28,236,237, 32,145, 91, 35, 60, + 81,139,108,226,132,116, 21,133,193,240,202,162,197,150,124,226,160,226,210, 15, 29,138,139,249,237,183,228, 45,135, 14,197,153, + 56,122,255,105,201, 42, 92,179,212,108, 78, 66, 13,103, 14,159, 56,159,217,173,177,163, 45,195,227,229, 9, 5,140,154, 47,228, +105,133,124, 70, 39,228, 51, 26,103,107, 1,239,252,145, 61, 34, 74,112,190, 44,206,252,252,124, 4, 5, 5,161, 83,167, 78,232, +222,189, 59,122,247,238, 13, 31,159,154, 78, 12,143,104, 40, 97, 89, 71, 81, 54,170, 57, 18,240,243,163,241,199,158,239, 84, 15, +175,252,118,207,160,206,239, 74, 77,250, 58, 95,227,164,148, 77,203, 84, 35, 95,107, 64,122,142, 22,233,185, 90,232, 29,155,226, +183,171,113,200,211, 24, 16, 25,124, 32, 47, 57, 33,102, 98,126,226,179,240, 50, 46,100,208,223,112,115,112,156, 28, 39,199,201, +113,114,156, 28,231, 91,231,124,199,209,185, 64, 88,117, 46, 26, 71,203, 12,139, 22, 69, 85, 87, 57,170,187,203,145,175,117, 66, +190,198,128,220,124, 3,178, 84, 90,100,169,116, 8, 79, 80,225,225,225,138,231,240,149, 21, 11, 32, 5,191, 65, 94, 9, 60,115, +109, 90, 34,173,230,235, 21, 75,191,237,179,167,126, 61,205,132,206,174,149,238,135,107,226, 8, 97,242, 24, 30, 95,103,167,224, + 11, 66, 67,239, 39, 95,187,120,188,165, 68,111, 24, 92, 26,143, 94,175,207,116,119,119, 7,240,250, 20, 60, 53,171, 73,187, 95, + 57, 54,189, 74,171,110, 75, 29,191, 95, 52, 69,197,240,132, 44,225, 11, 31, 26,116,121,187,243, 18,159,252, 72, 75,113, 40, 99, +132,146,199, 55,238,134, 52,177,177,171,132,231,177,185,200,205,215, 67,171,103, 97,107, 37, 68,204,131,147,218,240,208,219,251, +178, 99,239,109,227,238, 83, 14, 28, 56,112,224,192,225,221,132,209, 79,203,184, 46, 51,188,131,137,117, 39,188, 69, 80, 87,176, + 44,133,129, 2,172,161,192,242,196,254,105,125, 50,232,242,195, 43,154, 65,150, 53,220, 92,187,105, 75,167,250,141, 90,241,252, + 61,173,144,149,154,128,235, 87,206,233,193,210,107,230, 28,159,146,242, 52, 71,230, 82,163,103,159, 94,159,236, 31,242,233,232, +140,150,109,218,200,157,156, 92,212, 49,177, 49,170,159,119,236,212,157, 60,126,168, 37, 11,125,191,148,148,103, 57,165,241,100, +100,100,252, 80, 92,122,219, 22,149,154, 3,168,194,227, 19,141, 42,233,169,220,146,178,165,196, 70,247,248,246,235,249, 17, 3, + 70, 76, 18, 85,117,175,134,164, 76, 30,194, 99, 18, 16,122,241,144, 58,246,233,173, 95,179, 98,238, 12,231,110, 81, 14, 28, 56, +112,224,192,225,221, 68,133,124,180,162, 66, 94,197,211,250,187,145,157,144, 52,104,219,182, 95,190,249,101,199,158,230,249, 26, +141, 59,133, 48,218,160,215, 92,200, 49, 96,174,185, 28,170,132,103,183, 29, 28,124,106,253,188,121,237,236,159,183,172,111, 5, +214,224, 71,128, 8, 74,112, 94,162, 51, 12, 41, 75,100,149, 46,228,178, 55,182,235,185, 60, 47, 53, 53,231, 23, 75,143, 85,165, +132, 38, 88, 57, 87,173,180,113,213,215,203, 24,134,215,222, 96, 96, 5,172, 65,247,220,160,205,255, 46, 47,249,201, 97,106,217, +240, 74, 14, 28, 56,112,224,192,129,195,191, 8,132,144,145, 69,131,150,154,109,209,250,167,144,150, 22,150, 13, 96, 66, 69,121, + 82, 82,158,230, 0,120,227, 35,247, 30, 60,205,252, 31,128,255,149,247,248,156,196, 23,201, 48, 51, 42, 61, 7, 14, 28, 56,112, +224,192,225,221, 23, 92,128,153,206,240, 28, 56,112,224,192,129, 3, 7, 14, 28, 74, 23, 89,166,235,194,116, 0,197,142, 28,176, +100,102,238,242,140, 62, 40,139,159,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,247,143,179, 44,110, 75,244,199, 59, 33,192, +254, 78,247, 32, 66, 72,208,155,174, 48,142,147,227,228, 56, 57, 78,142,147,227,228, 56,223, 63,206,119, 90, 76, 21,177, 98, 21, + 8,198,127,151,143, 22, 7, 14, 28, 56,112,224,240, 79,193,193,193,199, 10, 40,244,235, 45, 19,114, 71,127,103, 0,200, 77, 14, + 73,228,106,143, 67, 73,162,170, 56, 31,173,114, 9, 45, 66,136,128,225,139,190,144, 72,173,134, 18, 6,214, 57, 25, 41,238,255, + 97, 21, 75,124, 42,203,199, 85,170,228,216, 38, 38, 54,113,123,232, 11,213,161,183,193,105,229, 92,213,145,136,108,127, 37,172, +250,219,172,152,135, 39,222,112, 25,197,254,254,254,245, 0, 32, 36, 36,228, 46,165, 84, 93, 81, 78,185,179,111,127, 91,107,155, + 81, 90, 86, 99, 80,229,170,126,204, 73,120,122,224, 77,230, 89,225, 86,195, 30,124,197, 6, 24,244,109, 64,193, 3,143,127,143, +168,243, 63,203, 74, 14,121, 81,218,113,158,221, 23,251, 13,239,211,121,206,150,125,199,190,137, 58, 52, 51,180,232,118,187,143, +214, 40,198, 15,110, 63,125,221,158, 67, 75, 82, 14, 79,203,225,154, 23,203,225,217, 98,128,141,158,239,194,139, 59,191, 60,213, +146,227, 60,124,155, 62, 18, 8, 4,142, 90,173, 54, 41,246,233,245, 90,230, 28, 83,201,175,217, 29, 30,143,113, 51,232,217,152, +232, 39, 87, 63,224,106,191,108, 72,157,170, 54,133, 94, 63,139, 2, 4,132,191, 34, 63,245,197,185,138,240,185,185,185, 73,149, + 74,101, 75,107,107,235, 74, 50,153, 76,146,158,158,158,151,158,158, 30, 21, 25, 25,121,150, 82,170,127, 27,101,148, 59,251,206, + 36, 2, 50,175,224,247,130,220,196, 39,139, 75,111, 95,253,190, 33, 12,157, 89,240,123,113, 78, 98,232,156,127,195,181,146,184, +248,122,241, 40, 38,240, 24,126, 51, 61,171, 91,164, 74,124,122,196,146,227,237,236,236,218,243,249,124,169,241,191, 94,175,207, + 75, 75, 75, 59,197, 61, 5,229,122, 79,142, 44,250,187,220, 22, 45, 66, 8, 79, 32,150, 93, 30,240,233,216, 90, 75,230,207,144, +172,218,242, 27, 36, 86,182, 33,249, 57,233,254,255,198,194, 59, 86,109,124,155,199,240, 60, 76,211, 12,172, 33, 38,249,197,141, + 55,210,232,250, 86,150, 14,159, 61,109,208,228,254,125,130,188,130,186, 76, 36, 0,138, 21, 69, 10,207,134, 87, 9, 97,170, 48, + 4, 96, 24, 2,134, 0, 0,141, 75,121,113,163,126,121, 57,141, 80, 58, 85,171, 34,178,114,188,216,162,251, 88,151,224, 51, 59, +183,201, 29,253,219,229, 38,135,220,127, 3, 55,142, 99,181,106,213, 26,250,248,248,216,143, 31, 63, 94, 8, 0,223,127,255,125, +245,234,213,171,167,134,133,133,221,162,148, 38,151,171,145,115,242, 27,244,195,242,133,191,124,244, 81, 39,196,165,228, 98,233, +202,117,173,173, 92,124,122,191, 41,177,101,107, 91,197,154,111,109,251, 96,226,180,133, 78, 29, 91, 55,228,229,228,235,241,251, +197,187,129, 59,215, 45,188,105,237,232,223,168, 52,177,197,170, 50,231, 56, 91,209,142,172, 42, 19, 0,250, 23,221,238,110,165, + 11,114,148, 26, 58,186,138,249,119, 1, 28, 44, 51, 47,222, 45, 78, 10,196, 98, 47,134, 97, 96,188,246, 60,242,234,250,235,180, +121,145, 49,143, 47,118,248, 55, 60, 39,214, 94,141, 19,192,227,219, 51,228,207,252,145,130,251,148, 80,154, 21,255,244,146,253, + 27,184,159,148,181,170,219, 4,116,110,222,226,231, 11, 47,211,228,158,173, 38, 29, 35,148, 89, 31,121,113,197, 61,179, 94, 42, + 18,137,237,145, 35, 71, 28, 59,118,236,168,116,174,245,241, 5,115,142,177, 18, 73,252,143, 30, 61, 44,236,216,177,131, 5,247, +167,111, 59, 48,204, 14, 2, 8, 88,150,126,207, 99,233,190,156,212,167, 97,150,134, 97,145, 57,251, 13,103, 64,205,110,103, 88, +144,219,170,196,208, 45,229,173, 95,129, 68,217, 86, 32, 20,126, 81,197,167,118,253,216,136,231,183,115,115,178, 87,234,242, 51, + 46, 88, 76,164,211, 79, 61,115, 41,248, 35,190, 64, 64, 58,182,109,204, 3, 80, 33,161,229,236,236,252,241,154, 53,107,170, 54, +109,218,212,248, 50,183,222,191,127,191,203,215, 95,127, 45, 55,231, 25, 42,225, 94,114,119,116,116,244, 20,137, 68,238, 0,160, +209,104, 98,147,147,147,163, 40,165,177,101,222, 19, 46,213, 28, 8,248, 11, 47, 93,188,200, 7,128,192,192,150,223,120, 5,142, +183,229, 9,173,242,138,173, 14, 77,182, 28,192,164,235, 55,174, 17, 0,104,210,184,233, 12,185,163,255,218,183,105,217,146, 58, +251, 53,102,128,201,205, 91,182,235,209,183,223, 32, 38,160,134, 39,218,183,251,112, 58, 0,139,132, 22,159,207,151,222,188,121, +179, 26,195, 48, 60,189, 94,159,223,164, 73,147,168,138,228,203,221,183,217, 85, 2,166,146, 86,175,217,156,252,226,246, 55,148, + 82,182,168,126, 80, 86,170, 63, 27, 60,254, 8,150,101,163,179, 34,111, 53,123,223, 44, 90,197,214,179,165,100, 12, 95,244, 69, +255, 97,159,215,154,244,229, 44,201,196, 85,103,113,108,221,140,148,127,171,200, 2, 0, 30,195,243, 56,121,234,164,147, 76,196, + 3, 0,228,228,235,241, 81,199,142,101, 30,103,227,221,248, 60, 67,136,175,113, 42,113,131, 94, 43,225, 11, 68,249, 4, 0,200, +171, 81, 4, 14,110,149,207,186,186,218,201,250,247, 9,242,218,177,231,116, 76, 84, 76,106,137,141, 26,195,240, 60, 14, 29, 62, +226,228,110, 47, 1,159, 71,144,147,167, 71,199, 78, 93, 13,197,237,235,234,106,215,185,127,159, 32,175, 93,123,207, 68,197,199, +167, 29, 43,181, 49,119,245,105, 32, 87, 58,255,222, 99,212,215,246,249,140, 29,230, 46,250,193,225,226,137, 93, 23, 90,117, 30, +196, 70, 70, 70,231, 83, 66, 66,210,211,226,191,200,137,127,254,196, 92, 33,109,101,101, 85,213,202,202,170,238, 71, 31,125, 36, +153, 50,101,138,160,117,235,214,133,219, 71,142, 28, 41, 60,127,254,188,235,242,229,203, 59,185,185,185,229,231,228,228,220,203, +201,201,121, 65, 41, 53,152,123, 77, 92, 92, 28,199,245,252,164, 43, 62,236, 49, 22, 6,150, 96,228,231,147,112,242,196,193,209, + 0,222,136,208,210,201,172,191, 30, 49,106,138, 99,147,134,245,120, 11,119, 61,129, 84,196, 71,135, 15,124,201,176,241,115,108, +182,172, 94,248, 19,128, 86,197, 89,178, 88, 85,230,156, 90, 14,154,126,221,154, 86,193,225,221,154,126, 30, 65,211,193,200,148, +133,150,173,106, 31, 77, 80,216, 74,165,107,220,108,120, 78, 98, 67,242,154,106, 31, 77, 56, 19,118, 98,117,118,169, 47, 63,177, +216,107,247,174, 93, 53,108, 21, 66,240, 25, 2, 30,143,128,207, 99,144,175, 49,160,119,159,126,111,234, 75,138, 39,117,170,209, +137, 1,134,189,122, 97, 99,107, 94,210,179,227,150, 92, 19,194, 19,218, 31, 61,252, 43,223, 73, 41, 6,143, 71,192, 99, 0, 30, + 67, 16,145,152,135,225,195,135, 41, 43, 42,216, 63,106,238,212,240,252,218, 86, 29,154,212,178,171,179,247, 26, 81, 54,249,168, +175,125, 74,190,108,232,158, 67,231,250,121,182,156,124,131, 82,118, 89,244,165, 85,165,126, 73,171,213,234,196, 14, 29, 63,178, + 38,124,185,236,204,111,219, 90,242, 25, 2,157,129, 66,111,160, 48, 20,204,141,250,234,121, 37, 96, 24, 2,202, 82,140, 24, 49, + 28, 29, 58,126,164, 98,245,108,140,249,141, 28,179,227,247, 51, 87, 28,213, 58, 22,203,215,108, 89,152,155,153,188,240,101,168, +125,132,204,217,103,146, 42,241,169,217,243, 96, 48,160, 31, 68,191,120, 56,106,215,209,235,168,229, 95, 19, 6,246, 85, 62,125, + 61,228,216,117,236, 58,252,124,253, 94,229,155,165,240,169,100,133,134, 31, 52, 4,128,114, 9, 45,129,196,122,110,171,206,131, + 23,116,233,253, 41,156, 28, 29,193, 80, 93,151, 51,199,118,117, 17, 72,149, 83,117,121,153,203, 45,123, 99, 24, 10,223, 11,148, +101, 43,236, 94,226,230,230,230,216,176,225,159,225, 24,245,122, 61,188,189,189, 17, 27, 27,235, 91,142,123, 73,230,234,234,218, +121,227,198,141, 78,157, 58,117, 18,184,184,184, 0, 0, 18, 18, 18,220,127,255,253,247,250,110,110,110, 73,241,241,241,199, 40, +165,170,146, 56, 12, 58, 70,200,240,193,147, 72,100,175,202, 8,194, 76, 25, 55,184,142,179,171, 91,177,150,250,228,228, 4,209, +180,177,231, 8,159, 47, 44,216, 31, 12,165, 44, 41,197, 74, 20, 36, 16, 8,164,197,109,211,242,172,155, 80,129,242, 51,134,199, +188,186, 89,245,186,228,180,200,224,154, 22, 88,226, 2, 4, 34,225,143, 3,134,140,106,214,171, 71,119,184, 58, 42,113,230,242, +125,140, 30, 55, 89,167,215,234, 86,150,235, 29,201,227,241,147,146,146, 34,108,109,109, 93, 42,254,190, 37, 85, 78,159, 60,225, +116,230,143,179, 51, 86,172, 90, 61,198,205, 39, 80,199, 82, 90, 56,143,177,103,173, 15, 5,237,186,244,177,118,170,214, 68,178, +122,222,103,130,247,205,162, 85,146,216,178,248, 33, 18, 73, 21,125,190,154, 54, 94,242,245,206,235, 56,182,110,116, 74,110,102, +178, 99,225,151,130,210,246, 78, 78,102,122,253,242,100, 82,225,228,219,148,240,248,163, 8,143, 39, 39, 12, 17,177, 6, 54, 90, +175,209,124,163, 74,121, 26, 95,209, 10, 96, 89,138,255, 93, 77,178,172,210, 40,170,239,216,251,171,147,179,141, 24,249, 90, 3, +250,246, 31,132, 95,126,249, 69,225,168, 20, 33, 95,163,199,178, 21, 43,178,115, 34,142, 57, 69, 68,167,199, 6,117,157,124,234, + 69,120,210,195,168,248,252,125, 37, 95, 4, 6, 78, 74, 49, 22,237,121, 10,107,169, 0,182, 10, 33, 24,134,152, 94,164,194,238, +194,184,248,244, 76, 19,206,157, 37, 62,116,174,181, 59, 40,109,221,118,127, 50,106,145,205,179, 36, 62, 40,180, 8,179,150,160, +207,208, 9,214, 85, 93,164,144, 75,120, 54, 47, 35, 99, 93,167, 76,157,122, 89,233, 84,173, 81,102, 82,216,203,178,202, 93,185, +114,229, 30, 93,186,116,145,125,249,229,151,130, 74,149, 42, 97,235,174,253, 94,129, 29,122,119,141,139, 79,172, 68, 41,133,179, +147, 83,244,136, 97,189,143, 28, 63,126, 60, 50, 58, 58, 90,176,116,233,210,198,191,254,250,171,191, 37, 95,166, 6, 74,145,175, + 54,192, 80,240,130, 76,206, 84, 91,122, 67, 19,119,119,119,113,108,108,172,218,104,101, 32,255,103,239,188,195,162, 58,218, 54, +126,207,118,150, 93, 88,122, 83, 64, 69, 17, 44,168,216,123, 47, 17,123,111,209, 88, 99,137,137,198, 24, 91, 44,137, 26,163,177, +199, 88, 98,139,189,198,216,123, 79,172,160, 40, 22, 80,138,136,244,178,189,151,249,254, 0,124,137,161, 44,106,190,247, 77, 50, +191,235, 58, 23,236,238,217,123,231,156, 51,231,156,251, 60,243,204, 12, 33,175,119,166,180, 66,189,206,237, 91, 55,230,109, 60, +149, 8,181,222, 10,137, 3, 31,137, 25, 90, 52,168, 23, 70,126,178, 90,234, 22,167, 57,106, 64,196, 28,111, 41,237,210,163,105, + 21,120,185, 58, 98,235, 15,139,112,244, 70, 66,151, 12, 53,129, 71,143,165,227,124, 69,188,142,158,142,130,181,109, 26, 84,245, +105, 87, 63, 16,119, 26, 84,245,185, 26,249, 52, 54,108,192,138, 79, 94,169,249,231,115, 79,125,162, 42,254,194,195,129,155,147, + 0, 91,206,188,128,163, 3, 15, 18, 7, 30, 36,162,252,191, 69,143,255, 91, 61,213,250,213,244,231,218,172,163,156,253,106,142, + 26, 52,160,191,223,144, 65,253, 41,184, 28, 28, 56,116,172,231,174, 93, 59,211,164, 62, 33,155,173, 28,238, 22, 93,234,163,151, +101,238, 83, 14,224, 37, 19,226,139,205, 15,225, 44,230,195,201,145, 15,103, 71, 62,218,213,241, 4,151,243,214, 23, 30,215,143, +123, 6,117,141,222,209,161,109, 72,128, 52,248,254,115,197,163, 81, 11,239,174,186, 44,111,251,217, 15, 43,107,186,171,229, 70, +222,220,105, 99,120, 41,169,169,109, 15, 28,187,210,206,175,209,168,167, 22,147,102, 86,230,253,253,197, 70,112, 95, 62,249, 61, +188, 98,211,254, 14, 38,181,249,193,253,167, 41, 85,243, 12, 34,196, 36, 41, 33,113,224, 65, 90,184,111, 29,120,144, 56,240, 33, +117,224, 33, 53, 37, 17,185, 26,238,245, 87,238,156,182,244,242,239,229,106,162,210,155,172,184,151,160, 70,165,144,122,240,245, +245,131,177,235,208, 74,183, 46, 30,250, 85,226, 91,227, 91, 77,218,227, 89,246,234,236, 62,126, 19, 51,166,140,139, 36, 64, 84, +193, 77, 58,124,238,146,117,245,191,158, 49,241, 15,239, 77, 91,176,166,254,219, 71,178,156,231,180,235, 61, 97, 65,203,142,189, +161,202,205,192,239,103,247,163,115,183,190, 24, 58,242, 83,184,184,120, 44,227, 59,200,238,155,245,138,139,127,186,230,250,214, +104, 17, 86,187,198,174, 10,126,126,254, 54, 91,254, 44, 31,148, 2, 45, 90,183,195,244,207,198,192, 70, 41,234,134, 55,106,215, +117,208, 39,148, 22,204, 6,146,157,147,173,121,250,228, 81, 7, 93,198,147, 91,118,239, 75,189,222,156,149,149,133,123,247,238, + 33, 54, 54, 22, 49, 49, 49,200,201,201,129, 76, 38, 83,151,179, 62, 57,215,169, 83,103,200,197,139, 23, 29, 92, 93, 93, 95,191, +111, 52, 26,225,228,228,132, 33, 67,134,240, 59,117,234, 84, 33, 34, 34, 98, 56, 33,100, 55,165, 84, 89,156,142, 46, 39, 46,213, +217, 39,116, 67,235, 54,173,199, 3,128,216,217, 55, 97,237,182, 99, 49,165,158,107, 50,191,192,102,205,154, 87, 5,165, 32,160, +171, 53,217, 79,211, 75,137, 18, 73,110,222,188, 25,196,229,114,121,255,185, 7,217,240,227,214,125,161,231,174, 61,232,179,100, +217,247, 14,206, 18, 17,178, 20, 70,140, 30,218,219,238,123,176,163, 79,104,215,230,205, 91,255,250,245,130,175,120, 82,137, 4, +103,111,197,227,147,207,190,208,167, 37, 61,252,158,218,248,235, 52,153, 79, 51,223,241, 86,249, 94,122,198, 5, 87,148,194,169, + 71,103,135,143, 63,236,225, 96, 52, 91, 33,215,152, 97, 48, 89, 97,181, 81, 40, 52,102, 60, 74, 86,193,195, 89,248, 54,210, 13, + 1,120, 2,200, 2,112,231,141,215, 40,248, 31,197,188,206,206, 15,143,192, 29,128, 17, 64,209, 31, 47,124, 93,210,251,133,223, +127, 4,160, 70,129,166, 21,192,109, 0,121,197,153,173,226,162, 92,188, 19, 39, 78,208,136,136,136,215, 87,252, 55, 95,191,137, + 72,192,247,147,200, 60, 65,233, 99, 20,185,183,193,219,183, 98,206,250, 13, 63,185,201, 92,221, 95, 40,242,114, 2, 11,126,228, +188, 61, 55, 11, 30,225,174,104,221,166, 85,167,241, 19, 38, 32, 36,168,162,192,106,181,210,135,177, 9,230,237, 91,182,142,144, +249,135,173, 82,166, 60,156, 83, 24,130, 44,111, 47, 7,171,205,154,242,102, 4,203,106,179,166,188,177, 51,206,255,121,135, 1, + 46, 82, 33, 54,156, 74, 4,165, 0, 1,133, 76,194,199,222,203, 41, 72,136, 60,172,236, 86, 87,169, 25,178,100,126,187,182, 93, + 39, 95,124,244, 92,191, 63, 51, 83,127,134, 82,154, 94,146, 38,135, 0, 60, 46,129,179, 35, 31, 50, 71, 1, 92, 36, 2,144, 34, + 55,176,162,205,133,109,186, 78, 62,119,241,183, 23,179, 0,100, 21,205,135, 42,170, 41,246, 9,110,232,236, 82,113,127,159,241, + 75,157, 30,164, 88,192,227, 2, 85,124,196,112,115, 18,192,104, 33, 72,202, 50, 21,156, 57, 46,248,100,218, 2,183, 25, 83,199, +159, 36,164,102,109, 74, 31,153, 74,219,118,173, 86, 43, 28, 54,108, 24,223,108, 54,155,134,140,254,180, 83,122,122, 86,207, 31, + 87,127, 39,242,242,242,134, 86,111, 65,100,204,179, 26, 95,127,189,160,202,177,211,151,143,204,255,226,227, 95,187,116,233, 34, +219,183,111,159,173,172,253,249,135, 39,196,140,236, 31,182,238, 58,184, 99,229,247,139,241,244, 69, 30,182,108, 92, 7,106,181, +108, 40, 35, 44,123,190,200,255,116,214,172, 89,226, 35, 71,142, 84,148, 72, 36, 74,173, 86,155,245,135,120, 4,135,240, 50,114, +181,240,112, 18, 66,192,227,192,219,213, 1, 94, 50, 17,248, 92,128, 67,136,181, 56,205, 45,251, 79, 44,180,105, 21, 56,186,199, + 56,104,235, 15,139, 48,114,210,108, 60,204, 22,158,230, 56,202, 22, 78, 28,212,103,134,167,216,218,197,207,133,227,213,174,126, + 37, 72, 28, 4,152, 57,121, 24, 26, 69, 38,121,189,146,219,102,103,233,184,245, 0,204, 46,246,184,115,242, 35, 88, 78,142,124, +156,222,181, 44, 83,163,200, 82, 20, 54,201, 25, 13,250, 23,118,134,164,207, 23,243,100, 59,163,126,189, 58,139,198,143, 29,197, +105,222,180, 17,229,112,248,200, 86, 25, 9,165,192,103,159,124,140,137, 31,143,241,121,153,154, 57,119,221,186, 13,115,164, 94, + 53,190, 81,103, 62,158, 95,154, 38,135,228, 71,129,164, 14, 60, 72,197,249,198, 69,234,192,131,222,104, 5, 33,224,186, 6,214, + 87,144,252, 72,110,106, 78, 82,241, 79,224,111,106,186, 5,212,186,112, 46,193, 41, 52,111,127,222,141,196,212,152,133,145,209, + 25,183, 41,165,185, 1,173,167, 14, 55, 89, 40,212,122, 11, 18, 51,180,176,152, 40, 25,249, 65, 32, 42,247, 35, 33,139,183, 70, +237, 32,132, 56, 23, 26,232, 55, 53, 83,110, 28,208,123,132,245, 25,184,114,205,198, 59,223, 47,154,205,205, 86, 24, 97,163, 20, + 14, 66, 46,196, 66, 94,193,194,133, 78,163,192,186,245, 63,165, 91, 64,250,208,203,151, 45,229,169,159,176,209,161,189,187,182, +218, 75, 0, 33,225, 8, 82,252, 2, 43, 5,182,239, 62,194,161,125,143, 97,176, 90,140, 51, 36,222,161,151, 52, 25, 79, 46,216, +163, 89,187,102, 13, 16, 32, 74,157,241,244, 99, 0,144,122,135,108, 8, 13, 9,173,255,230,123,213,170,133,212,183,231,184, 23, + 34, 16, 59, 79,114,117,243,156, 29, 82,171,158, 87, 80, 88,107,226,228, 94, 17,137,113,247,176,103,253,220,157, 54,189,113,193, +133, 19,251, 23,173,218,242,203,128,246, 93,122, 99,235,143,223,205, 4,112,241, 79,231,145,205, 54,116,251,230, 77,254,124,161, + 8,102,139, 13,102, 43,205,255,107,177, 34, 55, 55, 15,102,139, 13, 14,142, 78,176,216, 8,204, 86, 27,204, 22, 27, 12, 70,139, +228,227, 97, 17, 19, 0,220, 42,174,156, 21,107,180, 57, 35, 16,137, 2, 41,242,231,174,165,148,130,107, 49,114,124,125,125,119, + 3,128, 72, 36,130, 72, 36,130,205,102, 67,228,211,172, 73,158,161, 29,198,163,192,224, 89, 77,198, 23,121,137,215, 59,151,180, +237, 62, 62, 62,221,223, 52, 89,122,189, 30,106,181, 26,215,110,220,145,109,222,113,176, 75,226,139,148, 32, 27,149, 25,156,188, +130, 58, 3,232, 94,210,254, 84,166, 63,153,224,223,116, 44,231,243,137,195,171,173,217,126,252,118,220,233,111,102,150, 86, 37, +170,116,152, 97,252,124, 92,223, 6, 75, 86,111,137,203,189,190,126, 74, 89,199,136,199,227,241,179,178,178, 94,159,223,107,127, +218,211, 32,234,233,171, 94,171, 86,174,114,136,140, 87,225, 65, 98, 42,134,119, 8,192, 31,110, 2,165,104, 74,125,170,122, 84, +173, 26,186,123,221,234, 37,188,184, 84, 61,126, 56,124, 27, 23,127,221,112, 45, 61,243, 86, 23,154,158,170,123,155,107,200,187, + 26,173,210, 52, 47, 69,103, 67,173,183,192, 96,180,192,108,163, 80,106,205,200,148, 27,161,212,154,160,214, 89, 48,188, 99, 64, +177,223, 43,195,143,120, 18, 66,142, 83, 74,187, 33,127, 88, 42, 97,145,215, 32,132, 28, 47, 40,215, 31, 94,207,152, 49, 99,214, +183,223,126, 27, 83,184,110,225,251,133,235,150,246,126,145,239,187,207,156, 57,179,246,146, 37, 75, 22, 55,109,218,116,239,239, +191,255,158, 80,156,209, 42, 53,162, 85,184, 49, 39, 78,156,160,101, 60, 81, 4, 57, 58,187,139,156,197,124, 84,169, 28,128,143, +102,109,245,112,118,243,206,116, 16,242,184,167, 78,157,118,203, 49, 74,193,225,112, 53,246, 71,177,170, 55, 19,139, 29, 79, 44, + 95,190, 28,131,186,183, 20, 39,103,155,213,209,201,186, 12,141, 17, 22, 47,207,234,194,133,139,151, 72,151, 44, 93, 54,241,248, + 81,155, 28,192,178,226,155,248, 26,222,229,146, 34, 57, 88,132,128,218,172, 41,185,137,183, 27, 0,192,187,228, 98,169,245,102, +112, 11,114,107, 8, 1,180,122, 11,184, 92,146, 41,127,186,255,209,144,111, 22,182,219,185,247, 92, 42,229,184,168, 52,154, 68, + 71, 74,105, 74,233, 17, 3, 2,165,214, 12,153, 35, 31, 46, 82, 62,100, 18, 1,184, 69, 78,178,194,230,194,157,123,206,190,122, +241, 34,231, 78,129,201, 42, 81,147,199,229, 36, 80,171, 89, 79,169,213,169, 91, 67, 79,120,185, 8,225,235, 42,130, 72,200,131, +217, 2,232,140, 54,232,141, 86, 36,101,234,160,210,137, 17,214,186,127, 21,119,223,187, 6,247,192,134, 71,114, 94,220,233, 83, +170, 57,181, 90,177,125,247,193,106,169,169, 25, 61, 79, 30,217, 37,202, 82,154, 17,157,164, 65,166,220, 0,112, 61, 49,111,241, + 15,162, 47,167,140,237,181,125,207,161, 23,237, 91, 54,126, 81,222,253,170,201,124,178, 51,172, 89,196,134,110,221,122,137, 99, +110,157, 68,220,189, 11,139,212, 25,246,231,103, 17, 66, 56, 7, 14, 28,176,140, 29, 59, 86,181,120,241, 98,255,163, 71,143, 86, +206,202,202,186, 7,192,236,226,226, 18, 90,189, 90,224,253,179,167, 79, 85,136,232,213,159,159,146,173,131,204, 81,128, 64, 47, + 71,220,184,118,198, 44, 20,242,139,205, 55, 41,104, 30, 28, 92,177,195,151, 56,122, 35,161, 75, 76,142,195,229, 49,163,134,191, + 56,123,245,105,206,218, 29,103,191,171, 32, 53,223,115,176,101,173,189,219,160,170,207,140, 79,134,225,219, 53, 59,113, 37,242, +105,166,134,227,187, 40,205, 96, 57, 55,127,224,244, 18, 66,233,249, 6,219, 73,204,135, 70,153,165,120, 22,121,170,250,123,138, + 84, 15, 63,123,100, 39, 39, 87,101,198,203,108, 61, 73,205, 85,193,106,163,112,113, 20,192, 98,163,144,231,102,147, 93, 59,119, +224,206,157, 27, 28,112, 57,163, 1,204, 47,181,153,139,228, 55, 21, 74, 29,248,249, 17, 33,113,254, 95,179,213,134,144,106, 85, +177,105,237, 10,103, 15, 47,111,180,104,213,214,254, 40,181,123, 96,221,189,219,214,226,242,239, 81,109,174,172,250,161,161,212, +207,115,141,115,197,154,223,203, 42,119,212, 27, 76, 86, 40,228,121, 16, 26, 95,162, 81,133, 44,184, 57, 90,145,164,244,197,195, +244, 56,105, 89,185, 80,217, 15, 14,223,243,172,221,123,206,193, 99, 23,191,237,220,177, 13, 30, 38, 41, 33, 22,242,224, 32,228, +194, 65,200, 5,159, 88,177, 98,253, 6,115,158, 66,213, 45,251,225,145,236,183,168,159,231, 11,158,126,243,111,114,222, 65,158, + 59,215,204,249,121,204,244,165,157,187,244, 30, 65, 30,222,185, 52, 11,192, 5,251, 30,244,168, 93,239,217,108,246,223,227,196, +206,158,171,167,206, 89, 54,185, 83,183,254,224,114,121, 48,155,205, 56,180,111, 39,182,253, 48,239,137, 81,157, 51,130, 82,106, + 35,196,109,236,254,157,235,251, 79,159,187,130,212,174,219,168,113,177,126,146, 75, 54,126, 56,106,220, 64,111,111,111,167,255, + 68,180, 40,170,135,212, 68,215, 30,125,113,230,215, 95,240, 40, 38, 26, 54,154,111,152,108, 54, 10,121, 94, 78,186,197,108,220, + 94, 98,139,135,131, 67,224,214,109, 59,130, 57, 28, 2,147,217, 6,163,197,134, 41, 19, 62, 50,126,252,217,172, 22, 93, 59,181, +142, 17,114,161, 76, 74, 78,115,185, 17,245, 56,204,198,151,250,143,154,182, 66,160, 55, 88,161,208,154,113,114, 75,201, 94, 71, +236, 22,216,180,110,179, 94,163, 62,254,106,147, 72,196,229,152,106, 85,247, 79,104,221,164,214,203, 0, 63, 15,213,215, 75,126, +104,116,253, 86, 84,215, 1, 67, 70, 57, 12, 15,173, 79,252,220,197, 78, 31, 13,233, 93, 71,226, 30,240,161, 38, 39,185,196, 41, +211,248,142,174,242,128,202,213,180,255,137, 24,133, 28, 38, 20, 85,254,112,227, 36, 72,208,166, 63,237, 3, 0,190,126, 1,122, +190,200, 89, 85, 14, 35, 66, 1, 96,205, 79,123, 26,220,143, 77, 29,179,114,229, 42,199,200,120, 21,238,197, 43, 32, 18,112, 96, + 50,219, 64,236, 12,106,219, 40,119,220,236,153, 51,156,243, 52, 86, 92,142,206, 66,204,221, 75,212,168,214, 15,113,180, 56,247, +145,120,135,124, 8,160, 42,128,231,132,208,141,154, 12,159, 95, 41,189, 92,238, 78, 6, 54, 91,254,243,178,204,171,106, 21, 43, + 79,212,149, 47,148, 52, 37,132,214, 34, 20,174, 0,125,149, 83,112, 79,181,215,169,105, 50, 98,177,116,241, 92,172,222,252, 11, + 82,115,244,144, 89, 95,226,215, 45, 11,241,249,183,187,161, 51,148,156,213, 80,150, 31, 41,206, 24,189,105,184, 10,255, 47, 92, +239,219,111,191,237,246,198,177,233, 86,194, 49,251,211,122,133,223, 95,178,100,201,226, 34,159,107,237, 53, 89,175,141, 86,225, + 70,149,177,113,213, 61,125, 3,127,255,245,200, 97,215, 60,181, 9, 14, 2, 46, 2, 42, 87,195,252,181,191,122,126,208,192, 3, +217, 38, 25,246,108,250, 62, 87,175, 85,237,179,235, 98,225, 29,218,216,201,201,233,228,225, 67,191, 32, 40,192, 75,176,235, 90, +110, 98, 84,130,238,117,168, 87,153,245, 66, 88,217, 89,203,235,211,187,183,227,133,139,151, 62, 43,201,104,113, 9,183,226, 79, + 59, 14,121, 57,137,249, 32, 4, 80,233, 44, 24,243, 97,223,119,191,141, 81, 27,119,212,136,225, 32, 5, 38, 75,153,147,142, 89, + 95, 78,208, 75,204,113,143,146,147,146, 95,117,232,254,249, 5,165,154,232, 7, 14,155,112,231, 81,236,183,121,101,215, 98,115, + 74,215,136,174,130,252,200, 1,192, 37, 4, 54,106,203, 8,169, 44,253,228, 79,205,133,233,134,159,202, 50,110,170, 87, 79,115, +157,124,195,250,237, 92, 62,233, 39, 63,111, 47,119,169, 68, 76,165,142, 34, 82, 43, 52, 88,208,164, 73, 51, 97,229,144, 58,130, +107,143,117, 72,206,210, 33, 33, 85, 1,145,119, 61,222,160,118, 31, 96,231,170,105,109, 8, 33,156, 55,147, 20,223,228,220,229, +155,221, 55,175, 95, 41,202,144,155,240, 36, 89,141,244, 60, 61,210,242, 12, 72,207,213, 67, 42,230,163, 85,143,177,162, 19,191, +110,236,222,190,101,227, 53,111,179,123, 19, 18, 18, 79, 36,189, 74,235, 95, 39,188, 17,118,254,188,173,165,171,107, 21,231,188, +188, 4,165,189, 71,103,225,194,133,194, 37, 75,150,240,214,174, 93,171,108,210,164,137,207,204,153, 51, 59,103,102,102,222,174, + 84,169, 82,200,153,195,219, 47,214,107,213,179, 33,108, 38,207,150,173,219, 10, 68, 54, 30,206, 30, 63,110,218,191,111, 87,142, + 78,167,250,184, 84,195,225, 40, 91,152,161, 38,240,172, 80, 33, 70, 42,180,118,228,113,228,177,185,167, 62,217, 1,224,112,213, + 15, 38,159,191,116,247,105,108,131,200, 36,175,139,145,207, 50,115,181,166,234,207, 79, 77, 45,245,194,203, 37, 4,124, 46, 7, + 78, 98, 30, 56, 5, 87, 85,167, 10,117,159,129, 16,207,194,200, 41, 1, 41,248, 11, 16,130,212,220, 23, 81,118,228,108, 16,106, +163,192,211, 20, 13,212,250,252,208,124, 69, 15, 71,100,101,164,224,199, 53,219, 17,117,247, 14, 58,125,208, 3,235,126,218,133, + 49, 31,246,215,151,165,198,225, 20, 68,180,138, 68,179,164, 98, 30, 0, 2,185,198,140, 67,215, 95,162,106, 21,142,221, 55, 6, + 0,112,146, 58, 66,161,210,129, 35,112,194,243,200,147,142,167, 46,221,154, 57,231,155,149, 95,228,165, 69, 39, 63,123,112, 13, + 33, 30, 10, 84,169, 96, 66, 76,186, 51,238,230, 84, 70, 72,181, 32,112, 4,119,236,210,206,142, 9, 91,250, 43,231, 80,183, 6, +245,106, 54, 13,244,114,129,206,104, 45,136,106,113,177,109,235, 14, 36, 37,166,140,202,142, 57, 18,245, 62, 28,173, 58, 35, 62, +203,193, 59,120,226,131, 91, 23, 18,122, 15,153, 8,223, 10, 1,117,203,147,182, 96,207,123, 86, 59,141,150, 80,226, 58,115,218, +220,229,147, 59, 69,244,195,205,107, 23,112, 47,230, 57, 26, 55,110,136, 15,122, 13,130, 74,153, 27,122, 96,199,170,142, 0,206, +240, 68,150,201,141,154,181, 35, 54,171, 21,113, 79, 30, 62, 47, 78, 75,155,250,228, 30, 0,231, 63, 52, 79,121,214,168, 43,149, +185,221, 51,152,172,120,245, 42, 5,191,253,126, 57,188, 96, 61,187, 17, 9,184, 56, 27,149, 9,147,217, 6,147,197,134, 86,173, + 59, 26, 5, 28, 67,203, 69, 43,183, 54, 73, 75, 77,227, 72,156, 61,108,110, 21,106, 8,124, 69, 38,195,253,120,133,192,100,182, + 33,200, 79, 82,170,166,167, 95,181,197,211,166, 77,169,193, 21,136,161,210, 24,140,105,169,175,124, 54,237,185,164,126,252,228, + 65,133,138, 94, 50,231,239, 86,109, 20, 40,245, 4,153, 10, 3,114, 85, 74, 50,100,220,116,191,205, 63,124, 59, 20,128,221,115, +211, 18,138, 42, 39,206, 94, 11,117,117, 18, 16,181,222, 98,203, 81,154,172, 67,122,181,125,167,186, 83, 96,178,198,174, 92,177, +202, 49, 42, 94,133,251,241, 10, 56, 8,184, 16, 10, 56, 48,154,109,176,231,116, 34,132,112,170,212,110,253,113,179, 6, 97, 56, +115, 47, 27, 92, 46, 7, 58, 85,158,150,135,156,216, 6,109, 58, 57,214,111,212, 4,109,219,180,198,179,216,167, 1,199,143, 30, +106,127,227,183, 43,233, 82,175,144, 73,234,204,167,191,148,171,158,107,181, 92,179,208,231, 35,223, 10,149,154,247, 25,244,145, + 44, 48,160, 2,241,242,112,135,133,242, 48,246,195,190,118,159,249,249,198, 28, 88,242,205, 76, 24, 12, 70,120,186, 8, 65, 41, +176,117,205,124, 24,141, 70,248,185,139,160,208,152, 75,252,126, 89,126,164,164, 40, 84, 57,155,161,143, 23,103,182,222,124,159, + 16,114,124,198,140, 25,179, 0,208, 25, 51,102,204, 42,124,253,237,183,223,234, 0,164,150,214,116, 88,212,120,241,138,110, 92, +137,133, 18, 10, 67, 60,124, 3,111,156, 61,115, 90,118,228,190, 13, 55,127,185,139,136,198,190, 16,240, 56,112,148,249,225,126, +162, 2, 39, 14,175,151,255,186,119,227, 43,131,193,176,172,236,182,230,224, 6, 78, 18,231, 51, 63,239,220,103,243,112,119,231, +252,120, 54, 43, 62, 71,101,121,221,164, 21,123,235,168,237,238,153, 77,190, 20,228,180,131,131, 67, 53,163,209,232, 90,214,129, +221,122,246, 69, 65, 18, 47,121, 31,215, 86, 16, 46,215,186,115,215, 78,120, 56, 11, 97, 48,219, 48,227,139, 79,117,195, 59, 73, +229, 67, 6, 12,106,215,182,235,228,139,124, 73,240,133,102,225,193,180, 94,189,122,114, 46,151, 91,166, 94, 78,194,237, 63,245, +174, 8,173,236, 56,122,246,244,225,179,139,105, 46,180, 43,113, 87,149,246,224, 58,128, 63, 68, 72, 72,213,170,194,221, 7,126, +253,180,223,128,129,115, 42,212,237, 37, 77, 76, 83, 64, 64, 76,104, 88,195, 23,151, 78,255, 66, 83,146, 98,167,148,101,178, 0, + 32, 51, 43,215,223,211,211, 27, 81, 9,106,188,202,209, 33,189,192,100,165,229, 25,160,210,169, 80, 39,208, 15,114,133,194,255, +173,247, 47,240,203,153, 51,103,250,119,237, 57, 16,147,191, 88,208, 98,203,250,239,163,165, 62,213, 71,170,211, 99, 47,219,243, +164, 72, 8,201,253,242,203, 47,171,254,244,211, 79,156,161, 67,135,234,194,194,194, 28,134, 13, 27,214, 98,199,142, 29, 14,142, +142, 14,186,251,215,142,206, 25,253,201,140,158,155, 86, 47,172,155,151,151, 71, 44,102,243, 41, 83, 94,222, 12, 85, 25,102, 46, +249,215,153, 79, 72,205, 5, 35, 58,182,244, 60,234,230,200,169, 37,162,198, 65,164,230,130,125,244,209, 60,211,243, 83,107, 84, + 97, 3, 86,124,146, 42,183,205,214,115,188, 22,149,101,178, 0,128,195, 37, 48, 90,172,112, 18,243,193,225,112, 10, 77,188,239, +182,125,167, 28, 61,101, 66,240,185, 28,240,184,249,209,206,108,165, 9, 19, 63,234,105,247,147,128,197, 74,161, 51, 90,160, 45, +120, 58, 84, 41,179, 49,243,139,169,248,160,123,111,140,254,120, 42,242,116,192,221, 4, 21, 76,102,115,153, 39, 5,135,112,160, + 53, 88, 48,178, 83, 32,114,213, 38,104,116, 22, 24, 45, 54, 56, 10,121,224,243, 56,144, 56,240,224,236,200, 7, 40, 21, 20, 94, + 76,248,124,190,222,100, 50,237, 44,229, 56,161,178,191, 55,116,102, 14, 26, 13,252, 30, 29,154, 86, 71,204,245, 67,188, 43, 55, + 31, 84,249,236,139,217,248,116, 76,119, 28,124, 82, 21,110, 94,129,144, 74,196, 48, 83, 14, 0,251,134, 14,161,116,158,205, 55, +180,207,224, 13, 63,109,125,250,245,220, 25, 14,114, 13,129, 72,192,197,197, 11,231,113,227,214,221,213, 89, 49, 71,118,226, 61, +194,167, 28,111,103,103,103, 56, 8,185, 48,154, 12, 70,251, 83, 23, 40, 40, 16, 46,245, 14,217, 80,240,196, 31,110,181,161,152, +247,202, 54, 90,124,177,108,198,228, 47, 23, 46,238, 20,209, 15,103,143, 31,196,129,131,251,172, 77,187,140,226,238,218,182, 30, + 45, 58,244, 64,139, 78, 3,113,234,151, 29, 83,249, 98, 89,205,177,159,126,245, 77,171,118, 93,113,246,196, 65,100,164,167, 44, +183,183,188, 92, 62,153,220,174, 99,119,232,141, 86,180,108,223, 13,167,143,253,242, 9, 10, 58, 89,216,127, 19,123,227,250, 12, +142,101,234,148,201,252, 76,185,145,159,165, 52, 34, 37, 75,139,196, 12, 45,126,221,187,133,218,127,189, 48, 54,108, 85,167, 34, +127,236,210,139, 47,253, 43,250, 26,248, 6,157, 56,246,121,124,232,232,143,134,243,171, 84, 11,229,100, 42, 12,200, 82, 24,144, +173, 48, 64,173,183,160, 90,197, 96,142,217, 66,154,150,247, 56,123,200,132,252,117,199, 18,224, 44,225,163, 89,232,219,119,180, +181,217,108,255, 49, 89, 43,243, 77, 86,116,130, 2, 34, 1, 23, 34, 1, 7, 34, 1, 23, 22, 43,181,235,193, 69,236, 85,189,235, +196, 73, 19,252,140, 22, 32, 71, 97, 4,143, 75,224,229,225, 42,105, 88,119, 48,182,126,255, 9, 0, 96,204,151, 63, 98,244,200, + 97,168, 81, 43, 12,242,188, 60,159,193,253,186,174, 4,240,139,189,101, 61,121,246,114,192,217,171, 81, 95, 78,156, 54, 79, 58, +160,123, 91,238,189,120, 5,210,114, 13,120, 30,171, 42, 87,228, 13, 0, 44, 86, 27, 40, 40,182,239, 59, 14,177,144,135, 44,133, + 9,148, 82, 44, 92,187, 31, 78, 98, 62,210,242,242,155,251, 75,163, 52, 63, 82, 90, 68,170, 28,209,198,110,200,207,229,242,180, + 55,162,245,237,183,223,198,124,251,237,183,197, 70,200, 10, 77,214, 91, 79, 42, 45, 20, 74, 67, 61,220,253,110,158, 61,125,210, +233,151,251, 86, 92,186,159,131,126, 45, 43, 66,157,155,140,101, 95, 12,200, 37,160, 70, 14,151, 43, 55,232,180,135,117, 58,205, + 34, 74,169,169, 84,147,229, 27, 18, 46, 17, 59,159, 95,183,233,103,139,135,151, 23,118, 94,203, 77,201,211, 88,204,255,105,182, + 50,147,187,103, 54, 85,177,216,204, 93,116,233,113,101, 62,222,218, 40, 4,223,174,255, 21, 0,133,205,102, 3,181,217,192,119, +144, 74, 60,171, 54,205, 40,184,208, 57,240, 56, 68, 95,244, 10, 64,109,150,148,172,248,210,195,160, 4,128,204,145,143,125, 87, + 94, 1, 64, 6, 87, 21,249,120,200,128,252,230, 66,189,209, 65, 89,171,106, 85,218,176, 97, 67,185, 88, 44,126,235,131, 93,222, +230, 66,187, 42,208,243,231, 70, 0, 75,253, 66, 90,246,238, 44,173,211, 72,200, 17,160,126,136, 47, 46,157, 57, 66,111,158,222, + 58, 70,155,241,244,103, 59, 43, 34,212,122, 51, 82,115,244,120,149,163, 71,122,158, 30,233,185, 6,164,231,233, 65, 8,129,222, +248,110,195,223,104, 50,159, 30,216,249,243,230, 30, 6, 19, 6,181,234,212, 27, 83,231,173, 11,220,185, 97,201,121,177,119,104, +115,123, 18,109, 41,165, 86, 66, 72,210, 71, 31,125, 84,119,207,158, 61,220,218,181,107,235, 30, 63,126,236, 8,192, 6,192, 36, +149, 58,138,183,252,240,237,153, 70,141, 26,237,125, 21,251,228, 34,128, 60,123,186,231, 87,106,243,145, 40,212, 57,119,108,128, +164, 89,231, 32, 31, 71, 4, 72, 84,157, 67,165,247,151,121,181,255,108,113,230,133, 85,153,105, 6,203,185, 44, 29,183,222, 43, + 53,223,174, 92, 65,179, 65,255,162, 79,191, 65,224, 18, 14, 76,122,237,139,194,202,229, 37, 19, 98,254,174, 39,144, 58,240,225, + 36,230, 65, 42,230,163, 69, 77, 55,148,227,122, 70,205, 86, 27,180, 6, 43,116, 6, 11,244, 70, 11, 60,252, 93,241,211,206, 3, + 72,206,212,225,215, 59,217,120,250, 66,133,224,138, 18, 80, 90,246,101,210,102, 53,107,186,247, 29,234,196,229, 16,112, 57,132, + 83, 51,180, 58,114,213, 38, 8,120, 28, 8, 28,196,144,136,120,112, 22,243, 33, 16,240,145,153,153, 9,131,193,128,128,128, 0, +135,210,173, 32,133,147, 84,140,224, 42,126, 48,153, 45, 56,121,245, 17, 22, 77,233,131,142,173, 26,128,240,165,120, 98, 8,135, +147,155, 19,108, 28, 14, 76, 22, 27,140, 38, 43, 0, 78,137,209,183,128,128,128,118, 18,137, 68,162,213,106, 85, 47, 94,188,184, +156,246,228,112,178, 87,173, 94, 99, 79,159,189,184,179,219, 7, 29, 17, 21, 29,131,131,191, 28,189,150,237,174,152, 86,248,157, +218,181,107, 55,241,240,240,144,230,228,228, 40, 31, 60,120,112,251, 45,159,126,137,196, 59,244,179,166, 45,218, 64, 45,207, 68, +198,203, 68,187,159,162,107, 4, 58,225,171,111,215,213, 15,169, 30, 82,223, 74,243,141, 87,205, 0, 39,124, 62,111, 77,253,170, +193,213,235, 23,118, 8,169, 17, 32, 45,221,100, 73,156, 59,125, 56,246,243,111,123,244, 27,129,139,103,143, 98,197,162, 47,118, + 74,100,158, 53,220, 92,101,245,106, 55,233,132,107,231,143,194,193,201, 7,174,238, 62, 45,134,142,156,212,161,223,208,113,184, +113,237, 60, 86, 47,153,181,195,106, 80,237,182,167,172, 82,239, 32,207,122, 13, 91, 13,113,114,243,134, 92,161,130,147,171, 23, +106,212,105, 56, 68,234, 29,244,165, 58, 35, 62,235,109,207,117, 27,165, 48,152, 40,242,212, 38,188,204,210, 33, 41, 61,223,104, +217,108,229,200, 9,178,218,136,212,129,199,115, 51, 63, 11,120,112,254, 34, 13,244,247, 38, 75,191,249,130,107,130, 3,178,228, +249, 38, 43, 75,105, 68,150,194, 8,181,222, 12, 55, 9, 15, 54,171,173,220, 79,221,121,106, 19,156, 10,242,104,173,182,183,207, + 13, 95,191,109, 95,200,253,216,212, 94, 43, 86,172,114,188,151, 80,196,100,241,243,163, 89, 34, 1, 23, 86,155,173,224, 78, 83, +134,193,230,241, 39,247,236,218, 1, 47,179,117,249,189,150, 57, 4,193, 97,141,224, 33,182,161,253,192, 25, 0,128,238, 93,243, +135, 47, 73, 72,211,224,216,205, 44,224,143,137,221,165, 95,139,117, 58,238,166, 93, 39, 62, 59,176,127,175, 76,111,229, 97,227, +169, 36,104, 13, 22, 56, 8,184, 16, 9,184, 16, 11,184,127,200,199, 46,219,104,229,231,220, 37,103,155,161,213,235,161,212,153, + 65, 1,220,126,166,134,206,104,129, 66, 99, 70,147, 80,215,119,125,246, 57, 1, 32,226, 77, 67,244,166, 89, 42, 18,145, 42,142, + 59, 69, 53, 10,215, 47,201,200, 21,205,217, 2, 80,174, 30, 92,188, 55,157, 99,209,215, 66,169, 91, 13,153,187,231,205,211,167, +142, 75,127,185,111,195,229,232,124,147,101,214,101, 99,249,151,131, 83,148,242,236,182,148,210,120,123,127, 76,226, 89,179,142, +216,209,241,226,119,171, 54,154,188,188, 43,216, 14,223,148,103, 42,180,214, 63,196, 16,173, 6, 3,135,218,168,192, 30,147, 85, +208,228, 97,154,247, 73,111,216, 40,197,252, 85, 7,176,120,218, 64, 72,197, 67, 29, 9, 33,142, 26,189, 5, 83, 22,108,198,242, +175, 70, 57, 57,138,120, 32, 4,208, 27,173,248,112, 80,111,251, 42,160,222,130,231,183,246,168, 85, 9,199, 31, 23,109, 46,108, +220,226,131,187,141, 27, 55,150,187,186,186, 66, 44, 22,255, 39, 82, 97,231, 69,187,184,222,133,153,114,164, 56, 57, 57,181,118, +118,118, 46,170,167,145,203,229, 71,222,166, 22,170,228,217, 23,211,147, 30, 52,106,222,182, 59, 46,159, 57, 66,111,158,218, 50, +166, 60, 99,244,184,186,185,190,140,124,240,188, 6, 33,110,249, 17,173, 2,147,101, 52,219, 16,232,237,136,151, 73,207,225, 34, +147,189,180, 87,207,209, 43,180, 39,225,208,143, 9,232, 86,117,122,236,129, 2,211, 51, 88,226, 19, 26, 29,243,240,222,162,110, + 67, 38,243, 58,245,155,192,221,240,237,164, 89,120, 35,137,181, 20, 76, 79,159, 62,125, 52,106,212,168,102, 55,110,220,176, 2, +208, 18, 66,204, 92, 46,215,209,104, 52, 10,218,182,109,171,120,242,228,201, 21, 20,147,180,248, 38, 45, 71, 30,244, 32, 34,213, + 7, 85,131, 27, 14, 14,116, 82,117,108,219,178, 41,154,214,242,199,203,150, 77, 1, 96,242, 11,181, 52,164,197,248, 45,251,170, +120, 86, 60,185, 97,219,177,197, 99, 6,118,152,226,215,125,193,138,212, 99,243, 74, 77, 68, 77,126,116,185,115,113, 54,158,199, +229,192, 73,204,135, 84,204,131,147,152, 15, 39, 7, 62,204, 22, 90,158, 39, 71,106,182,216,242, 35, 90, 70, 11,212, 58, 11, 46, +222,203, 64,186,194, 8,185,202, 4,157,201, 10, 10,154,255, 52,106,199,213, 60, 51,238,186,203,235, 99, 31, 88, 95,177,105,237, +247,206,135,174,167,188,238,209, 39,115, 20,194,201, 49,191, 55,246,213,171, 87,225,238, 94,246,211,190,205,102,195,193,211,183, +177, 98,251, 69,156,222, 58, 29, 14, 2, 46,234,244, 92,128, 17,189, 26,195, 70,109,120,254, 52, 38, 35,184,102, 93,111, 14, 71, + 12, 14, 33, 48,152,109, 0,104,137,251,211,104, 52,186, 39, 39, 39, 43,171, 85,171,230, 83,161, 66,133,126, 92, 46,151,138, 0, +195,145,189,185,218, 11,199,119, 59,106,116, 6,171,163, 69,177,181, 90,154, 46, 34, 56, 56, 24,132, 16,234,225,225, 33,184,120, +241,162, 58, 44, 44,204,243, 45, 77, 22, 71,236, 85,125,245,232,241,159,245,171, 26, 20,132, 3,187,183,130, 82,114,200,222,239, +239, 58,118, 3,223,204,252, 99, 15,195,207,231,173,169,191,124,193,228, 63,188, 55,126,230,138, 82,123, 29,138, 69,210,105,125, + 6,143,197,221,219,191, 99,217,130,207,247, 26,212,185, 35,204, 22,115,255,220,180,132,189, 85,106, 54, 6, 53,169,112,118,255, +247, 24, 56,108,140,168, 83,183,126,184,113,237, 60, 22,207, 26,191, 75, 43,207,252,200,222,241,191,108,148,255,113,219,206,189, +248, 58,131, 9,107,150,206,197,184,105,139,208,164, 93,119,254,195,123, 55, 63, 6,240,181,189,219,108, 48, 89,209, 54,204, 35, +223, 60,155,109, 56,154,192,229, 21, 87, 3,121, 92,194,169, 23,228, 2,157,209, 2,165,214, 92,250,141, 74,192, 79,151, 43,148, +149,126, 88,252, 25, 87,163,183, 32, 75, 97, 68,166,194,128,108,249,127, 12, 86,182,194,128, 44,133, 17,124, 30, 65,108,252, 11, +112,248,188,114,231,231,229,169,205,104, 84,221, 53,255, 28,125,203,214, 17, 51,207,185,241,233, 43,247,251,172, 88,177,210,225, +126,162, 10,209, 9,202,130, 72, 22, 23, 34, 62, 7,194,130,255,173, 54,160,172,159,144,121, 85,173, 50,124,212,152,246,206, 82, + 49, 82,227, 50,193,227,230, 15, 17, 35,243,242,135, 76,164,199,164,241, 99,225,225,238,130,228,108, 3, 86,255, 18,139,232, 71, +207, 96,211,149,111,179,215,108,220,219,101,244,196,207, 93, 56,124, 33,118,156, 73,204, 47, 39,215,138, 39, 55,143,233, 83,159, + 63,208,168,149, 57, 20,212,106,103, 0,128, 80,139, 53,191,186, 45,158, 63, 3,123,183,255,136, 51,145,153,175,147,183,174, 31, + 90,142,207,102, 46, 68,182,210, 88, 80,245, 75,143,100,189,241, 58,171, 72, 36,234, 79,175,139,152,163,226, 94,147,130,215,198, + 18, 52,140,111,152, 43,227, 27,239, 27,223,208,187, 95,204,195,255,166, 50,155, 14,255,100,138, 92,189,106,203,156,100,191,159, + 58,117, 76,114, 36,154,190, 54, 89, 38,109, 54, 93, 52,185,123,138, 82,158,213,169, 92, 38,203,171,122,109,145, 68,114,101,206, +194,213, 6,239, 10,149, 44, 39,239, 41,115, 84,122,235,159,194, 34, 2, 71,137, 85, 34,243,212,187, 4,134,175,224,235,140,115, +179,178, 30,105,202,138, 60,217, 40,197,241, 91,233,160, 52,255, 17,105,255,213, 87, 40,120, 50,135,213,150,223,172,114,238, 94, + 38,120, 5,121, 40,246,134,191,215,111,252, 81, 25, 17,166,208, 12, 89, 60,255,117,115, 97,147,186,249,145, 44,103,103,103,184, +184,184, 64, 42,149,194,158,166,195, 66, 74,234, 93,232,228,228,212,250,222,189,123, 14,206,206,206,224,114,185, 48, 24, 12,168, + 85,171,214, 91,157,232, 82,159,208,137,141,218,245,158,213,162, 93,119, 92, 60,125,152,222, 60,189,109,108,121, 7, 66,140,232, +208,236,216, 55,223,204,175, 50,103,209, 15, 34, 39, 7, 30, 30,171,141,224, 16,130, 64,111, 71,184, 75, 56,184,124,100,135,126, + 96,247,102,118, 15,142,231,239, 95, 97,231,242,181,155, 36,203,151, 44,104,235, 84, 33,228,162,234,213,211, 92, 0,208,164, 63, + 89,234,232, 19,250,168,226,239,103, 79,214,109,221, 27,222,126, 65, 29,203, 17,254,165,132, 16,109,124,124,124,194,156, 57,115, + 66,150, 44, 89, 66,185, 92,174, 13,128,104,213,170, 85,218,184,184,184,123,200,239,154,139,178,110, 54,237, 59,214,154, 34, 21, + 90,155,184, 57,114,106, 5,249, 56,162,105,173,252, 86,209,129, 17, 45,224, 31, 16,128,248,116,109,189, 92,173,141,175, 54,114, +131,214,109,140,190, 83,217,131, 59,198,162, 51, 62, 66, 25,131,201,150, 84,103, 11, 19,228, 11,163, 89, 78, 98, 62,108,249, 55, +246,114, 25, 45,131,201, 10,157,193, 10,157,209, 2,141,209, 10,173,209, 10, 27,205, 63, 39, 8, 33, 48, 89,108,176,235,177,249, +141,186,239,236,230,129,160,202,249,189,100,157,196,249, 67, 61, 56, 59,242,243,251, 72,187,187,195,203,203,203,174,168,168,209, +148,127,138, 27,205,182,215,205,250, 70,147, 5,148, 82,196,198, 62,157,158,148,144,208,179, 90,112,181, 86, 53,235,212,117,115, + 20,113, 0,160, 68,163,165,213,106,173, 78, 78, 78, 94,110,110,110,156, 87,175, 94,189, 54,207,213,234,181,181,252,114,248, 16, +250,244,233,173,126,124,251,254,235, 46,238, 58,157,142, 52,111,222,220,217,223,223,159, 99, 48, 24,148,229,219, 7,132, 72, 60, +171,247,242, 15,109,182,232,195,143,198, 85,111,219,161, 11, 46, 93, 56,139, 95, 15,239,249, 89,147,249,212,238,145,179, 67, 66, + 66,255,212,235,176,106,112,245, 63,245, 58,172, 84, 37,184, 84,163, 85,179, 78,195,198,148,240,112,230,248,126,170,231,152,198, +231, 39,188,147,253,251,214,127,245,245,224,143,103, 86,237,218, 99, 48, 62, 28, 54, 2, 60, 30, 23,151,207, 29,195,242, 5, 83, + 79,168, 21,153,195,237, 73, 19, 0, 0, 82,179,166,160, 90, 64,165, 79, 3,170,214, 70,228,205,107,120, 30,251, 48,230,254,157, + 27,181,170,133, 53,129,167, 95,224,167,164,102,205, 37,244,209, 35, 83, 89, 58, 70,189,254,197,136,225,195, 80,180,215, 97,211, +240, 16,119,242,230, 9, 0, 64,171,202, 52,109,249,126, 74, 92, 97,175, 67,155,201,248,162, 36, 93, 69, 94,214,193,203,191,221, +154,214, 51,162, 11, 39, 91,105,204,143, 96, 41,140, 5,139, 1,217,133,255, 43, 13, 8,246,147,226,105, 76,164, 77,175,200, 62, + 84,206,243, 82, 63,162,127,231, 71,133,117,215,102,163, 32,128,190,188,231, 55,229, 59,143, 93,186,108,133,195,253, 4, 53,162, + 19,149,249, 77,133,124,110,190,193,226,115, 94,155,174,252,222,236,101, 68,135, 8,119,241,200,225,131,144,173, 52,193,102, 3, +120, 92, 78,193, 34, 64,178,138,224,165, 74,139,236,188, 44, 36, 36,189,128, 60,253, 57, 56, 28, 14, 60,252,170,195,222,240,163, +149, 10,125,181, 70, 26,214, 47,162, 21,239,240,239,105,112, 20,241, 96, 80,101,224,212,190,239,179, 12,106,229, 34,157, 86,125, + 88,151, 19,151,106,239,182,115, 8,201, 82,170,245,222, 34, 62, 23, 7,182,255,128,254, 35,198, 23,236,148,252, 63,211,103,127, + 3,112, 8,114,243, 84, 32,132,148, 55, 74,122,167,140,215,111,195,251,208, 64,113,230,234, 15, 15, 10, 37, 63,141,210, 83,103, + 79, 31,147, 92, 79, 18,225,246,211,180, 2,147,149,101, 91,248, 73, 68,138, 74,145,219,153, 82, 26, 91,174, 18,112, 56,157, 7, +142,156, 22, 19, 84,189,166,225,210, 67,117,162, 92, 99, 46, 49,207,161,105,191, 57, 49,119, 79,172,237,170, 48,199, 79,144,250, +213,178,218, 44,150,165,218,204,167, 11, 74,104, 58, 20, 46, 88,125,224,117,179,225,151, 75,118,228,255,111,181,194, 74,109,160, + 54, 96,210, 87,235, 97,177, 89, 97,179, 90, 97,179, 82,152,173,212,177,172,226,122,249, 85, 58,156,247,100,127,232,144,175,255, +220, 92,232,226,226, 2,119,119,119,184,187,187,163,208, 24,189,107,115,161,179,179, 51,164, 82, 41,174, 93,187, 6,177, 88, 12, +137, 68, 82, 46,221, 34, 38,107, 66,195, 54, 61,127,104,215, 99, 20,206, 29,222, 72,239, 92, 61, 54, 78,155,241,116,179,221, 17, +122,171,149,152,205,102, 68,116,106,243, 34, 42,230,217,233,217,211, 62,238,210,172,219, 56, 81,211,144, 10,208, 27,173, 72, 73, +122,142,203, 71,182,233,171, 87,241, 61,211,190,101,227, 23,102,179, 25, 86,171,181,204, 27,185,222,104,202,230,242,197,146, 65, +131,134,240,239,220,190,125, 72,234, 85,253,128,149,112,238, 19,106,171, 67, 8,233, 83,167, 78, 13,152,204, 54,104,181,202,188, +242,110,179, 74,165, 74,216,186,117,107,149,225,195,135, 59,214,172, 89,147,255,252,249,115, 44, 95,190, 60, 71,165, 82, 37,216, +171,113,246,234,211, 85, 60,146, 23, 39,180,153, 6, 7, 58,169, 58, 38,183,104,138, 65,221, 90, 96,239,137,235,184,124,237, 6, + 94,168,165,247,212, 22,222,145,151, 47, 82, 13,181,220,148,135,122, 52,173,196, 61,176, 61,239,144, 87,219,153, 3, 40, 21,157, +205,186, 60, 79, 99,255, 77, 28, 80,233,204,112,118,204, 31,239,169, 48,178,197, 37,196,110, 71, 68,128,132,107, 55, 34,107, 55, + 8,174,137,168, 4, 5, 50,229, 6,232, 12, 22,216,108, 20, 54, 80,184, 59, 9,225, 32,224, 32, 57, 41, 1, 54,106, 74, 44,231, +229, 34,171,117,171,214, 60,128,128, 16,202,227,243,120,160,200, 31, 95, 81, 44, 22,171,189,188,188,236,138,104,153, 44, 22,244, +233,210, 24, 77, 26,214, 65,207,113,249, 99,102, 94,248,121, 6, 92,165,124,236,221,185, 25,201, 87, 86,238, 12,106, 54,254,236, +195, 7, 49,125, 99,162,126, 31,242, 65,125,113, 61, 31, 94,170,160, 36, 61,181, 90,125,136, 16, 34, 20, 8, 4, 93, 90,181,106, +229,118,232,208, 33,185,135,135,135, 77, 40, 16,100,245,232,222,205,198, 23, 8,114, 11,215,253,237,183,223,248,227,198,141,115, +202,203,203, 75,206,200,200,184, 65, 41, 53,151,254, 32, 24,218, 1, 28,236, 1, 33, 14, 82,177,227,139,166, 29, 6,249, 53,108, +210, 88,214,171, 79,127,136,132, 34,156, 59,123, 26,107, 86, 46,217,175, 78,123, 60,178, 60,123,242,125,245, 58, 76, 73, 78, 76, +208,234, 12, 97,181, 27,180, 33,215,206, 30,153, 76,136,231, 74,174,200,249,251, 14,125,198, 87, 77, 72, 85, 99,205,183,211,225, + 42,147, 32,241,249, 19, 93,220,227, 7,235,205,122,229,116,123, 77, 22, 0, 56,230, 88,251, 54, 29,214,197,213, 96,178,226,234, +197, 19,122,155,197,214,229,198,149,147,207, 43, 86,111,232, 80,187, 97,123,215,236, 95, 55,247, 1,176,183, 44,157,148,199,127, +142,224, 6,132, 52, 74,188,112,241,188,204, 59,176, 22,151,128,192,100,208, 35, 43,254,142, 69,155,241, 68,169, 72,121, 96, 87, + 47,220,156,151,248,106,230,188,239, 38, 52,108,208, 64, 66,225,240,135, 8, 86,161,193,202, 86, 26,225,225, 36,132, 78,153,133, +184, 59,167,245,218, 44,110,169,227,157, 89,140, 26,199,236,204,140,215, 77,108,234,140,167, 77, 74, 91, 63, 59, 51, 67,104, 49, +106, 28,203,190,213,113,225, 44, 17,226, 65,226,171,215,137,239, 34,126,126,110,150,144,207,125,157,167, 85,120, 45, 40,131, 54, + 2, 7, 23,188,202,209,131,128,194,102,181,192, 98, 54, 66,165, 84,226, 85,106, 58, 50,210, 51,160, 82,201,225, 40,117, 69,237, +122,141,224, 36,113,192,253,203,251, 65, 41,181,107, 92, 67, 51,225,135, 52,108,210, 82,244, 48, 41, 63, 23,203,129, 79,113,108, +207,146, 28,181, 50,179,165, 42, 53, 54,174,188,215, 98,139,213,122, 62,250, 81, 92,173,138,190,149,201,189,231, 10,236,252,105, + 45,140, 5,145, 77,179,217,138,135,201, 26,164,229,106,145, 28,255,152,218,172,214,127,205,132,212,188,146, 3,128,224,213,169, + 93, 3,157,134,246,194,143, 63,174, 71,124, 66,146,109,209,228,174,201,106,149,252, 3,123, 77, 86,209,217,189, 53,233, 79,150, +142,252, 49, 49,229,104, 84, 46, 71,103, 44,125,126, 43, 7,207, 64,180, 28,185,252,140, 78,149, 43,180, 26,180,188, 99, 59, 71, +238, 41, 78, 51,223, 65,195,184,232,243,129,144,138,121, 32,132,160,176,185,112,221, 55, 99,225, 40,202,111, 91,214, 25, 44, 24, + 58,101, 5,118,174,152, 10, 10, 96,112,255,235,218,146,202, 89,164,105,175,226,139,164,204, 87, 29,186,127,126, 65,111, 18, 25, +186,245, 30,126,183, 65,131, 6,114,177, 88, 12,177, 88, 12,103,103,103,184,186,186,194,197,197,165,204,109, 47,113, 48,210, 34, +189, 11, 57, 28, 14, 56, 28, 14, 36, 18, 9,164, 82, 41, 36, 18, 73,169,154, 37,154,172,214, 61,214,181,239, 57, 26,231, 14,111, +162,119,174, 30,251, 88,155,241,244, 39,123,143, 81, 65,115,207,253, 62,125,250,132,141, 27, 55, 78, 48,111,218,184, 51, 39,206, + 94,142, 61,112,124, 83,247,188, 60,185, 63,165, 20, 46, 50,217,203,129,221,155, 29,107,219,188,225,139, 11, 23, 46,216,246,236, +217, 99, 32,132, 60, 40,171,156,217,153,153, 63, 95, 56,127,113,126,203,214,109,176,121,251,158,214, 49,143, 30,183,126,254, 60, + 14,254,129, 65,168, 92, 37, 24, 90,226,138,139, 87,174, 65, 45,207,252,217,158,114,190, 17,213, 34,121,121,121,191, 15, 28, 56, +176,211,245,235,215, 57, 3, 7, 14,212,102,103,103,255, 86,248, 28, 85, 82, 52,171,168,230,239,235,123,101, 1,248,185, 82,155, +143,246,191, 50,201, 63, 5,176, 36, 32, 48, 0,151,175,221,192,141,235,183,214,103, 59, 6, 44, 24, 57,244,163,177,149,122,112, + 71,247,104, 90,137,235,229,234,136,221,155,150,115,143,222, 72, 90,145,148, 99,221, 12,224, 27,123,142,209,235, 27,135,202,132, +230, 53,220, 96,182, 82,216,104,254, 5,215,201,129, 95,236,133,183, 56, 77,158, 81, 52,242,227,113,227,158,215,174, 83,239,179, +161, 31,125, 44,168, 23,228,143,219,207,228, 0, 33,112,243,145, 32, 45, 45, 13, 87, 15,110,178,228,189,122,178,158,203,181,125, + 93,158,186,148,155, 20, 85,173,200,122, 99,179,179,179,113,249,242,101, 20, 26, 44, 79, 79,207, 98,141,214,155,154, 57, 25,169, +191,125,179,108, 99,243, 49, 31,246, 70,183, 54,181,112,229,206,115, 24, 11,198,107, 42,236, 74,158,112, 99,131,240,211,129, 65, +198, 9,125,170, 43,117,102, 97,210, 87,137,138,171, 69,123,197,190,169, 73, 41, 53, 18, 66,142, 62,125,250,180, 69,221,186,117, + 43,157, 60,121, 50, 55,230,214,153,201, 69,203,241,249,231,159, 75,127,252,241, 71, 71, 74,233,111, 6,131, 33,222,174,109,231, + 96,119,228,221,187,238, 38,179, 13,215,110,221,175,209,190,121, 61,216, 40,112,231,206, 29,108,222,178, 89,255, 32,250,222,247, +154, 12,159,175, 75, 50, 47, 37,237, 79,235, 59,244, 58, 44,170,153,246, 42,233,251,115, 39, 14,238,108,216,186, 59,134, 76,250, +250,235,203, 39,246,204,175,223,178, 27,167, 70,195, 78,136,188,113, 17,231, 79,158,254,206,164,206,157, 95,214, 60,164, 37,149, + 83, 36,118,252,164,102,253,214, 72,126,145,132,196,184,135, 63,235,114,226, 82,165, 62,161, 63,167,166,188,248,184, 74,173,230, +184,126,102,239,228,146,140, 86, 89,117,222,223, 83,188,233,228,241,163,131, 82, 82, 54,248,104,116,122, 17,165, 84, 47, 18,242, +210,165,156,146,123,168,255,249,184, 63, 50, 73,220, 42,247,233, 63,244,227, 19,107,214,172,228,123,187, 56, 34, 61, 79, 15,165, +206, 4,149,214, 4, 14, 33,168,230, 39,129, 86,149,139, 43, 7,151,153,141,234,188,129,148, 62, 51,149,164, 41,245, 14, 93, 8, +208, 73,159,143,191, 4,161,204,223,175, 74,251, 89,165, 70,235, 84,169,209,221, 63, 31,127, 44,132, 82,218, 94,234, 29,170, 42, +156,235,176,184,109, 39, 36,255,252, 30,210,214, 31, 38, 75,254,248, 99, 22, 27, 96,181,217, 10,162,124, 0,125,221,158, 79,202, +216,118, 98,219,119,226, 55,164,102,200,161, 51,154, 97, 48, 90, 96, 50, 91,193,225,114,225,226,234,130,224,202,225,144,185, 56, + 35, 35, 61, 21, 55, 46, 28, 69,108,244,149,223, 8,197, 2,109,102,236, 5,123,142,145, 64,236, 18,226,235,231,195, 73, 83, 26, + 33, 22,114,113,239,202, 73,147,217,104,248,222, 30,147, 85,156,166, 60, 39,119,197,103,211,190, 24,188,109,235,118,159,176, 42, +206, 72,201,214, 33, 37, 75, 15,149,222, 92, 96,196,108, 48,168,179, 17,125,113,123,186, 85,175, 90,241,175, 55, 90, 22,147, 94, +117,232,244,109,247, 25,243,151,113,159, 61,143, 55, 47,252, 52, 34, 69,167, 86,118, 45,119, 36,171, 8, 91, 39, 84,222, 91,190, +111, 20, 12,105,242,117, 82,233,207,223,111, 54, 23, 82, 27,108,148,226,216,173,244,215,205,133,182,130,204,203,168,231,242,114, + 53,237, 69, 63, 85,237,210,233, 50,100, 79,158,125,159, 7, 0, 92, 46,247,245, 82,152, 75,165,215,235,141,111,211, 92,248,102, +226,187,205,102,131,179,179, 51,196, 98,113,185,155, 36, 37,222, 33,131, 26,182,233,249, 67,251, 94, 99,112,254,151,159,232,157, + 43, 71,199,107, 51,159,110, 42,119,142, 66, 94, 94, 12, 33, 36,238,251,239,191,175,183,121,243,230, 42,211,166, 77,139,223,241, +195,252, 53, 0,144,147,147, 63, 7,112, 84, 84, 20, 29, 63,126,188, 65,175,215, 39,228,229,229, 69,150,213, 1, 2, 0,116, 89, +142,139, 55,175, 91, 82,251,229,171,180,222, 65,181, 27,193,179, 74, 35,248, 84,107,140, 60,149, 9,183,159,165, 34,254,241, 5, + 60,190,118,240,164, 86,106,153, 95,222, 50,215,173, 91,215,159,195,225, 84, 86,171,213, 62, 53,107,214,172, 43,145, 72,162,234, +214,173, 27,206,227,241, 82,238,222,189,155, 84, 30,173,164,203,219, 12,149,218,124,180,250,133,202,169,109,124,186, 54,252,133, +202, 41, 74, 43,146, 77,205,188,176,202,224,221,233,251, 21,212,148, 29,115, 96,187,242,208,238, 77,203,185, 67,199,126,110,125, +168,112,253,148, 39, 22,158,251,118, 68, 88, 57,154,165, 56,105, 19,134,247,252,207,240, 14, 5,145,172,130,255,237, 10,211,203, +229,247, 21, 0,190, 20,251,213,250,225,225,167,227,190,169,211,176,249,176, 86, 31, 12,228, 88, 4, 82,156,249,101, 3, 77,136, +190,120,128, 71,173,179,181,118,204, 6, 80,102,115,144,209, 88,166,201, 42,182,185,231,165,164,205,129, 61, 91, 70, 28,250,229, +240,183,189,122,244,116, 95,247,213, 0, 44,219,120, 4, 18,177, 8,212,102,195,192,118, 1,253, 30,239,233,220,221,223,219,161, +194,161, 75, 41, 87, 39,173,124,248,165, 86,107,138, 45, 43, 18, 83, 96,156,175, 57, 57, 57,101,181,104,209,162,137, 72, 36, 34, +217,217,217, 60, 47, 47, 47,139, 76, 38, 51,166,164,164,104, 13, 6,195, 33, 74,169,166, 60,219,105, 50,219,144,152,161,199,175, +135, 15,225,254,173, 11,120,252,248,169,234,241,163,199,107, 9,143,174, 84,167,199,230,190,205,190,179, 21,219,235,144,150,187, +215,161,213,160,218,189, 99,253,194,118, 90,189, 97, 68,221,102, 17,168, 84,163, 57,199,100,182,226,193,157, 75,184,116,112,229, + 50,163, 42,103,198,187, 28, 99,191,138, 85,130, 41, 87,136,223, 47,159, 0,181,217,214, 3, 0,181,217,214, 71, 93, 63,249,113, +227,174,163,225,230, 85,169, 46, 33,132,148,119,190, 71, 0, 16,240, 56,154, 83,135,182,253,146,152,152,136, 39, 79,158,224,217, +179,103,200,205,205,197,238,221,137,229, 58, 62,154,220,196,115, 82,247,160,206,125, 7, 12, 57,214,111,208,135, 14, 85,130,195, + 56, 33, 21, 93,225, 46,229,225,233,179, 36,196,222,141,182, 61,189,125, 82,111, 82,102,246,210,230, 38,150,104,252, 36,158, 53, +189, 9,135,206, 40,156,187,176,105,211,230, 33, 95, 44,250,182,137,187,167, 87,177,215,241,156,172, 76,225,244, 73, 71, 67,110, +220,252,221,174,185, 14,109, 86,107,206,216, 17, 3,109,220,252,137, 66,241, 58, 78, 77,242, 15,118,254,195, 84,254,251,212,102, + 41, 51,130,255, 81,239,150,176,216,108,208,232, 76, 80,106, 12, 80,168,244, 72,203,204,193,253,232,104, 92, 57,118, 20,207,159, +222, 79, 48, 27,141,103, 57, 28,114, 80,155,254,244, 74,249, 90,154,120, 85,220,221,220,144,144,171,134,131,144,135,164,216,187, + 6,141, 82,177,235,109,235,145, 54, 59, 54, 77,226, 29,210,105,224,192, 65,167,219,117,238, 33,107,216,172,131,163,135,179, 11, + 4, 60,138,184,196, 84, 68,254,118, 90, 19,127,255,170,210,108, 84,119,121, 31,179,190,252, 47, 99, 87,175, 67,147, 65,211,125, +112,207,214,135,185, 92,158,208,102,179, 24, 76, 70, 67,223,119, 49, 89,127, 21,148, 90, 83, 70, 12,238,253,135,103, 3,139,141, +138, 7,247, 63,163, 43,250,172, 96,182, 82,199,193,253,127,211,230, 95, 64, 74, 78,236,123,221,180,183,247, 92,202,139, 23, 57, +119,114,115, 13,151,222,181, 39, 96,209,185, 11, 75,233, 93,168, 9, 13, 13,125,109,174,184, 92, 46,172, 86,171,221, 23, 34,129, + 72, 60,166, 93,143, 81,228,252,145,159,232,237,203, 71, 38,104, 51, 99, 55,190, 67, 59,179, 9,192, 45, 66,200,195,217,179,103, + 55,244,246,246,246,158, 59,119,174,131, 82,169,228,175, 91,183, 78,159,157,157,157,174, 84, 42,111, 80, 74,117,246,107, 70,154, + 1,244,145,122, 87,111, 75, 15,253,212,209,197,163, 66, 39,153,103,197,170,242,172, 87, 9,138,172,212,179, 0,206, 23, 12, 20, + 89, 46,194,195,195,131, 56, 28,206, 64, 0,181, 37, 18, 73, 53,169, 84, 42,162,148,134, 18, 66, 98,108, 54, 91,116,205,154, 53, +143, 3, 40,215,241, 75,186,188,205,208,106,194,150, 61,185, 90,155,192,200, 17,236, 73,186,188,205, 0, 0, 25,103,167,105, 1, +252,234,221,118, 70,159,163, 55,146,214,196,228,201, 38,103, 94, 90,124,180,188,101,150,191,188, 87,237,125,213,127, 93,106, 76, + 10,128, 17, 18,239,144,229, 15,162,110,204, 35, 20,124, 43, 44, 11,181, 25,113,119,223,135, 62,159,207,215, 87,168, 80,161,216, +222,133, 34,145, 72, 95,250, 49,191,108, 1,176,153,144, 54,219, 15,239,223, 62,226,200,209, 95,191,109,213,190,151,187, 67,197, +138,168,236, 69,176,125, 70,253,201, 23,162,178,110,247,248,226,234,143,241,169,250,104, 74,105,185,242, 97, 84, 42, 85, 44, 33, + 36, 79,173, 86,247,164,148,190, 36,132,248,231,229,229,221, 51,155,205, 15,202,109, 8,108, 24,210,180,105,163,221,132, 16, 30, +181,216,150,222,224,115,247,232,211, 30,167,188,141,177, 40, 74, 88,101,103, 76,153,187,186,126,213,106,213,235, 23,206,117, 88, +171,146, 19,198,125,185,188,126,165, 42,193,245,255, 51,255,161,180,172,115,146, 18, 66, 70, 30,222,178,244,106,212,205, 75,179, + 60,124, 43, 85, 74, 79,137,127,252,242,217,189,111, 44, 58,197,225,119, 61,206,137,207, 98, 86,110,254,254,203,105,105,175, 18, + 54,107, 50, 99, 31, 2,128, 38, 51,246,161,163,119,245,175,178,211, 83,166,229,100,198,127,255,182,251, 66,163,209,164,238,218, +181,203,165,121,243,230, 28,111,111,111,100,101,101,225,210,165, 75, 54,155,205,246,170,188, 90,234,156,248, 75,132, 84,117,251, +121,227, 15, 75, 5, 18,167,174, 22,139,197,143, 82,128,199,227,165, 25,181,202,211, 42,142,228, 11,154,155, 88, 70,189,180, 17, + 0,156,194,185, 11,109, 54, 27, 89,186,102,123, 18,223,193,169,216,249, 17,205,122,149,163,205,102,179,123,174,195,188, 23,119, +171,190,183,155, 53,165, 11,234, 54,104, 50,203,108, 54,233,145,159, 47,166, 7,160,167, 20, 57, 28, 14,185,194,181,153,207, 40, +222,225, 97,138, 16, 56, 83,194,131,147,152, 7, 2, 2,181, 34,151,150, 39, 39,171,216,227,157,241, 52,134,144, 54,129,167,140, +251,135, 95, 60,119,178,191,213,106,173, 92, 80,115, 18, 13, 58,205, 1,117,154,235,207,148,222,177,224,159,207,137, 66,179,197, + 43,229,196,142, 69,254,220, 62,255,211,228, 36,220,110,240, 62,245,210, 50,114,183,119,238, 53,141, 38, 38,101,222, 78, 78, 55, +252, 92,116, 90,157,119,213,124,249, 50,235, 82, 65,115,161,225,207, 17,138,183,235, 93,248,218, 24,235,117,223,173,154, 61, 8, +122,157,102,135, 54, 51,118,251,251, 49,177, 84, 7,224, 10, 33, 68, 54, 97,194,132,112,169, 84,202,207,206,206,190, 69, 41, 85, +188,173,166, 58, 35,246, 18,128, 75, 0,102,188,143, 50, 70, 69, 69,197,215,171, 87,111, 39,135,195,169, 76, 41,245,166,148,202, + 10,140,108, 54,143,199,123,245,232,209,163, 87,111,181,237, 6,167, 83,106, 35, 55,216, 66, 93, 79,255,201,124,184,123,157,123, +145,107,253,137, 43,113,248,159,201, 49,208,100, 60,141, 1,208,247,125,235,150, 54, 78,150,253,245,232, 63,134,235,242,137,109, + 35, 56, 66,217,194,246, 33,122,109,167,207, 94,125,115,237, 65,214, 45, 74,169,234, 29,234,104,150, 80, 40,212, 17, 66,252, 5, + 2,129,206,104, 52, 70,191,213,254,203, 55,249,158,239,115,223,217, 64,238,214,175,223,160, 92,235,219, 17,201,219, 94,176,188, + 87,212,233, 79,190, 65, 65,243,247, 31, 34, 20, 25,177, 11, 1, 44,124, 23,237, 59,119,238, 28,251,254,251,239, 21,107,214,172, + 9,176, 90,173,142, 70,163, 81,171,211,233, 18, 83, 82, 82,126,127,187, 99,254,220, 8,224,211,130,229, 45,162, 46, 79,210,165, +222,213, 87, 55,107,218,236,211,252, 7,116,186, 58,241,202,234, 41,165,125, 71,234, 93, 93, 87,116,253,210,230, 58,124,175,199, + 37, 51,118, 61,128,245,127, 93,164,194,150, 53,164, 95, 79,160, 96, 96,110,155,197,146,245, 94,100,243,207,249, 45,120,203, 73, +210,255, 9, 80, 74,211, 0,108, 42, 48,204,244, 47,251, 33,123,243, 85,152, 38,211,100,154,255, 46, 77,123,102, 39, 96,251,147, +105,254,149,154, 98,191,154,254, 0, 96,207,164,235, 37,173,207,246, 39,253,215, 36,180,219,177, 63,198, 22, 99,182,236, 27,176, +148,193, 96, 48,254,130,167, 61, 27,219, 11,140,255, 38,246, 26,172,183, 93,159,241,175,187,166,149,152, 19, 77,144, 63, 11,118, +113, 95,178,219,169, 18, 66, 58,188, 69,161,206, 51, 77,166,201, 52,153, 38,211,100,154, 76,243,223,165, 89,150,246,223, 49, 82, + 86, 76, 68,235, 68, 65,243, 97,254,192,108,127,213, 2,160, 3,211,100,154, 76,147,105, 50, 77,166,201, 52,153,230,191,105, 1, + 48,182,240,127, 14, 24, 12, 6,131,193, 96, 48, 24,127, 9, 44, 71,139,193, 96, 48, 24, 12, 6,227, 29, 40,174,233,144, 25, 45, + 6,131,193, 96, 48, 24,140,247, 64,105,201,240,172,233,144,193, 96, 48, 24, 12, 6,227, 29, 40,140,104, 17, 66,124, 9, 33, 99, +139, 70,184,152,209, 98, 48, 24, 12, 6,131,193,120, 15, 80, 74,211,222,140,110, 17, 74, 41, 78,156, 56, 65, 35, 34, 34, 8,128, + 63,252,207, 96, 48, 24, 12, 6,131,241,255,193,223,217,139, 16, 66,124, 1, 68, 20,221,156,194,225, 29, 56, 69, 55,144, 29,102, + 6,131,193, 96, 48, 24,255, 77,179,245,119, 44,119, 97, 36,171,200,242,122,210,236,215, 70, 43, 34, 34,130, 48,179,197, 96, 48, + 24, 12, 6,227,191,197, 63,209,139,112,222,220, 64,118,152, 25, 12, 6,131,193, 96,252, 55,205,214, 63,105,123,216,240, 14, 12, + 6,131,193, 96, 48, 24,239, 64,105, 57, 90,164, 96,168,120, 6,131,193, 96, 48, 24, 12,198,219, 25,173,177, 69,123, 27, 22,125, +205, 34, 90, 12, 6,131,193, 96, 48, 24,239,193,108, 21,251, 62,139,104, 49, 24, 12, 6,131,193, 96,252, 53,252,165, 3,150, 18, + 66, 58, 48, 77,166,201, 52,153, 38,211,100,154, 76,147,105,254,147, 41, 28, 17,190,224,255,177, 5, 57, 91,127,189,209, 98, 48, + 24, 12, 6,131,193,248, 23, 16, 65, 41,221, 84, 36, 55, 43,130, 25, 45, 6,131,193, 96, 48, 24,140,247, 72,113,147, 75, 51,163, +197, 96, 48, 24, 12, 6,131,241, 30, 13, 86,209,215,204,104, 49, 24, 12, 6,131,193, 96,252, 69, 48,163,197, 96, 48, 24, 12, 6, +131,241, 23, 65, 0, 20,219,115,128, 82,122,222,110,145,183,232,125, 80,150, 62,211,100,154, 76,147,105, 50, 77,166,201, 52,255, +121,154,101,105,151,199,127,252,207,152,169,255,140, 12,127,162,224,239,127,154, 15, 41,165,127,217, 2,160, 3,211,100,154, 76, +147,105, 50, 77,166,201, 52,153,230, 63,121, 1, 48,182,232,223,162, 11,107, 58,100, 48, 24, 12, 6,131,193,120,247,168, 86,209, +113,180, 94,143, 18,207,166,224, 97, 48, 24, 12, 6,131,193,120, 7,138, 27,214,161, 16, 22,209, 98, 48, 24, 12, 6,131,193,120, + 7,222,156,231,176,232,107,102,180, 24, 12, 6,131,193, 96, 48,254, 2,195,197,140, 22,131,193, 96, 48, 24, 12,198,123, 52, 89, +127,138,110, 21,100,201,227,196,137, 19, 52, 34, 34,130,176, 93,197, 96, 48, 24, 12, 6,227,191,193, 63,209,139,112,138,110,216, +137, 19, 39, 40, 59,204, 12, 6,131,193, 96, 48,254, 91, 38,235,239,232, 69, 8, 33,190,133,189, 13, 11, 22,223,194,207, 88,175, + 67, 6,131,193, 96, 48, 24,140,119, 35,162,104,207,195,130,230,195, 77,204,104, 49, 24, 12, 6,131,193, 96,188, 7,138, 75,132, + 7, 88,142, 22,131,193, 96, 48, 24,140,255, 17,254,137, 94,228,181,209, 98, 48, 24, 12, 6,131,193, 96,188,133,153, 42, 38,154, + 85,216,148,200,140, 22,131,193, 96, 48, 24, 12,198,123, 50, 92,111,142, 18,207,198,209, 98, 48, 24, 12, 6,131,193,248, 11, 76, +214, 95,110,180, 8, 33, 29,152, 38,211,100,154, 76,147,105, 50, 77,166,201, 52,255,233, 38,171,240, 47,155, 84,154,193, 96, 48, + 24, 12, 6,227, 61,194, 38,149,102, 48, 24, 12, 6,131,193,248,139, 96,147, 74, 51, 24, 12, 6,131,193, 96,252, 63, 27, 46,102, +180, 24, 12, 6,131,193, 96, 48,222,163,201,122,211,108,177, 28, 45, 6,131,193, 96, 48, 24,140,119,160,180, 28, 45, 2,160, 67, + 9, 95, 58, 95, 14, 23,215,225, 45, 10,117,158,105, 50, 77,166,201, 52,153, 38,211,100,154,255, 46,205,178,180,203,227, 63,254, + 87,249,195, 80, 15,148,210,191,108, 1,208,129,105, 50, 77,166,201, 52,153, 38,211,100,154, 76,243,223,180, 0, 24, 91,248, 63, +107, 58,100, 48, 24, 12, 6,131,193,120,199, 8, 86, 73,159, 49,163,197, 96, 48, 24, 12, 6,131,241, 14,176,113,180, 24, 12, 6, +131,193, 96, 48,254, 34, 8, 33,190, 5, 35,194, 23,254, 13,103, 70,139,193, 96, 48, 24, 12, 6,227,253, 16, 81, 16,213, 42,252, +203,140, 22,131,193, 96, 48, 24, 12,198,251,162,164,113,180, 8,165, 20, 39, 78,156,160, 5,175,219, 68, 68, 68, 92, 97,187,139, +193, 96, 48, 24, 12,198,255, 39,255, 84, 47,242, 58,162, 21, 17, 17, 65, 0, 92,102,135,154,193, 96, 48, 24, 12,198,127,131,127, +162, 23,225,188,225, 36,219,176,195,204, 96, 48, 24, 12, 6,227,191,193, 63,209,139,240,222,112,145, 12, 6,131,193, 96, 48, 24, +255, 21,254,174, 94,132, 16,226, 11, 32, 2,192,137,130,191,175,135,124, 96,227,104, 49, 24, 12, 6,131,193, 96,188,163, 71,164, +148,110,250,195,212, 59,133, 38,172, 96,168,120, 6,131,193, 96, 48, 24, 12,198, 91, 80,220,200,240,133,134,139, 25, 45, 6,131, +193, 96, 48, 24,140,191, 8,214,116,200, 96, 48, 24, 12, 6,131,241,142, 20,141,106, 21,109, 62,228,252,197, 63,218,129,105, 50, + 77,166,201, 52,153, 38,211,100,154, 76,243,159,110,178, 40,165,155, 10,151,162,166,139,141, 12,207, 96, 48, 24, 12, 6,131,241, + 23,193,154, 14, 25, 12, 6,131,193, 96, 48,222,129, 55,163, 88, 69,155, 14,153,209, 98, 48, 24, 12, 6,131,193,120, 15,102,171, +184,247, 89,211, 33,131,193, 96, 48, 24, 12,198, 59, 80,220,240, 14,204,104, 49, 24, 12, 6,131,193, 96,252,197,134,139, 0, 40, +182,231, 0,165,244,124, 57,132,203,221,251,160, 44,125,166,201, 52,153, 38,211,100,154, 76,147,105,254,243, 52,203,210, 46,143, +255,248, 95, 54, 88,175,155, 18, 41,165,127,217, 2,160, 3,211,100,154, 76,147,105, 50, 77,166,201, 52,153,230,191,117, 97, 77, +135, 12, 6,131,193, 96, 48, 24,127, 17,118, 27, 45, 66,136, 39,159,207,159,229,232,232,248,163,163,163,227, 70, 62,159,255, 61, + 33,196,181,188, 63, 40,149, 74, 39,251,250,250, 62,241,245,245, 77, 9, 12, 12, 60,233,236, 44,249,172,170, 3,105, 69, 8,225, +191,135,208, 29,135, 16, 18, 66, 8,249,204,209,209,241,177, 88, 44, 78, 34,132,236, 36,132,124, 70, 8,241,120, 23,237,133, 21, + 72,223,152,207,122, 29, 89, 88,129,244,125,227, 55, 35,124,124,124,174, 17, 66, 58,189,175,131, 50, 88, 66, 58,244,151,146,228, +254, 82,146, 60, 88,242,246,131,194, 57, 59, 59, 15,243,243,243,187,225,225,225,241,202,207,207,239, 55,177, 88,220,175,156,251, +211,203,199,199,103, 89, 64, 64, 64,108,133, 10, 21, 86, 21,204, 78,254, 63, 75, 43, 7,210,178,169, 3,201,106, 38, 34,170, 22, + 34,242, 99, 51, 17,233,216,137, 16,199,183,172, 75, 45, 8, 33, 7,101, 50,217, 61, 62,159,127,156, 16,210,167,160,126,245,225, +243,249,199,101, 50,217, 61, 66,200, 65, 66, 72,139,183,172,167,203, 8, 33,175, 8, 33,139, 11, 94,127, 18, 16, 16,160,170, 91, +183,110, 82,221,186,117,183, 5, 7, 7,127,104,175,158, 68, 34,233, 24, 16, 16,112, 40, 48, 48, 48,169, 89,179,102,185, 21, 43, + 86,124,234,239,239,191,221,193,193,161, 13,187,196, 49, 24, 12,198,127, 25, 59,194,131,221, 1,124, 11, 96,109,116,116,116, 36, +165, 52,146, 82, 26, 25, 29, 29, 29, 9,224, 71, 0, 75, 80, 66, 8,241,205,247,221,221,221, 23, 44, 92,184, 80,159,150,150, 70, +179,178,178,104,108,108, 44, 93, 57,231, 75, 91,103, 55, 30, 13,242,116,213,250,250,250, 62, 15,172, 88,113,111, 45, 41,231, 75, + 0, 85,203, 19,174, 4,224, 42, 22,139,111,205,153, 51, 71,125,237,218, 53,181,209,104, 84,219,108, 54,117,106,106,170,250,252, +249,243,234,230,205,155,171, 1, 76, 1,192,125,155, 16,232,215,126,184, 66,183,124, 69,191,246,195,149,162,239,135,134,134, 62, +178,217,108,180,111,223,190, 6, 0, 21,222, 37,172, 90, 1,112,168,229, 12,151,126, 82,100, 88,182,127, 67,233,186,105,180,159, + 4,201,111,163,233,229,229,245,235,228,201,147,149,175, 94,189,162, 6,131,129, 38, 39, 39,211,113,227,198, 41,188,188,188,118, +217,185, 63,221,195,194,194, 50,110,220,184, 97,147,203,229,244,242,229,203,182,218,181,107,103, 0,240, 45,111, 72,217,203,203, +107,147,159,159,223,201,242, 44, 94, 94, 94,155,203,123,140, 26,139,144,108,138,188, 68,233,157,179,244,104,223,166,116,101,131, +138,180,143,155, 80,222, 66,136, 79, 90, 3,188,114,212,165,254,173, 91,183,214, 60,120,240,192,154,147,147, 67, 31, 61,122,100, + 27, 51,102,140, 30, 64,204,152, 49, 99,244,143, 30, 61,178,229,228,228,208, 7, 15, 30, 88, 91,183,110,173, 1, 48,218,222,114, + 22, 60,220,108,157, 63,127, 62,165,148,210,133, 11, 23,210, 58,117,234,208,118,237,218, 81,181, 90, 77, 41,165, 73,148,210,109, + 22,139,101,132, 61,154, 50,153,108,216,228,201,147,213, 90,173,150, 22, 98,179,217,168, 92, 46,167,107,215,174,213,248,248,248, +156, 4,224,193,154, 39,152, 38,211,100,154,172,233,240, 47, 77,149,242, 5, 48,182,200,242,250, 94, 89,214, 23, 7,127,249,229, +151,133,166,234, 84,139, 22, 45,110,143, 24, 49, 34,114,196,136, 17,145, 45, 90,180,184, 12,224,204,221,187,119, 35,167, 79,159, + 30, 9, 96,112,105, 7, 2,128,107,179,102,205,228,233,233,233, 52, 56, 56,152, 86,170, 84,137,166,167,167, 83, 74, 41,189,211, +191, 62,189, 80, 3,244,229,213, 83,244,236, 47, 7,233, 24, 95, 30,109,233, 43, 51,251,250,248,228,120,120,120, 44, 66,193,228, +215, 37, 29, 92, 0,189,107,212,168,161,138,137,137, 81,199,197,197,169, 23, 44, 88,160,110,215,174,157, 58, 44, 44, 76,221,167, + 79, 31,245,154, 53,107,212, 38,147, 73,189,121,243,102,181,179,179,115,204,155,102,235, 93,140, 22,143,199, 91, 29, 29, 29, 77, +159, 63,127, 78, 1, 44, 43, 73, 19,128,204,197,197,165,139,171,171,235, 20, 23, 23,151, 46, 0,100,148, 82, 4, 3,210,186, 50, + 4,124, 82, 55, 40,244,248,224, 14, 85,215,118,104, 88,191,159, 19, 71,110,254, 97, 26,165,125, 3,222,202,104,201,100,178, 97, +159,125,246,153,202, 96, 48, 80,173, 86, 75,213,106, 53,213,106,181, 84,165, 82,209,193,131, 7, 43, 29, 28, 28,122,151,165,233, +225,225,241,205,213,171, 87, 45,233,233,233,244,234,213,171,244,228,201,147,116,221,186,117, 54, 47, 47,175, 21,229, 61, 1,125, +124,124,206,157, 61,123, 54, 50, 42, 42, 42,242,214,173, 91,145,102,179, 57,210,100, 50, 69,154, 76,166,200,227,199,143, 71, 30, + 62,124, 56,114,223,190,125,145, 70,163, 49,210,104, 52, 70, 26, 12,134,200, 42, 85,170,156, 46,239, 49,106, 36,194, 75,227,181, +163,148,174,152, 72, 21,223,141,167,242,169, 93,105,230,184, 86,244,199,134, 21,105, 43, 49,142, 21,173, 71,165,105,242,249,252, + 43, 73, 73, 73,182,153, 51,103, 26,107,214,172,169, 24, 57,114,164,222, 96, 48, 80, 74, 41, 53, 24, 12,116,228,200,145,250,154, + 53,107, 42,102,206,156,105, 76, 76, 76,180,241,120,188,243,229, 48, 90, 75, 10, 77,214,149, 43, 87,104, 81,212,106, 53,109,215, +174, 93, 82,157, 58,117,182, 85,174, 92,121, 72, 89,154, 82,169,180,231,140, 25, 51,212,180, 24,204,102, 51, 85,169, 84, 52, 49, + 49,209, 86,169, 82,165, 84, 0,238,236, 98,206, 52,153, 38,211,100, 70,235, 47, 51, 90, 99, 75,122, 93,234, 78,156, 62,125,122, + 36,165, 52,114,246,236,217,145, 5,145, 45, 1, 0,105,193,194, 3, 48,104,198,140, 25,145,148,210,200, 47,191,252, 50, 18, 64, +247, 82,140, 86,247, 3, 7, 14,152, 86,173, 90, 69,189,189,189,169,143,143, 15, 93,189,122, 53,181,217,108, 52,253,248, 46,122, +161, 6,232,227, 89,195, 41,165,148,198, 46,154, 68, 47,212, 0,141, 95,255, 53, 29, 58,116,168,214,209,209,113,112, 41, 6,198, +173,126,253,250, 42,157, 78,167,222,190,125,187,218,209,209,241, 14,128,154, 0,248,200,239, 85, 41, 5,240, 97,205,154, 53,149, + 15, 31, 62, 84,239,217,179, 71, 13, 96,129,157,145,141,170, 0,218, 74, 36,146, 62, 51, 42,240,227,232,150,175,232, 12,111, 60, + 0, 80, 27,128,103,193, 58,126, 95,126,249, 37,165,148, 82,127,127,255,171, 37,108,187, 44, 44, 44,236,203,184,184,184,121,102, +179,121, 94, 84, 84,212,188,234,213,171,207,236, 81,197,183,233,145,193, 29,195, 21, 95,143, 15,167,203,167,134,125,255, 65,163, + 14,123, 7,182, 25,252, 81,101,143,107, 35,189, 28,180, 3,100, 92,213, 32,199, 63,232,216, 85,177, 43, 84,168,112, 43, 57, 57, +249,181,185, 82,169, 84,244,213,171, 87, 52, 33, 33,129, 94,187,118,141,250,250,250, 94, 40, 75,211,199,199,231, 81,114,114, 50, + 93,191,114, 37,237, 91, 59,148,182,114,113,162,173, 93,157,104, 3,169,131,166, 6,208,160,188, 70,235,222,189,123,145, 0, 34, + 1, 68,230,228,228, 68,230,228,228, 68,230,229,229,189,126, 15, 64,164, 66,161,136, 84, 40, 20,145, 70,163, 49, 50, 40, 40,168, +220, 70,171,185, 3,154, 55,118, 64,110, 83, 17,116,221, 43,120,164,142,175,226, 97,189, 57,184, 41,205,155,216,142,174, 10,175, + 64, 91, 8,241,137,157,199,189,187, 80, 40,188, 12, 96, 26, 0, 46,128,225, 93,186,116,209, 82, 74,105,151, 46, 93,180, 0,134, + 23,188,255, 25,143,199, 59, 15,160,139, 61,229, 4,192,169, 86,173,154,166, 48,146, 5,224,247,106,213,170,105,234,212,169, 67, +235,212,169, 67,253,253,253, 85, 0,134,219,123, 65,171, 90,181,106,172, 78,167,123,109, 0,229,114, 57, 77, 77, 77,165,241,241, +241, 52, 38, 38,134,222,185,115,135, 38, 37, 37,209,253,251,247, 91, 93, 92, 92, 78,176,139, 57,211,100,154, 76,147, 25,173,191, +206,104,189,185,252,201,104, 29, 63,126,156,190,241,165,239,238,222,189, 27, 57, 99,198,140,200, 55,157,218,155,226,179,103,207, + 46,140,122,125, 91,202,205,127,115,108,108, 44, 29, 62,124, 56, 13, 9, 9,161, 33, 33, 33,116,196,136, 17, 84,161, 80, 80,245, +179,135,244, 66, 13,208, 59, 3, 26, 80, 74, 41, 85, 61,142,162, 23,106,128, 70, 14,109, 70,239,223,191, 79, 43, 86,172,120,182, +148,223, 63,246,219,111,191,101,237,218,181, 43, 29,192,206, 2,131,213, 4,192,106,177, 88,188,181,160,185,176, 18, 0,215,224, +224,224, 92,173, 86,171,238,219,183,175, 26, 64, 64, 41,154,173, 67, 66, 66,158,111,222,188,153,102,102,102,210,220,220, 92,186, +180,121,117, 74,183,124, 69, 23, 54,168,100, 91,191,126,189, 97,218,180,105, 26, 55, 55,183,227, 0,252,250,246,237,107,161,148, +210, 86,173, 90,101, 20,167,231,226,226,210, 37, 46, 46,110,158, 94,175,159, 39,151,203,231,229,230,230,206, 59,122,228,200,188, +206,181,171, 15, 87,124, 61, 62,252,200,224,142,225, 31, 84,112,237,179,162, 83,195,143, 95,205, 28,221,119,118,179,154,143,245, + 75, 62,189,212,191,138,247,178,183, 57,224,158,158,158,105, 6,131,129, 2,248,211,242,252,249,115,234,238,238,158, 92,150,134, +155,155,219,236,207, 6, 13,180,246,174, 84,129, 62, 95, 53,135,154,207,237,161,230,147,219,233,179,239,166,210, 30, 62, 30,202, + 38, 2,206, 12,123,203,227,227,227,115,238,214,173, 91,127, 48, 90,121,121,121,197, 26, 45,165, 82, 25,105, 52, 26, 35,171, 85, +171,118,250, 93, 43,126, 19, 33,130, 90,139,185,119,162,134,183,164, 89,227,219,209, 46, 50,126,210, 59,156, 68,131, 0, 92, 6, + 48,180,156,223,227, 0, 88, 82,104,168,190,251,238, 59, 74, 41,165,213,170, 85,211, 0,224,188, 67,121,100,161,161,161, 9,163, + 71,143,182,212,168, 81, 35,179,121,243,230,242,219,183,111,211, 43, 87,174,208,147, 39, 79,210,131, 7, 15,210,135, 15, 31,210, + 87,175, 94,209,216,216, 88, 26, 17, 17, 33, 7,208,154, 93, 16,217,194, 22,182,252, 47, 47,111,122,145,127, 76,175,195, 19, 39, + 78,208,136,136, 8,114,226,196, 9, 90,144,172, 43, 3,224,208,160, 65,131,172, 37, 75,150, 44, 47,152,195,135,212,225,145,254, +237, 29,249,247,219, 59,242,239,215,225,145,254,132, 16, 66, 41,221,180,104,209,162,111,234,212,169,147, 6, 64, 76, 8,241, 41, + 33, 23,172,165,187,187, 59,146,147,147, 33,147,201, 32,147,201,144,156,156, 12, 74, 41, 44, 20, 48, 83,192, 96, 50, 65,167,211, + 65,111,163,208,217, 0,165, 90, 13, 31, 31, 31,152, 76,166,160, 18,146,138,235, 14, 24, 48, 32, 40, 44, 44, 44,107,250,244,233, +169, 0, 70, 3,216, 58,106,212,168,115,191,255,254,123,152, 90,173,206,141,137,137,209,215,174, 93,187, 11, 0,159,184,184,184, + 97,107,215,174,197,240,225,195, 1,160,117, 9,154,181, 35, 34, 34, 78, 62,124,248, 48,104,232,208,161,184,124,249, 50,150, 46, + 93,138,236,236,108, 10, 0, 6,131,129, 90,173, 86, 83,179,102,205, 76,171, 86,173,106,212,170, 85,171, 91, 85,170, 84,225, 2, + 64, 66, 66,194,179, 18, 52,171, 7, 6, 6,194, 96, 48, 32, 43, 43, 11, 15, 31, 62,132,147, 76,134,232,212,108,239, 54, 43,214, +231,204, 58,114,142, 63,168, 81,152,219,148,142,205, 13,139,207, 94, 14,174,233,231,237,109, 52,153,125, 98,211, 50, 82,223, 38, +239, 78, 32, 16, 36,103,103,103,195,104, 52, 66,167,211, 65,169, 84, 34, 39, 39, 7,217,217,217, 72, 77, 77,133, 64, 32,120, 94, +102, 34,125,110,238,213,132,223,174,144,253, 27,190, 67,144, 37, 23,188, 67,171,193,251,245, 71, 84, 53,102, 97,227,156,113, 78, + 70,119,207,249, 50,103,231, 60, 87, 87,215, 77,132,144,106,101,233,133,135,135, 35, 39, 39, 7, 57, 57, 57,112,119,119,135,171, +171, 43, 92, 93, 93, 33,151,203,161, 80, 40,160, 84, 42, 17, 28, 28,140,186,117,235, 98,199,142, 29,239, 37,255,240,134,129,198, + 91, 96, 29,127,238,105, 42, 4, 18, 9,170,184, 74, 3, 27, 57, 17,183, 82,146,212,219, 9, 4,130, 3,238,238,238,103, 9, 33, + 19, 9, 33, 18, 66,200, 68,119,119,247,179,124, 62,191, 23,128,133,148,210, 93,229, 44,198,226,249,243,231,127, 25, 23, 23,231, +120,255,254,125, 76,159, 62, 29, 11, 22, 44,192,179,103,207,126,160,148,218, 10,126,119,130,135,135,199,113, 46,151,251, 19, 33, +164, 43, 33,164,139,159,159, 95,251, 50,116,123, 77,155, 54, 77, 95,191,126,253,216,199,143, 31,247,250,237,183,223, 26, 76,157, + 58, 85,241,226,197, 11,196,198,198,194,215,215, 23,254,254,254, 80,171,213,200,203,203, 67,175, 94,189,100,206,206,206,131, 89, + 86, 42,131,193,248, 95,229, 77, 47,242,119,226,205,113,180,138,190, 46,182,215,161,163,163,227,252,200,200,200,166,117,234,212, +225, 1,216, 15, 0, 97, 92,244,235,213,172,222,214, 35,155,190,171,115,120,213,156, 58,157,235, 4,111, 13,227,162,176, 23,219, +241, 6, 13, 26,184, 70, 70, 70, 54, 19,137, 68,159,148,148,119, 15, 0,174,174,174,144,201,100,112,113,113,129,171,171, 43,108, + 54, 27,212, 90, 61, 52, 86, 64,165, 55, 66,161, 80, 64, 85,240, 90,109, 48, 65,163,209,188,254,110, 49,180, 25, 61,122,116,214, +218,181,107, 51,211,210,210,190, 3, 80,123,248,240,225, 61,215,172, 89,131,139, 23, 47,234,187,134, 84,117, 95,212,178,222, 55, + 53,211,158,205, 11,225, 99, 12,128,171, 87,175, 94, 69,179,102,205, 64, 8, 25, 88,156,160, 88, 44,254,113,239,222,189,226,152, +152, 24, 84,173, 90, 53,102,224,192,129,253,191,251,238,187, 32,137, 58,247, 58, 0, 88,114,210, 99, 38, 77,154,244,213,162, 69, +139,178,178,178,178, 76, 90,173,214,171, 71,143, 30, 72, 78, 78,198,171, 87,175,126, 47,193,100,198, 70, 69, 69, 81,133, 66,129, +248,248,120, 68, 69, 69,137,191,250,234,171, 70, 86, 14,167,103, 10,156, 62, 26,222,188, 65,163,161, 77,234, 97,215,141,251,130, +107, 79, 19, 92, 26, 84,170,224,122,239,101, 90,101, 51,193,243,183, 57,224, 42,149,106,245, 55,223,124,163, 86,171,213, 72, 73, + 73,193,131, 7, 15,240,248,241, 99, 36, 37, 37, 97,233,210,165,234,220,220,220, 53,101,105,248, 57,240, 62, 95, 54,117, 20,225, + 61,250, 29,184,127, 5,208,170, 0,157, 26,134, 39,145,216,246, 36, 29,235, 14,253, 34,124,145,156,236,178,111,223,190,209, 1, + 1, 1,145,132,144,224,178, 58, 93, 0, 0,135,195,121,179,114,130,195,225,168, 0,164, 75, 36,146,151, 78, 78, 78, 47, 57, 28, + 78, 58,165, 84,243, 62, 42, 63,199, 2, 19,184, 92, 64, 40, 6,135,207, 43,237, 36,233, 63,112,224,192,189, 47, 95,190,236, 28, + 31, 31,223,116,205,154, 53,223, 56, 56, 56, 68,175, 89,179,230,155,248,248,248,166, 47, 95,190,236, 60,112,224,192,189,132,144, + 15,203,243,251,213,170, 85,155, 52,111,222, 60, 44, 93,186, 20,117,235,214, 69,112,112,176,118,254,252,249,171, 1,204, 33,132, +124, 18, 28, 28,124,125,210,164, 73, 35, 51, 51, 51,125, 82, 82, 82,234,254,240,195, 15,227, 86,175, 94,221, 48, 53, 53,213,161, + 12,233, 22,157, 58,117,194,169, 83,167, 0, 32,141, 82, 26,159,147,147, 99, 73, 77, 77, 69,104,104, 40, 26, 53,106, 4,181, 90, + 13,181, 90, 13,185, 92,142,192,192, 64,216,108,182,166,236, 82,206, 96, 48, 24,255,127,134,171, 68,163,229,224,224,224, 26, 30, + 30,142, 42, 85,170,184, 22,228, 98,193, 93,200,155, 57,101,244, 32, 71,105,228,105,144,168, 11, 24,216,178,150,163,187,144, 55, +179,224, 43,188,192,192, 64, 81,120,120, 56, 36, 18, 73,133, 18,126,255,114,122,122, 58,194,195,195,225,226,226, 2,153, 76,134, +240,240,112,152, 76, 38, 40, 84, 42,104,172,128,214,108,131, 66,161, 64,110, 86, 6,180, 86,192,226,228,142,164,164, 36,112,185, +220,132, 18, 52,125,171, 86,173,154, 21, 29, 29,157, 5,224, 42,128,143, 23, 44, 88,128, 25, 51,102, 96,238,220,185,123, 29,211, + 18, 59,237, 61,245,171,251,238,249, 19, 60,131,133,100, 16, 0,211,203,151, 47,225,226,226, 2,137, 68, 82,172, 49,104,213,170, + 85,125,137, 68,130,237,219,183,211,148,148,148,230,148,210,131,148,210, 4, 66,242,205,158,152, 3, 5,165,116,117,100,100,100, +227,175,190,250,234,105,135, 14, 29,248, 77,154, 52,193,194,133, 11, 1,224,120,113,154,114,185,252,230,135, 31,126,104,188,116, +233, 18,158, 60,121, 34, 57,114,228, 72,191,133, 11, 23,214,122,241,226,133,232,216,201,211, 31,236,124,169,236,247,221,217,107, + 14,139,206, 92,190,233,225, 44,169, 89,217,195, 13, 81, 47, 94, 9,172, 92,220, 46,235,160, 54, 17,240, 70,183, 21,243,163, 90, + 57,112,211,218,138,249,145,141, 4,188, 81, 74,165,114,223,209,163, 71,207, 76,157, 58, 85,157,153,153, 9, 39, 39, 39,228,228, +228, 96,241,226,197,234,168,168,168, 67, 6,131,225, 88, 89,186, 86, 27,173,239, 95, 41, 0,120, 30,253,250, 61,147,141,226,182, + 81,128,110, 31,127,138,144,208, 80, 24,141, 70,212,174, 93,155, 44, 88,176, 64, 34,147,201,190, 40,211,244,112,254, 84,221, 44, +132,144,116, 74,233, 43,181, 90,157, 34, 22,139, 95, 8, 4,130, 23,185,185,185, 41,148,210,140,247, 80,225, 57,148,131,207,155, +213,174, 6,136,196,120,145,163, 78,189,173,162,185,197,173,235,228,228, 52,106,221,186,117, 14, 91,182,108, 49, 79,154, 52,201, + 48,110,220, 56,190, 78,167,243, 26, 55,110, 28,127,210,164, 73,134, 45, 91,182,152,215,173, 91,231, 32,149, 74,251,188, 77, 89, +204,102, 51,162,163,163,191,139,139,139,147, 80, 74, 63, 3,240,233,252,249,243,135,199,197,197, 57,172, 93,187, 22, 7, 15, 30, +196,193,131, 7,209,179,103, 79, 76,158, 60, 25,243,230,205, 43,109,187, 28,235,212,169, 19,238,238,238,142, 43, 87,174,164, 82, + 74, 95, 16, 66,234, 75,165, 82,167,158, 61,123,162,115,231,206,208,235,245, 48,153, 76,175,141, 22,151,203,133,139,139,139, 59, +187, 12, 50, 24, 12,198, 95,107,178,222, 52, 91, 60, 0, 40, 12,213, 69, 68, 68,144,210,110,140,214,188, 76,200, 53, 90, 36, 41, +180, 72,206,179,253,225, 51,155,205, 86,106, 1, 82, 83, 83,143,221,184,113, 99, 84,120,120, 56, 47, 53, 53,191, 69, 44, 60, 60, + 28, 90,173, 22,169,247,111, 65, 99, 3, 36, 85,195,160,209,104,144,247,248, 30,164,117,154,194, 61, 98, 40, 86,172, 93,107,200, +201,201,217, 80,156,166, 80, 40,228, 87,172, 88, 49, 43, 33, 33,193, 2, 32, 87, 38,147,117, 10, 8, 8,192,229,203,151, 1, 96, + 23, 5,150, 33,234, 18,112,229, 48,104,126, 72, 69, 26, 24, 24,136,204,204, 76,168,213,234,203,197,105,222,184,113, 35,206,108, + 54,215,238,209,163, 7,249,249,231,159,247, 19, 66,230, 2,120, 48,203, 7,220,251, 47, 51,160,177,194,129, 16,210,209,213,213, +245,179,121,243,230,181,159, 52,105, 18,142, 30, 61,138,179,103,207,154,144,159, 11,118,163,152,104,142,130, 16,178,113,218,180, +105, 77, 56, 28,206,199,231,206,157,179, 4, 7, 7, 43, 77, 38,147,181,122, 72, 8,103,238,130,175, 5, 19, 63, 30,235,146,163, +197,163,206,213,125,155, 17, 2, 60,122,149,249, 34, 78, 69,115, 74,219,167,173, 69,188,227, 3, 91,214,105, 53,106, 96,119,169, +164,106, 77,104, 30,222,242,217,120,224,228,138, 54, 98, 94,183, 12,157,165,167, 76, 38,235,119,249,242,229,137, 70,163,177,138, + 72, 36,122, 46,151,203, 87,169, 84,170, 50, 77, 22,143,199,139, 8,243,175,232, 42,207,205,133, 67, 65, 36, 74,105,182, 33,219, + 96,193, 19,151, 96, 12,174,232,255,186, 25, 52, 61, 61, 29, 62, 62, 62,196,106,181,118, 47, 77,243,236,217,179,232,214,173, 91, +161,241, 4, 33, 4,132,144,236,144,144,144, 12,145, 72,148, 35, 16, 8,148,203,150, 45,211,235,245,122,240,120, 60, 7,171,213, +202,125,151, 10,223, 88, 66,188, 90,137,201,143,227,122,180,237, 80,183,102, 40,189,122,231, 62,201,211,234,183,149, 18, 5,252, +161, 90,181,106,188,220,220,220, 99, 0,158,152,205,230,221,251,247,239,119, 24, 54,108,152,254,192,129, 3, 67, 0, 4, 45, 95, +190,188,159, 90,173,222, 84,158,114, 60,123,246,236,135, 69,139, 22,125, 57,123,246,108,236,216,177, 99, 18,128, 25, 5,145,174, +158,243,230,205,195,178,101,203,176, 99,199, 14,219,147, 39, 79, 78,218,108,182,103, 83,167, 78,173,227,237,237,157,157,150,150, +246,108,193,130, 5, 37,201, 54,232,210,165,139,225,250,245,235, 66,149, 74,117,141, 16,242,217,248,241,227, 71, 55,110,220, 88, + 57,112,224, 64,105,110,110,174,220,209,209, 81,184,121,243,102, 87, 30,143, 7,141, 70, 3, 66, 8, 84, 42,149,145, 93, 10, 25, + 12,198,255, 42, 37,121,145,191, 3,175,167,219, 41,238,158, 90,220, 6,106,181,218,140,228,228,228,208, 87,175, 94, 89, 0, 88, + 0, 32,199,104,249,118,209,230,195, 91,250, 52,169, 38, 73, 51,155,113,228, 78,140, 54,199,104,249,182, 48, 50,241,234,213, 43, +213,139, 23, 47,156,116, 58,157,186,132,223,250,253,199, 31,127,212, 93,186,116,201, 41, 62, 62, 30, 86,171, 21,245,235,215, 71, +108,108, 44,242,158, 68, 67, 18, 90, 31,146,214,221, 16, 19,121, 7, 81,103,207, 35, 81,109,180, 60,157,179, 72,161,214,104,230, + 25,141,198, 35,197, 9,242,249,252,220,252,237,163, 86, 0, 80, 42,149, 15,212,106,117, 75,111,111,111, 60,122,244, 72,162,177, + 98,114,191,153, 43,214, 80, 74,173,130,252,158, 98, 83, 6, 14, 28,136,187,119,239, 2,192,221,226, 52,149, 74,229,164, 49, 99, +198, 92,218,190,125, 59, 47, 62, 62,190,243,150, 45, 91, 58, 63,125,250,148,146,220,100,235,117, 45, 31, 65,195, 39, 55, 92, 31, + 24,114,182, 91,183,110,240,245,245,197,230,205,155,177,106,213, 42,243,132, 9, 19,226, 86,173, 90,213, 16,192,238, 18, 14,130, + 2,192,105, 15, 15,143,137,181,106,213, 82,105, 52, 26,228,228,228, 32, 53, 53, 21,110,238,238, 28, 11, 56,205, 60, 93, 92,118, + 31, 75, 87, 73,120,167,111,226, 86, 74, 90,169,209,172,166, 2,222,135,131,218,212,107,245,201,236,153, 82, 92, 63, 2, 50,102, + 30,232,150,111,240,233,136,126, 78,122,195,238,214, 13,120,188, 97, 10,139,101, 39,128,131,229,116,228, 93, 90,182,108,185,119, +209,162, 69,226, 89, 75, 23, 97,121,104, 5, 88,114,114,144,101,176, 34,219, 96,129, 50,239, 9, 30, 61,138,129,187,187, 7, 18, + 19, 19,161,215,235,241,248,241, 99,202,229,114,143,149, 21,209, 41,242, 27,133,205,133,114,145, 72,148,195,231,243, 51,120, 60, + 94,110,124,124,188, 70,175,215,131,195,225, 72,172, 86,171,216,142,178, 86,244,240,240,152, 10,160, 15,128,163,170,236,236,213, +225,124,184,128,135, 54, 85,188,220, 63,152, 51,110,152, 71,128,159,151, 60, 62,238,185,121,195,153,223,178,245, 6,124, 91,202, + 73,114,188,104, 68,146, 16,242,233,129, 3, 7, 70, 3,216, 90, 48,239,214,121, 0,235,223,226,252,155,115,232,208,161, 47,103, +207,158, 13,177, 88,252,122,240, 84,177, 88,236, 0, 0,123,246,236,193,163, 71,143, 26, 23,230,107, 1,216,107,135,102, 80, 88, + 88, 88,252,225,195,135,133, 0,252,198,143, 31,223,116,205,154, 53, 24, 49, 98, 68, 86, 76, 76, 76,147,252, 8, 44, 9,250,248, +227,143,111,239,216,177,195,213,102,179, 33, 47, 47, 15, 70,163, 49,129, 93,202, 25, 12, 6, 51, 91,127, 73, 52, 43,156, 82, 26, + 85, 48,176,119, 4,128, 19,148,210,180, 63, 24,173,194, 13, 4, 0,189, 94,255, 67, 96, 96,160, 12,128, 63,128,110, 0,142, 62, +176,226, 32,158, 38, 33, 58, 49,101,102,161,241,122, 96,125,125, 19, 31,112,251,246,109, 99,165, 74,149,238, 3,248,166,132, 27, +153,210,195,195, 99,225,212,169, 83, 23, 47, 92,184,144,199,227,241,112,233,210, 37,220, 56,115,194,246,248,218, 45,146,164,179, +234,148,119,166,189,226, 81,235, 77,111, 93,238,195,123, 90, 28,162,148,166,148,182, 97, 26,141, 38,249,217,179,103,194, 90,181, +106, 89,239,221,187,231, 65, 41,253,229,228,201,147, 45,167, 79,159,142,203,151, 47,239, 62,167,183, 14,166,212,182,159, 16,194, + 3, 48,184,123,247,238,159,245,235,215, 15,117,235,214, 53, 1,216, 81, 66, 57,175, 19, 66, 6,191,124,249,114,227, 23, 95,124, +225,242,197, 23, 95,128,195,225,144,162,251, 42, 59, 59, 27,247,239,223,199,192,129, 3, 21,191,253,246,219,228,246,237,219,143, +108,209,162, 5, 78,157, 58,229,103,199,193,248,253,241,227,199,189,101, 50, 25,121,246,236, 25,148, 74, 37,174, 95,191,206, 15, + 12, 12,108,182,127,255,126, 81,149, 42, 85, 16,243,240, 33, 78, 14, 30, 28, 65, 8, 9,164,148,190, 40, 78, 71,204, 39, 19,135, +247,239, 46, 53, 92, 63, 6, 68, 93, 5, 0,168,149, 42,232, 18,163,209,175, 81, 53,231,203,143,147,198, 35,191, 23,102,185,112, +115,115,251,116,249,242,229,146,224,224, 96,124,190,104, 41,166,206,158,142,143,189, 2,161,124,149,140,108, 43, 32,116,116,196, +194, 57,179,209,189,255, 64,120,121,121,225,225,195,135,116,243,230,205, 26,133, 66,177,204, 30,163,197,229,114, 65, 8, 1, 0, +141, 66,161, 80, 11,133, 66, 5,143,199,203,177, 90,173, 25,199,215,174,174,207,201,201,248,136, 16,194, 21,219, 56,199, 11, 58, + 91, 20,155,159,231, 66, 72, 96,213,160,160,135, 63,109,222, 44,105,220,184, 49,185,115,231,206,196,241, 99,199,140,238, 19, 86, +249,100,175, 14,173,224,227,235, 99,176,153,140,242,147, 71,143,155,215, 31, 56,121,197, 72,108, 95, 68, 82,170, 43,199,211,201, +222,162,166,135, 16, 50, 8, 64,127, 0,135, 41,165,187, 8, 33,195, 1,244, 2,112,168,164, 4,121, 66, 8, 7,192,166,190,125, +243, 39, 19,208,233,116,218,194,247,235,212,169, 83,244,183,108,229, 57, 70,142,142,142, 78, 14, 14, 14,207, 79,157, 58, 37, 30, + 56,112,160,235,226,197,139, 95,141, 24, 49,162,194,238,221,187,127, 0,144, 72, 8, 9, 1, 80, 85,163,209, 88, 57, 28, 14, 66, + 66, 66,176,110,221, 58,181,213,106,221,202, 46,227, 12, 6,227,239, 96,182,254,134,197, 14, 7, 16, 5, 32,162,160, 3,225, 88, + 0,165, 79, 42, 13, 96, 81,116,116,116,225, 24, 90,227, 75, 27,222, 97,198,140, 25,145,119,239,222,141, 4,176,164,172,110,142, + 60, 30,239,151, 9, 19, 38, 80,111,111,111,181,151,151,215, 47,124, 46,119,180,191, 24,225,120,139,174,238, 0, 90,238,220,185, +179,231, 15, 63,252, 16, 1,160, 49, 0,126,133, 10, 21, 82,211,211,211,213,191,253,246,155,186,121,243,230,106, 15, 15,143,204, +176,176, 48,245,242,229,203,213,102,179, 89, 61,117,234, 84, 53,222, 24,239,171, 4,109, 7, 0, 19,133, 66,225, 47, 53,106,212, +136,158,211,163,157,121,233,228,209,116,120, 53, 79, 53,128, 31, 0, 76, 0,224, 2,128,223,175, 95,191, 11,143, 31, 63, 62, 19, + 22, 22,182,209, 14, 93,191, 90,181,106, 93,220,187,119,239,221,195,135, 15, 71,126,241,197, 23,119,221,221,221, 83,226,226,226, +108,122,189,158,230,229,229, 81,185, 92, 78, 79,156, 56, 97,117,115,115, 91, 91,146, 78, 75, 17, 55,141,158,221, 85,236, 16, 14, + 47,103, 15,165,205,133,156, 87,111,211, 13, 85, 34,145,228,230,228,228,208,244,244,116, 26, 31, 31, 79, 15, 29, 58, 68,187, 52, +107, 68,247,125,220,135,238, 26,213,147, 46,235,210,136, 54,118,114,208,248, 56, 73,239, 58, 57, 57,101,186,184,184,108, 2, 80, +173,172,225, 29, 12, 6,195,235,225, 27, 42, 86,172, 24, 25, 18, 18,114, 56, 44, 44,108,197,209,163, 71, 63, 93,185,114,101,207, +182,149, 3,191, 92,220,185,153, 78,123,254, 0, 85,237,255,129,206,168, 31,172, 15,227,162,127,137,195,133,184,187,237,188,114, +249,178,173,112,128, 78,139,197, 66,143,252,242, 11, 29,240, 65,199,104,197,233, 61, 63, 93,155, 55,105,239,212,250,193, 71,154, + 59, 96, 16,222, 24,168,180,184, 37, 92, 10,247, 86,206,156,117, 93, 3,220,210, 90,202, 56, 63, 52,113,130,107,145, 99, 54, 32, + 56, 56, 56,158, 82,154, 22, 26, 26, 26, 15, 96, 87,104,104,104,209,215, 31,149, 53, 56,233,252,249,243, 41,242,103, 81,224, 0, +152,187,104,209,162, 72, 74,105,100,181,106,213,174, 83, 74, 81, 87, 2,143,214, 50,206, 79, 61,130,188,115, 90,203, 56, 63,213, +149,252,121, 52,119, 74, 41, 2, 5,168,222,210,211,241, 90,207,106,190,170, 54, 21,100, 87,119,109,219,178,180,107,215,174,155, + 1,172, 5,240,141,187,187,251,181, 65,131, 6, 61,218,177, 99,199,163,229,203,151,155,226,226,226,232,200,145, 35, 53, 34,145, +232, 27,214,117,156, 45,108, 97, 11, 91,254,242,145,225,125,203, 51, 96,105,247, 47,191,252, 50,146, 82, 90, 56,150,214,176, 98, +214,233, 49,123,246,236, 72, 74,105,225,232,240, 29,202, 26,208, 12,192,252,117,235,214, 81,145, 72,244,211,187, 14,146, 6,192, +167, 87,175, 94, 77,148, 74,101, 67,111,111,239,134, 5, 81, 39,127, 15, 15,143,248,221,187,119,171,117, 58,157,154, 82,170,182, + 88, 44,234,187,119,239,170,219,180,105,163, 70,254, 16, 16,118,141, 16, 94,116,153,229,131,235,119,230,140,162,179,124,112,253, +141,239, 14,221,186,117,235,169,132,132,132, 99,206,206,206,211,237, 28,184,210,223,211,211,115,174,155,155,219, 25, 15, 15,143, + 89,110,110,110,105, 38,147,137,230,229,229,209,216,216, 88,122,249,242,101,122,227,198, 13,234,230,230,150, 82, 82, 57,219,139, +121, 55,243,150, 78,164,182,173,139,168,113,205, 76, 10,128,202, 87,206,160,217, 63, 46,160,119,198,116,166,109, 28,184,191,191, +205,160,115, 46, 46, 46,155,126,249,229, 23,219,179,103,207,232,241,227,199,233,137, 19, 39,232,228,201,147,105,117, 63, 95, 67, + 19, 33, 39,163,165,136,119,230,109, 6, 44, 53, 24, 12,145, 74,165, 50, 82,173, 86, 71,214,168, 81, 35,178, 81,163, 70,135,155, + 52,105,178,226,192,129, 3,159, 46, 94,188,184,103,123, 39, 81,172,246,252, 1, 74,191,248,128,210,137, 45,232,243,209,109,104, + 59, 49,239,126,137,154,222,222, 41,133,163,181,107, 52, 26,122,245,234, 85,122,241,226, 69,234,227,225,161,108, 37,230,142,109, + 46, 66,235,230,206,112,177,183,156,109,101,156,109, 55,127,252,214,170, 59,181,131,238, 25,254,129,165,141, 11,103, 93,145,245, +246, 81, 74,211,250,246,237,155, 72, 41, 77, 59,116,232,208, 75, 74,105, 90,159, 62,125, 18, 11, 66,195,123,139,211,124, 99,112, +210,173, 5, 38,107,226,252,249,243, 35, 41,165,145,243,231,207,143, 4,242, 7, 81,109, 45,227,108,191,181,113,153,205,112, 98, + 59, 61, 48, 50,194,218, 90,198,217, 94,108, 57, 93,120,199,162,182,174,164,198, 51,187,232, 47,147,135, 88, 91,248, 56, 95, 9, + 14, 14, 94,246,233,167,159, 30,190,113,227,198, 3,171,213,250, 40, 62, 62,254,209,218,181,107, 31, 53,109,218,244,186,187,187, +123,180, 80, 40,156,192, 6, 69,100,154, 76,147,105,178, 1, 75,255, 59, 11,175,148,166,147, 99,132, 16, 9,165,116,106,191,126, +253,176,100,201,146, 1,181,107,215, 30, 84,161, 66, 5, 79, 0, 72, 77, 77,213, 2, 80,246,235,215, 15,115,231,206,197,210,165, + 75, 87, 20,228,178,252,127, 38,159,165, 19, 66, 42, 78,154, 52, 41,115,241,226,197,182,145, 35, 71,134, 82, 74, 31, 18, 66,170, + 15, 25, 50,100, 34,143,199,235, 23, 24, 24, 24,150,150,150,150,165,211,233,118, 1,216, 88,216,102, 90, 94, 68, 28, 88, 27, 84, +242,197, 25, 14,172, 69,154,134, 62,152, 59,119,238,192, 62,125,250,152, 86,174, 92,105, 81, 42,149, 71,237, 44,247, 75, 0, 95, + 23,190,118,119,119,247,185,127,255,254, 4, 47, 47, 47, 78,124,124, 60, 12, 6, 3,158, 61,123,102, 3,240,107, 73, 26,106, 11, + 93,189,254,208,185,144,169, 67,187, 57,107,159,220,131,128,203,133,153, 47, 68,250,205, 51,216,122,245,137, 82, 99,194,154,183, +217, 78,185, 92,254,253,228,201,147,135, 76,159, 62,221, 33, 48, 48,144,252,254,251,239,216,191,127,191, 33, 51, 51,179, 11,165, +244,202,219, 30, 43,155,205, 6,161, 80, 8, 0,152, 49, 99, 6, 56, 28, 14, 63, 51, 51, 83, 72, 8, 17, 17, 66, 28, 9, 33, 92, +115,194, 35,216,148,121,200,200,147,227,101,134,188, 84, 61,171,205,182,255,214,173, 91, 83,234,213,171,199,185,115,231, 14,178, +178,178,240,236,217, 51,106,165,116,239, 21,173,101, 83,121,203,231,232,230,222,171,174,171,136, 35,220, 54, 23,173,140, 28,238, + 6, 27,250, 2,152, 88,240,241, 86, 66,136, 0, 64, 78,141, 26, 53,218, 62,126,252, 88, 92,163, 70, 13,221,147, 39, 79, 78, 17, + 66, 42, 0,216, 94,108,243,174, 88,156, 13, 32,251,208,161, 67, 0, 48,134, 82,106, 35,132,212,159, 55,111, 94,218,213,171, 87, + 49,127,254,252, 12, 0,235, 0, 64,234,234,222, 35, 76, 38, 32,194,159,231,163,169, 1,156, 53, 54, 90,108,231, 2,169,151,119, +187, 90, 18, 14,248, 91,190, 66, 67,159, 16,142,208, 98,170,189, 96,193,130,171,106,181,218,176,111,223, 62,227, 71, 31,125,196, +141,139,139,187, 13,224, 90, 65,179,166,133, 53, 68, 48, 24, 12,198, 95,158,163,245,230,176, 14,197,231,104, 21, 99, 8,246, 16, + 66,178,151, 46, 93,218, 14,128,243,129, 3, 7, 26, 84,175, 94, 29, 0, 16, 27, 27,235, 24, 18, 18,242,180, 78,157, 58,143, 1, +220,164,148, 30,179,179, 60,133, 23,126,219,123,218,190,152,233,211,167,147, 29, 59,118, 88,128,124, 19, 84,112,115, 89, 13, 96, +117,105,121, 62,239, 74,112,112,112,199,175,190,250,202,184,101,203, 22,235, 55,223,124,115,148, 82, 26,247, 54, 58,185,185,185, +203,135, 13, 27, 54,100,222,188,121, 50, 39, 39, 39, 18, 29, 29,109,219,186,117,171, 50, 55, 55,119,121, 73,223,185,101,180,236, +107, 45,226,245,145,107, 14,116, 28, 16, 94,201,233,241,164, 8,196,222,186,134, 93, 87, 30,169,226,114,117,103,239, 88, 44,251, +223,210,188, 62, 35,132,212,157, 59,119,238, 12,147,201,212,135,207,231,223, 86, 42,149, 11, 40,165,191,191,237,126, 50,155,205, + 25, 85,170, 84,121,243,119,204, 54,155,141, 82, 74,249, 22,139, 69,226,102,178,157,152,183,106,203,199, 31,133,200, 68,217,217, +114,252, 28,167, 52, 20,233,108,241, 39,178,178,178, 86,140, 30, 61,122,196,188,121,243, 92,157,157,157, 73, 76, 76, 12,221,183, +111,159, 58, 43, 39,103,201,219,148, 81,155,151,123,246,248,193, 3,253, 90, 24, 45,100,103,162,138,242,184,228, 84,145,178,158, + 3,112,174,224,100, 26, 74, 8,233, 11,224, 8,165,244,231, 82, 53,181,218,179, 0,132,125,251,246, 69,116,116,244, 0, 0,123, + 0,236,253,250,235,175,155,204,157, 59, 23, 11, 22, 44,192,188,121,243, 58, 2, 56,163,202,203, 57,113,120,239,174,193,109,204, +102,206,206, 36,149,141,203, 33, 39,139,213,204,206, 56,119,234,220,249, 30, 13,157,253,200,166, 51,215,108, 90, 27,189, 55,124, +248,240, 60,163,209,120, 6,192, 26, 0,209,148, 82,214,187,144,193, 96, 48,254,127, 3, 63,155,138, 49, 94,155,202, 52, 90, 5, + 95, 62, 15,224, 60, 33,196,167,121,243,230,139,100, 50,153,196,106,181, 34, 55, 55,247, 21,128, 85, 5,209,153,242,176, 79,161, + 80,124, 33, 18,137, 54,188,167,141,211, 19, 66,188,106,212,168,193, 7, 96, 40,230,243,247, 99,178, 40, 14, 61,139,123,230, 12, +138, 67,133,111,197,197,197,237, 13, 11, 11,235,249,228,201,147,223, 40,165, 39,223, 97, 27, 94, 16, 66,234, 77,158, 60,249,115, + 0, 61, 1,252,154,155,155,187,188,164, 68,248, 66,174, 24, 44,253, 26,242,120, 67,238, 37,165, 79, 48,218,104,101, 33,135,147, +160, 49,209, 31,111, 91, 44,123,222,113,159, 62, 3, 48,178, 96,121,103,178,179,179,203, 28,228,147, 16, 66,174, 60, 79,189,249, +232,101,102,113,157, 45,138, 43, 99, 26, 33,164,238,212,169, 83,167,218,108,182,254, 28, 14,231,151,236,236,236, 50,247, 89,137, +145, 60,163,117,202,134, 75,119, 4,171,172,182, 14, 34, 14,231,140,218,108,157, 89,194,239,238, 2, 96,215,232,240,207,159, 63, +255,105,193,130, 5,181,230,205,155,135,245,235,215, 23,118,187, 60, 63,111,222,188, 76,171,213,234,191, 96,193, 2,108,220,184, +209, 2, 0, 6,179,109,218,150,171,247, 56, 27,108,182, 15,248, 28,206, 41,131,217, 54,173, 88, 83,174,183, 76, 92,115,248,180, +201,100,179,117,228,130,156, 74, 51,218,230, 24, 12, 52,137, 93,230, 24, 12, 6,227,127, 19,158,189, 43, 82, 74,211,223,199,141, +151, 82, 26, 15,192,121,214,172, 89,239,211, 73,102,254,213, 59,234,171, 84,250, 3,128, 31,190,250,110, 95,209,223,189, 13,148, + 61,168,168,189,102, 11,192, 39, 5,139,221,220,177, 88,118,163,132, 33, 37,254,102, 79, 3, 20,192,129,130,197,222,239,164, 32, +127, 46,203, 41,239,250,251,247,180, 52, 13,249,189, 8,223,231, 54, 69, 33,191, 23, 10, 94,189,122, 85,116, 59, 31, 20, 44, 40, + 28, 83,238,150,134,102, 2, 24, 98,103, 57, 7,176, 75, 23,131,193, 96,252,239, 80, 92,211, 97,185,141, 22,131,193, 96, 48, 24, + 12, 6,163,216, 7,235, 18,115,131, 9,128, 14, 37,124,201,238,196,118, 66, 72,135,183, 40,212,121,166,201, 52,153, 38,211,100, +154, 76,147,105,254,187, 52,203,210,254,255,238, 88,247,255,225,194,254,202,113, 37, 88,215, 87,166,201, 52,153, 38,211,100,154, + 76,147,105,254,107, 23, 14, 11,248, 49, 24, 12, 6,131,193, 96,188, 61,132,144,240,130,191,190,132,144,177, 5, 83,241, 0, 40, + 33, 71,139,223,120, 81,134,197, 98,241, 2, 0, 30,143,151,105,190, 61,199,183,180, 31,224, 3,237, 45,192, 79, 5,130, 99,204, +249,221,225,223,212, 60,103,177, 88, 92, 11, 52,243,204,183,231,116, 46, 85,179,209,194, 51,127, 88,255,214,236,142,197,108, 25, +151,223,104, 97,234, 27,101,245,179,123,207, 20,204,145,248, 87,151,243,239,162,249,111, 70,208,100, 81,134,217,156, 95,143,248, +124, 94,166,233, 86,233,245, 72,208,120, 97,234, 31,214,191, 57,219,187, 52, 77, 71,177, 40,167,106, 5,207, 21,165,105,198,167, +102, 79,213,104,245,238,165,105,150,247,220,244,247,245,109,111, 45, 56, 55,185,192,152,151,169,169,231,254,151,234, 18, 33,164, + 1,128, 57, 0,156,139,188, 29, 77, 41,253,140,213, 74, 6,131,241, 55,162,196, 41,120,138, 53, 90, 22,139,197, 43,242,151,121, +208, 24,128,246, 31, 46,244, 10,234,181,241, 79,189,218, 44,250, 60,161, 60,102, 95, 24,215,172,116,245,228,153,156, 83, 83, 83, + 73,193,133,243, 39, 0, 1,197,104,186, 70,254, 50, 15, 90, 35,208,106,208, 2,215, 0,192, 57, 75, 32,248, 92, 44,145,180,213, +233,116,181, 0, 64, 44, 22,199,232, 52,154, 75,158, 38,211,242, 55,215, 47,105,203,138,150,181,221,176,133, 94,161,189, 54, 78, +182,218,108,194, 87,119, 54,180,210,103,199,241,248, 22,195,186, 89,192,169,121,128,213,158, 61,245,135,223,237, 63,211,157, 15, +180, 19, 58, 56,212,117,113,117,109,105,163,180,134,205,102, 35, 86,139,229,145, 82,161,184,102,179, 88,238, 91,140, 26,247,200, +163,223,218, 74, 43,231,155,219,210, 31,224,253, 2,244,147, 72,165,109,185,124,126, 51, 0,176,154,205,191,107,212,234, 75,189, +129,131,246,108,187,189,251,231,109,215,255,183, 97, 54, 91,188, 18,206,204,131,193, 12,132,247,253,214,171,206,144,159,119, 3, +128, 49,243,190,183, 58,238,104, 99, 0,144, 84,237,118, 75,228, 19,158, 1, 0,188, 23,105, 94,177,199,103,195, 96, 6,106,116, + 91,224, 85,150,230, 71,115,247,187, 79, 31,219, 71, 4, 0,103, 15,253, 80,253,226,225,245, 31, 0, 64,187, 62,227, 79,117,234, + 59, 41, 22, 0,150,110, 58,236,190,247,219, 1,165,106,218,119,110, 42, 4,138,184,227,213,140,202, 52, 23,127, 9,207, 39, 46, + 46,142, 3, 0,126,126,126,118,157,155, 21, 1, 89, 26, 48,145,195,229,182,172, 90,173, 90, 56, 0, 26,255,252,121,148,213, 98, +185,238, 11,172,123,207,117,105, 50,165,127, 28,156,181, 96, 46, 76, 6,131,193,248, 59,113,162,192, 92,157,120,243,131, 18,123, + 29,106, 12,192,149,103, 64,235, 38,117, 48,118, 72, 87,105,209,207, 14,110, 92, 16, 16,119,231,215,208, 45, 63, 47,231,212,169, + 83, 7, 9, 9, 9,118,149, 66,107, 4, 46,199, 1,144, 63,118,202,147, 72,158,175, 92,182,204,185, 99,199,142, 60, 63, 63, 63, + 16, 66,144,158,158,222,228,252,249,243, 13,166, 76,153,242, 49,228,143,243,180, 70,168, 46,219, 49, 4,104, 97, 89,107, 85,175, +132, 57,147, 6,200, 0, 96,214,135,235, 26,220,121,154,225,246,252,249,243,246, 95,126,249,101, 14,247,210,165,245, 30,192,182, + 12,224,165, 61,229,220,113,236,150,131, 44,109, 79,208,208, 73,147, 14, 85,171, 86, 77, 26, 24, 24, 72,156,156,156,192,229,114, +145,151,151, 23,240,240,225,195, 15,110,223,190,173, 57,127,229, 39,225,221,219, 61,226, 51, 29, 26,235,237,218,118, 93,170,195, + 89, 39,167,152, 97,189,123, 87, 28, 48, 96,128, 67,213,170, 85, 1, 0,207,159, 63, 15, 62,120,240,224,160, 67,135, 14,205,133, + 46,213,162, 53, 66, 95,214,182,191,214, 4,224, 0, 52,115,241,242, 26,202,229,243,107, 89, 44,150, 10, 5,209,134, 87, 86,179, + 57, 70,158,153,185,235,205,245, 25,127,198, 96, 6, 30,167, 1, 29, 90,134, 99, 88,159, 14, 18, 0,248,114,224,162, 38, 47, 18, +159, 9,140, 70, 35,170,135,212,104,254,205,183, 43,206,128,195,193,206,195,231, 95,175,111,143,102,244,227, 4,204,251,102, 37, + 82, 31, 28,108, 98, 85, 60,107,171, 82, 42,184, 0,224, 44,147,245, 57,184,111,207, 37,191,176,126, 55,159,101,155,236,210, 44, +237,220, 60,189,111,173,111,202,195, 75, 53,127, 60,187,149, 31, 16, 16,128, 7, 15, 30,148,239,220, 84, 60,117,178,249,250, 62, + 90,254,197, 23, 62,173, 90,181,130, 84, 42, 5,143,199,131,197, 98,233,112,253,250,245, 14,243,230,205, 27, 15,197, 83,141,189, +231,166, 29, 44, 39,132,180,253,104,236,100,223,174, 61,251,161, 79,151,230,172, 34, 50, 24,140,191, 21,132,144,177, 5,189, 14, + 95,247, 60, 44,218, 11,177, 88,163,197,227,241, 50, 59, 14, 95,236,213,178,113,109,220,185, 31,171, 72, 74, 78, 83, 23,126,150, + 27,115,176,122,207,230, 21,106, 94,189,122, 5, 6,131, 1,191,255,254, 59,238,223,191,143,196,196, 68,140, 27, 55,206,192, 3, +198,148,160,153,215,106,208, 2, 87, 40,226,164,193,194,167,149,207, 63,121,194,213,235,245,184,122,245, 42,242,242,242, 32, 20, + 10, 81,177, 98, 69,116,234,212,137,247,228,201, 19,183,246, 29,187,200, 90,117, 25,156, 0, 89,176,154,199,227,229,149,180,129, + 60, 30, 47,179,253,135, 11,189,106, 6, 87,194,243,164, 84,197,156,111,183,168,109, 54,202,139, 79,124, 97,186,114,229, 10,194, +195,195,113,238,220, 57,247,220,220,220,175,214,173, 91, 55,135,255,221,143,171,205,198,156,105,165,232,229,181, 26,180,192,213, + 61,243, 64,224,197,211, 71, 4, 49, 49, 49,130, 13, 27, 54, 32, 39, 39, 7, 66,161, 16, 46, 46, 46,240,241,241, 65,245,234,213, +201,172, 89,179,164,221,186,197,224,147, 49,253, 2, 77, 65,163,159,150, 84,206,215,219,174,126,225,232,161, 60, 91,245,240,137, + 19,156, 22, 45, 90,252,225,177,189, 74,149, 42,232,220,185,179,195,208,161, 67,171, 14, 24, 52,196,214, 42,226,163,231,144, 6, +106,203,212,212,188, 20,187,107,111,248,117, 24, 52,232,232,130, 5, 11, 92,124,124,124, 32,145, 72, 0, 0, 10,133,162, 98, 82, + 82, 82,147,185,115,231,246,189, 21,189,143,215,170,219,203, 84, 72,252,117,165,237,207,127, 43,124, 62, 47,179, 48,138,228, 36, + 17,231,189, 76,201,208, 0,128,209,104,132,209,104,132,193, 96,192,132,241,227,184, 99,250, 54,170, 22,216,114,242,189,196, 87, + 25,185, 53,206,223,116, 43,252,110, 89,154, 60,109,162, 92,158,124, 97,204,188, 47,190,240,241,246,254, 79,139,224,206, 29, 59, +184,185,185,185, 29,230,205,155, 87,147, 58,182,145,215,232,182,192,165, 52,205,210,206, 77,121,236,137,202,223, 76,234, 92,119, +227,183,199, 97,181, 90,113,227,198, 13, 92,189,122, 21, 43, 86,172,160,167, 78,157, 82, 56, 75, 36,101,156,155, 79,157, 90,248, +166, 7,125,247,221, 33, 34, 18,137,240,235,175,191,226,201,147, 39,224,112, 56,168, 83,167, 14,134, 13, 27,134, 14, 29, 58,248, +140, 29, 59,142,182,234, 50, 48, 30,178, 16,213,187,212, 37, 66, 8, 7,192,228,153,243,190,243,253,112,244, 68, 44,253,102, 22, + 51, 90, 12, 6,227,111, 27,205, 42,113,136, 7, 74, 41,142, 31, 63, 78, 11,150,214,148, 82, 80,128, 83,165,215,198,189, 7,238, +218, 78, 84,233,181,113, 47, 5, 56, 20,224, 56, 3,149,234,213,171,103,150,203,229,244,246,237,219,116,194,132, 9,154,213,171, + 87, 95, 58,113,226,196, 65,139,201,180,217,207,215,247,123, 10,112,138,205,188, 7, 56,129,128,204,209,209, 49, 43, 57, 57,153, +158, 60,121,146,206,159, 63,159,238,218,181,139,158, 58,117,138,158, 63,127,158,158, 58,117,138,238,221,187,151, 70, 71, 71,211, +216,216, 88, 42,145, 72,178, 2, 1, 89, 41,154, 92, 10,112,171,247,218, 48,237,208, 29,243,130,144, 94, 27,167, 80,128,235, 10, +132,214,171, 87,207,122,240,224, 65,186,115,231, 78,250,243,207, 63,211,232,232,104,154,157,157, 77,121, 34, 73, 86,225,247, 74, + 42, 39, 5, 56, 21, 42, 84,200,146,203,229,212,223,223,159, 10,133, 66,234,237,237, 77,171, 87,175, 78,155, 52,105, 66, 63,248, +224, 3, 58,100,200, 16,250,213, 87, 95, 81,185, 92, 78, 29, 28, 28, 50, 10,191, 87,146,102, 56, 32,150, 72, 36,201,145,145,145, +180, 36,116, 58, 29,205,206,206,166,103,206,156,161, 18,137, 36, 57, 28, 16,151,166, 41, 6,234,135,133,133,101,101,103,103, 83, +147,201, 68,147,147,147,233,195,135, 15,233,147, 39, 79,104,114,114, 50,213,233,116,175,181, 99, 99, 99,105, 80, 80, 80,150, 24, +168, 95,162,230,191,121, 41,172, 19,111, 44, 1,222,222, 31,248,248,248,232, 14, 29, 58, 68, 95,189,122, 69,183,111,223, 78, 57, +192,162, 63,173, 91,138,166, 16,232,212,162, 69, 11,235,141, 27, 55,232,189,123,247,232,140, 25, 51,104,231,206,157,105,151, 46, + 93,232,188,121,243,104, 74, 74, 10, 77, 73, 73,161, 31,124,240,129, 85, 8,116, 42,171,126, 22,119,110,202,128,128,110,221,186, +233, 76, 38, 19,141,143,143,167,181,106,213, 74,225, 2, 67, 37, 64,205,214,128,168,172,250, 89, 1,112,245,245,245, 77,187,113, +227, 6, 61,124,248, 48, 13, 12, 12,204,226, 2, 31, 57, 3, 85,156,129, 42, 92,224,163, 42, 85,170,100,221,184,113,131,230,228, +228,208,128,128,128,180, 10,128,235,219,214, 37,228, 79,176,189,117,230,188,239,232,211, 20, 13,157, 57,239, 59, 10, 32,185, 96, + 64,215,115,172, 78,178,133, 45,255,190,229, 79, 94,228,159,214,235, 48, 34, 34,130, 0,184, 92,154,101,211,113,185,139,151, 46, + 93,202,211,235,245,216,178,101,139,170,127,223,190, 7, 90,183,108, 25, 95, 57, 48, 80, 78, 56,156, 50,231, 46,204, 18,137, 62, + 93,186,116,169,139,209,104,196,221,187,119,209,160, 65, 3,248,248,248, 64, 42,149, 66, 42,149,194,203,203, 11, 33, 33, 33,200, +204,204,132,147,147, 19,166, 79,159, 46,203, 18,137, 62, 45, 75,215,102,163, 60, 0,176,218,108, 66, 1, 48, 54,168, 97,195,187, +115,231,206,229,184,187,187,195,205,205, 13, 82,169, 20, 79,158, 60,129,209,104,132,163,216,209,174, 65, 90, 57, 28, 14, 71, 42, +149,226,226,197,139,152, 60,121, 50,154, 53,107, 6, 23, 23, 23, 56, 57, 57,161, 86,173, 90,232,212,169, 19,198,140, 25,131,248, +248,120, 16, 59,146, 74, 30,241,120, 19,199,140, 25,227, 21, 30, 30, 94,236,231,122,189, 30,114,185, 28, 89, 89, 89,168, 88,177, + 34,250,245,235,231,245,136,199,155, 88,146,158, 59,224, 83, 49, 56,248,232,237,219,183, 61, 36, 18, 9,118,238,220,137, 35, 71, +142,224,244,233,211, 56,121,242, 36,142, 31, 63,142, 95,127,253, 21, 89, 89, 89, 0,128,224,224, 96,236,223,191,223, 67,234,229, +117,220, 29,240, 97, 15, 32,246,241, 34, 35,227,108,173,244,116,143,161, 67,134, 92, 83,171,213, 24, 58,116, 40, 22, 47, 89, 50, +139,111,231,104,244, 33,128,204,205,215,119,219,119,223,125,199, 73, 79, 79, 71,239,222,189,179,151, 47, 89, 50, 42,234,204,153, +170,145,167, 79, 87, 93,188, 96,193,168,214,173, 91,103,167,164,164, 96,199,142, 29, 28,239,128,128,109, 33,128,172,188,229, 84, + 1,147, 87,173, 90,229,160,215,235,209,177, 99,199,120, 91, 76, 76,136, 5,216,163, 6,158, 92, 6, 76,101,125, 63, 13,152, 56, +125,250,116, 31,145, 72,132,207, 63,255, 60, 91,251,226, 69,109, 11,240,179, 2, 72, 82, 0, 73, 22,224,103, 85, 66, 66,237, 15, + 63,252, 48, 91, 36, 18, 97,229,202,149, 62,105,255,153,116,219,222, 8, 86, 3, 66,200, 81, 66,200, 21, 0,169, 31,141,157,252, + 81,120,163,166,216,177,121, 29,190, 93,240,229, 54, 0,253, 9, 33,187, 0, 76, 99, 53,143,193,248,119, 98,143, 23,249, 95,109, + 62, 44,177,165,236,117,220,235,196, 9, 10,160, 77,105, 66,174,238,238, 13,106,215,174,141,171, 87,175, 34, 44, 44,236,182,139, +139,139, 69, 32, 18,129,207,231,131,218,202,158, 35, 90, 44,145,180,239,208,161, 3,239,230,205,155, 8, 10, 10,130, 88, 44, 6, +159,207,255,195, 34, 16, 8,224,235,235, 11,165, 82,137,246,237,219,243,215,172, 89,211, 30, 6,195, 55,101,222, 16,227, 30, 74, +179,110,126, 55,228,167,237,219,170,180,106,213, 10, 10,133, 18, 54,155, 13,142,142,142, 48, 26,141,224,241,120,249, 77, 64,102, +170,180,103,167, 89,173, 86, 43,151,203, 69, 80, 80, 16, 22, 47, 94, 12,189, 94, 15,129, 64, 0, 0, 80, 42,149,144,203,229,120, +248,240, 33,146,146,146,236,154, 79,209, 73, 38,235, 58, 96,192, 0, 97,113,159, 25, 12, 6, 40, 20, 10, 40, 20, 10,200,229,114, +232,245,122, 52,109,218, 84,120,226,248,241,174,200,201, 41,118, 98,105,131,131, 67,223, 29, 59,118,120, 9,133, 66,232,116, 58, +168, 84, 42,188,124,249, 18, 47, 94,188,208,103,102,102, 90,156,156,156, 56,129,129,129, 28,145, 72, 36,234,213,171, 23, 81, 42, +149, 32,132,160, 91,183,110,238,187,119,238, 28, 0, 96, 5, 59,165,237,227, 44, 96,168,111, 52,118,111,220,168,209,197,219,119, +238,132,127,250,233,167,136,142,142,254,206,113,223,190, 43, 90,224,126,105,223,141, 7, 38,126, 95,196,192,208, 23, 47,194, 76, + 64, 86,145, 85,146, 2, 19, 18, 78,127,248,225,135, 15,162,163,163, 61, 86,174, 92,233,211,191,119,239,137, 0, 22,149,167,140, + 78, 50, 89, 67, 95, 95, 95,156, 58,117, 10,201,137,137, 95, 90, 0, 93,121,190,207,225,114, 91,180,106,213, 10,191,254,250, 43, + 82, 94,188,248,210,242,199, 50,230, 63, 40, 1, 89,188,248,248, 47,183,109,219,182,117,228,200,145,224,242,120, 45, 96,177,148, +231,103,254,148,248, 62,114,220,167,216,182,105,205, 54, 0,163, 41,165, 54,188,167, 41,173, 24, 12,198,223,180, 13,206, 14, 47, +242,119, 49, 91,133, 77,137,229,138,104,121,121,121, 85,144, 74,165, 72, 77, 77, 69,141,208,208, 76,145, 72, 4, 33,159, 15, 7, +161,208,174, 66,104,181,218, 48, 63, 63, 63, 40, 20, 10,120,120,120, 64, 32, 16,188, 94,132, 66,225,235,255,157,156,156,192,225, +112, 16, 16, 16, 0,173, 86, 27, 86,166,110,198, 67,175,125,107,198, 79,184,113,229, 84,149,222,189,251,192,213,213, 13,254,254, + 21,225,229,229, 5,177, 88, 12,127,127,127, 84,173, 90,149, 46, 95,190, 28,142, 94,117,236,186,144, 23, 53, 79, 60, 30, 15, 86, +171, 21, 25, 25, 25,120,250,244, 41,162,163,163,113,227,198, 13,220,187,119, 15, 42,149, 10,246,204, 91,173,213,233,234,242,120, +188, 98, 77,150, 92, 46,135, 92, 46,127,109,180,178,178,178,144,148,148, 4,181, 70, 83,175, 20,211,219,167,118,237,218, 92, 0, + 16,139,197,168, 87,175, 30, 54,110,220,104, 57,118,228,200,192,154, 55,110,184,249,159, 57,227,242,211,134, 13, 3,251,245,235, +103,189,121,243, 38,148, 74, 37, 30, 63,126, 12, 79, 79, 79,158,208,193,129,205,149, 87, 78, 34, 1,141,135, 74,213,165, 89,179, +102, 9, 10,133, 2,203,150, 45,227,240,157,156, 54, 45, 0,184,165,126,145,203,109,222,170, 85, 43, 28, 61,122, 20,169, 47, 94, +204,120, 81,140,129,121, 1,100, 37,199,199,207,216,182,109, 27, 58,117,234, 4,194,227,149, 59, 81,169, 73,147, 38,181,109, 54, + 27, 30, 60,120, 0, 23,224, 86,121,191, 95,181, 90,181,240,194,200,175, 4,184, 86,210,122, 18,224, 90, 84, 84, 20,196, 98, 49, +106,212,172, 89,191,156, 63,179,156, 16,146, 54,114,220,167, 56,124,250, 55, 0,192,182, 77,107, 50,138,152, 44, 6,131,193, 34, + 90,127,203,136, 86,161,177, 42,186,188,126,144, 45,167, 8, 0,128,207,231, 67, 40, 18, 65, 40, 20,230, 27, 36,145,168, 60,142, + 15, 14, 14, 14,175,141, 85, 81,131, 85,244,127, 71, 71, 71,187, 12, 12, 0,228, 61, 59,221,114,244,168,145, 66,145, 72, 4,163, +209, 0, 74, 41, 68, 34, 7,184,184,184, 32, 40, 40, 8, 74,165, 18,205,154,183, 54,188,148, 11,142,187,215,232, 21,253, 54, 59, +208, 98,177, 64,163,209, 32, 47, 47, 15,185,185,185, 80, 42,149,208,233,116,118,119, 69,183,217,108,220,151, 47, 95, 98,207,158, + 61,200,201,201, 1,144,159,104, 93,104,174, 10,255, 38, 36, 36, 96,231,206,157, 72, 76, 76, 44,215,241,105,217,178, 37,142, 31, + 63,206,109,211,190,253,230,115,129,129,169,231, 2, 3, 83,219,180,111,191,249,232,209,163,220, 10, 21, 42, 32, 41, 41, 9,119, +239,222, 69, 94, 94, 30, 40,165,172,255,252, 91,240, 28,200,211,230,230,142,156, 53,107, 22,149, 74,165, 88,246,253,247,117, 23, + 1,131,237, 53, 48,178, 82, 12,140,236,221, 12, 12, 40,165,176,217,108,176, 90,173,111,181,109,132, 16,194,231,243,203, 59,180, + 2, 41,135,254,235,196,247,233, 95, 45,198,201, 95, 15, 22,126, 20,199, 76, 22,131,193,248,187, 83,218, 92,135,188, 34, 14,242, +245,223,146,200,200,200,120,165,209,104,170, 4, 6, 6, 34, 37, 37,197, 43, 32, 32,224,133,144,207,135, 64, 40, 4,225,148,237, + 9, 28, 29, 29, 31,164,166,166, 54,175, 80,161, 2, 44, 22,203,107, 83,245,102,211, 97, 97,148,230,222,189,123,112,116,116,124, + 0,125,169, 35, 39,192,106,204,171, 84,191,126,253,215,145, 33, 23, 23, 23,184,184,200, 32, 18, 57, 96,246,236,217,182,149,203, +151,175, 11,104,183, 64, 49, 98,202, 44, 58,107,209,230,247,186,115,237,189, 49, 57, 58, 58, 62,240,247,247,111, 42,147,201,112, +248,240, 97, 36, 37, 37, 33, 47, 47, 15, 90,173, 22, 6,131, 1, 90,173, 22, 70,163, 17, 14, 14, 14,168, 89,179, 38,156,157,157, +113,254,252,249, 7, 48, 24,138, 55,151, 57, 57,135, 31, 60,120,208,180, 81,163, 70,175, 35, 42,109,219,182, 37,109,219,182,245, +120, 29, 69,211,106,145,157,157,141,219,183,111,227,252,249,243, 32,132, 32, 46, 46,206,106,208,233,246,178,211,226,237,208, 3, +191,115,183,109,219,250,241,199, 31,143,106,222,188, 57,172,192, 7, 0,118,254,183, 12, 76, 33, 55,110,220,120,104,181, 90,155, + 87,175, 94, 29,114,160, 49,128, 95,203,101, 34,159, 61,139,178, 88, 44,237,235,214,173,139,195, 7, 14,180, 4,144, 84,220,122, + 26,160,101,120,120, 56,116, 58, 29, 30, 63,122, 20, 89, 14,147,181,121,230,188,239, 62,250,112,244, 68,236,216,188, 14,219, 54, +173,121,185,117,227,106,127,216,145, 63,198, 96, 48,254, 85,209,172, 50,189,200,255, 34,197,229,104, 21,154, 47, 94,121,132, 20, +121,121,145, 81, 81, 81, 85,234,215,175,143,205,155, 55, 55,106,214,180,233, 43,129, 80,104, 17, 10, 4,224,216,113, 35,209,105, + 52, 23, 46, 92,184,208,184, 87,175, 94,188,155, 55,111,194,199,199,231,181,209, 42,252,203,227,241, 64, 41,133,163,163, 35,126, +249,229, 23,147, 78,163,185, 80,102,180,200,106,179,114, 10,140, 30,165, 20,114,185, 28, 2,129, 0, 43, 86,172,196,218,229,203, +135, 88,129,131,193, 18,207, 47, 0, 56,252,215,110,208, 90,237,197,147, 39, 79, 54,152, 59,119, 46,191, 98,197,138,144,203,229, +200,203,203, 67, 78, 78, 14,148, 74, 37,148, 74, 37,242,242,242, 32,151,203,225,224,224,128,232,232,104,179, 94,171,189, 88,146, +158, 72,175, 63, 52,124,248,240,233, 81, 81, 81,190, 60, 30, 15,102,179, 25, 54,155, 13, 54,155, 13, 38,147, 9,207,158, 61, 67, + 76, 76, 12,158, 60,121,130,220,220, 92,240,249,124,112,185, 92,220,187,119, 47, 79, 98, 54, 31, 96,167,244,219,195, 7, 14, 95, +191,126,125,212,176, 97,195,224, 87,177, 98,107,164,164,216,101, 96,142,148, 98, 96, 20,111, 97, 96,254, 96,128, 84,170, 59, 9, + 9, 9,205,219,180,105, 3,223,138, 21,191,171,153,146,114,238, 81, 57,242,180,172, 22,203,181,235,215,175,183,255,240,195, 15, +177,121,243,230,239, 60, 19, 18, 78,103,189,209,204,233, 9,120, 86,174, 90,245,187,143, 62,250, 8,103,207,158,133,213, 98,185, + 86,202, 69,167,232,136,239,149, 62, 26, 59,217,255,141,196,247,141,132,144, 73, 0,150,177, 26,197, 96, 48,254,201, 17,173,114, + 53, 29,138,173,214,153,211,166, 77, 51,115, 56, 28,244,233,211,199,233,215,163, 71,251,221,187,127, 63, 40, 51, 51,211,197,106, +181,150,169,229,105, 48,172,158, 54,109,154,220,104, 52, 34, 36, 36, 4,185,185,185,176, 90,173,224,241,120,224,241,120, 32,132, +128,195,225, 64, 42,149, 34, 42, 42, 10, 91,183,110, 85,122, 26, 12,171,203,188, 73, 88,173, 15,118,238,220, 9, 46,151, 75, 29, + 28, 28, 64, 8, 1,143,199,195,202,149, 43, 51,215, 2,135, 1,128,203,225, 24, 1,128,195, 33,246,102,239,150,217,110, 41, 20, + 10, 97,203,239, 4, 80,230,186,174, 6,195,170,165, 75,151,170, 30, 63,126, 12,141, 70,243, 58,250,166, 86,171, 95, 39,215,203, +229,114, 16, 66,160,209,104,112,244,232, 81,149,171,193,176,170, 36,189, 28, 32, 61, 37, 46,174, 71,163, 70,141,114, 18, 18, 18, +160, 80, 40,240,224,193, 3,156, 63,127, 30,251,247,239,199,217,179,103,241,236,217, 51, 88, 44, 22, 84,168, 80, 1,148, 82, 28, + 57,114, 68, 97, 81,169, 62,200, 1,210,217,105, 81, 50,149,124,124,218,123,123,121, 37,123,122,120,164, 84,242,241,105,255,230, +231, 50, 32, 54, 54, 54, 22, 22,139, 5, 65, 65, 65,110,165,229,105, 81,139,229,250,245,235,215,241,225,135, 31,194,191, 74,149, + 37,129,128,231,155,235, 4, 2,158,129, 85,171, 46, 41, 52, 48,212, 98,185, 94,222, 50, 59, 1,107,190,248,226, 11,157, 64, 32, +192,190,125,251,130,204,213,170, 61,225, 1,131,165, 64,104, 27, 64, 80,214,247,125,129,117, 95,125,245, 85, 58, 33, 4,187,118, +237,242,144, 85,173,250,144, 7, 12,151, 1,149,100, 64, 37, 30, 48, 92, 86,181,234,195,125,251,246,121, 88, 44, 22, 76,153, 50, + 37,221, 23, 88, 87,138,228,100, 74,105,119, 74,105, 43, 74,169,255,214,141,171,113,242,215,131,133, 38,107, 52,165,244, 54,165, +116, 24,165,244, 33,171,113, 12, 6,227,159, 12, 41, 46, 15,138,223,120, 81, 6, 64,189, 90, 55,169,131, 59,247,159, 42, 60, 92, +157,207, 20,126,150, 27,115,176,122,187, 48,231, 58, 63,254,248, 35,248,124, 62, 94,190,124,137, 71,143, 30,193,217,217, 25, 67, +134, 12, 49,232, 84,170, 30,133,115, 29, 18, 66, 58, 80, 74,207, 23,104,230,207,167,166,136,147, 86,229, 69, 87, 57,125,242, 56, + 87, 38,147, 65,173, 86,131,195,225,192,193,193, 1,142,142,142, 16,139,197,184,123,247, 46, 34,186,247,180,102, 57,182,122, 61, + 96,105,225,124,106, 69, 53, 65, 8, 23, 0, 26, 3,142, 81,192,231, 94,126,126,211,230,204,153, 35,238,220,185, 51, 4, 2, 1, + 42, 86, 10, 78, 15,234,178,108, 13,135, 67, 44, 41, 57,202,217, 85, 43,249,201, 30,197, 37, 1, 32,249,115, 34, 22,204,117, 88, + 92, 57, 3,140, 87,130,126,249,121,185,115,189,122,249,249,232,114,185, 28, 25, 25, 25,200,204,204,132, 92, 46,135, 70,163, 1, + 0, 28, 63,126, 28, 39,175, 62, 81,234, 42,246,139, 47,169,156,255,217,246,167, 78,126,166, 91,149,119,239,252,153,235,233,233, +137,140,140, 12,100,101,101, 65, 46,151, 67,167,211,193,106,181, 34, 55, 55, 23, 91,182,253,108,205,145,182, 74, 44, 28, 16,178, + 84, 77,205, 75,177,155,250,183, 10,225, 53, 3,233,168, 81,163,156,156,157,157, 97,179,217,144,151,151,135,228,228,100, 36, 36, + 36,224,234,213,171,154, 76,185, 17, 26,143,142, 41,133, 3,150, 22,187, 63,223, 95, 8,245,239,167, 89, 80,151, 0,192,207,215, + 55,245,197,139, 23, 94, 86,171, 21, 21, 42, 84,176,200,115,115,151, 8,129,179, 78, 64, 26, 0,154, 13,204, 89,181,102,205,200, +158, 61,123,162, 97,195,134, 47,211, 51, 50, 42, 23, 87,151, 64, 8, 55, 4,144,105, 43, 86,140,185,125,251,182, 79,114,114, 50, + 62,252,240,195,236, 23,207,159,207,144, 21,228,107, 41,128,150,129, 85,171, 46,217,183,111,159, 71,149, 42, 85, 16, 22, 22,150, +238,144,156, 92,235, 41,160, 40,161,126,150,120,110,202, 99, 79, 84, 30,223,187,118,195, 9, 19, 38,192, 98,177,224,234,213,171, +184,117,235, 22, 94,188,120,129,223,126,251, 77,238, 44,145, 12, 44,156,235,176,164,250,249, 65,176, 38,104,215,174,157, 68, 32, + 16, 96,219,182,109,136,138,138, 2, 0,132,135,135,227,163,143, 62,130,197, 98,193,208,161,195,232,137,167,226,248,210,234, 39, + 33,164, 54,128,239,145,111,242, 26, 82, 74, 29, 8, 33,169, 0,252,203,147,147,197,234, 39,211,100,154,255, 30,205,127, 42,101, +206,117,184,112, 61,100,127,156,230, 99, 76,234,193,141, 11,120, 45, 90,182, 10, 93, 48,127, 30,167, 81,163, 70,240,247,247, 71, +120,120, 56,146,147,147, 69, 46, 46, 46,101,205,167,166,110,213,101,112, 66,157, 58,117, 92,102,204,152, 33,235,212,169, 19,223, +223,223, 31,148, 82, 68, 69, 69,225,240,225,195,166,205,155, 55, 43,181,222,221,229,145,151,246,168,237,153, 79,237, 22,160, 5, +240,117,197,212,212, 77, 19,199,143,159, 87,175,126,253, 81,243,231,207,231, 72, 29,197,252,197,179, 71, 59, 0,192,194, 31,246, +203,122,246, 27,130, 85,213,128,214,131,139,159, 71,174,104, 57,147, 83,198,188,232,218,187,125,181,207, 39,141,180, 14, 24, 48, + 64,226,236,236, 12,127,127,127,184,186,186, 34, 62, 62, 30, 41, 41, 41,244,216,177, 99,234, 27,247, 98,249, 71,206,222,121,225, + 32,243,181,103, 94, 66, 85,171,206,253, 19,187,118,237,234, 58,124,248,112,167, 6, 13, 26,240, 69, 34, 17, 68, 34, 17, 50, 50, + 50,240,236,217, 51,211,177, 99,199,212, 90,175, 15,242, 34, 47,237, 83,217, 57,215,161,174,213,160, 5,207,174,157,155, 63, 37, +230,193,131, 97, 54,160,174,201,100,170, 96,181, 90, 9,135,195, 73,179,217,108, 15, 76, 42,213, 86, 67,248,252,149,108,174, 67, +251,176, 90,173, 2,171,213, 10,185, 92,142,115,231,206,241,158, 63,127, 62,231,254,253,251,115, 82, 83, 83, 97, 54,155,209,183, +111, 95,132,135,135,227,210,165, 75,200,202,200, 56, 86,154,214, 83, 64, 33, 74, 73,249,104,204,152, 49,167,118,238,220,201,185, +127,255,190,199,182,109,219,182, 20,103, 96,134, 13, 27,102,203, 72, 78,254,200, 0, 40, 74,169,159,165,157,155,217,167,247,173, +189,223,171, 79,191,154,243,231,206,225, 55,107,214, 12, 30, 30, 30,104,217,178, 37, 76, 38,147, 75,141, 26, 53,202, 58, 55, 85, +173,186, 12,140,175, 91,183,174,100,229,202,149, 62, 35, 71,142,196,164, 73,147, 0, 0, 58,157, 14,103,207,158,197,148, 41, 83, +210,147,121,141, 53,101,213,207,130, 72, 85,161, 1,187, 2,160, 21,128,120,150,248,206, 96, 48,254,145, 81, 43, 66,194, 41,165, + 81,132, 16, 95, 0, 17, 0, 78, 80, 74,211, 74, 52, 90,192,127,230, 83,187,118,235, 33,138, 78,243,145,143,239, 35, 75,192,240, +231,227,166, 45, 9,227,154,149,174,124,162,119,142,139,141, 37,101,205,121,248,122, 62, 53, 89,176,218, 61, 97,111,163,197, 11, + 23,126,186,106,213,170,246,133, 67, 56, 56, 58, 58, 62,208,105, 52, 23, 60, 13,134,213, 90, 89,240,133,242,206,205,151, 2,100, + 0, 24,239, 26, 25,185,166, 91,207,190, 75, 29,220,130,248,179, 22,109,214,115, 57, 28,227,179,212, 44,172,170, 6, 72,236,232, + 32,169, 53, 2, 49,114, 95, 75,134,123,191,167, 95,125,241,197,231, 11,191,254,186,145, 84, 42,109,109,178, 88,130,109, 54, 27, + 96,179,197,105, 53,154, 43,212,100,186,109, 8,159,187,220, 65,230, 75,237,158,151,208,165,134,202, 45,241, 96,163,237, 91,183, + 78, 62,112,224,192,159,182,221,221, 96, 88,163,117,169,113,222,158,109, 47,186,142, 30,248, 29,153,153,191,151, 88, 9,192,230, + 58,180,251,233,195,102, 27,235,234,234,186,163,125,251,246, 14, 29, 58,116, 64, 68, 68, 4,154, 53,107, 6,155,205, 6, 74, 41, + 84, 42, 21,246,239,223,143,165, 75,151,198, 85, 6,190, 46, 75,207, 0, 92, 16,157, 60,249, 65,221,186,117,183,149,102, 96, 10, + 76, 86,153, 57,137,165,159,155,162, 56,139,172, 71,210,160,137,139,171, 25,149,105, 46,238,142, 22,159,152,135, 15, 56,246,159, +155, 33, 42,107,212,254,198,125,123,247,158,200,229,241, 90, 22,244,128,164,143, 31, 61,138, 44,156, 84, 26,225, 31,157, 43,103, + 93, 42, 28,187,142, 37,190, 51, 24,140,127, 42,225, 0,162, 0, 68, 80, 74, 55, 21, 36,199,151,156, 12,207,227,241, 50, 11,163, + 62, 60, 30, 47, 51,254,200,184, 33,165,169,243,129,246, 5,145, 44,148, 57,215, 97,193,255, 73,128, 10, 6,195, 55,127, 24,140, +180, 72,239, 66,254, 27,235,151,103,107,243,128,167,176, 24,186, 33,243, 17,112,116,124,190, 94,163,133, 95, 22,221,166, 18,111, +178,127,248, 93, 65,174, 30,184, 6,181,250, 26,212,234, 98,147,118,249, 60, 65,110, 89,229,124,115,219,147, 1,229,187,110, 59, +175,156,251,135,247, 14,251,243,223,198,171,236,236, 35, 0,164, 21,143, 31,247, 62,125,252,248,128,207,167, 78,237,235,235,231, + 87,213,195,195,195,213,201,201,137,115,243,230,205, 4,139, 94,191,166, 30,176,189, 32,154, 90, 38, 6,224, 66, 72,114,114,173, +254,189,123, 79, 36, 60, 94,139,162, 6,134, 90, 44,191, 5, 1,235, 74,139,100,189,237,185,233, 47,242,109, 95, 16,201, 2,215, +206,115, 51, 37,191, 28,139, 96,177, 44, 66,116,116, 49,117,190,220,117,105, 33, 33, 68, 5,150,248,206, 96, 48,254,185,156, 40, + 48, 87, 39,254,244,201, 95, 57,191, 15,128, 14, 76,147,105,254, 83, 52,243,189, 10,156,217,254,100,154, 76,147,105, 50,205,247, +175,249, 79, 93,120,204,132, 50, 24,246, 65,243,147,211,149,108, 79, 48, 24, 12, 6,163, 40, 69,114,179,138,222, 51, 54, 1,249, +169, 59, 29, 74,184,169,156, 47,199, 15,116,120,139,155,214,121,166,201, 52,153, 38,211,100,154, 76,147,105,254,187, 52,203,210, +254, 59,246,102, 36,132,140, 45,204,205,122,115, 76, 45, 98,239, 52, 55,111,249,195,172,235, 43,211,100,154, 76,147,105, 50, 77, +166,201, 52,255,209,148, 22,209,226,176,221,195, 96, 48, 24,192,130, 5,132, 3, 16, 2, 44,224, 0, 7,185, 64,127,110,254,235, +183,167,127,127, 82,236, 96,182,147,135,186, 57,177, 61,206, 96,252,115,160,148,166,149, 52,169, 52,203,209,250,239, 58,224, 0, + 31, 31,159,141, 0, 72,122,122,250, 88, 74,105, 50,219, 43,255,123,184,187,187,183,183, 88, 44, 80, 40, 20, 23,254,137,219, 87, +171, 26,233, 77, 57,168,241,159, 43, 6,146, 31,197,209, 29,197,173, 91, 51,152,124, 8,242,159,177,184,136, 13,143, 99,158,209, + 95,202, 81,231, 57, 31,116,240, 95, 7, 0,167,206,191,156,248, 87,140,171, 69, 8,169,238,233,233,121,134,199,227,241,172, 86, +235,248,140,140,140,227, 37, 27,161,254, 92, 0,224,211, 75, 51, 61,220, 66,103,124,246, 49,225,107, 13, 91,229, 6,157, 70,193, +229,115, 19, 69,124,159,235,224, 86, 56,149,167,110,250,168,184,239, 31, 56,112,160,196, 89,188,107, 7,147, 15, 66,107,214,236, + 94, 63, 76, 28,255,253,234, 70,171, 90, 7,121,240, 19, 94,222,147,126,183, 65,177,209,217,173, 82,247,225, 3,221,143,243, 28, +201,176, 45, 91,178,213,236, 44,179,159,111, 9,113, 51, 1, 97,124,145,200,223,106,177,120, 19,128,114,121,188, 12,179,193,240, + 82, 0, 68,207,160, 84,254, 79,215, 20,136, 68, 21,173, 22,139, 55, 0,252, 47,150,147,241, 71, 74, 52, 90, 78, 78, 78,119, 57, + 28, 78,197,162,147,225, 22,206, 39, 88,248, 94,209,207, 8, 33,176, 90,173, 41,185,185,185, 13,202,113, 65,116, 6, 48, 0, 64, + 97, 23,245,221, 0,246, 83, 74,149,111,121,129,117, 22, 8, 4,211, 36, 18, 73, 59,157, 78, 87, 11, 0,196, 98,113,140, 70,163, +185,104, 50,153,190,127, 27, 93, 66, 8, 15, 64,127,169, 84,218,150,195,225,180,165,148, 18, 74,233, 37,181, 90,125, 17,192, 1, + 74,169,229, 45, 52,197, 94, 94, 94,139, 66, 67, 67, 7,207,156, 57, 51,199,221,221, 61,100,202,148, 41,119, 60, 61, 61,247,100, +103,103,207,166,148,234,254, 23, 42, 7, 33,164,170,143,143,207,110, 62,159,207,125,249,242,101, 91, 0,240,247,247,191,100, 52, + 26,173,153,153,153, 67, 40,165,207,203,169, 39, 1,208, 68, 42,149, 54,144, 74,165,173,172, 86,107,141,130,249, 25, 31,171,213, +234,171, 38,147,233, 46,128,155,148, 82,205,255,144, 25,118,242,242,242,218, 73, 8, 1, 33, 36,152, 82,170,250,199, 61,137,113, + 80,227, 81,204,147,144,215,102,170, 86,104, 41, 59, 4, 1,197,172,107,183,209,106,215,218,183,123,143, 30, 29, 57, 0, 96, 52, +159,234,142,114, 78,126,109,143,201,234,211,167,207,239, 59,119,238,116, 53, 24, 12, 24, 59,118,236,110,153, 76,182, 78,161, 80, +204, 44,237,123,206, 82,215, 41,203, 86,158,117,204,159,255, 26, 94, 54,155,213,235,213,171,231,193,143, 30,254,222, 37, 38,230, +198, 98,221,147,139, 55,109,132, 63,206,132,150, 79,236, 41, 71,205,170,164, 91,207,254,189, 35,190,254,122, 62, 6, 15, 28, 92, + 41, 38, 70, 47,174,224, 28, 47,204,213, 73,170,185,123,122,245,248,122,225, 65,114,253,218,145, 30, 59,183, 45,184, 56,106,148, + 71, 59,102,182,236, 58,182,100, 33,143,215,196, 53, 52,180,213,192, 35, 71, 32,245,247,231,241, 68, 34, 14, 0, 88, 12, 6,127, +245,203,151,190,251,122,244,104,188,128,144,203,243, 40,189,197, 52,255,255, 53, 25,229, 52, 90, 28, 14,167,226,171, 87,175,188, + 36, 18, 73, 97, 88, 12, 86,171, 21, 86,171,245,245,228,197,148,210,215,127, 45, 22, 11, 66, 67, 67,237,122,162, 5,208, 14,192, +136, 54,109,218,244,251,254,251,239,249, 97, 97, 97,133, 83,134,180,156, 53,107,214, 15,132,144, 67, 0,182, 3,184, 96,239, 19, + 47, 33,164,179, 68, 34,217,181,108,217, 50,231,142, 29, 59,242,252,252,252, 64, 8, 65,122,122,122,147,243,231,207, 55,152, 50, +101,202,120, 66,200, 80, 74,233,153,114,156,216,181,157,156,156, 14,246,238,221,187, 98,235,214,173, 29,106,214,172, 9,171,213, +138,123,247,238,141,188,123,247,238,160, 67,135, 14,205, 35,132,244,179,119,190, 54, 66, 8,145, 74,165,195, 43, 84,168,176,104, +238,220,185,110, 67,135, 14, 21, 62,124,248, 48, 47, 40, 40,136, 92,191,126,221,115,255,254,253,227,151, 44, 89,210,223,201,201, +105,182, 90,173,254,153,218,145, 64,231,236,236,124,151,195,225, 84,180,199, 8, 3,176,219, 12, 19, 66,234, 85,174, 92,121,255, +181,107,215, 42, 39, 37, 37, 89,123,245,234,181, 3, 0, 46, 94,188, 24,102, 54,155, 73,167, 78,157, 78, 17, 66, 6, 80, 74,239, +217,185,237,117,220,220,220,126, 29, 60,120,176, 91,213,170, 85, 29, 43, 87,174, 76, 36, 18, 9,184, 92, 46, 20, 10,133,223,195, +135, 15, 59,220,186,117, 75,119,254,252,249, 92, 66, 72, 15, 74,105,116, 57,142, 83, 51, 47, 47,175, 97,124, 62,191,182,197, 98, +169, 0, 0, 60, 30,239,149,217,108,126,152,153,153,185,147, 82,250,251,219,158, 32,222,222,222,107, 23, 45, 90,228,145,153,153, + 73,151, 44, 89,178, 22,192,240,127,234,197, 96,247,158, 3,184,123,231, 22, 0, 8, 8, 33,228,205,250, 71, 8, 33, 53,130, 33, +248,236,179,169,104,208,176, 49,134, 12,238, 95,166,102, 68, 7,255,101,124,161,192, 93,175,215,255,174,208, 26, 14,120,187,187, + 12, 24, 60,168, 91, 28, 0,156, 58,125,121, 64,227,198,110,151,100,142,162,254, 14, 14, 14,205,204, 70, 83,206,137,243, 47,191, + 40,143,169,170, 80,161,194, 25, 87, 87, 87,199,220,220,220,244,172,172,172,245,125,250,244, 89,184,125,251,118,215,132,132, 4, +188,124,249, 18,159,126,250,169, 52, 37, 37,101,162, 72, 36,186, 97, 48, 24, 74,140,108,169, 84,185,171,103,205,232, 57, 87, 38, +243,224, 74, 28,157,225, 36,115, 67, 80,213,186,104,210,172, 59, 62,136, 24,133,103,113, 81, 77,182,111,251, 58,234,213,171,243, +223, 74,221,170, 44,148,203, 43,151,120, 93,170, 21, 66, 90, 23,154,172,185,115,231, 35,246,201, 19, 85, 82, 34,231,147, 19, 71, +120,142, 31,180, 15, 21, 89,140,233, 73,215,175, 29,169,220,162,101, 47, 0,104,176,115,219,130,139,147,135,186,181, 95,179, 43, + 87,197,110, 73, 37, 95, 59,191,230,243,135,119, 94,185,210, 43,124,252,120,129, 58, 49,209, 20,191, 97,131, 54,227,234, 85, 43, + 79, 36,162,254, 93,186, 16,207,182,109, 29,198, 63,126, 44,248,109,201,146, 86,139,133,194,160, 89, 70,227, 46,166,249,255,167, +201,234,232,235,100,248,215,185, 90,133,205,135,188, 82,190, 4,137, 68,130,125,251,246,129,207,231,131,199,227,129,207,231,151, +248,127, 64, 64,128, 61, 5,233,227,227,227,243,195,186,117,235,188, 59,119,238, 12, 7, 7,135,215,159,113,185, 92,116,236,216, + 17, 29, 58,116,224,167,166,166, 14,218,183,111,223,160,197,139, 23,103, 16, 66, 38, 81, 74, 15,151,161,219, 54, 36, 36,228,240, +217,179,103,197,122,189, 30, 87,175, 94, 69, 94, 94, 30,132, 66, 33, 42, 86,172,136, 78,157, 58,241,158, 60,121,226,214,177, 99, +199,195,132,144,110,148,210, 75,118,148,181,129,151,151,215,149, 3, 7, 14, 56,212,173, 91,151, 60,123,246, 12,225,225,225, 0, + 0,133, 66,129, 94,189,122, 57, 12, 29, 58,180,234,160, 65,131,110, 18, 66, 90, 83, 74,239,150,161, 87,223,199,199,231,231,222, +189,123,251, 45, 94,188,216,217,201,201, 9, 73, 73, 73,105, 62, 62, 62,193,133,251,123,208,160, 65,194,238,221,187,251, 46, 93, +186,116,245,193,131, 7,191, 32,132, 12,167,148, 70,150,166, 91,104,136, 29, 29, 29,145,145,145,129,221,187,119, 99,226,196,137, +224,114,185,200,204,204,196,254,253,251,241,201, 39,159, 20, 26, 26,187,204,176, 68, 34,233, 80,183,110,221, 45, 23, 47, 94,172, +232,226,226, 2, 63, 63, 63,206, 87, 95,125, 85, 59, 40, 40, 72, 92,169, 82, 37,110, 90, 90, 26, 14, 31, 62, 28, 52,108,216,176, + 95, 29, 28, 28, 70,234,245,250, 50,155,212,188,189,189,183,158, 56,113, 34, 32, 38, 38, 6, 27, 54,108, 64,110,110, 46,132, 66, + 33, 92, 92, 92,224,227,227,131,224,224, 96, 50, 99,198, 12,199,238,221,187, 59, 78,154, 52,105, 43,128,122,118, 28,163,186, 94, + 94, 94, 27, 7, 13, 26, 20,180, 96,193, 2, 23, 31, 31, 31, 20, 62, 24, 40, 20,138,138, 73, 73, 73, 77,230,206,157,219,207,219, +219, 59, 33, 51, 51,115, 28,165,244,126, 57, 79,156,122,237,219,183,239,214,171, 87, 47,110, 90, 90, 26,118,238,220,217,141, 16, + 82,207, 94,115,249,119,227,238,157, 91, 24, 59,225, 83,181,159,191,191,224,236,153, 45,125,228,242,154,119, 92,196,249, 19, 82, +203,117, 48,181,107,205,109,216,169,243, 40, 65,215,136, 94,234, 77, 63,174,150,218, 99,180,248, 66,129,251,238, 93, 43,146,175, + 93,191, 91,251,220,249, 91, 93,250,244,232, 65, 5, 2,151, 32, 0,248, 98,202,103,252,195, 71,143,110,235,216,161,113,106,203, + 22, 13,146,135, 12,157, 26, 80,142, 99, 83,189,122,245,234,151,163,162,162,188, 69, 34, 17,114,115,115,221, 55,109,218,180,162, + 69,139, 22,156,248,248,120, 60,121,242, 4,137,137,137, 80, 40, 20,232,216,177,163, 52, 50, 50,114, 61,128, 18,141,150,137,211, +110,145, 95, 37,243, 26,119,177,164,178,201,170,244,162,230,180,154,231, 78,156,171,179,119,167, 46,220,219, 55, 52,120,196, 71, +243,240,245,194, 67,252, 61,187,191,155,123,225,252, 94,128, 83,185,228, 25, 1, 40,154,205,154, 61, 19, 74,149, 1, 67, 7,143, +193,176,193, 99,220, 41,140,190,212,170,151, 24,117,121, 46, 78,130,199,199,215,109, 94,209, 27, 64,197, 34,102,235, 2, 51, 91, + 37,243, 53,143,215,184,219, 15, 63,120,214, 30, 61, 90,116,127,193, 2, 77,246,213,171,186,106, 93,187,230,133,127,252,177, 1, + 0, 84,137,137,130,216,121,243, 28, 61, 91,181, 18, 55,157, 54,205,213,106, 52,250,124, 67, 72,163,175, 40,189, 93, 94,205,128, + 1, 3,172,115,183,109,107,120,117,234,212, 54,196,108,230,118,105,218,244,222,146,157, 59, 95,189,139,230,251, 44,103,234,149, + 43,134,220,160, 32,132,247,234,149, 19,224,229,101,120,159,219,254, 46,229,100,160, 48, 40,149, 6,160,112,100,248,252,235, 21, +165, 20, 39, 78,156,104, 13,224, 50,128, 5, 17, 17, 17,243, 1,192,197,197, 37, 67, 46,151,123, 29, 62,124,184, 76,147,197,231, +243,225,235,235,139,224,224,224,204,140,140, 12,239, 82, 46,142, 47,109, 54, 91, 69, 74,233,235,232, 75, 73, 24, 12, 6,196,197, +197,161, 78,157, 58, 41,148, 82,255,210,154,118, 28, 29, 29,227,159, 60,121,226,241,232,209, 35,220,189,123, 23, 65, 65, 65,112, +117,117, 5,159,207,135,217,108,134, 82,169, 68, 72, 72, 8, 68, 34, 17,234,215,175,159,173,209,104,130, 74,107, 2, 34,132,136, + 36, 18, 73,220,149, 43, 87,252,195,195,195,113,251,246,109,248,251,251,195,199,199, 7, 0,144,152,152,136,235,215,175,163,107, +215,174,136,138,138, 66,223,190,125, 95,106, 52,154, 96, 74,169,161, 36, 77,119,119,247,180,139, 23, 47,166,132,133,133,233, 53, + 26, 13, 39, 35, 35,131,127,245,234, 85,139, 74,165,146, 42, 20, 10,190, 92, 46,231, 43,149, 74,158, 70,163,225,115, 56, 28,129, + 78,167,227, 95,184,112,129,107, 52, 26,157, 75,219, 79,133,199,233,232,209,163, 8, 11, 11,195,225,195,135,241,249,231,159,227, +183,223,126,131,191,191, 63, 14, 28, 56,128,105,211,166,225,233,211,167,240,240,240, 64,205,154, 53, 75, 61, 70, 0, 80,173, 90, +181,103, 15, 30, 60,168, 42, 16, 8, 10,231,117, 44,156, 47, 15, 89, 89, 89,120,254,252, 57, 94,189,122,133,106,213,170, 97,240, +224,193,207, 83, 82, 82,170,149, 85,249, 42, 86,172,152, 21, 19, 19,227, 81,167, 78, 29,100,100,100,192,197,197, 5, 50,153, 12, + 46, 46, 46,175,255, 15, 10, 10,194,212,169, 83,225,227,227,147,169,211,233,188,203, 50, 65, 97, 97, 97,103, 46, 92,184,224,225, +236,236,140,244,244,116, 40,149, 74,240,120, 60, 56, 58, 58,194,195,195,227,181,145,143,139,139, 67, 68, 68, 68,118,124,124,124, +231,114, 68,224, 56,222,222,222, 79,162,163,163,131, 41,165, 72, 78, 78,198,211,167, 79, 49, 97,194,132, 56,189, 94, 31,250, 79, +154,179,175, 72,222,149, 96,248, 71, 99, 5,189,123, 54, 51, 62,142, 57, 78, 68,182,167,168, 87,219, 89, 1, 0,247, 30, 42,101, + 6, 78, 8,106,212,234, 70,127,249,245,119,225,207,219, 55,241, 97,131, 55, 8,158, 62,138,165,223,148,164,221,185,157,223,232, +207, 62, 27, 89,187, 77,139,214, 28,149, 70,227,181,126,253,202,250,241,241,143,189, 0, 32, 40,168, 70,230,248,241, 83, 34,157, + 36,146,204,203,215,175,216, 86,173,218,250,240,204,197,212,205,118, 28,155,160,224,224,224, 27, 71,143, 30,245,240,242,242,130, + 76, 38,131, 70,163,129,201,100,194,163, 71,143,244,251,246,237, 51, 59, 59, 59, 59,165,167,167, 67, 46,151,131, 16,130,163, 71, +143, 38, 83, 74, 3,223,212, 42,204,209, 2,128, 9, 31,212,224,215,108, 23,236, 42, 16, 89,196, 98,126,172, 47,136, 85, 68,168, +212,251,212,153,123,117, 78,157,187, 61,164,119,159,207, 61, 91,182,238,141,185,115,250,153, 83, 83,147,195, 77,104,249,164,184, + 28,173, 26,193,164, 93,175,190,189,251,127,253,245,124,204,159,187, 0,199,143, 30, 81, 72, 37, 28,131,179, 11, 95,214,170, 73, +115,253,212,137, 61, 95,170,213,169,254, 95, 47,221, 55, 56,162,231,212,138, 45, 90,246,194,245,107, 71,176,115,219,130,187, 68, + 76, 89, 51,226, 27, 44, 32,196,213, 37, 40,104,220,228,184, 56,193,253,249,243,213,150,212,212,188, 6, 83,166,100, 23,183,110, +202,185,115, 18,161,159,159,179,107,143, 30,110,171, 3, 3,169, 57, 51,115, 99,113, 57, 70,197,105,158,151, 74, 93,246,158, 58, +213,158,242,249,173,167,127,249,165,184, 91,183,110, 80, 42,149, 56,116,232, 16, 54,110,216, 96,240,245,245,125,224,247,240, 97, + 84,109,165,114,142,189,154, 13,166, 76,201,182, 90,173,164,255,180,105, 29, 99, 18, 19,219,165,103,102, 86, 2, 0, 95, 55,183, +151, 13,130,130,238,110, 61,126,252,233,218,202,149,109,246,150,243,167,211,167,189, 15, 38, 37,141,118,115,115, 19,103,100,102, +242, 68, 66, 97, 78,147,154, 53, 15,252, 56,123,246,101, 75,116,180,192,161, 98, 69,103, 89,183,110,229,222,246, 6, 83,166,100, +231,170, 84,188,201, 11, 23, 54,127,145,145, 81, 73,109, 48, 84,147,171, 84, 62, 86,179,153,227,236,232,152, 83, 37, 36, 36, 83, +119,245,106, 90, 21,173,246,211,159, 40,205,252,171,142,117,113, 94,228,111, 20,209,122,179,215,225,159,230, 58,188, 28, 17, 17, + 65,138,113,102,118, 69,179,248,124,254, 31,154,169, 74, 65, 64, 8, 65,100,100, 36,220,221,221,225,227,227, 3,145,232,143,147, + 15,102,101,101,225,183,223,126,195,227,199,143, 81,183,110, 93, 0,249, 79,212, 37, 33, 18,137, 62, 91,186,116,169,139,209,104, +196,221,187,119,209,160, 65, 3,136, 68, 34, 8, 4,130, 63,152,192,204,204, 76,212,170, 85, 11,211,167, 79,151, 45, 94,188,248, + 51,148, 50, 71, 29,143,199,155, 52,102,204, 24,175,194, 8,214,203,151, 47, 81,191,126,253,215,159,123,122,122,226,222,189,123, +104,208,160, 1, 42, 86,172,136,126,253,250,121,237,220,185,115, 18,128,239, 75,210, 20, 10,133,156,176,176,176,134, 5, 17, 35, +112, 56,156, 88,103,103,103, 79,111,111,111,137,179,179,243,159,182,113,219,182,109,114, 14,135, 99, 46,107,135,114, 56, 28,164, +167,167,163,118,237,218, 80, 40, 20, 0, 0,141, 70,131,106,213,170, 65,169, 84,190, 54,173,126,126,126,208,233, 74, 79,253,170, + 91,183,238,252,208,208,208, 78,109,218,180, 17,241,249,124,220,191,127, 31,225,225,225,216,183,111, 31, 2, 2, 2,224,232,232, +136,184,184, 56,132,133,133,225,202,149, 43,240,244,244, 68,173, 90,181, 68,245,235,215,191,150,155,155,123, 41, 41, 41,105,126, + 41,229,228, 72,165, 82, 92,185,114, 5, 91,183,110, 69, 98, 98, 34, 82, 83, 83,225,228,228,132,122,245,234,161,102,205,154,104, +214,172, 25,226,226,226, 64,202,168, 76,132, 16,159,224,224,224,227,183,111,223,246,160,148, 98,231,206,157, 80,171,213, 48, 26, +141,224,112, 56,112,112,112,128,171,171, 43,218,181,107, 7, 79, 79, 79, 4, 7, 7, 99,255,254,253, 30, 31,124,240,193,201,130, +136, 84,122, 89,251,213,213,213,245,211,121,243,230,249,123,121,121, 33, 41, 41, 9, 10,133, 2,222,222,222,104,211,166, 77,133, +243,231,207,127, 10, 96,229, 63,229, 70, 86,152,248, 78, 8, 33,103,207,108,233, 19, 92, 37, 47,172,110,136,163,255,225,227,222, +254,251,142,103,214, 2,128,218, 53,188, 99,250,116,115,124,121, 63,230,248,203,179,103,142,220,125, 28,139,195,246, 52,109, 43, +180,134, 3,231,206,223,234, 18, 94,183,190,109,233,119,211, 34, 38, 78, 24, 45,242,242, 30,133,140,228, 35, 56,127, 49, 50, 96, +218,231, 99, 60,191, 95,254,211,169,115,231,111,113, 20, 90,195, 28,123,202, 91,189,122,192,218,237, 63, 54,243, 80,101, 31,196, +179, 39, 66,136,157,106, 35, 40,168, 58,148, 74, 37, 28, 28, 28, 28, 6, 15, 30,108,157, 57,115,166,214,217,217,217,145, 16,130, + 75,151, 46,101, 2,232, 92,150,174,222,203,149, 90, 77,102, 11, 21,114,109,148, 56,233,136, 53, 87,248,240, 81, 2, 58,117,104, +155,209,162,113,237,197, 51,191, 94, 62, 43,184,122,184,231,200,209, 11,248, 11,231, 15,217, 0,130,150,197,233, 60,142,163, 23, +107, 86, 37, 98, 0, 17, 95,127, 51, 31,241,241,113,174, 99, 71,200, 23,240, 68, 98,191,208,192,230, 78, 27,182, 94,234, 82,173, + 90,229, 74, 83, 39,245, 59,177,226,135, 21, 17, 69, 35, 91,219,183,205,251,149, 16,210,158,254,149,227,238,252,253,168, 51,236, +248,113,168,147,147,205,185,215,174,233,219,255,240, 67,182,127,231,206, 43,141, 38,147, 71,225,165,130, 67, 8, 72, 97,234,132, +205, 70,120,211,167,115, 40,143, 7,179,171,235,136, 25, 64,245,178, 52, 63, 79, 75,235, 51,100,244,232,136, 95, 79,159, 70,229, +202,149, 95,223,207, 92, 92, 92, 48,109,218, 52, 76,153, 50, 69,116,239,222,189, 70, 7, 15, 30,108,244,253,178,101,222, 51,128, + 62,246,148,243,236,205,155,174, 31,127,253,245,236,186, 13, 26, 4,236,216,189, 91, 84,181,106, 85, 0,192,243,231,207,131,191, + 91,178, 36,176,118, 88, 88,198,226,207, 62,219, 30, 51,115,102, 45, 0,215, 74,211, 76,191,122,213,120, 48, 41,105,244,197, 75, +151, 92,106,215,174, 13, 0,120,250,244,169,215,234,213,171,199,212,234,215,111,232,215,227,199,207,233,166,215,203,157,179,178, + 68,221,214,174,229,237,237,223,191, 76,205,194,114, 2, 64,155,145, 35, 63,107,217,182,109,205, 62,163, 71,187, 5, 4, 4, 16, +169, 84, 10,147,201,132,212,212, 84,215,152,152,152,170,199, 85, 42,229, 47, 55,111,238,252,169, 96,178,248,191,136, 98,189,200, +223, 41,146, 85,172,167, 40,248,219,230,196,137, 19, 20, 64,155,136,136,136, 43,133, 55,112,171,213,106,151,201,226,241,120, 40, + 72, 22,182,183, 64,200,206,206, 70,118,118,246,235,166,163,204,204, 76, 92,188,120, 17,113,113,113,224,243,249, 16, 8, 4, 48, +153,202,158,131, 86, 34,145,116,232,208,161, 3,239,230,205,155, 8, 10, 10,130, 88, 44,126, 93,174,194, 69, 32, 16,192,215,215, + 23, 74,165, 18,237,219,183,231,175, 89,179,166, 67,105, 70, 75, 38,147,117, 29, 48, 96,128,176,240,181, 90,173, 6,151,203,125, +109, 90,212,106, 53,114,115,115, 33,151,203,161,215,235,209,180,105, 83,225,241,227,199,187,150,102,180,138,162,213,106,213,153, +153,153, 46, 45, 91,182,116,221,190,125,251,211,166, 77,155,134,252,161,166, 93,190,172,215,235,245,124, 14,135, 99,215, 60,122, +187,118,237,122,189,239, 95,189,122,133, 13, 27, 54,188,254, 44, 46, 46, 14,107,214,172,121, 61, 21, 64,105,199, 40, 52, 52,244, +131,157, 59,119, 54,216,177, 99, 71, 30,151,203,197,211,167, 79,177,123,247,110, 80, 74,225,233,233, 9,173, 86,139,140,140, 12, + 92,186,116, 9, 22,139, 5, 82,169, 20, 21, 42, 84,112,152, 52,105, 82,139, 5, 11, 22,240, 1,148,104,180,172, 86,171,149,203, +229, 34, 48, 48, 16,115,231,206,133, 94,175,135, 64,144,239, 47,149, 74, 37,228,114, 57,162,162,162,144,148,148,132,178,110, 50, + 14, 14, 14,253,118,236,216,225, 37, 20, 10,161,211,233,160, 82,169,240,242,229, 75,188,120,241, 66,159,153,153,105,113,114,114, +226, 4, 6, 6,114, 68, 34,145,168, 87,175, 94,164,208,112,118,235,214,205,125,231,206,157, 3,203, 50, 73,132, 16,207, 26, 53, +106,204, 26, 51,102,140, 67,209, 58,155,158,158,142, 62,125,250, 56,254,254,251,239, 51, 9, 33,187, 41,165, 89,255,176,144, 55, +149,203,107,222,185,123,254,105,216,225,227,222,254, 47, 82,172,205,167,125,177,156, 7, 0,155, 54,126,219,252,240,241, 87,191, +133, 86,206,120,121,240,151,234,119, 92, 92, 30,209,178, 34,130,237, 90,251,118,247,118,119, 25,208,167, 71, 15,186,126,253,202, +250, 19, 39,140, 22, 5, 86,159, 6, 0,168,192,247, 66,123,203, 55, 68,171,123,238,176,126,253,202,250,125,122,244,141, 74, 76, + 76,218,216,190,141,223,254,139, 87,210,142,149, 22, 49,244,114,119,168,224, 40,210,160, 66, 80, 77,132,212,144,224,222,253,167, + 56,116,224, 6,106,212,106, 2,131,193, 0,139,197, 34,233,222,189,187,118,223,190,125,250,216,216, 88,149, 78,167,107, 77, 41, +141, 45,107,251, 83, 82, 30,217, 66,124,154,152, 4, 98,145, 69,165, 16,104,103,204, 57,216,191,126,227, 78, 13, 92,125, 43,240, + 61, 37,182, 99, 31,116,108,180,123,235,230,185, 83,230,204,219,141,134,141, 58, 53,125,252,244, 90, 77, 0, 15,138, 53,175,207, +233,241,218,193,196, 18,255,236, 89,196,139,164,164,148,234,222, 62,198,231,114,106,254,116,198, 79, 29, 91,182,238, 87,167,106, +141, 86,194,199,143,174,144,185,211, 7,238,249,122,233,138,193,133,102,235,194,185, 61,173, 71,140,184, 33, 4, 96, 96,254,170, +224,233, 92, 36,170, 40, 13, 12,228, 37,110,223,174, 11,234,222, 61, 15, 0,140, 38,147, 71, 98, 82,146,204,209,209, 17,148, 82, +152,205,230, 63,228, 16, 23,230, 13,215, 14, 9,241,182, 71, 51,241,171,175,234, 76,159, 62, 29,233,233,233,176, 88, 44,224,243, +249,111, 94,179,161,209,104, 48, 98,196, 8,172, 93,182,172,137, 61,154, 86,171,149,124,252,245,215,179,191,156, 61,187,234,184, +113,227, 56, 69,175,189,110,110,110, 56,120,232,144,112,221,186,117, 21,103,173, 93, 59, 98,136, 72, 20, 95,150,102,118,181,106, +112,203,200, 16, 23,154, 44, 0, 8, 9, 9,193,134, 13, 27, 68,163, 70,141, 18,118,239,222,125,249,189,186,117, 87,175,108,209, +226,153,123,245,234,206, 66,145,168,162,189,251, 19, 0, 84,122,125,237,149,171, 87,187,222,186,117, 11, 25, 25, 25, 72, 79, 79, + 47, 60,151,209,176, 97, 67, 50,108,216, 48, 89, 21,127,255, 70,127,241,225,254,147, 23,249, 27, 69,180,198, 22,115, 77,253, 79, +142, 86,193, 6,145,130, 13, 36, 69,110,142,127, 48, 44,101, 25,173,183, 65, 46,151, 67, 46,151, 99,243,230,205, 16, 8, 4,175, +111,190, 0, 96, 52, 26,237, 49, 45, 97,126,126,126, 80, 40, 20,168, 94,189,250, 31, 34, 89, 2,129, 0, 60, 30, 15, 2,129, 0, + 34,145, 8, 6,131, 1, 1, 1, 1,208,106,181, 97,165,105,234,116,186,122,110,110,110,175,111,176, 6,131,225,181,201, 42, 44, +175,209,104, 68, 94, 94, 30,212,106, 53, 84, 42, 21, 52, 26, 77,184, 61,219,107,179,217,240,240,225,195,231, 33, 33, 33,245,184, + 92, 46,164, 82,169, 68,163,209,188,206, 45,202,205,205,197,207, 63,255,172,249,240,195, 15, 61,142, 30, 61,170,181,227,224,226, +147, 79, 62,129, 72, 36,130, 86,171,197,250,245,235, 49,121,242,100, 8, 4, 2,168, 84, 42,108,216,176, 1, 83,167, 78, 5,143, +199,131,209,104,196,234,213,171, 75,142,108, 60,122,148,120,243,230,205,240,250,245,235,187,254,242,203, 47, 89, 29, 59,118,244, +236,220,185, 51,196, 98, 49,116, 58, 29,204,102, 51,154, 52,105,130,208,208, 80,100,102,102,226,212,169, 83,217,193,193,193, 30, +183,110,221,178,165,167,167,191, 40,235, 38, 94, 36, 98, 8,171,213,138,140,140, 12,200,229,114,100,101,101, 33, 53, 53, 21, 41, + 41, 41,224,241,120, 40,235, 97,222,221,221,189,111,237,218,181,185, 0, 32, 22,139, 81,175, 94, 61,204,158, 61,219,162,211,233, + 6, 0, 56, 85,176,218, 7, 63,253,244,211, 47,215,175, 95,231,249,249,249,225,201,147, 39,240,244,244,228, 57, 56, 56,148,105, +180,124,124,124,182, 29, 59,118,204,173,208, 92, 23,238,103,173, 54,255,112,244,233,211,199,109,199,142, 29,219, 0,116,253,167, +221,212, 92,196, 16,212,171,237,172,216,119, 60,179,214,180, 47,150,243, 66,107,231, 63,188,142, 29, 7,222,247,203, 62,175, 53, +180,167,243, 9, 23,177, 82, 80,150,206, 7, 29,252,215,245,232,209,145, 51,120, 80,183, 56,129,192, 37,104,227,166, 5, 94, 94, +222,163,138,132, 56,157,225,238,225,140,160, 64,225,255,177,119,213,225, 85, 28,111,247,204,238,213,220,184,123, 66,144, 36, 16, +130, 75,139, 83,156, 64,113, 43, 45, 80,138,150, 22, 40, 20, 41, 90, 42, 72,161, 72,113,104,139,187,150,224,148, 32,197, 61, 9, + 16, 8,144,132,184,235,245,221,157,239,143,200, 47,164,145,155, 64,141,111,207,243,220,231,222,221,187,123,118,102,103,118,231, +204, 59,239,188, 67,246, 7, 63,116,154, 49,243, 27,221,142,109, 63, 62,219,181,251, 88, 87,185,244, 76,103, 0,227,202,226,142, +136,204, 60,170,214, 41,235,100,167,221, 39,118,206, 45,209,176,129, 63,156, 28, 51,176,233,215, 61,240,169,222, 20, 58,157, 14, + 86, 86, 86, 42,158,231, 13, 44,203,238, 48, 69,100, 1,192,185,115,153, 66,221,186,153,122, 54, 71,224, 62,253,124,105,159, 78, +221,222, 15,120,239,189,142,194,233, 51,167, 13, 45, 27, 25, 18,186,117,105,152,116,242,204,154, 39, 9,241,207,125,235,214,107, +133,240,176,243, 93, 1, 18, 10,148, 94, 97, 67,159,208,147, 53,107,146,243,123,246,140, 22, 52,194, 29,179,111,191,123,208, 45, + 40,104, 88, 96,155,214,109,132, 51,103,127,215,203,145,250,208,170, 85,139,184, 79, 63,233,118,232,231, 29, 43, 59,159, 60,241, +107,173,172,236,232, 99,191,254, 74, 69,145, 85,188,147,198,113,206, 18,133,130, 73, 57,127,158,171, 55,114,164,174,240,121, 84, +169, 84, 56,114,228, 8,228,114,121,209, 71, 38,147, 21,253,118,118,118, 46,156,124,101, 18, 39, 0, 36, 36, 36, 32, 49, 49, 17, +214,214,214,112,116,116, 68, 98, 98, 34,174, 92,185,130,136,136, 8, 72,165, 82,116,237,218, 21, 76, 25,190,205, 37, 57, 7, 76, +157,218,169, 78,189,122, 94, 37, 69, 22, 0, 24, 12, 6,164,167,167,163, 87,175, 94,204,137, 19, 39, 92, 78,198,196,188, 63, 7, +216, 81, 30,103,163,160,160,180,164,253,251, 75,189,118,227,198,141,201, 31,127,252,161,232,218,165,203,228, 41,223,125,183,230, +167,109,219, 94,242, 28,231, 82,153,188, 51, 12,195, 16, 66,224,233,233,137,244,244,116,228,230,230,143, 96, 91, 88, 88,192,214, +214, 22, 70,163, 17, 2,165,210,191,178,172,203,210, 34,255,145,142,234,198, 66,193, 85, 50, 50,188,164, 96, 92,180,240, 69,209, +174,120,195, 34, 8,130, 73, 34, 75, 42,149, 86,232,115,101,138,149,171, 36, 76, 17, 90,133,105, 85, 42,149, 69, 15, 90,113,129, + 85,152, 78,134, 97,192,178, 44, 76,177,200, 11,130,192,230,228,228,224,192,129, 3,104,219,182,109,209,176, 84, 86, 86, 22, 50, + 51, 51,145,149,149, 5,173, 86,139, 23, 47, 94,224,220,185,115,168, 85,171, 22, 96, 98,240,215,103,207,158,221,242,241,241,105, + 82,216,136,183,111,223,222, 99,203,150, 45,241,221,187,119,119,163,148, 98,246,236,217,169,239,188,243,142, 67,241, 70,190, 34, +176, 44,139, 43, 87,174,160, 86,173, 90,160,148, 66, 38,147,225,241,227,199,112,114,114,130, 32, 8,144, 72, 36, 72, 73, 73,129, +165,101,249, 49, 18, 67, 67, 67, 71,124,252,241,199,241,214,214,214,245,211,210,210, 18, 20, 10, 69,235,139, 23, 47,122, 26, 12, + 6, 88, 89, 89,193,202,202, 10,199,143, 31,135,141,141, 13, 38, 77,154, 20,163,209,104,174,152,155,155, 59,107, 52,154,251,137, +137,137,179, 43, 83,222, 28,199, 33, 47, 47, 15, 25, 25, 25, 72, 79, 79, 71,118,118, 54,180, 90,109,133,105, 44, 13,173, 91,183, +198,177, 99,199,216,133, 11, 23,254,252,236, 89,126,199,176, 70,141, 26,152, 52,105, 18,235,238,238,142, 23, 47, 94,224,214,173, + 91, 48, 24, 12,160,148,150,251,240, 74,165,210,246, 83,166, 76,105,229,229,229, 69, 12, 6, 3, 4, 65,128, 78,167, 67,225,239, +152,152, 24,212,169, 83,135,241,246,246,126,151, 16,210,222,148,137, 21, 34,242,145, 20,115, 24,238, 82, 39,128,177, 2,213, 28, + 70, 90,106,213,150,141, 76, 78, 78,254,110,218,156, 63, 70,254,180,196,224, 28,155, 0,248, 7,246,134,111, 64, 7,140,248,144, +195,194, 31, 14,192,203,219, 31,209,209,209,104,223,190,189, 44, 62, 62,254, 99, 0, 83, 77,229, 62,115,230, 26,127,250,248,137, +254, 3, 6, 13,107,210,177, 99,119,238,212,169,227, 8,189,127, 42,236,227, 65,253,146,169,144, 75,236,108,204,238, 60,126,116, +211,183,126,195,118,208,115,124,107, 96,254, 18, 0,101,190, 84, 34, 35,169,254,235,175,191,102,130, 15,255,250,225,144,161,195, + 27,116,232,208,217,120,234,204,111,184,117,245,204,189,101, 75, 70, 93, 88,184,114,111,251, 78, 93,251,213,117,116,190,114, 60, +208, 79,247,137,167,189,117,164, 88, 83, 74,135, 68,169, 20, 80,240, 94,100, 8, 1,165,244, 21,145, 85, 82,104, 49, 12, 83,161, + 1,160, 56,103,241,182,168,176, 67,189, 97,195, 6, 40, 20, 10,200,229,114, 72,165,210, 10,221, 47,138,115,134,189,120,241,222, +214, 29, 59, 20,165,137,172,180,180, 52,164,165,165, 33, 55, 55, 23,131, 7, 15,150,125,125,243,102,227,138, 56,189, 92, 93,117, +230,102,102, 73,225,225,225,110, 1, 1, 1,175,164, 55, 59, 59, 27,102,102,102,216,177,115,167,172, 71, 80,208,248, 14,199,143, + 47, 3,144, 89,217,188, 19, 66,224,228,228, 4, 91, 91, 91, 16, 66,192,113, 28, 18, 19, 19, 17, 22, 22,134,155, 55,111,130, 37, +132,251, 43,203,184, 52, 45,242, 95,179,106,149, 20, 89,197, 45, 90,164, 44,235,139,169, 66,139,101,217, 42, 91,181,202,130, 41, + 67,135, 42,149,234, 65,124,124,124, 75,119,119,119,112, 28, 87, 36,180, 74, 14, 29, 22, 90, 63,238,222,189, 11,149, 74,245,160, + 34, 78, 74,233,187,205,154, 53,195,193,131, 7,113,254,252,121, 60,127,254, 28,106,181, 26, 58,157, 14, 26,141, 6, 97, 97, 97, + 16, 4, 1,129,129,129, 48, 55, 55,175,144, 19, 0,242,242,242, 18,164, 82,169,191,153,153, 89,209, 62, 87, 87, 87,164,165,165, + 9, 70,163, 17, 91,183,110,205,118,113,113, 49, 55, 51, 51, 51, 89,184, 18, 66,144,156,156, 12, 15, 15,143, 34, 31,173,156,156, + 28, 56, 57, 57, 21, 10, 11,232,116, 58, 88, 90, 90, 86, 56,116, 72, 41,213, 2,152, 82,140,187,233,128, 1, 3,118,237,217,179, +167,250,217,179,103,113,253,250,117, 56, 58, 58,226,251,239,191,127, 30, 21, 21, 53,132, 82,122,243, 47,168,168, 21, 30,147,150, +150,118,224,193,131, 7,239, 54,107,214,172,232, 45,209,190,125,123,210,190,125,123,135,226,166,254,148,148, 20,220,184,113, 3, +103,207,158, 5, 33, 4, 79,158, 60,225, 53, 26,205,174,114,174, 45,243,246,246,222, 50,107,214, 44, 11,142,227,138,234,182,153, +153, 25,148, 74, 37,100, 50, 25, 88,150, 69, 84, 84, 20,122,245,234,101,189,122,245,234, 95, 9, 33, 53, 41,165, 6,188, 37,200, +212,192,112, 55, 52,219, 58,176,142,115,216,198, 13, 11, 91,142, 30,131,194,161, 67, 46,176,142, 83,216,221,208, 36,235, 38, 78, + 48,216,200,203,231, 57,113,246,229,167,122,227,137,158, 39, 78,134, 12,252,114,242, 36,105,141, 26,117,146,207,254,126,219,171, + 3,247, 13,177,119,176, 66, 90,106, 54,162, 98,146,240, 44, 90, 79,107,212,168,147,124,235,198, 3,197, 15,203, 87,248,230,169, +181,123,127,191,144,240, 91, 5,157, 50, 45, 33,164,247,178, 85,138, 11,195, 62,110, 42, 55, 51,115, 67,122,234, 3,120,121, 57, +162, 87,143,250,248,101,219, 21, 88, 91,219,193,217,217, 25, 12,195,152,155,154,247,212,212, 84,114, 96,247,165,145, 31, 13, 31, +245, 78,151,206, 65,220,201, 83,193,146,243,167,143, 94,249,117,227, 87,135, 40,155,167, 34, 52,199,172,154,143,203,253,200,167, +119,135,188,215,113, 48,204,100,150,181,128,218,165, 86,216,162, 9, 6, 20, 49, 12, 3,229, 71,195, 71,183,232,210,229,125,238, +212,169,195, 56,117,124,219,181,121,243,170, 29,127, 30,183, 83,118,245,102,172,178,119,255,113, 25,199, 78, 60,212,247,235,233, + 19,225,102,222, 80, 3, 17,175,118, 36, 37,146, 36, 78,167,243,244,232,210,133, 85, 71, 71, 75, 45,156,157, 57, 0, 48, 26,141, + 21, 10, 45, 0,130, 41,156,166,166, 69,173, 86, 67, 0, 56, 83, 56, 19,147,147,171, 21,116,194,139, 96, 52, 26,139, 68, 86, 90, + 90, 26, 50, 51, 51, 97,110,110,142, 20,157,206,217, 20,206,206,205,155,111,253,122,254,252,169,251, 15, 28,144, 21, 23, 89,133, + 31,169, 84,138,197, 75,150,200, 62,255,242,203,113,227, 37,146,137,149,185,159,133,157,118,150,101, 33,145, 72, 16, 29, 29,141, +152,152, 24, 68, 71, 71, 35, 58, 58, 26,102,102,102,160,101,220,207, 55,104,209, 34,255,213,122, 90, 56,116, 88,124, 8,209,164, +240, 14,149,113,134, 55, 85, 24,240, 60,255, 70,133, 86, 94, 94,222,217,115,231,206, 53,239,221,187,183,228,218,181,107,112,113, +113, 41, 18, 90,133,223,133,195, 81, 42,149, 10,135, 14, 29, 50,228,229,229,157,173,224, 97, 58,119,252,248,241, 38,115,231,206, +149,142, 24, 49, 2,225,225,225, 24, 51,102, 12, 50, 51, 51,145,157,157,141,180,180, 52,168,213,106, 52,111,222, 28, 74,165, 18, +247,239,223, 55,170,213,234,115, 21, 52, 14, 52, 57, 57, 57,215,209,209,209,181,228,127,253,251,247,119, 94,187,118,173,250,209, +163, 71,198,150, 45, 91, 90,153, 42, 56, 10,177,123,247,238, 34, 75, 93, 68, 68, 4,214,174, 93, 91,228,147,117,251,246,109, 44, + 93,186,180, 40,246, 89, 37,173,140, 55,235,214,173,203, 25,141, 70,212,170, 85, 11,238,238,238,208,106,181, 88,177, 98, 5,247, + 87,136, 44, 83,161,213,106,247, 15, 27, 54,108,250,157, 59,119, 92, 37, 18, 73,190, 73,187, 32,127, 6,131, 1, 79,159, 62, 69, + 88, 88, 24, 30, 61,122,132,244,244,244,162,142,192,221,187,119, 51,140, 70,227,222,178,120, 29, 29, 29,103,255,242,203, 47, 46, + 42,149,234,149,250, 92,104, 13, 45,180,146,166,164,164,192,198,198, 6, 29, 58,116,112, 58,119,238,220,108, 0,115,223,134, 6, +141, 16, 66,222,107,203, 54,253,252,211,222,232,219, 67,245,242,224,177,184, 63,150,254, 48,165,192, 25,222, 41,172,111, 15,247, +151,247, 30,219,160,127,159,195, 77,127,191, 64, 98,203,243,165, 43,240,177, 58,210,188,185,221,249,131, 71,143,254, 58,115,218, +228,219, 83,167,140,114, 84,107, 34,149, 53,188,229, 4, 0,158, 69,235,233,253,112, 65,187,116,217,228,219, 11,151,172,102,146, +210, 50,199, 92,191, 94,118,120,131,226,226,165,174, 31,148, 53,106,183,141,247,245,107,229,115,237,202, 14, 88,168, 52,240,175, +221, 20, 93, 58,191,139,243, 33,119,145,152,162, 69, 66, 66, 2,116, 58, 93,185,225, 18, 30,221, 63,244, 33, 37,212,139, 80, 18, + 67, 24,170,252,112,216, 39,173,131,130,222,167,199,142, 29,229, 14, 31,218,113,121,239,246, 85,251, 25,153, 84,162,209, 91,235, + 9,209,102,129, 9, 13,207,205,203,239,208, 72, 21,178,178,205,175, 5,129, 93, 3,234,214,118,249,112,216, 24,235,238,221,122, +209,227,199, 15, 11,123,247,108, 61,191,119,115,189, 29, 2,147, 45, 75,120,169, 86,100,101, 27,179, 40,145,219,228,102, 11,234, +164,103, 53,181,110, 65,253,223, 26,209,254,198, 58,220, 58, 93,108,238,203,151,174,118,109,219, 42,158,206,159,175,114,110,222, + 92, 75, 10,124,136,203, 19, 90, 44,203, 2, 12, 35,152,194,105,106, 90, 52, 26, 13, 4,192, 88, 21, 78,142,227, 94, 17, 89,133, + 66,171,208,174, 97, 10,231,198,121,243,174,121,117,233,146, 30, 18, 18,226,220,174, 93, 59,146,147,147,131,156,156,156, 87,196, +150,155,155, 27, 9, 8, 12, 84,237, 62,127,190,198, 92, 19,239,167, 41,121,103, 24,230, 47, 23, 90,255,101,148,102,201,122,197, +162, 85, 22, 10, 45, 90,166, 8, 45, 19, 45, 90, 70,163,209, 8, 39, 39, 39,164,166,166,150,217,240, 51, 12, 3, 51, 51,179,194, + 49,226,114,103,222,233,116,186, 21, 83,167, 78,157,208,173, 91, 55, 7,127,127,127,164,164,164,192,217,217, 25, 74,165,178,200, +119,172,144,239,246,237,219,248,229,151, 95,178,117, 58,221,138, 10, 56,151, 47, 89,178,228,211,190,125,251,218,185,184,184,192, +214,214, 22,247,239,223,135,173,173, 45,178,179,179,241,248,241, 99, 88, 90, 90, 22,249,237, 28, 61,122, 52, 71,167,211, 45,175, + 64,188,209,139, 23, 47, 26, 44, 45, 45,239,167,164,164,176,233,233,233,146,140,140, 12, 73,118,118,182, 52, 43, 43, 75,122,242, +228, 73, 7,107,107,107,245,239,191,255,158,226,229,229,197, 62,127,254,156, 53, 26,141,140, 9,141, 35, 38, 78,156, 8,153, 76, + 6,157, 78,135, 21, 43, 86, 96,234,212,169, 69, 62, 89, 75,150, 44,193,172, 89,179,138,132,243,166, 77,155, 42, 91,121, 96, 48, + 24, 96, 52, 26, 97, 52, 26, 77, 18,191,175, 3, 83, 4, 59,165, 52,145, 16,210,163, 89,179,102,167,247,237,219,103, 95, 16,147, + 12, 73, 73, 73, 72, 74, 74, 66, 74, 74, 10,114,115,115,193,113, 28,220,221,221,145,148,148,132,195,135, 15,103,229,228,228,116, + 41,111,198, 33,203,178,195, 90,183,110, 45, 41,153,134,194, 94, 94,161,120, 87, 40, 20,136,143,143, 71,251,246,237,229, 33, 33, + 33,195,254,235, 66,171, 80,192,212,241,133,172,115,151,145,178, 58,117, 91,232,239,133, 29,123, 89,219, 39,233,229,208, 94, 86, +193, 0,112, 55, 52,201,250,222, 99, 27,212,169,219,131,118,238, 98,219, 36, 41,113, 99,189, 0, 63, 98, 40,111,185, 30, 0,176, + 86, 41, 6,116,234,216, 60,222,210,220,156, 89,186,108,211,137,117,235,150, 55,222, 31,252,191,240, 14, 75,151,229,135,119,232, +212,177,185,240,232,225,163, 1, 0, 54,155, 42, 94,122,244,232,121,231,151, 45,191,224, 81,216,239,110,211, 39,214,151,167, 39, + 25, 97,102,225,137, 38, 13,157,177,113,203, 3,220,187,119, 47, 81,175,215,183, 47,183, 46, 17,234, 21, 22, 30,234, 87,175,110, +128,203,135,195, 70, 91,245,232,209, 11,199,142, 29,193,246,173,155, 47,246, 27,220,247,231,184,140,108,214, 73,170,146,169,168, + 32,103,101,214, 18,153,194, 44, 89,175,207,159, 3, 33,149, 42,173,128, 1, 66, 57, 35,135, 24, 59,122,168,245,123, 29,123, 33, +248,248, 17,108,223,186,241,194,156,186,253, 55,251, 52,170, 67,154, 55,254, 97,156, 79,117, 31,239,188,220,164,108,134,200, 13, + 90,173, 96,249,195,214,168, 31,159,205, 26,246,236, 78,232,128,101,226,172,195, 87,112,127,123,247,238,205, 62,143,140,148, 57, +182,106,101, 22,127,254,188,170, 96, 37,146,114,133,150, 68, 34, 1, 45,123,168,235, 21, 78,178,109, 27, 3,160,220, 73, 88, 50, +153, 12,106,181, 26, 70,192, 96, 10,167,235,169, 83, 47, 35, 35, 35,125,237,236,236, 94, 17, 89,233,233,233, 69,191,181, 90, 45, +212,106, 53,204,204,204,194, 76,225, 76,186,120, 81,187,104,226,196,185, 67, 6, 15, 94,117,246,220, 57,165,189,189, 61,178,178, +178, 94, 17, 90,122,189, 30,239,117,232, 32, 91,114,231,206,135, 0,230,153,114, 63,157,219,183,175,208, 31,152,101, 89, 8,127, +241,208,225, 91,208, 89, 29, 93,154,240, 98, 42, 26,194, 49,117,214, 97,105, 13, 36, 33,164, 99,137, 93,179,154, 52,105,162,141, +136,136,128,151,151, 87,145, 88, 41,126, 77, 43, 43, 43,216,216,216,224,246,237,219,248,238,187,239, 52, 0,102,149,199, 73, 41, +205, 81,171,213,131, 58,117,234,164,145, 72, 36,168, 93,187,118, 81,252, 44, 65, 16, 32,151,203, 97,110,110,142, 59,119,238,160, +103,207,158,106,181, 90, 61,168,100, 12,173, 82, 56,179,212,106,245, 7,157, 59,119, 86,135,135,135,163,117,235,214,184,119,239, + 30,114,115,115,145,155,155,139, 23, 47, 94, 32, 32, 32, 0,106,181, 26,107,215,174,213,168,213,234, 15, 40,165, 89,229,113,230, +228,228,244,156, 58,117, 42,187,107,215, 46, 31,119,119,247,186, 77,155, 54,245,239,208,161, 67,205, 62,125,250,120,119,239,222, +221,213,215,215, 87,219,165, 75, 23,199,110,221,186, 57,170,213,106,233, 31,127,252,145, 96, 52, 26,187, 85,112, 63,139,196, 73, + 68, 68, 68,209, 80,161, 68, 34, 65,106,106,106, 81,228,254,194,151, 82,105, 66,184, 44,206,226, 98,187, 80, 96, 21, 10,174,138, +218,128, 50, 56, 43,108, 56,228,114,121,161,197,147, 86,196, 73, 41,189,251,240,225,195, 78,109,219,182,189, 59,114,228,200,156, +196,196, 68, 88, 90, 90,162, 70,141, 26,240,243,243,131,131,131, 3, 12, 6, 3, 14, 29, 58,148,119,248,240,225, 7, 89, 89, 89, +237, 75,198,208, 42,201,201, 48,204,139,210, 94,178,133,214,172, 66,161,165, 84, 42,225,238,238, 94,120,111, 95, 84,230,126, 86, +241,225,253,107, 57, 11, 4, 76,135,247,186, 84,239, 30,212,219,250,208,145, 43,242, 85,107, 14, 63,104,210, 17,155,236,171,101, + 31,181,175,150,125,180, 73, 71,108, 90,181,230,240,131, 67, 71,174,200,187, 7,245,182,238,240, 94,151,234,225, 97,143,252, 95, + 89,247,176,148,116, 42,149,202, 22,173, 91, 53,201, 8,185,124, 65, 88,184,100, 53,243, 94,251,126,119, 54,255,124,232,208,230, +159, 15, 29,122,175,125,191, 59, 11,151,172,102, 66, 46, 95, 16, 90,183,106,146,161, 84, 42, 91,152,146,247,177,163,135, 90, 7, +117,239,133, 99,199, 14,113,251,119,175, 93,178,231,192,147,182,159, 76,184,152, 20, 17,113,143, 38,199,158,130,148,137,198,195, +135, 15,179,244,122,125,251,210, 28,225, 75,227, 28, 51,106,104,113,145,117,201,222,165,245,166,135, 15,193,159, 57,243,155,241, +220,185, 59,154, 75,119,147,179,110,133,167,166,199,167,164, 63,207,206, 78,211, 11, 2, 15,158,231,217,175,191,206,119,216, 45, +171,140, 90,182,108,135,223,207,238,196,214, 45, 27,178, 4, 1,218,254,251,246,241, 3, 6,204,167,222,213,170,121,239,216,189, +147,244,120,191,183, 53, 5,132,158,125,123,217,236,218,179,139, 84,175, 85,189, 90,141, 26,249, 33,109,254,147,117,233, 47,224, +156, 71,105, 70,118,116,244,133,219,171, 87,235,156, 7, 13,178,147, 59, 59, 91,129,231, 73,225,251,189,172,143, 68, 34,121,197, + 2, 83, 30,167,187,131, 67,220,209,163, 71,225,231,231, 7,119,119,119, 20,247,145, 45, 12,200,109,111,111,143, 3, 7, 14,128, + 2,183, 76,225,108,228,227,115,123,241,162, 69,122, 65, 16,144,145,145,241, 39,107, 86, 70, 70, 6, 4, 65,192,241,224, 96,125, +118,110,238, 86, 83,243,222,158,101,115,135,180,105,179, 48, 40, 40,200, 16, 25, 25, 9, 65, 16, 80,220,178,149,156,156, 12, 11, + 11, 11,104,117, 58, 79, 66,136,202, 20,206,228,147, 39,205, 81,193,123,189,164, 69,235,175, 40,247,255,186,200, 42,190,160,116, +113,209, 85,174, 69,139,227, 56,120,122,122,190,178,164, 11,195, 48,175,124, 42, 51,227,144, 82,186,141, 16,114,170, 75,151, 46, +115,223,121,231,157,177,115,231,206,101,253,253,253,145,149,149, 5, 91, 91, 91, 56, 57, 57,225,241,227,199, 56,122,244, 40,159, +154,154,186, 30,192, 2, 83,166,208, 83, 74,207, 19, 66,122,212,175, 95,127,207,140, 25, 51,172, 59,119,238, 44,245,244,244, 4, +165, 20,119,238,220,193,193,131, 7, 13,155, 55,111,206, 46, 16, 89,231, 77, 76,235,105, 66, 72,191,110,221,186,237, 24, 54,108, +152, 37,207,243,210, 23, 47, 94, 64,167,211,193,104, 52, 34, 38, 38,198,112,236,216,177, 92,181, 90, 61,148, 82,122,218, 4,190, +219,132,144,128, 51,103,206, 12,251,227,143, 63,190, 27, 57,114,164,125,135, 14, 29,100, 28,199,225,242,229,203, 41,141, 26, 53, +114, 74, 78, 78, 54, 28, 56,112, 32, 77,171,213,206,226,121,222,164, 37,120, 8, 33,200,206,206,134,131,131, 3,116, 58, 29, 4, + 65,128, 94,175,135,133,133, 69,209,178, 73,148, 82, 84,198,185,190, 68, 29, 96, 13, 6, 3, 6, 15, 30, 12, 65, 16,176, 98,197, + 10,112, 28, 87,105, 50,107,107,235, 91,119,239,222,237,209,176, 97,195, 34,241, 82, 88,135, 20, 10, 5, 28, 28, 28, 96,111,111, +143, 99,199,142, 65, 42,149,222, 50,177,140,238, 1,104, 68, 8,105,241,224,193,131,143, 0, 52, 52, 24, 12,238, 60,207, 19,134, + 97, 18, 40,165,247,179,179,179,127, 54,117, 9,158,228,228,228,239,134, 15, 31,222,104,231,206,157, 22, 18,201,255, 30, 13,137, + 68, 2,133, 66,129,194,224,152,148, 82,232,245,122,204,158, 61, 59, 59, 47, 47,239,187,183,229, 69,209,164,105,115,108, 92,187, +210,226,220,239,167, 82, 30, 62,193,193,226, 33, 28,108,228,192,239, 23, 72,108, 82,226,198,122,241, 47, 95, 90, 52,105,218,220, + 36, 78,163,222,144,246,193,208, 47,188, 10,150,224,153,253,226, 69,212,134, 29,219,126,124, 6, 0, 63, 44, 95,225,155,148,150, + 57,230,209,195, 71, 3, 54,108,216,221,194,168, 55,164,153,194,249, 63,241,178, 35, 11, 20, 90, 74,233,117, 66,136, 79,207, 65, + 39,103,213,170,110,245,126,114,154, 38, 46, 55, 87,253, 25,165,244,153,169,121,111,213,178, 45,126, 63,189, 11,219,183,238,200, +166, 2,171,117,112,112,160, 0,240,240,161, 3,125,248, 48,147,254,207,175,216, 38, 79, 74,239, 45,248,226,179, 14, 95,100,101, +167, 47, 95,190,166,252,192,181,245, 27,188,131,250, 13,222,193,132,207,190,178, 14,168, 91,219, 11, 0,246,237,163,124,160, 47, +249,109,238,156,249,239, 47, 88, 48, 31,217, 57, 58, 44, 88,144,191, 92,207,227,208,240,224,200, 72,170, 23,155,173, 87, 49,151, +227,174,227,139, 47,124,213,233,233,142,173,166, 79,119,144,124,249, 37, 83,158, 51,124,241,231,215, 20,206,155,247,239, 7,143, +249,228,147,184,121,115,231,118, 89,191, 97,131, 89,189,122,245,144,152,152,136,218,181,107,195,221,221, 29,103,206,156,193,129, +189,123,243, 50,115,114,102, 1, 88,103, 10,231,182,227,199, 31,251,215,173,155,186, 97,195, 6,183,160,160, 32,146,151,151,135, +172,172, 44,100,101,101, 65,167,211,161, 32, 32, 52,141,120,242,228,161,209,104, 92,111,106,222,249,148, 20,229,130,230,205, 99, +101,130,176,184, 95,223,190, 83, 23,124,243,141,162,122,245,234, 68,167,211, 21, 89,181, 12, 6, 3, 44, 44, 44, 12,122,189,222, + 30,128,218, 20, 78,197,230,205, 92, 74, 74, 10, 28, 29, 29,139,194, 53, 21,143, 75,152,147,147, 3, 74,169, 24, 76,183, 42, 34, +172,172,182,220,206,206,238,150, 68, 34,241, 40,110,221, 42,109,237,188,226,251,140, 70, 99,108, 74, 74, 74,147,226,138,151, 82, +122,182, 12,129, 80, 3,192,247,239,189,247, 94,191, 41, 83,166,144,144,144, 16, 28, 62,124,152, 62,123,246,108, 63,128, 89,101, +189, 36, 43,224,180, 84, 40, 20,147,204,205,205, 59, 22,134,112, 80,169, 84, 15,242,242,242,206,234,116,186, 21,101, 69,131,175, +128,211, 74,161, 80, 76, 52, 55, 55,239,148,147,147,211, 16, 0, 44, 45, 45,239,230,229,229,157,209,233,116, 43,203, 90,168,186, + 2, 78, 51,107,107,235,239, 28, 28, 28, 62,248,242,203, 47,237, 47, 94,188,152,240,251,239,191,203, 50, 51, 51,119,234,245,250, + 50, 23,149, 46,141,211,222,222,254, 22,203,178, 30,127, 69, 25, 1, 64,131, 6, 13,142,245,236,217, 51,104,232,208,161, 48, 26, +141, 88,183,110, 29,206,156, 57, 19,252,228,201,147, 30,229,245, 70, 75,114, 18, 66, 28, 60, 60, 60, 66,198,142, 29,235, 61,120, +240, 96,149,173,173, 45, 36, 18, 9,242,242,242,240,244,233, 83,220,185,115,135, 30, 57,114, 36,247,246,237,219,177,106,181,186, + 29,165, 52,213,212,251,249, 58,189,230,146,156, 82,169,180,173,167,167,231,238,121,243,230, 89,118,234,212,201,204,222,222, 30, + 44,203,194,104, 52, 34, 33, 33, 1,161,161,161, 56,117,234, 84,222,254,253,251,243,210,210,210, 6, 83, 74, 47,252, 19,233,124, +147,156, 1,126,100, 78,137,133,162,203,140,246, 94,222,177,166,164,179, 67, 59,183, 94, 3,250,117,235, 10, 0,251, 14,156, 56, +121, 46, 36,254, 72, 85,211, 89, 81, 90, 77,225,172,227,203,206, 11, 11, 15,125, 37,160,101,221,128,192,136, 58,245,250,126,107, + 10, 87, 97,100,248,146,121, 47, 22,109,191,184, 77,247,149, 97,214,194,133,167,191,154, 53, 19,223,127,183, 16, 71,246, 29, 10, + 14,143,164,199,254,203,117,233,175,228, 44, 92, 4, 89,229,234,218,102,133, 32,204,188, 23, 26,106, 81,188,195, 86,104,121, 46, +222,169,116,115,115, 75,142,143,143,119, 54,133,179,199, 79, 63, 25,212,230,230,138,153,139, 23,183,205,213,106,219, 46, 88,176, + 64,114,243,230, 77,172, 93,189,154,211,198,198,238, 72, 1, 38,150, 54, 26, 82, 30,167,247,196,137,202,105,107,215,142,168, 81, +171,150,211, 71, 31,125, 36,149, 74,165,200,203,203,195,203,151, 47,113,250,212, 41,125,248,195,135,225,217,217,217,239, 83, 74, +227, 77,229,236,241,211, 79, 6,155, 26, 53,160,114,116,164,231,206,159,183, 30, 51,105,210,216,106, 62, 62,214, 93,186,118,149, + 90, 89, 89, 33, 35, 35, 3, 47, 94,188,192,161, 67,135,146,115,115,115,221, 40,165,188, 41,156, 59,254,248,163,254,241, 11, 23, +250,127,251,237,183,242,192,192, 64, 88, 91, 91, 35, 39, 39, 7,161,161,161,184,112,225,130,110,253,250,245, 89, 89, 89, 89, 99, + 57,142, 59,250, 87,149,251,219, 58,116, 72,254, 74, 87, 0, 83, 10,130, 16,210, 4,192,156,130,205,111, 76, 88, 51,240,173,121, +249, 16, 66,188,236,236,236, 54,106,181, 90,170,209,104,198, 80, 74, 99,254,109,233, 36,132, 72,154, 52,105,178, 54, 57, 57,185, + 5,165, 20,214,214,214, 87,194,194,194,198, 83, 74,185,202,114, 18, 66, 88, 0, 45, 44, 44, 44,154, 91, 90, 90,182,213,233,116, +117, 10,134,223, 30,230,229,229, 93, 48, 24, 12,215, 1, 92,161,148,242,255,100,222, 11,210,217,201,205,205,237, 19, 65, 16,106, + 17, 66,108,120,158,135,209,104,204, 20, 4,225,105, 86, 86,214,102, 0,103,254,233,116,190, 41,206,186,181, 72, 31,202,160, 78, + 89,130,224, 21, 97, 83, 66, 64, 16, 1, 15,195,158,210, 67,149,168,243, 76,183,142,158,107,128,252,153,137, 21, 45,101,244,138, +208, 50, 65,188, 84, 90,100,214,146, 12,167,132,122,189,218,251, 36, 49,181,235,247,217,254, 58, 66,203, 84,212,245, 39,109, 65, +209, 66,160,184,254,240, 9,253,253,109,125,215,189, 73,206,133,132,216,173,182,181,189,194, 72, 36, 46, 0,152, 2,235,139, 32, + 16,194, 83, 66,184,226,195, 91,197, 59,150, 21,113, 26,128,122, 82,133,194,147,231, 56,231, 68,192,226, 56,207, 55,214, 82,154, +235, 1,204,185, 67,233,227,170,164,211, 0,212, 99, 21, 10,175,227,148,246, 74, 49, 55,175,159,172,209, 56, 2,160, 22,230,230, + 15,179,243,242,182,106,181,218, 53,165, 44,222, 94, 33,167, 76,161,240,224, 57,206, 25, 0, 24,137, 36,121,143, 78,231, 25,107, +101,245,145, 86,167,243,182,176,176, 48,234,245,250,108,173, 86, 59,212,104, 52,158,171, 76,222,159,114, 92,192, 31, 12,211,218, + 96,110,110,111, 32,196, 92,207,113, 6,189,193,240, 82,171,213, 62, 0,240, 35,165, 52,242,175, 44,247,183, 22,133,179,211,254, +138, 15,128,142, 34,167,200, 41,114,138,156, 34,167,200, 41,114,254,245,156, 0, 84, 0,188, 0,176,255,197,188,191, 77, 31, 0, +163, 11,127, 75, 68,169, 41, 66,132, 8, 17, 34, 68,188, 21,134, 19, 53, 74,241,201, 18,241,207,130, 0,232, 88, 70,129,153,108, + 18,172,202,236, 3, 19,134, 24, 68, 78,145, 83,228, 20, 57, 69, 78,145, 83,228,124,203, 56, 43,226,254, 47, 14, 73,150,183,214, +161, 56,116, 40,114,138,156, 34,167,200, 41,114,138,156, 34,167, 56,116,248, 23,125, 24,136, 40, 75,157, 58, 19, 66,156,223,244, +177, 34,222,238,186, 80,202,185,238,132, 16,247, 74, 30,239, 42,222,117, 17, 34, 68,136,120, 59,240,183, 11, 45, 83, 27,173,215, +108,220, 94, 75,248, 16, 66, 22, 18,130,248,252, 15, 89,248,166,142, 53,225,186,110,142,142,142,159,215,173, 91,119,135,139,139, +203, 4, 66,136, 83, 37,207,247, 53, 55, 55, 95,105, 97, 97, 17, 98, 97, 97, 17, 98,110,110,190,146, 16,226,251,134,202,141, 16, + 66,198, 40,149,202,243,110,110,110,113, 10,133,226, 60, 33,100, 44,169,226, 2,151,132, 16,127, 66,200, 2, 66,200, 55,132,144, +250,149, 57,215, 57,176,247, 94,167,192,222,247,157, 2,123,135, 58,212,123,223,215, 41,176,119,168, 83, 96,239,251,206,129,189, +247,254, 5,245,181,202,229, 91,112,110, 76,254,167,226,115, 9, 33, 63, 18,224, 37, 33,136,125,221,186, 36, 66,132, 8, 17, 34, +254, 29,168,148, 51,188,187,187,123, 63, 74,233, 24, 0,148, 16,178, 49, 46, 46,238, 64, 21, 26,158,105, 5,191,151, 80, 74,103, +190,206,113, 38,156,187,156, 82, 58,181,242, 34, 13,211, 4,129, 50, 0,192, 48,100,186,179,179,179,138,101,217, 63, 57, 24,242, + 60,175, 34, 4, 19, 4,129,146,130, 99,167, 17, 66, 86, 82, 74,147,170, 34, 14, 63,252,240,195,229, 43, 87,174, 84,170, 84, 42, + 68, 71, 71,119, 30, 59,118,108, 75, 66,200, 23,148,210,132,138,206, 55, 51, 51, 27,210,172,121,139, 47, 22,255,176,204,194,217, +201,201,156,227, 5,195,139,232, 40,213,236, 25, 83,155,155,153,153,173, 44,111, 49,229,146,130, 10,192,104,137, 68, 50, 80,169, + 84,214,212,106,181,145, 28,199,237,103, 89,182,203,119,223,125, 23,216,189,123,119,101,118,118,182,156,227,184, 90,219,183,111, +255,226,151, 95,126,233, 70, 8,233, 85,222, 52,253, 66,139, 14,165, 52,174,216,238,254,209,209,209, 77,100, 50, 25,169, 81,163, + 6, 3,224,126, 5,199, 23,129, 2,190, 97,151,247,213, 3,128,186,173, 6, 68,132, 93,222,135,130,223,127, 65,167,224,213,186, +160, 84, 42,215,107,181,218,152,194,255, 11,210,153,100,202,185,132,144, 85, 5,203, 7, 53, 1,240, 81,193,161,219, 40,165,183, + 8, 33, 46, 74,133, 98,146, 70,171, 37, 0,200,235,212, 37, 17, 34, 68,136, 16,241,183, 27,145, 26, 81, 74,239, 20,140, 72, 4, + 1, 8, 46,108,187, 43, 59,235,240,211, 39, 79,158, 88, 0,128,159,159,223,120, 0, 7, 42,145,136, 63, 53, 60, 29, 58,116,104, +100,102,102,246, 74, 20,100,141, 70, 35, 39, 4, 29,170, 34, 94, 10,175,161,215,235, 24,169, 84, 14,134, 33, 95,212,175, 95,191, + 90,106,106,234, 69,134, 97,118,196,198,198,102, 84,225,230, 97,211,166, 77,126,174,174,174,127,138,214,156,144,144, 32,239,213, +235,253, 74,241,141, 32, 68,161, 83, 40,154,203, 8,113,229, 57,206, 6, 0, 36, 18, 73,134,191,181,117,147,239,191,253, 86, 69, + 8, 17,210,210,210,160,209,104, 48,121,242,100,179,240,240,240,222, 0,214, 84,144, 70,191,119,222,109, 57,249,212,169,147,117, +178,211, 51,180,155,150,111,184,173,145,200,212, 62, 1,181,101,107, 55,110,181, 29, 61, 98,232,103,132,144,187,165, 45, 71, 82, +130,135, 1,112,104,210,164, 73,117,123,244,232, 33,207,201,201, 81,106, 52,154,106, 59,118,236,152,221,164, 73, 19,139,134, 13, + 27,202,119,239,222, 77,178,178,178, 64, 41, 85,213,174, 93,155, 14, 28, 56, 80,187,103,207,158, 9, 0, 86, 85, 36,124, 89,150, + 93,225,239,239, 63,175, 32,207,178, 98,199, 72, 3, 2, 2,204, 1,224,241,227,199, 95, 19,130, 73,229,137,108, 2, 60,169,219, +106, 0, 64, 80, 43,236,242, 62,101,221,214, 3,180,160,120, 74,128, 39, 5, 29,130, 5, 64,177,184, 80,175,226, 97, 92, 92, 92, +149,214, 38, 12, 10,234, 65, 8, 33,251,221,220,220, 14, 36, 39, 39,251, 16,130, 81,166,118, 6, 8, 33,196,222,222,126, 56,128, +133, 0, 62,121,248,240, 97, 35, 0,168, 83,167,142, 12,192, 45, 43, 43,171,150, 6,189,158,136,175, 43, 17, 34, 68,136,248, 79, +162, 17,128, 59, 0,130,138, 45,193,179,177, 42, 66, 75, 14, 0, 23, 47, 94, 4, 0, 69, 85, 68, 95,113, 1, 51,113,226, 68,184, +186,186,150, 20, 47, 8, 9, 57,255, 58,153,125,229, 26,223,124,243,141, 69,102,102,102,199,159,127,254,185,141,187,187,251,210, +184,184,184,107,229,157, 76, 41, 77, 34,132, 44, 41,176, 64, 64,161, 80, 70,140, 29, 59,246, 78,193,223,213,126,251,237, 55, 85, +207,158, 61,213, 0,162, 0, 64,161, 80,186,179, 44,227,151,239,244,134, 37,229, 9,194, 1,132,212,144,203,229,239,141,249,233, + 39,174,113,207,158, 18,115, 71, 71, 2, 0, 81,143, 30,217, 47,249,225,135,150, 25,207,158,201, 53,246,246,105,105,121,121,154, +136,136, 8, 40, 20, 10,194,178,108,227,138, 50,108,110,110,254,249,183,223, 47, 54,207, 78,207,212,104,179,115,244, 44,103,212, + 89,154,169,248,164,196,228, 52, 11, 51,115,245,244, 57,243,229,159,142, 26,246, 57,128,241, 21, 80, 77,248,226,139, 47,234, 52, +107,214,204,125,239,222,189, 36, 43, 43, 11, 18,137,196,162, 97,195,134,104,210,164, 9,255,251,239,191, 19, 31, 31, 31, 4, 6, + 6,226,242,229,203,184,114,229, 10,105,212,168,145,234,224,193,131, 31,150, 38,180, 74,138,107,150,101, 38,215,174, 93,187,161, +185,185,185,222,207,207, 15,163, 70,141, 2,165, 20, 29, 59,118, 12,180,176,176, 56,144,151,151, 39,127,252,248, 81,155,138, 68, +118, 82,232,225,129, 0,224, 20,216,251, 62,128,122,160,120,154, 28,122,184,126,177, 67,234, 60,126,252,248,157,140,140,140, 34, +103,196,194, 5,204,219,180,105, 99,114, 69, 42,172, 11, 61,123,246,152, 14, 16,210,177, 99,199,204, 9, 19, 38, 48,143, 30, 61, +250,160, 79,159,222,129, 79,158, 60, 69, 89,233, 44, 81,143,200,240,225, 35,146, 44, 44, 44,250,186,185,185, 61, 6, 32,145,201, +138,116, 38,235,236,236,236, 88,191,126,253,113,118,118,118,201, 44,195, 56, 81, 80, 90, 81, 93, 18, 33, 66,132, 8, 17,255, 42, + 4, 23,136,171,224,146,127, 72, 0, 32, 56, 56,152,254,175,215, 30, 68,202,107,120,238,221,187,231,169, 86,171, 97, 74, 35, 80, +124,138, 38,165, 52,137,101,217,181, 12, 67,198, 19, 66, 16, 24, 88,239,249,138, 21, 43, 74, 91,211, 75, 31, 24, 88,239, 57,203, + 50,213, 41,165, 32,132, 89, 39, 8,124, 82,105,156,101, 53,140,114,185, 98, 26, 0,184,184,184, 62, 59,113,226,132,190,127,255, +254,248,225,135, 31,100, 51,102,204,152,234,237,237, 61, 33, 58, 58, 58,177,172,116, 22,108,207,116,118,118, 86,109,218,180,201, +111,236,216,177,119,226,227,227,103, 2,128,155,155,219, 66, 0, 1, 0,162,138,237,195,250,245,123,226, 70,141, 26, 21,145,148, +148, 52,179, 44,206,126,132,212,244,174, 93,251,189, 5, 23, 47, 82, 70,167, 35,169,151, 46,101,167, 36, 37, 25, 35, 83, 82, 84, + 91,110,221,234, 49,123,225, 66,169,167,151, 23, 66,142, 30,117, 72, 85,171, 83,178,116, 58,109, 82, 82, 18,229, 56,238,138, 9, +121,175,235,228,232,164,218,240,227,186,155,150, 82, 86,112,242,112, 39, 82, 59, 59, 9,163,178,146,179, 18, 70, 87,189,154,175, + 28, 64,221,138,202, 72, 38,147,125,216,185,115,103,213,158, 61,123, 72, 96, 96, 32,108,108,108,112,233,210, 37,220,189,123, 23, + 25, 25, 25,140,209,104, 68,211,166, 77,177,120,241, 98,120,121,121, 33, 51, 51, 19, 49, 49, 49, 14,114,185,220,177,156,251,249, + 74,125,154, 54,109, 26, 92, 93, 93,193,113, 28,210,211,211,193,113, 28, 44, 44, 44, 0, 0,177,177,177, 56,122,244, 72,133,117, +201, 68,145,132,119,223,125, 55,135, 16,242,176,164, 69,171, 50,156,238,238,238,187, 83, 82, 82,187,189,247,222,123,200,200,200, + 48,206,159, 63, 31,245,235,215,135,159,159,159, 41,117,126,166, 66,161,248,217,219,219,251,199,137, 19, 39,186,218,217,217, 65, +167,211,205, 78, 76, 76,196,184,113,227, 0, 0,221,187,119,175, 47,149, 74, 79,140, 28, 57, 18, 62, 62, 62,113,233,233,233, 49, +183,111,223, 30,149,151,151, 23, 90,213,188,155,120,127, 68, 78,145, 83,228, 20, 57,255, 85,156,166,106,145,127, 35, 10,134, 9, + 55, 22,219,222,248,138,208, 10, 10, 10, 34,193,193,193,212,132,140,165,121,120,120,120,154,153,153, 1, 64, 90,101, 19,194,243, +252, 4, 7, 7,135,228,153, 51,103,182,242,243,243,211, 79,152, 48, 33,244,197,139, 23,179,138, 31,227,227,227,243,221,234,213, +171, 17, 17, 17, 17,181,112,225,194,203,169,169,169,223, 84, 50,179, 51, 8, 33, 43, 10,172, 99,169, 71,143, 30,173,127,241,226, +197,241,203,151, 47,119,252,244,211, 79,101,159,127,254,249, 80, 0, 63, 84,196,195,178,172,186,180,225,194,210,224,234,234,170, + 47,205,135,171, 16, 61, 9, 49,179,146,203,219, 47,184,120,145,234,163,162,212,191, 44, 91,102,185,225,198,141,121, 70, 74,157, +157,156,156,208,186,101,203, 92, 37,203,166, 38, 39, 38, 10, 78, 53,107,178, 47, 78,156,112,208,200,229,241,123,246,236,201, 74, + 75, 75, 59, 92,161, 9,143,144,108,129, 82,189,133,135,151,177,127,239, 78,129, 55,175,223,125,100,233,228,192, 52,106, 24, 88, +255, 81, 68,212,109, 8,130,129, 16,146, 93, 17,143,181,181,181, 95, 90, 90, 26,178,179,179,225,232,232,136, 21, 43, 86,192,197, +197, 5,106,181, 26, 97, 97, 97,212,195,195,131, 92,188,120, 17, 30, 30, 30, 72, 73, 73,129, 94,175, 71, 78, 78, 78,178, 78,167, +211,148, 37,124, 37, 18,201,175, 12, 67, 70, 16, 66, 80,189,122,141,232, 53,107,214,232, 5, 65, 64,157, 58,117,208,167, 79, 31, + 28, 60,120, 16, 97, 97, 97,133,150, 39,189,183,119,181,104,134, 33,222, 5, 90,169,202, 86,157,194,165,125,226,226,226,250, 86, +201, 44, 74, 8,227,230,230, 54,212,215,215,119,252,144, 33, 67,140,114,185, 28,121,121,121,133,247,194,216,173, 91,247,204,158, + 61,123, 88, 7, 7, 7,151,155, 78,157, 78,247,204,217,217,249,147, 47,190,248, 98,199,250,245,235,109,103,205,154, 5, 65, 16, + 64, 41, 5,199,113, 69,139,126, 11,130,128, 67,135, 14, 33, 50, 50,242,187,226, 34, 75,132, 8, 17, 34,254,191,160, 18, 90,228, + 95,135, 98,190, 89, 40, 41,182,254,246,200,240, 44,203,110, 56,125,250,116,195, 54,109,218, 72, 58,116,232, 16,232,225,225, 17, + 24, 27, 27, 27, 10, 0, 30, 30, 30,129, 93,187,118, 13,116,114,114,194,202,149, 43,213, 44,203,110,168,162,178, 44,222,232,221, +113,117,117, 93,122,240,224,193, 37, 99,198,140,129,139,139, 75,192,223,157,103, 43,133,162,209,200, 21, 43, 56,169,209,200,252, +180,116,169,213,178,243,231,151,236,221,183, 79,242,238,187,239, 18, 74, 41, 30,220,191,111,182,120,213, 42,213,224,222,189,163, + 30, 63,123,198, 29, 57,117,202,152, 20, 23,151, 30,151,146, 50,151, 82,154, 94, 17,191,209,104,188,250,228,201, 19,183,214,109, +223,117,191,112, 35,244,110,255,222,221,223,147, 74, 24,242, 52, 42,246,150,171,139,131,117,200,249,179, 26,163,209,120,181, 34, +158,188,188,188, 23, 28,199,217, 81, 74, 29, 67, 66, 66,224,232,232,136,140,140, 12, 24,141, 70,232,245,122,189, 90,173, 86,166, +165,165, 65,171,213, 66,167,211,193,202,202, 10, 15, 30, 60, 72,226, 56,238,247,178, 56, 57,142, 27,169, 84, 42,191,145, 74,165, +114,153, 76, 22,127,235,214, 45,100,103,103, 87,179,177,177,249,129,227, 56,196,199,199,227,226,197,139, 95, 90, 89, 89, 69, 1, +128, 82,169,132, 92,174,176,215,233,116, 92, 89,206,240,166, 90,180,170, 10, 87, 87, 87,175,234,213,171, 47,152, 62,125, 90,157, + 6, 13, 26, 34, 37, 37, 5,130, 32,192,220,220, 28,106,181, 26, 86, 86, 86,104,209,162,197,139, 5, 11, 22, 36, 80,138,209, 21, +137,193,164,164,164, 20,119,119,247, 9, 99,198,140,249,198,207,207,175, 58,165, 20,190,190,190,232,220,185, 51, 78,156, 56,129, +136,136, 8,228,229,229,241,215,174, 93,219, 21, 31, 31,255,155,248,186, 21, 33, 66,132,136,255,158, 78, 44,244,205, 42,110,205, +250, 71,132, 86, 82, 82, 82,138,135,135,199,201,219,183,111,247, 24, 56,112, 32, 66, 66, 66,134, 3,248, 2, 0, 20, 10,197,240, +129, 3, 7,226,246,237,219,120,244,232,209,201,164,164,164,148, 55,113, 77,185, 92,174,213,235,243,141, 83, 74,165, 82, 89,201, +211,171, 21, 12, 25, 2, 64,181,114,246,149, 9, 70, 34,113,173,215,181,171, 36,227,238,221,236, 77,215,175,127,179, 99,199, 14, + 73,171, 86,173,136,209, 96, 0, 47, 8,168, 81,163, 6,233,208,177,163,249,175, 59,118,216,241,121,121, 23,191,157, 62,253,210, +198,145, 35,115, 35, 40,141, 50, 37,129, 58,157,110,213,248,113,159,116, 60, 31,114,201, 61,160,118, 77,187,147,167,207,223,177, +183,183, 86,249,213,170,101,158,150,145,206,207,154,241,165, 68,167,211,253, 84, 17,143, 70,163, 57,116,246,236,217,222,158,158, +158,142,161,161,161,208,235,245,224,121, 30, 29, 58,116, 0,165, 84, 1, 64,144, 72, 36,120,244,232, 17, 12, 6, 67,242,147, 39, + 79,226,159, 62,125,170, 0,176,168, 60, 94,173, 86, 27, 93,124,219,211,211,179, 83, 80, 80, 16, 56,142, 67,215,174, 93,113,228, +200,145, 78,225,225,225,203,138,107,190,215, 45,243, 2, 11, 89, 29,119,119,247,131, 5,187, 76,114,130,247,240,240, 8,244,245, +245, 93,191,104,209, 34,153,135,135, 7, 40,165,176,181,181,129, 90,173, 70,106,106, 26, 2, 2, 2,224,233,233,137, 69,139, 22, + 1,192, 46, 83, 45,110,113,113,113, 79, 1, 12, 12, 8, 8,144,101,102,102, 54,233,212,169,211,202,142, 29, 59,226,206,157, 59, +184,116,233,210, 96,133, 66,145,108, 48, 24, 56, 87, 87,215,209,132, 16, 43,131,193,176, 51, 53, 53, 53, 65,124,119,137, 16, 33, + 66,196,127, 2,133, 62, 90, 69, 81,226, 43,109,209, 10, 8, 8, 48,207,202,202,250,168, 90,181,106,114, 0, 48, 51, 51, 11,168, + 89,179,230,212,200,200,200,156,202,166, 70,173, 86,239,221,177, 99, 71,231, 31,127,252, 81,214,189,123,247,154, 30, 30, 30,205, + 0,160,111,223,190, 53, 45, 45, 45,177, 99,199, 14,131, 90,173,126, 99, 49,145,140, 70, 99,155,166, 77,155, 34, 61, 61, 29, 81, + 81, 81,149, 26,150,249,237,183,223, 84,200,247,203, 42,119, 95,121,224,244,122, 91, 27,119,119, 38,238,252,121, 67,122,118,182, +107,155,182,109,137,209, 96, 0,195, 48, 72, 75, 75, 67, 76, 76, 12,172,109,108,200,163, 39, 79, 44, 54, 79,155,246, 91,181, 6, + 13,228,188, 94,111, 95, 9, 81,145, 71, 8, 25,241,217,132, 79, 15,237,220,185,203, 49, 51, 59, 59,210,204, 76,165, 83, 40,100, + 46, 19, 63,251,140, 79, 79, 79, 31, 70, 41,205, 53,129,106,209,206,157, 59,187,118,237,218,245,190,151,151,151, 83, 74, 74,138, + 75,102,102, 38,159,158,158,206, 34,223,215,138, 0,192,249,243,231,145,157,157,205,241, 60,127, 17,192, 2, 74,169,222,212,180, + 86,171, 86,205,186,121,243,230,237, 28, 29, 29,145,149,149, 5,123,123,123, 52,108,216,176, 93,181,106,213,126,142,138,138,202, +122,147,181,254,204,153, 51,150,148,210,119, 40,165,232,218,181,171, 73,231,240, 60,255,113, 80, 80,144,140, 16, 2,141, 70, 13, +165,210, 12,230,230, 22,176,180,180,130,159,159, 63,226,227,227,209,165, 75, 23,125,100,100,228,218,132,132,132, 74,215,209,172, +172,172, 94, 45, 90,180,152, 50,110,220, 56,112, 28,135, 94,189,122,225,229,203,151,203, 94,188,120,177,199,205,205,109,232,199, + 31,127,236,104,111,111,143, 41, 83,166,152, 1,248, 90,124,119,137, 16, 33, 66,196,191, 31, 37,125,180, 74,181,104,149, 55, 38, +234,234,234,218,218,206,206,110,182, 70,163,145, 23, 14,201, 16, 66,228,142,142,142, 71,220,220,220, 22,198,199,199, 87,202, 41, + 46, 35, 35, 35,219,213,213,245,200,213,171, 87, 7,244,237,219, 23,103,206,156, 25, 86, 32,180,112,245,234, 85, 60,127,254,252, + 72, 70, 70, 70,246,155,200,188,135,135, 71,183,118,237,218,245,109,218,180, 41,142, 29, 59, 6,158,231,175, 84,230,252,226, 51, + 12, 81,202,172,195,194,125, 38,145,177, 44, 8, 33,224, 56, 14, 0,144,154,146,130,136,199,143,145,158,145, 1,157, 86,139, 60, +181,154,247,243,241,209,100,233,245, 82, 2,208, 74, 22,114,180,133,133, 69,140, 58, 47,207,201,222,214, 78,163, 82, 41,144,153, +157, 37,187,117,243, 90, 46,165, 52,210, 68, 14, 61, 33,164,237,137, 19, 39,230,178, 44, 59,208,194,194, 2,227,199,143,103,219, +181,107, 7,153, 76, 6,157, 78,135,204,204, 76,236,216,177, 35,133,227,184,234, 5,245,192,194,220,220,124, 43,203,178,177,217, +217,217,179, 43,186,134, 94,175,239,222,163, 71, 15,137, 94,175,199,183,223,126,139,121,243,230,161,107,215,174,146,155, 55,111, +118, 7,176,243, 77, 85,122, 65, 16,208,169, 83,167,226,206,240, 15, 77, 57, 79, 42,149, 6,214,170, 85, 11, 41, 41, 41, 72, 73, + 73,129,163,163, 35,220,220,220,224,226,226,130,101,203,150,209,149, 43, 87,158, 52, 24, 12,107, 83, 82, 82,146,170, 80, 23, 71, + 15, 31, 62,124,244,128, 1, 3,144,155,155,139,171, 87,175,162,101,203,150, 88,178,100,137,235,197,139, 23,191,104,218,180, 41, +164, 82, 41, 66, 66, 66,192,113,220, 75,241,213, 37, 66,132,136,255,111,248, 47,250,103, 85,132,114, 45, 90, 94, 94, 94, 54, 60, +207,127,217,179,103,207, 78,189,123,247, 70,151, 46, 93, 94,249,127,231,206,157,150, 7, 14, 28, 88,232,233,233,217,213, 96, 48, + 44,170,204, 80,159, 32, 8,135,118,238,220,217,253,221,119,223, 85,181,111,223,190, 6, 0, 40, 20, 10,253,206,157, 59,213,130, + 32, 28,170,108, 70, 74, 6,143,116,119,119,175, 47,145, 72,250,246,232,209,163,254,136, 17, 35, 16, 22, 22,134, 29, 59,118, 60, +245,243,243,187, 92, 73,234,168, 10,102, 29, 46,172,200,186,197,202,229,105,153,137,137, 54, 22, 94, 94, 82, 91, 75,203,132, 99, +199,142,121,118,236,216,145,188,124,249, 18, 25, 25, 25,208,106,181,184,121,243,166, 32, 1,162, 37,182,182, 36,250,234, 85,194, +202,229,149,158,108,224,233,106,235, 59,103,198,216,106, 90,157,182,110, 86, 86, 22, 39,145, 74,165, 30, 46, 54,149,106,176, 41, +165, 58,115,115,243, 38, 0, 36,130, 32,168,237,236,236, 84,167, 79,159,134, 92, 46, 7, 33, 4,245,234,213,131, 82,169,148,153, +155,155,199, 0,128,139,139,139,124,195,134, 13,214, 67,135, 14,189, 84, 17,119,227,198,141,165, 62, 62, 62,239,251,249,249,225, +234,213,171, 8, 13, 13,141,190,122,245,170,119,163, 70,141,224,229,229,245,126,227,198,141,247,221,190,125,219,248,134,122, 23, + 85,114,134,231,121, 94, 32,132,128, 97, 24, 8,130,128,148,148, 20, 84,175, 94, 29,107,214,172,193,138, 21, 43,190,141,143,143, + 63, 90,149,244, 4, 4, 4,200, 26, 54,108, 56,108,192,128, 1,120,246,236, 25, 22, 46, 92,152,154,144,144,112,254,212,169, 83, +253,198,141, 27,199,182,108,217, 18,105,105,105,248,245,215, 95,185, 91,183,110,253,146,152,152,184, 77,124,229,138, 16, 33, 66, +196, 91, 44,180,188,188,188, 6,200,100,178, 41,131, 6, 13, 98,253,253,253,145,148,148, 4, 43, 43, 43, 35, 33, 68, 10, 0, 54, + 54, 54, 70, 51, 51, 51,140, 29, 59, 22, 13, 26, 52,104, 61,109,218,180,150,238,238,238,107,226,226,226,182,154,114,225,164,164, + 36,181,171,171,235,254,241,227,199, 47,186,123,247, 78,117, 0,184,113,227,198,243,248,248,248, 25, 73, 73, 73,234, 74,138,172, +194,160,152,196,204,204,236,186,175,175,239,139,110,221,186, 89,245,238,221, 27,142,142,142,184,125,251, 54, 22, 47, 94,252, 68, +175,215,207, 13, 9, 9,225,254,238,155,204,233,116,137,183, 14, 31,182,108,247,193, 7, 86, 19,131,130,150,126, 58,126,252,143, +115,230,204,145,248,251,251, 19,181, 90,141,235,215,175,211, 3, 7, 14, 24,127,253,230,155, 21, 48, 55,151, 94, 61,112, 64,174, +215,235,163, 43,105, 45,105,219,189,107, 91,255,165, 63,174,130, 86,147,139,235, 87,130,145,145,145,130, 13, 27, 15,250,123,120, +120,180,141,141,141,189, 80,137,251,233,119,230,204, 25, 39, 74, 41,228,114, 57, 22, 44, 88, 0, 55, 55, 55, 88, 89, 89, 33, 39, + 39, 7, 95,124,241,133,245,164, 73,147,172, 1, 32, 44, 44,172, 40, 60, 67, 69,136,143,143,111, 49,118,236, 88, 75,142,227,112, +242,228, 73, 61, 33,100,246,217,179,103,127,174, 87,175,158,188,117,235,214,150,219,182,109,107, 9, 32,228, 77, 9,173, 42,158, +247,244,244,233,211, 77, 7, 14, 28, 72,165, 82, 41,201,204,204,132,141,141, 13,214,172, 89,147,151,144,144, 16, 92,229, 58,192, +113,114,149, 74, 37,167,148, 98,255,254,253,136,142,142,254, 56, 53, 53, 53,209,217,217,249,224,151, 95,126, 57,213,223,223,223, +231,241,227,199,209, 57, 57, 57, 75,146,146,146, 94,136,175, 38, 17, 34, 68,136,248,239,160,208, 9,190, 82,145,225,121,158, 31, +123,234,212, 41, 86, 16, 4,108,220,184, 17,183,110,221,162, 42,149,106,182, 74,165, 90,109,102,102,198,107, 52,154, 49,163, 70, +141, 26, 58,111,222, 60,166,117,235,214,184,122,245, 42, 83,189,122,245, 97, 0,182, 22,187,112,199,242, 98,109,100,101,101,221, + 76, 74, 74,172, 94, 44, 64,101,117,133, 66,121,179,130,204,188,194, 89, 74, 80,204,230, 11, 22, 44,200,115,117,117,213,135,134, +134, 98,253,250,245,194,173, 91,183,206,203,229,242, 13,241,241,241, 58, 83, 56,223,208, 77, 47,226,148,115,220,237,237, 83,167, +214,105,220,171,151,240,201,148, 41,185, 50, 51,179,207,151,174, 90, 53, 45, 51, 39,199, 13,132, 80,123,107,235,232,141, 11, 22, + 44,236,250,254,251,185, 97, 23, 46, 40,239,158, 57, 35,117, 52, 26,239, 85, 38,157,177,177,177, 23,124,107,122, 97,203,166, 31, + 97, 48,232,144, 16,151,175,211, 82,211,178, 80,158,200, 42,141,147,227,184,172,126,253,250,201, 0,152,125,248,225,135,242,228, +228,100,212,172, 89, 19, 0,144,157,157,141,224,224, 96,212,174, 93, 27, 0,240,224,193,131,162,223, 21,165,211,220,220,252,253, +150, 45, 91, 34, 58, 58, 26, 97, 97, 97,231,226,227,227,211,220,220,220,206,189,124,249,178,123,211,166, 77,113,232,208,161,158, +101, 9,173,202,150,145, 41, 66,171, 52, 78, 51, 51,179, 25, 7, 15, 30,252,248,202,149, 43, 3,167, 78,157, 42,237,208,161, 3, + 0, 32, 39, 39, 71, 77, 41,229,171,194, 89, 60, 77, 70,163, 17,130, 32,192,206,206, 46,175,160,195,241, 2, 21, 4,146,253,171, +235,167,200, 41,114,138,156, 34,231,191,129,243, 45,129,233,145,225, 41,165,156, 32, 8, 8, 9, 9,193,193,131, 7,121,131,193, + 48, 58, 62, 62,254, 65,177, 67, 86,185,185,185,157,233,215,175,223,214,199,143, 31,179,225,225,225, 48,165, 33, 42, 14,173, 86, +107, 44,185, 36,177, 86,171,125,237,161,163, 45, 91,182, 32, 49, 49,209,240,242,229,203,179, 28,199, 29,122,205,217,139,175, 61, +235,240, 87, 74,117, 31, 16,114,118, 94,171, 86,157,230,158, 57,163,248,228,171,175,116,195, 71,140,248,146,215,235,141,172, 76, + 38,200,205,205, 25, 94,161,144,134, 93,184,160, 92, 57,110,156,157, 70,167, 59,185,189, 18, 14,230,197, 44, 90, 24,254,201,100, +104,138, 89,180,174,222,140, 64,101, 45, 90, 90,173,182,110,129,232,136, 1,224,242,209, 71, 31, 65, 16, 4,104, 52, 26,228,228, +228, 32, 62, 62, 62,107,196,136, 17,124,129,120,146,244,237,219,215,202, 20,222, 26, 53,106,184, 73,165, 82,156, 60,121, 18, 82, +169, 52, 24, 0,164, 82,105,240,153, 51,103,186, 15, 30, 60, 24,238,238,238, 53, 8, 33,132, 86,160,146,156, 3,123,239,165,128, + 47, 8,106,229, 63,241,168,229, 20,216,251, 62, 1,158, 20, 68,141,127,216,168, 81, 35,192, 68,191,172,226, 40,152,220,177,194, +193,193, 97,223,180,105,211,198, 55,111,222,188,243,188,121,243, 8, 0,246,141, 88, 55, 57,238,181, 66, 79,136, 16, 33, 66,132, +136,127,175, 85,171,180,253,146,114, 78,216,216,182,109,219,209, 0, 88, 66,200,250,184,184,184, 7, 37,143,137,143,143,143,112, +119,119,255,193,199,199,167,104,161,233,202, 36,170, 32,146,251, 98,134, 33,211,242,183, 43, 31,160,178,216, 82, 39,211, 0, 16, +134, 97,183,222,185,115,231,171,152,152,152,148,202, 10,191,210,240, 38,102, 29, 2,192, 78, 74, 95, 12, 38,228,212,148,192,192, +142, 93,199,141, 67,253,174, 93,173,220,188,189,121,141,193, 32, 60,184,124,153, 92,217,191, 95,118,247,204, 25,169, 70,167, 59, +121,144,210,152,202,166, 51, 54, 54,246, 66,205, 26, 30,167,251,247,237,222,185,134,143, 27, 0,224,217,139,120,164,166,103,157, +174,140,200, 42, 33,184,122,173, 89,179,230,168, 76, 38,147, 20, 95,202,198, 96, 48,164, 23,138, 49, 66,136,219,198,141, 27,119, + 51, 12, 19, 93, 17, 95,120,120,248,145,185,115,231,246,141,138,138, 58, 29, 19, 19, 19, 5, 0,209,209,209, 81,110,110,110, 91, + 19, 18, 18,250, 70, 71, 71, 31,160, 38,168,144, 18,139, 74, 35,236,242, 62, 37,128,122,133,139, 74, 87,117, 45,195,226, 40, 8, +173, 48,219,213,213,117,103,231,206,157, 71, 1,136,123, 29, 62,189, 94,111,212,104, 52, 28,207,243, 18,131,193, 64,245,122,189, + 81,124, 45,137, 16, 33, 66, 68,165,208, 20, 64,225, 74, 36,133, 6, 20,199, 18,191,245, 40, 88, 46,176,240,245, 91,176,157, 2, +224,102, 49,142,226,251, 43, 58, 23, 0, 82, 1,220, 47,216, 87,154, 22,217, 88,214,118,153, 66, 43, 46, 46,238, 0, 76, 88, 52, +218,212,227,202, 17, 74, 51, 9, 33, 43, 11, 69,211,235,114,112, 28,247, 70,214,135, 99, 24,230, 69,207,158, 61, 43,117,124, 69, +199,236,166, 52,250,115, 66,182, 29,251,233,167,134, 39,215,175,119,231, 57,206,158, 0,148,149,203,211,244,122,125,148,163,209, +120,175,178,150,172, 87,172, 49,207, 98,187, 0,128,175,175, 47,125,250,244, 41, 40,165,175, 53,123,131, 82,122, 15,128,103, 5, +199,196, 3,104,109,162, 24,220, 5, 96, 87, 41,130,125, 55,128,221, 38,247, 26, 10, 23,149, 6, 24,129, 8,253,235,182, 26,176, + 31,128, 80,184,168,244,155, 68, 66, 66,194, 99, 20,196,121,123, 29, 68, 69, 69,233,124,124,124,182, 47, 94,188,248,195,187,119, +239,238,137,139,139,211,137,239, 76, 17, 34, 68,136,168,156,200, 34,132, 28, 43,104,123,122, 20,116,246,143,149,252, 93,120, 76, +225,113,197,143, 41,228, 40,185,191,188,115, 1, 96,198,140, 25, 95, 45, 92,184, 80, 5,192,164,197,152,139, 7, 46,149,252, 27, +238,222,155, 88, 60,247, 77, 47,192, 27, 27, 27,187,233,175,200,235,170,124, 33,117,237,175,188,159, 79,158, 60, 33,111,243,211, + 86,184,168,116, 49, 4,254, 23,210,253,226,197,139, 53,237,218,181,219, 16, 23, 23,199, 65,132, 8, 17, 34, 68, 84, 6,142,165, + 9,163, 50,244, 64,143,242,254, 47, 33,136,254,116, 92,105,219,132,144, 99, 11, 23, 46,236, 97,106, 98,139, 91,180, 24,177,236, + 68,136,248,251,240, 79,204,122, 21, 33, 66,132, 8, 17,101, 10,162, 87,172, 88,133,226,171,228,246,140, 25, 51,190, 66, 25,195, +134, 5,199,184, 18, 66, 70, 23,204, 58,124,197, 95,139, 0,232, 88,198,197, 77,158, 77, 64, 8,233, 88,133,204,157, 21, 57, 69, + 78,145, 83,228, 20, 57, 69, 78,145,243,255, 23,103, 69,220,101,156, 31, 84,214, 80, 95,121,195,136, 37,127, 87,116,174, 9,199, + 6,151,145,151,209,197,215, 58,124,101,205,195, 66, 39,231,191,226, 3,160,163,200, 41,114,138,156, 34,167,200, 41,114,138,156, + 34,231,107,126,154, 82, 74,131,144,191,106, 10,165,148, 6, 81, 74,187,206,152, 49, 99,102,225,190, 25, 51,102,204,164,148,118, + 40, 60,174,224,152,162,115, 10,247,149,252, 46,185,175,130, 99,203,186, 31,163,139,255, 46,190,253,175,240,209, 18, 33, 66,132, + 8, 17, 34, 68,136, 40, 7, 55, 1, 52, 45,102,109, 74, 1,240, 96,225,194,133, 25,197,124,167, 82, 0,220, 3,208,160,224,184, +148, 2,131, 82,113,223, 42,125,193,182,190,148, 99,244,166, 28, 91,134, 21,110, 99,105,191, 1,136, 66,171, 44, 52,116,101,191, +241,242,112,106, 82,100,245, 19, 4, 0,128, 80, 16,125,160, 40, 12,129, 32,128, 82,138,248,228,204,219,247,147,232,156,170, 94, +207,223,157,216, 57, 41,149, 43, 4, 74, 91, 21,236,186,144,149,166,155, 28,154, 69, 51, 77,229,168,227, 66,234, 40, 25,124, 41, + 80,212, 7, 0,134,224,190, 86,192, 15, 15, 19,233,195,215,189, 31,132, 16, 82,215, 17,163,229,102,170, 65,214, 54,182,181, 50, + 50, 82,159, 24,180,186,125,225, 41,216, 64,171, 16, 24,170,166, 29,121, 71,160,248, 10, 0, 35,101,176, 44, 34,141,158, 23,107, +157, 8, 17, 34,254, 38,188,110, 92,188,210, 66, 7,189,238, 36, 36, 49,192,158,105, 98,171, 36,110,152,120,220, 63,134, 74, 9, +173,186, 78,100, 28, 8,230, 3,160,160,248, 58, 44,153,174,171,212,249,110,164,163,146,101, 55, 3, 96,181, 6,126, 10, 21,112, +177,212, 70,157, 65, 27,165,140, 93, 6, 64,208,242,252,200,176,120,211,253,197, 2, 61, 72, 87,137,192,108, 23, 40,149,242, 2, +221, 10,138, 99, 22, 50,252,113, 53,150,106, 43,147, 86, 47, 15,167, 38,135,111, 36,116, 62,191,110, 34,154,215,175, 9,202,115, +128, 96,132,170,245,151, 56,183,252, 35, 52,175,227, 5, 42, 24, 1,129,131, 69,183,165,232, 22,104, 93,229,135,196,223,157,216, +121, 59, 56,133,110,218,180,217,197,173, 70, 0, 17, 56, 3, 30,223, 56, 61,116,210,180,185,239, 5, 90,147, 64, 83,196, 86, 3, + 55,242, 73,205,234,254, 95, 78,158,255, 35,235,234,230,105, 46, 24,117, 92,226,139,135,141, 86, 45,153,123,160,129, 27, 89,118, + 47,158,110, 54, 85, 80, 5, 56, 98,140, 68, 33, 31, 96,166, 52,175,165, 86,231, 60,229, 13,198,125,129,110,146,174, 63, 44, 93, +209,176, 93,167,238, 22,124, 78, 34, 99, 20, 16,176,119,207,110,239,159,214,172,237, 78, 8,121,159, 82, 42, 84, 38,207, 2,197, +180,136,109,163,187, 75, 37, 44,169,243,241, 38, 22, 38, 78,153, 45,137, 0,103, 50,132,208,138,195, 75, 80,130, 75,225, 73,116, + 87, 85,174, 81,199,153,252, 76, 40,252, 64,176,159, 80,236, 14, 75,166,201,226,251, 78,132,136,183, 11, 12,195,156, 23, 4,161, +253,155,228, 36,132,188, 67, 41,189, 38,222,221,255,223,168,156, 69,139,224,219,176,200,151,182,224, 13,168,235, 87,227, 27, 0, +149, 18, 90, 74,150,221,122,243, 73,146, 11, 56, 3, 54,125, 55,126,143,222, 8,112, 70, 3,120,206, 8,158, 51,130,227, 12,224, +141, 70, 80,163, 14,115,127, 57, 15,232,115,208, 36,208,119, 43, 0, 87, 83,175, 33,165,204,246,219,151, 79,219, 17,125, 22,118, +173, 91,248,217,203,148,220,207,206,222,143, 79,173,235, 76,102,134, 39,227,215,202, 8,130,243,235, 39, 98,199,161,224,216,149, + 63,231, 61, 18, 40,133,157,149,153,255,208, 30, 97,158,219,142,156,127,185, 98,171,246, 17, 0, 88,155,203,253,135,221,127,226, +245, 58,133,224,164, 84,174,216,176,246, 39, 23, 87,123, 51,194, 93, 89, 4,142,231,225,233, 29,196,206,156, 48,212,245,219,229, +155,151, 3, 24, 94,222,249,181,157, 73,128, 95,205, 58, 83,182, 6, 95,241,202,203, 78,214,159,222,249, 85, 36,116, 48,186,184, +215,145,126,179,240, 71,118,214,244,137, 95,212,118, 38,215, 31, 37,209,240, 10, 94, 10, 76, 29, 39, 28, 89,184,104,105,253,247, +186,245,176, 16,114, 83, 88,109, 94,174,223,166, 95, 54,207,175, 93,191,153,170,117,160,135, 44,121,223, 88,162,201, 73,135,129, + 81, 42,222,171,219,209, 74,243,225, 96,227,166, 45, 59, 38, 0, 88, 85,169,238, 96,177, 97,107, 65,168,122,239,146, 80,180,190, +123,237,252, 24, 62,254, 38, 40,111, 4,120, 67,209, 55,120, 35,168,144,255,221,124,236, 47, 64, 41, 49,188, 76,122, 1, 83,116, + 62,123,249,166,107, 82, 98, 66,211,229, 75,191,159, 25,224, 68, 78,128,199,246,135,233,184, 80, 89,129, 41, 66,132,136,127, 47, + 8, 33, 28,165, 84,242,134, 57,187, 83, 74,143,191, 38,199,151, 0, 62, 41,216,220, 76, 41,253,225, 13,164,203, 3,128, 75,193, +102, 34,165, 52, 86,172, 1,175,117, 63, 71, 23, 31, 50,124,157, 56, 90, 74, 80, 1,216,223, 27, 0,204, 42,155, 16, 10, 40, 65, + 88,192,152,135, 94,221, 58,193,193,201, 5, 48,170, 1,131, 26, 48,106, 0, 99, 30, 96,212, 32, 53, 33, 26, 48,228, 1,207, 78, +128,163, 84, 81,233, 28,235,178,128,136,125,232,208,200, 11,142,214, 74, 76,236, 21,224,176,241,100,196,230,205,167, 31,119, 4, + 48,200,164,180, 82,138,230,245,106, 97,229,230,188, 71, 71,111, 39,119, 1,128,160,134, 14, 39,155, 7,120,123,174,216,170,125, + 20,124, 63,189, 43, 0,116, 11,180, 62,209,204,223,213, 75,120, 13,171,175, 64,105,107,183,106,181, 8,127,119, 3,132,236, 88, +100,103,107, 16,251, 98, 27,108,221, 27, 51,188,128,182, 21,157,111,198, 98,198,231,179, 22, 75,213,217, 73,122,193,144,194, 59, +178, 25,172, 68, 46, 16,196, 93,208,229, 10,153,252,228,209, 31,113, 83,230,124, 55, 3,192,208,114,173, 67, 78,152,176,108,217, +138,122, 45,155,212,118, 74, 60, 48,145,228,102, 36,129, 99, 85,138, 94,239,182,132,141,111,128,144, 20,178,140,200,107,116,132, +141,125, 13,196, 93,217,137,168,107, 7, 73,171, 70,125, 21,191,238,146,125, 88,150,208,242,117, 36,173,186,180,105,182,167,134, +151,155, 43,165, 2, 4,129,130, 10, 60, 62,238,223, 25, 51,247, 62, 3,207,243,232,215,165, 85,135,197, 99,222,163,130, 32,128, + 82, 1, 47, 19,211,212,191, 95,127,212, 33, 50,157, 94, 55,197, 82,213,224,157,246,173,238,223,190, 86,219, 24,241, 27,154, 12, + 93,248,136, 0,151,139,213,185, 86,119, 78,253, 90, 27,248,165,170, 15, 15,169,227, 4, 62,234,228, 34,120,181, 25,205,110,216, +117,210, 49, 43, 37,110,216,129,109,107,251,175,219,176, 97, 7,128,177,226, 43, 70,132,136,183, 3,148,210, 55, 46,182,162,163, +163,227, 95, 71,108,121,120,120,180, 1,176,164,208, 67,131, 16,178,196,199,199,103,238,255, 58,170,175,244,245,178,120,158, 31, + 26, 27, 27,123,177, 60,206, 30, 61,122,184, 1,240, 41,198,233, 67, 8,241, 41,237, 88, 27, 27, 27,190, 69,139, 22, 81,199,142, + 29,139, 23,107, 72,229, 5, 87, 85,132,214,163,152,125, 19, 27,233, 18,114, 1,224,145, 9,149,246,149, 33, 63,173,145, 95,180, +101,254, 71,139,234, 86,179, 67, 78,158, 30,167,111, 69,129,231,141,224, 57,174,192,178,197,129,231,140,232,210,192, 1, 45,180, + 99,177,234,216, 99,112,188,176,176, 60,206,146, 48, 80, 97, 72,195,142, 3,247, 10, 2,149, 43,164, 76,150,159,167,189,211,148, +126, 13,152,137,189,234, 66, 99,224, 6, 6, 56,147,223,195,147,232, 38,147, 56,133, 63,135, 60,162,165,237,227,185, 10,243, 94, +142, 53,170,249,224, 30,157,172,168, 46, 11,198,212,103,200, 81, 27,241, 44,205,136, 68,109, 38, 20, 36,193, 36, 78,129,162,190, +135,187,171,234,143, 61,211, 95,216,179,217, 18, 39,150,147,201, 25, 14,188, 64, 89,154, 25,174,179,171,221, 73, 90,232,183, 85, + 94, 58,205, 84,150, 31,181,233, 28,100, 29,179,115, 52, 49,243,235, 2,167, 70,158,120,113,113, 11,146,111, 29, 67, 90,124, 20, +177,210,102,194,217,190, 38,186, 13, 29,132, 31, 6, 53, 69, 78,118, 14,216,132, 72,107,185, 84, 97, 83, 22, 39,229, 49,116,217, +226,239, 92, 37, 44,147,127, 63, 11, 63,188, 17, 26,157, 14,224, 57, 40, 37, 2, 8, 45,252,207, 8,222,104, 80,213,239, 59,125, + 60,128,235, 21,229, 61, 60,137,238,170,235, 68, 90, 67, 48,214,166, 70, 13, 8,112, 57, 44,153, 22,137,159, 0,103, 50,164,113, +151, 17,173, 41,193,165,170,148, 81,160, 61,122, 52,241,177, 48, 55,207,126,132,216,253,159, 33, 18, 74,234,220,242, 19, 12,249, +120,130,106,227,198,141, 61, 9, 33,227,138,251,168,253, 21,139,172,138,156, 34,231,127,149,211,218,218,186,122,181,106,213,230, + 26,141,198, 54, 50,153,204,217, 96, 48, 64, 16,132, 68,185, 92,126, 41, 42, 42,106, 65, 86, 86,214,243,127, 91,222,239,223,191, +111,178,216, 50,133, 83, 42,149,226,241,227,199, 79, 77, 21, 91, 37, 57,165, 82,233,246,203,151, 47, 99,239,222,189, 0,128,136, +136, 8,248,250,250,154,151,118,238,139, 23, 47,204,219,181,107,183, 29, 37, 86,244, 40,201,249,224,193,131,234,191,253,246, 27, +246,239,223, 15, 0,120,252,248, 49,252,252,252, 74, 77,207,229,203,151,217, 15, 62,248,160, 58,128,248,191,186,140,222, 6,145, + 85,252,251, 21,161, 21, 28, 28, 76,131,130,130, 72,201,223,165,224,153,151,173,188, 17,180, 60, 0, 60,171,108, 34,194, 19,233, +226, 6,174,210,174,231,246,175,105,163,148, 49,152,183,105,202,203,148,244,156,119, 36, 4, 2, 0,112, 20,140,173,133,252,234, +194, 97, 13,188, 50,114,181, 56,122, 35,238, 98, 88, 82,229, 76,164, 97,241,244, 12, 0,155,255, 53,148,196,111,216, 15,103,118, +239,158,209,181,254,228, 94,245,113,228, 74,212,100, 0, 21, 70,125,167,130, 0, 42,112, 69,206,239, 5, 93, 7, 64,120,117, 81, + 96, 1, 52,127,159, 80, 57,139, 86, 59, 66, 36, 25, 78,232,102,167,146,175, 30, 51,102,148,149, 49,229, 9,210,245, 50,188,204, +208, 34, 81, 35, 69,174,196, 9,113,143, 30,240, 12,193,153,138, 11, 23,217,148,211,218,216,202, 45,152,192, 78,227,221,179, 79, +126,149, 33, 39, 28,107,213,231, 91,155,212,115, 63, 70,113,121, 41,121,132,160,194,181,245,172,173,109,124,181,105, 81,108, 86, + 70, 42,108, 92,234,162,235,192, 30,248, 58, 40, 0, 57,217,121, 72, 73,191, 74,107,185, 90,145,232, 75, 59, 48,171, 91, 29,164, + 37, 37, 64,103, 4, 72,158, 46, 93,171,215,230,150,121, 31, 25,108,152, 52,117,218, 16,111, 87, 71,243,194, 73, 5, 84,224,209, +160, 78, 13,116,106,211, 28,103, 46,255,129,155, 15, 34, 32, 20, 76, 42,160,130,128,216,228,140, 36,173,129,223, 82,169, 27,202, +115,160, 70,109,169, 66, 12, 85, 24, 50,172,231, 76, 84, 60, 48,231,157, 90,150, 35,103,244,240,182, 52, 87, 16,104,141, 60,180, +122, 35,114,254, 88, 13,251,106,245,160, 82, 42, 73, 35,104, 36, 0,196,117, 11, 69,136, 40,134, 1, 3, 6, 40,147,146,146, 66, +130,130,130, 2, 58,117,234,164,106,221,186, 53,242,242,242,112,250,244,105,228,229,229,121,123,122,122,122,159, 62,125,186,239, + 59,239,188, 19,238,225,225,209,110,223,190,125,149,241,161,149,224,127,206,236, 2, 0,142, 16,130,130,125, 4,128,240, 58,235, +220,202,229,114, 68, 71, 71,191,113,203, 86, 92, 92,220,211,170, 88,182,114,115,115,101,238,238,238,112,116,116, 4,207,243,200, +203,203,195,225,195,135,145,149,149, 5, 65, 16, 96,102,102,134,111,151,109,194,163, 59, 33,184,126,253, 58,178,178,178,100, 21, +113,198,198,198,146, 6, 13, 26, 64,167,211,129,227, 56,104,181, 90,156, 61,123,182,104, 91, 34,145, 96,218, 55,203, 17,113, 43, + 4,119,239,222, 69,108,108,236,223,178,218, 72, 37,180,200,191,209, 26,186,177,188, 10,251,183,130,231,185,153, 27,183,238,190, + 58,115,236, 32, 76, 24,220,209,115,193,154,131, 29,195, 83,232, 86, 0, 8,112, 36,195, 62,108, 95,203,203, 70, 37,197,215, 59, +111, 1,148,206,124,221,235,133,166,209,136,186, 46,100,242,161,235,209, 33, 95, 13,106,132, 26,174, 86,190, 53,107, 18,121,100, +164, 9,107, 10, 10, 28,108, 45, 20,254, 65, 13, 29, 78, 66, 16, 96, 99,169,168, 13,158,131,141,133,194,191, 91,160,245, 9, 0, +176, 81,201,106,151,102,249, 42, 11, 77,189,100,163, 85, 10,201,104,243,198,174, 94,195,123,118, 50,235,222,179,175,153,133,148, + 67,218,245,211,200,150,122,192,104,231, 13,157, 49, 29,177,207, 35,249,115,215, 30,198,165,230,232,166, 84,152, 76,138,139,113, +207, 31, 59, 86,175,223,201, 54,245,216,172,228,234, 35,118,250, 48, 16,152,156, 29,125,146,204,157,154,153,221,120,246, 60, 87, +160,127,182,232,148, 68,118, 86, 86,148,145,135,171,134,151, 88, 70,158,255, 21, 51,186,213, 67, 70,122, 50,180, 6, 14, 89, 26, +206,224, 98,163, 84,232,158,135, 66,103,224,160, 55, 10,144,218,184,227,244,213, 7,169,130,209,120,162, 44,206,200, 84,122, 23, +128, 69,241,125, 53, 29, 73,131,233, 86,102,119, 97,212, 32, 58, 54, 30, 91,131,175, 54, 42, 56,174,234,149, 92,224,242,135,159, +139, 89,178, 8, 69,235,170, 56,193,215,113, 38,205,204,148,178,159,150, 76,254, 32,224, 93, 63, 59,133, 16,123, 21, 68, 48,192, +156,151, 64, 35,231, 97,237, 89, 3,130, 62,135,170,181,218,204, 48, 64,140,244, 46, 66, 68, 49,212,174, 93,219,197,218,218, 58, +108,234,212,169,118,125,250,244,193,161, 67,135,144,157,157,141, 45, 91,182, 96,197,138, 21,152, 63,127, 62,140, 70, 35, 54,110, +220,168, 58,112,224, 64,179,181,107,215,198,122,123,123,215,141,142,142, 78,172,168, 79, 9, 64, 1, 64, 90,208,118, 17, 0,194, +241,227,199,209,189,123,119, 28, 63,126, 92, 40,216,199, 19, 66,140,148,210, 42,173, 39, 42,151,203, 33,151,203,145,149,149,245, + 70,196,150, 84, 42,133,133,133, 5,228,114, 57,114,114,114, 42, 45,182, 56,142, 99, 99, 99, 99,145,149,149,133, 78, 61,123, 98, +249,194,133,104,223,190, 61, 58,117,234, 4, 74, 41,206,158, 61,139,142, 45, 3, 49,232,253,118,120,248,240, 33, 56,142, 51, 41, +189,137,137,137, 72, 74, 74, 66,215,158, 61,177,105,237, 90, 52,111,222, 28,254,254,254,224, 56, 14, 33, 33, 33,232,223,165, 37, +148,189, 59, 34, 34, 34, 66,172,212, 38, 90,179,222,148,143,214,107, 35, 52,153, 94, 11,112, 36,199, 6,119,105,214,163,103,171, + 0,108,218,115,238,187,128, 0,178, 27, 0,236, 45, 21,223,126,212,190, 6,194, 99, 50,112,238,110,252,177,240,148, 55, 51, 91, + 67,224,225, 96,111,165, 2, 88, 57, 52, 6,129,179,122,134, 10, 29,152, 5, 74,161,106, 51, 29, 31,246, 12,247,108, 30,224,233, + 89, 56,235,208,162,251,143, 24,246,224,169, 87, 83,127, 23, 47,240, 70,128, 55,194,106,208, 78,224, 27,243, 10,211,209,170,186, +226,204,244, 41,147, 91,116,235, 61,208, 76,174,178, 6,159,253, 18,198,196, 7, 72,123,114, 17,121, 42, 95, 36, 70, 63,195,222, + 83,215,179,158,196,166,101, 51, 12, 78, 39,101,233,190,140, 76,167,185, 21,241,106,141, 88, 56,119,214,148,160,189,187,247, 88, + 42,106,180, 34,145,171,187,103,201, 37,156,194,209,167, 49,163, 86, 58,208,239,183,236,177,202,211, 99, 81, 69, 60,234,188,236, +131,103, 79,159, 28, 84,171,122, 43,203, 23, 55,131,161,209,234,160, 51, 2,117,155,181, 3,207, 83, 57, 97,136, 96,197,178, 36, + 57, 45, 3,196,200, 39, 93,186,247, 34,225,242,189,103,172,206,178, 98,238, 87,212, 61, 97, 63,239,217,174, 33, 96,212,224,253, + 54,245,176,124,199,185,207, 0,140,120,189, 66,206,183,104, 81,160, 85, 93, 39,178, 30, 64,171, 91,135, 87,212,110,210,123, 18, + 42, 99,209, 10,116, 36,221, 2,107,186,253,186,252,219,233,118,246, 30,190, 44, 17,140,160, 46,245,129,236, 88, 74, 98,175,194, +218,189, 57,120,183,150,216,184,106,105,174, 32,208,221, 85, 9,109, 33, 66,196,219, 12,173, 86,123,112,241,226,197,118, 61,122, +244, 40,180,200,224,234,213,171,216,188,121, 51,204,205, 95,125, 79,118,239,222, 29,148, 82,187,121,243,230, 29, 4,240,110, 89, +156, 45, 91,182,236,185,106,213,170,248,134, 13, 27, 62, 43, 16, 91, 50, 0, 76,104,104, 40,243,242,229, 75, 98,107,107, 75,221, +220,220,140,241,241,241, 2, 0,254,227,143, 63,102, 45, 44, 44,106,229,230,230, 94,168,170,208,146,203,229,111,196,103, 75, 42, +149,130, 16, 2,185, 92, 14,153, 76, 6, 74,105,165,196, 22,207,243,146,227,199,143,227,214,173, 91,152,223,176, 33, 38,187,187, +195,206,206, 14, 33, 33, 33,160,148,194,220,220, 28,233,233,233,216,189,123, 55,222,123,239, 61,112, 28, 39, 51,133,119,255,254, +253,184,125,251, 54,190,105,210, 4,147,173,173, 97, 97, 97,129,179,103,243, 71, 3, 21, 10, 5,162,163,163,113,246,236, 89,180, +107,215, 78,172,212,175, 9,147, 43, 79, 59, 66, 36,196, 25, 46, 6,189, 6,148,163, 0,129, 91, 64, 0,145,133,135, 83, 67,101, + 47,202, 48,152,181,106,235,177,160, 31, 39,245, 36,163,123, 53,114, 91,240,235,249,113, 0, 48,178,159,159,187, 74, 33,193,202, + 35,225,148, 97, 48,235, 77,100, 48, 32,128,200, 24, 6,227, 58, 53,247, 71,124,166, 30,145,241,153,191,135, 83,106,210, 80,207, +185, 31, 63,196,182,163, 33, 47, 87,108,211, 62,162,148,194,198, 66,225, 63,236,126,164,215,175,199,111,199, 44,219,171,125, 68, + 5, 10, 27,149,180,246,136,135, 45, 43,156,117,216,212, 75, 54,122,230,244, 47, 91,246, 26, 49, 85,201, 61,218, 7,125,228, 41, + 8, 6, 13,178, 13, 50,100,178, 46,136,141,137,193,247, 27,143,189,204,206,211, 15, 10, 77,174,156,192,140, 72,165,185, 1,142, +164,207,247, 95,127,117,102,225,183,243, 44, 52,207, 66,114, 89,194,105,216,106,109, 37,223,206,255,145,228,232,244, 3, 35,211, +105, 78, 69, 60, 58, 75, 44, 90,188,108, 85,208,168,161,125, 31,249,249,182,181,231,227,159,219,107,179,179,147,119,158,188,237, + 82,208, 83, 36, 0, 16, 25,155,134,148,172, 60,142,231,140, 23, 44,165, 88, 16,102,138,117,176, 0, 53,156,137, 99,159,214,245, + 63,112,180,148, 65,147,155, 9, 39, 75, 41,186, 52,175,249, 65, 13,103, 50,253, 89, 18, 77,169,186,208, 50,130, 26, 53,184,182, +232,189,218,148, 55,214, 6,111,132,225,254,246,202, 91,198, 8, 38, 79,104, 99, 97,101,171,127,193, 32,207, 28, 48,115, 0,177, +242, 6,172,125,136,180,206, 64,196, 63, 11,227, 62,251, 96,104,218,243,168,216,159, 29,204,240,131,248, 10, 17, 33,226, 85, 68, + 71, 71,127, 52,115,230,204,203,205,155, 55,119,118,112,112, 64,189,122,245,112,244,232, 81, 76,157, 58,181,232,152,134, 13, 27, +130, 82,138,244,244,116, 44, 94,188, 56, 49, 62, 62,254,163,242, 56,195,194,194, 30,109,219,182,173, 77, 64, 64,128, 65, 38,147, +101, 2, 80,100,102,102, 42,211,211,211,137, 86,171,133, 32, 8,130,181,181, 53, 31, 31, 31,111, 28, 52,104,144,238,202,149, 43, + 53,243,242,242,162, 95,199,162,229,233,233, 25,154,150,150,150, 69, 8,121,237,208, 15,133, 34,203,193,193,193, 49, 55, 55, 87, + 0,144, 81,149,208, 15, 28,199,161, 73,147, 38, 56,117,241, 14,142,159,187,130,236,248,199, 24, 55,234, 35,212,171, 87, 15,167, + 78,157,170,114,153, 53,104,208, 0, 39,207, 94,198,229, 91,247, 16, 29,113, 31,159,141, 27,133,186,117,235,226,228,201,147, 98, +133, 54, 29,193, 37,124,179,130, 75, 10,173,118,193,193,193,133, 61,243, 63,201,215, 58,142,164,129, 91, 45,249,246,121,221,106, +214,145,118,154, 7, 34, 53,195, 62,223,147, 45,103,125,191,250, 81, 61,103, 50,244, 65, 82,197,179,195, 94,177,106, 37,209,176, +186, 78,100,215,189,135,181, 63,120,191,185, 39, 54, 29, 85,205, 1,128,129,173,171,227,198,147, 20, 92,143, 72,222, 21,150, 76, +195, 94, 55,215,245,156,137, 10, 20,187, 22,127,222,171,157,183,135, 11, 54, 31,186, 12, 66,112,208,164, 6,151, 82,218, 60,192, + 27, 43,182,149,156, 97,232,226,181,108,175,246,209,169,208,236,110, 0,208,185,142,249,137,166, 53,109,189, 42,178,108,152,201, + 37, 99,186,245,253, 80,201, 69, 28, 5,162,206,130,112, 58,104, 12, 2, 18, 82,115,160,182,246, 68,200,213,123,154, 44,173,126, + 82, 88,114,213,172,120,225, 41,244, 89, 67, 87, 18,147,155,167,113, 85, 57,214,212,178,140, 32,228,234, 40,110,132, 71,101,135, + 37,208,199,166,112, 68, 70, 82,253,187, 30,164,245,250,173,123,231, 74,101,242,129, 44, 1,113,178, 49,119, 92,255,227, 55,176, +180,180,128,160,207, 5,242, 82,208,231,211,239, 83, 30,196, 25,170, 3,128,159, 3,177,104, 83, 67,182, 85,194,144,216,223,159, +234,103, 87,104, 94, 53, 98,236,208, 46, 13,165,130, 62, 15,159, 47,222,131, 13,211,123,225,195, 14,117,164,193,127, 68,140, 5, +176,160,170,101, 77,121, 14,212,168,193,187, 95, 93,124, 68,128,203, 20,104,117,107,239,183,181,129, 59, 38,115, 52, 38, 68, 42, +113, 37,117,234,123,153,203,132,216, 63, 32,196,254, 65, 89,207,150, 32, 94,109, 8,113,105, 66,127, 90, 50, 63,111,211,166,205, +167, 5, 6, 95, 87, 20, 42, 67,132,136,255,175,160,148, 62,179,177,177,233,218,189,123,247,115,167, 78,157,178, 11, 12, 12, 4, + 0,220,186,117, 11, 0,208,164, 73, 19,248,249,249, 33, 41, 41, 9,131, 7, 15, 78, 77, 72, 72,232, 74, 41, 45,215,231, 55, 39, + 39,231,249,254,253,251,157,243,242,242, 26,206,158, 61, 59,217,219,219, 59, 91,171,213,146,204,204, 76,129,227, 56,216,218,218, +202, 27, 54,108,136, 22, 45, 90,228, 94,189,122,181,218,203,151, 47,115, 0, 68, 85, 37,253,189,122,245,194,197,139,249,147,246, +222, 68, 92, 45,153, 76,134,192,192, 64,247,103,207,158,197, 21,220,159,107, 85,184,167, 69,191,239,221,187,135, 11,119, 98, 33, +209,107, 32, 79,137,199,181, 67,251,209,115,204,120,112, 92,213,189, 24,238,221,187,135,195,103,175,193, 92, 33,193,227,199, 97, +216,191,127, 63,198,141, 27,247, 90,156, 85, 68,185, 90,228, 95, 94,239, 19, 0,108, 44,211,162, 21, 20, 20,116, 1,165, 68,181, +173, 89,147,200, 21,185,152,215,165,137,251,180,129,173,106,178,198,236,120, 8,188, 0, 86, 10, 56, 57, 88, 97,251,246, 93,213, +119,237,217,115,181,129,187,116,149,192,113,179, 30, 36, 81,117, 37,210, 53,239,199, 61,151, 7,110,159,210, 78, 50,174, 91,109, + 59, 0,144, 73, 24,172, 60, 26,198, 1,152,247, 58, 25,126,215,131, 40,115,141, 24,237, 98,111, 61,103,230, 39, 65,118,237,154, +248,225,194,245, 80,172,218,127,245,162, 60, 25,219, 76,190,113,130, 17, 37,245, 83,105,179, 14, 33, 84,236,119,201,243,212, 69, +102,110, 11, 67,212,121,192,160,133, 86,103,192,203, 52, 30, 47,211,181,144,168,100,184, 21, 17,171,177, 79,196,177,170,230,153, + 16, 66, 90,213, 80,186,205,253,110,153,135, 86,147,203,101,103,164,114, 50,249, 53,169,202, 76,145, 80, 25,158,171,177, 84,219, +182,186,172, 49, 32,176,114, 37, 85,127,245,197,112,243,184,240, 83,168,197,196,131, 80, 10,179, 58, 65,176, 52, 99,101,173,125, +100, 49, 0,224,227, 98, 45, 95,252,245, 84,235, 73,211,191,174,208, 7, 44,128, 16, 89,189,166, 46,147, 2,189,109,113,241,246, + 35, 92,124, 16, 29,118,241,214,227,186,237,235,185,193,207,195,102, 98, 0, 33,139,194,105,229, 45,164,249, 5,195, 1, 70,109, +209,172,195, 0,103, 50,164,233,192,217,165,206, 54, 44, 11, 62,128, 16,193, 83, 16,150, 5, 8,147, 63, 3,242,229, 31,144,216, +212,160,187,246, 30, 86,111,222,188,237,155,240, 20, 42, 90,177, 68,136,168, 0,153,153,153,247, 85, 42, 85,151,250,245,235,111, +249,252,243,207, 45,135, 14, 29,234, 54,106,212, 40, 6, 0,146,146,146,132, 21, 43, 86,196,255,244,211, 79, 89,169,169,169, 35, + 12, 6,195, 3, 83, 58,190,132,144, 43, 63,255,252,115,202,165, 75,151,234, 54,107,214, 76,209,184,113, 99,193,214,214, 86,162, + 80, 40,120,189, 94,175,141,136,136,224,159, 61,123,230,154,153,153,249, 20, 64,100, 85,134,245, 11,172, 87, 11, 88,150,157, 75, + 41, 13,124, 19, 62, 90, 42,149,202, 13,192, 83, 66, 72,173,202, 14, 27,254,169,193,150, 72,144,145,145, 1,117, 98, 24,148,177, + 79, 80,223,156, 65,128,173, 5,172,172,172, 94, 75, 20,101,101,101, 1,121,113,184,124,249, 30,192,113,176,182,182,134,181,181, +245,223, 46,180,202,210, 34,255, 5,148,156,105, 88, 80,111,203,247,209,170,235, 68,198,217,202,177, 98, 76, 80, 77,153,143,151, + 7,116,177,183,112,239,101, 46,102,189,211, 44,156, 85, 88,106,199,124,212,171, 73,223,254,213,208,174, 69, 83,226,227,106, 61, +113,209,143,235, 62,173,235, 76,166,134, 37,209,149,166, 36, 42, 44,153, 62,175,227, 68, 54,159,191, 31, 59,214, 67,165,129, 32, + 80,156,127,144,128, 7, 81, 25,155, 31, 38,211,231,149,201, 96, 93, 55,210, 81, 2,102, 15,165, 84,105,109,110,158,211,176, 65, +109,135,142,239, 54, 96,186,182,109, 2, 25, 11, 92,190,113, 15,147,127, 60,120, 77, 16,104,208,109, 19,135, 13,243,103, 24,190, + 42,160,242,103, 24, 26, 95,153, 97, 72, 41,165,249,179, 14,203,119,251, 98, 89,146,168,142,190,233, 34,181,247,133, 38,242, 60, +162, 50, 4, 68, 39,231, 32, 91,226, 2, 93, 92, 28, 64,133,152, 16, 74,171, 92,171, 29, 28, 28,156,170, 7,248,213, 92,189,117, + 63, 12,234, 44, 60, 15,217,130,220,140, 4,124,187,254,104, 77, 15, 15,143,182,177,177,177, 23, 42, 81, 97,252,206, 29,219,229, + 4, 10,176, 82, 5,130,215,238, 69,170,189, 25, 28, 84, 50, 8,154, 20,140,153, 52,212,186, 91,167,161,214, 0, 16,253,248, 46, +188, 85, 26,147,120, 13,246,232, 59,176,189,191, 13,140, 26,108, 61,121, 87,203, 0, 93,183,157, 14,139,108, 95,219, 70, 57,176, +149,183,237,130,248,204,126,168, 98, 80,209, 66,139, 86,145,133,175, 10,179, 13,247, 81,202,215,113, 36,145,123,174, 36,155,247, +239,212, 88, 37,147, 16, 66,115,227, 64,205, 28,176,110,235,190, 92,185, 17, 27,197, 38, 84,132, 8,211,160, 86,171,111, 19, 66, +234,125,249,229,151, 67,190,250,234,171, 54,230,230,230,213, 1, 32, 47, 47,239,185,209,104,188, 8, 96, 87,101,102, 7, 22, 8, +167,167,132,144,231,145,145,145,206, 59,118,236,176, 1,160, 44,248, 91, 11, 32, 19, 64,210,235,204, 56, 44, 20, 85,132,144,185, +111,208,210,113,188,128,179, 86, 85,206,103, 24,134, 39,132,128, 16, 2,133, 66,129, 75,151, 46, 97, 64, 80, 39, 60, 12,206, 68, +160,141, 5,154,141, 24,131, 61,103,206,128,101, 89, 16, 66,192,178,108,165,218, 17,137, 68,130,203,151, 47,227,195,193,253,161, +144, 0,214,214,214,248,242,203, 47,113,228,200, 17, 72, 36,226, 42,125,149, 40,231,141,133,130,203,244, 56, 90, 4, 11,206,108, +249, 94, 6,222,136,223,182, 44,197,177,208, 92,253,227, 20,204,242, 79,193,138,253,200, 17, 82,126,220, 54,246,204,229,208, 31, + 62, 30,212, 67,245, 94,251, 78,120,175, 93,123, 73,221,166,109,231, 0, 88, 89,172,193,238, 88, 94,172, 13, 94,192, 55, 27, 79, + 62, 26,179, 39, 36,130,192,144,131, 65,157,155, 82, 94,192, 55, 21,136,128, 63,113, 90,155, 89,236,185,124,245,170, 45, 12,185, +136,186,251,187,178, 90,245,154, 0,111,192,211,167, 79,240,211,214, 67, 66,200,141,199,219,245, 28, 62,143, 76,167,121,166,114, +230, 43, 43, 14,214,230,114,255,110,129,214, 39, 4, 80,216,168,100,181,169,192,195, 70, 37,173,221,185,142,249, 9, 74, 41,181, + 52,147,214,166,188,177, 66, 78,141,158,219,176,245,151,205,203, 70,142, 28,105,158, 26,155,136,248,236, 80,228,202,221, 97, 84, +121, 34,242,238, 69,141, 90,199, 85,216,136,151,119, 63, 83, 83, 83,147,111, 95, 79,199,158,245, 11, 97,212,235,144, 28,155,175, + 85,227, 83,179, 97,229,224,126,181, 50,156, 6, 78,200,234, 59,116,180,204,204, 18,102, 31,246,237, 33,143, 76,211,161,145,155, +101,126,101,202, 77,193,195,179,151,209, 46, 47, 95,183, 61,123,201,192,187,129,155, 73,233,180, 84,202, 62,239,214,216, 29,207, + 99, 18,112, 41, 44,110,235,179, 52, 26, 95,195,158,108,141,140,207, 28,219,235, 29, 47, 44, 63, 18,254, 89, 89,226,168, 44,206, + 0,103, 50, 4, 64,171,124,103,120, 13, 40,208, 42,192,153, 12, 49,101,166, 97,105,156, 18, 25, 62, 88,118, 34,122,246,190,155, +169,189,166,125,208,218,170, 69,139,238,114,112,122,228,104,116,198,240, 12,154,253, 58,101,244, 26, 61, 37,145, 83,228,252, 79, +114, 22,136,158,237, 5,159, 55,201, 25,143, 18,113,157, 94, 55,239,197,135, 9, 41,165,146, 2,107, 86,185,206,240, 21,113, 22, + 31, 38,164,148, 30, 47,176,102,149,107,213, 42,201, 41, 8, 66,124,147, 38, 77,236,122,246,236, 9,158,231,241,228,201, 19, 68, +191,124,137,142, 99, 63,131,141,141, 13, 46,222,191,143,199,143, 31, 99,238,220,185, 48, 26,141, 56,124,248,112,108, 69,156, 18, +137,196, 80,179,102, 77, 89,239,222,189,193,113, 28,158, 61,123,134,184,184, 56, 76,158, 60, 25,214,214,214,184,125,251,118, 17, +103,106,106, 42, 36, 18,137,225,239,168, 75,255,117,148, 38,178,202, 23, 90, 0, 15,222,136,172, 51,243,176,242, 18, 12, 6, 35, +106,135, 37,211, 23,197,254, 95, 87,223,158,252,118, 63,244,209,243,219,127,188, 39, 71,242,131,252,115, 42,129,136, 84,154,208, +212, 83,146, 3, 67,142, 21,158,157,192,139,164,156,220,136, 84,154, 80,217,204, 81,129, 39, 48,168,129,132, 91,184,114,241, 2, + 66,174,221,195,205, 7,143,248, 43,183, 35,246, 48, 2,190, 9, 79,165, 79,170,160, 78, 97, 17,180, 28,195, 31, 60,245,106,234, +231,236, 5,158, 3, 21,140,176, 30,180, 11, 35,194, 91,120, 53,173, 97,227,149,111,201, 50,194,246,147,223,129,101,202,114,249, +110,198, 24, 54,182,170,174,232,151,147,153,246, 78,135,182,239,154, 91,215,233,134,212,167, 17,120,114,239,178,230,118,104,228, +149,155, 49,134,215,178,150,184,187,187,183,233,208,214, 31,131,198,204,132, 65,157,133,103, 33,191, 32, 55, 61, 17,151,174, 90, +224, 81,118,246,187, 0, 76,182,104, 93,137, 54,214, 5,128, 86, 62,178, 24, 75,232, 92, 62,234,209, 19, 10,162,133,160,203, 6, + 81,167, 34, 50, 78,159,213,111,253, 75, 30, 0, 84, 10, 34, 49,167, 89, 86,166,240, 6,120,219,251,170, 88, 35,182,157, 9,131, + 32,228, 47,223, 36, 8, 88,183,237,247,200,177,223,124,216, 8, 1, 94,182, 13, 8, 33,164, 50, 38,127, 66,209,250,230,158,175, +107,107,207,205, 1, 4, 3, 46, 79,180,171,221,122,101,122,235,170, 90,198, 30,196,209, 56, 0, 99,235,184,145, 13, 19, 87,158, +156,211,228, 76,120,171, 41,159,244,178, 2, 21, 23, 96, 23, 33, 66,196,223,143,220,220,220, 49, 35, 70,140,216, 32,149, 74, 29, + 1, 16, 65, 16, 32, 8,130,228,135, 31,126,144,242, 60,207, 48, 12,195,179, 44,203, 29, 63,126,220,200,243,124,138, 86,171, 29, + 83, 17, 39,199,113,145,227,199,143,175, 89,209, 12,197,221,187,119, 67, 34,145, 24, 56,142,139, 20, 75,162, 98,145, 85,252,187, +184,149,171,236,198,131,226,235,150, 31,206,155, 7,128,128, 98,126, 9,145, 5, 0,184,159, 70,227,235, 58,145,201,117,155,182, +157, 87,120, 78,101, 19,167,229,249,254, 77,235,249,237, 6, 0, 29,229, 63,172, 74, 6,179,117,154,129, 13,155,190,187, 71,160, + 84,194, 81,186,153, 17,112, 64,203,225,161, 41, 51,237,202, 66,124,114,230,237,194,133,162, 5,208,255, 13, 23, 22,132,113,160, +148,210,162,225,194,165, 74,164,102,233, 42,140, 3,117,249,185,174, 83, 83, 47,217,232,211,127,220, 29,195,243,212,133,101, 73, +162, 70,207,109,120, 93,145, 5, 0,177,177,177, 23, 2,156,200,233,251, 13,156, 59, 59,168, 10,172, 92,106, 32, 85,141,211,177, +201, 57, 23,170,194,153,145,103,236,245,213,138, 35, 71,229, 82, 86, 2, 74,243, 3,138, 82, 10,173,129, 79, 47, 20, 99,245,237, +137,219,151,135,185,221, 44, 75,162, 43,226,187,254, 56, 97,249,160, 69,103,167,134, 69,101,108,126,145, 65, 67, 1,224, 69, 6, + 13,173,101, 79,230, 68, 38,230, 76, 13,141,206, 88, 90, 89,191, 10, 74,112,169,233,160,121,127,218,247,186,247,243, 97, 60,189, + 7,160, 79, 93, 39,210,105,208,148,159,166, 16, 2,113,249, 9, 17, 34,254, 31,161,208,170,197, 48,204,130, 55,200,121,156, 16, +210, 29,192,211, 74,156,115, 29, 64,189, 55,156,183, 52, 0,105, 98, 41,191,209,123, 90,249,128,165, 97,201,116, 29, 76, 88, 52, +218,212,227,202, 60, 63,158,158, 5, 96,255, 58, 25, 44,224,176,123,147, 55,237,126, 18,157,243, 87, 20, 70,129,168,250, 75,124, +125,194,147,105, 23, 0,240,245,245,165, 79,159, 62, 5,165,244,181,156, 10, 31,166,208,123, 40,177,148, 67,105, 98, 27, 64,107, + 83,248, 34, 82,233, 55,192,159,135,134,159,166,209,111, 1,124, 91,165, 60, 87, 49,242,187,201,117, 43,153,158, 1, 42,142,206, + 47, 66,132,136,183, 83,108,253, 5,156,199,197, 59,251,246,161,188,128,165,140,120,123,222, 62, 60,121,242,132,188,174,200, 18, + 33, 66,132,136,183, 24,252,107,126, 74,213, 80,175,249, 17,241,150, 8,174,146,251, 68,161, 37, 66,132, 8, 17, 34, 68,136, 16, +241,134, 68, 86, 73,177, 69, 0,116, 44, 85,154, 87, 98, 54, 1, 33,164, 99,101, 19, 84, 17,191,200, 41,114,138,156, 34,167,200, + 41,114,138,156,111, 31,103, 69,220,111,221,108, 70, 90,204,201,249, 77,127, 0,116, 20, 57, 69, 78,145, 83,228, 20, 57, 69, 78, +145, 83,228,124,155, 63, 0, 70,151,181, 45, 14, 29,138, 16, 33, 66,132, 8, 17, 34, 68,252, 69, 16, 99, 3,137, 16, 33, 66,132, + 8, 17, 34, 68,188, 30, 42, 92, 84, 90,132, 8, 17, 34, 68,136, 16, 33, 66, 68, 21, 80,225,162,210, 34, 68,136, 16, 33, 66,132, + 8, 17, 34,170,134, 42, 45, 42, 45, 66,132, 8, 17, 34, 68,136, 16, 33,162, 98,148, 23, 25,158, 84,114,197, 19, 17, 34, 68,136, + 16, 33, 66,132, 8, 17,229,224, 79,145,225,131,131,131,105,241,111, 17, 34, 68,136, 16, 33, 66,132,136,191, 19,111,171, 22, 17, +135, 14, 69,136, 16, 33, 66,132, 8, 17, 34, 94, 3,165,249,104,137, 66, 75,132, 8, 17, 34, 68,136, 16, 33,226, 13,160, 60, 31, +173,194,128,165,237, 10, 76,117,237,196,219, 37, 66,132, 8, 17, 34, 68,136,248, 7,240, 86,106,145, 34,103,248,224,224, 96, 26, + 20, 20, 68,196,114, 22, 33, 66,132, 8, 17, 34, 68,252, 19,120, 27,181,136, 56,235, 80,132, 8, 17, 34, 68,136, 16, 33,226,117, +196, 84,177, 89,134, 37,183,197,181, 14, 69,136, 16, 33, 66,132, 8, 17, 34,222,144,224, 42,185,143,249,139, 47,216, 81,228, 20, + 57, 69, 78,145, 83,228, 20, 57, 69, 78,145,243,255,139,200, 42, 41,182,196, 89,135, 34, 68,136, 16, 33, 66,132, 8, 17,175, 1, + 83,102, 29,138, 16, 33, 66,132, 8, 17, 34, 68,136,168, 2, 8, 33,163, 9, 33, 61, 10,126,247, 40,110,213, 18, 45, 90, 34, 68, +136, 16, 33, 66,132, 8, 17,175, 1, 74,233, 70, 66,136,107,129,192, 10,166,148, 38,136, 66, 75,132, 8, 17, 34, 68,136, 16, 33, +226, 13,160,132, 95, 86, 16, 33,164,104, 56, 81, 20, 90, 34, 68,136, 16, 33, 66,132, 8, 17,175,129,242,124,180, 8,128,142,101, +156,116,182, 18, 74,174, 99, 21, 18,117, 86,228, 20, 57, 69, 78,145, 83,228, 20, 57, 69,206,255, 95,156, 21,113, 87, 70,127,252, + 91, 80, 90, 88,135, 34,241, 69, 41,253,203, 62, 0, 58,138,156, 34,167,200, 41,114,138,156, 34,167,200, 41,114,254,127,253,188, +241, 89,135,141, 9, 49, 19,141,136,111, 31, 8, 33,206,132, 16,103,241, 78,136, 16, 33, 66,132, 8, 17,166, 91,184,222,168,143, + 86, 0, 33,159,124, 18,232,184,190, 30, 33, 86, 15, 40, 85,151,119,172,147,147,211, 6,149, 74, 53, 84,173, 86,231, 17, 66,132, + 98,166, 54, 0, 40,190, 46,208,179,228,228,228,214, 21, 93, 91,161, 80,172,112,118,118,254, 36, 55, 55, 87, 77, 8,161,132, 16, + 16, 66, 10, 51,252,202, 55,207,243,177,169,169,169, 77,254,211,133, 8,176, 14,206,206, 55,164, 44,235, 94,217,115,121, 65,120, +145,148,152,248,110, 37, 42,204, 66, 66, 48,173,224,247, 18, 74,233,204,183,240,169, 96, 77, 57, 44, 16,176,140, 0, 6,241, 12, +243,153, 20, 88,163, 19,132,245, 5, 21,151,175,234,165,245, 55, 72, 77, 66,209,128, 16, 88, 83,138, 44, 74,112, 79,222,140, 70, +254, 67, 47,135,190, 82,169,180,151,149,149,149, 69, 90, 90,218, 5, 0,187, 1, 12,182,183,183,111,155,157,157,157,107, 52, 26, +143, 80, 74, 15, 86,133,187, 77, 67, 50, 93, 46,147,126,172, 53, 24, 23, 95,190, 75,127,105,215,152,216,115, 2, 22, 41,101,146, +214, 58, 61,183,228,210, 61,186,185,146,105, 37,249,143, 66,225,171,163,242,235,137,237, 55,177,220, 1,224,176,173,173,159,194, +209,234,156, 84,206,190,200, 76,202, 29,218, 63, 57,249,101,255,215, 40,247,127, 35, 28, 29, 29,135, 51, 12,243, 29,165, 20, 60, +207,207, 74, 75, 75,219,242,134,234,213, 44, 0, 54, 5,155,153,148,210,239, 94,147, 47, 26,128, 87,193,102, 12,165,212, 91,108, +218,171,124, 47,215, 29, 58,116,104,108,251,246,237,177,124,249,114,172, 91,183, 46, 42, 37, 37,101, 17,128,173,148, 82,253,223, +205,243, 54,226,141, 9,173,186,132,116, 31,222,165,249,134, 9, 3,187,147, 73,195,103,171, 43,120,152,127,238,218,181,235,135, + 91,183,110,149, 70, 68, 68,152,249,248,248,128, 97,152, 34, 33, 84,252,125, 89,173, 90, 53,161,162,107,179, 44,187,178, 79,159, + 62, 35,246,239,223,175,186,125,251,182,170, 78,157, 58, 69,124,130, 32,160,228,251,215,199,199,167, 92, 62,107,107,235, 91, 44, +203,122,148, 38,210,202,250,205,243,124,108, 90, 90, 90, 19, 19, 42, 99, 23, 0, 51, 76,184,165,139, 40,165,167,202, 59, 64,202, +178,238,241,241,241, 78,149, 45, 43, 79, 79, 79, 67, 37, 30, 30,103, 66, 48, 77, 16, 40, 3, 0, 12, 67,166, 43,149,202,245, 90, +173, 54,166,240,255,130, 50, 75,170, 76, 26,220,221,221,251, 81, 74,199, 0,160,132,144,141,113,113,113, 7, 42,115,190,149,149, +213, 45,185, 92,238, 33,145, 72, 72,105,229, 82,114,155,231,121,106, 48, 24, 98,211,211,211, 43, 45,176, 47, 0,164, 43,208,134, + 99,217, 73,246, 14, 14,173,111,159, 62,109, 30, 24, 24,200,176, 44, 59, 19,192,250,215,121,110,244, 55, 72, 77,222,136, 1, 26, +163,162,135,194,123,190,159, 46,122,126,132,153, 84,119, 76,127,131,236,251,187,197, 22, 33,100,216,176, 97,195, 38, 45, 94,188, +216, 65, 46,151, 51,123,247,238,245,155, 60,121,114,223,229,203,151, 59, 12, 28, 56,208, 82,175,215, 11,211,167, 79, 15, 32,132, + 56, 81, 74,215, 86,134,187, 69, 67,242,142,191,143,235,220, 9, 67,223,195,212,133,187, 39,180,170, 71, 82,205,204,101,235,250, +181,174,105, 83,183,186, 45,190,222,112,229,115, 0,155, 43,145, 86, 34,145, 72,222,117,115,115,243,213,106,181, 92, 65,231,141, + 22,123, 39,228,223, 95,189, 94,159,158,158,190,239,117,239,205, 84,165,178,121,115, 27,139, 51,243,134, 12, 51,203,206, 72,119, + 94, 25,124,244,254,126, 56,213,239, 15, 68,189, 77, 13, 2,195, 48,223,197,197,197,185, 82, 74,225,234,234,250, 29,128, 45,111, +136,218,166,240, 61, 76, 8,177,121, 3,124, 94,197,248,188,222, 64,221, 87, 74, 24,102,188, 92, 42,237,204,243,124,189,130, 58, +244, 64,111, 52,158,225, 4, 97, 13,165, 84,251, 22,235,128,105, 99,199,142,237,244,213, 87, 95,249, 76,155, 54, 13,211,166, 77, +171,182,105,211,166, 13,223,127,255,253,116, 66, 72,125, 74,105,238,223,204,243,159,183, 96,253, 37, 66, 43,128,144, 38, 29, 26, +212, 58, 48,113,248, 32, 8,251, 87, 16, 12,159, 93,174,200,122,183, 73,147,143,183,110,221, 10, 0, 24,218,171, 23, 58, 55,107, + 6, 75, 11,115,200,229,249,201, 33,148, 64, 38,149,161,247,228, 47, 76,201,220,146,190,125,251,126,176,127,255,126, 11, 0, 88, +183,110, 29,250,246,237, 11, 59, 59, 59,168, 84, 42,200,100, 50, 72,165,210, 87,190, 77, 16,110, 30,113,113,113, 78, 74,165,178, + 72,248, 9,130,240,202,167,216, 56, 53, 56,142,131,175,175,175,169,183,107, 70, 86, 86, 86,155,188,188,188,114,199,116,171, 87, +175, 14, 0,167, 76, 33,252,238,219,111, 32,112,121,144, 72, 0,142, 3,116, 6, 6, 66, 41,125,123, 55, 55, 55,140, 31, 63, 30, +175,179,144,120, 80, 80, 15, 66, 8,217,239,230,230,118, 32, 57, 57,217,135, 16,140,170,162,165,235,211, 39, 79,158, 88, 0,128, +159,159,223,120, 0,149, 18, 90, 18,137,196,227,254,253,251, 78, 10,133,162, 76,203,101, 49, 17, 12,131,193,128, 70,141, 26,113, +149,185,134, 51,224,149,206, 48,163, 26, 54,110, 60,122, 94,239,222,202, 27, 55,110, 40, 25,134, 1,199,113,248,225,135, 31, 56, + 74,169, 77, 0, 96, 21, 14,100,151, 83, 63,191, 2, 48,188,192, 74,187,153, 82,250,195, 43,255, 83, 52,208, 24, 21, 61,158,229, +246,110,214,188,218,116,132,135, 61,104, 86,195,226, 48, 44, 37,186, 72, 0,127,171,208,178,178,178,234,181,124,249,114,199,205, +155, 55,103, 63,126,252,216,176,126,253,122,199, 49, 99,198, 88, 26, 12, 6,140, 29, 59, 54,197,223,223, 95,182,124,249,114,199, +131, 7, 15,190, 7,160, 82, 66, 75, 66,240,205,224, 94,157,161, 53, 50, 48, 26, 57, 71, 87, 71,203,237, 19,135,181,147, 82,170, +199,182, 35,183, 97,228,132, 95, 42,105,201,122,183,127,255,254, 53,118,237,218, 37,121,244,232,145,164,118,237,218, 16, 4, 1, + 60,207,195,104, 52, 2, 0, 4, 65, 64,173, 90,181, 94,251,190,124, 12,248, 57, 56,219,157,121,183,123, 55, 51, 87,165, 2,118, + 25, 41, 24, 41,147, 88,110, 81,233,118, 0,104,241, 54, 53, 22,148, 82, 72, 36, 18,188,124,249, 18, 78, 78, 78,102,118,118,118, + 9, 0,230,167,167,167,111,124,139, 27,200,102,114,137,228,192,182, 95, 86,186, 52,111,209,130,117,118,117, 66,196,147, 24, 72, + 8,223,241,254,205,219,237, 62, 30, 55,101, 34, 33,164, 31,165,244,198,219,150,119,215,150,159,246,113,109,245,217, 58, 66, 5, +124,189,250,104,206,194, 37, 43, 84, 99, 71, 13, 99, 39, 79,158, 12, 79, 79, 79,159, 62,125,250, 44, 1, 48,174, 66,158,119, 62, +237,227,210, 98,194, 58, 80,138,121, 63, 29,205,249,126,201, 10,213,184, 42,240,252,199,159,157,141,127,153,208, 10, 32,164, 70, + 93, 79,167,211, 11,167,141,147,210, 19,191, 50,234,180,100,148, 37,101,156,156,156, 54,116,235,214,109,232,150, 45,255,235, 36, +189, 27, 24,136, 62,239,181,130,147,189, 53, 84,230,242,252,230, 72, 32,184,247,248,133, 73,130,192,211,211,115,236,129, 3, 7, + 44,138,139, 9,153, 76, 86,244, 41, 46,178, 10, 63, 37, 45, 31,165, 65,169, 84,226,236,217,179,144, 72, 36, 96, 89, 22, 18,137, +164,232, 83,124,155,101, 89, 56, 59, 87,202,117,105,145,181,181,117,253,156,156, 28,171,204,204, 76,120,121,121,101, 3,184, 95, +236,255,250, 41, 41, 41, 86,149, 33, 20,184, 60, 76, 30, 89, 7, 82,253, 53,232,165,205,160,145,180,196,149,155, 15,113,236,212, + 5,196,197, 39,162,213, 59, 13,241,209,144,254, 56,115,230, 12,120,158,175,108,229, 73, 34,132, 44,233,217,179,199,116,128,144, +142, 29, 59,102, 78,152, 48,129,121,244,232,209, 7,125,250,244, 14,124,242,228,105, 65, 79,152, 76, 35,132,172,172,132,101, 75, + 14, 0, 23, 47, 94, 4, 0, 69, 85,234,158, 66,161,192,213,171, 87, 81, 56, 76,204, 48, 12, 24,134, 1,203,178,248,237,169, 3, +242,244, 12,212, 73,161,248,172,135, 23,170, 87,175, 14,134,169,216, 37,177, 29,160,188, 2,244, 33, 82,233,100, 87, 55, 55,159, +182, 53,106,168,206,158, 61,203, 2,128,183,183, 55, 77, 72, 72,200, 60,114,228, 72,142, 4, 88,231, 77,233,214,242, 68,150,151, +151, 87, 75,134, 97,190, 43,188,231,132,144, 37, 62, 62, 62,115,139,202, 77, 16, 48,164,147,157,116,226,196, 73,178,230,237,242, + 59, 39,205,123,238, 66,246,179,133,117, 72,250, 87,214,127,247,139, 34, 59, 59,123, 79,173, 90,181,216,180,180,180, 43, 0,162, +141, 70,227,140,237,219,183, 59,141, 28, 57, 50,121,199,142, 29,139, 0,184, 45, 94,188,184, 93, 94, 94,222,222,202,240,182,110, + 64,186, 55,105, 24,248,142,151,167, 39, 46, 92,185, 1,153, 92,106, 51,126,120, 15, 88, 88, 72,176,116,115,176, 16, 29,155, 62, +225,210, 61,186,181, 18, 34,171, 89,255,254,253,125,118,237,218, 37, 7,128,251,247,239, 35, 49, 49, 17,142,142,142, 48, 51, 51, +131, 84, 42, 5,203,178,144, 74,165,111, 68,100, 89,123,218, 95, 63,124,248,136,153,157,157, 13, 86,127, 49, 17, 31, 37, 39,193, +198,210, 2,198,220, 60,159,183, 76,112,248,245,235,215, 79,201,243, 60,242,242,242, 16, 18, 18, 98,109,102,102,102,237,225,225, + 49, 15,128,201, 66,203,204,204, 44, 73,171,213, 58, 21,188, 71,147, 53, 26,141, 51,128,108,133, 66, 81,248,158,206, 45,184,158, + 73,195,137,101, 12, 19,198, 20,179,100,197,188, 70,158,155, 54,107, 90,255,236,193,253, 59, 45,178,114, 18, 97, 99,155, 12, 6, + 89,216,184,113, 13,204,204,172, 48,111,222, 87,146, 23, 29,223,115,239,210,189,223, 89, 66, 72,199,183, 78,108, 81,178,177, 99, +207,161,118,102, 42,203,130,182,196,136, 45,155, 38,130, 97, 24,204,157, 59, 23,117,235,214, 29, 77, 8,153, 77, 41, 77, 47,159, + 6, 27,235,181, 25,104, 39, 87,230, 23,177,192, 27,177,126,247,212,124,158,153, 99, 48,184,103,245,209,247,118,144,147,117,107, + 32, 39,191, 93,129, 70,202, 32, 6,205,104,114, 33, 71,112,112,112,219,160,160,160, 11,101,109,255, 7,158, 31, 87, 0, 65,165, +137, 47, 73,112,112, 48, 13, 10, 10, 34,197, 50,247,202,118,121,104, 72,136,131,179,181,234,236,186,249, 19, 45, 36,215,130, 89, + 77,204, 83,196,107,249,162, 39,167,228, 20, 77,149, 74, 53,116,203,150, 45,175,232, 48, 47,103, 39,200,100, 82, 72,101, 4, 54, +173,123,228, 63,113,151,142,129, 16, 90, 86,195,255, 10,103, 94, 94,158,246,238,221,187, 22,155, 55,111,134,147,147, 19,124,124, +124,160, 82,169,160, 84, 42, 95, 17, 87,197, 5, 87, 73,161, 85,146,179,240,127,137, 68, 2,134, 97,112,230,204, 25,112, 28,135, +254,253,251,255, 73,100, 73, 36,146, 82,133, 91, 89,211, 83, 41,165,167, 8, 33,247, 41,165,109, 10, 26,224,251,148,210,182,197, +174,221,197,209,209,113, 6,128, 69,166,114,178, 44, 5,171,189, 2,193, 99, 5, 36, 47, 39, 66, 47,109,128,243,151,111, 99,203, +134,229, 0, 0,159,218, 77, 49,160, 79,143, 34,107,156, 41,156,197,225,238,238,190, 59, 37, 37,181,219,123,239,189,135,140,140, + 12,227,252,249,243, 81,191,126,125,248,249,249,153, 84, 70,101, 9,184,251,247,239,123,106, 52, 26,147,134, 29, 75,227, 36,132, + 96,251,246,237,208,106,255,108,213,183,109,251, 61,166,246,245,198,136,207,182, 98,201,227,189, 88,187,118,109,185,121, 87, 1, +245,181,214,181, 86,202, 89,174,254,162,175, 62, 85,124,244,209, 71,236,136, 17, 35, 16, 19, 19,131,145, 35, 71,106,207,156, 57, +163, 79, 76, 72, 56, 34, 23,132,213,134, 87,133,113,153,156, 10,133, 98,219,169, 83,167,176,119,111,190, 46,137,136,136,128,175, +175,175,249, 43, 34, 57,125, 31,114,162, 87,227,250,111,143,208,188,231, 46, 92,255,109, 8,248,204, 96,105, 19, 95,100, 85,230, +126, 86,161,247,117,182,148,125,123, 1,236, 45,118,127,205,118,236,216,209, 27,192,209,130,255, 0,224,199,202,112,230, 19, 97, +196,192,190,189, 33,145, 89,226,209,211, 88,180,125,183, 17,156,157,156,112,255, 97, 36,162,227,210,147, 8,193,240,174, 45, 21, +139, 52, 26,253,236,139,119,233,207, 21,112, 18, 15, 15, 15,191,125,251,246,201,138, 89,160,139,158,113,150,101,139,182, 11,133, +119, 85,234,103,161,200,178,244,176,184,254,205,154,150,230,215, 31,236,128,175,119,119,216,118,239,129,159, 79,159,198,147,176, +112,173, 94,205,117,248,187,203,232,175,226, 36,132,248,245,237,219,247,202,206,157, 59,109, 94,190,124,137,139, 23, 47,194,199, +199, 7,106,181,186,194, 14,111, 73, 78,173, 86,235, 84,108, 88,175,208,181,225, 59,189, 94, 95, 88, 24,133, 15, 98,153,195,137, + 37, 56,255, 52, 76, 88, 21,159,172, 82,222,243,114,165, 76,182,239,240,193,221, 22,225,143, 46,162, 97,131,119, 96, 97, 29, 0, +129, 79, 68, 90,122, 46, 50,158,198,227,219,111,151, 96,222,252, 89, 56,122,104,191,133,127,157, 6, 7, 8, 33,181,138, 15, 35, +254,215,203, 29,132,142, 62,251,219,142,117,132, 10,208, 36, 61, 82, 72,243,158,171,134, 14,233,199, 14, 26, 52, 8, 71,143, 30, + 69, 88, 88,216,186,178, 68, 86,113, 78, 66, 49, 58,244,226,222,117,160, 20,154,228, 71, 10,153,230,185,106,216, 7, 3,216,143, + 6,119,198,181,223, 87,162,115,195,231,161,110, 78,232,147, 81, 48,120, 40, 97,145,166, 80,226, 15,179, 27,228, 90, 49,177, 21, + 2,128, 20, 19, 88, 33,248,159, 15,230,127, 1, 65, 5,209,225, 71,151,180,110, 73,170, 34,176, 0,192,143, 16, 11,149, 92,118, +125,203,188, 79,221, 84, 49, 97, 18, 93,232, 85,196,235, 4,186, 62,138, 19,174, 19, 98,118,155, 82, 77,201,115,212,106,117, 94, +100,100,164,217,240, 62,125,208, 34, 48, 16,174,246,246,168,229,225, 1, 51,133, 28,114,153,180,216,123,185, 82, 42,146,250,251, +251,163,103,207,158,144, 74,165, 80,169, 84,176,176,176,128, 92, 46, 47,213,154,101,106, 47,151, 82, 10,150,101, 17, 26, 26,138, +232,232,104,216,216,216,224,143, 63,254, 64,135, 14, 29,254,100,213, 42, 46,206, 42, 99,162, 47,217,240, 23, 10, 49,152, 56,100, + 88, 8,158, 39,200,165, 13,160,140,154, 0, 53,105, 4,157,142,131, 78,167,195,207,151, 13,184, 17,153, 7,131, 65, 15,157, 78, + 87,230, 53,203,185,183,140,155,155,219, 80, 95, 95,223,241, 67,134, 12, 49,202,229,114,228,229,229, 65,173, 86, 35, 44, 44,204, +216,173, 91,247,204,158, 61,123, 88, 7, 7, 7, 83, 74,177,164,146,126, 90,105,238,238,238,158, 5,195,179,105, 85,236, 65, 20, +137,152,146, 24,254, 99, 56, 36,108,126,153,172, 91,183, 14, 60,207,131, 82, 90,102, 33,105, 9, 57, 55,255,251,101,214,139, 87, +252, 2,107, 59,103, 92,184,112,129, 63,121,242,100, 14, 1, 34,158,132,133,253,248, 62,112,124, 31, 96,168, 76,250, 50, 50, 50, +204,124,124,124,224,225,225, 1, 65, 16, 96, 52, 26,139,172, 47,105,105,105,208,104, 52,176, 51,207, 68, 77,123, 15,112, 57, 33, + 72, 8,253, 26,174, 22,143,176,245,148,222,216,216, 15,247,254, 5,166,240, 95, 1,252,250,250, 68,112,119,114,241, 4, 67,141, +136, 79, 78, 67,239,160,206, 96,101, 22,120,241, 50, 21, 13, 2,106,184,126,240,126, 75, 87,150,112,152,182,104,215,120, 0, 63, + 87, 68,151,155,155,203, 63,122,244, 8,247,239,231,235, 93, 43, 43, 43,152,155,155,191,242,140, 51, 12,243, 90, 22,173, 66,145, +245,253,186, 14,230,140, 52, 15,217,252, 89,108,222,126, 27, 13,252,123, 96,253,245,155, 90, 62, 41,189,227, 82,173, 54,226, 63, + 61,108,228,234, 58, 70, 16,132,121,148,210,204,190,125,251, 58,239,218,181,203, 54, 46, 46, 14,183,111,223,198,220,185,115, 83, +120,158,231, 40,165,132, 82,250,245, 27,168, 75, 66, 49,129,245, 38,173, 8, 82,149, 18,159, 57, 88,145, 94, 18,198,202,135,203, +206,125,145,170,167, 71,212,156,240, 19,165,212, 88,222,185, 12,195,124,178,127,207, 58, 55, 7, 71, 1,237, 28,223, 67, 66,146, + 1,223,127, 49, 12,105,105, 57,248,121,211, 66, 0,114, 24, 56, 22,109,218,245,131,147,147, 59, 70,143, 26,237,178,110,195,250, + 79, 1, 44,125, 91, 12, 90, 9,127,172, 57, 68, 8, 57,235,232,232, 24,246,233,232,209,142, 62, 62, 31, 66,169, 84, 98,247,238, +221,216,181,122, 53,191, 2, 24,176,129,144,243, 99, 40, 61, 84, 46,207,181,255,241, 76, 28, 59,214,177, 78,157,177, 80, 40, 20, +248,253,228,175,208, 38,110,207, 9,106, 1,131, 90,139,160,106, 61,169, 93,212,111, 36, 93, 42,197, 83, 0,144, 42,145, 32, 5, +146, 75,208,253,215, 4, 86,145,140, 42,244,211, 42,252,126,237,200,240, 84, 42,127,176,105,210, 96,111,103,232,136,254,242,111, +136,211, 9,252,226, 39, 6,246, 78, 22,157, 26, 94,138,200, 42,168,216,130,151,151, 23,222,107,210, 4,125, 90,183,134, 68, 34, +129, 82, 46,131,165,210, 12,148,207,183,100, 21, 14, 29,150,211, 38,162, 52,235,147,189,189, 61,100, 50, 89,145,192, 50,213,154, + 85, 22,167, 32, 8,144, 72, 36,184,127,255, 62, 90,181,106, 5, 79, 79, 79,236,221,187, 23, 93,186,116,249,211, 80, 98,101, 69, + 86,161,208, 42, 62,140, 87,204, 73,190, 66, 39,248, 63,137, 4, 61, 65,170,190, 1, 8, 9, 4,199, 1, 60, 5,116, 90, 45, 40, + 5, 40, 5,140, 6, 61,180, 90,109,209, 53, 77, 25,146,117,117,117,245,170, 94,189,250,130,233,211,167,213,105,208,160, 33, 82, + 82, 82, 32, 8, 2,204,205,205,161, 86,171, 97,101,101,133, 22, 45, 90,188, 88,176, 96, 65, 2,165, 24, 93, 89,103,248, 55,240, +130, 5, 0,156, 62,125,250,149, 97,195,194, 79, 94, 66, 44, 70,124,190, 3,114, 73,254,208, 82,161, 15, 79,121,239,221,246,109, + 90,226,202,157, 8,238,147,105, 43,117,210,180,219,139, 92, 4, 97, 75, 44,144,244, 26,141, 11, 82, 83, 83,145,148,148,132, 94, +189,123, 99,215,206,157,136,138,138, 66, 64, 64, 0,218,183,111, 15, 39, 39, 39, 68, 69, 69,225,198, 37, 29,116, 25,233, 72,215, +223,134,202,178, 57, 14, 95,136,212,205, 89,171,143,252,167,222, 22,132,144, 94, 0,134, 89, 89, 89, 85, 87,171,213, 9, 28,199, +237, 3,176, 15,192, 0,137, 68, 50, 64,165, 82,185,102,103,103, 63, 71,254,108,162, 35, 21, 14, 37, 41,149,246, 10,165, 21, 4, + 78, 7,137, 68, 2, 79, 79, 31, 80, 94,143,140,108, 13,134, 15,234,137, 59,247, 31,226,228,249,107,156,209, 40,172, 50,229,182, +178, 44, 75,253,252,252,144,156,156, 12,169, 84, 10, 51, 51, 51, 88, 88, 88, 96,230,204,153, 88,189,122,117,145,200,170,170,208, +250, 24,240,179,242,178,184,246,221,154,124,145,149, 24,159,128,164, 88, 41, 28,237,157,177,106,245,138,188,140,168,196,230,191, + 0,255,105,145, 5, 0,130, 32,124, 29, 23, 23,231, 36,145, 72, 92, 56,142,195,203,151, 47,113,235,214, 45, 76,152, 48, 33, 41, + 45, 45,173, 29,165,180, 74,121, 84, 42,149,201,133,150, 44,165, 82,153, 12,148, 57,156,152, 89,204,146,149, 89, 14,101,169,195, +132,132,144, 26, 62, 30,150,103, 54, 45,159,236,213,180,121, 11, 70, 37,177,202,200,125,154,216,234,242,197, 11, 45, 38, 44,255, +249, 83, 66, 72,103, 74,233,179,178, 72, 21, 82,105,183,119, 90,182,148,128, 38, 65, 34,111,133, 37,139, 7, 33, 37, 53, 27, 25, +233, 57,144,201,204,161, 55,178,224, 5,130, 22,173, 90,227,215,173,123, 80,119,212, 72, 86, 46,149,118,122,155,132, 86, 1, 22, +254,244,211, 79, 94,254,254,254,216,178,101, 11,206,111,219,134,143,178,178,112,129, 97, 88,163, 84,234,112,220,104,220, 8,224, +144,169, 60,117,235,214,197, 47,191,252,130,237,219,183,199, 12,237,144,124, 96,242, 80, 56, 25, 12,232,122,251, 49,236,170,245, + 4,110, 63,134, 93, 99,127,212,226, 36,120, 74, 8, 94, 9, 7, 21, 28, 28,220,182,248,247,127, 9, 5,107, 27,150, 58,196, 46, + 1,208, 46, 56, 56,152, 22,255,174,136, 80,229,228, 55,118,251,160,247,188, 3,107,122, 17,227,222,149,120,153,199,233,103, 63, + 54,200,159,228,210,201,225,148,174, 40,167, 7, 65, 89,150,133,165,153, 25, 28,109,108,242,205,252, 12, 3, 8,128, 96, 4, 8, +159, 47, 0,168, 64, 80,153, 73,211,130, 32, 64, 46,151,151,234,248, 94, 89,223,172,226,156, 57, 57, 57,120,241,226, 5, 70,143, + 30, 13,149, 74, 5, 0, 72, 76, 76,132,183,183, 55, 36, 18, 9,226,226,226,240,251,239,191,163,122,245,234, 80, 40, 20,164,146, +133, 82,216,240,215, 39,132, 92, 0, 80, 63, 33, 33,193,202,213,213, 21,149,182,104, 9, 20,106, 29,129, 94,207,227,201,147, 39, +136,143,143,199,139,231, 79,209, 52, 47, 27, 20, 44, 40,165,149,178,104,121,120,120, 4,250,250,250,174, 95,180,104,145,204,195, +195, 3,148, 82,216,218,218, 64,173, 86, 35, 53, 53, 13, 1, 1, 1,240,244,244,196,146, 37, 75, 0, 96,215,223, 45,178, 74,212, +169, 34,161, 85, 92,112,125,254,190, 23,210,211, 45,192,178,255,155,125, 90,129,143,150, 12, 0,218,117,238, 43, 57,115,242,184, + 57, 7, 44, 72,100,217, 5,146,138,203,209,200, 11,130,170,172,255, 95,190,124, 9,169, 84,138,253,251,246, 33, 61, 41, 9, 13, + 26, 52, 64,179,102,205,240,244,233, 83,220,185,115, 7,246,246,246,112,244,120, 23, 23,158, 27, 16, 30,175,129,181,181, 53, 34, + 99,153,127, 44,100, 0, 33,100, 84,199,142, 29,231,254,248,227,143, 78, 46, 46, 46,210,148,148, 20,255, 53,107,214, 52, 88,179, +102,205,196, 79, 63,253,212,249,211, 79, 63,181,117,116,116,148, 36, 38, 38,250,125,241,197, 23,141, 9, 33,213, 41,165,203,202, +227, 52, 55,183,180, 99,101,230, 32, 68, 2, 27,107, 91, 72,228,230, 16, 56, 9,120, 1,176,178,118,196,149, 59,251,241,199,131, +156, 49,201,105,216,103,194,115, 67,237,237,237,193, 48, 12,236,237,237,255,100,169,158, 48, 97, 2, 54,109,218, 84, 52,140, 88, + 85,145,245,253,154, 14, 22,164, 64,100, 37,190,148,128,232,170,227,183, 67, 87, 51, 51,162, 18, 91,189, 13, 34,171,240, 29, 71, + 41,197,243,231,207,161, 86,171,113,233,210, 37,124,253,245,215, 41, 37, 69,150,179,179,243, 40, 43, 43,171,249,185,185,185, 75, + 18, 18, 18, 86, 86,196, 91, 32,162, 94,237, 12,150, 50,156,104,106,136,135,210,134, 9, 9, 33, 82, 79, 87,229,169, 59,151,118, +120, 91,211,123, 4,209,163,129, 39,217, 97,150,215,157,218,116,111, 26,196, 52, 90,251, 77,181,102, 99,102,158, 34,132,248,151, +101,217, 18,120,190,145,185,133, 37,128,100,220,190, 21, 82, 36,178,210,210,179,160, 51,176,208,233, 9,180, 6, 6,239,117,236, +138,213,235,183, 35, 46, 57, 29,133, 51, 18,223, 22, 16, 66,236, 2, 3, 3,199, 14, 24, 48, 0, 11, 22, 44,192,217, 31,127,212, +143, 35, 36, 91, 2,208, 96,158,135, 64, 41, 97, 76,112, 98, 47,201,179,116,233,210, 67, 0, 6, 47,154,128,119, 51,114, 49,220, +173, 39,181,171,214, 51,255,216,254,211, 41, 0,216,165,156,125,181,201, 12, 10, 10, 34,133, 35,107,149, 29, 97,251,183, 67, 18, + 20, 20,116, 33, 56, 56, 24,197,191,203, 59,193,202,165,118,247,153, 95, 78, 88,220,180, 75,107,146, 48,165, 19,210,179,181,220, + 87,225, 6,121,172,166,124,145, 85, 28, 95,174, 89,131, 59, 17,249,207,177,135,147, 19,166,125,240, 1, 40, 7,252, 17, 22,142, + 61,103,207, 98, 80,199,142, 48, 47,152,241,103,170,245,169, 52, 43, 86,113,107, 86,101,173, 78,153,153,153,216,183,111, 31,154, + 53,107, 6,149, 74, 5,137, 68,130,250,245,235,227,225,195,135,168, 81,163, 6, 8, 33, 56,124,248, 48,250,244,233,131,103,207, +158,225,221,119,223,181,168,138,208, 10, 15, 15,183,162,148,182, 41,180,126, 84, 21, 58,157, 14,143, 30, 61, 66,207,158, 61, 97, +107,107, 11,119,247, 93, 56,123,106, 7, 84,129, 31,129, 16, 84, 74,104,241, 60,255,113, 80, 80,144,140, 16, 2,141, 70, 13,165, +210, 12,230,230, 22,176,180,180,130,159,159, 63,226,227,227,209,165, 75, 23,125,100,100,228,218,132,132,132,189,149, 77,107, 64, + 64,128,121, 86, 86,214, 71,213,170, 85,147, 23,244,118, 3,106,214,172, 57, 53, 50, 50, 50,167,178, 86,173, 66,129, 69, 8, 1, +203,178, 69, 66, 75,194, 48,112,117,113, 42,218, 46,240, 79, 35,229,112,101,199,165,233, 20, 0,224,229,229,133,213, 27,142, 50, + 65, 65, 65,152, 56,113, 34,140, 70, 35,214,174,205,159,100, 55,100,200, 16, 24, 12, 6, 28, 56,144, 63, 73, 82, 34,145,148,107, + 54,185,117,235, 22,110,223,190, 13,163,209,136,172,172, 44,156, 56,113, 2, 23, 46, 94,196,238,195,231, 16,245,252, 41,234,251, +123, 99,228,200,143, 33,149, 74,177,117,235, 86,180,106,213,234, 31,125, 33, 72,165,210,161,155, 54,109,114,221,178,101, 75,230, +225,195,135,243,222,121,231, 29,197,138, 21, 43,156, 86,175, 94,237,168,215,235, 49,105,210,164,228,107,215,174,233,122,247,238, +109,190,113,227, 70,215,154, 53,107,118, 2,176,172,148,251,105, 14, 96, 16,128, 15,219, 53,179,150,100,230,104, 32,112,122, 60, +143,122,129,172, 92, 61, 4,222,128,152,216,120,228,106,121,164,165,231,160,126,163,206, 63,133,132,132,204, 34,132,124, 69, 41, + 61, 86, 81, 58,195,194,194,112,237,218, 53, 68, 69, 69,225,249,243,231,175,252, 55,106,212, 40,108,223,190,189,210, 22,173,210, + 69, 22, 11,162,171,129, 99,135,175,103, 38, 63, 77,120,107, 68, 86,193, 59,104,158,171,171,235, 60, 87, 87, 87,229,233,211,167, +173,171, 85,171, 6,142,227,244, 37, 45, 89,237,218,181,155,189,105,211, 38,215, 26, 53,106, 76, 0,176,242,223,144,118,134,193, +168, 37,235,198, 58, 88,202, 99,226,241,100, 89, 65, 44, 65, 22, 80,103, 3, 33, 59, 33,105, 57,231,197,132,222,211,109,103,108, + 89, 48, 10,229,204,144,141,124,246, 18,235,214,173,198,228, 73,195,241,235,207, 75, 32, 8, 18,232,140, 44,188,124,222,129,206, + 32,128, 48, 18, 52,104,212, 4,231, 67, 46, 65,202, 0,251,182,172,123,171, 76, 89,148,210,116, 66,200,218,195,135, 15,127, 54, +113,226, 68, 8,130, 32,159,191,110,157, 38, 37, 37,101, 33, 42, 17,255,170, 20,158, 62,235,214,173,139,152,177, 58,229,208,228, +161, 96,163,126, 35,233,183, 31,195,174,255,116,138,253,139, 9, 26,251, 35, 93, 85,122, 19,127,177,196,247,219, 33,180, 10,149, +100,241,239,210,208,216,175,198, 55,214,118,182, 31, 55,171,239,231, 48,109,226, 56,201,179, 68, 45, 14, 84,251, 32,247,247,109, +171,204, 19, 57,197, 79, 79,169,102, 69,101, 46,188,231,247,223,139,126,255,176,107, 87,169,255, 37,244,239,111,114,207,172, 44, + 43, 86,101, 45, 89, 0,160, 82,169,108, 58,117,234,132, 14, 29, 58,160, 95,191,126, 69, 62, 89, 13, 27, 54,196,238,221,187,209, +183,111, 95,220,189,123, 23,174,174,174,168, 93,187, 54,106,215,174,141,227,199,143, 87,182,130,131,231,121, 4, 6, 6, 22,206, + 58,172, 31, 27, 27,107, 85,213,130,212,233,116, 72, 75, 75,131,157,157, 29,228,114, 57,154, 55,111,134,207, 62,111, 14, 7,215, + 95, 16, 88,199, 31,121,121,121, 69,211,223, 77,104,108, 3,107,213,170,133,148,148, 20,164,164,164,192,209,209, 17,110,110,110, +112,113,113,193,178,101,203,232,202,149, 43, 79, 26, 12,134,181, 41, 41, 41,149,182,100,185,186,186,182,182,179,179,155,173,209, +104,228,197,122,184,114, 71, 71,199, 35,110,110,110, 11,227,227,227, 43,179,198, 38, 12, 6, 3, 8, 33, 8,126,238,134, 60, 61, + 65,118,236,109, 76,124,223,251, 21,225, 37,149, 74, 77,113,232,205, 27, 60,120,176,147,167,167, 7, 94, 70,134, 97,255,126,138, + 31,127,252,177,112, 86, 36, 34, 10, 58, 6,133,219,237,219,183,135,143,143, 15, 42, 19, 36, 83, 16, 4,220,191,127, 31,187,142, + 92,128,171,119, 29,196, 60,121,132, 59,199,127, 67, 53, 71, 59,212,109,212, 4, 70,163,241,181, 66,111,188, 9, 24,141,198,205, +190,190,190, 84,175,215, 95, 0,176,250,193,131, 7,195, 19, 18, 18, 38, 29, 61,122,212,109,192,128, 1,241,191,253,246,219, 10, + 0, 91, 30, 60,120, 48,246,219,111,191,237,192,113, 92,169,179, 5, 89,150,253,245,139, 47,190,104, 55, 96,192, 0, 34, 99,140, +250,211,167,182, 74, 56,206, 72,190,252,106, 51, 31,114,249, 2,195,113, 70,210,111,240, 23,194,241,223, 31, 48, 99, 62,255,129, +111,248, 78, 16, 66, 67, 67, 93,122,244,232,241, 45,128,114,133, 86,161,165,170, 44, 11, 37,203,178, 24, 62,124, 56,118,239,222, +109,114,190, 71, 2, 53,172,188, 45,174,125,191,166,163, 5,145,228, 22, 19, 89, 53,113,236,240,245,204,164, 39,241,111,149,200, + 2,128,212,212,212, 13, 0, 54,216,217,217, 37,153,155,155, 35, 39, 39,231, 79,245,143, 16,162,244,247,247, 87,202,229,114,116, +238,220,217,206,213,213, 53,130, 97,152,149,113,113,113,101, 42,142,210,134, 9, 75, 27, 78,124,157, 89,135,182,142,232,209,188, +117, 35,203,199,214, 11, 44,149, 18,237,221,106, 17, 74, 43, 2, 32, 75,231,252,252, 74,244,160,108,146,172,104,216,164,125, 99, + 88, 73,204,123,148, 37,180, 24,150,189,147,149,145,217, 45, 59, 71,143,203,127,132, 98,240,160, 90,208, 25, 8, 4,129, 65,110, +158, 14, 96,165, 96, 0, 12,249, 96, 24, 40,145, 32, 61, 41, 30, 44,203, 62,192,219,135,153, 99,199,142,237,246,213, 87, 95, 85, + 47,136,127,229, 93, 16,255,106, 26, 33,164, 30,173, 32,248,120, 57, 60,213,126,219, 61,103,202,145, 75,235,179,130, 90,104,158, + 52,246, 7, 0,216, 53,246, 71,186, 84,138,167, 18, 22,105,148, 66, 83,194,170,213,182,248,247,127,204, 58,248,138, 19,124,241, +109,147,124,180,124,107,120,116,109,219,180,201,231,179,190,154,101,249,240, 74, 8,102,124,179,154,250, 54,233,148,179,225,210, + 29,125,174,185, 79,183,156,148, 39,127,152,170, 47, 0,160,235,123,125, 81, 63,160,217,159,254,108,213, 62, 63,150,228,229,243, +183,144,148, 18,103,114, 99, 91, 32, 14, 74,245,201, 50,101, 74,127, 41,166,239,204,208,208, 80,167,216,216,216, 87, 28,223,125, +124,124, 64, 8,193,245,235,215,113,237,218, 53, 12, 30, 60, 24, 18,137, 4, 82,169, 20, 23, 46, 92,168,148, 53,166,152,117,233, + 62,165,180, 45, 33,164,139,135,135, 71,169,179, 13, 77,225,210,104, 52,200,202,202,194,169, 83,167, 80,171, 86, 45,124,255,253, +247,112,115,117,198,172, 89, 83, 32, 8, 2,178,179,179,193,243,188,169, 22, 45,161,208, 90, 36, 8, 2, 82, 82, 82, 80,189,122, +117,172, 89,179, 6, 43, 86,172,248, 54, 62, 62,254,104,101,211,232,229,229,101,195,243,252,151, 61,123,246,236,212,187,119,111, +116,233,210,229,149,255,119,238,220,105,121,224,192,129,133,158,158,158, 93, 13, 6,195,162,164,164,164, 20, 83,120,127,249, 37, + 63,252,146,234,157,121,152, 49,160, 26, 62, 28,191, 21,203,150, 29,132, 66,161,120,165,225, 93,176, 96, 65,185, 34, 70,160,212, + 87,150,122, 37,126,202,244,165, 78, 11, 23,158,197,217,179,201, 96, 24, 6,174,174,174, 96, 24, 6, 47, 94,188, 0,195, 48,240, +246,246, 6,195, 48,136,139,139, 43,244, 9,204,128,214,180, 88,134, 12,195, 64,171,213,226,101, 76, 20, 98, 35, 35, 96,145,157, + 8, 71, 43, 21, 50,194,238,163,254,200, 81, 69,241,159,254,225, 30,238,118, 0,219,139,237, 90, 74, 8,209, 19, 66,250, 1, 56, + 68, 41, 45,180,104,124, 91,240, 41, 21,239,188,243, 78,195,175,190,250, 74, 90, 24,110,195,205,235, 59,206, 96, 48, 8, 0,224, + 95,191,205, 43,106,255,233,211,167, 88,182,108, 25,242,242,242, 32, 51, 37,208, 93,129,104, 45,156, 97, 88,154, 8,171,140,200, + 2, 0,123,111,143,159,174,223,190,192,223,139, 92,175,121,240,248,132, 89, 66, 12, 3, 70,255,246,138,172,146,150, 45, 15, 15, +143,121,130, 32, 80, 74,233,156, 98,239, 86,133,151,151,215,165,211,167, 79,219,115, 28,135, 85,171, 86,217, 36, 38, 38,218,180, +105,211,102, 6,128, 50,133, 86,105,195,132,165, 13, 39,162,216,172, 67,133, 66, 97, 87,222,235,163,228,172, 67,158,135,159,149, +165, 13, 50, 16, 11,157,131,177, 97,166, 61,151,126, 38, 97,212, 93,183,232, 70, 1,230,188,177, 58,147,173,135,187,202, 6, 2, +165,126,101,118, 78,141,198, 19,119,111,223,233,236,229, 89,139, 61,122,236, 34,122,245, 25, 0,157,142,129,214, 72, 64, 88, 41, + 8, 43, 67,189,250,141, 80,187,110,125, 80, 0,183,110, 92,225,244, 70,227,153,183,169,236,221, 90,125, 62,216,173,213,103, 43, + 65, 5, 90, 74, 28,173,234,125,250,244, 89, 8,224,243,138,120,156,223,253,124,176, 75,139,124,158,226,113,180,190,248,108, 44, +194,110, 72,173, 47,222, 94, 44,235,242, 14,130, 83,206, 18,168,148,255,155,117, 40,101,170, 30,154,227,191, 34,184, 76, 18, 90, + 94, 94, 94, 54, 78, 22,170, 95, 62, 29,249,177,101,244,189,171, 72, 12,191,142, 63, 46, 70,100,236, 57,112, 48, 61, 47, 45,121, +100, 37, 68, 86,209, 48,159,189, 75, 53,248,212,249,179,208, 82, 90, 56, 2, 0,124,234, 52, 3,107,110, 93,217, 33,143, 63, 89, +179,170, 34,178,138,191,176, 75,139,161, 53,102,204, 24,108,218,180, 9, 45, 91,182,132,175,175,111,209,203,190,178, 86,179,146, +214,165,170,204, 54, 44,142,156,156, 28,120,123,123, 99,227,198,141,120,240,224, 1, 44, 45, 45, 49,120,240, 96,228,228,228, 20, + 9, 44, 83,157,225, 41,165, 79, 79,159, 62,221,116,224,192,129, 84, 42,149,146,204,204, 76,216,216,216, 96,205,154, 53,121, 9, + 9, 9,193, 85, 16, 89, 3,100, 50,217,148, 65,131, 6,177,254,254,254, 72, 74, 74,130,149,149,149,145, 16, 34, 5, 0, 27, 27, + 27,163,153,153, 25,198,142, 29,139, 6, 13, 26,180,158, 54,109, 90, 75,119,119,247, 53,113,113,113, 91,203,171, 75,132,144,162, + 6,117,228,202, 71,208,235,243,133,202,218,181,107, 81,224,235,246,191, 33,130,200, 72,192,132,153, 44, 22, 22, 22,240,245,245, + 45,181,236, 91,183,110,141, 91,183,110,229, 15, 77, 74, 36,112,114,114,194, 31,127,252, 97,210, 76,170,194, 64,144,161,161,161, +168,227,227,128, 7,103, 79,195, 65, 37, 69, 3, 55, 23,120,180,110,139,136,136,136,127,204,154, 85, 16,155,106, 28,128,142, 5, +117,112, 51,128, 49,197,182,215, 80, 74,127,170, 12, 39,199,113,148, 97, 24,242,242,229, 75,131, 74,165, 34,118,118,118, 18,133, + 66, 1,157, 78, 87, 36,184,158, 62,125,138, 99,199,142, 33, 54, 54, 22,118,118,118,140,181,181, 53, 12, 6, 67,134, 41,252,126, +126,126,112,113,113,121,197,241,125,228,200,145, 85, 18, 89,195,129,192, 77,223, 45,170,166, 96, 88,235, 58, 14, 93,241,252,209, + 11, 45,163,135,242,255,131,200, 2,128,140,140,140, 13, 0, 54, 20,110, 59, 58, 58,142, 96, 89,118,150,181,181,181,245,133, 11, + 23,108, 28, 29, 29,201,214,173, 91,141,115,230,204,201,100, 89, 54,131, 16,178,252,159, 23,135, 8, 79,205,138,244,150,218,186, + 9,247,180,244,202,164,151, 51,106,103, 72,107, 57,146,186,129,232,147,252,240,242, 8, 46,178, 69, 82, 66, 34, 67, 33,132,151, +243, 14,222, 60,227,171, 5, 95, 70, 60,186,227,165,180, 82, 98,204,216,175, 16,124,242, 60, 8, 35,197,165, 43,215,161, 55,240, + 72, 77,207,194,160, 33, 67,225,225,234,128,240,107,167, 82, 56, 65, 88,243,118,137,108, 97,117,231, 94, 35,108, 21,102,170,130, +123,194, 99,251,207, 83,192, 48, 43, 49,119,238, 92, 4, 6, 6,142, 39,132,124, 93, 81, 28, 45, 66,132,213,245,218, 14,177,149, + 41,242,121,168,192, 99,227,190, 25, 5,113,180, 38, 99,205,134, 3,245,234,250, 60,159, 95, 94, 28,173,183, 69,100, 21,255,174, + 80,104, 85,171, 86, 77, 97, 46,197,104, 59, 51,217,180, 79, 63,232,237,152, 28, 25,134,216,135,119,242,135, 23, 12, 26, 67, 66, + 68,184,175, 9, 23,237, 88, 34,126, 7, 45,111,232, 74,171, 53,162,178,156,133, 13,110, 73,107, 86,101, 68, 86,105,156,197,197, + 86,241,184, 89,158,158,158, 88,184,112, 97,133,113,180, 74,201,123,225,254, 46, 0,234, 23,138, 45,228, 59,195,119, 49,101,166, + 97, 89,156,142,142,142, 72, 75,203,143,144,208,174, 93, 59,180,107,247,191,249, 12, 6,131,161,200,138,101,105,105,249, 39,139, + 86,105,156,102,102,102, 51, 14, 30, 60,248,241,149, 43, 87, 6, 78,157, 58, 85,218,161, 67,135, 66, 49,167,166, 38,172,237, 86, +146,147,231,249,177,167, 78,157, 98, 5, 65,192,198,141, 27,113,235,214, 45,170, 82,169,102,171, 84,170,213,102,102,102,188, 70, +163, 25, 51,106,212,168,161,243,231,207,103, 90,183,110,141,171, 87,175, 50,213,171, 87, 31, 6, 96,107, 69,121,191,126,253, 58, + 24,134, 1,151, 30,131,241, 51,246,192,220, 76,130, 71,143, 30, 33, 61, 61,253, 79, 65, 76, 77,185,159,197, 45, 37,133,159,214, +173, 91, 23, 13, 67, 54,111,222, 28, 44,203,226,238,221,187,165, 14,195,150,224,164,246,246,246, 69,245, 67, 38,147,225,252,249, +243,248,230,155,111,224,101,103,131,140,135, 15,224,210,238, 61,116,250,120, 20, 6, 15, 30, 12,150,101, 97,103,103, 87,100,249, +173, 40,239,175,249, 66, 40,206,249,113,157, 58,117,134,133,135,135,123,212,171, 87,207, 53, 52, 52,180,125, 96, 96,160,247,131, + 7, 15, 10,183, 21, 48,193, 55,167, 56,231,205,155, 55,247,175, 94,189,122,236,240,225,195,101,130, 32,240,209,209,209, 70, 0, +196,197,197,133,189,121,243,166,112,244,232, 81,104, 52, 26,120,120,120, 48,238,238,238,228,204,153, 51,194,195,135, 15,175, 83, + 74,191, 50, 37,239, 60,207,191, 18,198,161,240,247,206,157, 59, 43,253,188, 87,171,237,247,125,135, 54,254,158,169,241,119,145, + 16, 23, 9, 62,203,209,112,236,240,111,186,202,136,172,191,161,140,254, 78,206, 5, 79,158, 60,113,215,233,116,144,203,229, 88, +187,118,173, 97,225,194,133,225,169,169,169,173,104, 41, 51,202, 75,114, 86,113,214, 97,122, 57,156,127,154,117,152,149,134,224, +195, 71,110, 54,181,232,179, 25,227,227, 83,138, 28, 27, 41, 33,118, 7,157, 3, 90,169,154,213,139, 99,142,207, 99,114,120,117, +112, 89,233,164,148,234, 9, 33, 3,250,244, 29,114,110,247,238, 93, 22,115,230,205,195, 31,215, 31, 32, 45, 51, 23, 2,101, 33, + 16,130, 89,179,230,192,197,193, 14,217,241, 79,212, 58,131,161, 79,201,165,120,254,235,229, 78, 8, 51,225,204,209,173, 43, 25, + 2, 33, 47,233,177,130,205,137, 84,125, 56,184,143,100,192,128, 1, 56,120,240, 32, 66, 67, 67,215,151, 37,178,138,115, 82,202, + 76,120,112, 97,207, 74, 2, 8,154,148,199, 10, 73,238,115,213,176, 15,250, 72, 6, 15, 30,140, 67,199,174, 96,247,111,207,215, +237, 58, 74,127,123,155, 59, 44, 85,138, 12,111, 41, 65,104,171,128, 26,238,173, 27,213, 85, 74,120, 13, 98, 31, 70, 34, 61, 79, +139, 51, 97,209,153, 12,101,170, 28, 91, 39,255, 5, 41, 67, 76,204,147, 63,253,151,153,169, 44,104,208, 43,183,172, 20,195, 48, +175, 88,179, 94,199,146, 85, 60,157,206,206,206,175, 44,231, 82,188,225, 46,244, 1,170, 66,104,135, 25, 49, 49, 49, 86, 49, 49, + 49,160,148,226,250,245,235, 86,205,155, 55,159,241, 58,214,172, 41, 83,166, 20, 89,173, 74,126,151,182,175, 34, 20, 56,165,175, +112,112,112,216, 55,109,218,180,241,205,155, 55,239, 60,111,222, 60, 2,128,173, 98, 5,228, 4, 65, 64, 72, 72, 8, 14, 30, 60, +200, 27, 12,134,209,241,241,241,197,125, 29, 86,185,185,185,157,233,219,183,239,214,199,143, 31,179,225,225,225, 48, 69,208,105, + 52, 26,248,250,250,130,227, 56, 44, 30,239,137,156,156,122,224, 56, 14, 60,207,195,220,220,252,149,117, 46, 77, 41, 39,134, 97, +192,243,252,159,132,214,245,235,215,193,178, 44, 90,181,106,133, 59,119,238, 20, 89,180, 42,178, 64, 25, 12,134, 24,103,103,103, +231, 5, 11, 22, 20,165, 43, 37, 37, 5,167, 79,159,198, 59,239,182, 64,192,232, 49,136,143,143,199,242,229,203,225,230,230,134, +239,191,255, 30,233,233,233,224, 56,238,239, 54,167,119, 11, 15, 15,247,248,224,131, 15,146, 31, 60,120,224,113,236,216, 49,155, + 30, 61,122,152, 15, 25, 50, 36,249,193,131, 7, 30,132,144, 22,168,164, 19, 52,207,243, 51, 9, 33, 39,191,255,254,251, 25,159, +127,254,121,243,225,195,135, 75,165, 82,169, 16, 23, 23,199,237,218,181,139,248,250,250, 50, 50,153,140,156, 58,117, 74,184,113, +227,198, 53,142,227, 22, 83, 74, 47, 85,198,226, 92, 92,100,177, 44,107,146,200, 42,137, 73, 78,138, 97,150, 76, 74,171,213,107, + 23, 50,254, 62, 30,134,109,187, 78,191,188,116,245,201, 51, 86,199, 77,250, 5,120,134,255,135, 96, 89,118,111,157, 58,117, 70, + 76,152, 48,193,172, 75,151, 46,138,249,243,231,103,229,228,228,148, 42,178,202,120, 46,255,242, 89,135, 0,126,158, 57,245,216, +164, 47,234,141,168,241,137, 75, 53,156,205, 75, 70,134,132,101,172,108, 24, 52,242,102,145,147,250,212,241,183,115, 91, 94,160, +130,184,108,148,210,155,132,144,142,117,235, 53, 60,176,248,251,197, 78,179,167, 79,147, 30, 56,118, 2,148, 51,224,250,133, 11, +176,144,241,244,225,237,179, 73, 58,131,190,247,219,184, 4, 79,252,229, 85,187, 9, 33, 71,236,236,236,238,125, 60,124,184,111, +157, 58, 67,160, 82,169,176,127,255,126,108, 95,181,138, 95, 1, 12,220, 64,200,157, 49,249, 49,245,202, 68,210,213, 34,158,187, +163, 62,254,216,175, 81,163, 79,160, 82,169,176,111,223, 62,108, 93,177,194,100,158,255,184, 53,171, 48, 50,124,112,193,183, 9, +113,180, 24,146,115,237, 73,116,238,245, 39,209,185, 16, 40, 21, 40,213, 49, 12, 94,230, 25, 12,223, 71, 60,139, 61, 85,197,132, + 64, 16, 4,124,251,221,132, 55,153,185, 34,241, 83,213, 41,221,165, 52, 18,177,197,215, 72,171,104, 65,105, 0, 48, 26,141,177, + 38,210, 47,242,242,250,211, 26,168,139,170,154,214,194,225, 64, 83, 69,150,169,113,180, 0, 32, 53, 53, 53, 1,192,108, 87, 87, +215,157,157, 59,119, 30, 5, 32,174,138,101,180,177,109,219,182,163, 1,176,132,144,245,113,113,113,127,114, 40,141,143,143,143, +112,119,119,255,193,199,199,167,104,161,233,242, 56, 5, 65,120, 94,175, 94, 61, 67,105,101, 81,214,182, 32, 8, 21,150, 81,102, +102, 38,154, 53,107,246,167, 53, 45, 41,165,136,142,142, 46,180, 56, 21,221,251,242, 4, 92,110,110,238,152,207, 62,251,108,131, + 84, 42,245, 2, 64, 10, 69, 46,207,243,236, 79, 63,253,164,228,121,158, 5, 64, 24,134,225,164, 82,169,246,224,193,131, 28,199, +113, 49, 58,157,110,204,223,252,142,216, 71,242,151, 98,200, 11, 15, 15,247, 47,176,100,197,134,134,134,222,221,189,123,183, 35, +128, 61, 85,172,155,151, 0, 92, 34,132,180, 94,187,118,237,204, 49, 99,198, 52, 27, 60,120,176,164, 93,187,118, 8, 14, 14,230, + 67, 66, 66,174,107, 52,154, 69,149, 17, 88, 5,101,153,229,233,233, 89, 36,184, 42,120,150,203,117,228,181,247, 86,172, 30, 58, +206, 77,185,113,209,233,220,212,120,253, 21, 99,174,254,171, 45, 64, 40,254, 31, 35, 49, 49,113, 42, 33,100,206,242,229,203,227, + 27, 52,104,160,144,201,100,122, 83, 69,214,223,104, 61,224, 8, 33,221,127,236,212,255, 72,219, 89,159,249,116,106,223, 74,229, + 89,205,201,253, 97,100, 18,158, 94, 13,206,187,247,219,119, 81, 84,151,209,139, 82,202,153,192,117,131, 16, 82,107,202,180, 41, +133,139, 74,215,239,112,230, 48,253,127,180,168,244,183, 63,252,240,131,111,157, 58,117,176,127,255,126,156,217,177, 3,131, 82, + 83,113,158,101, 89, 70, 38,179,255,205, 96, 88, 10,211, 2, 23,127,187,108,217, 50,191,192,192, 64,236,221,187, 23,167,182,110, +197,192,170,241,148,133,166, 0, 28, 11,155, 39, 0,143, 1, 52, 6, 96, 6, 64,135,252,165,157, 28,138, 29,159, 86,240, 95,225, +255, 23, 1,252,149,142,176, 21, 71,134, 47,137, 7, 79, 94, 52,126,211,169,208,104, 52,233,190,190,190,149,154,115,109, 52, 26, +203, 29,195,229, 56, 46,182, 70,141, 26, 38, 91, 45, 76, 17, 69,105,105,105, 77,254,194, 23,196,107,249, 98,189,210,136, 8, 66, +148,171,171,171, 80,216,232,151, 38,194, 74,219, 71,129, 23,149,185, 78, 66, 66,194, 99, 0, 95, 84, 53,157,113,113,113, 7, 96, +194,162,209,166, 30, 7, 0,233,233,233,111,124, 49, 95, 66,105,220,252,249,243, 43, 37,176, 65,105, 92, 57,101,253, 0, 64,243, +127,251, 91,182,112,233, 29, 66, 8, 19, 26, 26, 58,170, 96,120,251, 44,128,245, 5, 17,189, 95,151,191, 72,112,109,220,184,113, + 18,165, 20,217,217,217, 43, 42, 43,176,138,122,207, 73, 73,193,111, 42,239,233, 73,250,223,119,173,143,125, 79,147,105,152,180, + 41, 87,191, 21, 34, 10,203, 76,235,228,228,244,235,135, 31,126,248, 14,128, 45,175,203, 87,218,112,226, 27, 72,227, 11, 66, 72, +131,243, 83,190,249,248,188,141,101, 16,120,137, 63,244,204,111,208,167, 5, 3,248,197, 20,171,120,241,252, 34, 63, 76,201,178, +255, 79,229, 92, 16,255,106,210,136, 17, 35, 48,103,206, 28,156, 90,186,212, 48,142,144, 44, 41, 64, 79,230,119, 52, 25, 2, 76, + 55,149,103,216,176, 97,152, 51,103, 14,142, 47, 94, 92, 37,158, 10,224, 72, 8, 57, 6, 0, 51,102,204,248,106,225,194,133,182, + 51,103,206,172,191,104,209,162,239, 11,182,195, 10,255, 47, 40,211, 30, 51,103,206,172, 91,236,255, 28, 0, 55,255,226,251, 89, +106,100,248, 87,122,236,111,250, 3,160,163,200, 41,114,138,156, 34,167,200, 41,114,138,156, 34,231,107,126,130,242, 37, 75,217, +223,101,253, 46,182, 15,255,196, 71, 34,246,221, 68,136, 16, 33, 66,132, 8, 17,255, 81,171,220,177,215,249,255, 13,166,163,208, + 71,171,184,165,116, 35,144, 63,221,189, 99, 25,166,212,202, 4,142,236, 88, 5,179,239, 89,145, 83,228, 20, 57, 69, 78,145, 83, +228, 20, 57,255,127,113, 86,196, 93,198,249, 65,132,144, 99,148,210, 30,101,125, 23, 10,171,146,191,139,237,123, 99,110, 7,165, +228,101,116, 89, 62, 90,226,208,161,200, 41,114,138,156, 34,167,200, 41,114,138,156,255,137,161, 67, 0,116,198,140, 25, 51,255, +109, 67,135, 0, 92, 1,140, 46,254, 49, 97,232,112, 63, 27, 23, 7, 43,185, 92, 37, 3, 0,189, 94,109,112,119, 71, 54,208,255, + 31, 91,240, 86,196,127,214,180,235, 92, 32,234,147,222,228,177, 34, 68,136, 16, 33,226,255, 13, 82, 10, 45, 85, 0, 82, 0,144, +130,109,125,193,119, 74, 65,219, 81,242,247, 43,255,255, 85,160,148, 38, 0, 40,117,182,188,164, 44,145,149,154,170,114,144, 72, + 50,252,120, 94, 91, 27, 0, 36, 18,230, 81,106,170,109,132,131,195,254,212,170,136, 45, 71,103,231,219, 82,150,117, 55,229, 88, + 35,207,199,165, 38, 37,189, 18, 58,158, 2,255,121,129,103,170,136,120, 29,177,241,119, 8, 21, 71, 71, 71,103,103,103,231,247, +173,172,172,222,205,204,204,188,145,146,146,114,168,172,117, 15, 9, 33, 11, 9,193,180,130,223, 75, 40,165, 51,203, 73,187,201, +199,150,114,174,175, 74,165, 26, 79, 8, 9, 44,200,127,168, 90,173, 94, 75, 41,125,242,255, 80,216,154, 1,232, 45,145, 72,134, + 57, 56, 56, 52, 75, 76, 76,156, 79, 41, 93, 94, 69, 46, 9,128, 41, 54, 54, 54,131,109,108,108,170,167,167,167, 63,203,206,206, +222, 11, 96, 25,165,180,194,169,210, 95, 79,116,123,183, 93,151,118,179, 67, 78,133,124, 59,111,101,252,213, 63,253, 63,213,205, +190,115,167,150,115, 66,126,187,178, 96,230,234,184,244, 74,166,141, 1, 80, 24, 52, 79, 40,232,181,210, 55,124, 47,165, 0,122, + 2,104, 7, 32, 4,192,111,166,228,187, 12,174,119, 0,124, 85,144,230,101,148,210,243,255,242,122,100,238,236,236,188, 24, 64, + 79,137, 68, 18, 30, 23, 23, 55,154, 82, 26,251, 15,167, 73,130,252,105,254,129,200, 15,195,113,211,148, 16, 14,166,192,193,193, +161,135, 68, 34, 25, 95, 16,218,101,109,106,106,234,177,127,107,217, 40, 20,138, 21, 46, 46, 46,159,104, 52, 26, 53, 33,132, 22, +143,247,200,113, 92,108, 74, 74, 74,147,183,240,213,118,243, 95,254,188,140, 46, 69,124,149, 29, 71, 43, 46, 14, 86, 18, 73,134, + 95,114,226,131, 65,241, 9,247, 7, 2,128,155,107,253,189, 78, 46,245,246,196,197,201, 13, 77, 59,245,181,144,170, 36,107, 89, + 86,218, 80,171,215, 57, 72, 37,210, 84, 3,103,188,203,232,233,248,132, 71, 7, 75, 13,182, 40,101, 89,247,168,136,243, 78,156, + 33, 29, 82,165, 27,164,102, 94,101, 38,216,205,205,173, 74, 25,181,179,171,105,105, 80, 40, 39, 73,165,108, 39,129,114,129, 84, + 0, 24, 34, 13,229,120,227, 57,153, 78,247, 99,122,122,100, 78, 85,111, 98,109, 7,226, 66,129,193, 32,232, 4,138, 51, 4,216, +253, 40,149, 38, 86,162, 16, 76, 18, 17,175, 41, 54,138,159,187,156, 82, 58,245, 77, 87, 38, 15, 15, 15,219,126,253,250,173,248, +230,155,111,204, 44, 44, 44, 72, 76, 76, 76,151,233,211,167,183,241,240,240,248, 34, 54, 54, 54,190,164,232, 35, 4,211, 4,129, + 50, 0,192, 48,100,186,179,179,179,138,101,217, 63,197, 54,226,121, 94, 69, 8, 38, 8, 2, 37, 5,199, 78, 35,132,172, 52, 69, + 48,154,153,153, 13,105,214,188,197, 23,139,127, 88,102,225,236,228,100,206,241,130,225, 69,116,148,106,246,140,169,205,205,204, +204, 86,106, 52,154, 93, 85,120,104, 8,203,178,131, 20, 10, 69, 15, 0,117, 10,118, 63,212,233,116,199,120,158,223, 99,106,131, +238,226,226,114,145,101,217,106,149,185, 54,207,243, 49,137,137,137,173,170,248,176, 15,240,242,242,250,165,109,219,182,170,102, +205,154, 65, 46,151, 99,206,156, 57, 83, 0, 44, 55, 69, 80,169, 84,170, 65,230,230,230, 53,114,115,115, 35, 53, 26,205, 1,185, + 92,222,113,229,202,149,158, 45, 91,182,180, 76, 74, 74, 34, 44,203, 58, 31, 59,118,236,163, 85,171, 86,117, 33,132,116,168,168, +145,203,138,164,179, 21, 61,235,180,206,138, 60, 63, 27, 64,183,146,255,115, 90,229, 48,202,122,246,208,208, 59, 47, 81,137,169, +245,132, 16, 70, 42,149,174,116,113,113, 25,161,213,106,181,200,143,189, 70,157,157,157,139, 26, 28, 0,208,235,245, 25, 25, 25, + 25,254, 85,184,143,254, 0, 70,218,216,216,140,248,242,203, 47,109,187,117,235,134, 29, 59,118,124,186,105,211,166, 12, 66,200, +175, 0,126,166,148, 62,174, 36,237,180,196,196,196,238, 82,169,148,120,122,122,178, 0,206, 87, 34, 61,126, 0,102, 21, 52, 54, +107, 41,165, 60, 33,164, 61,144,255,188, 3, 88, 82, 40,220, 88,150, 93,235,239,239,255,254,195,135, 15,215, 81, 74,191,173,234, +179,238,226,226,178, 97,205,154, 53, 3,123,245,234,197,166,164,164,184, 55,104,208, 96, 39,128,214,111,160, 65,250, 88,161, 80, + 76,174, 95,191,126,192,227,199,143, 35,178,179,179,151, 21,220, 79, 90,206, 57, 30, 0, 58,218,216,216,116,152, 53,107,150, 69, +143, 30, 61,176,113,227,198,238,155, 54,109,202, 37,132,156, 3,112,246,117, 69,160, 68, 34, 25, 31, 27, 27,235, 64, 41,133,171, +171,235,120, 84,176,184,249, 63, 5,150,101, 87, 14, 26, 52,104,196,206,157, 59, 85, 81, 81, 81, 42,119,119,247,162,224,217,132, +144, 42,183,159, 34, 94,219,162,181,177, 80,112,153, 20, 71, 75, 46, 87,201,120, 94, 91, 59, 62,225,254,192, 54,109,127,178, 6, +128,139, 23, 62, 27,232,228, 82, 55, 84, 46, 87, 69, 40,172,148, 7,251,246,236,216,176,127,143,182,196,195,213, 9,177, 9,201, +206, 63,239, 62,213,245,216,169,243, 7,145, 31, 64,172, 84,112,134,116,152, 25,206,226,241,229, 85,112,104, 23,143,213,199, 99, +113,245,222, 11,168,179, 82, 81,205,197, 12, 63, 76,234, 12, 23, 91, 85,149, 50,105,225,236,215,158, 81,170,246,124, 48,228, 67, +235,247,123,215,145,122,187,184,128, 82, 5, 34, 34,115, 91,156, 56,125,190,233,129,125,187,198, 91, 56,251, 13,202, 77,138, 48, +249,229,214,216,141,152,229, 25,208, 91,194,146,143, 90, 55,175,219, 97, 72,247,214, 76, 64,157, 90, 8, 15,123,216,249,200,239, +215,127, 8,112,102,206,113, 60,221,102, 46,195,225,219,241,101, 7,244, 43, 77,112,116,234,212,169,181, 66,161, 48, 20, 63, 78, +167,211,201, 8,193, 59, 85, 17, 27,133,215,208,235,117,140, 84, 42, 7,195,144, 47,234,215,175, 95, 39, 53, 53,245, 60, 33,228, +151,184,184,202, 89, 11, 62, 39, 68,158, 33,145, 52,102, 20, 10, 87, 94,175,183, 7, 0, 34,151,103,120,216,218,214,155,245,213, + 87, 22, 44,203, 10,105,105,105, 80,171,213,100,212,168, 81,202,200,200,200,190, 0, 86, 85,144, 70,108,218,180,201,207,213,213, + 85, 95,242,191,132,132, 4,121,175, 94,239, 87,229,165,237,247,206,187, 45, 39,159, 58,117,178, 78,118,122,134,118,211,242, 13, +183,141, 74,149,174,122, 29,127,233,218,141, 91,173, 71,143, 24,250, 25, 33,228, 46,165, 52,162, 18,156, 94,102,102,102, 7,151, + 46, 93, 26,216,190,125,123,169,147,147, 19,146,146,146,240,240,225,195,192,223,127,255,189,247,214,173, 91,167, 16, 66,250, 82, + 74, 77,137,224,238,123,110,219, 47, 78,230,118,246,224,141, 70,184,213,111, 84, 20,223,236,233,239,167,193, 25, 12, 16,140, 70, +212,233,209, 59,223, 44, 35, 8, 8, 8, 8,168, 82,212, 93, 66,136, 91,221,186,117,183,127,255,253,247, 50,157, 78,135,235,215, +175,227,252,249,243, 66, 66, 66,194,162,138, 68, 22, 33,228,244,188,121,243, 60, 90,181,106,101,153,154,154, 10,158,231, 29, 14, + 31, 62, 60,190, 81,163, 70, 86,158,158,158,242,109,219,182, 33, 55, 55, 23, 28,199,217,213,168, 81,195,110,200,144, 33,250,109, +219,182, 77, 1,176,184, 44, 75, 86,118, 36,157,157, 72,106,116,245,111, 60, 12,137,228,100,215, 47,186,185,158,176,170, 73,138, + 44, 91,221,106,214,180,172, 81,219,124,186,133, 85, 61,187,236,184,179,211,187,213,172,185,233, 68,100,197,157, 33, 66, 8,195, + 48,204,202,190,125,251,126,176,123,247,110,213,195,135, 15, 85,117,234,212,129, 32, 8, 69, 17,248, 11, 3,206,250,250,250, 86, +229, 62, 46, 26, 59,118,236,244,129, 3, 7,162,126,253,250, 69, 65, 81,231,206,157,139,233,211,167,219, 94,188,120,113,202,174, + 93,187,166, 16, 66, 22, 83, 74,103, 84,166, 45, 47,222, 94, 86, 50, 89, 95, 63,127,254,124,192,193,131, 7,135, 78,155, 54,205, + 23,192, 4, 0,115,210,210,210,218, 2,128,189,189,189, 28,192,121, 66,200,199, 95,126,249,229,184, 25, 51,102,160,123,247,238, +115, 8, 33,223, 85,197,202, 71, 8, 97, 29, 28, 28,186,247,234,213,139, 53, 26,141, 48, 55, 55,135,209,104,172,249,154, 2,139, + 0, 88, 51,102,204,152,113, 99,199,142,133,173,173, 45,140, 70,163,223,238,221,187, 55,205,153, 51,231, 93, 66,200,200,210,210, + 74, 8, 25, 54,110,220,184,126, 31,126,248, 33,154, 52,105, 2,137, 36,255, 54, 46, 93,186, 20, 11, 22, 44,176, 56,125,250,116, +239,109,219,182,245, 38,132, 28,160,148, 86, 57, 22,154, 32, 8,144, 72, 36,120,249,242, 37,156,156,156, 20,118,118,118,167, 8, + 33, 27,211,210,210, 14,253,139,172, 38, 75, 6, 13, 26,244,193,206,157, 59, 45, 0,224,135, 31,126,192,228,201,147,225,236,236, + 12, 11, 11, 11, 81,237,252, 75, 44, 90, 37,227,104, 85, 41,188,131, 90,173,110, 52,243,243,143,192, 48,249,189,198, 90,213,189, +176,240,171,209,228,200,177, 83,141,202, 59, 79,170,116,195,227,203,171,160,240,156, 4,157,145,195,181,123,207,113,230,135, 46, + 0, 0,191,110,179,160, 51,116, 40, 84,134,118,114, 51,179, 37,122,158,255, 3, 46, 46,215, 17, 29,157, 82,145,200,114,116,113, + 62,182,126,253, 98,179,192,154,254, 48,112, 70,196, 37,199,129, 16, 5, 60,220, 45,241,241,176,110,210,182,109,221, 28,190,254, +122, 67,176,185,163, 95,159,188,148,136, 10, 3,134,250, 59,146, 45,173, 27,249, 14, 28, 18,212, 74, 81, 47,176, 46,100, 10,179, +255, 9,176, 38, 77,208,184, 73, 19,102, 70,110, 78,167, 27, 55,111,119,218,127,250,154,206,223,145,236,125,156, 66,135,151, 87, + 14,197, 5,199,196,137, 19, 81,216,251, 46, 68, 82, 82, 18,126,255,253, 92,169,231,152, 90,214,197,175,241,221,119,223, 89,102, +100,100,116,219,188,121,243,123,174,174,174,223, 37, 36, 36, 92, 54,133,228, 35, 66,170, 65,161,232, 48, 98,217, 50,161,225,251, +239,179, 54, 46, 46,140,192,243, 36,254,217, 51,251,229,171, 86,181, 75,127,250,212, 44,207,206, 46, 61, 67,163, 81, 71, 68, 68, + 64,169, 84, 18,137, 68,210,180, 20,133,159, 68, 8, 89,194, 48,100, 58, 33, 4, 10,133, 50, 98,236,216,177,119, 10,254,174,246, +219,111,191,169,122,246,236,169, 6, 16,149,111, 14, 87,186,179, 44,227,151,239, 64,136, 37,166, 8, 76,115,115,243,207,191,253, +126,177,121,118,122,166,198,144,151,103,116,180,178, 32,196,194,146,205,206,202,201,137, 75, 72,209,205,154,191,128, 29,243,241, +135,159, 3, 24,111,170,200,106,208,160,193,141,131, 7, 15, 58,217,219,219, 35, 51, 51, 19,105,105,105,184,113,227, 6, 4, 65, + 64,223,190,125, 21, 45,154, 55,107,244,213,172,217, 87, 9, 33,239,154, 34,182,204,237, 28,240, 67,171,134,249,141,117, 84, 90, + 81,249,108, 28,208,163,232,152, 5,177, 89, 0, 0,165, 82,249, 58, 75, 72,189,219,161, 67, 7, 25, 0,140, 28, 57, 50, 59, 39, + 39,103, 33,128,157,180,156,160,170, 5,152, 50,123,246,108,247,234,213,171,123,239,220,185, 19,185,185,185, 0,224, 84,189,122, +117,248,251,251,243, 33, 33, 33,240,243,243,131,165,165, 37, 46, 94,188,136,107,215,174,161,113,227,198,150, 50,153,108, 96, 89, + 66,171, 93,151,118,179, 21, 61,235,180,246,111, 60, 12, 22, 86,174,216,180,107, 15, 30,223,222,218, 90,103,120, 56,123,225, 4, +247, 15, 53, 84, 49,220,195,215,114, 70,181, 38,109,237,107,213,125, 31,222,141,239, 56,104,249, 75,207,231,124, 90, 99,145, 68, +169,221, 58,111,105,124, 90, 89, 34, 11,192, 15,125,251,246, 29,176,123,247,110, 27, 0,120,240,224, 1,146,146,146,224,232,232, + 8,165, 82, 9,169, 84, 90,180, 62,105, 21, 49,124,237,218,181, 69,162,141,227,184,162, 85, 0, 84, 42, 21,218,180,105,131,134, + 13, 27,226,208,161, 67,195, 1,204, 40, 37,141,173,154, 55,111,190,195,219,219,219,179,248,254,160,160, 32, 12, 30, 60, 24, 0, +208,182,109,219, 14,253,251,247,167,133,130, 48, 33, 33, 33,247,230,205,155,157, 40,165,215, 75, 75, 16,195, 48,154,184,184, 56, +124,249,229,151,120,241,226,197,167,132,144,104, 0, 74,185, 92, 94,212, 63, 38,132,248,213,173, 91,119,229,228,201,147, 17, 25, + 25,137,240,240,240, 27, 85, 29, 74,165,148,242, 62, 62, 62, 79,141, 70, 99, 19,142,227,160,209,104,208,167, 79, 31,165,157,157, + 93, 18,203,178,143, 82, 83, 83,135, 22,248,164,152,218, 8, 41, 1, 44, 27, 59,118,236,184,105,211,166,225,220,185,115, 56,114, +228, 8, 62,252,240, 67, 76,154, 52, 9, 22, 22, 22, 35, 38, 77,154,116, 21,249, 11,154,151, 68,135,181,107,215,130,231,249, 63, + 61, 27, 74,165, 18,173, 90,181, 66, 64, 64, 0,142, 28, 57,210, 1,197,214, 71,173,100, 35,233,221,183,111, 95,185, 32, 8,200, +203,203, 67, 72, 72,136,133,153,153,153,133,135,135,199, 40, 0,255, 26,161,229,237,237, 61,118,247,238,221, 22,197, 71,127, 20, + 10, 5,138,213, 3, 17,255,176, 69,171,162, 30, 86, 17,244,122,181, 65, 34, 97, 30,185,185,214,223,123,241,194,103, 69, 67,135, + 0,243, 72,175, 87, 27, 0,128, 23, 40,178,213, 28,204, 20, 12,162, 18,115, 16,246, 44,181,180, 11,191, 50, 69, 83,106,230, 5, + 69,179, 40, 80, 74,161, 55,240,208,101, 37, 98, 97,176, 26, 15, 99,181,208,231,101, 64,111,200,119,195,114,112,112,144,156, 58, +117, 98,242,217,179,191,143,251,245,215, 95,217, 88,107,235,112,100,101, 53, 42,141,211,206,174,166,165,196,220,108,239,186,245, +115,204, 40,251, 12, 17, 49,121,168,229,209, 12, 14, 54,158, 72, 76,205,195, 31,225,199,241,232,201, 49, 84,119,245,198,164,207, +187, 42,191,253,126,231, 30, 91,219,234, 94, 25, 25,207,179,203, 74,103, 1,134,109, 56, 25, 1, 46,253, 25,248,180, 72,240, 57, +241,127, 22,120,142, 94,104,220,222, 29,142,158, 53, 21,195, 39, 45, 24, 6, 96,120,105,156,148,210, 36,150,101,215, 49, 12, 25, + 71, 8, 65,253,250, 13, 98,151, 45, 91,102, 40,229,154,134,250,245, 27,196,178, 44,227,145,255, 98,103,214, 10, 2,159, 84, 65, + 58, 95, 17, 53,114,185, 98, 90,190,217,223,245,101,112,112,176, 97,192,128, 1, 88,186,116,169,124,250,244,233,179, 60, 60, 60, + 70,150, 28,222, 43,201,217,151, 16, 47,247,154, 53, 59,127,247,199, 31, 84,106, 52,146,244, 27, 55,178, 51, 19, 18,184,196,156, + 28,249,190, 71,143,186,127, 50,117,170,220,211,211, 19,151,143, 29,179, 79,201,203,163,153, 58,157, 38, 51, 51,147,114, 28,119, +163,140,188,207,116,118,118, 86,109,218,180,201,111,236,216,177,119,226,227,227,103, 22,188, 32, 22, 2, 8, 0, 16, 85,108, 31, +214,175,223, 19, 55,106,212,168,136,164,164,164,153,229,165,179, 24,234, 58, 57, 58,169,118,109,216,118,223,206,210,140,113,244, +112, 99,164, 54, 54, 18, 78,110, 38, 19, 0, 77,117,207,154,230, 0,234,150,113,207,206,150,236,113,155,153,153, 29, 60,122,244, +168,147, 84, 42, 5,207,243,112,116,116,196,139, 23, 47,144,153,153,137,156,156, 28, 60,127,244, 16, 62,158,158,248,122,198,116, +215, 9,211,103, 28, 36,132, 52, 41,222,152,149,186, 0,178,209,240, 39,203, 94, 25, 11,145,191,242,109, 74,185,151,192,139,152, +152, 24, 88, 88, 88, 32, 48, 48,208,226,143, 63,254,184, 84,150,200, 42,177, 8,240,192,150, 45, 91, 90,238,218,181, 11,141, 27, + 55,134,181,181, 53, 66, 66, 66,240,224,193, 3, 24, 12, 6, 38, 55, 55, 23,150,150,150, 88,180,104, 17,188,189,189,145,157,157, +141,152,152, 24,123,169, 84,234, 80, 22,103,200,169,144,111,179, 34,207,207, 78, 36, 39,187,110,218,181, 7,163,134, 12,130, 11, +125,118,201,186, 38,249,182,115,207,150,115, 41,235,217,195,220,178,190,173,111, 96, 79,200,228, 22,152, 48,109, 1, 34, 66,127, +179, 85,231,220,255,148,240, 47, 61, 1, 76, 44,201, 89, 96, 17, 97, 60, 61, 61, 63,217,183,111,159,101,177,161,148,162, 53, 15, +139, 47, 2, 95,214,130,239,166,220, 79, 66, 8, 94,188,120, 1, 39, 39, 39, 88, 88, 88, 20, 45, 32,254,240,225, 67, 92,187,118, + 13,133,171, 81,148,193, 57,244,236,217,179,158,230,230,230, 37,143, 65,106,106, 42, 56,142,131, 74,165, 2,207,243, 48, 24, 12, + 48, 26,141,208,106,181, 22, 1, 1, 1,227, 1, 92, 47,141, 83, 16,132, 47, 6, 14, 28,216,242,250,245,235, 53, 86,173, 90, 5, +189, 94,255, 67, 98, 98, 34,250,245,235, 7, 65, 16,208,161, 67,135,119, 40,165,143,103,205,154, 5, 0,152, 60,121,178, 49, 47, + 47,111,108, 85,242, 94,144,255,128,254,253,251,215, 56,119,238, 28, 90,183,110, 13,157, 78,135,165, 75,151, 90,173, 95,191,222, +106,219,182,109,142,211,166, 77,251, 5, 64,151,242, 56, 11,202,235, 7, 23, 23,151,113, 67,134, 12, 49, 43, 88,195, 20, 91,183, +110,197,215, 95,127,189, 27,192,172, 19, 39, 78,204, 59,114,228,200,176, 79, 62,249, 4, 95,127,253,245,164, 66,161, 85, 26,231, +243,231,207,225,232,232, 8, 43, 43,171,252,151,165,193,128,187,119,239,226,204,153, 51,168, 93,187,182, 41, 13,225,217,114, 68, +214, 47,187,118,237,178,124,249,242, 37, 46, 94,188, 8, 31, 31, 31,168,213,234, 10,215,134,125,211,139, 63, 87,196,169,209,104, +180, 49, 49, 49, 22,139, 23, 47,134,171,171, 43,188,189,189,161, 84, 42, 65, 8,129,209,104, 44,115,121, 53, 83,210,217,174, 29, +145,164,198,217,246,178,182,177,253,148, 82, 42,201,202,202,216, 96, 64,230,254,200, 72,170,255,187,242,254, 31,183,104, 53,162, +148,222, 41,190,230, 97, 97,103, 68, 2, 0,193,193,193, 52, 40, 40,136, 20,126,187,187, 35, 59, 53,213, 54,194,201,165,222, 30, + 39,151,186, 5,235,126, 49,143, 88,214, 54,194,217, 89,157, 13, 0, 6,142,226,202,163, 76,220,127,154,136, 7, 79, 19, 97,174, + 48,205,248,162, 51,112,249,243, 51, 41,133, 54,247,127,157, 86,131, 58, 3, 58, 67,190,187,135, 94,167, 70, 86, 74, 56, 25,208, +167,147,114,220,184, 49,112,117,117,119, 44,139,207,160, 80, 78,154, 48,185,187,141,157,141, 20,199,254, 56,137,119,106,247,129, + 82, 33, 69, 90,150, 22, 32,192,147,103,103, 0,193, 18,161, 17, 49,104, 94, 87,133, 46,157,235, 88, 28,218,255,120, 42,128, 57, +166,164,151,139,189, 1,153,111, 55, 72,121, 35,140,169,143, 33,100, 70, 3,230, 46,208, 16, 11,164, 37, 68,227,209,165, 3,249, + 19, 78, 43, 0,207,243,159, 58, 58, 58,102,206,154, 53,171, 93,173, 90,181, 12,227,199,143,191, 23, 21, 21,245,202,178, 54,213, +170, 85,251,113,237,218,181,120,250,244,105,220,119,223,125, 23,146,146,146, 50,187,146, 15,232, 12, 66,200,138,130,161,184,255, + 99,239,170,195,163, 58,222,238,153,245,221,100,227, 46, 36, 72, 8, 16,220,157, 16,164, 72,128,226, 94,180, 80,220, 75,176,226, + 36, 45,174,197,138,123,177,226, 78,144,224, 16,129, 64,128, 16, 79,136,251,250,189,119,190, 63, 34, 13, 33,178, 1,250,253,108, +207,243,236,179,123,247,222,125,119,238,204,220,153, 51,231,157,121, 39,229,204,153, 51,141,253,253,253,167,111,216,176,193,110, +202,148, 41,226, 41, 83,166,140, 6,176,188, 44,119,161,177, 68,210,105,229,157, 59,148,137,141, 85, 31,220,188, 89,188, 53, 32, + 96,129,150,227, 28,173,109,109, 73,171,230,205,115,141,120,188,148,212,196, 68,198,166, 90, 53,126,196,181,107, 86, 84, 38,139, +191,116,233, 82, 86, 78, 78, 78,169, 91,231,240,249,124, 69, 73,238,194,146,224,224,224,160, 41,105, 14, 87, 25,149, 59,139,163, + 84,107, 94,181, 42,253,174, 99,203,234,239,222,132,135, 75,205,205,249,238,213,171,212,124,249, 58,226, 49,101, 89, 21, 33, 36, + 75, 31, 91,124, 62,127,208,134, 13, 27,234,153,154,154,130,227, 56,152,153,153, 33, 57, 57, 25, 26,141, 6, 89, 89, 89,208,100, +103, 66,147,153,137,224,168, 8,180,110,223, 30, 3,186,126,231,113,224,204, 95,131, 0, 28, 45,203,174, 99,253, 70,133, 74,214, +178,202, 86,127,251,130, 98, 50, 10, 73,215,175,141,220, 33,146,203,209,121,166,207,215, 52,208,207,197, 98,241,197,190,125,251, +118,159, 61,123, 54, 47, 33, 33,225, 50, 33,164, 53,165,244, 85,153,138,176, 92,238,150,146,146,130,236,236,108,152,153,153, 97, +195,134, 13,176,179,179,131, 66,161,192,147, 39, 79,168,179,179, 51,185,117,235, 22,156,157,157,145,146,146, 2,173, 86,139,220, +220,220,143, 26,141,166, 84,119,121,190,123,176,219,204,110, 14,151,222, 60,219,223,214,137,124,120, 50,112,150,231,187, 55,193, +175,163,175, 94,187,191,156, 81, 73, 99, 50, 98,175,207,173,218,244,185,245,164, 57, 75,177,101,245, 98,188,121,116, 39,205,206, + 37,107,171,140,168,247, 53,239, 92,122,122,115,115,115, 85,175, 95,191, 54, 9, 12, 12, 4, 33, 4,102,102,102, 48, 50, 50, 42, +145,108,125, 65, 99,201, 43,242, 63,200,205,205,133, 72, 36,130,149,149, 21,118,239,222, 93,216,241, 86,169, 82,165, 44, 51, 59, + 58,119,238, 60,200,197,197,197,164,232,151, 77,155, 54,197,248,241,227,241,251,239,191, 35, 32, 32,224,147,253, 52, 63,126,252, +152,160,211,233,246,149, 81,182, 25,132,144,174,125,250,244,121,118,247,238, 93,211,221,187,119,131, 97,152, 18, 95,187,118,237, +194,195,135, 15, 23, 81, 74, 95,127, 97,135, 81,171, 95,191,126,119, 14, 29, 58,100,158,156,156,140,148,148, 20,228,228,228, 32, + 55, 55, 23, 44,203,162,102,205,154,132, 97,152,154,229,229, 35,159,207, 63,179,121,243,230,158, 63,254,248, 35, 4, 2, 1, 52, + 26, 13, 54,111,222,140,185,115,231, 38, 2, 24, 73, 41,213, 18, 66, 22,236,219,183,111, 68,175, 94,189,208,160, 65, 3,143,178, +108,230,228,228, 32, 39, 39, 7, 66,161, 16,246,246,246, 88,177, 98, 5, 52,154,188,102,165, 70,141, 26,133, 46, 79, 0, 59,106, +212,168,209, 51, 44, 44,108, 13,165,244,183, 82,218,153, 62,148,210,113, 44,203,102,247,237,219,215,234,200,145, 35, 38,113,113, +113,120,246,236, 25, 22, 45, 90,148,206,113, 28,203,113, 28, 81, 42,149, 31,236,236,236,158, 73, 36, 18,153, 66,161, 72, 75, 77, + 77, 93, 69, 41,189,252, 47,236,204,137, 80, 40,196,152, 49, 99, 32, 16, 8, 32,147,201,160, 82,169,160,211,233, 10,201, 60, 42, +232,150,118,119, 55,177, 18, 64,244, 99,141, 26,237,166, 15,152,214,195,198,193,209, 9,230,166, 18,132,134,190,106,125,243,198, +181,205,181,107,218,108,231, 52,186,237,175, 35, 50,254,241,205,238,139,115,145,255, 48,174,213, 8,192,115, 20,217,243, 16,249, +171, 16, 75,105,137,250,179,214,214,127,166,196,197,137,181, 98,177, 81, 88,129,202,149, 71,178,250,179,192, 17, 48, 90, 93,126, + 67, 65,243, 95,122, 18, 45, 29,139,119,111, 66,112,247,234, 95,176, 86,196, 33,229, 67, 67, 64, 84, 15, 26,101, 38, 84, 26,109, +254,232,141, 69,224,179, 27,200,202, 76, 67,221, 38, 61, 0, 30,239, 97,105,246,204,172, 72,143, 86,141,235,243,223, 69,135,160, +105,141,254,168,230,220, 22, 81, 9, 89,200,200, 81, 35, 61, 75,133,134,117,125,144,156,174, 68,150, 66,133, 87,239, 14,192,201, +177, 26,143, 8,194, 59,234, 75,180,212,175, 78, 65,253,250, 44, 68,174,173, 33,174,217, 11,124,215, 54,136, 14,186,133,192, 75, +235, 17,251,242, 30, 40,199,194,161, 70, 51,125, 31,146,205,151, 47, 95,110,214,186,117,107, 65,167, 78,157, 26, 56, 58, 58, 54, +136,143,143, 15,204, 87,115, 26,116,239,222,189,129,141,141, 13, 54,110,220,168, 36,132,108,254,194,206,182,168,187,237,177,157, +157,221,202, 83,167, 78,109, 30, 63,126, 60,108,109,109,235,149,245,219,100,161,176,193,200, 85,171,168,144,207,167, 71,183,108, + 17, 45,189,124,121,237,222,125,251, 68, 29,188,188, 8,165, 20, 47, 94,188, 48,250,117,203, 22,163,161,223,127, 31, 25,149,148, +196,248, 7, 4,104, 19, 98, 99,179,147,114,115,151,198,199,199,127,252, 87,212,108,157, 78,247,224, 67,196, 7,167, 38,205, 27, +218, 60, 15,253,240,178, 75,135, 86,173,120, 60, 30,239, 77,120, 84,128,141,141,169,209,181,171,215,180, 58,157,238,129, 62,182, + 36, 18, 73,143, 14, 29, 58, 8,210,211,211,225,232,232,136,228,228,100,196,197,197,229, 41, 14,153,233,208,102,102, 66,151,149, + 1, 54, 55, 7, 31,158, 60, 70,195,106, 85, 37, 39,242, 38,203, 31, 45,167, 76, 74, 84,170,138, 42, 91, 98, 19, 19,136,229,114, +144, 10,186, 13, 9, 33,223,155,155,155,207,205,200,200,184, 72, 41, 93,161,213,106, 39,207,157, 59,183,233,166, 77,155,172, 87, +174, 92,105, 58,110,220,184, 19,132,144,134,148, 82,117, 25, 29,216,123,134, 97,172, 1,216,222,184,113, 3,182,182,182,200,204, +204, 44, 80, 90, 52, 10,133, 66,154,154,154, 10,181, 90, 13,141, 70, 3, 83, 83, 83, 60,125,250, 52,157, 97,152,191,202, 75,159, +169, 27, 89,161,214,134, 46,180,242, 48,142,215, 50, 22,158, 73,105, 92,250,226, 53,241,203, 0,172,237,230,230,182, 75,203,221, +249,240, 54,228,156, 69,196,147,219,105,241,111,115,171,237,186, 16,158, 93, 70, 62, 82, 66, 8, 71, 8,161, 53,106,212, 64,114, +114, 50,248,124, 62,140,140,140, 32,151,203, 49,111,222, 60,108,222,188,185,194, 68,139, 16, 34, 53, 54, 54, 94,197,227,241, 6, +153,153,153,217,176, 44, 11, 31, 31, 31,244,236,217, 19, 98,177, 24, 90,173,182, 80,209, 44, 80,169,202, 82, 58, 40,165, 47, 0, +152, 22,251, 15, 47,107,107,235,155,106,181, 26,225,225,225, 56,115,230, 76,123, 74,169,127, 5,159,237,112, 66, 72,215, 54,109, +218,236,111,220,184,177, 27,165, 20,245,234,213,195,224,193,131,113,224,192, 1, 4, 6, 6, 34, 51, 51,147,187,118,237,218, 94, + 0,107, 42,218,129,231,231,111,205,126,253,250,221, 59,124,248,176, 69,106,106, 42,148, 74, 37,114,115,115,113,226,196, 9,180, +110,221, 26,214,214,214, 56,116,232, 16, 67, 41, 61, 87, 22,201,226,241,120,187,183,111,223,222,115,236,216,177,216,186,117, 43, +142, 30, 61,138, 94,189,122, 97,208,160, 65, 72, 78, 78,182, 91,189,122,245, 8, 66,200,110, 0,139, 7, 15, 30,140,156,156, 28, + 60,121,242, 36, 84,207,103, 30, 25, 25, 25,200,200,200,128, 76, 38, 43,250,140, 17, 0, 7,214,175, 95, 63,100,250,244,233,168, + 86,173,218,226,252, 69, 65,159,173, 18,229, 56,238,167,184,184, 56, 11,129, 64, 96,197, 48, 12, 98, 98, 98,240,244,233, 83, 76, +154, 52, 41, 45, 45, 45,109, 60,165, 52,138, 16,178, 96,204,152, 49, 43,102,206,156, 89, 88,151,102,206,156,121,158, 16,210,245, +255, 91,205,169, 89,211,162,142,152, 47,153, 38, 18, 9,173,210,211,211, 11,219, 14,141, 70, 3,181, 90,253,137,146, 37, 18, 9, +173,154, 53,114,189,160, 84,100,207,127, 25,150, 94,234, 6,233,181,171,155,215, 55, 50, 54,155,238,221,117,192,176,239,186,246, +230, 51, 58, 29,174, 92, 57,135, 63,254,216, 6,175, 54, 53, 80,173,122, 61, 76,153, 58,205, 76,173, 97,124,174, 93,187, 60,183, + 85,179,170,151,179,179, 50,230,149,101,243,127, 28, 23,242,201,213,133, 18, 93,135, 37, 51,200,254,172,147, 19,210,243, 31, 28, +107, 11, 11,139, 45, 44,203,122, 1, 63, 66, 40,183,199,171,167,143,144,150, 46,132, 90,201,130,163,121,100, 75, 47,226,162,214, +224,206,149,179,216,176,126, 45, 82, 83, 83,209,166, 93,123,228, 8, 42,193,165,146, 11, 84, 74, 69,254, 67, 3,104, 53, 58,216, +216,185,226,249,243, 64, 93, 86,110,110,169, 13,146, 72,170,245,112,177,171, 1,181,182, 37,164, 98, 49, 50,179, 53, 72,207, 39, + 89,135,254, 28, 8,181, 66, 9, 70,163, 5,163,209,193,198,165, 31,106,217,117, 0,199,158,171, 83,161,236,227, 88,104, 35,238, + 64, 27,113, 7,178,150, 83,241,151,239,144, 98, 13,160,126,251,238, 38, 37, 37, 37, 57, 58, 58,158,123,241,226, 69,159,129, 3, + 7,226,214,173, 91,227, 0, 76,200,119,223,140, 27, 56,112, 32, 94,188,120,129,151, 47, 95,158, 75, 74, 74,250, 38, 27,175,138, +197, 98,165, 90,157,215,199, 26, 25, 25, 73,203,185,214,169,105,223,190,188,204,231,207,179,214,223,191,191,120,215,238,221,162, + 78, 29, 59, 18, 29,195,128, 99, 89, 84,119,119, 39,223,125,247,157,241,129,227,199,173,248, 58,221,195, 57,147, 39,223,248,125, +248,240,236, 71, 57, 57,250, 78, 52,175,156,239, 50, 4,128,202,101,124,167, 55,212,106,245,166,159,126, 28,213,201,255,206,189, + 74, 46,149,156, 76,175, 92,243, 15,148,200,196,188,106, 85,220,248,233,153,105,130,101,139,231,203,212,106,181,190,164,213,195, +218,218, 26, 31, 63,126,196,187,119,239,160, 86,171,161,211,233,192, 41,114,161, 73,207,128, 38, 51, 13, 68,165,132,132,101,161, + 74, 73, 68,229,106, 85,129,191, 87, 36,150,235,138, 42,137,104, 21,188, 75, 77, 77, 33, 50,150,131, 39, 20,234,189, 57, 58, 33, +164,113,179,102,205,142,159, 60,121, 82, 52,122,244,232,230,132,144, 45,249, 29, 68,199, 69,139, 22, 61,222,178,101,139,100,252, +248,241, 53,215,172, 89, 51, 2,192,142,210,236,168, 84,170,227, 23, 46, 92, 24,234,234,234,106, 27, 28, 28, 12,149, 74, 5,142, +227,208,173, 91, 55, 0, 40,172, 51,111,222,188, 81,170, 84,170,164,144,144,144,172,168,168, 40, 13,244, 88, 37,184,120, 99,252, +131,153, 3,156,251,218,217, 59, 61,148,202, 42, 87,161, 57,207,251,204, 28,224,188,122,221,137, 88,213,165,247,239,179, 23, 77, +170,230,151,155, 29, 52,201,220, 57,103,235,165,115,225,250,172, 10,166, 5,203,217,173,172,172, 32, 16, 8, 32, 20, 10, 33, 18, +137, 64, 8,193,212,169, 83,177,115,231,206, 50, 93,135,197, 73,150,137,137,201,203,165, 75,151, 58,143, 31, 63, 94, 36,149, 74, +145,158,158,142, 67,135, 14, 97,204,152, 49,248,227,143, 63, 74,156,255, 82,158, 75,169, 4,181,116,250,240,225,195,161,209,104, + 48,120,240, 96,236,218,181,107, 58, 0,255,138,214,119, 74,233, 67, 66,136,123, 96, 96,160, 41,128, 94,131, 6, 13,218,215,175, + 95, 63,248,251,251,227,220,185,115,237, 1,132, 1, 80, 2,240,205,223,196,217,183,172,133, 32,249, 33, 28,182,217,216,216,244, +170, 83,167, 78, 96,191,126,253,234, 30, 62,124,216, 60, 41, 41,169, 96,241, 3, 34, 34, 34,176,103,207,158,132,221,187,119,103, +177, 44,107,197,227,241, 46,100,100,100,204, 43,195, 93,184,123,253,250,245,163,242,221,129, 56,121,242, 36, 93,187,118, 45, 89, +180,104, 17,210,211,211,225,229,229,133,237,219,183, 79,203,201,201,105,176,118,237,218, 31, 7, 12, 24,128,101,203,150, 33, 55, + 55,119,125,121,131,149, 50,200, 23, 1,208,106,253,250,245,174,211,167, 79,199,201,147, 39,209,184,113, 99,217,135, 15, 31,126, + 7, 48,182,164,242,163,148,226,195,135, 15, 80, 40, 20,184,119,239, 30, 22, 47, 94,156, 94,132,100, 77,155, 48, 97,194,138,105, +211,166, 97,213,170, 85, 52, 56, 56, 56,169, 95,191,126,118, 59,119,238,228, 87,175, 94,125, 26,242, 54, 93,255,127, 65, 45,119, + 43,191,102, 77, 61,231, 58, 56, 85,199,161,195, 71,144,150,150, 86,152, 39, 5,249, 66, 41, 69,118,118, 54, 62,126,252, 8, 51, + 83, 19,172, 94,179,162,251,196,113,163, 42, 33, 47, 12,198,231, 13,157,155,229,154,254,131,199,206, 26, 60,116, 20,130, 3,159, +225,192,190, 29, 8, 9,126, 81,104,143,209,105, 17, 22,250, 20, 97,161, 79, 97,103,239,138,239, 58,181, 39, 67,134, 12,233, 54, +124,232, 32, 27, 0,255, 88,232,136,255, 96, 53,235,179, 56, 90, 69,231,108, 9,202,147,235,242, 73,214,203, 99,199,142, 89,181, +105,211,134,207, 48, 12, 46, 95,185,130, 73, 19,126,192,136,225, 62,208,194, 2,140, 70, 4, 78, 36,213, 43, 49, 74,165, 2, 20, + 20,185,185,185, 8, 8, 8, 0,229, 24, 28,216,185, 22,148,114,133, 68, 11,160,208,104,181,112,114,169,137,109,187, 86, 50, 16, + 10, 31,151,102, 47, 43,149,207,234, 24,138,184,164,104, 68, 39,132,192,204,196, 5, 2,161, 11, 82, 51, 20, 16,240,236,161, 83, +189, 1,155, 47,171, 42,114, 99,161,212,126, 93,249,177,153,159,171,167,180, 2,141,174, 82,169, 60,120,240,224,193,238,235,214, +173, 19,123,123,123,215,112,116,116,108, 5, 0,253,251,247,175, 97,106,106,138,131, 7, 15,106,148, 74,229,193,111,168,248,116, +104,214,172, 25,210,211,211, 17, 17, 17, 17, 88,230,189,105, 52, 86,114, 91, 91,126,210,173, 91,186,228,244,244, 74, 29, 58,116, + 32, 58,134, 1,143, 16,164,101,102, 34, 42, 50, 18,230,230,230,228,229,155, 55,242,205, 83,166,156,174, 81,183,174,160, 96, 69, +162, 62, 56,119,238,156, 17,242,230,101,149,249, 93, 5, 43,119, 46, 33,100,212,228,201,147, 79, 31, 60,120,200, 44, 49, 41, 49, + 76, 34, 22, 51,114,185,212,113,248,176,137,130,140,140,140,161,148,210, 28,125,237,165,167,167,227,195,135, 15,144,201,100, 16, + 9,133,224,148, 10,176,185, 57, 80,165, 37,131,175,213, 64,204,178,176, 52,146,160,146,157, 29, 92,108,172,245,178,249,238,230, +213,194,137,239, 69,221,133,171,155,121, 64,108, 44,135,216, 68,142,137,231,111,231,143, 70, 69,192,162,229,250,144, 44,107, 39, + 39,167,191, 14, 31, 62, 44, 74, 78, 78,198,139, 23, 47, 2, 41,165,153,132, 16, 19, 0, 92,104,104,232,245,144,144,144, 30,249, +171,238,202, 91, 45,182,246,212,169, 83,157,219,180,105,195, 84,169, 82,197, 56, 49, 49,209, 37, 53, 53,149, 36, 36,124, 58,215, +249,226,197,139, 82,165, 82,153,203,113,220,105,228,197,129, 42, 55,126,209,204, 1,206,210,128,231,152,234,217,165,114, 61, 83, +235,250, 72, 99,158,215,123, 24,152, 48,117,230, 0,231, 77,235, 78,196,170,100, 68,189,143,176, 49,149, 4, 82,213,126, 61,203, +155, 90, 91, 91, 35, 52, 52, 20, 1, 1, 1,136,138,138,194,135, 15, 31, 62, 33, 84,227,198,141,195,129, 3, 7,244, 82,180,140, +141,141, 87, 45, 89,178,196,121,250,244,233,162, 34,164, 8,147, 39, 79, 70,102,102, 38,118,237,218,133,201,147, 39, 87,184,227, + 47, 86, 86, 85, 59,119,238,236,237,224,224,128,212,212, 84,216,219,219,163, 77,155, 54, 61, 9, 33, 85, 40,165, 17, 95, 88,245, + 39,118,233,210,101,197,210,165, 75,161,211,233, 48,102,204, 24,188,125,251,246,248,219,183,111, 55,184,184,184, 76,253,249,231, +159,237,236,236,236, 48,112,224, 64, 99, 0,125, 75, 51, 98,105,105,233,187, 99,199,142,161,222,222,222, 60,173, 86,219,238,230, +205,155,136,140,140,132, 70,163, 1,195, 48,120,255,254, 61, 38, 79,158,156,144,154,154,234, 73, 41,125,175, 71,186, 70, 47, 88, +176, 96,212,212,169, 83,241,235,175,191, 98,201,146, 37,123,205,204,204,234, 54,108,216,176,209,146, 37, 75, 48,103,206, 28,184, +186,186,194,202,202,170,214,162, 69,139, 60,102,206,156,137, 77,155, 54, 97,241,226,197,123, 1,236,249,146,140,224, 56,142,248, +249,249, 53, 88,191,126,189, 67, 1,201,226,241,120, 56,118,236, 24,158, 63,127,222,179,148,223,108,183,183,183, 31,231,224,224, + 32,190,118,237,154,220,213,213, 21, 12,195,232,242, 73,214,102, 23, 23,151, 73,239,223,191,135,183,183, 55,194,195,195, 15, 82, + 74, 71,120,122,122,230,206,156, 57,211, 72, 38,147,153,253,127,118,224,124, 30, 25,185,106,217, 28, 60,121,254, 6,167, 78,137, +240,228,201, 19,216,217,217, 65, 34,145,128, 82, 10,181, 90,141,228,228,100,232,180,106,212,171, 83, 21,251,119,251, 33, 41, 41, + 25,224,145, 82,167,220, 16, 30, 25, 54,234,135, 62,184,123,239, 10,126,255,125, 7,114,114,114, 75, 25,124, 75, 81,189,134, 7, +156, 28,109, 17, 19, 27, 3,194,131,245, 63,121,175,255,225,174,195,130,231, 93,191,240, 14, 69, 97,110,110,190,225,232,209,163, + 86, 94, 94, 94,252,220,220, 92,112, 28,135,182,109,218, 96,234,244,233, 56,119,248, 48,220,155, 15, 6,209,200,193, 24,233,183, +234, 65,165, 84,160,118,163, 86, 24, 48,112, 16,162,163,162,208,165, 71, 63,168, 84,138,194, 17, 70,129,162,165,209,104, 97,109, + 91, 9, 87,175, 94,229, 99,204,152, 82,231,152,176, 90,113, 80,216,123, 85,235, 12,229,115, 4, 60, 57, 0,173, 90,139,122,245, + 22, 65,203, 89,193,214,121, 28,116,186, 51,200, 74,190,153,231,198,176,242, 66,108,116, 52,120,124,209,203, 47,205, 68, 46, 55, +249,171, 26,221,140,140,140, 76, 71, 71,199, 63, 3, 2, 2,134,245,237,219, 23, 87,175, 94,253, 17, 0,250,246,237,139,128,128, + 0,124,248,240,225,207,140,140,140,204,111, 81,224,142,142,142,189,188,188,188, 6, 55,109,218, 20,231,207,159, 7,165,244,174, + 94, 15,182, 80, 72,121, 60, 30, 56,142, 3, 1,144,154,145,129,183,111,223, 34, 53, 37, 5, 58,157, 14,185, 57, 57,156, 71,141, + 26, 57,148,227, 76, 42,146,158,162, 43, 12, 81,194,170,195,130,239,190,128,108, 69,201,229,242,232,236,156, 28, 27, 11,115,139, +108,177, 88,204,166,103,100,100,190,122, 25,172,209,179,115, 40, 64,104, 72, 72, 72,221,248,248,120, 68, 71, 71,131,201,205, 6, + 95,173, 1, 79,173, 64,199, 86, 45, 33, 3,133, 20, 28,132,156, 14, 66,190, 16,217,121,171,243,202,117,119, 20, 16,253,162,202, + 22, 33, 36,207, 93,104,108, 12,177,220,228, 19,133, 75,159,250, 36,145, 72, 14,159, 56,113,194,193,201,201, 9,203,150, 45,131, +179,179,115,173,122,245,234, 41,218,182,109, 43,179,179,179, 67,237,218,181,209,170, 85, 43, 92,186,116, 9, 0,222,151,147,127, + 12, 33,228,187,187,119,239,206,186,127,255,254, 0, 66, 8,241,241,241, 65,215,174, 93, 33,149, 74,161, 80, 40,144,158,158,142, +157, 59,119, 18, 74,105,163,252,180,186, 74,165,210, 35,132,144, 88,165, 82, 57,176,184,205, 3,235,235, 59, 38,165,113, 99,236, +236,157,250,120,118,169, 92,175, 67,151, 78,168,234,222, 1, 29,186, 68, 3,128,159,165, 32,114,240,234,133,117, 79, 91, 87,178, +220,115,245,242,181,197,109, 60, 59, 44,240, 25,111,177,194,111, 71,122,150, 30, 13, 25, 56,142,251, 36,118, 80,241,243, 35, 70, +140,192,177, 99,199,202,205, 71, 30,143, 55,104,252,248,241,162,162,223, 21,184,140,123,244,232,129,190,125,251,126, 66,180,172, +173,173, 97,111,111,143,200,200, 72, 0, 72,213,179, 94, 77, 29, 61,122, 52, 81, 42,149, 24, 59,118, 44,118,237,218,133,193,131, + 7, 19,127,127,255,169, 0,166, 87,180,190,243,120,188,213, 63,255,252,243,172,201,147, 39, 35, 45, 45, 13, 23, 47, 94, 68,183, +110,221,112,236,216, 49,155,139, 23, 47,174,242,242,242, 2,159,207,199,249,243,231,193, 48, 76,153,177,190, 68, 34, 81, 47,111, +111,111, 94, 76, 76, 12, 68, 34, 17,154, 52,105,130,216,216, 88, 40, 20, 10,196,197,197, 97,218,180,105, 31, 83, 83, 83,219,235, +251, 28,137, 68,162,233, 83,167, 78,197,209,163, 71,225,227,227,179, 15,192,216,204,204,204, 1,247,239,223, 63,250,253,247,223, + 35, 46, 46, 14,167, 79,159,198,226,197,139,201,136, 17, 35,176,117,235, 86, 76,155, 54,109, 47,128,177,101,172,144,204, 78, 74, + 74, 50,115,115,115, 67, 98, 98, 34,114,114,114,112,250,244,105,219, 75,151, 46, 85,113,114,114, 50,253,240,225, 3,187,124,249, +114,241,244,233,211,177, 97,195, 6,188,120,241, 2, 7, 14, 28, 64,135, 14, 29,152,240,240,240, 18, 85,178,252,144, 13,167, 45, + 45, 45,175, 25, 27, 27, 35, 59, 59,187, 96,101,233,108, 31, 31,159,201,190,190,121, 34,123,124,124, 60, 70,142, 28, 57,156, 16, +194, 45, 93,186,212, 72, 36, 18, 65,165, 82,229,254,127,118,220, 28,203, 1,224, 80,165,146, 28, 87,206,237,198,179,192,112, 60, + 11, 12,129, 88,146, 55, 9, 94,169, 84,160, 81,189,234,104,222,164, 25,226, 19,226,112,240,192,110, 88, 90, 59,149,217,142, 80, + 74, 33, 18,176,240,168, 97,143,195, 7,118,224,252,197, 27, 56,112,240, 72,225,156, 55,129, 64,136,134,141,154,163, 73,147, 54, + 8,255,240, 30,187,119,255, 14, 27,219, 74, 6,231,224, 23,162,208,117, 88,244,189, 24,243,239,208,166, 77, 27,126, 78, 78, 14, + 84, 42, 21, 62,126,252,136,200,200, 72,152, 91,152, 35, 60, 62, 2,237,141,180,248,200,101, 33, 52,240, 37, 75,248,194, 23,229, + 74,131,158, 13, 1,207,134,152, 52,122,112,233,149, 0, 20,198,166,214,121,174, 27,134,121,135, 77,155, 74, 29, 57, 51,172,238, +250,149,107, 55,155,141, 30,209, 75,120,245,230, 46,232, 52, 28,148, 58, 51,228,170, 52,200,213, 10,193, 51,235, 6,164,248,131, + 47,144,160, 69,131,234, 56,125,234,146,150, 50,186, 27,122,103,144, 93, 93, 48,137, 33, 69,136,214,167, 30, 61,169,137,165,222, +174,195,194,142,151,101,143, 29, 58,116,168,119,203,150, 45,141,188,188,188,220,242, 59, 78,237,161, 67,135, 20, 44,203, 30,171, +104, 33, 22,143, 6,239,224,224,208, 72, 36, 18, 13,238,213,171, 87,163, 81,163, 70,225,213,171, 87, 56,120,240, 96, 88,245,234, +213,203,140, 33,198, 23,139, 83,115,146,146,204,229, 85,170, 8, 44, 76, 76,226, 47, 93,188,232,218,169,115,103, 18, 29, 29,141, +212,212, 84,168, 84, 42,188, 8, 12,164, 66, 62, 63,150,152,154,242,222, 60,127,206,227,139,197,169, 21, 72,106,100, 57,171, 14, +125,191, 84,221,170,228, 96,225,182,216,231,167,170, 42,181,170,110, 86, 86, 22, 35, 16, 10,133,206,246,230, 81, 21,116, 67,158, +191,126,253,122,239, 78,157, 58, 73,194,130, 94,128,201,204,132, 38, 51, 29, 34,142,133,101,163, 6,224,107,213,128, 70, 7, 39, + 15, 10, 85,134, 17,252, 31,189,209,169,213,234,114,131, 26, 22, 16, 45, 94, 49, 98, 32,150,203, 33, 49, 49,133, 68, 46, 47, 78, + 24, 72, 57,229,109,212,171, 87,175,142, 45, 90,180, 0,165, 20, 59,119,238,132, 86,171, 21,107,181, 90,104, 52, 26,104,181, 90, +100,101,101,225,192,129, 3,216,182,109,219,125, 0,123,245, 32,171,140, 80, 40,156,204, 48,140,173, 68, 34,209,218,216,216,136, +142, 31, 63, 94, 24,110,162, 97,195,134, 48, 54, 54, 86, 19, 66,180, 0, 96,111,111,175,219,183,111,159,224,251,239,191, 23,149, +100,175,102,189, 90,115,170, 50, 22,158, 82, 89,229, 42,166,214,245, 81,213,189, 3, 0,160,115,143,209,168, 90,221, 5, 89, 41, + 65, 85, 84,202,200, 62, 34, 65,186,197,203, 77,113,175,100,222,117, 71,229, 38,221,126,139,146,151,247,151,216, 81,240,120,188, + 82,221,177,250,144, 44, 66, 8,207,204,204,204,166, 96,158, 79,126, 7,140,132,132, 4,132,134,134,162,102,205,154, 72, 75, 75, +131,147,147, 19, 52, 26, 13,154, 54,109, 10,165, 82,137,245,235,215,227,222,189,123,247,145,191, 50,178,156,255,144,185,187,187, +143,108,212,168, 17, 46, 94,188,136, 39, 79,158,196, 93,185,114,197,169, 77,155, 54,168, 82,165,202, 40, 66,200,124, 74, 75,143, +193, 87,146,171,175, 93,187,118, 83, 38, 79,158,140,144,144, 16,252,244,211, 79,169, 49, 49, 49,167,143, 31, 63, 62,118,241,226, +197,188, 46, 93,186, 32, 33, 33, 1,171, 87,175,102,239,221,187,183, 6,192,178,114,242,241,117, 76, 76,140,179, 74,165, 66, 90, + 90, 26, 24,134,129, 66,161,192,165, 75,151,112,224,192,129,196,124,146,245, 78,223,244, 53,104,208,160, 54,143,199,195,209,163, + 71, 1, 96, 33,165,148, 35,132,156,238,211,167, 79,220,242,229,203,157,230,205,155,135, 31,127,252, 17, 90,173, 22,191,254,250, + 43,230,205,155,119, 33,159,100,149,213,136,174,179,183,183, 31,247,211, 79, 63,213,154, 57,115, 38, 2, 2, 2,108,159, 62,125, +218,228,197,139, 23,168, 84,169, 18, 82, 83, 83, 5, 86, 86, 86,216,176, 97, 3,102,204,152,113, 18, 64,202,131, 7, 15, 6,125, +248,240,193,151, 82,186,186,156,252,220,238,228,228, 52,142, 82, 74, 21, 10, 69,164,143,143,207,234,149, 43, 87, 98,198,140, 25, +120,249,242, 37, 50, 51, 51, 97, 98, 98, 66,126,254,249,231,145, 11, 23, 46,196,152, 49, 99,104,110,110,238,182,255,127,183, 20, + 11, 69,122, 8, 88,181, 5, 26,214,171,137,134,117, 43,227,202,205,103, 0,128,142,253,218, 64,145,155,141,125,251,118,226,221, +187,183, 16, 8,133, 48,183,180,215, 71, 9,132, 38,235, 53, 50,180, 9,232,228,213, 4,221,186,180,199,222,253,199,192,232,180, + 24, 59,122, 40,210, 51, 50,176,127,255,110,132,127,120, 15,129, 80, 8, 43,235,127, 62, 16,106, 89, 92,228, 63,158,104,233,225, +126, 2,199,113,136,139,139,195,211,167, 79, 17, 17, 17, 1, 35, 35, 35, 40, 25,150,251,253,250, 61,142, 16, 81, 44, 71,233,125, +202, 20, 70, 41,254,220, 6,203,198, 21,137, 88,107,102, 97, 97, 33, 86,171,149, 96, 24, 93,145, 94,133, 0, 4, 16, 9, 0, 7, +199,170,136,137,142,161, 42,149,234,118,153, 35, 40,181,106,195,217,211, 39, 38,183,106,221,198,186, 91,199,165, 56,125,102, 17, +210,179,178,160,210, 10,145,171,210, 66,161, 2,204, 45,107,160,105,189,250,136,143, 79, 69,208, 19,255, 28,129, 90,161,207, 68, +209,183,155, 23,140,118, 31, 61,105, 14,100,174,173,161, 14, 61, 13, 46, 39,177, 80,209,146,202, 45, 96,233,226,129,140, 92, 53, + 78,220,120, 6, 0,122,111,245,146,152,152,168,112,116,116, 60, 52,121,242,228, 95,159, 61,123,234, 12, 0,207,158, 61,139, 77, + 72, 72,152,155,152,152,168,168, 72, 1, 22,137, 6, 79,140,140,140,158, 85,175, 94, 61,222,219,219,219,172, 79,159, 62,176,182, +182,198,139, 23, 47,224,235,235,251, 90,171,213,206,185,125,251,118,153,174, 30,141, 70, 19,247,236,204, 25,211,246, 63,252, 96, + 62,167,103,207,213,147, 39, 79,222,176,108,217, 50,161,187,187, 59,209,105,181, 8, 14, 14,166,135, 15, 29,210,109,155, 55,111, +189,216,216, 88,240,248,236, 89, 33,163, 86,199,253,171, 43,177,179,179,179,103,247,174,158, 30,107,214,109,130, 74,153,131, 71, + 1, 23,144,158,158,140, 29, 59, 79,121, 56, 59, 59,123,198,198,198,250,235, 75,128,247,236,217, 51,171,121,163, 70,141,170, 85, +170,132,224,168, 8,136, 57, 22, 34,134, 1, 95,171, 6,143, 81,161, 82, 93, 10,194, 51, 65,194,199, 44,172, 60,250,103,136, 62, +196,184, 86,247, 94, 88, 22,155, 9, 66, 8,214,182,172, 11,177,137, 28, 34, 99, 57, 38,254,117,179,144, 24,156, 95, 54, 15, 98, +185, 28,110,205,219,232,209,232, 82,133,137,137,201,211,224,224,224,166,117,235,214,197,172, 89,179, 16, 25, 25, 9,142,227,144, +152,152,168, 74, 72, 72,136, 75, 78, 78,142, 68, 94,252,159, 93, 84,207,145, 0,195, 48,182,207,158, 61, 3, 0, 17, 0,220,184, +113, 3,142,142,142, 48, 51, 51, 67, 86, 86, 22,230,204,153, 35,249,229,151, 95, 0, 0, 79,159, 62, 21, 22, 37, 40,197, 17,252, + 44,116, 77, 70, 54, 77,167, 57,207,251,164, 49,207,235,117,232, 18,131,206, 61, 70,225,218,249,189,184,121,229, 58, 44, 5,145, + 17, 48,206,190,148, 18,145,146, 21,155,235,190,221,163,241, 88,126, 66,238,149,237, 83,191,183,224, 59, 56,112, 39,124,182,101, +102,148,149, 86,119,119,119,216,217,217, 21,206,209, 18, 8, 4, 24, 51,102, 12, 40,165,122,145,172,252,124,228, 76, 77, 77,147, + 85, 42,149,157, 84, 42,197,199,143, 31,241,254,253,123,132,135,135, 23,134, 14,224, 56, 78, 55,123,246,108,225,148, 41, 83,240, +251,239,191,227,246,237,219,247, 1, 44,165,148,234, 59, 88, 27, 58,112,224, 64, 19,141, 70,131, 35, 71,142, 48, 0,122,156, 56, +113,226,105,211,166, 77, 5, 93,187,118, 53,217,186,117,235, 80, 0,187, 42, 80,221,141, 77, 77, 77, 69, 90,173, 22, 91,183,110, + 69, 76, 76,140, 39,165, 52,148, 16,178,125,224,192,129,219,234,214,173, 91, 61, 36, 36,228,109, 78, 78,206, 68, 74,105,144, 30, +109,209,232, 38, 77,154,156,224, 56,206,181, 83,167, 78,198,235,214,173, 51,125,243,230, 13,156,157,157,193,113, 92,112, 69,183, +176,122,251,246,109,104, 66, 66,130, 71,251,246,237,113,233,210, 37, 63, 66,200, 42, 0,191, 78,152, 48,193, 41, 42, 42, 10,141, + 26, 53,130,165,165, 37,222,188,121,147,157,144,144,176, 13,192,252,242, 98,125, 81, 74, 63, 0,152, 75, 8,169,191,125,251,246, +193,150,150,150, 45, 94,188,120,129,187,119,239, 98,205,154, 53,248,229,151, 95,208,182,109, 91,204,154, 53, 43, 5,192,224,124, +151,182, 94,113,243, 10,148, 45, 0,104,210,164, 73,188,175,175, 47,198,142, 29, 75,255,248,227,143,141,135, 14, 29,154, 62,116, +232,208,194, 62,112,228,200,145,244,224,193,131, 35,203, 90, 8,240, 15, 65,167,213,106, 96,106, 89, 21, 57, 25,209, 72,142, 9, +128,145,137, 61,186,116,104, 0,133, 82,131,115,103, 79, 34, 40, 56, 16, 60, 30, 15,118,246,149, 96,110, 97,141,176,176,183, 0, +240,170,108,155, 90,152, 88, 84, 70, 78,102, 12, 52, 73,207, 32,147,219, 98,212, 15,125,160, 80,106,113,234,244, 73,132,132, 4, +129,207,231,195,222,161, 18,204,204,243,108, 18, 90,166, 77, 3, 80,114, 60,173,114,137, 22,159,207,191,117,249,242,229,254,205, +155, 55, 23,188,123,247, 14,239,222,229, 13,110,210,211,211, 25, 2,246,207,196,160, 51, 67,202, 32, 1,157, 10, 86,103, 20,221, +187, 80,110, 98, 18,247,230,117,168, 93,122, 90, 34, 2,159,223,195,187,176, 96, 68,132,135, 66,171, 85,129,207,227,129,199,231, +161,114,213, 58,184,119, 63, 64,163, 98,152,128,210,108, 2, 64, 90,218,251,108,185, 93,141, 65, 43,150,205, 63, 63, 99,206, 18, +217,128,254,191, 35,232,205, 43,228, 48,246,160, 20,176,183, 50, 70,195,106, 63, 35, 46, 62, 25, 71,247,110, 85,112, 90,237,176, +162, 49,180, 74,178, 9, 0,118, 41,168,189,109,231,222, 49,187, 14, 28, 94, 50,103,202,120,187,239,251, 14,131, 56,237, 21,116, +241,207, 80,181,105, 55, 16,137, 57, 46, 94,189, 9,255,167,175, 18, 57,150, 46,177, 75,197, 31,229,217, 44,230, 66,124,240,241, + 99,130,115,145, 40,240,206, 18,137,244, 65, 57,164,170, 83,177,184, 66,159, 68,156,231,243,121,141, 87,172, 88,161,179,179,179, +211,134,132,132,224,247,223,127,231,158, 61,123,118,149,199,227,109,142,143,143, 87,149,103,211, 70,167, 11, 60,236,227, 83,187, + 89,223,190,116,200,148, 41, 10, 72, 36, 83, 87,175, 93,235,147,156,158,238, 72, 57, 14, 54,150,150,177,171,231,205,243,237, 63, +112, 96,250,203,123,247,100, 1,103,206,200,196, 12,243,172,188,116,126, 35,191,119,169, 54, 99, 99, 99,253,221,221, 92,176,111, +215, 58,104,181,106, 36,196,229, 9, 89, 41,169,153, 40,139,100, 21,183,153,191,234,170,239,194, 95,126,121,184,112,198,116,251, +118, 29, 59, 33, 58,240, 5,180,105,201, 32, 58, 6, 66, 34, 64,110,146, 17,146, 18,115, 48,247,224,241,164, 28,133,162,111,241, + 78,162,180,116, 22, 40, 86, 18, 83, 19,136,140,229, 16,203, 77, 62, 81,177,164,166,166, 16, 27,203, 33, 16,139, 75, 82,105, 62, +179,153,147,147,211,175,127,255,254, 65,143, 31, 63,182, 24, 59,118, 44, 90,181,106,245, 92,169, 84,122, 81, 74,179,191, 52, 63, + 5, 2, 65, 82,227,198,141,109,133, 66, 33, 51,102,204, 24, 65, 74, 74, 74, 97,100,245,156,156, 28, 92,186,116, 9, 53,107,230, +173,234,127,249,242, 37,234,212,169, 83,170,205,177, 63, 7,199, 1, 88, 54,115,128,243,234,135,129, 9, 83, 1,248, 85,173, 94, + 9, 55,175, 92,199,221,155, 1, 62, 45,234,114,155,186, 15,107,186,220,200,107,224, 28,143,198, 99,249,114, 83, 7,236, 63,117, +146, 31,250,108,247, 74,133, 34,216, 13,192,236,210,210, 73, 8, 1,165,244,179, 80, 14,124, 62, 31,135, 14, 29,170,232,189, 31, +223,181,107,215,132,159,126,250, 73,148,144,144,128,215,175, 95, 35, 55, 55, 23, 82,169, 20, 87,174, 92, 97, 0,108, 61,116,232, +208,149, 67,135, 14,117, 69, 94, 92,156, 27, 21,169,159,198,198,198,147,187,116,233,130,215,175, 95,227,201,147, 39, 39, 41,165, + 65,132,144,147,239,222,189, 27,212,182,109, 91,236,221,187,119,114,105, 68,171, 52,155, 28,199, 21,141,153,148,150, 95,119, 3, + 1,180,168,104,185,231, 79,224,109, 13, 0, 86, 86, 86, 49,118,118,118,166,129,129,129,112,113,113,129, 86,171,109, 94,209,186, +148,153,153,185,110,243,230,205,127,140, 30, 61, 26,203,151, 47, 31,118,252,248,241, 97,221,187,119,135,183,183, 55,246,236,217, +131,160,160, 32, 63,125,182, 21, 43,233,222,243,137, 99, 80,237,218,181, 39, 85,170, 84, 9,107,214,172, 65,112,112,176,239,178, +101,203,230, 5, 5, 5,161,102,205,154,146, 87,175, 94, 49, 95,210,134, 0,128,169,169,169,169, 78,167,195,153, 51,103, 30, 81, + 74,103, 16, 66,108, 55,108,216, 48, 88, 46,151, 35, 45, 45, 77, 25, 18, 18, 50,148, 82,122,246,255,187,173,163,132, 44, 24,251, +227,212,237, 63,142, 29, 42,109,210,184, 33, 20, 89,177, 80,230, 36, 66,145,253, 17,155,119, 93, 5, 33, 60,216,216, 56,192,214, +222, 25, 81, 81,209,184,127,225,162, 38, 87,161,220, 32,214,113,126,101,219,156,146,103,179, 81,158, 77, 69,110, 18,148, 57, 73, +133, 54,109,109, 29,243,109, 70,225, 94,192, 69,149, 50, 55,119,157,134,146,223,254,201,123,255, 79, 70,133,247, 58, 44,138,244, +244,244,105,227,199,143,247,154, 59,119,174, 21,195, 48,124, 75, 75, 75, 68, 69, 69, 49,127,254,249,103, 90, 78, 78,206,180, 47, + 73,144, 64, 40, 12,114,175, 81,211,235,251,239,191,103,122,245,234, 41, 26, 62,186,171,192,198,214, 22,153, 25,169, 8,123,253, + 2,111, 94, 61,131,123,205, 6, 88,188,108, 61, 96,110, 94,238, 70,146, 57,137, 97,183,228,118, 53,122, 44, 93, 56,251, 88,107, +207,239, 76,107,214,105, 32,106,232,102, 6,173,142, 65,108,108, 44,206,158, 9,212,134, 60,189,155,197, 49,154, 65,185,201,250, +109,193,115, 59,111, 84,180,163,158, 29, 57,180,106,245,230, 89, 91,119,236,155, 51,119,234, 88,227,182,109, 58, 35,248,250, 94, +156, 60,127, 44, 87,165,214,172, 22,241,177, 54, 56,133, 42, 42,154, 7, 42,149, 74, 91,124, 65,148, 74,165,210,126,109, 97,239, +217,179, 7,137,137,137,154,200,200,200,203, 12,195, 28, 47,109,179,231,146,176,137, 82, 77, 95, 66,174, 47,108,211,166,235,194, + 43, 87,164, 35,127,254, 89, 51,108,248,240,217, 80,171,181, 16,139,169,192,216,152, 7,137, 68,248,242,222, 61,217,198, 9, 19, + 44,137, 70,115,109,111, 25, 97, 3, 74,192, 55, 95,117, 88, 68,209,194,200,177, 51,160, 44,162,104, 61,120, 18,134,138, 40, 90, +249, 15, 70, 52, 33,164,197,212, 5, 11, 79, 13,234,210,209,163,174,107,101,137, 77,149,202,144,219,219, 35, 53, 57, 25,247,158, +188,209, 45, 59,118, 42, 36,159,100,233, 21, 87,134,227,184,188, 73,238, 0, 58, 78,155, 11,194,231, 3,249, 97, 28, 10, 86, 14, + 85,105,218, 10, 68, 32, 0, 75, 57,168,213,106,170, 71, 58, 99, 9, 33,253,134, 13, 27,118,227,252,249,243,188, 46, 93,186, 52, + 60,125,250, 52,247, 53,117, 71,167,211, 57,231, 19,174, 44, 35, 35, 35,193,168, 81,163,160,211,233,160, 80, 40,144,153,153,137, +208,208, 80,245,128, 1, 3, 36,249, 4, 66, 55,104,208,160,114,219,143,117, 39, 98, 85, 51, 7, 56,111,178, 20, 68, 14,206, 74, + 9,170, 98, 41,136,140,104, 81,151,219,180,238, 68,172,106,233, 12,243, 21, 41,145,254, 97, 9,185, 87,182,239, 63,117,146, 63, +162, 79, 63,214, 89,254,214, 71,106, 75,255,236,208,179,220, 70,237,179,224,164,250,144,172,226,200,206,206,158,183,104,209, 34, +239,244,244,116,231,174, 93,187,138, 60, 60, 60,240,240,225, 67,156, 63,127,158,121,240,224, 65, 76,110,110,238,124, 74,169, 10, +192,213, 47,201,211, 26, 53,106, 84, 17, 8, 4, 5,174,180, 45,249, 95,111, 57,125,250,244,160,177, 99,199,162,114,229,202,181, + 9, 33, 18, 90,129,231,136, 82, 90,232,101,248,198, 29, 69,248,198,141, 27,157,236,237,237,201,165, 75,151, 24, 62,159, 95, 97, +229,134, 82,186,135, 16,210, 92,167,211,253, 56,110,220, 56,120,122,122,130, 97, 24, 28, 60,120, 16,187,119,239,246,171,200,222, +173,165, 33, 44, 44,236, 89, 76, 76, 76,187,217,179,103, 99,205,154, 53,243,102,207,158,141,152,152, 24,132,133,133,189,248, 26, +187, 89, 89, 89,202,232,232,104,163,150, 45, 91, 54,113,113,113, 9, 25, 57,114,100,157,177, 99,199,194,207,207,143,222,190,125, +187, 63,165,244,210,191,162, 3,127,253, 54,245, 64,189,106,118, 87,150,173, 88,247,139, 91,181, 42, 63,141, 25, 53,144, 95,195, +189, 14,114, 51, 99, 97,101,109, 7,231, 74, 85,145,156,148,130,203,151, 47,177, 41, 41, 25,123, 88, 30, 89,250,246,109,106,252, +215,216,116,114,174,138,164,164, 36, 92,188,120,145,205, 72,207,218, 9, 29,111,217,171,200,244, 68, 24, 80,174,146, 85,210,100, +120,162,207,196,219,252,149,135, 27,243,194, 59,228,169, 92,233,233,233,211, 40,165, 41,250, 50,115, 82, 60,136,218,128, 1, 34, + 92,184, 80, 31, 58, 93, 11,115, 19,147,142,148,227,154, 54,104,208, 64, 62,112,224, 64,174, 77,155, 86, 98, 83, 83, 83, 82,187, +118,221,172,204,140, 12, 75, 0,160, 0, 91, 30,139, 46,216, 84, 90,192, 23,118, 98, 89,109,189,188,180,150,191,169,180, 62,204, +188,154, 29,177, 17,112, 88,204, 35,100, 20, 71,233, 94,134,135,165,225,137, 52,249, 75, 71, 79,197,220,126, 5, 91,206,204,171, +232, 40,175,168,235,144,199,227, 31,112,112,112,152, 31, 27, 27,155, 68, 41,101,191, 84,217, 40,216,130,167,199,244,233,186,198, +223,125,199, 88, 86,170,196, 81, 74,217,136,103,207,200,131,179,103,133, 15,206,158,149,234,212,234, 91, 39, 40, 13,215,199,166, +163,163,163,239,185,115,231,244,158,123,213,179,103,207, 87, 5,243,182,244,205, 79,183,106,206, 87,170, 85,113,250,174, 90,149, + 60,247,116,120, 68, 60,194, 35,226,174,190, 15,143,237,242, 37,101, 84,116, 83,105,146, 31,194,129,234,177,169,116,113,155,214, +214,214, 79, 5, 2,129,115, 69, 30, 88,150,101,227,147,147,147, 27,233,153,206, 33, 85,170, 84,241,139,138,138, 58,197,178,236, +140,111,161, 16, 18, 66, 90,241,249,252,139, 44,203,202,138, 43, 94, 5,100,140, 16,226, 42,145, 72, 62,153, 12, 95,150,205,213, + 11,235,254,210,178,109,219, 62, 15,238,222, 61, 61,103, 69,200, 39,243,134,166,246,177, 28, 61,100,210,180,223,142,108,221,248, +243,166,211,105,123,202, 85,155,237,236,110, 3,112, 47, 32, 92,122,228,101,147,114,148, 97,169,137,137,137, 47,128, 65, 28,199, + 89, 19, 66, 82, 40,165, 71,139,144,172, 47,206, 79, 62,159,239, 87,171, 86,173,105,111,222,188, 57,194, 48,204,152, 34,215,175, +113,115,115,155, 20, 25, 25,185, 69,167,211,205,169,192,243,110,218,182,109,219,244,141, 27, 55,242,102,204,152, 1,127,127,127, + 75, 74,105,250, 55, 42,119,123, 11, 11,139, 63, 88,150,245,160,148,158,203,206,206,158, 71, 41,205,173,168,205,252, 16, 15,131, +156,156,156,230,184,187,187,187,191,125,251, 54, 40, 46, 46,110,117,113, 53,232, 43,210,233,221,187,119,239,115, 27, 54,108, 32, +149, 42, 85, 66, 76, 76, 12,166, 79,159, 78,207,156, 57,211,147, 82,122,225, 75,219,100, 66,200,130, 9, 19, 38,172, 24, 62,124, +120, 33,161,245,245,245,165, 23, 46, 92, 24, 73, 41, 61,240,165,237,252,183, 84,239,107, 87,179,169, 70,249,236,202, 6,117, 61, +250,255, 48,172, 15,121,240,228, 45, 30, 62, 8, 64,108,124,252,105,142,199,155, 31, 22,150,242,246,107,109, 6, 60, 9,195,195, +128, 0,154, 16,159,112, 2,148,191,240, 85,120,114,248,255,215,189,255, 55,168, 90, 37,185, 14,201, 23,110,133, 85,225, 10, 67, +244,137, 86,235,232,232,136,212,212,230, 82,129,160,141, 68, 34,241,226,241,249,183,210,146,147,167,235, 75,180,254,137,138,253, + 89,135,238, 70,196,165,109, 73,240, 37, 54,139, 79,100,255, 18,155, 21,177,161,175,205,210, 54,149,230,212,234,120, 43,134,121, +186,137,150,158, 7,197,109, 58, 59, 59,255,200,113, 92, 21,125,211,196,227,241, 34, 98, 99, 99,119,125, 73,126,186,187,187,211, +119,239,222,129, 82, 74,190,101,185,255, 19,117,233,127,201,230,129,245,245, 29,107,214,171, 53, 39,248, 89,232,154,124,183, 98, + 33,150, 78,181, 52,105,211,161,253,162,123, 55,111, 47, 95,188, 41, 45,251, 95,153, 78, 66, 8,143, 86,116,117,203, 23,218, 44, + 8, 18, 90, 81,155, 34,145,104,123,179,102,205,126,124,248,240,225, 31, 12,195,140,251, 95,172,159,132, 16,111, 62,159, 63,187, + 70,141, 26, 13,195,194,194, 94,176, 44,187,166, 44,146, 85,129,193,239,252, 42, 85,170, 76, 20,137, 68,146,156,156,156,244,248, +248,248, 69,148,210,227,255,110,249, 89,219,221,170, 9,165,133, 65,183, 87,134,190, 75,125,252,205,108, 82,142,229, 40,127,197, +155,240,148,231,255,223,229,254,159, 78,178, 74, 83,185, 4,255, 95,137, 40, 32, 74,101, 34, 62, 62, 6, 64, 12,128, 19,255,174, +153,169, 15,201,170,160,220,152,248,239, 96,163, 56,242,137, 84,192,183,176, 85,156, 52,253,147,120,251,246, 45, 49, 60,242,255, +126,248, 97, 70, 80, 60,128,233, 77,188, 62, 63,151, 79,174,230,120,245,250,215,167,243, 75, 72,214,151,218,252,210, 13,159,181, + 90,237, 79,132,144,153, 21, 89,173,248,223,134,124, 82,117,225, 31,176,187, 10,192,170,127,247,251,127,245, 54,245, 41,128,158, +255,238, 54,255,199,234,100,197, 54,149, 54,192, 0, 3, 12, 48,224,223,186, 81, 87, 26,114,193, 0, 3,254,189, 80, 84,213, 42, + 74,188, 8,128, 78,165, 60,200,215, 43, 96,188,211, 23, 52, 20,215, 13, 54, 13, 54, 13, 54, 13, 54, 13, 54, 13, 54, 13, 54,255, +183,108,254,183,146,172, 79,200, 85,209,227,130, 85, 79,255,196, 11, 64, 39,131, 77,131, 77,131, 77,131, 77,131, 77,131, 77,131, + 77,131,205,255,230, 23,128,113,165, 29, 27, 92,135, 6,252,227,216,220,151, 56, 1,192,148, 83, 52,238,159,184,222, 0, 3, 12, + 48,192, 0, 3,254,149,160,148,238, 44,205,117,248, 47, 39, 90,132, 16, 71,228, 5,218,115, 3,240, 6,192,221,138, 44, 87, 46, +193,158, 53,128,129,132,144, 1,249, 55,123, 2,192,241,242, 66, 81, 20, 64, 38,147, 37,170, 84, 42, 91, 0,144, 74,165, 73, 42, +149,170,232, 94, 6, 4,159,111,143, 66,243,254,166,244,137,173, 85,171, 86, 77, 84,171,213,182,122,252,125, 38,165, 52,136,199, +227, 5,203,229,242,155,111,222,188, 57, 95,145,123,239,208,161,195, 72, 62,159,191, 18, 0, 88,150, 93,112,243,230,205,125,255, + 96,185, 53,175,228,104,191, 87,171,211, 50,137,201,105,139, 74, 91,186,189,173, 39,241, 21, 16,204,201,255,188,122,226,185,178, + 67, 88, 84,244,250, 50,210,215, 68, 40, 20, 78,182,179,179,235, 22, 27, 27,251, 20,192,207,148,210,114,163, 26,187,184,184,252, + 32, 16, 8,134,177, 44, 91,141,207,231,135, 51, 12,115, 40, 58, 58,250,128,161, 25, 49,192, 0, 3, 12, 48,160, 60,178, 85,210, +247, 21, 34, 90,181,172,137, 61, 5, 6,131,160, 51, 40,174, 17,224,232,235, 20,250, 81,223,223,123,215, 34, 58, 29,147,247,159, + 34, 30,216, 75,239,121, 59,189,189,189,157,167, 76,153,130, 86,173, 90,225,225,195,135, 45,247,236,217, 51,154,207,231, 7,113, + 28,119, 11,192, 67, 74,245, 10,165, 96, 12,224,123, 0, 67,187,117,235,214,105,229,202,149,252, 58,117,234, 64,169, 84,226,246, +237,219,109, 86,175, 94,189,129, 16,114, 29,192, 97, 0,103,203,138, 13,163, 82,169,108, 11, 56, 19, 33,196,182,127,255,254,143, +139,146,171,252,253,213, 8,165,244, 1, 33, 36,128,101,217,135, 39, 78,156,136,169, 69, 72,243,241, 85, 68,127, 78,251,160,249, + 44,102,146, 90,173,182, 61,243,219, 42, 8, 36, 18,168,179,179,208,114,212,223,171, 64,175,253, 50, 7,132, 99,192, 7, 77,247, + 90,177, 33, 8, 64,112,124,124,124,144,167,167,103, 68, 69, 11,153,207,231,175,188,124,249,178, 3,165, 20, 93,186,116, 89, 9, +224, 31, 33, 90,132, 16, 73,139, 38, 13,110,157, 59,121, 68,154,147,150,136,174,223, 15, 58, 68, 8, 25, 73, 41, 61,249, 9,105, +234, 78,236,136, 0,115, 38,172, 58,204, 7,128,109,243,135,254,188,161, 11,217, 52,253, 10,253, 72, 8,241, 2, 10,183,108,250, +141, 82,122,107, 91,119, 98, 7, 62,230, 78, 88,117,152, 0,192,239,243,135,206,217,214,157,108,156,120,177, 98,171, 42, 9, 33, + 19, 71,142, 28,185,105,229,202,149,124, 7, 7, 7,196,197,197,117,173, 93,187,118, 13, 66, 72,237,178, 38, 17, 87,169, 82,229, + 88,251,206,189,171,246, 29, 48,216,200,198,218, 2,241, 9, 41,166,199,142,252, 49,190, 74,149, 42,221, 34, 34, 34, 6, 25,154, + 17, 3, 12, 48,192, 0, 3, 74,233,119,190, 60,188, 67, 99, 71, 34,203,213,162,183,128, 79,126,104,219,188, 78,199, 33,221,219, +242,106,123, 84,199,171,151,161,223,157,189,249,104,117,109, 59,222, 13,134,165, 7,140, 69, 56,243, 44,190,236,149, 48, 58, 6, +130,171,103, 14, 3, 0, 38,142, 30,202,127,252,248,113,245,198,141, 27, 23, 6, 4,236,216,177, 35, 58,118,236, 72,182,109,219, +214,224,234,213,171, 13,118,239,222,173, 37,132,236, 45, 39, 8,221,100, 55, 55,183,213,155, 54,109,146,120,122,122, 66, 34,145, + 20,158,147,203,229,232,217,179, 39,122,246,236,201,143,143,143,239,114,238,220,185, 46,191,253,246,155,134, 16, 50,155, 82,186, + 69,159,204, 91,180,104, 81,147, 18,190,190, 76, 8,121,207, 48,204,139,250,245,235,199,212, 36,164,250, 79,221, 91, 93,155,216, +218,221,184, 52, 59, 2,177, 24,251, 71,230,245,213, 69,137, 86,196,205, 75,144,155,154,164, 26,153,152, 4, 1, 8, 6, 16, 68, + 41, 13,126,255,254,125,168, 7, 33, 13, 90, 88,240,246,238, 78, 99,235, 87,128,108, 33, 38, 38, 6,102,102,102,178,246,237,219, + 39, 16, 66,150,220,186,117,107,231, 55,174, 83,205,151,204,153, 40, 74,143, 12,194,199,215, 15, 48,115, 64, 27,163,233,155,255, + 90, 14,224,100,217, 21,145,199,251, 45,128,243,153,158,183, 25,239,162,212,212, 84, 79, 0,176,178,178, 18, 3,184,181,254, 17, +186,207,104, 77,200, 87, 84,116, 17,159,207,223,186,127,255,254,177, 63,252,240, 67,222,214, 17,247,238, 65, 46,151, 99,217,178, +101,149,103,205,154,229,139, 82, 54, 2,118,113,113,249,161,125,231,222, 85, 55,174, 89, 94, 59, 59, 45, 83,189, 99,235,241, 39, +142,117,107,242, 38, 76,158,101,178, 81,171,182,119,113,113,249,193,160,108, 25, 96,128, 1, 6, 24, 80, 17, 53,171, 92,162, 85, +211,134,236,107,219,200,125,224, 16,239, 54,146,122,117,235, 64, 36,249, 59, 80,116,227, 38, 77,208,184, 73, 19,158, 79, 78,118, +231,199, 79,158,117,254,243,234, 67,117, 77, 27,114,252, 77, 50, 29,169,111,194, 10, 54,165, 93,249,189, 93,135,220,140, 36, 41, + 0, 24,155,219,170,230,159,249,120,179,117,235,214,112,118,118, 22,221,184,113, 99, 12,202,142,151, 50,255,205,155, 55, 18, 62, +191,236,120,168,142,142,142,232,223,191, 63,106,214,172, 41,110,223,190,253,124,252,189, 29,198, 39,144, 74,165, 73,132, 16, 91, + 0,176,180,180,100,151, 44, 89,242,130,210, 66,207, 32,165,148, 62,224,241,120, 15, 57,142,123,116,246,236,217,216, 58,132,216, +246,104, 92,243,238,196,225,253,141,232,159, 27, 74, 37, 9,170,172,172, 18,191, 55,146, 27, 39,203,140,141,131, 36, 70,210, 96, + 0, 65, 0,130,157,156,156, 66,235, 16,226,220,162,102,149,171,219,102, 12, 53,209, 39, 47, 27, 55,110, 92,195,203,203, 75,202, +178, 44,114,115,115,241,251,239,191,155,201,100, 50,179,110,221,186, 45, 6, 80, 88, 1,106, 19, 82,175,159, 35,127,220,146, 56, +102,210, 23, 16, 25,243,182, 45,155, 68,110,246, 91,108,218,164, 69, 91,188,189,117, 16,105,105,217,200,204,200, 1,199,113,159, +237, 48, 60,241, 34, 77,220,214,147,172,222, 54,111,232, 92,194,227,145, 6,125,126, 70, 47,251,204,169,132,144,151, 0,132, 98, +177,184,176, 30, 18, 66, 28,235,214,173,187,186,250,119,109,241,251,130,225,160, 28, 71, 1,172,214, 87,205, 34,132,216,154,152, +152,156,189,122,245,106,243,166, 77,155,226,225,195,135,248,240,225, 3, 38, 78,156,168,153, 52,105,146,104,196,136, 17,100,230, +204,153, 83, 8, 33,127, 82, 74,239,127,246, 32, 8, 4,195,190,239, 59, 72,156,147,145,165,210,168,181, 26, 75,107,115, 78,157, +171, 82,164,164,103,169, 6, 13,253, 81,243,242,249,163, 97, 0, 62, 35, 90, 95,147,159, 6, 24, 96,128, 1, 6,232,141,166, 0, +108, 0, 36, 3,120, 82,236, 24,249,159, 81,194,113, 10,242,188, 82, 86, 69,108,165, 32,111,218,143, 13,242, 98,124, 62, 6,144, +254, 53,137, 43, 45, 42, 60,144, 31, 25, 62, 63, 64,113, 65,160, 98, 82,132,104,209, 55,201, 20, 76, 90, 56,216,212,247, 96,179, + 63,223, 62,137, 72,205,145,169,100, 17, 19, 30,138,145,211,151,225, 77,114,233, 17,185,189,107, 17,157,153, 24, 2, 19, 17, 32, + 50, 50, 87, 15,241,187, 18,208,164, 73, 19,213,124, 79,158,183,239,182, 60,165,107,230,184,161,104, 57,227,207, 43,225,225,225, +140,163,163, 35,126,248,225, 7, 80, 74,123,148,113,115,137,217, 79, 2,108, 95,247,104,133,102,137, 37, 79,147, 10, 11, 11,195, +157, 59,119, 16, 29, 29,141,106,213,170, 97,204,152, 49, 73,148, 82,187,210,108,118,237,218,245,246,111,191,253,230,185,118,237, +218,192,253,251,247,183, 46,205,221, 84,155, 16,227, 6,149,237,159,236,246,157, 91,141, 92,218, 43, 84, 68,191,131,185,191,146, +148, 64,242,104,124,252,223,121,247,107, 13, 7, 24,155,153,192,216, 84,158, 56,226,234,211, 66, 37, 43,255,253, 77, 99, 66, 76, +157, 29,172,158, 30, 93,191,200,137,119,243,152, 84,180,227, 1, 41,143,100,181,111,223, 62, 96,229,202,149, 22,241,241,241,184, +126,253, 58, 42, 87,174, 12,133, 66,129,117,235,214, 37,220,189,123,215, 49, 63,189,118,205,106,186, 6,253, 62,107,148,153,104, +204, 47,146,138, 86, 36,145, 64,176, 37,224,242,177, 73,102, 18,138,140,248, 15,120, 31,250, 18,143, 95, 69,232, 14, 92, 11, 98, +179,148,106,111, 74,233,205,146,126, 55,185, 13,169,126, 43,222,230,220,229,219, 79,220, 29, 28, 28, 48,126,252,120,124,252,248, + 17,148, 82,112, 28, 87,184, 74, 99,254,252,249,168, 81,163, 6, 70, 14,238,165,144,164, 61,107,127,238, 21,125,170,103, 5,175, +235,234,234,122,245,214,173, 91,118, 78, 78, 78,184,123,247, 46, 62,126,252, 8,123,123,123,220,184,113, 3,126,126,126,251, 39, + 76,152, 48, 96,229,202,149,210, 33, 67,134,196, 93,185,114,165, 82,241, 57,117,149, 43, 87, 14, 61,119,229,174,252,230,233,171, +239, 45, 76,140, 96,108,107, 5,190,220, 84, 69, 65, 20,246,182, 22,162, 65,189, 59, 86,143,140,140,244, 40, 86,254, 95,149,159, + 6, 24, 96,128, 1, 6,252,141, 11, 23, 46, 80,111,111,111, 82,240, 94,156, 66, 16, 66,206,231,243, 1, 13, 0,113,145, 99, 16, + 66,206,231,171, 33,159, 28,251,248,248,204,247,245,245,125, 89,112, 92,112,205,188,121,243,234,248,249,249,173,106,217,178,229, +209,128,128,128, 37, 0,222,125, 45,209, 42, 77,229,210,107,142, 22, 19,251, 24, 34,247,110, 16,178, 58,232, 82,222,128,203,136, + 2,140,237,161, 36,114,164, 38, 68,225,245,221,147,121,220,176,188, 76,124, 77,133,132,144, 27,161,161,161,120,253,250, 53, 98, + 98, 98, 96,100,100,244,217,117,247,238,221,131, 76, 38,131,131,131,131,126,146,157,230,211,253, 88,131, 26,187, 66,222,210, 19, + 41, 67,126,194,141, 27, 55,144,148,148, 4,145, 72, 4,177, 88, 12,134, 97,202,181,199,227,229,237,248, 91,160, 98,149,116, 77, +123, 66, 4,206,150,242,115,219, 22, 79,171,194,123,112, 94,168,140,126,135,120, 21, 11,115,125,148, 60,185, 49,140,140,141, 18, +100, 50,163,226, 36,235,109, 99, 66,132,198,114,233,185,189, 43,102,218,243,159,223,144, 42,223, 5, 65, 84,130,141,206,157, 59, +143, 7,176,152, 82,154,209,190,125,123,187,149, 43, 87, 90,196,197,197,225,213,171, 87, 56,126,252,120, 50,147,119,163,132, 82, +186, 20, 0, 90, 18, 34,117,177, 49,191,178,229,151,105, 38,184,117, 76,140, 49,191, 84,184, 34,153,121,244,188,208,111,196,132, + 73,155,166,245, 68,110,182, 18,135,175, 61,199,229,103,239,123, 1,184, 87,214,188,183, 45,247,232, 59, 66, 72,199,190,125,251, +190,184,115,231,142,245,238,221,187,193, 48, 76,137,175,221,187,119,227,250,221,103, 83, 41,213,155,100, 57, 86,169, 82,229,250, +163, 71,143,108,140,140,140,112,237,218, 53,100,100,100, 20, 42, 89, 35, 71,142, 36, 25, 25, 25,131,127,255,253,247,126,145,145, +145,107,238,222,189,155,138,188,237,160, 62,169, 8,124, 62,255, 61,195,104,107, 57,120, 84, 23, 12,232,217,182,109, 78,106, 16, +228, 86,245,241, 32,240,253,185,140,244, 84, 37,159,207,127, 95,244,250,111,145,159, 6, 24, 96,128, 1, 6, 84,152,208,156,167, +148,246, 40, 74,156,138, 19,174,130,207, 5,215,249,250,250,246, 40, 74,194, 0,192,207,207,111, 85,145, 99,197,183, 72, 91,121, +147,225,219, 19, 66, 40,128,246, 37, 93,164,126,117, 10,234,215,103, 33,114,109, 13,113,205, 94,224,187,182, 65,116,208, 45, 4, + 94, 90,143,216,151,247, 64, 57, 22, 14, 53,154,233,155, 22, 85,173, 90,181,160, 82,229, 77,205, 82,171,213, 16, 25, 91,168,102, +142, 27, 42, 5, 0, 78, 32, 85, 23, 73,180, 94, 6, 77, 90,123,161, 89, 34,197, 99,187, 60, 2, 92,160,108,173, 24, 53, 10, 34, +145, 8, 34,145,168,112,243, 89,125,136, 86,254,166,168,224,242,220, 87,180,164,243, 77, 36,194,195, 71, 23, 79,110, 38,137, 12, + 22,171, 67, 30, 32, 94,205,209,115,137,236, 5,125,118, 78, 54, 50, 54,138,147, 25, 25, 5,203,228,198, 69,137,214,123, 0,160, + 66,225,129,131, 75, 39,215, 55, 78, 12, 55, 86, 61,185,129, 4, 21,167, 53, 45,217,204,210, 75,151, 46,217, 10, 4, 2,123,150, +101, 17, 29, 29,141,151, 47, 95, 98,227,198,141,137,217,217,217,237,159, 61,123, 22, 86, 36,189,188,166, 50,241,241, 3,203,166, + 85, 21, 4,249, 75,213,239, 67, 74, 36,111,101,193,166, 94,159, 46,189,218, 55,184, 48,126,248, 2,244,238,254, 29, 70,180,175, + 77, 35,226,211, 84, 0,174,233,179,129, 53,165, 52,142, 16,210,185, 93,187,118,135, 26, 54,108,232, 65, 41, 69,189,122,245, 48, +120,240, 96, 28, 56,112, 0,129,129,129,200,202,202,210, 94,189,122,117, 3,165,116,143,158, 15,156,145,133,133,197,229,155, 55, +111,218, 24, 25, 25,225,234,213,171, 80, 42,149,112,112,112,192,164, 73,147,196,126,126,126,251,179,178,178, 6,248,250,250, 74, + 35, 34, 34,182, 92,185,114,165, 50, 0, 30,165,244,179, 74,160,209,104,118, 30, 62,176,111,211,164,201, 83,156,110, 62,124,117, + 67,157,147,109,230,234, 26,147,101, 99, 33, 55,217,240,235, 82, 23,141, 70, 51,190,228,252,188,253, 69,249,105,128, 1, 6, 24, + 96,192,231, 26,198,133, 11, 23, 74,229, 34, 69,201, 83,113,178, 85, 17,146, 6, 64,233,227,227, 51,159, 16,114, 62, 95,241, 82, + 2,136,255, 39, 72, 86, 33,209,162,148,250, 19, 66, 64, 41,245, 47,213, 10,199, 66, 27,113, 7,218,136, 59,144,181,156,138,191, +124,135, 20,251,147, 47,223, 34,172,231,178,107, 55,213,106,181, 96,223,190,125,133,243,182, 0,128,101,217,111, 94,138, 21, 33, + 90,249, 68,239,179, 68, 84,145,200,253,119,206, 24,208,194,138, 85, 8, 53,247,206, 33, 78,205, 49,107,222,105, 21, 79, 50,232, +111,243, 75,177,121,102,250,120,196,220,189, 14, 35,185, 60,102,236,157,224,162, 42, 86, 16,128, 15, 0, 80, 69,106,122,227,248, +204, 33,109,236, 69, 16,105, 46,156, 64,188,154, 83,111,143,212,237,217, 88,114,161,130, 82,138, 15, 31, 62, 64,161, 80, 32, 32, + 32, 0, 39, 79,158, 76, 46, 78,178,242,211,123,251,143,159,135, 53, 55,205,254, 40,210, 60,185,142,120, 53,167,174,161, 15,185, +170,223,167,181,136, 71,174, 18, 30, 95,214,189,109,109, 76,255,177, 15,214,255,241, 23,163,177,109,219, 99,211,217,139, 3,115, +212,218,249,250,144,172, 34,105, 14, 2, 80,155, 16, 34, 1,224, 53,120,240,224,139,253,250,245,131,191,191, 63,206,157, 59,231, + 14, 32, 33, 63,255,151, 1,176, 67,222,106,196,210,118,142,231,137, 68,162,163,215,175, 95,175,227,232,232,136,235,215,175, 67, +169, 84, 98,194,132, 9,154,201,147, 39,139, 70,142, 28, 73, 50, 51, 51, 11,149,172,128,128,128,212,210, 72, 22, 0,196,198,198, + 94,114,117,117,109,213,174, 93,187, 62, 85,221,107,154,134,103,103, 37, 25, 25, 73,101,119,253,111,137,158, 60,186,191, 37, 54, + 54,246,113,201,249,121, 67,239,252, 52,192, 0, 3, 12, 48,160,116,120,123,123,251, 95,184,112, 1,222,222,222,254,229,244, 37, + 61,190,144, 12, 21,252, 78,232,235,235,251,210,215,215,247, 19,197,235, 43,149,182,226,174,195, 11,148,210,132,162,138, 86,133, +192,102, 70,127,126, 3, 28, 87,145,155,253,236, 59, 11, 11, 11, 70, 38,147,125, 66,180, 56, 61,109,166,157, 62,130,240,137, 67, + 11,149,172, 2,101, 11, 93, 71,126, 21,209,226, 56, 46, 0,192, 39,137, 48,182,171, 57,228,232,240,206,173,107, 87,117,226,233, +142,111, 68,172,130, 81, 45,126,163, 85,189,206,166,189, 94,149, 48,201,186,208, 38,163,131,212, 88, 22, 37,147, 27, 23, 39, 89, +145, 0, 32,183,175,209,111,255, 16,175,246, 13,106,186,241,152, 99,235, 16,167,208,229,248,132,106,181,225,185,244, 84, 41,121, +184,248,187,239,190, 91,108,101,101, 37,221,180,105,147,153,171,171, 43, 24,134,209, 20, 39, 89,198,118, 53,135, 28, 27,217,181, +117, 13,123, 11,158,238,207,205,136, 81,178,138,141,225,186,253,219,245, 32, 89,214,102,242, 43,219, 87, 77,148, 25, 73,132, 80, +169, 84,240,219,246, 39,174,222, 15,233,145, 28,124,250, 10,128, 43, 95, 81, 39,199,246,232,209, 99,253,178,101,203,160,211,233, + 48,102,204, 24,188,127,255,254,234,155, 55,111, 54,186,184,184,204,254,249,231,159, 29,237,237,237, 49,112,224, 64, 17,128,145, +165,216,248,245,240,225,195, 61, 26, 52,104, 0,127,127,127,100,100,100,192,193,193, 1,147, 39, 79, 22,251,250,250,238,207,202, +202, 26,176,106,213, 42,233,135, 15, 31,202, 84,178, 62,169,215, 44,187, 98,199,250,137,179,155,182,104,195,123,247, 46,140,137, +110,230,201,187,117,253,220, 29, 43, 43,171,253,159,228,231,168,110, 21,206, 79, 3, 12, 48,192, 0, 3,190, 25, 46, 0,240, 46, +174,114, 21, 39, 97, 5,138, 85,209,227,226,215,231,159, 87,127,109,130,138, 43, 90,249,196,235,211, 57, 90, 69, 39,193,151, 7, + 46, 55, 89, 47,242,244, 25, 91,173, 69,116,227,155, 66, 48,223,147, 7,145,177,133,170,231,178,107, 55, 75,187,214,216,216, 88, +111, 69,139, 83,171,202, 35, 78, 21, 34, 90,249,115,180, 46, 83, 74, 63, 33, 90,230,246, 53, 61, 23,206,157,182,161, 77,191,174, +188,196, 31, 91, 34, 35, 71,173,254,249, 21,195,197, 42,202, 38, 89,121,189,184, 46,194,200, 88, 30, 44, 53,254,100, 94, 86, 52, + 0,200,236,170, 55,243,153, 49,101, 91,135, 33, 61, 73,242,132, 54, 72,207, 80,170,103,191,100, 72,156,146, 14,120, 69,233,173, +146,204,221,184,113, 99, 7,128, 29,237,219,183, 79, 52, 54, 54, 70, 78, 78,206,103,101, 80,144,222,214,253,186,242, 18,199, 54, + 71, 90,174, 86,253,243, 75, 6,241, 74,238,104,121, 36,203,198,220,228,202,246,149, 19,141,226, 99, 35, 33, 18,137, 32,151,203, +113,237, 94, 48,146, 67,206,124, 13,193, 2,159,207, 95, 50,127,254,252,197,147, 38, 77, 66,106,106, 42,206,157, 59,135,238,221, +187,227,200,145, 35,174, 23, 47, 94, 92,239,229,229, 5, 62,159,143,243,231,207, 67,167,211,189, 45,165, 60,251,140, 27, 55,110, +118,191,126,253,240,248,241, 99, 36, 36, 36,124,162,100,101,100,100, 12,222,182,109, 91,191,136,136,136,114,149,172, 98,104, 86, +197,173,145,104,222,162,181, 80, 43,146, 4,201,113, 15,253,111, 92,227, 61, 72, 75, 75, 51, 2,144,249,165,249,105,128, 1, 6, + 24, 96,128,222,170, 86,105, 92, 36, 57,159, 68, 37,151,116, 92,132, 96,149,116, 76,138,169, 96,154, 98,231, 3,255,201,123,210, + 75,209, 18,216,213, 5,147, 24, 82,132,104, 37,125,114, 94,106, 98,169,151,235, 80,199, 64,176,125, 79, 97, 28, 45,105,106,106, +170,212,218,218, 90, 85,148, 32, 24, 25, 25,193,209,209, 17,233,233,233,216,185,115, 39, 0,148, 55, 41,154, 49,237, 55, 28,205, +134,140,193, 19,103, 49,168, 78, 91,168,108,109, 31, 53,234, 19,178, 37, 18,137, 10,230,134,149,215,233, 62, 34,132, 68, 2,120, + 64, 41,165,141,107, 84, 91, 46, 53, 54, 30,213,164,190,155,245,244,137, 99,133, 17, 73,106,220,108, 51, 47,227,207, 95,231,202, + 99,168,124, 82, 20,205,184, 95,142,189,240,239,127, 63, 88, 92,201,138,109, 84,163,218, 2,169,145,244,199, 22,117,107,216,251, +204,156, 40,140, 72, 84,147,155,205,126,206, 58,249,219,207, 70, 31, 96, 50, 59,134,166,223,210,163,120, 22,119,239,222,125, 49, +165,148,114, 28,183, 8, 0,138,166,119,230,228, 31,133,225, 31, 85,184,209,102, 65,250,201, 95,231,154,196,160,236,244,218,212, +239,211,218,206,194,244,202,246, 85,147,140, 18,226,162, 32,145, 72, 96, 98, 98,130,152,196, 76, 8, 5,124,229,215, 84, 54, 66, +136,196,211,211,115,238,196,137, 19, 17, 28, 28,140, 9, 19, 38, 36, 68, 71, 71,159, 58,118,236,216,132, 95,126,249, 69,208,165, + 75, 23, 36, 36, 36, 96,245,234,213,186,123,247,238,173, 2,176,186,196,250, 40, 16,140, 93,190,124, 57,141,143,143, 39, 31, 62, +124,128,131,131, 3,166, 76,153, 34, 94,181,106, 85,225,156,172,138, 40, 89, 5,136,141,141,245,119,119,115, 65,175, 75, 27,192, +232,212,254, 25,169,209,119, 94,135,167,251, 91,138,197,179,218, 52,174,255, 69,249,105,128, 1, 6, 24, 96,192, 55,193,147,114, +142,255,165, 40,201,117,168, 47,209,122,187,121,193,104,247,209,147,230, 64,230,218, 26,234,208,211,224,114, 18, 11, 21, 45,169, +220, 2,150, 46, 30,200,200, 85,227,196,141,103, 0,240,182, 34, 9,203,206,206, 70,227,198,141,177,117,100,141, 14,170,236, 84, +169, 12,128, 90, 98,170, 58, 35,110,123,243,226,197,139, 10,142,227,142, 2,184, 88,142,153, 37,117,234,212,217,178,118,237, 90, +177,199,144,209,200,121,120,183,184, 58, 5,153, 76, 6,137, 68,130,160,160, 32,220,188,121, 83, 3, 96, 73, 57, 25,246,136, 97, +152,192,163, 71,143,198,186, 87,115,238,218,190,105,179,169,243,231,249,152,188,186,123, 21,139, 86,109,225,170, 55,233,146,233, +119,228, 76,118,166,220,165,163, 34,254,245, 11, 61,110, 53,176, 24,201,138,247,168,234,210,161,101,163,134,115, 22, 45, 90, 96, +250,242,238, 53,252,242,219,118,234,222,160, 83,230,111, 39,207,102,165, 24, 85,254, 78,153, 24,250, 88,159, 60,188,125,251,246, + 14, 0, 59, 10,142,139,167,215,103,217, 70,174, 70,211,174,233,126, 71, 78,230,102,153,184,116, 42, 43,189,182,181,251,182,170, +228, 96,121,101,243,138,159,140, 62,198, 69, 67, 34,145, 64, 46,151, 35, 58, 33, 3,139, 55, 28,207,213,114, 92,215,175,172,139, + 18, 19, 19, 19,137, 86,171,197,214,173, 91, 17, 29, 29,221,146, 82, 26, 77, 8,217, 62,104,208,160, 77,245,234,213,171,245,242, +229,203,183, 57, 57, 57,147, 40,165,175, 75, 51, 98,110,110,222,210,198,198,134, 60,120,240, 0, 63,253,244,147,102,202,148, 41, +162, 17, 35, 70,144,244,244,244, 47, 85,178, 0, 0,206,206,206,158,223,123,183, 66,235,206, 19,252, 53,170,140, 59, 17,175,247, +251,243,232,125,105,227,134,245,191, 40, 63, 13, 48,192, 0, 3, 12,248,223, 64, 89,147,225,203,220,141,218, 19, 16,212,176,194, +248, 58, 78,162,143, 7,126,157, 66,179,195, 3,168,242,241, 14,154,117,250, 71,122, 97,245, 8,122,113,243,116, 58,193,187, 14, +173,101, 75, 62,214,176,194,120, 79, 64, 80,214,238,222,221,107, 66,215,217, 13,180,179, 27,168,119, 13,232, 0,204,111,212,168, +209,153,201,205, 64,233,171,195,148,190, 58, 76, 39, 55, 3, 5,240, 19, 0,185,190, 59,134, 3,112, 0,176,179,113,227,198,204, +173, 91,183,232,155, 1,157,232,243, 90,214,116,210,164, 73,244,151, 95,126,161, 67,135, 14,165, 54, 54, 54, 12,242,252,165, 14, +229,217,236,213,171,151, 51,165, 20,149, 42, 85, 50,111,226, 81,253, 99,208,141,115,244,206,129, 77,244,143,201,125,105,243,122, + 30, 41,246,181,218, 5,202, 28,106, 54,212,119,103,115,123,123,251,121,148,210,174,148, 82, 7, 74, 41,220,221,173,228,141,106, + 85,143, 15,188,126,142,222, 61,184,133,254, 49,185, 47,109, 81,191,118,170,179,135,215,107,169,109,173,102, 95,186, 91,122,137, +233,173, 91, 43,197,174,122,171, 23,165,165,183,168,205,170,205, 6,158,141,141, 79,164,143, 30, 61,162, 23, 47, 94,164,119,239, +222,165, 7,142,157,165, 46, 77, 7,228, 88,215,235,221,250,107,119,117, 7, 96,230,237,237, 77,223,190,125, 75,187,117,235, 70, + 1,152,125,137, 77, 0,103, 34, 34, 34,104, 72, 72, 8,157, 63,127, 62, 5,176,111,226,196,137,202,204,204, 76,218,169, 83,167, +104, 0, 60, 20,171,139,250,166,179, 90, 21, 39,191, 62, 61,219, 46,153,252, 83, 63,207,175,205,207,111,184, 43,188,193,166,193, +166,193,166,193,230,127,189,205,255,228, 87, 62, 15, 25, 87,228,189, 81,193,185, 50, 21,173,219,121,106,192,142,122,118,228,208, +170,213,155,103,109,221,177,111,206,220,169, 99,141,219,182,233,140,224,235,123,113,242,252,177, 92,149, 90,179, 90,196,199,218, +224, 20, 90,110, 28,138, 11,175,169,176, 4,245,200,200,210, 13,133, 49,152,222,165, 3,148,210,237, 21,100,146, 9, 0,198, 17, + 66,214,122,121,121,173,252,177,117,179,190,147, 91,117,128, 78,167,195,129, 3, 7, 16, 21, 21,117, 10,192, 2, 74,169, 94,138, + 91,112,112,112, 74,157,234,149,167, 89,202, 68,115, 38, 13,237, 99,147,252,254, 21, 98, 67,159, 3, 0,212,106,165, 46, 33,204, +191, 65, 69,210, 39,147,201, 30,217,216,216,188,177,177,177, 73,103,213, 57,227,164, 2,211, 69, 19, 6,127,111,155, 26,241, 26, + 49, 47,243, 60,163,106,149, 66, 27, 19,118,179,214,151, 48,233,202,149, 43, 75,140,133, 24, 95, 98,122, 53, 42,221,199,183,161, + 13,245,177,163, 80,107, 86, 45, 93,127,224,187, 21,115, 70, 73, 76, 77, 77,241, 44,228, 29, 22,173, 59,146,171,212,232,186, 38, + 7,157,190,255,141, 88, 63,116, 58,157,222, 11, 29, 74,193,220, 6, 13, 26,212, 92,185,114,165,251,200,145, 35,241,181, 74, 86, + 81,188,255, 16,235,211,190,125,251,218,239,222, 60,243,178,148,137, 14,125, 77,126, 26, 96,128, 1, 6, 24,240, 63, 3,111, 74, +233,206,130, 8,241,249,174,196,231,250,184, 14,243,136, 71, 34, 85, 0, 88, 86,205,142,108,159,183,114,253, 98, 30,217, 48,138, +163,116, 47,195,195,210,240, 20,154,252,149, 29,175,194,187, 22, 97,190,235, 61, 84, 0, 0, 66, 1,152,175,176,245, 22, 64, 63, + 66, 72,211, 93,247, 31, 47,204,255,122, 5,165,180, 66,190, 92, 19, 1, 66,218,212,174,230,212,182, 81, 29, 41,159, 85, 34, 54, +244, 61,210,114, 85,184,246, 50, 42,131, 71,121,123, 43,154,174,240,240,240,219, 0, 80,183,122,229,208,182,181,221, 92,218, 53, +174, 99, 36, 36, 26,196,190,122,134, 76,165, 6, 87, 95, 70,101,130,144, 47,158, 80,253,173,210,251, 49,232,204, 19,155,250,125, + 58, 17, 66,174,207,159, 60, 68,178,120,221,209,111, 74,178, 0, 40,226,226,226, 82, 21, 10,133, 85,124,124,188, 6, 95, 24, 36, +142, 82,250,142, 16, 82,111,250,244,233,203,102,207,158, 61,231,215, 95,127, 21,125,201,156,172,210,144, 30, 23,117,186, 93,157, +111, 87,254, 6, 24, 96,128, 1, 6,252,247,163, 96,158, 86,241,249, 90, 21, 10,239, 16,158, 72,147, 1, 76,114,115, 35, 51,223, +191,167,154,111,149,184,146,148,174,175, 36,111, 79, 0,244,252, 98, 3, 60,146,253,240,109, 84,206,163,183, 81, 57,224, 40,229, + 40, 85,243,120,136,201,213,106, 87,133,133,199, 94,249,138, 82, 96,159,188,139, 86, 62,125, 31,163,162, 28, 71, 57, 74, 53,132, +224,163, 78,199,173, 10, 9,143, 60,251,239,144,222,228,160,211,247,237,107,247,109,123,255, 81,200,204,220, 92,237,150,228, 87, +167, 3,190, 97,185,232, 8, 33,195, 90,182,108, 57,154,101,217,237,148, 82,221, 87,216,210, 0,152, 75, 8, 57, 21, 28, 28,124, + 60, 32, 32, 32,225, 91,144,172,127,180,252, 13, 48,192, 0, 3, 12,248,175,196, 23,111, 42, 93, 26,190, 37,201,250,119, 68,240, +219,136,198,255,132,221,144,183, 17,117,255, 19,210,251,241,213,169,167, 0, 6,255, 67,149,241, 42,128,171,223,146, 84, 19, 66, +170, 0,224,127, 19,146,245, 15,150,191, 1, 6, 24, 96,128, 1,255,157,248,234,189, 14, 13, 48,224,223,124, 36, 65, 1, 48,134, +156, 48,192, 0, 3, 12, 48,224, 95,212, 15,149,170,104, 17, 0,157, 74,249,209,245, 10, 48,185, 78, 95,144,168,235, 6,155, 6, +155, 6,155, 6,155, 6,155, 6,155, 6,155,255, 91, 54,255, 27, 65, 8,113, 64, 94,180,250,194,168,245,133,228,235, 31, 94,238, +104, 88,250,106,176,105,176,105,176,105,176,105,176,105,176,105,176,249,223, 30,222, 97, 92,209,247,162, 47,158, 65,240, 51,192, + 0, 3, 12, 48,224, 31, 28,233, 75,242, 55,146,255,162,243, 6, 24,240, 31, 84,215, 11, 87, 29, 22,157,179, 37,248, 2, 67,213, +243,149,176,119,255, 96, 98, 39, 59, 56, 56,140,171, 95,191,190,135, 72, 36,226,101,103,103, 47,189,121,243,230,146,226,215,181, +171, 35,124,202,231,193,185,200, 47, 1,194, 7,120, 60,176, 20,177,119, 2, 21, 77, 12, 69,255,111, 93, 41, 93,101,166, 54,127, + 17, 30, 95,204, 50, 90,176, 58, 45,128,191,183, 99,226, 56, 38,138,209,168,186,148,246,123,135,134,125, 93, 24,150,250, 1,220, + 54, 2,222, 4, 10,238,119, 66,121, 19, 40, 15,219, 8,135,159, 32,208,173, 6, 35,156, 45, 16, 9, 22,196, 63, 59, 17,243,223, +144,103,127,254,249, 39,255,107,126,223,191,127,255, 18, 55, 16,117,114,114, 58,111,100,100,228, 86,218,239,114,115,115, 19,226, +227,227,189,254,203,235, 99, 59, 0,155, 1,212, 41,118,234, 53,128,105,148,210, 27, 95,251, 31,237, 9, 17,216, 1,227, 69,192, +207, 0,160, 5,126, 75, 4,118,220,254, 70, 11, 57,190, 5,108,109,109,239, 8, 4, 2,247,220,220,220,220,172,172,172,106,166, +166,166,225,198,198,198,198, 12,195,188, 77, 74, 74,106, 87,193, 60,157,136,252,173,180, 8, 33,115, 40,165,219, 42,114,222, 0, + 3,254, 83,240, 85,171, 14, 9, 33, 53, 0,120,230,191,218, 53,109,218,212, 46, 55, 55, 23,132,144, 68, 0,119, 0,248, 3,240, +167,148,134,125,139,196,242,249,252, 53, 27, 55,110,156, 53,101,202,148,194,205,160,131,130,130, 74,190,150, 7,231, 91,231,174, +219, 62, 9, 14, 67,211, 78,253,243,137, 22, 15,200, 77,128, 87,231,102, 95,218,216,154, 88, 88, 88, 44, 37,132, 12,224,241,120, +229,118,106, 28,199,177,148,210, 19,233,233,233,139, 41,165,217, 21,249, 47,185,177, 84,199,176,108,137,255, 33,224,243,217,156, + 92, 85,169, 97, 47,172,172,172, 2,120, 60, 94,213,162, 27,102,231,167,191,196,207, 69,143, 25,134,137, 77, 78, 78,110,162, 71, + 94, 72,121, 2,209, 52, 66, 68,157,193,227,106, 0, 4, 4,188, 48,142,213, 92,227, 24,237, 70, 74,169,234,107, 72,150, 67,165, +106,119,103, 44,240,115, 14, 9,125,141,249,147,135,226,215,205,251, 48,111,218,104,108,220,121, 4,211,198, 13, 65,237,218,117, +202,180,193, 82,178,116,209,180, 97, 94, 43, 55, 30,110,186, 96,218, 80,227,149, 27, 15, 55, 93, 48,125,168,124,229,166,195, 77, + 22, 76, 31, 38, 95,177,233, 80,147,133,211,135,153,174,220,116, 88, 11, 96,204,151,164,115,104, 13,167, 92,194, 48, 37,142,182, +169, 64,160, 62, 28, 22,103,252,175,120,168, 71,142, 28, 89, 95,169, 84, 62, 27,218,185,145, 95,195, 26, 78,113, 37, 93,147,250, + 49,206, 41,252,205,115, 31,161, 72,214,248,123,159,125, 65,101,217,147, 72, 36, 85, 95,191,126,237,206,113, 28, 88,150, 5,195, + 48,133,239, 26,141, 6,237,218,181,251, 38, 11,103, 8, 33, 61, 1, 44,205,123, 88,225, 75, 41, 61,254, 21,182,228, 2,129, 96, +134, 88, 44,246,100, 24,198, 3, 0,132, 66, 97,168, 90,173,246,103, 24,102, 61,165, 52,167,130, 38, 55,196,197,197,213,150,203, +229,208,106,181,133, 27,208,243,249,252, 90, 46, 46, 46, 91, 1,184,127,237,253,219, 1,227, 91,181,105,179,113,196,172, 89,124, +229,157, 59,216,184,103,207, 6,100,101, 1,192,214,242,126, 43,145, 72,174,240,120, 60,215,138,252, 31,199,113, 81,106,181,186, + 75, 69,126, 35, 16, 8,220,227,227,227,109, 29, 29, 29, 1, 0,198,198,198,198, 69,143, 43,162,100, 1, 88, 77, 41,149, 1, 0, +143,199,219,216,170, 85,171,150,132, 16, 6, 0,229, 56,142, 71, 8, 25,194,113,156, 32,255,250,213,132,144, 61,148, 82,181,161, +219, 54,224, 63, 81,205, 42,141,108, 9,202,248,209, 69, 0,158, 77,155, 54,149, 13, 30, 60, 24,158,158,158,112,119,119,135, 84, + 42,205,107,196, 83, 83,237, 94,188,120, 49,240,206,157, 59, 3,207,157, 59, 7, 66,136, 18,192, 61, 74,105,137, 15,117,167,158, +109,167, 72,229,146, 77, 0,144, 28,155,154, 16,251, 33,105, 83, 66, 66,194,106, 90,100, 55,106, 66, 72,181, 17, 35, 70,204,156, + 58,117, 42,206,159, 63,143, 35, 71,142, 64,173, 86, 35, 59, 59, 27, 55,111,222, 44, 57,161,138, 36,164,223,244, 3,140, 35,128, +104,127,192,200, 22, 48,182,251,226,204,178,176,176, 88, 58,109,218,180,233,181,107,215, 46,140, 98,174,211,233,192, 48, 12,116, + 58, 29,210,211,211, 49,115,230,204, 2, 6, 11,142,227,112,233,210,165, 41,227,198,141, 3,128, 25, 37,217,108,217,196,229, 41, +143,240,156, 11,180, 26,202,178,177, 15,158,199, 52, 97, 88,150,175, 82,105, 75,220,169, 92, 42, 21,149, 73,242,132, 66,161,243, +171,191,254,178,229,137,197,160, 44, 11,112, 28, 40,199, 1, 40,242,162,121,223, 81,150, 3,213,177,224, 24, 14,140, 82,141,102, + 19, 39,234, 83,105, 90, 9,197,178, 35,195,126,156,101,223,188, 69, 11, 97,229, 74,142, 96, 88, 14,239, 35, 98,237,159, 61,125, +216,250,196,254,173, 19, 8, 33, 67, 40,165, 95, 20,103, 75,108,100,122,117,203,239,187,156,159,188, 8,193,141, 91,119,112,253, +166, 63, 0,224,202,173, 60,115, 60, 30,175,188,244, 89, 88,185,123,213,159, 50,186,183,241,138,181,187, 37, 83, 70,247, 22,252, +253,190, 75, 50,101,244,247,130,149,235,119, 73,166,140,254, 94,184,252,183, 45, 13, 9, 33, 22,148,210,244,210,236,149, 86, 70, +132, 97, 36,135,194, 19,249, 0,144,188,125, 59,116, 73, 73,112, 92,188, 24, 0, 48,172,154,157,222,238, 14, 27, 27,155,167, 66, +161,208,185,188,235,116, 58, 93,185, 36,120,228,200,145, 13,148, 74,229, 83,134, 97,168, 64, 32,240, 25,218,231,187, 51, 93,219, + 54, 72, 45,122, 77, 80, 80,160,213,170, 85,127,245, 62,254, 44,155, 14,108,108,242,236,252,154,145, 77,122,204,222, 23, 88, 70, +135,204, 83,171,213,120,251,246, 45,138,110,242, 94,148,215,126, 97,227,195, 3,176,209,202,202,170,121,106,106,234, 48, 0,243, +179,178,178,234,243,249,124, 88, 90, 90,206, 39,132,188, 55, 51, 51,219,157,153,153, 25,144,175, 26,113,122,218,109,103,106,106, +122,224,244,233,211, 22,141, 26, 53,226,165,164,164,160, 74,149, 42, 72, 75, 75,107,118,231,206,157,198, 99,198,140, 25, 67, 8, +249,129, 82,122,167, 2,201,173,105,100,100, 68, 71,140, 24, 65, 88,246,239,219,253,227,143, 63,208,165, 46,227,246, 83, 87, 99, +133, 74, 67, 51,111,188, 53,251, 73, 36, 18,221,139,140,140,204,172,104,126,136,128,159, 71,204,154,197,151, 71, 70, 66, 30, 24, +136, 97, 89, 89,130, 95,243,212,173,114,137, 22,143,199,115, 61,112,100,175,187, 88, 44, 6,195, 48,133,100,176,160,141,210,233, +116,208,106,181,208,233,116, 96, 89, 22, 58,173, 14,190, 43,126,251,226,182,208,200,200,200,200,209,209, 49,209,200,200,200,232, + 91,116, 68, 18,137, 68,176,127,255,254, 33, 98,177, 24, 0,160,209,104, 80,183,110, 93, 98,232,162, 13,248,111, 34, 91, 37,169, + 92,101,141, 82,187,101,101,101,129,101, 89,152,152,152,128,207,231, 23, 87, 84,208,185,115,103,180,107,215, 14,131, 7, 15,198, +171, 87,175,100,131, 7, 15,238, 92,170, 50, 48,171, 7, 42,185,219,229,119, 38,156,195,253, 11, 47,252,254, 88,254,167, 13,128, + 89, 69, 46, 27, 51,126,252,120,146,154,154,138, 1, 3, 6,220, 81,171,213,189, 40,165, 89,165, 42, 26, 28, 98,189, 6, 15, 3, + 71,137,108,253,163, 93, 68,163, 82, 82, 30,143,167, 44,112, 29,126, 97, 70, 13,112,116,116,196,209,163, 71,161,209,124, 30, 46, +204,212,212, 20, 47, 95,190, 44,170,192,161, 69,139, 22,124, 66,200,128,210,136, 22, 33, 60,231,251, 79, 34,109, 11,142,123,116, +174, 35,106,217,196, 53,209,198,202,132, 2, 32, 11, 22, 44, 40, 36,110, 0,176,116,233, 82,125,210, 9,158, 80,136,100,127,255, +191, 27, 98, 1, 15, 60, 17, 1, 17, 2, 60, 65,158, 23, 21, 20,160, 44,192, 49, 0,167, 3,164, 14,149,244,177,221,204,201,197, +253,252,170,117,219,204,213, 58,138,163,103,111, 32, 34,226, 3,248, 60, 30,170,185,185,227,187,246,109,133,141,155,182,172,244, +219,146, 89,231, 8, 33,221, 40,165,143, 43,156,209, 28,149,186,185, 88, 99,247, 31,207, 96, 99, 33,199,128,222,221, 33,147, 74, +240,235,230,189, 88, 49,111, 50,220,171,185, 98,199,134,149,165,254,220,204,204,108, 89,163,122,181,170,237, 61,126, 25,158,237, + 90, 9,246, 29,191,130,246,237, 90, 11,246, 30,191,140,246,158,109, 5,251,142, 95, 70,251,118,109,132,251,142, 95, 70,139, 38, +245,220, 2, 82,131,150, 1,152, 92,250, 61, 23, 43,163,239,242,202,200, 93, 32, 42,236, 8, 34, 39, 76, 0,128, 66,162, 85, 17, + 8,133, 66,231,248,248,120,219,242,174, 43, 79, 53,200, 87,178,158, 50, 12,131,164,164, 36,146,145,145, 65,205,205,205,123, 95, +222, 49,255,116,151, 54, 13,210, 0, 32, 48, 48,208,210,215,119, 85,239, 99, 79,179,160,124,184,133, 28,250,203,159, 27,214,203, +243,233, 89,191,145,141,251,247,239,255,188, 36,187,106,181, 58,162, 97,195,134, 52,255,179,147, 68, 34, 17, 21,171, 19,142,238, +238,238,159,169,214,122,184, 20, 55, 62,120,240, 96,114,237,218,181, 81,171, 86,173,128,230,205,155,155, 26, 27, 27,227,242,229, +203,240,240,240,168, 99,106,106,250,232,196,137, 19,194,185,115,231, 54,216,179,103, 15, 0, 76,209,163,126,118,242,242,242, 58, +122,254,252,121,169, 72, 36,130, 82,169,196,203,151, 47, 97,102,102, 6,177, 88,140,239,191,255,158,223,186,117,107,171,246,237, +219,159,204, 31, 12,232,189, 2, 74,165, 82,209,249,243,231,195,200,200, 8, 70, 70, 70, 48, 54, 54,134,177,177, 49,228, 82,144, +237,211, 92,100, 83,119,102,200,102, 44,222,238,119, 96,219,146, 91, 46, 46, 46,191, 68, 71, 71,103, 84,180, 46, 40,239,220,129, + 60, 48, 16, 40,242,236,234, 11, 51, 99, 75,248,248,248,148,167, 72, 65, 36, 18,161, 85,171, 86,229,218,179,178,178, 58, 37, 16, + 8,236,138,117, 14, 82, 31, 31, 31, 54, 44, 44,204,152,199,227, 25,115, 28, 7, 31, 31, 31,150, 97, 24,169,157,157, 93, 0,199, +113,137,201,201,201,125,203,179, 77, 41, 85, 19, 66,230,240,120,188,141, 18,137, 68, 80,185,114,229,168, 69,139, 22, 61,200, 87, + 51, 65, 41,229, 85,174, 92,185,153, 76, 38,115, 85,171,213, 12,128, 57, 6, 53,203,128, 50,208, 56, 79, 20, 46,132, 6,128,184, + 64,192,207,235,237, 96, 93,236,123, 0, 72,201, 31, 40,218,149,114,156, 10,224, 21,128,154, 0,108,243,207, 61, 1,144, 86,209, + 4,150,169,104, 17, 66,104,145, 11, 11, 59, 22, 19, 19, 19, 60,121,242, 4,132, 16,152,152,152,192,212,212, 20,102,102,102,200, +202,202,194,171, 87,175,240,250,245,107, 68, 70, 70,130, 16,130,106,213,170,161,224, 1, 42, 98,171,176,129, 59,188,246, 60,164, +114, 9, 8, 1, 26,117,168,143,250,237,234,162,233,227,240,105,142,142,142, 59,227,227,227,223, 18, 66, 4,117,235,214, 29,211, +162, 69, 11,172, 91,183, 14,106,181,122, 93, 73, 36,171,168,205, 59, 47,117, 77,242, 59,167,217, 7, 47,191, 55, 26,222,213, 77, + 17, 31, 31,191,230, 11, 50,231,147,134, 56, 37, 37, 69,239,189,248, 56,142, 67,122,122,122,153, 54,139, 43, 4,235, 55,110, 49, +207,206, 76,196,242, 95, 15, 66,167,211, 97,214,172, 89,224, 56,174,240,149,145,145,161, 87, 58, 41, 91, 76,100,224,229,189, 8, + 15, 32, 2,192,101, 80, 30,175,136, 62,186, 5,132, 2,132, 5, 80,236,190,138,219, 36,132, 72,249, 34,217,177, 37,191,110, 50, +127,254, 58, 22,103,111, 60,135, 54, 43, 14, 9,129,167, 1, 0,213, 90, 13,193,113, 53, 31,205,235,187, 97,250,130,223, 44, 22, + 78,255,225, 24, 33,164, 86, 81, 55,162, 62, 29, 27,165, 44,150, 47, 91,134,157,155,214,225,183,117,155,144,149,153, 1,161,208, + 26, 0,192, 48, 44,216, 98,247,246,217,189, 83,218,117,225,236,241,100,227,174,147,168, 91,221, 30,231,174, 5,160, 73, 29, 87, + 92,186,249, 24, 45,234, 85,193, 21,255,103,104, 81,191, 42,252, 31,190,196,172, 73, 35,200,253, 75,251,186, 86,164,140, 54,108, +216, 98,158,157,149,136,243, 43,247, 35,105,235, 86, 68, 77,158,140,102,249,215, 60, 38, 4, 34,103,103, 64, 84,126, 25, 21, 71, +104,104, 40,212,106,117, 73,163,125,120,120,120,148, 91,238, 74,165,242, 25,195, 48, 52, 49, 49,145, 36, 38, 38,194,216,216,152, +188,124, 25,194,214,169, 83,183, 15,125,253,231, 46, 0,240,245, 93,213,231,248,179, 44, 40, 2, 54, 65,249, 96, 51, 68, 85,130, +120, 59,151,142,215,142, 91,188,227, 89,145, 78,238,147,116, 38, 36, 36,116, 43,248, 92,173, 90,181,215, 97, 97, 97, 53, 11, 92, +205,249, 46, 68, 17,195, 48,238, 5,238, 68,134, 97,160, 86,171,209,169, 83, 39,126, 89,247,110, 97, 97,209,194,195,195, 3,207, +159, 63,199,166, 77,155, 44,189,188,188,240,238,221, 59, 16, 66,176,106,213, 42, 82,187,118,109, 97, 74, 74, 10,186,116,233,130, + 83,167, 78,181, 42, 47, 63, 9, 33, 38,198,198,198,123,206,157, 59, 39,229,241,120,200,206,206, 6,199,113,104,221,186, 53,120, + 60, 30, 66, 66, 66,176, 96,193, 2,156, 58,117, 10,103,206,156,145, 53,110,220,120, 15, 33,196,163,168, 91,191,140, 50,162, 42, +149,138, 74, 36, 18, 72, 36, 18, 72,165, 82, 72,165, 82,136,197, 98,228,168,128,113,235,163,212,124,169, 53, 87,167, 97, 27,183, + 81, 83, 87,241,214, 44, 26,125, 19,192, 89,125,235, 60,144, 55, 39,107,227,222,189,155,134,101,102,242, 0, 96, 55, 33,156,150, +210,223,244,121,222, 1, 32, 71,149, 9,215,106,206, 56,121,236, 12,250, 13,234, 93, 34,201, 18, 10, 69, 16, 9,133, 48,181, 52, + 46,215,166, 72, 36,178,123,253,250,181,149, 80, 40, 4,165, 20, 44,203, 66,171,213, 38, 46, 92,184,208,198,219,219,219,228,210, +165, 75, 60,111,111,111,206,194,194, 34,247,241,227,199, 73, 12,195, 88,181,109,219, 86,239, 58, 79, 41,221,214,176, 97,195, 70, +167, 79,159, 30,237,227,227,243,116,246,236,217,203,139,158, 95,189,122,245,178,139, 23, 47,186,246,233,211,231,192,139, 23, 47, +182, 85,164, 13,249,218,118,222, 96,243,223,207,230,133, 11, 23, 10, 27, 98,111,111,239,226,106,167, 29, 33,228,124,145,255,239, + 81,112,236,227,227, 51,223,215,215,247, 37, 33,228,124,209,239, 11,174,203,111, 59,206,151,116,156,255, 91,203,121,243,230,213, +245,243,243, 91,213,178,101,203,163, 1, 1, 1, 31, 42, 74,180,202,157,163, 85, 64,174,138, 18,174, 98, 6,144,149,149,133,172, +172, 44,196,196,196, 96,251,246,237,249, 15,180, 16, 2,129, 0, 2,129,160,112, 62, 67,105,184,126,238,238,102, 0,155, 27, 55, +110, 44, 12,126,112,226,210,207, 59,167,118,108,210,169, 17,255,217,141,224,254, 0, 86, 0,232, 54, 98,196, 8,107, 0,216,191, +127,127, 10,128, 75,255, 10,202, 76, 41, 61,241,246,237,219,233, 14, 14, 14,133,115, 84,138,186, 15, 25,134,129, 84, 42, 69,193, + 92, 22,149, 74,133,237,219,183, 51,148,210, 19,101,216, 68,216,203,155,120,251,242, 86,222,239, 56, 14, 28,251,247,239,151, 44, + 89, 82,116,137, 40, 38,228, 43, 39,229,146,188,146,242,156, 22,123, 47,246,253,103,228,236, 51,247,132,104,106,255, 31, 38, 59, +112, 68,128,191,110,190,128, 80, 40, 4, 87, 68,205, 20,242,243, 70,203, 47,223,197,195,209,174, 14,122, 13, 25,111,127,250,192, +150,169, 0,126,173,104, 94,215,170,223, 18,211,166, 79,199,174,157, 59,177, 96,241,178, 66,150,206,176, 44,152,114,211,201,227, +181,110, 82, 27, 57,169,177,224,243,249,104,213,208, 13,124, 62, 31,109,155,212, 0,159,207, 71,155,166, 53, 33, 16, 8,208,190, + 69,109, 84,175, 94, 29, 2,129,128, 87, 78,185, 35,236,229, 13,188,125,121,187, 8,233,165,160, 0,180, 9, 9,159, 93,175, 75, + 72, 0,117,177,170,104,221,194,152, 49, 99, 50, 98, 98, 98,180,197,207, 85,170, 84, 73,116,231,206, 29,243, 82,220,118,133,144, +201,100,141, 5, 2,193,179,180,180, 52,206,200,200,136,199,113, 44, 87,167, 78, 93,254,229, 29,243, 79, 23, 92, 51,111,222,252, +211, 3, 27,155,246, 57,120,226, 60, 21, 85,110, 67,136, 80,194,252,184,120,135, 72, 40,146,233, 21,241,190,192,141,248,230,205, + 27,148,151,158,162, 3,179,146,144,158,158, 62,194,195,195,227,206,230,205,155, 45, 9, 33,184,123,247, 46,248,124,126,225, 43, + 60, 60, 28, 60, 30, 15, 63,255,252,179, 54, 43, 43,107,108,121,105, 19, 8, 4,211, 79,158, 60,105, 38, 22,139,145,157,157, 93, +248,220,240,249,124,188,126,253, 26,107,214,172,193,136, 17, 35, 16, 29, 29, 13, 71, 71, 71,204,154, 53, 75,238,231,231, 55, 29, +192, 50, 61,110, 61, 72,163,209, 52, 49, 50, 50,130, 84, 42, 69, 1,225, 2,128,171, 47,133, 33, 10,133,162,158,181,181,181,189, +141,255,249,191, 90,121,245,106, 96,101,227,208,178,128,104,233,139,247,192,206, 8,150, 93,216,237,244,105,219,251,167, 79,115, + 15,207,157,139,149,100,103,239,208,187, 14,233,120,136, 10,143, 69,227,198,141,241,236,217, 51, 52,110,220,184, 40,105,130, 88, + 44,134, 72, 36,130, 72, 36,130,181,133, 94, 83, 40, 40,143,199,195,253,251,247,193,178, 44, 52, 26, 13, 52, 26, 13,106,215,174, +157,118,235,214, 45, 57, 0,132,135,135,211,225,195,135,103, 60,122,244, 8, 13, 27,150,189,159,186,189,189,253, 29, 62,159, 95, +185,216,179,106,209,183,111, 95,164,167,167,119,239,219,183,111,155,252,239,226,254,252,243,207,225, 0, 32, 22,139,193,227,241, + 88, 24,240, 63,143, 2,114, 85,148,112,149,208,230,244, 40,126, 76, 8, 57,239,235,235,219,163,248,119, 69, 73, 85, 73,159,139, +254,214,207,207,111, 85, 17,219,202, 47,240,134,149, 63, 71,139, 16, 66,203,107, 52,203, 66,121, 68,171, 0,207,158, 61,211, 57, + 57, 57,237,122,251, 34,178,163, 91,253,106,144, 25, 75,190, 35,132,108,150, 72, 36, 51,127,248,225, 7, 60,124,248, 16, 33, 33, + 33,127,124,237,118, 42,245,234,213,187, 34,145, 72, 92, 75,113,147, 68, 5, 7, 7,119, 41,165, 99, 88,156, 63,231,172,212,201, +240, 69,231,139, 21,157, 12, 95,106,197,224, 40,116, 90, 29,114, 21,202,191, 59,241,124,162,149,155,155,139, 65,131, 6,125,162, +104, 37, 37, 37,233, 83,168, 88,115,246, 44,174,157, 56,129,238, 13, 26,224,212,227,199,240,251, 97, 40,106,185, 58,129,178, 4, +148, 0,209, 71,182, 32, 53, 43, 7,135,111,220, 71, 90,182, 2,195,218,182,133,187,169,117,217,118,133,162,206,205, 90,180, 20, + 93, 15,120, 5,161, 80, 0, 30, 56, 80,157, 2,142, 30,237,193,231,241, 96,102, 87, 5, 34,161, 16, 66,161, 0,225, 49, 41,240, +168,219, 84,124, 94, 44,237,252, 37, 68,171,146,107, 21,176, 44,139, 17, 35, 70,224,232,209,163,176,178,119,133, 89,165,186, 88, +177,110, 39,186,119,106, 91,238,253, 23,140,224, 5, 2, 1,248,124,254,103,239, 5,159,245, 81, 39, 41, 71,161, 45, 94, 70, 28, + 5, 40,133,243,202,149,112, 94,185, 18,143,243,255,179,118,110, 46,148, 74, 37,208,188, 78,133, 72,150, 70,163, 65, 76, 76,140, + 54, 33, 33,193,174,132, 14, 42, 81,163,209,148, 75,108,246,237,219, 23, 52,114,228,200, 38,150,150,150, 79,131, 2, 3,117,245, + 27, 52, 16, 94,218, 62,255, 76,129,219, 16, 0, 26, 52,104,144, 54,127,254,252, 51,195, 7,244,232,189,205,103, 48, 59,113,217, + 1,129, 68, 38,107,210, 99,118,217, 19,226,139, 60, 31, 17,245,235,215,167,250, 92,171, 80, 40, 62,150, 81, 70, 61, 1, 44,109, +212,168,145,169,151,151, 23,238,220,185,131,126,253,250,169,181, 90,237,219,252, 70,181,198,225,195,135,197,175, 94,189,130,141, +141,141, 48, 42, 42,106, 15, 33,164,204, 9,242, 98,177,184,125,211,166, 77,121,106,181,250, 51,146,229,231,231,135, 33, 67,134, +160, 70,141, 26,224, 56, 14, 57, 57, 57,240,242,242, 18,110,218,180,169,189,158, 68,107, 90,173, 90,181,214, 32,111,213, 97,209, +182, 48, 20,192,156,124,181,251, 99,143,126, 35, 94,182,237,212,183, 73,229,234,117, 29,202, 51,104,103,103, 55,143,199,227, 13, +228, 56,142,159,149,149, 21,163, 33,164,122,109, 87, 87,187,214,189,123, 35, 83, 40,228,111,188,113,131,151,152,157, 45, 7,160, +151, 11, 82,165,203,133,107,181,188,169,126,253, 6,245,198,179,103,207,208,127,112, 31,136, 68, 34, 8, 4,194,188,103, 83,148, +167,104,153, 91,155,234, 85, 55,117, 58, 93, 97, 27, 94, 48,207, 75,171,213,162, 96,106,150,145,145, 81,225, 57,181, 90, 93,234, +128, 60, 31,238,199,151, 45,178,149,153,154,129,213,233, 80,167,119,255,194, 58,253,104,247, 54, 25, 56, 78,150, 17, 21,129, 41, + 39,206, 9, 97,128, 1,165,168, 90, 37,168, 89, 69,219,149,243,197,201,214,151,130, 16,114,222,199,199,103, 62, 0,234,227,227, + 51,191,224,216,215,215, 87, 9, 32,238, 75,200, 86, 73, 42,151,224, 91,144,172, 2,247, 66, 89,232,208,161,195, 20, 19, 19,147, + 77, 0,208,164, 73, 19,196, 60,140, 67,204,195, 56,120,212,172,211,186, 81,131, 38,153, 67,134, 12,129,149,149, 21,102,207,158, + 77, 1,252, 81,209,255, 15, 15,123, 41, 7, 64, 29, 29, 29,103, 3,128,163,163, 99,131,199,143, 31,219, 60,121,242, 4, 77,155, + 54,253, 91,186,215,106,209,166, 77,155,178, 58,196,108,228,205,181,154,241,237, 84, 50, 14, 90,173, 22, 10,133, 18, 26,141, 22, +140,142, 3,195, 48,104, 92,199, 4, 7,118,250,228,125,199, 20,168,103,121,170,153,179,189, 9, 26,215,179,215,241,120, 68,249, + 36, 48,161,196, 22, 83,163,209, 32, 40, 42, 10,129,145,145, 0,128, 94,190,101, 79,124, 61,112,227, 14,106,215,174, 93, 94,106, +221,156, 29,237, 17,127, 45, 40,175,241, 86,198,224,201,189,227, 48, 49,145, 3, 0,234,120, 14,131, 72,148, 71,180,114,149, 90, + 88,215,172, 4, 66,105,169, 97, 1,140, 45, 29,174, 8, 68, 82, 87,202,114,160,148, 3,229, 88, 80,202, 65, 98, 98,101, 52,101, +194,104,112, 28,139,102,205,154,129,240,249, 96,117,106, 12,232,217, 25,233,153,217,176, 50,215,175,147, 16,137, 68,240,244,244, +148,149,118,254,221,187,119,202,162,196,172,236, 50,210, 33, 55, 87, 9,181, 90, 13,173,134,129, 86,199,128,173, 42,194,242,133, + 67,193,104, 25, 40, 6,183,132, 86,199,128,155,222, 7, 90,141, 14,209, 70, 60, 94,131,218, 54, 58, 30,136,242,249,171, 36,211, +242,136, 86, 1, 57, 40, 13, 37,205, 9, 44,133,108, 5,142, 28, 57,178,113,253, 6, 13,158, 13,236,212, 96,109,112,200,203,248, +224,144,151,159, 93,231, 90,163, 65,196, 68,191,163,179,132, 34, 89, 99,125, 73, 22,240,169, 27,241, 43, 49, 63, 59, 59,187,190, + 92, 46, 71, 88, 88, 24,248,124, 62, 8, 33,239, 40,165,245, 1, 96,252,248,241,239, 5, 2, 65, 53, 62,159,143,173, 91,183, 18, +129, 64, 80,175,101,203,150,243, 1, 28, 47, 99, 64,231, 97, 98, 98,242,137,154, 37, 18,137,224,227,227,131,225,195,135, 23,146, + 44,145, 72,132,125,251,246,161, 73,147, 38,208,104, 52, 30,122,146,225, 39, 0,218,234,161,248,145,124,114, 94, 46, 25,101, 24, +102,100,234,192,129,213,225,239,143,214,213,170,213,110,220,184, 49,180,218,191, 5,205,106,213,170, 85,202,206,206,254, 72, 8, + 57, 4, 96, 27,165,244, 69,153,164, 72,197, 33, 42, 60,182, 96,208,138,102,205,154, 21, 42, 88, 69,213, 44,145, 72, 4,153, 88, + 94, 33,162,197,113,121,237, 82,118,118, 54,207,223,223,223,186, 86,173, 90, 4, 0,106,213,170, 69, 94,188,120, 97,105,100,100, +148,226,230,230, 86,238, 0, 88,102,106,134,125, 35, 7, 1, 0,126,233,212,181,112, 96,116,121,233,124, 8,133, 66,116,156, 61, +255,179,122,207,113, 28, 31, 6, 24, 72, 86, 57, 36,171, 36, 69,235,235,250,230,191, 21, 45, 95, 95,223,151,190,190,190,159,169, + 99, 21,180, 87,190,162,165,143, 43,160,188,135,181, 52,172, 91,183, 14,245,234,213, 43,179, 35,218,180,105, 19, 14, 30, 60,184, +142, 82, 26, 94,209,255,239,209,177, 81, 29,172, 63,253,178, 90,141, 58, 4, 0,150, 77,239,201,203,205,205,197,253,251,247, 97, +102,102,134,119,239,244, 11,251, 69, 8, 49, 49, 51, 51, 91,202,227,241, 6,240,139,175, 0, 40,153, 96,178, 28,199,157,200,204, +204, 44, 53,188, 3,165,128, 86,199, 32, 87,161,130, 70,163,193,244,159,183,148,155, 14, 95,128,104, 53,217, 2,207,118, 45,101, +165, 41, 58,205,234,181,199,164, 31,228,159,117,222,124, 30,192,227, 1, 13,155,229, 41, 46, 47, 30,191, 4,199, 1, 44, 7, 88, +219, 90,224,143, 35,107,203,204, 2,134,229,242, 71,199, 44,114,212, 44, 60, 90,244, 64,108,168,127,161,130, 36, 22,229,185,140, + 69, 66, 33, 56, 74,242,162, 62,148, 70,132,196, 50,215,244,132,112,247,157,231,131, 49,174, 71, 61,252,121, 61, 8,253, 59,213, +199,173, 71,175,224,213,188, 54, 94,190,141, 68, 29,247,202,216,186,231, 4, 40, 69,246,239,235, 87,124,252,187, 67, 99,162,244, + 81,180, 30, 62,124,168, 44,174, 98, 21,125,167,229,247,135,160,244,111, 69, 75,169, 82, 99,246, 60,189,194,249,228,149, 81,219, + 22, 50,125, 46, 46, 75,177,210,135,136, 21, 87,182, 80, 78,120,150,170, 0,154, 0,115,255,149, 13, 39,203,178,184,112,225, 66, + 97,121,148, 84,142, 69,203, 78, 15,146,131,168,168, 40,188,124,249, 18, 45, 90,180, 64,102,102, 38,132, 60, 30,102, 5, 7,163, +246, 15, 63, 64, 35, 18,129,227, 56,136,197, 98,140, 31, 63, 94,239,252,172, 96,107,154, 63,207,141,165,229,180, 37,107,123,244, +232, 81, 61, 44, 55, 23, 47, 95,191, 70,167, 37, 75, 0, 0, 23, 47, 94,252,164, 78,204,156, 57, 83,252,234,213,171, 49, 79,159, + 62, 29, 67, 8, 89, 71, 41,157, 85,106, 59, 75,213,133,115,180, 6, 14,237,135,234,181,170,226,224,222, 35,133,231,103,206,153, + 6,161, 80, 4,161, 72, 8,115, 51,115,189,238, 70,167,211, 21,146, 86,133, 66,193,187,120,241,162,115,231,206,157, 69,211,166, + 77, 35, 0,112,240,224, 65,222,230,205,155,141,175, 93,187, 38,114,114,114, 74, 40,151, 92,106,181,159,149, 49, 33, 4, 66,161, + 16, 34,177, 8,224, 56, 16, 66,140, 87,175, 94,189,236,229,203,151, 77,107,213,170, 5,181, 90,253, 3, 33,228,185, 33,142,150, + 1, 5,110,195,210, 8, 87, 73,115,173,242, 85,169,210,144, 92,116,222, 86,105, 68,173,232,156, 45, 0,234,138, 55, 11,122,206, +209, 42, 9,124, 62,191, 92,181,138,199,227,149,235, 58,156, 57,115, 38, 76, 76, 76, 74,235,128,104,112,112,240,171,132,132,132, +157,148,210, 45, 95, 82, 56,231,111, 60,127,185,116, 70,159,108,228,251, 86,205,205,205, 83, 58,116,232,144, 3, 64,123,252,248, +167, 3,100,181, 90, 93,106, 7,110,102,102,182,116,247,238,221, 83,123,247,238,205, 43, 30, 98,160,168,123,175,224,165,211,233, +112,252,248,241,169,115,231,206, 69,105, 42, 88, 65, 39,174,200, 85, 66,153, 63, 17,250,125,200,159,250,150, 94,169,167,228,230, + 14,112,174, 90,191,212,206,132, 39,202,155, 67,100,231,242,119, 7,102, 98, 34, 5, 91,134, 77, 66,120,225,145,209,241, 78,149, +236, 45,241, 62, 38, 25,118,149,235, 33, 61,238,239,124, 16, 8,248, 16,230,187, 14,205, 77,141,145,156,148, 4, 30,143, 95, 38, + 49, 94,113,248, 57, 30,133, 68,226,228,245, 23,208,170,114,177,126,255,101,104,213, 57,208,170,114,161, 85,229,189,175,154,251, + 35, 8,193, 71,173, 42,167, 70, 69,202, 93, 32, 16,160,121,243,230,165, 18,157,184,184, 56, 61, 21, 45, 90,168,104, 41, 85, 21, + 44, 35,253, 30,194, 50, 21,171,130,243, 95, 74, 12, 10, 66, 62,200,100,178, 38,251,246,149, 30,198,161, 36, 56, 56, 56, 92,146, +203,229, 85,244,189,190, 2,193, 75, 87,153,155,155, 47,173, 85,171,150,199,250,245,235,133,124, 62, 31, 29, 59,118,172,241,227, +143, 63, 70, 1, 64,189,122,245, 28, 11,218,152,137, 19, 39,210,135, 15, 31,134,228,141, 49, 74,135, 88, 44,126,109,102,102,214, +196,203,203, 11,153,153,153,136,137,137,129,177,177, 49,106,175, 93,139,224,137, 19,209, 96,251,118,240, 58,116, 0, 33, 4, 98, +177, 24,193,193,193,144,201,100,175,203, 32, 67,205, 1,252, 6,160, 53,254,118, 23, 82, 0,247, 1,252, 76, 41,125, 84, 66,123, +199, 3, 0,150,227,202, 43,172,161,179,103,207, 70,134, 80, 8,120,123, 67, 20, 30, 14,173, 86,139, 22, 45, 90, 20,170,236, 45, + 90,180,128, 64, 32, 64,253,250,245,225,232,232,136,173, 91,183, 14,197,167, 43,177, 63,129, 42, 71,139,168,240, 88,180,108,217, +178, 80,185,242,246,246, 46, 84,180,132, 66, 97,161,178, 69,216,242,137, 43, 33,132, 22, 29, 36,179, 44, 75, 4, 2,129, 96,198, +140, 25,164, 95,191,126, 84,163,209,112, 98,177,152,119,242,228, 73,114,235,214, 45, 65,110,110,110,185, 3,241,186,125, 6,224, +151,206,121,162,232,138, 42, 54, 16,138,132, 16,139, 68,152,253, 58,182,176, 92, 76,247, 29, 21,251,249,249,245,175, 85,171, 86, +158, 27, 30, 16, 24,226,104, 25, 80,142,154,149, 92,140, 36,105,138, 28, 39, 3, 32,249,199,201, 69, 8, 85, 50,242, 86, 16, 54, + 45,118,109,193,121, 77,177,247,130,243,129, 21, 77,123,145,189, 14, 63, 35, 95,101,141,136,223, 62,120,240,192,189,113,227,198, +136,142,142,254,108, 37, 92, 65,199,101,108,108, 12,153, 76,134,128,128, 0, 0,120, 91,154,177,155, 55,111,110, 70, 94,212,101, + 0,128,163,163, 99, 75,175,129,237, 3,154,117,109,138,195,190, 71, 50, 19, 18, 18,234, 23,196,208, 33,132, 16, 71, 71,199,225, + 66,177, 96, 80,181,186, 46,158,224,184,223,174,255,117,111, 73, 89, 55, 89,173, 70,157, 28, 0,202, 34,171, 14,215,124, 73, 65, +243,120,188, 1,189,123,247,230,189,122,245, 10,131, 6, 13,194,193,131, 7, 75,189,118,248,240,225, 56,122,244, 40,122,247,238, +205,155, 55,111,222,128,242,136, 86,158, 90,162,249,102,149, 50,236, 93, 32, 14, 28,221, 93,234, 28, 36, 91,219,188,249, 88, 73, + 73, 41,133,223, 53,109, 92,182,103,132, 99, 52,215,158, 63,125,220,178, 85,187,142,162,152,196, 12,112,140, 26,170,236,191,127, +175,200, 72, 4,101, 84, 16, 25, 89,194,222,218, 12,207, 30, 92,213,104, 53,170,107,101,217,156,218,187, 14, 38,246,244, 0, 40, +135, 62,179,254,192,249, 45, 83, 10, 71,208,109,250, 77,195,141,227, 27,245,158,227, 87, 28, 66,161, 16,193,193,193,202,210,212, + 44, 62,159, 95,110, 76,174,191, 85, 71, 29, 20, 10, 37, 20, 74,213, 55, 43, 35, 66,136,141,157,157,221,239,150,150,150,210,146, +136, 20, 33,196,198,198,198,230,119, 43, 43, 43,169,190,174,195,210, 72, 86,126, 92,173,167, 35, 71,142,172, 16,217,146, 72, 36, + 85,222,190,125, 91, 24,172,180,172,119,141, 70, 3, 47, 47, 47,189,130,151, 82, 74,207, 17, 66, 62, 56, 56, 56,220,175, 93,187, +182,217,251,247,239,113,228,200, 17,145, 80, 40,116, 41,104, 63,178,179,179,193,231,243,145,148,148,164, 3, 48,186, 60,215,153, + 90,173,246,247,247,247,111,216,179,103, 79,254,235,215,175,193,231,243,243,210,213,178, 37, 26,108,223,142,144, 25, 51,224, 25, + 25, 9,149, 86, 11,169, 84,138, 43, 87,174,104, 21, 10,133,127,105,246,100, 50,217,206,136,136,136, 58, 82,169, 20, 90,173, 22, + 28,199,129,199,227, 17,129, 64,208,198,220,220,124, 19,128,166,159, 62, 83,182,182,227,103,254, 90,147,101, 24, 54, 33,250,125, +114,121,121,144,154,154,138,115,231,206,161, 69,139, 22,240,244,244, 68, 92, 92, 28,194,195,195,209,189,123,247,194,107, 2, 3, + 3,241,252,249,115,184,185,185,149,175,232,241,116,112,171, 89, 5, 34,145, 40, 79, 33, 18,138,242, 7, 62,194, 66, 37, 75, 36, + 20, 65, 40, 16, 66, 42,147,234,173,104, 17, 66,192,227,241, 64, 8,129, 76, 38, 43, 24,100,115,206,206,206, 9,105,105,105, 14, + 0,248, 50,153, 12, 44,203,234, 53,104, 41,232, 35, 10, 72,150, 72, 44, 42, 84,182, 0, 32, 35, 35, 67,213,187,119,239, 67,106, +181,122, 20,190, 96,135, 18, 3,254, 39,241,228, 95,244, 91,189,121, 34,165,116,103, 73,147,226,203,170,224,221, 91,181,106,181, +125,200,144, 33, 29, 55,108,216, 0,185, 92,142,132,132,132,194, 14, 81, 44, 22,163, 82,165, 74, 72, 75, 75,195,142, 29, 59, 16, + 27, 27,123, 19,192,120,125, 83,148,144,144,240,240,221,139,183,169, 94,253, 91, 89,213,105, 85,211, 60,230,109,108, 11, 0, 1, +249, 36,235,143, 33, 51,187,143,242,234,219, 12, 34,177, 16, 49,239, 62,254,191,149, 36,159,207,231, 19, 66, 48,104,208, 32,189, +174, 31, 60,120, 48,252,253,253, 81,150,155,145, 43, 80,180, 20, 42,228, 42,191,221, 96,109,210,148,225,152, 52,101,120, 33,153, +208,199,245,146, 71,114,143,149, 65,180,180, 27,206, 31,219, 49,174, 81,179,150,174, 77,234, 84,193,163,167, 47,112,120,251,223, + 34,195,158,205,203,240,235,158,155,168,100,103, 1,173, 58, 23,151,254,220,245, 81,171, 86,108,248, 66, 81, 46,143,220, 18, 2, + 61,227, 84,126,162,162, 22, 16,173,186,117,235,150,170,104,165,165,165, 41,203,235, 24, 10,203, 72,163, 67, 78,174, 18, 74,197, +183, 33, 90,132,144, 6,109,218,180,185,118,226,196, 9, 43, 91, 91, 91,196,199,199,127, 66,180, 8, 33, 13, 90,183,110,125,237, +196,137, 19, 86,118,118,118,136,137,137,209, 59,172, 72, 9, 36, 11,201,201,201, 36, 61, 61,157,179,176,176,168, 16,217,226,241, +120, 80,171,213, 8, 13, 13,213,247,111,245, 94, 33,102,102,102,182,239,232,209,163,102, 41, 41, 41,224,243,249, 8, 13, 13,253, +100,213, 97,193,235,143, 63,254, 16,245,233,211,103, 55,128, 50,151,181, 49, 12,179,110,248,240,225, 99,226,226,226, 44,108,109, +109,145,144,144, 0,177, 88, 12, 74, 41,136,151, 23,218,126,248, 0, 45,203, 66, 38,147, 33, 44, 44, 12, 59,119,238,204, 85,171, +213,235, 74, 41, 31,177,145,145,145,187, 72, 36,194,176, 97,195, 62, 57,183,127,255,126,244,106,194,111, 50,174,179, 36,135,129, + 84,157, 40,235,118,137,207,231,147,241,179,127,171,209,188,157,119,221, 55, 33,143,222, 39, 39,198,222, 47,231,246,117, 26,141, + 6,181,106,213,194,147, 39, 79,112,253,250,117,116,232,208, 1,158,158,158, 8, 10, 10,194,213,171, 87,241,252,249,115, 16, 66, + 96,101,101, 85, 48,253,162,204, 57, 24, 26, 5,131,164,248,212,207,212,171,226,199, 34,145, 8,106,165, 86,175, 50,122,253,250, + 53,158, 60,121, 82, 24, 90,134,207,231, 51, 63,252,240, 3, 40,165, 52, 34, 34, 2, 38, 38, 38,116,228,200,145,172, 64, 32, 96, +226,226,226,244,173,251,121,234, 85, 62,201, 18,136,132,159, 16, 52,142,227,178, 3, 3, 3,199, 17, 66,130, 8, 33,171,243,191, + 54,196,209, 50,224, 63, 25, 23,138,238,117,168,151,162, 69, 41,253, 0,160, 19, 33,100,232,153, 51,103,214,109,218,180,201,166, + 71,143, 30, 72, 79, 79,135,171,171, 43, 28, 28, 28,112,254,252,121, 92,188,120, 49,133,101,217, 89,148,210,131, 37, 60,108,157, + 74,139,181, 65, 41,165,142,142,142, 39,212, 57, 57, 19, 27,123,122,224,230,241,187,190, 14, 14, 14,227,157,156,156,166,143,156, +255,253,168,246,189,155, 34,236,121, 4, 30, 94, 13, 70, 98,116, 10, 70,182,253,185, 76,155,197, 39,195,155,155,155,143, 49, 50, + 50, 18, 3,208,150, 48, 42,254,100,213, 97, 81,155, 44,203,178, 26,141, 6,199,142, 29,211,139,108, 29, 57,114, 4, 42,149, 10, +108, 49,255,106, 81,155,148,163, 68, 32,148,192,177, 82, 45,104,181,185,224,184, 47, 83,111,138,218, 44, 24,129,190, 23,139, 97, +155,146,130, 71,143, 30,233, 43,205,150, 89, 70,148, 82, 21, 33,100,216,198,149,179,207, 79,246,249,205,188, 67,171,134,248,101, +237,126,104,181,123,192,227,243, 32,147,136,208,184, 89,107,240,161,198,239,126,115, 50, 20, 89,233,195,138,111,197,243,153,205, +178, 60, 44, 20, 96, 57, 14,215,239, 60,214,251,222, 11,123,123,150,133, 64, 32,192,187,119,239,148, 37,173, 54,228,243,243,220, +156, 5, 35,245,178,108, 82,142, 35, 66,145, 20,149, 92,107, 67,163,206,249, 38,101,100,107,107, 59,231,244,233,211, 86, 5,161, + 18,130,130,130, 64, 8, 9, 45,162,142,204, 57,125,250,180,149, 82,169, 68, 72, 72, 72,193, 86, 83,161, 21,121,142, 10,148,172, +228,228,100,146,144,144, 0, 35, 35, 35, 94, 80, 80,144,186,126,253,250, 79, 81,246,206, 15,133, 54, 85, 42, 85,100,105,243, 39, + 85, 42,149,147, 84, 42, 21, 22,251,173,163,187,187,123, 88,113, 23, 98, 73,233,204,204,204,124, 52,119,238,220,198, 93,187,118, +197,156, 57,115,210, 44, 44, 44, 76,126,255,253,119, 1,159,207, 39,147, 39, 79,102,147,146,146,114,118,237,218,101,118,230,204, + 25,100,100,100, 4,148,119,239,148,210,108, 66,200,184, 86,173, 90,237,191,124,249,178,145,187,187, 59,178,178,178, 64, 41,197, +190,125,251, 48,121,242,100, 72,165, 82,132,133,133,161, 87,175, 94, 10,133, 66, 49,174,248,220,201, 34, 54, 9, 33,132,114, 28, +135, 69,139, 22, 21, 6, 39, 45, 8, 86,106, 34, 35,216, 57,179,170,241,180, 93,153,198, 67,127,217,245, 3, 0,176, 12,195,190, + 9,121,244,126,223,150, 95,110,137, 68,162, 59,229,148,209,130,105,211,166,253,238,237,237, 45,147,203,229, 72, 75, 75,195,253, +251,247,241,224,193, 3, 60,124,248, 16, 26,141, 6, 86, 86, 86,176,176,176, 64, 66, 66, 2, 94,191,126,173, 4,176,160, 44,155, + 98, 35, 33,170,213, 40, 88,249,155,167, 96, 9,139,172, 54, 44,170,110,137,132, 66,189,158,163,118,237,218,161,121,243,230, 5, + 4,136,141,138,138, 74, 80,171,213,164, 8,233,143, 43, 32,228, 46, 46, 46,204,193,131, 7,105, 89, 54, 31,238,220,138,203,203, + 23, 64, 44, 18, 97, 86,104, 76, 33,233,218,223,161, 17,132, 98, 17, 60,122,246, 43,218, 15,108, 35,132,236,201,255,172,214,167, +206,127,197,192,199, 96,243,223,220,230,127, 50, 40,165, 9, 0, 42,182, 5, 79,145, 31, 31, 38,132, 92,250,241,199, 31,253, 26, + 52,104,240,227,250,245,235,137, 72, 36,194,146, 37, 75,104,124,124,252,222,252, 81, 72,250, 23, 38,108,239,237, 83, 1, 19, 70, +248,244, 38, 51, 55,140,108,243,244, 70,200,235,122,173,220, 81,175,149, 59,158,222,124,133, 45,243,143, 28,100,117,236,162,132, +132,132,232,114, 76,169, 59,181,174, 89,124, 50,188,149,255,173, 27, 86, 21, 93,117,200,113,220,137, 35, 71,142, 76,237,219,183, + 47,239,241,227,199,159,205,201, 42,216,118,135,227, 56, 92,187,118, 13, 90,173, 22,123,247,238,229, 56,142, 43, 61,142, 22,232, +217,141, 27,252, 70,236, 61,112, 86, 44, 22, 17, 60,184,115, 18,153,233,101,171,116, 34,145, 16,127,236, 59,165, 21,137,132,111, + 74, 58,175,213,106, 99,110,220,184, 97,215,133,101,133, 60, 30,239, 51, 2, 85, 26, 78,156, 56,161,227, 56, 46,170,156,114, 9, + 32, 68,216,115,197,156,209, 71,188, 7,254,104,215,170, 85, 27,161,181,173, 29, 8, 33, 72, 74, 76, 66, 88,200, 99,221,165,147, +187, 19,115, 21,217,122,109,193, 51,122,205,237,194, 57, 89, 0,208, 99,242,166,194,249, 89, 0,208,115,228, 92,120,181,168, 3, +162,143,244,244, 55,201,226, 24,134,129,177,177, 49, 24,134, 41, 49,196,131,153,153,153, 76,165, 82, 41,243, 3, 49,150, 41, 21, + 81,224,155,151, 17,203,178, 30,233,233,233,200,205,205,197,131, 7, 15,232,202,149, 43,147,147,147,147, 11, 39,109,234,116, 58, +143,180,180, 52,228,228,228, 32, 32, 32,128,250,249,249, 37,167,166,166,206,175,200, 51, 36,147,201,154, 8, 4,130,167,233,233, +233,156,145,145, 17, 79,167,211,233,234,215,175, 47,145,201,100,122,111,168, 30, 31, 31,223,181,180,115,110,110,110,111,223,190, +125, 91,157,101,217,162,123, 32,138, 84, 42,149,123,171, 86,173,244,113,249, 76,219,179,103, 15, 78,157, 58,213, 44, 43, 43,107, +120, 84, 84,212,126, 0,205, 4, 2, 1, 94,188,120, 17,170, 82,169,134,244,237,219,119, 95,122,122,250, 35, 0,211,244,108, 55, + 46, 19, 66,134,121,120,120,236, 89,186,116,169,220,211,211, 83,224,232,232,136,166, 77,155, 34, 44, 44, 12, 23, 46, 92,208,109, +219,182, 45, 87,161, 80,140,166,148, 94, 43,187,216, 65, 24,134,129, 88, 44, 46,124, 73, 36, 18,136, 68, 34,100, 43, 41,198,174, + 13, 87, 50,144, 41,215, 45, 25,119,129, 2,228, 99, 76,120, 74,210,199,152, 71,132,144, 59,241,241,241,153,165,228,153, 88,165, + 82, 53,116,112,112,224, 19, 66, 54,104,181,218,145, 83,166, 76,113, 88,181,106, 21,106,214,172,137,148,148, 20, 24, 27, 27,195, +221,221, 29,201,201,201,120,252,248, 49,171, 80, 40,182, 3, 88, 70, 41, 45,211, 29,153,145,146, 5,103,123,151, 79,148, 79, 74, + 41, 40, 11,232,212, 44, 88, 45,133,134,232, 32, 20,234, 32, 18,137,244,233, 44, 41,199,113, 72,119,112, 0, 23, 18,130,135, 15, + 31,130, 82, 90,170,170, 86,171, 86, 45, 61, 10,136,131, 88, 34,254,196, 93, 72, 8,129, 72, 44,134, 80, 44,250,108,229,140, 65, +197, 50,224,191, 29,250,206,181,200, 0, 48,158, 16,178,191,125,251,246,231, 41,165, 66,228,249, 35,239,126,205,159, 39, 36, 36, + 60,115,116,116,156,103,231,108,225,215,109,120, 27,212,108,232, 10,150, 97,113,255,226, 11,236, 93,117,230,104, 92, 76,220, 72, +125,246, 62,227, 56,238, 86,235, 38, 53,121, 40, 18,171,219,209,209,145,251,146, 85,135,153,153,153,139,103,205,154,133, 57,115, +230, 84,120,213, 97,105,215, 4,133, 38,141,111,224, 97,227,220,179, 91,219, 46, 32, 60,170,209,168,203,104,248, 80, 24,185, 84, + 36, 18,190,121, 28, 24, 95,191,164,235,146,147,147,187,140, 26, 53,234,154, 64, 32,168, 82,145, 60,231, 56, 46, 42, 49, 49,177, + 99,249,101,174,187, 79, 8,113, 63,119,116,199,140,203,167,246,116,225, 56,214,141, 0,224, 11, 68,239,117, 90,237, 21,181, 50, +107,189,190,155, 74,175, 30,223, 18,211, 54, 94,197,214, 57, 61, 49,197,239, 56,118, 47, 26,139,121,107,143,224,183, 57,211,176, +114,211, 33,252, 50,109, 24,250, 15, 29,197, 81,194,187,167,239,125,240,249,252,203, 59,118,236, 24, 49,118,236,216,194, 69, 11, +148,210, 79, 26,118,157, 78,167,228, 56, 14,219,183,111,231, 0, 92, 46,203,222,167,101, 68,104, 89,243,165,244, 45,163,172,172, +172,209, 45, 91,182,220, 7, 64, 66, 41,125,151,158,158,254, 19,165,180,112,107,168,156,156,156,209,173, 90,181,218, 71, 41,149, + 16, 66, 62, 59,175, 15,242, 67, 61, 52,177,176,176,120,154,175,100, 73,190,100, 66,124, 89, 89, 93,134, 91,145,213,163,237,224, + 80,100, 91, 29, 66,200,170,102,205,154, 21,221, 84, 58, 20, 64,147,138, 38,138, 82,122,141, 16, 82,103,209,162, 69, 51,164, 82, +169,151, 66,161,168, 1, 0,198,198,198, 97,106,181,250,150, 82,169, 92,159,223,110,149,101, 67, 99,100,100, 20,198, 48, 76, 93, + 27, 27,155,188, 21,181,249,100, 11, 0,254,122,202, 62,165,148,105, 90,209,180, 93,188,120,177,178,133,133,197,119,132,144,254, +148,210, 90,217,217,217,234, 69,139, 22, 5,156, 56,113, 34,179, 74,149, 42,221,188,189,189,137,165,165, 37,158, 60,121, 66, 83, + 83, 83, 79, 2,152,175,207, 74,107,142,227,162, 86,175, 94,141,138, 62,239,101,157,215,106,181, 31, 47, 94,188,104,221, 53, 41, + 73,192,113, 28,122,246,236,249, 9,129, 43,142, 55,111,222, 64,173, 86,151, 25,204, 81,157,153,142, 14, 51,230, 2,249,171, 63, + 11,144,167,100, 81, 80,141,129, 87, 25,240,191, 5,242,143, 44,127,174,160,180,232,232,232, 56, 72,106, 44,153,228, 90,195,161, +126,124,120,210,171,236, 76,197,193,132,132,132, 29,148, 82,246, 75,109, 86, 36, 96,169, 65,254,253,231,108,254, 29, 71,139, 5, +165, 44, 40, 71, 65, 41, 7,142, 99,243, 54,188,166, 28, 40,203, 18, 66,112, 79,173,200, 28,171,111, 58, 9, 33, 22,214,214,214, +203, 40,165, 93,249,124, 62,175,168, 24, 86,244,115,190,146,117, 57, 57, 57,249,151,226,202,235,127, 98,126,254,249,231,159, 37, +146,127,125, 87, 29,246,239,223,159,173,224,179,121,203,216,216,184,196,192,156,185,185,185,209,241,241,241,223,253, 59,228,103, +129, 26, 74,245,104,208,138,185,224, 43,188,234,176, 60,155,149, 43, 87,150,104,181,218, 70, 0,220, 9, 33,230, 0,210,180, 90, +237,149,228,228,228, 68, 66, 72, 19, 0,139,242,127,182,156, 82,250,244, 95,249,188, 19, 66,100,214,214,214,123,120, 60,158,179, + 62,191,103, 24, 70,147,150,150, 54,162,232,128,160,168, 77,107,107,235,167, 2,129,192, 89, 15, 59,177, 41, 41, 41, 77, 12,237, +167,193,230,127, 13,153, 42, 54, 9,190,232,241,191,197,106,143,248,248,248, 99, 0,142,125, 75,155,165, 69,126, 55,224,255, 23, +185,105, 9,255, 72, 57,228,147,166,201,255,107,249, 89, 64,148, 74,248,254, 25, 0,242, 15, 60,155, 94,255, 9,249, 66,191,112, +196,152, 79,164,218,126,203,180, 68, 70, 70,170, 1, 4,228,191,138,255,223, 83, 0, 61,255,141,242, 77, 9, 96,208,183,178, 87, + 22,121, 50,192,128,255, 85, 24,150,213, 26, 96,128, 1, 6, 24, 96,128, 1, 6,124, 29, 46, 20,219,130,231, 66,193, 7, 2,160, + 83, 41, 35, 29,189, 37, 65, 66, 72,167, 47, 24, 73, 93, 55,216, 52,216, 52,216, 52,216, 52,216, 52,216, 52,216,252,223,178,249, + 63,135,130,192,145,255,196, 11, 64, 39,131, 77,131, 77,131, 77,131, 77,131, 77,131, 77,131, 77,131,205,255,230, 23,128,113,165, + 29,243, 12, 84,211, 0, 3, 12, 48,192, 0, 3, 12, 48,224,159,129,222, 68, 75,110,239,225, 97, 83,185,193, 62,203, 74,245,131, + 44, 43,213, 15,178,169,220, 96,159,220,222,195,227,127, 49,211, 8, 33, 50, 66,200, 80,161, 80,120,205,193,193, 33,139, 16, 50, +227,191,244, 62, 77, 9, 33,253, 9, 33,203, 8, 33,125, 8, 33, 70,223,210,126,123, 66, 4,131, 9,153, 52,130,144,232, 17,132, + 68, 15, 38,100, 82,123, 66,254,235,230, 13, 46,157,230,216,242,238,229, 97,151,150, 78,115,108, 89,226,249,217,142, 86,143,174, + 13,220,232, 59,217,201,242, 27,149,155,137,157,157,221, 78,123,123,251, 72, 59, 59,187, 40, 59, 59,187, 61,132, 16, 51, 67,115, +103,128, 1, 6, 24,240,143,225, 2, 33,100, 92,193, 11, 69,230,104, 9, 0,224,194,133, 11,158, 0,110, 3,104,239,237,237,237, + 95,252,215,150,174,245,198,122,212,170, 57,103,197,146,249,196,222,214,218,136, 97, 57,109, 68,100, 76,237,197, 43,252,254,180, +116,173,183, 46, 45, 42,120,247, 23,116, 6,132,207,231, 15,146, 72, 36, 61, 0, 20, 16,182, 80,181, 90,125,158,101,217, 99,250, +174, 34,178,183,183,191,195,231,243, 43, 87,228,191, 89,150,141,254,248,241, 99,155, 47,236,196, 6,184,184,184,236,241,244,244, + 52,106,214,172, 25,196, 98, 49, 22, 45, 90, 52, 11,192,122,125,109, 88, 90,186,153,104, 37,210,233, 2,177,184, 51,213,105,234, + 82, 80,128, 39, 9,225, 24,245, 13,145, 90,189, 46, 45,237,125,182,158,105,153, 15, 96, 36,242,150,163,239,166,148,174,254,154, + 90, 50,178, 17,209,233,216,188, 58, 33, 18,128, 53, 51, 51,187,189, 96,193, 2, 65,143, 30, 61,176,123,247,238, 54, 59,119,238, + 28, 71, 8,185, 1,224, 47, 74,233,251,175,173,149,118,192,248, 86,109,218,108, 28, 49,107, 22, 95,121,231, 14, 54,238,217,179, + 1, 89, 89, 0,176,181,162,117, 73, 36, 66,127,107,107, 97, 15, 74,209,136, 0,132, 0, 47,146, 83,185,139, 90, 45,123,140, 86, +116,127,159, 79,109, 15,197,167,203,241, 15, 87,212, 70,230,123,186, 80,210,211,163,109,230,251, 91, 11, 1,116, 43,126,158, 81, + 73, 71, 80,126,165, 30, 74,250, 60, 6,192,218,175, 36, 89, 70, 54, 54, 54, 65,103,207,158,117,110,214,172,153, 0, 0,158, 62, +125,250, 67,143, 30, 61, 58, 16, 66,234, 82, 74,179,254, 69,164, 93, 42,224,241, 38,137,133,194,206, 44,203,214, 3, 0, 62,159, + 31,172,209,233,174, 49, 28,183, 85,223,152,108, 6, 24, 96,192,127, 49, 83, 41,135,139,252, 59, 67,159,200,240,183,189,189,189, +201,133, 11, 23, 40,138, 45, 17,151,219,213,170, 93,167,142,199,172,203,167,247, 87,202, 72,203, 80,109, 94,179,255, 89,174, 64, +172,112,175,237, 46,218,188,126,181,197,164,105, 51,167,203,237,106, 61,202, 73,124,253,170, 2,141,174,139, 76, 38, 59,181,102, +205,154,186, 94, 94, 94, 66, 91, 91, 91, 36, 38, 38, 34, 52, 52,180,238,205,155, 55,123,239,223,191,127, 22, 33,164, 47,165, 52, + 90, 15,115,238, 55, 14,236,177, 53,182,180, 2,171,211,193,177,126,163,194, 64,123,239,110, 94, 5,163,213,130,211,233,224,209, +163, 55, 0,128,227, 56,212,174, 93,155,255, 37, 25, 73, 8,113,172, 83,167,206,193, 85,171, 86,137,212,106, 53, 30, 61,122,132, + 91,183,110,113, 9, 9, 9,126,250,218,144,219,213,240,226,201,140,143, 13, 26,246,163,217,247, 61,170, 10, 93,236,108, 0, 24, +225, 77, 4,211,234,210,213,155, 77, 79, 31,219, 59, 81,110, 87, 99, 80, 78, 98,216,173,178,201,154,101, 11, 66,200,202,130, 8, +209,132,144,223,170, 84,169,242, 75,209,107,138,239,155, 71, 41,133, 64, 32, 72,204,206,206, 30,148,146,146,242,188,184, 77, 29, + 11,193,225,195,121, 60, 98,225,164,161,252,123,247,238, 25,215,174, 93, 91, 13, 0,171, 87,175,198,178,101,203,196, 87,174, 92, +233,126,224,192,129,238,132,144, 13,148,210,191,190,166, 98,138,128,159, 71,204,154,197,151, 71, 70, 66, 30, 24,136, 97, 89, 89, +130, 95,129,159, 43, 66,180, 8, 33, 85,237,237,133,127,206,154, 57,202,163,154, 91, 11,145, 72,100,157,183,137,183, 38,165, 70, +116,244,243,254,126,191,238,244, 33,132,244,163,148,190,211,211,158, 0,192, 82, 0, 82, 0, 11, 1, 44, 74, 78, 78,118,103, 89, + 22,246,246,246,139, 8, 33,103, 0,172,176,177,177,161,201,201,201,115, 41,165, 76, 89, 74, 86,214,123,186,240, 35,169,214,181, +102,227, 17,248, 72, 46,119,157,217,205,225,146,169, 27, 89,177,120, 99,252, 3, 0,232,230,230,102, 82,173,150,241, 92,185,105, + 61,203,172,184,235,115,187,185,185,237,186,244, 94, 63,162, 93,156,108, 2,128,163,163,227,234, 3, 7, 14, 84,106,222,188,121, + 97, 29,111,216,176, 33,127,245,234,213, 78, 51,102,204,216, 0, 96,148,158,246,106,216,216,216, 92, 97, 89, 86,157,154,154, 90, +163,224,123,219, 6,125, 91, 89,153, 24,119, 76, 78,207,190,147,242,242,140,191,158,182,154, 73, 69,162,147,127, 29,220,232,208, +176,121, 75,158,220,218, 22,170,184,120,228,232,180,157,110,221,127,216,126,220,164,159,167,229,151,209, 99, 67, 87, 99,128, 1, +255,211, 40,149,139,252, 39, 67, 80,132, 73,150,168, 32, 73, 36, 98,159,197, 11,230,146,140,212, 12,165, 42, 43, 91,163, 83,169, + 84, 60, 17, 85, 5,191,250,144,196, 19,240, 51,102, 76,155,106,226, 51,111,129, 15,128, 97,250,146,172, 6, 13, 26, 60, 62,117, +234,148,173,165,165, 37, 50, 51, 51,145,154,154,138,199,143, 31,131, 82,138,190,125,251, 74,154, 55,109,218,104,225,162, 69, 15, + 8, 33, 45,245, 33, 91,198,150,214, 88,221, 38,111, 47,218, 95, 34, 83, 11,254, 7, 59, 7,244, 40,188,102, 89,108, 38, 0, 64, + 42,149, 22,110, 72,252, 5,104,217,177, 99, 71, 17, 0,140, 25, 51, 38, 43, 59, 59,219, 23,192, 97, 74,169, 94, 59,173,202,237, +106,120, 89, 59, 56,158,255,125,251,106, 89, 61, 55,119,104,117, 12,162, 62,198, 67, 32, 52,135,179,179, 8,163,134,117, 22,182, +107,101,105,189,114,249,206, 11,198, 54, 53,250,228, 38,135, 93, 41,205,150,185,185,249,254, 99,199,142,225,248,241,227, 0,128, +176,176, 48,184,187,187, 27,151,151,134,144,144,144,106,189,122,245, 58, 10,160,122,121,215, 22, 15,140, 47,145, 72,208,166, 77, + 27,212,174, 93, 27,103,207,158,109, 15,224,175,175,173,128,202, 59,119, 32, 15, 12, 4,252, 43, 62,120, 33,132, 84,109,220,216, +245,225,197, 11, 7,173, 47, 92, 12,197,218,181,123,240,254,125,158,208, 86,173, 90, 53, 12, 29, 50, 64, 24, 28, 28, 80,167,127, +255,161, 1,132,144, 54,148,210, 48, 61,204, 46,221,181,107,215,252, 42, 85,170,160,127,255,254, 3,234,212,169, 99,111,106,106, +138, 29, 59,118,192,193,193,161,154, 70,163,121,119,246,236, 89,199,143, 31, 63, 98,234,212,169, 0, 48,171, 52, 67,237,187,180, + 95, 40,233,233,209,182,102,227, 17,144,155, 58, 96,215,145, 99,120,243,108,127, 91,181, 54,116,161,239,100,167,225, 74, 42, 25, +233,236,110,226, 83,185,137,167, 85,245, 58,189,224,218,248,185,181,138,189,251, 97,209,164,106,126, 2,169,106,255,226, 53,241, +169,159,221,243,128, 63,249,117,179, 94, 91,134, 92, 67, 42,165,139,185,124,130, 85,216, 32,177, 20,189,218,181,107, 87, 88,112, +145,145,145, 80,171,213,240,240,240,224,105, 52, 26, 47, 61,243,181,198,119,223,125,119,239,226,197,139, 86, 53,106,212,248,100, + 75, 24,123, 43,243, 46,254,167, 54, 76, 93,185,241, 80, 45,219,218,125, 50,146, 94,157, 14, 46,143,100,181,110,209,248,250,165, + 83, 7,229, 36, 39, 6, 98,243, 20,128, 75, 69,248,209, 63, 64,140, 44, 49,104,194, 76,129, 87,199, 14, 78,157,187,245,187, 78, + 8,233, 72, 41,125, 98,232,107, 12, 48,224,127, 90,213,162,255,109,247, 84, 72,180,138,176,200, 79,192, 81,174,190,157,173,149, +108,195,154,125, 79,248, 90,141,198,216,220, 76, 35, 52, 51,229,136,137, 25, 95,171,209,229,184, 86,115, 21,115,148,171, 95,138, +148,118,189,248,168, 91, 38,147,157,250,235,175,191,108,133, 66, 33, 56,142,131,141,141, 13, 34, 34, 34,144,145,145,129,236,236, +108,188, 15, 13, 69, 21,151, 74, 88,226, 51,215, 97,234, 92,159, 83,132,144, 38, 69,221,136, 37, 45, 27,101,117,218,226,141,123, +105,155, 8,127,242, 94,150,205, 82, 16, 17, 29, 29, 13,185, 92,142,186,117,235,202,239,223,191,127,183, 52,146, 85,220,166,165, +165,155,137, 64, 46, 59,190,237,247, 69, 50,173, 46, 4,175,194,211, 80,179, 74, 91,216, 89,185, 32, 62, 77,131,135,143,255, 66, + 72,208, 97,184, 57,185, 96,242,132, 14, 82,191,213,127, 30,179,176,168,234,146,158,254, 33,171, 36,155, 89, 89, 89,242,170, 85, +171,194,197, 37,111,223, 51,150,101,241,234,213, 43,176, 44, 91,120, 92,244,125,223,201,155, 96,178,162, 48,226,135, 31,144,154, +154, 42, 47,201,166,144, 15,102,230,184,161, 2,153, 16, 16, 27, 91,106,114,114,114, 10,213, 65,173, 86,139, 23, 47, 94,160,101, +203,150,158, 39, 78,156,240, 47, 71, 66,213, 43, 63,181,192,111, 27,247,238,221, 52, 44, 51,147, 7, 0,187, 9,225,180,148,254, +166,111, 93,178,181, 21,158,188,124,233,128, 53,159,247, 26,150,102,191,226,241,227, 40,104,181,121,233, 77, 77, 77,194,148, 73, + 89, 16, 9, 77,112,246,236, 33, 43, 15,143, 54, 39,243, 93,103, 92, 57,233,148, 94,186,116, 9, 83,166, 76,193,171, 87,175, 28, +249,124, 62, 30, 61,122, 4,153, 76,134, 53,107,214,240, 61, 60, 60, 28,141,141,141,113,249,242,101, 36, 38, 38,146,178,210,121, +251,202,237, 21,153,239,111, 45,252, 72, 46,119,221,117,228, 24,126, 28, 50, 8,246, 52,252,174,153, 27, 89,241, 93,207,214,191, + 80,126,165, 30,198, 38,245, 45,220,235,246,132, 72, 44,199,228,159,151, 33, 44,228,156,133, 34, 59,104, 18, 97, 99, 42, 33,127, +239,191, 79, 54, 85, 62,209,159,221,116, 36,160,241, 53,151, 39,174,142,141,199, 63, 2, 16,244, 55,209,170, 38, 32, 60,214,172, + 64,189,124,247,238, 29,222,191,127, 15,129, 64, 0,165, 82, 9,134, 97, 74, 76,167,147,147,211,120,134, 97,126,201, 47,231,125, + 14, 14, 14,163, 15, 30, 60,104, 85,148,104, 23, 40, 89,105, 25, 89,233, 1, 79, 94,190,153, 57,190,127,251, 59, 15, 67, 98,204, + 27,244,142,206, 8, 60,147, 89, 74, 25, 73,101, 98,241,201,203,167, 15,201,117, 31,110,194,216,163, 61,132,114,119,176,186, 56, + 40,210,115,145,253, 62, 1,234,223,183,160,225,164, 25, 56,119,230, 79,121,157,122, 77, 78, 16, 66,220, 41,165,154, 47,120, 54, + 43, 34,241, 27,108, 26,108, 26,108,254, 27,218, 44,139,139, 0,104, 12,192, 46,255,115, 42,242,166,204, 88, 3, 72, 65,222,118, + 96,118, 0, 52, 0,196, 69,126, 83,252,184,232,181,197,143,139,126, 78,205,255,108,155,255,254, 4, 64, 90, 57,131, 74, 7, 0, +222,200,155,155,229,157,159, 71,250, 69,134, 39,132,151,197,178,156, 68,100, 99,171, 26, 51,176, 99,189,171,215,159,190, 48,178, + 54, 21,116,105,223,200,243,113,240,135, 7,132, 71,116,132,240,244,154,247,193,231,243, 7,109,216,176,161,158,169,169, 41, 56, +142,131,153,153, 25,146,147,147,161,209,104,144,153,153, 9,117,118, 22,180,217, 89, 8,140,137, 68,107,207,246,232,215,245, 59, +143, 67,103,254, 26, 4,224,104, 89,118, 29,235, 55, 42, 84,178,150, 85,182,250, 91,154,136,201, 40, 36, 93,191, 54,114,135, 72, + 46, 71,231,153, 62, 95, 83,177,158,139,197,226, 75,125,251,246,237, 54,123,246,108, 94, 66, 66,194,101, 66, 72,107, 74,105,185, +110, 83,173, 68, 58,125,226,244, 30, 22, 22,114,138, 19,215,254, 66,187, 70, 67, 96, 36,230, 35, 53, 75, 11, 66,128,208,151,167, + 64,136, 37,130,194, 18,208,182,161, 41,190,235,226, 33, 63,243,103,232,108,252, 61, 63,232,179,162, 73, 79, 79, 71, 82, 82, 18, +116, 58, 29,116, 58, 29,250, 15, 24,128, 3,251,247, 35, 55, 55, 23, 74,165, 18, 26,141, 6, 44,203,130,199,227,225,218,249, 19, +136,249, 16,138, 86, 45, 91,162, 52, 73,118,223,115, 42, 36,132, 60,124,243,230, 13, 66, 67, 67, 17, 27, 27, 11,169, 84, 10,123, +123,123, 44, 91,182, 12,106,117,222, 30,101, 3, 6, 12,240, 4, 16,252,181, 15,212,123, 96,103, 4,203, 46,236,118,250,180,237, +253,211,167,185,135,231,206,197, 74,178,179,119,232,243, 91,145, 8,253, 87,255, 54,161,166,177,177, 49, 98,163, 55,160, 86, 45, + 17,102,205,176,130,239,175, 41, 0,128,169, 83,156,209,180,137, 53,178, 50,254,132,181,237,124,108,218, 52,205,109,228,200,117, + 63, 0,216, 87,142,233,133,127,253,245, 87, 63,119,119,119,167,231,207,159, 19,177, 88, 12,153, 76, 6,153, 76, 6,169, 84,138, +164,164, 36, 68, 68, 68,208,213,171, 87,199, 33,207,181, 88, 42,242,221,131,221,102,118,115,184,244,230,217,254,182, 78,252, 15, +129,253, 38,183,137, 12,122,248, 60,251,234,181,251,203, 25,149, 52, 38, 35,246,250,220,170, 77,159, 91, 79,154,179, 20, 91, 86, + 47,198,155, 71,119,210,236, 92,178,182,202,136,122, 95,243,206, 37,168,100,237,151, 10, 38, 45, 26,200,140, 31,217,207,252,156, + 93,192,248,139, 2,146,252, 49,229,217, 26, 68, 60, 87, 74,170, 55, 26, 94,163, 26, 79,115,243,230, 77, 89,187,118,237,160, 82, +169, 10,149,201,131, 7, 15,114, 12,195,148,232,142,214,106,181,191,196,197,197, 57, 40,149, 74,116,237,218,117,234,154, 53,107, +140, 11,246,168, 99, 89,246, 19, 37,107,197,250, 3, 87,166,255,178,245,214,149,163,191, 58,174,240, 25,221,126,216,228,149,183, + 80,202, 62,146, 2, 30,111,210,185,211,123,236,165, 22, 58,200, 44,191,131, 42, 81,137, 55, 59,127,132, 34, 75,133,166, 43,150, + 2, 16, 67,163,227, 97, 71,207,254, 16, 90, 57, 98,241,216,209,142, 11,118,236,154, 0, 96,131, 97, 92,111,128, 1, 6, 20,131, + 29, 33,228, 60, 0,248,248,248,204,247,245,245,125, 73, 8, 57, 79, 41,237,145, 79,116,206, 83, 74,123, 20, 92,147,223,103,127, +118, 92,112,109,241,227,226,159,231,205,155, 87,199,207,207,111, 85,203,150, 45,143, 6, 4, 4,124, 40,143,104, 33,111,255,231, +157,197,183,226, 1,242, 87, 29,122,123,123,147,162,239,159, 40, 90, 28,119,231,221,135, 72,197,119,157,154, 59,159,247, 15,126, + 50,106,148,119,199, 65, 61,219,117,137,136, 78, 13,117,115,181,183,126,249, 50,216,148,227,184, 59,250,228,146, 68, 34,233,209, +161, 67, 7, 65,122,122, 58,140,140,140,144,156,156,140,184,184, 56,104,181, 90,168, 50, 51,160,206,204,128, 42, 35, 29,218,204, +116,188,127,250, 24,245,221,170, 73,242, 39,203,151, 71,128, 74, 84,170,138, 42, 91, 98, 19, 19, 72, 76, 76, 64, 42,232, 54, 36, +132,124,111, 97, 97,241,144, 16,178, 48,191, 83,154, 52,119,238,220, 20,142,227,176,114,229, 74, 83,185, 92,126,130, 16, 34, 41, +207,142,137, 13,191, 71,203,134,117,121,175, 35,130,208,166,193, 8,212,168,218, 29, 17,137, 74,164,100,107,145,148,161, 69,211, +118,155, 81,185,193, 82, 84,106,232,139,208,168, 52, 56, 58,185,243, 32,144,148,185,249,115, 76, 76,204, 39,199, 71,143, 28,129, + 66,161,128,155,155, 27,134, 12, 25,130,185,115,231, 98,200,144, 33,112,116,116,196,176,129,189,176,120,241, 98,124,252,248,177, +188,164,170,107,212,168,161,118,117,117, 85,187,186,186,170,181, 90, 45,114,114,114,144,145,145, 81, 60,191,167, 85,248, 41,177, +179,155,231,224,224, 16,100,103,103,247, 82, 42,149, 94,124, 65,200,107,149,171,171, 93,235,222,189, 73,237,129, 3,249, 81, 50, + 25,241, 7,228,250,216,178,182, 20,122,123,117,232, 38,206, 72,223, 3, 32, 79,164, 26, 61,202, 6,247,252,235,224,254,221, 38, +152, 50,201, 13,132, 39, 5,225,137,161,200,189,137,230,205, 90,138,204,205, 73,143,114,202,122, 40,128, 23,173, 91,183,118,156, + 60,121, 50,145, 72, 36,152, 58,117,170,118,236,216,177,111,135, 12, 25,242,246,198,141, 27,172,171,171, 43, 42, 85,170, 68, 42, + 85,170,228, 0,224, 69,254,111,202,132,169, 27, 89,161,214,134,222, 53,119, 55,254,192,194,186, 85,142, 78,210,127,241,154,248, +212,229, 91,195,215, 70,188, 81, 84,123,243,232, 78,234,219,144,115, 92,196,147,219, 41,241,111,179,171, 45,223, 26,190,118,222, +150,184, 18, 31,106,127,127,112,167,206,251,107, 21,185, 10, 65,239,158, 94,138,241, 99, 6,213,176,148,215, 57, 8,167,239, 26, + 84,118,113, 30,182,120,213, 38,237,216, 9,211,181,187,255,216, 67,179,179,179,145,149,149,133, 77,155, 54, 49,231,206,157,139, + 99, 89,118,122,105, 99, 32, 0,208,233,116, 24, 63,126,188,177,169,169, 41, 98, 98, 98, 10, 21, 81, 0, 72, 72, 78, 13,190,255, + 36,228,245,204,159, 6,120,230,170,213,234, 43,183,159,134,214,118,119,117, 38,132,150,186, 16, 69, 44, 20,118,110,210,188, 57, +159,210, 12, 16,129, 11,222,239, 95,141,172,143,105,200, 74, 74, 3, 95,104, 12, 6, 18,232, 56, 49,204,235, 55, 67,216,147,231, +112,178,177, 19, 72,132, 66,195,214, 89, 6, 24,240, 63,138,178,184, 72, 81,178,228,231,231,183,170,172,243, 69,222, 53,197,142, + 11,137, 84,113, 18, 86,244, 51, 0,248,249,249,173,162,148,246, 8, 8, 8, 56, 2, 64,169, 39, 95, 24, 87,240, 94, 52, 74,124, +185,172,131,175,210,248,206,158,187, 16, 22,102, 50,179,102,141,220,237,207, 94,246,127,122, 39,224,105,104,229, 74,214, 54, 84, +167,177,248,109,221, 22,103,162, 80,234, 59, 25,220,195,218,218, 26, 90,173, 22,239,222,189, 67,108,108, 44,180, 90, 45,152,220, + 92,168, 51, 50,160, 74, 79, 7,155,155, 13, 17,203, 66,153,156, 4, 43, 35, 41,240,247,138,196,242,110,176, 68,162, 85,240, 46, + 53, 53,133,196,196, 20, 60,161,176, 68,183, 98, 41, 54, 27, 55,107,214,236,120, 72, 72, 72,243, 78,157, 58, 45, 39,132,152, 81, + 74,163,226,226,226, 58, 46, 90,180, 72,109,103,103,135,241,227,199,215, 4, 48,162, 92,146, 41,214,120,184,218,215, 68,141,106, + 35, 80,185, 82, 7,100,228,234,144,156,165, 67, 82,134, 22, 59, 54,183,196,201,221,205,112,239,100, 91,132, 92,233,140, 12,157, + 61,228,142,223,131,178,154, 58,101,217,188,118,237, 26,150, 45, 91,134,229,203,151, 99,229,202,149, 88,190,124, 57,226,226,226, + 80,183,110, 93, 68, 71, 71,227,210,165, 75, 72, 72, 72,128,181,181, 53, 30, 63,126,140,245,235,215,227,222,189,123,250, 40,119, +122, 93, 67, 8,169,144, 47,157, 97,152,145, 9,189,123,215, 75,180,180,172,221,168, 81,163,110, 83,167, 78,173,214,186,117,235, +194,243,213,170, 85,115,145,201,100, 31, 9, 33,187, 9, 33, 13,203,178,197, 1,141,108,108,234, 66,163,126,157, 95, 86, 66, 16, + 34, 69,135,206,161,104,221,246, 41,180, 58, 17,120, 68, 2, 30, 79, 10,134, 73,133,133,133, 35, 40, 37,117,203, 73,226,162,228, +228,100,247,235,215,175,243, 34, 34, 34, 32,149, 74, 1, 32,114,201,146, 37, 91,214,174, 93,251,202,202,202,138, 61,127,254, 60, +206,156, 57,131, 30, 61,122,240,199,142, 29,235, 94,169, 82,165,237,229,221,247,226,141,241, 15, 14,175,187, 52, 88,168,179,104, + 40,149, 85,174,130, 92,249,247,147,218,219, 24, 3,192,165,247,239,179,109, 93,178,252,114,179,131,162,205,157,115,126, 45,111, + 34, 60,165,139,185,103,111, 95, 63, 60,124,250,114,102, 82, 98,186,176, 81,189, 58, 74,223,101,115, 68,149,171, 84,255,109,241, +220,159,236,227,178,164, 25,157,167, 94,122,125,234,242,227,156,225,163,126,100,198,140,155,172,186,116,249,218,105,142,227,234, +149,182,226,144,227, 56, 36, 36, 36,224,229,203,151, 8, 15, 15, 71,114,114, 50, 82, 82, 82,144,157,157, 93,232,110, 52,202,206, +186,176,101,239,185, 64, 99,153,204,168,121, 61,119,151, 71,207, 95, 37, 25,203,100, 70,238, 85, 92,106, 16,178,180,196,118,132, +101,217,122, 82, 35, 25, 0,130,140,144, 59,200, 73,207, 65, 78, 70, 14,178,211,114,160,214,242,161, 82,243,160,212,240,224,234, +249, 29,114,114, 85,200, 73,205, 4,199,178, 13, 12,221,141, 1, 6, 24, 80, 70,191,124,222,199,199,103,190,158,151,235,237,222, + 44, 78,188,124,124,124,230, 19, 66,206,207,155, 55,175, 14,244,152,211, 76, 41,221, 89,252, 85,112,174,220,240, 14, 41, 41, 97, + 57,166, 54,181,251,206,248,249,151, 75, 71,254,216,108,171, 86, 43,162,173, 44,228,172,220, 72,108, 61,102,252, 74,100,231,164, +247,201, 73,211,127,149, 84,122,122, 58, 62,124,248, 0,153, 76, 6,145, 80, 8, 86,169, 4,171,204,133, 50, 61, 21, 60,173, 26, + 34,150,133,165,145, 12,174,142,246,168,108,103,175,151,205,119, 55,175, 22, 78,124, 47,234, 46, 92,221,204, 3, 98, 99, 57,196, + 38,114, 76, 60,127, 27, 0, 32, 18,137,128, 69,203,245, 41, 76,107, 39, 39,167,191, 14, 31, 62, 44, 74, 78, 78,198,139, 23, 47, + 2, 41,165,153,132, 16, 19, 0, 92,104,104,232,245,144,144,144, 30,238,238,238, 0,224, 86,158,189,172, 20, 30,171, 99, 40, 98, + 62, 70, 34, 34,246, 57, 44,205,170, 66,104, 84, 3, 73, 25, 90, 72,100, 85,161, 83,255,237,125, 84,101, 69, 65,169,213,111, 97, +164, 70,163, 1,195, 48, 96, 24, 6, 26,141, 6,227,198,141,195,253,128, 0, 28, 61,115, 3, 31,222,135,161,102, 21,123,252,240, +195,112, 52,107,214, 12, 1, 1, 1,101,218, 26,217,136,232, 22,180,131, 96, 93, 55, 30,196,114, 43,117,139,185, 87, 30,233, 67, +182, 40,165, 68,143,252, 92,219,163, 71,143,234, 97,185,185,120,249,250, 53, 58, 45, 89, 2, 0,184,120,241,226, 39,247, 50,115, +230, 76,241,171, 87,175,198, 60,125,250,116, 12, 33,100, 29,165,180,228,201,230, 20,184,112,225, 1,126,250,233, 21,146,147,243, +230,107, 31, 59,242, 55, 47,141,248,160, 69, 87,239, 60,143,150,185,185, 57,214,173,171,171, 87,126,178, 44,139,157, 59,119, 22, +186, 11, 1, 64, 32, 16,180,158, 57,115,102,223,146,174,175, 94,189,186,168, 60,155, 51, 7, 56, 75, 95, 68,201, 38,153, 85,175, + 92,199,212,186, 62, 82,117,207,235, 62,143, 75,152, 50,115,128,243,134,117, 39, 98, 85, 50,162,222, 71,216,152, 74, 2,169,106, +191, 62,105,124,127,105,147,198,188,242,168,253, 31,147,179, 22, 76,254,113,168,149,169,185,109,238,238, 45,190, 22, 60, 62,143, +254,245, 84,155, 81,167,154,149,249,247, 45, 54,230,252, 52, 99,209,115, 13, 19, 51, 25, 49,127,133,149, 21,226,130,101, 89,196, +199,199, 35, 57, 57, 25,209,209,209, 72, 73, 73,201,127,246, 83, 62, 91,185, 90,193, 6, 17,202,232,104, 68,157,222,141,202,195, +135,163,233,242,101, 96, 57, 1,148, 10, 22,235, 90,117, 68,122,166, 18,106,142,192,177,113, 43,252,120,241, 46,120,148, 5,118, +108, 53,244, 36, 6, 24,240, 63, 10,125,194, 59, 20, 16, 34, 95, 95,223, 30,223,250,255,139,146, 45, 95, 95,223,151,190,190,190, +122,255, 87,113,151, 97,209,227,114,195, 59, 0, 64, 86,242,171,112, 43,215,250,241,185,202, 92, 35, 59, 91, 27,181,145, 84,194, +101,102,101,243,159, 7, 7,106,115, 18,222,189,169,192,125,132,134,132,132,212,141,143,143, 71,116, 84, 20, 24,101, 46,120,106, + 13,168, 74,129, 78,109, 90, 65, 10, 64,202, 35, 16,113, 90, 8,248, 98,100,231,100, 1, 64,104,185,157,163, 78,247,153,178, 69, + 8,129,216,196, 4, 98, 99, 99,136,229, 38,159, 40, 92,250, 40, 54, 18,137,228,240,137, 19, 39, 28,156,156,156,176,108,217, 50, + 56, 59, 59,215,170, 87,175,158,162,109,219,182, 50, 59, 59, 59,212,174, 93, 27,173, 90,181,194,165, 75,151, 0,160,220,152, 82, + 58, 70, 26,244, 38, 18,173, 83,210, 2,112,247,246,239,208, 40,213,104,228,249, 59,180,130,202,176,169,179, 20,220,187,131, 80, +124, 60,155,167, 30,216,247, 68,108,116, 36, 8, 95,252, 82, 95,229,169,224,115, 96, 96, 32,142,156,245,135,131,171, 7,162,223, +190,198,235, 91,215,113,223,198, 10,174, 30,181, 11,221, 64,165,166,145,133, 96,197,214,194,240, 14,146,180,180, 52,137,165,165, +165,186, 32,239, 28, 28, 28,190,134,108, 13,157, 61,123, 54, 50,132, 66,192,219, 27,162,240,112,104,181, 90,180,104,209, 2, 77, +155, 54, 5, 0,180,104,209, 2, 2,129, 0,245,235,215,135,163,163, 35,182,110,221, 58, 20,165,172,234,227, 17,188, 96,152,212, + 90,213,170, 85, 43, 36, 90,251, 15, 36,227,249,211,206, 32, 16, 99,211,150,191,163, 57,184,184,184,224, 99, 66, 56, 8,161, 33, +229,164,113,185,189,189,253, 34, 7, 7,135,106,107,215,174,229, 75,165, 82, 76,152, 48,161,106, 78, 78, 78,229,124, 41, 25,243, +230,205,203, 83,169, 22, 47,198,146, 37, 75,160, 86,171, 21,165, 25, 59,176,190,190, 99, 82, 26, 55,198,206,222,169,143,151,117, +229,122, 29,186,116, 66, 85,247, 14,232,208, 37, 26, 0, 86, 89, 10, 34, 7,174, 94, 88,247,180,117, 37,203, 61, 87, 47, 95, 91, +220,198,179,195, 2,159,241, 22, 43,252,118,164,151, 59,231, 49, 51,106, 95,246, 27,241,160,245,155,183, 31, 88,255,203,188,105, +210,232,100, 77,122, 92, 58,205,145, 75, 4,114, 55, 59, 34,159,242,243,242, 15,241,241,225,179, 16,115,185,220,149,150, 28,199, + 33, 60, 60,188,112, 78,159, 74,165, 66,110,110, 46, 98, 98, 98, 10,235,140,210,216,180,235,228, 81, 61, 27,228, 42,149,138, 71, +193,111,163, 23, 78, 29,214, 50, 87,169, 84,188,141,136, 14,163,116, 99,137,108,140,199,227, 5, 43,178, 21,157, 20, 25, 42, 36, +191,120, 3,231,142,174,208, 49, 4, 26,134, 69,114,106, 54,212, 12,192,242,132,168, 51,240, 7,176, 68,128,148,248, 56,240,248, +252, 64, 67,119, 99,128, 1,255,179, 40, 55,188, 3, 33,228,124,203,150, 45,143, 22, 85,157, 10, 62, 3, 80, 3, 40,107, 42, 79, +114, 81, 50, 85,224, 78, 44,237,127,138,217,213,119,128,249,217, 28,173,114,195, 59,228,255,144, 52,168,231,234,184,122,241, 48, +103,142, 97,106, 38,165, 36, 50, 2,129, 68, 88,201, 76,153, 80,145, 28, 84,171,213,231,175, 95,191,222,187,115,231,206,146,183, +193,129,208,100,102, 66,147,153, 1, 33,199,192, 82,214, 4, 60,173, 26, 68,163,129, 83, 45, 14,170,108, 25,252,239,135,232,212, +106,245,121,125,137, 22,143,207,255,116, 94,150, 92, 14,137,137, 41, 36,114,121,113,215, 34, 41, 39,163,140,122,245,234,213,177, + 69,139, 22,160,148, 98,231,206,157,208,106,181, 98,173, 86, 11,141, 70, 3,173, 86,139,172,172, 44, 28, 56,112, 0,219,182,109, +187, 15, 96,111,185,157, 25,163,185,126,229,218,205,102,163,135,245, 16, 94, 60,191, 14,140,134,133,146, 56, 35, 55, 87,135, 28, +141, 17, 88,171,225, 64,226, 5,240, 5, 82,180,172, 95, 21,103,255, 60,165, 5,163,190,161, 39, 11,255, 68, 21,138,137,142, 68, +236,251, 48,200,179, 62,194,198,212, 8,138,240, 48, 52,250, 97,196, 23,169, 19,149, 42, 85, 2,199,113,240,242,242, 42,156, 92, +253,165,100, 43, 53, 53, 21,231,206,157, 67,139, 22, 45,224,233,233,137,184,184, 56,132,135,135,163,123,247,238,133,215, 4, 6, + 6,226,249,243,231,112,115, 43, 91, 36, 76, 73,211, 93,140,141,121, 49,224,251,239,191, 23, 61,124,248, 16,148, 82,184,187,155, +194,212,196, 24,132, 39,129,135,135, 45,128,188, 49, 64,251,246,237,145,149, 21,206,164,167,211,139,229,228,227, 97, 66,200, 25, +141, 70,243,174, 93,187,118,142,239,223,191,199,140, 25, 51, 4,199,142, 29, 43,144,146,225,227,243,233, 98, 10,165,178,116,215, +125,205,122,181,230, 84,101, 44, 60,165,178,202, 85, 76,173,235,163,170,123, 7, 0, 64,231, 30,163, 81,181,186, 11,178, 82,130, +170,168,148,145,125, 68,130,116,139,160, 77,113,175,100,222,117, 71,169,146,110,191, 5,160, 79, 0, 96,170,124,123, 44, 49, 90, + 56,252,248,153,191, 46,141,239,222,163,151, 80,199, 50, 76, 93, 87,161,249,137,211, 23,146,226,162,162, 55, 34,250,114,200,223, +250, 95,153, 42, 30,155,149,149, 5, 99, 99, 99,132,132,132,168,189,189,189, 37, 60, 30, 15,239,222,189, 43, 36, 90,182,214,150, +181, 91, 55,173, 91,107,197,250, 3, 87,140, 37, 18, 73,151,246, 77, 60, 94,189,141,138,165,148, 68,150,170,182,234,116,215,130, + 95, 4,122,217, 56, 86,231,135,223,126, 8,171,182,221,161, 86,243,160,212,112, 80, 51, 0,195, 23,193,161, 97,115,152,187,121, +128, 2,120,242,240,190, 78,173,211, 93, 49,244, 53, 6, 24,240, 63,173,106,209,178, 72, 82,254,231, 52, 0,145,190,190,190, 41, + 69,212,166,100, 0,129, 0, 26,228, 95,151, 92,236,119,201,200, 91, 61,216,180,136,157,228, 34,132,171,232,103, 77,177,107,244, + 26, 0, 22,157,163, 85, 34,209, 42, 99, 73, 37,172,173,173,109, 27, 53,106,226,182,235,143,227,160,148,226,205,243, 53, 72, 79, +122,141, 69,171, 30,184, 57, 59, 59,123,198,198,198,250,235,147, 8,150,101,143,237,217,179,103, 86,243,198,141, 26, 85,113,118, + 70, 96,100, 4, 68,148,133,136,101,193,211,170, 33, 96, 53,112,174,203,130, 71,228,136,143,207,132,223,225,227, 33, 44,203, 30, + 43,207,110,173,238,189,176, 44, 54, 19,132, 16,172,109, 89, 23, 98, 19, 57, 68,198,114, 76,252,235,102, 33,185, 58,191,108, 30, +196,114, 57,220,154,151, 31, 16,158, 82,170, 48, 49, 49,121, 26, 28, 28,220,180,110,221,186,152, 53,107, 22, 34, 35, 35,193,113, + 28, 18, 19, 19, 85, 9, 9, 9,113,201,201,201,145, 0, 78, 3,216,165, 79,228,113,145, 90,181,225,252,201,253,147, 91,182,241, +180,254,190,207, 54,156,249,115, 38, 50, 50,179,160, 96,100,200, 85, 49,200, 85,243, 97,105, 85, 15,205,235,215, 71,124, 92, 18, + 94, 62,188,146, 35, 80, 43,214, 84,164,130, 18, 66,240,252,249,115, 84,115, 52, 65,216, 93,127, 88, 27, 9,209,192,209, 30,142, +173,219, 20,198,151, 42, 11, 66, 62,152,161, 67,135, 22, 70,134,255,238,187,239, 34,134, 15, 31,238, 48,115,230, 76,252,241,199, + 31,184,127,255,254,103, 19,180, 61, 61, 61,113,231,206,157,165, 0, 22,151, 39,234,105, 52, 26,212,170, 85, 11, 79,158, 60,193, +245,235,215,209,161, 67, 7,120,122,122, 34, 40, 40, 8, 87,175, 94,197,243,231,207, 65, 8,129,149,149, 21,116,121,228, 89, 87, +154, 49,173, 22, 39,126,253,109,207,252,245,235,183,213, 25, 54,108, 24, 78,158, 60,138,209,163,106,130,240, 36, 32, 68,130, 94, + 61,107, 98,217,242, 39,104,222,188, 61,172,173,133, 88,191,238,236, 7,165,146, 61,160, 71, 54,174,184,122,245,170,163, 74,165, + 66, 70, 70, 6,149,203,229, 36, 53, 53,111, 69,107, 73,138,150, 66,161,144,150,102, 40,248, 89,232,154,140,108,154, 78,115,158, +247, 73, 99,158,215,235,208, 37, 6,157,123,140,194,181,243,123,113,243,202,117, 88, 10, 34, 35, 96,156,125, 41, 37, 34, 37, 43, + 33,215,125,187, 71,227,177,252,216,220, 43,219,167,126,111,193,119,112,224, 78,248,108,203,204, 40,163,142, 82, 66, 8, 73,123, +117,240,175,211, 20,189, 90,181,108, 94,189,174,139,131, 56, 61, 37,137,254,121,246, 82,136, 54,226,228,185, 2,130, 85,222, 46, + 11,148,210,101, 62, 62, 62,191,228,127,222,183,112,225,194,177,126,126,126, 54, 31, 63,126, 44,156,163,149,148,146,118,179,149, +247, 20, 54, 53, 35, 83,179,103,253,207,253,101, 82,137,120,161,223,158,219, 58, 62, 30,150,102,151,225,184,173, 3,103, 44,154, +246,246,205,115,167,202, 50, 49,206,254,188, 24,129, 87,111, 65,199, 19,225,167,235,143,160,214,178,200, 72, 73,197,141, 49,147, + 32,183,179,192,182,219, 39, 19, 57,142,251,221,208,213, 24, 96,192,255, 46,202,224, 34, 37,197,216, 75,212,227,186, 39,122,216, +249,106, 20, 87,177,138, 66,175, 37,120, 41, 41, 41, 73,119,238, 60,194,237,243, 43,224,127,126, 5, 94, 62, 15, 68,124,156, 6, +113,137, 42,152,154,154, 62, 40,163,227,239, 84,188,115, 80, 40, 20,125, 23, 46,250,229,163, 84,102,132,118, 29, 59,194,222,198, + 22, 70, 34, 33,248, 12, 7, 62, 17, 34, 39,217, 28, 97, 65, 10,204,221,115, 48, 41, 71,161,232, 91,188,147, 40,110,179, 40,201, + 32,132, 64, 98,106, 2,177,220, 4, 18, 19,211, 79,220,136, 82, 83, 83, 72, 77, 76, 33, 16,139, 75,154, 52,255,153,205,156,156, +156,126,253,251,247, 79,207,204,204,196,216,177, 99,225,239,239,255,252,202,149, 43,166,129,129,129,178,164,164,164,234,148,210, +239, 40,165, 59, 74, 35, 89,197,109,166,165,189,207,166,140,122,144,239, 47,211,149, 42,198, 10, 3, 70, 28,131, 49, 47, 6, 12, +203,129, 2,112,180, 20,163,117,167,229, 72,210,180,194,177,237, 43, 21,156, 86, 53,172,104, 12,173,226, 54, 41,165,212,206,206, +238,179, 60,184,126,253, 58, 6,244,239,135, 46,125,122,195,166, 74, 53,216,118,234,142, 46, 99,127,194,246,237,219,193,227,241, + 96,109,109,253,137,194, 81,212,230,190,231, 84,120, 56,136,146,195, 65,148,236,125, 70, 5, 0,126, 56,120,240,224,175, 13, 26, + 52,184,117,255,254,253, 53, 0, 6, 21,253,175, 34,105, 89, 82, 84,205, 42,165,140, 22, 76,155, 54, 77,249,246,237, 91, 24, 27, + 27,131, 97, 24,220,191,127, 31,219,182,109,195,218,181,107,241,252,249,115, 88, 89, 89,193,205,205, 13,106,181, 26, 79,158, 60, + 81, 2, 88, 80, 70, 93,226,146,147,153,126,155, 54,249,165,246,232,209, 22,123,246,108,129,189,125, 43, 8, 5,246, 16, 8,109, + 96, 44,175,133,221,187,126, 69,183,110,141,240,215,217,227,105, 41,169, 76,191,226, 81,220, 75, 73,167,234,209,163, 71,216,190, +125, 59,250,247,239, 31, 55, 96,192, 0, 54, 51, 51,179, 80,209, 42,216,141,125, 73,254, 28, 51,181, 90, 45, 41,205,230,216,159, +131,227,230,172, 8, 89,150,248, 49,174,133,255,173, 7, 67,111, 94,185,142, 15,111,111,226,230,149,235,184,123, 51,192, 39,241, + 99, 92,139, 70,205,106,136,250,142,157, 60,103,255,169,147,124,185,169, 3,246,159, 58,201, 31, 50,101,250,202, 38, 93, 58, 44, + 40,175,206,231,151, 35,205, 73, 74,156,183,106,205,230, 28, 70,171,226,173,222,184, 53, 94,153,156,176, 0, 5, 75, 49, 75, 81, +179,138,218, 84, 40, 20, 59,148, 74,165,163, 82,169,116, 84,169, 84, 11, 34, 35, 35,219,205,154, 53, 43,153,101,217, 66,181, 52, +233,229,217, 7,161,119,247,174,178,181,182,144,181,106, 90,167,230,186, 29,127,222,142,142, 73, 60, 84, 16, 67,171,148, 50, 82, +229, 40, 85,253,122,247, 29,158,155,145,174, 70,203,233, 62,224,164,114,168, 89, 64, 71,249, 96,136, 0,193, 43,214, 65,102,105, +130,195, 17,207, 20,153, 58,109,191,162, 49,180,202,185,247, 47,134,193,166,193,166,193,230,191,167,205,255,100, 16, 66, 28,138, +238,117,152, 31, 87,235,111, 69,171,188, 37,149, 78, 78, 78,237,190,239,213, 9,237,123, 44, 4,165, 20,175,159,253,134,244,228, + 55,112,178,151, 32, 60, 58,171, 37, 0,127,125, 19, 67, 41,141, 38,132,180,152,182, 96,225,169, 1,223,117,244,168, 91,165,138, +164,114,101, 87, 24,219,218, 34, 37, 37, 25,247, 30,190,210,173, 60,114, 34, 36,159,100,233,179, 5, 15, 56,142,203,155,228, 14, +160,227,180,185, 32,124, 62,144, 31,198,161,160, 99,172,210,180, 21,136, 64, 0,150,114, 80,171,213, 84,143,116,198, 18, 66,250, + 13, 27, 54,236,198,249,243,231,121, 93,186,116,105,120,250,244,105,238,107, 10, 34, 39, 49,236,150,220,174, 70,143,149,243,198, + 31,107,209,161,183,169,123,157, 38,162, 38,149,249,208,234, 8,226,227,162,112,254,212, 99,237,171, 71, 87,178, 40,163, 26,148, +155, 92,246, 22, 60, 90,173, 54,186,122,245,234,118,219,183,111, 47,156, 12,207,178, 44, 82, 82, 82,240,224,193, 3,212,107,218, + 28, 30,163,198, 32, 57, 57, 25,155, 54,109,130,139,139, 11,122,246,236,137,180,180, 52, 48, 12, 19,173,103, 89,177, 0,174,228, +191, 62, 33,180,249,130, 10, 45,207,109,232,230,230, 38, 86,169, 84, 13, 29, 28, 28,248,132,144, 13, 26,141,102,228,188,121,243, + 28, 86,173, 90,133,154, 53,107, 34, 37, 37, 5,198,198,198,112,119,119, 71,114,114, 50, 30, 63,126,204, 42, 20,138,237, 0,150, + 81, 74,147,203, 73,223, 59, 66, 72,139,169, 83, 39,158,250,213,111,188,187, 74,221, 94,108,105,217, 6,148, 50, 72, 78,142, 68, +118,214,125,237,242,101,123,223, 39, 38,233,250, 82, 74,223,234, 89, 76,139, 39, 79,158, 12,228,111,193, 19, 30, 30,254,194,195, +195,195,189, 52, 69, 75, 31,172, 59, 17,171, 2,112,100,245,140, 86, 51,178, 82,130,220, 45, 5,145, 17, 45,234,114,155,214,157, +136, 85, 45,157, 97,190, 34, 37,210, 63, 44, 33,247,202,246,253,167, 78,242, 71,244,233,199, 58,203,223,250, 72,109,233,159, 29, +122,150, 91, 62,180, 97,195,134,149, 8, 73,171,154,148,250,230,233,232,177,227, 7,154,137,148, 23, 27, 56,167,186,241, 92, 26, + 73,159, 63,127, 30,161,239,158,161,197,236,134, 17, 66,218,205,155, 55,239, 10,165,244,147,185, 9, 73, 41,105, 55, 91,246,152, + 76, 51, 50, 50, 95, 36,189, 58, 27,172,135,173,199,132,144,142,117,235, 53, 58,249,235, 42, 63,187,246,211,102, 9,194,110,221, + 6, 88, 29,162,252,111,131,149,104,184,117, 1,215, 18, 51,181,218, 62,134,168,240, 6, 24, 96, 80,179,202,226, 34,255,238,201, + 47, 62, 25, 30,249,123, 31, 10,244,249,117,108,108,172,191, 91, 53,231,171, 97, 97,237,190,115,113,182, 1, 0,132, 71,196, 35, + 46, 81,125, 85, 95,183, 97, 9,100,171,201,193,115, 23, 7, 73, 36,146, 30, 36, 63,132, 3,253,130, 77,165, 25,134,137,173, 82, +165, 74, 41,103, 75, 14,245,196,178,108,162,158,233,188, 77, 8, 25,238,230,230,230, 23, 21, 21,117,138, 82,154,251,181, 37,145, +147, 24,118,203,210,210,173, 90,192,245,147,211, 31,222, 62,223,137, 50,154,122, 0, 64, 4,226, 10,109, 42,157,147,147, 51,126, +194,132, 9, 59,132, 66,161, 11,242,231,156, 21,204,193, 98, 89,150,175,213,106,165, 44,203,242, 1, 16, 30,143,199, 8,133, 66, +213,169, 83,167, 24,134, 97,162,213,106,245,248,175,144, 71, 43,244, 0, 92,188,120,177,178,133,133,197,119,132,144,254,148,210, + 90,217,217,217,234, 69,139, 22, 5,156, 56,113, 34,171, 74,149, 42, 93,189,189,189,137,165,165, 37,158, 60,121, 66, 83, 83, 83, +255, 4,176,128, 82, 26, 94,129,244,252, 31,123,215, 29, 30, 85,241,181,223,185,119,123,205,166,119, 2, 4, 82,232,132, 46,189, + 40, 72,148, 38, 69,164,119,196,130, 40, 8, 10, 74, 71,249,161, 32,162, 2,210, 17,149,170,244, 46, 93, 58, 82, 67, 11, 4,210, +219,166,103,251,189,243,253, 65,118, 93, 66,202,110, 8, 10,126,123,158,231,102,115,247,238,190, 59,125,222, 57,115,230,156, 88, + 66, 72,131,209, 99,126,120,211,195, 99, 89, 52,165,104, 0, 10, 66, 24, 92,201,201,225,119, 23, 22,114, 63, 21, 17, 70, 71,241, + 44,197, 52,105,179,174, 94,189,186, 26,128,176, 36, 27, 45,167, 68,158,191, 93,175,139,123,131, 40, 11,183,125,253, 77,130, 30, + 0, 62, 95,152,157, 3, 96,197,123, 61, 61,248, 27, 23, 86,204, 15, 84,223,158,244,205, 54,237, 42, 71,224,162,162,162, 66, 25, +134,233, 7,160,174,143, 36,187,166,183, 56,135, 35,132,182, 39,132,241, 2,112,185,118,237,218, 59, 1, 36, 84,176,158,111, 1, + 8, 41,254,126,218,181,223,255, 4,240,167,147, 88,103, 9, 33, 53, 63,248,104,194, 56,177, 80,248, 50, 56,174,254,172,223, 54, + 81, 87, 80,105,151,184,196, 37,255, 49,173,214,168,146,222, 23, 56, 10,112, 55, 54,161, 51, 0,132,133,133,209, 59,119,238, 56, + 61,225,150,180, 26,199, 35,143,239,191, 60, 13, 78, 70, 70, 70,227,103, 89,112,148,210,159, 1,252, 92,153,152, 69, 68,106,102, +209, 85,209,116, 93, 1,208,236,223,108, 84, 86,173, 22, 30, 5, 97, 46, 81, 94,121,229,149, 7, 38,147,233, 32,128,120, 66,136, + 6,128,214,100, 50,237, 51,155,205,169,132,144,198, 95,127,253,181,213,243,253, 44, 74,233,249, 10,166,131, 7,176,161,232,170, +236, 60,110, 8, 8, 8,152,224,233,233, 89, 67,175,215,139,245,122,189,200,126, 13, 32,147,201,210, 29,197,210,168,200, 26,145, + 32,203, 83,163, 34, 79, 16, 41,143, 64,108,209, 21, 92,141,240, 8,196, 22, 71,241, 46, 94,188, 24,219,176, 97,195,245, 12,195, + 84,163,148,250, 2,212,141, 82,164, 83, 74, 51, 4, 2, 65,226,245,235,215, 19,159,151, 1,168,136, 72, 45, 40,186, 92,226, 18, +151,184,228, 63, 37,101,217,104, 9,156, 5,187,125,251, 54,113, 21,169, 75,236,201, 86, 89,207,227,226,226, 12, 0, 78, 21, 93, +197,191,123, 30,192,235,207,123, 30,147,146,146,162, 42, 3,103,196,164, 43,137, 0,198, 55, 46, 33,180,243,231,139,181,121, 0, + 38,182,239,230, 28,230,165, 75,151, 30, 2,120,232,106,137, 46,113,137, 75, 92,242,239, 73, 73,218, 44,135, 99, 29,186,196, 37, + 46,113,137, 75, 92,226, 18,151,184,164,116,177,146,170,146,252,104, 17, 0,157, 74,249,146,195,174,235, 43,114,250,160, 60,124, + 23,166, 11,211,133,233,194,116, 97,186, 48, 93,152,255, 61,204,255,170,148, 68,178, 0,128, 84,224, 80,146, 51, 63,218,169,178, + 11,220,133,233,194,116, 97,186, 48, 93,152, 46, 76, 23,230,127, 15,243, 69, 39, 89, 37, 16, 78,215,214,161, 75, 92,226,146,255, +223,178,121,243,102,135,130,138,190, 57,105,197,107, 74,165,251,180,252,220,156, 47,126, 89, 48,108,155,245,253,222,189,123,115, +174, 82,116,137, 75, 92, 82, 33, 99,248,208,208,224,218, 12,199,183,164,148, 97, 41, 67,205, 36, 87,247,235, 93,173,246, 49,183, + 3, 85,170, 84,209, 8, 25,188, 78, 40, 85, 16,194,115, 60,203,156,140,141,141,191,238, 4, 3, 20,187,187,187,191, 35, 18,137, + 58, 25,141,198, 32,134, 97, 18, 12, 6,195,193,194,194,194, 37,197, 29, 23,254,155, 18, 17, 17,209,255,200,145, 35,154, 86,173, + 90, 25,100, 50,153, 69,167,211, 9,246,238,221, 43,121,245,213, 87,179,239,220,185, 83,161, 19,137,129,129,129, 29, 86,172, 88, + 81,189,115,231,206,168, 89,179,102, 65,191,126,253, 68, 45, 90,180, 16,141, 24, 49,226, 94, 98, 98,226, 97, 39,153,116,109, 66, +200, 58, 66, 8,203,243,252,160,162, 19,137,207,130,177, 51, 12,195,140, 38,132,244,164,148,134, 18, 66, 98, 41,165,219,120,158, + 95,230,136,119,252, 18,240,222, 0,208,149, 97,152, 40, 0,224,121,254, 34,128,221,148,210, 45, 79,145,198,103,134, 41,151,203, + 27, 2, 64, 97, 97,225,165,202,194, 36,132, 52, 44,234,164, 21,194, 36,132, 12,149,201,100, 35, 1, 64,167,211,253, 72, 41, 93, +237,116, 98,150,213,162, 81, 51, 98, 0, 0, 23, 63,143, 4, 0, 56,117, 63,250, 6,113,230,183, 74,194,115, 10,227,201, 50,232, + 58, 96,192,128,185, 63,253,244,211,231,148,210,223,159, 69,219,247,243, 11, 94,242,213, 55,203, 3,198,191, 51,252, 11, 60,138, + 8, 81,166,212, 33,228,101, 49,203,118, 51,114,220,241,235,192, 38, 0, 2, 15, 15,143,254, 98,177,184,141,209,104,244, 23, 8, + 4,201, 70,163,241, 88, 78, 78,206,207,148, 82,243, 83, 39, 48,134,184,155, 10,225, 71,248,191,227,188, 81, 6, 6,145, 28, 41, +136,164, 89,207,193,106,159,193, 35,127, 59,102, 0, 43, 43,226,206,131,101,217,241, 1, 1, 1, 61,115,115,115, 11, 89,150,165, +143, 96,201,163, 63, 0, 24,134, 33, 60,207,167,101,102,102, 14,250,127,164, 69, 9, 41, 42,215,170, 69,111, 9, 1,248, 2,184, + 12, 96, 60,165, 52,223, 69,129,254,177,186, 40,174,209,218, 69, 41, 77,182, 17, 45, 59,119,247,237,162,163,163,143,134,134, 6, +215,238,221,163,215,220, 49,163,199, 18,150,101,112,245,218, 53,193, 91,131,134,190,226,225,225, 17,168, 52, 24,106,129, 16,190, + 80, 42,189,106, 54,155, 18, 55,253,252,147, 42, 50, 34,130,227, 56, 30, 75,151,253,240,106,104,104,240, 39,142,144, 45, 66, 72, +184,159,159,223,186,201,147, 39,251,117,235,214,141,245,243,243, 67, 92, 92,156,230,151, 95,126,137,248,246,219,111,251, 18, 66, + 6, 21,249,242,113, 54,179,173,253, 60,152, 87, 84, 50,210, 17,121, 28,242,204, 56,148,162,195,126, 74,233,241,138, 22, 96, 97, + 97,225,187,133,133,133,205,154, 52,105, 66, 87,174, 92, 73,134, 12, 25, 66, 9, 33, 68,167,211,173, 65, 5, 93, 63, 40, 20,138, +239, 58,119,238, 28, 22, 22, 22, 22,123,247,238,221,174, 27, 55,110,220, 61,120,240,224, 80,133, 66,113, 27, 64,184,147,112,171, + 51, 51, 51, 27,232,116, 58, 4, 5, 5,173, 4,208,232, 25, 52, 34,194,178,236,182,192,192, 64, 58,127,254,252,223, 27, 52,104, +224,171,213,106, 45, 19, 39, 78,236,116,250,244,233, 87, 9, 33,221, 28, 37, 91,132, 16,119, 66,200, 50, 63, 63, 63,175, 47,190, +248,226, 78,227,198,141, 47, 75, 36, 18,241,237,219,183,229, 19, 38, 76,248,128, 97,152,190,148,210,209,148, 58, 62, 65, 88, 49, + 3, 3, 3,189,230,206,157, 27, 23, 21, 21,117, 85, 36, 18,137,110,223,190,173,248,248,227,143,199, 87, 20,147, 97,152,165, 45, + 90,180,112,255,252,243,207,111, 68, 68, 68,156, 98, 89, 86,156,144,144,192, 76,159, 62,253, 29,150,101,251,240, 60, 63,166, 34, +233,244,245,245,117,159, 62,125,250,141, 22, 45, 90,156, 22,137, 68,162,155, 55,111, 50,147, 39, 79,126,199,153,116,122,122,122, +182,247,244,244, 92,158,146,146, 34, 0, 0,127,127,255,166, 53,106,212,248,214, 62,166,165,213, 52,192,108, 54,231,233,245,250, + 1,153,153,153, 37, 58,194, 29, 50,101,241,235, 0,240,173,201,122,255,232,181,188,123, 96,233, 14, 71,242, 29,229, 79, 40, 0, +244,255,112, 65,143, 71,175,143,222,255,170, 0, 16, 8, 4,252, 58,127, 66, 47, 38, 59,238, 50,134, 16,210,189, 67,135, 14,211, + 15, 31, 62,252, 67,187,118,237, 62, 94,191,126,189, 79,124,124,252,151,132,144,224, 55,223,124,115,200,161, 67,135,230,165,167, +167,111,174,172,246, 47, 22, 73, 36,132, 33,144, 73,229,106, 71, 62, 47,100,152,215, 78,117,239, 62,242,199,155, 55,163,190,141, +137,169, 94,224,239,223,236,189,247,222,243,237,213,171, 23, 19, 28, 28,140, 59,119,238,120,174, 95,191,190,214,143, 63,254,216, +147, 16,242, 62,165,244,193,211,144,172,130,108,212, 51, 24, 17, 69, 41, 52,127,151, 17,178, 37, 38, 92, 84,196,144, 43,207, 1, +217,250,108,245,234,213,159,223,185,115, 7,243,230,205, 3,128, 37, 78,142, 63, 19,122,246,236, 25,189,117,235, 86,217,166, 77, +155,100, 77,154, 52,129,159,159, 31,138, 22, 83, 54,199,212,213,171, 87,255,127, 53,185,123,122,122,174,188,119,239, 94,123,133, + 66,241,216,251,177,177,177, 13,195,194,194,114, 0,124,232, 44,113,243,246,246,222,192,243,188, 33, 51, 51,115, 56, 0,168, 84, +170,159, 20, 10,133,123,114,114,242, 39,207,106, 33, 99, 99, 38,197,184,200,139,172,209, 42,209, 97,169,125,196,108,134,227, 91, +142, 25, 61,150,244,235,255,102,202,157,216,123,188, 64, 40,238,191,119,223, 62,121,237,218,181, 25,195,146, 37,176,164,167,195, +252,193, 7, 47, 29, 60,120,208,220,167,255, 64,157,144, 37,171, 67,171, 87,147,255,250,243, 47,126, 91,183,108,110, 9,224,122, +121,154, 44, 63, 63,191,117, 71,142, 28, 9,172, 94,189, 58,178,179,179, 17, 23, 23,135,130,130, 2,244,237,219, 87,216,178,101, +203,192,222,189,123,175, 35,132,180,114, 84,179, 69, 8,241,173, 25, 36,216,249,213,103,125,195, 95,125,165,165, 34, 48,184, 6, +104,138, 30,241,119, 99,154,236, 60,114,250,189, 48, 13,115,235, 78, 14,125,141, 82,154,234,108, 1,102,100,100, 76,234,217,179, +231,150,246,237,219,123, 75, 36, 18, 4, 4, 4,144,110,221,186,165, 37, 37, 37,205,120, 10,226,130,162, 85, 24,103,255, 90, 60, + 60,144,131, 18,228,238,238, 14,119,119,119, 0, 8,124,218,149,167, 70,163, 89,162, 82,169,122,231,230,230,234, 24,134,161,132, + 16,170, 80, 40,100,238,238,238,127,221,136,185, 21, 96, 48, 24,106, 46, 88,244,227, 55, 29, 90, 55, 80, 31, 56,112, 0,189,122, +245,162,251,247,239, 31, 13,224, 7, 7,127, 99, 89,207,158, 61, 11,167, 77,155,166,191, 19, 27, 23,120,227, 86, 44, 81, 72,197, +188,151,151,151,240,236,217,179,130,133, 11, 23, 74,167, 79,159,190, 12, 64,111, 39,210,189,236,205, 55,223, 52,125,244,209, 71, +201, 55,239,220,243,185,114,227, 14, 85, 74,133, 22, 47, 47, 79,246,244,233,211,124, 69, 48, 25,134, 89, 58,105,210,164,220,209, +163, 71,103,101,106,115,252,178,114,243,169, 68,200,154,253,252,252, 4,191,255,254,187, 97,195,134, 13,204,200,145, 35,151, 2, +232,227, 68, 17, 47,237,214,173, 91,222,228,201,147,179,111,199,222,247,187,114,253, 22,228, 18,161,217,215,215,135, 61,119,238, +156,105,193,130, 5,204,236,217,179, 29, 74,167, 66,161, 88,187,113,227, 70,193,239,191, 63, 26,251,254,252,243, 79, 38, 52, 52, + 84,110,255, 25,157,222, 0,134, 0, 25, 25, 25,242, 22, 45, 90,172, 5, 16,244, 4, 9,154, 17,131, 33, 83,128,119,223,125, 55, +217,217,246, 18,229,255, 30, 46,150,227,254,150, 95, 90,139,246,255,112, 65, 15,129, 64,192,143, 28, 57, 50,165,248,115,189, 94, + 79, 0,116,139,114,130,108,117,237,218,245,211, 93,187,118,213, 88,191,126,253,215, 27, 54,108, 48, 2,128, 84, 42,245,250,229, +151, 95,230,245,237,219, 23,125,251,246,157, 6,160,210,136, 22, 71, 57, 19, 0, 72,164, 18, 73, 76, 76, 12,137,140,140, 44,211, +184,213,196,243,231,127,188,121,179,241,219,145,145, 77,180, 60, 95, 83,244,234,171,249, 19, 38, 76,200,200,205,205, 69, 92, 92, + 28, 76, 38, 19,134, 12, 25,194,182,107,215, 46,160,111,223,190,139, 9, 33,111, 80, 74, 77, 14,104,117, 22, 4, 6, 6,142,202, +201,201,201,183,106,117,106, 85, 83, 9,218, 52,180, 72,234,215, 52,139, 69,172, 69,244,250, 7, 60,217,191,132, 20, 68, 86,199, + 9, 0, 16, 21, 34, 93, 4, 60, 53,209,114, 11, 38,213, 57, 33,102,123, 87,149,191,156, 30, 91,248,121,254, 3,186,164, 44,141, +173, 66,161,232, 81, 80, 80,176,185,104,114, 14,127,237,181,215,112,250,244,105, 0,104, 9, 96, 9, 33,164, 3,195, 48,111,241, + 60,191,130, 82, 90, 86, 40,183,247,186,119,239,254,242,214,173, 91, 85, 0,176,121,243,102,152,205,102,132,134,134, 66, 36, 18, + 65, 44, 22, 67, 40, 20,218,162,131,252,127, 18,134, 97, 36,151, 47, 95, 70, 64, 64, 64,241,118, 2, 0,109, 42, 0, 57, 45, 54, + 54,182,197,133, 11, 23,208,190,125,251,105,245,234,213,235,114,244,232, 81,191,204,204, 76,180,111,223,126, 49,128,223,159,117, +158,236,185,200,127,166,158,138, 49,201,118,143,152, 25,195,178, 44,131,123,177,113,230,246,237, 59, 14,126,248,240,161,178, 89, +179,102,140, 80, 40, 68,193,225,195,208,159, 59, 7,165, 82,137,158, 61,123, 10,143, 29, 59,166, 86, 43,213, 35,238,223,187,159, +199,178, 12, 40,101,202,181,121,112,119,119,127,231,147, 79, 62,241, 11, 11, 11,131,197, 98,177,121, 52,183, 88, 44,136,143,143, +135, 82,169,196,160, 65,131,124,228,114,249, 59, 14, 78,178, 85,195, 67,125, 46, 30,217,189,172,209,132, 49, 93, 21,225,242, 3, + 80,196,191, 15,229,230,183, 81, 43,105, 47, 38,247,104,166,216,255,221,180,168, 26, 1, 30, 23, 9, 33, 85,157, 45, 36,189, 94, +127,226,234,213,171, 35,142, 30, 61,202, 3,192, 31,127,252, 65,111,220,184, 49,250,105, 86,161, 60,207, 35, 59, 59, 27, 60,207, +179, 69,247,214,215,127, 85,189,175, 86,171,151,118,233,210,229,205, 7, 15, 30,200,246,236,217,227,249,240,225, 67,175,251,247, +239,123,135,135,135, 11,230,205,155,183, 75,111, 48,177,102,142, 26, 45,156, 57, 47,249,218,181,216,172,212,212,139,171, 86,173, +210, 17, 66,122, 58,248, 27,111,248,251,251,123, 78,153, 50, 5, 68, 40,111, 26, 81,171, 94, 24, 43,148,185, 49, 66,177,155, 78, +167,231,238,221,187, 23, 63,101,202,148,106, 13, 26, 52, 8, 40,218, 94,115, 8, 51, 32, 32,192,235,163,143, 62,130, 64,162,106, + 88,191, 65, 84, 13,177, 68,161, 98,133, 50, 85,179,102,205,218,197,198,198, 38, 77,158, 60,217,191, 73,147, 38, 78, 97, 54,105, +210,196,125,228,200,145, 22,169, 76,213,162,122,245,208, 90,245,235,212,138, 14, 15, 15,239, 33, 16, 8, 44,233,233,233, 15, 6, + 13, 26,228,255,250,235,175,251, 58,131,233,227,227,227, 62,121,242,100, 75,112, 72,104,231,206, 47,191,210, 92, 36, 83,185, 9, +196, 10, 77, 97,161,158,187,121,243,230,131,169, 83,167,250, 55,108,216,208,199, 17,204,194,194, 66,161,151,151, 23,234,214,173, +139,218,161,161,200,201,201,193,214,173, 91,177,122,245,106,172, 88,177, 2, 63,255,252, 51, 26,183,122, 5, 42,149, 10, 73, 73, + 73,200,205,205, 21,254,211,109,138, 95, 90,139,126,107, 28,213,109,236,216,177, 73, 35, 71,142, 76,145,201,100,124,241,203,195, +195,131, 27, 48, 96, 64,234,160,143, 23,117,179,110, 45,150,165,201,234,216,177,227,229,221,187,119,223, 93,191,126, 61,106,215, +174,141,206,157, 59,139, 1,224,157,119,222, 17,247,237,219, 23, 27, 55,110,196,230,205,155,175,135,135,135,159, 36,132,116,119, + 36,157,131, 6, 13,106,213,167, 79,159,227,125,250,244,185,212,175, 95,191,229,163, 71,143,126,108,230, 74, 78, 74, 56,111, 52, + 26,209, 32,170,137,124,214,202, 51, 3,202,195,187, 1,172, 95, 30, 19,179,250,139,107,215, 30, 76,171, 93, 91, 19,114,255,190, +199,154, 5, 11,188,172, 65,186,205,102, 51,226,227,227,225,238,238,142, 1, 3, 6,120, 73, 36,146, 65, 14,180,159,133,221,187, +119, 31,250,240,225, 67,229,143, 63,254,232,127,233,210,165,128,228,228,100,255, 67, 7,247,121, 79,252,240, 29,149,155, 82, 44, + 78, 74,127, 68, 84,239, 39, 65, 17,115, 15,173, 40,133,198,126, 59,177, 66,227, 66, 0,145,201,131,201,183, 53, 90,105,110,125, +180,177, 97,191,201,191, 53,116,247, 10,150,126, 82, 70, 58,235,207,159, 63,127,211,142, 29, 59,250,183,106,213,106, 11, 33, 68, + 86,194,103,164,141, 27, 55,222,186,113,227,198,161,173, 91,183, 62, 65, 8,169, 91,234, 42, 50, 40,168,231,111,191,253,230,105, +189,247,242,242,130, 84, 42,125,130,100,137, 68, 34, 48, 12,131,255, 79,146,158,158,254, 86,155, 54,109, 54,117,237,218,213,112, +225,194, 5,164,167,167, 35, 48,208,182,214, 78,169, 0,164,135, 92, 46, 71,112,112, 48,194,194,194,250, 31, 59,118,204,207,108, + 54,227,254,253,251, 72, 75, 75,187,248, 79,228,201,158,139,188, 72, 82, 44,206,225, 40, 0,187,158, 32, 90, 69,177,133,142, 0, + 0, 37,164,224,242,213,171, 66, 86, 44, 30,248,211,134, 13, 18,145, 72,132, 7, 15, 30,224,250,245,235, 40, 60,116, 8,186, 83, +167,144,154,154,138,252,252,124,248,250,250, 98,217,202,149, 10, 35, 71,135,221,188,117,139,165,204,223,246, 6,165,157, 72,144, + 72, 36,157,122,245,234, 85, 42, 33, 75, 74, 74, 66,215,174, 93,133, 44,203,118, 42, 65, 61,119,176, 88,230, 72,128, 55,217,113, +104,203, 44,127,127,241,117,224,206, 4, 32,239, 34, 64, 13,128,197, 8, 36, 94, 1,118,205, 64, 72,126, 12,217, 55,107,176, 95, +160, 92,176,131, 20, 83, 27, 57,112,188, 53, 52, 50, 50,114,197,192,129, 3, 25, 0,232,208,161, 3,137,140,140, 92, 78, 8, 9, + 45, 67,141,120,176,156, 73,242,116, 86, 86, 22,250,246,237,235, 89,163, 70,141,131,125,251,246,245,180,190, 95, 81, 76,171, 54, +185, 78,157, 58,153, 50,153,236,103, 66, 72,185, 3,172, 61,166, 70,163, 89,210,181,107,215,222, 27, 54,108, 16, 1,192,145, 35, + 71,176, 99,199, 14, 92,187,118, 13,183,111,223,230,163,162,162,188, 23,173,216,180,116,201, 15,107, 23,246,104,217, 32,160, 93, +211,168, 90,202,252,172,124, 95, 95,223,150,148,210, 80, 7,211,217,117,198,140, 25,215,111,220,125,224,198, 8,132, 2,145, 80, + 32, 81,171, 21,190,238, 42, 69,144,135, 92, 26, 40, 97,136,178,176,176, 48,229,231,159,127,230, 1,116,117, 20,115,214,172, 89, +247,110,220,121,160, 33,140, 64, 32, 20, 8, 69, 74,165, 92,243,106,231,246, 77, 0, 64, 4, 42,202,205,205, 77, 93,189,122,181, +201, 25,204,207, 63,255,252,170, 54, 59,223, 93, 32, 20, 10, 5, 2,214, 86,150, 10,153,204, 91, 46,145,136, 13, 6, 67,226, 55, +223,124,163,115, 6,115,198,140, 25,215,111,222,125,232,193, 16,194, 18,194, 8,212, 42,133,167,167,155,220,219, 91, 41,243,146, + 11, 88,113,110,110,110,226,186,117,235, 28,194, 52,153, 76,162,212,212, 84,220,184,113, 3,193, 77,154,224,192,129, 3,168, 82, +165, 10,250,246,237,139, 55,223,124, 19, 50,153, 12, 29, 90,212,195,148, 41, 83,112,247,238, 93,152, 76, 38, 73, 73,152, 54, 59, +169, 98, 18, 16, 16,112,161,188,246, 99,255,221,226,233,140,242, 39,244, 91,227,168,110,246, 4,171, 52,124, 15, 15, 15,174, 36, +109, 87,113,204,174, 93,187,126,122,232,208,161, 26,235,214,173,235, 54,104,208,160, 19,235,214,173, 67,243,230,205,113,227,198, + 13, 84,171, 86, 13,107,214,172,193,155,111,190,121, 98,241,226,197,221, 46, 92,184,208,160,122,245,234,159,148,135,217,175, 95, +191,113, 13, 27, 54, 60,156,146,146,210, 66,171,213,214,221,186,117,235,176,158, 61,123,222,235,223,191,127, 71,155, 70,203,108, +222,176,107,251, 22, 68,119,235,133,136, 58,117,151, 14,249,100,125,189,178, 48, 41,165,244, 26,176,124,117,114,114,250, 6,189, +190,176,175, 80, 40,151,159, 57,227,177,249,135, 31,188,236, 79,122, 39, 38, 38,226,245,215, 95, 23,138, 68,162,214,101,165,147, + 16, 50,191, 71,143, 30,125,183,110,221,234,110,213,234,156, 58,117, 10, 87,174, 92, 65, 92, 92, 28,178,179,179,209,113,116, 62, +198,206,123,132, 61,118, 30,197, 43,239, 80, 69, 5,199, 16,155,200, 67,136,159,167, 90,112,114,216, 55, 17,239,140, 90, 90, 91, +160,244, 16,226,167,143,111, 35,245,142,126,115, 41,233, 36, 45, 90,180, 88,223,167, 79, 31, 98, 52, 26, 97, 52, 26,141,148, 82, + 93, 73,216,129,129,129,210,250,245,235, 99,244,232,209,140, 90,173, 94, 92, 90, 58, 11, 10, 10, 12,187,119,239,198,160, 65,131, +240,254,251,239,163,102,205,154,112,119,119,135, 80, 40,196,218,245,191,122,189, 57,108, 76,120,163, 86,109, 26,212,110,212,188, +126,158,129,109, 34,146,123,140, 36, 37,108, 13, 60,139, 19,114,207, 3,102,189,122,245, 90,157, 61,123, 86,210,166, 77, 27, 60, +120,240, 0, 66,161,109, 61,197, 61, 77, 58,103,204,152, 33,209,235,245,248,235,175,191, 48,120,240,224, 68,147,201,244,193,179, +206,123,113, 46,242, 34, 9,165,116,121,177, 43,185, 52,141,214, 12, 0, 48,243,216, 49,112,240,176,194,157, 59,119,202,197, 98, + 49, 30, 60,120,128,228,228,100,172, 93,189,154,235,224,227,147,215, 57, 48, 48,119,237,234,213,212,104, 52,130, 82,138,200,200, + 72,244,238,221, 91,246, 70,223,254,105, 36, 87,247,171, 3,204,207,223,186,191, 62,108,216,176, 39,158, 79,156, 56, 17,106,181, + 26,132, 16, 63, 7,242,215,231,189, 25, 61,130,220,171,107, 82,105,202, 90, 45, 88, 41, 32, 80, 1, 2, 53, 32,117, 3, 36, 42, + 64, 44,135,225,194, 97, 45, 67, 59,199,245,106, 61, 60,208,201,173, 30, 4, 4, 4, 76, 59,124,248,176,247,133, 11, 23,104,110, +110, 46,146,147,147,233,220,185,115,189, 3, 2, 2,166, 85,180, 82,146,146,146,102, 69, 71, 71,167, 14, 30, 60,216,109,239,222, +189,193,131, 7, 15,118,139,142,142, 78, 77, 74, 74,154,245, 52,149, 45, 18,137,216,107,215,174,121,204,158, 61,251, 77, 0,231, +235,214,173,155, 25, 20, 20,116,190,200,104,178, 76, 81,169, 84, 54,146,101,213,174, 9, 4, 2, 8,133, 66, 4, 4, 4, 24,181, + 90, 45,215,186, 81,168, 44,210,141, 49, 7, 72, 68, 50, 15,153, 52, 72,165,118,107,150,153,153,121,153, 16,226, 80,124, 66, 66, + 72,195,166, 77,155, 10, 57, 42,228,199, 14,236, 16,240,206,208,246, 62,223,207, 30, 89,229,155, 89,163, 2,231, 79, 31, 17, 57, +107,210,128,246, 12,207,235,171, 85,171,230,103, 53,104,119, 64,125, 30,213,184,113, 99, 1, 15, 33,110,220,138, 75,125,144,144, +152,247,114,187, 22, 54,205,101,237,134, 81,157,189,189,189,219, 68, 70, 70, 54,118,212, 39,140, 76, 38,107, 24, 17, 17, 33, 96, + 88, 33,241,116, 87, 5,171,148, 50, 95,235, 51,181, 70,243,146,135,183,119, 31,134,210, 28,127,127,127, 31,153, 76,214,208,137, +188, 11,120,136,224,235,227,225,230,237,165, 81,118,110,223,178,102,139,151, 90,132,215,107,214,188, 69,157, 70,141,223, 32, 22, + 75,110,104,104,168,143,213, 72,190, 44, 49, 24, 12,210, 13, 27, 54, 96,246,236,217,168, 31, 18,130,192,192, 64,248,248,248,224, +212,169, 83, 56,123,246, 44,220,221,221,145,150,150,134, 5, 11, 22, 96,219,182,109, 48,153, 76, 42,103,219,147, 35,100,171, 44, +177, 88, 44, 76,113,130, 85, 26,190, 76, 38,227,173, 70,242,165,201,238,221,187,215, 91, 53, 89,227,199,143,111,181,104,209,162, + 19, 49, 49, 49, 80, 42,149, 56,123,246, 44,134, 13, 27,118, 98,241,226,197,173,198,140, 25,131,213,171, 87,227,222,189,123, 43, +203,194,235,215,175,223,244, 17, 35, 70,124,115,244,232, 81,198,215,215, 23,238,238,238,232,209,163, 7, 86,174, 92, 41,176, 88, + 44,171,250,244,233,115,169, 79,159, 62,151,184,248,253,159,110, 90, 49,247,212,213,203,151, 48,238,189,143,196, 70,139,121,178, + 3, 3, 47,213, 41,149,121,150, 54,109,180, 27,205,230,194,126, 34,145,220,237,210, 37,143, 29,171, 86,217,200,214,148, 41, 83, +224,230,230, 6, 60, 50, 96, 70, 25, 90,157, 81,219,182,109,179,141,135,158,158,158, 16,139,197, 16,137, 68, 16, 10,133, 96, 89, + 22, 7,151, 42,240,195,148, 71,252,226,135, 41, 4,251,151,144,167,138,205,170, 8, 34,117,221,125,197,151,222, 94, 83,167, 65, +221,142,158, 56,245, 75, 10,230, 70, 95, 72, 56,187, 49,125,130, 62,173,212, 80, 74,141, 38, 78,156, 88, 59, 45, 45, 13,231,206, +157,195,185,115,231,102,151, 82, 54,250,237,219,183,127,153,159,159,143,234,213,171,163,123,247,238,109, 8, 33, 77, 74,233, 55, +104,220,184, 49, 94,127,253,117,180,111,223, 30,245,235,215,135,209,100, 17,246, 25, 56, 42,226,218,189,244,192,185, 11,230,202, + 15,255,177,149, 57,113,226, 40,187,126,203,126,183, 22,237, 95,249, 70,164,242, 63, 77,228, 94,254,255,117,141,150, 84, 42, 93, +116,244,232, 81, 63,147,201,132,171, 87,175,226,253,247,223,127,218,152,161, 54, 5, 72,112,112, 48,142, 28, 57,130, 1, 3, 6, +232, 83, 83, 83,255,252,167,242,100,207, 69,254, 43, 34,176, 99,144, 54,121,248,240, 97,182,135,135, 71, 96, 68, 68, 4, 99, 52, + 26, 31,109, 73,108,222,204,173, 88,181,106,151, 94,175,127, 15,128,104,201,247,223, 47, 13, 12, 10,106, 63,112,208, 32, 98, 54, +155, 17, 29, 29, 45,222,185,115,167,231,221,212,212,114, 3, 34, 23, 95,109, 12, 25, 50, 4,139, 22, 45, 2, 0,188,251,238,187, + 54,213, 58,113,192, 96, 73,233,134,174,157, 95,107,172,142, 87,124,171, 54,189,100,206,175,122, 87,117, 90,145, 47,107, 12, 70, + 44,128,148, 5,111, 50, 91,110,167,245, 60,127,247,118,173,218, 50,109,102,181, 78,117,218, 98,197,129,117, 93, 1,108,116,120, + 85, 39,151, 55, 85, 42,149, 56,127,254,188,182,113,227,198,217,148, 82,183, 89,179,102,121,201,229,242,166, 79,193,126,239, 19, + 66,218,180,108,217,242, 29,134, 97, 58,241, 60,127, 48, 53, 53,117, 9,165,244,190,131,147,246, 88, 0,159,195,206, 14,197,104, + 52,130, 97, 24, 80, 74,209,175, 95, 63, 76,153, 50,165,246,149, 43, 87,112,248,240, 97,143, 78,157, 58,157, 38,132,100, 3, 24, + 78, 41, 45, 81,107,150,155,155,171, 59,123,246,172,236,240,225,195,224,121, 30, 30, 30, 30, 80,171,213,144, 72, 36,232,209,163, +135,114,242,228,201, 29,247,237,219,151,150, 91,181, 10, 43, 77, 78, 44,144, 40,149, 42,248, 5,182, 30,211,255,173, 24, 74,233, + 54, 39, 6, 7,177, 76, 96,209, 19,206,192,204,255,108, 49, 35, 23,137,136, 84, 36,128,132, 47,196,167, 95,206, 33, 34,202, 9, +224,228,254,188, 72, 36, 18,169, 36, 48,178, 98,214, 44, 39,168, 20,231,112, 44,203,138,165, 34, 24, 74,123, 46,100, 24,134, 97, + 24, 17, 0,139,163,152, 18,137, 68,164,146,208, 82, 49,101, 44, 97, 9, 33, 98, 60, 58,157,245,132, 68,249, 19,106,167, 69, 50, +216,147,226,214,173, 91, 99,215,225,243,216,188,227, 32, 50, 30, 92,198,212,143,199,163, 73,147, 38,216,185,115,103,153,105,178, +218,104,149,166, 93, 14, 8, 8,184,144,148,148,212,168,180,239,150,100,163,197, 47,173, 69, 7,125,188,168, 91, 73, 90,170, 18, +241, 63,115,123,132, 85,134,141, 22, 33,164,123,235,214,173,199,109,216,176,193,216,165, 75, 23,113,191,126,253, 80,183,110,221, + 86, 67,135, 14, 5, 0,116,234,212, 9,139, 22, 45,106, 53,116,232, 80,252,250,235,175,216,186,117,171,161, 93,187,118, 31, 19, + 66, 18, 41,165,187, 75,194,228,121,254,245,101,203,150, 21,215, 20,194, 98,177,192,108, 54,251, 91, 44, 22,255,162,177, 8,223, +124,179, 56, 99,255,190,157,248,248,147, 25,240,241,246,107,232, 96, 27, 34, 67, 62,250, 40, 99,205,130, 5, 88,240,235,175,248, +168, 90, 53,249,186,235,215,177, 95,175,199,198,195,135, 51,138,126,167, 92,219,204,130,130, 2,221,238,221,187,213, 27, 55,110, +132, 70,163, 65,205,154, 53,225,225,225, 1,161, 80, 8,134,149,129, 21,185, 35,162, 78, 83, 0,103, 1, 0,213, 2, 80, 16, 89, + 29, 39, 8, 65, 54,101, 74,111,195,165,246,209, 16, 82,213, 55, 68,122,116,220,234,186, 26,181,143, 8,123,151, 60,196,190,111, +227,183,233, 51,240, 53, 44,184, 89,198, 97,141,198,213,171, 87, 71, 90, 90, 26,118,239,222, 93, 0,224,171,210,126,131,231,249, + 47,191,255,254,251,137,159,124,242,137, 36, 50, 50, 18, 0, 26, 2, 56, 87, 34,233, 83, 40, 16, 24, 24,104, 35,150,253, 6,143, + 9, 29, 61, 97,140,172,231, 43,237, 33, 16,120, 33,187,192,140,204, 60, 51,220,189,148,248,120, 66, 31,233,193,198,129, 77,150, + 45,254,105, 59, 33,164, 9,125,150,206, 34,255,101,241,244,244,108,152,153,153,137,251,247,239, 99,240,224,193,137, 25, 25, 25, + 7, 10, 10, 10,134, 37, 37, 37, 1,128,182, 2,144, 54, 50,223,176, 97, 67, 52,109,218, 20,125,251,246,149, 22, 22, 22,246, 9, + 13, 13, 13, 4,240,210,179,204, 79,113, 46,242,159, 34, 90, 37, 78, 8,102,115,132, 97,233, 82, 20, 28, 60, 8,241,254,253,216, + 24, 16,144,175,215,235, 63,164,148,198, 23, 13,122,227, 87,175, 89,115,178,219,159,127,170,141, 49, 49, 8,189,114, 5, 66,141, +166,161,179, 9, 88,181,106, 21,114,115,115,145,147,147, 3, 0,248,246,219,111,145,155,155, 11,171, 45, 67,185, 25, 16,161,149, +159, 79, 53,164,224, 54,120, 1,163,140,139, 40,108,174,212,171,146, 2, 31,250, 22,228, 48,129,136,121,208, 76,161,203, 52, 54, + 39,172, 17,250,140, 66, 4,182,172, 9, 1, 4,173,156, 73,163,117,223, 95, 32, 16,104,111,221,186,245,122,120,120,248, 14, 0, + 94, 79,107, 15, 64, 41,189, 3,224,189, 10,146,128,207,239,221,187,231,179,114,229,202,119,102,205,154, 69,237,137,150,245,127, +129, 64, 0, 74, 41,220,220,220, 32, 20, 10,125, 79,157, 58,229,219,172, 89,179,239,138, 6,180,146,242, 73,235,214,173,139,123, +247,238, 65, 32, 16,192,205,205, 13,188,197,132, 25, 19,198,128, 99, 37,130, 73,147, 38, 53,236,213,171,215,213,149, 43, 87,154, +213, 45, 90,190,148,153,153,121,109,220,128,129, 87,127,255,253,119, 35,207,243,203, 28,204,243,165,219,183,111,179, 65, 1,190, + 44,181, 20,242, 10, 17, 32,189,252, 13, 21, 43,253, 32, 21,176, 84, 68, 24, 72,164, 50,183,251, 9, 9,153, 60,207,223,112, 4, +147,231,249,139,247,238,221,147,249,250,120, 10, 10,117,198,124,153,144,138,227, 46,158,143,173, 26,213, 56, 20, 0,244, 23,207, + 30,145, 68,212,146,197,165,166, 43,170, 85,171,230, 16,166, 78,167,187,148,152,152,200,250,250,250, 10, 30,196, 39,108,215, 40, + 21,222,106,141,166, 57, 0,152,242,114,206, 50, 6, 67, 58, 43, 20,248,166,103,102,106,117, 58,221, 61, 71,243,126,247,238, 93, +129,191,191, 15,187,119,255,161, 29,190,114,137,143, 74, 44, 80, 75, 8, 33,114,150,228,138, 44,124,134, 84, 46,247,185,159,144, +160,165,148,150,170, 33,252, 34,123, 96,207, 71,245, 53,227, 87, 59,108, 92,190,124, 25,123, 78,220,128,130, 26, 65,244, 57,216, +191,250, 71, 12,152,244,201, 83,219,253,149, 71,182, 42,164,205, 90, 86,235, 66, 49,124, 36,149, 99, 8, 63, 96,192,128, 25,235, +215,175,183, 25,160,220,184,113, 3, 29, 58,116,176,110,115,160,115,231,206,104,214,172, 25,110,220,184,129,176,176, 48, 28, 62, +124, 88,194,178,172,100,224,192,129,115, 1,236, 46, 47,189,203,151, 47,199,176, 97,195, 74, 50,172,190, 11, 64, 79,220, 35,243, +167,124,177,214, 75,155,153,129,180,244,148, 75,142,150, 3, 33, 4, 67, 62,250, 40, 99,153,209,136, 13,103,206, 96,144, 66, 33, + 95,115,231, 14,162,155, 53, 67,189, 14, 29, 50, 28, 25,235,172, 90, 29,189, 94, 15,161, 80, 8,181, 90, 13, 79, 79, 79,136, 68, + 34,176,194, 0, 8,196, 13,192,136, 68,136,106,221, 0, 11, 62, 84, 20, 14,126, 21,139, 9, 65,182, 68,140,139, 34,121,201,182, + 58,132, 16,162,168,130, 30,148, 34,183, 48, 30,127, 88, 9,137,166, 42,113, 83,170,133,251, 71,124, 23,169, 81,251,136,176,103, +241, 3,236,255, 46, 97,139, 62, 5, 83, 1,220, 45,235,116,177, 68, 34,169,167,209,104, 16, 31, 31,143,135, 15, 31, 94, 47,203, +192,159, 82, 90,216,162, 69,139, 88,137, 68, 82,219,219,219, 27, 0,170,151,150, 78,158,231,109,118, 88,235, 54,108,242,106,216, + 38, 84,250,114,171,218, 88,187, 99, 14,222,238,179, 24, 66,150,128,227, 76,248,122,209,107,224, 12,249,232,211,109, 20,105,219, + 41,172,193,193, 29,198, 17, 0,126,252,175, 18,173,132,132,132,247,218,180,105, 51, 55, 47, 47, 47,171,160,160, 96, 0, 0, 84, +175, 94, 61,132, 97, 24, 9,128, 89,101,180,167, 16,148,236, 22, 66,116,229,202, 21,168, 84, 42, 36, 38,254, 29,147, 62, 62, 62, + 30, 60,207, 27,224,146,178,250,104, 20,165,244, 34, 33,196, 31, 64, 52,236,220, 59, 48, 69,170,186,182,187,118,237,162,187,118, +237,106,107,155,188, 40,229, 45, 90, 45,168,225, 81,217, 10,133, 66, 10,192,254, 68,147, 92,163,209, 16, 97, 80, 16,136,228,145, +233, 7,181,219, 19,126, 90, 49,155, 29,115, 45,195,115, 96, 65, 76,160,118, 74,140, 2, 41,193, 28,175,142,120, 79, 60, 13, 41, + 98,141,125,207, 6, 44, 20, 28,120,214,201,228,208,130,130, 2, 88, 44, 22,247, 26, 53,106,236,178, 88, 44,238,214,173,129,127, +171, 82, 57,142,139,101, 89, 22,239,188,243, 14,172,218, 31,163,209,136,148,148, 20, 24, 12, 6, 24,141, 70,220,187,119, 15, 57, + 57, 57, 48, 26,141,184,118,237, 26,170, 87,175, 14,150,101,253,203,104, 40,148, 82,138,224,224, 96, 84,173, 90, 21, 44,161, 88, + 49,127, 58, 62,125,127, 12,222,172,206, 99,213,146,175,209,174, 93,187, 90,213,170, 85,107, 33, 16, 8, 56, 63, 63, 63,209,214, +173, 91,183,115, 28,215,195, 9, 63, 90,187,167, 76,153, 82,181, 78,157, 58, 62, 26,181,202, 44, 17,179, 16,155, 11,168,196,144, + 73, 5,133, 25, 8, 14, 14,177, 64, 38, 15, 27, 52,104, 16,231,200,228,104,197,252,240,195, 15,253, 35, 35, 35,221,220, 53,170, + 2,177,144, 77, 19,129,102,228, 92, 62,119, 26, 0,196,222, 62,122, 72,229,181, 7, 15, 30,108,113, 6,115,218,180,105,213,189, +189,189, 53, 12,104, 30,103, 50,253,189,223,110, 48,102, 18,161, 80, 7,145,184,241,187,239,190, 75,156,193,156, 56,113, 98,181, +218,181,107,107, 52,106, 69,190, 64,200, 38,139,120, 62, 89, 10, 62, 69,104, 52,101, 73,189,189, 10, 33, 87, 70, 13, 26, 52,168, + 84, 76,171, 54,107,242,228,201,241,197,136, 55,180, 90, 45,244, 41, 87, 33, 74,140, 65, 3,165, 16, 77,188,221, 33,145, 72,108, + 71,223, 75,107,174,165,217,104,149, 68,182, 28,253,110,227,153,101,108, 1, 46,171,117,161,184,223,172, 34,252, 50,251,211, 79, + 63,253,244, 73,251,246,237,211, 58,119,238,108,220,181,107, 23, 8, 33, 56,124,248, 48, 18, 19, 19,209,185,115,103, 80, 74,173, +167,218,112,233,210, 37,116,234,212,201,216,166, 77,155,196,159,126,250,233,115, 71, 42,103,216,176, 97, 48,155,205,200,207,207, +135, 86,171,197,206,157, 59,209,160, 65, 3, 42,151,203,123,177,193,175,204,233, 51,226,147,151,234,214,111,136,239, 22, 47, 48, +138, 5,194, 47,156, 28,132, 49,248,195, 15, 51,114,162,162,180,235, 10, 10, 10,135,168,213,242, 26,241,241, 30,231,247,237,243, + 50,153, 76, 14, 97, 88,181, 58, 65, 65, 65, 54,146, 37, 18,137, 32, 16,123,131, 85,212,131,216,179, 51,228,126,189,240,199, 69, +137,193, 77,129,109, 42, 37,246, 42, 52, 40,213,181,131, 60, 24,115, 94,234,231,191,181,229,155,254,135,228, 85,176,146, 16,194, + 16, 66, 24, 42, 32, 91,135,126, 29, 94,195,187,170, 12,127,110, 74,193,254,239, 18,126,211,167, 96, 58,128, 59,229,245,115,147, +201,164,231, 56, 14, 12,195, 64, 32, 16,216,219,136,158,252,237,183,223,112,254,252,121, 0,176,185,237,201,203,203,227, 88,150, +133, 84, 42, 5, 0,101, 25,227, 29,132, 66, 33,132, 66, 33,142,156, 62,230,249,230, 27,175,145, 83,127, 29, 64,203, 6,253,145, +153,111, 66,106,142, 9,217,133, 64,157, 38, 83, 81,183,211, 54, 92,190,151,135,134,245,235,178,172, 88, 49,248, 5,159,188, 67, +124,124,124, 78,121,121,121, 29, 38,132,132, 16, 66, 66,212,106,245,201,128,128,128, 24, 66, 72,119, 74,233,239, 73, 73, 73,145, +249,249,249, 45, 41,165, 15, 40,165, 15, 50, 50, 50, 58,164,165,165,189, 84,214, 97, 45, 79, 79,207,149,185,185,185,227, 57,142, +235, 86,116,189,202,113, 92,195,219,183,111,215,110,216,176,225,245,208,208,208, 75,161,161,161,123, 66, 67, 67,183,135,134,134, +110,111,223,190,253, 34,171,187,135,103, 41, 37,113,145, 23, 72,172,166, 46,209, 69,174, 30,162,109,115, 70,209,235,145,226, 6, +104, 22,137,228,154,101,220, 56,104,182,111,135,240,246,109, 12, 29, 60, 88, 45,151,203, 23, 19, 66, 26, 17, 66, 90, 42,149,202, +239,166, 79,159,174,242,154, 55, 15, 1,199,142, 33,110,231, 78,152,133,194,115, 21, 73,157, 78,167,131, 64, 32,176,105, 98, 20, + 10, 5, 56,142, 43,226,110,229, 16, 14, 11,254, 76, 76,141,129, 24, 85,193,131,230,239,205,109,115,166,127,236, 84,159,157,185, +213,195,238, 20,136,194,102,122, 55,247, 89, 28,210,234, 76, 1, 17,228,139, 53, 82, 60,124, 24, 15, 14,188, 83,251,205,122,189, + 62,167,160,160, 0, 13, 27, 54,244, 60,127,254,124,141, 6, 13, 26,120, 20,189,127,246, 41, 59, 81,139,192,192,192, 77, 65, 65, + 65,247, 3, 3, 3, 55, 17, 66, 90, 56,241,245,149,199,143, 31, 7,203,178,152, 62,125, 58,242,242,242, 96, 50,153,144,153,153, +137,135, 15, 31,194,104, 52, 34, 33, 33, 1, 55,111,222,132,209,104, 68, 92, 92, 28, 12,134,242, 23, 36, 60,207, 67,173, 86, 67, +175,203,199, 15,115, 62,197,180,201, 19,144,115,247, 2, 18,146, 82,161,113, 83,224,189,247,222, 99,221,221,221,121,142,227,170, + 90, 44,150, 78, 28,199, 45,117,148,112, 22, 57, 45, 60, 17, 28, 28, 92,119,254,252,249,181, 63,157,179, 84,164, 22,228, 83,137, + 74,202,139, 85, 18, 42,174,213, 28,195,166, 46, 22,125,179,240,171, 91,127,254,249,103,162, 35,206, 59,173,152, 81, 81, 81,225, +137,137,137, 13, 34, 35, 35, 35,188, 66,170, 73, 36,254,129,217, 34,255, 42,185,212,160, 63, 67, 2,171,180, 94,186,116,233,213, +147, 39, 79, 38, 57,131,169, 80, 40,106,173, 93,187,182,174,175,175,111, 93,161, 76, 38, 45,204,201,217,104, 41, 44,216,196,106, +220,165,140, 90,243,234,182,109,219, 46,108,217,178, 37,197, 25,204,176,176,176,200, 57,115,230,212,169, 87,175, 94, 29,191,234, + 53, 36,178,192,224, 76,105, 80, 72,166,172, 94, 3, 9,130,170,118,249,238,187,239, 46,253,249,231,159, 14, 97,178, 44,107, 97, + 24, 6, 66,161, 16,114,185, 28,123,247,238,197,184, 17,253, 17, 28,232,137,136,200, 72,116,124,123, 60,182,108,217, 98,179,225, + 97, 89,182,212, 25,125,205,188,247,118, 68,249,147, 11, 88, 86,235, 2,150,213,186, 16,229, 79, 46,148, 74,182,138,158,151,244, + 25,135, 70,163, 82,236,176,202, 35, 91,148,210,221, 71,142, 28,249,114,200,144, 33,226,174, 93,187,226,204,153, 51, 24, 54,108, +216,137,173, 91,183, 2, 0,206,156, 57,131, 15, 62,248,224,196,161, 67,135, 48,102,204, 24,116,232,208, 65,124,252,248,241,239, + 28,241,253, 99,177, 88,176,106,213, 42, 88, 44, 22, 40,149, 74,120,120,120,224,181,215, 94,195,213,171, 87,199,172, 94,189, 58, +134, 21, 10,223,138,238,246, 6,118,109,223,138,155,215,174,142, 89, 51,119,160,211, 78,129, 25,134, 65,215,193,131, 51, 50,234, +212,209,174,201,205, 45, 28,238,238, 46,143, 76, 73,241,248, 99,211, 38, 47, 7,218, 15,225, 56,206, 70,174,172,164,195,122, 9, +196,222, 16, 40,234, 66,160,106,130,203,119, 68,102, 97, 83,122, 81,212,152,222, 40,203,127,150, 80,204, 12,235,245,105,117,244, +250,180, 58,186, 79,170, 54, 84, 94, 5, 43, 20, 85, 48,182,235,251, 85,219,135, 54,113, 67,110,154, 9, 59,191,142,123,160,207, +196, 60, 0, 55, 29,233,231, 60,207, 95, 79, 76, 76,132, 88, 44, 70,149, 42, 85,194, 9, 33, 86,187,192,149, 35, 71,142,124,119, +230,204,153, 19, 0,204, 44,202,147,178,125,251,246,117,242,243,243,113,251,246,109, 0, 56, 95, 70,221,219, 78, 25,106,115,227, + 36,213, 2,234,161, 65,173,209,112,119,175,143, 68,173, 17, 73, 90, 35, 86,252,208, 3, 23,142,207,198,249,253,131,240, 32, 37, + 5, 50,191,158,224, 44,134,186, 47,184,162,100, 90,108,108,108,139, 77,155, 54,181, 7, 48,173, 94,189,122,127, 62,124,248,240, +165, 99,199,142, 69, 4, 5, 5, 45,174, 40,168,213, 45, 68, 92, 92,220, 99, 87,145, 91, 8, 35,165, 52,138, 82,218,149, 82,218, +189,232,250,224,169,124,189, 57, 46, 71, 94, 84, 99,120, 0,187,138,159, 54, 44, 78,180,236, 29,133,161,134,135,135,202,108, 54, + 37, 28, 56,112,192,196, 48, 12,228,114, 57,134, 12, 27,198,252,240,253,247,173,251,183,104,113,120,212,203, 47,239, 57,124,232, + 80, 84,179,102,205, 64, 41, 5,195, 48,248,245,215, 95,117,122,189, 46,179, 74,149, 42, 26, 71, 6, 13,251, 14,148,155,155,107, + 35, 90, 57, 57, 57,240,245,245,117,120,235,176, 32, 23, 7, 15,237,189,144, 69,185,183, 31,118,189,179,208,244, 69, 74,143,102, +217, 60, 39,200,225,204,200,209, 81,228,233, 33, 56,195,120, 52, 27, 18,214,211,116,175, 83,179,155, 71, 99, 78,101,234, 57,189, + 83,167, 37,210,210,210, 62,237,211,167, 79,166,191,191, 63, 81,171,213, 8, 12, 12,100,186,119,239,158, 17, 31, 31, 63,179,162, + 53,226,229,229,245,102,251,246,237,119, 36, 38, 38,246, 62,122,244,104,213, 99,199,142,245,110,223,190,253, 14, 47, 47,175, 55, + 29,132,216,248,201, 39,159, 20,136,197, 98, 52,111,222, 28,121,121,121, 40, 58,229, 83,230, 85,222, 68, 0, 0, 34,145, 8,203, +230,127,142,105,147, 39, 64, 27,115, 6,151, 79, 28,192,145, 20,130,169,115,190,130, 72, 36,170,144,175,175, 48, 31, 69,189,122, + 1,170, 27, 31, 12,235,151, 52,101,242,100,213,165, 75,151,132,239,190,255, 1,141, 75,214, 66,220,117, 1,139,182,159, 50,127, + 21,120, 35,250,213,142,152, 62,237,163,122,148,210,209,229, 97,214,246, 81,212,171, 27,160,186,254,209,168,254,177,239,191,255, +190,236,139, 47,190,208,183,104,209, 66,151,154,154, 42, 83,184,123, 68, 10,220, 52,117,227,146, 83,148, 45, 90,180,184,247,246, +219,111,103, 59,139, 57,117,234, 84,249,190,125,251, 4,125,250,244,177,100,101,101, 41,133, 50, 89, 67, 34,145, 54, 77,207,202, +114,235,221,167,207,157,222,189,123, 23,242, 60, 63,198, 25,204,207, 62,251, 76,126,243,230, 77, 65,139, 22, 45,204, 41, 41, 41, + 42,133,167, 87, 3, 86,227,209,228,126,114,170,186,105,179,102,119,223,125,247,221,130,178,210,105, 79, 82, 84, 42, 85, 98,203, +150, 45,241,245,215, 95,227,155,111,190, 65,151, 46, 93,112,245,218, 85, 68,191, 59, 1,181,199,126,128,237,167, 78, 35, 49, 49, + 17,179,102,205, 66,131, 6, 13, 32, 18,137,110,150, 8, 58,250, 6,185,152, 76,201,197,100, 74, 48,250, 6,177,222,151, 74,134, +102,230,224,177,207,151, 32,231, 63, 43, 89,211, 21,229, 79, 46,148,101,135, 85, 30,217,234,221,187,247, 56,171, 11,135,225,195, +135,159, 88,188,120,113,171,225,195, 31, 45,180,155, 55,111,142,217,179,103,183,154, 58,117,234,137, 57,115,230,160, 99,199,142, + 8, 13, 13, 45,247,224, 11,199,113,176, 88, 44,232,223,191, 63, 44, 22, 11,210,211,211,113,235,214, 45, 44, 95,190, 28,148, 82, + 41, 0,248, 7, 4, 53, 22,139,197,248,235,226,185,194,105,195,155,253,228,196, 98,138,216, 47, 98,242,243,243,209,123,236,216, +140,132,154, 53,181, 75, 51, 50, 10, 71,184,187,203,171, 61,120,224,161, 50, 26, 3,203,178, 73, 37,132,128,231,121, 27,177,178, + 18,174,226, 87,209, 68,233,144,152, 10,249,221,199,214, 39, 1, 0,218, 12, 12, 64,247, 73,213,134,250,135,201,191,109, 61,224, +145,210,123,203,236, 88,154,151,196,125, 1, 51,174, 59,161,177, 62,115,230,204, 25,104, 52, 26,244,233,211, 71,194, 48,204,188, +162,113, 94, 79, 41, 93, 66, 41, 93,104,197,146, 72, 36, 11, 6, 13, 26,196,100,103,103,227,242,229,203, 0,112,168,180,113,137, + 82,106,203,123,190,150,128,227,197, 56,121,113, 47,246, 31,219,140,251,137,233,120,144,166, 7, 4,110,208, 23, 36,192,164, 75, +132, 49,251, 34,114, 13,242,255,194,142,212, 51,113,183,240, 12,220, 66, 84,166, 86,235,133,180,169,163,148, 38,219,159, 54,180, +119, 96, 90,146,195, 82, 80,181,172,223,230,239,126,112,235,211,127, 96, 65,131, 6, 13,220, 3, 3, 3, 65, 8, 65,143,158, 61, + 73,251,163, 71, 85,194,128, 0,120, 54,106,100,219,142, 56,120,224, 0,246,238,221, 91,176,235,183,109,129,195, 70,140,120, 29, +192,218, 50, 6, 12, 65,141, 26, 53,108,191,155,156,156, 12,137, 68, 98,179,137,200,205,205,133,183,183, 55,146,147,147,225,160, +162,100,221,148,201,167, 39,167, 53,251,180,122, 51,149,144,236, 41, 72, 1, 71, 41,132,132, 3,116, 20,102, 14, 48,152, 41, 26, + 87, 99, 61,246,235, 44,238, 59,207,108,189, 7, 96,157,147, 26,173, 63, 8, 33,163,121,158,223, 12,128, 57,122,244, 40,127,253, +250,245,113,142, 26,174,151,168,182,151,203, 39, 29, 62,124,216, 99,210,164, 73, 89, 59,119,238,204,121,237,181,215,220,150, 47, + 95,238,209,161, 67,135, 73, 0,126,113,160, 82,117,132,144,181,241,241,241,227,154, 52,105, 2,173, 86, 11,147,201,132, 11, 23, + 46, 32, 44, 44, 12,231,207,159, 71,120,120, 56,206,157, 59,135,136,136, 8,112, 28, 7,189, 94, 15,158,231,185,242, 6,115,109, + 70, 58,144,249, 16, 73,103,246,224,214,149, 11, 56,156, 68,176,228,151, 29,168, 82,181,122,133,252,212, 68,248, 42,234, 4,250, +120,238,255, 98,198,103, 62,113,127,252,138,173,171,150,240, 71,246,236,169, 45, 86, 97,116,219,254,227,223, 48,154, 17, 2, 64, +252, 82,179, 38,232,234,126,147,147, 87, 69,202,161,107,101,123,178,142,240, 85,212, 9,240,246,220,247,191,121, 51, 85,119,247, +174,193,198,101, 95,211, 45,235,127,110,160, 7,154,213,169, 83,167, 43,195, 48, 26, 0,250, 34, 59, 47,135, 66,219,148,132,121, +112,199,142, 40, 61,208,236,247,223,127,239, 42,151,203,253, 0,152, 11, 11, 11, 99,159, 6,243,208,206,157, 81,214,116, 18, 66, +124, 0,152, 40,165,119,225,100, 8,158,190,125,251,206,254,224,131, 15, 38,115, 28,231,109,125,207,108, 54,179, 11, 22, 44, 16, +240, 60,207, 82, 74, 77, 12,195,152,246,237,219,199, 89, 44,150, 36,189, 94, 63,246,105, 6,146, 55,222,120, 3,167, 79,159,158, +129, 71,135, 48, 28,213, 86, 63,102,167, 85,214, 54,165, 35,248, 71,143, 30,157,245,214, 91,111, 77,249,229,151, 95,110, 45, 94, +188,184,219,152, 49, 99,240,235,175,191,162,102,205,154,248,235,175,191,240,233,167,159, 2, 64,171,169, 83,167,110, 95,185,114, +101,104, 92, 92,220,130,242,210,104, 54,155, 97,177, 88,240,243,207, 63,163, 71,143, 30,240,246,246, 70, 64, 64, 0, 8, 33,127, +140, 24, 49,226,123, 0, 96, 9, 43, 2, 0,131,222, 96,136,140,108,226,176, 6, 55, 52, 52,212, 54,214,165,164,164,216, 78, 10, +190,242,214, 91, 25, 43,190,248, 2, 63,233,116, 24,225,238, 46, 79, 8, 10,242,223,126,247,238, 40, 66,200,242,210, 52, 71, 86, +173, 78,121, 36,203, 81, 13,179, 46, 25,159,252, 54,247,190, 31,128, 46,109, 6, 6,160,205,192, 0, 52,233,238, 67, 24,150,224, +202,254, 76, 92, 61,168,221, 98,206,197, 31,206,132,203,161,148, 94,247,244,244,220,222,182,109,219,110,181,106,213,194,200,145, + 35,223, 22,137, 68, 34,179,217,252,190,213,205, 3, 33,196,141, 97,152,153,171, 87,175, 30,229,225,225,129,227,199,143,227,216, +177, 99,127, 80, 74, 31,150, 54, 46, 1,176,249,204,170, 18, 28,174,191, 25,151, 47, 79, 75, 60,137, 19,199,127, 67,205, 6,227, + 33,243,123, 29, 30,145,115, 96,138,249, 6,198,204,253,240, 8,126, 13, 9,113,119,193, 10, 36, 87,241, 31, 17,171,187,133,171, + 87,175,150,232,110,193, 89,169, 87,175, 94,171, 99,199,142, 73,244,122, 61,142, 28, 57,130,166, 77,109,103,187,254,213,248,157, +246, 92,228, 69,146,178,130, 74,151, 56,107, 18,158, 8, 35,194,195, 57, 17,131,213, 61, 94,127,189,240,210,165, 75,182, 85,159, +254,236, 89, 20,236,221, 11,142,227, 64, 41,197,177,163, 71, 49,104,224,192,124, 33, 75, 86, 84,171, 86,149, 18,250,183,239,150, +146,142,210,139, 68,162, 62,125,250,244,177, 13, 62,241,241,241, 80, 40, 20, 16,139,197,224,121, 30, 22,139, 5, 44,203,194,205, +205, 13, 22,139,197, 88, 66,102, 58, 21,203,136,153,211, 22,244, 94, 25, 61, 32, 57, 32,223, 68, 71,107,170, 33, 68, 36,179,117, + 78, 63, 53, 65,183, 6, 66,120, 9,210,232,161, 5, 47, 39,241,134,204,222,197, 99,139,149,119,228,159, 16, 18, 94,191,126,253, +239, 7, 13, 26,196, 0, 64,167, 78,157,152,250,245,235,127, 75, 8, 9, 47,227, 59,101, 98, 74,165, 82, 9, 0,236,216,177, 67, +123,235,214,173, 46, 59,118,236,208,218,191,239, 32,230,242,249,243,231, 67, 46,151,195, 98,177,192,104, 52,218,236,179,236, 95, + 77, 38, 19,188,188,188,176,107,215, 46,112, 28,183,171,188,116, 6,135, 84, 5,241,174,129,181, 59, 14,227, 88,134,200,105,146, +101,143, 89,211, 95, 25,225,231,229,121,224,127,115,103,121,103,221,185,128,132,132, 4,186,111,239,174, 63,117,148, 38,102,231, +210,105, 89,249, 52,162,208, 64,165, 77, 67,241,240,192,178,143,233,212, 54, 48,163,132, 83,131,246,152,117,252,149, 17,129,222, +158,251,190,250,223, 92, 85,246,157, 11, 72, 78, 73,193,238, 93, 59, 46,233, 40, 77,164,148,110,161,148, 14,229, 56,174, 46,199, +113,117, 41,165, 67, 75, 35, 47,206, 98, 22, 20, 20,212, 43, 40, 40,168, 87,153,152, 60,207,215,227,121,222, 97, 76,123,162,178, +112,225,194,152,228,228,228, 65,105,105,105,157,173, 87, 86, 86, 86,167,252,252,252,118,133,133,133,173,117, 11,171,186, 21, 20, + 20,248,228,229,229,249,235,116,186,198,148,210, 11,142,182, 79,123,177,247, 58,157,148,148, 52, 61, 41, 41,137,148,151, 78,102, +204, 13,178,225,171,143,126, 91,182,108,153,255,211,224, 23, 79,103,122,122,250,230,159,127,254,185, 97,245,234,213, 67,135, 14, + 29,138,165, 75,151, 98,241,226,197, 6, 0, 88,185,114,165,193, 78,147, 21,124,255,254,253, 38, 37,109, 27, 62,150, 78,134, 89, +247,202, 43,175,208, 99,199,142,161, 71,143, 30, 54, 71,162, 63,254,248, 35, 44, 22, 75,110,199,142, 29,121, 0,208,233, 11,115, + 41, 79, 97, 52,149,188,255, 94, 82,121,138,197,226, 87,237,253, 5, 90,157, 49,139,197, 98, 80, 74, 17,209,170, 85, 70,118,131, + 6,218, 85, 57, 57,133,211,235,213, 83,143,138,140, 28, 90, 11, 24, 88, 18, 38, 33,228, 49,173, 78,241,203, 81, 77,150, 61, 38, +165, 52, 77,151,132,145,191,205,189,191,215,170,217,146, 42, 5,208,231, 89,176,237,139,251,233,250,116,252, 8,224,161, 51,152, + 0,160,213,106,223,253,226,139, 47, 12,238,238,238,120,227,141, 55, 48,103,206,156, 17,173, 90,181,202,241,245,245, 61, 29, 22, + 22,118,165, 95,191,126,201, 23, 46, 92,120,183,125,251,246,184,125,251, 54,190,250,234,171,236,172,172,172, 1,101, 97, 18, 66, +108,154,188,238,209,157,180, 63,124,251, 53,223,177,237, 56,200,101,106,152,133,193,208,230,155,145, 85, 64, 97,148, 52,131, 88, + 36, 65,231, 22,117,112,122,223,154, 66,206, 88,176,182, 34,109,222,137,201,245, 89, 99, 86,138,187,133,226,233,172, 12,183, 16, +207, 34,239, 47,178,148,224, 71,235,113,141,150,245, 72,165,245,149, 16,158,227, 56, 30,213,170, 87, 83,197,221,127,184,164,111, +223, 62,195,187,118,141,150, 71, 71, 71, 75,235,196, 60,218,186,216,177, 99, 7,182,110,221, 90,184,127,255,254, 92,137,144, 93, + 25, 92, 37,216,151,227,120, 16,194,151,201,134, 85, 42,213,251,159,124,242,137, 44, 39, 39, 7,139, 23, 47,230, 27, 54,108,200, + 40, 20, 10,152, 76, 38,172, 92,185,210, 92,167, 78, 29, 33,195, 48,200,201,201, 1,195, 48, 55, 29,204,224,101, 66, 72,231,239, +219,247,218,218,228,157, 97,158,181,219,191,228,222, 46, 56, 16,230, 70, 20, 73,241,247,113,235,208,254,172,107,251, 22,101, 66, +159,218,139, 82,122,221,217, 2, 12, 8, 8,248,124,255,254,253, 62,239,190,251, 46,213,235,245,228,225,195,135,116,238,220,185, + 62, 35, 71,142,252, 28,192,155, 21,237, 79,217,217,217, 32,132,240, 69,141,214,186,234, 39, 78, 84,236, 85, 66,200,239, 61,123, +246,236,222,177, 99, 71,196,196,196,216,182, 8,237,137,150,245,244,225,188,121,243,178, 1, 76, 41, 15, 87, 40, 20, 98,241,218, +205,200,206,202,128,175,111, 0,164, 50, 89,133, 61, 46,139, 25,102,250,151,179, 62,243,201,184,113,154, 92,253,243, 48,191,233, +114,106,154,133,163, 37,123,252,207, 75,162, 69,236,191,236,213, 12,195, 78,255,114,238, 76, 55,235,182,230, 47, 23,147,115, 9, + 71,223,125,170, 94,242,162, 96,254,195, 18, 16, 16,128,164,164, 36, 18, 16, 16, 64,173,219,122,165, 17,173, 39, 26,248,163,237, + 50, 82,214,182, 97, 69,241,239,221,187, 55,183, 81,163, 70, 31,221,190,125,123, 83,237,218,181,199, 0,168, 98, 48, 24,178,167, + 78,157,250,191,149, 43, 87, 14,119, 68,147, 5, 0,191,254,250,235,162, 97,195,134,237,125,253,245,215, 63,230,121,190,190,221, + 36,114,207,199,199,199,182,133,155,158,154, 50,121,244,240,254,147,243,243,179, 28,246,115,167, 84, 42, 71, 77,157, 58, 85, 90, + 80, 80,128,239,190,251,142,175, 83,167, 14, 99, 93, 20,173, 95,191,222, 18, 30, 30, 46,232, 51,110, 92,198,194,148, 20,204, 62, +126,188, 96,114,221,186, 13, 87,221,186,213,184, 36,141,187,117,225, 88,146, 38,203,106,118, 81,193,201, 33,137, 16, 50,242,183, +185,247,127, 4,208,229,165,190,126,248,125,254,125,100,197, 25,255, 7, 11,238, 58, 18, 22,168, 4,204, 4, 66, 72,231,212,212, +212,223, 63,251,236, 51,183,198,141, 27,163,110,221,186, 66,165, 82,217,204,234, 46, 38, 39, 39, 7, 7, 15, 30,196,210,165, 75, +141,215,174, 93,235, 73, 41, 45,117,187,138,227,184,180,240,240,112,107, 57, 80, 66, 72,102,174,129,184,109,172,213, 76, 57,116, +244, 38,114,226,220, 41, 36,153,120, 24,204, 60,170, 85,143, 66,187, 46, 11,177,125,207, 21, 46, 41,238,250,117,179, 46,107,197, + 11, 62,127, 63, 19,119, 11,207,192, 45, 68,165,105,179,236, 95,255, 43, 82, 98, 15,229, 89,230,228,210,101, 63,188,250,235,207, +191,248,177, 44,227,119, 55, 54,246, 92,183, 94,189, 19, 15, 28, 56,224, 33,114,115,107, 10,128, 55,142, 25,243,167,201,160,211, +238,252,253,247,144,106,213,170, 54, 40, 10, 42, 77,121,150, 57, 89,214, 15,230,231,231, 23, 28, 63,126,188,112,202,148, 41, 36, + 62, 62,126,131,175,175,111,191, 61,123,246, 40,123,245,234,165,139,137,137,217,226,231,231,215,189,125,251,246,170,143, 62,250, +200,144,159,159,191,196,137,206,125,157, 16, 82,235,236,103, 11,222, 58, 59,255,135,151, 33, 96, 91,194, 32, 4,120,243, 73,152, +242, 14, 0,216, 64, 41,181, 84,164,144, 20, 10, 69, 3,185, 92,142, 75,151, 46,101, 53,107,214,204,168,215,235, 69,115,230,204, +241, 84, 40, 20, 13,158, 98,128,163, 89, 89, 89,224,121, 94, 0,128, 20,189,130,119,254, 44,254,155,221,186,117,251,125,227,198, +141,175, 68, 71, 71, 35, 52, 52, 20,102,179, 25,225,225,225, 48, 26,141, 8, 11, 11,131,193, 96,192,140, 25, 51,144,147,147, 51, +161,172, 96,197,132, 16, 88, 44, 22,155,177,109, 96, 80,200, 35, 63, 61, 79,225,198, 66, 33,100, 66,111,238, 92,133,180,204, 12, +126,227, 95,169,169,133, 38,174,243,237,180,130,107,197, 63, 87,200,161,160,253,208,247, 18, 1,192,192,163,204,136,243, 10, 49, + 66,111,237,250, 17,169,105, 25,248,245, 98,114,118,129,137,239,114,179, 4, 76,167,210,249,130, 96, 70,205,136, 65,239,247, 28, +255,236,197,209, 21,255, 45, 71, 9, 85,105,114, 49,153, 18,126,105, 45,138,101,171, 74,244,145,245, 52,248, 69,154,170,223,139, +218,109,124,255,254,253, 39,223,191,127,127, 86,145,191,172,101,206, 96,173, 90,181,234, 54,128, 97,101,125,230,151, 5,195,182, + 1,216,230, 12,110, 94, 94,158,254,194,133, 11,250,143, 62,250,136,196,199,199,239,241,243,243,123,101,239,222,189,242, 94,189, +122, 25,174, 94,189,122, 40, 32, 32,160, 77,167, 78,157,148,187,207,156, 73, 44,188,123,119,231,206,251,247,131,204, 60,191,179, +172,254, 89,153, 36,171, 56,217,218, 54,251,254,151,191,127,121,191, 19,111,192, 22, 99, 22,254, 4,144,240, 20,152,199, 8, 33, +181, 7, 14, 28,184,241,181,215, 94,123,169,118,237,218,168, 82,165, 10,110,221,186,133,244,244,116, 92,190,124, 25, 59,118,236, +216,161,215,235,203, 13,168,157,153,153,249, 68,120, 34, 34,243, 12, 88,243,221,244, 29,231, 78, 52, 13,111, 29, 61, 68, 86, 55, +128,135,209, 68, 17,255,224, 46,102, 76, 91, 81,152,252,224,246,117,147,197,212,243, 63,224, 67,235, 88,108,108,108, 20,203,178, +149,234,110,161,162,110, 33, 92, 82,137, 68, 43, 54, 54,254,122,104,104,240, 39, 91,183,108,110, 73, 41,195, 82, 66, 10, 52, 26, +247, 29, 15, 31, 62,204,182,255, 92, 13, 15, 15,213,176,145,195,250, 17,158, 8, 9,225, 57,158,101, 78,198,198,198,151,169, 49, + 50, 26,141,163,251,245,235,183, 88, 46,151, 79,213,106,181,151, 52, 26,205, 95, 13, 26, 52,152, 69, 41,157,166,211,233,126, 87, +169, 84,103, 94,122,233,165, 57, 33, 33, 33,139, 40,165,231,157,236,220, 22, 60,178, 15, 91, 91,201,170,220,153,148, 82, 55,129, + 64,144,115,229,202,149,159, 35, 34, 34,250, 83, 74,221, 8, 33, 57, 21,197,212,235,245,239,102,103,103,123,141, 26, 53,202,188, +124,249,242,136, 33, 67,134, 76,190,118,237,154, 80,175,215,199, 58,153,103, 3, 33,164,123,223,190,125, 87, 8,133,194,142, 12, +195, 16,158,231,169,221,115, 80, 74,193,113,220,246,242,202,133,227,184,196, 90,181,106, 61,182,130, 46,201, 62,215,108, 54, 39, + 58, 60,217, 24,185,241, 63, 28,190, 54, 79,111,166,212,194,211,209, 55, 83, 11, 74, 60,114,118,246, 38,173,227, 48,166,158, 31, +191,120,223,245,121, 6, 51,207, 91,120, 58,166, 52, 76,167, 38,197, 23, 4, 19, 0, 38,107,214,111,195,178,245, 54,195,120,235, +118, 98,241,251,202, 20,171,214, 9, 78,122,108,102,198, 60, 50,150, 47,143,240, 85, 20,191, 56,233,114, 86,122,247,238,253,204, +236, 81, 76, 38,211,167,221,186,117,155,165,209,104,254,151,158,158,126, 73,163,209, 92,143,140,140, 28,207,243,252,162,194,194, +194, 29, 42,149,234,245, 38, 77,154, 76,168, 90,181,234,154, 56, 74,215,148,215, 55,173, 90, 29, 0,212,218, 47,173, 68,194,158, + 80,152,205,230,132, 10,148, 97, 18, 33,228, 67, 0,213,240,200, 1,239, 29, 74,233, 83,149, 13,165, 52, 9, 64, 75, 66, 72,117, + 0, 29,241,200,127, 95, 54,128,123, 0,206, 83, 74, 47, 87, 24, 91,151,153, 68, 8,105,116,227,226,241, 49,183,174, 95,124,203, +122,186,144,101,197, 87, 57, 83,225, 90,179, 46,107,197,127,196, 81,233,244,176,176, 48, 55, 0,245, 1,164,226,111, 71,198,113, + 0,190,169,140,133,138,157,116,112, 81,162,167,226, 9,163,236,183, 11, 31,123,246, 44,219, 34, 33,164, 83,101,199, 67,114, 97, +186, 48, 93,152, 46, 76, 23,166, 11,211,133,249,223,195,124,209,137, 86, 9,132,118,121,169, 26, 45,151,184,196, 37, 46,113,137, + 75, 92,226, 18,151, 56, 46,165,106,180, 0,116, 42,229, 11, 14, 51,213,138,156, 62, 40, 15,223,133,233,194,116, 97,186, 48, 93, +152, 46, 76, 23,230,127, 15,243,255,155,184,182, 14, 93,152, 46, 76, 23,166, 11,211,133,233,194,116, 97,254,235,152, 47, 52,153, +114,109, 29,186,196, 37, 46,113,137, 75, 92,226, 18,151, 60, 27,177,146,170,146,140,226, 93, 68,203,121,214,202, 0,120, 27, 64, +111, 0, 53, 0,220, 5,176, 25,192,247, 78,132,169,176,199, 83, 3,152, 12,160, 37, 30, 69,175,191, 7,224, 56,128, 47, 40,165, +249,174, 18, 47, 89,188,189,189, 63, 17, 10,133, 26,224, 81,104, 19,235,171,253,255, 28,199,101,231,228,228,204,125, 70,237,128, +117,244, 84,150, 53,173,246,105,179,127, 53,155,205,207, 44,157, 46,121,110,199,145,112, 15, 15,143,159,180, 90,237, 0, 74,233, + 45, 87,137,184,228,191, 36, 62, 62, 62, 99, 76, 38,211, 84,145, 72, 52, 39, 45, 45,237,135,255, 71,253,186,196,147,135, 54,162, +181,107,215,174,163, 0, 16, 29, 29,221, 22, 0, 84, 42,213, 41,134, 97,170, 23,125, 25,192,223,177,240,138, 31,253,183,190,242, + 60,127, 47, 51, 51,179, 84, 7,106,114,185,252, 20,203,178,213, 9, 33, 96, 24,198,118,153,205,102, 21,203,178,121,165, 96, 38, +104,181,218,198,207, 73, 33, 18, 0, 59,221,221,221,245,179,102,205,250,190, 93,187,118,193, 73, 73, 73,150, 73,147, 38,181,249, +235,175,191,162, 9, 33,175, 58, 67,182, 8, 33, 45, 8, 33,107, 26, 54,108,184,109,240,224,193, 27,155, 53,107, 38,206,204,204, + 84,109,222,188, 57,112,237,218,181, 23, 8, 33, 3,156,117,113,241, 2, 52, 68, 65,105,254,204,202,122, 86, 92,132, 66,161, 38, + 33, 33, 65, 85,180,146,176, 18, 43,152,205,102,152,205,102, 20, 20, 20,160, 65,131, 6,149,158,126,127,127,255, 40, 66,200,146, +176,176,176,198, 1, 1, 1,231, 0,140, 75, 74, 74,250,203,153,180, 90, 44, 22, 80, 74,109,233,172, 93,187,182,107,100,118,174, + 13,141, 16,139,197, 93,194,194,194,154, 26, 12,134,172,123,247,238,157,229, 56,238,179,178,156, 94, 58,137,239, 6,224, 51,137, + 68,210,172, 70,141, 26,193,183,111,223,142, 55,153, 76,103, 0,204,164,148,230, 84, 6,201,106,219,182,237,137,239,190,251,206, +115,236,216,177, 39, 8, 33,173, 92,100,203, 37,255,150, 84,169, 82, 69, 83, 80, 80,176, 2, 64,148, 80, 40,244,147, 74,165,144, +201,100, 41, 18,137,228,146, 76, 38, 27,126,226,196,137,108,103, 49, 57,142,251, 44, 46, 46,206,175,121,243,230,243,235,214,173, + 59, 35, 35, 35, 67,111, 50,153, 14,101,101,101, 77,160,148,230,150,245,221,226, 92,228, 69, 34, 89,246,175, 69,227,253,223, 91, +135, 69,113,133,218, 61,198,192, 4,130,160,184,184, 56, 31,149, 74, 5,142,227,108,218, 2,235,164,102,111,219, 85,228,167, 9, +145,145,145,166,114, 38,156,224,132,132, 4, 31,165, 82,105,123,207,100, 50,193,207,207,143, 79, 76, 76,244,145, 74,165,143,125, +222,104, 52, 34, 40, 40,232,121,242,133,242,182,135,135, 71,206,195,135,241, 13,244, 6,211,204,145,239, 78,249,100, 64,239,151, +221, 79,157, 58,197,191,250,234,171,134,163, 71,143,190, 13, 96,137,131,149,226, 70, 8, 89, 59,105,210,164, 25, 82,185,218,243, +240,169,235,134,181,155,119, 37, 54, 12,175, 70, 38, 76,152,192,190,247,222,123,199,162,162,162,126, 34,132, 52,114, 70,179,165, + 82,169,246, 74, 36,146,170, 44,203,194,100, 50, 61,212,106,181,175, 60, 71, 13,177, 33,128,139,132,144, 40, 74,233, 37, 71,159, +149, 37,153,153,153,208,233,116, 79, 92,181,107,215, 70,101,219, 31, 18, 66, 4,193,193,193,191,207,155, 55, 47, 48, 37, 57, 25, + 95, 47, 92,216, 28,192,247, 0,154, 59,242,253,180,180,180, 39,210, 25, 25, 25, 9,151, 56, 85, 7,147,103,204,152, 49,239,173, +183,222, 2,199,113,208,233,116, 1,119,238,220,169, 51,117,234,212,158,132,144,166,148,210,216,167,196,247, 14, 11, 11,139, 25, + 63,126,188, 71,211,166, 77, 81, 20,165, 34,224,248,241,227,205, 87,174, 92, 57,136, 16, 18, 73, 41, 77,127,154,223,240,240,240, +248,233,199, 31,127,244,148,203,229,216,190,125,187,103,199,142, 29,143, 19, 66, 90, 87,148,108, 17, 66, 24, 79, 79,207,247, 0, +116,224,121, 94, 12,224, 76, 86, 86,214,108,103,189,186, 19, 66,252,149, 74,229, 22,134, 97,170, 21, 91, 96,123, 17, 66, 50,172, +239, 17, 66,124,120,158,255,179,172, 69,181, 75, 94, 12,241,242,242, 26,145,151,151,247,157, 68, 34, 17,185,187,187, 67, 46,151, + 67, 32, 16, 64, 32, 16, 84,145, 72, 36, 85, 36, 18, 73,215, 14, 29, 58,140, 59,124,248,112,153, 30,246, 95,138,242, 27, 10,134, +204,100, 9,195, 2, 64,237, 48, 79,181,155,155, 27,102,206,156,169,232,222,189,187, 2, 0, 78,156, 56, 49,120,200,144, 33, 29, + 9, 33,117, 75, 35, 91, 37,113,145, 23, 69, 74, 59,113,248,152, 70, 43, 58, 58,250,104,177, 78, 7,153, 76,134,141, 27, 55,130, +101,217,199,162,198,151,244,127,149, 42, 85,202, 77,136, 85, 35,182, 99,199, 14,168,213,106,184,185,185,217, 38, 26,137, 68,130, + 67,135, 14, 65, 40, 20, 66, 32, 16, 64, 40, 20,162,113,227,198, 40, 35,160,253, 51,145, 62,117, 8, 5,128, 77,239, 60, 74, 87, +159, 37,143,156, 64,110,122, 39, 18,173,107,200,208,251,189,233,253, 10,245,166, 38, 0, 10,178,179,178,178,206,109,221,154,212, + 48, 60, 92,244,211, 79, 63, 53, 13, 12, 12,236,237, 40,209, 2, 48,185, 81,163, 70, 91, 88,153,155,215,224, 33, 67, 7, 15, 23, + 48,166, 65,163, 63,154, 19,159,156, 81, 48,106,212,168,173,219,183,111, 31,252,229,151, 95,222,152, 56,113,226,100, 0,159, 58, +154,126,177, 88, 92,245,206,157, 59, 97, 60,207,163, 94,189,122,207, 77, 24, 3, 43,145,162,148,130, 16,242, 24,161, 42,235, 89, +121, 98,213, 96,149,116, 85,182, 4, 6, 6, 70, 14, 28, 56,208, 75,155,145,129,175, 23, 46,180,190,221,184,188,109, 68,235, 22, +161,209,104,196, 27,111,188, 49,144,227, 56,129,149, 4, 26, 12, 6, 99, 78, 78,142,222,238,100, 79, 58,165,244,101, 7,202,179, +186, 66,161,248, 31,128, 40,157, 78, 23, 8, 0, 10,133, 34,145,231,249,109, 5, 5, 5,159, 90, 3,248, 86,160,158,130, 1,212, + 65,233,161,160,232,188,121,243,110, 79,158, 60, 57,246,159,198, 36,132, 84,245,245,245,157,219,167, 79, 31,236,218,181, 11,187, +119,239, 54,203,100, 50,193,144, 33, 67,200,184,113,227,220,199,143, 31,223, 21, 79,225,196,177, 72,186,206,152, 49,195,163, 86, +173, 90,216,188,121, 51, 46, 95,190,172, 11, 11, 11,147,181,107,215, 14, 2,129,192,227,147, 79, 62,121, 21,192,154,167,249, 1, +173, 86, 59,251,163,143, 62, 90,251,243,207, 63,171,238,221,187,135, 37, 75,150,120,245,235,215,239, 40, 33,164,173,163,100,139, + 16, 34, 1,240, 30,128,246, 44,203,182, 30, 50,100,136,229,221,119,223, 21, 50, 12, 99, 94,184,112,161,247,202,149, 43,251,121, +121,121, 69,101,100,100,228, 59,128,197, 0,152, 57,124,248,240, 97,127,252,241,135,251,217,179,103,197,158,158,158,182, 5,118, +209,171,143,181,205, 90, 44, 22, 68, 70, 70, 6,253, 23,136, 6,203,178, 38,158,231,133, 0,164,148, 82, 67,121,247,255, 37,146, +229,233,233, 57, 54, 43, 43,235,123, 63, 63, 63,248,250,250, 62, 49,215, 26, 12, 6, 72,165, 82,145,159,159,223,143, 61,122,244, + 16,254,246,219,111,165,110, 1, 18,150,124,182,253,151, 89,129, 30,238, 42, 0,192,162,165,251, 10, 1,224,183,223,126, 67, 82, + 82, 18,220,221,221, 81,183,110, 93,118,214,172, 89,254, 19, 38, 76,248, 26,192,240,210,176,138,115,145, 23, 73,163,101, 79,182, +236,239,203,180,209,226,121,222, 22,176,212, 74,168,172, 36,168,248,255,246, 43, 32, 59,134,119,176, 88, 66, 72,126,126,190,141, +100,169,213,106, 20, 77,174, 48,155,205, 79,224,114, 28, 7, 66, 8, 45, 11,179,148, 12,143, 5,112,136, 82,122,215, 65, 38,106, +195,220,244, 78, 36,214, 74, 38,245,183,186, 80,239,250,209,163,215,181, 0, 78,221, 31,190,228,187,182,109, 3,223,155,182,120, +186, 46, 51, 41,227,147,129,175, 87, 13,243,243,148, 41,178,211,114, 60, 34, 34, 58,227,145, 71,101, 71,211,217,102,240,224,193, +235,246,159,142, 35, 82,169, 72, 36, 96, 89, 97,171,122,225,158,193,110,172,155, 10,112,139,143,189,125,106,232,208,161,245, 38, + 78,156,216,218,153,188, 51, 12, 3,181, 90,141,117,235,214,129,113, 32,118,206,179, 56, 53, 82, 66,189, 11,172, 68, 74,171,213, + 98,215,174, 93,136,142,142,190, 72, 8,137, 42,250,200, 69, 74, 41,114,115,115,145,156,156, 12,127,127,255,139,132, 16,161,253, + 54, 98,113, 76,171, 86,213, 74,170,134, 12, 25, 50,208, 98,177, 8,236, 6,137,226, 4,230, 9, 18,227,104,222, 3, 2, 2,246, + 3,120,153,101, 89, 24,245,122,227,255,190,250,202,254,241,121,123,146, 85, 26,166, 53,173, 28,199, 9, 46, 94,188, 40,180,246, + 25, 0, 66, 0, 10, 0, 94,148, 82, 48, 12,115,197,129,242,140,148,203,229,167,118,236,216,161,110,220,184, 49, 17,139,197,176, + 88, 44,184,122,245,106,240,151, 95,126, 57,250,224,193,131,175, 18, 66,106, 23, 15,158,238, 96,189,215, 57,126,252,120, 65,104, +104,104,137,196, 49, 55, 55, 87, 16, 30, 30,222, 22, 64,236,191,128,153,144,154,154,218,227,229,151, 95, 30,147,146,146, 18, 99, +177, 88, 62, 6, 80,215,203,203,235, 98,175, 94,189, 32,147,201,218, 59, 66,180,202,170,119, 31, 31,159,238, 47,189,244, 18,150, + 44, 89,130, 47,191,252,178, 19,165,244, 16, 33,164, 99,110,110,238,193,110,221,186, 65,163,209,244, 40,137,104, 57,218,150, 8, + 33,225,109,218,180,249,113,230,204,153,170, 93,187,118, 33, 44, 44, 12,121,121,121,248,240,195, 15,125, 62,255,252,243, 35,132, +144,118, 86,178, 85, 26, 38, 33,164,182, 68, 34, 89,243,243,207, 63, 43, 67, 67, 67, 67, 69, 34, 17, 19, 26, 26, 10,173, 86, 11, +189, 94, 47,153, 51,103, 78, 61,153, 76,246,215, 55,223,124,179, 6, 64,175,114,218, 18, 3, 96,246,178,101,203,198,140, 26, 53, + 74, 51,112,224, 64,206,104, 52, 62,182,192,150,203,229,143, 45,174, 35, 34, 34, 28,206,123, 81,244, 12, 53, 0,141, 51,219,174, +101,228, 61, 7,128,196,214,121,132, 66, 72,165, 82, 72,165, 82, 72, 36, 18,220,188,121,115,154, 84, 42, 93,104, 63, 22,151,133, + 73,254,158,180, 26, 16, 66,206,178, 44, 91,230,125,113,211,144,127, 98,252, 44, 33,205, 65,132,144, 69, 0,218, 63, 26,242,153, +163, 94, 94, 94,239,167,164,164, 60,112, 20, 51, 32, 32,192, 51, 63, 63,255, 27,127,127,127,248,250,250,218,230,142,192,192, 64, +152,205,102,164,166,166,130, 82,138,236,236,108,200,229,114, 4, 4, 4,124, 51,122,244,232,205,203,150, 45,203, 44, 17,147,199, +151,221,250, 77,253,140,101, 89, 6, 0, 88,129, 82, 57,126, 10, 80,181,106, 85,180,106,213, 10,122,189, 30, 57, 57, 57,168, 83, +167,142,128, 16, 50,152, 97, 24, 53,165,244, 7, 74,233,225,255,160,214,189, 84, 99,248, 25,197,247, 69, 9, 33,224,121, 30, 2, +129,224, 49,162, 85,252,178,146,162,162,246, 74,202, 91, 57, 25,141, 70, 27,201,114,115,115,179,145, 52,139,197, 82, 26,209,170, + 8, 83,175,207,243,124,117, 66,200, 50, 71,201, 86,113, 25, 60,120,240, 19,246, 30, 19, 38, 76, 72, 72, 75, 75,163,111,116,110, +160,136,217,147,148, 92,195, 93, 41,243, 86,169,170, 73,221, 61, 52,153,153,153,127, 2,208, 56,241, 19, 53, 27, 53,106, 36, 91, +187,245,120,194,200, 15,230,205,106, 28,234,169,174, 31,228,229,238,231, 38, 19, 43, 25, 82, 32,181,152, 19, 60, 60, 60,194, 42, +176, 66, 3, 0,104, 52, 26, 8, 4,130,231, 66,163, 69, 41,181, 16, 66,162, 8, 33, 23,119,237,218,133,102,205,154,217,200,150, +149,132,228,228,228,224,234,213,171,104,211,166, 13, 0, 68, 57, 98,171,197,243, 60, 76, 38, 19, 76, 38,147,141,192,136, 68,162, + 39, 8,140,245,179, 44,203, 94,169, 96, 22,102,185,187,187,183,105,223,190,189,248,151,141, 27,197,148,210, 2, 60, 10,124,157, + 79,105, 41, 1,178,139,137,197, 98,177,105,217,132, 66, 33, 30, 62,124,104,155,184,172,154,225,226, 91,231,165,137, 68, 34,249, +232,215, 95,127, 85, 55,109,218,148,100,102,102,130,231,121,219, 32,249,253,247,223, 75,123,247,238, 29,120,225,194,133, 79, 80, +129,112, 54, 0, 72,105,132, 8, 0,212,106,181, 5, 0, 83, 25,152, 22,139,133,180,108,217,114, 98, 70, 70, 70, 61,157, 78, 55, +199,145,118, 4, 96,123,209,101, 29, 83,254,138,137,137,209,245,237,219, 87, 86,173, 90,181,102, 79,219, 86,195,195,195, 91, 8, +133, 66,156, 57,115,198, 0,192,186,178, 62,122,249,242,101, 67,175, 94,189, 36,193,193,193, 45,156, 24,112,195, 35, 35, 35, 15, +248,248,248,200,172,218,160, 62,125,250, 8,151, 47, 95,174, 74, 76, 76,132,201,100,194,228,201,147,241,218,107,175,193,203,203, + 11, 19, 38, 76,240,157, 63,127,254, 79, 0, 26,149,129, 41, 21,139,197,235,238,220,185, 19,230,239,239, 47, 59,125,250, 52,234, +215,175,143,140,140, 12,164,164,164, 32, 63, 63, 31, 41, 41, 41, 24, 62,124,184,207,215, 95,127, 29,224,128, 38,203, 70,178,150, + 47, 95,158,189,101,203, 22,118,197,138, 21, 42,251, 5,118,241,197,117, 73,139,106, 7, 36, 91, 36, 18, 65, 46,151,107,178,179, +179,115,158,162,138, 36, 0,196,246, 36, 75, 34,145, 64, 34,145, 64, 42,149, 62, 85, 92,214, 23,100, 18, 15, 36,132, 92, 23,137, + 68, 18,185, 92, 46, 98, 24, 6, 18,137,164,179,135,135,199,181, 87, 94,121,165,238,254,253,251,227, 28,193,209,235,245,235, 36, + 18,137,208,199,199, 7, 0, 16, 22, 22,134,250,245,235,163,160,160,128,207,201,201,129, 70,163, 97, 30, 60,120, 0,157, 78,135, +228,228,100,132,132,132, 8, 25,134, 89, 7,224,213,146,240, 78, 94, 72, 94, 10, 96,169,245,222,219,219, 59, 21,128,204,122, 47, +149, 74, 17, 24, 24,136,196,196, 68,168, 84, 42,246,243,207, 63,239,181,113,227,198,158,132,144,193,148,210,245,118, 80, 51, 94, + 84, 27, 45, 43,201,178,127,125,140,104, 69, 71, 71, 79,223,181,107, 87,219,146, 38,178,162,253,218, 82, 53, 89,214,203,145,142, + 71, 8, 1,199,113,240,245,245,133, 92, 46,135, 92, 46,183,238,249,131,227,184, 39,240,139, 86,248, 78,103, 86,161, 80,224,173, +183,222,162, 63,252,240,195,152, 34,178,117,199,209,239,246, 89, 18, 99,211, 98, 21,151,218,181,107,159,250,228,147, 79,186,255, +241,199, 31,137,141, 67,171, 9, 20, 73, 15,242,165,106,141, 6, 65, 85,162,135,244,232,117, 25,143, 78, 31, 58, 42,119,242,242, +242,100, 53,130,228, 70,134,209,147, 42, 18,129,202, 95, 33,146,248,185,187, 7,138,140,134, 52,181,187,187,216, 96, 48,100, 3, +200, 42, 11, 68,173, 86,239,147, 72, 36, 33, 44,203,130,101, 89,120,121,121,185, 81, 74,161,209,104, 16, 20, 20,164,140,136,136, +184, 37, 16, 8,192, 48, 12,242,243,243, 31,220,191,127,191,115,121, 9,115,119,119,223, 39,145, 72, 66, 24,134, 1, 33, 4, 44, +203,218, 14, 46, 88,255,103, 89, 22,132, 16, 20, 22, 22, 58,132, 73, 41,189, 68, 8,137,138,142,142,182,145,173, 61,123,246,160, + 75,151, 46,200,206,206,198,181,107,215,236, 73,150, 67,219,134,246,198,239,148, 82,136, 68, 34,220,188,121,243,177, 45,109,235, +165, 82,169, 42,220,121, 60, 60, 60, 78,244,233,211, 7, 63,254,248, 35,165,148, 18, 0, 10, 66, 72,125, 55, 55,183,155,215,175, + 95,119,200, 14,134, 82, 10,147,233,239,143, 90,219,184,125,255,114,130, 76,119,110,212,168, 17,201,201,201,177, 18, 72,219,130, +136,101, 89,124,247,221,119,178,166, 77,155, 78,149, 74,165, 19, 69, 34, 81,174,217,108,254, 69,175,215,207,161,148,102, 63, 79, +131, 82,235,214,173, 63,136,143,143,127, 45, 36, 36,100,199, 83,144,120,218,164, 73, 19, 35, 0, 25,203,178,194, 74, 24, 40,217, +162,182,165,183,146,125, 74,169,165, 81,163, 70,250,162, 73,158,117, 20,203,203,203,235,167,221,187,119, 7,133,132,132,192,108, + 54,195, 98,177, 32, 63, 63, 31, 71,143, 30,133,193, 96,128,197, 98, 65, 88, 88, 24, 62,251,236, 51,253,251,239,191, 47, 93,182, +108, 89, 90,126,126,254,128,114, 96,223,223,188,121,179,194,223,223, 95,166,211,233, 16, 27, 27,139, 70,141, 26, 33, 47, 47, 15, + 5, 5, 5, 40, 44, 44,132,201,100, 66,110,110,174,134,227, 56, 99, 57, 88,211,236, 73,214,232,209,163,175,136,197,226, 70,239, +190,251, 46, 18, 18, 18,108,125,126,228,200,145,240,245,245, 45, 62,214, 59,197,180, 4, 2, 1, 36, 18, 9, 68, 34, 81,118, 72, + 72, 8, 8, 33,210,184,184,184,138,108,197,169, 1,228, 10,133, 66,177, 61,193,146, 72, 36, 56,115,230,204, 39, 98,177,184, 68, +109, 86, 89,237,199,153,251,231, 96, 34, 95, 36, 18,137, 36, 30, 30, 30, 34,187,121, 90,164, 84, 42,225,227,227,179, 4, 64, 87, + 7,243,221,208,195,195,195, 54,190, 55,104,208, 0,241,241,241,219,114,114,114, 6,165,165,165,129, 97,152,117, 12,195,244,180, +242,128,172,172, 44, 4, 7, 7, 55, 44, 13,175,101, 35,255, 49, 32,212,166,209,170, 93,211, 67, 89,108,158,130, 90,173,198,253, +251,247, 81, 80, 80, 64,111,223,190, 77,198,142, 29, 75,140, 70,227,106, 66,200,159,148,210,123,101,113,145, 23, 65, 42,100,163, +101, 45,224,210,136, 85,113,226,229, 8, 33, 50, 26,141,202, 70,141, 26,241,214, 9,220,122, 1, 32,165, 17,173, 34,205,129,211, + 34, 20, 10, 85, 99,199,142,205,251,225,135, 31, 70, 19, 66,150, 83, 74,111, 87,180, 0,119,108,249,217,247,203,207, 38,127,230, + 17, 80,173,198,196,137,211, 4,175,191,254,250,233,181,107,215,114, 30,181,186,118, 60,188,111,189,239, 55, 31, 78,218,179,123, +247,110,224,145, 97,180,163,114, 98,231,206,157,126, 19,222, 27,135,207, 62,122,127,175, 58,204, 75,172, 36, 30, 10,169,161, 32, + 93, 9,170,147,212,140,124,109,235,142, 29,201, 0, 46,148, 5, 34,147,201, 66,110,223,190, 29,102, 79, 36, 76, 38, 19, 52, 26, + 13,214,174, 93,235,173, 82,169,188,149, 74, 37, 4, 2, 1,234,215,175,239,168,198, 36,228,214,173, 91, 97, 42,149, 10,133,133, +133, 48, 24, 12, 48,155,205,224,121, 30,132, 16, 8,133, 66,136,197, 98, 40, 20, 10,167, 78,246,217,147,173, 61,123,246,160, 78, +157, 58,200,202,202, 66, 76, 76,140,211, 36,203, 94, 75,100,111,143, 37, 16, 8,240, 83,104, 40, 70, 38, 37,217, 8,204, 34, 55, + 55,124,198,243, 21,170,251,122,245,234,209,147, 39, 79, 98,239,222,189,232,214,173, 27,249,253,247,223, 77, 28,199,137, 18, 19, + 19, 29,214,142,241, 60,111, 75,171,117,220,182, 39, 88,206, 18, 45,139,197,162, 18,139,197,208,235,245,182,173,125,251,171,122, +245,234,208,106,181,130,220,220, 92, 65, 82, 82,146,124,246,236,217,239, 30, 57,114,196, 31, 64,255,127,115, 32,250,225,135, 31, + 66, 70,142, 28,249, 80, 32, 16,208, 46, 93,186, 12,124,240,224, 65, 15,127,127,255, 67,127,252,241,199, 87, 0,194,157,197,243, +246,246, 62, 47, 16, 8,130,148, 74,165,104,211,166, 77,230,188,188, 60,145,143,143, 79,170,149,216, 90,203,218,108, 54, 39,228, +228,228, 52,118, 4,207,219,219, 91,244,237,183,223,154, 51, 51, 51, 69,126,126,126,169, 86, 28,133, 66, 33,218,180,105,147, 57, + 55, 55, 87,164,209,104,206,103,103,103,151,139,151,145,145, 49, 96,240,224,193,199, 15, 29, 58,228,197,178, 44, 30, 60,120,128, +204,204, 76,104, 52, 26,172, 91,183, 14, 33, 33, 33,216,188,121,179, 86,171,213,142,248,223,255,254, 55, 53, 63, 63,223, 17, 87, + 15,109,154, 53,107, 22,146,157,157, 13,141, 70,131,130,130, 2,156, 63,127, 30,181,107,215, 70, 82, 82, 18, 24,134,129, 70,163, +193,247,223,127, 95, 72, 8,209,150, 51,118,244, 24, 53,106,148, 6, 0, 70,141, 26,165, 25, 53,106, 84,137, 19, 92,139, 22, 45, +176,100,201, 18,167, 22,213,197,181,236, 86, 82,100, 71,142,244, 45, 90,180,192,145, 35, 71, 38, 57, 67,142, 40,165, 70,161, 80, +248, 24,193,178,251,223,226,108, 27,226, 56, 78, 84,100, 35, 74, 28,185,127, 14,164,173, 76, 38, 19, 21,127,179,176,176, 80,228, +239,239,223,218, 9,226,235, 41,147, 61, 82, 56,133,132,132, 32, 39, 39,135, 51, 26,141,253,214,173, 91,103, 6,128, 70,141, 26, +245,227, 56, 78,111,177, 88, 88,177, 88,140,130,130, 2,248,248,248,120,150, 10,200,224,227,237,191,204,246, 43,110,163,229,239, +239,143,168,168, 40, 24, 12, 6, 36, 39, 39,227,232,209,163,102,142,227, 54,252,240,195, 15,188,183,183,247,176, 55,222,120,131, +189,112,225,194, 59, 0, 62, 40,139,139,188, 40,218,172,210,200,150,245,212, 97, 91, 0, 71, 0,180,179,102,210,126,235,176, 44, + 77,150, 51,171, 28,150,101,179, 19, 18, 18, 20, 10,133,194,246,158,217,108, 70, 64, 64, 0,207,243, 60, 41,254, 59, 21, 84, 81, + 63, 70,182,166, 76,153,146,253,253,247,223, 15,130,131, 6,229,155,222,137,196,218, 98, 36,107,233,151, 51,151,124,251,229,108, +143,187,123, 87, 99,197,226, 5, 28,199,225, 66,189,122,245, 90,231,231,231, 11,220, 20,102,100,100, 99, 15, 30,249,209,162, 14, + 86, 8, 3, 96,213,217,179,103, 47,116,237,218,245,228,170, 95,183,122, 36,197,198,254, 41,201,205, 72, 86,215, 12, 19,136, 2, + 67,122,230,233,245,162,126,253,250,121, 3,120,163, 44, 44,134, 97, 16, 27, 27,139,184,184, 56, 40,149, 74,168, 84, 42, 40,149, + 74,168,213,106,168, 84, 42,168, 84, 42,167,203,144, 97, 24,112, 28,135, 45, 91,182, 64, 46,151, 67,161, 80, 60,118, 89, 73,214, +211,212, 77,151, 46, 93,160,213,106,161, 84, 42,109,219,157,206,136,213, 70,203,104, 52,194,104, 52,194,100, 50,113, 0,132, 2, +129, 0,195, 19, 18,108, 90, 30,103, 8, 76,113,169, 95,191, 62,253,243,207, 63,113,242,228, 73, 20, 20, 20,224,219,111,191,133, +191,191,127, 7, 0,211,156,197,178, 51,210,231,114,115,115,133,185,185,185, 54,237,160, 80, 40,180,105, 15, 28,157, 28, 4, 2, +129,109, 53,106,189,236,181, 90, 44,203,194,215,215, 23,126,126,126, 88,186,116,169,168, 90,181,106,175,253,155,131,208,252,249, +243,107, 46, 90,180,104,229,218,181,107,247, 12, 24, 48, 96,227,213,171, 87,135,186,185,185, 93, 57,124,248,240,108,137, 68,194, + 87,176,127, 7, 37, 37, 37,249,216,191,197,243,188,220, 98,177,216,136,109, 97, 97, 33,234,214,173,235, 48,222,245,235,215,229, + 0, 48,123,246,108, 33, 0,185,213, 24,220,138, 89, 88, 88, 40,172, 93,187,182, 67,134,224,148,210, 91,132,144,214,157, 58,117, + 58,117,224,192, 1,247,144,144, 16, 36, 38, 38, 34, 49, 49, 17, 53,107,214,196,220,185,115, 11,114,115,115, 91, 22,145,171,223, + 29,204,118,128,187,187,187,240,225,195,135,176, 88, 44,104,216,176, 33,190,255,254,123,244,235,215, 15,117,235,214, 69,110,110, + 46,174, 95,191,142, 53,107,214,184,139, 68,162, 50,199, 14,157, 78,247,251,242,229,203,131,139,107,180, 6, 14, 28,168, 72, 77, + 77,181,181,201,153, 51,103, 62, 54, 46, 59,179,203, 80,180,181, 85,234, 85, 17,177, 88, 44,106,169, 84,154, 43,145, 72,196, 86, +251,172,163, 71,143, 58,173,205,178, 95, 0, 58,115,255,111,138,149,180, 22, 23,177, 88, 12, 63, 63, 63,135,113, 36, 18, 9,177, +142,141, 22,139, 5, 57, 57, 57,156,191,191,191,109,123,255,226,197,139, 92,213,170, 85, 57,150,101, 89,177, 88, 12, 66, 8,228, +114,121,169, 3, 62,229,232,204,215,251, 77,179,157, 58,100,132, 10,245,248, 41,143, 22,253, 23, 47, 94,132,201,100,194,209,163, + 71,205,255,251,223,255,146,178,179,179,199, 3, 16,236,219,183,111,240,164, 73,147, 88, 31, 31, 31,155, 29,109, 73, 92,228, 69, + 35, 91, 37,105,185,172,179,208,145,232,232,104, 82,116,180,146, 88, 9, 14,165,244, 9,114, 85, 26,241, 42,234,124,164,188, 78, +199,178, 44,246,238,221,107, 35, 4,214, 83,135,148, 82, 84, 54,209,242,244,244, 44,104,214,172,153, 58, 62, 62,254,231,138,106, +178,150,126, 57,115,201,188, 89,159,123,104,111,156, 70, 66, 82, 50,180,105,230, 11, 39,174,220,223, 6, 96, 27, 0, 96, 89,173, + 35, 24,125,227, 59, 71, 49,107,121,203, 27,212, 11, 80,109,123,185,235,107,193,125, 71,125,192,188,253,246,219,173, 6, 15, 30, +156, 51, 96,192,128,247,148, 74,101,184,201,100,202,218,186,107, 87, 92,223,190,125,171,113, 28, 55,184, 60,159, 35,102,179,249, + 65,175, 94,189,108,101,235,231,231,167,254,229,151, 95,124, 85, 42, 21, 6, 14, 28,152, 30, 23, 23,103,219, 46,202,203,203,123, +224, 72, 26, 77, 38,211,131, 6, 13, 26,148,186, 93,104,213, 72, 58,131, 89, 84,151,182,211,133,153,153,153,184,121,243, 38, 4, + 2, 1,154, 55,111,142, 19, 39, 78,160, 85,171, 86, 78,157, 56,212,235,245, 8, 9, 9,129, 94,175, 71, 65, 65, 65, 33, 0,201, +186,106,213, 0, 0,239,100,102,226,252,255,254,135,211,243,230, 85,168, 29, 53,104,208,128,158, 57,115, 6, 87,174, 92,129,193, + 96,192,136, 17, 35, 80,180,109, 8, 0,175, 56,145,231, 80, 63, 63,191, 46, 93,187,118, 13, 0,128,130,130, 2,114,246,236, 89, + 72,165, 82, 16, 66,144,156,156,140, 29, 59,118, 32, 49, 49, 17,132, 16,184,187,187, 7, 17, 66,170, 81, 74,239,151, 49, 49,144, +251,247,239,227,139, 47,190, 0,207,243,152, 52,105, 18,194,194,194,108, 4,235,193,131, 7,152, 61,123, 54, 56,142,195,231,159, +127,142,154, 53,107,194,108, 54, 75,157,241, 83, 86,217, 50, 97,194,132,187,219,182,109,219, 19, 31, 31,255,234,151, 95,126,217, +150, 16,194, 79,156, 56,241, 11,181, 90,205, 61, 13,110, 86, 78, 30,110,222,121, 96, 35, 66,197, 47,111, 47, 15,167,241,110,199, +198,219,190,207,113,246,120, 28, 60, 61,220,157, 77, 98,161,217,108, 46,232,217,179,167,102,203,150, 45,164,102,205,154,184,119, +239,158,117,113, 90, 88, 1,151, 14,137, 90,173, 54,140,101, 89,209,157, 59,119, 80,181,106, 85, 52,107,214, 12,115,230,204, 65, + 70, 70, 6, 44, 22, 11,124,124,124,120,179,217,124,209,104, 52, 30, 43, 7,107,230,232,209,163, 69, 0,198, 20,105,182,234,141, + 31, 63,158, 95,176, 96, 1, 46, 94,188,104, 27,143,237,141,225,157,221, 58,180,215, 58,217, 95, 71,143, 30,157, 36, 22,139, 41, +128, 51, 0,156, 34,218,148, 82, 99,149, 42, 85,138, 99, 91,158,151,201,246, 89,158,100,244,247,247, 63,170, 82,169, 94,203,202, +202,122, 76,171,213,178,101, 75,147,175,175,239,113, 71,113,148, 74,101, 22,203,178,158, 0,144,152,152, 8,133, 66, 33,138,141, +141,157, 71, 8,153, 12, 0,213,170, 85,155,167,213,106, 69,213,138,198, 83, 63, 63, 63, 24,141,198, 82,205, 88, 78, 93, 76, 89, + 13, 96,181,221,220,155,156,147,147, 35, 91,176, 96, 65,254,188,121,243,116, 28,199, 25, 0, 28,206,206,206,182,249,209,170, 90, +181,106,142, 80, 40,244,208,104, 52,129,118, 80, 79,112,145,255,194,246,161,189,195, 82, 90,194,151, 74,212,100,149, 68,182, 28, +209, 74, 16, 66,160,211,233, 30,211,142, 88, 79, 29,150, 68,180,138, 38,244, 10,109, 29, 22,145, 44,217, 47,191,252,178, 97,241, +226,197, 39, 29,253,158,189,141,214,178,175,102,125,105, 37, 89,151, 79, 30,192,239, 49, 57, 25,147,230, 45, 92, 84,209, 74,168, +237,173,168,239,231,235,117,228,127,115,103,170,239,238, 93,131,141,203,190,166,151,207,157,107,122,238,220,185, 65,227,198,141, +171, 82,212,176,180, 0,254, 2,208,215,145, 83, 58,233,233,233,143,217, 71,133,133,133,221,210,104, 52,190, 82,169, 20,177,177, +177,249,215,174, 93,115,122, 75,166, 56,102, 37, 49,253,199, 72,214,181,107,215,208,190,125,123, 0,192,137, 19, 39,208,178,101, + 75,167,200,150,217,108,206,174, 85,171,150, 77,187,149,147,147,195, 3,192,168,228,100, 44,247,247,135, 64, 32,192,233,121,243, +240,169,217,140, 57, 66,231, 76,119, 26, 54,108, 72,207,157, 59,135,184,184, 56, 88, 44, 22,116,239,222,221,158,100, 57,147,231, +186,145,145,145, 7, 15, 31, 62,236,173, 84, 42, 81, 80, 80,128,252,252,124, 12, 25, 50, 4,253,250,245,131,193, 96,192,166, 77, +155,176,125,251,118,168, 84, 42, 20, 20, 20,160,160,160,192, 61, 58, 58,250, 20, 33,164, 77,105,182,133,148, 82,218,185,115,103, + 28, 63,126, 28, 44,203,162,105,211,166,200,204,180, 29, 6,130,175,175,111, 73,207,216,162,254,254,175, 76, 72, 2,129,128, 30, + 61,122,244,203,182,109,219, 34, 62, 62,254,213, 70,141, 26,125, 59,116,232,208,196,167,197,117,119, 83,161, 65,237, 80, 24, 12, + 6, 24, 12, 6, 4, 4, 4, 32, 47, 47, 15,119,239,222,133,193, 96,128,175,143,198,105,188,168,186, 53,109,120, 62, 62, 62, 40, + 40, 40,192,253,251,247, 97, 52, 26,225,229,229,238, 76,253, 7,119,238,220,249,143, 13, 27, 54,120,174, 89,179,198,216,174, 93, + 59,241,183,223,126, 75,212,106, 53,210,210,210, 42,154,229,163, 39, 78,156, 8,233,212,169, 83,196,141, 27, 55,112,244,232, 81, + 24,141, 70, 68, 69, 69,225,246,237,219,104,209,162, 5,242,243,243,207,156, 59,119,110,187, 3,147, 2, 79, 8,153, 58,122,244, +104, 88,201,214,241,227,199,145,156,156, 12,149, 74,245, 4,209,178,218, 62,138,197, 98, 0, 8,112, 80,115, 98, 59, 21, 88,164, +121,250, 84,163,209,152, 0, 44,122,154,182,248,240,225, 67, 73,253,250,245, 13, 82,169, 84, 92, 68,218, 22,254, 91,109,187,132, +122,127,170,147,140,101,137,159,159,223,120, 47, 47,175, 78,213,171, 87, 71,106,106,170, 72, 44, 22,163,101,203,150,166, 38, 77, +154,152,252,252,252,222,113, 20, 71, 34,145,220, 16,137, 68,109, 30, 45, 38, 56, 60,124,248, 16,148,210, 73,117,235,214,125, 63, + 47, 47, 15,153,153,153, 98,181, 90,109, 91, 84, 71, 68, 68,192, 96, 48,220,112,130,108,206,172, 90,181,234, 84,145, 72, 52, 39, + 61, 61,253,135, 18,202, 72,220,160, 65, 3,181, 72, 36,130,201,100,122,140,108,150,196, 69, 94,100,146,245, 24,209,178, 99,145, +197,213,233,229,110, 27, 58,106,163, 69, 8,129,209,104,132, 66,161,176,109, 73,217,123,130, 47,137,104, 85, 68,130,131,131,209, +172, 89, 51,217,198,141, 27,127, 90,176, 96,193,169,138, 96,108,222,176,222,223,141, 47, 12, 78, 58,179, 27,183,174, 92,192,182, +235,217, 25,147,230, 45,124,239,245, 55,250,167, 22, 39,102,155, 70,151,143, 23,238,163,168, 27,232,235,121,228,171,249,243,212, +218, 27,167,145,156,146,130,221,103,206, 93, 48, 82,122, 29,192,164,202,170,108,251,211,107, 21, 37,169,207, 96,224,177,185,119, +200,200,200,192,245,235,215,173, 36, 43, 10, 0, 90,181,106,117,209, 74,182, 46, 92,184,128, 70,141, 26, 61,225,222,225, 9,205, + 67, 86,214,220, 98,191,209, 9,128,151,149,240, 11, 4, 2,180,156, 58,213,105,146, 69, 8,161, 28,199, 65,171,213, 90, 87,138, + 21, 34, 89, 69,131,226, 71,135, 15, 31,246, 94,181,106, 85,238,218,181,107, 51,121,158, 23, 54,104,208, 32,168,113,227,198,100, +221,186,117, 0,128,190,125,251, 98,210,164, 73,184,118,237, 26, 20, 10, 5, 90,181,106,197, 77,159, 62,221,103,252,248,241,239, +224,145,159,164, 39,132,227, 56, 81,181,106,213, 14, 1,232,112,227,198, 13, 0, 56, 69, 41,109,105,125, 94,214, 51, 7,132,207, +203,203, 19,170, 84,170, 18, 93, 67,136, 30, 29,235,116,118,171,207,134,121,242,228,201, 47,190,250,234,171,109, 31,126,248,225, +157,167,196, 44, 81,163,245,218,107,175, 65,103, 48, 33, 33, 53, 7, 28,103,129,206,148,230, 52,158,189, 70,235,181,215, 94, 67, +161,222,136,135,201, 90, 88, 44, 28,242,116, 22, 71,219,145,252,229,151, 95,222,247,203, 47,191,248,253,249,231,159,224, 56,142, +191,125,251,246,253,158, 61,123,170, 39, 78,156,232,105,103,131,234,172, 44,238,223,191,127,239,147, 39, 79,106, 35, 34, 34, 60, +206,156, 57,131,180,180, 52, 88, 44, 22,116,232,208, 1, 98,177,248,225,188,121,243, 68, 0, 22, 59, 56, 57, 88,201,150,233,220, +185,115, 35, 79,159, 62,237,225,225,225, 33,230, 35, 35,145,124,224, 0,182,108,217,242,196,119,150, 45, 91, 6, 0, 14,121,225, +183,106,156,206,158, 61, 91, 41, 4,171,248,118, 89, 69,183, 31, 95, 84, 57,115,230, 76,226,184,113,227,106,171,213,234, 69,173, + 91,183,110,239,233,233,201,184,187,187, 31, 13, 12, 12,124,191,126,253,250, 15,156,152, 39,134, 42, 20,138,187, 22,139,133,205, +207,207, 71, 65, 65, 1, 0,192, 98,177,136, 25,134, 65,181,106,213,108,202,147,166, 77,155,194,207,207,143,139,137,137, 25,234, + 40,126, 90, 90,218, 99,167, 16, 75,144,209, 45, 91,182, 20, 24, 12, 6,196,197,197,157,176,127, 80, 26, 23,121,222,165, 66, 65, +165, 25,134, 1,165, 20,210,198,141, 75,237,112, 37,116, 62, 82,124,242,179,247,181, 97, 61, 93, 56,114,228, 72,219,103, 46, 92, +184, 96, 51,138,239,222,189,251, 99,152,103,207,158,125,130,108, 57, 18, 49, 60, 45, 45,237,198,166, 77,155,206,205,159, 63,255, +140,131, 5,100,195,180,218,104,245,126,107, 96,242,146, 47, 62,187,186,118,199,225,186,201, 58,154, 60,105,222,194, 15,139,147, + 44, 71, 49,107,249, 41,107, 5,249,120, 30, 93, 48,127,158,155, 85, 59,246,203,197,148, 28, 88,232,104, 39, 43,178,220,188,219, +107, 22, 9, 33,124,101, 96, 86,160,193, 61,134,105,239,222, 33, 57, 57,217, 70,178,236, 28,150, 70,181,106,213,234, 98, 17,201, +178, 62,179, 84, 36,157, 2,129, 0, 31,230,231, 67, 32, 16,160,221,140, 25,232, 48,107,150,211,121,231, 56, 14, 2,129, 0, 97, + 97, 97, 78,147, 44,123, 76, 66, 72,203,194,194, 66,172, 89,179, 38,239,206,157, 59,161,213,171, 87, 31,191,122,245,234,133,114, +185,252,177,239, 20, 22, 22,226,245,215, 95,199, 15, 63,252,128,206,157, 59,155,135, 14, 29, 42, 97, 24,166, 83, 89,233,140,139, +139, 27,221,177, 99,199,101,122,189, 94,144,153,153, 57,218,209,103,229,229,125,211,166, 77,119,194,194,194,218,162,116, 23, 14, + 60,128, 63,159, 6,115,209,162, 69, 0, 16,241, 52,152,165,105,180,126,253,245, 87,240, 60,143, 96, 63, 13, 12, 6, 3,138,151, +117,121,152,197, 53, 90, 27, 55,110, 4,207,243,168,226,239, 1,163,209, 8,171, 1,113,121,152,158,158,158, 95,175, 93,187, 54, + 40, 38, 38, 6, 9, 9, 9, 88,184,112,225,131,236,236,236,174,217,217,217,146,233,211,167, 31,121,235,173,183,124,121,158, 55, + 56,219, 55, 41,165, 6, 66,200,208,151, 94,122,105,221,236,217,179,239, 69, 70, 70, 86,105,217,178,165, 38, 51, 51, 51,253,210, +165, 75,247,151, 45, 91,166,180, 88, 44, 67, 75,219,146, 42, 5,147, 7, 48,157, 16,242,131, 70,163,217, 22, 23, 23,215,180,102, + 86, 22, 27, 64, 8,154, 54,109,250,152,233, 0,195, 48, 56,126,252, 56,120,158,191,235, 72,121, 38, 38, 38,206, 40,210,166, 58, + 69,176, 28,233,239,103,207,158,157, 82,132,125,206, 17,236,127, 98,172,179,106,156,157,185,119, 54,157,223,125,247, 93, 2,138, +249, 71,115, 54,157,103,207,158,141,235,212,169,211, 44, 95, 95,223,233, 82,169, 20,233,233,143,130, 29, 88, 53,143,214,249,186, +113,227,198,232,220,185, 51,110,221,186, 53,107,234,212,169,113, 79, 83,158, 69, 11,238, 80, 0,131, 58,118,236, 56,177,119,239, +222,248,238,187,239, 64, 41, 93,249, 95, 32,193,229, 6,149,142,142,142, 38,246,175, 69, 91, 51,241,119,239,222,245,183,239,112, +246, 49, 10,173,157,206,106, 80,119,236,216, 49,139,125,231, 43,101, 37, 30,127,242,228, 73,223, 3, 7, 14, 8,173, 21, 90,100, +212,201, 39, 37, 37, 49, 71,142, 28,177,105,199, 4, 2, 1,142, 30, 61,106, 49,153, 76, 15,157,205,240,173, 91,183, 22, 87, 70, +193, 29,187, 22,247,254,190,221,191,121, 53,111,214, 58, 91,237,225, 81, 98, 71,182,122,144, 47,179,129, 9,152, 57, 95,206,157, +169,177,146,172, 95, 47,166,100,235, 13, 92,251, 27,233,133,151, 43,187,178,243,242,242,226,172,167, 11,243,243,243, 31, 62, 71, +141,240, 18, 33, 36,202,223,223,255, 34,138,157, 46,180, 62,107,212,168,209, 19,207,156, 82,155,240, 60,220,220,220,108,131,132, +179,118, 89,132, 16,106,221,202, 46, 74, 23,121,202, 60,159,188,122,245,106,213, 33, 67,134,168,194,194,194, 98, 9, 33,194,225, +195,135,155,252,252,252, 68, 39, 78,156, 48, 3, 32,109,219,182, 21,164,164,164,208,196,196, 68,109,183,110,221,242, 70,142, 28, +233,249,215, 95,127,137,121,158, 63, 88, 14,246, 61, 0, 29,157,125, 86,158,244,238,221, 59, 22, 37, 56, 14,125, 26,121, 22,152, + 86,209,102,231, 34, 54, 46,177,200,131, 57, 15,238, 65,170,205,174,202,108,182, 64,155,155,233,180, 70,235,238,253,196,162,144, + 99, 28, 56, 46,169, 8,239,145, 65, 60,205, 42,116, 68, 91,208,106,209,162, 69, 93, 25,134, 97, 78,159, 62,109,152, 63,127,126, +124,122,122,122,119, 74,233,195,162,118,214,110,205,154, 53, 63, 57,224,202,161,180,186,191, 78, 8,105,241,241,199, 31,191, 7, +160, 21,128, 42, 0, 30, 2, 56, 1, 96,113, 69, 61,152, 83, 74,211, 8, 33,175,116,237,218,245, 0,203,178,213,236,250,145, 23, +128, 12,187,126,225,147,154,154,250,170,131,176, 11,159,225,176,178, 16,207,161,188, 40, 39, 25, 15, 30, 60, 56,163, 71,143, 30, +130,144,144,144, 79, 66, 66, 66,152,172,172, 44,228,231,231,131, 97, 24,248,249,249,161, 78,157, 58,240,243,243,227,111,220,184, + 49,247,227,143, 63, 46,215, 39, 95,237,218,181, 67,205,102,115, 13,134, 97, 66, 1,132, 82, 74, 67, 9, 33,161, 0, 60,138, 52, + 99,234,170, 85,171, 10,154, 55,111,142,102,205,154,225,200,145, 35,216,188,121,243,106, 74,233, 62,123,109, 86,113, 46,242, 60, +200,245,198,164, 45,225,113,132, 50,104, 87,251, 60, 61,122, 35,138,208, 90, 23,159,156, 31,202, 13, 42,253,196,128,147,149,213, +185,132, 14,103, 15,248,216, 43,207,243,113,229,117,190,172,172,172,206,239,191,255,254, 1,150,101,171, 89, 53, 85, 22,139,197, +160,213,106,223,110,215,174,221,247, 66,161, 80, 98,143,203,243,252,131,212,212,212,127, 52, 86, 95,113, 63, 90,157,187,246,200, +120, 90, 76,165,136,169,113,107,215,143, 72, 77,203,192,175, 23, 83,178,242,140, 92,187, 91,233, 5, 87,159, 69,250,227,226,226, +186, 60,199,140,255, 82,105, 91,130,101, 61,115, 80,210, 29,112, 72,154, 94, 78,250, 72, 17,217,170,148, 78,158,146,146,178, 96, +234,212,169,175,204,157, 59,215,123,207,158, 61,234,162,223, 64,175, 94,189,210,174, 94,189,218, 26,128, 68,175,215, 31,156, 59, +119,174,247,204,153, 51, 61, 1,120, 22, 13, 50,169,169,169,169, 75,224,146, 50,197,108, 54, 39,212,169, 21, 97,173,187,199, 92, + 58,216,255,111,177, 88, 18,156,193, 43, 9,199,254,158,227,184,132,114,180,202, 31, 54,107,214,140,253,240,195, 15, 83,247,236, +217, 99, 13,164, 91,104,215,206,110,161, 12,167,164, 14,246, 37, 3,128,249, 69, 87,101,246,209, 2, 0, 45, 92,173,235,233,199, + 58,103,238,255, 45,249,237,183,223,166,245,235,215,111,141,135,135,199,250,208,208,208, 8, 95, 95, 95,181, 76, 38,131,193, 96, +200, 51, 26,141, 55,111,221,186, 53, 96,234,212,169,247, 28,193, 90,179,102, 13, 11, 64,196,243,188,148, 97, 24, 5, 0, 53, 33, +196,221, 74,180, 8, 33, 48,153, 76,136,139,139,195,167,159,126,202, 29, 58,116,232,127, 0, 62,119, 34,185, 77, 0,120,219,141, +227,222, 0,140,120,228,192, 54,189, 72,179,249, 76,132,240, 56, 82,235, 34, 37, 55,162, 72,169, 70,250,229, 6,149,254,167, 58, + 92, 57,152, 33,207, 75, 39, 25,108,152,255, 51,150,205,127, 44,206,161,149,132,149,120, 95,206, 6, 96,142,206, 50,110,241,190, +107, 11, 12, 22,202,155, 44,252,176, 91,105, 5,215,255, 31, 15, 64,150,138, 60,115, 0,247,229, 74, 74, 31,169,196,188, 94, 37, +132,188, 52,110,220,184,105,114,185,188, 41, 0, 20, 22, 22,158, 78, 74, 74,154,101, 61, 85, 88,222,115,151,148,193,154,211,211, + 27, 63,143,120, 70,163,241,253,151, 94,122,233, 27,142,227,190, 50,155,205, 39, 92, 53,229,146,231, 89,126,253,245,215,123,214, +121,185, 79,159, 62, 44, 0,108,218,180,201,233,211,192, 67,134, 12,225,138, 2,153,235, 1, 20, 0,200,197, 35,135,219, 4, 0, + 10, 10, 10,178,146,146,146,110,112, 28,119, 3,192, 79, 21, 56,113,235, 77, 8,217, 73, 41,125,173,104,236,220, 73, 41,125,205, +254,189,103, 45,118,100,171,164,241,190,124, 99,120,151, 60,146, 77,215,254,158,104,139, 19,168,242,238, 75,147,155, 41,249, 71, +159,118, 5,235,146, 23,150, 88,198, 2, 24, 92,209,231, 46,121, 33,235,252, 33,128,238,174,146,112,201, 11, 55,255, 85,128, 96, + 89,229,250,245,235,207,204, 68,224,223, 22,251,109,194,146,182, 12,173, 82,146, 54,203, 69,180, 92,226, 18,151,184,196, 37, 46, +113,137, 75,202, 34,145, 69, 54, 90, 54, 18, 85,100,171, 85,156,100,217,147, 43,251,123, 2,160, 83, 41,171, 50,103, 78, 19,116, +170,192,170,239,160, 11,211,133,233,194,116, 97,186, 48, 93,152, 46,204,255, 95,152, 21,148,232,114,182, 14,119, 61, 43,162,101, + 53,126,191, 30, 69,166,215,190, 72,167,151,100, 12, 95, 22,209,122,204,216,179,178, 47, 0,157, 92,152, 46, 76, 23,166, 11,211, +133,233,194,116, 97,186, 48,159,242,106, 63,121,242,228, 41,120, 20,255,152, 78,158, 60,121, 10,165, 52,250, 17,141,161,209,207, +242,183,175, 53, 66,219,235, 13, 65,173,215,181, 70,104, 91, 74,153,140,178, 94,246,239,187,182, 14, 93,226, 18,151,184,196, 37, + 46,113,201,243, 46,167,230,205,155, 87, 56,111,222, 60,171,225,123, 58, 0, 82,164,205, 74,127,150, 63, 92,180, 77, 88,238, 65, +169,114, 67,240,252,211, 66, 8, 9, 96, 4,162,129, 66,145,164, 61, 40, 95, 7, 0,192,176,215, 56,163,254, 15,139,197,180,158, + 82,154, 84, 81,236, 90,132,212,170,169,145,109, 55,112,156, 40, 62,207,216,251, 6,165,103, 43,130,211,135,144,150, 18,177,120, +191, 68,163, 41,209, 75,161, 33, 59, 91,103, 48, 26, 95,217, 68,233, 73, 87, 31,112,137, 75, 92,226, 18,151,188, 8, 66, 8, 81, +184,187,187, 31, 98, 24, 38,196,238, 61,148,244, 63, 0,112, 28,151,172,213,106, 95,161,148,102,252,147,152,197,196, 8,224,236, +243, 80,126,206,110, 29, 10,128,199, 98, 11,149, 27, 49, 59,210, 95,217, 58, 34, 52,100, 67, 82, 74,234,197, 92,189,113,248,205, +196, 60,173,179,137, 20,136,164, 35, 53, 94,126,115,222, 28,250,190,103, 88,120, 4, 9, 14, 14, 4, 40,240, 48, 62,193,247,238, +157,219, 29, 55,174, 93, 60, 65, 36,149,126,106,210,235,127,116,154,121, 18,162, 8, 81, 74, 78,252, 56,249, 45,141, 0, 22,244, +159,189, 97,111,109, 66,130,175, 63,114, 45,225, 20,201,210,120,122,238,155,119,240,160,204,189,200, 1,168, 29,107,125, 20, 95, +239,242,101,217, 39,175,188,178,175, 15, 33,157, 93,100,235, 63, 57, 24,249,169,213,234,241, 66,161,176,157,201,100, 10, 17,139, +197,241, 28,199, 29,205,202,202, 90, 68, 41, 77,116,149,144, 75, 92, 82,110, 31, 42, 53,144,249,191, 25,228, 28, 0, 84, 42,213, +121,134, 97,130,236, 73,128,213,191, 99,113, 63,145,118,254, 34,239,101,102,102,190, 84, 70,126, 67, 61, 60, 60,190, 7,208,164, + 60,135,201, 69, 91, 77,231,180, 90,237,219, 69,167,143, 75,194, 83,185,187,187,207, 32,132,244, 97, 24,166,220,128,194, 60,207, +115,148,210, 77, 89, 89, 89,159, 83, 74,243, 74,251,156,187,187,251,193,152,152,152, 38, 62, 62, 62,229,106,105, 44, 22, 11, 30, + 62,124,232,221,180,105,211, 99, 0, 34,159, 37,166, 51, 92,228,223,148,178, 78, 30,150,200,121,172,255, 56, 26, 49,155,231, 49, +112,213,156,183, 3,147, 31,220, 9, 28, 61,247,231,240, 72, 47,121,187,152,140,194, 20, 71,127, 80, 44, 83,109,111,213,225,181, +246, 99,223,251, 80,113,233,234, 77,236, 63,242, 39,114, 11, 12, 96, 25, 6, 26,149, 28,225,225, 53,200,194,229, 91,188, 86, 47, + 93,248,149, 76,169,137,214,229,103,119,115, 38, 67, 10,185,224,211, 73, 61,155, 42, 60, 61, 56,128,231,240, 81,215, 6,138, 79, +118, 94,252, 20,192, 20,167, 73,214,161, 67,242,180,212, 84,204, 12, 8,128,192, 98,129,148, 97, 32, 37, 4, 82,134,129, 66, 42, + 69,151,149, 43, 49,107,207, 30,249,180, 87, 95,117,145,173,255,152,168, 84,170,161,225,225,225,243, 87,172, 88,225, 89,189,122, +117, 40, 20, 10,104,181, 90,175, 91,183,110, 53,252,224,131, 15, 6,187,185,185, 77,205,201,201, 89,230, 42, 41,151,184,164, 84, +210,209, 16, 64,137, 65,226,203,122,246, 79, 9,195, 48, 65,137,137,137, 62,114,185, 28, 28,199, 21, 69, 3,224,109, 11,105,251, + 72, 57, 69,142,106, 17, 25, 25,105, 42,103,220,248, 46, 45, 45,173,147,125, 40,180,178, 34,238, 36, 38, 38,118,170, 93,187,246, +119, 0, 94, 41,133,188,204,120,239,189,247,198,215,173, 91,215,170, 5, 42,138,130,240,232, 53, 35, 35, 3,227,198,141,179,253, + 6,207,243, 56,112,224,192,123, 67,135, 14, 5,128, 15,202,200,123,136,143,143, 15, 41, 10, 40, 94,170, 76,159, 62, 29,211,167, + 79,199,226,197,139,137, 80, 40,212,148, 83,158,149,130,233, 40, 23,249, 55, 52, 88,197, 61,196, 23,251,216,174, 98,241, 14,119, + 61, 65,180, 28,110,156,148,223, 61,123,209,138,225, 51,135,180, 34,171, 62,232, 20, 54,102,241,193, 63,107, 7,200,218, 92, 79, +210,197, 59,160,201, 26,214,188,205,171,237,198,141,159,164,248,249,183,195,184,117,227, 50, 98, 78,252,242,216,103, 26,191, 50, + 20, 41, 25,121, 24, 58,246, 35, 37, 97, 5,237, 68, 82,249, 48,147,190,112,149,131,218, 44,223,218, 30,242,119,155, 55,173, 35, + 76,148,221,130,159,187, 12,173, 26,213, 20, 6,239,187,242,110,109, 66,190,185, 78,105,185,177, 10,139,147,172, 21,111,189,133, +214,102, 51,124, 88, 22, 44, 33, 96, 1, 48,132, 64,111, 48,224,220,192,129,104,186,110, 29, 62,223,177, 67, 62,227,245,215,157, + 38, 91,114,185,124,181, 78,167,251,178, 2,142,219,254,205,193, 51, 92,165, 82,125,154,155,155, 59,240, 57, 74,147, 63,128,244, + 18,226, 35,138, 0,104, 40,165, 78, 69, 22,150, 74,165, 35,251,247,239,191,112,201,146, 37,242,212,212, 84, 36, 37, 37,129,227, + 56, 72,165, 82,132,133,133,145,131, 7, 15,122, 78,154, 52,105,129, 90,173,150,228,230,230,126,227, 68, 58, 25,161, 80, 56,196, +195,195,163,135,175,175,175, 79,122,122,122,122, 86, 86,214, 14,131,193,176,170,162, 43,251, 34,204, 1, 85,171, 86,237, 17, 16, + 16,224,155,152,152,152,145,144,144,176,221, 96, 48,172, 46,138, 97,247, 52,101, 90, 31, 69,222,234, 1, 36, 87,173, 90,245,218, +253,251,247,211, 42, 17, 51,169,106,213,170,215,157,197, 36,132, 40, 0,108, 4, 16, 80,206, 71,147, 0,244,165, 78,106,179, 93, + 82,121, 36,171, 40,164,213, 99,132,170,172,103,255,180,200,100, 50,252,242,203, 47, 16, 10,133, 16, 10,133,200,202,202, 66, 80, + 80,144,237, 94, 36, 18,217,254,175, 82,165, 74,185,120, 28,199, 53,101, 89, 22,249,249,249,224, 56,206,118,101,103,103,131, 82, + 10,137, 68, 2,142,123, 20,206,201,238,121,211, 50,202,177, 79, 64, 64, 0,126,254,249,103, 24,141,198, 39,158,171,213,106, 92, +189,250,119,144, 17,150,101,209,172, 89, 51,134, 16,210,167, 44,162, 69,200, 35,167,155,163, 70,141, 2,203,178,143,197,179,180, +191, 56,142,195,244,233,211, 97, 31,154,236,159,196,124,238,218,117, 25, 30,226, 41,165,201, 0, 74,180,209, 98,202, 2,141,244, + 83,190, 61,225,173,151, 11,167, 14,143,166,159, 12,126,133,126,252, 86, 59,250,106,155,122,191,177, 2, 1, 57,115,253, 33,130, +220,128,213,227,154,132, 4,123, 41,174,214,245, 84,133,151,160, 26,181, 15, 40, 29, 32, 87,168,191,120,251,253,143,148,187,142, + 93,193,195,248,135, 79,144, 44, 0, 56,191,127, 53,146,147, 18,113, 49, 38, 1, 3,134,189,163, 84,171, 53, 95, 16, 66, 2, 74, +194, 44, 46,110, 42,209,255, 38,247,109, 37,205, 55, 39, 33,207, 29, 96, 67,197, 16,202, 11, 48,233,181,250, 18,181, 74, 52,191, + 12, 21,174, 13, 83, 34, 22,239,159,119,240,160,141,100,181, 52, 24, 32,225, 56, 88, 56,206, 70,178,140, 22, 11,116, 70, 35,252, +243,243,113,119,232, 80, 80,179, 25, 83,183,109,147, 75,196,226,253,142,164,211,110, 5,208, 85,173, 86, 31, 33,132,132, 59, 82, +201,207,226,200,172,147,110, 60,194, 85, 42,213, 17, 66,200,171,207, 67, 58, 9, 33, 12, 33,100,246,240,225,195, 47,212,168, 81, +227,112, 17,177,178, 62, 19,212,168, 81,227,224,240,225,195, 47, 17, 66,166, 19, 66, 24, 7, 49, 3, 3, 2, 2,230, 44, 89,178, + 68,126,251,246,109, 36, 38, 38,194,108, 54,163,127,255,254,224, 56, 14, 58,157, 14, 70,163, 17, 95,126,249,165,194,211,211,243, + 83, 66, 72,136, 35,121, 39,132,176,110,110,110,107,214,174, 93, 59,234,254,253,251,126,127,252,241, 7,115,229,202, 21,223,175, +190,250,106,168,167,167,231,186,162,128,171, 78,149, 39, 33,132,241,247,247, 95,245,251,239,191,191,125,245,234,213,160,173, 91, +183, 10, 79,159, 62,237,191,116,233,210, 17,254,254,254,235, 8, 33,108, 69,234,136, 16,210, 80, 46,151,119,156, 56,113, 34,127, +234,212,169,196, 83,167, 78, 37, 46, 92,184, 16,173, 91,183,110, 57,107,214,172,168, 10, 98, 54, 82,169, 84, 29, 38, 78,156,200, + 31, 63,126, 60,233,204,153, 51, 9, 11, 22, 44, 96, 58,116,232,208,106,238,220,185,245,157,196,220,120,234,212,169,182,241,241, +241,213, 19, 18, 18,170, 37, 36, 36, 84, 77, 72, 72,168,154,152,152, 24,146,156,156, 92, 37, 37, 37, 37, 56, 45, 45, 45,248,232, +209,163,173, 0,108,120,222,250,209,127, 29,179,168, 45, 95,164,148, 66,171,213, 98,215,174, 93, 40,210, 94, 53,180, 39, 89,185, +185,185, 72, 78, 78,182, 62, 19,252, 11,233, 4,199,113, 54, 34,117,224,192, 1, 12, 31, 62, 28, 90,173,214,246,158, 64, 32,176, +253,111,253, 78,121,152, 86,205, 19,199,113, 56,115,230, 12, 70,143, 30,141,133, 11, 23, 98,195,134, 13,216,185,115, 39,180, 90, +173,141,108, 89, 44,150,114, 49, 51, 50, 50,192,243,188,163,121, 68, 78, 78,142,195,245,110, 79,128, 4, 2,193, 19,164,200,122, + 57,211,150,158, 6,243,121,150,210, 60,194, 59, 34,182,198, 93,164,170,107,103,255, 48,162,170,223,167,243,199,247,145,129, 51, +129,154,117,128,169, 16, 48,229,131, 55, 22,130,136,100,128, 89, 7,111,137, 22, 27,199, 70,168, 63,254, 57,246, 70, 45,111,117, +244,141,244,220,189, 37,146, 10,129,104, 64,159, 33,239,121, 38,164,229, 34, 49, 53, 7, 44,243,247,188, 23,213,105, 8, 4, 44, +131,179,251, 30, 41,174, 24,150, 69, 78,129, 1,217,249, 38,244, 30, 50,222,227,199,133,159, 13, 0,240,101, 89, 25,169, 71, 72, + 88,139, 0,143,158,181,107, 87, 97,110, 72, 98, 16,245,234, 9,112, 60, 64,143,191,142,134, 89, 62,108,228,126,113,207,122,132, +204,185, 66,233,237,178,112, 36, 26,141,204,189,126,125,204, 12, 8, 64, 27,179, 25, 34, 74,241,114,106, 42, 46,143, 31, 15,195, +150, 45, 96, 0,136,222,120, 3,237, 23, 45,194,177,128, 0,248,233,116,200,158, 48, 1,222,123,247, 66,164, 86,203,156, 41,124, +145, 72,100, 90,177, 98, 69,192,136, 17, 35,142, 16, 66,218, 61,207,154, 45, 66, 72,184,135,135,199,145, 47,190,248,194,119,218, +180,105,201,149,132,233,171, 80, 40, 54, 21, 20, 20,140,119,118, 69, 91, 68,156,102, 47, 91,182,108,204,168, 81,163, 52, 35, 70, +140,160,119,239,222,213, 0,176,106, 71,188, 91,183,110, 93, 99,197,138, 21,126, 77,154, 52,121,111,244,232,209, 34, 66,200,212, +242,180, 60, 74,165,114,236,138, 21, 43,188, 50, 50, 50,144,159,159,111, 27,100, 19, 18, 18, 32,147,201,108, 65,213,133, 66, 33, +190,248,226, 11,207,177, 99,199,142, 7, 48,190,188,244, 74, 36,146, 33,223,127,255,125,205,206,157, 59, 11,226,226,226,192, 48, + 12, 36, 18, 9,222,122,235, 45, 97, 97, 97, 97,200,204,153, 51, 71, 1,248,222,153, 50, 16, 10,133, 3,150, 47, 95, 30,222,178, +101, 75, 65, 76, 76, 12, 90,180,104,129,179,103,207,226,141, 55,222, 16,230,229,229, 85,155, 52,105,210,240,210, 86, 88,101,105, +157,228,114,121,221, 63,254,248, 35, 62, 56, 56,216, 54,176, 84,171, 86,141,139,142,142,214,198,196,196, 68,252,249,231,159,153, + 45, 90,180,120,232, 4,102,160, 92, 46,143,220,189,123,119,242,204,153, 51, 59, 46, 91,182,172, 59, 0, 52,109,218,116,251,172, + 89,179, 14,107,181,218, 58,199,143, 31,215,182,110,221, 58,193, 65,200, 0,127,127,127,110,220,184,113,202,178, 62,180,114,229, +202,108, 0, 85, 8, 33,213,139, 2,109,187,228, 31, 16, 74,169,133, 16, 18, 69, 8,185,184,107,215, 46, 52,107,214, 12,187,118, +237, 66,116,116,244, 69,123, 50,112,245,234, 85,180,105,211, 6,120, 20, 72,254, 95,177,213,226, 56, 14, 2,129, 0, 9, 9, 9, + 88,185,114, 37,230,206,157,139,176,176, 48,152,205,230, 39,200, 86, 17, 33,114, 72, 5, 99,177, 88,112,238,220, 57,172, 95,183, + 14, 83, 63,253, 20, 42,149, 10, 0, 96, 50,153,160,205,202,130, 84, 42,181,145,177,114,202,114,211,157, 59,119,198, 7, 5, 5, + 61,182,101,104,125, 45, 26,179,192,243, 60, 44, 22, 11,244,122, 61, 22, 46, 92,104,161,148,110, 42,167, 79,218, 72,209,248,241, +227, 97, 48,252, 29,135,188,126,145, 77,114,213,170, 85,209,160, 65, 3,219, 61,195, 48,212, 81,204, 31, 95,170, 11,157,221,167, + 35,166, 47, 0, 0, 4, 5, 5, 33, 34, 34, 2,254,254,254,165, 98,150,196, 69,254,109, 41,110,147, 85, 33, 27,173,210, 34,101, +223,184,159,242,229,136, 73, 11, 22, 40,164,172,240,253, 30,245, 80, 69, 35, 2,100, 30, 16,181,249, 24, 68,243,104, 33, 79,181, +247,128,253, 31,227,171,158, 90,102,212, 79,250,223,106,120,120,120,223,213,106,159, 48,194, 19,138,164,237, 67,107,134,147,135, +201, 90, 8, 4, 2, 40,220,188,240, 82,143, 15,192,178, 12,148, 26, 47, 16, 78,247, 55, 35,102, 88, 8, 88, 1,180,121, 58, 84, +173, 94,147,145, 72,101,237,203, 35, 90,106, 55,225,247, 19,251,189, 36,205,180, 36, 64, 86, 69, 10,206, 58,157, 6,136,193,120, +230,225,195, 46, 97,178, 81,219,175,124, 15,160,131, 35, 5,195, 90, 44,240, 97, 89,152, 40,197,229,241,227, 17,181,124, 57, 46, + 90,137,225,242,229,184, 56,106, 20, 60,132, 66, 72, 24, 6,212,108,126, 98, 79,223,193, 9, 8, 61,122,244, 64, 70, 70,134,239, +167,159,126, 90, 97,178, 37,147,201,214, 19, 66,186, 10,133, 66, 19, 33, 4, 12,195,216,130,128, 91,255, 55,153, 76, 34,150,101, +119,103,100,100, 56,189,229, 71, 8, 9,119,119,119, 63,114,234,212, 41, 95,133, 66,129,233,211,167, 87, 10,201, 82,169, 84,167, +135, 15, 31, 94,101,253,250,245,123, 9, 33, 93, 28, 37, 91,197, 73,214,242,229,203,179, 87,174, 92,249,163,253, 22, 33,165, 52, +153, 16,178,170, 73,147, 38,111,143, 26, 53, 74, 3, 96,204,232,209,163, 81, 30,217,146, 72, 36,237, 66, 67, 67, 31, 91,213, 74, + 36, 18, 0,128, 66,161,128,155,155, 27, 68, 34, 17, 12, 6, 3,162,162,162,136, 88, 44,110,229, 72,154, 85, 42, 85,215,158, 61, +123, 10, 78,158, 60,137,148,148, 20,184,185,185, 65,161, 80,128,227, 56,140, 28, 57, 82,180,104,209,162, 87,157, 37, 90,193,193, +193,221, 59,118,236, 40,184,118,237, 26,238,223,191, 15,131,193,128, 91,183,110, 65,173, 86, 99,208,160, 65,162,249,243,231,191, +238, 44,209, 2, 80,119,212,168, 81,169,246, 36,203, 42, 10,133,130,132,135,135,107, 61, 61, 61, 27, 1,120,232, 12,230, 59,239, +188,147, 54,111,222,188, 54, 7, 15, 30,252,216,250,230,193,131, 7, 39, 1,192, 55,223,124,115,220,219,219,187, 17, 0, 71,137, + 22, 40,165,252,155,111,190,249, 64, 44, 22, 67, 40, 20, 66, 44, 22, 63,118,137, 68, 34, 48, 12,163,178,118,231,255, 42,169, 33, +132, 52, 1,240, 53, 30,157,200,250,148, 82,122,230, 57, 33, 91,151, 8, 33, 81,209,209,209, 54,178,181,103,207, 30,116,233,210, + 5,217,217,217,184,118,237,154, 61,201,250,183,108,180,192,243, 60,132, 66, 33, 22, 44, 88, 0,147,201,132,159,126,250, 9,155, + 55,111,126,108, 12, 85,171,213, 88,188,120,177, 83,219, 92, 28,199, 97,205,154, 53,248,120,210, 36, 27,201, 42, 90, 92,195,207, +215, 23,158, 94, 94,136,141,141, 45,151,104,101,101,101,125,190, 99,199, 14,148,101, 12,191, 99,199, 14,219,255,246,198,240, 14, +205,115, 44, 11,131,193,128,151, 95,254, 59, 84,236, 59,239,188, 99,251, 95,171,213,130,101, 89,107, 89, 16, 71, 49,117, 20,232, + 33,253,251,189,174, 31,126,248,152,134,174, 52,204,210,184,200,243,168,221, 42,225,212, 97, 20,165,244, 98,145,137, 68, 52,128, + 93, 69,219,137,101,219,104,221, 78, 43, 88, 34, 32,201, 13,230,141,123,101, 72, 21, 31, 55,208,252, 84,136, 58,124,142,191,210, +101, 88,176,112, 55, 0,224,163,183, 26,163,126,167,217, 48,174,126, 5,227, 91,176,226,129, 9,134,137, 0,166, 61,217,241,248, +200,160,192, 0,252,117,247, 42, 4, 44, 11,177,155, 23,220, 60,124,193, 91,140,200, 73,187,143, 35, 91,191, 3, 0, 44, 91,179, + 9, 12,195, 64, 32, 96, 97, 48,114, 8,171, 18, 0,158,231, 35,203, 74,103,109, 66, 94,234, 21,238,223, 44, 56, 68, 67,174,185, +223, 71,184,143,231,227, 31,104, 40, 65, 88,146,146,180, 80,202,154,214, 38,228,165,235,148,158, 42, 87, 3,193, 48, 96, 8,129, + 92, 36,130, 97,203, 22, 92, 44, 34, 88, 0,112,113,212, 40, 48,191,253, 6,149, 68, 2,150, 16, 8,138, 84,208, 21,233,232, 0, + 16, 17, 17,129,101,203,150,249,142, 29, 59,182, 66,100, 75,175,215,207, 81,171,213, 29, 87,173, 90,229,219,179,103,207, 39,158, +223,189,123, 23,109,218,180, 73, 77, 73, 73,153,243, 52, 36, 75,163,209, 32, 62, 62,254,169,247,213,173, 36,235,192,129, 3, 33, + 65, 65, 65,136,138,138,242,254,232,163,143,156, 33, 91,211,236, 73,214,232,209,163,175, 0,240, 33,132, 20, 39, 42,164,232, 89, + 61, 59,178,149, 3, 96,126, 25, 43,209, 16,133, 66,129,180,180, 52, 12, 25, 50, 4,183,111,255,173, 0, 13, 8, 8,176,173,244, + 98, 99, 99,225,237,237, 13, 66,136,143, 35,121,246,246,246,246, 53, 26,141, 24, 54,108, 24,226,227,255, 54,103, 12, 12, 12,180, +150,169,151,179,229,232,235,235,235,171,211,233,208,186,117,107,232,245,122, 0, 64,223,190,125, 33, 20, 10,145,150,150, 6,161, + 80,232, 85,129,234,241,138,142,142, 46,213,181,138, 90,173, 54,185,187,187,215,114, 18,211,243,245,215, 95, 79, 92,190,124,249, + 19, 7, 91,206,158, 61,219,205,195,195,227,160,135,135, 71,184,147,152,188, 61,169, 18,137, 68,143, 17, 45,161, 80, 8,134, 97, +120,252,247,229,127, 0,172,167,224,126, 0,208,224, 57,210,108,217,200,214,158, 61,123, 80,167, 78, 29,100,101,101, 33, 38, 38, +230, 95, 39, 89,118,196, 4, 2,129,192,182, 72,150, 74,165,136,138,138,178,145, 44, 66, 8, 10, 11, 11, 33, 16, 8,172,227,181, + 67,131, 95,118,118, 54,252,253,252,160, 82,169, 80, 51, 44, 12,119,138,198, 17,235,255, 18,137, 4,132, 16, 88, 44,150,242,202, + 48, 15,143,108,173, 62,168,236,234,177,146,162, 50, 85,199, 1, 1,224,121,222, 58,230,211,202,192,244,242,242, 66,126,126,190, +163,152,207,165,148,162,209,138, 2,112, 17, 64, 52,165,116,121,145, 97,252, 99,238, 29,218, 2, 56, 2,187, 35,149,132, 16,166, +150,175,114,229,188,177, 29,135,188, 82,199, 11,186,244,251,144,170,188, 64, 52, 85,177, 96,225,110, 92,187,151, 9, 0, 88,176, +225, 60,126,158,217, 21,144,121, 32,194, 45, 3,126, 42, 65,207,146,136, 22, 1, 37, 60,165, 16,176, 76,209,222, 45, 11,150,101, +160, 77, 79,198,162,207,199, 20,145,172,205,216,117, 60, 6, 65,161,117,254,222,199, 37, 4,160,101, 55,110,111, 55,209,242,177, +189,154,203, 82, 73, 50, 52, 1,114, 72,165,197,248,163,187, 8,164, 42,131,113,237,130,228,231,118,232,151, 3, 40,119,162,144, + 50,204, 35,227,119, 66, 74, 52,100, 99,138,158,177,132, 60,242,254,202, 59, 63,166, 91, 9,139, 82,169,132,175,175, 47,230,206, +157,235, 59,121,242,228,159,224,100, 0,106, 74,233, 45, 66, 72,187,145, 35, 71, 30,201,204,204,244,141,136,136,128, 82,169,132, + 82,169, 68,106,106, 42,122,247,238,157,154,146,146, 82, 81,109,217,186,225,195,135,251,138, 68, 34,220,189,123, 23, 30, 30, 30, + 54,130, 88, 81,146,165, 86,171, 79, 31, 60,120, 48,164, 70,141, 26,184,121,243, 38,106,213,170,133,141, 27, 55,122,247,239,223, +223, 33,178, 37,147,201,122, 20, 17, 39,140, 26, 53, 74, 51,106,212,168,182, 0,218,150,247,219,163, 70,141,210,124,240,193, 7, +175,151, 69,180,132, 66, 97,188, 86,171,245,147,201,100,216,186,117, 43,148, 74, 37,228,114, 57, 2, 2, 2,160,213,106, 33,151, +203, 65, 41,133,217,108,182, 14, 22,153,142,228, 59, 61, 61, 61,149,227,184,224,189,123,247, 34, 61,253,111,223,122, 33, 33, 33, +200,201,201, 1,199,113, 25,206,150,101, 82, 82, 82, 42, 33, 36,248,175,191,254, 66, 92, 92, 28,186,116,233,130,223,126,251, 13, +141, 27, 55, 6, 0, 24,141,198,138, 56,241,227, 88,150,165,101,212, 31, 1,224, 94,153,152, 69,147,151, 83,152, 60,207,243, 86, +146,101,255,106, 79,190,202,249,205,255,138,184,217,175, 19,158,215, 68,118,233,210, 5, 90,173, 22, 74,165,242,185,178,207,177, +106,180,102,204,152,129, 49, 99,198,192,215,215, 23, 31,127,252, 49, 4, 2,129,237,178,223, 25,112, 70,124,124,125,203,124,110, + 53,136, 47,103,188, 84,185,185,185,205, 96, 24,166, 15,235, 64,193,113, 28,199,241, 60,191, 41, 39, 39,167, 76,247, 14, 86,195, +117, 71,234,194,190, 12,202, 73,235, 83, 99,150,196, 69,158, 7, 41,126,218,176, 36,141, 22,254, 62,117,248, 68, 40, 32,107, 46, +143, 20,169,236,142,216,147,172, 47,198,180, 31,242, 74, 29,119,108, 63,116, 6, 34, 83, 54, 96,204, 43,163,134,205, 32, 34, 5, +124,221,132, 65, 37, 86, 2,195,222, 76, 72, 76,130,167,187,178,136,100, 21, 93, 12,131,250,117, 30, 45,102,119, 29,143, 65, 80, +245, 58, 16,176, 44, 4, 44, 11,165, 76,130,212,148,100, 8, 4,204,205,210,126,182,158,128,244,234, 21, 30, 92,213,221, 83,136, + 12,111, 35,252,125,229, 37,127,176,145, 10, 65,254, 98,116,246,148,134,212, 19,144, 94,229, 16, 23, 27,209, 50, 89, 44, 16,189, +241,134,109,187,240,226,168, 81,136, 90,190, 28, 92,247,238, 40, 48,153, 30, 83, 21, 59, 43,214, 6,105, 37, 68,211,166, 77, 75, +205,204,204, 28, 80,193,213,227,173,172,172,172,118,159,126,250,105,106, 70, 70, 6,228,114, 57,146,147,147,159,138,100, 1,128, + 78,167, 27,180,124,249,242,212, 35, 71,142, 64,169, 84, 66,165, 82, 85,152,104, 89, 53, 89,159,127,254,121,149,224,224, 96,196, +198,198,194,205,205, 13,158,158,158,168, 95,191, 62, 78,158, 60,233, 29, 28, 28,188,183,200, 96,182,172, 52,253,190,124,249,242, +108, 0, 88,190,124,121, 54, 33,228, 40, 33,100, 41, 33,228,135, 98,215, 82, 66,200, 81,251,207,234,116,186,109,101, 97, 27,141, +198,163, 49, 49, 49, 84, 46,151,131,101, 89,152, 76, 38, 72,165, 82, 91,125,229,230,230, 66,167,123,180,205,125,225,194, 5,152, +205,230, 19,142,228, 61, 47, 47,111,207,234,213,171,205,193,193,193,168, 87,175, 30, 26, 53,106,132, 22, 45, 90, 32, 36, 36, 4, + 51,102,204, 48, 22, 20, 20,236,169, 0,209,218,181,113,227, 70,115,112,112, 48, 26, 53,106, 4,137, 68,130,250,245,235, 35, 32, + 32, 0,115,231,206, 53,230,228,228,236,169, 64, 53, 61,188,122,245, 42, 91, 6,201, 85, 3, 72,117, 18, 51,254,220,185,115,108, +243,230,205,183, 23,127,208,180,105,211,237, 74,165,210, 13,128,179,118,127,212,158, 92, 73, 36, 18,219,101,125, 95, 32, 16,252, +127,208,104,141, 7,112, 5, 64, 44,128,143,159,167,132,217, 27,190,103,102,102, 34, 38, 38, 6, 23, 46, 92, 64,243,230,205,113, +226,196, 9,160,200, 64,254, 95, 76, 31, 40,165, 16, 10,133,136,136,136,192, 7, 31,124,128,221,187,119,227,214,173, 91, 48,155, +205, 54, 34,100,181,201,116, 70,163, 37, 18,137,224,235,235, 11,179,217,108,211,102, 1,192,157,219,183, 33, 16, 8,192,243, 60, +140, 70, 99,185, 26, 45, 55, 55,183, 25, 43, 86,172,120, 47, 35, 35,195, 63, 61, 61,221,199,254, 74, 77, 77,245, 73, 78, 78,246, + 73, 76, 76,244,137,143,143,247,121,240,224,129,207,253,251,247,253,191,252,242,203,247,220,220,220,102, 56, 58, 7,213,175, 95, + 31,239,188,243,142,237, 90,178,100,137,237, 58,114,228,136,211,198,235, 44,203, 34, 98,250, 2,116, 77,167,182,107,183, 55,177, + 93,215, 62, 26, 93, 22,230, 99, 92,228,185,105,203, 69,167, 13,237, 3, 75,151, 48, 7, 39, 83, 74,151, 91,183, 11,237,157,151, + 22, 55,134, 7, 0, 68,250,201,103,127, 49,178,205,144,151,107,185,225,247, 67,231, 49,115,219,189,155, 97, 67,188, 35,106,184, +167,131, 79,143,193, 71,111, 53,198,130, 13,231, 1, 60,218, 58,228,211,174,129,102,197,130,170,130,113, 95,155, 81,226,182,131, +197,168, 63,124,239,238,237,246, 17,117,155, 48, 41, 25,249,143, 29,255,140,106,215, 27,132, 16, 4, 86,175, 3, 86, 32, 0,203, + 50, 16,176, 44, 52,106, 41, 98,254,250,139, 55,232,116,135, 75,194,108, 71,136,192, 79, 41, 94,242, 86,231,250,210, 36,113, 26, +188,253, 21, 16, 9, 31,145, 0,122,175,119,177, 25, 66, 0,212, 85, 97,104,162,167,236,112,170,126, 73, 59, 66,182, 31, 41,197, + 0,147,231,121, 40, 37, 18,232, 13, 6,232, 44, 22,180, 91,180,200,182, 93,200, 16,130, 75, 0,234, 45, 90,132, 83, 91,182, 64, + 45, 22, 3, 18,137,195,167, 66, 74,210,104,165,166,166,162,111,223,190, 79, 69,136,236, 53, 91, 99,199,142, 61, 50,119,238, 92, +223,105,211,166, 85, 26,230,199, 31,127,124,100,195,134, 13,190,213,170, 85,171,112, 99, 85, 42,149,147,120,158,215,204,159, 63, + 63,229,171,175,190, 66,113,123,178, 34,162, 35,209,104, 52, 11, 0,180, 47, 3,106,230,232,209,163, 69, 0,198, 20,105,182,234, +141, 30, 61,250, 20,165,116,106,177,242,157,190,108,217,178,190,118, 91,140, 75, 1, 44, 42, 43,141,185,185,185, 63,124,240,193, + 7,195,142, 29, 59,230, 37,149, 74, 65, 8,129, 72, 36, 66,205,154, 53,109,167,104,132, 66, 33, 40,165,248,240,195, 15, 51,210, +210,210, 28,114,239, 96, 48, 24,214,204,156, 57,179,189, 78,167, 11, 25, 58,116,168,200,221,221, 29,169,169,169,248,250,235,175, +141,107,214,172,137, 47, 40, 40,112,214,150, 10,102,179,121,205,103,159,125,214, 46, 63, 63,191,250,136, 17, 35, 68, 57, 57, 57, +208,233,116,152, 56,113,162,113,213,170, 85, 9, 58,157,206,105,135,191, 45, 90,180,184,251,224,193,131, 86,133,133,133, 89,114, +185,188,184,182,143, 40, 20,138, 38, 0,214, 57,131, 25, 21, 21, 21,251,240,225,195,230,179,103,207, 62,106, 54,155,133,103,207, +158,237,110, 37, 89,223,126,251,237, 17,169, 84,218, 17,206, 27,237,243, 18,137,228, 49, 13, 86,241,255, 5, 2,193,127, 94,163, + 69, 41, 61,130, 71, 46, 51,158, 43, 41, 78,178,174, 93,187,134,246,237, 31,117,233, 19, 39, 78,160,101,203,150, 56,113,226, 4, + 90,181,106,245,175,186,119,176, 18, 45,129, 64,128,254,253,251,163, 83,167, 78,168, 82,165,202, 99,167, 13,173,255, 59, 67, 54, + 44, 22, 11,234,214,173, 11,131,209, 8,145, 72,100,219,154, 20, 8, 4,240,246,241,193,221,187,119, 29,210,104, 49, 12,211,167, + 71,143, 30,204,245,235,215,209,175, 95, 63,172, 95,191,190,212,207, 14, 28, 56, 16,191,252,242, 11,122,244,232,193, 76,153, 50, +165, 76,247, 14, 86, 35,116, 71,242,100,157,167,203,211,232, 85, 22,166, 61, 23,121,222,196,206,181, 67, 73,109,126, 84, 9,237, +107,249, 99, 68,203,206, 73, 24,170,123,203,135,118,170, 41,192,239,135,207, 99,230,239, 15,215,112,148,110,221,122, 49,107,231, +199, 45, 1,211,166,183, 80,191,247,186, 71,219,133, 0,248,180,107, 48,109, 26, 8, 34,247,194,241, 68, 33,114,116,166, 93, 37, + 55, 60,211,250,223,126,250,238,131,230,223,183,242,246,247,113,131, 54, 71,103, 35, 91, 23,143,108, 6, 0,244, 26, 61, 7, 2, +246,209,150,162, 90, 41,133, 76,196, 98,203,218,111, 50, 76, 38,125,137,173, 43, 79,200,140,153,242, 82, 77, 55,177,194,140, 92, + 63,138, 58,222,127, 31,250, 35,213, 55, 63, 73,184, 26,186,195,235, 90, 22,222,170,161, 84,127,115, 61,123, 12,128, 37, 79, 76, +136,217,217,186,236,191,254,146,117, 89,177, 2,103, 7, 13, 66, 32,199,225,104, 64, 0, 60,132, 66,184, 73, 36, 96, 8,129,110, +231, 78,156,218,186, 21,190, 18, 9,160, 82,193, 50,107, 22, 12, 49, 49, 48,231,229,233,156, 37, 90,119,238,220,121,106,173, 83, + 73,196,104,242,228,201, 63,101,102,102, 14,168, 76,204, 65,131, 6, 29, 57,116,232,144,111, 69,113,242,242,242, 38, 0,152, 80, + 9,233,225, 9, 33, 83,139, 28,227,141, 25, 53,106,148,230,220,185,115,195, 8, 33,223, 91, 87, 19,132, 16,159,225,195,135,143, + 44, 70,178,202, 61,117, 72, 41,125,168, 84, 42,103, 77,152, 48, 97,206, 87, 95,125,165,180, 26,190, 95,190,124, 25, 22,139, 5, + 66,161, 16, 28,199, 97,248,240,225,249,153,153,153, 11, 74,243,232, 92, 2,174,133, 16, 50,112,206,156, 57,195,191,249,230,155, +215, 88,150,245,230, 56, 46, 93,167,211,237,213,233,116,203, 43,114,234,170,168, 28, 6, 79,155, 54,109,240,194,133, 11,123, 48, + 12,227, 99,177, 88, 50,242,242,242,118,232,116,186, 10,249,230, 58,117,234, 84,250,247,223,127,127, 47, 61, 61, 61, 50, 40, 40, + 40, 71,169, 84, 26,141, 70, 35, 43,147,201,212, 10,133, 34, 10,192,159, 0,110, 56,131,121,225,194,133,148,165, 75,151,198, 25, + 12,134,136,165, 75,151, 30, 87,171,213,135, 8, 33, 68, 36, 18,185,203,100,178,246, 0,142, 2,184,227, 12, 38,195, 48,188,189, +246,170,184,125,150, 88, 44,254,255, 98,163,245,220,137,189,123,135,140,140, 12, 92,191,126,221, 74,178,162, 0,160, 85,171, 86, + 23,173,100,235,194,133, 11,104,212,168,209, 69, 66,136,240,159, 62,121,104,175,209,178, 18,170, 42, 85,170,216,238,237, 47, 59, + 27, 45,135,132,227, 56,136, 68, 34, 8, 4, 2,248, 7, 4,216,126,139, 82,138,187,119,239, 66,171,213, 58, 68,180, 88,150,101, + 9, 33,232,215,175,159, 67,191,251,230,155,111,226,232,209,163, 96, 29,100,133, 44,203,162,106,213,170, 14,237,188,192, 65,123, + 42,150,101, 17, 20, 20, 84, 97, 76,123, 46,242, 60, 17,172,146,254, 47,137, 84,149, 36, 37, 26,195,199,166,233,102, 15,252,250, +228,148, 27, 41,250,173, 49,169,133, 31, 0,160,155,174,201,247,215,247,102, 95,121, 37, 60, 1,134,229,173, 64,212,143,156,183, +209,252,100, 16,133, 47, 18,248, 64, 76,223,126, 51,197, 2, 50,191,148, 68, 36,137,164,242,169,107, 87,124,251,213,240,177, 31, + 42,175,197,166, 34, 39,223, 0,150,101,236, 7, 79, 8, 4, 44,212, 10, 41,130,253,220,176,225,199,175,243,242,114,179,167,149, + 22,247,176,138, 74, 52,186, 99,147, 26, 18,145,127, 1, 34,234,245, 5, 43,253,219,201, 44, 77, 41,101,119,176,229,126,188,250, +176, 64,250,219,195,130,209, 37, 18, 45,163,241,149, 79, 59,119,222, 55,115,247,110,121,211, 53,107, 16, 59,124, 56, 2,116, 58, + 72,138,182, 18, 25, 66,160, 20,137,160, 20,137, 30,145,172,133, 11,161,179, 88,176,104,208,160, 66,131,209,216,217, 73,141,132, +168,109,219,182,149, 70,178,236,137, 17,156,180,243,114,148,108,117,234,212,233, 8,165, 84,242, 28,172,228,173,100,203,116,238, +220,185,145,199,143, 31,143,197,227,129, 69,179,143, 31, 63, 30, 59, 98,196, 8,178,114,229,202, 85, 0, 62,115,212,129,103,126, +126,254,183, 26,141, 6,109,218,180,249,108,222,188,121,158,141, 27, 55,134,143,143, 15,242,242,242,112,225,194, 5,140, 31, 63, + 94,155,155,155, 59, 47, 43, 43,235, 43, 39,211,204, 21,105,110,150, 87,102, 57, 0, 88, 93,116, 85,138,188,253,246,219,151, 99, + 99, 99, 51,189,189,189,155,137, 68,162,122,120,100, 7,148, 2, 96,149,179,132,200, 42, 99,198,140,249, 43, 54, 54, 54, 35, 48, + 48,176,121, 17,166, 6, 64, 34,128, 21, 21,192, 76, 58,127,254,124, 80,147, 38, 77, 24,161, 80, 72, 89,150,133, 80, 40,164, 2, +129,128, 22,217,213, 80, 0,216,177, 99,135, 4,128, 22, 46,249,167,251,166,205,189, 67,114,114,178,141,100,217, 57, 44,141,106, +213,170,213,197, 34,146,101,125,102,249,151,210,138,153, 51,103, 98,217,178,101, 40,207,163,121,209,233, 62, 82, 30,158, 85,163, +197,113, 28, 76, 38, 19,174, 93,187,102,243,217,101,221, 46,180,186,118,176, 88, 44,101,158, 86,231, 56,142, 51, 26,141,248,245, +215, 95, 29, 34, 91, 63,255,252, 51,244,122, 61,184,114, 24,156,189, 43,134, 6, 13, 26, 64,171,213,218, 14,251, 68, 69,253,237, + 42,207,100, 50, 57, 69, 92,173,152, 17, 17, 17,200,200,200,128,151,215,163,243, 56,193,131,254, 86,246, 88, 10,254,155,254,131, +203,210,104, 17, 71, 93, 18, 52,208,104,220, 12, 98,243,182,110,117, 36,237,250, 68,185,161,186,159, 10, 66,145, 20, 73,185, 22, + 28,188,145,139, 21, 71, 82,226,117,102,238,181, 91,105, 5, 87,203,194,145, 42,220,246, 54,126,169, 83,203, 65, 35,199, 43,242, + 13, 28,226,226, 30, 32, 61, 45, 25, 12, 97,224, 31, 24,132,144,144,170,144,137, 25,172, 95,254, 85,193,197, 83,135, 78,230,229, +106,187,148,134,245,154, 70,124,106,225, 27, 45,155,135,134,170, 8, 44,102,128, 51, 3, 22, 51,192, 23,189, 90,223,227, 31,111, +115,215,175,103,211, 41,151,180,167,119,102, 27, 75,140, 89,213,135,144,150, 26, 15,143,125,211,119,236,144,243, 38, 19, 50, 39, + 76,128,220, 98,129,180,104, 85, 2, 0,144, 72, 96,153, 53,235, 17,201, 26, 56,176, 48, 39, 59,219,233, 16, 60,222,222,222,171, + 51, 50, 50, 94, 56,207,240,158,158,158,159, 86,196, 77,196, 51, 76,147, 15,128,108, 74,169,169,132,149,181,183, 85,203, 85, 1, +220,170,222,222,222, 83, 24,134,105, 65, 41,245,100, 24, 38,139,231,249, 63,211,210,210,190,164,148,222,117, 77,169,255, 90,125, + 91, 61,195,151,183,143,157, 6,224,125, 0,121,148,210, 56, 87,201,253,227,245,212, 16,143, 78, 97,149, 26,130, 7,255,226,201, + 67, 79, 79,207, 51,251,246,237,107, 92,189,122,117,198,222,140,193,234, 43,207,186,189, 37, 16, 60,210, 71, 28, 59,118,204,210, +175, 95,191, 63, 83, 82, 82,218,148,134,169, 86,171,247, 95,185,114,229,229,156,156,156, 39, 8,149,189,167,120,235,125, 65, 65, + 1,198,142, 29,123, 32, 55, 55,183,196, 16, 60, 26,141,102,225, 87, 95,125,245, 94,175, 94,189, 24,171, 59, 10,251,203, 26, 46, +200,122,153, 76, 38,172, 91,183,142,255,230,155,111, 22,103,103,103,151,186,117, 24, 16, 16, 16,159,148,148, 20,100,117,181,224, +136, 83,209,170, 85,171, 38,199,197,197, 5,252,147,152, 47, 42,225, 42,174,221, 34,206,248,126, 34,132,144, 8, 31, 69, 95, 10, +244, 97,192,215,101, 8, 17, 91, 40,110,129, 98,191, 92, 80,248,253,133, 36,234,208,214,153, 72, 46, 31,167, 82,186,127,222,107, +192, 59,158, 85, 67,195,136,175,127, 32, 8, 24,164,166, 36,226,193,189,219,116,219, 79,223,101, 22,228,106,103, 20, 22,230,127, + 87, 22, 78,109, 66, 66,171,169, 69,155,196, 28,194, 97,205, 71,177,248, 84, 79, 48, 76, 0, 38, 33,115, 51, 46,207,220,247,122, + 25,219, 62, 86,178, 53,117,219, 54,185, 56, 60,252, 9, 71,113, 60,207,195, 16, 19,131, 69,131, 6, 85,136,100,185,196, 37, 46, +121,234, 1,173, 58,202,247,145,101, 6,144,240,111, 6, 47,254,127, 94, 71,207,109, 80,105, 66,136,194,195,195,227, 16,203,178, + 33, 86,141,140,189,205, 80, 9, 1,165,227, 82, 83, 83, 59, 82, 74, 11,203,192, 12, 85,169, 84,223,113, 28,215,212,145,160,210, + 44,203,158,205,203,203, 27, 87, 86, 80,233,103,113,234,208,203,203,235,238,131, 7, 15, 66,173,167,168,237,231,202,226,229, 0, + 0,119,238,220, 65,219,182,109, 31, 36, 39, 39, 87,253, 39, 49,159, 87, 41,197,143,214,211,107,180,158, 65, 35, 15, 16, 73,148, +131,197, 50,105, 7,222,108,137, 0, 1, 4, 66,225, 77,163, 94,119,216,160,203, 95, 91,218,118,225, 63, 41,125, 8,105, 41, 17, +139,247,139,212,106, 89, 73,229,100,206,203,211, 25,140,198, 87, 92, 36,203, 37, 46,113,137, 75, 92,242, 2, 17,224,112, 15, 15, +143,125, 66,161, 80, 98, 79, 38,139,255,111, 21,139,197,162, 79, 79, 79,239, 82,214,238,203,179,192,252,207,148,183,179, 68,107, +215,174, 93,212, 81,239,173,132,144, 78,142,196,172,178, 51,124, 43,215,119,198,191,141,249, 12,243, 94,174, 87, 92, 39, 48,219, +226,209,241,216, 25,209,209,209,211, 95,128,116, 86,102, 29, 85, 42,166,181,206, 29,197,117, 6,211,209, 54,229,100, 58, 29,106, +247,207, 3,166, 35,125,169,130,233, 44,179,141, 86,176,222,203,236, 75,207, 81, 58, 43,179,142, 42, 5,179,120,251,113, 4,215, + 89, 76, 71,250, 82, 5,210, 89,110,187,127, 94, 48,159,118, 12, 41, 35,157,165,182, 81, 71,219, 82, 41,117, 95,238,220,244,188, +106,178, 0,192,234, 79,171,184, 70,171, 52,131,120,129,179, 36,235, 89, 36,222,126,210,129,131,126, 74,254, 13,204,138, 16, 46, +103,210, 90,137,114,164,178, 49,139,149,103,101,201,244,162, 1,253, 40, 28,112, 56,234, 76,222, 43,163,222,139,229,181, 82,112, +237, 49, 43,171, 44, 75, 26, 20, 43, 51,157,207, 2,179,178,250, 82,113,204,202,104,247, 37,213,251, 51,172,163,202, 74,103,165, +244,165,103,209,230, 75,104, 63, 79,141, 91, 28,179, 50,250, 82,113,204,202,104,247,255, 4,102,101,244,165,146, 48, 43,163,221, +151, 86,247, 47,170,102,202,186, 93, 88, 68,184, 72, 9,228,243,177,237, 67, 43,241, 98, 42, 82,104,207, 66,158, 69, 32,201,202, + 38, 68,207,138,108,238,218,181,139, 22, 49,253,231, 30,179,146,235,104,122, 17,102,101,174,108,218, 85, 86, 29, 61,139,246,110, +143, 89, 89,248,197,113, 42,163,158, 74,194,124,218,244,150,146,206, 74,207,251,211,182,251,127, 10,179,146,235,168, 82,250, 82, + 49,204,118,149,188, 24,104,103,119, 63,189, 50, 49, 43,171, 47,149,144,206,167,174,167,146, 48,159, 54,189,165,164,179,210,243, + 94, 25,115,200,179,194,253,183, 52, 90, 55,162, 8,165, 76,201,109,162,200, 97,169,237,170,144, 70,235, 89,146,172,103, 53,169, + 85, 38,246,179,208,234, 60, 43,205, 91,101,105,117, 74,192, 61, 90,137,112, 71, 42, 59,157, 69,233, 35,207,179,211, 59, 87, 95, +114,245,165,255, 79,125,169,164,118, 19, 29, 29, 61,125,215,174, 93,159, 63, 79,237,188, 56,102,101, 17,162, 18,242,254, 84,125, +169,248,119, 43,163, 47,149,131, 73,158, 69,254, 43,187, 63,253,147, 26,173,210, 72, 86,105,207, 4,207, 75, 6,172,141,164,146, + 87, 38,168,100, 13,204, 51,203,119, 37,167,179,221,179,208, 16, 62, 3,169,244,116, 22,173,148, 63,127, 6,121,127, 81,202,212, +213,151, 92,125,233,185,235, 75,197,218,100,187, 74,212, 20, 85,170,230,185, 56,102,101,252,134, 61, 70,101,181,209,103,157,247, +202,236, 75,207,162,238, 95, 52,249,191, 1, 0, 27, 20,197,251,159,141,187,244, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, 0}; diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h index 2cb8745ac05..46973e29d2a 100644 --- a/source/blender/editors/include/ED_screen.h +++ b/source/blender/editors/include/ED_screen.h @@ -81,7 +81,7 @@ void ED_area_tag_refresh(ScrArea *sa); void ED_area_do_refresh(struct bContext *C, ScrArea *sa); void ED_area_headerprint(ScrArea *sa, const char *str); void ED_area_newspace(struct bContext *C, ScrArea *sa, int type); -void ED_area_prevspace(struct bContext *C); +void ED_area_prevspace(struct bContext *C, ScrArea *sa); void ED_area_swapspace(struct bContext *C, ScrArea *sa1, ScrArea *sa2); /* screens */ @@ -100,7 +100,8 @@ void ED_screen_exit(struct bContext *C, struct wmWindow *window, struct bScreen void ED_screen_animation_timer(struct bContext *C, int redraws, int sync, int enable); void ED_screen_animation_timer_update(struct bContext *C, int redraws); int ED_screen_full_newspace(struct bContext *C, ScrArea *sa, int type); -void ED_screen_full_prevspace(struct bContext *C); +void ED_screen_full_prevspace(struct bContext *C, ScrArea *sa); +void ED_screen_full_restore(struct bContext *C, ScrArea *sa); void ED_screen_new_window(struct bContext *C, struct rcti *position, int type); diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h index b9d5e98b88e..f6de5138214 100644 --- a/source/blender/editors/include/UI_icons.h +++ b/source/blender/editors/include/UI_icons.h @@ -76,7 +76,7 @@ DEF_ICON(ICON_UNLOCKED) DEF_ICON(ICON_LOCKED) DEF_ICON(ICON_UNPINNED) DEF_ICON(ICON_PINNED) -DEF_ICON(ICON_BLANK015) +DEF_ICON(ICON_SCREEN_BACK) DEF_ICON(ICON_RIGHTARROW) DEF_ICON(ICON_DOWNARROW_HLT) DEF_ICON(ICON_DOTSUP) diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index ea56e9fd31b..d9d76e963a3 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -1089,30 +1089,11 @@ void ED_area_newspace(bContext *C, ScrArea *sa, int type) } } -void ED_area_prevspace(bContext *C) +void ED_area_prevspace(bContext *C, ScrArea *sa) { - SpaceLink *sl= CTX_wm_space_data(C); - ScrArea *sa= CTX_wm_area(C); - - /* cleanup */ -#if 0 // XXX needs to be space type specific - if(sfile->spacetype==SPACE_FILE) { - if(sfile->pupmenu) { - MEM_freeN(sfile->pupmenu); - sfile->pupmenu= NULL; - } - } -#endif + SpaceLink *sl = (sa) ? sa->spacedata.first : CTX_wm_space_data(C); if(sl->next) { - -#if 0 // XXX check whether this is still needed - if (sfile->spacetype == SPACE_SCRIPT) { - SpaceScript *sc = (SpaceScript *)sfile; - if (sc->script) sc->script->flags &=~SCRIPT_FILESEL; - } -#endif - /* workaround for case of double prevspace, render window with a file browser on top of it */ if(sl->next->spacetype == SPACE_FILE && sl->next->next) @@ -1193,7 +1174,8 @@ int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco) ScrArea *sa= CTX_wm_area(C); int xco= 8; - xco= ED_area_header_switchbutton(C, block, yco); + if (!sa->full) + xco= ED_area_header_switchbutton(C, block, yco); uiBlockSetEmboss(block, UI_EMBOSSN); diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 1f6ce4fed73..6504ea4c2d5 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1312,7 +1312,13 @@ void ED_screen_delete(bContext *C, bScreen *sc) wmWindow *win= CTX_wm_window(C); bScreen *newsc; int delete= 1; - + + /* don't allow deleting temp fullscreens for now */ + if (sc->full == SCREENFULL) { + return; + } + + /* screen can only be in use by one window at a time, so as long as we are able to find a screen that is unused, we can safely assume ours is not in use anywhere an delete it */ @@ -1536,17 +1542,42 @@ int ED_screen_full_newspace(bContext *C, ScrArea *sa, int type) return 1; } -void ED_screen_full_prevspace(bContext *C) +void ED_screen_full_prevspace(bContext *C, ScrArea *sa) { wmWindow *win= CTX_wm_window(C); - ScrArea *sa= CTX_wm_area(C); - - ED_area_prevspace(C); + + ED_area_prevspace(C, sa); if(sa->full) ed_screen_fullarea(C, win, sa); } +/* restore a screen / area back to default operation, after temp fullscreen modes */ +void ED_screen_full_restore(bContext *C, ScrArea *sa) +{ + wmWindow *win= CTX_wm_window(C); + SpaceLink *sl = sa->spacedata.first; + + /* if fullscreen area has a secondary space (such as as file browser or fullscreen render + * overlaid on top of a existing setup) then return to the previous space */ + + if (sl->next) { + /* specific checks for space types */ + if (sl->spacetype == SPACE_IMAGE) { + SpaceImage *sima= sa->spacedata.first; + if (sima->flag & SI_PREVSPACE) + sima->flag &= ~SI_PREVSPACE; + if (sima->flag & SI_FULLWINDOW) + sima->flag &= ~SI_FULLWINDOW; + } + ED_screen_full_prevspace(C, sa); + } + /* otherwise just tile the area again */ + else { + ed_screen_fullarea(C, win, sa); + } +} + /* redraws: uses defines from stime->redraws * enable: 1 - forward on, -1 - backwards on, 0 - off */ diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 55e2ec6b540..b108e1bbd41 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1544,10 +1544,10 @@ static int screen_set_exec(bContext *C, wmOperator *op) int tot= BLI_countlist(&CTX_data_main(C)->screen); int delta= RNA_int_get(op->ptr, "delta"); - /* this screen is 'fake', solve later XXX */ + /* return to previous state before switching screens */ if(sa && sa->full) - return OPERATOR_CANCELLED; - + ED_screen_full_restore(C, sa); + if(delta==1) { while(tot--) { screen= screen->id.next; @@ -3412,10 +3412,10 @@ static int render_view_cancel_exec(bContext *C, wmOperator *unused) if(sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; - ED_screen_full_prevspace(C); + ED_screen_full_prevspace(C, sa); } else - ED_area_prevspace(C); + ED_area_prevspace(C, sa); return OPERATOR_FINISHED; } @@ -3459,7 +3459,7 @@ static int render_view_show_invoke(bContext *C, wmOperator *unused, wmEvent *eve if(sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; - ED_screen_full_prevspace(C); + ED_screen_full_prevspace(C, sa); } else if(sima->next) { ED_area_newspace(C, sa, sima->next->spacetype); @@ -3486,6 +3486,40 @@ static void SCREEN_OT_render_view_show(struct wmOperatorType *ot) ot->poll= ED_operator_screenactive; } +/* *********************** generic fullscreen 'back' button *************** */ + + +static int fullscreen_back_exec(bContext *C, wmOperator *op) +{ + bScreen *screen = CTX_wm_screen(C); + ScrArea *sa=NULL; + + /* search current screen for 'fullscreen' areas */ + for (sa=screen->areabase.first; sa; sa=sa->next) { + if (sa->full) break; + } + if (!sa) { + BKE_report(op->reports, RPT_ERROR, "No fullscreen areas were found."); + return OPERATOR_CANCELLED; + } + + ED_screen_full_restore(C, sa); + + return OPERATOR_FINISHED; +} + +static void SCREEN_OT_back_to_previous(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Back to Previous Screen"; + ot->description= "Revert back to the original screen layout, before fullscreen area overlay."; + ot->idname= "SCREEN_OT_back_to_previous"; + + /* api callbacks */ + ot->exec= fullscreen_back_exec; + ot->poll= ED_operator_screenactive; +} + /* *********** show user pref window ****** */ static int userpref_show_invoke(bContext *C, wmOperator *unused, wmEvent *event) @@ -3672,6 +3706,7 @@ void ED_operatortypes_screen(void) WM_operatortype_append(SCREEN_OT_header_toolbox); WM_operatortype_append(SCREEN_OT_screen_set); WM_operatortype_append(SCREEN_OT_screen_full_area); + WM_operatortype_append(SCREEN_OT_back_to_previous); WM_operatortype_append(SCREEN_OT_screenshot); WM_operatortype_append(SCREEN_OT_screencast); WM_operatortype_append(SCREEN_OT_userpref_show); diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c index 79a5d3d5cd1..57ab63c952d 100644 --- a/source/blender/makesrna/intern/rna_screen.c +++ b/source/blender/makesrna/intern/rna_screen.c @@ -78,6 +78,12 @@ static int rna_Screen_animation_playing_get(PointerRNA *ptr) return (sc->animtimer != NULL); } +static int rna_Screen_fullscreen_get(PointerRNA *ptr) +{ + bScreen *sc= (bScreen*)ptr->data; + return (sc->full == SCREENFULL); +} + static void rna_Area_type_set(PointerRNA *ptr, int value) { ScrArea *sa= (ScrArea*)ptr->data; @@ -185,6 +191,11 @@ static void rna_def_screen(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_boolean_funcs(prop, "rna_Screen_animation_playing_get", NULL); RNA_def_property_ui_text(prop, "Animation Playing", "Animation playback is active."); + + prop= RNA_def_property(srna, "fullscreen", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Screen_fullscreen_get", NULL); + RNA_def_property_ui_text(prop, "Fullscreen", "An area is maximised, filling this screen."); } void RNA_def_screen(BlenderRNA *brna) diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 3a74dbe0b16..bba38705e15 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1029,9 +1029,9 @@ static int wm_handler_fileselect_call(bContext *C, ListBase *handlers, wmEventHa char *path= RNA_string_get_alloc(handler->op->ptr, "path", NULL, 0); if(screen != handler->filescreen) - ED_screen_full_prevspace(C); + ED_screen_full_prevspace(C, CTX_wm_area(C)); else - ED_area_prevspace(C); + ED_area_prevspace(C, CTX_wm_area(C)); /* remlink now, for load file case */ BLI_remlink(handlers, handler); -- cgit v1.2.3 From 915f35240014cfdafb6d247acb5e032d7c1204bf Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 8 Dec 2009 08:44:18 +0000 Subject: ImBuf: Fix bug in clipping --- source/blender/imbuf/intern/rectop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/imbuf/intern/rectop.c b/source/blender/imbuf/intern/rectop.c index 56714c3b481..080340750e4 100644 --- a/source/blender/imbuf/intern/rectop.c +++ b/source/blender/imbuf/intern/rectop.c @@ -277,7 +277,7 @@ void IMB_rectclip(struct ImBuf *dbuf, struct ImBuf *sbuf, int *destx, } if (*srcx < 0) { *destx -= *srcx; - *width += *destx; + *width += *srcx; *srcx = 0; } if (*desty < 0) { @@ -287,7 +287,7 @@ void IMB_rectclip(struct ImBuf *dbuf, struct ImBuf *sbuf, int *destx, } if (*srcy < 0) { *desty -= *srcy; - *height += *desty; + *height += *srcy; *srcy = 0; } -- cgit v1.2.3 From c146ce977cea962e82f9b542bdf4d342d6ec0d2a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 8 Dec 2009 09:07:20 +0000 Subject: Quick ShapeKey Editor fix (i.e. submode of DopeSheet): Switching to ShapeKey Editor mode now shows the sliders again --- source/blender/makesrna/intern/rna_space.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index cc44a1b6c14..21258458a57 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -464,6 +464,19 @@ static void rna_SpaceDopeSheetEditor_action_update(bContext *C, PointerRNA *ptr) } } +static void rna_SpaceDopeSheetEditor_mode_update(bContext *C, PointerRNA *ptr) +{ + SpaceAction *saction= (SpaceAction*)(ptr->data); + + /* special exception for ShapeKey Editor mode: + * enable 'show sliders' by default, since one of the main + * points of the ShapeKey Editor is to provide a one-stop shop + * for controlling the shapekeys, whose main control is the value + */ + if (saction->mode == SACTCONT_SHAPEKEY) + saction->flag |= SACTION_SLIDERS; +} + static int rna_SpaceGraphEditor_has_ghost_curves_get(PointerRNA *ptr) { SpaceIpo *sipo= (SpaceIpo*)(ptr->data); @@ -1251,7 +1264,7 @@ static void rna_def_space_dopesheet(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "mode"); RNA_def_property_enum_items(prop, mode_items); RNA_def_property_ui_text(prop, "Mode", "Editing context being displayed."); - RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, "rna_SpaceDopeSheetEditor_mode_update"); /* display */ prop= RNA_def_property(srna, "show_seconds", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From fccceaa87fb1e883c5d29113dc8b7d33786c8c1e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Dec 2009 09:40:30 +0000 Subject: - pyrna support for (value in array), currently only 1 dimensional arrays. - use python malloc's in bpy_array.c - automatically blending bone locations is disabled if the target bone has locked location - neck had incorrect roll --- source/blender/python/intern/bpy_array.c | 97 ++++++++++++++++++++++++++++++-- source/blender/python/intern/bpy_rna.c | 35 +++++++----- source/blender/python/intern/bpy_rna.h | 1 + 3 files changed, 115 insertions(+), 18 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_array.c b/source/blender/python/intern/bpy_array.c index f11c95e7ed5..5f228836b42 100644 --- a/source/blender/python/intern/bpy_array.c +++ b/source/blender/python/intern/bpy_array.c @@ -32,8 +32,6 @@ #include "BKE_global.h" -#include "MEM_guardedalloc.h" - #define MAX_ARRAY_DIMENSION 10 typedef void (*ItemConvertFunc)(PyObject *, char *); @@ -258,7 +256,7 @@ static int py_to_array(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, char *p if (totitem) { if (!param_data || RNA_property_flag(prop) & PROP_DYNAMIC) - data= MEM_callocN(item_size * totitem, "pyrna primitive type array"); + data= PyMem_MALLOC(item_size * totitem); else data= param_data; @@ -273,7 +271,7 @@ static int py_to_array(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, char *p else { /* NULL can only pass through in case RNA property arraylength is 0 (impossible?) */ rna_set_array(ptr, prop, data); - MEM_freeN(data); + PyMem_FREE(data); } } @@ -513,3 +511,94 @@ PyObject *pyrna_py_from_array(PointerRNA *ptr, PropertyRNA *prop) return pyrna_prop_CreatePyObject(ptr, prop); } + +/* TODO, multi-dimensional arrays */ +int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value) +{ + int len= RNA_property_array_length(ptr, prop); + int type; + int i; + + if(len==0) /* possible with dynamic arrays */ + return 0; + + if (RNA_property_array_dimension(ptr, prop, NULL) > 1) { + PyErr_SetString(PyExc_TypeError, "PropertyRNA - multi dimensional arrays not supported yet"); + return -1; + } + + type= RNA_property_type(prop); + + switch (type) { + case PROP_FLOAT: + { + float value_f= PyFloat_AsDouble(value); + if(value_f==-1 && PyErr_Occurred()) { + PyErr_Clear(); + return 0; + } + else { + float tmp[32]; + float *tmp_arr; + + if(len * sizeof(float) > sizeof(tmp)) { + tmp_arr= PyMem_MALLOC(len * sizeof(float)); + } + else { + tmp_arr= tmp; + } + + RNA_property_float_get_array(ptr, prop, tmp_arr); + + for(i=0; i sizeof(tmp)) { + tmp_arr= PyMem_MALLOC(len * sizeof(int)); + } + else { + tmp_arr= tmp; + } + + if(type==PROP_BOOLEAN) + RNA_property_boolean_get_array(ptr, prop, tmp_arr); + else + RNA_property_int_get_array(ptr, prop, tmp_arr); + + for(i=0; iprop) == PROP_COLLECTION) { + /* key in dict style check */ + char *keyname = _PyUnicode_AsString(value); - if (RNA_property_type(self->prop) != PROP_COLLECTION) { - PyErr_SetString(PyExc_TypeError, "PropertyRNA - key in prop, is only valid for collection types"); - return -1; - } + if(keyname==NULL) { + PyErr_SetString(PyExc_TypeError, "PropertyRNA - key in prop, key must be a string type"); + return -1; + } - if (RNA_property_collection_lookup_string(&self->ptr, self->prop, keyname, &newptr)) - return 1; + if (RNA_property_collection_lookup_string(&self->ptr, self->prop, keyname, &newptr)) + return 1; + } + else if (RNA_property_array_check(&self->ptr, self->prop)) { + /* value in list style check */ + return pyrna_array_contains_py(&self->ptr, self->prop, value); + } + else { + PyErr_SetString(PyExc_TypeError, "PropertyRNA - type is not an array or a collection"); + return -1; + } return 0; } @@ -2264,6 +2271,9 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) } } + if(array) + PyMem_Free(array); + if(PyErr_Occurred()) { /* Maybe we could make our own error */ PyErr_Print(); @@ -2275,9 +2285,6 @@ static PyObject *foreach_getset(BPy_PropertyRNA *self, PyObject *args, int set) return NULL; } - if(array) - PyMem_Free(array); - Py_RETURN_NONE; } diff --git a/source/blender/python/intern/bpy_rna.h b/source/blender/python/intern/bpy_rna.h index 0e40bf7258c..37f6af36726 100644 --- a/source/blender/python/intern/bpy_rna.h +++ b/source/blender/python/intern/bpy_rna.h @@ -103,5 +103,6 @@ int pyrna_py_to_array_index(PointerRNA *ptr, PropertyRNA *prop, int arraydim, in PyObject *pyrna_py_from_array(PointerRNA *ptr, PropertyRNA *prop); PyObject *pyrna_py_from_array_index(BPy_PropertyRNA *self, int index); PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop); +int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value); #endif -- cgit v1.2.3 From 0391b1ab780b34a149d3c4181d0fe676ef55199e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Dec 2009 10:36:46 +0000 Subject: compile python driver expressions for faster re-evaluation. approx 15-25x speedup --- source/blender/blenkernel/intern/fcurve.c | 7 ++++++- source/blender/blenloader/intern/writefile.c | 6 ++++++ source/blender/makesdna/DNA_anim_types.h | 5 ++++- source/blender/makesrna/intern/rna_fcurve.c | 9 ++++++++- source/blender/python/BPY_extern.h | 2 +- source/blender/python/intern/bpy_interface.c | 18 +++++++++++++++--- 6 files changed, 40 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index b3a6b773cf3..04fcd43b883 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -758,7 +758,12 @@ void fcurve_free_driver(FCurve *fcu) dtarn= dtar->next; driver_free_target(driver, dtar); } - + +#ifndef DISABLE_PYTHON + if(driver->expr_comp) + BPY_DECREF(driver->expr_comp); +#endif + /* free driver itself, then set F-Curve's point to this to NULL (as the curve may still be used) */ MEM_freeN(driver); fcu->driver= NULL; diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 2bfc726b7c7..3d654f5ebc9 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -934,8 +934,14 @@ static void write_fcurves(WriteData *wd, ListBase *fcurves) ChannelDriver *driver= fcu->driver; DriverTarget *dtar; + /* don't save compiled python bytecode */ + void *expr_comp= driver->expr_comp; + driver->expr_comp= NULL; + writestruct(wd, DATA, "ChannelDriver", 1, driver); + driver->expr_comp= expr_comp; /* restore */ + /* targets */ for (dtar= driver->targets.first; dtar; dtar= dtar->next) { writestruct(wd, DATA, "DriverTarget", 1, dtar); diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 09f77d98f4b..c5d0231ce62 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -291,7 +291,8 @@ typedef struct ChannelDriver { /* python expression to execute (may call functions defined in an accessory file) * which relates the target 'variables' in some way to yield a single usable value */ - char expression[256]; + char expression[256]; + void *expr_comp; /* PyObject - compiled expression, dont save this */ float curval; /* result of previous evaluation, for subtraction from result under certain circumstances */ float influence; /* influence of driver on result */ // XXX to be implemented... this is like the constraint influence setting @@ -322,6 +323,8 @@ typedef enum eDriver_Flags { /* driver does replace value, but overrides (for layering of animation over driver) */ // TODO: this needs to be implemented at some stage or left out... DRIVER_FLAG_LAYERING = (1<<2), + + DRIVER_FLAG_RECOMPILE = (1<<3), /* use when the expression needs to be recompiled */ } eDriver_Flags; /* F-Curves -------------------------------------- */ diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index bf8b74d08ee..e126175a020 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -105,6 +105,13 @@ static void rna_ChannelDriver_update_data(bContext *C, PointerRNA *ptr) WM_event_add_notifier(C, NC_SCENE|ND_FRAME, CTX_data_scene(C)); } +static void rna_ChannelDriver_update_expr(bContext *C, PointerRNA *ptr) +{ + ChannelDriver *driver= ptr->data; + driver->flag |= DRIVER_FLAG_RECOMPILE; + rna_ChannelDriver_update_data(C, ptr); +} + static void rna_DriverTarget_update_data(bContext *C, PointerRNA *ptr) { PointerRNA driverptr; @@ -807,7 +814,7 @@ static void rna_def_channeldriver(BlenderRNA *brna) /* String values */ prop= RNA_def_property(srna, "expression", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Expression", "Expression to use for Scripted Expression."); - RNA_def_property_update(prop, 0, "rna_ChannelDriver_update_data"); + RNA_def_property_update(prop, 0, "rna_ChannelDriver_update_expr"); /* Collections */ prop= RNA_def_property(srna, "targets", PROP_COLLECTION, PROP_NONE); diff --git a/source/blender/python/BPY_extern.h b/source/blender/python/BPY_extern.h index a055060ed07..6a94443dd8b 100644 --- a/source/blender/python/BPY_extern.h +++ b/source/blender/python/BPY_extern.h @@ -134,7 +134,7 @@ extern "C" { // void BPY_scripts_clear_pyobjects( void ); // // void error_pyscript( void ); -// void BPY_DECREF(void *pyob_ptr); /* Py_DECREF() */ + void BPY_DECREF(void *pyob_ptr); /* Py_DECREF() */ void BPY_set_context(struct bContext *C); /* void BPY_Err_Handle(struct Text *text); */ /* int BPY_spacetext_is_pywin(struct SpaceText *st); */ diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index d4d0cbf602f..af1d522600a 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -549,7 +549,9 @@ int BPY_run_script_space_listener(bContext *C, SpaceScript * sc) void BPY_DECREF(void *pyob_ptr) { + PyGILState_STATE gilstate = PyGILState_Ensure(); Py_DECREF((PyObject *)pyob_ptr); + PyGILState_Release(gilstate); } #if 0 @@ -721,7 +723,7 @@ static float pydriver_error(ChannelDriver *driver) float BPY_pydriver_eval (ChannelDriver *driver) { PyObject *driver_vars=NULL; - PyObject *retval; + PyObject *retval= NULL; PyGILState_STATE gilstate; DriverTarget *dtar; @@ -772,10 +774,20 @@ float BPY_pydriver_eval (ChannelDriver *driver) BPy_errors_to_report(NULL); // TODO - reports } } - + +#if 0 // slow /* execute expression to get a value */ retval = PyRun_String(expr, Py_eval_input, bpy_pydriver_Dict, driver_vars); - +#else + if(driver->flag & DRIVER_FLAG_RECOMPILE || driver->expr_comp==NULL) { + Py_XDECREF(driver->expr_comp); + driver->expr_comp= Py_CompileString(expr, "", Py_eval_input); + driver->flag &= ~DRIVER_FLAG_RECOMPILE; + } + if(driver->expr_comp) + retval= PyEval_EvalCode(driver->expr_comp, bpy_pydriver_Dict, driver_vars); +#endif + /* decref the driver vars first... */ Py_DECREF(driver_vars); -- cgit v1.2.3 From 88b0e1c52ad9df86ea3ca7c897672babfe21be0b Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Tue, 8 Dec 2009 12:16:34 +0000 Subject: OSX: print warning if Blender application is located in a path Python lib can't handle (bug # 20258) OSX allow file/directory names to contain ':' (displayed as '/' in Finder), and current Python lib (3.1.1) has trouble with those when importing modules. Added warning message to help user understand why Blender start fails in this case. --- source/blender/python/intern/bpy_interface.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index af1d522600a..d1ef7401494 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -280,6 +280,14 @@ void BPY_start_python_path(void) /* set the environment path */ printf("found bundled python: %s\n", py_path_bundle); +#ifdef __APPLE__ + /* OSX allow file/directory names to contain : character (represented as / in the Finder) + but current Python lib (release 3.1.1) doesn't handle these correctly */ + if(strchr(py_path_bundle, ':')) + printf("Warning : Blender application is located in a path containing : or / chars\ + \nThis may make python import function fail\n"); +#endif + #if 0 BLI_setenv("PYTHONHOME", py_path_bundle); BLI_setenv("PYTHONPATH", py_path_bundle); -- cgit v1.2.3 From 0304b623f559a515e844cdb12bec6a27e01251c2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Dec 2009 12:59:21 +0000 Subject: RNA: added common sequencer properties notifiers/updates. Still some updates missing. --- source/blender/makesrna/intern/rna_sequence.c | 185 ++++++++++++++++---------- 1 file changed, 115 insertions(+), 70 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index cb9863d7ea5..4f9d2a3d6ca 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -42,7 +42,7 @@ #ifdef RNA_RUNTIME -static void rna_SequenceEditor_start_frame_set(PointerRNA *ptr, int value) +static void rna_Sequence_start_frame_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; Scene *sce= (Scene*)ptr->id.data; @@ -57,7 +57,7 @@ static void rna_SequenceEditor_start_frame_set(PointerRNA *ptr, int value) sort_seq(sce); } -static void rna_SequenceEditor_length_set(PointerRNA *ptr, int value) +static void rna_Sequence_length_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; Scene *sce= (Scene*)ptr->id.data; @@ -72,13 +72,13 @@ static void rna_SequenceEditor_length_set(PointerRNA *ptr, int value) sort_seq(sce); } -static int rna_SequenceEditor_length_get(PointerRNA *ptr) +static int rna_Sequence_length_get(PointerRNA *ptr) { Sequence *seq= (Sequence*)ptr->data; return seq_tx_get_final_right(seq, 0)-seq_tx_get_final_left(seq, 0); } -static void rna_SequenceEditor_channel_set(PointerRNA *ptr, int value) +static void rna_Sequence_channel_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; Scene *sce= (Scene*)ptr->id.data; @@ -93,7 +93,7 @@ static void rna_SequenceEditor_channel_set(PointerRNA *ptr, int value) } /* properties that need to allocate structs */ -static void rna_SequenceEditor_use_color_balance_set(PointerRNA *ptr, int value) +static void rna_Sequence_use_color_balance_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; int c; @@ -113,7 +113,7 @@ static void rna_SequenceEditor_use_color_balance_set(PointerRNA *ptr, int value) } } -static void rna_SequenceEditor_use_proxy_set(PointerRNA *ptr, int value) +static void rna_Sequence_use_proxy_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; if(value) { @@ -126,7 +126,7 @@ static void rna_SequenceEditor_use_proxy_set(PointerRNA *ptr, int value) } } -static void rna_SequenceEditor_use_translation_set(PointerRNA *ptr, int value) +static void rna_Sequence_use_translation_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; if(value) { @@ -139,7 +139,7 @@ static void rna_SequenceEditor_use_translation_set(PointerRNA *ptr, int value) } } -static void rna_SequenceEditor_use_crop_set(PointerRNA *ptr, int value) +static void rna_Sequence_use_crop_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; if(value) { @@ -263,6 +263,19 @@ static void rna_SequenceElement_filename_set(PointerRNA *ptr, const char *value) BLI_strncpy(elem->name, name, sizeof(elem->name)); } +static void rna_Sequence_update(bContext *C, PointerRNA *ptr) +{ + Scene *scene= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(scene, FALSE); + + free_imbuf_seq(scene, &ed->seqbase, FALSE); +} + +static void rna_Sequence_sound_update(bContext *C, PointerRNA *ptr) +{ + /* TODO */ +} + #else static void rna_def_strip_element(BlenderRNA *brna) @@ -278,6 +291,7 @@ static void rna_def_strip_element(BlenderRNA *brna) RNA_def_property_string_sdna(prop, NULL, "name"); RNA_def_property_ui_text(prop, "Filename", ""); RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SequenceElement_filename_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_strip_crop(BlenderRNA *brna) @@ -292,18 +306,22 @@ static void rna_def_strip_crop(BlenderRNA *brna) prop= RNA_def_property(srna, "top", PROP_INT, PROP_UNSIGNED); RNA_def_property_ui_text(prop, "Top", ""); RNA_def_property_ui_range(prop, 0, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "bottom", PROP_INT, PROP_UNSIGNED); RNA_def_property_ui_text(prop, "Bottom", ""); RNA_def_property_ui_range(prop, 0, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "left", PROP_INT, PROP_UNSIGNED); RNA_def_property_ui_text(prop, "Left", ""); RNA_def_property_ui_range(prop, 0, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "right", PROP_INT, PROP_UNSIGNED); RNA_def_property_ui_text(prop, "Right", ""); RNA_def_property_ui_range(prop, 0, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_strip_transform(BlenderRNA *brna) @@ -319,11 +337,13 @@ static void rna_def_strip_transform(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "xofs"); RNA_def_property_ui_text(prop, "Offset Y", ""); RNA_def_property_ui_range(prop, -4096, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "offset_y", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "yofs"); RNA_def_property_ui_text(prop, "Offset Y", ""); RNA_def_property_ui_range(prop, -4096, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_strip_proxy(BlenderRNA *brna) @@ -338,10 +358,12 @@ static void rna_def_strip_proxy(BlenderRNA *brna) prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "dir"); RNA_def_property_ui_text(prop, "Directory", "Location to story the proxy file"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "file", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "file"); RNA_def_property_ui_text(prop, "File", "Proxy file name"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_strip_color_balance(BlenderRNA *brna) @@ -355,33 +377,41 @@ static void rna_def_strip_color_balance(BlenderRNA *brna) prop= RNA_def_property(srna, "lift", PROP_FLOAT, PROP_COLOR); RNA_def_property_ui_text(prop, "Lift", "Color balance lift (shadows)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "gamma", PROP_FLOAT, PROP_COLOR); RNA_def_property_ui_text(prop, "Gamma", "Color balance gamma (midtones)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "gain", PROP_FLOAT, PROP_COLOR); RNA_def_property_ui_text(prop, "Gain", "Color balance gain (highlights)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "inverse_gain", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAIN); RNA_def_property_ui_text(prop, "Inverse Gain", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "inverse_gamma", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAMMA); RNA_def_property_ui_text(prop, "Inverse Gamma", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "inverse_lift", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_LIFT); RNA_def_property_ui_text(prop, "Inverse Lift", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); /* not yet used prop= RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Exposure", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "saturation", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_ui_text(prop, "Saturation", "");*/ + RNA_def_property_ui_text(prop, "Saturation", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); */ } static void rna_def_sequence(BlenderRNA *brna) @@ -434,11 +464,13 @@ static void rna_def_sequence(BlenderRNA *brna) RNA_def_property_string_maxlength(prop, sizeof(((Sequence*)NULL)->name)-2); RNA_def_property_ui_text(prop, "Name", ""); RNA_def_struct_name_property(srna, prop); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_enum_items(prop, seq_type_items); RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); //prop= RNA_def_property(srna, "ipo", PROP_POINTER, PROP_NONE); //RNA_def_property_ui_text(prop, "Ipo Curves", "Ipo curves used by this sequence."); @@ -448,28 +480,32 @@ static void rna_def_sequence(BlenderRNA *brna) prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SELECT); RNA_def_property_ui_text(prop, "Selected", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); prop= RNA_def_property(srna, "left_handle_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LEFTSEL); RNA_def_property_ui_text(prop, "Left Handle Selected", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); prop= RNA_def_property(srna, "right_handle_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_RIGHTSEL); RNA_def_property_ui_text(prop, "Right Handle Selected", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); prop= RNA_def_property(srna, "mute", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MUTE); RNA_def_property_ui_text(prop, "Mute", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "frame_locked", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_IPO_FRAME_LOCKED); RNA_def_property_ui_text(prop, "Frame Locked", "Lock the animation curve to the global frame counter."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LOCK); RNA_def_property_ui_text(prop, "Lock", "Lock strip so that it can't be transformed."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); /* strip positioning */ @@ -477,76 +513,76 @@ static void rna_def_sequence(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "len"); RNA_def_property_range(prop, 1, MAXFRAME); RNA_def_property_ui_text(prop, "Length", "The length of the contents of this strip before the handles are applied"); - RNA_def_property_int_funcs(prop, "rna_SequenceEditor_length_get", "rna_SequenceEditor_length_set",NULL); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_int_funcs(prop, "rna_Sequence_length_get", "rna_Sequence_length_set",NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "start_frame", PROP_INT, PROP_TIME); RNA_def_property_int_sdna(prop, NULL, "start"); RNA_def_property_ui_text(prop, "Start Frame", ""); - RNA_def_property_int_funcs(prop, NULL, "rna_SequenceEditor_start_frame_set",NULL); // overlap tests and calc_seq_disp - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_start_frame_set",NULL); // overlap tests and calc_seq_disp + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "start_offset", PROP_INT, PROP_TIME); RNA_def_property_int_sdna(prop, NULL, "startofs"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests RNA_def_property_ui_text(prop, "Start Offset", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "end_offset", PROP_INT, PROP_TIME); RNA_def_property_int_sdna(prop, NULL, "endofs"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests RNA_def_property_ui_text(prop, "End offset", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "start_still", PROP_INT, PROP_TIME); RNA_def_property_int_sdna(prop, NULL, "startstill"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests RNA_def_property_range(prop, 0, MAXFRAME); RNA_def_property_ui_text(prop, "Start Still", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "end_still", PROP_INT, PROP_TIME); RNA_def_property_int_sdna(prop, NULL, "endstill"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests RNA_def_property_range(prop, 0, MAXFRAME); RNA_def_property_ui_text(prop, "End Still", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "channel", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "machine"); RNA_def_property_range(prop, 0, MAXSEQ-1); RNA_def_property_ui_text(prop, "Channel", "Y position of the sequence strip."); - RNA_def_property_int_funcs(prop, NULL, "rna_SequenceEditor_channel_set",NULL); // overlap test - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_channel_set",NULL); // overlap test + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); /* blending */ prop= RNA_def_property(srna, "blend_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, blend_mode_items); RNA_def_property_ui_text(prop, "Blend Mode", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "blend_opacity", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.0f, 100.0f); RNA_def_property_ui_text(prop, "Blend Opacity", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "effect_fader", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_float_sdna(prop, NULL, "effect_fader"); RNA_def_property_ui_text(prop, "Effect fader position", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "use_effect_default_fade", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_EFFECT_DEFAULT_FADE); RNA_def_property_ui_text(prop, "Use Default Fade", "Fade effect using the builtin default (usually make transition as long as effect strip)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "speed_fader", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "speed_fader"); RNA_def_property_ui_text(prop, "Speed effect fader position", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); /* functions */ func= RNA_def_function(srna, "getStripElem", "give_stripelem"); @@ -598,66 +634,63 @@ static void rna_def_filter_video(StructRNA *srna) prop= RNA_def_property(srna, "flip_x", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FLIPX); RNA_def_property_ui_text(prop, "Flip X", "Flip on the X axis."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "flip_y", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FLIPY); RNA_def_property_ui_text(prop, "Flip Y", "Flip on the Y axis."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "convert_float", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MAKE_FLOAT); RNA_def_property_ui_text(prop, "Convert Float", "Convert input to float data."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "reverse_frames", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_REVERSE_FRAMES); RNA_def_property_ui_text(prop, "Flip Time", "Reverse frame order."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "multiply_colors", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "mul"); RNA_def_property_range(prop, 0.0f, 20.0f); RNA_def_property_ui_text(prop, "Multiply Colors", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "strobe", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 1.0f, 30.0f); RNA_def_property_ui_text(prop, "Strobe", "Only display every nth frame."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "use_color_balance", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_COLOR_BALANCE); RNA_def_property_ui_text(prop, "Use Color Balance", "(3-Way color correction) on input."); - RNA_def_property_boolean_funcs(prop, NULL, "rna_SequenceEditor_use_color_balance_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_color_balance_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "color_balance", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "strip->color_balance"); RNA_def_property_ui_text(prop, "Color Balance", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); prop= RNA_def_property(srna, "use_translation", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_TRANSFORM); RNA_def_property_ui_text(prop, "Use Translation", "Translate image before processing."); - RNA_def_property_boolean_funcs(prop, NULL, "rna_SequenceEditor_use_translation_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_translation_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "transform", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "strip->transform"); RNA_def_property_ui_text(prop, "Transform", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); prop= RNA_def_property(srna, "use_crop", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_CROP); RNA_def_property_ui_text(prop, "Use Crop", "Crop image before processing."); - RNA_def_property_boolean_funcs(prop, NULL, "rna_SequenceEditor_use_crop_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_crop_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "crop", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "strip->crop"); RNA_def_property_ui_text(prop, "Crop", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); } static void rna_def_proxy(StructRNA *srna) @@ -667,7 +700,7 @@ static void rna_def_proxy(StructRNA *srna) prop= RNA_def_property(srna, "use_proxy", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_PROXY); RNA_def_property_ui_text(prop, "Use Proxy", "Use a preview proxy for this strip."); - RNA_def_property_boolean_funcs(prop, NULL, "rna_SequenceEditor_use_proxy_set"); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_proxy_set"); prop= RNA_def_property(srna, "proxy", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "strip->proxy"); @@ -676,6 +709,7 @@ static void rna_def_proxy(StructRNA *srna) prop= RNA_def_property(srna, "proxy_custom_directory", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_PROXY_CUSTOM_DIR); RNA_def_property_ui_text(prop, "Proxy Custom Directory", "Use a custom directory to store data."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_input(StructRNA *srna) @@ -686,13 +720,13 @@ static void rna_def_input(StructRNA *srna) RNA_def_property_int_sdna(prop, NULL, "anim_startofs"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap test RNA_def_property_ui_text(prop, "Animation Start Offset", "Animation start offset (trim start)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "animation_end_offset", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "anim_endofs"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap test RNA_def_property_ui_text(prop, "Animation End Offset", "Animation end offset (trim end)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_image(BlenderRNA *brna) @@ -707,13 +741,13 @@ static void rna_def_image(BlenderRNA *brna) prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "strip->dir"); RNA_def_property_ui_text(prop, "Directory", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "elements", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "strip->stripdata", "strip->len"); RNA_def_property_struct_type(prop, "SequenceElement"); RNA_def_property_ui_text(prop, "Elements", ""); - rna_def_filter_video(srna); rna_def_proxy(srna); rna_def_input(srna); @@ -750,7 +784,7 @@ static void rna_def_scene(BlenderRNA *brna) prop= RNA_def_property(srna, "scene", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Scene", "Scene that this sequence uses."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); rna_def_filter_video(srna); rna_def_proxy(srna); @@ -770,15 +804,18 @@ static void rna_def_movie(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "anim_preseek"); RNA_def_property_range(prop, 0, 50); RNA_def_property_ui_text(prop, "MPEG Preseek", "For MPEG movies, preseek this many frames."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); RNA_def_property_string_sdna(prop, NULL, "strip->stripdata->name"); RNA_def_property_ui_text(prop, "Filename", ""); RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MovieSequence_filename_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "strip->dir"); RNA_def_property_ui_text(prop, "Directory", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); rna_def_filter_video(srna); rna_def_proxy(srna); @@ -797,15 +834,18 @@ static void rna_def_sound(BlenderRNA *brna) prop= RNA_def_property(srna, "sound", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "Sound"); RNA_def_property_ui_text(prop, "Sound", "Sound datablock used by this sequence."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_sound_update"); prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); RNA_def_property_string_sdna(prop, NULL, "strip->stripdata->name"); RNA_def_property_ui_text(prop, "Filename", ""); RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SoundSequence_filename_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_sound_update"); prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "strip->dir"); RNA_def_property_ui_text(prop, "Directory", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_sound_update"); rna_def_input(srna); @@ -815,7 +855,7 @@ static void rna_def_sound(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "volume"); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Volume", "Playback volume of the sound"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_sound_update"); } static void rna_def_effect(BlenderRNA *brna) @@ -842,6 +882,7 @@ static void rna_def_plugin(BlenderRNA *brna) RNA_def_property_string_sdna(prop, NULL, "name"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Filename", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); /* plugin properties need custom wrapping code like ID properties */ } @@ -875,25 +916,25 @@ static void rna_def_wipe(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "edgeWidth"); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Blur Width", "Width of the blur edge, in percentage relative to the image size."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "angle"); RNA_def_property_range(prop, -90.0f, 90.0f); RNA_def_property_ui_text(prop, "Angle", "Edge angle."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "direction", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "forward"); RNA_def_property_enum_items(prop, wipe_direction_items); RNA_def_property_ui_text(prop, "Direction", "Wipe direction."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "transition_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "wipetype"); RNA_def_property_enum_items(prop, wipe_type_items); RNA_def_property_ui_text(prop, "Transition Type", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_glow(BlenderRNA *brna) @@ -909,36 +950,36 @@ static void rna_def_glow(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "fMini"); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Threshold", "Minimum intensity to trigger a glow"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "clamp", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "fClamp"); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Clamp", "rightness limit of intensity."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "boost_factor", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "fBoost"); RNA_def_property_range(prop, 0.0f, 10.0f); RNA_def_property_ui_text(prop, "Boost Factor", "Brightness multiplier."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "blur_distance", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "dDist"); RNA_def_property_range(prop, 0.5f, 20.0f); RNA_def_property_ui_text(prop, "Blur Distance", "Radius of glow effect."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "quality", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "dQuality"); RNA_def_property_range(prop, 1, 5); RNA_def_property_ui_text(prop, "Quality", "Accuracy of the blur effect."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "only_boost", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "bNoComp", 0); RNA_def_property_ui_text(prop, "Only Boost", "Show the glow buffer only."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_transform(BlenderRNA *brna) @@ -967,72 +1008,72 @@ static void rna_def_transform(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "ScalexIni"); RNA_def_property_ui_text(prop, "Scale Start X", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "scale_start_y", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScaleyIni"); RNA_def_property_ui_text(prop, "Scale Start Y", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "scale_end_x", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScalexFin"); RNA_def_property_ui_text(prop, "Scale End X", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "scale_end_y", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScaleyFin"); RNA_def_property_ui_text(prop, "Scale End Y", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_start_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "xIni"); RNA_def_property_ui_text(prop, "Translate Start X", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_start_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "yIni"); RNA_def_property_ui_text(prop, "Translate Start Y", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_end_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "xFin"); RNA_def_property_ui_text(prop, "Translate End X", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_end_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "yFin"); RNA_def_property_ui_text(prop, "Translate End Y", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "rotation_start", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "rotIni"); RNA_def_property_range(prop, 0.0f, 360.0f); RNA_def_property_ui_text(prop, "Rotation Start", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "rotation_end", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "rotFin"); RNA_def_property_range(prop, 0.0f, 360.0f); RNA_def_property_ui_text(prop, "Rotation End", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translation_unit", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "percent"); RNA_def_property_enum_items(prop, translation_unit_items); RNA_def_property_ui_text(prop, "Translation Unit", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "interpolation", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, interpolation_items); RNA_def_property_ui_text(prop, "Interpolation", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_solid_color(BlenderRNA *brna) @@ -1047,7 +1088,7 @@ static void rna_def_solid_color(BlenderRNA *brna) prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); RNA_def_property_float_sdna(prop, NULL, "col"); RNA_def_property_ui_text(prop, "Color", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_speed_control(BlenderRNA *brna) @@ -1064,18 +1105,22 @@ static void rna_def_speed_control(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Global Speed", ""); RNA_def_property_ui_range(prop, 0.0f, 100.0f, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "curve_velocity", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_INTEGRATE); RNA_def_property_ui_text(prop, "F-Curve Velocity", "Interpret the F-Curve value as a velocity instead of a frame number."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "frame_blending", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_BLEND); RNA_def_property_ui_text(prop, "Frame Blending", "Blend two frames into the target for a smoother result."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "curve_compress_y", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_COMPRESS_IPO_Y); RNA_def_property_ui_text(prop, "F-Curve Compress Y", "Scale F-Curve value to get the target frame number, F-Curve value runs from 0.0 to 1.0."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } void RNA_def_sequence(BlenderRNA *brna) -- cgit v1.2.3 From 0151be0210bf58a108d90f2c36b2ab3be2294d5a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Dec 2009 13:02:03 +0000 Subject: UI: fix trailing tooltips when deactivating window, and when opening right click menu. Added window deactivate event for this. --- .../blender/editors/interface/interface_handlers.c | 35 +++++++++++++++------- source/blender/makesrna/intern/rna_wm.c | 1 + .../blender/windowmanager/intern/wm_event_system.c | 10 ++++++- source/blender/windowmanager/intern/wm_window.c | 1 + source/blender/windowmanager/wm_event_types.h | 1 + 5 files changed, 37 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index d2545e530e4..c7c0849927c 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -3405,7 +3405,8 @@ static int ui_but_menu(bContext *C, uiBut *but) if((but->rnapoin.data && but->rnaprop)==0 && but->optype==NULL) return 0; - + + button_timers_tooltip_remove(C, but); if(but->rnaprop) name= (char*)RNA_property_ui_name(but->rnaprop); @@ -3604,7 +3605,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event) char buf[512]; if(WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, buf, sizeof(buf))) { - + button_timers_tooltip_remove(C, but); uiPupBlock(C, menu_change_hotkey, but); } @@ -3832,12 +3833,14 @@ static int ui_mouse_inside_button(ARegion *ar, uiBut *but, int x, int y) return 1; } -static uiBut *ui_but_find_mouse_over(ARegion *ar, int x, int y) +static uiBut *ui_but_find_mouse_over(wmWindow *win, ARegion *ar, int x, int y) { uiBlock *block; uiBut *but, *butover= NULL; int mx, my; + if(!win->active) + return NULL; if(!ui_mouse_inside_region(ar, x, y)) return NULL; @@ -3859,12 +3862,14 @@ static uiBut *ui_but_find_mouse_over(ARegion *ar, int x, int y) return butover; } -static uiBut *ui_list_find_mouse_over(ARegion *ar, int x, int y) +static uiBut *ui_list_find_mouse_over(wmWindow *win, ARegion *ar, int x, int y) { uiBlock *block; uiBut *but; int mx, my; + if(!win->active) + return NULL; if(!ui_mouse_inside_region(ar, x, y)) return NULL; @@ -4171,10 +4176,11 @@ static uiBut *uit_but_find_open_event(ARegion *ar, wmEvent *event) static int ui_handle_button_over(bContext *C, wmEvent *event, ARegion *ar) { + wmWindow *win= CTX_wm_window(C); uiBut *but; if(event->type == MOUSEMOVE) { - but= ui_but_find_mouse_over(ar, event->x, event->y); + but= ui_but_find_mouse_over(win, ar, event->x, event->y); if(but) button_activate_init(C, ar, but, BUTTON_ACTIVATE_OVER); } @@ -4240,14 +4246,18 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but) if(data->state == BUTTON_STATE_HIGHLIGHT) { switch(event->type) { - + case WINDEACTIVATE: + data->cancel= 1; + button_activate_state(C, but, BUTTON_STATE_EXIT); + retval= WM_UI_HANDLER_CONTINUE; + break; case MOUSEMOVE: /* verify if we are still over the button, if not exit */ if(!ui_mouse_inside_button(ar, but, event->x, event->y)) { data->cancel= 1; button_activate_state(C, but, BUTTON_STATE_EXIT); } - else if(ui_but_find_mouse_over(ar, event->x, event->y) != but) { + else if(ui_but_find_mouse_over(data->window, ar, event->x, event->y) != but) { data->cancel= 1; button_activate_state(C, but, BUTTON_STATE_EXIT); } @@ -4295,8 +4305,12 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but) } else if(data->state == BUTTON_STATE_WAIT_RELEASE) { switch(event->type) { + case WINDEACTIVATE: + data->cancel= 1; + button_activate_state(C, but, BUTTON_STATE_EXIT); + break; + case MOUSEMOVE: - if(ELEM(but->type,LINK, INLINK)) { but->flag |= UI_SELECT; ui_do_button(C, block, but, event); @@ -4341,7 +4355,7 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but) else if(data->state == BUTTON_STATE_MENU_OPEN) { switch(event->type) { case MOUSEMOVE: { - uiBut *bt= ui_but_find_mouse_over(ar, event->x, event->y); + uiBut *bt= ui_but_find_mouse_over(data->window, ar, event->x, event->y); if(bt && bt->active != data) { if(but->type != COL) /* exception */ @@ -4376,7 +4390,8 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but) static int ui_handle_list_event(bContext *C, wmEvent *event, ARegion *ar) { - uiBut *but= ui_list_find_mouse_over(ar, event->x, event->y); + wmWindow *win= CTX_wm_window(C); + uiBut *but= ui_list_find_mouse_over(win, ar, event->x, event->y); int retval= WM_UI_HANDLER_CONTINUE; int value, min, max; diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 2e4c0690031..f58f14ec928 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -226,6 +226,7 @@ EnumPropertyItem event_type_items[] = { {PAGEDOWNKEY, "PAGE_DOWN", 0, "Page Down", ""}, {ENDKEY, "END", 0, "End", ""}, {0, "", 0, NULL, NULL}, + {WINDEACTIVATE, "WINDOW_DEACTIVATE", 0, "Window Deactivate", ""}, {TIMER, "TIMER", 0, "Timer", ""}, {TIMER0, "TIMER0", 0, "Timer 0", ""}, {TIMER1, "TIMER1", 0, "Timer 1", ""}, diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index bba38705e15..8e187eea93c 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -837,7 +837,7 @@ static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi) static int wm_event_always_pass(wmEvent *event) { /* some events we always pass on, to ensure proper communication */ - return ELEM4(event->type, TIMER, TIMER0, TIMER1, TIMER2); + return ELEM5(event->type, TIMER, TIMER0, TIMER1, TIMER2, WINDEACTIVATE); } /* operator exists */ @@ -1812,5 +1812,13 @@ void wm_event_add_ghostevent(wmWindow *win, int type, void *customdata) case GHOST_kEventUnknown: case GHOST_kNumEventTypes: break; + + case GHOST_kEventWindowDeactivate: { + event.type= WINDEACTIVATE; + wm_event_add(win, &event); + + break; + } + } } diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 542520ce1b0..31ad8cdcc63 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -574,6 +574,7 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr private) switch(type) { case GHOST_kEventWindowDeactivate: + wm_event_add_ghostevent(win, type, data); win->active= 0; /* XXX */ break; case GHOST_kEventWindowActivate: diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 8412e7f0b16..043ad8b1dcc 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -69,6 +69,7 @@ /* SYSTEM : 0x01x */ #define INPUTCHANGE 0x0103 /* input connected or disconnected */ +#define WINDEACTIVATE 0x0104 /* window is deactivated, focus lost */ #define TIMER 0x0110 /* timer event, passed on to all queues */ #define TIMER0 0x0111 /* timer event, slot for internal use */ -- cgit v1.2.3 From f2452c1fd6fe2009e2ecd794b13b1de1fade277b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Dec 2009 13:57:51 +0000 Subject: Sequencer: * Sound strips now respect metastrips for muting. That means they are muted if the metastrip is muted, and don't play when located outside of the current metastrip. * Operators now use notifiers instead of redraw tagging, added a separate notifier for selection as well, but that is not used to do less redraws yet. --- source/blender/blenkernel/BKE_sequence.h | 1 + source/blender/blenkernel/intern/sequence.c | 47 +++++++++++-- source/blender/blenloader/intern/readfile.c | 3 + .../editors/space_sequencer/sequencer_add.c | 10 +-- .../editors/space_sequencer/sequencer_edit.c | 81 +++++++++++----------- .../editors/space_sequencer/sequencer_select.c | 31 +++++---- .../editors/space_sequencer/space_sequencer.c | 2 + source/blender/makesrna/intern/rna_sequence.c | 28 +++++--- source/blender/windowmanager/WM_types.h | 1 + 9 files changed, 133 insertions(+), 71 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequence.h b/source/blender/blenkernel/BKE_sequence.h index 2f7526d524c..acc0d8576a1 100644 --- a/source/blender/blenkernel/BKE_sequence.h +++ b/source/blender/blenkernel/BKE_sequence.h @@ -186,6 +186,7 @@ int shuffle_seq_time(ListBase * seqbasep); void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage); void seq_update_sound(struct Sequence *seq); +void seq_update_muting(struct Editing *ed); void clear_scene_in_allseqs(struct Scene *sce); diff --git a/source/blender/blenkernel/intern/sequence.c b/source/blender/blenkernel/intern/sequence.c index 39b911d1c37..f11aca32da7 100644 --- a/source/blender/blenkernel/intern/sequence.c +++ b/source/blender/blenkernel/intern/sequence.c @@ -3477,16 +3477,55 @@ int shuffle_seq_time(ListBase * seqbasep) return offset? 0:1; } - -void seq_update_sound(struct Sequence *seq) +void seq_update_sound(Sequence *seq) { - if(seq->type == SEQ_SOUND) + if(seq->type == SEQ_SOUND && seq->sound_handle) { seq->sound_handle->startframe = seq->startdisp; seq->sound_handle->endframe = seq->enddisp; seq->sound_handle->frameskip = seq->startofs + seq->anim_startofs; - seq->sound_handle->mute = seq->flag & SEQ_MUTE ? 1 : 0; seq->sound_handle->changed = -1; + /* mute is set in seq_update_muting_recursive */ + } +} + +static void seq_update_muting_recursive(ListBase *seqbasep, Sequence *metaseq, int mute) +{ + Sequence *seq; + int seqmute; + + /* for sound we go over full meta tree to update muted state, + since sound is played outside of evaluating the imbufs, */ + for(seq=seqbasep->first; seq; seq=seq->next) { + seqmute= (mute || (seq->flag & SEQ_MUTE)); + + if(seq->type == SEQ_META) { + /* if this is the current meta sequence, unmute because + all sequences above this were set to mute */ + if(seq == metaseq) + seqmute= 0; + + seq_update_muting_recursive(&seq->seqbase, metaseq, seqmute); + } + else if(seq->type == SEQ_SOUND) { + if(seq->sound_handle && seqmute != seq->sound_handle->mute) { + seq->sound_handle->mute = seqmute; + seq->sound_handle->changed = -1; + } + } + } +} + +void seq_update_muting(Editing *ed) +{ + if(ed) { + /* mute all sounds up to current metastack list */ + MetaStack *ms= ed->metastack.last; + + if(ms) + seq_update_muting_recursive(&ed->seqbase, ms->parseq, 1); + else + seq_update_muting_recursive(&ed->seqbase, NULL, 0); } } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 83627ac50c3..2ad628da428 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4234,6 +4234,9 @@ static void lib_link_scene(FileData *fd, Main *main) seq->anim= 0; } SEQ_END + + if(sce->ed) + seq_update_muting(sce->ed); if(sce->nodetree) { lib_link_ntree(fd, &sce->id, sce->nodetree); diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index ba3735834bc..ac341e40de9 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -218,7 +218,7 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op) seq->flag |= SELECT; } - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -297,8 +297,9 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad } sort_seq(scene); + seq_update_muting(ed); - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -425,7 +426,7 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op) /* last active name */ strncpy(ed->act_imagedir, strip->dir, FILE_MAXDIR-1); - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -557,7 +558,8 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) seq->flag |= SELECT; } - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 5dd453b9e30..96d4ed06ead 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1399,7 +1399,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op) /* as last: */ sort_seq(scene); - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1451,21 +1451,18 @@ static int sequencer_mute_exec(bContext *C, wmOperator *op) for(seq= ed->seqbasep->first; seq; seq= seq->next) { if ((seq->flag & SEQ_LOCK)==0) { if(selected){ /* mute unselected */ - if (seq->flag & SELECT) { + if(seq->flag & SELECT) seq->flag |= SEQ_MUTE; - seq_update_sound(seq); - } } else { - if ((seq->flag & SELECT)==0) { + if((seq->flag & SELECT)==0) seq->flag |= SEQ_MUTE; - seq_update_sound(seq); - } } } } - ED_area_tag_redraw(CTX_wm_area(C)); + seq_update_muting(ed); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1505,21 +1502,18 @@ static int sequencer_unmute_exec(bContext *C, wmOperator *op) for(seq= ed->seqbasep->first; seq; seq= seq->next) { if ((seq->flag & SEQ_LOCK)==0) { if(selected){ /* unmute unselected */ - if (seq->flag & SELECT) { + if(seq->flag & SELECT) seq->flag &= ~SEQ_MUTE; - seq_update_sound(seq); - } } else { - if ((seq->flag & SELECT)==0) { + if((seq->flag & SELECT)==0) seq->flag &= ~SEQ_MUTE; - seq_update_sound(seq); - } } } } - ED_area_tag_redraw(CTX_wm_area(C)); + seq_update_muting(ed); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1559,7 +1553,7 @@ static int sequencer_lock_exec(bContext *C, wmOperator *op) } } - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1596,7 +1590,7 @@ static int sequencer_unlock_exec(bContext *C, wmOperator *op) } } - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1633,7 +1627,7 @@ static int sequencer_reload_exec(bContext *C, wmOperator *op) } } - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1665,7 +1659,7 @@ static int sequencer_refresh_all_exec(bContext *C, wmOperator *op) free_imbuf_seq(scene, &ed->seqbase, FALSE); - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1741,9 +1735,7 @@ static int sequencer_cut_exec(bContext *C, wmOperator *op) sort_seq(scene); } - if (changed) { - ED_area_tag_redraw(CTX_wm_area(C)); - } + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1803,7 +1795,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op) recurs_dupli_seq(scene, ed->seqbasep, &new); addlisttolist(ed->seqbasep, &new); - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1894,8 +1886,7 @@ static int sequencer_delete_exec(bContext *C, wmOperator *op) ms= ms->prev; } - //ED_area_tag_redraw(CTX_wm_area(C)); - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, NULL); /* redraw other sequencer views */ + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -1986,7 +1977,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) /* as last: */ sort_seq(scene); - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } @@ -2063,7 +2054,9 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *op) } - ED_area_tag_redraw(CTX_wm_area(C)); + seq_update_muting(ed); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + return OPERATOR_FINISHED; } @@ -2164,7 +2157,9 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) if( seq_test_overlap(ed->seqbasep, seqm) ) shuffle_seq(ed->seqbasep, seqm); - ED_area_tag_redraw(CTX_wm_area(C)); + seq_update_muting(ed); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + return OPERATOR_FINISHED; } @@ -2233,8 +2228,10 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *op) SEQ_END; sort_seq(scene); + seq_update_muting(ed); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); - ED_area_tag_redraw(CTX_wm_area(C)); return OPERATOR_FINISHED; } @@ -2459,16 +2456,16 @@ static int next_prev_edit_internal(Scene *scene, int side) return change; } -/* select less operator */ +/* move frame to next edit point operator */ static int sequencer_next_edit_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); - if (next_prev_edit_internal(scene, SEQ_SIDE_RIGHT)) { - ED_area_tag_redraw(CTX_wm_area(C)); - WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); - } - + if(!next_prev_edit_internal(scene, SEQ_SIDE_RIGHT)) + return OPERATOR_CANCELLED; + + WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); + return OPERATOR_FINISHED; } @@ -2494,9 +2491,10 @@ static int sequencer_previous_edit_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); - if (next_prev_edit_internal(scene, SEQ_SIDE_LEFT)) { - ED_area_tag_redraw(CTX_wm_area(C)); - } + if(!next_prev_edit_internal(scene, SEQ_SIDE_LEFT)) + return OPERATOR_CANCELLED; + + WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); return OPERATOR_FINISHED; } @@ -2578,10 +2576,13 @@ static int sequencer_swap_internal_exec(bContext *C, int side) swap_sequence(active_seq, seq); break; } - ED_area_tag_redraw(CTX_wm_area(C)); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + + return OPERATOR_FINISHED; } - return OPERATOR_FINISHED; + return OPERATOR_CANCELLED; } static int sequencer_swap_right_exec(bContext *C, wmOperator *op) diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index b197077c68d..7afe320322c 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -256,7 +256,8 @@ static int sequencer_deselect_exec(bContext *C, wmOperator *op) seq->flag |= SELECT; } } - ED_area_tag_redraw(CTX_wm_area(C)); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); return OPERATOR_FINISHED; } @@ -297,7 +298,8 @@ static int sequencer_select_inverse_exec(bContext *C, wmOperator *op) seq->flag |= SELECT; } } - ED_area_tag_redraw(CTX_wm_area(C)); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); return OPERATOR_FINISHED; } @@ -508,7 +510,8 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) } #endif - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); + /* allowing tweaks */ return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH; } @@ -594,9 +597,10 @@ static int sequencer_select_more_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); - if (select_more_less_seq__internal(scene, 0, 0)) { - ED_area_tag_redraw(CTX_wm_area(C)); - } + if(!select_more_less_seq__internal(scene, 0, 0)) + return OPERATOR_CANCELLED; + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); return OPERATOR_FINISHED; } @@ -624,9 +628,10 @@ static int sequencer_select_less_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); - if (select_more_less_seq__internal(scene, 1, 0)) { - ED_area_tag_redraw(CTX_wm_area(C)); - } + if(!select_more_less_seq__internal(scene, 1, 0)) + return OPERATOR_CANCELLED; + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); return OPERATOR_FINISHED; } @@ -681,7 +686,7 @@ static int sequencer_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEv selected = select_more_less_seq__internal(scene, 1, 1); } - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); return OPERATOR_FINISHED; } @@ -716,7 +721,7 @@ static int sequencer_select_linked_exec(bContext *C, wmOperator *op) selected = select_more_less_seq__internal(scene, 1, 1); } - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); return OPERATOR_FINISHED; } @@ -768,7 +773,7 @@ static int sequencer_select_handles_exec(bContext *C, wmOperator *op) } } - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); return OPERATOR_FINISHED; } @@ -805,7 +810,7 @@ static int sequencer_select_active_side_exec(bContext *C, wmOperator *op) select_active_side(ed->seqbasep, RNA_enum_get(op->ptr, "side"), seq_act->machine, seq_act->startdisp); - ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index b8adaf23f73..00df314df6c 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -232,6 +232,7 @@ static void sequencer_main_area_listener(ARegion *ar, wmNotifier *wmn) case ND_FRAME: case ND_MARKERS: case ND_SEQUENCER: + case ND_SEQUENCER_SELECT: ED_region_tag_redraw(ar); break; } @@ -266,6 +267,7 @@ static void sequencer_buttons_area_listener(ARegion *ar, wmNotifier *wmn) switch(wmn->data) { case ND_FRAME: case ND_SEQUENCER: + case ND_SEQUENCER_SELECT: ED_region_tag_redraw(ar); break; } diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 4f9d2a3d6ca..03fa0a410fe 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -25,6 +25,7 @@ #include #include +#include "RNA_access.h" #include "RNA_define.h" #include "RNA_types.h" @@ -269,11 +270,18 @@ static void rna_Sequence_update(bContext *C, PointerRNA *ptr) Editing *ed= seq_give_editing(scene, FALSE); free_imbuf_seq(scene, &ed->seqbase, FALSE); + + if(RNA_struct_is_a(ptr->type, &RNA_SoundSequence)) + seq_update_sound(ptr->data); } -static void rna_Sequence_sound_update(bContext *C, PointerRNA *ptr) +static void rna_Sequence_mute_update(bContext *C, PointerRNA *ptr) { - /* TODO */ + Scene *scene= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(scene, FALSE); + + seq_update_muting(ed); + rna_Sequence_update(C, ptr); } #else @@ -480,22 +488,22 @@ static void rna_def_sequence(BlenderRNA *brna) prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SELECT); RNA_def_property_ui_text(prop, "Selected", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); prop= RNA_def_property(srna, "left_handle_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LEFTSEL); RNA_def_property_ui_text(prop, "Left Handle Selected", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); prop= RNA_def_property(srna, "right_handle_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_RIGHTSEL); RNA_def_property_ui_text(prop, "Right Handle Selected", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); prop= RNA_def_property(srna, "mute", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MUTE); RNA_def_property_ui_text(prop, "Mute", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_mute_update"); prop= RNA_def_property(srna, "frame_locked", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_IPO_FRAME_LOCKED); @@ -834,18 +842,18 @@ static void rna_def_sound(BlenderRNA *brna) prop= RNA_def_property(srna, "sound", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "Sound"); RNA_def_property_ui_text(prop, "Sound", "Sound datablock used by this sequence."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_sound_update"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); RNA_def_property_string_sdna(prop, NULL, "strip->stripdata->name"); RNA_def_property_ui_text(prop, "Filename", ""); RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SoundSequence_filename_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_sound_update"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "strip->dir"); RNA_def_property_ui_text(prop, "Directory", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_sound_update"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); rna_def_input(srna); @@ -855,7 +863,7 @@ static void rna_def_sound(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "volume"); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Volume", "Playback volume of the sound"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_sound_update"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } static void rna_def_effect(BlenderRNA *brna) diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 53cca69fffc..a884d7b6831 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -168,6 +168,7 @@ typedef struct wmNotifier { #define ND_KEYINGSET (12<<16) #define ND_SCENEDELETE (13<<16) #define ND_LAYER (14<<16) +#define ND_SEQUENCER_SELECT (15<<16) /* NC_OBJECT Object */ #define ND_TRANSFORM (16<<16) -- cgit v1.2.3 From 45509f129d8c32d0432ad905aeb1ea7490784c5a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Dec 2009 15:20:57 +0000 Subject: unwrap was unwrapping all faces rather then just the selected ones --- source/blender/editors/uvedit/uvedit_unwrap_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c index e5881415100..8a3e3039352 100644 --- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c +++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c @@ -826,7 +826,7 @@ static int unwrap_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - handle= construct_param_handle(scene, em, 0, fill_holes, 0, correct_aspect); + handle= construct_param_handle(scene, em, 0, fill_holes, 1, correct_aspect); param_lscm_begin(handle, PARAM_FALSE, method == 0); param_lscm_solve(handle); -- cgit v1.2.3 From 7235e681b96097fc859335d750365d1013dcc0f3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Dec 2009 16:39:00 +0000 Subject: slow print, only debug mode --- source/blender/editors/animation/keyframes_draw.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 15ca0fab35f..4fd9295792b 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -231,7 +231,8 @@ static void nupdate_abk_bezt (void *node, void *data) // TODO: need to allocate new array to cater... // FIXME: urgent... is a problem when working with duplicate keyframes //bezts_extra= MEM_callocN(...); - printf("FIXME: nupdate_abk_bezt() missing case for too many overlapping BezTriples \n"); + if(G.f & G_DEBUG) + printf("FIXME: nupdate_abk_bezt() missing case for too many overlapping BezTriples \n"); } else { /* just store an extra one */ -- cgit v1.2.3 From 07904712e8943b5845df9559093018c8473f72f3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Dec 2009 17:23:48 +0000 Subject: RNA: * Property update functions no longer get context, instead they get only Main and Scene. The RNA api was intended to be as context-less as possible, since it doesn't really matter who is changing the property, everything that uses the property should be updated. * There's still one exception case that use it now, screen operations still depend on context too much. It also revealed a few places using context where they shouldn't. * Ideally Scene shouldn't be passed, but much of Blender still depends on it, should be dropped when we try to support multiple scene editing. Change was planned for a while, but need this now to be able to call update without a context pointer. --- source/blender/editors/include/ED_screen.h | 2 +- source/blender/editors/screen/screen_edit.c | 4 +- source/blender/editors/screen/screen_ops.c | 2 +- source/blender/makesrna/RNA_access.h | 2 + source/blender/makesrna/RNA_types.h | 3 ++ source/blender/makesrna/intern/makesrna.c | 4 +- source/blender/makesrna/intern/rna_access.c | 30 ++++++++++-- source/blender/makesrna/intern/rna_armature.c | 14 +++--- source/blender/makesrna/intern/rna_boid.c | 10 ++-- source/blender/makesrna/intern/rna_brush.c | 4 +- source/blender/makesrna/intern/rna_camera.c | 4 +- source/blender/makesrna/intern/rna_cloth.c | 8 ++-- source/blender/makesrna/intern/rna_constraint.c | 10 ++-- source/blender/makesrna/intern/rna_curve.c | 30 ++++++------ source/blender/makesrna/intern/rna_fcurve.c | 16 +++---- source/blender/makesrna/intern/rna_fluidsim.c | 9 ++-- source/blender/makesrna/intern/rna_group.c | 4 +- source/blender/makesrna/intern/rna_image.c | 13 +++-- source/blender/makesrna/intern/rna_internal.h | 8 ++-- .../blender/makesrna/intern/rna_internal_types.h | 5 +- source/blender/makesrna/intern/rna_key.c | 5 +- source/blender/makesrna/intern/rna_lamp.c | 12 ++--- source/blender/makesrna/intern/rna_lattice.c | 9 ++-- source/blender/makesrna/intern/rna_main_api.c | 28 +++++------ source/blender/makesrna/intern/rna_material.c | 8 ++-- source/blender/makesrna/intern/rna_mesh.c | 12 ++--- source/blender/makesrna/intern/rna_meta.c | 8 +--- source/blender/makesrna/intern/rna_modifier.c | 14 +++--- source/blender/makesrna/intern/rna_nodetree.c | 27 +++++------ source/blender/makesrna/intern/rna_object.c | 43 ++++++++--------- source/blender/makesrna/intern/rna_object_force.c | 55 ++++++++++------------ source/blender/makesrna/intern/rna_particle.c | 51 ++++++++++---------- source/blender/makesrna/intern/rna_pose.c | 17 ++++--- source/blender/makesrna/intern/rna_scene.c | 9 ++-- source/blender/makesrna/intern/rna_scene_api.c | 2 +- source/blender/makesrna/intern/rna_screen.c | 12 ++--- source/blender/makesrna/intern/rna_sculpt_paint.c | 12 +++-- source/blender/makesrna/intern/rna_sequence.c | 8 ++-- source/blender/makesrna/intern/rna_smoke.c | 16 +++---- source/blender/makesrna/intern/rna_sound.c | 4 +- source/blender/makesrna/intern/rna_space.c | 25 +++++----- source/blender/makesrna/intern/rna_texture.c | 18 +++---- source/blender/makesrna/intern/rna_ui.c | 12 ++--- source/blender/makesrna/intern/rna_userdef.c | 28 ++++++----- source/blender/makesrna/intern/rna_wm.c | 4 +- source/blender/makesrna/intern/rna_world.c | 8 ++-- source/blender/windowmanager/WM_api.h | 2 +- source/blender/windowmanager/intern/wm.c | 2 +- source/blender/windowmanager/intern/wm_files.c | 3 +- 49 files changed, 318 insertions(+), 318 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h index 46973e29d2a..89f032efc21 100644 --- a/source/blender/editors/include/ED_screen.h +++ b/source/blender/editors/include/ED_screen.h @@ -98,7 +98,7 @@ void ED_screen_delete_scene(struct bContext *C, struct Scene *scene); void ED_screen_set_subwinactive(struct wmWindow *win, struct wmEvent *event); void ED_screen_exit(struct bContext *C, struct wmWindow *window, struct bScreen *screen); void ED_screen_animation_timer(struct bContext *C, int redraws, int sync, int enable); -void ED_screen_animation_timer_update(struct bContext *C, int redraws); +void ED_screen_animation_timer_update(struct bScreen *screen, int redraws); int ED_screen_full_newspace(struct bContext *C, ScrArea *sa, int type); void ED_screen_full_prevspace(struct bContext *C, ScrArea *sa); void ED_screen_full_restore(struct bContext *C, ScrArea *sa); diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 6504ea4c2d5..024e00fa617 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1632,10 +1632,8 @@ static ARegion *time_top_left_3dwindow(bScreen *screen) return aret; } -void ED_screen_animation_timer_update(bContext *C, int redraws) +void ED_screen_animation_timer_update(bScreen *screen, int redraws) { - bScreen *screen= CTX_wm_screen(C); - if(screen && screen->animtimer) { wmTimer *wt= screen->animtimer; ScreenAnimData *sad= wt->customdata; diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index b108e1bbd41..87716190994 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2418,7 +2418,7 @@ static int screen_animation_play(bContext *C, wmOperator *op, wmEvent *event) ED_screen_animation_timer(C, stime->redraws, sync, mode); /* update region if TIME_REGION was set, to leftmost 3d window */ - ED_screen_animation_timer_update(C, stime->redraws); + ED_screen_animation_timer_update(screen, stime->redraws); } else { int redraws = TIME_REGION|TIME_ALL_3D_WIN; diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 263183cadd8..edbe55ba11d 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -38,6 +38,7 @@ struct bContext; struct ID; struct Main; struct ReportList; +struct Scene; /* Types */ @@ -649,6 +650,7 @@ int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop); /* Property Data */ diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 8743bb39d57..18fb2700bbf 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -166,6 +166,9 @@ typedef enum PropertyFlag { /* flag contains multiple enums */ PROP_ENUM_FLAG = 1<<21, + /* need context for update function */ + PROP_CONTEXT_UPDATE = 1<<22, + /* internal flags */ PROP_BUILTIN = 1<<7, PROP_EXPORT = 1<<8, diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 037b866edba..96953cefa2e 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -1763,7 +1763,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr rna_print_c_string(f, prop->description); fprintf(f, ",\n\t"); fprintf(f, "%d,\n", prop->icon); fprintf(f, "\t%s, %s|%s, %s, %d, {%d, %d, %d}, %d,\n", rna_property_typename(prop->type), rna_property_subtypename(prop->subtype), rna_property_subtype_unit(prop->subtype), rna_function_string(prop->getlength), prop->arraydimension, prop->arraylength[0], prop->arraylength[1], prop->arraylength[2], prop->totarraylength); - fprintf(f, "\t%s, %d, %s, %s,\n", rna_function_string(prop->update), prop->noteflag, rna_function_string(prop->editable), rna_function_string(prop->itemeditable)); + fprintf(f, "\t%s%s, %d, %s, %s,\n", (prop->flag & PROP_CONTEXT_UPDATE)? "(UpdateFunc)": "", rna_function_string(prop->update), prop->noteflag, rna_function_string(prop->editable), rna_function_string(prop->itemeditable)); if(prop->flag & PROP_RAW_ACCESS) rna_set_raw_offset(f, srna, prop); else fprintf(f, "\t0, 0"); @@ -2050,11 +2050,13 @@ static void rna_generate(BlenderRNA *brna, FILE *f, char *filename, char *api_fi fprintf(f, "#include \n\n"); fprintf(f, "#include \"DNA_ID.h\"\n"); + fprintf(f, "#include \"DNA_scene_types.h\"\n"); fprintf(f, "#include \"BLI_blenlib.h\"\n\n"); fprintf(f, "#include \"BKE_context.h\"\n"); fprintf(f, "#include \"BKE_library.h\"\n"); + fprintf(f, "#include \"BKE_main.h\"\n"); fprintf(f, "#include \"BKE_report.h\"\n"); fprintf(f, "#include \"BKE_utildefines.h\"\n\n"); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 360f43428d1..174cb13b0cd 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -29,6 +29,7 @@ #include "MEM_guardedalloc.h" #include "DNA_ID.h" +#include "DNA_scene_types.h" #include "DNA_windowmanager_types.h" #include "BLI_blenlib.h" @@ -37,6 +38,7 @@ #include "BKE_context.h" #include "BKE_idprop.h" +#include "BKE_main.h" #include "BKE_report.h" #include "BKE_utildefines.h" @@ -1103,23 +1105,41 @@ int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop) return 0; } -void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop) +static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerRNA *ptr, PropertyRNA *prop) { int is_rna = (prop->magic == RNA_MAGIC); prop= rna_ensure_property(prop); if(is_rna) { - if(prop->update) - prop->update(C, ptr); + if(prop->update) { + /* ideally no context would be needed for update, but there's some + parts of the code that need it still, so we have this exception */ + if(prop->flag & PROP_CONTEXT_UPDATE) { + if(C) ((ContextUpdateFunc)prop->update)(C, ptr); + } + else + prop->update(bmain, scene, ptr); + } if(prop->noteflag) - WM_event_add_notifier(C, prop->noteflag, ptr->id.data); + WM_main_add_notifier(prop->noteflag, ptr->id.data); } else { /* WARNING! This is so property drivers update the display! * not especially nice */ DAG_id_flush_update(ptr->id.data, OB_RECALC_OB); - WM_event_add_notifier(C, NC_WINDOW, NULL); + WM_main_add_notifier(NC_WINDOW, NULL); } + +} + +void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop) +{ + rna_property_update(C, CTX_data_main(C), CTX_data_scene(C), ptr, prop); +} + +void RNA_property_update_main(Main *bmain, Scene *scene, PointerRNA *ptr, PropertyRNA *prop) +{ + rna_property_update(NULL, bmain, scene, ptr, prop); } /* Property Data */ diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 371f14be753..90bf404083c 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -47,13 +47,13 @@ #include "ED_armature.h" -static void rna_Armature_update_data(bContext *C, PointerRNA *ptr) +static void rna_Armature_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; DAG_id_flush_update(id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, id); - //WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + WM_main_add_notifier(NC_GEOM|ND_DATA, id); + //WM_main_add_notifier(NC_OBJECT|ND_POSE, NULL); } @@ -103,11 +103,11 @@ void rna_Armature_edit_bone_remove(bArmature *arm, EditBone *ebone) ED_armature_edit_bone_remove(arm, ebone); } -static void rna_Armature_redraw_data(bContext *C, PointerRNA *ptr) +static void rna_Armature_redraw_data(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; - WM_event_add_notifier(C, NC_GEOM|ND_DATA, id); + WM_main_add_notifier(NC_GEOM|ND_DATA, id); } static char *rna_Bone_path(PointerRNA *ptr) @@ -304,7 +304,7 @@ static void rna_EditBone_parent_set(PointerRNA *ptr, PointerRNA value) } } -static void rna_Armature_editbone_transform_update(bContext *C, PointerRNA *ptr) +static void rna_Armature_editbone_transform_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bArmature *arm= (bArmature*)ptr->id.data; EditBone *ebone= (EditBone*)ptr->data; @@ -339,7 +339,7 @@ static void rna_Armature_editbone_transform_update(bContext *C, PointerRNA *ptr) } } - rna_Armature_update_data(C, ptr); + rna_Armature_update_data(bmain, scene, ptr); } static void rna_Armature_bones_next(CollectionPropertyIterator *iter) diff --git a/source/blender/makesrna/intern/rna_boid.c b/source/blender/makesrna/intern/rna_boid.c index 37b957a16ca..01d8a4db498 100644 --- a/source/blender/makesrna/intern/rna_boid.c +++ b/source/blender/makesrna/intern/rna_boid.c @@ -72,7 +72,7 @@ EnumPropertyItem boidruleset_type_items[] ={ #include "BKE_depsgraph.h" #include "BKE_particle.h" -static void rna_Boids_reset(bContext *C, PointerRNA *ptr) +static void rna_Boids_reset(Main *bmain, Scene *scene, PointerRNA *ptr) { if(ptr->type==&RNA_ParticleSystem) { ParticleSystem *psys = (ParticleSystem*)ptr->data; @@ -84,12 +84,10 @@ static void rna_Boids_reset(bContext *C, PointerRNA *ptr) else DAG_id_flush_update(ptr->id.data, OB_RECALC_DATA|PSYS_RECALC_RESET); - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, NULL); + WM_main_add_notifier(NC_OBJECT|ND_PARTICLE_DATA, NULL); } -static void rna_Boids_reset_deps(bContext *C, PointerRNA *ptr) +static void rna_Boids_reset_deps(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene = CTX_data_scene(C); - if(ptr->type==&RNA_ParticleSystem) { ParticleSystem *psys = (ParticleSystem*)ptr->data; @@ -102,7 +100,7 @@ static void rna_Boids_reset_deps(bContext *C, PointerRNA *ptr) DAG_scene_sort(scene); - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, NULL); + WM_main_add_notifier(NC_OBJECT|ND_PARTICLE_DATA, NULL); } static StructRNA* rna_BoidRule_refine(struct PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c index 28f546c07f1..2049618628b 100644 --- a/source/blender/makesrna/intern/rna_brush.c +++ b/source/blender/makesrna/intern/rna_brush.c @@ -76,10 +76,10 @@ static void rna_Brush_active_texture_set(PointerRNA *ptr, PointerRNA value) set_current_brush_texture(br, value.data); } -static void rna_Brush_update(bContext *C, PointerRNA *ptr) +static void rna_Brush_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Brush *br= (Brush*)ptr->data; - WM_event_add_notifier(C, NC_BRUSH|NA_EDITED, br); + WM_main_add_notifier(NC_BRUSH|NA_EDITED, br); } static float rna_BrushTextureSlot_angle_get(PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_camera.c b/source/blender/makesrna/intern/rna_camera.c index 6254041c7ef..1715df1809a 100644 --- a/source/blender/makesrna/intern/rna_camera.c +++ b/source/blender/makesrna/intern/rna_camera.c @@ -37,13 +37,13 @@ #ifdef RNA_RUNTIME -static void rna_Camera_angle_update(bContext *C, PointerRNA *ptr) +static void rna_Camera_angle_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Camera *cam= (Camera*)ptr->id.data; cam->lens = 16.0f / tan(M_PI*cam->angle/360.0f); } -static void rna_Camera_lens_update(bContext *C, PointerRNA *ptr) +static void rna_Camera_lens_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Camera *cam= (Camera*)ptr->id.data; cam->angle= 360.0f * atan(16.0f/cam->lens) / M_PI; diff --git a/source/blender/makesrna/intern/rna_cloth.c b/source/blender/makesrna/intern/rna_cloth.c index 0e298c1f6be..c416db2a21c 100644 --- a/source/blender/makesrna/intern/rna_cloth.c +++ b/source/blender/makesrna/intern/rna_cloth.c @@ -45,15 +45,15 @@ #include "BKE_context.h" #include "BKE_depsgraph.h" -static void rna_cloth_update(bContext *C, PointerRNA *ptr) +static void rna_cloth_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_main_add_notifier(NC_OBJECT|ND_MODIFIER, ob); } -static void rna_cloth_reset(bContext *C, PointerRNA *ptr) +static void rna_cloth_reset(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; ClothSimSettings *settings = (ClothSimSettings*)ptr->data; @@ -61,7 +61,7 @@ static void rna_cloth_reset(bContext *C, PointerRNA *ptr) settings->reset = 1; DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_main_add_notifier(NC_OBJECT|ND_MODIFIER, ob); } diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 226554f9ee6..f9405dec531 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -198,24 +198,24 @@ static char *rna_Constraint_path(PointerRNA *ptr) return BLI_sprintfN("constraints[\"%s\"]", con->name); } -static void rna_Constraint_update(bContext *C, PointerRNA *ptr) +static void rna_Constraint_update(Main *bmain, Scene *scene, PointerRNA *ptr) { ED_object_constraint_update(ptr->id.data); } -static void rna_Constraint_dependency_update(bContext *C, PointerRNA *ptr) +static void rna_Constraint_dependency_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - ED_object_constraint_dependency_update(CTX_data_scene(C), ptr->id.data); + ED_object_constraint_dependency_update(scene, ptr->id.data); } -static void rna_Constraint_influence_update(bContext *C, PointerRNA *ptr) +static void rna_Constraint_influence_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= ptr->id.data; if(ob->pose) ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK); - rna_Constraint_update(C, ptr); + rna_Constraint_update(bmain, scene, ptr); } static void rna_Constraint_ik_type_set(struct PointerRNA *ptr, int value) diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index faef93247d9..d3a56661813 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -215,21 +215,21 @@ static void rna_BPoint_array_begin(CollectionPropertyIterator *iter, PointerRNA rna_iterator_array_begin(iter, (void*)nu->bp, sizeof(BPoint), nu->pntsv>0 ? nu->pntsu*nu->pntsv : nu->pntsu, 0, NULL); } -static void rna_Curve_update_data(bContext *C, PointerRNA *ptr) +static void rna_Curve_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; DAG_id_flush_update(id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, id); + WM_main_add_notifier(NC_GEOM|ND_DATA, id); } -static void rna_Curve_update_deps(bContext *C, PointerRNA *ptr) +static void rna_Curve_update_deps(Main *bmain, Scene *scene, PointerRNA *ptr) { - DAG_scene_sort(CTX_data_scene(C)); - rna_Curve_update_data(C, ptr); + DAG_scene_sort(scene); + rna_Curve_update_data(bmain, scene, ptr); } -static void rna_Curve_resolution_u_update_data(bContext *C, PointerRNA *ptr) +static void rna_Curve_resolution_u_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { Curve *cu= (Curve*)ptr->id.data; Nurb *nu=NULL; @@ -242,10 +242,10 @@ static void rna_Curve_resolution_u_update_data(bContext *C, PointerRNA *ptr) nu= nu->next; } - rna_Curve_update_data(C, ptr); + rna_Curve_update_data(bmain, scene, ptr); } -static void rna_Curve_resolution_v_update_data(bContext *C, PointerRNA *ptr) +static void rna_Curve_resolution_v_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { Curve *cu= (Curve*)ptr->id.data; Nurb *nu=NULL; @@ -258,7 +258,7 @@ static void rna_Curve_resolution_v_update_data(bContext *C, PointerRNA *ptr) nu= nu->next; } - rna_Curve_update_data(C, ptr); + rna_Curve_update_data(bmain, scene, ptr); } /* name functions that ignore the first two ID characters */ @@ -293,34 +293,34 @@ void rna_Curve_body_set(PointerRNA *ptr, const char *value) BLI_strncpy(cu->str, value, len+1); } -static void rna_Nurb_update_handle_data(bContext *C, PointerRNA *ptr) +static void rna_Nurb_update_handle_data(Main *bmain, Scene *scene, PointerRNA *ptr) { Nurb *nu= (Nurb*)ptr->data; if(nu->type == CU_BEZIER) calchandlesNurb(nu); - rna_Curve_update_data(C, ptr); + rna_Curve_update_data(bmain, scene, ptr); } -static void rna_Nurb_update_knot_u(bContext *C, PointerRNA *ptr) +static void rna_Nurb_update_knot_u(Main *bmain, Scene *scene, PointerRNA *ptr) { Nurb *nu= (Nurb*)ptr->data; clamp_nurb_order_u(nu); makeknots(nu, 1); - rna_Curve_update_data(C, ptr); + rna_Curve_update_data(bmain, scene, ptr); } -static void rna_Nurb_update_knot_v(bContext *C, PointerRNA *ptr) +static void rna_Nurb_update_knot_v(Main *bmain, Scene *scene, PointerRNA *ptr) { Nurb *nu= (Nurb*)ptr->data; clamp_nurb_order_v(nu); makeknots(nu, 2); - rna_Curve_update_data(C, ptr); + rna_Curve_update_data(bmain, scene, ptr); } #else diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index e126175a020..23cd4b2c892 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -91,7 +91,7 @@ static StructRNA *rna_FModifierType_refine(struct PointerRNA *ptr) #include "BKE_depsgraph.h" #include "BKE_animsys.h" -static void rna_ChannelDriver_update_data(bContext *C, PointerRNA *ptr) +static void rna_ChannelDriver_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; ChannelDriver *driver= ptr->data; @@ -99,20 +99,20 @@ static void rna_ChannelDriver_update_data(bContext *C, PointerRNA *ptr) driver->flag &= ~DRIVER_FLAG_INVALID; // TODO: this really needs an update guard... - DAG_scene_sort(CTX_data_scene(C)); + DAG_scene_sort(scene); DAG_id_flush_update(id, OB_RECALC_OB|OB_RECALC_DATA); - WM_event_add_notifier(C, NC_SCENE|ND_FRAME, CTX_data_scene(C)); + WM_main_add_notifier(NC_SCENE|ND_FRAME, scene); } -static void rna_ChannelDriver_update_expr(bContext *C, PointerRNA *ptr) +static void rna_ChannelDriver_update_expr(Main *bmain, Scene *scene, PointerRNA *ptr) { ChannelDriver *driver= ptr->data; driver->flag |= DRIVER_FLAG_RECOMPILE; - rna_ChannelDriver_update_data(C, ptr); + rna_ChannelDriver_update_data(bmain, scene, ptr); } -static void rna_DriverTarget_update_data(bContext *C, PointerRNA *ptr) +static void rna_DriverTarget_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { PointerRNA driverptr; ChannelDriver *driver; @@ -125,7 +125,7 @@ static void rna_DriverTarget_update_data(bContext *C, PointerRNA *ptr) if(driver && BLI_findindex(&driver->targets, ptr->data) != -1) { RNA_pointer_create(ptr->id.data, &RNA_Driver, driver, &driverptr); - rna_ChannelDriver_update_data(C, &driverptr); + rna_ChannelDriver_update_data(bmain, scene, &driverptr); return; } } @@ -267,7 +267,7 @@ static void rna_FModifier_active_set(PointerRNA *ptr, int value) fm->flag |= FMODIFIER_FLAG_ACTIVE; } -static void rna_FModifier_active_update(bContext *C, PointerRNA *ptr) +static void rna_FModifier_active_update(Main *bmain, Scene *scene, PointerRNA *ptr) { FModifier *fm, *fmo= (FModifier*)ptr->data; diff --git a/source/blender/makesrna/intern/rna_fluidsim.c b/source/blender/makesrna/intern/rna_fluidsim.c index 2517ee5c8ef..682eebddbbe 100644 --- a/source/blender/makesrna/intern/rna_fluidsim.c +++ b/source/blender/makesrna/intern/rna_fluidsim.c @@ -72,17 +72,16 @@ static StructRNA* rna_FluidSettings_refine(struct PointerRNA *ptr) } } -static void rna_fluid_update(bContext *C, PointerRNA *ptr) +static void rna_fluid_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= ptr->id.data; DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_main_add_notifier(NC_OBJECT|ND_MODIFIER, ob); } -static void rna_FluidSettings_update_type(bContext *C, PointerRNA *ptr) +static void rna_FluidSettings_update_type(Main *bmain, Scene *scene, PointerRNA *ptr) { - Main *bmain= CTX_data_main(C); Object *ob= (Object*)ptr->id.data; FluidsimModifierData *fluidmd; ParticleSystemModifierData *psmd; @@ -132,7 +131,7 @@ static void rna_FluidSettings_update_type(bContext *C, PointerRNA *ptr) } } - rna_fluid_update(C, ptr); + rna_fluid_update(bmain, scene, ptr); } static void rna_DomainFluidSettings_memory_estimate_get(PointerRNA *ptr, char *value) diff --git a/source/blender/makesrna/intern/rna_group.c b/source/blender/makesrna/intern/rna_group.c index f13eb4fedc1..528d2eb0b3d 100644 --- a/source/blender/makesrna/intern/rna_group.c +++ b/source/blender/makesrna/intern/rna_group.c @@ -56,7 +56,7 @@ static void rna_Group_objects_link(Group *group, bContext *C, ReportList *report return; } - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, &object->id); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, &object->id); } static void rna_Group_objects_unlink(Group *group, bContext *C, ReportList *reports, Object *object) @@ -66,7 +66,7 @@ static void rna_Group_objects_unlink(Group *group, bContext *C, ReportList *repo return; } - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, &object->id); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, &object->id); } #else diff --git a/source/blender/makesrna/intern/rna_image.c b/source/blender/makesrna/intern/rna_image.c index 44c55e821a9..e0d8a6950de 100644 --- a/source/blender/makesrna/intern/rna_image.c +++ b/source/blender/makesrna/intern/rna_image.c @@ -49,7 +49,7 @@ static EnumPropertyItem image_source_items[]= { #include "IMB_imbuf_types.h" -static void rna_Image_animated_update(bContext *C, PointerRNA *ptr) +static void rna_Image_animated_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Image *ima= (Image*)ptr->data; int nr; @@ -74,13 +74,13 @@ static int rna_Image_dirty_get(PointerRNA *ptr) return 0; } -static void rna_Image_source_update(bContext *C, PointerRNA *ptr) +static void rna_Image_source_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Image *ima= ptr->id.data; BKE_image_signal(ima, NULL, IMA_SIGNAL_SRC_CHANGE); } -static void rna_Image_fields_update(bContext *C, PointerRNA *ptr) +static void rna_Image_fields_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Image *ima= ptr->id.data; ImBuf *ibuf; @@ -101,22 +101,21 @@ static void rna_Image_fields_update(bContext *C, PointerRNA *ptr) BKE_image_release_ibuf(ima, lock); } -static void rna_Image_reload_update(bContext *C, PointerRNA *ptr) +static void rna_Image_reload_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Image *ima= ptr->id.data; BKE_image_signal(ima, NULL, IMA_SIGNAL_RELOAD); printf("reload %p\n", ima); } -static void rna_Image_generated_update(bContext *C, PointerRNA *ptr) +static void rna_Image_generated_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Image *ima= ptr->id.data; BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE); } -static void rna_ImageUser_update(bContext *C, PointerRNA *ptr) +static void rna_ImageUser_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= CTX_data_scene(C); ImageUser *iuser= ptr->data; BKE_image_user_calc_imanr(iuser, scene->r.cfra, 0); diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 52945b67275..df1dd249dd1 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -194,10 +194,10 @@ void rna_object_vgroup_name_set(struct PointerRNA *ptr, const char *value, char void rna_object_uvlayer_name_set(struct PointerRNA *ptr, const char *value, char *result, int maxlen); void rna_object_vcollayer_name_set(struct PointerRNA *ptr, const char *value, char *result, int maxlen); -void rna_Object_update(struct bContext *C, struct PointerRNA *ptr); -void rna_Object_update_data(struct bContext *C, struct PointerRNA *ptr); -void rna_Mesh_update_draw(struct bContext *C, struct PointerRNA *ptr); -void rna_TextureSlot_update(struct bContext *C, struct PointerRNA *ptr); +void rna_Object_update(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr); +void rna_Object_update_data(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr); +void rna_Mesh_update_draw(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr); +void rna_TextureSlot_update(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr); char *rna_TextureSlot_path(struct PointerRNA *ptr); diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h index 8a35f831c96..4f05e6132f7 100644 --- a/source/blender/makesrna/intern/rna_internal_types.h +++ b/source/blender/makesrna/intern/rna_internal_types.h @@ -38,6 +38,8 @@ struct CollectionPropertyIterator; struct bContext; struct IDProperty; struct GHash; +struct Main; +struct Scene; #ifdef UNIT_TEST #define RNA_MAX_ARRAY_LENGTH 64 @@ -53,7 +55,8 @@ struct GHash; /* Function Callbacks */ -typedef void (*UpdateFunc)(struct bContext *C, struct PointerRNA *ptr); +typedef void (*UpdateFunc)(struct Main *main, struct Scene *scene, struct PointerRNA *ptr); +typedef void (*ContextUpdateFunc)(struct bContext *C, struct PointerRNA *ptr); typedef int (*EditableFunc)(struct PointerRNA *ptr); typedef int (*ItemEditableFunc)(struct PointerRNA *ptr, int index); typedef struct IDProperty* (*IDPropertiesFunc)(struct PointerRNA *ptr, int create); diff --git a/source/blender/makesrna/intern/rna_key.c b/source/blender/makesrna/intern/rna_key.c index 49dd96241cd..9e560a50af0 100644 --- a/source/blender/makesrna/intern/rna_key.c +++ b/source/blender/makesrna/intern/rna_key.c @@ -286,16 +286,15 @@ static char *rna_ShapeKey_path(PointerRNA *ptr) return BLI_sprintfN("keys[\"%s\"]", ((KeyBlock*)ptr->data)->name); } -static void rna_Key_update_data(bContext *C, PointerRNA *ptr) +static void rna_Key_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { - Main *bmain= CTX_data_main(C); Key *key= ptr->id.data; Object *ob; for(ob=bmain->object.first; ob; ob= ob->id.next) { if(ob_get_key(ob) == key) { DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_main_add_notifier(NC_OBJECT|ND_MODIFIER, ob); } } } diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c index a518bd28d24..5112e68a008 100644 --- a/source/blender/makesrna/intern/rna_lamp.c +++ b/source/blender/makesrna/intern/rna_lamp.c @@ -100,28 +100,28 @@ static StructRNA* rna_Lamp_refine(struct PointerRNA *ptr) } } -static void rna_Lamp_update(bContext *C, PointerRNA *ptr) +static void rna_Lamp_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Lamp *la= ptr->id.data; DAG_id_flush_update(&la->id, 0); - WM_event_add_notifier(C, NC_LAMP|ND_LIGHTING, la); + WM_main_add_notifier(NC_LAMP|ND_LIGHTING, la); } -static void rna_Lamp_draw_update(bContext *C, PointerRNA *ptr) +static void rna_Lamp_draw_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Lamp *la= ptr->id.data; DAG_id_flush_update(&la->id, 0); - WM_event_add_notifier(C, NC_LAMP|ND_LIGHTING_DRAW, la); + WM_main_add_notifier(NC_LAMP|ND_LIGHTING_DRAW, la); } -static void rna_Lamp_sky_update(bContext *C, PointerRNA *ptr) +static void rna_Lamp_sky_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Lamp *la= ptr->id.data; DAG_id_flush_update(&la->id, 0); - WM_event_add_notifier(C, NC_LAMP|ND_SKY, la); + WM_main_add_notifier(NC_LAMP|ND_SKY, la); } #else diff --git a/source/blender/makesrna/intern/rna_lattice.c b/source/blender/makesrna/intern/rna_lattice.c index aff38ebdd74..f46ea13ba2e 100644 --- a/source/blender/makesrna/intern/rna_lattice.c +++ b/source/blender/makesrna/intern/rna_lattice.c @@ -87,17 +87,16 @@ static void rna_Lattice_points_begin(CollectionPropertyIterator *iter, PointerRN rna_iterator_array_begin(iter, NULL, 0, 0, 0, NULL); } -static void rna_Lattice_update_data(bContext *C, PointerRNA *ptr) +static void rna_Lattice_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; DAG_id_flush_update(id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, id); + WM_main_add_notifier(NC_GEOM|ND_DATA, id); } -static void rna_Lattice_update_size(bContext *C, PointerRNA *ptr) +static void rna_Lattice_update_size(Main *bmain, Scene *scene, PointerRNA *ptr) { - Main *bmain= CTX_data_main(C); Lattice *lt= ptr->id.data; Object *ob; int newu, newv, neww; @@ -124,7 +123,7 @@ static void rna_Lattice_update_size(bContext *C, PointerRNA *ptr) resizelattice(lt->editlatt, newu, newv, neww, NULL); } - rna_Lattice_update_data(C, ptr); + rna_Lattice_update_data(bmain, scene, ptr); } static void rna_Lattice_outside_set(PointerRNA *ptr, int value) diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 70dab957fb9..5069bbd6ae6 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -50,41 +50,41 @@ #include "DNA_mesh_types.h" #include "DNA_object_types.h" -static Mesh *rna_Main_add_mesh(Main *main, char *name) +static Mesh *rna_Main_add_mesh(Main *bmain, char *name) { Mesh *me= add_mesh(name); me->id.us--; return me; } -static void rna_Main_remove_mesh(Main *main, ReportList *reports, Mesh *me) +static void rna_Main_remove_mesh(Main *bmain, ReportList *reports, Mesh *me) { if(me->id.us == 0) - free_libblock(&main->mesh, me); + free_libblock(&bmain->mesh, me); else BKE_report(reports, RPT_ERROR, "Mesh must have zero users to be removed."); /* XXX python now has invalid pointer? */ } -static void rna_Main_remove_armature(Main *main, ReportList *reports, bArmature *arm) +static void rna_Main_remove_armature(Main *bmain, ReportList *reports, bArmature *arm) { if(arm->id.us == 0) - free_libblock(&main->armature, arm); + free_libblock(&bmain->armature, arm); else BKE_report(reports, RPT_ERROR, "Armature must have zero users to be removed."); /* XXX python now has invalid pointer? */ } -static bArmature *rna_Main_add_armature(Main *main, char *name) +static bArmature *rna_Main_add_armature(Main *bmain, char *name) { bArmature *arm= add_armature(name); arm->id.us--; return arm; } -static Lamp *rna_Main_add_lamp(Main *main, char *name) +static Lamp *rna_Main_add_lamp(Main *bmain, char *name) { Lamp *la= add_lamp(name); la->id.us--; @@ -92,7 +92,7 @@ static Lamp *rna_Main_add_lamp(Main *main, char *name) } /* -static void rna_Main_remove_lamp(Main *main, ReportList *reports, Lamp *la) +static void rna_Main_remove_lamp(Main *bmain, ReportList *reports, Lamp *la) { if(la->id.us == 0) free_libblock(&main->lamp, la); @@ -101,7 +101,7 @@ static void rna_Main_remove_lamp(Main *main, ReportList *reports, Lamp *la) } */ -static Object* rna_Main_add_object(Main *main, int type, char *name) +static Object* rna_Main_add_object(Main *bmain, int type, char *name) { Object *ob= add_only_object(type, name); ob->id.us--; @@ -120,29 +120,29 @@ static Object* rna_Main_add_object(Main *main, int type, char *name) # don't do this since ob is already freed! bpy.data.remove_object(ob) */ -static void rna_Main_remove_object(Main *main, ReportList *reports, Object *ob) +static void rna_Main_remove_object(Main *bmain, ReportList *reports, Object *ob) { if(ob->id.us == 0) - free_libblock(&main->object, ob); + free_libblock(&bmain->object, ob); else BKE_report(reports, RPT_ERROR, "Object must have zero users to be removed."); } -static Material *rna_Main_add_material(Main *main, char *name) +static Material *rna_Main_add_material(Main *bmain, char *name) { return add_material(name); } /* TODO: remove material? */ -struct Tex *rna_Main_add_texture(Main *main, char *name) +struct Tex *rna_Main_add_texture(Main *bmain, char *name) { return add_texture(name); } /* TODO: remove texture? */ -struct Image *rna_Main_add_image(Main *main, char *filename) +struct Image *rna_Main_add_image(Main *bmain, char *filename) { return BKE_add_image_file(filename, 0); } diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 85007482dc4..a5c1d8d5f57 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -64,20 +64,20 @@ static EnumPropertyItem prop_texture_coordinates_items[] = { #include "ED_node.h" -static void rna_Material_update(bContext *C, PointerRNA *ptr) +static void rna_Material_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Material *ma= ptr->id.data; DAG_id_flush_update(&ma->id, 0); - WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, ma); + WM_main_add_notifier(NC_MATERIAL|ND_SHADING, ma); } -static void rna_Material_draw_update(bContext *C, PointerRNA *ptr) +static void rna_Material_draw_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Material *ma= ptr->id.data; DAG_id_flush_update(&ma->id, 0); - WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING_DRAW, ma); + WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, ma); } static PointerRNA rna_Material_mirror_get(PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index bacd7fc2b72..355314f5c92 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -50,26 +50,26 @@ #include "WM_api.h" #include "WM_types.h" -static void rna_Mesh_update_data(bContext *C, PointerRNA *ptr) +static void rna_Mesh_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; DAG_id_flush_update(id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, id); + WM_main_add_notifier(NC_GEOM|ND_DATA, id); } -static void rna_Mesh_update_select(bContext *C, PointerRNA *ptr) +static void rna_Mesh_update_select(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; - WM_event_add_notifier(C, NC_GEOM|ND_SELECT, id); + WM_main_add_notifier(NC_GEOM|ND_SELECT, id); } -void rna_Mesh_update_draw(bContext *C, PointerRNA *ptr) +void rna_Mesh_update_draw(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; - WM_event_add_notifier(C, NC_GEOM|ND_DATA, id); + WM_main_add_notifier(NC_GEOM|ND_DATA, id); } static void rna_MeshVertex_normal_get(PointerRNA *ptr, float *value) diff --git a/source/blender/makesrna/intern/rna_meta.c b/source/blender/makesrna/intern/rna_meta.c index 62466047ef4..b7cd40b2efd 100644 --- a/source/blender/makesrna/intern/rna_meta.c +++ b/source/blender/makesrna/intern/rna_meta.c @@ -50,10 +50,8 @@ static int rna_Meta_texspace_editable(PointerRNA *ptr) return (mb->texflag & AUTOSPACE)? 0: PROP_EDITABLE; } -static void rna_MetaBall_update_data(bContext *C, PointerRNA *ptr) +static void rna_MetaBall_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); MetaBall *mb= ptr->id.data; Object *ob; @@ -62,11 +60,9 @@ static void rna_MetaBall_update_data(bContext *C, PointerRNA *ptr) copy_mball_properties(scene, ob); DAG_id_flush_update(&mb->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, mb); + WM_main_add_notifier(NC_GEOM|ND_DATA, mb); } - - #else static void rna_def_metaelement(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index d5cdad08923..f2683e39c54 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -192,19 +192,19 @@ static char *rna_Modifier_path(PointerRNA *ptr) return BLI_sprintfN("modifiers[\"%s\"]", ((ModifierData*)ptr->data)->name); } -static void rna_Modifier_update(bContext *C, PointerRNA *ptr) +static void rna_Modifier_update(Main *bmain, Scene *scene, PointerRNA *ptr) { DAG_id_flush_update(ptr->id.data, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ptr->id.data); + WM_main_add_notifier(NC_OBJECT|ND_MODIFIER, ptr->id.data); } -static void rna_Modifier_dependency_update(bContext *C, PointerRNA *ptr) +static void rna_Modifier_dependency_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - rna_Modifier_update(C, ptr); - DAG_scene_sort(CTX_data_scene(C)); + rna_Modifier_update(bmain, scene, ptr); + DAG_scene_sort(scene); } -static void rna_Smoke_set_type(bContext *C, PointerRNA *ptr) +static void rna_Smoke_set_type(Main *bmain, Scene *scene, PointerRNA *ptr) { SmokeModifierData *smd= (SmokeModifierData *)ptr->data; Object *ob= (Object*)ptr->id.data; @@ -229,7 +229,7 @@ static void rna_Smoke_set_type(bContext *C, PointerRNA *ptr) } // update dependancy since a domain - other type switch could have happened - rna_Modifier_dependency_update(C, ptr); + rna_Modifier_dependency_update(bmain, scene, ptr); } static void rna_ExplodeModifier_vgroup_get(PointerRNA *ptr, char *value) diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 1aec395b43f..d1e73d6add3 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -149,9 +149,8 @@ static void rna_Matte_t2_set(PointerRNA *ptr, float value) chroma->t2 = value; } -static void node_update(bContext *C, bNodeTree *ntree, bNode *node) +static void node_update(Main *bmain, Scene *scene, bNodeTree *ntree, bNode *node) { - Main *bmain= CTX_data_main(C); Material *ma; Tex *tex; Scene *sce; @@ -170,15 +169,15 @@ static void node_update(bContext *C, bNodeTree *ntree, bNode *node) ED_node_changed_update(&sce->id, node); } -static void rna_Node_update(bContext *C, PointerRNA *ptr) +static void rna_Node_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bNodeTree *ntree= (bNodeTree*)ptr->id.data; bNode *node= (bNode*)ptr->data; - node_update(C, ntree, node); + node_update(bmain, scene, ntree, node); } -static void rna_Node_update_name(bContext *C, PointerRNA *ptr) +static void rna_Node_update_name(Main *bmain, Scene *scene, PointerRNA *ptr) { bNodeTree *ntree= (bNodeTree*)ptr->id.data; bNode *node= (bNode*)ptr->data; @@ -193,12 +192,12 @@ static void rna_Node_update_name(bContext *C, PointerRNA *ptr) /* fix all the animation data which may link to this */ BKE_all_animdata_fix_paths_rename("nodes", oldname, node->name); - node_update(C, ntree, node); + node_update(bmain, scene, ntree, node); } /* this should be done at display time! if no custom names are set */ #if 0 -static void rna_Node_update_username(bContext *C, PointerRNA *ptr) +static void rna_Node_update_username(Main *bmain, Scene *scene, PointerRNA *ptr) { bNode *node= (bNode*)ptr->data; const char *name; @@ -241,18 +240,18 @@ static void rna_Node_update_username(bContext *C, PointerRNA *ptr) } } - rna_Node_update(C, ptr); + rna_Node_update(bmain, scene, ptr); } #endif -static void rna_NodeSocket_update(bContext *C, PointerRNA *ptr) +static void rna_NodeSocket_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bNodeTree *ntree= (bNodeTree*)ptr->id.data; bNodeSocket *sock= (bNodeSocket*)ptr->data; bNode *node; if (nodeFindNode(ntree, sock, &node, NULL)) - node_update(C, ntree, node); + node_update(bmain, scene, ntree, node); } static void rna_NodeSocket_defvalue_range(PointerRNA *ptr, float *min, float *max) @@ -263,16 +262,16 @@ static void rna_NodeSocket_defvalue_range(PointerRNA *ptr, float *min, float *ma *max = sock->ns.max; } -static void rna_Node_mapping_update(bContext *C, PointerRNA *ptr) +static void rna_Node_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bNode *node= (bNode*)ptr->data; init_mapping((TexMapping *)node->storage); - rna_Node_update(C, ptr); + rna_Node_update(bmain, scene, ptr); } -static void rna_Node_image_layer_update(bContext *C, PointerRNA *ptr) +static void rna_Node_image_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bNode *node= (bNode*)ptr->data; Image *ima = (Image *)node->id; @@ -281,7 +280,7 @@ static void rna_Node_image_layer_update(bContext *C, PointerRNA *ptr) BKE_image_multilayer_index(ima->rr, iuser); BKE_image_signal(ima, iuser, IMA_SIGNAL_SRC_CHANGE); - rna_Node_update(C, ptr); + rna_Node_update(bmain, scene, ptr); } static EnumPropertyItem *renderresult_layers_add_enum(RenderLayer *rl) diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 4dacf46f0c6..38b449dffb0 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -114,56 +114,56 @@ EnumPropertyItem object_type_items[] = { #include "BLI_editVert.h" /* for EditMesh->mat_nr */ +#include "ED_mesh.h" #include "ED_object.h" #include "ED_particle.h" -void rna_Object_update(bContext *C, PointerRNA *ptr) +void rna_Object_update(Main *bmain, Scene *scene, PointerRNA *ptr) { DAG_id_flush_update(ptr->id.data, OB_RECALC_OB); } -void rna_Object_matrix_update(bContext *C, PointerRNA *ptr) +void rna_Object_matrix_update(Main *bmain, Scene *scene, PointerRNA *ptr) { ED_object_apply_obmat(ptr->id.data); - rna_Object_update(C, ptr); + rna_Object_update(bmain, scene, ptr); } -void rna_Object_update_data(bContext *C, PointerRNA *ptr) +void rna_Object_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { DAG_id_flush_update(ptr->id.data, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ptr->id.data); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, ptr->id.data); } -void rna_Object_active_shape_update(bContext *C, PointerRNA *ptr) +void rna_Object_active_shape_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= ptr->id.data; - Scene *scene= CTX_data_scene(C); int editmode= (scene->obedit == ob && ob->type == OB_MESH); if(editmode) { /* exit/enter editmode to get new shape */ - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO); - ED_object_enter_editmode(C, EM_WAITCURSOR); + load_editMesh(scene, ob); + make_editMesh(scene, ob); } - rna_Object_update_data(C, ptr); + rna_Object_update_data(bmain, scene, ptr); } -static void rna_Object_dependency_update(bContext *C, PointerRNA *ptr) +static void rna_Object_dependency_update(Main *bmain, Scene *scene, PointerRNA *ptr) { DAG_id_flush_update(ptr->id.data, OB_RECALC_OB); - DAG_scene_sort(CTX_data_scene(C)); + DAG_scene_sort(scene); } /* when changing the selection flag the scene needs updating */ -static void rna_Object_select_update(bContext *C, PointerRNA *ptr) +static void rna_Object_select_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; short mode = ob->flag & SELECT ? BA_SELECT : BA_DESELECT; - ED_base_object_select(object_in_scene(ob, CTX_data_scene(C)), mode); + ED_base_object_select(object_in_scene(ob, scene), mode); } -static void rna_Base_select_update(bContext *C, PointerRNA *ptr) +static void rna_Base_select_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Base *base= (Base*)ptr->data; short mode = base->flag & BA_SELECT ? BA_SELECT : BA_DESELECT; @@ -182,10 +182,9 @@ static void rna_Object_layer_update__internal(Scene *scene, Base *base, Object * } } -static void rna_Object_layer_update(bContext *C, PointerRNA *ptr) +static void rna_Object_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; - Scene *scene= CTX_data_scene(C); Base *base; base= object_in_scene(ob, scene); @@ -196,11 +195,10 @@ static void rna_Object_layer_update(bContext *C, PointerRNA *ptr) rna_Object_layer_update__internal(scene, base, ob); } -static void rna_Base_layer_update(bContext *C, PointerRNA *ptr) +static void rna_Base_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Base *base= (Base*)ptr->id.data; Object *ob= (Object*)base->object; - Scene *scene= CTX_data_scene(C); ob->lay= base->lay; @@ -527,9 +525,8 @@ static void rna_Object_active_particle_system_index_set(PointerRNA *ptr, int val psys_set_current_num(ob, value); } -static void rna_Object_particle_update(bContext *C, PointerRNA *ptr) +static void rna_Object_particle_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= CTX_data_scene(C); Object *ob= (Object*)ptr->id.data; PE_current_changed(scene, ob); @@ -973,7 +970,7 @@ static void rna_Object_active_constraint_set(PointerRNA *ptr, PointerRNA value) static bConstraint *rna_Object_constraint_new(Object *object, bContext *C, int type) { - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_ADDED, object); + WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT|NA_ADDED, object); return add_ob_constraint(object, NULL, type); } @@ -982,7 +979,7 @@ static int rna_Object_constraint_remove(Object *object, bContext *C, int index) int ok = remove_constraint_index(&object->constraints, index); if(ok) { ED_object_constraint_set_active(object, NULL); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, object); + WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT, object); } return ok; diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index c601622fcc3..9a57a24e1a7 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -97,9 +97,9 @@ EnumPropertyItem empty_vortex_shape_items[] = { #include "ED_object.h" -static void rna_Cache_change(bContext *C, PointerRNA *ptr) +static void rna_Cache_change(Main *bmain, Scene *scene, PointerRNA *ptr) { - Object *ob = CTX_data_active_object(C); + Object *ob = (Object*)ptr->id.data; PointCache *cache = (PointCache*)ptr->data; PTCacheID *pid = NULL; ListBase pidlist; @@ -124,9 +124,9 @@ static void rna_Cache_change(bContext *C, PointerRNA *ptr) BLI_freelistN(&pidlist); } -static void rna_Cache_toggle_disk_cache(bContext *C, PointerRNA *ptr) +static void rna_Cache_toggle_disk_cache(Main *bmain, Scene *scene, PointerRNA *ptr) { - Object *ob = CTX_data_active_object(C); + Object *ob = (Object*)ptr->id.data; PointCache *cache = (PointCache*)ptr->data; PTCacheID *pid = NULL; ListBase pidlist; @@ -147,9 +147,9 @@ static void rna_Cache_toggle_disk_cache(bContext *C, PointerRNA *ptr) BLI_freelistN(&pidlist); } -static void rna_Cache_idname_change(bContext *C, PointerRNA *ptr) +static void rna_Cache_idname_change(Main *bmain, Scene *scene, PointerRNA *ptr) { - Object *ob = CTX_data_active_object(C); + Object *ob = (Object*)ptr->id.data; PointCache *cache = (PointCache*)ptr->data; PTCacheID *pid = NULL, *pid2= NULL; ListBase pidlist; @@ -440,7 +440,7 @@ static int particle_id_check(PointerRNA *ptr) return (GS(id->name) == ID_PA); } -static void rna_FieldSettings_update(bContext *C, PointerRNA *ptr) +static void rna_FieldSettings_update(Main *bmain, Scene *scene, PointerRNA *ptr) { if(particle_id_check(ptr)) { ParticleSettings *part = (ParticleSettings*)ptr->id.data; @@ -456,7 +456,7 @@ static void rna_FieldSettings_update(bContext *C, PointerRNA *ptr) } DAG_id_flush_update(&part->id, OB_RECALC|PSYS_RECALC_RESET); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, NULL); } else { @@ -468,14 +468,12 @@ static void rna_FieldSettings_update(bContext *C, PointerRNA *ptr) } DAG_id_flush_update(&ob->id, OB_RECALC_OB); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, ob); } } -static void rna_FieldSettings_shape_update(bContext *C, PointerRNA *ptr) +static void rna_FieldSettings_shape_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= CTX_data_scene(C); - if(!particle_id_check(ptr)) { Object *ob= (Object*)ptr->id.data; PartDeflect *pd= ob->pd; @@ -492,14 +490,12 @@ static void rna_FieldSettings_shape_update(bContext *C, PointerRNA *ptr) ED_object_modifier_remove(NULL, scene, ob, md); } - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, ob); } } -static void rna_FieldSettings_dependency_update(bContext *C, PointerRNA *ptr) +static void rna_FieldSettings_dependency_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= CTX_data_scene(C); - if(particle_id_check(ptr)) { DAG_id_flush_update((ID*)ptr->id.data, OB_RECALC|PSYS_RECALC_RESET); } @@ -513,7 +509,7 @@ static void rna_FieldSettings_dependency_update(bContext *C, PointerRNA *ptr) do_curvebuts(B_CU3D); // all curves too }*/ - rna_FieldSettings_shape_update(C, ptr); + rna_FieldSettings_shape_update(bmain, scene, ptr); DAG_scene_sort(scene); @@ -522,7 +518,7 @@ static void rna_FieldSettings_dependency_update(bContext *C, PointerRNA *ptr) else DAG_id_flush_update(&ob->id, OB_RECALC_OB); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, ob); } } @@ -550,22 +546,20 @@ static char *rna_FieldSettings_path(PointerRNA *ptr) return NULL; } -static void rna_EffectorWeight_update(bContext *C, PointerRNA *ptr) +static void rna_EffectorWeight_update(Main *bmain, Scene *scene, PointerRNA *ptr) { DAG_id_flush_update((ID*)ptr->id.data, OB_RECALC_DATA|PSYS_RECALC_RESET); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, NULL); } -static void rna_EffectorWeight_dependency_update(bContext *C, PointerRNA *ptr) +static void rna_EffectorWeight_dependency_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= CTX_data_scene(C); - DAG_scene_sort(scene); DAG_id_flush_update((ID*)ptr->id.data, OB_RECALC_DATA|PSYS_RECALC_RESET); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, NULL); } static char *rna_EffectorWeight_path(PointerRNA *ptr) @@ -612,9 +606,8 @@ static char *rna_EffectorWeight_path(PointerRNA *ptr) return NULL; } -static void rna_CollisionSettings_dependency_update(bContext *C, PointerRNA *ptr) +static void rna_CollisionSettings_dependency_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= CTX_data_scene(C); Object *ob= (Object*)ptr->id.data; ModifierData *md= modifiers_findByType(ob, eModifierType_Collision); @@ -624,23 +617,23 @@ static void rna_CollisionSettings_dependency_update(bContext *C, PointerRNA *ptr else if(!ob->pd->deflect && md) ED_object_modifier_remove(NULL, scene, ob, md); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, ob); } -static void rna_CollisionSettings_update(bContext *C, PointerRNA *ptr) +static void rna_CollisionSettings_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; DAG_id_flush_update(&ob->id, OB_RECALC); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_main_add_notifier(NC_OBJECT|ND_DRAW, ob); } -static void rna_softbody_update(bContext *C, PointerRNA *ptr) +static void rna_softbody_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_main_add_notifier(NC_OBJECT|ND_MODIFIER, ob); } diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index 6ddec53c28d..4ff42bbb7c2 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -109,7 +109,7 @@ EnumPropertyItem part_hair_ren_as_items[] = { #include "BLI_listbase.h" /* property update functions */ -static void particle_recalc(bContext *C, PointerRNA *ptr, short flag) +static void particle_recalc(Main *bmain, Scene *scene, PointerRNA *ptr, short flag) { if(ptr->type==&RNA_ParticleSystem) { ParticleSystem *psys = (ParticleSystem*)ptr->data; @@ -121,43 +121,41 @@ static void particle_recalc(bContext *C, PointerRNA *ptr, short flag) else DAG_id_flush_update(ptr->id.data, OB_RECALC_DATA|flag); - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, NULL); + WM_main_add_notifier(NC_OBJECT|ND_PARTICLE_DATA, NULL); } -static void rna_Particle_redo(bContext *C, PointerRNA *ptr) +static void rna_Particle_redo(Main *bmain, Scene *scene, PointerRNA *ptr) { - particle_recalc(C, ptr, PSYS_RECALC_REDO); + particle_recalc(bmain, scene, ptr, PSYS_RECALC_REDO); } -static void rna_Particle_redo_dependency(bContext *C, PointerRNA *ptr) +static void rna_Particle_redo_dependency(Main *bmain, Scene *scene, PointerRNA *ptr) { - DAG_scene_sort(CTX_data_scene(C)); - rna_Particle_redo(C, ptr); + DAG_scene_sort(scene); + rna_Particle_redo(bmain, scene, ptr); } -static void rna_Particle_reset(bContext *C, PointerRNA *ptr) +static void rna_Particle_reset(Main *bmain, Scene *scene, PointerRNA *ptr) { - particle_recalc(C, ptr, PSYS_RECALC_RESET); + particle_recalc(bmain, scene, ptr, PSYS_RECALC_RESET); } -static void rna_Particle_change_type(bContext *C, PointerRNA *ptr) +static void rna_Particle_change_type(Main *bmain, Scene *scene, PointerRNA *ptr) { - particle_recalc(C, ptr, PSYS_RECALC_RESET|PSYS_RECALC_TYPE); + particle_recalc(bmain, scene, ptr, PSYS_RECALC_RESET|PSYS_RECALC_TYPE); } -static void rna_Particle_change_physics(bContext *C, PointerRNA *ptr) +static void rna_Particle_change_physics(Main *bmain, Scene *scene, PointerRNA *ptr) { - particle_recalc(C, ptr, PSYS_RECALC_RESET|PSYS_RECALC_PHYS); + particle_recalc(bmain, scene, ptr, PSYS_RECALC_RESET|PSYS_RECALC_PHYS); } -static void rna_Particle_redo_child(bContext *C, PointerRNA *ptr) +static void rna_Particle_redo_child(Main *bmain, Scene *scene, PointerRNA *ptr) { - particle_recalc(C, ptr, PSYS_RECALC_CHILD); + particle_recalc(bmain, scene, ptr, PSYS_RECALC_CHILD); } -static void rna_Particle_target_reset(bContext *C, PointerRNA *ptr) +static void rna_Particle_target_reset(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene = CTX_data_scene(C); - if(ptr->type==&RNA_ParticleTarget) { ParticleTarget *pt = (ParticleTarget*)ptr->data; Object *ob = (Object*)ptr->id.data; @@ -187,10 +185,10 @@ static void rna_Particle_target_reset(bContext *C, PointerRNA *ptr) DAG_scene_sort(scene); } - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, NULL); + WM_main_add_notifier(NC_OBJECT|ND_PARTICLE_DATA, NULL); } -static void rna_Particle_target_redo(bContext *C, PointerRNA *ptr) +static void rna_Particle_target_redo(Main *bmain, Scene *scene, PointerRNA *ptr) { if(ptr->type==&RNA_ParticleTarget) { Object *ob = (Object*)ptr->id.data; @@ -199,13 +197,12 @@ static void rna_Particle_target_redo(bContext *C, PointerRNA *ptr) psys->recalc = PSYS_RECALC_REDO; DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, NULL); + WM_main_add_notifier(NC_OBJECT|ND_PARTICLE_DATA, NULL); } } -static void rna_Particle_hair_dynamics(bContext *C, PointerRNA *ptr) +static void rna_Particle_hair_dynamics(Main *bmain, Scene *scene, PointerRNA *ptr) { - /* Scene *scene = CTX_data_scene(C); */ ParticleSystem *psys = (ParticleSystem*)ptr->data; if(psys && !psys->clmd) { @@ -213,10 +210,10 @@ static void rna_Particle_hair_dynamics(bContext *C, PointerRNA *ptr) psys->clmd->sim_parms->goalspring = 0.0f; psys->clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_GOAL|CLOTH_SIMSETTINGS_FLAG_NO_SPRING_COMPRESS; psys->clmd->coll_parms->flags &= ~CLOTH_COLLSETTINGS_FLAG_SELF; - rna_Particle_redo(C, ptr); + rna_Particle_redo(bmain, scene, ptr); } else - WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, NULL); + WM_main_add_notifier(NC_OBJECT|ND_PARTICLE_DATA, NULL); } static PointerRNA rna_particle_settings_get(PointerRNA *ptr) { @@ -241,7 +238,7 @@ static void rna_particle_settings_set(PointerRNA *ptr, PointerRNA value) psys_check_boid_data(psys); } } -static void rna_Particle_abspathtime_update(bContext *C, PointerRNA *ptr) +static void rna_Particle_abspathtime_update(Main *bmain, Scene *scene, PointerRNA *ptr) { ParticleSettings *settings = (ParticleSettings*)ptr->data; float delta = settings->end + settings->lifetime - settings->sta; @@ -253,7 +250,7 @@ static void rna_Particle_abspathtime_update(bContext *C, PointerRNA *ptr) settings->path_start = (settings->path_start - settings->sta)/delta; settings->path_end = (settings->path_end - settings->sta)/delta; } - rna_Particle_redo(C, ptr); + rna_Particle_redo(bmain, scene, ptr); } static void rna_PartSettings_start_set(struct PointerRNA *ptr, float value) { diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index 8a4aadcba57..c7aca9c9738 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -58,14 +58,14 @@ #include "MEM_guardedalloc.h" -static void rna_Pose_update(bContext *C, PointerRNA *ptr) +static void rna_Pose_update(Main *bmain, Scene *scene, PointerRNA *ptr) { // XXX when to use this? ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK); DAG_id_flush_update(ptr->id.data, OB_RECALC_DATA); } -static void rna_Pose_IK_update(bContext *C, PointerRNA *ptr) +static void rna_Pose_IK_update(Main *bmain, Scene *scene, PointerRNA *ptr) { // XXX when to use this? ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK); Object *ob= ptr->id.data; @@ -142,11 +142,10 @@ static void rna_Pose_ik_solver_set(struct PointerRNA *ptr, int value) } } -static void rna_Pose_ik_solver_update(bContext *C, PointerRNA *ptr) +static void rna_Pose_ik_solver_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= ptr->id.data; bPose *pose = ptr->data; - Scene *scene = CTX_data_scene(C); pose->flag |= POSE_RECALC; // checks & sorts pose channels DAG_scene_sort(scene); @@ -242,7 +241,7 @@ static StructRNA *rna_Pose_ikparam_typef(PointerRNA *ptr) } } -static void rna_Itasc_update(bContext *C, PointerRNA *ptr) +static void rna_Itasc_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob = ptr->id.data; bItasc *itasc = ptr->data; @@ -267,13 +266,13 @@ static void rna_Itasc_update(bContext *C, PointerRNA *ptr) DAG_id_flush_update(&ob->id, OB_RECALC_DATA); } -static void rna_Itasc_update_rebuild(bContext *C, PointerRNA *ptr) +static void rna_Itasc_update_rebuild(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob= ptr->id.data; bPose *pose = ob->pose; pose->flag |= POSE_RECALC; // checks & sorts pose channels - rna_Itasc_update(C, ptr); + rna_Itasc_update(bmain, scene, ptr); } static PointerRNA rna_PoseChannel_bone_group_get(PointerRNA *ptr) @@ -431,7 +430,7 @@ static void rna_PoseChannel_active_constraint_set(PointerRNA *ptr, PointerRNA va static bConstraint *rna_PoseChannel_constraints_new(bPoseChannel *pchan, bContext *C, int type) { - //WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_ADDED, object); + //WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT|NA_ADDED, object); // TODO, pass object also // TODO, new pose bones don't have updated draw flags return add_pose_constraint(NULL, pchan, NULL, type); @@ -441,7 +440,7 @@ static int rna_PoseChannel_constraints_remove(bPoseChannel *pchan, bContext *C, { // TODO //ED_object_constraint_set_active(object, NULL); - //WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, object); + //WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT, object); return remove_constraint_index(&pchan->constraints, index); } diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 5000dd90b1d..033a8f45809 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -190,9 +190,8 @@ static void rna_Scene_layer_set(PointerRNA *ptr, const int *values) scene->lay= ED_view3d_scene_layer_set(scene->lay, values); } -static void rna_Scene_layer_update(bContext *C, PointerRNA *ptr) +static void rna_Scene_layer_update(Main *bmain, Scene *unused, PointerRNA *ptr) { - Main *bmain= CTX_data_main(C); Scene *scene= (Scene*)ptr->data; ED_view3d_scene_layers_update(bmain, scene); @@ -269,7 +268,7 @@ static void rna_Scene_preview_range_end_frame_set(PointerRNA *ptr, int value) data->r.pefra= value; } -static void rna_Scene_frame_update(bContext *C, PointerRNA *ptr) +static void rna_Scene_frame_update(Main *bmain, Scene *unused, PointerRNA *ptr) { //Scene *scene= ptr->id.data; //ED_update_for_newframe(C); @@ -538,7 +537,7 @@ static void rna_SceneRenderLayer_layer_set(PointerRNA *ptr, const int *values) rl->lay= ED_view3d_scene_layer_set(rl->lay, values); } -static void rna_SceneRenderLayer_pass_update(bContext *C, PointerRNA *ptr) +static void rna_SceneRenderLayer_pass_update(Main *bmain, Scene *unused, PointerRNA *ptr) { Scene *scene= (Scene*)ptr->id.data; @@ -555,7 +554,7 @@ static void rna_Scene_use_nodes_set(PointerRNA *ptr, int value) ED_node_composit_default(scene); } -static void rna_Physics_update(bContext *C, PointerRNA *ptr) +static void rna_Physics_update(Main *bmain, Scene *unused, PointerRNA *ptr) { Scene *scene= (Scene*)ptr->id.data; Base *base; diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c index 89e9c2ee5ca..4efbed167a6 100644 --- a/source/blender/makesrna/intern/rna_scene_api.c +++ b/source/blender/makesrna/intern/rna_scene_api.c @@ -54,7 +54,7 @@ static void rna_Scene_set_frame(Scene *scene, bContext *C, int frame) CLAMP(scene->r.cfra, MINAFRAME, MAXFRAME); scene_update_for_newframe(scene, (1<<20) - 1); - WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); + WM_main_add_notifier(NC_SCENE|ND_FRAME, scene); } static KeyingSet *rna_Scene_add_keying_set(Scene *sce, ReportList *reports, diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c index 57ab63c952d..da8f326caca 100644 --- a/source/blender/makesrna/intern/rna_screen.c +++ b/source/blender/makesrna/intern/rna_screen.c @@ -61,13 +61,13 @@ static void rna_Screen_scene_set(PointerRNA *ptr, PointerRNA value) sc->newscene= value.data; } -static void rna_Screen_scene_update(bContext *C, PointerRNA *ptr) +static void rna_Screen_scene_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bScreen *sc= (bScreen*)ptr->data; /* exception: can't set screens inside of area/region handers */ if(sc->newscene) { - WM_event_add_notifier(C, NC_SCENE|ND_SCENEBROWSE, sc->newscene); + WM_main_add_notifier(NC_SCENE|ND_SCENEBROWSE, sc->newscene); sc->newscene= NULL; } } @@ -94,10 +94,8 @@ static void rna_Area_type_update(bContext *C, PointerRNA *ptr) { ScrArea *sa= (ScrArea*)ptr->data; - if(sa) { - ED_area_newspace(C, sa, sa->butspacetype); /* XXX - this uses the window */ - ED_area_tag_redraw(sa); - } + ED_area_newspace(C, sa, sa->butspacetype); /* XXX - this uses the window */ + ED_area_tag_redraw(sa); } #else @@ -135,9 +133,9 @@ static void rna_def_area(BlenderRNA *brna) RNA_def_property_enum_items(prop, space_type_items); RNA_def_property_enum_funcs(prop, NULL, "rna_Area_type_set", NULL); RNA_def_property_ui_text(prop, "Type", "Space type."); + RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, 0, "rna_Area_type_update"); - RNA_def_function(srna, "tag_redraw", "ED_area_tag_redraw"); } diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index 6cfd38ba26e..9e13ae1191d 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -100,9 +100,10 @@ static void rna_Paint_active_brush_set(PointerRNA *ptr, PointerRNA value) paint_brush_set(ptr->data, value.data); } -static void rna_ParticleEdit_redo(bContext *C, PointerRNA *ptr) +static void rna_ParticleEdit_redo(Main *bmain, Scene *scene, PointerRNA *ptr) { - PTCacheEdit *edit = PE_get_current(CTX_data_scene(C), CTX_data_active_object(C)); + Object *ob= (scene->basact)? scene->basact->object: NULL; + PTCacheEdit *edit = PE_get_current(scene, ob); if(!edit) return; @@ -110,9 +111,9 @@ static void rna_ParticleEdit_redo(bContext *C, PointerRNA *ptr) psys_free_path_cache(edit->psys, edit); } -static void rna_ParticleEdit_update(bContext *C, PointerRNA *ptr) +static void rna_ParticleEdit_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Object *ob = CTX_data_active_object(C); + Object *ob= (scene->basact)? scene->basact->object: NULL; if(ob) DAG_id_flush_update(&ob->id, OB_RECALC_DATA); } @@ -120,7 +121,8 @@ static void rna_ParticleEdit_update(bContext *C, PointerRNA *ptr) static EnumPropertyItem *rna_ParticleEdit_tool_itemf(bContext *C, PointerRNA *ptr, int *free) { Scene *scene= CTX_data_scene(C); - PTCacheEdit *edit = PE_get_current(scene, CTX_data_active_object(C)); + Object *ob= (scene->basact)? scene->basact->object: NULL; + PTCacheEdit *edit = PE_get_current(scene, ob); if(edit && edit->psys) return particle_edit_hair_brush_items; diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 03fa0a410fe..68bfea7161d 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -264,9 +264,8 @@ static void rna_SequenceElement_filename_set(PointerRNA *ptr, const char *value) BLI_strncpy(elem->name, name, sizeof(elem->name)); } -static void rna_Sequence_update(bContext *C, PointerRNA *ptr) +static void rna_Sequence_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= (Scene*)ptr->id.data; Editing *ed= seq_give_editing(scene, FALSE); free_imbuf_seq(scene, &ed->seqbase, FALSE); @@ -275,13 +274,12 @@ static void rna_Sequence_update(bContext *C, PointerRNA *ptr) seq_update_sound(ptr->data); } -static void rna_Sequence_mute_update(bContext *C, PointerRNA *ptr) +static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= (Scene*)ptr->id.data; Editing *ed= seq_give_editing(scene, FALSE); seq_update_muting(ed); - rna_Sequence_update(C, ptr); + rna_Sequence_update(bmain, scene, ptr); } #else diff --git a/source/blender/makesrna/intern/rna_smoke.c b/source/blender/makesrna/intern/rna_smoke.c index e302ea90a8a..11b1e80865e 100644 --- a/source/blender/makesrna/intern/rna_smoke.c +++ b/source/blender/makesrna/intern/rna_smoke.c @@ -49,33 +49,33 @@ #include "ED_object.h" -static void rna_Smoke_update(bContext *C, PointerRNA *ptr) +static void rna_Smoke_update(Main *bmain, Scene *scene, PointerRNA *ptr) { DAG_id_flush_update(ptr->id.data, OB_RECALC_DATA); } -static void rna_Smoke_dependency_update(bContext *C, PointerRNA *ptr) +static void rna_Smoke_dependency_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - rna_Smoke_update(C, ptr); - DAG_scene_sort(CTX_data_scene(C)); + rna_Smoke_update(bmain, scene, ptr); + DAG_scene_sort(scene); } -static void rna_Smoke_reset(bContext *C, PointerRNA *ptr) +static void rna_Smoke_reset(Main *bmain, Scene *scene, PointerRNA *ptr) { SmokeDomainSettings *settings = (SmokeDomainSettings*)ptr->data; smokeModifier_reset(settings->smd); - rna_Smoke_update(C, ptr); + rna_Smoke_update(bmain, scene, ptr); } -static void rna_Smoke_reset_dependancy(bContext *C, PointerRNA *ptr) +static void rna_Smoke_reset_dependancy(Main *bmain, Scene *scene, PointerRNA *ptr) { SmokeDomainSettings *settings = (SmokeDomainSettings*)ptr->data; smokeModifier_reset(settings->smd); - rna_Smoke_dependency_update(C, ptr); + rna_Smoke_dependency_update(bmain, scene, ptr); } static char *rna_SmokeDomainSettings_path(PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_sound.c b/source/blender/makesrna/intern/rna_sound.c index 38e4d850c68..7fc209bfc5f 100644 --- a/source/blender/makesrna/intern/rna_sound.c +++ b/source/blender/makesrna/intern/rna_sound.c @@ -37,9 +37,9 @@ #include "BKE_sound.h" #include "BKE_context.h" -static void rna_Sound_filename_update(bContext *C, PointerRNA *ptr) +static void rna_Sound_filename_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - sound_load(CTX_data_main(C), (bSound*)ptr->data); + sound_load(bmain, (bSound*)ptr->data); } static int rna_Sound_caching_get(PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 21258458a57..28784e0e666 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -83,7 +83,7 @@ static EnumPropertyItem transform_orientation_items[] = { {V3D_MANIP_CUSTOM, "CUSTOM", 0, "Custom", "Use a custom transform orientation"}, {0, NULL, 0, NULL, NULL}}; -static EnumPropertyItem autosnap_items[] = { +EnumPropertyItem autosnap_items[] = { {SACTSNAP_OFF, "NONE", 0, "No Auto-Snap", ""}, {SACTSNAP_STEP, "STEP", 0, "Time Step", "Snap to 1.0 frame/second intervals."}, {SACTSNAP_FRAME, "FRAME", 0, "Nearest Frame", "Snap to actual frames/seconds (nla-action time)."}, @@ -249,12 +249,9 @@ static PointerRNA rna_SpaceImageEditor_uvedit_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_SpaceUVEditor, ptr->data); } -static void rna_SpaceImageEditor_paint_update(bContext *C, PointerRNA *ptr) +static void rna_SpaceImageEditor_paint_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Scene *scene= CTX_data_scene(C); - - if(scene) - paint_init(&scene->toolsettings->imapaint.paint, PAINT_CURSOR_TEXTURE_PAINT); + paint_init(&scene->toolsettings->imapaint.paint, PAINT_CURSOR_TEXTURE_PAINT); } static int rna_SpaceImageEditor_show_render_get(PointerRNA *ptr) @@ -322,7 +319,7 @@ static EnumPropertyItem *rna_SpaceImageEditor_draw_channels_itemf(bContext *C, P return item; } -static void rna_SpaceImageEditor_curves_update(bContext *C, PointerRNA *ptr) +static void rna_SpaceImageEditor_curves_update(Main *bmain, Scene *scene, PointerRNA *ptr) { SpaceImage *sima= (SpaceImage*)ptr->data; ImBuf *ibuf; @@ -332,7 +329,7 @@ static void rna_SpaceImageEditor_curves_update(bContext *C, PointerRNA *ptr) curvemapping_do_ibuf(sima->cumap, ibuf); ED_space_image_release_buffer(sima, lock); - WM_event_add_notifier(C, NC_IMAGE, sima->image); + WM_main_add_notifier(NC_IMAGE, sima->image); } @@ -432,10 +429,12 @@ static void rna_View3D_display_background_image_set(PointerRNA *ptr, int value) /* Space Time */ -static void rna_SpaceTime_redraw_update(bContext *C, PointerRNA *ptr) +static void rna_SpaceTime_redraw_update(Main *bmain, Scene *scene, PointerRNA *ptr) { SpaceTime *st= (SpaceTime*)ptr->data; - ED_screen_animation_timer_update(C, st->redraws); + bScreen *screen= (bScreen*)ptr->id.data; + + ED_screen_animation_timer_update(screen, st->redraws); } /* Space Dopesheet */ @@ -446,10 +445,10 @@ static void rna_SpaceDopeSheetEditor_action_set(PointerRNA *ptr, PointerRNA valu saction->action= value.data; } -static void rna_SpaceDopeSheetEditor_action_update(bContext *C, PointerRNA *ptr) +static void rna_SpaceDopeSheetEditor_action_update(Main *bmain, Scene *scene, PointerRNA *ptr) { SpaceAction *saction= (SpaceAction*)(ptr->data); - Object *obact= CTX_data_active_object(C); + Object *obact= (scene->basact)? scene->basact->object: NULL; /* we must set this action to be the one used by active object (if not pinned) */ if(obact && saction->pin == 0) { @@ -464,7 +463,7 @@ static void rna_SpaceDopeSheetEditor_action_update(bContext *C, PointerRNA *ptr) } } -static void rna_SpaceDopeSheetEditor_mode_update(bContext *C, PointerRNA *ptr) +static void rna_SpaceDopeSheetEditor_mode_update(Main *bmain, Scene *scene, PointerRNA *ptr) { SpaceAction *saction= (SpaceAction*)(ptr->data); diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index be38139ce4e..19d33465ceb 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -106,21 +106,21 @@ static StructRNA *rna_Texture_refine(struct PointerRNA *ptr) } } -static void rna_Texture_update(bContext *C, PointerRNA *ptr) +static void rna_Texture_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Tex *tex= ptr->id.data; DAG_id_flush_update(&tex->id, 0); - WM_event_add_notifier(C, NC_TEXTURE, tex); + WM_main_add_notifier(NC_TEXTURE, tex); } /* Used for Texture Properties, used (also) for/in Nodes */ -static void rna_Texture_nodes_update(bContext *C, PointerRNA *ptr) +static void rna_Texture_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Tex *tex= ptr->id.data; DAG_id_flush_update(&tex->id, 0); - WM_event_add_notifier(C, NC_TEXTURE|ND_NODES, tex); + WM_main_add_notifier(NC_TEXTURE|ND_NODES, tex); } static void rna_Texture_type_set(PointerRNA *ptr, int value) @@ -140,7 +140,7 @@ static void rna_Texture_type_set(PointerRNA *ptr, int value) tex->type = value; } -void rna_TextureSlot_update(bContext *C, PointerRNA *ptr) +void rna_TextureSlot_update(Main *bmain, Scene *scene, PointerRNA *ptr) { ID *id= ptr->id.data; @@ -148,16 +148,16 @@ void rna_TextureSlot_update(bContext *C, PointerRNA *ptr) switch(GS(id->name)) { case ID_MA: - WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, id); + WM_main_add_notifier(NC_MATERIAL|ND_SHADING, id); break; case ID_WO: - WM_event_add_notifier(C, NC_WORLD, id); + WM_main_add_notifier(NC_WORLD, id); break; case ID_LA: - WM_event_add_notifier(C, NC_LAMP|ND_LIGHTING, id); + WM_main_add_notifier(NC_LAMP|ND_LIGHTING, id); break; case ID_BR: - WM_event_add_notifier(C, NC_BRUSH, id); + WM_main_add_notifier(NC_BRUSH, id); break; } } diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index 1bb7fe720a6..d33e96df2e6 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -145,7 +145,7 @@ static void rna_Panel_unregister(const bContext *C, StructRNA *type) /* update while blender is running */ if(C) - WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); } static StructRNA *rna_Panel_register(const bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) @@ -196,7 +196,7 @@ static StructRNA *rna_Panel_register(const bContext *C, ReportList *reports, voi /* update while blender is running */ if(C) - WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); return pt->ext.srna; } @@ -242,7 +242,7 @@ static void rna_Header_unregister(const bContext *C, StructRNA *type) /* update while blender is running */ if(C) - WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); } static StructRNA *rna_Header_register(const bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) @@ -289,7 +289,7 @@ static StructRNA *rna_Header_register(const bContext *C, ReportList *reports, vo /* update while blender is running */ if(C) - WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); return ht->ext.srna; } @@ -356,7 +356,7 @@ static void rna_Menu_unregister(const bContext *C, StructRNA *type) /* update while blender is running */ if(C) - WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); } static StructRNA *rna_Menu_register(const bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) @@ -396,7 +396,7 @@ static StructRNA *rna_Menu_register(const bContext *C, ReportList *reports, void /* update while blender is running */ if(C) - WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); return mt->ext.srna; } diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 278d7855f3a..2424a72b6a3 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -48,9 +48,9 @@ #include "DNA_object_types.h" // #include "GPU_draw.h" -static void rna_userdef_update(bContext *C, PointerRNA *ptr) +static void rna_userdef_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - WM_event_add_notifier(C, NC_WINDOW, NULL); + WM_main_add_notifier(NC_WINDOW, NULL); } #if 0 @@ -132,14 +132,13 @@ static PointerRNA rna_UserDef_system_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_UserPreferencesSystem, ptr->data); } -static void rna_UserDef_audio_update(bContext *C, PointerRNA *ptr) +static void rna_UserDef_audio_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - sound_init(C); + sound_init(); } -static void rna_UserDef_weight_color_update(bContext *C, PointerRNA *ptr) +static void rna_UserDef_weight_color_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Main *bmain= CTX_data_main(C); Object *ob; vDM_ColorBand_store((U.flag & USER_CUSTOM_RANGE) ? (&U.coba_weight):NULL); @@ -149,22 +148,25 @@ static void rna_UserDef_weight_color_update(bContext *C, PointerRNA *ptr) DAG_id_flush_update(&ob->id, OB_RECALC_DATA); } - rna_userdef_update(C, ptr); + rna_userdef_update(bmain, scene, ptr); } // XXX - todo, this is not accessible from here and it only works when the userprefs are in the same window. // extern int GPU_default_lights(void); -static void rna_UserDef_viewport_lights_update(bContext *C, PointerRNA *ptr) +static void rna_UserDef_viewport_lights_update(Main *bmain, Scene *scene, PointerRNA *ptr) { // GPU_default_lights(); - WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, NULL); - rna_userdef_update(C, ptr); + WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D, NULL); + rna_userdef_update(bmain, scene, ptr); } -static void rna_userdef_autosave_update(bContext *C, PointerRNA *ptr) +static void rna_userdef_autosave_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - WM_autosave_init(C); - rna_userdef_update(C, ptr); + wmWindowManager *wm= bmain->wm.first; + + if(wm) + WM_autosave_init(wm); + rna_userdef_update(bmain, scene, ptr); } #else diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index f58f14ec928..d3e0d166755 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -348,13 +348,13 @@ static void rna_Window_screen_set(PointerRNA *ptr, PointerRNA value) win->newscreen= value.data; } -static void rna_Window_screen_update(bContext *C, PointerRNA *ptr) +static void rna_Window_screen_update(Main *bmain, Scene *scene, PointerRNA *ptr) { wmWindow *win= (wmWindow*)ptr->data; /* exception: can't set screens inside of area/region handers */ if(win->newscreen) { - WM_event_add_notifier(C, NC_SCREEN|ND_SCREENBROWSE, win->newscreen); + WM_main_add_notifier(NC_SCREEN|ND_SCREENBROWSE, win->newscreen); win->newscreen= NULL; } } diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c index 231faffef0f..4046fc266da 100644 --- a/source/blender/makesrna/intern/rna_world.c +++ b/source/blender/makesrna/intern/rna_world.c @@ -82,20 +82,20 @@ static void rna_World_active_texture_set(PointerRNA *ptr, PointerRNA value) set_current_world_texture(wo, value.data); } -static void rna_World_update(bContext *C, PointerRNA *ptr) +static void rna_World_update(Main *bmain, Scene *scene, PointerRNA *ptr) { World *wo= ptr->id.data; DAG_id_flush_update(&wo->id, 0); - WM_event_add_notifier(C, NC_WORLD, wo); + WM_main_add_notifier(NC_WORLD, wo); } -static void rna_World_draw_update(bContext *C, PointerRNA *ptr) +static void rna_World_draw_update(Main *bmain, Scene *scene, PointerRNA *ptr) { World *wo= ptr->id.data; DAG_id_flush_update(&wo->id, 0); - WM_event_add_notifier(C, NC_WORLD|ND_WORLD_DRAW, wo); + WM_main_add_notifier(NC_WORLD|ND_WORLD_DRAW, wo); } #else diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 1fab234dbf7..84f41b4e4e0 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -74,7 +74,7 @@ int WM_write_homefile (struct bContext *C, struct wmOperator *op); void WM_read_file (struct bContext *C, char *name, struct ReportList *reports); void WM_write_file (struct bContext *C, char *target, int fileflags, struct ReportList *reports); void WM_read_autosavefile(struct bContext *C); -void WM_autosave_init (struct bContext *C); +void WM_autosave_init (struct wmWindowManager *wm); /* mouse cursors */ void WM_cursor_set (struct wmWindow *win, int curs); diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index d455c8b2bc1..ee1d76020c2 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -213,7 +213,7 @@ void WM_check(bContext *C) /* case: fileread */ if((wm->initialized & WM_INIT_WINDOW) == 0) { WM_keymap_init(C); - WM_autosave_init(C); + WM_autosave_init(wm); } /* case: no open windows at all, for old file reads */ diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index ba514f097e6..81666fbe023 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -569,9 +569,8 @@ void wm_autosave_location(char *filename) BLI_make_file_string("/", filename, U.tempdir, pidstr); } -void WM_autosave_init(bContext *C) +void WM_autosave_init(wmWindowManager *wm) { - wmWindowManager *wm= CTX_wm_manager(C); wm_autosave_timer_ended(wm); if(U.flag & USER_AUTOSAVE) -- cgit v1.2.3 From 278fc187cf09a7dda1332a469369d97db670f54a Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 8 Dec 2009 17:37:31 +0000 Subject: Image Paint keymap in image editor wasn't looked up with the space type. --- source/blender/editors/space_image/space_image.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 2751edfcb43..2f839feeb36 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -391,7 +391,7 @@ static void image_main_area_init(wmWindowManager *wm, ARegion *ar) // UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy); /* image paint polls for mode */ - keymap= WM_keymap_find(wm->defaultconf, "Image Paint", SPACE_IMAGE, 0); + keymap= WM_keymap_find(wm->defaultconf, "Image Paint", 0, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); keymap= WM_keymap_find(wm->defaultconf, "UVEdit", 0, 0); -- cgit v1.2.3 From 1b3a295e4f11ab2837bceb6aea5bacdc02e648d0 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 8 Dec 2009 18:02:50 +0000 Subject: RNA functions to find keymaps in a keyconfig (from the usual idname + space or modal keymaps from operator id) --- source/blender/makesrna/intern/rna_wm_api.c | 29 +++++++++++++++++++++++++ source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm_keymap.c | 18 +++++++-------- 3 files changed, 39 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index ce26072e91b..2fbcd2f4ae3 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -52,6 +52,21 @@ static wmKeyMap *rna_keymap_add(wmKeyConfig *keyconf, char *idname, int spaceid, } } +static wmKeyMap *rna_keymap_find(wmKeyConfig *keyconf, char *idname, int spaceid, int regionid) +{ + return WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid); +} + +static wmKeyMap *rna_keymap_find_modal(wmKeyConfig *keyconf, char *idname) +{ + wmOperatorType *ot = WM_operatortype_find(idname, 0); + + if (!ot) + return NULL; + else + return ot->modalkeymap; +} + static wmKeyMap *rna_keymap_active(wmKeyMap *km, bContext *C) { wmWindowManager *wm = CTX_wm_manager(C); @@ -175,6 +190,20 @@ void RNA_api_keyconfig(StructRNA *srna) RNA_def_boolean(func, "modal", 0, "Modal", ""); parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Added key map."); RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "find_keymap", "rna_keymap_find"); + parm= RNA_def_string(func, "name", "", 0, "Name", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", ""); + RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", ""); + parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map."); + RNA_def_function_return(func, parm); + + func= RNA_def_function(srna, "find_keymap_modal", "rna_keymap_find_modal"); + parm= RNA_def_string(func, "name", "", 0, "Operator Name", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map."); + RNA_def_function_return(func, parm); } void RNA_api_keymap(StructRNA *srna) diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 84f41b4e4e0..66ede3f6ba6 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -108,6 +108,7 @@ void WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem char *WM_keymap_item_to_string(wmKeyMapItem *kmi, char *str, int len); wmKeyMap *WM_keymap_find(struct wmKeyConfig *keyconf, char *idname, int spaceid, int regionid); +wmKeyMap *WM_keymap_list_find(ListBase *lb, char *idname, int spaceid, int regionid); wmKeyMap *WM_keymap_active(struct wmWindowManager *wm, struct wmKeyMap *keymap); int WM_keymap_user_init(struct wmWindowManager *wm, struct wmKeyMap *keymap); wmKeyMap *WM_keymap_copy_to_user(struct wmKeyMap *keymap); diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index b22f01b7d7a..fe5b42a1841 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -229,7 +229,7 @@ void WM_keymap_remove_item(wmKeyMap *keymap, wmKeyMapItem *kmi) space/region ids are same as DNA_space_types.h */ /* gets free'd in wm.c */ -static wmKeyMap *wm_keymap_list_find(ListBase *lb, char *idname, int spaceid, int regionid) +wmKeyMap *WM_keymap_list_find(ListBase *lb, char *idname, int spaceid, int regionid) { wmKeyMap *km; @@ -243,7 +243,7 @@ static wmKeyMap *wm_keymap_list_find(ListBase *lb, char *idname, int spaceid, in wmKeyMap *WM_keymap_find(wmKeyConfig *keyconf, char *idname, int spaceid, int regionid) { - wmKeyMap *km= wm_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid); + wmKeyMap *km= WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid); if(km==NULL) { km= MEM_callocN(sizeof(struct wmKeyMap), "keymap list"); @@ -455,7 +455,7 @@ int WM_keymap_user_init(wmWindowManager *wm, wmKeyMap *keymap) /* init from user key config */ keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); if(keyconf) { - km= wm_keymap_list_find(&keyconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + km= WM_keymap_list_find(&keyconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); if(km) { keymap->poll= km->poll; /* lazy init */ keymap->modal_items= km->modal_items; @@ -464,7 +464,7 @@ int WM_keymap_user_init(wmWindowManager *wm, wmKeyMap *keymap) } /* or from default */ - km= wm_keymap_list_find(&wm->defaultconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + km= WM_keymap_list_find(&wm->defaultconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); if(km) { keymap->poll= km->poll; /* lazy init */ keymap->modal_items= km->modal_items; @@ -483,7 +483,7 @@ wmKeyMap *WM_keymap_active(wmWindowManager *wm, wmKeyMap *keymap) return NULL; /* first user defined keymaps */ - km= wm_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + km= WM_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); if(km) { km->poll= keymap->poll; /* lazy init */ km->modal_items= keymap->modal_items; @@ -493,7 +493,7 @@ wmKeyMap *WM_keymap_active(wmWindowManager *wm, wmKeyMap *keymap) /* then user key config */ keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); if(keyconf) { - km= wm_keymap_list_find(&keyconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + km= WM_keymap_list_find(&keyconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); if(km) { km->poll= keymap->poll; /* lazy init */ km->modal_items= keymap->modal_items; @@ -502,7 +502,7 @@ wmKeyMap *WM_keymap_active(wmWindowManager *wm, wmKeyMap *keymap) } /* then use default */ - km= wm_keymap_list_find(&wm->defaultconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + km= WM_keymap_list_find(&wm->defaultconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); return km; } @@ -511,7 +511,7 @@ wmKeyMap *WM_keymap_copy_to_user(wmKeyMap *keymap) wmKeyMap *usermap; wmKeyMapItem *kmi; - usermap= wm_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + usermap= WM_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); if(!usermap) { /* not saved yet, duplicate existing */ @@ -549,7 +549,7 @@ void WM_keymap_restore_to_default(wmKeyMap *keymap) { wmKeyMap *usermap; - usermap= wm_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + usermap= WM_keymap_list_find(&U.keymaps, keymap->idname, keymap->spaceid, keymap->regionid); if(usermap) { WM_keymap_free(usermap); -- cgit v1.2.3 From 7e333010f3b76a467b88e80605df55b8f559bcda Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Dec 2009 18:28:09 +0000 Subject: Animation System: Handling Updates * Added ANIM_list_elem_update and ANIM_id_update functions to call when changing animation curves, which will then call the RNA property update functions for those curves. This is to replace just calling DAG_id_flush_update, that may not always be the right thing to do, and doesn't send proper notifiers for redraw. Still only used/usable when transforming in the graph editor, not sure how this do this with NLA for example, .. needs to be improved. * Added function wm_data_handle_update function to contain the object update function, and also added scene animation update there. Actually it should be doing all datablocks, this makes it work for sequencer. Joshua, do you agree this is the right direction to go in? I can revert or change the code if you think it should be done differently. Mainly wanted to get this working well for sequencer now. --- source/blender/editors/animation/anim_deps.c | 58 ++++++++++++++++++++++ source/blender/editors/include/ED_anim_api.h | 3 ++ .../blender/editors/transform/transform_generics.c | 23 ++------- .../blender/windowmanager/intern/wm_event_system.c | 56 ++++++++++++++------- 4 files changed, 102 insertions(+), 38 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c index 7a96c3b32a3..0e81dab380c 100644 --- a/source/blender/editors/animation/anim_deps.c +++ b/source/blender/editors/animation/anim_deps.c @@ -32,6 +32,7 @@ #include "MEM_guardedalloc.h" #include "DNA_action_types.h" +#include "DNA_anim_types.h" #include "DNA_armature_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" @@ -39,8 +40,10 @@ #include "BLI_blenlib.h" #include "BKE_action.h" +#include "BKE_animsys.h" #include "BKE_context.h" #include "BKE_depsgraph.h" +#include "BKE_global.h" #include "BKE_main.h" #include "BKE_scene.h" #include "BKE_screen.h" @@ -55,6 +58,61 @@ #include "WM_api.h" #include "WM_types.h" +/* tags the given anim list element for refreshes (if applicable) + * due to Animation Editor editing */ +void ANIM_list_elem_update(Scene *scene, bAnimListElem *ale) +{ + ID *id; + FCurve *fcu; + AnimData *adt; + + id= ale->id; + if(!id) + return; + + /* tag AnimData for refresh so that other views will update in realtime with these changes */ + adt= BKE_animdata_from_id(id); + if(adt) + adt->recalc |= ADT_RECALC_ANIM; + + /* update data */ + fcu= (ale->datatype == ALE_FCURVE)? ale->key_data: NULL; + + if(fcu && fcu->rna_path) { + /* if we have an fcurve, call the update for the property we + are editing, this is then expected to do the proper redraws + and depsgraph updates */ + PointerRNA id_ptr, ptr; + PropertyRNA *prop; + + RNA_id_pointer_create(id, &id_ptr); + + if(RNA_path_resolve(&id_ptr, fcu->rna_path, &ptr, &prop)) + RNA_property_update_main(G.main, scene, &ptr, prop); + } + else { + /* in other case we do standard depsgaph update, ideally + we'd be calling property update functions here too ... */ + DAG_id_flush_update(id, OB_RECALC); // XXX or do we want something more restrictive? + } +} + +/* tags the given ID block for refreshes (if applicable) due to + * Animation Editor editing */ +void ANIM_id_update(Scene *scene, ID *id) +{ + if(id) { + AnimData *adt= BKE_animdata_from_id(id); + + /* tag AnimData for refresh so that other views will update in realtime with these changes */ + if (adt) + adt->recalc |= ADT_RECALC_ANIM; + + /* set recalc flags */ + DAG_id_flush_update(id, OB_RECALC); // XXX or do we want something more restrictive? + } +} + /* **************************** pose <-> action syncing ******************************** */ /* Summary of what needs to be synced between poses and actions: * 1) Flags diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index c9c4c7af18c..9989589cf23 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -496,6 +496,9 @@ void ED_nla_postop_refresh(bAnimContext *ac); /* --------- anim_deps.c, animation updates -------- */ +void ANIM_id_update(struct Scene *scene, struct ID *id); +void ANIM_list_elem_update(struct Scene *scene, bAnimListElem *ale); + /* pose <-> action syncing */ void ANIM_action_to_pose_sync(struct Object *ob); void ANIM_pose_to_action_sync(struct Object *ob, struct ScrArea *sa); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 0340475a1d1..7951b002174 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -273,23 +273,6 @@ static void editmesh_apply_to_mirror(TransInfo *t) } } -/* tags the given ID block for refreshes (if applicable) due to - * Animation Editor editing - */ -static void animedit_refresh_id_tags (Scene *scene, ID *id) -{ - if (id) { - AnimData *adt= BKE_animdata_from_id(id); - - /* tag AnimData for refresh so that other views will update in realtime with these changes */ - if (adt) - adt->recalc |= ADT_RECALC_ANIM; - - /* set recalc flags */ - DAG_id_flush_update(id, OB_RECALC); // XXX or do we want something more restrictive? - } -} - /* for the realtime animation recording feature, handle overlapping data */ static void animrecord_check_state (Scene *scene, ID *id, wmTimer *animtimer) { @@ -378,7 +361,7 @@ void recalcData(TransInfo *t) /* just tag these animdata-blocks to recalc, assuming that some data there changed */ for (ale= anim_data.first; ale; ale= ale->next) { /* set refresh tags for objects using this animation */ - animedit_refresh_id_tags(t->scene, ale->id); + ANIM_list_elem_update(t->scene, ale); } /* now free temp channels */ @@ -426,7 +409,7 @@ void recalcData(TransInfo *t) calchandles_fcurve(fcu); /* set refresh tags for objects using this animation */ - animedit_refresh_id_tags(t->scene, ale->id); + ANIM_list_elem_update(t->scene, ale); } /* do resort and other updates? */ @@ -457,7 +440,7 @@ void recalcData(TransInfo *t) continue; /* set refresh tags for objects using this animation */ - animedit_refresh_id_tags(t->scene, tdn->id); + ANIM_id_update(t->scene, tdn->id); /* if cancelling transform, just write the values without validating, then move on */ if (t->state == TRANS_CANCEL) { diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 8e187eea93c..76ab00e19a5 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -29,6 +29,7 @@ #include #include +#include "DNA_anim_types.h" #include "DNA_listBase.h" #include "DNA_screen_types.h" #include "DNA_scene_types.h" @@ -41,6 +42,7 @@ #include "BLI_blenlib.h" +#include "BKE_animsys.h" #include "BKE_blender.h" #include "BKE_context.h" #include "BKE_idprop.h" @@ -147,6 +149,40 @@ static wmNotifier *wm_notifier_next(wmWindowManager *wm) return note; } +static void wm_data_handle_update(Scene *scene) +{ + Scene *sce; + Base *base; + + /* XXX make lock in future, or separated derivedmesh users in scene */ + if(G.rendering) + return; + + /* update all objects, drivers, matrices, displists, etc. Flags set by depgraph or manual, + no layer check here, gets correct flushed */ + /* sets first, we allow per definition current scene to have dependencies on sets */ + if(scene->set) { + for(SETLOOPER(scene->set, base)) + object_handle_update(scene, base->object); + } + + for(base= scene->base.first; base; base= base->next) { + object_handle_update(scene, base->object); + } + + /* recalc scene animation data here (for sequencer). actually + this should be doing all datablocks including e.g. materials, + but for now this solves some update issues - brecht. */ + { + AnimData *adt= BKE_animdata_from_id(&scene->id); + + if(adt && (adt->recalc & ADT_RECALC_ANIM)) + BKE_animsys_evaluate_animdata(&scene->id, adt, scene->r.cfra, 0); + } + + BKE_ptcache_quick_cache_all(scene); +} + /* called in mainloop */ void wm_event_do_notifiers(bContext *C) { @@ -246,9 +282,7 @@ void wm_event_do_notifiers(bContext *C) /* cached: editor refresh callbacks now, they get context */ for(win= wm->windows.first; win; win= win->next) { - Scene *sce, *scene= win->screen->scene; ScrArea *sa; - Base *base; CTX_wm_window_set(C, win); for(sa= win->screen->areabase.first; sa; sa= sa->next) { @@ -258,23 +292,9 @@ void wm_event_do_notifiers(bContext *C) } } - if(G.rendering==0) { // XXX make lock in future, or separated derivedmesh users in scene - - /* update all objects, drivers, matrices, displists, etc. Flags set by depgraph or manual, - no layer check here, gets correct flushed */ - /* sets first, we allow per definition current scene to have dependencies on sets */ - if(scene->set) { - for(SETLOOPER(scene->set, base)) - object_handle_update(scene, base->object); - } - - for(base= scene->base.first; base; base= base->next) { - object_handle_update(scene, base->object); - } - - BKE_ptcache_quick_cache_all(scene); - } + wm_data_handle_update(win->screen->scene); } + CTX_wm_window_set(C, NULL); } -- cgit v1.2.3 From 7f580d073443e88086a08b49fd1bea7b9c6774c8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Dec 2009 19:27:19 +0000 Subject: transforming metastrips didnt move effects within them & remove warning --- source/blender/editors/include/ED_armature.h | 21 +++++++++++---------- .../editors/transform/transform_conversions.c | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h index 74f1f7e3b83..9d35121032c 100644 --- a/source/blender/editors/include/ED_armature.h +++ b/source/blender/editors/include/ED_armature.h @@ -27,22 +27,23 @@ #ifndef ED_ARMATURE_H #define ED_ARMATURE_H -struct bContext; -struct Scene; -struct Object; +struct bArmature; struct Base; +struct bContext; struct Bone; -struct bArmature; struct bPoseChannel; -struct wmOperator; -struct wmKeyConfig; +struct DerivedMesh; +struct IDProperty; struct ListBase; -struct View3D; -struct ViewContext; +struct MeshDeformModifierData; +struct Object; struct RegionView3D; +struct Scene; struct SK_Sketch; -struct IDProperty; -struct MeshDeformModifierData; +struct View3D; +struct ViewContext; +struct wmKeyConfig; +struct wmOperator; typedef struct EditBone { diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 9e154bc4db6..a81c262dd64 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2371,7 +2371,7 @@ void flushTransSeq(TransInfo *t) switch (tdsq->sel_flag) { case SELECT: - if (seq->type != SEQ_META && seq_tx_test(seq)) /* for meta's, their children move */ + if (seq->type != SEQ_META && (seq->depth != 0 || seq_tx_test(seq))) /* for meta's, their children move */ seq->start= new_frame - tdsq->start_offset; if (seq->depth==0) { -- cgit v1.2.3 From 47b4c8357c9bef5dfc57dbe4a7c3fa51b0ef687f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 8 Dec 2009 19:27:30 +0000 Subject: Attempted Bugfix: opengl preview render artifacts, was using wmPush/PopMatrix, but this does not have an actual stack, so using glPush/PopMatrix instead now. --- source/blender/editors/space_view3d/view3d_draw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index e2310a140a6..5a2040a44aa 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1949,7 +1949,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, Base *base; int bwinx, bwiny; - wmPushMatrix(); + glPushMatrix(); /* set temporary new size */ bwinx= ar->winx; @@ -2024,7 +2024,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, ar->winx= bwinx; ar->winy= bwiny; - wmPopMatrix(); + glPopMatrix(); } void view3d_main_area_draw(const bContext *C, ARegion *ar) -- cgit v1.2.3 From 96a5db9a4c21e78e3d7d81c3c0bfa0d16263c4f0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Dec 2009 20:58:23 +0000 Subject: setting and editbone parent to NULL wasnt working --- source/blender/makesrna/intern/rna_armature.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 90bf404083c..bfab46aa11c 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -279,10 +279,6 @@ static void rna_EditBone_parent_set(PointerRNA *ptr, PointerRNA value) EditBone *ebone= (EditBone*)(ptr->data); EditBone *pbone, *parbone= (EditBone*)value.data; - /* within same armature */ - if(value.id.data != ptr->id.data) - return; - if(parbone == NULL) { if(ebone->parent && !(ebone->parent->flag & BONE_ROOTSEL)) ebone->parent->flag &= ~BONE_TIPSEL; @@ -291,6 +287,10 @@ static void rna_EditBone_parent_set(PointerRNA *ptr, PointerRNA value) ebone->flag &= ~BONE_CONNECTED; } else { + /* within same armature */ + if(value.id.data != ptr->id.data) + return; + /* make sure this is a valid child */ if(parbone == ebone) return; -- cgit v1.2.3 From bee57757025439a6ddf01fd4d4963e33860dae10 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 8 Dec 2009 22:35:03 +0000 Subject: split out driver functions into its own file --- source/blender/python/intern/bpy_driver.c | 237 +++++++++++++++++++++++++++ source/blender/python/intern/bpy_interface.c | 208 ----------------------- 2 files changed, 237 insertions(+), 208 deletions(-) create mode 100644 source/blender/python/intern/bpy_driver.c (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c new file mode 100644 index 00000000000..9acd6b1cd44 --- /dev/null +++ b/source/blender/python/intern/bpy_driver.c @@ -0,0 +1,237 @@ +/** + * $Id: + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Contributor(s): Willian P. Germano, Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ +/* ****************************************** */ +/* Drivers - PyExpression Evaluation */ + +#include "DNA_anim_types.h" + +#include "BPY_extern.h" +#include "BKE_fcurve.h" + +#include + +/* for pydrivers (drivers using one-line Python expressions to express relationships between targets) */ +PyObject *bpy_pydriver_Dict = NULL; + +/* For faster execution we keep a special dictionary for pydrivers, with + * the needed modules and aliases. + */ +static int bpy_pydriver_create_dict(void) +{ + PyObject *d, *mod; + + /* validate namespace for driver evaluation */ + if (bpy_pydriver_Dict) return -1; + + d = PyDict_New(); + if (d == NULL) + return -1; + else + bpy_pydriver_Dict = d; + + /* import some modules: builtins, bpy, math, (Blender.noise )*/ + PyDict_SetItemString(d, "__builtins__", PyEval_GetBuiltins()); + + mod = PyImport_ImportModule("math"); + if (mod) { + PyDict_Merge(d, PyModule_GetDict(mod), 0); /* 0 - dont overwrite existing values */ + + /* Only keep for backwards compat! - just import all math into root, they are standard */ + PyDict_SetItemString(d, "math", mod); + PyDict_SetItemString(d, "m", mod); + Py_DECREF(mod); + } + + /* add bpy to global namespace */ + mod= PyImport_ImportModuleLevel("bpy", NULL, NULL, NULL, 0); + if (mod) { + PyDict_SetItemString(bpy_pydriver_Dict, "bpy", mod); + Py_DECREF(mod); + } + + +#if 0 // non existant yet + mod = PyImport_ImportModule("Blender.Noise"); + if (mod) { + PyDict_SetItemString(d, "noise", mod); + PyDict_SetItemString(d, "n", mod); + Py_DECREF(mod); + } else { + PyErr_Clear(); + } + + /* If there's a Blender text called pydrivers.py, import it. + * Users can add their own functions to this module. + */ + if (G.f & G_DOSCRIPTLINKS) { + mod = importText("pydrivers"); /* can also use PyImport_Import() */ + if (mod) { + PyDict_SetItemString(d, "pydrivers", mod); + PyDict_SetItemString(d, "p", mod); + Py_DECREF(mod); + } else { + PyErr_Clear(); + } + } +#endif // non existant yet + + return 0; +} + +/* Update function, it gets rid of pydrivers global dictionary, forcing + * BPY_pydriver_eval to recreate it. This function is used to force + * reloading the Blender text module "pydrivers.py", if available, so + * updates in it reach pydriver evaluation. + */ +void BPY_pydriver_update(void) +{ + PyGILState_STATE gilstate = PyGILState_Ensure(); + + if (bpy_pydriver_Dict) { /* free the global dict used by pydrivers */ + PyDict_Clear(bpy_pydriver_Dict); + Py_DECREF(bpy_pydriver_Dict); + bpy_pydriver_Dict = NULL; + } + + PyGILState_Release(gilstate); + + return; +} + +/* error return function for BPY_eval_pydriver */ +static float pydriver_error(ChannelDriver *driver) +{ + if (bpy_pydriver_Dict) { /* free the global dict used by pydrivers */ + PyDict_Clear(bpy_pydriver_Dict); + Py_DECREF(bpy_pydriver_Dict); + bpy_pydriver_Dict = NULL; + } + + driver->flag |= DRIVER_FLAG_INVALID; /* py expression failed */ + fprintf(stderr, "\nError in Driver: The following Python expression failed:\n\t'%s'\n\n", driver->expression); + + // BPy_errors_to_report(NULL); // TODO - reports + PyErr_Print(); + PyErr_Clear(); + + return 0.0f; +} + +/* This evals py driver expressions, 'expr' is a Python expression that + * should evaluate to a float number, which is returned. + */ +float BPY_pydriver_eval (ChannelDriver *driver) +{ + PyObject *driver_vars=NULL; + PyObject *retval= NULL; + PyGILState_STATE gilstate; + + DriverTarget *dtar; + float result = 0.0f; /* default return */ + char *expr = NULL; + short targets_ok= 1; + + /* sanity checks - should driver be executed? */ + if ((driver == NULL) /*|| (G.f & G_DOSCRIPTLINKS)==0*/) + return result; + + /* get the py expression to be evaluated */ + expr = driver->expression; + if ((expr == NULL) || (expr[0]=='\0')) + return result; + + gilstate = PyGILState_Ensure(); + + /* init global dictionary for py-driver evaluation settings */ + if (!bpy_pydriver_Dict) { + if (bpy_pydriver_create_dict() != 0) { + fprintf(stderr, "Pydriver error: couldn't create Python dictionary"); + PyGILState_Release(gilstate); + return result; + } + } + + /* add target values to a dict that will be used as '__locals__' dict */ + driver_vars = PyDict_New(); // XXX do we need to decref this? + for (dtar= driver->targets.first; dtar; dtar= dtar->next) { + PyObject *driver_arg = NULL; + float tval = 0.0f; + + /* try to get variable value */ + tval= driver_get_target_value(driver, dtar); + driver_arg= PyFloat_FromDouble((double)tval); + + /* try to add to dictionary */ + if (PyDict_SetItemString(driver_vars, dtar->name, driver_arg)) { + /* this target failed - bad name */ + if (targets_ok) { + /* first one - print some extra info for easier identification */ + fprintf(stderr, "\nBPY_pydriver_eval() - Error while evaluating PyDriver:\n"); + targets_ok= 0; + } + + fprintf(stderr, "\tBPY_pydriver_eval() - couldn't add variable '%s' to namespace \n", dtar->name); + BPy_errors_to_report(NULL); // TODO - reports + } + } + +#if 0 // slow + /* execute expression to get a value */ + retval = PyRun_String(expr, Py_eval_input, bpy_pydriver_Dict, driver_vars); +#else + if(driver->flag & DRIVER_FLAG_RECOMPILE || driver->expr_comp==NULL) { + Py_XDECREF(driver->expr_comp); + driver->expr_comp= Py_CompileString(expr, "", Py_eval_input); + driver->flag &= ~DRIVER_FLAG_RECOMPILE; + } + if(driver->expr_comp) + retval= PyEval_EvalCode(driver->expr_comp, bpy_pydriver_Dict, driver_vars); +#endif + + /* decref the driver vars first... */ + Py_DECREF(driver_vars); + + /* process the result */ + if (retval == NULL) { + result = pydriver_error(driver); + PyGILState_Release(gilstate); + return result; + } + + result = (float)PyFloat_AsDouble(retval); + Py_DECREF(retval); + + if ((result == -1) && PyErr_Occurred()) { + result = pydriver_error(driver); + PyGILState_Release(gilstate); + return result; + } + + /* all fine, make sure the "invalid expression" flag is cleared */ + driver->flag &= ~DRIVER_FLAG_INVALID; + + PyGILState_Release(gilstate); + + return result; +} diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index d1ef7401494..7b44f8e6ba1 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -49,7 +49,6 @@ #include "BLI_winstuff.h" #endif -#include "DNA_anim_types.h" #include "DNA_space_types.h" #include "DNA_text_types.h" @@ -61,7 +60,6 @@ #include "BLI_string.h" #include "BKE_context.h" -#include "BKE_fcurve.h" #include "BKE_text.h" #include "BKE_context.h" #include "BKE_global.h" @@ -77,7 +75,6 @@ #include "../generic/BGL.h" #include "../generic/IDProp.h" - /* for internal use, when starting and ending python scripts */ /* incase a python script triggers another python call, stop bpy_context_clear from invalidating */ @@ -617,211 +614,6 @@ int BPY_run_python_script_space(const char *modulename, const char *func) #include "PIL_time.h" #endif -/* ****************************************** */ -/* Drivers - PyExpression Evaluation */ - -/* for pydrivers (drivers using one-line Python expressions to express relationships between targets) */ -PyObject *bpy_pydriver_Dict = NULL; - -/* For faster execution we keep a special dictionary for pydrivers, with - * the needed modules and aliases. - */ -static int bpy_pydriver_create_dict(void) -{ - PyObject *d, *mod; - - /* validate namespace for driver evaluation */ - if (bpy_pydriver_Dict) return -1; - - d = PyDict_New(); - if (d == NULL) - return -1; - else - bpy_pydriver_Dict = d; - - /* import some modules: builtins, bpy, math, (Blender.noise )*/ - PyDict_SetItemString(d, "__builtins__", PyEval_GetBuiltins()); - - mod = PyImport_ImportModule("math"); - if (mod) { - PyDict_Merge(d, PyModule_GetDict(mod), 0); /* 0 - dont overwrite existing values */ - - /* Only keep for backwards compat! - just import all math into root, they are standard */ - PyDict_SetItemString(d, "math", mod); - PyDict_SetItemString(d, "m", mod); - Py_DECREF(mod); - } - - /* add bpy to global namespace */ - mod= PyImport_ImportModuleLevel("bpy", NULL, NULL, NULL, 0); - if (mod) { - PyDict_SetItemString(bpy_pydriver_Dict, "bpy", mod); - Py_DECREF(mod); - } - - -#if 0 // non existant yet - mod = PyImport_ImportModule("Blender.Noise"); - if (mod) { - PyDict_SetItemString(d, "noise", mod); - PyDict_SetItemString(d, "n", mod); - Py_DECREF(mod); - } else { - PyErr_Clear(); - } - - /* If there's a Blender text called pydrivers.py, import it. - * Users can add their own functions to this module. - */ - if (G.f & G_DOSCRIPTLINKS) { - mod = importText("pydrivers"); /* can also use PyImport_Import() */ - if (mod) { - PyDict_SetItemString(d, "pydrivers", mod); - PyDict_SetItemString(d, "p", mod); - Py_DECREF(mod); - } else { - PyErr_Clear(); - } - } -#endif // non existant yet - - return 0; -} - -/* Update function, it gets rid of pydrivers global dictionary, forcing - * BPY_pydriver_eval to recreate it. This function is used to force - * reloading the Blender text module "pydrivers.py", if available, so - * updates in it reach pydriver evaluation. - */ -void BPY_pydriver_update(void) -{ - PyGILState_STATE gilstate = PyGILState_Ensure(); - - if (bpy_pydriver_Dict) { /* free the global dict used by pydrivers */ - PyDict_Clear(bpy_pydriver_Dict); - Py_DECREF(bpy_pydriver_Dict); - bpy_pydriver_Dict = NULL; - } - - PyGILState_Release(gilstate); - - return; -} - -/* error return function for BPY_eval_pydriver */ -static float pydriver_error(ChannelDriver *driver) -{ - if (bpy_pydriver_Dict) { /* free the global dict used by pydrivers */ - PyDict_Clear(bpy_pydriver_Dict); - Py_DECREF(bpy_pydriver_Dict); - bpy_pydriver_Dict = NULL; - } - - driver->flag |= DRIVER_FLAG_INVALID; /* py expression failed */ - fprintf(stderr, "\nError in Driver: The following Python expression failed:\n\t'%s'\n\n", driver->expression); - - BPy_errors_to_report(NULL); // TODO - reports - - return 0.0f; -} - -/* This evals py driver expressions, 'expr' is a Python expression that - * should evaluate to a float number, which is returned. - */ -float BPY_pydriver_eval (ChannelDriver *driver) -{ - PyObject *driver_vars=NULL; - PyObject *retval= NULL; - PyGILState_STATE gilstate; - - DriverTarget *dtar; - float result = 0.0f; /* default return */ - char *expr = NULL; - short targets_ok= 1; - - /* sanity checks - should driver be executed? */ - if ((driver == NULL) /*|| (G.f & G_DOSCRIPTLINKS)==0*/) - return result; - - /* get the py expression to be evaluated */ - expr = driver->expression; - if ((expr == NULL) || (expr[0]=='\0')) - return result; - - gilstate = PyGILState_Ensure(); - - /* init global dictionary for py-driver evaluation settings */ - if (!bpy_pydriver_Dict) { - if (bpy_pydriver_create_dict() != 0) { - fprintf(stderr, "Pydriver error: couldn't create Python dictionary"); - PyGILState_Release(gilstate); - return result; - } - } - - /* add target values to a dict that will be used as '__locals__' dict */ - driver_vars = PyDict_New(); // XXX do we need to decref this? - for (dtar= driver->targets.first; dtar; dtar= dtar->next) { - PyObject *driver_arg = NULL; - float tval = 0.0f; - - /* try to get variable value */ - tval= driver_get_target_value(driver, dtar); - driver_arg= PyFloat_FromDouble((double)tval); - - /* try to add to dictionary */ - if (PyDict_SetItemString(driver_vars, dtar->name, driver_arg)) { - /* this target failed - bad name */ - if (targets_ok) { - /* first one - print some extra info for easier identification */ - fprintf(stderr, "\nBPY_pydriver_eval() - Error while evaluating PyDriver:\n"); - targets_ok= 0; - } - - fprintf(stderr, "\tBPY_pydriver_eval() - couldn't add variable '%s' to namespace \n", dtar->name); - BPy_errors_to_report(NULL); // TODO - reports - } - } - -#if 0 // slow - /* execute expression to get a value */ - retval = PyRun_String(expr, Py_eval_input, bpy_pydriver_Dict, driver_vars); -#else - if(driver->flag & DRIVER_FLAG_RECOMPILE || driver->expr_comp==NULL) { - Py_XDECREF(driver->expr_comp); - driver->expr_comp= Py_CompileString(expr, "", Py_eval_input); - driver->flag &= ~DRIVER_FLAG_RECOMPILE; - } - if(driver->expr_comp) - retval= PyEval_EvalCode(driver->expr_comp, bpy_pydriver_Dict, driver_vars); -#endif - - /* decref the driver vars first... */ - Py_DECREF(driver_vars); - - /* process the result */ - if (retval == NULL) { - result = pydriver_error(driver); - PyGILState_Release(gilstate); - return result; - } - - result = (float)PyFloat_AsDouble(retval); - Py_DECREF(retval); - - if ((result == -1) && PyErr_Occurred()) { - result = pydriver_error(driver); - PyGILState_Release(gilstate); - return result; - } - - /* all fine, make sure the "invalid expression" flag is cleared */ - driver->flag &= ~DRIVER_FLAG_INVALID; - - PyGILState_Release(gilstate); - - return result; -} int BPY_button_eval(bContext *C, char *expr, double *value) { -- cgit v1.2.3 From fabdde675a02407e59e4f2720a64b1495b1080e7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Dec 2009 00:03:18 +0000 Subject: reference to INDIVIDUAL_CENTERS causing error --- source/blender/editors/space_view3d/view3d_ops.c | 2 +- source/blender/makesrna/intern/rna_space.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 3b60d4d555f..bc8d34b407b 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -266,7 +266,7 @@ void view3d_keymap(wmKeyConfig *keyconf) kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PERIODKEY, KM_PRESS, KM_CTRL, 0); RNA_string_set(kmi->ptr, "path", "space_data.pivot_point"); - RNA_string_set(kmi->ptr, "value", "INDIVIDUAL_CENTERS"); + RNA_string_set(kmi->ptr, "value", "INDIVIDUAL_ORIGINS"); kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PERIODKEY, KM_PRESS, KM_ALT, 0); RNA_string_set(kmi->ptr, "path", "space_data.pivot_point"); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 28784e0e666..ef72b6cbf1f 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1316,7 +1316,7 @@ static void rna_def_space_graph(BlenderRNA *brna) static EnumPropertyItem gpivot_items[] = { {V3D_CENTER, "BOUNDING_BOX_CENTER", ICON_ROTATE, "Bounding Box Center", ""}, {V3D_CURSOR, "CURSOR", ICON_CURSOR, "2D Cursor", ""}, - {V3D_LOCAL, "INDIVIDUAL_CENTERS", ICON_ROTATECOLLECTION, "Individual Centers", ""}, + {V3D_LOCAL, "INDIVIDUAL_ORIGINS", ICON_ROTATECOLLECTION, "Individual Centers", ""}, //{V3D_CENTROID, "MEDIAN_POINT", 0, "Median Point", ""}, //{V3D_ACTIVE, "ACTIVE_ELEMENT", 0, "Active Element", ""}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From e9b417c1bf4b8e42dce2ee42a7421d4177478e5d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Dec 2009 00:45:50 +0000 Subject: auto-dist working again, renamed obofs --> dyn_ofs, use_sel --> use_dyn_ofs, since its used by Auto-Depth too. --- source/blender/editors/space_view3d/view3d_edit.c | 76 ++++++++++++++++++----- 1 file changed, 60 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 0ea185589e1..ad40a7266af 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -236,11 +236,14 @@ typedef struct ViewOpsData { float oldquat[4]; float trackvec[3]; - float ofs[3], obofs[3]; float reverse, dist0; float grid, far; short axis_snap; /* view rotate only */ + /* use for orbit selection and auto-dist */ + float ofs[3], dyn_ofs[3]; + short use_dyn_ofs; + int origx, origy, oldx, oldy; int origkey; /* the key that triggered the operator */ @@ -292,14 +295,56 @@ static void viewops_data(bContext *C, wmOperator *op, wmEvent *event) vod->origx= vod->oldx= event->x; vod->origy= vod->oldy= event->y; vod->origkey= event->type; /* the key that triggered the operator. */ - - if (U.uiflag & USER_ORBIT_SELECTION) - { + vod->use_dyn_ofs= (U.uiflag & USER_ORBIT_SELECTION) ? 1:0; + + if (vod->use_dyn_ofs) { VECCOPY(vod->ofs, rv3d->ofs); /* If there's no selection, lastofs is unmodified and last value since static */ calculateTransformCenter(C, event, V3D_CENTROID, lastofs); - VECCOPY(vod->obofs, lastofs); - mul_v3_fl(vod->obofs, -1.0f); + VECCOPY(vod->dyn_ofs, lastofs); + mul_v3_fl(vod->dyn_ofs, -1.0f); + } + else if (U.uiflag & USER_ORBIT_ZBUF) { + + view3d_operator_needs_opengl(C); /* needed for zbuf drawing */ + + if((vod->use_dyn_ofs=view_autodist(CTX_data_scene(C), vod->ar, v3d, event->mval, vod->dyn_ofs))) { + if (rv3d->persp==RV3D_PERSP) { + float my_origin[3]; /* original G.vd->ofs */ + float my_pivot[3]; /* view */ + float dvec[3]; + + // locals for dist correction + float mat[3][3]; + float upvec[3]; + + VECCOPY(my_origin, rv3d->ofs); + negate_v3(my_origin); /* ofs is flipped */ + + /* Set the dist value to be the distance from this 3d point */ + /* this means youll always be able to zoom into it and panning wont go bad when dist was zero */ + + /* remove dist value */ + upvec[0] = upvec[1] = 0; + upvec[2] = rv3d->dist; + copy_m3_m4(mat, rv3d->viewinv); + + mul_m3_v3(mat, upvec); + sub_v3_v3v3(my_pivot, rv3d->ofs, upvec); + negate_v3(my_pivot); /* ofs is flipped */ + + /* find a new ofs value that is allong the view axis (rather then the mouse location) */ + closest_to_line_v3(dvec, vod->dyn_ofs, my_pivot, my_origin); + vod->dist0 = rv3d->dist = len_v3v3(my_pivot, dvec); + + negate_v3(dvec); + VECCOPY(rv3d->ofs, dvec); + } + negate_v3(vod->dyn_ofs); + VECCOPY(vod->ofs, rv3d->ofs); + } else { + vod->ofs[0] = vod->ofs[1] = vod->ofs[2] = 0.0f; + } } /* lookup, we dont pass on v3d to prevent confusement */ @@ -413,7 +458,6 @@ void viewrotate_modal_keymap(wmKeyConfig *keyconf) static void viewrotate_apply(ViewOpsData *vod, int x, int y) { RegionView3D *rv3d= vod->rv3d; - int use_sel= U.uiflag & USER_ORBIT_SELECTION; rv3d->view= 0; /* need to reset everytime because of view snapping */ @@ -449,7 +493,7 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y) q1[3]*= si; mul_qt_qtqt(rv3d->viewquat, q1, vod->oldquat); - if (use_sel) { + if (vod->use_dyn_ofs) { /* compute the post multiplication quat, to rotate the offset correctly */ QUATCOPY(q1, vod->oldquat); conjugate_qt(q1); @@ -457,9 +501,9 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y) conjugate_qt(q1); /* conj == inv for unit quat */ VECCOPY(rv3d->ofs, vod->ofs); - sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->obofs); + sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs); mul_qt_v3(q1, rv3d->ofs); - add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->obofs); + add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs); } } else { @@ -491,11 +535,11 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y) q1[3] = si * xvec[2]; mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - if (use_sel) { + if (vod->use_dyn_ofs) { conjugate_qt(q1); /* conj == inv for unit quat */ - sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->obofs); + sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs); mul_qt_v3(q1, rv3d->ofs); - add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->obofs); + add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs); } /* Perform the orbital rotation */ @@ -505,11 +549,11 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y) q1[3] = sin(phi); mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); - if (use_sel) { + if (vod->use_dyn_ofs) { conjugate_qt(q1); - sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->obofs); + sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs); mul_qt_v3(q1, rv3d->ofs); - add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->obofs); + add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs); } } -- cgit v1.2.3 From 2ef0ee76a05b39b148ffc280ebf002c9ac9a44da Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Wed, 9 Dec 2009 01:53:04 +0000 Subject: Fix for [#20249] duplicating a mesh in edit mode with a lattice modifier Removed lattice and curve modifiers from being correctable for crazy space - it didn't work and was giving weird results. --- source/blender/blenkernel/BKE_modifier.h | 4 ++-- source/blender/blenkernel/intern/DerivedMesh.c | 2 +- source/blender/blenkernel/intern/modifier.c | 16 ++++++---------- source/blender/editors/transform/transform_conversions.c | 2 +- 4 files changed, 10 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h index c30bfa3e247..539c2e59dbe 100644 --- a/source/blender/blenkernel/BKE_modifier.h +++ b/source/blender/blenkernel/BKE_modifier.h @@ -280,7 +280,7 @@ void modifier_copyData(struct ModifierData *md, struct ModifierData *ta int modifier_dependsOnTime(struct ModifierData *md); int modifier_supportsMapping(struct ModifierData *md); int modifier_couldBeCage(struct ModifierData *md); -int modifier_isDeformer(struct ModifierData *md); +int modifier_isCorrectableDeformed(struct ModifierData *md); int modifier_sameTopology(ModifierData *md); int modifier_isEnabled(struct ModifierData *md, int required_mode); void modifier_setError(struct ModifierData *md, char *format, ...); @@ -303,7 +303,7 @@ int modifiers_isParticleEnabled(struct Object *ob); struct Object *modifiers_isDeformedByArmature(struct Object *ob); struct Object *modifiers_isDeformedByLattice(struct Object *ob); int modifiers_usesArmature(struct Object *ob, struct bArmature *arm); -int modifiers_isDeformed(struct Scene *scene, struct Object *ob); +int modifiers_isCorrectableDeformed(struct Scene *scene, struct Object *ob); void modifier_freeTemporaryData(struct ModifierData *md); int modifiers_indexInObject(struct Object *ob, struct ModifierData *md); diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 209e4610c6a..a681b539097 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -2513,7 +2513,7 @@ int editmesh_get_first_deform_matrices(Object *ob, EditMesh *em, float (**deform } for(; md && i <= cageIndex; md = md->next, i++) - if(editmesh_modifier_is_enabled(md, dm) && modifier_isDeformer(md)) + if(editmesh_modifier_is_enabled(md, dm) && modifier_isCorrectableDeformed(md)) numleft++; if(dm) diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 56aab7d2ba9..08c979b89db 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -9151,15 +9151,15 @@ Object *modifiers_isDeformedByArmature(Object *ob) } /* Takes an object and returns its first selected lattice, else just its -* armature -* This should work for multiple armatures per object +* lattice +* This should work for multiple lattics per object */ Object *modifiers_isDeformedByLattice(Object *ob) { ModifierData *md = modifiers_getVirtualModifierList(ob); LatticeModifierData *lmd= NULL; - /* return the first selected armature, this lets us use multiple armatures + /* return the first selected lattice, this lets us use multiple lattices */ for (; md; md=md->next) { if (md->type==eModifierType_Lattice) { @@ -9192,28 +9192,24 @@ int modifiers_usesArmature(Object *ob, bArmature *arm) return 0; } -int modifier_isDeformer(ModifierData *md) +int modifier_isCorrectableDeformed(ModifierData *md) { if (md->type==eModifierType_Armature) return 1; - if (md->type==eModifierType_Curve) - return 1; - if (md->type==eModifierType_Lattice) - return 1; if (md->type==eModifierType_ShapeKey) return 1; return 0; } -int modifiers_isDeformed(Scene *scene, Object *ob) +int modifiers_isCorrectableDeformed(Scene *scene, Object *ob) { ModifierData *md = modifiers_getVirtualModifierList(ob); for (; md; md=md->next) { if(ob->mode==OB_MODE_EDIT && (md->mode & eModifierMode_Editmode)==0); else - if(modifier_isDeformer(md)) + if(modifier_isCorrectableDeformed(md)) return 1; } return 0; diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index a81c262dd64..37e56874044 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2212,7 +2212,7 @@ static void createTransEditVerts(bContext *C, TransInfo *t) /* detect CrazySpace [tm] */ if(propmode==0) { if(modifiers_getCageIndex(t->obedit, NULL, 1)>=0) { - if(modifiers_isDeformed(t->scene, t->obedit)) { + if(modifiers_isCorrectableDeformed(t->scene, t->obedit)) { /* check if we can use deform matrices for modifier from the start up to stack, they are more accurate than quats */ totleft= editmesh_get_first_deform_matrices(t->obedit, em, &defmats, &defcos); -- cgit v1.2.3 From 1c47b3acb6fa03ea13f9a1f545a750439dcd68ab Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Wed, 9 Dec 2009 02:55:19 +0000 Subject: Fix for [#20197] dof node bugs This is still a bit dodgy, the issue of accessing scene data from nodes needs to be solved better, but this at least fixes it up to previous capabilities, and prevents writing any data to scene/objects either. --- source/blender/blenkernel/intern/object.c | 6 +++--- source/blender/editors/space_node/node_edit.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 5806b269e7d..048e1cd01e3 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -741,12 +741,12 @@ float dof_camera(Object *ob) if (cam->dof_ob) { /* too simple, better to return the distance on the view axis only * return len_v3v3(ob->obmat[3], cam->dof_ob->obmat[3]); */ - float mat[4][4], obmat[4][4]; + float mat[4][4], imat[4][4], obmat[4][4]; copy_m4_m4(obmat, ob->obmat); normalize_m4(obmat); - invert_m4_m4(ob->imat, obmat); - mul_m4_m4m4(mat, cam->dof_ob->obmat, ob->imat); + invert_m4_m4(imat, obmat); + mul_m4_m4m4(mat, cam->dof_ob->obmat, imat); return (float)fabs(mat[3][2]); } return cam->YF_dofdist; diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index b42e9e1fac5..ce32c536389 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1471,7 +1471,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float node_set_active(snode, node); if(snode->nodetree->type==NTREE_COMPOSIT) { - if(ELEM(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE)) + if(ELEM3(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE, CMP_NODE_DEFOCUS)) node->id = &scene->id; ntreeCompositForceHidden(snode->edittree, scene); -- cgit v1.2.3 From bc795694198a700aeb6283741da2a4ed515a70c3 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 9 Dec 2009 04:51:35 +0000 Subject: grabcursor attribute stores full grab mode so we can better differentiate when it needs to wrap around cursor draw. Also add cocoa exception to wm_get_cursor_position (this should be fixed at the ghost level) --- source/blender/makesdna/DNA_windowmanager_types.h | 2 +- source/blender/windowmanager/intern/wm_cursors.c | 4 ++-- source/blender/windowmanager/intern/wm_draw.c | 5 ++++- source/blender/windowmanager/intern/wm_window.c | 5 +++++ 4 files changed, 12 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 24374720232..714dc853419 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -141,7 +141,7 @@ typedef struct wmWindow { int winid; /* winid also in screens, is for retrieving this window after read */ - short grabcursor; /* 1 if cursor is grabbed */ + short grabcursor; /* cursor grab mode */ short pad; struct bScreen *screen; /* active screen */ diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c index cec5886014a..dfcc1fcd227 100644 --- a/source/blender/windowmanager/intern/wm_cursors.c +++ b/source/blender/windowmanager/intern/wm_cursors.c @@ -181,7 +181,7 @@ void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds) else if (tabletdata->Active == GHOST_kTabletModeNone) GHOST_SetCursorGrab(win->ghostwin, mode, bounds); - win->grabcursor = 1; + win->grabcursor = mode; } } } @@ -191,7 +191,7 @@ void WM_cursor_ungrab(wmWindow *win) if ((G.f & G_DEBUG) == 0) { if(win && win->ghostwin) { GHOST_SetCursorGrab(win->ghostwin, GHOST_kGrabDisable, NULL); - win->grabcursor = 0; + win->grabcursor = GHOST_kGrabDisable; } } } diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index 96aea760e20..3335efeb166 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -41,6 +41,9 @@ #include "BKE_context.h" #include "BKE_global.h" +#include "BKE_utildefines.h" + +#include "GHOST_C-api.h" #include "ED_screen.h" @@ -74,7 +77,7 @@ static void wm_paintcursor_draw(bContext *C, ARegion *ar) for(pc= wm->paintcursors.first; pc; pc= pc->next) { if(pc->poll == NULL || pc->poll(C)) { ARegion *ar= CTX_wm_region(C); - if (win->grabcursor) { + if (ELEM(win->grabcursor, GHOST_kGrabWrap, GHOST_kGrabHide)) { int x = 0, y = 0; wm_get_cursor_position(win, &x, &y); pc->draw(C, x - ar->winrct.xmin, y - ar->winrct.ymin, pc->customdata); diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 31ad8cdcc63..6ae320da912 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -977,7 +977,12 @@ void wm_get_cursor_position(wmWindow *win, int *x, int *y) { GHOST_GetCursorPosition(g_system, x, y); GHOST_ScreenToClient(win->ghostwin, *x, *y, x, y); +#if defined(__APPLE__) && defined(GHOST_COCOA) + //Cocoa has silly exception that should be fixed at the ghost level + //(ghost is an allegory for an invisible system specific code) +#else *y = (win->sizey-1) - *y; +#endif } /* ******************* exported api ***************** */ -- cgit v1.2.3 From 9b6b74f292856dd8edf5bf9e9f172d95fc12d5e4 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Wed, 9 Dec 2009 06:55:16 +0000 Subject: Various more screen-related fixes including: [#20271] File Browser - Wont show when area is fullscreen --- source/blender/editors/screen/screen_edit.c | 38 +++++++++++++++++++++-------- source/blender/makesdna/DNA_screen_types.h | 7 +++--- 2 files changed, 32 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 024e00fa617..6d8f25bb9ff 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1468,7 +1468,7 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa) // default. So use the old headertype instead area_copy_data(old, sa, 1); /* 1 = swap spacelist */ - + if (sa->flag |= AREA_TEMP_INFO) sa->flag &= ~AREA_TEMP_INFO; old->full= NULL; /* animtimer back */ @@ -1502,7 +1502,7 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa) /* returns the top small area */ newa= area_split(win, sc, (ScrArea *)sc->areabase.first, 'h', 0.99f); ED_area_newspace(C, newa, SPACE_INFO); - + /* use random area when we have no active one, e.g. when the mouse is outside of the window and we open a file browser */ if(!sa) @@ -1511,11 +1511,12 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa) /* copy area */ newa= newa->prev; area_copy_data(newa, sa, 1); /* 1 = swap spacelist */ + sa->flag |= AREA_TEMP_INFO; sa->full= oldscreen; newa->full= oldscreen; newa->next->full= oldscreen; // XXX - + ED_screen_set(C, sc); } @@ -1530,13 +1531,26 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa) int ED_screen_full_newspace(bContext *C, ScrArea *sa, int type) { wmWindow *win= CTX_wm_window(C); + bScreen *screen= CTX_wm_screen(C); ScrArea *newsa= NULL; - if(!sa || sa->full==0) + if(!sa || sa->full==0) { newsa= ed_screen_fullarea(C, win, sa); - if(!newsa) - newsa= sa; - + } + + if(!newsa) { + if (sa->full) { + /* if this has been called from the temporary info header generated in + * temp fullscreen layouts, find the correct fullscreen area to change + * to create a new space inside */ + for (newsa = screen->areabase.first; newsa; newsa=newsa->next) { + if (!(sa->flag & AREA_TEMP_INFO)) + break; + } + } else + newsa= sa; + } + ED_area_newspace(C, newsa, type); return 1; @@ -1567,10 +1581,14 @@ void ED_screen_full_restore(bContext *C, ScrArea *sa) SpaceImage *sima= sa->spacedata.first; if (sima->flag & SI_PREVSPACE) sima->flag &= ~SI_PREVSPACE; - if (sima->flag & SI_FULLWINDOW) + if (sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; - } - ED_screen_full_prevspace(C, sa); + ED_screen_full_prevspace(C, sa); + } + } else if (sl->spacetype == SPACE_FILE) { + ED_screen_full_prevspace(C, sa); + } else + ed_screen_fullarea(C, win, sa); } /* otherwise just tile the area again */ else { diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h index b091a0529e7..18c7a819eb3 100644 --- a/source/blender/makesdna/DNA_screen_types.h +++ b/source/blender/makesdna/DNA_screen_types.h @@ -170,9 +170,10 @@ typedef struct ARegion { #define WIN_EQUAL 3 /* area->flag */ -#define HEADER_NO_PULLDOWN 1 -#define AREA_FLAG_DRAWJOINTO 2 -#define AREA_FLAG_DRAWJOINFROM 4 +#define HEADER_NO_PULLDOWN 1 +#define AREA_FLAG_DRAWJOINTO 2 +#define AREA_FLAG_DRAWJOINFROM 4 +#define AREA_TEMP_INFO 8 /* If you change EDGEWIDTH, also do the global arrat edcol[] */ #define EDGEWIDTH 1 -- cgit v1.2.3 From 3712e78d5257bc5681be120e15e3de4e05539f9b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 10:55:28 +0000 Subject: RNA: fix for yesterday's commit, browsing screens and scenes was not working anymore, relies on special notifiers. --- source/blender/makesrna/intern/rna_screen.c | 5 +++-- source/blender/makesrna/intern/rna_wm.c | 5 +++-- source/blender/windowmanager/intern/wm_event_system.c | 12 ++++++++---- 3 files changed, 14 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c index da8f326caca..5311c80e45d 100644 --- a/source/blender/makesrna/intern/rna_screen.c +++ b/source/blender/makesrna/intern/rna_screen.c @@ -61,13 +61,13 @@ static void rna_Screen_scene_set(PointerRNA *ptr, PointerRNA value) sc->newscene= value.data; } -static void rna_Screen_scene_update(Main *bmain, Scene *scene, PointerRNA *ptr) +static void rna_Screen_scene_update(bContext *C, PointerRNA *ptr) { bScreen *sc= (bScreen*)ptr->data; /* exception: can't set screens inside of area/region handers */ if(sc->newscene) { - WM_main_add_notifier(NC_SCENE|ND_SCENEBROWSE, sc->newscene); + WM_event_add_notifier(C, NC_SCENE|ND_SCENEBROWSE, sc->newscene); sc->newscene= NULL; } } @@ -178,6 +178,7 @@ static void rna_def_screen(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE|PROP_NEVER_NULL); RNA_def_property_pointer_funcs(prop, NULL, "rna_Screen_scene_set", NULL); RNA_def_property_ui_text(prop, "Scene", "Active scene to be edited in the screen."); + RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, 0, "rna_Screen_scene_update"); prop= RNA_def_property(srna, "areas", PROP_COLLECTION, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index d3e0d166755..6459e5d7c48 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -348,13 +348,13 @@ static void rna_Window_screen_set(PointerRNA *ptr, PointerRNA value) win->newscreen= value.data; } -static void rna_Window_screen_update(Main *bmain, Scene *scene, PointerRNA *ptr) +static void rna_Window_screen_update(bContext *C, PointerRNA *ptr) { wmWindow *win= (wmWindow*)ptr->data; /* exception: can't set screens inside of area/region handers */ if(win->newscreen) { - WM_main_add_notifier(NC_SCREEN|ND_SCREENBROWSE, win->newscreen); + WM_event_add_notifier(C, NC_SCREEN|ND_SCREENBROWSE, win->newscreen); win->newscreen= NULL; } } @@ -772,6 +772,7 @@ static void rna_def_window(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Screen", "Active screen showing in the window."); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_pointer_funcs(prop, NULL, "rna_Window_screen_set", NULL); + RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_update(prop, 0, "rna_Window_screen_update"); } diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 76ab00e19a5..8bc258f7c0a 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -214,21 +214,25 @@ void wm_event_do_notifiers(bContext *C) if(note->category==NC_SCREEN) { if(note->data==ND_SCREENBROWSE) { ED_screen_set(C, note->reference); // XXX hrms, think this over! - printf("screen set %p\n", note->reference); + if(G.f & G_DEBUG) + printf("screen set %p\n", note->reference); } else if(note->data==ND_SCREENDELETE) { ED_screen_delete(C, note->reference); // XXX hrms, think this over! - printf("screen delete %p\n", note->reference); + if(G.f & G_DEBUG) + printf("screen delete %p\n", note->reference); } } else if(note->category==NC_SCENE) { if(note->data==ND_SCENEBROWSE) { ED_screen_set_scene(C, note->reference); // XXX hrms, think this over! - printf("scene set %p\n", note->reference); + if(G.f & G_DEBUG) + printf("scene set %p\n", note->reference); } if(note->data==ND_SCENEDELETE) { ED_screen_delete_scene(C, note->reference); // XXX hrms, think this over! - printf("scene delete %p\n", note->reference); + if(G.f & G_DEBUG) + printf("scene delete %p\n", note->reference); } else if(note->data==ND_FRAME) do_anim= 1; -- cgit v1.2.3 From abae1e2ccf2bb16d4a436cdcbb17560252df7e8a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 11:09:56 +0000 Subject: Sculpt Branch: sculpting with modifiers and shape keys working again. --- source/blender/editors/sculpt_paint/sculpt.c | 130 +++++++++++++-------- .../blender/editors/sculpt_paint/sculpt_intern.h | 7 +- 2 files changed, 84 insertions(+), 53 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 9a25cf21542..d67f13f1537 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -294,8 +294,9 @@ static void update_cb(PBVHNode *node, void *data) static void sculpt_undo_restore(bContext *C, ListBase *lb) { + Scene *scene = CTX_data_scene(C); Object *ob = CTX_data_active_object(C); - DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, 0); + DerivedMesh *dm = mesh_get_derived_final(scene, ob, 0); SculptSession *ss = ob->sculpt; SculptUndoNode *unode; MVert *mvert; @@ -303,7 +304,7 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb) int *index; int i, j, update= 0; - sculpt_update_mesh_elements(C, 0); + sculpt_update_mesh_elements(scene, ob, 0); for(unode=lb->first; unode; unode=unode->next) { if(!(strcmp(unode->idname, ob->id.name)==0)) @@ -349,6 +350,9 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb) } if(update) { + if(ss->kb) sculpt_mesh_to_key(ss->ob, ss->kb); + if(ss->refkb) sculpt_key_to_mesh(ss->refkb, ob); + /* we update all nodes still, should be more clever, but also needs to work correct when exiting/entering sculpt mode and the nodes get recreated, though in that case it could do all */ @@ -1250,7 +1254,6 @@ static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache) { SculptSearchSphereData data; Brush *brush = paint_brush(&sd->paint); - //KeyBlock *keyblock= NULL; /*XXX: ob_get_keyblock(OBACT); */ PBVHNode **nodes= NULL; int totnode; @@ -1312,23 +1315,8 @@ static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache) break; } -#if 0 - /* Copy the modified vertices from mesh to the active key */ + /* copy the modified vertices from mesh to the active key */ if(ss->kb) mesh_to_key(ss->ob->data, ss->kb); - - for(; adata; adata= adata->next) - if(adata->Index < keyblock->totelem) - copy_v3_v3(&co[adata->Index*3], me->mvert[adata->Index].co); - } - } - - if(ss->vertexcosnos && !ss->multires) - BLI_freelistN(&active_verts); - else { - if(b->sculpt_tool != SCULPT_TOOL_GRAB) - addlisttolist(&ss->modified_verts, &active_verts); - } -#endif if((brush->sculpt_tool != SCULPT_TOOL_GRAB) && nodes) MEM_freeN(nodes); @@ -1390,8 +1378,9 @@ char sculpt_modifiers_active(Object *ob) ModifierData *md; for(md= modifiers_getVirtualModifierList(ob); md; md= md->next) { - if(modifier_isEnabled(md, eModifierMode_Realtime) && md->type != eModifierType_Multires) - return 1; + if(modifier_isEnabled(md, eModifierMode_Realtime)) + if(!ELEM(md->type, eModifierType_Multires, eModifierType_ShapeKey)) + return 1; } return 0; @@ -1421,14 +1410,40 @@ struct MultiresModifierData *sculpt_multires_active(Object *ob) return NULL; } -void sculpt_update_mesh_elements(bContext *C, int need_fmap) +void sculpt_key_to_mesh(KeyBlock *kb, Object *ob) { - Object *ob = CTX_data_active_object(C); - DerivedMesh *dm = mesh_get_derived_final(CTX_data_scene(C), ob, 0); + Mesh *me= ob->data; + + key_to_mesh(kb, me); + mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL); +} + +void sculpt_mesh_to_key(Object *ob, KeyBlock *kb) +{ + Mesh *me= ob->data; + + mesh_to_key(me, kb); +} + +void sculpt_update_mesh_elements(Scene *scene, Object *ob, int need_fmap) +{ + DerivedMesh *dm = mesh_get_derived_final(scene, ob, 0); SculptSession *ss = ob->sculpt; ss->ob= ob; + if((ob->shapeflag & OB_SHAPE_LOCK) && !sculpt_multires_active(ob)) { + ss->kb= ob_get_keyblock(ob); + ss->refkb= ob_get_reference_keyblock(ob); + } + else { + ss->kb= NULL; + ss->refkb= NULL; + } + + /* need to make PBVH with shape key coordinates */ + if(ss->kb) sculpt_key_to_mesh(ss->kb, ss->ob); + if((ss->multires = sculpt_multires_active(ob))) { ss->totvert = dm->getNumVerts(dm); ss->totface = dm->getNumFaces(dm); @@ -1445,18 +1460,8 @@ void sculpt_update_mesh_elements(bContext *C, int need_fmap) ss->face_normals = NULL; } - ss->ob = ob; ss->tree = dm->getPBVH(ob, dm); ss->fmap = (need_fmap && dm->getFaceMap)? dm->getFaceMap(dm): NULL; - - if((ob->shapeflag & OB_SHAPE_LOCK) && !sculpt_multires_active(ob)) { - ss->kb= ob_get_keyblock(ob); - ss->refkb= ob_get_reference_keyblock(ob); - } - else { - ss->kb= NULL; - ss->refkb= NULL; - } } static int sculpt_mode_poll(bContext *C) @@ -1701,6 +1706,12 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P } } +static void sculpt_stroke_modifiers_check(bContext *C, SculptSession *ss) +{ + if(sculpt_modifiers_active(ss->ob)) + sculpt_update_mesh_elements(CTX_data_scene(C), ss->ob, 0); // XXX brush->sculpt_tool == SCULPT_TOOL_SMOOTH); +} + typedef struct { SculptSession *ss; float *ray_start, *ray_normal; @@ -1739,6 +1750,8 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou mouse[1] - vc->ar->winrct.ymin}; SculptRaycastData srd; + sculpt_stroke_modifiers_check(C, ss); + viewray(vc->ar, vc->v3d, mval, ray_start, ray_normal); invert_m4_m4(obimat, ss->ob->obmat); @@ -1800,6 +1813,7 @@ static void sculpt_brush_stroke_init_properties(bContext *C, wmOperator *op, wmE static int sculpt_brush_stroke_init(bContext *C, ReportList *reports) { + Scene *scene= CTX_data_scene(C); Object *ob= CTX_data_active_object(C); Sculpt *sd = CTX_data_tool_settings(C)->sculpt; SculptSession *ss = CTX_data_active_object(C)->sculpt; @@ -1817,9 +1831,7 @@ static int sculpt_brush_stroke_init(bContext *C, ReportList *reports) changes are made to the texture. */ sculpt_update_tex(sd, ss); - sculpt_update_mesh_elements(C, brush->sculpt_tool == SCULPT_TOOL_SMOOTH); - - if(ss->kb) key_to_mesh(ss->kb, ss->ob->data); + sculpt_update_mesh_elements(scene, ob, brush->sculpt_tool == SCULPT_TOOL_SMOOTH); return 1; } @@ -1871,23 +1883,30 @@ static void sculpt_flush_update(bContext *C) SculptSession *ss = ob->sculpt; ARegion *ar = CTX_wm_region(C); MultiresModifierData *mmd = ss->multires; - rcti r; int redraw = 0; if(mmd) multires_mark_as_modified(ob); - BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL); - redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r); + if(sculpt_modifiers_active(ob)) { + DAG_id_flush_update(&ob->id, OB_RECALC_DATA); + ED_region_tag_redraw(ar); + } + else { + rcti r; - if(redraw) { - r.xmin += ar->winrct.xmin + 1; - r.xmax += ar->winrct.xmin - 1; - r.ymin += ar->winrct.ymin + 1; - r.ymax += ar->winrct.ymin - 1; - - ss->partial_redraw = 1; - ED_region_tag_redraw_partial(ar, &r); + BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL); + redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r); + + if(redraw) { + r.xmin += ar->winrct.xmin + 1; + r.xmax += ar->winrct.xmin - 1; + r.ymin += ar->winrct.ymin + 1; + r.ymax += ar->winrct.ymin - 1; + + ss->partial_redraw = 1; + ED_region_tag_redraw_partial(ar, &r); + } } } @@ -1923,6 +1942,7 @@ static void sculpt_stroke_update_step(bContext *C, struct PaintStroke *stroke, P Sculpt *sd = CTX_data_tool_settings(C)->sculpt; SculptSession *ss = CTX_data_active_object(C)->sculpt; + sculpt_stroke_modifiers_check(C, ss); sculpt_update_cache_variants(sd, ss, stroke, itemptr); sculpt_restore_mesh(sd, ss); do_symmetrical_brush_actions(sd, ss); @@ -1938,12 +1958,16 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke) /* Finished */ if(ss->cache) { + sculpt_stroke_modifiers_check(C, ss); + sculpt_cache_free(ss->cache); ss->cache = NULL; sculpt_undo_push_end(ss); BLI_pbvh_update(ss->tree, PBVH_UpdateOriginalBB, NULL); + + if(ss->refkb) sculpt_key_to_mesh(ss->refkb, ob); } } @@ -2053,15 +2077,19 @@ static void SCULPT_OT_set_persistent_base(wmOperatorType *ot) /**** Toggle operator for turning sculpt mode on or off ****/ -static void sculpt_init_session(bContext *C, Object *ob) +static void sculpt_init_session(Scene *scene, Object *ob) { ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session"); - sculpt_update_mesh_elements(C, 0); + sculpt_update_mesh_elements(scene, ob, 0); + + if(ob->sculpt->refkb) + sculpt_key_to_mesh(ob->sculpt->refkb, ob); } static int sculpt_toggle_mode(bContext *C, wmOperator *op) { + Scene *scene = CTX_data_scene(C); ToolSettings *ts = CTX_data_tool_settings(C); Object *ob = CTX_data_active_object(C); MultiresModifierData *mmd = sculpt_multires_active(ob); @@ -2093,7 +2121,7 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *op) if(ob->sculpt) free_sculptsession(&ob->sculpt); - sculpt_init_session(C, ob); + sculpt_init_session(scene, ob); paint_init(&ts->sculpt->paint, PAINT_CURSOR_SCULPT); diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.h b/source/blender/editors/sculpt_paint/sculpt_intern.h index d0eeacf5ea3..0e1c0510902 100644 --- a/source/blender/editors/sculpt_paint/sculpt_intern.h +++ b/source/blender/editors/sculpt_paint/sculpt_intern.h @@ -35,12 +35,13 @@ struct bContext; struct Brush; +struct KeyBlock; struct Mesh; +struct MultiresModifierData; struct Object; struct Scene; struct Sculpt; struct SculptStroke; -struct MultiresModifierData; /* Interface */ void sculptmode_selectbrush_menu(void); @@ -57,7 +58,9 @@ char sculpt_modifiers_active(struct Object *ob); void sculpt(Sculpt *sd); int sculpt_poll(struct bContext *C); -void sculpt_update_mesh_elements(struct bContext *C, int need_fmap); +void sculpt_update_mesh_elements(struct Scene *scene, struct Object *ob, int need_fmap); +void sculpt_key_to_mesh(struct KeyBlock *kb, struct Object *ob); +void sculpt_mesh_to_key(struct Object *ob, struct KeyBlock *kb); /* Stroke */ struct SculptStroke *sculpt_stroke_new(const int max); -- cgit v1.2.3 From 9bc23bd616ffec08af43258ffe3b8bfbf2e0065f Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Wed, 9 Dec 2009 11:38:32 +0000 Subject: Whoops, silly typo --- source/blender/editors/screen/screen_edit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 6d8f25bb9ff..fef3818a2c7 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1468,7 +1468,7 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa) // default. So use the old headertype instead area_copy_data(old, sa, 1); /* 1 = swap spacelist */ - if (sa->flag |= AREA_TEMP_INFO) sa->flag &= ~AREA_TEMP_INFO; + if (sa->flag & AREA_TEMP_INFO) sa->flag &= ~AREA_TEMP_INFO; old->full= NULL; /* animtimer back */ -- cgit v1.2.3 From 0e713ba1d01c6bca4052b19f72045415cd6fea70 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Dec 2009 12:00:28 +0000 Subject: - rewrote arm rig so it creates 2 chains and blend them automatically (like the leg) - use reverse order for palm fingers (pointer first) - allow copying bone class instances to exclude some bones - doc generation had a python error (incedently updated online docs linked from the splash) --- source/blender/python/epy_doc_gen.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/epy_doc_gen.py b/source/blender/python/epy_doc_gen.py index f16c7504cb2..8783cec93ab 100644 --- a/source/blender/python/epy_doc_gen.py +++ b/source/blender/python/epy_doc_gen.py @@ -691,8 +691,15 @@ def op2epy(BASEPATH): operators = dir(op_mod) for op in sorted(operators): # rna = getattr(bpy.types, op).bl_rna - rna = getattr(op_mod, op).get_rna() - write_func(rna, '', out, 'OPERATOR') + try: + rna = getattr(op_mod, op).get_rna() + except AttributeError: + rna = None + except TypeError: + rna = None + + if rna: + write_func(rna, '', out, 'OPERATOR') out.write('\n') out.close() -- cgit v1.2.3 From 9ea765e5d316ca6d2b15da2392e9da3643a856bb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 13:37:19 +0000 Subject: Sculpt Branch: * Smooth brush works again for multires. * Optimal Display option for multires modifier, same as subsurf. --- source/blender/blenkernel/BKE_multires.h | 20 ++-- source/blender/blenkernel/intern/CCGSubSurf.c | 27 +++-- source/blender/blenkernel/intern/multires.c | 67 ++++++++++-- source/blender/blenkernel/intern/subsurf_ccg.c | 6 +- source/blender/blenlib/BLI_pbvh.h | 9 +- source/blender/blenlib/intern/pbvh.c | 20 ++-- source/blender/editors/sculpt_paint/sculpt.c | 136 ++++++++++++++++++++----- source/blender/makesdna/DNA_modifier_types.h | 6 +- source/blender/makesrna/intern/rna_modifier.c | 9 +- 9 files changed, 234 insertions(+), 66 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index 53ead3a5eda..ff320bc7d25 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -27,24 +27,22 @@ * ***** END GPL LICENSE BLOCK ***** */ +#ifndef BKE_MULTIRES_H +#define BKE_MULTIRES_H + struct DerivedMesh; struct Mesh; struct MFace; +struct Multires; struct MultiresModifierData; struct Object; -typedef struct MultiresSubsurf { - struct MultiresModifierData *mmd; - struct Object *ob; - int local_mmd; -} MultiresSubsurf; - void multires_mark_as_modified(struct Object *ob); void multires_force_update(struct Object *ob); -struct DerivedMesh *multires_dm_create_from_derived(struct MultiresModifierData*, int local_mmd, struct DerivedMesh*, - struct Object *, int, int); +struct DerivedMesh *multires_dm_create_from_derived(struct MultiresModifierData*, + int local_mmd, struct DerivedMesh*, struct Object *, int, int); struct MultiresModifierData *find_multires_modifier(struct Object *ob); void multiresModifier_join(struct Object *); @@ -53,7 +51,11 @@ void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct Object int updateblock, int simple); int multiresModifier_reshape(struct MultiresModifierData *mmd, struct Object *dst, struct Object *src); +void multires_stitch_grids(struct Object *); + /* Related to the old multires */ -struct Multires; void multires_load_old(struct DerivedMesh *, struct Multires *); void multires_free(struct Multires*); + +#endif + diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c index cc2bd531fe6..4bd0586c592 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.c +++ b/source/blender/blenkernel/intern/CCGSubSurf.c @@ -2228,8 +2228,9 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in VertDataZero(FACE_getCenterData(f)); for (S=0; SnumVerts; S++) - for (x=0; xflags&Edge_eEffected) + for (x=0; xnumVerts; S++) { int prevS = (S+f->numVerts-1)%f->numVerts; @@ -2237,18 +2238,23 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in CCGEdge *prevE = FACE_getEdges(f)[prevS]; VertDataAdd(FACE_getCenterData(f), FACE_getIFCo(f, lvl, S, 0, 0)); - VertDataAdd(VERT_getCo(FACE_getVerts(f)[S], lvl), FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx)); + if (FACE_getVerts(f)[S]->flags&Vert_eEffected) + VertDataAdd(VERT_getCo(FACE_getVerts(f)[S], lvl), FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx)); for (x=1; xflags&Edge_eEffected) + VertDataAdd(FACE_getIECo(f, lvl, S, x), FACE_getIFCo(f, lvl, S, x, 0)); + if (FACE_getEdges(f)[prevS]->flags&Edge_eEffected) + VertDataAdd(FACE_getIECo(f, lvl, prevS, x), FACE_getIFCo(f, lvl, S, 0, x)); } for (x=0; xflags&Edge_eEffected) + VertDataAdd(_edge_getCoVert(e, FACE_getVerts(f)[S], lvl, eI,vertDataSize), FACE_getIFCo(f, lvl, S, cornerIdx, x)); + if (FACE_getEdges(f)[prevS]->flags&Edge_eEffected) + if(x != 0) + VertDataAdd(_edge_getCoVert(prevE, FACE_getVerts(f)[S], lvl, eI,vertDataSize), FACE_getIFCo(f, lvl, S, x, cornerIdx)); } } } @@ -2276,8 +2282,9 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in VertDataMulN(FACE_getCenterData(f), 1.0f/f->numVerts); for (S=0; SnumVerts; S++) - for (x=1; xflags&Edge_eEffected) + for (x=1; xnumVerts; S++) { int prevS = (S+f->numVerts-1)%f->numVerts; diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 69659db3ba7..8a76d659d5f 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -39,6 +39,7 @@ #include "BLI_math.h" #include "BLI_blenlib.h" +#include "BLI_pbvh.h" #include "BKE_btex.h" #include "BKE_cdderivedmesh.h" @@ -60,8 +61,8 @@ /* MULTIRES MODIFIER */ static const int multires_max_levels = 13; -static const int multires_grid_tot[] = {1, 4, 9, 25, 81, 289, 1089, 4225, 16641, 66049, 263169, 1050625, 4198401, 16785409}; -static const int multires_side_tot[] = {1, 2, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097}; +static const int multires_grid_tot[] = {0, 4, 9, 25, 81, 289, 1089, 4225, 16641, 66049, 263169, 1050625, 4198401, 16785409}; +static const int multires_side_tot[] = {0, 2, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097}; static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, int invert, int add, DMGridData **oldGridData, int totlvl); @@ -307,7 +308,7 @@ static DerivedMesh *multires_dm_create_local(Object *ob, DerivedMesh *dm, int lv return multires_dm_create_from_derived(&mmd, 1, dm, ob, 0, 0); } -static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple) +static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple, int optimal) { SubsurfModifierData smd; @@ -316,6 +317,8 @@ static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl smd.flags |= eSubsurfModifierFlag_SubsurfUv; if(simple) smd.subdivType = ME_SIMPLE_SUBSURF; + if(optimal) + smd.flags |= eSubsurfModifierFlag_ControlEdges; return subsurf_make_derived_from_derived(dm, &smd, 0, NULL, 0, 0); } @@ -363,7 +366,7 @@ void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int updat /* create subsurf DM from original mesh at high level */ cddm = CDDM_from_mesh(me, NULL); - highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple); + highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0); /* create multires DM from original mesh at low level */ lowdm = multires_dm_create_local(ob, cddm, lvl, lvl, simple); @@ -551,7 +554,7 @@ static void multiresModifier_update(DerivedMesh *dm) /* create subsurf DM from original mesh at high level */ cddm = CDDM_from_mesh(me, NULL); - highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple); + highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple, 0); /* create multires DM from original mesh and displacements */ lowdm = multires_dm_create_local(ob, cddm, lvl, totlvl, mmd->simple); @@ -602,7 +605,7 @@ static void multiresModifier_update(DerivedMesh *dm) DerivedMesh *cddm, *subdm; cddm = CDDM_from_mesh(me, NULL); - subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple); + subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple, 0); cddm->release(cddm); multiresModifier_disp_run(dm, me, 1, 0, subdm->getGridData(subdm), mmd->totlvl); @@ -629,6 +632,25 @@ void multires_force_update(Object *ob) } } +void multires_stitch_grids(Object *ob) +{ + /* utility for smooth brush */ + if(ob && ob->derivedFinal) { + CCGDerivedMesh *ccgdm = (CCGDerivedMesh*)ob->derivedFinal; + CCGFace **faces; + int totface; + + if(ccgdm->pbvh) { + BLI_pbvh_get_grid_updates(ccgdm->pbvh, 0, (void***)&faces, &totface); + + if(totface) { + ccgSubSurf_stitchFaces(ccgdm->ss, 0, faces, totface); + MEM_freeN(faces); + } + } + } +} + struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int local_mmd, DerivedMesh *dm, Object *ob, int useRenderParams, int isFinalCalc) { @@ -642,7 +664,8 @@ struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, i if(lvl == 0) return dm; - result = subsurf_dm_create_local(ob, dm, lvl, 0); + result = subsurf_dm_create_local(ob, dm, lvl, + mmd->simple, mmd->flags & eMultiresModifierFlag_ControlEdges); if(!local_mmd) { ccgdm = (CCGDerivedMesh*)result; @@ -680,6 +703,36 @@ struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, i /**** Old Multires code **** ***************************/ +#if 0 +static void mdisp_copy_grid(float (*new)[3], int newstride, float (*old)[3], int oldstride, int xoff, int yoff, int xsize, int ysize) +{ + int x, y; + + for(y = 0; y < ysize; ++y) + for(x = 0; x < xsize; ++x) + copy_v3_v3(disps[x + y*side], mdisp->disps[(x + xoffs) + (y + yoffs)*oldside]); + +} + +static void mdisps_convert(MFace *mface, MDisps *mdisp, int lvl) +{ + int side = multires_side_tot[lvl]; + int nvert = (mface->v4)? 4: 3; + int totdisp = multires_grid_tot[lvl]*nvert; + int x, y; + float (*disps)[3]; + + disps = MEM_callocN(sizeof(float) * 3 * totdisp, "multires disps"); + + + +static const int multires_max_levels = 13; +static const int multires_grid_tot[] = {1, 4, 9, 25, 81, 289, 1089, 4225, 16641, 66049, 263169, 1050625, 4198401, 16785409}; +static const int multires_side_tot[] = {1, 2, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097}; + +} +#endif + /* Does not actually free lvl itself */ static void multires_free_level(MultiresLevel *lvl) { diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index c9d84670044..f6abedda2b6 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1235,7 +1235,7 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes) CCGFace **faces; int totface; - BLI_pbvh_get_grid_updates(ccgdm->pbvh, (void***)&faces, &totface); + BLI_pbvh_get_grid_updates(ccgdm->pbvh, 1, (void***)&faces, &totface); if(totface) { ccgSubSurf_updateFromFaces(ss, 0, faces, totface); ccgSubSurf_updateNormals(ss, faces, totface); @@ -2155,8 +2155,8 @@ static struct PBVH *ccgDM_getPBVH(Object *ob, DerivedMesh *dm) numGrids = ccgDM_getNumGrids(dm); ccgdm->pbvh = BLI_pbvh_new(); - BLI_pbvh_build_grids(ccgdm->pbvh, ccgdm->gridData, numGrids, gridSize, - (void**)ccgdm->gridFaces); + BLI_pbvh_build_grids(ccgdm->pbvh, ccgdm->gridData, ccgdm->gridAdjacency, + numGrids, gridSize, (void**)ccgdm->gridFaces); } else if(ob->type == OB_MESH) { Mesh *me= ob->data; diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h index 5c5277dc091..e1e733c91df 100644 --- a/source/blender/blenlib/BLI_pbvh.h +++ b/source/blender/blenlib/BLI_pbvh.h @@ -27,6 +27,7 @@ struct MFace; struct MVert; +struct DMGridAdjacency; struct DMGridData; struct PBVH; struct PBVHNode; @@ -47,7 +48,8 @@ typedef void (*BLI_pbvh_HitCallback)(PBVHNode *node, void *data); PBVH *BLI_pbvh_new(void); void BLI_pbvh_build_mesh(PBVH *bvh, struct MFace *faces, struct MVert *verts, int totface, int totvert); -void BLI_pbvh_build_grids(PBVH *bvh, struct DMGridData **grids, int totgrid, +void BLI_pbvh_build_grids(PBVH *bvh, struct DMGridData **grids, + struct DMGridAdjacency *gridadj, int totgrid, int gridsize, void **gridfaces); void BLI_pbvh_free(PBVH *bvh); @@ -94,7 +96,8 @@ typedef enum { void BLI_pbvh_node_mark_update(PBVHNode *node); void BLI_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, - int **grid_indices, int *totgrid, int *maxgrid, int *gridsize); + int **grid_indices, int *totgrid, int *maxgrid, int *gridsize, + struct DMGridData ***griddata, struct DMGridAdjacency **gridadj); void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *totvert); @@ -105,7 +108,7 @@ void BLI_pbvh_node_get_original_BB(PBVHNode *node, float bb_min[3], float bb_max void BLI_pbvh_update(PBVH *bvh, int flags, float (*face_nors)[3]); void BLI_pbvh_redraw_BB(PBVH *bvh, float bb_min[3], float bb_max[3]); -void BLI_pbvh_get_grid_updates(PBVH *bvh, void ***gridfaces, int *totface); +void BLI_pbvh_get_grid_updates(PBVH *bvh, int clear, void ***gridfaces, int *totface); /* Vertex Iterator */ diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index 3aa0f43553f..960888260ce 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -114,6 +114,7 @@ struct PBVH { /* Grid Data */ DMGridData **grids; + DMGridAdjacency *gridadj; void **gridfaces; int totgrid; int gridsize; @@ -510,14 +511,15 @@ void BLI_pbvh_build_mesh(PBVH *bvh, MFace *faces, MVert *verts, int totface, int } /* Do a full rebuild with on Grids data structure */ -void BLI_pbvh_build_grids(PBVH *bvh, DMGridData **grids, int totgrid, - int gridsize, void **gridfaces) +void BLI_pbvh_build_grids(PBVH *bvh, DMGridData **grids, DMGridAdjacency *gridadj, + int totgrid, int gridsize, void **gridfaces) { BBC *prim_bbc = NULL; BB cb; int i, j; bvh->grids= grids; + bvh->gridadj= gridadj; bvh->gridfaces= gridfaces; bvh->totgrid= totgrid; bvh->gridsize= gridsize; @@ -948,7 +950,7 @@ void BLI_pbvh_redraw_BB(PBVH *bvh, float bb_min[3], float bb_max[3]) copy_v3_v3(bb_max, bb.bmax); } -void BLI_pbvh_get_grid_updates(PBVH *bvh, void ***gridfaces, int *totface) +void BLI_pbvh_get_grid_updates(PBVH *bvh, int clear, void ***gridfaces, int *totface) { PBVHIter iter; PBVHNode *node; @@ -965,10 +967,12 @@ void BLI_pbvh_get_grid_updates(PBVH *bvh, void ***gridfaces, int *totface) if(node->flag & PBVH_UpdateNormals) { for(i = 0; i < node->totprim; ++i) { face= bvh->gridfaces[node->prim_indices[i]]; - BLI_ghash_insert(map, face, face); + if(!BLI_ghash_lookup(map, face)) + BLI_ghash_insert(map, face, face); } - node->flag &= ~PBVH_UpdateNormals; + if(clear) + node->flag &= ~PBVH_UpdateNormals; } } @@ -1021,19 +1025,23 @@ void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *to } } -void BLI_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, int **grid_indices, int *totgrid, int *maxgrid, int *gridsize) +void BLI_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, int **grid_indices, int *totgrid, int *maxgrid, int *gridsize, DMGridData ***griddata, DMGridAdjacency **gridadj) { if(bvh->grids) { if(grid_indices) *grid_indices= node->prim_indices; if(totgrid) *totgrid= node->totprim; if(maxgrid) *maxgrid= bvh->totgrid; if(gridsize) *gridsize= bvh->gridsize; + if(griddata) *griddata= bvh->grids; + if(gridadj) *gridadj= bvh->gridadj; } else { if(grid_indices) *grid_indices= NULL; if(totgrid) *totgrid= 0; if(maxgrid) *maxgrid= 0; if(gridsize) *gridsize= 0; + if(griddata) *griddata= NULL; + if(gridadj) *gridadj= NULL; } } diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index d67f13f1537..c715dc97cde 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -415,7 +415,8 @@ static SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node) unode->node= node; BLI_pbvh_node_num_verts(ss->tree, node, &totvert, &allvert); - BLI_pbvh_node_get_grids(ss->tree, node, &grids, &totgrid, &maxgrid, &gridsize); + BLI_pbvh_node_get_grids(ss->tree, node, &grids, &totgrid, + &maxgrid, &gridsize, NULL, NULL); unode->totvert= totvert; /* we will use this while sculpting, is mapalloc slow to access then? */ @@ -795,9 +796,9 @@ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3] BLI_pbvh_vertex_iter_end; } + #pragma omp critical { /* we sum per node and add together later for threads */ - #pragma omp critical add_v3_v3v3(out, out, nout); add_v3_v3v3(out_flip, out_flip, nout_flip); } @@ -903,43 +904,128 @@ static void neighbor_average(SculptSession *ss, float avg[3], const int vert) copy_v3_v3(avg, ss->mvert[vert].co); } -static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) +static void do_mesh_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node) { Brush *brush = paint_brush(&sd->paint); float bstrength= ss->cache->bstrength; - int iteration, n; + PBVHVertexIter vd; + SculptBrushTest test; + + sculpt_brush_test_init(ss, &test); - /* XXX not working for multires yet */ - if(!ss->fmap) - return; + BLI_pbvh_vertex_iter_begin(ss->tree, node, vd, PBVH_ITER_UNIQUE) { + if(sculpt_brush_test(&test, vd.co)) { + float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; + float avg[3], val[3]; + + neighbor_average(ss, avg, vd.vert_indices[vd.i]); + val[0] = vd.co[0]+(avg[0]-vd.co[0])*fade; + val[1] = vd.co[1]+(avg[1]-vd.co[1])*fade; + val[2] = vd.co[2]+(avg[2]-vd.co[2])*fade; + + sculpt_clip(sd, ss, vd.co, val); + if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + } + } + BLI_pbvh_vertex_iter_end; +} - for(iteration = 0; iteration < 2; ++iteration) { - #pragma omp parallel for private(n) schedule(static) - for(n=0; npaint); + SculptBrushTest test; + DMGridData **griddata, *data; + DMGridAdjacency *gridadj, *adj; + float bstrength= ss->cache->bstrength; + float co[3], (*tmpgrid)[3]; + int v1, v2, v3, v4; + int *grid_indices, totgrid, gridsize, i, x, y; - sculpt_undo_push_node(ss, nodes[n]); - sculpt_brush_test_init(ss, &test); + sculpt_brush_test_init(ss, &test); - BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) { - if(sculpt_brush_test(&test, vd.co)) { - float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; + BLI_pbvh_node_get_grids(ss->tree, node, &grid_indices, &totgrid, + NULL, &gridsize, &griddata, &gridadj); + + #pragma omp critical + tmpgrid= MEM_mallocN(sizeof(float)*3*gridsize*gridsize, "tmpgrid"); + + for(i = 0; i < totgrid; ++i) { + data = griddata[grid_indices[i]]; + adj = &gridadj[grid_indices[i]]; + + memset(tmpgrid, 0, sizeof(float)*3*gridsize*gridsize); + + /* average grid values */ + for(y = 0; y < gridsize-1; ++y) { + for(x = 0; x < gridsize-1; ++x) { + v1 = x + y*gridsize; + v2 = (x + 1) + y*gridsize; + v3 = (x + 1) + (y + 1)*gridsize; + v4 = x + (y + 1)*gridsize; + + cent_quad_v3(co, data[v1].co, data[v2].co, data[v3].co, data[v4].co); + mul_v3_fl(co, 0.25f); + + add_v3_v3(tmpgrid[v1], co); + add_v3_v3(tmpgrid[v2], co); + add_v3_v3(tmpgrid[v3], co); + add_v3_v3(tmpgrid[v4], co); + } + } + + /* blend with existing coordinates */ + for(y = 0; y < gridsize; ++y) { + for(x = 0; x < gridsize; ++x) { + if(x == 0 && adj->index[0] == -1) continue; + if(x == gridsize - 1 && adj->index[2] == -1) continue; + if(y == 0 && adj->index[3] == -1) continue; + if(y == gridsize - 1 && adj->index[1] == -1) continue; + + copy_v3_v3(co, data[x + y*gridsize].co); + + if(sculpt_brush_test(&test, co)) { + float fade = tex_strength(ss, brush, co, test.dist)*bstrength; float avg[3], val[3]; + + copy_v3_v3(avg, tmpgrid[x + y*gridsize]); + if(x == 0 || x == gridsize - 1) + mul_v3_fl(avg, 2.0f); + if(y == 0 || y == gridsize - 1) + mul_v3_fl(avg, 2.0f); + + val[0] = co[0]+(avg[0]-co[0])*fade; + val[1] = co[1]+(avg[1]-co[1])*fade; + val[2] = co[2]+(avg[2]-co[2])*fade; - neighbor_average(ss, avg, vd.vert_indices[vd.i]); - val[0] = vd.co[0]+(avg[0]-vd.co[0])*fade; - val[1] = vd.co[1]+(avg[1]-vd.co[1])*fade; - val[2] = vd.co[2]+(avg[2]-vd.co[2])*fade; - - sculpt_clip(sd, ss, vd.co, val); - if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE; + sculpt_clip(sd, ss, data[x + y*gridsize].co, val); } } - BLI_pbvh_vertex_iter_end; + } + } + + #pragma omp critical + MEM_freeN(tmpgrid); +} + +static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode) +{ + int iteration, n; + + for(iteration = 0; iteration < 2; ++iteration) { + #pragma omp parallel for private(n) schedule(static) + for(n=0; nfmap) + do_mesh_smooth_brush(sd, ss, nodes[n]); + else + do_multires_smooth_brush(sd, ss, nodes[n]); BLI_pbvh_node_mark_update(nodes[n]); } + + if(!ss->fmap) + multires_stitch_grids(ss->ob); } } diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 33130c6732f..c599c8a7e0f 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -586,9 +586,13 @@ typedef struct MultiresModifierData { ModifierData modifier; char lvl, sculptlvl, renderlvl, totlvl; - char simple, pad[3]; + char simple, flags, pad[2]; } MultiresModifierData; +typedef enum { + eMultiresModifierFlag_ControlEdges = (1<<0), +} MultiresModifierFlag; + typedef struct FluidsimModifierData { ModifierData modifier; diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index dedd072011d..cefaf2d7535 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -534,9 +534,9 @@ static void rna_def_modifier_subsurf(BlenderRNA *brna) RNA_def_property_ui_range(prop, 0, 6, 1, 0); RNA_def_property_ui_text(prop, "Render Levels", "Number of subdivisions to perform when rendering."); - prop= RNA_def_property(srna, "optimal_draw", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "optimal_display", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", eSubsurfModifierFlag_ControlEdges); - RNA_def_property_ui_text(prop, "Optimal Draw", "Skip drawing/rendering of interior subdivided edges"); + RNA_def_property_ui_text(prop, "Optimal Display", "Skip drawing/rendering of interior subdivided edges"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); prop= RNA_def_property(srna, "subsurf_uv", PROP_BOOLEAN, PROP_NONE); @@ -583,6 +583,11 @@ static void rna_def_modifier_multires(BlenderRNA *brna) RNA_def_property_boolean_funcs(prop, "rna_MultiresModifier_external_get", "rna_MultiresModifier_external_set"); RNA_def_property_editable_func(prop, "rna_MultiresModifier_external_editable"); RNA_def_property_ui_text(prop, "External", "Store multires displacements outside the .blend file, to save memory."); + + prop= RNA_def_property(srna, "optimal_display", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flags", eMultiresModifierFlag_ControlEdges); + RNA_def_property_ui_text(prop, "Optimal Display", "Skip drawing/rendering of interior subdivided edges"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); } static void rna_def_modifier_lattice(BlenderRNA *brna) -- cgit v1.2.3 From a41131db24cd063f770b22bfdfa452511560c4ac Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Dec 2009 14:25:56 +0000 Subject: - added editbone.matrix, readonly, utility property that calculates the matrix from the bone roll - spine fixes - arm now uses the average Z axis to place the poll target --- source/blender/makesrna/intern/rna_armature.c | 26 +++++++++++++++++++++++++- source/blender/python/intern/bpy_driver.c | 4 +++- 2 files changed, 28 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index bfab46aa11c..6a6c370977a 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -43,9 +43,10 @@ #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_idprop.h" -#include "BKE_main.h" +#include "BKE_main.h"" #include "ED_armature.h" +#include "BKE_armature.h" static void rna_Armature_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { @@ -304,6 +305,21 @@ static void rna_EditBone_parent_set(PointerRNA *ptr, PointerRNA value) } } +static void rna_EditBone_matrix_get(PointerRNA *ptr, float *values) +{ + EditBone *ebone= (EditBone*)(ptr->data); + + float delta[3], tmat[3][3], mat[4][4]; + + /* Find the current bone matrix */ + sub_v3_v3v3(delta, ebone->tail, ebone->head); + vec_roll_to_mat3(delta, ebone->roll, tmat); + copy_m4_m3(mat, tmat); + VECCOPY(mat[3], ebone->head); + + memcpy(values, mat, 16 * sizeof(float)); +} + static void rna_Armature_editbone_transform_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bArmature *arm= (bArmature*)ptr->id.data; @@ -618,6 +634,14 @@ static void rna_def_edit_bone(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Tail Selected", ""); RNA_def_property_update(prop, 0, "rna_Armature_redraw_data"); + /* calculated and read only, not actual data access */ + prop= RNA_def_property(srna, "matrix", PROP_FLOAT, PROP_MATRIX); + //RNA_def_property_float_sdna(prop, NULL, ""); // doesnt access any real data + RNA_def_property_array(prop, 16); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Editbone Matrix", "Read-only matrix calculated from the roll (armature space)."); + RNA_def_property_float_funcs(prop, "rna_EditBone_matrix_get", NULL, NULL); // TODO - this could be made writable also + RNA_api_armature_edit_bone(srna); RNA_define_verify_sdna(1); diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c index 9acd6b1cd44..76df28494ac 100644 --- a/source/blender/python/intern/bpy_driver.c +++ b/source/blender/python/intern/bpy_driver.c @@ -192,7 +192,9 @@ float BPY_pydriver_eval (ChannelDriver *driver) } fprintf(stderr, "\tBPY_pydriver_eval() - couldn't add variable '%s' to namespace \n", dtar->name); - BPy_errors_to_report(NULL); // TODO - reports + // BPy_errors_to_report(NULL); // TODO - reports + PyErr_Print(); + PyErr_Clear(); } } -- cgit v1.2.3 From 5dd68e8cb62dd6bd755543fd4f2d152e6840234b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Dec 2009 14:29:55 +0000 Subject: some more rig options, fix typo --- source/blender/makesrna/intern/rna_armature.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 6a6c370977a..4859f23967f 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -43,7 +43,7 @@ #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_idprop.h" -#include "BKE_main.h"" +#include "BKE_main.h" #include "ED_armature.h" #include "BKE_armature.h" -- cgit v1.2.3 From f54776b1a677a8650cf3c18111643c0379c51724 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 14:37:26 +0000 Subject: VBO: * Fix #19785: curves not drawing with VBO enabled * Fix #19553: duplicate Window crashes with VBO's The convention in Blender was to have GL_VERTEX_ARRAY and GL_NORMAL_ARRAY enabled by default, and other arrays disabled. The VBO drawing code did not take this into account. I've made these now disabled by default, since that makes the code clearer in other places too. --- source/blender/editors/space_view3d/drawobject.c | 40 +++++++++++++----------- source/blender/gpu/intern/gpu_buffers.c | 8 +---- source/blender/gpu/intern/gpu_draw.c | 8 +++-- 3 files changed, 28 insertions(+), 28 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index fa8eee630aa..31c12285293 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -3010,7 +3010,7 @@ static int drawDispListwire(ListBase *dlbase) if(dlbase==NULL) return 1; - glDisableClientState(GL_NORMAL_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); for(dl= dlbase->first; dl; dl= dl->next) { @@ -3087,7 +3087,7 @@ static int drawDispListwire(ListBase *dlbase) } } - glEnableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_VERTEX_ARRAY); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); return 0; @@ -3106,6 +3106,7 @@ static void drawDispListsolid(ListBase *lb, Object *ob, int glsl) glGetFloatv(GL_CURRENT_COLOR, curcol); glEnable(GL_LIGHTING); + glEnableClientState(GL_VERTEX_ARRAY); if(ob->transflag & OB_NEG_SCALE) glFrontFace(GL_CW); else glFrontFace(GL_CCW); @@ -3164,10 +3165,12 @@ static void drawDispListsolid(ListBase *lb, Object *ob, int glsl) if(dl->rt & CU_SMOOTH) glShadeModel(GL_SMOOTH); else glShadeModel(GL_FLAT); - + + glEnableClientState(GL_NORMAL_ARRAY); glVertexPointer(3, GL_FLOAT, 0, dl->verts); glNormalPointer(GL_FLOAT, 0, dl->nors); glDrawElements(GL_QUADS, 4*dl->totindex, GL_UNSIGNED_INT, dl->index); + glDisableClientState(GL_NORMAL_ARRAY); } break; @@ -3177,32 +3180,35 @@ static void drawDispListsolid(ListBase *lb, Object *ob, int glsl) glVertexPointer(3, GL_FLOAT, 0, dl->verts); /* voor polys only one normal needed */ - if(index3_nors_incr==0) { - glDisableClientState(GL_NORMAL_ARRAY); - glNormal3fv(ndata); + if(index3_nors_incr) { + glEnableClientState(GL_NORMAL_ARRAY); + glNormalPointer(GL_FLOAT, 0, dl->nors); } else - glNormalPointer(GL_FLOAT, 0, dl->nors); + glNormal3fv(ndata); glDrawElements(GL_TRIANGLES, 3*dl->parts, GL_UNSIGNED_INT, dl->index); - if(index3_nors_incr==0) - glEnableClientState(GL_NORMAL_ARRAY); + if(index3_nors_incr) + glDisableClientState(GL_NORMAL_ARRAY); break; case DL_INDEX4: GPU_enable_material(dl->col+1, (glsl)? &gattribs: NULL); + glEnableClientState(GL_NORMAL_ARRAY); glVertexPointer(3, GL_FLOAT, 0, dl->verts); glNormalPointer(GL_FLOAT, 0, dl->nors); glDrawElements(GL_QUADS, 4*dl->parts, GL_UNSIGNED_INT, dl->index); + glDisableClientState(GL_NORMAL_ARRAY); break; } dl= dl->next; } + glDisableClientState(GL_VERTEX_ARRAY); glShadeModel(GL_FLAT); glDisable(GL_LIGHTING); glFrontFace(GL_CCW); @@ -3216,7 +3222,7 @@ static void drawDispListshaded(ListBase *lb, Object *ob) if(lb==NULL) return; glShadeModel(GL_SMOOTH); - glDisableClientState(GL_NORMAL_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); dl= lb->first; @@ -3255,7 +3261,7 @@ static void drawDispListshaded(ListBase *lb, Object *ob) } glShadeModel(GL_FLAT); - glEnableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_COLOR_ARRAY); } @@ -3996,14 +4002,12 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv /* 6. */ glGetIntegerv(GL_POLYGON_MODE, polygonmode); - glDisableClientState(GL_NORMAL_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); if(draw_as==PART_DRAW_PATH){ ParticleCacheKey **cache, *path; float *cd2=0,*cdata2=0; - glEnableClientState(GL_VERTEX_ARRAY); - /* setup gl flags */ if(ob_dt > OB_WIRE) { glEnableClientState(GL_NORMAL_ARRAY); @@ -4131,7 +4135,6 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv glDisableClientState(GL_COLOR_ARRAY); cpack(0xC0C0C0); - glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 0, pdd->vedata); glDrawArrays(GL_LINES, 0, 2*totve); @@ -4144,7 +4147,8 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv glDisable(GL_LIGHTING); glDisableClientState(GL_COLOR_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); if(states) MEM_freeN(states); @@ -4209,7 +4213,6 @@ static void draw_ptcache_edit(Scene *scene, View3D *v3d, RegionView3D *rv3d, Obj } glEnableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glEnable(GL_COLOR_MATERIAL); @@ -4319,7 +4322,8 @@ static void draw_ptcache_edit(Scene *scene, View3D *v3d, RegionView3D *rv3d, Obj glDisable(GL_LIGHTING); glDisable(GL_COLOR_MATERIAL); glDisableClientState(GL_COLOR_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_VERTEX_ARRAY); glEnable(GL_DEPTH_TEST); glLineWidth(1.0f); diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index a59c263055d..3c178b10561 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -388,15 +388,9 @@ GPUBuffer *GPU_buffer_setup( DerivedMesh *dm, GPUDrawObject *object, int size, G DEBUG_VBO("GPU_buffer_setup\n"); - if( globalPool == 0 ) { + if( globalPool == 0 ) globalPool = GPU_buffer_pool_new(); - /* somehow GL_NORMAL_ARRAY is enabled on startup and causes edge drawing code to crash */ - glDisableClientState( GL_VERTEX_ARRAY ); - glDisableClientState( GL_NORMAL_ARRAY ); - glDisableClientState( GL_TEXTURE_COORD_ARRAY ); - glDisableClientState( GL_COLOR_ARRAY ); - } buffer = GPU_buffer_alloc(size,globalPool); if( buffer == 0 ) { dm->drawObject->legacy = 1; diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index c2cf4dfa9fd..db6c7fa5ce0 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -1276,9 +1276,11 @@ void GPU_state_init(void) glDisable(GL_TEXTURE_1D); glDisable(GL_TEXTURE_2D); - /* default on, disable/enable should be local per function */ - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); + /* default disabled, enable should be local per function */ + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); glPixelTransferi(GL_MAP_COLOR, GL_FALSE); glPixelTransferi(GL_RED_SCALE, 1); -- cgit v1.2.3 From 8df3e7b54c52273b8698f2352b53ce1f79fe4b87 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 15:20:47 +0000 Subject: Sculpt Branch: * Fallback code in case VBO allocation fails. --- source/blender/gpu/intern/gpu_buffers.c | 338 ++++++++++++++++++++++---------- 1 file changed, 231 insertions(+), 107 deletions(-) (limited to 'source/blender') diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 4c55f759e47..ec9392c3694 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -386,8 +386,22 @@ typedef struct { } VertexBufferFormat; typedef struct { + /* opengl buffer handles */ GLuint vert_buf, index_buf; GLenum index_type; + + /* mesh pointers in case buffer allocation fails */ + MFace *mface; + MVert *mvert; + int *face_indices; + int totface; + + /* grid pointers */ + DMGridData **grids; + int *grid_indices; + int totgrid; + int gridsize; + unsigned int tot_tri, tot_quad; } GPU_Buffers; @@ -398,21 +412,34 @@ void GPU_update_mesh_buffers(void *buffers_v, MVert *mvert, VertexBufferFormat *vert_data; int i; - /* Build VBO */ - glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); - glBufferDataARB(GL_ARRAY_BUFFER_ARB, - sizeof(VertexBufferFormat) * totvert, - NULL, GL_STATIC_DRAW_ARB); - vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + if(buffers->vert_buf) { + /* Build VBO */ + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, + sizeof(VertexBufferFormat) * totvert, + NULL, GL_STATIC_DRAW_ARB); + vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + + if(vert_data) { + for(i = 0; i < totvert; ++i) { + MVert *v = mvert + vert_indices[i]; + VertexBufferFormat *out = vert_data + i; + + copy_v3_v3(out->co, v->co); + memcpy(out->no, v->no, sizeof(short) * 3); + } - for(i = 0; i < totvert; ++i) { - MVert *v = mvert + vert_indices[i]; - VertexBufferFormat *out = vert_data + i; + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->vert_buf); + buffers->vert_buf = 0; + } - copy_v3_v3(out->co, v->co); - memcpy(out->no, v->no, sizeof(short) * 3); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); } - glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + + buffers->mvert = mvert; } void *GPU_build_mesh_buffers(GHash *map, MVert *mvert, MFace *mface, @@ -431,47 +458,61 @@ void *GPU_build_mesh_buffers(GHash *map, MVert *mvert, MFace *mface, for(i = 0, tottri = 0; i < totface; ++i) tottri += mface[face_indices[i]].v4 ? 2 : 1; - /* Generate index buffer object */ - glGenBuffersARB(1, &buffers->index_buf); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); - glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, - sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW_ARB); - - /* Fill the triangle buffer */ - tri_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); - for(i = 0; i < totface; ++i) { - MFace *f = mface + face_indices[i]; - int v[3] = {f->v1, f->v2, f->v3}; - - for(j = 0; j < (f->v4 ? 2 : 1); ++j) { - for(k = 0; k < 3; ++k) { - void *value, *key = SET_INT_IN_POINTER(v[k]); - int vbo_index; - - value = BLI_ghash_lookup(map, key); - vbo_index = GET_INT_FROM_POINTER(value); - - if(vbo_index < 0) { - vbo_index = -vbo_index + - tot_uniq_verts - 1; + if(buffers->index_buf) { + /* Generate index buffer object */ + glGenBuffersARB(1, &buffers->index_buf); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW_ARB); + + /* Fill the triangle buffer */ + tri_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + if(tri_data) { + for(i = 0; i < totface; ++i) { + MFace *f = mface + face_indices[i]; + int v[3] = {f->v1, f->v2, f->v3}; + + for(j = 0; j < (f->v4 ? 2 : 1); ++j) { + for(k = 0; k < 3; ++k) { + void *value, *key = SET_INT_IN_POINTER(v[k]); + int vbo_index; + + value = BLI_ghash_lookup(map, key); + vbo_index = GET_INT_FROM_POINTER(value); + + if(vbo_index < 0) { + vbo_index = -vbo_index + + tot_uniq_verts - 1; + } + + *tri_data = vbo_index; + ++tri_data; + } + v[0] = f->v4; + v[1] = f->v1; + v[2] = f->v3; } - - *tri_data = vbo_index; - ++tri_data; } - v[0] = f->v4; - v[1] = f->v1; - v[2] = f->v3; + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->index_buf); + buffers->index_buf = 0; } + + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); } - glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); - /* Build VBO */ - glGenBuffersARB(1, &buffers->vert_buf); + if(buffers->vert_buf) + glGenBuffersARB(1, &buffers->vert_buf); GPU_update_mesh_buffers(buffers, mvert, vert_indices, totvert); buffers->tot_tri = tottri; + buffers->mface = mface; + buffers->face_indices = face_indices; + buffers->totface = totface; + return buffers; } @@ -485,18 +526,31 @@ void GPU_update_grid_buffers(void *buffers_v, DMGridData **grids, totvert= gridsize*gridsize*totgrid; /* Build VBO */ - glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); - glBufferDataARB(GL_ARRAY_BUFFER_ARB, - sizeof(DMGridData) * totvert, - NULL, GL_STATIC_DRAW_ARB); - vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); - - for(i = 0; i < totgrid; ++i) { - DMGridData *grid= grids[grid_indices[i]]; - memcpy(vert_data, grid, sizeof(DMGridData)*gridsize*gridsize); - vert_data += gridsize*gridsize; + if(buffers->vert_buf) { + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, + sizeof(DMGridData) * totvert, + NULL, GL_STATIC_DRAW_ARB); + vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + if(vert_data) { + for(i = 0; i < totgrid; ++i) { + DMGridData *grid= grids[grid_indices[i]]; + memcpy(vert_data, grid, sizeof(DMGridData)*gridsize*gridsize); + vert_data += gridsize*gridsize; + } + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->vert_buf); + buffers->vert_buf = 0; + } + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); } - glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + + buffers->grids = grids; + buffers->grid_indices = grid_indices; + buffers->totgrid = totgrid; + buffers->gridsize = gridsize; //printf("node updated %p\n", buffers_v); } @@ -514,57 +568,75 @@ void *GPU_build_grid_buffers(DMGridData **grids, /* Generate index buffer object */ glGenBuffersARB(1, &buffers->index_buf); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); - - if(totquad < USHRT_MAX) { - unsigned short *quad_data; + if(buffers->index_buf) { + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + + if(totquad < USHRT_MAX) { + unsigned short *quad_data; + + buffers->index_type = GL_UNSIGNED_SHORT; + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned short) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); + + /* Fill the quad buffer */ + quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + if(quad_data) { + for(i = 0; i < totgrid; ++i) { + for(j = 0; j < gridsize-1; ++j) { + for(k = 0; k < gridsize-1; ++k) { + *(quad_data++)= offset + j*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k+1; + *(quad_data++)= offset + j*gridsize + k+1; + } + } - buffers->index_type = GL_UNSIGNED_SHORT; - glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, - sizeof(unsigned short) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); - - /* Fill the quad buffer */ - quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); - for(i = 0; i < totgrid; ++i) { - for(j = 0; j < gridsize-1; ++j) { - for(k = 0; k < gridsize-1; ++k) { - *(quad_data++)= offset + j*gridsize + k; - *(quad_data++)= offset + (j+1)*gridsize + k; - *(quad_data++)= offset + (j+1)*gridsize + k+1; - *(quad_data++)= offset + j*gridsize + k+1; + offset += gridsize*gridsize; } + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->index_buf); + buffers->index_buf = 0; } - - offset += gridsize*gridsize; } - glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); - } - else { - unsigned int *quad_data; + else { + unsigned int *quad_data; + + buffers->index_type = GL_UNSIGNED_INT; + glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, + sizeof(unsigned int) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); + + /* Fill the quad buffer */ + quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + + if(quad_data) { + for(i = 0; i < totgrid; ++i) { + for(j = 0; j < gridsize-1; ++j) { + for(k = 0; k < gridsize-1; ++k) { + *(quad_data++)= offset + j*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k; + *(quad_data++)= offset + (j+1)*gridsize + k+1; + *(quad_data++)= offset + j*gridsize + k+1; + } + } - buffers->index_type = GL_UNSIGNED_INT; - glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, - sizeof(unsigned int) * totquad * 4, NULL, GL_STATIC_DRAW_ARB); - - /* Fill the quad buffer */ - quad_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); - for(i = 0; i < totgrid; ++i) { - for(j = 0; j < gridsize-1; ++j) { - for(k = 0; k < gridsize-1; ++k) { - *(quad_data++)= offset + j*gridsize + k; - *(quad_data++)= offset + (j+1)*gridsize + k; - *(quad_data++)= offset + (j+1)*gridsize + k+1; - *(quad_data++)= offset + j*gridsize + k+1; + offset += gridsize*gridsize; } + glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + } + else { + glDeleteBuffersARB(1, &buffers->index_buf); + buffers->index_buf = 0; } - - offset += gridsize*gridsize; } - glUnmapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB); + + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); } /* Build VBO */ - glGenBuffersARB(1, &buffers->vert_buf); + if(buffers->index_buf) + glGenBuffersARB(1, &buffers->vert_buf); GPU_update_grid_buffers(buffers, grids, grid_indices, totgrid, gridsize); buffers->tot_quad = totquad; @@ -576,20 +648,70 @@ void GPU_draw_buffers(void *buffers_v) { GPU_Buffers *buffers = buffers_v; - glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); + if(buffers->vert_buf && buffers->index_buf) { + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_NORMAL_ARRAY); - if(buffers->tot_quad) { - glVertexPointer(3, GL_FLOAT, sizeof(DMGridData), 0); - glNormalPointer(GL_FLOAT, sizeof(DMGridData), (void*)offsetof(DMGridData, no)); + glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf); + glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); - glDrawElements(GL_QUADS, buffers->tot_quad * 4, buffers->index_type, 0); + if(buffers->tot_quad) { + glVertexPointer(3, GL_FLOAT, sizeof(DMGridData), (void*)offsetof(DMGridData, co)); + glNormalPointer(GL_FLOAT, sizeof(DMGridData), (void*)offsetof(DMGridData, no)); + + glDrawElements(GL_QUADS, buffers->tot_quad * 4, buffers->index_type, 0); + } + else { + glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat), (void*)offsetof(VertexBufferFormat, co)); + glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat), (void*)offsetof(VertexBufferFormat, no)); + + glDrawElements(GL_TRIANGLES, buffers->tot_tri * 3, buffers->index_type, 0); + } + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + } + else if(buffers->totface) { + /* fallback if we are out of memory */ + int i; + + for(i = 0; i < buffers->totface; ++i) { + MFace *f = buffers->mface + buffers->face_indices[i]; + + glBegin((f->v4)? GL_QUADS: GL_TRIANGLES); + glNormal3sv(buffers->mvert[f->v1].no); + glVertex3fv(buffers->mvert[f->v1].co); + glNormal3sv(buffers->mvert[f->v2].no); + glVertex3fv(buffers->mvert[f->v2].co); + glNormal3sv(buffers->mvert[f->v3].no); + glVertex3fv(buffers->mvert[f->v3].co); + if(f->v4) { + glNormal3sv(buffers->mvert[f->v4].no); + glVertex3fv(buffers->mvert[f->v4].co); + } + glEnd(); + } } - else { - glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat), 0); - glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat), (void*)offsetof(VertexBufferFormat, no)); + else if(buffers->totgrid) { + int i, x, y, gridsize = buffers->gridsize; + + for(i = 0; i < buffers->totgrid; ++i) { + DMGridData *grid = buffers->grids[buffers->grid_indices[i]]; + + for(y = 0; y < gridsize-1; y++) { + glBegin(GL_QUAD_STRIP); + for(x = 0; x < gridsize; x++) { + DMGridData *a = &grid[y*gridsize + x]; + DMGridData *b = &grid[(y+1)*gridsize + x]; - glDrawElements(GL_TRIANGLES, buffers->tot_tri * 3, buffers->index_type, 0); + glNormal3fv(a->no); + glVertex3fv(a->co); + glNormal3fv(b->no); + glVertex3fv(b->co); + } + glEnd(); + } + } } } @@ -598,8 +720,10 @@ void GPU_free_buffers(void *buffers_v) if(buffers_v) { GPU_Buffers *buffers = buffers_v; - glDeleteBuffersARB(1, &buffers->vert_buf); - glDeleteBuffersARB(1, &buffers->index_buf); + if(buffers->vert_buf) + glDeleteBuffersARB(1, &buffers->vert_buf); + if(buffers->index_buf) + glDeleteBuffersARB(1, &buffers->index_buf); MEM_freeN(buffers); } -- cgit v1.2.3 From 2cc8ef127e1a626f4517c8a0ee9f555fb8b66758 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Dec 2009 16:00:53 +0000 Subject: added collection sequences_all so strips within meta's can be animated --- source/blender/makesdna/DNA_sequence_types.h | 4 +- source/blender/makesrna/intern/rna_sequence.c | 53 ++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 3b8182b8759..6adaf936ed4 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -183,8 +183,8 @@ typedef struct MetaStack { } MetaStack; typedef struct Editing { - ListBase *seqbasep; - ListBase seqbase; + ListBase *seqbasep; /* pointer to the current list of seq's being edited (can be within a meta strip) */ + ListBase seqbase; /* pointer to the top-most seq's */ ListBase metastack; /* Context vars, used to be static */ diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 68bfea7161d..6f9cbd608e3 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -43,6 +43,51 @@ #ifdef RNA_RUNTIME +/* build a temp referene to the parent */ +static int meta_tmp_ref(Sequence *seq_par, Sequence *seq) +{ + for (; seq; seq= seq->next) { + seq->tmp= seq_par; + if(seq->type == SEQ_META) { + meta_tmp_ref(seq, seq->seqbase.first); + } + } +} + +static void rna_SequenceEditor_sequences_all_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) +{ + Scene *sce= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(sce, FALSE); + + meta_tmp_ref(NULL, ed->seqbase.first); + + rna_iterator_listbase_begin(iter, &ed->seqbase, NULL); +} + +static void rna_SequenceEditor_sequences_all_next(CollectionPropertyIterator *iter) +{ + ListBaseIterator *internal= iter->internal; + Sequence *seq= (Sequence*)internal->link; + + if(seq->seqbase.first) + internal->link= (Link*)seq->seqbase.first; + else if(seq->next) + internal->link= (Link*)seq->next; + else { + internal->link= NULL; + + do { + seq= seq->tmp; // XXX - seq's dont reference their parents! + if(seq && seq->next) { + internal->link= (Link*)seq->next; + break; + } + } while(seq); + } + + iter->valid= (internal->link != NULL); +} + static void rna_Sequence_start_frame_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; @@ -222,7 +267,7 @@ static char *rna_Sequence_path(PointerRNA *ptr) * TODO: would be nice to make SequenceEditor data a datablock of its own (for shorter paths) */ if (seq->name+2) - return BLI_sprintfN("sequence_editor.sequences[\"%s\"]", seq->name+2); + return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"]", seq->name+2); else return BLI_strdup(""); } @@ -613,6 +658,12 @@ static void rna_def_editor(BlenderRNA *brna) RNA_def_property_struct_type(prop, "Sequence"); RNA_def_property_ui_text(prop, "Sequences", ""); + prop= RNA_def_property(srna, "sequences_all", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); + RNA_def_property_struct_type(prop, "Sequence"); + RNA_def_property_ui_text(prop, "Sequences", ""); + RNA_def_property_collection_funcs(prop, "rna_SequenceEditor_sequences_all_begin", "rna_SequenceEditor_sequences_all_next", 0, 0, 0, 0, 0); + prop= RNA_def_property(srna, "meta_stack", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "metastack", NULL); RNA_def_property_struct_type(prop, "Sequence"); -- cgit v1.2.3 From 00b8e65f0aaefc34c91bdfee7f31233bb313f312 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Dec 2009 16:46:41 +0000 Subject: very very bad hack to have sequencer strips fcurve data transform with them. ifdef'd so its not kept in by accident. Committing because without this animating with the sequencer isnt really usable and am not interensted in having many patches applied on artists systems. --- source/blender/blenkernel/BKE_sequence.h | 1 + source/blender/blenkernel/intern/sequence.c | 25 ++++++++++++++++++++++ .../editors/transform/transform_conversions.c | 21 ++++++++++++++++++ 3 files changed, 47 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequence.h b/source/blender/blenkernel/BKE_sequence.h index acc0d8576a1..b42f023d12a 100644 --- a/source/blender/blenkernel/BKE_sequence.h +++ b/source/blender/blenkernel/BKE_sequence.h @@ -181,6 +181,7 @@ int seq_tx_test(struct Sequence * seq); int check_single_seq(struct Sequence *seq); void fix_single_seq(struct Sequence *seq); int seq_test_overlap(struct ListBase * seqbasep, struct Sequence *test); +void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs); int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test); int shuffle_seq_time(ListBase * seqbasep); void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage); diff --git a/source/blender/blenkernel/intern/sequence.c b/source/blender/blenkernel/intern/sequence.c index f11aca32da7..bb1096c9e7e 100644 --- a/source/blender/blenkernel/intern/sequence.c +++ b/source/blender/blenkernel/intern/sequence.c @@ -3529,6 +3529,31 @@ void seq_update_muting(Editing *ed) } } + +/* XXX - hackish function needed for transforming strips! TODO - have some better solution */ +void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs) +{ + if(scene->adt==NULL || ofs==0) + return; + + char str[32]; + sprintf(str, "[\"%s\"]", seq->name+2); + + FCurve *fcu; + for (fcu= scene->adt->action->curves.first; fcu; fcu= fcu->next) { + if(strstr(fcu->rna_path, "sequence_editor.sequences_all[") && strstr(fcu->rna_path, str)) { + int i; + for (i = 0; i < fcu->totvert; i++) { + BezTriple *bezt= &fcu->bezt[i]; + bezt->vec[0][0] += ofs; + bezt->vec[1][0] += ofs; + bezt->vec[2][0] += ofs; + } + } + } +} + + Sequence *active_seq_get(Scene *scene) { Editing *ed= seq_give_editing(scene, FALSE); diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 37e56874044..0840d709ef8 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2346,6 +2346,7 @@ void flushTransNodes(TransInfo *t) } /* *** SEQUENCE EDITOR *** */ +#define XXX_DURIAN_ANIM_TX_HACK void flushTransSeq(TransInfo *t) { ListBase *seqbasep= seq_give_editing(t->scene, FALSE)->seqbasep; /* Editing null check alredy done */ @@ -2374,6 +2375,13 @@ void flushTransSeq(TransInfo *t) if (seq->type != SEQ_META && (seq->depth != 0 || seq_tx_test(seq))) /* for meta's, their children move */ seq->start= new_frame - tdsq->start_offset; +#ifdef XXX_DURIAN_ANIM_TX_HACK + if (seq->type != SEQ_META && seq != seq_prev) { + int ofs = (new_frame - tdsq->start_offset) - seq->start; + seq_offset_animdata(t->scene, seq, ofs); + } +#endif + if (seq->depth==0) { seq->machine= (int)floor(td2d->loc[1] + 0.5f); CLAMP(seq->machine, 1, MAXSEQ); @@ -3828,6 +3836,19 @@ static short constraints_list_needinv(TransInfo *t, ListBase *list) */ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count, int *flag) { + +#ifdef XXX_DURIAN_ANIM_TX_HACK + /* hack */ + if((seq->flag & SELECT)==0 && seq->type & SEQ_EFFECT) { + Sequence *seq_t[3] = {seq->seq1, seq->seq2, seq->seq3}; + int i; + for(i=0; i<3; i++) { + if (seq_t[i] && ((seq_t[i])->flag & SELECT) && !(seq_t[i]->flag & SEQ_LOCK) && !(seq_t[i]->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL))) + seq->flag |= SELECT; + } + } +#endif + /* for extend we need to do some tricks */ if (t->mode == TFM_TIME_EXTEND) { -- cgit v1.2.3 From 9e7bb2de8f5601dda3984a578a27b5d3c8e9dc9d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 17:18:39 +0000 Subject: Fix bug #20299: bilateral blur node crashes when the number of iterations is rapidly changed. --- source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c b/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c index b954e876ea1..b4c1bbd7acc 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c @@ -229,9 +229,6 @@ static void node_composit_exec_bilateralblur(void *data, bNode *node, bNodeStack SWAP(CompBuf, *source, *new); } - if(node->exec & NODE_BREAK) - free_compbuf(source); - if(img != in[0]->data) free_compbuf(img); -- cgit v1.2.3 From b4d8d51a26caf9a006bd74c4c7207dc56c5f0855 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 17:32:54 +0000 Subject: Fix for bug #20307: snapping in uv editor is related to objects origin. Also updated image window header to use snap element property. --- source/blender/editors/transform/transform_snap.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index b8ea49110fc..34c01339441 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -838,8 +838,6 @@ void CalcSnapGeometry(TransInfo *t, float *vec) t->tsnap.snapPoint[0] *= aspx; t->tsnap.snapPoint[1] *= aspy; - mul_m4_v3(t->obedit->obmat, t->tsnap.snapPoint); - t->tsnap.status |= POINT_INIT; } else -- cgit v1.2.3 From 1601f297c984fd437cb70cebf738bbda199b54f8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 18:03:44 +0000 Subject: Fix #20245: datablock names allowed entering 22 characters but can only accept 21. --- source/blender/editors/interface/interface_handlers.c | 12 ++++++------ source/blender/makesrna/intern/rna_access.c | 2 ++ 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index c7c0849927c..fe6635d60ab 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1079,9 +1079,9 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho uiStyleFontSet(&style->widget); - origstr= MEM_callocN(sizeof(char)*(data->maxlen+1), "ui_textedit origstr"); + origstr= MEM_callocN(sizeof(char)*data->maxlen, "ui_textedit origstr"); - BLI_strncpy(origstr, but->drawstr, data->maxlen+1); + BLI_strncpy(origstr, but->drawstr, data->maxlen); but->pos= strlen(origstr)-but->ofs; /* XXX solve generic */ @@ -1130,7 +1130,7 @@ static int ui_textedit_type_ascii(uiBut *but, uiHandleButtonData *data, char asc changed= ui_textedit_delete_selection(but, data); len= strlen(str); - if(len < data->maxlen) { + if(len+1 < data->maxlen) { for(x= data->maxlen; x>but->pos; x--) str[x]= str[x-1]; str[but->pos]= ascii; @@ -1365,7 +1365,7 @@ static int ui_textedit_copypaste(uiBut *but, uiHandleButtonData *data, int paste for (y=0; ymaxlen) { + if(len+1 < data->maxlen) { for(x= data->maxlen; x>but->pos; x--) str[x]= str[x-1]; str[but->pos]= buf[y]; @@ -1411,8 +1411,8 @@ static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data) /* retrieve string */ data->maxlen= ui_get_but_string_max_length(but); - data->str= MEM_callocN(sizeof(char)*(data->maxlen+1), "textedit str"); - ui_get_but_string(but, data->str, data->maxlen+1); + data->str= MEM_callocN(sizeof(char)*data->maxlen, "textedit str"); + ui_get_but_string(but, data->str, data->maxlen); data->origstr= BLI_strdup(data->str); data->selextend= 0; diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 174cb13b0cd..7bfb6d7249f 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -885,6 +885,7 @@ void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *soft *precision= (float)fprop->precision; } +/* this is the max length including \0 terminator */ int RNA_property_string_maxlength(PropertyRNA *prop) { StringPropertyRNA *sprop= (StringPropertyRNA*)rna_ensure_property(prop); @@ -1588,6 +1589,7 @@ char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fi return buf; } +/* this is the length without \0 terminator */ int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop) { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; -- cgit v1.2.3 From 1d53b78036601c2112e3cdcf26c8affb9f1bc95c Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 9 Dec 2009 18:08:14 +0000 Subject: Fix compile problem (warnings are important) --- source/blender/blenkernel/intern/sequence.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/sequence.c b/source/blender/blenkernel/intern/sequence.c index bb1096c9e7e..71382a53d5d 100644 --- a/source/blender/blenkernel/intern/sequence.c +++ b/source/blender/blenkernel/intern/sequence.c @@ -3533,13 +3533,14 @@ void seq_update_muting(Editing *ed) /* XXX - hackish function needed for transforming strips! TODO - have some better solution */ void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs) { + char str[32]; + FCurve *fcu; + if(scene->adt==NULL || ofs==0) return; - char str[32]; sprintf(str, "[\"%s\"]", seq->name+2); - FCurve *fcu; for (fcu= scene->adt->action->curves.first; fcu; fcu= fcu->next) { if(strstr(fcu->rna_path, "sequence_editor.sequences_all[") && strstr(fcu->rna_path, str)) { int i; -- cgit v1.2.3 From 1d9eb1e0a07dd45217297bedfd033a2bd9bf4750 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 9 Dec 2009 18:47:52 +0000 Subject: Invalid return type --- source/blender/makesrna/intern/rna_sequence.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 6f9cbd608e3..e401a7c756d 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -44,7 +44,7 @@ #ifdef RNA_RUNTIME /* build a temp referene to the parent */ -static int meta_tmp_ref(Sequence *seq_par, Sequence *seq) +static void meta_tmp_ref(Sequence *seq_par, Sequence *seq) { for (; seq; seq= seq->next) { seq->tmp= seq_par; -- cgit v1.2.3 From 664f2d834a9cea8461df27054b90db5d24b7c232 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 9 Dec 2009 19:41:27 +0000 Subject: Fix #20305: overlay blending mode for specular intensity does not work. --- source/blender/render/intern/source/texture.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/texture.c b/source/blender/render/intern/source/texture.c index 16372d7a15d..9d03889a747 100644 --- a/source/blender/render/intern/source/texture.c +++ b/source/blender/render/intern/source/texture.c @@ -1495,6 +1495,14 @@ float texture_value_blend(float tex, float out, float fact, float facg, int blen in= 1.0-(facm+fact*(1.0-tex))*(1.0-out); break; + case MTEX_OVERLAY: + facm= 1.0-facg; + if(out < 0.5f) + in = out * (facm + 2.0f*fact*tex); + else + in = 1.0f - (facm + 2.0f*fact*(1.0 - tex)) * (1.0 - out); + break; + case MTEX_SUB: fact= -fact; case MTEX_ADD: -- cgit v1.2.3 From c16acaff8b546434902bdced6a01a28edc7b0d02 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Wed, 9 Dec 2009 20:03:08 +0000 Subject: Sequencer fix: Transform Strip wouldn't work with default_fader * added default_fader to transform strip, since it used the old fac too. * removed ANIMATEABLE attribute from the settings in the transform strip, since they are animated via the effect_fader and not directly for now. (too confusing) * UI: only show default_fader for the effect strips that support it Sequencer Durian feature: uniform scale for Sequence transform strip. * for now re-using variable for x-axis scaling. Note: This brings back functionality as close to 2.49 as possible. The Start and End values in the current design are not meant to be animated directly, but via the effect_fader. --- source/blender/blenkernel/intern/seqeffects.c | 9 +++++++-- source/blender/makesdna/DNA_sequence_types.h | 1 + source/blender/makesrna/intern/rna_sequence.c | 18 ++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index a1f81bf6166..50fa34b52e3 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -2007,8 +2007,12 @@ static void do_transform(Sequence * seq,float facf0, int x, int y, yo = y; //factor scale - factxScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; - factyScale = scale->ScaleyIni + (scale->ScaleyFin - scale->ScaleyIni) * facf0; + if (scale->uniform_scale) { + factxScale = factyScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; + } else { + factxScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; + factyScale = scale->ScaleyIni + (scale->ScaleyFin - scale->ScaleyIni) * facf0; + } //Factor translate if(!scale->percent){ @@ -3080,6 +3084,7 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type) rval.free = free_transform_effect; rval.copy = copy_transform_effect; rval.execute = do_transform_effect; + rval.get_default_fac = get_default_fac_fade; break; case SEQ_SPEED: rval.init = init_speed_effect; diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 6adaf936ed4..006e1e594d8 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -221,6 +221,7 @@ typedef struct TransformVars { float rotFin; int percent; int interpolation; + int uniform_scale; /* preserve aspect/ratio when scaling */ } TransformVars; typedef struct SolidColorVars { diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index e401a7c756d..56fea340dae 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -1063,72 +1063,90 @@ static void rna_def_transform(BlenderRNA *brna) prop= RNA_def_property(srna, "scale_start_x", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScalexIni"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Scale Start X", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "scale_start_y", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScaleyIni"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Scale Start Y", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "scale_end_x", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScalexFin"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Scale End X", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "scale_end_y", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScaleyFin"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Scale End Y", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "uniform_scale", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "uniform_scale", 0); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* not meant to be animated */ + RNA_def_property_ui_text(prop, "Uniform Scale", "Scale uniformly, preserving aspect ratio."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_start_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "xIni"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Translate Start X", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_start_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "yIni"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Translate Start Y", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_end_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "xFin"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Translate End X", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_end_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "yFin"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_ui_text(prop, "Translate End Y", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "rotation_start", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "rotIni"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_range(prop, 0.0f, 360.0f); RNA_def_property_ui_text(prop, "Rotation Start", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "rotation_end", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "rotFin"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_range(prop, 0.0f, 360.0f); RNA_def_property_ui_text(prop, "Rotation End", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translation_unit", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "percent"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* not meant to be animated */ RNA_def_property_enum_items(prop, translation_unit_items); RNA_def_property_ui_text(prop, "Translation Unit", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "interpolation", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, interpolation_items); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* not meant to be animated */ RNA_def_property_ui_text(prop, "Interpolation", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); } -- cgit v1.2.3 From 80bd73639f57203b0383d9b313b4bd640f24f2ca Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 9 Dec 2009 21:42:21 +0000 Subject: =?UTF-8?q?Patch=20[#20290]=20by=20Bj=C3=B8rnar=20Hansen=20for=20b?= =?UTF-8?q?ug=20[#20270]=202.5a0,=20Select=20Random=20says=20percent=20but?= =?UTF-8?q?=20is=20really=200-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/blender/editors/mesh/editmesh_mods.c | 6 +++--- source/blender/editors/object/object_select.c | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index e7986d227cf..30dc6114097 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -3629,7 +3629,7 @@ static int mesh_select_random_exec(bContext *C, wmOperator *op) if(!RNA_boolean_get(op->ptr, "extend")) EM_deselect_all(em); - selectrandom_mesh(em, RNA_float_get(op->ptr, "percentage")/100.0f); + selectrandom_mesh(em, RNA_float_get(op->ptr, "percent")/100.0f); WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); @@ -3652,8 +3652,8 @@ void MESH_OT_select_random(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* props */ - RNA_def_float_percentage(ot->srna, "percentage", 50.f, 0.0f, 100.0f, "Percentage", "Percentage of elements to select randomly.", 0.f, 100.0f); - RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); + RNA_def_float_percentage(ot->srna, "percent", 50.f, 0.0f, 100.0f, "Percent", "Percentage of elements to select randomly.", 0.f, 100.0f); + RNA_def_boolean(ot->srna, "extend", FALSE, "Extend Selection", "Extend selection instead of deselecting everything first."); } void EM_select_by_material(EditMesh *em, int index) diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index 5366446c8ae..a0223997cfb 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -996,11 +996,11 @@ static int object_select_random_exec(bContext *C, wmOperator *op) } CTX_DATA_END; } - percent = RNA_float_get(op->ptr, "percent"); + percent = RNA_float_get(op->ptr, "percent")/100.0f; CTX_DATA_BEGIN(C, Base*, base, visible_bases) { if (BLI_frand() < percent) { - ED_base_object_select(base, BA_SELECT); + ED_base_object_select(base, BA_SELECT); } } CTX_DATA_END; @@ -1013,7 +1013,7 @@ static int object_select_random_exec(bContext *C, wmOperator *op) void OBJECT_OT_select_random(wmOperatorType *ot) { /* identifiers */ - ot->name= "Random select"; + ot->name= "Select Random"; ot->description = "Set select on random visible objects."; ot->idname= "OBJECT_OT_select_random"; @@ -1026,8 +1026,8 @@ void OBJECT_OT_select_random(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ - RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first."); - RNA_def_float_percentage(ot->srna, "percent", 0.5f, 0.0f, 1.0f, "Percent", "percentage of objects to randomly select", 0.0001f, 1.0f); + RNA_def_float_percentage(ot->srna, "percent", 50.f, 0.0f, 100.0f, "Percent", "Percentage of objects to select randomly", 0.f, 100.0f); + RNA_def_boolean(ot->srna, "extend", FALSE, "Extend Selection", "Extend selection instead of deselecting everything first."); } -- cgit v1.2.3 From 30fd13387dc5b9733a0402f1a58dbbddd162d918 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Dec 2009 22:37:02 +0000 Subject: give IDPropertyGroups's an identifier so they can display text in the listview, hardcoded to "name" --- source/blender/makesrna/intern/rna_ID.c | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 3bcdf373c43..ed73ddef3f5 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -225,6 +225,40 @@ ID *rna_ID_copy(ID *id) return NULL; } +static int rna_IDPropertyGroup_name_length(PointerRNA *ptr) +{ + IDProperty *group=(IDProperty*)ptr->id.data; + IDProperty *idprop; + idprop= IDP_GetPropertyFromGroup(group, "name"); + + if(idprop && idprop->type == IDP_STRING) + return strlen(idprop->data.pointer); + else + return 0; +} + +static void rna_IDPropertyGroup_name_get(PointerRNA *ptr, char *str) +{ + IDProperty *group=(IDProperty*)ptr->id.data; + IDProperty *idprop; + idprop= IDP_GetPropertyFromGroup(group, "name"); + + if(idprop && idprop->type == IDP_STRING) + strcpy(str, idprop->data.pointer); + else + strcpy(str, ""); +} + +void rna_IDPropertyGroup_name_set(PointerRNA *ptr, const char *value) +{ + IDProperty *group=(IDProperty*)ptr->id.data; + IDProperty *idprop; + IDPropertyTemplate val = {0}; + val.str= (char *)value; + idprop = IDP_New(IDP_STRING, val, "name"); + IDP_ReplaceInGroup(group, idprop); +} + #else static void rna_def_ID_properties(BlenderRNA *brna) @@ -275,6 +309,15 @@ static void rna_def_ID_properties(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EXPORT|PROP_IDPROPERTY); RNA_def_property_struct_type(prop, "IDPropertyGroup"); + // never tested, maybe its useful to have this? +#if 0 + prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); + RNA_def_property_flag(prop, PROP_EXPORT|PROP_IDPROPERTY); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Name", "Unique name used in the code and scripting."); + RNA_def_struct_name_property(srna, prop); +#endif + /* IDP_ID -- not implemented yet in id properties */ /* ID property groups > level 0, since level 0 group is merged @@ -285,6 +328,16 @@ static void rna_def_ID_properties(BlenderRNA *brna) RNA_def_struct_idproperties_func(srna, "rna_IDPropertyGroup_idproperties"); RNA_def_struct_register_funcs(srna, "rna_IDPropertyGroup_register", "rna_IDPropertyGroup_unregister"); RNA_def_struct_refine_func(srna, "rna_IDPropertyGroup_refine"); + + /* important so python types can have their name used in list views + * however this isnt prefect because it overrides how python would set the name + * when we only really want this so RNA_def_struct_name_property() is set to something useful */ + prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); + RNA_def_property_flag(prop, PROP_EXPORT|PROP_IDPROPERTY); + //RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Name", "Unique name used in the code and scripting."); + RNA_def_property_string_funcs(prop, "rna_IDPropertyGroup_name_get", "rna_IDPropertyGroup_name_length", "rna_IDPropertyGroup_name_set"); + RNA_def_struct_name_property(srna, prop); } static void rna_def_ID(BlenderRNA *brna) -- cgit v1.2.3 From 22643b12e86dbb9b8d6d2e193befc44835d14fc5 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 9 Dec 2009 22:54:25 +0000 Subject: show_handles property didn't flip bool properly. Patch by DustyDingo on irc. --- source/blender/makesrna/intern/rna_space.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index ef72b6cbf1f..e4d0769feeb 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1351,7 +1351,7 @@ static void rna_def_space_graph(BlenderRNA *brna) RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); prop= RNA_def_property(srna, "show_handles", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SIPO_NOHANDLES); + RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NOHANDLES); RNA_def_property_ui_text(prop, "Show Handles", "Show handles of Bezier control points."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL); -- cgit v1.2.3 From 3e43a3f727ba402e7b58e7e83949af5aac1f8382 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Wed, 9 Dec 2009 22:58:08 +0000 Subject: Fix notifiers for object active material selection --- source/blender/makesrna/intern/rna_object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 38b449dffb0..d0447cf0376 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1528,13 +1528,13 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_pointer_funcs(prop, "rna_Object_active_material_get", "rna_Object_active_material_set", NULL); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Active Material", "Active material being displayed."); - RNA_def_property_update(prop, NC_OBJECT|ND_SHADING, "rna_Object_update"); + RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update"); prop= RNA_def_property(srna, "active_material_index", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "actcol"); RNA_def_property_int_funcs(prop, "rna_Object_active_material_index_get", "rna_Object_active_material_index_set", "rna_Object_active_material_index_range"); RNA_def_property_ui_text(prop, "Active Material Index", "Index of active material slot."); - RNA_def_property_update(prop, NC_OBJECT|ND_SHADING, NULL); + RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); /* transform */ prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_TRANSLATION); -- cgit v1.2.3 From 456c11c822191ac289120f56d06846d3a0e93549 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 10 Dec 2009 00:28:18 +0000 Subject: textedit string needs to be one byte longer than maxlen, for terminator. --- .../blender/editors/interface/interface_handlers.c | 161 ++++++--------------- 1 file changed, 46 insertions(+), 115 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index fe6635d60ab..4a7f00d7520 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -71,78 +71,6 @@ #define BUTTON_AUTO_OPEN_THRESH 0.3 #define BUTTON_MOUSE_TOWARDS_THRESH 1.0 -typedef enum uiButtonActivateType { - BUTTON_ACTIVATE_OVER, - BUTTON_ACTIVATE, - BUTTON_ACTIVATE_APPLY, - BUTTON_ACTIVATE_TEXT_EDITING, - BUTTON_ACTIVATE_OPEN -} uiButtonActivateType; - -typedef enum uiHandleButtonState { - BUTTON_STATE_INIT, - BUTTON_STATE_HIGHLIGHT, - BUTTON_STATE_WAIT_FLASH, - BUTTON_STATE_WAIT_RELEASE, - BUTTON_STATE_WAIT_KEY_EVENT, - BUTTON_STATE_NUM_EDITING, - BUTTON_STATE_TEXT_EDITING, - BUTTON_STATE_TEXT_SELECTING, - BUTTON_STATE_MENU_OPEN, - BUTTON_STATE_EXIT -} uiHandleButtonState; - -typedef struct uiHandleButtonData { - wmWindowManager *wm; - wmWindow *window; - ARegion *region; - - int interactive; - - /* overall state */ - uiHandleButtonState state; - int cancel, escapecancel, retval; - int applied, appliedinteractive; - wmTimer *flashtimer; - - /* edited value */ - char *str, *origstr; - double value, origvalue, startvalue; - float vec[3], origvec[3]; - int togdual, togonly; - ColorBand *coba; - CurveMapping *cumap; - - /* tooltip */ - ARegion *tooltip; - wmTimer *tooltiptimer; - - /* auto open */ - int used_mouse; - wmTimer *autoopentimer; - - /* text selection/editing */ - int maxlen, selextend, selstartx; - - /* number editing / dragging */ - int draglastx, draglasty; - int dragstartx, dragstarty; - int dragchange, draglock, dragsel; - float dragf, dragfstart; - CBData *dragcbd; - - /* menu open */ - uiPopupBlockHandle *menu; - int menuretval; - - /* search box */ - ARegion *searchbox; - - /* post activate */ - uiButtonActivateType posttype; - uiBut *postbut; -} uiHandleButtonData; - typedef struct uiAfterFunc { struct uiAfterFunc *next, *prev; @@ -1411,7 +1339,7 @@ static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data) /* retrieve string */ data->maxlen= ui_get_but_string_max_length(but); - data->str= MEM_callocN(sizeof(char)*data->maxlen, "textedit str"); + data->str= MEM_callocN(sizeof(char)*data->maxlen + 1, "textedit str"); /* +1 for terminator */ ui_get_but_string(but, data->str, data->maxlen); data->origstr= BLI_strdup(data->str); @@ -1689,7 +1617,7 @@ static void ui_do_but_textedit_select(bContext *C, uiBlock *block, uiBut *but, u static void ui_numedit_begin(uiBut *but, uiHandleButtonData *data) { - float softrange, softmin, softmax; + float softmin, softmax; if(but->type == BUT_CURVE) { data->cumap= (CurveMapping*)but->poin; @@ -1712,9 +1640,9 @@ static void ui_numedit_begin(uiBut *but, uiHandleButtonData *data) softmin= but->softmin; softmax= but->softmax; - softrange= softmax - softmin; + data->softrange = (float)pow(10, floorf(log10(softmax - softmin) + 0.5)); - data->dragfstart= (softrange == 0.0)? 0.0: (data->value - softmin)/softrange; + data->dragfstart= (data->softrange == 0.0)? 0.0: (data->value - softmin)/data->softrange; data->dragf= data->dragfstart; } @@ -2036,12 +1964,16 @@ static float ui_numedit_apply_snap(int temp, float softmin, float softmax, int s return temp; } -static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, int snap, int mx) +static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, int snap, int mx, int my) { - float deler, tempf, softmin, softmax, softrange; + float deler, tempf, softmin, softmax; + //float ladder = powf(10.0, floorf((my - data->dragstarty + 25) / 50.0f)); + float ladder = 1.0f; int lvalue, temp, changed= 0; - if(mx == data->draglastx) + printf("(%i, %i)\n", mx, my); + + if(mx == data->draglastx && my == data->draglasty) return changed; /* drag-lock - prevent unwanted scroll adjustments */ @@ -2056,16 +1988,14 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i softmin= but->softmin; softmax= but->softmax; - softrange= softmax - softmin; - if(ui_is_a_warp_but(but)) { /* Mouse location isn't screen clamped to the screen so use a linear mapping * 2px == 1-int, or 1px == 1-ClickStep */ if(ui_is_but_float(but)) { fac *= 0.01*but->a1; - tempf = data->startvalue + ((mx - data->dragstartx) * fac); - tempf= ui_numedit_apply_snapf(tempf, softmin, softmax, softrange, snap); + tempf = data->startvalue + ((mx - data->dragstartx) * fac) * ladder; + tempf= ui_numedit_apply_snapf(tempf, softmin, softmax, data->softrange, snap); #if 1 /* fake moving the click start, nicer for dragging back after passing the limit */ if(tempf < softmin) { @@ -2088,8 +2018,12 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i else { fac = 0.5; /* simple 2px == 1 */ - temp= data->startvalue + ((mx - data->dragstartx) * fac); + temp= data->startvalue + floorf((mx - data->dragstartx) * fac) * ladder; temp= ui_numedit_apply_snap(temp, softmin, softmax, snap); + +// printf("x %i y %i\n", mx, my); +// printf("temp %i, dragstartx %i ladder %f\n", temp, data->dragstartx, ladder); + #if 1 /* fake moving the click start, nicer for dragging back after passing the limit */ if(temp < softmin) { @@ -2109,33 +2043,31 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i changed= 1; } } - - data->draglastx= mx; } else { /* Use a non-linear mapping of the mouse drag especially for large floats (normal behavior) */ - deler= 500; + deler= 1000; if(!ui_is_but_float(but)) { - if((softrange)<100) deler= 200.0; - if((softrange)<25) deler= 50.0; + if((data->softrange)<100) deler= 200.0; + if((data->softrange)<25) deler= 50.0; } deler /= fac; - if(ui_is_but_float(but) && softrange > 11) { + if(ui_is_but_float(but) && data->softrange > 11) { /* non linear change in mouse input- good for high precicsion */ - data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.002); - } else if (!ui_is_but_float(but) && softrange > 129) { /* only scale large int buttons */ + data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.002)*ladder; + } else if (!ui_is_but_float(but) && data->softrange > 129) { /* only scale large int buttons */ /* non linear change in mouse input- good for high precicsionm ints need less fine tuning */ - data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.004); + data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.004)*ladder; } else { /*no scaling */ - data->dragf+= ((float)(mx-data->draglastx))/deler ; + data->dragf+= ((float)(mx-data->draglastx))/deler*ladder ; } - if(data->dragf>1.0) data->dragf= 1.0; - if(data->dragf<0.0) data->dragf= 0.0; - data->draglastx= mx; - tempf= (softmin + data->dragf*softrange); + tempf= (softmin + data->dragf*data->softrange); + + if (tempf > softmax) data->dragf = (softmax - softmin) / data->softrange; + if (tempf < softmin) data->dragf = softmin / data->softrange; if(!ui_is_but_float(but)) { @@ -2154,7 +2086,7 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i } else { temp= 0; - tempf= ui_numedit_apply_snapf(tempf, softmin, softmax, softrange, snap); + tempf= ui_numedit_apply_snapf(tempf, softmin, softmax, data->softrange, snap); CLAMP(tempf, softmin, softmax); @@ -2166,6 +2098,8 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i } } + data->draglastx= mx; + data->draglasty= my; return changed; } @@ -2199,6 +2133,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton } else if(event->type == LEFTMOUSE) { data->dragstartx= data->draglastx= ui_is_a_warp_but(but) ? screen_mx:mx; + data->dragstarty= data->draglasty= ui_is_a_warp_but(but) ? screen_my:my; button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); retval= WM_UI_HANDLER_BREAK; } @@ -2229,7 +2164,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton snap= (event->ctrl)? (event->shift)? 2: 1: 0; - if(ui_numedit_but_NUM(but, data, fac, snap, (ui_is_a_warp_but(but) ? screen_mx:mx))) + if(ui_numedit_but_NUM(but, data, fac, snap, (ui_is_a_warp_but(but) ? screen_mx:mx), (ui_is_a_warp_but(but) ? screen_my:my))) ui_numedit_apply(C, block, but, data); } retval= WM_UI_HANDLER_BREAK; @@ -2309,12 +2244,11 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton static int ui_numedit_but_SLI(uiBut *but, uiHandleButtonData *data, int shift, int ctrl, int mx) { - float deler, f, tempf, softmin, softmax, softrange; + float deler, f, tempf, softmin, softmax; int temp, lvalue, changed= 0; softmin= but->softmin; softmax= but->softmax; - softrange= softmax - softmin; if(but->type==NUMSLI) deler= ((but->x2-but->x1) - 5.0*but->aspect); else if(but->type==HSVSLI) deler= ((but->x2-but->x1)/2 - 5.0*but->aspect); @@ -2330,8 +2264,8 @@ static int ui_numedit_but_SLI(uiBut *but, uiHandleButtonData *data, int shift, i if(shift) f= (f-data->dragfstart)/10.0 + data->dragfstart; - CLAMP(f, 0.0, 1.0); - tempf= softmin + f*softrange; + //CLAMP(f, 0.0, 1.0); + tempf= softmin + f * data->softrange; temp= floor(tempf+.5); if(ctrl) { @@ -2415,7 +2349,9 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton } else if(event->type == LEFTMOUSE) { data->dragstartx= mx; + data->dragstarty= my; data->draglastx= mx; + data->draglasty= my; button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); retval= WM_UI_HANDLER_BREAK; } @@ -2453,14 +2389,13 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton if(click) { if (click==2) { /* nudge slider to the left or right */ - float f, tempf, softmin, softmax, softrange; + float f, tempf, softmin, softmax; int temp; button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); softmin= but->softmin; softmax= but->softmax; - softrange= softmax - softmin; tempf= data->value; temp= (int)data->value; @@ -2469,7 +2404,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton if(but->type==SLI) f= (float)(mx-but->x1)/(but->x2-but->x1); else f= (float)(mx- but->x1)/(but->x2-but->x1); - f= softmin + f*softrange; + f= softmin + f * data->softrange; if(!ui_is_but_float(but)) { if(fstate == BUTTON_STATE_HIGHLIGHT) { if(event->val==KM_PRESS) { if(event->type == LEFTMOUSE) { - if(horizontal) { - data->dragstartx= mx; - data->draglastx= mx; - } - else { - data->dragstartx= my; - data->draglastx= my; - } + data->dragstartx= mx; + data->draglastx= mx; + data->dragstartx= my; + data->draglastx= my; button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); retval= WM_UI_HANDLER_BREAK; } -- cgit v1.2.3 From ee124514636be9c7456cf856bd4772af4a02ca48 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 10 Dec 2009 00:41:03 +0000 Subject: Revert bunch of changes I should have committed before. --- .../blender/editors/interface/interface_handlers.c | 161 +++++++++++++++------ 1 file changed, 115 insertions(+), 46 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 4a7f00d7520..4ef59e4b59a 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -71,6 +71,78 @@ #define BUTTON_AUTO_OPEN_THRESH 0.3 #define BUTTON_MOUSE_TOWARDS_THRESH 1.0 +typedef enum uiButtonActivateType { + BUTTON_ACTIVATE_OVER, + BUTTON_ACTIVATE, + BUTTON_ACTIVATE_APPLY, + BUTTON_ACTIVATE_TEXT_EDITING, + BUTTON_ACTIVATE_OPEN +} uiButtonActivateType; + +typedef enum uiHandleButtonState { + BUTTON_STATE_INIT, + BUTTON_STATE_HIGHLIGHT, + BUTTON_STATE_WAIT_FLASH, + BUTTON_STATE_WAIT_RELEASE, + BUTTON_STATE_WAIT_KEY_EVENT, + BUTTON_STATE_NUM_EDITING, + BUTTON_STATE_TEXT_EDITING, + BUTTON_STATE_TEXT_SELECTING, + BUTTON_STATE_MENU_OPEN, + BUTTON_STATE_EXIT +} uiHandleButtonState; + +typedef struct uiHandleButtonData { + wmWindowManager *wm; + wmWindow *window; + ARegion *region; + + int interactive; + + /* overall state */ + uiHandleButtonState state; + int cancel, escapecancel, retval; + int applied, appliedinteractive; + wmTimer *flashtimer; + + /* edited value */ + char *str, *origstr; + double value, origvalue, startvalue; + float vec[3], origvec[3]; + int togdual, togonly; + ColorBand *coba; + CurveMapping *cumap; + + /* tooltip */ + ARegion *tooltip; + wmTimer *tooltiptimer; + + /* auto open */ + int used_mouse; + wmTimer *autoopentimer; + + /* text selection/editing */ + int maxlen, selextend, selstartx; + + /* number editing / dragging */ + int draglastx, draglasty; + int dragstartx, dragstarty; + int dragchange, draglock, dragsel; + float dragf, dragfstart; + CBData *dragcbd; + + /* menu open */ + uiPopupBlockHandle *menu; + int menuretval; + + /* search box */ + ARegion *searchbox; + + /* post activate */ + uiButtonActivateType posttype; + uiBut *postbut; +} uiHandleButtonData; + typedef struct uiAfterFunc { struct uiAfterFunc *next, *prev; @@ -1339,7 +1411,7 @@ static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data) /* retrieve string */ data->maxlen= ui_get_but_string_max_length(but); - data->str= MEM_callocN(sizeof(char)*data->maxlen + 1, "textedit str"); /* +1 for terminator */ + data->str= MEM_callocN(sizeof(char)*data->maxlen + 1, "textedit str"); ui_get_but_string(but, data->str, data->maxlen); data->origstr= BLI_strdup(data->str); @@ -1617,7 +1689,7 @@ static void ui_do_but_textedit_select(bContext *C, uiBlock *block, uiBut *but, u static void ui_numedit_begin(uiBut *but, uiHandleButtonData *data) { - float softmin, softmax; + float softrange, softmin, softmax; if(but->type == BUT_CURVE) { data->cumap= (CurveMapping*)but->poin; @@ -1640,9 +1712,9 @@ static void ui_numedit_begin(uiBut *but, uiHandleButtonData *data) softmin= but->softmin; softmax= but->softmax; - data->softrange = (float)pow(10, floorf(log10(softmax - softmin) + 0.5)); + softrange= softmax - softmin; - data->dragfstart= (data->softrange == 0.0)? 0.0: (data->value - softmin)/data->softrange; + data->dragfstart= (softrange == 0.0)? 0.0: (data->value - softmin)/softrange; data->dragf= data->dragfstart; } @@ -1964,16 +2036,12 @@ static float ui_numedit_apply_snap(int temp, float softmin, float softmax, int s return temp; } -static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, int snap, int mx, int my) +static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, int snap, int mx) { - float deler, tempf, softmin, softmax; - //float ladder = powf(10.0, floorf((my - data->dragstarty + 25) / 50.0f)); - float ladder = 1.0f; + float deler, tempf, softmin, softmax, softrange; int lvalue, temp, changed= 0; - printf("(%i, %i)\n", mx, my); - - if(mx == data->draglastx && my == data->draglasty) + if(mx == data->draglastx) return changed; /* drag-lock - prevent unwanted scroll adjustments */ @@ -1988,14 +2056,16 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i softmin= but->softmin; softmax= but->softmax; + softrange= softmax - softmin; + if(ui_is_a_warp_but(but)) { /* Mouse location isn't screen clamped to the screen so use a linear mapping * 2px == 1-int, or 1px == 1-ClickStep */ if(ui_is_but_float(but)) { fac *= 0.01*but->a1; - tempf = data->startvalue + ((mx - data->dragstartx) * fac) * ladder; - tempf= ui_numedit_apply_snapf(tempf, softmin, softmax, data->softrange, snap); + tempf = data->startvalue + ((mx - data->dragstartx) * fac); + tempf= ui_numedit_apply_snapf(tempf, softmin, softmax, softrange, snap); #if 1 /* fake moving the click start, nicer for dragging back after passing the limit */ if(tempf < softmin) { @@ -2018,12 +2088,8 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i else { fac = 0.5; /* simple 2px == 1 */ - temp= data->startvalue + floorf((mx - data->dragstartx) * fac) * ladder; + temp= data->startvalue + ((mx - data->dragstartx) * fac); temp= ui_numedit_apply_snap(temp, softmin, softmax, snap); - -// printf("x %i y %i\n", mx, my); -// printf("temp %i, dragstartx %i ladder %f\n", temp, data->dragstartx, ladder); - #if 1 /* fake moving the click start, nicer for dragging back after passing the limit */ if(temp < softmin) { @@ -2043,31 +2109,33 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i changed= 1; } } + + data->draglastx= mx; } else { /* Use a non-linear mapping of the mouse drag especially for large floats (normal behavior) */ - deler= 1000; + deler= 500; if(!ui_is_but_float(but)) { - if((data->softrange)<100) deler= 200.0; - if((data->softrange)<25) deler= 50.0; + if((softrange)<100) deler= 200.0; + if((softrange)<25) deler= 50.0; } deler /= fac; - if(ui_is_but_float(but) && data->softrange > 11) { + if(ui_is_but_float(but) && softrange > 11) { /* non linear change in mouse input- good for high precicsion */ - data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.002)*ladder; - } else if (!ui_is_but_float(but) && data->softrange > 129) { /* only scale large int buttons */ + data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.002); + } else if (!ui_is_but_float(but) && softrange > 129) { /* only scale large int buttons */ /* non linear change in mouse input- good for high precicsionm ints need less fine tuning */ - data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.004)*ladder; + data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.004); } else { /*no scaling */ - data->dragf+= ((float)(mx-data->draglastx))/deler*ladder ; + data->dragf+= ((float)(mx-data->draglastx))/deler ; } - tempf= (softmin + data->dragf*data->softrange); - - if (tempf > softmax) data->dragf = (softmax - softmin) / data->softrange; - if (tempf < softmin) data->dragf = softmin / data->softrange; + if(data->dragf>1.0) data->dragf= 1.0; + if(data->dragf<0.0) data->dragf= 0.0; + data->draglastx= mx; + tempf= (softmin + data->dragf*softrange); if(!ui_is_but_float(but)) { @@ -2086,7 +2154,7 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i } else { temp= 0; - tempf= ui_numedit_apply_snapf(tempf, softmin, softmax, data->softrange, snap); + tempf= ui_numedit_apply_snapf(tempf, softmin, softmax, softrange, snap); CLAMP(tempf, softmin, softmax); @@ -2098,8 +2166,6 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i } } - data->draglastx= mx; - data->draglasty= my; return changed; } @@ -2133,7 +2199,6 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton } else if(event->type == LEFTMOUSE) { data->dragstartx= data->draglastx= ui_is_a_warp_but(but) ? screen_mx:mx; - data->dragstarty= data->draglasty= ui_is_a_warp_but(but) ? screen_my:my; button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); retval= WM_UI_HANDLER_BREAK; } @@ -2164,7 +2229,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton snap= (event->ctrl)? (event->shift)? 2: 1: 0; - if(ui_numedit_but_NUM(but, data, fac, snap, (ui_is_a_warp_but(but) ? screen_mx:mx), (ui_is_a_warp_but(but) ? screen_my:my))) + if(ui_numedit_but_NUM(but, data, fac, snap, (ui_is_a_warp_but(but) ? screen_mx:mx))) ui_numedit_apply(C, block, but, data); } retval= WM_UI_HANDLER_BREAK; @@ -2244,11 +2309,12 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton static int ui_numedit_but_SLI(uiBut *but, uiHandleButtonData *data, int shift, int ctrl, int mx) { - float deler, f, tempf, softmin, softmax; + float deler, f, tempf, softmin, softmax, softrange; int temp, lvalue, changed= 0; softmin= but->softmin; softmax= but->softmax; + softrange= softmax - softmin; if(but->type==NUMSLI) deler= ((but->x2-but->x1) - 5.0*but->aspect); else if(but->type==HSVSLI) deler= ((but->x2-but->x1)/2 - 5.0*but->aspect); @@ -2264,8 +2330,8 @@ static int ui_numedit_but_SLI(uiBut *but, uiHandleButtonData *data, int shift, i if(shift) f= (f-data->dragfstart)/10.0 + data->dragfstart; - //CLAMP(f, 0.0, 1.0); - tempf= softmin + f * data->softrange; + CLAMP(f, 0.0, 1.0); + tempf= softmin + f*softrange; temp= floor(tempf+.5); if(ctrl) { @@ -2349,9 +2415,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton } else if(event->type == LEFTMOUSE) { data->dragstartx= mx; - data->dragstarty= my; data->draglastx= mx; - data->draglasty= my; button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); retval= WM_UI_HANDLER_BREAK; } @@ -2389,13 +2453,14 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton if(click) { if (click==2) { /* nudge slider to the left or right */ - float f, tempf, softmin, softmax; + float f, tempf, softmin, softmax, softrange; int temp; button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); softmin= but->softmin; softmax= but->softmax; + softrange= softmax - softmin; tempf= data->value; temp= (int)data->value; @@ -2404,7 +2469,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton if(but->type==SLI) f= (float)(mx-but->x1)/(but->x2-but->x1); else f= (float)(mx- but->x1)/(but->x2-but->x1); - f= softmin + f * data->softrange; + f= softmin + f*softrange; if(!ui_is_but_float(but)) { if(fstate == BUTTON_STATE_HIGHLIGHT) { if(event->val==KM_PRESS) { if(event->type == LEFTMOUSE) { - data->dragstartx= mx; - data->draglastx= mx; - data->dragstartx= my; - data->draglastx= my; + if(horizontal) { + data->dragstartx= mx; + data->draglastx= mx; + } + else { + data->dragstartx= my; + data->draglastx= my; + } button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); retval= WM_UI_HANDLER_BREAK; } -- cgit v1.2.3 From 11af0ff2702ccd02f5dd7528e3f4c5039c635144 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 10 Dec 2009 00:51:13 +0000 Subject: * WITH_BF_RAYOPTIMIZATION cleanup and flag separation by matd. This adds BF_RAYOPTIMIZATION_SSE_FLAGS through which one can manage what SSE flags are best for the platform built for. Note that the ray optimizations coded by jaguarandi are SSE-intrinsics only. --- source/blender/render/SConscript | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index 2642d31bd35..71c60e046cc 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -4,18 +4,28 @@ Import ('env') cflags = env['CCFLAGS'] cxxflags = env['CXXFLAGS'] +defs = [] + if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): if env['WITH_BF_RAYOPTIMIZATION']: - cflags = env['CCFLAGS'] + ['/arch:SSE'] + cflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] + cxxflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] if env['OURPLATFORM'] == 'win32-mingw': if env['WITH_BF_RAYOPTIMIZATION']: - cflags = env['CCFLAGS'] + ['-mfpmath=sse'] + cflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] + cxxflags = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] if env['OURPLATFORM'] == 'darwin': if env['MACOSX_ARCHITECTURE'] in ('i386', 'x86_64') and env['WITH_BF_RAYOPTIMIZATION']: - cflags = env['CFLAGS'] + ['-mfpmath=sse'] - cxxflags = env['CXXFLAGS'] + ['-mfpmath=sse'] + cflags = env['CFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] + cxxflags = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] + +if env['OURPLATFORM'] == 'linux2': + if env['WITH_BF_RAYOPTIMIZATION']: + cflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] + cxxflags = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] + incs += ' ../../../extern/binreloc/include' sources = env.Glob('intern/source/*.c') raysources = env.Glob('intern/raytrace/*.cpp') @@ -24,8 +34,6 @@ incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna ../makesrna' incs += ' extern/include ../blenkernel ../radiosity/extern/include ../imbuf' incs += ' ../include ../blenloader ../../../intern/smoke/extern' -defs = [] - if env['WITH_BF_QUICKTIME']: defs.append('WITH_QUICKTIME') incs += ' ../quicktime ' + env['BF_QUICKTIME_INC'] @@ -33,15 +41,6 @@ if env['WITH_BF_QUICKTIME']: if env['WITH_BF_OPENEXR']: defs.append('WITH_OPENEXR') -if env['OURPLATFORM'] == 'linux2': -# SSE is NOT safe all the time on linux, plus that ignores users compile flags and therefore no no -# cflags = ['-O2','-msse2','-mfpmath=sse', '-pthread'] -# cxxflags = ['-O2','-msse2','-mfpmath=sse', '-pthread'] - if env['WITH_BF_RAYOPTIMIZATION']: - cflags = env['CCFLAGS'] + ['-O2','-msse2','-mfpmath=sse', '-pthread'] - cxxflags = env['CXXFLAGS'] + ['-O2','-msse2','-mfpmath=sse', '-pthread'] - incs += ' ../../../extern/binreloc/include' - if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): incs += ' ' + env['BF_PTHREADS_INC'] -- cgit v1.2.3 From ef8706c4ea6eff84ddf5ddaad27c0d036d789821 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 10 Dec 2009 01:11:04 +0000 Subject: wrong code order made linux+scons barf. --- source/blender/render/SConscript | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript index 71c60e046cc..d9a074c1470 100644 --- a/source/blender/render/SConscript +++ b/source/blender/render/SConscript @@ -1,6 +1,13 @@ #!/usr/bin/python Import ('env') +sources = env.Glob('intern/source/*.c') +raysources = env.Glob('intern/raytrace/*.cpp') + +incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna ../makesrna' +incs += ' extern/include ../blenkernel ../radiosity/extern/include ../imbuf' +incs += ' ../include ../blenloader ../../../intern/smoke/extern' + cflags = env['CCFLAGS'] cxxflags = env['CXXFLAGS'] @@ -27,13 +34,6 @@ if env['OURPLATFORM'] == 'linux2': cxxflags = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS'] incs += ' ../../../extern/binreloc/include' -sources = env.Glob('intern/source/*.c') -raysources = env.Glob('intern/raytrace/*.cpp') - -incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna ../makesrna' -incs += ' extern/include ../blenkernel ../radiosity/extern/include ../imbuf' -incs += ' ../include ../blenloader ../../../intern/smoke/extern' - if env['WITH_BF_QUICKTIME']: defs.append('WITH_QUICKTIME') incs += ' ../quicktime ' + env['BF_QUICKTIME_INC'] -- cgit v1.2.3 From 653593b5748eb7ca78c74336bca1166ade0bbc75 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 10 Dec 2009 01:29:43 +0000 Subject: Fix for [#20216] Search List is unordered This sorts RNA collection (bones, vgroups, etc) search lists alphabetically like ID data search lists are already. --- .../blender/editors/interface/interface_layout.c | 60 +++++++++++++++++----- 1 file changed, 47 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index ceb5ac10486..168b1532db8 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1057,38 +1057,72 @@ void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname) /* Pointer RNA button with search */ +typedef struct CollItemSearch { + struct CollItemSearch *next, *prev; + char *name; + int index; + int iconid; +} CollItemSearch; + +int sort_search_items_list(void *a, void *b) +{ + CollItemSearch *cis1 = (CollItemSearch *)a; + CollItemSearch *cis2 = (CollItemSearch *)b; + + if (BLI_strcasecmp(cis1->name, cis2->name)>0) + return 1; + else + return 0; +} + static void rna_search_cb(const struct bContext *C, void *arg_but, char *str, uiSearchItems *items) { uiBut *but= arg_but; char *name; - int i, iconid, flag= RNA_property_flag(but->rnaprop); + int i=0, iconid=0, flag= RNA_property_flag(but->rnaprop); + ListBase *items_list= MEM_callocN(sizeof(ListBase), "items_list"); + CollItemSearch *cis; - i = 0; + /* build a temporary list of relevant items first */ RNA_PROP_BEGIN(&but->rnasearchpoin, itemptr, but->rnasearchprop) { if(flag & PROP_ID_SELF_CHECK) if(itemptr.data == but->rnapoin.id.data) continue; - - iconid= 0; + if(RNA_struct_is_ID(itemptr.type)) iconid= ui_id_icon_get((bContext*)C, itemptr.data); - + name= RNA_struct_name_get_alloc(&itemptr, NULL, 0); - + if(name) { if(BLI_strcasestr(name, str)) { - if(!uiSearchItemAdd(items, name, SET_INT_IN_POINTER(i), iconid)) { - MEM_freeN(name); - break; - } + cis = MEM_callocN(sizeof(CollItemSearch), "CollectionItemSearch"); + cis->name = MEM_dupallocN(name); + cis->index = i; + cis->iconid = iconid; + BLI_addtail(items_list, cis); } - - MEM_freeN(name); } - + MEM_freeN(name); + i++; } RNA_PROP_END; + + BLI_sortlist(items_list, sort_search_items_list); + + /* add search items from temporary list */ + for (cis=items_list->first; cis; cis=cis->next) { + if (!uiSearchItemAdd(items, cis->name, SET_INT_IN_POINTER(cis->index), cis->iconid)) { + break; + } + } + + for (cis=items_list->first; cis; cis=cis->next) { + MEM_freeN(cis->name); + } + BLI_freelistN(items_list); + MEM_freeN(items_list); } static void search_id_collection(StructRNA *ptype, PointerRNA *ptr, PropertyRNA **prop) -- cgit v1.2.3 From 985c24b0f10da0de347965de0572fb6b715d8f55 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 10 Dec 2009 01:30:47 +0000 Subject: Fix for 'Copy materials to selected' button freezing when using linked geometry --- source/blender/editors/render/render_shading.c | 4 +++- source/blender/editors/space_buttons/space_buttons.c | 1 + source/blender/makesrna/intern/rna_object.c | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 59b220dec63..4be35a4a2c4 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -442,7 +442,9 @@ static int material_slot_copy_exec(bContext *C, wmOperator *op) CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) { if(ob != ob_iter && give_matarar(ob_iter)) { - assign_matarar(ob_iter, matar, ob->totcol); + if (ob->data != ob_iter->data) + assign_matarar(ob_iter, matar, ob->totcol); + if(ob_iter->totcol==ob->totcol) { ob_iter->actcol= ob->actcol; WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob_iter); diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 9fc24516d2d..6c13a36cdf3 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -274,6 +274,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) case ND_CONSTRAINT: ED_area_tag_redraw(sa); break; + case ND_DRAW: case ND_SHADING: case ND_SHADING_DRAW: /* currently works by redraws... if preview is set, it (re)starts job */ diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index d0447cf0376..c4bfb9e0197 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1040,13 +1040,13 @@ static void rna_def_material_slot(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_pointer_funcs(prop, "rna_MaterialSlot_material_get", "rna_MaterialSlot_material_set", NULL); RNA_def_property_ui_text(prop, "Material", "Material datablock used by this material slot."); - RNA_def_property_update(prop, NC_OBJECT|ND_SHADING, "rna_Object_update"); + RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update"); prop= RNA_def_property(srna, "link", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, link_items); RNA_def_property_enum_funcs(prop, "rna_MaterialSlot_link_get", "rna_MaterialSlot_link_set", NULL); RNA_def_property_ui_text(prop, "Link", "Link material to object or the object's data."); - RNA_def_property_update(prop, NC_OBJECT|ND_SHADING, "rna_Object_update"); + RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update"); prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, "rna_MaterialSlot_name_get", "rna_MaterialSlot_name_length", NULL); -- cgit v1.2.3 From a4e4d0f6585fe6e9e2aa4b86f82e5c3a2b8420f1 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 10 Dec 2009 02:43:55 +0000 Subject: Fix for [#20140] Double Properties Panel on 3dview from 2.4x fles --- source/blender/blenloader/intern/readfile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2ad628da428..860225b7dc3 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6010,7 +6010,7 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb) ar= MEM_callocN(sizeof(ARegion), "toolbar for view3d"); BLI_addtail(lb, ar); - ar->regiontype= RGN_TYPE_UI; + ar->regiontype= RGN_TYPE_TOOLS; ar->alignment= RGN_ALIGN_LEFT; ar->flag = RGN_FLAG_HIDDEN; @@ -6018,7 +6018,7 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb) ar= MEM_callocN(sizeof(ARegion), "tool properties for view3d"); BLI_addtail(lb, ar); - ar->regiontype= RGN_TYPE_UI; + ar->regiontype= RGN_TYPE_TOOL_PROPS; ar->alignment= RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV; ar->flag = RGN_FLAG_HIDDEN; -- cgit v1.2.3 From 64c29743c3a25bbcafcd03bdec9e3f1764f43ba1 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 10 Dec 2009 03:07:04 +0000 Subject: Fix for [#20153] Scale region size from search crashes Blender 2.5 24999 --- source/blender/editors/screen/screen_ops.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 87716190994..1a0ae95dfe0 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1301,7 +1301,14 @@ typedef struct RegionMoveData { static int region_scale_invoke(bContext *C, wmOperator *op, wmEvent *event) { sActionzoneData *sad= event->customdata; - AZone *az= sad->az; + AZone *az; + + if(event->type!=EVT_ACTIONZONE_AREA) { + BKE_report(op->reports, RPT_ERROR, "Can only scale region size from an action zone"); + return OPERATOR_CANCELLED; + } + + az = sad->az; if(az->ar) { RegionMoveData *rmd= MEM_callocN(sizeof(RegionMoveData), "RegionMoveData"); -- cgit v1.2.3 From 4bcb759c946e2a3f2f676d2f57e3536478dc7613 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 10 Dec 2009 05:05:04 +0000 Subject: Attempted fix for [#19810] Crash when flipping header with F5 --- source/blender/editors/screen/screen_ops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 1a0ae95dfe0..838af633362 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1303,7 +1303,7 @@ static int region_scale_invoke(bContext *C, wmOperator *op, wmEvent *event) sActionzoneData *sad= event->customdata; AZone *az; - if(event->type!=EVT_ACTIONZONE_AREA) { + if(event->type!=EVT_ACTIONZONE_REGION) { BKE_report(op->reports, RPT_ERROR, "Can only scale region size from an action zone"); return OPERATOR_CANCELLED; } @@ -2111,6 +2111,9 @@ static int region_flip_exec(bContext *C, wmOperator *op) { ARegion *ar= CTX_wm_region(C); + if (!ar) + return OPERATOR_CANCELLED; + if(ar->alignment==RGN_ALIGN_TOP) ar->alignment= RGN_ALIGN_BOTTOM; else if(ar->alignment==RGN_ALIGN_BOTTOM) @@ -2121,7 +2124,6 @@ static int region_flip_exec(bContext *C, wmOperator *op) ar->alignment= RGN_ALIGN_LEFT; WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); - printf("executed region flip\n"); return OPERATOR_FINISHED; } -- cgit v1.2.3 From 900165bc722ebcec55a61916ff6aad601da1edd0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 08:54:16 +0000 Subject: raise an error when adding/removing editbones when the armature is not in editmode (without this blender crashes) --- source/blender/makesrna/intern/rna_armature.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 4859f23967f..cb030bf0c31 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -94,13 +94,21 @@ static void rna_Armature_act_edit_bone_set(PointerRNA *ptr, PointerRNA value) } } -EditBone *rna_Armature_edit_bone_new(bArmature *arm, char *name) +EditBone *rna_Armature_edit_bone_new(bArmature *arm, ReportList *reports, char *name) { + if(arm->edbo==NULL) { + BKE_reportf(reports, RPT_ERROR, "Armature '%s' not in editmode, cant add an editbone.", arm->id.name+2); + return NULL; + } return ED_armature_edit_bone_add(arm, name); } -void rna_Armature_edit_bone_remove(bArmature *arm, EditBone *ebone) +void rna_Armature_edit_bone_remove(bArmature *arm, ReportList *reports, EditBone *ebone) { + if(arm->edbo==NULL) { + BKE_reportf(reports, RPT_ERROR, "Armature '%s' not in editmode, cant remove an editbone.", arm->id.name+2); + return; + } ED_armature_edit_bone_remove(arm, ebone); } @@ -701,15 +709,18 @@ static void rna_def_armature_edit_bones(BlenderRNA *brna, PropertyRNA *cprop) /* add target */ func= RNA_def_function(srna, "new", "rna_Armature_edit_bone_new"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); RNA_def_function_ui_description(func, "Add a new bone."); parm= RNA_def_string(func, "name", "Object", 0, "", "New name for the bone."); RNA_def_property_flag(parm, PROP_REQUIRED); + /* return type */ parm= RNA_def_pointer(func, "bone", "EditBone", "", "Newly created edit bone."); RNA_def_function_return(func, parm); /* remove target */ func= RNA_def_function(srna, "remove", "rna_Armature_edit_bone_remove"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); RNA_def_function_ui_description(func, "Remove an existing bone from the armature."); /* target to remove*/ parm= RNA_def_pointer(func, "bone", "EditBone", "", "EditBone to remove."); -- cgit v1.2.3 From 24be31bda01e5aae56a7d637674a888f0ab54f80 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 10 Dec 2009 09:25:30 +0000 Subject: Fix for [#19776] Header bar problem in 2.5 Prevents dragging region edges outside area boundaries or into other regions. --- source/blender/editors/screen/screen_ops.c | 895 +++++++++++++++-------------- 1 file changed, 466 insertions(+), 429 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 838af633362..b67001a454c 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -180,10 +180,10 @@ int ED_operator_buttons_active(bContext *C) int ED_operator_node_active(bContext *C) { SpaceNode *snode= CTX_wm_space_node(C); - + if(snode && snode->edittree) return 1; - + return 0; } @@ -252,7 +252,7 @@ int ED_operator_posemode(bContext *C) if ((obact != obedit) && (obact) && (obact->type==OB_ARMATURE)) return (obact->mode & OB_MODE_POSE)!=0; - + return 0; } @@ -261,15 +261,15 @@ int ED_operator_uvedit(bContext *C) { Object *obedit= CTX_data_edit_object(C); EditMesh *em= NULL; - + if(obedit && obedit->type==OB_MESH) em= BKE_mesh_get_editmesh((Mesh *)obedit->data); - + if(em && (em->faces.first) && (CustomData_has_layer(&em->fdata, CD_MTFACE))) { BKE_mesh_end_editmesh(obedit->data, em); return 1; } - + if(obedit) BKE_mesh_end_editmesh(obedit->data, em); return 0; @@ -279,15 +279,15 @@ int ED_operator_uvmap(bContext *C) { Object *obedit= CTX_data_edit_object(C); EditMesh *em= NULL; - + if(obedit && obedit->type==OB_MESH) em= BKE_mesh_get_editmesh((Mesh *)obedit->data); - + if(em && (em->faces.first)) { BKE_mesh_end_editmesh(obedit->data, em); return 1; } - + if(obedit) BKE_mesh_end_editmesh(obedit->data, em); return 0; @@ -345,27 +345,27 @@ int ED_operator_editmball(bContext *C) /* *************************** action zone operator ************************** */ /* operator state vars used: - none - -functions: - - apply() set actionzone event - - exit() free customdata - -callbacks: - - exec() never used - - invoke() check if in zone - add customdata, put mouseco and area in it - add modal handler - - modal() accept modal events while doing it - call apply() with gesture info, active window, nonactive window - call exit() and remove handler when LMB confirm - -*/ + none + + functions: + + apply() set actionzone event + + exit() free customdata + + callbacks: + + exec() never used + + invoke() check if in zone + add customdata, put mouseco and area in it + add modal handler + + modal() accept modal events while doing it + call apply() with gesture info, active window, nonactive window + call exit() and remove handler when LMB confirm + + */ typedef struct sActionzoneData { ScrArea *sa1, *sa2; @@ -399,7 +399,7 @@ static int actionzone_area_poll(bContext *C) for(az= sa->actionzones.first; az; az= az->next) if(BLI_in_rcti(&az->rect, x, y)) - return 1; + return 1; } return 0; } @@ -514,14 +514,14 @@ static int actionzone_modal(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } - break; + break; case ESCKEY: actionzone_exit(C, op); return OPERATOR_CANCELLED; case LEFTMOUSE: actionzone_exit(C, op); return OPERATOR_CANCELLED; - + } return OPERATOR_RUNNING_MODAL; @@ -537,7 +537,7 @@ static void SCREEN_OT_actionzone(wmOperatorType *ot) ot->invoke= actionzone_invoke; ot->modal= actionzone_modal; ot->poll= actionzone_area_poll; - + ot->flag= OPTYPE_BLOCKING; RNA_def_int(ot->srna, "modifier", 0, 0, 2, "modifier", "modifier state", 0, 2); @@ -546,25 +546,25 @@ static void SCREEN_OT_actionzone(wmOperatorType *ot) /* ************** swap area operator *********************************** */ /* operator state vars used: - sa1 start area - sa2 area to swap with - - functions: - - init() set custom data for operator, based on actionzone event custom data - - cancel() cancel the operator - - exit() cleanup, send notifier - - callbacks: - - invoke() gets called on shift+lmb drag in actionzone - call init(), add handler - - modal() accept modal events while doing it - -*/ + sa1 start area + sa2 area to swap with + + functions: + + init() set custom data for operator, based on actionzone event custom data + + cancel() cancel the operator + + exit() cleanup, send notifier + + callbacks: + + invoke() gets called on shift+lmb drag in actionzone + call init(), add handler + + modal() accept modal events while doing it + + */ typedef struct sAreaSwapData { ScrArea *sa1, *sa2; @@ -574,15 +574,15 @@ static int area_swap_init(bContext *C, wmOperator *op, wmEvent *event) { sAreaSwapData *sd= NULL; sActionzoneData *sad= event->customdata; - + if(sad==NULL || sad->sa1==NULL) - return 0; + return 0; sd= MEM_callocN(sizeof(sAreaSwapData), "sAreaSwapData"); sd->sa1= sad->sa1; sd->sa2= sad->sa2; op->customdata= sd; - + return 1; } @@ -602,22 +602,22 @@ static int area_swap_cancel(bContext *C, wmOperator *op) static int area_swap_invoke(bContext *C, wmOperator *op, wmEvent *event) { - + if(!area_swap_init(C, op, event)) return OPERATOR_PASS_THROUGH; - + /* add modal handler */ WM_cursor_modal(CTX_wm_window(C), BC_SWAPAREA_CURSOR); WM_event_add_modal_handler(C, op); return OPERATOR_RUNNING_MODAL; - + } static int area_swap_modal(bContext *C, wmOperator *op, wmEvent *event) { sActionzoneData *sad= op->customdata; - + switch(event->type) { case MOUSEMOVE: /* second area, for join */ @@ -626,19 +626,19 @@ static int area_swap_modal(bContext *C, wmOperator *op, wmEvent *event) case LEFTMOUSE: /* release LMB */ if(event->val==KM_RELEASE) { if(!sad->sa2 || sad->sa1 == sad->sa2) { - + return area_swap_cancel(C, op); } ED_area_swapspace(C, sad->sa1, sad->sa2); - + area_swap_exit(C, op); - + WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); - + return OPERATOR_FINISHED; } break; - + case ESCKEY: return area_swap_cancel(C, op); } @@ -650,11 +650,11 @@ static void SCREEN_OT_area_swap(wmOperatorType *ot) ot->name= "Swap areas"; ot->description= "Swap selected areas screen positions."; ot->idname= "SCREEN_OT_area_swap"; - + ot->invoke= area_swap_invoke; ot->modal= area_swap_modal; ot->poll= ED_operator_areaactive; - + ot->flag= OPTYPE_BLOCKING; } @@ -675,10 +675,10 @@ static int area_dupli_invoke(bContext *C, wmOperator *op, wmEvent *event) /* XXX hrmf! */ if(event->type==EVT_ACTIONZONE_AREA) { sActionzoneData *sad= event->customdata; - + if(sad==NULL) return OPERATOR_PASS_THROUGH; - + sa= sad->sa1; } @@ -703,7 +703,7 @@ static int area_dupli_invoke(bContext *C, wmOperator *op, wmEvent *event) /* screen, areas init */ WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); - + if(event->type==EVT_ACTIONZONE_AREA) actionzone_exit(C, op); @@ -724,33 +724,33 @@ static void SCREEN_OT_area_dupli(wmOperatorType *ot) /* ************** move area edge operator *********************************** */ /* operator state vars used: - x, y mouse coord near edge - delta movement of edge - - functions: - - init() set default property values, find edge based on mouse coords, test - if the edge can be moved, select edges, calculate min and max movement - - apply() apply delta on selection - - exit() cleanup, send notifier - - cancel() cancel moving - - callbacks: - - exec() execute without any user interaction, based on properties - call init(), apply(), exit() - - invoke() gets called on mouse click near edge - call init(), add handler - - modal() accept modal events while doing it - call apply() with delta motion - call exit() and remove handler - -*/ + x, y mouse coord near edge + delta movement of edge + + functions: + + init() set default property values, find edge based on mouse coords, test + if the edge can be moved, select edges, calculate min and max movement + + apply() apply delta on selection + + exit() cleanup, send notifier + + cancel() cancel moving + + callbacks: + + exec() execute without any user interaction, based on properties + call init(), apply(), exit() + + invoke() gets called on mouse click near edge + call init(), add handler + + modal() accept modal events while doing it + call apply() with delta motion + call exit() and remove handler + + */ typedef struct sAreaMoveData { int bigger, smaller, origval, step; @@ -795,25 +795,25 @@ static int area_move_init (bContext *C, wmOperator *op) ScrEdge *actedge; sAreaMoveData *md; int x, y; - + /* required properties */ x= RNA_int_get(op->ptr, "x"); y= RNA_int_get(op->ptr, "y"); - + /* setup */ actedge= screen_find_active_scredge(sc, x, y); if(actedge==NULL) return 0; - + md= MEM_callocN(sizeof(sAreaMoveData), "sAreaMoveData"); op->customdata= md; - + md->dir= scredge_is_horizontal(actedge)?'h':'v'; if(md->dir=='h') md->origval= actedge->v1->vec.y; else md->origval= actedge->v1->vec.x; select_connected_scredge(sc, actedge); /* now all vertices with 'flag==1' are the ones that can be moved. */ - + area_move_set_limits(sc, md->dir, &md->bigger, &md->smaller); return 1; @@ -837,7 +837,7 @@ static void area_move_apply_do(bContext *C, int origval, int delta, int dir, int } if((dir=='h') && v1->vec.y>0 && v1->vec.ysizey-1) { v1->vec.y= origval + delta; - + v1->vec.y+= AREAGRID-1; v1->vec.y-= (v1->vec.y % AREAGRID); @@ -847,7 +847,7 @@ static void area_move_apply_do(bContext *C, int origval, int delta, int dir, int } } } - + WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); } @@ -887,7 +887,7 @@ static int area_move_invoke(bContext *C, wmOperator *op, wmEvent *event) { RNA_int_set(op->ptr, "x", event->x); RNA_int_set(op->ptr, "y", event->y); - + if(!area_move_init(C, op)) return OPERATOR_PASS_THROUGH; @@ -899,11 +899,11 @@ static int area_move_invoke(bContext *C, wmOperator *op, wmEvent *event) static int area_move_cancel(bContext *C, wmOperator *op) { - + RNA_int_set(op->ptr, "delta", 0); area_move_apply(C, op); area_move_exit(C, op); - + return OPERATOR_CANCELLED; } @@ -912,7 +912,7 @@ static int area_move_modal(bContext *C, wmOperator *op, wmEvent *event) { sAreaMoveData *md= op->customdata; int delta, x, y; - + /* execute the events */ switch(event->type) { case MOUSEMOVE: @@ -923,7 +923,7 @@ static int area_move_modal(bContext *C, wmOperator *op, wmEvent *event) delta= (md->dir == 'v')? event->x - x: event->y - y; if(md->step) delta= delta - (delta % md->step); RNA_int_set(op->ptr, "delta", delta); - + area_move_apply(C, op); break; @@ -933,7 +933,7 @@ static int area_move_modal(bContext *C, wmOperator *op, wmEvent *event) case KM_MODAL_APPLY: area_move_exit(C, op); return OPERATOR_FINISHED; - + case KM_MODAL_CANCEL: return area_move_cancel(C, op); @@ -955,15 +955,15 @@ static void SCREEN_OT_area_move(wmOperatorType *ot) ot->name= "Move area edges"; ot->description= "Move selected area edges."; ot->idname= "SCREEN_OT_area_move"; - + ot->exec= area_move_exec; ot->invoke= area_move_invoke; ot->cancel= area_move_cancel; ot->modal= area_move_modal; ot->poll= ED_operator_screen_mainwinactive; /* when mouse is over area-edge */ - + ot->flag= OPTYPE_BLOCKING; - + /* rna */ RNA_def_int(ot->srna, "x", 0, INT_MIN, INT_MAX, "X", "", INT_MIN, INT_MAX); RNA_def_int(ot->srna, "y", 0, INT_MIN, INT_MAX, "Y", "", INT_MIN, INT_MAX); @@ -973,56 +973,56 @@ static void SCREEN_OT_area_move(wmOperatorType *ot) /* ************** split area operator *********************************** */ /* -operator state vars: - fac spit point - dir direction 'v' or 'h' - -operator customdata: - area pointer to (active) area - x, y last used mouse pos - (more, see below) - -functions: - - init() set default property values, find area based on context - - apply() split area based on state vars - - exit() cleanup, send notifier - - cancel() remove duplicated area - -callbacks: - - exec() execute without any user interaction, based on state vars - call init(), apply(), exit() - - invoke() gets called on mouse click in action-widget - call init(), add modal handler - call apply() with initial motion - - modal() accept modal events while doing it - call move-areas code with delta motion - call exit() or cancel() and remove handler - -*/ + operator state vars: + fac spit point + dir direction 'v' or 'h' + + operator customdata: + area pointer to (active) area + x, y last used mouse pos + (more, see below) + + functions: + + init() set default property values, find area based on context + + apply() split area based on state vars + + exit() cleanup, send notifier + + cancel() remove duplicated area + + callbacks: + + exec() execute without any user interaction, based on state vars + call init(), apply(), exit() + + invoke() gets called on mouse click in action-widget + call init(), add modal handler + call apply() with initial motion + + modal() accept modal events while doing it + call move-areas code with delta motion + call exit() or cancel() and remove handler + + */ #define SPLIT_STARTED 1 #define SPLIT_PROGRESS 2 typedef struct sAreaSplitData -{ - int x, y; /* last used mouse position */ - - int origval; /* for move areas */ - int bigger, smaller; /* constraints for moving new edge */ - int delta; /* delta move edge */ - int origmin, origsize; /* to calculate fac, for property storage */ - - ScrEdge *nedge; /* new edge */ - ScrArea *sarea; /* start area */ - ScrArea *narea; /* new area */ -} sAreaSplitData; + { + int x, y; /* last used mouse position */ + + int origval; /* for move areas */ + int bigger, smaller; /* constraints for moving new edge */ + int delta; /* delta move edge */ + int origmin, origsize; /* to calculate fac, for property storage */ + + ScrEdge *nedge; /* new edge */ + ScrArea *sarea; /* start area */ + ScrArea *narea; /* new area */ + } sAreaSplitData; /* generic init, no UI stuff here */ static int area_split_init(bContext *C, wmOperator *op) @@ -1040,7 +1040,7 @@ static int area_split_init(bContext *C, wmOperator *op) /* minimal size */ if(dir=='v' && sa->winx < 2*AREAMINX) return 0; if(dir=='h' && sa->winy < 2*AREAMINY) return 0; - + /* custom data */ sd= (sAreaSplitData*)MEM_callocN(sizeof (sAreaSplitData), "op_area_split"); op->customdata= sd; @@ -1077,7 +1077,7 @@ static ScrEdge *area_findsharededge(bScreen *screen, ScrArea *sa, ScrArea *sb) else if(sav1==sbv2 && sav4==sbv3) { /* sa on top of sb = S*/ return screen_findedge(screen, sav1, sav4); } - + return NULL; } @@ -1092,24 +1092,24 @@ static int area_split_apply(bContext *C, wmOperator *op) fac= RNA_float_get(op->ptr, "factor"); dir= RNA_enum_get(op->ptr, "direction"); - + sd->narea= area_split(CTX_wm_window(C), sc, sd->sarea, dir, fac); if(sd->narea) { ScrVert *sv; sd->nedge= area_findsharededge(sc, sd->sarea, sd->narea); - + /* select newly created edge, prepare for moving edge */ for(sv= sc->vertbase.first; sv; sv= sv->next) sv->flag = 0; sd->nedge->v1->flag= 1; sd->nedge->v2->flag= 1; - + if(dir=='h') sd->origval= sd->nedge->v1->vec.y; else sd->origval= sd->nedge->v1->vec.x; - + WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); return 1; @@ -1126,7 +1126,7 @@ static void area_split_exit(bContext *C, wmOperator *op) } WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); - + /* this makes sure aligned edges will result in aligned grabbing */ removedouble_scrverts(CTX_wm_screen(C)); removedouble_scredges(CTX_wm_screen(C)); @@ -1141,7 +1141,7 @@ static int area_split_invoke(bContext *C, wmOperator *op, wmEvent *event) if(event->type==EVT_ACTIONZONE_AREA) { sActionzoneData *sad= event->customdata; int dir; - + if(sad->modifier>0) { return OPERATOR_PASS_THROUGH; } @@ -1168,7 +1168,7 @@ static int area_split_invoke(bContext *C, wmOperator *op, wmEvent *event) RNA_float_set(op->ptr, "factor", ((float)(event->y - sad->sa1->v1->vec.y)) / (float)sad->sa1->winy); } RNA_enum_set(op->ptr, "direction", dir); - + /* general init, also non-UI case, adds customdata, sets area and defaults */ if(!area_split_init(C, op)) return OPERATOR_PASS_THROUGH; @@ -1214,7 +1214,7 @@ static int area_split_exec(bContext *C, wmOperator *op) static int area_split_cancel(bContext *C, wmOperator *op) { sAreaSplitData *sd= (sAreaSplitData *)op->customdata; - + if (screen_area_join(C, CTX_wm_screen(C), sd->sarea, sd->narea)) { if (CTX_wm_area(C) == sd->narea) { CTX_wm_area_set(C, NULL); @@ -1223,7 +1223,7 @@ static int area_split_cancel(bContext *C, wmOperator *op) sd->narea = NULL; } area_split_exit(C, op); - + return OPERATOR_CANCELLED; } @@ -1232,7 +1232,7 @@ static int area_split_modal(bContext *C, wmOperator *op, wmEvent *event) sAreaSplitData *sd= (sAreaSplitData *)op->customdata; float fac; int dir; - + /* execute the events */ switch(event->type) { case MOUSEMOVE: @@ -1262,9 +1262,9 @@ static int area_split_modal(bContext *C, wmOperator *op, wmEvent *event) } static EnumPropertyItem prop_direction_items[] = { - {'h', "HORIZONTAL", 0, "Horizontal", ""}, - {'v', "VERTICAL", 0, "Vertical", ""}, - {0, NULL, 0, NULL, NULL}}; +{'h', "HORIZONTAL", 0, "Horizontal", ""}, +{'v', "VERTICAL", 0, "Vertical", ""}, +{0, NULL, 0, NULL, NULL}}; static void SCREEN_OT_area_split(wmOperatorType *ot) { @@ -1294,10 +1294,40 @@ typedef struct RegionMoveData { ScrArea *sa; int bigger, smaller, origval; int origx, origy; + int maxsize; char edge; } RegionMoveData; + +static int area_max_regionsize(ScrArea *sa, ARegion *scalear, char edge) +{ + ARegion *ar; + int dist; + + if(edge=='l' || edge=='r') { + dist = sa->totrct.xmax - sa->totrct.xmin; + } else { /* t, b */ + dist = sa->totrct.ymax - sa->totrct.ymin; + } + + /* subtractwidth of regions on opposite side + * prevents dragging regions into other opposite regions */ + for (ar=sa->regionbase.first; ar; ar=ar->next) + { + if (scalear->alignment == RGN_ALIGN_TOP && ar->alignment == RGN_ALIGN_BOTTOM) + dist -= ar->winy; + else if (scalear->alignment == RGN_ALIGN_BOTTOM && ar->alignment == RGN_ALIGN_TOP) + dist -= ar->winy; + else if (scalear->alignment == RGN_ALIGN_LEFT && ar->alignment == RGN_ALIGN_RIGHT) + dist -= ar->winx; + else if (scalear->alignment == RGN_ALIGN_RIGHT && ar->alignment == RGN_ALIGN_LEFT) + dist -= ar->winx; + } + + return dist; +} + static int region_scale_invoke(bContext *C, wmOperator *op, wmEvent *event) { sActionzoneData *sad= event->customdata; @@ -1321,10 +1351,13 @@ static int region_scale_invoke(bContext *C, wmOperator *op, wmEvent *event) rmd->edge= az->edge; rmd->origx= event->x; rmd->origy= event->y; - if(rmd->edge=='l' || rmd->edge=='r') + rmd->maxsize = area_max_regionsize(rmd->sa, rmd->ar, rmd->edge); + if(rmd->edge=='l' || rmd->edge=='r') { rmd->origval= rmd->ar->type->minsizex; - else + } else { rmd->origval= rmd->ar->type->minsizey; + } + CLAMP(rmd->maxsize, 0, 1000); /* add temp handler */ WM_event_add_modal_handler(C, op); @@ -1347,8 +1380,10 @@ static int region_scale_modal(bContext *C, wmOperator *op, wmEvent *event) if(rmd->edge=='l' || rmd->edge=='r') { delta= event->x - rmd->origx; if(rmd->edge=='l') delta= -delta; + rmd->ar->type->minsizex= rmd->origval + delta; - CLAMP(rmd->ar->type->minsizex, 0, 1000); + CLAMP(rmd->ar->type->minsizex, 0, rmd->maxsize); + if(rmd->ar->type->minsizex < 24) { rmd->ar->type->minsizex= rmd->origval; if(!(rmd->ar->flag & RGN_FLAG_HIDDEN)) @@ -1360,8 +1395,10 @@ static int region_scale_modal(bContext *C, wmOperator *op, wmEvent *event) else { delta= event->y - rmd->origy; if(rmd->edge=='b') delta= -delta; + rmd->ar->type->minsizey= rmd->origval + delta; - CLAMP(rmd->ar->type->minsizey, 0, 1000); + CLAMP(rmd->ar->type->minsizey, 0, rmd->maxsize); + if(rmd->ar->type->minsizey < 24) { rmd->ar->type->minsizey= rmd->origval; if(!(rmd->ar->flag & RGN_FLAG_HIDDEN)) @@ -1372,7 +1409,7 @@ static int region_scale_modal(bContext *C, wmOperator *op, wmEvent *event) } WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL); - + break; case LEFTMOUSE: @@ -1386,7 +1423,7 @@ static int region_scale_modal(bContext *C, wmOperator *op, wmEvent *event) } MEM_freeN(op->customdata); op->customdata = NULL; - + return OPERATOR_FINISHED; } break; @@ -1421,13 +1458,13 @@ static void SCREEN_OT_region_scale(wmOperatorType *ot) static int frame_offset_exec(bContext *C, wmOperator *op) { int delta; - + delta = RNA_int_get(op->ptr, "delta"); - + CTX_data_scene(C)->r.cfra += delta; - + WM_event_add_notifier(C, NC_SCENE|ND_FRAME, CTX_data_scene(C)); - + return OPERATOR_FINISHED; } @@ -1435,12 +1472,12 @@ static void SCREEN_OT_frame_offset(wmOperatorType *ot) { ot->name = "Frame Offset"; ot->idname = "SCREEN_OT_frame_offset"; - + ot->exec= frame_offset_exec; - + ot->poll= ED_operator_screenactive; ot->flag= 0; - + /* rna */ RNA_def_int(ot->srna, "delta", 0, INT_MIN, INT_MAX, "Delta", "", INT_MIN, INT_MAX); } @@ -1455,9 +1492,9 @@ static int frame_jump_exec(bContext *C, wmOperator *op) CFRA= PEFRA; else CFRA= PSFRA; - + WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); - + return OPERATOR_FINISHED; } @@ -1466,12 +1503,12 @@ static void SCREEN_OT_frame_jump(wmOperatorType *ot) ot->name = "Jump to Endpoint"; ot->description= "Jump to first/last frame in frame range."; ot->idname = "SCREEN_OT_frame_jump"; - + ot->exec= frame_jump_exec; - + ot->poll= ED_operator_screenactive; ot->flag= 0; - + /* rna */ RNA_def_boolean(ot->srna, "end", 0, "Last Frame", "Jump to the last frame of the frame range."); } @@ -1501,7 +1538,7 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op) scene_to_keylist(NULL, scene, &keys, NULL); if (ob && ob->adt) ob_to_keylist(NULL, ob, &keys, NULL); - + /* build linked-list for searching */ BLI_dlrbTree_linkedlist_sync(&keys); @@ -1521,7 +1558,7 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op) BLI_dlrbTree_free(&keys); WM_event_add_notifier(C, NC_SCENE|ND_FRAME, CTX_data_scene(C)); - + return OPERATOR_FINISHED; } @@ -1530,12 +1567,12 @@ static void SCREEN_OT_keyframe_jump(wmOperatorType *ot) ot->name = "Jump to Keyframe"; ot->description= "Jump to previous/next keyframe."; ot->idname = "SCREEN_OT_keyframe_jump"; - + ot->exec= keyframe_jump_exec; - + ot->poll= ED_operator_screenactive; ot->flag= 0; - + /* rna */ RNA_def_boolean(ot->srna, "next", 1, "Next Keyframe", ""); } @@ -1554,7 +1591,7 @@ static int screen_set_exec(bContext *C, wmOperator *op) /* return to previous state before switching screens */ if(sa && sa->full) ED_screen_full_restore(C, sa); - + if(delta==1) { while(tot--) { screen= screen->id.next; @@ -1614,7 +1651,7 @@ static void SCREEN_OT_screen_full_area(wmOperatorType *ot) ot->exec= screen_full_area_exec; ot->poll= ED_operator_areaactive; ot->flag= 0; - + } @@ -1622,40 +1659,40 @@ static void SCREEN_OT_screen_full_area(wmOperatorType *ot) /* ************** join area operator ********************************************** */ /* operator state vars used: - x1, y1 mouse coord in first area, which will disappear - x2, y2 mouse coord in 2nd area, which will become joined - -functions: - - init() find edge based on state vars - test if the edge divides two areas, - store active and nonactive area, - - apply() do the actual join - - exit() cleanup, send notifier - -callbacks: - - exec() calls init, apply, exit - - invoke() sets mouse coords in x,y - call init() - add modal handler - - modal() accept modal events while doing it - call apply() with active window and nonactive window - call exit() and remove handler when LMB confirm - -*/ + x1, y1 mouse coord in first area, which will disappear + x2, y2 mouse coord in 2nd area, which will become joined + + functions: + + init() find edge based on state vars + test if the edge divides two areas, + store active and nonactive area, + + apply() do the actual join + + exit() cleanup, send notifier + + callbacks: + + exec() calls init, apply, exit + + invoke() sets mouse coords in x,y + call init() + add modal handler + + modal() accept modal events while doing it + call apply() with active window and nonactive window + call exit() and remove handler when LMB confirm + + */ typedef struct sAreaJoinData -{ - ScrArea *sa1; /* first area to be considered */ - ScrArea *sa2; /* second area to be considered */ - ScrArea *scr; /* designed for removal */ - -} sAreaJoinData; + { + ScrArea *sa1; /* first area to be considered */ + ScrArea *sa2; /* second area to be considered */ + ScrArea *scr; /* designed for removal */ + + } sAreaJoinData; /* validate selection inside screen, set variables OK */ @@ -1667,7 +1704,7 @@ static int area_join_init(bContext *C, wmOperator *op) sAreaJoinData* jd= NULL; int x1, y1; int x2, y2; - + /* required properties, make negative to get return 0 if not set by caller */ x1= RNA_int_get(op->ptr, "x1"); y1= RNA_int_get(op->ptr, "y1"); @@ -1678,9 +1715,9 @@ static int area_join_init(bContext *C, wmOperator *op) sa2 = screen_areahascursor(CTX_wm_screen(C), x2, y2); if(sa1==NULL || sa2==NULL || sa1==sa2) return 0; - + jd = (sAreaJoinData*)MEM_callocN(sizeof (sAreaJoinData), "op_area_join"); - + jd->sa1 = sa1; jd->sa1->flag |= AREA_FLAG_DRAWJOINFROM; jd->sa2 = sa2; @@ -1696,7 +1733,7 @@ static int area_join_apply(bContext *C, wmOperator *op) { sAreaJoinData *jd = (sAreaJoinData *)op->customdata; if (!jd) return 0; - + if(!screen_area_join(C, CTX_wm_screen(C), jd->sa1, jd->sa2)){ return 0; } @@ -1704,7 +1741,7 @@ static int area_join_apply(bContext *C, wmOperator *op) CTX_wm_area_set(C, NULL); CTX_wm_region_set(C, NULL); } - + return 1; } @@ -1715,7 +1752,7 @@ static void area_join_exit(bContext *C, wmOperator *op) MEM_freeN(op->customdata); op->customdata = NULL; } - + /* this makes sure aligned edges will result in aligned grabbing */ removedouble_scredges(CTX_wm_screen(C)); removenotused_scredges(CTX_wm_screen(C)); @@ -1729,17 +1766,17 @@ static int area_join_exec(bContext *C, wmOperator *op) area_join_apply(C, op); area_join_exit(C, op); - + return OPERATOR_FINISHED; } /* interaction callback */ static int area_join_invoke(bContext *C, wmOperator *op, wmEvent *event) { - + if(event->type==EVT_ACTIONZONE_AREA) { sActionzoneData *sad= event->customdata; - + if(sad->modifier>0) { return OPERATOR_PASS_THROUGH; } @@ -1757,13 +1794,13 @@ static int area_join_invoke(bContext *C, wmOperator *op, wmEvent *event) RNA_int_set(op->ptr, "y1", sad->y); RNA_int_set(op->ptr, "x2", event->x); RNA_int_set(op->ptr, "y2", event->y); - + if(!area_join_init(C, op)) return OPERATOR_PASS_THROUGH; - + /* add temp handler */ WM_event_add_modal_handler(C, op); - + return OPERATOR_RUNNING_MODAL; } @@ -1773,7 +1810,7 @@ static int area_join_invoke(bContext *C, wmOperator *op, wmEvent *event) static int area_join_cancel(bContext *C, wmOperator *op) { sAreaJoinData *jd = (sAreaJoinData *)op->customdata; - + if (jd->sa1) { jd->sa1->flag &= ~AREA_FLAG_DRAWJOINFROM; jd->sa1->flag &= ~AREA_FLAG_DRAWJOINTO; @@ -1782,11 +1819,11 @@ static int area_join_cancel(bContext *C, wmOperator *op) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINFROM; jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; } - + WM_event_add_notifier(C, NC_WINDOW, NULL); area_join_exit(C, op); - + return OPERATOR_CANCELLED; } @@ -1800,66 +1837,66 @@ static int area_join_modal(bContext *C, wmOperator *op, wmEvent *event) switch(event->type) { case MOUSEMOVE: - { - ScrArea *sa = screen_areahascursor(sc, event->x, event->y); - int dir; - - if (sa) { - if (jd->sa1 != sa) { - dir = area_getorientation(sc, jd->sa1, sa); - if (dir >= 0) { - if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; - jd->sa2 = sa; - jd->sa2->flag |= AREA_FLAG_DRAWJOINTO; - } - else { - /* we are not bordering on the previously selected area - we check if area has common border with the one marked for removal - in this case we can swap areas. - */ - dir = area_getorientation(sc, sa, jd->sa2); - if (dir >= 0) { - if (jd->sa1) jd->sa1->flag &= ~AREA_FLAG_DRAWJOINFROM; - if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; - jd->sa1 = jd->sa2; - jd->sa2 = sa; - if (jd->sa1) jd->sa1->flag |= AREA_FLAG_DRAWJOINFROM; - if (jd->sa2) jd->sa2->flag |= AREA_FLAG_DRAWJOINTO; - } - else { - if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; - jd->sa2 = NULL; - } - } - WM_event_add_notifier(C, NC_WINDOW, NULL); + { + ScrArea *sa = screen_areahascursor(sc, event->x, event->y); + int dir; + + if (sa) { + if (jd->sa1 != sa) { + dir = area_getorientation(sc, jd->sa1, sa); + if (dir >= 0) { + if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; + jd->sa2 = sa; + jd->sa2->flag |= AREA_FLAG_DRAWJOINTO; } else { - /* we are back in the area previously selected for keeping - * we swap the areas if possible to allow user to choose */ - if (jd->sa2 != NULL) { + /* we are not bordering on the previously selected area + we check if area has common border with the one marked for removal + in this case we can swap areas. + */ + dir = area_getorientation(sc, sa, jd->sa2); + if (dir >= 0) { if (jd->sa1) jd->sa1->flag &= ~AREA_FLAG_DRAWJOINFROM; if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; jd->sa1 = jd->sa2; jd->sa2 = sa; if (jd->sa1) jd->sa1->flag |= AREA_FLAG_DRAWJOINFROM; if (jd->sa2) jd->sa2->flag |= AREA_FLAG_DRAWJOINTO; - dir = area_getorientation(sc, jd->sa1, jd->sa2); - if (dir < 0) { - printf("oops, didn't expect that!\n"); - } } else { - dir = area_getorientation(sc, jd->sa1, sa); - if (dir >= 0) { - if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; - jd->sa2 = sa; - jd->sa2->flag |= AREA_FLAG_DRAWJOINTO; - } + if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; + jd->sa2 = NULL; + } + } + WM_event_add_notifier(C, NC_WINDOW, NULL); + } + else { + /* we are back in the area previously selected for keeping + * we swap the areas if possible to allow user to choose */ + if (jd->sa2 != NULL) { + if (jd->sa1) jd->sa1->flag &= ~AREA_FLAG_DRAWJOINFROM; + if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; + jd->sa1 = jd->sa2; + jd->sa2 = sa; + if (jd->sa1) jd->sa1->flag |= AREA_FLAG_DRAWJOINFROM; + if (jd->sa2) jd->sa2->flag |= AREA_FLAG_DRAWJOINTO; + dir = area_getorientation(sc, jd->sa1, jd->sa2); + if (dir < 0) { + printf("oops, didn't expect that!\n"); + } + } + else { + dir = area_getorientation(sc, jd->sa1, sa); + if (dir >= 0) { + if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO; + jd->sa2 = sa; + jd->sa2->flag |= AREA_FLAG_DRAWJOINTO; } - WM_event_add_notifier(C, NC_WINDOW, NULL); } + WM_event_add_notifier(C, NC_WINDOW, NULL); } } + } break; case LEFTMOUSE: if(event->val==KM_RELEASE) { @@ -1869,12 +1906,12 @@ static int area_join_modal(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } break; - + case RIGHTMOUSE: case ESCKEY: return area_join_cancel(C, op); } - + return OPERATOR_RUNNING_MODAL; } @@ -1891,9 +1928,9 @@ static void SCREEN_OT_area_join(wmOperatorType *ot) ot->invoke= area_join_invoke; ot->modal= area_join_modal; ot->poll= ED_operator_areaactive; - + ot->flag= OPTYPE_BLOCKING; - + /* rna */ RNA_def_int(ot->srna, "x1", -100, INT_MIN, INT_MAX, "X 1", "", INT_MIN, INT_MAX); RNA_def_int(ot->srna, "y1", -100, INT_MIN, INT_MAX, "Y 1", "", INT_MIN, INT_MAX); @@ -1941,10 +1978,10 @@ static int repeat_history_invoke(bContext *C, wmOperator *op, wmEvent *event) pup= uiPupMenuBegin(C, op->type->name, 0); layout= uiPupMenuLayout(pup); - + for (i=items-1, lastop= wm->operators.last; lastop; lastop= lastop->prev, i--) uiItemIntO(layout, lastop->type->name, 0, op->type->idname, "index", i); - + uiPupMenuEnd(C, pup); return OPERATOR_CANCELLED; @@ -1962,7 +1999,7 @@ static int repeat_history_exec(bContext *C, wmOperator *op) WM_operator_repeat(C, op); } - + return OPERATOR_FINISHED; } @@ -1988,7 +2025,7 @@ static int redo_last_invoke(bContext *C, wmOperator *op, wmEvent *event) { wmWindowManager *wm= CTX_wm_manager(C); wmOperator *lastop; - + /* only for operators that are registered and did an undo push */ for(lastop= wm->operators.last; lastop; lastop= lastop->prev) if((lastop->type->flag & OPTYPE_REGISTER) && (lastop->type->flag & OPTYPE_UNDO)) @@ -1996,7 +2033,7 @@ static int redo_last_invoke(bContext *C, wmOperator *op, wmEvent *event) if(lastop) WM_operator_redo_popup(C, lastop); - + return OPERATOR_CANCELLED; } @@ -2096,7 +2133,7 @@ static void SCREEN_OT_region_quadview(wmOperatorType *ot) ot->idname= "SCREEN_OT_region_quadview"; /* api callbacks */ -// ot->invoke= WM_operator_confirm; + // ot->invoke= WM_operator_confirm; ot->exec= region_quadview_exec; ot->poll= ED_operator_areaactive; ot->flag= 0; @@ -2110,7 +2147,7 @@ static void SCREEN_OT_region_quadview(wmOperatorType *ot) static int region_flip_exec(bContext *C, wmOperator *op) { ARegion *ar= CTX_wm_region(C); - + if (!ar) return OPERATOR_CANCELLED; @@ -2204,7 +2241,7 @@ static int header_toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event) ARegion *ar= CTX_wm_region(C); uiPopupMenu *pup; uiLayout *layout; - + pup= uiPupMenuBegin(C, "Header", 0); layout= uiPupMenuLayout(pup); @@ -2225,7 +2262,7 @@ static int header_toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event) } uiPupMenuEnd(C, pup); - + return OPERATOR_CANCELLED; } @@ -2245,7 +2282,7 @@ void SCREEN_OT_header_toolbox(wmOperatorType *ot) static int match_region_with_redraws(int spacetype, int regiontype, int redraws) { if(regiontype==RGN_TYPE_WINDOW) { - + switch (spacetype) { case SPACE_VIEW3D: if(redraws & TIME_ALL_3D_WIN) @@ -2416,7 +2453,7 @@ static int screen_animation_play(bContext *C, wmOperator *op, wmEvent *event) ScrArea *sa= CTX_wm_area(C); int mode= (RNA_boolean_get(op->ptr, "reverse")) ? -1 : 1; int sync= -1; - + if(RNA_property_is_set(op->ptr, "sync")) sync= (RNA_boolean_get(op->ptr, "sync")); @@ -2431,12 +2468,12 @@ static int screen_animation_play(bContext *C, wmOperator *op, wmEvent *event) } else { int redraws = TIME_REGION|TIME_ALL_3D_WIN; - + /* XXX - would like a better way to deal with this situation - Campbell */ if((sa) && (sa->spacetype == SPACE_SEQ)) { redraws |= TIME_SEQ; } - + ED_screen_animation_timer(C, redraws, sync, mode); if(screen->animtimer) { @@ -2504,23 +2541,23 @@ static void SCREEN_OT_animation_cancel(wmOperatorType *ot) /* ************** border select operator (template) ***************************** */ /* operator state vars used: (added by default WM callbacks) - xmin, ymin - xmax, ymax - - customdata: the wmGesture pointer - -callbacks: - - exec() has to be filled in by user - - invoke() default WM function - adds modal handler - - modal() default WM function - accept modal events while doing it, calls exec(), handles ESC and border drawing - - poll() has to be filled in by user for context -*/ + xmin, ymin + xmax, ymax + + customdata: the wmGesture pointer + + callbacks: + + exec() has to be filled in by user + + invoke() default WM function + adds modal handler + + modal() default WM function + accept modal events while doing it, calls exec(), handles ESC and border drawing + + poll() has to be filled in by user for context + */ #if 0 static int border_select_do(bContext *C, wmOperator *op) { @@ -2555,14 +2592,14 @@ static void SCREEN_OT_border_select(wmOperatorType *ot) RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX); RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX); RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX); - + } #endif /* ****************************** render invoking ***************** */ /* set callbacks, exported to sequence render too. -Only call in foreground (UI) renders. */ + Only call in foreground (UI) renders. */ /* returns biggest area that is not uv/image editor. Note that it uses buttons */ /* window as the last possible alternative. */ @@ -2627,7 +2664,7 @@ static ScrArea *find_area_showing_r_result(bContext *C) } } } - + return sa; } @@ -2736,13 +2773,13 @@ static void screen_set_image_output(bContext *C, int mx, int my) /* get the correct image, and scale it */ sima->image= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); -// if(G.displaymode==2) { // XXX - if(sa->full) { - sima->flag |= SI_FULLWINDOW|SI_PREVSPACE; - -// ed_screen_fullarea(C, win, sa); - } -// } + // if(G.displaymode==2) { // XXX + if(sa->full) { + sima->flag |= SI_FULLWINDOW|SI_PREVSPACE; + + // ed_screen_fullarea(C, win, sa); + } + // } } @@ -2766,7 +2803,7 @@ static int screen_render_exec(bContext *C, wmOperator *op) ED_update_for_newframe(C, 1); WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); - + return OPERATOR_FINISHED; } @@ -2846,7 +2883,7 @@ static void image_renderinfo_cb(void *rjv, RenderStats *rs) /* make jobs timer to send notifier */ *(rj->do_update)= 1; - + } /* called inside thread! */ @@ -2909,7 +2946,7 @@ static void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf rectf+= 4*(rr->rectx*ymin + xmin); rectc= (char *)(ibuf->rect + ibuf->x*rymin + rxmin); - + /* XXX make nice consistent functions for this */ if (scene && (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)) { for(y1= 0; y1image, &rj->iuser, &lock); if(ibuf) { image_buffer_rect_update(rj->scene, rr, ibuf, renrect); - + /* make jobs timer to send notifier */ *(rj->do_update)= 1; } @@ -3000,7 +3037,7 @@ static int screen_render_modal(bContext *C, wmOperator *op, wmEvent *event) { /* no running blender, remove handler and pass through */ if(0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) - return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH; + return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH; /* running render */ switch (event->type) { @@ -3030,7 +3067,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) /* handle UI stuff */ WM_cursor_wait(1); - + /* flush multires changes (for sculpt) */ multires_force_update(CTX_data_active_object(C)); @@ -3043,7 +3080,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) /* ensure at least 1 area shows result */ screen_set_image_output(C, event->x, event->y); - + /* job custom data */ rj= MEM_callocN(sizeof(RenderJob), "render job"); rj->scene= scene; @@ -3074,14 +3111,14 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) // BKE_report in render! // RE_error_cb(re, error_cb); - + WM_jobs_start(CTX_wm_manager(C), steve); G.afbreek= 0; WM_cursor_wait(0); WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); - + /* add modal handler for ESC */ WM_event_add_modal_handler(C, op); @@ -3112,20 +3149,20 @@ static void SCREEN_OT_render(wmOperatorType *ot) typedef struct OGLRender { Render *re; Scene *scene; - + View3D *v3d; RegionView3D *rv3d; ARegion *ar; - + Image *ima; ImageUser iuser; - + GPUOffScreen *ofs; int sizex, sizey; - + bMovieHandle *mh; int cfrao, nfra; - + wmTimer *timer; } OGLRender; @@ -3141,10 +3178,10 @@ static void screen_opengl_render_apply(OGLRender *oglrender) float winmat[4][4]; int sizex= oglrender->sizex; int sizey= oglrender->sizey; - + /* bind */ GPU_offscreen_bind(oglrender->ofs); - + /* render 3d view */ if(rv3d->persp==RV3D_CAMOB && v3d->camera) { RE_GetCameraWindow(oglrender->re, v3d->camera, scene->r.cfra, winmat); @@ -3152,19 +3189,19 @@ static void screen_opengl_render_apply(OGLRender *oglrender) } else ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, NULL); - + /* read in pixels & stamp */ rr= RE_AcquireResultRead(oglrender->re); glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_FLOAT, rr->rectf); if((scene->r.scemode & R_STAMP_INFO) && (scene->r.stamp & R_STAMP_DRAW)) BKE_stamp_buf(scene, (unsigned char *)rr->rect32, rr->rectf, rr->rectx, rr->recty, 3); RE_ReleaseResult(oglrender->re); - + /* update byte from float buffer */ ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock); if(ibuf) image_buffer_rect_update(NULL, rr, ibuf, NULL); BKE_image_release_ibuf(oglrender->ima, lock); - + /* unbind */ GPU_offscreen_unbind(oglrender->ofs); } @@ -3177,7 +3214,7 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op) GPUOffScreen *ofs; OGLRender *oglrender; int sizex, sizey; - + /* ensure we have a 3d view */ if(!ED_view3d_context_activate(C)) return 0; @@ -3191,79 +3228,79 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op) /* handle UI stuff */ WM_cursor_wait(1); - + /* create offscreen buffer */ sizex= (scene->r.size*scene->r.xsch)/100; sizey= (scene->r.size*scene->r.ysch)/100; - + view3d_operator_needs_opengl(C); ofs= GPU_offscreen_create(sizex, sizey); - + if(!ofs) { BKE_report(op->reports, RPT_ERROR, "Failed to create OpenGL offscreen buffer."); return 0; } - + /* allocate opengl render */ oglrender= MEM_callocN(sizeof(OGLRender), "OGLRender"); op->customdata= oglrender; - + oglrender->ofs= ofs; oglrender->sizex= sizex; oglrender->sizey= sizey; oglrender->scene= scene; - + oglrender->v3d= CTX_wm_view3d(C); oglrender->ar= CTX_wm_region(C); oglrender->rv3d= CTX_wm_region_view3d(C); - + /* create image and image user */ oglrender->ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); BKE_image_signal(oglrender->ima, NULL, IMA_SIGNAL_FREE); - + oglrender->iuser.scene= scene; oglrender->iuser.ok= 1; - + /* create render and render result */ oglrender->re= RE_NewRender(scene->id.name); RE_InitState(oglrender->re, NULL, &scene->r, sizex, sizey, NULL); - + rr= RE_AcquireResultWrite(oglrender->re); if(rr->rectf==NULL) rr->rectf= MEM_mallocN(sizeof(float)*4*sizex*sizex, "32 bits rects"); RE_ReleaseResult(oglrender->re); - + return 1; } static void screen_opengl_render_end(bContext *C, OGLRender *oglrender) { Scene *scene= oglrender->scene; - + if(oglrender->mh) { if(BKE_imtype_is_movie(scene->r.imtype)) oglrender->mh->end_movie(); } - + if(oglrender->timer) { scene->r.cfra= oglrender->cfrao; scene_update_for_newframe(scene, scene->lay); - + WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), oglrender->timer); } - + WM_cursor_wait(0); WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene); - + GPU_offscreen_free(oglrender->ofs); - + MEM_freeN(oglrender); } static int screen_opengl_render_cancel(bContext *C, wmOperator *op) { screen_opengl_render_end(C, op->customdata); - + return OPERATOR_CANCELLED; } @@ -3276,7 +3313,7 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even char name[FILE_MAXDIR+FILE_MAXFILE]; unsigned int lay; int ok= 0; - + switch(event->type) { case ESCKEY: /* cancel */ @@ -3290,26 +3327,26 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even /* nothing to do */ return OPERATOR_RUNNING_MODAL; } - + /* go to next frame */ while(CFRAnfra) { if(scene->lay & 0xFF000000) lay= scene->lay & 0xFF000000; else lay= scene->lay; - + scene_update_for_newframe(scene, lay); CFRA++; } - + scene_update_for_newframe(scene, scene->lay); - + /* render into offscreen buffer */ screen_opengl_render_apply(oglrender); /* save to disk */ ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock); - + if(ibuf) { if(BKE_imtype_is_movie(scene->r.imtype)) { oglrender->mh->append_movie(&scene->r, CFRA, (int*)ibuf->rect, oglrender->sizex, oglrender->sizey); @@ -3324,31 +3361,31 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even else printf("saved: %s", name); } } - + BKE_image_release_ibuf(oglrender->ima, lock); - + /* movie stats prints have no line break */ printf("\n"); /* go to next frame */ oglrender->nfra += scene->r.frame_step; scene->r.cfra++; - + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene); - + /* stop at the end or on error */ if(scene->r.cfra > EFRA || !ok) { screen_opengl_render_end(C, op->customdata); return OPERATOR_FINISHED; } - + return OPERATOR_RUNNING_MODAL; } static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *event) { int anim= RNA_boolean_get(op->ptr, "animation"); - + if(!screen_opengl_render_init(C, op)) return OPERATOR_CANCELLED; @@ -3357,30 +3394,30 @@ static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *eve screen_opengl_render_apply(op->customdata); screen_opengl_render_end(C, op->customdata); screen_set_image_output(C, event->x, event->y); - + return OPERATOR_FINISHED; } else { /* initialize animation */ OGLRender *oglrender; Scene *scene; - + oglrender= op->customdata; scene= oglrender->scene; - + oglrender->mh= BKE_get_movie_handle(scene->r.imtype); if(BKE_imtype_is_movie(scene->r.imtype)) oglrender->mh->start_movie(scene, &scene->r, oglrender->sizex, oglrender->sizey); - + oglrender->cfrao= scene->r.cfra; oglrender->nfra= SFRA; scene->r.cfra= SFRA; - + WM_event_add_modal_handler(C, op); oglrender->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); - + screen_set_image_output(C, event->x, event->y); - + return OPERATOR_RUNNING_MODAL; } } @@ -3425,7 +3462,7 @@ static int render_view_cancel_exec(bContext *C, wmOperator *unused) } else ED_area_prevspace(C, sa); - + return OPERATOR_FINISHED; } else if(sima->flag & SI_FULLWINDOW) { @@ -3433,7 +3470,7 @@ static int render_view_cancel_exec(bContext *C, wmOperator *unused) ed_screen_fullarea(C, win, sa); return OPERATOR_FINISHED; } - + return OPERATOR_PASS_THROUGH; } @@ -3454,7 +3491,7 @@ static void SCREEN_OT_render_view_cancel(struct wmOperatorType *ot) static int render_view_show_invoke(bContext *C, wmOperator *unused, wmEvent *event) { ScrArea *sa= find_area_showing_r_result(C); - + /* test if we have a temp screen in front */ if(CTX_wm_window(C)->screen->full==SCREENTEMP) { wm_window_lower(CTX_wm_window(C)); @@ -3502,7 +3539,7 @@ static int fullscreen_back_exec(bContext *C, wmOperator *op) { bScreen *screen = CTX_wm_screen(C); ScrArea *sa=NULL; - + /* search current screen for 'fullscreen' areas */ for (sa=screen->areabase.first; sa; sa=sa->next) { if (sa->full) break; @@ -3574,10 +3611,10 @@ static int screen_new_exec(bContext *C, wmOperator *op) { wmWindow *win= CTX_wm_window(C); bScreen *sc= CTX_wm_screen(C); - + sc= ED_screen_duplicate(win, sc); WM_event_add_notifier(C, NC_SCREEN|ND_SCREENBROWSE, sc); - + return OPERATOR_FINISHED; } @@ -3590,7 +3627,7 @@ void SCREEN_OT_new(wmOperatorType *ot) /* api callbacks */ ot->exec= screen_new_exec; - + /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } @@ -3600,9 +3637,9 @@ void SCREEN_OT_new(wmOperatorType *ot) static int screen_delete_exec(bContext *C, wmOperator *op) { bScreen *sc= CTX_wm_screen(C); - + WM_event_add_notifier(C, NC_SCREEN|ND_SCREENDELETE, sc); - + return OPERATOR_FINISHED; } @@ -3615,7 +3652,7 @@ void SCREEN_OT_delete(wmOperatorType *ot) /* api callbacks */ ot->exec= screen_delete_exec; - + /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } @@ -3627,17 +3664,17 @@ static int scene_new_exec(bContext *C, wmOperator *op) Scene *newscene, *scene= CTX_data_scene(C); Main *bmain= CTX_data_main(C); int type= RNA_enum_get(op->ptr, "type"); - + newscene= copy_scene(bmain, scene, type); - + /* these can't be handled in blenkernel curently, so do them here */ if(type == SCE_COPY_LINK_DATA) ED_object_single_users(newscene, 0); else if(type == SCE_COPY_FULL) ED_object_single_users(newscene, 1); - + WM_event_add_notifier(C, NC_SCENE|ND_SCENEBROWSE, newscene); - + return OPERATOR_FINISHED; } @@ -3649,7 +3686,7 @@ void SCENE_OT_new(wmOperatorType *ot) {SCE_COPY_LINK_DATA, "LINK_OBJECT_DATA", 0, "Link Object Data", "Copy objects linked to data from the current scene."}, {SCE_COPY_FULL, "FULL_COPY", 0, "Full Copy", "Make a full copy of the current scene."}, {0, NULL, 0, NULL, NULL}}; - + /* identifiers */ ot->name= "New Scene"; ot->description= "Add new scene by type."; @@ -3658,10 +3695,10 @@ void SCENE_OT_new(wmOperatorType *ot) /* api callbacks */ ot->exec= scene_new_exec; ot->invoke= WM_menu_invoke; - + /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - + /* properties */ RNA_def_enum(ot->srna, "type", type_items, 0, "Type", ""); } @@ -3671,9 +3708,9 @@ void SCENE_OT_new(wmOperatorType *ot) static int scene_delete_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); - + WM_event_add_notifier(C, NC_SCENE|ND_SCENEDELETE, scene); - + return OPERATOR_FINISHED; } @@ -3686,7 +3723,7 @@ void SCENE_OT_delete(wmOperatorType *ot) /* api callbacks */ ot->exec= scene_delete_exec; - + /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } @@ -3734,13 +3771,13 @@ void ED_operatortypes_screen(void) WM_operatortype_append(SCREEN_OT_render_view_cancel); WM_operatortype_append(SCREEN_OT_render_view_show); WM_operatortype_append(SCREEN_OT_opengl_render); - + /* new/delete */ WM_operatortype_append(SCREEN_OT_new); WM_operatortype_append(SCREEN_OT_delete); WM_operatortype_append(SCENE_OT_new); WM_operatortype_append(SCENE_OT_delete); - + /* tools shared by more space types */ WM_operatortype_append(ED_OT_undo); WM_operatortype_append(ED_OT_redo); @@ -3764,12 +3801,12 @@ static void keymap_modal_set(wmKeyConfig *keyconf) WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, KM_MODAL_APPLY); WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, KM_MODAL_APPLY); WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, KM_MODAL_APPLY); - + WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, KM_MODAL_STEP10); WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, KM_MODAL_STEP10_OFF); WM_modalkeymap_assign(keymap, "SCREEN_OT_area_move"); - + } /* called in spacetypes.c */ @@ -3783,16 +3820,16 @@ void ED_keymap_screen(wmKeyConfig *keyconf) RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "modifier", 0); RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "modifier", 1); RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "modifier", 2); - + /* screen tools */ WM_keymap_verify_item(keymap, "SCREEN_OT_area_split", EVT_ACTIONZONE_AREA, 0, 0, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_area_join", EVT_ACTIONZONE_AREA, 0, 0, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_area_dupli", EVT_ACTIONZONE_AREA, 0, KM_SHIFT, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_area_swap", EVT_ACTIONZONE_AREA, 0, KM_ALT, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_region_scale", EVT_ACTIONZONE_REGION, 0, 0, 0); - /* area move after action zones */ + /* area move after action zones */ WM_keymap_verify_item(keymap, "SCREEN_OT_area_move", LEFTMOUSE, KM_PRESS, 0, 0); - + /* Header Editing ------------------------------------------------ */ keymap= WM_keymap_find(keyconf, "Header", 0, 0); @@ -3812,29 +3849,29 @@ void ED_keymap_screen(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", SPACEKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "SCREEN_OT_screenshot", F3KEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "SCREEN_OT_screencast", F3KEY, KM_PRESS, KM_ALT, 0); - - /* tests */ + + /* tests */ WM_keymap_add_item(keymap, "SCREEN_OT_region_quadview", QKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_repeat_history", F3KEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SCREEN_OT_repeat_last", RKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_region_flip", F5KEY, KM_PRESS, 0, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_redo_last", F6KEY, KM_PRESS, 0, 0); WM_keymap_verify_item(keymap, "WM_OT_reload_scripts", F8KEY, KM_PRESS, 0, 0); - + /* files */ WM_keymap_add_item(keymap, "FILE_OT_execute", RETKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "FILE_OT_execute", PADENTER, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "FILE_OT_cancel", ESCKEY, KM_PRESS, 0, 0); /* undo */ - #ifdef __APPLE__ +#ifdef __APPLE__ WM_keymap_add_item(keymap, "ED_OT_undo", ZKEY, KM_PRESS, KM_OSKEY, 0); WM_keymap_add_item(keymap, "ED_OT_redo", ZKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0); - #endif +#endif WM_keymap_add_item(keymap, "ED_OT_undo", ZKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "ED_OT_redo", ZKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); - + /* render */ WM_keymap_add_item(keymap, "SCREEN_OT_render", F12KEY, KM_PRESS, 0, 0); RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_render", F12KEY, KM_PRESS, KM_CTRL, 0)->ptr, "animation", 1); @@ -3842,9 +3879,9 @@ void ED_keymap_screen(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SCREEN_OT_render_view_show", F11KEY, KM_PRESS, 0, 0); /* user prefs */ - #ifdef __APPLE__ +#ifdef __APPLE__ WM_keymap_add_item(keymap, "SCREEN_OT_userpref_show", COMMAKEY, KM_PRESS, KM_OSKEY, 0); - #endif +#endif WM_keymap_add_item(keymap, "SCREEN_OT_userpref_show", UKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); @@ -3869,7 +3906,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", KKEY, KM_PRESS, 0, LKEY); RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", AKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0)->ptr, "reverse", 1); WM_keymap_add_item(keymap, "SCREEN_OT_animation_cancel", ESCKEY, KM_PRESS, 0, 0); - + keymap_modal_set(keyconf); } -- cgit v1.2.3 From 7fcb5d33ffec43da4f98d4a84b1cbb35d068c9a5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 09:38:58 +0000 Subject: values that had units set would not be coerced into Mathutils types by the python api. eg. scene.cursor_location wasnt a vector --- source/blender/makesrna/RNA_types.h | 5 +++-- source/blender/python/intern/bpy_rna.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 18fb2700bbf..e771b495b96 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -84,8 +84,9 @@ typedef enum PropertyUnit { PROP_UNIT_ACCELERATION = (8<<16) /* m/(s^2) */ } PropertyUnit; -#define RNA_SUBTYPE_UNIT(subtype) (subtype & 0x00FF0000) -#define RNA_SUBTYPE_UNIT_VALUE(subtype) (subtype>>16) +#define RNA_SUBTYPE_UNIT(subtype) ((subtype) & 0x00FF0000) +#define RNA_SUBTYPE_VALUE(subtype) ((subtype) & ~0x00FF0000) +#define RNA_SUBTYPE_UNIT_VALUE(subtype) ((subtype)>>16) #define RNA_ENUM_BITFLAG_SIZE 32 diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 92bd686114d..7427fc73d94 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -158,7 +158,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) if (totdim == 1 || (totdim == 2 && subtype == PROP_MATRIX)) { ret = pyrna_prop_CreatePyObject(ptr, prop); /* owned by the Mathutils PyObject */ - switch(RNA_property_subtype(prop)) { + switch(RNA_SUBTYPE_VALUE(RNA_property_subtype(prop))) { case PROP_TRANSLATION: case PROP_DIRECTION: case PROP_VELOCITY: -- cgit v1.2.3 From 9c5019a9a9acd33c4757a0a1d4f0944c92e57ffd Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 10 Dec 2009 09:58:10 +0000 Subject: Notifier related fixes: [#20319] 3D View - need 3D cursor notifier [#20321] Views not receiving the NC_ID notifier --- source/blender/editors/space_action/space_action.c | 15 +++++++++++++++ source/blender/editors/space_graph/space_graph.c | 7 +++++++ source/blender/editors/space_logic/space_logic.c | 7 +++++++ source/blender/editors/space_nla/space_nla.c | 14 ++++++++++++++ source/blender/editors/space_node/space_node.c | 7 +++++++ source/blender/editors/space_sequencer/space_sequencer.c | 15 ++++++++++++++- source/blender/editors/space_view3d/space_view3d.c | 4 ++-- source/blender/editors/space_view3d/view3d_edit.c | 12 ++++-------- 8 files changed, 70 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 0bf3e3f70cb..0cbc2ce9078 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -291,6 +291,13 @@ static void action_channel_area_listener(ARegion *ar, wmNotifier *wmn) break; } break; + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; default: if(wmn->data==ND_KEYS) ED_region_tag_redraw(ar); @@ -331,6 +338,14 @@ static void action_main_area_listener(ARegion *ar, wmNotifier *wmn) break; } break; + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; + default: if(wmn->data==ND_KEYS) ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index f6d25bd7285..d77caa4c0e3 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -407,6 +407,13 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn) break; } break; + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; default: if(wmn->data==ND_KEYS) ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c index f9fdbb92db9..ed8c7f2e4e7 100644 --- a/source/blender/editors/space_logic/space_logic.c +++ b/source/blender/editors/space_logic/space_logic.c @@ -217,6 +217,13 @@ static void logic_listener(ARegion *ar, wmNotifier *wmn) break; case NC_OBJECT: break; + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; } } diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c index 572ad44f680..8aceb647fe2 100644 --- a/source/blender/editors/space_nla/space_nla.c +++ b/source/blender/editors/space_nla/space_nla.c @@ -422,6 +422,13 @@ static void nla_main_area_listener(ARegion *ar, wmNotifier *wmn) break; } break; + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; default: if(wmn->data==ND_KEYS) ED_region_tag_redraw(ar); @@ -451,6 +458,13 @@ static void nla_channel_area_listener(ARegion *ar, wmNotifier *wmn) break; } break; + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; default: if(wmn->data==ND_KEYS) ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index b0ce1a6bd3e..64db1520ba1 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -314,6 +314,13 @@ static void node_region_listener(ARegion *ar, wmNotifier *wmn) case NC_NODE: ED_region_tag_redraw(ar); break; + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; } } diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index 00df314df6c..3f23cdfc1a5 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -241,6 +241,13 @@ static void sequencer_main_area_listener(ARegion *ar, wmNotifier *wmn) if(wmn->data == ND_SPACE_SEQUENCER) ED_region_tag_redraw(ar); break; + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; } } @@ -276,7 +283,13 @@ static void sequencer_buttons_area_listener(ARegion *ar, wmNotifier *wmn) if(wmn->data == ND_SPACE_SEQUENCER) ED_region_tag_redraw(ar); break; - + case NC_ID: + switch(wmn->data) { + case ND_ID_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; } } /* ************************************* */ diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index db617473291..bd277f68513 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -452,12 +452,12 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) case ND_OB_ACTIVE: case ND_OB_SELECT: case ND_LAYER: - ED_region_tag_redraw(ar); - break; case ND_MODE: ED_region_tag_redraw(ar); break; } + if (wmn->action == NA_EDITED) + ED_region_tag_redraw(ar); break; case NC_OBJECT: switch(wmn->data) { diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index ad40a7266af..fd20b534dd7 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -2108,14 +2108,10 @@ static int set_3dcursor_invoke(bContext *C, wmOperator *op, wmEvent *event) fp[2]= (rv3d->persinv[0][2]*dx + rv3d->persinv[1][2]*dy+ rv3d->persinv[2][2]*fz)-rv3d->ofs[2]; } -// if(lr_click) { - // XXX if(obedit->type==OB_MESH) add_click_mesh(); - // else if ELEM(obedit->type, OB_CURVE, OB_SURF) addvert_Nurb(0); - // else if (obedit->type==OB_ARMATURE) addvert_armature(); -// VECCOPY(fp, oldcurs); -// } - // XXX notifier for scene */ - ED_area_tag_redraw(CTX_wm_area(C)); + if(v3d && v3d->localvd) + WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, v3d); + else + WM_event_add_notifier(C, NC_SCENE|NA_EDITED, scene); return OPERATOR_FINISHED; } -- cgit v1.2.3 From b5740b0e779e76d599f819cf106009aea663d0bf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 10:23:53 +0000 Subject: remove ICON prefix from the enum, for python this is redundant eg. layout.prop("setting", icon='ICON_BLAH_BLAH') Also reverted previous commit, the cursor subtype just needed to be added to the switch statement. --- source/blender/editors/include/UI_icons.h | 20 ++++++++++---------- source/blender/editors/interface/interface_icons.c | 20 ++++++++++---------- .../blender/editors/space_buttons/buttons_context.c | 2 +- source/blender/makesrna/intern/rna_ui_api.c | 2 +- source/blender/python/intern/bpy_rna.c | 3 ++- 5 files changed, 24 insertions(+), 23 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h index f6de5138214..01c15a7d303 100644 --- a/source/blender/editors/include/UI_icons.h +++ b/source/blender/editors/include/UI_icons.h @@ -871,14 +871,14 @@ DEF_ICON(ICON_BLANK346b) /* vector icons */ -DEF_ICON(VICON_VIEW3D) -DEF_ICON(VICON_EDIT) -DEF_ICON(VICON_EDITMODE_DEHLT) -DEF_ICON(VICON_EDITMODE_HLT) -DEF_ICON(VICON_DISCLOSURE_TRI_RIGHT) -DEF_ICON(VICON_DISCLOSURE_TRI_DOWN) -DEF_ICON(VICON_MOVE_UP) -DEF_ICON(VICON_MOVE_DOWN) -DEF_ICON(VICON_X) -DEF_ICON(VICON_SMALL_TRI_RIGHT) +DEF_ICON(VICO_VIEW3D_VEC) +DEF_ICON(VICO_EDIT_VEC) +DEF_ICON(VICO_EDITMODE_DEHLT) +DEF_ICON(VICO_EDITMODE_HLT) +DEF_ICON(VICO_DISCLOSURE_TRI_RIGHT_VEC) +DEF_ICON(VICO_DISCLOSURE_TRI_DOWN_VEC) +DEF_ICON(VICO_MOVE_UP_VEC) +DEF_ICON(VICO_MOVE_DOWN_VEC) +DEF_ICON(VICO_X_VEC) +DEF_ICON(VICO_SMALL_TRI_RIGHT_VEC) diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c index 23a0ff7d223..e219198da0f 100644 --- a/source/blender/editors/interface/interface_icons.c +++ b/source/blender/editors/interface/interface_icons.c @@ -528,16 +528,16 @@ static void init_internal_icons() } } - def_internal_vicon(VICON_VIEW3D, vicon_view3d_draw); - def_internal_vicon(VICON_EDIT, vicon_edit_draw); - def_internal_vicon(VICON_EDITMODE_DEHLT, vicon_editmode_dehlt_draw); - def_internal_vicon(VICON_EDITMODE_HLT, vicon_editmode_hlt_draw); - def_internal_vicon(VICON_DISCLOSURE_TRI_RIGHT, vicon_disclosure_tri_right_draw); - def_internal_vicon(VICON_DISCLOSURE_TRI_DOWN, vicon_disclosure_tri_down_draw); - def_internal_vicon(VICON_MOVE_UP, vicon_move_up_draw); - def_internal_vicon(VICON_MOVE_DOWN, vicon_move_down_draw); - def_internal_vicon(VICON_X, vicon_x_draw); - def_internal_vicon(VICON_SMALL_TRI_RIGHT, vicon_small_tri_right_draw); + def_internal_vicon(VICO_VIEW3D_VEC, vicon_view3d_draw); + def_internal_vicon(VICO_EDIT_VEC, vicon_edit_draw); + def_internal_vicon(VICO_EDITMODE_DEHLT, vicon_editmode_dehlt_draw); + def_internal_vicon(VICO_EDITMODE_HLT, vicon_editmode_hlt_draw); + def_internal_vicon(VICO_DISCLOSURE_TRI_RIGHT_VEC, vicon_disclosure_tri_right_draw); + def_internal_vicon(VICO_DISCLOSURE_TRI_DOWN_VEC, vicon_disclosure_tri_down_draw); + def_internal_vicon(VICO_MOVE_UP_VEC, vicon_move_up_draw); + def_internal_vicon(VICO_MOVE_DOWN_VEC, vicon_move_down_draw); + def_internal_vicon(VICO_X_VEC, vicon_x_draw); + def_internal_vicon(VICO_SMALL_TRI_RIGHT_VEC, vicon_small_tri_right_draw); IMB_freeImBuf(bbuf); } diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 0e2769a3557..ade906ce678 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -767,7 +767,7 @@ void buttons_context_draw(const bContext *C, uiLayout *layout) ptr= &path->ptr[a]; if(a != 0) - uiItemL(row, "", VICON_SMALL_TRI_RIGHT); + uiItemL(row, "", VICO_SMALL_TRI_RIGHT_VEC); if(ptr->data) { icon= RNA_struct_ui_icon(ptr->type); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 6086cdfdec2..5880e1d7ae6 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -64,7 +64,7 @@ static PointerRNA rna_uiItemO(uiLayout *layout, char *name, int icon, char *opna #else -#define DEF_ICON(name) {name, #name, 0, #name, ""}, +#define DEF_ICON(name) {name, (#name)+5, 0, (#name)+5, ""}, static EnumPropertyItem icon_items[] = { #include "UI_icons.h" {0, NULL, 0, NULL, NULL}}; diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 7427fc73d94..cfd455e045c 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -158,12 +158,13 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) if (totdim == 1 || (totdim == 2 && subtype == PROP_MATRIX)) { ret = pyrna_prop_CreatePyObject(ptr, prop); /* owned by the Mathutils PyObject */ - switch(RNA_SUBTYPE_VALUE(RNA_property_subtype(prop))) { + switch(RNA_property_subtype(prop)) { case PROP_TRANSLATION: case PROP_DIRECTION: case PROP_VELOCITY: case PROP_ACCELERATION: case PROP_XYZ: + case PROP_XYZ|PROP_UNIT_LENGTH: if(len>=2 && len <= 4) { PyObject *vec_cb= newVectorObject_cb(ret, len, mathutils_rna_array_cb_index, FALSE); Py_DECREF(ret); /* the vector owns now */ -- cgit v1.2.3 From 9358af05d09817fcba3c35e34bcdf8c6c08c3be8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 10:36:32 +0000 Subject: rename operators TFM_OT_* --> TRANSFORM_OT_* --- source/blender/editors/armature/armature_ops.c | 12 +- source/blender/editors/curve/curve_ops.c | 4 +- source/blender/editors/curve/editcurve.c | 4 +- source/blender/editors/gpencil/gpencil_edit.c | 4 - source/blender/editors/mesh/editmesh_tools.c | 2 +- source/blender/editors/mesh/mesh_ops.c | 10 +- source/blender/editors/metaball/mball_edit.c | 2 +- source/blender/editors/object/object_ops.c | 4 +- source/blender/editors/space_action/action_edit.c | 2 +- source/blender/editors/space_graph/graph_edit.c | 2 +- source/blender/editors/space_nla/nla_edit.c | 2 +- source/blender/editors/space_node/node_ops.c | 2 +- .../editors/space_sequencer/sequencer_edit.c | 2 +- source/blender/editors/transform/transform.c | 24 +-- source/blender/editors/transform/transform.h | 2 +- .../editors/transform/transform_manipulator.c | 8 +- source/blender/editors/transform/transform_ops.c | 178 ++++++++++----------- 17 files changed, 130 insertions(+), 134 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c index 7caadf532e5..a3c35413680 100644 --- a/source/blender/editors/armature/armature_ops.c +++ b/source/blender/editors/armature/armature_ops.c @@ -164,13 +164,13 @@ void ED_operatormacros_armature(void) ot= WM_operatortype_append_macro("ARMATURE_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "ARMATURE_OT_duplicate"); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); ot= WM_operatortype_append_macro("ARMATURE_OT_extrude_move", "Extrude", OPTYPE_UNDO|OPTYPE_REGISTER); otmacro=WM_operatortype_macro_define(ot, "ARMATURE_OT_extrude"); RNA_enum_set(otmacro->ptr, "forked", 0); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); // XXX would it be nicer to just be able to have standard extrude_move, but set the forked property separate? @@ -178,7 +178,7 @@ void ED_operatormacros_armature(void) ot= WM_operatortype_append_macro("ARMATURE_OT_extrude_forked", "Extrude Forked", OPTYPE_UNDO|OPTYPE_REGISTER); otmacro=WM_operatortype_macro_define(ot, "ARMATURE_OT_extrude"); RNA_enum_set(otmacro->ptr, "forked", 1); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); } @@ -261,10 +261,10 @@ void ED_keymap_armature(wmKeyConfig *keyconf) /* special transforms: */ /* 1) envelope/b-bone size */ - kmi= WM_keymap_add_item(keymap, "TFM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0); RNA_enum_set(kmi->ptr, "mode", TFM_BONESIZE); /* 2) set roll */ - kmi= WM_keymap_add_item(keymap, "TFM_OT_transform", RKEY, KM_PRESS, KM_CTRL, 0); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", RKEY, KM_PRESS, KM_CTRL, 0); RNA_enum_set(kmi->ptr, "mode", TFM_BONE_ROLL); /* menus */ @@ -335,7 +335,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf) /* special transforms: */ /* 1) envelope/b-bone size */ - kmi= WM_keymap_add_item(keymap, "TFM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0); + kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0); RNA_enum_set(kmi->ptr, "mode", TFM_BONESIZE); // XXX this should probably be in screen instead... here for testing purposes in the meantime... - Aligorith diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c index c54739902d0..3f59e295fe4 100644 --- a/source/blender/editors/curve/curve_ops.c +++ b/source/blender/editors/curve/curve_ops.c @@ -238,8 +238,8 @@ void ED_keymap_curve(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "CURVE_OT_delete", DELKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "CURVE_OT_tilt_clear", TKEY, KM_PRESS, KM_ALT, 0); - RNA_enum_set(WM_keymap_add_item(keymap, "TFM_OT_transform", TKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", TFM_TILT); - RNA_enum_set(WM_keymap_add_item(keymap, "TFM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_CURVE_SHRINKFATTEN); + RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", TFM_TILT); + RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_CURVE_SHRINKFATTEN); RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", 1); RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", HKEY, KM_PRESS, 0, 0)->ptr, "type", 3); RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", VKEY, KM_PRESS, 0, 0)->ptr, "type", 2); diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index a139a75f844..aeeb8dffa28 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -3539,7 +3539,7 @@ static int extrude_invoke(bContext *C, wmOperator *op, wmEvent *event) { if(extrude_exec(C, op) == OPERATOR_FINISHED) { RNA_int_set(op->ptr, "mode", TFM_TRANSLATION); - WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); return OPERATOR_FINISHED; } @@ -4294,7 +4294,7 @@ static int duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event) duplicate_exec(C, op); RNA_int_set(op->ptr, "mode", TFM_TRANSLATION); - WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index 2f41d90b37c..e5a0cd0f8cb 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -493,7 +493,6 @@ static void gp_layer_to_curve (bContext *C, bGPdata *gpd, bGPDlayer *gpl, short Scene *scene= CTX_data_scene(C); bGPDframe *gpf= gpencil_layer_getframe(gpl, CFRA, 0); bGPDstroke *gps; - Base *base= BASACT; Object *ob; Curve *cu; @@ -529,9 +528,6 @@ static void gp_layer_to_curve (bContext *C, bGPdata *gpd, bGPDlayer *gpl, short break; } } - - /* restore old active object */ - // BASACT= base; // removing since this is expected new objects are active. } /* --- */ diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 089a35f8402..b283070d454 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -4985,7 +4985,7 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event) // RNA_enum_set(op->ptr, "proportional", 0); // RNA_boolean_set(op->ptr, "mirror", 0); -// WM_operator_name_call(C, "TFM_OT_translate", WM_OP_INVOKE_REGION_WIN, op->ptr); +// WM_operator_name_call(C, "TRANSFORM_OT_translate", WM_OP_INVOKE_REGION_WIN, op->ptr); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index 9a44f5960df..5f54aa041e3 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -173,29 +173,29 @@ void ED_operatormacros_mesh(void) ot= WM_operatortype_append_macro("MESH_OT_loopcut_slide", "Loop Cut and Slide", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "MESH_OT_loopcut"); - WM_operatortype_macro_define(ot, "TFM_OT_edge_slide"); + WM_operatortype_macro_define(ot, "TRANSFORM_OT_edge_slide"); ot= WM_operatortype_append_macro("MESH_OT_duplicate_move", "Add Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "MESH_OT_duplicate"); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); ot= WM_operatortype_append_macro("MESH_OT_rip_move", "Rip", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "MESH_OT_rip"); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); ot= WM_operatortype_append_macro("MESH_OT_extrude_move_along_normals", "Extrude Along Normals", OPTYPE_UNDO|OPTYPE_REGISTER); ot->poll = ED_operator_editmesh_face_select; /* restrict extrude along normals to face select */ WM_operatortype_macro_define(ot, "MESH_OT_extrude"); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); RNA_enum_set(otmacro->ptr, "constraint_orientation", V3D_MANIP_NORMAL); RNA_boolean_set_array(otmacro->ptr, "constraint_axis", constraint_axis); ot= WM_operatortype_append_macro("MESH_OT_extrude_move", "Extrude", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "MESH_OT_extrude"); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); } diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c index d4ad833d11e..d8e36a503f1 100644 --- a/source/blender/editors/metaball/mball_edit.c +++ b/source/blender/editors/metaball/mball_edit.c @@ -370,7 +370,7 @@ static int duplicate_metaelems_invoke(bContext *C, wmOperator *op, wmEvent *even if (retv == OPERATOR_FINISHED) { RNA_int_set(op->ptr, "mode", TFM_TRANSLATION); - WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); } return retv; diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 49c947f52c8..66a03d4aec5 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -203,7 +203,7 @@ void ED_operatormacros_object(void) ot= WM_operatortype_append_macro("OBJECT_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); if(ot) { WM_operatortype_macro_define(ot, "OBJECT_OT_duplicate"); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", PROP_EDIT_OFF); } @@ -212,7 +212,7 @@ void ED_operatormacros_object(void) if(ot) { otmacro= WM_operatortype_macro_define(ot, "OBJECT_OT_duplicate"); RNA_boolean_set(otmacro->ptr, "linked", 1); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", PROP_EDIT_OFF); } } diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 133d48a5ecc..c5da96267e1 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -572,7 +572,7 @@ static int actkeys_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event) actkeys_duplicate_exec(C, op); RNA_int_set(op->ptr, "mode", TFM_TIME_TRANSLATE); - WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 532c2fe5faa..6e488678f2b 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -754,7 +754,7 @@ static int graphkeys_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *even graphkeys_duplicate_exec(C, op); RNA_int_set(op->ptr, "mode", TFM_TRANSLATION); - WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index 0ae3a347872..4422bc2d158 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -679,7 +679,7 @@ static int nlaedit_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event) nlaedit_duplicate_exec(C, op); RNA_int_set(op->ptr, "mode", TFM_TIME_TRANSLATE); // XXX - WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index fae9afacbcd..2a32ce6b65a 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -83,7 +83,7 @@ void ED_operatormacros_node(void) ot= WM_operatortype_append_macro("NODE_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "NODE_OT_duplicate"); - otmacro= WM_operatortype_macro_define(ot, "TFM_OT_translate"); + otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); } diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 96d4ed06ead..c8f47e1a3e8 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1805,7 +1805,7 @@ static int sequencer_add_duplicate_invoke(bContext *C, wmOperator *op, wmEvent * sequencer_add_duplicate_exec(C, op); RNA_int_set(op->ptr, "mode", TFM_TRANSLATION); - WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 728c4eae676..d6088648eb2 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -569,18 +569,18 @@ void transform_modal_keymap(wmKeyConfig *keyconf) WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ALT, 0, TFM_MODAL_REMOVE_SNAP); /* assign map to operators */ - WM_modalkeymap_assign(keymap, "TFM_OT_transform"); - WM_modalkeymap_assign(keymap, "TFM_OT_translate"); - WM_modalkeymap_assign(keymap, "TFM_OT_rotate"); - WM_modalkeymap_assign(keymap, "TFM_OT_tosphere"); - WM_modalkeymap_assign(keymap, "TFM_OT_resize"); - WM_modalkeymap_assign(keymap, "TFM_OT_shear"); - WM_modalkeymap_assign(keymap, "TFM_OT_warp"); - WM_modalkeymap_assign(keymap, "TFM_OT_shrink_fatten"); - WM_modalkeymap_assign(keymap, "TFM_OT_tilt"); - WM_modalkeymap_assign(keymap, "TFM_OT_trackball"); - WM_modalkeymap_assign(keymap, "TFM_OT_mirror"); - WM_modalkeymap_assign(keymap, "TFM_OT_edge_slide"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_transform"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_translate"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_rotate"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_tosphere"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_resize"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_shear"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_warp"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_shrink_fatten"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_tilt"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_trackball"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_mirror"); + WM_modalkeymap_assign(keymap, "TRANSFORM_OT_edge_slide"); } diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 9f40b6f7288..7d9c16ada9b 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -429,7 +429,7 @@ typedef struct TransInfo { #define POINT_INIT 4 #define MULTI_POINTS 8 -void TFM_OT_transform(struct wmOperatorType *ot); +void TRANSFORM_OT_transform(struct wmOperatorType *ot); int initTransform(struct bContext *C, struct TransInfo *t, struct wmOperator *op, struct wmEvent *event, int mode); void saveTransform(struct bContext *C, struct TransInfo *t, struct wmOperator *op); diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c index 7530e015496..21e1ea42064 100644 --- a/source/blender/editors/transform/transform_manipulator.c +++ b/source/blender/editors/transform/transform_manipulator.c @@ -1743,7 +1743,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op) break; } RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis); - WM_operator_name_call(C, "TFM_OT_translate", WM_OP_INVOKE_DEFAULT, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_translate", WM_OP_INVOKE_DEFAULT, op->ptr); } else if (drawflags & MAN_SCALE_C) { switch(drawflags) { @@ -1773,10 +1773,10 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op) break; } RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis); - WM_operator_name_call(C, "TFM_OT_resize", WM_OP_INVOKE_DEFAULT, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_resize", WM_OP_INVOKE_DEFAULT, op->ptr); } else if (drawflags == MAN_ROT_T) { /* trackball need special case, init is different */ - WM_operator_name_call(C, "TFM_OT_trackball", WM_OP_INVOKE_DEFAULT, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_trackball", WM_OP_INVOKE_DEFAULT, op->ptr); } else if (drawflags & MAN_ROT_C) { switch(drawflags) { @@ -1791,7 +1791,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op) break; } RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis); - WM_operator_name_call(C, "TFM_OT_rotate", WM_OP_INVOKE_DEFAULT, op->ptr); + WM_operator_name_call(C, "TRANSFORM_OT_rotate", WM_OP_INVOKE_DEFAULT, op->ptr); } } /* after transform, restore drawflags */ diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index ad4462a74cf..f794d79bdd9 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -55,17 +55,17 @@ typedef struct TransformModeItem static float VecOne[3] = {1, 1, 1}; -char OP_TRANSLATION[] = "TFM_OT_translate"; -char OP_ROTATION[] = "TFM_OT_rotate"; -char OP_TOSPHERE[] = "TFM_OT_tosphere"; -char OP_RESIZE[] = "TFM_OT_resize"; -char OP_SHEAR[] = "TFM_OT_shear"; -char OP_WARP[] = "TFM_OT_warp"; -char OP_SHRINK_FATTEN[] = "TFM_OT_shrink_fatten"; -char OP_TILT[] = "TFM_OT_tilt"; -char OP_TRACKBALL[] = "TFM_OT_trackball"; -char OP_MIRROR[] = "TFM_OT_mirror"; -char OP_EDGE_SLIDE[] = "TFM_OT_edge_slide"; +char OP_TRANSLATION[] = "TRANSFORM_OT_translate"; +char OP_ROTATION[] = "TRANSFORM_OT_rotate"; +char OP_TOSPHERE[] = "TRANSFORM_OT_tosphere"; +char OP_RESIZE[] = "TRANSFORM_OT_resize"; +char OP_SHEAR[] = "TRANSFORM_OT_shear"; +char OP_WARP[] = "TRANSFORM_OT_warp"; +char OP_SHRINK_FATTEN[] = "TRANSFORM_OT_shrink_fatten"; +char OP_TILT[] = "TRANSFORM_OT_tilt"; +char OP_TRACKBALL[] = "TRANSFORM_OT_trackball"; +char OP_MIRROR[] = "TRANSFORM_OT_mirror"; +char OP_EDGE_SLIDE[] = "TRANSFORM_OT_edge_slide"; TransformModeItem transform_modes[] = @@ -95,12 +95,12 @@ static int snap_type_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void TFM_OT_snap_type(wmOperatorType *ot) +void TRANSFORM_OT_snap_type(wmOperatorType *ot) { /* identifiers */ ot->name= "Snap Type"; ot->description= "Set the snap element type."; - ot->idname= "TFM_OT_snap_type"; + ot->idname= "TRANSFORM_OT_snap_type"; /* api callbacks */ ot->invoke= WM_menu_invoke; @@ -134,20 +134,20 @@ static int select_orientation_invoke(bContext *C, wmOperator *op, wmEvent *event pup= uiPupMenuBegin(C, "Orientation", 0); layout= uiPupMenuLayout(pup); - uiItemsEnumO(layout, "TFM_OT_select_orientation", "orientation"); + uiItemsEnumO(layout, "TRANSFORM_OT_select_orientation", "orientation"); uiPupMenuEnd(C, pup); return OPERATOR_CANCELLED; } -void TFM_OT_select_orientation(struct wmOperatorType *ot) +void TRANSFORM_OT_select_orientation(struct wmOperatorType *ot) { PropertyRNA *prop; /* identifiers */ ot->name = "Select Orientation"; ot->description= "Select transformation orientation."; - ot->idname = "TFM_OT_select_orientation"; + ot->idname = "TRANSFORM_OT_select_orientation"; ot->flag = OPTYPE_UNDO; /* api callbacks */ @@ -194,12 +194,12 @@ static int delete_orientation_poll(bContext *C) return selected_index >= 0; } -void TFM_OT_delete_orientation(struct wmOperatorType *ot) +void TRANSFORM_OT_delete_orientation(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Delete Orientation"; ot->description= "Delete transformation orientation."; - ot->idname = "TFM_OT_delete_orientation"; + ot->idname = "TRANSFORM_OT_delete_orientation"; ot->flag = OPTYPE_UNDO; /* api callbacks */ @@ -228,12 +228,12 @@ static int create_orientation_invoke(bContext *C, wmOperator *op, wmEvent *event return create_orientation_exec(C, op); } -void TFM_OT_create_orientation(struct wmOperatorType *ot) +void TRANSFORM_OT_create_orientation(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Create Orientation"; ot->description= "Create transformation orientation from selection."; - ot->idname = "TFM_OT_create_orientation"; + ot->idname = "TRANSFORM_OT_create_orientation"; ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; /* api callbacks */ @@ -395,7 +395,7 @@ void Properties_Constraints(struct wmOperatorType *ot) RNA_def_enum_funcs(prop, rna_TransformOrientation_itemf); } -void TFM_OT_translate(struct wmOperatorType *ot) +void TRANSFORM_OT_translate(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Translate"; @@ -421,7 +421,7 @@ void TFM_OT_translate(struct wmOperatorType *ot) Properties_Snapping(ot, 1, 1); } -void TFM_OT_resize(struct wmOperatorType *ot) +void TRANSFORM_OT_resize(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Resize"; @@ -448,7 +448,7 @@ void TFM_OT_resize(struct wmOperatorType *ot) } -void TFM_OT_trackball(struct wmOperatorType *ot) +void TRANSFORM_OT_trackball(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Trackball"; @@ -472,7 +472,7 @@ void TFM_OT_trackball(struct wmOperatorType *ot) Properties_Snapping(ot, 0, 0); } -void TFM_OT_rotate(struct wmOperatorType *ot) +void TRANSFORM_OT_rotate(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Rotate"; @@ -498,7 +498,7 @@ void TFM_OT_rotate(struct wmOperatorType *ot) Properties_Snapping(ot, 1, 0); } -void TFM_OT_tilt(struct wmOperatorType *ot) +void TRANSFORM_OT_tilt(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Tilt"; @@ -527,7 +527,7 @@ void TFM_OT_tilt(struct wmOperatorType *ot) Properties_Snapping(ot, 0, 0); } -void TFM_OT_warp(struct wmOperatorType *ot) +void TRANSFORM_OT_warp(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Warp"; @@ -554,7 +554,7 @@ void TFM_OT_warp(struct wmOperatorType *ot) // Properties_Constraints(ot); } -void TFM_OT_shear(struct wmOperatorType *ot) +void TRANSFORM_OT_shear(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Shear"; @@ -581,7 +581,7 @@ void TFM_OT_shear(struct wmOperatorType *ot) // Properties_Constraints(ot); } -void TFM_OT_shrink_fatten(struct wmOperatorType *ot) +void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Shrink/Fatten"; @@ -605,7 +605,7 @@ void TFM_OT_shrink_fatten(struct wmOperatorType *ot) Properties_Snapping(ot, 0, 0); } -void TFM_OT_tosphere(struct wmOperatorType *ot) +void TRANSFORM_OT_tosphere(struct wmOperatorType *ot) { /* identifiers */ ot->name = "To Sphere"; @@ -630,7 +630,7 @@ void TFM_OT_tosphere(struct wmOperatorType *ot) Properties_Snapping(ot, 0, 0); } -void TFM_OT_mirror(struct wmOperatorType *ot) +void TRANSFORM_OT_mirror(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Mirror"; @@ -649,7 +649,7 @@ void TFM_OT_mirror(struct wmOperatorType *ot) Properties_Constraints(ot); } -void TFM_OT_edge_slide(struct wmOperatorType *ot) +void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot) { /* identifiers */ ot->name = "Edge Slide"; @@ -671,7 +671,7 @@ void TFM_OT_edge_slide(struct wmOperatorType *ot) Properties_Snapping(ot, 0, 0); } -void TFM_OT_transform(struct wmOperatorType *ot) +void TRANSFORM_OT_transform(struct wmOperatorType *ot) { static EnumPropertyItem transform_mode_types[] = { {TFM_INIT, "INIT", 0, "Init", ""}, @@ -707,7 +707,7 @@ void TFM_OT_transform(struct wmOperatorType *ot) /* identifiers */ ot->name = "Transform"; ot->description= "Transform selected items by mode type."; - ot->idname = "TFM_OT_transform"; + ot->idname = "TRANSFORM_OT_transform"; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING; /* api callbacks */ @@ -729,24 +729,24 @@ void TFM_OT_transform(struct wmOperatorType *ot) void transform_operatortypes(void) { - WM_operatortype_append(TFM_OT_transform); - WM_operatortype_append(TFM_OT_translate); - WM_operatortype_append(TFM_OT_rotate); - WM_operatortype_append(TFM_OT_tosphere); - WM_operatortype_append(TFM_OT_resize); - WM_operatortype_append(TFM_OT_shear); - WM_operatortype_append(TFM_OT_warp); - WM_operatortype_append(TFM_OT_shrink_fatten); - WM_operatortype_append(TFM_OT_tilt); - WM_operatortype_append(TFM_OT_trackball); - WM_operatortype_append(TFM_OT_mirror); - WM_operatortype_append(TFM_OT_edge_slide); + WM_operatortype_append(TRANSFORM_OT_transform); + WM_operatortype_append(TRANSFORM_OT_translate); + WM_operatortype_append(TRANSFORM_OT_rotate); + WM_operatortype_append(TRANSFORM_OT_tosphere); + WM_operatortype_append(TRANSFORM_OT_resize); + WM_operatortype_append(TRANSFORM_OT_shear); + WM_operatortype_append(TRANSFORM_OT_warp); + WM_operatortype_append(TRANSFORM_OT_shrink_fatten); + WM_operatortype_append(TRANSFORM_OT_tilt); + WM_operatortype_append(TRANSFORM_OT_trackball); + WM_operatortype_append(TRANSFORM_OT_mirror); + WM_operatortype_append(TRANSFORM_OT_edge_slide); - WM_operatortype_append(TFM_OT_select_orientation); - WM_operatortype_append(TFM_OT_create_orientation); - WM_operatortype_append(TFM_OT_delete_orientation); + WM_operatortype_append(TRANSFORM_OT_select_orientation); + WM_operatortype_append(TRANSFORM_OT_create_orientation); + WM_operatortype_append(TRANSFORM_OT_delete_orientation); - WM_operatortype_append(TFM_OT_snap_type); + WM_operatortype_append(TRANSFORM_OT_snap_type); } void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap, int spaceid) @@ -759,107 +759,107 @@ void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *ke switch(spaceid) { case SPACE_VIEW3D: - km = WM_keymap_add_item(keymap, "TFM_OT_translate", GKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TFM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_rotate", RKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_resize", SKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_warp", WKEY, KM_PRESS, KM_SHIFT, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_warp", WKEY, KM_PRESS, KM_SHIFT, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_tosphere", SKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_tosphere", SKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_shear", SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_shear", SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_shrink_fatten", SKEY, KM_PRESS, KM_ALT, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_shrink_fatten", SKEY, KM_PRESS, KM_ALT, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_tilt", TKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_tilt", TKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_select_orientation", SPACEKEY, KM_PRESS, KM_ALT, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_select_orientation", SPACEKEY, KM_PRESS, KM_ALT, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); RNA_boolean_set(km->ptr, "use", 1); - km = WM_keymap_add_item(keymap, "TFM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(km->ptr, "path", "scene.tool_settings.snap"); - km = WM_keymap_add_item(keymap, "TFM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CLICK, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CLICK, 0); break; case SPACE_ACTION: - km= WM_keymap_add_item(keymap, "TFM_OT_transform", GKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_TRANSLATE); - km= WM_keymap_add_item(keymap, "TFM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_TRANSLATE); - km= WM_keymap_add_item(keymap, "TFM_OT_transform", EKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND); - km= WM_keymap_add_item(keymap, "TFM_OT_transform", SKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_SCALE); - km= WM_keymap_add_item(keymap, "TFM_OT_transform", TKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_SLIDE); break; case SPACE_IPO: - km= WM_keymap_add_item(keymap, "TFM_OT_translate", GKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TFM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); // XXX the 'mode' identifier here is not quite right - km= WM_keymap_add_item(keymap, "TFM_OT_transform", EKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND); - km = WM_keymap_add_item(keymap, "TFM_OT_rotate", RKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_resize", SKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0); break; case SPACE_NLA: - km= WM_keymap_add_item(keymap, "TFM_OT_transform", GKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TRANSLATION); - km= WM_keymap_add_item(keymap, "TFM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TRANSLATION); - km= WM_keymap_add_item(keymap, "TFM_OT_transform", EKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND); - km= WM_keymap_add_item(keymap, "TFM_OT_transform", SKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_SCALE); break; case SPACE_NODE: - km= WM_keymap_add_item(keymap, "TFM_OT_translate", GKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TFM_OT_translate", EVT_TWEAK_A, KM_ANY, 0, 0); - km= WM_keymap_add_item(keymap, "TFM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_A, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_rotate", RKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_resize", SKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0); break; case SPACE_SEQ: - km= WM_keymap_add_item(keymap, "TFM_OT_translate", GKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TFM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); - km= WM_keymap_add_item(keymap, "TFM_OT_transform", EKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND); break; case SPACE_IMAGE: - km = WM_keymap_add_item(keymap, "TFM_OT_translate", GKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TFM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_rotate", RKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_resize", SKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TFM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); + km = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(km->ptr, "path", "scene.tool_settings.snap"); -- cgit v1.2.3 From 6b7544bfda1d51e6d256240316ed1900e838faeb Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 10 Dec 2009 10:40:28 +0000 Subject: Durian Request: Default F-Curve Auto-Colour Modes Added option to KeyingSets+Keyframing Functions which makes newly added F-Curves for Transforms + Colours to use the colour mode which uses the array index to determine the colour of the F-Curve. The main implication of this is that when this option is enabled for a KeyingSet, all sets of XYZ F-Curves (i.e. location, rotation, scale) for transforms will be shown in Red/Green/Blue instead of some automatically determined "rainbow" colour. Useful for animators far too used to Maya's Graph Editor :P This setting is named, "XYZ to RGB", though that doesn't make its purpose entirely clear. --- source/blender/editors/animation/keyframing.c | 14 +++++++++++++- source/blender/editors/include/ED_keyframing.h | 2 +- source/blender/makesdna/DNA_anim_types.h | 11 ++++++----- source/blender/makesrna/intern/rna_animation.c | 4 ++++ 4 files changed, 24 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 3bfb8bdc867..3e25c9a6b60 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -274,6 +274,7 @@ int insert_vert_fcurve (FCurve *fcu, float x, float y, short flag) beztr.ipo= U.ipo_new; /* use default interpolation mode here... */ beztr.f1= beztr.f2= beztr.f3= SELECT; beztr.h1= beztr.h2= HD_AUTO; // XXX what about when we replace an old one? + //BEZKEYTYPE(&beztr)= scene->keytype; /* default keyframe type */ /* add temp beztriple to keyframes */ a= insert_bezt_fcurve(fcu, &beztr, flag); @@ -809,7 +810,7 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_ return 0; } - /* get F-Curve - if no action is provided, keyframe to the default one attached to this ID-block */ + /* if no action is provided, keyframe to the default one attached to this ID-block */ if (act == NULL) { AnimData *adt= BKE_animdata_from_id(id); @@ -842,8 +843,19 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_ /* will only loop once unless the array index was -1 */ for (; array_index < array_index_max; array_index++) { + /* make sure the F-Curve exists */ fcu= verify_fcurve(act, group, rna_path, array_index, 1); + /* set color mode if the F-Curve is new (i.e. without any keyframes) */ + if ((fcu->totvert == 0) && (flag & INSERTKEY_XYZ2RGB)) { + /* for Loc/Rot/Scale and also Color F-Curves, the color of the F-Curve in the Graph Editor, + * is determined by the array index for the F-Curve + */ + if (ELEM4(RNA_property_subtype(prop), PROP_TRANSLATION, PROP_XYZ, PROP_EULER, PROP_COLOR)) { + fcu->color_mode= FCURVE_COLOR_AUTO_RGB; + } + } + /* insert keyframe */ ret += insert_keyframe_direct(ptr, prop, fcu, cfra, flag); } diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index 97a08845020..45a62ee7bcb 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -149,7 +149,7 @@ short ANIM_driver_can_paste(void); /* Main Driver Management API calls: * Add a new driver for the specified property on the given ID block */ -short ANIM_add_driver (struct ID *id, const char rna_path[], int array_index, short flag, int type); +short ANIM_add_driver(struct ID *id, const char rna_path[], int array_index, short flag, int type); /* Main Driver Management API calls: * Remove the driver for the specified property on the given ID block (if available) diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index c5d0231ce62..6a9700a5573 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -291,8 +291,8 @@ typedef struct ChannelDriver { /* python expression to execute (may call functions defined in an accessory file) * which relates the target 'variables' in some way to yield a single usable value */ - char expression[256]; - void *expr_comp; /* PyObject - compiled expression, dont save this */ + char expression[256]; /* expression to compile for evaluation */ + void *expr_comp; /* PyObject - compiled expression, dont save this */ float curval; /* result of previous evaluation, for subtraction from result under certain circumstances */ float influence; /* influence of driver on result */ // XXX to be implemented... this is like the constraint influence setting @@ -323,8 +323,8 @@ typedef enum eDriver_Flags { /* driver does replace value, but overrides (for layering of animation over driver) */ // TODO: this needs to be implemented at some stage or left out... DRIVER_FLAG_LAYERING = (1<<2), - - DRIVER_FLAG_RECOMPILE = (1<<3), /* use when the expression needs to be recompiled */ + /* use when the expression needs to be recompiled */ + DRIVER_FLAG_RECOMPILE = (1<<3), } eDriver_Flags; /* F-Curves -------------------------------------- */ @@ -367,7 +367,7 @@ typedef struct FCurve { char *rna_path; /* RNA-path to resolve data-access */ /* curve coloring (for editor) */ - int color_mode; /* coloring method to use */ + int color_mode; /* coloring method to use (eFCurve_Coloring) */ float color[3]; /* the last-color this curve took */ } FCurve; @@ -703,6 +703,7 @@ typedef enum eInsertKeyFlags { INSERTKEY_FAST = (1<<2), /* don't recalculate handles,etc. after adding key */ INSERTKEY_FASTR = (1<<3), /* don't realloc mem (or increase count, as array has already been set out) */ INSERTKEY_REPLACE = (1<<4), /* only replace an existing keyframe (this overrides INSERTKEY_NEEDED) */ + INSERTKEY_XYZ2RGB = (1<<5), /* transform F-Curves should have XYZ->RGB color mode */ } eInsertKeyFlags; /* ************************************************ */ diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index 3e7638b3d51..fdf345015e2 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -267,6 +267,10 @@ static void rna_def_keyingset(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "keyingflag", INSERTKEY_MATRIX); RNA_def_property_ui_text(prop, "Insert Keyframes - Visual", "Insert keyframes based on 'visual transforms'."); + prop= RNA_def_property(srna, "insertkey_xyz_to_rgb", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "keyingflag", INSERTKEY_XYZ2RGB); + RNA_def_property_ui_text(prop, "XYZ Transforms to RGB", "Color for newly added transformation F-Curves (Location, Rotation, Scale) and also Color is based on the transform axis."); + /* Keying Set API */ RNA_api_keyingset(srna); } -- cgit v1.2.3 From 11ca70b42d2bb46202365358f40e63822a42a840 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 10 Dec 2009 11:08:38 +0000 Subject: Update Handling: moved wm_data_handle_update from windowmanager to scene_update_tagged in blenkernel, code fits better there. --- source/blender/blenkernel/BKE_scene.h | 1 + source/blender/blenkernel/intern/scene.c | 41 +++++++++++++++++++-- .../blender/windowmanager/intern/wm_event_system.c | 43 ++-------------------- 3 files changed, 43 insertions(+), 42 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index 686fc265de0..ecff62a7952 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -74,6 +74,7 @@ void scene_select_base(struct Scene *sce, struct Base *selbase); /* checks for cycle, returns 1 if it's all OK */ int scene_check_setscene(struct Scene *sce); +void scene_update_tagged(struct Scene *sce); void scene_update_for_newframe(struct Scene *sce, unsigned int lay); void scene_add_render_layer(struct Scene *sce); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 27cb3ad834b..cd9487862ea 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -77,6 +77,7 @@ #include "BKE_node.h" #include "BKE_object.h" #include "BKE_paint.h" +#include "BKE_pointcache.h" #include "BKE_scene.h" #include "BKE_sequence.h" #include "BKE_world.h" @@ -772,7 +773,7 @@ float frame_to_float (Scene *scene, int cfra) /* see also bsystem_time in objec return ctime; } -static void scene_update(Scene *sce, unsigned int lay) +static void scene_update_newframe(Scene *sce, unsigned int lay) { Base *base; Object *ob; @@ -804,6 +805,40 @@ static void scene_update(Scene *sce, unsigned int lay) } } +/* this is called in main loop, doing tagged updates before redraw */ +void scene_update_tagged(Scene *scene) +{ + Scene *sce; + Base *base; + float ctime = frame_to_float(scene, scene->r.cfra); + + /* update all objects: drivers, matrices, displists, etc. flags set + by depgraph or manual, no layer check here, gets correct flushed */ + + /* sets first, we allow per definition current scene to have + dependencies on sets, but not the other way around. */ + if(scene->set) { + for(SETLOOPER(scene->set, base)) + object_handle_update(scene, base->object); + } + + for(base= scene->base.first; base; base= base->next) { + object_handle_update(scene, base->object); + } + + /* recalc scene animation data here (for sequencer) */ + { + AnimData *adt= BKE_animdata_from_id(&scene->id); + + if(adt && (adt->recalc & ADT_RECALC_ANIM)) + BKE_animsys_evaluate_animdata(&scene->id, adt, ctime, 0); + } + + BKE_ptcache_quick_cache_all(scene); + + /* in the future this should handle updates for all datablocks, not + only objects and scenes. - brecht */ +} /* applies changes right away, does all sets too */ void scene_update_for_newframe(Scene *sce, unsigned int lay) @@ -815,9 +850,9 @@ void scene_update_for_newframe(Scene *sce, unsigned int lay) /* sets first, we allow per definition current scene to have dependencies on sets */ for(sce= sce->set; sce; sce= sce->set) - scene_update(sce, lay); + scene_update_newframe(sce, lay); - scene_update(scene, lay); + scene_update_newframe(scene, lay); } /* return default layer, also used to patch old files */ diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 8bc258f7c0a..ce3acece776 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -29,7 +29,6 @@ #include #include -#include "DNA_anim_types.h" #include "DNA_listBase.h" #include "DNA_screen_types.h" #include "DNA_scene_types.h" @@ -42,17 +41,14 @@ #include "BLI_blenlib.h" -#include "BKE_animsys.h" #include "BKE_blender.h" #include "BKE_context.h" #include "BKE_idprop.h" #include "BKE_global.h" #include "BKE_main.h" -#include "BKE_object.h" #include "BKE_report.h" #include "BKE_scene.h" #include "BKE_utildefines.h" -#include "BKE_pointcache.h" #include "ED_fileselect.h" #include "ED_info.h" @@ -149,40 +145,6 @@ static wmNotifier *wm_notifier_next(wmWindowManager *wm) return note; } -static void wm_data_handle_update(Scene *scene) -{ - Scene *sce; - Base *base; - - /* XXX make lock in future, or separated derivedmesh users in scene */ - if(G.rendering) - return; - - /* update all objects, drivers, matrices, displists, etc. Flags set by depgraph or manual, - no layer check here, gets correct flushed */ - /* sets first, we allow per definition current scene to have dependencies on sets */ - if(scene->set) { - for(SETLOOPER(scene->set, base)) - object_handle_update(scene, base->object); - } - - for(base= scene->base.first; base; base= base->next) { - object_handle_update(scene, base->object); - } - - /* recalc scene animation data here (for sequencer). actually - this should be doing all datablocks including e.g. materials, - but for now this solves some update issues - brecht. */ - { - AnimData *adt= BKE_animdata_from_id(&scene->id); - - if(adt && (adt->recalc & ADT_RECALC_ANIM)) - BKE_animsys_evaluate_animdata(&scene->id, adt, scene->r.cfra, 0); - } - - BKE_ptcache_quick_cache_all(scene); -} - /* called in mainloop */ void wm_event_do_notifiers(bContext *C) { @@ -296,7 +258,10 @@ void wm_event_do_notifiers(bContext *C) } } - wm_data_handle_update(win->screen->scene); + /* XXX make lock in future, or separated derivedmesh users in scene */ + if(!G.rendering) + /* depsgraph & animation: update tagged datablocks */ + scene_update_tagged(win->screen->scene); } CTX_wm_window_set(C, NULL); -- cgit v1.2.3 From 901962c6213d896c2e8434b23cd2a3ffbc9a615a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 11:20:43 +0000 Subject: return value was included in the list of optional args for function-rna error message --- source/blender/python/intern/bpy_rna.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index cfd455e045c..ad695344038 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2671,6 +2671,9 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) RNA_parameter_list_begin(&parms, &iter); for(; iter.valid; RNA_parameter_list_next(&iter)) { parm= iter.parm; + if(RNA_property_flag(parm) & PROP_RETURN) + continue; + BLI_dynstr_appendf(good_args, first ? "%s" : ", %s", RNA_property_identifier(parm)); first= FALSE; } -- cgit v1.2.3 From f26e188a7c049249b4b76e3af069f53ea0d08404 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 11:56:31 +0000 Subject: - rigify context changes & example for delta - sequencer transform had 0.0 for rotation minimum - missed icon rename in last commit --- source/blender/makesrna/intern/rna_sequence.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 56fea340dae..136dfe0b9b7 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -1126,14 +1126,14 @@ static void rna_def_transform(BlenderRNA *brna) prop= RNA_def_property(srna, "rotation_start", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "rotIni"); RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_range(prop, 0.0f, 360.0f); + RNA_def_property_range(prop, -360.0f, 360.0f); RNA_def_property_ui_text(prop, "Rotation Start", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "rotation_end", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "rotFin"); RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_range(prop, 0.0f, 360.0f); + RNA_def_property_range(prop, -360.0f, 360.0f); RNA_def_property_ui_text(prop, "Rotation End", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -- cgit v1.2.3 From b259efe2d7fff8c113e32b2edcc207c3eece4602 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 13:20:31 +0000 Subject: UI limits for the envalope frame were too small --- source/blender/editors/animation/fmodifier_ui.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index 35f7f424f85..17d8f0a847b 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -560,7 +560,7 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh block= uiLayoutGetBlock(row); uiBlockBeginAlign(block); - but=uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "Fra:", 0, 0, 90, 20, &fed->time, -UI_FLT_MAX, UI_FLT_MAX, 10, 1, "Frame that envelope point occurs"); + but=uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "Fra:", 0, 0, 90, 20, &fed->time, -MAXFRAMEF, MAXFRAMEF, 10, 1, "Frame that envelope point occurs"); uiButSetFunc(but, validate_fmodifier_cb, fcm, NULL); uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "Min:", 0, 0, 100, 20, &fed->min, -UI_FLT_MAX, UI_FLT_MAX, 10, 2, "Minimum bound of envelope at this point"); -- cgit v1.2.3 From acadb8c39f83a4b4112c8c77bac1eb39584ad100 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 10 Dec 2009 14:26:06 +0000 Subject: Sculpt Branch: Revised external multires file saving. Now it is more manual in that you have to specify where to save it, like an image file, but still saved at the same time as the .blend. It would ideally be automatic, but this is difficult to implement, so for now this should at least be more reliable. --- source/blender/blenkernel/BKE_btex.h | 64 --- source/blender/blenkernel/BKE_customdata.h | 10 +- source/blender/blenkernel/BKE_customdata_file.h | 59 +++ source/blender/blenkernel/BKE_utildefines.h | 10 +- source/blender/blenkernel/intern/btex.c | 482 --------------------- source/blender/blenkernel/intern/customdata.c | 125 +++--- source/blender/blenkernel/intern/customdata_file.c | 446 +++++++++++++++++++ source/blender/blenkernel/intern/multires.c | 9 +- source/blender/blenloader/intern/writefile.c | 18 +- source/blender/editors/object/object_intern.h | 2 + source/blender/editors/object/object_modifier.c | 101 ++++- source/blender/editors/object/object_ops.c | 2 + source/blender/editors/space_file/file_draw.c | 2 + source/blender/editors/space_file/filelist.c | 2 + source/blender/editors/space_file/filesel.c | 2 + source/blender/makesdna/DNA_space_types.h | 1 + source/blender/makesrna/intern/rna_modifier.c | 34 +- source/blender/windowmanager/intern/wm_operators.c | 2 + 18 files changed, 736 insertions(+), 635 deletions(-) delete mode 100644 source/blender/blenkernel/BKE_btex.h create mode 100644 source/blender/blenkernel/BKE_customdata_file.h delete mode 100644 source/blender/blenkernel/intern/btex.c create mode 100644 source/blender/blenkernel/intern/customdata_file.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_btex.h b/source/blender/blenkernel/BKE_btex.h deleted file mode 100644 index cb73fd160d7..00000000000 --- a/source/blender/blenkernel/BKE_btex.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef BKE_BTEX_H -#define BKE_BTEX_H - -#define BTEX_TYPE_IMAGE 0 -#define BTEX_TYPE_MESH 1 - -#define BTEX_LAYER_NAME_MAX 64 - -typedef struct BTex BTex; -typedef struct BTexLayer BTexLayer; - -/* Create/Free */ - -BTex *btex_create(int type); -void btex_free(BTex *btex); - -/* File read/write/remove */ - -int btex_read_open(BTex *btex, char *filename); -int btex_read_layer(BTex *btex, BTexLayer *blay); -int btex_read_data(BTex *btex, int size, void *data); -void btex_read_close(BTex *btex); - -int btex_write_open(BTex *btex, char *filename); -int btex_write_layer(BTex *btex, BTexLayer *blay); -int btex_write_data(BTex *btex, int size, void *data); -void btex_write_close(BTex *btex); - -void btex_remove(char *filename); - -/* Layers */ - -BTexLayer *btex_layer_find(BTex *btex, int type, char *name); -BTexLayer *btex_layer_add(BTex *btex, int type, char *name); -void btex_layer_remove(BTex *btex, BTexLayer *blay); - -/* Mesh */ - -void btex_mesh_set_grids(BTex *btex, int totgrid, int gridsize, int datasize); - -#endif /* BKE_BTEX_H */ - diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h index 5ce4b396f0e..5f13e702343 100644 --- a/source/blender/blenkernel/BKE_customdata.h +++ b/source/blender/blenkernel/BKE_customdata.h @@ -32,6 +32,7 @@ #ifndef BKE_CUSTOMDATA_H #define BKE_CUSTOMDATA_H +struct ID; struct CustomData; struct CustomDataLayer; typedef unsigned int CustomDataMask; @@ -282,16 +283,15 @@ void CustomData_bmesh_init_pool(struct CustomData *data, int allocsize); /* External file storage */ void CustomData_external_add(struct CustomData *data, - int type, const char *name, int totelem); + struct ID *id, int type, int totelem, const char *filename); void CustomData_external_remove(struct CustomData *data, - int type, int totelem); -void CustomData_external_remove_object(struct CustomData *data); + struct ID *id, int type, int totelem); int CustomData_external_test(struct CustomData *data, int type); void CustomData_external_write(struct CustomData *data, - CustomDataMask mask, int totelem, int free); + struct ID *id, CustomDataMask mask, int totelem, int free); void CustomData_external_read(struct CustomData *data, - CustomDataMask mask, int totelem); + struct ID *id, CustomDataMask mask, int totelem); #endif diff --git a/source/blender/blenkernel/BKE_customdata_file.h b/source/blender/blenkernel/BKE_customdata_file.h new file mode 100644 index 00000000000..5cbff193cd3 --- /dev/null +++ b/source/blender/blenkernel/BKE_customdata_file.h @@ -0,0 +1,59 @@ +/* + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef BKE_CUSTOMDATA_FILE_H +#define BKE_CUSTOMDATA_FILE_H + +#define CDF_TYPE_IMAGE 0 +#define CDF_TYPE_MESH 1 + +#define CDF_LAYER_NAME_MAX 64 + +typedef struct CDataFile CDataFile; +typedef struct CDataFileLayer CDataFileLayer; + +/* Create/Free */ + +CDataFile *cdf_create(int type); +void cdf_free(CDataFile *cdf); + +/* File read/write/remove */ + +int cdf_read_open(CDataFile *cdf, char *filename); +int cdf_read_layer(CDataFile *cdf, CDataFileLayer *blay); +int cdf_read_data(CDataFile *cdf, int size, void *data); +void cdf_read_close(CDataFile *cdf); + +int cdf_write_open(CDataFile *cdf, char *filename); +int cdf_write_layer(CDataFile *cdf, CDataFileLayer *blay); +int cdf_write_data(CDataFile *cdf, int size, void *data); +void cdf_write_close(CDataFile *cdf); + +void cdf_remove(char *filename); + +/* Layers */ + +CDataFileLayer *cdf_layer_find(CDataFile *cdf, int type, char *name); +CDataFileLayer *cdf_layer_add(CDataFile *cdf, int type, char *name, size_t datasize); + +#endif /* BKE_CUSTOMDATA_FILE_H */ + diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h index c0ed8430177..c052af775f2 100644 --- a/source/blender/blenkernel/BKE_utildefines.h +++ b/source/blender/blenkernel/BKE_utildefines.h @@ -168,7 +168,15 @@ #define ENDB MAKE_ID('E','N','D','B') -/* This one rotates the bytes in an int */ +/* This one rotates the bytes in an int64, int (32) and short (16) */ +#define SWITCH_INT64(a) { \ + char s_i, *p_i; \ + p_i= (char *)&(a); \ + s_i=p_i[0]; p_i[0]=p_i[7]; p_i[7]=s_i; \ + s_i=p_i[1]; p_i[1]=p_i[6]; p_i[6]=s_i; \ + s_i=p_i[2]; p_i[2]=p_i[5]; p_i[5]=s_i; \ + s_i=p_i[3]; p_i[3]=p_i[4]; p_i[4]=s_i; } + #define SWITCH_INT(a) { \ char s_i, *p_i; \ p_i= (char *)&(a); \ diff --git a/source/blender/blenkernel/intern/btex.c b/source/blender/blenkernel/intern/btex.c deleted file mode 100644 index 363e515f6e2..00000000000 --- a/source/blender/blenkernel/intern/btex.c +++ /dev/null @@ -1,482 +0,0 @@ -/* - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include -#include -#include - -#include "MEM_guardedalloc.h" - -#include "BLI_fileops.h" -#include "BLI_string.h" - -#include "BKE_btex.h" -#include "BKE_global.h" -#include "BKE_utildefines.h" - -/************************* File Format Definitions ***************************/ - -#define BTEX_ENDIAN_LITTLE 0 -#define BTEX_ENDIAN_BIG 1 - -#define BTEX_DATA_FLOAT 0 - -typedef struct BTexHeader { - char ID[4]; /* "BTEX" */ - char endian; /* little, big */ - char version; /* non-compatible versions */ - char subversion; /* compatible sub versions */ - char pad; /* padding */ - - int structbytes; /* size of this struct in bytes */ - int type; /* image, mesh */ - int totlayer; /* number of layers in the file */ -} BTexHeader; - -typedef struct BTexImageHeader { - int structbytes; /* size of this struct in bytes */ - int width; /* image width */ - int height; /* image height */ - int tile_size; /* tile size (required power of 2) */ -} BTexImageHeader; - -typedef struct BTexMeshHeader { - int structbytes; /* size of this struct in bytes */ - int totgrid; /* number of grids */ - int gridsize; /* width of grids */ -} BTexMeshHeader; - -struct BTexLayer { - int structbytes; /* size of this struct in bytes */ - int datatype; /* only float for now */ - int datasize; /* size of data in layer */ - int type; /* layer type */ - char name[BTEX_LAYER_NAME_MAX]; /* layer name */ -}; - -/**************************** Other Definitions ******************************/ - -#define BTEX_VERSION 0 -#define BTEX_SUBVERSION 0 -#define BTEX_TILE_SIZE 64 - -struct BTex { - int type; - - BTexHeader header; - union { - BTexImageHeader image; - BTexMeshHeader mesh; - } btype; - - BTexLayer *layer; - int totlayer; - - FILE *readf; - FILE *writef; - int switchendian; - size_t dataoffset; -}; - -/********************************* Create/Free *******************************/ - -static int btex_endian(void) -{ - if(ENDIAN_ORDER == L_ENDIAN) - return BTEX_ENDIAN_LITTLE; - else - return BTEX_ENDIAN_BIG; -} - -/*static int btex_data_type_size(int datatype) -{ - if(datatype == BTEX_DATA_FLOAT) - return sizeof(float); - - return 0; -}*/ - -BTex *btex_create(int type) -{ - BTex *btex= MEM_callocN(sizeof(BTex), "BTex"); - - btex->type= type; - - return btex; -} - -void btex_free(BTex *btex) -{ - btex_read_close(btex); - btex_write_close(btex); - - if(btex->layer) - MEM_freeN(btex->layer); - - MEM_freeN(btex); -} - -/********************************* Read/Write ********************************/ - -static int btex_read_header(BTex *btex) -{ - BTexHeader *header; - BTexImageHeader *image; - BTexMeshHeader *mesh; - BTexLayer *layer; - FILE *f= btex->readf; - size_t offset = 0; - int a; - - header= &btex->header; - - if(!fread(header, sizeof(BTexHeader), 1, btex->readf)) - return 0; - - if(memcmp(header->ID, "BTEX", sizeof(header->ID)) != 0) - return 0; - if(header->version > BTEX_VERSION) - return 0; - - btex->switchendian= header->endian != btex_endian(); - header->endian= btex_endian(); - - if(btex->switchendian) { - SWITCH_INT(header->type); - SWITCH_INT(header->totlayer); - SWITCH_INT(header->structbytes); - } - - if(!ELEM(header->type, BTEX_TYPE_IMAGE, BTEX_TYPE_MESH)) - return 0; - - offset += header->structbytes; - header->structbytes= sizeof(BTexHeader); - - if(fseek(f, offset, SEEK_SET) != 0) - return 0; - - if(header->type == BTEX_TYPE_IMAGE) { - image= &btex->btype.image; - if(!fread(image, sizeof(BTexImageHeader), 1, f)) - return 0; - - if(btex->switchendian) { - SWITCH_INT(image->width); - SWITCH_INT(image->height); - SWITCH_INT(image->tile_size); - SWITCH_INT(image->structbytes); - } - - offset += image->structbytes; - image->structbytes= sizeof(BTexImageHeader); - } - else if(header->type == BTEX_TYPE_MESH) { - mesh= &btex->btype.mesh; - if(!fread(mesh, sizeof(BTexMeshHeader), 1, f)) - return 0; - - if(btex->switchendian) { - SWITCH_INT(mesh->totgrid); - SWITCH_INT(mesh->gridsize); - SWITCH_INT(mesh->structbytes); - } - - offset += mesh->structbytes; - mesh->structbytes= sizeof(BTexMeshHeader); - } - - if(fseek(f, offset, SEEK_SET) != 0) - return 0; - - btex->layer= MEM_callocN(sizeof(BTexLayer)*header->totlayer, "BTexLayer"); - btex->totlayer= header->totlayer; - - for(a=0; atotlayer; a++) { - layer= &btex->layer[a]; - - if(!fread(layer, sizeof(BTexLayer), 1, f)) - return 0; - - if(btex->switchendian) { - SWITCH_INT(layer->type); - SWITCH_INT(layer->datatype); - SWITCH_INT(layer->datasize); - SWITCH_INT(layer->structbytes); - } - - if(layer->datatype != BTEX_DATA_FLOAT) - return 0; - - offset += layer->structbytes; - layer->structbytes= sizeof(BTexLayer); - - if(fseek(f, offset, SEEK_SET) != 0) - return 0; - } - - btex->dataoffset= offset; - - return 1; -} - -static int btex_write_header(BTex *btex) -{ - BTexHeader *header; - BTexImageHeader *image; - BTexMeshHeader *mesh; - BTexLayer *layer; - FILE *f= btex->writef; - int a; - - header= &btex->header; - - if(!fwrite(header, sizeof(BTexHeader), 1, f)) - return 0; - - if(header->type == BTEX_TYPE_IMAGE) { - image= &btex->btype.image; - if(!fwrite(image, sizeof(BTexImageHeader), 1, f)) - return 0; - } - else if(header->type == BTEX_TYPE_MESH) { - mesh= &btex->btype.mesh; - if(!fwrite(mesh, sizeof(BTexMeshHeader), 1, f)) - return 0; - } - - for(a=0; atotlayer; a++) { - layer= &btex->layer[a]; - - if(!fwrite(layer, sizeof(BTexLayer), 1, f)) - return 0; - } - - return 1; -} - -int btex_read_open(BTex *btex, char *filename) -{ - FILE *f; - - f= fopen(filename, "rb"); - if(!f) - return 0; - - btex->readf= f; - - if(!btex_read_header(btex)) { - btex_read_close(btex); - return 0; - } - - if(btex->header.type != btex->type) { - btex_read_close(btex); - return 0; - } - - return 1; -} - -int btex_read_layer(BTex *btex, BTexLayer *blay) -{ - size_t offset; - int a; - - /* seek to right location in file */ - offset= btex->dataoffset; - for(a=0; atotlayer; a++) { - if(&btex->layer[a] == blay) - break; - else - offset += btex->layer[a].datasize; - } - - return (fseek(btex->readf, offset, SEEK_SET) == 0); -} - -int btex_read_data(BTex *btex, int size, void *data) -{ - float *fdata; - int a; - - /* read data */ - if(!fread(data, size, 1, btex->readf)) - return 0; - - /* switch endian if necessary */ - if(btex->switchendian) { - fdata= data; - - for(a=0; areadf) { - fclose(btex->readf); - btex->readf= NULL; - } -} - -int btex_write_open(BTex *btex, char *filename) -{ - BTexHeader *header; - BTexImageHeader *image; - BTexMeshHeader *mesh; - FILE *f; - - f= fopen(filename, "wb"); - if(!f) - return 0; - - btex->writef= f; - - /* fill header */ - header= &btex->header; - strcpy(header->ID, "BTEX"); - header->endian= btex_endian(); - header->version= BTEX_VERSION; - header->subversion= BTEX_SUBVERSION; - - header->structbytes= sizeof(BTexHeader); - header->type= btex->type; - header->totlayer= btex->totlayer; - - if(btex->type == BTEX_TYPE_IMAGE) { - /* fill image header */ - image= &btex->btype.image; - image->structbytes= sizeof(BTexImageHeader); - image->tile_size= BTEX_TILE_SIZE; - } - else if(btex->type == BTEX_TYPE_MESH) { - /* fill mesh header */ - mesh= &btex->btype.mesh; - mesh->structbytes= sizeof(BTexMeshHeader); - } - - btex_write_header(btex); - - return 1; -} - -int btex_write_layer(BTex *btex, BTexLayer *blay) -{ - return 1; -} - -int btex_write_data(BTex *btex, int size, void *data) -{ - /* write data */ - if(!fwrite(data, size, 1, btex->writef)) - return 0; - - return 1; -} - -void btex_write_close(BTex *btex) -{ - if(btex->writef) { - fclose(btex->writef); - btex->writef= NULL; - } -} - -void btex_remove(char *filename) -{ - BLI_delete(filename, 0, 0); -} - -/********************************** Layers ***********************************/ - -BTexLayer *btex_layer_find(BTex *btex, int type, char *name) -{ - BTexLayer *layer; - int a; - - for(a=0; atotlayer; a++) { - layer= &btex->layer[a]; - - if(layer->type == type && strcmp(layer->name, name) == 0) - return layer; - } - - return NULL; -} - -BTexLayer *btex_layer_add(BTex *btex, int type, char *name) -{ - BTexLayer *newlayer, *layer; - - /* expand array */ - newlayer= MEM_callocN(sizeof(BTexLayer)*(btex->totlayer+1), "BTexLayer"); - memcpy(newlayer, btex->layer, sizeof(BTexLayer)*btex->totlayer); - btex->layer= newlayer; - - btex->totlayer++; - - /* fill in new layer */ - layer= &btex->layer[btex->totlayer-1]; - layer->structbytes= sizeof(BTexLayer); - layer->datatype= BTEX_DATA_FLOAT; - layer->type= type; - BLI_strncpy(layer->name, name, BTEX_LAYER_NAME_MAX); - - return layer; -} - -void btex_layer_remove(BTex *btex, BTexLayer *layer) -{ - BTexLayer *newlayer; - int index= layer - btex->layer; - - /* expand array */ - newlayer= MEM_callocN(sizeof(BTexLayer)*(btex->totlayer-1), "BTexLayer"); - if(index > 0) - memcpy(newlayer, btex->layer, sizeof(BTexLayer)*index); - if(index+1 < btex->totlayer) - memcpy(newlayer+index, btex->layer+index+1, sizeof(BTexLayer)*(btex->totlayer-(index+1))); - btex->layer= newlayer; - - btex->totlayer--; -} - -/********************************* Mesh **************************************/ - -void btex_mesh_set_grids(BTex *btex, int totgrid, int gridsize, int datasize) -{ - BTexLayer *layer; - int a; - - btex->btype.mesh.totgrid= totgrid; - btex->btype.mesh.gridsize= gridsize; - - for(a=0; atotlayer; a++) { - layer= &btex->layer[a]; - layer->datasize= datasize; - } -} - diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index f9997708a50..d9e85d5d412 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -48,8 +48,8 @@ #include "BLI_mempool.h" #include "BLI_string.h" -#include "BKE_btex.h" #include "BKE_customdata.h" +#include "BKE_customdata_file.h" #include "BKE_global.h" #include "BKE_utildefines.h" @@ -95,11 +95,14 @@ typedef struct LayerTypeInfo { default is assumed to be all zeros */ void (*set_default)(void *data, int count); - /* a function to read data from a btex file */ - int (*read)(BTex *btex, void *data, int count); + /* a function to read data from a cdf file */ + int (*read)(CDataFile *cdf, void *data, int count); - /* a function to write data to a btex file */ - int (*write)(BTex *btex, void *data, int count); + /* a function to write data to a cdf file */ + int (*write)(CDataFile *cdf, void *data, int count); + + /* a function to determine file size */ + size_t (*filesize)(CDataFile *cdf, void *data, int count); } LayerTypeInfo; static void layerCopy_mdeformvert(const void *source, void *dest, @@ -550,7 +553,7 @@ static void layerFree_mdisps(void *data, int count, int size) } } -static int layerRead_mdisps(BTex *btex, void *data, int count) +static int layerRead_mdisps(CDataFile *cdf, void *data, int count) { MDisps *d = data; int i; @@ -559,7 +562,7 @@ static int layerRead_mdisps(BTex *btex, void *data, int count) if(!d[i].disps) d[i].disps = MEM_callocN(sizeof(float)*3*d[i].totdisp, "mdisps read"); - if(!btex_read_data(btex, d[i].totdisp*3*sizeof(float), d[i].disps)) { + if(!cdf_read_data(cdf, d[i].totdisp*3*sizeof(float), d[i].disps)) { printf("failed to read %d/%d %d\n", i, count, d[i].totdisp); return 0; } @@ -568,13 +571,13 @@ static int layerRead_mdisps(BTex *btex, void *data, int count) return 1; } -static int layerWrite_mdisps(BTex *btex, void *data, int count) +static int layerWrite_mdisps(CDataFile *cdf, void *data, int count) { MDisps *d = data; int i; for(i = 0; i < count; ++i) { - if(!btex_write_data(btex, d[i].totdisp*3*sizeof(float), d[i].disps)) { + if(!cdf_write_data(cdf, d[i].totdisp*3*sizeof(float), d[i].disps)) { printf("failed to write %d/%d %d\n", i, count, d[i].totdisp); return 0; } @@ -583,6 +586,18 @@ static int layerWrite_mdisps(BTex *btex, void *data, int count) return 1; } +static size_t layerFilesize_mdisps(CDataFile *cdf, void *data, int count) +{ + MDisps *d = data; + size_t size = 0; + int i; + + for(i = 0; i < count; ++i) + size += d[i].totdisp*3*sizeof(float); + + return size; +} + /* --------- */ static void layerDefault_mloopcol(void *data, int count) @@ -776,7 +791,7 @@ const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { {sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL, layerDefault_mloopcol}, {sizeof(float)*3*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps, - layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps}, + layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps, layerFilesize_mdisps}, {sizeof(MCol)*4, "MCol", 4, "WeightCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, {sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol, @@ -838,8 +853,6 @@ void CustomData_merge(const struct CustomData *source, struct CustomData *dest, CustomDataLayer *layer, *newlayer; int i, type, number = 0, lasttype = -1, lastactive = 0, lastrender = 0, lastclone = 0, lastmask = 0; - CustomData_external_read(dest, mask, totelem); - for(i = 0; i < source->totlayer; ++i) { layer = &source->layers[i]; typeInfo = layerType_getInfo(layer->type); @@ -2297,18 +2310,20 @@ int CustomData_verify_versions(struct CustomData *data, int index) /****************************** External Files *******************************/ -static void customdata_external_filename(char filename[FILE_MAX], CustomDataExternal *external) +static void customdata_external_filename(char filename[FILE_MAX], ID *id, CustomDataExternal *external) { + char *path = (id->lib)? id->lib->filename: G.sce; + BLI_strncpy(filename, external->filename, FILE_MAX); - BLI_convertstringcode(filename, G.sce); + BLI_convertstringcode(filename, path); } -void CustomData_external_read(CustomData *data, CustomDataMask mask, int totelem) +void CustomData_external_read(CustomData *data, ID *id, CustomDataMask mask, int totelem) { CustomDataExternal *external= data->external; CustomDataLayer *layer; - BTex *btex; - BTexLayer *blay; + CDataFile *cdf; + CDataFileLayer *blay; char filename[FILE_MAX]; const LayerTypeInfo *typeInfo; int i, update = 0; @@ -2329,10 +2344,10 @@ void CustomData_external_read(CustomData *data, CustomDataMask mask, int totelem if(!update) return; - customdata_external_filename(filename, external); + customdata_external_filename(filename, id, external); - btex= btex_create(BTEX_TYPE_MESH); - if(!btex_read_open(btex, filename)) + cdf= cdf_create(CDF_TYPE_MESH); + if(!cdf_read_open(cdf, filename)) return; for(i=0; itotlayer; i++) { @@ -2342,11 +2357,11 @@ void CustomData_external_read(CustomData *data, CustomDataMask mask, int totelem if(!(mask & (1<type))); else if(layer->flag & CD_FLAG_IN_MEMORY); else if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->read) { - blay= btex_layer_find(btex, layer->type, layer->name); + blay= cdf_layer_find(cdf, layer->type, layer->name); if(blay) { - if(btex_read_layer(btex, blay)) { - if(typeInfo->read(btex, layer->data, totelem)); + if(cdf_read_layer(cdf, blay)) { + if(typeInfo->read(cdf, layer->data, totelem)); else break; layer->flag |= CD_FLAG_IN_MEMORY; } @@ -2356,16 +2371,16 @@ void CustomData_external_read(CustomData *data, CustomDataMask mask, int totelem } } - btex_read_close(btex); - btex_free(btex); + cdf_read_close(cdf); + cdf_free(cdf); } -void CustomData_external_write(CustomData *data, CustomDataMask mask, int totelem, int free) +void CustomData_external_write(CustomData *data, ID *id, CustomDataMask mask, int totelem, int free) { CustomDataExternal *external= data->external; CustomDataLayer *layer; - BTex *btex; - BTexLayer *blay; + CDataFile *cdf; + CDataFileLayer *blay; const LayerTypeInfo *typeInfo; int i, update = 0; char filename[FILE_MAX]; @@ -2385,20 +2400,21 @@ void CustomData_external_write(CustomData *data, CustomDataMask mask, int totele if(!update) return; - CustomData_external_read(data, mask, totelem); + CustomData_external_read(data, id, mask, totelem); - btex= btex_create(BTEX_TYPE_MESH); + cdf= cdf_create(CDF_TYPE_MESH); for(i=0; itotlayer; i++) { layer = &data->layers[i]; typeInfo = layerType_getInfo(layer->type); - if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->write) - btex_layer_add(btex, layer->type, layer->name); + if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->filesize) + cdf_layer_add(cdf, layer->type, layer->name, + typeInfo->filesize(cdf, layer->data, totelem)); } - customdata_external_filename(filename, external); - if(!btex_write_open(btex, filename)) + customdata_external_filename(filename, id, external); + if(!cdf_write_open(cdf, filename)) return; for(i=0; itotlayer; i++) { @@ -2406,10 +2422,10 @@ void CustomData_external_write(CustomData *data, CustomDataMask mask, int totele typeInfo = layerType_getInfo(layer->type); if((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->write) { - blay= btex_layer_find(btex, layer->type, layer->name); + blay= cdf_layer_find(cdf, layer->type, layer->name); - if(btex_write_layer(btex, blay)) { - if(typeInfo->write(btex, layer->data, totelem)); + if(cdf_write_layer(cdf, blay)) { + if(typeInfo->write(cdf, layer->data, totelem)); else break; } else @@ -2418,7 +2434,7 @@ void CustomData_external_write(CustomData *data, CustomDataMask mask, int totele } if(i != data->totlayer) { - btex_free(btex); + cdf_free(cdf); return; } @@ -2435,11 +2451,11 @@ void CustomData_external_write(CustomData *data, CustomDataMask mask, int totele } } - btex_write_close(btex); - btex_free(btex); + cdf_write_close(cdf); + cdf_free(cdf); } -void CustomData_external_add(CustomData *data, int type, const char *name, int totelem) +void CustomData_external_add(CustomData *data, ID *id, int type, int totelem, const char *filename) { CustomDataExternal *external= data->external; CustomDataLayer *layer; @@ -2454,23 +2470,20 @@ void CustomData_external_add(CustomData *data, int type, const char *name, int t return; if(!external) { - char hex[MAX_ID_NAME*2]; - external= MEM_callocN(sizeof(CustomDataExternal), "CustomDataExternal"); - BLI_strhex(hex, sizeof(hex), name); - BLI_snprintf(external->filename, sizeof(external->filename), "//%s_mesh.btex", hex); + BLI_strncpy(external->filename, filename, sizeof(external->filename)); data->external= external; } layer->flag |= CD_FLAG_EXTERNAL|CD_FLAG_IN_MEMORY; } -void CustomData_external_remove(CustomData *data, int type, int totelem) +void CustomData_external_remove(CustomData *data, ID *id, int type, int totelem) { CustomDataExternal *external= data->external; CustomDataLayer *layer; - char filename[FILE_MAX]; - int layer_index, i, remove_file; + //char filename[FILE_MAX]; + int layer_index; // i, remove_file; layer_index = CustomData_get_active_layer_index(data, type); if(layer_index < 0) return; @@ -2482,20 +2495,22 @@ void CustomData_external_remove(CustomData *data, int type, int totelem) if(layer->flag & CD_FLAG_EXTERNAL) { if(!(layer->flag & CD_FLAG_IN_MEMORY)) - CustomData_external_read(data, (1<type), totelem); + CustomData_external_read(data, id, (1<type), totelem); layer->flag &= ~CD_FLAG_EXTERNAL; +#if 0 remove_file= 1; for(i=0; itotlayer; i++) if(data->layers[i].flag & CD_FLAG_EXTERNAL) remove_file= 0; if(remove_file) { - customdata_external_filename(filename, external); - btex_remove(filename); + customdata_external_filename(filename, id, external); + cdf_remove(filename); CustomData_external_free(data); } +#endif } } @@ -2511,7 +2526,8 @@ int CustomData_external_test(CustomData *data, int type) return (layer->flag & CD_FLAG_EXTERNAL); } -void CustomData_external_remove_object(CustomData *data) +#if 0 +void CustomData_external_remove_object(CustomData *data, ID *id) { CustomDataExternal *external= data->external; char filename[FILE_MAX]; @@ -2519,8 +2535,9 @@ void CustomData_external_remove_object(CustomData *data) if(!external) return; - customdata_external_filename(filename, external); - btex_remove(filename); + customdata_external_filename(filename, id, external); + cdf_remove(filename); CustomData_external_free(data); } +#endif diff --git a/source/blender/blenkernel/intern/customdata_file.c b/source/blender/blenkernel/intern/customdata_file.c new file mode 100644 index 00000000000..b58ada878de --- /dev/null +++ b/source/blender/blenkernel/intern/customdata_file.c @@ -0,0 +1,446 @@ +/* + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include +#include + +#include "MEM_guardedalloc.h" + +#include "BLI_fileops.h" +#include "BLI_string.h" + +#include "BKE_customdata_file.h" +#include "BKE_global.h" +#include "BKE_utildefines.h" + +/************************* File Format Definitions ***************************/ + +#define CDF_ENDIAN_LITTLE 0 +#define CDF_ENDIAN_BIG 1 + +#define CDF_DATA_FLOAT 0 + +typedef struct CDataFileHeader { + char ID[4]; /* "BCDF" */ + char endian; /* little, big */ + char version; /* non-compatible versions */ + char subversion; /* compatible sub versions */ + char pad; /* padding */ + + int structbytes; /* size of this struct in bytes */ + int type; /* image, mesh */ + int totlayer; /* number of layers in the file */ +} CDataFileHeader; + +typedef struct CDataFileImageHeader { + int structbytes; /* size of this struct in bytes */ + int width; /* image width */ + int height; /* image height */ + int tile_size; /* tile size (required power of 2) */ +} CDataFileImageHeader; + +typedef struct CDataFileMeshHeader { + int structbytes; /* size of this struct in bytes */ +} CDataFileMeshHeader; + +struct CDataFileLayer { + int structbytes; /* size of this struct in bytes */ + int datatype; /* only float for now */ + uint64_t datasize; /* size of data in layer */ + int type; /* layer type */ + char name[CDF_LAYER_NAME_MAX]; /* layer name */ +}; + +/**************************** Other Definitions ******************************/ + +#define CDF_VERSION 0 +#define CDF_SUBVERSION 0 +#define CDF_TILE_SIZE 64 + +struct CDataFile { + int type; + + CDataFileHeader header; + union { + CDataFileImageHeader image; + CDataFileMeshHeader mesh; + } btype; + + CDataFileLayer *layer; + int totlayer; + + FILE *readf; + FILE *writef; + int switchendian; + size_t dataoffset; +}; + +/********************************* Create/Free *******************************/ + +static int cdf_endian(void) +{ + if(ENDIAN_ORDER == L_ENDIAN) + return CDF_ENDIAN_LITTLE; + else + return CDF_ENDIAN_BIG; +} + +/*static int cdf_data_type_size(int datatype) +{ + if(datatype == CDF_DATA_FLOAT) + return sizeof(float); + + return 0; +}*/ + +CDataFile *cdf_create(int type) +{ + CDataFile *cdf= MEM_callocN(sizeof(CDataFile), "CDataFile"); + + cdf->type= type; + + return cdf; +} + +void cdf_free(CDataFile *cdf) +{ + cdf_read_close(cdf); + cdf_write_close(cdf); + + if(cdf->layer) + MEM_freeN(cdf->layer); + + MEM_freeN(cdf); +} + +/********************************* Read/Write ********************************/ + +static int cdf_read_header(CDataFile *cdf) +{ + CDataFileHeader *header; + CDataFileImageHeader *image; + CDataFileMeshHeader *mesh; + CDataFileLayer *layer; + FILE *f= cdf->readf; + size_t offset = 0; + int a; + + header= &cdf->header; + + if(!fread(header, sizeof(CDataFileHeader), 1, cdf->readf)) + return 0; + + if(memcmp(header->ID, "BCDF", sizeof(header->ID)) != 0) + return 0; + if(header->version > CDF_VERSION) + return 0; + + cdf->switchendian= header->endian != cdf_endian(); + header->endian= cdf_endian(); + + if(cdf->switchendian) { + SWITCH_INT(header->type); + SWITCH_INT(header->totlayer); + SWITCH_INT(header->structbytes); + } + + if(!ELEM(header->type, CDF_TYPE_IMAGE, CDF_TYPE_MESH)) + return 0; + + offset += header->structbytes; + header->structbytes= sizeof(CDataFileHeader); + + if(fseek(f, offset, SEEK_SET) != 0) + return 0; + + if(header->type == CDF_TYPE_IMAGE) { + image= &cdf->btype.image; + if(!fread(image, sizeof(CDataFileImageHeader), 1, f)) + return 0; + + if(cdf->switchendian) { + SWITCH_INT(image->width); + SWITCH_INT(image->height); + SWITCH_INT(image->tile_size); + SWITCH_INT(image->structbytes); + } + + offset += image->structbytes; + image->structbytes= sizeof(CDataFileImageHeader); + } + else if(header->type == CDF_TYPE_MESH) { + mesh= &cdf->btype.mesh; + if(!fread(mesh, sizeof(CDataFileMeshHeader), 1, f)) + return 0; + + if(cdf->switchendian) + SWITCH_INT(mesh->structbytes); + + offset += mesh->structbytes; + mesh->structbytes= sizeof(CDataFileMeshHeader); + } + + if(fseek(f, offset, SEEK_SET) != 0) + return 0; + + cdf->layer= MEM_callocN(sizeof(CDataFileLayer)*header->totlayer, "CDataFileLayer"); + cdf->totlayer= header->totlayer; + + for(a=0; atotlayer; a++) { + layer= &cdf->layer[a]; + + if(!fread(layer, sizeof(CDataFileLayer), 1, f)) + return 0; + + if(cdf->switchendian) { + SWITCH_INT(layer->type); + SWITCH_INT(layer->datatype); + SWITCH_INT64(layer->datasize); + SWITCH_INT(layer->structbytes); + } + + if(layer->datatype != CDF_DATA_FLOAT) + return 0; + + offset += layer->structbytes; + layer->structbytes= sizeof(CDataFileLayer); + + if(fseek(f, offset, SEEK_SET) != 0) + return 0; + } + + cdf->dataoffset= offset; + + return 1; +} + +static int cdf_write_header(CDataFile *cdf) +{ + CDataFileHeader *header; + CDataFileImageHeader *image; + CDataFileMeshHeader *mesh; + CDataFileLayer *layer; + FILE *f= cdf->writef; + int a; + + header= &cdf->header; + + if(!fwrite(header, sizeof(CDataFileHeader), 1, f)) + return 0; + + if(header->type == CDF_TYPE_IMAGE) { + image= &cdf->btype.image; + if(!fwrite(image, sizeof(CDataFileImageHeader), 1, f)) + return 0; + } + else if(header->type == CDF_TYPE_MESH) { + mesh= &cdf->btype.mesh; + if(!fwrite(mesh, sizeof(CDataFileMeshHeader), 1, f)) + return 0; + } + + for(a=0; atotlayer; a++) { + layer= &cdf->layer[a]; + + if(!fwrite(layer, sizeof(CDataFileLayer), 1, f)) + return 0; + } + + return 1; +} + +int cdf_read_open(CDataFile *cdf, char *filename) +{ + FILE *f; + + f= fopen(filename, "rb"); + if(!f) + return 0; + + cdf->readf= f; + + if(!cdf_read_header(cdf)) { + cdf_read_close(cdf); + return 0; + } + + if(cdf->header.type != cdf->type) { + cdf_read_close(cdf); + return 0; + } + + return 1; +} + +int cdf_read_layer(CDataFile *cdf, CDataFileLayer *blay) +{ + size_t offset; + int a; + + /* seek to right location in file */ + offset= cdf->dataoffset; + for(a=0; atotlayer; a++) { + if(&cdf->layer[a] == blay) + break; + else + offset += cdf->layer[a].datasize; + } + + return (fseek(cdf->readf, offset, SEEK_SET) == 0); +} + +int cdf_read_data(CDataFile *cdf, int size, void *data) +{ + float *fdata; + int a; + + /* read data */ + if(!fread(data, size, 1, cdf->readf)) + return 0; + + /* switch endian if necessary */ + if(cdf->switchendian) { + fdata= data; + + for(a=0; areadf) { + fclose(cdf->readf); + cdf->readf= NULL; + } +} + +int cdf_write_open(CDataFile *cdf, char *filename) +{ + CDataFileHeader *header; + CDataFileImageHeader *image; + CDataFileMeshHeader *mesh; + FILE *f; + + f= fopen(filename, "wb"); + if(!f) + return 0; + + cdf->writef= f; + + /* fill header */ + header= &cdf->header; + strcpy(header->ID, "BCDF"); + header->endian= cdf_endian(); + header->version= CDF_VERSION; + header->subversion= CDF_SUBVERSION; + + header->structbytes= sizeof(CDataFileHeader); + header->type= cdf->type; + header->totlayer= cdf->totlayer; + + if(cdf->type == CDF_TYPE_IMAGE) { + /* fill image header */ + image= &cdf->btype.image; + image->structbytes= sizeof(CDataFileImageHeader); + image->tile_size= CDF_TILE_SIZE; + } + else if(cdf->type == CDF_TYPE_MESH) { + /* fill mesh header */ + mesh= &cdf->btype.mesh; + mesh->structbytes= sizeof(CDataFileMeshHeader); + } + + cdf_write_header(cdf); + + return 1; +} + +int cdf_write_layer(CDataFile *cdf, CDataFileLayer *blay) +{ + return 1; +} + +int cdf_write_data(CDataFile *cdf, int size, void *data) +{ + /* write data */ + if(!fwrite(data, size, 1, cdf->writef)) + return 0; + + return 1; +} + +void cdf_write_close(CDataFile *cdf) +{ + if(cdf->writef) { + fclose(cdf->writef); + cdf->writef= NULL; + } +} + +void cdf_remove(char *filename) +{ + BLI_delete(filename, 0, 0); +} + +/********************************** Layers ***********************************/ + +CDataFileLayer *cdf_layer_find(CDataFile *cdf, int type, char *name) +{ + CDataFileLayer *layer; + int a; + + for(a=0; atotlayer; a++) { + layer= &cdf->layer[a]; + + if(layer->type == type && strcmp(layer->name, name) == 0) + return layer; + } + + return NULL; +} + +CDataFileLayer *cdf_layer_add(CDataFile *cdf, int type, char *name, size_t datasize) +{ + CDataFileLayer *newlayer, *layer; + + /* expand array */ + newlayer= MEM_callocN(sizeof(CDataFileLayer)*(cdf->totlayer+1), "CDataFileLayer"); + memcpy(newlayer, cdf->layer, sizeof(CDataFileLayer)*cdf->totlayer); + cdf->layer= newlayer; + + cdf->totlayer++; + + /* fill in new layer */ + layer= &cdf->layer[cdf->totlayer-1]; + layer->structbytes= sizeof(CDataFileLayer); + layer->datatype= CDF_DATA_FLOAT; + layer->datasize= datasize; + layer->type= type; + BLI_strncpy(layer->name, name, CDF_LAYER_NAME_MAX); + + return layer; +} + diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 8a76d659d5f..20ba360a231 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -41,7 +41,6 @@ #include "BLI_blenlib.h" #include "BLI_pbvh.h" -#include "BKE_btex.h" #include "BKE_cdderivedmesh.h" #include "BKE_customdata.h" #include "BKE_depsgraph.h" @@ -250,7 +249,7 @@ void multiresModifier_del_levels(struct MultiresModifierData *mmd, struct Object int levels = mmd->totlvl - lvl; MDisps *mdisps; - CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); + CustomData_external_read(&me->fdata, &me->id, CD_MASK_MDISPS, me->totface); mdisps= CustomData_get_layer(&me->fdata, CD_MDISPS); multires_force_update(ob); @@ -286,7 +285,7 @@ void multiresModifier_del_levels(struct MultiresModifierData *mmd, struct Object } } else { - CustomData_external_remove(&me->fdata, CD_MDISPS, me->totface); + CustomData_external_remove(&me->fdata, &me->id, CD_MDISPS, me->totface); CustomData_free_layer_active(&me->fdata, CD_MDISPS, me->totface); } } @@ -538,7 +537,7 @@ static void multiresModifier_update(DerivedMesh *dm) ob = ccgdm->multires.ob; me = ccgdm->multires.ob->data; mmd = ccgdm->multires.mmd; - CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); + CustomData_external_read(&me->fdata, &me->id, CD_MASK_MDISPS, me->totface); mdisps = CustomData_get_layer(&me->fdata, CD_MDISPS); if(mdisps) { @@ -690,7 +689,7 @@ struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, i memcpy(subGridData[i], gridData[i], sizeof(DMGridData)*gridSize*gridSize); } - CustomData_external_read(&me->fdata, CD_MASK_MDISPS, me->totface); + CustomData_external_read(&me->fdata, &me->id, CD_MASK_MDISPS, me->totface); multiresModifier_disp_run(result, ob->data, 0, 0, subGridData, mmd->totlvl); for(i = 0; i < numGrids; i++) diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index bc0db6d4cd1..280b9ffc182 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1457,13 +1457,13 @@ static void write_mdisps(WriteData *wd, int count, MDisps *mdlist, int external) } } -static void write_customdata(WriteData *wd, int count, CustomData *data, int partial_type, int partial_count) +static void write_customdata(WriteData *wd, ID *id, int count, CustomData *data, int partial_type, int partial_count) { int i; - /* write external customdata */ + /* write external customdata (not for undo) */ if(data->external && !wd->current) - CustomData_external_write(data, CD_MASK_MESH, count, 0); + CustomData_external_write(data, id, CD_MASK_MESH, count, 0); writestruct(wd, DATA, "CustomDataLayer", data->maxlayer, data->layers); @@ -1515,16 +1515,16 @@ static void write_meshs(WriteData *wd, ListBase *idbase) writedata(wd, DATA, sizeof(void *)*mesh->totcol, mesh->mat); if(mesh->pv) { - write_customdata(wd, mesh->pv->totvert, &mesh->vdata, -1, 0); - write_customdata(wd, mesh->pv->totedge, &mesh->edata, + write_customdata(wd, &mesh->id, mesh->pv->totvert, &mesh->vdata, -1, 0); + write_customdata(wd, &mesh->id, mesh->pv->totedge, &mesh->edata, CD_MEDGE, mesh->totedge); - write_customdata(wd, mesh->pv->totface, &mesh->fdata, + write_customdata(wd, &mesh->id, mesh->pv->totface, &mesh->fdata, CD_MFACE, mesh->totface); } else { - write_customdata(wd, mesh->totvert, &mesh->vdata, -1, 0); - write_customdata(wd, mesh->totedge, &mesh->edata, -1, 0); - write_customdata(wd, mesh->totface, &mesh->fdata, -1, 0); + write_customdata(wd, &mesh->id, mesh->totvert, &mesh->vdata, -1, 0); + write_customdata(wd, &mesh->id, mesh->totedge, &mesh->edata, -1, 0); + write_customdata(wd, &mesh->id, mesh->totface, &mesh->fdata, -1, 0); } /* PMV data */ diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index c87210d6070..848855da1b0 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -143,6 +143,8 @@ void OBJECT_OT_modifier_convert(struct wmOperatorType *ot); void OBJECT_OT_modifier_copy(struct wmOperatorType *ot); void OBJECT_OT_multires_subdivide(struct wmOperatorType *ot); void OBJECT_OT_multires_higher_levels_delete(struct wmOperatorType *ot); +void OBJECT_OT_multires_save_external(struct wmOperatorType *ot); +void OBJECT_OT_multires_pack_external(struct wmOperatorType *ot); void OBJECT_OT_meshdeform_bind(struct wmOperatorType *ot); void OBJECT_OT_explode_refresh(struct wmOperatorType *ot); diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 76c0f297999..a0fa0efec0a 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -44,6 +44,7 @@ #include "BLI_math.h" #include "BLI_listbase.h" #include "BLI_string.h" +#include "BLI_util.h" #include "BKE_action.h" #include "BKE_curve.h" @@ -794,21 +795,105 @@ static int multires_subdivide_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -static int multires_subdivide_poll(bContext *C) -{ - PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier); - ID *id= ptr.id.data; - return (ptr.data && id && !id->lib); -} - void OBJECT_OT_multires_subdivide(wmOperatorType *ot) { ot->name= "Multires Subdivide"; ot->description= "Add a new level of subdivision."; ot->idname= "OBJECT_OT_multires_subdivide"; + ot->poll= multires_poll; ot->exec= multires_subdivide_exec; - ot->poll= multires_subdivide_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + +/****************** multires save external operator *********************/ + +static int multires_save_external_exec(bContext *C, wmOperator *op) +{ + PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier); + Object *ob= ptr.id.data; + Mesh *me= (ob)? ob->data: op->customdata; + char path[FILE_MAX]; + + if(CustomData_external_test(&me->fdata, CD_MDISPS)) + return OPERATOR_CANCELLED; + + RNA_string_get(op->ptr, "path", path); + if(G.save_over) + BLI_makestringcode(G.sce, path); /* make relative */ + + CustomData_external_add(&me->fdata, &me->id, CD_MDISPS, me->totface, path); + CustomData_external_write(&me->fdata, &me->id, CD_MASK_MESH, me->totface, 0); + + return OPERATOR_FINISHED; +} + +static int multires_save_external_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier); + Object *ob= ptr.id.data; + Mesh *me= ob->data; + char path[FILE_MAX]; + + if(CustomData_external_test(&me->fdata, CD_MDISPS)) + return OPERATOR_CANCELLED; + + if(RNA_property_is_set(op->ptr, "path")) + return multires_save_external_exec(C, op); + + op->customdata= me; + + BLI_snprintf(path, sizeof(path), "//%s.btx", me->id.name+2); + RNA_string_set(op->ptr, "path", path); + + WM_event_add_fileselect(C, op); + + return OPERATOR_RUNNING_MODAL; +} + +void OBJECT_OT_multires_save_external(wmOperatorType *ot) +{ + ot->name= "Multires Save External"; + ot->description= "Save displacements to an external file."; + ot->idname= "OBJECT_OT_multires_save_external"; + + ot->poll= multires_poll; + ot->exec= multires_save_external_exec; + ot->invoke= multires_save_external_invoke; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + WM_operator_properties_filesel(ot, FOLDERFILE|BTXFILE, FILE_SPECIAL); +} + +/****************** multires pack operator *********************/ + +static int multires_pack_external_exec(bContext *C, wmOperator *op) +{ + PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier); + Object *ob= ptr.id.data; + Mesh *me= ob->data; + + if(!CustomData_external_test(&me->fdata, CD_MDISPS)) + return OPERATOR_CANCELLED; + + // XXX don't remove.. + CustomData_external_remove(&me->fdata, &me->id, CD_MDISPS, me->totface); + + return OPERATOR_FINISHED; +} + +void OBJECT_OT_multires_pack_external(wmOperatorType *ot) +{ + ot->name= "Multires Pack External"; + ot->description= "Pack displacements from an external file."; + ot->idname= "OBJECT_OT_multires_pack_external"; + + ot->poll= multires_poll; + ot->exec= multires_pack_external_exec; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 13b1155d616..7376b5aa939 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -136,6 +136,8 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_modifier_copy); WM_operatortype_append(OBJECT_OT_multires_subdivide); WM_operatortype_append(OBJECT_OT_multires_higher_levels_delete); + WM_operatortype_append(OBJECT_OT_multires_save_external); + WM_operatortype_append(OBJECT_OT_multires_pack_external); WM_operatortype_append(OBJECT_OT_meshdeform_bind); WM_operatortype_append(OBJECT_OT_explode_refresh); diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c index a1f9a9fd250..93bedd0b866 100644 --- a/source/blender/editors/space_file/file_draw.c +++ b/source/blender/editors/space_file/file_draw.c @@ -310,6 +310,8 @@ static int get_file_icon(struct direntry *file) return ICON_FILE_SOUND; else if (file->flags & FTFONTFILE) return ICON_FILE_FONT; + else if (file->flags & BTXFILE) + return ICON_FILE_BLANK; else return ICON_FILE_BLANK; } diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index 640f365b073..81aa63dcad9 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -871,6 +871,8 @@ void filelist_setfiletypes(struct FileList* filelist, short has_quicktime) || BLI_testextensie(file->relname, ".otf") || BLI_testextensie(file->relname, ".otc")) { file->flags |= FTFONTFILE; + } else if(BLI_testextensie(file->relname, ".btx")) { + file->flags |= BTXFILE; } else if (has_quicktime){ if( BLI_testextensie(file->relname, ".int") || BLI_testextensie(file->relname, ".inta") diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index d681a58b276..bf580545455 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -161,6 +161,8 @@ short ED_fileselect_set_params(SpaceFile *sfile) params->filter |= RNA_boolean_get(op->ptr, "filter_text") ? TEXTFILE : 0; if(RNA_struct_find_property(op->ptr, "filter_folder")) params->filter |= RNA_boolean_get(op->ptr, "filter_folder") ? FOLDERFILE : 0; + if(RNA_struct_find_property(op->ptr, "filter_btx")) + params->filter |= RNA_boolean_get(op->ptr, "filter_btx") ? BTXFILE : 0; if (params->filter != 0) params->flag |= FILE_FILTER; diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 7a76417fe4b..83181d10df5 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -667,6 +667,7 @@ enum FileSortTypeE { #define TEXTFILE 512 #define MOVIEFILE_ICON 1024 /* movie file that preview can't load */ #define FOLDERFILE 2048 /* represents folders for filtering */ +#define BTXFILE 4096 /* SpaceImage->dt_uv */ #define SI_UVDT_OUTLINE 0 diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ae02489537f..5a534a8ce14 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -357,15 +357,29 @@ static int rna_MultiresModifier_external_get(PointerRNA *ptr) return CustomData_external_test(&me->fdata, CD_MDISPS); } -static void rna_MultiresModifier_external_set(PointerRNA *ptr, int value) +static void rna_MultiresModifier_filename_get(PointerRNA *ptr, char *value) { Object *ob= (Object*)ptr->id.data; - Mesh *me= ob->data; + CustomDataExternal *external= ((Mesh*)ob->data)->fdata.external; + + BLI_strncpy(value, (external)? external->filename: "", sizeof(external->filename)); +} + +static void rna_MultiresModifier_filename_set(PointerRNA *ptr, const char *value) +{ + Object *ob= (Object*)ptr->id.data; + CustomDataExternal *external= ((Mesh*)ob->data)->fdata.external; + + if(external) + BLI_strncpy(external->filename, value, sizeof(external->filename)); +} + +static int rna_MultiresModifier_filename_length(PointerRNA *ptr) +{ + Object *ob= (Object*)ptr->id.data; + CustomDataExternal *external= ((Mesh*)ob->data)->fdata.external; - if(CustomData_external_test(&me->fdata, CD_MDISPS) && !value) - CustomData_external_remove(&me->fdata, CD_MDISPS, me->totface); - else if(!CustomData_external_test(&me->fdata, CD_MDISPS) && value) - CustomData_external_add(&me->fdata, CD_MDISPS, me->id.name+2, me->totface); + return strlen((external)? external->filename: ""); } static int rna_MultiresModifier_external_editable(PointerRNA *ptr) @@ -580,10 +594,16 @@ static void rna_def_modifier_multires(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Total Levels", "Number of subdivisions for which displacements are stored."); prop= RNA_def_property(srna, "external", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_funcs(prop, "rna_MultiresModifier_external_get", "rna_MultiresModifier_external_set"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_MultiresModifier_external_get", NULL); RNA_def_property_editable_func(prop, "rna_MultiresModifier_external_editable"); RNA_def_property_ui_text(prop, "External", "Store multires displacements outside the .blend file, to save memory."); + prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); + RNA_def_property_string_funcs(prop, "rna_MultiresModifier_filename_get", "rna_MultiresModifier_filename_length", "rna_MultiresModifier_filename_set"); + RNA_def_property_ui_text(prop, "Filename", "Path to external displacements file."); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + prop= RNA_def_property(srna, "optimal_display", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flags", eMultiresModifierFlag_ControlEdges); RNA_def_property_ui_text(prop, "Optimal Display", "Skip drawing/rendering of interior subdivided edges"); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 8c819c1e3a0..751785a417a 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -680,6 +680,8 @@ void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type) RNA_def_property_flag(prop, PROP_HIDDEN); prop= RNA_def_boolean(ot->srna, "filter_text", (filter & TEXTFILE), "Filter text files", ""); RNA_def_property_flag(prop, PROP_HIDDEN); + prop= RNA_def_boolean(ot->srna, "filter_btx", (filter & BTXFILE), "Filter btx files", ""); + RNA_def_property_flag(prop, PROP_HIDDEN); prop= RNA_def_boolean(ot->srna, "filter_folder", (filter & FOLDERFILE), "Filter folders", ""); RNA_def_property_flag(prop, PROP_HIDDEN); -- cgit v1.2.3 From 959ac68914c684081e1526b4c9e6380d71cbff1f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 14:47:07 +0000 Subject: align option for split --- source/blender/editors/animation/fmodifier_ui.c | 8 ++++---- source/blender/editors/gpencil/gpencil_buttons.c | 2 +- source/blender/editors/include/UI_interface.h | 2 +- source/blender/editors/interface/interface_layout.c | 7 ++++--- source/blender/editors/interface/interface_regions.c | 2 +- source/blender/editors/interface/interface_templates.c | 4 ++-- source/blender/editors/interface/interface_utils.c | 2 +- source/blender/editors/space_image/image_buttons.c | 6 +++--- source/blender/editors/space_view3d/view3d_buttons.c | 6 +++--- source/blender/editors/space_view3d/view3d_select.c | 2 +- source/blender/makesrna/intern/rna_sequence.c | 2 +- source/blender/makesrna/intern/rna_ui_api.c | 1 + source/blender/windowmanager/intern/wm_operators.c | 2 +- 13 files changed, 24 insertions(+), 22 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index 17d8f0a847b..ebddcd45a8b 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -276,7 +276,7 @@ static void draw_modifier__cycles(uiLayout *layout, ID *id, FModifier *fcm, shor /* split into 2 columns * NOTE: the mode comboboxes shouldn't get labels, otherwise there isn't enough room */ - split= uiLayoutSplit(layout, 0.5f); + split= uiLayoutSplit(layout, 0.5f, 0); /* before range */ col= uiLayoutColumn(split, 1); @@ -306,7 +306,7 @@ static void draw_modifier__noise(uiLayout *layout, ID *id, FModifier *fcm, short uiItemR(layout, NULL, 0, &ptr, "modification", 0); /* split into 2 columns */ - split= uiLayoutSplit(layout, 0.5f); + split= uiLayoutSplit(layout, 0.5f, 0); /* col 1 */ col= uiLayoutColumn(split, 0); @@ -588,7 +588,7 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor row= uiLayoutRow(layout, 0); /* split into 2 columns */ - split= uiLayoutSplit(layout, 0.5f); + split= uiLayoutSplit(layout, 0.5f, 0); /* x-minimum */ col= uiLayoutColumn(split, 1); @@ -606,7 +606,7 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor row= uiLayoutRow(layout, 0); /* split into 2 columns */ - split= uiLayoutSplit(layout, 0.5f); + split= uiLayoutSplit(layout, 0.5f, 0); /* x-minimum */ col= uiLayoutColumn(split, 1); diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c index 4da5ec02ddc..5deffbabb77 100644 --- a/source/blender/editors/gpencil/gpencil_buttons.c +++ b/source/blender/editors/gpencil/gpencil_buttons.c @@ -187,7 +187,7 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl) /* new backdrop ----------------------------------- */ box= uiLayoutBox(layout); - split= uiLayoutSplit(box, 0.5f); + split= uiLayoutSplit(box, 0.5f, 0); /* draw settings ---------------------------------- */ diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index aed1e5d5f0d..5febaa3e5a1 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -629,7 +629,7 @@ uiLayout *uiLayoutBox(uiLayout *layout); uiLayout *uiLayoutListBox(uiLayout *layout, struct PointerRNA *ptr, struct PropertyRNA *prop, struct PointerRNA *actptr, struct PropertyRNA *actprop); uiLayout *uiLayoutAbsolute(uiLayout *layout, int align); -uiLayout *uiLayoutSplit(uiLayout *layout, float percentage); +uiLayout *uiLayoutSplit(uiLayout *layout, float percentage, int align); uiLayout *uiLayoutOverlap(uiLayout *layout); uiBlock *uiLayoutAbsoluteBlock(uiLayout *layout); diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 168b1532db8..bfb5ab11263 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -714,7 +714,7 @@ void uiItemsEnumO(uiLayout *layout, char *opname, char *propname) if(prop && RNA_property_type(prop) == PROP_ENUM) { EnumPropertyItem *item; int totitem, i, free; - uiLayout *split= uiLayoutSplit(layout, 0); + uiLayout *split= uiLayoutSplit(layout, 0, 0); uiLayout *column= uiLayoutColumn(split, 0); RNA_property_enum_items(block->evil_C, &ptr, prop, &item, &totitem, &free); @@ -1024,7 +1024,7 @@ void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname) if(RNA_property_type(prop) == PROP_ENUM) { EnumPropertyItem *item; int totitem, i, free; - uiLayout *split= uiLayoutSplit(layout, 0); + uiLayout *split= uiLayoutSplit(layout, 0, 0); uiLayout *column= uiLayoutColumn(split, 0); RNA_property_enum_items(block->evil_C, ptr, prop, &item, &totitem, &free); @@ -2088,13 +2088,14 @@ uiLayout *uiLayoutOverlap(uiLayout *layout) return litem; } -uiLayout *uiLayoutSplit(uiLayout *layout, float percentage) +uiLayout *uiLayoutSplit(uiLayout *layout, float percentage, int align) { uiLayoutItemSplt *split; split= MEM_callocN(sizeof(uiLayoutItemSplt), "uiLayoutItemSplt"); split->litem.item.type= ITEM_LAYOUT_SPLIT; split->litem.root= layout->root; + split->litem.align= align; split->litem.active= 1; split->litem.enabled= 1; split->litem.context= layout->context; diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 55b908a44ce..f01ae990586 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1377,7 +1377,7 @@ static void ui_block_func_MENUSTR(bContext *C, uiLayout *layout, void *arg_str) } /* create items */ - split= uiLayoutSplit(layout, 0); + split= uiLayoutSplit(layout, 0, 0); for(a=0, b=0; anitems; a++, b++) { if(block->flag & UI_BLOCK_NO_FLIP) diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index f59e10ede75..0c5f03f0d0f 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -1864,7 +1864,7 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe /* black/white levels */ if(levels) { - split= uiLayoutSplit(layout, 0); + split= uiLayoutSplit(layout, 0, 0); uiItemR(uiLayoutColumn(split, 0), NULL, 0, ptr, "black_level", UI_ITEM_R_EXPAND); uiItemR(uiLayoutColumn(split, 0), NULL, 0, ptr, "white_level", UI_ITEM_R_EXPAND); @@ -2098,7 +2098,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe else if(itemptr->type == &RNA_ShapeKey) { ob= (Object*)activeptr->data; - split= uiLayoutSplit(sub, 0.75f); + split= uiLayoutSplit(sub, 0.75f, 0); uiItemL(split, name, icon); diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index 7aaa6cbb42b..a8cd0e017ed 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -151,7 +151,7 @@ void uiDefAutoButsRNA(const bContext *C, uiLayout *layout, PointerRNA *ptr, int uiItemL(col, name, 0); } else if(columns == 2) { - split = uiLayoutSplit(layout, 0.5f); + split = uiLayoutSplit(layout, 0.5f, 0); uiItemL(uiLayoutColumn(split, 0), name, 0); col= uiLayoutColumn(split, 0); diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index a184ea2b2c4..bb989b35cd5 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -1024,7 +1024,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn if(ima->source != IMA_SRC_GENERATED) { uiItemS(layout); - split= uiLayoutSplit(layout, 0); + split= uiLayoutSplit(layout, 0, 0); col= uiLayoutColumn(split, 0); uiItemR(col, NULL, 0, &imaptr, "fields", 0); @@ -1040,7 +1040,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn if(ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) { uiItemS(layout); - split= uiLayoutSplit(layout, 0); + split= uiLayoutSplit(layout, 0, 0); col= uiLayoutColumn(split, 0); @@ -1062,7 +1062,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn uiItemR(col, NULL, 0, userptr, "cyclic", 0); } else if(ima->source==IMA_SRC_GENERATED) { - split= uiLayoutSplit(layout, 0); + split= uiLayoutSplit(layout, 0, 0); col= uiLayoutColumn(split, 1); uiItemR(col, "X", 0, &imaptr, "generated_width", 0); diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index a988ceb50e7..a21b8442c85 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -502,7 +502,7 @@ static void v3d_transform_butsR(uiLayout *layout, PointerRNA *ptr) { uiLayout *split, *colsub; - split = uiLayoutSplit(layout, 0.8); + split = uiLayoutSplit(layout, 0.8, 0); if (ptr->type == &RNA_PoseBone) { PointerRNA boneptr; @@ -518,7 +518,7 @@ static void v3d_transform_butsR(uiLayout *layout, PointerRNA *ptr) uiItemL(colsub, "", 0); uiItemR(colsub, "", ICON_LOCKED, ptr, "lock_location", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY); - split = uiLayoutSplit(layout, 0.8); + split = uiLayoutSplit(layout, 0.8, 0); switch(RNA_enum_get(ptr, "rotation_mode")) { case ROT_MODE_QUAT: /* quaternion */ @@ -553,7 +553,7 @@ static void v3d_transform_butsR(uiLayout *layout, PointerRNA *ptr) } uiItemR(layout, "", 0, ptr, "rotation_mode", 0); - split = uiLayoutSplit(layout, 0.8); + split = uiLayoutSplit(layout, 0.8, 0); colsub = uiLayoutColumn(split, 1); uiItemR(colsub, "Scale", 0, ptr, "scale", 0); colsub = uiLayoutColumn(split, 1); diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 54038853775..e7ebcbdb849 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -908,7 +908,7 @@ static Base *mouse_select_menu(bContext *C, ViewContext *vc, unsigned int *buffe /* UI */ uiPopupMenu *pup= uiPupMenuBegin(C, "Select Object", 0); uiLayout *layout= uiPupMenuLayout(pup); - uiLayout *split= uiLayoutSplit(layout, 0); + uiLayout *split= uiLayoutSplit(layout, 0, 0); uiLayout *column= uiLayoutColumn(split, 0); LinkNode *node; diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 136dfe0b9b7..52ce9bd721d 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -1155,7 +1155,7 @@ static void rna_def_solid_color(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; - + srna = RNA_def_struct(brna, "ColorSequence", "EffectSequence"); RNA_def_struct_ui_text(srna, "Color Sequence", "Sequence strip creating an image filled with a single color."); RNA_def_struct_sdna_from(srna, "SolidColorVars", "effectdata"); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 5880e1d7ae6..0955ec1c581 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -145,6 +145,7 @@ void RNA_api_ui_layout(StructRNA *srna) parm= RNA_def_pointer(func, "layout", "UILayout", "", "Sub-layout to put items in."); RNA_def_function_return(func, parm); RNA_def_float(func, "percentage", 0.0f, 0.0f, 1.0f, "Percentage", "Percentage of width to split at.", 0.0f, 1.0f); + RNA_def_boolean(func, "align", 0, "", "Align buttons to each other."); /* items */ func= RNA_def_function(srna, "prop", "rna_uiItemR"); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 8c819c1e3a0..818dcd98afd 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -922,7 +922,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *arg_unuse uiLayoutSetOperatorContext(layout, WM_OP_EXEC_REGION_WIN); - split = uiLayoutSplit(layout, 0); + split = uiLayoutSplit(layout, 0, 0); col = uiLayoutColumn(split, 0); uiItemL(col, "Links", 0); uiItemO(col, NULL, ICON_URL, "HELP_OT_release_logs"); -- cgit v1.2.3 From 0cc5d50d9183ca3915ae6d0fd423127d7fc43df4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 16:52:44 +0000 Subject: operator report function so python operators can report errors TODO - reports are currently shown upside down. --- source/blender/makesdna/DNA_windowmanager_types.h | 2 +- source/blender/makesrna/RNA_enum_types.h | 2 ++ source/blender/makesrna/intern/rna_wm.c | 15 +++++++++++++++ source/blender/makesrna/intern/rna_wm_api.c | 17 +++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 714dc853419..678cc85ee0f 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -60,7 +60,7 @@ struct uiLayout; #define OP_MAX_TYPENAME 64 #define KMAP_MAX_NAME 64 - +/* keep in sync with 'wm_report_items' in wm_rna.c */ typedef enum ReportType { RPT_DEBUG = 1<<0, RPT_INFO = 1<<1, diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h index 479397a2180..55ebf014b64 100644 --- a/source/blender/makesrna/RNA_enum_types.h +++ b/source/blender/makesrna/RNA_enum_types.h @@ -72,6 +72,8 @@ extern EnumPropertyItem space_type_items[]; extern EnumPropertyItem keymap_propvalue_items[]; +extern EnumPropertyItem wm_report_items[]; + struct bContext; struct PointerRNA; EnumPropertyItem *rna_TransformOrientation_itemf(struct bContext *C, struct PointerRNA *ptr, int *free); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 6459e5d7c48..b0d8e372cb0 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -251,6 +251,18 @@ EnumPropertyItem operator_return_items[] = { {OPERATOR_PASS_THROUGH, "PASS_THROUGH", 0, "Pass Through", ""}, // used as a flag {0, NULL, 0, NULL, NULL}}; +/* flag/enum */ +EnumPropertyItem wm_report_items[] = { + {RPT_DEBUG, "DEBUG", 0, "Debug", ""}, + {RPT_INFO, "INFO", 0, "Info", ""}, + {RPT_OPERATOR, "OPERATOR", 0, "Operator", ""}, + {RPT_WARNING, "WARNING", 0, "Warning", ""}, + {RPT_ERROR, "ERROR", 0, "Error", ""}, + {RPT_ERROR_INVALID_INPUT, "ERROR_INVALID_INPUT", 0, "Invalid Input", ""},\ + {RPT_ERROR_INVALID_CONTEXT, "ERROR_INVALID_CONTEXT", 0, "Invalid Context", ""}, + {RPT_ERROR_OUT_OF_MEMORY, "ERROR_OUT_OF_MEMORY", 0, "Out of Memory", ""}, + {0, NULL, 0, NULL, NULL}}; + #define KMI_TYPE_KEYBOARD 0 #define KMI_TYPE_MOUSE 1 #define KMI_TYPE_TWEAK 2 @@ -601,10 +613,13 @@ static void rna_def_operator(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Properties", ""); RNA_def_property_pointer_funcs(prop, "rna_Operator_properties_get", NULL, NULL); + RNA_api_operator(srna); + srna= RNA_def_struct(brna, "OperatorProperties", NULL); RNA_def_struct_ui_text(srna, "Operator Properties", "Input properties of an Operator."); RNA_def_struct_refine_func(srna, "rna_OperatorProperties_refine"); RNA_def_struct_idproperties_func(srna, "rna_OperatorProperties_idproperties"); + } static void rna_def_macro_operator(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index 2fbcd2f4ae3..47d15c87596 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -134,6 +134,11 @@ static wmKeyMapItem *rna_KeyMap_add_item(wmKeyMap *km, ReportList *reports, char return WM_keymap_add_item(km, idname, type, value, modifier, keymodifier); } +static void rna_Operator_report(wmOperator *op, int type, char *msg) +{ + BKE_report(op->reports, type, msg); +} + #else void RNA_api_wm(StructRNA *srna) @@ -177,6 +182,18 @@ void RNA_api_wm(StructRNA *srna) parm= RNA_def_int(func, "height", 20, 0, INT_MAX, "", "Height of the popup.", 0, INT_MAX); } +void RNA_api_operator(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + func= RNA_def_function(srna, "report", "rna_Operator_report"); + parm= RNA_def_enum(func, "type", wm_report_items, 0, "Type", ""); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_ENUM_FLAG); + parm= RNA_def_string(func, "message", "", 0, "Report Message", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); +} + void RNA_api_keyconfig(StructRNA *srna) { FunctionRNA *func; -- cgit v1.2.3 From e7bd63c128975b75afa02a31b4b4e962f8d7d2fd Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 10 Dec 2009 17:37:04 +0000 Subject: Sculpt Branch: * Multires 2.50 -> Branch compatibility code converting to the new displacement format. 2.49 -> 2.50 is not functional yet. --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenkernel/BKE_multires.h | 5 +- source/blender/blenkernel/intern/multires.c | 171 +++++++++++++++++++++--- source/blender/blenloader/intern/readfile.c | 84 ++++-------- source/blender/editors/object/object_modifier.c | 6 + 5 files changed, 184 insertions(+), 84 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 7bbcb63a7f5..08503a3d00c 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -43,7 +43,7 @@ struct bContext; struct ReportList; #define BLENDER_VERSION 250 -#define BLENDER_SUBVERSION 8 +#define BLENDER_SUBVERSION 9 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index ff320bc7d25..2f372f80957 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -54,8 +54,9 @@ int multiresModifier_reshape(struct MultiresModifierData *mmd, struct Object *ds void multires_stitch_grids(struct Object *); /* Related to the old multires */ -void multires_load_old(struct DerivedMesh *, struct Multires *); -void multires_free(struct Multires*); +void multires_free(struct Multires *mr); +void multires_load_old(struct Object *ob, struct Mesh *me); +void multires_load_old_250(struct Mesh *); #endif diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 20ba360a231..bf02bd89f72 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -614,12 +614,16 @@ static void multiresModifier_update(DerivedMesh *dm) } } +static void multires_dm_mark_as_modified(struct DerivedMesh *dm) +{ + CCGDerivedMesh *ccgdm = (CCGDerivedMesh*)dm; + ccgdm->multires.modified = 1; +} + void multires_mark_as_modified(struct Object *ob) { - if(ob && ob->derivedFinal) { - CCGDerivedMesh *ccgdm = (CCGDerivedMesh*)ob->derivedFinal; - ccgdm->multires.modified = 1; - } + if(ob && ob->derivedFinal) + multires_dm_mark_as_modified(ob->derivedFinal); } void multires_force_update(Object *ob) @@ -702,35 +706,99 @@ struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, i /**** Old Multires code **** ***************************/ -#if 0 -static void mdisp_copy_grid(float (*new)[3], int newstride, float (*old)[3], int oldstride, int xoff, int yoff, int xsize, int ysize) +/* Adapted from sculptmode.c */ +static void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v) { - int x, y; + int x, y, x2, y2; + const int st_max = st - 1; + float urat, vrat, uopp; + float d[4][3], d2[2][3]; + + if(u < 0) + u = 0; + else if(u >= st) + u = st_max; + if(v < 0) + v = 0; + else if(v >= st) + v = st_max; + + x = floor(u); + y = floor(v); + x2 = x + 1; + y2 = y + 1; + + if(x2 >= st) x2 = st_max; + if(y2 >= st) y2 = st_max; + + urat = u - x; + vrat = v - y; + uopp = 1 - urat; - for(y = 0; y < ysize; ++y) - for(x = 0; x < xsize; ++x) - copy_v3_v3(disps[x + y*side], mdisp->disps[(x + xoffs) + (y + yoffs)*oldside]); + mul_v3_v3fl(d[0], disps[y * st + x], uopp); + mul_v3_v3fl(d[1], disps[y * st + x2], urat); + mul_v3_v3fl(d[2], disps[y2 * st + x], uopp); + mul_v3_v3fl(d[3], disps[y2 * st + x2], urat); + add_v3_v3v3(d2[0], d[0], d[1]); + add_v3_v3v3(d2[1], d[2], d[3]); + mul_v3_fl(d2[0], 1 - vrat); + mul_v3_fl(d2[1], vrat); + + add_v3_v3v3(out, d2[0], d2[1]); } -static void mdisps_convert(MFace *mface, MDisps *mdisp, int lvl) +static void old_mdisps_rotate(int S, int newside, int oldside, int x, int y, float *u, float *v) { - int side = multires_side_tot[lvl]; + float offset = oldside*0.5f - 0.5f; + + if(S == 1) { *u= offset + x; *v = offset - y; } + if(S == 2) { *u= offset + y; *v = offset + x; } + if(S == 3) { *u= offset - x; *v = offset + y; } + if(S == 0) { *u= offset - y; *v = offset - x; } +} + +static void old_mdisps_convert(MFace *mface, MDisps *mdisp) +{ + int newlvl = log(sqrt(mdisp->totdisp)-1)/log(2); + int oldlvl = newlvl+1; + int oldside = multires_side_tot[oldlvl]; + int newside = multires_side_tot[newlvl]; int nvert = (mface->v4)? 4: 3; - int totdisp = multires_grid_tot[lvl]*nvert; - int x, y; - float (*disps)[3]; + int newtotdisp = multires_grid_tot[newlvl]*nvert; + int x, y, S; + float (*disps)[3], (*out)[3], u, v; + + disps = MEM_callocN(sizeof(float) * 3 * newtotdisp, "multires disps"); + + out = disps; + for(S = 0; S < nvert; S++) { + for(y = 0; y < newside; ++y) { + for(x = 0; x < newside; ++x, ++out) { + old_mdisps_rotate(S, newside, oldside, x, y, &u, &v); + old_mdisps_bilinear(*out, mdisp->disps, oldside, u, v); + } + } + } - disps = MEM_callocN(sizeof(float) * 3 * totdisp, "multires disps"); + MEM_freeN(mdisp->disps); + mdisp->totdisp= newtotdisp; + mdisp->disps= disps; +} +void multires_load_old_250(Mesh *me) +{ + MDisps *mdisps; + int a; -static const int multires_max_levels = 13; -static const int multires_grid_tot[] = {1, 4, 9, 25, 81, 289, 1089, 4225, 16641, 66049, 263169, 1050625, 4198401, 16785409}; -static const int multires_side_tot[] = {1, 2, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097}; + mdisps= CustomData_get_layer(&me->fdata, CD_MDISPS); + if(mdisps) { + for(a=0; atotface; a++) + old_mdisps_convert(&me->mface[a], &mdisps[a]); + } } -#endif /* Does not actually free lvl itself */ static void multires_free_level(MultiresLevel *lvl) @@ -770,6 +838,7 @@ void multires_free(Multires *mr) } } +#if 0 static void create_old_vert_face_map(ListBase **map, IndexNode **mem, const MultiresFace *mface, const int totvert, const int totface) { @@ -893,12 +962,11 @@ static void multires_load_old_faces(ListBase **fmap, ListBase **emap, MultiresLe } /* Loads a multires object stored in the old Multires struct into the new format */ -void multires_load_old(DerivedMesh *dm, Multires *mr) +static void multires_load_old_dm(DerivedMesh *dm, Multires *mr, int totlvl) { MultiresLevel *lvl, *lvl1; MVert *vsrc, *vdst; int src, dst; - int totlvl = 2; // XXX MultiresDM_get_totlvl(dm); int st = multires_side_tot[totlvl - 1] - 1; int extedgelen = multires_side_tot[totlvl] - 2; int *vvmap; // inorder for dst, map to src @@ -1056,4 +1124,63 @@ void multires_load_old(DerivedMesh *dm, Multires *mr) MEM_freeN(vvmap); } +#endif + +void multires_load_old(Object *ob, Mesh *me) +{ + /* XXX not implemented */ +#if 0 + MultiresLevel *lvl; + ModifierData *md; + MultiresModifierData *mmd; + DerivedMesh *dm, *orig; + int i; + + /* Load original level into the mesh */ + lvl = me->mr->levels.first; + CustomData_free_layers(&me->vdata, CD_MVERT, lvl->totvert); + CustomData_free_layers(&me->edata, CD_MEDGE, lvl->totedge); + CustomData_free_layers(&me->fdata, CD_MFACE, lvl->totface); + me->totvert = lvl->totvert; + me->totedge = lvl->totedge; + me->totface = lvl->totface; + me->mvert = CustomData_add_layer(&me->vdata, CD_MVERT, CD_CALLOC, NULL, me->totvert); + me->medge = CustomData_add_layer(&me->edata, CD_MEDGE, CD_CALLOC, NULL, me->totedge); + me->mface = CustomData_add_layer(&me->fdata, CD_MFACE, CD_CALLOC, NULL, me->totface); + memcpy(me->mvert, me->mr->verts, sizeof(MVert) * me->totvert); + for(i = 0; i < me->totedge; ++i) { + me->medge[i].v1 = lvl->edges[i].v[0]; + me->medge[i].v2 = lvl->edges[i].v[1]; + } + for(i = 0; i < me->totface; ++i) { + me->mface[i].v1 = lvl->faces[i].v[0]; + me->mface[i].v2 = lvl->faces[i].v[1]; + me->mface[i].v3 = lvl->faces[i].v[2]; + me->mface[i].v4 = lvl->faces[i].v[3]; + } + + /* Add a multires modifier to the object */ + md = ob->modifiers.first; + while(md && modifierType_getInfo(md->type)->type == eModifierTypeType_OnlyDeform) + md = md->next; + mmd = (MultiresModifierData*)modifier_new(eModifierType_Multires); + BLI_insertlinkbefore(&ob->modifiers, md, mmd); + + for(i = 0; i < me->mr->level_count - 1; ++i) + multiresModifier_subdivide(mmd, ob, 1, 0); + + mmd->lvl = mmd->totlvl; + orig = CDDM_from_mesh(me, NULL); + dm = multires_dm_create_from_derived(mmd, 0, orig, ob, 0, 0); + + multires_load_old_dm(dm, me->mr, mmd->totlvl); + + multires_dm_mark_as_modified(dm); + dm->release(dm); + orig->release(orig); +#endif + + /* Remove the old multires */ + multires_free(me->mr); +} diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 3ab557fe058..039f8c60201 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -9633,7 +9633,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) ToolSettings *ts; //PTCacheID *pid; //ListBase pidlist; - int /*i, */a; + int a; for(ob = main->object.first; ob; ob = ob->id.next) { //BKE_ptcache_ids_from_object(&pidlist, ob); @@ -9650,62 +9650,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main) void *olddata = ob->data; ob->data = me; - if(me && me->id.lib==NULL && me->mr) { /* XXX - library meshes crash on loading most yoFrankie levels, the multires pointer gets invalid - Campbell */ - // XXX -#if 0 - MultiresLevel *lvl; - ModifierData *md; - MultiresModifierData *mmd; - DerivedMesh *dm, *orig; - - /* Load original level into the mesh */ - lvl = me->mr->levels.first; - CustomData_free_layers(&me->vdata, CD_MVERT, lvl->totvert); - CustomData_free_layers(&me->edata, CD_MEDGE, lvl->totedge); - CustomData_free_layers(&me->fdata, CD_MFACE, lvl->totface); - me->totvert = lvl->totvert; - me->totedge = lvl->totedge; - me->totface = lvl->totface; - me->mvert = CustomData_add_layer(&me->vdata, CD_MVERT, CD_CALLOC, NULL, me->totvert); - me->medge = CustomData_add_layer(&me->edata, CD_MEDGE, CD_CALLOC, NULL, me->totedge); - me->mface = CustomData_add_layer(&me->fdata, CD_MFACE, CD_CALLOC, NULL, me->totface); - memcpy(me->mvert, me->mr->verts, sizeof(MVert) * me->totvert); - for(i = 0; i < me->totedge; ++i) { - me->medge[i].v1 = lvl->edges[i].v[0]; - me->medge[i].v2 = lvl->edges[i].v[1]; - } - for(i = 0; i < me->totface; ++i) { - me->mface[i].v1 = lvl->faces[i].v[0]; - me->mface[i].v2 = lvl->faces[i].v[1]; - me->mface[i].v3 = lvl->faces[i].v[2]; - me->mface[i].v4 = lvl->faces[i].v[3]; - } - - /* Add a multires modifier to the object */ - md = ob->modifiers.first; - while(md && modifierType_getInfo(md->type)->type == eModifierTypeType_OnlyDeform) - md = md->next; - mmd = (MultiresModifierData*)modifier_new(eModifierType_Multires); - BLI_insertlinkbefore(&ob->modifiers, md, mmd); - - for(i = 0; i < me->mr->level_count - 1; ++i) - multiresModifier_subdivide(mmd, ob, 1, 0); - - mmd->lvl = mmd->totlvl; - orig = CDDM_from_mesh(me, NULL); - dm = multires_dm_create_from_derived(mmd, 0, orig, ob, 0, 0); - - multires_load_old(dm, me->mr); - - MultiresDM_mark_as_modified(dm); - dm->release(dm); - orig->release(orig); - - /* Remove the old multires */ - multires_free(me->mr); -#endif - me->mr = NULL; - } + if(me && me->id.lib==NULL && me->mr) /* XXX - library meshes crash on loading most yoFrankie levels, the multires pointer gets invalid - Campbell */ + multires_load_old(ob, me); ob->data = olddata; } @@ -10177,13 +10123,33 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - /* put 2.50 compatibility code here until next subversion bump */ + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 9)) { - Scene *sce= main->scene.first; + Scene *sce; + Mesh *me; + Object *ob; for(sce=main->scene.first; sce; sce=sce->id.next) if(!sce->toolsettings->particle.selectmode) sce->toolsettings->particle.selectmode= SCE_SELECT_PATH; + + for(me=main->mesh.first; me; me=me->id.next) + multires_load_old_250(me); + + for(ob=main->object.first; ob; ob=ob->id.next) { + MultiresModifierData *mmd = (MultiresModifierData *)modifiers_findByType(ob, eModifierType_Multires); + + if(mmd) { + mmd->totlvl--; + mmd->lvl--; + mmd->sculptlvl= mmd->lvl; + mmd->renderlvl= mmd->lvl; + } + } + } + + /* put 2.50 compatibility code here until next subversion bump */ + { } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index a0fa0efec0a..a1e70c011fe 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -188,6 +188,12 @@ int ED_object_modifier_remove(ReportList *reports, Scene *scene, Object *ob, Mod else if(md->type == eModifierType_Smoke) { ob->dt = OB_TEXTURE; } + else if(md->type == eModifierType_Multires) { + Mesh *me= ob->data; + + CustomData_external_remove(&me->fdata, &me->id, CD_MDISPS, me->totface); + CustomData_free_layer_active(&me->fdata, CD_MDISPS, me->totface); + } BLI_remlink(&ob->modifiers, md); modifier_free(md); -- cgit v1.2.3 From 0779f2c42599dd665730902cd669741070bdb46b Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 10 Dec 2009 17:41:03 +0000 Subject: Double Click event value. Timeout between both clicks is user configurable, should be taken from the OS when possible. --- source/blender/editors/interface/resources.c | 3 +++ source/blender/makesdna/DNA_userdef_types.h | 4 +++- source/blender/makesdna/DNA_windowmanager_types.h | 2 ++ source/blender/makesrna/intern/rna_userdef.c | 5 +++++ source/blender/makesrna/intern/rna_wm.c | 10 ++++++++++ source/blender/windowmanager/WM_types.h | 1 + .../blender/windowmanager/intern/wm_event_system.c | 21 ++++++++++++++++++++- 7 files changed, 44 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 1df76f312b3..809b3387f28 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1280,6 +1280,9 @@ void init_userdef_do_versions(void) if (U.frameserverport == 0) { U.frameserverport = 8080; } + if (U.dbl_click_time == 0) { + U.dbl_click_time = 350; + } /* funny name, but it is GE stuff, moves userdef stuff to engine */ // XXX space_set_commmandline_options(); diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 6e610b1c32d..82e6cebe71e 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -288,7 +288,9 @@ typedef struct UserDef { char sounddir[160]; /* yafray: temporary xml export directory */ char yfexportdir[160]; - short versions, pad; + short versions; + + short dbl_click_time; int gameflags; int wheellinescroll; diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 678cc85ee0f..9d944ca0d4b 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -158,6 +158,7 @@ typedef struct wmWindow { short last_type; /* last event information, used for click */ short last_val; + double last_click_time; /* for double click */ struct wmEvent *eventstate; /* storage for event system */ @@ -291,6 +292,7 @@ typedef struct wmKeyMap { /* wmKeyMap.flag */ #define KEYMAP_MODAL 1 /* modal map, not using operatornames */ #define KEYMAP_USER 2 /* user created keymap */ +#define KEYMAP_EXPANDED 4 typedef struct wmKeyConfig { struct wmKeyConfig *next, *prev; diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 2424a72b6a3..f695936d47c 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2338,6 +2338,11 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_property_range(prop, 0, 200); RNA_def_property_ui_text(prop, "NDof Rotation Speed", "The overall rotation speed of an NDOF device, as percent of standard."); + prop= RNA_def_property(srna, "double_click_time", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "dbl_click_time"); + RNA_def_property_range(prop, 1, 1000); + RNA_def_property_ui_text(prop, "Double Click Timeout", "The time (in ms) for a double click."); + prop= RNA_def_property(srna, "emulate_3_button_mouse", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_TWOBUTTONMOUSE); RNA_def_property_boolean_funcs(prop, NULL, "rna_userdef_emulate_set"); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index b0d8e372cb0..5cf9c245b05 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -43,6 +43,7 @@ EnumPropertyItem event_keymouse_value_items[] = { {KM_PRESS, "PRESS", 0, "Press", ""}, {KM_RELEASE, "RELEASE", 0, "Release", ""}, {KM_CLICK, "CLICK", 0, "Click", ""}, + {KM_DBL_CLICK, "DOUBLE_CLICK", 0, "Double Click", ""}, {0, NULL, 0, NULL, NULL}}; EnumPropertyItem event_tweak_value_items[]= { @@ -871,16 +872,19 @@ static void rna_def_keyconfig(BlenderRNA *brna) prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "idname"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Name", "Name of the key map."); RNA_def_struct_name_property(srna, prop); prop= RNA_def_property(srna, "space_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "spaceid"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_enum_items(prop, space_type_items); RNA_def_property_ui_text(prop, "Space Type", "Optional space type keymap is associated with."); prop= RNA_def_property(srna, "region_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "regionid"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_enum_items(prop, region_type_items); RNA_def_property_ui_text(prop, "Region Type", "Optional region type keymap is associated with."); @@ -894,8 +898,14 @@ static void rna_def_keyconfig(BlenderRNA *brna) prop= RNA_def_property(srna, "modal", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYMAP_MODAL); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Modal Keymap", "Indicates that a keymap is used for translate modal events for an operator."); + prop= RNA_def_property(srna, "expanded", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYMAP_EXPANDED); + RNA_def_property_ui_text(prop, "Expanded", "Expanded in the user interface."); + + RNA_api_keymap(srna); /* KeyMapItem */ diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index a884d7b6831..160f9cccf6c 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -83,6 +83,7 @@ enum { #define KM_PRESS 1 #define KM_RELEASE 2 #define KM_CLICK 3 +#define KM_DBL_CLICK 4 /* ************** UI Handler ***************** */ diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index ce3acece776..9aad7da7a58 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -60,6 +60,8 @@ #include "UI_interface.h" +#include "PIL_time.h" + #include "WM_api.h" #include "WM_types.h" #include "wm.h" @@ -1163,6 +1165,12 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) event->val = KM_CLICK; action |= wm_handlers_do(C, event, handlers); + /* if not handled and time is right, check double click */ + if ((action & WM_HANDLER_BREAK) == 0 && (PIL_check_seconds_timer() - win->last_click_time) * 1000 < U.dbl_click_time) { + event->val = KM_DBL_CLICK; + action |= wm_handlers_do(C, event, handlers); + } + /* revert value if not handled */ if ((action & WM_HANDLER_BREAK) == 0) { event->val = KM_RELEASE; @@ -1354,11 +1362,22 @@ void wm_event_do_handlers(bContext *C) /* mousemove event don't overwrite last type */ if (event->type != MOUSEMOVE) { if (action == WM_HANDLER_CONTINUE || action == (WM_HANDLER_BREAK|WM_HANDLER_MODAL)) { - win->last_type = event->type; + if (win->last_type == event->type) { + /* set click time on first click (press -> release) */ + if (win->last_val == KM_PRESS && event->val == KM_RELEASE) { + win->last_click_time = PIL_check_seconds_timer(); + } + } else { + /* reset click time if event type not the same */ + win->last_click_time = 0; + } + win->last_val = event->val; + win->last_type = event->type; } else { win->last_type = -1; win->last_val = 0; + win->last_click_time = 0; } } -- cgit v1.2.3 From 2576268fb85071f2e3ba80142ddb01e733c07e08 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 18:28:22 +0000 Subject: missed a header last commit, added custom exceptions to rigify so they can be caught and converted into reports and have normal errors display the stack trace as useual. --- source/blender/editors/interface/interface_regions.c | 1 + source/blender/makesrna/intern/rna_internal.h | 1 + 2 files changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index f01ae990586..8ebfed21dcc 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -2288,6 +2288,7 @@ uiPopupBlockHandle *ui_popup_menu_create(bContext *C, ARegion *butregion, uiBut /* menu is created from a string */ pup->menu_func= ui_block_func_MENUSTR; pup->menu_arg= str; + // XXX pup->block->flag |= UI_BLOCK_NO_FLIP; } else { /* menu is created from a callback */ diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index df1dd249dd1..6f4233b9337 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -207,6 +207,7 @@ void RNA_api_action(StructRNA *srna); void RNA_api_armature_edit_bone(StructRNA *srna); void RNA_api_drivers(StructRNA *srna); void RNA_api_image(struct StructRNA *srna); +void RNA_api_operator(struct StructRNA *srna); void RNA_api_keyconfig(struct StructRNA *srna); void RNA_api_keyingset(struct StructRNA *srna); void RNA_api_keymap(struct StructRNA *srna); -- cgit v1.2.3 From 2a785e8fae8d160f7ce11565705be4d71e2d676b Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 10 Dec 2009 22:07:33 +0000 Subject: Snap options were reset too often, discarding all user options. --- source/blender/editors/transform/transform_snap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 34c01339441..b4894ecdcaa 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -327,6 +327,7 @@ void resetSnapping(TransInfo *t) { t->tsnap.status = 0; t->tsnap.align = 0; + t->tsnap.project = 0; t->tsnap.mode = 0; t->tsnap.modeSelect = 0; t->tsnap.target = 0; @@ -362,8 +363,6 @@ void initSnappingMode(TransInfo *t) Object *obedit = t->obedit; Scene *scene = t->scene; - resetSnapping(t); - /* force project off when not supported */ if (ts->snap_mode != SCE_SNAP_MODE_FACE) { -- cgit v1.2.3 From 97abf6ad96932ae5d1a3e6b6d89e271f11e9cd8a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 10 Dec 2009 22:23:09 +0000 Subject: * rename 'rna_path' --> 'data_path', rna and dna are for internal use and are not descriptive. * armature.pose_position: POSE_POSITION, REST_POSITION --> POSE, REST * rigify now forces rest pose mode * updated neck_flex to keep original bones unchanged --- source/blender/makesrna/intern/rna_animation.c | 4 ++-- source/blender/makesrna/intern/rna_animation_api.c | 2 +- source/blender/makesrna/intern/rna_armature.c | 4 ++-- source/blender/makesrna/intern/rna_fcurve.c | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index fdf345015e2..035194e0d9f 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -203,9 +203,9 @@ static void rna_def_keyingset_path(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Grouping Method", "Method used to define which Group-name to use."); /* Path + Array Index */ - prop= RNA_def_property(srna, "rna_path", PROP_STRING, PROP_NONE); + prop= RNA_def_property(srna, "data_path", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, "rna_ksPath_RnaPath_get", "rna_ksPath_RnaPath_length", "rna_ksPath_RnaPath_set"); - RNA_def_property_ui_text(prop, "RNA Path", "RNA Path to property setting."); + RNA_def_property_ui_text(prop, "Data Path", "Path to property setting."); RNA_def_struct_name_property(srna, prop); // XXX this is the best indicator for now... prop= RNA_def_property(srna, "array_index", PROP_INT, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_animation_api.c b/source/blender/makesrna/intern/rna_animation_api.c index 5852c494936..fc36bab29af 100644 --- a/source/blender/makesrna/intern/rna_animation_api.c +++ b/source/blender/makesrna/intern/rna_animation_api.c @@ -76,7 +76,7 @@ void RNA_api_keyingset(StructRNA *srna) parm= RNA_def_pointer(func, "target_id", "ID", "Target ID", "ID-Datablock for the destination."); RNA_def_property_flag(parm, PROP_REQUIRED); /* rna-path */ - parm= RNA_def_string(func, "rna_path", "", 256, "RNA-Path", "RNA-Path to destination property."); // xxx hopefully this is long enough + parm= RNA_def_string(func, "data_path", "", 256, "Data-Path", "RNA-Path to destination property."); // xxx hopefully this is long enough RNA_def_property_flag(parm, PROP_REQUIRED); parm=RNA_def_int(func, "array_index", 0, 0, INT_MAX, "Array Index", "If applicable, the index ", 0, INT_MAX); /* flags */ diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index cb030bf0c31..bc01c22de1c 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -752,8 +752,8 @@ static void rna_def_armature(BlenderRNA *brna) {0, "TAILS", 0, "Tails", "Calculate bone paths from tails"}, {0, NULL, 0, NULL, NULL}}; static const EnumPropertyItem prop_pose_position_items[]= { - {0, "POSE_POSITION", 0, "Pose Position", "Show armature in posed state."}, - {ARM_RESTPOS, "REST_POSITION", 0, "Rest Position", "Show Armature in binding pose state. No posing possible."}, + {0, "POSE", 0, "Pose Position", "Show armature in posed state."}, + {ARM_RESTPOS, "REST", 0, "Rest Position", "Show Armature in binding pose state. No posing possible."}, {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "Armature", "ID"); diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 23cd4b2c892..97918556976 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -747,9 +747,9 @@ static void rna_def_drivertarget(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); /* Target Properties - Property to Drive */ - prop= RNA_def_property(srna, "rna_path", PROP_STRING, PROP_NONE); + prop= RNA_def_property(srna, "data_path", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, "rna_DriverTarget_RnaPath_get", "rna_DriverTarget_RnaPath_length", "rna_DriverTarget_RnaPath_set"); - RNA_def_property_ui_text(prop, "RNA Path", "RNA Path (from Object) to property used"); + RNA_def_property_ui_text(prop, "Data Path", "RNA Path (from Object) to property used"); RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); prop= RNA_def_property(srna, "array_index", PROP_INT, PROP_NONE); @@ -926,9 +926,9 @@ static void rna_def_fcurve(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Driver", "Channel Driver (only set for Driver F-Curves)"); /* Path + Array Index */ - prop= RNA_def_property(srna, "rna_path", PROP_STRING, PROP_NONE); + prop= RNA_def_property(srna, "data_path", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, "rna_FCurve_RnaPath_get", "rna_FCurve_RnaPath_length", "rna_FCurve_RnaPath_set"); - RNA_def_property_ui_text(prop, "RNA Path", "RNA Path to property affected by F-Curve."); + RNA_def_property_ui_text(prop, "Data Path", "RNA Path to property affected by F-Curve."); RNA_def_property_update(prop, NC_ANIMATION, NULL); // XXX need an update callback for this to that animation gets evaluated prop= RNA_def_property(srna, "array_index", PROP_INT, PROP_NONE); -- cgit v1.2.3 From ab7e9da34299d029eab38e3e4e758ebead0b659e Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 10 Dec 2009 23:22:43 +0000 Subject: wm_menu_invoke calls exec automatically if property is already set. This way you can set the param in the keymap and it won't always show the menu for nothing. --- source/blender/windowmanager/intern/wm_operators.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 818dcd98afd..6d028a63c1d 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -615,6 +615,9 @@ int WM_menu_invoke(bContext *C, wmOperator *op, wmEvent *event) else if (RNA_property_type(prop) != PROP_ENUM) { printf("WM_menu_invoke: %s \"type\" is not an enum property\n", op->type->idname); } + else if (RNA_property_is_set(op->ptr, RNA_property_identifier(prop))) { + return op->type->exec(C, op); + } else { pup= uiPupMenuBegin(C, op->type->name, 0); layout= uiPupMenuLayout(pup); -- cgit v1.2.3 From 5a0436b8ea44bf4a90993c255f9fc7cda048bc73 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 10 Dec 2009 23:24:29 +0000 Subject: Double Click plays nicer with Click. 1) Double Click takes priority over a second Click (Click will still be send if not handled) 2) The first Click being handled doesn't stop the following Double Click --- .../blender/windowmanager/intern/wm_event_system.c | 30 +++++++++++++++------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 9aad7da7a58..906a166a28c 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1093,6 +1093,11 @@ static int handler_boundbox_test(wmEventHandler *handler, wmEvent *event) return 1; } +static int wm_action_not_handled(int action) +{ + return action == WM_HANDLER_CONTINUE || action == (WM_HANDLER_BREAK|WM_HANDLER_MODAL); +} + static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) { wmWindowManager *wm= CTX_wm_manager(C); @@ -1158,21 +1163,24 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) } /* test for CLICK event */ - if ((action == WM_HANDLER_CONTINUE || action == (WM_HANDLER_BREAK|WM_HANDLER_MODAL)) && event->val == KM_RELEASE) { + if (wm_action_not_handled(action) && event->val == KM_RELEASE) { wmWindow *win = CTX_wm_window(C); if (win && win->last_type == event->type && win->last_val == KM_PRESS) { - event->val = KM_CLICK; - action |= wm_handlers_do(C, event, handlers); - - /* if not handled and time is right, check double click */ - if ((action & WM_HANDLER_BREAK) == 0 && (PIL_check_seconds_timer() - win->last_click_time) * 1000 < U.dbl_click_time) { + /* test for double click first */ + if ((PIL_check_seconds_timer() - win->last_click_time) * 1000 < U.dbl_click_time) { event->val = KM_DBL_CLICK; action |= wm_handlers_do(C, event, handlers); } + if (wm_action_not_handled(action)) { + event->val = KM_CLICK; + action |= wm_handlers_do(C, event, handlers); + } + + /* revert value if not handled */ - if ((action & WM_HANDLER_BREAK) == 0) { + if (wm_action_not_handled(action)) { event->val = KM_RELEASE; } } @@ -1361,7 +1369,7 @@ void wm_event_do_handlers(bContext *C) /* store last event for this window */ /* mousemove event don't overwrite last type */ if (event->type != MOUSEMOVE) { - if (action == WM_HANDLER_CONTINUE || action == (WM_HANDLER_BREAK|WM_HANDLER_MODAL)) { + if (wm_action_not_handled(action)) { if (win->last_type == event->type) { /* set click time on first click (press -> release) */ if (win->last_val == KM_PRESS && event->val == KM_RELEASE) { @@ -1374,7 +1382,11 @@ void wm_event_do_handlers(bContext *C) win->last_val = event->val; win->last_type = event->type; - } else { + } else if (event->val == KM_CLICK) { /* keep click for double click later */ + win->last_type = event->type; + win->last_val = event->val; + win->last_click_time = PIL_check_seconds_timer(); + } else { /* reset if not */ win->last_type = -1; win->last_val = 0; win->last_click_time = 0; -- cgit v1.2.3 From 98dff9b1c71b6936621641897589f1fb59220312 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 11 Dec 2009 00:09:58 +0000 Subject: For for [#20330] Can't open a file made in 2.49 Hair clothsim internal_friction wasn't being initialised correctly. --- source/blender/blenkernel/intern/cloth.c | 1 + source/blender/blenloader/intern/readfile.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c index 6c4c7daea7f..dc9a70f2767 100644 --- a/source/blender/blenkernel/intern/cloth.c +++ b/source/blender/blenkernel/intern/cloth.c @@ -154,6 +154,7 @@ void cloth_init ( ClothModifierData *clmd ) clmd->sim_parms->defgoal = 0.0f; clmd->sim_parms->goalspring = 1.0f; clmd->sim_parms->goalfrict = 0.0f; + clmd->sim_parms->velocity_smooth = 0.0f; if(!clmd->sim_parms->effector_weights) clmd->sim_parms->effector_weights = BKE_add_effector_weights(NULL); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 860225b7dc3..eada820ba89 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10184,6 +10184,21 @@ static void do_versions(FileData *fd, Library *lib, Main *main) sce->toolsettings->particle.selectmode= SCE_SELECT_PATH; } + { + Object *ob; + + /* properly initialise hair clothsim data on old files */ + for(ob = main->object.first; ob; ob = ob->id.next) { + ModifierData *md; + for(md= ob->modifiers.first; md; md= md->next) { + if (md->type == eModifierType_Cloth) { + ClothModifierData *clmd = (ClothModifierData *)md; + if (clmd->sim_parms->velocity_smooth < 0.01f) + clmd->sim_parms->velocity_smooth = 0.f; + } + } + } + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ -- cgit v1.2.3 From cff8de339d25d1723769d3c9183162005a3e9f68 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 11 Dec 2009 00:51:14 +0000 Subject: [#20288] FBX exporter fails * disallow registering operators that have properties starting with an underscore which caused this problem. --- source/blender/python/intern/bpy_rna.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index ad695344038..f90dbef9836 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -3719,11 +3719,15 @@ static int deferred_register_prop(StructRNA *srna, PyObject *item, PyObject *key if(PyTuple_CheckExact(item) && PyTuple_GET_SIZE(item)==2) { PyObject *py_func_ptr, *py_kw, *py_srna_cobject, *py_ret; + PyObject *(*pyfunc)(PyObject *, PyObject *, PyObject *); if(PyArg_ParseTuple(item, "O!O!", &PyCObject_Type, &py_func_ptr, &PyDict_Type, &py_kw)) { - PyObject *(*pyfunc)(PyObject *, PyObject *, PyObject *); - + if(*_PyUnicode_AsString(key)=='_') { + PyErr_Format(PyExc_ValueError, "StructRNA \"%.200s\" registration error: %.200s could not register because the property starts with an '_'\n", RNA_struct_identifier(srna), _PyUnicode_AsString(key)); + Py_DECREF(dummy_args); + return -1; + } pyfunc = PyCObject_AsVoidPtr(py_func_ptr); py_srna_cobject = PyCObject_FromVoidPtr(srna, NULL); -- cgit v1.2.3 From 5244b7c21bc1807a11996dad9750289dab867795 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 11 Dec 2009 01:12:22 +0000 Subject: Various UV editor / notifier related fixes: [#20336] Missing notifier - properties view does not update on UV unwrap [#20337] Shift select is not working in UV-editor island mode [#20338] Update automatically menu item has strange icon behavior [#20339] Select all will quit working in UV editor --- source/blender/editors/space_buttons/space_buttons.c | 1 + source/blender/editors/uvedit/uvedit_ops.c | 2 +- source/blender/makesrna/intern/rna_scene.c | 3 +++ source/blender/makesrna/intern/rna_space.c | 1 - 4 files changed, 5 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 6c13a36cdf3..f6b376f6e8e 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -285,6 +285,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) case NC_GEOM: switch(wmn->data) { case ND_SELECT: + case ND_DATA: ED_area_tag_redraw(sa); break; } diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index fb02f5100b6..3d58e7f03dc 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -904,7 +904,7 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2] } } - if(!extend || hit) { + if(!extend && hit) { for(a=0, efa= em->faces.first; efa; efa= efa->next, a++) { tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); if(flag[a]) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 033a8f45809..100df4645c7 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -722,15 +722,18 @@ static void rna_def_tool_settings(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "uv_selectmode"); RNA_def_property_enum_items(prop, uv_select_mode_items); RNA_def_property_ui_text(prop, "UV Selection Mode", "UV selection and display mode."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL); prop= RNA_def_property(srna, "uv_sync_selection", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "uv_flag", UV_SYNC_SELECTION); RNA_def_property_ui_text(prop, "UV Sync Selection", "Keep UV and edit mode mesh selection in sync."); RNA_def_property_ui_icon(prop, ICON_EDIT, 0); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL); prop= RNA_def_property(srna, "uv_local_view", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "uv_flag", UV_SHOW_SAME_IMAGE); RNA_def_property_ui_text(prop, "UV Local View", "Draw only faces with the currently displayed image assigned."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL); /* Mesh */ prop= RNA_def_property(srna, "mesh_selection_mode", PROP_ENUM, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index e4d0769feeb..9f8d5278a27 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1042,7 +1042,6 @@ static void rna_def_space_image(BlenderRNA *brna) /* update */ prop= RNA_def_property(srna, "update_automatically", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "lock", 0); - RNA_def_property_ui_icon(prop, ICON_UNLOCKED, 1); RNA_def_property_ui_text(prop, "Update Automatically", "Update other affected window spaces automatically to reflect changes during interactive operations such as transform."); /* state */ -- cgit v1.2.3 From d6bee7da753b0047e0ad0b4c1f4a41bec915c551 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 11 Dec 2009 02:14:10 +0000 Subject: use rna buttons for color ramps colors so keyframes can be added/deleted. --- .../editors/interface/interface_templates.c | 28 +++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 0c5f03f0d0f..d2b58e61757 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -1490,7 +1490,7 @@ static void colorband_del_cb(bContext *C, void *cb_v, void *coba_v) /* offset aligns from bottom, standard width 300, height 115 */ -static void colorband_buttons_large(uiBlock *block, ColorBand *coba, int xoffs, int yoffs, RNAUpdateCb *cb) +static void colorband_buttons_large(uiLayout *layout, uiBlock *block, ColorBand *coba, int xoffs, int yoffs, RNAUpdateCb *cb) { uiBut *bt; @@ -1515,18 +1515,28 @@ static void colorband_buttons_large(uiBlock *block, ColorBand *coba, int xoffs, if(coba->tot) { CBData *cbd= coba->data + coba->cur; +#if 1 + /* better to use rna so we can animate them */ + PointerRNA ptr; + RNA_pointer_create(cb->ptr.id.data, &RNA_ColorRampElement, cbd, &ptr); + uiItemR(layout, NULL, 0, &ptr, "color", 0); + //uiItemR(layout, NULL, 0, &ptr, "position", 0); + bt= uiDefButF(block, NUM, 0, "Pos:", 0+xoffs,40+yoffs,100, 20, &cbd->pos, 0.0, 1.0, 10, 0, "The position of the active color stop"); + uiButSetNFunc(bt, colorband_pos_cb, MEM_dupallocN(cb), coba); +#else bt= uiDefButF(block, NUM, 0, "Pos:", 0+xoffs,40+yoffs,100, 20, &cbd->pos, 0.0, 1.0, 10, 0, "The position of the active color stop"); uiButSetNFunc(bt, colorband_pos_cb, MEM_dupallocN(cb), coba); bt= uiDefButF(block, COL, 0, "", 110+xoffs,40+yoffs,80,20, &(cbd->r), 0, 0, 0, B_BANDCOL, "The color value for the active color stop"); uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL); bt= uiDefButF(block, NUMSLI, 0, "A ", 200+xoffs,40+yoffs,100,20, &cbd->a, 0.0, 1.0, 10, 0, "The alpha value of the active color stop"); uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL); +#endif } } -static void colorband_buttons_small(uiBlock *block, ColorBand *coba, rctf *butr, RNAUpdateCb *cb) +static void colorband_buttons_small(uiLayout *layout, uiBlock *block, ColorBand *coba, rctf *butr, RNAUpdateCb *cb) { uiBut *bt; float unit= (butr->xmax-butr->xmin)/14.0f; @@ -1540,10 +1550,16 @@ static void colorband_buttons_small(uiBlock *block, ColorBand *coba, rctf *butr, if(coba->tot) { CBData *cbd= coba->data + coba->cur; +#if 1 + PointerRNA ptr; + RNA_pointer_create(cb->ptr.id.data, &RNA_ColorRampElement, cbd, &ptr); + uiItemR(layout, "", 0, &ptr, "color", 0); +#else bt= uiDefButF(block, COL, 0, "", xs+4.0f*unit,butr->ymin+20.0f,2.0f*unit,20, &(cbd->r), 0, 0, 0, B_BANDCOL, "The color value for the active color stop"); uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL); bt= uiDefButF(block, NUMSLI, 0, "A:", xs+6.0f*unit,butr->ymin+20.0f,4.0f*unit,20, &(cbd->a), 0.0f, 1.0f, 10, 2, "The alpha value of the active color stop"); uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL); +#endif } bt= uiDefButS(block, MENU, 0, "Interpolation %t|Ease %x1|Cardinal %x3|Linear %x0|B-Spline %x2|Constant %x4", @@ -1556,12 +1572,12 @@ static void colorband_buttons_small(uiBlock *block, ColorBand *coba, rctf *butr, uiBlockEndAlign(block); } -static void colorband_buttons_layout(uiBlock *block, ColorBand *coba, rctf *butr, int small, RNAUpdateCb *cb) +static void colorband_buttons_layout(uiLayout *layout, uiBlock *block, ColorBand *coba, rctf *butr, int small, RNAUpdateCb *cb) { if(small) - colorband_buttons_small(block, coba, butr, cb); + colorband_buttons_small(layout, block, coba, butr, cb); else - colorband_buttons_large(block, coba, 0, 0, cb); + colorband_buttons_large(layout, block, coba, 0, 0, cb); } void uiTemplateColorRamp(uiLayout *layout, PointerRNA *ptr, char *propname, int expand) @@ -1587,7 +1603,7 @@ void uiTemplateColorRamp(uiLayout *layout, PointerRNA *ptr, char *propname, int rect.ymin= 0; rect.ymax= 190; block= uiLayoutAbsoluteBlock(layout); - colorband_buttons_layout(block, cptr.data, &rect, !expand, cb); + colorband_buttons_layout(layout, block, cptr.data, &rect, !expand, cb); MEM_freeN(cb); } -- cgit v1.2.3 From 34ec7474fd36238459f96bd3426f1b5663d2210d Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 11 Dec 2009 04:03:55 +0000 Subject: Tweak to make temp 'fullscreen' screens be alphabetically similar to the previous ones that spawned them, so you can switch screens (ctrl left and right arrow) more smoothly ( [#20301] Screens and Fullscreen still doesn't work ) --- source/blender/editors/screen/screen_edit.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index fef3818a2c7..640a14a934b 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1483,6 +1483,7 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa) } else { ScrArea *newa; + char newname[20]; oldscreen= win->screen; @@ -1491,8 +1492,8 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa) return NULL; oldscreen->full = SCREENFULL; - - sc= ED_screen_add(win, oldscreen->scene, "temp"); + BLI_snprintf(newname, sizeof(newname), "%s-%s", oldscreen->id.name+2, "temp"); + sc= ED_screen_add(win, oldscreen->scene, newname); sc->full = SCREENFULL; // XXX /* timer */ -- cgit v1.2.3 From 877c47fe350de17f58e55358fe28887a8131cca8 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 11 Dec 2009 05:23:00 +0000 Subject: Fix for [#20331] adding and removing render layers in specific sequence creates layers with the same name Render layers now use the same consistent 'unique name' function as other parts of Blender (i.e. RenderLayer.001). Updated the defaults for consistency. --- source/blender/blenkernel/intern/scene.c | 4 +- source/blender/editors/datafiles/B.blend.c | 16383 ++++++++++++++------------- 2 files changed, 8196 insertions(+), 8191 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index cd9487862ea..368e05fa441 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -29,6 +29,7 @@ * ***** END GPL LICENSE BLOCK ***** */ +#include #include #include @@ -862,7 +863,8 @@ void scene_add_render_layer(Scene *sce) int tot= 1 + BLI_countlist(&sce->r.layers); srl= MEM_callocN(sizeof(SceneRenderLayer), "new render layer"); - sprintf(srl->name, "%d RenderLayer", tot); + sprintf(srl->name, "RenderLayer"); + BLI_uniquename(&sce->r.layers, srl, "RenderLayer", '.', offsetof(SceneRenderLayer, name), 32); BLI_addtail(&sce->r.layers, srl); /* note, this is also in render, pipeline.c, to make layer when scenedata doesnt have it */ diff --git a/source/blender/editors/datafiles/B.blend.c b/source/blender/editors/datafiles/B.blend.c index 9ee3b8d72fa..a3b4798fd5e 100644 --- a/source/blender/editors/datafiles/B.blend.c +++ b/source/blender/editors/datafiles/B.blend.c @@ -1,3960 +1,3963 @@ /* DataToC output of file */ -int datatoc_B_blend_size= 320428; +int datatoc_B_blend_size= 320520; char datatoc_B_blend[]= { - 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 53, 48, - 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, - 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 24, 1, 0, 0, -240,236,191, 95,255,127, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 56, 8, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1, -208, 30,165, 29, 1, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 60,109,101,109,111,114,121, 50, - 62, 0, 0, 0, 0, 0, 0, 0, 34,239, 28, 1, 1, 0, 0, 0, 40, 0, 0, 0, 48, 0, 0, 0, 32,238,191, 95,255,127, 0, 0, - 80,237,191, 95,255,127, 0, 0,208,198,223, 28, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 48,147,201, 20, 1, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0,192,237,191, 95,255,127, 0, 0,245, 3, 94, 0, 1, 0, 0, 0, -160,237,191, 95,255,127, 0, 0,224,237,191, 95,255,127, 0, 0, 32, 0, 0, 0, 82, 69, 78, 68, 48,147,201, 20, 1, 0, 0, 0, - 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 16,238,191, 95,255,127, 0, 0, - 16,238,191, 95,255,127, 0, 0,187, 10, 94, 0, 1, 0, 0, 0, 48,102, 4, 28, 1, 0, 0, 0, 48,147,201, 20, 1, 0, 0, 0, - 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 30,165, 29, 1, 0, 0, 0, 87, 77, 0, 0, 8, 1, 0, 0,144, 6,163, 29, 1, 0, 0, 0, 98, 1, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208, 7,163, 29, 1, 0, 0, 0,208, 7,163, 29, 1, 0, 0, 0,208, 7,163, 29, 1, 0, 0, 0, -208, 7,163, 29, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 16,158,162, 21, 1, 0, 0, 0, 64, 69,200, 20, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,160, 21, 1, 0, 0, 0, 32, 73,200, 20, 1, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,220,195, 20, 1, 0, 0, 0, 48,220,195, 20, 1, 0, 0, 0, - 48,220,195, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,125,140, 27, 1, 0, 0, 0, 80,125,140, 27, 1, 0, 0, 0, - 80,125,140, 27, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,208, 7,163, 29, 1, 0, 0, 0, 99, 1, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,235,195, 20, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -208, 30,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 1, 0,238, 3, - 0, 0, 1, 0,255,255, 0, 0, 96,160,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192,165,164, 21, 1, 0, 0, 0,240,165,201, 20, 1, 0, 0, 0,240,165,201, 20, 1, 0, 0, 0, -240,125,140, 27, 1, 0, 0, 0,176,126,140, 27, 1, 0, 0, 0,112,127,140, 27, 1, 0, 0, 0,112,127,140, 27, 1, 0, 0, 0, - 96,103,164, 21, 1, 0, 0, 0, 80,237,200, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 78, 0, 0,208, 0, 0, 0,112,122,163, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,208,190,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116, -105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224,182,162, 29, 1, 0, 0, 0, 16,176, 20, 27, 1, 0, 0, 0, 80,148, 21, 27, 1, 0, 0, 0, 32,132,163, 29, 1, 0, 0, 0, -128,132,163, 29, 1, 0, 0, 0,144, 0,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,182,162, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -240, 77,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112, 2,160, 29, 1, 0, 0, 0, -224,182,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -112, 2,160, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,208,140,162, 21, 1, 0, 0, 0,112, 2,160, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,140,162, 21, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -144,246,142, 27, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64,141,160, 21, 1, 0, 0, 0, -208,140,162, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 64,141,160, 21, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32, 31,142, 27, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 31,142, 27, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0, 64,141,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 6,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 0, 62,142, 27, 1, 0, 0, 0, 32, 31,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,228, 1, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, -160,237,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,228, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -240,185,140, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,240,143, 21, 27, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 6,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,143, 21, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 96, 4,162, 29, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,128, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,142,160, 21, 1, 0, 0, 0, -240,143, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 32,142,160, 21, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, 32,142,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -156, 2,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 16,176, 20, 27, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,116, 3, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 16,176, 20, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, 5,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 80,148, 21, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,194, 20, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 2,160, 29, 1, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 48,194, 20, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,154, 21, 27, 1, 0, 0, 0, 80,148, 21, 27, 1, 0, 0, 0, -208,140,162, 21, 1, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -224,154, 21, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 3,162, 29, 1, 0, 0, 0, 48,194, 20, 27, 1, 0, 0, 0, -144,246,142, 27, 1, 0, 0, 0,112, 2,160, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 0, 3,162, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 16,162, 29, 1, 0, 0, 0,224,154, 21, 27, 1, 0, 0, 0, -208,140,162, 21, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 0, 16,162, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,123,163, 29, 1, 0, 0, 0, 0, 3,162, 29, 1, 0, 0, 0, - 64,141,160, 21, 1, 0, 0, 0,224,182,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -128,123,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,123,163, 29, 1, 0, 0, 0, 0, 16,162, 29, 1, 0, 0, 0, - 64,141,160, 21, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -224,123,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,124,163, 29, 1, 0, 0, 0,128,123,163, 29, 1, 0, 0, 0, - 32, 31,142, 27, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 64,124,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,124,163, 29, 1, 0, 0, 0,224,123,163, 29, 1, 0, 0, 0, - 64,141,160, 21, 1, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -160,124,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,125,163, 29, 1, 0, 0, 0, 64,124,163, 29, 1, 0, 0, 0, - 0, 62,142, 27, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 0,125,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,125,163, 29, 1, 0, 0, 0,160,124,163, 29, 1, 0, 0, 0, - 0, 62,142, 27, 1, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 96,125,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,125,163, 29, 1, 0, 0, 0, 0,125,163, 29, 1, 0, 0, 0, -240,185,140, 27, 1, 0, 0, 0,224,182,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -192,125,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,126,163, 29, 1, 0, 0, 0, 96,125,163, 29, 1, 0, 0, 0, - 32, 31,142, 27, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 32,126,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,126,163, 29, 1, 0, 0, 0,192,125,163, 29, 1, 0, 0, 0, - 64,141,160, 21, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -128,126,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,126,163, 29, 1, 0, 0, 0, 32,126,163, 29, 1, 0, 0, 0, -240,185,140, 27, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -224,126,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,127,163, 29, 1, 0, 0, 0,128,126,163, 29, 1, 0, 0, 0, -240,143, 21, 27, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 64,127,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,127,163, 29, 1, 0, 0, 0,224,126,163, 29, 1, 0, 0, 0, -240,143, 21, 27, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -160,127,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,128,163, 29, 1, 0, 0, 0, 64,127,163, 29, 1, 0, 0, 0, -208,140,162, 21, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 0,128,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,128,163, 29, 1, 0, 0, 0,160,127,163, 29, 1, 0, 0, 0, - 32, 31,142, 27, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 96,128,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,128,163, 29, 1, 0, 0, 0, 0,128,163, 29, 1, 0, 0, 0, -240,143, 21, 27, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -192,128,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,129,163, 29, 1, 0, 0, 0, 96,128,163, 29, 1, 0, 0, 0, - 32,142,160, 21, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 32,129,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,129,163, 29, 1, 0, 0, 0,192,128,163, 29, 1, 0, 0, 0, -240,143, 21, 27, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -128,129,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,129,163, 29, 1, 0, 0, 0, 32,129,163, 29, 1, 0, 0, 0, - 32,142,160, 21, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -224,129,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,130,163, 29, 1, 0, 0, 0,128,129,163, 29, 1, 0, 0, 0, -160,237,142, 27, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 64,130,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,130,163, 29, 1, 0, 0, 0,224,129,163, 29, 1, 0, 0, 0, - 32, 31,142, 27, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -160,130,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,131,163, 29, 1, 0, 0, 0, 64,130,163, 29, 1, 0, 0, 0, - 16,176, 20, 27, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 0,131,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,131,163, 29, 1, 0, 0, 0,160,130,163, 29, 1, 0, 0, 0, - 16,176, 20, 27, 1, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 96,131,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,131,163, 29, 1, 0, 0, 0, 0,131,163, 29, 1, 0, 0, 0, - 16,176, 20, 27, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -192,131,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,132,163, 29, 1, 0, 0, 0, 96,131,163, 29, 1, 0, 0, 0, - 32,142,160, 21, 1, 0, 0, 0,208,140,162, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 32,132,163, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,131,163, 29, 1, 0, 0, 0, - 80,164, 21, 27, 1, 0, 0, 0, 96, 4,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -128,132,163, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,136,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208,140,162, 21, 1, 0, 0, 0,240, 77,162, 29, 1, 0, 0, 0,112, 2,160, 29, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, - 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,112,241,162, 29, 1, 0, 0, 0,112,241,162, 29, 1, 0, 0, 0, - 96,133,163, 29, 1, 0, 0, 0,192,134,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 45,202, 20, 1, 0, 0, 0, 0, 25,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,133,163, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,192,134,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,134,163, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,133,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, - 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,136,163, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0, 16,160,163, 29, 1, 0, 0, 0,128,132,163, 29, 1, 0, 0, 0, 64,141,160, 21, 1, 0, 0, 0, -160,237,142, 27, 1, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0,160, 41,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 4, 4, 80, 1,228, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64,141,217, 2, 1, 0, 0, 0,176,162,163, 29, 1, 0, 0, 0,176,166,163, 29, 1, 0, 0, 0, 0,137,163, 29, 1, 0, 0, 0, - 96,138,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,134,201, 20, 1, 0, 0, 0, - 0,224,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,137,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 96,138,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 80, 1, 31, 0, 80, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,197, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,138,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,137,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,159, 67, 0, 64, 68,196, 0, 0, 0, 0, - 0, 0, 0, 0, 1,128,159, 67, 1,128,217,195, 0, 0, 0, 0, 63, 1, 0, 0, 80, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, - 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0, 80, 1,197, 1, 63, 1,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,129,160, 21, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,197, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32,142,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,139,163, 29, 1, 0, 0, 0, - 32,161,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,139,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 80,141,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,220,255, 63, 1, 36, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, - 80,141,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,142,163, 29, 1, 0, 0, 0,192,139,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 76, 69, 78, 68, 69, 82, 45, +118, 50, 53, 48, 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, +250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, + 24, 1, 0, 0,240,236,191, 95,255,127, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 56, 8, 0, 0, 0,250, 0, 0, 0, + 1, 0, 0, 1, 32,158,131, 29, 1, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 60,109,101,109, +111,114,121, 50, 62, 0, 0, 0, 0, 0, 0, 0,178, 38, 29, 1, 1, 0, 0, 0, 40, 0, 0, 0, 48, 0, 0, 0, 32,238,191, 95, +255,127, 0, 0, 80,237,191, 95,255,127, 0, 0,208,230, 29, 29, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0,208, 78,111, 27, + 1, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0,192,237,191, 95,255,127, 0, 0, 13,241, 93, 0, + 1, 0, 0, 0,160,237,191, 95,255,127, 0, 0,224,237,191, 95,255,127, 0, 0, 32, 0, 0, 0, 82, 69, 78, 68,208, 78,111, 27, + 1, 0, 0, 0, 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 16,238,191, 95, +255,127, 0, 0, 16,238,191, 95,255,127, 0, 0,211,247, 93, 0, 1, 0, 0, 0, 48, 88,131, 27, 1, 0, 0, 0,208, 78,111, 27, + 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32,158,131, 29, 1, 0, 0, 0, 87, 77, 0, 0, 8, 1, 0, 0,208, 87,128, 29, 1, 0, 0, 0, 98, 1, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 89,128, 29, 1, 0, 0, 0, 16, 89,128, 29, 1, 0, 0, 0, 16, 89,128, 29, + 1, 0, 0, 0, 16, 89,128, 29, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,200,129, 29, 1, 0, 0, 0,192,200,129, 29, + 1, 0, 0, 0,192,200,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 85,107, 27, 1, 0, 0, 0, 48, 85,107, 27, + 1, 0, 0, 0, 48, 85,107, 27, 1, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0, 16, 89,128, 29, 1, 0, 0, 0, 99, 1, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,254,195, 20, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 32,158,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, + 1, 0,238, 3, 0, 0, 1, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,181,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,178,178, 21, 1, 0, 0, 0, 64,117,129, 29, + 1, 0, 0, 0, 64,117,129, 29, 1, 0, 0, 0,208, 85,107, 27, 1, 0, 0, 0,144, 86,107, 27, 1, 0, 0, 0, 80, 87,107, 27, + 1, 0, 0, 0, 80, 87,107, 27, 1, 0, 0, 0,128, 2,128, 29, 1, 0, 0, 0,240, 54,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 48, 90,128, 29, 1, 0, 0, 0,191, 0, 0, 0, + 1, 0, 0, 0,240,200,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,242,129, 29, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0, 0, 9,130, 29, + 1, 0, 0, 0,192, 92,128, 29, 1, 0, 0, 0, 32, 93,128, 29, 1, 0, 0, 0, 32,189,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,242,129, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,160, 55,130, 29, 1, 0, 0, 0, 96,242,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 55,130, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,244,129, 29, + 1, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 16,244,129, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0,160, 55,130, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,176,129, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 16,244,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160, 56,130, 29, + 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0,240, 39,245, 26, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,252,130, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 6,228, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,228, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,227,179, 21, + 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,144,239,129, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 35,245, 26, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,156, 2,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,100, 4, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208, 40,108, 27, + 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0,128, 65,129, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,106,130, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 6,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 9,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 50,130, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0,160, 55,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 50,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 42,131, 29, + 1, 0, 0, 0, 0, 9,130, 29, 1, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 42,131, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 89,244, 26, + 1, 0, 0, 0,208, 50,130, 29, 1, 0, 0, 0,160, 55,130, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 89,244, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,110,129, 29, + 1, 0, 0, 0,240, 42,131, 29, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,110,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,184,130, 29, + 1, 0, 0, 0,224, 89,244, 26, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 96,242,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,184,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,243,130, 29, + 1, 0, 0, 0, 16,110,129, 29, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 16,244,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,243,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,223,129, 29, + 1, 0, 0, 0,160,184,130, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,223,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 45,244, 26, + 1, 0, 0, 0,160,243,130, 29, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 45,244, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,171,129, 29, + 1, 0, 0, 0, 32,223,129, 29, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 16,244,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,171,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,199,129, 29, + 1, 0, 0, 0, 64, 45,244, 26, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,199,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 79,129, 29, + 1, 0, 0, 0,128,171,129, 29, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 96,242,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 79,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 66,129, 29, + 1, 0, 0, 0,160,199,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 66,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 47,130, 29, + 1, 0, 0, 0, 80, 79,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 47,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,184,109, 27, + 1, 0, 0, 0, 32, 66,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,184,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 56,131, 29, + 1, 0, 0, 0, 16, 47,130, 29, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 56,131, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,108,129, 29, + 1, 0, 0, 0,192,184,109, 27, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,108,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,150,129, 29, + 1, 0, 0, 0,144, 56,131, 29, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,150,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 41,108, 27, + 1, 0, 0, 0, 96,108,129, 29, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 41,108, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,195,129, 29, + 1, 0, 0, 0, 32,150,129, 29, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,195,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,242,108, 27, + 1, 0, 0, 0,128, 41,108, 27, 1, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,242,108, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 20,130, 29, + 1, 0, 0, 0, 16,195,129, 29, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 20,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,185,129, 29, + 1, 0, 0, 0,160,242,108, 27, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,185,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,177,176, 21, + 1, 0, 0, 0, 64, 20,130, 29, 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,177,176, 21, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 91,128, 29, + 1, 0, 0, 0, 96,185,129, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 91,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 91,128, 29, + 1, 0, 0, 0, 48,177,176, 21, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 91,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 92,128, 29, + 1, 0, 0, 0, 64, 91,128, 29, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 92,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 92,128, 29, + 1, 0, 0, 0,160, 91,128, 29, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 92,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 92,128, 29, + 1, 0, 0, 0, 0, 92,128, 29, 1, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 92,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96, 92,128, 29, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32, 93,128, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192, 96,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0,160, 55,130, 29, + 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0, +128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,200,110, 27, + 1, 0, 0, 0,112,200,110, 27, 1, 0, 0, 0, 0, 94,128, 29, 1, 0, 0, 0, 96, 95,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0, 94,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 95,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 96, 95,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, + 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,142,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -112,144,163, 29, 1, 0, 0, 0, 80,141,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,192, 96,128, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,127,128, 29, 1, 0, 0, 0, 32, 93,128, 29, + 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 16,244,129, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 4, 4, 80, 1, +228, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,122,128, 29, 1, 0, 0, 0, 64,126,128, 29, + 1, 0, 0, 0,160, 97,128, 29, 1, 0, 0, 0, 0, 99,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 97,128, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 99,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, 31, 0, 80, 1, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,197, 1, 0, 0, +227, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 99,128, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 97,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0,128,159, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0, 1,128,159, 67, 1,128,217,195, 0, 0, 0, 0, 63, 1, 0, 0, + 80, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 62, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 80, 1,197, 1, 63, 1,179, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, +196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,197, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96,100,128, 29, 1, 0, 0, 0,176,120,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,100,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,101,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -112,144,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,146,163, 29, 1, 0, 0, 0,224,142,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95, -115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95, -115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,254, 63, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 63, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,146,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -144,147,163, 29, 1, 0, 0, 0,112,144,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,101,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,103,128, 29, + 1, 0, 0, 0, 96,100,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, + 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,153,254, 63, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,103,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,105,128, 29, 1, 0, 0, 0,240,101,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -144,147,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32,149,163, 29, 1, 0, 0, 0, 0,146,163, 29, 1, 0, 0, 0, - 32,198, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,105,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,106,128, 29, + 1, 0, 0, 0,128,103,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105, +110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,254, + 63, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,149,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -176,150,163, 29, 1, 0, 0, 0,144,147,163, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,106,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,108,128, 29, 1, 0, 0, 0, 16,105,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,111,255, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,254, 63, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -176,150,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 64,152,163, 29, 1, 0, 0, 0, 32,149,163, 29, 1, 0, 0, 0, - 96,202, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, -105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, -105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,108,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,109,128, 29, + 1, 0, 0, 0,160,106,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, +101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, + 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 63, 1,203, 0, 0, 0, 0, 0, 0, 0, 10, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,109,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,111,128, 29, 1, 0, 0, 0, 48,108,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,152,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -208,153,163, 29, 1, 0, 0, 0,176,150,163, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 58,254, 63, 1, 58, 0, 20, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,111,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,112,128, 29, + 1, 0, 0, 0,192,109,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, +110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, + 63, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -208,153,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,155,163, 29, 1, 0, 0, 0, 64,152,163, 29, 1, 0, 0, 0, - 32,207, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 63, 1,102, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,112,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,114,128, 29, 1, 0, 0, 0, 80,111,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 63, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,155,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -240,156,163, 29, 1, 0, 0, 0,208,153,163, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,114,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,116,128, 29, + 1, 0, 0, 0,224,112,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, + 63, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59,253, 63, 1,105, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,116,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,117,128, 29, 1, 0, 0, 0,112,114,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -240,156,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,158,163, 29, 1, 0, 0, 0, 96,155,163, 29, 1, 0, 0, 0, - 16,142, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, -109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, -109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 63, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,158,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 32,161,163, 29, 1, 0, 0, 0,240,156,163, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,117,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32,119,128, 29, + 1, 0, 0, 0, 0,116,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, +111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, + 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,119,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,120,128, 29, 1, 0, 0, 0,144,117,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, - 32,161,163, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,158,163, 29, 1, 0, 0, 0, -144,217, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,120,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32,119,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, +112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, + 63, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64,122,128, 29, + 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 64,126,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 63, 1, 0, 0, 20, 0, 0, 0, 4, 0, 3, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,176,162,163, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, -176,166,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,123,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,224,124,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,124,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,123,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 0, 0, 0, 0, 64,166,162, 21, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,240,163,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,165,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, - 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,165,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240,163,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 92,131, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 92,131, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, + 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, +129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 14, 4, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48, 14, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0, 64,126,128, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,122,128, 29, + 1, 0, 0, 0,128,123,128, 29, 1, 0, 0, 0,224,124,128, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,160,127,128, 29, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,136,128, 29, 1, 0, 0, 0,192, 96,128, 29, 1, 0, 0, 0, 96,242,129, 29, + 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0,127, 0, 0, 0, 15, 15, 48, 6,128, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,131,128, 29, 1, 0, 0, 0, 0,135,128, 29, 1, 0, 0, 0,128,128,128, 29, + 1, 0, 0, 0,224,129,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,128,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,224,129,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,198, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6, 26, 0, 48, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,176,166,163, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,162,163, 29, 1, 0, 0, 0,240,163,163, 29, 1, 0, 0, 0, - 80,165,163, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,129,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,128, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 18, 0, 0, 0, +101, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 48, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 26, 0, 0, 0,127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,160,163, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -208,171,163, 29, 1, 0, 0, 0, 32,136,163, 29, 1, 0, 0, 0,224,182,162, 29, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, - 64,242,142, 27, 1, 0, 0, 0, 64,141,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, - 0, 0, 0, 0,127, 0, 0, 0, 15, 15, 48, 6,128, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,109,217, 2, 1, 0, 0, 0, -208,170,163, 29, 1, 0, 0, 0,240,248,162, 29, 1, 0, 0, 0, 16,168,163, 29, 1, 0, 0, 0,112,169,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255,199, 20, 1, 0, 0, 0,224, 25,200, 20, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16,168,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,169,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,198, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, - 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6, - 26, 0, 48, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,110,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64,131,128, 29, 1, 0, 0, 0,173, 0, 0, 0, + 1, 0, 0, 0, 0,135,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112,169,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16,168,163, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, - 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 18, 0, 0, 0,101, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, - 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 48, 6, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 6, 0, 0, 26, 0, 0, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,200, 0, 0, 0,208,170,163, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,240,248,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,132,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,160,133,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,133,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,132,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48,246,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,247,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, - 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,144,247,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,246,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48,192, 7, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,192, 7, 3, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, + 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, +129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18, 4, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48, 18, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0, 0,135,128, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,131,128, 29, + 1, 0, 0, 0, 64,132,128, 29, 1, 0, 0, 0,160,133,128, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,136,128, 29, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144,150,128, 29, 1, 0, 0, 0,160,127,128, 29, 1, 0, 0, 0, 0,252,130, 29, + 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,229, 1, 0, 0,115, 3, 0, 0, 3, 3, 80, 1,143, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,128, 29, 1, 0, 0, 0, 48,149,128, 29, 1, 0, 0, 0, 64,137,128, 29, + 1, 0, 0, 0,160,138,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,137,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,160,138,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, 26, 0, 80, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 90, 3, 0, 0,115, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,138,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,137,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,159, 67, 0,128,177,195, 0, 0, 0, 0, 63, 1, 0, 0, 80, 1, 0, 0, 18, 0, 0, 0, +116, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 18, 0, 0, 0, +116, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, + 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 80, 1,117, 1, 63, 1, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,229, 1, 0, 0, 89, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240,248,162, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,170,163, 29, 1, 0, 0, 0, 48,246,162, 29, 1, 0, 0, 0, -144,247,162, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,140,128, 29, 1, 0, 0, 0,167, 0, 0, 0, + 1, 0, 0, 0, 48,145,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208,171,163, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -176,187,162, 29, 1, 0, 0, 0, 16,160,163, 29, 1, 0, 0, 0,160,237,142, 27, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, - 16,176, 20, 27, 1, 0, 0, 0, 0, 62,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, -229, 1, 0, 0,115, 3, 0, 0, 3, 3, 80, 1,143, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,106,217, 2, 1, 0, 0, 0, - 16,253,162, 29, 1, 0, 0, 0, 80,186,162, 29, 1, 0, 0, 0, 80,250,162, 29, 1, 0, 0, 0,176,251,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 46,200, 20, 1, 0, 0, 0, 32, 66,201, 20, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,250,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,251,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, - 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, - 26, 0, 80, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 6, 0, 0,128, 7, 0, 0, 90, 3, 0, 0,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,108,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176,251,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,250,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,159, 67, - 0,128,177,195, 0, 0, 0, 0, 63, 1, 0, 0, 80, 1, 0, 0, 18, 0, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 18, 0, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 80, 1, -117, 1, 63, 1, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 6, 0, 0,128, 7, 0, 0,229, 1, 0, 0, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,107,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16,253,162, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 64, 2,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,176,238,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,176,238,109, 27, 1, 0, 0, 0,219, 0, 0, 0, + 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 96,141,128, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 96,141,128, 29, + 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 19, 0, 0, 0, + 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 21, 0, 1, 0, + 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, 1, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,112,142,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,143,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0, +247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,208,143,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,142,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, + 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0, +156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0, +247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 1, 0, 0, 48,145,128, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 48,149,128, 29, 1, 0, 0, 0, 0,140,128, 29, + 1, 0, 0, 0,112,142,128, 29, 1, 0, 0, 0,208,143,128, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176, 46,202, 20, 1, 0, 0, 0,176, 46,202, 20, 1, 0, 0, 0,160,254,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 68, 65, 84, 65, 16, 0, 0, 0,160,254,161, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, -112,254,162, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,112,254,162, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, - 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,208, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,220, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,214, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,202, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,255,162, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,224, 0,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 0,163, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, - 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, - 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,146,128, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,147,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64, 2,163, 29, 1, 0, 0, 0, -163, 0, 0, 0, 1, 0, 0, 0, 80,186,162, 29, 1, 0, 0, 0, 16,253,162, 29, 1, 0, 0, 0,128,255,162, 29, 1, 0, 0, 0, -224, 0,163, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,147,128, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,146,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,183,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -240,184,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, + 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,184,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,183,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,196, 7, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,196, 7, 3, + 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, + 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, + 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 6, 5, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 6, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, -237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, - 80,186,162, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 2,163, 29, 1, 0, 0, 0, -144,183,162, 29, 1, 0, 0, 0,240,184,162, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176,187,162, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0,128,211,162, 29, 1, 0, 0, 0,208,171,163, 29, 1, 0, 0, 0,240,143, 21, 27, 1, 0, 0, 0, - 96, 4,162, 29, 1, 0, 0, 0, 32, 31,142, 27, 1, 0, 0, 0, 64,242,142, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0, 99, 4, 0, 0, 1, 1,147, 3,227, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,111,217, 2, 1, 0, 0, 0, 96,206,162, 29, 1, 0, 0, 0,128,210,162, 29, 1, 0, 0, 0,144,188,162, 29, 1, 0, 0, 0, - 0,205,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,176,160, 21, 1, 0, 0, 0, -160,112,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,188,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -240,189,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0,192,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,147, 3, 26, 0,147, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208,119,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,189,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 80,191,162, 29, 1, 0, 0, 0,144,188,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0,157, 2, 0, 0,155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,201, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 48,116,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,191,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -176,192,162, 29, 1, 0, 0, 0,240,189,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, - 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,155, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0,118,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,192,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0,205,162, 29, 1, 0, 0, 0, 80,191,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -112,113,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,194,162, 29, 1, 0, 0, 0, -112,203,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,194,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -160,195,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -160,195,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,197,162, 29, 1, 0, 0, 0, 16,194,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 58, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,197,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -192,198,162, 29, 1, 0, 0, 0,160,195,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,149,128, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48,145,128, 29, 1, 0, 0, 0,112,146,128, 29, 1, 0, 0, 0,208,147,128, 29, 1, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,144,150,128, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,174,128, 29, 1, 0, 0, 0, 96,136,128, 29, + 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0,192,227,179, 21, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0, 99, 4, 0, 0, 1, 1,147, 3, +227, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,169,128, 29, 1, 0, 0, 0, 96,173,128, 29, + 1, 0, 0, 0,112,151,128, 29, 1, 0, 0, 0,224,167,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,151,128, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,152,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +146, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,147, 3, 26, 0,147, 3, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0, +154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -192,198,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,200,162, 29, 1, 0, 0, 0, 48,197,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, - 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, - 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,152,128, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,154,128, 29, 1, 0, 0, 0,112,151,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0,157, 2, 0, 0,155, 0, 0, 0, + 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,201, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,154,128, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,155,128, 29, 1, 0, 0, 0,208,152,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, +155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,200,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -224,201,162, 29, 1, 0, 0, 0,192,198,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,155,128, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,167,128, 29, 1, 0, 0, 0, 48,154,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0, +180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, + 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,156,128, 29, 1, 0, 0, 0, 80,166,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,156,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,158,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,187,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -224,201,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,203,162, 29, 1, 0, 0, 0, 80,200,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102, -111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102, -111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, - 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,203,162, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224,201,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,158,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,160,128, 29, + 1, 0, 0, 0,240,156,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97, +115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252, +163, 0, 58, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,160,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,161,128, 29, 1, 0, 0, 0,128,158,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111, +112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111, +112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 0,205,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,192,162, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,161,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,163,128, 29, + 1, 0, 0, 0, 16,160,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112, +108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211,252, +163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,163,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,164,128, 29, 1, 0, 0, 0,160,161,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, + 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, + 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0, -155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3,201, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 10, 5, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, - 48, 10, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 38, 67,148, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, - 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, - 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, - 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, -164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,200, 42,243, 62,208,249,224,190, 48,180, 81,191,184,158, 81,191, - 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,222,187,123,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, - 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 88, 62,181, 62, 47,143, 73, 63,144,162, 59,188, 0, 0, 96,179, -191, 15,188,190,128, 75, 53, 62,217,125, 81, 63, 0, 0, 96,178, 67,108,117,194,185,204,216, 65,104,156, 5,194,212,247,159,192, -235, 62,114, 66, 61,254,213,193,157,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, - 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,200, 42,243, 62,208,249,224,190, 48,180, 81,191,184,158, 81,191, - 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,222,187,123,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, - 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, -214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,149, 87,247, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,164,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,166,128, 29, + 1, 0, 0, 0, 48,163,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110, +115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163,252, +163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,166,128, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,164,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,167,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,144,155,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,206,162, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, -128,210,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, -205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,192,207,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,209,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, - 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, - 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,147, 3,201, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,120,131, 27, + 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,120,131, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 38, 67,148, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, + 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, + 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,200, 42,243, 62, +208,249,224,190, 48,180, 81,191,184,158, 81,191, 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,222,187,123,188, +206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 88, 62,181, 62, + 47,143, 73, 63,144,162, 59,188, 0, 0, 96,179,191, 15,188,190,128, 75, 53, 62,217,125, 81, 63, 0, 0, 96,178, 67,108,117,194, +185,204,216, 65,104,156, 5,194,212,247,159,192,235, 62,114, 66, 61,254,213,193,157,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,200, 42,243, 62, +208,249,224,190, 48,180, 81,191,184,158, 81,191, 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,222,187,123,188, +206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65,124,197, 7, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, + 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,149, 87,247, 58, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 32,209,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192,207,162, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, - 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, - 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, -122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,200, 0, 0, 0,128,210,162, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,206,162, 29, 1, 0, 0, 0,192,207,162, 29, 1, 0, 0, 0, 32,209,162, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,128,211,162, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,236,162, 29, 1, 0, 0, 0, -176,187,162, 29, 1, 0, 0, 0,240,185,140, 27, 1, 0, 0, 0, 32,142,160, 21, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, -240,143, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,129, 0, 0, 0,147, 1, 0, 0, - 2, 2,156, 2, 19, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,120,217, 2, 1, 0, 0, 0,224,217,162, 29, 1, 0, 0, 0, -112,235,162, 29, 1, 0, 0, 0, 96,212,162, 29, 1, 0, 0, 0,128,216,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 41,201, 20, 1, 0, 0, 0, 96, 61,202, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 96,212,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,213,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, -129, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,122,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 64,169,128, 29, + 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 96,173,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -192,213,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,215,162, 29, 1, 0, 0, 0, 96,212,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,103,195, 0, 0, 0, 0, -200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,249, 0,200, 0,231, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, -155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,249, 0, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,123,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,170,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0,172,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 32,215,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,216,162, 29, 1, 0, 0, 0,192,213,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,172,128, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,170,128, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96,173,128, 29, 1, 0, 0, 0,173, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,169,128, 29, 1, 0, 0, 0,160,170,128, 29, 1, 0, 0, 0, 0,172,128, 29, + 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,155, 2, 0, 0, -155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,124,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -128,216,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,215,162, 29, 1, 0, 0, 0, - 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0,248, 0, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, - 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,195, 1,249, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,155, 2, 0, 0, -155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 1,249, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,121,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, -224,217,162, 29, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,144,223,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,174,128, 29, 1, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 48,159,111, 27, 1, 0, 0, 0,144,150,128, 29, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0,128, 65,129, 29, + 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +155, 2, 0, 0,129, 0, 0, 0,147, 1, 0, 0, 2, 2,156, 2, 19, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,183,110, 27, 1, 0, 0, 0, 48,158,111, 27, 1, 0, 0, 0, 64,175,128, 29, 1, 0, 0, 0, 96,179,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,175,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,176,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, + 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,129, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,176,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,178,128, 29, + 1, 0, 0, 0, 64,175,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 72, 67, 0, 0,103,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, +199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, + 6, 0,217, 0,249, 0,200, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,217, 0,249, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16,219,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,219,162, 29, 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112,219,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,220,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, - 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, - 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,178,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,179,128, 29, + 1, 0, 0, 0,160,176,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,208,220,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,222,162, 29, 1, 0, 0, 0, -112,219,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, - 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0, -164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48,222,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208,220,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, - 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,155, 2, 0, 0,155, 2, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,179,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,178,128, 29, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0, +194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0,248, 0, 0, 0,111, 18,131, 58, +111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0,195, 1,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,217, 0, 0, 0,155, 2, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,195, 1,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,168, 0, 0, 0,144,223,162, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 80,231,162, 29, 1, 0, 0, 0, -224,217,162, 29, 1, 0, 0, 0,112,219,162, 29, 1, 0, 0, 0, 48,222,162, 29, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 0,183,110, 27, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,128, 24,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112,224,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,225,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, - 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,208,225,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,227,162, 29, 1, 0, 0, 0, -112,224,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, -255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, - 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48,227,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,228,162, 29, 1, 0, 0, 0, -208,225,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,144,228,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,229,162, 29, 1, 0, 0, 0, - 48,227,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,240,229,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144,228,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 14, 5, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48, 14, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, -222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63, -224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, - 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, -222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,184,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,184,110, 27, + 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,184,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 23,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 23,131, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,208,145,111, 27, 1, 0, 0, 0,144,184,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0, +163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0, +163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80,231,162, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0,112,235,162, 29, 1, 0, 0, 0,144,223,162, 29, 1, 0, 0, 0,112,224,162, 29, 1, 0, 0, 0, -240,229,162, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,145,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 23,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0, +164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,232,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 16,234,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,128, 24,131, 29, 1, 0, 0, 0,168, 0, 0, 0, + 1, 0, 0, 0, 16,154,111, 27, 1, 0, 0, 0, 0,183,110, 27, 1, 0, 0, 0,144,184,110, 27, 1, 0, 0, 0,208,145,111, 27, + 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,234,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,232,162, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, -112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,147,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,144,148,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,112,235,162, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,231,162, 29, 1, 0, 0, 0,176,232,162, 29, 1, 0, 0, 0, 16,234,162, 29, 1, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,148,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,240,149,111, 27, 1, 0, 0, 0, 48,147,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,149,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 80,151,111, 27, 1, 0, 0, 0,144,148,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,236,162, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -144, 0,164, 29, 1, 0, 0, 0,128,211,162, 29, 1, 0, 0, 0, 32,142,160, 21, 1, 0, 0, 0,208,140,162, 21, 1, 0, 0, 0, - 96, 4,162, 29, 1, 0, 0, 0, 80,164, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, -149, 1, 0, 0, 99, 4, 0, 0, 12, 12,156, 2,207, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,159,217, 2, 1, 0, 0, 0, - 80,230,163, 29, 1, 0, 0, 0, 16,237,163, 29, 1, 0, 0, 0, 80,237,162, 29, 1, 0, 0, 0, 16,240,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,220,200, 20, 1, 0, 0, 0, 32,129,160, 21, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,237,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,238,162, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 39, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, - 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,156, 2, - 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,155, 2, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,160,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,151,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,176,152,111, 27, 1, 0, 0, 0,240,149,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176,238,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,240,162, 29, 1, 0, 0, 0, - 80,237,162, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, - 0,192, 40,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0, -181, 2,200, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,199, 0, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200, 0,181, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,161,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,152,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,151,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16,240,162, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,238,162, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, - 0,192, 40,196, 0, 0, 0, 0,195, 1, 0, 0,212, 1, 0, 0, 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,212, 1, -181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200, 0, 0, 0,155, 2, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -212, 1,181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,159,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 8, 1, 0, 0, 80,230,163, 29, 1, 0, 0, 0, 22, 1, 0, 0, 1, 0, 0, 0,128,245,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48,124,131, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,124,131, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, + 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, + 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, + 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, + 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, +151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, + 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,144,231,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,241,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 78, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, - 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, - 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,159, 3, 0, 0, 49, 2, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 96,241,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,242,163, 29, 1, 0, 0, 0, -144,231,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, - 0, 0,219,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,199, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, -200, 1,200, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216, 0, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, 0,200, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0, 16,154,111, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 48,158,111, 27, 1, 0, 0, 0,128, 24,131, 29, + 1, 0, 0, 0, 48,147,111, 27, 1, 0, 0, 0,176,152,111, 27, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,155,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,156,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,192,242,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,244,163, 29, 1, 0, 0, 0, - 96,241,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, +126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,156,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,155,111, 27, 1, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, +248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 3, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48,158,111, 27, + 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,154,111, 27, 1, 0, 0, 0,112,155,111, 27, + 1, 0, 0, 0,208,156,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 32,244,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192,242,163, 29, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,199, 1, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 18, 0, 0, 0,199, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, - 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,199, 2, -200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, 0, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,248, 0, 0, 0,128,245,163, 29, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, 80,221,163, 29, 1, 0, 0, 0, - 80,230,163, 29, 1, 0, 0, 0,144,231,163, 29, 1, 0, 0, 0, 32,244,163, 29, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48,159,111, 27, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,189,111, 27, 1, 0, 0, 0, 96,174,128, 29, 1, 0, 0, 0,128, 65,129, 29, + 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,149, 1, 0, 0, 99, 4, 0, 0, 12, 12,156, 2,207, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,164,111, 27, 1, 0, 0, 0, 32,188,111, 27, 1, 0, 0, 0, 16,160,111, 27, + 1, 0, 0, 0,208,162,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,160,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,112,161,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,161,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,208,162,111, 27, 1, 0, 0, 0, 16,160,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0,192, 40,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, +180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, + 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,181, 2,200, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,181, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,162,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,161,111, 27, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0,192, 40,196, 0, 0, 0, 0,195, 1, 0, 0,212, 1, 0, 0, 18, 0, 0, 0, +180, 2, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0, +180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,212, 1,181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,155, 2, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 1,181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240,232,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,232,163, 29, 1, 0, 0, 0, - 21, 1, 0, 0, 1, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,223,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -144,218,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, 48,164,111, 27, 1, 0, 0, 0, 22, 1, 0, 0, + 1, 0, 0, 0,240,170,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,218,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -240,219,163, 29, 1, 0, 0, 0,112,223,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, - 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,219,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,218,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, - 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,165,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,208,166,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 78, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 49, 2, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,166,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 48,168,111, 27, 1, 0, 0, 0,112,165,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,219,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, +199, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, +199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, + 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,200, 1,200, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,200, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 80,221,163, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, -112,174,163, 29, 1, 0, 0, 0,128,245,163, 29, 1, 0, 0, 0,112,223,163, 29, 1, 0, 0, 0,240,219,163, 29, 1, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,234,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -176,235,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,168,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,144,169,111, 27, 1, 0, 0, 0,208,166,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,235,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -208,253,163, 29, 1, 0, 0, 0, 80,234,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,253,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 48,255,163, 29, 1, 0, 0, 0,176,235,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, - 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,255,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 16,173,163, 29, 1, 0, 0, 0,208,253,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,169,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,168,111, 27, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, + 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +199, 1, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 18, 0, 0, 0, +199, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,173,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,255,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,240,170,111, 27, 1, 0, 0, 0,162, 0, 0, 0, + 1, 0, 0, 0, 64,176,111, 27, 1, 0, 0, 0, 48,164,111, 27, 1, 0, 0, 0,112,165,111, 27, 1, 0, 0, 0,144,169,111, 27, + 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,185,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,240,185,110, 27, 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,172,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,173,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0, +110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 18, 5, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 18, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, -226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, - 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, -162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, - 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0, -185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63, -192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62, -232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, -250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53, -215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, - 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, -162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, -192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62, -232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,173,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,174,111, 27, 1, 0, 0, 0, 32,172,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0, +189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, -172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,174,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,173,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 64,176,111, 27, + 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 0,184,111, 27, 1, 0, 0, 0,240,170,111, 27, 1, 0, 0, 0, 32,172,111, 27, + 1, 0, 0, 0,224,174,111, 27, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,177,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,178,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0, +110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,178,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,179,111, 27, 1, 0, 0, 0, 32,177,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,179,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,181,111, 27, 1, 0, 0, 0,128,178,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,181,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,182,111, 27, 1, 0, 0, 0,224,179,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0, +180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,182,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,181,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,128,131, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,128,131, 27, + 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, + 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, +142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, +111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63, +140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190, +191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68, +159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63, +140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, -112,174,163, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 16,237,163, 29, 1, 0, 0, 0, 80,221,163, 29, 1, 0, 0, 0, - 80,234,163, 29, 1, 0, 0, 0, 16,173,163, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,175,163, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 48,177,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,177,163, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,175,163, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, - 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, - 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 16,237,163, 29, 1, 0, 0, 0, -173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,174,163, 29, 1, 0, 0, 0,208,175,163, 29, 1, 0, 0, 0, - 48,177,163, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 0,184,111, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 32,188,111, 27, + 1, 0, 0, 0, 64,176,111, 27, 1, 0, 0, 0, 32,177,111, 27, 1, 0, 0, 0,160,182,111, 27, 1, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 96,185,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,186,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,192,186,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,185,111, 27, + 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, + 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144, 0,164, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,236,162, 29, 1, 0, 0, 0,176, 5,143, 27, 1, 0, 0, 0, - 32, 31,142, 27, 1, 0, 0, 0,144,246,142, 27, 1, 0, 0, 0, 16,176, 20, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 99, 4, 0, 0, 1, 1, 80, 1,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,111,217, 2, 1, 0, 0, 0, 80,181,163, 29, 1, 0, 0, 0,144,189,163, 29, 1, 0, 0, 0,144,178,163, 29, 1, 0, 0, 0, -240,179,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 62,201, 20, 1, 0, 0, 0, -240, 0,202, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,178,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -240,179,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0,132, 1, 24, 0,132, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0,117, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -208,119,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,179,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,178,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +200, 0, 0, 0, 32,188,111, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,111, 27, + 1, 0, 0, 0, 96,185,111, 27, 1, 0, 0, 0,192,186,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 32,189,111, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,159,111, 27, + 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0,160,129, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 99, 4, 0, 0, 1, 1, 80, 1, +239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,192,110, 27, 1, 0, 0, 0, 96,191,111, 27, + 1, 0, 0, 0, 0,190,111, 27, 1, 0, 0, 0,176, 18,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,190,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 18,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 22, 5, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 22, 5, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, - 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,160, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128, -221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0, -191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, -223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, - 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, - 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63, -179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,118,101,150,191,216, 49, 49, 65,152, 9, 52, 65, -231, 70,158, 62, 23,234,167, 62,160,206,159,187, 0, 0,168,180, 27, 97,208,189, 70, 41,205, 61,173,247,146, 62, 0, 0,166, 51, -211,120, 21,194,145, 5, 2, 66, 9,136,213,193,193,214,159,192,219, 38, 19, 66,197,173,255,193,157,101,210, 65,173, 40,160, 64, -221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0, -191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, - 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63, -179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191,118,101,150,191,216, 49, 49, 65,152, 9, 52, 65, +131, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,132, 1, 24, 0,132, 1, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, +117, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,210, 47, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 18,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, + 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,240,133, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,240,133, 27, + 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120,160, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0,128, + 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, +225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, +254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190, +228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64, +151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, + 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191, +118,101,150,191,216, 49, 49, 65,152, 9, 52, 65,231, 70,158, 62, 23,234,167, 62,160,206,159,187, 0, 0,168,180, 27, 97,208,189, + 70, 41,205, 61,173,247,146, 62, 0, 0,166, 51,211,120, 21,194,145, 5, 2, 66, 9,136,213,193,193,214,159,192,219, 38, 19, 66, +197,173,255,193,157,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, +225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, +254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, + 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191, +118,101,150,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,210, 47, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, - 80,181,163, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,112,185,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,182,163, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 16,184,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 1, 26, 0,132, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0,128, 7, 0, 0,249, 3, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,184,163, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,182,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, - 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,185, 67, 0, 0, 62,195, 0, 0, 0, 0,115, 1, 0, 0,132, 1, 0, 0, - 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, - 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,132, 1,208, 0,115, 1,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0,128, 7, 0, 0, 41, 3, 0, 0,248, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,185,163, 29, 1, 0, 0, 0, -167, 0, 0, 0, 1, 0, 0, 0,144,189,163, 29, 1, 0, 0, 0, 80,181,163, 29, 1, 0, 0, 0,176,182,163, 29, 1, 0, 0, 0, - 16,184,163, 29, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,209,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 48,209,161, 29, 1, 0, 0, 0, -219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 48,222,163, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, - 48,222,163, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, - 19, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, - 21, 0, 1, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 48,220, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 48,214, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,208,186,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,188,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, - 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, - 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48,188,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208,186,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67, -223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0, -156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 1, 0, 0,144,189,163, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,185,163, 29, 1, 0, 0, 0,208,186,163, 29, 1, 0, 0, 0, 48,188,163, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, -208,190,163, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,208, 30,165, 29, 1, 0, 0, 0,112,122,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, - 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,224,163, 29, 1, 0, 0, 0, - 0,196,163, 29, 1, 0, 0, 0, 96,196,163, 29, 1, 0, 0, 0, 64,204,163, 29, 1, 0, 0, 0, 64,206,163, 29, 1, 0, 0, 0, - 0, 3,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,208,224,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,225,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 48,225,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0,208,224,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0, 48,225,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -160,192,163, 29, 1, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, - 64,192,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 0,193,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,192,193,163, 29, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192,193,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 32,194,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, -192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -128,194,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -160,195,163, 29, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,180, 1, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,196,163, 29, 1, 0, 0, 0, - 64,195,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 0,196,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,196,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,192,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, - 48,225,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,196,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 32,197,163, 29, 1, 0, 0, 0, 96,196,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, - 48,225,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,197,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,128,197,163, 29, 1, 0, 0, 0,192,196,163, 29, 1, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, - 0,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,197,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,224,197,163, 29, 1, 0, 0, 0, 32,197,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, - 0,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,197,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 64,198,163, 29, 1, 0, 0, 0,128,197,163, 29, 1, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0, -192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,198,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,160,198,163, 29, 1, 0, 0, 0,224,197,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, -192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,198,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 0,199,163, 29, 1, 0, 0, 0, 64,198,163, 29, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, - 32,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0,199,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 96,199,163, 29, 1, 0, 0, 0,160,198,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, - 32,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,199,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,192,199,163, 29, 1, 0, 0, 0, 0,199,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, - 32,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,199,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 32,200,163, 29, 1, 0, 0, 0, 96,199,163, 29, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, -192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,200,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,128,200,163, 29, 1, 0, 0, 0,192,199,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, -128,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,200,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,224,200,163, 29, 1, 0, 0, 0, 32,200,163, 29, 1, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0, -224,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,200,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 64,201,163, 29, 1, 0, 0, 0,128,200,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, -224,194,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,201,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,160,201,163, 29, 1, 0, 0, 0,224,200,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, - 64,195,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,201,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 0,202,163, 29, 1, 0, 0, 0, 64,201,163, 29, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, - 64,195,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0,202,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 96,202,163, 29, 1, 0, 0, 0,160,201,163, 29, 1, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, -208,224,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,202,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,192,202,163, 29, 1, 0, 0, 0, 0,202,163, 29, 1, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, - 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,202,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 32,203,163, 29, 1, 0, 0, 0, 96,202,163, 29, 1, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0, - 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,203,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,128,203,163, 29, 1, 0, 0, 0,192,202,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, - 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,203,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0,224,203,163, 29, 1, 0, 0, 0, 32,203,163, 29, 1, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0, -160,195,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,203,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 64,204,163, 29, 1, 0, 0, 0,128,203,163, 29, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, - 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,204,163, 29, 1, 0, 0, 0, -193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,203,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, -208,224,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 64,206,163, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0,128,208,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, - 48,225,163, 29, 1, 0, 0, 0,224,191,163, 29, 1, 0, 0, 0, 0,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, -208,144,217, 2, 1, 0, 0, 0, 80, 30,165, 29, 1, 0, 0, 0, 80, 30,165, 29, 1, 0, 0, 0, 32,207,163, 29, 1, 0, 0, 0, -240, 9,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 69,201, 20, 1, 0, 0, 0, -208,112,160, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,207,163, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -240, 9,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 9,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,207,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,128,208,163, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 16, 15,164, 29, 1, 0, 0, 0, 64,206,163, 29, 1, 0, 0, 0, 0,196,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, -192,193,163, 29, 1, 0, 0, 0, 64,192,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, - 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,100, 1,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 16,109,217, 2, 1, 0, 0, 0, - 16, 14,164, 29, 1, 0, 0, 0, 0,173,164, 29, 1, 0, 0, 0, 80, 11,164, 29, 1, 0, 0, 0,176, 12,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,180,160, 21, 1, 0, 0, 0,240, 11,143, 27, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80, 11,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 12,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0,221, 67, 0,128, 71, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, - 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, - 26, 0,100, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,110,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176, 12,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 11,164, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, - 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, - 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,100, 1, - 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 6, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,200, 0, 0, 0, 16, 14,164, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0,173,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 64,170,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,171,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, - 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,160,171,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64,170,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,208, 2, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48,208, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,192,110, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 80,196,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,144,193,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,194,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 1, 26, 0,132, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0, +128, 7, 0, 0,249, 3, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1, 26, 0, + 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,240,194,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,193,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,185, 67, 0, 0, 62,195, + 0, 0, 0, 0,115, 1, 0, 0,132, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,132, 1,208, 0,115, 1, +190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0, +128, 7, 0, 0, 41, 3, 0, 0,248, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 0,173,164, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 14,164, 29, 1, 0, 0, 0, 64,170,164, 29, 1, 0, 0, 0, -160,171,164, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 80,196,110, 27, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 96,191,111, 27, 1, 0, 0, 0, 48,192,110, 27, + 1, 0, 0, 0,144,193,110, 27, 1, 0, 0, 0,240,194,110, 27, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16, 15,164, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -112,203,164, 29, 1, 0, 0, 0,128,208,163, 29, 1, 0, 0, 0, 96,193,163, 29, 1, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0, - 0,193,163, 29, 1, 0, 0, 0,192,193,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, -101, 0, 0, 0, 99, 4, 0, 0, 4, 4,100, 1,255, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,141,217, 2, 1, 0, 0, 0, -192,192,164, 29, 1, 0, 0, 0, 16,202,164, 29, 1, 0, 0, 0, 96,174,164, 29, 1, 0, 0, 0,192,175,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 13,201, 20, 1, 0, 0, 0, 16,117,160, 21, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 96,174,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,175,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,178, 67, - 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, - 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, - 31, 0,100, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 6, 0, 0,128, 7, 0, 0, 69, 4, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,192,175,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,174,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 67, 0, 64,115,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,169, 67, -254,127,115,196, 0, 0, 0, 0, 83, 1, 0, 0,100, 1, 0, 0, 18, 0, 0, 0,223, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 18, 0, 0, 0,223, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,100, 1, -224, 3, 83, 1,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 78,201, 20, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 29, 6, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 68, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 1,224, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,142,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,177,164, 29, 1, 0, 0, 0, 48,191,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 32,177,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,178,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, - 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, - 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,186,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 82, 1, 36, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, + 16, 0, 0, 0, 80,186,110, 27, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 16, 20,131, 29, + 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 16, 20,131, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, + 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 58,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48,171,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 64,198,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 54,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 32,163,176, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,197,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 16,199,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,178,164, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 64,180,164, 29, 1, 0, 0, 0, 32,177,164, 29, 1, 0, 0, 0, 32,198, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,199,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,197,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, + 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, +155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, + 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 96,191,111, 27, 1, 0, 0, 0,163, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,196,110, 27, 1, 0, 0, 0,176,197,110, 27, 1, 0, 0, 0, 16,199,110, 27, + 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 82, 1, 61, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 64,180,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,181,164, 29, 1, 0, 0, 0, -176,178,164, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 82, 1, 0, 0, - 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,240,200,110, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 32,158,131, 29, + 1, 0, 0, 0, 48, 90,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111, +109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 64,207,110, 27, 1, 0, 0, 0, 32,215,110, 27, + 1, 0, 0, 0,128,215,110, 27, 1, 0, 0, 0, 96, 57,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,202,110, 27, + 1, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0, 96,202,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,203,110, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64,204,110, 27, + 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0,224,203,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160,204,110, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,100, 4, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,205,110, 27, + 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0, 96,205,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,206,110, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 64,207,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,207,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,160,207,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,208,110, 27, 1, 0, 0, 0, 64,207,110, 27, + 1, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 0,208,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,208,110, 27, 1, 0, 0, 0,160,207,110, 27, + 1, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 96,208,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,208,110, 27, 1, 0, 0, 0, 0,208,110, 27, + 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,192,208,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,209,110, 27, 1, 0, 0, 0, 96,208,110, 27, + 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 32,209,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,209,110, 27, 1, 0, 0, 0,192,208,110, 27, + 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,128,209,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,209,110, 27, 1, 0, 0, 0, 32,209,110, 27, + 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,224,209,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,210,110, 27, 1, 0, 0, 0,128,209,110, 27, + 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 64,210,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,210,110, 27, 1, 0, 0, 0,224,209,110, 27, + 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,160,210,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,211,110, 27, 1, 0, 0, 0, 64,210,110, 27, + 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 0,211,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,211,110, 27, 1, 0, 0, 0,160,210,110, 27, + 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 96,211,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,211,110, 27, 1, 0, 0, 0, 0,211,110, 27, + 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,192,211,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,212,110, 27, 1, 0, 0, 0, 96,211,110, 27, + 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 32,212,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,212,110, 27, 1, 0, 0, 0,192,211,110, 27, + 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,128,212,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,212,110, 27, 1, 0, 0, 0, 32,212,110, 27, + 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,224,212,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,213,110, 27, 1, 0, 0, 0,128,212,110, 27, + 1, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 64,213,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,213,110, 27, 1, 0, 0, 0,224,212,110, 27, + 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,160,213,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,214,110, 27, 1, 0, 0, 0, 64,213,110, 27, + 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 0,214,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,214,110, 27, 1, 0, 0, 0,160,213,110, 27, + 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 96,214,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,214,110, 27, 1, 0, 0, 0, 0,214,110, 27, + 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,192,214,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,215,110, 27, 1, 0, 0, 0, 96,214,110, 27, + 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 32,215,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,214,110, 27, + 1, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,128,215,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,219,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0,224,203,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, + 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,142,111, 27, 1, 0, 0, 0, 80,142,111, 27, + 1, 0, 0, 0, 96,216,110, 27, 1, 0, 0, 0,192,217,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,216,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,217,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0, +126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,217,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,216,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, +129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0, +128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,219,110, 27, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,227,110, 27, 1, 0, 0, 0,128,215,110, 27, 1, 0, 0, 0,224,206,110, 27, + 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,100, 1,100, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,222,110, 27, 1, 0, 0, 0,128,226,110, 27, 1, 0, 0, 0, 0,220,110, 27, + 1, 0, 0, 0, 96,221,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,220,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 96,221,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0,221, 67, 0,128, 71, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, 26, 0,100, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,221,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,110, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 18, 0, 0, 0, + 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,100, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,192,222,110, 27, 1, 0, 0, 0,173, 0, 0, 0, + 1, 0, 0, 0,128,226,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,223,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32,225,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,225,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,223,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48,244,133, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,244,133, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, + 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, +129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0,128,226,110, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,222,110, 27, + 1, 0, 0, 0,192,223,110, 27, 1, 0, 0, 0, 32,225,110, 27, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224,227,110, 27, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208, 1,111, 27, 1, 0, 0, 0, 32,219,110, 27, 1, 0, 0, 0, 64,204,110, 27, + 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 99, 4, 0, 0, 4, 4,100, 1,255, 3, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,247,110, 27, 1, 0, 0, 0,112, 0,111, 27, 1, 0, 0, 0,192,228,110, 27, + 1, 0, 0, 0, 32,230,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,228,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32,230,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,178, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, 31, 0,100, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 69, 4, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,181,164, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 96,183,164, 29, 1, 0, 0, 0, 64,180,164, 29, 1, 0, 0, 0, 96,202, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,230,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,228,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 67, 0, 64,115,196, + 0, 0, 0, 0, 0, 0, 0, 0,255,127,169, 67,254,127,115,196, 0, 0, 0, 0, 83, 1, 0, 0,100, 1, 0, 0, 18, 0, 0, 0, +223, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 18, 0, 0, 0, +223, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,100, 1,224, 3, 83, 1,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 68, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1,224, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,231,110, 27, + 1, 0, 0, 0,144,245,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,231,110, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 16,233,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 82, 1,203, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,220,255, 82, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 96,183,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,184,164, 29, 1, 0, 0, 0, -208,181,164, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, - 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 82, 1, 58, 0, - 20, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 16,233,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,234,110, 27, 1, 0, 0, 0,128,231,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, +110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, +110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 82, 1, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,184,164, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,128,186,164, 29, 1, 0, 0, 0, 96,183,164, 29, 1, 0, 0, 0, 32,207, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,234,110, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 48,236,110, 27, 1, 0, 0, 0, 16,233,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 82, 1,102, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,111,255, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,128,186,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,188,164, 29, 1, 0, 0, 0, -240,184,164, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 48,236,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,237,110, 27, 1, 0, 0, 0,160,234,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, +109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 82, 1,105, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 82, 1,203, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,188,164, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,160,189,164, 29, 1, 0, 0, 0,128,186,164, 29, 1, 0, 0, 0, 16,142, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,237,110, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 80,239,110, 27, 1, 0, 0, 0, 48,236,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58,254, 82, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 80,239,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,240,110, 27, 1, 0, 0, 0,192,237,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, + 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, + 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,160,189,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,191,164, 29, 1, 0, 0, 0, - 16,188,164, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, - 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 82, 1, 0, 0, - 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 82, 1,102, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,191,164, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,189,164, 29, 1, 0, 0, 0,144,217, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,240,110, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,112,242,110, 27, 1, 0, 0, 0, 80,239,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 82, 1, 0, 0, 20, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 59,253, 82, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,112,242,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,244,110, 27, 1, 0, 0, 0,224,240,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, +114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 0, 1, 0, 0,192,192,164, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 32,198,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 82, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,244,110, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,144,245,110, 27, 1, 0, 0, 0,112,242,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, -160, 26,200, 20, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 0,194,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,195,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0, 11,253, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, - 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 96,195,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,196,164, 29, 1, 0, 0, 0, 0,194,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,144,245,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, + 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 82, 1, 0, 0, 20, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, -112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 32,247,110, 27, 1, 0, 0, 0,163, 0, 0, 0, + 1, 0, 0, 0,128,252,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -192,196,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,195,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, - 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, -112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, - 32,198,164, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16,202,164, 29, 1, 0, 0, 0,192,192,164, 29, 1, 0, 0, 0, - 0,194,164, 29, 1, 0, 0, 0,192,196,164, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,248,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,249,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, + 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, + 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,249,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,251,110, 27, + 1, 0, 0, 0, 96,248,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,199,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,200,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, - 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176,200,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,199,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,251,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,192,249,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0, +227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, + 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,212, 2, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48,212, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128,252,110, 27, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,112, 0,111, 27, + 1, 0, 0, 0, 32,247,110, 27, 1, 0, 0, 0, 96,248,110, 27, 1, 0, 0, 0, 32,251,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 16,202,164, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,198,164, 29, 1, 0, 0, 0, 80,199,164, 29, 1, 0, 0, 0, -176,200,164, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,203,164, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -176,236,164, 29, 1, 0, 0, 0, 16, 15,164, 29, 1, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0, -224,194,163, 29, 1, 0, 0, 0, 0,196,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, - 0, 0, 0, 0,179, 1, 0, 0, 1, 1, 27, 3,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,111,217, 2, 1, 0, 0, 0, - 32,222,164, 29, 1, 0, 0, 0,176,235,164, 29, 1, 0, 0, 0, 80,204,164, 29, 1, 0, 0, 0,192,220,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,140, 27, 1, 0, 0, 0,240, 90,201, 20, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,204,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,205,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 27, 3, - 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,119,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176,205,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,207,164, 29, 1, 0, 0, 0, - 80,204,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, -255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, - 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 3, 0, 0, 1, 3, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0,154, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,116,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16,207,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,208,164, 29, 1, 0, 0, 0, -176,205,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 3, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,118,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112,208,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,220,164, 29, 1, 0, 0, 0, - 16,207,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 6, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,113,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,209,164, 29, 1, 0, 0, 0, 48,219,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,208,209,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,211,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, -109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,211,164, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,240,212,164, 29, 1, 0, 0, 0,208,209,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,253,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 16,255,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,255,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,253,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,240,212,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,214,164, 29, 1, 0, 0, 0, - 96,211,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,214,164, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 16,216,164, 29, 1, 0, 0, 0,240,212,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, + 0, 0, 0, 0, 48,248,133, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,248,133, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, + 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, +129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 16,216,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,217,164, 29, 1, 0, 0, 0, -128,214,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117, -110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, - 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,217,164, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 48,219,164, 29, 1, 0, 0, 0, 16,216,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, -110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, -110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0,112, 0,111, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,252,110, 27, + 1, 0, 0, 0,176,253,110, 27, 1, 0, 0, 0, 16,255,110, 27, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208, 1,111, 27, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16, 35,111, 27, 1, 0, 0, 0,224,227,110, 27, 1, 0, 0, 0,128,206,110, 27, + 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 1, 1, 27, 3,180, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 20,111, 27, 1, 0, 0, 0, 16, 34,111, 27, 1, 0, 0, 0,176, 2,111, 27, + 1, 0, 0, 0, 32, 19,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 2,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 16, 4,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 48,219,164, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160,217,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 4,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,112, 5,111, 27, 1, 0, 0, 0,176, 2,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,154, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 5,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,208, 6,111, 27, 1, 0, 0, 0, 16, 4,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,220,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,208,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 6,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 19,111, 27, 1, 0, 0, 0,112, 5,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, +129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, +129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 8,111, 27, + 1, 0, 0, 0,144, 17,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 8,111, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,192, 9,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,216, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,216, 2, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0, 37,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 94, 95, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, - 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62, -149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190, -152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, - 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, - 77,255,170, 64, 0, 0,128, 63, 4, 6,158, 63, 79,200,141,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,189,151,139, 63, -180,164, 28, 63,149, 84, 28, 63, 1,127,159,188, 90,254, 71, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,231, 72,168,191, -216, 49, 49, 65,152, 9, 52, 65, 80, 25,195, 62,218,249,206, 62, 0,237,196,187, 0, 0, 96,179,204, 58,186,189,131, 90,183, 61, - 76, 88,131, 62, 0, 0,152, 50,254,120, 21,194,182, 5, 2, 66, 70,136,213,193,239,214,159,192, 5, 39, 19, 66, 15,174,255,193, -217,101,210, 65,219, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62, -149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190, -152, 9, 52,193, 0, 0,128, 63, 4, 6,158, 63, 79,200,141,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,189,151,139, 63, -180,164, 28, 63,149, 84, 28, 63, 1,127,159,188, 90,254, 71, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,231, 72,168,191, -216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,192, 9,111, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 11,111, 27, 1, 0, 0, 0, 48, 8,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, +101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, +101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190,214,211,111, 65,214,211,111, 65, - 0, 0, 0, 0, 0, 0, 0, 0,123, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 11,111, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,224, 12,111, 27, 1, 0, 0, 0,192, 9,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,224, 12,111, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112, 14,111, 27, 1, 0, 0, 0, 80, 11,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, +118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, +118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0, 32,222,164, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 64,226,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -128,223,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,224,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 59, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,239, 2, 26, 0,239, 2, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -224,224,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,223,164, 29, 1, 0, 0, 0, - 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 40, 57, 61,194,146,211, 11, 68,174,122,214, 66, 82, 97,202, 67, -222, 2, 0, 0,239, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,221, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, -205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,239, 2,122, 1,222, 2,104, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, - 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2,122, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 14,111, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0, 16,111, 27, 1, 0, 0, 0,224, 12,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, - 64,226,164, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,192,231,164, 29, 1, 0, 0, 0, 32,222,164, 29, 1, 0, 0, 0, -128,223,164, 29, 1, 0, 0, 0,224,224,164, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 0, 16,111, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144, 17,111, 27, 1, 0, 0, 0,112, 14,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, + 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, + 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114, +105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,199, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144, 17,111, 27, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,227,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0,229,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, - 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,229,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 96,230,164, 29, 1, 0, 0, 0,160,227,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 32, 19,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 6,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, + 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,230,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, - 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,252,133, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48,252,133, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 37,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 94, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, + 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, + 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, + 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, + 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 4, 6,158, 63, 79,200,141,191,244,250, 39,191, + 8,165, 39,191,170,164,167, 63,189,151,139, 63,180,164, 28, 63,149, 84, 28, 63, 1,127,159,188, 90,254, 71, 64, 8,108,228,190, + 50,247,227,190,222,212, 27,191,231, 72,168,191,216, 49, 49, 65,152, 9, 52, 65, 80, 25,195, 62,218,249,206, 62, 0,237,196,187, + 0, 0, 96,179,204, 58,186,189,131, 90,183, 61, 76, 88,131, 62, 0, 0,152, 50,254,120, 21,194,182, 5, 2, 66, 70,136,213,193, +239,214,159,192, 5, 39, 19, 66, 15,174,255,193,217,101,210, 65,219, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, + 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, + 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 4, 6,158, 63, 79,200,141,191,244,250, 39,191, + 8,165, 39,191,170,164,167, 63,189,151,139, 63,180,164, 28, 63,149, 84, 28, 63, 1,127,159,188, 90,254, 71, 64, 8,108,228,190, + 50,247,227,190,222,212, 27,191,231, 72,168,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,192,231,164, 29, 1, 0, 0, 0, -164, 0, 0, 0, 1, 0, 0, 0,176,235,164, 29, 1, 0, 0, 0, 64,226,164, 29, 1, 0, 0, 0,160,227,164, 29, 1, 0, 0, 0, - 96,230,164, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, + 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,123, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -240,232,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,234,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 80,234,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,232,164, 29, 1, 0, 0, 0, - 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, -205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, + 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128, 20,111, 27, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0,160, 24,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 21,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 23,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0,192, 59, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, + 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,239, 2, 26, 0,239, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, -176,235,164, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,231,164, 29, 1, 0, 0, 0, -240,232,164, 29, 1, 0, 0, 0, 80,234,164, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 23,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,224, 21,111, 27, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 40, 57, 61,194, +146,211, 11, 68,174,122,214, 66, 82, 97,202, 67,222, 2, 0, 0,239, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0, +221, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,221, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, + 0, 0,239, 2,122, 1,222, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 2,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160, 24,111, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 32, 30,111, 27, + 1, 0, 0, 0,128, 20,111, 27, 1, 0, 0, 0,224, 21,111, 27, 1, 0, 0, 0, 64, 23,111, 27, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -176,236,164, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 3,165, 29, 1, 0, 0, 0,112,203,164, 29, 1, 0, 0, 0, -128,194,163, 29, 1, 0, 0, 0,160,192,163, 29, 1, 0, 0, 0, 32,194,163, 29, 1, 0, 0, 0,224,194,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 16, 16, 28, 6,175, 2, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,135,217, 2, 1, 0, 0, 0, 80,240,164, 29, 1, 0, 0, 0, 0, 2,165, 29, 1, 0, 0, 0, -144,237,164, 29, 1, 0, 0, 0,240,238,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 68,201, 20, 1, 0, 0, 0, 80,114,160, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,237,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,240,238,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 28, 6, 26, 0, 28, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,181, 1, 0, 0,206, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224,136,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,238,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,237,164, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, - 0, 0, 32,193, 0, 0, 0, 68, 84, 64,199,195, 42,160, 99, 68,240, 80,128,193,136, 2, 4, 68, 11, 6, 0, 0, 28, 6, 0, 0, - 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, - 18, 0, 0, 0,148, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, - 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 28, 6,149, 2, 11, 6,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,136,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80,240,164, 29, 1, 0, 0, 0, -174, 0, 0, 0, 1, 0, 0, 0,208,245,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +242,199, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0, 26,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 27,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, + 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, + 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 96, 27,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 28,111, 27, 1, 0, 0, 0, 0, 26,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 66, 86, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,241,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 16,243,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, - 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,243,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -112,244,164, 29, 1, 0, 0, 0,176,241,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,192, 28,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 27,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, + 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +240, 0, 0, 0, 32, 30,111, 27, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16, 34,111, 27, 1, 0, 0, 0,160, 24,111, 27, + 1, 0, 0, 0, 0, 26,111, 27, 1, 0, 0, 0,192, 28,111, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,244,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16,243,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, - 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, - 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,208,245,164, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, -224,253,164, 29, 1, 0, 0, 0, 80,240,164, 29, 1, 0, 0, 0,176,241,164, 29, 1, 0, 0, 0,112,244,164, 29, 1, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 31,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 32,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, + 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 32,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 31,111, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, +246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, + 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, + 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,247,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 96,248,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,248,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,192,249,164, 29, 1, 0, 0, 0, 0,247,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, - 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,249,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 32,251,164, 29, 1, 0, 0, 0, 96,248,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, - 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,251,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,128,252,164, 29, 1, 0, 0, 0,192,249,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,252,164, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,251,164, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,220, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,220, 2, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, -226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, -166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, -248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, - 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, - 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61, -170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195, -205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, - 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, - 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, - 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 16, 34,111, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 30,111, 27, 1, 0, 0, 0, 80, 31,111, 27, 1, 0, 0, 0,176, 32,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16, 35,111, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96, 57,111, 27, + 1, 0, 0, 0,208, 1,111, 27, 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 0,205,110, 27, + 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,181, 1, 0, 0, + 99, 4, 0, 0, 16, 16, 28, 6,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 38,111, 27, + 1, 0, 0, 0, 96, 56,111, 27, 1, 0, 0, 0,240, 35,111, 27, 1, 0, 0, 0, 80, 37,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,240, 35,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80, 37,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,195, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 28, 6, 26, 0, 28, 6, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 6, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 80, 37,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 35,111, 27, + 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 84, 64,199,195, 42,160, 99, 68,240, 80,128,193, +136, 2, 4, 68, 11, 6, 0, 0, 28, 6, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, + 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 28, 6,149, 2, 11, 6, +131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 6, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0,224,253,164, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 2,165, 29, 1, 0, 0, 0, -208,245,164, 29, 1, 0, 0, 0, 0,247,164, 29, 1, 0, 0, 0,128,252,164, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 64,255,164, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 0,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0,176, 38,111, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 48, 44,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -160, 0,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,255,164, 29, 1, 0, 0, 0, - 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, -205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, - 0, 2,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,253,164, 29, 1, 0, 0, 0, - 64,255,164, 29, 1, 0, 0, 0,160, 0,165, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 66, 86, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 40,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 41,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 0, 3,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,236,164, 29, 1, 0, 0, 0, -208,224,163, 29, 1, 0, 0, 0,128,194,163, 29, 1, 0, 0, 0, 64,195,163, 29, 1, 0, 0, 0,160,195,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 6, 6, 0, 3,180, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,128,217, 2, 1, 0, 0, 0, 0, 8,165, 29, 1, 0, 0, 0, 80, 29,165, 29, 1, 0, 0, 0, -224, 3,165, 29, 1, 0, 0, 0,160, 6,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 36,201, 20, 1, 0, 0, 0,128, 85,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 3,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 64, 5,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64,134,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 5,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,160, 6,165, 29, 1, 0, 0, 0,224, 3,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 41,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 42,111, 27, 1, 0, 0, 0, 16, 40,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,144,130,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 6,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, - 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,154,190, 0,128,166, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,129,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 0, 8,165, 29, 1, 0, 0, 0, -168, 0, 0, 0, 1, 0, 0, 0,160, 11,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 8,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 64, 10,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 42,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 41,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, + 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 10,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 8,165, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, - 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, - 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, - 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, - 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 48, 44,111, 27, + 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 64, 52,111, 27, 1, 0, 0, 0,176, 38,111, 27, 1, 0, 0, 0, 16, 40,111, 27, + 1, 0, 0, 0,208, 42,111, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160, 11,165, 29, 1, 0, 0, 0, -174, 0, 0, 0, 1, 0, 0, 0, 32, 17,165, 29, 1, 0, 0, 0, 0, 8,165, 29, 1, 0, 0, 0,224, 8,165, 29, 1, 0, 0, 0, - 64, 10,165, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 96, 45,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 46,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 13,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 96, 14,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, - 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,192, 46,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 48,111, 27, 1, 0, 0, 0, 96, 45,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, + 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, + 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 32, 48,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 49,111, 27, 1, 0, 0, 0,192, 46,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 14,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -192, 15,165, 29, 1, 0, 0, 0, 0, 13,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,128, 49,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 50,111, 27, 1, 0, 0, 0, 32, 48,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, + 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, +104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,224, 50,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 49,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 15,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 14,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, - 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, - 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,134, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48, 0,134, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, + 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, + 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, +184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, + 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, +136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, +184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, + 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 32, 17,165, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, - 48, 25,165, 29, 1, 0, 0, 0,160, 11,165, 29, 1, 0, 0, 0, 0, 13,165, 29, 1, 0, 0, 0,192, 15,165, 29, 1, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 18,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,176, 19,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 19,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 16, 21,165, 29, 1, 0, 0, 0, 80, 18,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, - 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 21,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,112, 22,165, 29, 1, 0, 0, 0,176, 19,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, - 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 22,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,208, 23,165, 29, 1, 0, 0, 0, 16, 21,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 23,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 22,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,224, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,224, 2, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, -226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, -166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, -248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, - 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, - 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61, -170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195, -205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, - 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, - 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, - 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 64, 52,111, 27, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0, 96, 56,111, 27, 1, 0, 0, 0, 48, 44,111, 27, 1, 0, 0, 0, 96, 45,111, 27, 1, 0, 0, 0,224, 50,111, 27, + 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 53,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 55,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, + 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 55,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 53,111, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, +246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, + 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, + 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0, 48, 25,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 80, 29,165, 29, 1, 0, 0, 0, - 32, 17,165, 29, 1, 0, 0, 0, 80, 18,165, 29, 1, 0, 0, 0,208, 23,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -144, 26,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 27,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96, 56,111, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 52,111, 27, 1, 0, 0, 0,160, 53,111, 27, 1, 0, 0, 0, 0, 55,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -240, 27,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 26,165, 29, 1, 0, 0, 0, - 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, -205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, - 80, 29,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 25,165, 29, 1, 0, 0, 0, -144, 26,165, 29, 1, 0, 0, 0,240, 27,165, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, -208, 30,165, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 64,127,165, 29, 1, 0, 0, 0,208,190,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0, - 64, 35,165, 29, 1, 0, 0, 0,160, 35,165, 29, 1, 0, 0, 0, 0, 42,165, 29, 1, 0, 0, 0, 96, 42,165, 29, 1, 0, 0, 0, -144, 93,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -160,204,163, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -160, 32,165, 29, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0, - 64, 32,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 0, 33,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 36, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 32, 34,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,101, 4, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, -192, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -128, 34,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,100, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,160, 35,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 36,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 0, 36,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 36,165, 29, 1, 0, 0, 0, -160, 35,165, 29, 1, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 96, 36,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 36,165, 29, 1, 0, 0, 0, - 0, 36,165, 29, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,192, 36,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 37,165, 29, 1, 0, 0, 0, - 96, 36,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 32, 37,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 37,165, 29, 1, 0, 0, 0, -192, 36,165, 29, 1, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,128, 37,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 37,165, 29, 1, 0, 0, 0, - 32, 37,165, 29, 1, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,224, 37,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 38,165, 29, 1, 0, 0, 0, -128, 37,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 64, 38,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 38,165, 29, 1, 0, 0, 0, -224, 37,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,160, 38,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 39,165, 29, 1, 0, 0, 0, - 64, 38,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 0, 39,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 39,165, 29, 1, 0, 0, 0, -160, 38,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 96, 39,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 39,165, 29, 1, 0, 0, 0, - 0, 39,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,192, 39,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 40,165, 29, 1, 0, 0, 0, - 96, 39,165, 29, 1, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 32, 40,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 40,165, 29, 1, 0, 0, 0, -192, 39,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,128, 40,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 40,165, 29, 1, 0, 0, 0, - 32, 40,165, 29, 1, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,224, 40,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 41,165, 29, 1, 0, 0, 0, -128, 40,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 64, 41,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 41,165, 29, 1, 0, 0, 0, -224, 40,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,160, 41,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 42,165, 29, 1, 0, 0, 0, - 64, 41,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 0, 42,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 41,165, 29, 1, 0, 0, 0,224, 34,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0, 96, 42,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 46,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,160,204,163, 29, 1, 0, 0, 0,224, 31,165, 29, 1, 0, 0, 0, - 0, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,102, 4, 0, 0,128, 4, 0, 0, - 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,192,126,165, 29, 1, 0, 0, 0, -192,126,165, 29, 1, 0, 0, 0, 64, 43,165, 29, 1, 0, 0, 0,160, 44,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160,128,140, 27, 1, 0, 0, 0,240, 63,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 64, 43,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 44,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -102, 4, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 2, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 48,210, 6, 3, 1, 0, 0, 0, - 48,210, 6, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197,200, 20, 1, 0, 0, 0, -192, 22,143, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -160, 44,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 43,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, -112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,224,200, 20, 1, 0, 0, 0, - 80, 93,201, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 0, 46,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160, 70,165, 29, 1, 0, 0, 0, 96, 42,165, 29, 1, 0, 0, 0, - 96, 33,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 64, 32,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,115, 3, 0, 0, 4, 4, 92, 1,116, 3, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64,141,217, 2, 1, 0, 0, 0, 64, 65,165, 29, 1, 0, 0, 0, 64, 69,165, 29, 1, 0, 0, 0, -224, 46,165, 29, 1, 0, 0, 0, 64, 48,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 4,201, 20, 1, 0, 0, 0, 32, 31,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 46,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 64, 48,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 31, 0, 92, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 85, 3, 0, 0,115, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 31, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240,143,217, 2, 1, 0, 0, 0, 48,164, 6, 28, 1, 0, 0, 0, 48,164, 6, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 40,201, 20, 1, 0, 0, 0,208,248,199, 20, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 48,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 46,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 67, - 0,128, 80,196, 0, 0, 0, 0, 0, 0, 0, 0,252,127,165, 67,251,191, 80,196, 0, 0, 0, 0, 75, 1, 0, 0, 92, 1, 0, 0, - 18, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, - 18, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 92, 1, 85, 3, 75, 1, 67, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128,168,164, 21, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 85, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,142,217, 2, 1, 0, 0, 0, 48,138, 23, 3, 1, 0, 0, 0, 48, 18, 7, 3, 1, 0, 0, 0, -160, 49,165, 29, 1, 0, 0, 0,176, 63,165, 29, 1, 0, 0, 0,144, 10,200, 20, 1, 0, 0, 0, 96, 3,160, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 49,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 48, 51,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 74, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 48, 51,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192, 52,165, 29, 1, 0, 0, 0, -160, 49,165, 29, 1, 0, 0, 0, 32,198, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 74, 1, 61, 0, - 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 52,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 80, 54,165, 29, 1, 0, 0, 0, 48, 51,165, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 74, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 80, 54,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224, 55,165, 29, 1, 0, 0, 0, -192, 52,165, 29, 1, 0, 0, 0, 96,202, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111, -110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 74, 1,203, 0, - 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 55,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,112, 57,165, 29, 1, 0, 0, 0, 80, 54,165, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96, 57,111, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 35,111, 27, 1, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0, 32,206,110, 27, + 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, +179, 1, 0, 0, 6, 6, 0, 3,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 62,111, 27, + 1, 0, 0, 0, 96,134,110, 27, 1, 0, 0, 0, 64, 58,111, 27, 1, 0, 0, 0, 0, 61,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 64, 58,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 59,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,160, 59,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 61,111, 27, 1, 0, 0, 0, 64, 58,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 74, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,112, 57,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 59,165, 29, 1, 0, 0, 0, -224, 55,165, 29, 1, 0, 0, 0, 32,207, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0, 61,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 59,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,154,190, + 0,128,166, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 74, 1,102, 0, - 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 2, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0, 59,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,144, 60,165, 29, 1, 0, 0, 0,112, 57,165, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +168, 0, 0, 0, 96, 62,111, 27, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 0, 66,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 64, 63,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 64,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,160, 64,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 63,111, 27, + 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, + 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, + 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2, +104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 74, 1,105, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0, 0, 66,111, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 16,129,110, 27, 1, 0, 0, 0, 96, 62,111, 27, + 1, 0, 0, 0, 64, 63,111, 27, 1, 0, 0, 0,160, 64,111, 27, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,144, 60,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32, 62,165, 29, 1, 0, 0, 0, - 0, 59,165, 29, 1, 0, 0, 0, 16,142, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97, -110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123,252, 74, 1,168, 0, - 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32, 62,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,176, 63,165, 29, 1, 0, 0, 0,144, 60,165, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 74, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 67,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 68,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,176, 63,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 62,165, 29, 1, 0, 0, 0,144,217, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 74, 1, 0, 0, - 20, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 68,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,127,110, 27, 1, 0, 0, 0, 96, 67,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64, 65,165, 29, 1, 0, 0, 0, -163, 0, 0, 0, 1, 0, 0, 0, 64, 69,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,127,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 68,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, + 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,240,171,140, 27, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 66,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -224, 67,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 16,129,110, 27, + 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 0,154,131, 29, 1, 0, 0, 0, 0, 66,111, 27, 1, 0, 0, 0, 96, 67,111, 27, + 1, 0, 0, 0,176,127,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 67,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 66,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 64,130,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,131,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,160,131,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,133,110, 27, 1, 0, 0, 0, 64,130,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, + 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, + 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,228, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,228, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, -237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0,133,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,140,111, 27, 1, 0, 0, 0,160,131,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,240,140,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,152,131, 29, 1, 0, 0, 0, 0,133,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, + 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, +104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,160,152,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,140,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4,134, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48, 4,134, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, + 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, + 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, +184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, + 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, +136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, +184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, + 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, - 64, 69,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,165, 29, 1, 0, 0, 0, -128, 66,165, 29, 1, 0, 0, 0,224, 67,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,160, 70,165, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0, 96, 79,165, 29, 1, 0, 0, 0, 0, 46,165, 29, 1, 0, 0, 0,240, 15,164, 29, 1, 0, 0, 0, -224, 34,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, 96, 33,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15, 36, 6,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16,109,217, 2, 1, 0, 0, 0, 64, 74,165, 29, 1, 0, 0, 0, 0, 78,165, 29, 1, 0, 0, 0,128, 71,165, 29, 1, 0, 0, 0, -224, 72,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,149,140, 27, 1, 0, 0, 0, - 32,110,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 71,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -224, 72,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208,110,217, 2, 1, 0, 0, 0, 48,250, 6, 3, 1, 0, 0, 0, 48,250, 6, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192, 6,143, 27, 1, 0, 0, 0,240, 87,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 72,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 71,165, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, -112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, - 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 4, 8, 0, 36, 6, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 74, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240,109,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,154,162, 21, 1, 0, 0, 0,176,145,196, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64, 74,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, - 0, 78,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 75,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -160, 76,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 0,154,131, 29, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0, 96,134,110, 27, 1, 0, 0, 0, 16,129,110, 27, 1, 0, 0, 0, 64,130,110, 27, 1, 0, 0, 0,160,152,131, 29, + 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 76,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 75,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,155,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,156,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, + 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,156,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96,155,131, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, +246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, + 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, + 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96,134,110, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,154,131, 29, 1, 0, 0, 0, 96,155,131, 29, 1, 0, 0, 0,192,156,131, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,232, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,232, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, -161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, - 0, 78,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 74,165, 29, 1, 0, 0, 0, - 64, 75,165, 29, 1, 0, 0, 0,160, 76,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96, 79,165, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0,144, 93,165, 29, 1, 0, 0, 0,160, 70,165, 29, 1, 0, 0, 0, 32, 34,165, 29, 1, 0, 0, 0, -192, 33,165, 29, 1, 0, 0, 0, 0, 33,165, 29, 1, 0, 0, 0,128, 34,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0,100, 4, 0, 0, 3, 3, 92, 1,240, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,106,217, 2, 1, 0, 0, 0, 0, 83,165, 29, 1, 0, 0, 0, 48, 92,165, 29, 1, 0, 0, 0, 64, 80,165, 29, 1, 0, 0, 0, -160, 81,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 13,143, 27, 1, 0, 0, 0, - 16,150,162, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 80,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -160, 81,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 92, 1, 26, 0, 92, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 75, 4, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 26, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,108,217, 2, 1, 0, 0, 0, 48, 74, 10, 28, 1, 0, 0, 0, 48, 74, 10, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112, 42,201, 20, 1, 0, 0, 0, 80,142,162, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 81,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 80,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,165, 67, 0, 0, 68,195, 0, 0, 0, 0, 75, 1, 0, 0, 92, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, - 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, - 0, 0, 0, 4, 6, 0, 92, 1,214, 0, 75, 1,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 1,214, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,107,217, 2, 1, 0, 0, 0, 48,144, 11, 28, 1, 0, 0, 0, 48,144, 11, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,201, 20, 1, 0, 0, 0,208, 62,202, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 83,165, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, - 48, 88,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,102,164, 21, 1, 0, 0, 0,192,102,164, 21, 1, 0, 0, 0, -144, 39,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,144, 39,163, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 13, 0, 0, 0, 96, 84,165, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 96, 84,165, 29, 1, 0, 0, 0, -218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, - 48,180, 4, 28, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,220, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,214, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -112, 85,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 86,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, - 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -208, 86,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 85,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, - 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 32,158,131, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,240,254,131, 29, + 1, 0, 0, 0,240,200,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101, +102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0,240,162,131, 29, 1, 0, 0, 0, 80,163,131, 29, 1, 0, 0, 0,176,169,131, 29, + 1, 0, 0, 0, 16,170,131, 29, 1, 0, 0, 0, 64,221,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 46, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 48,159,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,159,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,159,131, 29, + 1, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,144,159,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 48,159,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,159,131, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,144,159,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,161,131, 29, + 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0,176,160,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,161,131, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 6,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 48,162,131, 29, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,116, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,162,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,162,131, 29, + 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,162,131, 29, 1, 0, 0, 0, 48,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,162,131, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,163,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,176,163,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,159,131, 29, 1, 0, 0, 0,144,159,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,163,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 16,164,131, 29, 1, 0, 0, 0, 80,163,131, 29, 1, 0, 0, 0, 48,159,131, 29, 1, 0, 0, 0, 80,160,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,164,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,112,164,131, 29, 1, 0, 0, 0,176,163,131, 29, 1, 0, 0, 0,144,159,131, 29, 1, 0, 0, 0,176,160,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,164,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,208,164,131, 29, 1, 0, 0, 0, 16,164,131, 29, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,176,160,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,164,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 48,165,131, 29, 1, 0, 0, 0,112,164,131, 29, 1, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0, 16,161,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,165,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,144,165,131, 29, 1, 0, 0, 0,208,164,131, 29, 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 16,161,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,165,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,240,165,131, 29, 1, 0, 0, 0, 48,165,131, 29, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,112,161,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,165,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 80,166,131, 29, 1, 0, 0, 0,144,165,131, 29, 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0,112,161,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,166,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,176,166,131, 29, 1, 0, 0, 0,240,165,131, 29, 1, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0,208,161,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,166,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 16,167,131, 29, 1, 0, 0, 0, 80,166,131, 29, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0,208,161,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,167,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,112,167,131, 29, 1, 0, 0, 0,176,166,131, 29, 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0, 48,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,167,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,208,167,131, 29, 1, 0, 0, 0, 16,167,131, 29, 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 48,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,167,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 48,168,131, 29, 1, 0, 0, 0,112,167,131, 29, 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0, 48,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,168,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,144,168,131, 29, 1, 0, 0, 0,208,167,131, 29, 1, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0,144,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,168,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,240,168,131, 29, 1, 0, 0, 0, 48,168,131, 29, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,144,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,168,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 80,169,131, 29, 1, 0, 0, 0,144,168,131, 29, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0,240,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,169,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,176,169,131, 29, 1, 0, 0, 0,240,168,131, 29, 1, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0,240,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,169,131, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,169,131, 29, 1, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0,240,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,170,131, 29, 1, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,176,173,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0, 48,159,131, 29, + 1, 0, 0, 0,144,159,131, 29, 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,102, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 16,162,217, 2, + 1, 0, 0, 0,112,254,131, 29, 1, 0, 0, 0,112,254,131, 29, 1, 0, 0, 0,240,170,131, 29, 1, 0, 0, 0, 80,172,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,205,129, 29, 1, 0, 0, 0,224,104,111, 27, + 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,170,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,172,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,102, 4, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,129, 7, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,163,217, 2, + 1, 0, 0, 0, 48,202,139, 27, 1, 0, 0, 0, 48,202,139, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 5,128, 29, 1, 0, 0, 0,128, 7,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,172,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,170,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240,162,217, 2, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176,173,131, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80,198,131, 29, + 1, 0, 0, 0, 16,170,131, 29, 1, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0, 48,162,131, 29, + 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, +115, 3, 0, 0, 4, 4, 92, 1,116, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,158,217, 2, 1, 0, 0, 0,240,192,131, 29, + 1, 0, 0, 0,240,196,131, 29, 1, 0, 0, 0,144,174,131, 29, 1, 0, 0, 0,240,175,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 9,128, 29, 1, 0, 0, 0,224,134,133, 29, 1, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,144,174,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,175,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, + 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 31, 0, 92, 1, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0, +128, 7, 0, 0, 85, 3, 0, 0,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 31, 0, + 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,161,217, 2, 1, 0, 0, 0, 48,182, 13, 3, + 1, 0, 0, 0, 48,182, 13, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 10,128, 29, + 1, 0, 0, 0, 48, 13,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,240,175,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,174,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 67, 0, 0, 85,196, 0, 0, 0, 0, 0, 0, 0, 0,252,127,165, 67,251, 63, 85,196, + 0, 0, 0, 0, 75, 1, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 92, 1, 85, 3, 75, 1, + 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,183,129, 29, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0, +128, 7, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 85, 3, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,159,217, 2, 1, 0, 0, 0, 48, 40,138, 27, + 1, 0, 0, 0, 48,102,139, 27, 1, 0, 0, 0, 80,177,131, 29, 1, 0, 0, 0, 96,191,131, 29, 1, 0, 0, 0, 80, 15,128, 29, + 1, 0, 0, 0,144, 17,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 80,177,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,178,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64,160,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 74, 1, 36, 0, 0, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,178,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,112,180,131, 29, 1, 0, 0, 0, 80,177,131, 29, 1, 0, 0, 0,176, 12,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,135,255, 74, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,112,180,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,182,131, 29, 1, 0, 0, 0,224,178,131, 29, + 1, 0, 0, 0,144, 14,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, +121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, +121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,253, 74, 1,240, 1, 0, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,182,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,144,183,131, 29, 1, 0, 0, 0,112,180,131, 29, 1, 0, 0, 0,240, 16,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140,254, 74, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,144,183,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32,185,131, 29, 1, 0, 0, 0, 0,182,131, 29, + 1, 0, 0, 0, 80, 19,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, +116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, +116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 74, 1, 58, 0, 20, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, - 48, 88,165, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 48, 92,165, 29, 1, 0, 0, 0, 0, 83,165, 29, 1, 0, 0, 0, -112, 85,165, 29, 1, 0, 0, 0,208, 86,165, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,185,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,176,186,131, 29, 1, 0, 0, 0,144,183,131, 29, 1, 0, 0, 0,176, 21,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,188,253, 74, 1,102, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 89,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,208, 90,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,176,186,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 64,188,131, 29, 1, 0, 0, 0, 32,185,131, 29, + 1, 0, 0, 0, 16, 24,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, +116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, +116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 90,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 89,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 74, 1,105, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,188,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,208,189,131, 29, 1, 0, 0, 0,176,186,131, 29, 1, 0, 0, 0, 80,246,240, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,123,252, 74, 1,168, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,236, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,236, 2, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, -226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, -184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, - 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, -184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,208,189,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,191,131, 29, 1, 0, 0, 0, 64,188,131, 29, + 1, 0, 0, 0,192, 29,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 74, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,191,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,189,131, 29, 1, 0, 0, 0, 32, 32,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,243,252, 74, 1, 0, 0, 20, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 1, 0, 0,240,192,131, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,240,196,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0, 48, 92,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 88,165, 29, 1, 0, 0, 0,112, 89,165, 29, 1, 0, 0, 0,208, 90,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, -159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -144, 93,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 79,165, 29, 1, 0, 0, 0, -224, 34,165, 29, 1, 0, 0, 0,160, 32,165, 29, 1, 0, 0, 0,192, 33,165, 29, 1, 0, 0, 0, 64, 35,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0,101, 0, 0, 0,100, 4, 0, 0, 1, 1, 36, 6, 0, 4, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,111,217, 2, 1, 0, 0, 0,160,121,165, 29, 1, 0, 0, 0,192,125,165, 29, 1, 0, 0, 0, -112, 94,165, 29, 1, 0, 0, 0, 64,120,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208,242,201, 20, 1, 0, 0, 0,176, 4,216, 2, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 94,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,208, 95,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0,101, 0, 0, 0,126, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,119,217, 2, 1, 0, 0, 0, 48, 10, 4, 28, 1, 0, 0, 0, 48, 10, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,107,164, 21, 1, 0, 0, 0, 96,173,140, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 95,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,112,103,165, 29, 1, 0, 0, 0,112, 94,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, - 0, 0, 87,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 87,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 18, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 18, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,110, 3,143, 0, 92, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,247, 0, 0, 0,100, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,110, 3, 11, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,116,217, 2, 1, 0, 0, 0, 48,180, 11, 28, 1, 0, 0, 0, 48,254, 6, 3, 1, 0, 0, 0, - 48, 97,165, 29, 1, 0, 0, 0,224,101,165, 29, 1, 0, 0, 0,128, 28,202, 20, 1, 0, 0, 0, 96, 96,160, 21, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 97,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,192, 98,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,117,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,192, 98,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,100,165, 29, 1, 0, 0, 0, - 48, 97,165, 29, 1, 0, 0, 0,144, 38, 21, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84, -111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, - 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,100,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,224,101,165, 29, 1, 0, 0, 0,192, 98,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,252,143, 0,244, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,224,101,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,100,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 79,112,116, -105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,252,143, 0, 36, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,103,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 96,106,165, 29, 1, 0, 0, 0,208, 95,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, - 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,127, 0, 0, 0,246, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 12, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,118,217, 2, 1, 0, 0, 0, 48,186, 10, 28, 1, 0, 0, 0, 48,186, 10, 28, 1, 0, 0, 0, -208,104,165, 29, 1, 0, 0, 0,208,104,165, 29, 1, 0, 0, 0,192,114,160, 21, 1, 0, 0, 0,192, 3,201, 20, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,104,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,118,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0,116, 32, 77,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 96,106,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,120,165, 29, 1, 0, 0, 0, -112,103,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,143,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0,128,102,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,171, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,171, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -172, 3,163, 0,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 6, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,113,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,107,165, 29, 1, 0, 0, 0,176,118,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,192,107,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,109,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, -109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,109,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,224,110,165, 29, 1, 0, 0, 0,192,107,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,160,149,176, 21, + 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,194,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,195,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,251,163, 0, 58, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, + 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,195,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,194,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,224,110,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,112,165, 29, 1, 0, 0, 0, - 80,109,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,112,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0,114,165, 29, 1, 0, 0, 0,224,110,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, + 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 8,134, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 8,134, 27, + 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, + 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, + 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,251,163, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 0,114,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,115,165, 29, 1, 0, 0, 0, -112,112,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117, -110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,251,163, 0, 0, 0, - 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,115,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 32,117,165, 29, 1, 0, 0, 0, 0,114,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, -110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, -110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,251,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240,196,131, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,192,131, 29, 1, 0, 0, 0, 48,194,131, 29, 1, 0, 0, 0,144,195,131, 29, 1, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 32,117,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,118,165, 29, 1, 0, 0, 0, -144,115,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 68,105,115, -112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,252,163, 0,104, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 80,198,131, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,207,131, 29, 1, 0, 0, 0,176,173,131, 29, + 1, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0,240,162,131, 29, 1, 0, 0, 0, 16,161,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15, 36, 6, +100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,126,217, 2, 1, 0, 0, 0,240,201,131, 29, 1, 0, 0, 0,176,205,131, 29, + 1, 0, 0, 0, 48,199,131, 29, 1, 0, 0, 0,144,200,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 19,128, 29, 1, 0, 0, 0, 32,165,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,199,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,200,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, 5, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,128,217, 2, 1, 0, 0, 0, 48,244,136, 27, 1, 0, 0, 0, 48,244,136, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,128, 29, 1, 0, 0, 0, 64, 23,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,200,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,199,131, 29, 1, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 35, 6, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 36, 6, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 26, 0, 0, 0, + 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 74, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,127,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 25,128, 29, 1, 0, 0, 0, 96, 28,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,240,201,131, 29, + 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,176,205,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,118,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,117,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,202,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,204,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 64,120,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,106,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,204,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,202,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 0, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 5,230, 3, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,112,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 34,201, 20, 1, 0, 0, 0, 80,120,201, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,240, 2, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48,240, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 19,198, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, - 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, 26, 63,185, 62, 35, 44,185, 62,147,180,109,188,122, 73,177, 63, -138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 99,240,191, 62,110,116, 85, 63, - 48,185, 70,188, 0, 0, 78,180,246,235,132,190,156, 35, 0, 62,130, 17, 20, 63, 0, 0,192,178, 67,108,117,194,185,204,216, 65, -105,156, 5,194,213,247,159,192,235, 62,114, 66, 61,254,213,193,158,225, 3, 66, 56, 8,160, 64, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, - 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, 26, 63,185, 62, 35, 44,185, 62,147,180,109,188,122, 73,177, 63, -138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 97, 89,186, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,188,189,169, 58, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,230,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,230,135, 27, + 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, + 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, + 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,176,205,131, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,201,131, 29, 1, 0, 0, 0,240,202,131, 29, 1, 0, 0, 0, 80,204,131, 29, 1, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 16,207,131, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,221,131, 29, 1, 0, 0, 0, 80,198,131, 29, + 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0, 48,162,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0,100, 4, 0, 0, 3, 3, 92, 1, +240, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,123,217, 2, 1, 0, 0, 0,176,210,131, 29, 1, 0, 0, 0,224,219,131, 29, + 1, 0, 0, 0,240,207,131, 29, 1, 0, 0, 0, 80,209,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 30,128, 29, 1, 0, 0, 0, 48,121,129, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,207,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,209,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 26, 0, 92, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 75, 4, 0, 0, +100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 26, 0, 7, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,125,217, 2, 1, 0, 0, 0, 48,236,138, 27, 1, 0, 0, 0, 48,236,138, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 31,128, 29, 1, 0, 0, 0, 16, 34,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,209,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,207,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,165, 67, 0, 0, 68,195, 0, 0, 0, 0, 75, 1, 0, 0, + 92, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 74, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 92, 1,214, 0, 75, 1,196, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, + 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1,214, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,124,217, 2, 1, 0, 0, 0, 48,150,132, 27, 1, 0, 0, 0, 48,150,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 36,128, 29, 1, 0, 0, 0,176, 37,128, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,210,131, 29, + 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0,224,215,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1,128, 29, + 1, 0, 0, 0,144, 1,128, 29, 1, 0, 0, 0, 32, 18,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 32, 18,130, 29, + 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 16,212,131, 29, 1, 0, 0, 0, 68, 65, 84, 65, +208, 0, 0, 0, 16,212,131, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, + 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, + 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, + 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,213,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,214,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, + 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, + 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,121,165, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0,192,125,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,123,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 96,124,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,124,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,123,165, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, -112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,192,125,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160,121,165, 29, 1, 0, 0, 0, 0,123,165, 29, 1, 0, 0, 0, 96,124,165, 29, 1, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 64,127,165, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, - 0, 36,166, 29, 1, 0, 0, 0,208, 30,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,144,133,165, 29, 1, 0, 0, 0, - 16,141,165, 29, 1, 0, 0, 0,112,141,165, 29, 1, 0, 0, 0, 0, 8,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 16,129,165, 29, 1, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0, -176,128,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -112,129,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -144,130,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, - 48,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -240,130,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 16,132,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,180, 1, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, -176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -112,132,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 1,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,100, 4, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,144,133,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,133,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,240,133,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,134,165, 29, 1, 0, 0, 0, -144,133,165, 29, 1, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 80,134,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,134,165, 29, 1, 0, 0, 0, -240,133,165, 29, 1, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,176,134,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,135,165, 29, 1, 0, 0, 0, - 80,134,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 16,135,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,135,165, 29, 1, 0, 0, 0, -176,134,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,112,135,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,135,165, 29, 1, 0, 0, 0, - 16,135,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,208,135,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,136,165, 29, 1, 0, 0, 0, -112,135,165, 29, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 48,136,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,136,165, 29, 1, 0, 0, 0, -208,135,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,144,136,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,136,165, 29, 1, 0, 0, 0, - 48,136,165, 29, 1, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,240,136,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,137,165, 29, 1, 0, 0, 0, -144,136,165, 29, 1, 0, 0, 0, 80,128,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 80,137,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,137,165, 29, 1, 0, 0, 0, -240,136,165, 29, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,176,137,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,138,165, 29, 1, 0, 0, 0, - 80,137,165, 29, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 16,138,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,138,165, 29, 1, 0, 0, 0, -176,137,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,112,138,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,138,165, 29, 1, 0, 0, 0, - 16,138,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,208,138,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,139,165, 29, 1, 0, 0, 0, -112,138,165, 29, 1, 0, 0, 0, 48,130,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 48,139,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,139,165, 29, 1, 0, 0, 0, -208,138,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,144,139,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,139,165, 29, 1, 0, 0, 0, - 48,139,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,240,139,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,140,165, 29, 1, 0, 0, 0, -144,139,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 80,140,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,140,165, 29, 1, 0, 0, 0, -240,139,165, 29, 1, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,176,140,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,141,165, 29, 1, 0, 0, 0, - 80,140,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 16,141,165, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,140,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,112,141,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,145,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,129,165, 29, 1, 0, 0, 0,176,128,165, 29, 1, 0, 0, 0, 16,129,165, 29, 1, 0, 0, 0, - 48,130,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, - 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,128, 35,166, 29, 1, 0, 0, 0, -128, 35,166, 29, 1, 0, 0, 0, 80,142,165, 29, 1, 0, 0, 0,176,143,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192, 14,201, 20, 1, 0, 0, 0,240,153,162, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 80,142,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,143,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -176,143,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,142,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, -112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,214,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32,213,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0, +205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, + 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 16,145,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,175,165, 29, 1, 0, 0, 0,112,141,165, 29, 1, 0, 0, 0, - 80,131,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0,112,129,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 4, 4, 96, 1,180, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64,141,217, 2, 1, 0, 0, 0, 80,164,165, 29, 1, 0, 0, 0,160,173,165, 29, 1, 0, 0, 0, -240,145,165, 29, 1, 0, 0, 0, 80,147,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 49,161, 29, 1, 0, 0, 0,112,188,142, 27, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,145,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 80,147,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,176, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 1, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 1, 31, 0, 96, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0,149, 1, 0, 0,179, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,147,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,145,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 67, - 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,167, 67,254,127,193,195, 0, 0, 0, 0, 79, 1, 0, 0, 96, 1, 0, 0, - 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, - 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 96, 1,149, 1, 79, 1,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,203,200, 20, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,148, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1,149, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,142,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,148,165, 29, 1, 0, 0, 0,192,162,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,148,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 64,150,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,224,215,131, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,224,219,131, 29, + 1, 0, 0, 0,176,210,131, 29, 1, 0, 0, 0, 32,213,131, 29, 1, 0, 0, 0,128,214,131, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 78, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 32,217,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,218,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, +108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 64,150,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,151,165, 29, 1, 0, 0, 0, -176,148,165, 29, 1, 0, 0, 0, 32,198, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,128,218,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,217,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 78, 1, 61, 0, - 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,151,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 96,153,165, 29, 1, 0, 0, 0, 64,150,165, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, +108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,234,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48,234,135, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, +115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 78, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 96,153,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,154,165, 29, 1, 0, 0, 0, -208,151,165, 29, 1, 0, 0, 0, 96,202, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111, -110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 78, 1,203, 0, - 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,154,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,128,156,165, 29, 1, 0, 0, 0, 96,153,165, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 78, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,224,219,131, 29, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,215,131, 29, 1, 0, 0, 0, 32,217,131, 29, 1, 0, 0, 0,128,218,131, 29, + 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 64,221,131, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16,207,131, 29, 1, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,112,161,131, 29, + 1, 0, 0, 0,240,162,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0,101, 0, 0, 0, +100, 4, 0, 0, 1, 1, 36, 6, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,128,217, 2, 1, 0, 0, 0, 80,249,131, 29, + 1, 0, 0, 0,112,253,131, 29, 1, 0, 0, 0, 32,222,131, 29, 1, 0, 0, 0,240,247,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 40,128, 29, 1, 0, 0, 0, 48, 92,135, 29, 1, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 32,222,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,223,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 6, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, + 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,137,217, 2, 1, 0, 0, 0, 48,216,129, 27, + 1, 0, 0, 0, 48,216,129, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 42,128, 29, + 1, 0, 0, 0,112, 45,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,128,223,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,231,131, 29, 1, 0, 0, 0, 32,222,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0,128, 91,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,128, 91,196, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,110, 3,143, 0, +110, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +159, 0, 0, 0,247, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,110, 3, + 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,133,217, 2, 1, 0, 0, 0, 48, 6, 21, 3, + 1, 0, 0, 0, 48, 46, 21, 3, 1, 0, 0, 0,224,224,131, 29, 1, 0, 0, 0,144,229,131, 29, 1, 0, 0, 0,144, 47,128, 29, + 1, 0, 0, 0,208, 49,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,224,224,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,226,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,134,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, +111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, +111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,226,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0,228,131, 29, 1, 0, 0, 0,224,224,131, 29, 1, 0, 0, 0, 16, 88,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 0,228,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,229,131, 29, 1, 0, 0, 0,112,226,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, +111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, +111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111,108,115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,252,143, 0,244, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,229,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116, +105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116, +105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77,101,115,104, 32, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,124,252,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 32,231,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,234,131, 29, 1, 0, 0, 0,128,223,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, +120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +159, 0, 0, 0,127, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, + 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,135,217, 2, 1, 0, 0, 0, 48, 48,134, 27, + 1, 0, 0, 0, 48, 48,134, 27, 1, 0, 0, 0,128,232,131, 29, 1, 0, 0, 0,128,232,131, 29, 1, 0, 0, 0,240, 51,128, 29, + 1, 0, 0, 0, 48, 54,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,128,232,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32,136,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97, +115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97, +115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0,116, 32, 77, +111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,234,131, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,240,247,131, 29, 1, 0, 0, 0, 32,231,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,143,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,102,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, +171, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, +171, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,172, 3,163, 0,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,176,130,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,235,131, 29, + 1, 0, 0, 0, 96,246,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,235,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0,237,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 0,237,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,238,131, 29, 1, 0, 0, 0,112,235,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, +101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, +101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,251,163, 0, 58, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,128,156,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,158,165, 29, 1, 0, 0, 0, -240,154,165, 29, 1, 0, 0, 0, 32,207, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 78, 1,102, 0, - 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,238,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 32,240,131, 29, 1, 0, 0, 0, 0,237,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,158,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,160,159,165, 29, 1, 0, 0, 0,128,156,165, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 78, 1,105, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 32,240,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,241,131, 29, 1, 0, 0, 0,144,238,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, +118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, +118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,251,163, 0, 3, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,160,159,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,161,165, 29, 1, 0, 0, 0, - 16,158,165, 29, 1, 0, 0, 0, 16,142, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97, -110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 78, 1, 0, 0, - 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,241,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 64,243,131, 29, 1, 0, 0, 0, 32,240,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,161,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,192,162,165, 29, 1, 0, 0, 0,160,159,165, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 78, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0,184,251,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 64,243,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,244,131, 29, 1, 0, 0, 0,176,241,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, + 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, + 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114, +105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,251,163, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,192,162,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,161,165, 29, 1, 0, 0, 0,144,217, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, - 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 78, 1, 0, 0, - 20, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,244,131, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 96,246,131, 29, 1, 0, 0, 0, 64,243,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 80,164,165, 29, 1, 0, 0, 0, -163, 0, 0, 0, 1, 0, 0, 0,176,169,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77,101,115,104, 32, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 23,252,163, 0,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 96,246,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,244,131, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, +118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, +118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,112, 33,201, 20, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,165,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -240,166,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, - 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,166,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 80,168,165, 29, 1, 0, 0, 0,144,165,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,247,131, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,234,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 5,230, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,208,129,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 56,128, 29, 1, 0, 0, 0, 64, 71,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48,238,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,238,135, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 19,198, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, + 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, + 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, + 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, 26, 63,185, 62, + 35, 44,185, 62,147,180,109,188,122, 73,177, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65, +214,211,111, 65, 99,240,191, 62,110,116, 85, 63, 48,185, 70,188, 0, 0, 78,180,246,235,132,190,156, 35, 0, 62,130, 17, 20, 63, + 0, 0,192,178, 67,108,117,194,185,204,216, 65,105,156, 5,194,213,247,159,192,235, 62,114, 66, 61,254,213,193,158,225, 3, 66, + 56, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, 26, 63,185, 62, + 35, 44,185, 62,147,180,109,188,122, 73,177, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65, +214,211,111, 65, 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 89,186, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0,188,189,169, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,168,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240,166,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, - 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, - 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,176,169,165, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, -160,173,165, 29, 1, 0, 0, 0, 80,164,165, 29, 1, 0, 0, 0,144,165,165, 29, 1, 0, 0, 0, 80,168,165, 29, 1, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0, 80,249,131, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,112,253,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,250,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,252,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, +126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,252,131, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,250,131, 29, 1, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, +248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,112,253,131, 29, + 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,249,131, 29, 1, 0, 0, 0,176,250,131, 29, + 1, 0, 0, 0, 16,252,131, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,240,254,131, 29, + 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,240, 38,110, 27, 1, 0, 0, 0, 32,158,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0,224, 4,132, 29, + 1, 0, 0, 0, 64, 5,132, 29, 1, 0, 0, 0,192, 12,132, 29, 1, 0, 0, 0, 32, 13,132, 29, 1, 0, 0, 0, 48, 16,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 0,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96, 0,132, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0, 96, 0,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 1,132, 29, + 1, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 32, 1,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 1,132, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 3,132, 29, + 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 0, 3,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 3,132, 29, 1, 0, 0, 0,160, 2,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96, 3,132, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0, 0, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0, 96, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,180, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 4,132, 29, + 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,128, 4,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 4,132, 29, 1, 0, 0, 0, 32, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 4,132, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 60, 1,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 5,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,160, 5,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0,132, 29, 1, 0, 0, 0,192, 0,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 5,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0, 6,132, 29, 1, 0, 0, 0, 64, 5,132, 29, 1, 0, 0, 0, 96, 0,132, 29, 1, 0, 0, 0,128, 1,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 6,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 96, 6,132, 29, 1, 0, 0, 0,160, 5,132, 29, 1, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0,224, 1,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 6,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,192, 6,132, 29, 1, 0, 0, 0, 0, 6,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0,224, 1,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 6,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 32, 7,132, 29, 1, 0, 0, 0, 96, 6,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0, 64, 2,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 7,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,128, 7,132, 29, 1, 0, 0, 0,192, 6,132, 29, 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,160, 2,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 7,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,224, 7,132, 29, 1, 0, 0, 0, 32, 7,132, 29, 1, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0, 0, 3,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 7,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 64, 8,132, 29, 1, 0, 0, 0,128, 7,132, 29, 1, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0, 0, 3,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 8,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,160, 8,132, 29, 1, 0, 0, 0,224, 7,132, 29, 1, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0, 64, 2,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 8,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0, 9,132, 29, 1, 0, 0, 0, 64, 8,132, 29, 1, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0, 0, 3,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 9,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 96, 9,132, 29, 1, 0, 0, 0,160, 8,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 96, 3,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 9,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,192, 9,132, 29, 1, 0, 0, 0, 0, 9,132, 29, 1, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0, 96, 3,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 9,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 32, 10,132, 29, 1, 0, 0, 0, 96, 9,132, 29, 1, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0, 96, 3,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 10,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,128, 10,132, 29, 1, 0, 0, 0,192, 9,132, 29, 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0, 32, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 10,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,224, 10,132, 29, 1, 0, 0, 0, 32, 10,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 32, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 10,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 64, 11,132, 29, 1, 0, 0, 0,128, 10,132, 29, 1, 0, 0, 0, 96, 3,132, 29, 1, 0, 0, 0,192, 3,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 11,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,160, 11,132, 29, 1, 0, 0, 0,224, 10,132, 29, 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,128, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 11,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0, 12,132, 29, 1, 0, 0, 0, 64, 11,132, 29, 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0,128, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 12,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 96, 12,132, 29, 1, 0, 0, 0,160, 11,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0,224, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 12,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,192, 12,132, 29, 1, 0, 0, 0, 0, 12,132, 29, 1, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0,224, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 12,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 12,132, 29, 1, 0, 0, 0,128, 4,132, 29, 1, 0, 0, 0,224, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32, 13,132, 29, 1, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,192, 16,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0, 96, 0,132, 29, + 1, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128,122,132, 29, 1, 0, 0, 0,128,122,132, 29, 1, 0, 0, 0, 0, 14,132, 29, 1, 0, 0, 0, 96, 15,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 14,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 15,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 15,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 14,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,192, 16,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176, 46,132, 29, + 1, 0, 0, 0, 32, 13,132, 29, 1, 0, 0, 0, 0, 3,132, 29, 1, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0, 96, 3,132, 29, + 1, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, +179, 1, 0, 0, 4, 4, 96, 1,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,132, 29, + 1, 0, 0, 0, 80, 45,132, 29, 1, 0, 0, 0,160, 17,132, 29, 1, 0, 0, 0, 0, 19,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,160, 17,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 19,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,176, 67, 0, 0, 0, 0, + 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 1, 31, 0, 96, 1, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0, +128, 7, 0, 0,149, 1, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 31, 0, + 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0, 19,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 17,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,167, 67,254,127,193,195, + 0, 0, 0, 0, 79, 1, 0, 0, 96, 1, 0, 0, 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 96, 1,149, 1, 79, 1, +131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0, +128, 7, 0, 0, 0, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1,149, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 20,132, 29, 1, 0, 0, 0,112, 34,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 96, 20,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240, 21,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, +111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 78, 1, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240, 21,132, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,128, 23,132, 29, 1, 0, 0, 0, 96, 20,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,135,255, 78, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,128, 23,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16, 25,132, 29, 1, 0, 0, 0,240, 21,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, +121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, +121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 78, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16, 25,132, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,160, 26,132, 29, 1, 0, 0, 0,128, 23,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140,254, 78, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,160, 26,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48, 28,132, 29, 1, 0, 0, 0, 16, 25,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, +116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, +116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 78, 1, 58, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,170,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 64,172,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 28,132, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,192, 29,132, 29, 1, 0, 0, 0,160, 26,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,172,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,170,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,188,253, 78, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,192, 29,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 31,132, 29, 1, 0, 0, 0, 48, 28,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, +116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, +116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 78, 1,105, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,244, 2, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,244, 2, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, -226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, -184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, - 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, -184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 31,132, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,224, 32,132, 29, 1, 0, 0, 0,192, 29,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35,253, 78, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,224, 32,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112, 34,132, 29, 1, 0, 0, 0, 80, 31,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, +115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 78, 1, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 34,132, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 32,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0,160,173,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,169,165, 29, 1, 0, 0, 0,224,170,165, 29, 1, 0, 0, 0, 64,172,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, -159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 0,175,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,208,165, 29, 1, 0, 0, 0, 16,145,165, 29, 1, 0, 0, 0, - 80,128,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0,240,130,165, 29, 1, 0, 0, 0, 80,131,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 17, 17, 32, 6,180, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,182,217, 2, 1, 0, 0, 0,144,181,165, 29, 1, 0, 0, 0,128,207,165, 29, 1, 0, 0, 0, -224,175,165, 29, 1, 0, 0, 0, 48,180,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 67,200, 20, 1, 0, 0, 0,224, 61,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,175,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 64,177,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,184,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,177,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 48,180,165, 29, 1, 0, 0, 0,224,175,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, - 0, 0,196,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,196,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, - 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, - 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,154, 1,203, 0,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,154, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240,183,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160,178,165, 29, 1, 0, 0, 0,160,178,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,178,165, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 19, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,243,252, 78, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 1, 0, 0, 0, 36,132, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 96, 41,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48,180,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64,177,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67,228, 46, 44,195,220,133,181, 68, -162,102,238,194,168,153,179, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5, -154, 1, 51, 5,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 5,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,183,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 37,132, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 38,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 72, 0, 0, 0,144,181,165, 29, 1, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 48,186,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16,182,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,183,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, - 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, - 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112,183,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,184,165, 29, 1, 0, 0, 0, - 16,182,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 38,132, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 40,132, 29, 1, 0, 0, 0, 64, 37,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0, +235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,208,184,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,183,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, - 0, 0,116,190, 0,128,158, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 40,132, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 38,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, + 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0, +235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 96, 41,132, 29, + 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 80, 45,132, 29, 1, 0, 0, 0, 0, 36,132, 29, 1, 0, 0, 0, 64, 37,132, 29, + 1, 0, 0, 0, 0, 40,132, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,168, 0, 0, 0, 48,186,165, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0,208,189,165, 29, 1, 0, 0, 0, -144,181,165, 29, 1, 0, 0, 0, 16,182,165, 29, 1, 0, 0, 0,208,184,165, 29, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16,187,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,188,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, - 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, - 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112,188,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16,187,165, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68, -176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3, -122, 1,239, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,144, 42,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 43,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, +108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,240, 43,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 42,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0,208,189,165, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 80,195,165, 29, 1, 0, 0, 0, - 48,186,165, 29, 1, 0, 0, 0, 16,187,165, 29, 1, 0, 0, 0,112,188,165, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, +108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,242,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48,242,135, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, +115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 48,191,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,192,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -144,192,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,193,165, 29, 1, 0, 0, 0, 48,191,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0, -112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -240,193,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,192,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, - 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80, 45,132, 29, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 41,132, 29, 1, 0, 0, 0,144, 42,132, 29, 1, 0, 0, 0,240, 43,132, 29, + 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176, 46,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 80,132, 29, + 1, 0, 0, 0,192, 16,132, 29, 1, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,160, 2,132, 29, + 1, 0, 0, 0, 0, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, +179, 1, 0, 0, 17, 17, 32, 6,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 53,132, 29, + 1, 0, 0, 0, 48, 79,132, 29, 1, 0, 0, 0,144, 47,132, 29, 1, 0, 0, 0,224, 51,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,144, 47,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 48,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 32, 6, 26, 0, 32, 6, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,240, 48,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 51,132, 29, 1, 0, 0, 0,144, 47,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,196,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,196,195, + 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,154, 1,203, 0, +136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +219, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,154, 1, + 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 50,132, 29, 1, 0, 0, 0, 80, 50,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 80, 50,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111, +112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111, +112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 51,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 48,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, + 0, 0,112, 67,228, 46, 44,195,220,133,181, 68,162,102,238,194,168,153,179, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0, +153, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0, +153, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,154, 1, 51, 5,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 64, 53,132, 29, 1, 0, 0, 0,175, 0, 0, 0, + 1, 0, 0, 0,224, 57,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 53,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 55,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 55,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,128, 56,132, 29, 1, 0, 0, 0,192, 53,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 56,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 55,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,116,190, 0,128,158, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, +122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,224, 57,132, 29, 1, 0, 0, 0,168, 0, 0, 0, + 1, 0, 0, 0,128, 61,132, 29, 1, 0, 0, 0, 64, 53,132, 29, 1, 0, 0, 0,192, 53,132, 29, 1, 0, 0, 0,128, 56,132, 29, + 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 58,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 60,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 60,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 58,132, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, + 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0, +121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0, +121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, - 80,195,165, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 96,203,165, 29, 1, 0, 0, 0,208,189,165, 29, 1, 0, 0, 0, - 48,191,165, 29, 1, 0, 0, 0,240,193,165, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128, 61,132, 29, 1, 0, 0, 0,174, 0, 0, 0, + 1, 0, 0, 0, 0, 67,132, 29, 1, 0, 0, 0,224, 57,132, 29, 1, 0, 0, 0,192, 58,132, 29, 1, 0, 0, 0, 32, 60,132, 29, + 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 62,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 64,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, + 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, + 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,128,196,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,197,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, - 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 64,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 65,132, 29, + 1, 0, 0, 0,224, 62,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,224,197,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,199,165, 29, 1, 0, 0, 0, -128,196,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, -255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, - 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 64,199,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,200,165, 29, 1, 0, 0, 0, -224,197,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,160,200,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,202,165, 29, 1, 0, 0, 0, - 64,199,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 65,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 64,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, + 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 0,202,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160,200,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 0, 67,132, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16, 75,132, 29, + 1, 0, 0, 0,128, 61,132, 29, 1, 0, 0, 0,224, 62,132, 29, 1, 0, 0, 0,160, 65,132, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,248, 2, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48,248, 2, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191, -222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, -224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, - 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191, -222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 68,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,144, 69,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 69,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,240, 70,132, 29, 1, 0, 0, 0, 48, 68,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 70,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 80, 72,132, 29, 1, 0, 0, 0,144, 69,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 72,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,176, 73,132, 29, 1, 0, 0, 0,240, 70,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 73,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 72,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48,246,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,246,135, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, + 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, + 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, + 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, + 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67, +151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, + 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0, 16, 75,132, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 48, 79,132, 29, 1, 0, 0, 0, 0, 67,132, 29, + 1, 0, 0, 0, 48, 68,132, 29, 1, 0, 0, 0,176, 73,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 76,132, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 77,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,203,165, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0,128,207,165, 29, 1, 0, 0, 0, 80,195,165, 29, 1, 0, 0, 0,128,196,165, 29, 1, 0, 0, 0, - 0,202,165, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, +126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,204,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 32,206,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 77,132, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 76,132, 29, 1, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, +248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,206,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192,204,165, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, -112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48, 79,132, 29, + 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 75,132, 29, 1, 0, 0, 0,112, 76,132, 29, + 1, 0, 0, 0,208, 77,132, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,128,207,165, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,203,165, 29, 1, 0, 0, 0,192,204,165, 29, 1, 0, 0, 0, 32,206,165, 29, 1, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48, 80,132, 29, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,102,132, 29, 1, 0, 0, 0,176, 46,132, 29, 1, 0, 0, 0,192, 3,132, 29, + 1, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 96, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 9, 9, 72, 2,175, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,250,135, 27, 1, 0, 0, 0, 16,101,132, 29, 1, 0, 0, 0, 16, 81,132, 29, + 1, 0, 0, 0,112, 82,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 81,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,112, 82,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 18, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,181, 67, 0, 0,200, 65, 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 72, 2, 26, 0, 72, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,128,208,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, -192,230,165, 29, 1, 0, 0, 0, 0,175,165, 29, 1, 0, 0, 0, 16,132,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, - 48,130,165, 29, 1, 0, 0, 0,176,131,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0, -181, 1, 0, 0, 99, 4, 0, 0, 9, 9, 72, 2,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,175,217, 2, 1, 0, 0, 0, - 48,252, 2, 28, 1, 0, 0, 0, 96,229,165, 29, 1, 0, 0, 0, 96,209,165, 29, 1, 0, 0, 0,192,210,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,145,162, 21, 1, 0, 0, 0, 48, 10,201, 20, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 96,209,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,210,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 18, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,181, 67, 0, 0,200, 65, - 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 72, 2, - 26, 0, 72, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 5, 0, 0,128, 7, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,177,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 82,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 81,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, + 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0,120, 27, 19, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, +148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, + 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 72, 2,149, 2, 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,192,210,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,209,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, - 0, 0, 0, 0,120, 27, 19, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 72, 2, -149, 2, 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 5, 0, 0,128, 7, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,176,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48,250,135, 27, 1, 0, 0, 0,170, 0, 0, 0, + 1, 0, 0, 0,144, 86,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,144, 2, 0, 0, 48,252, 2, 28, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,224,214,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3969,995 +3972,994 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 83,132, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 85,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,182, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +107, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,108, 1, 26, 0,108, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 41, 1, 0, 0, + 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,212,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -128,213,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,182, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,108, 1, 26, 0,108, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,108, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 85,132, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 83,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 67, 0, 0,210,195, 0, 0, 0, 0, 91, 1, 0, 0, +108, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 90, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,108, 1,182, 1, 91, 1,164, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 67, 1, 0, 0, +248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,213,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,212,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,173, 67, 0, 0,210,195, 0, 0, 0, 0, 91, 1, 0, 0,108, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, - 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, - 0, 0, 0, 4, 6, 0,108, 1,182, 1, 91, 1,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,108, 1,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 86,132, 29, + 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0,192, 91,132, 29, 1, 0, 0, 0, 48,250,135, 27, 1, 0, 0, 0,208, 83,132, 29, + 1, 0, 0, 0, 48, 85,132, 29, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,214,165, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, - 16,220,165, 29, 1, 0, 0, 0, 48,252, 2, 28, 1, 0, 0, 0, 32,212,165, 29, 1, 0, 0, 0,128,213,165, 29, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,203,107, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 80,203,107, 27, + 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,240, 87,132, 29, 1, 0, 0, 0, 68, 65, 84, 65, +208, 0, 0, 0,240, 87,132, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, + 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, + 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, + 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 89,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 90,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,162, 67, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,128,137, 67, + 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0, 68, 1, 30, 0, 68, 1, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0,252, 3, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 1, 30, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 54,160, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,224, 54,160, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 13, 0, 0, 0, 64,216,165, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 64,216,165, 29, 1, 0, 0, 0, -218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, - 48,180, 4, 28, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,220, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,214, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 80,217,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,218,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,240, 65, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 90,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 89,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 67, 0, 0,137,196, 0, 0, 0, 0, 0, 0, 0, 0, +254,127,153, 67,253,127,198,195, 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, + 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0, 68, 1,159, 1, 51, 1,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, 93, 2, 0, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 1,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 68, 1, 30, 0, 68, 1, 30, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, -252, 3, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 30, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,192, 91,132, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 32, 97,132, 29, + 1, 0, 0, 0,144, 86,132, 29, 1, 0, 0, 0, 0, 89,132, 29, 1, 0, 0, 0, 96, 90,132, 29, 1, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0, 93,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 94,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, + 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, + 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0, +128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 96, 94,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 95,132, 29, 1, 0, 0, 0, 0, 93,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -176,218,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,217,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0,153, 67, 0, 0,137,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,153, 67,253,127,198,195, 0, 0, 0, 0, - 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 68, 1,159, 1, 51, 1,141, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, - 93, 2, 0, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, - 16,220,165, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,112,225,165, 29, 1, 0, 0, 0,224,214,165, 29, 1, 0, 0, 0, - 80,217,165, 29, 1, 0, 0, 0,176,218,165, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,192, 95,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 94,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, + 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0, +128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +240, 0, 0, 0, 32, 97,132, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16,101,132, 29, 1, 0, 0, 0,192, 91,132, 29, + 1, 0, 0, 0, 0, 93,132, 29, 1, 0, 0, 0,192, 95,132, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 98,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 99,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,221,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,176,222,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, - 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, - 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 99,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 98,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,222,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 16,224,165, 29, 1, 0, 0, 0, 80,221,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,254,135, 27, + 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,254,135, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,224,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,222,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, - 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,112,225,165, 29, 1, 0, 0, 0, -164, 0, 0, 0, 1, 0, 0, 0, 96,229,165, 29, 1, 0, 0, 0, 16,220,165, 29, 1, 0, 0, 0, 80,221,165, 29, 1, 0, 0, 0, - 16,224,165, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 16,101,132, 29, + 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 97,132, 29, 1, 0, 0, 0, 80, 98,132, 29, + 1, 0, 0, 0,176, 99,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,102,132, 29, 1, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 48, 16,110, 27, 1, 0, 0, 0, 48, 80,132, 29, 1, 0, 0, 0,128, 4,132, 29, 1, 0, 0, 0,224, 4,132, 29, + 1, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, + 55, 5, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 1, 1,251, 3,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32,121,132, 29, 1, 0, 0, 0,160,138,110, 27, 1, 0, 0, 0, 80,103,132, 29, 1, 0, 0, 0,192,119,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,103,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,104,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,104,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,106,132, 29, + 1, 0, 0, 0, 80,103,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 1, 0, 0, 61, 1, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0,149, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,106,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,107,132, 29, + 1, 0, 0, 0,176,104,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, +231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,207, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,107,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,119,132, 29, + 1, 0, 0, 0, 16,106,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0,128, 23,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,180, 0,112, 2,163, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 5, 0, 0, 55, 5, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,108,132, 29, 1, 0, 0, 0, 48,118,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,108,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,110,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110, +115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254, +163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,110,132, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,111,132, 29, 1, 0, 0, 0,208,108,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -160,226,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,228,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 0,228,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,226,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,111,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,113,132, 29, + 1, 0, 0, 0, 96,110,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252, +163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, - 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,113,132, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,115,132, 29, 1, 0, 0, 0,240,111,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115, +112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115, +112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 3, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, - 48, 0, 3, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, - 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, - 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, - 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, - 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,229,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,225,165, 29, 1, 0, 0, 0,160,226,165, 29, 1, 0, 0, 0, 0,228,165, 29, 1, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,192,230,165, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 8,166, 29, 1, 0, 0, 0, -128,208,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,112,132,165, 29, 1, 0, 0, 0, - 16,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, - 1, 1,251, 3,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,111,217, 2, 1, 0, 0, 0,112,249,165, 29, 1, 0, 0, 0, - 0, 7,166, 29, 1, 0, 0, 0,160,231,165, 29, 1, 0, 0, 0, 16,248,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112, 44,200, 20, 1, 0, 0, 0, 48, 7,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -160,231,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,233,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0, -181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,119,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 0,233,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,234,165, 29, 1, 0, 0, 0,160,231,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 61, 1, 0, 0, -207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,149, 2, 0, 0, 5, 0, - 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,116,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 96,234,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,235,165, 29, 1, 0, 0, 0, 0,233,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0, -207, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, - 34, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,118,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -192,235,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,248,165, 29, 1, 0, 0, 0, 96,234,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 23,196, 0, 0, 0, 0, -163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,112, 2,163, 0, 94, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 5, 0, 0, 55, 5, 0, 0, -207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,113,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,237,165, 29, 1, 0, 0, 0,128,246,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, - 32,237,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,238,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,115,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,116,132, 29, + 1, 0, 0, 0,128,113,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107, +103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252, +163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,116,132, 29, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,118,132, 29, 1, 0, 0, 0, 16,115,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95, +111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95, +111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111, +110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,238,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 64,240,165, 29, 1, 0, 0, 0, 32,237,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,118,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160,116,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255, +163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,119,132, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,107,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, - 64,240,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,241,165, 29, 1, 0, 0, 0,176,238,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, - 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, - 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,207, 1, 0, 0, + 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,241,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 96,243,165, 29, 1, 0, 0, 0, 64,240,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 2,136, 27, + 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 90,105,134, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, - 96,243,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,244,165, 29, 1, 0, 0, 0,208,241,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114, -111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114, -111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,244,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -128,246,165, 29, 1, 0, 0, 0, 96,243,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 32,121,132, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 32, 8,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 96, 5,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 6,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,192, 6,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 5,110, 27, + 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64, +110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, + 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, + 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -128,246,165, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,244,165, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, - 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, - 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0, 32, 8,110, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,160, 13,110, 27, 1, 0, 0, 0, 32,121,132, 29, + 1, 0, 0, 0, 96, 5,110, 27, 1, 0, 0, 0,192, 6,110, 27, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,248,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192,235,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 9,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 10,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,251, 3,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 4, 3, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 4, 3, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, -190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, -190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, -149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,105,134, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, -190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 10,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 12,110, 27, 1, 0, 0, 0,128, 9,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, -221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 12,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 10,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, + 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,160, 13,110, 27, + 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,160,138,110, 27, 1, 0, 0, 0, 32, 8,110, 27, 1, 0, 0, 0,128, 9,110, 27, + 1, 0, 0, 0, 64, 12,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, -112,249,165, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,144,253,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,250,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 48,252,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,252,165, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,250,165, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, - 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, - 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, - 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,208, 14,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,137,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 64,137,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 14,110, 27, + 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, + 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,144,253,165, 29, 1, 0, 0, 0, -174, 0, 0, 0, 1, 0, 0, 0, 16, 3,166, 29, 1, 0, 0, 0,112,249,165, 29, 1, 0, 0, 0,208,250,165, 29, 1, 0, 0, 0, - 48,252,165, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +200, 0, 0, 0,160,138,110, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 13,110, 27, + 1, 0, 0, 0,208, 14,110, 27, 1, 0, 0, 0, 64,137,110, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,254,165, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 80, 0,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, - 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 0,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -176, 1,166, 29, 1, 0, 0, 0,240,254,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 48, 16,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,102,132, 29, + 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0,224, 4,132, 29, 1, 0, 0, 0,128, 4,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 3, 3, 60, 1, +175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,142,110, 27, 1, 0, 0, 0,240, 37,110, 27, + 1, 0, 0, 0,160,139,110, 27, 1, 0, 0, 0, 0,141,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,139,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,141,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,158, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 59, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 60, 1, 26, 0, 60, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0, +206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,141,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,139,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,149, 67, 0,192, 32,196, 0, 0, 0, 0, 43, 1, 0, 0, + 60, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 42, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 60, 1,149, 2, 43, 1,131, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,207, 1, 0, 0, + 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,142,110, 27, + 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 96, 24,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 1,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 0,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, - 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, - 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 16, 3,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, - 0, 7,166, 29, 1, 0, 0, 0,144,253,165, 29, 1, 0, 0, 0,240,254,165, 29, 1, 0, 0, 0,176, 1,166, 29, 1, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 7,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,160, 7,130, 29, + 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,192,143,110, 27, 1, 0, 0, 0, 68, 65, 84, 65, +208, 0, 0, 0,192,143,110, 27, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, + 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, + 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, + 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,144,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,146,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 68, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 84, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,212, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 4,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,160, 5,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 5,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 4,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, - 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, - 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 0, 7,166, 29, 1, 0, 0, 0, -173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,166, 29, 1, 0, 0, 0, 64, 4,166, 29, 1, 0, 0, 0, -160, 5,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 0, 8,166, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,230,165, 29, 1, 0, 0, 0,144,130,165, 29, 1, 0, 0, 0, -208,129,165, 29, 1, 0, 0, 0, 48,133,165, 29, 1, 0, 0, 0,208,132,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 3, 3, 60, 1,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,106,217, 2, 1, 0, 0, 0,160, 11,166, 29, 1, 0, 0, 0,128, 34,166, 29, 1, 0, 0, 0,224, 8,166, 29, 1, 0, 0, 0, - 64, 10,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,200, 20, 1, 0, 0, 0, - 96,111,160, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 8,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 64, 10,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,158, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 60, 1, 26, 0, 60, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,108,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 10,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 8,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,149, 67, 0,192, 32,196, 0, 0, 0, 0, 43, 1, 0, 0, 60, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, - 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, - 0, 0, 0, 4, 6, 0, 60, 1,149, 2, 43, 1,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,107,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 11,166, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, -240, 20,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 57,201, 20, 1, 0, 0, 0,192, 57,201, 20, 1, 0, 0, 0, -224, 70,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,224, 70,161, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 13, 0, 0, 0, 0, 13,166, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 0, 13,166, 29, 1, 0, 0, 0, -218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, - 48,180, 4, 28, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,220, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,214, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 16, 14,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 15,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128, 68, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, - 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 0, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -112, 15,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 16,166, 29, 1, 0, 0, 0, 16, 14,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,182, 1, 0, 0, 5, 0, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -208, 16,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 18,166, 29, 1, 0, 0, 0,112, 15,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, - 67, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, - 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 48, 18,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 19,166, 29, 1, 0, 0, 0,208, 16,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, -163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0,211, 0, 0, 0, - 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -144, 19,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, - 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 0,182, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,120, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, - 48,120, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 15,150, 72, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,146,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,147,110, 27, + 1, 0, 0, 0,208,144,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0,182, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,159, 55,242, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,147,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,148,110, 27, + 1, 0, 0, 0, 48,146,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, +231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,148,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,150,110, 27, + 1, 0, 0, 0,144,147,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,211, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,150,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240,148,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240, 20,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, - 16, 25,166, 29, 1, 0, 0, 0,160, 11,166, 29, 1, 0, 0, 0, 16, 14,166, 29, 1, 0, 0, 0,144, 19,166, 29, 1, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80, 22,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 23,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, - 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, - 26, 0, 24, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,212, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,136, 27, + 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 6,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,121, 92,163, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, + 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 15,150, 72, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176, 23,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 22,166, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68, -160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6, -107, 2, 7, 6, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,159, 55,242, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0, 16, 25,166, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,144, 30,166, 29, 1, 0, 0, 0, -240, 20,166, 29, 1, 0, 0, 0, 80, 22,166, 29, 1, 0, 0, 0,176, 23,166, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, + 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96, 24,110, 27, + 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,128, 28,110, 27, 1, 0, 0, 0, 96,142,110, 27, 1, 0, 0, 0,208,144,110, 27, + 1, 0, 0, 0, 80,150,110, 27, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -112, 26,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 27,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 25,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 27,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -208, 27,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 29,166, 29, 1, 0, 0, 0,112, 26,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 27,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 25,110, 27, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, + 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0, +106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0, +106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128, 28,110, 27, 1, 0, 0, 0,174, 0, 0, 0, + 1, 0, 0, 0, 0, 34,110, 27, 1, 0, 0, 0, 96, 24,110, 27, 1, 0, 0, 0,192, 25,110, 27, 1, 0, 0, 0, 32, 27,110, 27, + 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0, -112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 48, 29,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 27,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, - 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, -144, 30,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,128, 34,166, 29, 1, 0, 0, 0, 16, 25,166, 29, 1, 0, 0, 0, -112, 26,166, 29, 1, 0, 0, 0, 48, 29,166, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,192, 31,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 33,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, - 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, - 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 32, 33,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 31,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, - 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, - 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, -122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,200, 0, 0, 0,128, 34,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 30,166, 29, 1, 0, 0, 0,192, 31,166, 29, 1, 0, 0, 0, 32, 33,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, - 83, 78, 0, 0,208, 0, 0, 0, 0, 36,166, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 80,188,166, 29, 1, 0, 0, 0, - 64,127,165, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116, -105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 37,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 80, 42,166, 29, 1, 0, 0, 0, 48, 50,166, 29, 1, 0, 0, 0, -144, 50,166, 29, 1, 0, 0, 0, 80,168,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16, 37,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -112, 37,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,112, 37,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208, 37,166, 29, 1, 0, 0, 0, - 16, 37,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -208, 37,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48, 38,166, 29, 1, 0, 0, 0,112, 37,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48, 38,166, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,144, 38,166, 29, 1, 0, 0, 0,208, 37,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 38,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -240, 38,166, 29, 1, 0, 0, 0, 48, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, -144, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 80, 39,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -112, 40,166, 29, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, - 16, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -208, 40,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 2,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -240, 41,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 64, 3, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 64, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 80, 42,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 42,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 37,166, 29, 1, 0, 0, 0,208, 37,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -176, 42,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 43,166, 29, 1, 0, 0, 0, 80, 42,166, 29, 1, 0, 0, 0, -112, 37,166, 29, 1, 0, 0, 0,144, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 16, 43,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 43,166, 29, 1, 0, 0, 0,176, 42,166, 29, 1, 0, 0, 0, -208, 37,166, 29, 1, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -112, 43,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 43,166, 29, 1, 0, 0, 0, 16, 43,166, 29, 1, 0, 0, 0, -144, 38,166, 29, 1, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -208, 43,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 44,166, 29, 1, 0, 0, 0,112, 43,166, 29, 1, 0, 0, 0, -240, 38,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 48, 44,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 44,166, 29, 1, 0, 0, 0,208, 43,166, 29, 1, 0, 0, 0, -144, 38,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -144, 44,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 44,166, 29, 1, 0, 0, 0, 48, 44,166, 29, 1, 0, 0, 0, - 48, 38,166, 29, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -240, 44,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 45,166, 29, 1, 0, 0, 0,144, 44,166, 29, 1, 0, 0, 0, - 16, 37,166, 29, 1, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 80, 45,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 45,166, 29, 1, 0, 0, 0,240, 44,166, 29, 1, 0, 0, 0, -144, 38,166, 29, 1, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -176, 45,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 46,166, 29, 1, 0, 0, 0, 80, 45,166, 29, 1, 0, 0, 0, - 80, 39,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 16, 46,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 46,166, 29, 1, 0, 0, 0,176, 45,166, 29, 1, 0, 0, 0, -176, 39,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -112, 46,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 46,166, 29, 1, 0, 0, 0, 16, 46,166, 29, 1, 0, 0, 0, - 16, 40,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -208, 46,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 47,166, 29, 1, 0, 0, 0,112, 46,166, 29, 1, 0, 0, 0, - 16, 37,166, 29, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 48, 47,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 47,166, 29, 1, 0, 0, 0,208, 46,166, 29, 1, 0, 0, 0, -176, 39,166, 29, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -144, 47,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 47,166, 29, 1, 0, 0, 0, 48, 47,166, 29, 1, 0, 0, 0, - 16, 40,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -240, 47,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 48,166, 29, 1, 0, 0, 0,144, 47,166, 29, 1, 0, 0, 0, -112, 40,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 80, 48,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 48,166, 29, 1, 0, 0, 0,240, 47,166, 29, 1, 0, 0, 0, -208, 40,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -176, 48,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 49,166, 29, 1, 0, 0, 0, 80, 48,166, 29, 1, 0, 0, 0, -176, 39,166, 29, 1, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 16, 49,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 49,166, 29, 1, 0, 0, 0,176, 48,166, 29, 1, 0, 0, 0, - 80, 39,166, 29, 1, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -112, 49,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 49,166, 29, 1, 0, 0, 0, 16, 49,166, 29, 1, 0, 0, 0, -240, 38,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, -208, 49,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 50,166, 29, 1, 0, 0, 0,112, 49,166, 29, 1, 0, 0, 0, - 48, 38,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, - 48, 50,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 49,166, 29, 1, 0, 0, 0, -144, 41,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -144, 50,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 54,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 38,166, 29, 1, 0, 0, 0,112, 37,166, 29, 1, 0, 0, 0,208, 37,166, 29, 1, 0, 0, 0,240, 38,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, - 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,208,187,166, 29, 1, 0, 0, 0,208,187,166, 29, 1, 0, 0, 0, -112, 51,166, 29, 1, 0, 0, 0,208, 52,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,144,140, 27, 1, 0, 0, 0,208,252,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 51,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,208, 52,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 52,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 51,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, - 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48, 54,166, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0, 32, 84,166, 29, 1, 0, 0, 0,144, 50,166, 29, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, -144, 41,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 48, 38,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 63, 3, 0, 0, 4, 4,144, 1, 64, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64,141,217, 2, 1, 0, 0, 0,112, 73,166, 29, 1, 0, 0, 0,192, 82,166, 29, 1, 0, 0, 0, 16, 55,166, 29, 1, 0, 0, 0, -112, 56,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,108,141, 27, 1, 0, 0, 0, -192,123,164, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 55,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -112, 56,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,144, 1, 31, 0,144, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 33, 3, 0, 0, 63, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 56,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 55,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 67, 0, 64, 68,196, 0, 0, 0, 0, - 0, 0, 0, 0,255,127,191, 67,255,191, 67,196, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, - 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0,144, 1, 33, 3,127, 1, 15, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,152,162, 21, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32,142,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 57,166, 29, 1, 0, 0, 0, -224, 71,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208, 57,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, - 96, 59,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,220,255,126, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, - 96, 59,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240, 60,166, 29, 1, 0, 0, 0,208, 57,166, 29, 1, 0, 0, 0, - 32,198, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,126, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 29,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 31,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, + 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, + 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240, 60,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -128, 62,166, 29, 1, 0, 0, 0, 96, 59,166, 29, 1, 0, 0, 0, 0,200, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 31,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 32,110, 27, + 1, 0, 0, 0,224, 29,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,111,255,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -128, 62,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16, 64,166, 29, 1, 0, 0, 0,240, 60,166, 29, 1, 0, 0, 0, - 96,202, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, -105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115, -105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,126, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 32,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 31,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, + 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16, 64,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -160, 65,166, 29, 1, 0, 0, 0,128, 62,166, 29, 1, 0, 0, 0,192,204, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 0, 34,110, 27, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,240, 37,110, 27, + 1, 0, 0, 0,128, 28,110, 27, 1, 0, 0, 0,224, 29,110, 27, 1, 0, 0, 0,160, 32,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 58,254,126, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -160, 65,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48, 67,166, 29, 1, 0, 0, 0, 16, 64,166, 29, 1, 0, 0, 0, - 32,207, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253,126, 1,102, 0, 0, 0, 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 35,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,144, 36,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 36,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 35,110, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,240, 37,110, 27, 1, 0, 0, 0,173, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,110, 27, 1, 0, 0, 0, 48, 35,110, 27, 1, 0, 0, 0,144, 36,110, 27, + 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,240, 38,110, 27, 1, 0, 0, 0,191, 0, 0, 0, + 1, 0, 0, 0,128, 74,111, 27, 1, 0, 0, 0,240,254,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 96, 45,109, 27, + 1, 0, 0, 0, 0, 42,110, 27, 1, 0, 0, 0, 96, 42,110, 27, 1, 0, 0, 0, 16,113,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,151,110, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,192,108,109, 27, 1, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192,108,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,109,109, 27, + 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 32,109,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0,192,108,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,109,109, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 32,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,110,109, 27, + 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 64,110,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,111,109, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,192, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,112,109, 27, + 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0,192,111,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,112,109, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5, 64, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 64, 3, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 45,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 45,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108,109, 27, 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 45,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 46,109, 27, + 1, 0, 0, 0, 96, 45,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 46,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 46,109, 27, + 1, 0, 0, 0,192, 45,109, 27, 1, 0, 0, 0,192,108,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 46,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 46,109, 27, + 1, 0, 0, 0, 32, 46,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 46,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 47,109, 27, + 1, 0, 0, 0,128, 46,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 47,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 47,109, 27, + 1, 0, 0, 0,224, 46,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 47,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 48,109, 27, + 1, 0, 0, 0, 64, 47,109, 27, 1, 0, 0, 0, 32,109,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 48,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 48,109, 27, + 1, 0, 0, 0,160, 47,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 48,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 48,109, 27, + 1, 0, 0, 0, 0, 48,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 48,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 49,109, 27, + 1, 0, 0, 0, 96, 48,109, 27, 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 49,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 49,109, 27, + 1, 0, 0, 0,192, 48,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 49,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 49,109, 27, + 1, 0, 0, 0, 32, 49,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 49,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 50,109, 27, + 1, 0, 0, 0,128, 49,109, 27, 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 50,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 50,109, 27, + 1, 0, 0, 0,224, 49,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 50,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 51,109, 27, + 1, 0, 0, 0, 64, 50,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 51,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 51,109, 27, + 1, 0, 0, 0,160, 50,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 51,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 51,109, 27, + 1, 0, 0, 0, 0, 51,109, 27, 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 51,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 52,109, 27, + 1, 0, 0, 0, 96, 51,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 52,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 41,110, 27, + 1, 0, 0, 0,192, 51,109, 27, 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 41,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 41,110, 27, + 1, 0, 0, 0, 32, 52,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 41,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 42,110, 27, + 1, 0, 0, 0, 64, 41,110, 27, 1, 0, 0, 0, 32,109,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 42,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 41,110, 27, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96, 42,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 46,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0,192,108,109, 27, + 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0, +128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,132,111, 27, + 1, 0, 0, 0,144,132,111, 27, 1, 0, 0, 0, 64, 43,110, 27, 1, 0, 0, 0,160, 44,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 64, 43,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 44,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,160, 44,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 43,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, + 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 67,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -192, 68,166, 29, 1, 0, 0, 0,160, 65,166, 29, 1, 0, 0, 0,128,209, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 0, 46,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240, 75,110, 27, 1, 0, 0, 0, 96, 42,110, 27, + 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 32,109,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 63, 3, 0, 0, 4, 4,144, 1, + 64, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,110, 27, 1, 0, 0, 0,144, 74,110, 27, + 1, 0, 0, 0,224, 46,110, 27, 1, 0, 0, 0, 64, 48,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 46,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 48,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +143, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, 31, 0,144, 1, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 33, 3, 0, 0, + 63, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59,253,126, 1,105, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 48,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 46,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,191, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,191, 67,255,191, 67,196, 0, 0, 0, 0,127, 1, 0, 0, +144, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +126, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,144, 1, 33, 3,127, 1, 15, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 49,110, 27, 1, 0, 0, 0,176, 63,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 49,110, 27, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48, 51,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -192, 68,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 70,166, 29, 1, 0, 0, 0, 48, 67,166, 29, 1, 0, 0, 0, - 16,142, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, -109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114, -109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,126, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 70,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, -224, 71,166, 29, 1, 0, 0, 0,192, 68,166, 29, 1, 0, 0, 0, 48,215, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 51,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192, 52,110, 27, + 1, 0, 0, 0,160, 49,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, +101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, +126, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11,253,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 52,110, 27, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 54,110, 27, 1, 0, 0, 0, 48, 51,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, -224, 71,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 70,166, 29, 1, 0, 0, 0, -144,217, 17, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252,126, 1, 0, 0, 20, 0, 0, 0, 4, 0, 7, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 54,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224, 55,110, 27, + 1, 0, 0, 0,192, 52,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, +110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, +126, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,112, 73,166, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, -208, 78,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 55,110, 27, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112, 57,110, 27, 1, 0, 0, 0, 80, 54,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,126, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 57,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 59,110, 27, + 1, 0, 0, 0,224, 55,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, +126, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0, 59,110, 27, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144, 60,110, 27, 1, 0, 0, 0,112, 57,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 0, 0, 0, 0,160,108,160, 21, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176, 74,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16, 76,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, - 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, - 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, - 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16, 76,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 77,166, 29, 1, 0, 0, 0, -176, 74,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253,126, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144, 60,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32, 62,110, 27, + 1, 0, 0, 0, 0, 59,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, +111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, +126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32, 62,110, 27, + 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176, 63,110, 27, 1, 0, 0, 0,144, 60,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176, 63,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 62,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, +112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, +126, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64, 65,110, 27, + 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,160, 70,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 66,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,224, 67,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, + 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 67,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 64, 69,110, 27, 1, 0, 0, 0,128, 66,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112, 77,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 76,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, - 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1, -124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,240, 0, 0, 0,208, 78,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,192, 82,166, 29, 1, 0, 0, 0, -112, 73,166, 29, 1, 0, 0, 0,176, 74,166, 29, 1, 0, 0, 0,112, 77,166, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 69,110, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 67,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, +123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,160, 70,110, 27, 1, 0, 0, 0,164, 0, 0, 0, + 1, 0, 0, 0,144, 74,110, 27, 1, 0, 0, 0, 64, 65,110, 27, 1, 0, 0, 0,128, 66,110, 27, 1, 0, 0, 0, 64, 69,110, 27, + 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 80,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 96, 81,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 81,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 71,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 73,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 73,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 71,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,124, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,124, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, + 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 10,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 10,136, 27, + 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, + 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, -237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, + 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, -103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4965,84 +4967,79 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,144, 74,110, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 70,110, 27, 1, 0, 0, 0,208, 71,110, 27, 1, 0, 0, 0, 48, 73,110, 27, 1, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, -192, 82,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 78,166, 29, 1, 0, 0, 0, - 0, 80,166, 29, 1, 0, 0, 0, 96, 81,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,240, 75,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,105,110, 27, 1, 0, 0, 0, 0, 46,110, 27, + 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0,160,110,109, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 18, 18,255, 2, +192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 79,110, 27, 1, 0, 0, 0,128,104,110, 27, + 1, 0, 0, 0,208, 76,110, 27, 1, 0, 0, 0, 48, 78,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 76,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 78,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 63, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32, 84,166, 29, 1, 0, 0, 0, -195, 0, 0, 0, 1, 0, 0, 0,176,113,166, 29, 1, 0, 0, 0, 48, 54,166, 29, 1, 0, 0, 0,208, 40,166, 29, 1, 0, 0, 0, - 48, 41,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0,176, 39,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 18, 18,255, 2,192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,185,217, 2, 1, 0, 0, 0,192, 87,166, 29, 1, 0, 0, 0,176,112,166, 29, 1, 0, 0, 0, 0, 85,166, 29, 1, 0, 0, 0, - 96, 86,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,148,140, 27, 1, 0, 0, 0, - 16, 25,162, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 85,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 96, 86,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0,192, 63, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,255, 2, 26, 0,255, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,187,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +254, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 2, 26, 0,255, 2, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 86,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 68, 0, 0, 0, 0, 0, 0, 51, 67, - 0, 0, 0, 0, 0,128, 59, 68, 0, 0, 0, 0, 0, 0,211, 67,238, 2, 0, 0,255, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,237, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, - 2, 0, 0, 4, 10, 0,255, 2,166, 1,238, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144,186,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,192, 87,166, 29, 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, - 48,128, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 42,200, 20, 1, 0, 0, 0, -144, 42,200, 20, 1, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 78,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 76,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0,128, 63, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,128, 59, 68, 0, 0, 0, 0, 0, 0,211, 67,238, 2, 0, 0, +255, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +237, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,255, 2,166, 1,238, 2,166, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 26, 0, 0, 0, +191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,144, 79,110, 27, + 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 48, 14,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 89,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -224, 90,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 90,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 89,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, - 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, - 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 81,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 82,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48,128, 4, 28, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0, - 0, 95,166, 29, 1, 0, 0, 0,192, 87,166, 29, 1, 0, 0, 0,128, 89,166, 29, 1, 0, 0, 0,224, 90,166, 29, 1, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 82,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 81,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, + 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0, +155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48, 14,136, 27, + 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,208, 86,110, 27, 1, 0, 0, 0,144, 79,110, 27, 1, 0, 0, 0, 80, 81,110, 27, + 1, 0, 0, 0,176, 82,110, 27, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5056,222 +5053,147 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 92,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,160, 93,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 93,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 92,166, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, - 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, - 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, - 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, - 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 16, 84,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 85,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 0, 95,166, 29, 1, 0, 0, 0, -174, 0, 0, 0, 1, 0, 0, 0,128,100,166, 29, 1, 0, 0, 0, 48,128, 4, 28, 1, 0, 0, 0, 64, 92,166, 29, 1, 0, 0, 0, -160, 93,166, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,112, 85,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 84,110, 27, + 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66, +116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, + 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5, +112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0,208, 86,110, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 80, 92,110, 27, 1, 0, 0, 0, 48, 14,136, 27, + 1, 0, 0, 0, 16, 84,110, 27, 1, 0, 0, 0,112, 85,110, 27, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 96,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -192, 97,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, - 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 97,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 32, 99,166, 29, 1, 0, 0, 0, 96, 96,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 88,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 89,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 89,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 90,110, 27, 1, 0, 0, 0, 48, 88,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 99,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192, 97,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, - 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, - 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128,100,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, -144,108,166, 29, 1, 0, 0, 0, 0, 95,166, 29, 1, 0, 0, 0, 96, 96,166, 29, 1, 0, 0, 0, 32, 99,166, 29, 1, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,101,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 16,103,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,103,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,112,104,166, 29, 1, 0, 0, 0,176,101,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, - 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,104,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,208,105,166, 29, 1, 0, 0, 0, 16,103,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, - 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,105,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 48,107,166, 29, 1, 0, 0, 0,112,104,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,107,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,105,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,132, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,132, 4, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, -226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, -166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, -248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, - 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, - 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61, -170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195, -205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, - 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, - 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, - 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 90,110, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 89,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, + 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 80, 92,110, 27, + 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 96,100,110, 27, 1, 0, 0, 0,208, 86,110, 27, 1, 0, 0, 0, 48, 88,110, 27, + 1, 0, 0, 0,240, 90,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,128, 93,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 94,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0,144,108,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,176,112,166, 29, 1, 0, 0, 0, -128,100,166, 29, 1, 0, 0, 0,176,101,166, 29, 1, 0, 0, 0, 48,107,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -240,109,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,111,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 80,111,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109,166, 29, 1, 0, 0, 0, - 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, -205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,224, 94,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 96,110, 27, 1, 0, 0, 0,128, 93,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, + 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, + 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 64, 96,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 97,110, 27, 1, 0, 0, 0,224, 94,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, -176,112,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,108,166, 29, 1, 0, 0, 0, -240,109,166, 29, 1, 0, 0, 0, 80,111,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,160, 97,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 99,110, 27, 1, 0, 0, 0, 64, 96,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, + 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, +104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0, 99,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 97,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -176,113,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,138,166, 29, 1, 0, 0, 0, 32, 84,166, 29, 1, 0, 0, 0, - 16, 40,166, 29, 1, 0, 0, 0,144, 38,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0,112, 40,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,193, 1, 0, 0, 99, 4, 0, 0, 9, 9,240, 5,163, 2, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,175,217, 2, 1, 0, 0, 0, 48,136, 4, 28, 1, 0, 0, 0,192,137,166, 29, 1, 0, 0, 0, -144,114,166, 29, 1, 0, 0, 0,240,115,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224,157,140, 27, 1, 0, 0, 0, 32,164,140, 27, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,114,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,240,115,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,193, 1, 0, 0,218, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,177,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,115,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,114,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, - 0, 0, 0, 0, 0,192, 22, 68,168, 86,234, 67, 86, 74,131, 68,133, 83, 49, 67, 62,214,212, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, - 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,137, 2,240, 5,137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,219, 1, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16,176,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48,136, 4, 28, 1, 0, 0, 0, -170, 0, 0, 0, 1, 0, 0, 0, 16,120,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, +128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48, 18,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, + 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, + 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, +184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, + 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, +136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, +184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, + 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5280,258 +5202,227 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,100,110, 27, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0,128,104,110, 27, 1, 0, 0, 0, 80, 92,110, 27, 1, 0, 0, 0,128, 93,110, 27, 1, 0, 0, 0, 0, 99,110, 27, + 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,101,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,103,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, + 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,103,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,192,101,110, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, +246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, + 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, + 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 80,117,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,118,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,128,104,110, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96,100,110, 27, 1, 0, 0, 0,192,101,110, 27, 1, 0, 0, 0, 32,103,110, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -176,118,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,117,166, 29, 1, 0, 0, 0, - 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,132,137,182,195,194, 68, 91, 68,112,158, 93, 65, 8, 19,249, 67, -223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, -205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5, 92, 2,223, 5, 74, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -183, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, - 16,120,166, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,144,125,166, 29, 1, 0, 0, 0, 48,136, 4, 28, 1, 0, 0, 0, - 80,117,166, 29, 1, 0, 0, 0,176,118,166, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,128,105,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,116,110, 27, + 1, 0, 0, 0,240, 75,110, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 64,110,109, 27, + 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,193, 1, 0, 0, + 99, 4, 0, 0, 9, 9,240, 5,163, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 22,136, 27, + 1, 0, 0, 0, 64,234,132, 29, 1, 0, 0, 0, 96,106,110, 27, 1, 0, 0, 0,192,107,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 96,106,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,107,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0,193, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,192,107,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,106,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,168, 86,234, 67, 86, 74,131, 68,133, 83, 49, 67, + 62,214,212, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,137, 2,240, 5, +137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0,219, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +144, 2, 0, 0, 48, 22,136, 27, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,224,111,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,121,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,208,122,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, - 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,122,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 48,124,166, 29, 1, 0, 0, 0,112,121,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,124,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,122,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, - 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,144,125,166, 29, 1, 0, 0, 0, -164, 0, 0, 0, 1, 0, 0, 0,160,133,166, 29, 1, 0, 0, 0, 16,120,166, 29, 1, 0, 0, 0,112,121,166, 29, 1, 0, 0, 0, - 48,124,166, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -192,126,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,128,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,109,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,110,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, + 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, -225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 32,128,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,129,166, 29, 1, 0, 0, 0,192,126,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0, -251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -128,129,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,130,166, 29, 1, 0, 0, 0, 32,128,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, -251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, - 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -224,130,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,132,166, 29, 1, 0, 0, 0,128,129,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, -163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, -251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 64,132,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,130,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, -251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,140, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, - 48,140, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, - 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, - 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, - 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, -164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191, -118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, - 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, - 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, - 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, - 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191, -118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, - 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, -214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,110,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32,109,110, 27, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,132,137,182,195, +194, 68, 91, 68,112,158, 93, 65, 8, 19,249, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0, +222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, + 0, 0,240, 5, 92, 2,223, 5, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,183, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,224,111,110, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,144, 2,133, 29, + 1, 0, 0, 0, 48, 22,136, 27, 1, 0, 0, 0, 32,109,110, 27, 1, 0, 0, 0,128,110,110, 27, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 64,113,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,114,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, + 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, + 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,133,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, -192,137,166, 29, 1, 0, 0, 0,144,125,166, 29, 1, 0, 0, 0,192,126,166, 29, 1, 0, 0, 0, 64,132,166, 29, 1, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,160,114,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 1,133, 29, 1, 0, 0, 0, 64,113,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 0,135,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,136,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, - 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, - 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 96,136,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,135,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, - 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, - 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, -122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 48, 1,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,114,110, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, + 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,200, 0, 0, 0,192,137,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160,133,166, 29, 1, 0, 0, 0, 0,135,166, 29, 1, 0, 0, 0, 96,136,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +240, 0, 0, 0,144, 2,133, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,224,238,132, 29, 1, 0, 0, 0,224,111,110, 27, + 1, 0, 0, 0, 64,113,110, 27, 1, 0, 0, 0, 48, 1,133, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,192,138,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80,168,166, 29, 1, 0, 0, 0, -176,113,166, 29, 1, 0, 0, 0, 16, 37,166, 29, 1, 0, 0, 0, 16, 40,166, 29, 1, 0, 0, 0, 48, 41,166, 29, 1, 0, 0, 0, -208, 40,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, - 18, 18,240, 2,192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,185,217, 2, 1, 0, 0, 0, 96,142,166, 29, 1, 0, 0, 0, - 80,167,166, 29, 1, 0, 0, 0,160,139,166, 29, 1, 0, 0, 0, 0,141,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,151,162, 21, 1, 0, 0, 0, 80, 11,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -160,139,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,141,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,231, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 60, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 2, 26, 0,240, 2, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,187,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 0,141,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,139,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0,192, 59, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,192, 55, 68, 0, 0, 0, 0, 0, 0,211, 67, -223, 2, 0, 0,240, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 2,166, 1,223, 2,166, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, - 26, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2,166, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,186,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 3,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,231,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0, - 96,142,166, 29, 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 48,144, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,224,107,160, 21, 1, 0, 0, 0, -240, 71,200, 20, 1, 0, 0, 0,176,104,160, 21, 1, 0, 0, 0,176,104,160, 21, 1, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,231,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,232,132, 29, + 1, 0, 0, 0,192, 3,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,232,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,236,132, 29, + 1, 0, 0, 0,128,231,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, +231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,236,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,237,132, 29, + 1, 0, 0, 0,224,232,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 32,144,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,145,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,237,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32,236,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -128,145,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,144,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, - 48,144, 4, 28, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,160,149,166, 29, 1, 0, 0, 0, 96,142,166, 29, 1, 0, 0, 0, - 32,144,166, 29, 1, 0, 0, 0,128,145,166, 29, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 26,136, 27, + 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 26,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, + 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, + 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62, +169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188, +102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, + 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196, +135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62, +169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188, +102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, + 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5540,1118 +5431,889 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,224,238,132, 29, + 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 64,234,132, 29, 1, 0, 0, 0,144, 2,133, 29, 1, 0, 0, 0,192, 3,133, 29, + 1, 0, 0, 0,128,237,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,240,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,160,241,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,241,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,240,132, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64,234,132, 29, 1, 0, 0, 0,173, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,238,132, 29, 1, 0, 0, 0, 64,240,132, 29, 1, 0, 0, 0,160,241,132, 29, + 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,224,146,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,148,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, - 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, - 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 0,116,110, 27, 1, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 16,113,111, 27, 1, 0, 0, 0,128,105,110, 27, 1, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0, 0,111,109, 27, + 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 2, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 18, 18,240, 2,192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,192,245,132, 29, 1, 0, 0, 0, 16,112,111, 27, 1, 0, 0, 0, 0,243,132, 29, 1, 0, 0, 0, 96,244,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,243,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,244,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,231, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 60, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, + 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,240, 2, 26, 0,240, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,244,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,243,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,192, 59, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, + 0,192, 55, 68, 0, 0, 0, 0, 0, 0,211, 67,223, 2, 0, 0,240, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, + 10, 0,240, 2,166, 1,223, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 26, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,192,245,132, 29, 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 48, 30,136, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 64,148,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224,146,166, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, - 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5, -130, 1,223, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0,160,149,166, 29, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 32,155,166, 29, 1, 0, 0, 0, - 48,144, 4, 28, 1, 0, 0, 0,224,146,166, 29, 1, 0, 0, 0, 64,148,166, 29, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,247,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,248,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, + 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 0,151,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,152,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,248,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128,247,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63, +254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, + 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, - 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 96,152,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,153,166, 29, 1, 0, 0, 0, 0,151,166, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48, 30,136, 27, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,160,228,109, 27, + 1, 0, 0, 0,192,245,132, 29, 1, 0, 0, 0,128,247,132, 29, 1, 0, 0, 0,224,248,132, 29, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0, -112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -192,153,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,152,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, - 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, - 32,155,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 48,163,166, 29, 1, 0, 0, 0,160,149,166, 29, 1, 0, 0, 0, - 0,151,166, 29, 1, 0, 0, 0,192,153,166, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,156,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,157,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, - 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176,157,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,159,166, 29, 1, 0, 0, 0, - 80,156,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, -255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, - 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16,159,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,160,166, 29, 1, 0, 0, 0, -176,157,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112,160,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,161,166, 29, 1, 0, 0, 0, - 16,159,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,250,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,160,251,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,208,161,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,160,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,251,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,250,132, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, + 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, +129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, +129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,228,109, 27, 1, 0, 0, 0,174, 0, 0, 0, + 1, 0, 0, 0, 0,230,109, 27, 1, 0, 0, 0, 48, 30,136, 27, 1, 0, 0, 0, 64,250,132, 29, 1, 0, 0, 0,160,251,132, 29, + 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,148, 4, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48,148, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191, -222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, -224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, - 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191, -222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,136,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,137,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, + 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, + 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,137,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,139,132, 29, + 1, 0, 0, 0, 64,136,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,163,166, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0, 80,167,166, 29, 1, 0, 0, 0, 32,155,166, 29, 1, 0, 0, 0, 80,156,166, 29, 1, 0, 0, 0, -208,161,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,139,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160,137,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, + 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,164,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -240,165,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 0,230,109, 27, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,240,107,111, 27, + 1, 0, 0, 0,160,228,109, 27, 1, 0, 0, 0, 64,136,132, 29, 1, 0, 0, 0, 0,139,132, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,165,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,164,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, -112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 80,167,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,163,166, 29, 1, 0, 0, 0,144,164,166, 29, 1, 0, 0, 0,240,165,166, 29, 1, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,140,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,192,141,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,141,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32,143,132, 29, 1, 0, 0, 0, 96,140,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,143,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,128,144,132, 29, 1, 0, 0, 0,192,141,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,144,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,224,145,132, 29, 1, 0, 0, 0, 32,143,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,145,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,144,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 34,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 34,136, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, + 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, + 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, + 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, + 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67, +151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, + 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 80,168,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192,138,166, 29, 1, 0, 0, 0,144, 41,166, 29, 1, 0, 0, 0, 80, 39,166, 29, 1, 0, 0, 0, -240, 38,166, 29, 1, 0, 0, 0,240, 41,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, - 65, 3, 0, 0, 99, 4, 0, 0, 3, 3,144, 1, 35, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,106,217, 2, 1, 0, 0, 0, -240,171,166, 29, 1, 0, 0, 0,112,186,166, 29, 1, 0, 0, 0, 48,169,166, 29, 1, 0, 0, 0,144,170,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,151,162, 21, 1, 0, 0, 0,176,251,201, 20, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48,169,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,170,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,149, 67, 0, 0,200, 65, - 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, - 26, 0,144, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,128, 7, 0, 0, 65, 3, 0, 0, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,108,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,144,170,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,169,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 67, - 0, 0,119,195, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,144, 1, - 9, 1,127, 1,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,128, 7, 0, 0, 91, 3, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 1, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,107,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,240,171,166, 29, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 32,177,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0,240,107,111, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 16,112,111, 27, 1, 0, 0, 0, 0,230,109, 27, + 1, 0, 0, 0, 96,140,132, 29, 1, 0, 0, 0,224,145,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,109,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,110,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, +126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,110,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,109,111, 27, 1, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, +248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,195,200, 20, 1, 0, 0, 0,112,195,200, 20, 1, 0, 0, 0,112, 61,160, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 68, 65, 84, 65, 16, 0, 0, 0,112, 61,160, 29, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, - 80,173,166, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 80,173,166, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, - 20, 0, 0, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,208, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,220, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,214, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,202, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 64, 86,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,174,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,192,175,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 1, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 1, 31, 0, 44, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,160, 5, 0, 0,218, 2, 0, 0,248, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 16,112,111, 27, + 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,107,111, 27, 1, 0, 0, 0, 80,109,111, 27, + 1, 0, 0, 0,176,110,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,175,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,174,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, - 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,246,194, 0, 0, 0, 0, 27, 1, 0, 0, 44, 1, 0, 0, - 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, - 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 44, 1,141, 0, 27, 1,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,160, 5, 0, 0, 77, 2, 0, 0,217, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 32,177,166, 29, 1, 0, 0, 0, -163, 0, 0, 0, 1, 0, 0, 0,128,182,166, 29, 1, 0, 0, 0,240,171,166, 29, 1, 0, 0, 0, 96,174,166, 29, 1, 0, 0, 0, -192,175,166, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,113,111, 27, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,110, 27, 1, 0, 0, 0,128,112,109, 27, + 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 65, 3, 0, 0, 99, 4, 0, 0, 3, 3,144, 1, 35, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,116,111, 27, 1, 0, 0, 0, 48,131,111, 27, 1, 0, 0, 0,240,113,111, 27, + 1, 0, 0, 0, 80,115,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,113,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 80,115,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,149, 67, 0, 0,200, 65, 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, 26, 0,144, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 65, 3, 0, 0, 90, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,115,111, 27, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,113,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 67, 0, 0,119,195, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, + 8, 1, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, + 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, + 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,144, 1, 9, 1,127, 1,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 91, 3, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,116,111, 27, 1, 0, 0, 0,167, 0, 0, 0, + 1, 0, 0, 0,224,121,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,178,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -192,179,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, - 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,179,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 32,181,166, 29, 1, 0, 0, 0, 96,178,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64,113,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 64,113,109, 27, 1, 0, 0, 0,219, 0, 0, 0, + 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 16,118,111, 27, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 16,118,111, 27, + 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 19, 0, 0, 0, + 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 21, 0, 1, 0, + 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, 1, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 32,119,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,120,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, + 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 1, 31, 0, 44, 1, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0, +160, 5, 0, 0,218, 2, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1, 31, 0, + 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,128,120,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,119,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,246,194, + 0, 0, 0, 0, 27, 1, 0, 0, 44, 1, 0, 0, 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 44, 1,141, 0, 27, 1, +123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0, +160, 5, 0, 0, 77, 2, 0, 0,217, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,181,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192,179,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, - 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, - 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 1, 0, 0,224,121,111, 27, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 64,127,111, 27, 1, 0, 0, 0,176,116,111, 27, + 1, 0, 0, 0, 32,119,111, 27, 1, 0, 0, 0,128,120,111, 27, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128,182,166, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, -112,186,166, 29, 1, 0, 0, 0, 32,177,166, 29, 1, 0, 0, 0, 96,178,166, 29, 1, 0, 0, 0, 32,181,166, 29, 1, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,123,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,124,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,183,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 16,185,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, +227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0, +111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,185,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,183,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,124,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,125,111, 27, 1, 0, 0, 0, 32,123,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0, +235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,152, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,152, 4, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, -226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, -184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, - 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, -184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,125,111, 27, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,124,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, + 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0, +235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 64,127,111, 27, + 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 48,131,111, 27, 1, 0, 0, 0,224,121,111, 27, 1, 0, 0, 0, 32,123,111, 27, + 1, 0, 0, 0,224,125,111, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,112,128,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,129,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, +108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,208,129,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,128,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0,112,186,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128,182,166, 29, 1, 0, 0, 0,176,183,166, 29, 1, 0, 0, 0, 16,185,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, -159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, - 80,188,166, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0,247,166, 29, 1, 0, 0, 0, 0, 36,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0, - 0,192,166, 29, 1, 0, 0, 0, 96,192,166, 29, 1, 0, 0, 0, 32,196,166, 29, 1, 0, 0, 0,128,196,166, 29, 1, 0, 0, 0, -144,219,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -192,189,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -224,190,166, 29, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, -128,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 64,191,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -196, 3,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 0, 0, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 96,192,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,192,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,192,192,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,193,166, 29, 1, 0, 0, 0, - 96,192,166, 29, 1, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 32,193,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,193,166, 29, 1, 0, 0, 0, -192,192,166, 29, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,128,193,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,193,166, 29, 1, 0, 0, 0, - 32,193,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,224,193,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,194,166, 29, 1, 0, 0, 0, -128,193,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 64,194,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,194,166, 29, 1, 0, 0, 0, -224,193,166, 29, 1, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,160,194,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,195,166, 29, 1, 0, 0, 0, - 64,194,166, 29, 1, 0, 0, 0, 96,189,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 0,195,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,195,166, 29, 1, 0, 0, 0, -160,194,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 96,195,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,195,166, 29, 1, 0, 0, 0, - 0,195,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,192,195,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,196,166, 29, 1, 0, 0, 0, - 96,195,166, 29, 1, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 32,196,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192,195,166, 29, 1, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0, 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,128,196,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,200,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0,192,189,166, 29, 1, 0, 0, 0, 32,190,166, 29, 1, 0, 0, 0, - 64,191,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, - 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0,128,246,166, 29, 1, 0, 0, 0, -128,246,166, 29, 1, 0, 0, 0, 96,197,166, 29, 1, 0, 0, 0,192,198,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,145,214, 2, 1, 0, 0, 0,192, 34,200, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 96,197,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,198,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -192,198,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,197,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, -112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 32,200,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144,219,166, 29, 1, 0, 0, 0,128,196,166, 29, 1, 0, 0, 0, - 96,189,166, 29, 1, 0, 0, 0,224,190,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 99, 4, 0, 0, 6, 6,196, 3,100, 4, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,128,217, 2, 1, 0, 0, 0,176,206,166, 29, 1, 0, 0, 0,144,218,166, 29, 1, 0, 0, 0, - 0,201,166, 29, 1, 0, 0, 0, 80,205,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 9,163, 29, 1, 0, 0, 0, 32,102,164, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,201,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 96,202,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,196, 3, 26, 0,196, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64,134,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,202,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 80,205,166, 29, 1, 0, 0, 0, 0,201,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, - 0,224,134,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,255,255,134,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, - 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, - 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, 74, 4,203, 0, 56, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 74, 4, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,130,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192,203,166, 29, 1, 0, 0, 0,192,203,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,203,166, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,133,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,202, 0, 36, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,205,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96,202,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,154,153, 41,191,205,204,212, 63, -154,153,155,191,205,204, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 0, 0, 0, 0, 0, 0, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, 0, 0, 0,195, 3, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 2, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,129,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,168, 0, 0, 0,176,206,166, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0,112,214,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,144,207,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,208,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, - 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,240,208,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,210,166, 29, 1, 0, 0, 0, -144,207,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, -255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, - 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,210,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,211,166, 29, 1, 0, 0, 0, -240,208,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176,211,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,213,166, 29, 1, 0, 0, 0, - 80,210,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16,213,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,211,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,156, 4, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48,156, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, -222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63, -224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, - 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, -222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, +108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 38,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48, 38,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, +115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,112,214,166, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0,144,218,166, 29, 1, 0, 0, 0,176,206,166, 29, 1, 0, 0, 0,144,207,166, 29, 1, 0, 0, 0, - 16,213,166, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,215,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 48,217,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,217,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,215,166, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, -112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,144,218,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,214,166, 29, 1, 0, 0, 0,208,215,166, 29, 1, 0, 0, 0, 48,217,166, 29, 1, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,131,111, 27, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,127,111, 27, 1, 0, 0, 0,112,128,111, 27, 1, 0, 0, 0,208,129,111, 27, + 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,128, 74,111, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,192,159,176, 21, + 1, 0, 0, 0,240, 38,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, + 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64,147,132, 29, 1, 0, 0, 0, 16, 77,111, 27, 1, 0, 0, 0,112, 71,111, 27, 1, 0, 0, 0,208,203,132, 29, + 1, 0, 0, 0, 48,204,132, 29, 1, 0, 0, 0,224, 75,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,147,132, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 16,133,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,133,111, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,133,111, 27, + 1, 0, 0, 0, 64,147,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,112,133,111, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 16,133,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 75,111, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0,112,133,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176, 76,111, 27, + 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,176, 76,111, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16, 77,111, 27, 1, 0, 0, 0, 80, 76,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16, 77,111, 27, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 76,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,196, 3, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 71,111, 27, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,208, 71,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,133,111, 27, 1, 0, 0, 0,112,133,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 71,111, 27, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 48, 72,111, 27, 1, 0, 0, 0,112, 71,111, 27, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 16,133,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48, 72,111, 27, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,144, 72,111, 27, 1, 0, 0, 0,208, 71,111, 27, 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,112,133,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 72,111, 27, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,240, 72,111, 27, 1, 0, 0, 0, 48, 72,111, 27, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 80, 76,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 72,111, 27, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 80, 73,111, 27, 1, 0, 0, 0,144, 72,111, 27, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0,176, 76,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 73,111, 27, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,176, 73,111, 27, 1, 0, 0, 0,240, 72,111, 27, 1, 0, 0, 0, 16, 77,111, 27, 1, 0, 0, 0, 64,147,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 73,111, 27, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,176,202,132, 29, 1, 0, 0, 0, 80, 73,111, 27, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 64,147,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,202,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 16,203,132, 29, 1, 0, 0, 0,176, 73,111, 27, 1, 0, 0, 0,176, 76,111, 27, 1, 0, 0, 0, 16, 77,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,203,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,112,203,132, 29, 1, 0, 0, 0,176,202,132, 29, 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,176, 76,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,203,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,208,203,132, 29, 1, 0, 0, 0, 16,203,132, 29, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 16, 77,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,203,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,203,132, 29, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 80, 76,111, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48,204,132, 29, 1, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 16,205,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 16,133,111, 27, + 1, 0, 0, 0,112,133,111, 27, 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,125,132, 29, 1, 0, 0, 0, 0,125,132, 29, 1, 0, 0, 0, 80, 6,133, 29, 1, 0, 0, 0,176, 7,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 6,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 7,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 7,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 6,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,205,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224, 75,133, 29, + 1, 0, 0, 0, 48,204,132, 29, 1, 0, 0, 0, 64,147,132, 29, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0,176, 76,111, 27, + 1, 0, 0, 0, 16, 77,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, + 99, 4, 0, 0, 6, 6,196, 3,100, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,222,132, 29, + 1, 0, 0, 0,224, 74,133, 29, 1, 0, 0, 0, 16, 9,133, 29, 1, 0, 0, 0,208, 11,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 16, 9,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 10,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,113, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,196, 3, 26, 0,196, 3, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,112, 10,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 11,133, 29, 1, 0, 0, 0, 16, 9,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, 0,224,134,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,255,255,134,196, + 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, 74, 4,203, 0, + 56, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +219, 0, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 74, 4, + 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,221,132, 29, 1, 0, 0, 0, 96,221,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 96,221,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, +110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, +110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,202, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144,219,166, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32,200,166, 29, 1, 0, 0, 0, 0,192,166, 29, 1, 0, 0, 0,160,191,166, 29, 1, 0, 0, 0, - 64,191,166, 29, 1, 0, 0, 0,128,190,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, - 0, 0, 0, 0, 99, 4, 0, 0, 1, 1,188, 3,100, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,111,217, 2, 1, 0, 0, 0, - 96,241,166, 29, 1, 0, 0, 0,128,245,166, 29, 1, 0, 0, 0,112,220,166, 29, 1, 0, 0, 0, 0,240,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,249,201, 20, 1, 0, 0, 0,112, 1,162, 29, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112,220,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,221,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,111, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,188, 3, - 26, 0,188, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -188, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,119,217, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 11,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 10,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 67,154,153, 41,191,205,204,212, 63,154,153,155,191,205,204, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 0, 0, 0, 0, 0, 0, + 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,195, 3, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,208,221,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,226,166, 29, 1, 0, 0, 0, -112,220,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,112,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, - 0, 0,112,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,209, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,209, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -210, 3,143, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -197, 3, 0, 0,100, 4, 0, 0,146, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 0,210, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,116,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,223,166, 29, 1, 0, 0, 0,192,224,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 48,223,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,224,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16,117,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101, -108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, - 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,240,222,132, 29, 1, 0, 0, 0,168, 0, 0, 0, + 1, 0, 0, 0,192, 70,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,223,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 48,225,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,225,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,144,226,132, 29, 1, 0, 0, 0,208,223,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,226,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,240,227,132, 29, 1, 0, 0, 0, 48,225,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,227,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 80,229,132, 29, 1, 0, 0, 0,144,226,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,229,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,227,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 42,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 42,136, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, + 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, + 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, + 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, + 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, +151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, + 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,224,166, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,223,166, 29, 1, 0, 0, 0,144, 38, 21, 27, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, -100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, -100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80,226,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,229,166, 29, 1, 0, 0, 0, -208,221,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -197, 3, 0, 0,100, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,217, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,227,166, 29, 1, 0, 0, 0,176,227,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,176,227,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224,118,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, - 0, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, - 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,229,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0,240,166, 29, 1, 0, 0, 0, 80,226,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, - 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,112,113,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160,230,166, 29, 1, 0, 0, 0,112,238,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,230,166, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 48,232,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 48,232,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,233,166, 29, 1, 0, 0, 0, -160,230,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,254,163, 0, 58, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0,192, 70,133, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,224, 74,133, 29, 1, 0, 0, 0,240,222,132, 29, + 1, 0, 0, 0,208,223,132, 29, 1, 0, 0, 0, 80,229,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,233,166, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 80,235,166, 29, 1, 0, 0, 0, 48,232,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116, -105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116, -105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 72,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 73,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, +126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 73,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 72,133, 29, 1, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, +248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0, 80,235,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,236,166, 29, 1, 0, 0, 0, -192,233,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,189,252,163, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,224, 74,133, 29, + 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 70,133, 29, 1, 0, 0, 0, 32, 72,133, 29, + 1, 0, 0, 0,128, 73,133, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,236,166, 29, 1, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0,112,238,166, 29, 1, 0, 0, 0, 80,235,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97, -103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97, -103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224, 75,133, 29, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,205,132, 29, 1, 0, 0, 0, 16, 77,111, 27, + 1, 0, 0, 0,176, 76,111, 27, 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 99, 4, 0, 0, 1, 1,188, 3,100, 4, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,218,132, 29, 1, 0, 0, 0, 0,220,132, 29, 1, 0, 0, 0,192, 76,133, 29, + 1, 0, 0, 0, 64,217,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 76,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 78,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,111, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,188, 3, 26, 0,188, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,112,238,166, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224,236,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, -109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141,252,163, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 78,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,160, 82,133, 29, 1, 0, 0, 0,192, 76,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,112,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,112,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +209, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +209, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,210, 3,143, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0,146, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,210, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 79,133, 29, + 1, 0, 0, 0, 16, 81,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128, 79,133, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 16, 81,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,240,166, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,229,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 16, 81,133, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 79,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, +111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, +111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 3, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,112,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,160, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,160, 4, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0,151, 29,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,139, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, - 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62, -166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191, -147,231,198, 63, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, 48,180, 81,191,184,158, 81,191,232, 29,176, 63,139,225, 88, 62, - 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, -100, 98, 82, 64, 0, 25, 95, 64,227, 37,139, 62,171,190, 26, 63,112, 12, 16,188, 0, 0, 64, 51,195, 15,188,190,131, 75, 53, 62, -218,125, 81, 63, 0, 0,160,179,115, 77,100,193, 16,173,201, 64,182,148,248,192,203,247,159,192,233, 74, 87, 65,246, 46,190,192, - 89,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, - 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 25, 95,192, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, 48,180, 81,191,184,158, 81,191,232, 29,176, 63,139,225, 88, 62, - 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, -100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, - 0, 0, 0, 0, 0, 0, 0, 0,104, 72,218, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 82,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 84,133, 29, 1, 0, 0, 0, 32, 78,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,156,176, 21, + 1, 0, 0, 0,160,156,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,156,176, 21, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0, 84,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,217,132, 29, 1, 0, 0, 0,160, 82,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, + 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0, +251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,158,176, 21, 1, 0, 0, 0,112,123,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 48,158,176, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,229,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98, +106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98, +106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0, 96,241,166, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,128,245,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -192,242,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,244,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 32,244,166, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,242,166, 29, 1, 0, 0, 0, - 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, -205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, -127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, -128,245,166, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,241,166, 29, 1, 0, 0, 0, -192,242,166, 29, 1, 0, 0, 0, 32,244,166, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, - 0,247,166, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,188,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0, - 48,252,166, 29, 1, 0, 0, 0,144,252,166, 29, 1, 0, 0, 0,240, 2,167, 29, 1, 0, 0, 0, 80, 3,167, 29, 1, 0, 0, 0, - 48, 64,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232, 48, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -112,248,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, -144,249,166, 29, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, - 48,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -240,249,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 16,251,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, -176,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -112,251,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, -192, 0, 0, 0, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 3, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,144,252,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,252,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,240,252,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,253,166, 29, 1, 0, 0, 0, -144,252,166, 29, 1, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 80,253,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,253,166, 29, 1, 0, 0, 0, -240,252,166, 29, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,176,253,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,254,166, 29, 1, 0, 0, 0, - 80,253,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 16,254,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,254,166, 29, 1, 0, 0, 0, -176,253,166, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,112,254,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,254,166, 29, 1, 0, 0, 0, - 16,254,166, 29, 1, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,208,254,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,255,166, 29, 1, 0, 0, 0, -112,254,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 48,255,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,255,166, 29, 1, 0, 0, 0, -208,254,166, 29, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,144,255,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,255,166, 29, 1, 0, 0, 0, - 48,255,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,240,255,166, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 0,167, 29, 1, 0, 0, 0, -144,255,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 80, 0,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 0,167, 29, 1, 0, 0, 0, -240,255,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,176, 0,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 1,167, 29, 1, 0, 0, 0, - 80, 0,167, 29, 1, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 16, 1,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 1,167, 29, 1, 0, 0, 0, -176, 0,167, 29, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,112, 1,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 1,167, 29, 1, 0, 0, 0, - 16, 1,167, 29, 1, 0, 0, 0, 16,248,166, 29, 1, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,208, 1,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 2,167, 29, 1, 0, 0, 0, -112, 1,167, 29, 1, 0, 0, 0,240,249,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 48, 2,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 2,167, 29, 1, 0, 0, 0, -208, 1,167, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,144, 2,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 2,167, 29, 1, 0, 0, 0, - 48, 2,167, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,240, 2,167, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 2,167, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0, 80, 3,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240, 6,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0,112,248,166, 29, 1, 0, 0, 0,208,248,166, 29, 1, 0, 0, 0, -240,249,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, - 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,208,144,217, 2, 1, 0, 0, 0, 96, 82,167, 29, 1, 0, 0, 0, - 96, 82,167, 29, 1, 0, 0, 0, 48, 4,167, 29, 1, 0, 0, 0,144, 5,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128,146,140, 27, 1, 0, 0, 0,176,248,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 48, 4,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 5,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,146,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -144, 5,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, -112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,145,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -240, 6,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176, 15,167, 29, 1, 0, 0, 0, 80, 3,167, 29, 1, 0, 0, 0, - 16,248,166, 29, 1, 0, 0, 0,176,250,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, 48,249,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,129, 7,100, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16,109,217, 2, 1, 0, 0, 0,144, 10,167, 29, 1, 0, 0, 0, 80, 14,167, 29, 1, 0, 0, 0, -208, 7,167, 29, 1, 0, 0, 0, 48, 9,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224,141,162, 21, 1, 0, 0, 0,176, 73,202, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 7,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 48, 9,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,110,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,229,130, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,160,128,132, 29, 1, 0, 0, 0, 48,158,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 9,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 7,167, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, - 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, - 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, - 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,129, 7, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240,109,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,144, 10,167, 29, 1, 0, 0, 0, -173, 0, 0, 0, 1, 0, 0, 0, 80, 14,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40,254,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,160,128,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,130,132, 29, 1, 0, 0, 0,192,229,130, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, +118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, +118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 11,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,240, 12,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,252,163, 0, 59, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 12,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 11,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,130,132, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0,192,131,132, 29, 1, 0, 0, 0,160,128,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,189,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,192,131,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,123,132, 29, 1, 0, 0, 0, 48,130,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, + 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, + 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73, +109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,252,163, 0, 0, 0, 20, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,164, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,164, 4, 28, 1, 0, 0, 0, -157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, -226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, -184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, - 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, -184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,123,132, 29, 1, 0, 0, 0,194, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,131,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116, +105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116, +105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,141,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 64,217,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 0, 0, +128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 3, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 1, 0, 0, 80, 14,167, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 10,167, 29, 1, 0, 0, 0,144, 11,167, 29, 1, 0, 0, 0,240, 12,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, -159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -176, 15,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224, 33,167, 29, 1, 0, 0, 0,240, 6,167, 29, 1, 0, 0, 0, -176,250,166, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 48,252,166, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 23, 2, 0, 0, 8, 8,129, 7,179, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0,176,178,217, 2, 1, 0, 0, 0,176, 20,167, 29, 1, 0, 0, 0,224, 32,167, 29, 1, 0, 0, 0, -144, 16,167, 29, 1, 0, 0, 0, 80, 19,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 67,201, 20, 1, 0, 0, 0,240,172,140, 27, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 16,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0,240, 17,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 38, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, 0, 96,191, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 0, 0, 0,126, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80,181,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 17,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 80, 19,167, 29, 1, 0, 0, 0,144, 16,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, - 0,128,195,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,195,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, - 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, - 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,153, 1,203, 0,135, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6, 0, 0,128, 7, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,153, 1, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,180,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 19,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 17,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,152, 1, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, - 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,165, 6,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 6, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,144,179,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,176, 20,167, 29, 1, 0, 0, 0, -164, 0, 0, 0, 1, 0, 0, 0,192, 28,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -224, 21,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 23,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,191, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,251, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,252, 5, 26, 0,252, 5, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, - 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 5, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 46,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48, 46,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,151, 29,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, + 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, + 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191,147,231,198, 63, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, 48,180, 81,191, +184,158, 81,191,232, 29,176, 63,139,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63,138, 84,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,227, 37,139, 62,171,190, 26, 63,112, 12, 16,188, + 0, 0, 64, 51,195, 15,188,190,131, 75, 53, 62,218,125, 81, 63, 0, 0,160,179,115, 77,100,193, 16,173,201, 64,182,148,248,192, +203,247,159,192,233, 74, 87, 65,246, 46,190,192, 89,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, 48,180, 81,191, +184,158, 81,191,232, 29,176, 63,139,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63,138, 84,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 64, 23,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 24,167, 29, 1, 0, 0, 0,224, 21,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,113, 1, 0, 0, 5, 0, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -160, 24,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 26,167, 29, 1, 0, 0, 0, 64, 23,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, -143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, -111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, - 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 0, 26,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 27,167, 29, 1, 0, 0, 0,160, 24,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, -163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,251, 5, 0, 0, -111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 96, 27,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, -111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 5,113, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,168, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, - 48,168, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,200, 79,145, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, - 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, - 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, - 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, -164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62,241,130,233,191,222,160, 81,191,184,158, 81,191, -117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,119, 15,130, 64,129, 63,228,190, 42, 61,228,190, - 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,112,240,191, 62,108,116, 85, 63, 80,184, 70,188, 0, 0, 46,180, -159, 49,181,189,125,172, 46, 61, 7,213, 73, 62, 0, 64,143,180,182,107, 25,196, 13,135,135, 67, 70, 12,167,195, 71, 0, 72,194, -225, 56, 25, 68, 38, 90,135,195,237,212,166, 67, 84, 2, 72, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, - 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62,241,130,233,191,222,160, 81,191,184,158, 81,191, -117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,119, 15,130, 64,129, 63,228,190, 42, 61,228,190, - 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, -214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 13,114,156, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, + 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,104, 72,218, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6660,875 +6322,1213 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,192, 28,167, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, -224, 32,167, 29, 1, 0, 0, 0,176, 20,167, 29, 1, 0, 0, 0,224, 21,167, 29, 1, 0, 0, 0, 96, 27,167, 29, 1, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,218,132, 29, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0, 0,220,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,165,196, 20, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,164,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, + 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 32, 30,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 31,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, - 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, - 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,164,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128,165,196, 20, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, +246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, + 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, + 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,128, 31,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 30,167, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, - 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, - 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, -122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 0,220,132, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160,218,132, 29, 1, 0, 0, 0,128,165,196, 20, 1, 0, 0, 0,192,164,132, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,200, 0, 0, 0,224, 32,167, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 28,167, 29, 1, 0, 0, 0, 32, 30,167, 29, 1, 0, 0, 0,128, 31,167, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,192,159,176, 21, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 74,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105, +100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0, 0,168,132, 29, 1, 0, 0, 0, 96,168,132, 29, 1, 0, 0, 0,192,174,132, 29, + 1, 0, 0, 0, 32,175,132, 29, 1, 0, 0, 0,224, 50,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0,176,133,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,133,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,231,130, 29, + 1, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 80,231,130, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0,176,133,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,231,130, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0, 80,231,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,166,132, 29, + 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 64,167,196, 20, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,166,132, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,100, 4, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,167,132, 29, + 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,160,167,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,168,132, 29, 1, 0, 0, 0, 64,167,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,168,132, 29, + 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,167,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,168,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,192,168,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,231,130, 29, 1, 0, 0, 0,176,133,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,168,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 32,169,132, 29, 1, 0, 0, 0, 96,168,132, 29, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0,176,133,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,169,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,128,169,132, 29, 1, 0, 0, 0,192,168,132, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0, 80,231,130, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,169,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,224,169,132, 29, 1, 0, 0, 0, 32,169,132, 29, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0, 64,167,196, 20, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,169,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 64,170,132, 29, 1, 0, 0, 0,128,169,132, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0, 32,166,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,170,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,160,170,132, 29, 1, 0, 0, 0,224,169,132, 29, 1, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0,128,166,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,170,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0,171,132, 29, 1, 0, 0, 0, 64,170,132, 29, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0,224,166,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0,171,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 96,171,132, 29, 1, 0, 0, 0,160,170,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 64,167,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,171,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,192,171,132, 29, 1, 0, 0, 0, 0,171,132, 29, 1, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0,160,167,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,171,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 32,172,132, 29, 1, 0, 0, 0, 96,171,132, 29, 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0,160,167,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,172,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,128,172,132, 29, 1, 0, 0, 0,192,171,132, 29, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0, 0,168,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,172,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,224,172,132, 29, 1, 0, 0, 0, 32,172,132, 29, 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0, 0,168,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,172,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 64,173,132, 29, 1, 0, 0, 0,128,172,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 0,168,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,173,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,160,173,132, 29, 1, 0, 0, 0,224,172,132, 29, 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0, 80,133,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,173,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0,174,132, 29, 1, 0, 0, 0, 64,173,132, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0,224,166,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0,174,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 96,174,132, 29, 1, 0, 0, 0,160,173,132, 29, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0,160,167,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,174,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0,192,174,132, 29, 1, 0, 0, 0, 0,174,132, 29, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0, 64,167,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,174,132, 29, 1, 0, 0, 0,193, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,174,132, 29, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0, 64,167,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,175,132, 29, 1, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0, 32,148,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0,176,133,132, 29, + 1, 0, 0, 0, 80,231,130, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96,177,132, 29, 1, 0, 0, 0, 96,177,132, 29, 1, 0, 0, 0, 0,176,132, 29, 1, 0, 0, 0, 32, 16,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,176,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 16,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 16,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,176,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,148,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,156,132, 29, + 1, 0, 0, 0, 32,175,132, 29, 1, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 0,168,132, 29, + 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 99, 0, 0, 0, 15, 15,129, 7,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,151,132, 29, + 1, 0, 0, 0,128,155,132, 29, 1, 0, 0, 0, 0,149,132, 29, 1, 0, 0, 0, 96,150,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 0,149,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,150,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 96,150,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,132, 29, + 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, + 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,129, 7, 74, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 74, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +200, 0, 0, 0,192,151,132, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,128,155,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,192,152,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,154,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 32,154,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,152,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,224, 33,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 64,167, 29, 1, 0, 0, 0, -176, 15,167, 29, 1, 0, 0, 0,112,251,166, 29, 1, 0, 0, 0,144,249,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, -208,251,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, - 2, 2, 80, 3, 75, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,120,217, 2, 1, 0, 0, 0, 64, 40,167, 29, 1, 0, 0, 0, - 48, 63,167, 29, 1, 0, 0, 0,192, 34,167, 29, 1, 0, 0, 0,224, 38,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 99,160, 21, 1, 0, 0, 0,208, 47,202, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -192, 34,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 36,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 3, 26, 0, 80, 3, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, - 25, 2, 0, 0, 50, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,122,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 32, 36,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 37,167, 29, 1, 0, 0, 0,192, 34,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0,192, 7,196, 0, 0, 0, 0, -200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, 49, 2,200, 0, 31, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, - 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 49, 2, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,123,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -128, 37,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 38,167, 29, 1, 0, 0, 0, 32, 36,167, 29, 1, 0, 0, 0, + 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 50,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 88, 3, 0, 0, 48, 50,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, +115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 79, 3, 0, 0, - 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,124,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -224, 38,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37,167, 29, 1, 0, 0, 0, - 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,118, 2, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, - 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,119, 2, 49, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 79, 3, 0, 0, - 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 2, 49, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,121,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, - 64, 40,167, 29, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,240, 45,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 41,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 41,167, 29, 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, - 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,208, 41,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 43,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 38, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, - 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 2, - 26, 0,152, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 2, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128,155,132, 29, 1, 0, 0, 0,158, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,151,132, 29, 1, 0, 0, 0,192,152,132, 29, 1, 0, 0, 0, 32,154,132, 29, + 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224,156,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,169,176, 21, + 1, 0, 0, 0, 32,148,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0, 32,166,132, 29, + 1, 0, 0, 0, 0,168,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 0, 0, 0, + 23, 2, 0, 0, 8, 8,129, 7,179, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,161,132, 29, + 1, 0, 0, 0, 16,215,132, 29, 1, 0, 0, 0,192,157,132, 29, 1, 0, 0, 0,128,160,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,192,157,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,159,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 38, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, 0, 96,191, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 32,159,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,160,132, 29, 1, 0, 0, 0,192,157,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,195,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,195,195, + 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,153, 1,203, 0, +135, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6, 0, 0, +128, 7, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,153, 1, + 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,128,160,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,159,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, + 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,165, 6,153, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +164, 6, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6,153, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +240, 0, 0, 0,224,161,132, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 96,168,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,163,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 85,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0,128,191, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, + 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0,252, 5, 26, 0,252, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,252, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 85,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80, 87,133, 29, + 1, 0, 0, 0, 16,163,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0,113, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 87,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 88,133, 29, + 1, 0, 0, 0,240, 85,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, +231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 88,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,167,176, 21, + 1, 0, 0, 0, 80, 87,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, + 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,251, 5, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,167,176, 21, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,176, 88,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,252, 5,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 54,136, 27, + 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 54,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 79,145, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, + 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, + 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, +241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188, +119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,112,240,191, 62, +108,116, 85, 63, 80,184, 70,188, 0, 0, 46,180,159, 49,181,189,125,172, 46, 61, 7,213, 73, 62, 0, 64,143,180,182,107, 25,196, + 13,135,135, 67, 70, 12,167,195, 71, 0, 72,194,225, 56, 25, 68, 38, 90,135,195,237,212,166, 67, 84, 2, 72, 66, 68,239,209, 62, + 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, +166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, +241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188, +119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, + 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 13,114,156, 58, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48, 43,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 44,167, 29, 1, 0, 0, 0, -208, 41,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 67, - 0,128, 4,196, 0, 0, 64,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,181, 0, - 24, 2,181, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,180, 0, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -181, 0, 24, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,144, 44,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 43,167, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, - 0,128, 4,196, 0, 0, 64,193,210, 1, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,227, 1, - 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -181, 0, 0, 0,151, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 8, 1, 0, 0,240, 45,167, 29, 1, 0, 0, 0, 22, 1, 0, 0, 1, 0, 0, 0, 80, 51,167, 29, 1, 0, 0, 0, - 64, 40,167, 29, 1, 0, 0, 0,208, 41,167, 29, 1, 0, 0, 0,144, 44,167, 29, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,168,176, 21, + 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 16,215,132, 29, 1, 0, 0, 0,224,161,132, 29, 1, 0, 0, 0, 16,163,132, 29, + 1, 0, 0, 0, 0,167,176, 21, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,212,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,176,213,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,213,132, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,212,132, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48, 47,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 48,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, - 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, - 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 16,215,132, 29, 1, 0, 0, 0,173, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,168,176, 21, 1, 0, 0, 0, 80,212,132, 29, 1, 0, 0, 0,176,213,132, 29, + 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,144, 48,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 49,167, 29, 1, 0, 0, 0, - 48, 47,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, - 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0, -164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,240, 49,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 48,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, - 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,192,169,176, 21, 1, 0, 0, 0,195, 0, 0, 0, + 1, 0, 0, 0,224, 50,133, 29, 1, 0, 0, 0,224,156,132, 29, 1, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0,224,166,196, 20, + 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0,160,167,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 3, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 2, 2, 80, 3, 75, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 28,133, 29, 1, 0, 0, 0,224, 49,133, 29, 1, 0, 0, 0,176, 22,133, 29, 1, 0, 0, 0,208, 26,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 22,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16, 24,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 84, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, + 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, + 10, 0, 80, 3, 26, 0, 80, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 25, 2, 0, 0, 50, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 24,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 25,133, 29, + 1, 0, 0, 0,176, 22,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 72, 67, 0,192, 7,196, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, +199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, + 6, 0,217, 0, 49, 2,200, 0, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,217, 0, 49, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,168, 0, 0, 0, 80, 51,167, 29, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 16, 59,167, 29, 1, 0, 0, 0, -240, 45,167, 29, 1, 0, 0, 0, 48, 47,167, 29, 1, 0, 0, 0,240, 49,167, 29, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 48, 52,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 53,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, - 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, - 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,144, 53,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 54,167, 29, 1, 0, 0, 0, - 48, 52,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, -255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, - 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,240, 54,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80, 56,167, 29, 1, 0, 0, 0, -144, 53,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, - 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, -120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 80, 56,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 57,167, 29, 1, 0, 0, 0, -240, 54,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, - 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, -122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,176, 57,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 56,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,172, 4, 28, 1, 0, 0, 0, - 68, 65, 84, 65, 88, 3, 0, 0, 48,172, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, -222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63, -224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, - 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190, -222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63, -129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 25,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 26,133, 29, + 1, 0, 0, 0, 16, 24,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 3, 0, 0, 79, 3, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 26,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,112, 25,133, 29, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, + 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 18, 0, 0, 0, +118, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0,111, 18,131, 58, +111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0,119, 2, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,217, 0, 0, 0, 79, 3, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,119, 2, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 16, 59,167, 29, 1, 0, 0, 0, -158, 0, 0, 0, 1, 0, 0, 0, 48, 63,167, 29, 1, 0, 0, 0, 80, 51,167, 29, 1, 0, 0, 0, 48, 52,167, 29, 1, 0, 0, 0, -176, 57,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, - 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48, 28,133, 29, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,128, 33,133, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 60,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -208, 61,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 61,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112, 60,167, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, -112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, - 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 17,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 17,133, 29, + 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 29,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,192, 30,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 38, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 2, 26, 0,152, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48, 63,167, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 59,167, 29, 1, 0, 0, 0,112, 60,167, 29, 1, 0, 0, 0,208, 61,167, 29, 1, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 30,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 32,133, 29, 1, 0, 0, 0, 96, 29,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 67, 0,128, 4,196, 0, 0, 64,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, + 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, + 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,181, 0, 24, 2,181, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 24, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 32,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 30,133, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0,128, 4,196, 0, 0, 64,193,210, 1, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, + 23, 2, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 18, 0, 0, 0, + 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 0, 0,151, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48, 64,167, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 33,167, 29, 1, 0, 0, 0,208,251,166, 29, 1, 0, 0, 0, 16,251,166, 29, 1, 0, 0, 0, -240,249,166, 29, 1, 0, 0, 0, 80,250,166, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, - 25, 2, 0, 0, 99, 4, 0, 0, 8, 8, 48, 4, 75, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,178,217, 2, 1, 0, 0, 0, - 48, 69,167, 29, 1, 0, 0, 0, 96, 81,167, 29, 1, 0, 0, 0, 16, 65,167, 29, 1, 0, 0, 0,208, 67,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,110,160, 21, 1, 0, 0, 0, 48, 43,201, 20, 1, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 16, 65,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 66,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,135, 68, - 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 4, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,224,156, 68, 0, 0,200, 65, - 0,224,156, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 56, 4, - 24, 0, 56, 4, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80,181,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,128, 33,133, 29, 1, 0, 0, 0, 22, 1, 0, 0, + 1, 0, 0, 0, 16,216,132, 29, 1, 0, 0, 0, 48, 28,133, 29, 1, 0, 0, 0, 96, 29,133, 29, 1, 0, 0, 0, 32, 32,133, 29, + 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,112, 66,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 67,167, 29, 1, 0, 0, 0, - 16, 65,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 34,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 36,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,180,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 36,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,128, 37,133, 29, 1, 0, 0, 0,192, 34,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0, +163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0, +163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,208, 67,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 66,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 74, 2, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 18, 0, 0, 0, 74, 2, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, - 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 48, 4, - 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 4, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,179,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 37,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 36,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, + 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0, +164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,240, 0, 0, 0, 48, 69,167, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 64, 77,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 16,216,132, 29, 1, 0, 0, 0,168, 0, 0, 0, + 1, 0, 0, 0,192, 45,133, 29, 1, 0, 0, 0,128, 33,133, 29, 1, 0, 0, 0,192, 34,133, 29, 1, 0, 0, 0,128, 37,133, 29, + 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 38,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 64, 40,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 70,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -192, 71,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 40,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,160, 41,133, 29, 1, 0, 0, 0,224, 38,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 71,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 32, 73,167, 29, 1, 0, 0, 0, 96, 70,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 41,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 43,133, 29, 1, 0, 0, 0, 64, 40,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 43,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 96, 44,133, 29, 1, 0, 0, 0,160, 41,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 44,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 73,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -128, 74,167, 29, 1, 0, 0, 0,192, 71,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, - 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, - 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 58,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 58,136, 27, 1, 0, 0, 0,157, 0, 0, 0, + 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, + 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, + 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, + 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, + 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, + 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, +151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, + 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 74,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, -224, 75,167, 29, 1, 0, 0, 0, 32, 73,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, - 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 75,167, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 74,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 1, 0, 0,192, 45,133, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,224, 49,133, 29, 1, 0, 0, 0, 16,216,132, 29, + 1, 0, 0, 0,224, 38,133, 29, 1, 0, 0, 0, 96, 44,133, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 47,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 48,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, +126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,176, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,176, 4, 28, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, - 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, - 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, -162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, - 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0, -185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63, -180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62, -147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, -217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53, -215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, - 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, -162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, -180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62, -147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 48,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 47,133, 29, 1, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, +248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, -218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,224, 49,133, 29, + 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 45,133, 29, 1, 0, 0, 0, 32, 47,133, 29, + 1, 0, 0, 0,128, 48,133, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224, 50,133, 29, + 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,169,176, 21, 1, 0, 0, 0,160,167,132, 29, + 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 8, 8, 48, 4, 75, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 55,133, 29, 1, 0, 0, 0, 16, 68,133, 29, 1, 0, 0, 0,192, 51,133, 29, + 1, 0, 0, 0,128, 54,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 51,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 32, 53,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,135, 68, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 4, 0, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 0,224,156, 68, 0, 0,200, 65, 0,224,156, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 56, 4, 24, 0, 56, 4, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 53,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0,128, 54,133, 29, 1, 0, 0, 0,192, 51,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, - 64, 77,167, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 96, 81,167, 29, 1, 0, 0, 0, 48, 69,167, 29, 1, 0, 0, 0, - 96, 70,167, 29, 1, 0, 0, 0,224, 75,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 7, 0, 48,202, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, - 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 78,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 80,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 80,167, 29, 1, 0, 0, 0, -196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 78,167, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, - 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, - 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, - 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 54,133, 29, 1, 0, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 53,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, + 74, 2, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 18, 0, 0, 0, + 74, 2, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 48, 4, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96, 81,167, 29, 1, 0, 0, 0, -173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 77,167, 29, 1, 0, 0, 0,160, 78,167, 29, 1, 0, 0, 0, - 0, 80,167, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,224, 55,133, 29, 1, 0, 0, 0,164, 0, 0, 0, + 1, 0, 0, 0,240, 63,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 67, 0, 0, 40, 6, 0, 0, 48,180, 4, 28, 1, 0, 0, 0, -155, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,202, 4, 28, 1, 0, 0, 0, - 48,192, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 82,167, 29, 1, 0, 0, 0, -160, 83,167, 29, 1, 0, 0, 0,224, 82,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 57,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 58,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0, +250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 58,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 59,133, 29, 1, 0, 0, 0, 16, 57,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 59,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 61,133, 29, 1, 0, 0, 0,112, 58,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, +251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 61,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 62,133, 29, 1, 0, 0, 0,208, 59,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0, +180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 62,133, 29, + 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 61,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, + 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 62,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 62,136, 27, + 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, + 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, +142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, +111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, + 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190, +250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68, +160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, + 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 84,167, 29, 1, 0, 0, 0, 48,116, 22, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, -100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 25, 0,141, 0,128, 7, 56, 4, 8, 0, - 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 23, 0, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, 85,167, 29, 1, 0, 0, 0,176, 85,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0,128, 63, - 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 98, 97, 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240, 63,133, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 16, 68,133, 29, + 1, 0, 0, 0,224, 55,133, 29, 1, 0, 0, 0, 16, 57,133, 29, 1, 0, 0, 0,144, 62,133, 29, 1, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 80, 65,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 66,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,176, 66,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 65,133, 29, + 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, + 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +200, 0, 0, 0, 16, 68,133, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 63,133, 29, + 1, 0, 0, 0, 80, 65,133, 29, 1, 0, 0, 0,176, 66,133, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63, -205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 6, 0, 0, 0, 16, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,109,203, 20, 1, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, - 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 82,167, 29, 1, 0, 0, 0, -131, 0, 0, 0, 1, 0, 0, 0, 64, 83,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0,194, 2,243, 1, 48,208, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 83,167, 29, 1, 0, 0, 0, -131, 0, 0, 0, 1, 0, 0, 0,160, 83,167, 29, 1, 0, 0, 0,224, 82,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 0, 4, 0, 0,144, 3, 47, 3, 48,214, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 83,167, 29, 1, 0, 0, 0, -131, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 83,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 0, 4, 0, 0,156, 0, 83, 2, 48,202, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65,120, 1, 0, 0, 0, 84,167, 29, 1, 0, 0, 0, -151, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, - 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, - 50, 0, 50, 0, 10, 0, 0, 0, 50, 0,100, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, - 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0, -205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 0, 0, 0,176, 85,167, 29, 1, 0, 0, 0,137, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 49, 32, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, -255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,152, 0, 0, 0, 64, 86,167, 29, 1, 0, 0, 0, - 29, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63, -145,137, 68, 66,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 65, 0, 0,248, 1, 0, 0, 48,188, 4, 28, 1, 0, 0, 0, 41, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66, -154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 16, 87,167, 29, 1, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, - 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, -111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 67, 0, 0, + 40, 6, 0, 0, 48, 66,136, 27, 1, 0, 0, 0,155, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, + 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 68,132, 27, 1, 0, 0, 0, 48, 58,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,224, 17,133, 29, 1, 0, 0, 0,112, 69,133, 29, 1, 0, 0, 0,224, 17,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,161,176, 21, 1, 0, 0, 0, 48, 26,139, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 6, 0, 25, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, + 81, 0, 0, 0, 23, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 69,133, 29, 1, 0, 0, 0,208, 69,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0,200, 66, 0, 0,200, 66, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 98, 97, + 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 88,167, 29, 1, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 16, 87,167, 29, 1, 0, 0, 0, - 75, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, -243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,144,118,161, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 24, 0, 0, 0,144,118,161, 29, 1, 0, 0, 0, 73, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 88,167, 29, 1, 0, 0, 0, - 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,224, 1, 0, 0, 48,192, 4, 28, 1, 0, 0, 0, -130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61, 0, 0, 0, 0,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, - 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 62, 6, 0, 0, 0, 16, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, + 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, + 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 0, 0,176, 0, 0, 0,224, 88,167, 29, 1, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,240,174,135, 29, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, + 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, +180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,224, 17,133, 29, 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0, 16, 69,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,194, 2,243, 1, 48, 74,132, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 16, 69,133, 29, 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0,112, 69,133, 29, 1, 0, 0, 0,224, 17,133, 29, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0,144, 3, 47, 3, 48, 80,132, 27, 1, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,112, 69,133, 29, 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 69,133, 29, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,156, 0, 83, 2, 48, 68,132, 27, 1, 0, 0, 0, 68, 65, 84, 65, +120, 1, 0, 0,112,161,176, 21, 1, 0, 0, 0,151, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, + 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0,100, 0, 10, 0, 0, 0, 50, 0, 50, 0, + 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, + 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 0, 0, 0,208, 69,133, 29, 1, 0, 0, 0,137, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97,121,101,114, 0, +114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0,255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0, +152, 0, 0, 0, 32,163,176, 21, 1, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101, +114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,145,137, 68, 66,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,248, 1, 0, 0, 48, 54,132, 27, 1, 0, 0, 0, 41, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 65, 83,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,240,163,176, 21, + 1, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 88, 84,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0,208, 89,167, 29, 1, 0, 0, 0, -208, 89,167, 29, 1, 0, 0, 0,208, 89,167, 29, 1, 0, 0, 0,208, 89,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,196, 4, 28, 1, 0, 0, 0,255,255,255,255, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 89,167, 29, 1, 0, 0, 0, - 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,209,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, 4, 0, 0, 0, 96,209,163, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 79, 66, 0, 0,152, 4, 0, 0, 48,202, 4, 28, 1, 0, 0, 0,119, 0, 0, 0, - 1, 0, 0, 0, 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 86,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,165,176, 21, 1, 0, 0, 0, 68, 65, 84, 65, + 56, 1, 0, 0,240,163,176, 21, 1, 0, 0, 0, 75, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, + 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,224,177,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63, -222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, - 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, - 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, - 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63, 0, 0,128, 63,157,190,215, 49, -167,170, 4, 52, 0, 0, 0,128,129,116,157,178, 1, 0,128, 63, 33, 69, 15, 51, 0, 0, 0,128, 73,254, 67, 51,243, 97,106, 49, - 0, 0,128, 63, 0, 0, 0,128, 3, 0, 64, 52,183,164,157, 39, 0, 0,128, 53, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, - 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,177,132, 29, 1, 0, 0, 0, 73, 1, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 96,165,176, 21, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0, +224, 1, 0, 0, 48, 58,132, 27, 1, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61, 0, 0, 0, 0,199, 54, 36, 60, +199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0, +128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, + 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, -152, 4, 0, 0, 48,208, 4, 28, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 48,214, 4, 28, 1, 0, 0, 0, 48,202, 4, 28, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 9,200, 20, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 0, 0,176, 0, 0, 0, 0,196,132, 29, + 1, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 84,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 1, 0, 0, 0,192,165,176, 21, 1, 0, 0, 0,192,165,176, 21, 1, 0, 0, 0,192,165,176, 21, 1, 0, 0, 0,192,165,176, 21, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 62,132, 27, + 1, 0, 0, 0,255,255,255,255, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,192,165,176, 21, 1, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 90,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, + 4, 0, 0, 0, 16, 90,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 79, 66, 0, 0,152, 4, 0, 0, + 48, 68,132, 27, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, + 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,163,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 6,163, 29, - 1, 0, 0, 0, 64,213,163, 29, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, + 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63,222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, 0, 0, 0,128, 86,126,162,190,227,251,159, 62, - 56, 53,101, 63, 0, 0, 0,128, 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, 0, 0, 0,128,110,101,239, 64,151, 62,208,192, - 77,255,170, 64, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, - 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, + 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, + 0, 0,128, 63, 0, 0,128, 63,157,190,215, 49,167,170, 4, 52, 0, 0, 0,128,129,116,157,178, 1, 0,128, 63, 33, 69, 15, 51, + 0, 0, 0,128, 73,254, 67, 51,243, 97,106, 49, 0, 0,128, 63, 0, 0, 0,128, 3, 0, 64, 52,183,164,157, 39, 0, 0,128, 53, + 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, + 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,108, 5, 28, 1, 0, 0, 0, 48,112, 5, 28, 1, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 64, 6,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 64,213,163, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, 48,214, 4, 28, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48,208, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, 48, 74,132, 27, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, + 48, 80,132, 27, 1, 0, 0, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,188, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,118,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,171,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,160,176, 21, 1, 0, 0, 0,128,125,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, - 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, - 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, - 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, - 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 53,236,148,190,222,102, 69,191, 37,255, 16, 63, - 0, 0, 0,128, 24,134,116, 63, 57,174, 76,190,240,161, 95, 62, 0, 0, 0,128,235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63, - 0, 0, 0,128,208, 19, 13, 63,234, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, - 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, + 0, 0, 0,128, 86,126,162,190,227,251,159, 62, 56, 53,101, 63, 0, 0, 0,128, 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, + 0, 0, 0,128,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0, 143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,244,138, 27, 1, 0, 0, 0, 48,248,138, 27, 1, 0, 0, 0, + 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, +208,160,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, +128,125,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, 48, 80,132, 27, + 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, - 48,220, 4, 28, 1, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, - 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, - 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 3, - 67, 0, 0, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63, -205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 48, 90,167, 29, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 54,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, + 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, + 53,236,148,190,222,102, 69,191, 37,255, 16, 63, 0, 0, 0,128, 24,134,116, 63, 57,174, 76,190,240,161, 95, 62, 0, 0, 0,128, +235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63, 0, 0, 0,128,208, 19, 13, 63,234, 65,102,190, 10, 10,231,192, 0, 0,128, 63, + 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63, +205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, + 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, 48, 86,132, 27, 1, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97, +116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 3, 67, 0, 0, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63,240,196,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61, -102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 48, 90,167, 29, 1, 0, 0, 0, - 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,166,176, 21, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63, +111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 16, 1, 0, 0,240,196,132, 29, 1, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64,198,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, -128, 91,167, 29, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 48, 28, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, - 48, 28, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, - 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, - 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, - 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, - 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, - 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, - 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, - 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, - 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, - 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, - 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, - 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, - 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, - 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, - 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, - 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, - 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, - 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, - 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, - 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, - 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, - 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, - 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, - 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, - 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, - 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, - 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, - 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, - 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, - 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, - 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, - 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, - 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, - 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, - 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, - 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, - 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, - 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, - 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255, -104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255, -103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, - 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, - 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255, -112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255, -110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, - 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, - 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255, -118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255, -118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, - 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, - 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255, -125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255, -129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, - 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, - 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255, -131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255, -148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, - 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, - 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255, -136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255, -177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, - 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, - 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255, -142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255, -216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, - 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, - 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255, -146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255, -254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255, -103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, - 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255, -149,149,149,255,154,154,154,255,157,157,157,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255, -255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255, -106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, - 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255, -152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255, -255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255, -110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, - 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255, -153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255, -234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255, -112,112,112,255,105,105,105,255, 98, 98, 98,255, 91, 91, 91,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, - 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255, -151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255, -202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255, -114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, - 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102, -145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255, -179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255, -115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, - 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255, -167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255, -115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, - 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255, -163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255, -113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255, -160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255, -110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255, -154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255, -104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255, -140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, - 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, - 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,104, 1, 0, 0,224, 91,167, 29, 1, 0, 0, 0, - 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, - 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 93,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 93,167, 29, 1, 0, 0, 0, - 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 48, 46, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 48, 46, 9, 28, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, 32,166,176, 21, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 48, 90,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 48, 90,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, + 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, + 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, + 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, + 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, + 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, + 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, + 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, + 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, + 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, + 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, + 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, + 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, + 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, + 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, + 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, + 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, + 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, + 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, + 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, + 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, + 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, + 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, + 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, + 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, + 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, + 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, + 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, + 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, + 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, + 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, + 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, + 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255, +102,102,102,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, + 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, + 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, + 80, 80, 80,255, 93, 93, 93,255,100,100,100,255,104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255, +109,109,109,255,107,107,107,255,106,106,106,255,103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, + 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, + 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, + 89, 89, 89,255,100,100,100,255,107,107,107,255,112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255, +115,115,115,255,114,114,114,255,112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, + 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, + 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, + 95, 95, 95,255,107,107,107,255,114,114,114,255,118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255, +122,122,122,255,122,122,122,255,120,120,120,255,118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, + 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, + 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153, +101,101,101,255,113,113,113,255,120,120,120,255,125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255, +131,131,131,255,131,131,131,255,131,131,131,255,129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255, +103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, + 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153, +106,106,106,255,118,118,118,255,126,126,126,255,131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255, +142,142,142,255,147,147,147,255,149,149,149,255,148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255, +108,108,108,255,102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, + 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102, +109,109,109,255,123,123,123,255,131,131,131,255,136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255, +156,156,156,255,168,168,168,255,176,176,176,255,177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255, +114,114,114,255,107,107,107,255,101,101,101,255, 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, + 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51, +110,110,110,255,127,127,127,255,136,136,136,255,142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255, +174,174,174,255,195,195,195,255,212,212,212,255,216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255, +121,121,121,255,112,112,112,255,106,106,106,255, 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, + 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0, +107,107,107,255,130,130,130,255,140,140,140,255,146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255, +191,191,191,255,219,219,219,255,246,246,246,255,254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255, +127,127,127,255,117,117,117,255,110,110,110,255,103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, + 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, + 65, 65, 65,153,129,129,129,255,142,142,142,255,149,149,149,255,154,154,154,255,157,157,157,255,163,163,163,255,176,176,176,255, +199,199,199,255,232,232,232,255,255,255,255,255,255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255, +132,132,132,255,121,121,121,255,113,113,113,255,106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, + 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, + 21, 21, 21, 51,127,127,127,255,143,143,143,255,152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255, +198,198,198,255,227,227,227,255,253,253,253,255,255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255, +135,135,135,255,124,124,124,255,117,117,117,255,110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, + 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255,153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255, +188,188,188,255,209,209,209,255,228,228,228,255,234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255, +136,136,136,255,127,127,127,255,119,119,119,255,112,112,112,255,105,105,105,255, 98, 98, 98,255, 91, 91, 91,255, 83, 83, 83,255, + 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255,151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255, +178,178,178,255,189,189,189,255,200,200,200,255,202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255, +137,137,137,255,129,129,129,255,121,121,121,255,114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, + 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255, +172,172,172,255,176,176,176,255,180,180,180,255,179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255, +137,137,137,255,130,130,130,255,122,122,122,255,115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, + 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255, +169,169,169,255,170,170,170,255,169,169,169,255,167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255, +137,137,137,255,130,130,130,255,123,123,123,255,115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, + 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255, +167,167,167,255,167,167,167,255,166,166,166,255,163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255, +137,137,137,255,129,129,129,255,121,121,121,255,113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, + 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255, +161,161,161,255,163,163,163,255,162,162,162,255,160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255, +135,135,135,255,127,127,127,255,119,119,119,255,110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, + 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255, +148,148,148,255,154,154,154,255,155,155,155,255,154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255, +130,130,130,255,122,122,122,255,114,114,114,255,104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 73, 73,153,103,103,103,204,137,137,137,255,140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255, +120,120,120,255,113,113,113,255,102,102,102,255, 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, + 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0, +104, 1, 0, 0, 64,198,132, 29, 1, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, + 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,199,132, 29, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,224,199,132, 29, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 48,108,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 0, 16, 0, 0, 48,108,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, @@ -7656,92 +7656,90 @@ char datatoc_B_blend[]= { 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, - 0, 0, 0,255, 0, 0, 0,255, 77, 69, 0, 0,144, 1, 0, 0,224, 93,167, 29, 1, 0, 0, 0, 54, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,142,161, 29, 1, 0, 0, 0, 96,102,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 97,167, 29, 1, 0, 0, 0,240, 99,167, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 95,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 98,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,100,167, 29, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 1, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,112,142,161, 29, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 48,220, 4, 28, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,176, 95,167, 29, 1, 0, 0, 0, - 78, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 97,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 77, 69, 0, 0,144, 1, 0, 0, 48,171,109, 27, + 1, 0, 0, 0, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,116,110, 27, + 1, 0, 0, 0,224,184,135, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,174,109, 27, + 1, 0, 0, 0, 64,177,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173,109, 27, + 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,175,109, 27, + 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,178,109, 27, + 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, + 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, + 30, 0, 4, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 8, 0, 0, 0,224,116,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 48, 86,132, 27, 1, 0, 0, 0, 68, 65, 84, 65, +104, 1, 0, 0, 0,173,109, 27, 1, 0, 0, 0, 78, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,174,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0, 80, 97,167, 29, 1, 0, 0, 0, - 60, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0, - 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255,127, 1, 0, 0, 0, 1, 0,128,191,253,255,127,191, - 0, 0,128,191, 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, - 26,182,255,127, 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0, -245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, 1, 0, 0, 0, 3, 0,128,191,250,255,127,191, - 0, 0,128, 63, 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73, -230, 73,255,127, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, 80, 98,167, 29, 1, 0, 0, 0, 78, 1, 0, 0, 5, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 99,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +192, 0, 0, 0,160,174,109, 27, 1, 0, 0, 0, 60, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191, +230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255,127, + 1, 0, 0, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,250,255,127,191, + 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182,255,127, 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63, +230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, + 1, 0, 0, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,255,255,127,191, + 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73,255,127, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,160,175,109, 27, + 1, 0, 0, 0, 78, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,177,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,240, 99,167, 29, 1, 0, 0, 0, 57, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, - 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,192,100,167, 29, 1, 0, 0, 0, - 78, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,102,167, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 64,177,109, 27, + 1, 0, 0, 0, 57, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, + 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, +104, 1, 0, 0, 16,178,109, 27, 1, 0, 0, 0, 78, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,184,135, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0, 96,102,167, 29, 1, 0, 0, 0, - 56, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, - 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, - 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, - 85, 83, 69, 82,160, 11, 0, 0, 96, 76,251, 1, 1, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 33,152, 1, 0, 63, 2, 0, 0, - 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +120, 0, 0, 0,224,184,135, 29, 1, 0, 0, 0, 56, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, 85, 83, 69, 82,160, 11, 0, 0,224,252,251, 1, 1, 0, 0, 0,190, 0, 0, 0, + 1, 0, 0, 0, 33,152, 1, 0, 63, 2, 0, 0, 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, 47, 0, 45,112,111,119,101,114, -112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,110,116,115, 47, 82,101,115,111, -117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115, +107,116,111,112, 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67, +111,110,116,101,110,116,115, 47, 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7759,9 +7757,9 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7769,22 +7767,22 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 48, 52, 6, 1, 0, 0, 0, 0, 5, 0, 2, 0, 0, 8, 0, 0, - 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, - 48, 76, 9, 28, 1, 0, 0, 0, 48,100, 9, 28, 1, 0, 0, 0, 16, 91,160, 21, 1, 0, 0, 0, 16, 91,160, 21, 1, 0, 0, 0, - 96, 92,160, 21, 1, 0, 0, 0, 96, 92,160, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63, -205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191,154,153,153, 62, -102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0, -205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 0, 0, 25, 0, 15, 0, -120, 0, 60, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 15, 0, 8, 0, 10, 0,250, 0, 0, 0, -100, 0,100, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 48, 52, 6, 1, + 0, 0, 0, 0, 1, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, + 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, 48, 98, 21, 3, 1, 0, 0, 0, 48,122, 21, 3, 1, 0, 0, 0, 0, 72,128, 29, + 1, 0, 0, 0, 0, 72,128, 29, 1, 0, 0, 0, 80, 73,128, 29, 1, 0, 0, 0, 80, 73,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, + 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 30, 90,100,191,154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, + 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, + 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, + 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, + 0, 0, 0, 0, 14, 0, 0, 0, 25, 0, 15, 0,120, 0, 60, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, + 6, 0, 15, 0, 8, 0, 10, 0,250, 0, 0, 0,100, 0,100, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7792,2229 +7790,2234 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, - 48, 76, 9, 28, 1, 0, 0, 0,188, 0, 0, 0, 1, 0, 0, 0, 48,100, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, - 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, - 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, - 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, - 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, - 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, - 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, - 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, - 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, - 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, - 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, -115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, - 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, - 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, -255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, - 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, - 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255, -255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255, -124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, - 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, - 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, -255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, - 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, - 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255, -255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 82, 96,110,255, -124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, - 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255, -126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, - 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, -255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,255,255,255, 10,255,133, 0, 60, -255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, - 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, - 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, - 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, -255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 4, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, - 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, - 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, -255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, - 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,155,155,155,160,100,100,100,255, -108,105,111,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, - 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255, -255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60, -255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, - 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, -255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, - 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0, -169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, - 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0, -244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0, -111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0, -141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, - 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, 48,100, 9, 28, 1, 0, 0, 0,188, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 76, 9, 28, 1, 0, 0, 0, 82,111,117,110,100,101,100, 0, 0,101,119, 32, 85,115,101,114, - 32, 84,104,101,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, - 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, - 0, 0, 0,255,255,255,255,255, 1, 0, 25, 0,231,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, - 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255, -255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, - 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, - 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, - 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, -255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, - 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 46,124,217,204,255,255,255,255, -255,255,255,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255, -255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -175,175,175, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, - 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, -255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, - 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, -255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,130, 0,255, 88, 88, 88,255, - 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, -255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, 48, 98, 21, 3, 1, 0, 0, 0,188, 0, 0, 0, 1, 0, 0, 0, 48,122, 21, 3, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, +255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, +255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, +255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, + 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255, +255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, +255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, +255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255, +255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255, +204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, + 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255, +255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, + 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, +255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255, +255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255, +153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, + 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255, +250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, +112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, +135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255, +127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255, +255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, +112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, +135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128, +255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, + 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,110,110,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255, +198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, + 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255, +127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0,155,155,155,160,100,100,100,255,108,105,111,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, + 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, + 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, +241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, + 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255, +246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, + 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, + 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255, +106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, + 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255, +127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255, +139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, 48,122, 21, 3, + 1, 0, 0, 0,188, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 98, 21, 3, 1, 0, 0, 0, 82,111,117,110, +100,101,100, 0, 0,101,119, 32, 85,115,101,114, 32, 84,104,101,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, +153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, +153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 25, 0,231,255, 0, 0, 25, 25, 25,255, +153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, + 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, + 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, +180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255, +180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, + 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, + 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, + 25, 25, 25,230, 46,124,217,204,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, + 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,175,175,175, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255, +217,217,217,255, 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, + 0, 0, 0,255,255,255,255,255,230,150, 50,255,255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100,255,130, 0,255, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -107,107,107,100,143,143,143,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, - 79,101, 73,255,135,177,125,255,255,255,255,255,255,255,255,255,255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,130, 0,255, 2, 0, 0, 0, 0, 0, 0, 0, -114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, - 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, -255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,150, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,100,143,143,143,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255, +255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,135,177,125,255,255,255,255,255,255,255,255,255,255,130, 0,255, + 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, +255,130, 0,255, 2, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255, +255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, + 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255,178,178,178,100,255,130, 0,100, 94, 94, 94,255, - 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,135,177,125,255,255,255,255,255,255,112,255,255, -255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,143,143,255,200,100,200, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,204,255,255,170,204, 96,192, 64,255, 82, 96,110,255, -124,137,150,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -143,143,143,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -107,107,107,255,178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -228,156,198,255,255,255,170,255, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, - 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, -255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255, -109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, - 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, -255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255, +178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255, +135,177,125,255,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,143,143,143,255,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,204, +255,255,170,204, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,143,143,143,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255,178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255, +255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, + 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,255,255,255,170,255, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, + 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255, +162, 95,111,255,109,145,131,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255, +255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, + 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60,255,133, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255, +127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -153,153,153,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -143,143,143,255,198,119,119,255,255, 0, 0,255, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,100, 0, 0,255, 0, 0,200,255, -128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, - 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255, -255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,153,153,153,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 88, 88, 88,255, 0, 0, 0,255, +255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, + 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255, +255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, + 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, - 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, - 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,130, 0,255, 0, 0, 0,255, -255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60, -255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 4, 0, 0,150,150,150,255,129,131,144,255,127,127,127,255,142,138,145,255,120,145,120,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255, -107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, - 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, -255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114,114,114,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, -145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, - 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0, -247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, - 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, - 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, - 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, - 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0, -108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0, -131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49,216,230, 0, 0, - 48, 80,221, 28, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 63, 11, 0, 0, 42,110,101,120, -116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, - 0,119, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0, -103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, - 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101, -110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105, -100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, - 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,116,111,116, 0, -112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, - 0,112, 97,100, 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112, -101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97, -120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0, -101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100, -101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115, -104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101, -108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105, -100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108, -101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102, -114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, - 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,102,108, 97,103,115, 0, 99,111,108,111, -114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, - 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110, -100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108, -101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, - 97, 0, 97,110,103,108,101, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116, -104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, - 89, 70, 95,100,111,102,100,105,115,116, 0, 89, 70, 95, 97,112,101,114,116,117,114,101, 0, 89, 70, 95, 98,107,104,116,121,112, -101, 0, 89, 70, 95, 98,107,104, 98,105, 97,115, 0, 89, 70, 95, 98,107,104,114,111,116, 0, 42,100,111,102, 95,111, 98, 0,102, -114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, - 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, - 0,109,101,110,117,110,114, 0, 42,115, 99,101,110,101, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, - 0, 42, 97,110,105,109, 0, 42,114,114, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103, -101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119, -101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108, -101, 0, 42,112,114,101,118,105,101,119, 0, 42,114,101,110,100,101,114, 95,116,101,120,116, 0,108, 97,115,116,117,112,100, 97, -116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95, -121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, - 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, - 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97, -112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, - 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114, -109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95, -109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, - 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, - 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102, -102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121, -109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116, -102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, - 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101, -110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, - 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108, -102, 97, 99, 0,112,118,101,108,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122, -101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97, -110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, - 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, - 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, - 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, - 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, - 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101, -115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95, -116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108, -111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112, -115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42, -112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122, -101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111, -105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112, -101,101,100, 95,115, 99, 97,108,101, 0, 42, 99,111, 98, 97, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95, -116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,105,110,116, 95,109,117,108,116, -105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 50, - 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114, -105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108, -116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99, -116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111, -117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, - 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116, -121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97, -115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, - 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102, -105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99, -107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112, -108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, - 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, - 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0, -115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111, -116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111, -102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101, -115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117, -102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, - 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97, -121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, - 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114, -101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, - 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100, -116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115, -117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116, -101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, - 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97, -116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99, -101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114, -101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 0, 89, 70, 95,110,117,109,112,104,111,116, -111,110,115, 0, 89, 70, 95,110,117,109,115,101, 97,114, 99,104, 0, 89, 70, 95,112,104,100,101,112,116,104, 0, 89, 70, 95,117, -115,101,113,109, 99, 0, 89, 70, 95, 98,117,102,115,105,122,101, 0, 89, 70, 95,112, 97,100, 0, 89, 70, 95, 99, 97,117,115,116, -105, 99, 98,108,117,114, 0, 89, 70, 95,108,116,114, 97,100,105,117,115, 0, 89, 70, 95,103,108,111,119,105,110,116, 0, 89, 70, - 95,103,108,111,119,111,102,115, 0, 89, 70, 95,103,108,111,119,116,121,112,101, 0, 89, 70, 95,112, 97,100, 50, 0, 42,109,116, -101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 91, 51, 93, 0,100,101,110,115,105,116,121, - 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0, -101,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, - 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, - 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115, -105,122,101, 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114, -101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105, -102,102, 0,109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,116,101,112,115, 0,109, 97,116,101,114,105, 97, -108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105, -114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, - 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, - 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, - 0,102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110, -101,108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108, -105,109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101, -112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105, -114, 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95, -103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, - 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, - 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95, -108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122, -101, 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115, -116,114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, - 0,115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110, -100, 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98, -105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115, -101,108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, - 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104, -110,101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115, -115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111, -108, 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, - 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, - 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105, -111,110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, - 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115, -115,115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99, -111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, - 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101, -120,116,117,114,101,100, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, - 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111, -108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97, -100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116, -101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122, -101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, - 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0, -102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115, -118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, - 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105, -110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, - 0,104, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114, -111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0, -100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,112, 97,100, 91, 50, 93, 0,116,119,105,115,116, - 95,115,109,111,111,116,104, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101, -120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, - 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, 98,112, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110, -103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, - 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116, -104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108, -121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102, -111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111, -120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99, -117,114,105,110,102,111, 0,101,102,102,101, 99,116, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, - 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42, -109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105, -116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, - 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0,101,100,105,116, -102,108, 97,103, 0, 99,117, 98,101,109, 97,112,115,105,122,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100, -105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0, 42,109,114, 0, 42,112,118, 0, 42, -116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108, -101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97, -115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, - 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0, -105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, - 0,109,105,100, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103,101, -115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114,114, -101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101,114, -108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114, -101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, - 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0, -115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, - 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, - 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, - 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111, -102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, - 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108, -101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97, -108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, - 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, - 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0, 42,116,101,120,116,117,114, -101, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0,116,101, -120,109, 97,112,112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109, -101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, - 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, - 97,115,112,101, 99,116,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101, -112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, - 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102, -102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109, -117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112, 97,114,101, -110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116, -105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97, -114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, - 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110, -101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, - 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42, -100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108, -117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110, -100, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110, -102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100, -115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, - 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121, -115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0, -112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, - 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0, 42,117,110,100,111, 95,118,101,114,116,115, 0,117,110,100,111, - 95,118,101,114,116,115, 95,116,111,116, 0,117,110,100,111, 95,115,105,103,110, 97,108, 0,108,118,108, 0,116,111,116,108,118, -108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, - 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, - 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, - 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111, -114,105,103,105,110, 79,112,116,115, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112, -110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0, -100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97, -116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117, -108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, - 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114, -111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, - 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,100, -101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, - 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115, -105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, - 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108, -101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,108, 97,121, - 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116, -114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0, -105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100,116, -121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0,115, -102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116,111, -114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101, -108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,114, -111,116,109,111,100,101, 0,100,116, 0,100,116,120, 0,101,109,112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, - 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112, -114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114, -115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101, -102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, - 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105, -112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100, -117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, - 97,103, 0,115,104, 97,112,101,110,114, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100, -121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101, -100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97, -115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105, -100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114, -105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, - 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97, -112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0, -102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0, -102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95, -114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114, -100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114, -102,114,105, 99,116, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101, -102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117, -109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, - 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110, -111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114, -116, 91, 51, 93, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42, -105,110,100,101,120, 95, 97,114,114, 97,121, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,115,116,101, -112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101, -100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101, -118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0,109,101, -109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, - 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110, -115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97, -116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, - 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, - 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, - 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115, -105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101, -108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, - 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109, -101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107, -108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103, -111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, - 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0, -102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, - 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, - 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107, -101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, - 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110, -108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112, -108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104, -101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102, -101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, - 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, - 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114, -101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77, -111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, - 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111, -110,101,110,116, 0,103,114, 97,118,120, 0,103,114, 97,118,121, 0,103,114, 97,118,122, 0, 97,110,105,109, 83,116, 97,114,116, - 0, 97,110,105,109, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, - 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 83, -117,114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, - 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0, -100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97, -114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101, -114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115, -117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97, -114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115, -104, 83,117,114,102, 78,111,114,109, 97,108,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109, -101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101, -110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121, -102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117, -115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114, -103, 0,104,111,114, 98, 0,104,111,114,107, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,122,101,110,107, 0, - 97,109, 98,107, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0, -108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111, -120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121, -115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0, -112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115, -116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115, -116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0, -115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102, -101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, - 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, - 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97, -111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111, -114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, - 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, - 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101, -116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, - 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, - 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121, -112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, - 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, - 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, - 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, - 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97, -108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68, -101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97, -116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107, -101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0, -118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105, -111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0, -114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101, -114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0, -109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112, -108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111, -118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115, -107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, - 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101, -116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105, -109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, - 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99, -114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, - 0,114,116, 50, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110, -115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0, -120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,119,105,110,112,111,115, 0,112,108, 97,110,101,115, 0,105,109,116,121, -112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, - 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112, -116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101, -114, 0,111, 99,114,101,115, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100, -103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121, -101,114,115, 0, 97, 99,116,108, 97,121, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115, -101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, - 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116, -121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, - 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107, -101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98, -105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0, 71, 73,113,117, 97,108,105,116,121, 0, 71, 73, 99, 97, 99, -104,101, 0, 71, 73,109,101,116,104,111,100, 0, 71, 73,112,104,111,116,111,110,115, 0, 71, 73,100,105,114,101, 99,116, 0, 89, - 70, 95, 65, 65, 0, 89, 70,101,120,112,111,114,116,120,109,108, 0, 89, 70, 95,110,111, 98,117,109,112, 0, 89, 70, 95, 99,108, - 97,109,112,114,103, 98, 0,121,102,112, 97,100, 49, 0, 71, 73,100,101,112,116,104, 0, 71, 73, 99, 97,117,115,100,101,112,116, -104, 0, 71, 73,112,105,120,101,108,115,112,101,114,115, 97,109,112,108,101, 0, 71, 73,112,104,111,116,111,110, 99,111,117,110, -116, 0, 71, 73,109,105,120,112,104,111,116,111,110,115, 0, 71, 73,112,104,111,116,111,110,114, 97,100,105,117,115, 0, 89, 70, - 95,114, 97,121,100,101,112,116,104, 0, 89, 70, 95, 65, 65,112, 97,115,115,101,115, 0, 89, 70, 95, 65, 65,115, 97,109,112,108, -101,115, 0,121,102,112, 97,100, 50, 0, 71, 73,115,104, 97,100,111,119,113,117, 97,108,105,116,121, 0, 71, 73,114,101,102,105, -110,101,109,101,110,116, 0, 71, 73,112,111,119,101,114, 0, 71, 73,105,110,100,105,114,112,111,119,101,114, 0, 89, 70, 95,103, - 97,109,109, 97, 0, 89, 70, 95,101,120,112,111,115,117,114,101, 0, 89, 70, 95,114, 97,121, 98,105, 97,115, 0, 89, 70, 95, 65, - 65,112,105,120,101,108,115,105,122,101, 0, 89, 70, 95, 65, 65,116,104,114,101,115,104,111,108,100, 0, 98, 97, 99,107, 98,117, -102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, - 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, - 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105, -109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97, -114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105, -116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112, -114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111, -109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101, -115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99, -108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108, -101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112, -116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0, -100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0, 42, 42, 98,114,117,115,104,101,115, 0, 97, 99,116,105,118,101, - 95, 98,114,117,115,104, 95,105,110,100,101,120, 0, 98,114,117,115,104, 95, 99,111,117,110,116, 0, 42,112, 97,105,110,116, 95, - 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, - 0,116,111,111,108, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0, 42,112, - 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100, -100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100, -105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101, -112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, - 0,112,105,118,111,116, 91, 51, 93, 0,116, 97, 98,108,101,116, 95,115,105,122,101, 0,116, 97, 98,108,101,116, 95,115,116,114, -101,110,103,116,104, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, - 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111, -114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105, -116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0, -110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105, -110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97, -100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103, -105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, - 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111, -100,101, 0,117,118, 95,112, 97,100, 91, 50, 93, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97, -112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, - 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111, -107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, 95,109,111,100, -101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,108,108, -105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,101,115, - 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107, -103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114, -101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116, -105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108, -101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0, -115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114, -103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, -108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115, -116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, - 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107, -103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95, -108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99, -104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101, -110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114, -103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0, -115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115, -116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97, -112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0, -112,114,111,112, 95,109,111,100,101, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,105,110,116,112, 97,100, 0, -116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118, -101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103, -116,104, 0,115,121,115,116,101,109, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0, 42, 99, 97,109,101,114, 97, 0, 42,119,111, -114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117, -114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, - 91, 51, 93, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100, -105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0,115,111,117,110,100, 95,104, 97,110,100,108,101, -115, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,106,117, -109,112,102,114, 97,109,101, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101, -121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103, -115, 0, 98,108,101,110,100, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, - 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112, -101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114, -115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97, -116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97, -109,122,111,111,109, 0,118,105,101,119, 98,117,116, 0,114,102,108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114, -115,112, 0,118,105,101,119, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, - 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,114,101,116,111,112,111, - 95,118,105,101,119, 95,100, 97,116, 97, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95, -116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0, -114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, - 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110, -116,114,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51, 50, 93, 0,108, 97, -121, 97, 99,116, 0,100,114, 97,119,116,121,112,101, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,112, -105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,103,114,105,100,118,105,101,119, 0,112, 97,100,102, 0,110,101, 97, -114, 0,102, 97,114, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,102,108, 97,103, 0,103,114,105,100,115,117, 98, -100,105,118, 0,109,111,100,101,115,101,108,101, 99,116, 0,107,101,121,102,108, 97,103,115, 0,116,119,116,121,112,101, 0,116, -119,109,111,100,101, 0,116,119,102,108, 97,103, 0,116,119,100,114, 97,119,102,108, 97,103, 0, 99,117,115,116,111,109,100, 97, -116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97,119, 0,122, 98,117,102, 0,120,114, 97,121, 0,110,100,111,102, -109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114, - 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0, -109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, - 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0, -119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, 99,117,114,115,111,114, - 91, 50, 93, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0, - 42,115, 99,114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116, -111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105, -110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,112, 97,116,104,102,108, 97,103, - 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97, -110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, - 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,115,111,114, -116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0, 97, 99,116,105,118,101, - 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 0,102, 95,102,112, 0,109,101,110,117, 0,102,112, 95,115,116,114, 91, - 56, 93, 0, 42,112,117,112,109,101,110,117, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100, -101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,108,111, 97,100, -105,109, 97,103,101, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111, -107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, - 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,115,101, - 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102, -108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, 0, 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110, -114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114, -101,116, 99,104, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108, -105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0, -108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115, -121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101, -114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, - 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115, -116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98, -117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108, -111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, - 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114, -101,102,115, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 0, -109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, - 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,118,105,101,119,114,101, 99,116, 0, 98,111, -111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104, -116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, - 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101, -110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, - 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114, -115,111,114, 0,114,112,116, 95,109, 97,115,107, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0, -112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,102,105,108,101,110, 97,109, -101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, 0,112, -111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100,111,119, - 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111,119, 99, -111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100,103,101, -116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98,101,108, - 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, 99,101, - 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110,115,112, - 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, 97,110, -101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, - 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0, -116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, 97,100, -101,100,111,119,110, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115, -101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, - 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, - 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, - 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0, -119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105, -100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, - 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95, 98, -111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99, -111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105, -116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, 97,100, -101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101, -114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105, -116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120, -116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105, -115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, - 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, - 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100, -101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0, -115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117, -112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, - 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103, -101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, - 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,102, - 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, - 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112, -111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, - 99,102,114, 97,109,101, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, - 97,110,110,101,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,102, 97, 99,101,100,111,116, 95,115,105,122, -101, 0, 98,112, 97,100, 91, 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0, -115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, - 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105, -111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116, -105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, - 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, - 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,104,112, - 97,100, 91, 51, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102, -105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115, -101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, - 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 97,114,109, 91, 50, 48, 93, - 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95,103,114,111,117,112, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102, -108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105, -114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, - 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 49, - 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, - 0,121,102,101,120,112,111,114,116,100,105,114, 91, 49, 54, 48, 93, 0,118,101,114,115,105,111,110,115, 0,103, 97,109,101,102, -108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103, -117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122, -101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114, -109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116, -114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101, -115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107, -101,121,109, 97,112,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112, -115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, - 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116, -105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0, -108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, - 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, - 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, 97,100, 0,109, -101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109, -101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116, -101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95, -102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110, -100,111,102, 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0,105,112,111, - 95,110,101,119, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, - 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,118,101,114, -116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110, -101, 0,102,117,108,108, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0, -100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114, -115,111,114, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97, -110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101, -119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, - 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, - 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105, -109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42, -112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, - 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114, -105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, - 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, - 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110, -114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108, -105,103,110,109,101,110,116, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115, -116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114, -115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105, -111,110, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103, -115, 0,103,108,111, 98, 97,108,102, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,105, 98,117,102, 0, 42,105, 98,117,102, 95, 99, -111,109,112, 0, 42,115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,114, 0, 98,111,116,116,111,109, 0,114,105,103, -104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97, -105,110, 91, 51, 93, 0,115, 97,116,117,114, 97,116,105,111,110, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115, -116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0,111,114, -120, 0,111,114,121, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97, -108, 97,110, 99,101, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,115,116, - 97,114,116,115,116,105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116,105,108,108, 0, 42,105, - 98,117,102, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116,105,108,108, 0, 42,105, -110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112, -114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, - 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,109,117,108, 0,104, - 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0,101,102,102,101, - 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, - 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115,111,117,110,100, 95,104, 97,110, -100,108,101, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,115,116,114,111, 98,101, 0, 42,101,102, -102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111, -102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, - 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99, -107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, - 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, - 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68, -105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, - 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110, -105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105, -110,116,101,114,112,111,108, 97,116,105,111,110, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101, -101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105, -116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100, -102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99, -116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108, -105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117, -114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112, -101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111, -117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121, -115, 0,109,105,110,102, 97, 99, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115, -101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, - 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0, -118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, - 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, - 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, - 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, - 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, - 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108, -105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120, -105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116, -114, 91, 49, 50, 56, 93, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0, -116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97, -115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114, -105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105, -100,101,108,101,110,103,116,104, 0,115,110,100,110,114, 0,112, 97,100, 49, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117, -110,100, 51, 68, 0,109, 97,107,101, 99,111,112,121, 0, 99,111,112,121,109, 97,100,101, 0,112, 97,100, 50, 91, 49, 93, 0, 42, -109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, - 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, - 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, - 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, - 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,109,105,110, 0,109, 97,120, 0,118,105,115,105,102, 97, 99, 0,114, -111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111, -116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0,100,105,115,116,114, -105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97, -116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, - 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, - 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, - 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,103,111, 0, 97, 99, 99,101,108,108,101,114, 97,116,105,111,110, - 0,109, 97,120,115,112,101,101,100, 0,109, 97,120,114,111,116,115,112,101,101,100, 0,109, 97,120,116,105,108,116,115,112,101, -101,100, 0,116,105,108,116,100, 97,109,112, 0,115,112,101,101,100,100, 97,109,112, 0, 42,115,111,117,114, 99,101, 0,102,114, - 97,109,101,115,107,105,112, 0,109,117,116,101, 0, 99,104, 97,110,103,101,100, 0,109,105,110, 95,103, 97,105,110, 0,109, 97, -120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105, -115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, - 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116, -101,114, 95,103, 97,105,110, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105, -111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42, 97,114,101, 97, 0, 42,108, 97,109,112,114,101, -110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105, -108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, - 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, - 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, - 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, 98,111,110, -101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, - 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99, -116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0, -112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0, -112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97, -114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102, -108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, - 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 98, 95, 98,111,110,101, 95,109, 97,116,115, 0, 42,100,117, 97,108, - 95,113,117, 97,116, 0, 42, 98, 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116,115, 0,101,117,108, 91, 51, 93, 0, - 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111, -115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, - 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115, -116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 42, - 99,117,115,116,111,109, 0, 99,104, 97,110, 98, 97,115,101, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105, -100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103, -114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, - 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110, -115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120, -118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115, -116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, - 97,114,107,101,114, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0, 97, 99,116,110,114, 0, 97, 99,116,119,105, -100,116,104, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,116,101,109,112, 0,110, 97,109,101, 91, 51, 48, 93, - 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, - 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116, -114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0, -116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95, -114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, - 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, - 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, - 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, - 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102, -111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116, -104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97, -120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, - 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101, -120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109, -105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, - 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, - 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111, -102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114, -105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115, -105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116, -121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,105,110,100, -101,120, 0,105,110,116,101,114,110, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 95,101,120,116, 0,108,111, 99,120, 0,108, -111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42,116,111,115,111, 99,107, 0, 42, -108,105,110,107, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115,116, -111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, - 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42, -116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, - 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114, -111,109,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97, -100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, - 97,108,108,116,121,112,101,115, 0, 42,111,119,110,116,121,112,101, 0, 42,115,101,108,105,110, 0, 42,115,101,108,111,117,116, - 0, 40, 42,116,105,109,101, 99,117,114,115,111,114, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, - 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,116, 99,104, 0, 42,115,100,104, 0, - 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109,105,110,115,112,101,101,100, 0,112,101, -114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, 0, 99,117,114,118, -101,100, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104, -116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,105,116,101,114, 0,119,114, - 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,115, - 97,116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, - 91, 52, 93, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121, -112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0, -109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108, -101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0, -109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, - 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, - 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0, 99,117,114,114, 0, 99, -108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109, -117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0, -106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111, -116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117, -108,112,116, 95,116,111,111,108, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, - 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97, -120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0,118,101,108, 91, 51, 93, 0,114,111,116, 91, - 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,110,117,109, 0, -112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, - 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105, -101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0, 97,108,105,118,101, 0,108,111,111,112, 0,104, 97,105, -114, 95,105,110,100,101,120, 0, 42, 98,111,105,100,115, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118, -101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, - 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,114,101,110, 95,115,116,101, -112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108, -101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, - 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115, -112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, - 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,109,112, -108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108, -105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, - 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95, -114,101,115, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99, -116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, - 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, -114,101, 97, 99,116,115,104, 97,112,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, - 97, 99, 0,100, 97,109,112,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0, -114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0, - 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, - 0, 99,108,117,109,112,112,111,119, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117, -103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117, -103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99, -108,101,110,103,116,104, 95,116,104,114,101,115, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108, -105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, - 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, - 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42, -112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104, -105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104, -101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117, -116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, - 97,109,101, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, - 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, - 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0, -118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114, -115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0, 91, 51, 93, - 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, - 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, - 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119, -105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95, -115,109,111,111,116,104, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120, -115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110, -100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,112,114,101,115, -101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111, -110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,115,101,108,102, - 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0, -116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102, -114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122, -101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0, 42,116,121,112,101,115,116, -114, 0, 42,109,101,115,115, 97,103,101, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101, -108,101,118,101,108, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105, -110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112,101, -114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99, -117,114,115,111,114,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,100, -101,102, 97,117,108,116, 97, 99,116,109, 97,112, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109, -101,114, 0, 42,103,104,111,115,116,119,105,110, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97, -109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110, -105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0,108, 97,115, -116, 95,116,121,112,101, 0,108, 97,115,116, 95,118, 97,108, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114, -115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, - 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111, -119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0, -115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, - 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105, -111,110,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101, -110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42, -114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0,109,118, 97,108, 91, 50, 93, 0,112,114,101,118,120, - 0,112,114,101,118,121, 0,117,110,105, 99,111,100,101, 0, 97,115, 99,105,105, 0, 42,107,101,121,109, 97,112, 95,105,100,110, - 97,109,101, 0, 99,117,115,116,111,109, 0, 99,117,115,116,111,109,100, 97,116, 97,102,114,101,101, 0, 42,101,100, 97,116, 97, - 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105, -122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117, -108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115, -101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, - 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, - 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0, 42,114,110, 97, 95,112, 97,116,104, 0, 97,114, -114, 97,121, 95,105,110,100,101,120, 0,105,100,116,121,112,101, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, - 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, - 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105, -112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101, -110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,116,101,109,112, -108, 97,116,101,115, 0,103,114,111,117,112,109,111,100,101, 0,112, 97,116,104,115, 0,107,101,121,105,110,103,102,108, 97,103, - 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, - 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, - 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102, -108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0, -115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101, -117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97, -108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99, -116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115, -115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101, -115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97, 99, 99,117,114, 97, 99,121, 0, 97, -105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, - 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95, -115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115, -112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, - 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111, -114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 0, 42,102,108,117,105,100, 95,103,114, -111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, - 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111, -109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, - 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95, -112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95, -119,116, 0,118, 51,100,110,117,109, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104, -101,115, 91, 50, 93, 0,118,101,108,111, 99,105,116,121, 91, 51, 93, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108, -101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0, -118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, - 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 84, 89, 80, 69,198, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115, -104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, - 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, - 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,105, 0,118,101, 99, 50,102, 0,118,101, 99, 50,100, 0,118,101, 99, 51, -105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,100, 0,118,101, 99, 52,105, 0,118,101, 99, 52,102, 0,118,101, 99, 52,100, 0, -114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101, -114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73, -109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, - 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, - 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101, -120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, - 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101, -114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, - 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101, -110,115,105,116,121, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112, -112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 87, 97,118,101, 0, 86,111,108,117, -109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, - 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, - 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 67,117,114,118,101, - 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, - 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114, -109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77, -101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86, -105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, - 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, - 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114, -105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115,112,115, 0, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, - 68, 71, 69, 68, 82, 65, 87, 32, 40, 49, 60, 60, 49, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 32, 40, - 49, 60, 60, 50, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 71, 79, 78, 32, 40, 49, 60, 60, 51, 41, 32, 32, 35,100, -101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 32, 40, 49, 60, 60, 53, 41, 32, 35,100,101,102,105, -110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 32, 40, 49, 60, 60, 55, 41, 32, 35,100,101,102,105,110,101, 32, 77, - 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 32, 40, 49, 60, 60, 56, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, - 65, 82, 80, 32, 40, 49, 60, 60, 57, 41, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 32, 49, - 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 70, 76, 73, 80, 86, 51, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 32, 56, 32, 35,100,101, -102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, - 74, 88, 90, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, 90, 32, 54, 52, 32, 32, 35,100,101, -102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 32, 50, - 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, - 86, 52, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 52, 86, 49, 32, 56, 32, 32, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 83, 77, 79, 79, 84, 72, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 32, - 50, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 83, 69,108, 32, 48, 32, 35,100,101,102,105,110,101, 32, 77, 69, - 95, 69, 83, 69,108, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 32, 32, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 49, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, - 69, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 83, 69, 76, 50, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 51, 32, 49, 54, 32, 35,100,101,102, -105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 32, 54, - 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 32, 49, 32, 35,100,101,102,105,110,101, - 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 32, 52, - 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 32, 56, 32, 35,100,101,102,105,110,101, - 32, 84, 70, 95, 76, 73, 71, 72, 84, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, - 76, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, 32, 49, 50, 56, 32, 32, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 32, 50, 53, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, - 87, 79, 83, 73, 68, 69, 32, 53, 49, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 32, - 49, 48, 50, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, 66, 67, 79, 76, 32, 50, 48, 52, 56, 32, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, 32, 52, 48, 57, 54, 32, 32, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 83, 72, 65, 68, 79, 87, 32, 56, 49, 57, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 32, - 49, 54, 51, 56, 52, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 79, 76, 73, 68, 32, 48, 32, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 65, 68, 68, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 32, 50, 32, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 32, 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, - 32, 51, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 32, 49, 32, 35,100,101, -102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, - 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, - 65, 84, 69, 68, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 49, 32, 49, 54, 32, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 80, 73, 78, 50, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 32, 54, 52, - 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, 32, 49, 50, 56, 32, 35,101,110,100,105,102,100, 32, 99,104, 97, -114, 32,117,115,101, 95, 99,111,108, 44, 32,102,108, 97,103, 59, 10, 10, 9, 47, 42, 32, 83,112,101, 99,105, 97,108, 32,108,101, -118,101,108, 32, 49, 32,100, 97,116, 97, 32,116,104, 97,116, 32, 99, 97,110,110,111,116, 32, 98,101, 32,109,111,100,105,102,105, -101,100, 32,102,114,111,109, 32,111,116,104,101,114, 32,108,101,118,101,108,115, 32, 42, 47, 10, 9, 67,117,115,116,111,109, 68, - 97,116, 97, 32,118,100, 97,116, 97, 59, 10, 9, 67,117,115,116,111,109, 68, 97,116, 97, 32,102,100, 97,116, 97, 59, 10, 9,115, -104,111,114,116, 32, 42,101,100,103,101, 95,102,108, 97,103,115, 59, 10, 9, 99,104, 97,114, 32, 42,101,100,103,101, 95, 99,114, -101, 97,115,101,115, 59, 10,125, 32, 77,117,108,116,105,114,101,115, 59, 10, 10, 47, 42, 42, 32, 69,110,100, 32, 77,117,108,116, -105,114,101,115, 32, 42, 42, 47, 10, 10,116,121,112,101,100,101,102, 32,115,116,114,117, 99,116, 32, 80, 97,114,116,105, 97,108, - 86,105,115,105, 98,105,108,105,116,121, 32,123, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32, 42,118,101,114,116, - 95,109, 97,112, 59, 32, 47, 42, 32,118,101,114,116, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101, -119, 32, 73,110,100,101,120, 32, 42, 47, 10, 9,105,110,116, 32, 42,101,100,103,101, 95,109, 97,112, 59, 32, 47, 42, 32,101,100, -103,101, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 44, 32, 45, 49, - 61, 32,104,105,100,100,101,110, 32, 42, 47, 10, 9, 77, 70, 97, 99,101, 32, 42,111,108,100, 95,102, 97, 99,101,115, 59, 10, 9, - 77, 69,100,103,101, 32, 42,111,108,100, 95,101,100,103,101,115, 59, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32, -116,111,116,102, 97, 99,101, 44, 32,116,111,116,101,100,103,101, 44, 32,116,111,116,118,101,114,116, 44, 32,112, 97,100, 59, 10, -125, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 59, 10, 10, 47, 42, 32,109,118,101,114,116, 45, 62, -102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 80, - 72, 69, 82, 69, 84, 69, 83, 84, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 77, 80, - 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 72, 73, 68, 69, 9, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 86, 69, 82, 84, 95, 77, 69, 82, 71, 69, 68, 9, 9, 40, 49, 60, 60, 54, 41, 10, 10, 47, 42, 32,109,101,100,103,101, - 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, - 68, 71, 69, 68, 82, 65, 87, 9, 9, 9, 40, 49, 60, 60, 49, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, - 9, 9, 9, 9, 40, 49, 60, 60, 50, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 71, 79, 78, 9, 9, 9, 9, 40, 49, - 60, 60, 51, 41, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,114,101,115,101,114,118,101, 32, 49, 54, 32,102,111,114, 32, 77, 69, 95, - 72, 73, 68, 69, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 9, 9, 40, - 49, 60, 60, 53, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 9, 9, 40, 49, 60, 60, - 55, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 9, 9, 40, 49, 60, 60, 56, 41, 10, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, 9, 9, 9, 40, 49, 60, 60, 57, 41, 10, 10, 47, 42, 32,112,117, -110,111, 32, 61, 32,118,101,114,116,101,120,110,111,114,109, 97,108, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 47, 42, 32, -114,101,110,100,101,114, 32, 97,115,115,117,109,101,115, 32,102,108,105,112,115, 32,116,111, 32, 98,101, 32,111,114,100,101,114, -101,100, 32,108,105,107,101, 32,116,104,105,115, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, - 49, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 50, 9, 9, 50, 10, 35,100,101,102,105,110, -101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, - 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 9, 9, 49, 54, 10, 35,100,101,102,105,110, -101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 9, 9, 51, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, - 90, 9, 9, 54, 52, 10, 10, 47, 42, 32,101,100, 99,111,100,101, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 35,100,101,102, -105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 9, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 9, - 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 86, 51, 86, 52, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 52, 86, 49, 9, 9, 9, 56, 10, - 10, 47, 42, 32,102,108, 97,103, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, - 77, 79, 79, 84, 72, 9, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 9, 9, 9, - 50, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,102,108, 97,103, 32, 77, 69, 95, 72, 73, 68, 69, 61, 61, 49, 54, 32,105,115, 32,117, -115,101,100, 32,104,101,114,101, 32,116,111,111, 32, 42, 47, 32, 10, 47, 42, 32,109,115,101,108,101, 99,116, 45, 62,116,121,112, -101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 83, 69,108, 9, 48, 10, 35,100,101,102,105,110,101, 32, 77, - 69, 95, 69, 83, 69,108, 32, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 10, 10, 47, 42, 32,109, -116,102, 97, 99,101, 45, 62,102,108, 97,103, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, - 9, 49, 32, 47, 42, 32,117,115,101, 32, 77, 70, 97, 99,101, 32,104,105,100,101, 32,102,108, 97,103, 32, 40, 97,102,116,101,114, - 32, 50, 46, 52, 51, 41, 44, 32,115,104,111,117,108,100, 32, 98,101, 32, 97, 98,108,101, 32,116,111, 32,114,101,117,115,101, 32, - 97,102,116,101,114, 32, 50, 46, 52, 52, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 9, - 50, 32, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 33, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, - 69, 76, 49, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 50, 9, 9, 56, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 83, 69, 76, 51, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 9, 9, 51, - 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 9, 9, 54, 52, 32, 47, 42, 32,117,110,117,115,101,100, 44, - 32,115, 97,109,101, 32, 97,115, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 42, 47, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, - 45, 62,109,111,100,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 9, 9, 49, 10, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 84, 69, 88, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 9, - 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 9, 9, 49, 54, 10, 10, 35,100,101,102,105,110,101, 32, - 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 9, 54, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, - 9, 9, 49, 50, 56, 9, 9, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, - 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 9, 50, 53, 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, - 73, 68, 69, 9, 9, 53, 49, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 9, 49, 48, - 50, 52, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, 66, 67, 79, 76, 9, 9, 50, 48, 52, 56, 10, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, 9, 52, 48, 57, 54, 9, 47, 42, 32,119,105,116,104, 32, 90, 32, - 97,120,105,115, 32, 99,111,110,115,116,114, 97,105,110,116, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, - 65, 68, 79, 87, 9, 9, 56, 49, 57, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 9, 9, 49, 54, - 51, 56, 52, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,116,114, 97,110,115,112, 44, 32,118, 97,108,117,101,115, 32, 49, - 45, 52, 32, 97,114,101, 32,117,115,101,100, 32, 97,115, 32,102,108, 97,103,115, 32,105,110, 32,116,104,101, 32, 71, 76, 44, 32, - 87, 65, 82, 78, 73, 78, 71, 44, 32, 84, 70, 95, 83, 85, 66, 32, 99, 97,110,116, 32,119,111,114,107, 32,119,105,116,104, 32,116, -104,105,115, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 79, 76, 73, 68, 9, 48, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 65, 68, 68, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 9, 50, 10, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 9, 9, 52, 32, 47, 42, 32, 99,108,105,112,109, 97,112, 32, 97,108,112, -104, 97, 47, 98,105,110, 97,114,121, 32, 97,108,112,104, 97, 32, 97,108,108, 32,111,114, 32,110,111,116,104,105,110,103, 33, 32, - 42, 47, 10, 10, 47, 42, 32,115,117, 98, 32,105,115, 32,110,111,116, 32, 97,118, 97,105,108, 97, 98,108,101, 32,105,110, 32,116, -104,101, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99,101, 32, 97,110,121,109,111,114,101, 32, 42, 47, 10, 35,100,101, -102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 9, 9, 51, 10, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,117,110,119,114, - 97,112, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 9, 49, 10, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 50, 9, 50, 10, 35,100,101,102,105,110,101, 32, - 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, - 69, 67, 65, 84, 69, 68, 52, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 49, 9, 9, 32, 32, 32, 32, 49, - 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 9, 9, 32, 32, 32, 32, 51, 50, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 80, 73, 78, 51, 9, 32, 32, 32, 9, 9, 54, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, - 52, 9, 32, 32, 32, 32, 9, 49, 50, 56, 10, 10, 35,101,110,100,105,102, 10,100,105, 79, 67, 75, 33,110,100,101,120, 32,105,110, - 32,110,117,114, 98, 32,108,105,115,116, 32, 42, 47, 10, 9,105,110,116, 32, 97, 99,116,110,117, 59, 10, 9, 47, 42, 32,101,100, -105,116, 44, 32,108, 97,115,116, 32,115,101,108,101, 99,116,101,100, 32, 98,112,111,105,110,116, 32, 42, 47, 10, 9, 66, 80,111, -105,110,116, 32, 42,108, 97,115,116,115,101,108, 98,112, 59, 10, 9, 10, 9, 47, 42, 32,102,111,110,116, 32,112, 97,114,116, 32, - 42, 47, 10, 9,115,104,111,114,116, 32,108,101,110, 44, 32,108,105,110,101,115, 44, 32,112,111,115, 44, 32,115,112, 97, 99,101, -109,111,100,101, 59, 10, 9,102,108,111, 97,116, 32,115,112, 97, 99,105,110,103, 44, 32,108,105,110,101,100,105,115,116, 44, 32, -115,104,101, 97,114, 44, 32,102,115,105,122,101, 44, 32,119,111,114,100,115,112, 97, 99,101, 44, 32,117,108,112,111,115, 44, 32, -117,108,104,101,105,103,104,116, 59, 10, 9,102,108,111, 97,116, 32,120,111,102, 44, 32,121,111,102, 59, 10, 9,102,108,111, 97, -116, 32,108,105,110,101,119,105,100,116,104, 59, 10, 70, 82, 69, 69,216, 24, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, - 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108, -116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, - 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, -117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118, -101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101, -116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111, -108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111, -100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97, -115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105, -110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, - 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83, -117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, - 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97, -116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101, -102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77, -111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, - 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77, -111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101, -116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105, -109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77, -111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, - 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80, -100, 97,116, 97, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, - 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, - 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99, -104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112, -114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100, -101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116, -105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, - 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100, -101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97, -109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97, -105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114, -116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105, -110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, - 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83, -101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, - 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111, -110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,116,111,112,111, 86,105,101,119, 68, 97,116, - 97, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84, -105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, - 99,101, 73,110,102,111, 0, 98, 83, 99,114,101,101,110, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101, -101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, - 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, - 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116, -111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83,112, 97, - 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105, -112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, - 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67, -111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0,117,105, 70,111,110,116, 0,117,105, 70,111, -110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117, -105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, - 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 83,111,108,105, -100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, - 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, - 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105, -108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 84, 83,116,114,105,112, 69,108,101,109, 0, 83,116, -114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111, -114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, - 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111,117,110,100, 0, 83,111,117,110,100, 72, 97,110,100,108,101, 0, - 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110, -115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111, -110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102, -102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, - 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115, -111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115, -111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, - 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, - 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, - 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67, -111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101, -115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, - 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116, -111,114, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 69,100,105,116, 79, - 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114, -111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, - 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110, -115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, - 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, - 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111, -114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116, -117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99, -116,117, 97,116,111,114, 0, 70,114,101,101, 67, 97,109,101,114, 97, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 71,114,111, -117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, - 97,116,104, 86,101,114,116, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116, -105,110,103,115, 0, 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, - 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105, -111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111, -110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104, -111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111, -110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, - 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115, -116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105, -111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97, -116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97, -109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, - 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, - 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111, -110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, - 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100, -101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111, -100,101, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112, -101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100, -101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, - 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104, -114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111, -100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102, -111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111, -100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,101,110,115, 68,105,115,116, 0, 84,101,120, 78,111,100,101, 79,117, -116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115, -104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 72, 97,105,114, 75,101,121, 0, 80, - 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, - 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97, -114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 80, - 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114, -116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97, -119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116, -114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 0, - 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110, -100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110, -100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116, -101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77, -111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99, -116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, - 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121, -116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, - 95, 83,111,117,110,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101, -114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, - 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, - 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109, -112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, - 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110, 0, 66,111,105,100, 82,117,108,101, - 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118,101,114, 97,103,101, 83,112,101,101, -100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, - 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0, 16, 0, 16, 0, - 32, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0,152, 4,112, 0, 36, 0, 56, 0,112, 0,128, 0, -168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,152, 0, 40, 0, 40, 6,184, 1, 0, 0, 0, 0, 0, 0, 16, 1,104, 1,120, 1, - 24, 0, 8, 3,200, 0, 0, 0, 88, 0, 32, 1,248, 0,136, 0,248, 1, 56, 1, 80, 0, 88, 0, 32, 3,104, 0, 88, 1, 0, 0, -128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0,216, 1, 0, 0, 0, 0, 0, 0,144, 1, 20, 0, 48, 0, 64, 0, 24, 0, 12, 0, - 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 32, 0,112, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, - 16, 0, 0, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 72, 0, 96, 0,112, 0,120, 0, 88, 0,120, 0,152, 0, 88, 0, 80, 0, -128, 0, 80, 0,104, 0,248, 0, 56, 0,192, 0,176, 0,216, 0, 80, 0,112, 0,128, 0,216, 0,128, 0,240, 0, 72, 0,128, 0, - 0, 0,144, 0, 32, 0, 8, 2,152, 0, 0, 0,112, 0, 0, 0, 0, 0, 88, 0, 8, 0, 8, 0, 16, 1,104, 0,240, 1, 96, 0, - 88, 0, 88, 0, 88, 0,192, 1,136, 0,128, 0, 72, 0,232, 0, 48, 0, 0, 0,144, 0, 88, 0,104, 0,120, 0,152, 0,120, 1, -224, 0,192, 0, 0, 0, 72, 0,168, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,224, 1, 40, 0,184, 0,152, 0, 40, 0, 64, 0, - 24, 0, 88, 0, 64, 4, 64, 0, 24, 0, 16, 0, 96, 0, 88, 0, 32, 0, 40, 1, 48, 0, 8, 0,112, 0, 88, 0, 56, 0, 64, 0, -120, 1, 32, 0, 8, 0, 16, 0, 48, 2, 0, 0, 0, 0, 64, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 56, 0, -152, 0, 72, 0,208, 0,248, 0, 32, 0, 0, 1,240, 0,208, 1,104, 0, 0, 0,152, 0, 0, 0, 40, 1, 16, 0, 16, 0,168, 0, -224, 0,144, 2,120, 2, 64, 0,200, 0, 32, 1, 72, 0,208, 2, 40, 0,136, 1, 40, 0, 24, 1, 32, 0,232, 0, 32, 0, 32, 0, - 80, 2, 16, 1, 16, 0,216, 21, 56, 0,160, 11, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 24, 1, - 80, 0, 48, 0, 16, 0, 8, 0, 52, 0, 0, 1, 32, 1,200, 1, 8, 1, 48, 1, 64, 0, 32, 0, 12, 0, 24, 0, 48, 0, 16, 0, - 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, - 40, 0,108, 0, 72, 0, 72, 0, 96, 0,104, 0, 60, 0,128, 0, 80, 0, 80, 0, 16, 0, 96, 0, 72, 0, 32, 0, 88, 0, 24, 0, - 80, 0,112, 0, 84, 0, 32, 0, 96, 0, 56, 0, 56, 0,112, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0,224, 0, - 40, 0, 40, 1,200, 0, 16, 0, 24, 0, 24, 0, 0, 2, 4, 0, 40, 0,120, 0, 8, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0, -120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 72, 0, 48, 0, 72, 0, 48, 0, 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, - 28, 0, 28, 0, 28, 0, 56, 0, 24, 0, 72, 0,168, 0, 40, 0,144, 0, 56, 0,232, 0, 0, 0, 0, 0, 0, 0, 16, 0, 40, 0, - 28, 0, 12, 0, 12, 0, 16, 1, 40, 0, 8, 0, 8, 0, 64, 0, 32, 0, 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 32, 0, 12, 0, - 56, 0, 24, 0, 72, 0, 24, 0, 56, 0, 56, 0, 20, 0, 64, 0, 40, 0, 32, 0,192, 0, 8, 2,104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 32, 0, 8, 1,224, 0,168, 0, 72, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, - 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 24, 0,112, 0, 32, 1, 16, 0,104, 0, 0, 1, - 40, 0,200, 0,104, 0,112, 0,104, 0, 32, 0, 80, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0, - 83, 84, 82, 67,140, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, - 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, - 4, 0, 5, 0, 4, 0, 6, 0, 15, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, - 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 18, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, - 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 20, 0, 4, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, - 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, - 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, - 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, - 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, 26, 0, 1, 0, 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, - 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, 4, 0, 24, 0, 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, - 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, 2, 0, 19, 0, 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, - 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, - 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0, 2, 0, 43, 0, 4, 0, 44, 0, 31, 0, 6, 0, - 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 48, 0, 33, 0, 21, 0, 33, 0, 0, 0, - 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, 24, 0, 52, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 53, 0, - 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, 2, 0, 57, 0, 7, 0, 11, 0, 7, 0, 12, 0, 4, 0, 58, 0, - 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, 36, 0, 7, 0, 27, 0, 31, 0, 12, 0, 63, 0, 24, 0, 64, 0, - 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, 37, 0, 16, 0, 37, 0, 0, 0, 37, 0, 1, 0, 7, 0, 67, 0, - 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, 2, 0, 19, 0, 4, 0, 69, 0, 4, 0, 70, 0, 9, 0, 2, 0, - 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, 7, 0, 74, 0, 38, 0, 13, 0, 27, 0, 31, 0, 39, 0, 75, 0, - 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, 12, 0, 79, 0, 36, 0, 80, 0, 27, 0, 81, 0, 2, 0, 17, 0, - 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 6, 0, 40, 0, 0, 0, 40, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, - 4, 0, 23, 0, 4, 0, 86, 0, 41, 0, 10, 0, 41, 0, 0, 0, 41, 0, 1, 0, 4, 0, 87, 0, 4, 0, 88, 0, 4, 0, 89, 0, - 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 42, 0, 15, 0, 27, 0, 31, 0, 0, 0, 93, 0, - 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, 40, 0, 97, 0, 4, 0, 98, 0, 4, 0, 99, 0, 12, 0,100, 0, - 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, 8, 0,105, 0, 43, 0, 3, 0, 4, 0,106, 0, 4, 0,107, 0, - 9, 0, 2, 0, 44, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,108, 0, 7, 0,109, 0, - 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, - 7, 0,118, 0, 2, 0,119, 0, 2, 0,120, 0, 7, 0,121, 0, 36, 0, 80, 0, 32, 0,122, 0, 45, 0, 13, 0, 4, 0,123, 0, - 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 2, 0,127, 0, 2, 0,128, 0, 2, 0, 19, 0, 2, 0,129, 0, 2, 0,130, 0, - 2, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 46, 0,134, 0, 47, 0, 32, 0, 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,135, 0, - 48, 0,136, 0, 49, 0,137, 0, 50, 0,138, 0, 2, 0,129, 0, 2, 0, 19, 0, 2, 0,139, 0, 2, 0, 17, 0, 2, 0, 37, 0, - 2, 0, 43, 0, 4, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,143, 0, 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, - 4, 0,147, 0, 4, 0,148, 0, 43, 0,149, 0, 30, 0,150, 0, 0, 0,151, 0, 7, 0,152, 0, 4, 0,153, 0, 2, 0,154, 0, - 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 7, 0,158, 0, 7, 0,159, 0, 51, 0, 63, 0, 2, 0,160, 0, 2, 0,161, 0, - 2, 0,162, 0, 2, 0,163, 0, 32, 0,164, 0, 52, 0,165, 0, 0, 0,166, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,169, 0, - 0, 0,170, 0, 7, 0,171, 0, 7, 0,172, 0, 7, 0,173, 0, 2, 0,174, 0, 2, 0,175, 0, 2, 0,176, 0, 2, 0,177, 0, - 2, 0,178, 0, 2, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, - 7, 0,186, 0, 7, 0, 57, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, - 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, - 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, - 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, - 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0, 53, 0, 15, 0, 0, 0,222, 0, 9, 0,223, 0, - 0, 0,224, 0, 0, 0,225, 0, 4, 0,226, 0, 4, 0,227, 0, 9, 0,228, 0, 7, 0,229, 0, 7, 0,230, 0, 7, 0,231, 0, - 4, 0,232, 0, 9, 0,233, 0, 9, 0,234, 0, 4, 0,235, 0, 4, 0, 37, 0, 54, 0, 6, 0, 7, 0,182, 0, 7, 0,183, 0, - 7, 0,184, 0, 7, 0,236, 0, 7, 0, 67, 0, 4, 0, 64, 0, 55, 0, 5, 0, 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 64, 0, - 2, 0,237, 0, 54, 0,231, 0, 56, 0, 17, 0, 32, 0,164, 0, 47, 0,238, 0, 57, 0,239, 0, 7, 0,240, 0, 7, 0,241, 0, - 2, 0, 17, 0, 2, 0,242, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,243, 0, 4, 0,244, 0, 2, 0,245, 0, 2, 0,246, 0, - 4, 0,129, 0, 4, 0,140, 0, 2, 0,247, 0, 2, 0,248, 0, 58, 0, 22, 0, 2, 0, 19, 0, 2, 0,249, 0, 7, 0,250, 0, - 7, 0,251, 0, 2, 0,139, 0, 2, 0,252, 0, 4, 0,253, 0, 4, 0,254, 0, 32, 0,164, 0, 4, 0,255, 0, 2, 0, 0, 1, - 2, 0, 1, 1, 9, 0, 2, 1, 7, 0, 3, 1, 7, 0, 4, 1, 2, 0, 5, 1, 2, 0, 6, 1, 2, 0, 7, 1, 2, 0, 8, 1, - 7, 0, 9, 1, 7, 0, 10, 1, 55, 0, 11, 1, 59, 0, 11, 0, 4, 0, 12, 1, 4, 0, 13, 1, 2, 0, 14, 1, 2, 0, 19, 0, - 2, 0, 15, 1, 2, 0, 37, 0, 32, 0,164, 0, 7, 0, 16, 1, 4, 0, 17, 1, 0, 0, 18, 1, 7, 0, 19, 1, 52, 0, 61, 0, - 27, 0, 31, 0, 39, 0, 75, 0, 7, 0, 20, 1, 7, 0, 21, 1, 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, - 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, - 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 2, 0, 40, 1, 2, 0, 41, 1, - 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,242, 0, - 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 4, 0, 51, 1, 4, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, - 2, 0, 15, 1, 2, 0,127, 0, 4, 0, 23, 0, 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 7, 0, 55, 1, 7, 0, 56, 1, - 7, 0,189, 0, 45, 0, 57, 1, 60, 0, 58, 1, 36, 0, 80, 0, 47, 0,238, 0, 53, 0, 59, 1, 55, 0, 11, 1, 56, 0, 60, 1, - 30, 0,150, 0, 58, 0, 61, 1, 59, 0, 62, 1, 0, 0, 63, 1, 0, 0,181, 0, 61, 0, 8, 0, 7, 0, 64, 1, 7, 0, 65, 1, - 7, 0,172, 0, 4, 0, 19, 0, 7, 0, 66, 1, 7, 0, 67, 1, 7, 0, 68, 1, 32, 0, 45, 0, 62, 0, 84, 0, 27, 0, 31, 0, - 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 69, 1, 2, 0,175, 0, 2, 0, 70, 1, 7, 0,182, 0, 7, 0,183, 0, - 7, 0,184, 0, 7, 0,185, 0, 7, 0, 71, 1, 7, 0, 72, 1, 7, 0, 73, 1, 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1, - 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 63, 0, 82, 1, 2, 0,249, 0, 2, 0, 70, 0, - 7, 0,110, 0, 7, 0,111, 0, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1, 7, 0, 86, 1, 7, 0, 87, 1, 2, 0, 88, 1, - 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 0, 0, 92, 1, 0, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1, - 2, 0, 97, 1, 2, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, 7, 0,102, 1, 2, 0,103, 1, 2, 0, 43, 0, - 2, 0,104, 1, 2, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, 7, 0,108, 1, 7, 0,109, 1, 7, 0,110, 1, 7, 0,111, 1, - 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, - 2, 0,120, 1, 2, 0,121, 1, 4, 0,122, 1, 4, 0,123, 1, 2, 0,124, 1, 2, 0,125, 1, 2, 0,126, 1, 2, 0,127, 1, - 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 2, 0,132, 1, 2, 0,133, 1, 36, 0, 80, 0, 51, 0,134, 1, - 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0, 64, 0, 2, 0, 27, 0, 31, 0, 36, 0, 80, 0, 65, 0, 18, 0, 7, 0,137, 1, - 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 7, 0,141, 1, 7, 0,142, 1, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, - 7, 0,146, 1, 2, 0,147, 1, 2, 0,148, 1, 2, 0,149, 1, 2, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, - 4, 0,154, 1, 66, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,155, 1, 2, 0, 19, 0, 7, 0,182, 0, 7, 0,183, 0, - 7, 0,184, 0, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, - 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, - 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1, 65, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, - 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 2, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1, - 0, 0,187, 1, 0, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, 2, 0,191, 1, 2, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, - 7, 0,195, 1, 7, 0,196, 1, 2, 0,197, 1, 2, 0,198, 1, 4, 0, 69, 1, 4, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1, - 2, 0,202, 1, 2, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 7, 0,209, 1, - 7, 0,210, 1, 7, 0,211, 1, 7, 0,212, 1, 7, 0,213, 1, 0, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, - 4, 0,218, 1, 0, 0,219, 1, 0, 0,104, 1, 0, 0,220, 1, 0, 0, 63, 1, 2, 0,221, 1, 2, 0,222, 1, 2, 0,135, 1, - 2, 0,223, 1, 2, 0,224, 1, 2, 0,225, 1, 7, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1, 7, 0,229, 1, 7, 0,230, 1, - 2, 0,160, 0, 2, 0,161, 0, 55, 0,231, 1, 55, 0,232, 1, 0, 0,233, 1, 0, 0,234, 1, 0, 0,235, 1, 0, 0,236, 1, - 2, 0,237, 1, 2, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, 51, 0,134, 1, 60, 0, 58, 1, 36, 0, 80, 0, 67, 0,241, 1, - 30, 0,150, 0, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, 7, 0,245, 1, 7, 0,246, 1, 2, 0,247, 1, 2, 0, 70, 0, - 7, 0,248, 1, 7, 0,249, 1, 7, 0,250, 1, 7, 0,251, 1, 7, 0,252, 1, 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, - 7, 0, 0, 2, 2, 0, 1, 2, 2, 0, 2, 2, 4, 0, 3, 2, 4, 0,121, 1, 12, 0, 4, 2, 68, 0, 4, 0, 27, 0, 31, 0, - 0, 0, 5, 2, 69, 0, 2, 0, 43, 0,149, 0, 70, 0, 26, 0, 70, 0, 0, 0, 70, 0, 1, 0, 71, 0, 6, 2, 4, 0, 7, 2, - 4, 0, 8, 2, 4, 0, 9, 2, 4, 0, 10, 2, 4, 0, 11, 2, 4, 0, 12, 2, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 13, 2, - 2, 0, 14, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 15, 2, 7, 0, 16, 2, 7, 0, 17, 2, 7, 0, 18, 2, - 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 23, 0, 7, 0, 22, 2, 7, 0, 23, 2, 72, 0, 20, 0, 27, 0, 31, 0, - 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 24, 2, 12, 0, 25, 2, 12, 0, 26, 2, 36, 0, 80, 0, 66, 0, 27, 2, 0, 0, 19, 0, - 0, 0, 28, 2, 2, 0, 29, 2, 2, 0,174, 0, 2, 0, 37, 0, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0, 30, 2, - 7, 0, 31, 2, 7, 0, 32, 2, 70, 0, 33, 2, 35, 0, 11, 0, 7, 0, 34, 2, 7, 0, 35, 2, 7, 0, 36, 2, 7, 0,251, 0, - 2, 0, 55, 0, 0, 0, 37, 2, 0, 0, 38, 2, 0, 0, 39, 2, 0, 0, 40, 2, 0, 0, 41, 2, 0, 0, 42, 2, 34, 0, 7, 0, - 7, 0, 43, 2, 7, 0, 35, 2, 7, 0, 36, 2, 2, 0, 39, 2, 2, 0, 42, 2, 7, 0,251, 0, 7, 0, 37, 0, 73, 0, 21, 0, - 73, 0, 0, 0, 73, 0, 1, 0, 2, 0, 17, 0, 2, 0, 44, 2, 2, 0, 42, 2, 2, 0, 19, 0, 2, 0, 45, 2, 2, 0, 46, 2, - 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 49, 2, 2, 0, 50, 2, 2, 0, 51, 2, 2, 0, 52, 2, 7, 0, 53, 2, 7, 0, 54, 2, - 34, 0, 49, 0, 35, 0, 50, 0, 2, 0, 55, 2, 2, 0, 56, 2, 4, 0, 57, 2, 74, 0, 5, 0, 2, 0, 58, 2, 2, 0, 44, 2, - 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 70, 0, 75, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 0, 7, 0, 59, 2, - 76, 0, 68, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 60, 2, 12, 0, 25, 2, 12, 0, 61, 2, 32, 0, 62, 2, - 32, 0, 63, 2, 32, 0, 64, 2, 36, 0, 80, 0, 77, 0, 65, 2, 38, 0, 66, 2, 66, 0, 27, 2, 12, 0, 67, 2, 7, 0, 64, 1, - 7, 0,172, 0, 7, 0, 65, 1, 2, 0,174, 0, 2, 0, 43, 0, 2, 0, 68, 2, 2, 0, 69, 2, 2, 0, 70, 2, 7, 0, 71, 2, - 7, 0, 70, 0, 2, 0, 72, 2, 2, 0, 29, 2, 2, 0, 19, 0, 2, 0, 73, 2, 7, 0, 74, 2, 7, 0, 75, 2, 7, 0, 76, 2, - 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 77, 2, 2, 0, 78, 2, 4, 0, 79, 2, 34, 0, 80, 2, 2, 0, 23, 0, 2, 0, 95, 0, - 2, 0, 67, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, - 7, 0, 88, 2, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, 0, 0, 92, 2, 78, 0, 93, 2, 79, 0, 94, 2, 0, 0, 95, 2, - 68, 0, 96, 2, 68, 0, 97, 2, 68, 0, 98, 2, 68, 0, 99, 2, 4, 0,100, 2, 7, 0,101, 2, 4, 0,102, 2, 4, 0,103, 2, - 75, 0,104, 2, 4, 0,105, 2, 4, 0,106, 2, 74, 0,107, 2, 74, 0,108, 2, 80, 0, 40, 0, 27, 0, 31, 0, 71, 0, 6, 2, - 12, 0,109, 2, 36, 0, 80, 0, 38, 0, 66, 2, 66, 0, 27, 2, 81, 0,110, 2, 82, 0,111, 2, 83, 0,112, 2, 84, 0,113, 2, - 85, 0,114, 2, 86, 0,115, 2, 87, 0,116, 2, 88, 0,117, 2, 80, 0,118, 2, 89, 0,119, 2, 90, 0,120, 2, 91, 0,121, 2, - 91, 0,122, 2, 91, 0,123, 2, 4, 0, 54, 0, 4, 0,124, 2, 4, 0,125, 2, 4, 0,126, 2, 4, 0,127, 2, 2, 0,174, 0, - 2, 0,128, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0,129, 2, 4, 0, 68, 2, 2, 0,130, 2, 2, 0, 19, 0, - 2, 0,131, 2, 2, 0,132, 2, 2, 0, 29, 2, 2, 0,133, 2, 92, 0,134, 2, 93, 0,135, 2, 83, 0, 8, 0, 9, 0,136, 2, - 7, 0,137, 2, 4, 0,138, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 81, 0, 7, 0, - 4, 0,142, 2, 4, 0,143, 2, 4, 0,144, 2, 4, 0,145, 2, 2, 0, 44, 2, 0, 0,146, 2, 0, 0, 19, 0, 85, 0, 5, 0, - 4, 0,142, 2, 4, 0,143, 2, 0, 0,147, 2, 0, 0,148, 2, 2, 0, 19, 0, 94, 0, 2, 0, 4, 0,149, 2, 7, 0, 36, 2, - 86, 0, 3, 0, 94, 0,150, 2, 4, 0,151, 2, 4, 0, 19, 0, 84, 0, 6, 0, 7, 0,152, 2, 2, 0,153, 2, 2, 0, 44, 2, - 0, 0, 19, 0, 0, 0,148, 2, 0, 0, 70, 2, 87, 0, 4, 0, 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, - 95, 0, 6, 0, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 96, 0, 1, 0, - 7, 0,154, 2, 97, 0, 5, 0, 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 4, 0, 37, 0, 88, 0, 1, 0, - 7, 0,155, 2, 89, 0, 2, 0, 4, 0,156, 2, 4, 0, 17, 0, 82, 0, 7, 0, 7, 0,137, 2, 47, 0,136, 2, 0, 0, 19, 0, - 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 98, 0, 1, 0, 7, 0,157, 2, 99, 0, 1, 0, 4, 0,158, 2, -100, 0, 1, 0, 0, 0,159, 2,101, 0, 1, 0, 7, 0,137, 2,102, 0, 3, 0, 4, 0,160, 2, 0, 0, 92, 0, 7, 0,161, 2, -104, 0, 4, 0, 7, 0,236, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0,105, 0, 1, 0,104, 0,138, 2,106, 0, 5, 0, - 4, 0,162, 2, 4, 0,163, 2, 0, 0, 19, 0, 0, 0, 44, 2, 0, 0, 70, 2,107, 0, 2, 0, 4, 0,164, 2, 4, 0,163, 2, -108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,165, 2,105, 0,166, 2,107, 0,167, 2, 4, 0, 54, 0, 4, 0,125, 2, - 4, 0,124, 2, 4, 0, 37, 0, 84, 0,168, 2, 92, 0, 14, 0, 12, 0,169, 2, 84, 0,168, 2, 0, 0,170, 2, 0, 0,171, 2, - 0, 0,172, 2, 0, 0,173, 2, 0, 0,174, 2, 0, 0,175, 2, 0, 0,176, 2, 0, 0, 19, 0, 91, 0,121, 2, 91, 0,123, 2, - 2, 0,177, 2, 0, 0,178, 2, 93, 0, 8, 0, 4, 0,179, 2, 4, 0,180, 2, 81, 0,181, 2, 85, 0,182, 2, 4, 0,125, 2, - 4, 0,124, 2, 4, 0, 54, 0, 4, 0, 37, 0,109, 0, 7, 0,109, 0, 0, 0,109, 0, 1, 0, 4, 0, 17, 0, 4, 0, 69, 1, - 0, 0, 20, 0, 46, 0,134, 0, 0, 0,183, 2,110, 0, 7, 0,109, 0,184, 2, 2, 0,185, 2, 2, 0,169, 2, 2, 0,186, 2, - 2, 0, 90, 0, 9, 0,187, 2, 9, 0,188, 2,111, 0, 3, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0,112, 0, 5, 0, -109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0, 2, 0,189, 2, 0, 0,190, 2,113, 0, 5, 0,109, 0,184, 2, 7, 0, 88, 0, - 7, 0,191, 2, 4, 0,192, 2, 4, 0,193, 2,114, 0, 5, 0,109, 0,184, 2, 32, 0,194, 2, 0, 0, 72, 0, 4, 0, 69, 1, - 4, 0, 19, 0,115, 0, 13, 0,109, 0,184, 2, 32, 0,195, 2, 32, 0,196, 2, 32, 0,197, 2, 32, 0,198, 2, 7, 0,199, 2, - 7, 0,200, 2, 7, 0,191, 2, 7, 0,201, 2, 4, 0,202, 2, 4, 0,203, 2, 4, 0, 90, 0, 4, 0,204, 2,116, 0, 5, 0, -109, 0,184, 2, 2, 0,205, 2, 2, 0, 19, 0, 7, 0,206, 2, 32, 0,207, 2,117, 0, 3, 0,109, 0,184, 2, 7, 0,208, 2, - 4, 0, 90, 0,118, 0, 10, 0,109, 0,184, 2, 7, 0,209, 2, 4, 0,210, 2, 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,211, 2, - 2, 0,212, 2, 2, 0,213, 2, 7, 0,214, 2, 0, 0,215, 2,119, 0, 3, 0,109, 0,184, 2, 7, 0, 37, 0, 4, 0, 17, 0, -120, 0, 6, 0,109, 0,184, 2,121, 0,216, 2,122, 0,217, 2,123, 0,218, 2, 7, 0,219, 2, 4, 0, 17, 0,124, 0, 11, 0, -109, 0,184, 2, 52, 0,220, 2, 7, 0,221, 2, 4, 0,222, 2, 0, 0,215, 2, 7, 0,223, 2, 4, 0,224, 2, 32, 0,225, 2, - 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,125, 0, 10, 0,109, 0,184, 2, 32, 0,228, 2, 47, 0,229, 2, 4, 0, 90, 0, - 4, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,126, 0, 3, 0,109, 0,184, 2, - 7, 0,233, 2, 4, 0,234, 2,127, 0, 5, 0,109, 0,184, 2, 7, 0,235, 2, 0, 0,215, 2, 2, 0, 19, 0, 2, 0,236, 2, -128, 0, 8, 0,109, 0,184, 2, 32, 0,164, 0, 7, 0,235, 2, 7, 0,251, 0, 7, 0,106, 0, 0, 0,215, 2, 2, 0, 19, 0, - 2, 0, 17, 0,129, 0, 21, 0,109, 0,184, 2, 32, 0,237, 2, 0, 0,215, 2, 52, 0,220, 2, 32, 0,225, 2, 2, 0, 19, 0, - 2, 0, 37, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,243, 2, - 7, 0,244, 2, 4, 0,224, 2, 4, 0,227, 2, 0, 0,226, 2, 7, 0,245, 2, 7, 0,246, 2, 7, 0, 43, 0,130, 0, 7, 0, -109, 0,184, 2, 2, 0,247, 2, 2, 0,248, 2, 4, 0, 70, 0, 32, 0,164, 0, 7, 0,249, 2, 0, 0,215, 2,131, 0, 10, 0, -109, 0,184, 2, 32, 0,164, 0, 0, 0,250, 2, 7, 0,251, 2, 7, 0,252, 2, 7, 0,244, 2, 4, 0,253, 2, 4, 0,254, 2, - 7, 0,255, 2, 0, 0, 20, 0,132, 0, 1, 0,109, 0,184, 2,133, 0, 7, 0,109, 0,184, 2, 46, 0,134, 0,134, 0, 0, 3, -135, 0, 1, 3,136, 0, 2, 3,137, 0, 3, 3, 12, 0, 4, 3,138, 0, 13, 0,109, 0,184, 2, 84, 0, 5, 3, 84, 0, 6, 3, - 84, 0, 7, 3, 84, 0, 8, 3, 84, 0, 9, 3, 84, 0, 10, 3, 81, 0, 11, 3, 4, 0, 12, 3, 4, 0, 13, 3, 7, 0,219, 2, - 7, 0, 37, 0,139, 0, 14, 3,140, 0, 7, 0,109, 0,184, 2, 84, 0, 5, 3, 84, 0, 15, 3,141, 0, 16, 3,142, 0, 14, 3, - 4, 0, 17, 3, 4, 0, 12, 3,143, 0, 4, 0,109, 0,184, 2, 32, 0,164, 0, 4, 0, 18, 3, 4, 0, 37, 0,144, 0, 2, 0, - 4, 0, 19, 3, 7, 0, 36, 2,145, 0, 2, 0, 4, 0,125, 0, 4, 0, 20, 3,146, 0, 21, 0,109, 0,184, 2, 32, 0,164, 0, - 0, 0,215, 2, 2, 0, 21, 3, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 37, 0, 7, 0, 22, 3, 7, 0, 23, 3, 4, 0, 54, 0, - 4, 0, 24, 3,145, 0, 25, 3,144, 0, 26, 3, 4, 0, 27, 3, 4, 0, 28, 3, 4, 0, 29, 3, 4, 0, 20, 3, 7, 0, 30, 3, - 7, 0, 31, 3, 7, 0, 32, 3, 9, 0, 33, 3,147, 0, 8, 0,109, 0,184, 2,148, 0, 34, 3,141, 0, 16, 3, 4, 0, 35, 3, - 4, 0, 36, 3, 4, 0, 37, 3, 2, 0, 19, 0, 2, 0, 57, 0,149, 0, 8, 0,109, 0,184, 2, 32, 0, 45, 0, 2, 0,255, 0, - 2, 0, 19, 0, 2, 0,205, 2, 2, 0, 57, 0, 7, 0, 38, 3, 7, 0, 39, 3,150, 0, 5, 0,109, 0,184, 2, 4, 0, 40, 3, - 2, 0, 19, 0, 2, 0, 41, 3, 7, 0, 42, 3,151, 0, 7, 0,109, 0,184, 2, 84, 0, 43, 3, 4, 0, 44, 3, 0, 0, 45, 3, - 0, 0, 46, 3, 0, 0, 47, 3, 0, 0, 48, 3,152, 0, 3, 0,109, 0,184, 2,153, 0, 49, 3,137, 0, 3, 3,154, 0, 10, 0, -109, 0,184, 2, 32, 0, 50, 3, 32, 0, 51, 3, 0, 0, 52, 3, 7, 0, 53, 3, 2, 0, 54, 3, 2, 0, 55, 3, 0, 0, 56, 3, - 0, 0, 57, 3, 0, 0,190, 2,155, 0, 9, 0,109, 0,184, 2, 32, 0, 58, 3, 0, 0, 52, 3, 7, 0, 59, 3, 7, 0, 60, 3, - 0, 0, 69, 1, 0, 0,205, 2, 0, 0, 61, 3, 0, 0, 37, 0,156, 0, 1, 0,109, 0,184, 2,157, 0, 27, 0, 27, 0, 31, 0, - 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 62, 3, 2, 0, 19, 0, 2, 0, 63, 3, 2, 0, 64, 3, 2, 0, 65, 3, 2, 0, 70, 0, - 0, 0, 66, 3, 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 17, 0, 4, 0, 37, 0, 7, 0, 69, 3, 7, 0, 70, 3, 7, 0, 71, 3, - 7, 0, 72, 3, 7, 0, 73, 3, 7, 0, 74, 3, 34, 0, 75, 3, 36, 0, 80, 0, 38, 0, 66, 2, 86, 0,115, 2, 7, 0, 76, 3, - 7, 0, 77, 3,157, 0, 78, 3,158, 0, 3, 0,158, 0, 0, 0,158, 0, 1, 0, 0, 0, 20, 0, 71, 0, 3, 0, 7, 0, 79, 3, - 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0,159, 0, 80, 3, 2, 0, 17, 0, 2, 0, 81, 3, - 4, 0, 82, 3, 4, 0, 83, 3, 4, 0, 84, 3, 0, 0, 85, 3, 32, 0, 38, 0, 32, 0, 86, 3, 32, 0, 87, 3, 32, 0, 88, 3, - 32, 0, 89, 3, 36, 0, 80, 0, 77, 0, 65, 2, 71, 0, 6, 2,160, 0, 90, 3,160, 0, 91, 3,161, 0, 92, 3, 9, 0, 2, 0, -162, 0, 93, 3, 12, 0, 94, 3, 12, 0,109, 2, 12, 0, 25, 2, 12, 0, 95, 3, 12, 0, 96, 3, 4, 0, 69, 1, 4, 0, 97, 3, - 66, 0, 27, 2, 0, 0, 98, 3, 4, 0, 29, 2, 4, 0, 99, 3, 7, 0, 64, 1, 7, 0,100, 3, 7, 0,101, 3, 7, 0,172, 0, - 7, 0,102, 3, 7, 0, 65, 1, 7, 0,103, 3, 7, 0, 15, 2, 7, 0,104, 3, 7, 0,105, 3, 7, 0,106, 3, 7, 0,107, 3, - 7, 0,108, 3, 7, 0,109, 3, 7, 0,251, 2, 7, 0,110, 3, 7, 0,240, 0, 4, 0,111, 3, 2, 0, 19, 0, 2, 0,112, 3, - 2, 0,113, 3, 2, 0,114, 3, 2, 0,115, 3, 2, 0,116, 3, 2, 0,117, 3, 2, 0,118, 3, 2, 0,119, 3, 2, 0,120, 3, - 2, 0,121, 3, 2, 0,122, 3, 4, 0,123, 3, 4, 0,124, 3, 4, 0,125, 3, 4, 0,126, 3, 7, 0,127, 3, 7, 0,101, 2, - 7, 0,128, 3, 7, 0,129, 3, 7, 0,130, 3, 7, 0,131, 3, 7, 0,132, 3, 7, 0,215, 0, 7, 0,133, 3, 7, 0,134, 3, - 7, 0,135, 3, 7, 0,136, 3, 2, 0,137, 3, 0, 0,138, 3, 0, 0,139, 3, 0, 0,140, 3, 0, 0,141, 3, 7, 0,142, 3, - 7, 0,143, 3, 12, 0,144, 3, 12, 0,145, 3, 12, 0,146, 3, 12, 0,147, 3, 7, 0,148, 3, 2, 0,156, 2, 2, 0,149, 3, - 7, 0,138, 2, 4, 0,150, 3, 4, 0,151, 3,163, 0,152, 3, 2, 0,153, 3, 2, 0,247, 0, 7, 0,154, 3, 12, 0,155, 3, - 12, 0,156, 3, 12, 0,157, 3, 12, 0,158, 3,164, 0, 61, 1,165, 0,159, 3, 67, 0,160, 3, 2, 0,161, 3, 2, 0,162, 3, - 2, 0,163, 3, 2, 0,164, 3, 7, 0,130, 2, 2, 0,165, 3, 2, 0,166, 3,153, 0,167, 3,141, 0,168, 3,141, 0,169, 3, - 4, 0,170, 3, 4, 0,171, 3, 4, 0,172, 3, 4, 0, 70, 0, 12, 0,173, 3, 12, 0,174, 3, 12, 0,175, 3,166, 0, 14, 0, -166, 0, 0, 0,166, 0, 1, 0, 32, 0, 38, 0, 7, 0,251, 2, 7, 0, 66, 1, 7, 0,252, 2, 7, 0,244, 2, 0, 0, 20, 0, - 4, 0,253, 2, 4, 0,254, 2, 4, 0,176, 3, 2, 0, 17, 0, 2, 0,177, 3, 7, 0,255, 2,167, 0, 12, 0,167, 0, 0, 0, -167, 0, 1, 0, 32, 0, 45, 0, 4, 0,178, 3, 4, 0,156, 2, 4, 0,179, 3, 4, 0, 17, 0, 4, 0,180, 3, 7, 0, 66, 1, - 7, 0,181, 3, 7, 0,182, 3, 7, 0,154, 2,164, 0, 40, 0, 4, 0, 19, 0, 2, 0,183, 3, 2, 0,184, 3, 2, 0,244, 2, - 2, 0,185, 3, 2, 0,186, 3, 2, 0,187, 3, 2, 0,188, 3, 2, 0,189, 3, 7, 0,190, 3, 7, 0,191, 3, 7, 0,192, 3, - 7, 0,193, 3, 7, 0,194, 3, 7, 0,195, 3, 7, 0,196, 3, 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, - 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3, 7, 0,204, 3, 7, 0,205, 3, 7, 0, 37, 0, 7, 0,206, 3, 7, 0,207, 3, - 7, 0,208, 3, 7, 0,209, 3, 7, 0,210, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, - 52, 0,165, 0,168, 0,216, 3, 7, 0,217, 3, 4, 0,193, 2,169, 0, 5, 0, 67, 0,241, 1, 7, 0,218, 3, 7, 0,219, 3, - 2, 0, 19, 0, 2, 0,220, 3,170, 0, 9, 0,170, 0, 0, 0,170, 0, 1, 0, 4, 0,221, 3, 4, 0,222, 3, 4, 0,223, 3, - 4, 0, 19, 0, 4, 0,224, 3, 9, 0,225, 3, 9, 0,226, 3,137, 0, 19, 0,137, 0, 0, 0,137, 0, 1, 0, 4, 0, 19, 0, - 4, 0,227, 3, 4, 0,228, 3, 4, 0,229, 3, 4, 0,230, 3, 4, 0,231, 3, 4, 0,232, 3, 4, 0,222, 3, 4, 0,156, 2, - 4, 0, 57, 0, 0, 0,233, 3, 0, 0,234, 3, 0, 0,235, 3, 0, 0,236, 3, 12, 0,237, 3,171, 0,238, 3, 9, 0,239, 3, -172, 0, 1, 0, 7, 0, 43, 2,163, 0, 30, 0, 4, 0, 19, 0, 7, 0,240, 3, 7, 0,241, 3, 7, 0,242, 3, 4, 0,243, 3, - 4, 0,244, 3, 4, 0,245, 3, 4, 0,246, 3, 7, 0,247, 3, 7, 0,248, 3, 7, 0,249, 3, 7, 0,250, 3, 7, 0,251, 3, - 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, 7, 0,255, 3, 7, 0, 0, 4, 7, 0, 1, 4, 7, 0, 2, 4, 7, 0, 3, 4, - 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, 7, 0, 8, 4, 4, 0, 9, 4, 4, 0, 10, 4, 7, 0, 11, 4, - 7, 0,133, 3,165, 0, 54, 0, 4, 0,222, 3, 4, 0, 12, 4,173, 0, 13, 4,174, 0, 14, 4, 0, 0, 37, 0, 0, 0, 15, 4, - 2, 0, 16, 4, 7, 0, 17, 4, 0, 0, 18, 4, 7, 0, 19, 4, 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, - 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 2, 0, 28, 4, 0, 0, 29, 4, 2, 0, 30, 4, 7, 0, 31, 4, - 7, 0, 32, 4, 0, 0, 33, 4, 4, 0,126, 0, 4, 0, 34, 4, 4, 0, 35, 4, 2, 0, 36, 4, 2, 0, 37, 4,172, 0, 38, 4, - 4, 0, 39, 4, 4, 0, 82, 0, 7, 0, 40, 4, 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, 2, 0, 44, 4, 2, 0, 45, 4, - 2, 0, 46, 4, 2, 0, 47, 4, 2, 0, 48, 4, 2, 0, 49, 4, 2, 0, 50, 4, 2, 0, 51, 4,175, 0, 52, 4, 7, 0, 53, 4, - 7, 0, 54, 4,137, 0, 55, 4, 12, 0, 4, 3,169, 0, 56, 4, 7, 0, 57, 4, 7, 0, 58, 4, 7, 0, 59, 4, 0, 0, 60, 4, -153, 0, 49, 0,152, 0, 61, 4, 2, 0, 17, 0, 2, 0, 62, 4, 2, 0, 63, 4, 2, 0, 64, 4, 7, 0, 65, 4, 2, 0, 66, 4, - 2, 0, 67, 4, 7, 0, 68, 4, 2, 0, 69, 4, 2, 0, 70, 4, 7, 0, 71, 4, 7, 0, 72, 4, 7, 0, 73, 4, 7, 0, 74, 4, - 7, 0, 75, 4, 7, 0, 76, 4, 4, 0, 77, 4, 7, 0, 78, 4, 7, 0, 79, 4, 7, 0, 80, 4, 80, 0, 81, 4, 80, 0, 82, 4, - 80, 0, 83, 4, 0, 0, 84, 4, 7, 0, 85, 4, 7, 0, 86, 4, 36, 0, 80, 0, 2, 0, 87, 4, 0, 0, 88, 4, 0, 0, 89, 4, - 7, 0, 90, 4, 4, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, 4, 0, 94, 4, 4, 0, 19, 0, 7, 0, 95, 4, 7, 0, 96, 4, - 7, 0, 97, 4, 84, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, - 7, 0,105, 4, 4, 0,106, 4,176, 0, 76, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,175, 0, 2, 0, 70, 1, 2, 0,104, 1, - 2, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, 7, 0,111, 4, 7, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, - 7, 0,115, 4, 7, 0,162, 1, 7, 0,164, 1, 7, 0,163, 1, 7, 0,116, 4, 4, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4, - 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 2, 0,125, 4, 2, 0, 69, 1, 2, 0,126, 4, - 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, 2, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 7, 0,134, 4, - 7, 0,135, 4, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, - 7, 0,143, 4, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, 2, 0,147, 4, 7, 0,148, 4, 7, 0,149, 4, 7, 0,150, 4, - 7, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, - 7, 0,159, 4, 7, 0,160, 4, 2, 0,161, 4, 2, 0,162, 4, 2, 0,163, 4, 2, 0,164, 4, 2, 0,165, 4, 2, 0, 19, 0, - 7, 0,166, 4, 7, 0,167, 4, 36, 0, 80, 0, 51, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0,177, 0, 8, 0, -177, 0, 0, 0,177, 0, 1, 0, 4, 0,111, 3, 4, 0,168, 4, 4, 0, 19, 0, 2, 0,169, 4, 2, 0,170, 4, 32, 0,164, 0, -178, 0, 13, 0, 9, 0,171, 4, 9, 0,172, 4, 4, 0,173, 4, 4, 0,174, 4, 4, 0,175, 4, 4, 0,176, 4, 4, 0,177, 4, - 4, 0,178, 4, 4, 0,179, 4, 4, 0,180, 4, 4, 0,181, 4, 4, 0, 37, 0, 0, 0,182, 4,179, 0, 5, 0, 9, 0,183, 4, - 9, 0,184, 4, 4, 0,185, 4, 4, 0, 70, 0, 0, 0,186, 4,180, 0, 10, 0, 4, 0,187, 4, 4, 0,188, 4, 4, 0,189, 4, - 4, 0,190, 4, 4, 0,191, 4, 4, 0,192, 4, 4, 0,193, 4, 4, 0,194, 4, 4, 0,195, 4, 4, 0,196, 4,181, 0, 15, 0, - 4, 0, 17, 0, 4, 0,189, 4, 4, 0,197, 4, 4, 0,198, 4, 4, 0,199, 4, 4, 0,200, 4, 7, 0,201, 4, 4, 0,202, 4, - 4, 0, 90, 0, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, 26, 0, 30, 0,182, 0, 7, 0, - 4, 0,208, 4, 7, 0,209, 4, 7, 0,210, 4, 7, 0,211, 4, 4, 0,212, 4, 2, 0, 19, 0, 2, 0, 37, 0,183, 0, 11, 0, -183, 0, 0, 0,183, 0, 1, 0, 0, 0, 20, 0, 66, 0,213, 4, 67, 0,214, 4, 4, 0,111, 3, 4, 0,215, 4, 4, 0,216, 4, - 4, 0, 37, 0, 4, 0,217, 4, 4, 0,218, 4,184, 0,135, 0,178, 0,219, 4,179, 0,220, 4,180, 0,221, 4,181, 0,222, 4, - 4, 0, 17, 3, 4, 0,126, 0, 4, 0, 34, 4, 4, 0,223, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 2, 0, 19, 0, - 2, 0,227, 4, 7, 0,101, 2, 7, 0,228, 4, 7, 0,229, 4, 7, 0,230, 4, 7, 0,231, 4, 7, 0,232, 4, 2, 0,233, 4, - 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,246, 0, 2, 0,237, 4, 2, 0,238, 4, 2, 0,239, 4, 2, 0,240, 4, - 2, 0,241, 4, 2, 0, 91, 1, 2, 0,106, 0, 2, 0,242, 4, 2, 0,243, 4, 2, 0,244, 4, 2, 0,245, 4, 2, 0,246, 4, - 2, 0,247, 4, 2, 0,248, 4, 2, 0,249, 4, 2, 0,250, 4, 2, 0, 92, 1, 2, 0,251, 4, 2, 0,252, 4, 2, 0,253, 4, - 2, 0,254, 4, 4, 0,255, 4, 4, 0, 69, 1, 4, 0, 0, 5, 2, 0, 1, 5, 2, 0, 2, 5, 2, 0, 3, 5, 2, 0,121, 1, - 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 24, 0, 8, 5, 24, 0, 9, 5, 23, 0, 10, 5, 12, 0, 11, 5, - 2, 0, 12, 5, 2, 0, 37, 0, 7, 0, 13, 5, 7, 0, 14, 5, 7, 0, 15, 5, 7, 0, 16, 5, 4, 0, 17, 5, 7, 0, 18, 5, - 7, 0, 19, 5, 7, 0, 20, 5, 7, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, - 2, 0, 27, 5, 7, 0, 28, 5, 7, 0, 29, 5, 7, 0, 30, 5, 2, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 2, 0, 34, 5, - 2, 0, 35, 5, 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, 2, 0, 39, 5, 2, 0, 40, 5, 4, 0, 41, 5, 4, 0, 42, 5, - 4, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 7, 0, 46, 5, 4, 0, 47, 5, 4, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5, - 7, 0, 51, 5, 7, 0, 52, 5, 7, 0, 53, 5, 7, 0, 54, 5, 7, 0, 55, 5, 7, 0, 56, 5, 7, 0, 57, 5, 7, 0, 58, 5, - 7, 0, 59, 5, 0, 0, 60, 5, 0, 0, 61, 5, 4, 0, 62, 5, 2, 0, 63, 5, 2, 0,238, 1, 0, 0, 64, 5, 7, 0, 65, 5, - 7, 0, 66, 5, 4, 0, 67, 5, 4, 0, 68, 5, 7, 0, 69, 5, 7, 0, 70, 5, 2, 0, 71, 5, 2, 0, 72, 5, 7, 0, 73, 5, - 2, 0, 74, 5, 2, 0, 75, 5, 4, 0, 76, 5, 2, 0, 77, 5, 2, 0, 78, 5, 2, 0, 79, 5, 2, 0, 80, 5, 7, 0, 81, 5, - 7, 0, 70, 0, 42, 0, 82, 5, 0, 0, 83, 5,185, 0, 9, 0,185, 0, 0, 0,185, 0, 1, 0, 0, 0, 20, 0, 2, 0, 84, 5, - 2, 0, 85, 5, 2, 0, 86, 5, 2, 0, 43, 0, 7, 0, 87, 5, 7, 0, 70, 0,186, 0, 7, 0, 2, 0,210, 2, 2, 0, 69, 1, - 2, 0,109, 0, 2, 0, 88, 5, 7, 0, 89, 5, 7, 0, 70, 0, 42, 0, 90, 5,187, 0, 5, 0, 7, 0, 91, 5, 0, 0, 17, 0, - 0, 0, 43, 0, 0, 0, 70, 0, 0, 0,238, 1,188, 0, 26, 0, 7, 0,123, 4, 7, 0,124, 4, 2, 0, 69, 1, 2, 0, 19, 0, - 2, 0, 92, 5, 2, 0,136, 1, 2, 0,126, 4, 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, 2, 0,131, 4, -187, 0, 93, 5, 2, 0,233, 4, 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,246, 0, 2, 0,237, 4, 2, 0, 94, 5, - 2, 0,238, 4,186, 0, 95, 5, 2, 0, 96, 5, 2, 0,240, 4, 2, 0,243, 4, 2, 0,244, 4,189, 0, 5, 0,189, 0, 0, 0, -189, 0, 1, 0, 4, 0,221, 3, 0, 0,233, 3, 4, 0, 19, 0,190, 0, 6, 0,191, 0, 97, 5, 4, 0, 98, 5, 4, 0, 99, 5, - 9, 0,100, 5, 0, 0,101, 5, 4, 0, 37, 0,192, 0, 6, 0,190, 0,102, 5, 2, 0, 19, 0, 2, 0,103, 5, 2, 0,104, 5, - 2, 0,105, 5, 9, 0,106, 5,193, 0, 4, 0, 2, 0,106, 0, 2, 0,221, 2, 2, 0,227, 3, 2, 0,107, 5,194, 0, 14, 0, - 2, 0, 19, 0, 2, 0,108, 5, 2, 0,109, 5, 2, 0,110, 5,193, 0,111, 5, 9, 0,106, 5, 7, 0,112, 5, 7, 0, 57, 0, - 4, 0,113, 5, 4, 0,114, 5, 4, 0,115, 5, 4, 0,116, 5, 46, 0,134, 0, 32, 0,164, 0,195, 0, 4, 0,195, 0, 0, 0, -195, 0, 1, 0, 0, 0,117, 5, 7, 0,118, 5,196, 0, 6, 0,190, 0,102, 5, 7, 0,119, 5, 4, 0, 90, 0, 0, 0,120, 5, - 0, 0,121, 5, 0, 0,190, 2,197, 0, 7, 0,190, 0,102, 5, 2, 0, 69, 1, 2, 0, 19, 0, 4, 0, 36, 0, 4, 0,122, 5, - 86, 0,123, 5, 9, 0,106, 5,198, 0, 74, 0,197, 0,124, 5,197, 0,125, 5,196, 0, 80, 3, 7, 0,126, 5, 2, 0,127, 5, - 2, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, 2, 0,227, 3, 2, 0,131, 5, 7, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5, - 2, 0,135, 5, 2, 0,113, 5, 2, 0,136, 5, 2, 0,137, 5, 2, 0,138, 5, 2, 0,139, 5, 7, 0,140, 5, 7, 0,141, 5, - 7, 0,142, 5, 2, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5, 2, 0,146, 5, 2, 0,147, 5, 2, 0,148, 5, 2, 0,149, 5, -192, 0,150, 5,194, 0,151, 5, 7, 0,152, 5, 7, 0,153, 5, 7, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 0, 0,157, 5, - 0, 0,158, 5, 0, 0,159, 5, 0, 0,160, 5, 0, 0,161, 5, 0, 0,162, 5, 2, 0,163, 5, 7, 0,164, 5, 7, 0,165, 5, - 7, 0,166, 5, 7, 0,167, 5, 7, 0,168, 5, 7, 0,169, 5, 7, 0,170, 5, 7, 0,171, 5, 7, 0,172, 5, 7, 0,173, 5, - 2, 0,174, 5, 0, 0,175, 5, 0, 0,176, 5, 0, 0,177, 5, 0, 0,178, 5, 32, 0,179, 5, 0, 0,180, 5, 0, 0,181, 5, - 0, 0,182, 5, 0, 0,183, 5, 0, 0,184, 5, 0, 0,185, 5, 0, 0,186, 5, 0, 0,187, 5, 2, 0,188, 5, 2, 0,189, 5, - 2, 0,190, 5, 2, 0,191, 5, 2, 0,192, 5, 4, 0,193, 5, 4, 0,194, 5,199, 0, 8, 0, 4, 0,195, 5, 4, 0,196, 5, - 4, 0,197, 5, 4, 0,198, 5, 4, 0,199, 5, 4, 0,200, 5, 4, 0, 54, 0, 4, 0,125, 2,200, 0, 3, 0, 7, 0,201, 5, - 2, 0,202, 5, 2, 0, 19, 0,201, 0, 2, 0, 7, 0,203, 5, 4, 0, 19, 0, 46, 0, 38, 0, 27, 0, 31, 0, 39, 0, 75, 0, - 32, 0,204, 5,176, 0,205, 5, 46, 0,206, 5, 47, 0,238, 0, 12, 0,207, 5,177, 0,208, 5, 32, 0,209, 5, 7, 0,210, 5, - 7, 0,211, 5, 7, 0,212, 5, 7, 0,213, 5, 4, 0,111, 3, 2, 0, 19, 0, 2, 0, 63, 1, 60, 0, 58, 1,202, 0,214, 5, -198, 0,215, 5,203, 0,216, 5,184, 0,182, 0,182, 0,217, 5, 12, 0,100, 0, 12, 0,218, 5, 12, 0,219, 5,204, 0,220, 5, - 2, 0,221, 5, 2, 0,222, 5, 2, 0,247, 0, 2, 0,223, 5, 4, 0,224, 5, 4, 0,225, 5, 12, 0,226, 5,187, 0, 93, 5, -188, 0,227, 5,200, 0,228, 5,162, 0, 93, 3,201, 0,229, 5,205, 0, 6, 0, 47, 0,238, 0, 45, 0, 57, 1, 7, 0, 89, 2, - 7, 0, 90, 2, 7, 0,106, 0, 7, 0,230, 5,206, 0, 36, 0, 7, 0,231, 5, 7, 0,232, 5, 7, 0,233, 5, 7, 0,234, 5, - 7, 0,235, 5, 7, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, 7, 0,239, 5, 7, 0, 76, 1, 7, 0,240, 5, 7, 0,241, 5, - 7, 0,242, 5, 7, 0,243, 5, 7, 0,171, 0, 2, 0,244, 5, 2, 0,245, 5, 2, 0, 70, 2, 2, 0,246, 5, 2, 0,247, 5, - 2, 0,248, 5, 2, 0,249, 5, 7, 0,250, 5, 7, 0,251, 5, 71, 0,252, 5,162, 0, 93, 3,206, 0,253, 5,207, 0,254, 5, -208, 0,255, 5,209, 0, 0, 6,210, 0, 1, 6,211, 0, 2, 6, 7, 0, 3, 6, 2, 0, 4, 6, 2, 0, 5, 6, 4, 0,238, 1, -212, 0, 54, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 7, 0,239, 5, - 7, 0, 76, 1, 7, 0, 43, 0, 4, 0, 10, 6, 2, 0,248, 5, 2, 0,249, 5, 32, 0,204, 5, 32, 0, 11, 6,205, 0, 12, 6, -212, 0,253, 5, 0, 0, 13, 6, 4, 0,111, 3, 4, 0, 14, 6, 2, 0, 15, 6, 2, 0, 70, 0, 2, 0, 16, 6, 2, 0, 17, 6, - 2, 0,238, 1, 2, 0, 19, 0, 2, 0, 28, 2, 2, 0, 18, 6, 7, 0,112, 0, 7, 0, 19, 6, 7, 0, 20, 6, 7, 0, 21, 6, - 7, 0, 22, 6, 7, 0, 23, 6, 7, 0,171, 0, 7, 0,210, 5, 2, 0, 24, 6, 2, 0,121, 1, 2, 0, 25, 6, 2, 0, 26, 6, - 2, 0, 27, 6, 2, 0, 28, 6, 2, 0, 29, 6, 2, 0, 30, 6, 2, 0, 31, 6, 2, 0, 32, 6, 4, 0, 33, 6, 12, 0, 34, 6, - 2, 0, 35, 6, 2, 0,139, 2, 2, 0, 36, 6, 0, 0, 37, 6, 0, 0, 38, 6, 9, 0, 39, 6,162, 0, 93, 3,214, 0, 25, 0, - 24, 0, 36, 0, 24, 0, 64, 0, 23, 0, 40, 6, 23, 0, 41, 6, 23, 0, 42, 6, 7, 0, 43, 6, 7, 0, 44, 6, 7, 0, 45, 6, - 7, 0, 46, 6, 2, 0, 47, 6, 2, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 19, 0, 2, 0, 52, 6, - 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 17, 6, 7, 0, 57, 6, 7, 0, 58, 6, 4, 0, 59, 6, - 4, 0, 60, 6,213, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, -215, 0, 8, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,216, 0, 61, 6, - 46, 0,134, 0,217, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, -214, 0, 62, 6,218, 0, 63, 6, 12, 0, 64, 6, 2, 0, 69, 1, 2, 0, 65, 6, 4, 0, 19, 0, 7, 0, 66, 6, 4, 0, 17, 6, -219, 0, 20, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,207, 0,254, 5, -214, 0, 62, 6, 2, 0, 67, 6, 2, 0, 68, 6, 2, 0, 69, 6, 2, 0, 70, 6, 2, 0, 52, 6, 2, 0, 71, 6, 0, 0, 19, 0, - 0, 0,136, 1, 9, 0, 65, 2, 4, 0, 72, 6, 4, 0, 73, 6, 27, 0, 74, 6,220, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, 7, 0, 89, 2, 7, 0, 90, 2, 2, 0, 67, 6, - 2, 0, 75, 6, 2, 0, 76, 6, 2, 0, 77, 6, 4, 0, 19, 0, 7, 0, 78, 6,162, 0, 93, 3,221, 0, 16, 0, 0, 0, 79, 6, - 0, 0, 80, 6, 0, 0, 81, 6, 0, 0, 82, 6, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 83, 6, 2, 0, 84, 6, 2, 0,181, 1, - 2, 0, 85, 6, 4, 0, 86, 6, 4, 0, 87, 6, 2, 0, 88, 6, 2, 0, 89, 6, 0, 0, 90, 6, 0, 0, 91, 6,222, 0, 16, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 4, 0, 37, 0,221, 0, 92, 6,223, 0, 93, 6, 12, 0, 94, 6, - 12, 0, 95, 6,224, 0, 96, 6,211, 0, 97, 6,225, 0, 98, 6, 2, 0, 99, 6, 2, 0,100, 6, 2, 0,101, 6, 2, 0, 70, 0, -226, 0, 17, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, - 12, 0,102, 6,227, 0,103, 6, 0, 0,104, 6,228, 0,105, 6, 4, 0,106, 6, 4, 0,107, 6, 2, 0, 19, 0, 2, 0,108, 6, - 2, 0,109, 6, 2, 0, 37, 0,229, 0, 29, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, - 2, 0, 9, 6, 47, 0,229, 2, 45, 0, 57, 1, 63, 0,110, 6, 2, 0,133, 0, 2, 0,111, 6, 2, 0, 70, 0, 2, 0,112, 6, - 4, 0, 19, 0, 2, 0,113, 6, 2, 0,114, 6, 2, 0,115, 6, 2, 0,238, 1, 0, 0,116, 6, 0, 0,117, 6, 0, 0,118, 6, - 0, 0, 17, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 78, 6, 7, 0,121, 1, 7, 0,119, 6, 7, 0,120, 6,162, 0, 93, 3, -230, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 65, 6, - 2, 0, 19, 0, 4, 0, 37, 0,218, 0, 63, 6,214, 0, 62, 6,231, 0, 27, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, - 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 42, 0,121, 6, 4, 0,122, 6, 4, 0,123, 6, 2, 0, 90, 0, 2, 0,133, 0, - 2, 0,124, 6, 0, 0,125, 6, 0, 0,126, 6, 4, 0,127, 6, 4, 0,128, 6, 4, 0,129, 6, 4, 0,130, 6, 2, 0,131, 6, - 2, 0,132, 6, 7, 0,133, 6, 23, 0,134, 6, 23, 0,135, 6, 4, 0,136, 6, 4, 0,137, 6, 0, 0,138, 6, 0, 0,139, 6, -232, 0, 10, 0, 27, 0, 31, 0, 9, 0,140, 6, 9, 0,141, 6, 9, 0,142, 6, 9, 0,143, 6, 9, 0,144, 6, 4, 0, 90, 0, - 4, 0,145, 6, 0, 0,146, 6, 0, 0,147, 6,233, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, - 7, 0, 8, 6,232, 0,148, 6, 2, 0, 90, 0, 2, 0,133, 0, 4, 0, 43, 0, 9, 0,149, 6,234, 0, 8, 0,213, 0, 0, 0, -213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6,214, 0, 62, 6, 4, 0, 19, 0, 4, 0,150, 6,235, 0, 23, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, 27, 0,151, 6, - 27, 0, 81, 0, 2, 0, 19, 0, 2, 0,133, 0, 7, 0,152, 6, 9, 0,153, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,154, 6, - 7, 0,155, 6, 60, 0, 58, 1, 60, 0,156, 6, 4, 0,157, 6, 2, 0,158, 6, 2, 0, 37, 0,162, 0, 93, 3,236, 0, 10, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 19, 0, 2, 0,120, 3, - 4, 0, 37, 0,162, 0, 93, 3,237, 0, 42, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, - 2, 0, 9, 6,214, 0, 62, 6,223, 0, 93, 6, 0, 0, 79, 6, 0, 0, 80, 6, 0, 0, 81, 6, 2, 0, 17, 0, 2, 0, 89, 6, - 2, 0, 19, 0, 2, 0, 83, 6, 9, 0,153, 6, 4, 0, 86, 6, 4, 0,159, 6, 4, 0,160, 6, 4, 0, 87, 6, 23, 0,161, 6, - 23, 0,162, 6, 7, 0,163, 6, 7, 0,164, 6, 7, 0,165, 6, 7, 0,152, 6, 2, 0,166, 6, 2, 0,237, 0, 2, 0,181, 1, - 2, 0, 85, 6, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0,167, 6, 2, 0,168, 6, 9, 0,169, 6, 9, 0,170, 6, 9, 0,171, 6, - 9, 0,172, 6, 9, 0,173, 6, 2, 0,174, 6, 0, 0, 91, 6, 57, 0,175, 6,238, 0, 7, 0,238, 0, 0, 0,238, 0, 1, 0, - 4, 0,176, 6, 4, 0, 23, 0, 0, 0, 84, 0, 4, 0,177, 6, 4, 0, 17, 0,239, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 4, 0, 17, 0, 4, 0,178, 6, 4, 0, 19, 0, 4, 0,124, 6, - 12, 0,179, 6, 12, 0,180, 6, 0, 0,181, 6, 0, 0,182, 6,240, 0, 5, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, - 4, 0, 7, 6, 4, 0, 37, 0,241, 0, 7, 0,241, 0, 0, 0,241, 0, 1, 0, 0, 0,183, 6, 2, 0,184, 6, 2, 0,185, 6, - 2, 0,186, 6, 2, 0, 37, 0,242, 0, 12, 0, 2, 0,185, 6, 2, 0,187, 6, 2, 0,188, 6, 0, 0,190, 2, 2, 0,189, 6, - 2, 0,190, 6, 2, 0,191, 6, 2, 0,192, 6, 2, 0,193, 6, 2, 0, 52, 6, 7, 0,194, 6, 7, 0,195, 6,243, 0, 18, 0, -243, 0, 0, 0,243, 0, 1, 0, 0, 0,233, 3,242, 0,196, 6,242, 0,197, 6,242, 0,198, 6,242, 0,199, 6, 7, 0,200, 6, - 2, 0,201, 6, 2, 0,202, 6, 2, 0,203, 6, 2, 0,204, 6, 2, 0,205, 6, 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, - 2, 0,209, 6, 2, 0,210, 6,244, 0, 10, 0, 0, 0,211, 6, 0, 0,212, 6, 0, 0,213, 6, 0, 0,214, 6, 0, 0,215, 6, - 0, 0,216, 6, 2, 0,217, 6, 2, 0,218, 6, 2, 0,219, 6, 2, 0, 37, 0,245, 0, 8, 0, 0, 0,220, 6, 0, 0,221, 6, - 0, 0,222, 6, 0, 0,223, 6, 0, 0,224, 6, 0, 0,225, 6, 7, 0,230, 5, 7, 0, 37, 0,246, 0, 17, 0,244, 0,226, 6, -244, 0,227, 6,244, 0,228, 6,244, 0,229, 6,244, 0,230, 6,244, 0,231, 6,244, 0,232, 6,244, 0,233, 6,244, 0,234, 6, -244, 0,235, 6,244, 0,236, 6,244, 0,237, 6,244, 0,238, 6,244, 0,239, 6,244, 0,240, 6,245, 0,241, 6, 0, 0,242, 6, -247, 0, 71, 0, 0, 0,243, 6, 0, 0,244, 6, 0, 0,215, 6, 0, 0,245, 6, 0, 0,246, 6, 0, 0,247, 6, 0, 0,248, 6, - 0, 0,249, 6, 0, 0,250, 6, 0, 0,251, 6, 0, 0,252, 6, 0, 0,253, 6, 0, 0,254, 6, 0, 0,255, 6, 0, 0, 0, 7, - 0, 0, 1, 7, 0, 0, 2, 7, 0, 0, 3, 7, 0, 0, 4, 7, 0, 0, 5, 7, 0, 0, 6, 7, 0, 0, 7, 7, 0, 0, 8, 7, - 0, 0, 9, 7, 0, 0, 10, 7, 0, 0, 11, 7, 0, 0, 12, 7, 0, 0, 13, 7, 0, 0, 14, 7, 0, 0, 15, 7, 0, 0, 16, 7, - 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, 0, 0, 21, 7, 0, 0, 22, 7, 0, 0, 23, 7, 0, 0, 24, 7, - 0, 0, 25, 7, 0, 0, 26, 7, 0, 0, 27, 7, 0, 0, 28, 7, 0, 0, 29, 7, 0, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7, - 0, 0, 33, 7, 0, 0, 34, 7, 0, 0, 35, 7, 0, 0, 36, 7, 0, 0, 37, 7, 0, 0, 38, 7, 0, 0, 39, 7, 0, 0, 40, 7, - 0, 0, 41, 7, 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, - 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 92, 0, -248, 0, 5, 0, 0, 0, 56, 7, 0, 0, 11, 7, 0, 0, 13, 7, 2, 0, 19, 0, 2, 0, 37, 0,249, 0, 24, 0,249, 0, 0, 0, -249, 0, 1, 0, 0, 0, 20, 0,246, 0, 57, 7,247, 0, 58, 7,247, 0, 59, 7,247, 0, 60, 7,247, 0, 61, 7,247, 0, 62, 7, -247, 0, 63, 7,247, 0, 64, 7,247, 0, 65, 7,247, 0, 66, 7,247, 0, 67, 7,247, 0, 68, 7,247, 0, 69, 7,247, 0, 70, 7, -247, 0, 71, 7,247, 0, 72, 7,247, 0, 73, 7,247, 0, 74, 7,248, 0, 75, 7, 4, 0, 76, 7, 4, 0, 37, 0,250, 0, 5, 0, - 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,138, 2, 7, 0, 77, 7, 7, 0, 43, 2,251, 0, 73, 0, 4, 0, 19, 0, 4, 0, 78, 7, - 4, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, 0, 0, 82, 7, 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, - 0, 0, 87, 7, 0, 0, 88, 7, 2, 0, 89, 7, 2, 0, 37, 0, 4, 0, 90, 7, 4, 0, 91, 7, 4, 0, 92, 7, 4, 0, 93, 7, - 2, 0, 94, 7, 2, 0, 95, 7, 4, 0, 96, 7, 4, 0, 97, 7, 4, 0, 98, 7, 4, 0, 99, 7, 4, 0,100, 7, 4, 0,179, 6, - 4, 0,101, 7, 2, 0,102, 7, 2, 0,103, 7, 2, 0,104, 7, 2, 0,105, 7, 12, 0,106, 7, 12, 0,107, 7, 12, 0,108, 7, - 12, 0,109, 7, 0, 0,110, 7, 2, 0,111, 7, 2, 0,112, 7, 2, 0,113, 7, 2, 0,114, 7, 2, 0,115, 7, 2, 0,116, 7, - 2, 0,117, 7, 2, 0,118, 7,250, 0,119, 7, 2, 0,120, 7, 2, 0,121, 7, 2, 0,122, 7, 2, 0,123, 7, 2, 0,124, 7, - 2, 0,125, 7, 2, 0,126, 7, 2, 0,127, 7, 4, 0,128, 7, 4, 0,129, 7, 2, 0,130, 7, 2, 0,131, 7, 2, 0,132, 7, - 2, 0,133, 7, 2, 0,134, 7, 2, 0,135, 7, 2, 0,136, 7, 2, 0,137, 7, 2, 0,138, 7, 2, 0,139, 7, 2, 0,140, 7, - 2, 0,141, 7, 0, 0,142, 7, 0, 0,143, 7, 7, 0,144, 7, 2, 0,155, 5, 2, 0,156, 5, 55, 0,145, 7,216, 0, 21, 0, - 27, 0, 31, 0, 12, 0,146, 7, 12, 0,147, 7, 12, 0,148, 7, 12, 0, 6, 6, 46, 0,134, 0, 46, 0,149, 7, 2, 0,150, 7, - 2, 0,151, 7, 2, 0,152, 7, 2, 0,153, 7, 2, 0,154, 7, 2, 0,155, 7, 2, 0,156, 7, 2, 0, 37, 0, 2, 0,157, 7, - 2, 0,158, 7, 4, 0, 70, 0,211, 0,159, 7, 9, 0,160, 7, 2, 0,161, 7,252, 0, 5, 0,252, 0, 0, 0,252, 0, 1, 0, -252, 0,162, 7, 13, 0,163, 7, 4, 0, 19, 0,253, 0, 7, 0,253, 0, 0, 0,253, 0, 1, 0,252, 0,164, 7,252, 0,165, 7, - 2, 0, 9, 5, 2, 0, 19, 0, 4, 0, 37, 0,254, 0, 25, 0,254, 0, 0, 0,254, 0, 1, 0,255, 0,166, 7, 0, 1, 98, 6, - 0, 0,167, 7, 0, 0,168, 7, 0, 0,169, 7, 2, 0,170, 7, 2, 0,171, 7, 2, 0,172, 7, 2, 0,173, 7, 2, 0,174, 7, - 2, 0, 37, 0, 2, 0, 19, 0, 2, 0,175, 7, 2, 0,176, 7, 2, 0,177, 7, 4, 0,178, 7,254, 0,179, 7, 9, 0,180, 7, - 4, 0,181, 7, 4, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, 0, 0,185, 7, 1, 1, 22, 0, 1, 1, 0, 0, 1, 1, 1, 0, -252, 0,164, 7,252, 0,165, 7,252, 0,186, 7,252, 0,187, 7,216, 0,188, 7, 23, 0, 52, 0, 0, 0, 7, 6, 0, 0,189, 7, - 2, 0, 53, 6, 2, 0, 54, 6, 2, 0,190, 7, 2, 0, 37, 0, 2, 0,153, 7, 2, 0,177, 6, 2, 0, 19, 0, 2, 1,166, 7, - 12, 0,191, 7, 12, 0, 6, 6, 12, 0,192, 7, 12, 0,193, 7, 3, 1, 21, 0, 3, 1, 0, 0, 3, 1, 1, 0,214, 0, 62, 6, - 23, 0,194, 7, 23, 0,195, 7, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0,196, 7, 2, 0,197, 7, 2, 0,198, 7, 2, 0, 19, 0, - 7, 0, 85, 2, 2, 0,152, 7, 2, 0,156, 7, 4, 0, 43, 0, 4, 1,166, 7, 12, 0,199, 7, 12, 0,200, 7, 12, 0,192, 7, - 0, 0,201, 7, 9, 0,202, 7, 5, 1, 12, 0, 0, 0,203, 7, 2, 0,204, 7, 2, 0,205, 7, 2, 0,206, 7, 2, 0,207, 7, - 2, 0,252, 4, 2, 0,247, 4,216, 0,208, 7, 46, 0,209, 7, 4, 0,210, 7, 4, 0,211, 7, 0, 0, 35, 0, 6, 1, 1, 0, - 0, 0,212, 7, 7, 1, 8, 0, 57, 0,213, 7, 57, 0,214, 7, 7, 1,215, 7, 7, 1,216, 7, 7, 1,217, 7, 2, 0,129, 0, - 2, 0, 19, 0, 4, 0,218, 7, 8, 1, 4, 0, 4, 0,122, 6, 4, 0,219, 7, 4, 0,127, 6, 4, 0,220, 7, 9, 1, 2, 0, - 4, 0,221, 7, 4, 0,222, 7, 10, 1, 7, 0, 7, 0,223, 7, 7, 0,224, 7, 7, 0,225, 7, 4, 0, 19, 0, 4, 0, 37, 0, - 7, 0,118, 4, 7, 0,226, 7, 11, 1, 6, 0, 0, 0,227, 7, 0, 0, 81, 6, 49, 0,137, 0, 2, 0,106, 0, 2, 0,251, 4, - 4, 0, 37, 0, 12, 1, 21, 0, 12, 1, 0, 0, 12, 1, 1, 0, 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, 4, 0,228, 7, - 4, 0,229, 7, 4, 0,230, 7, 6, 1,231, 7, 0, 0,227, 7, 4, 0,232, 7, 4, 0,233, 7, 11, 1, 87, 3, 8, 1,234, 7, - 9, 1,235, 7, 10, 1,236, 7, 7, 1,237, 7, 7, 1,238, 7, 7, 1,239, 7, 57, 0,240, 7, 57, 0,241, 7, 13, 1, 12, 0, - 0, 0, 5, 2, 9, 0,223, 0, 0, 0,224, 0, 4, 0,227, 0, 4, 0,235, 0, 9, 0,228, 0, 7, 0,230, 0, 7, 0,231, 0, - 9, 0,242, 7, 9, 0,243, 7, 9, 0,232, 0, 9, 0,234, 0, 14, 1, 43, 0, 14, 1, 0, 0, 14, 1, 1, 0, 9, 0,244, 7, - 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0, 4, 0, 23, 0, 4, 0, 88, 0, 4, 0,245, 7, 4, 0,246, 7, - 4, 0,229, 7, 4, 0,230, 7, 4, 0,247, 7, 4, 0,246, 0, 4, 0,248, 7, 4, 0,249, 7, 7, 0,250, 7, 7, 0,251, 7, - 4, 0,126, 0, 4, 0,252, 7, 12, 1,253, 7, 36, 0, 80, 0, 46, 0,134, 0, 49, 0,137, 0, 7, 0,254, 7, 7, 0,255, 7, - 13, 1, 59, 1, 14, 1, 0, 8, 14, 1, 1, 8, 14, 1, 2, 8, 12, 0, 3, 8, 15, 1, 4, 8, 16, 1, 5, 8, 7, 0, 6, 8, - 7, 0, 7, 8, 4, 0, 8, 8, 7, 0, 9, 8, 9, 0, 10, 8, 4, 0, 11, 8, 4, 0, 12, 8, 4, 0, 13, 8, 7, 0, 14, 8, - 17, 1, 4, 0, 17, 1, 0, 0, 17, 1, 1, 0, 12, 0, 15, 8, 14, 1, 16, 8,202, 0, 6, 0, 12, 0, 17, 8, 12, 0, 3, 8, - 12, 0, 18, 8, 14, 1, 19, 8, 0, 0, 20, 8, 0, 0, 21, 8, 18, 1, 4, 0, 7, 0, 22, 8, 7, 0,109, 0, 2, 0, 23, 8, - 2, 0, 24, 8, 19, 1, 6, 0, 7, 0, 25, 8, 7, 0, 26, 8, 7, 0, 27, 8, 7, 0, 28, 8, 4, 0, 29, 8, 4, 0, 30, 8, - 20, 1, 12, 0, 7, 0, 31, 8, 7, 0, 32, 8, 7, 0, 33, 8, 7, 0, 34, 8, 7, 0, 35, 8, 7, 0, 36, 8, 7, 0, 37, 8, - 7, 0, 38, 8, 7, 0, 39, 8, 7, 0, 40, 8, 4, 0,233, 2, 4, 0, 41, 8, 21, 1, 2, 0, 7, 0, 91, 5, 7, 0, 37, 0, - 22, 1, 5, 0, 7, 0, 42, 8, 7, 0, 43, 8, 4, 0, 90, 0, 4, 0,191, 2, 4, 0, 44, 8, 23, 1, 6, 0, 23, 1, 0, 0, - 23, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 45, 8, 2, 0, 57, 0, 24, 1, 8, 0, 24, 1, 0, 0, 24, 1, 1, 0, - 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 45, 8, 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,126, 0, 25, 1, 45, 0, 25, 1, 0, 0, - 25, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 45, 8, 2, 0,242, 0, 2, 0, 28, 4, 2, 0, 46, 8, 7, 0, 47, 8, - 7, 0, 89, 0, 7, 0,246, 2, 4, 0, 48, 8, 4, 0, 82, 0, 4, 0,193, 2, 7, 0, 49, 8, 7, 0, 50, 8, 7, 0, 51, 8, - 7, 0, 52, 8, 7, 0, 53, 8, 7, 0, 54, 8, 7, 0,243, 2, 7, 0, 56, 1, 7, 0, 55, 8, 7, 0, 56, 8, 7, 0, 37, 0, - 7, 0, 57, 8, 7, 0, 58, 8, 7, 0, 59, 8, 2, 0, 60, 8, 2, 0, 61, 8, 2, 0, 62, 8, 2, 0, 63, 8, 2, 0, 64, 8, - 2, 0, 65, 8, 2, 0, 66, 8, 2, 0, 67, 8, 2, 0, 28, 2, 2, 0, 68, 8, 2, 0, 25, 2, 2, 0, 69, 8, 0, 0, 70, 8, - 0, 0, 71, 8, 7, 0,240, 0, 26, 1, 72, 8, 67, 0,241, 1, 27, 1, 16, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 17, 0, - 2, 0, 19, 0, 2, 0, 45, 8, 2, 0,242, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, 7, 0,241, 2, - 7, 0,242, 2, 7, 0, 73, 8, 7, 0,243, 2, 7, 0,245, 2, 7, 0,246, 2,228, 0, 5, 0, 2, 0, 17, 0, 2, 0,218, 7, - 2, 0, 19, 0, 2, 0, 74, 8, 27, 0,151, 6,227, 0, 3, 0, 4, 0, 69, 0, 4, 0, 75, 8,228, 0, 2, 0, 28, 1, 7, 0, - 28, 1, 0, 0, 28, 1, 1, 0, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, 9, 0, 76, 8, 29, 1, 5, 0, - 0, 0, 20, 0, 7, 0, 76, 1, 7, 0, 77, 8, 4, 0, 78, 8, 4, 0, 37, 0, 30, 1, 4, 0, 2, 0, 17, 0, 2, 0, 19, 0, - 2, 0, 43, 0, 2, 0, 70, 0, 31, 1, 4, 0, 0, 0, 20, 0, 66, 0, 79, 8, 7, 0, 76, 1, 7, 0, 37, 0, 32, 1, 6, 0, - 2, 0, 80, 8, 2, 0, 81, 8, 2, 0, 17, 0, 2, 0, 82, 8, 0, 0, 83, 8, 0, 0, 84, 8, 33, 1, 5, 0, 4, 0, 17, 0, - 4, 0, 37, 0, 0, 0, 20, 0, 0, 0, 85, 8, 0, 0, 86, 8, 34, 1, 3, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, - 35, 1, 4, 0, 2, 0, 87, 8, 2, 0, 88, 8, 2, 0, 19, 0, 2, 0, 37, 0, 36, 1, 6, 0, 0, 0, 20, 0, 0, 0, 89, 8, - 2, 0, 90, 8, 2, 0,243, 2, 2, 0, 69, 1, 2, 0, 70, 0, 37, 1, 5, 0, 0, 0, 20, 0, 7, 0,109, 0, 7, 0,120, 4, - 2, 0, 19, 0, 2, 0,205, 2, 38, 1, 3, 0, 0, 0, 20, 0, 4, 0,193, 2, 4, 0, 87, 8, 39, 1, 7, 0, 0, 0, 20, 0, - 7, 0,120, 4, 0, 0, 91, 8, 0, 0, 92, 8, 2, 0, 69, 1, 2, 0, 43, 0, 4, 0, 93, 8, 40, 1, 4, 0, 0, 0, 94, 8, - 0, 0, 95, 8, 4, 0, 17, 0, 7, 0,209, 2, 41, 1, 3, 0, 32, 0, 96, 8, 0, 0, 97, 8, 0, 0, 98, 8, 42, 1, 18, 0, - 42, 1, 0, 0, 42, 1, 1, 0, 2, 0, 17, 0, 2, 0, 99, 8, 2, 0, 19, 0, 2, 0,100, 8, 2, 0,101, 8, 2, 0,102, 8, - 2, 0, 43, 0, 2, 0, 70, 0, 0, 0, 20, 0, 9, 0, 2, 0, 43, 1,103, 8, 32, 0, 45, 0, 2, 0,107, 5, 2, 0, 6, 8, - 2, 0,104, 8, 2, 0, 37, 0, 44, 1, 11, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,105, 8, 2, 0, 19, 0, 2, 0,205, 2, - 2, 0,106, 8, 4, 0,107, 8, 4, 0,108, 8, 4, 0,109, 8, 4, 0,110, 8, 4, 0,111, 8, 45, 1, 1, 0, 0, 0,112, 8, - 46, 1, 4, 0, 42, 0,121, 6, 0, 0,113, 8, 4, 0, 69, 1, 4, 0, 19, 0, 43, 1, 18, 0, 43, 1, 0, 0, 43, 1, 1, 0, - 43, 1,114, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,115, 8, 2, 0,102, 8, 2, 0, 99, 8, 2, 0,116, 8, 2, 0, 70, 0, - 2, 0,238, 1, 0, 0, 20, 0, 9, 0, 2, 0, 47, 1,103, 8, 42, 1,117, 8, 2, 0, 15, 0, 2, 0,118, 8, 4, 0,119, 8, - 48, 1, 3, 0, 4, 0,219, 2, 4, 0, 37, 0, 32, 0, 45, 0, 49, 1, 12, 0,160, 0,120, 8, 2, 0, 17, 0, 2, 0, 19, 0, - 4, 0, 47, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,121, 8, 2, 0,122, 8, 2, 0,123, 8, 2, 0,124, 8, 2, 0,125, 8, - 7, 0,126, 8, 50, 1, 13, 0, 2, 0, 19, 0, 2, 0,127, 8, 4, 0, 47, 8, 4, 0, 89, 0, 2, 0,128, 8, 7, 0,242, 3, - 7, 0,129, 8, 15, 1, 4, 8, 51, 1,130, 8, 2, 0, 17, 0, 2, 0,131, 8, 2, 0,132, 8, 2, 0,133, 8, 52, 1, 11, 0, - 4, 0,219, 2, 2, 0, 17, 0, 2, 0, 19, 0, 32, 0, 45, 0, 80, 0,134, 8, 0, 0, 20, 0, 7, 0,135, 8, 7, 0,136, 8, - 7, 0,128, 3, 2, 0,137, 8, 2, 0,138, 8, 53, 1, 5, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 37, 0, 46, 0,134, 0, - 32, 0,204, 5, 54, 1, 5, 0, 4, 0, 19, 0, 4, 0, 17, 0, 0, 0, 20, 0, 0, 0, 85, 8, 32, 0, 45, 0, 55, 1, 13, 0, - 2, 0, 19, 0, 2, 0, 17, 0, 2, 0, 99, 8, 2, 0,129, 3, 7, 0,139, 8, 7, 0,140, 8, 7, 0, 64, 1, 7, 0, 65, 1, - 7, 0,100, 3, 7, 0,103, 3, 7, 0,141, 8, 7, 0,142, 8, 32, 0,143, 8, 56, 1, 10, 0, 2, 0, 19, 0, 2, 0, 17, 0, - 4, 0, 47, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,121, 8, 2, 0, 43, 0, 2, 0, 64, 0, 2, 0,144, 8, 2, 0,145, 8, - 57, 1, 8, 0, 32, 0, 45, 0, 7, 0,240, 2, 7, 0,146, 8, 7, 0,147, 8, 7, 0,235, 2, 2, 0, 19, 0, 2, 0,205, 2, - 7, 0,148, 8, 58, 1, 12, 0, 2, 0, 17, 0, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0,243, 2, 2, 0,219, 2, 2, 0,149, 8, - 4, 0, 37, 0, 7, 0,150, 8, 7, 0,151, 8, 7, 0,152, 8, 7, 0,153, 8, 0, 0,154, 8, 59, 1, 9, 0, 2, 0, 19, 0, - 2, 0, 17, 0, 4, 0, 47, 8, 4, 0, 89, 0, 0, 0, 20, 0, 2, 0,136, 1, 2, 0, 64, 0, 2, 0,144, 8, 2, 0,145, 8, - 60, 1, 7, 0, 4, 0,193, 2, 4, 0,155, 8, 4, 0,156, 8, 4, 0,157, 8, 7, 0,158, 8, 7, 0,159, 8, 0, 0, 91, 8, - 61, 1, 7, 0, 0, 0,160, 8, 32, 0,161, 8, 0, 0, 97, 8, 2, 0,162, 8, 2, 0, 43, 0, 4, 0, 70, 0, 0, 0, 98, 8, - 62, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 47, 8, 4, 0, 89, 0, 0, 0,163, 8, 0, 0,164, 8, 63, 1, 1, 0, - 4, 0, 19, 0, 64, 1, 6, 0, 0, 0, 92, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,165, 8, 7, 0,166, 8, 42, 0,121, 6, - 65, 1, 4, 0, 0, 0, 70, 2, 2, 0, 19, 0, 4, 0, 17, 0, 32, 0, 45, 0, 66, 1, 2, 0, 4, 0, 17, 0, 4, 0, 42, 6, - 67, 1, 6, 0, 0, 0, 94, 8, 0, 0, 95, 8, 4, 0, 17, 0, 7, 0, 36, 2, 32, 0, 50, 3, 32, 0,167, 8, 47, 1, 10, 0, - 47, 1, 0, 0, 47, 1, 1, 0, 47, 1,114, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 99, 8, 2, 0,168, 8, 0, 0, 20, 0, - 9, 0, 2, 0, 32, 0, 45, 0, 68, 1, 10, 0, 7, 0,128, 3, 7, 0,169, 8, 7, 0,170, 8, 7, 0,171, 8, 7, 0,172, 8, - 4, 0, 19, 0, 7, 0,149, 8, 7, 0,173, 8, 7, 0,174, 8, 7, 0, 37, 0, 16, 1, 12, 0, 16, 1, 0, 0, 16, 1, 1, 0, - 15, 1,175, 8, 9, 0,223, 0, 4, 0,171, 3, 4, 0,229, 3, 4, 0,230, 3, 4, 0,176, 8, 4, 0,177, 8, 4, 0,178, 8, - 7, 0,242, 3, 7, 0, 37, 0, 51, 1, 8, 0, 7, 0,179, 8, 7, 0,180, 8, 7, 0,181, 8, 7, 0,182, 8, 7, 0,183, 8, - 7, 0,184, 8, 7, 0,185, 8, 7, 0,186, 8, 15, 1, 15, 0, 27, 0, 31, 0, 0, 0,222, 0, 43, 0,149, 0, 9, 0,223, 0, - 43, 0,187, 8, 36, 0, 80, 0, 7, 0,242, 3, 7, 0,188, 8, 7, 0,129, 8, 7, 0,179, 8, 7, 0,180, 8, 7, 0,189, 8, - 4, 0, 90, 0, 4, 0,178, 8, 9, 0,190, 8, 69, 1, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, - 7, 0, 8, 6, 1, 1,191, 8,214, 0, 62, 6, 15, 1, 4, 8, 2, 0, 69, 1, 2, 0,127, 8, 2, 0, 89, 2, 2, 0, 90, 2, - 2, 0, 19, 0, 2, 0,114, 6, 4, 0, 70, 0, 70, 1, 6, 0, 70, 1, 0, 0, 70, 1, 1, 0, 32, 0, 45, 0, 9, 0,192, 8, - 4, 0,247, 0, 4, 0, 37, 0, 67, 0, 4, 0, 27, 0, 31, 0, 12, 0,193, 8, 4, 0,131, 0, 7, 0,194, 8, 71, 1, 27, 0, - 71, 1, 0, 0, 71, 1, 1, 0, 26, 0,195, 8, 71, 1, 38, 0, 12, 0,196, 8, 0, 0, 20, 0, 7, 0,197, 8, 7, 0,198, 8, - 7, 0,199, 8, 7, 0,200, 8, 4, 0, 19, 0, 7, 0,201, 8, 7, 0,202, 8, 7, 0,203, 8, 7, 0, 76, 1, 7, 0, 36, 2, - 7, 0,204, 8, 7, 0,191, 2, 7, 0,205, 8, 7, 0,206, 8, 7, 0,207, 8, 7, 0,208, 8, 7, 0,209, 8, 7, 0,172, 0, - 4, 0,131, 0, 2, 0,136, 5, 2, 0,136, 1, 72, 1, 25, 0, 27, 0, 31, 0, 39, 0, 75, 0, 12, 0,210, 8, 12, 0,211, 8, - 12, 0,212, 8, 71, 1,213, 8, 9, 0,214, 8, 9, 0,215, 8, 4, 0, 19, 0, 4, 0, 15, 6, 2, 0,247, 2, 2, 0, 72, 6, - 4, 0, 37, 0, 4, 0,131, 0, 4, 0,216, 8, 2, 0,217, 8, 2, 0,218, 8, 2, 0,219, 8, 2, 0,220, 8, 4, 0,221, 8, - 4, 0,222, 8, 4, 0,223, 8, 4, 0,224, 8, 4, 0,225, 8, 4, 0,226, 8, 73, 1, 2, 0, 7, 0,152, 2, 4, 0, 19, 0, - 74, 1, 5, 0, 73, 1,227, 8, 4, 0,191, 2, 4, 0,228, 8, 4, 0,229, 8, 4, 0, 19, 0, 75, 1, 6, 0, 4, 0, 37, 0, - 4, 0, 72, 6, 4, 0,223, 8, 4, 0,224, 8, 4, 0,225, 8, 4, 0,226, 8, 76, 1, 42, 0, 76, 1, 0, 0, 76, 1, 1, 0, - 26, 0,195, 8, 12, 0,155, 3, 0, 0, 20, 0, 2, 0, 19, 0, 2, 0,230, 8, 2, 0,231, 8, 2, 0,232, 8, 2, 0,114, 3, - 2, 0,233, 8, 4, 0, 72, 2, 4, 0,223, 8, 4, 0,224, 8, 71, 1,234, 8, 76, 1, 38, 0, 76, 1,235, 8, 12, 0,236, 8, - 9, 0,237, 8, 9, 0,238, 8, 9, 0,239, 8, 7, 0, 64, 1, 7, 0,172, 0, 7, 0,240, 8, 7, 0, 15, 2, 7, 0,105, 3, - 7, 0,107, 3, 2, 0,137, 3, 2, 0, 37, 0, 7, 0,241, 8, 7, 0,242, 8, 7, 0,110, 3, 7, 0,243, 8, 7, 0,244, 8, - 7, 0,245, 8, 7, 0,246, 8, 7, 0,247, 8, 7, 0,248, 8, 7, 0,249, 8, 7, 0,250, 8, 7, 0, 65, 2, 32, 0,251, 8, -161, 0, 11, 0, 12, 0,252, 8, 2, 0, 19, 0, 2, 0,253, 8, 7, 0,101, 2, 7, 0,254, 8, 7, 0,255, 8, 12, 0, 0, 9, - 4, 0, 1, 9, 4, 0, 2, 9, 9, 0, 3, 9, 9, 0, 4, 9, 77, 1, 1, 0, 4, 0, 2, 9, 78, 1, 12, 0, 4, 0, 2, 9, - 7, 0,111, 8, 2, 0, 5, 9, 2, 0, 6, 9, 7, 0, 7, 9, 7, 0, 8, 9, 2, 0, 9, 9, 2, 0, 19, 0, 7, 0, 10, 9, - 7, 0, 11, 9, 7, 0, 12, 9, 7, 0, 13, 9, 79, 1, 7, 0, 79, 1, 0, 0, 79, 1, 1, 0, 12, 0, 14, 9, 4, 0, 19, 0, - 4, 0, 15, 9, 0, 0,233, 3,248, 0, 16, 9,160, 0, 7, 0, 27, 0, 31, 0, 12, 0, 17, 9, 12, 0,252, 8, 12, 0, 18, 9, - 12, 0,100, 0, 4, 0, 19, 0, 4, 0, 19, 9,218, 0, 4, 0, 27, 0,175, 8, 12, 0,252, 8, 4, 0, 20, 9, 4, 0, 19, 0, - 80, 1, 17, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, -160, 0, 90, 3,218, 0, 21, 9, 0, 0, 69, 1, 0, 0, 65, 6, 2, 0, 19, 0, 2, 0, 22, 9, 2, 0,115, 6, 2, 0,114, 6, - 2, 0, 23, 9, 7, 0, 24, 9, 81, 1, 8, 0, 81, 1, 0, 0, 81, 1, 1, 0, 79, 1, 25, 9, 36, 0, 80, 0, 12, 0, 94, 3, - 4, 0, 19, 0, 0, 0, 20, 0, 4, 0, 26, 9, 82, 1, 5, 0, 82, 1, 0, 0, 82, 1, 1, 0, 36, 0, 80, 0, 2, 0, 19, 0, - 0, 0, 27, 9, 83, 1, 14, 0, 83, 1, 0, 0, 83, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 28, 9, - 0, 0, 29, 9, 0, 0, 27, 9, 7, 0, 30, 9, 7, 0, 31, 9, 4, 0, 37, 0, 36, 0, 80, 0, 7, 0, 32, 9, 7, 0, 33, 9, - 84, 1, 9, 0, 84, 1, 0, 0, 84, 1, 1, 0, 32, 0, 34, 9, 0, 0,250, 2, 7, 0, 35, 9, 2, 0, 36, 9, 2, 0, 19, 0, - 2, 0, 17, 0, 2, 0, 37, 9, 85, 1, 7, 0, 42, 0,121, 6, 26, 0,195, 8, 4, 0, 19, 0, 4, 0, 38, 9, 12, 0, 39, 9, - 32, 0, 34, 9, 0, 0,250, 2, 86, 1, 15, 0, 32, 0, 34, 9, 2, 0, 40, 9, 2, 0, 19, 0, 2, 0, 41, 9, 2, 0, 42, 9, - 0, 0,250, 2, 32, 0, 43, 9, 0, 0, 44, 9, 7, 0, 45, 9, 7, 0, 36, 2, 7, 0, 46, 9, 7, 0, 47, 9, 2, 0, 17, 0, - 2, 0, 69, 1, 7, 0, 76, 1, 87, 1, 6, 0, 32, 0, 34, 9, 7, 0,227, 8, 2, 0, 48, 9, 2, 0, 49, 9, 2, 0, 19, 0, - 2, 0, 50, 9, 88, 1, 6, 0, 32, 0, 34, 9, 4, 0, 51, 9, 4, 0, 52, 9, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,250, 2, - 89, 1, 4, 0, 32, 0, 34, 9, 4, 0, 19, 0, 4, 0, 51, 9, 0, 0,250, 2, 90, 1, 4, 0, 32, 0, 34, 9, 4, 0, 19, 0, - 4, 0, 51, 9, 0, 0,250, 2, 91, 1, 10, 0, 32, 0, 34, 9, 4, 0, 53, 9, 7, 0,125, 0, 4, 0, 19, 0, 2, 0,117, 6, - 2, 0, 54, 9, 2, 0, 43, 0, 2, 0, 70, 0, 7, 0, 55, 9, 0, 0,250, 2, 92, 1, 4, 0, 32, 0, 34, 9, 4, 0, 19, 0, - 4, 0, 51, 9, 0, 0,250, 2, 93, 1, 10, 0, 32, 0, 34, 9, 2, 0, 17, 0, 2, 0, 36, 4, 4, 0, 88, 0, 4, 0, 89, 0, - 7, 0,146, 8, 7, 0,147, 8, 4, 0, 37, 0,160, 0,120, 8, 0, 0,250, 2, 94, 1, 4, 0, 32, 0, 34, 9, 4, 0,115, 3, - 4, 0, 56, 9, 0, 0,250, 2, 95, 1, 4, 0, 32, 0, 34, 9, 4, 0,115, 3, 4, 0, 37, 0, 0, 0,250, 2, 96, 1, 5, 0, - 32, 0, 34, 9, 7, 0,125, 0, 4, 0, 57, 9, 4, 0,115, 3, 4, 0,116, 3, 97, 1, 6, 0, 32, 0, 34, 9, 4, 0, 58, 9, - 4, 0, 59, 9, 7, 0, 60, 9, 7, 0, 61, 9, 0, 0,250, 2, 98, 1, 16, 0, 32, 0, 34, 9, 32, 0,235, 8, 4, 0, 17, 0, - 7, 0, 62, 9, 7, 0, 63, 9, 7, 0, 64, 9, 7, 0, 65, 9, 7, 0, 66, 9, 7, 0, 67, 9, 7, 0, 68, 9, 7, 0, 69, 9, - 7, 0, 70, 9, 2, 0, 19, 0, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0, 70, 0, 99, 1, 3, 0, 32, 0, 34, 9, 4, 0, 19, 0, - 4, 0, 28, 2,100, 1, 5, 0, 32, 0, 34, 9, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0, 71, 9, 0, 0,250, 2,101, 1, 10, 0, - 32, 0, 34, 9, 0, 0,250, 2, 2, 0, 72, 9, 2, 0, 73, 9, 0, 0, 74, 9, 0, 0, 75, 9, 7, 0, 76, 9, 7, 0, 77, 9, - 7, 0, 78, 9, 7, 0, 79, 9,102, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 80, 9, - 7, 0, 81, 9, 2, 0, 19, 0, 2, 0, 28, 2,103, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, - 7, 0, 80, 9, 7, 0, 81, 9, 2, 0, 19, 0, 2, 0, 28, 2,104, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, - 7, 0, 12, 0, 7, 0, 80, 9, 7, 0, 81, 9, 2, 0, 19, 0, 2, 0, 28, 2,105, 1, 7, 0, 32, 0, 34, 9, 0, 0,250, 2, - 7, 0, 76, 1, 7, 0, 85, 1, 2, 0, 19, 0, 2, 0, 69, 1, 4, 0, 37, 0,106, 1, 5, 0, 32, 0, 50, 3, 7, 0, 76, 1, - 2, 0, 54, 3, 0, 0, 56, 3, 0, 0, 82, 9,107, 1, 10, 0,107, 1, 0, 0,107, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, - 0, 0, 83, 9, 7, 0, 20, 1, 7, 0, 21, 1, 2, 0, 14, 9, 2, 0, 84, 9, 32, 0, 45, 0,108, 1, 22, 0,108, 1, 0, 0, -108, 1, 1, 0, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 85, 9, 2, 0, 86, 9, 36, 0, 80, 0,160, 0,120, 8, 32, 0,164, 0, - 7, 0, 88, 0, 7, 0, 89, 0, 7, 0, 87, 9, 7, 0, 88, 9, 7, 0, 89, 9, 7, 0, 90, 9, 7, 0,236, 2, 7, 0, 91, 9, - 7, 0,122, 8, 7, 0, 92, 9, 0, 0, 93, 9, 0, 0, 94, 9, 12, 0, 96, 3,109, 1, 8, 0, 7, 0, 43, 2, 7, 0,146, 8, - 7, 0,147, 8, 9, 0, 2, 0, 2, 0, 95, 9, 2, 0, 96, 9, 2, 0, 97, 9, 2, 0, 98, 9,110, 1, 18, 0,110, 1, 0, 0, -110, 1, 1, 0,110, 1, 99, 9, 0, 0, 20, 0,109, 1,100, 9, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,101, 9, 2, 0,102, 9, - 2, 0,103, 9, 2, 0,104, 9, 4, 0, 43, 0, 7, 0,105, 9, 7, 0,106, 9, 4, 0,107, 9, 4, 0,108, 9,110, 1,109, 9, -111, 1,110, 9,112, 1, 33, 0,112, 1, 0, 0,112, 1, 1, 0,112, 1,111, 9, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, - 2, 0,228, 7, 2, 0, 6, 8, 2, 0,112, 9, 2, 0,133, 0, 2, 0,102, 9, 2, 0,218, 7, 12, 0,115, 8, 12, 0,113, 9, - 27, 0,151, 6, 9, 0,114, 9, 7, 0,105, 9, 7, 0,106, 9, 7, 0, 74, 2, 7, 0,115, 9, 2, 0,116, 9, 2, 0,117, 9, - 7, 0,118, 9, 7, 0,119, 9, 2, 0,120, 9, 2, 0,121, 9, 9, 0,122, 9, 24, 0,123, 9, 24, 0,124, 9, 24, 0,125, 9, -113, 1,150, 0,114, 1,126, 9,115, 1,127, 9,111, 1, 8, 0,111, 1, 0, 0,111, 1, 1, 0,112, 1,128, 9,112, 1,129, 9, -110, 1,130, 9,110, 1,109, 9, 4, 0, 19, 0, 4, 0, 37, 0, 60, 0, 23, 0, 27, 0, 31, 0, 39, 0, 75, 0,162, 0, 93, 3, - 12, 0,131, 9, 12, 0,132, 9,109, 1,133, 9, 12, 0,134, 9, 4, 0, 17, 0, 4, 0,135, 9, 4, 0,136, 9, 4, 0,137, 9, - 4, 0, 19, 0, 4, 0, 37, 0, 12, 0,138, 9,115, 1,139, 9,110, 1,140, 9,110, 1,141, 9, 9, 0,142, 9, 9, 0,143, 9, - 4, 0,144, 9, 9, 0,145, 9, 9, 0,146, 9, 9, 0,147, 9,116, 1, 6, 0, 4, 0,124, 0, 4, 0,126, 0, 4, 0,218, 7, - 0, 0,148, 9, 0, 0,149, 9, 2, 0, 37, 0,117, 1, 16, 0, 2, 0,172, 7, 2, 0,173, 7, 2, 0,150, 9, 2, 0,170, 8, - 2, 0,151, 9, 2, 0, 68, 0, 7, 0,235, 2, 7, 0,152, 9, 7, 0,153, 9, 2, 0, 91, 1, 0, 0,154, 9, 0, 0,155, 9, - 2, 0,156, 9, 2, 0, 37, 0, 4, 0,157, 9, 4, 0,158, 9,118, 1, 9, 0, 7, 0,159, 9, 7, 0,160, 9, 7, 0,189, 8, - 7, 0,109, 0, 7, 0,161, 9, 7, 0, 78, 6, 2, 0,162, 9, 0, 0,163, 9, 0, 0, 37, 0,119, 1, 4, 0, 7, 0,164, 9, - 7, 0,165, 9, 2, 0,162, 9, 2, 0, 37, 0,120, 1, 3, 0, 7, 0,166, 9, 7, 0,167, 9, 7, 0, 15, 0,121, 1, 7, 0, - 0, 0, 5, 2, 2, 0,249, 4, 2, 0,250, 4, 2, 0,251, 4, 2, 0,189, 4, 4, 0,126, 0, 4, 0, 34, 4,122, 1, 7, 0, - 7, 0,168, 9, 7, 0,169, 9, 7, 0,170, 9, 7, 0, 85, 2, 7, 0,171, 9, 7, 0,172, 9, 7, 0,173, 9,123, 1, 4, 0, - 2, 0,174, 9, 2, 0,175, 9, 2, 0,176, 9, 2, 0,177, 9,124, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,125, 1, 2, 0, - 0, 0,166, 0, 0, 0,178, 9,126, 1, 1, 0, 0, 0, 20, 0,127, 1, 10, 0, 0, 0,179, 9, 0, 0,180, 9, 0, 0, 71, 6, - 0, 0,181, 9, 2, 0,150, 9, 2, 0,182, 9, 7, 0,183, 9, 7, 0,184, 9, 7, 0,185, 9, 7, 0, 91, 9,128, 1, 2, 0, - 9, 0,186, 9, 9, 0,187, 9,129, 1, 11, 0, 0, 0,251, 4, 0, 0, 17, 0, 0, 0,162, 9, 0, 0,109, 0, 0, 0,188, 9, - 0, 0,106, 0, 0, 0, 70, 2, 7, 0,189, 9, 7, 0,190, 9, 7, 0,191, 9, 7, 0,192, 9,130, 1, 8, 0, 7, 0, 80, 8, - 7, 0,125, 0, 7, 0,155, 9, 7, 0,157, 2, 7, 0,193, 9, 7, 0,236, 0, 7, 0,194, 9, 4, 0, 17, 0,131, 1, 4, 0, - 2, 0,195, 9, 2, 0,196, 9, 2, 0,197, 9, 2, 0, 37, 0,132, 1, 1, 0, 0, 0, 20, 0,133, 1, 4, 0, 7, 0, 5, 0, - 7, 0, 6, 0, 2, 0, 19, 0, 2, 0,198, 9,134, 1, 10, 0, 2, 0,222, 3, 2, 0, 19, 0, 7, 0,120, 4, 7, 0,199, 9, - 7, 0,200, 9, 7, 0,201, 9, 7, 0,202, 9,133, 1,203, 9,133, 1,204, 9,133, 1,205, 9, 63, 0, 9, 0, 4, 0, 19, 0, - 4, 0, 64, 0, 24, 0,206, 9, 24, 0,207, 9,134, 1,208, 9, 7, 0,209, 9, 7, 0,210, 9, 7, 0,211, 9, 7, 0,212, 9, -135, 1, 4, 0, 47, 0,229, 2, 7, 0,213, 9, 7, 0,170, 1, 7, 0, 37, 0,191, 0, 17, 0, 27, 0, 31, 0,135, 1,214, 9, - 63, 0,203, 9, 51, 0,134, 1, 2, 0, 19, 0, 2, 0,230, 5, 4, 0,106, 0, 7, 0,215, 9, 7, 0, 82, 2, 4, 0,216, 9, - 7, 0,217, 9, 7, 0,218, 9, 7, 0,219, 9, 7, 0,170, 1, 2, 0,104, 1, 0, 0,220, 9, 0, 0,210, 6,136, 1, 10, 0, - 4, 0, 17, 0, 4, 0,125, 0, 4, 0, 19, 0, 4, 0,177, 3, 4, 0,221, 9, 4, 0,222, 9, 4, 0,223, 9, 0, 0, 92, 0, - 0, 0, 20, 0, 9, 0, 2, 0, 91, 0, 6, 0,136, 1,224, 9, 4, 0,225, 9, 4, 0,226, 9, 4, 0,227, 9, 4, 0, 37, 0, - 9, 0,228, 9,137, 1, 5, 0, 7, 0,152, 2, 7, 0,219, 2, 7, 0, 36, 2, 2, 0,128, 2, 2, 0, 37, 0,138, 1, 5, 0, - 7, 0,152, 2, 7, 0,229, 9, 7, 0,230, 9, 7, 0,231, 9, 7, 0,219, 2,139, 1, 5, 0, 32, 0,232, 9,140, 1, 22, 0, - 7, 0,203, 5, 7, 0,233, 9, 7, 0, 57, 0,141, 1, 7, 0, 4, 0,234, 9, 4, 0,235, 9, 4, 0,236, 9, 7, 0,237, 9, - 7, 0,238, 9, 7, 0,239, 9, 7, 0, 57, 0,142, 1, 8, 0,142, 1, 0, 0,142, 1, 1, 0, 32, 0, 45, 0, 4, 0,255, 0, - 2, 0, 19, 0, 2, 0, 69, 1, 7, 0,219, 2, 7, 0, 88, 8,143, 1, 6, 0,143, 1, 0, 0,143, 1, 1, 0, 32, 0, 45, 0, - 2, 0,204, 2, 2, 0, 19, 0, 2, 0,240, 9,144, 1, 18, 0,138, 1,171, 3,138, 1,241, 9,137, 1,242, 9,138, 1, 72, 8, -139, 1,243, 9, 4, 0, 82, 0, 7, 0,219, 2, 7, 0,246, 2, 7, 0,244, 9, 4, 0,234, 9, 4, 0,245, 9, 7, 0,238, 9, - 7, 0,239, 9, 7, 0,106, 0, 2, 0, 19, 0, 2, 0,246, 9, 2, 0,247, 9, 2, 0,248, 9,145, 1,110, 0, 27, 0, 31, 0, - 39, 0, 75, 0,146, 1,249, 9,169, 0, 56, 4, 4, 0, 19, 0, 2, 0, 17, 0, 2, 0, 72, 9, 2, 0,250, 9, 2, 0,251, 9, - 2, 0,137, 3, 2, 0,252, 9, 2, 0,253, 9, 2, 0,254, 9, 2, 0,255, 9, 2, 0, 0, 10, 2, 0, 1, 10, 2, 0, 2, 10, - 2, 0,238, 4, 2, 0,115, 5, 2, 0, 3, 10, 2, 0, 4, 10, 2, 0, 5, 10, 2, 0, 6, 10, 2, 0, 7, 10, 2, 0, 25, 2, - 2, 0, 65, 8, 2, 0, 41, 8, 2, 0, 8, 10, 2, 0, 9, 10, 2, 0,187, 3, 2, 0,188, 3, 2, 0, 10, 10, 2, 0, 11, 10, - 2, 0, 12, 10, 2, 0, 13, 10, 7, 0, 14, 10, 7, 0, 15, 10, 7, 0, 16, 10, 2, 0, 17, 10, 2, 0, 18, 10, 7, 0, 19, 10, - 7, 0, 20, 10, 7, 0, 21, 10, 7, 0, 47, 8, 7, 0, 89, 0, 7, 0,246, 2, 7, 0, 53, 8, 7, 0, 22, 10, 7, 0, 23, 10, - 7, 0, 24, 10, 4, 0, 48, 8, 4, 0, 46, 8, 4, 0, 25, 10, 7, 0, 49, 8, 7, 0, 50, 8, 7, 0, 51, 8, 7, 0, 26, 10, - 7, 0, 27, 10, 7, 0, 28, 10, 7, 0, 29, 10, 7, 0, 30, 10, 7, 0, 57, 0, 7, 0, 31, 10, 7, 0, 32, 10, 7, 0, 33, 10, - 7, 0, 34, 10, 7, 0,128, 3, 7, 0,106, 0, 7, 0, 35, 10, 7, 0, 36, 10, 7, 0, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, - 7, 0, 40, 10, 7, 0, 41, 10, 4, 0, 42, 10, 4, 0, 43, 10, 7, 0, 44, 10, 7, 0, 45, 10, 7, 0, 46, 10, 7, 0, 47, 10, - 7, 0, 48, 10, 7, 0,210, 0, 7, 0, 49, 10, 7, 0,213, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0, 50, 10, 7, 0, 51, 10, - 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10, 7, 0, 55, 10, 7, 0, 56, 10, 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, - 7, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, 4, 0, 63, 10, 4, 0, 64, 10, 67, 0,160, 3, 12, 0, 65, 10, 67, 0, 66, 10, - 32, 0, 67, 10, 32, 0, 68, 10, 36, 0, 80, 0,164, 0, 61, 1,164, 0, 69, 10,148, 0, 44, 0,148, 0, 0, 0,148, 0, 1, 0, -145, 1, 70, 10,144, 1, 71, 10,141, 1,235, 8,171, 0,238, 3, 9, 0,239, 3,147, 1, 72, 10,147, 1, 73, 10, 12, 0, 74, 10, - 12, 0, 75, 10,133, 0, 76, 10,141, 0, 77, 10,141, 0, 78, 10, 32, 0, 79, 10, 32, 0, 80, 10, 32, 0, 38, 0, 12, 0, 39, 9, - 0, 0, 20, 0, 7, 0,240, 0, 7, 0, 17, 3, 7, 0, 81, 10, 4, 0,193, 2, 4, 0, 57, 0, 4, 0, 19, 0, 4, 0, 48, 8, - 4, 0, 82, 10, 4, 0, 83, 10, 4, 0, 84, 10, 2, 0,247, 0, 2, 0, 85, 10, 2, 0, 86, 10, 2, 0, 87, 10, 0, 0, 88, 10, - 2, 0, 89, 10, 2, 0, 90, 10, 2, 0, 91, 10, 9, 0, 92, 10,137, 0, 55, 4, 12, 0, 4, 3, 12, 0, 93, 10,148, 1, 94, 10, -149, 1, 95, 10, 7, 0, 96, 10,135, 0, 35, 0,150, 1,190, 8, 7, 0, 25, 4, 7, 0, 97, 10, 7, 0, 98, 10, 7, 0,123, 4, - 7, 0, 99, 10, 7, 0,138, 3, 7, 0,128, 3, 7, 0,100, 10, 7, 0, 84, 2, 7, 0,101, 10, 7, 0,102, 10, 7, 0,103, 10, - 7, 0,104, 10, 7, 0,105, 10, 7, 0,106, 10, 7, 0, 26, 4, 7, 0,107, 10, 7, 0,108, 10, 7, 0,109, 10, 7, 0, 27, 4, - 7, 0, 23, 4, 7, 0, 24, 4, 7, 0,110, 10, 4, 0,111, 10, 4, 0, 90, 0, 4, 0,112, 10, 4, 0,113, 10, 2, 0,114, 10, - 2, 0,115, 10, 2, 0,116, 10, 2, 0,117, 10, 2, 0,118, 10, 2, 0,119, 10,169, 0, 56, 4,136, 0, 8, 0,150, 1,120, 10, - 7, 0,121, 10, 7, 0,122, 10, 7, 0,242, 1, 7, 0,123, 10, 4, 0, 90, 0, 2, 0,124, 10, 2, 0,125, 10,151, 1, 4, 0, - 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,126, 10,152, 1, 6, 0,152, 1, 0, 0,152, 1, 1, 0,151, 1,227, 8, - 4, 0,253, 0, 2, 0,127, 10, 2, 0, 19, 0,153, 1, 5, 0,153, 1, 0, 0,153, 1, 1, 0, 12, 0,128, 10, 4, 0,129, 10, - 4, 0, 19, 0,154, 1, 9, 0,154, 1, 0, 0,154, 1, 1, 0, 12, 0,124, 0,153, 1,130, 10, 4, 0, 19, 0, 2, 0,127, 10, - 2, 0,131, 10, 7, 0, 91, 0, 0, 0,132, 10,162, 0, 6, 0, 27, 0, 31, 0, 12, 0, 11, 5, 4, 0, 19, 0, 2, 0,133, 10, - 2, 0,134, 10, 9, 0,135, 10,155, 1, 7, 0,155, 1, 0, 0,155, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, - 0, 0,136, 10, 0, 0,137, 10,156, 1, 5, 0, 12, 0,138, 10, 4, 0,139, 10, 4, 0,140, 10, 4, 0, 19, 0, 4, 0, 37, 0, -157, 1, 18, 0, 27, 0, 31, 0,158, 1,141, 10,158, 1,142, 10, 12, 0,143, 10, 4, 0,144, 10, 2, 0,145, 10, 2, 0, 37, 0, - 12, 0,146, 10, 12, 0,147, 10,156, 1,148, 10, 12, 0,149, 10, 12, 0,150, 10, 12, 0,151, 10,159, 1,152, 10, 4, 0,153, 10, - 4, 0, 70, 0, 12, 0,154, 10,211, 0,155, 10,158, 1, 31, 0,158, 1, 0, 0,158, 1, 1, 0, 9, 0,156, 10, 4, 0,151, 7, - 4, 0, 37, 0,216, 0, 61, 6,216, 0,157, 10, 0, 0,158, 10, 2, 0,159, 10, 2, 0,160, 10, 2, 0,172, 7, 2, 0,173, 7, - 2, 0,161, 10, 2, 0,162, 10, 2, 0,177, 3, 2, 0,177, 6, 2, 0,163, 10, 2, 0,164, 10, 2, 0,165, 10, 2, 0,166, 10, -160, 1,167, 10,161, 1,168, 10,162, 1,169, 10, 4, 0,170, 10, 4, 0,171, 10, 9, 0,172, 10, 12, 0,147, 10, 12, 0,192, 7, - 12, 0,173, 10, 12, 0,174, 10, 12, 0,175, 10,163, 1, 16, 0,163, 1, 0, 0,163, 1, 1, 0, 0, 0,176, 10, 26, 0, 30, 0, - 2, 0,177, 10, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,178, 10, 2, 0,179, 10, 2, 0,180, 10, 2, 0,181, 10, 2, 0,182, 10, - 2, 0, 19, 0, 2, 0,183, 10, 2, 0, 70, 2,164, 1,184, 10,165, 1, 10, 0,165, 1, 0, 0,165, 1, 1, 0, 12, 0,185, 10, - 0, 0,176, 10, 2, 0,186, 10, 2, 0,187, 10, 2, 0, 19, 0, 2, 0, 37, 0, 4, 0,188, 10, 9, 0,189, 10,159, 1, 7, 0, -159, 1, 0, 0,159, 1, 1, 0, 0, 0,176, 10, 0, 0,190, 10, 12, 0,109, 7, 4, 0,191, 10, 4, 0, 19, 0,224, 0, 12, 0, -224, 0, 0, 0,224, 0, 1, 0, 0, 0,176, 10, 26, 0, 30, 0,166, 1,166, 7, 9, 0,192, 10,164, 1,184, 10,156, 1,193, 10, - 12, 0,194, 10,224, 0,195, 10, 2, 0, 19, 0, 2, 0,136, 1,160, 1, 23, 0,160, 1, 0, 0,160, 1, 1, 0, 2, 0, 17, 0, - 2, 0, 15, 0, 2, 0, 5, 0, 2, 0, 6, 0, 2, 0,196, 10, 2, 0,197, 10, 2, 0,198, 10, 2, 0,199, 10, 0, 0,200, 10, - 0, 0, 37, 0, 2, 0,178, 10, 2, 0,179, 10, 2, 0,180, 10, 2, 0,181, 10, 2, 0,182, 10, 2, 0, 43, 0, 0, 0,201, 10, - 2, 0,202, 10, 2, 0,203, 10, 4, 0, 70, 0, 9, 0,192, 10,167, 1, 8, 0,167, 1, 0, 0,167, 1, 1, 0, 9, 0, 2, 0, - 9, 0,204, 10, 0, 0,233, 3, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,205, 10,168, 1, 5, 0, 7, 0,206, 10, 4, 0,207, 10, - 4, 0,208, 10, 4, 0, 69, 1, 4, 0, 19, 0,169, 1, 6, 0, 7, 0,209, 10, 7, 0,210, 10, 7, 0,211, 10, 7, 0,212, 10, - 4, 0, 17, 0, 4, 0, 19, 0,170, 1, 5, 0, 7, 0,146, 8, 7, 0,147, 8, 7, 0,219, 2, 2, 0, 39, 2, 2, 0, 40, 2, -171, 1, 5, 0,170, 1, 2, 0, 4, 0, 54, 0, 7, 0,213, 10, 7, 0,146, 8, 7, 0,147, 8,172, 1, 4, 0, 2, 0,214, 10, - 2, 0,215, 10, 2, 0,216, 10, 2, 0,217, 10,173, 1, 2, 0, 42, 0,148, 6, 26, 0,195, 8,174, 1, 3, 0, 24, 0,218, 10, - 4, 0, 19, 0, 4, 0, 37, 0,175, 1, 6, 0, 7, 0,106, 0, 7, 0,221, 2, 7, 0,219, 10, 7, 0, 37, 0, 2, 0,246, 0, - 2, 0,220, 10,176, 1, 5, 0, 7, 0,221, 2, 7, 0, 87, 8, 2, 0,220, 10, 2, 0,136, 1, 15, 1, 4, 8,177, 1, 9, 0, -177, 1, 0, 0,177, 1, 1, 0, 27, 0,151, 6, 0, 0,221, 10, 4, 0,222, 10, 4, 0,223, 10, 4, 0, 90, 0, 4, 0, 37, 0, - 0, 0,233, 3,178, 1, 6, 0, 12, 0, 39, 9, 0, 0,224, 10, 7, 0, 61, 0, 7, 0,205, 10, 4, 0, 17, 0, 4, 0, 19, 0, -179, 1, 3, 0, 7, 0,225, 10, 4, 0, 19, 0, 4, 0, 37, 0,180, 1, 15, 0,180, 1, 0, 0,180, 1, 1, 0, 79, 1, 25, 9, -178, 1, 62, 0, 12, 0, 96, 3, 35, 0, 50, 0,179, 1,226, 10, 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0, 15, 1, - 4, 0,222, 10, 0, 0,221, 10, 4, 0,227, 10, 7, 0,228, 10,181, 1, 2, 0, 0, 0,229, 10, 0, 0,230, 10,182, 1, 4, 0, -182, 1, 0, 0,182, 1, 1, 0,160, 0, 50, 3, 12, 0,231, 10,183, 1, 24, 0,183, 1, 0, 0,183, 1, 1, 0, 12, 0,232, 10, -160, 0,120, 8,182, 1,233, 10, 12, 0,234, 10, 12, 0, 96, 3, 0, 0,233, 3, 7, 0,205, 10, 7, 0,235, 10, 7, 0, 88, 0, - 7, 0, 89, 0, 7, 0, 87, 9, 7, 0, 88, 9, 7, 0,236, 2, 7, 0, 91, 9, 7, 0,122, 8, 7, 0, 92, 9, 2, 0,236, 10, - 2, 0,237, 10, 2, 0, 43, 0, 2, 0, 17, 0, 4, 0, 19, 0, 4, 0, 70, 0,184, 1, 6, 0,184, 1, 0, 0,184, 1, 1, 0, - 12, 0,232, 10, 4, 0, 19, 0, 4, 0,156, 2, 0, 0,233, 3,185, 1, 10, 0,185, 1, 0, 0,185, 1, 1, 0, 27, 0,151, 6, - 0, 0,238, 10, 4, 0,223, 10, 4, 0,239, 10, 0, 0,221, 10, 4, 0,222, 10, 2, 0, 19, 0, 2, 0,240, 10,186, 1, 7, 0, -186, 1, 0, 0,186, 1, 1, 0, 12, 0,241, 10, 0, 0,233, 3, 2, 0, 19, 0, 2, 0,242, 10, 4, 0,243, 10,187, 1, 5, 0, -187, 1, 0, 0,187, 1, 1, 0, 0, 0,221, 10, 4, 0,222, 10, 7, 0,209, 2, 39, 0, 12, 0,160, 0, 90, 3,160, 0,244, 10, -182, 1,233, 10, 12, 0,245, 10,183, 1,246, 10, 12, 0,247, 10, 12, 0,248, 10, 4, 0, 19, 0, 4, 0,247, 0, 2, 0,249, 10, - 2, 0,250, 10, 7, 0,251, 10,188, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0,189, 1, 5, 0,189, 1, 0, 0,189, 1, 1, 0, - 4, 0, 17, 0, 4, 0, 19, 0, 0, 0, 20, 0,190, 1, 6, 0,189, 1,252, 10, 32, 0, 45, 0, 4, 0,253, 10, 7, 0,254, 10, - 4, 0,255, 10, 4, 0, 14, 9,191, 1, 3, 0,189, 1,252, 10, 4, 0,253, 10, 7, 0, 0, 11,192, 1, 8, 0,189, 1,252, 10, - 32, 0, 45, 0, 7, 0, 64, 1, 7, 0, 1, 11, 7, 0, 17, 3, 7, 0,189, 8, 4, 0,253, 10, 4, 0, 2, 11,193, 1, 5, 0, -189, 1,252, 10, 7, 0, 3, 11, 7, 0, 6, 8, 7, 0,242, 2, 7, 0, 57, 0,194, 1, 3, 0,189, 1,252, 10, 7, 0,189, 8, - 7, 0, 4, 11,140, 1, 4, 0, 7, 0, 5, 11, 7, 0, 37, 10, 2, 0, 6, 11, 2, 0, 69, 1,195, 1, 14, 0,195, 1, 0, 0, -195, 1, 1, 0, 12, 0, 7, 11, 12, 0, 8, 11, 12, 0, 9, 11, 0, 0, 20, 0, 4, 0, 31, 0, 4, 0, 19, 0, 4, 0, 10, 11, - 7, 0, 11, 11, 4, 0,255, 10, 4, 0, 14, 9, 7, 0,242, 3, 7, 0,244, 2,146, 1, 23, 0, 4, 0,253, 10, 4, 0, 12, 11, - 7, 0, 13, 11, 7, 0, 57, 0, 7, 0, 14, 11, 7, 0,240, 2, 7, 0, 5, 11, 7, 0, 15, 11, 7, 0,221, 2, 7, 0, 16, 11, - 7, 0,120, 4, 7, 0, 17, 11, 7, 0, 18, 11, 7, 0, 19, 11, 7, 0, 20, 11, 7, 0, 21, 11, 7, 0, 22, 11, 7, 0, 23, 11, - 7, 0, 24, 11, 7, 0, 25, 11, 7, 0, 26, 11, 7, 0, 27, 11, 12, 0, 28, 11,121, 0, 34, 0,120, 0, 29, 11,196, 1, 30, 11, - 67, 0, 31, 11, 67, 0, 66, 10, 67, 0, 32, 11,197, 1, 33, 11, 48, 0,165, 0, 48, 0, 34, 11, 48, 0, 35, 11, 7, 0, 36, 11, - 7, 0, 37, 11, 7, 0, 38, 11, 7, 0, 39, 11, 7, 0, 40, 11, 7, 0, 26, 9, 7, 0, 41, 11, 7, 0,170, 1, 7, 0, 42, 11, - 4, 0, 43, 11, 4, 0, 44, 11, 4, 0, 45, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0, 46, 11, 2, 0, 47, 11, 2, 0, 48, 11, - 4, 0, 49, 11, 7, 0,221, 2, 4, 0, 50, 11, 7, 0, 51, 11, 4, 0, 52, 11,137, 0, 53, 11, 12, 0, 54, 11,169, 0, 56, 4, -122, 0, 11, 0,120, 0, 29, 11,148, 0, 34, 3, 7, 0,137, 1, 7, 0, 26, 9, 7, 0, 55, 11, 7, 0, 56, 11, 2, 0, 57, 11, - 2, 0, 58, 11, 2, 0, 59, 11, 2, 0, 17, 0, 4, 0, 37, 0,123, 0, 13, 0,120, 0, 29, 11,139, 0, 14, 3,141, 0, 16, 3, - 7, 0,227, 8, 7, 0, 60, 11, 7, 0, 61, 11, 7, 0, 66, 1, 7, 0, 62, 11, 4, 0, 48, 9, 4, 0, 12, 3, 2, 0, 17, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, +127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 0, 0, 0, 0, + 0, 0, 0, 0,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,150,150,150,255,129,131,144,255,127,127,127,255, +142,138,145,255,120,145,120,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, + 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255, +217,217,217,255, 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, + 0, 0, 0,255,255,255,255,255,230,150, 50,255,255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, + 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, + 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255, +189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, + 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255, +193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, + 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255, +238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255, +152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255, +176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, + 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 78, 65, 49, 44,231, 0, 0, 48,112, 27, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, + 78, 65, 77, 69, 68, 11, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, + 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,119, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, + 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0, +115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, + 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, + 52, 93, 0,117,115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, + 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,110, 97, +109,101, 91, 50, 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, + 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0,112, 97,100, 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116, 91, 50, 93, 0, + 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, + 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0, +116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108, +105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, + 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114, +101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103, +114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100, +116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98, +108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108, +105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110, +100, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108, +105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, + 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, + 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,112, + 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 97,110,103,108,101, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112, +101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104, +105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 89, 70, 95, 97,112,101,114,116,117, +114,101, 0, 89, 70, 95, 98,107,104,116,121,112,101, 0, 89, 70, 95, 98,107,104, 98,105, 97,115, 0, 89, 70, 95, 98,107,104,114, +111,116, 0, 42,100,111,102, 95,111, 98, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, + 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101, +120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,109,101,110,117,110,114, 0, 42,115, 99,101,110,101, 0,105, 98,117,102,115, + 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0,115,111,117,114, 99,101, 0,108, 97, +115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121, +114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110, +100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0, 42,114,101,110,100,101,114, 95,116, +101,120,116, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101, +100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, + 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, + 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114, +111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, + 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112, +109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117, +116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0, +100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115, +112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, + 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, + 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, + 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, + 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, + 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,107,105,110, +107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0, +115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,112,118,101,108,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, + 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, + 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, + 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102, +114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, + 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, + 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, + 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110, +111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115, +105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115, +115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0, +112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, + 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97, +116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95, +105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0, +110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0, 42, 99,111, 98, 97, 0,114,101,115,111, +108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116, +101,110,100, 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115, +111,117,114, 99,101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0,110,111,105,115,101,115,105, +122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,114,102, 97, 99, 0,103, +102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117, +110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, + 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, + 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100, +105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101, +116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102, +108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99, +114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0, +121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, + 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117, +115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, + 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0, +115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0, +115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116, +116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, + 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102, +115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102, +102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0, +114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97, +112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122, +101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, +116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116, +121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110, +101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105, +122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110, +115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114, +105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, + 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, + 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, + 52, 0, 89, 70, 95,110,117,109,112,104,111,116,111,110,115, 0, 89, 70, 95,110,117,109,115,101, 97,114, 99,104, 0, 89, 70, 95, +112,104,100,101,112,116,104, 0, 89, 70, 95,117,115,101,113,109, 99, 0, 89, 70, 95, 98,117,102,115,105,122,101, 0, 89, 70, 95, +112, 97,100, 0, 89, 70, 95, 99, 97,117,115,116,105, 99, 98,108,117,114, 0, 89, 70, 95,108,116,114, 97,100,105,117,115, 0, 89, + 70, 95,103,108,111,119,105,110,116, 0, 89, 70, 95,103,108,111,119,111,102,115, 0, 89, 70, 95,103,108,111,119,116,121,112,101, + 0, 89, 70, 95,112, 97,100, 50, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97, +100, 91, 51, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, + 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110, +115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, + 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121, +109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115, +104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116, +101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115, +116,101,112,115, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115, +112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, + 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114, +111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110, +115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, + 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, + 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95, +100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101, +101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111, +115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101, +115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108, +111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100, +101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, + 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0, +102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, + 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97, +110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117, +118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, + 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112, +114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95, +115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, + 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112, +101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108, +101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, + 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42, +103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, + 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0, +115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115, +115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, + 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101, +115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, + 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115, +101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, + 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109, +115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111, +116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, + 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0, +104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110, +114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101, +114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107, +110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, + 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,104, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98, +101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97, +116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0, +112, 97,100, 91, 50, 93, 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114, +101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0, +114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, 98,112, 0,115,112, 97, 99, +101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115,105, +122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, 0, +121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101,100, +105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, 98, + 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0, +116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110, +100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0,101,102,102,101, 99,116, 0, 42,109,102, 97, 99,101, + 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100, +118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42, +109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102, +100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, + 99,116, 95,102, 97, 99,101, 0,101,100,105,116,102,108, 97,103, 0, 99,117, 98,101,109, 97,112,115,105,122,101, 0,115,109,111, +111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121, +112,101, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, + 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, + 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100, +119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, + 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100, +105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,100, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111, +108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101, +108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112, +105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, + 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103, +101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0, 42,101,114,114, +111,114, 0,109,111,100,105,102,105,101,114, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118, +101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, + 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114, +109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, + 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101, +114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111, +117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112, +108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105, +109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103, +114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0, +116,105,109,101, 0, 42,116,101,120,116,117,114,101, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, + 0,109,105,100,108,101,118,101,108, 0,116,101,120,109, 97,112,112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, + 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112, +114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116, +111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, + 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115, +116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, + 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0, +100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114, +103,101,116, 91, 51, 50, 93, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, + 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98, +106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105, +110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, + 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101, +110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0, 42, + 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101, +114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100, +119,101,105,103,104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121, +110,103,114,105,100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42, +112, 97,100, 50, 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100, +121,110, 99,101,108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 40, 42, 98,105,110,100, +102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103, +101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105, +116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0, 42,117,110,100, +111, 95,118,101,114,116,115, 0,117,110,100,111, 95,118,101,114,116,115, 95,116,111,116, 0,117,110,100,111, 95,115,105,103,110, + 97,108, 0,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101, +116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101, +112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, + 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111, +114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,116,115, 0,112,110,116,115,119, 0,111,112,110,116, +115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112, +101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, + 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, + 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, + 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111, +120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116, +105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 99,111,110,115,116,114, 97,105, +110,116, 67,104, 97,110,110,101,108,115, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115, +116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, + 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, + 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110, +103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105, +110,118, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112, +114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102, +108, 97,103, 0,105,112,111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105, +115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112, +115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116, +105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97, +120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110, +103, 84,104,114,101,115,104,111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,100,116,120, 0,101,109,112,116,121, 95, +100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0, +100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108, +101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, + 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97, +103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97, +105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115, +116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97, +103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,110,114, 0,115,104, 97,112,101,102,108, 97,103, + 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116, +105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97, +108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0, +103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0, 99,117,114,105,110,100, +101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116, +101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111, +114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110, +107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95, +102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100, +105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, + 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95, +102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101, +102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99, +108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110, +107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, + 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, + 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0, +100, 97,116, 97, 95,116,121,112,101,115, 0, 42,105,110,100,101,120, 95, 97,114,114, 97,121, 0, 42,100, 97,116, 97, 91, 56, 93, + 0, 42, 99,117,114, 91, 56, 93, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109, +101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0, +110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0, +112, 97,116,104, 91, 50, 52, 48, 93, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, + 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109, +101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97, +116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, + 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, + 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, + 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, + 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105, +116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111, +105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0, +110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109, +101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0, +103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120, +103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83, +111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105, +110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, + 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101, +121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, + 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, + 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, + 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, + 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105, +110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, + 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, + 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111, +108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, + 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100, +101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118, +105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118,120, 0,103,114, 97,118,121, 0,103,114, 97, +118,122, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101, +102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114, +103, 77,101,115,104, 0, 42,109,101,115,104, 83,117,114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, + 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, + 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109, +101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, + 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99, +101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99, +108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105, +101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 83,117,114,102, 78,111,114,109, 97,108,115, 0, 99,112,115, 84,105,109,101, + 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, + 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100, +105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105, +116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116, +121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,104,111,114,107, 0,122,101,110,114, 0,122,101,110, +103, 0,122,101,110, 98, 0,122,101,110,107, 0, 97,109, 98,107, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114, +101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116, +121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108, +117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, + 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101, +112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115, +116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0, +115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115, +101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111, +100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97, +111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, + 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, + 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105, +111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,105,110,100,105,114,101, 99, +116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, + 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101, +115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111,108, 0,115,120, 0, +115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, + 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70, +114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, + 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97, +118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99, +100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, + 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, + 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, + 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111, +114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, + 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, + 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117, +109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, + 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105, +122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111, +102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95, +109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114, +105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, + 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97, +116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,112, +115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97, +100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0, +101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101, +113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,114,116, 50, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114, +101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122, +101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,119,105,110,112,111,115, + 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, + 0,100,105,115,112,108, 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 0,115, 99,101,109,111,100,101, + 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99, +116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, + 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0, +100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,120, 97,115,112, 0,121, 97,115,112, + 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, + 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116, +104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116, +101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, + 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97, +120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0, 71, 73,113, +117, 97,108,105,116,121, 0, 71, 73, 99, 97, 99,104,101, 0, 71, 73,109,101,116,104,111,100, 0, 71, 73,112,104,111,116,111,110, +115, 0, 71, 73,100,105,114,101, 99,116, 0, 89, 70, 95, 65, 65, 0, 89, 70,101,120,112,111,114,116,120,109,108, 0, 89, 70, 95, +110,111, 98,117,109,112, 0, 89, 70, 95, 99,108, 97,109,112,114,103, 98, 0,121,102,112, 97,100, 49, 0, 71, 73,100,101,112,116, +104, 0, 71, 73, 99, 97,117,115,100,101,112,116,104, 0, 71, 73,112,105,120,101,108,115,112,101,114,115, 97,109,112,108,101, 0, + 71, 73,112,104,111,116,111,110, 99,111,117,110,116, 0, 71, 73,109,105,120,112,104,111,116,111,110,115, 0, 71, 73,112,104,111, +116,111,110,114, 97,100,105,117,115, 0, 89, 70, 95,114, 97,121,100,101,112,116,104, 0, 89, 70, 95, 65, 65,112, 97,115,115,101, +115, 0, 89, 70, 95, 65, 65,115, 97,109,112,108,101,115, 0,121,102,112, 97,100, 50, 0, 71, 73,115,104, 97,100,111,119,113,117, + 97,108,105,116,121, 0, 71, 73,114,101,102,105,110,101,109,101,110,116, 0, 71, 73,112,111,119,101,114, 0, 71, 73,105,110,100, +105,114,112,111,119,101,114, 0, 89, 70, 95,103, 97,109,109, 97, 0, 89, 70, 95,101,120,112,111,115,117,114,101, 0, 89, 70, 95, +114, 97,121, 98,105, 97,115, 0, 89, 70, 95, 65, 65,112,105,120,101,108,115,105,122,101, 0, 89, 70, 95, 65, 65,116,104,114,101, +115,104,111,108,100, 0, 98, 97, 99,107, 98,117,102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 93, 0,115,116, 97,109, +112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, + 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,105,109,112,108,105,102, +121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, + 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115, +115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111, +110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, + 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109, +101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110, +101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0, +115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0, +114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,109,111,100,101, 0, +102,114, 97,109,105,110,103, 0,114,116, 49, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0, 42, 42, 98,114, +117,115,104,101,115, 0, 97, 99,116,105,118,101, 95, 98,114,117,115,104, 95,105,110,100,101,120, 0, 98,114,117,115,104, 95, 99, +111,117,110,116, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, + 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,116,111,111,108, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114, +109, 97,108, 95, 97,110,103,108,101, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111, +116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, + 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116, +121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, + 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,112,105,118,111,116, 91, 51, 93, 0,116, 97, 98,108,101,116, 95,115,105,122, +101, 0,116, 97, 98,108,101,116, 95,115,116,114,101,110,103,116,104, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42, +119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111, +117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, + 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102, +115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, + 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112, +101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, + 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, + 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, + 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, 97,100, 91, 50, 93, 0, 97,117,116,111,105,107, 95, + 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111, +114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, + 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97, +103, 0,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0, +108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115, +112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114, +101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, + 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101, +110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105, +116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, + 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, + 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103, +101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95, +114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111, +112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112, +114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0, +115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116, +101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, + 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, + 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101, +116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, + 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,115, +110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112, +114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0, 97,117,116,111, 95,110,111,114,109, 97, +108,105,122,101, 0,105,110,116,112, 97,100, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98, +106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114, +101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121,115,116,101,109, 0,103,114, 97,118,105,116,121, 91, 51, 93, + 0, 42, 99, 97,109,101,114, 97, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99, +116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119, +109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103, +115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, +115,111,117,110,100, 95,104, 97,110,100,108,101,115, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, + 0,100, 97,103,102,108, 97,103,115, 0,106,117,109,112,102,114, 97,109,101, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95, +107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121, +115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, + 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114, +115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, +111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, + 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100, +121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,118,105,101,119, 98,117,116, 0,114,102,108, 97,103, 0, +118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 0,118,105,101,119, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99, +108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, + 0, 42,114,105, 0, 42,114,101,116,111,112,111, 95,118,105,101,119, 95,100, 97,116, 97, 0, 42,100,101,112,116,104,115, 0, 42, +115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108, +112,101,114,115,112, 0,108,118,105,101,119, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, + 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95, +117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, + 95, 98,111,110,101, 91, 51, 50, 93, 0,108, 97,121, 97, 99,116, 0,100,114, 97,119,116,121,112,101, 0,115, 99,101,110,101,108, +111, 99,107, 0, 97,114,111,117,110,100, 0,112,105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,103,114,105,100,118, +105,101,119, 0,112, 97,100,102, 0,110,101, 97,114, 0,102, 97,114, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100, +102,108, 97,103, 0,103,114,105,100,115,117, 98,100,105,118, 0,109,111,100,101,115,101,108,101, 99,116, 0,107,101,121,102,108, + 97,103,115, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,116,119,100,114, 97,119,102, +108, 97,103, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97,119, 0,122, 98, +117,102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111, +112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105, +110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111, +108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101, +101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108, +100,119,105,110,121, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95, +110,117,109, 0,116, 97, 98, 95, 99,117,114, 0, 42,115, 99,114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111, +115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, + 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118, +105,101,119, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110, +100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105, +116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101, +102,105,108,101, 91, 56, 48, 93, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,111, +107,109, 97,114,107, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 0,102, 95,102,112, 0, +109,101,110,117, 0,102,112, 95,115,116,114, 91, 56, 93, 0, 42,112,117,112,109,101,110,117, 0, 42,112, 97,114, 97,109,115, 0, + 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101, +120,116, 0, 42,111,112, 0, 42,108,111, 97,100,105,109, 97,103,101, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0, +114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101, +101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115, +101, 97,114, 99,104, 95,116,115,101, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,117,116,108,105, +110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, 0, 99,117,114, +116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, + 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 42,116,101, +120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0, +108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98, +110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, + 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, + 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, + 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, + 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108, +108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, + 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, + 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, + 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101, +116,121,112,101, 0,116,101,120,102,114,111,109, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, + 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, + 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0, +112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101, +116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97, +114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,105,109,103, 0,108, +101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,114,112,116, 95,109, 97,115,107, 0,115, 99,114,111,108,108, 98, + 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, + 91, 51, 50, 93, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, + 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, + 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97, +108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117, +112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122, +111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, + 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, + 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97, +110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105, +110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, + 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115, +104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0, +105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105, +110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0, +105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, + 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0, +119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, + 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112, +117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, + 95,105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95, +108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, + 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, + 97,100,101,114, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116, +101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, + 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, + 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, + 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, + 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, + 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, + 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, + 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99, +116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, + 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115, +101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0, +101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95, +102, 97, 99,101,115,101,108, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, + 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108, +105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105, +112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, + 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, + 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, 97,100, 91, 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, + 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, + 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, + 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105, +110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109, +101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, + 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, +114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 51, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, + 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0, +116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, + 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112, +114,101,102, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95,103,114,111,117,112, 0, +115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, + 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, + 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0, +112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115, +111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,121,102,101,120,112,111,114,116,100,105,114, 91, 49, 54, 48, 93, 0,118,101, +114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0, +119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0, +117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100, +105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97, +117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111, +112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, + 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112, +115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100, +111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108, +105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0, +116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, + 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101, +115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, + 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, 97,100, 0,109,101,109, 99, 97, 99, +104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118, +101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, + 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, + 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, + 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0,105,112,111, 95,110,101,119, 0, +118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0, +103,108, 97,108,112,104, 97, 99,108,105,112, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,118,101,114,116, 98, 97,115,101, + 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,102,117,108, +108, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, + 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,115, +119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105, +109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, + 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, + 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, + 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, + 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108, +116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, + 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105, +122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, + 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97, +116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100, +114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101, +110,116, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114, +101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0, +112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0, 42, 99, +117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, + 98, 97,108,102, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,105, 98,117,102, 0, 42,105, 98,117,102, 95, 99,111,109,112, 0, 42, +115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,114, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111, +102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, + 0,115, 97,116,117,114, 97,116,105,111,110, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116,115, +116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0,111,114,120, 0,111,114,121, + 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, + 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,115,116, 97,114,116,115,116, +105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116,105,108,108, 0, 42,105, 98,117,102, 95,115, +116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116,105,108,108, 0, 42,105,110,115,116, 97,110, + 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116, +101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104, +105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,109,117,108, 0,104, 97,110,100,115,105, +122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0,101,102,102,101, 99,116, 95,102, 97, +100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, + 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115,111,117,110,100, 95,104, 97,110,100,108,101, 0,108, +101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, + 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108, +101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, + 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99, +116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110, +100,100,105,114, 91, 50, 53, 54, 93, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101, +116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, + 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, + 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105, +110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101,114,112, +111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0, +103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121, +112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, + 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, + 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0, +109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0, +116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116, +105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111, +117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, + 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, + 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0, +113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, + 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0, +100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0, +100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, + 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115, +116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, + 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116, +108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95, +115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, + 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0, 42,109,121,110,101, +119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, + 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98, +108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, + 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,115,110,100,110,114, 0,112, 97,100, 49, 91, 50, 93, 0, +112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,109, 97,107,101, 99,111,112,121, 0, 99,111,112,121,109, 97,100,101, 0, +112, 97,100, 50, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101, +108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111, +110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114, +118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42, +114,101,102,101,114,101,110, 99,101, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,109,105,110, 0,109, 97,120, 0, +118,105,115,105,102, 97, 99, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, + 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, + 51, 50, 93, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97, +114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80, +114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102, +105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, + 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,103,111, 0, 97, 99, 99,101, +108,108,101,114, 97,116,105,111,110, 0,109, 97,120,115,112,101,101,100, 0,109, 97,120,114,111,116,115,112,101,101,100, 0,109, + 97,120,116,105,108,116,115,112,101,101,100, 0,116,105,108,116,100, 97,109,112, 0,115,112,101,101,100,100, 97,109,112, 0, 42, +115,111,117,114, 99,101, 0,102,114, 97,109,101,115,107,105,112, 0,109,117,116,101, 0, 99,104, 97,110,103,101,100, 0,109,105, +110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, + 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99, +111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, + 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, + 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42, 97,114,101, + 97, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, + 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105, +108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, + 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,120,119,105,100,116,104, + 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, + 95,116, 97,105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, + 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121, +101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103, +104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101, +102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112, +111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0, 99,111,110,115, +116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100, +101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 98, 95, 98,111,110,101, 95,109, + 97,116,115, 0, 42,100,117, 97,108, 95,113,117, 97,116, 0, 42, 98, 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116, +115, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, + 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, + 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101, +115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105, +110,119,101,105,103,104,116, 0, 42, 99,117,115,116,111,109, 0, 99,104, 97,110, 98, 97,115,101, 0,112,114,111,120,121, 95,108, + 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102, +115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111, +108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,110,117,109,105,116,101,114, 0,110,117, +109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101, +100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97, +110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, + 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0, 97, 99, +116,110,114, 0, 97, 99,116,119,105,100,116,104, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,116,101,109,112, + 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111, +114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, + 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101, +114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, + 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115, +117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105, +103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105, +110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114, +118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108, +111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, + 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, + 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, + 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, + 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97, +120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,122,109,105,110, 0,122,109, + 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105, +115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99, +116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101, +110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110, +101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112, +101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0, +115,116, 97, 99,107, 95,105,110,100,101,120, 0,105,110,116,101,114,110, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 95,101, +120,116, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, + 42,116,111,115,111, 99,107, 0, 42,108,105,110,107, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117, +116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0, 99,117,115,116,111,109, 49, + 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120, +101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114, +118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116, +111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, + 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99, +117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 42,111,119,110,116,121,112,101, 0, 42,115,101,108,105, +110, 0, 42,115,101,108,111,117,116, 0, 40, 42,116,105,109,101, 99,117,114,115,111,114, 41, 40, 41, 0, 40, 42,115,116, 97,116, +115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42, +116, 99,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109,105, +110,115,112,101,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, + 97,109,109, 97, 0, 99,117,114,118,101,100, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, + 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105, +110, 0,105,116,101,114, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, + 97, 99,101, 0,104,117,101, 0,115, 97,116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, + 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0, 99,111,108,110, 97,109,101, + 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98, +117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42, +110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104, +111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,104,111,114,116,121, + 0,109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, + 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98, +108,101, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105, +116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,111,102,102,115,101,116, 91, + 50, 93, 0, 99,108,111,110,101, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97, +100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114, +103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116, +105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111, +116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0,118,101, +108, 91, 51, 93, 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101, +114, 91, 51, 93, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, + 93, 0,102,111,102,102,115,101,116, 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, + 0, 42, 98,111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0, 97,108,105,118,101, + 0,108,111,111,112, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 42, 98,111,105,100,115, 0,100,105,115,116,114, 0,112,104, +121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100, +114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97, +115, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97, +100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116, +101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, + 97,110,105,109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95, +114, 97,110,100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0,115,105,109,112,108,105,102,121, 95, +102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, + 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, + 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, + 97,105,114, 0,103,114,105,100, 95,114,101,115, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112, +104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112, +104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0, +114, 97,110,100,115,105,122,101, 0,114,101, 97, 99,116,115,104, 97,112,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, + 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99, +104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99, +104,105,108,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, + 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109,112,112,111,119, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, + 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95, +116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, + 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, 0, 98,114, 97,110, 99,104, 95,116,104,114, +101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95, +101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108, +105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95, +111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, + 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, + 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, + 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99, +101, 0,116,114,101,101, 95,102,114, 97,109,101, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0, +116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121, +101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103, +114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, + 42,101,102,102,101, 99,116,111,114,115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105, +115, 0, 67,118,105, 0, 91, 51, 93, 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, + 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115, +112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, + 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0, +118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114, +101,114,111,108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118, +103,114,111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116, +114,117, 99,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105, +115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115, +105,108,111,110, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0, +112,114,101,115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101, +110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98, +117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101, +114, 0, 42,116,121,112,101,115,116,114, 0, 42,109,101,115,115, 97,103,101, 0,108,105,115,116, 0,112,114,105,110,116,108,101, +118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, + 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95, +115, 97,118,101,100, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, + 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97, +117,108,116, 99,111,110,102, 0,100,101,102, 97,117,108,116, 97, 99,116,109, 97,112, 0,116,105,109,101,114,115, 0, 42, 97,117, +116,111,115, 97,118,101,116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, + 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0, +112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114, +115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0,108, 97,115,116, 95,116,121,112,101, 0,108, 97,115,116, 95, +118, 97,108, 0,108, 97,115,116, 95, 99,108,105, 99,107, 95,116,105,109,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, + 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, + 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119, +105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97, +108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105, +102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0, +114,101,103,105,111,110,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, + 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97, +116, 97, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0,109,118, 97,108, 91, 50, 93, 0,112, +114,101,118,120, 0,112,114,101,118,121, 0,117,110,105, 99,111,100,101, 0, 97,115, 99,105,105, 0, 42,107,101,121,109, 97,112, + 95,105,100,110, 97,109,101, 0, 99,117,115,116,111,109, 0, 99,117,115,116,111,109,100, 97,116, 97,102,114,101,101, 0, 42,101, +100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, + 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115, +101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95, +111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95, +109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0, +114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0, 42,114,110, 97, 95,112, 97,116, +104, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0,105,100,116,121,112,101, 0,101,120,112,114,101,115,115,105,111,110, 91, + 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 99,111,108,111, +114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, + 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, + 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, + 0,103,114,111,117,112, 91, 54, 52, 93, 0,116,101,109,112,108, 97,116,101,115, 0,103,114,111,117,112,109,111,100,101, 0,112, + 97,116,104,115, 0,107,101,121,105,110,103,102,108, 97,103, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, + 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, + 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116, +101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111, +110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104, +101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108, +101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101, +115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112, +101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, + 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115, +115,105,111,110, 0, 97, 99, 99,117,114, 97, 99,121, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95, +109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118, +101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115, +112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, + 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99, +101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42, +102,108,117,105,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42, +119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, + 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, + 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105, +110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101, +100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 42,112,111,105,110,116, 95, + 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0,118,101,108,111, 99,105,116,121, 91, 51, 93, + 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0, +118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110, +116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 0, 84, 89, 80, 69, +198, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0, +108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110, +107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,105, 0, +118,101, 99, 50,102, 0,118,101, 99, 50,100, 0,118,101, 99, 51,105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,100, 0,118,101, + 99, 52,105, 0,118,101, 99, 52,102, 0,118,101, 99, 52,100, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112, +101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70, +105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, + 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, + 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105, +110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97, +109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101, +120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, + 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, + 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 86,111,120,101,108, 68, 97,116, 97, 0, + 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, + 97,112,112,105,110,103, 0, 87, 97,118,101, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114, +105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108, +101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110, +102,111, 0, 84,101,120,116, 66,111,120, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105, +116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86, +101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99, +107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77, +117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114, +109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111, +108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83, +116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115, +112,115, 0, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 32, 40, 49, 60, 60, 49, 41, 32, 35, +100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 32, 40, 49, 60, 60, 50, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, + 95, 70, 71, 79, 78, 32, 40, 49, 60, 60, 51, 41, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, + 68, 69, 82, 32, 40, 49, 60, 60, 53, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 32, + 40, 49, 60, 60, 55, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 32, 40, 49, 60, 60, + 56, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, 32, 40, 49, 60, 60, 57, 41, 32, 32, 32, 35,100,101, +102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, + 86, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 32, 52, 32, 35,100,101,102,105,110,101, + 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 32, 49, + 54, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 77, + 69, 95, 80, 82, 79, 74, 89, 90, 32, 54, 52, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 32, 49, 32, 35, +100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, + 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, + 86, 52, 86, 49, 32, 56, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 32, 49, 32, 35,100,101,102, +105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 32, 50, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, + 83, 69,108, 32, 48, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 32, 35,100,101,102,105,110,101, 32, + 77, 69, 95, 70, 83, 69, 76, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 49, 32, 32, + 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, + 83, 69, 76, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 50, 32, 56, 32, 35,100,101,102,105,110,101, + 32, 84, 70, 95, 83, 69, 76, 51, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 32, 51, 50, 32, 35, +100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 32, 54, 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, + 89, 78, 65, 77, 73, 67, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 32, 50, 32, + 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, + 69, 68, 86, 69, 82, 84, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 32, 49, 54, 32, 35,100,101, +102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, + 84, 73, 76, 69, 83, 32, 49, 50, 56, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 32, + 50, 53, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, 73, 68, 69, 32, 53, 49, 50, 32, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 32, 49, 48, 50, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, + 79, 66, 67, 79, 76, 32, 50, 48, 52, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, + 32, 52, 48, 57, 54, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 32, 56, 49, 57, 50, 32, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 32, 49, 54, 51, 56, 52, 32, 32, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 83, 79, 76, 73, 68, 32, 48, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 32, 49, 32, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 32, 52, 32, + 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 32, 51, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, + 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, + 69, 68, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 32, 52, 32, 35, +100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, + 84, 70, 95, 80, 73, 78, 49, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 32, 51, 50, 32, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, + 32, 49, 50, 56, 32, 35,101,110,100,105,102,100, 32, 99,104, 97,114, 32,117,115,101, 95, 99,111,108, 44, 32,102,108, 97,103, 59, + 10, 10, 9, 47, 42, 32, 83,112,101, 99,105, 97,108, 32,108,101,118,101,108, 32, 49, 32,100, 97,116, 97, 32,116,104, 97,116, 32, + 99, 97,110,110,111,116, 32, 98,101, 32,109,111,100,105,102,105,101,100, 32,102,114,111,109, 32,111,116,104,101,114, 32,108,101, +118,101,108,115, 32, 42, 47, 10, 9, 67,117,115,116,111,109, 68, 97,116, 97, 32,118,100, 97,116, 97, 59, 10, 9, 67,117,115,116, +111,109, 68, 97,116, 97, 32,102,100, 97,116, 97, 59, 10, 9,115,104,111,114,116, 32, 42,101,100,103,101, 95,102,108, 97,103,115, + 59, 10, 9, 99,104, 97,114, 32, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 59, 10,125, 32, 77,117,108,116,105,114,101, +115, 59, 10, 10, 47, 42, 42, 32, 69,110,100, 32, 77,117,108,116,105,114,101,115, 32, 42, 42, 47, 10, 10,116,121,112,101,100,101, +102, 32,115,116,114,117, 99,116, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 32,123, 10, 9,117,110, +115,105,103,110,101,100, 32,105,110,116, 32, 42,118,101,114,116, 95,109, 97,112, 59, 32, 47, 42, 32,118,101,114,116, 95,109, 97, +112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 32, 42, 47, 10, 9,105,110,116, 32, + 42,101,100,103,101, 95,109, 97,112, 59, 32, 47, 42, 32,101,100,103,101, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, + 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 44, 32, 45, 49, 61, 32,104,105,100,100,101,110, 32, 42, 47, 10, 9, 77, 70, 97, + 99,101, 32, 42,111,108,100, 95,102, 97, 99,101,115, 59, 10, 9, 77, 69,100,103,101, 32, 42,111,108,100, 95,101,100,103,101,115, + 59, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32,116,111,116,102, 97, 99,101, 44, 32,116,111,116,101,100,103,101, + 44, 32,116,111,116,118,101,114,116, 44, 32,112, 97,100, 59, 10,125, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108, +105,116,121, 59, 10, 10, 47, 42, 32,109,118,101,114,116, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 32, + 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 83, 84, 9, 50, 10, 35,100,101,102,105, +110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 77, 80, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 72, 73, + 68, 69, 9, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 69, 82, 84, 95, 77, 69, 82, 71, 69, 68, 9, 9, + 40, 49, 60, 60, 54, 41, 10, 10, 47, 42, 32,109,101,100,103,101, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, + 41, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 9, 9, 9, 40, 49, 60, 60, 49, 41, + 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 9, 9, 9, 9, 40, 49, 60, 60, 50, 41, 10, 35,100,101,102,105, +110,101, 32, 77, 69, 95, 70, 71, 79, 78, 9, 9, 9, 9, 40, 49, 60, 60, 51, 41, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,114,101, +115,101,114,118,101, 32, 49, 54, 32,102,111,114, 32, 77, 69, 95, 72, 73, 68, 69, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, + 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 9, 9, 40, 49, 60, 60, 53, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, + 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 9, 9, 40, 49, 60, 60, 55, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, + 65, 77, 95, 76, 65, 83, 84, 9, 9, 40, 49, 60, 60, 56, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, + 9, 9, 9, 40, 49, 60, 60, 57, 41, 10, 10, 47, 42, 32,112,117,110,111, 32, 61, 32,118,101,114,116,101,120,110,111,114,109, 97, +108, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 47, 42, 32,114,101,110,100,101,114, 32, 97,115,115,117,109,101,115, 32,102, +108,105,112,115, 32,116,111, 32, 98,101, 32,111,114,100,101,114,101,100, 32,108,105,107,101, 32,116,104,105,115, 32, 42, 47, 10, + 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, + 70, 76, 73, 80, 86, 50, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 9, 9, 52, 10, 35, +100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, + 82, 79, 74, 88, 89, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 9, 9, 51, 50, 10, + 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, 90, 9, 9, 54, 52, 10, 10, 47, 42, 32,101,100, 99,111,100,101, + 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 9, 9, 9, 49, 10, + 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 9, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, + 51, 86, 49, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 9, 9, 9, 52, 10, 35,100,101,102, +105,110,101, 32, 77, 69, 95, 86, 52, 86, 49, 9, 9, 9, 56, 10, 10, 47, 42, 32,102,108, 97,103, 32, 40,109,102, 97, 99,101, 41, + 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 9, 9, 9, 49, 10, 35,100,101,102,105,110, +101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 9, 9, 9, 50, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,102,108, 97,103, 32, + 77, 69, 95, 72, 73, 68, 69, 61, 61, 49, 54, 32,105,115, 32,117,115,101,100, 32,104,101,114,101, 32,116,111,111, 32, 42, 47, 32, + 10, 47, 42, 32,109,115,101,108,101, 99,116, 45, 62,116,121,112,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, + 86, 83, 69,108, 9, 48, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 10, 35,100,101,102,105,110,101, + 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,102,108, 97,103, 32, 42, 47, 10, 35, +100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 9, 49, 32, 47, 42, 32,117,115,101, 32, 77, 70, 97, 99,101, 32, +104,105,100,101, 32,102,108, 97,103, 32, 40, 97,102,116,101,114, 32, 50, 46, 52, 51, 41, 44, 32,115,104,111,117,108,100, 32, 98, +101, 32, 97, 98,108,101, 32,116,111, 32,114,101,117,115,101, 32, 97,102,116,101,114, 32, 50, 46, 52, 52, 32, 42, 47, 10, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 9, 50, 32, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 33, + 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 49, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 83, 69, 76, 50, 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 51, 9, 9, 49, 54, 10, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 9, 9, 51, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, + 69, 9, 9, 54, 52, 32, 47, 42, 32,117,110,117,115,101,100, 44, 32,115, 97,109,101, 32, 97,115, 32, 84, 70, 95, 83, 69, 76, 69, + 67, 84, 32, 42, 47, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,109,111,100,101, 32, 42, 47, 10, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, + 83, 79, 82, 84, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 9, 9, 9, 52, 10, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, + 72, 84, 9, 9, 49, 54, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 9, 54, 52, 10, + 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, 9, 9, 49, 50, 56, 9, 9, 47, 42, 32,100,101,112,114,101, 99, + 97,116,101,100, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 9, 50, 53, 54, + 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, 73, 68, 69, 9, 9, 53, 49, 50, 10, 35,100,101,102,105,110,101, + 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 9, 49, 48, 50, 52, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, + 66, 67, 79, 76, 9, 9, 50, 48, 52, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, + 9, 52, 48, 57, 54, 9, 47, 42, 32,119,105,116,104, 32, 90, 32, 97,120,105,115, 32, 99,111,110,115,116,114, 97,105,110,116, 32, + 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 9, 9, 56, 49, 57, 50, 10, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 9, 9, 49, 54, 51, 56, 52, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62, +116,114, 97,110,115,112, 44, 32,118, 97,108,117,101,115, 32, 49, 45, 52, 32, 97,114,101, 32,117,115,101,100, 32, 97,115, 32,102, +108, 97,103,115, 32,105,110, 32,116,104,101, 32, 71, 76, 44, 32, 87, 65, 82, 78, 73, 78, 71, 44, 32, 84, 70, 95, 83, 85, 66, 32, + 99, 97,110,116, 32,119,111,114,107, 32,119,105,116,104, 32,116,104,105,115, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 83, 79, 76, 73, 68, 9, 48, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 9, 9, 49, 10, 35,100,101,102, +105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 9, 9, + 52, 32, 47, 42, 32, 99,108,105,112,109, 97,112, 32, 97,108,112,104, 97, 47, 98,105,110, 97,114,121, 32, 97,108,112,104, 97, 32, + 97,108,108, 32,111,114, 32,110,111,116,104,105,110,103, 33, 32, 42, 47, 10, 10, 47, 42, 32,115,117, 98, 32,105,115, 32,110,111, +116, 32, 97,118, 97,105,108, 97, 98,108,101, 32,105,110, 32,116,104,101, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99, +101, 32, 97,110,121,109,111,114,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 9, 9, 51, 10, 10, + 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,117,110,119,114, 97,112, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, + 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, + 65, 84, 69, 68, 50, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 9, 52, + 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 52, 9, 56, 10, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 80, 73, 78, 49, 9, 9, 32, 32, 32, 32, 49, 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, + 50, 9, 9, 32, 32, 32, 32, 51, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 9, 32, 32, 32, 9, 9, 54, + 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, 9, 32, 32, 32, 32, 9, 49, 50, 56, 10, 10, 35,101,110,100, +105,102, 10,100,105, 79, 67, 75, 33,110,100,101,120, 32,105,110, 32,110,117,114, 98, 32,108,105,115,116, 32, 42, 47, 10, 9,105, +110,116, 32, 97, 99,116,110,117, 59, 10, 9, 47, 42, 32,101,100,105,116, 44, 32,108, 97,115,116, 32,115,101,108,101, 99,116,101, +100, 32, 98,112,111,105,110,116, 32, 42, 47, 10, 9, 66, 80,111,105,110,116, 32, 42,108, 97,115,116,115,101,108, 98,112, 59, 10, + 9, 10, 9, 47, 42, 32,102,111,110,116, 32,112, 97,114,116, 32, 42, 47, 10, 9,115,104,111,114,116, 32,108,101,110, 44, 32,108, +105,110,101,115, 44, 32,112,111,115, 44, 32,115,112, 97, 99,101,109,111,100,101, 59, 10, 9,102,108,111, 97,116, 32,115,112, 97, + 99,105,110,103, 44, 32,108,105,110,101,100,105,115,116, 44, 32,115,104,101, 97,114, 44, 32,102,115,105,122,101, 44, 32,119,111, +114,100,115,112, 97, 99,101, 44, 32,117,108,112,111,115, 44, 32,117,108,104,101,105,103,104,116, 59, 10, 9,102,108,111, 97,116, + 32,120,111,102, 44, 32,121,111,102, 59, 10, 9,102,108,111, 97,116, 32,108,105,110,101,119,105,100,116,104, 59, 10, 70, 82, 69, + 69,216, 24, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, + 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114, +101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105, +102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114, +118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, + 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97, +116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, + 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, + 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101, +114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116, +104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, + 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, + 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111, +100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111, +116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116, +116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105, +101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97, +116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66, +111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, + 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116, +105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102, +105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116, +105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101, +114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97, +112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105, +101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116, +105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, + 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 66,117,108,108,101,116, 83,111,102,116, 66, +111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, + 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, + 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, + 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 87, +111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, + 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, + 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, + 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111, +102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97, +116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, + 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, + 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105, +101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105, +110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83, +101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111, +114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110, +102,111, 0, 82,101,116,111,112,111, 86,105,101,119, 68, 97,116, 97, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111, +111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99, +101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 98, 83, 99,114,101,101,110, 0, 83, +112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, + 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, + 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, + 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101, +109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, + 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, + 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111, +110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, + 80,114,101,102, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0, +117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111, +114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67, +111,108,111,114, 0, 98, 84,104,101,109,101, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 83, + 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117, +105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111, +110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108, +101,109, 0, 84, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97, +110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114, +111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111, +117,110,100, 0, 83,111,117,110,100, 72, 97,110,100,108,101, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97, +114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67, +111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, + 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69, +102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83, +101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115, +111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115, +111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, + 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, + 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83, +101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116, +105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111, +110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116, +111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111, +114, 0, 83,111,117,110,100, 51, 68, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, + 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, + 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109, +101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, + 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, + 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86, +105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116, +117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, + 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 70,114,101,101, 67, 97,109,101,114, + 97, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65, +114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 77,111,116,105,111,110, 80, + 97,116,104, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 80,111,115,101, 67,104, 97,110,110,101, +108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83, +112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116, +114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, + 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105, +110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116, +114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, + 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, + 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, + 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, + 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115, +116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116, +114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110, +116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, + 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115, +116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76, +105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, 97, +105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110,107, +119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, + 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107, +101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, +117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, + 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66, +105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, + 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, + 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, 86, +101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68, +105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,101, +110,115, 68,105,115,116, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105, +110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, + 97, 76, 97,121,101,114, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, + 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, + 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104, +116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, + 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, + 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, + 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, + 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110, +100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0, +119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, + 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119, +109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110, +101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, + 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111, +100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, + 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, 83,111,117,110,100, 0, 68,114,105,118,101,114, 84, 97,114, +103,101,116, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, + 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, + 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79, +118,101,114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66, +111,105,100, 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111, +108,108,105,115,105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105, +100, 82,117,108,101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, + 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 0, + 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, + 8, 0, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0, 16, 0, 16, 0, 32, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, + 40, 0,144, 0,152, 4,112, 0, 36, 0, 56, 0,112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,152, 0, 40, 0, + 40, 6,184, 1, 0, 0, 0, 0, 0, 0, 16, 1,104, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0, 88, 0, 32, 1,248, 0,136, 0, +248, 1, 56, 1, 80, 0, 88, 0, 32, 3,104, 0, 88, 1, 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0,216, 1, 0, 0, + 0, 0, 0, 0,144, 1, 20, 0, 48, 0, 64, 0, 24, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 32, 0,112, 0, 48, 0, + 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 16, 0, 0, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 72, 0, + 96, 0,112, 0,120, 0, 88, 0,120, 0,152, 0, 88, 0, 80, 0,128, 0, 80, 0,104, 0,248, 0, 56, 0,192, 0,176, 0,216, 0, + 80, 0,112, 0,128, 0,216, 0,128, 0,240, 0, 72, 0,128, 0, 0, 0,144, 0, 32, 0, 8, 2,152, 0, 0, 0,112, 0, 0, 0, + 0, 0, 88, 0, 8, 0, 8, 0, 16, 1,104, 0,240, 1, 96, 0, 88, 0, 88, 0, 88, 0,192, 1,136, 0,128, 0, 72, 0,232, 0, + 48, 0, 0, 0,144, 0, 88, 0,104, 0,120, 0,152, 0,120, 1,224, 0,192, 0, 0, 0, 72, 0,168, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0,224, 1, 40, 0,184, 0,152, 0, 40, 0, 64, 0, 24, 0, 88, 0, 64, 4, 64, 0, 24, 0, 16, 0, 96, 0, 88, 0, + 32, 0, 40, 1, 48, 0, 8, 0,112, 0, 88, 0, 56, 0, 64, 0,120, 1, 32, 0, 8, 0, 16, 0, 48, 2, 0, 0, 0, 0, 64, 0, + 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 56, 0,152, 0, 72, 0,208, 0,248, 0, 32, 0, 0, 1,240, 0,208, 1, +104, 0, 0, 0,152, 0, 0, 0, 40, 1, 16, 0, 16, 0,168, 0,224, 0,144, 2,120, 2, 64, 0,200, 0, 32, 1, 72, 0,208, 2, + 40, 0,136, 1, 40, 0, 24, 1, 32, 0,232, 0, 32, 0, 32, 0, 80, 2, 16, 1, 16, 0,216, 21, 56, 0,160, 11, 32, 0, 40, 0, + 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 24, 1, 80, 0, 48, 0, 16, 0, 8, 0, 52, 0, 0, 1, 32, 1,200, 1, + 8, 1, 48, 1, 64, 0, 32, 0, 12, 0, 24, 0, 52, 0, 16, 0, 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, + 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 72, 0, 96, 0,104, 0, 60, 0,128, 0, + 80, 0, 80, 0, 16, 0, 96, 0, 72, 0, 32, 0, 88, 0, 24, 0, 80, 0,112, 0, 84, 0, 32, 0, 96, 0, 56, 0, 56, 0,112, 0, +140, 0, 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0,224, 0, 40, 0, 40, 1,200, 0, 16, 0, 24, 0, 24, 0, 0, 2, 4, 0, + 40, 0,120, 0, 8, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0,120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 72, 0, 48, 0, 72, 0, + 48, 0, 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, 28, 0, 28, 0, 28, 0, 56, 0, 24, 0, 72, 0,168, 0, 40, 0, +144, 0, 56, 0,232, 0, 0, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, 40, 0, 8, 0, 8, 0, 64, 0, + 32, 0, 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 32, 0, 12, 0, 56, 0, 24, 0, 72, 0, 24, 0, 56, 0, 56, 0, 20, 0, 64, 0, + 40, 0, 32, 0,192, 0, 8, 2,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 32, 0, 8, 1, +232, 0,168, 0, 72, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, + 24, 0, 20, 0, 24, 0,112, 0, 40, 1, 16, 0,104, 0, 0, 1, 40, 0,200, 0,104, 0,112, 0,104, 0, 32, 0, 80, 0, 56, 0, + 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0, 83, 84, 82, 67,140, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, + 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, + 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 4, 0, 5, 0, 4, 0, 6, 0, 15, 0, 2, 0, 7, 0, 5, 0, + 7, 0, 6, 0, 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, + 18, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, + 20, 0, 4, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, + 7, 0, 7, 0, 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, + 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, + 7, 0, 12, 0, 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, + 26, 0, 1, 0, 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, + 4, 0, 24, 0, 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, + 2, 0, 19, 0, 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, + 0, 0, 35, 0, 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, + 2, 0, 42, 0, 2, 0, 43, 0, 4, 0, 44, 0, 31, 0, 6, 0, 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, + 2, 0, 19, 0, 0, 0, 48, 0, 33, 0, 21, 0, 33, 0, 0, 0, 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, + 24, 0, 52, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, + 2, 0, 57, 0, 7, 0, 11, 0, 7, 0, 12, 0, 4, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, + 36, 0, 7, 0, 27, 0, 31, 0, 12, 0, 63, 0, 24, 0, 64, 0, 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, + 37, 0, 16, 0, 37, 0, 0, 0, 37, 0, 1, 0, 7, 0, 67, 0, 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, + 2, 0, 19, 0, 4, 0, 69, 0, 4, 0, 70, 0, 9, 0, 2, 0, 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, + 7, 0, 74, 0, 38, 0, 13, 0, 27, 0, 31, 0, 39, 0, 75, 0, 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, + 12, 0, 79, 0, 36, 0, 80, 0, 27, 0, 81, 0, 2, 0, 17, 0, 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 6, 0, + 40, 0, 0, 0, 40, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, 4, 0, 23, 0, 4, 0, 86, 0, 41, 0, 10, 0, 41, 0, 0, 0, + 41, 0, 1, 0, 4, 0, 87, 0, 4, 0, 88, 0, 4, 0, 89, 0, 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, + 0, 0, 92, 0, 42, 0, 15, 0, 27, 0, 31, 0, 0, 0, 93, 0, 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, + 40, 0, 97, 0, 4, 0, 98, 0, 4, 0, 99, 0, 12, 0,100, 0, 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, + 8, 0,105, 0, 43, 0, 3, 0, 4, 0,106, 0, 4, 0,107, 0, 9, 0, 2, 0, 44, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, + 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, + 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 2, 0,119, 0, 2, 0,120, 0, 7, 0,121, 0, + 36, 0, 80, 0, 32, 0,122, 0, 45, 0, 13, 0, 4, 0,123, 0, 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 2, 0,127, 0, + 2, 0,128, 0, 2, 0, 19, 0, 2, 0,129, 0, 2, 0,130, 0, 2, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 46, 0,134, 0, + 47, 0, 32, 0, 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,135, 0, 48, 0,136, 0, 49, 0,137, 0, 50, 0,138, 0, 2, 0,129, 0, + 2, 0, 19, 0, 2, 0,139, 0, 2, 0, 17, 0, 2, 0, 37, 0, 2, 0, 43, 0, 4, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, + 2, 0,143, 0, 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, 4, 0,147, 0, 4, 0,148, 0, 43, 0,149, 0, 30, 0,150, 0, + 0, 0,151, 0, 7, 0,152, 0, 4, 0,153, 0, 2, 0,154, 0, 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 7, 0,158, 0, + 7, 0,159, 0, 51, 0, 63, 0, 2, 0,160, 0, 2, 0,161, 0, 2, 0,162, 0, 2, 0,163, 0, 32, 0,164, 0, 52, 0,165, 0, + 0, 0,166, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,169, 0, 0, 0,170, 0, 7, 0,171, 0, 7, 0,172, 0, 7, 0,173, 0, + 2, 0,174, 0, 2, 0,175, 0, 2, 0,176, 0, 2, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, + 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0, 57, 0, 7, 0,187, 0, 7, 0,188, 0, + 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, + 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, + 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, + 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, + 7, 0,221, 0, 53, 0, 15, 0, 0, 0,222, 0, 9, 0,223, 0, 0, 0,224, 0, 0, 0,225, 0, 4, 0,226, 0, 4, 0,227, 0, + 9, 0,228, 0, 7, 0,229, 0, 7, 0,230, 0, 7, 0,231, 0, 4, 0,232, 0, 9, 0,233, 0, 9, 0,234, 0, 4, 0,235, 0, + 4, 0, 37, 0, 54, 0, 6, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,236, 0, 7, 0, 67, 0, 4, 0, 64, 0, + 55, 0, 5, 0, 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 64, 0, 2, 0,237, 0, 54, 0,231, 0, 56, 0, 17, 0, 32, 0,164, 0, + 47, 0,238, 0, 57, 0,239, 0, 7, 0,240, 0, 7, 0,241, 0, 2, 0, 17, 0, 2, 0,242, 0, 7, 0,110, 0, 7, 0,111, 0, + 7, 0,243, 0, 4, 0,244, 0, 2, 0,245, 0, 2, 0,246, 0, 4, 0,129, 0, 4, 0,140, 0, 2, 0,247, 0, 2, 0,248, 0, + 58, 0, 22, 0, 2, 0, 19, 0, 2, 0,249, 0, 7, 0,250, 0, 7, 0,251, 0, 2, 0,139, 0, 2, 0,252, 0, 4, 0,253, 0, + 4, 0,254, 0, 32, 0,164, 0, 4, 0,255, 0, 2, 0, 0, 1, 2, 0, 1, 1, 9, 0, 2, 1, 7, 0, 3, 1, 7, 0, 4, 1, + 2, 0, 5, 1, 2, 0, 6, 1, 2, 0, 7, 1, 2, 0, 8, 1, 7, 0, 9, 1, 7, 0, 10, 1, 55, 0, 11, 1, 59, 0, 11, 0, + 4, 0, 12, 1, 4, 0, 13, 1, 2, 0, 14, 1, 2, 0, 19, 0, 2, 0, 15, 1, 2, 0, 37, 0, 32, 0,164, 0, 7, 0, 16, 1, + 4, 0, 17, 1, 0, 0, 18, 1, 7, 0, 19, 1, 52, 0, 61, 0, 27, 0, 31, 0, 39, 0, 75, 0, 7, 0, 20, 1, 7, 0, 21, 1, + 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, + 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, + 7, 0, 38, 1, 7, 0, 39, 1, 2, 0, 40, 1, 2, 0, 41, 1, 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, + 2, 0, 46, 1, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,242, 0, 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, + 4, 0, 51, 1, 4, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, 2, 0, 15, 1, 2, 0,127, 0, 4, 0, 23, 0, 4, 0,124, 0, + 4, 0,125, 0, 4, 0,126, 0, 7, 0, 55, 1, 7, 0, 56, 1, 7, 0,189, 0, 45, 0, 57, 1, 60, 0, 58, 1, 36, 0, 80, 0, + 47, 0,238, 0, 53, 0, 59, 1, 55, 0, 11, 1, 56, 0, 60, 1, 30, 0,150, 0, 58, 0, 61, 1, 59, 0, 62, 1, 0, 0, 63, 1, + 0, 0,181, 0, 61, 0, 8, 0, 7, 0, 64, 1, 7, 0, 65, 1, 7, 0,172, 0, 4, 0, 19, 0, 7, 0, 66, 1, 7, 0, 67, 1, + 7, 0, 68, 1, 32, 0, 45, 0, 62, 0, 84, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 69, 1, + 2, 0,175, 0, 2, 0, 70, 1, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0, 71, 1, 7, 0, 72, 1, + 7, 0, 73, 1, 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1, 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, + 7, 0, 81, 1, 63, 0, 82, 1, 2, 0,249, 0, 2, 0, 70, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0, 83, 1, 7, 0, 84, 1, + 7, 0, 85, 1, 7, 0, 86, 1, 7, 0, 87, 1, 2, 0, 88, 1, 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 0, 0, 92, 1, + 0, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1, 2, 0, 97, 1, 2, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, + 7, 0,101, 1, 7, 0,102, 1, 2, 0,103, 1, 2, 0, 43, 0, 2, 0,104, 1, 2, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, + 7, 0,108, 1, 7, 0,109, 1, 7, 0,110, 1, 7, 0,111, 1, 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, + 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 2, 0,120, 1, 2, 0,121, 1, 4, 0,122, 1, 4, 0,123, 1, + 2, 0,124, 1, 2, 0,125, 1, 2, 0,126, 1, 2, 0,127, 1, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, + 2, 0,132, 1, 2, 0,133, 1, 36, 0, 80, 0, 51, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0, 64, 0, 2, 0, + 27, 0, 31, 0, 36, 0, 80, 0, 65, 0, 18, 0, 7, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 7, 0,141, 1, + 7, 0,142, 1, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1, 2, 0,147, 1, 2, 0,148, 1, 2, 0,149, 1, + 2, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 4, 0,154, 1, 66, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0, + 2, 0,155, 1, 2, 0, 19, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, + 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, + 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, + 7, 0,175, 1, 65, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, + 7, 0,183, 1, 2, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1, 0, 0,187, 1, 0, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, + 2, 0,191, 1, 2, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, 7, 0,195, 1, 7, 0,196, 1, 2, 0,197, 1, 2, 0,198, 1, + 4, 0, 69, 1, 4, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1, 2, 0,202, 1, 2, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, + 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 7, 0,209, 1, 7, 0,210, 1, 7, 0,211, 1, 7, 0,212, 1, 7, 0,213, 1, + 0, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, 4, 0,218, 1, 0, 0,219, 1, 0, 0,104, 1, 0, 0,220, 1, + 0, 0, 63, 1, 2, 0,221, 1, 2, 0,222, 1, 2, 0,135, 1, 2, 0,223, 1, 2, 0,224, 1, 2, 0,225, 1, 7, 0,226, 1, + 7, 0,227, 1, 7, 0,228, 1, 7, 0,229, 1, 7, 0,230, 1, 2, 0,160, 0, 2, 0,161, 0, 55, 0,231, 1, 55, 0,232, 1, + 0, 0,233, 1, 0, 0,234, 1, 0, 0,235, 1, 0, 0,236, 1, 2, 0,237, 1, 2, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, + 51, 0,134, 1, 60, 0, 58, 1, 36, 0, 80, 0, 67, 0,241, 1, 30, 0,150, 0, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, + 7, 0,245, 1, 7, 0,246, 1, 2, 0,247, 1, 2, 0, 70, 0, 7, 0,248, 1, 7, 0,249, 1, 7, 0,250, 1, 7, 0,251, 1, + 7, 0,252, 1, 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, 7, 0, 0, 2, 2, 0, 1, 2, 2, 0, 2, 2, 4, 0, 3, 2, + 4, 0,121, 1, 12, 0, 4, 2, 68, 0, 4, 0, 27, 0, 31, 0, 0, 0, 5, 2, 69, 0, 2, 0, 43, 0,149, 0, 70, 0, 26, 0, + 70, 0, 0, 0, 70, 0, 1, 0, 71, 0, 6, 2, 4, 0, 7, 2, 4, 0, 8, 2, 4, 0, 9, 2, 4, 0, 10, 2, 4, 0, 11, 2, + 4, 0, 12, 2, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 13, 2, 2, 0, 14, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, + 7, 0, 15, 2, 7, 0, 16, 2, 7, 0, 17, 2, 7, 0, 18, 2, 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 23, 0, + 7, 0, 22, 2, 7, 0, 23, 2, 72, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 24, 2, 12, 0, 25, 2, + 12, 0, 26, 2, 36, 0, 80, 0, 66, 0, 27, 2, 0, 0, 19, 0, 0, 0, 28, 2, 2, 0, 29, 2, 2, 0,174, 0, 2, 0, 37, 0, + 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0, 30, 2, 7, 0, 31, 2, 7, 0, 32, 2, 70, 0, 33, 2, 35, 0, 11, 0, + 7, 0, 34, 2, 7, 0, 35, 2, 7, 0, 36, 2, 7, 0,251, 0, 2, 0, 55, 0, 0, 0, 37, 2, 0, 0, 38, 2, 0, 0, 39, 2, + 0, 0, 40, 2, 0, 0, 41, 2, 0, 0, 42, 2, 34, 0, 7, 0, 7, 0, 43, 2, 7, 0, 35, 2, 7, 0, 36, 2, 2, 0, 39, 2, + 2, 0, 42, 2, 7, 0,251, 0, 7, 0, 37, 0, 73, 0, 21, 0, 73, 0, 0, 0, 73, 0, 1, 0, 2, 0, 17, 0, 2, 0, 44, 2, + 2, 0, 42, 2, 2, 0, 19, 0, 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 49, 2, 2, 0, 50, 2, + 2, 0, 51, 2, 2, 0, 52, 2, 7, 0, 53, 2, 7, 0, 54, 2, 34, 0, 49, 0, 35, 0, 50, 0, 2, 0, 55, 2, 2, 0, 56, 2, + 4, 0, 57, 2, 74, 0, 5, 0, 2, 0, 58, 2, 2, 0, 44, 2, 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 70, 0, 75, 0, 4, 0, + 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 0, 7, 0, 59, 2, 76, 0, 68, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, + 12, 0, 60, 2, 12, 0, 25, 2, 12, 0, 61, 2, 32, 0, 62, 2, 32, 0, 63, 2, 32, 0, 64, 2, 36, 0, 80, 0, 77, 0, 65, 2, + 38, 0, 66, 2, 66, 0, 27, 2, 12, 0, 67, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 2, 0,174, 0, 2, 0, 43, 0, + 2, 0, 68, 2, 2, 0, 69, 2, 2, 0, 70, 2, 7, 0, 71, 2, 7, 0, 70, 0, 2, 0, 72, 2, 2, 0, 29, 2, 2, 0, 19, 0, + 2, 0, 73, 2, 7, 0, 74, 2, 7, 0, 75, 2, 7, 0, 76, 2, 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 77, 2, 2, 0, 78, 2, + 4, 0, 79, 2, 34, 0, 80, 2, 2, 0, 23, 0, 2, 0, 95, 0, 2, 0, 67, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, + 7, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, + 0, 0, 92, 2, 78, 0, 93, 2, 79, 0, 94, 2, 0, 0, 95, 2, 68, 0, 96, 2, 68, 0, 97, 2, 68, 0, 98, 2, 68, 0, 99, 2, + 4, 0,100, 2, 7, 0,101, 2, 4, 0,102, 2, 4, 0,103, 2, 75, 0,104, 2, 4, 0,105, 2, 4, 0,106, 2, 74, 0,107, 2, + 74, 0,108, 2, 80, 0, 40, 0, 27, 0, 31, 0, 71, 0, 6, 2, 12, 0,109, 2, 36, 0, 80, 0, 38, 0, 66, 2, 66, 0, 27, 2, + 81, 0,110, 2, 82, 0,111, 2, 83, 0,112, 2, 84, 0,113, 2, 85, 0,114, 2, 86, 0,115, 2, 87, 0,116, 2, 88, 0,117, 2, + 80, 0,118, 2, 89, 0,119, 2, 90, 0,120, 2, 91, 0,121, 2, 91, 0,122, 2, 91, 0,123, 2, 4, 0, 54, 0, 4, 0,124, 2, + 4, 0,125, 2, 4, 0,126, 2, 4, 0,127, 2, 2, 0,174, 0, 2, 0,128, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, + 7, 0,129, 2, 4, 0, 68, 2, 2, 0,130, 2, 2, 0, 19, 0, 2, 0,131, 2, 2, 0,132, 2, 2, 0, 29, 2, 2, 0,133, 2, + 92, 0,134, 2, 93, 0,135, 2, 83, 0, 8, 0, 9, 0,136, 2, 7, 0,137, 2, 4, 0,138, 2, 0, 0, 19, 0, 0, 0,139, 2, + 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 81, 0, 7, 0, 4, 0,142, 2, 4, 0,143, 2, 4, 0,144, 2, 4, 0,145, 2, + 2, 0, 44, 2, 0, 0,146, 2, 0, 0, 19, 0, 85, 0, 5, 0, 4, 0,142, 2, 4, 0,143, 2, 0, 0,147, 2, 0, 0,148, 2, + 2, 0, 19, 0, 94, 0, 2, 0, 4, 0,149, 2, 7, 0, 36, 2, 86, 0, 3, 0, 94, 0,150, 2, 4, 0,151, 2, 4, 0, 19, 0, + 84, 0, 6, 0, 7, 0,152, 2, 2, 0,153, 2, 2, 0, 44, 2, 0, 0, 19, 0, 0, 0,148, 2, 0, 0, 70, 2, 87, 0, 4, 0, + 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 95, 0, 6, 0, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, + 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 96, 0, 1, 0, 7, 0,154, 2, 97, 0, 5, 0, 0, 0,236, 0, 0, 0,182, 0, + 0, 0,183, 0, 0, 0,184, 0, 4, 0, 37, 0, 88, 0, 1, 0, 7, 0,155, 2, 89, 0, 2, 0, 4, 0,156, 2, 4, 0, 17, 0, + 82, 0, 7, 0, 7, 0,137, 2, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, + 98, 0, 1, 0, 7, 0,157, 2, 99, 0, 1, 0, 4, 0,158, 2,100, 0, 1, 0, 0, 0,159, 2,101, 0, 1, 0, 7, 0,137, 2, +102, 0, 3, 0, 4, 0,160, 2, 0, 0, 92, 0, 7, 0,161, 2,104, 0, 4, 0, 7, 0,236, 0, 7, 0,182, 0, 7, 0,183, 0, + 7, 0,184, 0,105, 0, 1, 0,104, 0,138, 2,106, 0, 5, 0, 4, 0,162, 2, 4, 0,163, 2, 0, 0, 19, 0, 0, 0, 44, 2, + 0, 0, 70, 2,107, 0, 2, 0, 4, 0,164, 2, 4, 0,163, 2,108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,165, 2, +105, 0,166, 2,107, 0,167, 2, 4, 0, 54, 0, 4, 0,125, 2, 4, 0,124, 2, 4, 0, 37, 0, 84, 0,168, 2, 92, 0, 14, 0, + 12, 0,169, 2, 84, 0,168, 2, 0, 0,170, 2, 0, 0,171, 2, 0, 0,172, 2, 0, 0,173, 2, 0, 0,174, 2, 0, 0,175, 2, + 0, 0,176, 2, 0, 0, 19, 0, 91, 0,121, 2, 91, 0,123, 2, 2, 0,177, 2, 0, 0,178, 2, 93, 0, 8, 0, 4, 0,179, 2, + 4, 0,180, 2, 81, 0,181, 2, 85, 0,182, 2, 4, 0,125, 2, 4, 0,124, 2, 4, 0, 54, 0, 4, 0, 37, 0,109, 0, 7, 0, +109, 0, 0, 0,109, 0, 1, 0, 4, 0, 17, 0, 4, 0, 69, 1, 0, 0, 20, 0, 46, 0,134, 0, 0, 0,183, 2,110, 0, 7, 0, +109, 0,184, 2, 2, 0,185, 2, 2, 0,169, 2, 2, 0,186, 2, 2, 0, 90, 0, 9, 0,187, 2, 9, 0,188, 2,111, 0, 3, 0, +109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0,112, 0, 5, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0, 2, 0,189, 2, + 0, 0,190, 2,113, 0, 5, 0,109, 0,184, 2, 7, 0, 88, 0, 7, 0,191, 2, 4, 0,192, 2, 4, 0,193, 2,114, 0, 5, 0, +109, 0,184, 2, 32, 0,194, 2, 0, 0, 72, 0, 4, 0, 69, 1, 4, 0, 19, 0,115, 0, 13, 0,109, 0,184, 2, 32, 0,195, 2, + 32, 0,196, 2, 32, 0,197, 2, 32, 0,198, 2, 7, 0,199, 2, 7, 0,200, 2, 7, 0,191, 2, 7, 0,201, 2, 4, 0,202, 2, + 4, 0,203, 2, 4, 0, 90, 0, 4, 0,204, 2,116, 0, 5, 0,109, 0,184, 2, 2, 0,205, 2, 2, 0, 19, 0, 7, 0,206, 2, + 32, 0,207, 2,117, 0, 3, 0,109, 0,184, 2, 7, 0,208, 2, 4, 0, 90, 0,118, 0, 10, 0,109, 0,184, 2, 7, 0,209, 2, + 4, 0,210, 2, 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,211, 2, 2, 0,212, 2, 2, 0,213, 2, 7, 0,214, 2, 0, 0,215, 2, +119, 0, 3, 0,109, 0,184, 2, 7, 0, 37, 0, 4, 0, 17, 0,120, 0, 6, 0,109, 0,184, 2,121, 0,216, 2,122, 0,217, 2, +123, 0,218, 2, 7, 0,219, 2, 4, 0, 17, 0,124, 0, 11, 0,109, 0,184, 2, 52, 0,220, 2, 7, 0,221, 2, 4, 0,222, 2, + 0, 0,215, 2, 7, 0,223, 2, 4, 0,224, 2, 32, 0,225, 2, 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,125, 0, 10, 0, +109, 0,184, 2, 32, 0,228, 2, 47, 0,229, 2, 4, 0, 90, 0, 4, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 0, 0,226, 2, + 4, 0,227, 2, 4, 0, 37, 0,126, 0, 3, 0,109, 0,184, 2, 7, 0,233, 2, 4, 0,234, 2,127, 0, 5, 0,109, 0,184, 2, + 7, 0,235, 2, 0, 0,215, 2, 2, 0, 19, 0, 2, 0,236, 2,128, 0, 8, 0,109, 0,184, 2, 32, 0,164, 0, 7, 0,235, 2, + 7, 0,251, 0, 7, 0,106, 0, 0, 0,215, 2, 2, 0, 19, 0, 2, 0, 17, 0,129, 0, 21, 0,109, 0,184, 2, 32, 0,237, 2, + 0, 0,215, 2, 52, 0,220, 2, 32, 0,225, 2, 2, 0, 19, 0, 2, 0, 37, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, + 7, 0, 74, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,243, 2, 7, 0,244, 2, 4, 0,224, 2, 4, 0,227, 2, 0, 0,226, 2, + 7, 0,245, 2, 7, 0,246, 2, 7, 0, 43, 0,130, 0, 7, 0,109, 0,184, 2, 2, 0,247, 2, 2, 0,248, 2, 4, 0, 70, 0, + 32, 0,164, 0, 7, 0,249, 2, 0, 0,215, 2,131, 0, 10, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0,250, 2, 7, 0,251, 2, + 7, 0,252, 2, 7, 0,244, 2, 4, 0,253, 2, 4, 0,254, 2, 7, 0,255, 2, 0, 0, 20, 0,132, 0, 1, 0,109, 0,184, 2, +133, 0, 7, 0,109, 0,184, 2, 46, 0,134, 0,134, 0, 0, 3,135, 0, 1, 3,136, 0, 2, 3,137, 0, 3, 3, 12, 0, 4, 3, +138, 0, 13, 0,109, 0,184, 2, 84, 0, 5, 3, 84, 0, 6, 3, 84, 0, 7, 3, 84, 0, 8, 3, 84, 0, 9, 3, 84, 0, 10, 3, + 81, 0, 11, 3, 4, 0, 12, 3, 4, 0, 13, 3, 7, 0,219, 2, 7, 0, 37, 0,139, 0, 14, 3,140, 0, 7, 0,109, 0,184, 2, + 84, 0, 5, 3, 84, 0, 15, 3,141, 0, 16, 3,142, 0, 14, 3, 4, 0, 17, 3, 4, 0, 12, 3,143, 0, 4, 0,109, 0,184, 2, + 32, 0,164, 0, 4, 0, 18, 3, 4, 0, 37, 0,144, 0, 2, 0, 4, 0, 19, 3, 7, 0, 36, 2,145, 0, 2, 0, 4, 0,125, 0, + 4, 0, 20, 3,146, 0, 21, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0,215, 2, 2, 0, 21, 3, 2, 0, 19, 0, 2, 0, 69, 1, + 2, 0, 37, 0, 7, 0, 22, 3, 7, 0, 23, 3, 4, 0, 54, 0, 4, 0, 24, 3,145, 0, 25, 3,144, 0, 26, 3, 4, 0, 27, 3, + 4, 0, 28, 3, 4, 0, 29, 3, 4, 0, 20, 3, 7, 0, 30, 3, 7, 0, 31, 3, 7, 0, 32, 3, 9, 0, 33, 3,147, 0, 8, 0, +109, 0,184, 2,148, 0, 34, 3,141, 0, 16, 3, 4, 0, 35, 3, 4, 0, 36, 3, 4, 0, 37, 3, 2, 0, 19, 0, 2, 0, 57, 0, +149, 0, 8, 0,109, 0,184, 2, 32, 0, 45, 0, 2, 0,255, 0, 2, 0, 19, 0, 2, 0,205, 2, 2, 0, 57, 0, 7, 0, 38, 3, + 7, 0, 39, 3,150, 0, 5, 0,109, 0,184, 2, 4, 0, 40, 3, 2, 0, 19, 0, 2, 0, 41, 3, 7, 0, 42, 3,151, 0, 7, 0, +109, 0,184, 2, 84, 0, 43, 3, 4, 0, 44, 3, 0, 0, 45, 3, 0, 0, 46, 3, 0, 0, 47, 3, 0, 0, 48, 3,152, 0, 3, 0, +109, 0,184, 2,153, 0, 49, 3,137, 0, 3, 3,154, 0, 10, 0,109, 0,184, 2, 32, 0, 50, 3, 32, 0, 51, 3, 0, 0, 52, 3, + 7, 0, 53, 3, 2, 0, 54, 3, 2, 0, 55, 3, 0, 0, 56, 3, 0, 0, 57, 3, 0, 0,190, 2,155, 0, 9, 0,109, 0,184, 2, + 32, 0, 58, 3, 0, 0, 52, 3, 7, 0, 59, 3, 7, 0, 60, 3, 0, 0, 69, 1, 0, 0,205, 2, 0, 0, 61, 3, 0, 0, 37, 0, +156, 0, 1, 0,109, 0,184, 2,157, 0, 27, 0, 27, 0, 31, 0, 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 62, 3, 2, 0, 19, 0, + 2, 0, 63, 3, 2, 0, 64, 3, 2, 0, 65, 3, 2, 0, 70, 0, 0, 0, 66, 3, 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 17, 0, + 4, 0, 37, 0, 7, 0, 69, 3, 7, 0, 70, 3, 7, 0, 71, 3, 7, 0, 72, 3, 7, 0, 73, 3, 7, 0, 74, 3, 34, 0, 75, 3, + 36, 0, 80, 0, 38, 0, 66, 2, 86, 0,115, 2, 7, 0, 76, 3, 7, 0, 77, 3,157, 0, 78, 3,158, 0, 3, 0,158, 0, 0, 0, +158, 0, 1, 0, 0, 0, 20, 0, 71, 0, 3, 0, 7, 0, 79, 3, 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,124, 0, 27, 0, 31, 0, + 39, 0, 75, 0,159, 0, 80, 3, 2, 0, 17, 0, 2, 0, 81, 3, 4, 0, 82, 3, 4, 0, 83, 3, 4, 0, 84, 3, 0, 0, 85, 3, + 32, 0, 38, 0, 32, 0, 86, 3, 32, 0, 87, 3, 32, 0, 88, 3, 32, 0, 89, 3, 36, 0, 80, 0, 77, 0, 65, 2, 71, 0, 6, 2, +160, 0, 90, 3,160, 0, 91, 3,161, 0, 92, 3, 9, 0, 2, 0,162, 0, 93, 3, 12, 0, 94, 3, 12, 0,109, 2, 12, 0, 25, 2, + 12, 0, 95, 3, 12, 0, 96, 3, 4, 0, 69, 1, 4, 0, 97, 3, 66, 0, 27, 2, 0, 0, 98, 3, 4, 0, 29, 2, 4, 0, 99, 3, + 7, 0, 64, 1, 7, 0,100, 3, 7, 0,101, 3, 7, 0,172, 0, 7, 0,102, 3, 7, 0, 65, 1, 7, 0,103, 3, 7, 0, 15, 2, + 7, 0,104, 3, 7, 0,105, 3, 7, 0,106, 3, 7, 0,107, 3, 7, 0,108, 3, 7, 0,109, 3, 7, 0,251, 2, 7, 0,110, 3, + 7, 0,240, 0, 4, 0,111, 3, 2, 0, 19, 0, 2, 0,112, 3, 2, 0,113, 3, 2, 0,114, 3, 2, 0,115, 3, 2, 0,116, 3, + 2, 0,117, 3, 2, 0,118, 3, 2, 0,119, 3, 2, 0,120, 3, 2, 0,121, 3, 2, 0,122, 3, 4, 0,123, 3, 4, 0,124, 3, + 4, 0,125, 3, 4, 0,126, 3, 7, 0,127, 3, 7, 0,101, 2, 7, 0,128, 3, 7, 0,129, 3, 7, 0,130, 3, 7, 0,131, 3, + 7, 0,132, 3, 7, 0,215, 0, 7, 0,133, 3, 7, 0,134, 3, 7, 0,135, 3, 7, 0,136, 3, 2, 0,137, 3, 0, 0,138, 3, + 0, 0,139, 3, 0, 0,140, 3, 0, 0,141, 3, 7, 0,142, 3, 7, 0,143, 3, 12, 0,144, 3, 12, 0,145, 3, 12, 0,146, 3, + 12, 0,147, 3, 7, 0,148, 3, 2, 0,156, 2, 2, 0,149, 3, 7, 0,138, 2, 4, 0,150, 3, 4, 0,151, 3,163, 0,152, 3, + 2, 0,153, 3, 2, 0,247, 0, 7, 0,154, 3, 12, 0,155, 3, 12, 0,156, 3, 12, 0,157, 3, 12, 0,158, 3,164, 0, 61, 1, +165, 0,159, 3, 67, 0,160, 3, 2, 0,161, 3, 2, 0,162, 3, 2, 0,163, 3, 2, 0,164, 3, 7, 0,130, 2, 2, 0,165, 3, + 2, 0,166, 3,153, 0,167, 3,141, 0,168, 3,141, 0,169, 3, 4, 0,170, 3, 4, 0,171, 3, 4, 0,172, 3, 4, 0, 70, 0, + 12, 0,173, 3, 12, 0,174, 3, 12, 0,175, 3,166, 0, 14, 0,166, 0, 0, 0,166, 0, 1, 0, 32, 0, 38, 0, 7, 0,251, 2, + 7, 0, 66, 1, 7, 0,252, 2, 7, 0,244, 2, 0, 0, 20, 0, 4, 0,253, 2, 4, 0,254, 2, 4, 0,176, 3, 2, 0, 17, 0, + 2, 0,177, 3, 7, 0,255, 2,167, 0, 12, 0,167, 0, 0, 0,167, 0, 1, 0, 32, 0, 45, 0, 4, 0,178, 3, 4, 0,156, 2, + 4, 0,179, 3, 4, 0, 17, 0, 4, 0,180, 3, 7, 0, 66, 1, 7, 0,181, 3, 7, 0,182, 3, 7, 0,154, 2,164, 0, 40, 0, + 4, 0, 19, 0, 2, 0,183, 3, 2, 0,184, 3, 2, 0,244, 2, 2, 0,185, 3, 2, 0,186, 3, 2, 0,187, 3, 2, 0,188, 3, + 2, 0,189, 3, 7, 0,190, 3, 7, 0,191, 3, 7, 0,192, 3, 7, 0,193, 3, 7, 0,194, 3, 7, 0,195, 3, 7, 0,196, 3, + 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3, 7, 0,204, 3, + 7, 0,205, 3, 7, 0, 37, 0, 7, 0,206, 3, 7, 0,207, 3, 7, 0,208, 3, 7, 0,209, 3, 7, 0,210, 3, 7, 0,211, 3, + 7, 0,212, 3, 7, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, 52, 0,165, 0,168, 0,216, 3, 7, 0,217, 3, 4, 0,193, 2, +169, 0, 5, 0, 67, 0,241, 1, 7, 0,218, 3, 7, 0,219, 3, 2, 0, 19, 0, 2, 0,220, 3,170, 0, 9, 0,170, 0, 0, 0, +170, 0, 1, 0, 4, 0,221, 3, 4, 0,222, 3, 4, 0,223, 3, 4, 0, 19, 0, 4, 0,224, 3, 9, 0,225, 3, 9, 0,226, 3, +137, 0, 19, 0,137, 0, 0, 0,137, 0, 1, 0, 4, 0, 19, 0, 4, 0,227, 3, 4, 0,228, 3, 4, 0,229, 3, 4, 0,230, 3, + 4, 0,231, 3, 4, 0,232, 3, 4, 0,222, 3, 4, 0,156, 2, 4, 0, 57, 0, 0, 0,233, 3, 0, 0,234, 3, 0, 0,235, 3, + 0, 0,236, 3, 12, 0,237, 3,171, 0,238, 3, 9, 0,239, 3,172, 0, 1, 0, 7, 0, 43, 2,163, 0, 30, 0, 4, 0, 19, 0, + 7, 0,240, 3, 7, 0,241, 3, 7, 0,242, 3, 4, 0,243, 3, 4, 0,244, 3, 4, 0,245, 3, 4, 0,246, 3, 7, 0,247, 3, + 7, 0,248, 3, 7, 0,249, 3, 7, 0,250, 3, 7, 0,251, 3, 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, 7, 0,255, 3, + 7, 0, 0, 4, 7, 0, 1, 4, 7, 0, 2, 4, 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, + 7, 0, 8, 4, 4, 0, 9, 4, 4, 0, 10, 4, 7, 0, 11, 4, 7, 0,133, 3,165, 0, 54, 0, 4, 0,222, 3, 4, 0, 12, 4, +173, 0, 13, 4,174, 0, 14, 4, 0, 0, 37, 0, 0, 0, 15, 4, 2, 0, 16, 4, 7, 0, 17, 4, 0, 0, 18, 4, 7, 0, 19, 4, + 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, + 2, 0, 28, 4, 0, 0, 29, 4, 2, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 0, 0, 33, 4, 4, 0,126, 0, 4, 0, 34, 4, + 4, 0, 35, 4, 2, 0, 36, 4, 2, 0, 37, 4,172, 0, 38, 4, 4, 0, 39, 4, 4, 0, 82, 0, 7, 0, 40, 4, 7, 0, 41, 4, + 7, 0, 42, 4, 7, 0, 43, 4, 2, 0, 44, 4, 2, 0, 45, 4, 2, 0, 46, 4, 2, 0, 47, 4, 2, 0, 48, 4, 2, 0, 49, 4, + 2, 0, 50, 4, 2, 0, 51, 4,175, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4,137, 0, 55, 4, 12, 0, 4, 3,169, 0, 56, 4, + 7, 0, 57, 4, 7, 0, 58, 4, 7, 0, 59, 4, 0, 0, 60, 4,153, 0, 49, 0,152, 0, 61, 4, 2, 0, 17, 0, 2, 0, 62, 4, + 2, 0, 63, 4, 2, 0, 64, 4, 7, 0, 65, 4, 2, 0, 66, 4, 2, 0, 67, 4, 7, 0, 68, 4, 2, 0, 69, 4, 2, 0, 70, 4, + 7, 0, 71, 4, 7, 0, 72, 4, 7, 0, 73, 4, 7, 0, 74, 4, 7, 0, 75, 4, 7, 0, 76, 4, 4, 0, 77, 4, 7, 0, 78, 4, + 7, 0, 79, 4, 7, 0, 80, 4, 80, 0, 81, 4, 80, 0, 82, 4, 80, 0, 83, 4, 0, 0, 84, 4, 7, 0, 85, 4, 7, 0, 86, 4, + 36, 0, 80, 0, 2, 0, 87, 4, 0, 0, 88, 4, 0, 0, 89, 4, 7, 0, 90, 4, 4, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, + 4, 0, 94, 4, 4, 0, 19, 0, 7, 0, 95, 4, 7, 0, 96, 4, 7, 0, 97, 4, 84, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, + 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 4, 0,106, 4,176, 0, 76, 0, 27, 0, 31, 0, + 39, 0, 75, 0, 2, 0,175, 0, 2, 0, 70, 1, 2, 0,104, 1, 2, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, + 7, 0,111, 4, 7, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, 7, 0,115, 4, 7, 0,162, 1, 7, 0,164, 1, 7, 0,163, 1, + 7, 0,116, 4, 4, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, + 7, 0,124, 4, 2, 0,125, 4, 2, 0, 69, 1, 2, 0,126, 4, 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, + 2, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 7, 0,134, 4, 7, 0,135, 4, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, + 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 7, 0,143, 4, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, + 2, 0,147, 4, 7, 0,148, 4, 7, 0,149, 4, 7, 0,150, 4, 7, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, + 2, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 2, 0,161, 4, 2, 0,162, 4, + 2, 0,163, 4, 2, 0,164, 4, 2, 0,165, 4, 2, 0, 19, 0, 7, 0,166, 4, 7, 0,167, 4, 36, 0, 80, 0, 51, 0,134, 1, + 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0,177, 0, 8, 0,177, 0, 0, 0,177, 0, 1, 0, 4, 0,111, 3, 4, 0,168, 4, + 4, 0, 19, 0, 2, 0,169, 4, 2, 0,170, 4, 32, 0,164, 0,178, 0, 13, 0, 9, 0,171, 4, 9, 0,172, 4, 4, 0,173, 4, + 4, 0,174, 4, 4, 0,175, 4, 4, 0,176, 4, 4, 0,177, 4, 4, 0,178, 4, 4, 0,179, 4, 4, 0,180, 4, 4, 0,181, 4, + 4, 0, 37, 0, 0, 0,182, 4,179, 0, 5, 0, 9, 0,183, 4, 9, 0,184, 4, 4, 0,185, 4, 4, 0, 70, 0, 0, 0,186, 4, +180, 0, 10, 0, 4, 0,187, 4, 4, 0,188, 4, 4, 0,189, 4, 4, 0,190, 4, 4, 0,191, 4, 4, 0,192, 4, 4, 0,193, 4, + 4, 0,194, 4, 4, 0,195, 4, 4, 0,196, 4,181, 0, 15, 0, 4, 0, 17, 0, 4, 0,189, 4, 4, 0,197, 4, 4, 0,198, 4, + 4, 0,199, 4, 4, 0,200, 4, 7, 0,201, 4, 4, 0,202, 4, 4, 0, 90, 0, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, + 4, 0,206, 4, 4, 0,207, 4, 26, 0, 30, 0,182, 0, 7, 0, 4, 0,208, 4, 7, 0,209, 4, 7, 0,210, 4, 7, 0,211, 4, + 4, 0,212, 4, 2, 0, 19, 0, 2, 0, 37, 0,183, 0, 11, 0,183, 0, 0, 0,183, 0, 1, 0, 0, 0, 20, 0, 66, 0,213, 4, + 67, 0,214, 4, 4, 0,111, 3, 4, 0,215, 4, 4, 0,216, 4, 4, 0, 37, 0, 4, 0,217, 4, 4, 0,218, 4,184, 0,135, 0, +178, 0,219, 4,179, 0,220, 4,180, 0,221, 4,181, 0,222, 4, 4, 0, 17, 3, 4, 0,126, 0, 4, 0, 34, 4, 4, 0,223, 4, + 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 2, 0, 19, 0, 2, 0,227, 4, 7, 0,101, 2, 7, 0,228, 4, 7, 0,229, 4, + 7, 0,230, 4, 7, 0,231, 4, 7, 0,232, 4, 2, 0,233, 4, 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,246, 0, + 2, 0,237, 4, 2, 0,238, 4, 2, 0,239, 4, 2, 0,240, 4, 2, 0,241, 4, 2, 0, 91, 1, 2, 0,106, 0, 2, 0,242, 4, + 2, 0,243, 4, 2, 0,244, 4, 2, 0,245, 4, 2, 0,246, 4, 2, 0,247, 4, 2, 0,248, 4, 2, 0,249, 4, 2, 0,250, 4, + 2, 0, 92, 1, 2, 0,251, 4, 2, 0,252, 4, 2, 0,253, 4, 2, 0,254, 4, 4, 0,255, 4, 4, 0, 69, 1, 4, 0, 0, 5, + 2, 0, 1, 5, 2, 0, 2, 5, 2, 0, 3, 5, 2, 0,121, 1, 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, + 24, 0, 8, 5, 24, 0, 9, 5, 23, 0, 10, 5, 12, 0, 11, 5, 2, 0, 12, 5, 2, 0, 37, 0, 7, 0, 13, 5, 7, 0, 14, 5, + 7, 0, 15, 5, 7, 0, 16, 5, 4, 0, 17, 5, 7, 0, 18, 5, 7, 0, 19, 5, 7, 0, 20, 5, 7, 0, 21, 5, 2, 0, 22, 5, + 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, 2, 0, 27, 5, 7, 0, 28, 5, 7, 0, 29, 5, 7, 0, 30, 5, + 2, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 2, 0, 34, 5, 2, 0, 35, 5, 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, + 2, 0, 39, 5, 2, 0, 40, 5, 4, 0, 41, 5, 4, 0, 42, 5, 4, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 7, 0, 46, 5, + 4, 0, 47, 5, 4, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5, 7, 0, 51, 5, 7, 0, 52, 5, 7, 0, 53, 5, 7, 0, 54, 5, + 7, 0, 55, 5, 7, 0, 56, 5, 7, 0, 57, 5, 7, 0, 58, 5, 7, 0, 59, 5, 0, 0, 60, 5, 0, 0, 61, 5, 4, 0, 62, 5, + 2, 0, 63, 5, 2, 0,238, 1, 0, 0, 64, 5, 7, 0, 65, 5, 7, 0, 66, 5, 4, 0, 67, 5, 4, 0, 68, 5, 7, 0, 69, 5, + 7, 0, 70, 5, 2, 0, 71, 5, 2, 0, 72, 5, 7, 0, 73, 5, 2, 0, 74, 5, 2, 0, 75, 5, 4, 0, 76, 5, 2, 0, 77, 5, + 2, 0, 78, 5, 2, 0, 79, 5, 2, 0, 80, 5, 7, 0, 81, 5, 7, 0, 70, 0, 42, 0, 82, 5, 0, 0, 83, 5,185, 0, 9, 0, +185, 0, 0, 0,185, 0, 1, 0, 0, 0, 20, 0, 2, 0, 84, 5, 2, 0, 85, 5, 2, 0, 86, 5, 2, 0, 43, 0, 7, 0, 87, 5, + 7, 0, 70, 0,186, 0, 7, 0, 2, 0,210, 2, 2, 0, 69, 1, 2, 0,109, 0, 2, 0, 88, 5, 7, 0, 89, 5, 7, 0, 70, 0, + 42, 0, 90, 5,187, 0, 5, 0, 7, 0, 91, 5, 0, 0, 17, 0, 0, 0, 43, 0, 0, 0, 70, 0, 0, 0,238, 1,188, 0, 26, 0, + 7, 0,123, 4, 7, 0,124, 4, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0, 92, 5, 2, 0,136, 1, 2, 0,126, 4, 2, 0,127, 4, + 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, 2, 0,131, 4,187, 0, 93, 5, 2, 0,233, 4, 2, 0,234, 4, 2, 0,235, 4, + 2, 0,236, 4, 2, 0,246, 0, 2, 0,237, 4, 2, 0, 94, 5, 2, 0,238, 4,186, 0, 95, 5, 2, 0, 96, 5, 2, 0,240, 4, + 2, 0,243, 4, 2, 0,244, 4,189, 0, 5, 0,189, 0, 0, 0,189, 0, 1, 0, 4, 0,221, 3, 0, 0,233, 3, 4, 0, 19, 0, +190, 0, 6, 0,191, 0, 97, 5, 4, 0, 98, 5, 4, 0, 99, 5, 9, 0,100, 5, 0, 0,101, 5, 4, 0, 37, 0,192, 0, 6, 0, +190, 0,102, 5, 2, 0, 19, 0, 2, 0,103, 5, 2, 0,104, 5, 2, 0,105, 5, 9, 0,106, 5,193, 0, 4, 0, 2, 0,106, 0, + 2, 0,221, 2, 2, 0,227, 3, 2, 0,107, 5,194, 0, 14, 0, 2, 0, 19, 0, 2, 0,108, 5, 2, 0,109, 5, 2, 0,110, 5, +193, 0,111, 5, 9, 0,106, 5, 7, 0,112, 5, 7, 0, 57, 0, 4, 0,113, 5, 4, 0,114, 5, 4, 0,115, 5, 4, 0,116, 5, + 46, 0,134, 0, 32, 0,164, 0,195, 0, 4, 0,195, 0, 0, 0,195, 0, 1, 0, 0, 0,117, 5, 7, 0,118, 5,196, 0, 6, 0, +190, 0,102, 5, 7, 0,119, 5, 4, 0, 90, 0, 0, 0,120, 5, 0, 0,121, 5, 0, 0,190, 2,197, 0, 7, 0,190, 0,102, 5, + 2, 0, 69, 1, 2, 0, 19, 0, 4, 0, 36, 0, 4, 0,122, 5, 86, 0,123, 5, 9, 0,106, 5,198, 0, 74, 0,197, 0,124, 5, +197, 0,125, 5,196, 0, 80, 3, 7, 0,126, 5, 2, 0,127, 5, 2, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, 2, 0,227, 3, + 2, 0,131, 5, 7, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5, 2, 0,135, 5, 2, 0,113, 5, 2, 0,136, 5, 2, 0,137, 5, + 2, 0,138, 5, 2, 0,139, 5, 7, 0,140, 5, 7, 0,141, 5, 7, 0,142, 5, 2, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5, + 2, 0,146, 5, 2, 0,147, 5, 2, 0,148, 5, 2, 0,149, 5,192, 0,150, 5,194, 0,151, 5, 7, 0,152, 5, 7, 0,153, 5, + 7, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 0, 0,157, 5, 0, 0,158, 5, 0, 0,159, 5, 0, 0,160, 5, 0, 0,161, 5, + 0, 0,162, 5, 2, 0,163, 5, 7, 0,164, 5, 7, 0,165, 5, 7, 0,166, 5, 7, 0,167, 5, 7, 0,168, 5, 7, 0,169, 5, + 7, 0,170, 5, 7, 0,171, 5, 7, 0,172, 5, 7, 0,173, 5, 2, 0,174, 5, 0, 0,175, 5, 0, 0,176, 5, 0, 0,177, 5, + 0, 0,178, 5, 32, 0,179, 5, 0, 0,180, 5, 0, 0,181, 5, 0, 0,182, 5, 0, 0,183, 5, 0, 0,184, 5, 0, 0,185, 5, + 0, 0,186, 5, 0, 0,187, 5, 2, 0,188, 5, 2, 0,189, 5, 2, 0,190, 5, 2, 0,191, 5, 2, 0,192, 5, 4, 0,193, 5, + 4, 0,194, 5,199, 0, 8, 0, 4, 0,195, 5, 4, 0,196, 5, 4, 0,197, 5, 4, 0,198, 5, 4, 0,199, 5, 4, 0,200, 5, + 4, 0, 54, 0, 4, 0,125, 2,200, 0, 3, 0, 7, 0,201, 5, 2, 0,202, 5, 2, 0, 19, 0,201, 0, 2, 0, 7, 0,203, 5, + 4, 0, 19, 0, 46, 0, 38, 0, 27, 0, 31, 0, 39, 0, 75, 0, 32, 0,204, 5,176, 0,205, 5, 46, 0,206, 5, 47, 0,238, 0, + 12, 0,207, 5,177, 0,208, 5, 32, 0,209, 5, 7, 0,210, 5, 7, 0,211, 5, 7, 0,212, 5, 7, 0,213, 5, 4, 0,111, 3, + 2, 0, 19, 0, 2, 0, 63, 1, 60, 0, 58, 1,202, 0,214, 5,198, 0,215, 5,203, 0,216, 5,184, 0,182, 0,182, 0,217, 5, + 12, 0,100, 0, 12, 0,218, 5, 12, 0,219, 5,204, 0,220, 5, 2, 0,221, 5, 2, 0,222, 5, 2, 0,247, 0, 2, 0,223, 5, + 4, 0,224, 5, 4, 0,225, 5, 12, 0,226, 5,187, 0, 93, 5,188, 0,227, 5,200, 0,228, 5,162, 0, 93, 3,201, 0,229, 5, +205, 0, 6, 0, 47, 0,238, 0, 45, 0, 57, 1, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,106, 0, 7, 0,230, 5,206, 0, 36, 0, + 7, 0,231, 5, 7, 0,232, 5, 7, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, + 7, 0,239, 5, 7, 0, 76, 1, 7, 0,240, 5, 7, 0,241, 5, 7, 0,242, 5, 7, 0,243, 5, 7, 0,171, 0, 2, 0,244, 5, + 2, 0,245, 5, 2, 0, 70, 2, 2, 0,246, 5, 2, 0,247, 5, 2, 0,248, 5, 2, 0,249, 5, 7, 0,250, 5, 7, 0,251, 5, + 71, 0,252, 5,162, 0, 93, 3,206, 0,253, 5,207, 0,254, 5,208, 0,255, 5,209, 0, 0, 6,210, 0, 1, 6,211, 0, 2, 6, + 7, 0, 3, 6, 2, 0, 4, 6, 2, 0, 5, 6, 4, 0,238, 1,212, 0, 54, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, + 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 7, 0,239, 5, 7, 0, 76, 1, 7, 0, 43, 0, 4, 0, 10, 6, 2, 0,248, 5, + 2, 0,249, 5, 32, 0,204, 5, 32, 0, 11, 6,205, 0, 12, 6,212, 0,253, 5, 0, 0, 13, 6, 4, 0,111, 3, 4, 0, 14, 6, + 2, 0, 15, 6, 2, 0, 70, 0, 2, 0, 16, 6, 2, 0, 17, 6, 2, 0,238, 1, 2, 0, 19, 0, 2, 0, 28, 2, 2, 0, 18, 6, + 7, 0,112, 0, 7, 0, 19, 6, 7, 0, 20, 6, 7, 0, 21, 6, 7, 0, 22, 6, 7, 0, 23, 6, 7, 0,171, 0, 7, 0,210, 5, + 2, 0, 24, 6, 2, 0,121, 1, 2, 0, 25, 6, 2, 0, 26, 6, 2, 0, 27, 6, 2, 0, 28, 6, 2, 0, 29, 6, 2, 0, 30, 6, + 2, 0, 31, 6, 2, 0, 32, 6, 4, 0, 33, 6, 12, 0, 34, 6, 2, 0, 35, 6, 2, 0,139, 2, 2, 0, 36, 6, 0, 0, 37, 6, + 0, 0, 38, 6, 9, 0, 39, 6,162, 0, 93, 3,214, 0, 25, 0, 24, 0, 36, 0, 24, 0, 64, 0, 23, 0, 40, 6, 23, 0, 41, 6, + 23, 0, 42, 6, 7, 0, 43, 6, 7, 0, 44, 6, 7, 0, 45, 6, 7, 0, 46, 6, 2, 0, 47, 6, 2, 0, 48, 6, 2, 0, 49, 6, + 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 19, 0, 2, 0, 52, 6, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, + 2, 0, 17, 6, 7, 0, 57, 6, 7, 0, 58, 6, 4, 0, 59, 6, 4, 0, 60, 6,213, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,215, 0, 8, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, + 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,216, 0, 61, 6, 46, 0,134, 0,217, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6,218, 0, 63, 6, 12, 0, 64, 6, 2, 0, 69, 1, + 2, 0, 65, 6, 4, 0, 19, 0, 7, 0, 66, 6, 4, 0, 17, 6,219, 0, 20, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, + 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,207, 0,254, 5,214, 0, 62, 6, 2, 0, 67, 6, 2, 0, 68, 6, 2, 0, 69, 6, + 2, 0, 70, 6, 2, 0, 52, 6, 2, 0, 71, 6, 0, 0, 19, 0, 0, 0,136, 1, 9, 0, 65, 2, 4, 0, 72, 6, 4, 0, 73, 6, + 27, 0, 74, 6,220, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, +214, 0, 62, 6, 7, 0, 89, 2, 7, 0, 90, 2, 2, 0, 67, 6, 2, 0, 75, 6, 2, 0, 76, 6, 2, 0, 77, 6, 4, 0, 19, 0, + 7, 0, 78, 6,162, 0, 93, 3,221, 0, 16, 0, 0, 0, 79, 6, 0, 0, 80, 6, 0, 0, 81, 6, 0, 0, 82, 6, 2, 0, 17, 0, + 2, 0, 19, 0, 2, 0, 83, 6, 2, 0, 84, 6, 2, 0,181, 1, 2, 0, 85, 6, 4, 0, 86, 6, 4, 0, 87, 6, 2, 0, 88, 6, + 2, 0, 89, 6, 0, 0, 90, 6, 0, 0, 91, 6,222, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, + 4, 0, 37, 0,221, 0, 92, 6,223, 0, 93, 6, 12, 0, 94, 6, 12, 0, 95, 6,224, 0, 96, 6,211, 0, 97, 6,225, 0, 98, 6, + 2, 0, 99, 6, 2, 0,100, 6, 2, 0,101, 6, 2, 0, 70, 0,226, 0, 17, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, + 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, 12, 0,102, 6,227, 0,103, 6, 0, 0,104, 6,228, 0,105, 6, + 4, 0,106, 6, 4, 0,107, 6, 2, 0, 19, 0, 2, 0,108, 6, 2, 0,109, 6, 2, 0, 37, 0,229, 0, 29, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 47, 0,229, 2, 45, 0, 57, 1, 63, 0,110, 6, + 2, 0,133, 0, 2, 0,111, 6, 2, 0, 70, 0, 2, 0,112, 6, 4, 0, 19, 0, 2, 0,113, 6, 2, 0,114, 6, 2, 0,115, 6, + 2, 0,238, 1, 0, 0,116, 6, 0, 0,117, 6, 0, 0,118, 6, 0, 0, 17, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 78, 6, + 7, 0,121, 1, 7, 0,119, 6, 7, 0,120, 6,162, 0, 93, 3,230, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, + 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 65, 6, 2, 0, 19, 0, 4, 0, 37, 0,218, 0, 63, 6,214, 0, 62, 6, +231, 0, 27, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 42, 0,121, 6, + 4, 0,122, 6, 4, 0,123, 6, 2, 0, 90, 0, 2, 0,133, 0, 2, 0,124, 6, 0, 0,125, 6, 0, 0,126, 6, 4, 0,127, 6, + 4, 0,128, 6, 4, 0,129, 6, 4, 0,130, 6, 2, 0,131, 6, 2, 0,132, 6, 7, 0,133, 6, 23, 0,134, 6, 23, 0,135, 6, + 4, 0,136, 6, 4, 0,137, 6, 0, 0,138, 6, 0, 0,139, 6,232, 0, 10, 0, 27, 0, 31, 0, 9, 0,140, 6, 9, 0,141, 6, + 9, 0,142, 6, 9, 0,143, 6, 9, 0,144, 6, 4, 0, 90, 0, 4, 0,145, 6, 0, 0,146, 6, 0, 0,147, 6,233, 0, 10, 0, +213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6,232, 0,148, 6, 2, 0, 90, 0, 2, 0,133, 0, + 4, 0, 43, 0, 9, 0,149, 6,234, 0, 8, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, +214, 0, 62, 6, 4, 0, 19, 0, 4, 0,150, 6,235, 0, 23, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, + 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, 27, 0,151, 6, 27, 0, 81, 0, 2, 0, 19, 0, 2, 0,133, 0, 7, 0,152, 6, + 9, 0,153, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,154, 6, 7, 0,155, 6, 60, 0, 58, 1, 60, 0,156, 6, 4, 0,157, 6, + 2, 0,158, 6, 2, 0, 37, 0,162, 0, 93, 3,236, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, + 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 19, 0, 2, 0,120, 3, 4, 0, 37, 0,162, 0, 93, 3,237, 0, 42, 0,213, 0, 0, 0, +213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6,223, 0, 93, 6, 0, 0, 79, 6, + 0, 0, 80, 6, 0, 0, 81, 6, 2, 0, 17, 0, 2, 0, 89, 6, 2, 0, 19, 0, 2, 0, 83, 6, 9, 0,153, 6, 4, 0, 86, 6, + 4, 0,159, 6, 4, 0,160, 6, 4, 0, 87, 6, 23, 0,161, 6, 23, 0,162, 6, 7, 0,163, 6, 7, 0,164, 6, 7, 0,165, 6, + 7, 0,152, 6, 2, 0,166, 6, 2, 0,237, 0, 2, 0,181, 1, 2, 0, 85, 6, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0,167, 6, + 2, 0,168, 6, 9, 0,169, 6, 9, 0,170, 6, 9, 0,171, 6, 9, 0,172, 6, 9, 0,173, 6, 2, 0,174, 6, 0, 0, 91, 6, + 57, 0,175, 6,238, 0, 7, 0,238, 0, 0, 0,238, 0, 1, 0, 4, 0,176, 6, 4, 0, 23, 0, 0, 0, 84, 0, 4, 0,177, 6, + 4, 0, 17, 0,239, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, + 4, 0, 17, 0, 4, 0,178, 6, 4, 0, 19, 0, 4, 0,124, 6, 12, 0,179, 6, 12, 0,180, 6, 0, 0,181, 6, 0, 0,182, 6, +240, 0, 5, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 4, 0, 37, 0,241, 0, 7, 0,241, 0, 0, 0, +241, 0, 1, 0, 0, 0,183, 6, 2, 0,184, 6, 2, 0,185, 6, 2, 0,186, 6, 2, 0, 37, 0,242, 0, 12, 0, 2, 0,185, 6, + 2, 0,187, 6, 2, 0,188, 6, 0, 0,190, 2, 2, 0,189, 6, 2, 0,190, 6, 2, 0,191, 6, 2, 0,192, 6, 2, 0,193, 6, + 2, 0, 52, 6, 7, 0,194, 6, 7, 0,195, 6,243, 0, 18, 0,243, 0, 0, 0,243, 0, 1, 0, 0, 0,233, 3,242, 0,196, 6, +242, 0,197, 6,242, 0,198, 6,242, 0,199, 6, 7, 0,200, 6, 2, 0,201, 6, 2, 0,202, 6, 2, 0,203, 6, 2, 0,204, 6, + 2, 0,205, 6, 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, 2, 0,209, 6, 2, 0,210, 6,244, 0, 10, 0, 0, 0,211, 6, + 0, 0,212, 6, 0, 0,213, 6, 0, 0,214, 6, 0, 0,215, 6, 0, 0,216, 6, 2, 0,217, 6, 2, 0,218, 6, 2, 0,219, 6, + 2, 0, 37, 0,245, 0, 8, 0, 0, 0,220, 6, 0, 0,221, 6, 0, 0,222, 6, 0, 0,223, 6, 0, 0,224, 6, 0, 0,225, 6, + 7, 0,230, 5, 7, 0, 37, 0,246, 0, 17, 0,244, 0,226, 6,244, 0,227, 6,244, 0,228, 6,244, 0,229, 6,244, 0,230, 6, +244, 0,231, 6,244, 0,232, 6,244, 0,233, 6,244, 0,234, 6,244, 0,235, 6,244, 0,236, 6,244, 0,237, 6,244, 0,238, 6, +244, 0,239, 6,244, 0,240, 6,245, 0,241, 6, 0, 0,242, 6,247, 0, 71, 0, 0, 0,243, 6, 0, 0,244, 6, 0, 0,215, 6, + 0, 0,245, 6, 0, 0,246, 6, 0, 0,247, 6, 0, 0,248, 6, 0, 0,249, 6, 0, 0,250, 6, 0, 0,251, 6, 0, 0,252, 6, + 0, 0,253, 6, 0, 0,254, 6, 0, 0,255, 6, 0, 0, 0, 7, 0, 0, 1, 7, 0, 0, 2, 7, 0, 0, 3, 7, 0, 0, 4, 7, + 0, 0, 5, 7, 0, 0, 6, 7, 0, 0, 7, 7, 0, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7, 0, 0, 11, 7, 0, 0, 12, 7, + 0, 0, 13, 7, 0, 0, 14, 7, 0, 0, 15, 7, 0, 0, 16, 7, 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, + 0, 0, 21, 7, 0, 0, 22, 7, 0, 0, 23, 7, 0, 0, 24, 7, 0, 0, 25, 7, 0, 0, 26, 7, 0, 0, 27, 7, 0, 0, 28, 7, + 0, 0, 29, 7, 0, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7, 0, 0, 33, 7, 0, 0, 34, 7, 0, 0, 35, 7, 0, 0, 36, 7, + 0, 0, 37, 7, 0, 0, 38, 7, 0, 0, 39, 7, 0, 0, 40, 7, 0, 0, 41, 7, 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, + 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, + 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 92, 0,248, 0, 5, 0, 0, 0, 56, 7, 0, 0, 11, 7, 0, 0, 13, 7, + 2, 0, 19, 0, 2, 0, 37, 0,249, 0, 24, 0,249, 0, 0, 0,249, 0, 1, 0, 0, 0, 20, 0,246, 0, 57, 7,247, 0, 58, 7, +247, 0, 59, 7,247, 0, 60, 7,247, 0, 61, 7,247, 0, 62, 7,247, 0, 63, 7,247, 0, 64, 7,247, 0, 65, 7,247, 0, 66, 7, +247, 0, 67, 7,247, 0, 68, 7,247, 0, 69, 7,247, 0, 70, 7,247, 0, 71, 7,247, 0, 72, 7,247, 0, 73, 7,247, 0, 74, 7, +248, 0, 75, 7, 4, 0, 76, 7, 4, 0, 37, 0,250, 0, 5, 0, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,138, 2, 7, 0, 77, 7, + 7, 0, 43, 2,251, 0, 73, 0, 4, 0, 19, 0, 4, 0, 78, 7, 4, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, 0, 0, 82, 7, + 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, 2, 0, 89, 7, 2, 0, 90, 7, + 4, 0, 91, 7, 4, 0, 92, 7, 4, 0, 93, 7, 4, 0, 94, 7, 2, 0, 95, 7, 2, 0, 96, 7, 4, 0, 97, 7, 4, 0, 98, 7, + 4, 0, 99, 7, 4, 0,100, 7, 4, 0,101, 7, 4, 0,179, 6, 4, 0,102, 7, 2, 0,103, 7, 2, 0,104, 7, 2, 0,105, 7, + 2, 0,106, 7, 12, 0,107, 7, 12, 0,108, 7, 12, 0,109, 7, 12, 0,110, 7, 0, 0,111, 7, 2, 0,112, 7, 2, 0,113, 7, + 2, 0,114, 7, 2, 0,115, 7, 2, 0,116, 7, 2, 0,117, 7, 2, 0,118, 7, 2, 0,119, 7,250, 0,120, 7, 2, 0,121, 7, + 2, 0,122, 7, 2, 0,123, 7, 2, 0,124, 7, 2, 0,125, 7, 2, 0,126, 7, 2, 0,127, 7, 2, 0,128, 7, 4, 0,129, 7, + 4, 0,130, 7, 2, 0,131, 7, 2, 0,132, 7, 2, 0,133, 7, 2, 0,134, 7, 2, 0,135, 7, 2, 0,136, 7, 2, 0,137, 7, + 2, 0,138, 7, 2, 0,139, 7, 2, 0,140, 7, 2, 0,141, 7, 2, 0,142, 7, 0, 0,143, 7, 0, 0,144, 7, 7, 0,145, 7, + 2, 0,155, 5, 2, 0,156, 5, 55, 0,146, 7,216, 0, 21, 0, 27, 0, 31, 0, 12, 0,147, 7, 12, 0,148, 7, 12, 0,149, 7, + 12, 0, 6, 6, 46, 0,134, 0, 46, 0,150, 7, 2, 0,151, 7, 2, 0,152, 7, 2, 0,153, 7, 2, 0,154, 7, 2, 0,155, 7, + 2, 0,156, 7, 2, 0,157, 7, 2, 0, 37, 0, 2, 0,158, 7, 2, 0,159, 7, 4, 0, 70, 0,211, 0,160, 7, 9, 0,161, 7, + 2, 0,162, 7,252, 0, 5, 0,252, 0, 0, 0,252, 0, 1, 0,252, 0,163, 7, 13, 0,164, 7, 4, 0, 19, 0,253, 0, 7, 0, +253, 0, 0, 0,253, 0, 1, 0,252, 0,165, 7,252, 0,166, 7, 2, 0, 9, 5, 2, 0, 19, 0, 4, 0, 37, 0,254, 0, 25, 0, +254, 0, 0, 0,254, 0, 1, 0,255, 0,167, 7, 0, 1, 98, 6, 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, 2, 0,171, 7, + 2, 0,172, 7, 2, 0,173, 7, 2, 0,174, 7, 2, 0,175, 7, 2, 0, 37, 0, 2, 0, 19, 0, 2, 0,176, 7, 2, 0,177, 7, + 2, 0,178, 7, 4, 0,179, 7,254, 0,180, 7, 9, 0,181, 7, 4, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, 4, 0,185, 7, + 0, 0,186, 7, 1, 1, 22, 0, 1, 1, 0, 0, 1, 1, 1, 0,252, 0,165, 7,252, 0,166, 7,252, 0,187, 7,252, 0,188, 7, +216, 0,189, 7, 23, 0, 52, 0, 0, 0, 7, 6, 0, 0,190, 7, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0,191, 7, 2, 0, 37, 0, + 2, 0,154, 7, 2, 0,177, 6, 2, 0, 19, 0, 2, 1,167, 7, 12, 0,192, 7, 12, 0, 6, 6, 12, 0,193, 7, 12, 0,194, 7, + 3, 1, 21, 0, 3, 1, 0, 0, 3, 1, 1, 0,214, 0, 62, 6, 23, 0,195, 7, 23, 0,196, 7, 2, 0, 53, 6, 2, 0, 54, 6, + 2, 0,197, 7, 2, 0,198, 7, 2, 0,199, 7, 2, 0, 19, 0, 7, 0, 85, 2, 2, 0,153, 7, 2, 0,157, 7, 4, 0, 43, 0, + 4, 1,167, 7, 12, 0,200, 7, 12, 0,201, 7, 12, 0,193, 7, 0, 0,202, 7, 9, 0,203, 7, 5, 1, 12, 0, 0, 0,204, 7, + 2, 0,205, 7, 2, 0,206, 7, 2, 0,207, 7, 2, 0,208, 7, 2, 0,252, 4, 2, 0,247, 4,216, 0,209, 7, 46, 0,210, 7, + 4, 0,211, 7, 4, 0,212, 7, 0, 0, 35, 0, 6, 1, 1, 0, 0, 0,213, 7, 7, 1, 8, 0, 57, 0,214, 7, 57, 0,215, 7, + 7, 1,216, 7, 7, 1,217, 7, 7, 1,218, 7, 2, 0,129, 0, 2, 0, 19, 0, 4, 0,219, 7, 8, 1, 4, 0, 4, 0,122, 6, + 4, 0,220, 7, 4, 0,127, 6, 4, 0,221, 7, 9, 1, 2, 0, 4, 0,222, 7, 4, 0,223, 7, 10, 1, 7, 0, 7, 0,224, 7, + 7, 0,225, 7, 7, 0,226, 7, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,118, 4, 7, 0,227, 7, 11, 1, 6, 0, 0, 0,228, 7, + 0, 0, 81, 6, 49, 0,137, 0, 2, 0,106, 0, 2, 0,251, 4, 4, 0, 37, 0, 12, 1, 21, 0, 12, 1, 0, 0, 12, 1, 1, 0, + 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, 4, 0,229, 7, 4, 0,230, 7, 4, 0,231, 7, 6, 1,232, 7, 0, 0,228, 7, + 4, 0,233, 7, 4, 0,234, 7, 11, 1, 87, 3, 8, 1,235, 7, 9, 1,236, 7, 10, 1,237, 7, 7, 1,238, 7, 7, 1,239, 7, + 7, 1,240, 7, 57, 0,241, 7, 57, 0,242, 7, 13, 1, 12, 0, 0, 0, 5, 2, 9, 0,223, 0, 0, 0,224, 0, 4, 0,227, 0, + 4, 0,235, 0, 9, 0,228, 0, 7, 0,230, 0, 7, 0,231, 0, 9, 0,243, 7, 9, 0,244, 7, 9, 0,232, 0, 9, 0,234, 0, + 14, 1, 43, 0, 14, 1, 0, 0, 14, 1, 1, 0, 9, 0,245, 7, 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0, + 4, 0, 23, 0, 4, 0, 88, 0, 4, 0,246, 7, 4, 0,247, 7, 4, 0,230, 7, 4, 0,231, 7, 4, 0,248, 7, 4, 0,246, 0, + 4, 0,249, 7, 4, 0,250, 7, 7, 0,251, 7, 7, 0,252, 7, 4, 0,126, 0, 4, 0,253, 7, 12, 1,254, 7, 36, 0, 80, 0, + 46, 0,134, 0, 49, 0,137, 0, 7, 0,255, 7, 7, 0, 0, 8, 13, 1, 59, 1, 14, 1, 1, 8, 14, 1, 2, 8, 14, 1, 3, 8, + 12, 0, 4, 8, 15, 1, 5, 8, 16, 1, 6, 8, 7, 0, 7, 8, 7, 0, 8, 8, 4, 0, 9, 8, 7, 0, 10, 8, 9, 0, 11, 8, + 4, 0, 12, 8, 4, 0, 13, 8, 4, 0, 14, 8, 7, 0, 15, 8, 17, 1, 4, 0, 17, 1, 0, 0, 17, 1, 1, 0, 12, 0, 16, 8, + 14, 1, 17, 8,202, 0, 6, 0, 12, 0, 18, 8, 12, 0, 4, 8, 12, 0, 19, 8, 14, 1, 20, 8, 0, 0, 21, 8, 0, 0, 22, 8, + 18, 1, 4, 0, 7, 0, 23, 8, 7, 0,109, 0, 2, 0, 24, 8, 2, 0, 25, 8, 19, 1, 6, 0, 7, 0, 26, 8, 7, 0, 27, 8, + 7, 0, 28, 8, 7, 0, 29, 8, 4, 0, 30, 8, 4, 0, 31, 8, 20, 1, 13, 0, 7, 0, 32, 8, 7, 0, 33, 8, 7, 0, 34, 8, + 7, 0, 35, 8, 7, 0, 36, 8, 7, 0, 37, 8, 7, 0, 38, 8, 7, 0, 39, 8, 7, 0, 40, 8, 7, 0, 41, 8, 4, 0,233, 2, + 4, 0, 42, 8, 4, 0, 43, 8, 21, 1, 2, 0, 7, 0, 91, 5, 7, 0, 37, 0, 22, 1, 5, 0, 7, 0, 44, 8, 7, 0, 45, 8, + 4, 0, 90, 0, 4, 0,191, 2, 4, 0, 46, 8, 23, 1, 6, 0, 23, 1, 0, 0, 23, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, + 2, 0, 47, 8, 2, 0, 57, 0, 24, 1, 8, 0, 24, 1, 0, 0, 24, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 47, 8, + 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,126, 0, 25, 1, 45, 0, 25, 1, 0, 0, 25, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, + 2, 0, 47, 8, 2, 0,242, 0, 2, 0, 28, 4, 2, 0, 48, 8, 7, 0, 49, 8, 7, 0, 89, 0, 7, 0,246, 2, 4, 0, 50, 8, + 4, 0, 82, 0, 4, 0,193, 2, 7, 0, 51, 8, 7, 0, 52, 8, 7, 0, 53, 8, 7, 0, 54, 8, 7, 0, 55, 8, 7, 0, 56, 8, + 7, 0,243, 2, 7, 0, 56, 1, 7, 0, 57, 8, 7, 0, 58, 8, 7, 0, 37, 0, 7, 0, 59, 8, 7, 0, 60, 8, 7, 0, 61, 8, + 2, 0, 62, 8, 2, 0, 63, 8, 2, 0, 64, 8, 2, 0, 65, 8, 2, 0, 66, 8, 2, 0, 67, 8, 2, 0, 68, 8, 2, 0, 69, 8, + 2, 0, 28, 2, 2, 0, 70, 8, 2, 0, 25, 2, 2, 0, 71, 8, 0, 0, 72, 8, 0, 0, 73, 8, 7, 0,240, 0, 26, 1, 74, 8, + 67, 0,241, 1, 27, 1, 16, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 47, 8, 2, 0,242, 0, + 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0, 75, 8, 7, 0,243, 2, + 7, 0,245, 2, 7, 0,246, 2,228, 0, 5, 0, 2, 0, 17, 0, 2, 0,219, 7, 2, 0, 19, 0, 2, 0, 76, 8, 27, 0,151, 6, +227, 0, 3, 0, 4, 0, 69, 0, 4, 0, 77, 8,228, 0, 2, 0, 28, 1, 7, 0, 28, 1, 0, 0, 28, 1, 1, 0, 0, 0, 20, 0, + 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, 9, 0, 78, 8, 29, 1, 5, 0, 0, 0, 20, 0, 7, 0, 76, 1, 7, 0, 79, 8, + 4, 0, 80, 8, 4, 0, 37, 0, 30, 1, 4, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 43, 0, 2, 0, 70, 0, 31, 1, 4, 0, + 0, 0, 20, 0, 66, 0, 81, 8, 7, 0, 76, 1, 7, 0, 37, 0, 32, 1, 6, 0, 2, 0, 82, 8, 2, 0, 83, 8, 2, 0, 17, 0, + 2, 0, 84, 8, 0, 0, 85, 8, 0, 0, 86, 8, 33, 1, 5, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 0, 0, 87, 8, + 0, 0, 88, 8, 34, 1, 3, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 35, 1, 4, 0, 2, 0, 89, 8, 2, 0, 90, 8, + 2, 0, 19, 0, 2, 0, 37, 0, 36, 1, 6, 0, 0, 0, 20, 0, 0, 0, 91, 8, 2, 0, 92, 8, 2, 0,243, 2, 2, 0, 69, 1, + 2, 0, 70, 0, 37, 1, 5, 0, 0, 0, 20, 0, 7, 0,109, 0, 7, 0,120, 4, 2, 0, 19, 0, 2, 0,205, 2, 38, 1, 3, 0, + 0, 0, 20, 0, 4, 0,193, 2, 4, 0, 89, 8, 39, 1, 7, 0, 0, 0, 20, 0, 7, 0,120, 4, 0, 0, 93, 8, 0, 0, 94, 8, + 2, 0, 69, 1, 2, 0, 43, 0, 4, 0, 95, 8, 40, 1, 4, 0, 0, 0, 96, 8, 0, 0, 97, 8, 4, 0, 17, 0, 7, 0,209, 2, + 41, 1, 3, 0, 32, 0, 98, 8, 0, 0, 99, 8, 0, 0,100, 8, 42, 1, 18, 0, 42, 1, 0, 0, 42, 1, 1, 0, 2, 0, 17, 0, + 2, 0,101, 8, 2, 0, 19, 0, 2, 0,102, 8, 2, 0,103, 8, 2, 0,104, 8, 2, 0, 43, 0, 2, 0, 70, 0, 0, 0, 20, 0, + 9, 0, 2, 0, 43, 1,105, 8, 32, 0, 45, 0, 2, 0,107, 5, 2, 0, 7, 8, 2, 0,106, 8, 2, 0, 37, 0, 44, 1, 11, 0, + 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,107, 8, 2, 0, 19, 0, 2, 0,205, 2, 2, 0,108, 8, 4, 0,109, 8, 4, 0,110, 8, + 4, 0,111, 8, 4, 0,112, 8, 4, 0,113, 8, 45, 1, 1, 0, 0, 0,114, 8, 46, 1, 4, 0, 42, 0,121, 6, 0, 0,115, 8, + 4, 0, 69, 1, 4, 0, 19, 0, 43, 1, 18, 0, 43, 1, 0, 0, 43, 1, 1, 0, 43, 1,116, 8, 2, 0, 17, 0, 2, 0, 19, 0, + 2, 0,117, 8, 2, 0,104, 8, 2, 0,101, 8, 2, 0,118, 8, 2, 0, 70, 0, 2, 0,238, 1, 0, 0, 20, 0, 9, 0, 2, 0, + 47, 1,105, 8, 42, 1,119, 8, 2, 0, 15, 0, 2, 0,120, 8, 4, 0,121, 8, 48, 1, 3, 0, 4, 0,219, 2, 4, 0, 37, 0, + 32, 0, 45, 0, 49, 1, 12, 0,160, 0,122, 8, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 49, 8, 4, 0, 89, 0, 0, 0, 20, 0, + 0, 0,123, 8, 2, 0,124, 8, 2, 0,125, 8, 2, 0,126, 8, 2, 0,127, 8, 7, 0,128, 8, 50, 1, 13, 0, 2, 0, 19, 0, + 2, 0,129, 8, 4, 0, 49, 8, 4, 0, 89, 0, 2, 0,130, 8, 7, 0,242, 3, 7, 0,131, 8, 15, 1, 5, 8, 51, 1,132, 8, + 2, 0, 17, 0, 2, 0,133, 8, 2, 0,134, 8, 2, 0,135, 8, 52, 1, 11, 0, 4, 0,219, 2, 2, 0, 17, 0, 2, 0, 19, 0, + 32, 0, 45, 0, 80, 0,136, 8, 0, 0, 20, 0, 7, 0,137, 8, 7, 0,138, 8, 7, 0,128, 3, 2, 0,139, 8, 2, 0,140, 8, + 53, 1, 5, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 37, 0, 46, 0,134, 0, 32, 0,204, 5, 54, 1, 5, 0, 4, 0, 19, 0, + 4, 0, 17, 0, 0, 0, 20, 0, 0, 0, 87, 8, 32, 0, 45, 0, 55, 1, 13, 0, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,101, 8, + 2, 0,129, 3, 7, 0,141, 8, 7, 0,142, 8, 7, 0, 64, 1, 7, 0, 65, 1, 7, 0,100, 3, 7, 0,103, 3, 7, 0,143, 8, + 7, 0,144, 8, 32, 0,145, 8, 56, 1, 10, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 49, 8, 4, 0, 89, 0, 0, 0, 20, 0, + 0, 0,123, 8, 2, 0, 43, 0, 2, 0, 64, 0, 2, 0,146, 8, 2, 0,147, 8, 57, 1, 8, 0, 32, 0, 45, 0, 7, 0,240, 2, + 7, 0,148, 8, 7, 0,149, 8, 7, 0,235, 2, 2, 0, 19, 0, 2, 0,205, 2, 7, 0,150, 8, 58, 1, 12, 0, 2, 0, 17, 0, + 2, 0, 69, 1, 2, 0, 19, 0, 2, 0,243, 2, 2, 0,219, 2, 2, 0,151, 8, 4, 0, 37, 0, 7, 0,152, 8, 7, 0,153, 8, + 7, 0,154, 8, 7, 0,155, 8, 0, 0,156, 8, 59, 1, 9, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 49, 8, 4, 0, 89, 0, + 0, 0, 20, 0, 2, 0,136, 1, 2, 0, 64, 0, 2, 0,146, 8, 2, 0,147, 8, 60, 1, 7, 0, 4, 0,193, 2, 4, 0,157, 8, + 4, 0,158, 8, 4, 0,159, 8, 7, 0,160, 8, 7, 0,161, 8, 0, 0, 93, 8, 61, 1, 7, 0, 0, 0,162, 8, 32, 0,163, 8, + 0, 0, 99, 8, 2, 0,164, 8, 2, 0, 43, 0, 4, 0, 70, 0, 0, 0,100, 8, 62, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, + 4, 0, 49, 8, 4, 0, 89, 0, 0, 0,165, 8, 0, 0,166, 8, 63, 1, 1, 0, 4, 0, 19, 0, 64, 1, 6, 0, 0, 0, 92, 0, + 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,167, 8, 7, 0,168, 8, 42, 0,121, 6, 65, 1, 4, 0, 0, 0, 70, 2, 2, 0, 19, 0, + 4, 0, 17, 0, 32, 0, 45, 0, 66, 1, 2, 0, 4, 0, 17, 0, 4, 0, 42, 6, 67, 1, 6, 0, 0, 0, 96, 8, 0, 0, 97, 8, + 4, 0, 17, 0, 7, 0, 36, 2, 32, 0, 50, 3, 32, 0,169, 8, 47, 1, 10, 0, 47, 1, 0, 0, 47, 1, 1, 0, 47, 1,116, 8, + 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,101, 8, 2, 0,170, 8, 0, 0, 20, 0, 9, 0, 2, 0, 32, 0, 45, 0, 68, 1, 10, 0, + 7, 0,128, 3, 7, 0,171, 8, 7, 0,172, 8, 7, 0,173, 8, 7, 0,174, 8, 4, 0, 19, 0, 7, 0,151, 8, 7, 0,175, 8, + 7, 0,176, 8, 7, 0, 37, 0, 16, 1, 12, 0, 16, 1, 0, 0, 16, 1, 1, 0, 15, 1,177, 8, 9, 0,223, 0, 4, 0,171, 3, + 4, 0,229, 3, 4, 0,230, 3, 4, 0,178, 8, 4, 0,179, 8, 4, 0,180, 8, 7, 0,242, 3, 7, 0, 37, 0, 51, 1, 8, 0, + 7, 0,181, 8, 7, 0,182, 8, 7, 0,183, 8, 7, 0,184, 8, 7, 0,185, 8, 7, 0,186, 8, 7, 0,187, 8, 7, 0,188, 8, + 15, 1, 15, 0, 27, 0, 31, 0, 0, 0,222, 0, 43, 0,149, 0, 9, 0,223, 0, 43, 0,189, 8, 36, 0, 80, 0, 7, 0,242, 3, + 7, 0,190, 8, 7, 0,131, 8, 7, 0,181, 8, 7, 0,182, 8, 7, 0,191, 8, 4, 0, 90, 0, 4, 0,180, 8, 9, 0,192, 8, + 69, 1, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 1, 1,193, 8,214, 0, 62, 6, + 15, 1, 5, 8, 2, 0, 69, 1, 2, 0,129, 8, 2, 0, 89, 2, 2, 0, 90, 2, 2, 0, 19, 0, 2, 0,114, 6, 4, 0, 70, 0, + 70, 1, 6, 0, 70, 1, 0, 0, 70, 1, 1, 0, 32, 0, 45, 0, 9, 0,194, 8, 4, 0,247, 0, 4, 0, 37, 0, 67, 0, 4, 0, + 27, 0, 31, 0, 12, 0,195, 8, 4, 0,131, 0, 7, 0,196, 8, 71, 1, 27, 0, 71, 1, 0, 0, 71, 1, 1, 0, 26, 0,197, 8, + 71, 1, 38, 0, 12, 0,198, 8, 0, 0, 20, 0, 7, 0,199, 8, 7, 0,200, 8, 7, 0,201, 8, 7, 0,202, 8, 4, 0, 19, 0, + 7, 0,203, 8, 7, 0,204, 8, 7, 0,205, 8, 7, 0, 76, 1, 7, 0, 36, 2, 7, 0,206, 8, 7, 0,191, 2, 7, 0,207, 8, + 7, 0,208, 8, 7, 0,209, 8, 7, 0,210, 8, 7, 0,211, 8, 7, 0,172, 0, 4, 0,131, 0, 2, 0,136, 5, 2, 0,136, 1, + 72, 1, 25, 0, 27, 0, 31, 0, 39, 0, 75, 0, 12, 0,212, 8, 12, 0,213, 8, 12, 0,214, 8, 71, 1,215, 8, 9, 0,216, 8, + 9, 0,217, 8, 4, 0, 19, 0, 4, 0, 15, 6, 2, 0,247, 2, 2, 0, 72, 6, 4, 0, 37, 0, 4, 0,131, 0, 4, 0,218, 8, + 2, 0,219, 8, 2, 0,220, 8, 2, 0,221, 8, 2, 0,222, 8, 4, 0,223, 8, 4, 0,224, 8, 4, 0,225, 8, 4, 0,226, 8, + 4, 0,227, 8, 4, 0,228, 8, 73, 1, 2, 0, 7, 0,152, 2, 4, 0, 19, 0, 74, 1, 5, 0, 73, 1,229, 8, 4, 0,191, 2, + 4, 0,230, 8, 4, 0,231, 8, 4, 0, 19, 0, 75, 1, 6, 0, 4, 0, 37, 0, 4, 0, 72, 6, 4, 0,225, 8, 4, 0,226, 8, + 4, 0,227, 8, 4, 0,228, 8, 76, 1, 42, 0, 76, 1, 0, 0, 76, 1, 1, 0, 26, 0,197, 8, 12, 0,155, 3, 0, 0, 20, 0, + 2, 0, 19, 0, 2, 0,232, 8, 2, 0,233, 8, 2, 0,234, 8, 2, 0,114, 3, 2, 0,235, 8, 4, 0, 72, 2, 4, 0,225, 8, + 4, 0,226, 8, 71, 1,236, 8, 76, 1, 38, 0, 76, 1,237, 8, 12, 0,238, 8, 9, 0,239, 8, 9, 0,240, 8, 9, 0,241, 8, + 7, 0, 64, 1, 7, 0,172, 0, 7, 0,242, 8, 7, 0, 15, 2, 7, 0,105, 3, 7, 0,107, 3, 2, 0,137, 3, 2, 0, 37, 0, + 7, 0,243, 8, 7, 0,244, 8, 7, 0,110, 3, 7, 0,245, 8, 7, 0,246, 8, 7, 0,247, 8, 7, 0,248, 8, 7, 0,249, 8, + 7, 0,250, 8, 7, 0,251, 8, 7, 0,252, 8, 7, 0, 65, 2, 32, 0,253, 8,161, 0, 11, 0, 12, 0,254, 8, 2, 0, 19, 0, + 2, 0,255, 8, 7, 0,101, 2, 7, 0, 0, 9, 7, 0, 1, 9, 12, 0, 2, 9, 4, 0, 3, 9, 4, 0, 4, 9, 9, 0, 5, 9, + 9, 0, 6, 9, 77, 1, 1, 0, 4, 0, 4, 9, 78, 1, 12, 0, 4, 0, 4, 9, 7, 0,113, 8, 2, 0, 7, 9, 2, 0, 8, 9, + 7, 0, 9, 9, 7, 0, 10, 9, 2, 0, 11, 9, 2, 0, 19, 0, 7, 0, 12, 9, 7, 0, 13, 9, 7, 0, 14, 9, 7, 0, 15, 9, + 79, 1, 7, 0, 79, 1, 0, 0, 79, 1, 1, 0, 12, 0, 16, 9, 4, 0, 19, 0, 4, 0, 17, 9, 0, 0,233, 3,248, 0, 18, 9, +160, 0, 7, 0, 27, 0, 31, 0, 12, 0, 19, 9, 12, 0,254, 8, 12, 0, 20, 9, 12, 0,100, 0, 4, 0, 19, 0, 4, 0, 21, 9, +218, 0, 4, 0, 27, 0,177, 8, 12, 0,254, 8, 4, 0, 22, 9, 4, 0, 19, 0, 80, 1, 17, 0,213, 0, 0, 0,213, 0, 1, 0, + 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6,160, 0, 90, 3,218, 0, 23, 9, 0, 0, 69, 1, + 0, 0, 65, 6, 2, 0, 19, 0, 2, 0, 24, 9, 2, 0,115, 6, 2, 0,114, 6, 2, 0, 25, 9, 7, 0, 26, 9, 81, 1, 8, 0, + 81, 1, 0, 0, 81, 1, 1, 0, 79, 1, 27, 9, 36, 0, 80, 0, 12, 0, 94, 3, 4, 0, 19, 0, 0, 0, 20, 0, 4, 0, 28, 9, + 82, 1, 5, 0, 82, 1, 0, 0, 82, 1, 1, 0, 36, 0, 80, 0, 2, 0, 19, 0, 0, 0, 29, 9, 83, 1, 14, 0, 83, 1, 0, 0, + 83, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 30, 9, 0, 0, 31, 9, 0, 0, 29, 9, 7, 0, 32, 9, + 7, 0, 33, 9, 4, 0, 37, 0, 36, 0, 80, 0, 7, 0, 34, 9, 7, 0, 35, 9, 84, 1, 9, 0, 84, 1, 0, 0, 84, 1, 1, 0, + 32, 0, 36, 9, 0, 0,250, 2, 7, 0, 37, 9, 2, 0, 38, 9, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0, 39, 9, 85, 1, 7, 0, + 42, 0,121, 6, 26, 0,197, 8, 4, 0, 19, 0, 4, 0, 40, 9, 12, 0, 41, 9, 32, 0, 36, 9, 0, 0,250, 2, 86, 1, 15, 0, + 32, 0, 36, 9, 2, 0, 42, 9, 2, 0, 19, 0, 2, 0, 43, 9, 2, 0, 44, 9, 0, 0,250, 2, 32, 0, 45, 9, 0, 0, 46, 9, + 7, 0, 47, 9, 7, 0, 36, 2, 7, 0, 48, 9, 7, 0, 49, 9, 2, 0, 17, 0, 2, 0, 69, 1, 7, 0, 76, 1, 87, 1, 6, 0, + 32, 0, 36, 9, 7, 0,229, 8, 2, 0, 50, 9, 2, 0, 51, 9, 2, 0, 19, 0, 2, 0, 52, 9, 88, 1, 6, 0, 32, 0, 36, 9, + 4, 0, 53, 9, 4, 0, 54, 9, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,250, 2, 89, 1, 4, 0, 32, 0, 36, 9, 4, 0, 19, 0, + 4, 0, 53, 9, 0, 0,250, 2, 90, 1, 4, 0, 32, 0, 36, 9, 4, 0, 19, 0, 4, 0, 53, 9, 0, 0,250, 2, 91, 1, 10, 0, + 32, 0, 36, 9, 4, 0, 55, 9, 7, 0,125, 0, 4, 0, 19, 0, 2, 0,117, 6, 2, 0, 56, 9, 2, 0, 43, 0, 2, 0, 70, 0, + 7, 0, 57, 9, 0, 0,250, 2, 92, 1, 4, 0, 32, 0, 36, 9, 4, 0, 19, 0, 4, 0, 53, 9, 0, 0,250, 2, 93, 1, 10, 0, + 32, 0, 36, 9, 2, 0, 17, 0, 2, 0, 36, 4, 4, 0, 88, 0, 4, 0, 89, 0, 7, 0,148, 8, 7, 0,149, 8, 4, 0, 37, 0, +160, 0,122, 8, 0, 0,250, 2, 94, 1, 4, 0, 32, 0, 36, 9, 4, 0,115, 3, 4, 0, 58, 9, 0, 0,250, 2, 95, 1, 4, 0, + 32, 0, 36, 9, 4, 0,115, 3, 4, 0, 37, 0, 0, 0,250, 2, 96, 1, 5, 0, 32, 0, 36, 9, 7, 0,125, 0, 4, 0, 59, 9, + 4, 0,115, 3, 4, 0,116, 3, 97, 1, 6, 0, 32, 0, 36, 9, 4, 0, 60, 9, 4, 0, 61, 9, 7, 0, 62, 9, 7, 0, 63, 9, + 0, 0,250, 2, 98, 1, 16, 0, 32, 0, 36, 9, 32, 0,237, 8, 4, 0, 17, 0, 7, 0, 64, 9, 7, 0, 65, 9, 7, 0, 66, 9, + 7, 0, 67, 9, 7, 0, 68, 9, 7, 0, 69, 9, 7, 0, 70, 9, 7, 0, 71, 9, 7, 0, 72, 9, 2, 0, 19, 0, 2, 0, 37, 0, + 2, 0, 43, 0, 2, 0, 70, 0, 99, 1, 3, 0, 32, 0, 36, 9, 4, 0, 19, 0, 4, 0, 28, 2,100, 1, 5, 0, 32, 0, 36, 9, + 4, 0, 19, 0, 4, 0, 37, 0, 7, 0, 73, 9, 0, 0,250, 2,101, 1, 10, 0, 32, 0, 36, 9, 0, 0,250, 2, 2, 0, 74, 9, + 2, 0, 75, 9, 0, 0, 76, 9, 0, 0, 77, 9, 7, 0, 78, 9, 7, 0, 79, 9, 7, 0, 80, 9, 7, 0, 81, 9,102, 1, 8, 0, + 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 82, 9, 7, 0, 83, 9, 2, 0, 19, 0, 2, 0, 28, 2, +103, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 82, 9, 7, 0, 83, 9, 2, 0, 19, 0, + 2, 0, 28, 2,104, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 82, 9, 7, 0, 83, 9, + 2, 0, 19, 0, 2, 0, 28, 2,105, 1, 7, 0, 32, 0, 36, 9, 0, 0,250, 2, 7, 0, 76, 1, 7, 0, 85, 1, 2, 0, 19, 0, + 2, 0, 69, 1, 4, 0, 37, 0,106, 1, 5, 0, 32, 0, 50, 3, 7, 0, 76, 1, 2, 0, 54, 3, 0, 0, 56, 3, 0, 0, 84, 9, +107, 1, 10, 0,107, 1, 0, 0,107, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 85, 9, 7, 0, 20, 1, 7, 0, 21, 1, + 2, 0, 16, 9, 2, 0, 86, 9, 32, 0, 45, 0,108, 1, 22, 0,108, 1, 0, 0,108, 1, 1, 0, 2, 0, 19, 0, 2, 0, 69, 1, + 2, 0, 87, 9, 2, 0, 88, 9, 36, 0, 80, 0,160, 0,122, 8, 32, 0,164, 0, 7, 0, 88, 0, 7, 0, 89, 0, 7, 0, 89, 9, + 7, 0, 90, 9, 7, 0, 91, 9, 7, 0, 92, 9, 7, 0,236, 2, 7, 0, 93, 9, 7, 0,124, 8, 7, 0, 94, 9, 0, 0, 95, 9, + 0, 0, 96, 9, 12, 0, 96, 3,109, 1, 8, 0, 7, 0, 43, 2, 7, 0,148, 8, 7, 0,149, 8, 9, 0, 2, 0, 2, 0, 97, 9, + 2, 0, 98, 9, 2, 0, 99, 9, 2, 0,100, 9,110, 1, 18, 0,110, 1, 0, 0,110, 1, 1, 0,110, 1,101, 9, 0, 0, 20, 0, +109, 1,102, 9, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,103, 9, 2, 0,104, 9, 2, 0,105, 9, 2, 0,106, 9, 4, 0, 43, 0, + 7, 0,107, 9, 7, 0,108, 9, 4, 0,109, 9, 4, 0,110, 9,110, 1,111, 9,111, 1,112, 9,112, 1, 33, 0,112, 1, 0, 0, +112, 1, 1, 0,112, 1,113, 9, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,229, 7, 2, 0, 7, 8, 2, 0,114, 9, + 2, 0,133, 0, 2, 0,104, 9, 2, 0,219, 7, 12, 0,117, 8, 12, 0,115, 9, 27, 0,151, 6, 9, 0,116, 9, 7, 0,107, 9, + 7, 0,108, 9, 7, 0, 74, 2, 7, 0,117, 9, 2, 0,118, 9, 2, 0,119, 9, 7, 0,120, 9, 7, 0,121, 9, 2, 0,122, 9, + 2, 0,123, 9, 9, 0,124, 9, 24, 0,125, 9, 24, 0,126, 9, 24, 0,127, 9,113, 1,150, 0,114, 1,128, 9,115, 1,129, 9, +111, 1, 8, 0,111, 1, 0, 0,111, 1, 1, 0,112, 1,130, 9,112, 1,131, 9,110, 1,132, 9,110, 1,111, 9, 4, 0, 19, 0, + 4, 0, 37, 0, 60, 0, 23, 0, 27, 0, 31, 0, 39, 0, 75, 0,162, 0, 93, 3, 12, 0,133, 9, 12, 0,134, 9,109, 1,135, 9, + 12, 0,136, 9, 4, 0, 17, 0, 4, 0,137, 9, 4, 0,138, 9, 4, 0,139, 9, 4, 0, 19, 0, 4, 0, 37, 0, 12, 0,140, 9, +115, 1,141, 9,110, 1,142, 9,110, 1,143, 9, 9, 0,144, 9, 9, 0,145, 9, 4, 0,146, 9, 9, 0,147, 9, 9, 0,148, 9, + 9, 0,149, 9,116, 1, 6, 0, 4, 0,124, 0, 4, 0,126, 0, 4, 0,219, 7, 0, 0,150, 9, 0, 0,151, 9, 2, 0, 37, 0, +117, 1, 16, 0, 2, 0,173, 7, 2, 0,174, 7, 2, 0,152, 9, 2, 0,172, 8, 2, 0,153, 9, 2, 0, 68, 0, 7, 0,235, 2, + 7, 0,154, 9, 7, 0,155, 9, 2, 0, 91, 1, 0, 0,156, 9, 0, 0,157, 9, 2, 0,158, 9, 2, 0, 37, 0, 4, 0,159, 9, + 4, 0,160, 9,118, 1, 9, 0, 7, 0,161, 9, 7, 0,162, 9, 7, 0,191, 8, 7, 0,109, 0, 7, 0,163, 9, 7, 0, 78, 6, + 2, 0,164, 9, 0, 0,165, 9, 0, 0, 37, 0,119, 1, 4, 0, 7, 0,166, 9, 7, 0,167, 9, 2, 0,164, 9, 2, 0, 37, 0, +120, 1, 3, 0, 7, 0,168, 9, 7, 0,169, 9, 7, 0, 15, 0,121, 1, 7, 0, 0, 0, 5, 2, 2, 0,249, 4, 2, 0,250, 4, + 2, 0,251, 4, 2, 0,189, 4, 4, 0,126, 0, 4, 0, 34, 4,122, 1, 7, 0, 7, 0,170, 9, 7, 0,171, 9, 7, 0,172, 9, + 7, 0, 85, 2, 7, 0,173, 9, 7, 0,174, 9, 7, 0,175, 9,123, 1, 4, 0, 2, 0,176, 9, 2, 0,177, 9, 2, 0,178, 9, + 2, 0,179, 9,124, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,125, 1, 2, 0, 0, 0,166, 0, 0, 0,180, 9,126, 1, 1, 0, + 0, 0, 20, 0,127, 1, 10, 0, 0, 0,181, 9, 0, 0,182, 9, 0, 0, 71, 6, 0, 0,183, 9, 2, 0,152, 9, 2, 0,184, 9, + 7, 0,185, 9, 7, 0,186, 9, 7, 0,187, 9, 7, 0, 93, 9,128, 1, 2, 0, 9, 0,188, 9, 9, 0,189, 9,129, 1, 11, 0, + 0, 0,251, 4, 0, 0, 17, 0, 0, 0,164, 9, 0, 0,109, 0, 0, 0,190, 9, 0, 0,106, 0, 0, 0, 70, 2, 7, 0,191, 9, + 7, 0,192, 9, 7, 0,193, 9, 7, 0,194, 9,130, 1, 8, 0, 7, 0, 82, 8, 7, 0,125, 0, 7, 0,157, 9, 7, 0,157, 2, + 7, 0,195, 9, 7, 0,236, 0, 7, 0,196, 9, 4, 0, 17, 0,131, 1, 4, 0, 2, 0,197, 9, 2, 0,198, 9, 2, 0,199, 9, + 2, 0, 37, 0,132, 1, 1, 0, 0, 0, 20, 0,133, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 19, 0, 2, 0,200, 9, +134, 1, 10, 0, 2, 0,222, 3, 2, 0, 19, 0, 7, 0,120, 4, 7, 0,201, 9, 7, 0,202, 9, 7, 0,203, 9, 7, 0,204, 9, +133, 1,205, 9,133, 1,206, 9,133, 1,207, 9, 63, 0, 9, 0, 4, 0, 19, 0, 4, 0, 64, 0, 24, 0,208, 9, 24, 0,209, 9, +134, 1,210, 9, 7, 0,211, 9, 7, 0,212, 9, 7, 0,213, 9, 7, 0,214, 9,135, 1, 4, 0, 47, 0,229, 2, 7, 0,215, 9, + 7, 0,170, 1, 7, 0, 37, 0,191, 0, 17, 0, 27, 0, 31, 0,135, 1,216, 9, 63, 0,205, 9, 51, 0,134, 1, 2, 0, 19, 0, + 2, 0,230, 5, 4, 0,106, 0, 7, 0,217, 9, 7, 0, 82, 2, 4, 0,218, 9, 7, 0,219, 9, 7, 0,220, 9, 7, 0,221, 9, + 7, 0,170, 1, 2, 0,104, 1, 0, 0,222, 9, 0, 0,210, 6,136, 1, 10, 0, 4, 0, 17, 0, 4, 0,125, 0, 4, 0, 19, 0, + 4, 0,177, 3, 4, 0,223, 9, 4, 0,224, 9, 4, 0,225, 9, 0, 0, 92, 0, 0, 0, 20, 0, 9, 0, 2, 0, 91, 0, 6, 0, +136, 1,226, 9, 4, 0,227, 9, 4, 0,228, 9, 4, 0,229, 9, 4, 0, 37, 0, 9, 0,230, 9,137, 1, 5, 0, 7, 0,152, 2, + 7, 0,219, 2, 7, 0, 36, 2, 2, 0,128, 2, 2, 0, 37, 0,138, 1, 5, 0, 7, 0,152, 2, 7, 0,231, 9, 7, 0,232, 9, + 7, 0,233, 9, 7, 0,219, 2,139, 1, 5, 0, 32, 0,234, 9,140, 1, 22, 0, 7, 0,203, 5, 7, 0,235, 9, 7, 0, 57, 0, +141, 1, 7, 0, 4, 0,236, 9, 4, 0,237, 9, 4, 0,238, 9, 7, 0,239, 9, 7, 0,240, 9, 7, 0,241, 9, 7, 0, 57, 0, +142, 1, 8, 0,142, 1, 0, 0,142, 1, 1, 0, 32, 0, 45, 0, 4, 0,255, 0, 2, 0, 19, 0, 2, 0, 69, 1, 7, 0,219, 2, + 7, 0, 90, 8,143, 1, 6, 0,143, 1, 0, 0,143, 1, 1, 0, 32, 0, 45, 0, 2, 0,204, 2, 2, 0, 19, 0, 2, 0,242, 9, +144, 1, 18, 0,138, 1,171, 3,138, 1,243, 9,137, 1,244, 9,138, 1, 74, 8,139, 1,245, 9, 4, 0, 82, 0, 7, 0,219, 2, + 7, 0,246, 2, 7, 0,246, 9, 4, 0,236, 9, 4, 0,247, 9, 7, 0,240, 9, 7, 0,241, 9, 7, 0,106, 0, 2, 0, 19, 0, + 2, 0,248, 9, 2, 0,249, 9, 2, 0,250, 9,145, 1,110, 0, 27, 0, 31, 0, 39, 0, 75, 0,146, 1,251, 9,169, 0, 56, 4, + 4, 0, 19, 0, 2, 0, 17, 0, 2, 0, 74, 9, 2, 0,252, 9, 2, 0,253, 9, 2, 0,137, 3, 2, 0,254, 9, 2, 0,255, 9, + 2, 0, 0, 10, 2, 0, 1, 10, 2, 0, 2, 10, 2, 0, 3, 10, 2, 0, 4, 10, 2, 0,238, 4, 2, 0,115, 5, 2, 0, 5, 10, + 2, 0, 6, 10, 2, 0, 7, 10, 2, 0, 8, 10, 2, 0, 9, 10, 2, 0, 25, 2, 2, 0, 67, 8, 2, 0, 42, 8, 2, 0, 10, 10, + 2, 0, 11, 10, 2, 0,187, 3, 2, 0,188, 3, 2, 0, 12, 10, 2, 0, 13, 10, 2, 0, 14, 10, 2, 0, 15, 10, 7, 0, 16, 10, + 7, 0, 17, 10, 7, 0, 18, 10, 2, 0, 19, 10, 2, 0, 20, 10, 7, 0, 21, 10, 7, 0, 22, 10, 7, 0, 23, 10, 7, 0, 49, 8, + 7, 0, 89, 0, 7, 0,246, 2, 7, 0, 55, 8, 7, 0, 24, 10, 7, 0, 25, 10, 7, 0, 26, 10, 4, 0, 50, 8, 4, 0, 48, 8, + 4, 0, 27, 10, 7, 0, 51, 8, 7, 0, 52, 8, 7, 0, 53, 8, 7, 0, 28, 10, 7, 0, 29, 10, 7, 0, 30, 10, 7, 0, 31, 10, + 7, 0, 32, 10, 7, 0, 57, 0, 7, 0, 33, 10, 7, 0, 34, 10, 7, 0, 35, 10, 7, 0, 36, 10, 7, 0,128, 3, 7, 0,106, 0, + 7, 0, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10, 7, 0, 42, 10, 7, 0, 43, 10, 4, 0, 44, 10, + 4, 0, 45, 10, 7, 0, 46, 10, 7, 0, 47, 10, 7, 0, 48, 10, 7, 0, 49, 10, 7, 0, 50, 10, 7, 0,210, 0, 7, 0, 51, 10, + 7, 0,213, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10, 7, 0, 55, 10, 7, 0, 56, 10, + 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, 7, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, 7, 0, 63, 10, 7, 0, 64, 10, + 4, 0, 65, 10, 4, 0, 66, 10, 67, 0,160, 3, 12, 0, 67, 10, 67, 0, 68, 10, 32, 0, 69, 10, 32, 0, 70, 10, 36, 0, 80, 0, +164, 0, 61, 1,164, 0, 71, 10,148, 0, 44, 0,148, 0, 0, 0,148, 0, 1, 0,145, 1, 72, 10,144, 1, 73, 10,141, 1,237, 8, +171, 0,238, 3, 9, 0,239, 3,147, 1, 74, 10,147, 1, 75, 10, 12, 0, 76, 10, 12, 0, 77, 10,133, 0, 78, 10,141, 0, 79, 10, +141, 0, 80, 10, 32, 0, 81, 10, 32, 0, 82, 10, 32, 0, 38, 0, 12, 0, 41, 9, 0, 0, 20, 0, 7, 0,240, 0, 7, 0, 17, 3, + 7, 0, 83, 10, 4, 0,193, 2, 4, 0, 57, 0, 4, 0, 19, 0, 4, 0, 50, 8, 4, 0, 84, 10, 4, 0, 85, 10, 4, 0, 86, 10, + 2, 0,247, 0, 2, 0, 87, 10, 2, 0, 88, 10, 2, 0, 89, 10, 0, 0, 90, 10, 2, 0, 91, 10, 2, 0, 92, 10, 2, 0, 93, 10, + 9, 0, 94, 10,137, 0, 55, 4, 12, 0, 4, 3, 12, 0, 95, 10,148, 1, 96, 10,149, 1, 97, 10, 7, 0, 98, 10,135, 0, 35, 0, +150, 1,192, 8, 7, 0, 25, 4, 7, 0, 99, 10, 7, 0,100, 10, 7, 0,123, 4, 7, 0,101, 10, 7, 0,138, 3, 7, 0,128, 3, + 7, 0,102, 10, 7, 0, 84, 2, 7, 0,103, 10, 7, 0,104, 10, 7, 0,105, 10, 7, 0,106, 10, 7, 0,107, 10, 7, 0,108, 10, + 7, 0, 26, 4, 7, 0,109, 10, 7, 0,110, 10, 7, 0,111, 10, 7, 0, 27, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0,112, 10, + 4, 0,113, 10, 4, 0, 90, 0, 4, 0,114, 10, 4, 0,115, 10, 2, 0,116, 10, 2, 0,117, 10, 2, 0,118, 10, 2, 0,119, 10, + 2, 0,120, 10, 2, 0,121, 10,169, 0, 56, 4,136, 0, 8, 0,150, 1,122, 10, 7, 0,123, 10, 7, 0,124, 10, 7, 0,242, 1, + 7, 0,125, 10, 4, 0, 90, 0, 2, 0,126, 10, 2, 0,127, 10,151, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, + 7, 0,128, 10,152, 1, 6, 0,152, 1, 0, 0,152, 1, 1, 0,151, 1,229, 8, 4, 0,253, 0, 2, 0,129, 10, 2, 0, 19, 0, +153, 1, 5, 0,153, 1, 0, 0,153, 1, 1, 0, 12, 0,130, 10, 4, 0,131, 10, 4, 0, 19, 0,154, 1, 9, 0,154, 1, 0, 0, +154, 1, 1, 0, 12, 0,124, 0,153, 1,132, 10, 4, 0, 19, 0, 2, 0,129, 10, 2, 0,133, 10, 7, 0, 91, 0, 0, 0,134, 10, +162, 0, 6, 0, 27, 0, 31, 0, 12, 0, 11, 5, 4, 0, 19, 0, 2, 0,135, 10, 2, 0,136, 10, 9, 0,137, 10,155, 1, 7, 0, +155, 1, 0, 0,155, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, 0, 0,138, 10, 0, 0,139, 10,156, 1, 5, 0, + 12, 0,140, 10, 4, 0,141, 10, 4, 0,142, 10, 4, 0, 19, 0, 4, 0, 37, 0,157, 1, 18, 0, 27, 0, 31, 0,158, 1,143, 10, +158, 1,144, 10, 12, 0,145, 10, 4, 0,146, 10, 2, 0,147, 10, 2, 0, 37, 0, 12, 0,148, 10, 12, 0,149, 10,156, 1,150, 10, + 12, 0,151, 10, 12, 0,152, 10, 12, 0,153, 10,159, 1,154, 10, 4, 0,155, 10, 4, 0, 70, 0, 12, 0,156, 10,211, 0,157, 10, +158, 1, 33, 0,158, 1, 0, 0,158, 1, 1, 0, 9, 0,158, 10, 4, 0,152, 7, 2, 0,159, 10, 2, 0, 37, 0,216, 0, 61, 6, +216, 0,160, 10, 0, 0,161, 10, 2, 0,162, 10, 2, 0,163, 10, 2, 0,173, 7, 2, 0,174, 7, 2, 0,164, 10, 2, 0,165, 10, + 2, 0,177, 3, 2, 0,177, 6, 2, 0,166, 10, 2, 0,167, 10, 2, 0,168, 10, 2, 0,169, 10, 8, 0,170, 10,160, 1,171, 10, +161, 1,172, 10,162, 1,173, 10, 4, 0,174, 10, 4, 0,175, 10, 9, 0,176, 10, 12, 0,149, 10, 12, 0,193, 7, 12, 0,177, 10, + 12, 0,178, 10, 12, 0,179, 10,163, 1, 16, 0,163, 1, 0, 0,163, 1, 1, 0, 0, 0,180, 10, 26, 0, 30, 0, 2, 0,181, 10, + 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,182, 10, 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, 2, 0,186, 10, 2, 0, 19, 0, + 2, 0,187, 10, 2, 0, 70, 2,164, 1,188, 10,165, 1, 10, 0,165, 1, 0, 0,165, 1, 1, 0, 12, 0,189, 10, 0, 0,180, 10, + 2, 0,190, 10, 2, 0,191, 10, 2, 0, 19, 0, 2, 0, 37, 0, 4, 0,192, 10, 9, 0,193, 10,159, 1, 7, 0,159, 1, 0, 0, +159, 1, 1, 0, 0, 0,180, 10, 0, 0,194, 10, 12, 0,110, 7, 4, 0,195, 10, 4, 0, 19, 0,224, 0, 12, 0,224, 0, 0, 0, +224, 0, 1, 0, 0, 0,180, 10, 26, 0, 30, 0,166, 1,167, 7, 9, 0,196, 10,164, 1,188, 10,156, 1,197, 10, 12, 0,198, 10, +224, 0,199, 10, 2, 0, 19, 0, 2, 0,136, 1,160, 1, 23, 0,160, 1, 0, 0,160, 1, 1, 0, 2, 0, 17, 0, 2, 0, 15, 0, + 2, 0, 5, 0, 2, 0, 6, 0, 2, 0,200, 10, 2, 0,201, 10, 2, 0,202, 10, 2, 0,203, 10, 0, 0,204, 10, 0, 0, 37, 0, + 2, 0,182, 10, 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, 2, 0,186, 10, 2, 0, 43, 0, 0, 0,205, 10, 2, 0,206, 10, + 2, 0,207, 10, 4, 0, 70, 0, 9, 0,196, 10,167, 1, 8, 0,167, 1, 0, 0,167, 1, 1, 0, 9, 0, 2, 0, 9, 0,208, 10, + 0, 0,233, 3, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,209, 10,168, 1, 5, 0, 7, 0,210, 10, 4, 0,211, 10, 4, 0,212, 10, + 4, 0, 69, 1, 4, 0, 19, 0,169, 1, 6, 0, 7, 0,213, 10, 7, 0,214, 10, 7, 0,215, 10, 7, 0,216, 10, 4, 0, 17, 0, + 4, 0, 19, 0,170, 1, 5, 0, 7, 0,148, 8, 7, 0,149, 8, 7, 0,219, 2, 2, 0, 39, 2, 2, 0, 40, 2,171, 1, 5, 0, +170, 1, 2, 0, 4, 0, 54, 0, 7, 0,217, 10, 7, 0,148, 8, 7, 0,149, 8,172, 1, 4, 0, 2, 0,218, 10, 2, 0,219, 10, + 2, 0,220, 10, 2, 0,221, 10,173, 1, 2, 0, 42, 0,148, 6, 26, 0,197, 8,174, 1, 3, 0, 24, 0,222, 10, 4, 0, 19, 0, + 4, 0, 37, 0,175, 1, 6, 0, 7, 0,106, 0, 7, 0,221, 2, 7, 0,223, 10, 7, 0, 37, 0, 2, 0,246, 0, 2, 0,224, 10, +176, 1, 5, 0, 7, 0,221, 2, 7, 0, 89, 8, 2, 0,224, 10, 2, 0,136, 1, 15, 1, 5, 8,177, 1, 9, 0,177, 1, 0, 0, +177, 1, 1, 0, 27, 0,151, 6, 0, 0,225, 10, 4, 0,226, 10, 4, 0,227, 10, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,233, 3, +178, 1, 7, 0, 12, 0, 41, 9, 0, 0,228, 10, 9, 0,229, 10, 7, 0, 61, 0, 7, 0,209, 10, 4, 0, 17, 0, 4, 0, 19, 0, +179, 1, 3, 0, 7, 0,230, 10, 4, 0, 19, 0, 4, 0, 37, 0,180, 1, 15, 0,180, 1, 0, 0,180, 1, 1, 0, 79, 1, 27, 9, +178, 1, 62, 0, 12, 0, 96, 3, 35, 0, 50, 0,179, 1,231, 10, 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0, 15, 1, + 4, 0,226, 10, 0, 0,225, 10, 4, 0,232, 10, 7, 0,233, 10,181, 1, 2, 0, 0, 0,234, 10, 0, 0,235, 10,182, 1, 4, 0, +182, 1, 0, 0,182, 1, 1, 0,160, 0, 50, 3, 12, 0,236, 10,183, 1, 24, 0,183, 1, 0, 0,183, 1, 1, 0, 12, 0,237, 10, +160, 0,122, 8,182, 1,238, 10, 12, 0,239, 10, 12, 0, 96, 3, 0, 0,233, 3, 7, 0,209, 10, 7, 0,240, 10, 7, 0, 88, 0, + 7, 0, 89, 0, 7, 0, 89, 9, 7, 0, 90, 9, 7, 0,236, 2, 7, 0, 93, 9, 7, 0,124, 8, 7, 0, 94, 9, 2, 0,241, 10, + 2, 0,242, 10, 2, 0, 43, 0, 2, 0, 17, 0, 4, 0, 19, 0, 4, 0, 70, 0,184, 1, 6, 0,184, 1, 0, 0,184, 1, 1, 0, + 12, 0,237, 10, 4, 0, 19, 0, 4, 0,156, 2, 0, 0,233, 3,185, 1, 10, 0,185, 1, 0, 0,185, 1, 1, 0, 27, 0,151, 6, + 0, 0,243, 10, 4, 0,227, 10, 4, 0,244, 10, 0, 0,225, 10, 4, 0,226, 10, 2, 0, 19, 0, 2, 0,245, 10,186, 1, 7, 0, +186, 1, 0, 0,186, 1, 1, 0, 12, 0,246, 10, 0, 0,233, 3, 2, 0, 19, 0, 2, 0,247, 10, 4, 0,248, 10,187, 1, 5, 0, +187, 1, 0, 0,187, 1, 1, 0, 0, 0,225, 10, 4, 0,226, 10, 7, 0,209, 2, 39, 0, 12, 0,160, 0, 90, 3,160, 0,249, 10, +182, 1,238, 10, 12, 0,250, 10,183, 1,251, 10, 12, 0,252, 10, 12, 0,253, 10, 4, 0, 19, 0, 4, 0,247, 0, 2, 0,254, 10, + 2, 0,255, 10, 7, 0, 0, 11,188, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0,189, 1, 5, 0,189, 1, 0, 0,189, 1, 1, 0, + 4, 0, 17, 0, 4, 0, 19, 0, 0, 0, 20, 0,190, 1, 6, 0,189, 1, 1, 11, 32, 0, 45, 0, 4, 0, 2, 11, 7, 0, 3, 11, + 4, 0, 4, 11, 4, 0, 16, 9,191, 1, 3, 0,189, 1, 1, 11, 4, 0, 2, 11, 7, 0, 5, 11,192, 1, 8, 0,189, 1, 1, 11, + 32, 0, 45, 0, 7, 0, 64, 1, 7, 0, 6, 11, 7, 0, 17, 3, 7, 0,191, 8, 4, 0, 2, 11, 4, 0, 7, 11,193, 1, 5, 0, +189, 1, 1, 11, 7, 0, 8, 11, 7, 0, 7, 8, 7, 0,242, 2, 7, 0, 57, 0,194, 1, 3, 0,189, 1, 1, 11, 7, 0,191, 8, + 7, 0, 9, 11,140, 1, 4, 0, 7, 0, 10, 11, 7, 0, 39, 10, 2, 0, 11, 11, 2, 0, 69, 1,195, 1, 14, 0,195, 1, 0, 0, +195, 1, 1, 0, 12, 0, 12, 11, 12, 0, 13, 11, 12, 0, 14, 11, 0, 0, 20, 0, 4, 0, 31, 0, 4, 0, 19, 0, 4, 0, 15, 11, + 7, 0, 16, 11, 4, 0, 4, 11, 4, 0, 16, 9, 7, 0,242, 3, 7, 0,244, 2,146, 1, 23, 0, 4, 0, 2, 11, 4, 0, 17, 11, + 7, 0, 18, 11, 7, 0, 57, 0, 7, 0, 19, 11, 7, 0,240, 2, 7, 0, 10, 11, 7, 0, 20, 11, 7, 0,221, 2, 7, 0, 21, 11, + 7, 0,120, 4, 7, 0, 22, 11, 7, 0, 23, 11, 7, 0, 24, 11, 7, 0, 25, 11, 7, 0, 26, 11, 7, 0, 27, 11, 7, 0, 28, 11, + 7, 0, 29, 11, 7, 0, 30, 11, 7, 0, 31, 11, 7, 0, 32, 11, 12, 0, 33, 11,121, 0, 34, 0,120, 0, 34, 11,196, 1, 35, 11, + 67, 0, 36, 11, 67, 0, 68, 10, 67, 0, 37, 11,197, 1, 38, 11, 48, 0,165, 0, 48, 0, 39, 11, 48, 0, 40, 11, 7, 0, 41, 11, + 7, 0, 42, 11, 7, 0, 43, 11, 7, 0, 44, 11, 7, 0, 45, 11, 7, 0, 28, 9, 7, 0, 46, 11, 7, 0,170, 1, 7, 0, 47, 11, + 4, 0, 48, 11, 4, 0, 49, 11, 4, 0, 50, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0, 51, 11, 2, 0, 52, 11, 2, 0, 53, 11, + 4, 0, 54, 11, 7, 0,221, 2, 4, 0, 55, 11, 7, 0, 56, 11, 4, 0, 57, 11,137, 0, 58, 11, 12, 0, 59, 11,169, 0, 56, 4, +122, 0, 11, 0,120, 0, 34, 11,148, 0, 34, 3, 7, 0,137, 1, 7, 0, 28, 9, 7, 0, 60, 11, 7, 0, 61, 11, 2, 0, 62, 11, + 2, 0, 63, 11, 2, 0, 64, 11, 2, 0, 17, 0, 4, 0, 37, 0,123, 0, 13, 0,120, 0, 34, 11,139, 0, 14, 3,141, 0, 16, 3, + 7, 0,229, 8, 7, 0, 65, 11, 7, 0, 66, 11, 7, 0, 66, 1, 7, 0, 67, 11, 4, 0, 50, 9, 4, 0, 12, 3, 2, 0, 17, 0, 2, 0, 37, 0, 4, 0, 70, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -- cgit v1.2.3 From 7e7e1018acfb23f0e10d4ae051d002a6516b8d83 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 11 Dec 2009 08:05:05 +0000 Subject: Added back rendered animation playback (in a sense), with a customisable player. You can choose a player in User Preferences -> File Paths. You can choose a plan custom command line, otherwise there are presets available for the Blender 2.4 player or DJV (where it will give it the correct filename, fps, etc on the command line). So for example if you have a Blender 2.4 version installed, you can enter the path to the blender 2.4 executable, and the playback will work just like before. Any info on other frame players (FrameCycler? pdplayer?) and their command line settings could be useful for adding some more presets too, if anyone knows of them. It's available in Render->Play Rendered Animation (Ctrl F11) --- source/blender/editors/screen/screen_ops.c | 1 + source/blender/makesdna/DNA_userdef_types.h | 7 ++++--- source/blender/makesrna/intern/rna_userdef.c | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index b67001a454c..fe2bc58faf2 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3877,6 +3877,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf) RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_render", F12KEY, KM_PRESS, KM_CTRL, 0)->ptr, "animation", 1); WM_keymap_add_item(keymap, "SCREEN_OT_render_view_cancel", ESCKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SCREEN_OT_render_view_show", F11KEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "SCREEN_OT_play_rendered_anim", F11KEY, KM_PRESS, KM_CTRL, 0); /* user prefs */ #ifdef __APPLE__ diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 82e6cebe71e..c6b1bf0b3f6 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -286,10 +286,11 @@ typedef struct UserDef { char plugseqdir[160]; char pythondir[160]; char sounddir[160]; - /* yafray: temporary xml export directory */ - char yfexportdir[160]; + char anim_player[240]; // FILE_MAX length + int anim_player_preset; + int pad; + short versions; - short dbl_click_time; int gameflags; diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index f695936d47c..21e601c3ba3 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2358,6 +2358,13 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) PropertyRNA *prop; StructRNA *srna; + static EnumPropertyItem anim_player_presets[] = { + //{0, "INTERNAL", 0, "Internal", "Built-in animation player"}, // doesn't work yet! + {0, "BLENDER24", 0, "Blender 2.4", "Blender command line animation playback - path to Blender 2.4"}, + {2, "DJV", 0, "Djv", "Open source frame player: http://djv.sourceforge.net"}, + {3, "CUSTOM", 0, "Custom", "Custom animation player executable path"}, + {0, NULL, 0, NULL, NULL}}; + srna= RNA_def_struct(brna, "UserPreferencesFilePaths", NULL); RNA_def_struct_sdna(srna, "UserDef"); RNA_def_struct_nested(brna, srna, "UserPreferences"); @@ -2414,7 +2421,16 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) prop= RNA_def_property(srna, "temporary_directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "tempdir"); RNA_def_property_ui_text(prop, "Temporary Directory", "The directory for storing temporary save files."); + + prop= RNA_def_property(srna, "animation_player", PROP_STRING, PROP_DIRPATH); + RNA_def_property_string_sdna(prop, NULL, "anim_player"); + RNA_def_property_ui_text(prop, "Animation Player", "Path to a custom animation/frame sequence player."); + prop= RNA_def_property(srna, "animation_player_preset", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "anim_player_preset"); + RNA_def_property_enum_items(prop, anim_player_presets); + RNA_def_property_ui_text(prop, "Animation Player Preset", "Preset configs for external animation players"); + /* Autosave */ prop= RNA_def_property(srna, "save_version", PROP_INT, PROP_NONE); -- cgit v1.2.3 From 89b6d94e387d4b127dfa7095146b641053a01617 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 11 Dec 2009 10:56:20 +0000 Subject: Sculpt Branch: multires conversion from 2.4 working again. --- source/blender/blenkernel/intern/CCGSubSurf.c | 42 +++++++++++++++ source/blender/blenkernel/intern/CCGSubSurf.h | 1 + source/blender/blenkernel/intern/multires.c | 76 ++++++++++++++++++++++++--- source/blender/blenloader/intern/readfile.c | 20 +++---- 4 files changed, 122 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c index 4bd0586c592..dc863869ad8 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.c +++ b/source/blender/blenkernel/intern/CCGSubSurf.c @@ -2188,6 +2188,48 @@ CCGError ccgSubSurf_updateFromFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF return eCCGError_None; } +/* copy other places to face grid coordinates */ +CCGError ccgSubSurf_updateToFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, int numEffectedF) +{ + int i, S, x, gridSize, cornerIdx, subdivLevels; + int vertDataSize = ss->meshIFC.vertDataSize, freeF; + + subdivLevels = ss->subdivLevels; + lvl = (lvl)? lvl: subdivLevels; + gridSize = 1 + (1<<(lvl-1)); + cornerIdx = gridSize-1; + + ccgSubSurf__allFaces(ss, &effectedF, &numEffectedF, &freeF); + + for (i=0; inumVerts; S++) { + int prevS = (S+f->numVerts-1)%f->numVerts; + CCGEdge *e = FACE_getEdges(f)[S]; + CCGEdge *prevE = FACE_getEdges(f)[prevS]; + + for (x=0; xss; + DMGridData *vd; + int index; + int totvert, totedge, totface; + int gridSize = ccgSubSurf_getGridSize(ss); + int edgeSize = ccgSubSurf_getEdgeSize(ss); + int i = 0; + + totface = ccgSubSurf_getNumFaces(ss); + for(index = 0; index < totface; index++) { + CCGFace *f = ccgdm->faceMap[index].face; + int x, y, S, numVerts = ccgSubSurf_getFaceNumVerts(f); + + vd= ccgSubSurf_getFaceCenterData(f); + copy_v3_v3(vd->co, mvert[i].co); + i++; + + for(S = 0; S < numVerts; S++) { + for(x = 1; x < gridSize - 1; x++, i++) { + vd= ccgSubSurf_getFaceGridEdgeData(ss, f, S, x); + copy_v3_v3(vd->co, mvert[i].co); + } + } + + for(S = 0; S < numVerts; S++) { + for(y = 1; y < gridSize - 1; y++) { + for(x = 1; x < gridSize - 1; x++, i++) { + vd= ccgSubSurf_getFaceGridData(ss, f, S, x, y); + copy_v3_v3(vd->co, mvert[i].co); + } + } + } + } + + totedge = ccgSubSurf_getNumEdges(ss); + for(index = 0; index < totedge; index++) { + CCGEdge *e = ccgdm->edgeMap[index].edge; + int x; + + for(x = 1; x < edgeSize - 1; x++, i++) { + vd= ccgSubSurf_getEdgeData(ss, e, x); + copy_v3_v3(vd->co, mvert[i].co); + } + } + + totvert = ccgSubSurf_getNumVerts(ss); + for(index = 0; index < totvert; index++) { + CCGVert *v = ccgdm->vertMap[index].vert; + + vd= ccgSubSurf_getVertData(ss, v); + copy_v3_v3(vd->co, mvert[i].co); + i++; + } + + ccgSubSurf_updateToFaces(ss, 0, NULL, 0); +} + /* Loads a multires object stored in the old Multires struct into the new format */ -static void multires_load_old_dm(DerivedMesh *dm, Multires *mr, int totlvl) +static void multires_load_old_dm(DerivedMesh *dm, Mesh *me, int totlvl) { MultiresLevel *lvl, *lvl1; + Multires *mr= me->mr; MVert *vsrc, *vdst; int src, dst; int st = multires_side_tot[totlvl - 1] - 1; @@ -976,7 +1036,7 @@ static void multires_load_old_dm(DerivedMesh *dm, Multires *mr, int totlvl) src = 0; dst = 0; vsrc = mr->verts; - vdst = CDDM_get_verts(dm); + vdst = dm->getVertArray(dm); totvert = dm->getNumVerts(dm); vvmap = MEM_callocN(sizeof(int) * totvert, "multires vvmap"); @@ -1123,13 +1183,13 @@ static void multires_load_old_dm(DerivedMesh *dm, Multires *mr, int totlvl) copy_v3_v3(vdst[i].co, vsrc[vvmap[i]].co); MEM_freeN(vvmap); + + multires_old_mvert_to_ss(dm, vdst); } -#endif + void multires_load_old(Object *ob, Mesh *me) { - /* XXX not implemented */ -#if 0 MultiresLevel *lvl; ModifierData *md; MultiresModifierData *mmd; @@ -1173,14 +1233,14 @@ void multires_load_old(Object *ob, Mesh *me) orig = CDDM_from_mesh(me, NULL); dm = multires_dm_create_from_derived(mmd, 0, orig, ob, 0, 0); - multires_load_old_dm(dm, me->mr, mmd->totlvl); + multires_load_old_dm(dm, me, mmd->totlvl+1); multires_dm_mark_as_modified(dm); dm->release(dm); orig->release(orig); -#endif /* Remove the old multires */ multires_free(me->mr); + me->mr= NULL; } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 039f8c60201..d6d43eacd85 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10133,17 +10133,19 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if(!sce->toolsettings->particle.selectmode) sce->toolsettings->particle.selectmode= SCE_SELECT_PATH; - for(me=main->mesh.first; me; me=me->id.next) - multires_load_old_250(me); + if (main->versionfile == 250 && main->subversionfile > 1) { + for(me=main->mesh.first; me; me=me->id.next) + multires_load_old_250(me); - for(ob=main->object.first; ob; ob=ob->id.next) { - MultiresModifierData *mmd = (MultiresModifierData *)modifiers_findByType(ob, eModifierType_Multires); + for(ob=main->object.first; ob; ob=ob->id.next) { + MultiresModifierData *mmd = (MultiresModifierData *)modifiers_findByType(ob, eModifierType_Multires); - if(mmd) { - mmd->totlvl--; - mmd->lvl--; - mmd->sculptlvl= mmd->lvl; - mmd->renderlvl= mmd->lvl; + if(mmd) { + mmd->totlvl--; + mmd->lvl--; + mmd->sculptlvl= mmd->lvl; + mmd->renderlvl= mmd->lvl; + } } } } -- cgit v1.2.3 From fba99b627b001177590e73471f0b0f29a832bc14 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 11 Dec 2009 11:18:55 +0000 Subject: Timeline Drawing Tweaks: * Made the TimeLine current frame indicator get drawn using the standard frame-indicator code. Also, it is now possible to show the frame indicator box beside the line as in the other animation editors, although this is disabled in the timeline due to the closeness of the frame number field. * Removed some old (unnecessary) code -> "Continue Physics" option in TimeLine, which is now obsolete with the current physics options. Feel free to restore if this is not the case. -> Already commented out hacks to create "speed ipo" for curves. There are easy alternatives that are better integrated. -> Unused init/exit callbacks for scrubbing time, since those were only used to set an obsolete flag for timeline drawing that is now used for the indicator. * Switched long-keyframe optimisation code to use constants instead of some magic numbers + fancy trickery... --- source/blender/editors/animation/anim_ops.c | 54 +---------------------- source/blender/editors/animation/keyframes_draw.c | 8 ++-- source/blender/editors/curve/editcurve.c | 39 ---------------- source/blender/editors/space_time/space_time.c | 28 +++--------- source/blender/makesdna/DNA_space_types.h | 2 +- source/blender/makesrna/intern/rna_space.c | 14 +++--- 6 files changed, 18 insertions(+), 127 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c index 6c8a982b323..6aa638b1ada 100644 --- a/source/blender/editors/animation/anim_ops.c +++ b/source/blender/editors/animation/anim_ops.c @@ -74,25 +74,6 @@ static int change_frame_poll(bContext *C) return ((curarea) && (curarea->spacetype != SPACE_IPO)); } -/* Set any flags that are necessary to indicate modal time-changing operation */ -static int change_frame_init(bContext *C, wmOperator *op) -{ - ScrArea *curarea= CTX_wm_area(C); - - if (curarea == NULL) - return 0; - - if (curarea->spacetype == SPACE_TIME) { - SpaceTime *stime= CTX_wm_space_time(C); - - /* timeline displays frame number only when dragging indicator */ - // XXX make this more in line with other anim editors? - stime->flag |= TIME_CFRA_NUM; - } - - return 1; -} - /* Set the new frame number */ static void change_frame_apply(bContext *C, wmOperator *op) { @@ -106,33 +87,12 @@ static void change_frame_apply(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); } -/* Clear any temp flags */ -static void change_frame_exit(bContext *C, wmOperator *op) -{ - ScrArea *curarea= CTX_wm_area(C); - - if (curarea == NULL) - return; - - if (curarea->spacetype == SPACE_TIME) { - SpaceTime *stime= CTX_wm_space_time(C); - - /* timeline displays frame number only when dragging indicator */ - // XXX make this more in line with other anim editors? - stime->flag &= ~TIME_CFRA_NUM; - } -} - /* ---- */ /* Non-modal callback for running operator without user input */ static int change_frame_exec(bContext *C, wmOperator *op) { - if (!change_frame_init(C, op)) - return OPERATOR_CANCELLED; - change_frame_apply(C, op); - change_frame_exit(C, op); return OPERATOR_FINISHED; } @@ -166,7 +126,6 @@ static int change_frame_invoke(bContext *C, wmOperator *op, wmEvent *event) */ RNA_int_set(op->ptr, "frame", frame_from_event(C, event)); - change_frame_init(C, op); change_frame_apply(C, op); /* add temp handler */ @@ -175,20 +134,12 @@ static int change_frame_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_RUNNING_MODAL; } -/* In case modal operator is cancelled */ -static int change_frame_cancel(bContext *C, wmOperator *op) -{ - change_frame_exit(C, op); - return OPERATOR_CANCELLED; -} - /* Modal event handling of frame changing */ static int change_frame_modal(bContext *C, wmOperator *op, wmEvent *event) { /* execute the events */ switch (event->type) { case ESCKEY: - change_frame_exit(C, op); return OPERATOR_FINISHED; case MOUSEMOVE: @@ -201,10 +152,8 @@ static int change_frame_modal(bContext *C, wmOperator *op, wmEvent *event) /* we check for either mouse-button to end, as checking for ACTIONMOUSE (which is used to init * the modal op) doesn't work for some reason */ - if (event->val==KM_RELEASE) { - change_frame_exit(C, op); + if (event->val==KM_RELEASE) return OPERATOR_FINISHED; - } break; } @@ -221,7 +170,6 @@ void ANIM_OT_change_frame(wmOperatorType *ot) /* api callbacks */ ot->exec= change_frame_exec; ot->invoke= change_frame_invoke; - ot->cancel= change_frame_cancel; ot->modal= change_frame_modal; ot->poll= change_frame_poll; diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 4fd9295792b..b19ee5d1dab 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -170,6 +170,9 @@ static void add_bezt_to_keycolumns_list(DLRBT_Tree *keys, BezTriple *bezt) /* ActBeztColumns (Helpers for Long Keyframes) ------------------------------ */ +/* maximum size of default buffer for BezTriple columns */ +#define MAX_ABK_BUFSIZE 4 + /* BezTriple Container Node */ // NOTE: only used internally while building Long Keyframes for now, but may be useful externally? typedef struct ActBeztColumn { @@ -187,7 +190,7 @@ typedef struct ActBeztColumn { short numBezts; /* number of BezTriples on this frame */ float cfra; /* frame that the BezTriples occur on */ - BezTriple *bezts[4]; /* buffer of pointers to BezTriples on the same frame */ + BezTriple *bezts[MAX_ABK_BUFSIZE]; /* buffer of pointers to BezTriples on the same frame */ //BezTriple **bezts_extra; /* secondary buffer of pointers if need be */ } ActBeztColumn; @@ -227,9 +230,8 @@ static void nupdate_abk_bezt (void *node, void *data) BezTriple *bezt= (BezTriple *)data; /* just add the BezTriple to the buffer if there's space, or allocate a new one */ - if (abk->numBezts >= sizeof(abk->bezts)/sizeof(BezTriple)) { + if (abk->numBezts >= MAX_ABK_BUFSIZE) { // TODO: need to allocate new array to cater... - // FIXME: urgent... is a problem when working with duplicate keyframes //bezts_extra= MEM_callocN(...); if(G.f & G_DEBUG) printf("FIXME: nupdate_abk_bezt() missing case for too many overlapping BezTriples \n"); diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index aeeb8dffa28..a109e9149cf 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -5285,42 +5285,3 @@ void undo_push_curve(bContext *C, char *name) { undo_editmode_push(C, name, get_data, free_undoCurve, undoCurve_to_editCurve, editCurve_to_undoCurve, NULL); } - -/***************** XXX old cruft ********************/ - -void default_curve_ipo(Scene *scene, Curve *cu) -{ -#if 0 // XXX old animation system - IpoCurve *icu; - BezTriple *bezt; - - if(cu->ipo) return; - - cu->ipo= add_ipo(scene, "CurveIpo", ID_CU); - - icu= MEM_callocN(sizeof(IpoCurve), "ipocurve"); - - icu->blocktype= ID_CU; - icu->adrcode= CU_SPEED; - icu->flag= IPO_VISIBLE|IPO_SELECT|IPO_AUTO_HORIZ; - set_icu_vars(icu); - - BLI_addtail( &(cu->ipo->curve), icu); - - icu->bezt= bezt= MEM_callocN(2*sizeof(BezTriple), "defaultipo"); - icu->totvert= 2; - - bezt->hide= IPO_BEZ; - bezt->f1=bezt->f2= bezt->f3= SELECT; - bezt->h1= bezt->h2= HD_AUTO; - bezt++; - bezt->vec[1][0]= 100.0; - bezt->vec[1][1]= 1.0; - bezt->hide= IPO_BEZ; - bezt->f1=bezt->f2= bezt->f3= SELECT; - bezt->h1= bezt->h2= HD_AUTO; - - calchandles_ipocurve(icu); -#endif // XXX old animation system -} - diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 59314fba48e..eea5891a720 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -45,6 +45,7 @@ #include "BKE_screen.h" #include "BKE_utildefines.h" +#include "ED_anim_api.h" #include "ED_keyframes_draw.h" #include "ED_space_api.h" #include "ED_screen.h" @@ -66,27 +67,6 @@ /* ************************ main time area region *********************** */ -/* draws a current frame indicator for the TimeLine */ -static void time_draw_cfra_time(const bContext *C, SpaceTime *stime, ARegion *ar) -{ - Scene *scene= CTX_data_scene(C); - float vec[2]; - - vec[0]= scene->r.cfra*scene->r.framelen; - - UI_ThemeColor(TH_CFRAME); // no theme, should be global color once... - glLineWidth(3.0); - - glBegin(GL_LINES); - vec[1]= ar->v2d.cur.ymin; - glVertex2fv(vec); - vec[1]= ar->v2d.cur.ymax; - glVertex2fv(vec); - glEnd(); - - glLineWidth(1.0); -} - static void time_draw_sfra_efra(const bContext *C, SpaceTime *stime, ARegion *ar) { View2D *v2d= UI_view2d_fromcontext(C); @@ -218,8 +198,8 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) View2D *v2d= &ar->v2d; View2DGrid *grid; View2DScrollers *scrollers; + int unit, flag=0; float col[3]; - int unit; /* clear and setup matrix */ UI_GetThemeColor3fv(TH_BACK, col); @@ -241,7 +221,9 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) time_draw_keyframes(C, stime, ar); /* current frame */ - time_draw_cfra_time(C, stime, ar); + if ((stime->flag & TIME_DRAWFRAMES)==0) flag |= DRAWCFRA_UNIT_SECONDS; + if (stime->flag & TIME_CFRA_NUM) flag |= DRAWCFRA_SHOW_NUMBOX; + ANIM_draw_cfra(C, v2d, flag); /* markers */ UI_view2d_view_orthoSpecial(C, v2d, 1); diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 7a76417fe4b..49893e9c015 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -825,7 +825,7 @@ enum { /* time->flag */ /* show timing in frames instead of in seconds */ #define TIME_DRAWFRAMES 1 - /* temporary flag set when scrubbing time */ + /* show time indicator box beside the frame number */ #define TIME_CFRA_NUM 2 /* only keyframes from active/selected channels get shown */ #define TIME_ONLYACTSEL 4 diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 9f8d5278a27..20ef8519bb2 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1458,7 +1458,6 @@ static void rna_def_space_time(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Space Timeline Editor", "Timeline editor space data."); /* Define Anim Playback Areas */ - prop= RNA_def_property(srna, "play_top_left", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_REGION); RNA_def_property_ui_text(prop, "Top-Left 3D Window", ""); @@ -1494,17 +1493,16 @@ static void rna_def_space_time(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Node Windows", ""); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, "rna_SpaceTime_redraw_update"); - /* Other options */ - - prop= RNA_def_property(srna, "continue_physics", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_CONTINUE_PHYSICS); - RNA_def_property_ui_text(prop, "Continue Physics", "During playblack, continue physics simulations regardless of the frame number"); - RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, NULL); - + /* Other options */ prop= RNA_def_property(srna, "only_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", TIME_ONLYACTSEL); RNA_def_property_ui_text(prop, "Only Selected channels", "Show keyframes only from active/selected channels."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, NULL); + + prop= RNA_def_property(srna, "show_cframe_indicator", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", TIME_CFRA_NUM); + RNA_def_property_ui_text(prop, "Show Frame Number Indicator", "Show frame number beside the current frame indicator line."); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, NULL); } static void rna_def_console_line(BlenderRNA *brna) -- cgit v1.2.3 From c6ffe237629b771f86eb92c755b0897e3a2233e0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 11 Dec 2009 14:16:17 +0000 Subject: Sculpt Branch: * Added detection if VBO extension is supported. * Redraw other 3d views after sculpting. * Fix brush sometimes punching through mesh with very small polygons, added an extra epsilon to the ray-triangle intersection. --- source/blender/blenlib/BLI_pbvh.h | 6 +++--- source/blender/blenlib/intern/pbvh.c | 28 +++++++++++----------------- source/blender/editors/sculpt_paint/sculpt.c | 2 ++ source/blender/gpu/intern/gpu_buffers.c | 10 +++++++--- 4 files changed, 23 insertions(+), 23 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h index e1e733c91df..12c13de183c 100644 --- a/source/blender/blenlib/BLI_pbvh.h +++ b/source/blender/blenlib/BLI_pbvh.h @@ -88,9 +88,9 @@ typedef enum { PBVH_UpdateNormals = 2, PBVH_UpdateBB = 4, - PBVH_UpdateOriginalBB = 4, - PBVH_UpdateDrawBuffers = 8, - PBVH_UpdateRedraw = 16 + PBVH_UpdateOriginalBB = 8, + PBVH_UpdateDrawBuffers = 16, + PBVH_UpdateRedraw = 32 } PBVHNodeFlags; void BLI_pbvh_node_mark_update(PBVHNode *node); diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index 960888260ce..f0464438b68 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -1142,8 +1142,8 @@ static int ray_face_intersection(float ray_start[3], float ray_normal[3], { float dist = FLT_MAX; - if(!isect_ray_tri_v3(ray_start, ray_normal, t0, t1, t2, - &dist, NULL)) + if(!isect_ray_tri_threshold_v3(ray_start, ray_normal, t0, t1, t2, + &dist, NULL, 0.001f)) dist = FLT_MAX; if(dist >= 0 && dist < *fdist) { @@ -1232,32 +1232,26 @@ int BLI_pbvh_node_raycast(PBVH *bvh, PBVHNode *node, float (*origco)[3], return hit; } -#if 0 -static int nodes_drawn = 0; -static int is_partial = 0; -/* XXX: Just a temporary replacement for the real drawing code */ -static void draw_partial_cb(PBVHNode *node, void *data) +//#include +void BLI_pbvh_node_draw(PBVHNode *node, void *data) +{ +#if 0 /* XXX: Just some quick code to show leaf nodes in different colors */ - /*float col[3]; int i; - if(is_partial) { + float col[3]; int i; + + if(0) { //is_partial) { col[0] = (rand() / (float)RAND_MAX); col[1] = col[2] = 0.6; } else { - srand((long long)data_v); + srand((long long)node); for(i = 0; i < 3; ++i) col[i] = (rand() / (float)RAND_MAX) * 0.3 + 0.7; } glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, col); - glColor3f(1, 0, 0);*/ - GPU_draw_buffers(BLI_pbvh_node_get_draw_buffers(node)); - ++nodes_drawn; -} + glColor3f(1, 0, 0); #endif - -void BLI_pbvh_node_draw(PBVHNode *node, void *data) -{ GPU_draw_buffers(node->draw_buffers); } diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index c715dc97cde..8b705ff5b5e 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -2054,6 +2054,8 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke) BLI_pbvh_update(ss->tree, PBVH_UpdateOriginalBB, NULL); if(ss->refkb) sculpt_key_to_mesh(ss->refkb, ob); + + WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); } } diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index af220487ab1..33aa4168ff8 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -457,10 +457,12 @@ void *GPU_build_mesh_buffers(GHash *map, MVert *mvert, MFace *mface, /* Count the number of triangles */ for(i = 0, tottri = 0; i < totface; ++i) tottri += mface[face_indices[i]].v4 ? 2 : 1; + + if(GL_ARB_vertex_buffer_object) + glGenBuffersARB(1, &buffers->index_buf); if(buffers->index_buf) { /* Generate index buffer object */ - glGenBuffersARB(1, &buffers->index_buf); glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(unsigned short) * tottri * 3, NULL, GL_STATIC_DRAW_ARB); @@ -503,7 +505,7 @@ void *GPU_build_mesh_buffers(GHash *map, MVert *mvert, MFace *mface, glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); } - if(buffers->vert_buf) + if(buffers->index_buf) glGenBuffersARB(1, &buffers->vert_buf); GPU_update_mesh_buffers(buffers, mvert, vert_indices, totvert); @@ -567,7 +569,9 @@ void *GPU_build_grid_buffers(DMGridData **grids, totquad= (gridsize-1)*(gridsize-1)*totgrid; /* Generate index buffer object */ - glGenBuffersARB(1, &buffers->index_buf); + if(GL_ARB_vertex_buffer_object) + glGenBuffersARB(1, &buffers->index_buf); + if(buffers->index_buf) { glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); -- cgit v1.2.3 From fb28896cf78c6c7444fc959fce56cea23b7de4f5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 11 Dec 2009 14:16:59 +0000 Subject: * added an armature submenu where python defined armatures can go. * bpy.utils.display_name(), which makes filenames and module names look nicer in menus eg... /home/me/foo_bar.py --> "Foo Bar" * missing rna_path --> data_path renaming --- source/blender/editors/space_graph/graph_buttons.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 05987087288..1eaac8ffd20 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -198,7 +198,7 @@ static void graph_panel_properties(const bContext *C, Panel *pa) /* RNA-Path Editing - only really should be enabled when things aren't working */ col= uiLayoutColumn(layout, 1); uiLayoutSetEnabled(col, (fcu->flag & FCURVE_DISABLED)); - uiItemR(col, "", ICON_RNA, &fcu_ptr, "rna_path", 0); + uiItemR(col, "", ICON_RNA, &fcu_ptr, "data_path", 0); uiItemR(col, NULL, 0, &fcu_ptr, "array_index", 0); /* color settings */ @@ -396,7 +396,7 @@ static void graph_panel_drivers(const bContext *C, Panel *pa) col= uiLayoutColumn(box, 1); block= uiLayoutGetBlock(col); /* rna path */ - uiTemplatePathBuilder(col, (bContext *)C, &dtar_ptr, "rna_path", &root_ptr, "Path"); + uiTemplatePathBuilder(col, (bContext *)C, &dtar_ptr, "data_path", &root_ptr, "Path"); /* array index */ // TODO: this needs selector which limits it to ok values -- cgit v1.2.3 From b056f8eeba9c130edf15605d55386cf4f48ba042 Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Fri, 11 Dec 2009 14:25:37 +0000 Subject: Fix small mem leak in wm_window_get_size_ghost --- source/blender/windowmanager/intern/wm_window.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 6ae320da912..54f6d58ced4 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -944,6 +944,8 @@ void wm_window_get_size_ghost(wmWindow *win, int *width_r, int *height_r) GHOST_RectangleHandle bounds= GHOST_GetClientBounds(win->ghostwin); *width_r= GHOST_GetWidthRectangle(bounds); *height_r= GHOST_GetHeightRectangle(bounds); + + GHOST_DisposeRectangle(bounds); } void wm_window_set_size(wmWindow *win, int width, int height) -- cgit v1.2.3 From cb4d9a7427e28f360dc168fab225e24c343dc10e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 11 Dec 2009 16:59:09 +0000 Subject: Sculpt: * Temporary workaround for sculpt not working well with small polygons, still seems to be some issues, but can at least paint now. * Small optimization avoiding local function variable aliasing. --- source/blender/blenlib/BLI_math_geom.h | 2 ++ source/blender/blenlib/BLI_pbvh.h | 29 +++++++++++++++++++++++---- source/blender/blenlib/intern/math_geom.c | 33 +++++++++++++++++++++++++++++++ source/blender/blenlib/intern/pbvh.c | 24 ++++------------------ 4 files changed, 64 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h index c50d9caade0..49d335f6c5c 100644 --- a/source/blender/blenlib/BLI_math_geom.h +++ b/source/blender/blenlib/BLI_math_geom.h @@ -85,6 +85,8 @@ int isect_ray_tri_v3(float p1[3], float d[3], float v0[3], float v1[3], float v2[3], float *lambda, float *uv); int isect_ray_tri_threshold_v3(float p1[3], float d[3], float v0[3], float v1[3], float v2[3], float *lambda, float *uv, float threshold); +int isect_ray_tri_epsilon_v3(float p1[3], float d[3], + float v0[3], float v1[3], float v2[3], float *lambda, float *uv, float epsilon); /* point in polygon */ int isect_point_tri_v2(float p[2], float a[2], float b[2], float c[2]); diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h index 12c13de183c..148d9507c14 100644 --- a/source/blender/blenlib/BLI_pbvh.h +++ b/source/blender/blenlib/BLI_pbvh.h @@ -100,6 +100,8 @@ void BLI_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, struct DMGridData ***griddata, struct DMGridAdjacency **gridadj); void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *totvert); +void BLI_pbvh_node_get_verts(PBVH *bvh, PBVHNode *node, + int **vert_indices, struct MVert **verts); void BLI_pbvh_node_get_BB(PBVHNode *node, float bb_min[3], float bb_max[3]); void BLI_pbvh_node_get_original_BB(PBVHNode *node, float bb_min[3], float bb_max[3]); @@ -149,11 +151,30 @@ typedef struct PBVHVertexIter { float *fno; } PBVHVertexIter; -void BLI_pbvh_node_verts_iter_init(PBVH *bvh, PBVHNode *node, PBVHVertexIter *vi, int mode); - #define BLI_pbvh_vertex_iter_begin(bvh, node, vi, mode) \ - /* XXX breaks aliasing! */ \ - BLI_pbvh_node_verts_iter_init(bvh, node, &vi, mode); \ + { \ + struct DMGridData **grids; \ + struct MVert *verts; \ + int *grid_indices, totgrid, gridsize, *vert_indices, uniq_verts, totvert; \ + \ + memset(&vi, 0, sizeof(PBVHVertexIter)); \ + \ + BLI_pbvh_node_get_grids(bvh, node, &grid_indices, &totgrid, NULL, &gridsize, &grids, NULL); \ + BLI_pbvh_node_num_verts(bvh, node, &uniq_verts, &totvert); \ + BLI_pbvh_node_get_verts(bvh, node, &vert_indices, &verts); \ + \ + vi.grids= grids; \ + vi.grid_indices= grid_indices; \ + vi.totgrid= (grids)? totgrid: 1; \ + vi.gridsize= gridsize; \ + \ + if(mode == PBVH_ITER_ALL) \ + vi.totvert = totvert; \ + else \ + vi.totvert= uniq_verts; \ + vi.vert_indices= vert_indices; \ + vi.mverts= verts; \ + }\ \ for(vi.i=0, vi.g=0; vi.g 1.0+epsilon)) return 0; + + v = f * dot_v3v3(d, q); + if ((v < -epsilon)||((u + v) > 1.0+epsilon)) return 0; + + if(uv) { + uv[0]= u; + uv[1]= v; + } + + return 1; +} + int isect_ray_tri_threshold_v3(float p1[3], float d[3], float v0[3], float v1[3], float v2[3], float *lambda, float *uv, float threshold) { float p[3], s[3], e1[3], e2[3], q[3]; diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index f0464438b68..d8e3fe4b0be 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -1006,11 +1006,10 @@ void BLI_pbvh_node_mark_update(PBVHNode *node) node->flag |= PBVH_UpdateNormals|PBVH_UpdateBB|PBVH_UpdateOriginalBB|PBVH_UpdateDrawBuffers|PBVH_UpdateRedraw; } -void BLI_pbvh_node_get_verts(PBVHNode *node, int **vert_indices, int *totvert, int *allvert) +void BLI_pbvh_node_get_verts(PBVH *bvh, PBVHNode *node, int **vert_indices, MVert **verts) { if(vert_indices) *vert_indices= node->vert_indices; - if(totvert) *totvert= node->uniq_verts; - if(allvert) *allvert= node->uniq_verts + node->face_verts; + if(verts) *verts= bvh->verts; } void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *totvert) @@ -1100,7 +1099,7 @@ static int ray_aabb_intersect(PBVHNode *node, void *data_v) if((tmin > tzmax) || (tzmin > tmax)) return 0; - + return 1; /* XXX: Not sure about this? @@ -1142,7 +1141,7 @@ static int ray_face_intersection(float ray_start[3], float ray_normal[3], { float dist = FLT_MAX; - if(!isect_ray_tri_threshold_v3(ray_start, ray_normal, t0, t1, t2, + if(!isect_ray_tri_epsilon_v3(ray_start, ray_normal, t0, t1, t2, &dist, NULL, 0.001f)) dist = FLT_MAX; @@ -1300,18 +1299,3 @@ void BLI_pbvh_draw(PBVH *bvh, float (*planes)[4], float (*face_nors)[3]) } } -void BLI_pbvh_node_verts_iter_init(PBVH *bvh, PBVHNode *node, PBVHVertexIter *vi, int mode) -{ - memset(vi, 0, sizeof(PBVHVertexIter)); - vi->grids= bvh->grids; - vi->grid_indices= node->prim_indices; - vi->totgrid= (bvh->grids)? node->totprim: 1; - vi->gridsize= bvh->gridsize; - - vi->totvert= node->uniq_verts; - if(mode == PBVH_ITER_ALL) - vi->totvert += node->face_verts; - vi->vert_indices= node->vert_indices; - vi->mverts= bvh->verts; -} - -- cgit v1.2.3 From b7a344cf7c13ce614905a0042a0b869307ce0c28 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Fri, 11 Dec 2009 19:23:11 +0000 Subject: *Missing notifier for Render Border. --- source/blender/editors/space_view3d/view3d_edit.c | 2 ++ source/blender/makesrna/intern/rna_scene.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 6a58e3c2e8d..7714f117e9c 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1380,6 +1380,8 @@ static int render_border_exec(bContext *C, wmOperator *op) } else { scene->r.mode |= R_BORDER; } + + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, NULL); return OPERATOR_FINISHED; diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 100df4645c7..83a945f2bea 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1992,7 +1992,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) prop= RNA_def_property(srna, "use_border", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", R_BORDER); RNA_def_property_ui_text(prop, "Border", "Render a user-defined border region, within the frame size."); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS|NC_OBJECT|ND_DRAW, NULL); prop= RNA_def_property(srna, "border_min_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "border.xmin"); -- cgit v1.2.3 From 3fd73289bdbacf47a2b53fb135524a5d6bcb65bf Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Fri, 11 Dec 2009 19:27:47 +0000 Subject: Add include path to access gpu_buffers.h from pbvh.c. --- source/blender/blenlib/intern/Makefile | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/Makefile b/source/blender/blenlib/intern/Makefile index f729a4e3fe0..d8aed3ac0ed 100644 --- a/source/blender/blenlib/intern/Makefile +++ b/source/blender/blenlib/intern/Makefile @@ -50,6 +50,8 @@ CPPFLAGS += -I../../editors/include/ # path to zlib CPPFLAGS += -I$(NAN_ZLIB)/include +CPPFLAGS += -I../../gpu + ifdef NAN_PTHREADS CPPFLAGS += -I$(NAN_PTHREADS)/include endif -- cgit v1.2.3 From 86028a66319a67ed14b6d6cd43053a529df5b4a8 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Fri, 11 Dec 2009 22:51:53 +0000 Subject: Sequencer: Transform Strip updates (Durian wish) Removed the Start/End Settings and the effect_fader from the sequencer transform strip. The transform strip can now only be animated directly by keying the Scale X, Scale Y, Translate X, Translate Y and Rotation values. Caveat: The uniform scale re-uses the Scale X value, so when changing the animation on Scale X in the non-uniform scaling case, the uniform scaling will be affected too. This was done to not break files for Durian. Note: As much as I would have liked to clean up the TransformVars, it caused crashes of earlier versions of blender when opening the file. The rna identifiers were also kept as to not break any existing animation on those keys. --- source/blender/blenkernel/BKE_sequence.h | 2 +- source/blender/blenkernel/intern/seqeffects.c | 173 ++++++++++++++------------ source/blender/blenkernel/intern/sequence.c | 10 +- source/blender/makesdna/DNA_sequence_types.h | 10 +- source/blender/makesrna/intern/rna_sequence.c | 51 +------- 5 files changed, 107 insertions(+), 139 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequence.h b/source/blender/blenkernel/BKE_sequence.h index b42f023d12a..5b146cd5ecd 100644 --- a/source/blender/blenkernel/BKE_sequence.h +++ b/source/blender/blenkernel/BKE_sequence.h @@ -125,7 +125,7 @@ struct SeqEffectHandle { float-rects or byte-rects (mixed cases are handled one layer up...) */ - void (*execute)(struct Sequence *seq, int cfra, + void (*execute)(struct Scene *scene, struct Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index 50fa34b52e3..8af3bf5fac7 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -231,7 +231,7 @@ static ImBuf * IMB_cast_away_list(ImBuf * i) return (ImBuf*) (((void**) i) + 2); } -static void do_plugin_effect(Sequence * seq,int cfra, +static void do_plugin_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -477,7 +477,7 @@ static void do_alphaover_effect_float(float facf0, float facf1, int x, int y, } } -static void do_alphaover_effect(Sequence * seq,int cfra, +static void do_alphaover_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -644,7 +644,7 @@ static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y, } } -static void do_alphaunder_effect(Sequence * seq,int cfra, +static void do_alphaunder_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -764,7 +764,7 @@ void do_cross_effect_float(float facf0, float facf1, int x, int y, /* carefull: also used by speed effect! */ -static void do_cross_effect(Sequence * seq,int cfra, +static void do_cross_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -1026,7 +1026,7 @@ static void do_gammacross_effect_float(float facf0, float facf1, } } -static void do_gammacross_effect(Sequence * seq,int cfra, +static void do_gammacross_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -1140,7 +1140,7 @@ static void do_add_effect_float(float facf0, float facf1, int x, int y, } } -static void do_add_effect(Sequence * seq,int cfra, +static void do_add_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -1252,7 +1252,7 @@ static void do_sub_effect_float(float facf0, float facf1, int x, int y, } } -static void do_sub_effect(Sequence * seq,int cfra, +static void do_sub_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -1360,7 +1360,7 @@ static void do_drop_effect_float(float facf0, float facf1, int x, int y, } -static void do_drop_effect(Sequence * seq,int cfra, +static void do_drop_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf * ibuf3, @@ -1481,7 +1481,7 @@ static void do_mul_effect_float(float facf0, float facf1, int x, int y, } } -static void do_mul_effect(Sequence * seq,int cfra, +static void do_mul_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -1931,7 +1931,7 @@ static void do_wipe_effect_float(Sequence *seq, float facf0, float facf1, } } -static void do_wipe_effect(Sequence * seq,int cfra, +static void do_wipe_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -1953,27 +1953,29 @@ static void do_wipe_effect(Sequence * seq,int cfra, ********************************************************************** */ static void init_transform_effect(Sequence *seq) { - TransformVars *scale; + TransformVars *transform; if(seq->effectdata)MEM_freeN(seq->effectdata); seq->effectdata = MEM_callocN(sizeof(struct TransformVars), "transformvars"); - scale = (TransformVars *)seq->effectdata; - scale->ScalexIni = 1; - scale->ScaleyIni = 1; - scale->ScalexFin = 1; - scale->ScaleyFin = 1; - - scale->xIni=0; - scale->xFin=0; - scale->yIni=0; - scale->yFin=0; - - scale->rotIni=0; - scale->rotFin=0; + transform = (TransformVars *)seq->effectdata; + + transform->ScalexIni = 1.0f; + transform->ScaleyIni = 1.0f; + transform->ScalexFin = 1.0f; + transform->ScalexFin = 1.0f; + + transform->xIni=0.0f; + transform->xFin=0.0f; + transform->yIni=0.0f; + transform->yFin=0.0f; + + transform->rotIni=0.0f; + transform->rotFin=0.0f; - scale->interpolation=1; - scale->percent=1; + transform->interpolation=1; + transform->percent=1; + transform->uniform_scale=0; } static int num_inputs_transform() @@ -1992,86 +1994,94 @@ static void copy_transform_effect(Sequence *dst, Sequence *src) dst->effectdata = MEM_dupallocN(src->effectdata); } -static void do_transform(Sequence * seq,float facf0, int x, int y, - struct ImBuf *ibuf1,struct ImBuf *out) +static void transform_image(int x, int y, struct ImBuf *ibuf1, struct ImBuf *out, + float scale_x, float scale_y, float translate_x, float translate_y, + float rotate, int interpolation) { int xo, yo, xi, yi; - float xs,ys,factxScale,factyScale,tx,ty,rad,s,c,xaux,yaux,factRot,px,py; - TransformVars *scale; - - // XXX struct RenderData *rd = NULL; // 2.5 global: &G.scene->r; + float xt, yt, xr, yr; + float s,c; - - scale = (TransformVars *)seq->effectdata; xo = x; yo = y; - - //factor scale - if (scale->uniform_scale) { - factxScale = factyScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; - } else { - factxScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; - factyScale = scale->ScaleyIni + (scale->ScaleyFin - scale->ScaleyIni) * facf0; - } - - //Factor translate - if(!scale->percent){ - float rd_s = 0.0f; // XXX 2.5 global: (rd->size / 100.0f); - - tx = scale->xIni * rd_s+(xo / 2.0f) + (scale->xFin * rd_s -(xo / 2.0f) - scale->xIni * rd_s +(xo / 2.0f)) * facf0; - ty = scale->yIni * rd_s+(yo / 2.0f) + (scale->yFin * rd_s -(yo / 2.0f) - scale->yIni * rd_s +(yo / 2.0f)) * facf0; - }else{ - tx = xo*(scale->xIni/100.0f)+(xo / 2.0f) + (xo*(scale->xFin/100.0f)-(xo / 2.0f) - xo*(scale->xIni/100.0f)+(xo / 2.0f)) * facf0; - ty = yo*(scale->yIni/100.0f)+(yo / 2.0f) + (yo*(scale->yFin/100.0f)-(yo / 2.0f) - yo*(scale->yIni/100.0f)+(yo / 2.0f)) * facf0; - } - - //factor Rotate - factRot = scale->rotIni + (scale->rotFin - scale->rotIni) * facf0; - rad = (M_PI * factRot) / 180.0f; - s= sin(rad); - c= cos(rad); - + + // Rotate + s= sin(rotate); + c= cos(rotate); for (yi = 0; yi < yo; yi++) { for (xi = 0; xi < xo; xi++) { - //tranlate point - px = xi-tx; - py = yi-ty; + + //translate point + xt = xi-translate_x; + yt = yi-translate_y; //rotate point with center ref - xaux = c*px + py*s ; - yaux = -s*px + c*py; + xr = c*xt + s*yt; + yr = -s*xt + c*yt; //scale point with center ref - xs = xaux / factxScale; - ys = yaux / factyScale; + xt = xr / scale_x; + yt = yr / scale_y; //undo reference center point - xs += (xo / 2.0f); - ys += (yo / 2.0f); + xt += (xo / 2.0f); + yt += (yo / 2.0f); //interpolate - switch(scale->interpolation) { + switch(interpolation) { case 0: - neareast_interpolation(ibuf1,out, xs,ys,xi,yi); + neareast_interpolation(ibuf1,out, xt,yt,xi,yi); break; case 1: - bilinear_interpolation(ibuf1,out, xs,ys,xi,yi); + bilinear_interpolation(ibuf1,out, xt,yt,xi,yi); break; case 2: - bicubic_interpolation(ibuf1,out, xs,ys,xi,yi); + bicubic_interpolation(ibuf1,out, xt,yt,xi,yi); break; } } - } + } +} + +static void do_transform(Scene *scene, Sequence *seq, float facf0, int x, int y, + struct ImBuf *ibuf1,struct ImBuf *out) +{ + TransformVars *transform = (TransformVars *)seq->effectdata; + float scale_x, scale_y, translate_x, translate_y, rotate_radians; + + // Scale + if (transform->uniform_scale) { + scale_x = scale_y = transform->ScalexIni; + } else { + scale_x = transform->ScalexIni; + scale_y = transform->ScaleyIni; + } + + // Translate + if(!transform->percent){ + float rd_s = (scene->r.size/100.0f); + translate_x = transform->xIni*rd_s+(x/2.0f); + translate_y = transform->yIni*rd_s+(y/2.0f); + }else{ + translate_x = x*(transform->xIni/100.0f)+(x/2.0f); + translate_y = y*(transform->yIni/100.0f)+(y/2.0f); + } + + // Rotate + rotate_radians = (M_PI*transform->rotIni)/180.0f; + + transform_image(x,y, ibuf1, out, scale_x, scale_y, translate_x, translate_y, rotate_radians, transform->interpolation); } -static void do_transform_effect(Sequence * seq,int cfra, + + +static void do_transform_effect(Scene *scene, Sequence *seq,int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { - do_transform(seq, facf0, x, y, ibuf1, out); + do_transform(scene, seq, facf0, x, y, ibuf1, out); } @@ -2578,7 +2588,7 @@ static void do_glow_effect_float(Sequence *seq, float facf0, float facf1, RVAddBitmaps_float (inbuf , outbuf, outbuf, x, y); } -static void do_glow_effect(Sequence * seq,int cfra, +static void do_glow_effect(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -2633,7 +2643,7 @@ static int early_out_color(struct Sequence *seq, return -1; } -static void do_solid_color(Sequence * seq,int cfra, +static void do_solid_color(Scene *scene, Sequence *seq, int cfra, float facf0, float facf1, int x, int y, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) @@ -2996,16 +3006,16 @@ static void get_default_fac_fade(struct Sequence *seq, int cfra, *facf1 /= seq->len; } -static void do_overdrop_effect(struct Sequence * seq, int cfra, +static void do_overdrop_effect(Scene *scene, Sequence *seq, int cfra, float fac, float facf, int x, int y, struct ImBuf * ibuf1, struct ImBuf * ibuf2, struct ImBuf * ibuf3, struct ImBuf * out) { - do_drop_effect(seq, cfra, fac, facf, x, y, + do_drop_effect(scene, seq, cfra, fac, facf, x, y, ibuf1, ibuf2, ibuf3, out); - do_alphaover_effect(seq, cfra, fac, facf, x, y, + do_alphaover_effect(scene, seq, cfra, fac, facf, x, y, ibuf1, ibuf2, ibuf3, out); } @@ -3084,7 +3094,6 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type) rval.free = free_transform_effect; rval.copy = copy_transform_effect; rval.execute = do_transform_effect; - rval.get_default_fac = get_default_fac_fade; break; case SEQ_SPEED: rval.init = init_speed_effect; diff --git a/source/blender/blenkernel/intern/sequence.c b/source/blender/blenkernel/intern/sequence.c index 71382a53d5d..8d3b1a7955b 100644 --- a/source/blender/blenkernel/intern/sequence.c +++ b/source/blender/blenkernel/intern/sequence.c @@ -839,7 +839,7 @@ static void do_effect(Scene *scene, int cfra, Sequence *seq, TStripElem * se) early_out = sh.early_out(seq, fac, facf); if (early_out == -1) { /* no input needed */ - sh.execute(seq, cfra, fac, facf, + sh.execute(scene, seq, cfra, fac, facf, se->ibuf->x, se->ibuf->y, 0, 0, 0, se->ibuf); return; @@ -928,7 +928,7 @@ static void do_effect(Scene *scene, int cfra, Sequence *seq, TStripElem * se) IMB_rect_from_float(se3->ibuf); } - sh.execute(seq, cfra, fac, facf, x, y, se1->ibuf, se2->ibuf, se3->ibuf, + sh.execute(scene, seq, cfra, fac, facf, x, y, se1->ibuf, se2->ibuf, se3->ibuf, se->ibuf); } @@ -2276,7 +2276,7 @@ static TStripElem* do_handle_speed_effect(Scene *scene, Sequence * seq, int cfra } else { sh = get_sequence_effect(seq); - sh.execute(seq, cfra, + sh.execute(scene, seq, cfra, f_cfra - (float) cfra_left, f_cfra - (float) cfra_left, se->ibuf->x, se->ibuf->y, @@ -2510,12 +2510,12 @@ static TStripElem* do_build_seq_array_recursively(Scene *scene, } if (swap_input) { - sh.execute(seq, cfra, + sh.execute(scene, seq, cfra, facf, facf, x, y, se2->ibuf, se1->ibuf_comp, 0, se2->ibuf_comp); } else { - sh.execute(seq, cfra, + sh.execute(scene, seq, cfra, facf, facf, x, y, se1->ibuf_comp, se2->ibuf, 0, se2->ibuf_comp); diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 006e1e594d8..0b45d62e347 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -211,14 +211,14 @@ typedef struct GlowVars { typedef struct TransformVars { float ScalexIni; float ScaleyIni; - float ScalexFin; - float ScaleyFin; + float ScalexFin; /* deprecated - old transform strip */ + float ScaleyFin; /* deprecated - old transform strip */ float xIni; - float xFin; + float xFin; /* deprecated - old transform strip */ float yIni; - float yFin; + float yFin; /* deprecated - old transform strip */ float rotIni; - float rotFin; + float rotFin; /* deprecated - old transform strip */ int percent; int interpolation; int uniform_scale; /* preserve aspect/ratio when scaling */ diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c index 52ce9bd721d..4296d59ebc8 100644 --- a/source/blender/makesrna/intern/rna_sequence.c +++ b/source/blender/makesrna/intern/rna_sequence.c @@ -1063,78 +1063,37 @@ static void rna_def_transform(BlenderRNA *brna) prop= RNA_def_property(srna, "scale_start_x", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScalexIni"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Scale Start X", ""); + RNA_def_property_ui_text(prop, "Scale X", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "scale_start_y", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "ScaleyIni"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Scale Start Y", ""); + RNA_def_property_ui_text(prop, "Scale Y", ""); RNA_def_property_ui_range(prop, 0, 10, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - prop= RNA_def_property(srna, "scale_end_x", PROP_FLOAT, PROP_UNSIGNED); - RNA_def_property_float_sdna(prop, NULL, "ScalexFin"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Scale End X", ""); - RNA_def_property_ui_range(prop, 0, 10, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "scale_end_y", PROP_FLOAT, PROP_UNSIGNED); - RNA_def_property_float_sdna(prop, NULL, "ScaleyFin"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Scale End Y", ""); - RNA_def_property_ui_range(prop, 0, 10, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - prop= RNA_def_property(srna, "uniform_scale", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "uniform_scale", 0); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* not meant to be animated */ RNA_def_property_ui_text(prop, "Uniform Scale", "Scale uniformly, preserving aspect ratio."); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_start_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "xIni"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Translate Start X", ""); + RNA_def_property_ui_text(prop, "Translate X", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translate_start_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "yIni"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Translate Start Y", ""); - RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "translate_end_x", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "xFin"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Translate End X", ""); - RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "translate_end_y", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "yFin"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Translate End Y", ""); + RNA_def_property_ui_text(prop, "Translate Y", ""); RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "rotation_start", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "rotIni"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_range(prop, -360.0f, 360.0f); - RNA_def_property_ui_text(prop, "Rotation Start", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "rotation_end", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "rotFin"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ RNA_def_property_range(prop, -360.0f, 360.0f); - RNA_def_property_ui_text(prop, "Rotation End", ""); + RNA_def_property_ui_text(prop, "Rotation", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "translation_unit", PROP_ENUM, PROP_NONE); -- cgit v1.2.3 From a224803fb7c3b3a69f9ac63aaac593532432202a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 13 Dec 2009 03:20:29 +0000 Subject: Sequencer unique names for duplicates & metas and name new strips when the operator doesnt set them. --- .../editors/space_sequencer/sequencer_add.c | 33 +++++++++++++--------- .../editors/space_sequencer/sequencer_edit.c | 15 ++++++++-- 2 files changed, 31 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index ac341e40de9..23ae96ac8a5 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -73,6 +73,7 @@ #include "RNA_access.h" #include "RNA_define.h" +#include "RNA_enum_types.h" /* for menu/popup icons etc etc*/ #include "UI_interface.h" @@ -150,7 +151,7 @@ static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op) seq_load->channel= RNA_int_get(op->ptr, "channel"); seq_load->len= 1; // images only! - RNA_string_get(op->ptr, "name", seq_load->name); + RNA_string_get(op->ptr, "name", seq_load->name+2); RNA_string_get(op->ptr, "path", seq_load->path); /* full path, file is set by the caller */ @@ -174,8 +175,7 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op) Editing *ed= seq_give_editing(scene, TRUE); Scene *sce_seq; - char sce_name[MAX_ID_NAME-2]; - + Sequence *seq; /* generic strip vars */ Strip *strip; StripElem *se; @@ -185,12 +185,10 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op) start_frame= RNA_int_get(op->ptr, "start_frame"); channel= RNA_int_get(op->ptr, "channel"); - RNA_string_get(op->ptr, "scene", sce_name); - - sce_seq= (Scene *)find_id("SC", sce_name); + sce_seq= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "type")); if (sce_seq==NULL) { - BKE_reportf(op->reports, RPT_ERROR, "Scene \"%s\" not found", sce_name); + BKE_report(op->reports, RPT_ERROR, "Scene not found"); return OPERATOR_CANCELLED; } @@ -206,8 +204,10 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op) strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); - - RNA_string_get(op->ptr, "name", seq->name); + if(RNA_property_is_set(op->ptr, "name")) + RNA_string_get(op->ptr, "name", seq->name+2); + else + strcpy(seq->name+2, sce_seq->id.name+2); calc_sequence_disp(seq); sort_seq(scene); @@ -227,16 +227,15 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op) static int sequencer_add_scene_strip_invoke(bContext *C, wmOperator *op, wmEvent *event) { sequencer_generic_invoke_xy__internal(C, op, event, 0); - - /* scene can be left default */ - RNA_string_set(op->ptr, "scene", "Scene"); // XXX should popup a menu but ton says 2.5 will have some better feature for this - return sequencer_add_scene_strip_exec(C, op); + // needs a menu + // return WM_menu_invoke(C, op, event); } void SEQUENCER_OT_scene_strip_add(struct wmOperatorType *ot) { + PropertyRNA *prop; /* identifiers */ ot->name= "Add Scene Strip"; @@ -253,7 +252,8 @@ void SEQUENCER_OT_scene_strip_add(struct wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME); - RNA_def_string(ot->srna, "scene", "", MAX_ID_NAME-2, "Scene Name", "Scene name to add as a strip"); + prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, 0, "Type", ""); + RNA_def_enum_funcs(prop, RNA_scene_itemf); } static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoadFunc seq_load_func) @@ -499,6 +499,11 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) seq = alloc_sequence(ed->seqbasep, start_frame, channel); seq->type= type; + if(RNA_property_is_set(op->ptr, "name")) + RNA_string_get(op->ptr, "name", seq->name+2); + else + strcpy(seq->name+2, give_seqname(seq)); + seqUniqueName(ed->seqbasep, seq); sh = get_sequence_effect(seq); diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index c8f47e1a3e8..660cb0d8cc6 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -925,7 +925,9 @@ static Sequence *dupli_seq(struct Scene *scene, Sequence *seq) "handled in duplicate!\nExpect a crash" " now...\n"); } - + + seqUniqueName(scene->ed->seqbasep, seqn); + return seqn; } @@ -1963,6 +1965,8 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) shuffle_seq(ed->seqbasep, seq_new); } + seqUniqueName(scene->ed->seqbasep, seq_new); + cfra++; start_ofs += step; } @@ -2085,7 +2089,7 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) Sequence *seq, *seqm, *next; - int tot; + int tot, channel_max= 1; if(ed==NULL) return OPERATOR_CANCELLED; @@ -2106,6 +2110,7 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) seq= ed->seqbasep->first; while(seq) { if(seq->flag & SELECT) { + channel_max= MAX2(seq->machine, channel_max); if(seq->type & SEQ_EFFECT) { if(seq->seq1 && (seq->seq1->flag & SELECT)==0) tot= 0; @@ -2134,7 +2139,8 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) /* remove all selected from main list, and put in meta */ - seqm= alloc_sequence(ed->seqbasep, 1, 1); + seqm= alloc_sequence(ed->seqbasep, 1, channel_max); + strcpy(seqm->name+2, "MetaStrip"); seqm->type= SEQ_META; seqm->flag= SELECT; @@ -2158,6 +2164,9 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) if( seq_test_overlap(ed->seqbasep, seqm) ) shuffle_seq(ed->seqbasep, seqm); seq_update_muting(ed); + + seqUniqueName(scene->ed->seqbasep, seqm); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; -- cgit v1.2.3 From b3f03250de655751a116ec9aaea96a22a943d8c5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 13 Dec 2009 10:46:34 +0000 Subject: use tp_getset rather then checking the string on getattr for 'id_data' attribute --- source/blender/python/intern/bpy_rna.c | 37 ++++++++++++++++------------------ 1 file changed, 17 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index f90dbef9836..9142aaed9ea 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1658,14 +1658,6 @@ static PyObject *pyrna_struct_dir(BPy_StructRNA *self) BLI_freelistN(&lb); } - - /* Hard coded names */ - if(self->ptr.id.data) { - pystring = PyUnicode_FromString("id_data"); - PyList_Append(ret, pystring); - Py_DECREF(pystring); - } - return ret; } @@ -1732,17 +1724,6 @@ static PyObject *pyrna_struct_getattro( BPy_StructRNA *self, PyObject *pyname ) BLI_freelistN(&newlb); } - else if (strcmp(name, "id_data")==0) { /* XXX - hard coded */ - if(self->ptr.id.data) { - PointerRNA id_ptr; - RNA_id_pointer_create((ID *)self->ptr.id.data, &id_ptr); - ret = pyrna_struct_CreatePyObject(&id_ptr); - } - else { - ret = Py_None; - Py_INCREF(ret); - } - } else { #if 0 PyErr_Format( PyExc_AttributeError, "StructRNA - Attribute \"%.200s\" not found", name); @@ -1914,6 +1895,17 @@ static PyObject *pyrna_prop_remove(BPy_PropertyRNA *self, PyObject *value) return ret; } +static PyObject *pyrna_struct_get_id_data(BPy_StructRNA *self) +{ + if(self->ptr.id.data) { + PointerRNA id_ptr; + RNA_id_pointer_create((ID *)self->ptr.id.data, &id_ptr); + return pyrna_struct_CreatePyObject(&id_ptr); + } + + Py_RETURN_NONE; +} + /*****************************************************************************/ /* Python attributes get/set structure: */ /*****************************************************************************/ @@ -1924,6 +1916,11 @@ static PyGetSetDef pyrna_prop_getseters[] = { }; #endif +static PyGetSetDef pyrna_struct_getseters[] = { + {"id_data", (getter)pyrna_struct_get_id_data, (setter)NULL, "The ID data this datablock is from, (not available for all data)", NULL}, + {NULL,NULL,NULL,NULL,NULL} /* Sentinel */ +}; + static PyObject *pyrna_prop_keys(BPy_PropertyRNA *self) { PyObject *ret; @@ -2787,7 +2784,7 @@ PyTypeObject pyrna_struct_Type = { /*** Attribute descriptor and subclassing stuff ***/ pyrna_struct_methods, /* struct PyMethodDef *tp_methods; */ NULL, /* struct PyMemberDef *tp_members; */ - NULL, /* struct PyGetSetDef *tp_getset; */ + pyrna_struct_getseters, /* struct PyGetSetDef *tp_getset; */ NULL, /* struct _typeobject *tp_base; */ NULL, /* PyObject *tp_dict; */ NULL, /* descrgetfunc tp_descr_get; */ -- cgit v1.2.3 From 646575f8d91af059da8e50d1b61c7ad16dc65b2e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 13 Dec 2009 11:49:17 +0000 Subject: clear loc/size/rot wasnt updating child transformations, also removed some warnings --- source/blender/editors/object/object_transform.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index 69a2315fd5d..cd2361a1cc0 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -105,8 +105,11 @@ static int object_location_clear_exec(bContext *C, wmOperator *op) } CTX_DATA_END; + /* this is needed so children are also updated */ + DAG_ids_flush_update(0); + WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); - + return OPERATOR_FINISHED; } @@ -241,6 +244,9 @@ static int object_rotation_clear_exec(bContext *C, wmOperator *op) } CTX_DATA_END; + /* this is needed so children are also updated */ + DAG_ids_flush_update(0); + WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); return OPERATOR_FINISHED; @@ -299,6 +305,9 @@ static int object_scale_clear_exec(bContext *C, wmOperator *op) } CTX_DATA_END; + /* this is needed so children are also updated */ + DAG_ids_flush_update(0); + WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); return OPERATOR_FINISHED; -- cgit v1.2.3 From c1bfd014bd8fb4af1ee51ed0e2aaecb707c46ff2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 13 Dec 2009 12:26:19 +0000 Subject: * rna: memory leak fix for RNA_property_enum_value() * rigify: generate root-most bones before children, this makes parenting to dynamically created bones work. --- source/blender/makesrna/intern/rna_access.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 7bfb6d7249f..68499ebd42c 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -946,22 +946,22 @@ void RNA_property_enum_items(bContext *C, PointerRNA *ptr, PropertyRNA *prop, En int RNA_property_enum_value(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value) { - EnumPropertyItem *item; + EnumPropertyItem *item, *item_array; int free; - RNA_property_enum_items(C, ptr, prop, &item, NULL, &free); + RNA_property_enum_items(C, ptr, prop, &item_array, NULL, &free); - for(; item->identifier; item++) { + for(item= item_array; item->identifier; item++) { if(item->identifier[0] && strcmp(item->identifier, identifier)==0) { *value = item->value; - return 1; + break; } } if(free) - MEM_freeN(item); + MEM_freeN(item_array); - return 0; + return (item->identifier) ? 1:0; } int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier) -- cgit v1.2.3 From 1add5b58e8e290003a40cf3a123af22703c2fb3b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 13 Dec 2009 14:13:25 +0000 Subject: mesh.faces.active attribute for Michael Williamson to help port 2.4x UV unwrap scripts --- source/blender/makesrna/intern/rna_mesh.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index 355314f5c92..3163f38af3d 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -1517,6 +1517,27 @@ void rna_def_texmat_common(StructRNA *srna, const char *texspace_editable) RNA_def_property_ui_text(prop, "Materials", ""); } + +/* scene.objects */ +static void rna_def_mesh_faces(BlenderRNA *brna, PropertyRNA *cprop) +{ + StructRNA *srna; + PropertyRNA *prop; + +// FunctionRNA *func; +// PropertyRNA *parm; + + RNA_def_property_srna(cprop, "MeshFaces"); + srna= RNA_def_struct(brna, "MeshFaces", NULL); + RNA_def_struct_sdna(srna, "Mesh"); + RNA_def_struct_ui_text(srna, "Mesh Faces", "Collection of mesh faces."); + + prop= RNA_def_property(srna, "active", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "act_face"); + RNA_def_property_ui_text(prop, "Active Face", "The active face for this mesh"); +} + + static void rna_def_mesh(BlenderRNA *brna) { StructRNA *srna; @@ -1540,6 +1561,7 @@ static void rna_def_mesh(BlenderRNA *brna) RNA_def_property_collection_sdna(prop, NULL, "mface", "totface"); RNA_def_property_struct_type(prop, "MeshFace"); RNA_def_property_ui_text(prop, "Faces", "Faces of the mesh."); + rna_def_mesh_faces(brna, prop); prop= RNA_def_property(srna, "sticky", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "msticky", "totvert"); -- cgit v1.2.3 From abe8c09b8a98f8a4b71e47324b2c6b12624d5440 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 13 Dec 2009 14:56:45 +0000 Subject: * renamed BKE_sequence.h and sequence.c --> sequencer * renamed util.c --> path_util.c since there are more then 1 of these files which makes setting breakpoints annoying. --- source/blender/blenkernel/BKE_sequence.h | 228 -- source/blender/blenkernel/BKE_sequencer.h | 228 ++ source/blender/blenkernel/intern/blender.c | 2 +- source/blender/blenkernel/intern/scene.c | 2 +- source/blender/blenkernel/intern/seqeffects.c | 2 +- source/blender/blenkernel/intern/sequence.c | 3758 -------------------- source/blender/blenkernel/intern/sequencer.c | 3758 ++++++++++++++++++++ source/blender/blenlib/intern/bpath.c | 2 +- source/blender/blenlib/intern/path_util.c | 1586 +++++++++ source/blender/blenlib/intern/util.c | 1586 --------- source/blender/blenloader/intern/readfile.c | 2 +- source/blender/blenloader/intern/writefile.c | 2 +- source/blender/editors/gpencil/drawgpencil.c | 2 +- source/blender/editors/space_outliner/outliner.c | 2 +- .../editors/space_sequencer/sequencer_add.c | 2 +- .../editors/space_sequencer/sequencer_draw.c | 2 +- .../editors/space_sequencer/sequencer_edit.c | 2 +- .../editors/space_sequencer/sequencer_select.c | 2 +- .../editors/space_sequencer/space_sequencer.c | 2 +- .../editors/transform/transform_conversions.c | 2 +- source/blender/makesrna/intern/rna_sequence.c | 2 +- source/blender/makesrna/intern/rna_space.c | 2 +- source/blender/render/intern/source/pipeline.c | 2 +- 23 files changed, 5589 insertions(+), 5589 deletions(-) delete mode 100644 source/blender/blenkernel/BKE_sequence.h create mode 100644 source/blender/blenkernel/BKE_sequencer.h delete mode 100644 source/blender/blenkernel/intern/sequence.c create mode 100644 source/blender/blenkernel/intern/sequencer.c create mode 100644 source/blender/blenlib/intern/path_util.c delete mode 100644 source/blender/blenlib/intern/util.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequence.h b/source/blender/blenkernel/BKE_sequence.h deleted file mode 100644 index 5b146cd5ecd..00000000000 --- a/source/blender/blenkernel/BKE_sequence.h +++ /dev/null @@ -1,228 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2004 Blender Foundation. - * All rights reserved. - * - * Contributor(s): Blender Foundation (2008). - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef BKE_SEQUENCE_H -#define BKE_SEQUENCE_H - -struct Editing; -struct Sequence; -struct Strip; -struct StripElem; -struct ImBuf; -struct Scene; -struct bContext; - -#define MAXSEQ 32 - -#define BUILD_SEQAR_COUNT_NOTHING 0 -#define BUILD_SEQAR_COUNT_CURRENT 1 -#define BUILD_SEQAR_COUNT_CHILDREN 2 - -/* sequence iterator */ - -typedef struct SeqIterator { - struct Sequence **array; - int tot, cur; - - struct Sequence *seq; - int valid; -} SeqIterator; - -void seq_begin(struct Editing *ed, SeqIterator *iter, int use_pointer); -void seq_next(SeqIterator *iter); -void seq_end(SeqIterator *iter); -void seq_array(struct Editing *ed, struct Sequence ***seqarray, int *tot, int use_pointer); - -#define SEQP_BEGIN(ed, seq) \ -{ \ - SeqIterator iter;\ - for(seq_begin(ed, &iter, 1); iter.valid; seq_next(&iter)) { \ - seq= iter.seq; - -#define SEQ_BEGIN(ed, seq) \ - { \ - SeqIterator iter;\ - for(seq_begin(ed, &iter, 0); iter.valid; seq_next(&iter)) { \ - seq= iter.seq; - -#define SEQ_END \ - } \ - seq_end(&iter); \ - } - -#endif - - -/* Wipe effect */ -enum {DO_SINGLE_WIPE, DO_DOUBLE_WIPE, DO_BOX_WIPE, DO_CROSS_WIPE, - DO_IRIS_WIPE,DO_CLOCK_WIPE}; - - -struct SeqEffectHandle { - /* constructors & destructor */ - /* init & init_plugin are _only_ called on first creation */ - void (*init)(struct Sequence *seq); - void (*init_plugin)(struct Sequence *seq, const char *fname); - - /* number of input strips needed - (called directly after construction) */ - int (*num_inputs)(); - - /* load is called first time after readblenfile in - get_sequence_effect automatically */ - void (*load)(struct Sequence *seq); - - /* duplicate */ - void (*copy)(struct Sequence *dst, struct Sequence *src); - - /* destruct */ - void (*free)(struct Sequence *seq); - - /* returns: -1: no input needed, - 0: no early out, - 1: out = ibuf1, - 2: out = ibuf2 */ - int (*early_out)(struct Sequence *seq, - float facf0, float facf1); - - /* stores the y-range of the effect IPO */ - void (*store_icu_yrange)(struct Sequence * seq, - short adrcode, float *ymin, float *ymax); - - /* stores the default facf0 and facf1 if no IPO is present */ - void (*get_default_fac)(struct Sequence *seq, int cfra, - float * facf0, float * facf1); - - /* execute the effect - sequence effects are only required to either support - float-rects or byte-rects - (mixed cases are handled one layer up...) */ - - void (*execute)(struct Scene *scene, struct Sequence *seq, int cfra, - float facf0, float facf1, - int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out); -}; - -/* ********************* prototypes *************** */ - -/* sequence.c */ -void printf_strip(struct Sequence *seq); - -// extern -void seq_free_sequence(struct Scene *scene, struct Sequence *seq); -void seq_free_strip(struct Strip *strip); -void seq_free_editing(struct Scene *scene); -struct Editing *seq_give_editing(struct Scene *scene, int alloc); -char *give_seqname(struct Sequence *seq); -struct ImBuf *give_ibuf_seq(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size); -struct ImBuf *give_ibuf_seq_threaded(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size); -struct ImBuf *give_ibuf_seq_direct(struct Scene *scene, int rectx, int recty, int cfra, int render_size, struct Sequence *seq); -void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown, int render_size); -void calc_sequence(struct Sequence *seq); -void calc_sequence_disp(struct Sequence *seq); -void new_tstripdata(struct Sequence *seq); -void reload_sequence_new_file(struct Scene *scene, struct Sequence * seq); -void sort_seq(struct Scene *scene); -void build_seqar_cb(struct ListBase *seqbase, struct Sequence ***seqar, int *totseq, - int (*test_func)(struct Sequence * seq)); -int evaluate_seq_frame(struct Scene *scene, int cfra); -struct StripElem *give_stripelem(struct Sequence *seq, int cfra); - -// intern? -void update_changed_seq_and_deps(struct Scene *scene, struct Sequence *changed_seq, int len_change, int ibuf_change); - -/* seqeffects.c */ -// intern? -struct SeqEffectHandle get_sequence_blend(struct Sequence *seq); -void sequence_effect_speed_rebuild_map(struct Scene *scene, struct Sequence *seq, int force); - -// extern -struct SeqEffectHandle get_sequence_effect(struct Sequence *seq); -int get_sequence_effect_num_inputs(int seq_type); - -/* for transform but also could use elsewhere */ -int seq_tx_get_start(struct Sequence *seq); -int seq_tx_get_end(struct Sequence *seq); -int seq_tx_get_final_left(struct Sequence *seq, int metaclip); -int seq_tx_get_final_right(struct Sequence *seq, int metaclip); -void seq_tx_set_final_left(struct Sequence *seq, int val); -void seq_tx_set_final_right(struct Sequence *seq, int val); -void seq_tx_handle_xlimits(struct Sequence *seq, int leftflag, int rightflag); -int seq_tx_test(struct Sequence * seq); -int check_single_seq(struct Sequence *seq); -void fix_single_seq(struct Sequence *seq); -int seq_test_overlap(struct ListBase * seqbasep, struct Sequence *test); -void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs); -int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test); -int shuffle_seq_time(ListBase * seqbasep); -void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage); - -void seq_update_sound(struct Sequence *seq); -void seq_update_muting(struct Editing *ed); - -void clear_scene_in_allseqs(struct Scene *sce); - -struct Sequence *active_seq_get(struct Scene *scene); -void active_seq_set(struct Scene *scene, struct Sequence *seq); - -/* api for adding new sequence strips */ -typedef struct SeqLoadInfo { - int start_frame; - int channel; - int flag; /* use sound, replace sel */ - int type; - int tot_success; - int tot_error; - int len; /* only for image strips */ - char path[512]; - char name[32]; -} SeqLoadInfo; - -/* SeqLoadInfo.flag */ -#define SEQ_LOAD_REPLACE_SEL 1<<0 -#define SEQ_LOAD_FRAME_ADVANCE 1<<1 -#define SEQ_LOAD_MOVIE_SOUND 1<<2 -#define SEQ_LOAD_SOUND_CACHE 1<<3 - -/* use as an api function */ -typedef struct Sequence *(*SeqLoadFunc)(struct bContext *, ListBase *, struct SeqLoadInfo *); - -struct Sequence *alloc_sequence(ListBase *lb, int cfra, int machine); - -void seq_load_apply(struct Scene *scene, struct Sequence *seq, struct SeqLoadInfo *seq_load); - -void seqUniqueName(ListBase *seqbasep, struct Sequence *seq); - -struct Sequence *sequencer_add_image_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load); -struct Sequence *sequencer_add_sound_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load); -struct Sequence *sequencer_add_movie_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load); - diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h new file mode 100644 index 00000000000..5b146cd5ecd --- /dev/null +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -0,0 +1,228 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2004 Blender Foundation. + * All rights reserved. + * + * Contributor(s): Blender Foundation (2008). + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef BKE_SEQUENCE_H +#define BKE_SEQUENCE_H + +struct Editing; +struct Sequence; +struct Strip; +struct StripElem; +struct ImBuf; +struct Scene; +struct bContext; + +#define MAXSEQ 32 + +#define BUILD_SEQAR_COUNT_NOTHING 0 +#define BUILD_SEQAR_COUNT_CURRENT 1 +#define BUILD_SEQAR_COUNT_CHILDREN 2 + +/* sequence iterator */ + +typedef struct SeqIterator { + struct Sequence **array; + int tot, cur; + + struct Sequence *seq; + int valid; +} SeqIterator; + +void seq_begin(struct Editing *ed, SeqIterator *iter, int use_pointer); +void seq_next(SeqIterator *iter); +void seq_end(SeqIterator *iter); +void seq_array(struct Editing *ed, struct Sequence ***seqarray, int *tot, int use_pointer); + +#define SEQP_BEGIN(ed, seq) \ +{ \ + SeqIterator iter;\ + for(seq_begin(ed, &iter, 1); iter.valid; seq_next(&iter)) { \ + seq= iter.seq; + +#define SEQ_BEGIN(ed, seq) \ + { \ + SeqIterator iter;\ + for(seq_begin(ed, &iter, 0); iter.valid; seq_next(&iter)) { \ + seq= iter.seq; + +#define SEQ_END \ + } \ + seq_end(&iter); \ + } + +#endif + + +/* Wipe effect */ +enum {DO_SINGLE_WIPE, DO_DOUBLE_WIPE, DO_BOX_WIPE, DO_CROSS_WIPE, + DO_IRIS_WIPE,DO_CLOCK_WIPE}; + + +struct SeqEffectHandle { + /* constructors & destructor */ + /* init & init_plugin are _only_ called on first creation */ + void (*init)(struct Sequence *seq); + void (*init_plugin)(struct Sequence *seq, const char *fname); + + /* number of input strips needed + (called directly after construction) */ + int (*num_inputs)(); + + /* load is called first time after readblenfile in + get_sequence_effect automatically */ + void (*load)(struct Sequence *seq); + + /* duplicate */ + void (*copy)(struct Sequence *dst, struct Sequence *src); + + /* destruct */ + void (*free)(struct Sequence *seq); + + /* returns: -1: no input needed, + 0: no early out, + 1: out = ibuf1, + 2: out = ibuf2 */ + int (*early_out)(struct Sequence *seq, + float facf0, float facf1); + + /* stores the y-range of the effect IPO */ + void (*store_icu_yrange)(struct Sequence * seq, + short adrcode, float *ymin, float *ymax); + + /* stores the default facf0 and facf1 if no IPO is present */ + void (*get_default_fac)(struct Sequence *seq, int cfra, + float * facf0, float * facf1); + + /* execute the effect + sequence effects are only required to either support + float-rects or byte-rects + (mixed cases are handled one layer up...) */ + + void (*execute)(struct Scene *scene, struct Sequence *seq, int cfra, + float facf0, float facf1, + int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, + struct ImBuf *ibuf3, struct ImBuf *out); +}; + +/* ********************* prototypes *************** */ + +/* sequence.c */ +void printf_strip(struct Sequence *seq); + +// extern +void seq_free_sequence(struct Scene *scene, struct Sequence *seq); +void seq_free_strip(struct Strip *strip); +void seq_free_editing(struct Scene *scene); +struct Editing *seq_give_editing(struct Scene *scene, int alloc); +char *give_seqname(struct Sequence *seq); +struct ImBuf *give_ibuf_seq(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size); +struct ImBuf *give_ibuf_seq_threaded(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size); +struct ImBuf *give_ibuf_seq_direct(struct Scene *scene, int rectx, int recty, int cfra, int render_size, struct Sequence *seq); +void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown, int render_size); +void calc_sequence(struct Sequence *seq); +void calc_sequence_disp(struct Sequence *seq); +void new_tstripdata(struct Sequence *seq); +void reload_sequence_new_file(struct Scene *scene, struct Sequence * seq); +void sort_seq(struct Scene *scene); +void build_seqar_cb(struct ListBase *seqbase, struct Sequence ***seqar, int *totseq, + int (*test_func)(struct Sequence * seq)); +int evaluate_seq_frame(struct Scene *scene, int cfra); +struct StripElem *give_stripelem(struct Sequence *seq, int cfra); + +// intern? +void update_changed_seq_and_deps(struct Scene *scene, struct Sequence *changed_seq, int len_change, int ibuf_change); + +/* seqeffects.c */ +// intern? +struct SeqEffectHandle get_sequence_blend(struct Sequence *seq); +void sequence_effect_speed_rebuild_map(struct Scene *scene, struct Sequence *seq, int force); + +// extern +struct SeqEffectHandle get_sequence_effect(struct Sequence *seq); +int get_sequence_effect_num_inputs(int seq_type); + +/* for transform but also could use elsewhere */ +int seq_tx_get_start(struct Sequence *seq); +int seq_tx_get_end(struct Sequence *seq); +int seq_tx_get_final_left(struct Sequence *seq, int metaclip); +int seq_tx_get_final_right(struct Sequence *seq, int metaclip); +void seq_tx_set_final_left(struct Sequence *seq, int val); +void seq_tx_set_final_right(struct Sequence *seq, int val); +void seq_tx_handle_xlimits(struct Sequence *seq, int leftflag, int rightflag); +int seq_tx_test(struct Sequence * seq); +int check_single_seq(struct Sequence *seq); +void fix_single_seq(struct Sequence *seq); +int seq_test_overlap(struct ListBase * seqbasep, struct Sequence *test); +void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs); +int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test); +int shuffle_seq_time(ListBase * seqbasep); +void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage); + +void seq_update_sound(struct Sequence *seq); +void seq_update_muting(struct Editing *ed); + +void clear_scene_in_allseqs(struct Scene *sce); + +struct Sequence *active_seq_get(struct Scene *scene); +void active_seq_set(struct Scene *scene, struct Sequence *seq); + +/* api for adding new sequence strips */ +typedef struct SeqLoadInfo { + int start_frame; + int channel; + int flag; /* use sound, replace sel */ + int type; + int tot_success; + int tot_error; + int len; /* only for image strips */ + char path[512]; + char name[32]; +} SeqLoadInfo; + +/* SeqLoadInfo.flag */ +#define SEQ_LOAD_REPLACE_SEL 1<<0 +#define SEQ_LOAD_FRAME_ADVANCE 1<<1 +#define SEQ_LOAD_MOVIE_SOUND 1<<2 +#define SEQ_LOAD_SOUND_CACHE 1<<3 + +/* use as an api function */ +typedef struct Sequence *(*SeqLoadFunc)(struct bContext *, ListBase *, struct SeqLoadInfo *); + +struct Sequence *alloc_sequence(ListBase *lb, int cfra, int machine); + +void seq_load_apply(struct Scene *scene, struct Sequence *seq, struct SeqLoadInfo *seq_load); + +void seqUniqueName(ListBase *seqbasep, struct Sequence *seq); + +struct Sequence *sequencer_add_image_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load); +struct Sequence *sequencer_add_sound_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load); +struct Sequence *sequencer_add_movie_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load); + diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 8391ebdebb7..afb1335b86b 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -83,7 +83,7 @@ #include "BKE_report.h" #include "BKE_scene.h" #include "BKE_screen.h" -#include "BKE_sequence.h" +#include "BKE_sequencer.h" #include "BKE_sound.h" #include "BLI_editVert.h" diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 368e05fa441..43017a75835 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -80,7 +80,7 @@ #include "BKE_paint.h" #include "BKE_pointcache.h" #include "BKE_scene.h" -#include "BKE_sequence.h" +#include "BKE_sequencer.h" #include "BKE_world.h" #include "BKE_utildefines.h" diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index 8af3bf5fac7..2c532bfed1c 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -44,7 +44,7 @@ #include "BKE_global.h" #include "BKE_fcurve.h" #include "BKE_plugin_types.h" -#include "BKE_sequence.h" +#include "BKE_sequencer.h" #include "BKE_texture.h" #include "BKE_utildefines.h" diff --git a/source/blender/blenkernel/intern/sequence.c b/source/blender/blenkernel/intern/sequence.c deleted file mode 100644 index 8d3b1a7955b..00000000000 --- a/source/blender/blenkernel/intern/sequence.c +++ /dev/null @@ -1,3758 +0,0 @@ -/** -* $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * Contributor(s): - * - Blender Foundation, 2003-2009 - * - Peter Schlaile 2005/2006 - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include -#include -#include -#include - -#include "MEM_guardedalloc.h" -#include "MEM_CacheLimiterC-Api.h" - -#include "DNA_listBase.h" -#include "DNA_sequence_types.h" -#include "DNA_scene_types.h" -#include "DNA_anim_types.h" - -#include "BKE_global.h" -#include "BKE_image.h" -#include "BKE_main.h" -#include "BKE_sequence.h" -#include "BKE_fcurve.h" -#include "BKE_utildefines.h" -#include "RNA_access.h" -#include "RE_pipeline.h" - -#include "BLI_blenlib.h" -#include "BLI_util.h" - -#include "IMB_imbuf.h" -#include "IMB_imbuf_types.h" - -#include "BLI_threads.h" -#include - -#include "BKE_context.h" -#include "BKE_sound.h" -#include "AUD_C-API.h" - -#ifdef WIN32 -#define snprintf _snprintf -#endif - -/* **** XXX ******** */ -static int seqrectx= 0; /* bad bad global! */ -static int seqrecty= 0; -//static void waitcursor(int val) {} -//static int blender_test_break() {return 0;} - -/* **** XXX ******** */ - - -void printf_strip(Sequence *seq) -{ - fprintf(stderr, "name: '%s', len:%d, start:%d, (startofs:%d, endofs:%d), (startstill:%d, endstill:%d), machine:%d, (startdisp:%d, enddisp:%d)\n", - seq->name, seq->len, seq->start, seq->startofs, seq->endofs, seq->startstill, seq->endstill, seq->machine, seq->startdisp, seq->enddisp); - fprintf(stderr, "\tseq_tx_set_final_left: %d %d\n\n", seq_tx_get_final_left(seq, 0), seq_tx_get_final_right(seq, 0)); -} - -/* ********************************************************************** - alloc / free functions - ********************************************************************** */ - -static void free_tstripdata(int len, TStripElem *se) -{ - TStripElem *seo; - int a; - - seo= se; - if (!se) - return; - - for(a=0; aibuf) { - IMB_freeImBuf(se->ibuf); - se->ibuf = 0; - } - if(se->ibuf_comp) { - IMB_freeImBuf(se->ibuf_comp); - se->ibuf_comp = 0; - } - } - - MEM_freeN(seo); -} - - -void new_tstripdata(Sequence *seq) -{ - if(seq->strip) { - free_tstripdata(seq->strip->len, seq->strip->tstripdata); - free_tstripdata(seq->strip->endstill, - seq->strip->tstripdata_endstill); - free_tstripdata(seq->strip->startstill, - seq->strip->tstripdata_startstill); - - seq->strip->tstripdata= 0; - seq->strip->tstripdata_endstill= 0; - seq->strip->tstripdata_startstill= 0; - - if(seq->strip->ibuf_startstill) { - IMB_freeImBuf(seq->strip->ibuf_startstill); - seq->strip->ibuf_startstill = 0; - } - - if(seq->strip->ibuf_endstill) { - IMB_freeImBuf(seq->strip->ibuf_endstill); - seq->strip->ibuf_endstill = 0; - } - - seq->strip->len= seq->len; - } -} - - -/* free */ - -static void free_proxy_seq(Sequence *seq) -{ - if (seq->strip && seq->strip->proxy && seq->strip->proxy->anim) { - IMB_free_anim(seq->strip->proxy->anim); - seq->strip->proxy->anim = 0; - } -} - -void seq_free_strip(Strip *strip) -{ - strip->us--; - if(strip->us>0) return; - if(strip->us<0) { - printf("error: negative users in strip\n"); - return; - } - - if (strip->stripdata) { - MEM_freeN(strip->stripdata); - } - - if (strip->proxy) { - if (strip->proxy->anim) { - IMB_free_anim(strip->proxy->anim); - } - - MEM_freeN(strip->proxy); - } - if (strip->crop) { - MEM_freeN(strip->crop); - } - if (strip->transform) { - MEM_freeN(strip->transform); - } - if (strip->color_balance) { - MEM_freeN(strip->color_balance); - } - - free_tstripdata(strip->len, strip->tstripdata); - free_tstripdata(strip->endstill, strip->tstripdata_endstill); - free_tstripdata(strip->startstill, strip->tstripdata_startstill); - - if(strip->ibuf_startstill) { - IMB_freeImBuf(strip->ibuf_startstill); - strip->ibuf_startstill = 0; - } - - if(strip->ibuf_endstill) { - IMB_freeImBuf(strip->ibuf_endstill); - strip->ibuf_endstill = 0; - } - - MEM_freeN(strip); -} - -void seq_free_sequence(Scene *scene, Sequence *seq) -{ - Editing *ed = scene->ed; - - if(seq->strip) seq_free_strip(seq->strip); - - if(seq->anim) IMB_free_anim(seq->anim); - - if(seq->sound_handle) - sound_delete_handle(scene, seq->sound_handle); - - if (seq->type & SEQ_EFFECT) { - struct SeqEffectHandle sh = get_sequence_effect(seq); - - sh.free(seq); - } - - if (ed->act_seq==seq) - ed->act_seq= NULL; - - MEM_freeN(seq); -} - -Editing *seq_give_editing(Scene *scene, int alloc) -{ - if (scene->ed == NULL && alloc) { - Editing *ed; - - ed= scene->ed= MEM_callocN( sizeof(Editing), "addseq"); - ed->seqbasep= &ed->seqbase; - } - return scene->ed; -} - -void seq_free_editing(Scene *scene) -{ - Editing *ed = scene->ed; - MetaStack *ms; - Sequence *seq; - - if(ed==NULL) - return; - - SEQ_BEGIN(ed, seq) { - seq_free_sequence(scene, seq); - } - SEQ_END - - while((ms= ed->metastack.first)) { - BLI_remlink(&ed->metastack, ms); - MEM_freeN(ms); - } - - MEM_freeN(ed); -} - -/* ************************* itterator ************************** */ -/* *************** (replaces old WHILE_SEQ) ********************* */ -/* **************** use now SEQ_BEGIN() SEQ_END ***************** */ - -/* sequence strip iterator: - * - builds a full array, recursively into meta strips */ - -static void seq_count(ListBase *seqbase, int *tot) -{ - Sequence *seq; - - for(seq=seqbase->first; seq; seq=seq->next) { - (*tot)++; - - if(seq->seqbase.first) - seq_count(&seq->seqbase, tot); - } -} - -static void seq_build_array(ListBase *seqbase, Sequence ***array, int depth) -{ - Sequence *seq; - - for(seq=seqbase->first; seq; seq=seq->next) { - seq->depth= depth; - - if(seq->seqbase.first) - seq_build_array(&seq->seqbase, array, depth+1); - - **array= seq; - (*array)++; - } -} - -void seq_array(Editing *ed, Sequence ***seqarray, int *tot, int use_pointer) -{ - Sequence **array; - - *seqarray= NULL; - *tot= 0; - - if(ed == NULL) - return; - - if(use_pointer) - seq_count(ed->seqbasep, tot); - else - seq_count(&ed->seqbase, tot); - - if(*tot == 0) - return; - - *seqarray= array= MEM_mallocN(sizeof(Sequence *)*(*tot), "SeqArray"); - if(use_pointer) - seq_build_array(ed->seqbasep, &array, 0); - else - seq_build_array(&ed->seqbase, &array, 0); -} - -void seq_begin(Editing *ed, SeqIterator *iter, int use_pointer) -{ - memset(iter, 0, sizeof(*iter)); - seq_array(ed, &iter->array, &iter->tot, use_pointer); - - if(iter->tot) { - iter->cur= 0; - iter->seq= iter->array[iter->cur]; - iter->valid= 1; - } -} - -void seq_next(SeqIterator *iter) -{ - if(++iter->cur < iter->tot) - iter->seq= iter->array[iter->cur]; - else - iter->valid= 0; -} - -void seq_end(SeqIterator *iter) -{ - if(iter->array) - MEM_freeN(iter->array); - - iter->valid= 0; -} - -/* - ********************************************************************** - * build_seqar - ********************************************************************** - * Build a complete array of _all_ sequencies (including those - * in metastrips!) - ********************************************************************** -*/ - -static void do_seq_count(ListBase *seqbase, int *totseq) -{ - Sequence *seq; - - seq= seqbase->first; - while(seq) { - (*totseq)++; - if(seq->seqbase.first) do_seq_count(&seq->seqbase, totseq); - seq= seq->next; - } -} - -static void do_build_seqar(ListBase *seqbase, Sequence ***seqar, int depth) -{ - Sequence *seq; - - seq= seqbase->first; - while(seq) { - seq->depth= depth; - if(seq->seqbase.first) do_build_seqar(&seq->seqbase, seqar, depth+1); - **seqar= seq; - (*seqar)++; - seq= seq->next; - } -} - -void build_seqar(ListBase *seqbase, Sequence ***seqar, int *totseq) -{ - Sequence **tseqar; - - *totseq= 0; - do_seq_count(seqbase, totseq); - - if(*totseq==0) { - *seqar= 0; - return; - } - *seqar= MEM_mallocN(sizeof(void *)* *totseq, "seqar"); - tseqar= *seqar; - - do_build_seqar(seqbase, seqar, 0); - *seqar= tseqar; -} - -static void do_seq_count_cb(ListBase *seqbase, int *totseq, - int (*test_func)(Sequence * seq)) -{ - Sequence *seq; - - seq= seqbase->first; - while(seq) { - int test = test_func(seq); - if (test & BUILD_SEQAR_COUNT_CURRENT) { - (*totseq)++; - } - if(seq->seqbase.first && (test & BUILD_SEQAR_COUNT_CHILDREN)) { - do_seq_count_cb(&seq->seqbase, totseq, test_func); - } - seq= seq->next; - } -} - -static void do_build_seqar_cb(ListBase *seqbase, Sequence ***seqar, int depth, - int (*test_func)(Sequence * seq)) -{ - Sequence *seq; - - seq= seqbase->first; - while(seq) { - int test = test_func(seq); - seq->depth= depth; - - if(seq->seqbase.first && (test & BUILD_SEQAR_COUNT_CHILDREN)) { - do_build_seqar_cb(&seq->seqbase, seqar, depth+1, - test_func); - } - if (test & BUILD_SEQAR_COUNT_CURRENT) { - **seqar= seq; - (*seqar)++; - } - seq= seq->next; - } -} - -void build_seqar_cb(ListBase *seqbase, Sequence ***seqar, int *totseq, - int (*test_func)(Sequence * seq)) -{ - Sequence **tseqar; - - *totseq= 0; - do_seq_count_cb(seqbase, totseq, test_func); - - if(*totseq==0) { - *seqar= 0; - return; - } - *seqar= MEM_mallocN(sizeof(void *)* *totseq, "seqar"); - tseqar= *seqar; - - do_build_seqar_cb(seqbase, seqar, 0, test_func); - *seqar= tseqar; -} - - -void calc_sequence_disp(Sequence *seq) -{ - if(seq->startofs && seq->startstill) seq->startstill= 0; - if(seq->endofs && seq->endstill) seq->endstill= 0; - - seq->startdisp= seq->start + seq->startofs - seq->startstill; - seq->enddisp= seq->start+seq->len - seq->endofs + seq->endstill; - - seq->handsize= 10.0; /* 10 frames */ - if( seq->enddisp-seq->startdisp < 10 ) { - seq->handsize= (float)(0.5*(seq->enddisp-seq->startdisp)); - } - else if(seq->enddisp-seq->startdisp > 250) { - seq->handsize= (float)((seq->enddisp-seq->startdisp)/25); - } - - seq_update_sound(seq); -} - -void calc_sequence(Sequence *seq) -{ - Sequence *seqm; - int min, max; - - /* check all metas recursively */ - seqm= seq->seqbase.first; - while(seqm) { - if(seqm->seqbase.first) calc_sequence(seqm); - seqm= seqm->next; - } - - /* effects and meta: automatic start and end */ - - if(seq->type & SEQ_EFFECT) { - /* pointers */ - if(seq->seq2==0) seq->seq2= seq->seq1; - if(seq->seq3==0) seq->seq3= seq->seq1; - - /* effecten go from seq1 -> seq2: test */ - - /* we take the largest start and smallest end */ - - // seq->start= seq->startdisp= MAX2(seq->seq1->startdisp, seq->seq2->startdisp); - // seq->enddisp= MIN2(seq->seq1->enddisp, seq->seq2->enddisp); - - if (seq->seq1) { - seq->start= seq->startdisp= MAX3(seq->seq1->startdisp, seq->seq2->startdisp, seq->seq3->startdisp); - seq->enddisp= MIN3(seq->seq1->enddisp, seq->seq2->enddisp, seq->seq3->enddisp); - seq->len= seq->enddisp - seq->startdisp; - } else { - calc_sequence_disp(seq); - } - - if(seq->strip && seq->len!=seq->strip->len) { - new_tstripdata(seq); - } - - } - else { - if(seq->type==SEQ_META) { - seqm= seq->seqbase.first; - if(seqm) { - min= 1000000; - max= -1000000; - while(seqm) { - if(seqm->startdisp < min) min= seqm->startdisp; - if(seqm->enddisp > max) max= seqm->enddisp; - seqm= seqm->next; - } - seq->start= min + seq->anim_startofs; - seq->len = max-min; - seq->len -= seq->anim_startofs; - seq->len -= seq->anim_endofs; - - if(seq->strip && seq->len!=seq->strip->len) { - new_tstripdata(seq); - } - } - } - calc_sequence_disp(seq); - } -} - -void reload_sequence_new_file(Scene *scene, Sequence * seq) -{ - char str[FILE_MAXDIR+FILE_MAXFILE]; - - if (!(seq->type == SEQ_MOVIE || seq->type == SEQ_IMAGE || - seq->type == SEQ_SOUND || - seq->type == SEQ_SCENE || seq->type == SEQ_META)) { - return; - } - - new_tstripdata(seq); - - if (seq->type != SEQ_SCENE && seq->type != SEQ_META && - seq->type != SEQ_IMAGE) { - BLI_join_dirfile(str, seq->strip->dir, seq->strip->stripdata->name); - BLI_convertstringcode(str, G.sce); - BLI_convertstringframe(str, scene->r.cfra); - - } - - if (seq->type == SEQ_IMAGE) { - /* Hack? */ - int olen = MEM_allocN_len(seq->strip->stripdata)/sizeof(struct StripElem); - seq->len = olen; - seq->len -= seq->anim_startofs; - seq->len -= seq->anim_endofs; - if (seq->len < 0) { - seq->len = 0; - } - seq->strip->len = seq->len; - } else if (seq->type == SEQ_MOVIE) { - if(seq->anim) IMB_free_anim(seq->anim); - seq->anim = openanim(str, IB_rect | ((seq->flag & SEQ_FILTERY) ? IB_animdeinterlace : 0)); - - if (!seq->anim) { - return; - } - - seq->len = IMB_anim_get_duration(seq->anim); - - seq->anim_preseek = IMB_anim_get_preseek(seq->anim); - - seq->len -= seq->anim_startofs; - seq->len -= seq->anim_endofs; - if (seq->len < 0) { - seq->len = 0; - } - seq->strip->len = seq->len; - } else if (seq->type == SEQ_SOUND) { - seq->len = AUD_getInfo(seq->sound->handle).length * FPS; - seq->len -= seq->anim_startofs; - seq->len -= seq->anim_endofs; - if (seq->len < 0) { - seq->len = 0; - } - seq->strip->len = seq->len; - } else if (seq->type == SEQ_SCENE) { - Scene * sce = G.main->scene.first; - int nr = 1; - - while(sce) { - if(nr == seq->scenenr) { - break; - } - nr++; - sce= sce->id.next; - } - - if (sce) { - seq->scene = sce; - } else { - sce = seq->scene; - } - - BLI_strncpy(seq->name+2, sce->id.name + 2, SEQ_NAME_MAXSTR-2); - seqUniqueName(scene->ed->seqbasep, seq); - - seq->len= seq->scene->r.efra - seq->scene->r.sfra + 1; - seq->len -= seq->anim_startofs; - seq->len -= seq->anim_endofs; - if (seq->len < 0) { - seq->len = 0; - } - seq->strip->len = seq->len; - } - - free_proxy_seq(seq); - - calc_sequence(seq); -} - -void sort_seq(Scene *scene) -{ - /* all strips together per kind, and in order of y location ("machine") */ - ListBase seqbase, effbase; - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *seq, *seqt; - - - if(ed==NULL) return; - - seqbase.first= seqbase.last= 0; - effbase.first= effbase.last= 0; - - while( (seq= ed->seqbasep->first) ) { - BLI_remlink(ed->seqbasep, seq); - - if(seq->type & SEQ_EFFECT) { - seqt= effbase.first; - while(seqt) { - if(seqt->machine>=seq->machine) { - BLI_insertlinkbefore(&effbase, seqt, seq); - break; - } - seqt= seqt->next; - } - if(seqt==0) BLI_addtail(&effbase, seq); - } - else { - seqt= seqbase.first; - while(seqt) { - if(seqt->machine>=seq->machine) { - BLI_insertlinkbefore(&seqbase, seqt, seq); - break; - } - seqt= seqt->next; - } - if(seqt==0) BLI_addtail(&seqbase, seq); - } - } - - addlisttolist(&seqbase, &effbase); - *(ed->seqbasep)= seqbase; -} - - -void clear_scene_in_allseqs(Scene *sce) -{ - Scene *sce1; - Editing *ed; - Sequence *seq; - - /* when a scene is deleted: test all seqs */ - - sce1= G.main->scene.first; - while(sce1) { - if(sce1!=sce && sce1->ed) { - ed= sce1->ed; - - SEQ_BEGIN(ed, seq) { - - if(seq->scene==sce) seq->scene= 0; - - } - SEQ_END - } - - sce1= sce1->id.next; - } -} - -static char *give_seqname_by_type(int type) -{ - switch(type) { - case SEQ_META: return "Meta"; - case SEQ_IMAGE: return "Image"; - case SEQ_SCENE: return "Scene"; - case SEQ_MOVIE: return "Movie"; - case SEQ_SOUND: return "Audio"; - case SEQ_CROSS: return "Cross"; - case SEQ_GAMCROSS: return "Gamma Cross"; - case SEQ_ADD: return "Add"; - case SEQ_SUB: return "Sub"; - case SEQ_MUL: return "Mul"; - case SEQ_ALPHAOVER: return "Alpha Over"; - case SEQ_ALPHAUNDER: return "Alpha Under"; - case SEQ_OVERDROP: return "Over Drop"; - case SEQ_WIPE: return "Wipe"; - case SEQ_GLOW: return "Glow"; - case SEQ_TRANSFORM: return "Transform"; - case SEQ_COLOR: return "Color"; - case SEQ_SPEED: return "Speed"; - default: - return 0; - } -} - -char *give_seqname(Sequence *seq) -{ - char * name = give_seqname_by_type(seq->type); - - if (!name) { - if(seq->typestrip->dir; - } else if(seq->type==SEQ_PLUGIN) { - if(!(seq->flag & SEQ_EFFECT_NOT_LOADED) && - seq->plugin && seq->plugin->doit) { - return seq->plugin->pname; - } else { - return "Plugin"; - } - } else { - return "Effect"; - } - } - return name; -} - -/* ***************** DO THE SEQUENCE ***************** */ - -static void make_black_ibuf(ImBuf *ibuf) -{ - unsigned int *rect; - float *rect_float; - int tot; - - if(ibuf==0 || (ibuf->rect==0 && ibuf->rect_float==0)) return; - - tot= ibuf->x*ibuf->y; - - rect= ibuf->rect; - rect_float = ibuf->rect_float; - - if (rect) { - memset(rect, 0, tot * sizeof(char) * 4); - } - - if (rect_float) { - memset(rect_float, 0, tot * sizeof(float) * 4); - } -} - -static void multibuf(ImBuf *ibuf, float fmul) -{ - char *rt; - float *rt_float; - - int a, mul, icol; - - mul= (int)(256.0*fmul); - rt= (char *)ibuf->rect; - rt_float = ibuf->rect_float; - - if (rt) { - a= ibuf->x*ibuf->y; - while(a--) { - - icol= (mul*rt[0])>>8; - if(icol>254) rt[0]= 255; else rt[0]= icol; - icol= (mul*rt[1])>>8; - if(icol>254) rt[1]= 255; else rt[1]= icol; - icol= (mul*rt[2])>>8; - if(icol>254) rt[2]= 255; else rt[2]= icol; - icol= (mul*rt[3])>>8; - if(icol>254) rt[3]= 255; else rt[3]= icol; - - rt+= 4; - } - } - if (rt_float) { - a= ibuf->x*ibuf->y; - while(a--) { - rt_float[0] *= fmul; - rt_float[1] *= fmul; - rt_float[2] *= fmul; - rt_float[3] *= fmul; - - rt_float += 4; - } - } -} - -static void do_effect(Scene *scene, int cfra, Sequence *seq, TStripElem * se) -{ - TStripElem *se1, *se2, *se3; - float fac, facf; - int x, y; - int early_out; - struct SeqEffectHandle sh = get_sequence_effect(seq); - FCurve *fcu= NULL; - - if (!sh.execute) { /* effect not supported in this version... */ - make_black_ibuf(se->ibuf); - return; - } - - if ((seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) != 0) { - sh.get_default_fac(seq, cfra, &fac, &facf); - if( scene->r.mode & R_FIELDS ); else facf= fac; - } else { - fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, - "effect_fader", 0); - if (fcu) { - fac = facf = evaluate_fcurve(fcu, cfra); - if( scene->r.mode & R_FIELDS ) { - facf = evaluate_fcurve(fcu, cfra + 0.5); - } - } else { - fac = facf = seq->effect_fader; - } - } - - early_out = sh.early_out(seq, fac, facf); - - if (early_out == -1) { /* no input needed */ - sh.execute(scene, seq, cfra, fac, facf, - se->ibuf->x, se->ibuf->y, - 0, 0, 0, se->ibuf); - return; - } - - switch (early_out) { - case 0: - if (se->se1==0 || se->se2==0 || se->se3==0) { - make_black_ibuf(se->ibuf); - return; - } - - se1= se->se1; - se2= se->se2; - se3= se->se3; - - if ( (se1==0 || se2==0 || se3==0) - || (se1->ibuf==0 || se2->ibuf==0 || se3->ibuf==0)) { - make_black_ibuf(se->ibuf); - return; - } - - break; - case 1: - if (se->se1 == 0) { - make_black_ibuf(se->ibuf); - return; - } - - se1= se->se1; - - if (se1 == 0 || se1->ibuf == 0) { - make_black_ibuf(se->ibuf); - return; - } - - if (se->ibuf != se1->ibuf) { - IMB_freeImBuf(se->ibuf); - se->ibuf = se1->ibuf; - IMB_refImBuf(se->ibuf); - } - return; - case 2: - if (se->se2 == 0) { - make_black_ibuf(se->ibuf); - return; - } - - se2= se->se2; - - if (se2 == 0 || se2->ibuf == 0) { - make_black_ibuf(se->ibuf); - return; - } - if (se->ibuf != se2->ibuf) { - IMB_freeImBuf(se->ibuf); - se->ibuf = se2->ibuf; - IMB_refImBuf(se->ibuf); - } - return; - default: - make_black_ibuf(se->ibuf); - return; - } - - x= se2->ibuf->x; - y= se2->ibuf->y; - - if (!se1->ibuf->rect_float && se->ibuf->rect_float) { - IMB_float_from_rect(se1->ibuf); - } - if (!se2->ibuf->rect_float && se->ibuf->rect_float) { - IMB_float_from_rect(se2->ibuf); - } - if (!se3->ibuf->rect_float && se->ibuf->rect_float) { - IMB_float_from_rect(se3->ibuf); - } - - if (!se1->ibuf->rect && !se->ibuf->rect_float) { - IMB_rect_from_float(se1->ibuf); - } - if (!se2->ibuf->rect && !se->ibuf->rect_float) { - IMB_rect_from_float(se2->ibuf); - } - if (!se3->ibuf->rect && !se->ibuf->rect_float) { - IMB_rect_from_float(se3->ibuf); - } - - sh.execute(scene, seq, cfra, fac, facf, x, y, se1->ibuf, se2->ibuf, se3->ibuf, - se->ibuf); -} - -static int give_stripelem_index(Sequence *seq, int cfra) -{ - int nr; - - if(seq->startdisp >cfra || seq->enddisp <= cfra) return -1; - if(seq->len == 0) return -1; - if(seq->flag&SEQ_REVERSE_FRAMES) { - /*reverse frame in this sequence */ - if(cfra <= seq->start) nr= seq->len-1; - else if(cfra >= seq->start+seq->len-1) nr= 0; - else nr= (seq->start + seq->len) - cfra; - } else { - if(cfra <= seq->start) nr= 0; - else if(cfra >= seq->start+seq->len-1) nr= seq->len-1; - else nr= cfra-seq->start; - } - if (seq->strobe < 1.0) seq->strobe = 1.0; - if (seq->strobe > 1.0) { - nr -= (int)fmod((double)nr, (double)seq->strobe); - } - - return nr; -} - -static TStripElem* alloc_tstripdata(int len, const char * name) -{ - int i; - TStripElem *se = MEM_callocN(len * sizeof(TStripElem), name); - for (i = 0; i < len; i++) { - se[i].ok = STRIPELEM_OK; - } - return se; -} - -static TStripElem *give_tstripelem(Sequence *seq, int cfra) -{ - TStripElem *se; - int nr; - - se = seq->strip->tstripdata; - if (se == 0 && seq->len > 0) { - se = seq->strip->tstripdata = alloc_tstripdata(seq->len, - "tstripelems"); - } - nr = give_stripelem_index(seq, cfra); - - if (nr == -1) return 0; - if (se == 0) return 0; - - se += nr; - - /* if there are IPOs with blend modes active, one has to watch out - for startstill + endstill area: we can't use the same tstripelem - here for all ibufs, since then, blending with IPOs won't work! - - Rather common case, if you use a single image and try to fade - it in and out... or want to use your strip as a watermark in - alpha over mode... - */ - if (seq->blend_mode != SEQ_BLEND_REPLACE || - (/*seq->ipo && seq->ipo->curve.first &&*/ - (!(seq->type & SEQ_EFFECT) || !seq->seq1))) { - Strip * s = seq->strip; - if (cfra < seq->start) { - se = s->tstripdata_startstill; - if (seq->startstill > s->startstill) { - free_tstripdata(s->startstill, - s->tstripdata_startstill); - se = 0; - } - - if (se == 0) { - s->startstill = seq->startstill; - se = seq->strip->tstripdata_startstill - = alloc_tstripdata( - s->startstill, - "tstripelems_startstill"); - } - se += seq->start - cfra - 1; - - } else if (cfra > seq->start + seq->len-1) { - se = s->tstripdata_endstill; - if (seq->endstill > s->endstill) { - free_tstripdata(s->endstill, - s->tstripdata_endstill); - se = 0; - } - - if (se == 0) { - s->endstill = seq->endstill; - se = seq->strip->tstripdata_endstill - = alloc_tstripdata( - s->endstill, - "tstripelems_endstill"); - } - se += cfra - (seq->start + seq->len-1) - 1; - } - } - - - se->nr= nr; - - return se; -} - -StripElem *give_stripelem(Sequence *seq, int cfra) -{ - StripElem *se; - int nr; - - se = seq->strip->stripdata; - nr = give_stripelem_index(seq, cfra); - - if (nr == -1) return 0; - if (se == 0) return 0; - - se += nr + seq->anim_startofs; - - return se; -} - -static int evaluate_seq_frame_gen(Sequence ** seq_arr, ListBase *seqbase, int cfra) -{ - Sequence *seq; - int totseq=0; - - memset(seq_arr, 0, sizeof(Sequence*) * (MAXSEQ+1)); - - seq= seqbase->first; - while(seq) { - if(seq->startdisp <=cfra && seq->enddisp > cfra) { - seq_arr[seq->machine]= seq; - totseq++; - } - seq= seq->next; - } - - return totseq; -} - -int evaluate_seq_frame(Scene *scene, int cfra) -{ - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *seq_arr[MAXSEQ+1]; - - if(ed==NULL) return 0; - return evaluate_seq_frame_gen(seq_arr, ed->seqbasep, cfra); -} - -static int video_seq_is_rendered(Sequence * seq) -{ - return (seq - && !(seq->flag & SEQ_MUTE) - && seq->type != SEQ_SOUND); -} - -static int get_shown_sequences( ListBase * seqbasep, int cfra, int chanshown, Sequence ** seq_arr_out) -{ - Sequence *seq_arr[MAXSEQ+1]; - int b = chanshown; - int cnt = 0; - - if (b > MAXSEQ) { - return 0; - } - - if(evaluate_seq_frame_gen(seq_arr, seqbasep, cfra)) { - if (b > 0) { - if (seq_arr[b] == 0) { - return 0; - } - } else { - for (b = MAXSEQ; b > 0; b--) { - if (video_seq_is_rendered(seq_arr[b])) { - break; - } - } - } - } - - chanshown = b; - - for (;b > 0; b--) { - if (video_seq_is_rendered(seq_arr[b])) { - if (seq_arr[b]->blend_mode == SEQ_BLEND_REPLACE) { - break; - } - } - } - - for (;b <= chanshown; b++) { - if (video_seq_is_rendered(seq_arr[b])) { - seq_arr_out[cnt++] = seq_arr[b]; - } - } - - return cnt; -} - - -/* ********************************************************************** - proxy management - ********************************************************************** */ - -#define PROXY_MAXFILE (2*FILE_MAXDIR+FILE_MAXFILE) - -static int seq_proxy_get_fname(Scene *scene, Sequence * seq, int cfra, char * name, int render_size) -{ - int frameno; - char dir[FILE_MAXDIR]; - - if (!seq->strip->proxy) { - return FALSE; - } - - if (seq->flag & SEQ_USE_PROXY_CUSTOM_DIR) { - strcpy(dir, seq->strip->proxy->dir); - } else { - if (seq->type == SEQ_IMAGE || seq->type == SEQ_MOVIE) { - snprintf(dir, FILE_MAXDIR, "%s/BL_proxy", - seq->strip->dir); - } else { - return FALSE; - } - } - - if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { - BLI_join_dirfile(name, dir, seq->strip->proxy->file); - BLI_convertstringcode(name, G.sce); - BLI_convertstringframe(name, cfra); - - return TRUE; - } - - /* generate a separate proxy directory for each preview size */ - - if (seq->type == SEQ_IMAGE) { - StripElem * se = give_stripelem(seq, cfra); - snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", - dir, render_size, se->name); - frameno = 1; - } else if (seq->type == SEQ_MOVIE) { - TStripElem * tse = give_tstripelem(seq, cfra); - - frameno = tse->nr + seq->anim_startofs; - - snprintf(name, PROXY_MAXFILE, "%s/%s/%d/####", dir, - seq->strip->stripdata->name, - render_size); - } else { - TStripElem * tse = give_tstripelem(seq, cfra); - - frameno = tse->nr + seq->anim_startofs; - - snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, - render_size); - } - - BLI_convertstringcode(name, G.sce); - BLI_convertstringframe(name, frameno); - - - strcat(name, ".jpg"); - - return TRUE; -} - -static struct ImBuf * seq_proxy_fetch(Scene *scene, Sequence * seq, int cfra, int render_size) -{ - char name[PROXY_MAXFILE]; - - if (!(seq->flag & SEQ_USE_PROXY)) { - return 0; - } - - /* rendering at 100% ? No real sense in proxy-ing, right? */ - if (render_size == 100) { - return 0; - } - - if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { - TStripElem * tse = give_tstripelem(seq, cfra); - int frameno = tse->nr + seq->anim_startofs; - if (!seq->strip->proxy->anim) { - if (!seq_proxy_get_fname(scene, seq, cfra, name, render_size)) { - return 0; - } - - seq->strip->proxy->anim = openanim(name, IB_rect); - } - if (!seq->strip->proxy->anim) { - return 0; - } - - return IMB_anim_absolute(seq->strip->proxy->anim, frameno); - } - - if (!seq_proxy_get_fname(scene, seq, cfra, name, render_size)) { - return 0; - } - - if (BLI_exists(name)) { - return IMB_loadiffname(name, IB_rect); - } else { - return 0; - } -} - -#if 0 -static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int cfra, - int build_proxy_run, int render_size); - -static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int render_size) -{ - char name[PROXY_MAXFILE]; - int quality; - TStripElem * se; - int ok; - int rectx, recty; - struct ImBuf * ibuf; - - if (!(seq->flag & SEQ_USE_PROXY)) { - return; - } - - /* rendering at 100% ? No real sense in proxy-ing, right? */ - if (render_size == 100) { - return; - } - - /* that's why it is called custom... */ - if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { - return; - } - - if (!seq_proxy_get_fname(scene, seq, cfra, name, render_size)) { - return; - } - - se = give_tstripelem(seq, cfra); - if (!se) { - return; - } - - if(se->ibuf) { - IMB_freeImBuf(se->ibuf); - se->ibuf = 0; - } - - do_build_seq_ibuf(scene, seq, se, cfra, TRUE, render_size); - - if (!se->ibuf) { - return; - } - - rectx= (render_size*scene->r.xsch)/100; - recty= (render_size*scene->r.ysch)/100; - - ibuf = se->ibuf; - - if (ibuf->x != rectx || ibuf->y != recty) { - IMB_scalefastImBuf(ibuf, (short)rectx, (short)recty); - } - - /* quality is fixed, otherwise one has to generate separate - directories for every quality... - - depth = 32 is intentionally left in, otherwise ALPHA channels - won't work... */ - quality = seq->strip->proxy->quality; - ibuf->ftype= JPG | quality; - - BLI_make_existing_file(name); - - ok = IMB_saveiff(ibuf, name, IB_rect | IB_zbuf | IB_zbuffloat); - if (ok == 0) { - perror(name); - } - - IMB_freeImBuf(ibuf); - se->ibuf = 0; -} - -static void seq_proxy_rebuild(Scene *scene, Sequence * seq) -{ - int cfra; - float rsize = seq->strip->proxy->size; - - waitcursor(1); - - G.afbreek = 0; - - /* flag management tries to account for strobe and - other "non-linearities", that might come in the future... - better way would be to "touch" the files, so that _really_ - no one is rebuild twice. - */ - - for (cfra = seq->startdisp; cfra < seq->enddisp; cfra++) { - TStripElem * tse = give_tstripelem(seq, cfra); - - tse->flag &= ~STRIPELEM_PREVIEW_DONE; - } - - - - /* a _lot_ faster for movie files, if we read frames in - sequential order */ - if (seq->flag & SEQ_REVERSE_FRAMES) { - for (cfra = seq->enddisp-seq->endstill-1; - cfra >= seq->startdisp + seq->startstill; cfra--) { - TStripElem * tse = give_tstripelem(seq, cfra); - - if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) { -//XXX set_timecursor(cfra); - seq_proxy_build_frame(scene, seq, cfra, rsize); - tse->flag |= STRIPELEM_PREVIEW_DONE; - } - if (blender_test_break()) { - break; - } - } - } else { - for (cfra = seq->startdisp + seq->startstill; - cfra < seq->enddisp - seq->endstill; cfra++) { - TStripElem * tse = give_tstripelem(seq, cfra); - - if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) { -//XXX set_timecursor(cfra); - seq_proxy_build_frame(scene, seq, cfra, rsize); - tse->flag |= STRIPELEM_PREVIEW_DONE; - } - if (blender_test_break()) { - break; - } - } - } - waitcursor(0); -} -#endif - - -/* ********************************************************************** - color balance - ********************************************************************** */ - -static StripColorBalance calc_cb(StripColorBalance * cb_) -{ - StripColorBalance cb = *cb_; - int c; - - if (cb.flag & SEQ_COLOR_BALANCE_INVERSE_LIFT) { - for (c = 0; c < 3; c++) { - cb.lift[c] = 1.0 - cb.lift[c]; - } - } else { - for (c = 0; c < 3; c++) { - cb.lift[c] = -(1.0 - cb.lift[c]); - } - } - if (cb.flag & SEQ_COLOR_BALANCE_INVERSE_GAIN) { - for (c = 0; c < 3; c++) { - if (cb.gain[c] != 0.0) { - cb.gain[c] = 1.0/cb.gain[c]; - } else { - cb.gain[c] = 1000000; /* should be enough :) */ - } - } - } - - if (!(cb.flag & SEQ_COLOR_BALANCE_INVERSE_GAMMA)) { - for (c = 0; c < 3; c++) { - if (cb.gamma[c] != 0.0) { - cb.gamma[c] = 1.0/cb.gamma[c]; - } else { - cb.gamma[c] = 1000000; /* should be enough :) */ - } - } - } - - return cb; -} - -static void make_cb_table_byte(float lift, float gain, float gamma, - unsigned char * table, float mul) -{ - int y; - - for (y = 0; y < 256; y++) { - float v = 1.0 * y / 255; - v *= gain; - v += lift; - v = pow(v, gamma); - v *= mul; - if ( v > 1.0) { - v = 1.0; - } else if (v < 0.0) { - v = 0.0; - } - table[y] = v * 255; - } - -} - -static void make_cb_table_float(float lift, float gain, float gamma, - float * table, float mul) -{ - int y; - - for (y = 0; y < 256; y++) { - float v = (float) y * 1.0 / 255.0; - v *= gain; - v += lift; - v = pow(v, gamma); - v *= mul; - table[y] = v; - } -} - -static void color_balance_byte_byte(Sequence * seq, TStripElem* se, float mul) -{ - unsigned char cb_tab[3][256]; - int c; - unsigned char * p = (unsigned char*) se->ibuf->rect; - unsigned char * e = p + se->ibuf->x * 4 * se->ibuf->y; - - StripColorBalance cb = calc_cb(seq->strip->color_balance); - - for (c = 0; c < 3; c++) { - make_cb_table_byte(cb.lift[c], cb.gain[c], cb.gamma[c], - cb_tab[c], mul); - } - - while (p < e) { - p[0] = cb_tab[0][p[0]]; - p[1] = cb_tab[1][p[1]]; - p[2] = cb_tab[2][p[2]]; - - p += 4; - } -} - -static void color_balance_byte_float(Sequence * seq, TStripElem* se, float mul) -{ - float cb_tab[4][256]; - int c,i; - unsigned char * p = (unsigned char*) se->ibuf->rect; - unsigned char * e = p + se->ibuf->x * 4 * se->ibuf->y; - float * o; - StripColorBalance cb; - - imb_addrectfloatImBuf(se->ibuf); - - o = se->ibuf->rect_float; - - cb = calc_cb(seq->strip->color_balance); - - for (c = 0; c < 3; c++) { - make_cb_table_float(cb.lift[c], cb.gain[c], cb.gamma[c], - cb_tab[c], mul); - } - - for (i = 0; i < 256; i++) { - cb_tab[3][i] = ((float)i)*(1.0f/255.0f); - } - - while (p < e) { - o[0] = cb_tab[0][p[0]]; - o[1] = cb_tab[1][p[1]]; - o[2] = cb_tab[2][p[2]]; - o[3] = cb_tab[3][p[3]]; - - p += 4; o += 4; - } -} - -static void color_balance_float_float(Sequence * seq, TStripElem* se, float mul) -{ - float * p = se->ibuf->rect_float; - float * e = se->ibuf->rect_float + se->ibuf->x * 4* se->ibuf->y; - StripColorBalance cb = calc_cb(seq->strip->color_balance); - - while (p < e) { - int c; - for (c = 0; c < 3; c++) { - p[c] = pow(p[c] * cb.gain[c] + cb.lift[c], - cb.gamma[c]) * mul; - } - p += 4; - } -} - -static void color_balance(Sequence * seq, TStripElem* se, float mul) -{ - if (se->ibuf->rect_float) { - color_balance_float_float(seq, se, mul); - } else if(seq->flag & SEQ_MAKE_FLOAT) { - color_balance_byte_float(seq, se, mul); - } else { - color_balance_byte_byte(seq, se, mul); - } -} - -/* - input preprocessing for SEQ_IMAGE, SEQ_MOVIE and SEQ_SCENE - - Do all the things you can't really do afterwards using sequence effects - (read: before rescaling to render resolution has been done) - - Order is important! - - - Deinterlace - - Crop and transform in image source coordinate space - - Flip X + Flip Y (could be done afterwards, backward compatibility) - - Promote image to float data (affects pipeline operations afterwards) - - Color balance (is most efficient in the byte -> float - (future: half -> float should also work fine!) - case, if done on load, since we can use lookup tables) - - Premultiply - -*/ - -static int input_have_to_preprocess(Scene *scene, Sequence * seq, TStripElem* se, int cfra) -{ - float mul; - - if ((seq->flag & SEQ_FILTERY) || - (seq->flag & SEQ_USE_CROP) || - (seq->flag & SEQ_USE_TRANSFORM) || - (seq->flag & SEQ_FLIPX) || - (seq->flag & SEQ_FLIPY) || - (seq->flag & SEQ_USE_COLOR_BALANCE) || - (seq->flag & SEQ_MAKE_PREMUL) || - (se->ibuf->x != seqrectx || se->ibuf->y != seqrecty)) { - return TRUE; - } - - mul = seq->mul; - - if(seq->blend_mode == SEQ_BLEND_REPLACE && - !(seq->type & SEQ_EFFECT)) { - mul *= seq->blend_opacity / 100.0; - } - - if (mul != 1.0) { - return TRUE; - } - - return FALSE; -} - -static void input_preprocess(Scene *scene, Sequence *seq, TStripElem *se, int cfra) -{ - float mul; - - seq->strip->orx= se->ibuf->x; - seq->strip->ory= se->ibuf->y; - - if((seq->flag & SEQ_FILTERY) && seq->type != SEQ_MOVIE) { - IMB_filtery(se->ibuf); - } - - if(seq->flag & SEQ_USE_CROP || seq->flag & SEQ_USE_TRANSFORM) { - StripCrop c; - StripTransform t; - int sx,sy,dx,dy; - - memset(&c, 0, sizeof(StripCrop)); - memset(&t, 0, sizeof(StripTransform)); - - if(seq->flag & SEQ_USE_CROP && seq->strip->crop) { - c = *seq->strip->crop; - } - if(seq->flag & SEQ_USE_TRANSFORM && seq->strip->transform) { - t = *seq->strip->transform; - } - - sx = se->ibuf->x - c.left - c.right; - sy = se->ibuf->y - c.top - c.bottom; - dx = sx; - dy = sy; - - if (seq->flag & SEQ_USE_TRANSFORM) { - dx = scene->r.xsch; - dy = scene->r.ysch; - } - - if (c.top + c.bottom >= se->ibuf->y || - c.left + c.right >= se->ibuf->x || - t.xofs >= dx || t.yofs >= dy) { - make_black_ibuf(se->ibuf); - } else { - ImBuf * i; - - if (se->ibuf->rect_float) { - i = IMB_allocImBuf(dx, dy,32, IB_rectfloat, 0); - } else { - i = IMB_allocImBuf(dx, dy,32, IB_rect, 0); - } - - IMB_rectcpy(i, se->ibuf, - t.xofs, t.yofs, - c.left, c.bottom, - sx, sy); - - IMB_freeImBuf(se->ibuf); - - se->ibuf = i; - } - } - - if(seq->flag & SEQ_FLIPX) { - IMB_flipx(se->ibuf); - } - if(seq->flag & SEQ_FLIPY) { - IMB_flipy(se->ibuf); - } - - if(seq->mul == 0.0) { - seq->mul = 1.0; - } - - mul = seq->mul; - - if(seq->blend_mode == SEQ_BLEND_REPLACE) { - mul *= seq->blend_opacity / 100.0; - } - - if(seq->flag & SEQ_USE_COLOR_BALANCE && seq->strip->color_balance) { - color_balance(seq, se, mul); - mul = 1.0; - } - - if(seq->flag & SEQ_MAKE_FLOAT) { - if (!se->ibuf->rect_float) { - IMB_float_from_rect(se->ibuf); - } - if (se->ibuf->rect) { - imb_freerectImBuf(se->ibuf); - } - } - - if(mul != 1.0) { - multibuf(se->ibuf, mul); - } - - if(seq->flag & SEQ_MAKE_PREMUL) { - if(se->ibuf->depth == 32 && se->ibuf->zbuf == 0) { - converttopremul(se->ibuf); - } - } - - - if(se->ibuf->x != seqrectx || se->ibuf->y != seqrecty ) { - if(scene->r.mode & R_OSA) { - IMB_scaleImBuf(se->ibuf, - (short)seqrectx, (short)seqrecty); - } else { - IMB_scalefastImBuf(se->ibuf, - (short)seqrectx, (short)seqrecty); - } - } -} - -/* test if image too small or discarded from cache: reload */ - -static void test_and_auto_discard_ibuf(TStripElem * se) -{ - if (se->ibuf) { - if(se->ibuf->x != seqrectx || se->ibuf->y != seqrecty - || !(se->ibuf->rect || se->ibuf->rect_float)) { - IMB_freeImBuf(se->ibuf); - - se->ibuf= 0; - se->ok= STRIPELEM_OK; - } - } - if (se->ibuf_comp) { - if(se->ibuf_comp->x != seqrectx || se->ibuf_comp->y != seqrecty - || !(se->ibuf_comp->rect || se->ibuf_comp->rect_float)) { - IMB_freeImBuf(se->ibuf_comp); - - se->ibuf_comp = 0; - } - } -} - -static void test_and_auto_discard_ibuf_stills(Strip * strip) -{ - if (strip->ibuf_startstill) { - if (!strip->ibuf_startstill->rect && - !strip->ibuf_startstill->rect_float) { - IMB_freeImBuf(strip->ibuf_startstill); - strip->ibuf_startstill = 0; - } - } - if (strip->ibuf_endstill) { - if (!strip->ibuf_endstill->rect && - !strip->ibuf_endstill->rect_float) { - IMB_freeImBuf(strip->ibuf_endstill); - strip->ibuf_endstill = 0; - } - } -} - -static void copy_from_ibuf_still(Sequence * seq, TStripElem * se) -{ - if (!se->ibuf) { - if (se->nr == 0 && seq->strip->ibuf_startstill) { - IMB_cache_limiter_touch(seq->strip->ibuf_startstill); - - se->ibuf = IMB_dupImBuf(seq->strip->ibuf_startstill); - } - if (se->nr == seq->len - 1 - && (seq->len != 1) - && seq->strip->ibuf_endstill) { - IMB_cache_limiter_touch(seq->strip->ibuf_endstill); - - se->ibuf = IMB_dupImBuf(seq->strip->ibuf_endstill); - } - } -} - -static void copy_to_ibuf_still(Sequence * seq, TStripElem * se) -{ - if (se->ibuf) { - if (se->nr == 0) { - seq->strip->ibuf_startstill = IMB_dupImBuf(se->ibuf); - - IMB_cache_limiter_insert(seq->strip->ibuf_startstill); - IMB_cache_limiter_touch(seq->strip->ibuf_startstill); - } - if (se->nr == seq->len - 1 && seq->len != 1) { - seq->strip->ibuf_endstill = IMB_dupImBuf(se->ibuf); - - IMB_cache_limiter_insert(seq->strip->ibuf_endstill); - IMB_cache_limiter_touch(seq->strip->ibuf_endstill); - } - } -} - -static void free_metastrip_imbufs(ListBase *seqbasep, int cfra, int chanshown) -{ - Sequence* seq_arr[MAXSEQ+1]; - int i; - TStripElem* se = 0; - - evaluate_seq_frame_gen(seq_arr, seqbasep, cfra); - - for (i = 0; i < MAXSEQ; i++) { - if (!video_seq_is_rendered(seq_arr[i])) { - continue; - } - se = give_tstripelem(seq_arr[i], cfra); - if (se) { - if (se->ibuf) { - IMB_freeImBuf(se->ibuf); - - se->ibuf= 0; - se->ok= STRIPELEM_OK; - } - - if (se->ibuf_comp) { - IMB_freeImBuf(se->ibuf_comp); - - se->ibuf_comp = 0; - } - } - } - -} - -static void check_limiter_refcount(const char * func, TStripElem *se) -{ - if (se && se->ibuf) { - int refcount = IMB_cache_limiter_get_refcount(se->ibuf); - if (refcount != 1) { - /* can happen on complex pipelines */ - if (refcount > 1 && (G.f & G_DEBUG) == 0) { - return; - } - - fprintf(stderr, - "sequencer: (ibuf) %s: " - "suspicious memcache " - "limiter refcount: %d\n", func, refcount); - } - } -} - -static void check_limiter_refcount_comp(const char * func, TStripElem *se) -{ - if (se && se->ibuf_comp) { - int refcount = IMB_cache_limiter_get_refcount(se->ibuf_comp); - if (refcount != 1) { - /* can happen on complex pipelines */ - if (refcount > 1 && (G.f & G_DEBUG) == 0) { - return; - } - fprintf(stderr, - "sequencer: (ibuf comp) %s: " - "suspicious memcache " - "limiter refcount: %d\n", func, refcount); - } - } -} - -static TStripElem* do_build_seq_array_recursively(Scene *scene, - ListBase *seqbasep, int cfra, int chanshown, int render_size); - -static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int cfra, - int build_proxy_run, int render_size) -{ - char name[FILE_MAXDIR+FILE_MAXFILE]; - int use_limiter = TRUE; - - test_and_auto_discard_ibuf(se); - test_and_auto_discard_ibuf_stills(seq->strip); - - if(seq->type == SEQ_META) { - TStripElem * meta_se = 0; - int use_preprocess = FALSE; - use_limiter = FALSE; - - if (!build_proxy_run && se->ibuf == 0) { - se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); - if (se->ibuf) { - use_limiter = TRUE; - use_preprocess = TRUE; - } - } - - if(!se->ibuf && seq->seqbase.first) { - meta_se = do_build_seq_array_recursively(scene, - &seq->seqbase, seq->start + se->nr, 0, - render_size); - - check_limiter_refcount("do_build_seq_ibuf: for META", meta_se); - } - - se->ok = STRIPELEM_OK; - - if(!se->ibuf && meta_se) { - se->ibuf = meta_se->ibuf_comp; - if(se->ibuf && - (!input_have_to_preprocess(scene, seq, se, cfra) || - build_proxy_run)) { - IMB_refImBuf(se->ibuf); - if (build_proxy_run) { - IMB_cache_limiter_unref(se->ibuf); - } - } else if (se->ibuf) { - struct ImBuf * i = IMB_dupImBuf(se->ibuf); - - IMB_cache_limiter_unref(se->ibuf); - - se->ibuf = i; - - use_limiter = TRUE; - use_preprocess = TRUE; - } - } else if (se->ibuf) { - use_limiter = TRUE; - } - if (meta_se) { - free_metastrip_imbufs( - &seq->seqbase, seq->start + se->nr, 0); - } - - if (use_preprocess) { - input_preprocess(scene, seq, se, cfra); - } - } else if(seq->type & SEQ_EFFECT) { - int use_preprocess = FALSE; - /* should the effect be recalculated? */ - - if (!build_proxy_run && se->ibuf == 0) { - se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); - if (se->ibuf) { - use_preprocess = TRUE; - } - } - - if(se->ibuf == 0) { - /* if any inputs are rectfloat, output is float too */ - if((se->se1 && se->se1->ibuf && se->se1->ibuf->rect_float) || - (se->se2 && se->se2->ibuf && se->se2->ibuf->rect_float) || - (se->se3 && se->se3->ibuf && se->se3->ibuf->rect_float)) - se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rectfloat, 0); - else - se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rect, 0); - - do_effect(scene, cfra, seq, se); - if (input_have_to_preprocess(scene, seq, se, cfra) && - !build_proxy_run) { - if ((se->se1 && (se->ibuf == se->se1->ibuf)) || - (se->se2 && (se->ibuf == se->se2->ibuf))) { - struct ImBuf * i - = IMB_dupImBuf(se->ibuf); - - IMB_freeImBuf(se->ibuf); - - se->ibuf = i; - } - use_preprocess = TRUE; - } - } - if (use_preprocess) { - input_preprocess(scene, seq, se, cfra); - } - } else if(seq->type == SEQ_IMAGE) { - if(se->ok == STRIPELEM_OK && se->ibuf == 0) { - StripElem * s_elem = give_stripelem(seq, cfra); - BLI_join_dirfile(name, seq->strip->dir, s_elem->name); - BLI_convertstringcode(name, G.sce); - BLI_convertstringframe(name, scene->r.cfra); - if (!build_proxy_run) { - se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); - } - copy_from_ibuf_still(seq, se); - - if (!se->ibuf) { - se->ibuf= IMB_loadiffname( - name, IB_rect); - /* we don't need both (speed reasons)! */ - if (se->ibuf && - se->ibuf->rect_float && se->ibuf->rect) { - imb_freerectImBuf(se->ibuf); - } - - copy_to_ibuf_still(seq, se); - } - - if(se->ibuf == 0) { - se->ok = STRIPELEM_FAILED; - } else if (!build_proxy_run) { - input_preprocess(scene, seq, se, cfra); - } - } - } else if(seq->type == SEQ_MOVIE) { - if(se->ok == STRIPELEM_OK && se->ibuf==0) { - if(!build_proxy_run) { - se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); - } - copy_from_ibuf_still(seq, se); - - if (se->ibuf == 0) { - if(seq->anim==0) { - BLI_join_dirfile(name, seq->strip->dir, seq->strip->stripdata->name); - BLI_convertstringcode(name, G.sce); - BLI_convertstringframe(name, scene->r.cfra); - - seq->anim = openanim( - name, IB_rect | - ((seq->flag & SEQ_FILTERY) - ? IB_animdeinterlace : 0)); - } - if(seq->anim) { - IMB_anim_set_preseek(seq->anim, seq->anim_preseek); - se->ibuf = IMB_anim_absolute(seq->anim, se->nr + seq->anim_startofs); - /* we don't need both (speed reasons)! */ - if (se->ibuf - && se->ibuf->rect_float - && se->ibuf->rect) { - imb_freerectImBuf(se->ibuf); - } - - } - copy_to_ibuf_still(seq, se); - } - - if(se->ibuf == 0) { - se->ok = STRIPELEM_FAILED; - } else if (!build_proxy_run) { - input_preprocess(scene, seq, se, cfra); - } - } - } else if(seq->type == SEQ_SCENE) { // scene can be NULL after deletions - Scene *sce= seq->scene;// *oldsce= scene; - Render *re; - RenderResult rres; - char scenename[64]; - int have_seq= (sce->r.scemode & R_DOSEQ) && sce->ed && sce->ed->seqbase.first; - int sce_valid =sce && (sce->camera || have_seq); - - if (se->ibuf == NULL && sce_valid && !build_proxy_run) { - se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); - if (se->ibuf) { - input_preprocess(scene, seq, se, cfra); - } - } - - if (se->ibuf == NULL && sce_valid) { - copy_from_ibuf_still(seq, se); - if (se->ibuf) { - input_preprocess(scene, seq, se, cfra); - } - } - - if (!sce_valid) { - se->ok = STRIPELEM_FAILED; - } else if (se->ibuf==NULL && sce_valid) { - int oldcfra; - /* Hack! This function can be called from do_render_seq(), in that case - the seq->scene can already have a Render initialized with same name, - so we have to use a default name. (compositor uses scene name to - find render). - However, when called from within the UI (image preview in sequencer) - we do want to use scene Render, that way the render result is defined - for display in render/imagewindow - - Hmm, don't see, why we can't do that all the time, - and since G.rendering is uhm, gone... (Peter) - */ - - int rendering = 1; - int doseq; - - oldcfra = seq->scene->r.cfra; - - if(rendering) { - BLI_strncpy(scenename, sce->id.name+2, 64); - strcpy(sce->id.name+2, " do_build_seq_ibuf"); - } - re= RE_NewRender(sce->id.name); - - /* prevent eternal loop */ - doseq= scene->r.scemode & R_DOSEQ; - scene->r.scemode &= ~R_DOSEQ; - - RE_BlenderFrame(re, sce, - seq->sfra+se->nr+seq->anim_startofs); - - if(rendering) - BLI_strncpy(sce->id.name+2, scenename, 64); - - RE_AcquireResultImage(re, &rres); - - if(rres.rectf) { - se->ibuf= IMB_allocImBuf(rres.rectx, rres.recty, 32, IB_rectfloat, 0); - memcpy(se->ibuf->rect_float, rres.rectf, 4*sizeof(float)*rres.rectx*rres.recty); - if(rres.rectz) { - addzbuffloatImBuf(se->ibuf); - memcpy(se->ibuf->zbuf_float, rres.rectz, sizeof(float)*rres.rectx*rres.recty); - } - } else if (rres.rect32) { - se->ibuf= IMB_allocImBuf(rres.rectx, rres.recty, 32, IB_rect, 0); - memcpy(se->ibuf->rect, rres.rect32, 4*rres.rectx*rres.recty); - } - - RE_ReleaseResultImage(re); - - // BIF_end_render_callbacks(); - - /* restore */ - scene->r.scemode |= doseq; - - seq->scene->r.cfra = oldcfra; - - copy_to_ibuf_still(seq, se); - - if (!build_proxy_run) { - if(se->ibuf == NULL) { - se->ok = STRIPELEM_FAILED; - } else { - input_preprocess(scene, seq, se, cfra); - } - } - - } - } - if (!build_proxy_run) { - if (se->ibuf && use_limiter) { - IMB_cache_limiter_insert(se->ibuf); - IMB_cache_limiter_ref(se->ibuf); - IMB_cache_limiter_touch(se->ibuf); - } - } -} - -static TStripElem* do_build_seq_recursively(Scene *scene, Sequence *seq, int cfra, int render_size); - -static void do_effect_seq_recursively(Scene *scene, Sequence *seq, TStripElem *se, int cfra, int render_size) -{ - float fac, facf; - struct SeqEffectHandle sh = get_sequence_effect(seq); - int early_out; - FCurve *fcu= NULL; - - se->se1 = 0; - se->se2 = 0; - se->se3 = 0; - - if ((seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) != 0) { - sh.get_default_fac(seq, cfra, &fac, &facf); - if( scene->r.mode & R_FIELDS ); else facf= fac; - } else { - fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, - "effect_fader", 0); - if (fcu) { - fac = facf = evaluate_fcurve(fcu, cfra); - if( scene->r.mode & R_FIELDS ) { - facf = evaluate_fcurve(fcu, cfra + 0.5); - } - } else { - fac = facf = seq->effect_fader; - } - } - - early_out = sh.early_out(seq, fac, facf); - switch (early_out) { - case -1: - /* no input needed */ - break; - case 0: - se->se1 = do_build_seq_recursively(scene, seq->seq1, cfra, render_size); - se->se2 = do_build_seq_recursively(scene, seq->seq2, cfra, render_size); - if (seq->seq3) { - se->se3 = do_build_seq_recursively(scene, seq->seq3, cfra, render_size); - } - break; - case 1: - se->se1 = do_build_seq_recursively(scene, seq->seq1, cfra, render_size); - break; - case 2: - se->se2 = do_build_seq_recursively(scene, seq->seq2, cfra, render_size); - break; - } - - - do_build_seq_ibuf(scene, seq, se, cfra, FALSE, render_size); - - /* children are not needed anymore ... */ - - if (se->se1 && se->se1->ibuf) { - IMB_cache_limiter_unref(se->se1->ibuf); - } - if (se->se2 && se->se2->ibuf) { - IMB_cache_limiter_unref(se->se2->ibuf); - } - if (se->se3 && se->se3->ibuf) { - IMB_cache_limiter_unref(se->se3->ibuf); - } - check_limiter_refcount("do_effect_seq_recursively", se); -} - -static TStripElem* do_build_seq_recursively_impl(Scene *scene, Sequence * seq, int cfra, int render_size) -{ - TStripElem *se; - - se = give_tstripelem(seq, cfra); - - if(se) { - if (seq->type & SEQ_EFFECT) { - do_effect_seq_recursively(scene, seq, se, cfra, render_size); - } else { - do_build_seq_ibuf(scene, seq, se, cfra, FALSE, render_size); - } - } - return se; -} - -/* FIXME: - -If cfra was float throughout blender (especially in the render -pipeline) one could even _render_ with subframe precision -instead of faking using the blend code below... - -*/ - -static TStripElem* do_handle_speed_effect(Scene *scene, Sequence * seq, int cfra, int render_size) -{ - SpeedControlVars * s = (SpeedControlVars *)seq->effectdata; - int nr = cfra - seq->start; - float f_cfra; - int cfra_left; - int cfra_right; - TStripElem * se = 0; - TStripElem * se1 = 0; - TStripElem * se2 = 0; - - sequence_effect_speed_rebuild_map(scene, seq, 0); - - f_cfra = seq->start + s->frameMap[nr]; - - cfra_left = (int) floor(f_cfra); - cfra_right = (int) ceil(f_cfra); - - se = give_tstripelem(seq, cfra); - - if (!se) { - return se; - } - - if (cfra_left == cfra_right || - (s->flags & SEQ_SPEED_BLEND) == 0) { - test_and_auto_discard_ibuf(se); - - if (se->ibuf == NULL) { - se1 = do_build_seq_recursively_impl(scene, seq->seq1, cfra_left, render_size); - - if((se1 && se1->ibuf && se1->ibuf->rect_float)) - se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rectfloat, 0); - else - se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rect, 0); - - if (se1 == 0 || se1->ibuf == 0) { - make_black_ibuf(se->ibuf); - } else { - if (se->ibuf != se1->ibuf) { - if (se->ibuf) { - IMB_freeImBuf(se->ibuf); - } - - se->ibuf = se1->ibuf; - IMB_refImBuf(se->ibuf); - } - } - } - } else { - struct SeqEffectHandle sh; - - if(se->ibuf) { - if(se->ibuf->x < seqrectx || se->ibuf->y < seqrecty - || !(se->ibuf->rect || se->ibuf->rect_float)) { - IMB_freeImBuf(se->ibuf); - se->ibuf= 0; - } - } - - if (se->ibuf == NULL) { - se1 = do_build_seq_recursively_impl(scene, seq->seq1, cfra_left, render_size); - se2 = do_build_seq_recursively_impl(scene, seq->seq1, cfra_right, render_size); - - if((se1 && se1->ibuf && se1->ibuf->rect_float)) - se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rectfloat, 0); - else - se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rect, 0); - - if (!se1 || !se2) { - make_black_ibuf(se->ibuf); - } else { - sh = get_sequence_effect(seq); - - sh.execute(scene, seq, cfra, - f_cfra - (float) cfra_left, - f_cfra - (float) cfra_left, - se->ibuf->x, se->ibuf->y, - se1->ibuf, se2->ibuf, 0, se->ibuf); - } - } - - } - - /* caller expects this to be referenced, so do it! */ - if (se->ibuf) { - IMB_cache_limiter_insert(se->ibuf); - IMB_cache_limiter_ref(se->ibuf); - IMB_cache_limiter_touch(se->ibuf); - } - - /* children are no longer needed */ - if (se1 && se1->ibuf) - IMB_cache_limiter_unref(se1->ibuf); - if (se2 && se2->ibuf) - IMB_cache_limiter_unref(se2->ibuf); - - check_limiter_refcount("do_handle_speed_effect", se); - - return se; -} - -/* - * build all ibufs recursively - * - * if successfull, the returned TStripElem contains the (referenced!) imbuf - * that means: you _must_ call - * - * IMB_cache_limiter_unref(rval); - * - * if rval != 0 - * - */ - -static TStripElem* do_build_seq_recursively(Scene *scene, Sequence * seq, int cfra, int render_size) -{ - TStripElem *se; - if (seq->type == SEQ_SPEED) { - se = do_handle_speed_effect(scene, seq, cfra, render_size); - } else { - se = do_build_seq_recursively_impl(scene, seq, cfra, render_size); - } - - check_limiter_refcount("do_build_seq_recursively", se); - - return se; -} - -static TStripElem* do_build_seq_array_recursively(Scene *scene, - ListBase *seqbasep, int cfra, int chanshown, int render_size) -{ - Sequence* seq_arr[MAXSEQ+1]; - int count; - int i; - TStripElem* se = 0; - - count = get_shown_sequences(seqbasep, cfra, chanshown, (Sequence **)&seq_arr); - - if (!count) { - return 0; - } - - se = give_tstripelem(seq_arr[count - 1], cfra); - - if (!se) { - return 0; - } - - test_and_auto_discard_ibuf(se); - - if (se->ibuf_comp != 0) { - IMB_cache_limiter_insert(se->ibuf_comp); - IMB_cache_limiter_ref(se->ibuf_comp); - IMB_cache_limiter_touch(se->ibuf_comp); - return se; - } - - - if(count == 1) { - se = do_build_seq_recursively(scene, seq_arr[0], cfra, render_size); - if (se->ibuf) { - se->ibuf_comp = se->ibuf; - IMB_refImBuf(se->ibuf_comp); - } - return se; - } - - - for (i = count - 1; i >= 0; i--) { - int early_out; - Sequence * seq = seq_arr[i]; - struct SeqEffectHandle sh; - float facf; - - se = give_tstripelem(seq, cfra); - - test_and_auto_discard_ibuf(se); - - if (se->ibuf_comp != 0) { - break; - } - if (seq->blend_mode == SEQ_BLEND_REPLACE) { - do_build_seq_recursively(scene, seq, cfra, render_size); - if (se->ibuf) { - se->ibuf_comp = se->ibuf; - IMB_refImBuf(se->ibuf); - } else { - se->ibuf_comp = IMB_allocImBuf( - (short)seqrectx, (short)seqrecty, - 32, IB_rect, 0); - IMB_cache_limiter_insert(se->ibuf_comp); - IMB_cache_limiter_ref(se->ibuf_comp); - IMB_cache_limiter_touch(se->ibuf_comp); - } - break; - } - - sh = get_sequence_blend(seq); - - facf = seq->blend_opacity / 100.0; - - early_out = sh.early_out(seq, facf, facf); - - switch (early_out) { - case -1: - case 2: - do_build_seq_recursively(scene, seq, cfra, render_size); - if (se->ibuf) { - se->ibuf_comp = se->ibuf; - IMB_refImBuf(se->ibuf_comp); - } else { - se->ibuf_comp = IMB_allocImBuf( - (short)seqrectx, (short)seqrecty, - 32, IB_rect, 0); - IMB_cache_limiter_insert(se->ibuf_comp); - IMB_cache_limiter_ref(se->ibuf_comp); - IMB_cache_limiter_touch(se->ibuf_comp); - } - break; - case 1: - if (i == 0) { - se->ibuf_comp = IMB_allocImBuf( - (short)seqrectx, (short)seqrecty, - 32, IB_rect, 0); - IMB_cache_limiter_insert(se->ibuf_comp); - IMB_cache_limiter_ref(se->ibuf_comp); - IMB_cache_limiter_touch(se->ibuf_comp); - } - break; - case 0: - do_build_seq_recursively(scene, seq, cfra, render_size); - if (!se->ibuf) { - se->ibuf = IMB_allocImBuf( - (short)seqrectx, (short)seqrecty, - 32, IB_rect, 0); - IMB_cache_limiter_insert(se->ibuf); - IMB_cache_limiter_ref(se->ibuf); - IMB_cache_limiter_touch(se->ibuf); - } - if (i == 0) { - se->ibuf_comp = se->ibuf; - IMB_refImBuf(se->ibuf_comp); - } - break; - } - - if (se->ibuf_comp) { - break; - } - } - - i++; - - for (; i < count; i++) { - Sequence * seq = seq_arr[i]; - struct SeqEffectHandle sh = get_sequence_blend(seq); - TStripElem* se1 = give_tstripelem(seq_arr[i-1], cfra); - TStripElem* se2 = give_tstripelem(seq_arr[i], cfra); - - float facf = seq->blend_opacity / 100.0; - - int early_out = sh.early_out(seq, facf, facf); - switch (early_out) { - case 0: { - int x= se2->ibuf->x; - int y= se2->ibuf->y; - int swap_input = FALSE; - - if (se1->ibuf_comp->rect_float || - se2->ibuf->rect_float) { - se2->ibuf_comp = IMB_allocImBuf( - (short)seqrectx, (short)seqrecty, - 32, IB_rectfloat, 0); - } else { - se2->ibuf_comp = IMB_allocImBuf( - (short)seqrectx, (short)seqrecty, - 32, IB_rect, 0); - } - - - if (!se1->ibuf_comp->rect_float && - se2->ibuf_comp->rect_float) { - IMB_float_from_rect(se1->ibuf_comp); - } - if (!se2->ibuf->rect_float && - se2->ibuf_comp->rect_float) { - IMB_float_from_rect(se2->ibuf); - } - - if (!se1->ibuf_comp->rect && - !se2->ibuf_comp->rect_float) { - IMB_rect_from_float(se1->ibuf_comp); - } - if (!se2->ibuf->rect && - !se2->ibuf_comp->rect_float) { - IMB_rect_from_float(se2->ibuf); - } - - /* bad hack, to fix crazy input ordering of - those two effects */ - - if (seq->blend_mode == SEQ_ALPHAOVER || - seq->blend_mode == SEQ_ALPHAUNDER || - seq->blend_mode == SEQ_OVERDROP) { - swap_input = TRUE; - } - - if (swap_input) { - sh.execute(scene, seq, cfra, - facf, facf, x, y, - se2->ibuf, se1->ibuf_comp, 0, - se2->ibuf_comp); - } else { - sh.execute(scene, seq, cfra, - facf, facf, x, y, - se1->ibuf_comp, se2->ibuf, 0, - se2->ibuf_comp); - } - - IMB_cache_limiter_insert(se2->ibuf_comp); - IMB_cache_limiter_ref(se2->ibuf_comp); - IMB_cache_limiter_touch(se2->ibuf_comp); - - IMB_cache_limiter_unref(se1->ibuf_comp); - IMB_cache_limiter_unref(se2->ibuf); - - break; - } - case 1: { - se2->ibuf_comp = se1->ibuf; - IMB_refImBuf(se2->ibuf_comp); - - break; - } - } - se = se2; - } - - return se; -} - -/* - * returned ImBuf is refed! - * you have to unref after usage! - */ - -static ImBuf *give_ibuf_seq_impl(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size) -{ - Editing *ed= seq_give_editing(scene, FALSE); - int count; - ListBase *seqbasep; - TStripElem *se; - - - if(ed==NULL) return NULL; - - count = BLI_countlist(&ed->metastack); - if((chanshown < 0) && (count > 0)) { - count = MAX2(count + chanshown, 0); - seqbasep= ((MetaStack*)BLI_findlink(&ed->metastack, count))->oldbasep; - } else { - seqbasep= ed->seqbasep; - } - - seqrectx= rectx; /* bad bad global! */ - seqrecty= recty; - - se = do_build_seq_array_recursively(scene, seqbasep, cfra, chanshown, render_size); - - if(!se) { - return 0; - } - - check_limiter_refcount_comp("give_ibuf_seq_impl", se); - - return se->ibuf_comp; -} - -ImBuf *give_ibuf_seq_direct(Scene *scene, int rectx, int recty, int cfra, int render_size, Sequence *seq) -{ - TStripElem* se; - - seqrectx= rectx; /* bad bad global! */ - seqrecty= recty; - - se = do_build_seq_recursively(scene, seq, cfra, render_size); - - if(!se) { - return 0; - } - - check_limiter_refcount("give_ibuf_seq_direct", se); - - if (se->ibuf) { - IMB_cache_limiter_unref(se->ibuf); - } - - return se->ibuf; -} - -ImBuf *give_ibuf_seq(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size) -{ - ImBuf* i = give_ibuf_seq_impl(scene, rectx, recty, cfra, chanshown, render_size); - - if (i) { - IMB_cache_limiter_unref(i); - } - return i; -} - -#if 0 -/* check used when we need to change seq->blend_mode but not to effect or audio strips */ -static int seq_can_blend(Sequence *seq) -{ - if (ELEM4(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE)) { - return 1; - } else { - return 0; - } -} -#endif - -/* *********************** threading api ******************* */ - -static ListBase running_threads; -static ListBase prefetch_wait; -static ListBase prefetch_done; - -static pthread_mutex_t queue_lock = PTHREAD_MUTEX_INITIALIZER; -static pthread_mutex_t wakeup_lock = PTHREAD_MUTEX_INITIALIZER; -static pthread_cond_t wakeup_cond = PTHREAD_COND_INITIALIZER; - -//static pthread_mutex_t prefetch_ready_lock = PTHREAD_MUTEX_INITIALIZER; -//static pthread_cond_t prefetch_ready_cond = PTHREAD_COND_INITIALIZER; - -static pthread_mutex_t frame_done_lock = PTHREAD_MUTEX_INITIALIZER; -static pthread_cond_t frame_done_cond = PTHREAD_COND_INITIALIZER; - -static volatile int seq_thread_shutdown = FALSE; -static volatile int seq_last_given_monoton_cfra = 0; -static int monoton_cfra = 0; - -typedef struct PrefetchThread { - struct PrefetchThread *next, *prev; - - Scene *scene; - struct PrefetchQueueElem *current; - pthread_t pthread; - int running; - -} PrefetchThread; - -typedef struct PrefetchQueueElem { - struct PrefetchQueueElem *next, *prev; - - int rectx; - int recty; - int cfra; - int chanshown; - int render_size; - - int monoton_cfra; - - struct ImBuf * ibuf; -} PrefetchQueueElem; - -#if 0 -static void *seq_prefetch_thread(void * This_) -{ - PrefetchThread * This = This_; - - while (!seq_thread_shutdown) { - PrefetchQueueElem *e; - int s_last; - - pthread_mutex_lock(&queue_lock); - e = prefetch_wait.first; - if (e) { - BLI_remlink(&prefetch_wait, e); - } - s_last = seq_last_given_monoton_cfra; - - This->current = e; - - pthread_mutex_unlock(&queue_lock); - - if (!e) { - pthread_mutex_lock(&prefetch_ready_lock); - - This->running = FALSE; - - pthread_cond_signal(&prefetch_ready_cond); - pthread_mutex_unlock(&prefetch_ready_lock); - - pthread_mutex_lock(&wakeup_lock); - if (!seq_thread_shutdown) { - pthread_cond_wait(&wakeup_cond, &wakeup_lock); - } - pthread_mutex_unlock(&wakeup_lock); - continue; - } - - This->running = TRUE; - - if (e->cfra >= s_last) { - e->ibuf = give_ibuf_seq_impl(This->scene, - e->rectx, e->recty, e->cfra, e->chanshown, - e->render_size); - } - - pthread_mutex_lock(&queue_lock); - - BLI_addtail(&prefetch_done, e); - - for (e = prefetch_wait.first; e; e = e->next) { - if (s_last > e->monoton_cfra) { - BLI_remlink(&prefetch_wait, e); - MEM_freeN(e); - } - } - - for (e = prefetch_done.first; e; e = e->next) { - if (s_last > e->monoton_cfra) { - if (e->ibuf) { - IMB_cache_limiter_unref(e->ibuf); - } - BLI_remlink(&prefetch_done, e); - MEM_freeN(e); - } - } - - pthread_mutex_unlock(&queue_lock); - - pthread_mutex_lock(&frame_done_lock); - pthread_cond_signal(&frame_done_cond); - pthread_mutex_unlock(&frame_done_lock); - } - return 0; -} - -static void seq_start_threads(Scene *scene) -{ - int i; - - running_threads.first = running_threads.last = NULL; - prefetch_wait.first = prefetch_wait.last = NULL; - prefetch_done.first = prefetch_done.last = NULL; - - seq_thread_shutdown = FALSE; - seq_last_given_monoton_cfra = monoton_cfra = 0; - - /* since global structures are modified during the processing - of one frame, only one render thread is currently possible... - - (but we code, in the hope, that we can remove this restriction - soon...) - */ - - fprintf(stderr, "SEQ-THREAD: seq_start_threads\n"); - - for (i = 0; i < 1; i++) { - PrefetchThread *t = MEM_callocN(sizeof(PrefetchThread), "prefetch_thread"); - t->scene= scene; - t->running = TRUE; - BLI_addtail(&running_threads, t); - - pthread_create(&t->pthread, NULL, seq_prefetch_thread, t); - } - - /* init malloc mutex */ - BLI_init_threads(0, 0, 0); -} - -static void seq_stop_threads() -{ - PrefetchThread *tslot; - PrefetchQueueElem *e; - - fprintf(stderr, "SEQ-THREAD: seq_stop_threads()\n"); - - if (seq_thread_shutdown) { - fprintf(stderr, "SEQ-THREAD: ... already stopped\n"); - return; - } - - pthread_mutex_lock(&wakeup_lock); - - seq_thread_shutdown = TRUE; - - pthread_cond_broadcast(&wakeup_cond); - pthread_mutex_unlock(&wakeup_lock); - - for(tslot = running_threads.first; tslot; tslot= tslot->next) { - pthread_join(tslot->pthread, NULL); - } - - - for (e = prefetch_wait.first; e; e = e->next) { - BLI_remlink(&prefetch_wait, e); - MEM_freeN(e); - } - - for (e = prefetch_done.first; e; e = e->next) { - if (e->ibuf) { - IMB_cache_limiter_unref(e->ibuf); - } - BLI_remlink(&prefetch_done, e); - MEM_freeN(e); - } - - BLI_freelistN(&running_threads); - - /* deinit malloc mutex */ - BLI_end_threads(0); -} -#endif - -void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown, - int render_size) -{ - PrefetchQueueElem *e; - if (seq_thread_shutdown) { - return; - } - - e = MEM_callocN(sizeof(PrefetchQueueElem), "prefetch_queue_elem"); - e->rectx = rectx; - e->recty = recty; - e->cfra = cfra; - e->chanshown = chanshown; - e->render_size = render_size; - e->monoton_cfra = monoton_cfra++; - - pthread_mutex_lock(&queue_lock); - BLI_addtail(&prefetch_wait, e); - pthread_mutex_unlock(&queue_lock); - - pthread_mutex_lock(&wakeup_lock); - pthread_cond_signal(&wakeup_cond); - pthread_mutex_unlock(&wakeup_lock); -} - -#if 0 -static void seq_wait_for_prefetch_ready() -{ - PrefetchThread *tslot; - - if (seq_thread_shutdown) { - return; - } - - fprintf(stderr, "SEQ-THREAD: rendering prefetch frames...\n"); - - pthread_mutex_lock(&prefetch_ready_lock); - - for(;;) { - for(tslot = running_threads.first; tslot; tslot= tslot->next) { - if (tslot->running) { - break; - } - } - if (!tslot) { - break; - } - pthread_cond_wait(&prefetch_ready_cond, &prefetch_ready_lock); - } - - pthread_mutex_unlock(&prefetch_ready_lock); - - fprintf(stderr, "SEQ-THREAD: prefetch done\n"); -} -#endif - -ImBuf *give_ibuf_seq_threaded(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size) -{ - PrefetchQueueElem *e = NULL; - int found_something = FALSE; - - if (seq_thread_shutdown) { - return give_ibuf_seq(scene, rectx, recty, cfra, chanshown, render_size); - } - - while (!e) { - int success = FALSE; - pthread_mutex_lock(&queue_lock); - - for (e = prefetch_done.first; e; e = e->next) { - if (cfra == e->cfra && - chanshown == e->chanshown && - rectx == e->rectx && - recty == e->recty && - render_size == e->render_size) { - success = TRUE; - found_something = TRUE; - break; - } - } - - if (!e) { - for (e = prefetch_wait.first; e; e = e->next) { - if (cfra == e->cfra && - chanshown == e->chanshown && - rectx == e->rectx && - recty == e->recty && - render_size == e->render_size) { - found_something = TRUE; - break; - } - } - } - - if (!e) { - PrefetchThread *tslot; - - for(tslot = running_threads.first; - tslot; tslot= tslot->next) { - if (tslot->current && - cfra == tslot->current->cfra && - chanshown == tslot->current->chanshown && - rectx == tslot->current->rectx && - recty == tslot->current->recty && - render_size== tslot->current->render_size){ - found_something = TRUE; - break; - } - } - } - - /* e->ibuf is unrefed by render thread on next round. */ - - if (e) { - seq_last_given_monoton_cfra = e->monoton_cfra; - } - - pthread_mutex_unlock(&queue_lock); - - if (!success) { - e = NULL; - - if (!found_something) { - fprintf(stderr, - "SEQ-THREAD: Requested frame " - "not in queue ???\n"); - break; - } - pthread_mutex_lock(&frame_done_lock); - pthread_cond_wait(&frame_done_cond, &frame_done_lock); - pthread_mutex_unlock(&frame_done_lock); - } - } - - return e ? e->ibuf : 0; -} - -/* Functions to free imbuf and anim data on changes */ - -static void free_imbuf_strip_elem(TStripElem *se) -{ - if(se->ibuf) { - IMB_freeImBuf(se->ibuf); - } - if(se->ibuf_comp) { - IMB_freeImBuf(se->ibuf_comp); - } - se->ibuf_comp = 0; - se->ibuf= 0; - se->ok= STRIPELEM_OK; - se->se1= se->se2= se->se3= 0; -} - -static void free_anim_seq(Sequence *seq) -{ - if(seq->anim) { - IMB_free_anim(seq->anim); - seq->anim = 0; - } -} - -#if 0 -static void free_imbuf_seq_except(Scene *scene, int cfra) -{ - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *seq; - TStripElem *se; - int a; - - if(ed==NULL) return; - - SEQ_BEGIN(ed, seq) { - if(seq->strip) { - TStripElem * curelem = give_tstripelem(seq, cfra); - - for(a = 0, se = seq->strip->tstripdata; - a < seq->strip->len && se; a++, se++) { - if(se != curelem) { - free_imbuf_strip_elem(se); - } - } - for(a = 0, se = seq->strip->tstripdata_startstill; - a < seq->strip->startstill && se; a++, se++) { - if(se != curelem) { - free_imbuf_strip_elem(se); - } - } - for(a = 0, se = seq->strip->tstripdata_endstill; - a < seq->strip->endstill && se; a++, se++) { - if(se != curelem) { - free_imbuf_strip_elem(se); - } - } - if(seq->strip->ibuf_startstill) { - IMB_freeImBuf(seq->strip->ibuf_startstill); - seq->strip->ibuf_startstill = 0; - } - - if(seq->strip->ibuf_endstill) { - IMB_freeImBuf(seq->strip->ibuf_endstill); - seq->strip->ibuf_endstill = 0; - } - - if(seq->type==SEQ_MOVIE) - if(seq->startdisp > cfra || seq->enddisp < cfra) - free_anim_seq(seq); - free_proxy_seq(seq); - } - } - SEQ_END -} -#endif - -void free_imbuf_seq(Scene *scene, ListBase * seqbase, int check_mem_usage) -{ - Sequence *seq; - TStripElem *se; - int a; - - if (check_mem_usage) { - /* Let the cache limitor take care of this (schlaile) */ - /* While render let's keep all memory available for render - (ton) - At least if free memory is tight... - This can make a big difference in encoding speed - (it is around 4 times(!) faster, if we do not waste time - on freeing _all_ buffers every time on long timelines...) - (schlaile) - */ - - uintptr_t mem_in_use; - uintptr_t mmap_in_use; - uintptr_t max; - - mem_in_use= MEM_get_memory_in_use(); - mmap_in_use= MEM_get_mapped_memory_in_use(); - max = MEM_CacheLimiter_get_maximum(); - - if (max == 0 || mem_in_use + mmap_in_use <= max) { - return; - } - } - - - for(seq= seqbase->first; seq; seq= seq->next) { - if(seq->strip) { - for(a = 0, se = seq->strip->tstripdata; - a < seq->strip->len && se; a++, se++) { - free_imbuf_strip_elem(se); - } - for(a = 0, se = seq->strip->tstripdata_startstill; - a < seq->strip->startstill && se; a++, se++) { - free_imbuf_strip_elem(se); - } - for(a = 0, se = seq->strip->tstripdata_endstill; - a < seq->strip->endstill && se; a++, se++) { - free_imbuf_strip_elem(se); - } - if(seq->strip->ibuf_startstill) { - IMB_freeImBuf(seq->strip->ibuf_startstill); - seq->strip->ibuf_startstill = 0; - } - - if(seq->strip->ibuf_endstill) { - IMB_freeImBuf(seq->strip->ibuf_endstill); - seq->strip->ibuf_endstill = 0; - } - - if(seq->type==SEQ_MOVIE) - free_anim_seq(seq); - if(seq->type==SEQ_SPEED) { - sequence_effect_speed_rebuild_map(scene, seq, 1); - } - } - if(seq->type==SEQ_META) { - free_imbuf_seq(scene, &seq->seqbase, FALSE); - } - if(seq->type==SEQ_SCENE) { - /* FIXME: recurs downwards, - but do recurs protection somehow! */ - } - } - -} - -static int update_changed_seq_recurs(Scene *scene, Sequence *seq, Sequence *changed_seq, int len_change, int ibuf_change) -{ - Sequence *subseq; - int a, free_imbuf = 0; - TStripElem *se; - - /* recurs downwards to see if this seq depends on the changed seq */ - - if(seq == NULL) - return 0; - - if(seq == changed_seq) - free_imbuf = 1; - - for(subseq=seq->seqbase.first; subseq; subseq=subseq->next) - if(update_changed_seq_recurs(scene, subseq, changed_seq, len_change, ibuf_change)) - free_imbuf = TRUE; - - if(seq->seq1) - if(update_changed_seq_recurs(scene, seq->seq1, changed_seq, len_change, ibuf_change)) - free_imbuf = TRUE; - if(seq->seq2 && (seq->seq2 != seq->seq1)) - if(update_changed_seq_recurs(scene, seq->seq2, changed_seq, len_change, ibuf_change)) - free_imbuf = TRUE; - if(seq->seq3 && (seq->seq3 != seq->seq1) && (seq->seq3 != seq->seq2)) - if(update_changed_seq_recurs(scene, seq->seq3, changed_seq, len_change, ibuf_change)) - free_imbuf = TRUE; - - if(free_imbuf) { - if(ibuf_change) { - se= seq->strip->tstripdata; - if (se) { - for(a=0; alen; a++, se++) - free_imbuf_strip_elem(se); - } - - if(seq->type == SEQ_MOVIE) - free_anim_seq(seq); - if(seq->type == SEQ_SPEED) { - sequence_effect_speed_rebuild_map(scene, seq, 1); - } - } - - if(len_change) - calc_sequence(seq); - } - - return free_imbuf; -} - -void update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_change, int ibuf_change) -{ - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *seq; - - if (ed==NULL) return; - - for (seq=ed->seqbase.first; seq; seq=seq->next) - update_changed_seq_recurs(scene, seq, changed_seq, len_change, ibuf_change); -} - -#if 0 // XXX from 2.4x, needs updating -void free_imbuf_seq() -{ - Scene * sce = G.main->scene.first; - while(sce) { - free_imbuf_seq_editing(sce->ed); - sce= sce->id.next; - } -} -#endif - -#if 0 // XXX old animation system -static void free_imbuf_seq_with_ipo(Scene *scene, struct Ipo *ipo) -{ - /* force update of all sequences with this ipo, on ipo changes */ - Editing *ed= seq_give_editing(scene, FALSE); - Sequence *seq; - - if(ed==NULL) return; - - SEQ_BEGIN(ed, seq) { - if(seq->ipo == ipo) { - update_changed_seq_and_deps(scene, seq, 0, 1); - if(seq->type == SEQ_SPEED) { - sequence_effect_speed_rebuild_map(seq, 1); - } - free_proxy_seq(seq); - } - } - SEQ_END -} -#endif - -/* seq funcs's for transforming internally - notice the difference between start/end and left/right. - - left and right are the bounds at which the sequence is rendered, -start and end are from the start and fixed length of the sequence. -*/ -int seq_tx_get_start(Sequence *seq) { - return seq->start; -} -int seq_tx_get_end(Sequence *seq) -{ - return seq->start+seq->len; -} - -int seq_tx_get_final_left(Sequence *seq, int metaclip) -{ - if (metaclip && seq->tmp) { - /* return the range clipped by the parents range */ - return MAX2( seq_tx_get_final_left(seq, 0), seq_tx_get_final_left((Sequence *)seq->tmp, 1) ); - } else { - return (seq->start - seq->startstill) + seq->startofs; - } - -} -int seq_tx_get_final_right(Sequence *seq, int metaclip) -{ - if (metaclip && seq->tmp) { - /* return the range clipped by the parents range */ - return MIN2( seq_tx_get_final_right(seq, 0), seq_tx_get_final_right((Sequence *)seq->tmp, 1) ); - } else { - return ((seq->start+seq->len) + seq->endstill) - seq->endofs; - } -} - -void seq_tx_set_final_left(Sequence *seq, int val) -{ - if (val < (seq)->start) { - seq->startstill = abs(val - (seq)->start); - seq->startofs = 0; - } else { - seq->startofs = abs(val - (seq)->start); - seq->startstill = 0; - } -} - -void seq_tx_set_final_right(Sequence *seq, int val) -{ - if (val > (seq)->start + (seq)->len) { - seq->endstill = abs(val - (seq->start + (seq)->len)); - seq->endofs = 0; - } else { - seq->endofs = abs(val - ((seq)->start + (seq)->len)); - seq->endstill = 0; - } -} - -/* used so we can do a quick check for single image seq - since they work a bit differently to normal image seq's (during transform) */ -int check_single_seq(Sequence *seq) -{ - if ( seq->len==1 && (seq->type == SEQ_IMAGE || seq->type == SEQ_COLOR)) - return 1; - else - return 0; -} - -/* use to impose limits when dragging/extending - so impossible situations dont happen - * Cant use the SEQ_LEFTSEL and SEQ_LEFTSEL directly because the strip may be in a metastrip */ -void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag) -{ - if(leftflag) { - if (seq_tx_get_final_left(seq, 0) >= seq_tx_get_final_right(seq, 0)) { - seq_tx_set_final_left(seq, seq_tx_get_final_right(seq, 0)-1); - } - - if (check_single_seq(seq)==0) { - if (seq_tx_get_final_left(seq, 0) >= seq_tx_get_end(seq)) { - seq_tx_set_final_left(seq, seq_tx_get_end(seq)-1); - } - - /* dosnt work now - TODO */ - /* - if (seq_tx_get_start(seq) >= seq_tx_get_final_right(seq, 0)) { - int ofs; - ofs = seq_tx_get_start(seq) - seq_tx_get_final_right(seq, 0); - seq->start -= ofs; - seq_tx_set_final_left(seq, seq_tx_get_final_left(seq, 0) + ofs ); - }*/ - - } - } - - if(rightflag) { - if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_final_left(seq, 0)) { - seq_tx_set_final_right(seq, seq_tx_get_final_left(seq, 0)+1); - } - - if (check_single_seq(seq)==0) { - if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_start(seq)) { - seq_tx_set_final_right(seq, seq_tx_get_start(seq)+1); - } - } - } - - /* sounds cannot be extended past their endpoints */ - if (seq->type == SEQ_SOUND) { - seq->startstill= 0; - seq->endstill= 0; - } -} - -void fix_single_seq(Sequence *seq) -{ - int left, start, offset; - if (!check_single_seq(seq)) - return; - - /* make sure the image is always at the start since there is only one, - adjusting its start should be ok */ - left = seq_tx_get_final_left(seq, 0); - start = seq->start; - if (start != left) { - offset = left - start; - seq_tx_set_final_left( seq, seq_tx_get_final_left(seq, 0) - offset ); - seq_tx_set_final_right( seq, seq_tx_get_final_right(seq, 0) - offset ); - seq->start += offset; - } -} - -int seq_tx_test(Sequence * seq) -{ - return (seq->type < SEQ_EFFECT) || (get_sequence_effect_num_inputs(seq->type) == 0); -} - -static int seq_overlap(Sequence *seq1, Sequence *seq2) -{ - if(seq1 != seq2) - if(seq1->machine==seq2->machine) - if(((seq1->enddisp <= seq2->startdisp) || (seq1->startdisp >= seq2->enddisp))==0) - return 1; - - return 0; -} - -int seq_test_overlap(ListBase * seqbasep, Sequence *test) -{ - Sequence *seq; - - seq= seqbasep->first; - while(seq) { - if(seq_overlap(test, seq)) - return 1; - - seq= seq->next; - } - return 0; -} - - -static void seq_translate(Sequence *seq, int delta) -{ - seq->start += delta; - if(seq->type==SEQ_META) { - Sequence *seq_child; - for(seq_child= seq->seqbase.first; seq_child; seq_child= seq_child->next) { - seq_translate(seq_child, delta); - } - } - - calc_sequence_disp(seq); -} - -/* return 0 if there werent enough space */ -int shuffle_seq(ListBase * seqbasep, Sequence *test) -{ - int orig_machine= test->machine; - test->machine++; - calc_sequence(test); - while( seq_test_overlap(seqbasep, test) ) { - if(test->machine >= MAXSEQ) { - break; - } - test->machine++; - calc_sequence(test); // XXX - I dont think this is needed since were only moving vertically, Campbell. - } - - - if(test->machine >= MAXSEQ) { - /* Blender 2.4x would remove the strip. - * nicer to move it to the end */ - - Sequence *seq; - int new_frame= test->enddisp; - - for(seq= seqbasep->first; seq; seq= seq->next) { - if (seq->machine == orig_machine) - new_frame = MAX2(new_frame, seq->enddisp); - } - - test->machine= orig_machine; - new_frame = new_frame + (test->start-test->startdisp); /* adjust by the startdisp */ - seq_translate(test, new_frame - test->start); - - calc_sequence(test); - return 0; - } else { - return 1; - } -} - -static int shuffle_seq_time_offset_test(ListBase * seqbasep, char dir) -{ - int offset= 0; - Sequence *seq, *seq_other; - - for(seq= seqbasep->first; seq; seq= seq->next) { - if(seq->tmp) { - for(seq_other= seqbasep->first; seq_other; seq_other= seq_other->next) { - if(!seq_other->tmp && seq_overlap(seq, seq_other)) { - if(dir=='L') { - offset= MIN2(offset, seq_other->startdisp - seq->enddisp); - } - else { - offset= MAX2(offset, seq_other->enddisp - seq->startdisp); - } - } - } - } - } - return offset; -} - -static int shuffle_seq_time_offset(ListBase * seqbasep, char dir) -{ - int ofs= 0; - int tot_ofs= 0; - Sequence *seq; - while( (ofs= shuffle_seq_time_offset_test(seqbasep, dir)) ) { - for(seq= seqbasep->first; seq; seq= seq->next) { - if(seq->tmp) { - /* seq_test_overlap only tests display values */ - seq->startdisp += ofs; - seq->enddisp += ofs; - } - } - - tot_ofs+= ofs; - } - - for(seq= seqbasep->first; seq; seq= seq->next) { - if(seq->tmp) - calc_sequence_disp(seq); /* corrects dummy startdisp/enddisp values */ - } - - return tot_ofs; -} - -int shuffle_seq_time(ListBase * seqbasep) -{ - /* note: seq->tmp is used to tag strips to move */ - - Sequence *seq; - - int offset_l = shuffle_seq_time_offset(seqbasep, 'L'); - int offset_r = shuffle_seq_time_offset(seqbasep, 'R'); - int offset = (-offset_l < offset_r) ? offset_l:offset_r; - - if(offset) { - for(seq= seqbasep->first; seq; seq= seq->next) { - if(seq->tmp) { - seq_translate(seq, offset); - seq->flag &= ~SEQ_OVERLAP; - } - } - } - - return offset? 0:1; -} - -void seq_update_sound(Sequence *seq) -{ - if(seq->type == SEQ_SOUND && seq->sound_handle) - { - seq->sound_handle->startframe = seq->startdisp; - seq->sound_handle->endframe = seq->enddisp; - seq->sound_handle->frameskip = seq->startofs + seq->anim_startofs; - seq->sound_handle->changed = -1; - /* mute is set in seq_update_muting_recursive */ - } -} - -static void seq_update_muting_recursive(ListBase *seqbasep, Sequence *metaseq, int mute) -{ - Sequence *seq; - int seqmute; - - /* for sound we go over full meta tree to update muted state, - since sound is played outside of evaluating the imbufs, */ - for(seq=seqbasep->first; seq; seq=seq->next) { - seqmute= (mute || (seq->flag & SEQ_MUTE)); - - if(seq->type == SEQ_META) { - /* if this is the current meta sequence, unmute because - all sequences above this were set to mute */ - if(seq == metaseq) - seqmute= 0; - - seq_update_muting_recursive(&seq->seqbase, metaseq, seqmute); - } - else if(seq->type == SEQ_SOUND) { - if(seq->sound_handle && seqmute != seq->sound_handle->mute) { - seq->sound_handle->mute = seqmute; - seq->sound_handle->changed = -1; - } - } - } -} - -void seq_update_muting(Editing *ed) -{ - if(ed) { - /* mute all sounds up to current metastack list */ - MetaStack *ms= ed->metastack.last; - - if(ms) - seq_update_muting_recursive(&ed->seqbase, ms->parseq, 1); - else - seq_update_muting_recursive(&ed->seqbase, NULL, 0); - } -} - - -/* XXX - hackish function needed for transforming strips! TODO - have some better solution */ -void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs) -{ - char str[32]; - FCurve *fcu; - - if(scene->adt==NULL || ofs==0) - return; - - sprintf(str, "[\"%s\"]", seq->name+2); - - for (fcu= scene->adt->action->curves.first; fcu; fcu= fcu->next) { - if(strstr(fcu->rna_path, "sequence_editor.sequences_all[") && strstr(fcu->rna_path, str)) { - int i; - for (i = 0; i < fcu->totvert; i++) { - BezTriple *bezt= &fcu->bezt[i]; - bezt->vec[0][0] += ofs; - bezt->vec[1][0] += ofs; - bezt->vec[2][0] += ofs; - } - } - } -} - - -Sequence *active_seq_get(Scene *scene) -{ - Editing *ed= seq_give_editing(scene, FALSE); - if(ed==NULL) return NULL; - return ed->act_seq; -} - -void active_seq_set(Scene *scene, Sequence *seq) -{ - Editing *ed= seq_give_editing(scene, FALSE); - if(ed==NULL) return; - - ed->act_seq= seq; -} - -/* api like funcs for adding */ - -void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load) -{ - if(seq) { - strcpy(seq->name, seq_load->name); - seqUniqueName(scene->ed->seqbasep, seq); - - if(seq_load->flag & SEQ_LOAD_FRAME_ADVANCE) { - seq_load->start_frame += (seq->enddisp - seq->startdisp); - } - - if(seq_load->flag & SEQ_LOAD_REPLACE_SEL) { - seq_load->flag |= 1; /* SELECT */ - active_seq_set(scene, seq); - } - - if(seq_load->flag & SEQ_LOAD_SOUND_CACHE) { - if(seq->sound) - sound_cache(seq->sound, 0); - } - - seq_load->tot_success++; - } - else { - seq_load->tot_error++; - } -} - -Sequence *alloc_sequence(ListBase *lb, int cfra, int machine) -{ - Sequence *seq; - - seq= MEM_callocN( sizeof(Sequence), "addseq"); - BLI_addtail(lb, seq); - - *( (short *)seq->name )= ID_SEQ; - seq->name[2]= 0; - - seq->flag= 1; /* SELECT */ - seq->start= cfra; - seq->machine= machine; - seq->mul= 1.0; - seq->blend_opacity = 100.0; - - return seq; -} - -void seqUniqueName(ListBase *seqbasep, Sequence *seq) -{ - BLI_uniquename(seqbasep, seq, "Sequence", '.', offsetof(Sequence, name), SEQ_NAME_MAXSTR); -} - -/* NOTE: this function doesn't fill in iamge names */ -Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) -{ - Scene *scene= CTX_data_scene(C); /* only for active seq */ - Sequence *seq; - Strip *strip; - StripElem *se; - - seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel); - seq->type= SEQ_IMAGE; - BLI_strncpy(seq->name+2, "Image", SEQ_NAME_MAXSTR-2); - seqUniqueName(seqbasep, seq); - - /* basic defaults */ - seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); - - strip->len = seq->len = seq_load->len ? seq_load->len : 1; - strip->us= 1; - strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); - BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name); - - seq_load_apply(scene, seq, seq_load); - - return seq; -} - -Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) -{ - Scene *scene= CTX_data_scene(C); /* only for sound */ - Editing *ed= seq_give_editing(scene, TRUE); - bSound *sound; - - Sequence *seq; /* generic strip vars */ - Strip *strip; - StripElem *se; - - AUD_SoundInfo info; - - sound = sound_new_file(CTX_data_main(C), seq_load->path); - - if (sound==NULL || sound->handle == NULL) { - //if(op) - // BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); - return NULL; - } - - info = AUD_getInfo(sound->handle); - - if (info.specs.format == AUD_FORMAT_INVALID) { - sound_delete(C, sound); - //if(op) - // BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); - return NULL; - } - - seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel); - - seq->type= SEQ_SOUND; - seq->sound= sound; - BLI_strncpy(seq->name+2, "Sound", SEQ_NAME_MAXSTR-2); - seqUniqueName(seqbasep, seq); - - /* basic defaults */ - seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); - strip->len = seq->len = (int) (info.length * FPS); - strip->us= 1; - - strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); - - BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name); - - seq->sound_handle = sound_new_handle(scene, sound, seq_load->start_frame, seq_load->start_frame + strip->len, 0); - - calc_sequence_disp(seq); - - /* last active name */ - strncpy(ed->act_sounddir, strip->dir, FILE_MAXDIR-1); - - seq_load_apply(scene, seq, seq_load); - - return seq; -} - -Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) -{ - Scene *scene= CTX_data_scene(C); /* only for sound */ - - Sequence *seq, *soundseq; /* generic strip vars */ - Strip *strip; - StripElem *se; - - struct anim *an; - - an = openanim(seq_load->path, IB_rect); - - if(an==NULL) - return NULL; - - seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel); - - seq->type= SEQ_MOVIE; - seq->anim= an; - seq->anim_preseek = IMB_anim_get_preseek(an); - BLI_strncpy(seq->name+2, "Movie", SEQ_NAME_MAXSTR-2); - seqUniqueName(seqbasep, seq); - - /* basic defaults */ - seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); - strip->len = seq->len = IMB_anim_get_duration( an ); - strip->us= 1; - - strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); - - BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name); - - calc_sequence_disp(seq); - - - if(seq_load->flag & SEQ_LOAD_MOVIE_SOUND) { - int start_frame_back= seq_load->start_frame; - seq_load->channel++; - - soundseq = sequencer_add_sound_strip(C, seqbasep, seq_load); - - seq_load->start_frame= start_frame_back; - seq_load->channel--; - } - - /* can be NULL */ - seq_load_apply(scene, seq, seq_load); - - return seq; -} diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c new file mode 100644 index 00000000000..c5ca24bec45 --- /dev/null +++ b/source/blender/blenkernel/intern/sequencer.c @@ -0,0 +1,3758 @@ +/** +* $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * Contributor(s): + * - Blender Foundation, 2003-2009 + * - Peter Schlaile 2005/2006 + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include +#include +#include + +#include "MEM_guardedalloc.h" +#include "MEM_CacheLimiterC-Api.h" + +#include "DNA_listBase.h" +#include "DNA_sequence_types.h" +#include "DNA_scene_types.h" +#include "DNA_anim_types.h" + +#include "BKE_global.h" +#include "BKE_image.h" +#include "BKE_main.h" +#include "BKE_sequencer.h" +#include "BKE_fcurve.h" +#include "BKE_utildefines.h" +#include "RNA_access.h" +#include "RE_pipeline.h" + +#include "BLI_blenlib.h" +#include "BLI_util.h" + +#include "IMB_imbuf.h" +#include "IMB_imbuf_types.h" + +#include "BLI_threads.h" +#include + +#include "BKE_context.h" +#include "BKE_sound.h" +#include "AUD_C-API.h" + +#ifdef WIN32 +#define snprintf _snprintf +#endif + +/* **** XXX ******** */ +static int seqrectx= 0; /* bad bad global! */ +static int seqrecty= 0; +//static void waitcursor(int val) {} +//static int blender_test_break() {return 0;} + +/* **** XXX ******** */ + + +void printf_strip(Sequence *seq) +{ + fprintf(stderr, "name: '%s', len:%d, start:%d, (startofs:%d, endofs:%d), (startstill:%d, endstill:%d), machine:%d, (startdisp:%d, enddisp:%d)\n", + seq->name, seq->len, seq->start, seq->startofs, seq->endofs, seq->startstill, seq->endstill, seq->machine, seq->startdisp, seq->enddisp); + fprintf(stderr, "\tseq_tx_set_final_left: %d %d\n\n", seq_tx_get_final_left(seq, 0), seq_tx_get_final_right(seq, 0)); +} + +/* ********************************************************************** + alloc / free functions + ********************************************************************** */ + +static void free_tstripdata(int len, TStripElem *se) +{ + TStripElem *seo; + int a; + + seo= se; + if (!se) + return; + + for(a=0; aibuf) { + IMB_freeImBuf(se->ibuf); + se->ibuf = 0; + } + if(se->ibuf_comp) { + IMB_freeImBuf(se->ibuf_comp); + se->ibuf_comp = 0; + } + } + + MEM_freeN(seo); +} + + +void new_tstripdata(Sequence *seq) +{ + if(seq->strip) { + free_tstripdata(seq->strip->len, seq->strip->tstripdata); + free_tstripdata(seq->strip->endstill, + seq->strip->tstripdata_endstill); + free_tstripdata(seq->strip->startstill, + seq->strip->tstripdata_startstill); + + seq->strip->tstripdata= 0; + seq->strip->tstripdata_endstill= 0; + seq->strip->tstripdata_startstill= 0; + + if(seq->strip->ibuf_startstill) { + IMB_freeImBuf(seq->strip->ibuf_startstill); + seq->strip->ibuf_startstill = 0; + } + + if(seq->strip->ibuf_endstill) { + IMB_freeImBuf(seq->strip->ibuf_endstill); + seq->strip->ibuf_endstill = 0; + } + + seq->strip->len= seq->len; + } +} + + +/* free */ + +static void free_proxy_seq(Sequence *seq) +{ + if (seq->strip && seq->strip->proxy && seq->strip->proxy->anim) { + IMB_free_anim(seq->strip->proxy->anim); + seq->strip->proxy->anim = 0; + } +} + +void seq_free_strip(Strip *strip) +{ + strip->us--; + if(strip->us>0) return; + if(strip->us<0) { + printf("error: negative users in strip\n"); + return; + } + + if (strip->stripdata) { + MEM_freeN(strip->stripdata); + } + + if (strip->proxy) { + if (strip->proxy->anim) { + IMB_free_anim(strip->proxy->anim); + } + + MEM_freeN(strip->proxy); + } + if (strip->crop) { + MEM_freeN(strip->crop); + } + if (strip->transform) { + MEM_freeN(strip->transform); + } + if (strip->color_balance) { + MEM_freeN(strip->color_balance); + } + + free_tstripdata(strip->len, strip->tstripdata); + free_tstripdata(strip->endstill, strip->tstripdata_endstill); + free_tstripdata(strip->startstill, strip->tstripdata_startstill); + + if(strip->ibuf_startstill) { + IMB_freeImBuf(strip->ibuf_startstill); + strip->ibuf_startstill = 0; + } + + if(strip->ibuf_endstill) { + IMB_freeImBuf(strip->ibuf_endstill); + strip->ibuf_endstill = 0; + } + + MEM_freeN(strip); +} + +void seq_free_sequence(Scene *scene, Sequence *seq) +{ + Editing *ed = scene->ed; + + if(seq->strip) seq_free_strip(seq->strip); + + if(seq->anim) IMB_free_anim(seq->anim); + + if(seq->sound_handle) + sound_delete_handle(scene, seq->sound_handle); + + if (seq->type & SEQ_EFFECT) { + struct SeqEffectHandle sh = get_sequence_effect(seq); + + sh.free(seq); + } + + if (ed->act_seq==seq) + ed->act_seq= NULL; + + MEM_freeN(seq); +} + +Editing *seq_give_editing(Scene *scene, int alloc) +{ + if (scene->ed == NULL && alloc) { + Editing *ed; + + ed= scene->ed= MEM_callocN( sizeof(Editing), "addseq"); + ed->seqbasep= &ed->seqbase; + } + return scene->ed; +} + +void seq_free_editing(Scene *scene) +{ + Editing *ed = scene->ed; + MetaStack *ms; + Sequence *seq; + + if(ed==NULL) + return; + + SEQ_BEGIN(ed, seq) { + seq_free_sequence(scene, seq); + } + SEQ_END + + while((ms= ed->metastack.first)) { + BLI_remlink(&ed->metastack, ms); + MEM_freeN(ms); + } + + MEM_freeN(ed); +} + +/* ************************* itterator ************************** */ +/* *************** (replaces old WHILE_SEQ) ********************* */ +/* **************** use now SEQ_BEGIN() SEQ_END ***************** */ + +/* sequence strip iterator: + * - builds a full array, recursively into meta strips */ + +static void seq_count(ListBase *seqbase, int *tot) +{ + Sequence *seq; + + for(seq=seqbase->first; seq; seq=seq->next) { + (*tot)++; + + if(seq->seqbase.first) + seq_count(&seq->seqbase, tot); + } +} + +static void seq_build_array(ListBase *seqbase, Sequence ***array, int depth) +{ + Sequence *seq; + + for(seq=seqbase->first; seq; seq=seq->next) { + seq->depth= depth; + + if(seq->seqbase.first) + seq_build_array(&seq->seqbase, array, depth+1); + + **array= seq; + (*array)++; + } +} + +void seq_array(Editing *ed, Sequence ***seqarray, int *tot, int use_pointer) +{ + Sequence **array; + + *seqarray= NULL; + *tot= 0; + + if(ed == NULL) + return; + + if(use_pointer) + seq_count(ed->seqbasep, tot); + else + seq_count(&ed->seqbase, tot); + + if(*tot == 0) + return; + + *seqarray= array= MEM_mallocN(sizeof(Sequence *)*(*tot), "SeqArray"); + if(use_pointer) + seq_build_array(ed->seqbasep, &array, 0); + else + seq_build_array(&ed->seqbase, &array, 0); +} + +void seq_begin(Editing *ed, SeqIterator *iter, int use_pointer) +{ + memset(iter, 0, sizeof(*iter)); + seq_array(ed, &iter->array, &iter->tot, use_pointer); + + if(iter->tot) { + iter->cur= 0; + iter->seq= iter->array[iter->cur]; + iter->valid= 1; + } +} + +void seq_next(SeqIterator *iter) +{ + if(++iter->cur < iter->tot) + iter->seq= iter->array[iter->cur]; + else + iter->valid= 0; +} + +void seq_end(SeqIterator *iter) +{ + if(iter->array) + MEM_freeN(iter->array); + + iter->valid= 0; +} + +/* + ********************************************************************** + * build_seqar + ********************************************************************** + * Build a complete array of _all_ sequencies (including those + * in metastrips!) + ********************************************************************** +*/ + +static void do_seq_count(ListBase *seqbase, int *totseq) +{ + Sequence *seq; + + seq= seqbase->first; + while(seq) { + (*totseq)++; + if(seq->seqbase.first) do_seq_count(&seq->seqbase, totseq); + seq= seq->next; + } +} + +static void do_build_seqar(ListBase *seqbase, Sequence ***seqar, int depth) +{ + Sequence *seq; + + seq= seqbase->first; + while(seq) { + seq->depth= depth; + if(seq->seqbase.first) do_build_seqar(&seq->seqbase, seqar, depth+1); + **seqar= seq; + (*seqar)++; + seq= seq->next; + } +} + +void build_seqar(ListBase *seqbase, Sequence ***seqar, int *totseq) +{ + Sequence **tseqar; + + *totseq= 0; + do_seq_count(seqbase, totseq); + + if(*totseq==0) { + *seqar= 0; + return; + } + *seqar= MEM_mallocN(sizeof(void *)* *totseq, "seqar"); + tseqar= *seqar; + + do_build_seqar(seqbase, seqar, 0); + *seqar= tseqar; +} + +static void do_seq_count_cb(ListBase *seqbase, int *totseq, + int (*test_func)(Sequence * seq)) +{ + Sequence *seq; + + seq= seqbase->first; + while(seq) { + int test = test_func(seq); + if (test & BUILD_SEQAR_COUNT_CURRENT) { + (*totseq)++; + } + if(seq->seqbase.first && (test & BUILD_SEQAR_COUNT_CHILDREN)) { + do_seq_count_cb(&seq->seqbase, totseq, test_func); + } + seq= seq->next; + } +} + +static void do_build_seqar_cb(ListBase *seqbase, Sequence ***seqar, int depth, + int (*test_func)(Sequence * seq)) +{ + Sequence *seq; + + seq= seqbase->first; + while(seq) { + int test = test_func(seq); + seq->depth= depth; + + if(seq->seqbase.first && (test & BUILD_SEQAR_COUNT_CHILDREN)) { + do_build_seqar_cb(&seq->seqbase, seqar, depth+1, + test_func); + } + if (test & BUILD_SEQAR_COUNT_CURRENT) { + **seqar= seq; + (*seqar)++; + } + seq= seq->next; + } +} + +void build_seqar_cb(ListBase *seqbase, Sequence ***seqar, int *totseq, + int (*test_func)(Sequence * seq)) +{ + Sequence **tseqar; + + *totseq= 0; + do_seq_count_cb(seqbase, totseq, test_func); + + if(*totseq==0) { + *seqar= 0; + return; + } + *seqar= MEM_mallocN(sizeof(void *)* *totseq, "seqar"); + tseqar= *seqar; + + do_build_seqar_cb(seqbase, seqar, 0, test_func); + *seqar= tseqar; +} + + +void calc_sequence_disp(Sequence *seq) +{ + if(seq->startofs && seq->startstill) seq->startstill= 0; + if(seq->endofs && seq->endstill) seq->endstill= 0; + + seq->startdisp= seq->start + seq->startofs - seq->startstill; + seq->enddisp= seq->start+seq->len - seq->endofs + seq->endstill; + + seq->handsize= 10.0; /* 10 frames */ + if( seq->enddisp-seq->startdisp < 10 ) { + seq->handsize= (float)(0.5*(seq->enddisp-seq->startdisp)); + } + else if(seq->enddisp-seq->startdisp > 250) { + seq->handsize= (float)((seq->enddisp-seq->startdisp)/25); + } + + seq_update_sound(seq); +} + +void calc_sequence(Sequence *seq) +{ + Sequence *seqm; + int min, max; + + /* check all metas recursively */ + seqm= seq->seqbase.first; + while(seqm) { + if(seqm->seqbase.first) calc_sequence(seqm); + seqm= seqm->next; + } + + /* effects and meta: automatic start and end */ + + if(seq->type & SEQ_EFFECT) { + /* pointers */ + if(seq->seq2==0) seq->seq2= seq->seq1; + if(seq->seq3==0) seq->seq3= seq->seq1; + + /* effecten go from seq1 -> seq2: test */ + + /* we take the largest start and smallest end */ + + // seq->start= seq->startdisp= MAX2(seq->seq1->startdisp, seq->seq2->startdisp); + // seq->enddisp= MIN2(seq->seq1->enddisp, seq->seq2->enddisp); + + if (seq->seq1) { + seq->start= seq->startdisp= MAX3(seq->seq1->startdisp, seq->seq2->startdisp, seq->seq3->startdisp); + seq->enddisp= MIN3(seq->seq1->enddisp, seq->seq2->enddisp, seq->seq3->enddisp); + seq->len= seq->enddisp - seq->startdisp; + } else { + calc_sequence_disp(seq); + } + + if(seq->strip && seq->len!=seq->strip->len) { + new_tstripdata(seq); + } + + } + else { + if(seq->type==SEQ_META) { + seqm= seq->seqbase.first; + if(seqm) { + min= 1000000; + max= -1000000; + while(seqm) { + if(seqm->startdisp < min) min= seqm->startdisp; + if(seqm->enddisp > max) max= seqm->enddisp; + seqm= seqm->next; + } + seq->start= min + seq->anim_startofs; + seq->len = max-min; + seq->len -= seq->anim_startofs; + seq->len -= seq->anim_endofs; + + if(seq->strip && seq->len!=seq->strip->len) { + new_tstripdata(seq); + } + } + } + calc_sequence_disp(seq); + } +} + +void reload_sequence_new_file(Scene *scene, Sequence * seq) +{ + char str[FILE_MAXDIR+FILE_MAXFILE]; + + if (!(seq->type == SEQ_MOVIE || seq->type == SEQ_IMAGE || + seq->type == SEQ_SOUND || + seq->type == SEQ_SCENE || seq->type == SEQ_META)) { + return; + } + + new_tstripdata(seq); + + if (seq->type != SEQ_SCENE && seq->type != SEQ_META && + seq->type != SEQ_IMAGE) { + BLI_join_dirfile(str, seq->strip->dir, seq->strip->stripdata->name); + BLI_convertstringcode(str, G.sce); + BLI_convertstringframe(str, scene->r.cfra); + + } + + if (seq->type == SEQ_IMAGE) { + /* Hack? */ + int olen = MEM_allocN_len(seq->strip->stripdata)/sizeof(struct StripElem); + seq->len = olen; + seq->len -= seq->anim_startofs; + seq->len -= seq->anim_endofs; + if (seq->len < 0) { + seq->len = 0; + } + seq->strip->len = seq->len; + } else if (seq->type == SEQ_MOVIE) { + if(seq->anim) IMB_free_anim(seq->anim); + seq->anim = openanim(str, IB_rect | ((seq->flag & SEQ_FILTERY) ? IB_animdeinterlace : 0)); + + if (!seq->anim) { + return; + } + + seq->len = IMB_anim_get_duration(seq->anim); + + seq->anim_preseek = IMB_anim_get_preseek(seq->anim); + + seq->len -= seq->anim_startofs; + seq->len -= seq->anim_endofs; + if (seq->len < 0) { + seq->len = 0; + } + seq->strip->len = seq->len; + } else if (seq->type == SEQ_SOUND) { + seq->len = AUD_getInfo(seq->sound->handle).length * FPS; + seq->len -= seq->anim_startofs; + seq->len -= seq->anim_endofs; + if (seq->len < 0) { + seq->len = 0; + } + seq->strip->len = seq->len; + } else if (seq->type == SEQ_SCENE) { + Scene * sce = G.main->scene.first; + int nr = 1; + + while(sce) { + if(nr == seq->scenenr) { + break; + } + nr++; + sce= sce->id.next; + } + + if (sce) { + seq->scene = sce; + } else { + sce = seq->scene; + } + + BLI_strncpy(seq->name+2, sce->id.name + 2, SEQ_NAME_MAXSTR-2); + seqUniqueName(scene->ed->seqbasep, seq); + + seq->len= seq->scene->r.efra - seq->scene->r.sfra + 1; + seq->len -= seq->anim_startofs; + seq->len -= seq->anim_endofs; + if (seq->len < 0) { + seq->len = 0; + } + seq->strip->len = seq->len; + } + + free_proxy_seq(seq); + + calc_sequence(seq); +} + +void sort_seq(Scene *scene) +{ + /* all strips together per kind, and in order of y location ("machine") */ + ListBase seqbase, effbase; + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq, *seqt; + + + if(ed==NULL) return; + + seqbase.first= seqbase.last= 0; + effbase.first= effbase.last= 0; + + while( (seq= ed->seqbasep->first) ) { + BLI_remlink(ed->seqbasep, seq); + + if(seq->type & SEQ_EFFECT) { + seqt= effbase.first; + while(seqt) { + if(seqt->machine>=seq->machine) { + BLI_insertlinkbefore(&effbase, seqt, seq); + break; + } + seqt= seqt->next; + } + if(seqt==0) BLI_addtail(&effbase, seq); + } + else { + seqt= seqbase.first; + while(seqt) { + if(seqt->machine>=seq->machine) { + BLI_insertlinkbefore(&seqbase, seqt, seq); + break; + } + seqt= seqt->next; + } + if(seqt==0) BLI_addtail(&seqbase, seq); + } + } + + addlisttolist(&seqbase, &effbase); + *(ed->seqbasep)= seqbase; +} + + +void clear_scene_in_allseqs(Scene *sce) +{ + Scene *sce1; + Editing *ed; + Sequence *seq; + + /* when a scene is deleted: test all seqs */ + + sce1= G.main->scene.first; + while(sce1) { + if(sce1!=sce && sce1->ed) { + ed= sce1->ed; + + SEQ_BEGIN(ed, seq) { + + if(seq->scene==sce) seq->scene= 0; + + } + SEQ_END + } + + sce1= sce1->id.next; + } +} + +static char *give_seqname_by_type(int type) +{ + switch(type) { + case SEQ_META: return "Meta"; + case SEQ_IMAGE: return "Image"; + case SEQ_SCENE: return "Scene"; + case SEQ_MOVIE: return "Movie"; + case SEQ_SOUND: return "Audio"; + case SEQ_CROSS: return "Cross"; + case SEQ_GAMCROSS: return "Gamma Cross"; + case SEQ_ADD: return "Add"; + case SEQ_SUB: return "Sub"; + case SEQ_MUL: return "Mul"; + case SEQ_ALPHAOVER: return "Alpha Over"; + case SEQ_ALPHAUNDER: return "Alpha Under"; + case SEQ_OVERDROP: return "Over Drop"; + case SEQ_WIPE: return "Wipe"; + case SEQ_GLOW: return "Glow"; + case SEQ_TRANSFORM: return "Transform"; + case SEQ_COLOR: return "Color"; + case SEQ_SPEED: return "Speed"; + default: + return 0; + } +} + +char *give_seqname(Sequence *seq) +{ + char * name = give_seqname_by_type(seq->type); + + if (!name) { + if(seq->typestrip->dir; + } else if(seq->type==SEQ_PLUGIN) { + if(!(seq->flag & SEQ_EFFECT_NOT_LOADED) && + seq->plugin && seq->plugin->doit) { + return seq->plugin->pname; + } else { + return "Plugin"; + } + } else { + return "Effect"; + } + } + return name; +} + +/* ***************** DO THE SEQUENCE ***************** */ + +static void make_black_ibuf(ImBuf *ibuf) +{ + unsigned int *rect; + float *rect_float; + int tot; + + if(ibuf==0 || (ibuf->rect==0 && ibuf->rect_float==0)) return; + + tot= ibuf->x*ibuf->y; + + rect= ibuf->rect; + rect_float = ibuf->rect_float; + + if (rect) { + memset(rect, 0, tot * sizeof(char) * 4); + } + + if (rect_float) { + memset(rect_float, 0, tot * sizeof(float) * 4); + } +} + +static void multibuf(ImBuf *ibuf, float fmul) +{ + char *rt; + float *rt_float; + + int a, mul, icol; + + mul= (int)(256.0*fmul); + rt= (char *)ibuf->rect; + rt_float = ibuf->rect_float; + + if (rt) { + a= ibuf->x*ibuf->y; + while(a--) { + + icol= (mul*rt[0])>>8; + if(icol>254) rt[0]= 255; else rt[0]= icol; + icol= (mul*rt[1])>>8; + if(icol>254) rt[1]= 255; else rt[1]= icol; + icol= (mul*rt[2])>>8; + if(icol>254) rt[2]= 255; else rt[2]= icol; + icol= (mul*rt[3])>>8; + if(icol>254) rt[3]= 255; else rt[3]= icol; + + rt+= 4; + } + } + if (rt_float) { + a= ibuf->x*ibuf->y; + while(a--) { + rt_float[0] *= fmul; + rt_float[1] *= fmul; + rt_float[2] *= fmul; + rt_float[3] *= fmul; + + rt_float += 4; + } + } +} + +static void do_effect(Scene *scene, int cfra, Sequence *seq, TStripElem * se) +{ + TStripElem *se1, *se2, *se3; + float fac, facf; + int x, y; + int early_out; + struct SeqEffectHandle sh = get_sequence_effect(seq); + FCurve *fcu= NULL; + + if (!sh.execute) { /* effect not supported in this version... */ + make_black_ibuf(se->ibuf); + return; + } + + if ((seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) != 0) { + sh.get_default_fac(seq, cfra, &fac, &facf); + if( scene->r.mode & R_FIELDS ); else facf= fac; + } else { + fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, + "effect_fader", 0); + if (fcu) { + fac = facf = evaluate_fcurve(fcu, cfra); + if( scene->r.mode & R_FIELDS ) { + facf = evaluate_fcurve(fcu, cfra + 0.5); + } + } else { + fac = facf = seq->effect_fader; + } + } + + early_out = sh.early_out(seq, fac, facf); + + if (early_out == -1) { /* no input needed */ + sh.execute(scene, seq, cfra, fac, facf, + se->ibuf->x, se->ibuf->y, + 0, 0, 0, se->ibuf); + return; + } + + switch (early_out) { + case 0: + if (se->se1==0 || se->se2==0 || se->se3==0) { + make_black_ibuf(se->ibuf); + return; + } + + se1= se->se1; + se2= se->se2; + se3= se->se3; + + if ( (se1==0 || se2==0 || se3==0) + || (se1->ibuf==0 || se2->ibuf==0 || se3->ibuf==0)) { + make_black_ibuf(se->ibuf); + return; + } + + break; + case 1: + if (se->se1 == 0) { + make_black_ibuf(se->ibuf); + return; + } + + se1= se->se1; + + if (se1 == 0 || se1->ibuf == 0) { + make_black_ibuf(se->ibuf); + return; + } + + if (se->ibuf != se1->ibuf) { + IMB_freeImBuf(se->ibuf); + se->ibuf = se1->ibuf; + IMB_refImBuf(se->ibuf); + } + return; + case 2: + if (se->se2 == 0) { + make_black_ibuf(se->ibuf); + return; + } + + se2= se->se2; + + if (se2 == 0 || se2->ibuf == 0) { + make_black_ibuf(se->ibuf); + return; + } + if (se->ibuf != se2->ibuf) { + IMB_freeImBuf(se->ibuf); + se->ibuf = se2->ibuf; + IMB_refImBuf(se->ibuf); + } + return; + default: + make_black_ibuf(se->ibuf); + return; + } + + x= se2->ibuf->x; + y= se2->ibuf->y; + + if (!se1->ibuf->rect_float && se->ibuf->rect_float) { + IMB_float_from_rect(se1->ibuf); + } + if (!se2->ibuf->rect_float && se->ibuf->rect_float) { + IMB_float_from_rect(se2->ibuf); + } + if (!se3->ibuf->rect_float && se->ibuf->rect_float) { + IMB_float_from_rect(se3->ibuf); + } + + if (!se1->ibuf->rect && !se->ibuf->rect_float) { + IMB_rect_from_float(se1->ibuf); + } + if (!se2->ibuf->rect && !se->ibuf->rect_float) { + IMB_rect_from_float(se2->ibuf); + } + if (!se3->ibuf->rect && !se->ibuf->rect_float) { + IMB_rect_from_float(se3->ibuf); + } + + sh.execute(scene, seq, cfra, fac, facf, x, y, se1->ibuf, se2->ibuf, se3->ibuf, + se->ibuf); +} + +static int give_stripelem_index(Sequence *seq, int cfra) +{ + int nr; + + if(seq->startdisp >cfra || seq->enddisp <= cfra) return -1; + if(seq->len == 0) return -1; + if(seq->flag&SEQ_REVERSE_FRAMES) { + /*reverse frame in this sequence */ + if(cfra <= seq->start) nr= seq->len-1; + else if(cfra >= seq->start+seq->len-1) nr= 0; + else nr= (seq->start + seq->len) - cfra; + } else { + if(cfra <= seq->start) nr= 0; + else if(cfra >= seq->start+seq->len-1) nr= seq->len-1; + else nr= cfra-seq->start; + } + if (seq->strobe < 1.0) seq->strobe = 1.0; + if (seq->strobe > 1.0) { + nr -= (int)fmod((double)nr, (double)seq->strobe); + } + + return nr; +} + +static TStripElem* alloc_tstripdata(int len, const char * name) +{ + int i; + TStripElem *se = MEM_callocN(len * sizeof(TStripElem), name); + for (i = 0; i < len; i++) { + se[i].ok = STRIPELEM_OK; + } + return se; +} + +static TStripElem *give_tstripelem(Sequence *seq, int cfra) +{ + TStripElem *se; + int nr; + + se = seq->strip->tstripdata; + if (se == 0 && seq->len > 0) { + se = seq->strip->tstripdata = alloc_tstripdata(seq->len, + "tstripelems"); + } + nr = give_stripelem_index(seq, cfra); + + if (nr == -1) return 0; + if (se == 0) return 0; + + se += nr; + + /* if there are IPOs with blend modes active, one has to watch out + for startstill + endstill area: we can't use the same tstripelem + here for all ibufs, since then, blending with IPOs won't work! + + Rather common case, if you use a single image and try to fade + it in and out... or want to use your strip as a watermark in + alpha over mode... + */ + if (seq->blend_mode != SEQ_BLEND_REPLACE || + (/*seq->ipo && seq->ipo->curve.first &&*/ + (!(seq->type & SEQ_EFFECT) || !seq->seq1))) { + Strip * s = seq->strip; + if (cfra < seq->start) { + se = s->tstripdata_startstill; + if (seq->startstill > s->startstill) { + free_tstripdata(s->startstill, + s->tstripdata_startstill); + se = 0; + } + + if (se == 0) { + s->startstill = seq->startstill; + se = seq->strip->tstripdata_startstill + = alloc_tstripdata( + s->startstill, + "tstripelems_startstill"); + } + se += seq->start - cfra - 1; + + } else if (cfra > seq->start + seq->len-1) { + se = s->tstripdata_endstill; + if (seq->endstill > s->endstill) { + free_tstripdata(s->endstill, + s->tstripdata_endstill); + se = 0; + } + + if (se == 0) { + s->endstill = seq->endstill; + se = seq->strip->tstripdata_endstill + = alloc_tstripdata( + s->endstill, + "tstripelems_endstill"); + } + se += cfra - (seq->start + seq->len-1) - 1; + } + } + + + se->nr= nr; + + return se; +} + +StripElem *give_stripelem(Sequence *seq, int cfra) +{ + StripElem *se; + int nr; + + se = seq->strip->stripdata; + nr = give_stripelem_index(seq, cfra); + + if (nr == -1) return 0; + if (se == 0) return 0; + + se += nr + seq->anim_startofs; + + return se; +} + +static int evaluate_seq_frame_gen(Sequence ** seq_arr, ListBase *seqbase, int cfra) +{ + Sequence *seq; + int totseq=0; + + memset(seq_arr, 0, sizeof(Sequence*) * (MAXSEQ+1)); + + seq= seqbase->first; + while(seq) { + if(seq->startdisp <=cfra && seq->enddisp > cfra) { + seq_arr[seq->machine]= seq; + totseq++; + } + seq= seq->next; + } + + return totseq; +} + +int evaluate_seq_frame(Scene *scene, int cfra) +{ + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq_arr[MAXSEQ+1]; + + if(ed==NULL) return 0; + return evaluate_seq_frame_gen(seq_arr, ed->seqbasep, cfra); +} + +static int video_seq_is_rendered(Sequence * seq) +{ + return (seq + && !(seq->flag & SEQ_MUTE) + && seq->type != SEQ_SOUND); +} + +static int get_shown_sequences( ListBase * seqbasep, int cfra, int chanshown, Sequence ** seq_arr_out) +{ + Sequence *seq_arr[MAXSEQ+1]; + int b = chanshown; + int cnt = 0; + + if (b > MAXSEQ) { + return 0; + } + + if(evaluate_seq_frame_gen(seq_arr, seqbasep, cfra)) { + if (b > 0) { + if (seq_arr[b] == 0) { + return 0; + } + } else { + for (b = MAXSEQ; b > 0; b--) { + if (video_seq_is_rendered(seq_arr[b])) { + break; + } + } + } + } + + chanshown = b; + + for (;b > 0; b--) { + if (video_seq_is_rendered(seq_arr[b])) { + if (seq_arr[b]->blend_mode == SEQ_BLEND_REPLACE) { + break; + } + } + } + + for (;b <= chanshown; b++) { + if (video_seq_is_rendered(seq_arr[b])) { + seq_arr_out[cnt++] = seq_arr[b]; + } + } + + return cnt; +} + + +/* ********************************************************************** + proxy management + ********************************************************************** */ + +#define PROXY_MAXFILE (2*FILE_MAXDIR+FILE_MAXFILE) + +static int seq_proxy_get_fname(Scene *scene, Sequence * seq, int cfra, char * name, int render_size) +{ + int frameno; + char dir[FILE_MAXDIR]; + + if (!seq->strip->proxy) { + return FALSE; + } + + if (seq->flag & SEQ_USE_PROXY_CUSTOM_DIR) { + strcpy(dir, seq->strip->proxy->dir); + } else { + if (seq->type == SEQ_IMAGE || seq->type == SEQ_MOVIE) { + snprintf(dir, FILE_MAXDIR, "%s/BL_proxy", + seq->strip->dir); + } else { + return FALSE; + } + } + + if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { + BLI_join_dirfile(name, dir, seq->strip->proxy->file); + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, cfra); + + return TRUE; + } + + /* generate a separate proxy directory for each preview size */ + + if (seq->type == SEQ_IMAGE) { + StripElem * se = give_stripelem(seq, cfra); + snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", + dir, render_size, se->name); + frameno = 1; + } else if (seq->type == SEQ_MOVIE) { + TStripElem * tse = give_tstripelem(seq, cfra); + + frameno = tse->nr + seq->anim_startofs; + + snprintf(name, PROXY_MAXFILE, "%s/%s/%d/####", dir, + seq->strip->stripdata->name, + render_size); + } else { + TStripElem * tse = give_tstripelem(seq, cfra); + + frameno = tse->nr + seq->anim_startofs; + + snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, + render_size); + } + + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, frameno); + + + strcat(name, ".jpg"); + + return TRUE; +} + +static struct ImBuf * seq_proxy_fetch(Scene *scene, Sequence * seq, int cfra, int render_size) +{ + char name[PROXY_MAXFILE]; + + if (!(seq->flag & SEQ_USE_PROXY)) { + return 0; + } + + /* rendering at 100% ? No real sense in proxy-ing, right? */ + if (render_size == 100) { + return 0; + } + + if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { + TStripElem * tse = give_tstripelem(seq, cfra); + int frameno = tse->nr + seq->anim_startofs; + if (!seq->strip->proxy->anim) { + if (!seq_proxy_get_fname(scene, seq, cfra, name, render_size)) { + return 0; + } + + seq->strip->proxy->anim = openanim(name, IB_rect); + } + if (!seq->strip->proxy->anim) { + return 0; + } + + return IMB_anim_absolute(seq->strip->proxy->anim, frameno); + } + + if (!seq_proxy_get_fname(scene, seq, cfra, name, render_size)) { + return 0; + } + + if (BLI_exists(name)) { + return IMB_loadiffname(name, IB_rect); + } else { + return 0; + } +} + +#if 0 +static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int cfra, + int build_proxy_run, int render_size); + +static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int render_size) +{ + char name[PROXY_MAXFILE]; + int quality; + TStripElem * se; + int ok; + int rectx, recty; + struct ImBuf * ibuf; + + if (!(seq->flag & SEQ_USE_PROXY)) { + return; + } + + /* rendering at 100% ? No real sense in proxy-ing, right? */ + if (render_size == 100) { + return; + } + + /* that's why it is called custom... */ + if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) { + return; + } + + if (!seq_proxy_get_fname(scene, seq, cfra, name, render_size)) { + return; + } + + se = give_tstripelem(seq, cfra); + if (!se) { + return; + } + + if(se->ibuf) { + IMB_freeImBuf(se->ibuf); + se->ibuf = 0; + } + + do_build_seq_ibuf(scene, seq, se, cfra, TRUE, render_size); + + if (!se->ibuf) { + return; + } + + rectx= (render_size*scene->r.xsch)/100; + recty= (render_size*scene->r.ysch)/100; + + ibuf = se->ibuf; + + if (ibuf->x != rectx || ibuf->y != recty) { + IMB_scalefastImBuf(ibuf, (short)rectx, (short)recty); + } + + /* quality is fixed, otherwise one has to generate separate + directories for every quality... + + depth = 32 is intentionally left in, otherwise ALPHA channels + won't work... */ + quality = seq->strip->proxy->quality; + ibuf->ftype= JPG | quality; + + BLI_make_existing_file(name); + + ok = IMB_saveiff(ibuf, name, IB_rect | IB_zbuf | IB_zbuffloat); + if (ok == 0) { + perror(name); + } + + IMB_freeImBuf(ibuf); + se->ibuf = 0; +} + +static void seq_proxy_rebuild(Scene *scene, Sequence * seq) +{ + int cfra; + float rsize = seq->strip->proxy->size; + + waitcursor(1); + + G.afbreek = 0; + + /* flag management tries to account for strobe and + other "non-linearities", that might come in the future... + better way would be to "touch" the files, so that _really_ + no one is rebuild twice. + */ + + for (cfra = seq->startdisp; cfra < seq->enddisp; cfra++) { + TStripElem * tse = give_tstripelem(seq, cfra); + + tse->flag &= ~STRIPELEM_PREVIEW_DONE; + } + + + + /* a _lot_ faster for movie files, if we read frames in + sequential order */ + if (seq->flag & SEQ_REVERSE_FRAMES) { + for (cfra = seq->enddisp-seq->endstill-1; + cfra >= seq->startdisp + seq->startstill; cfra--) { + TStripElem * tse = give_tstripelem(seq, cfra); + + if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) { +//XXX set_timecursor(cfra); + seq_proxy_build_frame(scene, seq, cfra, rsize); + tse->flag |= STRIPELEM_PREVIEW_DONE; + } + if (blender_test_break()) { + break; + } + } + } else { + for (cfra = seq->startdisp + seq->startstill; + cfra < seq->enddisp - seq->endstill; cfra++) { + TStripElem * tse = give_tstripelem(seq, cfra); + + if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) { +//XXX set_timecursor(cfra); + seq_proxy_build_frame(scene, seq, cfra, rsize); + tse->flag |= STRIPELEM_PREVIEW_DONE; + } + if (blender_test_break()) { + break; + } + } + } + waitcursor(0); +} +#endif + + +/* ********************************************************************** + color balance + ********************************************************************** */ + +static StripColorBalance calc_cb(StripColorBalance * cb_) +{ + StripColorBalance cb = *cb_; + int c; + + if (cb.flag & SEQ_COLOR_BALANCE_INVERSE_LIFT) { + for (c = 0; c < 3; c++) { + cb.lift[c] = 1.0 - cb.lift[c]; + } + } else { + for (c = 0; c < 3; c++) { + cb.lift[c] = -(1.0 - cb.lift[c]); + } + } + if (cb.flag & SEQ_COLOR_BALANCE_INVERSE_GAIN) { + for (c = 0; c < 3; c++) { + if (cb.gain[c] != 0.0) { + cb.gain[c] = 1.0/cb.gain[c]; + } else { + cb.gain[c] = 1000000; /* should be enough :) */ + } + } + } + + if (!(cb.flag & SEQ_COLOR_BALANCE_INVERSE_GAMMA)) { + for (c = 0; c < 3; c++) { + if (cb.gamma[c] != 0.0) { + cb.gamma[c] = 1.0/cb.gamma[c]; + } else { + cb.gamma[c] = 1000000; /* should be enough :) */ + } + } + } + + return cb; +} + +static void make_cb_table_byte(float lift, float gain, float gamma, + unsigned char * table, float mul) +{ + int y; + + for (y = 0; y < 256; y++) { + float v = 1.0 * y / 255; + v *= gain; + v += lift; + v = pow(v, gamma); + v *= mul; + if ( v > 1.0) { + v = 1.0; + } else if (v < 0.0) { + v = 0.0; + } + table[y] = v * 255; + } + +} + +static void make_cb_table_float(float lift, float gain, float gamma, + float * table, float mul) +{ + int y; + + for (y = 0; y < 256; y++) { + float v = (float) y * 1.0 / 255.0; + v *= gain; + v += lift; + v = pow(v, gamma); + v *= mul; + table[y] = v; + } +} + +static void color_balance_byte_byte(Sequence * seq, TStripElem* se, float mul) +{ + unsigned char cb_tab[3][256]; + int c; + unsigned char * p = (unsigned char*) se->ibuf->rect; + unsigned char * e = p + se->ibuf->x * 4 * se->ibuf->y; + + StripColorBalance cb = calc_cb(seq->strip->color_balance); + + for (c = 0; c < 3; c++) { + make_cb_table_byte(cb.lift[c], cb.gain[c], cb.gamma[c], + cb_tab[c], mul); + } + + while (p < e) { + p[0] = cb_tab[0][p[0]]; + p[1] = cb_tab[1][p[1]]; + p[2] = cb_tab[2][p[2]]; + + p += 4; + } +} + +static void color_balance_byte_float(Sequence * seq, TStripElem* se, float mul) +{ + float cb_tab[4][256]; + int c,i; + unsigned char * p = (unsigned char*) se->ibuf->rect; + unsigned char * e = p + se->ibuf->x * 4 * se->ibuf->y; + float * o; + StripColorBalance cb; + + imb_addrectfloatImBuf(se->ibuf); + + o = se->ibuf->rect_float; + + cb = calc_cb(seq->strip->color_balance); + + for (c = 0; c < 3; c++) { + make_cb_table_float(cb.lift[c], cb.gain[c], cb.gamma[c], + cb_tab[c], mul); + } + + for (i = 0; i < 256; i++) { + cb_tab[3][i] = ((float)i)*(1.0f/255.0f); + } + + while (p < e) { + o[0] = cb_tab[0][p[0]]; + o[1] = cb_tab[1][p[1]]; + o[2] = cb_tab[2][p[2]]; + o[3] = cb_tab[3][p[3]]; + + p += 4; o += 4; + } +} + +static void color_balance_float_float(Sequence * seq, TStripElem* se, float mul) +{ + float * p = se->ibuf->rect_float; + float * e = se->ibuf->rect_float + se->ibuf->x * 4* se->ibuf->y; + StripColorBalance cb = calc_cb(seq->strip->color_balance); + + while (p < e) { + int c; + for (c = 0; c < 3; c++) { + p[c] = pow(p[c] * cb.gain[c] + cb.lift[c], + cb.gamma[c]) * mul; + } + p += 4; + } +} + +static void color_balance(Sequence * seq, TStripElem* se, float mul) +{ + if (se->ibuf->rect_float) { + color_balance_float_float(seq, se, mul); + } else if(seq->flag & SEQ_MAKE_FLOAT) { + color_balance_byte_float(seq, se, mul); + } else { + color_balance_byte_byte(seq, se, mul); + } +} + +/* + input preprocessing for SEQ_IMAGE, SEQ_MOVIE and SEQ_SCENE + + Do all the things you can't really do afterwards using sequence effects + (read: before rescaling to render resolution has been done) + + Order is important! + + - Deinterlace + - Crop and transform in image source coordinate space + - Flip X + Flip Y (could be done afterwards, backward compatibility) + - Promote image to float data (affects pipeline operations afterwards) + - Color balance (is most efficient in the byte -> float + (future: half -> float should also work fine!) + case, if done on load, since we can use lookup tables) + - Premultiply + +*/ + +static int input_have_to_preprocess(Scene *scene, Sequence * seq, TStripElem* se, int cfra) +{ + float mul; + + if ((seq->flag & SEQ_FILTERY) || + (seq->flag & SEQ_USE_CROP) || + (seq->flag & SEQ_USE_TRANSFORM) || + (seq->flag & SEQ_FLIPX) || + (seq->flag & SEQ_FLIPY) || + (seq->flag & SEQ_USE_COLOR_BALANCE) || + (seq->flag & SEQ_MAKE_PREMUL) || + (se->ibuf->x != seqrectx || se->ibuf->y != seqrecty)) { + return TRUE; + } + + mul = seq->mul; + + if(seq->blend_mode == SEQ_BLEND_REPLACE && + !(seq->type & SEQ_EFFECT)) { + mul *= seq->blend_opacity / 100.0; + } + + if (mul != 1.0) { + return TRUE; + } + + return FALSE; +} + +static void input_preprocess(Scene *scene, Sequence *seq, TStripElem *se, int cfra) +{ + float mul; + + seq->strip->orx= se->ibuf->x; + seq->strip->ory= se->ibuf->y; + + if((seq->flag & SEQ_FILTERY) && seq->type != SEQ_MOVIE) { + IMB_filtery(se->ibuf); + } + + if(seq->flag & SEQ_USE_CROP || seq->flag & SEQ_USE_TRANSFORM) { + StripCrop c; + StripTransform t; + int sx,sy,dx,dy; + + memset(&c, 0, sizeof(StripCrop)); + memset(&t, 0, sizeof(StripTransform)); + + if(seq->flag & SEQ_USE_CROP && seq->strip->crop) { + c = *seq->strip->crop; + } + if(seq->flag & SEQ_USE_TRANSFORM && seq->strip->transform) { + t = *seq->strip->transform; + } + + sx = se->ibuf->x - c.left - c.right; + sy = se->ibuf->y - c.top - c.bottom; + dx = sx; + dy = sy; + + if (seq->flag & SEQ_USE_TRANSFORM) { + dx = scene->r.xsch; + dy = scene->r.ysch; + } + + if (c.top + c.bottom >= se->ibuf->y || + c.left + c.right >= se->ibuf->x || + t.xofs >= dx || t.yofs >= dy) { + make_black_ibuf(se->ibuf); + } else { + ImBuf * i; + + if (se->ibuf->rect_float) { + i = IMB_allocImBuf(dx, dy,32, IB_rectfloat, 0); + } else { + i = IMB_allocImBuf(dx, dy,32, IB_rect, 0); + } + + IMB_rectcpy(i, se->ibuf, + t.xofs, t.yofs, + c.left, c.bottom, + sx, sy); + + IMB_freeImBuf(se->ibuf); + + se->ibuf = i; + } + } + + if(seq->flag & SEQ_FLIPX) { + IMB_flipx(se->ibuf); + } + if(seq->flag & SEQ_FLIPY) { + IMB_flipy(se->ibuf); + } + + if(seq->mul == 0.0) { + seq->mul = 1.0; + } + + mul = seq->mul; + + if(seq->blend_mode == SEQ_BLEND_REPLACE) { + mul *= seq->blend_opacity / 100.0; + } + + if(seq->flag & SEQ_USE_COLOR_BALANCE && seq->strip->color_balance) { + color_balance(seq, se, mul); + mul = 1.0; + } + + if(seq->flag & SEQ_MAKE_FLOAT) { + if (!se->ibuf->rect_float) { + IMB_float_from_rect(se->ibuf); + } + if (se->ibuf->rect) { + imb_freerectImBuf(se->ibuf); + } + } + + if(mul != 1.0) { + multibuf(se->ibuf, mul); + } + + if(seq->flag & SEQ_MAKE_PREMUL) { + if(se->ibuf->depth == 32 && se->ibuf->zbuf == 0) { + converttopremul(se->ibuf); + } + } + + + if(se->ibuf->x != seqrectx || se->ibuf->y != seqrecty ) { + if(scene->r.mode & R_OSA) { + IMB_scaleImBuf(se->ibuf, + (short)seqrectx, (short)seqrecty); + } else { + IMB_scalefastImBuf(se->ibuf, + (short)seqrectx, (short)seqrecty); + } + } +} + +/* test if image too small or discarded from cache: reload */ + +static void test_and_auto_discard_ibuf(TStripElem * se) +{ + if (se->ibuf) { + if(se->ibuf->x != seqrectx || se->ibuf->y != seqrecty + || !(se->ibuf->rect || se->ibuf->rect_float)) { + IMB_freeImBuf(se->ibuf); + + se->ibuf= 0; + se->ok= STRIPELEM_OK; + } + } + if (se->ibuf_comp) { + if(se->ibuf_comp->x != seqrectx || se->ibuf_comp->y != seqrecty + || !(se->ibuf_comp->rect || se->ibuf_comp->rect_float)) { + IMB_freeImBuf(se->ibuf_comp); + + se->ibuf_comp = 0; + } + } +} + +static void test_and_auto_discard_ibuf_stills(Strip * strip) +{ + if (strip->ibuf_startstill) { + if (!strip->ibuf_startstill->rect && + !strip->ibuf_startstill->rect_float) { + IMB_freeImBuf(strip->ibuf_startstill); + strip->ibuf_startstill = 0; + } + } + if (strip->ibuf_endstill) { + if (!strip->ibuf_endstill->rect && + !strip->ibuf_endstill->rect_float) { + IMB_freeImBuf(strip->ibuf_endstill); + strip->ibuf_endstill = 0; + } + } +} + +static void copy_from_ibuf_still(Sequence * seq, TStripElem * se) +{ + if (!se->ibuf) { + if (se->nr == 0 && seq->strip->ibuf_startstill) { + IMB_cache_limiter_touch(seq->strip->ibuf_startstill); + + se->ibuf = IMB_dupImBuf(seq->strip->ibuf_startstill); + } + if (se->nr == seq->len - 1 + && (seq->len != 1) + && seq->strip->ibuf_endstill) { + IMB_cache_limiter_touch(seq->strip->ibuf_endstill); + + se->ibuf = IMB_dupImBuf(seq->strip->ibuf_endstill); + } + } +} + +static void copy_to_ibuf_still(Sequence * seq, TStripElem * se) +{ + if (se->ibuf) { + if (se->nr == 0) { + seq->strip->ibuf_startstill = IMB_dupImBuf(se->ibuf); + + IMB_cache_limiter_insert(seq->strip->ibuf_startstill); + IMB_cache_limiter_touch(seq->strip->ibuf_startstill); + } + if (se->nr == seq->len - 1 && seq->len != 1) { + seq->strip->ibuf_endstill = IMB_dupImBuf(se->ibuf); + + IMB_cache_limiter_insert(seq->strip->ibuf_endstill); + IMB_cache_limiter_touch(seq->strip->ibuf_endstill); + } + } +} + +static void free_metastrip_imbufs(ListBase *seqbasep, int cfra, int chanshown) +{ + Sequence* seq_arr[MAXSEQ+1]; + int i; + TStripElem* se = 0; + + evaluate_seq_frame_gen(seq_arr, seqbasep, cfra); + + for (i = 0; i < MAXSEQ; i++) { + if (!video_seq_is_rendered(seq_arr[i])) { + continue; + } + se = give_tstripelem(seq_arr[i], cfra); + if (se) { + if (se->ibuf) { + IMB_freeImBuf(se->ibuf); + + se->ibuf= 0; + se->ok= STRIPELEM_OK; + } + + if (se->ibuf_comp) { + IMB_freeImBuf(se->ibuf_comp); + + se->ibuf_comp = 0; + } + } + } + +} + +static void check_limiter_refcount(const char * func, TStripElem *se) +{ + if (se && se->ibuf) { + int refcount = IMB_cache_limiter_get_refcount(se->ibuf); + if (refcount != 1) { + /* can happen on complex pipelines */ + if (refcount > 1 && (G.f & G_DEBUG) == 0) { + return; + } + + fprintf(stderr, + "sequencer: (ibuf) %s: " + "suspicious memcache " + "limiter refcount: %d\n", func, refcount); + } + } +} + +static void check_limiter_refcount_comp(const char * func, TStripElem *se) +{ + if (se && se->ibuf_comp) { + int refcount = IMB_cache_limiter_get_refcount(se->ibuf_comp); + if (refcount != 1) { + /* can happen on complex pipelines */ + if (refcount > 1 && (G.f & G_DEBUG) == 0) { + return; + } + fprintf(stderr, + "sequencer: (ibuf comp) %s: " + "suspicious memcache " + "limiter refcount: %d\n", func, refcount); + } + } +} + +static TStripElem* do_build_seq_array_recursively(Scene *scene, + ListBase *seqbasep, int cfra, int chanshown, int render_size); + +static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int cfra, + int build_proxy_run, int render_size) +{ + char name[FILE_MAXDIR+FILE_MAXFILE]; + int use_limiter = TRUE; + + test_and_auto_discard_ibuf(se); + test_and_auto_discard_ibuf_stills(seq->strip); + + if(seq->type == SEQ_META) { + TStripElem * meta_se = 0; + int use_preprocess = FALSE; + use_limiter = FALSE; + + if (!build_proxy_run && se->ibuf == 0) { + se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); + if (se->ibuf) { + use_limiter = TRUE; + use_preprocess = TRUE; + } + } + + if(!se->ibuf && seq->seqbase.first) { + meta_se = do_build_seq_array_recursively(scene, + &seq->seqbase, seq->start + se->nr, 0, + render_size); + + check_limiter_refcount("do_build_seq_ibuf: for META", meta_se); + } + + se->ok = STRIPELEM_OK; + + if(!se->ibuf && meta_se) { + se->ibuf = meta_se->ibuf_comp; + if(se->ibuf && + (!input_have_to_preprocess(scene, seq, se, cfra) || + build_proxy_run)) { + IMB_refImBuf(se->ibuf); + if (build_proxy_run) { + IMB_cache_limiter_unref(se->ibuf); + } + } else if (se->ibuf) { + struct ImBuf * i = IMB_dupImBuf(se->ibuf); + + IMB_cache_limiter_unref(se->ibuf); + + se->ibuf = i; + + use_limiter = TRUE; + use_preprocess = TRUE; + } + } else if (se->ibuf) { + use_limiter = TRUE; + } + if (meta_se) { + free_metastrip_imbufs( + &seq->seqbase, seq->start + se->nr, 0); + } + + if (use_preprocess) { + input_preprocess(scene, seq, se, cfra); + } + } else if(seq->type & SEQ_EFFECT) { + int use_preprocess = FALSE; + /* should the effect be recalculated? */ + + if (!build_proxy_run && se->ibuf == 0) { + se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); + if (se->ibuf) { + use_preprocess = TRUE; + } + } + + if(se->ibuf == 0) { + /* if any inputs are rectfloat, output is float too */ + if((se->se1 && se->se1->ibuf && se->se1->ibuf->rect_float) || + (se->se2 && se->se2->ibuf && se->se2->ibuf->rect_float) || + (se->se3 && se->se3->ibuf && se->se3->ibuf->rect_float)) + se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rectfloat, 0); + else + se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rect, 0); + + do_effect(scene, cfra, seq, se); + if (input_have_to_preprocess(scene, seq, se, cfra) && + !build_proxy_run) { + if ((se->se1 && (se->ibuf == se->se1->ibuf)) || + (se->se2 && (se->ibuf == se->se2->ibuf))) { + struct ImBuf * i + = IMB_dupImBuf(se->ibuf); + + IMB_freeImBuf(se->ibuf); + + se->ibuf = i; + } + use_preprocess = TRUE; + } + } + if (use_preprocess) { + input_preprocess(scene, seq, se, cfra); + } + } else if(seq->type == SEQ_IMAGE) { + if(se->ok == STRIPELEM_OK && se->ibuf == 0) { + StripElem * s_elem = give_stripelem(seq, cfra); + BLI_join_dirfile(name, seq->strip->dir, s_elem->name); + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, scene->r.cfra); + if (!build_proxy_run) { + se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); + } + copy_from_ibuf_still(seq, se); + + if (!se->ibuf) { + se->ibuf= IMB_loadiffname( + name, IB_rect); + /* we don't need both (speed reasons)! */ + if (se->ibuf && + se->ibuf->rect_float && se->ibuf->rect) { + imb_freerectImBuf(se->ibuf); + } + + copy_to_ibuf_still(seq, se); + } + + if(se->ibuf == 0) { + se->ok = STRIPELEM_FAILED; + } else if (!build_proxy_run) { + input_preprocess(scene, seq, se, cfra); + } + } + } else if(seq->type == SEQ_MOVIE) { + if(se->ok == STRIPELEM_OK && se->ibuf==0) { + if(!build_proxy_run) { + se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); + } + copy_from_ibuf_still(seq, se); + + if (se->ibuf == 0) { + if(seq->anim==0) { + BLI_join_dirfile(name, seq->strip->dir, seq->strip->stripdata->name); + BLI_convertstringcode(name, G.sce); + BLI_convertstringframe(name, scene->r.cfra); + + seq->anim = openanim( + name, IB_rect | + ((seq->flag & SEQ_FILTERY) + ? IB_animdeinterlace : 0)); + } + if(seq->anim) { + IMB_anim_set_preseek(seq->anim, seq->anim_preseek); + se->ibuf = IMB_anim_absolute(seq->anim, se->nr + seq->anim_startofs); + /* we don't need both (speed reasons)! */ + if (se->ibuf + && se->ibuf->rect_float + && se->ibuf->rect) { + imb_freerectImBuf(se->ibuf); + } + + } + copy_to_ibuf_still(seq, se); + } + + if(se->ibuf == 0) { + se->ok = STRIPELEM_FAILED; + } else if (!build_proxy_run) { + input_preprocess(scene, seq, se, cfra); + } + } + } else if(seq->type == SEQ_SCENE) { // scene can be NULL after deletions + Scene *sce= seq->scene;// *oldsce= scene; + Render *re; + RenderResult rres; + char scenename[64]; + int have_seq= (sce->r.scemode & R_DOSEQ) && sce->ed && sce->ed->seqbase.first; + int sce_valid =sce && (sce->camera || have_seq); + + if (se->ibuf == NULL && sce_valid && !build_proxy_run) { + se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); + if (se->ibuf) { + input_preprocess(scene, seq, se, cfra); + } + } + + if (se->ibuf == NULL && sce_valid) { + copy_from_ibuf_still(seq, se); + if (se->ibuf) { + input_preprocess(scene, seq, se, cfra); + } + } + + if (!sce_valid) { + se->ok = STRIPELEM_FAILED; + } else if (se->ibuf==NULL && sce_valid) { + int oldcfra; + /* Hack! This function can be called from do_render_seq(), in that case + the seq->scene can already have a Render initialized with same name, + so we have to use a default name. (compositor uses scene name to + find render). + However, when called from within the UI (image preview in sequencer) + we do want to use scene Render, that way the render result is defined + for display in render/imagewindow + + Hmm, don't see, why we can't do that all the time, + and since G.rendering is uhm, gone... (Peter) + */ + + int rendering = 1; + int doseq; + + oldcfra = seq->scene->r.cfra; + + if(rendering) { + BLI_strncpy(scenename, sce->id.name+2, 64); + strcpy(sce->id.name+2, " do_build_seq_ibuf"); + } + re= RE_NewRender(sce->id.name); + + /* prevent eternal loop */ + doseq= scene->r.scemode & R_DOSEQ; + scene->r.scemode &= ~R_DOSEQ; + + RE_BlenderFrame(re, sce, + seq->sfra+se->nr+seq->anim_startofs); + + if(rendering) + BLI_strncpy(sce->id.name+2, scenename, 64); + + RE_AcquireResultImage(re, &rres); + + if(rres.rectf) { + se->ibuf= IMB_allocImBuf(rres.rectx, rres.recty, 32, IB_rectfloat, 0); + memcpy(se->ibuf->rect_float, rres.rectf, 4*sizeof(float)*rres.rectx*rres.recty); + if(rres.rectz) { + addzbuffloatImBuf(se->ibuf); + memcpy(se->ibuf->zbuf_float, rres.rectz, sizeof(float)*rres.rectx*rres.recty); + } + } else if (rres.rect32) { + se->ibuf= IMB_allocImBuf(rres.rectx, rres.recty, 32, IB_rect, 0); + memcpy(se->ibuf->rect, rres.rect32, 4*rres.rectx*rres.recty); + } + + RE_ReleaseResultImage(re); + + // BIF_end_render_callbacks(); + + /* restore */ + scene->r.scemode |= doseq; + + seq->scene->r.cfra = oldcfra; + + copy_to_ibuf_still(seq, se); + + if (!build_proxy_run) { + if(se->ibuf == NULL) { + se->ok = STRIPELEM_FAILED; + } else { + input_preprocess(scene, seq, se, cfra); + } + } + + } + } + if (!build_proxy_run) { + if (se->ibuf && use_limiter) { + IMB_cache_limiter_insert(se->ibuf); + IMB_cache_limiter_ref(se->ibuf); + IMB_cache_limiter_touch(se->ibuf); + } + } +} + +static TStripElem* do_build_seq_recursively(Scene *scene, Sequence *seq, int cfra, int render_size); + +static void do_effect_seq_recursively(Scene *scene, Sequence *seq, TStripElem *se, int cfra, int render_size) +{ + float fac, facf; + struct SeqEffectHandle sh = get_sequence_effect(seq); + int early_out; + FCurve *fcu= NULL; + + se->se1 = 0; + se->se2 = 0; + se->se3 = 0; + + if ((seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) != 0) { + sh.get_default_fac(seq, cfra, &fac, &facf); + if( scene->r.mode & R_FIELDS ); else facf= fac; + } else { + fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, + "effect_fader", 0); + if (fcu) { + fac = facf = evaluate_fcurve(fcu, cfra); + if( scene->r.mode & R_FIELDS ) { + facf = evaluate_fcurve(fcu, cfra + 0.5); + } + } else { + fac = facf = seq->effect_fader; + } + } + + early_out = sh.early_out(seq, fac, facf); + switch (early_out) { + case -1: + /* no input needed */ + break; + case 0: + se->se1 = do_build_seq_recursively(scene, seq->seq1, cfra, render_size); + se->se2 = do_build_seq_recursively(scene, seq->seq2, cfra, render_size); + if (seq->seq3) { + se->se3 = do_build_seq_recursively(scene, seq->seq3, cfra, render_size); + } + break; + case 1: + se->se1 = do_build_seq_recursively(scene, seq->seq1, cfra, render_size); + break; + case 2: + se->se2 = do_build_seq_recursively(scene, seq->seq2, cfra, render_size); + break; + } + + + do_build_seq_ibuf(scene, seq, se, cfra, FALSE, render_size); + + /* children are not needed anymore ... */ + + if (se->se1 && se->se1->ibuf) { + IMB_cache_limiter_unref(se->se1->ibuf); + } + if (se->se2 && se->se2->ibuf) { + IMB_cache_limiter_unref(se->se2->ibuf); + } + if (se->se3 && se->se3->ibuf) { + IMB_cache_limiter_unref(se->se3->ibuf); + } + check_limiter_refcount("do_effect_seq_recursively", se); +} + +static TStripElem* do_build_seq_recursively_impl(Scene *scene, Sequence * seq, int cfra, int render_size) +{ + TStripElem *se; + + se = give_tstripelem(seq, cfra); + + if(se) { + if (seq->type & SEQ_EFFECT) { + do_effect_seq_recursively(scene, seq, se, cfra, render_size); + } else { + do_build_seq_ibuf(scene, seq, se, cfra, FALSE, render_size); + } + } + return se; +} + +/* FIXME: + +If cfra was float throughout blender (especially in the render +pipeline) one could even _render_ with subframe precision +instead of faking using the blend code below... + +*/ + +static TStripElem* do_handle_speed_effect(Scene *scene, Sequence * seq, int cfra, int render_size) +{ + SpeedControlVars * s = (SpeedControlVars *)seq->effectdata; + int nr = cfra - seq->start; + float f_cfra; + int cfra_left; + int cfra_right; + TStripElem * se = 0; + TStripElem * se1 = 0; + TStripElem * se2 = 0; + + sequence_effect_speed_rebuild_map(scene, seq, 0); + + f_cfra = seq->start + s->frameMap[nr]; + + cfra_left = (int) floor(f_cfra); + cfra_right = (int) ceil(f_cfra); + + se = give_tstripelem(seq, cfra); + + if (!se) { + return se; + } + + if (cfra_left == cfra_right || + (s->flags & SEQ_SPEED_BLEND) == 0) { + test_and_auto_discard_ibuf(se); + + if (se->ibuf == NULL) { + se1 = do_build_seq_recursively_impl(scene, seq->seq1, cfra_left, render_size); + + if((se1 && se1->ibuf && se1->ibuf->rect_float)) + se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rectfloat, 0); + else + se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rect, 0); + + if (se1 == 0 || se1->ibuf == 0) { + make_black_ibuf(se->ibuf); + } else { + if (se->ibuf != se1->ibuf) { + if (se->ibuf) { + IMB_freeImBuf(se->ibuf); + } + + se->ibuf = se1->ibuf; + IMB_refImBuf(se->ibuf); + } + } + } + } else { + struct SeqEffectHandle sh; + + if(se->ibuf) { + if(se->ibuf->x < seqrectx || se->ibuf->y < seqrecty + || !(se->ibuf->rect || se->ibuf->rect_float)) { + IMB_freeImBuf(se->ibuf); + se->ibuf= 0; + } + } + + if (se->ibuf == NULL) { + se1 = do_build_seq_recursively_impl(scene, seq->seq1, cfra_left, render_size); + se2 = do_build_seq_recursively_impl(scene, seq->seq1, cfra_right, render_size); + + if((se1 && se1->ibuf && se1->ibuf->rect_float)) + se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rectfloat, 0); + else + se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rect, 0); + + if (!se1 || !se2) { + make_black_ibuf(se->ibuf); + } else { + sh = get_sequence_effect(seq); + + sh.execute(scene, seq, cfra, + f_cfra - (float) cfra_left, + f_cfra - (float) cfra_left, + se->ibuf->x, se->ibuf->y, + se1->ibuf, se2->ibuf, 0, se->ibuf); + } + } + + } + + /* caller expects this to be referenced, so do it! */ + if (se->ibuf) { + IMB_cache_limiter_insert(se->ibuf); + IMB_cache_limiter_ref(se->ibuf); + IMB_cache_limiter_touch(se->ibuf); + } + + /* children are no longer needed */ + if (se1 && se1->ibuf) + IMB_cache_limiter_unref(se1->ibuf); + if (se2 && se2->ibuf) + IMB_cache_limiter_unref(se2->ibuf); + + check_limiter_refcount("do_handle_speed_effect", se); + + return se; +} + +/* + * build all ibufs recursively + * + * if successfull, the returned TStripElem contains the (referenced!) imbuf + * that means: you _must_ call + * + * IMB_cache_limiter_unref(rval); + * + * if rval != 0 + * + */ + +static TStripElem* do_build_seq_recursively(Scene *scene, Sequence * seq, int cfra, int render_size) +{ + TStripElem *se; + if (seq->type == SEQ_SPEED) { + se = do_handle_speed_effect(scene, seq, cfra, render_size); + } else { + se = do_build_seq_recursively_impl(scene, seq, cfra, render_size); + } + + check_limiter_refcount("do_build_seq_recursively", se); + + return se; +} + +static TStripElem* do_build_seq_array_recursively(Scene *scene, + ListBase *seqbasep, int cfra, int chanshown, int render_size) +{ + Sequence* seq_arr[MAXSEQ+1]; + int count; + int i; + TStripElem* se = 0; + + count = get_shown_sequences(seqbasep, cfra, chanshown, (Sequence **)&seq_arr); + + if (!count) { + return 0; + } + + se = give_tstripelem(seq_arr[count - 1], cfra); + + if (!se) { + return 0; + } + + test_and_auto_discard_ibuf(se); + + if (se->ibuf_comp != 0) { + IMB_cache_limiter_insert(se->ibuf_comp); + IMB_cache_limiter_ref(se->ibuf_comp); + IMB_cache_limiter_touch(se->ibuf_comp); + return se; + } + + + if(count == 1) { + se = do_build_seq_recursively(scene, seq_arr[0], cfra, render_size); + if (se->ibuf) { + se->ibuf_comp = se->ibuf; + IMB_refImBuf(se->ibuf_comp); + } + return se; + } + + + for (i = count - 1; i >= 0; i--) { + int early_out; + Sequence * seq = seq_arr[i]; + struct SeqEffectHandle sh; + float facf; + + se = give_tstripelem(seq, cfra); + + test_and_auto_discard_ibuf(se); + + if (se->ibuf_comp != 0) { + break; + } + if (seq->blend_mode == SEQ_BLEND_REPLACE) { + do_build_seq_recursively(scene, seq, cfra, render_size); + if (se->ibuf) { + se->ibuf_comp = se->ibuf; + IMB_refImBuf(se->ibuf); + } else { + se->ibuf_comp = IMB_allocImBuf( + (short)seqrectx, (short)seqrecty, + 32, IB_rect, 0); + IMB_cache_limiter_insert(se->ibuf_comp); + IMB_cache_limiter_ref(se->ibuf_comp); + IMB_cache_limiter_touch(se->ibuf_comp); + } + break; + } + + sh = get_sequence_blend(seq); + + facf = seq->blend_opacity / 100.0; + + early_out = sh.early_out(seq, facf, facf); + + switch (early_out) { + case -1: + case 2: + do_build_seq_recursively(scene, seq, cfra, render_size); + if (se->ibuf) { + se->ibuf_comp = se->ibuf; + IMB_refImBuf(se->ibuf_comp); + } else { + se->ibuf_comp = IMB_allocImBuf( + (short)seqrectx, (short)seqrecty, + 32, IB_rect, 0); + IMB_cache_limiter_insert(se->ibuf_comp); + IMB_cache_limiter_ref(se->ibuf_comp); + IMB_cache_limiter_touch(se->ibuf_comp); + } + break; + case 1: + if (i == 0) { + se->ibuf_comp = IMB_allocImBuf( + (short)seqrectx, (short)seqrecty, + 32, IB_rect, 0); + IMB_cache_limiter_insert(se->ibuf_comp); + IMB_cache_limiter_ref(se->ibuf_comp); + IMB_cache_limiter_touch(se->ibuf_comp); + } + break; + case 0: + do_build_seq_recursively(scene, seq, cfra, render_size); + if (!se->ibuf) { + se->ibuf = IMB_allocImBuf( + (short)seqrectx, (short)seqrecty, + 32, IB_rect, 0); + IMB_cache_limiter_insert(se->ibuf); + IMB_cache_limiter_ref(se->ibuf); + IMB_cache_limiter_touch(se->ibuf); + } + if (i == 0) { + se->ibuf_comp = se->ibuf; + IMB_refImBuf(se->ibuf_comp); + } + break; + } + + if (se->ibuf_comp) { + break; + } + } + + i++; + + for (; i < count; i++) { + Sequence * seq = seq_arr[i]; + struct SeqEffectHandle sh = get_sequence_blend(seq); + TStripElem* se1 = give_tstripelem(seq_arr[i-1], cfra); + TStripElem* se2 = give_tstripelem(seq_arr[i], cfra); + + float facf = seq->blend_opacity / 100.0; + + int early_out = sh.early_out(seq, facf, facf); + switch (early_out) { + case 0: { + int x= se2->ibuf->x; + int y= se2->ibuf->y; + int swap_input = FALSE; + + if (se1->ibuf_comp->rect_float || + se2->ibuf->rect_float) { + se2->ibuf_comp = IMB_allocImBuf( + (short)seqrectx, (short)seqrecty, + 32, IB_rectfloat, 0); + } else { + se2->ibuf_comp = IMB_allocImBuf( + (short)seqrectx, (short)seqrecty, + 32, IB_rect, 0); + } + + + if (!se1->ibuf_comp->rect_float && + se2->ibuf_comp->rect_float) { + IMB_float_from_rect(se1->ibuf_comp); + } + if (!se2->ibuf->rect_float && + se2->ibuf_comp->rect_float) { + IMB_float_from_rect(se2->ibuf); + } + + if (!se1->ibuf_comp->rect && + !se2->ibuf_comp->rect_float) { + IMB_rect_from_float(se1->ibuf_comp); + } + if (!se2->ibuf->rect && + !se2->ibuf_comp->rect_float) { + IMB_rect_from_float(se2->ibuf); + } + + /* bad hack, to fix crazy input ordering of + those two effects */ + + if (seq->blend_mode == SEQ_ALPHAOVER || + seq->blend_mode == SEQ_ALPHAUNDER || + seq->blend_mode == SEQ_OVERDROP) { + swap_input = TRUE; + } + + if (swap_input) { + sh.execute(scene, seq, cfra, + facf, facf, x, y, + se2->ibuf, se1->ibuf_comp, 0, + se2->ibuf_comp); + } else { + sh.execute(scene, seq, cfra, + facf, facf, x, y, + se1->ibuf_comp, se2->ibuf, 0, + se2->ibuf_comp); + } + + IMB_cache_limiter_insert(se2->ibuf_comp); + IMB_cache_limiter_ref(se2->ibuf_comp); + IMB_cache_limiter_touch(se2->ibuf_comp); + + IMB_cache_limiter_unref(se1->ibuf_comp); + IMB_cache_limiter_unref(se2->ibuf); + + break; + } + case 1: { + se2->ibuf_comp = se1->ibuf; + IMB_refImBuf(se2->ibuf_comp); + + break; + } + } + se = se2; + } + + return se; +} + +/* + * returned ImBuf is refed! + * you have to unref after usage! + */ + +static ImBuf *give_ibuf_seq_impl(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size) +{ + Editing *ed= seq_give_editing(scene, FALSE); + int count; + ListBase *seqbasep; + TStripElem *se; + + + if(ed==NULL) return NULL; + + count = BLI_countlist(&ed->metastack); + if((chanshown < 0) && (count > 0)) { + count = MAX2(count + chanshown, 0); + seqbasep= ((MetaStack*)BLI_findlink(&ed->metastack, count))->oldbasep; + } else { + seqbasep= ed->seqbasep; + } + + seqrectx= rectx; /* bad bad global! */ + seqrecty= recty; + + se = do_build_seq_array_recursively(scene, seqbasep, cfra, chanshown, render_size); + + if(!se) { + return 0; + } + + check_limiter_refcount_comp("give_ibuf_seq_impl", se); + + return se->ibuf_comp; +} + +ImBuf *give_ibuf_seq_direct(Scene *scene, int rectx, int recty, int cfra, int render_size, Sequence *seq) +{ + TStripElem* se; + + seqrectx= rectx; /* bad bad global! */ + seqrecty= recty; + + se = do_build_seq_recursively(scene, seq, cfra, render_size); + + if(!se) { + return 0; + } + + check_limiter_refcount("give_ibuf_seq_direct", se); + + if (se->ibuf) { + IMB_cache_limiter_unref(se->ibuf); + } + + return se->ibuf; +} + +ImBuf *give_ibuf_seq(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size) +{ + ImBuf* i = give_ibuf_seq_impl(scene, rectx, recty, cfra, chanshown, render_size); + + if (i) { + IMB_cache_limiter_unref(i); + } + return i; +} + +#if 0 +/* check used when we need to change seq->blend_mode but not to effect or audio strips */ +static int seq_can_blend(Sequence *seq) +{ + if (ELEM4(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE)) { + return 1; + } else { + return 0; + } +} +#endif + +/* *********************** threading api ******************* */ + +static ListBase running_threads; +static ListBase prefetch_wait; +static ListBase prefetch_done; + +static pthread_mutex_t queue_lock = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t wakeup_lock = PTHREAD_MUTEX_INITIALIZER; +static pthread_cond_t wakeup_cond = PTHREAD_COND_INITIALIZER; + +//static pthread_mutex_t prefetch_ready_lock = PTHREAD_MUTEX_INITIALIZER; +//static pthread_cond_t prefetch_ready_cond = PTHREAD_COND_INITIALIZER; + +static pthread_mutex_t frame_done_lock = PTHREAD_MUTEX_INITIALIZER; +static pthread_cond_t frame_done_cond = PTHREAD_COND_INITIALIZER; + +static volatile int seq_thread_shutdown = FALSE; +static volatile int seq_last_given_monoton_cfra = 0; +static int monoton_cfra = 0; + +typedef struct PrefetchThread { + struct PrefetchThread *next, *prev; + + Scene *scene; + struct PrefetchQueueElem *current; + pthread_t pthread; + int running; + +} PrefetchThread; + +typedef struct PrefetchQueueElem { + struct PrefetchQueueElem *next, *prev; + + int rectx; + int recty; + int cfra; + int chanshown; + int render_size; + + int monoton_cfra; + + struct ImBuf * ibuf; +} PrefetchQueueElem; + +#if 0 +static void *seq_prefetch_thread(void * This_) +{ + PrefetchThread * This = This_; + + while (!seq_thread_shutdown) { + PrefetchQueueElem *e; + int s_last; + + pthread_mutex_lock(&queue_lock); + e = prefetch_wait.first; + if (e) { + BLI_remlink(&prefetch_wait, e); + } + s_last = seq_last_given_monoton_cfra; + + This->current = e; + + pthread_mutex_unlock(&queue_lock); + + if (!e) { + pthread_mutex_lock(&prefetch_ready_lock); + + This->running = FALSE; + + pthread_cond_signal(&prefetch_ready_cond); + pthread_mutex_unlock(&prefetch_ready_lock); + + pthread_mutex_lock(&wakeup_lock); + if (!seq_thread_shutdown) { + pthread_cond_wait(&wakeup_cond, &wakeup_lock); + } + pthread_mutex_unlock(&wakeup_lock); + continue; + } + + This->running = TRUE; + + if (e->cfra >= s_last) { + e->ibuf = give_ibuf_seq_impl(This->scene, + e->rectx, e->recty, e->cfra, e->chanshown, + e->render_size); + } + + pthread_mutex_lock(&queue_lock); + + BLI_addtail(&prefetch_done, e); + + for (e = prefetch_wait.first; e; e = e->next) { + if (s_last > e->monoton_cfra) { + BLI_remlink(&prefetch_wait, e); + MEM_freeN(e); + } + } + + for (e = prefetch_done.first; e; e = e->next) { + if (s_last > e->monoton_cfra) { + if (e->ibuf) { + IMB_cache_limiter_unref(e->ibuf); + } + BLI_remlink(&prefetch_done, e); + MEM_freeN(e); + } + } + + pthread_mutex_unlock(&queue_lock); + + pthread_mutex_lock(&frame_done_lock); + pthread_cond_signal(&frame_done_cond); + pthread_mutex_unlock(&frame_done_lock); + } + return 0; +} + +static void seq_start_threads(Scene *scene) +{ + int i; + + running_threads.first = running_threads.last = NULL; + prefetch_wait.first = prefetch_wait.last = NULL; + prefetch_done.first = prefetch_done.last = NULL; + + seq_thread_shutdown = FALSE; + seq_last_given_monoton_cfra = monoton_cfra = 0; + + /* since global structures are modified during the processing + of one frame, only one render thread is currently possible... + + (but we code, in the hope, that we can remove this restriction + soon...) + */ + + fprintf(stderr, "SEQ-THREAD: seq_start_threads\n"); + + for (i = 0; i < 1; i++) { + PrefetchThread *t = MEM_callocN(sizeof(PrefetchThread), "prefetch_thread"); + t->scene= scene; + t->running = TRUE; + BLI_addtail(&running_threads, t); + + pthread_create(&t->pthread, NULL, seq_prefetch_thread, t); + } + + /* init malloc mutex */ + BLI_init_threads(0, 0, 0); +} + +static void seq_stop_threads() +{ + PrefetchThread *tslot; + PrefetchQueueElem *e; + + fprintf(stderr, "SEQ-THREAD: seq_stop_threads()\n"); + + if (seq_thread_shutdown) { + fprintf(stderr, "SEQ-THREAD: ... already stopped\n"); + return; + } + + pthread_mutex_lock(&wakeup_lock); + + seq_thread_shutdown = TRUE; + + pthread_cond_broadcast(&wakeup_cond); + pthread_mutex_unlock(&wakeup_lock); + + for(tslot = running_threads.first; tslot; tslot= tslot->next) { + pthread_join(tslot->pthread, NULL); + } + + + for (e = prefetch_wait.first; e; e = e->next) { + BLI_remlink(&prefetch_wait, e); + MEM_freeN(e); + } + + for (e = prefetch_done.first; e; e = e->next) { + if (e->ibuf) { + IMB_cache_limiter_unref(e->ibuf); + } + BLI_remlink(&prefetch_done, e); + MEM_freeN(e); + } + + BLI_freelistN(&running_threads); + + /* deinit malloc mutex */ + BLI_end_threads(0); +} +#endif + +void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown, + int render_size) +{ + PrefetchQueueElem *e; + if (seq_thread_shutdown) { + return; + } + + e = MEM_callocN(sizeof(PrefetchQueueElem), "prefetch_queue_elem"); + e->rectx = rectx; + e->recty = recty; + e->cfra = cfra; + e->chanshown = chanshown; + e->render_size = render_size; + e->monoton_cfra = monoton_cfra++; + + pthread_mutex_lock(&queue_lock); + BLI_addtail(&prefetch_wait, e); + pthread_mutex_unlock(&queue_lock); + + pthread_mutex_lock(&wakeup_lock); + pthread_cond_signal(&wakeup_cond); + pthread_mutex_unlock(&wakeup_lock); +} + +#if 0 +static void seq_wait_for_prefetch_ready() +{ + PrefetchThread *tslot; + + if (seq_thread_shutdown) { + return; + } + + fprintf(stderr, "SEQ-THREAD: rendering prefetch frames...\n"); + + pthread_mutex_lock(&prefetch_ready_lock); + + for(;;) { + for(tslot = running_threads.first; tslot; tslot= tslot->next) { + if (tslot->running) { + break; + } + } + if (!tslot) { + break; + } + pthread_cond_wait(&prefetch_ready_cond, &prefetch_ready_lock); + } + + pthread_mutex_unlock(&prefetch_ready_lock); + + fprintf(stderr, "SEQ-THREAD: prefetch done\n"); +} +#endif + +ImBuf *give_ibuf_seq_threaded(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size) +{ + PrefetchQueueElem *e = NULL; + int found_something = FALSE; + + if (seq_thread_shutdown) { + return give_ibuf_seq(scene, rectx, recty, cfra, chanshown, render_size); + } + + while (!e) { + int success = FALSE; + pthread_mutex_lock(&queue_lock); + + for (e = prefetch_done.first; e; e = e->next) { + if (cfra == e->cfra && + chanshown == e->chanshown && + rectx == e->rectx && + recty == e->recty && + render_size == e->render_size) { + success = TRUE; + found_something = TRUE; + break; + } + } + + if (!e) { + for (e = prefetch_wait.first; e; e = e->next) { + if (cfra == e->cfra && + chanshown == e->chanshown && + rectx == e->rectx && + recty == e->recty && + render_size == e->render_size) { + found_something = TRUE; + break; + } + } + } + + if (!e) { + PrefetchThread *tslot; + + for(tslot = running_threads.first; + tslot; tslot= tslot->next) { + if (tslot->current && + cfra == tslot->current->cfra && + chanshown == tslot->current->chanshown && + rectx == tslot->current->rectx && + recty == tslot->current->recty && + render_size== tslot->current->render_size){ + found_something = TRUE; + break; + } + } + } + + /* e->ibuf is unrefed by render thread on next round. */ + + if (e) { + seq_last_given_monoton_cfra = e->monoton_cfra; + } + + pthread_mutex_unlock(&queue_lock); + + if (!success) { + e = NULL; + + if (!found_something) { + fprintf(stderr, + "SEQ-THREAD: Requested frame " + "not in queue ???\n"); + break; + } + pthread_mutex_lock(&frame_done_lock); + pthread_cond_wait(&frame_done_cond, &frame_done_lock); + pthread_mutex_unlock(&frame_done_lock); + } + } + + return e ? e->ibuf : 0; +} + +/* Functions to free imbuf and anim data on changes */ + +static void free_imbuf_strip_elem(TStripElem *se) +{ + if(se->ibuf) { + IMB_freeImBuf(se->ibuf); + } + if(se->ibuf_comp) { + IMB_freeImBuf(se->ibuf_comp); + } + se->ibuf_comp = 0; + se->ibuf= 0; + se->ok= STRIPELEM_OK; + se->se1= se->se2= se->se3= 0; +} + +static void free_anim_seq(Sequence *seq) +{ + if(seq->anim) { + IMB_free_anim(seq->anim); + seq->anim = 0; + } +} + +#if 0 +static void free_imbuf_seq_except(Scene *scene, int cfra) +{ + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq; + TStripElem *se; + int a; + + if(ed==NULL) return; + + SEQ_BEGIN(ed, seq) { + if(seq->strip) { + TStripElem * curelem = give_tstripelem(seq, cfra); + + for(a = 0, se = seq->strip->tstripdata; + a < seq->strip->len && se; a++, se++) { + if(se != curelem) { + free_imbuf_strip_elem(se); + } + } + for(a = 0, se = seq->strip->tstripdata_startstill; + a < seq->strip->startstill && se; a++, se++) { + if(se != curelem) { + free_imbuf_strip_elem(se); + } + } + for(a = 0, se = seq->strip->tstripdata_endstill; + a < seq->strip->endstill && se; a++, se++) { + if(se != curelem) { + free_imbuf_strip_elem(se); + } + } + if(seq->strip->ibuf_startstill) { + IMB_freeImBuf(seq->strip->ibuf_startstill); + seq->strip->ibuf_startstill = 0; + } + + if(seq->strip->ibuf_endstill) { + IMB_freeImBuf(seq->strip->ibuf_endstill); + seq->strip->ibuf_endstill = 0; + } + + if(seq->type==SEQ_MOVIE) + if(seq->startdisp > cfra || seq->enddisp < cfra) + free_anim_seq(seq); + free_proxy_seq(seq); + } + } + SEQ_END +} +#endif + +void free_imbuf_seq(Scene *scene, ListBase * seqbase, int check_mem_usage) +{ + Sequence *seq; + TStripElem *se; + int a; + + if (check_mem_usage) { + /* Let the cache limitor take care of this (schlaile) */ + /* While render let's keep all memory available for render + (ton) + At least if free memory is tight... + This can make a big difference in encoding speed + (it is around 4 times(!) faster, if we do not waste time + on freeing _all_ buffers every time on long timelines...) + (schlaile) + */ + + uintptr_t mem_in_use; + uintptr_t mmap_in_use; + uintptr_t max; + + mem_in_use= MEM_get_memory_in_use(); + mmap_in_use= MEM_get_mapped_memory_in_use(); + max = MEM_CacheLimiter_get_maximum(); + + if (max == 0 || mem_in_use + mmap_in_use <= max) { + return; + } + } + + + for(seq= seqbase->first; seq; seq= seq->next) { + if(seq->strip) { + for(a = 0, se = seq->strip->tstripdata; + a < seq->strip->len && se; a++, se++) { + free_imbuf_strip_elem(se); + } + for(a = 0, se = seq->strip->tstripdata_startstill; + a < seq->strip->startstill && se; a++, se++) { + free_imbuf_strip_elem(se); + } + for(a = 0, se = seq->strip->tstripdata_endstill; + a < seq->strip->endstill && se; a++, se++) { + free_imbuf_strip_elem(se); + } + if(seq->strip->ibuf_startstill) { + IMB_freeImBuf(seq->strip->ibuf_startstill); + seq->strip->ibuf_startstill = 0; + } + + if(seq->strip->ibuf_endstill) { + IMB_freeImBuf(seq->strip->ibuf_endstill); + seq->strip->ibuf_endstill = 0; + } + + if(seq->type==SEQ_MOVIE) + free_anim_seq(seq); + if(seq->type==SEQ_SPEED) { + sequence_effect_speed_rebuild_map(scene, seq, 1); + } + } + if(seq->type==SEQ_META) { + free_imbuf_seq(scene, &seq->seqbase, FALSE); + } + if(seq->type==SEQ_SCENE) { + /* FIXME: recurs downwards, + but do recurs protection somehow! */ + } + } + +} + +static int update_changed_seq_recurs(Scene *scene, Sequence *seq, Sequence *changed_seq, int len_change, int ibuf_change) +{ + Sequence *subseq; + int a, free_imbuf = 0; + TStripElem *se; + + /* recurs downwards to see if this seq depends on the changed seq */ + + if(seq == NULL) + return 0; + + if(seq == changed_seq) + free_imbuf = 1; + + for(subseq=seq->seqbase.first; subseq; subseq=subseq->next) + if(update_changed_seq_recurs(scene, subseq, changed_seq, len_change, ibuf_change)) + free_imbuf = TRUE; + + if(seq->seq1) + if(update_changed_seq_recurs(scene, seq->seq1, changed_seq, len_change, ibuf_change)) + free_imbuf = TRUE; + if(seq->seq2 && (seq->seq2 != seq->seq1)) + if(update_changed_seq_recurs(scene, seq->seq2, changed_seq, len_change, ibuf_change)) + free_imbuf = TRUE; + if(seq->seq3 && (seq->seq3 != seq->seq1) && (seq->seq3 != seq->seq2)) + if(update_changed_seq_recurs(scene, seq->seq3, changed_seq, len_change, ibuf_change)) + free_imbuf = TRUE; + + if(free_imbuf) { + if(ibuf_change) { + se= seq->strip->tstripdata; + if (se) { + for(a=0; alen; a++, se++) + free_imbuf_strip_elem(se); + } + + if(seq->type == SEQ_MOVIE) + free_anim_seq(seq); + if(seq->type == SEQ_SPEED) { + sequence_effect_speed_rebuild_map(scene, seq, 1); + } + } + + if(len_change) + calc_sequence(seq); + } + + return free_imbuf; +} + +void update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_change, int ibuf_change) +{ + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq; + + if (ed==NULL) return; + + for (seq=ed->seqbase.first; seq; seq=seq->next) + update_changed_seq_recurs(scene, seq, changed_seq, len_change, ibuf_change); +} + +#if 0 // XXX from 2.4x, needs updating +void free_imbuf_seq() +{ + Scene * sce = G.main->scene.first; + while(sce) { + free_imbuf_seq_editing(sce->ed); + sce= sce->id.next; + } +} +#endif + +#if 0 // XXX old animation system +static void free_imbuf_seq_with_ipo(Scene *scene, struct Ipo *ipo) +{ + /* force update of all sequences with this ipo, on ipo changes */ + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq; + + if(ed==NULL) return; + + SEQ_BEGIN(ed, seq) { + if(seq->ipo == ipo) { + update_changed_seq_and_deps(scene, seq, 0, 1); + if(seq->type == SEQ_SPEED) { + sequence_effect_speed_rebuild_map(seq, 1); + } + free_proxy_seq(seq); + } + } + SEQ_END +} +#endif + +/* seq funcs's for transforming internally + notice the difference between start/end and left/right. + + left and right are the bounds at which the sequence is rendered, +start and end are from the start and fixed length of the sequence. +*/ +int seq_tx_get_start(Sequence *seq) { + return seq->start; +} +int seq_tx_get_end(Sequence *seq) +{ + return seq->start+seq->len; +} + +int seq_tx_get_final_left(Sequence *seq, int metaclip) +{ + if (metaclip && seq->tmp) { + /* return the range clipped by the parents range */ + return MAX2( seq_tx_get_final_left(seq, 0), seq_tx_get_final_left((Sequence *)seq->tmp, 1) ); + } else { + return (seq->start - seq->startstill) + seq->startofs; + } + +} +int seq_tx_get_final_right(Sequence *seq, int metaclip) +{ + if (metaclip && seq->tmp) { + /* return the range clipped by the parents range */ + return MIN2( seq_tx_get_final_right(seq, 0), seq_tx_get_final_right((Sequence *)seq->tmp, 1) ); + } else { + return ((seq->start+seq->len) + seq->endstill) - seq->endofs; + } +} + +void seq_tx_set_final_left(Sequence *seq, int val) +{ + if (val < (seq)->start) { + seq->startstill = abs(val - (seq)->start); + seq->startofs = 0; + } else { + seq->startofs = abs(val - (seq)->start); + seq->startstill = 0; + } +} + +void seq_tx_set_final_right(Sequence *seq, int val) +{ + if (val > (seq)->start + (seq)->len) { + seq->endstill = abs(val - (seq->start + (seq)->len)); + seq->endofs = 0; + } else { + seq->endofs = abs(val - ((seq)->start + (seq)->len)); + seq->endstill = 0; + } +} + +/* used so we can do a quick check for single image seq + since they work a bit differently to normal image seq's (during transform) */ +int check_single_seq(Sequence *seq) +{ + if ( seq->len==1 && (seq->type == SEQ_IMAGE || seq->type == SEQ_COLOR)) + return 1; + else + return 0; +} + +/* use to impose limits when dragging/extending - so impossible situations dont happen + * Cant use the SEQ_LEFTSEL and SEQ_LEFTSEL directly because the strip may be in a metastrip */ +void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag) +{ + if(leftflag) { + if (seq_tx_get_final_left(seq, 0) >= seq_tx_get_final_right(seq, 0)) { + seq_tx_set_final_left(seq, seq_tx_get_final_right(seq, 0)-1); + } + + if (check_single_seq(seq)==0) { + if (seq_tx_get_final_left(seq, 0) >= seq_tx_get_end(seq)) { + seq_tx_set_final_left(seq, seq_tx_get_end(seq)-1); + } + + /* dosnt work now - TODO */ + /* + if (seq_tx_get_start(seq) >= seq_tx_get_final_right(seq, 0)) { + int ofs; + ofs = seq_tx_get_start(seq) - seq_tx_get_final_right(seq, 0); + seq->start -= ofs; + seq_tx_set_final_left(seq, seq_tx_get_final_left(seq, 0) + ofs ); + }*/ + + } + } + + if(rightflag) { + if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_final_left(seq, 0)) { + seq_tx_set_final_right(seq, seq_tx_get_final_left(seq, 0)+1); + } + + if (check_single_seq(seq)==0) { + if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_start(seq)) { + seq_tx_set_final_right(seq, seq_tx_get_start(seq)+1); + } + } + } + + /* sounds cannot be extended past their endpoints */ + if (seq->type == SEQ_SOUND) { + seq->startstill= 0; + seq->endstill= 0; + } +} + +void fix_single_seq(Sequence *seq) +{ + int left, start, offset; + if (!check_single_seq(seq)) + return; + + /* make sure the image is always at the start since there is only one, + adjusting its start should be ok */ + left = seq_tx_get_final_left(seq, 0); + start = seq->start; + if (start != left) { + offset = left - start; + seq_tx_set_final_left( seq, seq_tx_get_final_left(seq, 0) - offset ); + seq_tx_set_final_right( seq, seq_tx_get_final_right(seq, 0) - offset ); + seq->start += offset; + } +} + +int seq_tx_test(Sequence * seq) +{ + return (seq->type < SEQ_EFFECT) || (get_sequence_effect_num_inputs(seq->type) == 0); +} + +static int seq_overlap(Sequence *seq1, Sequence *seq2) +{ + if(seq1 != seq2) + if(seq1->machine==seq2->machine) + if(((seq1->enddisp <= seq2->startdisp) || (seq1->startdisp >= seq2->enddisp))==0) + return 1; + + return 0; +} + +int seq_test_overlap(ListBase * seqbasep, Sequence *test) +{ + Sequence *seq; + + seq= seqbasep->first; + while(seq) { + if(seq_overlap(test, seq)) + return 1; + + seq= seq->next; + } + return 0; +} + + +static void seq_translate(Sequence *seq, int delta) +{ + seq->start += delta; + if(seq->type==SEQ_META) { + Sequence *seq_child; + for(seq_child= seq->seqbase.first; seq_child; seq_child= seq_child->next) { + seq_translate(seq_child, delta); + } + } + + calc_sequence_disp(seq); +} + +/* return 0 if there werent enough space */ +int shuffle_seq(ListBase * seqbasep, Sequence *test) +{ + int orig_machine= test->machine; + test->machine++; + calc_sequence(test); + while( seq_test_overlap(seqbasep, test) ) { + if(test->machine >= MAXSEQ) { + break; + } + test->machine++; + calc_sequence(test); // XXX - I dont think this is needed since were only moving vertically, Campbell. + } + + + if(test->machine >= MAXSEQ) { + /* Blender 2.4x would remove the strip. + * nicer to move it to the end */ + + Sequence *seq; + int new_frame= test->enddisp; + + for(seq= seqbasep->first; seq; seq= seq->next) { + if (seq->machine == orig_machine) + new_frame = MAX2(new_frame, seq->enddisp); + } + + test->machine= orig_machine; + new_frame = new_frame + (test->start-test->startdisp); /* adjust by the startdisp */ + seq_translate(test, new_frame - test->start); + + calc_sequence(test); + return 0; + } else { + return 1; + } +} + +static int shuffle_seq_time_offset_test(ListBase * seqbasep, char dir) +{ + int offset= 0; + Sequence *seq, *seq_other; + + for(seq= seqbasep->first; seq; seq= seq->next) { + if(seq->tmp) { + for(seq_other= seqbasep->first; seq_other; seq_other= seq_other->next) { + if(!seq_other->tmp && seq_overlap(seq, seq_other)) { + if(dir=='L') { + offset= MIN2(offset, seq_other->startdisp - seq->enddisp); + } + else { + offset= MAX2(offset, seq_other->enddisp - seq->startdisp); + } + } + } + } + } + return offset; +} + +static int shuffle_seq_time_offset(ListBase * seqbasep, char dir) +{ + int ofs= 0; + int tot_ofs= 0; + Sequence *seq; + while( (ofs= shuffle_seq_time_offset_test(seqbasep, dir)) ) { + for(seq= seqbasep->first; seq; seq= seq->next) { + if(seq->tmp) { + /* seq_test_overlap only tests display values */ + seq->startdisp += ofs; + seq->enddisp += ofs; + } + } + + tot_ofs+= ofs; + } + + for(seq= seqbasep->first; seq; seq= seq->next) { + if(seq->tmp) + calc_sequence_disp(seq); /* corrects dummy startdisp/enddisp values */ + } + + return tot_ofs; +} + +int shuffle_seq_time(ListBase * seqbasep) +{ + /* note: seq->tmp is used to tag strips to move */ + + Sequence *seq; + + int offset_l = shuffle_seq_time_offset(seqbasep, 'L'); + int offset_r = shuffle_seq_time_offset(seqbasep, 'R'); + int offset = (-offset_l < offset_r) ? offset_l:offset_r; + + if(offset) { + for(seq= seqbasep->first; seq; seq= seq->next) { + if(seq->tmp) { + seq_translate(seq, offset); + seq->flag &= ~SEQ_OVERLAP; + } + } + } + + return offset? 0:1; +} + +void seq_update_sound(Sequence *seq) +{ + if(seq->type == SEQ_SOUND && seq->sound_handle) + { + seq->sound_handle->startframe = seq->startdisp; + seq->sound_handle->endframe = seq->enddisp; + seq->sound_handle->frameskip = seq->startofs + seq->anim_startofs; + seq->sound_handle->changed = -1; + /* mute is set in seq_update_muting_recursive */ + } +} + +static void seq_update_muting_recursive(ListBase *seqbasep, Sequence *metaseq, int mute) +{ + Sequence *seq; + int seqmute; + + /* for sound we go over full meta tree to update muted state, + since sound is played outside of evaluating the imbufs, */ + for(seq=seqbasep->first; seq; seq=seq->next) { + seqmute= (mute || (seq->flag & SEQ_MUTE)); + + if(seq->type == SEQ_META) { + /* if this is the current meta sequence, unmute because + all sequences above this were set to mute */ + if(seq == metaseq) + seqmute= 0; + + seq_update_muting_recursive(&seq->seqbase, metaseq, seqmute); + } + else if(seq->type == SEQ_SOUND) { + if(seq->sound_handle && seqmute != seq->sound_handle->mute) { + seq->sound_handle->mute = seqmute; + seq->sound_handle->changed = -1; + } + } + } +} + +void seq_update_muting(Editing *ed) +{ + if(ed) { + /* mute all sounds up to current metastack list */ + MetaStack *ms= ed->metastack.last; + + if(ms) + seq_update_muting_recursive(&ed->seqbase, ms->parseq, 1); + else + seq_update_muting_recursive(&ed->seqbase, NULL, 0); + } +} + + +/* XXX - hackish function needed for transforming strips! TODO - have some better solution */ +void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs) +{ + char str[32]; + FCurve *fcu; + + if(scene->adt==NULL || ofs==0) + return; + + sprintf(str, "[\"%s\"]", seq->name+2); + + for (fcu= scene->adt->action->curves.first; fcu; fcu= fcu->next) { + if(strstr(fcu->rna_path, "sequence_editor.sequences_all[") && strstr(fcu->rna_path, str)) { + int i; + for (i = 0; i < fcu->totvert; i++) { + BezTriple *bezt= &fcu->bezt[i]; + bezt->vec[0][0] += ofs; + bezt->vec[1][0] += ofs; + bezt->vec[2][0] += ofs; + } + } + } +} + + +Sequence *active_seq_get(Scene *scene) +{ + Editing *ed= seq_give_editing(scene, FALSE); + if(ed==NULL) return NULL; + return ed->act_seq; +} + +void active_seq_set(Scene *scene, Sequence *seq) +{ + Editing *ed= seq_give_editing(scene, FALSE); + if(ed==NULL) return; + + ed->act_seq= seq; +} + +/* api like funcs for adding */ + +void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load) +{ + if(seq) { + strcpy(seq->name, seq_load->name); + seqUniqueName(scene->ed->seqbasep, seq); + + if(seq_load->flag & SEQ_LOAD_FRAME_ADVANCE) { + seq_load->start_frame += (seq->enddisp - seq->startdisp); + } + + if(seq_load->flag & SEQ_LOAD_REPLACE_SEL) { + seq_load->flag |= 1; /* SELECT */ + active_seq_set(scene, seq); + } + + if(seq_load->flag & SEQ_LOAD_SOUND_CACHE) { + if(seq->sound) + sound_cache(seq->sound, 0); + } + + seq_load->tot_success++; + } + else { + seq_load->tot_error++; + } +} + +Sequence *alloc_sequence(ListBase *lb, int cfra, int machine) +{ + Sequence *seq; + + seq= MEM_callocN( sizeof(Sequence), "addseq"); + BLI_addtail(lb, seq); + + *( (short *)seq->name )= ID_SEQ; + seq->name[2]= 0; + + seq->flag= 1; /* SELECT */ + seq->start= cfra; + seq->machine= machine; + seq->mul= 1.0; + seq->blend_opacity = 100.0; + + return seq; +} + +void seqUniqueName(ListBase *seqbasep, Sequence *seq) +{ + BLI_uniquename(seqbasep, seq, "Sequence", '.', offsetof(Sequence, name), SEQ_NAME_MAXSTR); +} + +/* NOTE: this function doesn't fill in iamge names */ +Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) +{ + Scene *scene= CTX_data_scene(C); /* only for active seq */ + Sequence *seq; + Strip *strip; + StripElem *se; + + seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel); + seq->type= SEQ_IMAGE; + BLI_strncpy(seq->name+2, "Image", SEQ_NAME_MAXSTR-2); + seqUniqueName(seqbasep, seq); + + /* basic defaults */ + seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); + + strip->len = seq->len = seq_load->len ? seq_load->len : 1; + strip->us= 1; + strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); + BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name); + + seq_load_apply(scene, seq, seq_load); + + return seq; +} + +Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) +{ + Scene *scene= CTX_data_scene(C); /* only for sound */ + Editing *ed= seq_give_editing(scene, TRUE); + bSound *sound; + + Sequence *seq; /* generic strip vars */ + Strip *strip; + StripElem *se; + + AUD_SoundInfo info; + + sound = sound_new_file(CTX_data_main(C), seq_load->path); + + if (sound==NULL || sound->handle == NULL) { + //if(op) + // BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); + return NULL; + } + + info = AUD_getInfo(sound->handle); + + if (info.specs.format == AUD_FORMAT_INVALID) { + sound_delete(C, sound); + //if(op) + // BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); + return NULL; + } + + seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel); + + seq->type= SEQ_SOUND; + seq->sound= sound; + BLI_strncpy(seq->name+2, "Sound", SEQ_NAME_MAXSTR-2); + seqUniqueName(seqbasep, seq); + + /* basic defaults */ + seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); + strip->len = seq->len = (int) (info.length * FPS); + strip->us= 1; + + strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); + + BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name); + + seq->sound_handle = sound_new_handle(scene, sound, seq_load->start_frame, seq_load->start_frame + strip->len, 0); + + calc_sequence_disp(seq); + + /* last active name */ + strncpy(ed->act_sounddir, strip->dir, FILE_MAXDIR-1); + + seq_load_apply(scene, seq, seq_load); + + return seq; +} + +Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) +{ + Scene *scene= CTX_data_scene(C); /* only for sound */ + + Sequence *seq, *soundseq; /* generic strip vars */ + Strip *strip; + StripElem *se; + + struct anim *an; + + an = openanim(seq_load->path, IB_rect); + + if(an==NULL) + return NULL; + + seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel); + + seq->type= SEQ_MOVIE; + seq->anim= an; + seq->anim_preseek = IMB_anim_get_preseek(an); + BLI_strncpy(seq->name+2, "Movie", SEQ_NAME_MAXSTR-2); + seqUniqueName(seqbasep, seq); + + /* basic defaults */ + seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); + strip->len = seq->len = IMB_anim_get_duration( an ); + strip->us= 1; + + strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); + + BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name); + + calc_sequence_disp(seq); + + + if(seq_load->flag & SEQ_LOAD_MOVIE_SOUND) { + int start_frame_back= seq_load->start_frame; + seq_load->channel++; + + soundseq = sequencer_add_sound_strip(C, seqbasep, seq_load); + + seq_load->start_frame= start_frame_back; + seq_load->channel--; + } + + /* can be NULL */ + seq_load_apply(scene, seq, seq_load); + + return seq; +} diff --git a/source/blender/blenlib/intern/bpath.c b/source/blender/blenlib/intern/bpath.c index cadf8d2bdd1..0df9d9b8db3 100644 --- a/source/blender/blenlib/intern/bpath.c +++ b/source/blender/blenlib/intern/bpath.c @@ -60,7 +60,7 @@ #include "BKE_global.h" #include "BKE_image.h" /* so we can check the image's type */ #include "BKE_main.h" /* so we can access G.main->*.first */ -#include "BKE_sequence.h" +#include "BKE_sequencer.h" #include "BKE_text.h" /* for writing to a textblock */ #include "BKE_utildefines.h" diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c new file mode 100644 index 00000000000..5ff4dfe4e96 --- /dev/null +++ b/source/blender/blenlib/intern/path_util.c @@ -0,0 +1,1586 @@ +/* util.c + * + * various string, file, list operations. + * + * + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + * + */ + +#include +#include +#include +#include +#include +#include +#include /* for log10 */ + +#include "MEM_guardedalloc.h" + +#include "DNA_listBase.h" +#include "DNA_userdef_types.h" + +#include "BLI_blenlib.h" +#include "BLI_storage.h" +#include "BLI_storage_types.h" +#include "BLI_dynamiclist.h" + +#include "BLI_util.h" +#include "BKE_utildefines.h" + + + + +#ifdef HAVE_CONFIG_H +#include +#endif + +#ifndef WIN32 +#include +#else +#include +#endif + +#ifdef WIN32 + +#ifdef _WIN32_IE +#undef _WIN32_IE +#endif +#define _WIN32_IE 0x0501 +#include +#include + +#include "BLI_winstuff.h" + +#endif + + +#ifndef WIN32 +#include +#endif + +#ifdef __APPLE__ +#include +#include +#endif + +#ifdef __linux__ +#include "binreloc.h" +#endif + +/* local */ + +static int add_win32_extension(char *name); + +/* implementation */ + +int BLI_stringdec(char *string, char *kop, char *start, unsigned short *numlen) +{ + unsigned short len, len2, nums = 0, nume = 0; + short i, found = 0; + + len2 = len = strlen(string); + + if (len > 6) { + if (BLI_strncasecmp(string + len - 6, ".blend", 6) == 0) len -= 6; + else if (BLI_strncasecmp(string + len - 6, ".trace", 6) == 0) len -= 6; + } + + if (len > 9) { + if (BLI_strncasecmp(string + len - 9, ".blend.gz", 9) == 0) len -= 9; + } + + if (len == len2) { + if (len > 4) { + /* handle .jf0 en .jf1 for jstreams */ + if (BLI_strncasecmp(string + len - 4, ".jf", 3) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".tga", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".jpg", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".png", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".txt", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".cyc", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".enh", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".rgb", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".psx", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".ble", 4) == 0) len -= 4; + else if (BLI_strncasecmp(string + len - 4, ".exr", 4) == 0) len -= 4; + } + } + + for (i = len - 1; i >= 0; i--) { + if (string[i] == '/') break; + if (isdigit(string[i])) { + if (found){ + nums = i; + } + else{ + nume = i; + nums = i; + found = 1; + } + } + else { + if (found) break; + } + } + if (found){ + if (start) strcpy(start,&string[nume+1]); + if (kop) { + strcpy(kop,string); + kop[nums]=0; + } + if (numlen) *numlen = nume-nums+1; + return ((int)atoi(&(string[nums]))); + } + if (start) strcpy(start, string + len); + if (kop) { + strncpy(kop, string, len); + kop[len] = 0; + } + if (numlen) *numlen=0; + return 0; +} + + +void BLI_stringenc(char *string, char *kop, char *start, unsigned short numlen, int pic) +{ + char numstr[10]=""; + unsigned short len,i; + + strcpy(string,kop); + + if (pic>0 || numlen==4) { + len= sprintf(numstr,"%d",pic); + + for(i=len;i 99 or from 10 -> 9 */ + if (add < 0 && digits < 4 && digits > 0) { + int i, exp; + exp = 1; + for (i = digits; i > 1; i--) exp *= 10; + if (pic >= exp && (pic + add) < exp) digits--; + } + + pic += add; + + if (digits==4 && pic<0) pic= 0; + BLI_stringenc(name, head, tail, digits, pic); +} + +/* little helper macro for BLI_uniquename */ +#ifndef GIVE_STRADDR + #define GIVE_STRADDR(data, offset) ( ((char *)data) + offset ) +#endif + +/* Generic function to set a unique name. It is only designed to be used in situations + * where the name is part of the struct, and also that the name is at most 128 chars long. + * + * For places where this is used, see constraint.c for example... + * + * name_offs: should be calculated using offsetof(structname, membername) macro from stddef.h + * len: maximum length of string (to prevent overflows, etc.) + * defname: the name that should be used by default if none is specified already + * delim: the character which acts as a delimeter between parts of the name + */ +void BLI_uniquename(ListBase *list, void *vlink, const char defname[], char delim, short name_offs, short len) +{ + Link *link; + char tempname[128]; + int number = 1, exists = 0; + char *dot; + + /* Make sure length can be handled */ + if ((len < 0) || (len > 128)) + return; + + /* See if we are given an empty string */ + if (ELEM(NULL, vlink, defname)) + return; + + if (GIVE_STRADDR(vlink, name_offs) == '\0') { + /* give it default name first */ + BLI_strncpy(GIVE_STRADDR(vlink, name_offs), defname, len); + } + + /* See if we even need to do this */ + if (list == NULL) + return; + + for (link = list->first; link; link= link->next) { + if (link != vlink) { + if (!strcmp(GIVE_STRADDR(link, name_offs), GIVE_STRADDR(vlink, name_offs))) { + exists = 1; + break; + } + } + } + if (exists == 0) + return; + + /* Strip off the suffix */ + dot = strchr(GIVE_STRADDR(vlink, name_offs), delim); + if (dot) + *dot=0; + + for (number = 1; number <= 999; number++) { + BLI_snprintf(tempname, 128, "%s%c%03d", GIVE_STRADDR(vlink, name_offs), delim, number); + + exists = 0; + for (link= list->first; link; link= link->next) { + if (vlink != link) { + if (!strcmp(GIVE_STRADDR(link, name_offs), tempname)) { + exists = 1; + break; + } + } + } + if (exists == 0) { + BLI_strncpy(GIVE_STRADDR(vlink, name_offs), tempname, len); + return; + } + } +} + +/* ******************** string encoding ***************** */ + +/* This is quite an ugly function... its purpose is to + * take the dir name, make it absolute, and clean it up, replacing + * excess file entry stuff (like /tmp/../tmp/../) + * note that dir isn't protected for max string names... + * + * If relbase is NULL then its ignored + */ + +void BLI_cleanup_dir(const char *relabase, char *dir) +{ + BLI_cleanup_file(relabase, dir); + BLI_add_slash(dir); + +} + +void BLI_cleanup_file(const char *relabase, char *dir) +{ + short a; + char *start, *eind; + if (relabase) { + BLI_convertstringcode(dir, relabase); + } else { + if (dir[0]=='/' && dir[1]=='/') { + if (dir[2]== '\0') { + return; /* path is "//" - cant clean it */ + } + dir = dir+2; /* skip the first // */ + } + } + + /* Note + * memmove( start, eind, strlen(eind)+1 ); + * is the same as + * strcpy( start, eind ); + * except strcpy should not be used because there is overlap, + * so use memmove's slightly more obscure syntax - Campbell + */ + +#ifdef WIN32 + + /* Note, this should really be moved to the file selector, + * since this function is used in many areas */ + if(strcmp(dir, ".")==0) { /* happens for example in FILE_MAIN */ + get_default_root(dir); + return; + } + + while ( (start = strstr(dir, "\\..\\")) ) { + eind = start + strlen("\\..\\") - 1; + a = start-dir-1; + while (a>0) { + if (dir[a] == '\\') break; + a--; + } + if (a<0) { + break; + } else { + memmove( dir+a, eind, strlen(eind)+1 ); + } + } + + while ( (start = strstr(dir,"\\.\\")) ){ + eind = start + strlen("\\.\\") - 1; + memmove( start, eind, strlen(eind)+1 ); + } + + while ( (start = strstr(dir,"\\\\" )) ){ + eind = start + strlen("\\\\") - 1; + memmove( start, eind, strlen(eind)+1 ); + } + + if((a = strlen(dir))){ /* remove the '\\' at the end */ + while(a>0 && dir[a-1] == '\\'){ + a--; + dir[a] = 0; + } + } +#else + if(dir[0]=='.') { /* happens, for example in FILE_MAIN */ + dir[0]= '/'; + dir[1]= 0; + return; + } + + while ( (start = strstr(dir, "/../")) ) { + eind = start + strlen("/../") - 1; + a = start-dir-1; + while (a>0) { + if (dir[a] == '/') break; + a--; + } + if (a<0) { + break; + } else { + memmove( dir+a, eind, strlen(eind)+1 ); + } + } + + while ( (start = strstr(dir,"/./")) ){ + eind = start + strlen("/./") - 1; + memmove( start, eind, strlen(eind)+1 ); + } + + while ( (start = strstr(dir,"//" )) ){ + eind = start + strlen("//") - 1; + memmove( start, eind, strlen(eind)+1 ); + } + + if( (a = strlen(dir)) ){ /* remove all '/' at the end */ + while(dir[a-1] == '/'){ + a--; + dir[a] = 0; + if (a<=0) break; + } + } +#endif +} + + +void BLI_makestringcode(const char *relfile, char *file) +{ + char * p; + char * q; + char * lslash; + char temp[FILE_MAXDIR+FILE_MAXFILE]; + char res[FILE_MAXDIR+FILE_MAXFILE]; + + /* if file is already relative, bail out */ + if(file[0]=='/' && file[1]=='/') return; + + /* also bail out if relative path is not set */ + if (relfile[0] == 0) return; + +#ifdef WIN32 + if (strlen(relfile) > 2 && relfile[1] != ':') { + char* ptemp; + /* fix missing volume name in relative base, + can happen with old .Blog files */ + get_default_root(temp); + ptemp = &temp[2]; + if (relfile[0] != '\\' && relfile[0] != '/') { + ptemp++; + } + BLI_strncpy(ptemp, relfile, FILE_MAXDIR + FILE_MAXFILE-3); + } else { + BLI_strncpy(temp, relfile, FILE_MAXDIR + FILE_MAXFILE); + } + + if (strlen(file) > 2) { + if ( temp[1] == ':' && file[1] == ':' && temp[0] != file[0] ) + return; + } +#else + BLI_strncpy(temp, relfile, FILE_MAX); +#endif + + BLI_char_switch(temp, '\\', '/'); + BLI_char_switch(file, '\\', '/'); + + /* remove /./ which confuse the following slash counting... */ + BLI_cleanup_file(NULL, file); + BLI_cleanup_file(NULL, temp); + + /* the last slash in the file indicates where the path part ends */ + lslash = BLI_last_slash(temp); + + if (lslash) + { + /* find the prefix of the filename that is equal for both filenames. + This is replaced by the two slashes at the beginning */ + p = temp; + q = file; + while (*p == *q) { + ++p; ++q; + } + /* we might have passed the slash when the beginning of a dir matches + so we rewind. Only check on the actual filename + */ + if (*q != '/') { + while ( (q >= file) && (*q != '/') ) { --q; --p; } + } + else if (*p != '/') { + while ( (p >= temp) && (*p != '/') ) { --p; --q; } + } + + strcpy(res, "//"); + + /* p now points to the slash that is at the beginning of the part + where the path is different from the relative path. + We count the number of directories we need to go up in the + hierarchy to arrive at the common 'prefix' of the path + */ + while (p && p < lslash) { + if (*p == '/') + strcat(res, "../"); + ++p; + } + + strcat(res, q+1); /* don't copy the slash at the beginning */ + +#ifdef WIN32 + BLI_char_switch(res+2, '/', '\\'); +#endif + strcpy(file, res); + } +} + +int BLI_has_parent(char *path) +{ + int len; + int slashes = 0; + BLI_clean(path); + len = BLI_add_slash(path) - 1; + + while (len>=0) { + if ((path[len] == '\\') || (path[len] == '/')) + slashes++; + len--; + } + return slashes > 1; +} + +int BLI_parent_dir(char *path) +{ +#ifdef WIN32 + static char *parent_dir="..\\"; +#else + static char *parent_dir="../"; +#endif + char tmp[FILE_MAXDIR+FILE_MAXFILE+4]; + BLI_strncpy(tmp, path, sizeof(tmp)); + BLI_add_slash(tmp); + strcat(tmp, parent_dir); + BLI_cleanup_dir(NULL, tmp); + + if (!BLI_testextensie(tmp, parent_dir)) { + BLI_strncpy(path, tmp, sizeof(tmp)); + return 1; + } else { + return 0; + } +} + +int BLI_convertstringframe(char *path, int frame) +{ + int ch_sta, ch_end, i; + /* Insert current frame: file### -> file001 */ + ch_sta = ch_end = 0; + for (i = 0; path[i] != '\0'; i++) { + if (path[i] == '\\' || path[i] == '/') { + ch_end = 0; /* this is a directory name, dont use any hashes we found */ + } else if (path[i] == '#') { + ch_sta = i; + ch_end = ch_sta+1; + while (path[ch_end] == '#') { + ch_end++; + } + i = ch_end-1; /* keep searching */ + + /* dont break, there may be a slash after this that invalidates the previous #'s */ + } + } + if (ch_end) { /* warning, ch_end is the last # +1 */ + /* Add the frame number? */ + short numlen, hashlen; + char tmp[FILE_MAX]; + + char format[16]; /* 6 is realistically the maxframe (300000), so 8 should be enough, but 16 to be safe. */ + if (((ch_end-1)-ch_sta) >= 16) { + ch_end = ch_sta+15; /* disallow values longer then 'format' can hold */ + } + + strcpy(tmp, path); + + numlen = 1 + (int)log10((double)frame); /* this is the number of chars in the number */ + hashlen = ch_end - ch_sta; + + sprintf(format, "%d", frame); + + if (numlen==hashlen) { /* simple case */ + memcpy(tmp+ch_sta, format, numlen); + } else if (numlen < hashlen) { + memcpy(tmp+ch_sta + (hashlen-numlen), format, numlen); /*dont copy the string terminator */ + memset(tmp+ch_sta, '0', hashlen-numlen); + } else { + /* number is longer then number of #'s */ + if (tmp[ch_end] == '\0') { /* hashes are last, no need to move any string*/ + /* bad juju - not testing string length here :/ */ + memcpy(tmp+ch_sta, format, numlen+1); /* add 1 to get the string terminator \0 */ + } else { + /* we need to move the end characters, reuse i */ + int j; + + i = strlen(tmp); /* +1 to copy the string terminator */ + j = i + (numlen-hashlen); /* from/to */ + + while (i >= ch_end) { + tmp[j] = tmp[i]; + i--; + j--; + } + memcpy(tmp + ch_sta, format, numlen); + } + } + strcpy(path, tmp); + return 1; + } + return 0; +} + + +int BLI_convertstringcode(char *path, const char *basepath) +{ + int wasrelative = (strncmp(path, "//", 2)==0); + char tmp[FILE_MAX]; + char base[FILE_MAX]; +#ifdef WIN32 + char vol[3] = {'\0', '\0', '\0'}; + + BLI_strncpy(vol, path, 3); + /* we are checking here if we have an absolute path that is not in the current + blend file as a lib main - we are basically checking for the case that a + UNIX root '/' is passed. + */ + if (!wasrelative && (vol[1] != ':' && (vol[0] == '\0' || vol[0] == '/' || vol[0] == '\\'))) { + char *p = path; + get_default_root(tmp); + // get rid of the slashes at the beginning of the path + while (*p == '\\' || *p == '/') { + p++; + } + strcat(tmp, p); + } + else { + BLI_strncpy(tmp, path, FILE_MAX); + } +#else + BLI_strncpy(tmp, path, FILE_MAX); + + /* Check for loading a windows path on a posix system + * in this case, there is no use in trying C:/ since it + * will never exist on a unix os. + * + * Add a / prefix and lowercase the driveletter, remove the : + * C:\foo.JPG -> /c/foo.JPG */ + + if (isalpha(tmp[0]) && tmp[1] == ':' && (tmp[2]=='\\' || tmp[2]=='/') ) { + tmp[1] = tolower(tmp[0]); /* replace ':' with driveletter */ + tmp[0] = '/'; + /* '\' the slash will be converted later */ + } + +#endif + + BLI_strncpy(base, basepath, FILE_MAX); + + BLI_cleanup_file(NULL, base); + + /* push slashes into unix mode - strings entering this part are + potentially messed up: having both back- and forward slashes. + Here we push into one conform direction, and at the end we + push them into the system specific dir. This ensures uniformity + of paths and solving some problems (and prevent potential future + ones) -jesterKing. */ + BLI_char_switch(tmp, '\\', '/'); + BLI_char_switch(base, '\\', '/'); + + /* Paths starting with // will get the blend file as their base, + * this isnt standard in any os but is uesed in blender all over the place */ + if (wasrelative) { + char *lslash= BLI_last_slash(base); + if (lslash) { + int baselen= (int) (lslash-base) + 1; + /* use path for for temp storage here, we copy back over it right away */ + BLI_strncpy(path, tmp+2, FILE_MAX); + + memcpy(tmp, base, baselen); + strcpy(tmp+baselen, path); + strcpy(path, tmp); + } else { + strcpy(path, tmp+2); + } + } else { + strcpy(path, tmp); + } + + if (path[0]!='\0') { + if ( path[strlen(path)-1]=='/') { + BLI_cleanup_dir(NULL, path); + } else { + BLI_cleanup_file(NULL, path); + } + } + +#ifdef WIN32 + /* skip first two chars, which in case of + absolute path will be drive:/blabla and + in case of relpath //blabla/. So relpath + // will be retained, rest will be nice and + shiny win32 backward slashes :) -jesterKing + */ + BLI_char_switch(path+2, '/', '\\'); +#endif + + return wasrelative; +} + + +/* + * Should only be done with command line paths. + * this is NOT somthing blenders internal paths support like the // prefix + */ +int BLI_convertstringcwd(char *path) +{ + int wasrelative = 1; + int filelen = strlen(path); + +#ifdef WIN32 + if (filelen >= 3 && path[1] == ':' && (path[2] == '\\' || path[2] == '/')) + wasrelative = 0; +#else + if (filelen >= 2 && path[0] == '/') + wasrelative = 0; +#endif + + if (wasrelative==1) { + char cwd[FILE_MAXDIR + FILE_MAXFILE]; + BLI_getwdN(cwd); /* incase the full path to the blend isnt used */ + + if (cwd[0] == '\0') { + printf( "Could not get the current working directory - $PWD for an unknown reason."); + } else { + /* uses the blend path relative to cwd important for loading relative linked files. + * + * cwd should contain c:\ etc on win32 so the relbase can be NULL + * relbase being NULL also prevents // being misunderstood as relative to the current + * blend file which isnt a feature we want to use in this case since were dealing + * with a path from the command line, rather then from inside Blender */ + + char origpath[FILE_MAXDIR + FILE_MAXFILE]; + BLI_strncpy(origpath, path, FILE_MAXDIR + FILE_MAXFILE); + + BLI_make_file_string(NULL, path, cwd, origpath); + } + } + + return wasrelative; +} + + +/* copy di to fi, filename only */ +void BLI_splitdirstring(char *di, char *fi) +{ + char *lslash= BLI_last_slash(di); + + if (lslash) { + BLI_strncpy(fi, lslash+1, FILE_MAXFILE); + *(lslash+1)=0; + } else { + BLI_strncpy(fi, di, FILE_MAXFILE); + di[0]= 0; + } +} + +void BLI_getlastdir(const char* dir, char *last, int maxlen) +{ + const char *s = dir; + const char *lslash = NULL; + const char *prevslash = NULL; + while (*s) { + if ((*s == '\\') || (*s == '/')) { + prevslash = lslash; + lslash = s; + } + s++; + } + if (prevslash) { + BLI_strncpy(last, prevslash+1, maxlen); + } else { + BLI_strncpy(last, dir, maxlen); + } +} + +char *BLI_gethome(void) { + #if !defined(WIN32) + return getenv("HOME"); + + #else /* Windows */ + char * ret; + static char dir[512]; + static char appdatapath[MAXPATHLEN]; + HRESULT hResult; + + /* Check for %HOME% env var */ + + ret = getenv("HOME"); + if(ret) { + sprintf(dir, "%s\\.blender", ret); + if (BLI_exists(dir)) return dir; + } + + /* else, check install dir (path containing blender.exe) */ + + BLI_getInstallationDir(dir); + + if (BLI_exists(dir)) + { + strcat(dir,"\\.blender"); + if (BLI_exists(dir)) return(dir); + } + + + /* add user profile support for WIN 2K / NT */ + hResult = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, appdatapath); + + if (hResult == S_OK) + { + if (BLI_exists(appdatapath)) { /* from fop, also below... */ + sprintf(dir, "%s\\Blender Foundation\\Blender", appdatapath); + BLI_recurdir_fileops(dir); + if (BLI_exists(dir)) { + strcat(dir,"\\.blender"); + if(BLI_exists(dir)) return(dir); + } + } + hResult = SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, appdatapath); + if (hResult == S_OK) + { + if (BLI_exists(appdatapath)) + { /* from fop, also below... */ + sprintf(dir, "%s\\Blender Foundation\\Blender", appdatapath); + BLI_recurdir_fileops(dir); + if (BLI_exists(dir)) { + strcat(dir,"\\.blender"); + if(BLI_exists(dir)) return(dir); + } + } + } + } +#if 0 + ret = getenv("USERPROFILE"); + if (ret) { + if (BLI_exists(ret)) { /* from fop, also below... */ + sprintf(dir, "%s\\Application Data\\Blender Foundation\\Blender", ret); + BLI_recurdir_fileops(dir); + if (BLI_exists(dir)) { + strcat(dir,"\\.blender"); + if(BLI_exists(dir)) return(dir); + } + } + } +#endif + + /* + Saving in the Windows dir is less than desirable. + Use as a last resort ONLY! (aphex) + */ + + ret = getenv("WINDOWS"); + if (ret) { + if(BLI_exists(ret)) return ret; + } + + ret = getenv("WINDIR"); + if (ret) { + if(BLI_exists(ret)) return ret; + } + + return "C:\\Temp"; /* sheesh! bad, bad, bad! (aphex) */ + #endif +} + +/* this function returns the path to a blender folder, if it exists + * utility functions for BLI_gethome_folder */ + +/* #define PATH_DEBUG */ /* for testing paths that are checked */ + +static int test_data_path(char *targetpath, char *path_base, char *path_sep, char *folder_name) +{ + char tmppath[FILE_MAXDIR]; + + if(path_sep) BLI_join_dirfile(tmppath, path_base, path_sep); + else BLI_strncpy(tmppath, path_base, sizeof(tmppath)); + + BLI_make_file_string("/", targetpath, tmppath, folder_name); + + if (BLI_exists(targetpath)) { +#ifdef PATH_DEBUG + printf("\tpath found: %s\n", targetpath); +#endif + return 1; + } + else { +#ifdef PATH_DEBUG + printf("\tpath missing: %s\n", targetpath); +#endif + targetpath[0] = '\0'; + return 0; + } +} + +static int gethome_path_local(char *targetpath, char *folder_name) +{ + extern char bprogname[]; /* argv[0] from creator.c */ + char bprogdir[FILE_MAXDIR]; + char cwd[FILE_MAXDIR]; + char *s; + int i; + +#ifdef PATH_DEBUG + printf("gethome_path_local...\n"); +#endif + + /* try release/folder_name (binary relative) */ + /* use argv[0] (bprogname) to get the path to the executable */ + s = BLI_last_slash(bprogname); + i = s - bprogname + 1; + BLI_strncpy(bprogdir, bprogname, i); + + /* try release/folder_name (CWD relative) */ + if(test_data_path(targetpath, BLI_getwdN(cwd), "release", folder_name)) + return 1; + + if(test_data_path(targetpath, bprogdir, "release", folder_name)) + return 1; + + /* try ./.blender/folder_name */ + if(test_data_path(targetpath, bprogdir, ".blender", folder_name)) + return 1; + + return 0; +} + +static int gethome_path_user(char *targetpath, char *folder_name) +{ + char *home_path= BLI_gethome(); + +#ifdef PATH_DEBUG + printf("gethome_path_user...\n"); +#endif + + /* try $HOME/folder_name */ + return test_data_path(targetpath, home_path, ".blender", folder_name); +} + +static int gethome_path_system(char *targetpath, char *folder_name) +{ + extern char blender_path[]; /* unix prefix eg. /usr/share/blender/2.5 creator.c */ + + if(!blender_path[0]) + return 0; + +#ifdef PATH_DEBUG + printf("gethome_path_system...\n"); +#endif + + /* try $BLENDERPATH/folder_name */ + return test_data_path(targetpath, blender_path, NULL, folder_name); +} + +char *BLI_gethome_folder(char *folder_name, int flag) +{ + static char fulldir[FILE_MAXDIR] = ""; + + /* first check if this is a redistributable bundle */ + if(flag & BLI_GETHOME_LOCAL) { + if (gethome_path_local(fulldir, folder_name)) + return fulldir; + } + + /* then check if the OS has blender data files installed in a global location */ + if(flag & BLI_GETHOME_SYSTEM) { + if (gethome_path_system(fulldir, folder_name)) + return fulldir; + } + + /* now check the users home dir for data files */ + if(flag & BLI_GETHOME_USER) { + if (gethome_path_user(fulldir, folder_name)) + return fulldir; + } + + return NULL; +} + +#ifdef PATH_DEBUG +#undef PATH_DEBUG +#endif + +void BLI_setenv(const char *env, const char*val) +{ + /* SGI or free windows */ +#if (defined(__sgi) || ((defined(WIN32) || defined(WIN64)) && defined(FREE_WINDOWS))) + char *envstr= malloc(sizeof(char) * (strlen(env) + strlen(val) + 2)); /* one for = another for \0 */ + + sprintf(envstr, "%s=%s", env, val); + putenv(envstr); + free(envstr); + + /* non-free windows */ +#elif (defined(WIN32) || defined(WIN64)) /* not free windows */ + _putenv_s(env, val); +#else + /* linux/osx/bsd */ + setenv(env, val, 1); +#endif +} + + +/** + Only set an env var if already not there. + Like Unix setenv(env, val, 0); + */ +void BLI_setenv_if_new(const char *env, const char* val) +{ + if(getenv(env) == NULL) + BLI_setenv(env, val); +} + + +void BLI_clean(char *path) +{ + if(path==0) return; +#ifdef WIN32 + if(path && strlen(path)>2) { + BLI_char_switch(path+2, '/', '\\'); + } +#else + BLI_char_switch(path, '\\', '/'); +#endif +} + +void BLI_char_switch(char *string, char from, char to) +{ + if(string==0) return; + while (*string != 0) { + if (*string == from) *string = to; + string++; + } +} + +void BLI_make_exist(char *dir) { + int a; + + #ifdef WIN32 + BLI_char_switch(dir, '/', '\\'); + #else + BLI_char_switch(dir, '\\', '/'); + #endif + + a = strlen(dir); + +#ifdef WIN32 + while(BLI_exists(dir) == 0){ + a --; + while(dir[a] != '\\'){ + a--; + if (a <= 0) break; + } + if (a >= 0) dir[a+1] = 0; + else { + /* defaulting to drive (usually 'C:') of Windows installation */ + get_default_root(dir); + break; + } + } +#else + while(BLI_exist(dir) == 0){ + a --; + while(dir[a] != '/'){ + a--; + if (a <= 0) break; + } + if (a >= 0) dir[a+1] = 0; + else { + strcpy(dir,"/"); + break; + } + } +#endif +} + +void BLI_make_existing_file(char *name) +{ + char di[FILE_MAXDIR], fi[FILE_MAXFILE]; + + strcpy(di, name); + BLI_splitdirstring(di, fi); + + /* test exist */ + if (BLI_exists(di) == 0) { + BLI_recurdir_fileops(di); + } +} + + +void BLI_make_file_string(const char *relabase, char *string, const char *dir, const char *file) +{ + int sl; + + if (!string || !dir || !file) return; /* We don't want any NULLs */ + + string[0]= 0; /* ton */ + + /* we first push all slashes into unix mode, just to make sure we don't get + any mess with slashes later on. -jesterKing */ + /* constant strings can be passed for those parameters - don't change them - elubie */ + /* + BLI_char_switch(relabase, '\\', '/'); + BLI_char_switch(dir, '\\', '/'); + BLI_char_switch(file, '\\', '/'); + */ + + /* Resolve relative references */ + if (relabase && dir[0] == '/' && dir[1] == '/') { + char *lslash; + + /* Get the file name, chop everything past the last slash (ie. the filename) */ + strcpy(string, relabase); + + lslash= (strrchr(string, '/')>strrchr(string, '\\'))?strrchr(string, '/'):strrchr(string, '\\'); + + if(lslash) *(lslash+1)= 0; + + dir+=2; /* Skip over the relative reference */ + } +#ifdef WIN32 + else { + if (strlen(dir) >= 2 && dir[1] == ':' ) { + BLI_strncpy(string, dir, 3); + dir += 2; + } + else { /* no drive specified */ + /* first option: get the drive from the relabase if it has one */ + if (relabase && strlen(relabase) >= 2 && relabase[1] == ':' ) { + BLI_strncpy(string, relabase, 3); + string[2] = '\\'; + string[3] = '\0'; + } + else { /* we're out of luck here, guessing the first valid drive, usually c:\ */ + get_default_root(string); + } + + /* ignore leading slashes */ + while (*dir == '/' || *dir == '\\') dir++; + } + } +#endif + + strcat(string, dir); + + /* Make sure string ends in one (and only one) slash */ + /* first trim all slashes from the end of the string */ + sl = strlen(string); + while (sl>0 && ( string[sl-1] == '/' || string[sl-1] == '\\') ) { + string[sl-1] = '\0'; + sl--; + } + /* since we've now removed all slashes, put back one slash at the end. */ + strcat(string, "/"); + + while (*file && (*file == '/' || *file == '\\')) /* Trim slashes from the front of file */ + file++; + + strcat (string, file); + + /* Push all slashes to the system preferred direction */ + BLI_clean(string); +} + +int BLI_testextensie(const char *str, const char *ext) +{ + short a, b; + int retval; + + a= strlen(str); + b= strlen(ext); + + if(a==0 || b==0 || b>=a) { + retval = 0; + } else if (BLI_strcasecmp(ext, str + a - b)) { + retval = 0; + } else { + retval = 1; + } + + return (retval); +} + +/* + * This is a simple version of BLI_split_dirfile that has the following advantages... + * + * Converts "/foo/bar.txt" to "/foo/" and "bar.txt" + * - wont change 'string' + * - wont create any directories + * - dosnt use CWD, or deal with relative paths. + * - Only fill's in *dir and *file when they are non NULL + * */ +void BLI_split_dirfile_basic(const char *string, char *dir, char *file) +{ + int lslash=0, i = 0; + for (i=0; string[i]!='\0'; i++) { + if (string[i]=='\\' || string[i]=='/') + lslash = i+1; + } + if (dir) { + if (lslash) { + BLI_strncpy( dir, string, lslash+1); /* +1 to include the slash and the last char */ + } else { + dir[0] = '\0'; + } + } + + if (file) { + strcpy( file, string+lslash); + } +} + + +/* Warning, + * - May modify 'string' variable + * - May create the directory if it dosnt exist + * if this is not needed use BLI_split_dirfile_basic(...) + */ +void BLI_split_dirfile(char *string, char *dir, char *file) +{ + int a; +#ifdef WIN32 + int sl; + short is_relative = 0; + char path[FILE_MAX]; +#endif + + dir[0]= 0; + file[0]= 0; + +#ifdef WIN32 + BLI_strncpy(path, string, FILE_MAX); + BLI_char_switch(path, '/', '\\'); /* make sure we have a valid path format */ + sl = strlen(path); + if (sl) { + int len; + if (path[0] == '/' || path[0] == '\\') { + BLI_strncpy(dir, path, FILE_MAXDIR); + if (sl > 1 && path[0] == '\\' && path[1] == '\\') is_relative = 1; + } else if (sl > 2 && path[1] == ':' && path[2] == '\\') { + BLI_strncpy(dir, path, FILE_MAXDIR); + } else { + BLI_getwdN(dir); + strcat(dir,"\\"); + strcat(dir,path); + BLI_strncpy(path,dir,FILE_MAXDIR+FILE_MAXFILE); + } + + // BLI_exist doesn't recognize a slashed dirname as a dir + // check if a trailing slash exists, and remove it. Do not do this + // when we are already at root. -jesterKing + a = strlen(dir); + if(a>=4 && dir[a-1]=='\\') dir[a-1] = 0; + + if (is_relative) { + printf("WARNING: BLI_split_dirfile needs absolute dir\n"); + } + else { + BLI_make_exist(dir); + } + + if (S_ISDIR(BLI_exist(dir))) { + + /* copy from end of string into file, to ensure filename itself isn't truncated + if string is too long. (aphex) */ + + len = FILE_MAXFILE - strlen(path); + + if (len < 0) + BLI_strncpy(file,path + abs(len),FILE_MAXFILE); + else + BLI_strncpy(file,path,FILE_MAXFILE); + + if (strrchr(path,'\\')) { + BLI_strncpy(file,strrchr(path,'\\')+1,FILE_MAXFILE); + } + + if ( (a = strlen(dir)) ) { + if (dir[a-1] != '\\') strcat(dir,"\\"); + } + } + else { + a = strlen(dir) - 1; + while(a>0 && dir[a] != '\\') a--; + dir[a + 1] = 0; + BLI_strncpy(file, path + strlen(dir),FILE_MAXFILE); + } + + } + else { + /* defaulting to first valid drive hoping it's not empty CD and DVD drives */ + get_default_root(dir); + file[0]=0; + } +#else + if (strlen(string)) { + if (string[0] == '/') { + strcpy(dir, string); + } else if (string[1] == ':' && string[2] == '\\') { + string+=2; + strcpy(dir, string); + } else { + BLI_getwdN(dir); + strcat(dir,"/"); + strcat(dir,string); + strcpy((char *)string,dir); + } + + BLI_make_exist(dir); + + if (S_ISDIR(BLI_exist(dir))) { + strcpy(file,string + strlen(dir)); + + if (strrchr(file,'/')) strcpy(file,strrchr(file,'/')+1); + + if ( (a = strlen(dir)) ) { + if (dir[a-1] != '/') strcat(dir,"/"); + } + } + else { + a = strlen(dir) - 1; + while(dir[a] != '/') a--; + dir[a + 1] = 0; + strcpy(file, string + strlen(dir)); + } + } + else { + BLI_getwdN(dir); + strcat(dir, "/"); + file[0] = 0; + } +#endif +} + +/* simple appending of filename to dir, does not check for valid path! */ +void BLI_join_dirfile(char *string, const char *dir, const char *file) +{ + int sl_dir; + + if(string != dir) /* compare pointers */ + BLI_strncpy(string, dir, FILE_MAX); + + sl_dir= BLI_add_slash(string); + + if (sl_dir -#include -#include -#include -#include -#include -#include /* for log10 */ - -#include "MEM_guardedalloc.h" - -#include "DNA_listBase.h" -#include "DNA_userdef_types.h" - -#include "BLI_blenlib.h" -#include "BLI_storage.h" -#include "BLI_storage_types.h" -#include "BLI_dynamiclist.h" - -#include "BLI_util.h" -#include "BKE_utildefines.h" - - - - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifndef WIN32 -#include -#else -#include -#endif - -#ifdef WIN32 - -#ifdef _WIN32_IE -#undef _WIN32_IE -#endif -#define _WIN32_IE 0x0501 -#include -#include - -#include "BLI_winstuff.h" - -#endif - - -#ifndef WIN32 -#include -#endif - -#ifdef __APPLE__ -#include -#include -#endif - -#ifdef __linux__ -#include "binreloc.h" -#endif - -/* local */ - -static int add_win32_extension(char *name); - -/* implementation */ - -int BLI_stringdec(char *string, char *kop, char *start, unsigned short *numlen) -{ - unsigned short len, len2, nums = 0, nume = 0; - short i, found = 0; - - len2 = len = strlen(string); - - if (len > 6) { - if (BLI_strncasecmp(string + len - 6, ".blend", 6) == 0) len -= 6; - else if (BLI_strncasecmp(string + len - 6, ".trace", 6) == 0) len -= 6; - } - - if (len > 9) { - if (BLI_strncasecmp(string + len - 9, ".blend.gz", 9) == 0) len -= 9; - } - - if (len == len2) { - if (len > 4) { - /* handle .jf0 en .jf1 for jstreams */ - if (BLI_strncasecmp(string + len - 4, ".jf", 3) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".tga", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".jpg", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".png", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".txt", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".cyc", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".enh", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".rgb", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".psx", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".ble", 4) == 0) len -= 4; - else if (BLI_strncasecmp(string + len - 4, ".exr", 4) == 0) len -= 4; - } - } - - for (i = len - 1; i >= 0; i--) { - if (string[i] == '/') break; - if (isdigit(string[i])) { - if (found){ - nums = i; - } - else{ - nume = i; - nums = i; - found = 1; - } - } - else { - if (found) break; - } - } - if (found){ - if (start) strcpy(start,&string[nume+1]); - if (kop) { - strcpy(kop,string); - kop[nums]=0; - } - if (numlen) *numlen = nume-nums+1; - return ((int)atoi(&(string[nums]))); - } - if (start) strcpy(start, string + len); - if (kop) { - strncpy(kop, string, len); - kop[len] = 0; - } - if (numlen) *numlen=0; - return 0; -} - - -void BLI_stringenc(char *string, char *kop, char *start, unsigned short numlen, int pic) -{ - char numstr[10]=""; - unsigned short len,i; - - strcpy(string,kop); - - if (pic>0 || numlen==4) { - len= sprintf(numstr,"%d",pic); - - for(i=len;i 99 or from 10 -> 9 */ - if (add < 0 && digits < 4 && digits > 0) { - int i, exp; - exp = 1; - for (i = digits; i > 1; i--) exp *= 10; - if (pic >= exp && (pic + add) < exp) digits--; - } - - pic += add; - - if (digits==4 && pic<0) pic= 0; - BLI_stringenc(name, head, tail, digits, pic); -} - -/* little helper macro for BLI_uniquename */ -#ifndef GIVE_STRADDR - #define GIVE_STRADDR(data, offset) ( ((char *)data) + offset ) -#endif - -/* Generic function to set a unique name. It is only designed to be used in situations - * where the name is part of the struct, and also that the name is at most 128 chars long. - * - * For places where this is used, see constraint.c for example... - * - * name_offs: should be calculated using offsetof(structname, membername) macro from stddef.h - * len: maximum length of string (to prevent overflows, etc.) - * defname: the name that should be used by default if none is specified already - * delim: the character which acts as a delimeter between parts of the name - */ -void BLI_uniquename(ListBase *list, void *vlink, const char defname[], char delim, short name_offs, short len) -{ - Link *link; - char tempname[128]; - int number = 1, exists = 0; - char *dot; - - /* Make sure length can be handled */ - if ((len < 0) || (len > 128)) - return; - - /* See if we are given an empty string */ - if (ELEM(NULL, vlink, defname)) - return; - - if (GIVE_STRADDR(vlink, name_offs) == '\0') { - /* give it default name first */ - BLI_strncpy(GIVE_STRADDR(vlink, name_offs), defname, len); - } - - /* See if we even need to do this */ - if (list == NULL) - return; - - for (link = list->first; link; link= link->next) { - if (link != vlink) { - if (!strcmp(GIVE_STRADDR(link, name_offs), GIVE_STRADDR(vlink, name_offs))) { - exists = 1; - break; - } - } - } - if (exists == 0) - return; - - /* Strip off the suffix */ - dot = strchr(GIVE_STRADDR(vlink, name_offs), delim); - if (dot) - *dot=0; - - for (number = 1; number <= 999; number++) { - BLI_snprintf(tempname, 128, "%s%c%03d", GIVE_STRADDR(vlink, name_offs), delim, number); - - exists = 0; - for (link= list->first; link; link= link->next) { - if (vlink != link) { - if (!strcmp(GIVE_STRADDR(link, name_offs), tempname)) { - exists = 1; - break; - } - } - } - if (exists == 0) { - BLI_strncpy(GIVE_STRADDR(vlink, name_offs), tempname, len); - return; - } - } -} - -/* ******************** string encoding ***************** */ - -/* This is quite an ugly function... its purpose is to - * take the dir name, make it absolute, and clean it up, replacing - * excess file entry stuff (like /tmp/../tmp/../) - * note that dir isn't protected for max string names... - * - * If relbase is NULL then its ignored - */ - -void BLI_cleanup_dir(const char *relabase, char *dir) -{ - BLI_cleanup_file(relabase, dir); - BLI_add_slash(dir); - -} - -void BLI_cleanup_file(const char *relabase, char *dir) -{ - short a; - char *start, *eind; - if (relabase) { - BLI_convertstringcode(dir, relabase); - } else { - if (dir[0]=='/' && dir[1]=='/') { - if (dir[2]== '\0') { - return; /* path is "//" - cant clean it */ - } - dir = dir+2; /* skip the first // */ - } - } - - /* Note - * memmove( start, eind, strlen(eind)+1 ); - * is the same as - * strcpy( start, eind ); - * except strcpy should not be used because there is overlap, - * so use memmove's slightly more obscure syntax - Campbell - */ - -#ifdef WIN32 - - /* Note, this should really be moved to the file selector, - * since this function is used in many areas */ - if(strcmp(dir, ".")==0) { /* happens for example in FILE_MAIN */ - get_default_root(dir); - return; - } - - while ( (start = strstr(dir, "\\..\\")) ) { - eind = start + strlen("\\..\\") - 1; - a = start-dir-1; - while (a>0) { - if (dir[a] == '\\') break; - a--; - } - if (a<0) { - break; - } else { - memmove( dir+a, eind, strlen(eind)+1 ); - } - } - - while ( (start = strstr(dir,"\\.\\")) ){ - eind = start + strlen("\\.\\") - 1; - memmove( start, eind, strlen(eind)+1 ); - } - - while ( (start = strstr(dir,"\\\\" )) ){ - eind = start + strlen("\\\\") - 1; - memmove( start, eind, strlen(eind)+1 ); - } - - if((a = strlen(dir))){ /* remove the '\\' at the end */ - while(a>0 && dir[a-1] == '\\'){ - a--; - dir[a] = 0; - } - } -#else - if(dir[0]=='.') { /* happens, for example in FILE_MAIN */ - dir[0]= '/'; - dir[1]= 0; - return; - } - - while ( (start = strstr(dir, "/../")) ) { - eind = start + strlen("/../") - 1; - a = start-dir-1; - while (a>0) { - if (dir[a] == '/') break; - a--; - } - if (a<0) { - break; - } else { - memmove( dir+a, eind, strlen(eind)+1 ); - } - } - - while ( (start = strstr(dir,"/./")) ){ - eind = start + strlen("/./") - 1; - memmove( start, eind, strlen(eind)+1 ); - } - - while ( (start = strstr(dir,"//" )) ){ - eind = start + strlen("//") - 1; - memmove( start, eind, strlen(eind)+1 ); - } - - if( (a = strlen(dir)) ){ /* remove all '/' at the end */ - while(dir[a-1] == '/'){ - a--; - dir[a] = 0; - if (a<=0) break; - } - } -#endif -} - - -void BLI_makestringcode(const char *relfile, char *file) -{ - char * p; - char * q; - char * lslash; - char temp[FILE_MAXDIR+FILE_MAXFILE]; - char res[FILE_MAXDIR+FILE_MAXFILE]; - - /* if file is already relative, bail out */ - if(file[0]=='/' && file[1]=='/') return; - - /* also bail out if relative path is not set */ - if (relfile[0] == 0) return; - -#ifdef WIN32 - if (strlen(relfile) > 2 && relfile[1] != ':') { - char* ptemp; - /* fix missing volume name in relative base, - can happen with old .Blog files */ - get_default_root(temp); - ptemp = &temp[2]; - if (relfile[0] != '\\' && relfile[0] != '/') { - ptemp++; - } - BLI_strncpy(ptemp, relfile, FILE_MAXDIR + FILE_MAXFILE-3); - } else { - BLI_strncpy(temp, relfile, FILE_MAXDIR + FILE_MAXFILE); - } - - if (strlen(file) > 2) { - if ( temp[1] == ':' && file[1] == ':' && temp[0] != file[0] ) - return; - } -#else - BLI_strncpy(temp, relfile, FILE_MAX); -#endif - - BLI_char_switch(temp, '\\', '/'); - BLI_char_switch(file, '\\', '/'); - - /* remove /./ which confuse the following slash counting... */ - BLI_cleanup_file(NULL, file); - BLI_cleanup_file(NULL, temp); - - /* the last slash in the file indicates where the path part ends */ - lslash = BLI_last_slash(temp); - - if (lslash) - { - /* find the prefix of the filename that is equal for both filenames. - This is replaced by the two slashes at the beginning */ - p = temp; - q = file; - while (*p == *q) { - ++p; ++q; - } - /* we might have passed the slash when the beginning of a dir matches - so we rewind. Only check on the actual filename - */ - if (*q != '/') { - while ( (q >= file) && (*q != '/') ) { --q; --p; } - } - else if (*p != '/') { - while ( (p >= temp) && (*p != '/') ) { --p; --q; } - } - - strcpy(res, "//"); - - /* p now points to the slash that is at the beginning of the part - where the path is different from the relative path. - We count the number of directories we need to go up in the - hierarchy to arrive at the common 'prefix' of the path - */ - while (p && p < lslash) { - if (*p == '/') - strcat(res, "../"); - ++p; - } - - strcat(res, q+1); /* don't copy the slash at the beginning */ - -#ifdef WIN32 - BLI_char_switch(res+2, '/', '\\'); -#endif - strcpy(file, res); - } -} - -int BLI_has_parent(char *path) -{ - int len; - int slashes = 0; - BLI_clean(path); - len = BLI_add_slash(path) - 1; - - while (len>=0) { - if ((path[len] == '\\') || (path[len] == '/')) - slashes++; - len--; - } - return slashes > 1; -} - -int BLI_parent_dir(char *path) -{ -#ifdef WIN32 - static char *parent_dir="..\\"; -#else - static char *parent_dir="../"; -#endif - char tmp[FILE_MAXDIR+FILE_MAXFILE+4]; - BLI_strncpy(tmp, path, sizeof(tmp)); - BLI_add_slash(tmp); - strcat(tmp, parent_dir); - BLI_cleanup_dir(NULL, tmp); - - if (!BLI_testextensie(tmp, parent_dir)) { - BLI_strncpy(path, tmp, sizeof(tmp)); - return 1; - } else { - return 0; - } -} - -int BLI_convertstringframe(char *path, int frame) -{ - int ch_sta, ch_end, i; - /* Insert current frame: file### -> file001 */ - ch_sta = ch_end = 0; - for (i = 0; path[i] != '\0'; i++) { - if (path[i] == '\\' || path[i] == '/') { - ch_end = 0; /* this is a directory name, dont use any hashes we found */ - } else if (path[i] == '#') { - ch_sta = i; - ch_end = ch_sta+1; - while (path[ch_end] == '#') { - ch_end++; - } - i = ch_end-1; /* keep searching */ - - /* dont break, there may be a slash after this that invalidates the previous #'s */ - } - } - if (ch_end) { /* warning, ch_end is the last # +1 */ - /* Add the frame number? */ - short numlen, hashlen; - char tmp[FILE_MAX]; - - char format[16]; /* 6 is realistically the maxframe (300000), so 8 should be enough, but 16 to be safe. */ - if (((ch_end-1)-ch_sta) >= 16) { - ch_end = ch_sta+15; /* disallow values longer then 'format' can hold */ - } - - strcpy(tmp, path); - - numlen = 1 + (int)log10((double)frame); /* this is the number of chars in the number */ - hashlen = ch_end - ch_sta; - - sprintf(format, "%d", frame); - - if (numlen==hashlen) { /* simple case */ - memcpy(tmp+ch_sta, format, numlen); - } else if (numlen < hashlen) { - memcpy(tmp+ch_sta + (hashlen-numlen), format, numlen); /*dont copy the string terminator */ - memset(tmp+ch_sta, '0', hashlen-numlen); - } else { - /* number is longer then number of #'s */ - if (tmp[ch_end] == '\0') { /* hashes are last, no need to move any string*/ - /* bad juju - not testing string length here :/ */ - memcpy(tmp+ch_sta, format, numlen+1); /* add 1 to get the string terminator \0 */ - } else { - /* we need to move the end characters, reuse i */ - int j; - - i = strlen(tmp); /* +1 to copy the string terminator */ - j = i + (numlen-hashlen); /* from/to */ - - while (i >= ch_end) { - tmp[j] = tmp[i]; - i--; - j--; - } - memcpy(tmp + ch_sta, format, numlen); - } - } - strcpy(path, tmp); - return 1; - } - return 0; -} - - -int BLI_convertstringcode(char *path, const char *basepath) -{ - int wasrelative = (strncmp(path, "//", 2)==0); - char tmp[FILE_MAX]; - char base[FILE_MAX]; -#ifdef WIN32 - char vol[3] = {'\0', '\0', '\0'}; - - BLI_strncpy(vol, path, 3); - /* we are checking here if we have an absolute path that is not in the current - blend file as a lib main - we are basically checking for the case that a - UNIX root '/' is passed. - */ - if (!wasrelative && (vol[1] != ':' && (vol[0] == '\0' || vol[0] == '/' || vol[0] == '\\'))) { - char *p = path; - get_default_root(tmp); - // get rid of the slashes at the beginning of the path - while (*p == '\\' || *p == '/') { - p++; - } - strcat(tmp, p); - } - else { - BLI_strncpy(tmp, path, FILE_MAX); - } -#else - BLI_strncpy(tmp, path, FILE_MAX); - - /* Check for loading a windows path on a posix system - * in this case, there is no use in trying C:/ since it - * will never exist on a unix os. - * - * Add a / prefix and lowercase the driveletter, remove the : - * C:\foo.JPG -> /c/foo.JPG */ - - if (isalpha(tmp[0]) && tmp[1] == ':' && (tmp[2]=='\\' || tmp[2]=='/') ) { - tmp[1] = tolower(tmp[0]); /* replace ':' with driveletter */ - tmp[0] = '/'; - /* '\' the slash will be converted later */ - } - -#endif - - BLI_strncpy(base, basepath, FILE_MAX); - - BLI_cleanup_file(NULL, base); - - /* push slashes into unix mode - strings entering this part are - potentially messed up: having both back- and forward slashes. - Here we push into one conform direction, and at the end we - push them into the system specific dir. This ensures uniformity - of paths and solving some problems (and prevent potential future - ones) -jesterKing. */ - BLI_char_switch(tmp, '\\', '/'); - BLI_char_switch(base, '\\', '/'); - - /* Paths starting with // will get the blend file as their base, - * this isnt standard in any os but is uesed in blender all over the place */ - if (wasrelative) { - char *lslash= BLI_last_slash(base); - if (lslash) { - int baselen= (int) (lslash-base) + 1; - /* use path for for temp storage here, we copy back over it right away */ - BLI_strncpy(path, tmp+2, FILE_MAX); - - memcpy(tmp, base, baselen); - strcpy(tmp+baselen, path); - strcpy(path, tmp); - } else { - strcpy(path, tmp+2); - } - } else { - strcpy(path, tmp); - } - - if (path[0]!='\0') { - if ( path[strlen(path)-1]=='/') { - BLI_cleanup_dir(NULL, path); - } else { - BLI_cleanup_file(NULL, path); - } - } - -#ifdef WIN32 - /* skip first two chars, which in case of - absolute path will be drive:/blabla and - in case of relpath //blabla/. So relpath - // will be retained, rest will be nice and - shiny win32 backward slashes :) -jesterKing - */ - BLI_char_switch(path+2, '/', '\\'); -#endif - - return wasrelative; -} - - -/* - * Should only be done with command line paths. - * this is NOT somthing blenders internal paths support like the // prefix - */ -int BLI_convertstringcwd(char *path) -{ - int wasrelative = 1; - int filelen = strlen(path); - -#ifdef WIN32 - if (filelen >= 3 && path[1] == ':' && (path[2] == '\\' || path[2] == '/')) - wasrelative = 0; -#else - if (filelen >= 2 && path[0] == '/') - wasrelative = 0; -#endif - - if (wasrelative==1) { - char cwd[FILE_MAXDIR + FILE_MAXFILE]; - BLI_getwdN(cwd); /* incase the full path to the blend isnt used */ - - if (cwd[0] == '\0') { - printf( "Could not get the current working directory - $PWD for an unknown reason."); - } else { - /* uses the blend path relative to cwd important for loading relative linked files. - * - * cwd should contain c:\ etc on win32 so the relbase can be NULL - * relbase being NULL also prevents // being misunderstood as relative to the current - * blend file which isnt a feature we want to use in this case since were dealing - * with a path from the command line, rather then from inside Blender */ - - char origpath[FILE_MAXDIR + FILE_MAXFILE]; - BLI_strncpy(origpath, path, FILE_MAXDIR + FILE_MAXFILE); - - BLI_make_file_string(NULL, path, cwd, origpath); - } - } - - return wasrelative; -} - - -/* copy di to fi, filename only */ -void BLI_splitdirstring(char *di, char *fi) -{ - char *lslash= BLI_last_slash(di); - - if (lslash) { - BLI_strncpy(fi, lslash+1, FILE_MAXFILE); - *(lslash+1)=0; - } else { - BLI_strncpy(fi, di, FILE_MAXFILE); - di[0]= 0; - } -} - -void BLI_getlastdir(const char* dir, char *last, int maxlen) -{ - const char *s = dir; - const char *lslash = NULL; - const char *prevslash = NULL; - while (*s) { - if ((*s == '\\') || (*s == '/')) { - prevslash = lslash; - lslash = s; - } - s++; - } - if (prevslash) { - BLI_strncpy(last, prevslash+1, maxlen); - } else { - BLI_strncpy(last, dir, maxlen); - } -} - -char *BLI_gethome(void) { - #if !defined(WIN32) - return getenv("HOME"); - - #else /* Windows */ - char * ret; - static char dir[512]; - static char appdatapath[MAXPATHLEN]; - HRESULT hResult; - - /* Check for %HOME% env var */ - - ret = getenv("HOME"); - if(ret) { - sprintf(dir, "%s\\.blender", ret); - if (BLI_exists(dir)) return dir; - } - - /* else, check install dir (path containing blender.exe) */ - - BLI_getInstallationDir(dir); - - if (BLI_exists(dir)) - { - strcat(dir,"\\.blender"); - if (BLI_exists(dir)) return(dir); - } - - - /* add user profile support for WIN 2K / NT */ - hResult = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, appdatapath); - - if (hResult == S_OK) - { - if (BLI_exists(appdatapath)) { /* from fop, also below... */ - sprintf(dir, "%s\\Blender Foundation\\Blender", appdatapath); - BLI_recurdir_fileops(dir); - if (BLI_exists(dir)) { - strcat(dir,"\\.blender"); - if(BLI_exists(dir)) return(dir); - } - } - hResult = SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, appdatapath); - if (hResult == S_OK) - { - if (BLI_exists(appdatapath)) - { /* from fop, also below... */ - sprintf(dir, "%s\\Blender Foundation\\Blender", appdatapath); - BLI_recurdir_fileops(dir); - if (BLI_exists(dir)) { - strcat(dir,"\\.blender"); - if(BLI_exists(dir)) return(dir); - } - } - } - } -#if 0 - ret = getenv("USERPROFILE"); - if (ret) { - if (BLI_exists(ret)) { /* from fop, also below... */ - sprintf(dir, "%s\\Application Data\\Blender Foundation\\Blender", ret); - BLI_recurdir_fileops(dir); - if (BLI_exists(dir)) { - strcat(dir,"\\.blender"); - if(BLI_exists(dir)) return(dir); - } - } - } -#endif - - /* - Saving in the Windows dir is less than desirable. - Use as a last resort ONLY! (aphex) - */ - - ret = getenv("WINDOWS"); - if (ret) { - if(BLI_exists(ret)) return ret; - } - - ret = getenv("WINDIR"); - if (ret) { - if(BLI_exists(ret)) return ret; - } - - return "C:\\Temp"; /* sheesh! bad, bad, bad! (aphex) */ - #endif -} - -/* this function returns the path to a blender folder, if it exists - * utility functions for BLI_gethome_folder */ - -/* #define PATH_DEBUG */ /* for testing paths that are checked */ - -static int test_data_path(char *targetpath, char *path_base, char *path_sep, char *folder_name) -{ - char tmppath[FILE_MAXDIR]; - - if(path_sep) BLI_join_dirfile(tmppath, path_base, path_sep); - else BLI_strncpy(tmppath, path_base, sizeof(tmppath)); - - BLI_make_file_string("/", targetpath, tmppath, folder_name); - - if (BLI_exists(targetpath)) { -#ifdef PATH_DEBUG - printf("\tpath found: %s\n", targetpath); -#endif - return 1; - } - else { -#ifdef PATH_DEBUG - printf("\tpath missing: %s\n", targetpath); -#endif - targetpath[0] = '\0'; - return 0; - } -} - -static int gethome_path_local(char *targetpath, char *folder_name) -{ - extern char bprogname[]; /* argv[0] from creator.c */ - char bprogdir[FILE_MAXDIR]; - char cwd[FILE_MAXDIR]; - char *s; - int i; - -#ifdef PATH_DEBUG - printf("gethome_path_local...\n"); -#endif - - /* try release/folder_name (binary relative) */ - /* use argv[0] (bprogname) to get the path to the executable */ - s = BLI_last_slash(bprogname); - i = s - bprogname + 1; - BLI_strncpy(bprogdir, bprogname, i); - - /* try release/folder_name (CWD relative) */ - if(test_data_path(targetpath, BLI_getwdN(cwd), "release", folder_name)) - return 1; - - if(test_data_path(targetpath, bprogdir, "release", folder_name)) - return 1; - - /* try ./.blender/folder_name */ - if(test_data_path(targetpath, bprogdir, ".blender", folder_name)) - return 1; - - return 0; -} - -static int gethome_path_user(char *targetpath, char *folder_name) -{ - char *home_path= BLI_gethome(); - -#ifdef PATH_DEBUG - printf("gethome_path_user...\n"); -#endif - - /* try $HOME/folder_name */ - return test_data_path(targetpath, home_path, ".blender", folder_name); -} - -static int gethome_path_system(char *targetpath, char *folder_name) -{ - extern char blender_path[]; /* unix prefix eg. /usr/share/blender/2.5 creator.c */ - - if(!blender_path[0]) - return 0; - -#ifdef PATH_DEBUG - printf("gethome_path_system...\n"); -#endif - - /* try $BLENDERPATH/folder_name */ - return test_data_path(targetpath, blender_path, NULL, folder_name); -} - -char *BLI_gethome_folder(char *folder_name, int flag) -{ - static char fulldir[FILE_MAXDIR] = ""; - - /* first check if this is a redistributable bundle */ - if(flag & BLI_GETHOME_LOCAL) { - if (gethome_path_local(fulldir, folder_name)) - return fulldir; - } - - /* then check if the OS has blender data files installed in a global location */ - if(flag & BLI_GETHOME_SYSTEM) { - if (gethome_path_system(fulldir, folder_name)) - return fulldir; - } - - /* now check the users home dir for data files */ - if(flag & BLI_GETHOME_USER) { - if (gethome_path_user(fulldir, folder_name)) - return fulldir; - } - - return NULL; -} - -#ifdef PATH_DEBUG -#undef PATH_DEBUG -#endif - -void BLI_setenv(const char *env, const char*val) -{ - /* SGI or free windows */ -#if (defined(__sgi) || ((defined(WIN32) || defined(WIN64)) && defined(FREE_WINDOWS))) - char *envstr= malloc(sizeof(char) * (strlen(env) + strlen(val) + 2)); /* one for = another for \0 */ - - sprintf(envstr, "%s=%s", env, val); - putenv(envstr); - free(envstr); - - /* non-free windows */ -#elif (defined(WIN32) || defined(WIN64)) /* not free windows */ - _putenv_s(env, val); -#else - /* linux/osx/bsd */ - setenv(env, val, 1); -#endif -} - - -/** - Only set an env var if already not there. - Like Unix setenv(env, val, 0); - */ -void BLI_setenv_if_new(const char *env, const char* val) -{ - if(getenv(env) == NULL) - BLI_setenv(env, val); -} - - -void BLI_clean(char *path) -{ - if(path==0) return; -#ifdef WIN32 - if(path && strlen(path)>2) { - BLI_char_switch(path+2, '/', '\\'); - } -#else - BLI_char_switch(path, '\\', '/'); -#endif -} - -void BLI_char_switch(char *string, char from, char to) -{ - if(string==0) return; - while (*string != 0) { - if (*string == from) *string = to; - string++; - } -} - -void BLI_make_exist(char *dir) { - int a; - - #ifdef WIN32 - BLI_char_switch(dir, '/', '\\'); - #else - BLI_char_switch(dir, '\\', '/'); - #endif - - a = strlen(dir); - -#ifdef WIN32 - while(BLI_exists(dir) == 0){ - a --; - while(dir[a] != '\\'){ - a--; - if (a <= 0) break; - } - if (a >= 0) dir[a+1] = 0; - else { - /* defaulting to drive (usually 'C:') of Windows installation */ - get_default_root(dir); - break; - } - } -#else - while(BLI_exist(dir) == 0){ - a --; - while(dir[a] != '/'){ - a--; - if (a <= 0) break; - } - if (a >= 0) dir[a+1] = 0; - else { - strcpy(dir,"/"); - break; - } - } -#endif -} - -void BLI_make_existing_file(char *name) -{ - char di[FILE_MAXDIR], fi[FILE_MAXFILE]; - - strcpy(di, name); - BLI_splitdirstring(di, fi); - - /* test exist */ - if (BLI_exists(di) == 0) { - BLI_recurdir_fileops(di); - } -} - - -void BLI_make_file_string(const char *relabase, char *string, const char *dir, const char *file) -{ - int sl; - - if (!string || !dir || !file) return; /* We don't want any NULLs */ - - string[0]= 0; /* ton */ - - /* we first push all slashes into unix mode, just to make sure we don't get - any mess with slashes later on. -jesterKing */ - /* constant strings can be passed for those parameters - don't change them - elubie */ - /* - BLI_char_switch(relabase, '\\', '/'); - BLI_char_switch(dir, '\\', '/'); - BLI_char_switch(file, '\\', '/'); - */ - - /* Resolve relative references */ - if (relabase && dir[0] == '/' && dir[1] == '/') { - char *lslash; - - /* Get the file name, chop everything past the last slash (ie. the filename) */ - strcpy(string, relabase); - - lslash= (strrchr(string, '/')>strrchr(string, '\\'))?strrchr(string, '/'):strrchr(string, '\\'); - - if(lslash) *(lslash+1)= 0; - - dir+=2; /* Skip over the relative reference */ - } -#ifdef WIN32 - else { - if (strlen(dir) >= 2 && dir[1] == ':' ) { - BLI_strncpy(string, dir, 3); - dir += 2; - } - else { /* no drive specified */ - /* first option: get the drive from the relabase if it has one */ - if (relabase && strlen(relabase) >= 2 && relabase[1] == ':' ) { - BLI_strncpy(string, relabase, 3); - string[2] = '\\'; - string[3] = '\0'; - } - else { /* we're out of luck here, guessing the first valid drive, usually c:\ */ - get_default_root(string); - } - - /* ignore leading slashes */ - while (*dir == '/' || *dir == '\\') dir++; - } - } -#endif - - strcat(string, dir); - - /* Make sure string ends in one (and only one) slash */ - /* first trim all slashes from the end of the string */ - sl = strlen(string); - while (sl>0 && ( string[sl-1] == '/' || string[sl-1] == '\\') ) { - string[sl-1] = '\0'; - sl--; - } - /* since we've now removed all slashes, put back one slash at the end. */ - strcat(string, "/"); - - while (*file && (*file == '/' || *file == '\\')) /* Trim slashes from the front of file */ - file++; - - strcat (string, file); - - /* Push all slashes to the system preferred direction */ - BLI_clean(string); -} - -int BLI_testextensie(const char *str, const char *ext) -{ - short a, b; - int retval; - - a= strlen(str); - b= strlen(ext); - - if(a==0 || b==0 || b>=a) { - retval = 0; - } else if (BLI_strcasecmp(ext, str + a - b)) { - retval = 0; - } else { - retval = 1; - } - - return (retval); -} - -/* - * This is a simple version of BLI_split_dirfile that has the following advantages... - * - * Converts "/foo/bar.txt" to "/foo/" and "bar.txt" - * - wont change 'string' - * - wont create any directories - * - dosnt use CWD, or deal with relative paths. - * - Only fill's in *dir and *file when they are non NULL - * */ -void BLI_split_dirfile_basic(const char *string, char *dir, char *file) -{ - int lslash=0, i = 0; - for (i=0; string[i]!='\0'; i++) { - if (string[i]=='\\' || string[i]=='/') - lslash = i+1; - } - if (dir) { - if (lslash) { - BLI_strncpy( dir, string, lslash+1); /* +1 to include the slash and the last char */ - } else { - dir[0] = '\0'; - } - } - - if (file) { - strcpy( file, string+lslash); - } -} - - -/* Warning, - * - May modify 'string' variable - * - May create the directory if it dosnt exist - * if this is not needed use BLI_split_dirfile_basic(...) - */ -void BLI_split_dirfile(char *string, char *dir, char *file) -{ - int a; -#ifdef WIN32 - int sl; - short is_relative = 0; - char path[FILE_MAX]; -#endif - - dir[0]= 0; - file[0]= 0; - -#ifdef WIN32 - BLI_strncpy(path, string, FILE_MAX); - BLI_char_switch(path, '/', '\\'); /* make sure we have a valid path format */ - sl = strlen(path); - if (sl) { - int len; - if (path[0] == '/' || path[0] == '\\') { - BLI_strncpy(dir, path, FILE_MAXDIR); - if (sl > 1 && path[0] == '\\' && path[1] == '\\') is_relative = 1; - } else if (sl > 2 && path[1] == ':' && path[2] == '\\') { - BLI_strncpy(dir, path, FILE_MAXDIR); - } else { - BLI_getwdN(dir); - strcat(dir,"\\"); - strcat(dir,path); - BLI_strncpy(path,dir,FILE_MAXDIR+FILE_MAXFILE); - } - - // BLI_exist doesn't recognize a slashed dirname as a dir - // check if a trailing slash exists, and remove it. Do not do this - // when we are already at root. -jesterKing - a = strlen(dir); - if(a>=4 && dir[a-1]=='\\') dir[a-1] = 0; - - if (is_relative) { - printf("WARNING: BLI_split_dirfile needs absolute dir\n"); - } - else { - BLI_make_exist(dir); - } - - if (S_ISDIR(BLI_exist(dir))) { - - /* copy from end of string into file, to ensure filename itself isn't truncated - if string is too long. (aphex) */ - - len = FILE_MAXFILE - strlen(path); - - if (len < 0) - BLI_strncpy(file,path + abs(len),FILE_MAXFILE); - else - BLI_strncpy(file,path,FILE_MAXFILE); - - if (strrchr(path,'\\')) { - BLI_strncpy(file,strrchr(path,'\\')+1,FILE_MAXFILE); - } - - if ( (a = strlen(dir)) ) { - if (dir[a-1] != '\\') strcat(dir,"\\"); - } - } - else { - a = strlen(dir) - 1; - while(a>0 && dir[a] != '\\') a--; - dir[a + 1] = 0; - BLI_strncpy(file, path + strlen(dir),FILE_MAXFILE); - } - - } - else { - /* defaulting to first valid drive hoping it's not empty CD and DVD drives */ - get_default_root(dir); - file[0]=0; - } -#else - if (strlen(string)) { - if (string[0] == '/') { - strcpy(dir, string); - } else if (string[1] == ':' && string[2] == '\\') { - string+=2; - strcpy(dir, string); - } else { - BLI_getwdN(dir); - strcat(dir,"/"); - strcat(dir,string); - strcpy((char *)string,dir); - } - - BLI_make_exist(dir); - - if (S_ISDIR(BLI_exist(dir))) { - strcpy(file,string + strlen(dir)); - - if (strrchr(file,'/')) strcpy(file,strrchr(file,'/')+1); - - if ( (a = strlen(dir)) ) { - if (dir[a-1] != '/') strcat(dir,"/"); - } - } - else { - a = strlen(dir) - 1; - while(dir[a] != '/') a--; - dir[a + 1] = 0; - strcpy(file, string + strlen(dir)); - } - } - else { - BLI_getwdN(dir); - strcat(dir, "/"); - file[0] = 0; - } -#endif -} - -/* simple appending of filename to dir, does not check for valid path! */ -void BLI_join_dirfile(char *string, const char *dir, const char *file) -{ - int sl_dir; - - if(string != dir) /* compare pointers */ - BLI_strncpy(string, dir, FILE_MAX); - - sl_dir= BLI_add_slash(string); - - if (sl_dir Date: Sun, 13 Dec 2009 15:48:57 +0000 Subject: more sequence -> sequencer rename, also made sequencer swap strip update effects strips --- source/blender/blenkernel/intern/scene.c | 2 +- source/blender/blenkernel/intern/sequencer.c | 2 + source/blender/blenlib/intern/path_util.c | 11 +- .../editors/space_sequencer/sequencer_edit.c | 9 +- source/blender/makesrna/intern/makesrna.c | 2 +- source/blender/makesrna/intern/rna_internal.h | 2 +- source/blender/makesrna/intern/rna_scene.c | 2 +- source/blender/makesrna/intern/rna_sequence.c | 1186 -------------------- source/blender/makesrna/intern/rna_sequencer.c | 1186 ++++++++++++++++++++ 9 files changed, 1204 insertions(+), 1198 deletions(-) delete mode 100644 source/blender/makesrna/intern/rna_sequence.c create mode 100644 source/blender/makesrna/intern/rna_sequencer.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 43017a75835..4312f23bd9b 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -860,7 +860,7 @@ void scene_update_for_newframe(Scene *sce, unsigned int lay) void scene_add_render_layer(Scene *sce) { SceneRenderLayer *srl; - int tot= 1 + BLI_countlist(&sce->r.layers); +// int tot= 1 + BLI_countlist(&sce->r.layers); srl= MEM_callocN(sizeof(SceneRenderLayer), "new render layer"); sprintf(srl->name, "RenderLayer"); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index c5ca24bec45..7450e810b89 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -472,6 +472,8 @@ void calc_sequence_disp(Sequence *seq) void calc_sequence(Sequence *seq) { + printf(" ddd %s\n", seq->name); + Sequence *seqm; int min, max; diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c index 5ff4dfe4e96..bf7a4f77f9e 100644 --- a/source/blender/blenlib/intern/path_util.c +++ b/source/blender/blenlib/intern/path_util.c @@ -1,9 +1,5 @@ -/* util.c - * - * various string, file, list operations. - * - * - * $Id$ +/** + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * @@ -29,7 +25,8 @@ * Contributor(s): none yet. * * ***** END GPL LICENSE BLOCK ***** - * + * + * various string, file, list operations. */ #include diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 9685a2e1e20..c421c7fbb85 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2557,7 +2557,7 @@ static int sequencer_swap_internal_exec(bContext *C, int side) Scene *scene= CTX_data_scene(C); Editing *ed= seq_give_editing(scene, FALSE); Sequence *active_seq = active_seq_get(scene); - Sequence *seq; + Sequence *seq, *iseq; if(ed==NULL) return OPERATOR_CANCELLED; if(active_seq==NULL) return OPERATOR_CANCELLED; @@ -2586,6 +2586,13 @@ static int sequencer_swap_internal_exec(bContext *C, int side) break; } + // XXX - should be a generic function + for(iseq= scene->ed->seqbasep->first; iseq; iseq= iseq->next) { + //if((iseq->type & SEQ_EFFECT) && ELEM6(iseq, seq->seq1, seq->seq2, seq->seq3, active_seq->seq1, active_seq->seq2, active_seq->seq3)) + if(iseq->type & SEQ_EFFECT) + calc_sequence(iseq); + } + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 96953cefa2e..5bdfe228e89 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2020,7 +2020,7 @@ RNAProcessItem PROCESS_ITEMS[]= { {"rna_screen.c", NULL, RNA_def_screen}, {"rna_sculpt_paint.c", NULL, RNA_def_sculpt_paint}, {"rna_sensor.c", NULL, RNA_def_sensor}, - {"rna_sequence.c", NULL, RNA_def_sequence}, + {"rna_sequencer.c", NULL, RNA_def_sequencer}, {"rna_smoke.c", NULL, RNA_def_smoke}, {"rna_space.c", NULL, RNA_def_space}, {"rna_test.c", NULL, RNA_def_test}, diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 6f4233b9337..f43db74286b 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -154,7 +154,7 @@ void RNA_def_scene(struct BlenderRNA *brna); void RNA_def_screen(struct BlenderRNA *brna); void RNA_def_sculpt_paint(struct BlenderRNA *brna); void RNA_def_sensor(struct BlenderRNA *brna); -void RNA_def_sequence(struct BlenderRNA *brna); +void RNA_def_sequencer(struct BlenderRNA *brna); void RNA_def_smoke(struct BlenderRNA *brna); void RNA_def_space(struct BlenderRNA *brna); void RNA_def_test(struct BlenderRNA *brna); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 83a945f2bea..51344fdf8b3 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -2190,7 +2190,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Stamp Filename", "Include the filename of the .blend file in image metadata"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); - prop= RNA_def_property(srna, "stamp_sequence_strip", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "stamp_sequencer_strip", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "stamp", R_STAMP_SEQSTRIP); RNA_def_property_ui_text(prop, "Stamp Sequence Strip", "Include the name of the foreground sequence strip in image metadata"); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c deleted file mode 100644 index a86fe1a9e5d..00000000000 --- a/source/blender/makesrna/intern/rna_sequence.c +++ /dev/null @@ -1,1186 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * Contributor(s): Blender Foundation (2008) - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include -#include - -#include "RNA_access.h" -#include "RNA_define.h" -#include "RNA_types.h" - -#include "rna_internal.h" - -#include "DNA_object_types.h" -#include "DNA_scene_types.h" -#include "DNA_sequence_types.h" - -#include "BKE_sequencer.h" - -#include "MEM_guardedalloc.h" - -#include "WM_types.h" - -#ifdef RNA_RUNTIME - -/* build a temp referene to the parent */ -static void meta_tmp_ref(Sequence *seq_par, Sequence *seq) -{ - for (; seq; seq= seq->next) { - seq->tmp= seq_par; - if(seq->type == SEQ_META) { - meta_tmp_ref(seq, seq->seqbase.first); - } - } -} - -static void rna_SequenceEditor_sequences_all_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) -{ - Scene *sce= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(sce, FALSE); - - meta_tmp_ref(NULL, ed->seqbase.first); - - rna_iterator_listbase_begin(iter, &ed->seqbase, NULL); -} - -static void rna_SequenceEditor_sequences_all_next(CollectionPropertyIterator *iter) -{ - ListBaseIterator *internal= iter->internal; - Sequence *seq= (Sequence*)internal->link; - - if(seq->seqbase.first) - internal->link= (Link*)seq->seqbase.first; - else if(seq->next) - internal->link= (Link*)seq->next; - else { - internal->link= NULL; - - do { - seq= seq->tmp; // XXX - seq's dont reference their parents! - if(seq && seq->next) { - internal->link= (Link*)seq->next; - break; - } - } while(seq); - } - - iter->valid= (internal->link != NULL); -} - -static void rna_Sequence_start_frame_set(PointerRNA *ptr, int value) -{ - Sequence *seq= (Sequence*)ptr->data; - Scene *sce= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(sce, FALSE); - - seq->start= value; - calc_sequence_disp(seq); - - if( seq_test_overlap(ed->seqbasep, seq) ) { - shuffle_seq(ed->seqbasep, seq); - } - sort_seq(sce); -} - -static void rna_Sequence_length_set(PointerRNA *ptr, int value) -{ - Sequence *seq= (Sequence*)ptr->data; - Scene *sce= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(sce, FALSE); - - seq_tx_set_final_right(seq, seq->start+value); - calc_sequence_disp(seq); - - if( seq_test_overlap(ed->seqbasep, seq) ) { - shuffle_seq(ed->seqbasep, seq); - } - sort_seq(sce); -} - -static int rna_Sequence_length_get(PointerRNA *ptr) -{ - Sequence *seq= (Sequence*)ptr->data; - return seq_tx_get_final_right(seq, 0)-seq_tx_get_final_left(seq, 0); -} - -static void rna_Sequence_channel_set(PointerRNA *ptr, int value) -{ - Sequence *seq= (Sequence*)ptr->data; - Scene *sce= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(sce, FALSE); - - seq->machine= value; - - if( seq_test_overlap(ed->seqbasep, seq) ) { - shuffle_seq(ed->seqbasep, seq); - } - sort_seq(sce); -} - -/* properties that need to allocate structs */ -static void rna_Sequence_use_color_balance_set(PointerRNA *ptr, int value) -{ - Sequence *seq= (Sequence*)ptr->data; - int c; - - if(value) { - seq->flag |= SEQ_USE_COLOR_BALANCE; - if(seq->strip->color_balance == NULL) { - seq->strip->color_balance = MEM_callocN(sizeof(struct StripColorBalance), "StripColorBalance"); - for (c=0; c<3; c++) { - seq->strip->color_balance->lift[c] = 1.0f; - seq->strip->color_balance->gamma[c] = 1.0f; - seq->strip->color_balance->gain[c] = 1.0f; - } - } - } else { - seq->flag ^= SEQ_USE_COLOR_BALANCE; - } -} - -static void rna_Sequence_use_proxy_set(PointerRNA *ptr, int value) -{ - Sequence *seq= (Sequence*)ptr->data; - if(value) { - seq->flag |= SEQ_USE_PROXY; - if(seq->strip->proxy == NULL) { - seq->strip->proxy = MEM_callocN(sizeof(struct StripProxy), "StripProxy"); - } - } else { - seq->flag ^= SEQ_USE_PROXY; - } -} - -static void rna_Sequence_use_translation_set(PointerRNA *ptr, int value) -{ - Sequence *seq= (Sequence*)ptr->data; - if(value) { - seq->flag |= SEQ_USE_TRANSFORM; - if(seq->strip->transform == NULL) { - seq->strip->transform = MEM_callocN(sizeof(struct StripTransform), "StripTransform"); - } - } else { - seq->flag ^= SEQ_USE_TRANSFORM; - } -} - -static void rna_Sequence_use_crop_set(PointerRNA *ptr, int value) -{ - Sequence *seq= (Sequence*)ptr->data; - if(value) { - seq->flag |= SEQ_USE_CROP; - if(seq->strip->crop == NULL) { - seq->strip->crop = MEM_callocN(sizeof(struct StripCrop), "StripCrop"); - } - } else { - seq->flag ^= SEQ_USE_CROP; - } -} -/* name functions that ignore the first two characters */ -static void rna_Sequence_name_get(PointerRNA *ptr, char *value) -{ - Sequence *seq= (Sequence*)ptr->data; - BLI_strncpy(value, seq->name+2, sizeof(seq->name)-2); -} - -static int rna_Sequence_name_length(PointerRNA *ptr) -{ - Sequence *seq= (Sequence*)ptr->data; - return strlen(seq->name+2); -} - -static void rna_Sequence_name_set(PointerRNA *ptr, const char *value) -{ - Scene *sce= (Scene*)ptr->id.data; - Sequence *seq= (Sequence*)ptr->data; - BLI_strncpy(seq->name+2, value, sizeof(seq->name)-2); - seqUniqueName(&sce->ed->seqbase, seq); -} - -static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr) -{ - Sequence *seq= (Sequence*)ptr->data; - - switch(seq->type) { - case SEQ_IMAGE: - return &RNA_ImageSequence; - case SEQ_META: - return &RNA_MetaSequence; - case SEQ_SCENE: - return &RNA_SceneSequence; - case SEQ_MOVIE: - return &RNA_MovieSequence; - case SEQ_SOUND: - return &RNA_SoundSequence; - case SEQ_CROSS: - case SEQ_ADD: - case SEQ_SUB: - case SEQ_ALPHAOVER: - case SEQ_ALPHAUNDER: - case SEQ_GAMCROSS: - case SEQ_MUL: - case SEQ_OVERDROP: - return &RNA_EffectSequence; - case SEQ_PLUGIN: - return &RNA_PluginSequence; - case SEQ_WIPE: - return &RNA_WipeSequence; - case SEQ_GLOW: - return &RNA_GlowSequence; - case SEQ_TRANSFORM: - return &RNA_TransformSequence; - case SEQ_COLOR: - return &RNA_ColorSequence; - case SEQ_SPEED: - return &RNA_SpeedControlSequence; - default: - return &RNA_Sequence; - } -} - -static char *rna_Sequence_path(PointerRNA *ptr) -{ - Sequence *seq= (Sequence*)ptr->data; - - /* sequencer data comes from scene... - * TODO: would be nice to make SequenceEditor data a datablock of its own (for shorter paths) - */ - if (seq->name+2) - return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"]", seq->name+2); - else - return BLI_strdup(""); -} - -static PointerRNA rna_SequenceEditor_meta_stack_get(CollectionPropertyIterator *iter) -{ - ListBaseIterator *internal= iter->internal; - MetaStack *ms= (MetaStack*)internal->link; - - return rna_pointer_inherit_refine(&iter->parent, &RNA_Sequence, ms->parseq); -} - -static void rna_MovieSequence_filename_set(PointerRNA *ptr, const char *value) -{ - Sequence *seq= (Sequence*)(ptr->data); - char dir[FILE_MAX], name[FILE_MAX]; - - BLI_split_dirfile_basic(value, dir, name); - BLI_strncpy(seq->strip->dir, dir, sizeof(seq->strip->dir)); - BLI_strncpy(seq->strip->stripdata->name, name, sizeof(seq->strip->stripdata->name)); -} - -static void rna_SoundSequence_filename_set(PointerRNA *ptr, const char *value) -{ - Sequence *seq= (Sequence*)(ptr->data); - char dir[FILE_MAX], name[FILE_MAX]; - - BLI_split_dirfile_basic(value, dir, name); - BLI_strncpy(seq->strip->dir, dir, sizeof(seq->strip->dir)); - BLI_strncpy(seq->strip->stripdata->name, name, sizeof(seq->strip->stripdata->name)); -} - -static void rna_SequenceElement_filename_set(PointerRNA *ptr, const char *value) -{ - StripElem *elem= (StripElem*)(ptr->data); - char name[FILE_MAX]; - - BLI_split_dirfile_basic(value, NULL, name); - BLI_strncpy(elem->name, name, sizeof(elem->name)); -} - -static void rna_Sequence_update(Main *bmain, Scene *scene, PointerRNA *ptr) -{ - Editing *ed= seq_give_editing(scene, FALSE); - - free_imbuf_seq(scene, &ed->seqbase, FALSE); - - if(RNA_struct_is_a(ptr->type, &RNA_SoundSequence)) - seq_update_sound(ptr->data); -} - -static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr) -{ - Editing *ed= seq_give_editing(scene, FALSE); - - seq_update_muting(ed); - rna_Sequence_update(bmain, scene, ptr); -} - -#else - -static void rna_def_strip_element(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SequenceElement", NULL); - RNA_def_struct_ui_text(srna, "Sequence Element", "Sequence strip data for a single frame."); - RNA_def_struct_sdna(srna, "StripElem"); - - prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); - RNA_def_property_string_sdna(prop, NULL, "name"); - RNA_def_property_ui_text(prop, "Filename", ""); - RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SequenceElement_filename_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_strip_crop(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SequenceCrop", NULL); - RNA_def_struct_ui_text(srna, "Sequence Crop", "Cropping parameters for a sequence strip."); - RNA_def_struct_sdna(srna, "StripCrop"); - - prop= RNA_def_property(srna, "top", PROP_INT, PROP_UNSIGNED); - RNA_def_property_ui_text(prop, "Top", ""); - RNA_def_property_ui_range(prop, 0, 4096, 1, 0); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "bottom", PROP_INT, PROP_UNSIGNED); - RNA_def_property_ui_text(prop, "Bottom", ""); - RNA_def_property_ui_range(prop, 0, 4096, 1, 0); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "left", PROP_INT, PROP_UNSIGNED); - RNA_def_property_ui_text(prop, "Left", ""); - RNA_def_property_ui_range(prop, 0, 4096, 1, 0); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "right", PROP_INT, PROP_UNSIGNED); - RNA_def_property_ui_text(prop, "Right", ""); - RNA_def_property_ui_range(prop, 0, 4096, 1, 0); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_strip_transform(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SequenceTransform", NULL); - RNA_def_struct_ui_text(srna, "Sequence Transform", "Transform parameters for a sequence strip."); - RNA_def_struct_sdna(srna, "StripTransform"); - - prop= RNA_def_property(srna, "offset_x", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "xofs"); - RNA_def_property_ui_text(prop, "Offset Y", ""); - RNA_def_property_ui_range(prop, -4096, 4096, 1, 0); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "offset_y", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "yofs"); - RNA_def_property_ui_text(prop, "Offset Y", ""); - RNA_def_property_ui_range(prop, -4096, 4096, 1, 0); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_strip_proxy(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SequenceProxy", NULL); - RNA_def_struct_ui_text(srna, "Sequence Proxy", "Proxy parameters for a sequence strip."); - RNA_def_struct_sdna(srna, "StripProxy"); - - prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); - RNA_def_property_string_sdna(prop, NULL, "dir"); - RNA_def_property_ui_text(prop, "Directory", "Location to story the proxy file"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "file", PROP_STRING, PROP_DIRPATH); - RNA_def_property_string_sdna(prop, NULL, "file"); - RNA_def_property_ui_text(prop, "File", "Proxy file name"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_strip_color_balance(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SequenceColorBalance", NULL); - RNA_def_struct_ui_text(srna, "Sequence Color Balance", "Color balance parameters for a sequence strip."); - RNA_def_struct_sdna(srna, "StripColorBalance"); - - prop= RNA_def_property(srna, "lift", PROP_FLOAT, PROP_COLOR); - RNA_def_property_ui_text(prop, "Lift", "Color balance lift (shadows)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "gamma", PROP_FLOAT, PROP_COLOR); - RNA_def_property_ui_text(prop, "Gamma", "Color balance gamma (midtones)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "gain", PROP_FLOAT, PROP_COLOR); - RNA_def_property_ui_text(prop, "Gain", "Color balance gain (highlights)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "inverse_gain", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAIN); - RNA_def_property_ui_text(prop, "Inverse Gain", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "inverse_gamma", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAMMA); - RNA_def_property_ui_text(prop, "Inverse Gamma", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "inverse_lift", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_LIFT); - RNA_def_property_ui_text(prop, "Inverse Lift", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - /* not yet used - prop= RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_ui_text(prop, "Exposure", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "saturation", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_ui_text(prop, "Saturation", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); */ -} - -static void rna_def_sequence(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - FunctionRNA *func; - - static const EnumPropertyItem seq_type_items[]= { - {SEQ_IMAGE, "IMAGE", 0, "Image", ""}, - {SEQ_META, "META", 0, "Meta", ""}, - {SEQ_SCENE, "SCENE", 0, "Scene", ""}, - {SEQ_MOVIE, "MOVIE", 0, "Movie", ""}, - {SEQ_SOUND, "SOUND", 0, "Sound", ""}, - {SEQ_CROSS, "CROSS", 0, "Cross", ""}, - {SEQ_ADD, "ADD", 0, "Add", ""}, - {SEQ_SUB, "SUBTRACT", 0, "Subtract", ""}, - {SEQ_ALPHAOVER, "ALPHA_OVER", 0, "Alpha Over", ""}, - {SEQ_ALPHAUNDER, "ALPHA_UNDER", 0, "Alpha Under", ""}, - {SEQ_GAMCROSS, "GAMMA_CROSS", 0, "Gamma Cross", ""}, - {SEQ_MUL, "MULTIPLY", 0, "Multiply", ""}, - {SEQ_OVERDROP, "OVER_DROP", 0, "Over Drop", ""}, - {SEQ_PLUGIN, "PLUGIN", 0, "plugin", ""}, - {SEQ_WIPE, "WIPE", 0, "Wipe", ""}, - {SEQ_GLOW, "GLOW", 0, "Glow", ""}, - {SEQ_TRANSFORM, "TRANSFORM", 0, "Transform", ""}, - {SEQ_COLOR, "COLOR", 0, "Color", ""}, - {SEQ_SPEED, "SPEED", 0, "Speed", ""}, - {0, NULL, 0, NULL, NULL}}; - - static const EnumPropertyItem blend_mode_items[]= { - {SEQ_BLEND_REPLACE, "REPLACE", 0, "Replace", ""}, - {SEQ_CROSS, "CROSS", 0, "Cross", ""}, - {SEQ_ADD, "ADD", 0, "Add", ""}, - {SEQ_SUB, "SUBTRACT", 0, "Subtract", ""}, - {SEQ_ALPHAOVER, "ALPHA_OVER", 0, "Alpha Over", ""}, - {SEQ_ALPHAUNDER, "ALPHA_UNDER", 0, "Alpha Under", ""}, - {SEQ_GAMCROSS, "GAMMA_CROSS", 0, "Gamma Cross", ""}, - {SEQ_MUL, "MULTIPLY", 0, "Multiply", ""}, - {SEQ_OVERDROP, "OVER_DROP", 0, "Over Drop", ""}, - {0, NULL, 0, NULL, NULL}}; - - srna = RNA_def_struct(brna, "Sequence", NULL); - RNA_def_struct_ui_text(srna, "Sequence", "Sequence strip in the sequence editor."); - RNA_def_struct_refine_func(srna, "rna_Sequence_refine"); - RNA_def_struct_path_func(srna, "rna_Sequence_path"); - - prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); - RNA_def_property_string_funcs(prop, "rna_Sequence_name_get", "rna_Sequence_name_length", "rna_Sequence_name_set"); - RNA_def_property_string_maxlength(prop, sizeof(((Sequence*)NULL)->name)-2); - RNA_def_property_ui_text(prop, "Name", ""); - RNA_def_struct_name_property(srna, prop); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); - - prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_enum_items(prop, seq_type_items); - RNA_def_property_ui_text(prop, "Type", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - //prop= RNA_def_property(srna, "ipo", PROP_POINTER, PROP_NONE); - //RNA_def_property_ui_text(prop, "Ipo Curves", "Ipo curves used by this sequence."); - - /* flags */ - - prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SELECT); - RNA_def_property_ui_text(prop, "Selected", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); - - prop= RNA_def_property(srna, "left_handle_selected", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LEFTSEL); - RNA_def_property_ui_text(prop, "Left Handle Selected", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); - - prop= RNA_def_property(srna, "right_handle_selected", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_RIGHTSEL); - RNA_def_property_ui_text(prop, "Right Handle Selected", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); - - prop= RNA_def_property(srna, "mute", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MUTE); - RNA_def_property_ui_text(prop, "Mute", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_mute_update"); - - prop= RNA_def_property(srna, "frame_locked", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_IPO_FRAME_LOCKED); - RNA_def_property_ui_text(prop, "Frame Locked", "Lock the animation curve to the global frame counter."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LOCK); - RNA_def_property_ui_text(prop, "Lock", "Lock strip so that it can't be transformed."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); - - /* strip positioning */ - - prop= RNA_def_property(srna, "length", PROP_INT, PROP_TIME); - RNA_def_property_int_sdna(prop, NULL, "len"); - RNA_def_property_range(prop, 1, MAXFRAME); - RNA_def_property_ui_text(prop, "Length", "The length of the contents of this strip before the handles are applied"); - RNA_def_property_int_funcs(prop, "rna_Sequence_length_get", "rna_Sequence_length_set",NULL); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "start_frame", PROP_INT, PROP_TIME); - RNA_def_property_int_sdna(prop, NULL, "start"); - RNA_def_property_ui_text(prop, "Start Frame", ""); - RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_start_frame_set",NULL); // overlap tests and calc_seq_disp - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "start_offset", PROP_INT, PROP_TIME); - RNA_def_property_int_sdna(prop, NULL, "startofs"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests - RNA_def_property_ui_text(prop, "Start Offset", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "end_offset", PROP_INT, PROP_TIME); - RNA_def_property_int_sdna(prop, NULL, "endofs"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests - RNA_def_property_ui_text(prop, "End offset", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "start_still", PROP_INT, PROP_TIME); - RNA_def_property_int_sdna(prop, NULL, "startstill"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests - RNA_def_property_range(prop, 0, MAXFRAME); - RNA_def_property_ui_text(prop, "Start Still", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "end_still", PROP_INT, PROP_TIME); - RNA_def_property_int_sdna(prop, NULL, "endstill"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests - RNA_def_property_range(prop, 0, MAXFRAME); - RNA_def_property_ui_text(prop, "End Still", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "channel", PROP_INT, PROP_UNSIGNED); - RNA_def_property_int_sdna(prop, NULL, "machine"); - RNA_def_property_range(prop, 0, MAXSEQ-1); - RNA_def_property_ui_text(prop, "Channel", "Y position of the sequence strip."); - RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_channel_set",NULL); // overlap test - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - /* blending */ - - prop= RNA_def_property(srna, "blend_mode", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, blend_mode_items); - RNA_def_property_ui_text(prop, "Blend Mode", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "blend_opacity", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 0.0f, 100.0f); - RNA_def_property_ui_text(prop, "Blend Opacity", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "effect_fader", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_float_sdna(prop, NULL, "effect_fader"); - RNA_def_property_ui_text(prop, "Effect fader position", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "use_effect_default_fade", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_EFFECT_DEFAULT_FADE); - RNA_def_property_ui_text(prop, "Use Default Fade", "Fade effect using the builtin default (usually make transition as long as effect strip)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - - prop= RNA_def_property(srna, "speed_fader", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "speed_fader"); - RNA_def_property_ui_text(prop, "Speed effect fader position", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - /* functions */ - func= RNA_def_function(srna, "getStripElem", "give_stripelem"); - RNA_def_function_ui_description(func, "Return the strip element from a given frame or None."); - prop= RNA_def_int(func, "frame", 0, -MAXFRAME, MAXFRAME, "Frame", "The frame to get the strip element from", -MAXFRAME, MAXFRAME); - RNA_def_property_flag(prop, PROP_REQUIRED); - RNA_def_function_return(func, RNA_def_pointer(func, "elem", "SequenceElement", "", "strip element of the current frame")); -} - -static void rna_def_editor(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SequenceEditor", NULL); - RNA_def_struct_ui_text(srna, "Sequence Editor", "Sequence editing data for a Scene datablock."); - RNA_def_struct_ui_icon(srna, ICON_SEQUENCE); - RNA_def_struct_sdna(srna, "Editing"); - - prop= RNA_def_property(srna, "sequences", PROP_COLLECTION, PROP_NONE); - RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); - RNA_def_property_struct_type(prop, "Sequence"); - RNA_def_property_ui_text(prop, "Sequences", ""); - - prop= RNA_def_property(srna, "sequences_all", PROP_COLLECTION, PROP_NONE); - RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); - RNA_def_property_struct_type(prop, "Sequence"); - RNA_def_property_ui_text(prop, "Sequences", ""); - RNA_def_property_collection_funcs(prop, "rna_SequenceEditor_sequences_all_begin", "rna_SequenceEditor_sequences_all_next", 0, 0, 0, 0, 0); - - prop= RNA_def_property(srna, "meta_stack", PROP_COLLECTION, PROP_NONE); - RNA_def_property_collection_sdna(prop, NULL, "metastack", NULL); - RNA_def_property_struct_type(prop, "Sequence"); - RNA_def_property_ui_text(prop, "Meta Stack", "Meta strip stack, last is currently edited meta strip."); - RNA_def_property_collection_funcs(prop, 0, 0, 0, "rna_SequenceEditor_meta_stack_get", 0, 0, 0); - - prop= RNA_def_property(srna, "active_strip", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "act_seq"); - RNA_def_property_ui_text(prop, "Active Strip", "Sequencers active strip"); -} - -static void rna_def_filter_video(StructRNA *srna) -{ - PropertyRNA *prop; - - prop= RNA_def_property(srna, "de_interlace", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FILTERY); - RNA_def_property_ui_text(prop, "De-Interlace", "For video movies to remove fields."); - - prop= RNA_def_property(srna, "premultiply", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MAKE_PREMUL); - RNA_def_property_ui_text(prop, "Premultiply", "Convert RGB from key alpha to premultiplied alpha."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); - - prop= RNA_def_property(srna, "flip_x", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FLIPX); - RNA_def_property_ui_text(prop, "Flip X", "Flip on the X axis."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "flip_y", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FLIPY); - RNA_def_property_ui_text(prop, "Flip Y", "Flip on the Y axis."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "convert_float", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MAKE_FLOAT); - RNA_def_property_ui_text(prop, "Convert Float", "Convert input to float data."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "reverse_frames", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_REVERSE_FRAMES); - RNA_def_property_ui_text(prop, "Flip Time", "Reverse frame order."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "multiply_colors", PROP_FLOAT, PROP_UNSIGNED); - RNA_def_property_float_sdna(prop, NULL, "mul"); - RNA_def_property_range(prop, 0.0f, 20.0f); - RNA_def_property_ui_text(prop, "Multiply Colors", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "strobe", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 1.0f, 30.0f); - RNA_def_property_ui_text(prop, "Strobe", "Only display every nth frame."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "use_color_balance", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_COLOR_BALANCE); - RNA_def_property_ui_text(prop, "Use Color Balance", "(3-Way color correction) on input."); - RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_color_balance_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "color_balance", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "strip->color_balance"); - RNA_def_property_ui_text(prop, "Color Balance", ""); - - prop= RNA_def_property(srna, "use_translation", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_TRANSFORM); - RNA_def_property_ui_text(prop, "Use Translation", "Translate image before processing."); - RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_translation_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "transform", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "strip->transform"); - RNA_def_property_ui_text(prop, "Transform", ""); - - prop= RNA_def_property(srna, "use_crop", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_CROP); - RNA_def_property_ui_text(prop, "Use Crop", "Crop image before processing."); - RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_crop_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "crop", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "strip->crop"); - RNA_def_property_ui_text(prop, "Crop", ""); -} - -static void rna_def_proxy(StructRNA *srna) -{ - PropertyRNA *prop; - - prop= RNA_def_property(srna, "use_proxy", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_PROXY); - RNA_def_property_ui_text(prop, "Use Proxy", "Use a preview proxy for this strip."); - RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_proxy_set"); - - prop= RNA_def_property(srna, "proxy", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "strip->proxy"); - RNA_def_property_ui_text(prop, "Proxy", ""); - - prop= RNA_def_property(srna, "proxy_custom_directory", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_PROXY_CUSTOM_DIR); - RNA_def_property_ui_text(prop, "Proxy Custom Directory", "Use a custom directory to store data."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_input(StructRNA *srna) -{ - PropertyRNA *prop; - - prop= RNA_def_property(srna, "animation_start_offset", PROP_INT, PROP_UNSIGNED); - RNA_def_property_int_sdna(prop, NULL, "anim_startofs"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap test - RNA_def_property_ui_text(prop, "Animation Start Offset", "Animation start offset (trim start)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "animation_end_offset", PROP_INT, PROP_UNSIGNED); - RNA_def_property_int_sdna(prop, NULL, "anim_endofs"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap test - RNA_def_property_ui_text(prop, "Animation End Offset", "Animation end offset (trim end)."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_image(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "ImageSequence", "Sequence"); - RNA_def_struct_ui_text(srna, "Image Sequence", "Sequence strip to load one or more images."); - RNA_def_struct_sdna(srna, "Sequence"); - - prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); - RNA_def_property_string_sdna(prop, NULL, "strip->dir"); - RNA_def_property_ui_text(prop, "Directory", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "elements", PROP_COLLECTION, PROP_NONE); - RNA_def_property_collection_sdna(prop, NULL, "strip->stripdata", "strip->len"); - RNA_def_property_struct_type(prop, "SequenceElement"); - RNA_def_property_ui_text(prop, "Elements", ""); - - rna_def_filter_video(srna); - rna_def_proxy(srna); - rna_def_input(srna); -} - -static void rna_def_meta(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "MetaSequence", "Sequence"); - RNA_def_struct_ui_text(srna, "Meta Sequence", "Sequence strip to group other strips as a single sequence strip."); - RNA_def_struct_sdna(srna, "Sequence"); - - prop = RNA_def_property(srna, "sequences", PROP_COLLECTION, PROP_NONE); - RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); - RNA_def_property_struct_type(prop, "Sequence"); - RNA_def_property_ui_text(prop, "Sequences", ""); - - rna_def_filter_video(srna); - rna_def_proxy(srna); - rna_def_input(srna); -} - -static void rna_def_scene(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SceneSequence", "Sequence"); - RNA_def_struct_ui_text(srna, "Scene Sequence", "Sequence strip to used the rendered image of a scene."); - RNA_def_struct_sdna(srna, "Sequence"); - - prop= RNA_def_property(srna, "scene", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Scene", "Scene that this sequence uses."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - rna_def_filter_video(srna); - rna_def_proxy(srna); - rna_def_input(srna); -} - -static void rna_def_movie(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "MovieSequence", "Sequence"); - RNA_def_struct_ui_text(srna, "Movie Sequence", "Sequence strip to load a video."); - RNA_def_struct_sdna(srna, "Sequence"); - - prop= RNA_def_property(srna, "mpeg_preseek", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "anim_preseek"); - RNA_def_property_range(prop, 0, 50); - RNA_def_property_ui_text(prop, "MPEG Preseek", "For MPEG movies, preseek this many frames."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); - RNA_def_property_string_sdna(prop, NULL, "strip->stripdata->name"); - RNA_def_property_ui_text(prop, "Filename", ""); - RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MovieSequence_filename_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); - RNA_def_property_string_sdna(prop, NULL, "strip->dir"); - RNA_def_property_ui_text(prop, "Directory", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - rna_def_filter_video(srna); - rna_def_proxy(srna); - rna_def_input(srna); -} - -static void rna_def_sound(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SoundSequence", "Sequence"); - RNA_def_struct_ui_text(srna, "Sound Sequence", "Sequence strip defining a sound to be played over a period of time."); - RNA_def_struct_sdna(srna, "Sequence"); - - prop= RNA_def_property(srna, "sound", PROP_POINTER, PROP_NONE); - RNA_def_property_struct_type(prop, "Sound"); - RNA_def_property_ui_text(prop, "Sound", "Sound datablock used by this sequence."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); - RNA_def_property_string_sdna(prop, NULL, "strip->stripdata->name"); - RNA_def_property_ui_text(prop, "Filename", ""); - RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SoundSequence_filename_set"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); - RNA_def_property_string_sdna(prop, NULL, "strip->dir"); - RNA_def_property_ui_text(prop, "Directory", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - rna_def_input(srna); - - RNA_def_struct_sdna_from(srna, "SoundHandle", "sound_handle"); - - prop= RNA_def_property(srna, "volume", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "volume"); - RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_ui_text(prop, "Volume", "Playback volume of the sound"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_effect(BlenderRNA *brna) -{ - StructRNA *srna; - - srna = RNA_def_struct(brna, "EffectSequence", "Sequence"); - RNA_def_struct_ui_text(srna, "Effect Sequence", "Sequence strip applying an effect on the images created by other strips."); - RNA_def_struct_sdna(srna, "Sequence"); - - rna_def_proxy(srna); -} - -static void rna_def_plugin(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "PluginSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "Plugin Sequence", "Sequence strip applying an effect, loaded from an external plugin."); - RNA_def_struct_sdna_from(srna, "PluginSeq", "plugin"); - - prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); - RNA_def_property_string_sdna(prop, NULL, "name"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Filename", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - /* plugin properties need custom wrapping code like ID properties */ -} - -static void rna_def_wipe(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - static const EnumPropertyItem wipe_type_items[]= { - {0, "SINGLE", 0, "Single", ""}, - {1, "DOUBLE", 0, "Double", ""}, - /* not used yet {2, "BOX", 0, "Box", ""}, */ - /* not used yet {3, "CROSS", 0, "Cross", ""}, */ - {4, "IRIS", 0, "Iris", ""}, - {5, "CLOCK", 0, "Clock", ""}, - {0, NULL, 0, NULL, NULL} - }; - - static const EnumPropertyItem wipe_direction_items[]= { - {0, "OUT", 0, "Out", ""}, - {1, "IN", 0, "In", ""}, - {0, NULL, 0, NULL, NULL} - }; - - srna = RNA_def_struct(brna, "WipeSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "Wipe Sequence", "Sequence strip creating a wipe transition."); - RNA_def_struct_sdna_from(srna, "WipeVars", "effectdata"); - - prop= RNA_def_property(srna, "blur_width", PROP_FLOAT, PROP_UNSIGNED); - RNA_def_property_float_sdna(prop, NULL, "edgeWidth"); - RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_ui_text(prop, "Blur Width", "Width of the blur edge, in percentage relative to the image size."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "angle"); - RNA_def_property_range(prop, -90.0f, 90.0f); - RNA_def_property_ui_text(prop, "Angle", "Edge angle."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "direction", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "forward"); - RNA_def_property_enum_items(prop, wipe_direction_items); - RNA_def_property_ui_text(prop, "Direction", "Wipe direction."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "transition_type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "wipetype"); - RNA_def_property_enum_items(prop, wipe_type_items); - RNA_def_property_ui_text(prop, "Transition Type", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_glow(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "GlowSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "Glow Sequence", "Sequence strip creating a glow effect."); - RNA_def_struct_sdna_from(srna, "GlowVars", "effectdata"); - - prop= RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "fMini"); - RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_ui_text(prop, "Threshold", "Minimum intensity to trigger a glow"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "clamp", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "fClamp"); - RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_ui_text(prop, "Clamp", "rightness limit of intensity."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "boost_factor", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "fBoost"); - RNA_def_property_range(prop, 0.0f, 10.0f); - RNA_def_property_ui_text(prop, "Boost Factor", "Brightness multiplier."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "blur_distance", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "dDist"); - RNA_def_property_range(prop, 0.5f, 20.0f); - RNA_def_property_ui_text(prop, "Blur Distance", "Radius of glow effect."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "quality", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "dQuality"); - RNA_def_property_range(prop, 1, 5); - RNA_def_property_ui_text(prop, "Quality", "Accuracy of the blur effect."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "only_boost", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "bNoComp", 0); - RNA_def_property_ui_text(prop, "Only Boost", "Show the glow buffer only."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_transform(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - static const EnumPropertyItem interpolation_items[]= { - {0, "NONE", 0, "None", "No interpolation."}, - {1, "BILINEAR", 0, "Bilinear", "Bilinear interpolation."}, - {2, "BICUBIC", 0, "Bicubic", "Bicubic interpolation."}, - {0, NULL, 0, NULL, NULL} - }; - - static const EnumPropertyItem translation_unit_items[]= { - {0, "PIXELS", 0, "Pixels", ""}, - {1, "PERCENT", 0, "Percent", ""}, - {0, NULL, 0, NULL, NULL} - }; - - srna = RNA_def_struct(brna, "TransformSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "Transform Sequence", "Sequence strip applying affine transformations to other strips."); - RNA_def_struct_sdna_from(srna, "TransformVars", "effectdata"); - - prop= RNA_def_property(srna, "scale_start_x", PROP_FLOAT, PROP_UNSIGNED); - RNA_def_property_float_sdna(prop, NULL, "ScalexIni"); - RNA_def_property_ui_text(prop, "Scale X", ""); - RNA_def_property_ui_range(prop, 0, 10, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "scale_start_y", PROP_FLOAT, PROP_UNSIGNED); - RNA_def_property_float_sdna(prop, NULL, "ScaleyIni"); - RNA_def_property_ui_text(prop, "Scale Y", ""); - RNA_def_property_ui_range(prop, 0, 10, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "uniform_scale", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "uniform_scale", 0); - RNA_def_property_ui_text(prop, "Uniform Scale", "Scale uniformly, preserving aspect ratio."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "translate_start_x", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "xIni"); - RNA_def_property_ui_text(prop, "Translate X", ""); - RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "translate_start_y", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "yIni"); - RNA_def_property_ui_text(prop, "Translate Y", ""); - RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "rotation_start", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "rotIni"); - RNA_def_property_range(prop, -360.0f, 360.0f); - RNA_def_property_ui_text(prop, "Rotation", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "translation_unit", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "percent"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* not meant to be animated */ - RNA_def_property_enum_items(prop, translation_unit_items); - RNA_def_property_ui_text(prop, "Translation Unit", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "interpolation", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, interpolation_items); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* not meant to be animated */ - RNA_def_property_ui_text(prop, "Interpolation", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_solid_color(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "ColorSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "Color Sequence", "Sequence strip creating an image filled with a single color."); - RNA_def_struct_sdna_from(srna, "SolidColorVars", "effectdata"); - - prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); - RNA_def_property_float_sdna(prop, NULL, "col"); - RNA_def_property_ui_text(prop, "Color", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -static void rna_def_speed_control(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "SpeedControlSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "SpeedControl Sequence", "Sequence strip to control the speed of other strips."); - RNA_def_struct_sdna_from(srna, "SpeedControlVars", "effectdata"); - - prop= RNA_def_property(srna, "global_speed", PROP_FLOAT, PROP_UNSIGNED); - RNA_def_property_float_sdna(prop, NULL, "globalSpeed"); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ - RNA_def_property_ui_text(prop, "Global Speed", ""); - RNA_def_property_ui_range(prop, 0.0f, 100.0f, 1, 0); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "curve_velocity", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_INTEGRATE); - RNA_def_property_ui_text(prop, "F-Curve Velocity", "Interpret the F-Curve value as a velocity instead of a frame number."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "frame_blending", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_BLEND); - RNA_def_property_ui_text(prop, "Frame Blending", "Blend two frames into the target for a smoother result."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - prop= RNA_def_property(srna, "curve_compress_y", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_COMPRESS_IPO_Y); - RNA_def_property_ui_text(prop, "F-Curve Compress Y", "Scale F-Curve value to get the target frame number, F-Curve value runs from 0.0 to 1.0."); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); -} - -void RNA_def_sequence(BlenderRNA *brna) -{ - rna_def_strip_element(brna); - rna_def_strip_proxy(brna); - rna_def_strip_color_balance(brna); - rna_def_strip_crop(brna); - rna_def_strip_transform(brna); - - rna_def_sequence(brna); - rna_def_editor(brna); - - rna_def_image(brna); - rna_def_meta(brna); - rna_def_scene(brna); - rna_def_movie(brna); - rna_def_sound(brna); - rna_def_effect(brna); - rna_def_plugin(brna); - rna_def_wipe(brna); - rna_def_glow(brna); - rna_def_transform(brna); - rna_def_solid_color(brna); - rna_def_speed_control(brna); -} - -#endif - diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c new file mode 100644 index 00000000000..2eee35164af --- /dev/null +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -0,0 +1,1186 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Contributor(s): Blender Foundation (2008) + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include + +#include "RNA_access.h" +#include "RNA_define.h" +#include "RNA_types.h" + +#include "rna_internal.h" + +#include "DNA_object_types.h" +#include "DNA_scene_types.h" +#include "DNA_sequence_types.h" + +#include "BKE_sequencer.h" + +#include "MEM_guardedalloc.h" + +#include "WM_types.h" + +#ifdef RNA_RUNTIME + +/* build a temp referene to the parent */ +static void meta_tmp_ref(Sequence *seq_par, Sequence *seq) +{ + for (; seq; seq= seq->next) { + seq->tmp= seq_par; + if(seq->type == SEQ_META) { + meta_tmp_ref(seq, seq->seqbase.first); + } + } +} + +static void rna_SequenceEditor_sequences_all_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) +{ + Scene *sce= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(sce, FALSE); + + meta_tmp_ref(NULL, ed->seqbase.first); + + rna_iterator_listbase_begin(iter, &ed->seqbase, NULL); +} + +static void rna_SequenceEditor_sequences_all_next(CollectionPropertyIterator *iter) +{ + ListBaseIterator *internal= iter->internal; + Sequence *seq= (Sequence*)internal->link; + + if(seq->seqbase.first) + internal->link= (Link*)seq->seqbase.first; + else if(seq->next) + internal->link= (Link*)seq->next; + else { + internal->link= NULL; + + do { + seq= seq->tmp; // XXX - seq's dont reference their parents! + if(seq && seq->next) { + internal->link= (Link*)seq->next; + break; + } + } while(seq); + } + + iter->valid= (internal->link != NULL); +} + +static void rna_Sequence_start_frame_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + Scene *sce= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(sce, FALSE); + + seq->start= value; + calc_sequence_disp(seq); + + if( seq_test_overlap(ed->seqbasep, seq) ) { + shuffle_seq(ed->seqbasep, seq); + } + sort_seq(sce); +} + +static void rna_Sequence_length_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + Scene *sce= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(sce, FALSE); + + seq_tx_set_final_right(seq, seq->start+value); + calc_sequence_disp(seq); + + if( seq_test_overlap(ed->seqbasep, seq) ) { + shuffle_seq(ed->seqbasep, seq); + } + sort_seq(sce); +} + +static int rna_Sequence_length_get(PointerRNA *ptr) +{ + Sequence *seq= (Sequence*)ptr->data; + return seq_tx_get_final_right(seq, 0)-seq_tx_get_final_left(seq, 0); +} + +static void rna_Sequence_channel_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + Scene *sce= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(sce, FALSE); + + seq->machine= value; + + if( seq_test_overlap(ed->seqbasep, seq) ) { + shuffle_seq(ed->seqbasep, seq); + } + sort_seq(sce); +} + +/* properties that need to allocate structs */ +static void rna_Sequence_use_color_balance_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + int c; + + if(value) { + seq->flag |= SEQ_USE_COLOR_BALANCE; + if(seq->strip->color_balance == NULL) { + seq->strip->color_balance = MEM_callocN(sizeof(struct StripColorBalance), "StripColorBalance"); + for (c=0; c<3; c++) { + seq->strip->color_balance->lift[c] = 1.0f; + seq->strip->color_balance->gamma[c] = 1.0f; + seq->strip->color_balance->gain[c] = 1.0f; + } + } + } else { + seq->flag ^= SEQ_USE_COLOR_BALANCE; + } +} + +static void rna_Sequence_use_proxy_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + if(value) { + seq->flag |= SEQ_USE_PROXY; + if(seq->strip->proxy == NULL) { + seq->strip->proxy = MEM_callocN(sizeof(struct StripProxy), "StripProxy"); + } + } else { + seq->flag ^= SEQ_USE_PROXY; + } +} + +static void rna_Sequence_use_translation_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + if(value) { + seq->flag |= SEQ_USE_TRANSFORM; + if(seq->strip->transform == NULL) { + seq->strip->transform = MEM_callocN(sizeof(struct StripTransform), "StripTransform"); + } + } else { + seq->flag ^= SEQ_USE_TRANSFORM; + } +} + +static void rna_Sequence_use_crop_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + if(value) { + seq->flag |= SEQ_USE_CROP; + if(seq->strip->crop == NULL) { + seq->strip->crop = MEM_callocN(sizeof(struct StripCrop), "StripCrop"); + } + } else { + seq->flag ^= SEQ_USE_CROP; + } +} +/* name functions that ignore the first two characters */ +static void rna_Sequence_name_get(PointerRNA *ptr, char *value) +{ + Sequence *seq= (Sequence*)ptr->data; + BLI_strncpy(value, seq->name+2, sizeof(seq->name)-2); +} + +static int rna_Sequence_name_length(PointerRNA *ptr) +{ + Sequence *seq= (Sequence*)ptr->data; + return strlen(seq->name+2); +} + +static void rna_Sequence_name_set(PointerRNA *ptr, const char *value) +{ + Scene *sce= (Scene*)ptr->id.data; + Sequence *seq= (Sequence*)ptr->data; + BLI_strncpy(seq->name+2, value, sizeof(seq->name)-2); + seqUniqueName(&sce->ed->seqbase, seq); +} + +static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr) +{ + Sequence *seq= (Sequence*)ptr->data; + + switch(seq->type) { + case SEQ_IMAGE: + return &RNA_ImageSequence; + case SEQ_META: + return &RNA_MetaSequence; + case SEQ_SCENE: + return &RNA_SceneSequence; + case SEQ_MOVIE: + return &RNA_MovieSequence; + case SEQ_SOUND: + return &RNA_SoundSequence; + case SEQ_CROSS: + case SEQ_ADD: + case SEQ_SUB: + case SEQ_ALPHAOVER: + case SEQ_ALPHAUNDER: + case SEQ_GAMCROSS: + case SEQ_MUL: + case SEQ_OVERDROP: + return &RNA_EffectSequence; + case SEQ_PLUGIN: + return &RNA_PluginSequence; + case SEQ_WIPE: + return &RNA_WipeSequence; + case SEQ_GLOW: + return &RNA_GlowSequence; + case SEQ_TRANSFORM: + return &RNA_TransformSequence; + case SEQ_COLOR: + return &RNA_ColorSequence; + case SEQ_SPEED: + return &RNA_SpeedControlSequence; + default: + return &RNA_Sequence; + } +} + +static char *rna_Sequence_path(PointerRNA *ptr) +{ + Sequence *seq= (Sequence*)ptr->data; + + /* sequencer data comes from scene... + * TODO: would be nice to make SequenceEditor data a datablock of its own (for shorter paths) + */ + if (seq->name+2) + return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"]", seq->name+2); + else + return BLI_strdup(""); +} + +static PointerRNA rna_SequenceEditor_meta_stack_get(CollectionPropertyIterator *iter) +{ + ListBaseIterator *internal= iter->internal; + MetaStack *ms= (MetaStack*)internal->link; + + return rna_pointer_inherit_refine(&iter->parent, &RNA_Sequence, ms->parseq); +} + +static void rna_MovieSequence_filename_set(PointerRNA *ptr, const char *value) +{ + Sequence *seq= (Sequence*)(ptr->data); + char dir[FILE_MAX], name[FILE_MAX]; + + BLI_split_dirfile_basic(value, dir, name); + BLI_strncpy(seq->strip->dir, dir, sizeof(seq->strip->dir)); + BLI_strncpy(seq->strip->stripdata->name, name, sizeof(seq->strip->stripdata->name)); +} + +static void rna_SoundSequence_filename_set(PointerRNA *ptr, const char *value) +{ + Sequence *seq= (Sequence*)(ptr->data); + char dir[FILE_MAX], name[FILE_MAX]; + + BLI_split_dirfile_basic(value, dir, name); + BLI_strncpy(seq->strip->dir, dir, sizeof(seq->strip->dir)); + BLI_strncpy(seq->strip->stripdata->name, name, sizeof(seq->strip->stripdata->name)); +} + +static void rna_SequenceElement_filename_set(PointerRNA *ptr, const char *value) +{ + StripElem *elem= (StripElem*)(ptr->data); + char name[FILE_MAX]; + + BLI_split_dirfile_basic(value, NULL, name); + BLI_strncpy(elem->name, name, sizeof(elem->name)); +} + +static void rna_Sequence_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + Editing *ed= seq_give_editing(scene, FALSE); + + free_imbuf_seq(scene, &ed->seqbase, FALSE); + + if(RNA_struct_is_a(ptr->type, &RNA_SoundSequence)) + seq_update_sound(ptr->data); +} + +static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + Editing *ed= seq_give_editing(scene, FALSE); + + seq_update_muting(ed); + rna_Sequence_update(bmain, scene, ptr); +} + +#else + +static void rna_def_strip_element(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SequenceElement", NULL); + RNA_def_struct_ui_text(srna, "Sequence Element", "Sequence strip data for a single frame."); + RNA_def_struct_sdna(srna, "StripElem"); + + prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); + RNA_def_property_string_sdna(prop, NULL, "name"); + RNA_def_property_ui_text(prop, "Filename", ""); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SequenceElement_filename_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_strip_crop(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SequenceCrop", NULL); + RNA_def_struct_ui_text(srna, "Sequence Crop", "Cropping parameters for a sequence strip."); + RNA_def_struct_sdna(srna, "StripCrop"); + + prop= RNA_def_property(srna, "top", PROP_INT, PROP_UNSIGNED); + RNA_def_property_ui_text(prop, "Top", ""); + RNA_def_property_ui_range(prop, 0, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "bottom", PROP_INT, PROP_UNSIGNED); + RNA_def_property_ui_text(prop, "Bottom", ""); + RNA_def_property_ui_range(prop, 0, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "left", PROP_INT, PROP_UNSIGNED); + RNA_def_property_ui_text(prop, "Left", ""); + RNA_def_property_ui_range(prop, 0, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "right", PROP_INT, PROP_UNSIGNED); + RNA_def_property_ui_text(prop, "Right", ""); + RNA_def_property_ui_range(prop, 0, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_strip_transform(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SequenceTransform", NULL); + RNA_def_struct_ui_text(srna, "Sequence Transform", "Transform parameters for a sequence strip."); + RNA_def_struct_sdna(srna, "StripTransform"); + + prop= RNA_def_property(srna, "offset_x", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "xofs"); + RNA_def_property_ui_text(prop, "Offset Y", ""); + RNA_def_property_ui_range(prop, -4096, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "offset_y", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "yofs"); + RNA_def_property_ui_text(prop, "Offset Y", ""); + RNA_def_property_ui_range(prop, -4096, 4096, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_strip_proxy(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SequenceProxy", NULL); + RNA_def_struct_ui_text(srna, "Sequence Proxy", "Proxy parameters for a sequence strip."); + RNA_def_struct_sdna(srna, "StripProxy"); + + prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); + RNA_def_property_string_sdna(prop, NULL, "dir"); + RNA_def_property_ui_text(prop, "Directory", "Location to story the proxy file"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "file", PROP_STRING, PROP_DIRPATH); + RNA_def_property_string_sdna(prop, NULL, "file"); + RNA_def_property_ui_text(prop, "File", "Proxy file name"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_strip_color_balance(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SequenceColorBalance", NULL); + RNA_def_struct_ui_text(srna, "Sequence Color Balance", "Color balance parameters for a sequence strip."); + RNA_def_struct_sdna(srna, "StripColorBalance"); + + prop= RNA_def_property(srna, "lift", PROP_FLOAT, PROP_COLOR); + RNA_def_property_ui_text(prop, "Lift", "Color balance lift (shadows)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "gamma", PROP_FLOAT, PROP_COLOR); + RNA_def_property_ui_text(prop, "Gamma", "Color balance gamma (midtones)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "gain", PROP_FLOAT, PROP_COLOR); + RNA_def_property_ui_text(prop, "Gain", "Color balance gain (highlights)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "inverse_gain", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAIN); + RNA_def_property_ui_text(prop, "Inverse Gain", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "inverse_gamma", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAMMA); + RNA_def_property_ui_text(prop, "Inverse Gamma", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "inverse_lift", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_LIFT); + RNA_def_property_ui_text(prop, "Inverse Lift", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + /* not yet used + prop= RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Exposure", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "saturation", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Saturation", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); */ +} + +static void rna_def_sequence(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + FunctionRNA *func; + + static const EnumPropertyItem seq_type_items[]= { + {SEQ_IMAGE, "IMAGE", 0, "Image", ""}, + {SEQ_META, "META", 0, "Meta", ""}, + {SEQ_SCENE, "SCENE", 0, "Scene", ""}, + {SEQ_MOVIE, "MOVIE", 0, "Movie", ""}, + {SEQ_SOUND, "SOUND", 0, "Sound", ""}, + {SEQ_CROSS, "CROSS", 0, "Cross", ""}, + {SEQ_ADD, "ADD", 0, "Add", ""}, + {SEQ_SUB, "SUBTRACT", 0, "Subtract", ""}, + {SEQ_ALPHAOVER, "ALPHA_OVER", 0, "Alpha Over", ""}, + {SEQ_ALPHAUNDER, "ALPHA_UNDER", 0, "Alpha Under", ""}, + {SEQ_GAMCROSS, "GAMMA_CROSS", 0, "Gamma Cross", ""}, + {SEQ_MUL, "MULTIPLY", 0, "Multiply", ""}, + {SEQ_OVERDROP, "OVER_DROP", 0, "Over Drop", ""}, + {SEQ_PLUGIN, "PLUGIN", 0, "plugin", ""}, + {SEQ_WIPE, "WIPE", 0, "Wipe", ""}, + {SEQ_GLOW, "GLOW", 0, "Glow", ""}, + {SEQ_TRANSFORM, "TRANSFORM", 0, "Transform", ""}, + {SEQ_COLOR, "COLOR", 0, "Color", ""}, + {SEQ_SPEED, "SPEED", 0, "Speed", ""}, + {0, NULL, 0, NULL, NULL}}; + + static const EnumPropertyItem blend_mode_items[]= { + {SEQ_BLEND_REPLACE, "REPLACE", 0, "Replace", ""}, + {SEQ_CROSS, "CROSS", 0, "Cross", ""}, + {SEQ_ADD, "ADD", 0, "Add", ""}, + {SEQ_SUB, "SUBTRACT", 0, "Subtract", ""}, + {SEQ_ALPHAOVER, "ALPHA_OVER", 0, "Alpha Over", ""}, + {SEQ_ALPHAUNDER, "ALPHA_UNDER", 0, "Alpha Under", ""}, + {SEQ_GAMCROSS, "GAMMA_CROSS", 0, "Gamma Cross", ""}, + {SEQ_MUL, "MULTIPLY", 0, "Multiply", ""}, + {SEQ_OVERDROP, "OVER_DROP", 0, "Over Drop", ""}, + {0, NULL, 0, NULL, NULL}}; + + srna = RNA_def_struct(brna, "Sequence", NULL); + RNA_def_struct_ui_text(srna, "Sequence", "Sequence strip in the sequence editor."); + RNA_def_struct_refine_func(srna, "rna_Sequence_refine"); + RNA_def_struct_path_func(srna, "rna_Sequence_path"); + + prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); + RNA_def_property_string_funcs(prop, "rna_Sequence_name_get", "rna_Sequence_name_length", "rna_Sequence_name_set"); + RNA_def_property_string_maxlength(prop, sizeof(((Sequence*)NULL)->name)-2); + RNA_def_property_ui_text(prop, "Name", ""); + RNA_def_struct_name_property(srna, prop); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + + prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_enum_items(prop, seq_type_items); + RNA_def_property_ui_text(prop, "Type", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + //prop= RNA_def_property(srna, "ipo", PROP_POINTER, PROP_NONE); + //RNA_def_property_ui_text(prop, "Ipo Curves", "Ipo curves used by this sequence."); + + /* flags */ + + prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SELECT); + RNA_def_property_ui_text(prop, "Selected", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); + + prop= RNA_def_property(srna, "left_handle_selected", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LEFTSEL); + RNA_def_property_ui_text(prop, "Left Handle Selected", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); + + prop= RNA_def_property(srna, "right_handle_selected", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_RIGHTSEL); + RNA_def_property_ui_text(prop, "Right Handle Selected", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER_SELECT, NULL); + + prop= RNA_def_property(srna, "mute", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MUTE); + RNA_def_property_ui_text(prop, "Mute", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_mute_update"); + + prop= RNA_def_property(srna, "frame_locked", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_IPO_FRAME_LOCKED); + RNA_def_property_ui_text(prop, "Frame Locked", "Lock the animation curve to the global frame counter."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LOCK); + RNA_def_property_ui_text(prop, "Lock", "Lock strip so that it can't be transformed."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + + /* strip positioning */ + + prop= RNA_def_property(srna, "length", PROP_INT, PROP_TIME); + RNA_def_property_int_sdna(prop, NULL, "len"); + RNA_def_property_range(prop, 1, MAXFRAME); + RNA_def_property_ui_text(prop, "Length", "The length of the contents of this strip before the handles are applied"); + RNA_def_property_int_funcs(prop, "rna_Sequence_length_get", "rna_Sequence_length_set",NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "start_frame", PROP_INT, PROP_TIME); + RNA_def_property_int_sdna(prop, NULL, "start"); + RNA_def_property_ui_text(prop, "Start Frame", ""); + RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_start_frame_set",NULL); // overlap tests and calc_seq_disp + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "start_offset", PROP_INT, PROP_TIME); + RNA_def_property_int_sdna(prop, NULL, "startofs"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests + RNA_def_property_ui_text(prop, "Start Offset", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "end_offset", PROP_INT, PROP_TIME); + RNA_def_property_int_sdna(prop, NULL, "endofs"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests + RNA_def_property_ui_text(prop, "End offset", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "start_still", PROP_INT, PROP_TIME); + RNA_def_property_int_sdna(prop, NULL, "startstill"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests + RNA_def_property_range(prop, 0, MAXFRAME); + RNA_def_property_ui_text(prop, "Start Still", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "end_still", PROP_INT, PROP_TIME); + RNA_def_property_int_sdna(prop, NULL, "endstill"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests + RNA_def_property_range(prop, 0, MAXFRAME); + RNA_def_property_ui_text(prop, "End Still", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "channel", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "machine"); + RNA_def_property_range(prop, 0, MAXSEQ-1); + RNA_def_property_ui_text(prop, "Channel", "Y position of the sequence strip."); + RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_channel_set",NULL); // overlap test + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + /* blending */ + + prop= RNA_def_property(srna, "blend_mode", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, blend_mode_items); + RNA_def_property_ui_text(prop, "Blend Mode", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "blend_opacity", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.0f, 100.0f); + RNA_def_property_ui_text(prop, "Blend Opacity", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "effect_fader", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_float_sdna(prop, NULL, "effect_fader"); + RNA_def_property_ui_text(prop, "Effect fader position", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "use_effect_default_fade", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_EFFECT_DEFAULT_FADE); + RNA_def_property_ui_text(prop, "Use Default Fade", "Fade effect using the builtin default (usually make transition as long as effect strip)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + + prop= RNA_def_property(srna, "speed_fader", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "speed_fader"); + RNA_def_property_ui_text(prop, "Speed effect fader position", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + /* functions */ + func= RNA_def_function(srna, "getStripElem", "give_stripelem"); + RNA_def_function_ui_description(func, "Return the strip element from a given frame or None."); + prop= RNA_def_int(func, "frame", 0, -MAXFRAME, MAXFRAME, "Frame", "The frame to get the strip element from", -MAXFRAME, MAXFRAME); + RNA_def_property_flag(prop, PROP_REQUIRED); + RNA_def_function_return(func, RNA_def_pointer(func, "elem", "SequenceElement", "", "strip element of the current frame")); +} + +static void rna_def_editor(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SequenceEditor", NULL); + RNA_def_struct_ui_text(srna, "Sequence Editor", "Sequence editing data for a Scene datablock."); + RNA_def_struct_ui_icon(srna, ICON_SEQUENCE); + RNA_def_struct_sdna(srna, "Editing"); + + prop= RNA_def_property(srna, "sequences", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); + RNA_def_property_struct_type(prop, "Sequence"); + RNA_def_property_ui_text(prop, "Sequences", ""); + + prop= RNA_def_property(srna, "sequences_all", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); + RNA_def_property_struct_type(prop, "Sequence"); + RNA_def_property_ui_text(prop, "Sequences", ""); + RNA_def_property_collection_funcs(prop, "rna_SequenceEditor_sequences_all_begin", "rna_SequenceEditor_sequences_all_next", 0, 0, 0, 0, 0); + + prop= RNA_def_property(srna, "meta_stack", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "metastack", NULL); + RNA_def_property_struct_type(prop, "Sequence"); + RNA_def_property_ui_text(prop, "Meta Stack", "Meta strip stack, last is currently edited meta strip."); + RNA_def_property_collection_funcs(prop, 0, 0, 0, "rna_SequenceEditor_meta_stack_get", 0, 0, 0); + + prop= RNA_def_property(srna, "active_strip", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "act_seq"); + RNA_def_property_ui_text(prop, "Active Strip", "Sequencers active strip"); +} + +static void rna_def_filter_video(StructRNA *srna) +{ + PropertyRNA *prop; + + prop= RNA_def_property(srna, "de_interlace", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FILTERY); + RNA_def_property_ui_text(prop, "De-Interlace", "For video movies to remove fields."); + + prop= RNA_def_property(srna, "premultiply", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MAKE_PREMUL); + RNA_def_property_ui_text(prop, "Premultiply", "Convert RGB from key alpha to premultiplied alpha."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + + prop= RNA_def_property(srna, "flip_x", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FLIPX); + RNA_def_property_ui_text(prop, "Flip X", "Flip on the X axis."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "flip_y", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FLIPY); + RNA_def_property_ui_text(prop, "Flip Y", "Flip on the Y axis."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "convert_float", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MAKE_FLOAT); + RNA_def_property_ui_text(prop, "Convert Float", "Convert input to float data."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "reverse_frames", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_REVERSE_FRAMES); + RNA_def_property_ui_text(prop, "Flip Time", "Reverse frame order."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "multiply_colors", PROP_FLOAT, PROP_UNSIGNED); + RNA_def_property_float_sdna(prop, NULL, "mul"); + RNA_def_property_range(prop, 0.0f, 20.0f); + RNA_def_property_ui_text(prop, "Multiply Colors", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "strobe", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 1.0f, 30.0f); + RNA_def_property_ui_text(prop, "Strobe", "Only display every nth frame."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "use_color_balance", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_COLOR_BALANCE); + RNA_def_property_ui_text(prop, "Use Color Balance", "(3-Way color correction) on input."); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_color_balance_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "color_balance", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "strip->color_balance"); + RNA_def_property_ui_text(prop, "Color Balance", ""); + + prop= RNA_def_property(srna, "use_translation", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_TRANSFORM); + RNA_def_property_ui_text(prop, "Use Translation", "Translate image before processing."); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_translation_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "transform", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "strip->transform"); + RNA_def_property_ui_text(prop, "Transform", ""); + + prop= RNA_def_property(srna, "use_crop", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_CROP); + RNA_def_property_ui_text(prop, "Use Crop", "Crop image before processing."); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_crop_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "crop", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "strip->crop"); + RNA_def_property_ui_text(prop, "Crop", ""); +} + +static void rna_def_proxy(StructRNA *srna) +{ + PropertyRNA *prop; + + prop= RNA_def_property(srna, "use_proxy", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_PROXY); + RNA_def_property_ui_text(prop, "Use Proxy", "Use a preview proxy for this strip."); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_proxy_set"); + + prop= RNA_def_property(srna, "proxy", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "strip->proxy"); + RNA_def_property_ui_text(prop, "Proxy", ""); + + prop= RNA_def_property(srna, "proxy_custom_directory", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_PROXY_CUSTOM_DIR); + RNA_def_property_ui_text(prop, "Proxy Custom Directory", "Use a custom directory to store data."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_input(StructRNA *srna) +{ + PropertyRNA *prop; + + prop= RNA_def_property(srna, "animation_start_offset", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "anim_startofs"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap test + RNA_def_property_ui_text(prop, "Animation Start Offset", "Animation start offset (trim start)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "animation_end_offset", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "anim_endofs"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap test + RNA_def_property_ui_text(prop, "Animation End Offset", "Animation end offset (trim end)."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_image(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "ImageSequence", "Sequence"); + RNA_def_struct_ui_text(srna, "Image Sequence", "Sequence strip to load one or more images."); + RNA_def_struct_sdna(srna, "Sequence"); + + prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); + RNA_def_property_string_sdna(prop, NULL, "strip->dir"); + RNA_def_property_ui_text(prop, "Directory", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "elements", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "strip->stripdata", "strip->len"); + RNA_def_property_struct_type(prop, "SequenceElement"); + RNA_def_property_ui_text(prop, "Elements", ""); + + rna_def_filter_video(srna); + rna_def_proxy(srna); + rna_def_input(srna); +} + +static void rna_def_meta(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "MetaSequence", "Sequence"); + RNA_def_struct_ui_text(srna, "Meta Sequence", "Sequence strip to group other strips as a single sequence strip."); + RNA_def_struct_sdna(srna, "Sequence"); + + prop = RNA_def_property(srna, "sequences", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); + RNA_def_property_struct_type(prop, "Sequence"); + RNA_def_property_ui_text(prop, "Sequences", ""); + + rna_def_filter_video(srna); + rna_def_proxy(srna); + rna_def_input(srna); +} + +static void rna_def_scene(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SceneSequence", "Sequence"); + RNA_def_struct_ui_text(srna, "Scene Sequence", "Sequence strip to used the rendered image of a scene."); + RNA_def_struct_sdna(srna, "Sequence"); + + prop= RNA_def_property(srna, "scene", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Scene", "Scene that this sequence uses."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + rna_def_filter_video(srna); + rna_def_proxy(srna); + rna_def_input(srna); +} + +static void rna_def_movie(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "MovieSequence", "Sequence"); + RNA_def_struct_ui_text(srna, "Movie Sequence", "Sequence strip to load a video."); + RNA_def_struct_sdna(srna, "Sequence"); + + prop= RNA_def_property(srna, "mpeg_preseek", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "anim_preseek"); + RNA_def_property_range(prop, 0, 50); + RNA_def_property_ui_text(prop, "MPEG Preseek", "For MPEG movies, preseek this many frames."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); + RNA_def_property_string_sdna(prop, NULL, "strip->stripdata->name"); + RNA_def_property_ui_text(prop, "Filename", ""); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MovieSequence_filename_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); + RNA_def_property_string_sdna(prop, NULL, "strip->dir"); + RNA_def_property_ui_text(prop, "Directory", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + rna_def_filter_video(srna); + rna_def_proxy(srna); + rna_def_input(srna); +} + +static void rna_def_sound(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SoundSequence", "Sequence"); + RNA_def_struct_ui_text(srna, "Sound Sequence", "Sequence strip defining a sound to be played over a period of time."); + RNA_def_struct_sdna(srna, "Sequence"); + + prop= RNA_def_property(srna, "sound", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "Sound"); + RNA_def_property_ui_text(prop, "Sound", "Sound datablock used by this sequence."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); + RNA_def_property_string_sdna(prop, NULL, "strip->stripdata->name"); + RNA_def_property_ui_text(prop, "Filename", ""); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SoundSequence_filename_set"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH); + RNA_def_property_string_sdna(prop, NULL, "strip->dir"); + RNA_def_property_ui_text(prop, "Directory", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + rna_def_input(srna); + + RNA_def_struct_sdna_from(srna, "SoundHandle", "sound_handle"); + + prop= RNA_def_property(srna, "volume", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "volume"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Volume", "Playback volume of the sound"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_effect(BlenderRNA *brna) +{ + StructRNA *srna; + + srna = RNA_def_struct(brna, "EffectSequence", "Sequence"); + RNA_def_struct_ui_text(srna, "Effect Sequence", "Sequence strip applying an effect on the images created by other strips."); + RNA_def_struct_sdna(srna, "Sequence"); + + rna_def_proxy(srna); +} + +static void rna_def_plugin(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "PluginSequence", "EffectSequence"); + RNA_def_struct_ui_text(srna, "Plugin Sequence", "Sequence strip applying an effect, loaded from an external plugin."); + RNA_def_struct_sdna_from(srna, "PluginSeq", "plugin"); + + prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH); + RNA_def_property_string_sdna(prop, NULL, "name"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Filename", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + /* plugin properties need custom wrapping code like ID properties */ +} + +static void rna_def_wipe(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + static const EnumPropertyItem wipe_type_items[]= { + {0, "SINGLE", 0, "Single", ""}, + {1, "DOUBLE", 0, "Double", ""}, + /* not used yet {2, "BOX", 0, "Box", ""}, */ + /* not used yet {3, "CROSS", 0, "Cross", ""}, */ + {4, "IRIS", 0, "Iris", ""}, + {5, "CLOCK", 0, "Clock", ""}, + {0, NULL, 0, NULL, NULL} + }; + + static const EnumPropertyItem wipe_direction_items[]= { + {0, "OUT", 0, "Out", ""}, + {1, "IN", 0, "In", ""}, + {0, NULL, 0, NULL, NULL} + }; + + srna = RNA_def_struct(brna, "WipeSequence", "EffectSequence"); + RNA_def_struct_ui_text(srna, "Wipe Sequence", "Sequence strip creating a wipe transition."); + RNA_def_struct_sdna_from(srna, "WipeVars", "effectdata"); + + prop= RNA_def_property(srna, "blur_width", PROP_FLOAT, PROP_UNSIGNED); + RNA_def_property_float_sdna(prop, NULL, "edgeWidth"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Blur Width", "Width of the blur edge, in percentage relative to the image size."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "angle"); + RNA_def_property_range(prop, -90.0f, 90.0f); + RNA_def_property_ui_text(prop, "Angle", "Edge angle."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "direction", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "forward"); + RNA_def_property_enum_items(prop, wipe_direction_items); + RNA_def_property_ui_text(prop, "Direction", "Wipe direction."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "transition_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "wipetype"); + RNA_def_property_enum_items(prop, wipe_type_items); + RNA_def_property_ui_text(prop, "Transition Type", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_glow(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "GlowSequence", "EffectSequence"); + RNA_def_struct_ui_text(srna, "Glow Sequence", "Sequence strip creating a glow effect."); + RNA_def_struct_sdna_from(srna, "GlowVars", "effectdata"); + + prop= RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "fMini"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Threshold", "Minimum intensity to trigger a glow"); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "clamp", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "fClamp"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Clamp", "rightness limit of intensity."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "boost_factor", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "fBoost"); + RNA_def_property_range(prop, 0.0f, 10.0f); + RNA_def_property_ui_text(prop, "Boost Factor", "Brightness multiplier."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "blur_distance", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "dDist"); + RNA_def_property_range(prop, 0.5f, 20.0f); + RNA_def_property_ui_text(prop, "Blur Distance", "Radius of glow effect."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "quality", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "dQuality"); + RNA_def_property_range(prop, 1, 5); + RNA_def_property_ui_text(prop, "Quality", "Accuracy of the blur effect."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "only_boost", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "bNoComp", 0); + RNA_def_property_ui_text(prop, "Only Boost", "Show the glow buffer only."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_transform(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + static const EnumPropertyItem interpolation_items[]= { + {0, "NONE", 0, "None", "No interpolation."}, + {1, "BILINEAR", 0, "Bilinear", "Bilinear interpolation."}, + {2, "BICUBIC", 0, "Bicubic", "Bicubic interpolation."}, + {0, NULL, 0, NULL, NULL} + }; + + static const EnumPropertyItem translation_unit_items[]= { + {0, "PIXELS", 0, "Pixels", ""}, + {1, "PERCENT", 0, "Percent", ""}, + {0, NULL, 0, NULL, NULL} + }; + + srna = RNA_def_struct(brna, "TransformSequence", "EffectSequence"); + RNA_def_struct_ui_text(srna, "Transform Sequence", "Sequence strip applying affine transformations to other strips."); + RNA_def_struct_sdna_from(srna, "TransformVars", "effectdata"); + + prop= RNA_def_property(srna, "scale_start_x", PROP_FLOAT, PROP_UNSIGNED); + RNA_def_property_float_sdna(prop, NULL, "ScalexIni"); + RNA_def_property_ui_text(prop, "Scale X", ""); + RNA_def_property_ui_range(prop, 0, 10, 3, 10); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "scale_start_y", PROP_FLOAT, PROP_UNSIGNED); + RNA_def_property_float_sdna(prop, NULL, "ScaleyIni"); + RNA_def_property_ui_text(prop, "Scale Y", ""); + RNA_def_property_ui_range(prop, 0, 10, 3, 10); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "uniform_scale", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "uniform_scale", 0); + RNA_def_property_ui_text(prop, "Uniform Scale", "Scale uniformly, preserving aspect ratio."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "translate_start_x", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "xIni"); + RNA_def_property_ui_text(prop, "Translate X", ""); + RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "translate_start_y", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "yIni"); + RNA_def_property_ui_text(prop, "Translate Y", ""); + RNA_def_property_ui_range(prop, -500.0f, 500.0f, 3, 10); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "rotation_start", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "rotIni"); + RNA_def_property_range(prop, -360.0f, 360.0f); + RNA_def_property_ui_text(prop, "Rotation", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "translation_unit", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "percent"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* not meant to be animated */ + RNA_def_property_enum_items(prop, translation_unit_items); + RNA_def_property_ui_text(prop, "Translation Unit", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "interpolation", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, interpolation_items); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* not meant to be animated */ + RNA_def_property_ui_text(prop, "Interpolation", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_solid_color(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "ColorSequence", "EffectSequence"); + RNA_def_struct_ui_text(srna, "Color Sequence", "Sequence strip creating an image filled with a single color."); + RNA_def_struct_sdna_from(srna, "SolidColorVars", "effectdata"); + + prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); + RNA_def_property_float_sdna(prop, NULL, "col"); + RNA_def_property_ui_text(prop, "Color", ""); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +static void rna_def_speed_control(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "SpeedControlSequence", "EffectSequence"); + RNA_def_struct_ui_text(srna, "SpeedControl Sequence", "Sequence strip to control the speed of other strips."); + RNA_def_struct_sdna_from(srna, "SpeedControlVars", "effectdata"); + + prop= RNA_def_property(srna, "global_speed", PROP_FLOAT, PROP_UNSIGNED); + RNA_def_property_float_sdna(prop, NULL, "globalSpeed"); + RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); /* seq->facf0 is used to animate this */ + RNA_def_property_ui_text(prop, "Global Speed", ""); + RNA_def_property_ui_range(prop, 0.0f, 100.0f, 1, 0); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "curve_velocity", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_INTEGRATE); + RNA_def_property_ui_text(prop, "F-Curve Velocity", "Interpret the F-Curve value as a velocity instead of a frame number."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "frame_blending", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_BLEND); + RNA_def_property_ui_text(prop, "Frame Blending", "Blend two frames into the target for a smoother result."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "curve_compress_y", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flags", SEQ_SPEED_COMPRESS_IPO_Y); + RNA_def_property_ui_text(prop, "F-Curve Compress Y", "Scale F-Curve value to get the target frame number, F-Curve value runs from 0.0 to 1.0."); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); +} + +void RNA_def_sequencer(BlenderRNA *brna) +{ + rna_def_strip_element(brna); + rna_def_strip_proxy(brna); + rna_def_strip_color_balance(brna); + rna_def_strip_crop(brna); + rna_def_strip_transform(brna); + + rna_def_sequence(brna); + rna_def_editor(brna); + + rna_def_image(brna); + rna_def_meta(brna); + rna_def_scene(brna); + rna_def_movie(brna); + rna_def_sound(brna); + rna_def_effect(brna); + rna_def_plugin(brna); + rna_def_wipe(brna); + rna_def_glow(brna); + rna_def_transform(brna); + rna_def_solid_color(brna); + rna_def_speed_control(brna); +} + +#endif + -- cgit v1.2.3 From ca16488e813ee58491ccca79532a48d098aaacd5 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Sun, 13 Dec 2009 17:46:30 +0000 Subject: MSVC 9 compile fixes and cleanups * added renamed files in revision 25337 * renamed BLI_util.h -> BLI_path_util.h for consistency * cleanup of #includes: removed BLI_blenlib.h in favour of direct includes of the needed headerfiles in a few places. * removed debug print in sequencer.c * added missing include in blenkernel/blender.c -> bad dependency, needs to be fixed still --- source/blender/blenkernel/intern/blender.c | 2 + source/blender/blenkernel/intern/sequencer.c | 13 +- source/blender/blenlib/BLI_blenlib.h | 2 +- source/blender/blenlib/BLI_path_util.h | 154 ++++++++++++++++++++++++ source/blender/blenlib/BLI_util.h | 154 ------------------------ source/blender/blenlib/intern/BLI_bfile.c | 2 +- source/blender/blenlib/intern/path_util.c | 7 +- source/blender/blenlib/intern/scanfill.c | 5 +- source/blender/blenlib/intern/storage.c | 10 +- source/blender/blenlib/intern/winstuff.c | 4 +- source/blender/collada/DocumentExporter.cpp | 2 +- source/blender/collada/DocumentImporter.cpp | 2 +- source/blender/editors/object/object_modifier.c | 2 +- source/blender/python/intern/bpy_interface.c | 2 +- 14 files changed, 182 insertions(+), 179 deletions(-) create mode 100644 source/blender/blenlib/BLI_path_util.h delete mode 100644 source/blender/blenlib/BLI_util.h (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index afb1335b86b..6181712f1be 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -94,6 +94,8 @@ #include "BKE_utildefines.h" // O_BINARY FALSE +#include "WM_api.h" // XXXXX BAD, very BAD dependency (bad level call) - remove asap, elubie + Global G; UserDef U; ListBase WMlist= {NULL, NULL}; diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 7450e810b89..2faaa2fb5f5 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -49,14 +49,17 @@ #include "RNA_access.h" #include "RE_pipeline.h" -#include "BLI_blenlib.h" -#include "BLI_util.h" +#include "BLI_fileops.h" +#include "BLI_listbase.h" +#include "BLI_path_util.h" +#include "BLI_string.h" +#include "BLI_threads.h" +#include #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" -#include "BLI_threads.h" -#include + #include "BKE_context.h" #include "BKE_sound.h" @@ -472,8 +475,6 @@ void calc_sequence_disp(Sequence *seq) void calc_sequence(Sequence *seq) { - printf(" ddd %s\n", seq->name); - Sequence *seqm; int min, max; diff --git a/source/blender/blenlib/BLI_blenlib.h b/source/blender/blenlib/BLI_blenlib.h index cb5f68ed1e0..70f15f0f3af 100644 --- a/source/blender/blenlib/BLI_blenlib.h +++ b/source/blender/blenlib/BLI_blenlib.h @@ -78,7 +78,7 @@ extern "C" { #include "BLI_string.h" -#include "BLI_util.h" +#include "BLI_path_util.h" #include "BLI_storage.h" diff --git a/source/blender/blenlib/BLI_path_util.h b/source/blender/blenlib/BLI_path_util.h new file mode 100644 index 00000000000..ca483903d46 --- /dev/null +++ b/source/blender/blenlib/BLI_path_util.h @@ -0,0 +1,154 @@ +/** + * blenlib/BLI_storage_types.h + * + * Some types for dealing with directories + * + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ +#ifndef BLI_UTIL_H +#define BLI_UTIL_H + +/* XXX doesn't seem to be used, marded for removal +#define mallocstructN(x,y,name) (x*)MEM_mallocN((y)* sizeof(x),name) +#define callocstructN(x,y,name) (x*)MEM_callocN((y)* sizeof(x),name) +*/ + +struct ListBase; +struct direntry; + +char *BLI_gethome(void); +char *BLI_gethome_folder(char *folder_name, int flag); + +/* BLI_gethome_folder flag */ +#define BLI_GETHOME_LOCAL 1<<1 /* relative location for portable binaries */ +#define BLI_GETHOME_SYSTEM 1<<2 /* system location, or set from the BLENDERPATH env variable (UNIX only) */ +#define BLI_GETHOME_USER 1<<3 /* home folder ~/.blender */ +#define BLI_GETHOME_ALL (BLI_GETHOME_SYSTEM|BLI_GETHOME_LOCAL|BLI_GETHOME_USER) + +void BLI_setenv(const char *env, const char *val); +void BLI_setenv_if_new(const char *env, const char* val); + +void BLI_make_file_string(const char *relabase, char *string, const char *dir, const char *file); +void BLI_make_exist(char *dir); +void BLI_make_existing_file(char *name); +void BLI_split_dirfile(char *string, char *dir, char *file); +void BLI_split_dirfile_basic(const char *string, char *dir, char *file); +void BLI_join_dirfile(char *string, const char *dir, const char *file); +void BLI_getlastdir(const char* dir, char *last, int maxlen); +int BLI_testextensie(const char *str, const char *ext); +void BLI_uniquename(struct ListBase *list, void *vlink, const char defname[], char delim, short name_offs, short len); +void BLI_newname(char * name, int add); +int BLI_stringdec(char *string, char *kop, char *start, unsigned short *numlen); +void BLI_stringenc(char *string, char *kop, char *start, unsigned short numlen, int pic); +void BLI_splitdirstring(char *di,char *fi); + +/* make sure path separators conform to system one */ +void BLI_clean(char *path); + +/** + * dir can be any input, like from buttons, and this function + * converts it to a regular full path. + * Also removes garbage from directory paths, like /../ or double slashes etc + */ +void BLI_cleanup_file(const char *relabase, char *dir); +void BLI_cleanup_dir(const char *relabase, char *dir); /* same as above but adds a trailing slash */ + +/* go back one directory */ +int BLI_parent_dir(char *path); + +/* return whether directory is root and thus has no parent dir */ +int BLI_has_parent(char *path); + + /** + * Blender's path code replacement function. + * Bases @a path strings leading with "//" by the + * directory @a basepath, and replaces instances of + * '#' with the @a framenum. Results are written + * back into @a path. + * + * @a path The path to convert + * @a basepath The directory to base relative paths with. + * @a framenum The framenumber to replace the frame code with. + * @retval Returns true if the path was relative (started with "//"). + */ +int BLI_convertstringcode(char *path, const char *basepath); +int BLI_convertstringframe(char *path, int frame); +int BLI_convertstringcwd(char *path); + +void BLI_makestringcode(const char *relfile, char *file); + + /** + * Change every @a from in @a string into @a to. The + * result will be in @a string + * + * @a string The string to work on + * @a from The character to replace + * @a to The character to replace with + */ +void BLI_char_switch(char *string, char from, char to); + +/** + * Checks if name is a fully qualified filename to an executable. + * If not it searches $PATH for the file. On Windows it also + * adds the correct extension (.com .exe etc) from + * $PATHEXT if necessary. Also on Windows it translates + * the name to its 8.3 version to prevent problems with + * spaces and stuff. Final result is returned in fullname. + * + * @param fullname The full path and full name of the executable + * @param name The name of the executable (usually argv[0]) to be checked + */ +void BLI_where_am_i(char *fullname, const char *name); + +char *get_install_dir(void); + /** + * Gets the temp directory when blender first runs. + * If the default path is not found, use try $TEMP + * + * Also make sure the temp dir has a trailing slash + * + * @param fullname The full path to the temp directory + */ +void BLI_where_is_temp(char *fullname, int usertemp); + + + /** + * determines the full path to the application bundle on OS X + * + * @return path to application bundle + */ +#ifdef __APPLE__ +char* BLI_getbundle(void); +#endif + +#ifdef WITH_ICONV +void BLI_string_to_utf8(char *original, char *utf_8, const char *code); +#endif + +#endif + diff --git a/source/blender/blenlib/BLI_util.h b/source/blender/blenlib/BLI_util.h deleted file mode 100644 index ca483903d46..00000000000 --- a/source/blender/blenlib/BLI_util.h +++ /dev/null @@ -1,154 +0,0 @@ -/** - * blenlib/BLI_storage_types.h - * - * Some types for dealing with directories - * - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef BLI_UTIL_H -#define BLI_UTIL_H - -/* XXX doesn't seem to be used, marded for removal -#define mallocstructN(x,y,name) (x*)MEM_mallocN((y)* sizeof(x),name) -#define callocstructN(x,y,name) (x*)MEM_callocN((y)* sizeof(x),name) -*/ - -struct ListBase; -struct direntry; - -char *BLI_gethome(void); -char *BLI_gethome_folder(char *folder_name, int flag); - -/* BLI_gethome_folder flag */ -#define BLI_GETHOME_LOCAL 1<<1 /* relative location for portable binaries */ -#define BLI_GETHOME_SYSTEM 1<<2 /* system location, or set from the BLENDERPATH env variable (UNIX only) */ -#define BLI_GETHOME_USER 1<<3 /* home folder ~/.blender */ -#define BLI_GETHOME_ALL (BLI_GETHOME_SYSTEM|BLI_GETHOME_LOCAL|BLI_GETHOME_USER) - -void BLI_setenv(const char *env, const char *val); -void BLI_setenv_if_new(const char *env, const char* val); - -void BLI_make_file_string(const char *relabase, char *string, const char *dir, const char *file); -void BLI_make_exist(char *dir); -void BLI_make_existing_file(char *name); -void BLI_split_dirfile(char *string, char *dir, char *file); -void BLI_split_dirfile_basic(const char *string, char *dir, char *file); -void BLI_join_dirfile(char *string, const char *dir, const char *file); -void BLI_getlastdir(const char* dir, char *last, int maxlen); -int BLI_testextensie(const char *str, const char *ext); -void BLI_uniquename(struct ListBase *list, void *vlink, const char defname[], char delim, short name_offs, short len); -void BLI_newname(char * name, int add); -int BLI_stringdec(char *string, char *kop, char *start, unsigned short *numlen); -void BLI_stringenc(char *string, char *kop, char *start, unsigned short numlen, int pic); -void BLI_splitdirstring(char *di,char *fi); - -/* make sure path separators conform to system one */ -void BLI_clean(char *path); - -/** - * dir can be any input, like from buttons, and this function - * converts it to a regular full path. - * Also removes garbage from directory paths, like /../ or double slashes etc - */ -void BLI_cleanup_file(const char *relabase, char *dir); -void BLI_cleanup_dir(const char *relabase, char *dir); /* same as above but adds a trailing slash */ - -/* go back one directory */ -int BLI_parent_dir(char *path); - -/* return whether directory is root and thus has no parent dir */ -int BLI_has_parent(char *path); - - /** - * Blender's path code replacement function. - * Bases @a path strings leading with "//" by the - * directory @a basepath, and replaces instances of - * '#' with the @a framenum. Results are written - * back into @a path. - * - * @a path The path to convert - * @a basepath The directory to base relative paths with. - * @a framenum The framenumber to replace the frame code with. - * @retval Returns true if the path was relative (started with "//"). - */ -int BLI_convertstringcode(char *path, const char *basepath); -int BLI_convertstringframe(char *path, int frame); -int BLI_convertstringcwd(char *path); - -void BLI_makestringcode(const char *relfile, char *file); - - /** - * Change every @a from in @a string into @a to. The - * result will be in @a string - * - * @a string The string to work on - * @a from The character to replace - * @a to The character to replace with - */ -void BLI_char_switch(char *string, char from, char to); - -/** - * Checks if name is a fully qualified filename to an executable. - * If not it searches $PATH for the file. On Windows it also - * adds the correct extension (.com .exe etc) from - * $PATHEXT if necessary. Also on Windows it translates - * the name to its 8.3 version to prevent problems with - * spaces and stuff. Final result is returned in fullname. - * - * @param fullname The full path and full name of the executable - * @param name The name of the executable (usually argv[0]) to be checked - */ -void BLI_where_am_i(char *fullname, const char *name); - -char *get_install_dir(void); - /** - * Gets the temp directory when blender first runs. - * If the default path is not found, use try $TEMP - * - * Also make sure the temp dir has a trailing slash - * - * @param fullname The full path to the temp directory - */ -void BLI_where_is_temp(char *fullname, int usertemp); - - - /** - * determines the full path to the application bundle on OS X - * - * @return path to application bundle - */ -#ifdef __APPLE__ -char* BLI_getbundle(void); -#endif - -#ifdef WITH_ICONV -void BLI_string_to_utf8(char *original, char *utf_8, const char *code); -#endif - -#endif - diff --git a/source/blender/blenlib/intern/BLI_bfile.c b/source/blender/blenlib/intern/BLI_bfile.c index d9f6c8ad96f..8e3235bbf23 100644 --- a/source/blender/blenlib/intern/BLI_bfile.c +++ b/source/blender/blenlib/intern/BLI_bfile.c @@ -41,7 +41,7 @@ #include "MEM_guardedalloc.h" #include "BKE_utildefines.h" #include "BKE_blender.h" -#include "BLI_util.h" +#include "BLI_path_util.h" #include "BLI_fileops.h" #include "BLI_storage.h" #include "BLI_bfile.h" diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c index bf7a4f77f9e..4f987fcd31e 100644 --- a/source/blender/blenlib/intern/path_util.c +++ b/source/blender/blenlib/intern/path_util.c @@ -42,12 +42,13 @@ #include "DNA_listBase.h" #include "DNA_userdef_types.h" -#include "BLI_blenlib.h" +#include "BLI_dynamiclist.h" +#include "BLI_fileops.h" +#include "BLI_path_util.h" +#include "BLI_string.h" #include "BLI_storage.h" #include "BLI_storage_types.h" -#include "BLI_dynamiclist.h" -#include "BLI_util.h" #include "BKE_utildefines.h" diff --git a/source/blender/blenlib/intern/scanfill.c b/source/blender/blenlib/intern/scanfill.c index e54382c9392..32e1c7c810e 100644 --- a/source/blender/blenlib/intern/scanfill.c +++ b/source/blender/blenlib/intern/scanfill.c @@ -34,12 +34,11 @@ #include "MEM_guardedalloc.h" -#include "BLI_blenlib.h" - -#include "BLI_util.h" #include "DNA_listBase.h" #include "DNA_mesh_types.h" + #include "BLI_editVert.h" +#include "BLI_listbase.h" #include "BLI_math.h" #include "BLI_scanfill.h" #include "BLI_callbacks.h" diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c index dbf1f5100a6..c830e5fc2c8 100644 --- a/source/blender/blenlib/intern/storage.c +++ b/source/blender/blenlib/intern/storage.c @@ -87,13 +87,13 @@ #include "MEM_guardedalloc.h" #include "DNA_listBase.h" -#include "BLI_blenlib.h" -#include "BLI_storage.h" -#include "BLI_storage_types.h" -#include "BLI_util.h" +#include "BLI_listbase.h" #include "BLI_linklist.h" - +#include "BLI_path_util.h" +#include "BLI_storage.h" +#include "BLI_storage_types.h" +#include "BLI_string.h" #include "BKE_utildefines.h" /* vars: */ diff --git a/source/blender/blenlib/intern/winstuff.c b/source/blender/blenlib/intern/winstuff.c index 16295fc2680..107ece8ebed 100644 --- a/source/blender/blenlib/intern/winstuff.c +++ b/source/blender/blenlib/intern/winstuff.c @@ -39,8 +39,8 @@ #include "MEM_guardedalloc.h" -#include "BLI_blenlib.h" -#include "BLI_util.h" +#include "BLI_path_util.h" +#include "BLI_string.h" #define WIN32_SKIP_HKEY_PROTECTION // need to use HKEY #include "BLI_winstuff.h" diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index c3550dfd408..d2543423097 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -21,7 +21,7 @@ extern "C" { #include "BKE_DerivedMesh.h" #include "BKE_fcurve.h" -#include "BLI_util.h" +#include "BLI_path_util.h" #include "BLI_fileops.h" #include "ED_keyframing.h" } diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index 9ebcc8b191f..575160ff84e 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -52,7 +52,7 @@ extern "C" #include "BKE_texture.h" #include "BKE_fcurve.h" #include "BKE_depsgraph.h" -#include "BLI_util.h" +#include "BLI_path_util.h" #include "BKE_displist.h" #include "BLI_math.h" #include "BKE_scene.h" diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index a1e70c011fe..06c31e9f1a9 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -44,7 +44,7 @@ #include "BLI_math.h" #include "BLI_listbase.h" #include "BLI_string.h" -#include "BLI_util.h" +#include "BLI_path_util.h" #include "BKE_action.h" #include "BKE_curve.h" diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 7b44f8e6ba1..44e3c5a2dd5 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -54,7 +54,7 @@ #include "MEM_guardedalloc.h" -#include "BLI_util.h" +#include "BLI_path_util.h" #include "BLI_storage.h" #include "BLI_fileops.h" #include "BLI_string.h" -- cgit v1.2.3 From d31d6e71e27db28dde976d0b2e574dced5a464d2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 13 Dec 2009 19:25:05 +0000 Subject: added include path for bad level call --- source/blender/blenkernel/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 7bd6314097b..b1cbd16512e 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -34,6 +34,7 @@ SET(INC ../nodes ../../../extern/glew/include ../gpu ../makesrna ../../../intern/smoke/extern ../../../intern/bsp/extern ../blenfont ../../../intern/audaspace/intern + ../../../source/blender/windowmanager # XXX - BAD LEVEL CALL WM_api.h ${ZLIB_INC} ) -- cgit v1.2.3 From c8fe0daa918799738d409f2cd331bb39208e86e1 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Sun, 13 Dec 2009 19:45:23 +0000 Subject: fixing scons and makefile compile. * added include path due to added bad level #include "WM_api.h" --- source/blender/blenkernel/SConscript | 3 ++- source/blender/blenkernel/intern/Makefile | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript index 81b74cc9c42..508ed58165f 100644 --- a/source/blender/blenkernel/SConscript +++ b/source/blender/blenkernel/SConscript @@ -3,7 +3,8 @@ Import ('env') sources = env.Glob('intern/*.c') -incs = '. #/intern/guardedalloc #/intern/memutil ../editors/include ../blenlib ../blenfont ../makesdna' +incs = '. #/intern/guardedalloc #/intern/memutil ../editors/include' +incs += ' ../blenlib ../blenfont ../makesdna ../windowmanager' incs += ' ../render/extern/include #/intern/decimation/extern ../makesrna' incs += ' ../imbuf ../ikplugin ../avi #/intern/elbeem/extern ../nodes' incs += ' #/intern/iksolver/extern ../blenloader' diff --git a/source/blender/blenkernel/intern/Makefile b/source/blender/blenkernel/intern/Makefile index 26b9b9ef0dd..95c82d31890 100644 --- a/source/blender/blenkernel/intern/Makefile +++ b/source/blender/blenkernel/intern/Makefile @@ -53,6 +53,8 @@ CPPFLAGS += -I../../blenlib CPPFLAGS += -I../../blenloader CPPFLAGS += -I../../python CPPFLAGS += -I../../blenfont +# This is bad level, remove eventually +CPPFLAGS += -I../../windowmanager # also avi is used CPPFLAGS += -I../../avi CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include -- cgit v1.2.3 From 3f612b6ea5b15b0a868f1472053378949722c88a Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Sun, 13 Dec 2009 23:30:18 +0000 Subject: Description and more presets for animation players (rv / framecycler). Also put a bit more logic for guessing player paths based on my system. If anyone can make this a bit more clever/bulletproof, please feel free to get involved in it, it's all python! --- source/blender/editors/interface/resources.c | 3 +++ source/blender/makesrna/intern/rna_userdef.c | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 809b3387f28..b2ae5572a05 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1283,6 +1283,9 @@ void init_userdef_do_versions(void) if (U.dbl_click_time == 0) { U.dbl_click_time = 350; } + if (U.anim_player_preset == 0) { + U.anim_player_preset =1 ; + } /* funny name, but it is GE stuff, moves userdef stuff to engine */ // XXX space_set_commmandline_options(); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 21e601c3ba3..d3329907939 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2360,9 +2360,11 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) static EnumPropertyItem anim_player_presets[] = { //{0, "INTERNAL", 0, "Internal", "Built-in animation player"}, // doesn't work yet! - {0, "BLENDER24", 0, "Blender 2.4", "Blender command line animation playback - path to Blender 2.4"}, + {1, "BLENDER24", 0, "Blender 2.4", "Blender command line animation playback - path to Blender 2.4"}, {2, "DJV", 0, "Djv", "Open source frame player: http://djv.sourceforge.net"}, - {3, "CUSTOM", 0, "Custom", "Custom animation player executable path"}, + {3, "FRAMECYCLER", 0, "FrameCycler", "Frame player from IRIDAS"}, + {4, "RV", 0, "rv", "Frame player from Tweak Software"}, + {50, "CUSTOM", 0, "Custom", "Custom animation player executable path"}, {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "UserPreferencesFilePaths", NULL); @@ -2430,6 +2432,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "anim_player_preset"); RNA_def_property_enum_items(prop, anim_player_presets); RNA_def_property_ui_text(prop, "Animation Player Preset", "Preset configs for external animation players"); + RNA_def_property_enum_default(prop, 1); /* set default to blender 2.4 player until an internal one is back */ /* Autosave */ -- cgit v1.2.3 From a4d52bd0fd180e2934ebed21a7d2aab84cc5b5a9 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Sun, 13 Dec 2009 23:51:41 +0000 Subject: patch [#20342] Notifier patch for modifier rename and particle system rename by 'ThatHaze'. thanks! --- source/blender/editors/space_action/space_action.c | 18 +++++++-------- .../blender/editors/space_buttons/space_buttons.c | 5 ++++- source/blender/editors/space_graph/space_graph.c | 11 ++++----- source/blender/editors/space_logic/space_logic.c | 7 ++---- source/blender/editors/space_nla/space_nla.c | 15 +++++-------- source/blender/editors/space_node/space_node.c | 7 ++---- source/blender/editors/space_outliner/outliner.c | 2 +- .../editors/space_outliner/space_outliner.c | 8 +++++-- .../editors/space_sequencer/space_sequencer.c | 14 ++++-------- source/blender/editors/space_view3d/space_view3d.c | 4 ++-- source/blender/makesrna/intern/rna_ID.c | 2 +- source/blender/makesrna/intern/rna_modifier.c | 1 + source/blender/makesrna/intern/rna_particle.c | 1 + source/blender/windowmanager/WM_types.h | 26 +++++++++------------- 14 files changed, 54 insertions(+), 67 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 0cbc2ce9078..08ed44a54f9 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -289,14 +289,15 @@ static void action_channel_area_listener(ARegion *ar, wmNotifier *wmn) case ND_KEYS: ED_region_tag_redraw(ar); break; + case ND_MODIFIER: + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); + break; } break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; default: if(wmn->data==ND_KEYS) @@ -339,11 +340,8 @@ static void action_main_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; default: diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index f6b376f6e8e..160343cf940 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -271,6 +271,9 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) case ND_BONE_ACTIVE: case ND_BONE_SELECT: case ND_MODIFIER: + if(wmn->action == NA_RENAME) + ED_area_tag_redraw(sa); + break; case ND_CONSTRAINT: ED_area_tag_redraw(sa); break; @@ -311,7 +314,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) ED_area_tag_redraw(sa); break; case NC_ID: - if(wmn->data == ND_ID_RENAME) + if(wmn->action == NA_RENAME) ED_area_tag_redraw(sa); break; } diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index d77caa4c0e3..3023ec89258 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -398,6 +398,10 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn) case ND_KEYS: ED_region_tag_redraw(ar); break; + case ND_MODIFIER: + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); + break; } break; case NC_NODE: @@ -408,11 +412,8 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; default: if(wmn->data==ND_KEYS) diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c index ed8c7f2e4e7..c5b18d5b40e 100644 --- a/source/blender/editors/space_logic/space_logic.c +++ b/source/blender/editors/space_logic/space_logic.c @@ -218,11 +218,8 @@ static void logic_listener(ARegion *ar, wmNotifier *wmn) case NC_OBJECT: break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; } } diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c index 8aceb647fe2..a799e265b72 100644 --- a/source/blender/editors/space_nla/space_nla.c +++ b/source/blender/editors/space_nla/space_nla.c @@ -423,11 +423,8 @@ static void nla_main_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; default: if(wmn->data==ND_KEYS) @@ -459,12 +456,10 @@ static void nla_channel_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; + default: if(wmn->data==ND_KEYS) ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 64db1520ba1..dfdd4ea6657 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -315,11 +315,8 @@ static void node_region_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; } } diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 750861ddace..f3485328c52 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -4747,7 +4747,7 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname) case ID_SCE: WM_event_add_notifier(C, NC_SCENE, NULL); break; default: - WM_event_add_notifier(C, NC_ID|ND_ID_RENAME, NULL); break; + WM_event_add_notifier(C, NC_ID|NA_RENAME, NULL); break; } /* Check the library target exists */ if (te->idcode == ID_LI) { diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index 31de6839468..469fe148b97 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -133,6 +133,10 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) case ND_TRANSFORM: ED_region_tag_redraw(ar); break; + case ND_MODIFIER: + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); + break; } case NC_GROUP: /* all actions now, todo: check outliner view mode? */ @@ -148,9 +152,9 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case NC_ID: - if(wmn->data == ND_ID_RENAME) + if(wmn->action == NA_RENAME) ED_region_tag_redraw(ar); - break; + break; } } diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index 5be9fdee5a9..1e2fc1f59d3 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -242,11 +242,8 @@ static void sequencer_main_area_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; } } @@ -284,11 +281,8 @@ static void sequencer_buttons_area_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case NC_ID: - switch(wmn->data) { - case ND_ID_RENAME: - ED_region_tag_redraw(ar); - break; - } + if(wmn->action == NA_RENAME) + ED_region_tag_redraw(ar); break; } } diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index bd277f68513..e65cb98e665 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -518,7 +518,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case NC_ID: - if(wmn->data == ND_ID_RENAME) + if(wmn->action == NA_RENAME) ED_region_tag_redraw(ar); break; } @@ -644,7 +644,7 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case NC_ID: - if(wmn->data == ND_ID_RENAME) + if(wmn->action == NA_RENAME) ED_region_tag_redraw(ar); break; } diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index ed73ddef3f5..32b6de40a03 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -356,7 +356,7 @@ static void rna_def_ID(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Name", "Unique datablock ID name."); RNA_def_property_string_funcs(prop, "rna_ID_name_get", "rna_ID_name_length", "rna_ID_name_set"); RNA_def_property_string_maxlength(prop, sizeof(((ID*)NULL)->name)-2); - RNA_def_property_update(prop, NC_ID|ND_ID_RENAME, NULL); + RNA_def_property_update(prop, NC_ID|NA_RENAME, NULL); RNA_def_struct_name_property(srna, prop); prop= RNA_def_property(srna, "users", PROP_INT, PROP_UNSIGNED); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index aee2b048f6b..2754341810c 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -2016,6 +2016,7 @@ void RNA_def_modifier(BlenderRNA *brna) prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Modifier_name_set"); RNA_def_property_ui_text(prop, "Name", "Modifier name."); + RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER|NA_RENAME, NULL); RNA_def_struct_name_property(srna, prop); /* enums */ diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index 4ff42bbb7c2..c5b1aafb1a3 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -1904,6 +1904,7 @@ static void rna_def_particle_system(BlenderRNA *brna) prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Name", "Particle system name."); + RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER|NA_RENAME, NULL); RNA_def_struct_name_property(srna, prop); /* access to particle settings is redirected through functions */ diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 160f9cccf6c..2a742b29d1c 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -218,10 +218,6 @@ typedef struct wmNotifier { /* NC_NODE Nodes */ #define ND_NODE_SELECT (1<<16) - /* NC_ID IDs */ -#define ND_ID_RENAME (1<<16) - - /* NC_SPACE */ #define ND_SPACE_CONSOLE (1<<16) /* general redraw */ #define ND_SPACE_CONSOLE_REPORT (2<<16) /* update for reports, could specify type */ @@ -245,17 +241,17 @@ typedef struct wmNotifier { #define NOTE_SUBTYPE 0x0000FF00 /* subtype scene mode */ -#define NS_MODE_OBJECT (1<<8) - -#define NS_EDITMODE_MESH (2<<8) -#define NS_EDITMODE_CURVE (3<<8) -#define NS_EDITMODE_SURFACE (4<<8) -#define NS_EDITMODE_TEXT (5<<8) -#define NS_EDITMODE_MBALL (6<<8) -#define NS_EDITMODE_LATTICE (7<<8) +#define NS_MODE_OBJECT (1<<8) + +#define NS_EDITMODE_MESH (2<<8) +#define NS_EDITMODE_CURVE (3<<8) +#define NS_EDITMODE_SURFACE (4<<8) +#define NS_EDITMODE_TEXT (5<<8) +#define NS_EDITMODE_MBALL (6<<8) +#define NS_EDITMODE_LATTICE (7<<8) #define NS_EDITMODE_ARMATURE (8<<8) -#define NS_MODE_POSE (9<<8) -#define NS_MODE_PARTICLE (10<<8) +#define NS_MODE_POSE (9<<8) +#define NS_MODE_PARTICLE (10<<8) /* action classification */ @@ -264,7 +260,7 @@ typedef struct wmNotifier { #define NA_EVALUATED 2 #define NA_ADDED 3 #define NA_REMOVED 4 - +#define NA_RENAME 5 /* ************** Gesture Manager data ************** */ -- cgit v1.2.3 From 2c3eb59f0f76482cec9a65e311704b2e48936364 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 14 Dec 2009 03:20:17 +0000 Subject: A few KeyingSet + Transform Tweaks: Autokeying for transform functions now gets context-info, allowing for bone paths to be recalculated. However, the main purpose of this is to allow KeyingSets to eventually have poll functions. --- source/blender/editors/animation/keyingsets.c | 72 +++----------- source/blender/editors/transform/transform.c | 4 +- source/blender/editors/transform/transform.h | 6 +- .../editors/transform/transform_conversions.c | 108 +++++---------------- .../blender/editors/transform/transform_generics.c | 4 +- 5 files changed, 46 insertions(+), 148 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c index c3606a03d1e..afd693d7981 100644 --- a/source/blender/editors/animation/keyingsets.c +++ b/source/blender/editors/animation/keyingsets.c @@ -1318,7 +1318,7 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet * provided by the user, and is stored, ready to use, in the KeyingSet paths. */ for (ksp= ks->paths.first; ksp; ksp= ksp->next) { - int arraylen, i; + int i; /* get pointer to name of group to add channels to */ if (ksp->groupmode == KSP_GROUP_NONE) @@ -1328,36 +1328,14 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet else groupname= ksp->group; - /* init arraylen and i - arraylen should be greater than i so that - * normal non-array entries get keyframed correctly - */ - i= ksp->array_index; - arraylen= i; + /* passing -1 as the array_index results in the entire array being modified */ + i= (ksp->flag & KSP_FLAG_WHOLE_ARRAY) ? (-1) : (ksp->array_index); - /* get length of array if whole array option is enabled */ - if (ksp->flag & KSP_FLAG_WHOLE_ARRAY) { - PointerRNA id_ptr, ptr; - PropertyRNA *prop; - - RNA_id_pointer_create(ksp->id, &id_ptr); - if (RNA_path_resolve(&id_ptr, ksp->rna_path, &ptr, &prop) && prop) - arraylen= RNA_property_array_length(&ptr, prop); - } - - /* we should do at least one step */ - if (arraylen == i) - arraylen++; - - /* for each possible index, perform operation - * - assume that arraylen is greater than index - */ - for (; i < arraylen; i++) { - /* action to take depends on mode */ - if (mode == MODIFYKEY_MODE_INSERT) - success+= insert_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag); - else if (mode == MODIFYKEY_MODE_DELETE) - success+= delete_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag); - } + /* action to take depends on mode */ + if (mode == MODIFYKEY_MODE_INSERT) + success += insert_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag); + else if (mode == MODIFYKEY_MODE_DELETE) + success += delete_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag); /* set recalc-flags */ if (ksp->id) { @@ -1386,7 +1364,7 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet for (ksp= ks->paths.first; ksp; ksp= ksp->next) { DynStr *pathds= BLI_dynstr_new(); char *path = NULL; - int arraylen, i; + int i; /* set initial group name */ if (cks->id == NULL) { @@ -1461,32 +1439,14 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet else if (ksp->groupmode == KSP_GROUP_NAMED) groupname= ksp->group; - /* init arraylen and i - arraylen should be greater than i so that - * normal non-array entries get keyframed correctly - */ - i= ksp->array_index; - arraylen= i+1; + /* passing -1 as the array_index results in the entire array being modified */ + i= (ksp->flag & KSP_FLAG_WHOLE_ARRAY) ? (-1) : (ksp->array_index); - /* get length of array if whole array option is enabled */ - if (ksp->flag & KSP_FLAG_WHOLE_ARRAY) { - PointerRNA id_ptr, ptr; - PropertyRNA *prop; - - RNA_id_pointer_create(cks->id, &id_ptr); - if (RNA_path_resolve(&id_ptr, path, &ptr, &prop) && prop) - arraylen= RNA_property_array_length(&ptr, prop); - } - - /* for each possible index, perform operation - * - assume that arraylen is greater than index - */ - for (; i < arraylen; i++) { - /* action to take depends on mode */ - if (mode == MODIFYKEY_MODE_INSERT) - success+= insert_keyframe(cks->id, act, groupname, path, i, cfra, kflag); - else if (mode == MODIFYKEY_MODE_DELETE) - success+= delete_keyframe(cks->id, act, groupname, path, i, cfra, kflag); - } + /* action to take depends on mode */ + if (mode == MODIFYKEY_MODE_INSERT) + success+= insert_keyframe(cks->id, act, groupname, path, i, cfra, kflag); + else if (mode == MODIFYKEY_MODE_DELETE) + success+= delete_keyframe(cks->id, act, groupname, path, i, cfra, kflag); /* free the path */ MEM_freeN(path); diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index d6088648eb2..312939961f5 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1146,7 +1146,7 @@ int calculateTransformCenter(bContext *C, wmEvent *event, int centerMode, float /* aftertrans does insert ipos and action channels, and clears base flags, doesnt read transdata */ - special_aftertrans_update(t); + special_aftertrans_update(C, t); postTrans(C, t); @@ -1715,7 +1715,7 @@ int transformEnd(bContext *C, TransInfo *t) } /* aftertrans does insert keyframes, and clears base flags, doesnt read transdata */ - special_aftertrans_update(t); + special_aftertrans_update(C, t); /* free data */ postTrans(C, t); diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 7d9c16ada9b..0b8fb365a56 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -546,15 +546,15 @@ float get_drawsize(struct ARegion *ar, float *co); void createTransData(struct bContext *C, TransInfo *t); void sort_trans_data_dist(TransInfo *t); void add_tdi_poin(float *poin, float *old, float delta); -void special_aftertrans_update(TransInfo *t); +void special_aftertrans_update(struct bContext *C, TransInfo *t); void transform_autoik_update(TransInfo *t, short mode); int count_set_pose_transflags(int *out_mode, short around, struct Object *ob); /* auto-keying stuff used by special_aftertrans_update */ -void autokeyframe_ob_cb_func(struct Scene *scene, struct View3D *v3d, struct Object *ob, int tmode); -void autokeyframe_pose_cb_func(struct Scene *scene, struct View3D *v3d, struct Object *ob, int tmode, short targetless_ik); +void autokeyframe_ob_cb_func(struct bContext *C, struct Scene *scene, struct View3D *v3d, struct Object *ob, int tmode); +void autokeyframe_pose_cb_func(struct bContext *C, struct Scene *scene, struct View3D *v3d, struct Object *ob, int tmode, short targetless_ik); /*********************** Constraints *****************************/ diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 915eaca3604..c7b5c29e262 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4507,7 +4507,8 @@ static void clear_trans_object_base_flags(TransInfo *t) /* auto-keyframing feature - for objects * tmode: should be a transform mode */ -void autokeyframe_ob_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode) +// NOTE: context may not always be available, so must check before using it as it's a luxury for a few cases +void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob, int tmode) { ID *id= &ob->id; FCurve *fcu; @@ -4603,11 +4604,12 @@ void autokeyframe_ob_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode) * tmode: should be a transform mode * targetless_ik: has targetless ik been done on any channels? */ -void autokeyframe_pose_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode, short targetless_ik) +// NOTE: context may not always be available, so must check before using it as it's a luxury for a few cases +void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob, int tmode, short targetless_ik) { ID *id= &ob->id; AnimData *adt= ob->adt; - //bArmature *arm= ob->data; + bArmature *arm= ob->data; bAction *act= (adt) ? adt->action : NULL; bPose *pose= ob->pose; bPoseChannel *pchan; @@ -4714,15 +4716,13 @@ void autokeyframe_pose_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode, } } - // XXX todo... figure out way to get appropriate notifiers sent - - /* do the bone paths */ -#if 0 // XXX TRANSFORM FIX ME - if (arm->pathflag & ARM_PATH_ACFRA) { + /* do the bone paths + * NOTE: only do this when there is context info + */ + if (C && (arm->pathflag & ARM_PATH_ACFRA)) { //pose_clear_paths(ob); // XXX for now, don't need to clear ED_pose_recalculate_paths(C, scene, ob); } -#endif } else { /* tag channels that should have unkeyed data */ @@ -4736,12 +4736,12 @@ void autokeyframe_pose_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode, } -/* inserting keys, refresh ipo-keys, pointcache, redraw events... */ +/* inserting keys, pointcache, redraw events... */ /* * note: sequencer freeing has its own function now because of a conflict with transform's order of freeing (campbell) * Order changed, the sequencer stuff should go back in here * */ -void special_aftertrans_update(TransInfo *t) +void special_aftertrans_update(bContext *C, TransInfo *t) { Object *ob; // short redrawipo=0, resetslowpar=1; @@ -4769,24 +4769,15 @@ void special_aftertrans_update(TransInfo *t) } else if (t->spacetype == SPACE_ACTION) { SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first; - Scene *scene; bAnimContext ac; - /* initialise relevant anim-context 'context' data from TransInfo data */ - /* NOTE: sync this with the code in ANIM_animdata_get_context() */ - memset(&ac, 0, sizeof(bAnimContext)); - - scene= ac.scene= t->scene; - ob= ac.obact= OBACT; - ac.sa= t->sa; - ac.ar= t->ar; - ac.spacetype= (t->sa)? t->sa->spacetype : 0; - ac.regiontype= (t->ar)? t->ar->regiontype : 0; - - if (ANIM_animdata_context_getdata(&ac) == 0) + /* initialise relevant anim-context 'context' data */ + if (ANIM_animdata_get_context(C, &ac) == 0) return; + + ob = ac.obact; - if (ac.datatype == ANIMCONT_DOPESHEET) { + if (ELEM(ac.datatype, ANIMCONT_DOPESHEET, ANIMCONT_SHAPEKEY)) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; short filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); @@ -4815,12 +4806,10 @@ void special_aftertrans_update(TransInfo *t) /* free temp memory */ BLI_freelistN(&anim_data); } - else if (ac.datatype == ANIMCONT_ACTION) { + else if (ac.datatype == ANIMCONT_ACTION) { // TODO: just integrate into the above... /* Depending on the lock status, draw necessary views */ // fixme... some of this stuff is not good if (ob) { - ob->ctime= -1234567.0f; - if (ob->pose || ob_get_key(ob)) DAG_id_flush_update(&ob->id, OB_RECALC); else @@ -4834,22 +4823,6 @@ void special_aftertrans_update(TransInfo *t) posttrans_action_clean(&ac, (bAction *)ac.data); } } - else if (ac.datatype == ANIMCONT_SHAPEKEY) { -#if 0 // XXX old animation system - /* fix up the Ipocurves and redraw stuff */ - Key *key= (Key *)ac.data; - - if (key->ipo) { - if ( (saction->flag & SACTION_NOTRANSKEYCULL)==0 && - ((cancelled == 0) || (duplicate)) ) - { - posttrans_ipo_clean(key->ipo); - } - } -#endif // XXX old animation system - - DAG_id_flush_update(&OBACT->id, OB_RECALC_DATA); - } #if 0 // XXX future of this is still not clear else if (ac.datatype == ANIMCONT_GPENCIL) { /* remove duplicate frames and also make sure points are in order! */ @@ -4879,21 +4852,10 @@ void special_aftertrans_update(TransInfo *t) } else if (t->spacetype == SPACE_IPO) { SpaceIpo *sipo= (SpaceIpo *)t->sa->spacedata.first; - Scene *scene; bAnimContext ac; - /* initialise relevant anim-context 'context' data from TransInfo data */ - /* NOTE: sync this with the code in ANIM_animdata_get_context() */ - memset(&ac, 0, sizeof(bAnimContext)); - - scene= ac.scene= t->scene; - ob= ac.obact= OBACT; - ac.sa= t->sa; - ac.ar= t->ar; - ac.spacetype= (t->sa)? t->sa->spacetype : 0; - ac.regiontype= (t->ar)? t->ar->regiontype : 0; - - if (ANIM_animdata_context_getdata(&ac) == 0) + /* initialise relevant anim-context 'context' data */ + if (ANIM_animdata_get_context(C, &ac) == 0) return; if (ac.datatype) @@ -4930,21 +4892,10 @@ void special_aftertrans_update(TransInfo *t) ANIM_editkeyframes_refresh(&ac); } else if (t->spacetype == SPACE_NLA) { - Scene *scene; bAnimContext ac; - /* initialise relevant anim-context 'context' data from TransInfo data */ - /* NOTE: sync this with the code in ANIM_animdata_get_context() */ - memset(&ac, 0, sizeof(bAnimContext)); - - scene= ac.scene= t->scene; - ob= ac.obact= OBACT; - ac.sa= t->sa; - ac.ar= t->ar; - ac.spacetype= (t->sa)? t->sa->spacetype : 0; - ac.regiontype= (t->ar)? t->ar->regiontype : 0; - - if (ANIM_animdata_context_getdata(&ac) == 0) + /* initialise relevant anim-context 'context' data */ + if (ANIM_animdata_get_context(C, &ac) == 0) return; if (ac.datatype) @@ -4974,10 +4925,6 @@ void special_aftertrans_update(TransInfo *t) } } else if (t->obedit) { - // TRANSFORM_FIX_ME -// if (t->mode==TFM_BONESIZE || t->mode==TFM_BONE_ENVELOPE) -// allqueue(REDRAWBUTSEDIT, 0); - if (t->obedit->type == OB_MESH) { EditMesh *em = ((Mesh *)t->obedit->data)->edit_mesh; @@ -5011,7 +4958,7 @@ void special_aftertrans_update(TransInfo *t) /* automatic inserting of keys and unkeyed tagging - only if transform wasn't cancelled (or TFM_DUMMY) */ if (!cancelled && (t->mode != TFM_DUMMY)) { - autokeyframe_pose_cb_func(t->scene, (View3D *)t->view, ob, t->mode, targetless_ik); + autokeyframe_pose_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik); DAG_id_flush_update(&ob->id, OB_RECALC_DATA); } else if (arm->flag & ARM_DELAYDEFORM) { @@ -5022,9 +4969,6 @@ void special_aftertrans_update(TransInfo *t) else DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - //if (t->mode==TFM_BONESIZE || t->mode==TFM_BONE_ENVELOPE) - // allqueue(REDRAWBUTSEDIT, 0); - } else if(t->scene->basact && (ob = t->scene->basact->object) && (ob->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(t->scene, ob)) { ; @@ -5064,19 +5008,13 @@ void special_aftertrans_update(TransInfo *t) /* Set autokey if necessary */ if (!cancelled) - autokeyframe_ob_cb_func(t->scene, (View3D *)t->view, ob, t->mode); + autokeyframe_ob_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode); } } clear_trans_object_base_flags(t); #if 0 // TRANSFORM_FIX_ME - if (redrawipo) { - allqueue(REDRAWNLA, 0); - allqueue(REDRAWACTION, 0); - allqueue(REDRAWIPO, 0); - } - if(resetslowpar) reset_slowparents(); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 7951b002174..f2c4da0da27 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -746,7 +746,7 @@ void recalcData(TransInfo *t) int targetless_ik= (t->flag & T_AUTOIK); // XXX this currently doesn't work, since flags aren't set yet! animrecord_check_state(t->scene, &ob->id, t->animtimer); - autokeyframe_pose_cb_func(t->scene, (View3D *)t->view, ob, t->mode, targetless_ik); + autokeyframe_pose_cb_func(NULL, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik); } /* old optimize trick... this enforces to bypass the depgraph */ @@ -789,7 +789,7 @@ void recalcData(TransInfo *t) // TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes? if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) { animrecord_check_state(t->scene, &ob->id, t->animtimer); - autokeyframe_ob_cb_func(t->scene, (View3D *)t->view, ob, t->mode); + autokeyframe_ob_cb_func(NULL, t->scene, (View3D *)t->view, ob, t->mode); } /* proxy exception */ -- cgit v1.2.3 From e01b030817e10163670ce6b03b2a416a668c7555 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 14 Dec 2009 06:25:42 +0000 Subject: Bugfix #20351: - Offset parameter of the path constraint has no effect on the animation - Path animation was being repeated multiple times even though it was not supposed to --- source/blender/blenkernel/intern/constraint.c | 22 +++++++++++----------- source/blender/blenkernel/intern/object.c | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index aff3bf058fd..797fe8f7324 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -1191,17 +1191,17 @@ static void followpath_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstr if ((data->followflag & FOLLOWPATH_STATIC) == 0) { /* animated position along curve depending on time */ if (cob->scene) - curvetime= bsystem_time(cob->scene, ct->tar, ctime, 0.0) - data->offset; + curvetime= bsystem_time(cob->scene, ct->tar, cu->ctime, 0.0) - data->offset; else - curvetime= ctime - data->offset; + curvetime= cu->ctime - data->offset; /* ctime is now a proper var setting of Curve which gets set by Animato like any other var that's animated, * but this will only work if it actually is animated... * - * we firstly calculate the modulus of cu->ctime/cu->pathlen to clamp ctime within the 0.0 to 1.0 times pathlen - * range, then divide this (the modulus) by pathlen to get a value between 0.0 and 1.0 + * we divide the curvetime calculated in the previous step by the length of the path, to get a time + * factor, which then gets clamped to lie within 0.0 - 1.0 range */ - curvetime= fmod(cu->ctime, cu->pathlen) / cu->pathlen; + curvetime /= cu->pathlen; CLAMP(curvetime, 0.0, 1.0); } else { @@ -1211,7 +1211,7 @@ static void followpath_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstr if ( where_on_path(ct->tar, curvetime, vec, dir, NULL, &radius) ) { if (data->followflag & FOLLOWPATH_FOLLOW) { - vec_to_quat( quat,dir, (short) data->trackflag, (short) data->upflag); + vec_to_quat(quat, dir, (short)data->trackflag, (short)data->upflag); normalize_v3(dir); q[0]= (float)cos(0.5*vec[3]); @@ -1221,7 +1221,7 @@ static void followpath_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstr q[3]= -x1*dir[2]; mul_qt_qtqt(quat, q, quat); - quat_to_mat4( totmat,quat); + quat_to_mat4(totmat, quat); } if (data->followflag & FOLLOWPATH_RADIUS) { @@ -1251,12 +1251,12 @@ static void followpath_evaluate (bConstraint *con, bConstraintOb *cob, ListBase float size[3]; bFollowPathConstraint *data= con->data; - /* get Object local transform (loc/rot/size) to determine transformation from path */ - //object_to_mat4(ob, obmat); - copy_m4_m4(obmat, cob->matrix); // FIXME!!! + /* get Object transform (loc/rot/size) to determine transformation from path */ + // TODO: this used to be local at one point, but is probably more useful as-is + copy_m4_m4(obmat, cob->matrix); /* get scaling of object before applying constraint */ - mat4_to_size( size,cob->matrix); + mat4_to_size(size, cob->matrix); /* apply targetmat - containing location on path, and rotation */ mul_serie_m4(cob->matrix, ct->matrix, obmat, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 47830453c2e..6b86c6c2908 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -1664,10 +1664,10 @@ static void ob_parcurve(Scene *scene, Object *ob, Object *par, float mat[][4]) /* ctime is now a proper var setting of Curve which gets set by Animato like any other var that's animated, * but this will only work if it actually is animated... * - * we firstly calculate the modulus of cu->ctime/cu->pathlen to clamp ctime within the 0.0 to 1.0 times pathlen - * range, then divide this (the modulus) by pathlen to get a value between 0.0 and 1.0 + * we divide the curvetime calculated in the previous step by the length of the path, to get a time + * factor, which then gets clamped to lie within 0.0 - 1.0 range */ - ctime= fmod(cu->ctime, cu->pathlen) / cu->pathlen; + ctime= cu->ctime / cu->pathlen; CLAMP(ctime, 0.0, 1.0); } else { -- cgit v1.2.3 From b1a39375e5f57723baeb4004a53219f2ecb1181a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 14 Dec 2009 12:09:20 +0000 Subject: Keyframing Bugfixes and Feature Requests: * Added a User-Pref option for the "XYZ to RGB" colour-mode setting for new F-Curves to compliment the one used for Keying Sets. With this option enabled, the builtin Keying Sets also can obey this option. * Made all places that were previously manually checking the flags for keyframing to use a standard API function to do this now. * Fixed bug introduced earlier today in commit 25353 by reverting the changes to keyingsets.c. Forgot that delete_keyframe doesn't handle do the "entire array" hack with array_index = -1 * Fixed bug with the insert-keyframe code for the array_index = -1 case, where too many channels were being keyed (i.e. an imaginary channel was often keyed in addition to the valid ones) --- .../editors/animation/anim_channels_defines.c | 16 +--- source/blender/editors/animation/keyframing.c | 43 +++++++++-- source/blender/editors/animation/keyingsets.c | 86 ++++++++++++++++------ source/blender/editors/include/ED_keyframing.h | 7 ++ source/blender/editors/interface/interface_anim.c | 9 +-- source/blender/editors/space_action/action_edit.c | 4 +- source/blender/editors/space_graph/graph_edit.c | 4 +- .../editors/transform/transform_conversions.c | 16 +--- source/blender/makesdna/DNA_userdef_types.h | 1 + source/blender/makesrna/intern/rna_animation.c | 2 +- source/blender/makesrna/intern/rna_userdef.c | 6 +- 11 files changed, 121 insertions(+), 73 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index c3044e03a2f..0a71f79f132 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -2395,13 +2395,7 @@ static void achannel_setting_slider_cb(bContext *C, void *id_poin, void *fcu_poi cfra= (float)CFRA; /* get flags for keyframing */ - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) - flag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) - flag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) - flag |= INSERTKEY_REPLACE; - + flag = ANIM_get_keyframing_flags(scene, 1); /* get RNA pointer, and resolve the path */ RNA_id_pointer_create(id, &id_ptr); @@ -2438,13 +2432,7 @@ static void achannel_setting_slider_shapekey_cb(bContext *C, void *key_poin, voi cfra= (float)CFRA; /* get flags for keyframing */ - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) - flag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) - flag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) - flag |= INSERTKEY_REPLACE; - + flag = ANIM_get_keyframing_flags(scene, 1); /* get RNA pointer, and resolve the path */ RNA_id_pointer_create((ID *)key, &id_ptr); diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 3e25c9a6b60..b126e57705e 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -80,6 +80,40 @@ #include "anim_intern.h" +/* ************************************************** */ +/* Keyframing Setting Wrangling */ + +/* Get the active settings for keyframing settings from context (specifically the given scene) */ +short ANIM_get_keyframing_flags (Scene *scene, short incl_mode) +{ + short flag = 0; + + /* standard flags */ + { + /* visual keying */ + if (IS_AUTOKEY_FLAG(AUTOMATKEY)) + flag |= INSERTKEY_MATRIX; + + /* only needed */ + if (IS_AUTOKEY_FLAG(INSERTNEEDED)) + flag |= INSERTKEY_NEEDED; + + /* default F-Curve color mode - RGB from XYZ indicies */ + if (IS_AUTOKEY_FLAG(XYZ2RGB)) + flag |= INSERTKEY_XYZ2RGB; + } + + /* only if including settings from the autokeying mode... */ + if (incl_mode) + { + /* keyframing mode - only replace existing keyframes */ + if (IS_AUTOKEY_MODE(scene, EDITKEYS)) + flag |= INSERTKEY_REPLACE; + } + + return flag; +} + /* ******************************************* */ /* Animation Data Validation */ @@ -838,7 +872,7 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_ /* key entire array convenience method */ if (array_index == -1) { array_index= 0; - array_index_max= RNA_property_array_length(&ptr, prop) + 1; + array_index_max= RNA_property_array_length(&ptr, prop); } /* will only loop once unless the array index was -1 */ @@ -1326,12 +1360,7 @@ static int insert_key_button_exec (bContext *C, wmOperator *op) short flag = 0; /* flags for inserting keyframes */ - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) - flag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) - flag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) - flag |= INSERTKEY_REPLACE; + flag = ANIM_get_keyframing_flags(scene, 1); /* try to insert keyframe using property retrieved from UI */ memset(&ptr, 0, sizeof(PointerRNA)); diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c index afd693d7981..d5624b8bc5b 100644 --- a/source/blender/editors/animation/keyingsets.c +++ b/source/blender/editors/animation/keyingsets.c @@ -133,11 +133,9 @@ static int add_default_keyingset_exec (bContext *C, wmOperator *op) */ flag |= KEYINGSET_ABSOLUTE; - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) - keyingflag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) - keyingflag |= INSERTKEY_NEEDED; - + /* 2nd arg is 0 to indicate that we don't want to include autokeying mode related settings */ + keyingflag = ANIM_get_keyframing_flags(scene, 0); + /* call the API func, and set the active keyingset index */ BKE_keyingset_add(&scene->keyingsets, NULL, flag, keyingflag); @@ -326,6 +324,8 @@ static int add_keyingset_button_exec (bContext *C, wmOperator *op) keyingflag |= INSERTKEY_MATRIX; if (IS_AUTOKEY_FLAG(INSERTNEEDED)) keyingflag |= INSERTKEY_NEEDED; + if (IS_AUTOKEY_FLAG(XYZ2RGB)) + keyingflag |= INSERTKEY_XYZ2RGB; /* call the API func, and set the active keyingset index */ ks= BKE_keyingset_add(&scene->keyingsets, "ButtonKeyingSet", flag, keyingflag); @@ -1305,9 +1305,7 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet kflag= ks->keyingflag; /* suppliment with info from the context */ - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) kflag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) kflag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) kflag |= INSERTKEY_REPLACE; + kflag |= ANIM_get_keyframing_flags(scene, 1); } else if (mode == MODIFYKEY_MODE_DELETE) kflag= 0; @@ -1318,7 +1316,7 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet * provided by the user, and is stored, ready to use, in the KeyingSet paths. */ for (ksp= ks->paths.first; ksp; ksp= ksp->next) { - int i; + int arraylen, i; /* get pointer to name of group to add channels to */ if (ksp->groupmode == KSP_GROUP_NONE) @@ -1328,14 +1326,36 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet else groupname= ksp->group; - /* passing -1 as the array_index results in the entire array being modified */ - i= (ksp->flag & KSP_FLAG_WHOLE_ARRAY) ? (-1) : (ksp->array_index); + /* init arraylen and i - arraylen should be greater than i so that + * normal non-array entries get keyframed correctly + */ + i= ksp->array_index; + arraylen= i; + + /* get length of array if whole array option is enabled */ + if (ksp->flag & KSP_FLAG_WHOLE_ARRAY) { + PointerRNA id_ptr, ptr; + PropertyRNA *prop; + + RNA_id_pointer_create(ksp->id, &id_ptr); + if (RNA_path_resolve(&id_ptr, ksp->rna_path, &ptr, &prop) && prop) + arraylen= RNA_property_array_length(&ptr, prop); + } + + /* we should do at least one step */ + if (arraylen == i) + arraylen++; - /* action to take depends on mode */ - if (mode == MODIFYKEY_MODE_INSERT) - success += insert_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag); - else if (mode == MODIFYKEY_MODE_DELETE) - success += delete_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag); + /* for each possible index, perform operation + * - assume that arraylen is greater than index + */ + for (; i < arraylen; i++) { + /* action to take depends on mode */ + if (mode == MODIFYKEY_MODE_INSERT) + success += insert_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag); + else if (mode == MODIFYKEY_MODE_DELETE) + success += delete_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag); + } /* set recalc-flags */ if (ksp->id) { @@ -1364,7 +1384,7 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet for (ksp= ks->paths.first; ksp; ksp= ksp->next) { DynStr *pathds= BLI_dynstr_new(); char *path = NULL; - int i; + int arraylen, i; /* set initial group name */ if (cks->id == NULL) { @@ -1439,14 +1459,32 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet else if (ksp->groupmode == KSP_GROUP_NAMED) groupname= ksp->group; - /* passing -1 as the array_index results in the entire array being modified */ - i= (ksp->flag & KSP_FLAG_WHOLE_ARRAY) ? (-1) : (ksp->array_index); + /* init arraylen and i - arraylen should be greater than i so that + * normal non-array entries get keyframed correctly + */ + i= ksp->array_index; + arraylen= i+1; - /* action to take depends on mode */ - if (mode == MODIFYKEY_MODE_INSERT) - success+= insert_keyframe(cks->id, act, groupname, path, i, cfra, kflag); - else if (mode == MODIFYKEY_MODE_DELETE) - success+= delete_keyframe(cks->id, act, groupname, path, i, cfra, kflag); + /* get length of array if whole array option is enabled */ + if (ksp->flag & KSP_FLAG_WHOLE_ARRAY) { + PointerRNA id_ptr, ptr; + PropertyRNA *prop; + + RNA_id_pointer_create(cks->id, &id_ptr); + if (RNA_path_resolve(&id_ptr, path, &ptr, &prop) && prop) + arraylen= RNA_property_array_length(&ptr, prop); + } + + /* for each possible index, perform operation + * - assume that arraylen is greater than index + */ + for (; i < arraylen; i++) { + /* action to take depends on mode */ + if (mode == MODIFYKEY_MODE_INSERT) + success+= insert_keyframe(cks->id, act, groupname, path, i, cfra, kflag); + else if (mode == MODIFYKEY_MODE_DELETE) + success+= delete_keyframe(cks->id, act, groupname, path, i, cfra, kflag); + } /* free the path */ MEM_freeN(path); diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index 45a62ee7bcb..d16cfe540ea 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -49,6 +49,13 @@ struct PropertyRNA; /* ************ Keyframing Management **************** */ +/* Get the active settings for keyframing settings from context (specifically the given scene) + * - incl_mode: include settings from keyframing mode in the result (i.e. replace only) + */ +short ANIM_get_keyframing_flags(struct Scene *scene, short incl_mode); + +/* -------- */ + /* Get (or add relevant data to be able to do so) the Active Action for the given * Animation Data block, given an ID block where the Animation Data should reside. */ diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c index 0925598cc99..acfd48e0269 100644 --- a/source/blender/editors/interface/interface_anim.c +++ b/source/blender/editors/interface/interface_anim.c @@ -147,14 +147,7 @@ void ui_but_anim_autokey(uiBut *but, Scene *scene, float cfra) // TODO: this should probably respect the keyingset only option for anim if(autokeyframe_cfra_can_key(scene, id)) { - short flag = 0; - - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) - flag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) - flag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) - flag |= INSERTKEY_REPLACE; + short flag = ANIM_get_keyframing_flags(scene, 1); fcu->flag &= ~FCURVE_SELECTED; insert_keyframe(id, action, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag); diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index c5da96267e1..e7b1dcb677d 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -446,9 +446,7 @@ static void insert_action_keys(bAnimContext *ac, short mode) ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* init keyframing flag */ - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) flag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) flag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) flag |= INSERTKEY_REPLACE; + flag = ANIM_get_keyframing_flags(scene, 1); /* insert keyframes */ for (ale= anim_data.first; ale; ale= ale->next) { diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 6e488678f2b..8ac3f2efefb 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -428,9 +428,7 @@ static void insert_graph_keys(bAnimContext *ac, short mode) ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* init keyframing flag */ - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) flag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) flag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) flag |= INSERTKEY_REPLACE; + flag = ANIM_get_keyframing_flags(scene, 1); /* insert keyframes */ for (ale= anim_data.first; ale; ale= ale->next) { diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index c7b5c29e262..e9b0cb40b1b 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4525,13 +4525,7 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob, memset(&cks, 0, sizeof(bCommonKeySrc)); cks.id= &ob->id; - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) - flag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_FLAG(AUTOMATKEY)) - flag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) - flag |= INSERTKEY_REPLACE; - + flag = ANIM_get_keyframing_flags(scene, 1); if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (active_ks)) { /* only insert into active keyingset */ @@ -4632,12 +4626,10 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o * visual keyframes even if flag not set, as it's not that useful otherwise * (for quick animation recording) */ - if (IS_AUTOKEY_FLAG(AUTOMATKEY) || (targetless_ik)) + flag = ANIM_get_keyframing_flags(scene, 1); + + if (targetless_ik) flag |= INSERTKEY_MATRIX; - if (IS_AUTOKEY_FLAG(INSERTNEEDED)) - flag |= INSERTKEY_NEEDED; - if (IS_AUTOKEY_MODE(scene, EDITKEYS)) - flag |= INSERTKEY_REPLACE; for (pchan=pose->chanbase.first; pchan; pchan=pchan->next) { if (pchan->bone->flag & BONE_TRANSFORM) { diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index c6b1bf0b3f6..a6be7256170 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -433,6 +433,7 @@ extern UserDef U; /* from blenkernel blender.c */ #define AUTOKEY_FLAG_INSERTAVAIL (1<<0) #define AUTOKEY_FLAG_INSERTNEEDED (1<<1) #define AUTOKEY_FLAG_AUTOMATKEY (1<<2) +#define AUTOKEY_FLAG_XYZ2RGB (1<<3) /* U.autokey_flag (strictly autokeying only) */ #define AUTOKEY_FLAG_ONLYKEYINGSET (1<<6) /* toolsettings->autokey_flag */ diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index 035194e0d9f..56e2707b5bb 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -269,7 +269,7 @@ static void rna_def_keyingset(BlenderRNA *brna) prop= RNA_def_property(srna, "insertkey_xyz_to_rgb", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "keyingflag", INSERTKEY_XYZ2RGB); - RNA_def_property_ui_text(prop, "XYZ Transforms to RGB", "Color for newly added transformation F-Curves (Location, Rotation, Scale) and also Color is based on the transform axis."); + RNA_def_property_ui_text(prop, "F-Curve Colors - XYZ to RGB", "Color for newly added transformation F-Curves (Location, Rotation, Scale) and also Color is based on the transform axis."); /* Keying Set API */ RNA_api_keyingset(srna); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index d3329907939..9b314afeb08 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -1918,7 +1918,11 @@ static void rna_def_userdef_edit(BlenderRNA *brna) prop= RNA_def_property(srna, "use_visual_keying", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "autokey_flag", AUTOKEY_FLAG_AUTOMATKEY); RNA_def_property_ui_text(prop, "Visual Keying", "Use Visual keying automatically for constrained objects."); - + + prop= RNA_def_property(srna, "insertkey_xyz_to_rgb", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "autokey_flag", AUTOKEY_FLAG_XYZ2RGB); + RNA_def_property_ui_text(prop, "New F-Curve Colors - XYZ to RGB", "Color for newly added transformation F-Curves (Location, Rotation, Scale) and also Color is based on the transform axis."); + prop= RNA_def_property(srna, "new_interpolation_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, new_interpolation_types); RNA_def_property_enum_sdna(prop, NULL, "ipo_new"); -- cgit v1.2.3 From 87a5ce06f349f3c79b4f6ae1c75c35987776f69e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 13:11:22 +0000 Subject: Fix #20372: crash when strand render enabled with child hairs. --- source/blender/render/intern/source/convertblender.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index d0f7b2d60a5..c89811a62e0 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1707,14 +1707,8 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem totface= psmd->dm->getNumFaces(psmd->dm); origindex= psmd->dm->getFaceDataArray(psmd->dm, CD_ORIGINDEX); - if(origindex) { - for(a=0; atotbound= MAX2(strandbuf->totbound, origindex[a]); - } - else { - for(a=0; atotbound= MAX2(strandbuf->totbound, a); - } + for(a=0; atotbound= MAX2(strandbuf->totbound, (origindex)? origindex[a]: a); strandbuf->totbound++; strandbuf->bound= MEM_callocN(sizeof(StrandBound)*strandbuf->totbound, "StrandBound"); @@ -1856,8 +1850,10 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem dosimplify = psys_render_simplify_params(psys, cpa, simplify); if(strandbuf) { - if(origindex[cpa->num]+1 > sbound - strandbuf->bound) { - sbound= strandbuf->bound + origindex[cpa->num]+1; + int orignum= (origindex)? origindex[cpa->num]: cpa->num; + + if(orignum > sbound - strandbuf->bound) { + sbound= strandbuf->bound + orignum; sbound->start= sbound->end= obr->totstrand; } } -- cgit v1.2.3 From d612fdcdec006ea6229b0731f58e884c8e2cc4df Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 13:15:23 +0000 Subject: Fix #20377: object layer and modifier realtime setting are now editable again on library linked objects. The former is ok because it is actually the scene data being edited, the latter will not be saved to file but is useful.. --- source/blender/makesrna/intern/rna_modifier.c | 1 + source/blender/makesrna/intern/rna_object.c | 1 + 2 files changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index 2754341810c..dcbc2672bcb 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -2030,6 +2030,7 @@ void RNA_def_modifier(BlenderRNA *brna) prop= RNA_def_property(srna, "realtime", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Realtime); RNA_def_property_ui_text(prop, "Realtime", "Realtime display of a modifier."); + RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); RNA_def_property_update(prop, 0, "rna_Modifier_update"); RNA_def_property_ui_icon(prop, ICON_RESTRICT_VIEW_OFF, 0); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index c4bfb9e0197..021fdcefd33 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1458,6 +1458,7 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_array(prop, 20); RNA_def_property_ui_text(prop, "Layers", "Layers the object is on."); RNA_def_property_boolean_funcs(prop, NULL, "rna_Object_layer_set"); + RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_layer_update"); prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From f922d5d454593258586eae1c5390e913e0fa044d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 13:20:47 +0000 Subject: Fix #20376: crash with layer sculpt and multires. This is not working yet, at least prevents the crash for now. --- source/blender/editors/sculpt_paint/sculpt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 8b705ff5b5e..0dd41fb559a 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1104,7 +1104,7 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int int n; /* XXX not working yet for multires */ - if(!ss->mvert) + if(ss->multires) return; if(ss->cache->flip) @@ -1683,7 +1683,7 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte view3d_get_transformation(vc->ar, vc->rv3d, vc->obact, cache->mats); /* Initialize layer brush displacements and persistent coords */ - if(brush->sculpt_tool == SCULPT_TOOL_LAYER) { + if(brush->sculpt_tool == SCULPT_TOOL_LAYER && !ss->multires) { if(!ss->layer_disps || !(brush->flag & BRUSH_PERSISTENT)) { if(ss->layer_disps) MEM_freeN(ss->layer_disps); @@ -1958,7 +1958,7 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss) copy_v3_v3(fn, cache->face_norms[i]); } - if(brush->sculpt_tool == SCULPT_TOOL_LAYER) + if(brush->sculpt_tool == SCULPT_TOOL_LAYER && !ss->multires) memset(ss->layer_disps, 0, sizeof(float) * ss->totvert); } } -- cgit v1.2.3 From be6bf5faf65801d917ef515b7394cac53cbe0715 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 13:45:45 +0000 Subject: Fix #20380: Duplicating mesh with Particle Instance Mod, Pole Axis not copied. --- source/blender/blenkernel/intern/modifier.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 9390c7d67c4..e75203c6cde 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6570,6 +6570,7 @@ static void particleInstanceModifier_copyData(ModifierData *md, ModifierData *ta tpimd->ob = pimd->ob; tpimd->psys = pimd->psys; tpimd->flag = pimd->flag; + tpimd->axis = pimd->axis; tpimd->position = pimd->position; tpimd->random_position = pimd->random_position; } -- cgit v1.2.3 From 32d5429e353b68ed90f2e32edc48a7841a2b4138 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 14:16:39 +0000 Subject: Fix #20323: closing other window while BGE is running crashes. --- source/blender/editors/space_view3d/view3d_view.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index a569eff1ebe..a4f24e90080 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -1709,6 +1709,7 @@ static int game_engine_exec(bContext *C, wmOperator *unused) Scene *startscene = CTX_data_scene(C); ScrArea *sa, *prevsa= CTX_wm_area(C); ARegion *ar, *prevar= CTX_wm_region(C); + wmWindow *prevwin= CTX_wm_window(C); RegionView3D *rv3d; rcti cam_frame; @@ -1742,11 +1743,15 @@ static int game_engine_exec(bContext *C, wmOperator *unused) SaveState(C); + StartKetsjiShell(C, ar, &cam_frame, 1); - RestoreState(C); + /* restore context, in case it changed in the meantime, for + example by working in another window or closing it */ CTX_wm_region_set(C, prevar); CTX_wm_area_set(C, prevsa); + CTX_wm_window_set(C, prevwin); + RestoreState(C); //XXX restore_all_scene_cfra(scene_cfra_store); set_scene_bg(startscene); -- cgit v1.2.3 From a5c020218c20a0f6fa7d36131133bae6f7d2f47d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 14:27:38 +0000 Subject: Fix #20368: editing keymap item operator name would reset properties even if the name was not changed. --- source/blender/makesrna/intern/rna_wm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 5cf9c245b05..0f6a14b78bd 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -586,9 +586,12 @@ static void rna_wmKeyMapItem_idname_set(PointerRNA *ptr, const char *value) char idname[OP_MAX_TYPENAME]; WM_operator_bl_idname(idname, value); - BLI_strncpy(kmi->idname, idname, sizeof(kmi->idname)); - WM_keymap_properties_reset(kmi); + if(strcmp(idname, kmi->idname) != 0) { + BLI_strncpy(kmi->idname, idname, sizeof(kmi->idname)); + + WM_keymap_properties_reset(kmi); + } } #else -- cgit v1.2.3 From 91215df5c2c685d5a9bb219a59901c090c74671e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 14:34:57 +0000 Subject: Bugfix: clicking outside of color picker could reset color in some cases. --- source/blender/editors/interface/interface_handlers.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 4ef59e4b59a..a43506778d8 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4739,9 +4739,14 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, if(inside==0) { uiSafetyRct *saferct= block->saferct.first; - if(ELEM3(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) && event->val==KM_PRESS) - if(saferct && !BLI_in_rctf(&saferct->parent, event->x, event->y)) - menu->menuretval= UI_RETURN_OUT; + if(ELEM3(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) && event->val==KM_PRESS) { + if(saferct && !BLI_in_rctf(&saferct->parent, event->x, event->y)) { + if(block->flag & (UI_BLOCK_OUT_1|UI_BLOCK_KEEP_OPEN)) + menu->menuretval= UI_RETURN_OK; + else + menu->menuretval= UI_RETURN_OUT; + } + } } if(menu->menuretval); @@ -4777,10 +4782,10 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, /* strict check, and include the parent rect */ if(!menu->dotowards && !saferct) { - if(block->flag & UI_BLOCK_OUT_1) + if(block->flag & (UI_BLOCK_OUT_1|UI_BLOCK_KEEP_OPEN)) menu->menuretval= UI_RETURN_OK; else - menu->menuretval= (block->flag & UI_BLOCK_KEEP_OPEN)? UI_RETURN_OK: UI_RETURN_OUT; + menu->menuretval= UI_RETURN_OUT; } else if(menu->dotowards && event->type==MOUSEMOVE) retval= WM_UI_HANDLER_BREAK; -- cgit v1.2.3 From d88c776614fb7ac0b391ca34713e69d2b9ed4665 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 14 Dec 2009 14:42:46 +0000 Subject: edits to the bone copy metarig type from Cessen, pointcache warning fix --- source/blender/editors/physics/physics_pointcache.c | 2 +- source/blender/makesrna/intern/rna_ID.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c index 858ff3637b1..0cd4c2e6ce8 100644 --- a/source/blender/editors/physics/physics_pointcache.c +++ b/source/blender/editors/physics/physics_pointcache.c @@ -86,7 +86,7 @@ void bake_console_progress(void *arg, int nr) fflush(stdout); } -void bake_console_progress_end(void *arg, int nr) +void bake_console_progress_end(void *arg) { printf("\n"); } diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 32b6de40a03..2aeb600bc42 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -246,7 +246,7 @@ static void rna_IDPropertyGroup_name_get(PointerRNA *ptr, char *str) if(idprop && idprop->type == IDP_STRING) strcpy(str, idprop->data.pointer); else - strcpy(str, ""); + str[0]= '\0'; } void rna_IDPropertyGroup_name_set(PointerRNA *ptr, const char *value) -- cgit v1.2.3 From e18b93419640551ad9156d27290896ca4b03aa86 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 14:48:46 +0000 Subject: Fix #20354: sculpt mode crash when using smooth brush with multires level 0. --- source/blender/editors/sculpt_paint/sculpt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 0dd41fb559a..e6fe1a5153d 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1488,7 +1488,7 @@ struct MultiresModifierData *sculpt_multires_active(Object *ob) if(nmd->mode & eModifierMode_Realtime) break; - if(!nmd && mmd->lvl != 1) + if(!nmd && mmd->sculptlvl > 0) return mmd; } } -- cgit v1.2.3 From 91791da36892463f3077973b87b6f19a61b89b98 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 15:05:09 +0000 Subject: Fix #20364 and #20357: AAO crashes for certain combinations of settings. --- source/blender/render/intern/source/occlusion.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c index 3a5680eaf70..40fcc2b399a 100644 --- a/source/blender/render/intern/source/occlusion.c +++ b/source/blender/render/intern/source/occlusion.c @@ -356,18 +356,18 @@ static void occ_sum_occlusion(OcclusionTree *tree, OccNode *node) { OccNode *child; float occ, area, totarea, rad[3]; - int a, b; + int a, b, indirect= tree->doindirect; occ= 0.0f; totarea= 0.0f; - zero_v3(rad); + if(indirect) zero_v3(rad); for(b=0; bchildflag & (1<child[b].face; occ_face(&tree->face[a], 0, 0, &area); occ += area*tree->occlusion[a]; - madd_v3_v3fl(rad, tree->rad[a], area); + if(indirect) madd_v3_v3fl(rad, tree->rad[a], area); totarea += area; } else if(node->child[b].node) { @@ -375,18 +375,18 @@ static void occ_sum_occlusion(OcclusionTree *tree, OccNode *node) occ_sum_occlusion(tree, child); occ += child->area*child->occlusion; - madd_v3_v3fl(rad, child->rad, child->area); + if(indirect) madd_v3_v3fl(rad, child->rad, child->area); totarea += child->area; } } if(totarea != 0.0f) { occ /= totarea; - mul_v3_fl(rad, 1.0f/totarea); + if(indirect) mul_v3_fl(rad, 1.0f/totarea); } node->occlusion= occ; - copy_v3_v3(node->rad, rad); + if(indirect) copy_v3_v3(node->rad, rad); } static int occ_find_bbox_axis(OcclusionTree *tree, int begin, int end, float *min, float *max) @@ -1613,6 +1613,7 @@ static void *exec_strandsurface_sample(void *data) void make_occ_tree(Render *re) { OcclusionThread othreads[BLENDER_MAX_THREADS]; + OcclusionTree *tree; StrandSurface *mesh; ListBase threads; float ao[3], indirect[3], (*faceao)[3], (*faceindirect)[3]; @@ -1624,13 +1625,13 @@ void make_occ_tree(Render *re) re->i.infostr= "Occlusion preprocessing"; re->stats_draw(re->sdh, &re->i); - re->occlusiontree= occ_tree_build(re); + re->occlusiontree= tree= occ_tree_build(re); - if(re->occlusiontree) { + if(tree) { if(re->wrld.ao_approx_passes > 0) - occ_compute_passes(re, re->occlusiontree, re->wrld.ao_approx_passes); - if(re->wrld.ao_indirect_bounces > 1) - occ_compute_bounces(re, re->occlusiontree, re->wrld.ao_indirect_bounces); + occ_compute_passes(re, tree, re->wrld.ao_approx_passes); + if(tree->doindirect && re->wrld.ao_indirect_bounces > 1) + occ_compute_bounces(re, tree, re->wrld.ao_indirect_bounces); for(mesh=re->strandsurface.first; mesh; mesh=mesh->next) { if(!mesh->face || !mesh->co || !mesh->ao) -- cgit v1.2.3 From 6760dbf2adc1fa749dc0107d95745cbe9a6611d5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 15:40:47 +0000 Subject: Bugfix: converting multires with 0 levels would crash. --- source/blender/blenkernel/intern/multires.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index e1f2b22c9f0..66f8da03d24 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -796,7 +796,8 @@ void multires_load_old_250(Mesh *me) if(mdisps) { for(a=0; atotface; a++) - old_mdisps_convert(&me->mface[a], &mdisps[a]); + if(mdisps[a].totdisp) + old_mdisps_convert(&me->mface[a], &mdisps[a]); } } -- cgit v1.2.3 From 9a7f6e937bc80b9e72b503d0b0fb07ea840a3e38 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 17:08:02 +0000 Subject: Fix #20345: weight paint crashes with armature modifier without object. Also fixes: * Weight paint subsurf drawing. * Missing pointer endian conversion in paint brushes. * Use of unitialized variable in screen version patch. * Multires modifier without mdisps layer crash. --- source/blender/blenkernel/intern/cdderivedmesh.c | 1 - source/blender/blenkernel/intern/multires.c | 7 ++ source/blender/blenkernel/intern/subsurf_ccg.c | 77 ++++++++++++++++------ source/blender/blenloader/intern/readfile.c | 19 ++++-- source/blender/editors/sculpt_paint/paint_vertex.c | 19 +++--- 5 files changed, 87 insertions(+), 36 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 77ad9fb7a7b..66c39c6571a 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -761,7 +761,6 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us float *nors= dm->getFaceDataArray(dm, CD_NORMAL); int i, orig, *index = DM_get_face_data_layer(dm, CD_ORIGINDEX); - mc = DM_get_face_data_layer(dm, CD_ID_MCOL); if(!mc) mc = DM_get_face_data_layer(dm, CD_WEIGHT_MCOL); diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 66f8da03d24..139a8d3267f 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -450,6 +450,13 @@ static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, int invert, int int *gridOffset; int i, numGrids, gridSize, dGridSize, dSkip; + if(!mdisps) { + if(invert) + mdisps = CustomData_add_layer(&me->fdata, CD_MDISPS, CD_DEFAULT, NULL, me->totface); + else + return; + } + numGrids = dm->getNumGrids(dm); gridSize = dm->getGridSize(dm); gridData = dm->getGridData(dm); diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index f6abedda2b6..793ea26a602 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -1548,12 +1548,15 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm, { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; CCGSubSurf *ss = ccgdm->ss; - MCol *mcol = DM_get_face_data_layer(dm, CD_MCOL); + MCol *mcol = dm->getFaceDataArray(dm, CD_WEIGHT_MCOL); MTFace *tf = DM_get_face_data_layer(dm, CD_MTFACE); char *faceFlags = ccgdm->faceFlags; int i, totface, flag, gridSize = ccgSubSurf_getGridSize(ss); int gridFaces = gridSize - 1; + if(!mcol) + mcol = dm->getFaceDataArray(dm, CD_MCOL); + totface = ccgSubSurf_getNumFaces(ss); for(i = 0; i < totface; i++) { CCGFace *f = ccgdm->faceMap[i].face; @@ -1719,21 +1722,35 @@ static void ccgDM_drawUVEdges(DerivedMesh *dm) static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; CCGSubSurf *ss = ccgdm->ss; - CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss); + MCol *mcol= NULL; int i, gridSize = ccgSubSurf_getGridSize(ss); char *faceFlags = ccgdm->faceFlags; + int gridFaces = gridSize - 1, totface; - for (i=0; !ccgFaceIterator_isStopped(fi); i++,ccgFaceIterator_next(fi)) { - CCGFace *f = ccgFaceIterator_getCurrent(fi); + if(useColors) { + mcol = dm->getFaceDataArray(dm, CD_WEIGHT_MCOL); + if(!mcol) + mcol = dm->getFaceDataArray(dm, CD_MCOL); + } + + totface = ccgSubSurf_getNumFaces(ss); + for(i = 0; i < totface; i++) { + CCGFace *f = ccgdm->faceMap[i].face; int S, x, y, numVerts = ccgSubSurf_getFaceNumVerts(f); int drawSmooth, index = ccgDM_getFaceMapIndex(ss, f); int origIndex; + unsigned char *cp= NULL; origIndex = GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f)); if(faceFlags) drawSmooth = (faceFlags[origIndex*2] & ME_SMOOTH); else drawSmooth = 1; - + + if(mcol) { + cp= (unsigned char*)mcol; + mcol += gridFaces*gridFaces*numVerts*4; + } + if (index!=-1) { int draw; draw = setDrawOptions==NULL ? 1 : setDrawOptions(userData, index, &drawSmooth); @@ -1748,41 +1765,61 @@ static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *u DMGridData *faceGridData = ccgSubSurf_getFaceGridDataArray(ss, f, S); if (drawSmooth) { glShadeModel(GL_SMOOTH); - for (y=0; yno); glVertex3fv(a->co); + if(cp) glColor3ub(cp[7], cp[6], cp[5]); glNormal3fv(b->no); glVertex3fv(b->co); + + if(x != gridFaces-1) { + if(cp) cp += 16; + } } + + a = &faceGridData[(y+0)*gridSize + x]; + b = &faceGridData[(y+1)*gridSize + x]; + + if(cp) glColor3ub(cp[15], cp[14], cp[13]); + glNormal3fv(a->no); + glVertex3fv(a->co); + if(cp) glColor3ub(cp[11], cp[10], cp[9]); + glNormal3fv(b->no); + glVertex3fv(b->co); + + if(cp) cp += 16; + glEnd(); } } else { glShadeModel(GL_FLAT); glBegin(GL_QUADS); - for (y=0; ypaint_cursor= NULL; - (*paint)->brushes= newdataadr(fd, (*paint)->brushes); + Paint *p; + + p= (*paint)= newdataadr(fd, (*paint)); + if(p) { + p->paint_cursor= NULL; + p->brushes= newdataadr(fd, p->brushes); + test_pointer_array(fd, (void**)&p->brushes); } } @@ -4309,6 +4312,7 @@ static void direct_link_scene(FileData *fd, Scene *sce) direct_link_paint(fd, (Paint**)&sce->toolsettings->wpaint); sce->toolsettings->imapaint.paint.brushes= newdataadr(fd, sce->toolsettings->imapaint.paint.brushes); + test_pointer_array(fd, (void**)&sce->toolsettings->imapaint.paint.brushes); sce->toolsettings->imapaint.paintcursor= NULL; sce->toolsettings->particle.paintcursor= NULL; @@ -10115,8 +10119,11 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } /* clear hanging 'temp' screens from older 2.5 files*/ if (main->versionfile == 250) { - bScreen *screen; - for(screen= main->screen.first; screen; screen= screen->id.next) { + bScreen *screen, *nextscreen; + + for(screen= main->screen.first; screen; screen= nextscreen) { + nextscreen= screen->id.next; + if (screen->full == SCREENTEMP) free_libblock(&main->screen, screen); } diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index 7021d76b1c4..56e020e22aa 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -1300,15 +1300,18 @@ static char *wpaint_make_validmap(Mesh *me, Object *ob) if (md->type == eModifierType_Armature) { amd = (ArmatureModifierData*) md; - pose = amd->object->pose; - - for (chan=pose->chanbase.first; chan; chan=chan->next) { - if (chan->bone->flag & BONE_NO_DEFORM) - continue; - if (BLI_ghash_haskey(gh, chan->name)) { - BLI_ghash_remove(gh, chan->name, NULL, NULL); - BLI_ghash_insert(gh, chan->name, SET_INT_IN_POINTER(1)); + if(amd->object && amd->object->pose) { + pose = amd->object->pose; + + for (chan=pose->chanbase.first; chan; chan=chan->next) { + if (chan->bone->flag & BONE_NO_DEFORM) + continue; + + if (BLI_ghash_haskey(gh, chan->name)) { + BLI_ghash_remove(gh, chan->name, NULL, NULL); + BLI_ghash_insert(gh, chan->name, SET_INT_IN_POINTER(1)); + } } } } -- cgit v1.2.3 From 6e1e8a66bb14583a6d50ea1fbf579fb47b6c26cc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 18:15:48 +0000 Subject: Fix #20118: uv editor, changing active face did not change image. --- source/blender/editors/space_image/space_image.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 2f839feeb36..cde81ad7cf3 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -305,6 +305,7 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn) switch(wmn->data) { case ND_DATA: case ND_SELECT: + ED_area_tag_refresh(sa); ED_area_tag_redraw(sa); break; } -- cgit v1.2.3 From 35cda1f940497574b387f226bcb5b3a11fe2a2d9 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 18:27:38 +0000 Subject: Fix #20076: SSS renders incorrectly when used by objects in a particle system. --- source/blender/render/intern/source/zbuf.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index a3a714553d2..ac3474e51e5 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -2587,14 +2587,14 @@ void zbuffer_sss(RenderPart *pa, unsigned int lay, void *handle, void (*func)(vo v3= vlr->v3; v4= vlr->v4; - c1= zbuf_part_project(cache, v1->index, winmat, bounds, v1->co, ho1); - c2= zbuf_part_project(cache, v2->index, winmat, bounds, v2->co, ho2); - c3= zbuf_part_project(cache, v3->index, winmat, bounds, v3->co, ho3); + c1= zbuf_part_project(cache, v1->index, obwinmat, bounds, v1->co, ho1); + c2= zbuf_part_project(cache, v2->index, obwinmat, bounds, v2->co, ho2); + c3= zbuf_part_project(cache, v3->index, obwinmat, bounds, v3->co, ho3); /* partclipping doesn't need viewplane clipping */ partclip= c1 & c2 & c3; if(v4) { - c4= zbuf_part_project(cache, v4->index, winmat, bounds, v4->co, ho4); + c4= zbuf_part_project(cache, v4->index, obwinmat, bounds, v4->co, ho4); partclip &= c4; } -- cgit v1.2.3 From 163d8111bea1e6c6a46a75bf77c024021beb7b6d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 19:17:27 +0000 Subject: Fix crash loading old files with physics systems without effector weights. --- source/blender/blenloader/intern/readfile.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 91f94b54468..384b1fcfd4d 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3128,9 +3128,8 @@ static void direct_link_particlesettings(FileData *fd, ParticleSettings *part) part->pd= newdataadr(fd, part->pd); part->pd2= newdataadr(fd, part->pd2); - if(part->effector_weights) - part->effector_weights = newdataadr(fd, part->effector_weights); - else + part->effector_weights = newdataadr(fd, part->effector_weights); + if(!part->effector_weights) part->effector_weights = BKE_add_effector_weights(part->eff_group); link_list(fd, &part->dupliweights); @@ -3803,9 +3802,8 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) clmd->sim_parms->reset = 0; } - if(clmd->sim_parms->effector_weights) - clmd->sim_parms->effector_weights = newdataadr(fd, clmd->sim_parms->effector_weights); - else + clmd->sim_parms->effector_weights = newdataadr(fd, clmd->sim_parms->effector_weights); + if(!clmd->sim_parms->effector_weights) clmd->sim_parms->effector_weights = BKE_add_effector_weights(NULL); } @@ -3832,9 +3830,8 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) smd->domain->tex_shadow = NULL; smd->domain->tex_wt = NULL; - if(smd->domain->effector_weights) - smd->domain->effector_weights = newdataadr(fd, smd->domain->effector_weights); - else + smd->domain->effector_weights = newdataadr(fd, smd->domain->effector_weights); + if(!smd->domain->effector_weights) smd->domain->effector_weights = BKE_add_effector_weights(NULL); direct_link_pointcache_list(fd, &(smd->domain->ptcaches[0]), &(smd->domain->point_cache[0])); @@ -4052,9 +4049,8 @@ static void direct_link_object(FileData *fd, Object *ob) } } - if(sb->effector_weights) - sb->effector_weights = newdataadr(fd, sb->effector_weights); - else + sb->effector_weights = newdataadr(fd, sb->effector_weights); + if(!sb->effector_weights) sb->effector_weights = BKE_add_effector_weights(NULL); direct_link_pointcache_list(fd, &sb->ptcaches, &sb->pointcache); -- cgit v1.2.3 From face5047d0d2f36018bd32541501fc0263b40086 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 19:39:54 +0000 Subject: Fix #20113: CLICK events stop working when opening a new file. --- source/blender/windowmanager/intern/wm_event_system.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 906a166a28c..710f9897c94 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -828,7 +828,7 @@ static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi) static int wm_event_always_pass(wmEvent *event) { /* some events we always pass on, to ensure proper communication */ - return ELEM5(event->type, TIMER, TIMER0, TIMER1, TIMER2, WINDEACTIVATE); + return ISTIMER(event->type) || (event->type == WINDEACTIVATE); } /* operator exists */ @@ -1367,8 +1367,8 @@ void wm_event_do_handlers(bContext *C) } /* store last event for this window */ - /* mousemove event don't overwrite last type */ - if (event->type != MOUSEMOVE) { + /* mousemove and timer events don't overwrite last type */ + if (event->type != MOUSEMOVE && !ISTIMER(event->type)) { if (wm_action_not_handled(action)) { if (win->last_type == event->type) { /* set click time on first click (press -> release) */ -- cgit v1.2.3 From a133e57bf36d1eef70442ada71baac68770b780e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 20:01:52 +0000 Subject: Fix #20233: crash when entering - characters in text object, with short textbox width. I can't tell if this is working correct, the code is very cryptic, with gotos even, but seems there is not enough space allocated to permit splitting each character to it's own line. --- source/blender/blenkernel/intern/font.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index e2dccf02b40..1a63f97e310 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -705,10 +705,10 @@ struct chartrans *BKE_text_to_curve(Scene *scene, Object *ob, int mode) /* We assume the worst case: 1 character per line (is freed at end anyway) */ - linedata= MEM_mallocN(sizeof(float)*(slen+2),"buildtext2"); - linedata2= MEM_mallocN(sizeof(float)*(slen+2),"buildtext3"); - linedata3= MEM_callocN(sizeof(float)*(slen+2),"buildtext4"); - linedata4= MEM_callocN(sizeof(float)*(slen+2),"buildtext5"); + linedata= MEM_mallocN(sizeof(float)*(slen*2 + 1),"buildtext2"); + linedata2= MEM_mallocN(sizeof(float)*(slen*2 + 1),"buildtext3"); + linedata3= MEM_callocN(sizeof(float)*(slen*2 + 1),"buildtext4"); + linedata4= MEM_callocN(sizeof(float)*(slen*2 + 1),"buildtext5"); linedist= cu->linedist; -- cgit v1.2.3 From 231ddb67b120f064f859cd29f2a7e3b54eae5098 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 20:37:05 +0000 Subject: Fix #19897: WM_OT_redraw_timer memory leak using Draw Window. --- source/blender/windowmanager/intern/wm_operators.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index d1e004a0a20..99e34e129d0 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2550,8 +2550,10 @@ static int redraw_timer_exec(bContext *C, wmOperator *op) CTX_wm_area_set(C, sa); for(ar_iter= sa->regionbase.first; ar_iter; ar_iter= ar_iter->next) { - CTX_wm_region_set(C, ar_iter); - ED_region_do_draw(C, ar_iter); + if(ar_iter->swinid) { + CTX_wm_region_set(C, ar_iter); + ED_region_do_draw(C, ar_iter); + } } } -- cgit v1.2.3 From 639dd6d25ec07535c8b856d527ffcc75c9a7b6d2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 20:47:02 +0000 Subject: Fix #20362: multires conversion from 2.5alpha0 not working. It's still not entirely the same, the tangets are a bit different at face edges/corners. --- source/blender/blenkernel/intern/multires.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 139a8d3267f..88c6788b723 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -784,6 +784,11 @@ static void old_mdisps_convert(MFace *mface, MDisps *mdisp) for(x = 0; x < newside; ++x, ++out) { old_mdisps_rotate(S, newside, oldside, x, y, &u, &v); old_mdisps_bilinear(*out, mdisp->disps, oldside, u, v); + + if(S == 1) { (*out)[1]= -(*out)[1]; } + else if(S == 2) { SWAP(float, (*out)[0], (*out)[1]); } + else if(S == 3) { (*out)[0]= -(*out)[0]; } + else if(S == 0) { SWAP(float, (*out)[0], (*out)[1]); (*out)[0]= -(*out)[0]; (*out)[1]= -(*out)[1]; }; } } } -- cgit v1.2.3 From e7b4d36fd6a57fb88fdca861dc251a6a8bdf6355 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 14 Dec 2009 20:56:19 +0000 Subject: * new metarig type for the durian dragon leg (original rig by Cessen) * option to roll the delta of the arm rig. * fix to copy metarig type * renamed EditBone.align() --> EditBone.align_roll() * Added EditBone.align_orientation(other) * Added bone.vector: same as (bone.tail - bone.head) --- source/blender/makesrna/intern/rna_armature_api.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature_api.c b/source/blender/makesrna/intern/rna_armature_api.c index 31bd7275487..22bd7313166 100644 --- a/source/blender/makesrna/intern/rna_armature_api.c +++ b/source/blender/makesrna/intern/rna_armature_api.c @@ -40,7 +40,7 @@ #include "ED_armature.h" -void rna_EditBone_align(EditBone *ebo, float *no) +void rna_EditBone_align_roll(EditBone *ebo, float *no) { if(!is_zero_v3(no)) { float normal[3]; @@ -57,7 +57,7 @@ void RNA_api_armature_edit_bone(StructRNA *srna) FunctionRNA *func; PropertyRNA *parm; - func= RNA_def_function(srna, "align", "rna_EditBone_align"); + func= RNA_def_function(srna, "align_roll", "rna_EditBone_align_roll"); RNA_def_function_ui_description(func, "Align the bone to a localspace vector."); parm= RNA_def_float_vector(func, "vector", 3, NULL, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX); RNA_def_property_flag(parm, PROP_REQUIRED); -- cgit v1.2.3 From fd703342420da13d585254496063b6cab7b3e2e2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Dec 2009 21:31:36 +0000 Subject: Fix #20250: smooth view poor performance compared to 2.49. Increased the frame rate of smooth view from 30 to 100, makes it looks smoother when it can redraw at that speed, otherwise will simply drop frames anyway. --- source/blender/editors/space_view3d/view3d_view.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index a4f24e90080..424ae13ca18 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -297,7 +297,7 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo if(rv3d->smooth_timer) WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), rv3d->smooth_timer); /* TIMER1 is hardcoded in keymap */ - rv3d->smooth_timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER1, 1.0/30.0); /* max 30 frs/sec */ + rv3d->smooth_timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER1, 1.0/100.0); /* max 30 frs/sec */ return; } -- cgit v1.2.3 From 18cc2b76c2878846a540c463bd6de8ac96ab7611 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Mon, 14 Dec 2009 21:42:25 +0000 Subject: Sequencer drawing cleanup (Part 1) Separated preview drawing into own ARegion, this should make using View2D possible The Sequencer now has three view types: Sequencer, Preview and split Sequencer/Preview. Changing the preview can be done either by the combobox in the header or toggling through those types with CTRL+TAB. Notes: * Icon for split Sequencer/Preview view missing still. * Naming items in the comboboxes can be improved (just Preview instead of Image Preview?) Next steps: * bringing back View2D handling (zoom/pan) for image preview * experimenting with splitting the Preview ARegion for In/Out editing --- source/blender/blenloader/intern/readfile.c | 23 +++ source/blender/editors/include/ED_sequencer.h | 3 + .../editors/space_sequencer/sequencer_edit.c | 124 ++++++++++++---- .../editors/space_sequencer/sequencer_intern.h | 4 + .../editors/space_sequencer/sequencer_ops.c | 16 ++- .../editors/space_sequencer/space_sequencer.c | 158 +++++++++++++++++++-- source/blender/makesdna/DNA_screen_types.h | 1 + source/blender/makesdna/DNA_space_types.h | 10 +- source/blender/makesrna/intern/rna_space.c | 23 ++- 9 files changed, 311 insertions(+), 51 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 384b1fcfd4d..ef0022ccb66 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6003,6 +6003,12 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb) ar->regiontype= RGN_TYPE_UI; ar->alignment= RGN_ALIGN_TOP; break; + case SPACE_SEQ: + ar= MEM_callocN(sizeof(ARegion), "preview area for sequencer"); + BLI_addtail(lb, ar); + ar->regiontype= RGN_TYPE_UI; + ar->alignment= RGN_ALIGN_TOP; + break; case SPACE_VIEW3D: /* toolbar */ ar= MEM_callocN(sizeof(ARegion), "toolbar for view3d"); @@ -10169,6 +10175,23 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } } + { /* fix for new view type in sequencer */ + bScreen *screen; + ScrArea *sa; + SpaceLink *sl; + + for(screen= main->screen.first; screen; screen= screen->id.next) { + for(sa= screen->areabase.first; sa; sa= sa->next) { + for(sl= sa->spacedata.first; sl; sl= sl->next) { + if(sl->spacetype==SPACE_SEQ) { + SpaceSeq *sseq = (SpaceSeq *)sl; + if (sseq->view == 0) sseq->view = SEQ_VIEW_SEQUENCE; + if (sseq->mainb == 0) sseq->mainb = SEQ_DRAW_IMG_IMBUF; + } + } + } + } + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ diff --git a/source/blender/editors/include/ED_sequencer.h b/source/blender/editors/include/ED_sequencer.h index 2a3b5445dfe..07c4dd6ca41 100644 --- a/source/blender/editors/include/ED_sequencer.h +++ b/source/blender/editors/include/ED_sequencer.h @@ -28,4 +28,7 @@ #define SEQ_ZOOM_FAC(szoom) (szoom > 0)? (szoom) : (szoom == 0)? (1.0) : (-1.0/szoom) +/* in space_sequencer.c, for rna update function */ +void ED_sequencer_update_view(bContext *C, int view); + #endif /* ED_SEQUENCER_H */ diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index c421c7fbb85..277d32d6360 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -83,6 +83,7 @@ #include "ED_screen.h" #include "ED_transform.h" #include "ED_util.h" +#include "ED_sequencer.h" #include "UI_interface.h" #include "UI_resources.h" @@ -2263,6 +2264,39 @@ void SEQUENCER_OT_meta_separate(wmOperatorType *ot) /* view_all operator */ static int sequencer_view_all_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + bScreen *sc= CTX_wm_screen(C); + ScrArea *area= CTX_wm_area(C); + ARegion *ar= CTX_wm_region(C); + View2D *v2d= UI_view2d_fromcontext(C); + + v2d->cur= v2d->tot; + UI_view2d_curRect_validate(v2d); + UI_view2d_sync(sc, area, v2d, V2D_LOCK_COPY); + + ED_area_tag_redraw(CTX_wm_area(C)); + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_view_all(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "View All"; + ot->idname= "SEQUENCER_OT_view_all"; + ot->description="View all the strips in the sequencer."; + + /* api callbacks */ + ot->exec= sequencer_view_all_exec; + + ot->poll= ED_operator_sequencer_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER; +} + +/* view_all operator */ +static int sequencer_view_all_preview_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); bScreen *sc= CTX_wm_screen(C); @@ -2271,55 +2305,49 @@ static int sequencer_view_all_exec(bContext *C, wmOperator *op) SpaceSeq *sseq= area->spacedata.first; View2D *v2d= UI_view2d_fromcontext(C); - if (sseq->mainb==SEQ_DRAW_SEQUENCE) { - v2d->cur= v2d->tot; - UI_view2d_curRect_validate(v2d); - UI_view2d_sync(sc, area, v2d, V2D_LOCK_COPY); - } else { - /* Like zooming on an image view */ - float zoomX, zoomY; - int width, height, imgwidth, imgheight; - width = ar->winx; - height = ar->winy; + /* Like zooming on an image view */ + float zoomX, zoomY; + int width, height, imgwidth, imgheight; - seq_reset_imageofs(sseq); + width = ar->winx; + height = ar->winy; - imgwidth= (scene->r.size*scene->r.xsch)/100; - imgheight= (scene->r.size*scene->r.ysch)/100; + seq_reset_imageofs(sseq); - /* Apply aspect, dosnt need to be that accurate */ - imgwidth= (int)(imgwidth * ((float)scene->r.xasp / (float)scene->r.yasp)); + imgwidth= (scene->r.size*scene->r.xsch)/100; + imgheight= (scene->r.size*scene->r.ysch)/100; - if (((imgwidth >= width) || (imgheight >= height)) && - ((width > 0) && (height > 0))) { + /* Apply aspect, dosnt need to be that accurate */ + imgwidth= (int)(imgwidth * ((float)scene->r.xasp / (float)scene->r.yasp)); - /* Find the zoom value that will fit the image in the image space */ - zoomX = ((float)width) / ((float)imgwidth); - zoomY = ((float)height) / ((float)imgheight); - sseq->zoom= (zoomX < zoomY) ? zoomX : zoomY; + if (((imgwidth >= width) || (imgheight >= height)) && + ((width > 0) && (height > 0))) { - sseq->zoom = 1.0f / power_of_2(1/ MIN2(zoomX, zoomY) ); - } - else { - sseq->zoom= 1.0f; - } - } + /* Find the zoom value that will fit the image in the image space */ + zoomX = ((float)width) / ((float)imgwidth); + zoomY = ((float)height) / ((float)imgheight); + sseq->zoom= (zoomX < zoomY) ? zoomX : zoomY; + sseq->zoom = 1.0f / power_of_2(1/ MIN2(zoomX, zoomY) ); + } + else { + sseq->zoom= 1.0f; + } ED_area_tag_redraw(CTX_wm_area(C)); return OPERATOR_FINISHED; } -void SEQUENCER_OT_view_all(wmOperatorType *ot) +void SEQUENCER_OT_view_all_preview(wmOperatorType *ot) { /* identifiers */ ot->name= "View All"; - ot->idname= "SEQUENCER_OT_view_all"; - ot->description="View all the strips in the sequencer."; + ot->idname= "SEQUENCER_OT_view_all_preview"; + ot->description="Zoom preview to fit in the area."; /* api callbacks */ - ot->exec= sequencer_view_all_exec; + ot->exec= sequencer_view_all_preview_exec; ot->poll= ED_operator_sequencer_active; @@ -2327,8 +2355,42 @@ void SEQUENCER_OT_view_all(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER; } +static EnumPropertyItem view_type_items[] = { + {SEQ_VIEW_SEQUENCE, "SEQUENCER", ICON_SEQ_SEQUENCER, "Sequencer", ""}, + {SEQ_VIEW_PREVIEW, "PREVIEW", ICON_SEQ_PREVIEW, "Image Preview", ""}, + {SEQ_VIEW_SEQUENCE_PREVIEW, "SEQUENCER_PREVIEW", ICON_SEQ_SEQUENCER, "Sequencer and Image Preview", ""}, + {0, NULL, 0, NULL, NULL}}; /* view_all operator */ +static int sequencer_view_toggle_exec(bContext *C, wmOperator *op) +{ + SpaceSeq *sseq= CTX_wm_space_data(C); + + sseq->view++; + if (sseq->view > SEQ_VIEW_SEQUENCE_PREVIEW) sseq->view = SEQ_VIEW_SEQUENCE; + + ED_sequencer_update_view(C, sseq->view); + + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_view_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "View Toggle"; + ot->idname= "SEQUENCER_OT_view_toggle"; + ot->description="Toggle between sequencer views (sequence, preview, both)."; + + /* api callbacks */ + ot->exec= sequencer_view_toggle_exec; + ot->poll= ED_operator_sequencer_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER; +} + + +/* view_selected operator */ static int sequencer_view_selected_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index a68001e536b..e5e159138fc 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -95,9 +95,13 @@ void SEQUENCER_OT_swap_right(struct wmOperatorType *ot); void SEQUENCER_OT_swap_left(struct wmOperatorType *ot); void SEQUENCER_OT_rendersize(struct wmOperatorType *ot); +void SEQUENCER_OT_view_toggle(struct wmOperatorType *ot); void SEQUENCER_OT_view_all(struct wmOperatorType *ot); void SEQUENCER_OT_view_selected(struct wmOperatorType *ot); +/* preview specific operators */ +void SEQUENCER_OT_view_all_preview(struct wmOperatorType *ot); + /* sequencer_select.c */ void SEQUENCER_OT_select_all_toggle(struct wmOperatorType *ot); void SEQUENCER_OT_select(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index 73a2070ca54..2636fa67c47 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -85,7 +85,9 @@ void sequencer_operatortypes(void) WM_operatortype_append(SEQUENCER_OT_view_all); WM_operatortype_append(SEQUENCER_OT_view_selected); - + WM_operatortype_append(SEQUENCER_OT_view_all_preview); + WM_operatortype_append(SEQUENCER_OT_view_toggle); + /* sequencer_select.c */ WM_operatortype_append(SEQUENCER_OT_select_all_toggle); WM_operatortype_append(SEQUENCER_OT_select_inverse); @@ -110,9 +112,14 @@ void sequencer_operatortypes(void) void sequencer_keymap(wmKeyConfig *keyconf) { - wmKeyMap *keymap= WM_keymap_find(keyconf, "Sequencer", SPACE_SEQ, 0); + wmKeyMap *keymap= WM_keymap_find(keyconf, "SequencerCommon", SPACE_SEQ, 0); wmKeyMapItem *kmi; - + + /* operators common to sequence and preview view */ + WM_keymap_add_item(keymap, "SEQUENCER_OT_view_toggle", TABKEY, KM_PRESS, KM_CTRL, 0); + + /* operators for sequence */ + keymap= WM_keymap_find(keyconf, "Sequencer", SPACE_SEQ, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); @@ -214,5 +221,8 @@ void sequencer_keymap(wmKeyConfig *keyconf) WM_keymap_add_menu(keymap, "SEQUENCER_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); transform_keymap_for_space(keyconf, keymap, SPACE_SEQ); + + keymap= WM_keymap_find(keyconf, "SequencerPreview", SPACE_SEQ, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", HOMEKEY, KM_PRESS, 0, 0); } diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index 1e2fc1f59d3..4c610dc6668 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -90,6 +90,69 @@ ARegion *sequencer_has_buttons_region(ScrArea *sa) return arnew; } +ARegion *sequencer_find_region(ScrArea *sa, short type) +{ + ARegion *ar=NULL; + + for(ar= sa->regionbase.first; ar; ar= ar->next) + if(ar->regiontype==type) + return ar; + + return ar; +} + +void ED_sequencer_update_view(bContext *C, int view) +{ + ScrArea *sa= CTX_wm_area(C); + + ARegion *ar_main= sequencer_find_region(sa, RGN_TYPE_WINDOW); + ARegion *ar_preview= sequencer_find_region(sa, RGN_TYPE_PREVIEW); + + switch (view) { + case SEQ_VIEW_SEQUENCE: + if (ar_main->flag & RGN_FLAG_HIDDEN) { + ar_main->flag &= ~RGN_FLAG_HIDDEN; + ar_main->v2d.flag &= ~V2D_IS_INITIALISED; + } + if (!(ar_preview->flag & RGN_FLAG_HIDDEN)) { + ar_preview->flag |= RGN_FLAG_HIDDEN; + ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; + WM_event_remove_handlers(C, &ar_preview->handlers); + } + ar_main->alignment= RGN_ALIGN_NONE; + ar_preview->alignment= RGN_ALIGN_NONE; + break; + case SEQ_VIEW_PREVIEW: + if (!(ar_main->flag & RGN_FLAG_HIDDEN)) { + ar_main->flag |= RGN_FLAG_HIDDEN; + ar_main->v2d.flag &= ~V2D_IS_INITIALISED; + WM_event_remove_handlers(C, &ar_main->handlers); + } + if (ar_preview->flag & RGN_FLAG_HIDDEN) { + ar_preview->flag &= ~RGN_FLAG_HIDDEN; + ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; + } + ar_main->alignment= RGN_ALIGN_NONE; + ar_preview->alignment= RGN_ALIGN_NONE; + break; + case SEQ_VIEW_SEQUENCE_PREVIEW: + if (ar_main->flag & RGN_FLAG_HIDDEN) { + ar_main->flag &= ~RGN_FLAG_HIDDEN; + ar_main->v2d.flag &= ~V2D_IS_INITIALISED; + } + if (ar_preview->flag & RGN_FLAG_HIDDEN) { + ar_preview->flag &= ~RGN_FLAG_HIDDEN; + ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; + } + ar_main->alignment= RGN_ALIGN_NONE; + ar_preview->alignment= RGN_ALIGN_TOP; + break; + } + + ED_area_initialize(CTX_wm_manager(C), CTX_wm_window(C), sa); + ED_area_tag_redraw(sa); +} + /* ******************** default callbacks for sequencer space ***************** */ @@ -103,8 +166,8 @@ static SpaceLink *sequencer_new(const bContext *C) sseq->spacetype= SPACE_SEQ; sseq->zoom= 4; sseq->chanshown = 0; - - + sseq->view = SEQ_VIEW_SEQUENCE; + sseq->mainb = SEQ_DRAW_IMG_IMBUF; /* header */ ar= MEM_callocN(sizeof(ARegion), "header for sequencer"); @@ -120,6 +183,13 @@ static SpaceLink *sequencer_new(const bContext *C) ar->alignment= RGN_ALIGN_RIGHT; ar->flag = RGN_FLAG_HIDDEN; + /* preview area */ + ar= MEM_callocN(sizeof(ARegion), "preview area for sequencer"); + BLI_addtail(&sseq->regionbase, ar); + ar->regiontype= RGN_TYPE_PREVIEW; + ar->alignment= RGN_ALIGN_TOP; + ar->flag |= RGN_FLAG_HIDDEN; + /* main area */ ar= MEM_callocN(sizeof(ARegion), "main area for sequencer"); @@ -150,7 +220,7 @@ static SpaceLink *sequencer_new(const bContext *C) ar->v2d.keepzoom= 0; ar->v2d.keeptot= 0; ar->v2d.align= V2D_ALIGN_NO_NEG_Y; - + return (SpaceLink *)sseq; } @@ -181,7 +251,7 @@ static SpaceLink *sequencer_duplicate(SpaceLink *sl) } - +/* *********************** sequencer (main) region ************************ */ /* add handlers, stuff you only do once or on area/region changes */ static void sequencer_main_area_init(wmWindowManager *wm, ARegion *ar) { @@ -189,6 +259,9 @@ static void sequencer_main_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy); + keymap= WM_keymap_find(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0); + WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); + /* own keymap */ keymap= WM_keymap_find(wm->defaultconf, "Sequencer", SPACE_SEQ, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); @@ -197,18 +270,9 @@ static void sequencer_main_area_init(wmWindowManager *wm, ARegion *ar) static void sequencer_main_area_draw(const bContext *C, ARegion *ar) { ScrArea *sa= CTX_wm_area(C); - SpaceSeq *sseq= sa->spacedata.first; - Scene *scene= CTX_data_scene(C); - - if (sseq->mainb != SEQ_DRAW_SEQUENCE) { - /* image-viewer types */ - draw_image_seq(scene, ar, sseq); - } - else { - /* NLE - strip editing timeline interface */ - draw_timeline_seq(C, ar); - } + /* NLE - strip editing timeline interface */ + draw_timeline_seq(C, ar); } @@ -248,6 +312,60 @@ static void sequencer_main_area_listener(ARegion *ar, wmNotifier *wmn) } } +/* *********************** preview region ************************ */ +static void sequencer_preview_area_init(wmWindowManager *wm, ARegion *ar) +{ + wmKeyMap *keymap; + + UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy); + + keymap= WM_keymap_find(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0); + WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); + + /* own keymap */ + keymap= WM_keymap_find(wm->defaultconf, "SequencerPreview", SPACE_SEQ, 0); + WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); +} + +static void sequencer_preview_area_draw(const bContext *C, ARegion *ar) +{ + ScrArea *sa= CTX_wm_area(C); + SpaceSeq *sseq= sa->spacedata.first; + Scene *scene= CTX_data_scene(C); + + /* XXX temp fix for wrong setting in sseq->mainb */ + if (sseq->mainb == SEQ_DRAW_SEQUENCE) sseq->mainb = SEQ_DRAW_IMG_IMBUF; + draw_image_seq(scene, ar, sseq); +} + +static void sequencer_preview_area_listener(ARegion *ar, wmNotifier *wmn) +{ + /* context changes */ + switch(wmn->category) { + case NC_SCENE: + switch(wmn->data) { + case ND_FRAME: + case ND_MARKERS: + case ND_SEQUENCER: + case ND_SEQUENCER_SELECT: + ED_region_tag_redraw(ar); + break; + } + break; + case NC_SPACE: + if(wmn->data == ND_SPACE_SEQUENCER) + ED_region_tag_redraw(ar); + break; + case NC_ID: + switch(wmn->data) { + case NA_RENAME: + ED_region_tag_redraw(ar); + break; + } + break; + } +} + /* *********************** buttons region ************************ */ /* add handlers, stuff you only do once or on area/region changes */ @@ -312,6 +430,16 @@ void ED_spacetype_sequencer(void) art->keymapflag= ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES|ED_KEYMAP_ANIMATION; BLI_addhead(&st->regiontypes, art); + + /* preview */ + art= MEM_callocN(sizeof(ARegionType), "spacetype sequencer region"); + art->regionid = RGN_TYPE_PREVIEW; + art->minsizey = 240; // XXX + art->init= sequencer_preview_area_init; + art->draw= sequencer_preview_area_draw; + art->listener= sequencer_preview_area_listener; + art->keymapflag= ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES|ED_KEYMAP_ANIMATION; + BLI_addhead(&st->regiontypes, art); /* regions: listview/buttons */ art= MEM_callocN(sizeof(ARegionType), "spacetype sequencer region"); diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h index 18c7a819eb3..2bc7b1e8431 100644 --- a/source/blender/makesdna/DNA_screen_types.h +++ b/source/blender/makesdna/DNA_screen_types.h @@ -219,6 +219,7 @@ typedef struct ARegion { #define RGN_TYPE_UI 4 #define RGN_TYPE_TOOLS 5 #define RGN_TYPE_TOOL_PROPS 6 +#define RGN_TYPE_PREVIEW 7 /* region alignment */ #define RGN_ALIGN_NONE 0 diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 40d59b666bf..e02d719470f 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -146,7 +146,9 @@ typedef struct SpaceSeq { short zebra; int flag; float zoom; - + int view; /* see SEQ_VIEW_* below */ + int pad; + struct bGPdata *gpd; /* grease-pencil data */ } SpaceSeq; @@ -857,6 +859,12 @@ enum { #define SEQ_DRAW_GPENCIL 16 #define SEQ_NO_DRAW_CFRANUM 32 +/* sseq->view */ +#define SEQ_VIEW_SEQUENCE 1 +#define SEQ_VIEW_PREVIEW 2 +#define SEQ_VIEW_SEQUENCE_PREVIEW 3 + + /* space types, moved from DNA_screen_types.h */ enum { SPACE_EMPTY, diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 382ab96f059..2fd0bf1810a 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -106,6 +106,7 @@ EnumPropertyItem autosnap_items[] = { #include "ED_image.h" #include "ED_screen.h" #include "ED_view3d.h" +#include "ED_sequencer.h" #include "IMB_imbuf_types.h" @@ -482,6 +483,13 @@ static int rna_SpaceGraphEditor_has_ghost_curves_get(PointerRNA *ptr) return (sipo->ghostCurves.first != NULL); } +static void rna_Sequencer_display_mode_update(bContext *C, PointerRNA *ptr) +{ + int view = RNA_int_get(ptr, "view_type"); + + ED_sequencer_update_view(C, view); +} + #else static void rna_def_space(BlenderRNA *brna) @@ -1068,8 +1076,13 @@ static void rna_def_space_sequencer(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; + static EnumPropertyItem view_type_items[] = { + {SEQ_VIEW_SEQUENCE, "SEQUENCER", ICON_SEQ_SEQUENCER, "Sequencer", ""}, + {SEQ_VIEW_PREVIEW, "PREVIEW", ICON_SEQ_PREVIEW, "Image Preview", ""}, + {SEQ_VIEW_SEQUENCE_PREVIEW, "SEQUENCER_PREVIEW", ICON_SEQ_SEQUENCER, "Sequencer and Image Preview", ""}, + {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem display_mode_items[] = { - {SEQ_DRAW_SEQUENCE, "SEQUENCER", ICON_SEQ_SEQUENCER, "Sequencer", ""}, {SEQ_DRAW_IMG_IMBUF, "IMAGE", ICON_SEQ_PREVIEW, "Image Preview", ""}, {SEQ_DRAW_IMG_WAVEFORM, "WAVEFORM", ICON_SEQ_LUMA_WAVEFORM, "Luma Waveform", ""}, {SEQ_DRAW_IMG_VECTORSCOPE, "VECTOR_SCOPE", ICON_SEQ_CHROMA_SCOPE, "Chroma Vectorscope", ""}, @@ -1080,6 +1093,14 @@ static void rna_def_space_sequencer(BlenderRNA *brna) RNA_def_struct_sdna(srna, "SpaceSeq"); RNA_def_struct_ui_text(srna, "Space Sequence Editor", "Sequence editor space data."); + /* view type, fairly important */ + prop= RNA_def_property(srna, "view_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "view"); + RNA_def_property_enum_items(prop, view_type_items); + RNA_def_property_ui_text(prop, "View Type", "The type of the Sequencere view (sequencer, preview or both)."); + RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); + RNA_def_property_update(prop, 0, "rna_Sequencer_display_mode_update"); + /* display type, fairly important */ prop= RNA_def_property(srna, "display_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "mainb"); -- cgit v1.2.3 From 03e1afe7ac4d507bf8a41e42049d618313599ab6 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Mon, 14 Dec 2009 22:59:41 +0000 Subject: Sequencer: * fix crash due to missing preview region * had to bump up subversion to catch all files saved without preview region in sequencer. --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenloader/intern/readfile.c | 83 +++++++++++++++++++---------- 2 files changed, 57 insertions(+), 28 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 08503a3d00c..8a7f4da8cbf 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -43,7 +43,7 @@ struct bContext; struct ReportList; #define BLENDER_VERSION 250 -#define BLENDER_SUBVERSION 9 +#define BLENDER_SUBVERSION 10 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index ef0022ccb66..fa878093cc4 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5944,7 +5944,8 @@ static void area_add_header_region(ScrArea *sa, ListBase *lb) static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb) { ARegion *ar; - + ARegion *ar_main; + if(sl) { /* first channels for ipo action nla... */ switch(sl->spacetype) { @@ -6004,10 +6005,16 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb) ar->alignment= RGN_ALIGN_TOP; break; case SPACE_SEQ: + ar_main = (ARegion*)lb->first; + for (; ar_main; ar_main = ar_main->next) { + if (ar_main->regiontype == RGN_TYPE_WINDOW) + break; + } ar= MEM_callocN(sizeof(ARegion), "preview area for sequencer"); - BLI_addtail(lb, ar); - ar->regiontype= RGN_TYPE_UI; + BLI_insertlinkbefore(lb, ar_main, ar); + ar->regiontype= RGN_TYPE_PREVIEW; ar->alignment= RGN_ALIGN_TOP; + ar->flag |= RGN_FLAG_HIDDEN; break; case SPACE_VIEW3D: /* toolbar */ @@ -10159,40 +10166,62 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - /* put 2.50 compatibility code here until next subversion bump */ + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 10)) { - Object *ob; - - /* properly initialise hair clothsim data on old files */ - for(ob = main->object.first; ob; ob = ob->id.next) { - ModifierData *md; - for(md= ob->modifiers.first; md; md= md->next) { - if (md->type == eModifierType_Cloth) { - ClothModifierData *clmd = (ClothModifierData *)md; - if (clmd->sim_parms->velocity_smooth < 0.01f) - clmd->sim_parms->velocity_smooth = 0.f; + { + Object *ob; + + /* properly initialise hair clothsim data on old files */ + for(ob = main->object.first; ob; ob = ob->id.next) { + ModifierData *md; + for(md= ob->modifiers.first; md; md= md->next) { + if (md->type == eModifierType_Cloth) { + ClothModifierData *clmd = (ClothModifierData *)md; + if (clmd->sim_parms->velocity_smooth < 0.01f) + clmd->sim_parms->velocity_smooth = 0.f; + } } } } - } - { /* fix for new view type in sequencer */ - bScreen *screen; - ScrArea *sa; - SpaceLink *sl; - - for(screen= main->screen.first; screen; screen= screen->id.next) { - for(sa= screen->areabase.first; sa; sa= sa->next) { - for(sl= sa->spacedata.first; sl; sl= sl->next) { - if(sl->spacetype==SPACE_SEQ) { - SpaceSeq *sseq = (SpaceSeq *)sl; - if (sseq->view == 0) sseq->view = SEQ_VIEW_SEQUENCE; - if (sseq->mainb == 0) sseq->mainb = SEQ_DRAW_IMG_IMBUF; + { + /* fix for new view type in sequencer */ + bScreen *screen; + ScrArea *sa; + SpaceLink *sl; + + + for(screen= main->screen.first; screen; screen= screen->id.next) { + for(sa= screen->areabase.first; sa; sa= sa->next) { + for(sl= sa->spacedata.first; sl; sl= sl->next) { + if(sl->spacetype==SPACE_SEQ) { + ARegion *ar; + ARegion *ar_main; + ListBase *lb = &sa->regionbase; + SpaceSeq *sseq = (SpaceSeq *)sl; + + if (sseq->view == 0) sseq->view = SEQ_VIEW_SEQUENCE; + if (sseq->mainb == 0) sseq->mainb = SEQ_DRAW_IMG_IMBUF; + + ar_main = (ARegion*)lb->first; + for (; ar_main; ar_main = ar_main->next) { + if (ar_main->regiontype == RGN_TYPE_WINDOW) + break; + } + ar= MEM_callocN(sizeof(ARegion), "preview area for sequencer"); + BLI_insertlinkbefore(lb, ar_main, ar); + ar->regiontype= RGN_TYPE_PREVIEW; + ar->alignment= RGN_ALIGN_TOP; + ar->flag |= RGN_FLAG_HIDDEN; + } } } } } } + /* put 2.50 compatibility code here until next subversion bump */ + + /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ -- cgit v1.2.3 From 6d59a84732e818e8574e67d6f357dbb0317c45fd Mon Sep 17 00:00:00 2001 From: Roland Hess Date: Mon, 14 Dec 2009 23:19:59 +0000 Subject: Patch [19862]: Properly map UV Project from View with camera object. Previously, calling Project from View for UVs when viewing through a camera produced bad results. You had to scale and stretch the resulting UVs, never resulting in a true "from view" with a camera. Now, what you get in the UV editor is what you saw through the camera. --- source/blender/editors/uvedit/uvedit_unwrap_ops.c | 72 ++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c index 8a3e3039352..3dff61505c5 100644 --- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c +++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c @@ -33,6 +33,7 @@ #include "MEM_guardedalloc.h" +#include "DNA_camera_types.h" #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" #include "DNA_object_types.h" @@ -880,6 +881,32 @@ static void uv_from_view_bounds(float target[2], float source[3], float rotmat[4 target[1] = pv[2]; } +static void uv_from_camera(float camsize, float xasp, float yasp, float target[2], float source[3], float rotmat[4][4], float cammat[4][4], int persp) +{ + + float pv4[4]; + + copy_v3_v3(pv4, source); + pv4[3]= 1.0; + + /* rotmat is the object matrix in this case */ + mul_m4_v4(rotmat, pv4); + + /* cammat is the inverse camera matrix */ + mul_m4_v4(cammat, pv4); + + if (pv4[2]==0.0f) pv4[2]=0.00001f; /* don't allow div by 0 */ + + if (persp&&CAM_ORTHO) { + target[0]=((pv4[0]/camsize)*xasp)+0.5f; + target[1]=((pv4[1]/camsize)*yasp)+0.5f; + } + else { + target[0]=((-pv4[0]*(camsize/pv4[2])*xasp)/2)+0.5; + target[1]=((-pv4[1]*(camsize/pv4[2])*yasp)/2)+0.5; + } +} + static void uv_from_view(ARegion *ar, float target[2], float source[3], float rotmat[4][4]) { RegionView3D *rv3d= ar->regiondata; @@ -926,11 +953,14 @@ static int from_view_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); + Camera *camera= NULL; EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data); ARegion *ar= CTX_wm_region(C); + RegionView3D *rv3d= ar->regiondata; EditFace *efa; MTFace *tf; - float rotmat[4][4]; + float invmat[4][4],rotmat[4][4]; + float xasp, yasp, camsize; /* add uvs if they don't exist yet */ if(!ED_uvedit_ensure_uvs(C, scene, obedit)) { @@ -938,6 +968,11 @@ static int from_view_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } + /* establish the camera object, so we can default to view mapping if anything is wrong with it */ + if ((rv3d->persp==RV3D_CAMOB) && (scene->camera) && (scene->camera->type==OB_CAMERA)) { + camera=scene->camera->data; + } + if(RNA_boolean_get(op->ptr, "orthographic")) { uv_map_rotation_matrix(rotmat, ar->regiondata, obedit, 90.0f, 0.0f, 1.0f); @@ -953,6 +988,41 @@ static int from_view_exec(bContext *C, wmOperator *op) } } } + else if (camera) { + + if (camera->type==CAM_PERSP) { + camsize=1/tan(DEG2RAD(camera->angle)/2.0f); /* calcs ez as distance from camera plane to viewer */ + } + else { + camsize=camera->ortho_scale; + } + + if (invert_m4_m4(invmat,scene->camera->obmat)) { + copy_m4_m4(rotmat, obedit->obmat); + + /* also make aspect ratio adjustment factors */ + if (scene->r.xsch > scene->r.ysch) { + xasp=1; + yasp=(float)(scene->r.xsch)/(float)(scene->r.ysch); + } + else { + xasp=(float)(scene->r.ysch)/(float)(scene->r.xsch); + yasp=1; + } + + for(efa= em->faces.first; efa; efa= efa->next) { + if(efa->f & SELECT) { + tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); + + uv_from_camera(camsize, xasp, yasp, tf->uv[0], efa->v1->co, rotmat, invmat, camera->type); + uv_from_camera(camsize, xasp, yasp, tf->uv[1], efa->v2->co, rotmat, invmat, camera->type); + uv_from_camera(camsize, xasp, yasp, tf->uv[2], efa->v3->co, rotmat, invmat, camera->type); + if(efa->v4) + uv_from_camera(camsize, xasp, yasp, tf->uv[3], efa->v4->co, rotmat, invmat, camera->type); + } + } + } + } else { copy_m4_m4(rotmat, obedit->obmat); -- cgit v1.2.3 From 9633d198fbe4ca0f27b8d955ccd29d473364ce6e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 14 Dec 2009 23:35:13 +0000 Subject: solidify from 2.4x (ported from python to C) - shell_angle_to_dist() was using degrees --- source/blender/blenlib/intern/math_base.c | 2 +- source/blender/editors/include/ED_mesh.h | 3 + source/blender/editors/mesh/editmesh_lib.c | 147 ++++++++++++++++++++++++++++ source/blender/editors/mesh/editmesh_mods.c | 43 ++++++++ source/blender/editors/mesh/mesh_intern.h | 2 + source/blender/editors/mesh/mesh_ops.c | 2 + 6 files changed, 198 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/math_base.c b/source/blender/blenlib/intern/math_base.c index c5d0a1090b3..3b63b033342 100644 --- a/source/blender/blenlib/intern/math_base.c +++ b/source/blender/blenlib/intern/math_base.c @@ -100,7 +100,7 @@ float interpf(float target, float origin, float fac) * the distance gets very high, 180d would be inf, but this case isn't valid */ float shell_angle_to_dist(const float angle) { - return (angle < SMALL_NUMBER) ? 1.0f : fabsf(1.0f / cosf(angle * (M_PI/180.0f))); + return (angle < SMALL_NUMBER) ? 1.0f : fabsf(1.0f / cosf(angle)); } /* used for zoom values*/ diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index 58f4a566ff7..aab364bf686 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -147,6 +147,9 @@ void EM_free_uv_vert_map(struct UvVertMap *vmap); void EM_add_data_layer(struct EditMesh *em, struct CustomData *data, int type); void EM_free_data_layer(struct EditMesh *em, struct CustomData *data, int type); +void EM_make_hq_normals(struct EditMesh *em); +void EM_solidify(struct EditMesh *em, float dist); + /* editmesh_mods.c */ extern unsigned int em_vertoffs, em_solidoffs, em_wireoffs; diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index 544dd790dc8..89b6abb14f0 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -49,6 +49,7 @@ editmesh_lib: generic (no UI, no menus) operations/evaluators for editmesh data #include "BLI_blenlib.h" #include "BLI_math.h" #include "BLI_editVert.h" +#include "BLI_edgehash.h" #include "BKE_customdata.h" #include "BKE_context.h" @@ -2287,3 +2288,149 @@ int EM_view3d_poll(bContext *C) return 1; return 0; } + +/* higher quality normals */ + +/* NormalCalc */ +/* NormalCalc modifier: calculates higher quality normals +*/ + +/* each edge uses this to */ +typedef struct EdgeFaceRef { + int f1; /* init as -1 */ + int f2; +} EdgeFaceRef; + +void EM_make_hq_normals(EditMesh *em) +{ + EditFace *efa; + EditVert *eve; + int i; + + EdgeHash *edge_hash = BLI_edgehash_new(); + EdgeHashIterator *edge_iter; + int edge_ref_count = 0; + int ed_v1, ed_v2; /* use when getting the key */ + EdgeFaceRef *edge_ref_array = MEM_callocN(em->totedge * sizeof(EdgeFaceRef), "Edge Connectivity"); + EdgeFaceRef *edge_ref; + float edge_normal[3]; + + EM_init_index_arrays(em, 1, 1, 1); + + for(eve= em->verts.first, i=0; eve; eve= eve->next, i++) { + zero_v3(eve->no); + eve->tmp.l= i; + } + + /* This function adds an edge hash if its not there, and adds the face index */ +#define NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(EDV1, EDV2); \ + edge_ref = (EdgeFaceRef *)BLI_edgehash_lookup(edge_hash, EDV1, EDV2); \ + if (!edge_ref) { \ + edge_ref = &edge_ref_array[edge_ref_count]; edge_ref_count++; \ + edge_ref->f1=i; \ + edge_ref->f2=-1; \ + BLI_edgehash_insert(edge_hash, EDV1, EDV2, edge_ref); \ + } else { \ + edge_ref->f2=i; \ + } + + + efa= em->faces.first; + for(i = 0; i < em->totface; i++, efa= efa->next) { + if(efa->v4) { + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(efa->v1->tmp.l, efa->v2->tmp.l); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(efa->v2->tmp.l, efa->v3->tmp.l); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(efa->v3->tmp.l, efa->v4->tmp.l); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(efa->v4->tmp.l, efa->v1->tmp.l); + } else { + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(efa->v1->tmp.l, efa->v2->tmp.l); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(efa->v2->tmp.l, efa->v3->tmp.l); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(efa->v3->tmp.l, efa->v1->tmp.l); + } + } + +#undef NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE + + + for(edge_iter = BLI_edgehashIterator_new(edge_hash); !BLI_edgehashIterator_isDone(edge_iter); BLI_edgehashIterator_step(edge_iter)) { + /* Get the edge vert indicies, and edge value (the face indicies that use it)*/ + BLI_edgehashIterator_getKey(edge_iter, (int*)&ed_v1, (int*)&ed_v2); + edge_ref = BLI_edgehashIterator_getValue(edge_iter); + + if (edge_ref->f2 != -1) { + /* We have 2 faces using this edge, calculate the edges normal + * using the angle between the 2 faces as a weighting */ + add_v3_v3v3(edge_normal, EM_get_face_for_index(edge_ref->f1)->n, EM_get_face_for_index(edge_ref->f2)->n); + normalize_v3(edge_normal); + mul_v3_fl(edge_normal, angle_normalized_v3v3(EM_get_face_for_index(edge_ref->f1)->n, EM_get_face_for_index(edge_ref->f2)->n)); + } else { + /* only one face attached to that edge */ + /* an edge without another attached- the weight on this is + * undefined, M_PI/2 is 90d in radians and that seems good enough */ + VECCOPY(edge_normal, EM_get_face_for_index(edge_ref->f1)->n) + mul_v3_fl(edge_normal, M_PI/2); + } + add_v3_v3(EM_get_vert_for_index(ed_v1)->no, edge_normal ); + add_v3_v3(EM_get_vert_for_index(ed_v2)->no, edge_normal ); + + + } + BLI_edgehashIterator_free(edge_iter); + BLI_edgehash_free(edge_hash, NULL); + MEM_freeN(edge_ref_array); + + /* normalize vertex normals and assign */ + for(eve= em->verts.first; eve; eve= eve->next) + normalize_v3(eve->no); + + EM_free_index_arrays(); +} + +#define FLT_EPSILON 0.00001 +void EM_solidify(EditMesh *em, float dist) +{ + EditFace *efa; + EditVert *eve; + int *vert_users= MEM_callocN(sizeof(int) * em->totvert, "EM_offset"); + float *vert_angles= MEM_callocN(sizeof(float) * em->totvert, "EM_offset"); + float angle; + int i; + + for(eve= em->verts.first, i=0; eve; eve= eve->next, i++) { + eve->tmp.l= i; + } + + efa= em->faces.first; + for(i = 0; i < em->totface; i++, efa= efa->next) { + + if(!(efa->f & SELECT)) + continue; + + angle= angle_normalized_v3v3(efa->v1->no, efa->n); + vert_angles[efa->v1->tmp.l]+= shell_angle_to_dist(angle); + vert_users[efa->v1->tmp.l]++; + + angle= angle_normalized_v3v3(efa->v2->no, efa->n); + vert_angles[efa->v2->tmp.l]+= shell_angle_to_dist(angle); + vert_users[efa->v2->tmp.l]++; + + angle= angle_normalized_v3v3(efa->v3->no, efa->n); + vert_angles[efa->v3->tmp.l]+= shell_angle_to_dist(angle); + vert_users[efa->v3->tmp.l]++; + + if(efa->v4) { + angle= angle_normalized_v3v3(efa->v4->no, efa->n); + vert_angles[efa->v4->tmp.l]+= shell_angle_to_dist(angle); + vert_users[efa->v4->tmp.l]++; + } + } + + for(eve= em->verts.first, i=0; eve; eve= eve->next, i++) { + if(vert_users[i]) { /* zero if unselected */ + madd_v3_v3fl(eve->co, eve->no, dist * (vert_angles[i] / (float)vert_users[i])); + } + } + + MEM_freeN(vert_users); + MEM_freeN(vert_angles); +} diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 30dc6114097..1d8b2b05592 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -4542,3 +4542,46 @@ void MESH_OT_flip_normals(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } + +static int solidify_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + Object *obedit= CTX_data_edit_object(C); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); + float nor[3] = {0,0,1}; + + float thickness= RNA_float_get(op->ptr, "thickness"); + + extrudeflag(obedit, em, SELECT, nor); + EM_make_hq_normals(em); + EM_solidify(em, thickness); + + + /* update vertex normals too */ + recalc_editnormals(em); + + BKE_mesh_end_editmesh(obedit->data, em); + + DAG_id_flush_update(obedit->data, OB_RECALC_DATA); + WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); + + return OPERATOR_FINISHED; +} + + +void MESH_OT_solidify(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Solidify"; + ot->description= "Make the mesh solid."; + ot->idname= "MESH_OT_solidify"; + + /* api callbacks */ + ot->exec= solidify_exec; + ot->poll= ED_operator_editmesh; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + RNA_def_float(ot->srna, "thickness", 0.1f, -FLT_MAX, FLT_MAX, "thickness", "", -10.0f, 10.0f); +} diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h index 4ce9afaf237..226cfe875d7 100644 --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@ -164,6 +164,8 @@ void MESH_OT_mark_seam(struct wmOperatorType *ot); void MESH_OT_mark_sharp(struct wmOperatorType *ot); void MESH_OT_vertices_smooth(struct wmOperatorType *ot); void MESH_OT_flip_normals(struct wmOperatorType *ot); +void MESH_OT_solidify(struct wmOperatorType *ot); + extern EditEdge *findnearestedge(ViewContext *vc, int *dist); extern void EM_automerge(Scene *scene, Object *obedit, int update); diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index 5f54aa041e3..b067f894050 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -151,6 +151,8 @@ void ED_operatortypes_mesh(void) WM_operatortype_append(MESH_OT_edgering_select); WM_operatortype_append(MESH_OT_loopcut); + + WM_operatortype_append(MESH_OT_solidify); } int ED_operator_editmesh_face_select(bContext *C) -- cgit v1.2.3 From 20748a38ac5fea178c852699b4e14f539e84fe96 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 15 Dec 2009 00:10:03 +0000 Subject: Bugfix #20384: target data path of driving not correct when loading old rig from 2.49b --- source/blender/blenkernel/intern/fcurve.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 04fcd43b883..b5f3d0a4be0 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -828,6 +828,10 @@ float driver_get_target_value (ChannelDriver *driver, DriverTarget *dtar) /* get property to read from, and get value as appropriate */ if (RNA_path_resolve_full(&id_ptr, path, &ptr, &prop, &index)) { + /* for now, if there is no valid index, fall back to the array-index specified separately */ + if (index == -1) + index= dtar->array_index; + switch (RNA_property_type(prop)) { case PROP_BOOLEAN: if (RNA_property_array_length(&ptr, prop)) @@ -927,19 +931,19 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime) /* more than one target, so average the values of the targets */ int tot = 0; float value = 0.0f; - + /* loop through targets, adding (hopefully we don't get any overflow!) */ for (dtar= driver->targets.first; dtar; dtar=dtar->next) { value += driver_get_target_value(driver, dtar); tot++; } - + /* return the average of these */ - if(driver->type == DRIVER_TYPE_AVERAGE) + if (driver->type == DRIVER_TYPE_AVERAGE) return (value / (float)tot); else return value; - + } } break; -- cgit v1.2.3 From 9fe37d9970f649cff108c9d3f7bfb492515d4f0c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 15 Dec 2009 00:24:30 +0000 Subject: improve solidify results by weighting the faces influence on a vertex by the corner angle of each face before displacing --- source/blender/editors/mesh/editmesh_lib.c | 71 +++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 22 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index 89b6abb14f0..544e0b4ace7 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -2387,14 +2387,52 @@ void EM_make_hq_normals(EditMesh *em) } #define FLT_EPSILON 0.00001 + +static void em_face_angles(EditFace *efa, float *face_angles) +{ + float vec1[3], vec2[3], vec3[3], vec4[3]; + + /* note, could cache normalized edges? */ + if(efa->v4) { + sub_v3_v3v3(vec1, efa->v4->co, efa->v1->co); + sub_v3_v3v3(vec2, efa->v1->co, efa->v2->co); + sub_v3_v3v3(vec3, efa->v2->co, efa->v3->co); + sub_v3_v3v3(vec4, efa->v3->co, efa->v4->co); + + normalize_v3(vec1); + normalize_v3(vec2); + normalize_v3(vec3); + normalize_v3(vec4); + + face_angles[0]= M_PI - angle_normalized_v3v3(vec1, vec2); + face_angles[1]= M_PI - angle_normalized_v3v3(vec2, vec3); + face_angles[2]= M_PI - angle_normalized_v3v3(vec3, vec4); + face_angles[3]= M_PI - angle_normalized_v3v3(vec4, vec1); + } + else { + sub_v3_v3v3(vec1, efa->v3->co, efa->v1->co); + sub_v3_v3v3(vec2, efa->v1->co, efa->v2->co); + sub_v3_v3v3(vec3, efa->v2->co, efa->v3->co); + + normalize_v3(vec1); + normalize_v3(vec2); + normalize_v3(vec3); + + face_angles[0]= M_PI - angle_normalized_v3v3(vec1, vec2); + face_angles[1]= M_PI - angle_normalized_v3v3(vec2, vec3); + + //face_angles[2]= M_PI - (face_angles[0] + face_angles[1]); + face_angles[2] = M_PI - angle_normalized_v3v3(vec3, vec1); + } +} void EM_solidify(EditMesh *em, float dist) { EditFace *efa; EditVert *eve; - int *vert_users= MEM_callocN(sizeof(int) * em->totvert, "EM_offset"); - float *vert_angles= MEM_callocN(sizeof(float) * em->totvert, "EM_offset"); - float angle; - int i; + float *vert_angles= MEM_callocN(sizeof(float) * em->totvert * 2, "EM_solidify"); /* 2 in 1 */ + float *vert_accum= vert_accum= vert_angles + em->totvert; + float face_angles[4]; + int i, j; for(eve= em->verts.first, i=0; eve; eve= eve->next, i++) { eve->tmp.l= i; @@ -2406,31 +2444,20 @@ void EM_solidify(EditMesh *em, float dist) if(!(efa->f & SELECT)) continue; - angle= angle_normalized_v3v3(efa->v1->no, efa->n); - vert_angles[efa->v1->tmp.l]+= shell_angle_to_dist(angle); - vert_users[efa->v1->tmp.l]++; - - angle= angle_normalized_v3v3(efa->v2->no, efa->n); - vert_angles[efa->v2->tmp.l]+= shell_angle_to_dist(angle); - vert_users[efa->v2->tmp.l]++; + em_face_angles(efa, face_angles); - angle= angle_normalized_v3v3(efa->v3->no, efa->n); - vert_angles[efa->v3->tmp.l]+= shell_angle_to_dist(angle); - vert_users[efa->v3->tmp.l]++; - - if(efa->v4) { - angle= angle_normalized_v3v3(efa->v4->no, efa->n); - vert_angles[efa->v4->tmp.l]+= shell_angle_to_dist(angle); - vert_users[efa->v4->tmp.l]++; + for(j= efa->v4 ? 3:2; j>=0; j--) { + eve= *(&efa->v1 + j); + vert_accum[eve->tmp.l] += face_angles[j]; + vert_angles[eve->tmp.l]+= shell_angle_to_dist(angle_normalized_v3v3(eve->no, efa->n)) * face_angles[j]; } } for(eve= em->verts.first, i=0; eve; eve= eve->next, i++) { - if(vert_users[i]) { /* zero if unselected */ - madd_v3_v3fl(eve->co, eve->no, dist * (vert_angles[i] / (float)vert_users[i])); + if(vert_accum[i]) { /* zero if unselected */ + madd_v3_v3fl(eve->co, eve->no, dist * vert_angles[i] / vert_accum[i]); } } - MEM_freeN(vert_users); MEM_freeN(vert_angles); } -- cgit v1.2.3 From ded4cbb553f0a5bdc3e8b62b82932429848f37ee Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 15 Dec 2009 00:53:34 +0000 Subject: solidify would only work as expecyed if all faces were selected, added an override to extrude that means it runs without removing selected faces first, even on a partial selection --- source/blender/editors/mesh/editmesh_add.c | 6 +++--- source/blender/editors/mesh/editmesh_lib.c | 24 +++++++++++++----------- source/blender/editors/mesh/editmesh_mods.c | 3 +-- source/blender/editors/mesh/editmesh_tools.c | 6 +++--- source/blender/editors/mesh/mesh_intern.h | 4 ++-- 5 files changed, 22 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c index fbe72a54e70..26fde849f9f 100644 --- a/source/blender/editors/mesh/editmesh_add.c +++ b/source/blender/editors/mesh/editmesh_add.c @@ -192,7 +192,7 @@ static int dupli_extrude_cursor(bContext *C, wmOperator *op, wmEvent *event) } } - extrudeflag(vc.obedit, vc.em, SELECT, nor); + extrudeflag(vc.obedit, vc.em, SELECT, nor, 0); rotateflag(vc.em, SELECT, cent, mat); translateflag(vc.em, SELECT, min); @@ -1025,7 +1025,7 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se mul_mat3_m4_v3(mat, vec); for(a=0;aco, cmat); } diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index 544e0b4ace7..c543c3287a0 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -1143,7 +1143,7 @@ short extrudeflag_verts_indiv(EditMesh *em, short flag, float *nor) /* this is actually a recode of extrudeflag(), using proper edge/face select */ /* hurms, doesnt use 'flag' yet, but its not called by primitive making stuff anyway */ -static short extrudeflag_edge(Object *obedit, EditMesh *em, short flag, float *nor) +static short extrudeflag_edge(Object *obedit, EditMesh *em, short flag, float *nor, int all) { /* all select edges/faces: extrude */ /* old select is cleared, in new ones it is set */ @@ -1256,11 +1256,13 @@ static short extrudeflag_edge(Object *obedit, EditMesh *em, short flag, float *n set_edge_directions_f2(em, 2); /* step 1.5: if *one* selected face has edge with unselected face; remove old selected faces */ - for(efa= em->faces.last; efa; efa= efa->prev) { - if(efa->f & SELECT) { - if(efa->e1->f1 || efa->e2->f1 || efa->e3->f1 || (efa->e4 && efa->e4->f1)) { - del_old= 1; - break; + if(all == 0) { + for(efa= em->faces.last; efa; efa= efa->prev) { + if(efa->f & SELECT) { + if(efa->e1->f1 || efa->e2->f1 || efa->e3->f1 || (efa->e4 && efa->e4->f1)) { + del_old= 1; + break; + } } } } @@ -1398,7 +1400,7 @@ static short extrudeflag_edge(Object *obedit, EditMesh *em, short flag, float *n return 'n'; // normal constraint } -short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor) +short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor, int all) { /* all verts/edges/faces with (f & 'flag'): extrude */ /* from old verts, 'flag' is cleared, in new ones it is set */ @@ -1569,7 +1571,7 @@ short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor) */ /* find if we delete old faces */ - if(is_face_sel) { + if(is_face_sel && all==0) { for(eed= em->edges.first; eed; eed= eed->next) { if( (eed->f2==1 || eed->f2==2) ) { if(eed->f1==2) { @@ -1685,12 +1687,12 @@ short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor) } /* generic extrude */ -short extrudeflag(Object *obedit, EditMesh *em, short flag, float *nor) +short extrudeflag(Object *obedit, EditMesh *em, short flag, float *nor, int all) { if(em->selectmode & SCE_SELECT_VERTEX) - return extrudeflag_vert(obedit, em, flag, nor); + return extrudeflag_vert(obedit, em, flag, nor, all); else - return extrudeflag_edge(obedit, em, flag, nor); + return extrudeflag_edge(obedit, em, flag, nor, all); } diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 1d8b2b05592..1ff2d097100 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -4545,14 +4545,13 @@ void MESH_OT_flip_normals(wmOperatorType *ot) static int solidify_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); float nor[3] = {0,0,1}; float thickness= RNA_float_get(op->ptr, "thickness"); - extrudeflag(obedit, em, SELECT, nor); + extrudeflag(obedit, em, SELECT, nor, 1); EM_make_hq_normals(em); EM_solidify(em, thickness); diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index b283070d454..e41d60783fe 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -660,7 +660,7 @@ void extrude_mesh(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op) if(nr<1) return; - if(nr==1) transmode= extrudeflag(obedit, em, SELECT, nor); + if(nr==1) transmode= extrudeflag(obedit, em, SELECT, nor, 0); else if(nr==4) transmode= extrudeflag_verts_indiv(em, SELECT, nor); else if(nr==3) transmode= extrudeflag_edges_indiv(em, SELECT, nor); else transmode= extrudeflag_face_indiv(em, SELECT, nor); @@ -816,7 +816,7 @@ static int extrude_repeat_mesh(bContext *C, wmOperator *op) mul_m3_v3(tmat, dvec); for(a=0; a Date: Tue, 15 Dec 2009 01:03:05 +0000 Subject: number button precission was far too low, description also bit. --- source/blender/editors/mesh/editmesh_mods.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 1ff2d097100..0fa6ff0188c 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -4570,9 +4570,10 @@ static int solidify_exec(bContext *C, wmOperator *op) void MESH_OT_solidify(wmOperatorType *ot) { + PropertyRNA *prop; /* identifiers */ ot->name= "Solidify"; - ot->description= "Make the mesh solid."; + ot->description= "Create a solid skin by extruding, compensating for sharp angles."; ot->idname= "MESH_OT_solidify"; /* api callbacks */ @@ -4582,5 +4583,6 @@ void MESH_OT_solidify(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - RNA_def_float(ot->srna, "thickness", 0.1f, -FLT_MAX, FLT_MAX, "thickness", "", -10.0f, 10.0f); + prop= RNA_def_float(ot->srna, "thickness", 0.01f, -FLT_MAX, FLT_MAX, "thickness", "", -10.0f, 10.0f); + RNA_def_property_ui_range(prop, -10, 10, 0.1, 4); } -- cgit v1.2.3 From 7fc799d4a9c52254390e5df2942c73831ca7e5ac Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 15 Dec 2009 09:39:46 +0000 Subject: utility functions for getting the corner angles of a quad or tri: angle_quad_v3 & angle_tri_v3 --- source/blender/blenlib/BLI_math_vector.h | 2 ++ source/blender/blenlib/intern/math_vector.c | 38 ++++++++++++++++++++++ source/blender/editors/mesh/editmesh_lib.c | 50 ++++++----------------------- 3 files changed, 49 insertions(+), 41 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_vector.h b/source/blender/blenlib/BLI_math_vector.h index 399c234a108..e915a9a85f3 100644 --- a/source/blender/blenlib/BLI_math_vector.h +++ b/source/blender/blenlib/BLI_math_vector.h @@ -131,6 +131,8 @@ float angle_normalized_v2v2(float a[2], float b[2]); float angle_v3v3(float a[2], float b[2]); float angle_v3v3v3(float a[2], float b[2], float c[2]); float angle_normalized_v3v3(float a[3], float b[3]); +void angle_tri_v3(float angles[3], const float v1[3], const float v2[3], const float v3[3]); +void angle_quad_v3(float angles[4], const float v1[3], const float v2[3], const float v3[3], const float v4[3]); /********************************* Geometry **********************************/ diff --git a/source/blender/blenlib/intern/math_vector.c b/source/blender/blenlib/intern/math_vector.c index 289d8818753..2ce4a069a48 100644 --- a/source/blender/blenlib/intern/math_vector.c +++ b/source/blender/blenlib/intern/math_vector.c @@ -205,6 +205,44 @@ float angle_normalized_v2v2(float *v1, float *v2) return 2.0f*(float)saasin(len_v2v2(v2, v1)/2.0f); } +void angle_tri_v3(float angles[3], const float v1[3], const float v2[3], const float v3[3]) +{ + float ed1[3], ed2[3], ed3[3]; + + sub_v3_v3v3(ed1, v3, v1); + sub_v3_v3v3(ed2, v1, v2); + sub_v3_v3v3(ed3, v2, v3); + + normalize_v3(ed1); + normalize_v3(ed2); + normalize_v3(ed3); + + angles[0]= M_PI - angle_normalized_v3v3(ed1, ed2); + angles[1]= M_PI - angle_normalized_v3v3(ed2, ed3); + // face_angles[2] = M_PI - angle_normalized_v3v3(ed3, ed1); + angles[2]= M_PI - (angles[0] + angles[1]); +} + +void angle_quad_v3(float angles[4], const float v1[3], const float v2[3], const float v3[3], const float v4[3]) +{ + float ed1[3], ed2[3], ed3[3], ed4[3]; + + sub_v3_v3v3(ed1, v4, v1); + sub_v3_v3v3(ed2, v1, v2); + sub_v3_v3v3(ed3, v2, v3); + sub_v3_v3v3(ed4, v3, v4); + + normalize_v3(ed1); + normalize_v3(ed2); + normalize_v3(ed3); + normalize_v3(ed4); + + angles[0]= M_PI - angle_normalized_v3v3(ed1, ed2); + angles[1]= M_PI - angle_normalized_v3v3(ed2, ed3); + angles[2]= M_PI - angle_normalized_v3v3(ed3, ed4); + angles[3]= M_PI - angle_normalized_v3v3(ed4, ed1); +} + /********************************* Geometry **********************************/ /* Project v1 on v2 */ diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index c543c3287a0..52af5ce8e2f 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -2388,45 +2388,6 @@ void EM_make_hq_normals(EditMesh *em) EM_free_index_arrays(); } -#define FLT_EPSILON 0.00001 - -static void em_face_angles(EditFace *efa, float *face_angles) -{ - float vec1[3], vec2[3], vec3[3], vec4[3]; - - /* note, could cache normalized edges? */ - if(efa->v4) { - sub_v3_v3v3(vec1, efa->v4->co, efa->v1->co); - sub_v3_v3v3(vec2, efa->v1->co, efa->v2->co); - sub_v3_v3v3(vec3, efa->v2->co, efa->v3->co); - sub_v3_v3v3(vec4, efa->v3->co, efa->v4->co); - - normalize_v3(vec1); - normalize_v3(vec2); - normalize_v3(vec3); - normalize_v3(vec4); - - face_angles[0]= M_PI - angle_normalized_v3v3(vec1, vec2); - face_angles[1]= M_PI - angle_normalized_v3v3(vec2, vec3); - face_angles[2]= M_PI - angle_normalized_v3v3(vec3, vec4); - face_angles[3]= M_PI - angle_normalized_v3v3(vec4, vec1); - } - else { - sub_v3_v3v3(vec1, efa->v3->co, efa->v1->co); - sub_v3_v3v3(vec2, efa->v1->co, efa->v2->co); - sub_v3_v3v3(vec3, efa->v2->co, efa->v3->co); - - normalize_v3(vec1); - normalize_v3(vec2); - normalize_v3(vec3); - - face_angles[0]= M_PI - angle_normalized_v3v3(vec1, vec2); - face_angles[1]= M_PI - angle_normalized_v3v3(vec2, vec3); - - //face_angles[2]= M_PI - (face_angles[0] + face_angles[1]); - face_angles[2] = M_PI - angle_normalized_v3v3(vec3, vec1); - } -} void EM_solidify(EditMesh *em, float dist) { EditFace *efa; @@ -2446,9 +2407,16 @@ void EM_solidify(EditMesh *em, float dist) if(!(efa->f & SELECT)) continue; - em_face_angles(efa, face_angles); + if(efa->v4) { + angle_quad_v3(face_angles, efa->v1->co, efa->v2->co, efa->v3->co, efa->v4->co); + j= 3; + } + else { + angle_tri_v3(face_angles, efa->v1->co, efa->v2->co, efa->v3->co); + j= 2; + } - for(j= efa->v4 ? 3:2; j>=0; j--) { + for(; j>=0; j--) { eve= *(&efa->v1 + j); vert_accum[eve->tmp.l] += face_angles[j]; vert_angles[eve->tmp.l]+= shell_angle_to_dist(angle_normalized_v3v3(eve->no, efa->n)) * face_angles[j]; -- cgit v1.2.3 From 2f80f813f37b340aceb4a457aee032a30d4cc6a9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 15 Dec 2009 10:04:54 +0000 Subject: * made seqence swap into 1 operator with left/right enum option * allow sequence swapping even when the strip has an effect * only recalc the effect when its needed --- .../editors/space_sequencer/sequencer_edit.c | 55 ++++++---------------- .../editors/space_sequencer/sequencer_intern.h | 3 +- .../editors/space_sequencer/sequencer_ops.c | 7 ++- 3 files changed, 19 insertions(+), 46 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 277d32d6360..e231c03a335 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -125,13 +125,19 @@ EnumPropertyItem sequencer_prop_effect_types[] = { /* mute operator */ - EnumPropertyItem prop_side_types[] = { +EnumPropertyItem prop_side_types[] = { {SEQ_SIDE_LEFT, "LEFT", 0, "Left", ""}, {SEQ_SIDE_RIGHT, "RIGHT", 0, "Right", ""}, {SEQ_SIDE_BOTH, "BOTH", 0, "Both", ""}, {0, NULL, 0, NULL, NULL} }; +EnumPropertyItem prop_side_lr_types[] = { + {SEQ_SIDE_LEFT, "LEFT", 0, "Left", ""}, + {SEQ_SIDE_RIGHT, "RIGHT", 0, "Right", ""}, + {0, NULL, 0, NULL, NULL} +}; + typedef struct TransSeq { int start, machine; int startstill, endstill; @@ -2614,12 +2620,13 @@ static Sequence* sequence_find_parent(Scene* scene, Sequence* child) } -static int sequencer_swap_internal_exec(bContext *C, int side) +static int sequencer_swap_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); Editing *ed= seq_give_editing(scene, FALSE); Sequence *active_seq = active_seq_get(scene); Sequence *seq, *iseq; + int side= RNA_enum_get(op->ptr, "side"); if(ed==NULL) return OPERATOR_CANCELLED; if(active_seq==NULL) return OPERATOR_CANCELLED; @@ -2634,11 +2641,6 @@ static int sequencer_swap_internal_exec(bContext *C, int side) if ((active_seq->type!=SEQ_COLOR) && (active_seq->effectdata || active_seq->seq1 || active_seq->seq2 || active_seq->seq3)) return OPERATOR_CANCELLED; - /* disallow if parent strip (effect strip) is attached */ - if ( sequence_find_parent(scene, active_seq)) { - return OPERATOR_CANCELLED; - } - switch (side) { case SEQ_SIDE_LEFT: swap_sequence(seq, active_seq); @@ -2650,9 +2652,8 @@ static int sequencer_swap_internal_exec(bContext *C, int side) // XXX - should be a generic function for(iseq= scene->ed->seqbasep->first; iseq; iseq= iseq->next) { - //if((iseq->type & SEQ_EFFECT) && ELEM6(iseq, seq->seq1, seq->seq2, seq->seq3, active_seq->seq1, active_seq->seq2, active_seq->seq3)) - if(iseq->type & SEQ_EFFECT) - calc_sequence(iseq); + if((iseq->type & SEQ_EFFECT) && (seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq))) + calc_sequence(iseq); } WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); @@ -2663,48 +2664,22 @@ static int sequencer_swap_internal_exec(bContext *C, int side) return OPERATOR_CANCELLED; } -static int sequencer_swap_right_exec(bContext *C, wmOperator *op) -{ - return sequencer_swap_internal_exec(C, SEQ_SIDE_RIGHT); -} - -void SEQUENCER_OT_swap_right(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Swap Strip Right"; - ot->idname= "SEQUENCER_OT_swap_right"; - ot->description="Swap active strip with strip to the right."; - - /* api callbacks */ - ot->exec= sequencer_swap_right_exec; - ot->poll= ED_operator_sequencer_active; - - /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - - /* properties */ -} - -static int sequencer_swap_left_exec(bContext *C, wmOperator *op) -{ - return sequencer_swap_internal_exec(C, SEQ_SIDE_LEFT); -} - -void SEQUENCER_OT_swap_left(wmOperatorType *ot) +void SEQUENCER_OT_swap(wmOperatorType *ot) { /* identifiers */ ot->name= "Swap Strip Left"; - ot->idname= "SEQUENCER_OT_swap_left"; + ot->idname= "SEQUENCER_OT_swap"; ot->description="Swap active strip with strip to the left."; /* api callbacks */ - ot->exec= sequencer_swap_left_exec; + ot->exec= sequencer_swap_exec; ot->poll= ED_operator_sequencer_active; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ + RNA_def_enum(ot->srna, "side", prop_side_lr_types, SEQ_SIDE_RIGHT, "Side", "Side of the strip to swap"); } static int sequencer_rendersize_exec(bContext *C, wmOperator *op) diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index e5e159138fc..ee2d2eb18e0 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -91,8 +91,7 @@ void SEQUENCER_OT_meta_separate(struct wmOperatorType *ot); void SEQUENCER_OT_snap(struct wmOperatorType *ot); void SEQUENCER_OT_previous_edit(struct wmOperatorType *ot); void SEQUENCER_OT_next_edit(struct wmOperatorType *ot); -void SEQUENCER_OT_swap_right(struct wmOperatorType *ot); -void SEQUENCER_OT_swap_left(struct wmOperatorType *ot); +void SEQUENCER_OT_swap(struct wmOperatorType *ot); void SEQUENCER_OT_rendersize(struct wmOperatorType *ot); void SEQUENCER_OT_view_toggle(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index 2636fa67c47..941df4d2e36 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -79,8 +79,7 @@ void sequencer_operatortypes(void) WM_operatortype_append(SEQUENCER_OT_snap); WM_operatortype_append(SEQUENCER_OT_next_edit); WM_operatortype_append(SEQUENCER_OT_previous_edit); - WM_operatortype_append(SEQUENCER_OT_swap_right); - WM_operatortype_append(SEQUENCER_OT_swap_left); + WM_operatortype_append(SEQUENCER_OT_swap); WM_operatortype_append(SEQUENCER_OT_rendersize); WM_operatortype_append(SEQUENCER_OT_view_all); @@ -157,8 +156,8 @@ void sequencer_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SEQUENCER_OT_next_edit", PAGEUPKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_previous_edit", PAGEDOWNKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "SEQUENCER_OT_swap_left", LEFTARROWKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "SEQUENCER_OT_swap_right", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0); + RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_LEFT); + RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_RIGHT); WM_keymap_add_item(keymap, "SEQUENCER_OT_snap", SKEY, KM_PRESS, KM_SHIFT, 0); -- cgit v1.2.3 From df8c1f5b912137c70276359df28dc97cc70eadca Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 15 Dec 2009 10:35:50 +0000 Subject: animation system wasnt being updated when rendering with the sequencer --- source/blender/editors/space_sequencer/sequencer_edit.c | 6 +++--- source/blender/render/intern/source/pipeline.c | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index e231c03a335..361d92c1930 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2667,7 +2667,7 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op) void SEQUENCER_OT_swap(wmOperatorType *ot) { /* identifiers */ - ot->name= "Swap Strip Left"; + ot->name= "Swap Strip"; ot->idname= "SEQUENCER_OT_swap"; ot->description="Swap active strip with strip to the left."; @@ -2688,9 +2688,9 @@ static int sequencer_rendersize_exec(bContext *C, wmOperator *op) Scene *scene= CTX_data_scene(C); Sequence *active_seq = active_seq_get(scene); - if(active_seq==NULL) return OPERATOR_CANCELLED; + if(active_seq==NULL) + return OPERATOR_CANCELLED; - printf("got active sequence\n"); switch (active_seq->type) { case SEQ_IMAGE: case SEQ_MOVIE: diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 8034c2612e4..1eb864e173d 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2439,6 +2439,11 @@ static void do_render_seq(Render * re) RenderResult *rr = re->result; int cfra = re->r.cfra; + if(recurs_depth==0) { + /* otherwise sequencer animation isnt updated */ + BKE_animsys_evaluate_all_animation(G.main, frame_to_float(re->scene, cfra)); + } + recurs_depth++; ibuf= give_ibuf_seq(re->scene, rr->rectx, rr->recty, cfra, 0, 100.0); -- cgit v1.2.3 From 18b9385c53a29ce02fe89ee4aae99d9e87c2f38e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 15 Dec 2009 10:46:19 +0000 Subject: Small Durian Request for animation editors: Assigned borderselect for animation channels to LMB-tweak too, so it is now possible to select a bunch of channels by simply click-dragging. --- source/blender/editors/animation/anim_channels_edit.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 4be9cb2cd9d..c919b164a05 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1916,6 +1916,7 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf) /* borderselect */ WM_keymap_add_item(keymap, "ANIM_OT_channels_select_border", BKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "ANIM_OT_channels_select_border", EVT_TWEAK_L, KM_ANY, 0, 0); /* delete */ WM_keymap_add_item(keymap, "ANIM_OT_channels_delete", XKEY, KM_PRESS, 0, 0); -- cgit v1.2.3 From 8aa8efb3274daa5bb62c3a20f0ed940cad0ea287 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 15 Dec 2009 11:27:46 +0000 Subject: * rna attributes for sequence strips - seq.start_frame_final & seq.end_frame_final these expose the final start and end after offsets are applied. when set this is like grabbing the handle and moving it. * made swapping strips shuffle effects and check for overlap. --- source/blender/blenkernel/BKE_sequencer.h | 4 +- source/blender/blenkernel/intern/sequencer.c | 10 +-- .../editors/space_sequencer/sequencer_draw.c | 2 +- .../editors/space_sequencer/sequencer_edit.c | 17 ++++- .../editors/space_sequencer/sequencer_intern.h | 2 +- .../editors/space_sequencer/space_sequencer.c | 2 +- .../editors/transform/transform_conversions.c | 4 +- source/blender/makesrna/intern/rna_sequencer.c | 79 +++++++++++++++------- 8 files changed, 84 insertions(+), 36 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 5b146cd5ecd..95fe8fb5eb9 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -178,8 +178,8 @@ void seq_tx_set_final_left(struct Sequence *seq, int val); void seq_tx_set_final_right(struct Sequence *seq, int val); void seq_tx_handle_xlimits(struct Sequence *seq, int leftflag, int rightflag); int seq_tx_test(struct Sequence * seq); -int check_single_seq(struct Sequence *seq); -void fix_single_seq(struct Sequence *seq); +int seq_single_check(struct Sequence *seq); +void seq_single_fix(struct Sequence *seq); int seq_test_overlap(struct ListBase * seqbasep, struct Sequence *test); void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs); int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 2faaa2fb5f5..4d6033e4f4a 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3259,7 +3259,7 @@ void seq_tx_set_final_right(Sequence *seq, int val) /* used so we can do a quick check for single image seq since they work a bit differently to normal image seq's (during transform) */ -int check_single_seq(Sequence *seq) +int seq_single_check(Sequence *seq) { if ( seq->len==1 && (seq->type == SEQ_IMAGE || seq->type == SEQ_COLOR)) return 1; @@ -3276,7 +3276,7 @@ void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag) seq_tx_set_final_left(seq, seq_tx_get_final_right(seq, 0)-1); } - if (check_single_seq(seq)==0) { + if (seq_single_check(seq)==0) { if (seq_tx_get_final_left(seq, 0) >= seq_tx_get_end(seq)) { seq_tx_set_final_left(seq, seq_tx_get_end(seq)-1); } @@ -3298,7 +3298,7 @@ void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag) seq_tx_set_final_right(seq, seq_tx_get_final_left(seq, 0)+1); } - if (check_single_seq(seq)==0) { + if (seq_single_check(seq)==0) { if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_start(seq)) { seq_tx_set_final_right(seq, seq_tx_get_start(seq)+1); } @@ -3312,10 +3312,10 @@ void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag) } } -void fix_single_seq(Sequence *seq) +void seq_single_fix(Sequence *seq) { int left, start, offset; - if (!check_single_seq(seq)) + if (!seq_single_check(seq)) return; /* make sure the image is always at the start since there is only one, diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index ac8b222728e..a2525430a10 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -525,7 +525,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, SpaceSeq *sseq, Sequence * char col[3], background_col[3], is_single_image; /* we need to know if this is a single image/color or not for drawing */ - is_single_image = (char)check_single_seq(seq); + is_single_image = (char)seq_single_check(seq); /* body */ if(seq->startstill) x1= seq->start; diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 361d92c1930..1876062b2b7 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2652,10 +2652,25 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op) // XXX - should be a generic function for(iseq= scene->ed->seqbasep->first; iseq; iseq= iseq->next) { - if((iseq->type & SEQ_EFFECT) && (seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq))) + if((iseq->type & SEQ_EFFECT) && (seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq))) { calc_sequence(iseq); + } + } + + /* do this in a new loop since both effects need to be calculated first */ + for(iseq= scene->ed->seqbasep->first; iseq; iseq= iseq->next) { + if((iseq->type & SEQ_EFFECT) && (seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq))) { + /* this may now overlap */ + if( seq_test_overlap(ed->seqbasep, iseq) ) { + shuffle_seq(ed->seqbasep, iseq); + } + } } + + + sort_seq(scene); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index ee2d2eb18e0..1cbc6e1bd1d 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -54,7 +54,7 @@ void seq_reset_imageofs(struct SpaceSeq *sseq); /* sequencer_edit.c */ struct View2D; -int check_single_seq(struct Sequence *seq); +int seq_single_check(struct Sequence *seq); int seq_tx_get_final_left(struct Sequence *seq, int metaclip); int seq_tx_get_final_right(struct Sequence *seq, int metaclip); void seq_rectf(struct Sequence *seq, struct rctf *rectf); diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index 4c610dc6668..b75b4e55ae3 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -269,7 +269,7 @@ static void sequencer_main_area_init(wmWindowManager *wm, ARegion *ar) static void sequencer_main_area_draw(const bContext *C, ARegion *ar) { - ScrArea *sa= CTX_wm_area(C); +// ScrArea *sa= CTX_wm_area(C); /* NLE - strip editing timeline interface */ draw_timeline_seq(C, ar); diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index e9b0cb40b1b..0115d34c6b1 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2390,12 +2390,12 @@ void flushTransSeq(TransInfo *t) case SEQ_LEFTSEL: /* no vertical transform */ seq_tx_set_final_left(seq, new_frame); seq_tx_handle_xlimits(seq, tdsq->flag&SEQ_LEFTSEL, tdsq->flag&SEQ_RIGHTSEL); - fix_single_seq(seq); /* todo - move this into aftertrans update? - old seq tx needed it anyway */ + seq_single_fix(seq); /* todo - move this into aftertrans update? - old seq tx needed it anyway */ break; case SEQ_RIGHTSEL: /* no vertical transform */ seq_tx_set_final_right(seq, new_frame); seq_tx_handle_xlimits(seq, tdsq->flag&SEQ_LEFTSEL, tdsq->flag&SEQ_RIGHTSEL); - fix_single_seq(seq); /* todo - move this into aftertrans update? - old seq tx needed it anyway */ + seq_single_fix(seq); /* todo - move this into aftertrans update? - old seq tx needed it anyway */ break; } diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 2eee35164af..b8cd2c56483 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -56,8 +56,8 @@ static void meta_tmp_ref(Sequence *seq_par, Sequence *seq) static void rna_SequenceEditor_sequences_all_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) { - Scene *sce= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(sce, FALSE); + Scene *scene= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(scene, FALSE); meta_tmp_ref(NULL, ed->seqbase.first); @@ -88,34 +88,55 @@ static void rna_SequenceEditor_sequences_all_next(CollectionPropertyIterator *it iter->valid= (internal->link != NULL); } -static void rna_Sequence_start_frame_set(PointerRNA *ptr, int value) +/* internal use */ +static void rna_Sequence_frame_change_update(Scene *scene, Sequence *seq) { - Sequence *seq= (Sequence*)ptr->data; - Scene *sce= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(sce, FALSE); - - seq->start= value; + Editing *ed= seq_give_editing(scene, FALSE); + calc_sequence_disp(seq); - + if( seq_test_overlap(ed->seqbasep, seq) ) { shuffle_seq(ed->seqbasep, seq); } - sort_seq(sce); + sort_seq(scene); +} + +static void rna_Sequence_start_frame_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + Scene *scene= (Scene*)ptr->id.data; + + seq->start= value; + rna_Sequence_frame_change_update(scene, seq); +} + +static void rna_Sequence_start_frame_final_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + Scene *scene= (Scene*)ptr->id.data; + + seq_tx_set_final_left(seq, value); + seq_single_fix(seq); + rna_Sequence_frame_change_update(scene, seq); +} + +static void rna_Sequence_end_frame_final_set(PointerRNA *ptr, int value) +{ + Sequence *seq= (Sequence*)ptr->data; + Scene *scene= (Scene*)ptr->id.data; + + seq_tx_set_final_right(seq, value); + seq_single_fix(seq); + rna_Sequence_frame_change_update(scene, seq); } static void rna_Sequence_length_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; - Scene *sce= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(sce, FALSE); + Scene *scene= (Scene*)ptr->id.data; seq_tx_set_final_right(seq, seq->start+value); - calc_sequence_disp(seq); - - if( seq_test_overlap(ed->seqbasep, seq) ) { - shuffle_seq(ed->seqbasep, seq); - } - sort_seq(sce); + rna_Sequence_frame_change_update(scene, seq); } static int rna_Sequence_length_get(PointerRNA *ptr) @@ -127,15 +148,15 @@ static int rna_Sequence_length_get(PointerRNA *ptr) static void rna_Sequence_channel_set(PointerRNA *ptr, int value) { Sequence *seq= (Sequence*)ptr->data; - Scene *sce= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(sce, FALSE); + Scene *scene= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(scene, FALSE); seq->machine= value; if( seq_test_overlap(ed->seqbasep, seq) ) { shuffle_seq(ed->seqbasep, seq); } - sort_seq(sce); + sort_seq(scene); } /* properties that need to allocate structs */ @@ -212,10 +233,10 @@ static int rna_Sequence_name_length(PointerRNA *ptr) static void rna_Sequence_name_set(PointerRNA *ptr, const char *value) { - Scene *sce= (Scene*)ptr->id.data; + Scene *scene= (Scene*)ptr->id.data; Sequence *seq= (Sequence*)ptr->data; BLI_strncpy(seq->name+2, value, sizeof(seq->name)-2); - seqUniqueName(&sce->ed->seqbase, seq); + seqUniqueName(&scene->ed->seqbase, seq); } static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr) @@ -573,6 +594,18 @@ static void rna_def_sequence(BlenderRNA *brna) RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_start_frame_set",NULL); // overlap tests and calc_seq_disp RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + prop= RNA_def_property(srna, "start_frame_final", PROP_INT, PROP_TIME); + RNA_def_property_int_sdna(prop, NULL, "startdisp"); + RNA_def_property_ui_text(prop, "Start Frame", "Start frame displayed in the sequence editor after offsets are applied, setting this is equivilent to moving the handle, not the actual start frame."); + RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_start_frame_final_set", NULL); // overlap tests and calc_seq_disp + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + + prop= RNA_def_property(srna, "end_frame_final", PROP_INT, PROP_TIME); + RNA_def_property_int_sdna(prop, NULL, "enddisp"); + RNA_def_property_ui_text(prop, "End Frame", "End frame displayed in the sequence editor after offsets are applied."); + RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_end_frame_final_set", NULL); // overlap tests and calc_seq_disp + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); + prop= RNA_def_property(srna, "start_offset", PROP_INT, PROP_TIME); RNA_def_property_int_sdna(prop, NULL, "startofs"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap tests -- cgit v1.2.3 From 6ef7c3bb2bc4c59d000b3a8bacbfb0a27d2b5c55 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Tue, 15 Dec 2009 17:53:17 +0000 Subject: fix: adding missing new area type RGN_TYPE_PREVIEW to rna enum. --- source/blender/makesrna/intern/rna_screen.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c index 5311c80e45d..2471ce3c798 100644 --- a/source/blender/makesrna/intern/rna_screen.c +++ b/source/blender/makesrna/intern/rna_screen.c @@ -40,6 +40,7 @@ EnumPropertyItem region_type_items[] = { {RGN_TYPE_TOOLS, "TOOLS", 0, "Tools", ""}, {RGN_TYPE_TEMPORARY, "TEMPORARY", 0, "Temporary", ""}, {RGN_TYPE_UI, "UI", 0, "UI", ""}, + {RGN_TYPE_PREVIEW, "PREVIEW", 0, "Preview", ""}, {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME -- cgit v1.2.3 From fedea2eb5c4b5d414349cc460bedc4485af90d53 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 15 Dec 2009 18:00:22 +0000 Subject: Fix #20393: subsurfed objects only allow a single material. --- source/blender/blenkernel/intern/subsurf_ccg.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 793ea26a602..072a665e0e9 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -931,8 +931,8 @@ static void ccgDM_copyFinalFaceArray(DerivedMesh *dm, MFace *mface) for(index = 0; index < totface; index++) { CCGFace *f = ccgdm->faceMap[index].face; int x, y, S, numVerts = ccgSubSurf_getFaceNumVerts(f); - int mat_nr = 0; - int flag = ME_SMOOTH; /* assume face is smooth by default */ + int flag = (faceFlags)? faceFlags[index*2]: ME_SMOOTH; + int mat_nr = (faceFlags)? faceFlags[index*2+1]: 0; for(S = 0; S < numVerts; S++) { for(y = 0; y < gridSize - 1; y++) { @@ -947,8 +947,7 @@ static void ccgDM_copyFinalFaceArray(DerivedMesh *dm, MFace *mface) mf->v4 = getFaceIndex(ss, f, S, x + 1, y + 0, edgeSize, gridSize); mf->mat_nr = mat_nr; - if(faceFlags) mf->flag = faceFlags[index*2]; - else mf->flag = flag; + mf->flag = flag; i++; } -- cgit v1.2.3 From 8a6e9fc7ee68a2bbeae0bcbc22e3afe067089bd8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 15 Dec 2009 18:15:38 +0000 Subject: Bugfix: weight paint combined with pose mode was not working correct in some cases, setting active vertex group to invalid value. --- source/blender/editors/sculpt_paint/paint_vertex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index 56e020e22aa..ba9c3631728 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -1122,7 +1122,7 @@ static int set_wpaint(bContext *C, wmOperator *op) /* toggle */ /* verify if active weight group is also active bone */ par= modifiers_isDeformedByArmature(ob); if(par && (par->mode & OB_MODE_POSE)) { - bArmature *arm= ob->data; + bArmature *arm= par->data; if(arm->act_bone) ED_vgroup_select_by_name(ob, arm->act_bone->name); -- cgit v1.2.3 From 0095b89a67855a4f9336a47dd1863e1ec8c7e5be Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 15 Dec 2009 23:35:26 +0000 Subject: Solidify was faiing in cases with flat aras because normal calculation assumed some angle between faces. --- source/blender/editors/mesh/editmesh_lib.c | 32 ++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index 52af5ce8e2f..45244407909 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -528,7 +528,7 @@ void EM_deselect_flush(EditMesh *em) /* flush selection to edges & faces */ /* this only based on coherent selected vertices, for example when adding new - objects. call clear_flag_all() before you select vertices to be sure it ends OK! + objects. call clear_flag_all() before you select vertices to be sure it ends OK! */ @@ -2360,11 +2360,22 @@ void EM_make_hq_normals(EditMesh *em) edge_ref = BLI_edgehashIterator_getValue(edge_iter); if (edge_ref->f2 != -1) { - /* We have 2 faces using this edge, calculate the edges normal - * using the angle between the 2 faces as a weighting */ - add_v3_v3v3(edge_normal, EM_get_face_for_index(edge_ref->f1)->n, EM_get_face_for_index(edge_ref->f2)->n); - normalize_v3(edge_normal); - mul_v3_fl(edge_normal, angle_normalized_v3v3(EM_get_face_for_index(edge_ref->f1)->n, EM_get_face_for_index(edge_ref->f2)->n)); + EditFace *ef1= EM_get_face_for_index(edge_ref->f1), *ef2= EM_get_face_for_index(edge_ref->f2); + float angle= angle_normalized_v3v3(ef1->n, ef2->n); + if(angle > 0.0f) { + /* We have 2 faces using this edge, calculate the edges normal + * using the angle between the 2 faces as a weighting */ + add_v3_v3v3(edge_normal, ef1->n, ef2->n); + normalize_v3(edge_normal); + mul_v3_fl(edge_normal, angle); + } + else { + /* cant do anything useful here! + Set the face index for a vert incase it gets a zero normal */ + EM_get_vert_for_index(ed_v1)->tmp.l= + EM_get_vert_for_index(ed_v2)->tmp.l= -(edge_ref->f1 + 1); + continue; + } } else { /* only one face attached to that edge */ /* an edge without another attached- the weight on this is @@ -2382,8 +2393,13 @@ void EM_make_hq_normals(EditMesh *em) MEM_freeN(edge_ref_array); /* normalize vertex normals and assign */ - for(eve= em->verts.first; eve; eve= eve->next) - normalize_v3(eve->no); + for(eve= em->verts.first; eve; eve= eve->next) { + if(normalize_v3(eve->no) == 0.0f && eve->tmp.l < 0) { + /* exceptional case, totally flat */ + efa= EM_get_face_for_index(-(eve->tmp.l) - 1); + VECCOPY(eve->no, efa->n); + } + } EM_free_index_arrays(); } -- cgit v1.2.3 From 3455261e173bf812c08c430de1237202ceb13ba0 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Wed, 16 Dec 2009 10:13:26 +0000 Subject: First version of updated key map editor UI (in User Preferences) Now the key maps are displayed in a hierarchical list which you can browse through. As well as in the main list, modal key maps are also available in context, for example, if you unfold out a Transform key map item, you'll be able to fold out and access its modal key map underneath. More work to do, including search, better operator browsing, etc. Still need to revise the ordering/hierarchy and clean up naming to be consistent too, it's a bit of an 'evolved' mess right now. Thanks to theeth for some initial work here too. --- source/blender/editors/include/UI_interface.h | 1 + .../blender/editors/interface/interface_layout.c | 9 ++++- source/blender/makesdna/DNA_windowmanager_types.h | 7 ++-- source/blender/makesrna/intern/rna_ui_api.c | 6 ++-- source/blender/makesrna/intern/rna_wm.c | 39 ++++++++++++++++++++-- 5 files changed, 53 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 5febaa3e5a1..5b512da55c9 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -591,6 +591,7 @@ void UI_exit(void); #define UI_ITEM_R_ICON_ONLY 16 #define UI_ITEM_R_EVENT 32 #define UI_ITEM_R_FULL_EVENT 64 +#define UI_ITEM_R_NO_BG 128 uiLayout *uiBlockLayout(uiBlock *block, int dir, int type, int x, int y, int size, int em, struct uiStyle *style); void uiBlockSetCurLayout(uiBlock *block, uiLayout *layout); diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index bfb5ab11263..b0670be63a2 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -880,7 +880,7 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper uiBut *but; PropertyType type; char namestr[UI_MAX_NAME_STR]; - int len, w, h, slider, toggle, expand, icon_only; + int len, w, h, slider, toggle, expand, icon_only, no_bg; uiBlockSetCurLayout(block, layout); @@ -912,10 +912,14 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper toggle= (flag & UI_ITEM_R_TOGGLE); expand= (flag & UI_ITEM_R_EXPAND); icon_only= (flag & UI_ITEM_R_ICON_ONLY); + no_bg= (flag & UI_ITEM_R_NO_BG); /* get size */ ui_item_rna_size(layout, name, icon, ptr, prop, index, icon_only, &w, &h); + if (no_bg) + uiBlockSetEmboss(block, UI_EMBOSSN); + /* array property */ if(index == RNA_NO_INDEX && len > 0) ui_item_array(layout, block, name, icon, ptr, prop, len, 0, 0, w, h, expand, slider, toggle, icon_only); @@ -948,6 +952,9 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper if(toggle && but->type==OPTION) but->type= TOG; } + + if (no_bg) + uiBlockSetEmboss(block, UI_EMBOSS); } void uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *propname, int flag) diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 9d944ca0d4b..0b69b72aa41 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -290,9 +290,10 @@ typedef struct wmKeyMap { } wmKeyMap; /* wmKeyMap.flag */ -#define KEYMAP_MODAL 1 /* modal map, not using operatornames */ -#define KEYMAP_USER 2 /* user created keymap */ -#define KEYMAP_EXPANDED 4 +#define KEYMAP_MODAL 1 /* modal map, not using operatornames */ +#define KEYMAP_USER 2 /* user created keymap */ +#define KEYMAP_EXPANDED 4 +#define KEYMAP_CHILDREN_EXPANDED 8 typedef struct wmKeyConfig { struct wmKeyConfig *next, *prev; diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 0955ec1c581..67383074497 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -37,7 +37,7 @@ #ifdef RNA_RUNTIME -static void rna_uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *propname, int expand, int slider, int toggle, int icon_only, int event, int full_event, int index) +static void rna_uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *propname, int expand, int slider, int toggle, int icon_only, int event, int full_event, int no_bg, int index) { PropertyRNA *prop= RNA_struct_find_property(ptr, propname); int flag= 0; @@ -53,6 +53,7 @@ static void rna_uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, flag |= (icon_only)? UI_ITEM_R_ICON_ONLY: 0; flag |= (event)? UI_ITEM_R_EVENT: 0; flag |= (full_event)? UI_ITEM_R_FULL_EVENT: 0; + flag |= (no_bg)? UI_ITEM_R_NO_BG: 0; uiItemFullR(layout, name, icon, ptr, prop, index, 0, flag); } @@ -157,6 +158,7 @@ void RNA_api_ui_layout(StructRNA *srna) RNA_def_boolean(func, "icon_only", 0, "", "Draw only icons in buttons, no text."); RNA_def_boolean(func, "event", 0, "", "Use button to input key events."); RNA_def_boolean(func, "full_event", 0, "", "Use button to input full events including modifiers."); + RNA_def_boolean(func, "no_bg", 0, "", "Don't draw the button itself, just the icon/text."); RNA_def_int(func, "index", -1, -2, INT_MAX, "", "The index of this button, when set a single member of an array can be accessed, when set to -1 all array members are used.", -2, INT_MAX); /* RNA_NO_INDEX == -1 */ func= RNA_def_function(srna, "props_enum", "uiItemsEnumR"); @@ -249,7 +251,7 @@ void RNA_api_ui_layout(StructRNA *srna) RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_pointer(func, "data", "AnyType", "", "Pointer to put in context."); RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR); - + /* templates */ func= RNA_def_function(srna, "template_header", "uiTemplateHeader"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 0f6a14b78bd..b17cefcccac 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -594,6 +594,26 @@ static void rna_wmKeyMapItem_idname_set(PointerRNA *ptr, const char *value) } } +static void rna_wmKeyMapItem_name_get(PointerRNA *ptr, char *value) +{ + wmKeyMapItem *kmi= ptr->data; + wmOperatorType *ot= WM_operatortype_find(kmi->idname, 1); + + if (ot) + strcpy(value, ot->name); +} + +static int rna_wmKeyMapItem_name_length(PointerRNA *ptr) +{ + wmKeyMapItem *kmi= ptr->data; + wmOperatorType *ot= WM_operatortype_find(kmi->idname, 1); + + if (ot) + return strlen(ot->name); + else + return 0; +} + #else static void rna_def_operator(BlenderRNA *brna) @@ -904,9 +924,15 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Modal Keymap", "Indicates that a keymap is used for translate modal events for an operator."); - prop= RNA_def_property(srna, "expanded", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "items_expanded", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYMAP_EXPANDED); - RNA_def_property_ui_text(prop, "Expanded", "Expanded in the user interface."); + RNA_def_property_ui_text(prop, "Items Expanded", "Expanded in the user interface."); + RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1); + + prop= RNA_def_property(srna, "children_expanded", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYMAP_CHILDREN_EXPANDED); + RNA_def_property_ui_text(prop, "Children Expanded", "Children expanded in the user interface."); + RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1); RNA_api_keymap(srna); @@ -921,7 +947,12 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Identifier", "Identifier of operator to call on input event."); RNA_def_property_string_funcs(prop, "rna_wmKeyMapItem_idname_get", "rna_wmKeyMapItem_idname_length", "rna_wmKeyMapItem_idname_set"); RNA_def_struct_name_property(srna, prop); - + + prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Name", "Name of operator to call on input event."); + RNA_def_property_string_funcs(prop, "rna_wmKeyMapItem_name_get", "rna_wmKeyMapItem_name_length", NULL); + prop= RNA_def_property(srna, "properties", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "OperatorProperties"); RNA_def_property_pointer_funcs(prop, "rna_KeyMapItem_properties_get", NULL, NULL); @@ -981,6 +1012,7 @@ static void rna_def_keyconfig(BlenderRNA *brna) prop= RNA_def_property(srna, "expanded", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_EXPANDED); RNA_def_property_ui_text(prop, "Expanded", "Expanded in the user interface."); + RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1); prop= RNA_def_property(srna, "propvalue", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "propvalue"); @@ -991,6 +1023,7 @@ static void rna_def_keyconfig(BlenderRNA *brna) prop= RNA_def_property(srna, "active", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", KMI_INACTIVE); RNA_def_property_ui_text(prop, "Active", "Activate or deactivate item."); + RNA_def_property_ui_icon(prop, ICON_CHECKBOX_DEHLT, 1); } void RNA_def_wm(BlenderRNA *brna) -- cgit v1.2.3 From b6d2d9f63a188aa49e24b4c30c48947b62c6a19c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 16 Dec 2009 16:35:31 +0000 Subject: have sequence strip rna not depend on the current editing sequencer context (TODO- rename) --- source/blender/blenkernel/BKE_sequencer.h | 9 +++++---- source/blender/blenkernel/intern/sequencer.c | 17 +++++++++++++++++ source/blender/makesrna/intern/rna_sequencer.c | 26 ++++++++++++++++++++------ 3 files changed, 42 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 95fe8fb5eb9..a50b03861d7 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -60,17 +60,17 @@ void seq_next(SeqIterator *iter); void seq_end(SeqIterator *iter); void seq_array(struct Editing *ed, struct Sequence ***seqarray, int *tot, int use_pointer); -#define SEQP_BEGIN(ed, seq) \ +#define SEQP_BEGIN(ed, _seq) \ { \ SeqIterator iter;\ for(seq_begin(ed, &iter, 1); iter.valid; seq_next(&iter)) { \ - seq= iter.seq; + _seq= iter.seq; -#define SEQ_BEGIN(ed, seq) \ +#define SEQ_BEGIN(ed, _seq) \ { \ SeqIterator iter;\ for(seq_begin(ed, &iter, 0); iter.valid; seq_next(&iter)) { \ - seq= iter.seq; + _seq= iter.seq; #define SEQ_END \ } \ @@ -181,6 +181,7 @@ int seq_tx_test(struct Sequence * seq); int seq_single_check(struct Sequence *seq); void seq_single_fix(struct Sequence *seq); int seq_test_overlap(struct ListBase * seqbasep, struct Sequence *test); +struct ListBase *seq_seqbase(struct ListBase *seqbase, struct Sequence *seq); void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs); int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test); int shuffle_seq_time(ListBase * seqbasep); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 4d6033e4f4a..a7b9cf7f74c 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3532,6 +3532,23 @@ void seq_update_muting(Editing *ed) } } +/* in cases where we done know the sequence's listbase */ +ListBase *seq_seqbase(ListBase *seqbase, Sequence *seq) +{ + Sequence *iseq; + ListBase *lb= NULL; + + for(iseq= seqbase->first; iseq; iseq= iseq->next) { + if(seq==iseq) { + return seqbase; + } + else if(iseq->seqbase.first && (lb= seq_seqbase(&iseq->seqbase, seq))) { + return lb; + } + } + + return NULL; +} /* XXX - hackish function needed for transforming strips! TODO - have some better solution */ void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs) diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index b8cd2c56483..c1ca156c9bf 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -92,11 +92,11 @@ static void rna_SequenceEditor_sequences_all_next(CollectionPropertyIterator *it static void rna_Sequence_frame_change_update(Scene *scene, Sequence *seq) { Editing *ed= seq_give_editing(scene, FALSE); - + ListBase *seqbase= seq_seqbase(&ed->seqbase, seq); calc_sequence_disp(seq); - if( seq_test_overlap(ed->seqbasep, seq) ) { - shuffle_seq(ed->seqbasep, seq); + if(seq_test_overlap(seqbase, seq)) { + shuffle_seq(seqbase, seq); } sort_seq(scene); } @@ -150,11 +150,12 @@ static void rna_Sequence_channel_set(PointerRNA *ptr, int value) Sequence *seq= (Sequence*)ptr->data; Scene *scene= (Scene*)ptr->id.data; Editing *ed= seq_give_editing(scene, FALSE); - + ListBase *seqbase= seq_seqbase(&ed->seqbase, seq); + seq->machine= value; - if( seq_test_overlap(ed->seqbasep, seq) ) { - shuffle_seq(ed->seqbasep, seq); + if( seq_test_overlap(seqbase, seq) ) { + shuffle_seq(seqbase, seq); } sort_seq(scene); } @@ -234,9 +235,22 @@ static int rna_Sequence_name_length(PointerRNA *ptr) static void rna_Sequence_name_set(PointerRNA *ptr, const char *value) { Scene *scene= (Scene*)ptr->id.data; + Editing *ed= seq_give_editing(scene, FALSE); Sequence *seq= (Sequence*)ptr->data; + Sequence *iseq; BLI_strncpy(seq->name+2, value, sizeof(seq->name)-2); + seqUniqueName(&scene->ed->seqbase, seq); + + // TODO, unique name for all meta's + /* + SEQ_BEGIN(ed, iseq) { + if(iseq->seqbase.first) + seqUniqueName(&iseq->seqbase, seq); + + } + SEQ_END + */ } static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr) -- cgit v1.2.3 From d71c094bc409b7b4348a8926d129511e54f0f855 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 16 Dec 2009 17:49:51 +0000 Subject: fix for crash when inserting keyframes in a mesh --- source/blender/editors/animation/keyframing.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index b126e57705e..6d8938d9545 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -851,6 +851,11 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_ /* get action to add F-Curve+keyframe to */ act= verify_adt_action(id, 1); + if(act==NULL) { + printf("Insert Key: Could not insert keyframe, as this type does not support animation data (ID = %s, Path = %s)\n", id->name, rna_path); + return 0; + } + /* apply NLA-mapping to frame to use (if applicable) */ cfra= BKE_nla_tweakedit_remap(adt, cfra, NLATIME_CONVERT_UNMAP); } -- cgit v1.2.3 From 5e48ab8d75bd5ce3085a9de183f36107f6d5d616 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 16 Dec 2009 19:19:08 +0000 Subject: Sculpt: * Increase epsilon for intersection a bit more, ortho view + small faces are problematic. * Fix a redraw issue with one partial redraw too much at the end of the stroke. --- source/blender/blenlib/intern/math_geom.c | 11 ++++++----- source/blender/blenlib/intern/pbvh.c | 2 +- source/blender/editors/sculpt_paint/sculpt.c | 2 ++ 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 75c32c5b45b..3e714b384a7 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -474,14 +474,15 @@ int isect_ray_tri_epsilon_v3(float p1[3], float d[3], float v0[3], float v1[3], sub_v3_v3v3(s, p1, v0); cross_v3_v3v3(q, s, e1); - *lambda = f * dot_v3v3(e2, q); - if ((*lambda < 0.0)) return 0; - + u = f * dot_v3v3(s, p); - if ((u < -epsilon)||(u > 1.0+epsilon)) return 0; + if ((u < -epsilon)||(u > 1.0f+epsilon)) return 0; v = f * dot_v3v3(d, q); - if ((v < -epsilon)||((u + v) > 1.0+epsilon)) return 0; + if ((v < -epsilon)||((u + v) > 1.0f+epsilon)) return 0; + + *lambda = f * dot_v3v3(e2, q); + if ((*lambda < 0.0f)) return 0; if(uv) { uv[0]= u; diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index d8e3fe4b0be..ff68e3b0881 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -1142,7 +1142,7 @@ static int ray_face_intersection(float ray_start[3], float ray_normal[3], float dist = FLT_MAX; if(!isect_ray_tri_epsilon_v3(ray_start, ray_normal, t0, t1, t2, - &dist, NULL, 0.001f)) + &dist, NULL, 0.1f)) dist = FLT_MAX; if(dist >= 0 && dist < *fdist) { diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index e6fe1a5153d..ce0a4d149bb 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1843,6 +1843,7 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou invert_m4_m4(obimat, ss->ob->obmat); mul_m4_v3(obimat, ray_start); mul_mat3_m4_v3(obimat, ray_normal); + normalize_v3(ray_normal); srd.ss = vc->obact->sculpt; srd.ray_start = ray_start; @@ -2055,6 +2056,7 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke) if(ss->refkb) sculpt_key_to_mesh(ss->refkb, ob); + ss->partial_redraw = 0; WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); } } -- cgit v1.2.3 From c3401eb5cb0833dc76eff1e90e573b487181ec81 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 16 Dec 2009 19:49:33 +0000 Subject: camera switching via markers Currently access by selecting a marking and binding with the active camera from the view menu. Note: after long discussion we decieded there is no nice way to do this.. animate pointers? animate multiple camera visibility?, use sequencer? use NLA?.... have a kind of event system (like framechange scriptlinks)... etc so this is ifdef'd with DURIAN_CAMERA_SWITCH --- source/blender/blenkernel/BKE_scene.h | 1 + source/blender/blenkernel/intern/object.c | 11 +++++ source/blender/blenkernel/intern/scene.c | 41 +++++++++++++++++ source/blender/blenloader/intern/readfile.c | 24 +++++++++- source/blender/editors/animation/anim_markers.c | 60 ++++++++++++++++++++++++- source/blender/editors/screen/screen_edit.c | 41 +++++++++++++++++ source/blender/editors/screen/screen_ops.c | 6 ++- source/blender/makesdna/DNA_scene_types.h | 4 ++ source/blender/render/intern/source/pipeline.c | 6 +++ 9 files changed, 190 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index ecff62a7952..c372004bd19 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -66,6 +66,7 @@ void unlink_scene(struct Main *bmain, struct Scene *sce, struct Scene *newsce); int next_object(struct Scene *scene, int val, struct Base **base, struct Object **ob); struct Object *scene_find_camera(struct Scene *sc); +struct Object *scene_find_camera_switch(struct Scene *scene); // DURIAN_CAMERA_SWITCH struct Base *scene_add_base(struct Scene *sce, struct Object *ob); void scene_deselect_all(struct Scene *sce); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 6b86c6c2908..9a7a3501031 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -554,6 +554,17 @@ void unlink_object(Scene *scene, Object *ob) if(sce->id.lib==NULL) { if(sce->camera==ob) sce->camera= NULL; if(sce->toolsettings->skgen_template==ob) sce->toolsettings->skgen_template = NULL; + +#ifdef DURIAN_CAMERA_SWITCH + { + TimeMarker *m; + + for (m= sce->markers.first; m; m= m->next) { + if(m->camera==ob) + m->camera= NULL; + } + } +#endif } sce= sce->id.next; } diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 4312f23bd9b..7bfeac037ce 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -698,6 +698,47 @@ Object *scene_find_camera(Scene *sc) return NULL; } +#ifdef DURIAN_CAMERA_SWITCH +Object *scene_find_camera_switch(Scene *scene) +{ + TimeMarker *m; + int cfra = scene->r.cfra; + int frame = -(MAXFRAME + 1); + Object *camera= NULL; + + for (m= scene->markers.first; m; m= m->next) { + if(m->camera && (m->frame <= cfra) && (m->frame > frame)) { + camera= m->camera; + frame= m->frame; + + if(frame == cfra) + break; + + } + } + return camera; +} +#endif + +static char *get_cfra_marker_name(Scene *scene) +{ + ListBase *markers= &scene->markers; + TimeMarker *m1, *m2; + + /* search through markers for match */ + for (m1=markers->first, m2=markers->last; m1 && m2; m1=m1->next, m2=m2->prev) { + if (m1->frame==CFRA) + return m1->name; + + if (m1 == m2) + break; + + if (m2->frame==CFRA) + return m2->name; + } + + return NULL; +} Base *scene_add_base(Scene *sce, Object *ob) { diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index fa878093cc4..17dfb4f7ce6 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4174,6 +4174,7 @@ static void lib_link_scene(FileData *fd, Main *main) Base *base, *next; Sequence *seq; SceneRenderLayer *srl; + TimeMarker *marker; sce= main->scene.first; while(sce) { @@ -4229,6 +4230,14 @@ static void lib_link_scene(FileData *fd, Main *main) } SEQ_END +#ifdef DURIAN_CAMERA_SWITCH + for(marker= sce->markers.first; marker; marker= marker->next) { + if(marker->camera) { + marker->camera= newlibadr(fd, sce->id.lib, marker->camera); + } + } +#endif + if(sce->ed) seq_update_muting(sce->ed); @@ -4280,6 +4289,7 @@ static void direct_link_scene(FileData *fd, Scene *sce) Editing *ed; Sequence *seq; MetaStack *ms; + TimeMarker *marker; sce->theDag = NULL; sce->dagisvalid = 0; @@ -4451,7 +4461,7 @@ static void direct_link_scene(FileData *fd, Scene *sce) link_list(fd, &(sce->markers)); link_list(fd, &(sce->transform_spaces)); link_list(fd, &(sce->r.layers)); - + sce->nodetree= newdataadr(fd, sce->nodetree); if(sce->nodetree) direct_link_nodetree(fd, sce->nodetree); @@ -11255,6 +11265,18 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce) if(sce->gpd) expand_doit(fd, mainvar, sce->gpd); + +#ifdef DURIAN_CAMERA_SWITCH + { + TimeMarker *marker; + + for(marker= sce->markers.first; marker; marker= marker->next) { + if(marker->camera) { + expand_doit(fd, mainvar, marker->camera); + } + } + } +#endif } static void expand_camera(FileData *fd, Main *mainvar, Camera *ca) diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index 721fa928e44..0d519c87a97 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -240,15 +240,19 @@ static void draw_marker(View2D *v2d, TimeMarker *marker, int cfra, int flag) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); /* vertical line - dotted */ - // NOTE: currently only used for sequencer + // NOTE: currently only used for sequencer +#ifdef DURIAN_CAMERA_SWITCH + if (marker->camera || flag & DRAW_MARKERS_LINES) { +#else if (flag & DRAW_MARKERS_LINES) { +#endif setlinestyle(3); if (marker->flag & SELECT) glColor4ub(255, 255, 255, 96); else glColor4ub(0, 0, 0, 96); - + glBegin(GL_LINES); glVertex2f((xpos*xscale)+0.5f, 12.0f); glVertex2f((xpos*xscale)+0.5f, 34.0f*yscale); /* a bit lazy but we know it cant be greater then 34 strips high */ @@ -672,6 +676,10 @@ static void ed_marker_duplicate_apply(bContext *C, wmOperator *op) newmarker->frame= marker->frame; BLI_strncpy(newmarker->name, marker->name, sizeof(marker->name)); +#ifdef DURIAN_CAMERA_SWITCH + newmarker->camera= marker->camera; +#endif + /* new marker is added to the begining of list */ BLI_addhead(markers, newmarker); } @@ -978,6 +986,48 @@ static void MARKER_OT_delete(wmOperatorType *ot) } +#ifdef DURIAN_CAMERA_SWITCH +/* ******************************* camera bind marker ***************** */ + +/* remove selected TimeMarkers */ +static int ed_marker_camera_bind_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + ListBase *markers= context_get_markers(C); + TimeMarker *marker; + short changed= 0; + + if(markers == NULL) + return OPERATOR_CANCELLED; + + for(marker= markers->first; marker; marker= marker->next) { + if(marker->flag & SELECT) { + marker->camera= scene->camera; + } + } + + if (changed) + WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL); + + return OPERATOR_FINISHED; +} + +static void MARKER_OT_camera_bind(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Bind Camera to Markers"; + ot->description= "Bind the active camera to selected markers(s)."; + ot->idname= "MARKER_OT_camera_bind"; + + /* api callbacks */ + ot->exec= ed_marker_camera_bind_exec; + ot->poll= ED_operator_areaactive; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} +#endif + /* ************************** registration **********************************/ /* called in screen_ops.c:ED_operatortypes_screen() */ @@ -990,6 +1040,9 @@ void ED_operatortypes_marker(void) WM_operatortype_append(MARKER_OT_select_border); WM_operatortype_append(MARKER_OT_select_all); WM_operatortype_append(MARKER_OT_delete); +#ifdef DURIAN_CAMERA_SWITCH + WM_operatortype_append(MARKER_OT_camera_bind); +#endif } /* called in screen_ops.c:ED_keymap_screen() */ @@ -1008,5 +1061,8 @@ void ED_marker_keymap(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "MARKER_OT_delete", DELKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MARKER_OT_move", GKEY, KM_PRESS, 0, 0); +#ifdef DURIAN_CAMERA_SWITCH + WM_keymap_add_item(keymap, "MARKER_OT_camera_bind", HOMEKEY, KM_PRESS, 0, 0); +#endif } diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 640a14a934b..9c581527e4c 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1670,6 +1670,47 @@ void ED_update_for_newframe(const bContext *C, int mute) bScreen *screen= CTX_wm_screen(C); Scene *scene= CTX_data_scene(C); +#ifdef DURIAN_CAMERA_SWITCH + void *camera= scene_find_camera_switch(scene); + if(camera && scene->camera != camera) { + + if(camera && scene->camera && (camera != scene->camera)) { + bScreen *sc; + /* are there cameras in the views that are not in the scene? */ + for(sc= CTX_data_main(C)->screen.first; sc; sc= sc->id.next) { + ScrArea *sa= sc->areabase.first; + while(sa) { + SpaceLink *sl= sa->spacedata.first; + while(sl) { + if(sl->spacetype==SPACE_VIEW3D) { + View3D *v3d= (View3D*) sl; + if (v3d->camera == scene->camera) { + v3d->camera= camera; + /* + ARegion *ar; + for(ar=v3d->regionbase.first; ar; ar= ar->next) { + if(ar->regiontype == RGN_TYPE_WINDOW) { + RegionView3D *rv3d= ar->regiondata; + + if(rv3d->persp==RV3D_CAMOB) + rv3d->persp= RV3D_PERSP; + } + } + */ + } + } + sl= sl->next; + } + sa= sa->next; + } + } + } + + scene->camera= camera; + + } +#endif + //extern void audiostream_scrub(unsigned int frame); /* seqaudio.c */ /* this function applies the changes too */ diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index fe2bc58faf2..7227c13d374 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2339,6 +2339,9 @@ static int screen_animation_step(bContext *C, wmOperator *op, wmEvent *event) ScreenAnimData *sad= wt->customdata; ScrArea *sa; int sync; +#ifdef DURIAN_CAMERA_SWITCH + Object *camera_orig= scene->camera; +#endif /* sync, don't sync, or follow scene setting */ if(sad->flag & ANIMPLAY_FLAG_SYNC) sync= 1; @@ -2397,10 +2400,11 @@ static int screen_animation_step(bContext *C, wmOperator *op, wmEvent *event) } /* since we follow drawflags, we can't send notifier but tag regions ourselves */ + ED_update_for_newframe(C, 1); sound_update_playing(C); - + for(sa= screen->areabase.first; sa; sa= sa->next) { ARegion *ar; for(ar= sa->regionbase.first; ar; ar= ar->next) { diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 32143015885..0ed8aba056a 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -29,6 +29,9 @@ #ifndef DNA_SCENE_TYPES_H #define DNA_SCENE_TYPES_H +// XXX, temp feature +#define DURIAN_CAMERA_SWITCH + #ifdef __cplusplus extern "C" { #endif @@ -488,6 +491,7 @@ typedef struct TimeMarker { int frame; char name[64]; unsigned int flag; + struct Object *camera; } TimeMarker; typedef struct Paint { diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 1eb864e173d..92a8945af2e 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2503,6 +2503,12 @@ static void do_render_seq(Render * re) /* main loop: doing sequence + fields + blur + 3d render + compositing */ static void do_render_all_options(Render *re) { +#ifdef DURIAN_CAMERA_SWITCH + Object *camera= scene_find_camera_switch(re->scene); + if(camera) + re->scene->camera= camera; +#endif + re->i.starttime= PIL_check_seconds_timer(); /* ensure no images are in memory from previous animated sequences */ -- cgit v1.2.3 From 8a61ad3cd25714934ebba977351d1ee547f6a24b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 16 Dec 2009 23:05:59 +0000 Subject: bugfix [#20054] Continuous Zoom isn't smooth --- source/blender/editors/space_view3d/view3d_edit.c | 25 +++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 7714f117e9c..3a4dc102943 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -234,6 +234,10 @@ typedef struct ViewOpsData { ARegion *ar; RegionView3D *rv3d; + /* needed for continuous zoom */ + wmTimer *timer; + double timer_lastdraw; + float oldquat[4]; float trackvec[3]; float reverse, dist0; @@ -372,6 +376,9 @@ static void viewops_data_free(bContext *C, wmOperator *op) if(p && (p->flags & PAINT_FAST_NAVIGATE)) ED_region_tag_redraw(vod->ar); + if(vod->timer) + WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), vod->timer); + MEM_freeN(vod); op->customdata= NULL; } @@ -891,8 +898,12 @@ static void viewzoom_apply(ViewOpsData *vod, int x, int y) float zfac=1.0; if(U.viewzoom==USER_ZOOM_CONT) { + double time= PIL_check_seconds_timer(); + float time_step= (float)(time - vod->timer_lastdraw); + // oldstyle zoom - zfac = 1.0+(float)(vod->origx - x + vod->origy - y)/1000.0; + zfac = 1.0f + (((float)(vod->origx - x + vod->origy - y)/20.0) * time_step); + vod->timer_lastdraw= time; } else if(U.viewzoom==USER_ZOOM_SCALE) { int ctr[2], len1, len2; @@ -959,7 +970,10 @@ static int viewzoom_modal(bContext *C, wmOperator *op, wmEvent *event) short event_code= VIEW_PASS; /* execute the events */ - if(event->type==MOUSEMOVE) { + if (event->type == TIMER && event->customdata == vod->timer) { + event_code= VIEW_APPLY; + } + else if(event->type==MOUSEMOVE) { event_code= VIEW_APPLY; } else if(event->type==EVT_MODAL_MAP) { @@ -1038,9 +1052,16 @@ static int viewzoom_invoke(bContext *C, wmOperator *op, wmEvent *event) viewzoom_exec(C, op); } else { + ViewOpsData *vod; + /* makes op->customdata */ viewops_data_create(C, op, event); + vod= op->customdata; + + vod->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f); + vod->timer_lastdraw= PIL_check_seconds_timer(); + /* add temp handler */ WM_event_add_modal_handler(C, op); -- cgit v1.2.3 From b9dbd53aeafd7105621bf9b2975b5a0885017dd6 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 17 Dec 2009 01:06:12 +0000 Subject: Added search filtering to key map editor - searches in UI names of operators --- source/blender/makesdna/DNA_windowmanager_types.h | 3 +- source/blender/makesrna/intern/rna_wm.c | 42 +++-------------------- 2 files changed, 7 insertions(+), 38 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 0b69b72aa41..c17ae1c53c8 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -123,7 +123,6 @@ typedef struct wmWindowManager { ListBase keyconfigs; /* known key configurations */ struct wmKeyConfig *defaultconf; /* default configuration, not saved */ - int defaultactmap, pad2; /* active keymap from default for editing */ ListBase timers; /* active timers */ struct wmTimer *autosavetimer; /* timer for auto save */ @@ -301,6 +300,8 @@ typedef struct wmKeyConfig { char idname[64]; /* unique name */ char basename[64]; /* idname of configuration this is derives from, "" if none */ + char filter[64]; /* search term for filtering in the UI */ + ListBase keymaps; int actkeymap, flag; } wmKeyConfig; diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index b17cefcccac..7809c3a8c34 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -535,36 +535,6 @@ static void rna_WindowManager_active_keyconfig_set(PointerRNA *ptr, PointerRNA v BLI_strncpy(U.keyconfigstr, kc->idname, sizeof(U.keyconfigstr)); } -static PointerRNA rna_WindowManager_active_keymap_get(PointerRNA *ptr) -{ - wmWindowManager *wm= ptr->data; - wmKeyMap *km= NULL; - - if(wm->defaultconf) { - km= BLI_findlink(&wm->defaultconf->keymaps, wm->defaultactmap); - - if(!km) - km= wm->defaultconf->keymaps.first; - } - - return rna_pointer_inherit_refine(ptr, &RNA_KeyMap, WM_keymap_active(wm, km)); -} - -static void rna_WindowManager_active_keymap_set(PointerRNA *ptr, PointerRNA value) -{ - wmWindowManager *wm= ptr->data; - wmKeyMap *km= value.data; - int index; - - if(wm->defaultconf && km) { - km= WM_keymap_find(wm->defaultconf, km->idname, km->spaceid, km->regionid); - index= BLI_findindex(&wm->defaultconf->keymaps, km); - - if(index != -1) wm->defaultactmap= index; - else wm->defaultactmap= 0; - } -} - static void rna_wmKeyMapItem_idname_get(PointerRNA *ptr, char *value) { wmKeyMapItem *kmi= ptr->data; @@ -848,12 +818,6 @@ static void rna_def_windowmanager(BlenderRNA *brna) RNA_def_property_struct_type(prop, "KeyConfig"); RNA_def_property_ui_text(prop, "Default Key Configuration", ""); - prop= RNA_def_property(srna, "active_keymap", PROP_POINTER, PROP_NEVER_NULL); - RNA_def_property_struct_type(prop, "KeyMap"); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_pointer_funcs(prop, "rna_WindowManager_active_keymap_get", "rna_WindowManager_active_keymap_set", 0); - RNA_def_property_ui_text(prop, "Active Key Map", ""); - RNA_api_wm(srna); } @@ -881,6 +845,10 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_string_sdna(prop, NULL, "idname"); RNA_def_property_ui_text(prop, "Name", "Name of the key configuration."); RNA_def_struct_name_property(srna, prop); + + prop= RNA_def_property(srna, "filter", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "filter"); + RNA_def_property_ui_text(prop, "Filter", "Search term for filtering in the UI."); prop= RNA_def_property(srna, "keymaps", PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, "KeyMap"); @@ -1011,7 +979,7 @@ static void rna_def_keyconfig(BlenderRNA *brna) prop= RNA_def_property(srna, "expanded", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_EXPANDED); - RNA_def_property_ui_text(prop, "Expanded", "Expanded in the user interface."); + RNA_def_property_ui_text(prop, "Expanded", "Show key map event and property details in the user interface."); RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1); prop= RNA_def_property(srna, "propvalue", PROP_ENUM, PROP_NONE); -- cgit v1.2.3 From 8d996df7ceaf14f34c05a2b3bbbda57522674ef9 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 17 Dec 2009 01:19:50 +0000 Subject: Adding POINTER_GRAB flag to view 2d pan operator, to make it use continuous grab. --- source/blender/editors/interface/view2d_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c index 6579e30900b..8bd840f7e84 100644 --- a/source/blender/editors/interface/view2d_ops.c +++ b/source/blender/editors/interface/view2d_ops.c @@ -274,7 +274,7 @@ void VIEW2D_OT_pan(wmOperatorType *ot) ot->cancel= view_pan_cancel; /* operator is repeatable */ - ot->flag= OPTYPE_BLOCKING; + ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER; /* rna - must keep these in sync with the other operators */ RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "", INT_MIN, INT_MAX); -- cgit v1.2.3 From fd18f555103efe8ac148ab763965d5595632da3d Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 17 Dec 2009 03:32:33 +0000 Subject: keymap editor New unique ID per keymap item (unique inside their keymap) for default and configuration keymaps. This allows restoring a single user defined kmi to its previous (default or config) values instead of having to restore the whole keymap. The restore item button is disabled for kmi added by the users (they don't have an ID). Also fixes a bug in the rna function for add keymap item (parameter order was incorrect, messing adding back saved configurations). --- source/blender/makesdna/DNA_windowmanager_types.h | 6 ++- source/blender/makesrna/intern/rna_wm.c | 5 ++ source/blender/makesrna/intern/rna_wm_api.c | 12 ++++- source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm_keymap.c | 60 +++++++++++++++++++++++ 5 files changed, 81 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index c17ae1c53c8..9e47a6f1d89 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -262,7 +262,9 @@ typedef struct wmKeyMapItem { short flag; /* runtime */ - short maptype, pad[2]; /* keymap editor */ + short maptype; /* keymap editor */ + short id; /* unique identifier */ + short pad; struct PointerRNA *ptr; /* rna pointer to access properties */ } wmKeyMapItem; @@ -281,7 +283,7 @@ typedef struct wmKeyMap { short regionid; /* see above */ short flag; /* general flags */ - short pad; + short kmi_id; /* last kmi id */ /* runtime */ int (*poll)(struct bContext *); /* verify if enabled in the current context */ diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 7809c3a8c34..09adb642e58 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -944,6 +944,11 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_KeyMapItem_value_itemf"); RNA_def_property_ui_text(prop, "Value", ""); + prop= RNA_def_property(srna, "id", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "id"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "id", "ID of the item."); + prop= RNA_def_property(srna, "any", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_funcs(prop, "rna_KeyMapItem_any_getf", "rna_KeyMapItem_any_setf"); RNA_def_property_ui_text(prop, "Any", "Any modifier keys pressed."); diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index 47d15c87596..94a689c9f1c 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -113,7 +113,12 @@ static wmKeyMapItem *rna_KeyMap_add_modal_item(wmKeyMap *km, bContext *C, Report return WM_modalkeymap_add_item(km, type, value, modifier, keymodifier, propvalue); } -static wmKeyMapItem *rna_KeyMap_add_item(wmKeyMap *km, ReportList *reports, char *idname, int type, int any, int value, int shift, int ctrl, int alt, int oskey, int keymodifier) +static void rna_keymap_restore_item_to_default(wmKeyMap *km, bContext *C, wmKeyMapItem *kmi) +{ + WM_keymap_restore_item_to_default(C, km, kmi); +} + +static wmKeyMapItem *rna_KeyMap_add_item(wmKeyMap *km, ReportList *reports, char *idname, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier) { // wmWindowManager *wm = CTX_wm_manager(C); int modifier= 0; @@ -276,6 +281,11 @@ void RNA_api_keymap(StructRNA *srna) RNA_def_function_return(func, parm); func= RNA_def_function(srna, "restore_to_default", "WM_keymap_restore_to_default"); + + func= RNA_def_function(srna, "restore_item_to_default", "rna_keymap_restore_item_to_default"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); } #endif diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 66ede3f6ba6..e90360fde45 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -114,6 +114,7 @@ int WM_keymap_user_init(struct wmWindowManager *wm, struct wmKeyMap *keymap); wmKeyMap *WM_keymap_copy_to_user(struct wmKeyMap *keymap); void WM_keymap_restore_to_default(struct wmKeyMap *keymap); void WM_keymap_properties_reset(struct wmKeyMapItem *kmi); +void WM_keymap_restore_item_to_default(struct bContext *C, struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, char *idname, struct EnumPropertyItem *items); wmKeyMap *WM_modalkeymap_get(struct wmKeyConfig *keyconf, char *idname); diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index fe5b42a1841..e1f812ee45f 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -201,6 +201,12 @@ wmKeyMapItem *WM_keymap_add_item(wmKeyMap *keymap, char *idname, int type, int v keymap_event_set(kmi, type, val, modifier, keymodifier); keymap_properties_set(kmi); + + if ((keymap->flag & KEYMAP_USER) == 0) { + keymap->kmi_id++; + kmi->id = keymap->kmi_id; + } + return kmi; } @@ -291,6 +297,11 @@ wmKeyMapItem *WM_modalkeymap_add_item(wmKeyMap *km, int type, int val, int modif keymap_event_set(kmi, type, val, modifier, keymodifier); + if ((km->flag & KEYMAP_USER) == 0) { + km->kmi_id++; + kmi->id = km->kmi_id; + } + return kmi; } @@ -545,6 +556,55 @@ wmKeyMap *WM_keymap_copy_to_user(wmKeyMap *keymap) return usermap; } +void WM_keymap_restore_item_to_default(bContext *C, wmKeyMap *keymap, wmKeyMapItem *kmi) +{ + wmWindowManager *wm = CTX_wm_manager(C); + wmKeyConfig *keyconf; + wmKeyMap *km = NULL; + + /* look in user key config */ + keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); + if(keyconf) { + km= WM_keymap_list_find(&keyconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + } + + if (!km) { + /* or from default */ + km= WM_keymap_list_find(&wm->defaultconf->keymaps, keymap->idname, keymap->spaceid, keymap->regionid); + } + + if (km) { + wmKeyMapItem *orig; + + for (orig = km->items.first; orig; orig = orig->next) { + if (orig->id == kmi->id) + break; + } + + if (orig) { + if(strcmp(orig->idname, kmi->idname) != 0) { + BLI_strncpy(kmi->idname, orig->idname, sizeof(kmi->idname)); + + WM_keymap_properties_reset(kmi); + } + kmi->properties= IDP_CopyProperty(orig->properties); + kmi->ptr->data= kmi->properties; + + kmi->propvalue = orig->propvalue; + kmi->type = orig->type; + kmi->val = orig->val; + kmi->shift = orig->shift; + kmi->ctrl = orig->ctrl; + kmi->alt = orig->alt; + kmi->oskey = orig->oskey; + kmi->keymodifier = orig->keymodifier; + kmi->maptype = orig->maptype; + + } + + } +} + void WM_keymap_restore_to_default(wmKeyMap *keymap) { wmKeyMap *usermap; -- cgit v1.2.3 From fac65a3f4d1645fb59ed0b023247535b4b1d6d77 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 17 Dec 2009 04:55:15 +0000 Subject: Durian request: Extend the 'only selected' property in the graph editor to only show curves from selected sequence strips and nodes as well. --- source/blender/blenkernel/BKE_node.h | 1 + source/blender/blenkernel/BKE_sequencer.h | 2 + source/blender/blenkernel/intern/node.c | 11 +++ source/blender/blenkernel/intern/sequencer.c | 15 +++++ source/blender/editors/animation/anim_filter.c | 86 ++++++++++++++++++------ source/blender/editors/space_graph/space_graph.c | 6 ++ source/blender/makesrna/intern/rna_action.c | 2 +- 7 files changed, 102 insertions(+), 21 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index f9130e24a08..3ed9ab8778e 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -175,6 +175,7 @@ struct bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node, int inte struct bNodeLink *nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock); void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link); +struct bNode *nodeFindNodebyName(struct bNodeTree *ntree, const char *name); int nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **nodep, int *sockindex); struct bNodeLink *nodeFindLink(struct bNodeTree *ntree, struct bNodeSocket *from, struct bNodeSocket *to); diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index a50b03861d7..e6b468e0dc0 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -192,6 +192,8 @@ void seq_update_muting(struct Editing *ed); void clear_scene_in_allseqs(struct Scene *sce); +struct Sequence *get_seq_by_name(struct Scene *scene, const char *name); + struct Sequence *active_seq_get(struct Scene *scene); void active_seq_set(struct Scene *scene, struct Sequence *seq); diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index a27c3b6494b..84ef4fb6d1c 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -767,6 +767,17 @@ void nodeGroupSocketUseFlags(bNodeTree *ngroup) } } +/* finds a node based on its name */ +bNode *nodeFindNodebyName(bNodeTree *ntree, const char *name) +{ + bNode *node=NULL; + + for(node= ntree->nodes.first; node; node= node->next) { + if (strcmp(name, node->name) == 0) + break; + } + return node; +} /* finds a node based on given socket */ int nodeFindNode(bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockindex) diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index a7b9cf7f74c..e36e8dc49c4 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3575,6 +3575,21 @@ void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs) } +Sequence *get_seq_by_name(Scene *scene, const char *name) +{ + Sequence *seq=NULL; + Editing *ed= seq_give_editing(scene, FALSE); + + if(ed==NULL) return NULL; + + for (seq=ed->seqbase.first; seq; seq=seq->next) { + if (strcmp(name, seq->name+2) == 0) + break; + } + return seq; +} + + Sequence *active_seq_get(Scene *scene) { Editing *ed= seq_give_editing(scene, FALSE); diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 544157c4030..fc5e7e1898b 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -68,6 +68,7 @@ #include "DNA_object_types.h" #include "DNA_particle_types.h" #include "DNA_space_types.h" +#include "DNA_sequence_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" #include "DNA_windowmanager_types.h" @@ -85,6 +86,8 @@ #include "BKE_key.h" #include "BKE_object.h" #include "BKE_material.h" +#include "BKE_node.h" +#include "BKE_sequencer.h" #include "BKE_screen.h" #include "BKE_utildefines.h" @@ -754,6 +757,65 @@ bAnimListElem *make_new_animlistelem (void *data, short datatype, void *owner, s /* ----------------------------------------- */ +static int skip_fcurve_selected_data(FCurve *fcu, ID *owner_id) +{ + if (GS(owner_id->name) == ID_OB) { + Object *ob= (Object *)owner_id; + + /* only consider if F-Curve involves pose.bones */ + if ((fcu->rna_path) && strstr(fcu->rna_path, "bones")) { + bPoseChannel *pchan; + char *bone_name; + + /* get bone-name, and check if this bone is selected */ + bone_name= BLI_getQuotedStr(fcu->rna_path, "bones["); + pchan= get_pose_channel(ob->pose, bone_name); + if (bone_name) MEM_freeN(bone_name); + + /* can only add this F-Curve if it is selected */ + if ((pchan) && (pchan->bone) && (pchan->bone->flag & BONE_SELECTED)==0) + return 1; + } + } + else if (GS(owner_id->name) == ID_SCE) { + Scene *sce = (Scene *)owner_id; + + /* only consider if F-Curve involves sequence_editor.sequences */ + if ((fcu->rna_path) && strstr(fcu->rna_path, "sequences_all")) { + Sequence *seq; + char *seq_name; + + /* get strip name, and check if this strip is selected */ + seq_name= BLI_getQuotedStr(fcu->rna_path, "sequences_all["); + seq = get_seq_by_name(sce, seq_name); + if (seq_name) MEM_freeN(seq_name); + + /* can only add this F-Curve if it is selected */ + if ((seq) && (seq->flag & SELECT)==0) + return 1; + } + } + else if (GS(owner_id->name) == ID_NT) { + bNodeTree *ntree = (bNodeTree *)owner_id; + + /* check for selected nodes */ + if ((fcu->rna_path) && strstr(fcu->rna_path, "nodes")) { + bNode *node; + char *node_name; + + /* get strip name, and check if this strip is selected */ + node_name= BLI_getQuotedStr(fcu->rna_path, "nodes["); + node = nodeFindNodebyName(ntree, node_name); + if (node_name) MEM_freeN(node_name); + + /* can only add this F-Curve if it is selected */ + if ((node) && (node->flag & NODE_SELECT)==0) + return 1; + } + } + return 0; +} + /* find the next F-Curve that is usable for inclusion */ static FCurve *animdata_filter_fcurve_next (bDopeSheet *ads, FCurve *first, bActionGroup *grp, int filter_mode, ID *owner_id) { @@ -771,27 +833,11 @@ static FCurve *animdata_filter_fcurve_next (bDopeSheet *ads, FCurve *first, bAct * carefully checking the entire path * - this will also affect things like Drivers, and also works for Bone Constraints */ - if ( ((ads) && (ads->filterflag & ADS_FILTER_ONLYSEL)) && - ((owner_id) && (GS(owner_id->name) == ID_OB)) ) - { - Object *ob= (Object *)owner_id; - - /* only consider if F-Curve involves pose.bones */ - if ((fcu->rna_path) && strstr(fcu->rna_path, "bones")) { - bPoseChannel *pchan; - char *bone_name; - - /* get bone-name, and check if this bone is selected */ - bone_name= BLI_getQuotedStr(fcu->rna_path, "bones["); - pchan= get_pose_channel(ob->pose, bone_name); - if (bone_name) MEM_freeN(bone_name); - - /* can only add this F-Curve if it is selected */ - if ((pchan) && (pchan->bone) && (pchan->bone->flag & BONE_SELECTED)==0) - continue; - } + if ( ((ads) && (ads->filterflag & ADS_FILTER_ONLYSEL)) && (owner_id) ) { + if (skip_fcurve_selected_data(fcu, owner_id)) + continue; } - + /* only include if visible (Graph Editor check, not channels check) */ if (!(filter_mode & ANIMFILTER_CURVEVISIBLE) || (fcu->flag & FCURVE_VISIBLE)) { /* only work with this channel and its subchannels if it is editable */ diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 3023ec89258..f00215e7313 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -387,6 +387,7 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn) case ND_OB_ACTIVE: case ND_FRAME: case ND_MARKERS: + case ND_SEQUENCER_SELECT: ED_region_tag_redraw(ar); break; } @@ -405,6 +406,11 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_NODE: + switch(wmn->data) { + case ND_NODE_SELECT: + ED_region_tag_redraw(ar); + break; + } switch(wmn->action) { case NA_EDITED: ED_region_tag_redraw(ar); diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 0568652488d..4cb7080f05e 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -56,7 +56,7 @@ static void rna_def_dopesheet(BlenderRNA *brna) prop= RNA_def_property(srna, "only_selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYSEL); - RNA_def_property_ui_text(prop, "Only Selected", "Only include channels relating to selected Objects."); + RNA_def_property_ui_text(prop, "Only Selected", "Only include channels relating to selected objects and data."); RNA_def_property_ui_icon(prop, ICON_RESTRICT_SELECT_OFF, 0); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); -- cgit v1.2.3 From b438dd8668704a01225fb650413aa75f715a2933 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 17 Dec 2009 06:06:30 +0000 Subject: Notifier related tweaks, partially from patch 20370 by Jason Millis --- source/blender/editors/object/object_hook.c | 5 ++- source/blender/editors/object/object_vgroup.c | 2 +- .../blender/editors/space_buttons/space_buttons.c | 51 +++++++++++++++++----- source/blender/editors/space_view3d/space_view3d.c | 1 + source/blender/makesrna/intern/rna_object.c | 8 ++-- source/blender/makesrna/intern/rna_scene.c | 14 +++--- 6 files changed, 57 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index a2feee54c8c..313ffe79c66 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -491,7 +491,7 @@ static int object_add_hook_selob_exec(bContext *C, wmOperator *op) add_hook_object(scene, obedit, obsel, OBJECT_ADDHOOK_SELOB); - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, obedit); return OPERATOR_FINISHED; } @@ -518,6 +518,7 @@ static int object_add_hook_newob_exec(bContext *C, wmOperator *op) add_hook_object(scene, obedit, NULL, OBJECT_ADDHOOK_NEWOB); WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, obedit); return OPERATOR_FINISHED; } @@ -559,7 +560,7 @@ static int object_hook_remove_exec(bContext *C, wmOperator *op) modifier_free((ModifierData *)hmd); DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c index d9c21a9c9a5..43fabff6793 100644 --- a/source/blender/editors/object/object_vgroup.c +++ b/source/blender/editors/object/object_vgroup.c @@ -1736,7 +1736,7 @@ static int set_active_group_exec(bContext *C, wmOperator *op) ob->actdef= nr+1; DAG_id_flush_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 160343cf940..acc34fce660 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -236,6 +236,17 @@ static void buttons_header_area_draw(const bContext *C, ARegion *ar) UI_view2d_view_restore(C); } +/* draw a certain button set only if properties area is currently + * showing that button set, to reduce unnecessary drawing. */ +static void buttons_area_redraw(ScrArea *sa, short buttons) +{ + SpaceButs *sbuts= sa->spacedata.first; + + /* if the area's current button set is equal to the one to redraw */ + if(sbuts->mainb == buttons) + ED_area_tag_redraw(sa); +} + /* reused! */ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) { @@ -244,38 +255,45 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) /* context changes */ switch(wmn->category) { case NC_SCENE: - /* lazy general redraw tag here, in case more than 1 propertie window is opened - Not all RNA props have a ND_sub notifier(yet) */ - ED_area_tag_redraw(sa); switch(wmn->data) { case ND_FRAME: - case ND_MODE: case ND_RENDER_OPTIONS: - case ND_KEYINGSET: - case ND_LAYER: - ED_area_tag_redraw(sa); + buttons_area_redraw(sa, BCONTEXT_RENDER); break; - case ND_OB_ACTIVE: ED_area_tag_redraw(sa); sbuts->preview= 1; break; + case ND_KEYINGSET: + buttons_area_redraw(sa, BCONTEXT_SCENE); + break; + case ND_MODE: + case ND_LAYER: + default: + ED_area_tag_redraw(sa); + break; } break; case NC_OBJECT: - ED_area_tag_redraw(sa); - /* lazy general redraw tag here, in case more than 1 propertie window is opened - Not all RNA props have a ND_ notifier(yet) */ switch(wmn->data) { case ND_TRANSFORM: + buttons_area_redraw(sa, BCONTEXT_OBJECT); + break; case ND_BONE_ACTIVE: case ND_BONE_SELECT: + buttons_area_redraw(sa, BCONTEXT_BONE); + break; case ND_MODIFIER: if(wmn->action == NA_RENAME) ED_area_tag_redraw(sa); + else + buttons_area_redraw(sa, BCONTEXT_MODIFIER); break; case ND_CONSTRAINT: - ED_area_tag_redraw(sa); + buttons_area_redraw(sa, BCONTEXT_CONSTRAINT); + break; + case ND_PARTICLE_DATA: + buttons_area_redraw(sa, BCONTEXT_PARTICLE); break; case ND_DRAW: case ND_SHADING: @@ -283,6 +301,10 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) /* currently works by redraws... if preview is set, it (re)starts job */ sbuts->preview= 1; break; + default: + /* Not all object RNA props have a ND_ notifier (yet) */ + ED_area_tag_redraw(sa); + break; } break; case NC_GEOM: @@ -304,7 +326,12 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) } break; case NC_WORLD: + buttons_area_redraw(sa, BCONTEXT_WORLD); + break; case NC_LAMP: + buttons_area_redraw(sa, BCONTEXT_DATA); + sbuts->preview= 1; + break; case NC_TEXTURE: ED_area_tag_redraw(sa); sbuts->preview= 1; diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index e65cb98e665..e362303c3cc 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -452,6 +452,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) case ND_OB_ACTIVE: case ND_OB_SELECT: case ND_LAYER: + case ND_RENDER_OPTIONS: case ND_MODE: ED_region_tag_redraw(ar); break; diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 021fdcefd33..4c22316be19 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1010,6 +1010,7 @@ static void rna_def_vertex_group(BlenderRNA *brna) prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Name", "Vertex group name."); RNA_def_struct_name_property(srna, prop); + RNA_def_property_update(prop, NC_GEOM|ND_DATA|NA_RENAME, NULL); prop= RNA_def_property(srna, "index", PROP_INT, PROP_UNSIGNED); RNA_def_property_clear_flag(prop, PROP_EDITABLE); @@ -1678,13 +1679,13 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_struct_type(prop, "VertexGroup"); RNA_def_property_pointer_funcs(prop, "rna_Object_active_vertex_group_get", "rna_Object_active_vertex_group_set", NULL); RNA_def_property_ui_text(prop, "Active Vertex Group", "Vertex groups of the object."); - RNA_def_property_update(prop, 0, "rna_Object_update_data"); + RNA_def_property_update(prop, NC_GEOM|ND_DATA, "rna_Object_update_data"); prop= RNA_def_property(srna, "active_vertex_group_index", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "actdef"); RNA_def_property_int_funcs(prop, "rna_Object_active_vertex_group_index_get", "rna_Object_active_vertex_group_index_set", "rna_Object_active_vertex_group_index_range"); RNA_def_property_ui_text(prop, "Active Vertex Group Index", "Active index in vertex group array."); - RNA_def_property_update(prop, 0, "rna_Object_update_data"); + RNA_def_property_update(prop, NC_GEOM|ND_DATA, "rna_Object_update_data"); /* empty */ prop= RNA_def_property(srna, "empty_draw_type", PROP_ENUM, PROP_NONE); @@ -1703,7 +1704,8 @@ static void rna_def_object(BlenderRNA *brna) prop= RNA_def_property(srna, "pass_index", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "index"); RNA_def_property_ui_text(prop, "Pass Index", "Index # for the IndexOB render pass."); - + RNA_def_property_update(prop, NC_OBJECT, NULL); + prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); RNA_def_property_float_sdna(prop, NULL, "col"); RNA_def_property_ui_text(prop, "Color", "Object color and alpha, used when faces have the ObColor mode enabled."); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 51344fdf8b3..e4df352bcc8 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1599,13 +1599,13 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_int_sdna(prop, NULL, "xsch"); RNA_def_property_range(prop, 4, 10000); RNA_def_property_ui_text(prop, "Resolution X", "Number of horizontal pixels in the rendered image."); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS|NC_OBJECT|ND_DRAW, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "resolution_y", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "ysch"); RNA_def_property_range(prop, 4, 10000); RNA_def_property_ui_text(prop, "Resolution Y", "Number of vertical pixels in the rendered image."); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS|NC_OBJECT|ND_DRAW, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "resolution_percentage", PROP_INT, PROP_PERCENTAGE); RNA_def_property_int_sdna(prop, NULL, "size"); @@ -1629,13 +1629,13 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "xasp"); RNA_def_property_range(prop, 1.0f, 200.0f); RNA_def_property_ui_text(prop, "Pixel Aspect X", "Horizontal aspect ratio - for anamorphic or non-square pixel output"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS|NC_OBJECT|ND_DRAW, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "pixel_aspect_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "yasp"); RNA_def_property_range(prop, 1.0f, 200.0f); RNA_def_property_ui_text(prop, "Pixel Aspect Y", "Vertical aspect ratio - for anamorphic or non-square pixel output"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS|NC_OBJECT|ND_DRAW, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); /* JPEG and AVI JPEG */ @@ -1992,7 +1992,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) prop= RNA_def_property(srna, "use_border", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", R_BORDER); RNA_def_property_ui_text(prop, "Border", "Render a user-defined border region, within the frame size."); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS|NC_OBJECT|ND_DRAW, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); prop= RNA_def_property(srna, "border_min_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "border.xmin"); @@ -2352,6 +2352,7 @@ void RNA_def_scene(BlenderRNA *brna) prop= RNA_def_property(srna, "camera", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Camera", "Active camera used for rendering the scene."); + RNA_def_property_update(prop, NC_SCENE, NULL); prop= RNA_def_property(srna, "set", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "set"); @@ -2359,11 +2360,12 @@ void RNA_def_scene(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK); RNA_def_property_pointer_funcs(prop, NULL, "rna_Scene_set_set", NULL); RNA_def_property_ui_text(prop, "Set Scene", "Background set scene."); + RNA_def_property_update(prop, NC_SCENE, NULL); prop= RNA_def_property(srna, "world", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "World", "World used for rendering the scene."); - RNA_def_property_update(prop, NC_WORLD, NULL); + RNA_def_property_update(prop, NC_SCENE|NC_WORLD, NULL); prop= RNA_def_property(srna, "cursor_location", PROP_FLOAT, PROP_XYZ|PROP_UNIT_LENGTH); RNA_def_property_float_sdna(prop, NULL, "cursor"); -- cgit v1.2.3 From 0cc34bebf42c04911bc0bf3de6035ae33a98c16a Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 17 Dec 2009 07:40:43 +0000 Subject: Fix [#20414] select children (shift+g) on an object without children... --- source/blender/editors/object/object_select.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index a0223997cfb..becad003d5c 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -571,6 +571,7 @@ static int object_select_grouped_exec(bContext *C, wmOperator *op) if (extend == 0) { CTX_DATA_BEGIN(C, Base*, base, visible_bases) { ED_base_object_select(base, BA_DESELECT); + changed = 1; } CTX_DATA_END; } @@ -581,17 +582,17 @@ static int object_select_grouped_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - if(nr==1) changed = select_grouped_children(C, ob, 1); - else if(nr==2) changed = select_grouped_children(C, ob, 0); - else if(nr==3) changed = select_grouped_parent(C); - else if(nr==4) changed = select_grouped_siblings(C, ob); - else if(nr==5) changed = select_grouped_type(C, ob); - else if(nr==6) changed = select_grouped_layer(C, ob); - else if(nr==7) changed = select_grouped_group(C, ob); - else if(nr==8) changed = select_grouped_object_hooks(C, ob); - else if(nr==9) changed = select_grouped_index_object(C, ob); - else if(nr==10) changed = select_grouped_color(C, ob); - else if(nr==11) changed = select_grouped_gameprops(C, ob); + if(nr==1) changed |= select_grouped_children(C, ob, 1); + else if(nr==2) changed |= select_grouped_children(C, ob, 0); + else if(nr==3) changed |= select_grouped_parent(C); + else if(nr==4) changed |= select_grouped_siblings(C, ob); + else if(nr==5) changed |= select_grouped_type(C, ob); + else if(nr==6) changed |= select_grouped_layer(C, ob); + else if(nr==7) changed |= select_grouped_group(C, ob); + else if(nr==8) changed |= select_grouped_object_hooks(C, ob); + else if(nr==9) changed |= select_grouped_index_object(C, ob); + else if(nr==10) changed |= select_grouped_color(C, ob); + else if(nr==11) changed |= select_grouped_gameprops(C, ob); if (changed) { WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); -- cgit v1.2.3 From 42c2cbdc671bef652e9c743590167bc04358063f Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Thu, 17 Dec 2009 09:23:47 +0000 Subject: OSX: populate file dialog system & bookmark defaults paths with the finder's ones Former implementation was to populate the "system" paths with the mounted paths. The issue is that OSX mounts some paths that are of no use such as /home (The home dirs reside in /Users). When compiled with 10.5 SDK, it retrieves the folders you have in the finder and OSX standard open/save dialog. When compiled with older SDKs, it assumes these folders are the default ones (home, Desktop, Documents, Pictures, Music, Movies). --- source/blender/editors/space_file/fsmenu.c | 105 ++++++++++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c index b45b57c6be9..bd39a10f661 100644 --- a/source/blender/editors/space_file/fsmenu.c +++ b/source/blender/editors/space_file/fsmenu.c @@ -284,8 +284,10 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename) #else #ifdef __APPLE__ { +#if (MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4) OSErr err=noErr; int i; + char *home; /* loop through all the OS X Volumes, and add them to the SYSTEM section */ for (i=1; err!=nsvErr; i++) @@ -298,8 +300,109 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename) continue; FSRefMakePath(&dir, path, FILE_MAXDIR+FILE_MAXFILE); - fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, 1, 0); + if (strcmp((char*)path, "/home") && strcmp((char*)path, "/net")) + { /* /net and /home are meaningless on OSX, home folders are stored in /Users */ + fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, 1, 0); + } + } + + /* As 10.4 doesn't provide proper API to retrieve the favorite places, + assume they are the standard ones + TODO : replace hardcoded paths with proper BLI_get_folder calls */ + home = BLI_gethome(); + if(home) { + BLI_snprintf(line, 256, "%s/", home); + fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0); + BLI_snprintf(line, 256, "%s/Desktop/", home); + if (BLI_exists(line)) { + fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0); + } + BLI_snprintf(line, 256, "%s/Documents/", home); + if (BLI_exists(line)) { + fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0); + } + BLI_snprintf(line, 256, "%s/Pictures/", home); + if (BLI_exists(line)) { + fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0); + } + BLI_snprintf(line, 256, "%s/Music/", home); + if (BLI_exists(line)) { + fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0); + } + BLI_snprintf(line, 256, "%s/Movies/", home); + if (BLI_exists(line)) { + fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0); + } + } +#else + /* 10.5 provides ability to retrieve Finder favorite places */ + UInt32 seed; + OSErr err = noErr; + CFArrayRef pathesArray; + LSSharedFileListRef list; + LSSharedFileListItemRef itemRef; + CFIndex i, pathesCount; + CFURLRef cfURL = NULL; + CFStringRef pathString = NULL; + + /* First get mounted volumes */ + list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteVolumes, NULL); + pathesArray = LSSharedFileListCopySnapshot(list, &seed); + pathesCount = CFArrayGetCount(pathesArray); + + for (i=0; i Date: Thu, 17 Dec 2009 10:01:08 +0000 Subject: Fix [#20397] Saving with F2 on multiple windows layout crashes --- source/blender/editors/screen/screen_edit.c | 4 +++- source/blender/windowmanager/intern/wm_event_system.c | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 9c581527e4c..0c690452d8a 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1487,9 +1487,11 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa) oldscreen= win->screen; - /* is there only 1 area? */ + /* nothing wrong with having only 1 area, as far as I can see... + // is there only 1 area? if(oldscreen->areabase.first==oldscreen->areabase.last) return NULL; + */ oldscreen->full = SCREENFULL; BLI_snprintf(newname, sizeof(newname), "%s-%s", oldscreen->id.name+2, "temp"); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 710f9897c94..ccc020827c5 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -997,13 +997,24 @@ static int wm_handler_fileselect_call(bContext *C, ListBase *handlers, wmEventHa case EVT_FILESELECT_OPEN: case EVT_FILESELECT_FULL_OPEN: { + ScrArea *sa; + + /* sa can be null when window A is active, but mouse is over window B */ + /* in this case, open file select in original window A */ + if (handler->op_area == NULL) { + bScreen *screen = CTX_wm_screen(C); + sa = (ScrArea *)screen->areabase.first; + } else + sa = handler->op_area; + if(event->val==EVT_FILESELECT_OPEN) - ED_area_newspace(C, handler->op_area, SPACE_FILE); + ED_area_newspace(C, sa, SPACE_FILE); else - ED_screen_full_newspace(C, handler->op_area, SPACE_FILE); + ED_screen_full_newspace(C, sa, SPACE_FILE); /* sets context */ /* settings for filebrowser, sfile is not operator owner but sends events */ - sfile= (SpaceFile*)CTX_wm_space_data(C); + sa = CTX_wm_area(C); + sfile= (SpaceFile*)sa->spacedata.first; sfile->op= handler->op; ED_fileselect_set_params(sfile); -- cgit v1.2.3 From e3a1d044d68000a2e81b662c0cf15bbe17698aa4 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 17 Dec 2009 10:47:55 +0000 Subject: RNA/UI - Reset Settings to Default Values Added a new operator for properties which resets RNA-based settings to their 'default' values, as defined in RNA. This currently only works for floats, ints, enums, and booleans (strings and pointers still need to be implemented). The current extensions to the RNA API that I've made here seem a bit excessive, and can be toned down if necessary. In short, I've just added accessor functions for the default-values of the property definitions. For this to be really useful, many properties in RNA will need to get defaults defined, since the current defaults for quite a few properties tested were less than ideal. --- source/blender/editors/animation/anim_intern.h | 2 - source/blender/editors/animation/anim_ops.c | 2 - source/blender/editors/animation/drivers.c | 43 ---- source/blender/editors/include/UI_interface.h | 3 + .../blender/editors/interface/interface_handlers.c | 9 +- source/blender/editors/interface/interface_ops.c | 234 +++++++++++++++++++++ source/blender/makesrna/RNA_access.h | 13 +- source/blender/makesrna/intern/rna_access.c | 125 ++++++++++- 8 files changed, 380 insertions(+), 51 deletions(-) create mode 100644 source/blender/editors/interface/interface_ops.c (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_intern.h b/source/blender/editors/animation/anim_intern.h index bc4f528d43f..2d363a52248 100644 --- a/source/blender/editors/animation/anim_intern.h +++ b/source/blender/editors/animation/anim_intern.h @@ -79,6 +79,4 @@ void ANIM_OT_driver_button_remove(struct wmOperatorType *ot); void ANIM_OT_copy_driver_button(struct wmOperatorType *ot); void ANIM_OT_paste_driver_button(struct wmOperatorType *ot); -void ANIM_OT_copy_clipboard_button(struct wmOperatorType *ot); - #endif // ANIM_INTERN_H diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c index 6aa638b1ada..9544bb70855 100644 --- a/source/blender/editors/animation/anim_ops.c +++ b/source/blender/editors/animation/anim_ops.c @@ -362,8 +362,6 @@ void ED_operatortypes_anim(void) WM_operatortype_append(ANIM_OT_driver_button_remove); WM_operatortype_append(ANIM_OT_copy_driver_button); WM_operatortype_append(ANIM_OT_paste_driver_button); - - WM_operatortype_append(ANIM_OT_copy_clipboard_button); WM_operatortype_append(ANIM_OT_keyingset_button_add); diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index bc7005b82c4..59e52c0d489 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -581,47 +581,4 @@ void ANIM_OT_paste_driver_button (wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } - -/* Copy to Clipboard Button Operator ------------------------ */ - -static int copy_clipboard_button_exec(bContext *C, wmOperator *op) -{ - PointerRNA ptr; - PropertyRNA *prop= NULL; - char *path; - short success= 0; - int index; - - /* try to create driver using property retrieved from UI */ - memset(&ptr, 0, sizeof(PointerRNA)); - uiAnimContextProperty(C, &ptr, &prop, &index); - - if (ptr.data && prop) { - path= RNA_path_from_ID_to_property(&ptr, prop); - - if (path) { - WM_clipboard_text_set(path, FALSE); - MEM_freeN(path); - } - } - - /* since we're just copying, we don't really need to do anything else...*/ - return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED; -} - -void ANIM_OT_copy_clipboard_button(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Copy Data Path"; - ot->idname= "ANIM_OT_copy_clipboard_button"; - ot->description= "Copy the RNA data path for this property to the clipboard."; - - /* callbacks */ - ot->exec= copy_clipboard_button_exec; - //op->poll= ??? // TODO: need to have some valid property before this can be done - - /* flags */ - ot->flag= OPTYPE_REGISTER; -} - /* ************************************************** */ diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 5b512da55c9..f0e52a13d3f 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -688,6 +688,9 @@ void uiItemMenuF(uiLayout *layout, char *name, int icon, uiMenuCreateFunc func, void uiItemMenuEnumO(uiLayout *layout, char *name, int icon, char *opname, char *propname); void uiItemMenuEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname); +/* UI Operators */ +void ui_buttons_operatortypes(void); + /* Helpers for Operators */ void uiAnimContextProperty(const struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA **prop, int *index); void uiFileBrowseContextProperty(const struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA **prop); diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index a43506778d8..9604704dde8 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -3499,9 +3499,14 @@ static int ui_but_menu(bContext *C, uiBut *but) //Copy Property Value //Paste Property Value - //uiItemO(layout, "Reset to Default Value", 0, "WM_OT_property_value_reset_button"); + if(length) { + uiItemBooleanO(layout, "Reset All to Default Values", 0, "UI_OT_reset_default_button", "all", 1); + uiItemBooleanO(layout, "Reset Single to Default Value", 0, "UI_OT_reset_default_button", "all", 0); + } + else + uiItemO(layout, "Reset to Default Value", 0, "UI_OT_reset_default_button"); - uiItemO(layout, "Copy Data Path", 0, "ANIM_OT_copy_clipboard_button"); + uiItemO(layout, "Copy Data Path", 0, "UI_OT_copy_clipboard_button"); uiItemS(layout); } diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c new file mode 100644 index 00000000000..a5caf1c930b --- /dev/null +++ b/source/blender/editors/interface/interface_ops.c @@ -0,0 +1,234 @@ +/** + * $Id: interface_ops.c 24699 2009-11-20 10:21:31Z aligorith $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2009 Blender Foundation. + * All rights reserved. + * + * Contributor(s): Blender Foundation, Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include +#include + + +#include "MEM_guardedalloc.h" + +#include "DNA_scene_types.h" +#include "DNA_screen_types.h" +#include "DNA_space_types.h" +#include "DNA_userdef_types.h" +#include "DNA_vec_types.h" +#include "DNA_view2d_types.h" + +#include "BLI_blenlib.h" + +#include "BKE_context.h" +#include "BKE_utildefines.h" + +#include "RNA_access.h" +#include "RNA_define.h" + +#include "WM_api.h" +#include "WM_types.h" + +#include "BIF_gl.h" + +#include "ED_screen.h" + +#include "UI_interface.h" +#include "UI_resources.h" + +/* ********************************************************** */ + +/* Copy to Clipboard Button Operator ------------------------ */ + +static int copy_clipboard_button_exec(bContext *C, wmOperator *op) +{ + PointerRNA ptr; + PropertyRNA *prop= NULL; + char *path; + short success= 0; + int index; + + /* try to create driver using property retrieved from UI */ + memset(&ptr, 0, sizeof(PointerRNA)); + uiAnimContextProperty(C, &ptr, &prop, &index); + + if (ptr.data && prop) { + path= RNA_path_from_ID_to_property(&ptr, prop); + + if (path) { + WM_clipboard_text_set(path, FALSE); + MEM_freeN(path); + } + } + + /* since we're just copying, we don't really need to do anything else...*/ + return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED; +} + +void UI_OT_copy_clipboard_button(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Copy Data Path"; + ot->idname= "UI_OT_copy_clipboard_button"; + ot->description= "Copy the RNA data path for this property to the clipboard."; + + /* callbacks */ + ot->exec= copy_clipboard_button_exec; + //op->poll= ??? // TODO: need to have some valid property before this can be done + + /* flags */ + ot->flag= OPTYPE_REGISTER; +} + +/* Reset to Default Values Button Operator ------------------------ */ + +static int reset_default_button_exec(bContext *C, wmOperator *op) +{ + PointerRNA ptr; + PropertyRNA *prop= NULL; + short success= 0; + int index, len; + int all = RNA_boolean_get(op->ptr, "all"); + + /* try to reset the nominated setting to its default value */ + memset(&ptr, 0, sizeof(PointerRNA)); + uiAnimContextProperty(C, &ptr, &prop, &index); + + /* if there is a valid property that is editable... */ + if (ptr.data && prop && RNA_property_editable(&ptr, prop)) { + /* get the length of the array to work with */ + len= RNA_property_array_length(&ptr, prop); + + /* get and set the default values as appropriate for the various types */ + switch (RNA_property_type(prop)) { + case PROP_BOOLEAN: + if (len) { + if (all) { + int *tmparray= MEM_callocN(sizeof(int)*len, "reset_defaults - boolean"); + + RNA_property_boolean_get_default_array(&ptr, prop, tmparray); + RNA_property_boolean_set_array(&ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + int value= RNA_property_boolean_get_default_index(&ptr, prop, index); + RNA_property_boolean_set_index(&ptr, prop, index, value); + } + } + else { + int value= RNA_property_boolean_get_default(&ptr, prop); + RNA_property_boolean_set(&ptr, prop, value); + } + break; + case PROP_INT: + if (len) { + if (all) { + int *tmparray= MEM_callocN(sizeof(int)*len, "reset_defaults - int"); + + RNA_property_int_get_default_array(&ptr, prop, tmparray); + RNA_property_int_set_array(&ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + int value= RNA_property_int_get_default_index(&ptr, prop, index); + RNA_property_int_set_index(&ptr, prop, index, value); + } + } + else { + int value= RNA_property_int_get_default(&ptr, prop); + RNA_property_int_set(&ptr, prop, value); + } + break; + case PROP_FLOAT: + if (len) { + if (all) { + float *tmparray= MEM_callocN(sizeof(float)*len, "reset_defaults - float"); + + RNA_property_float_get_default_array(&ptr, prop, tmparray); + RNA_property_float_set_array(&ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + float value= RNA_property_float_get_default_index(&ptr, prop, index); + RNA_property_float_set_index(&ptr, prop, index, value); + } + } + else { + float value= RNA_property_float_get_default(&ptr, prop); + RNA_property_float_set(&ptr, prop, value); + } + break; + case PROP_ENUM: + { + int value= RNA_property_enum_get_default(&ptr, prop); + RNA_property_enum_set(&ptr, prop, value); + } + break; + + //case PROP_POINTER: + //case PROP_STRING: + default: + // FIXME: many of the other types such as strings and pointers need this implemented too! + break; + } + + /* perform updates required for this property */ + RNA_property_update(C, &ptr, prop); + + success= 1; + } + + return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED; +} + +void UI_OT_reset_default_button(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Reset to Default Value"; + ot->idname= "UI_OT_reset_default_button"; + ot->description= "Copy the RNA data path for this property to the clipboard."; + + /* callbacks */ + ot->exec= reset_default_button_exec; + //op->poll= ??? // TODO: need to have some valid property before this can be done + + /* flags */ + ot->flag= OPTYPE_REGISTER; + + /* properties */ + RNA_def_boolean(ot->srna, "all", 1, "All", "Reset to default values all elements of the array."); +} + +/* ********************************************************* */ +/* Registration */ + +void ui_buttons_operatortypes(void) +{ + WM_operatortype_append(UI_OT_copy_clipboard_button); + WM_operatortype_append(UI_OT_reset_default_button); +} + diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index edbe55ba11d..188c6b2474b 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -660,6 +660,9 @@ void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *val int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value); @@ -667,6 +670,9 @@ void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values) int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values); void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value); +int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values); +int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value); @@ -674,17 +680,22 @@ void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *val float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index); void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values); void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value); +float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop); +void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values); +float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index); void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); +// TODO: get default strings... int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value); +int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop); PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); +// TODO: get default pointers... void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter); void RNA_property_collection_next(CollectionPropertyIterator *iter); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 68499ebd42c..53f5407e521 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1276,6 +1276,45 @@ void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int inde } } +int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop) +{ + BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop; + return bprop->defaultvalue; +} + +void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values) +{ + BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop; + + if(prop->arraydimension == 0) + values[0]= bprop->defaultvalue; + else if(bprop->defaultarray) + memcpy(values, bprop->defaultarray, sizeof(int)*prop->totarraylength); + else + memset(values, 0, sizeof(int)*prop->totarraylength); +} + +int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index) +{ + int tmp[RNA_MAX_ARRAY_LENGTH]; + int len= rna_ensure_property_array_length(ptr, prop); + + if(len <= RNA_MAX_ARRAY_LENGTH) { + RNA_property_boolean_get_default_array(ptr, prop, tmp); + return tmp[index]; + } + else { + int *tmparray, value; + + tmparray= MEM_callocN(sizeof(int)*len, "RNA_property_boolean_get_default_index"); + RNA_property_boolean_get_default_array(ptr, prop, tmparray); + value= tmparray[index]; + MEM_freeN(tmparray); + + return value; + } +} + int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop) { IntPropertyRNA *iprop= (IntPropertyRNA*)prop; @@ -1404,6 +1443,45 @@ void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, i } } +int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop) +{ + IntPropertyRNA *iprop= (IntPropertyRNA*)prop; + return iprop->defaultvalue; +} + +void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values) +{ + IntPropertyRNA *iprop= (IntPropertyRNA*)prop; + + if(prop->arraydimension == 0) + values[0]= iprop->defaultvalue; + else if(iprop->defaultarray) + memcpy(values, iprop->defaultarray, sizeof(int)*prop->totarraylength); + else + memset(values, 0, sizeof(int)*prop->totarraylength); +} + +int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index) +{ + int tmp[RNA_MAX_ARRAY_LENGTH]; + int len= rna_ensure_property_array_length(ptr, prop); + + if(len <= RNA_MAX_ARRAY_LENGTH) { + RNA_property_int_get_default_array(ptr, prop, tmp); + return tmp[index]; + } + else { + int *tmparray, value; + + tmparray= MEM_callocN(sizeof(int)*len, "RNA_property_int_get_default_index"); + RNA_property_int_get_default_array(ptr, prop, tmparray); + value= tmparray[index]; + MEM_freeN(tmparray); + + return value; + } +} + float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop) { FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; @@ -1559,6 +1637,45 @@ void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, } } +float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop) +{ + FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; + return fprop->defaultvalue; +} + +void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values) +{ + FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop; + + if(prop->arraydimension == 0) + values[0]= fprop->defaultvalue; + else if(fprop->defaultarray) + memcpy(values, fprop->defaultarray, sizeof(float)*prop->totarraylength); + else + memset(values, 0, sizeof(float)*prop->totarraylength); +} + +float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index) +{ + float tmp[RNA_MAX_ARRAY_LENGTH]; + int len= rna_ensure_property_array_length(ptr, prop); + + if(len <= RNA_MAX_ARRAY_LENGTH) { + RNA_property_float_get_default_array(ptr, prop, tmp); + return tmp[index]; + } + else { + float *tmparray, value; + + tmparray= MEM_callocN(sizeof(float)*len, "RNA_property_float_get_default_index"); + RNA_property_float_get_default_array(ptr, prop, tmparray); + value= tmparray[index]; + MEM_freeN(tmparray); + + return value; + } +} + void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value) { StringPropertyRNA *sprop= (StringPropertyRNA*)prop; @@ -1637,7 +1754,6 @@ int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop) return eprop->defaultvalue; } - void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value) { EnumPropertyRNA *eprop= (EnumPropertyRNA*)prop; @@ -1660,6 +1776,13 @@ void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value) } } +int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop) +{ + EnumPropertyRNA *eprop= (EnumPropertyRNA*)prop; + return eprop->defaultvalue; +} + + PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop) { PointerPropertyRNA *pprop= (PointerPropertyRNA*)prop; -- cgit v1.2.3 From 88d72e796a388afe79d4dc8d4aed243a49ed1875 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Dec 2009 11:16:28 +0000 Subject: remove warnings. Sequencer selection for fcurve view didnt work in metastrips. - added RNA_property_string_set to the RNA_access.h - include BKE_animsys.h in pipeline.c for sequencer update, hope these are ok. --- source/blender/blenkernel/BKE_sequencer.h | 2 +- source/blender/blenkernel/intern/scene.c | 2 +- source/blender/blenkernel/intern/sequencer.c | 22 ++++++++++++---------- source/blender/blenloader/intern/readfile.c | 1 - source/blender/editors/animation/anim_filter.c | 5 +++-- source/blender/editors/screen/screen_ops.c | 3 --- .../editors/space_sequencer/sequencer_edit.c | 2 +- source/blender/makesrna/RNA_access.h | 1 + source/blender/render/intern/source/pipeline.c | 3 ++- 9 files changed, 21 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index e6b468e0dc0..34d4b15b437 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -192,7 +192,7 @@ void seq_update_muting(struct Editing *ed); void clear_scene_in_allseqs(struct Scene *sce); -struct Sequence *get_seq_by_name(struct Scene *scene, const char *name); +struct Sequence *get_seq_by_name(struct ListBase *seqbase, const char *name, int recursive); struct Sequence *active_seq_get(struct Scene *scene); void active_seq_set(struct Scene *scene, struct Sequence *seq); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 7bfeac037ce..0a2edf82cb0 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -350,7 +350,7 @@ Scene *add_scene(char *name) sce->r.bake_normal_space= R_BAKE_SPACE_TANGENT; sce->r.scemode= R_DOCOMP|R_DOSEQ|R_EXTENSION; - sce->r.stamp= R_STAMP_TIME|R_STAMP_FRAME|R_STAMP_DATE|R_STAMP_SCENE|R_STAMP_CAMERA; + sce->r.stamp= R_STAMP_TIME|R_STAMP_FRAME|R_STAMP_DATE|R_STAMP_SCENE|R_STAMP_CAMERA|R_STAMP_RENDERTIME; sce->r.threads= 1; diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index e36e8dc49c4..5165e570504 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3575,18 +3575,20 @@ void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs) } -Sequence *get_seq_by_name(Scene *scene, const char *name) +Sequence *get_seq_by_name(ListBase *seqbase, const char *name, int recursive) { - Sequence *seq=NULL; - Editing *ed= seq_give_editing(scene, FALSE); - - if(ed==NULL) return NULL; - - for (seq=ed->seqbase.first; seq; seq=seq->next) { - if (strcmp(name, seq->name+2) == 0) - break; + Sequence *iseq=NULL; + Sequence *rseq=NULL; + + for (iseq=seqbase->first; iseq; iseq=iseq->next) { + if (strcmp(name, iseq->name+2) == 0) + return iseq; + else if(recursive && (iseq->seqbase.first) && (rseq=get_seq_by_name(&iseq->seqbase, name, 1))) { + return rseq; + } } - return seq; + + return NULL; } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 17dfb4f7ce6..2631a1aa219 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4289,7 +4289,6 @@ static void direct_link_scene(FileData *fd, Scene *sce) Editing *ed; Sequence *seq; MetaStack *ms; - TimeMarker *marker; sce->theDag = NULL; sce->dagisvalid = 0; diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index fc5e7e1898b..8ab2de8076e 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -778,16 +778,17 @@ static int skip_fcurve_selected_data(FCurve *fcu, ID *owner_id) } } else if (GS(owner_id->name) == ID_SCE) { - Scene *sce = (Scene *)owner_id; + Scene *scene = (Scene *)owner_id; /* only consider if F-Curve involves sequence_editor.sequences */ if ((fcu->rna_path) && strstr(fcu->rna_path, "sequences_all")) { + Editing *ed= seq_give_editing(scene, FALSE); Sequence *seq; char *seq_name; /* get strip name, and check if this strip is selected */ seq_name= BLI_getQuotedStr(fcu->rna_path, "sequences_all["); - seq = get_seq_by_name(sce, seq_name); + seq = get_seq_by_name(ed->seqbasep, seq_name, FALSE); if (seq_name) MEM_freeN(seq_name); /* can only add this F-Curve if it is selected */ diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 7227c13d374..2a9859330af 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2339,9 +2339,6 @@ static int screen_animation_step(bContext *C, wmOperator *op, wmEvent *event) ScreenAnimData *sad= wt->customdata; ScrArea *sa; int sync; -#ifdef DURIAN_CAMERA_SWITCH - Object *camera_orig= scene->camera; -#endif /* sync, don't sync, or follow scene setting */ if(sad->flag & ANIMPLAY_FLAG_SYNC) sync= 1; diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 1876062b2b7..844bf51ae32 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2370,7 +2370,7 @@ static EnumPropertyItem view_type_items[] = { /* view_all operator */ static int sequencer_view_toggle_exec(bContext *C, wmOperator *op) { - SpaceSeq *sseq= CTX_wm_space_data(C); + SpaceSeq *sseq= (SpaceSeq *)CTX_wm_space_data(C); sseq->view++; if (sseq->view > SEQ_VIEW_SEQUENCE_PREVIEW) sseq->view = SEQ_VIEW_SEQUENCE; diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 188c6b2474b..c2b36ddc915 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -686,6 +686,7 @@ float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value); char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen); +void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value); int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop); // TODO: get default strings... diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 92a8945af2e..f7d3d6f419a 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -50,6 +50,7 @@ #include "BKE_writeavi.h" /* <------ should be replaced once with generic movie module */ #include "BKE_sequencer.h" #include "BKE_pointcache.h" +#include "BKE_animsys.h" /* <------ should this be here?, needed for sequencer update */ #include "MEM_guardedalloc.h" @@ -2441,7 +2442,7 @@ static void do_render_seq(Render * re) if(recurs_depth==0) { /* otherwise sequencer animation isnt updated */ - BKE_animsys_evaluate_all_animation(G.main, frame_to_float(re->scene, cfra)); + BKE_animsys_evaluate_all_animation(G.main, (float)cfra); // XXX, was frame_to_float(re->scene, cfra) } recurs_depth++; -- cgit v1.2.3 From 7a5c190820580342832e61b5cc6145ae50b29c4c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Dec 2009 11:40:12 +0000 Subject: sequencer fcurve anim filtering: sequence strips fcurves in meta's were showing up in the main view. mossing notifier for border select. --- source/blender/editors/animation/anim_filter.c | 2 +- source/blender/editors/space_sequencer/sequencer_select.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 8ab2de8076e..2d9ab636642 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -792,7 +792,7 @@ static int skip_fcurve_selected_data(FCurve *fcu, ID *owner_id) if (seq_name) MEM_freeN(seq_name); /* can only add this F-Curve if it is selected */ - if ((seq) && (seq->flag & SELECT)==0) + if (seq==NULL || (seq->flag & SELECT)==0) return 1; } } diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index bd31bc1fb5a..69ce2c7c681 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -872,6 +872,8 @@ static int sequencer_borderselect_exec(bContext *C, wmOperator *op) } } + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene); + return OPERATOR_FINISHED; } -- cgit v1.2.3 From 4b3c6b79966e6aa94e863386082065a3361b0ee5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Dec 2009 13:27:52 +0000 Subject: selecting a pose bone didnt redraw constraints --- source/blender/editors/space_buttons/space_buttons.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index acc34fce660..f47a8792145 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -282,6 +282,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) case ND_BONE_ACTIVE: case ND_BONE_SELECT: buttons_area_redraw(sa, BCONTEXT_BONE); + buttons_area_redraw(sa, BCONTEXT_BONE_CONSTRAINT); break; case ND_MODIFIER: if(wmn->action == NA_RENAME) -- cgit v1.2.3 From 68ff5a87ecc7584408a09cec02aa4e6220b4d21e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 17 Dec 2009 14:38:30 +0000 Subject: Fix #20374: Limit selection to visible would not work anymore after trying to select once but not selecting correctly, due the need backbuffer flag not being reset correctly in the 3d view. --- source/blender/blenloader/intern/readfile.c | 1 + source/blender/editors/mesh/editface.c | 2 +- source/blender/editors/space_view3d/view3d_draw.c | 27 +++++------------------ source/blender/makesdna/DNA_view3d_types.h | 2 +- source/blender/windowmanager/intern/wm_draw.c | 10 +++++++++ 5 files changed, 18 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2631a1aa219..232af442a85 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5059,6 +5059,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc) if (sl->spacetype==SPACE_VIEW3D) { View3D *v3d= (View3D*) sl; v3d->bgpic= newdataadr(fd, v3d->bgpic); + v3d->flag |= V3D_INVALID_BACKBUF; if(v3d->bgpic) v3d->bgpic->iuser.ok= 1; if(v3d->gpd) { diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index d7df018acd7..0e1ac1aa7e8 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -127,7 +127,7 @@ int facesel_face_pick(struct bContext *C, Mesh *me, short *mval, unsigned int *i if (!me || me->totface==0) return 0; -// XXX if (v3d->flag & V3D_NEEDBACKBUFDRAW) { +// XXX if (v3d->flag & V3D_INVALID_BACKBUF) { // XXX drawview.c! check_backbuf(); // XXX persp(PERSP_VIEW); // XXX } diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 19667beaaf9..a680a3bd40d 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1113,11 +1113,11 @@ void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d) else if((base && (base->object->mode & OB_MODE_PARTICLE_EDIT)) && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT)); else if(scene->obedit && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT)); else { - v3d->flag &= ~V3D_NEEDBACKBUFDRAW; + v3d->flag &= ~V3D_INVALID_BACKBUF; return; } - if( !(v3d->flag & V3D_NEEDBACKBUFDRAW) ) return; + if( !(v3d->flag & V3D_INVALID_BACKBUF) ) return; // if(test) { // if(qtest()) { @@ -1162,7 +1162,7 @@ void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d) draw_object_backbufsel(scene, v3d, rv3d, base->object); } - v3d->flag &= ~V3D_NEEDBACKBUFDRAW; + v3d->flag &= ~V3D_INVALID_BACKBUF; G.f &= ~G_BACKBUFSEL; v3d->zbuf= FALSE; @@ -1183,7 +1183,7 @@ void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d) void view3d_validate_backbuf(ViewContext *vc) { - if(vc->v3d->flag & V3D_NEEDBACKBUFDRAW) + if(vc->v3d->flag & V3D_INVALID_BACKBUF) backdrawview3d(vc->scene, vc->ar, vc->v3d); } @@ -2188,24 +2188,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) /* XXX here was the blockhandlers for floating panels */ - if(ob && ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)) { - v3d->flag |= V3D_NEEDBACKBUFDRAW; - // XXX addafterqueue(ar->win, BACKBUFDRAW, 1); - } - - if((ob && ob->mode & OB_MODE_PARTICLE_EDIT) && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT)) { - v3d->flag |= V3D_NEEDBACKBUFDRAW; - // XXX addafterqueue(ar->win, BACKBUFDRAW, 1); - } - - // test for backbuf select - if(scene->obedit && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT)) { - - v3d->flag |= V3D_NEEDBACKBUFDRAW; - // XXX if(afterqtest(ar->win, BACKBUFDRAW)==0) { - // addafterqueue(ar->win, BACKBUFDRAW, 1); - //} - } + v3d->flag |= V3D_INVALID_BACKBUF; } diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index d8a8ec063d0..5326c17688d 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -190,7 +190,7 @@ typedef struct View3D { #define V3D_DISPIMAGE 1 #define V3D_DISPBGPIC 2 #define V3D_HIDE_HELPLINES 4 -#define V3D_NEEDBACKBUFDRAW 8 +#define V3D_INVALID_BACKBUF 8 #define V3D_EDITMODE 16 #define V3D_VERTEXPAINT 32 #define V3D_FACESELECT 64 diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index 3335efeb166..b9e6ca2d281 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -34,6 +34,7 @@ #include "DNA_screen_types.h" #include "DNA_windowmanager_types.h" #include "DNA_userdef_types.h" +#include "DNA_view3d_types.h" #include "MEM_guardedalloc.h" @@ -90,6 +91,12 @@ static void wm_paintcursor_draw(bContext *C, ARegion *ar) } } +static void wm_area_mark_invalid_backbuf(ScrArea *sa) +{ + if(sa->spacetype == SPACE_VIEW3D) + ((View3D*)sa->spacedata.first)->flag |= V3D_INVALID_BACKBUF; +} + /********************** draw all **************************/ /* - reference method, draw all each time */ @@ -113,6 +120,7 @@ static void wm_method_draw_full(bContext *C, wmWindow *win) } } + wm_area_mark_invalid_backbuf(sa); CTX_wm_area_set(C, NULL); } @@ -230,6 +238,7 @@ static void wm_method_draw_overlap_all(bContext *C, wmWindow *win) } } + wm_area_mark_invalid_backbuf(sa); CTX_wm_area_set(C, NULL); } @@ -553,6 +562,7 @@ static void wm_method_draw_triple(bContext *C, wmWindow *win) } } + wm_area_mark_invalid_backbuf(sa); CTX_wm_area_set(C, NULL); } -- cgit v1.2.3 From 51fdfa0de97bd3825161e245338c76711578f4cf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Dec 2009 14:45:47 +0000 Subject: sequencer clipboard note: for inter-scene copying this uses a hack because Colin needs it because half his scene was scrambled by blender. --- source/blender/blenkernel/BKE_sequencer.h | 1 + source/blender/blenkernel/intern/sequencer.c | 16 +++++- .../editors/space_sequencer/sequencer_edit.c | 63 ++++++++++++++++++++++ .../editors/space_sequencer/sequencer_intern.h | 3 ++ .../editors/space_sequencer/sequencer_ops.c | 3 ++ source/blender/makesdna/DNA_sequence_types.h | 1 + 6 files changed, 86 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 34d4b15b437..a101a096fe8 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -141,6 +141,7 @@ void printf_strip(struct Sequence *seq); void seq_free_sequence(struct Scene *scene, struct Sequence *seq); void seq_free_strip(struct Strip *strip); void seq_free_editing(struct Scene *scene); +void seq_free_clipboard(struct Scene *scene); struct Editing *seq_give_editing(struct Scene *scene, int alloc); char *give_seqname(struct Sequence *seq); struct ImBuf *give_ibuf_seq(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 5165e570504..41e51885bfc 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -232,11 +232,23 @@ Editing *seq_give_editing(Scene *scene, int alloc) return scene->ed; } +void seq_free_clipboard(Scene *scene) +{ + Editing *ed = scene->ed; + Sequence *seq, *nseq; + + for(seq= ed->seqbase_clipboard.first; seq; seq= nseq) { + nseq= seq->next; + seq_free_sequence(scene, seq); + } + ed->seqbase_clipboard.first= ed->seqbase_clipboard.last= NULL; +} + void seq_free_editing(Scene *scene) { Editing *ed = scene->ed; MetaStack *ms; - Sequence *seq; + Sequence *seq, *nseq; if(ed==NULL) return; @@ -246,6 +258,8 @@ void seq_free_editing(Scene *scene) } SEQ_END + seq_free_clipboard(scene); + while((ms= ed->metastack.first)) { BLI_remlink(&ed->metastack, ms); MEM_freeN(ms); diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 844bf51ae32..8c228e9ca74 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2746,3 +2746,66 @@ void SEQUENCER_OT_rendersize(wmOperatorType *ot) /* properties */ } +static void *_copy_scene= NULL; // XXX - FIXME +static int sequencer_copy_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, FALSE); + + if(ed==NULL) + return OPERATOR_CANCELLED; + + seq_free_clipboard(scene); + recurs_dupli_seq(scene, ed->seqbasep, &ed->seqbase_clipboard); + + _copy_scene = scene; + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_copy(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Copy"; + ot->idname= "SEQUENCER_OT_copy"; + ot->description=""; + + /* api callbacks */ + ot->exec= sequencer_copy_exec; + ot->poll= ED_operator_sequencer_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* properties */ +} + +static int sequencer_paste_exec(bContext *C, wmOperator *op) +{ + int retval = OPERATOR_CANCELLED; + Scene *scene= CTX_data_scene(C); + Editing *ed= seq_give_editing(scene, TRUE); /* create if needed */ + Editing *ed_from= seq_give_editing((Scene *)_copy_scene, TRUE); /* create if needed */ + + + addlisttolist(ed->seqbasep, &ed_from->seqbase_clipboard); + ed_from->seqbase_clipboard.first= ed_from->seqbase_clipboard.last= NULL; // XXX - could duplicate these to use the clip + + return OPERATOR_FINISHED; +} + +void SEQUENCER_OT_paste(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Paste"; + ot->idname= "SEQUENCER_OT_paste"; + ot->description=""; + + /* api callbacks */ + ot->exec= sequencer_paste_exec; + ot->poll= ED_operator_sequencer_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* properties */ +} diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h index 1cbc6e1bd1d..cf598bfb613 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.h +++ b/source/blender/editors/space_sequencer/sequencer_intern.h @@ -98,6 +98,9 @@ void SEQUENCER_OT_view_toggle(struct wmOperatorType *ot); void SEQUENCER_OT_view_all(struct wmOperatorType *ot); void SEQUENCER_OT_view_selected(struct wmOperatorType *ot); +void SEQUENCER_OT_copy(struct wmOperatorType *ot); +void SEQUENCER_OT_paste(struct wmOperatorType *ot); + /* preview specific operators */ void SEQUENCER_OT_view_all_preview(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index 941df4d2e36..76c7b37f59e 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -106,6 +106,9 @@ void sequencer_operatortypes(void) WM_operatortype_append(SEQUENCER_OT_image_strip_add); WM_operatortype_append(SEQUENCER_OT_effect_strip_add); WM_operatortype_append(SEQUENCER_OT_properties); + + WM_operatortype_append(SEQUENCER_OT_copy); + WM_operatortype_append(SEQUENCER_OT_paste); } diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 0b45d62e347..329b5ef6d34 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -186,6 +186,7 @@ typedef struct Editing { ListBase *seqbasep; /* pointer to the current list of seq's being edited (can be within a meta strip) */ ListBase seqbase; /* pointer to the top-most seq's */ ListBase metastack; + ListBase seqbase_clipboard; /* optionally store a copy */ /* Context vars, used to be static */ Sequence *act_seq; -- cgit v1.2.3 From 8d63126b64b4adec9c9c19d230f64a6010b26b2f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 17 Dec 2009 15:39:36 +0000 Subject: Fix #19713: Lasso select + occlude background geometry does not work. --- source/blender/editors/space_view3d/view3d_select.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index a1135bf6986..e7c8070b7c5 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -461,8 +461,10 @@ static void do_lasso_select_mesh(ViewContext *vc, short mcords[][2], short moves data.done = 0; data.pass = 0; - bbsel= EM_mask_init_backbuf_border(vc, mcords, moves, rect.xmin, rect.ymin, rect.xmax, rect.ymax); + /* workaround: init mats first, EM_mask_init_backbuf_border can change + view matrix to pixel space, breaking edge select with backbuf .. */ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ + bbsel= EM_mask_init_backbuf_border(vc, mcords, moves, rect.xmin, rect.ymin, rect.xmax, rect.ymax); if(ts->selectmode & SCE_SELECT_VERTEX) { if (bbsel) { @@ -1352,8 +1354,8 @@ static void do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exte EM_deselect_all(vc->em); } - bbsel= EM_init_backbuf_border(vc, rect->xmin, rect->ymin, rect->xmax, rect->ymax); ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ + bbsel= EM_init_backbuf_border(vc, rect->xmin, rect->ymin, rect->xmax, rect->ymax); if(ts->selectmode & SCE_SELECT_VERTEX) { if (bbsel) { -- cgit v1.2.3 From 4271a40ee7a53029f04389234278b7f64d834a11 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Dec 2009 16:28:45 +0000 Subject: - sequencer clipboard now stored globally (not in the scene, makes pasting into other scenes nicer) - multiple pastes after copying - clear the sound handle when copying (was crashing) - allow seq freeing without a scene (assumes seq strip isnt active and sound handle isnt set) - free clipboard sequences on exit - paste sequence strips using the relative playhead location from when they were copied. TODO - check scene pointers on paste - detect overlaps after paste --- source/blender/blenkernel/BKE_sequencer.h | 5 +- source/blender/blenkernel/intern/sequencer.c | 30 ++++---- .../editors/space_sequencer/sequencer_edit.c | 82 ++++++++++++++++++---- .../editors/space_sequencer/sequencer_ops.c | 3 + source/blender/makesdna/DNA_sequence_types.h | 1 - source/blender/windowmanager/intern/wm_init_exit.c | 3 + 6 files changed, 93 insertions(+), 31 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index a101a096fe8..22f9278aa38 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -141,7 +141,7 @@ void printf_strip(struct Sequence *seq); void seq_free_sequence(struct Scene *scene, struct Sequence *seq); void seq_free_strip(struct Strip *strip); void seq_free_editing(struct Scene *scene); -void seq_free_clipboard(struct Scene *scene); +void seq_free_clipboard(void); struct Editing *seq_give_editing(struct Scene *scene, int alloc); char *give_seqname(struct Sequence *seq); struct ImBuf *give_ibuf_seq(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size); @@ -230,3 +230,6 @@ struct Sequence *sequencer_add_image_strip(struct bContext *C, ListBase *seqbase struct Sequence *sequencer_add_sound_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load); struct Sequence *sequencer_add_movie_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load); +/* copy/paste */ +extern ListBase seqbase_clipboard; +extern int seqbase_clipboard_frame; diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 41e51885bfc..8b59c2982e6 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -77,6 +77,8 @@ static int seqrecty= 0; /* **** XXX ******** */ +ListBase seqbase_clipboard; +int seqbase_clipboard_frame; void printf_strip(Sequence *seq) { @@ -200,23 +202,26 @@ void seq_free_strip(Strip *strip) void seq_free_sequence(Scene *scene, Sequence *seq) { - Editing *ed = scene->ed; - if(seq->strip) seq_free_strip(seq->strip); if(seq->anim) IMB_free_anim(seq->anim); - if(seq->sound_handle) - sound_delete_handle(scene, seq->sound_handle); - if (seq->type & SEQ_EFFECT) { struct SeqEffectHandle sh = get_sequence_effect(seq); sh.free(seq); } - if (ed->act_seq==seq) - ed->act_seq= NULL; + /* clipboard has no scene and will never have a sound handle or be active */ + if(scene) { + Editing *ed = scene->ed; + + if (ed->act_seq==seq) + ed->act_seq= NULL; + + if(seq->sound_handle) + sound_delete_handle(scene, seq->sound_handle); + } MEM_freeN(seq); } @@ -232,16 +237,15 @@ Editing *seq_give_editing(Scene *scene, int alloc) return scene->ed; } -void seq_free_clipboard(Scene *scene) +void seq_free_clipboard(void) { - Editing *ed = scene->ed; Sequence *seq, *nseq; - for(seq= ed->seqbase_clipboard.first; seq; seq= nseq) { + for(seq= seqbase_clipboard.first; seq; seq= nseq) { nseq= seq->next; - seq_free_sequence(scene, seq); + seq_free_sequence(NULL, seq); } - ed->seqbase_clipboard.first= ed->seqbase_clipboard.last= NULL; + seqbase_clipboard.first= seqbase_clipboard.last= NULL; } void seq_free_editing(Scene *scene) @@ -258,8 +262,6 @@ void seq_free_editing(Scene *scene) } SEQ_END - seq_free_clipboard(scene); - while((ms= ed->metastack.first)) { BLI_remlink(&ed->metastack, ms); MEM_freeN(ms); diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 8c228e9ca74..dda5860900b 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -954,7 +954,7 @@ static Sequence * deep_dupli_seq(struct Scene *scene, Sequence * seq) } -static void recurs_dupli_seq(Scene *scene, ListBase *old, ListBase *new) +static void recurs_dupli_seq(Scene *scene, ListBase *old, ListBase *new, int do_context) { Sequence *seq; Sequence *seqn = 0; @@ -965,15 +965,19 @@ static void recurs_dupli_seq(Scene *scene, ListBase *old, ListBase *new) if(seq->flag & SELECT) { seqn = dupli_seq(scene, seq); if (seqn) { /*should never fail */ - seq->flag &= SEQ_DESEL; - seqn->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL+SEQ_LOCK); + if(do_context) { + seq->flag &= SEQ_DESEL; + seqn->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL+SEQ_LOCK); + } BLI_addtail(new, seqn); if(seq->type==SEQ_META) - recurs_dupli_seq(scene, &seq->seqbase,&seqn->seqbase); + recurs_dupli_seq(scene, &seq->seqbase,&seqn->seqbase, do_context); - if (seq == last_seq) { - active_seq_set(scene, seqn); + if(do_context) { + if (seq == last_seq) { + active_seq_set(scene, seqn); + } } } } @@ -1801,7 +1805,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op) if(ed==NULL) return OPERATOR_CANCELLED; - recurs_dupli_seq(scene, ed->seqbasep, &new); + recurs_dupli_seq(scene, ed->seqbasep, &new, TRUE); addlisttolist(ed->seqbasep, &new); WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); @@ -2746,19 +2750,39 @@ void SEQUENCER_OT_rendersize(wmOperatorType *ot) /* properties */ } -static void *_copy_scene= NULL; // XXX - FIXME +static void seq_del_sound(Scene *scene, Sequence *seq) +{ + if(seq->type == SEQ_META) { + Sequence *iseq; + for(iseq= seq->seqbase.first; iseq; iseq= iseq->next) { + seq_del_sound(scene, iseq); + } + } + else if(seq->sound_handle) + sound_delete_handle(scene, seq->sound_handle); + +} + +/* TODO, validate scenes */ static int sequencer_copy_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq, *seq_act; if(ed==NULL) return OPERATOR_CANCELLED; - seq_free_clipboard(scene); - recurs_dupli_seq(scene, ed->seqbasep, &ed->seqbase_clipboard); + seq_free_clipboard(); + + recurs_dupli_seq(scene, ed->seqbasep, &seqbase_clipboard, FALSE); + seqbase_clipboard_frame= scene->r.cfra; + + /* Need to remove anything that references the current scene */ + for(seq= seqbase_clipboard.first; seq; seq= seq->next) { + seq_del_sound(scene, seq); + } - _copy_scene = scene; return OPERATOR_FINISHED; } @@ -2779,16 +2803,44 @@ void SEQUENCER_OT_copy(wmOperatorType *ot) /* properties */ } +static void seq_offset(Sequence *seq, int ofs) +{ + if(seq->type == SEQ_META) { + Sequence *iseq; + for(iseq= seq->seqbase.first; iseq; iseq= iseq->next) { + seq_offset(iseq, ofs); + } + } + else { + seq->start += ofs; + } + + calc_sequence_disp(seq); +} + static int sequencer_paste_exec(bContext *C, wmOperator *op) { - int retval = OPERATOR_CANCELLED; Scene *scene= CTX_data_scene(C); Editing *ed= seq_give_editing(scene, TRUE); /* create if needed */ - Editing *ed_from= seq_give_editing((Scene *)_copy_scene, TRUE); /* create if needed */ + ListBase new = {NULL, NULL}; + int ofs; + Sequence *iseq; + + deselect_all_seq(scene); + ofs = scene->r.cfra - seqbase_clipboard_frame; + recurs_dupli_seq(scene, &seqbase_clipboard, &new, FALSE); - addlisttolist(ed->seqbasep, &ed_from->seqbase_clipboard); - ed_from->seqbase_clipboard.first= ed_from->seqbase_clipboard.last= NULL; // XXX - could duplicate these to use the clip + /* transform pasted strips before adding */ + if(ofs) { + for(iseq= new.first; iseq; iseq= iseq->next) { + seq_offset(iseq, ofs); + } + } + + addlisttolist(ed->seqbasep, &new); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c index 76c7b37f59e..7e7b45e623f 100644 --- a/source/blender/editors/space_sequencer/sequencer_ops.c +++ b/source/blender/editors/space_sequencer/sequencer_ops.c @@ -146,6 +146,9 @@ void sequencer_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", DELKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "SEQUENCER_OT_images_separate", YKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SEQUENCER_OT_meta_toggle", TABKEY, KM_PRESS, 0, 0); diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 329b5ef6d34..0b45d62e347 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -186,7 +186,6 @@ typedef struct Editing { ListBase *seqbasep; /* pointer to the current list of seq's being edited (can be within a meta strip) */ ListBase seqbase; /* pointer to the top-most seq's */ ListBase metastack; - ListBase seqbase_clipboard; /* optionally store a copy */ /* Context vars, used to be static */ Sequence *act_seq; diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 09eecf2f425..6997bcaf309 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -53,6 +53,7 @@ #include "BKE_report.h" #include "BKE_utildefines.h" #include "BKE_packedFile.h" +#include "BKE_sequencer.h" /* free seq clipboard */ #include "BLI_blenlib.h" @@ -234,6 +235,8 @@ void WM_exit(bContext *C) if(C && CTX_wm_manager(C)) wm_free_reports(C); /* before free_blender! - since the ListBases get freed there */ + + seq_free_clipboard(); /* sequencer.c */ free_blender(); /* blender.c, does entire library and spacetypes */ // free_matcopybuf(); -- cgit v1.2.3 From 1975ee5eecc17514b441fb9ac921063c38fcabc4 Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Thu, 17 Dec 2009 17:05:28 +0000 Subject: OSX vs OpenMP : implement workaround to fix crashes when using mop from a background thread Fix# 20043 & 20392 The issue is that OSX lib does not implement TLS (Thread Local Storage), so libgomp uses pthread functions to read/write thread specific vars. But this implementation is currently (gcc 4.2) buggy : the write function is called only at lib start (in main thread), and the var is undefined for background thread. The workaround is to perform this gomp_tls_key var write at beginning of background threads that use openMP. (Currently: render & fluidsim) --- source/blender/editors/CMakeLists.txt | 4 ++++ source/blender/editors/physics/SConscript | 9 ++++++++- source/blender/editors/physics/physics_fluid.c | 18 ++++++++++++++++++ source/blender/editors/screen/SConscript | 4 ++++ source/blender/editors/screen/screen_ops.c | 16 ++++++++++++++++ 5 files changed, 50 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/CMakeLists.txt b/source/blender/editors/CMakeLists.txt index 04c310ba7df..c695ea02508 100644 --- a/source/blender/editors/CMakeLists.txt +++ b/source/blender/editors/CMakeLists.txt @@ -71,6 +71,10 @@ IF(WITH_FFMPEG) ADD_DEFINITIONS(-DWITH_FFMPEG) ENDIF(WITH_FFMPEG) +IF(WITH_OPENMP) + ADD_DEFINITIONS(-DPARALLEL=1) +ENDIF(WITH_OPENMP) + IF(NOT WITH_ELBEEM) ADD_DEFINITIONS(-DDISABLE_ELBEEM) ENDIF(NOT WITH_ELBEEM) diff --git a/source/blender/editors/physics/SConscript b/source/blender/editors/physics/SConscript index 85a40c91b3a..fcf94eae994 100644 --- a/source/blender/editors/physics/SConscript +++ b/source/blender/editors/physics/SConscript @@ -8,6 +8,8 @@ incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include' incs += ' ../../gpu' incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern' +defs = '' + if env['OURPLATFORM'] == 'linux2': cflags='-pthread' incs += ' ../../../extern/binreloc/include' @@ -15,4 +17,9 @@ if env['OURPLATFORM'] == 'linux2': if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): incs += ' ' + env['BF_PTHREADS_INC'] -env.BlenderLib ( 'bf_editors_physics', sources, Split(incs), [], libtype=['core'], priority=[45] ) + +if env['OURPLATFORM'] == 'darwin': + if env['WITH_BF_OPENMP']: + defs += ' PARALLEL=1' + +env.BlenderLib ( 'bf_editors_physics', sources, Split(incs), Split(defs), libtype=['core'], priority=[45] ) diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index 7893b314e3e..eec971e777e 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -98,6 +98,14 @@ /* enable/disable overall compilation */ #ifndef DISABLE_ELBEEM +#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2) +/* ************** libgomp (Apple gcc 4.2.1) TLS bug workaround *************** */ +#include +extern pthread_key_t gomp_tls_key; +static void *thread_tls_data; +#endif + + /* XXX */ /* from header info.c */ static int start_progress_bar(void) {return 0;}; @@ -320,6 +328,11 @@ static void *fluidsimSimulateThread(void *unused) { // *ptr) { //char* fnameCfgPath = (char*)(ptr); int ret=0; +#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2) + // Workaround for Apple gcc 4.2.1 omp vs background thread bug + pthread_setspecific (gomp_tls_key, thread_tls_data); +#endif + ret = elbeemSimulate(); BLI_lock_thread(LOCK_CUSTOM1); if(globalBakeState==0) { @@ -1036,6 +1049,11 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *ob) // set to neutral, -1 means user abort, -2 means init error globalBakeState = 0; globalBakeFrame = 0; + +#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2) + // Workaround for Apple gcc 4.2.1 omp vs background thread bug + thread_tls_data = pthread_getspecific(gomp_tls_key); +#endif BLI_init_threads(&threads, fluidsimSimulateThread, 1); BLI_insert_thread(&threads, targetFile); diff --git a/source/blender/editors/screen/SConscript b/source/blender/editors/screen/SConscript index afd6ce68b68..703a16f753b 100644 --- a/source/blender/editors/screen/SConscript +++ b/source/blender/editors/screen/SConscript @@ -22,4 +22,8 @@ if env['OURPLATFORM'] == 'linux2': if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): incs += ' ' + env['BF_PTHREADS_INC'] +if env['OURPLATFORM'] == 'darwin': + if env['WITH_BF_OPENMP']: + defs += ' PARALLEL=1' + env.BlenderLib ( 'bf_editors_screen', sources, Split(incs), Split(defs), libtype=['core'], priority=[105] ) diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 2a9859330af..977d04a7f45 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -96,6 +96,12 @@ #define KM_MODAL_STEP10 3 #define KM_MODAL_STEP10_OFF 4 +#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2) +/* ************** libgomp (Apple gcc 4.2.1) TLS bug workaround *************** */ +#include +extern pthread_key_t gomp_tls_key; +static void *thread_tls_data; +#endif /* ************** Exported Poll tests ********************** */ int ED_operator_regionactive(bContext *C) @@ -3015,6 +3021,11 @@ static void render_startjob(void *rjv, short *stop, short *do_update) rj->stop= stop; rj->do_update= do_update; +#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2) + // Workaround for Apple gcc 4.2.1 omp vs background thread bug + pthread_setspecific (gomp_tls_key, thread_tls_data); +#endif + if(rj->anim) RE_BlenderAnim(rj->re, rj->scene, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step); else @@ -3096,6 +3107,11 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) WM_jobs_timer(steve, 0.2, NC_SCENE|ND_RENDER_RESULT, 0); WM_jobs_callbacks(steve, render_startjob, NULL, NULL); +#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2) + // Workaround for Apple gcc 4.2.1 omp vs background thread bug + thread_tls_data = pthread_getspecific(gomp_tls_key); +#endif + /* get a render result image, and make sure it is empty */ ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE); -- cgit v1.2.3 From 0af48c227bdcd1d11a0bf51b9527dcbdc6d2ba80 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 17 Dec 2009 17:15:38 +0000 Subject: Copy To Selected Until we have proper multi-object editing, this adds a Copy To Selected option to the right mouse button menu for Object and Bone properties, to copy the value from the active object to the selected objects. Also includes some implementation changes to reset to default operator. --- source/blender/editors/include/UI_interface.h | 2 +- source/blender/editors/include/UI_view2d.h | 2 +- .../blender/editors/interface/interface_handlers.c | 3 +- source/blender/editors/interface/interface_ops.c | 219 +++++++++++---------- source/blender/editors/interface/view2d_ops.c | 2 +- source/blender/editors/space_api/spacetypes.c | 3 +- source/blender/makesrna/RNA_access.h | 4 + source/blender/makesrna/intern/rna_access.c | 182 +++++++++++++++++ 8 files changed, 313 insertions(+), 104 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index f0e52a13d3f..8e44d7f386e 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -689,7 +689,7 @@ void uiItemMenuEnumO(uiLayout *layout, char *name, int icon, char *opname, char void uiItemMenuEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname); /* UI Operators */ -void ui_buttons_operatortypes(void); +void UI_buttons_operatortypes(void); /* Helpers for Operators */ void uiAnimContextProperty(const struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA **prop, int *index); diff --git a/source/blender/editors/include/UI_view2d.h b/source/blender/editors/include/UI_view2d.h index 8fbff25589d..e3b00c21d04 100644 --- a/source/blender/editors/include/UI_view2d.h +++ b/source/blender/editors/include/UI_view2d.h @@ -195,7 +195,7 @@ void UI_view2d_text_cache_rectf(struct View2D *v2d, struct rctf *rect, char *str void UI_view2d_text_cache_draw(struct ARegion *ar); /* operators */ -void ui_view2d_operatortypes(void); +void UI_view2d_operatortypes(void); void UI_view2d_keymap(struct wmKeyConfig *keyconf); #endif /* UI_VIEW2D_H */ diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 9604704dde8..88868a61592 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -3506,7 +3506,8 @@ static int ui_but_menu(bContext *C, uiBut *but) else uiItemO(layout, "Reset to Default Value", 0, "UI_OT_reset_default_button"); - uiItemO(layout, "Copy Data Path", 0, "UI_OT_copy_clipboard_button"); + uiItemO(layout, "Copy Data Path", 0, "UI_OT_copy_data_path_button"); + uiItemO(layout, "Copy To Selected", 0, "UI_OT_copy_to_selected_button"); uiItemS(layout); } diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c index a5caf1c930b..d1204b41a28 100644 --- a/source/blender/editors/interface/interface_ops.c +++ b/source/blender/editors/interface/interface_ops.c @@ -59,18 +59,17 @@ /* ********************************************************** */ -/* Copy to Clipboard Button Operator ------------------------ */ +/* Copy Data Path Operator ------------------------ */ -static int copy_clipboard_button_exec(bContext *C, wmOperator *op) +static int copy_data_path_button_exec(bContext *C, wmOperator *op) { PointerRNA ptr; - PropertyRNA *prop= NULL; + PropertyRNA *prop; char *path; - short success= 0; + int success= 0; int index; /* try to create driver using property retrieved from UI */ - memset(&ptr, 0, sizeof(PointerRNA)); uiAnimContextProperty(C, &ptr, &prop, &index); if (ptr.data && prop) { @@ -86,15 +85,15 @@ static int copy_clipboard_button_exec(bContext *C, wmOperator *op) return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED; } -void UI_OT_copy_clipboard_button(wmOperatorType *ot) +void UI_OT_copy_data_path_button(wmOperatorType *ot) { /* identifiers */ ot->name= "Copy Data Path"; - ot->idname= "UI_OT_copy_clipboard_button"; + ot->idname= "UI_OT_copy_data_path_button"; ot->description= "Copy the RNA data path for this property to the clipboard."; /* callbacks */ - ot->exec= copy_clipboard_button_exec; + ot->exec= copy_data_path_button_exec; //op->poll= ??? // TODO: need to have some valid property before this can be done /* flags */ @@ -103,103 +102,34 @@ void UI_OT_copy_clipboard_button(wmOperatorType *ot) /* Reset to Default Values Button Operator ------------------------ */ +static int reset_default_button_poll(bContext *C) +{ + PointerRNA ptr; + PropertyRNA *prop; + int index; + + uiAnimContextProperty(C, &ptr, &prop, &index); + + return (ptr.data && prop && RNA_property_editable(&ptr, prop)); +} + static int reset_default_button_exec(bContext *C, wmOperator *op) { PointerRNA ptr; - PropertyRNA *prop= NULL; - short success= 0; - int index, len; - int all = RNA_boolean_get(op->ptr, "all"); + PropertyRNA *prop; + int success= 0; + int index, all = RNA_boolean_get(op->ptr, "all"); /* try to reset the nominated setting to its default value */ - memset(&ptr, 0, sizeof(PointerRNA)); uiAnimContextProperty(C, &ptr, &prop, &index); /* if there is a valid property that is editable... */ if (ptr.data && prop && RNA_property_editable(&ptr, prop)) { - /* get the length of the array to work with */ - len= RNA_property_array_length(&ptr, prop); - - /* get and set the default values as appropriate for the various types */ - switch (RNA_property_type(prop)) { - case PROP_BOOLEAN: - if (len) { - if (all) { - int *tmparray= MEM_callocN(sizeof(int)*len, "reset_defaults - boolean"); - - RNA_property_boolean_get_default_array(&ptr, prop, tmparray); - RNA_property_boolean_set_array(&ptr, prop, tmparray); - - MEM_freeN(tmparray); - } - else { - int value= RNA_property_boolean_get_default_index(&ptr, prop, index); - RNA_property_boolean_set_index(&ptr, prop, index, value); - } - } - else { - int value= RNA_property_boolean_get_default(&ptr, prop); - RNA_property_boolean_set(&ptr, prop, value); - } - break; - case PROP_INT: - if (len) { - if (all) { - int *tmparray= MEM_callocN(sizeof(int)*len, "reset_defaults - int"); - - RNA_property_int_get_default_array(&ptr, prop, tmparray); - RNA_property_int_set_array(&ptr, prop, tmparray); - - MEM_freeN(tmparray); - } - else { - int value= RNA_property_int_get_default_index(&ptr, prop, index); - RNA_property_int_set_index(&ptr, prop, index, value); - } - } - else { - int value= RNA_property_int_get_default(&ptr, prop); - RNA_property_int_set(&ptr, prop, value); - } - break; - case PROP_FLOAT: - if (len) { - if (all) { - float *tmparray= MEM_callocN(sizeof(float)*len, "reset_defaults - float"); - - RNA_property_float_get_default_array(&ptr, prop, tmparray); - RNA_property_float_set_array(&ptr, prop, tmparray); - - MEM_freeN(tmparray); - } - else { - float value= RNA_property_float_get_default_index(&ptr, prop, index); - RNA_property_float_set_index(&ptr, prop, index, value); - } - } - else { - float value= RNA_property_float_get_default(&ptr, prop); - RNA_property_float_set(&ptr, prop, value); - } - break; - case PROP_ENUM: - { - int value= RNA_property_enum_get_default(&ptr, prop); - RNA_property_enum_set(&ptr, prop, value); - } - break; - - //case PROP_POINTER: - //case PROP_STRING: - default: - // FIXME: many of the other types such as strings and pointers need this implemented too! - break; + if(RNA_property_reset(&ptr, prop, (all)? -1: index)) { + /* perform updates required for this property */ + RNA_property_update(C, &ptr, prop); + success= 1; } - - /* perform updates required for this property */ - RNA_property_update(C, &ptr, prop); - - success= 1; } return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED; @@ -213,12 +143,102 @@ void UI_OT_reset_default_button(wmOperatorType *ot) ot->description= "Copy the RNA data path for this property to the clipboard."; /* callbacks */ + ot->poll= reset_default_button_poll; ot->exec= reset_default_button_exec; - //op->poll= ??? // TODO: need to have some valid property before this can be done /* flags */ - ot->flag= OPTYPE_REGISTER; + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* properties */ + RNA_def_boolean(ot->srna, "all", 1, "All", "Reset to default values all elements of the array."); +} + +/* Copy To Selected Operator ------------------------ */ + +static int copy_to_selected_list(bContext *C, PointerRNA *ptr, ListBase *lb) +{ + if(RNA_struct_is_a(ptr->type, &RNA_Object)) + *lb = CTX_data_collection_get(C, "selected_editable_objects"); + else if(RNA_struct_is_a(ptr->type, &RNA_EditBone)) + *lb = CTX_data_collection_get(C, "selected_editable_bones"); + else if(RNA_struct_is_a(ptr->type, &RNA_PoseBone)) + *lb = CTX_data_collection_get(C, "selected_pose_bones"); + else + return 0; + return 1; +} + +static int copy_to_selected_button_poll(bContext *C) +{ + PointerRNA ptr; + PropertyRNA *prop; + int index, success= 0; + + uiAnimContextProperty(C, &ptr, &prop, &index); + + if (ptr.data && prop) { + CollectionPointerLink *link; + ListBase lb; + + if(copy_to_selected_list(C, &ptr, &lb)) { + for(link= lb.first; link; link=link->next) + if(link->ptr.data != ptr.data && RNA_property_editable(&link->ptr, prop)) + success= 1; + + BLI_freelistN(&lb); + } + } + + return success; +} + +static int copy_to_selected_button_exec(bContext *C, wmOperator *op) +{ + PointerRNA ptr; + PropertyRNA *prop; + int success= 0; + int index, all = RNA_boolean_get(op->ptr, "all"); + + /* try to reset the nominated setting to its default value */ + uiAnimContextProperty(C, &ptr, &prop, &index); + + /* if there is a valid property that is editable... */ + if (ptr.data && prop) { + CollectionPointerLink *link; + ListBase lb; + + if(copy_to_selected_list(C, &ptr, &lb)) { + for(link= lb.first; link; link=link->next) { + if(link->ptr.data != ptr.data && RNA_property_editable(&link->ptr, prop)) { + if(RNA_property_copy(&link->ptr, &ptr, prop, (all)? -1: index)) { + RNA_property_update(C, &link->ptr, prop); + success= 1; + } + } + } + + BLI_freelistN(&lb); + } + } + + return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED; +} + +void UI_OT_copy_to_selected_button(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Copy To Selected"; + ot->idname= "UI_OT_copy_to_selected_button"; + ot->description= "Copy property from this object to selected objects or bones."; + + /* callbacks */ + ot->poll= copy_to_selected_button_poll; + ot->exec= copy_to_selected_button_exec; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + /* properties */ RNA_def_boolean(ot->srna, "all", 1, "All", "Reset to default values all elements of the array."); } @@ -226,9 +246,10 @@ void UI_OT_reset_default_button(wmOperatorType *ot) /* ********************************************************* */ /* Registration */ -void ui_buttons_operatortypes(void) +void UI_buttons_operatortypes(void) { - WM_operatortype_append(UI_OT_copy_clipboard_button); + WM_operatortype_append(UI_OT_copy_data_path_button); WM_operatortype_append(UI_OT_reset_default_button); + WM_operatortype_append(UI_OT_copy_to_selected_button); } diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c index 8bd840f7e84..6742df351d1 100644 --- a/source/blender/editors/interface/view2d_ops.c +++ b/source/blender/editors/interface/view2d_ops.c @@ -1403,7 +1403,7 @@ void VIEW2D_OT_reset(wmOperatorType *ot) /* ********************************************************* */ /* Registration */ -void ui_view2d_operatortypes(void) +void UI_view2d_operatortypes(void) { WM_operatortype_append(VIEW2D_OT_pan); diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c index 8cf56ae3eda..90457c05fa7 100644 --- a/source/blender/editors/space_api/spacetypes.c +++ b/source/blender/editors/space_api/spacetypes.c @@ -101,7 +101,8 @@ void ED_spacetypes_init(void) ED_operatortypes_sound(); ED_operatortypes_render(); - ui_view2d_operatortypes(); + UI_view2d_operatortypes(); + UI_buttons_operatortypes(); spacetypes = BKE_spacetypes_list(); for(type=spacetypes->first; type; type=type->next) diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index c2b36ddc915..c3f23e799d5 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -722,6 +722,10 @@ void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key); void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop); +/* copy/reset */ +int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index); +int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index); + /* Path * * Experimental method to refer to structs and properties with a string, diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 53f5407e521..8ae0ebacff7 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -4088,4 +4088,186 @@ int RNA_function_call_direct_va_lookup(bContext *C, ReportList *reports, Pointer return 0; } +int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index) +{ + int len; + + /* get the length of the array to work with */ + len= RNA_property_array_length(ptr, prop); + + /* get and set the default values as appropriate for the various types */ + switch (RNA_property_type(prop)) { + case PROP_BOOLEAN: + if (len) { + if (index == -1) { + int *tmparray= MEM_callocN(sizeof(int)*len, "reset_defaults - boolean"); + + RNA_property_boolean_get_default_array(ptr, prop, tmparray); + RNA_property_boolean_set_array(ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + int value= RNA_property_boolean_get_default_index(ptr, prop, index); + RNA_property_boolean_set_index(ptr, prop, index, value); + } + } + else { + int value= RNA_property_boolean_get_default(ptr, prop); + RNA_property_boolean_set(ptr, prop, value); + } + return 1; + case PROP_INT: + if (len) { + if (index == -1) { + int *tmparray= MEM_callocN(sizeof(int)*len, "reset_defaults - int"); + + RNA_property_int_get_default_array(ptr, prop, tmparray); + RNA_property_int_set_array(ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + int value= RNA_property_int_get_default_index(ptr, prop, index); + RNA_property_int_set_index(ptr, prop, index, value); + } + } + else { + int value= RNA_property_int_get_default(ptr, prop); + RNA_property_int_set(ptr, prop, value); + } + return 1; + case PROP_FLOAT: + if (len) { + if (index == -1) { + float *tmparray= MEM_callocN(sizeof(float)*len, "reset_defaults - float"); + + RNA_property_float_get_default_array(ptr, prop, tmparray); + RNA_property_float_set_array(ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + float value= RNA_property_float_get_default_index(ptr, prop, index); + RNA_property_float_set_index(ptr, prop, index, value); + } + } + else { + float value= RNA_property_float_get_default(ptr, prop); + RNA_property_float_set(ptr, prop, value); + } + return 1; + case PROP_ENUM: + { + int value= RNA_property_enum_get_default(ptr, prop); + RNA_property_enum_set(ptr, prop, value); + return 1; + } + + //case PROP_POINTER: + //case PROP_STRING: + default: + // FIXME: many of the other types such as strings and pointers need this implemented too! + return 0; + } +} + +int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index) +{ + int len, fromlen; + + /* get the length of the array to work with */ + len= RNA_property_array_length(ptr, prop); + fromlen= RNA_property_array_length(ptr, prop); + + if(len != fromlen) + return 0; + + /* get and set the default values as appropriate for the various types */ + switch (RNA_property_type(prop)) { + case PROP_BOOLEAN: + if (len) { + if (index == -1) { + int *tmparray= MEM_callocN(sizeof(int)*len, "copy - boolean"); + + RNA_property_boolean_get_array(fromptr, prop, tmparray); + RNA_property_boolean_set_array(ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + int value= RNA_property_boolean_get_index(fromptr, prop, index); + RNA_property_boolean_set_index(ptr, prop, index, value); + } + } + else { + int value= RNA_property_boolean_get(fromptr, prop); + RNA_property_boolean_set(ptr, prop, value); + } + return 1; + case PROP_INT: + if (len) { + if (index == -1) { + int *tmparray= MEM_callocN(sizeof(int)*len, "copy - int"); + + RNA_property_int_get_array(fromptr, prop, tmparray); + RNA_property_int_set_array(ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + int value= RNA_property_int_get_index(fromptr, prop, index); + RNA_property_int_set_index(ptr, prop, index, value); + } + } + else { + int value= RNA_property_int_get(fromptr, prop); + RNA_property_int_set(ptr, prop, value); + } + return 1; + case PROP_FLOAT: + if (len) { + if (index == -1) { + float *tmparray= MEM_callocN(sizeof(float)*len, "copy - float"); + + RNA_property_float_get_array(fromptr, prop, tmparray); + RNA_property_float_set_array(ptr, prop, tmparray); + + MEM_freeN(tmparray); + } + else { + float value= RNA_property_float_get_index(fromptr, prop, index); + RNA_property_float_set_index(ptr, prop, index, value); + } + } + else { + float value= RNA_property_float_get(fromptr, prop); + RNA_property_float_set(ptr, prop, value); + } + return 1; + case PROP_ENUM: + { + int value= RNA_property_enum_get(fromptr, prop); + RNA_property_enum_set(ptr, prop, value); + return 1; + } + case PROP_POINTER: + { + PointerRNA value= RNA_property_pointer_get(fromptr, prop); + RNA_property_pointer_set(ptr, prop, value); + return 1; + } + case PROP_STRING: + { + char *value= RNA_property_string_get_alloc(fromptr, prop, NULL, 0); + RNA_property_string_set(ptr, prop, value); + MEM_freeN(value); + return 1; + } + default: + return 0; + } + + return 0; +} -- cgit v1.2.3 From a1b8f1695840313d08db5863a4d16fb64e951f43 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 17 Dec 2009 17:34:56 +0000 Subject: Bugfix: [#20406] reapeat duplication along axis+view transform orientation Saving back orientation in operator didn't take into account that constraint orientation can be different than user selected orientation. Also simplify the switching logic a little. --- source/blender/editors/transform/transform.c | 90 ++++++++++------------ source/blender/editors/transform/transform.h | 1 + .../editors/transform/transform_constraints.c | 2 + 3 files changed, 44 insertions(+), 49 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 312939961f5..36e8032b640 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -673,7 +673,7 @@ int transformEvent(TransInfo *t, wmEvent *event) } else { if (t->flag & T_2D_EDIT) { - setConstraint(t, mati, (CON_AXIS0), "along X axis"); + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0), "along X"); } else { setUserConstraint(t, t->current_orientation, (CON_AXIS0), "along %s X"); @@ -689,7 +689,7 @@ int transformEvent(TransInfo *t, wmEvent *event) } else { if (t->flag & T_2D_EDIT) { - setConstraint(t, mati, (CON_AXIS1), "along Y axis"); + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS1), "along Y"); } else { setUserConstraint(t, t->current_orientation, (CON_AXIS1), "along %s Y"); @@ -699,17 +699,12 @@ int transformEvent(TransInfo *t, wmEvent *event) } break; case TFM_MODAL_AXIS_Z: - if ((t->flag & T_NO_CONSTRAINT)==0) { + if ((t->flag & (T_NO_CONSTRAINT|T_2D_EDIT))== 0) { if (cmode == 'Z') { stopConstraint(t); } else { - if (t->flag & T_2D_EDIT) { - setConstraint(t, mati, (CON_AXIS0), "along Z axis"); - } - else { - setUserConstraint(t, t->current_orientation, (CON_AXIS2), "along %s Z"); - } + setUserConstraint(t, t->current_orientation, (CON_AXIS2), "along %s Z"); } t->redraw = 1; } @@ -886,32 +881,28 @@ int transformEvent(TransInfo *t, wmEvent *event) break; case XKEY: if ((t->flag & T_NO_CONSTRAINT)==0) { - if (cmode == 'X') { - if (t->flag & T_2D_EDIT) { + if (t->flag & T_2D_EDIT) { + if (cmode == 'X') { stopConstraint(t); + } else { + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0), "along X"); } - else { - if (t->con.mode & CON_USER) { + } else { + if (cmode == 'X') { + if (t->con.orientation != V3D_MANIP_GLOBAL) { stopConstraint(t); - } - else { + } else { short orientation = t->current_orientation != V3D_MANIP_GLOBAL ? t->current_orientation : V3D_MANIP_LOCAL; if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0) setUserConstraint(t, orientation, (CON_AXIS0), "along %s X"); else if (t->modifiers & MOD_CONSTRAINT_PLANE) setUserConstraint(t, orientation, (CON_AXIS1|CON_AXIS2), "locking %s X"); } - } - } - else { - if (t->flag & T_2D_EDIT) { - setConstraint(t, mati, (CON_AXIS0), "along X axis"); - } - else { + } else { if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0) - setConstraint(t, mati, (CON_AXIS0), "along global X"); + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0), "along %s X"); else if (t->modifiers & MOD_CONSTRAINT_PLANE) - setConstraint(t, mati, (CON_AXIS1|CON_AXIS2), "locking global X"); + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS1|CON_AXIS2), "locking %s X"); } } t->redraw = 1; @@ -919,56 +910,50 @@ int transformEvent(TransInfo *t, wmEvent *event) break; case YKEY: if ((t->flag & T_NO_CONSTRAINT)==0) { - if (cmode == 'Y') { - if (t->flag & T_2D_EDIT) { + if (t->flag & T_2D_EDIT) { + if (cmode == 'Y') { stopConstraint(t); + } else { + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS1), "along Y"); } - else { - if (t->con.mode & CON_USER) { + } else { + if (cmode == 'Y') { + if (t->con.orientation != V3D_MANIP_GLOBAL) { stopConstraint(t); - } - else { + } else { short orientation = t->current_orientation != V3D_MANIP_GLOBAL ? t->current_orientation : V3D_MANIP_LOCAL; if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0) setUserConstraint(t, orientation, (CON_AXIS1), "along %s Y"); else if (t->modifiers & MOD_CONSTRAINT_PLANE) setUserConstraint(t, orientation, (CON_AXIS0|CON_AXIS2), "locking %s Y"); } - } - } - else { - if (t->flag & T_2D_EDIT) { - setConstraint(t, mati, (CON_AXIS1), "along Y axis"); - } - else { + } else { if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0) - setConstraint(t, mati, (CON_AXIS1), "along global Y"); + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS1), "along %s Y"); else if (t->modifiers & MOD_CONSTRAINT_PLANE) - setConstraint(t, mati, (CON_AXIS0|CON_AXIS2), "locking global Y"); + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0|CON_AXIS2), "locking %s Y"); } } t->redraw = 1; } break; case ZKEY: - if ((t->flag & T_NO_CONSTRAINT)==0) { + if ((t->flag & (T_NO_CONSTRAINT|T_2D_EDIT))==0) { if (cmode == 'Z') { - if (t->con.mode & CON_USER) { + if (t->con.orientation != V3D_MANIP_GLOBAL) { stopConstraint(t); - } - else { + } else { short orientation = t->current_orientation != V3D_MANIP_GLOBAL ? t->current_orientation : V3D_MANIP_LOCAL; if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0) setUserConstraint(t, orientation, (CON_AXIS2), "along %s Z"); - else if ((t->modifiers & MOD_CONSTRAINT_PLANE) && ((t->flag & T_2D_EDIT)==0)) + else if (t->modifiers & MOD_CONSTRAINT_PLANE) setUserConstraint(t, orientation, (CON_AXIS0|CON_AXIS1), "locking %s Z"); } - } - else if ((t->flag & T_2D_EDIT)==0) { + } else { if ((t->modifiers & MOD_CONSTRAINT_PLANE) == 0) - setConstraint(t, mati, (CON_AXIS2), "along global Z"); + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS2), "along %s Z"); else if (t->modifiers & MOD_CONSTRAINT_PLANE) - setConstraint(t, mati, (CON_AXIS0|CON_AXIS1), "locking global Z"); + setUserConstraint(t, V3D_MANIP_GLOBAL, (CON_AXIS0|CON_AXIS1), "locking %s Z"); } t->redraw = 1; } @@ -1464,7 +1449,14 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) if (RNA_struct_find_property(op->ptr, "constraint_axis")) { - RNA_enum_set(op->ptr, "constraint_orientation", t->current_orientation); + /* constraint orientation can be global, event if user selects something else + * so use the orientation in the constraint if set + * */ + if (t->con.mode & CON_APPLY) { + RNA_enum_set(op->ptr, "constraint_orientation", t->con.orientation); + } else { + RNA_enum_set(op->ptr, "constraint_orientation", t->current_orientation); + } if (t->con.mode & CON_APPLY) { diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 0b8fb365a56..3b1ead32fad 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -112,6 +112,7 @@ typedef struct TransSnap { } TransSnap; typedef struct TransCon { + short orientation; /**/ char text[50]; /* Description of the Constraint for header_print */ float mtx[3][3]; /* Matrix of the Constraint space */ float imtx[3][3]; /* Inverse Matrix of the Constraint space */ diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index 1f42d9411f1..fd53f6fcd20 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -599,6 +599,8 @@ void setUserConstraint(TransInfo *t, short orientation, int mode, const char fte break; } + t->con.orientation = orientation; + t->con.mode |= CON_USER; } -- cgit v1.2.3 From fcaad00bda20244a49e85175b2a6bc1b8c131c54 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Thu, 17 Dec 2009 17:42:26 +0000 Subject: Some fixes to get blender compiling on solaris. Kent --- source/blender/render/intern/raytrace/reorganize.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender') diff --git a/source/blender/render/intern/raytrace/reorganize.h b/source/blender/render/intern/raytrace/reorganize.h index 2d4a4d15fe2..7b14108760a 100644 --- a/source/blender/render/intern/raytrace/reorganize.h +++ b/source/blender/render/intern/raytrace/reorganize.h @@ -39,6 +39,10 @@ extern int tot_pushup; extern int tot_pushdown; +#if !defined(INFINITY) && defined(HUGE_VAL) +#define INFINITY HUGE_VAL +#endif + template bool node_fits_inside(Node *a, Node *b) { -- cgit v1.2.3 From 509c2e961438c7ac341f555e820314d40d9f2166 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 17 Dec 2009 17:50:55 +0000 Subject: Bugfix: [#20403] transform manipulation widgets with normal coordinates Disable manipulator drawing during transform --- source/blender/editors/transform/transform.h | 3 ++- source/blender/editors/transform/transform_conversions.c | 11 +++++++++++ source/blender/editors/transform/transform_generics.c | 6 ++++++ 3 files changed, 19 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 3b1ead32fad..b7e1b2e4996 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -302,9 +302,10 @@ typedef struct TransInfo { void (*customFree)(struct TransInfo *); /* if a special free function is needed */ /*************** NEW STUFF *********************/ - short launch_event; /* event type used to launch transform */ + short launch_event; /* event type used to launch transform */ short current_orientation; + short twtype; /* backup from view3d, to restore on end */ short prop_mode; diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 0115d34c6b1..98c1b333844 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -5006,6 +5006,17 @@ void special_aftertrans_update(bContext *C, TransInfo *t) clear_trans_object_base_flags(t); + if(t->spacetype == SPACE_VIEW3D) + { + View3D *v3d = t->view; + + /* restore manipulator */ + if (t->flag & T_MODAL) { + v3d->twtype = t->twtype; + } + } + + #if 0 // TRANSFORM_FIX_ME if(resetslowpar) reset_slowparents(); diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index f2c4da0da27..061b2adbd79 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -927,6 +927,12 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) t->view = v3d; t->animtimer= CTX_wm_screen(C)->animtimer; + /* turn manipulator off during transform */ + if (t->flag & T_MODAL) { + t->twtype = v3d->twtype; + v3d->twtype = 0; + } + if(v3d->flag & V3D_ALIGN) t->flag |= T_V3D_ALIGN; t->around = v3d->around; -- cgit v1.2.3 From 725319f771123b2eb698e2a25926b1e6129c4666 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 17 Dec 2009 19:05:06 +0000 Subject: Hotkey for outliner window was there twice (testing conflict detection) --- source/blender/windowmanager/intern/wm_operators.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 99e34e129d0..fc5abec1561 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2865,10 +2865,6 @@ void wm_window_keymap(wmKeyConfig *keyconf) RNA_string_set(km->ptr, "path", "area.type"); RNA_string_set(km->ptr, "value", "OUTLINER"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F9KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "OUTLINER"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F10KEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(km->ptr, "path", "area.type"); RNA_string_set(km->ptr, "value", "IMAGE_EDITOR"); -- cgit v1.2.3 From 959e0486cfe144005ea23220b30de51f09541544 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Thu, 17 Dec 2009 19:23:25 +0000 Subject: SVN maintenance. --- source/blender/editors/interface/interface_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c index d1204b41a28..25bfaf3d682 100644 --- a/source/blender/editors/interface/interface_ops.c +++ b/source/blender/editors/interface/interface_ops.c @@ -1,5 +1,5 @@ /** - * $Id: interface_ops.c 24699 2009-11-20 10:21:31Z aligorith $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * -- cgit v1.2.3 From 0c813b2a0ee4e293428caa3fc7d2b706377c92cf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Dec 2009 19:48:30 +0000 Subject: autorigging front end, access in pose mode armature panel (at the bottom) demo: http://download.blender.org/durian/metarig_demo.ogv sintel base rig also, would like to include more generic/simple rigs eventually --- source/blender/makesrna/intern/rna_armature.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index bc01c22de1c..0f36ebda70e 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -632,12 +632,12 @@ static void rna_def_edit_bone(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Selected", ""); RNA_def_property_update(prop, 0, "rna_Armature_redraw_data"); - prop= RNA_def_property(srna, "head_selected", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "selected_head", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", BONE_ROOTSEL); RNA_def_property_ui_text(prop, "Head Selected", ""); RNA_def_property_update(prop, 0, "rna_Armature_redraw_data"); - prop= RNA_def_property(srna, "tail_selected", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "selected_tail", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", BONE_TIPSEL); RNA_def_property_ui_text(prop, "Tail Selected", ""); RNA_def_property_update(prop, 0, "rna_Armature_redraw_data"); -- cgit v1.2.3 From 53edaee89b6512f1d4d01ed5f83a9d335d104257 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 17 Dec 2009 19:55:08 +0000 Subject: Fix #19431: gestures would sometimes draw incorrect, now ensures they are always drawn in pixel space. --- source/blender/windowmanager/WM_api.h | 1 + source/blender/windowmanager/intern/wm_draw.c | 2 +- source/blender/windowmanager/intern/wm_gesture.c | 1 + source/blender/windowmanager/intern/wm_subwindow.c | 10 ++++++++++ 4 files changed, 13 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index e90360fde45..c4270fbc8b0 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -264,6 +264,7 @@ void wmPopMatrix (void); /* one level only */ void wmFrustum (float x1, float x2, float y1, float y2, float n, float f); void wmOrtho (float x1, float x2, float y1, float y2, float n, float f); void wmOrtho2 (float x1, float x2, float y1, float y2); +void wmOrthoPixelSpace (void); /* utilities */ void WM_set_framebuffer_index_color(int index); diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index b9e6ca2d281..9ee67cd4047 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -585,7 +585,7 @@ static void wm_method_draw_triple(bContext *C, wmWindow *win) } } - if(win->screen->do_draw_gesture) + if(screen->do_draw_gesture) wm_gesture_draw(win); if(wm->paintcursors.first) { diff --git a/source/blender/windowmanager/intern/wm_gesture.c b/source/blender/windowmanager/intern/wm_gesture.c index 882da1794c6..b95d171c1b0 100644 --- a/source/blender/windowmanager/intern/wm_gesture.c +++ b/source/blender/windowmanager/intern/wm_gesture.c @@ -248,6 +248,7 @@ void wm_gesture_draw(wmWindow *win) for(; gt; gt= gt->next) { /* all in subwindow space */ wmSubWindowSet(win, gt->swinid); + wmOrthoPixelSpace(); if(gt->type==WM_GESTURE_RECT) wm_gesture_draw_rect(win, gt); diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c index 00af9eb0bb9..decf1f0d676 100644 --- a/source/blender/windowmanager/intern/wm_subwindow.c +++ b/source/blender/windowmanager/intern/wm_subwindow.c @@ -405,6 +405,16 @@ void wmOrtho2(float x1, float x2, float y1, float y2) wmOrtho(x1, x2, y1, y2, -100, 100); } +void wmOrthoPixelSpace(void) +{ + if(_curswin) { + int width, height; + + wm_subwindow_getsize(_curwindow, _curswin->swinid, &width, &height); + wmOrtho2(-0.375, (float)width-0.375, -0.375, (float)height-0.375); + wmLoadIdentity(); + } +} /* *************************** Framebuffer color depth, for selection codes ********************** */ -- cgit v1.2.3 From e210551a9c263d4dd4bf09b8fc2d135ffa5a634e Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 17 Dec 2009 20:01:02 +0000 Subject: Typo in comment --- source/blender/windowmanager/wm_event_types.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 043ad8b1dcc..8179154fc98 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -198,16 +198,16 @@ /* only used for KM_TEXTINPUT, so assume that we want all user-inputtable ascii codes included */ #define ISTEXTINPUT(event) (event >=' ' && event <=255) - /* test wether the event is a key on the keyboard */ + /* test whether the event is a key on the keyboard */ #define ISKEYBOARD(event) (event >=' ' && event <=320) - /* test wether the event is a mouse button */ + /* test whether the event is a mouse button */ #define ISMOUSE(event) (event >= LEFTMOUSE && event <= WHEELOUTMOUSE) - /* test wether the event is timer event */ + /* test whether the event is timer event */ #define ISTIMER(event) (event >= TIMER && event <= TIMERAUTOSAVE) - /* test wether the event is tweak event */ + /* test whether the event is tweak event */ #define ISTWEAK(event) (event >= EVT_TWEAK_L && event <= EVT_GESTURE) /* test whether event type is acceptable as hotkey, excluding modifiers */ -- cgit v1.2.3 From 0688ea5b73ff7c125747aa032b9379e07b243899 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 17 Dec 2009 21:20:18 +0000 Subject: Wrong brush index for tenth brush (key is 0, brush index is 9, fun stuff) --- source/blender/editors/sculpt_paint/paint_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index ae694ed863b..a54c2b71ee7 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -173,7 +173,7 @@ static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *path) RNA_int_set(kmi->ptr, "value", 8); kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", ZEROKEY, KM_PRESS, 0, 0); RNA_string_set(kmi->ptr, "path", path); - RNA_int_set(kmi->ptr, "value", 10); + RNA_int_set(kmi->ptr, "value", 9); } void ED_keymap_paint(wmKeyConfig *keyconf) -- cgit v1.2.3 From 62639a55d90f1adc2e18f8d2b7d2556a761ef254 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 17 Dec 2009 22:14:43 +0000 Subject: Keymap conflict detection operator. Takes into account the hierarchical structures of keymaps as well as wildcards (KM_ANY) in event definitions, user remaps (emulate numpad, action/select mouse buttons, ...) and event values that overlap (click, press and release) For now, doesn't do anything other than print conflicts in the console. As a result, I cleaned up a lot of keymaps that had double definitions, moved some keymap items in more appropriate places, fixed wrong definitions and removed kmi that were added for testing a long long time ago. Out of all the remaining conflicts, after removing obvious non-issues, here's what remains: http://www.pasteall.org/9898 --- source/blender/editors/curve/curve_ops.c | 2 +- source/blender/editors/mesh/mesh_ops.c | 14 ++------ source/blender/editors/object/object_ops.c | 5 ++- source/blender/editors/space_file/space_file.c | 1 - source/blender/editors/space_image/space_image.c | 4 --- source/blender/editors/space_text/space_text.c | 7 ++-- source/blender/editors/space_view3d/view3d_ops.c | 2 -- source/blender/editors/transform/transform_ops.c | 4 --- source/blender/makesrna/intern/rna_internal.h | 1 + source/blender/makesrna/intern/rna_wm.c | 2 ++ source/blender/makesrna/intern/rna_wm_api.c | 11 ++++++ source/blender/windowmanager/WM_api.h | 2 ++ .../blender/windowmanager/intern/wm_event_system.c | 4 +-- source/blender/windowmanager/intern/wm_keymap.c | 42 ++++++++++++++++++++++ 14 files changed, 67 insertions(+), 34 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c index 3f59e295fe4..be52952b474 100644 --- a/source/blender/editors/curve/curve_ops.c +++ b/source/blender/editors/curve/curve_ops.c @@ -238,7 +238,7 @@ void ED_keymap_curve(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "CURVE_OT_delete", DELKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "CURVE_OT_tilt_clear", TKEY, KM_PRESS, KM_ALT, 0); - RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", TFM_TILT); + WM_keymap_add_item(keymap, "TRANSFORM_OT_tilt", TKEY, KM_PRESS, KM_CTRL, 0); RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_CURVE_SHRINKFATTEN); RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", 1); RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", HKEY, KM_PRESS, 0, 0)->ptr, "type", 3); diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index b067f894050..621e952fb6d 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -255,7 +255,6 @@ void ED_keymap_mesh(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MESH_OT_extrude_move", EKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MESH_OT_spin", RKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "MESH_OT_screw", NINEKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "MESH_OT_fill", FKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "MESH_OT_beauty_fill", FKEY, KM_PRESS, KM_ALT, 0); @@ -263,20 +262,11 @@ void ED_keymap_mesh(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MESH_OT_tris_convert_to_quads", JKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "MESH_OT_edge_flip", FKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_extrude_repeat", FOURKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "MESH_OT_edge_rotate", FIVEKEY, KM_PRESS, KM_CTRL, 0); - - WM_keymap_add_item(keymap, "MESH_OT_loop_to_region",SIXKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_region_to_loop",SIXKEY, KM_PRESS, KM_ALT, 0); - - WM_keymap_add_item(keymap, "MESH_OT_uvs_rotate",SEVENKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_uvs_mirror",SEVENKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "MESH_OT_colors_rotate",EIGHTKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_colors_mirror",EIGHTKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "MESH_OT_rip_move",VKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MESH_OT_merge", MKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "TRANSFORM_OT_shrink_fatten", SKEY, KM_PRESS, KM_ALT, 0); + /* add/remove */ WM_keymap_add_item(keymap, "MESH_OT_edge_face_add", FKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MESH_OT_skin", FKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); /* python */ diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 8def741ed2b..dbd03561c20 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -247,9 +247,6 @@ void ED_keymap_object(wmKeyConfig *keyconf) RNA_enum_set(kmi->ptr, "mode", OB_MODE_VERTEX_PAINT); RNA_boolean_set(kmi->ptr, "toggle", 1); - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", VKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_VERTEX_PAINT); - RNA_boolean_set(kmi->ptr, "toggle", 1); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0); RNA_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT); RNA_boolean_set(kmi->ptr, "toggle", 1); @@ -264,6 +261,8 @@ void ED_keymap_object(wmKeyConfig *keyconf) /* object mode supports PET now */ ED_object_generic_keymap(keyconf, keymap, TRUE); + WM_keymap_add_item(keymap, "VIEW3D_OT_game_start", PKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "OBJECT_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "OBJECT_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "OBJECT_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c index 8bbdbbeb4fb..939af53b87d 100644 --- a/source/blender/editors/space_file/space_file.c +++ b/source/blender/editors/space_file/space_file.c @@ -405,7 +405,6 @@ void file_keymap(struct wmKeyConfig *keyconf) /* keys for button area (top) */ keymap= WM_keymap_find(keyconf, "FileButtons", SPACE_FILE, 0); - WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0); kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0); RNA_int_set(kmi->ptr, "increment", 1); kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0); diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index cde81ad7cf3..58f48f6fa07 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -234,11 +234,7 @@ void image_keymap(struct wmKeyConfig *keyconf) RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f); RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f); - WM_keymap_add_item(keymap, "PAINT_OT_image_paint", LEFTMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "PAINT_OT_grab_clone", RIGHTMOUSE, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "PAINT_OT_sample_color", RIGHTMOUSE, KM_PRESS, 0, 0); - RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint_radial_control", FKEY, KM_PRESS, 0, 0)->ptr, "mode", WM_RADIALCONTROL_SIZE); - RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH); WM_keymap_add_item(keymap, "IMAGE_OT_sample", ACTIONMOUSE, KM_PRESS, 0, 0); RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "point", 0); diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index a8d146bb7a8..821eaed1675 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -261,13 +261,12 @@ static void text_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "TEXT_OT_uncomment", DKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", HOMEKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_BEGIN); + RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END); RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", LINE_BEGIN); - RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END); - RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", LINE_BEGIN); + RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", LINE_END); RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", EKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", LINE_END); RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", EKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "type", LINE_END); - RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END); RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR); RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR); RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD); @@ -303,8 +302,6 @@ static void text_keymap(struct wmKeyConfig *keyconf) RNA_int_set(WM_keymap_add_item(keymap, "TEXT_OT_scroll", WHEELUPMOUSE, KM_PRESS, 0, 0)->ptr, "lines", -1); RNA_int_set(WM_keymap_add_item(keymap, "TEXT_OT_scroll", WHEELDOWNMOUSE, KM_PRESS, 0, 0)->ptr, "lines", 1); - WM_keymap_add_item(keymap, "TEXT_OT_to_3d_object", MKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "TEXT_OT_line_break", RETKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "TEXT_OT_line_number", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index bc8d34b407b..27c062fee8c 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -183,8 +183,6 @@ void view3d_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "VIEW3D_OT_localview", PADSLASHKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "VIEW3D_OT_game_start", PKEY, KM_PRESS, 0, 0); - /* layers, shift + alt are properties set in invoke() */ RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_layers", ACCENTGRAVEKEY, KM_PRESS, 0, 0)->ptr, "nr", 0); RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_layers", ONEKEY, KM_PRESS, KM_ANY, 0)->ptr, "nr", 1); diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index f794d79bdd9..f9dcd6f87f4 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -773,10 +773,6 @@ void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *ke km = WM_keymap_add_item(keymap, "TRANSFORM_OT_shear", SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_shrink_fatten", SKEY, KM_PRESS, KM_ALT, 0); - - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_tilt", TKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_select_orientation", SPACEKEY, KM_PRESS, KM_ALT, 0); km = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index f43db74286b..1c14d0d4c06 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -211,6 +211,7 @@ void RNA_api_operator(struct StructRNA *srna); void RNA_api_keyconfig(struct StructRNA *srna); void RNA_api_keyingset(struct StructRNA *srna); void RNA_api_keymap(struct StructRNA *srna); +void RNA_api_keymapitem(struct StructRNA *srna); void RNA_api_main(struct StructRNA *srna); void RNA_api_material(StructRNA *srna); void RNA_api_mesh(struct StructRNA *srna); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 09adb642e58..3d4899a0a51 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -997,6 +997,8 @@ static void rna_def_keyconfig(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", KMI_INACTIVE); RNA_def_property_ui_text(prop, "Active", "Activate or deactivate item."); RNA_def_property_ui_icon(prop, ICON_CHECKBOX_DEHLT, 1); + + RNA_api_keymapitem(srna); } void RNA_def_wm(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index 94a689c9f1c..0cec66fe264 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -288,5 +288,16 @@ void RNA_api_keymap(StructRNA *srna) RNA_def_property_flag(parm, PROP_REQUIRED); } +void RNA_api_keymapitem(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + func= RNA_def_function(srna, "compare", "WM_keymap_item_compare"); + parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_boolean(func, "result", 0, "Comparison result", ""); + RNA_def_function_return(func, parm); +} #endif diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index c4270fbc8b0..1702149cf8b 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -115,6 +115,8 @@ wmKeyMap *WM_keymap_copy_to_user(struct wmKeyMap *keymap); void WM_keymap_restore_to_default(struct wmKeyMap *keymap); void WM_keymap_properties_reset(struct wmKeyMapItem *kmi); void WM_keymap_restore_item_to_default(struct bContext *C, struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); +int WM_keymap_item_compare(struct wmKeyMapItem *k1, struct wmKeyMapItem *k2); +int WM_userdef_event_map(int kmitype); wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, char *idname, struct EnumPropertyItem *items); wmKeyMap *WM_modalkeymap_get(struct wmKeyConfig *keyconf, char *idname); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index ccc020827c5..ac4c2709688 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -709,7 +709,7 @@ void WM_event_remove_handlers(bContext *C, ListBase *handlers) } /* do userdef mappings */ -static int wm_userdef_event_map(int kmitype) +int WM_userdef_event_map(int kmitype) { switch(kmitype) { case SELECTMOUSE: @@ -754,7 +754,7 @@ static int wm_userdef_event_map(int kmitype) static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi) { - int kmitype= wm_userdef_event_map(kmi->type); + int kmitype= WM_userdef_event_map(kmi->type); if(kmi->flag & KMI_INACTIVE) return 0; diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index e1f812ee45f..116bc263d71 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -453,6 +453,48 @@ char *WM_key_event_operator_string(const bContext *C, const char *opname, int op return NULL; } +int WM_keymap_item_compare(wmKeyMapItem *k1, wmKeyMapItem *k2) +{ + int k1type, k2type; + + if (k1->flag & KMI_INACTIVE || k2->flag & KMI_INACTIVE) + return 0; + + /* take event mapping into account */ + k1type = WM_userdef_event_map(k1->type); + k2type = WM_userdef_event_map(k2->type); + + if(k1type != KM_ANY && k2type != KM_ANY && k1type != k2type) + return 0; + + if(k1->val != KM_ANY && k2->val != KM_ANY) { + /* take click, press, release conflict into account */ + if (k1->val == KM_CLICK && ELEM3(k2->val, KM_PRESS, KM_RELEASE, KM_CLICK) == 0) + return 0; + if (k2->val == KM_CLICK && ELEM3(k1->val, KM_PRESS, KM_RELEASE, KM_CLICK) == 0) + return 0; + if (k1->val != k2->val) + return 0; + } + + if(k1->shift != KM_ANY && k2->shift != KM_ANY && k1->shift != k2->shift) + return 0; + + if(k1->ctrl != KM_ANY && k2->ctrl != KM_ANY && k1->ctrl != k2->ctrl) + return 0; + + if(k1->alt != KM_ANY && k2->alt != KM_ANY && k1->alt != k2->alt) + return 0; + + if(k1->oskey != KM_ANY && k2->oskey != KM_ANY && k1->oskey != k2->oskey) + return 0; + + if(k1->keymodifier != k2->keymodifier) + return 0; + + return 1; +} + /* ***************** user preferences ******************* */ int WM_keymap_user_init(wmWindowManager *wm, wmKeyMap *keymap) -- cgit v1.2.3 From 8505c5bcf357b30919907d11279b232034305a9e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Dec 2009 23:29:11 +0000 Subject: sequencer copy clipboard wasnt checking if all related strips were selected --- source/blender/blenkernel/BKE_sequencer.h | 1 + source/blender/blenkernel/intern/sequencer.c | 42 +++++++++++++++-- .../editors/space_sequencer/sequencer_edit.c | 54 +++++----------------- 3 files changed, 52 insertions(+), 45 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 22f9278aa38..7c74dd5b3d3 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -186,6 +186,7 @@ struct ListBase *seq_seqbase(struct ListBase *seqbase, struct Sequence *seq); void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs); int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test); int shuffle_seq_time(ListBase * seqbasep); +int seqbase_isolated_sel_check(struct ListBase *seqbase); void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage); void seq_update_sound(struct Sequence *seq); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 8b59c2982e6..c92640e295e 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -76,7 +76,7 @@ static int seqrecty= 0; //static int blender_test_break() {return 0;} /* **** XXX ******** */ - +#define SELECT 1 ListBase seqbase_clipboard; int seqbase_clipboard_frame; @@ -3283,6 +3283,42 @@ int seq_single_check(Sequence *seq) return 0; } +/* check if the selected seq's reference unselected seq's */ +int seqbase_isolated_sel_check(ListBase *seqbase) +{ + Sequence *seq; + /* is there more than 1 select */ + int ok= FALSE; + + for(seq= seqbase->first; seq; seq= seq->next) { + if(seq->flag & SELECT) { + ok= TRUE; + break; + } + } + + if(ok == FALSE) + return FALSE; + + /* test relationships */ + for(seq= seqbase->first; seq; seq= seq->next) { + if(seq->flag & SELECT) { + if(seq->type & SEQ_EFFECT) { + if(seq->seq1 && (seq->seq1->flag & SELECT)==0) return FALSE; + if(seq->seq2 && (seq->seq2->flag & SELECT)==0) return FALSE; + if(seq->seq3 && (seq->seq3->flag & SELECT)==0) return FALSE; + } + } + else if(seq->type & SEQ_EFFECT) { + if(seq->seq1 && (seq->seq1->flag & SELECT)) return FALSE; + if(seq->seq2 && (seq->seq2->flag & SELECT)) return FALSE; + if(seq->seq3 && (seq->seq3->flag & SELECT)) return FALSE; + } + } + + return TRUE; +} + /* use to impose limits when dragging/extending - so impossible situations dont happen * Cant use the SEQ_LEFTSEL and SEQ_LEFTSEL directly because the strip may be in a metastrip */ void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag) @@ -3636,7 +3672,7 @@ void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load) } if(seq_load->flag & SEQ_LOAD_REPLACE_SEL) { - seq_load->flag |= 1; /* SELECT */ + seq_load->flag |= SELECT; active_seq_set(scene, seq); } @@ -3662,7 +3698,7 @@ Sequence *alloc_sequence(ListBase *lb, int cfra, int machine) *( (short *)seq->name )= ID_SEQ; seq->name[2]= 0; - seq->flag= 1; /* SELECT */ + seq->flag= SELECT; seq->start= cfra; seq->machine= machine; seq->mul= 1.0; diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index dda5860900b..0a12ea2e202 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2105,52 +2105,14 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) if(ed==NULL) return OPERATOR_CANCELLED; - /* is there more than 1 select */ - tot= 0; - seq= ed->seqbasep->first; - while(seq) { - if(seq->flag & SELECT) { - tot++; - } - seq= seq->next; - } - if(tot < 1) return OPERATOR_CANCELLED;; - - - /* test relationships */ - seq= ed->seqbasep->first; - while(seq) { - if(seq->flag & SELECT) { - channel_max= MAX2(seq->machine, channel_max); - if(seq->type & SEQ_EFFECT) { - if(seq->seq1 && - (seq->seq1->flag & SELECT)==0) tot= 0; - if(seq->seq2 && - (seq->seq2->flag & SELECT)==0) tot= 0; - if(seq->seq3 && - (seq->seq3->flag & SELECT)==0) tot= 0; - } - } - else if(seq->type & SEQ_EFFECT) { - if(seq->seq1 && - (seq->seq1->flag & SELECT)) tot= 0; - if(seq->seq2 && - (seq->seq2->flag & SELECT)) tot= 0; - if(seq->seq3 && - (seq->seq3->flag & SELECT)) tot= 0; - } - if(tot==0) break; - seq= seq->next; - } - - if(tot==0) { + if(seqbase_isolated_sel_check(ed->seqbasep)==FALSE) { BKE_report(op->reports, RPT_ERROR, "Please select all related strips"); return OPERATOR_CANCELLED; } /* remove all selected from main list, and put in meta */ - seqm= alloc_sequence(ed->seqbasep, 1, channel_max); + seqm= alloc_sequence(ed->seqbasep, 1, 1); /* channel number set later */ strcpy(seqm->name+2, "MetaStrip"); seqm->type= SEQ_META; seqm->flag= SELECT; @@ -2159,11 +2121,13 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) while(seq) { next= seq->next; if(seq!=seqm && (seq->flag & SELECT)) { + channel_max= MAX2(seq->machine, channel_max); BLI_remlink(ed->seqbasep, seq); BLI_addtail(&seqm->seqbase, seq); } seq= next; } + seqm->machine= channel_max; calc_sequence(seqm); seqm->strip= MEM_callocN(sizeof(Strip), "metastrip"); @@ -2758,9 +2722,10 @@ static void seq_del_sound(Scene *scene, Sequence *seq) seq_del_sound(scene, iseq); } } - else if(seq->sound_handle) + else if(seq->sound_handle) { sound_delete_handle(scene, seq->sound_handle); - + seq->sound_handle= NULL; + } } /* TODO, validate scenes */ @@ -2775,6 +2740,11 @@ static int sequencer_copy_exec(bContext *C, wmOperator *op) seq_free_clipboard(); + if(seqbase_isolated_sel_check(ed->seqbasep)==FALSE) { + BKE_report(op->reports, RPT_ERROR, "Please select all related strips"); + return OPERATOR_CANCELLED; + } + recurs_dupli_seq(scene, ed->seqbasep, &seqbase_clipboard, FALSE); seqbase_clipboard_frame= scene->r.cfra; -- cgit v1.2.3 From 273674a2cd9a2e3266fa79a92dc7736a776ac36a Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 18 Dec 2009 03:41:26 +0000 Subject: Tweaked some key shortcuts in text editor to prevent conflicts Ctrl F - open 'find' field Ctrl G - find next --- source/blender/editors/space_text/space_text.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index 821eaed1675..d657725b880 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -222,7 +222,9 @@ static void text_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "TEXT_OT_cut", XKEY, KM_PRESS, KM_OSKEY, 0); WM_keymap_add_item(keymap, "TEXT_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0); WM_keymap_add_item(keymap, "TEXT_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0); - WM_keymap_add_item(keymap, "TEXT_OT_find", FKEY, KM_PRESS, KM_OSKEY, 0); + WM_keymap_add_item(keymap, "TEXT_OT_properties", FKEY, KM_PRESS, KM_OSKEY, 0); + WM_keymap_add_item(keymap, "TEXT_OT_find_set_selected", EKEY, KM_PRESS, KM_OSKEY, 0); + WM_keymap_add_item(keymap, "TEXT_OT_find", GKEY, KM_PRESS, KM_OSKEY, 0); WM_keymap_add_item(keymap, "TEXT_OT_select_all", AKEY, KM_PRESS, KM_OSKEY, 0); WM_keymap_add_item(keymap, "TEXT_OT_select_line", AKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0); #endif @@ -242,13 +244,11 @@ static void text_keymap(struct wmKeyConfig *keyconf) if(U.uiflag & USER_MMB_PASTE) // XXX not dynamic RNA_boolean_set(WM_keymap_add_item(keymap, "TEXT_OT_paste", MIDDLEMOUSE, KM_PRESS, 0, 0)->ptr, "selection", 1); - WM_keymap_add_item(keymap, "TEXT_OT_jump", GKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "TEXT_OT_find", FKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "TEXT_OT_jump", JKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "TEXT_OT_find", GKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "TEXT_OT_properties", FKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "TEXT_OT_properties", FKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "TEXT_OT_replace", HKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "TEXT_OT_replace", HKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "TEXT_OT_to_3d_object", MKEY, KM_PRESS, KM_ALT, 0); -- cgit v1.2.3 From f6e82f71a56fa76bf58eeb7bd77f2d2748a2c9e4 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 18 Dec 2009 03:47:57 +0000 Subject: RNA wrapping of Action Groups: Finished wrapping Action Groups in RNA to help debug some bugs showing up in the Animation Editors for some files from the Durian team. Access is strictly read-only for these added settings, given the trouble already caused by these problems. --- source/blender/editors/animation/anim_filter.c | 4 ++-- source/blender/makesrna/intern/rna_access.c | 2 +- source/blender/makesrna/intern/rna_action.c | 31 +++++++++++++++++++++----- source/blender/makesrna/intern/rna_fcurve.c | 5 +++++ 4 files changed, 34 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 2d9ab636642..89f9511688f 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -763,12 +763,12 @@ static int skip_fcurve_selected_data(FCurve *fcu, ID *owner_id) Object *ob= (Object *)owner_id; /* only consider if F-Curve involves pose.bones */ - if ((fcu->rna_path) && strstr(fcu->rna_path, "bones")) { + if ((fcu->rna_path) && strstr(fcu->rna_path, "pose.bones")) { bPoseChannel *pchan; char *bone_name; /* get bone-name, and check if this bone is selected */ - bone_name= BLI_getQuotedStr(fcu->rna_path, "bones["); + bone_name= BLI_getQuotedStr(fcu->rna_path, "pose.bones["); pchan= get_pose_channel(ob->pose, bone_name); if (bone_name) MEM_freeN(bone_name); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 8ae0ebacff7..59200a2de55 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -507,7 +507,7 @@ int RNA_struct_is_a(StructRNA *type, StructRNA *srna) PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier) { - if(identifier[0]=='[' && identifier[1]=='"') { + if(identifier[0]=='[' && identifier[1]=='"') { // " (dummy comment to avoid confusing some function lists in text editors) /* id prop lookup, not so common */ PropertyRNA *r_prop= NULL; PointerRNA r_ptr; /* only support single level props */ diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 4cb7080f05e..3f6729136d5 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -29,6 +29,7 @@ #include "rna_internal.h" +#include "DNA_anim_types.h" #include "DNA_action_types.h" #include "DNA_scene_types.h" @@ -39,6 +40,21 @@ #ifdef RNA_RUNTIME +static void rna_ActionGroup_channels_next(CollectionPropertyIterator *iter) +{ + ListBaseIterator *internal= iter->internal; + FCurve *fcu= (FCurve*)internal->link; + bActionGroup *grp= fcu->grp; + + /* only continue if the next F-Curve (if existant) belongs in the same group */ + if ((fcu->next) && (fcu->next->grp == grp)) + internal->link= (Link*)fcu->next; + else + internal->link= NULL; + + iter->valid= (internal->link != NULL); +} + #else static void rna_def_dopesheet(BlenderRNA *brna) @@ -167,13 +183,18 @@ static void rna_def_action_group(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Name", ""); RNA_def_struct_name_property(srna, prop); - /* dna warns not to treat the Action Channel listbase in the Action Group struct like a - normal listbase. I'll leave this here but comment out, for Joshua to review. He can - probably shed some more light on why this is */ - /*prop= RNA_def_property(srna, "channels", PROP_COLLECTION, PROP_NONE); + /* WARNING: be very careful when working with this list, since the endpoint is not + * defined like a standard ListBase. Adding/removing channels from this list needs + * extreme care, otherwise the F-Curve list running through adjacent groups does + * not match up with the one stored in the Action, resulting in curves which do not + * show up in animation editors. For that reason, such operations are currently + * prohibited. + */ + prop= RNA_def_property(srna, "channels", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "channels", NULL); RNA_def_property_struct_type(prop, "FCurve"); - RNA_def_property_ui_text(prop, "Channels", "F-Curves in this group.");*/ + RNA_def_property_collection_funcs(prop, 0, "rna_ActionGroup_channels_next", 0, 0, 0, 0, 0); + RNA_def_property_ui_text(prop, "Channels", "F-Curves in this group."); prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", AGRP_SELECTED); diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 97918556976..f3d36d60c23 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -925,6 +925,11 @@ static void rna_def_fcurve(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Driver", "Channel Driver (only set for Driver F-Curves)"); + prop= RNA_def_property(srna, "group", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "grp"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); // XXX this is not editable for now, since editing this will easily break the visible hierarchy + RNA_def_property_ui_text(prop, "Group", "Action Group that this F-Curve belongs to."); + /* Path + Array Index */ prop= RNA_def_property(srna, "data_path", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, "rna_FCurve_RnaPath_get", "rna_FCurve_RnaPath_length", "rna_FCurve_RnaPath_set"); -- cgit v1.2.3 From eb17b95e55dc951ad4ad16700629518580fdc62e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 18 Dec 2009 11:26:26 +0000 Subject: Bugfix: sculpt brush size was computed wrong in perspective view with scaled/translated objects. --- source/blender/editors/sculpt_paint/sculpt.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index ce0a4d149bb..09b99f4f43c 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1633,13 +1633,19 @@ static void SCULPT_OT_radial_control(wmOperatorType *ot) /**** Operator for applying a stroke (various attributes including mouse path) using the current brush. ****/ -static float unproject_brush_radius(ViewContext *vc, float center[3], float offset) +static float unproject_brush_radius(Object *ob, ViewContext *vc, float center[3], float offset) { - float delta[3]; + float delta[3], scale, loc[3]; + + mul_v3_m4v3(loc, ob->obmat, center); - initgrabz(vc->rv3d, center[0], center[1], center[2]); + initgrabz(vc->rv3d, loc[0], loc[1], loc[2]); window_to_3d_delta(vc->ar, delta, offset, 0); - return len_v3(delta); + + scale= fabsf(mat4_to_scale(ob->obmat)); + scale= (scale == 0.0f)? 1.0f: scale; + + return len_v3(delta)/scale; } static void sculpt_cache_free(StrokeCache *cache) @@ -1738,7 +1744,7 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P cache->pixel_radius = brush->size; if(cache->first_time) - cache->initial_radius = unproject_brush_radius(cache->vc, cache->true_location, brush->size); + cache->initial_radius = unproject_brush_radius(ss->ob, cache->vc, cache->true_location, brush->size); if(brush->flag & BRUSH_SIZE_PRESSURE) { cache->pixel_radius *= cache->pressure; @@ -1754,7 +1760,7 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P dx = cache->mouse[0] - cache->initial_mouse[0]; dy = cache->mouse[1] - cache->initial_mouse[1]; cache->pixel_radius = sqrt(dx*dx + dy*dy); - cache->radius = unproject_brush_radius(paint_stroke_view_context(stroke), + cache->radius = unproject_brush_radius(ss->ob, paint_stroke_view_context(stroke), cache->true_location, cache->pixel_radius); cache->rotation = atan2(dy, dx); } -- cgit v1.2.3 From 4f3af9980f61e8203016714a2314ca51e1902362 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 18 Dec 2009 11:55:18 +0000 Subject: Keyframing Bugfix: This commit attempts to fix some of the bugs which were causing grief with some Durian animation tests. In one of those files, the order in which F-Curves were stored was seriously messed up; causing problems with some F-Curves still existing but unable to be edited (i.e. still showing up in the Object/Action summaries but nowhere else) since the standard assumptions for the way the data was stored had been violated. I've recoded the code that ensures that when F-Curves get added to Action Groups (and the Action that contains these) it ends up in the right places, since it was very likely that all the F-Curves would only ever get added near the end of the list. Hopefully this is enough to prevent these problems reoccurring, though I have a feeling there may still be one or two buggy tools which caused the problems in the first place. --- source/blender/blenkernel/intern/action.c | 117 +++++++++++------------------- 1 file changed, 42 insertions(+), 75 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index ace1292f813..303cd208b7c 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -254,101 +254,68 @@ void set_active_action_group (bAction *act, bActionGroup *agrp, short select) * - always adds at the end of the group */ void action_groups_add_channel (bAction *act, bActionGroup *agrp, FCurve *fcurve) -{ - FCurve *fcu; - short done=0; - +{ /* sanity checks */ if (ELEM3(NULL, act, agrp, fcurve)) return; - /* if no channels, just add to two lists at the same time */ + /* if no channels anywhere, just add to two lists at the same time */ if (act->curves.first == NULL) { fcurve->next = fcurve->prev = NULL; agrp->channels.first = agrp->channels.last = fcurve; act->curves.first = act->curves.last = fcurve; - - fcurve->grp= agrp; - return; } - /* try to find a channel to slot this in before/after */ - for (fcu= act->curves.first; fcu; fcu= fcu->next) { - /* if channel has no group, then we have ungrouped channels, which should always occur after groups */ - if (fcu->grp == NULL) { - BLI_insertlinkbefore(&act->curves, fcu, fcurve); - - if (agrp->channels.first == NULL) - agrp->channels.first= fcurve; - agrp->channels.last= fcurve; + /* if the group already has channels, the F-Curve can simply be added to the list + * (i.e. as the last channel in the group) + */ + else if (agrp->channels.first) { + /* if the group's last F-Curve is the action's last F-Curve too, + * then set the F-Curve as the last for the action first so that + * the lists will be in sync after linking + */ + if (agrp->channels.last == act->curves.last) + act->curves.last= fcurve; - done= 1; - break; - } + /* link in the given F-Curve after the last F-Curve in the group, + * which means that it should be able to fit in with the rest of the + * list seamlessly + */ + BLI_insertlinkafter(&agrp->channels, agrp->channels.last, fcurve); + } + + /* otherwise, need to find the nearest F-Curve in group before/after current to link with */ + else { + bActionGroup *grp; - /* if channel has group after current, we can now insert (otherwise we have gone too far) */ - else if (fcu->grp == agrp->next) { - BLI_insertlinkbefore(&act->curves, fcu, fcurve); - - if (agrp->channels.first == NULL) - agrp->channels.first= fcurve; - agrp->channels.last= fcurve; - - done= 1; - break; - } + /* firstly, link this F-Curve to the group */ + agrp->channels.first = agrp->channels.last = fcurve; - /* if channel has group we're targeting, check whether it is the last one of these */ - else if (fcu->grp == agrp) { - if ((fcu->next) && (fcu->next->grp != agrp)) { - BLI_insertlinkafter(&act->curves, fcu, fcurve); - agrp->channels.last= fcurve; - done= 1; - break; - } - else if (fcu->next == NULL) { - BLI_addtail(&act->curves, fcurve); - agrp->channels.last= fcurve; - done= 1; + /* step through the groups preceeding this one, finding the F-Curve there to attach this one after */ + for (grp= agrp->prev; grp; grp= grp->prev) { + /* if this group has F-Curves, we want weave the given one in right after the last channel there, + * but via the Action's list not this group's list + * - this is so that the F-Curve is in the right place in the Action, + * but won't be included in the previous group + */ + if (grp->channels.last) { + /* once we've added, break here since we don't need to search any further... */ + BLI_insertlinkafter(&act->curves, grp->channels.last, fcurve); break; } } - /* if channel has group before target, check whether the next one is something after target */ - else if (fcu->grp == agrp->prev) { - if (fcu->next) { - if ((fcu->next->grp != fcu->grp) && (fcu->next->grp != agrp)) { - BLI_insertlinkafter(&act->curves, fcu, fcurve); - - agrp->channels.first= fcurve; - agrp->channels.last= fcurve; - - done= 1; - break; - } - } - else { - BLI_insertlinkafter(&act->curves, fcu, fcurve); - - agrp->channels.first= fcurve; - agrp->channels.last= fcurve; - - done= 1; - break; - } - } + /* if grp is NULL, that means we fell through, and this F-Curve should be added as the new first + * since group is (effectively) the first group. Thus, the existing first F-Curve becomes the + * second in the chain, etc. etc. + */ + if (grp == NULL) + BLI_insertlinkbefore(&act->curves, act->curves.first, fcurve); } - /* only if added, set channel as belonging to this group */ - if (done) { - //printf("FCurve added to group \n"); - fcurve->grp= agrp; - } - else { - printf("Error: FCurve '%s' couldn't be added to Group '%s' \n", fcurve->rna_path, agrp->name); - BLI_addtail(&act->curves, fcurve); - } + /* set the F-Curve's new group */ + fcurve->grp= agrp; } /* Remove the given channel from all groups */ -- cgit v1.2.3 From 955f7c92881c6b1d87b2aa71098dc8a989d6155b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 18 Dec 2009 13:08:11 +0000 Subject: Fix #20423: particle system deflection settings were not read correctly, causing crashes on free and duplication. --- source/blender/blenloader/intern/readfile.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 232af442a85..f2621a1b449 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3070,6 +3070,12 @@ static void direct_link_pointcache_list(FileData *fd, ListBase *ptcaches, PointC } } +void lib_link_partdeflect(FileData *fd, ID *id, PartDeflect *pd) +{ + if(pd && pd->tex) + pd->tex=newlibadr_us(fd, id->lib, pd->tex); +} + static void lib_link_particlesettings(FileData *fd, Main *main) { ParticleSettings *part; @@ -3086,6 +3092,9 @@ static void lib_link_particlesettings(FileData *fd, Main *main) part->eff_group = newlibadr(fd, part->id.lib, part->eff_group); part->bb_ob = newlibadr(fd, part->id.lib, part->bb_ob); + lib_link_partdeflect(fd, &part->id, part->pd); + lib_link_partdeflect(fd, &part->id, part->pd2); + if(part->effector_weights) part->effector_weights->group = newlibadr(fd, part->id.lib, part->effector_weights->group); @@ -3122,12 +3131,20 @@ static void lib_link_particlesettings(FileData *fd, Main *main) } } +static void direct_link_partdeflect(PartDeflect *pd) +{ + if(pd) pd->rng=NULL; +} + static void direct_link_particlesettings(FileData *fd, ParticleSettings *part) { part->adt= newdataadr(fd, part->adt); part->pd= newdataadr(fd, part->pd); part->pd2= newdataadr(fd, part->pd2); + direct_link_partdeflect(part->pd); + direct_link_partdeflect(part->pd2); + part->effector_weights = newdataadr(fd, part->effector_weights); if(!part->effector_weights) part->effector_weights = BKE_add_effector_weights(part->eff_group); @@ -3714,8 +3731,7 @@ static void lib_link_object(FileData *fd, Main *main) /* texture field */ if(ob->pd) - if(ob->pd->tex) - ob->pd->tex=newlibadr_us(fd, ob->id.lib, ob->pd->tex); + lib_link_partdeflect(fd, &ob->id, ob->pd); if(ob->soft) ob->soft->effector_weights->group = newlibadr(fd, ob->id.lib, ob->soft->effector_weights->group); @@ -4030,8 +4046,7 @@ static void direct_link_object(FileData *fd, Object *ob) } ob->pd= newdataadr(fd, ob->pd); - if(ob->pd) - ob->pd->rng=NULL; + direct_link_partdeflect(ob->pd); ob->soft= newdataadr(fd, ob->soft); if(ob->soft) { SoftBody *sb= ob->soft; -- cgit v1.2.3 From 50544ea6457fb1a05eedd184251e33956deab03f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 18 Dec 2009 13:28:03 +0000 Subject: - sequence strips without scenes would crash on display - appending scenes would not append the sound and scene ID's for sequence strips - reload button in sequence header now reloads sounds as well. - redrawing the sequence image view didnt work while plaing (unless play was activated from that region) - generic functions for running a callback on sequence strips recursively. seqbase_recursive_apply() and seq_recursive_apply() - bind marker with camera was set to home key, use Ctrl+B instead. --- source/blender/blenkernel/BKE_sequencer.h | 4 ++ source/blender/blenkernel/intern/sequencer.c | 74 +++++++++++++++------- source/blender/blenloader/intern/readfile.c | 11 ++++ source/blender/editors/animation/anim_markers.c | 3 +- source/blender/editors/screen/screen_ops.c | 8 +++ .../editors/space_sequencer/sequencer_edit.c | 2 + source/blender/makesrna/intern/rna_sequencer.c | 4 +- 7 files changed, 80 insertions(+), 26 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 7c74dd5b3d3..c078b92af2d 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -137,6 +137,10 @@ struct SeqEffectHandle { /* sequence.c */ void printf_strip(struct Sequence *seq); +/* apply functions recursively */ +void seqbase_recursive_apply(struct ListBase *seqbase, int (*apply_func)(struct Sequence *seq, void *), void *arg); +void seq_recursive_apply(struct Sequence *seq, int (*apply_func)(struct Sequence *, void *), void *arg); + // extern void seq_free_sequence(struct Scene *scene, struct Sequence *seq); void seq_free_strip(struct Strip *strip); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index c92640e295e..84458b0e921 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -87,6 +87,20 @@ void printf_strip(Sequence *seq) fprintf(stderr, "\tseq_tx_set_final_left: %d %d\n\n", seq_tx_get_final_left(seq, 0), seq_tx_get_final_right(seq, 0)); } +void seqbase_recursive_apply(ListBase *seqbase, int (*apply_func)(Sequence *seq, void *), void *arg) +{ + Sequence *iseq; + for(iseq= seqbase->first; iseq; iseq= iseq->next) { + seq_recursive_apply(iseq, apply_func, arg); + } +} + +void seq_recursive_apply(Sequence *seq, int (*apply_func)(Sequence *, void *), void *arg) +{ + if(apply_func(seq, arg) && seq->seqbase.first) + seqbase_recursive_apply(&seq->seqbase, apply_func, arg); +} + /* ********************************************************************** alloc / free functions ********************************************************************** */ @@ -252,7 +266,7 @@ void seq_free_editing(Scene *scene) { Editing *ed = scene->ed; MetaStack *ms; - Sequence *seq, *nseq; + Sequence *seq; if(ed==NULL) return; @@ -689,28 +703,22 @@ void sort_seq(Scene *scene) } -void clear_scene_in_allseqs(Scene *sce) +static int clear_scene_in_allseqs_cb(Sequence *seq, void *arg_pt) { - Scene *sce1; - Editing *ed; - Sequence *seq; - - /* when a scene is deleted: test all seqs */ - - sce1= G.main->scene.first; - while(sce1) { - if(sce1!=sce && sce1->ed) { - ed= sce1->ed; - - SEQ_BEGIN(ed, seq) { + if(seq->scene==(Scene *)arg_pt) + seq->scene= NULL; + return 1; +} - if(seq->scene==sce) seq->scene= 0; +void clear_scene_in_allseqs(Scene *scene) +{ + Scene *scene_iter; - } - SEQ_END + /* when a scene is deleted: test all seqs */ + for(scene_iter= G.main->scene.first; scene_iter; scene_iter= scene_iter->id.next) { + if(scene_iter != scene && scene_iter->ed) { + seqbase_recursive_apply(&scene_iter->ed->seqbase, clear_scene_in_allseqs_cb, scene); } - - sce1= sce1->id.next; } } @@ -2033,9 +2041,14 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int Render *re; RenderResult rres; char scenename[64]; - int have_seq= (sce->r.scemode & R_DOSEQ) && sce->ed && sce->ed->seqbase.first; - int sce_valid =sce && (sce->camera || have_seq); - + int have_seq= FALSE; + int sce_valid= FALSE; + + if(sce) { + have_seq= (sce->r.scemode & R_DOSEQ) && sce->ed && sce->ed->seqbase.first; + sce_valid= (sce->camera || have_seq); + } + if (se->ibuf == NULL && sce_valid && !build_proxy_run) { se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); if (se->ibuf) { @@ -3217,6 +3230,23 @@ static void free_imbuf_seq_with_ipo(Scene *scene, struct Ipo *ipo) } #endif +static int seq_sound_reload_cb(Sequence *seq, void *arg_pt) +{ + if (seq->type==SEQ_SOUND && seq->sound) { + Scene *scene= (Scene *)arg_pt; + if(seq->sound_handle) + sound_delete_handle(scene, seq->sound_handle); + + seq->sound_handle = sound_new_handle(scene, seq->sound, seq->start, seq->start + seq->strip->len, 0); + return 0; + } + return 1; /* recurse meta's */ +} +void seqbase_sound_reload(Scene *scene, ListBase *seqbase) +{ + seqbase_recursive_apply(seqbase, seq_sound_reload_cb, (void *)scene); +} + /* seq funcs's for transforming internally notice the difference between start/end and left/right. diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f2621a1b449..9548db3278a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4232,6 +4232,7 @@ static void lib_link_scene(FileData *fd, Main *main) if(seq->ipo) seq->ipo= newlibadr_us(fd, sce->id.lib, seq->ipo); if(seq->scene) seq->scene= newlibadr(fd, sce->id.lib, seq->scene); if(seq->sound) { + seq->sound_handle= NULL; if(seq->type == SEQ_HD_SOUND) seq->type = SEQ_SOUND; else @@ -11281,6 +11282,16 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce) if(sce->gpd) expand_doit(fd, mainvar, sce->gpd); + if(sce->ed) { + Sequence *seq; + + SEQ_BEGIN(sce->ed, seq) { + if(seq->scene) expand_doit(fd, mainvar, seq->scene); + if(seq->sound) expand_doit(fd, mainvar, seq->sound); + } + SEQ_END + } + #ifdef DURIAN_CAMERA_SWITCH { TimeMarker *marker; diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index 0d519c87a97..4cc3a8d343f 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -1062,7 +1062,6 @@ void ED_marker_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MARKER_OT_move", GKEY, KM_PRESS, 0, 0); #ifdef DURIAN_CAMERA_SWITCH - WM_keymap_add_item(keymap, "MARKER_OT_camera_bind", HOMEKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "MARKER_OT_camera_bind", BKEY, KM_PRESS, KM_CTRL, 0); #endif - } diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 977d04a7f45..55a977da663 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2332,6 +2332,14 @@ static int match_region_with_redraws(int spacetype, int regiontype, int redraws) if(spacetype==SPACE_TIME) return 1; } + else if (regiontype==RGN_TYPE_PREVIEW) { + switch (spacetype) { + case SPACE_SEQ: + if(redraws & (TIME_SEQ|TIME_ALL_ANIM_WIN)) + return 1; + break; + } + } return 0; } diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 0a12ea2e202..6704cf0ef62 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1672,6 +1672,8 @@ static int sequencer_refresh_all_exec(bContext *C, wmOperator *op) free_imbuf_seq(scene, &ed->seqbase, FALSE); + seqbase_sound_reload(scene, &ed->seqbase); + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index c1ca156c9bf..767da5dc042 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -235,9 +235,9 @@ static int rna_Sequence_name_length(PointerRNA *ptr) static void rna_Sequence_name_set(PointerRNA *ptr, const char *value) { Scene *scene= (Scene*)ptr->id.data; - Editing *ed= seq_give_editing(scene, FALSE); +// Editing *ed= seq_give_editing(scene, FALSE); Sequence *seq= (Sequence*)ptr->data; - Sequence *iseq; +// Sequence *iseq; BLI_strncpy(seq->name+2, value, sizeof(seq->name)-2); seqUniqueName(&scene->ed->seqbase, seq); -- cgit v1.2.3 From be819013174ad5c0978b9575b251ec2ec4003d4e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 18 Dec 2009 13:35:30 +0000 Subject: Fix #20401: hair combing with limit selection to visible does not comb all particles. --- source/blender/editors/physics/particle_edit.c | 27 ++++++++------------------ 1 file changed, 8 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index ac986ba7df6..8bacad3c132 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -373,7 +373,6 @@ static void PE_set_view3d_data(bContext *C, PEData *data) static int key_test_depth(PEData *data, float co[3]) { View3D *v3d= data->vc.v3d; - RegionView3D *rv3d= data->vc.rv3d; double ux, uy, uz; float depth; short wco[3], x,y; @@ -393,26 +392,16 @@ static int key_test_depth(PEData *data, float co[3]) x=wco[0]; y=wco[1]; - // XXX verify .. + x+= (short)data->vc.ar->winrct.xmin; + y+= (short)data->vc.ar->winrct.ymin; - if(rv3d->depths && xdepths->w && ydepths->h) { - /* the 0.0001 is an experimental threshold to make selecting keys right next to a surface work better */ - if((float)uz - 0.0001 > rv3d->depths->depths[y*rv3d->depths->w+x]) - return 0; - else - return 1; - } - else { - x+= (short)data->vc.ar->winrct.xmin; - y+= (short)data->vc.ar->winrct.ymin; + view3d_validate_backbuf(&data->vc); + glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth); - glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth); - - if((float)uz - 0.0001 > depth) - return 0; - else - return 1; - } + if((float)uz - 0.0001 > depth) + return 0; + else + return 1; } static int key_inside_circle(PEData *data, float rad, float co[3], float *distance) -- cgit v1.2.3 From 7d19734add32150a13d408adc796c9287e551228 Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Fri, 18 Dec 2009 16:35:41 +0000 Subject: OSX : add mounted network volumes to the system folder list in open/save file dialog --- source/blender/editors/space_file/fsmenu.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c index bd39a10f661..214c5ff685b 100644 --- a/source/blender/editors/space_file/fsmenu.c +++ b/source/blender/editors/space_file/fsmenu.c @@ -345,7 +345,7 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename) CFURLRef cfURL = NULL; CFStringRef pathString = NULL; - /* First get mounted volumes */ + /* First get local mounted volumes */ list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteVolumes, NULL); pathesArray = LSSharedFileListCopySnapshot(list, &seed); pathesCount = CFArrayGetCount(pathesArray); @@ -374,7 +374,29 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename) CFRelease(pathesArray); CFRelease(list); - /* Then get user favorite places */ + /* Then get network volumes */ + err = noErr; + for (i=1; err!=nsvErr; i++) + { + FSRef dir; + FSVolumeRefNum volRefNum; + struct GetVolParmsInfoBuffer volParmsBuffer; + unsigned char path[FILE_MAXDIR+FILE_MAXFILE]; + + err = FSGetVolumeInfo(kFSInvalidVolumeRefNum, i, &volRefNum, kFSVolInfoNone, NULL, NULL, &dir); + if (err != noErr) + continue; + + err = FSGetVolumeParms(volRefNum, &volParmsBuffer, sizeof(volParmsBuffer)); + if ((err != noErr) || (volParmsBuffer.vMServerAdr == 0)) /* Exclude local devices */ + continue; + + + FSRefMakePath(&dir, path, FILE_MAXDIR+FILE_MAXFILE); + fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, 1, 0); + } + + /* Finally get user favorite places */ list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteItems, NULL); pathesArray = LSSharedFileListCopySnapshot(list, &seed); pathesCount = CFArrayGetCount(pathesArray); -- cgit v1.2.3 From 996152de58c4dcf45637d06a6f0b777db8e95147 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 18 Dec 2009 17:15:58 +0000 Subject: Bugfix: sculpt mode could crash using a mesh without faces. --- source/blender/blenlib/intern/pbvh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index ff68e3b0881..6f33fab2571 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -504,7 +504,8 @@ void BLI_pbvh_build_mesh(PBVH *bvh, MFace *faces, MVert *verts, int totface, int BB_expand(&cb, bbc->bcentroid); } - pbvh_build(bvh, &cb, prim_bbc, totface); + if(totface) + pbvh_build(bvh, &cb, prim_bbc, totface); MEM_freeN(prim_bbc); MEM_freeN(bvh->vert_bitmap); @@ -544,7 +545,8 @@ void BLI_pbvh_build_grids(PBVH *bvh, DMGridData **grids, DMGridAdjacency *gridad BB_expand(&cb, bbc->bcentroid); } - pbvh_build(bvh, &cb, prim_bbc, totgrid); + if(totgrid) + pbvh_build(bvh, &cb, prim_bbc, totgrid); MEM_freeN(prim_bbc); } -- cgit v1.2.3 From 3e23f002b42dc1892665e1705f9f107c4e047b8a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 19 Dec 2009 10:27:23 +0000 Subject: fix for non Euler-XYZ rotations... - Camera to 3D view didnt check for rotation order. - Fly mode didnt check for rotation order. added util functions. - object_apply_mat4(ob, mat4); applies a 4x4 matrix to an objects loc,scale,rot (accounting for rotation modes) - object_mat3_to_rot(ob, mat3, use_compat); apply a 3x3 matrix to the objects rotation, option to use a euler compatible with the existing euler. --- source/blender/blenkernel/BKE_object.h | 2 ++ source/blender/blenkernel/intern/object.c | 26 +++++++++++++++++++++++ source/blender/editors/object/object_transform.c | 12 +---------- source/blender/editors/space_view3d/view3d_view.c | 14 +++++++----- 4 files changed, 38 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index aeb33cd3628..3e239e91453 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -93,8 +93,10 @@ void disable_speed_curve(int val); float bsystem_time(struct Scene *scene, struct Object *ob, float cfra, float ofs); void object_scale_to_mat3(struct Object *ob, float mat[][3]); void object_rot_to_mat3(struct Object *ob, float mat[][3]); +void object_mat3_to_rot(struct Object *ob, float mat[][3], int use_compat); void object_to_mat3(struct Object *ob, float mat[][3]); void object_to_mat4(struct Object *ob, float mat[][4]); +void object_apply_mat4(struct Object *ob, float mat[][4]); void set_no_parent_ipo(int val); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 9a7a3501031..676ab081533 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -1618,6 +1618,32 @@ void object_rot_to_mat3(Object *ob, float mat[][3]) mul_m3_m3m3(mat, dmat, rmat); } +void object_mat3_to_rot(Object *ob, float mat[][3], int use_compat) +{ + if (ob->rotmode == ROT_MODE_QUAT) + mat3_to_quat(ob->quat, mat); + else if (ob->rotmode == ROT_MODE_AXISANGLE) + mat3_to_axis_angle(ob->rotAxis, &ob->rotAngle, mat); + else { + if(use_compat) { + float eul[3]; + VECCOPY(eul, ob->rot); + mat3_to_compatible_eulO(ob->rot, eul, ob->rotmode, mat); + } + else + mat3_to_eulO(ob->rot, ob->rotmode, mat); + } +} + +void object_apply_mat4(Object *ob, float mat[][4]) +{ + float mat3[3][3]; + VECCOPY(ob->loc, mat[3]); + mat4_to_size(ob->size, mat); + copy_m3_m4(mat3, mat); + object_mat3_to_rot(ob, mat3, 0); +} + void object_to_mat3(Object *ob, float mat[][3]) /* no parent */ { float smat[3][3]; diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index cd2361a1cc0..a16b0f2a7ac 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -555,17 +555,7 @@ static int visual_transform_apply_exec(bContext *C, wmOperator *op) CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { where_is_object(scene, ob); - - VECCOPY(ob->loc, ob->obmat[3]); - mat4_to_size(ob->size,ob->obmat); - - if (ob->rotmode == ROT_MODE_QUAT) - mat4_to_quat(ob->quat, ob->obmat); - else if (ob->rotmode == ROT_MODE_AXISANGLE) - mat4_to_axis_angle(ob->rotAxis, &ob->rotAngle, ob->obmat); - else - mat4_to_eul(ob->rot,ob->obmat); - + object_apply_mat4(ob, ob->obmat); where_is_object(scene, ob); change = 1; diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 424ae13ca18..8fc6e365c46 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -395,6 +395,7 @@ void VIEW3D_OT_smoothview(wmOperatorType *ot) static void setcameratoview3d(View3D *v3d, RegionView3D *rv3d, Object *ob) { float dvec[3]; + float mat3[3][3]; dvec[0]= rv3d->dist*rv3d->viewinv[2][0]; dvec[1]= rv3d->dist*rv3d->viewinv[2][1]; @@ -404,7 +405,10 @@ static void setcameratoview3d(View3D *v3d, RegionView3D *rv3d, Object *ob) sub_v3_v3v3(ob->loc, ob->loc, rv3d->ofs); rv3d->viewquat[0]= -rv3d->viewquat[0]; - quat_to_eul( ob->rot,rv3d->viewquat); + // quat_to_eul( ob->rot,rv3d->viewquat); // in 2.4x for xyz eulers only + quat_to_mat3(mat3, rv3d->viewquat); + object_mat3_to_rot(ob, mat3, 0); + rv3d->viewquat[0]= -rv3d->viewquat[0]; ob->recalc= OB_RECALC_OB; @@ -1914,7 +1918,7 @@ typedef struct FlyInfo { #define FLY_CANCEL 1 #define FLY_CONFIRM 2 -int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *event) +static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *event) { float upvec[3]; // tmp float mat[3][3]; @@ -2041,7 +2045,7 @@ static int flyEnd(bContext *C, FlyInfo *fly) else if (fly->persp_backup==RV3D_CAMOB) { /* camera */ float mat3[3][3]; copy_m3_m4(mat3, v3d->camera->obmat); - mat3_to_compatible_eul( v3d->camera->rot, fly->rot_backup,mat3); + object_mat3_to_rot(v3d->camera, mat3, TRUE); DAG_id_flush_update(&v3d->camera->id, OB_RECALC_OB); #if 0 //XXX2.5 @@ -2078,7 +2082,7 @@ static int flyEnd(bContext *C, FlyInfo *fly) return OPERATOR_CANCELLED; } -void flyEvent(FlyInfo *fly, wmEvent *event) +static void flyEvent(FlyInfo *fly, wmEvent *event) { if (event->type == TIMER && event->customdata == fly->timer) { fly->redraw = 1; @@ -2201,7 +2205,7 @@ void flyEvent(FlyInfo *fly, wmEvent *event) } //int fly_exec(bContext *C, wmOperator *op) -int flyApply(FlyInfo *fly) +static int flyApply(FlyInfo *fly) { /* fly mode - Shift+F -- cgit v1.2.3 From 924122199b3f4e8c548397c9859c783514008ea2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 19 Dec 2009 14:58:24 +0000 Subject: Bugfix: doubles are not supported correctly in SDNA, double click introduced one in wmWindow.last_click_time. Moved this to the wmEvent struct, which now no is in DNA, was needed for RNA wrapping but not needed anymore. --- source/blender/makesdna/DNA_windowmanager_types.h | 39 +--------------------- source/blender/makesrna/intern/rna_wm.c | 4 +++ source/blender/windowmanager/WM_types.h | 38 +++++++++++++++++++++ .../blender/windowmanager/intern/wm_event_system.c | 28 ++++++++-------- 4 files changed, 57 insertions(+), 52 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 9e47a6f1d89..2f640d3dfd4 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -154,10 +154,7 @@ typedef struct wmWindow { short cursor; /* current mouse cursor type */ short lastcursor; /* for temp waitcursor */ short addmousemove; /* internal: tag this for extra mousemove event, makes cursors/buttons active on UI switching */ - - short last_type; /* last event information, used for click */ - short last_val; - double last_click_time; /* for double click */ + short pad2[2]; struct wmEvent *eventstate; /* storage for event system */ @@ -345,40 +342,6 @@ typedef struct wmOperator { /* wmOperator flag */ #define OP_GRAB_POINTER 1 -/* ************** wmEvent ************************ */ -/* for read-only rna access, dont save this */ - -/* each event should have full modifier state */ -/* event comes from eventmanager and from keymap */ -typedef struct wmEvent { - struct wmEvent *next, *prev; - - short type; /* event code itself (short, is also in keymap) */ - short val; /* press, release, scrollvalue */ - short x, y; /* mouse pointer position, screen coord */ - short mval[2]; /* region mouse position, name convention pre 2.5 :) */ - short prevx, prevy; /* previous mouse pointer position */ - short unicode; /* future, ghost? */ - char ascii; /* from ghost */ - char pad; - - /* modifier states */ - short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */ - short keymodifier; /* rawkey modifier */ - - short pad1; - - /* keymap item, set by handler (weak?) */ - const char *keymap_idname; - - /* custom data */ - short custom; /* custom data type, stylus, 6dof, see wm_event_types.h */ - short customdatafree; - int pad2; - void *customdata; /* ascii, unicode, mouse coords, angles, vectors, dragdrop info */ - -} wmEvent; - typedef enum wmRadialControlMode { WM_RADIALCONTROL_SIZE, WM_RADIALCONTROL_STRENGTH, diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 3d4899a0a51..ca6d8959d00 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -701,6 +701,8 @@ static void rna_def_event(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Event", "Window Manager Event"); RNA_def_struct_sdna(srna, "wmEvent"); + RNA_define_verify_sdna(0); // not in sdna + /* strings */ prop= RNA_def_property(srna, "ascii", PROP_STRING, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); @@ -764,6 +766,8 @@ static void rna_def_event(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "oskey", 1); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "OS Key", "True when the Cmd key is held."); + + RNA_define_verify_sdna(1); // not in sdna } static void rna_def_window(BlenderRNA *brna) diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 2a742b29d1c..318945918e7 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -288,6 +288,44 @@ typedef struct wmGesture { /* customdata for lasso is short array */ } wmGesture; +/* ************** wmEvent ************************ */ + +/* each event should have full modifier state */ +/* event comes from eventmanager and from keymap */ +typedef struct wmEvent { + struct wmEvent *next, *prev; + + short type; /* event code itself (short, is also in keymap) */ + short val; /* press, release, scrollvalue */ + short x, y; /* mouse pointer position, screen coord */ + short mval[2]; /* region mouse position, name convention pre 2.5 :) */ + short unicode; /* future, ghost? */ + char ascii; /* from ghost */ + char pad; + + /* previous state */ + short prevtype; + short prevval; + short prevx, prevy; + double prevclicktime; + + /* modifier states */ + short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */ + short keymodifier; /* rawkey modifier */ + + short pad1; + + /* keymap item, set by handler (weak?) */ + const char *keymap_idname; + + /* custom data */ + short custom; /* custom data type, stylus, 6dof, see wm_event_types.h */ + short customdatafree; + int pad2; + void *customdata; /* ascii, unicode, mouse coords, angles, vectors, dragdrop info */ + +} wmEvent; + /* ************** custom wmEvent data ************** */ typedef struct wmTabletData { int Active; /* 0=EVT_TABLET_NONE, 1=EVT_TABLET_STYLUS, 2=EVT_TABLET_ERASER */ diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index ac4c2709688..435f3823fed 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1177,9 +1177,9 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) if (wm_action_not_handled(action) && event->val == KM_RELEASE) { wmWindow *win = CTX_wm_window(C); - if (win && win->last_type == event->type && win->last_val == KM_PRESS) { + if (win && win->eventstate->prevtype == event->type && win->eventstate->prevval == KM_PRESS) { /* test for double click first */ - if ((PIL_check_seconds_timer() - win->last_click_time) * 1000 < U.dbl_click_time) { + if ((PIL_check_seconds_timer() - win->eventstate->prevclicktime) * 1000 < U.dbl_click_time) { event->val = KM_DBL_CLICK; action |= wm_handlers_do(C, event, handlers); } @@ -1381,26 +1381,26 @@ void wm_event_do_handlers(bContext *C) /* mousemove and timer events don't overwrite last type */ if (event->type != MOUSEMOVE && !ISTIMER(event->type)) { if (wm_action_not_handled(action)) { - if (win->last_type == event->type) { + if (win->eventstate->prevtype == event->type) { /* set click time on first click (press -> release) */ - if (win->last_val == KM_PRESS && event->val == KM_RELEASE) { - win->last_click_time = PIL_check_seconds_timer(); + if (win->eventstate->prevval == KM_PRESS && event->val == KM_RELEASE) { + win->eventstate->prevclicktime = PIL_check_seconds_timer(); } } else { /* reset click time if event type not the same */ - win->last_click_time = 0; + win->eventstate->prevclicktime = 0; } - win->last_val = event->val; - win->last_type = event->type; + win->eventstate->prevval = event->val; + win->eventstate->prevtype = event->type; } else if (event->val == KM_CLICK) { /* keep click for double click later */ - win->last_type = event->type; - win->last_val = event->val; - win->last_click_time = PIL_check_seconds_timer(); + win->eventstate->prevtype = event->type; + win->eventstate->prevval = event->val; + win->eventstate->prevclicktime = PIL_check_seconds_timer(); } else { /* reset if not */ - win->last_type = -1; - win->last_val = 0; - win->last_click_time = 0; + win->eventstate->prevtype = -1; + win->eventstate->prevval = 0; + win->eventstate->prevclicktime = 0; } } -- cgit v1.2.3 From 13848797827e65174ceea193839a91a64309796c Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sat, 19 Dec 2009 16:55:04 +0000 Subject: Fixing error introduced in commit 25428. * Preview Render didn't update in the world tab, when changing settings. --- source/blender/editors/space_buttons/space_buttons.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index f47a8792145..b1940264d80 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -328,6 +328,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) break; case NC_WORLD: buttons_area_redraw(sa, BCONTEXT_WORLD); + sbuts->preview= 1; break; case NC_LAMP: buttons_area_redraw(sa, BCONTEXT_DATA); -- cgit v1.2.3 From 0da09bd261c7303dc601fa01af02253f2e7213dd Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sat, 19 Dec 2009 21:33:25 +0000 Subject: int Type for region rna (read-only helps for debug) --- source/blender/makesrna/intern/rna_screen.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c index 2471ce3c798..883c77b3faa 100644 --- a/source/blender/makesrna/intern/rna_screen.c +++ b/source/blender/makesrna/intern/rna_screen.c @@ -152,7 +152,12 @@ static void rna_def_region(BlenderRNA *brna) prop= RNA_def_property(srna, "id", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "swinid"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Region ID", "Uniqute ID for this region."); + RNA_def_property_ui_text(prop, "Region ID", "Unique ID for this region."); + + prop= RNA_def_property(srna, "type", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "regiontype"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Region Type", "Type of this region."); prop= RNA_def_property(srna, "width", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "winx"); -- cgit v1.2.3 From ff038161f6ee255b4c60246f24315e8b911f773e Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sat, 19 Dec 2009 22:37:51 +0000 Subject: Add missing names to SpaceTypes --- source/blender/editors/space_action/space_action.c | 1 + .../blender/editors/space_buttons/space_buttons.c | 1 + .../blender/editors/space_console/space_console.c | 25 +++++++++++----------- source/blender/editors/space_file/space_file.c | 1 + source/blender/editors/space_graph/space_graph.c | 1 + source/blender/editors/space_image/space_image.c | 1 + source/blender/editors/space_info/space_info.c | 1 + source/blender/editors/space_logic/space_logic.c | 1 + source/blender/editors/space_nla/space_nla.c | 1 + source/blender/editors/space_node/space_node.c | 1 + source/blender/editors/space_script/space_script.c | 1 + .../editors/space_sequencer/space_sequencer.c | 1 + source/blender/editors/space_sound/space_sound.c | 1 + source/blender/editors/space_text/space_text.c | 1 + .../editors/space_userpref/space_userpref.c | 1 + source/blender/editors/space_view3d/space_view3d.c | 1 + 16 files changed, 28 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 08ed44a54f9..67b4d6e848b 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -416,6 +416,7 @@ void ED_spacetype_action(void) ARegionType *art; st->spaceid= SPACE_ACTION; + strncpy(st->name, "Action", BKE_ST_MAXNAME); st->new= action_new; st->free= action_free; diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index b1940264d80..9a4ac872ceb 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -359,6 +359,7 @@ void ED_spacetype_buttons(void) ARegionType *art; st->spaceid= SPACE_BUTS; + strncpy(st->name, "Buttons", BKE_ST_MAXNAME); st->new= buttons_new; st->free= buttons_free; diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c index 4d2f816ba6b..7d23421c5cf 100644 --- a/source/blender/editors/space_console/space_console.c +++ b/source/blender/editors/space_console/space_console.c @@ -326,18 +326,19 @@ static void console_main_area_listener(ScrArea *sa, wmNotifier *wmn) /* only called once, from space/spacetypes.c */ void ED_spacetype_console(void) { - SpaceType *sc= MEM_callocN(sizeof(SpaceType), "spacetype console"); + SpaceType *st= MEM_callocN(sizeof(SpaceType), "spacetype console"); ARegionType *art; - sc->spaceid= SPACE_CONSOLE; + st->spaceid= SPACE_CONSOLE; + strncpy(st->name, "Console", BKE_ST_MAXNAME); - sc->new= console_new; - sc->free= console_free; - sc->init= console_init; - sc->duplicate= console_duplicate; - sc->operatortypes= console_operatortypes; - sc->keymap= console_keymap; - sc->listener= console_main_area_listener; + st->new= console_new; + st->free= console_free; + st->init= console_init; + st->duplicate= console_duplicate; + st->operatortypes= console_operatortypes; + st->keymap= console_keymap; + st->listener= console_main_area_listener; /* regions: main window */ art= MEM_callocN(sizeof(ARegionType), "spacetype console region"); @@ -350,7 +351,7 @@ void ED_spacetype_console(void) - BLI_addhead(&sc->regiontypes, art); + BLI_addhead(&st->regiontypes, art); /* regions: header */ art= MEM_callocN(sizeof(ARegionType), "spacetype console region"); @@ -361,8 +362,8 @@ void ED_spacetype_console(void) art->init= console_header_area_init; art->draw= console_header_area_draw; - BLI_addhead(&sc->regiontypes, art); + BLI_addhead(&st->regiontypes, art); - BKE_spacetype_register(sc); + BKE_spacetype_register(st); } diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c index 939af53b87d..8714e772852 100644 --- a/source/blender/editors/space_file/space_file.c +++ b/source/blender/editors/space_file/space_file.c @@ -507,6 +507,7 @@ void ED_spacetype_file(void) ARegionType *art; st->spaceid= SPACE_FILE; + strncpy(st->name, "File", BKE_ST_MAXNAME); st->new= file_new; st->free= file_free; diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index f00215e7313..29a9186bc25 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -566,6 +566,7 @@ void ED_spacetype_ipo(void) ARegionType *art; st->spaceid= SPACE_IPO; + strncpy(st->name, "Graph", BKE_ST_MAXNAME); st->new= graph_new; st->free= graph_free; diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 58f48f6fa07..5b05c8f8944 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -530,6 +530,7 @@ void ED_spacetype_image(void) ARegionType *art; st->spaceid= SPACE_IMAGE; + strncpy(st->name, "Image", BKE_ST_MAXNAME); st->new= image_new; st->free= image_free; diff --git a/source/blender/editors/space_info/space_info.c b/source/blender/editors/space_info/space_info.c index ab10e05b204..d9662339bb2 100644 --- a/source/blender/editors/space_info/space_info.c +++ b/source/blender/editors/space_info/space_info.c @@ -182,6 +182,7 @@ void ED_spacetype_info(void) ARegionType *art; st->spaceid= SPACE_INFO; + strncpy(st->name, "Info", BKE_ST_MAXNAME); st->new= info_new; st->free= info_free; diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c index c5b18d5b40e..c2918dd0925 100644 --- a/source/blender/editors/space_logic/space_logic.c +++ b/source/blender/editors/space_logic/space_logic.c @@ -332,6 +332,7 @@ void ED_spacetype_logic(void) ARegionType *art; st->spaceid= SPACE_LOGIC; + strncpy(st->name, "Logic", BKE_ST_MAXNAME); st->new= logic_new; st->free= logic_free; diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c index a799e265b72..ddab0817c58 100644 --- a/source/blender/editors/space_nla/space_nla.c +++ b/source/blender/editors/space_nla/space_nla.c @@ -507,6 +507,7 @@ void ED_spacetype_nla(void) ARegionType *art; st->spaceid= SPACE_NLA; + strncpy(st->name, "NLA", BKE_ST_MAXNAME); st->new= nla_new; st->free= nla_free; diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index dfdd4ea6657..650390a8727 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -351,6 +351,7 @@ void ED_spacetype_node(void) ARegionType *art; st->spaceid= SPACE_NODE; + strncpy(st->name, "Node", BKE_ST_MAXNAME); st->new= node_new; st->free= node_free; diff --git a/source/blender/editors/space_script/space_script.c b/source/blender/editors/space_script/space_script.c index e6edb71c1b1..b882a3313cd 100644 --- a/source/blender/editors/space_script/space_script.c +++ b/source/blender/editors/space_script/space_script.c @@ -197,6 +197,7 @@ void ED_spacetype_script(void) ARegionType *art; st->spaceid= SPACE_SCRIPT; + strncpy(st->name, "Script", BKE_ST_MAXNAME); st->new= script_new; st->free= script_free; diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index b75b4e55ae3..25364aed5ca 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -413,6 +413,7 @@ void ED_spacetype_sequencer(void) ARegionType *art; st->spaceid= SPACE_SEQ; + strncpy(st->name, "Sequencer", BKE_ST_MAXNAME); st->new= sequencer_new; st->free= sequencer_free; diff --git a/source/blender/editors/space_sound/space_sound.c b/source/blender/editors/space_sound/space_sound.c index f2c449ffc1f..1cd5ab65c0f 100644 --- a/source/blender/editors/space_sound/space_sound.c +++ b/source/blender/editors/space_sound/space_sound.c @@ -224,6 +224,7 @@ void ED_spacetype_sound(void) ARegionType *art; st->spaceid= SPACE_SOUND; + strncpy(st->name, "Sound", BKE_ST_MAXNAME); st->new= sound_new; st->free= sound_free; diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index d657725b880..2f0e631e927 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -402,6 +402,7 @@ void ED_spacetype_text(void) ARegionType *art; st->spaceid= SPACE_TEXT; + strncpy(st->name, "Text", BKE_ST_MAXNAME); st->new= text_new; st->free= text_free; diff --git a/source/blender/editors/space_userpref/space_userpref.c b/source/blender/editors/space_userpref/space_userpref.c index da475ff4c5b..f45e08be697 100644 --- a/source/blender/editors/space_userpref/space_userpref.c +++ b/source/blender/editors/space_userpref/space_userpref.c @@ -153,6 +153,7 @@ void ED_spacetype_userpref(void) ARegionType *art; st->spaceid= SPACE_USERPREF; + strncpy(st->name, "Userpref", BKE_ST_MAXNAME); st->new= userpref_new; st->free= userpref_free; diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index e362303c3cc..b4f3605c559 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -776,6 +776,7 @@ void ED_spacetype_view3d(void) ARegionType *art; st->spaceid= SPACE_VIEW3D; + strncpy(st->name, "View3D", BKE_ST_MAXNAME); st->new= view3d_new; st->free= view3d_free; -- cgit v1.2.3 From be323efa3525031bc7b2f255543f4d57e2b5f9cc Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sat, 19 Dec 2009 22:40:45 +0000 Subject: Fix preview do_version bug (causing region type missing errors) The missing region was added to the wrong region base. Bump the subversion, new code to fix wrong region layouts saved in previous subversion and correct all old files correctly. --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenloader/intern/readfile.c | 77 +++++++++++++++++++++++------ 2 files changed, 64 insertions(+), 15 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 8a7f4da8cbf..8e7e698a986 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -43,7 +43,7 @@ struct bContext; struct ReportList; #define BLENDER_VERSION 250 -#define BLENDER_SUBVERSION 10 +#define BLENDER_SUBVERSION 11 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 9548db3278a..24e5cb67d89 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -139,6 +139,7 @@ #include "BKE_report.h" #include "BKE_sca.h" // for init_actuator #include "BKE_scene.h" +#include "BKE_screen.h" #include "BKE_softbody.h" // sbNew() #include "BKE_bullet.h" // bsbNew() #include "BKE_sequencer.h" @@ -10194,27 +10195,75 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 10)) { - { - Object *ob; - - /* properly initialise hair clothsim data on old files */ - for(ob = main->object.first; ob; ob = ob->id.next) { - ModifierData *md; - for(md= ob->modifiers.first; md; md= md->next) { - if (md->type == eModifierType_Cloth) { - ClothModifierData *clmd = (ClothModifierData *)md; - if (clmd->sim_parms->velocity_smooth < 0.01f) - clmd->sim_parms->velocity_smooth = 0.f; + Object *ob; + + /* properly initialise hair clothsim data on old files */ + for(ob = main->object.first; ob; ob = ob->id.next) { + ModifierData *md; + for(md= ob->modifiers.first; md; md= md->next) { + if (md->type == eModifierType_Cloth) { + ClothModifierData *clmd = (ClothModifierData *)md; + if (clmd->sim_parms->velocity_smooth < 0.01f) + clmd->sim_parms->velocity_smooth = 0.f; + } + } + } + } + + /* fix bad area setup in subversion 10 */ + if (main->versionfile == 250 && main->subversionfile == 10) + { + /* fix for new view type in sequencer */ + bScreen *screen; + ScrArea *sa; + SpaceLink *sl; + + + /* remove all preview window in wrong spaces */ + for(screen= main->screen.first; screen; screen= screen->id.next) { + for(sa= screen->areabase.first; sa; sa= sa->next) { + for(sl= sa->spacedata.first; sl; sl= sl->next) { + if(sl->spacetype!=SPACE_SEQ) { + ARegion *ar; + + for( ar = sl->regionbase.first; ar; ar = ar->next) { + if (ar->regiontype == RGN_TYPE_PREVIEW) + break; + } + + if (ar) { + SpaceType *st= BKE_spacetype_from_id(SPACE_SEQ); + BKE_area_region_free(st, ar); + BLI_freelinkN(&sl->regionbase, ar); + } + } + } + if(sa->spacetype!=SPACE_SEQ) { + ARegion *ar; + + for( ar = sa->regionbase.first; ar; ar = ar->next) { + if (ar->regiontype == RGN_TYPE_PREVIEW) + break; + } + + if (ar) { + SpaceType *st= BKE_spacetype_from_id(SPACE_SEQ); + BKE_area_region_free(st, ar); + BLI_freelinkN(&sa->regionbase, ar); } } } } + } + + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 11)) + { { /* fix for new view type in sequencer */ bScreen *screen; ScrArea *sa; SpaceLink *sl; - + for(screen= main->screen.first; screen; screen= screen->id.next) { for(sa= screen->areabase.first; sa; sa= sa->next) { @@ -10222,12 +10271,12 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if(sl->spacetype==SPACE_SEQ) { ARegion *ar; ARegion *ar_main; - ListBase *lb = &sa->regionbase; + ListBase *lb = &sl->regionbase; SpaceSeq *sseq = (SpaceSeq *)sl; if (sseq->view == 0) sseq->view = SEQ_VIEW_SEQUENCE; if (sseq->mainb == 0) sseq->mainb = SEQ_DRAW_IMG_IMBUF; - + ar_main = (ARegion*)lb->first; for (; ar_main; ar_main = ar_main->next) { if (ar_main->regiontype == RGN_TYPE_WINDOW) -- cgit v1.2.3 From 170c464920bdbbd4e7db3ff2b84c8550740eb2cc Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 20 Dec 2009 05:09:55 +0000 Subject: Animation Editor Code Cleanups: Removing some unused functions that have become redundant in recent times. --- source/blender/editors/animation/anim_draw.c | 58 ----------------------- source/blender/editors/animation/anim_ipo_utils.c | 31 +----------- source/blender/editors/include/ED_anim_api.h | 7 +-- source/blender/editors/space_graph/space_graph.c | 2 +- 4 files changed, 4 insertions(+), 94 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c index 3afe2bfad57..60242d3e837 100644 --- a/source/blender/editors/animation/anim_draw.c +++ b/source/blender/editors/animation/anim_draw.c @@ -315,64 +315,6 @@ void ANIM_nla_mapping_apply_fcurve (AnimData *adt, FCurve *fcu, short restore, s /* apply to F-Curve */ ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, map_cb, NULL); -} - -/* *************************************************** */ -/* ANIMATION EDITOR UI-WIDGETS */ - -/* ui button event */ -#define B_REDR 1 - -/* standard header buttons for Animation Editors */ -short ANIM_headerUI_standard_buttons (const bContext *C, bDopeSheet *ads, uiBlock *block, short xco, short yco) -{ - Main *mainptr= CTX_data_main(C); - ScrArea *sa= CTX_wm_area(C); - short nlaActive= ((sa) && (sa->spacetype==SPACE_NLA)); - - /* check if the DopeSheet data exists, just in case... */ - if (ads) { - /* more 'generic' filtering options */ - if (nlaActive) uiBlockBeginAlign(block); - uiDefIconButBitI(block, TOG, ADS_FILTER_ONLYSEL, B_REDR, ICON_RESTRICT_SELECT_OFF, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Only display selected Objects"); - if (nlaActive) uiDefIconButBitI(block, TOGN, ADS_FILTER_NLA_NOACT, B_REDR, ICON_ACTION, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Include AnimData blocks with no NLA Data"); - if (nlaActive) uiBlockEndAlign(block); - xco += 5; - - /* datatype based - only available datatypes are shown */ - uiBlockBeginAlign(block); - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOSCE, B_REDR, ICON_SCENE_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display Scene Animation"); - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOWOR, B_REDR, ICON_WORLD_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display World Animation"); - uiDefIconButBitI(block, TOGN, ADS_FILTER_NONTREE, B_REDR, ICON_NODETREE, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display Node Tree Animation"); - if (mainptr && mainptr->key.first) - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOSHAPEKEYS, B_REDR, ICON_SHAPEKEY_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display ShapeKeys"); - if (mainptr && mainptr->mat.first) - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOMAT, B_REDR, ICON_MATERIAL_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display Material Data"); - if (mainptr && mainptr->lamp.first) - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOLAM, B_REDR, ICON_LAMP_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display Lamp Data"); - if (mainptr && mainptr->camera.first) - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCAM, B_REDR, ICON_CAMERA_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display Camera Data"); - if (mainptr && mainptr->curve.first) - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCUR, B_REDR, ICON_CURVE_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display Curve Data"); - if (mainptr && mainptr->mball.first) - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOMBA, B_REDR, ICON_META_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display MetaBall Data"); - if (mainptr && mainptr->armature.first) - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOARM, B_REDR, ICON_ARMATURE_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display Armature Data"); - if (mainptr && mainptr->particle.first) - uiDefIconButBitI(block, TOGN, ADS_FILTER_NOPART, B_REDR, ICON_PARTICLE_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, "Display Particle Data"); - uiBlockEndAlign(block); - xco += 30; - } - else { - // XXX this case shouldn't happen at all... for now, just pad out same amount of space - printf("ERROR: dopesheet data not available when drawing Animation Editor header \n"); - xco += 11*XIC + 30; - } - - // TODO: include auto-snapping menu here too... - - /* return the width of the buttons */ - return xco; } /* *************************************************** */ diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c index 200c4eb3590..9e698d18105 100644 --- a/source/blender/editors/animation/anim_ipo_utils.c +++ b/source/blender/editors/animation/anim_ipo_utils.c @@ -181,39 +181,12 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) /* ------------------------------- Color Codes for F-Curve Channels ---------------------------- */ -#if 0 -/* used for FCURVE_COLOR_AUTO_RAINBOW */ -// XXX this still doesn't work too great when there are more than 32 curves (which happens most of the time) -void ipo_rainbow (int cur, int tot, float *out) -{ - float dfac, fac, sat; - - dfac= (float)(1.0/( (float)tot+1.0)); - - /* this calculation makes 2 or 4 different cycles of rainbow colors */ - // 2 different cycles - for hue - if(cur< tot/2) fac= (float)(cur*2.0f*dfac); - else fac= (float)((cur-tot/2)*2.0f*dfac +dfac); - - // third cycle with altered hue - if(tot > 32) fac= fac*1.95f; - // clamping for excessive ranges - if(fac>1.0f) fac-= 1.0f; - - // saturation adjustments for more visible range - if(fac>0.5f && fac<0.8f) sat= 0.5f; - else sat= 0.6f; - - hsv_to_rgb(fac, sat, 1.0f, out, out+1, out+2); -} -#endif - /* step between the major distinguishable color bands of the primary colors */ #define HSV_BANDWIDTH 0.3f -/* testbed for FCURVE_COLOR_AUTO_RAINBOW determination methods */ +/* used to determine the colour of F-Curves with FCURVE_COLOR_AUTO_RAINBOW set */ //void fcurve_rainbow (unsigned int cur, unsigned int tot, float *out) -void ipo_rainbow (int cur, int tot, float *out) +void getcolor_fcurve_rainbow (int cur, int tot, float *out) { float hue, val, sat, fac; int grouping; diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 9989589cf23..7f8df38741d 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -424,11 +424,6 @@ void ANIM_draw_cfra(const struct bContext *C, struct View2D *v2d, short flag); /* main call to draw preview range curtains */ void ANIM_draw_previewrange(const struct bContext *C, struct View2D *v2d); -/* ------------- Preview Range Drawing -------------- */ - -/* standard header buttons for Animation Editors */ -short ANIM_headerUI_standard_buttons(const struct bContext *C, struct bDopeSheet *ads, struct uiBlock *block, short xco, short yco); - /* ************************************************* */ /* F-MODIFIER TOOLS */ @@ -445,7 +440,7 @@ void ANIM_uiTemplate_fmodifier_draw(const struct bContext *C, struct uiLayout *l int getname_anim_fcurve(char *name, struct ID *id, struct FCurve *fcu); /* Automatically determine a color for the nth F-Curve */ -void ipo_rainbow(int cur, int tot, float *out); +void getcolor_fcurve_rainbow(int cur, int tot, float *out); /* ------------- NLA-Mapping ----------------------- */ /* anim_draw.c */ diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 29a9186bc25..c3f241ef300 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -548,7 +548,7 @@ static void graph_refresh(const bContext *C, ScrArea *sa) /* determine color 'automatically' using 'magic function' which uses the given args * of current item index + total items to determine some RGB color */ - ipo_rainbow(i, items, fcu->color); + getcolor_fcurve_rainbow(i, items, fcu->color); } break; } -- cgit v1.2.3 From 4d16275c0369fb3857d3240af55318572c4b9813 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 20 Dec 2009 10:50:40 +0000 Subject: Bugfix #20173: Crash with Weight Paint on polygons with no faces --- source/blender/editors/sculpt_paint/paint_vertex.c | 47 ++++++++++++++-------- 1 file changed, 31 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index ba9c3631728..cddfad19fa7 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -1438,22 +1438,35 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P VPaint *wp= ts->wpaint; Brush *brush = paint_brush(&wp->paint); struct WPaintData *wpd= paint_stroke_mode_data(stroke); - ViewContext *vc= &wpd->vc; - Object *ob= vc->obact; - Mesh *me= ob->data; + ViewContext *vc; + Object *ob; + Mesh *me; float mat[4][4]; float paintweight= ts->vgroup_weight; - int *indexar= wpd->indexar; + int *indexar; int totindex, index, totw, flip; float alpha; float mval[2], pressure; - + + /* cannot paint if there is no stroke data */ + if (wpd == NULL) { + // XXX: force a redraw here, since even though we can't paint, + // at least view won't freeze until stroke ends + ED_region_tag_redraw(CTX_wm_region(C)); + return; + } + + vc= &wpd->vc; + ob= vc->obact; + me= ob->data; + indexar= wpd->indexar; + view3d_operator_needs_opengl(C); - + /* load projection matrix */ wmMultMatrix(ob->obmat); wmGetSingleMatrix(mat); - wmLoadMatrix(wpd->vc.rv3d->viewmat); + wmLoadMatrix(vc->rv3d->viewmat); flip = RNA_boolean_get(itemptr, "flip"); pressure = RNA_float_get(itemptr, "pressure"); @@ -1598,13 +1611,17 @@ static void wpaint_stroke_done(bContext *C, struct PaintStroke *stroke) Object *ob= CTX_data_active_object(C); struct WPaintData *wpd= paint_stroke_mode_data(stroke); - if(wpd->vertexcosnos) - MEM_freeN(wpd->vertexcosnos); - MEM_freeN(wpd->indexar); + if(wpd) { + if(wpd->vertexcosnos) + MEM_freeN(wpd->vertexcosnos); + MEM_freeN(wpd->indexar); + + if (wpd->vgroup_validmap) + MEM_freeN(wpd->vgroup_validmap); + + MEM_freeN(wpd); + } - if (wpd->vgroup_validmap) - MEM_freeN(wpd->vgroup_validmap); - /* frees prev buffer */ copy_wpaint_prev(ts->wpaint, NULL, 0); @@ -1623,9 +1640,7 @@ static void wpaint_stroke_done(bContext *C, struct PaintStroke *stroke) } } - DAG_id_flush_update(ob->data, OB_RECALC_DATA); - - MEM_freeN(wpd); + DAG_id_flush_update(ob->data, OB_RECALC_DATA); } -- cgit v1.2.3 From 7e16ac8190bf79f8d0b40f66a835288e62e6913e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 20 Dec 2009 11:04:11 +0000 Subject: Fixes for memory leaks when exiting Blender while still in WeightPaint Mode. --- source/blender/editors/util/ed_util.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c index fc2576eef5d..e02eeebef7e 100644 --- a/source/blender/editors/util/ed_util.c +++ b/source/blender/editors/util/ed_util.c @@ -87,9 +87,16 @@ void ED_editors_exit(bContext *C) // else if(ob->type==OB_MBALL) // BLI_freelistN(&editelems); // free_editLatt(); - // free_posebuf(); + // free_posebuf(); // XXX this is still a global... } } + else if(sce->basact && sce->basact->object) { + Object *ob= sce->basact->object; + + /* if weight-painting is on, free mesh octree data */ + if(ob->mode & OB_MODE_WEIGHT_PAINT) + mesh_octree_table(ob, NULL, NULL, 'e'); + } } } -- cgit v1.2.3 From 9711c16fde22959762e829acd82fc82841a23abc Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sun, 20 Dec 2009 15:23:29 +0000 Subject: Fix do_version for new preview region (for real this time). First spacedata has empty region base and uses the one in ScrArea. Need to account for that. --- source/blender/blenloader/intern/readfile.c | 38 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 24e5cb67d89..11d34f9e69a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10225,8 +10225,16 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for(sl= sa->spacedata.first; sl; sl= sl->next) { if(sl->spacetype!=SPACE_SEQ) { ARegion *ar; + ListBase *regionbase; - for( ar = sl->regionbase.first; ar; ar = ar->next) { + if (sl == sa->spacedata.first) { + regionbase = &sa->regionbase; + } else { + regionbase = &sl->regionbase; + } + + + for( ar = regionbase->first; ar; ar = ar->next) { if (ar->regiontype == RGN_TYPE_PREVIEW) break; } @@ -10234,24 +10242,10 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if (ar) { SpaceType *st= BKE_spacetype_from_id(SPACE_SEQ); BKE_area_region_free(st, ar); - BLI_freelinkN(&sl->regionbase, ar); + BLI_freelinkN(regionbase, ar); } } } - if(sa->spacetype!=SPACE_SEQ) { - ARegion *ar; - - for( ar = sa->regionbase.first; ar; ar = ar->next) { - if (ar->regiontype == RGN_TYPE_PREVIEW) - break; - } - - if (ar) { - SpaceType *st= BKE_spacetype_from_id(SPACE_SEQ); - BKE_area_region_free(st, ar); - BLI_freelinkN(&sa->regionbase, ar); - } - } } } } @@ -10271,19 +10265,25 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if(sl->spacetype==SPACE_SEQ) { ARegion *ar; ARegion *ar_main; - ListBase *lb = &sl->regionbase; + ListBase *regionbase; SpaceSeq *sseq = (SpaceSeq *)sl; + if (sl == sa->spacedata.first) { + regionbase = &sa->regionbase; + } else { + regionbase = &sl->regionbase; + } + if (sseq->view == 0) sseq->view = SEQ_VIEW_SEQUENCE; if (sseq->mainb == 0) sseq->mainb = SEQ_DRAW_IMG_IMBUF; - ar_main = (ARegion*)lb->first; + ar_main = (ARegion*)regionbase->first; for (; ar_main; ar_main = ar_main->next) { if (ar_main->regiontype == RGN_TYPE_WINDOW) break; } ar= MEM_callocN(sizeof(ARegion), "preview area for sequencer"); - BLI_insertlinkbefore(lb, ar_main, ar); + BLI_insertlinkbefore(regionbase, ar_main, ar); ar->regiontype= RGN_TYPE_PREVIEW; ar->alignment= RGN_ALIGN_TOP; ar->flag |= RGN_FLAG_HIDDEN; -- cgit v1.2.3 From 2b69661805dff3a3dc702e4b596ae10753f9427f Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Sun, 20 Dec 2009 18:47:30 +0000 Subject: BGE fix: 3DDview not redrawing when exiting BGE CTX_wm_window_set() was resetting the CTX_wm_area(C), for the redrawing wasn't working. Changing their orders fixes it. --- source/blender/editors/space_view3d/view3d_view.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 8fc6e365c46..bbf728d31c0 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -1753,8 +1753,8 @@ static int game_engine_exec(bContext *C, wmOperator *unused) /* restore context, in case it changed in the meantime, for example by working in another window or closing it */ CTX_wm_region_set(C, prevar); - CTX_wm_area_set(C, prevsa); CTX_wm_window_set(C, prevwin); + CTX_wm_area_set(C, prevsa); RestoreState(C); //XXX restore_all_scene_cfra(scene_cfra_store); -- cgit v1.2.3 From 54c9557b8595cfd830d1491875a70f85e3f6658d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 21 Dec 2009 01:02:08 +0000 Subject: Solidify modifier for Durian (allow cloth sim on single layer and make solid after) Mostly the same as the recently added editmode tool with some extras. * Options to disable filling in the rim between inner and outer surface, since its faster not to detect this in cases where its not needed. * Option to disable high quality normal calculation, mostly noticable when operating on building walls, not needed for cloth or more organic shapes. * Option to disable 'even thickness', again, not needed in some cases. Also options for creasing inner/outer and rim edges, need this for makign Sintels cloths solid since zero crease looks far too soft. note: * UVs and VCols etc are copied to the new skin however rim faces dont get the UVs or vcols set from the faces they are created from yet. * Normals are assumed to be pointing outwards * used patch from Uncle Entity as a template since it added the DNA and RNA entries but the actual modifier from the patch wasnt used. --- source/blender/blenkernel/intern/modifier.c | 436 ++++++++++++++++++++++++++ source/blender/editors/mesh/editmesh_lib.c | 2 +- source/blender/makesdna/DNA_meshdata_types.h | 2 +- source/blender/makesdna/DNA_modifier_types.h | 17 + source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/rna_modifier.c | 71 +++++ 6 files changed, 527 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index e75203c6cde..732ba2a651e 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -5807,6 +5807,432 @@ static int softbodyModifier_dependsOnTime(ModifierData *md) return 1; } +/* Solidify */ + + +typedef struct EdgeFaceRef { + int f1; /* init as -1 */ + int f2; +} EdgeFaceRef; + +static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3]) +{ + int i, numVerts, numEdges, numFaces; + MFace *mface, *mf; + MVert *mvert, *mv; + + float (*face_nors)[3]; + float *f_no; + int calc_face_nors= 0; + + numVerts = dm->getNumVerts(dm); + numEdges = dm->getNumEdges(dm); + numFaces = dm->getNumFaces(dm); + mface = dm->getFaceArray(dm); + mvert = dm->getVertArray(dm); + + /* we don't want to overwrite any referenced layers */ + + /* + Dosnt work here! + mv = CustomData_duplicate_referenced_layer(&dm->vertData, CD_MVERT); + cddm->mvert = mv; + */ + + face_nors = CustomData_get_layer(&dm->faceData, CD_NORMAL); + if(!face_nors) { + calc_face_nors = 1; + face_nors = CustomData_add_layer(&dm->faceData, CD_NORMAL, CD_CALLOC, NULL, numFaces); + } + + mv = mvert; + mf = mface; + + { + EdgeHash *edge_hash = BLI_edgehash_new(); + EdgeHashIterator *edge_iter; + int edge_ref_count = 0; + int ed_v1, ed_v2; /* use when getting the key */ + EdgeFaceRef *edge_ref_array = MEM_callocN(numEdges * sizeof(EdgeFaceRef), "Edge Connectivity"); + EdgeFaceRef *edge_ref; + float edge_normal[3]; + + /* This function adds an edge hash if its not there, and adds the face index */ +#define NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(EDV1, EDV2); \ + edge_ref = (EdgeFaceRef *)BLI_edgehash_lookup(edge_hash, EDV1, EDV2); \ + if (!edge_ref) { \ + edge_ref = &edge_ref_array[edge_ref_count]; edge_ref_count++; \ + edge_ref->f1=i; \ + edge_ref->f2=-1; \ + BLI_edgehash_insert(edge_hash, EDV1, EDV2, edge_ref); \ + } else { \ + edge_ref->f2=i; \ + } + + for(i = 0; i < numFaces; i++, mf++) { + f_no = face_nors[i]; + + if(mf->v4) { + if(calc_face_nors) + normal_quad_v3(f_no, mv[mf->v1].co, mv[mf->v2].co, mv[mf->v3].co, mv[mf->v4].co); + + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(mf->v1, mf->v2); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(mf->v2, mf->v3); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(mf->v3, mf->v4); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(mf->v4, mf->v1); + } else { + if(calc_face_nors) + normal_tri_v3(f_no, mv[mf->v1].co, mv[mf->v2].co, mv[mf->v3].co); + + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(mf->v1, mf->v2); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(mf->v2, mf->v3); + NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(mf->v3, mf->v1); + } + } + + for(edge_iter = BLI_edgehashIterator_new(edge_hash); !BLI_edgehashIterator_isDone(edge_iter); BLI_edgehashIterator_step(edge_iter)) { + /* Get the edge vert indicies, and edge value (the face indicies that use it)*/ + BLI_edgehashIterator_getKey(edge_iter, (int*)&ed_v1, (int*)&ed_v2); + edge_ref = BLI_edgehashIterator_getValue(edge_iter); + + if (edge_ref->f2 != -1) { + /* We have 2 faces using this edge, calculate the edges normal + * using the angle between the 2 faces as a weighting */ + add_v3_v3v3(edge_normal, face_nors[edge_ref->f1], face_nors[edge_ref->f2]); + normalize_v3(edge_normal); + mul_v3_fl(edge_normal, angle_normalized_v3v3(face_nors[edge_ref->f1], face_nors[edge_ref->f2])); + } else { + /* only one face attached to that edge */ + /* an edge without another attached- the weight on this is + * undefined, M_PI/2 is 90d in radians and that seems good enough */ + VECCOPY(edge_normal, face_nors[edge_ref->f1]) + mul_v3_fl(edge_normal, M_PI/2); + } + add_v3_v3(temp_nors[ed_v1], edge_normal); + add_v3_v3(temp_nors[ed_v2], edge_normal); + } + BLI_edgehashIterator_free(edge_iter); + BLI_edgehash_free(edge_hash, NULL); + MEM_freeN(edge_ref_array); + } + + /* normalize vertex normals and assign */ + for(i = 0; i < numVerts; i++, mv++) { + if(normalize_v3(temp_nors[i]) == 0.0f) { + normal_short_to_float_v3(temp_nors[i], mv->no); + } + } +} + +static void solidifyModifier_initData(ModifierData *md) +{ + SolidifyModifierData *smd = (SolidifyModifierData*) md; + smd->offset = 0.01f; + smd->flag = MOD_SOLIDIFY_EVEN | MOD_SOLIDIFY_RIM | MOD_SOLIDIFY_NORMAL_CALC; +} + +static void solidifyModifier_copyData(ModifierData *md, ModifierData *target) +{ + SolidifyModifierData *smd = (SolidifyModifierData*) md; + SolidifyModifierData *tsmd = (SolidifyModifierData*) target; + tsmd->offset = smd->offset; + tsmd->crease_inner = smd->crease_inner; + tsmd->crease_outer = smd->crease_outer; + tsmd->crease_rim = smd->crease_rim; + strcpy(tsmd->vgroup, smd->vgroup); +} + +static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, + Object *ob, + DerivedMesh *dm, + int useRenderParams, + int isFinalCalc) +{ + int i; + DerivedMesh *result; + SolidifyModifierData *smd = (SolidifyModifierData*) md; + + MFace *mf, *mface, *orig_mface; + MEdge *ed, *medge, *orig_medge; + MVert *mv, *mvert, *orig_mvert; + + int numVerts = dm->getNumVerts(dm); + int numEdges = dm->getNumEdges(dm); + int numFaces = dm->getNumFaces(dm); + + /* use for edges */ + int *new_vert_arr= NULL; + int newFaces = 0; + + int *new_edge_arr= NULL; + int newEdges = 0; + + float (*vert_nors)[3]= NULL; + + orig_mface = dm->getFaceArray(dm); + orig_medge = dm->getEdgeArray(dm); + orig_mvert = dm->getVertArray(dm); + + if(smd->flag & MOD_SOLIDIFY_RIM) { + EdgeHash *edgehash = BLI_edgehash_new(); + EdgeHashIterator *ehi; + int v1, v2; + int *edge_users; + + for(i=0, mv=orig_mvert; iflag &= ~ME_VERT_TMP_TAG; + } + + for(i=0, ed=orig_medge; iv1, ed->v2, (void *)i); + } + + edge_users= MEM_callocN(sizeof(int) * numEdges, "solid_mod edges"); + +/* will be incorrect if an edge happens to have this many face users (very unlikely) */ +#define LARGE_NUM 1000000 + + for(i=0, mf=orig_mface; iv4) { + edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v1, mf->v2)] += mf->v1 < mf->v2 ? 1:LARGE_NUM; + edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v2, mf->v3)] += mf->v2 < mf->v3 ? 1:LARGE_NUM; + edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v3, mf->v4)] += mf->v3 < mf->v4 ? 1:LARGE_NUM; + edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v4, mf->v1)] += mf->v4 < mf->v1 ? 1:LARGE_NUM; + } + else { + edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v1, mf->v2)] += mf->v1 < mf->v2 ? 1:LARGE_NUM; + edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v2, mf->v3)] += mf->v2 < mf->v3 ? 1:LARGE_NUM; + edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v3, mf->v1)] += mf->v3 < mf->v1 ? 1:LARGE_NUM; + } + } + + new_edge_arr= MEM_callocN(sizeof(int) * numEdges, "solid_mod arr"); + + ehi= BLI_edgehashIterator_new(edgehash); + for(; !BLI_edgehashIterator_isDone(ehi); BLI_edgehashIterator_step(ehi)) { + int eidx= (int)BLI_edgehashIterator_getValue(ehi); + if(edge_users[eidx] == 1 || edge_users[eidx] == LARGE_NUM) { + BLI_edgehashIterator_getKey(ehi, &v1, &v2); + + /* we need to order the edge */ + if(edge_users[eidx] == LARGE_NUM) { + eidx= -(eidx + 1); + } + + orig_mvert[v1].flag |= ME_VERT_TMP_TAG; + orig_mvert[v2].flag |= ME_VERT_TMP_TAG; + new_edge_arr[newFaces]= eidx; + newFaces++; + } + } + BLI_edgehashIterator_free(ehi); + MEM_freeN(edge_users); + +#undef LARGE_NUM + + new_vert_arr= MEM_callocN(sizeof(int) * numVerts, "solid_mod new_varr"); + for(i=0, mv=orig_mvert; iflag & ME_VERT_TMP_TAG) { + new_vert_arr[newEdges] = i; + newEdges++; + + mv->flag &= ~ME_VERT_TMP_TAG; + } + } + + BLI_edgehash_free(edgehash, NULL); + } + + if(smd->flag & MOD_SOLIDIFY_NORMAL_CALC) { + vert_nors= MEM_callocN(sizeof(float) * numVerts * 3, "mod_solid_vno_hq"); + dm_calc_normal(dm, vert_nors); + } + + result = CDDM_from_template(dm, numVerts * 2, (numEdges * 2) + newEdges, (numFaces * 2) + newFaces); + + mface = result->getFaceArray(result); + medge = result->getEdgeArray(result); + mvert = result->getVertArray(result); + + DM_copy_face_data(dm, result, 0, 0, numFaces); + DM_copy_face_data(dm, result, 0, numFaces, numFaces); + + DM_copy_edge_data(dm, result, 0, 0, numEdges); + DM_copy_edge_data(dm, result, 0, numEdges, numEdges); + + DM_copy_vert_data(dm, result, 0, 0, numVerts); + DM_copy_vert_data(dm, result, 0, numVerts, numVerts); + + { + static int corner_indices[4] = {2, 1, 0, 3}; + int is_quad; + + for(i=0, mf=mface+numFaces; iv1 += numVerts; + mf->v2 += numVerts; + mf->v3 += numVerts; + if(mf->v4) + mf->v4 += numVerts; + + /* Flip face normal */ + { + is_quad = mf->v4; + SWAP(int, mf->v1, mf->v3); + DM_swap_face_data(result, i+numFaces, corner_indices); + test_index_face(mf, &result->faceData, numFaces, is_quad ? 4:3); + } + } + } + + for(i=0, ed=medge+numEdges; iv1 += numVerts; + ed->v2 += numVerts; + } + + if((smd->flag & MOD_SOLIDIFY_EVEN) == 0) { + /* no even thickness, very simple */ + float scalar_short = smd->offset / 32767.0f; + + if(smd->offset < 0.0f) mv= mvert+numVerts; + else mv= mvert; + + for(i=0; ico[0] += mv->no[0] * scalar_short; + mv->co[1] += mv->no[1] * scalar_short; + mv->co[2] += mv->no[2] * scalar_short; + } + } + else { + /* make a face normal layer if not present */ + float (*face_nors)[3]; + int face_nors_calc= 0; + + /* same as EM_solidify() in editmesh_lib.c */ + float *vert_angles= MEM_callocN(sizeof(float) * numVerts * 2, "mod_solid_pair"); /* 2 in 1 */ + float *vert_accum= vert_angles + numVerts; + float face_angles[4]; + int i, j, vidx; + + face_nors = CustomData_get_layer(&dm->faceData, CD_NORMAL); + if(!face_nors) { + face_nors = CustomData_add_layer(&dm->faceData, CD_NORMAL, CD_CALLOC, NULL, dm->numFaceData); + face_nors_calc= 1; + } + + if(vert_nors==NULL) { + vert_nors= MEM_mallocN(sizeof(float) * numVerts * 3, "mod_solid_vno"); + for(i=0, mv=mvert; ino); + } + } + + for(i=0, mf=mface; iv4) + normal_quad_v3(face_nors[i], mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co, mvert[mf->v4].co); + else + normal_tri_v3(face_nors[i] , mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co); + } + + if(mf->v4) { + angle_quad_v3(face_angles, mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co, mvert[mf->v4].co); + j= 3; + } + else { + angle_tri_v3(face_angles, mvert[mf->v1].co, mvert[mf->v2].co, mvert[mf->v3].co); + j= 2; + } + + for(; j>=0; j--) { + vidx = *(&mf->v1 + j); + vert_accum[vidx] += face_angles[j]; + vert_angles[vidx]+= shell_angle_to_dist(angle_normalized_v3v3(vert_nors[vidx], face_nors[i])) * face_angles[j]; + } + } + + if(smd->offset < 0.0f) mv= mvert+numVerts; + else mv= mvert; + + for(i=0; ico, vert_nors[i], smd->offset * (vert_angles[i] / vert_accum[i])); + } + } + + MEM_freeN(vert_angles); + } + + if(vert_nors) + MEM_freeN(vert_nors); + + if(smd->flag & MOD_SOLIDIFY_RIM) { + /* add faces & edges */ + ed= medge + (numEdges * 2); + for(i=0; iv1= new_vert_arr[i]; + ed->v2= new_vert_arr[i] + numVerts; + ed->flag |= ME_EDGEDRAW; + + if(smd->crease_rim) + ed->crease= smd->crease_rim * 255.0f; + } + + /* faces */ + mf= mface + (numFaces * 2); + for(i=0; iv1= ed->v1; + mf->v2= ed->v2; + mf->v3= ed->v2 + numVerts; + mf->v4= ed->v1 + numVerts; + } + else { + mf->v1= ed->v2; + mf->v2= ed->v1; + mf->v3= ed->v1 + numVerts; + mf->v4= ed->v2 + numVerts; + } + + if(smd->crease_outer > 0.0f) + ed->crease= smd->crease_outer * 255.0f; + + if(smd->crease_inner > 0.0f) { + ed= medge + (numEdges + eidx); + ed->crease= smd->crease_inner * 255.0f; + } + } + + MEM_freeN(new_vert_arr); + MEM_freeN(new_edge_arr); + } + + return result; +} + +static DerivedMesh *solidifyModifier_applyModifierEM(ModifierData *md, + Object *ob, + EditMesh *editData, + DerivedMesh *derivedData) +{ + return solidifyModifier_applyModifier(md, ob, derivedData, 0, 1); +} + /* Smoke */ static void smokeModifier_initData(ModifierData *md) @@ -8788,6 +9214,16 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type) mti->deformVertsEM = shapekeyModifier_deformVertsEM; mti->deformMatricesEM = shapekeyModifier_deformMatricesEM; + mti = INIT_TYPE(Solidify); + mti->type = eModifierTypeType_Constructive; + mti->flags = eModifierTypeFlag_AcceptsMesh + //| eModifierTypeFlag_SupportsMapping + | eModifierTypeFlag_SupportsEditmode + | eModifierTypeFlag_EnableInEditmode; + mti->initData = solidifyModifier_initData; + mti->copyData = solidifyModifier_copyData; + mti->applyModifier = solidifyModifier_applyModifier; + mti->applyModifierEM = solidifyModifier_applyModifierEM; typeArrInit = 0; #undef INIT_TYPE } diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index 45244407909..1b90dbc3902 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -2409,7 +2409,7 @@ void EM_solidify(EditMesh *em, float dist) EditFace *efa; EditVert *eve; float *vert_angles= MEM_callocN(sizeof(float) * em->totvert * 2, "EM_solidify"); /* 2 in 1 */ - float *vert_accum= vert_accum= vert_angles + em->totvert; + float *vert_accum= vert_angles + em->totvert; float face_angles[4]; int i, j; diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h index 48e361afdae..ca5093ec09d 100644 --- a/source/blender/makesdna/DNA_meshdata_types.h +++ b/source/blender/makesdna/DNA_meshdata_types.h @@ -183,7 +183,7 @@ typedef struct PartialVisibility { /* mvert->flag (1=SELECT) */ #define ME_SPHERETEST 2 -#define ME_SPHERETEMP 4 +#define ME_VERT_TMP_TAG 4 #define ME_HIDE 16 #define ME_VERT_MERGED (1<<6) #define ME_VERT_PBVH_UPDATE (1<<7) diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index c599c8a7e0f..2491e58f176 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -64,6 +64,7 @@ typedef enum ModifierType { eModifierType_Surface, eModifierType_Smoke, eModifierType_ShapeKey, + eModifierType_Solidify, NUM_MODIFIER_TYPES } ModifierType; @@ -675,4 +676,20 @@ typedef struct ShapeKeyModifierData { ModifierData modifier; } ShapeKeyModifierData; +typedef struct SolidifyModifierData { + ModifierData modifier; + + char vgroup[32]; /* name of vertex group to use */ + float offset; /* new surface offset level*/ + float crease_inner; + float crease_outer; + float crease_rim; + int flag; + char pad[4]; +} SolidifyModifierData; + +#define MOD_SOLIDIFY_RIM (1<<0) +#define MOD_SOLIDIFY_EVEN (1<<1) +#define MOD_SOLIDIFY_NORMAL_CALC (1<<2) + #endif diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index c3f23e799d5..96921ba2f48 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -417,6 +417,7 @@ extern StructRNA RNA_SmokeModifier; extern StructRNA RNA_SmoothModifier; extern StructRNA RNA_SoftBodyModifier; extern StructRNA RNA_SoftBodySettings; +extern StructRNA RNA_SolidifyModifier; extern StructRNA RNA_Sound; extern StructRNA RNA_SoundSequence; extern StructRNA RNA_Space; diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index dcbc2672bcb..c6aef8df407 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -57,6 +57,7 @@ EnumPropertyItem modifier_type_items[] ={ {eModifierType_Multires, "MULTIRES", ICON_MOD_MULTIRES, "Multiresolution", ""}, {eModifierType_Subsurf, "SUBSURF", ICON_MOD_SUBSURF, "Subdivision Surface", ""}, {eModifierType_UVProject, "UV_PROJECT", ICON_MOD_UVPROJECT, "UV Project", ""}, + {eModifierType_Solidify, "SOLIDIFY", ICON_MOD_DISPLACE, "Solidify", ""}, {0, "", 0, "Deform", ""}, {eModifierType_Armature, "ARMATURE", ICON_MOD_ARMATURE, "Armature", ""}, {eModifierType_Cast, "CAST", ICON_MOD_CAST, "Cast", ""}, @@ -161,6 +162,8 @@ static StructRNA* rna_Modifier_refine(struct PointerRNA *ptr) return &RNA_SurfaceModifier; case eModifierType_Smoke: return &RNA_SmokeModifier; + case eModifierType_Solidify: + return &RNA_SolidifyModifier; default: return &RNA_Modifier; } @@ -322,6 +325,12 @@ static void rna_CastModifier_vgroup_set(PointerRNA *ptr, const char *value) rna_object_vgroup_name_set(ptr, value, lmd->defgrp_name, sizeof(lmd->defgrp_name)); } +static void rna_SolidifyModifier_vgroup_set(PointerRNA *ptr, const char *value) +{ + SolidifyModifierData *smd= (SolidifyModifierData*)ptr->data; + rna_object_vgroup_name_set(ptr, value, smd->vgroup, sizeof(smd->vgroup)); +} + static void rna_DisplaceModifier_uvlayer_set(PointerRNA *ptr, const char *value) { DisplaceModifierData *smd= (DisplaceModifierData*)ptr->data; @@ -2000,6 +2009,67 @@ static void rna_def_modifier_surface(BlenderRNA *brna) RNA_def_struct_sdna(srna, "SurfaceModifierData"); RNA_def_struct_ui_icon(srna, ICON_MOD_PHYSICS); } + +static void rna_def_modifier_solidify(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "SolidifyModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Solidify Modifier", "Create a solid skin by extruding, compensating for sharp angles."); + RNA_def_struct_sdna(srna, "SolidifyModifierData"); + RNA_def_struct_ui_icon(srna, ICON_MOD_DISPLACE); + + prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "offset"); + RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); + RNA_def_property_ui_range(prop, -10, 10, 0.1, 4); + RNA_def_property_ui_text(prop, "Thickness", "Thickness of the shell."); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "edge_crease_inner", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "crease_inner"); + RNA_def_property_range(prop, 0, 1); + RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); + RNA_def_property_ui_text(prop, "Inner Crease", "Assign a crease to inner edges."); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "edge_crease_outer", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "crease_outer"); + RNA_def_property_range(prop, 0, 1); + RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); + RNA_def_property_ui_text(prop, "Outer Crease", "Assign a crease to outer edges."); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "edge_crease_rim", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "crease_rim"); + RNA_def_property_range(prop, 0, 1); + RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); + RNA_def_property_ui_text(prop, "Rim Crease", "Assign a crease to the edges making up the rim."); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "vgroup"); + RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name."); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SolidifyModifier_vgroup_set"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "use_rim", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SOLIDIFY_RIM); + RNA_def_property_ui_text(prop, "Fill Rim", "Create edge loops between the inner and outer surfaces on face edges (slow, disable when not needed)"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "use_even_offset", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SOLIDIFY_EVEN); + RNA_def_property_ui_text(prop, "Even Thickness", "Maintain thickness by adjusting for sharp corners (slow, disable when not needed)"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "use_quality_normals", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SOLIDIFY_NORMAL_CALC); + RNA_def_property_ui_text(prop, "High Quality Normals", "Calculate normals which result in more even thickness (slow, disable when not needed)"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); +} + void RNA_def_modifier(BlenderRNA *brna) { StructRNA *srna; @@ -2087,6 +2157,7 @@ void RNA_def_modifier(BlenderRNA *brna) rna_def_modifier_multires(brna); rna_def_modifier_surface(brna); rna_def_modifier_smoke(brna); + rna_def_modifier_solidify(brna); } #endif -- cgit v1.2.3 From e2f7a331134921a42be4b7f3d773fe2969fffa3d Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 21 Dec 2009 01:44:33 +0000 Subject: Missing id assignment for kmi creation function (2 out of 3 isn't good enough). --- source/blender/windowmanager/intern/wm_keymap.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 116bc263d71..7de7b3c45e1 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -185,6 +185,11 @@ wmKeyMapItem *WM_keymap_verify_item(wmKeyMap *keymap, char *idname, int type, in BLI_addtail(&keymap->items, kmi); BLI_strncpy(kmi->idname, idname, OP_MAX_TYPENAME); + if ((keymap->flag & KEYMAP_USER) == 0) { + keymap->kmi_id++; + kmi->id = keymap->kmi_id; + } + keymap_event_set(kmi, type, val, modifier, keymodifier); keymap_properties_set(kmi); } -- cgit v1.2.3 From 5affd02156e0c00df1bb2aff43df71b906b88e8c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 21 Dec 2009 02:39:39 +0000 Subject: Quicky Loopcut patch: In addition to the existing scrollwheel up/down, PageUp/Down can now be used to set the number of cuts while previewing the cut location. --- source/blender/editors/mesh/loopcut.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c index 72bd4ee3541..9fea0d08e70 100644 --- a/source/blender/editors/mesh/loopcut.c +++ b/source/blender/editors/mesh/loopcut.c @@ -409,18 +409,24 @@ static int ringsel_modal (bContext *C, wmOperator *op, wmEvent *event) ED_region_tag_redraw(lcd->ar); break; case WHEELUPMOUSE: /* change number of cuts */ - cuts++; - RNA_int_set(op->ptr,"number_cuts",cuts); - ringsel_find_edge(lcd, C, lcd->ar, cuts); - - ED_region_tag_redraw(lcd->ar); + case PAGEUPKEY: + if (event->val == KM_PRESS) { + cuts++; + RNA_int_set(op->ptr,"number_cuts",cuts); + ringsel_find_edge(lcd, C, lcd->ar, cuts); + + ED_region_tag_redraw(lcd->ar); + } break; case WHEELDOWNMOUSE: /* change number of cuts */ - cuts=MAX2(cuts-1,1); - RNA_int_set(op->ptr,"number_cuts",cuts); - ringsel_find_edge(lcd, C, lcd->ar,cuts); - - ED_region_tag_redraw(lcd->ar); + case PAGEDOWNKEY: + if (event->val == KM_PRESS) { + cuts=MAX2(cuts-1,1); + RNA_int_set(op->ptr,"number_cuts",cuts); + ringsel_find_edge(lcd, C, lcd->ar,cuts); + + ED_region_tag_redraw(lcd->ar); + } break; case MOUSEMOVE: { /* mouse moved somewhere to select another loop */ int dist = 75; -- cgit v1.2.3 From 824b76332202c33da0a9ec6fe803e4eb752618d5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 21 Dec 2009 08:37:30 +0000 Subject: solidify modifier - rim faces now copy values from the faces they extrude from (material, face flags but not uvs or vcols yet) this doesnt work in editmode yet. --- source/blender/blenkernel/intern/modifier.c | 63 ++++++++++++++++++----------- 1 file changed, 40 insertions(+), 23 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 732ba2a651e..e4728602d65 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -5967,6 +5967,8 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, int *new_edge_arr= NULL; int newEdges = 0; + int *edge_users= NULL; + float (*vert_nors)[3]= NULL; orig_mface = dm->getFaceArray(dm); @@ -5977,7 +5979,7 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, EdgeHash *edgehash = BLI_edgehash_new(); EdgeHashIterator *ehi; int v1, v2; - int *edge_users; + int edu, eidx; for(i=0, mv=orig_mvert; iflag &= ~ME_VERT_TMP_TAG; @@ -5987,38 +5989,47 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, BLI_edgehash_insert(edgehash, ed->v1, ed->v2, (void *)i); } - edge_users= MEM_callocN(sizeof(int) * numEdges, "solid_mod edges"); +#define INVALID_UNUSED -1 +#define INVALID_PAIR -2 + +#define ADD_EDGE_USER(_v1, _v2) \ + eidx= GET_INT_FROM_POINTER(BLI_edgehash_lookup(edgehash, _v1, _v2)); \ + if(edge_users[eidx] == INVALID_UNUSED) { \ + edge_users[eidx]= (_v1 < _v2) ? i:(i+numFaces); \ + } else { \ + edge_users[eidx]= INVALID_PAIR; \ + } \ -/* will be incorrect if an edge happens to have this many face users (very unlikely) */ -#define LARGE_NUM 1000000 + + edge_users= MEM_mallocN(sizeof(int) * numEdges, "solid_mod edges"); + memset(edge_users, INVALID_UNUSED, sizeof(int) * numEdges); for(i=0, mf=orig_mface; iv4) { - edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v1, mf->v2)] += mf->v1 < mf->v2 ? 1:LARGE_NUM; - edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v2, mf->v3)] += mf->v2 < mf->v3 ? 1:LARGE_NUM; - edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v3, mf->v4)] += mf->v3 < mf->v4 ? 1:LARGE_NUM; - edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v4, mf->v1)] += mf->v4 < mf->v1 ? 1:LARGE_NUM; + ADD_EDGE_USER(mf->v1, mf->v2); + ADD_EDGE_USER(mf->v2, mf->v3); + ADD_EDGE_USER(mf->v3, mf->v4); + ADD_EDGE_USER(mf->v4, mf->v1); } else { - edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v1, mf->v2)] += mf->v1 < mf->v2 ? 1:LARGE_NUM; - edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v2, mf->v3)] += mf->v2 < mf->v3 ? 1:LARGE_NUM; - edge_users[(int)BLI_edgehash_lookup(edgehash, mf->v3, mf->v1)] += mf->v3 < mf->v1 ? 1:LARGE_NUM; + ADD_EDGE_USER(mf->v1, mf->v2); + ADD_EDGE_USER(mf->v2, mf->v3); + ADD_EDGE_USER(mf->v3, mf->v1); } } +#undef ADD_EDGE_USER +#undef INVALID_UNUSED +#undef INVALID_PAIR + + new_edge_arr= MEM_callocN(sizeof(int) * numEdges, "solid_mod arr"); ehi= BLI_edgehashIterator_new(edgehash); for(; !BLI_edgehashIterator_isDone(ehi); BLI_edgehashIterator_step(ehi)) { - int eidx= (int)BLI_edgehashIterator_getValue(ehi); - if(edge_users[eidx] == 1 || edge_users[eidx] == LARGE_NUM) { + int eidx= GET_INT_FROM_POINTER(BLI_edgehashIterator_getValue(ehi)); + if(edge_users[eidx] >= 0) { BLI_edgehashIterator_getKey(ehi, &v1, &v2); - - /* we need to order the edge */ - if(edge_users[eidx] == LARGE_NUM) { - eidx= -(eidx + 1); - } - orig_mvert[v1].flag |= ME_VERT_TMP_TAG; orig_mvert[v2].flag |= ME_VERT_TMP_TAG; new_edge_arr[newFaces]= eidx; @@ -6026,9 +6037,8 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, } } BLI_edgehashIterator_free(ehi); - MEM_freeN(edge_users); -#undef LARGE_NUM + new_vert_arr= MEM_callocN(sizeof(int) * numVerts, "solid_mod new_varr"); for(i=0, mv=orig_mvert; i= numFaces) { + fidx -= numFaces; flip= 1; } else { @@ -6196,6 +6207,9 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, ed= medge + eidx; + /* copy most of the face settings */ + *mf= mface[fidx]; + if(flip) { mf->v1= ed->v1; mf->v2= ed->v2; @@ -6207,6 +6221,8 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, mf->v2= ed->v1; mf->v3= ed->v1 + numVerts; mf->v4= ed->v2 + numVerts; + + } if(smd->crease_outer > 0.0f) @@ -6220,6 +6236,7 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, MEM_freeN(new_vert_arr); MEM_freeN(new_edge_arr); + MEM_freeN(edge_users); } return result; -- cgit v1.2.3 From 0fcfe8993e63d2490320cf90a0e2567588ea54f6 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 21 Dec 2009 09:52:43 +0000 Subject: Animation Editors - Durian Request - Selection Syncing: This commit brings back the functionality whereby the selection of F-Curves and/or relevant Group(s) is synced with the selection status of the corresponding bones when the bones are selected/deselected. --- source/blender/editors/animation/anim_deps.c | 241 +++++++++++++-------- source/blender/editors/include/ED_anim_api.h | 5 +- source/blender/editors/space_action/space_action.c | 48 ++-- source/blender/editors/space_graph/space_graph.c | 29 ++- 4 files changed, 197 insertions(+), 126 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c index 0e81dab380c..1d7483d661f 100644 --- a/source/blender/editors/animation/anim_deps.c +++ b/source/blender/editors/animation/anim_deps.c @@ -27,25 +27,30 @@ */ #include +#include #include #include "MEM_guardedalloc.h" -#include "DNA_action_types.h" #include "DNA_anim_types.h" +#include "DNA_action_types.h" #include "DNA_armature_types.h" #include "DNA_object_types.h" +#include "DNA_node_types.h" #include "DNA_scene_types.h" +#include "DNA_sequence_types.h" #include "BLI_blenlib.h" -#include "BKE_action.h" #include "BKE_animsys.h" +#include "BKE_action.h" #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_global.h" #include "BKE_main.h" +#include "BKE_node.h" #include "BKE_scene.h" +#include "BKE_sequencer.h" #include "BKE_screen.h" #include "BKE_utildefines.h" @@ -58,8 +63,11 @@ #include "WM_api.h" #include "WM_types.h" +/* **************************** depsgraph tagging ******************************** */ + /* tags the given anim list element for refreshes (if applicable) - * due to Animation Editor editing */ + * due to Animation Editor editing + */ void ANIM_list_elem_update(Scene *scene, bAnimListElem *ale) { ID *id; @@ -67,24 +75,24 @@ void ANIM_list_elem_update(Scene *scene, bAnimListElem *ale) AnimData *adt; id= ale->id; - if(!id) + if (!id) return; /* tag AnimData for refresh so that other views will update in realtime with these changes */ adt= BKE_animdata_from_id(id); - if(adt) + if (adt) adt->recalc |= ADT_RECALC_ANIM; /* update data */ fcu= (ale->datatype == ALE_FCURVE)? ale->key_data: NULL; - if(fcu && fcu->rna_path) { + if (fcu && fcu->rna_path) { /* if we have an fcurve, call the update for the property we are editing, this is then expected to do the proper redraws and depsgraph updates */ PointerRNA id_ptr, ptr; PropertyRNA *prop; - + RNA_id_pointer_create(id, &id_ptr); if(RNA_path_resolve(&id_ptr, fcu->rna_path, &ptr, &prop)) @@ -101,7 +109,7 @@ void ANIM_list_elem_update(Scene *scene, bAnimListElem *ale) * Animation Editor editing */ void ANIM_id_update(Scene *scene, ID *id) { - if(id) { + if (id) { AnimData *adt= BKE_animdata_from_id(id); /* tag AnimData for refresh so that other views will update in realtime with these changes */ @@ -113,103 +121,162 @@ void ANIM_id_update(Scene *scene, ID *id) } } -/* **************************** pose <-> action syncing ******************************** */ -/* Summary of what needs to be synced between poses and actions: - * 1) Flags - * a) Visibility (only for pose to action) - * b) Selection status (both ways) - * 2) Group settings (only for pose to action) - do we also need to make sure same groups exist? - * 3) Grouping (only for pose to action for now) - */ - - -/* Notifier from Action/Dopesheet (this may be extended to include other things such as Python...) - * Channels in action changed, so update pose channels/groups to reflect changes. +/* **************************** animation data <-> data syncing ******************************** */ +/* This code here is used to synchronise the + * - selection (to find selected data easier) + * - ... (insert other relevant items here later) + * status in relevant Blender data with the status stored in animation channels. * - * An object (usually 'active' Object) needs to be supplied, so that its Pose-Channels can be synced with - * the channels in its active Action. + * This should be called in the refresh() callbacks for various editors in + * response to appropriate notifiers. */ -void ANIM_action_to_pose_sync (Object *ob) + +/* perform syncing updates for Action Groups */ +static void animchan_sync_group (bAnimContext *ac, bAnimListElem *ale) { -#if 0 - AnimData *adt= ob->adt; - bAction *act= adt->act; - FCurve *fcu; - bPoseChannel *pchan; + bActionGroup *agrp= (bActionGroup *)ale->data; + ID *owner_id= ale->id; - /* error checking */ - if (ELEM3(NULL, ob, ob->adt, ob->pose) || (ob->type != OB_ARMATURE)) + /* major priority is selection status + * so we need both a group and an owner + */ + if (ELEM(NULL, agrp, owner_id)) return; - - /* 1b) loop through all Action-Channels (there should be fewer channels to search through here in general) */ - for (achan= act->chanbase.first; achan; achan= achan->next) { - /* find matching pose-channel */ - pchan= get_pose_channel(ob->pose, achan->name); - /* sync active and selected flags */ - if (pchan && pchan->bone) { - /* selection */ - if (achan->flag & ACHAN_SELECTED) - pchan->bone->flag |= BONE_SELECTED; - else - pchan->bone->flag &= ~BONE_SELECTED; + /* for standard Objects, check if group is the name of some bone */ + if (GS(owner_id->name) == ID_OB) { + Object *ob= (Object *)owner_id; + + /* check if there are bones, and whether the name matches any + * NOTE: this feature will only really work if groups by default contain the F-Curves for a single bone + */ + if (ob->pose) { + bPoseChannel *pchan= get_pose_channel(ob->pose, agrp->name); - /* active */ - if (achan->flag & ACHAN_HILIGHTED) - pchan->bone->flag |= BONE_ACTIVE; - else - pchan->bone->flag &= ~BONE_ACTIVE; + /* if one matches, sync the selection status */ + if (pchan) { + if (pchan->bone->flag & BONE_SELECTED) + agrp->flag |= AGRP_SELECTED; + else + agrp->flag &= ~AGRP_SELECTED; + } } } - - // TODO: add grouping changes too? For now, these tools aren't exposed to users in animation editors yet... -#endif -} +} -/* Notifier from 3D-View/Outliner (this is likely to include other sources too...) - * Pose channels/groups changed, so update action channels - * - * An object (usually 'active' Object) needs to be supplied, so that its Pose-Channels can be synced with - * the channels in its active Action. - */ -void ANIM_pose_to_action_sync (Object *ob, ScrArea *sa) +/* perform syncing updates for F-Curves */ +static void animchan_sync_fcurve (bAnimContext *ac, bAnimListElem *ale) { -#if 0 // XXX old animation system - SpaceAction *saction= (SpaceAction *)sa->spacedata.first; - bArmature *arm= (bArmature *)ob->data; - bAction *act= (bAction *)ob->action; - bActionChannel *achan; - //bActionGroup *agrp, *bgrp; - bPoseChannel *pchan; + FCurve *fcu= (FCurve *)ale->data; + ID *owner_id= ale->id; - /* error checking */ - if ((ob == NULL) || (ob->type != OB_ARMATURE) || ELEM3(NULL, arm, act, ob->pose)) + /* major priority is selection status, so refer to the checks done in anim_filter.c + * skip_fcurve_selected_data() for reference about what's going on here... + */ + if (ELEM3(NULL, fcu, fcu->rna_path, owner_id)) return; - /* 1) loop through all Action-Channels (there should be fewer channels to search through here in general) */ - for (achan= act->chanbase.first; achan; achan= achan->next) { - /* find matching pose-channel */ - pchan= get_pose_channel(ob->pose, achan->name); + if (GS(owner_id->name) == ID_OB) { + Object *ob= (Object *)owner_id; + + /* only affect if F-Curve involves pose.bones */ + if ((fcu->rna_path) && strstr(fcu->rna_path, "pose.bones")) { + bPoseChannel *pchan; + char *bone_name; + + /* get bone-name, and check if this bone is selected */ + bone_name= BLI_getQuotedStr(fcu->rna_path, "pose.bones["); + pchan= get_pose_channel(ob->pose, bone_name); + if (bone_name) MEM_freeN(bone_name); + + /* F-Curve selection depends on whether the bone is selected */ + if ((pchan) && (pchan->bone)) { + if (pchan->bone->flag & BONE_SELECTED) + fcu->flag |= FCURVE_SELECTED; + else + fcu->flag &= ~FCURVE_SELECTED; + } + } + } + else if (GS(owner_id->name) == ID_SCE) { + Scene *scene = (Scene *)owner_id; + + /* only affect if F-Curve involves sequence_editor.sequences */ + if ((fcu->rna_path) && strstr(fcu->rna_path, "sequences_all")) { + Editing *ed= seq_give_editing(scene, FALSE); + Sequence *seq; + char *seq_name; + + /* get strip name, and check if this strip is selected */ + seq_name= BLI_getQuotedStr(fcu->rna_path, "sequences_all["); + seq = get_seq_by_name(ed->seqbasep, seq_name, FALSE); + if (seq_name) MEM_freeN(seq_name); + + /* can only add this F-Curve if it is selected */ + if (seq) { + if (seq->flag & SELECT) + fcu->flag |= FCURVE_SELECTED; + else + fcu->flag &= ~FCURVE_SELECTED; + } + } + } + else if (GS(owner_id->name) == ID_NT) { + bNodeTree *ntree = (bNodeTree *)owner_id; - /* sync selection and visibility settings */ - if (pchan && pchan->bone) { - /* visibility - if layer is hidden, or if bone itself is hidden */ - if (!(saction->flag & SACTION_NOHIDE) && !(saction->pin)) { - if (!(pchan->bone->layer & arm->layer) || (pchan->bone->flag & BONE_HIDDEN_P)) - achan->flag |= ACHAN_HIDDEN; + /* check for selected nodes */ + if ((fcu->rna_path) && strstr(fcu->rna_path, "nodes")) { + bNode *node; + char *node_name; + + /* get strip name, and check if this strip is selected */ + node_name= BLI_getQuotedStr(fcu->rna_path, "nodes["); + node = nodeFindNodebyName(ntree, node_name); + if (node_name) MEM_freeN(node_name); + + /* can only add this F-Curve if it is selected */ + if (node) { + if (node->flag & NODE_SELECT) + fcu->flag |= FCURVE_SELECTED; else - achan->flag &= ~ACHAN_HIDDEN; + fcu->flag &= ~FCURVE_SELECTED; } - - /* selection */ - if (pchan->bone->flag & BONE_SELECTED) - achan->flag |= ACHAN_SELECTED; - else - achan->flag &= ~ACHAN_SELECTED; + } + } +} + +/* ---------------- */ + +/* Main call to be exported to animation editors */ +void ANIM_sync_animchannels_to_data (const bContext *C) +{ + bAnimContext ac; + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + /* get animation context info for filtering the channels */ + // TODO: check on whether we need to set the area specially instead, since active area might not be ok? + if (ANIM_animdata_get_context(C, &ac) == 0) + return; + + /* filter data */ + /* NOTE: we want all channels, since we want to be able to set selection status on some of them even when collapsed */ + filter= ANIMFILTER_CHANNELS; + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* flush settings as appropriate depending on the types of the channels */ + for (ale= anim_data.first; ale; ale= ale->next) { + switch (ale->type) { + case ANIMTYPE_GROUP: + animchan_sync_group(&ac, ale); + break; + + case ANIMTYPE_FCURVE: + animchan_sync_fcurve(&ac, ale); + break; } } - // XXX step 2 needs to be coded still... currently missing action/bone group API to do any more work here... - // XXX step 3 needs to be coded still... it's a messy case to deal with (we'll use the temp indices for this?) -#endif // XXX old animation system + BLI_freelistN(&anim_data); } diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 7f8df38741d..48e2eff0d31 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -494,9 +494,8 @@ void ED_nla_postop_refresh(bAnimContext *ac); void ANIM_id_update(struct Scene *scene, struct ID *id); void ANIM_list_elem_update(struct Scene *scene, bAnimListElem *ale); -/* pose <-> action syncing */ -void ANIM_action_to_pose_sync(struct Object *ob); -void ANIM_pose_to_action_sync(struct Object *ob, struct ScrArea *sa); +/* data -> channels syncing */ +void ANIM_sync_animchannels_to_data(const struct bContext *C); /* ************************************************* */ /* OPERATORS */ diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 67b4d6e848b..1bc300395ca 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -356,25 +356,31 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn) /* context changes */ switch (wmn->category) { case NC_ANIMATION: - ED_area_tag_refresh(sa); + ED_area_tag_redraw(sa); break; case NC_SCENE: - /*switch (wmn->data) { - case ND_OB_ACTIVE: + switch (wmn->data) { + case ND_OB_ACTIVE: /* selection changed, so force refresh to flush */ case ND_OB_SELECT: ED_area_tag_refresh(sa); break; - }*/ - ED_area_tag_refresh(sa); + + default: /* just redrawing the view will do */ + ED_area_tag_redraw(sa); + break; + } break; case NC_OBJECT: - /*switch (wmn->data) { - case ND_BONE_SELECT: + switch (wmn->data) { + case ND_BONE_SELECT: /* selection changed, so force refresh to flush */ case ND_BONE_ACTIVE: ED_area_tag_refresh(sa); break; - }*/ - ED_area_tag_refresh(sa); + + default: /* just redrawing the view will do */ + ED_area_tag_redraw(sa); + break; + } break; case NC_SPACE: if(wmn->data == ND_SPACE_DOPESHEET) @@ -385,25 +391,11 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn) static void action_refresh(const bContext *C, ScrArea *sa) { - SpaceAction *saction = (SpaceAction *)sa->spacedata.first; - - /* updates to data needed depends on Action Editor mode... */ - switch (saction->mode) { - case SACTCONT_DOPESHEET: /* DopeSheet - for now, just all armatures... */ - { - - } - break; - - case SACTCONT_ACTION: /* Action Editor - just active object will do */ - { - Object *ob= CTX_data_active_object(C); - - /* sync changes to bones to the corresponding action channels */ - ANIM_pose_to_action_sync(ob, sa); - } - break; - } + //SpaceAction *saction= CTX_wm_space_action(C); + + /* update the state of the animchannels in response to changes from the data they represent */ + // TODO: check if we don't want this to happen + ANIM_sync_animchannels_to_data(C); /* region updates? */ // XXX resizing y-extents of tot should go here? diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index c3f241ef300..8902f4df314 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -434,25 +434,34 @@ static void graph_listener(ScrArea *sa, wmNotifier *wmn) /* context changes */ switch (wmn->category) { case NC_ANIMATION: + /* unlike for DopeSheet, we want refresh not redraw here, + * since F-Curve colors may need setting + */ ED_area_tag_refresh(sa); break; case NC_SCENE: - /*switch (wmn->data) { - case ND_OB_ACTIVE: + switch (wmn->data) { + case ND_OB_ACTIVE: /* selection changed, so force refresh to flush */ case ND_OB_SELECT: ED_area_tag_refresh(sa); break; - }*/ - ED_area_tag_refresh(sa); + + default: /* just redrawing the view will do */ + ED_area_tag_redraw(sa); + break; + } break; case NC_OBJECT: - /*switch (wmn->data) { - case ND_BONE_SELECT: + switch (wmn->data) { + case ND_BONE_SELECT: /* selection changed, so force refresh to flush */ case ND_BONE_ACTIVE: ED_area_tag_refresh(sa); break; - }*/ - ED_area_tag_refresh(sa); + + default: /* just redrawing the view will do */ + ED_area_tag_redraw(sa); + break; + } break; case NC_SPACE: if(wmn->data == ND_SPACE_GRAPH) @@ -489,6 +498,10 @@ static void graph_refresh(const bContext *C, ScrArea *sa) /* region updates? */ // XXX resizing y-extents of tot should go here? + /* update the state of the animchannels in response to changes from the data they represent */ + // TODO: check if we don't want this to happen + ANIM_sync_animchannels_to_data(C); + /* init/adjust F-Curve colors */ if (ANIM_animdata_get_context(C, &ac)) { ListBase anim_data = {NULL, NULL}; -- cgit v1.2.3 From f7f06d96f3c13623448d899e1fe2577ed6cbf996 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 21 Dec 2009 10:16:04 +0000 Subject: Solidify rim faces now get face data from the faces they extrude from, (UV and VCol support) --- source/blender/blenkernel/intern/modifier.c | 38 ++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 12 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index e4728602d65..e0640a76f43 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -5968,6 +5968,7 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, int newEdges = 0; int *edge_users= NULL; + char *edge_order= NULL; float (*vert_nors)[3]= NULL; @@ -5979,42 +5980,44 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, EdgeHash *edgehash = BLI_edgehash_new(); EdgeHashIterator *ehi; int v1, v2; - int edu, eidx; + int eidx; for(i=0, mv=orig_mvert; iflag &= ~ME_VERT_TMP_TAG; } for(i=0, ed=orig_medge; iv1, ed->v2, (void *)i); + BLI_edgehash_insert(edgehash, ed->v1, ed->v2, SET_INT_IN_POINTER(i)); } #define INVALID_UNUSED -1 #define INVALID_PAIR -2 -#define ADD_EDGE_USER(_v1, _v2) \ +#define ADD_EDGE_USER(_v1, _v2, edge_ord) \ eidx= GET_INT_FROM_POINTER(BLI_edgehash_lookup(edgehash, _v1, _v2)); \ if(edge_users[eidx] == INVALID_UNUSED) { \ edge_users[eidx]= (_v1 < _v2) ? i:(i+numFaces); \ + edge_order[eidx]= edge_ord; \ } else { \ edge_users[eidx]= INVALID_PAIR; \ } \ edge_users= MEM_mallocN(sizeof(int) * numEdges, "solid_mod edges"); + edge_order= MEM_mallocN(sizeof(char) * numEdges, "solid_mod eorder"); memset(edge_users, INVALID_UNUSED, sizeof(int) * numEdges); for(i=0, mf=orig_mface; iv4) { - ADD_EDGE_USER(mf->v1, mf->v2); - ADD_EDGE_USER(mf->v2, mf->v3); - ADD_EDGE_USER(mf->v3, mf->v4); - ADD_EDGE_USER(mf->v4, mf->v1); + ADD_EDGE_USER(mf->v1, mf->v2, 0); + ADD_EDGE_USER(mf->v2, mf->v3, 1); + ADD_EDGE_USER(mf->v3, mf->v4, 2); + ADD_EDGE_USER(mf->v4, mf->v1, 3); } else { - ADD_EDGE_USER(mf->v1, mf->v2); - ADD_EDGE_USER(mf->v2, mf->v3); - ADD_EDGE_USER(mf->v3, mf->v1); + ADD_EDGE_USER(mf->v1, mf->v2, 0); + ADD_EDGE_USER(mf->v2, mf->v3, 1); + ADD_EDGE_USER(mf->v3, mf->v1, 2); } } @@ -6178,6 +6181,13 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, MEM_freeN(vert_nors); if(smd->flag & MOD_SOLIDIFY_RIM) { + + static int edge_indices[4][4] = { + {1, 0, 0, 1}, + {2, 1, 1, 2}, + {3, 2, 2, 3}, + {0, 3, 3, 0}}; + /* add faces & edges */ ed= medge + (numEdges * 2); for(i=0; iv1= ed->v1; mf->v2= ed->v2; mf->v3= ed->v2 + numVerts; mf->v4= ed->v1 + numVerts; } else { + DM_swap_face_data(result, (numFaces * 2) + i, edge_indices[edge_order[eidx]]); + mf->v1= ed->v2; mf->v2= ed->v1; mf->v3= ed->v1 + numVerts; @@ -6237,6 +6250,7 @@ static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md, MEM_freeN(new_vert_arr); MEM_freeN(new_edge_arr); MEM_freeN(edge_users); + MEM_freeN(edge_order); } return result; -- cgit v1.2.3 From 5e6e3453a581f7f2bafae1ce4ebeba113a523c86 Mon Sep 17 00:00:00 2001 From: Stefan Gartner Date: Mon, 21 Dec 2009 10:38:04 +0000 Subject: OS X: added support for building with Cocoa to Makefiles to build with Cocoa support, set WITH_COCOA to true in user-def.mk --- source/blender/makesrna/intern/Makefile | 2 +- source/blender/quicktime/apple/Makefile | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/Makefile b/source/blender/makesrna/intern/Makefile index 7923ea1e7de..e4e4e859ed3 100644 --- a/source/blender/makesrna/intern/Makefile +++ b/source/blender/makesrna/intern/Makefile @@ -75,7 +75,7 @@ ifeq ($(WITH_OPENJPEG), true) endif ifeq ($(WITH_QUICKTIME), true) - CPPFLAGS += -DWITH_QUICKTIME + CPPFLAGS += -DWITH_QUICKTIME -I../../quicktime endif ifeq ($(WITH_SDL),true) diff --git a/source/blender/quicktime/apple/Makefile b/source/blender/quicktime/apple/Makefile index 0cee45e3af0..19f87ed31e3 100644 --- a/source/blender/quicktime/apple/Makefile +++ b/source/blender/quicktime/apple/Makefile @@ -52,6 +52,5 @@ CPPFLAGS += -I.. # stuff needed by quicktime_[import|export].c CPPFLAGS += -I../../blenloader -I../../imbuf/intern -I../../imbuf CPPFLAGS += -I../../blenlib -I../../makesdna -I../../editors/include -I../../avi -CPPFLAGS += -I../../blenkernel -I../../render/extern/include - +CPPFLAGS += -I../../blenkernel -I../../render/extern/include -I../../windowmanager -I../../makesrna -- cgit v1.2.3 From 1d957e4fb7a990957195b49beaad496adeba34f6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 21 Dec 2009 10:46:14 +0000 Subject: Fix #20442: opening .blend file with hanging temp screens could crash, version patch removed these screens, but not the corresponding windows. --- source/blender/blenloader/intern/readfile.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 11d34f9e69a..7512a7ebb02 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10156,12 +10156,26 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* clear hanging 'temp' screens from older 2.5 files*/ if (main->versionfile == 250) { bScreen *screen, *nextscreen; + wmWindowManager *wm; + wmWindow *win, *nextwin; for(screen= main->screen.first; screen; screen= nextscreen) { nextscreen= screen->id.next; - if (screen->full == SCREENTEMP) + if (screen->full == SCREENTEMP) { + /* remove corresponding windows */ + for(wm= main->wm.first; wm; wm=wm->id.next) { + for(win= wm->windows.first; win; win=nextwin) { + nextwin= win->next; + + if(newlibadr(fd, wm->id.lib, win->screen) == screen) + BLI_freelinkN(&wm->windows, win); + } + } + + /* remove screen itself */ free_libblock(&main->screen, screen); + } } } } -- cgit v1.2.3 From 0c859f836ba0df60d19a23568c044f17807d227d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 21 Dec 2009 10:50:32 +0000 Subject: Fix #20432: object.layers did not do correct update, could miss depsgraph rebuild. --- source/blender/makesrna/intern/rna_object.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 4c22316be19..b4e288e776d 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -190,9 +190,11 @@ static void rna_Object_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) base= object_in_scene(ob, scene); if(!base) return; + + SWAP(int, base->lay, ob->lay); - base->lay= ob->lay; rna_Object_layer_update__internal(scene, base, ob); + ob->lay= base->lay; } static void rna_Base_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) @@ -200,9 +202,8 @@ static void rna_Base_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr) Base *base= (Base*)ptr->id.data; Object *ob= (Object*)base->object; - ob->lay= base->lay; - rna_Object_layer_update__internal(scene, base, ob); + ob->lay= base->lay; } static int rna_Object_data_editable(PointerRNA *ptr) -- cgit v1.2.3 From 5832f2fb7bd396e45690b1765103d4136694845a Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Mon, 21 Dec 2009 11:19:07 +0000 Subject: =?UTF-8?q?*=20Rest=20length=20parameter=20for=20harmonic=20force?= =?UTF-8?q?=20springs.=20Implementation=20is=20a=20slightly=20modified=20v?= =?UTF-8?q?ersion=20of=20the=20patch=20provided=20by=20Ra=C3=BAl=20Fern?= =?UTF-8?q?=C3=A1ndez=20Hern=C3=A1ndez=20(Farsthary).=20*=20Also=20added?= =?UTF-8?q?=20a=20"multiple=20springs"=20option=20to=20use=20every=20effec?= =?UTF-8?q?tor=20point=20as=20a=20harmonic=20spring=20instead=20of=20just?= =?UTF-8?q?=20one.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/blender/blenkernel/intern/effect.c | 10 ++++++++-- source/blender/makesdna/DNA_object_force.h | 3 ++- source/blender/makesrna/intern/rna_object_force.c | 11 +++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index 6d63553396d..83f63c9ffb2 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -128,7 +128,6 @@ PartDeflect *object_add_collision_fields(int type) pd->seed = ((unsigned int)(ceil(PIL_check_seconds_timer()))+1) % 128; pd->f_strength = 1.0f; pd->f_damp = 1.0f; - pd->f_size = 1.0f; /* set sensible defaults based on type */ switch(type) { @@ -139,6 +138,9 @@ PartDeflect *object_add_collision_fields(int type) pd->shape = PFIELD_SHAPE_PLANE; pd->f_flow = 1.0f; /* realistic wind behavior */ break; + case PFIELD_TEXTURE: + pd->f_size = 1.0f; + break; } pd->flag = PFIELD_DO_LOCATION|PFIELD_DO_ROTATION; @@ -693,6 +695,10 @@ int get_effector_data(EffectorCache *eff, EffectorData *efd, EffectedPoint *poin sub_v3_v3v3(efd->vec_to_point, point->loc, efd->loc); efd->distance = len_v3(efd->vec_to_point); + /* rest length for harmonic effector, will have to see later if this could be extended to other effectors */ + if(eff->pd->forcefield == PFIELD_HARMONIC && eff->pd->f_size) + mul_v3_fl(efd->vec_to_point, (efd->distance-eff->pd->f_size)/efd->distance); + if(eff->flag & PE_USE_NORMAL_DATA) { VECCOPY(efd->vec_to_point2, efd->vec_to_point); VECCOPY(efd->nor2, efd->nor); @@ -735,7 +741,7 @@ static void get_effector_tot(EffectorCache *eff, EffectorData *efd, EffectedPoin */ efd->charge = eff->pd->f_strength; } - else if(eff->pd->forcefield == PFIELD_HARMONIC) { + else if(eff->pd->forcefield == PFIELD_HARMONIC && (eff->pd->flag & PFIELD_MULTIPLE_SPRINGS)==0) { /* every particle is mapped to only one harmonic effector particle */ *p= point->index % eff->psys->totpart; *tot= *p + 1; diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index adccf8893d4..99b8f400a5e 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -71,7 +71,7 @@ typedef struct PartDeflect { float f_flow; /* How much force is converted into "air flow", i.e. */ /* force used as the velocity of surrounding medium. */ - float f_size; + float f_size; /* Noise size for noise effector, restlength for harmonic effector */ /* fall-off */ float f_power; /* The power law - real gravitation is 2 (square) */ @@ -320,6 +320,7 @@ typedef struct SoftBody { #define PFIELD_TEX_OBJECT 64 #define PFIELD_GLOBAL_CO 64 /* used for turbulence */ #define PFIELD_TEX_2D 128 +#define PFIELD_MULTIPLE_SPRINGS 128 /* used for harmonic force */ #define PFIELD_USEMIN 256 #define PFIELD_USEMAXR 512 #define PFIELD_USEMINR 1024 diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index 9a57a24e1a7..67c7a9aa078 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -1109,6 +1109,12 @@ static void rna_def_field(BlenderRNA *brna) RNA_def_property_range(prop, 0.0f, 10.0f); RNA_def_property_ui_text(prop, "Size", "Size of the noise"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); + + prop= RNA_def_property(srna, "rest_length", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "f_size"); + RNA_def_property_range(prop, 0.0f, 1000.0f); + RNA_def_property_ui_text(prop, "Rest Length", "Rest length of the harmonic force"); + RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); prop= RNA_def_property(srna, "falloff_power", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "f_power"); @@ -1221,6 +1227,11 @@ static void rna_def_field(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flag", PFIELD_VISIBILITY); RNA_def_property_ui_text(prop, "Absorption", "Force gets absorbed by collision objects"); RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); + + prop= RNA_def_property(srna, "multiple_springs", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", PFIELD_MULTIPLE_SPRINGS); + RNA_def_property_ui_text(prop, "Multiple Springs", "Every point is effected by multiple springs"); + RNA_def_property_update(prop, 0, "rna_FieldSettings_update"); /* Pointer */ -- cgit v1.2.3 From 371571fed6a8d2218be714dac5884d8135935b69 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 21 Dec 2009 11:42:31 +0000 Subject: - camera switching didnt work for openGL render - UV Project (Bounds) wasnt in the menu --- source/blender/editors/screen/screen_edit.c | 14 +------------- source/blender/editors/screen/screen_ops.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 0c690452d8a..6bf01a69d12 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1686,19 +1686,8 @@ void ED_update_for_newframe(const bContext *C, int mute) while(sl) { if(sl->spacetype==SPACE_VIEW3D) { View3D *v3d= (View3D*) sl; - if (v3d->camera == scene->camera) { + if (v3d->scenelock) { v3d->camera= camera; - /* - ARegion *ar; - for(ar=v3d->regionbase.first; ar; ar= ar->next) { - if(ar->regiontype == RGN_TYPE_WINDOW) { - RegionView3D *rv3d= ar->regiondata; - - if(rv3d->persp==RV3D_CAMOB) - rv3d->persp= RV3D_PERSP; - } - } - */ } } sl= sl->next; @@ -1709,7 +1698,6 @@ void ED_update_for_newframe(const bContext *C, int mute) } scene->camera= camera; - } #endif diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 55a977da663..fe1587a965d 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3365,7 +3365,16 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even } scene_update_for_newframe(scene, scene->lay); - + + if(oglrender->rv3d->persp==RV3D_CAMOB && oglrender->v3d->camera && oglrender->v3d->scenelock) { + /* since scene_update_for_newframe() is used rather + * then ED_update_for_newframe() the camera needs to be set */ + Object *camera= scene_find_camera_switch(scene); + + if(camera) + oglrender->v3d->camera= scene->camera= camera; + } + /* render into offscreen buffer */ screen_opengl_render_apply(oglrender); -- cgit v1.2.3 From 4d32e002edf9075c168a61b5ea4657c982ff23e2 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 21 Dec 2009 15:37:19 +0000 Subject: [#20441] 3D manipulator widget problem calculateTransformCenter function passing event to transform init when it shouldn't have. --- source/blender/editors/include/ED_transform.h | 2 +- source/blender/editors/space_view3d/view3d_edit.c | 2 +- source/blender/editors/transform/transform.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h index 065867a3bb3..6388c4552be 100644 --- a/source/blender/editors/include/ED_transform.h +++ b/source/blender/editors/include/ED_transform.h @@ -95,7 +95,7 @@ enum { * returns 1 if successful, 0 otherwise (usually means there's no selection) * (if 0 is returns, *vec is unmodified) * */ -int calculateTransformCenter(struct bContext *C, struct wmEvent *event, int centerMode, float *vec); +int calculateTransformCenter(struct bContext *C, int centerMode, float *vec); struct TransInfo; struct ScrArea; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 3a4dc102943..43caf85e1bc 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -304,7 +304,7 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event) if (vod->use_dyn_ofs) { VECCOPY(vod->ofs, rv3d->ofs); /* If there's no selection, lastofs is unmodified and last value since static */ - calculateTransformCenter(C, event, V3D_CENTROID, lastofs); + calculateTransformCenter(C, V3D_CENTROID, lastofs); VECCOPY(vod->dyn_ofs, lastofs); mul_v3_fl(vod->dyn_ofs, -1.0f); } diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 36e8032b640..a6b5e677ca2 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1100,7 +1100,7 @@ int transformEvent(TransInfo *t, wmEvent *event) return OPERATOR_PASS_THROUGH; } -int calculateTransformCenter(bContext *C, wmEvent *event, int centerMode, float *vec) +int calculateTransformCenter(bContext *C, int centerMode, float *vec) { TransInfo *t = MEM_callocN(sizeof(TransInfo), "TransInfo data"); int success = 1; @@ -1111,9 +1111,9 @@ int calculateTransformCenter(bContext *C, wmEvent *event, int centerMode, float t->mode = TFM_DUMMY; - initTransInfo(C, t, NULL, event); // internal data, mouse, vectors + initTransInfo(C, t, NULL, NULL); // internal data, mouse, vectors - createTransData(C, t); // make TransData structs from selection + createTransData(C, t); // make TransData structs from selection t->around = centerMode; // override userdefined mode -- cgit v1.2.3 From 29ea21e6bd6d6813a6b8fd58d7085e9efce9b494 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 21 Dec 2009 15:55:10 +0000 Subject: Multires: added back Reshape function, to copy vertex locations from another mesh. --- source/blender/blenkernel/intern/multires.c | 75 +++++++++++-------------- source/blender/editors/object/object_intern.h | 1 + source/blender/editors/object/object_modifier.c | 45 +++++++++++++++ source/blender/editors/object/object_ops.c | 1 + source/blender/makesrna/intern/rna_modifier.c | 2 +- 5 files changed, 82 insertions(+), 42 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 88c6788b723..f5414567da8 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -63,6 +63,7 @@ static const int multires_max_levels = 13; static const int multires_grid_tot[] = {0, 4, 9, 25, 81, 289, 1089, 4225, 16641, 66049, 263169, 1050625, 4198401, 16785409}; static const int multires_side_tot[] = {0, 2, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097}; +static void multires_mvert_to_ss(DerivedMesh *dm, MVert *mvert); static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, int invert, int add, DMGridData **oldGridData, int totlvl); MultiresModifierData *find_multires_modifier(Object *ob) @@ -106,6 +107,27 @@ static void multires_set_tot_level(Object *ob, MultiresModifierData *mmd, int lv CLAMP(mmd->renderlvl, 0, mmd->totlvl); } +static void multires_dm_mark_as_modified(DerivedMesh *dm) +{ + CCGDerivedMesh *ccgdm = (CCGDerivedMesh*)dm; + ccgdm->multires.modified = 1; +} + +void multires_mark_as_modified(Object *ob) +{ + if(ob && ob->derivedFinal) + multires_dm_mark_as_modified(ob->derivedFinal); +} + +void multires_force_update(Object *ob) +{ + if(ob && ob->derivedFinal) { + ob->derivedFinal->needsFree =1; + ob->derivedFinal->release(ob->derivedFinal); + ob->derivedFinal = NULL; + } +} + /* XXX */ #if 0 void multiresModifier_join(Object *ob) @@ -168,30 +190,22 @@ void multiresModifier_join(Object *ob) } #endif -/* Returns 0 on success, 1 if the src's totvert doesn't match */ +/* Returns 1 on success, 0 if the src's totvert doesn't match */ int multiresModifier_reshape(MultiresModifierData *mmd, Object *dst, Object *src) { - /* XXX */ -#if 0 - Mesh *src_me = get_mesh(src); + DerivedMesh *srcdm = src->derivedFinal; DerivedMesh *mrdm = dst->derivedFinal; - if(mrdm && mrdm->getNumVerts(mrdm) == src_me->totvert) { - MVert *mvert = CDDM_get_verts(mrdm); - int i; + if(mrdm && srcdm && mrdm->getNumVerts(mrdm) == srcdm->getNumVerts(srcdm)) { + multires_mvert_to_ss(mrdm, srcdm->getVertArray(srcdm)); - for(i = 0; i < src_me->totvert; ++i) - copy_v3_v3(mvert[i].co, src_me->mvert[i].co); - mrdm->needsFree = 1; - MultiresDM_mark_as_modified(mrdm); - mrdm->release(mrdm); - dst->derivedFinal = NULL; + multires_dm_mark_as_modified(mrdm); + multires_force_update(dst); - return 0; + return 1; } -#endif - return 1; + return 0; } static void column_vectors_to_mat3(float mat[][3], float v1[3], float v2[3], float v3[3]) @@ -242,7 +256,7 @@ static void multires_copy_dm_grid(DMGridData *gridA, DMGridData *gridB, int size } /* direction=1 for delete higher, direction=0 for lower (not implemented yet) */ -void multiresModifier_del_levels(struct MultiresModifierData *mmd, struct Object *ob, int direction) +void multiresModifier_del_levels(MultiresModifierData *mmd, Object *ob, int direction) { Mesh *me = get_mesh(ob); int lvl = multires_get_level(ob, mmd, 0); @@ -621,27 +635,6 @@ static void multiresModifier_update(DerivedMesh *dm) } } -static void multires_dm_mark_as_modified(struct DerivedMesh *dm) -{ - CCGDerivedMesh *ccgdm = (CCGDerivedMesh*)dm; - ccgdm->multires.modified = 1; -} - -void multires_mark_as_modified(struct Object *ob) -{ - if(ob && ob->derivedFinal) - multires_dm_mark_as_modified(ob->derivedFinal); -} - -void multires_force_update(Object *ob) -{ - if(ob && ob->derivedFinal) { - ob->derivedFinal->needsFree =1; - ob->derivedFinal->release(ob->derivedFinal); - ob->derivedFinal = NULL; - } -} - void multires_stitch_grids(Object *ob) { /* utility for smooth brush */ @@ -661,7 +654,7 @@ void multires_stitch_grids(Object *ob) } } -struct DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int local_mmd, DerivedMesh *dm, Object *ob, +DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int local_mmd, DerivedMesh *dm, Object *ob, int useRenderParams, int isFinalCalc) { Mesh *me= ob->data; @@ -973,7 +966,7 @@ static void multires_load_old_faces(ListBase **fmap, ListBase **emap, MultiresLe } } -static void multires_old_mvert_to_ss(DerivedMesh *dm, MVert *mvert) +static void multires_mvert_to_ss(DerivedMesh *dm, MVert *mvert) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm; CCGSubSurf *ss = ccgdm->ss; @@ -1197,7 +1190,7 @@ static void multires_load_old_dm(DerivedMesh *dm, Mesh *me, int totlvl) MEM_freeN(vvmap); - multires_old_mvert_to_ss(dm, vdst); + multires_mvert_to_ss(dm, vdst); } diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index 848855da1b0..562216e5890 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -142,6 +142,7 @@ void OBJECT_OT_modifier_apply(struct wmOperatorType *ot); void OBJECT_OT_modifier_convert(struct wmOperatorType *ot); void OBJECT_OT_modifier_copy(struct wmOperatorType *ot); void OBJECT_OT_multires_subdivide(struct wmOperatorType *ot); +void OBJECT_OT_multires_reshape(struct wmOperatorType *ot); void OBJECT_OT_multires_higher_levels_delete(struct wmOperatorType *ot); void OBJECT_OT_multires_save_external(struct wmOperatorType *ot); void OBJECT_OT_multires_pack_external(struct wmOperatorType *ot); diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 06c31e9f1a9..552de1f8f60 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -814,6 +814,51 @@ void OBJECT_OT_multires_subdivide(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/****************** multires reshape operator *********************/ + +static int multires_reshape_exec(bContext *C, wmOperator *op) +{ + PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier); + Object *ob= ptr.id.data, *secondob= NULL; + MultiresModifierData *mmd= ptr.data; + + CTX_DATA_BEGIN(C, Object*, selob, selected_editable_objects) { + if(selob->type == OB_MESH && selob != ob) { + secondob= selob; + break; + } + } + CTX_DATA_END; + + if(!secondob) { + BKE_report(op->reports, RPT_ERROR, "Second selected mesh object require to copy shape from."); + return OPERATOR_CANCELLED; + } + + if(!multiresModifier_reshape(mmd, ob, secondob)) { + BKE_report(op->reports, RPT_ERROR, "Objects do not have the same number of vertices."); + return OPERATOR_CANCELLED; + } + + DAG_id_flush_update(&ob->id, OB_RECALC_DATA); + WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + + return OPERATOR_FINISHED; +} + +void OBJECT_OT_multires_reshape(wmOperatorType *ot) +{ + ot->name= "Multires Reshape"; + ot->description= "Copy vertex coordinates from other object."; + ot->idname= "OBJECT_OT_multires_reshape"; + + ot->poll= multires_poll; + ot->exec= multires_reshape_exec; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + /****************** multires save external operator *********************/ static int multires_save_external_exec(bContext *C, wmOperator *op) diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index dbd03561c20..bd43e9c24c4 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -135,6 +135,7 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_modifier_convert); WM_operatortype_append(OBJECT_OT_modifier_copy); WM_operatortype_append(OBJECT_OT_multires_subdivide); + WM_operatortype_append(OBJECT_OT_multires_reshape); WM_operatortype_append(OBJECT_OT_multires_higher_levels_delete); WM_operatortype_append(OBJECT_OT_multires_save_external); WM_operatortype_append(OBJECT_OT_multires_pack_external); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index c6aef8df407..fe8d6d6a367 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -55,9 +55,9 @@ EnumPropertyItem modifier_type_items[] ={ {eModifierType_Mask, "MASK", ICON_MOD_MASK, "Mask", ""}, {eModifierType_Mirror, "MIRROR", ICON_MOD_MIRROR, "Mirror", ""}, {eModifierType_Multires, "MULTIRES", ICON_MOD_MULTIRES, "Multiresolution", ""}, + {eModifierType_Solidify, "SOLIDIFY", ICON_MOD_DISPLACE, "Solidify", ""}, {eModifierType_Subsurf, "SUBSURF", ICON_MOD_SUBSURF, "Subdivision Surface", ""}, {eModifierType_UVProject, "UV_PROJECT", ICON_MOD_UVPROJECT, "UV Project", ""}, - {eModifierType_Solidify, "SOLIDIFY", ICON_MOD_DISPLACE, "Solidify", ""}, {0, "", 0, "Deform", ""}, {eModifierType_Armature, "ARMATURE", ICON_MOD_ARMATURE, "Armature", ""}, {eModifierType_Cast, "CAST", ICON_MOD_CAST, "Cast", ""}, -- cgit v1.2.3 From 1f8cd19d4bc76b294841f3495132ecbdf9964228 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 21 Dec 2009 16:57:39 +0000 Subject: removing sequence strip overlap didnt adjust the animation key time single images were not having their animation data transformed correctly made sequence strip opacity 0-1 rather then 0-100 in RNA --- source/blender/blenkernel/BKE_sequencer.h | 4 ++-- source/blender/blenkernel/intern/sequencer.c | 14 ++++++++------ source/blender/editors/space_sequencer/sequencer_add.c | 2 +- source/blender/editors/space_sequencer/sequencer_edit.c | 12 ++++++------ .../blender/editors/transform/transform_conversions.c | 14 ++++++-------- source/blender/makesrna/intern/rna_sequencer.c | 17 +++++++++++++---- 6 files changed, 36 insertions(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index c078b92af2d..070d98ce25f 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -188,8 +188,8 @@ void seq_single_fix(struct Sequence *seq); int seq_test_overlap(struct ListBase * seqbasep, struct Sequence *test); struct ListBase *seq_seqbase(struct ListBase *seqbase, struct Sequence *seq); void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs); -int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test); -int shuffle_seq_time(ListBase * seqbasep); +int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test, struct Scene *evil_scene); +int shuffle_seq_time(ListBase * seqbasep, struct Scene *evil_scene); int seqbase_isolated_sel_check(struct ListBase *seqbase); void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 84458b0e921..aa81cea79f5 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3442,13 +3442,15 @@ int seq_test_overlap(ListBase * seqbasep, Sequence *test) } -static void seq_translate(Sequence *seq, int delta) +static void seq_translate(Scene *evil_scene, Sequence *seq, int delta) { + seq_offset_animdata(evil_scene, seq, delta); seq->start += delta; + if(seq->type==SEQ_META) { Sequence *seq_child; for(seq_child= seq->seqbase.first; seq_child; seq_child= seq_child->next) { - seq_translate(seq_child, delta); + seq_translate(evil_scene, seq_child, delta); } } @@ -3456,7 +3458,7 @@ static void seq_translate(Sequence *seq, int delta) } /* return 0 if there werent enough space */ -int shuffle_seq(ListBase * seqbasep, Sequence *test) +int shuffle_seq(ListBase * seqbasep, Sequence *test, Scene *evil_scene) { int orig_machine= test->machine; test->machine++; @@ -3484,7 +3486,7 @@ int shuffle_seq(ListBase * seqbasep, Sequence *test) test->machine= orig_machine; new_frame = new_frame + (test->start-test->startdisp); /* adjust by the startdisp */ - seq_translate(test, new_frame - test->start); + seq_translate(evil_scene, test, new_frame - test->start); calc_sequence(test); return 0; @@ -3540,7 +3542,7 @@ static int shuffle_seq_time_offset(ListBase * seqbasep, char dir) return tot_ofs; } -int shuffle_seq_time(ListBase * seqbasep) +int shuffle_seq_time(ListBase * seqbasep, Scene *evil_scene) { /* note: seq->tmp is used to tag strips to move */ @@ -3553,7 +3555,7 @@ int shuffle_seq_time(ListBase * seqbasep) if(offset) { for(seq= seqbasep->first; seq; seq= seq->next) { if(seq->tmp) { - seq_translate(seq, offset); + seq_translate(evil_scene, seq, offset); seq->flag &= ~SEQ_OVERLAP; } } diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index 48c364b6c6b..354b4712ce4 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -548,7 +548,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) RNA_float_get_array(op->ptr, "color", colvars->col); } - if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq); + if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene); update_changed_seq_and_deps(scene, seq, 1, 1); /* runs calc_sequence */ diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 6704cf0ef62..bfb7d139074 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -195,7 +195,7 @@ static void change_plugin_seq(Scene *scene, char *str) /* called from fileselect last_seq->seq2->machine, last_seq->seq3->machine); - if( seq_test_overlap(ed->seqbasep, last_seq) ) shuffle_seq(ed->seqbasep, last_seq); + if( seq_test_overlap(ed->seqbasep, last_seq) ) shuffle_seq(ed->seqbasep, last_seq, scene); } @@ -1395,7 +1395,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op) if(seq->flag & SELECT && !(seq->depth==0 && seq->flag & SEQ_LOCK)) { seq->flag &= ~SEQ_OVERLAP; if( seq_test_overlap(ed->seqbasep, seq) ) { - shuffle_seq(ed->seqbasep, seq); + shuffle_seq(ed->seqbasep, seq, scene); } } else if(seq->type & SEQ_EFFECT) { @@ -1975,7 +1975,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) calc_sequence(seq_new); seq_new->flag &= ~SEQ_OVERLAP; if (seq_test_overlap(ed->seqbasep, seq_new)) { - shuffle_seq(ed->seqbasep, seq_new); + shuffle_seq(ed->seqbasep, seq_new, scene); } seqUniqueName(scene->ed->seqbasep, seq_new); @@ -2138,7 +2138,7 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) active_seq_set(scene, seqm); - if( seq_test_overlap(ed->seqbasep, seqm) ) shuffle_seq(ed->seqbasep, seqm); + if( seq_test_overlap(ed->seqbasep, seqm) ) shuffle_seq(ed->seqbasep, seqm, scene); seq_update_muting(ed); @@ -2207,7 +2207,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *op) if(seq->flag & SELECT) { seq->flag &= ~SEQ_OVERLAP; if( seq_test_overlap(ed->seqbasep, seq) ) { - shuffle_seq(ed->seqbasep, seq); + shuffle_seq(ed->seqbasep, seq, scene); } } } @@ -2632,7 +2632,7 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op) if((iseq->type & SEQ_EFFECT) && (seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq))) { /* this may now overlap */ if( seq_test_overlap(ed->seqbasep, iseq) ) { - shuffle_seq(ed->seqbasep, iseq); + shuffle_seq(ed->seqbasep, iseq, scene); } } } diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 98c1b333844..d5b9a85e347 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2365,23 +2365,21 @@ void flushTransSeq(TransInfo *t) /* flush to 2d vector from internally used 3d vector */ for(a=0, td= t->data, td2d= t->data2d; atotal; a++, td++, td2d++) { - tdsq= (TransDataSeq *)td->extra; seq= tdsq->seq; new_frame= (int)floor(td2d->loc[0] + 0.5f); switch (tdsq->sel_flag) { case SELECT: - if (seq->type != SEQ_META && (seq->depth != 0 || seq_tx_test(seq))) /* for meta's, their children move */ - seq->start= new_frame - tdsq->start_offset; - #ifdef XXX_DURIAN_ANIM_TX_HACK - if (seq->type != SEQ_META && seq != seq_prev) { - int ofs = (new_frame - tdsq->start_offset) - seq->start; + if (seq != seq_prev) { + int ofs = (new_frame - tdsq->start_offset) - seq->start; // breaks for single strips - color/image seq_offset_animdata(t->scene, seq, ofs); } #endif - + if (seq->type != SEQ_META && (seq->depth != 0 || seq_tx_test(seq))) /* for meta's, their children move */ + seq->start= new_frame - tdsq->start_offset; + if (seq->depth==0) { seq->machine= (int)floor(td2d->loc[1] + 0.5f); CLAMP(seq->machine, 1, MAXSEQ); @@ -4130,7 +4128,7 @@ static void freeSeqData(TransInfo *t) } } - shuffle_seq_time(seqbasep); + shuffle_seq_time(seqbasep, t->scene); } } #endif diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 767da5dc042..f875e6a7fa2 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -96,7 +96,7 @@ static void rna_Sequence_frame_change_update(Scene *scene, Sequence *seq) calc_sequence_disp(seq); if(seq_test_overlap(seqbase, seq)) { - shuffle_seq(seqbase, seq); + shuffle_seq(seqbase, seq, scene); // XXX - BROKEN!, uses context seqbasep } sort_seq(scene); } @@ -155,7 +155,7 @@ static void rna_Sequence_channel_set(PointerRNA *ptr, int value) seq->machine= value; if( seq_test_overlap(seqbase, seq) ) { - shuffle_seq(seqbase, seq); + shuffle_seq(seqbase, seq, scene); // XXX - BROKEN!, uses context seqbasep } sort_seq(scene); } @@ -362,6 +362,14 @@ static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr) rna_Sequence_update(bmain, scene, ptr); } +/* do_versions? */ +static float rna_Sequence_opacity_get(PointerRNA *ptr) { + return ((Sequence*)(ptr->data))->blend_opacity / 100.0f; +} +static void rna_Sequence_opacity_set(PointerRNA *ptr, float value) { + ((Sequence*)(ptr->data))->blend_opacity = value * 100.0f; +} + #else static void rna_def_strip_element(BlenderRNA *brna) @@ -660,9 +668,10 @@ static void rna_def_sequence(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Blend Mode", ""); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - prop= RNA_def_property(srna, "blend_opacity", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 0.0f, 100.0f); + prop= RNA_def_property(srna, "blend_opacity", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Blend Opacity", ""); + RNA_def_property_float_funcs(prop, "rna_Sequence_opacity_get", "rna_Sequence_opacity_set", NULL); // stupid 0-100 -> 0-1 RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "effect_fader", PROP_FLOAT, PROP_NONE); -- cgit v1.2.3 From 90e9aee9b8cd7349fd4458c3f7d0141073958dc4 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 21 Dec 2009 17:23:44 +0000 Subject: Sequence Slide transformation (easier to do special sequence code there than in a generic transform) Also make the transform operator creation a bit more automagic (I always forget either operator registration or modal keymap registration, this is all automatic now). --- source/blender/editors/transform/transform.c | 156 +++++++++++++---------- source/blender/editors/transform/transform.h | 7 +- source/blender/editors/transform/transform_ops.c | 140 +++++++++++++------- 3 files changed, 189 insertions(+), 114 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index a6b5e677ca2..40db0f7b272 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -450,55 +450,6 @@ static void view_editmove(unsigned short event) #endif } -#if 0 -static char *transform_to_undostr(TransInfo *t) -{ - switch (t->mode) { - case TFM_TRANSLATION: - return "Translate"; - case TFM_ROTATION: - return "Rotate"; - case TFM_RESIZE: - return "Scale"; - case TFM_TOSPHERE: - return "To Sphere"; - case TFM_SHEAR: - return "Shear"; - case TFM_WARP: - return "Warp"; - case TFM_SHRINKFATTEN: - return "Shrink/Fatten"; - case TFM_TILT: - return "Tilt"; - case TFM_TRACKBALL: - return "Trackball"; - case TFM_PUSHPULL: - return "Push/Pull"; - case TFM_BEVEL: - return "Bevel"; - case TFM_BWEIGHT: - return "Bevel Weight"; - case TFM_CREASE: - return "Crease"; - case TFM_BONESIZE: - return "Bone Width"; - case TFM_BONE_ENVELOPE: - return "Bone Envelope"; - case TFM_TIME_TRANSLATE: - return "Translate Anim. Data"; - case TFM_TIME_SCALE: - return "Scale Anim. Data"; - case TFM_TIME_SLIDE: - return "Time Slide"; - case TFM_BAKE_TIME: - return "Key Time"; - case TFM_MIRROR: - return "Mirror"; - } - return "Transform"; -} -#endif - /* ************************************************* */ /* NOTE: these defines are saved in keymap files, do not change values but just add new ones */ @@ -521,7 +472,7 @@ static char *transform_to_undostr(TransInfo *t) #define TFM_MODAL_REMOVE_SNAP 17 /* called in transform_ops.c, on each regeneration of keymaps */ -void transform_modal_keymap(wmKeyConfig *keyconf) +wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf) { static EnumPropertyItem modal_items[] = { {TFM_MODAL_CANCEL, "CANCEL", 0, "Cancel", ""}, @@ -546,7 +497,7 @@ void transform_modal_keymap(wmKeyConfig *keyconf) wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "Transform Modal Map"); /* this function is called for each spacetype, only needs to add map once */ - if(keymap) return; + if(keymap) return NULL; keymap= WM_modalkeymap_add(keyconf, "Transform Modal Map", modal_items); @@ -568,19 +519,7 @@ void transform_modal_keymap(wmKeyConfig *keyconf) WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, TFM_MODAL_ADD_SNAP); WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ALT, 0, TFM_MODAL_REMOVE_SNAP); - /* assign map to operators */ - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_transform"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_translate"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_rotate"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_tosphere"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_resize"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_shear"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_warp"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_shrink_fatten"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_tilt"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_trackball"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_mirror"); - WM_modalkeymap_assign(keymap, "TRANSFORM_OT_edge_slide"); + return keymap; } @@ -1620,6 +1559,9 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int case TFM_ALIGN: initAlign(t); break; + case TFM_SEQ_SLIDE: + initSeqSlide(t); + break; } /* overwrite initial values if operator supplied a non-null vector */ @@ -3290,11 +3232,11 @@ static void applyTranslation(TransInfo *t, float vec[3]) { /* uses t->vec to store actual translation in */ int Translation(TransInfo *t, short mval[2]) { - float tvec[3]; char str[250]; if (t->con.mode & CON_APPLY) { float pvec[3] = {0.0f, 0.0f, 0.0f}; + float tvec[3]; applySnapping(t, t->values); t->con.applyVec(t, NULL, t->values, tvec, pvec); VECCOPY(t->values, tvec); @@ -5018,6 +4960,90 @@ int Align(TransInfo *t, short mval[2]) return 1; } +/* ************************** SEQ SLIDE *************************** */ + +void initSeqSlide(TransInfo *t) +{ + t->transform = SeqSlide; + + initMouseInputMode(t, &t->mouse, INPUT_VECTOR); + + t->idx_max = 1; + t->num.flag = 0; + t->num.idx_max = t->idx_max; + + t->ndof.axis = 1|2; + + t->snap[0] = 0.0f; + t->snap[1] = floor(t->scene->r.frs_sec / t->scene->r.frs_sec_base); + t->snap[2] = 10.0f; +} + +static void headerSeqSlide(TransInfo *t, float val[2], char *str) +{ + char tvec[60]; + + if (hasNumInput(&t->num)) { + outputNumInput(&(t->num), tvec); + } + else { + sprintf(&tvec[0], "%.0f, %.0f", val[0], val[1]); + } + + sprintf(str, "Sequence Slide: %s%s", &tvec[0], t->con.text); +} + +static void applySeqSlide(TransInfo *t, float val[2]) { + TransData *td = t->data; + int i; + + for(i = 0 ; i < t->total; i++, td++) { + float tvec[2]; + + if (td->flag & TD_NOACTION) + break; + + if (td->flag & TD_SKIP) + continue; + + copy_v2_v2(tvec, val); + + mul_v2_fl(tvec, td->factor); + + td->loc[0] = td->iloc[0] + tvec[0]; + td->loc[1] = td->iloc[1] + tvec[1]; + } +} + +int SeqSlide(TransInfo *t, short mval[2]) +{ + char str[200]; + + if (t->con.mode & CON_APPLY) { + float pvec[3] = {0.0f, 0.0f, 0.0f}; + float tvec[3]; + t->con.applyVec(t, NULL, t->values, tvec, pvec); + VECCOPY(t->values, tvec); + } + else { + applyNDofInput(&t->ndof, t->values); + snapGrid(t, t->values); + applyNumInput(&t->num, t->values); + } + + t->values[0] = floor(t->values[0] + 0.5); + t->values[1] = floor(t->values[1] + 0.5); + + headerSeqSlide(t, t->values, str); + applySeqSlide(t, t->values); + + recalcData(t); + + ED_area_headerprint(t->sa, str); + + return 1; +} + /* ************************** ANIM EDITORS - TRANSFORM TOOLS *************************** */ /* ---------------- Special Helpers for Various Settings ------------- */ diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index b7e1b2e4996..72d970c967a 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -53,6 +53,8 @@ struct BezTriple; struct wmOperatorType; struct wmOperator; struct wmWindowManager; +struct wmKeyMap; +struct wmKeyConfig; struct bContext; struct wmEvent; struct wmTimer; @@ -522,9 +524,12 @@ int Mirror(TransInfo *t, short mval[2]); void initAlign(TransInfo *t); int Align(TransInfo *t, short mval[2]); +void initSeqSlide(TransInfo *t); +int SeqSlide(TransInfo *t, short mval[2]); + void drawPropCircle(const struct bContext *C, TransInfo *t); -void transform_modal_keymap(struct wmKeyConfig *keyconf); +struct wmKeyMap *transform_modal_keymap(struct wmKeyConfig *keyconf); /*********************** transform_conversions.c ********** */ diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index f9dcd6f87f4..63218369a90 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -51,6 +51,7 @@ typedef struct TransformModeItem { char *idname; int mode; + void (*opfunc)(wmOperatorType*); } TransformModeItem; static float VecOne[3] = {1, 1, 1}; @@ -66,21 +67,35 @@ char OP_TILT[] = "TRANSFORM_OT_tilt"; char OP_TRACKBALL[] = "TRANSFORM_OT_trackball"; char OP_MIRROR[] = "TRANSFORM_OT_mirror"; char OP_EDGE_SLIDE[] = "TRANSFORM_OT_edge_slide"; - +char OP_SEQ_SLIDE[] = "TRANSFORM_OT_seq_slide"; + +void TRANSFORM_OT_translate(struct wmOperatorType *ot); +void TRANSFORM_OT_rotate(struct wmOperatorType *ot); +void TRANSFORM_OT_tosphere(struct wmOperatorType *ot); +void TRANSFORM_OT_resize(struct wmOperatorType *ot); +void TRANSFORM_OT_shear(struct wmOperatorType *ot); +void TRANSFORM_OT_warp(struct wmOperatorType *ot); +void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot); +void TRANSFORM_OT_tilt(struct wmOperatorType *ot); +void TRANSFORM_OT_trackball(struct wmOperatorType *ot); +void TRANSFORM_OT_mirror(struct wmOperatorType *ot); +void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot); +void TRANSFORM_OT_seq_slide(struct wmOperatorType *ot); TransformModeItem transform_modes[] = { - {OP_TRANSLATION, TFM_TRANSLATION}, - {OP_ROTATION, TFM_ROTATION}, - {OP_TOSPHERE, TFM_TOSPHERE}, - {OP_RESIZE, TFM_RESIZE}, - {OP_SHEAR, TFM_SHEAR}, - {OP_WARP, TFM_WARP}, - {OP_SHRINK_FATTEN, TFM_SHRINKFATTEN}, - {OP_TILT, TFM_TILT}, - {OP_TRACKBALL, TFM_TRACKBALL}, - {OP_MIRROR, TFM_MIRROR}, - {OP_EDGE_SLIDE, TFM_EDGE_SLIDE}, + {OP_TRANSLATION, TFM_TRANSLATION, TRANSFORM_OT_translate}, + {OP_ROTATION, TFM_ROTATION, TRANSFORM_OT_rotate}, + {OP_TOSPHERE, TFM_TOSPHERE, TRANSFORM_OT_tosphere}, + {OP_RESIZE, TFM_RESIZE, TRANSFORM_OT_resize}, + {OP_SHEAR, TFM_SHEAR, TRANSFORM_OT_shear}, + {OP_WARP, TFM_WARP, TRANSFORM_OT_warp}, + {OP_SHRINK_FATTEN, TFM_SHRINKFATTEN, TRANSFORM_OT_shrink_fatten}, + {OP_TILT, TFM_TILT, TRANSFORM_OT_tilt}, + {OP_TRACKBALL, TFM_TRACKBALL, TRANSFORM_OT_trackball}, + {OP_MIRROR, TFM_MIRROR, TRANSFORM_OT_mirror}, + {OP_EDGE_SLIDE, TFM_EDGE_SLIDE, TRANSFORM_OT_edge_slide}, + {OP_SEQ_SLIDE, TFM_SEQ_SLIDE, TRANSFORM_OT_seq_slide}, {NULL, 0} }; @@ -671,6 +686,26 @@ void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot) Properties_Snapping(ot, 0, 0); } +void TRANSFORM_OT_seq_slide(struct wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Sequence Slide"; + ot->description= "Slide a sequence strip in time."; + ot->idname = OP_SEQ_SLIDE; + ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING; + + /* api callbacks */ + ot->invoke = transform_invoke; + ot->exec = transform_exec; + ot->modal = transform_modal; + ot->cancel = transform_cancel; + ot->poll = ED_operator_sequencer_active; + + RNA_def_float_vector(ot->srna, "value", 2, VecOne, -FLT_MAX, FLT_MAX, "angle", "", -FLT_MAX, FLT_MAX); + + Properties_Snapping(ot, 0, 0); +} + void TRANSFORM_OT_transform(struct wmOperatorType *ot) { static EnumPropertyItem transform_mode_types[] = { @@ -701,6 +736,7 @@ void TRANSFORM_OT_transform(struct wmOperatorType *ot) {TFM_BWEIGHT, "BWEIGHT", 0, "Bweight", ""}, {TFM_ALIGN, "ALIGN", 0, "Align", ""}, {TFM_EDGE_SLIDE, "EDGESLIDE", 0, "Edge Slide", ""}, + {TFM_SEQ_SLIDE, "SEQSLIDE", 0, "Sequence Slide", ""}, {0, NULL, 0, NULL, NULL} }; @@ -729,18 +765,14 @@ void TRANSFORM_OT_transform(struct wmOperatorType *ot) void transform_operatortypes(void) { + TransformModeItem *tmode; + + for (tmode = transform_modes; tmode->idname; tmode++) + { + WM_operatortype_append(tmode->opfunc); + } + WM_operatortype_append(TRANSFORM_OT_transform); - WM_operatortype_append(TRANSFORM_OT_translate); - WM_operatortype_append(TRANSFORM_OT_rotate); - WM_operatortype_append(TRANSFORM_OT_tosphere); - WM_operatortype_append(TRANSFORM_OT_resize); - WM_operatortype_append(TRANSFORM_OT_shear); - WM_operatortype_append(TRANSFORM_OT_warp); - WM_operatortype_append(TRANSFORM_OT_shrink_fatten); - WM_operatortype_append(TRANSFORM_OT_tilt); - WM_operatortype_append(TRANSFORM_OT_trackball); - WM_operatortype_append(TRANSFORM_OT_mirror); - WM_operatortype_append(TRANSFORM_OT_edge_slide); WM_operatortype_append(TRANSFORM_OT_select_orientation); WM_operatortype_append(TRANSFORM_OT_create_orientation); @@ -749,36 +781,48 @@ void transform_operatortypes(void) WM_operatortype_append(TRANSFORM_OT_snap_type); } -void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap, int spaceid) +void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spaceid) { wmKeyMapItem *km; + wmKeyMap *modalmap; /* transform.c, only adds modal map once, checks if it's there */ - transform_modal_keymap(keyconf); + modalmap = transform_modal_keymap(keyconf); + + /* assign map to operators only the first time */ + if (modalmap) { + TransformModeItem *tmode; + + for (tmode = transform_modes; tmode->idname; tmode++) + { + WM_modalkeymap_assign(modalmap, tmode->idname); + } + WM_modalkeymap_assign(modalmap, "TRANSFORM_OT_transform"); + } switch(spaceid) { case SPACE_VIEW3D: - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_warp", WKEY, KM_PRESS, KM_SHIFT, 0); + km = WM_keymap_add_item(keymap, OP_WARP, WKEY, KM_PRESS, KM_SHIFT, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_tosphere", SKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0); + km = WM_keymap_add_item(keymap, OP_TOSPHERE, SKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_shear", SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0); + km = WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0); km = WM_keymap_add_item(keymap, "TRANSFORM_OT_select_orientation", SPACEKEY, KM_PRESS, KM_ALT, 0); km = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); RNA_boolean_set(km->ptr, "use", 1); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); + km = WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(km->ptr, "path", "scene.tool_settings.snap"); @@ -803,17 +847,17 @@ void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *ke RNA_int_set(km->ptr, "mode", TFM_TIME_SLIDE); break; case SPACE_IPO: - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); // XXX the 'mode' identifier here is not quite right km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); break; case SPACE_NLA: km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); @@ -829,31 +873,31 @@ void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *ke RNA_int_set(km->ptr, "mode", TFM_TIME_SCALE); break; case SPACE_NODE: - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_A, KM_ANY, 0, 0); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_A, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); break; case SPACE_SEQ: - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); + km= WM_keymap_add_item(keymap, OP_SEQ_SLIDE, GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, OP_SEQ_SLIDE, EVT_TWEAK_S, KM_ANY, 0, 0); km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND); break; case SPACE_IMAGE: - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - km= WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); + km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - km = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0); + km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); km = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); -- cgit v1.2.3 From 95db4d16dd6f69a823b6128c8ce0cfaeb633c009 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 21 Dec 2009 18:56:00 +0000 Subject: Missing file in previous commit. --- source/blender/editors/include/ED_transform.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h index 6388c4552be..8750010bed5 100644 --- a/source/blender/editors/include/ED_transform.h +++ b/source/blender/editors/include/ED_transform.h @@ -77,7 +77,8 @@ enum { TFM_BEVEL, TFM_BWEIGHT, TFM_ALIGN, - TFM_EDGE_SLIDE + TFM_EDGE_SLIDE, + TFM_SEQ_SLIDE } TfmMode; /* TRANSFORM CONTEXTS */ -- cgit v1.2.3 From 9c22e846feba9b51ad2163a36906b0e503326476 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Tue, 22 Dec 2009 07:27:53 +0000 Subject: [#20446] mathutils: bugfix for matrix * matrix - patch by Paul Parchenko (parfoure) thanks From the tracker: - typo was making the multiplication to transpose resulting matrix eg #### from Mathutils import * from math import radians cont = GameLogic.getCurrentController() owner = cont.owner owner.worldOrientation = RotationMatrix(radians(1), 3, 'z') * owner.worldOrientation #### --- source/blender/python/generic/matrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/matrix.c b/source/blender/python/generic/matrix.c index a1ef4b53615..1fc5018c854 100644 --- a/source/blender/python/generic/matrix.c +++ b/source/blender/python/generic/matrix.c @@ -944,7 +944,7 @@ static PyObject *Matrix_mul(PyObject * m1, PyObject * m2) for(z = 0; z < mat1->rowSize; z++) { dot += (mat1->matrix[z][y] * mat2->matrix[x][z]); } - mat[((x * mat1->colSize) + y)] = (float)dot; + mat[((y * mat1->rowSize) + x)] = (float)dot; dot = 0.0f; } } -- cgit v1.2.3 From f4ce1bea0f015e0ec7a1cec696cf93cd9f1ff478 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Tue, 22 Dec 2009 08:05:19 +0000 Subject: increasing camera lens limit to 172.85 (same as 2.49xx) It's not range_ui, but range itself. if someone think that for some reason it's better to keep the visible range up to 100 (the current one) it could be as well. --- source/blender/makesrna/intern/rna_camera.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_camera.c b/source/blender/makesrna/intern/rna_camera.c index 1715df1809a..e8538522d84 100644 --- a/source/blender/makesrna/intern/rna_camera.c +++ b/source/blender/makesrna/intern/rna_camera.c @@ -85,7 +85,7 @@ void RNA_def_camera(BlenderRNA *brna) prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "angle"); - RNA_def_property_range(prop, 0.0f, 100.0f); + RNA_def_property_range(prop, 0.0f, 172.85f); RNA_def_property_ui_text(prop, "Angle", "Perspective Camera lend field of view in degrees."); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Camera_angle_update"); -- cgit v1.2.3 From 5c3879f8fbc2c52c689a89da4424e65ea1ae5129 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 22 Dec 2009 08:39:59 +0000 Subject: zoom to mouse for 2D view note: this works in all views except for nodes which seem to use the view bounds differently --- source/blender/editors/interface/view2d_ops.c | 32 +++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c index 6742df351d1..7d1dc00e271 100644 --- a/source/blender/editors/interface/view2d_ops.c +++ b/source/blender/editors/interface/view2d_ops.c @@ -656,6 +656,7 @@ typedef struct v2dViewZoomData { int lastx, lasty; /* previous x/y values of mouse in window */ float dx, dy; /* running tally of previous delta values (for obtaining final zoom) */ + float mx_2d, my_2d; /* initial mouse location in v2d coords */ } v2dViewZoomData; /* initialise panning customdata */ @@ -701,8 +702,17 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op) v2d->cur.xmax -= 2*dx; } else { - v2d->cur.xmin += dx; - v2d->cur.xmax -= dx; + if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) { + float mval_fac = (vzd->mx_2d - v2d->cur.xmin) / (v2d->cur.xmax-v2d->cur.xmin); + float mval_faci = 1.0 - mval_fac; + float ofs= (mval_fac * dx) - (mval_faci * dx); + v2d->cur.xmin += ofs + dx; + v2d->cur.xmax += ofs - dx; + } + else { + v2d->cur.xmin += dx; + v2d->cur.xmax -= dx; + } } } if ((v2d->keepzoom & V2D_LOCKZOOM_Y)==0) { @@ -710,8 +720,17 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op) v2d->cur.ymax -= 2*dy; } else { - v2d->cur.ymin += dy; - v2d->cur.ymax -= dy; + if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) { + float mval_fac = (vzd->my_2d - v2d->cur.ymin) / (v2d->cur.ymax-v2d->cur.ymin); + float mval_faci = 1.0 - mval_fac; + float ofs= (mval_fac * dy) - (mval_faci * dy); + v2d->cur.ymin += ofs + dy; + v2d->cur.ymax += ofs - dy; + } + else { + v2d->cur.ymin += dy; + v2d->cur.ymax -= dy; + } } } @@ -764,6 +783,11 @@ static int view_zoomdrag_invoke(bContext *C, wmOperator *op, wmEvent *event) RNA_float_set(op->ptr, "deltax", 0); RNA_float_set(op->ptr, "deltay", 0); + if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) { + ARegion *ar= CTX_wm_region(C); + UI_view2d_region_to_view(&ar->v2d, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin, &vzd->mx_2d, &vzd->my_2d); + } + if (v2d->keepofs & V2D_LOCKOFS_X) WM_cursor_modal(window, BC_NS_SCROLLCURSOR); else if (v2d->keepofs & V2D_LOCKOFS_Y) -- cgit v1.2.3 From 8f5b2e946bd24cc4ee2b7496b1e022cb24f56f4f Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 22 Dec 2009 09:46:03 +0000 Subject: BGE bug #20446: revert to orignal code, the problems comes from misunderstanding of matrix theory. More details in bug report. --- source/blender/python/generic/matrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/generic/matrix.c b/source/blender/python/generic/matrix.c index 1fc5018c854..a1ef4b53615 100644 --- a/source/blender/python/generic/matrix.c +++ b/source/blender/python/generic/matrix.c @@ -944,7 +944,7 @@ static PyObject *Matrix_mul(PyObject * m1, PyObject * m2) for(z = 0; z < mat1->rowSize; z++) { dot += (mat1->matrix[z][y] * mat2->matrix[x][z]); } - mat[((y * mat1->rowSize) + x)] = (float)dot; + mat[((x * mat1->colSize) + y)] = (float)dot; dot = 0.0f; } } -- cgit v1.2.3 From e207d045322db4656f42f68ae9fa092ac1478635 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 22 Dec 2009 10:04:15 +0000 Subject: quite a few python panels (10 or so) had names longer then the PanelType allowed, for panels it would fail silently but for menu's it meant further references would give errors. increase the registered class name from 32 to 64 and raise an error if the limit reached. --- source/blender/blenkernel/BKE_screen.h | 2 +- source/blender/makesrna/intern/rna_ID.c | 9 +++++++++ source/blender/makesrna/intern/rna_render.c | 7 ++++++- source/blender/makesrna/intern/rna_ui.c | 17 ++++++++++++++++- source/blender/render/extern/include/RE_pipeline.h | 4 ++-- 5 files changed, 34 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h index bf01ef0ec60..c9d1caa1cfe 100644 --- a/source/blender/blenkernel/BKE_screen.h +++ b/source/blender/blenkernel/BKE_screen.h @@ -55,7 +55,7 @@ struct uiMenuItem; ED_spacetypes_init() in editors/area/spacetypes.c */ /* an editor in Blender is a combined ScrArea + SpaceType + SpaceData */ -#define BKE_ST_MAXNAME 32 +#define BKE_ST_MAXNAME 64 typedef struct SpaceType { struct SpaceType *next, *prev; diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 2aeb600bc42..a250f0a49b4 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -205,6 +205,15 @@ StructRNA *rna_IDPropertyGroup_register(const bContext *C, ReportList *reports, if(validate(&dummyptr, data, NULL) != 0) return NULL; + /* note: it looks like there is no length limit on the srna id since its + * just a char pointer, but take care here, also be careful that python + * owns the string pointer which it could potentually free while blender + * is running. */ + if(strlen(identifier) >= sizeof(((IDProperty *)NULL)->name)) { + BKE_reportf(reports, RPT_ERROR, "registering id property class: '%s' is too long, maximum length is %d.", identifier, sizeof(((IDProperty *)NULL)->name)); + return NULL; + } + return RNA_def_struct(&BLENDER_RNA, identifier, "IDPropertyGroup"); // XXX } diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c index 5a80db74c38..8212423acd5 100644 --- a/source/blender/makesrna/intern/rna_render.c +++ b/source/blender/makesrna/intern/rna_render.c @@ -125,7 +125,12 @@ static StructRNA *rna_RenderEngine_register(const bContext *C, ReportList *repor /* validate the python class */ if(validate(&dummyptr, data, have_function) != 0) return NULL; - + + if(strlen(identifier) >= sizeof(dummyet.idname)) { + BKE_reportf(reports, RPT_ERROR, "registering render engine class: '%s' is too long, maximum length is %d.", identifier, sizeof(dummyet.idname)); + return NULL; + } + /* check if we have registered this engine type before, and remove it */ for(et=R_engines.first; et; et=et->next) { if(strcmp(et->idname, dummyet.idname) == 0) { diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index d33e96df2e6..cbd524680c1 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -163,6 +163,11 @@ static StructRNA *rna_Panel_register(const bContext *C, ReportList *reports, voi /* validate the python class */ if(validate(&dummyptr, data, have_function) != 0) return NULL; + + if(strlen(identifier) >= sizeof(dummypt.idname)) { + BKE_reportf(reports, RPT_ERROR, "registering panel class: '%s' is too long, maximum length is %d.", identifier, sizeof(dummypt.idname)); + return NULL; + } if(!(art=region_type_find(reports, dummypt.space_type, dummypt.region_type))) return NULL; @@ -260,7 +265,12 @@ static StructRNA *rna_Header_register(const bContext *C, ReportList *reports, vo /* validate the python class */ if(validate(&dummyhtr, data, have_function) != 0) return NULL; - + + if(strlen(identifier) >= sizeof(dummyht.idname)) { + BKE_reportf(reports, RPT_ERROR, "registering header class: '%s' is too long, maximum length is %d.", identifier, sizeof(dummyht.idname)); + return NULL; + } + if(!(art=region_type_find(reports, dummyht.space_type, RGN_TYPE_HEADER))) return NULL; @@ -373,6 +383,11 @@ static StructRNA *rna_Menu_register(const bContext *C, ReportList *reports, void /* validate the python class */ if(validate(&dummymtr, data, have_function) != 0) return NULL; + + if(strlen(identifier) >= sizeof(dummymt.idname)) { + BKE_reportf(reports, RPT_ERROR, "registering menu class: '%s' is too long, maximum length is %d.", identifier, sizeof(dummymt.idname)); + return NULL; + } /* check if we have registered this menu type before, and remove it */ mt= WM_menutype_find(dummymt.idname, TRUE); diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 56a81ac6b43..477a4baead9 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -253,8 +253,8 @@ typedef struct RenderEngineType { struct RenderEngineType *next, *prev; /* type info */ - char idname[32]; - char name[32]; + char idname[64]; // best keep the same size as BKE_ST_MAXNAME + char name[64]; int flag; void (*render)(struct RenderEngine *engine, struct Scene *scene); -- cgit v1.2.3 From 5a3ac3ceeb0d3550c14987f5cfd607e1ad126e64 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 22 Dec 2009 10:14:13 +0000 Subject: Assorted F-Curve/Keyframe API stuff (for use with some Sequencer editing): * Added function for F-Curves to find the F-Curves in a given list which affect some named data, such as bones, nodes, or sequence strips. * Added a BezTriple offsetting callback to be used with the F-Curve+Keyframe loopers in use for many of the keyframe editing tools. --- source/blender/blenkernel/BKE_fcurve.h | 7 +- source/blender/blenkernel/intern/fcurve.c | 85 ++++++++++++++++------ source/blender/editors/animation/keyframes_edit.c | 16 ++++ .../blender/editors/animation/keyframes_general.c | 2 +- source/blender/editors/include/ED_keyframes_edit.h | 18 ++++- 5 files changed, 101 insertions(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_fcurve.h b/source/blender/blenkernel/BKE_fcurve.h index 5888c6d7530..fa6b8969edb 100644 --- a/source/blender/blenkernel/BKE_fcurve.h +++ b/source/blender/blenkernel/BKE_fcurve.h @@ -158,7 +158,12 @@ void copy_fcurves(ListBase *dst, ListBase *src); struct FCurve *list_find_fcurve(ListBase *list, const char rna_path[], const int array_index); /* high level function to get an fcurve from C without having the rna */ -struct FCurve *id_data_find_fcurve(ID* id, void *data, struct StructRNA *type, char *prop_name, int index); +struct FCurve *id_data_find_fcurve(ID *id, void *data, struct StructRNA *type, char *prop_name, int index); + +/* Get list of LinkData's containing pointers to the F-Curves which control the types of data indicated + * e.g. numMatches = list_find_data_fcurves(matches, &act->curves, "pose.bones[", "MyFancyBone"); + */ +int list_find_data_fcurves(ListBase *dst, ListBase *src, const char *dataPrefix, const char *dataName); /* Binary search algorithm for finding where to 'insert' BezTriple with given frame number. * Returns the index to insert at (data already at that index will be offset if replace is 0) diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index b5f3d0a4be0..d5e033652a8 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -167,53 +167,42 @@ void copy_fcurves (ListBase *dst, ListBase *src) } } -/* ---------------------- Relink --------------------------- */ - -#if 0 -/* uses id->newid to match pointers with other copied data - * - called after single-user or other such - */ - if (icu->driver) - ID_NEW(icu->driver->ob); -#endif - /* --------------------- Finding -------------------------- */ +/* high level function to get an fcurve from C without having the rna */ FCurve *id_data_find_fcurve(ID *id, void *data, StructRNA *type, char *prop_name, int index) { /* anim vars */ - AnimData *adt; + AnimData *adt= BKE_animdata_from_id(id); FCurve *fcu= NULL; /* rna vars */ PointerRNA ptr; PropertyRNA *prop; char *path; - - adt= BKE_animdata_from_id(id); - + /* only use the current action ??? */ - if(adt==NULL || adt->action==NULL) + if (ELEM(NULL, adt, adt->action)) return NULL; - + RNA_pointer_create(id, type, data, &ptr); prop = RNA_struct_find_property(&ptr, prop_name); - - if(prop) { + + if (prop) { path= RNA_path_from_ID_to_property(&ptr, prop); - - if(path) { + + if (path) { /* animation takes priority over drivers */ - if(adt->action && adt->action->curves.first) + if ((adt->action) && (adt->action->curves.first)) fcu= list_find_fcurve(&adt->action->curves, path, index); - + /* if not animated, check if driven */ #if 0 - if(!fcu && (adt->drivers.first)) { + if ((fcu == NULL) && (adt->drivers.first)) { fcu= list_find_fcurve(&adt->drivers, path, but->rnaindex); } #endif - + MEM_freeN(path); } } @@ -245,6 +234,54 @@ FCurve *list_find_fcurve (ListBase *list, const char rna_path[], const int array return NULL; } +/* Get list of LinkData's containing pointers to the F-Curves which control the types of data indicated + * Lists... + * - dst: list of LinkData's matching the criteria returned. + * List must be freed after use, and is assumed to be empty when passed. + * - src: list of F-Curves to search through + * Filters... + * - dataPrefix: i.e. 'pose.bones[' or 'nodes[' + * - dataName: name of entity within "" immediately following the prefix + */ +int list_find_data_fcurves (ListBase *dst, ListBase *src, const char *dataPrefix, const char *dataName) +{ + FCurve *fcu; + int matches = 0; + + /* sanity checks */ + if (ELEM4(NULL, dst, src, dataPrefix, dataName)) + return 0; + else if ((dataPrefix[0] == 0) || (dataName[0] == 0)) + return 0; + + /* search each F-Curve one by one */ + for (fcu= src->first; fcu; fcu= fcu->next) { + /* check if quoted string matches the path */ + if ((fcu->rna_path) && strstr(fcu->rna_path, dataPrefix)) { + char *quotedName= BLI_getQuotedStr(fcu->rna_path, dataPrefix); + + if (quotedName) { + /* check if the quoted name matches the required name */ + if (strcmp(quotedName, dataName) == 0) { + LinkData *ld= MEM_callocN(sizeof(LinkData), "list_find_data_fcurves"); + + ld->data= fcu; + BLI_addtail(dst, ld); + + matches++; + } + + /* always free the quoted string, since it needs freeing */ + MEM_freeN(quotedName); + } + } + } + + /* return the number of matches */ + return matches; +} + + /* threshold for binary-searching keyframes - threshold here should be good enough for now, but should become userpref */ #define BEZT_BINARYSEARCH_THRESH 0.00001f diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index 83acfbee940..9476aa479a7 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -559,6 +559,22 @@ short bezt_to_cfraelem(BeztEditData *bed, BezTriple *bezt) return 0; } +/* used to remap times from one range to another + * requires: bed->data = BeztEditCD_Remap + */ +short bezt_remap_times(BeztEditData *bed, BezTriple *bezt) +{ + BeztEditCD_Remap *rmap= (BeztEditCD_Remap*)bed->data; + const float scale = (rmap->newMax - rmap->newMin) / (rmap->oldMax - rmap->oldMin); + + /* perform transform on all three handles unless indicated otherwise */ + // TODO: need to include some checks for that + + bezt->vec[0][0]= scale*(bezt->vec[0][0] - rmap->oldMin) + rmap->newMin; + bezt->vec[1][0]= scale*(bezt->vec[1][0] - rmap->oldMin) + rmap->newMin; + bezt->vec[2][0]= scale*(bezt->vec[2][0] - rmap->oldMin) + rmap->newMin; +} + /* ******************************************* */ /* Transform */ diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c index 3b717bafc70..fb9d4d53b0f 100644 --- a/source/blender/editors/animation/keyframes_general.c +++ b/source/blender/editors/animation/keyframes_general.c @@ -60,7 +60,7 @@ * fine to have these calls here. * * There are also a few tools here which cannot be easily coded for in the other system (yet). - * These may also be moved around at some point, but for now, they + * These may also be moved around at some point, but for now, they are best added here. * * - Joshua Leung, Dec 2008 */ diff --git a/source/blender/editors/include/ED_keyframes_edit.h b/source/blender/editors/include/ED_keyframes_edit.h index 4a0a3ee24db..26290d8771c 100644 --- a/source/blender/editors/include/ED_keyframes_edit.h +++ b/source/blender/editors/include/ED_keyframes_edit.h @@ -100,11 +100,19 @@ typedef struct BeztEditData { /* ------- Function Pointer Typedefs ---------------- */ - /* callback function that refreshes the IPO curve after use */ + /* callback function that refreshes the F-Curve after use */ typedef void (*FcuEditFunc)(struct FCurve *fcu); /* callback function that operates on the given BezTriple */ typedef short (*BeztEditFunc)(BeztEditData *bed, struct BezTriple *bezt); +/* ------- Custom Data Type Defines ------------------ */ + +/* Custom data for remapping one range to another in a fixed way */ +typedef struct BeztEditCD_Remap { + float oldMin, oldMax; /* old range */ + float newMin, newMax; /* new range */ +} BeztEditCD_Remap; + /* ---------------- Looping API --------------------- */ /* functions for looping over keyframes */ @@ -137,9 +145,17 @@ BeztEditFunc ANIM_editkeyframes_keytype(short mode); /* ----------- BezTriple Callback (Assorted Utilities) ---------- */ +/* used to calculate the the average location of all relevant BezTriples by summing their locations */ short bezt_calc_average(BeztEditData *bed, struct BezTriple *bezt); + +/* used to extract a set of cfra-elems from the keyframes */ short bezt_to_cfraelem(BeztEditData *bed, struct BezTriple *bezt); +/* used to remap times from one range to another + * requires: bed->custom = BeztEditCD_Remap + */ +short bezt_remap_times(BeztEditData *bed, struct BezTriple *bezt); + /* ************************************************ */ /* Destructive Editing API (keyframes_general.c) */ -- cgit v1.2.3 From 3221dea46eeb6c5441c4617d704ffb3e8caeeca3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 22 Dec 2009 10:48:13 +0000 Subject: clone and stencil layer access added, renamed mask to stencil layer internally --- source/blender/blenkernel/BKE_customdata.h | 8 +- source/blender/blenkernel/intern/customdata.c | 8 +- source/blender/editors/mesh/mesh_data.c | 18 +-- source/blender/editors/sculpt_paint/paint_image.c | 30 ++--- source/blender/editors/space_image/image_buttons.c | 127 --------------------- source/blender/makesdna/DNA_scene_types.h | 4 +- source/blender/makesrna/intern/rna_mesh.c | 70 ++++++++++-- source/blender/makesrna/intern/rna_sculpt_paint.c | 4 +- 8 files changed, 94 insertions(+), 175 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h index 5f13e702343..65c02d1abb9 100644 --- a/source/blender/blenkernel/BKE_customdata.h +++ b/source/blender/blenkernel/BKE_customdata.h @@ -198,11 +198,11 @@ int CustomData_get_named_layer_index(const struct CustomData *data, int type, ch int CustomData_get_active_layer_index(const struct CustomData *data, int type); int CustomData_get_render_layer_index(const struct CustomData *data, int type); int CustomData_get_clone_layer_index(const struct CustomData *data, int type); -int CustomData_get_mask_layer_index(const struct CustomData *data, int type); +int CustomData_get_stencil_layer_index(const struct CustomData *data, int type); int CustomData_get_active_layer(const struct CustomData *data, int type); int CustomData_get_render_layer(const struct CustomData *data, int type); int CustomData_get_clone_layer(const struct CustomData *data, int type); -int CustomData_get_mask_layer(const struct CustomData *data, int type); +int CustomData_get_stencil_layer(const struct CustomData *data, int type); /* copies the data from source to the data element at index in the first * layer of type @@ -231,13 +231,13 @@ void *CustomData_set_layer_n(const struct CustomData *data, int type, int n, voi void CustomData_set_layer_active(struct CustomData *data, int type, int n); void CustomData_set_layer_render(struct CustomData *data, int type, int n); void CustomData_set_layer_clone(struct CustomData *data, int type, int n); -void CustomData_set_layer_mask(struct CustomData *data, int type, int n); +void CustomData_set_layer_stencil(struct CustomData *data, int type, int n); /* same as above but works with an index from CustomData_get_layer_index */ void CustomData_set_layer_active_index(struct CustomData *data, int type, int n); void CustomData_set_layer_render_index(struct CustomData *data, int type, int n); void CustomData_set_layer_clone_index(struct CustomData *data, int type, int n); -void CustomData_set_layer_mask_index(struct CustomData *data, int type, int n); +void CustomData_set_layer_stencil_index(struct CustomData *data, int type, int n); /* adds flag to the layer flags */ void CustomData_set_layer_flag(struct CustomData *data, int type, int flag); diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index d9e85d5d412..78e673b9e79 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -1006,7 +1006,7 @@ int CustomData_get_clone_layer_index(const CustomData *data, int type) return -1; } -int CustomData_get_mask_layer_index(const CustomData *data, int type) +int CustomData_get_stencil_layer_index(const CustomData *data, int type) { int i; @@ -1050,7 +1050,7 @@ int CustomData_get_clone_layer(const CustomData *data, int type) return -1; } -int CustomData_get_mask_layer(const CustomData *data, int type) +int CustomData_get_stencil_layer(const CustomData *data, int type) { int i; @@ -1088,7 +1088,7 @@ void CustomData_set_layer_clone(CustomData *data, int type, int n) data->layers[i].active_clone = n; } -void CustomData_set_layer_mask(CustomData *data, int type, int n) +void CustomData_set_layer_stencil(CustomData *data, int type, int n) { int i; @@ -1125,7 +1125,7 @@ void CustomData_set_layer_clone_index(CustomData *data, int type, int n) data->layers[i].active_clone = n-i; } -void CustomData_set_layer_mask_index(CustomData *data, int type, int n) +void CustomData_set_layer_stencil_index(CustomData *data, int type, int n) { int i; diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index 0285faf7949..1cdc059f57e 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -72,10 +72,10 @@ static void delete_customdata_layer(bContext *C, Object *ob, CustomDataLayer *la { Mesh *me = ob->data; CustomData *data= (me->edit_mesh)? &me->edit_mesh->fdata: &me->fdata; - void *actlayerdata, *rndlayerdata, *clonelayerdata, *masklayerdata, *layerdata=layer->data; + void *actlayerdata, *rndlayerdata, *clonelayerdata, *stencillayerdata, *layerdata=layer->data; int type= layer->type; int index= CustomData_get_layer_index(data, type); - int i, actindex, rndindex, cloneindex, maskindex; + int i, actindex, rndindex, cloneindex, stencilindex; /* ok, deleting a non-active layer needs to preserve the active layer indices. to do this, we store a pointer to the .data member of both layer and the active layer, @@ -87,7 +87,7 @@ static void delete_customdata_layer(bContext *C, Object *ob, CustomDataLayer *la actlayerdata = data->layers[CustomData_get_active_layer_index(data, type)].data; rndlayerdata = data->layers[CustomData_get_render_layer_index(data, type)].data; clonelayerdata = data->layers[CustomData_get_clone_layer_index(data, type)].data; - masklayerdata = data->layers[CustomData_get_mask_layer_index(data, type)].data; + stencillayerdata = data->layers[CustomData_get_stencil_layer_index(data, type)].data; CustomData_set_layer_active(data, type, layer - &data->layers[index]); if(me->edit_mesh) { @@ -144,18 +144,18 @@ static void delete_customdata_layer(bContext *C, Object *ob, CustomDataLayer *la CustomData_set_layer_clone(data, type, cloneindex); } - if (masklayerdata != layerdata) { + if (stencillayerdata != layerdata) { /* find index */ - maskindex = CustomData_get_layer_index(data, type); - for (i=maskindex; itotlayer; i++) { - if (data->layers[i].data == masklayerdata) { - maskindex = i - maskindex; + stencilindex = CustomData_get_layer_index(data, type); + for (i=stencilindex; itotlayer; i++) { + if (data->layers[i].data == stencillayerdata) { + stencilindex = i - stencilindex; break; } } /* set index */ - CustomData_set_layer_mask(data, type, maskindex); + CustomData_set_layer_stencil(data, type, stencilindex); } } diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 1f0d158ece9..058dab4ba15 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -228,7 +228,7 @@ typedef struct ProjPaintState { MFace *dm_mface; MTFace *dm_mtface; MTFace *dm_mtface_clone; /* other UV layer, use for cloning between layers */ - MTFace *dm_mtface_mask; + MTFace *dm_mtface_stencil; /* projection painting only */ MemArena *arena_mt[BLENDER_MAX_THREADS];/* for multithreading, the first item is sometimes used for non threaded cases too */ @@ -257,8 +257,8 @@ typedef struct ProjPaintState { /* options for projection painting */ int do_layer_clone; - int do_layer_mask; - int do_layer_mask_inv; + int do_layer_stencil; + int do_layer_stencil_inv; short do_occlude; /* Use raytraced occlusion? - ortherwise will paint right through to the back*/ short do_backfacecull; /* ignore faces with normals pointing away, skips a lot of raycasts if your normals are correctly flipped */ @@ -1265,10 +1265,10 @@ float project_paint_uvpixel_mask( float mask; /* Image Mask */ - if (ps->do_layer_mask) { + if (ps->do_layer_stencil) { /* another UV layers image is masking this one's */ ImBuf *ibuf_other; - const MTFace *tf_other = ps->dm_mtface_mask + face_index; + const MTFace *tf_other = ps->dm_mtface_stencil + face_index; if (tf_other->tpage && (ibuf_other = BKE_image_get_ibuf(tf_other->tpage, NULL))) { /* BKE_image_get_ibuf - TODO - this may be slow */ @@ -1284,7 +1284,7 @@ float project_paint_uvpixel_mask( mask = ((rgba_ub[0]+rgba_ub[1]+rgba_ub[2])/(256*3.0f)) * (rgba_ub[3]/256.0f); } - if (!ps->do_layer_mask_inv) /* matching the gimps layer mask black/white rules, white==full opacity */ + if (!ps->do_layer_stencil_inv) /* matching the gimps layer mask black/white rules, white==full opacity */ mask = (1.0f - mask); if (mask == 0.0f) { @@ -2863,15 +2863,15 @@ static void project_paint_begin(ProjPaintState *ps) } } - if (ps->do_layer_mask) { - //int layer_num = CustomData_get_mask_layer(&ps->dm->faceData, CD_MTFACE); - int layer_num = CustomData_get_mask_layer(&((Mesh *)ps->ob->data)->fdata, CD_MTFACE); + if (ps->do_layer_stencil) { + //int layer_num = CustomData_get_stencil_layer(&ps->dm->faceData, CD_MTFACE); + int layer_num = CustomData_get_stencil_layer(&((Mesh *)ps->ob->data)->fdata, CD_MTFACE); if (layer_num != -1) - ps->dm_mtface_mask = CustomData_get_layer_n(&ps->dm->faceData, CD_MTFACE, layer_num); + ps->dm_mtface_stencil = CustomData_get_layer_n(&ps->dm->faceData, CD_MTFACE, layer_num); - if (ps->dm_mtface_mask==NULL || ps->dm_mtface_mask==ps->dm_mtface) { - ps->do_layer_mask = 0; - ps->dm_mtface_mask = NULL; + if (ps->dm_mtface_stencil==NULL || ps->dm_mtface_stencil==ps->dm_mtface) { + ps->do_layer_stencil = 0; + ps->dm_mtface_stencil = NULL; } } @@ -4438,8 +4438,8 @@ static int texture_paint_init(bContext *C, wmOperator *op) if (pop->ps.tool == PAINT_TOOL_CLONE) pop->ps.do_layer_clone = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_CLONE); - pop->ps.do_layer_mask = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_MASK) ? 1 : 0; - pop->ps.do_layer_mask_inv = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_MASK_INV) ? 1 : 0; + pop->ps.do_layer_stencil = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_STENCIL) ? 1 : 0; + pop->ps.do_layer_stencil_inv = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_STENCIL_INV) ? 1 : 0; #ifndef PROJ_DEBUG_NOSEAMBLEED diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index bb989b35cd5..4811eb411ec 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -363,133 +363,6 @@ static void image_editcursor_buts(const bContext *C, View2D *v2d, uiBlock *block } } -#if 0 -static void image_panel_view_properties(const bContext *C, Panel *pa) -{ -} -#endif - -void brush_buttons(const bContext *C, uiBlock *block, short fromsima, - int evt_nop, int evt_change, - int evt_browse, int evt_local, - int evt_del, int evt_keepdata, - int evt_texbrowse, int evt_texdel) -{ -// SpaceImage *sima= CTX_wm_space_image(C); - ToolSettings *settings= CTX_data_tool_settings(C); - Brush *brush= paint_brush(&settings->imapaint.paint); - ID *id; - int yco, xco, butw, but_idx; -// short *menupoin = &(sima->menunr); // XXX : &(G.buts->menunr); - short do_project = settings->imapaint.flag & IMAGEPAINT_PROJECT_DISABLE ? 0:1; - - yco= 160; - - butw = fromsima ? 80 : 106; - - uiBlockBeginAlign(block); - but_idx = 0; - uiDefButS(block, ROW, evt_change, "Draw", butw*(but_idx++),yco,butw,19, &settings->imapaint.tool, 7.0, PAINT_TOOL_DRAW, 0, 0, "Draw brush"); - if (fromsima || do_project==0) - uiDefButS(block, ROW, evt_change, "Soften", butw*(but_idx++), yco,butw,19, &settings->imapaint.tool, 7.0, PAINT_TOOL_SOFTEN, 0, 0, "Soften brush"); - uiDefButS(block, ROW, evt_change, "Smear", butw*(but_idx++), yco,butw,19, &settings->imapaint.tool, 7.0, PAINT_TOOL_SMEAR, 0, 0, "Smear brush"); - if (fromsima || do_project) - uiDefButS(block, ROW, evt_change, "Clone", butw*(but_idx++), yco,butw,19, &settings->imapaint.tool, 7.0, PAINT_TOOL_CLONE, 0, 0, "Clone brush, use RMB to drag source image"); - - uiBlockEndAlign(block); - yco -= 30; - - id= (ID*)brush; - xco= 200; // std_libbuttons(block, 0, yco, 0, NULL, evt_browse, ID_BR, 0, id, NULL, menupoin, 0, evt_local, evt_del, 0, evt_keepdata); - - if(brush && !brush->id.lib) { - - butw= 320-(xco+10); - - uiDefButS(block, MENU, evt_nop, "Mix %x0|Add %x1|Subtract %x2|Multiply %x3|Lighten %x4|Darken %x5|Erase Alpha %x6|Add Alpha %x7", xco+10,yco,butw,19, &brush->blend, 0, 0, 0, 0, "Blending method for applying brushes"); - - uiBlockBeginAlign(block); - uiDefButBitS(block, TOG|BIT, BRUSH_AIRBRUSH, evt_change, "Airbrush", xco+10,yco-25,butw/2,19, &brush->flag, 0, 0, 0, 0, "Keep applying paint effect while holding mouse (spray)"); - uiDefButF(block, NUM, evt_nop, "", xco+10 + butw/2,yco-25,butw/2,19, &brush->rate, 0.01, 1.0, 0, 0, "Number of paints per second for Airbrush"); - uiBlockEndAlign(block); - - if (fromsima) { - uiDefButBitS(block, TOG|BIT, BRUSH_TORUS, evt_change, "Wrap", xco+10,yco-45,butw,19, &brush->flag, 0, 0, 0, 0, "Enables torus wrapping"); - yco -= 25; - } - else { - yco -= 25; - uiBlockBeginAlign(block); - uiDefButBitS(block, TOGN|BIT, IMAGEPAINT_PROJECT_DISABLE, B_REDR, "Project Paint", xco+10,yco-25,butw,19, &settings->imapaint.flag, 0, 0, 0, 0, "Use projection painting for improved consistency in the brush strokes"); - - if ((settings->imapaint.flag & IMAGEPAINT_PROJECT_DISABLE)==0) { - /* Projection Painting */ - - uiDefButBitS(block, TOGN|BIT, IMAGEPAINT_PROJECT_XRAY, B_NOP, "Occlude", xco+10,yco-45,butw/2,19, &settings->imapaint.flag, 0, 0, 0, 0, "Only paint onto the faces directly under the brush (slower)"); - uiDefButBitS(block, TOGN|BIT, IMAGEPAINT_PROJECT_BACKFACE, B_NOP, "Cull", xco+10+butw/2,yco-45,butw/2,19, &settings->imapaint.flag, 0, 0, 0, 0, "Ignore faces pointing away from the view (faster)"); - - uiDefButBitS(block, TOGN|BIT, IMAGEPAINT_PROJECT_FLAT, B_NOP, "Normal", xco+10,yco-65,butw/2,19, &settings->imapaint.flag, 0, 0, 0, 0, "Paint most on faces pointing towards the view"); - uiDefButS(block, NUM, B_NOP, "", xco+10 +(butw/2),yco-65,butw/2,19, &settings->imapaint.normal_angle, 10.0, 90.0, 0, 0, "Paint most on faces pointing towards the view acording to this angle"); - - uiDefButS(block, NUM, B_NOP, "Bleed: ", xco+10,yco-85,butw,19, &settings->imapaint.seam_bleed, 0.0, 8.0, 0, 0, "Extend paint beyond the faces UVs to reduce seams (in pixels, slower)"); - uiBlockEndAlign(block); - - uiBlockBeginAlign(block); - uiDefButBitS(block, TOG|BIT, IMAGEPAINT_PROJECT_LAYER_MASK, B_NOP, "Stencil Layer", xco+10,yco-110,butw-30,19, &settings->imapaint.flag, 0, 0, 0, 0, "Set the mask layer from the UV layer buttons"); - uiDefButBitS(block, TOG|BIT, IMAGEPAINT_PROJECT_LAYER_MASK_INV, B_NOP, "Inv", xco+10 + butw-30,yco-110,30,19, &settings->imapaint.flag, 0, 0, 0, 0, "Invert the mask"); - uiBlockEndAlign(block); - - } - uiBlockEndAlign(block); - } - - uiBlockBeginAlign(block); - uiDefButF(block, COL, B_VPCOLSLI, "", 0,yco,200,19, brush->rgb, 0, 0, 0, 0, ""); - uiDefButF(block, NUMSLI, evt_nop, "Opacity ", 0,yco-20,180,19, &brush->alpha, 0.0, 1.0, 0, 0, "The amount of pressure on the brush"); - uiDefIconButBitS(block, TOG|BIT, BRUSH_ALPHA_PRESSURE, evt_nop, ICON_STYLUS_PRESSURE, 180,yco-20,20,19, &brush->flag, 0, 0, 0, 0, "Enables pressure sensitivity for tablets"); - uiDefButI(block, NUMSLI, evt_nop, "Size ", 0,yco-40,180,19, &brush->size, 1, 200, 0, 0, "The size of the brush"); - uiDefIconButBitS(block, TOG|BIT, BRUSH_SIZE_PRESSURE, evt_nop, ICON_STYLUS_PRESSURE, 180,yco-40,20,19, &brush->flag, 0, 0, 0, 0, "Enables pressure sensitivity for tablets"); -// uiDefButF(block, NUMSLI, evt_nop, "Falloff ", 0,yco-60,180,19, &brush->innerradius, 0.0, 1.0, 0, 0, "The fall off radius of the brush"); -// uiDefIconButBitS(block, TOG|BIT, BRUSH_RAD_PRESSURE, evt_nop, ICON_STYLUS_PRESSURE, 180,yco-60,20,19, &brush->flag, 0, 0, 0, 0, "Enables pressure sensitivity for tablets"); - uiDefButF(block, NUMSLI, evt_nop, "Spacing ",0,yco-80,180,19, &brush->spacing, 1.0, 100.0, 0, 0, "Repeating paint on %% of brush diameter"); - uiDefIconButBitS(block, TOG|BIT, BRUSH_SPACING_PRESSURE, evt_nop, ICON_STYLUS_PRESSURE, 180,yco-80,20,19, &brush->flag, 0, 0, 0, 0, "Enables pressure sensitivity for tablets"); - uiBlockEndAlign(block); - - yco -= 110; - - if(fromsima && settings->imapaint.tool == PAINT_TOOL_CLONE) { - id= (ID*)brush->clone.image; - xco= 200; // std_libbuttons(block, 0, yco, 0, NULL, B_SIMACLONEBROWSE, ID_IM, 0, id, 0, menupoin, 0, 0, B_SIMACLONEDELETE, 0, 0); - if(id) { - butw= 320-(xco+5); - uiDefButF(block, NUMSLI, evt_change, "B ",xco+5,yco,butw,19, &brush->clone.alpha , 0.0, 1.0, 0, 0, "Opacity of clone image display"); - } - } - else { - if ( - (fromsima==0) && /* 3D View */ - (settings->imapaint.flag & IMAGEPAINT_PROJECT_DISABLE)==0 && /* Projection Painting */ - (settings->imapaint.tool == PAINT_TOOL_CLONE) - ) { - butw = 130; - uiDefButBitS(block, TOG|BIT, IMAGEPAINT_PROJECT_LAYER_CLONE, B_REDR, "Clone Layer", 0,yco,butw,20, &settings->imapaint.flag, 0, 0, 0, 0, "Use another UV layer as clone source, otherwise use 3D the cursor as the source"); - } - else { - MTex *mtex= brush->mtex[brush->texact]; - - id= (mtex)? (ID*)mtex->tex: NULL; - xco= 200; // std_libbuttons(block, 0, yco, 0, NULL, evt_texbrowse, ID_TE, 0, id, NULL, menupoin, 0, 0, evt_texdel, 0, 0); - /*uiDefButBitS(block, TOG|BIT, BRUSH_FIXED_TEX, evt_change, "Fixed", xco+5,yco,butw,19, &brush->flag, 0, 0, 0, 0, "Keep texture origin in fixed position");*/ - } - } - } - -#if 0 - uiDefButBitS(block, TOG|BIT, IMAGEPAINT_DRAW_TOOL_DRAWING, B_SIMABRUSHCHANGE, "TD", 0,1,50,19, &settings->imapaint.flag.flag, 0, 0, 0, 0, "Enables brush shape while drawing"); - uiDefButBitS(block, TOG|BIT, IMAGEPAINT_DRAW_TOOL, B_SIMABRUSHCHANGE, "TP", 50,1,50,19, &settings->imapaint.flag.flag, 0, 0, 0, 0, "Enables brush shape while not drawing"); -#endif -} - static int image_panel_poll(const bContext *C, PanelType *pt) { SpaceImage *sima= CTX_wm_space_image(C); diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 0ed8aba056a..536d9ba2bc3 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1092,8 +1092,8 @@ typedef enum SculptFlags { #define IMAGEPAINT_PROJECT_BACKFACE 32 #define IMAGEPAINT_PROJECT_FLAT 64 #define IMAGEPAINT_PROJECT_LAYER_CLONE 128 -#define IMAGEPAINT_PROJECT_LAYER_MASK 256 -#define IMAGEPAINT_PROJECT_LAYER_MASK_INV 512 +#define IMAGEPAINT_PROJECT_LAYER_STENCIL 256 +#define IMAGEPAINT_PROJECT_LAYER_STENCIL_INV 512 /* toolsettings->uvcalc_flag */ #define UVCALC_FILLHOLES 1 diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index 3163f38af3d..c298d83850b 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -330,7 +330,7 @@ static PointerRNA rna_Mesh_active_uv_texture_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_MeshTextureFaceLayer, cdl); } -static PointerRNA rna_Mesh_clone_uv_texture_get(PointerRNA *ptr) +static PointerRNA rna_Mesh_uv_texture_clone_get(PointerRNA *ptr) { Mesh *me= (Mesh*)ptr->data; CustomData *fdata= rna_mesh_fdata(me); @@ -340,6 +340,16 @@ static PointerRNA rna_Mesh_clone_uv_texture_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_MeshTextureFaceLayer, cdl); } +static PointerRNA rna_Mesh_uv_texture_stencil_get(PointerRNA *ptr) +{ + Mesh *me= (Mesh*)ptr->data; + CustomData *fdata= rna_mesh_fdata(me); + int index= CustomData_get_stencil_layer_index(fdata, CD_MTFACE); + CustomDataLayer *cdl= (index == -1)? NULL: &fdata->layers[index]; + + return rna_pointer_inherit_refine(ptr, &RNA_MeshTextureFaceLayer, cdl); +} + static void rna_Mesh_active_uv_texture_set(PointerRNA *ptr, PointerRNA value) { Mesh *me= (Mesh*)ptr->data; @@ -356,7 +366,7 @@ static void rna_Mesh_active_uv_texture_set(PointerRNA *ptr, PointerRNA value) } } -static void rna_Mesh_clone_uv_texture_set(PointerRNA *ptr, PointerRNA value) +static void rna_Mesh_uv_texture_clone_set(PointerRNA *ptr, PointerRNA value) { Mesh *me= (Mesh*)ptr->data; CustomData *fdata= rna_mesh_fdata(me); @@ -366,7 +376,21 @@ static void rna_Mesh_clone_uv_texture_set(PointerRNA *ptr, PointerRNA value) for(cdl=fdata->layers, a=0; atotlayer; cdl++, a++) { if(value.data == cdl) { CustomData_set_layer_clone_index(fdata, CD_MTFACE, a); - mesh_update_customdata_pointers(me); + return; + } + } +} + +static void rna_Mesh_uv_texture_stencil_set(PointerRNA *ptr, PointerRNA value) +{ + Mesh *me= (Mesh*)ptr->data; + CustomData *fdata= rna_mesh_fdata(me); + CustomDataLayer *cdl; + int a; + + for(cdl=fdata->layers, a=0; atotlayer; cdl++, a++) { + if(value.data == cdl) { + CustomData_set_layer_stencil_index(fdata, CD_MTFACE, a); return; } } @@ -379,13 +403,20 @@ static int rna_Mesh_active_uv_texture_index_get(PointerRNA *ptr) return CustomData_get_active_layer(fdata, CD_MTFACE); } -static int rna_Mesh_clone_uv_texture_index_get(PointerRNA *ptr) +static int rna_Mesh_uv_texture_clone_index_get(PointerRNA *ptr) { Mesh *me= (Mesh*)ptr->data; CustomData *fdata= rna_mesh_fdata(me); return CustomData_get_clone_layer(fdata, CD_MTFACE); } +static int rna_Mesh_uv_texture_stencil_index_get(PointerRNA *ptr) +{ + Mesh *me= (Mesh*)ptr->data; + CustomData *fdata= rna_mesh_fdata(me); + return CustomData_get_stencil_layer(fdata, CD_MTFACE); +} + static void rna_Mesh_active_uv_texture_index_set(PointerRNA *ptr, int value) { Mesh *me= (Mesh*)ptr->data; @@ -395,13 +426,20 @@ static void rna_Mesh_active_uv_texture_index_set(PointerRNA *ptr, int value) mesh_update_customdata_pointers(me); } -static void rna_Mesh_clone_uv_texture_index_set(PointerRNA *ptr, int value) +static void rna_Mesh_uv_texture_clone_index_set(PointerRNA *ptr, int value) { Mesh *me= (Mesh*)ptr->data; CustomData *fdata= rna_mesh_fdata(me); CustomData_set_layer_clone(fdata, CD_MTFACE, value); - mesh_update_customdata_pointers(me); +} + +static void rna_Mesh_uv_texture_stencil_index_set(PointerRNA *ptr, int value) +{ + Mesh *me= (Mesh*)ptr->data; + CustomData *fdata= rna_mesh_fdata(me); + + CustomData_set_layer_stencil(fdata, CD_MTFACE, value); } static void rna_Mesh_active_uv_texture_index_range(PointerRNA *ptr, int *min, int *max) @@ -1593,17 +1631,25 @@ static void rna_def_mesh(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Active UV Texture Index", "Active UV texture index."); RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); - prop= RNA_def_property(srna, "clone_uv_texture", PROP_POINTER, PROP_UNSIGNED); + prop= RNA_def_property(srna, "uv_texture_clone", PROP_POINTER, PROP_UNSIGNED); RNA_def_property_struct_type(prop, "MeshTextureFaceLayer"); - RNA_def_property_pointer_funcs(prop, "rna_Mesh_clone_uv_texture_get", "rna_Mesh_clone_uv_texture_set", NULL); + RNA_def_property_pointer_funcs(prop, "rna_Mesh_uv_texture_clone_get", "rna_Mesh_uv_texture_clone_set", NULL); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Clone UV Texture", "UV texture to be used as cloning source."); - RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); - prop= RNA_def_property(srna, "clone_uv_texture_index", PROP_INT, PROP_UNSIGNED); - RNA_def_property_int_funcs(prop, "rna_Mesh_clone_uv_texture_index_get", "rna_Mesh_clone_uv_texture_index_set", "rna_Mesh_active_uv_texture_index_range"); + prop= RNA_def_property(srna, "uv_texture_clone_index", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_funcs(prop, "rna_Mesh_uv_texture_clone_index_get", "rna_Mesh_uv_texture_clone_index_set", "rna_Mesh_active_uv_texture_index_range"); RNA_def_property_ui_text(prop, "Clone UV Texture Index", "Clone UV texture index."); - RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); + + prop= RNA_def_property(srna, "uv_texture_stencil", PROP_POINTER, PROP_UNSIGNED); + RNA_def_property_struct_type(prop, "MeshTextureFaceLayer"); + RNA_def_property_pointer_funcs(prop, "rna_Mesh_uv_texture_stencil_get", "rna_Mesh_uv_texture_stencil_set", NULL); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Mask UV Texture", "UV texture to mask the painted area."); + + prop= RNA_def_property(srna, "uv_texture_stencil_index", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_funcs(prop, "rna_Mesh_uv_texture_stencil_index_get", "rna_Mesh_uv_texture_stencil_index_set", "rna_Mesh_active_uv_texture_index_range"); + RNA_def_property_ui_text(prop, "Mask UV Texture Index", "Mask UV texture index."); /* Vertex colors */ diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index c8fb11ced95..13c3b15549b 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -315,11 +315,11 @@ static void rna_def_image_paint(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Normal", "Paint most on faces pointing towards the view"); prop= RNA_def_property(srna, "use_stencil_layer", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", IMAGEPAINT_PROJECT_LAYER_MASK); + RNA_def_property_boolean_sdna(prop, NULL, "flag", IMAGEPAINT_PROJECT_LAYER_STENCIL); RNA_def_property_ui_text(prop, "Stencil Layer", "Set the mask layer from the UV layer buttons"); prop= RNA_def_property(srna, "invert_stencil", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", IMAGEPAINT_PROJECT_LAYER_MASK_INV); + RNA_def_property_boolean_sdna(prop, NULL, "flag", IMAGEPAINT_PROJECT_LAYER_STENCIL_INV); RNA_def_property_ui_text(prop, "Invert", "Invert the stencil layer"); prop= RNA_def_property(srna, "use_clone_layer", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From 0606dbe291a00edba9a3010e109c200541321d63 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 22 Dec 2009 11:59:30 +0000 Subject: Fix #20433: make single user doesn't work from menu. Popup menus for operators were not passing along properties. --- source/blender/editors/include/UI_interface.h | 1 + .../blender/editors/interface/interface_layout.c | 23 ++++++++++++++++++++-- source/blender/windowmanager/intern/wm_operators.c | 10 ++++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 8e44d7f386e..313791e28cb 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -678,6 +678,7 @@ void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, void uiItemEnumR_string(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, char *value); void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname); void uiItemPointerR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, struct PointerRNA *searchptr, char *searchpropname); +void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, struct IDProperty *properties, int context, int flag); void uiItemL(uiLayout *layout, char *name, int icon); /* label */ void uiItemM(uiLayout *layout, struct bContext *C, char *name, int icon, char *menuname); /* menu */ diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index b0670be63a2..9dd5535ea30 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -695,7 +695,7 @@ void uiItemEnumO(uiLayout *layout, char *name, int icon, char *opname, char *pro uiItemFullO(layout, name, icon, opname, ptr.data, layout->root->opcontext, 0); } -void uiItemsEnumO(uiLayout *layout, char *opname, char *propname) +void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, IDProperty *properties, int context, int flag) { wmOperatorType *ot= WM_operatortype_find(opname, 0); PointerRNA ptr; @@ -721,7 +721,21 @@ void uiItemsEnumO(uiLayout *layout, char *opname, char *propname) for(i=0; iroot->opcontext, 0); +} + /* for use in cases where we have */ void uiItemEnumO_string(uiLayout *layout, char *name, int icon, char *opname, char *propname, char *value_str) { diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index fc5abec1561..d65580681eb 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -621,7 +621,7 @@ int WM_menu_invoke(bContext *C, wmOperator *op, wmEvent *event) else { pup= uiPupMenuBegin(C, op->type->name, 0); layout= uiPupMenuLayout(pup); - uiItemsEnumO(layout, op->type->idname, (char*)RNA_property_identifier(prop)); + uiItemsFullEnumO(layout, op->type->idname, (char*)RNA_property_identifier(prop), op->ptr->data, WM_OP_EXEC_REGION_WIN, 0); uiPupMenuEnd(C, pup); } @@ -633,10 +633,16 @@ int WM_operator_confirm_message(bContext *C, wmOperator *op, char *message) { uiPopupMenu *pup; uiLayout *layout; + IDProperty *properties= op->ptr->data; + + if(properties && properties->len) + properties= IDP_CopyProperty(op->ptr->data); + else + properties= NULL; pup= uiPupMenuBegin(C, "OK?", ICON_QUESTION); layout= uiPupMenuLayout(pup); - uiItemO(layout, message, 0, op->type->idname); + uiItemFullO(layout, message, 0, op->type->idname, properties, WM_OP_EXEC_REGION_WIN, 0); uiPupMenuEnd(C, pup); return OPERATOR_CANCELLED; -- cgit v1.2.3 From d6531927510ad3885176158afa643fee6ec30882 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 22 Dec 2009 12:01:32 +0000 Subject: Reports: writing movies now uses the reports mechanism to throw errors. Also fixes bug #19463: screencast to xvid ffmpeg crash. --- source/blender/blenkernel/BKE_writeavi.h | 12 ++- source/blender/blenkernel/BKE_writeffmpeg.h | 5 +- source/blender/blenkernel/BKE_writeframeserver.h | 7 +- source/blender/blenkernel/intern/writeavi.c | 19 ++-- source/blender/blenkernel/intern/writeffmpeg.c | 120 +++++++++++---------- .../blender/blenkernel/intern/writeframeserver.c | 48 ++++----- source/blender/editors/screen/screen_ops.c | 24 +++-- source/blender/editors/screen/screendump.c | 20 +++- source/blender/quicktime/apple/qtkit_export.m | 100 ++++++++--------- source/blender/quicktime/apple/quicktime_export.c | 83 +++++++------- source/blender/quicktime/quicktime_export.h | 4 +- source/blender/render/extern/include/RE_pipeline.h | 3 +- source/blender/render/intern/source/pipeline.c | 28 +++-- .../blender/windowmanager/intern/wm_event_system.c | 8 +- 14 files changed, 258 insertions(+), 223 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_writeavi.h b/source/blender/blenkernel/BKE_writeavi.h index 4ef63b069c2..a8d38dda103 100644 --- a/source/blender/blenkernel/BKE_writeavi.h +++ b/source/blender/blenkernel/BKE_writeavi.h @@ -37,17 +37,19 @@ extern "C" { /* generic blender movie support, could move to own module */ struct RenderData; +struct ReportList; struct Scene; -void start_avi(struct Scene *scene, struct RenderData *rd, int rectx, int recty); + +int start_avi(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports); void end_avi(void); -void append_avi(struct RenderData *rd, int frame, int *pixels, int rectx, int recty); +int append_avi(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, struct ReportList *reports); void makeavistring (struct RenderData *rd, char *string); typedef struct bMovieHandle { - void (*start_movie)(struct Scene *scene, struct RenderData *rd, int rectx, int recty); - void (*append_movie)(struct RenderData *rd, int frame, int *pixels, int rectx, int recty); + int (*start_movie)(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports); + int (*append_movie)(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, struct ReportList *reports); void (*end_movie)(void); - int (*get_next_frame)(struct RenderData *rd); /* optional */ + int (*get_next_frame)(struct RenderData *rd, struct ReportList *reports); /* optional */ } bMovieHandle; bMovieHandle *BKE_get_movie_handle(int imtype); diff --git a/source/blender/blenkernel/BKE_writeffmpeg.h b/source/blender/blenkernel/BKE_writeffmpeg.h index 07e0e01ef7e..6ec8320f026 100644 --- a/source/blender/blenkernel/BKE_writeffmpeg.h +++ b/source/blender/blenkernel/BKE_writeffmpeg.h @@ -57,11 +57,12 @@ extern "C" { struct IDProperty; struct RenderData; +struct ReportList; struct Scene; -extern void start_ffmpeg(struct Scene *scene, struct RenderData *rd, int rectx, int recty); +extern int start_ffmpeg(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports); extern void end_ffmpeg(void); -extern void append_ffmpeg(struct RenderData *rd, int frame, int *pixels, int rectx, int recty); +extern int append_ffmpeg(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, struct ReportList *reports); extern void ffmpeg_set_preset(struct RenderData *rd, int preset); extern void ffmpeg_verify_image_type(struct RenderData *rd); diff --git a/source/blender/blenkernel/BKE_writeframeserver.h b/source/blender/blenkernel/BKE_writeframeserver.h index 6a38abe977f..50b905cfd75 100644 --- a/source/blender/blenkernel/BKE_writeframeserver.h +++ b/source/blender/blenkernel/BKE_writeframeserver.h @@ -33,12 +33,13 @@ extern "C" { #endif struct RenderData; +struct ReportList; struct Scene; -extern void start_frameserver(struct Scene *scene, struct RenderData *rd, int rectx, int recty); +extern int start_frameserver(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports); extern void end_frameserver(void); -extern void append_frameserver(struct RenderData *rd, int frame, int *pixels, int rectx, int recty); -extern int frameserver_loop(struct RenderData *rd); +extern int append_frameserver(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, struct ReportList *reports); +extern int frameserver_loop(struct RenderData *rd, struct ReportList *reports); #ifdef __cplusplus } diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c index 7c58a4f9499..ec3d1185179 100644 --- a/source/blender/blenkernel/intern/writeavi.c +++ b/source/blender/blenkernel/intern/writeavi.c @@ -40,6 +40,7 @@ #include "BLI_blenlib.h" #include "BKE_global.h" +#include "BKE_report.h" #include "BKE_utildefines.h" #include "BKE_writeavi.h" #include "AVI_avi.h" @@ -127,7 +128,7 @@ void makeavistring (RenderData *rd, char *string) } } -void start_avi(struct Scene *scene, RenderData *rd, int rectx, int recty) +int start_avi(Scene *scene, RenderData *rd, int rectx, int recty, ReportList *reports) { int x, y; char name[256]; @@ -153,10 +154,10 @@ void start_avi(struct Scene *scene, RenderData *rd, int rectx, int recty) else format = AVI_FORMAT_MJPEG; if (AVI_open_compress (name, avi, 1, format) != AVI_ERROR_NONE) { - printf("cannot open or start AVI movie file"); + BKE_report(reports, RPT_ERROR, "Cannot open or start AVI movie file."); MEM_freeN (avi); avi = NULL; - return; + return 0; } AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_WIDTH, &x); @@ -170,18 +171,17 @@ void start_avi(struct Scene *scene, RenderData *rd, int rectx, int recty) /* avi->odd_fields= (rd->mode & R_ODDFIELD)?1:0; */ printf("Created avi: %s\n", name); + return 1; } -void append_avi(RenderData *rd, int frame, int *pixels, int rectx, int recty) +int append_avi(RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports) { unsigned int *rt1, *rt2, *rectot; int x, y; char *cp, rt; - if (avi == NULL) { - G.afbreek = 1; - return; - } + if (avi == NULL) + return 0; /* note that libavi free's the buffer... stupid interface - zr */ rectot= MEM_mallocN(rectx*recty*sizeof(int), "rectot"); @@ -205,6 +205,8 @@ void append_avi(RenderData *rd, int frame, int *pixels, int rectx, int recty) AVI_write_frame (avi, (frame-sframe), AVI_FORMAT_RGB32, rectot, rectx*recty*4); // printf ("added frame %3d (frame %3d in avi): ", frame, frame-sframe); + + return 1; } void end_avi(void) @@ -215,3 +217,4 @@ void end_avi(void) MEM_freeN (avi); avi= NULL; } + diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 1953058fddf..417679417e4 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -52,23 +52,24 @@ #define snprintf _snprintf #endif -#include "BKE_writeffmpeg.h" - #include "MEM_guardedalloc.h" + +#include "DNA_scene_types.h" + #include "BLI_blenlib.h" +#include "AUD_C-API.h" /* must be before BKE_sound.h for define */ + #include "BKE_global.h" #include "BKE_idprop.h" +#include "BKE_main.h" +#include "BKE_report.h" +#include "BKE_sound.h" +#include "BKE_writeffmpeg.h" #include "IMB_imbuf_types.h" #include "IMB_imbuf.h" -#include "DNA_scene_types.h" - -#include "AUD_C-API.h" -#include "BKE_sound.h" -#include "BKE_main.h" - #ifdef HAVE_CONFIG_H #include #endif @@ -239,10 +240,10 @@ static const char** get_file_extensions(int format) } /* Write a frame to the output file */ -static void write_video_frame(RenderData *rd, AVFrame* frame) +static int write_video_frame(RenderData *rd, AVFrame* frame, ReportList *reports) { int outsize = 0; - int ret; + int ret, success= 1; AVCodecContext* c = get_codec_from_stream(video_stream); #ifdef FFMPEG_CODEC_TIME_BASE frame->pts = rd->cfra - rd->sfra; @@ -276,14 +277,17 @@ static void write_video_frame(RenderData *rd, AVFrame* frame) packet.size = outsize; ret = av_interleaved_write_frame(outfile, &packet); } else ret = 0; + if (ret != 0) { - G.afbreek = 1; - //XXX error("Error writing frame"); + success= 0; + BKE_report(reports, RPT_ERROR, "Error writing frame."); } + + return success; } /* read and encode a frame of audio from the buffer */ -static AVFrame* generate_video_frame(uint8_t* pixels) +static AVFrame* generate_video_frame(uint8_t* pixels, ReportList *reports) { uint8_t* rendered_frame; @@ -295,8 +299,7 @@ static AVFrame* generate_video_frame(uint8_t* pixels) if (c->pix_fmt != PIX_FMT_BGR32) { rgb_frame = alloc_picture(PIX_FMT_BGR32, width, height); if (!rgb_frame) { - G.afbreek=1; - //XXX error("Couldn't allocate temporary frame"); + BKE_report(reports, RPT_ERROR, "Couldn't allocate temporary frame."); return NULL; } } else { @@ -613,7 +616,7 @@ static AVStream* alloc_audio_stream(RenderData *rd, int codec_id, AVFormatContex } /* essential functions -- start, append, end */ -static void start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty) +static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, ReportList *reports) { /* Handle to the output file */ AVFormatContext* of; @@ -648,22 +651,19 @@ static void start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty) exts = get_file_extensions(ffmpeg_type); if (!exts) { - G.afbreek = 1; /* Abort render */ - //XXX error("No valid formats found"); - return; + BKE_report(reports, RPT_ERROR, "No valid formats found."); + return 0; } fmt = guess_format(NULL, exts[0], NULL); if (!fmt) { - G.afbreek = 1; /* Abort render */ - //XXX error("No valid formats found"); - return; + BKE_report(reports, RPT_ERROR, "No valid formats found."); + return 0; } of = av_alloc_format_context(); if (!of) { - G.afbreek = 1; - //XXX error("Error opening output file"); - return; + BKE_report(reports, RPT_ERROR, "Error opening output file"); + return 0; } of->oformat = fmt; @@ -711,22 +711,16 @@ static void start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty) } if (fmt->video_codec == CODEC_ID_DVVIDEO) { if (rectx != 720) { - G.afbreek = 1; - //XXX error("Render width has to be 720 pixels for DV!"); - return; + BKE_report(reports, RPT_ERROR, "Render width has to be 720 pixels for DV!"); + return 0; } if (rd->frs_sec != 25 && recty != 480) { - G.afbreek = 1; - //XXX error("Render height has to be 480 pixels " - // "for DV-NTSC!"); - return; - + BKE_report(reports, RPT_ERROR, "Render height has to be 480 pixels for DV-NTSC!"); + return 0; } if (rd->frs_sec == 25 && recty != 576) { - G.afbreek = 1; - //XXX error("Render height has to be 576 pixels " - // "for DV-PAL!"); - return; + BKE_report(reports, RPT_ERROR, "Render height has to be 576 pixels for DV-PAL!"); + return 0; } } @@ -735,46 +729,42 @@ static void start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty) if (ffmpeg_type == FFMPEG_DV) { fmt->audio_codec = CODEC_ID_PCM_S16LE; if (ffmpeg_multiplex_audio && rd->ffcodecdata.audio_mixrate != 48000) { - G.afbreek = 1; - //XXX error("FFMPEG only supports 48khz / stereo " - // "audio for DV!"); - return; + BKE_report(reports, RPT_ERROR, "FFMPEG only supports 48khz / stereo audio for DV!"); + return 0; } } video_stream = alloc_video_stream(rd, fmt->video_codec, of, rectx, recty); + printf("alloc video stream %p\n", video_stream); if (!video_stream) { - G.afbreek = 1; - //XXX error("Error initializing video stream"); - return; + BKE_report(reports, RPT_ERROR, "Error initializing video stream."); + return 0; } if (ffmpeg_multiplex_audio) { audio_stream = alloc_audio_stream(rd, fmt->audio_codec, of); if (!audio_stream) { - G.afbreek = 1; - //XXX error("Error initializing audio stream"); - return; + BKE_report(reports, RPT_ERROR, "Error initializing audio stream."); + return 0; } //XXX audiostream_play(SFRA, 0, 1); } if (av_set_parameters(of, NULL) < 0) { - G.afbreek = 1; - //XXX error("Error setting output parameters"); - return; + BKE_report(reports, RPT_ERROR, "Error setting output parameters."); + return 0; } if (!(fmt->flags & AVFMT_NOFILE)) { if (url_fopen(&of->pb, name, URL_WRONLY) < 0) { - G.afbreek = 1; - // - //XXX error("Could not open file for writing"); - return; + BKE_report(reports, RPT_ERROR, "Could not open file for writing."); + return 0; } } av_write_header(of); outfile = of; dump_format(of, 0, name, 1); + + return 1; } /* ********************************************************************** @@ -831,11 +821,13 @@ static void makeffmpegstring(RenderData* rd, char* string) { } } -void start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty) +int start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty, ReportList *reports) { + int success; + ffmpeg_autosplit_count = 0; - start_ffmpeg_impl(rd, rectx, recty); + success = start_ffmpeg_impl(rd, rectx, recty, reports); if(ffmpeg_multiplex_audio && audio_stream) { @@ -846,6 +838,8 @@ void start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty) specs.rate = rd->ffcodecdata.audio_mixrate; audio_mixdown_device = sound_mixdown(scene, specs, rd->sfra, rd->efra, rd->ffcodecdata.audio_volume); } + + return success; } void end_ffmpeg(void); @@ -870,22 +864,29 @@ static void write_audio_frames() } } -void append_ffmpeg(RenderData *rd, int frame, int *pixels, int rectx, int recty) +int append_ffmpeg(RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports) { + AVFrame* avframe; + int success; + fprintf(stderr, "Writing frame %i, " "render width=%d, render height=%d\n", frame, rectx, recty); write_audio_frames(); - write_video_frame(rd, generate_video_frame((unsigned char*) pixels)); + + avframe= generate_video_frame((unsigned char*) pixels, reports); + success= (avframe && write_video_frame(rd, avframe, reports)); if (ffmpeg_autosplit) { if (url_ftell(OUTFILE_PB) > FFMPEG_AUTOSPLIT_SIZE) { end_ffmpeg(); ffmpeg_autosplit_count++; - start_ffmpeg_impl(rd, rectx, recty); + success &= start_ffmpeg_impl(rd, rectx, recty, reports); } } + + return success; } @@ -914,6 +915,7 @@ void end_ffmpeg(void) if (video_stream && get_codec_from_stream(video_stream)) { avcodec_close(get_codec_from_stream(video_stream)); video_stream = 0; + printf("zero video stream %p\n", video_stream); } diff --git a/source/blender/blenkernel/intern/writeframeserver.c b/source/blender/blenkernel/intern/writeframeserver.c index 0780cd0dc48..20d858fffeb 100644 --- a/source/blender/blenkernel/intern/writeframeserver.c +++ b/source/blender/blenkernel/intern/writeframeserver.c @@ -48,6 +48,7 @@ #include "DNA_userdef_types.h" #include "BKE_global.h" +#include "BKE_report.h" #include "IMB_imbuf_types.h" #include "IMB_imbuf.h" @@ -101,48 +102,45 @@ static int closesocket(int fd) } #endif -void start_frameserver(struct Scene *scene, RenderData *rd, int rectx, int recty) +int start_frameserver(struct Scene *scene, RenderData *rd, int rectx, int recty, ReportList *reports) { - struct sockaddr_in addr; + struct sockaddr_in addr; int arg = 1; if (!startup_socket_system()) { - G.afbreek = 1; - //XXX error("Can't startup socket system"); - return; + BKE_report(reports, RPT_ERROR, "Can't startup socket system"); + return 0; } if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { shutdown_socket_system(); - G.afbreek = 1; /* Abort render */ - //XXX error("Can't open socket"); - return; - } + BKE_report(reports, RPT_ERROR, "Can't open socket"); + return 0; + } - setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, - (char*) &arg, sizeof(arg)); + setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char*) &arg, sizeof(arg)); addr.sin_family = AF_INET; - addr.sin_port = htons(U.frameserverport); - addr.sin_addr.s_addr = INADDR_ANY; + addr.sin_port = htons(U.frameserverport); + addr.sin_addr.s_addr = INADDR_ANY; if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { shutdown_socket_system(); - G.afbreek = 1; /* Abort render */ - //XXX error("Can't bind to socket"); - return; - } + BKE_report(reports, RPT_ERROR, "Can't bind to socket"); + return 0; + } - if (listen(sock, SOMAXCONN) < 0) { + if (listen(sock, SOMAXCONN) < 0) { shutdown_socket_system(); - G.afbreek = 1; /* Abort render */ - //XXX error("Can't establish listen backlog"); - return; - } + BKE_report(reports, RPT_ERROR, "Can't establish listen backlog"); + return 0; + } connsock = -1; render_width = rectx; render_height = recty; + + return 1; } static char index_page[] @@ -249,7 +247,7 @@ static int handle_request(RenderData *rd, char * req) return -1; } -int frameserver_loop(RenderData *rd) +int frameserver_loop(RenderData *rd, ReportList *reports) { fd_set readfds; struct timeval tv; @@ -355,7 +353,7 @@ static void serve_ppm(int *pixels, int rectx, int recty) connsock = -1; } -void append_frameserver(RenderData *rd, int frame, int *pixels, int rectx, int recty) +int append_frameserver(RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports) { fprintf(stderr, "Serving frame: %d\n", frame); if (write_ppm) { @@ -365,6 +363,8 @@ void append_frameserver(RenderData *rd, int frame, int *pixels, int rectx, int r closesocket(connsock); connsock = -1; } + + return 0; } void end_frameserver() diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index fe1587a965d..f0cf338be06 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2810,7 +2810,7 @@ static int screen_render_exec(bContext *C, wmOperator *op) RE_test_break_cb(re, NULL, (int (*)(void *)) blender_test_break); if(RNA_boolean_get(op->ptr, "animation")) - RE_BlenderAnim(re, scene, scene->r.sfra, scene->r.efra, scene->r.frame_step); + RE_BlenderAnim(re, scene, scene->r.sfra, scene->r.efra, scene->r.frame_step, op->reports); else RE_BlenderFrame(re, scene, scene->r.cfra); @@ -2831,6 +2831,7 @@ typedef struct RenderJob { ImageUser iuser; short *stop; short *do_update; + ReportList *reports; } RenderJob; static void render_freejob(void *rjv) @@ -3035,7 +3036,7 @@ static void render_startjob(void *rjv, short *stop, short *do_update) #endif if(rj->anim) - RE_BlenderAnim(rj->re, rj->scene, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step); + RE_BlenderAnim(rj->re, rj->scene, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step, rj->reports); else RE_BlenderFrame(rj->re, rj->scene, rj->scene->r.cfra); } @@ -3108,6 +3109,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) rj->anim= RNA_boolean_get(op->ptr, "animation"); rj->iuser.scene= scene; rj->iuser.ok= 1; + rj->reports= op->reports; /* setup job */ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY); @@ -3139,8 +3141,6 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) WM_jobs_start(CTX_wm_manager(C), steve); - G.afbreek= 0; - WM_cursor_wait(0); WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); @@ -3185,6 +3185,7 @@ typedef struct OGLRender { GPUOffScreen *ofs; int sizex, sizey; + ReportList *reports; bMovieHandle *mh; int cfrao, nfra; @@ -3383,9 +3384,9 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even if(ibuf) { if(BKE_imtype_is_movie(scene->r.imtype)) { - oglrender->mh->append_movie(&scene->r, CFRA, (int*)ibuf->rect, oglrender->sizex, oglrender->sizey); - printf("Append frame %d", scene->r.cfra); - ok= 1; + ok= oglrender->mh->append_movie(&scene->r, CFRA, (int*)ibuf->rect, oglrender->sizex, oglrender->sizey, oglrender->reports); + if(ok) + printf("Append frame %d", scene->r.cfra); } else { BKE_makepicstring(scene, name, scene->r.pic, scene->r.cfra, scene->r.imtype); @@ -3439,9 +3440,14 @@ static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *eve oglrender= op->customdata; scene= oglrender->scene; + oglrender->reports= op->reports; oglrender->mh= BKE_get_movie_handle(scene->r.imtype); - if(BKE_imtype_is_movie(scene->r.imtype)) - oglrender->mh->start_movie(scene, &scene->r, oglrender->sizex, oglrender->sizey); + if(BKE_imtype_is_movie(scene->r.imtype)) { + if(!oglrender->mh->start_movie(scene, &scene->r, oglrender->sizex, oglrender->sizey, oglrender->reports)) { + screen_opengl_render_end(C, oglrender); + return OPERATOR_CANCELLED; + } + } oglrender->cfrao= scene->r.cfra; oglrender->nfra= SFRA; diff --git a/source/blender/editors/screen/screendump.c b/source/blender/editors/screen/screendump.c index 81c3f4d6814..088be194fe8 100644 --- a/source/blender/editors/screen/screendump.c +++ b/source/blender/editors/screen/screendump.c @@ -42,6 +42,7 @@ #include "BKE_context.h" #include "BKE_global.h" #include "BKE_image.h" +#include "BKE_report.h" #include "BKE_utildefines.h" #include "BKE_writeavi.h" @@ -185,6 +186,7 @@ typedef struct ScreenshotJob { int x, y, dumpsx, dumpsy; short *stop; short *do_update; + ReportList reports; } ScreenshotJob; @@ -227,8 +229,12 @@ static void screenshot_startjob(void *sjv, short *stop, short *do_update) rd.frs_sec= 10; rd.frs_sec_base= 1.0f; - if(BKE_imtype_is_movie(rd.imtype)) - mh->start_movie(sj->scene, &rd, sj->dumpsx, sj->dumpsy); + if(BKE_imtype_is_movie(rd.imtype)) { + if(!mh->start_movie(sj->scene, &rd, sj->dumpsx, sj->dumpsy, &sj->reports)) { + printf("screencast job stopped\n"); + return; + } + } else mh= NULL; @@ -242,8 +248,10 @@ static void screenshot_startjob(void *sjv, short *stop, short *do_update) if(sj->dumprect) { if(mh) { - mh->append_movie(&rd, cfra, (int *)sj->dumprect, sj->dumpsx, sj->dumpsy); - printf("Append frame %d\n", cfra); + if(mh->append_movie(&rd, cfra, (int *)sj->dumprect, sj->dumpsx, sj->dumpsy, &sj->reports)) + printf("Append frame %d\n", cfra); + else + break; } else { ImBuf *ibuf= IMB_allocImBuf(sj->dumpsx, sj->dumpsy, rd.planes, 0, 0); @@ -286,7 +294,7 @@ static int screencast_exec(bContext *C, wmOperator *op) bScreen *screen= CTX_wm_screen(C); wmJob *steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), screen, 0); ScreenshotJob *sj= MEM_callocN(sizeof(ScreenshotJob), "screenshot job"); - + /* setup sj */ if(RNA_boolean_get(op->ptr, "full")) { wmWindow *win= CTX_wm_window(C); @@ -304,6 +312,8 @@ static int screencast_exec(bContext *C, wmOperator *op) } sj->scene= CTX_data_scene(C); + BKE_reports_init(&sj->reports, RPT_PRINT); + /* setup job */ WM_jobs_customdata(steve, sj, screenshot_freejob); WM_jobs_timer(steve, 0.1, 0, NC_SCREEN|ND_SCREENCAST); diff --git a/source/blender/quicktime/apple/qtkit_export.m b/source/blender/quicktime/apple/qtkit_export.m index c7759055d7e..38baacf009e 100644 --- a/source/blender/quicktime/apple/qtkit_export.m +++ b/source/blender/quicktime/apple/qtkit_export.m @@ -154,68 +154,68 @@ void makeqtstring (RenderData *rd, char *string) { #pragma mark export functions -void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty) +int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, ReportList *reports) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSError *error; char name[2048]; + int success= 1; + if(qtexport == NULL) qtexport = MEM_callocN(sizeof(QuicktimeExport), "QuicktimeExport"); - if (G.afbreek != 1) { - - if(qtexport == NULL) qtexport = MEM_callocN(sizeof(QuicktimeExport), "QuicktimeExport"); - - [QTMovie enterQTKitOnThread]; - - /* Check first if the QuickTime 7.2.1 initToWritableFile: method is available */ - if ([[[[QTMovie alloc] init] autorelease] respondsToSelector:@selector(initToWritableFile:error:)] != YES) { - G.afbreek = 1; - fprintf(stderr, "\nUnable to create quicktime movie, need Quicktime rev 7.2.1 or later"); - } - else { - makeqtstring(rd, name); - qtexport->filename = [NSString stringWithCString:name - encoding:[NSString defaultCStringEncoding]]; - qtexport->movie = [[QTMovie alloc] initToWritableFile:qtexport->filename error:&error]; - - if(qtexport->movie == nil) { - G.afbreek = 1; - NSLog(@"Unable to create quicktime movie : %@",[error localizedDescription]); - [QTMovie exitQTKitOnThread]; - } else { - [qtexport->movie retain]; - [qtexport->filename retain]; - [qtexport->movie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute]; - [qtexport->movie setAttribute:@"Made with Blender" forKey:QTMovieCopyrightAttribute]; - - qtexport->frameDuration = QTMakeTime(rd->frs_sec_base*1000, rd->frs_sec*1000); - - /* specifying the codec attributes : try to retrieve them from render data first*/ - if (rd->qtcodecsettings.codecType) { - qtexport->frameAttributes = [NSDictionary dictionaryWithObjectsAndKeys: - stringWithCodecType(rd->qtcodecsettings.codecType), - QTAddImageCodecType, - [NSNumber numberWithLong:((rd->qtcodecsettings.codecSpatialQuality)*codecLosslessQuality)/100], - QTAddImageCodecQuality, - nil]; - } - else { - qtexport->frameAttributes = [NSDictionary dictionaryWithObjectsAndKeys:@"jpeg", - QTAddImageCodecType, - [NSNumber numberWithLong:codecHighQuality], - QTAddImageCodecQuality, - nil]; - } - [qtexport->frameAttributes retain]; + [QTMovie enterQTKitOnThread]; + + /* Check first if the QuickTime 7.2.1 initToWritableFile: method is available */ + if ([[[[QTMovie alloc] init] autorelease] respondsToSelector:@selector(initToWritableFile:error:)] != YES) { + BKE_report(reports, RPT_EROR, "\nUnable to create quicktime movie, need Quicktime rev 7.2.1 or later"); + success= 0; + } + else { + makeqtstring(rd, name); + qtexport->filename = [NSString stringWithCString:name + encoding:[NSString defaultCStringEncoding]]; + qtexport->movie = [[QTMovie alloc] initToWritableFile:qtexport->filename error:&error]; + + if(qtexport->movie == nil) { + BKE_report(reports, RPT_ERROR, "Unable to create quicktime movie."); + success= 0; + NSLog(@"Unable to create quicktime movie : %@",[error localizedDescription]); + [QTMovie exitQTKitOnThread]; + } else { + [qtexport->movie retain]; + [qtexport->filename retain]; + [qtexport->movie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute]; + [qtexport->movie setAttribute:@"Made with Blender" forKey:QTMovieCopyrightAttribute]; + + qtexport->frameDuration = QTMakeTime(rd->frs_sec_base*1000, rd->frs_sec*1000); + + /* specifying the codec attributes : try to retrieve them from render data first*/ + if (rd->qtcodecsettings.codecType) { + qtexport->frameAttributes = [NSDictionary dictionaryWithObjectsAndKeys: + stringWithCodecType(rd->qtcodecsettings.codecType), + QTAddImageCodecType, + [NSNumber numberWithLong:((rd->qtcodecsettings.codecSpatialQuality)*codecLosslessQuality)/100], + QTAddImageCodecQuality, + nil]; } + else { + qtexport->frameAttributes = [NSDictionary dictionaryWithObjectsAndKeys:@"jpeg", + QTAddImageCodecType, + [NSNumber numberWithLong:codecHighQuality], + QTAddImageCodecQuality, + nil]; + } + [qtexport->frameAttributes retain]; } } [pool drain]; + + return success; } -void append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty) +int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSBitmapImageRep *blBitmapFormatImage; @@ -235,7 +235,7 @@ void append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int rec bitsPerPixel:32]; if (!blBitmapFormatImage) { [pool drain]; - return; + return 0; } from_Ptr = (unsigned char*)pixels; @@ -257,6 +257,8 @@ void append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int rec [blBitmapFormatImage release]; [frameImage release]; [pool drain]; + + return 1; } diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index 68fd60d89d2..a5737e93271 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -503,7 +503,7 @@ void makeqtstring (RenderData *rd, char *string) { } -void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty) { +int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, ReportList *reports) { OSErr err = noErr; char name[2048]; @@ -515,6 +515,7 @@ void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty) #else char *qtname; #endif + int success= 1; if(qtexport == NULL) qtexport = MEM_callocN(sizeof(QuicktimeExport), "QuicktimeExport"); @@ -534,57 +535,57 @@ void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty) check_renderbutton_framerate(rd); } - if (G.afbreek != 1) { - sframe = (rd->sfra); + sframe = (rd->sfra); - makeqtstring(rd, name); + makeqtstring(rd, name); #ifdef __APPLE__ - EnterMoviesOnThread(0); - sprintf(theFullPath, "%s", name); - - /* hack: create an empty file to make FSPathMakeRef() happy */ - myFile = open(theFullPath, O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRUSR|S_IWUSR); - if (myFile < 0) { - printf("error while creating file!\n"); - /* do something? */ - } - close(myFile); - err = FSPathMakeRef((const UInt8 *)theFullPath, &myRef, 0); - CheckError(err, "FsPathMakeRef error"); - err = FSGetCatalogInfo(&myRef, kFSCatInfoNone, NULL, NULL, &qtexport->theSpec, NULL); - CheckError(err, "FsGetCatalogInfoRef error"); + EnterMoviesOnThread(0); + sprintf(theFullPath, "%s", name); + + /* hack: create an empty file to make FSPathMakeRef() happy */ + myFile = open(theFullPath, O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRUSR|S_IWUSR); + if (myFile < 0) { + printf("error while creating file!\n"); + /* do something? */ + } + close(myFile); + err = FSPathMakeRef((const UInt8 *)theFullPath, &myRef, 0); + CheckError(err, "FsPathMakeRef error"); + err = FSGetCatalogInfo(&myRef, kFSCatInfoNone, NULL, NULL, &qtexport->theSpec, NULL); + CheckError(err, "FsGetCatalogInfoRef error"); #endif #ifdef _WIN32 - qtname = get_valid_qtname(name); - sprintf(theFullPath, "%s", qtname); - strcpy(name, qtname); - MEM_freeN(qtname); - - CopyCStringToPascal(theFullPath, qtexport->qtfilename); - err = FSMakeFSSpec(0, 0L, qtexport->qtfilename, &qtexport->theSpec); + qtname = get_valid_qtname(name); + sprintf(theFullPath, "%s", qtname); + strcpy(name, qtname); + MEM_freeN(qtname); + + CopyCStringToPascal(theFullPath, qtexport->qtfilename); + err = FSMakeFSSpec(0, 0L, qtexport->qtfilename, &qtexport->theSpec); #endif - err = CreateMovieFile (&qtexport->theSpec, - kMyCreatorType, - smCurrentScript, - createMovieFileDeleteCurFile | createMovieFileDontCreateResFile, - &qtexport->resRefNum, - &qtexport->theMovie ); - CheckError(err, "CreateMovieFile error"); - - if(err != noErr) { - G.afbreek = 1; -// XXX error("Unable to create Quicktime movie: %s", name); + err = CreateMovieFile (&qtexport->theSpec, + kMyCreatorType, + smCurrentScript, + createMovieFileDeleteCurFile | createMovieFileDontCreateResFile, + &qtexport->resRefNum, + &qtexport->theMovie ); + CheckError(err, "CreateMovieFile error"); + + if(err != noErr) { + BKE_reportf(reports, RPT_ERROR, "Unable to create Quicktime movie: %s", name); + success= 0; #ifdef __APPLE__ - ExitMoviesOnThread(); + ExitMoviesOnThread(); #endif - } else { - printf("Created QuickTime movie: %s\n", name); + } else { + printf("Created QuickTime movie: %s\n", name); - QT_CreateMyVideoTrack(rectx, recty); - } + QT_CreateMyVideoTrack(rectx, recty); } + + return success; } diff --git a/source/blender/quicktime/quicktime_export.h b/source/blender/quicktime/quicktime_export.h index 69f679693f6..543371999ed 100644 --- a/source/blender/quicktime/quicktime_export.h +++ b/source/blender/quicktime/quicktime_export.h @@ -46,8 +46,8 @@ struct RenderData; struct Scene; struct wmOperatorType; -void start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty); //for movie handle (BKE writeavi.c now) -void append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty); +int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, ReportList *reports); //for movie handle (BKE writeavi.c now) +int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports); void end_qt(void); /*RNA helper functions */ diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 477a4baead9..76e3e002513 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -44,6 +44,7 @@ struct RenderData; struct RenderEngine; struct RenderEngineType; struct RenderResult; +struct ReportList; struct Scene; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ @@ -200,7 +201,7 @@ void RE_TileProcessor(struct Render *re, int firsttile, int threaded); /* only RE_NewRender() needed, main Blender render calls */ void RE_BlenderFrame(struct Render *re, struct Scene *scene, int frame); -void RE_BlenderAnim(struct Render *re, struct Scene *scene, int sfra, int efra, int tfra); +void RE_BlenderAnim(struct Render *re, struct Scene *scene, int sfra, int efra, int tfra, struct ReportList *reports); void RE_ReadRenderResult(struct Scene *scene, struct Scene *scenode); void RE_WriteRenderResult(RenderResult *rr, char *filename, int compress); diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index f7d3d6f419a..e2b290f655b 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2752,10 +2752,11 @@ void RE_BlenderFrame(Render *re, Scene *scene, int frame) re->result_ok= 1; } -static void do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh) +static int do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh, ReportList *reports) { char name[FILE_MAX]; RenderResult rres; + int ok= 1; RE_AcquireResultImage(re, &rres); @@ -2768,7 +2769,7 @@ static void do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh) dofree = 1; } RE_ResultGet32(re, (unsigned int *)rres.rect32); - mh->append_movie(&re->r, scene->r.cfra, rres.rect32, rres.rectx, rres.recty); + ok= mh->append_movie(&re->r, scene->r.cfra, rres.rect32, rres.rectx, rres.recty, reports); if(dofree) { MEM_freeN(rres.rect32); } @@ -2785,7 +2786,6 @@ static void do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh) } else { ImBuf *ibuf= IMB_allocImBuf(rres.rectx, rres.recty, scene->r.planes, 0, 0); - int ok; /* if not exists, BKE_write_ibuf makes one */ ibuf->rect= (unsigned int *)rres.rect32; @@ -2802,7 +2802,6 @@ static void do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh) if(ok==0) { printf("Render error: cannot save %s\n", name); - G.afbreek=1; } else printf("Saved: %s", name); @@ -2826,10 +2825,12 @@ static void do_write_image_or_movie(Render *re, Scene *scene, bMovieHandle *mh) BLI_timestr(re->i.lastframetime, name); printf(" Time: %s\n", name); fflush(stdout); /* needed for renderd !! (not anymore... (ton)) */ + + return ok; } /* saves images to disk */ -void RE_BlenderAnim(Render *re, Scene *scene, int sfra, int efra, int tfra) +void RE_BlenderAnim(Render *re, Scene *scene, int sfra, int efra, int tfra, ReportList *reports) { bMovieHandle *mh= BKE_get_movie_handle(scene->r.imtype); unsigned int lay; @@ -2846,18 +2847,20 @@ void RE_BlenderAnim(Render *re, Scene *scene, int sfra, int efra, int tfra) re->result_ok= 0; if(BKE_imtype_is_movie(scene->r.imtype)) - mh->start_movie(scene, &re->r, re->rectx, re->recty); - + if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, reports)) + G.afbreek= 1; + if (mh->get_next_frame) { while (!(G.afbreek == 1)) { - int nf = mh->get_next_frame(&re->r); + int nf = mh->get_next_frame(&re->r, reports); if (nf >= 0 && nf >= scene->r.sfra && nf <= scene->r.efra) { scene->r.cfra = re->r.cfra = nf; do_render_all_options(re); if(re->test_break(re->tbh) == 0) { - do_write_image_or_movie(re, scene, mh); + if(!do_write_image_or_movie(re, scene, mh, reports)) + G.afbreek= 1; } } else { if(re->test_break(re->tbh)) @@ -2907,8 +2910,11 @@ void RE_BlenderAnim(Render *re, Scene *scene, int sfra, int efra, int tfra) do_render_all_options(re); - if(re->test_break(re->tbh) == 0) - do_write_image_or_movie(re, scene, mh); + if(re->test_break(re->tbh) == 0) { + if(!G.afbreek) + if(!do_write_image_or_movie(re, scene, mh, reports)) + G.afbreek= 1; + } else G.afbreek= 1; diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 435f3823fed..6b0368fbf8a 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -305,7 +305,7 @@ static int wm_operator_exec(bContext *C, wmOperator *op, int repeat) if(op->type->exec) retval= op->type->exec(C, op); - if(!(retval & OPERATOR_RUNNING_MODAL)) + if(retval & (OPERATOR_FINISHED|OPERATOR_CANCELLED)) if(op->reports->list.first) uiPupMenuReports(C, op->reports); @@ -435,11 +435,11 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P /* Note, if the report is given as an argument then assume the caller will deal with displaying them * currently python only uses this */ - if(!(retval & OPERATOR_RUNNING_MODAL) && reports==NULL) { + if((retval & (OPERATOR_FINISHED|OPERATOR_CANCELLED)) && reports==NULL) if(op->reports->list.first) /* only show the report if the report list was not given in the function */ uiPupMenuReports(C, op->reports); - if (retval & OPERATOR_FINISHED) /* todo - this may conflict with the other wm_operator_print, if theres ever 2 prints for 1 action will may need to add modal check here */ + if (retval & OPERATOR_FINISHED) { /* todo - this may conflict with the other wm_operator_print, if theres ever 2 prints for 1 action will may need to add modal check here */ if(G.f & G_DEBUG) wm_operator_print(op); } @@ -884,7 +884,7 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand CTX_wm_region_set(C, NULL); } - if(!(retval & OPERATOR_RUNNING_MODAL)) + if(retval & (OPERATOR_FINISHED|OPERATOR_CANCELLED)) if(op->reports->list.first) uiPupMenuReports(C, op->reports); -- cgit v1.2.3 From 68bc4d7355d8a13d6565d976180970af5c2d20e3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 22 Dec 2009 15:20:31 +0000 Subject: Attempt to fix compilation of quicktime after reporting changes (can't build this file myself, only qtkit seems to work here). --- source/blender/quicktime/apple/qtkit_export.m | 3 +- source/blender/quicktime/apple/quicktime_export.c | 99 ++++++++++++----------- source/blender/quicktime/quicktime_export.h | 5 +- 3 files changed, 57 insertions(+), 50 deletions(-) (limited to 'source/blender') diff --git a/source/blender/quicktime/apple/qtkit_export.m b/source/blender/quicktime/apple/qtkit_export.m index 38baacf009e..1466d3a3a09 100644 --- a/source/blender/quicktime/apple/qtkit_export.m +++ b/source/blender/quicktime/apple/qtkit_export.m @@ -39,6 +39,7 @@ #include "BKE_global.h" #include "BKE_scene.h" +#include "BKE_report.h" #include "BLI_blenlib.h" @@ -167,7 +168,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R /* Check first if the QuickTime 7.2.1 initToWritableFile: method is available */ if ([[[[QTMovie alloc] init] autorelease] respondsToSelector:@selector(initToWritableFile:error:)] != YES) { - BKE_report(reports, RPT_EROR, "\nUnable to create quicktime movie, need Quicktime rev 7.2.1 or later"); + BKE_report(reports, RPT_ERROR, "\nUnable to create quicktime movie, need Quicktime rev 7.2.1 or later"); success= 0; } else { diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index a5737e93271..0475cd6e1d8 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -37,9 +37,10 @@ #include "WM_api.h" #include "WM_types.h" +#include "BKE_context.h" #include "BKE_global.h" +#include "BKE_report.h" #include "BKE_scene.h" -#include "BKE_context.h" #include "BLI_blenlib.h" @@ -76,13 +77,13 @@ #define kTrackStart 0 #define kMediaStart 0 -static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, int recty); -static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int recty); +static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, int recty, struct ReportList *reports); +static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int recty, struct ReportList *reports); static void QT_EndAddVideoSamplesToMedia (void); -static void QT_CreateMyVideoTrack (int rectx, int recty); -static void QT_EndCreateMyVideoTrack (void); -static void check_renderbutton_framerate(struct RenderData *rd); -static int get_qtcodec_settings(struct RenderData *rd); +static void QT_CreateMyVideoTrack (int rectx, int recty, struct ReportList *reports); +static void QT_EndCreateMyVideoTrack (struct ReportList *reports); +static void check_renderbutton_framerate(struct RenderData *rd, struct ReportList *reports); +static int get_qtcodec_settings(struct RenderData *rd, struct ReportList *reports); typedef struct QuicktimeExport { @@ -171,9 +172,12 @@ int quicktime_codecType_from_rnatmpvalue(int rnatmpvalue) { -static void CheckError(OSErr err, char *msg) +static void CheckError(OSErr err, char *msg, ReportList *reports) { - if(err != noErr) printf("%s: %d\n", msg, err); + if(err != noErr) { + printf("%s: %d\n", msg, err); + BKE_reportf(reports, RPT_ERROR, "%s: %d", msg, err); + } } @@ -316,7 +320,7 @@ static OSErr QT_AddUserDataTextToMovie (Movie theMovie, char *theText, OSType th } -static void QT_CreateMyVideoTrack(int rectx, int recty) +static void QT_CreateMyVideoTrack(int rectx, int recty, ReportList *reports) { OSErr err = noErr; Rect trackFrame; @@ -331,7 +335,7 @@ static void QT_CreateMyVideoTrack(int rectx, int recty) FixRatio(trackFrame.right,1), FixRatio(trackFrame.bottom,1), 0); - CheckError( GetMoviesError(), "NewMovieTrack error" ); + CheckError( GetMoviesError(), "NewMovieTrack error", reports ); // SetIdentityMatrix(&myMatrix); // ScaleMatrix(&myMatrix, fixed1, Long2Fix(-1), 0, 0); @@ -343,34 +347,34 @@ static void QT_CreateMyVideoTrack(int rectx, int recty) qtdata->kVideoTimeScale, nil, 0); - CheckError( GetMoviesError(), "NewTrackMedia error" ); + CheckError( GetMoviesError(), "NewTrackMedia error", reports ); err = BeginMediaEdits (qtexport->theMedia); - CheckError( err, "BeginMediaEdits error" ); + CheckError( err, "BeginMediaEdits error", reports ); - QT_StartAddVideoSamplesToMedia (&trackFrame, rectx, recty); + QT_StartAddVideoSamplesToMedia (&trackFrame, rectx, recty, reports); } -static void QT_EndCreateMyVideoTrack(void) +static void QT_EndCreateMyVideoTrack(ReportList *reports) { OSErr err = noErr; QT_EndAddVideoSamplesToMedia (); err = EndMediaEdits (qtexport->theMedia); - CheckError( err, "EndMediaEdits error" ); + CheckError( err, "EndMediaEdits error", reports ); err = InsertMediaIntoTrack (qtexport->theTrack, kTrackStart,/* track start time */ kMediaStart,/* media start time */ GetMediaDuration (qtexport->theMedia), fixed1); - CheckError( err, "InsertMediaIntoTrack error" ); + CheckError( err, "InsertMediaIntoTrack error", reports ); } -static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, int recty) +static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, int recty, ReportList *reports) { SCTemporalSettings gTemporalSettings; OSErr err = noErr; @@ -384,7 +388,7 @@ static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, i NULL, NULL, 0, (Ptr)qtexport->ibuf->rect, rectx * 4 ); - CheckError (err, "NewGWorldFromPtr error"); + CheckError (err, "NewGWorldFromPtr error", reports); qtexport->thePixMap = GetGWorldPixMap(qtexport->theGWorld); LockPixels(qtexport->thePixMap); @@ -407,11 +411,11 @@ static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, i SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); err = SCCompressSequenceBegin(qtdata->theComponent, qtexport->thePixMap, NULL, &qtexport->anImageDescription); - CheckError (err, "SCCompressSequenceBegin error" ); + CheckError (err, "SCCompressSequenceBegin error", reports ); } -static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int recty) +static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int recty, ReportList *reports) { OSErr err = noErr; Rect imageRect; @@ -453,7 +457,7 @@ static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int &compressedData, &dataSize, &syncFlag); - CheckError(err, "SCCompressSequenceFrame error"); + CheckError(err, "SCCompressSequenceFrame error", reports); err = AddMediaSample(qtexport->theMedia, compressedData, @@ -464,7 +468,7 @@ static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int 1, syncFlag, NULL); - CheckError(err, "AddMediaSample error"); + CheckError(err, "AddMediaSample error", reports); printf ("added frame %3d (frame %3d in movie): ", frame, frame-sframe); } @@ -527,12 +531,12 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R qtdata = MEM_callocN(sizeof(QuicktimeComponentData), "QuicktimeCodecDataExt"); if(rd->qtcodecdata == NULL || rd->qtcodecdata->cdParms == NULL) { - get_qtcodec_settings(rd); + get_qtcodec_settings(rd, reports); } else { qtdata->theComponent = OpenDefaultComponent(StandardCompressionType, StandardCompressionSubType); - QT_GetCodecSettingsFromScene(rd); - check_renderbutton_framerate(rd); + QT_GetCodecSettingsFromScene(rd, reports); + check_renderbutton_framerate(rd, reports); } sframe = (rd->sfra); @@ -551,9 +555,9 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R } close(myFile); err = FSPathMakeRef((const UInt8 *)theFullPath, &myRef, 0); - CheckError(err, "FsPathMakeRef error"); + CheckError(err, "FsPathMakeRef error", reports); err = FSGetCatalogInfo(&myRef, kFSCatInfoNone, NULL, NULL, &qtexport->theSpec, NULL); - CheckError(err, "FsGetCatalogInfoRef error"); + CheckError(err, "FsGetCatalogInfoRef error", reports); #endif #ifdef _WIN32 qtname = get_valid_qtname(name); @@ -571,7 +575,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R createMovieFileDeleteCurFile | createMovieFileDontCreateResFile, &qtexport->resRefNum, &qtexport->theMovie ); - CheckError(err, "CreateMovieFile error"); + CheckError(err, "CreateMovieFile error", reports); if(err != noErr) { BKE_reportf(reports, RPT_ERROR, "Unable to create Quicktime movie: %s", name); @@ -582,15 +586,16 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R } else { printf("Created QuickTime movie: %s\n", name); - QT_CreateMyVideoTrack(rectx, recty); + QT_CreateMyVideoTrack(rectx, recty, reports); } return success; } -void append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty) { - QT_DoAddVideoSamplesToMedia(frame, pixels, rectx, recty); +int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports) { + QT_DoAddVideoSamplesToMedia(frame, pixels, rectx, recty, reports); + return 1; } @@ -599,16 +604,16 @@ void end_qt(void) { short resId = movieInDataForkResID; if(qtexport->theMovie) { - QT_EndCreateMyVideoTrack(); + QT_EndCreateMyVideoTrack(NULL); err = AddMovieResource (qtexport->theMovie, qtexport->resRefNum, &resId, qtexport->qtfilename); - CheckError(err, "AddMovieResource error"); + CheckError(err, "AddMovieResource error", NULL); err = QT_AddUserDataTextToMovie(qtexport->theMovie, "Made with Blender", kUserDataTextInformation); - CheckError(err, "AddUserDataTextToMovie error"); + CheckError(err, "AddUserDataTextToMovie error", NULL); err = UpdateMovieResource(qtexport->theMovie, qtexport->resRefNum, resId, qtexport->qtfilename); - CheckError(err, "UpdateMovieResource error"); + CheckError(err, "UpdateMovieResource error", NULL); if(qtexport->resRefNum) CloseMovieFile(qtexport->resRefNum); @@ -635,13 +640,13 @@ void free_qtcomponentdata(void) { } -static void check_renderbutton_framerate(RenderData *rd) +static void check_renderbutton_framerate(RenderData *rd, ReportList *reports) { // to keep float framerates consistent between the codec dialog and frs/sec button. OSErr err; err = SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); - CheckError(err, "SCGetInfo fr error"); + CheckError(err, "SCGetInfo fr error", reports); if( (rd->frs_sec == 24 || rd->frs_sec == 30 || rd->frs_sec == 60) && (qtdata->gTemporalSettings.frameRate == 1571553 || @@ -654,7 +659,7 @@ static void check_renderbutton_framerate(RenderData *rd) } err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); - CheckError( err, "SCSetInfo error" ); + CheckError( err, "SCSetInfo error", reports ); if(qtdata->gTemporalSettings.frameRate == 1571553) { // 23.98 fps qtdata->kVideoTimeScale = 24000; @@ -688,7 +693,7 @@ void quicktime_verify_image_type(RenderData *rd) } } -int get_qtcodec_settings(RenderData *rd) +int get_qtcodec_settings(RenderData *rd, ReportList *reports) { OSErr err = noErr; // erase any existing codecsetting @@ -724,14 +729,14 @@ int get_qtcodec_settings(RenderData *rd) err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); - CheckError(err, "SCSetInfo1 error"); + CheckError(err, "SCSetInfo1 error", reports); err = SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); - CheckError(err, "SCSetInfo2 error"); + CheckError(err, "SCSetInfo2 error", reports); err = SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); - CheckError(err, "SCSetInfo3 error"); + CheckError(err, "SCSetInfo3 error", reports); } - check_renderbutton_framerate(rd); + check_renderbutton_framerate(rd, reports); return err; } @@ -774,11 +779,11 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op) qtdata->aDataRateSetting.frameDuration = rd->frs_sec; err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); - CheckError(err, "SCSetInfo1 error"); + CheckError(err, "SCSetInfo1 error", op->reports); err = SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); - CheckError(err, "SCSetInfo2 error"); + CheckError(err, "SCSetInfo2 error", op->reports); err = SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); - CheckError(err, "SCSetInfo3 error"); + CheckError(err, "SCSetInfo3 error", op->reports); } // put up the dialog box - it needs to be called from the main thread err = SCRequestSequenceSettings(qtdata->theComponent); diff --git a/source/blender/quicktime/quicktime_export.h b/source/blender/quicktime/quicktime_export.h index 543371999ed..2ccda8eb526 100644 --- a/source/blender/quicktime/quicktime_export.h +++ b/source/blender/quicktime/quicktime_export.h @@ -45,9 +45,10 @@ typedef struct QuicktimeCodecTypeDesc { struct RenderData; struct Scene; struct wmOperatorType; +struct ReportList; -int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, ReportList *reports); //for movie handle (BKE writeavi.c now) -int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports); +int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports); //for movie handle (BKE writeavi.c now) +int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, struct ReportList *reports); void end_qt(void); /*RNA helper functions */ -- cgit v1.2.3 From 22a892f4024db7da71ccdced00bf494c28443510 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 22 Dec 2009 16:11:11 +0000 Subject: - make ToolSettings.mesh_selection_mode into an array of 3 bools rather then an enum since multiple can be set at once. - ToolSettings had its id.data set to NULL when taken directly from the context (causing a crash in cases) - menu for changing vert/edge/face selection now a python menu, removed operator. - wm.context_set_value(), would really prefer not to have this since it evaluates the value as a python expression however there are no ways to define arrays in PyOperators --- source/blender/editors/mesh/editmesh_mods.c | 51 --------------------------- source/blender/editors/mesh/mesh_intern.h | 1 - source/blender/editors/mesh/mesh_ops.c | 3 +- source/blender/makesrna/RNA_types.h | 7 +++- source/blender/makesrna/intern/rna_context.c | 1 + source/blender/makesrna/intern/rna_internal.h | 3 ++ source/blender/makesrna/intern/rna_scene.c | 48 ++++++++++++++++++++++--- 7 files changed, 55 insertions(+), 59 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 0fa6ff0188c..d1dde75771d 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -3682,57 +3682,6 @@ void EM_deselect_by_material(EditMesh *em, int index) EM_selectmode_flush(em); } -static void mesh_selection_type(ToolSettings *ts, EditMesh *em, int val) -{ - if(val>0) { - //if(ctrl) EM_convertsel(em, em->selectmode, SCE_SELECT_EDGE); - //if((ctrl)) EM_convertsel(em, em->selectmode, SCE_SELECT_FACE); - - em->selectmode= val; - EM_selectmode_set(em); - - /* note, em stores selectmode to be able to pass it on everywhere without scene, - this is only until all select modes and toolsettings are settled more */ - ts->selectmode= em->selectmode; -// if (EM_texFaceCheck()) - } -} - -static int mesh_selection_type_exec(bContext *C, wmOperator *op) -{ - ToolSettings *ts= CTX_data_tool_settings(C); - Object *obedit= CTX_data_edit_object(C); - EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); - - mesh_selection_type(ts, em, RNA_enum_get(op->ptr,"type")); - - WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); - WM_event_add_notifier(C, NC_SCENE|ND_MODE, NULL); /* header redraw */ - - BKE_mesh_end_editmesh(obedit->data, em); - return OPERATOR_FINISHED; -} - -void MESH_OT_selection_type(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Selection Mode"; - ot->description= "Set the selection mode type."; - ot->idname= "MESH_OT_selection_type"; - - /* api callbacks */ - ot->invoke= WM_menu_invoke; - ot->exec= mesh_selection_type_exec; - - ot->poll= ED_operator_editmesh; - - /* flags */ - ot->flag= OPTYPE_UNDO; - - /* props */ - RNA_def_enum(ot->srna, "type", mesh_select_mode_items, 0, "Type", "Set the mesh selection type"); - -} /* ************************* SEAMS AND EDGES **************** */ static int editmesh_mark_seam(bContext *C, wmOperator *op) diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h index 5d9da374f2f..7b7257ae9cb 100644 --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@ -158,7 +158,6 @@ void MESH_OT_edges_select_sharp(struct wmOperatorType *ot); void MESH_OT_select_shortest_path(struct wmOperatorType *ot); void MESH_OT_select_similar(struct wmOperatorType *ot); void MESH_OT_select_random(struct wmOperatorType *ot); -void MESH_OT_selection_type(struct wmOperatorType *ot); void MESH_OT_loop_multi_select(struct wmOperatorType *ot); void MESH_OT_mark_seam(struct wmOperatorType *ot); void MESH_OT_mark_sharp(struct wmOperatorType *ot); diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index 621e952fb6d..af25dbda16b 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -76,7 +76,6 @@ void ED_operatortypes_mesh(void) WM_operatortype_append(MESH_OT_select_linked); WM_operatortype_append(MESH_OT_select_linked_pick); WM_operatortype_append(MESH_OT_select_random); - WM_operatortype_append(MESH_OT_selection_type); WM_operatortype_append(MESH_OT_hide); WM_operatortype_append(MESH_OT_reveal); WM_operatortype_append(MESH_OT_select_by_number_vertices); @@ -240,7 +239,7 @@ void ED_keymap_mesh(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MESH_OT_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0); /* selection mode */ - WM_keymap_add_item(keymap, "MESH_OT_selection_type", TABKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_selection_mode", TABKEY, KM_PRESS, KM_CTRL, 0); /* hide */ WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, 0, 0); diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index e771b495b96..90603f98c7a 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -164,7 +164,12 @@ typedef enum PropertyFlag { PROP_ID_SELF_CHECK = 1<<20, PROP_NEVER_NULL = 1<<18, - /* flag contains multiple enums */ + /* flag contains multiple enums. + * note: not to be confused with prop->enumbitflags + * this exposes the flag as multiple options in python and the UI. + * + * note: these can't be animated so use with care. + */ PROP_ENUM_FLAG = 1<<21, /* need context for update function */ diff --git a/source/blender/makesrna/intern/rna_context.c b/source/blender/makesrna/intern/rna_context.c index 7239fc1ff3d..70d61b15d9f 100644 --- a/source/blender/makesrna/intern/rna_context.c +++ b/source/blender/makesrna/intern/rna_context.c @@ -100,6 +100,7 @@ static PointerRNA rna_Context_scene_get(PointerRNA *ptr) static PointerRNA rna_Context_tool_settings_get(PointerRNA *ptr) { bContext *C= (bContext*)ptr->data; + ptr->id.data= CTX_data_scene(C); return rna_pointer_inherit_refine(ptr, &RNA_ToolSettings, CTX_data_tool_settings(C)); } diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 1c14d0d4c06..5bb3c82395d 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -75,6 +75,9 @@ typedef struct PropertyDefRNA { int dnalengthfixed; int booleanbit, booleannegative; + + /* not to be confused with PROP_ENUM_FLAG + * this only allows one of the flags to be set at a time, clearing all others */ int enumbitflags; } PropertyDefRNA; diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index e4df352bcc8..ba389f66438 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -72,6 +72,7 @@ EnumPropertyItem proportional_editing_items[] = { {PROP_EDIT_CONNECTED, "CONNECTED", ICON_PROP_CON, "Connected", ""}, {0, NULL, 0, NULL, NULL}}; +/* keep for operators, not used here */ EnumPropertyItem mesh_select_mode_items[] = { {SCE_SELECT_VERTEX, "VERTEX", ICON_VERTEXSEL, "Vertex", "Vertex selection mode."}, {SCE_SELECT_EDGE, "EDGE", ICON_EDGESEL, "Edge", "Edge selection mode."}, @@ -91,6 +92,7 @@ EnumPropertyItem snap_element_items[] = { #include "DNA_anim_types.h" #include "DNA_node_types.h" #include "DNA_object_types.h" +#include "DNA_mesh_types.h" #include "BKE_context.h" #include "BKE_global.h" @@ -99,13 +101,18 @@ EnumPropertyItem snap_element_items[] = { #include "BKE_pointcache.h" #include "BKE_scene.h" #include "BKE_depsgraph.h" +#include "BKE_mesh.h" #include "BLI_threads.h" +#include "BLI_editVert.h" + +#include "WM_api.h" #include "ED_info.h" #include "ED_node.h" #include "ED_view3d.h" #include "ED_object.h" +#include "ED_mesh.h" #include "RE_pipeline.h" @@ -562,6 +569,38 @@ static void rna_Physics_update(Main *bmain, Scene *unused, PointerRNA *ptr) for(base = scene->base.first; base; base=base->next) BKE_ptcache_object_reset(scene, base->object, PTCACHE_RESET_DEPSGRAPH); } + +static void rna_Scene_editmesh_select_mode_set(PointerRNA *ptr, const int *value) +{ + Scene *scene= (Scene*)ptr->id.data; + ToolSettings *ts = (ToolSettings*)ptr->data; + int flag = (value[0] ? SCE_SELECT_VERTEX:0) | (value[1] ? SCE_SELECT_EDGE:0) | (value[2] ? SCE_SELECT_FACE:0); + + ts->selectmode = flag; + + if(scene->basact) { + Mesh *me= get_mesh(scene->basact->object); + if(me && me->edit_mesh && me->edit_mesh->selectmode != flag) { + me->edit_mesh->selectmode= flag; + EM_selectmode_set(me->edit_mesh); + } + } +} + +static void rna_Scene_editmesh_select_mode_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + Mesh *me= NULL; + + if(scene->basact) { + me= get_mesh(scene->basact->object); + if(me && me->edit_mesh==NULL) + me= NULL; + } + + WM_main_add_notifier(NC_GEOM|ND_SELECT, me); + WM_main_add_notifier(NC_SCENE|ND_MODE, NULL); /* header redraw */ +} + #else static void rna_def_transform_orientation(BlenderRNA *brna) @@ -736,10 +775,11 @@ static void rna_def_tool_settings(BlenderRNA *brna) RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL); /* Mesh */ - prop= RNA_def_property(srna, "mesh_selection_mode", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_bitflag_sdna(prop, NULL, "selectmode"); - RNA_def_property_enum_items(prop, mesh_select_mode_items); - RNA_def_property_ui_text(prop, "Mesh Selection Mode", "Mesh selection and display mode."); + prop= RNA_def_property(srna, "mesh_selection_mode", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "selectmode", 1); + RNA_def_property_array(prop, 3); + RNA_def_property_boolean_funcs(prop, NULL, "rna_Scene_editmesh_select_mode_set"); + RNA_def_property_update(prop, 0, "rna_Scene_editmesh_select_mode_update"); prop= RNA_def_property(srna, "vertex_group_weight", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, NULL, "vgroup_weight"); -- cgit v1.2.3 From b3d30c66babbd656647bcdead36db00d7e52cd5d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 22 Dec 2009 17:18:33 +0000 Subject: select linked and select linked pick working again (wth shift for extend) --- source/blender/editors/uvedit/uvedit_ops.c | 93 +++++++++++++++++++++++++----- 1 file changed, 80 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index 3d58e7f03dc..b592d5a62f1 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -835,15 +835,16 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2] MTFace *tf; UvVertMap *vmap; UvMapVert *vlist, *iterv, *startv; - int a, i, nverts, j, stacksize= 0, *stack; + int a, i, nverts, stacksize= 0, *stack; char *flag; - vmap= EM_make_uv_vert_map(em, 1, 1, limit); + EM_init_index_arrays(em, 0, 0, 1); /* we can use this too */ + vmap= EM_make_uv_vert_map(em, 1, 0, limit); if(vmap == NULL) return; - stack= MEM_mallocN(sizeof(*stack)* BLI_countlist(&em->faces), "UvLinkStack"); - flag= MEM_callocN(sizeof(*flag)*BLI_countlist(&em->faces), "UvLinkFlag"); + stack= MEM_mallocN(sizeof(*stack) * em->totface, "UvLinkStack"); + flag= MEM_callocN(sizeof(*flag) * em->totface, "UvLinkFlag"); if(!hit) { for(a=0, efa= em->faces.first; efa; efa= efa->next, a++) { @@ -872,10 +873,8 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2] while(stacksize > 0) { stacksize--; a= stack[stacksize]; - - for(j=0, efa= em->faces.first; efa; efa= efa->next, j++) - if(j==a) - break; + + efa = EM_get_face_for_index(a); nverts= efa->v4? 4: 3; @@ -897,14 +896,14 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2] break; else if(!flag[iterv->f]) { flag[iterv->f]= 1; - stack[stacksize]= iterv->f;; + stack[stacksize]= iterv->f; stacksize++; } } } } - if(!extend && hit) { + if(!extend) { for(a=0, efa= em->faces.first; efa; efa= efa->next, a++) { tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); if(flag[a]) @@ -913,7 +912,7 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2] tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4); } } - else if(extend && hit) { + else { for(a=0, efa= em->faces.first; efa; efa= efa->next, a++) { if(flag[a]) { tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); @@ -947,6 +946,7 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2] MEM_freeN(stack); MEM_freeN(flag); EM_free_uv_vert_map(vmap); + EM_free_index_arrays(); } /* ******************** align operator **************** */ @@ -1814,7 +1814,7 @@ void UV_OT_select_loop(wmOperatorType *ot) /* ******************** linked select operator **************** */ -static int select_linked_exec(bContext *C, wmOperator *op) +static select_linked_internal(bContext *C, wmOperator *op, wmEvent *event, int pick) { SpaceImage *sima= CTX_wm_space_image(C); Scene *scene= CTX_data_scene(C); @@ -1825,6 +1825,8 @@ static int select_linked_exec(bContext *C, wmOperator *op) float limit[2]; int extend; + NearestHit hit, *hit_p= NULL; + if(ts->uv_flag & UV_SYNC_SELECTION) { BKE_report(op->reports, RPT_ERROR, "Can't select linked when sync selection is enabled."); BKE_mesh_end_editmesh(obedit->data, em); @@ -1833,7 +1835,31 @@ static int select_linked_exec(bContext *C, wmOperator *op) extend= RNA_boolean_get(op->ptr, "extend"); uvedit_pixel_to_float(sima, limit, 0.05f); - select_linked(scene, ima, em, limit, NULL, extend); + + if(pick) { + float co[2]; + + if(event) { + /* invoke */ + ARegion *ar= CTX_wm_region(C); + int x, y; + + x= event->x - ar->winrct.xmin; + y= event->y - ar->winrct.ymin; + + UI_view2d_region_to_view(&ar->v2d, x, y, &co[0], &co[1]); + RNA_float_set_array(op->ptr, "location", co); + } + else { + /* exec */ + RNA_float_get_array(op->ptr, "location", co); + } + + find_nearest_uv_vert(scene, ima, em, co, NULL, &hit); + hit_p= &hit; + } + + select_linked(scene, ima, em, limit, hit_p, extend); DAG_id_flush_update(obedit->data, OB_RECALC_DATA); WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); @@ -1842,6 +1868,11 @@ static int select_linked_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } +static int select_linked_exec(bContext *C, wmOperator *op) +{ + return select_linked_internal(C, op, NULL, 0); +} + void UV_OT_select_linked(wmOperatorType *ot) { /* identifiers */ @@ -1859,6 +1890,37 @@ void UV_OT_select_linked(wmOperatorType *ot) "Extend", "Extend selection rather than clearing the existing selection."); } +static int select_linked_pick_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + return select_linked_internal(C, op, event, 1); +} + +static int select_linked_pick_exec(bContext *C, wmOperator *op) +{ + return select_linked_internal(C, op, NULL, 1); +} + +void UV_OT_select_linked_pick(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Select Linked Pick"; + ot->description= "Select all UV vertices linked under the mouse."; + ot->idname= "UV_OT_select_linked_pick"; + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* api callbacks */ + ot->invoke= select_linked_pick_invoke; + ot->exec= select_linked_pick_exec; + ot->poll= ED_operator_uvedit; + + /* properties */ + RNA_def_boolean(ot->srna, "extend", 0, + "Extend", "Extend selection rather than clearing the existing selection."); + + RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX, + "Location", "Mouse location in normalized coordinates, 0.0 to 1.0 is within the image bounds.", -100.0f, 100.0f); +} + /* ******************** unlink selection operator **************** */ static int unlink_selection_exec(bContext *C, wmOperator *op) @@ -3101,6 +3163,7 @@ void ED_operatortypes_uvedit(void) WM_operatortype_append(UV_OT_select); WM_operatortype_append(UV_OT_select_loop); WM_operatortype_append(UV_OT_select_linked); + WM_operatortype_append(UV_OT_select_linked_pick); WM_operatortype_append(UV_OT_unlink_selection); WM_operatortype_append(UV_OT_select_pinned); WM_operatortype_append(UV_OT_select_border); @@ -3151,6 +3214,10 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf) /* selection manipulation */ WM_keymap_add_item(keymap, "UV_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "UV_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0); + RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_linked", LKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "extend", TRUE); + RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", TRUE); + WM_keymap_add_item(keymap, "UV_OT_unlink_selection", LKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "UV_OT_select_all", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "UV_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0); -- cgit v1.2.3 From d74bbcdd852da9a17a6cf088469ebd3eb2167a9a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 22 Dec 2009 19:01:51 +0000 Subject: select nth (face/edge/vertex) - depending on which was last selected, useful for colapsing every other edge for eg. --- source/blender/editors/include/ED_mesh.h | 2 + source/blender/editors/mesh/editmesh_lib.c | 230 ++++++++++++++++++++++++++++ source/blender/editors/mesh/editmesh_mods.c | 43 ++++++ source/blender/editors/mesh/mesh_intern.h | 1 + source/blender/editors/mesh/mesh_ops.c | 1 + 5 files changed, 277 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index aab364bf686..174447c0f9f 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -150,6 +150,8 @@ void EM_free_data_layer(struct EditMesh *em, struct CustomData *data, int type) void EM_make_hq_normals(struct EditMesh *em); void EM_solidify(struct EditMesh *em, float dist); +int EM_deselect_nth(struct EditMesh *em, int nth); + /* editmesh_mods.c */ extern unsigned int em_vertoffs, em_solidoffs, em_wireoffs; diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index 1b90dbc3902..d99765bd199 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -2447,3 +2447,233 @@ void EM_solidify(EditMesh *em, float dist) MEM_freeN(vert_angles); } + +/* not that optimal!, should be nicer with bmesh */ +static void tag_face_edges(EditFace *efa) +{ + if(efa->v4) + efa->e1->tmp.l= efa->e2->tmp.l= efa->e3->tmp.l= efa->e4->tmp.l= 1; + else + efa->e1->tmp.l= efa->e2->tmp.l= efa->e3->tmp.l= 1; +} +static int tag_face_edges_test(EditFace *efa) +{ + if(efa->v4) + return (efa->e1->tmp.l || efa->e2->tmp.l || efa->e3->tmp.l || efa->e4->tmp.l) ? 1:0; + else + return (efa->e1->tmp.l || efa->e2->tmp.l || efa->e3->tmp.l) ? 1:0; +} + +void em_deselect_nth_face(EditMesh *em, int nth, EditFace *efa_act) +{ + EditFace *efa; + EditEdge *eed; + int ok= 1; + + if(efa_act==NULL) { + return; + } + + /* to detect loose edges, we put f2 flag on 1 */ + for(eed= em->edges.first; eed; eed= eed->next) { + eed->tmp.l= 0; + } + + for (efa= em->faces.first; efa; efa= efa->next) { + efa->tmp.l = 0; + } + + efa_act->tmp.l = 1; + + while(ok) { + ok = 0; + + for (efa= em->faces.first; efa; efa= efa->next) { + if(efa->tmp.l==1) { /* initialize */ + tag_face_edges(efa); + } + + if(efa->tmp.l) + efa->tmp.l++; + } + + for (efa= em->faces.first; efa; efa= efa->next) { + if(efa->tmp.l==0 && tag_face_edges_test(efa)) { + efa->tmp.l= 1; + ok = 1; /* keep looping */ + } + } + } + + for (efa= em->faces.first; efa; efa= efa->next) { + if(efa->tmp.l > 0 && efa->tmp.l % nth) { + EM_select_face(efa, 0); + } + } + for (efa= em->faces.first; efa; efa= efa->next) { + if(efa->f & SELECT) { + EM_select_face(efa, 1); + } + } + + EM_nvertices_selected(em); + EM_nedges_selected(em); + EM_nfaces_selected(em); +} + +/* not that optimal!, should be nicer with bmesh */ +static void tag_edge_verts(EditEdge *eed) +{ + eed->v1->tmp.l= eed->v2->tmp.l= 1; +} +static int tag_edge_verts_test(EditEdge *eed) +{ + return (eed->v1->tmp.l || eed->v2->tmp.l) ? 1:0; +} + +void em_deselect_nth_edge(EditMesh *em, int nth, EditEdge *eed_act) +{ + EditEdge *eed; + EditVert *eve; + int ok= 1; + + if(eed_act==NULL) { + return; + } + + for(eve= em->verts.first; eve; eve= eve->next) { + eve->tmp.l= 0; + } + + for (eed= em->edges.first; eed; eed= eed->next) { + eed->tmp.l = 0; + } + + eed_act->tmp.l = 1; + + while(ok) { + ok = 0; + + for (eed= em->edges.first; eed; eed= eed->next) { + if(eed->tmp.l==1) { /* initialize */ + tag_edge_verts(eed); + } + + if(eed->tmp.l) + eed->tmp.l++; + } + + for (eed= em->edges.first; eed; eed= eed->next) { + if(eed->tmp.l==0 && tag_edge_verts_test(eed)) { + eed->tmp.l= 1; + ok = 1; /* keep looping */ + } + } + } + + for (eed= em->edges.first; eed; eed= eed->next) { + if(eed->tmp.l > 0 && eed->tmp.l % nth) { + EM_select_edge(eed, 0); + } + } + for (eed= em->edges.first; eed; eed= eed->next) { + if(eed->f & SELECT) { + EM_select_edge(eed, 1); + } + } + + { + /* grr, should be a function */ + EditFace *efa; + for (efa= em->faces.first; efa; efa= efa->next) { + if(efa->v4) { + if(efa->e1->f & efa->e2->f & efa->e3->f & efa->e4->f & SELECT ); + else efa->f &= ~SELECT; + } + else { + if(efa->e1->f & efa->e2->f & efa->e3->f & SELECT ); + else efa->f &= ~SELECT; + } + } + } + + EM_nvertices_selected(em); + EM_nedges_selected(em); + EM_nfaces_selected(em); +} + +void em_deselect_nth_vert(EditMesh *em, int nth, EditVert *eve_act) +{ + EditVert *eve; + EditEdge *eed; + int ok= 1; + + if(eve_act==NULL) { + return; + } + + for (eve= em->verts.first; eve; eve= eve->next) { + eve->tmp.l = 0; + } + + eve_act->tmp.l = 1; + + while(ok) { + ok = 0; + + for (eve= em->verts.first; eve; eve= eve->next) { + if(eve->tmp.l) + eve->tmp.l++; + } + + for (eed= em->edges.first; eed; eed= eed->next) { + if(eed->v1->tmp.l==2 && eed->v2->tmp.l==0) { /* initialize */ + eed->v2->tmp.l= 1; + ok = 1; /* keep looping */ + } + else if(eed->v2->tmp.l==2 && eed->v1->tmp.l==0) { /* initialize */ + eed->v1->tmp.l= 1; + ok = 1; /* keep looping */ + } + } + } + + for (eve= em->verts.first; eve; eve= eve->next) { + if(eve->tmp.l > 0 && eve->tmp.l % nth) { + eve->f &= ~SELECT; + } + } + + EM_deselect_flush(em); + + EM_nvertices_selected(em); + // EM_nedges_selected(em); // flush does these + // EM_nfaces_selected(em); // flush does these +} + +int EM_deselect_nth(EditMesh *em, int nth) +{ + EditSelection *ese; + ese = ((EditSelection*)em->selected.last); + if(ese) { + if(ese->type == EDITVERT) { + em_deselect_nth_vert(em, nth, (EditVert*)ese->data); + return 1; + } + + if(ese->type == EDITEDGE) { + em_deselect_nth_edge(em, nth, (EditEdge*)ese->data); + return 1; + } + } + else { + EditFace *efa_act = EM_get_actFace(em, 0); + if(efa_act) { + em_deselect_nth_face(em, nth, efa_act); + return 1; + } + } + + return 0; +} + diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index d1dde75771d..827b28f954b 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -2081,6 +2081,11 @@ static void mouse_mesh_loop(bContext *C, short mval[2], short extend, short ring EM_selectmode_flush(em); // if (EM_texFaceCheck()) + /* sets as active, useful for other tools */ + if(select && em->selectmode & SCE_SELECT_EDGE) { + EM_store_selection(em, eed, EDITEDGE); + } + WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data); } } @@ -4535,3 +4540,41 @@ void MESH_OT_solidify(wmOperatorType *ot) prop= RNA_def_float(ot->srna, "thickness", 0.01f, -FLT_MAX, FLT_MAX, "thickness", "", -10.0f, 10.0f); RNA_def_property_ui_range(prop, -10, 10, 0.1, 4); } + +static int mesh_select_nth_exec(bContext *C, wmOperator *op) +{ + Object *obedit= CTX_data_edit_object(C); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); + int nth = RNA_int_get(op->ptr, "nth"); + + if(EM_deselect_nth(em, nth) == 0) { + BKE_report(op->reports, RPT_ERROR, "Mesh has no active vert/edge/face."); + return OPERATOR_CANCELLED; + } + + BKE_mesh_end_editmesh(obedit->data, em); + + DAG_id_flush_update(obedit->data, OB_RECALC_DATA); + WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); + + return OPERATOR_FINISHED; +} + + +void MESH_OT_select_nth(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Select Nth"; + ot->description= ""; + ot->idname= "MESH_OT_select_nth"; + + /* api callbacks */ + ot->exec= mesh_select_nth_exec; + ot->poll= ED_operator_editmesh; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + RNA_def_int(ot->srna, "nth", 2, 2, 100, "Nth Selection", "", 1, INT_MAX); +} + diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h index 7b7257ae9cb..e8ec85d8bd0 100644 --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@ -164,6 +164,7 @@ void MESH_OT_mark_sharp(struct wmOperatorType *ot); void MESH_OT_vertices_smooth(struct wmOperatorType *ot); void MESH_OT_flip_normals(struct wmOperatorType *ot); void MESH_OT_solidify(struct wmOperatorType *ot); +void MESH_OT_select_nth(struct wmOperatorType *ot); extern EditEdge *findnearestedge(ViewContext *vc, int *dist); diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index af25dbda16b..11b5f3a9031 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -152,6 +152,7 @@ void ED_operatortypes_mesh(void) WM_operatortype_append(MESH_OT_loopcut); WM_operatortype_append(MESH_OT_solidify); + WM_operatortype_append(MESH_OT_select_nth); } int ED_operator_editmesh_face_select(bContext *C) -- cgit v1.2.3 From 8cce609a04518fddc79a8e999884501d80e7d65d Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 22 Dec 2009 19:56:12 +0000 Subject: Missing angle_v3v3 definition (it was declared) Wrong definition for angle_v2v2 (it read 2d vectors as 3d vectors) --- source/blender/blenlib/intern/math_vector.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/math_vector.c b/source/blender/blenlib/intern/math_vector.c index 2ce4a069a48..3188587a96c 100644 --- a/source/blender/blenlib/intern/math_vector.c +++ b/source/blender/blenlib/intern/math_vector.c @@ -145,6 +145,19 @@ float angle_v3v3v3(float *v1, float *v2, float *v3) return angle_normalized_v3v3(vec1, vec2); } +/* Return the shortest angle in radians between the 2 vectors */ +float angle_v3v3(float *v1, float *v2) +{ + float vec1[3], vec2[3]; + + copy_v3_v3(vec1, v1); + copy_v3_v3(vec2, v2); + normalize_v3(vec1); + normalize_v3(vec2); + + return angle_normalized_v3v3(vec1, vec2); +} + float angle_v2v2v2(float *v1, float *v2, float *v3) { float vec1[2], vec2[2]; @@ -164,14 +177,18 @@ float angle_v2v2v2(float *v1, float *v2, float *v3) /* Return the shortest angle in radians between the 2 vectors */ float angle_v2v2(float *v1, float *v2) { - float vec1[3], vec2[3]; + float vec1[2], vec2[2]; - copy_v3_v3(vec1, v1); - copy_v3_v3(vec2, v2); - normalize_v3(vec1); - normalize_v3(vec2); + vec1[0] = v1[0]; + vec1[1] = v1[1]; - return angle_normalized_v3v3(vec1, vec2); + vec2[0] = v2[0]; + vec2[1] = v2[1]; + + normalize_v2(vec1); + normalize_v2(vec2); + + return angle_normalized_v2v2(vec1, vec2); } float angle_normalized_v3v3(float *v1, float *v2) -- cgit v1.2.3 From da5025d46d6ba3a8cb723f63de20054de06f285a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 23 Dec 2009 11:22:30 +0000 Subject: Bugfix #20463: In graph editor bone channels cannot be selected with 'A' or 'B' border select This bug was caused by my recent commit to get bone select -> selection syncing working. The selection flushing was occurring too readily, blocking any selection tools from having any visible effect. Now this syncing is only triggered when appropriate notifiers+flags have been set. --- source/blender/editors/space_action/space_action.c | 27 ++++++++++++----- source/blender/editors/space_graph/space_graph.c | 35 ++++++++++++++-------- source/blender/makesdna/DNA_action_types.h | 2 ++ source/blender/makesdna/DNA_anim_types.h | 1 + source/blender/makesdna/DNA_space_types.h | 13 ++++++++ 5 files changed, 59 insertions(+), 19 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 1bc300395ca..6a53e565e75 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -45,6 +45,7 @@ #include "BKE_colortools.h" #include "BKE_context.h" #include "BKE_screen.h" +#include "BKE_utildefines.h" #include "ED_space_api.h" #include "ED_screen.h" @@ -353,15 +354,22 @@ static void action_main_area_listener(ARegion *ar, wmNotifier *wmn) /* editor level listener */ static void action_listener(ScrArea *sa, wmNotifier *wmn) { + SpaceAction *saction= (SpaceAction *)sa->spacedata.first; + /* context changes */ switch (wmn->category) { case NC_ANIMATION: - ED_area_tag_redraw(sa); + /* for selection changes of animation data, we can just redraw... otherwise autocolor might need to be done again */ + if (ELEM(wmn->data, ND_KEYFRAME_SELECT, ND_ANIMCHAN_SELECT)) + ED_area_tag_redraw(sa); + else + ED_area_tag_refresh(sa); break; case NC_SCENE: switch (wmn->data) { - case ND_OB_ACTIVE: /* selection changed, so force refresh to flush */ + case ND_OB_ACTIVE: /* selection changed, so force refresh to flush (needs flag set to do syncing) */ case ND_OB_SELECT: + saction->flag |= SACTION_TEMP_NEEDCHANSYNC; ED_area_tag_refresh(sa); break; @@ -372,8 +380,9 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn) break; case NC_OBJECT: switch (wmn->data) { - case ND_BONE_SELECT: /* selection changed, so force refresh to flush */ + case ND_BONE_SELECT: /* selection changed, so force refresh to flush (needs flag set to do syncing) */ case ND_BONE_ACTIVE: + saction->flag |= SACTION_TEMP_NEEDCHANSYNC; ED_area_tag_refresh(sa); break; @@ -391,11 +400,15 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn) static void action_refresh(const bContext *C, ScrArea *sa) { - //SpaceAction *saction= CTX_wm_space_action(C); + SpaceAction *saction= CTX_wm_space_action(C); - /* update the state of the animchannels in response to changes from the data they represent */ - // TODO: check if we don't want this to happen - ANIM_sync_animchannels_to_data(C); + /* update the state of the animchannels in response to changes from the data they represent + * NOTE: the temp flag is used to indicate when this needs to be done, and will be cleared once handled + */ + if (saction->flag & SACTION_TEMP_NEEDCHANSYNC) { + ANIM_sync_animchannels_to_data(C); + saction->flag &= ~SACTION_TEMP_NEEDCHANSYNC; + } /* region updates? */ // XXX resizing y-extents of tot should go here? diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 8902f4df314..8111ee8f779 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -431,18 +431,22 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn) /* editor level listener */ static void graph_listener(ScrArea *sa, wmNotifier *wmn) { + SpaceIpo *sipo= (SpaceIpo *)sa->spacedata.first; + /* context changes */ switch (wmn->category) { case NC_ANIMATION: - /* unlike for DopeSheet, we want refresh not redraw here, - * since F-Curve colors may need setting - */ - ED_area_tag_refresh(sa); + /* for selection changes of animation data, we can just redraw... otherwise autocolor might need to be done again */ + if (ELEM(wmn->data, ND_KEYFRAME_SELECT, ND_ANIMCHAN_SELECT)) + ED_area_tag_redraw(sa); + else + ED_area_tag_refresh(sa); break; case NC_SCENE: switch (wmn->data) { - case ND_OB_ACTIVE: /* selection changed, so force refresh to flush */ + case ND_OB_ACTIVE: /* selection changed, so force refresh to flush (needs flag set to do syncing) */ case ND_OB_SELECT: + sipo->flag |= SIPO_TEMP_NEEDCHANSYNC; ED_area_tag_refresh(sa); break; @@ -453,8 +457,9 @@ static void graph_listener(ScrArea *sa, wmNotifier *wmn) break; case NC_OBJECT: switch (wmn->data) { - case ND_BONE_SELECT: /* selection changed, so force refresh to flush */ + case ND_BONE_SELECT: /* selection changed, so force refresh to flush (needs flag set to do syncing) */ case ND_BONE_ACTIVE: + sipo->flag |= SIPO_TEMP_NEEDCHANSYNC; ED_area_tag_refresh(sa); break; @@ -467,9 +472,11 @@ static void graph_listener(ScrArea *sa, wmNotifier *wmn) if(wmn->data == ND_SPACE_GRAPH) ED_area_tag_redraw(sa); break; - default: - if(wmn->data==ND_KEYS) - ED_area_tag_refresh(sa); + + // XXX: restore the case below if not enough updates occur... + //default: + // if(wmn->data==ND_KEYS) + // ED_area_tag_redraw(sa); } } @@ -498,9 +505,13 @@ static void graph_refresh(const bContext *C, ScrArea *sa) /* region updates? */ // XXX resizing y-extents of tot should go here? - /* update the state of the animchannels in response to changes from the data they represent */ - // TODO: check if we don't want this to happen - ANIM_sync_animchannels_to_data(C); + /* update the state of the animchannels in response to changes from the data they represent + * NOTE: the temp flag is used to indicate when this needs to be done, and will be cleared once handled + */ + if (sipo->flag & SIPO_TEMP_NEEDCHANSYNC) { + ANIM_sync_animchannels_to_data(C); + sipo->flag &= ~SIPO_TEMP_NEEDCHANSYNC; + } /* init/adjust F-Curve colors */ if (ANIM_animdata_get_context(C, &ac)) { diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 0dc24f31a7b..ee6af076f59 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -503,6 +503,8 @@ typedef enum eSAction_Flag { SACTION_NODRAWGCOLORS = (1<<7), /* don't draw current frame number beside frame indicator */ SACTION_NODRAWCFRANUM = (1<<8), + /* temporary flag to force channel selections to be synced with main */ + SACTION_TEMP_NEEDCHANSYNC = (1<<9), } eSAction_Flag; /* SpaceAction Mode Settings */ diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 6a9700a5573..31d50e03cce 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -659,6 +659,7 @@ typedef enum eKSP_TemplateTypes { KSP_TEMPLATE_PCHAN = (1<<1), /* #pch - selected posechannel */ KSP_TEMPLATE_CONSTRAINT = (1<<2), /* #con - active only */ KSP_TEMPLATE_NODE = (1<<3), /* #nod - selected node */ + KSP_TEMPLATE_MODIFIER = (1<<4), /* #mod - active only */ KSP_TEMPLATE_ROT = (1<<16), /* modify rotation paths based on rotation mode of Object or Pose Channel */ } eKSP_TemplateTypes; diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index e02d719470f..72d57df555c 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -720,16 +720,29 @@ enum FileSortTypeE { #define SI_COLOR_CORRECTION 1<<24 /* SpaceIpo->flag (Graph Editor Settings) */ + /* OLD DEPRECEATED SETTING */ #define SIPO_LOCK_VIEW (1<<0) + /* don't merge keyframes on the same frame after a transform */ #define SIPO_NOTRANSKEYCULL (1<<1) + /* don't show any keyframe handles at all */ #define SIPO_NOHANDLES (1<<2) + /* don't show current frame number beside indicator line */ #define SIPO_NODRAWCFRANUM (1<<3) + /* show timing in seconds instead of frames */ #define SIPO_DRAWTIME (1<<4) + /* only show keyframes for selected F-Curves */ #define SIPO_SELCUVERTSONLY (1<<5) + /* draw names of F-Curves beside the respective curves */ + /* NOTE: currently not used */ #define SIPO_DRAWNAMES (1<<6) + /* show sliders in channels list */ #define SIPO_SLIDERS (1<<7) + /* don't show the horizontal component of the cursor */ #define SIPO_NODRAWCURSOR (1<<8) + /* only show handles of selected keyframes */ #define SIPO_SELVHANDLESONLY (1<<9) + /* temporary flag to force channel selections to be synced with main */ +#define SIPO_TEMP_NEEDCHANSYNC (1<<10) /* SpaceIpo->mode (Graph Editor Mode) */ enum { -- cgit v1.2.3 From 489ff11f2bcf327084e8241f14b376ae50cbb583 Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Wed, 23 Dec 2009 11:49:07 +0000 Subject: Fix compilation of carbon quicktime & complete use of report mechanism instead of standard printf --- source/blender/quicktime/apple/quicktime_export.c | 29 ++++++++++------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index 0475cd6e1d8..abce6c08395 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -175,13 +175,12 @@ int quicktime_codecType_from_rnatmpvalue(int rnatmpvalue) { static void CheckError(OSErr err, char *msg, ReportList *reports) { if(err != noErr) { - printf("%s: %d\n", msg, err); BKE_reportf(reports, RPT_ERROR, "%s: %d", msg, err); } } -static OSErr QT_SaveCodecSettingsToScene(RenderData *rd) +static OSErr QT_SaveCodecSettingsToScene(RenderData *rd, ReportList *reports) { QTAtomContainer myContainer = NULL; ComponentResult myErr = noErr; @@ -207,7 +206,7 @@ static OSErr QT_SaveCodecSettingsToScene(RenderData *rd) // retreive codecdata from quicktime in a atomcontainer myErr = SCGetSettingsAsAtomContainer(qtdata->theComponent, &myContainer); if (myErr != noErr) { - printf("Quicktime: SCGetSettingsAsAtomContainer failed\n"); + BKE_reportf(reports, RPT_ERROR, "Quicktime: SCGetSettingsAsAtomContainer failed\n"); goto bail; } @@ -226,7 +225,7 @@ static OSErr QT_SaveCodecSettingsToScene(RenderData *rd) GetCodecInfo (&ci, qtdata->gSpatialSettings.codecType, 0); } else { - printf("Quicktime: QT_SaveCodecSettingsToScene failed\n"); + BKE_reportf(reports, RPT_ERROR, "Quicktime: QT_SaveCodecSettingsToScene failed\n"); } QTUnlockContainer(myContainer); @@ -239,7 +238,7 @@ bail: } -static OSErr QT_GetCodecSettingsFromScene(RenderData *rd) +static OSErr QT_GetCodecSettingsFromScene(RenderData *rd, ReportList *reports) { Handle myHandle = NULL; ComponentResult myErr = noErr; @@ -256,7 +255,7 @@ static OSErr QT_GetCodecSettingsFromScene(RenderData *rd) if(qcd->cdParms && qcd->cdSize) { myErr = SCSetSettingsFromAtomContainer((GraphicsExportComponent)qtdata->theComponent, (QTAtomContainer)myHandle); if (myErr != noErr) { - printf("Quicktime: SCSetSettingsFromAtomContainer failed\n"); + BKE_reportf(reports, RPT_ERROR, "Quicktime: SCSetSettingsFromAtomContainer failed\n"); goto bail; } @@ -282,7 +281,7 @@ static OSErr QT_GetCodecSettingsFromScene(RenderData *rd) //Frame duration is already known (qtdata->aDataRateSetting.frameDuration) } else { - printf("Quicktime: QT_GetCodecSettingsFromScene failed\n"); + BKE_reportf(reports, RPT_ERROR, "Quicktime: QT_GetCodecSettingsFromScene failed\n"); } bail: if (myHandle != NULL) @@ -401,7 +400,7 @@ static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, i gTemporalSettings = qtdata->gTemporalSettings; if(qtdata->gSpatialSettings.codecType == kH264CodecType) { if(gTemporalSettings.temporalQuality != codecMinQuality) { - fprintf(stderr, "Only minimum quality compression supported for QuickTime H.264.\n"); + BKE_reportf(reports, RPT_WARNING, "Only minimum quality compression supported for QuickTime H.264.\n"); gTemporalSettings.temporalQuality = codecMinQuality; } } @@ -469,8 +468,6 @@ static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int syncFlag, NULL); CheckError(err, "AddMediaSample error", reports); - - printf ("added frame %3d (frame %3d in movie): ", frame, frame-sframe); } @@ -550,7 +547,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R /* hack: create an empty file to make FSPathMakeRef() happy */ myFile = open(theFullPath, O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRUSR|S_IWUSR); if (myFile < 0) { - printf("error while creating file!\n"); + BKE_reportf(reports, RPT_ERROR, "error while creating movie file!\n"); /* do something? */ } close(myFile); @@ -584,7 +581,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R ExitMoviesOnThread(); #endif } else { - printf("Created QuickTime movie: %s\n", name); + //printf("Created QuickTime movie: %s\n", name); QT_CreateMyVideoTrack(rectx, recty, reports); } @@ -619,7 +616,7 @@ void end_qt(void) { DisposeMovie(qtexport->theMovie); - printf("Finished QuickTime movie.\n"); + //printf("Finished QuickTime movie.\n"); } ExitMoviesOnThread(); @@ -708,7 +705,7 @@ int get_qtcodec_settings(RenderData *rd, ReportList *reports) // get previous selected codecsetting, from qtatom or detailed settings if(rd->qtcodecdata && rd->qtcodecdata->cdParms) { - QT_GetCodecSettingsFromScene(rd); + QT_GetCodecSettingsFromScene(rd, reports); } else { SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); @@ -759,7 +756,7 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op) // get previous selected codecsetting, from qtatom or detailed settings if(rd->qtcodecdata && rd->qtcodecdata->cdParms) { - QT_GetCodecSettingsFromScene(rd); + QT_GetCodecSettingsFromScene(rd, op->reports); } else { SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); @@ -813,7 +810,7 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op) rd->qtcodecsettings.minTemporalQuality = (qtdata->aDataRateSetting.minTemporalQuality * 100) / codecLosslessQuality; //Frame duration is already known (qtdata->aDataRateSetting.frameDuration) - QT_SaveCodecSettingsToScene(rd); + QT_SaveCodecSettingsToScene(rd, op->reports); // framerate jugglin' if(qtdata->gTemporalSettings.frameRate == 1571553) { // 23.98 fps -- cgit v1.2.3 From bb094b8655bac5dcee1b9728891d1e49bb18557e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 23 Dec 2009 12:13:48 +0000 Subject: key shortcits for sculpt back - T was 'Flatten Brush', now Shift+T - added an option to OBJECT_OT_subdivision_set to set the level relatively (so page up/down works), however RNA lets it set one level higher then the maximum, this seems displays OK in the 3D view so not sure whats going on here (as if there is always an extra hidden multires level). --- source/blender/editors/object/object_ops.c | 8 ++--- source/blender/editors/sculpt_paint/paint_ops.c | 45 +++++++++++++++++++++++- source/blender/editors/transform/transform_ops.c | 4 +-- 3 files changed, 50 insertions(+), 7 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index bd43e9c24c4..7b11bc58950 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -317,7 +317,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "GROUP_OT_objects_add_active", GKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove_active", GKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0); - for(i=1; i<=5; i++) { + for(i=0; i<=5; i++) { kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0); RNA_int_set(kmi->ptr, "level", i); } @@ -342,15 +342,15 @@ void ED_object_generic_keymap(struct wmKeyConfig *keyconf, struct wmKeyMap *keym if(do_pet) { /* context ops */ km = WM_keymap_add_item(keymap, "WM_OT_context_cycle_enum", OKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "scene.tool_settings.proportional_editing_falloff"); + RNA_string_set(km->ptr, "path", "tool_settings.proportional_editing_falloff"); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, 0, 0); - RNA_string_set(km->ptr, "path", "scene.tool_settings.proportional_editing"); + RNA_string_set(km->ptr, "path", "tool_settings.proportional_editing"); RNA_string_set(km->ptr, "value_1", "DISABLED"); RNA_string_set(km->ptr, "value_2", "ENABLED"); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, KM_ALT, 0); - RNA_string_set(km->ptr, "path", "scene.tool_settings.proportional_editing"); + RNA_string_set(km->ptr, "path", "tool_settings.proportional_editing"); RNA_string_set(km->ptr, "value_1", "DISABLED"); RNA_string_set(km->ptr, "value_2", "CONNECTED"); } diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index a54c2b71ee7..b87d229545e 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -179,6 +179,7 @@ static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *path) void ED_keymap_paint(wmKeyConfig *keyconf) { wmKeyMap *keymap; + wmKeyMapItem *kmi; int i; /* Sculpt mode */ @@ -194,9 +195,51 @@ void ED_keymap_paint(wmKeyConfig *keyconf) ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index"); - for(i=1; i<=5; i++) + for(i=0; i<=5; i++) RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i); + /* multires switch */ + kmi= WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEUPKEY, KM_PRESS, 0, 0); + RNA_int_set(kmi->ptr, "level", 1); + RNA_boolean_set(kmi->ptr, "relative", 1); + + kmi= WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEDOWNKEY, KM_PRESS, 0, 0); + RNA_int_set(kmi->ptr, "level", -1); + RNA_boolean_set(kmi->ptr, "relative", 1); + + /* toggles */ + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", AKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_anchor"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_smooth_stroke"); + + /* brush switching */ + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", DKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); + RNA_string_set(kmi->ptr, "value", "DRAW"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", SKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); + RNA_string_set(kmi->ptr, "value", "SMOOTH"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); + RNA_string_set(kmi->ptr, "value", "PINCH"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", GKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); + RNA_string_set(kmi->ptr, "value", "GRAB"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", LKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); + RNA_string_set(kmi->ptr, "value", "LAYER"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", TKEY, KM_PRESS, KM_SHIFT, 0); /* was just T in 2.4x */ + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); + RNA_string_set(kmi->ptr, "value", "FLATTEN"); + + /* Vertex Paint mode */ keymap= WM_keymap_find(keyconf, "Vertex Paint", 0, 0); keymap->poll= vertex_paint_poll; diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 63218369a90..4c118aa2625 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -825,7 +825,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac km = WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "scene.tool_settings.snap"); + RNA_string_set(km->ptr, "path", "tool_settings.snap"); km = WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CLICK, 0); @@ -902,7 +902,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac km = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "scene.tool_settings.snap"); + RNA_string_set(km->ptr, "path", "tool_settings.snap"); break; default: break; -- cgit v1.2.3 From 6c1bbcd8a2a617b04d053f7f4444b2613a720aa0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 23 Dec 2009 15:06:47 +0000 Subject: fix for a crash when running blender in debug mode (-d arg), was registering every operator in debug mode. added some more sculpt key shortcuts * R toggles rake * Shift+A toggles airbrush note: last commit added Ctrl+0 to set zero subsurf and multires --- source/blender/editors/sculpt_paint/paint_ops.c | 6 ++++++ .../blender/windowmanager/intern/wm_event_system.c | 24 +++++++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index b87d229545e..5cfda009514 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -214,6 +214,12 @@ void ED_keymap_paint(wmKeyConfig *keyconf) kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_smooth_stroke"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", RKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_rake"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", AKEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_airbrush"); + /* brush switching */ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", DKEY, KM_PRESS, 0, 0); RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 6b0368fbf8a..825d8cbcf8c 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -316,7 +316,13 @@ static int wm_operator_exec(bContext *C, wmOperator *op, int repeat) ED_undo_push_op(C, op); if(repeat==0) { - if((op->type->flag & OPTYPE_REGISTER) || (G.f & G_DEBUG)) + if(G.f & G_DEBUG) { + char *buf = WM_operator_pystring(C, op->type, op->ptr, 1); + BKE_report(CTX_wm_reports(C), RPT_OPERATOR, buf); + MEM_freeN(buf); + } + + if((op->type->flag & OPTYPE_REGISTER)) wm_operator_register(C, op); else WM_operator_free(op); @@ -450,7 +456,13 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P if(ot->flag & OPTYPE_UNDO) ED_undo_push_op(C, op); - if((ot->flag & OPTYPE_REGISTER) || (G.f & G_DEBUG)) + if(G.f & G_DEBUG) { + char *buf = WM_operator_pystring(C, op->type, op->ptr, 1); + BKE_report(CTX_wm_reports(C), RPT_OPERATOR, buf); + MEM_freeN(buf); + } + + if((ot->flag & OPTYPE_REGISTER)) wm_operator_register(C, op); else WM_operator_free(op); @@ -899,7 +911,13 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand if(ot->flag & OPTYPE_UNDO) ED_undo_push_op(C, op); - if((ot->flag & OPTYPE_REGISTER) || (G.f & G_DEBUG)) + if(G.f & G_DEBUG) { + char *buf = WM_operator_pystring(C, op->type, op->ptr, 1); + BKE_report(CTX_wm_reports(C), RPT_OPERATOR, buf); + MEM_freeN(buf); + } + + if((ot->flag & OPTYPE_REGISTER)) wm_operator_register(C, op); else WM_operator_free(op); -- cgit v1.2.3 From 4aa15ee9f2799e6d39150ec9918bbcb015f7eea0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 23 Dec 2009 15:51:39 +0000 Subject: crash fix for sculpt when loading some files --- source/blender/editors/space_view3d/drawobject.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index edb91f2b0c9..8060514accd 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2796,6 +2796,8 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D } } else if(dt==OB_SOLID) { + Paint *p; + if((v3d->flag&V3D_SELECT_OUTLINE) && (base->flag&SELECT) && !draw_wire && !ob->sculpt) draw_mesh_object_outline(v3d, ob, dm); @@ -2804,8 +2806,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D glEnable(GL_LIGHTING); glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW); - if(ob->sculpt) { - Paint *p = paint_get_active(scene); + if(ob->sculpt && (p=paint_get_active(scene))) { float planes[4][4]; float (*fpl)[4] = NULL; int fast= (p->flags & PAINT_FAST_NAVIGATE) && (rv3d->rflag & RV3D_NAVIGATING); -- cgit v1.2.3 From 980e97923b5c00805f2698e84d7db92f0ded5458 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 24 Dec 2009 09:26:06 +0000 Subject: Key map related things: * Moved 'change shortcut' (previously directly RMB on menu items) to a context-menu item, and added Remove Shortcut and Add Shortcut. This is all available now in a RMB context menu for operator buttons and menu entries. * Renamed a bunch of key maps to be consistent with UI names, and human-readable. Since these key map names are now being directly used in the UI for people to find things, they should be understandable and in plain language. This renaming may break some older saved key map setups - though previously saved .b25.blends should convert over ok. Exported .py files may need some find/replacing - in this commit check the changes in resources.c to see what's changed. --- .../blender/editors/animation/anim_channels_edit.c | 2 +- source/blender/editors/include/UI_interface.h | 1 + source/blender/editors/interface/interface.c | 19 +- .../blender/editors/interface/interface_handlers.c | 208 ++++++++++++++------- .../blender/editors/interface/interface_intern.h | 3 +- .../blender/editors/interface/interface_layout.c | 15 +- source/blender/editors/interface/resources.c | 42 +++++ source/blender/editors/mesh/mesh_ops.c | 2 +- source/blender/editors/space_action/action_ops.c | 2 +- source/blender/editors/space_action/space_action.c | 4 +- .../blender/editors/space_buttons/space_buttons.c | 4 +- source/blender/editors/space_file/space_file.c | 16 +- source/blender/editors/space_graph/graph_ops.c | 4 +- source/blender/editors/space_graph/space_graph.c | 10 +- source/blender/editors/space_image/space_image.c | 2 +- source/blender/editors/space_logic/space_logic.c | 6 +- source/blender/editors/space_nla/nla_ops.c | 2 +- source/blender/editors/space_nla/space_nla.c | 2 +- source/blender/editors/space_node/node_ops.c | 2 +- source/blender/editors/space_node/space_node.c | 2 +- source/blender/editors/space_time/space_time.c | 2 +- source/blender/editors/space_time/time_ops.c | 2 +- source/blender/editors/space_view3d/space_view3d.c | 14 +- source/blender/editors/space_view3d/view3d_ops.c | 4 +- source/blender/editors/uvedit/uvedit_ops.c | 2 +- source/blender/windowmanager/WM_api.h | 9 +- source/blender/windowmanager/intern/wm_keymap.c | 194 +++++++++++++++++-- 27 files changed, 432 insertions(+), 143 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index c919b164a05..0c77c2b0010 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1901,7 +1901,7 @@ void ED_operatortypes_animchannels(void) void ED_keymap_animchannels(wmKeyConfig *keyconf) { - wmKeyMap *keymap = WM_keymap_find(keyconf, "Animation_Channels", 0, 0); + wmKeyMap *keymap = WM_keymap_find(keyconf, "Animation Channels", 0, 0); /* selection */ /* click-select */ diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 313791e28cb..2af7fe09509 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -592,6 +592,7 @@ void UI_exit(void); #define UI_ITEM_R_EVENT 32 #define UI_ITEM_R_FULL_EVENT 64 #define UI_ITEM_R_NO_BG 128 +#define UI_ITEM_R_IMMEDIATE 256 uiLayout *uiBlockLayout(uiBlock *block, int dir, int type, int x, int y, int size, int em, struct uiStyle *style); void uiBlockSetCurLayout(uiBlock *block, uiLayout *layout); diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index f0d09c505ac..88b9c7819fd 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1995,23 +1995,18 @@ void ui_check_but(uiBut *but) case HOTKEYEVT: if (but->flag & UI_SELECT) { - short *sp= (short *)but->func_arg3; + strncpy(but->drawstr, "", UI_MAX_DRAW_STR); - if(but->flag & UI_BUT_IMMEDIATE) - strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR); - else - strncpy(but->drawstr, "", UI_MAX_DRAW_STR); - - if(*sp) { + if(but->modifier_key) { char *str= but->drawstr; - if(*sp & KM_SHIFT) + if(but->modifier_key & KM_SHIFT) str= strcat(str, "Shift "); - if(*sp & KM_CTRL) + if(but->modifier_key & KM_CTRL) str= strcat(str, "Ctrl "); - if(*sp & KM_ALT) + if(but->modifier_key & KM_ALT) str= strcat(str, "Alt "); - if(*sp & KM_OSKEY) + if(but->modifier_key & KM_OSKEY) str= strcat(str, "Cmd "); } else @@ -3169,7 +3164,7 @@ uiBut *uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1 uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *keypoin, short *modkeypoin, char *tip) { uiBut *but= ui_def_but(block, HOTKEYEVT|SHO, retval, str, x1, y1, x2, y2, keypoin, 0.0, 0.0, 0.0, 0.0, tip); - but->func_arg3= modkeypoin; /* XXX hrmf, abuse! */ + but->modifier_key= *modkeypoin; ui_check_but(but); return but; } diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 88868a61592..b41f47db271 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1862,13 +1862,12 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data if(data->state == BUTTON_STATE_HIGHLIGHT) { if(ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->val==KM_PRESS) { but->drawstr[0]= 0; - *(short *)but->func_arg3= 0; + but->modifier_key= 0; button_activate_state(C, but, BUTTON_STATE_WAIT_KEY_EVENT); return WM_UI_HANDLER_BREAK; } } else if(data->state == BUTTON_STATE_WAIT_KEY_EVENT) { - short *sp= (short *)but->func_arg3; if(event->type == MOUSEMOVE) return WM_UI_HANDLER_CONTINUE; @@ -1884,15 +1883,15 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data } /* always set */ - *sp= 0; + but->modifier_key = 0; if(event->shift) - *sp |= KM_SHIFT; + but->modifier_key |= KM_SHIFT; if(event->alt) - *sp |= KM_ALT; + but->modifier_key |= KM_ALT; if(event->ctrl) - *sp |= KM_CTRL; + but->modifier_key |= KM_CTRL; if(event->oskey) - *sp |= KM_OSKEY; + but->modifier_key |= KM_OSKEY; ui_check_but(but); ED_region_tag_redraw(data->region); @@ -3333,69 +3332,134 @@ static int ui_do_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data, wmE return WM_UI_HANDLER_CONTINUE; } -/* callback for hotkey change button/menu */ -static void do_menu_change_hotkey(bContext *C, void *but_v, void *key_v) +static void but_shortcut_name_func(bContext *C, void *arg1, int event) { - uiBut *but= but_v; - IDProperty *prop= (but->opptr)? but->opptr->data: NULL; - short *key= key_v; - char buf[512], *butstr, *cpoin; + uiBut *but = (uiBut *)arg1; - /* signal for escape */ - if(key[0]==0) return; + char buf[512], *butstr, *cpoin; - WM_key_event_operator_change(C, but->optype->idname, but->opcontext, prop, key[0], key[1]); - - /* complex code to change name of button */ - if(WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, buf, sizeof(buf))) { - - butstr= MEM_mallocN(strlen(but->str)+strlen(buf)+2, "menu_block_set_keymaps"); + if (but->optype) { + IDProperty *prop= (but->opptr)? but->opptr->data: NULL; - /* XXX but->str changed... should not, remove the hotkey from it */ - cpoin= strchr(but->str, '|'); - if(cpoin) *cpoin= 0; - - strcpy(butstr, but->str); - strcat(butstr, "|"); - strcat(butstr, buf); - - but->str= but->strdata; - BLI_strncpy(but->str, butstr, sizeof(but->strdata)); - MEM_freeN(butstr); - - ui_check_but(but); + /* complex code to change name of button */ + if(WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, buf, sizeof(buf))) { + + butstr= MEM_mallocN(strlen(but->str)+strlen(buf)+2, "menu_block_set_keymaps"); + + // XXX but->str changed... should not, remove the hotkey from it + cpoin= strchr(but->str, '|'); + if(cpoin) *cpoin= 0; + + strcpy(butstr, but->str); + strcat(butstr, "|"); + strcat(butstr, buf); + + but->str= but->strdata; + BLI_strncpy(but->str, butstr, sizeof(but->strdata)); + MEM_freeN(butstr); + + ui_check_but(but); + } else { + /* shortcut was removed */ + cpoin= strchr(but->str, '|'); + if(cpoin) *cpoin= 0; + } } - } +static uiBlock *menu_change_shortcut(bContext *C, ARegion *ar, void *arg) +{ + uiBlock *block; + uiBut *but = (uiBut *)arg; + wmKeyMap *km; + wmKeyMapItem *kmi; + PointerRNA ptr; + uiLayout *layout; + uiStyle *style= U.uistyles.first; + IDProperty *prop= (but->opptr)? but->opptr->data: NULL; + int kmi_id = WM_key_event_operator_id(C, but->optype->idname, but->opcontext, prop, &km); + + kmi = WM_keymap_item_find_id(km, kmi_id); + + RNA_pointer_create(NULL, &RNA_KeyMapItem, kmi, &ptr); + + block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); + uiBlockSetHandleFunc(block, but_shortcut_name_func, but); + uiBlockSetFlag(block, UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT); + uiBlockSetDirection(block, UI_CENTER); + + layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, 200, 20, style); + + uiItemR(layout, "", 0, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE); + + uiPopupBoundsBlock(block, 6, 100, 10); + uiEndBlock(C, block); + + return block; +} -static uiBlock *menu_change_hotkey(bContext *C, ARegion *ar, void *arg_but) +static uiBlock *menu_add_shortcut(bContext *C, ARegion *ar, void *arg) { uiBlock *block; - uiBut *but= arg_but; - wmOperatorType *ot= WM_operatortype_find(but->optype->idname, 1); - static short dummy[2]; - char buf[OP_MAX_TYPENAME+10]; + uiBut *but = (uiBut *)arg; + wmKeyMap *km; + wmKeyMapItem *kmi; + PointerRNA ptr; + uiLayout *layout; + uiStyle *style= U.uistyles.first; + IDProperty *prop= (but->opptr)? but->opptr->data: NULL; - dummy[0]= 0; - dummy[1]= 0; + km = WM_keymap_guess_opname(C, but->optype->idname); + kmi = WM_keymap_add_item(km, but->optype->idname, AKEY, KM_PRESS, 0, 0); + MEM_freeN(kmi->properties); + kmi->properties= IDP_CopyProperty(prop); - block= uiBeginBlock(C, ar, "_popup", UI_EMBOSSP); - uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_MOVEMOUSE_QUIT|UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT); + RNA_pointer_create(NULL, &RNA_KeyMapItem, kmi, &ptr); - BLI_strncpy(buf, ot->name, OP_MAX_TYPENAME); - strcat(buf, " |"); + block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); + uiBlockSetHandleFunc(block, but_shortcut_name_func, but); + uiBlockSetFlag(block, UI_BLOCK_RET_1); + uiBlockSetDirection(block, UI_CENTER); - but= uiDefHotKeyevtButS(block, 0, buf, 0, 0, 200, 20, dummy, dummy+1, ""); - uiButSetFlag(but, UI_BUT_IMMEDIATE); - uiButSetFunc(but, do_menu_change_hotkey, arg_but, dummy); + layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, 200, 20, style); - uiPopupBoundsBlock(block, 6.0f, 50, -10); + uiItemR(layout, "", 0, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE); + + uiPopupBoundsBlock(block, 6, 100, 10); uiEndBlock(C, block); return block; } +static void popup_change_shortcut_func(bContext *C, void *arg1, void *arg2) +{ + uiBut *but = (uiBut *)arg1; + button_timers_tooltip_remove(C, but); + uiPupBlock(C, menu_change_shortcut, but); +} + +static void remove_shortcut_func(bContext *C, void *arg1, void *arg2) +{ + uiBut *but = (uiBut *)arg1; + wmKeyMap *km; + wmKeyMapItem *kmi; + IDProperty *prop= (but->opptr)? but->opptr->data: NULL; + int kmi_id = WM_key_event_operator_id(C, but->optype->idname, but->opcontext, prop, &km); + + kmi = WM_keymap_item_find_id(km, kmi_id); + WM_keymap_remove_item(km, kmi); + + but_shortcut_name_func(C, but, 0); +} + +static void popup_add_shortcut_func(bContext *C, void *arg1, void *arg2) +{ + uiBut *but = (uiBut *)arg1; + button_timers_tooltip_remove(C, but); + uiPupBlock(C, menu_add_shortcut, but); +} + + static int ui_but_menu(bContext *C, uiBut *but) { uiPopupMenu *pup; @@ -3512,7 +3576,36 @@ static int ui_but_menu(bContext *C, uiBut *but) uiItemS(layout); } + /* Operator buttons */ + if(but->optype) { + uiBlock *block = uiLayoutGetBlock(layout); + uiBut *but2; + IDProperty *prop= (but->opptr)? but->opptr->data: NULL; + int w = uiLayoutGetWidth(layout); + char buf[512]; + + /* keyboard shortcuts */ + if(WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, buf, sizeof(buf))) { + + // would rather use a block but, but gets weirdly positioned... + //uiDefBlockBut(block, menu_change_shortcut, but, "Change Shortcut", 0, 0, uiLayoutGetWidth(layout), UI_UNIT_Y, ""); + + but2 = uiDefIconTextBut(block, BUT, 0, 0, "Change Shortcut", 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, ""); + uiButSetFunc(but2, popup_change_shortcut_func, but, NULL); + + but2 = uiDefIconTextBut(block, BUT, 0, 0, "Remove Shortcut", 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, ""); + uiButSetFunc(but2, remove_shortcut_func, but, NULL); + } + /* only show 'add' if there's a suitable key map for it to go in */ + else if (WM_keymap_guess_opname(C, but->optype->idname)) { + but2 = uiDefIconTextBut(block, BUT, 0, 0, "Add Shortcut", 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, ""); + uiButSetFunc(but2, popup_add_shortcut_func, but, NULL); + } + + uiItemS(layout); + } + { /* Docs */ char buf[512]; PointerRNA ptr_props; @@ -3605,18 +3698,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event) /* handle menu */ else if(event->type == RIGHTMOUSE && event->val == KM_PRESS) { /* RMB has two options now */ - - if((but->block->flag & UI_BLOCK_LOOP) && but->optype) { - IDProperty *prop= (but->opptr)? but->opptr->data: NULL; - char buf[512]; - - if(WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, buf, sizeof(buf))) { - button_timers_tooltip_remove(C, but); - uiPupBlock(C, menu_change_hotkey, but); - - } - } - else if (ui_but_menu(C, but)) { + if (ui_but_menu(C, but)) { return WM_UI_HANDLER_BREAK; } } @@ -3958,7 +4040,7 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s int time; if(but->block->auto_open==2) time= 1; // test for toolbox - else if(but->block->flag & UI_BLOCK_LOOP || but->block->auto_open) time= 5*U.menuthreshold2; + else if((but->block->flag & UI_BLOCK_LOOP && but->type != BLOCK) || but->block->auto_open) time= 5*U.menuthreshold2; else if(U.uiflag & USER_MENUOPENAUTO) time= 5*U.menuthreshold1; else time= -1; diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 97ef1f1ea17..02808f9c2e7 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -199,7 +199,8 @@ struct uiBut { BIFIconID icon; short but_align; /* aligning buttons, horiz/vertical */ - short lock, win; + short lock; + short modifier_key; short iconadd, dt; /* IDPOIN data */ diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 9dd5535ea30..e512c1f6bf8 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -486,12 +486,11 @@ static void ui_item_enum_row(uiLayout *layout, uiBlock *block, PointerRNA *ptr, static void ui_keymap_but_cb(bContext *C, void *but_v, void *key_v) { uiBut *but= but_v; - short modifier= *((short*)key_v); - RNA_boolean_set(&but->rnapoin, "shift", (modifier & KM_SHIFT) != 0); - RNA_boolean_set(&but->rnapoin, "ctrl", (modifier & KM_CTRL) != 0); - RNA_boolean_set(&but->rnapoin, "alt", (modifier & KM_ALT) != 0); - RNA_boolean_set(&but->rnapoin, "oskey", (modifier & KM_OSKEY) != 0); + RNA_boolean_set(&but->rnapoin, "shift", (but->modifier_key & KM_SHIFT) != 0); + RNA_boolean_set(&but->rnapoin, "ctrl", (but->modifier_key & KM_CTRL) != 0); + RNA_boolean_set(&but->rnapoin, "alt", (but->modifier_key & KM_ALT) != 0); + RNA_boolean_set(&but->rnapoin, "oskey", (but->modifier_key & KM_OSKEY) != 0); } /* create label + button for RNA property */ @@ -533,14 +532,14 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, char *name, i } else if(flag & UI_ITEM_R_FULL_EVENT) { if(RNA_struct_is_a(ptr->type, &RNA_KeyMapItem)) { - static short dummy = 0; char buf[128]; WM_keymap_item_to_string(ptr->data, buf, sizeof(buf)); but= uiDefButR(block, HOTKEYEVT, 0, buf, x, y, w, h, ptr, RNA_property_identifier(prop), 0, 0, 0, -1, -1, NULL); - but->func_arg3= &dummy; // XXX abuse - uiButSetFunc(but, ui_keymap_but_cb, but, &dummy); + uiButSetFunc(but, ui_keymap_but_cb, but, NULL); + if (flag & UI_ITEM_R_IMMEDIATE) + uiButSetFlag(but, UI_BUT_IMMEDIATE); } } else diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index b2ae5572a05..47bbbd9292c 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -46,6 +46,7 @@ #include "DNA_userdef_types.h" #include "DNA_screen_types.h" #include "DNA_space_types.h" +#include "DNA_windowmanager_types.h" #include "BLI_blenlib.h" @@ -1269,6 +1270,47 @@ void init_userdef_do_versions(void) if (G.main->versionfile < 250 || (G.main->versionfile == 250 && G.main->subversionfile < 5)) U.gameflags |= USER_DISABLE_VBO; + if (G.main->versionfile < 250 || (G.main->versionfile == 250 && G.main->subversionfile < 8)) { + wmKeyMap *km; + + for(km=U.keymaps.first; km; km=km->next) { + if (strcmp(km->idname, "Armature_Sketch")==0) + strcpy(km->idname, "Armature Sketch"); + else if (strcmp(km->idname, "View3D")==0) + strcpy(km->idname, "3D View"); + else if (strcmp(km->idname, "View3D Generic")==0) + strcpy(km->idname, "3D View Generic"); + else if (strcmp(km->idname, "EditMesh")==0) + strcpy(km->idname, "Mesh"); + else if (strcmp(km->idname, "TimeLine")==0) + strcpy(km->idname, "Timeline"); + else if (strcmp(km->idname, "UVEdit")==0) + strcpy(km->idname, "UV Editor"); + else if (strcmp(km->idname, "Animation_Channels")==0) + strcpy(km->idname, "Animation Channels"); + else if (strcmp(km->idname, "GraphEdit Keys")==0) + strcpy(km->idname, "Graph Editor"); + else if (strcmp(km->idname, "GraphEdit Generic")==0) + strcpy(km->idname, "Graph Editor Generic"); + else if (strcmp(km->idname, "Action_Keys")==0) + strcpy(km->idname, "Dopesheet"); + else if (strcmp(km->idname, "NLA Data")==0) + strcpy(km->idname, "NLA Editor"); + else if (strcmp(km->idname, "Node Generic")==0) + strcpy(km->idname, "Node Editor"); + else if (strcmp(km->idname, "Logic Generic")==0) + strcpy(km->idname, "Logic Editor"); + else if (strcmp(km->idname, "File")==0) + strcpy(km->idname, "File Browser"); + else if (strcmp(km->idname, "FileMain")==0) + strcpy(km->idname, "File Browser Main"); + else if (strcmp(km->idname, "FileButtons")==0) + strcpy(km->idname, "File Browser Buttons"); + else if (strcmp(km->idname, "Buttons Generic")==0) + strcpy(km->idname, "Property Editor"); + } + } + /* GL Texture Garbage Collection (variable abused above!) */ if (U.textimeout == 0) { U.texcollectrate = 60; diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index 11b5f3a9031..c41ac9f6550 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -207,7 +207,7 @@ void ED_keymap_mesh(wmKeyConfig *keyconf) wmKeyMap *keymap; wmKeyMapItem *kmi; - keymap= WM_keymap_find(keyconf, "EditMesh", 0, 0); + keymap= WM_keymap_find(keyconf, "Mesh", 0, 0); keymap->poll= ED_operator_editmesh; WM_keymap_add_item(keymap, "MESH_OT_loopcut_slide", RKEY, KM_PRESS, KM_CTRL, 0); diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c index b4c9fee8469..68c354b2b87 100644 --- a/source/blender/editors/space_action/action_ops.c +++ b/source/blender/editors/space_action/action_ops.c @@ -175,7 +175,7 @@ void action_keymap(wmKeyConfig *keyconf) */ /* keyframes */ - keymap= WM_keymap_find(keyconf, "Action_Keys", SPACE_ACTION, 0); + keymap= WM_keymap_find(keyconf, "Dopesheet", SPACE_ACTION, 0); action_keymap_keyframes(keyconf, keymap); } diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 6a53e565e75..57a39b3225e 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -159,7 +159,7 @@ static void action_main_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy); /* own keymap */ - keymap= WM_keymap_find(wm->defaultconf, "Action_Keys", SPACE_ACTION, 0); + keymap= WM_keymap_find(wm->defaultconf, "Dopesheet", SPACE_ACTION, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); } @@ -222,7 +222,7 @@ static void action_channel_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy); /* own keymap */ - keymap= WM_keymap_find(wm->defaultconf, "Animation_Channels", 0, 0); + keymap= WM_keymap_find(wm->defaultconf, "Animation Channels", 0, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); } diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 9a4ac872ceb..7f9c1477ee7 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -142,7 +142,7 @@ static void buttons_main_area_init(wmWindowManager *wm, ARegion *ar) ED_region_panels_init(wm, ar); - keymap= WM_keymap_find(wm->defaultconf, "Buttons Generic", SPACE_BUTS, 0); + keymap= WM_keymap_find(wm->defaultconf, "Property Editor", SPACE_BUTS, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } @@ -193,7 +193,7 @@ void buttons_operatortypes(void) void buttons_keymap(struct wmKeyConfig *keyconf) { - wmKeyMap *keymap= WM_keymap_find(keyconf, "Buttons Generic", SPACE_BUTS, 0); + wmKeyMap *keymap= WM_keymap_find(keyconf, "Property Editor", SPACE_BUTS, 0); WM_keymap_add_item(keymap, "BUTTONS_OT_toolbox", RIGHTMOUSE, KM_PRESS, 0, 0); } diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c index 8714e772852..e0915010e16 100644 --- a/source/blender/editors/space_file/space_file.c +++ b/source/blender/editors/space_file/space_file.c @@ -253,10 +253,10 @@ static void file_main_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy); /* own keymaps */ - keymap= WM_keymap_find(wm->defaultconf, "File", SPACE_FILE, 0); + keymap= WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); - keymap= WM_keymap_find(wm->defaultconf, "FileMain", SPACE_FILE, 0); + keymap= WM_keymap_find(wm->defaultconf, "File Browser Main", SPACE_FILE, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); @@ -368,7 +368,7 @@ void file_keymap(struct wmKeyConfig *keyconf) { wmKeyMapItem *kmi; /* keys for all areas */ - wmKeyMap *keymap= WM_keymap_find(keyconf, "File", SPACE_FILE, 0); + wmKeyMap *keymap= WM_keymap_find(keyconf, "File Browser", SPACE_FILE, 0); WM_keymap_add_item(keymap, "FILE_OT_bookmark_toggle", NKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "FILE_OT_parent", PKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "FILE_OT_bookmark_add", BKEY, KM_PRESS, KM_CTRL, 0); @@ -380,7 +380,7 @@ void file_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "FILE_OT_delete", DELKEY, KM_PRESS, 0, 0); /* keys for main area */ - keymap= WM_keymap_find(keyconf, "FileMain", SPACE_FILE, 0); + keymap= WM_keymap_find(keyconf, "File Browser Main", SPACE_FILE, 0); WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_PRESS, 0, 0); kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0); RNA_boolean_set(kmi->ptr, "extend", 1); @@ -404,7 +404,7 @@ void file_keymap(struct wmKeyConfig *keyconf) RNA_int_set(kmi->ptr, "increment",-100); /* keys for button area (top) */ - keymap= WM_keymap_find(keyconf, "FileButtons", SPACE_FILE, 0); + keymap= WM_keymap_find(keyconf, "File Browser Buttons", SPACE_FILE, 0); kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0); RNA_int_set(kmi->ptr, "increment", 1); kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0); @@ -427,7 +427,7 @@ static void file_channel_area_init(wmWindowManager *wm, ARegion *ar) ED_region_panels_init(wm, ar); /* own keymaps */ - keymap= WM_keymap_find(wm->defaultconf, "File", SPACE_FILE, 0); + keymap= WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); } @@ -463,10 +463,10 @@ static void file_ui_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy); /* own keymap */ - keymap= WM_keymap_find(wm->defaultconf, "File", SPACE_FILE, 0); + keymap= WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); - keymap= WM_keymap_find(wm->defaultconf, "FileButtons", SPACE_FILE, 0); + keymap= WM_keymap_find(wm->defaultconf, "File Browser Buttons", SPACE_FILE, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); } diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index cddb1965964..5b62761ae74 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -363,7 +363,7 @@ void graphedit_keymap(wmKeyConfig *keyconf) wmKeyMap *keymap; /* keymap for all regions */ - keymap= WM_keymap_find(keyconf, "GraphEdit Generic", SPACE_IPO, 0); + keymap= WM_keymap_find(keyconf, "Graph Editor Generic", SPACE_IPO, 0); WM_keymap_add_item(keymap, "GRAPH_OT_properties", NKEY, KM_PRESS, 0, 0); /* channels */ @@ -373,7 +373,7 @@ void graphedit_keymap(wmKeyConfig *keyconf) */ /* keyframes */ - keymap= WM_keymap_find(keyconf, "GraphEdit Keys", SPACE_IPO, 0); + keymap= WM_keymap_find(keyconf, "Graph Editor", SPACE_IPO, 0); graphedit_keymap_keyframes(keyconf, keymap); } diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 8111ee8f779..cf99e3602dd 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -213,9 +213,9 @@ static void graph_main_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy); /* own keymap */ - keymap= WM_keymap_find(wm->defaultconf, "GraphEdit Keys", SPACE_IPO, 0); + keymap= WM_keymap_find(wm->defaultconf, "Graph Editor", SPACE_IPO, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); - keymap= WM_keymap_find(wm->defaultconf, "GraphEdit Generic", SPACE_IPO, 0); + keymap= WM_keymap_find(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } @@ -312,9 +312,9 @@ static void graph_channel_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy); /* own keymap */ - keymap= WM_keymap_find(wm->defaultconf, "Animation_Channels", 0, 0); + keymap= WM_keymap_find(wm->defaultconf, "Animation Channels", 0, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); - keymap= WM_keymap_find(wm->defaultconf, "GraphEdit Generic", SPACE_IPO, 0); + keymap= WM_keymap_find(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } @@ -365,7 +365,7 @@ static void graph_buttons_area_init(wmWindowManager *wm, ARegion *ar) ED_region_panels_init(wm, ar); - keymap= WM_keymap_find(wm->defaultconf, "GraphEdit Generic", SPACE_IPO, 0); + keymap= WM_keymap_find(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); } diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 5b05c8f8944..d82364fed2f 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -391,7 +391,7 @@ static void image_main_area_init(wmWindowManager *wm, ARegion *ar) keymap= WM_keymap_find(wm->defaultconf, "Image Paint", 0, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); - keymap= WM_keymap_find(wm->defaultconf, "UVEdit", 0, 0); + keymap= WM_keymap_find(wm->defaultconf, "UV Editor", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); /* own keymaps */ diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c index c2918dd0925..06e92ee5fce 100644 --- a/source/blender/editors/space_logic/space_logic.c +++ b/source/blender/editors/space_logic/space_logic.c @@ -188,7 +188,7 @@ void logic_operatortypes(void) void logic_keymap(struct wmKeyConfig *keyconf) { - wmKeyMap *keymap= WM_keymap_find(keyconf, "Logic Generic", SPACE_LOGIC, 0); + wmKeyMap *keymap= WM_keymap_find(keyconf, "Logic Editor", SPACE_LOGIC, 0); WM_keymap_add_item(keymap, "LOGIC_OT_properties", NKEY, KM_PRESS, 0, 0); } @@ -243,7 +243,7 @@ static void logic_main_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy); /* own keymaps */ - keymap= WM_keymap_find(wm->defaultconf, "Logic Generic", SPACE_LOGIC, 0); + keymap= WM_keymap_find(wm->defaultconf, "Logic Editor", SPACE_LOGIC, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } @@ -284,7 +284,7 @@ static void logic_buttons_area_init(wmWindowManager *wm, ARegion *ar) ED_region_panels_init(wm, ar); - keymap= WM_keymap_find(wm->defaultconf, "Logic Generic", SPACE_LOGIC, 0); + keymap= WM_keymap_find(wm->defaultconf, "Logic Editor", SPACE_LOGIC, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c index 8f057c2d751..bec3a003b1e 100644 --- a/source/blender/editors/space_nla/nla_ops.c +++ b/source/blender/editors/space_nla/nla_ops.c @@ -301,7 +301,7 @@ void nla_keymap(wmKeyConfig *keyconf) nla_keymap_channels(keyconf, keymap); /* data */ - keymap= WM_keymap_find(keyconf, "NLA Data", SPACE_NLA, 0); + keymap= WM_keymap_find(keyconf, "NLA Editor", SPACE_NLA, 0); nla_keymap_main(keyconf, keymap); } diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c index ddab0817c58..b384a30de56 100644 --- a/source/blender/editors/space_nla/space_nla.c +++ b/source/blender/editors/space_nla/space_nla.c @@ -264,7 +264,7 @@ static void nla_main_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy); /* own keymap */ - keymap= WM_keymap_find(wm->defaultconf, "NLA Data", SPACE_NLA, 0); + keymap= WM_keymap_find(wm->defaultconf, "NLA Editor", SPACE_NLA, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); keymap= WM_keymap_find(wm->defaultconf, "NLA Generic", SPACE_NLA, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index 2a32ce6b65a..534ca0aa99c 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -98,7 +98,7 @@ void node_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "NODE_OT_properties", NKEY, KM_PRESS, 0, 0); /* Main Area only ----------------- */ - keymap= WM_keymap_find(keyconf, "Node", SPACE_NODE, 0); + keymap= WM_keymap_find(keyconf, "Node Editor", SPACE_NODE, 0); /* mouse select in nodes used to be both keys, but perhaps this should be reduced? * NOTE: mouse-clicks on left-mouse will fall through to allow transform-tweak, but also link/resize diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 650390a8727..dcd07690f0e 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -271,7 +271,7 @@ static void node_main_area_init(wmWindowManager *wm, ARegion *ar) keymap= WM_keymap_find(wm->defaultconf, "Node Generic", SPACE_NODE, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - keymap= WM_keymap_find(wm->defaultconf, "Node", SPACE_NODE, 0); + keymap= WM_keymap_find(wm->defaultconf, "Node Editor", SPACE_NODE, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); } diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index eea5891a720..eb578e093df 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -187,7 +187,7 @@ static void time_main_area_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy); /* own keymap */ - keymap= WM_keymap_find(wm->defaultconf, "TimeLine", SPACE_TIME, 0); + keymap= WM_keymap_find(wm->defaultconf, "Timeline", SPACE_TIME, 0); WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct); } diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c index 83b310dba80..c80f13336cb 100644 --- a/source/blender/editors/space_time/time_ops.c +++ b/source/blender/editors/space_time/time_ops.c @@ -187,7 +187,7 @@ void time_operatortypes(void) void time_keymap(wmKeyConfig *keyconf) { - wmKeyMap *keymap= WM_keymap_find(keyconf, "TimeLine", SPACE_TIME, 0); + wmKeyMap *keymap= WM_keymap_find(keyconf, "Timeline", SPACE_TIME, 0); WM_keymap_add_item(keymap, "TIME_OT_start_frame_set", SKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "TIME_OT_end_frame_set", EKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index b4f3605c559..f1db3ca53fc 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -340,7 +340,7 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar) keymap= WM_keymap_find(wm->defaultconf, "Sculpt", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - keymap= WM_keymap_find(wm->defaultconf, "EditMesh", 0, 0); + keymap= WM_keymap_find(wm->defaultconf, "Mesh", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); keymap= WM_keymap_find(wm->defaultconf, "Curve", 0, 0); @@ -359,7 +359,7 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar) WM_event_add_keymap_handler(&ar->handlers, keymap); /* armature sketching needs to take over mouse */ - keymap= WM_keymap_find(wm->defaultconf, "Armature_Sketch", 0, 0); + keymap= WM_keymap_find(wm->defaultconf, "Armature Sketch", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); keymap= WM_keymap_find(wm->defaultconf, "Particle", 0, 0); @@ -376,10 +376,10 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar) WM_event_add_keymap_handler(&ar->handlers, keymap); /* own keymap, last so modes can override it */ - keymap= WM_keymap_find(wm->defaultconf, "View3D Generic", SPACE_VIEW3D, 0); + keymap= WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - keymap= WM_keymap_find(wm->defaultconf, "View3D", SPACE_VIEW3D, 0); + keymap= WM_keymap_find(wm->defaultconf, "3D View", SPACE_VIEW3D, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } @@ -541,7 +541,7 @@ static void view3d_main_area_cursor(wmWindow *win, ScrArea *sa, ARegion *ar) /* add handlers, stuff you only do once or on area/region changes */ static void view3d_header_area_init(wmWindowManager *wm, ARegion *ar) { - wmKeyMap *keymap= WM_keymap_find(wm->defaultconf, "View3D Generic", SPACE_VIEW3D, 0); + wmKeyMap *keymap= WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); @@ -582,7 +582,7 @@ static void view3d_buttons_area_init(wmWindowManager *wm, ARegion *ar) ED_region_panels_init(wm, ar); - keymap= WM_keymap_find(wm->defaultconf, "View3D Generic", SPACE_VIEW3D, 0); + keymap= WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } @@ -658,7 +658,7 @@ static void view3d_tools_area_init(wmWindowManager *wm, ARegion *ar) ED_region_panels_init(wm, ar); - keymap= WM_keymap_find(wm->defaultconf, "View3D Generic", SPACE_VIEW3D, 0); + keymap= WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 27c062fee8c..4bb65ec4ed4 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -108,13 +108,13 @@ void view3d_keymap(wmKeyConfig *keyconf) wmKeyMap *keymap; wmKeyMapItem *kmi; - keymap= WM_keymap_find(keyconf, "View3D Generic", SPACE_VIEW3D, 0); + keymap= WM_keymap_find(keyconf, "3D View Generic", SPACE_VIEW3D, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_properties", NKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_toolbar", TKEY, KM_PRESS, 0, 0); /* only for region 3D window */ - keymap= WM_keymap_find(keyconf, "View3D", SPACE_VIEW3D, 0); + keymap= WM_keymap_find(keyconf, "3D View", SPACE_VIEW3D, 0); WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0); /* diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index b592d5a62f1..0ee6115bbfe 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -3198,7 +3198,7 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf) { wmKeyMap *keymap; - keymap= WM_keymap_find(keyconf, "UVEdit", 0, 0); + keymap= WM_keymap_find(keyconf, "UV Editor", 0, 0); keymap->poll= ED_operator_uvedit; /* pick selection */ diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 1702149cf8b..8fe7ac39b35 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -104,17 +104,22 @@ wmKeyMapItem *WM_keymap_add_item(struct wmKeyMap *keymap, char *idname, int type int val, int modifier, int keymodifier); wmKeyMapItem *WM_keymap_add_menu(struct wmKeyMap *keymap, char *idname, int type, int val, int modifier, int keymodifier); + void WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); char *WM_keymap_item_to_string(wmKeyMapItem *kmi, char *str, int len); -wmKeyMap *WM_keymap_find(struct wmKeyConfig *keyconf, char *idname, int spaceid, int regionid); wmKeyMap *WM_keymap_list_find(ListBase *lb, char *idname, int spaceid, int regionid); +wmKeyMap *WM_keymap_find(struct wmKeyConfig *keyconf, char *idname, int spaceid, int regionid); +wmKeyMap *WM_keymap_find_all(const struct bContext *C, char *idname, int spaceid, int regionid); wmKeyMap *WM_keymap_active(struct wmWindowManager *wm, struct wmKeyMap *keymap); +wmKeyMap *WM_keymap_guess_opname(const struct bContext *C, char *opname); int WM_keymap_user_init(struct wmWindowManager *wm, struct wmKeyMap *keymap); wmKeyMap *WM_keymap_copy_to_user(struct wmKeyMap *keymap); void WM_keymap_restore_to_default(struct wmKeyMap *keymap); void WM_keymap_properties_reset(struct wmKeyMapItem *kmi); void WM_keymap_restore_item_to_default(struct bContext *C, struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); + +wmKeyMapItem *WM_keymap_item_find_id(struct wmKeyMap *keymap, int id); int WM_keymap_item_compare(struct wmKeyMapItem *k1, struct wmKeyMapItem *k2); int WM_userdef_event_map(int kmitype); @@ -124,8 +129,8 @@ wmKeyMapItem *WM_modalkeymap_add_item(struct wmKeyMap *km, int type, int val, in void WM_modalkeymap_assign(struct wmKeyMap *km, char *opname); const char *WM_key_event_string(short type); +int WM_key_event_operator_id(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, struct wmKeyMap **keymap_r); char *WM_key_event_operator_string(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, char *str, int len); -void WM_key_event_operator_change(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, short key, short modifier); /* handlers */ diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 7de7b3c45e1..447a7ecb92f 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -28,7 +28,9 @@ #include +#include "DNA_object_types.h" #include "DNA_screen_types.h" +#include "DNA_space_types.h" #include "DNA_userdef_types.h" #include "DNA_windowmanager_types.h" @@ -267,6 +269,33 @@ wmKeyMap *WM_keymap_find(wmKeyConfig *keyconf, char *idname, int spaceid, int re return km; } +wmKeyMap *WM_keymap_find_all(const bContext *C, char *idname, int spaceid, int regionid) +{ + wmWindowManager *wm = CTX_wm_manager(C); + wmKeyConfig *keyconf; + wmKeyMap *km; + + /* first user defined keymaps */ + km= WM_keymap_list_find(&U.keymaps, idname, spaceid, regionid); + if (km) + return km; + + /* then user key config */ + keyconf= wm_keyconfig_list_find(&wm->keyconfigs, U.keyconfigstr); + if(keyconf) { + km= WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid); + if (km) + return km; + } + + /* then use default */ + km= WM_keymap_list_find(&wm->defaultconf->keymaps, idname, spaceid, regionid); + if (km) + return km; + else + return NULL; +} + /* ****************** modal keymaps ************ */ /* modal maps get linked to a running operator, and filter the keys before sending to modal() callback */ @@ -458,6 +487,16 @@ char *WM_key_event_operator_string(const bContext *C, const char *opname, int op return NULL; } +int WM_key_event_operator_id(const bContext *C, const char *opname, int opcontext, IDProperty *properties, wmKeyMap **keymap_r) +{ + wmKeyMapItem *kmi= wm_keymap_item_find(C, opname, opcontext, properties, keymap_r); + + if(kmi) + return kmi->id; + else + return 0; +} + int WM_keymap_item_compare(wmKeyMapItem *k1, wmKeyMapItem *k2) { int k1type, k2type; @@ -664,25 +703,150 @@ void WM_keymap_restore_to_default(wmKeyMap *keymap) } } -/* searches context and changes keymap item, if found */ -void WM_key_event_operator_change(const bContext *C, const char *opname, int opcontext, IDProperty *properties, short key, short modifier) +wmKeyMapItem *WM_keymap_item_find_id(wmKeyMap *keymap, int id) { - wmWindowManager *wm= CTX_wm_manager(C); - wmKeyMap *keymap; wmKeyMapItem *kmi; - kmi= wm_keymap_item_find(C, opname, opcontext, properties, &keymap); + for (kmi=keymap->items.first; kmi; kmi=kmi->next) { + if (kmi->id == id) + return kmi; + } + + return NULL; +} - if(kmi) { - /* if the existing one is in a default keymap, copy it - to user preferences, and lookup again so we get a - key map item from the user preferences we can modify */ - if(BLI_findindex(&wm->defaultconf->keymaps, keymap) >= 0) { - WM_keymap_copy_to_user(keymap); - kmi= wm_keymap_item_find(C, opname, opcontext, properties, NULL); +/* Guess an appropriate keymap from the operator name */ +/* Needs to be kept up to date with Keymap and Operator naming */ +wmKeyMap *WM_keymap_guess_opname(const bContext *C, char *opname) +{ + wmKeyMap *km=NULL; + SpaceLink *sl = CTX_wm_space_data(C); + + /* Window */ + if (strstr(opname, "WM_OT")) { + km = WM_keymap_find_all(C, "Window", 0, 0); + } + /* Screen */ + else if (strstr(opname, "SCREEN_OT")) { + km = WM_keymap_find_all(C, "Screen", 0, 0); + } + /* Grease Pencil */ + else if (strstr(opname, "GPENCIL_OT")) { + km = WM_keymap_find_all(C, "Grease Pencil", 0, 0); + } + /* Markers */ + else if (strstr(opname, "MARKER_OT")) { + km = WM_keymap_find_all(C, "Markers", 0, 0); + } + + + /* 3D View */ + else if (strstr(opname, "VIEW3D_OT")) { + km = WM_keymap_find_all(C, "3D View", sl->spacetype, 0); + } + else if (strstr(opname, "OBJECT_OT")) { + km = WM_keymap_find_all(C, "Object Mode", 0, 0); + } + + /* Editing Modes */ + else if (strstr(opname, "MESH_OT")) { + km = WM_keymap_find_all(C, "Mesh", 0, 0); + } + else if (strstr(opname, "CURVE_OT")) { + km = WM_keymap_find_all(C, "Curve", 0, 0); + } + else if (strstr(opname, "ARMATURE_OT")) { + km = WM_keymap_find_all(C, "Armature", 0, 0); + } + else if (strstr(opname, "POSE_OT")) { + km = WM_keymap_find_all(C, "Pose", 0, 0); + } + else if (strstr(opname, "SCULPT_OT")) { + km = WM_keymap_find_all(C, "Sculpt", 0, 0); + } + else if (strstr(opname, "MBALL_OT")) { + km = WM_keymap_find_all(C, "Metaball", 0, 0); + } + else if (strstr(opname, "LATTICE_OT")) { + km = WM_keymap_find_all(C, "Lattice", 0, 0); + } + else if (strstr(opname, "PARTICLE_OT")) { + km = WM_keymap_find_all(C, "Particle", 0, 0); + } + else if (strstr(opname, "FONT_OT")) { + km = WM_keymap_find_all(C, "Font", 0, 0); + } + else if (strstr(opname, "PAINT_OT")) { + + /* check for relevant mode */ + switch(CTX_data_mode_enum(C)) { + case OB_MODE_WEIGHT_PAINT: + km = WM_keymap_find_all(C, "Weight Paint", 0, 0); + break; + case OB_MODE_VERTEX_PAINT: + km = WM_keymap_find_all(C, "Vertex Paint", 0, 0); + break; + case OB_MODE_TEXTURE_PAINT: + km = WM_keymap_find_all(C, "Image Paint", 0, 0); + break; } - - keymap_event_set(kmi, key, KM_PRESS, modifier, 0); } + /* Paint Face Mask */ + else if (strstr(opname, "PAINT_OT_face_select")) { + km = WM_keymap_find_all(C, "Face Mask", sl->spacetype, 0); + } + /* Timeline */ + else if (strstr(opname, "TIME_OT")) { + km = WM_keymap_find_all(C, "Timeline", sl->spacetype, 0); + } + /* Image Editor */ + else if (strstr(opname, "IMAGE_OT")) { + km = WM_keymap_find_all(C, "Image", sl->spacetype, 0); + } + /* UV Editor */ + else if (strstr(opname, "UV_OT")) { + km = WM_keymap_find_all(C, "UV Editor", sl->spacetype, 0); + } + /* Node Editor */ + else if (strstr(opname, "NODE_OT")) { + km = WM_keymap_find_all(C, "Node Editor", sl->spacetype, 0); + } + /* Animation Editor Channels */ + else if (strstr(opname, "ANIM_OT_channels")) { + km = WM_keymap_find_all(C, "Animation Channels", sl->spacetype, 0); + } + /* Animation Generic - after channels */ + else if (strstr(opname, "ANIM_OT")) { + km = WM_keymap_find_all(C, "Animation", 0, 0); + } + /* Graph Editor */ + else if (strstr(opname, "GRAPH_OT")) { + km = WM_keymap_find_all(C, "Graph Editor", sl->spacetype, 0); + } + /* Dopesheet Editor */ + else if (strstr(opname, "ACTION_OT")) { + km = WM_keymap_find_all(C, "Dopesheet", sl->spacetype, 0); + } + /* NLA Editor */ + else if (strstr(opname, "NLA_OT")) { + km = WM_keymap_find_all(C, "NLA Editor", sl->spacetype, 0); + } + /* Script */ + else if (strstr(opname, "SCRIPT_OT")) { + km = WM_keymap_find_all(C, "Script", sl->spacetype, 0); + } + /* Text */ + else if (strstr(opname, "TEXT_OT")) { + km = WM_keymap_find_all(C, "Text", sl->spacetype, 0); + } + /* Sequencer */ + else if (strstr(opname, "SEQUENCER_OT")) { + km = WM_keymap_find_all(C, "Sequencer", sl->spacetype, 0); + } + /* Console */ + else if (strstr(opname, "CONSOLE_OT")) { + km = WM_keymap_find_all(C, "Console", sl->spacetype, 0); + } + + return km; } - -- cgit v1.2.3 From accfa71b2cd95dbaa09172780d93b27b9eef403b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 24 Dec 2009 09:36:15 +0000 Subject: pedantic naming: wmKeyMapItem wasnt called 'kmi' in some cases. --- source/blender/editors/object/object_ops.c | 26 ++++---- source/blender/makesrna/intern/rna_wm.c | 12 ++-- source/blender/windowmanager/intern/wm_operators.c | 72 +++++++++++----------- 3 files changed, 55 insertions(+), 55 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 7b11bc58950..8272d989718 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -336,23 +336,23 @@ void ED_keymap_object(wmKeyConfig *keyconf) void ED_object_generic_keymap(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap, int do_pet) { - wmKeyMapItem *km; + wmKeyMapItem *kmi; /* used by mesh, curve & lattice only */ if(do_pet) { /* context ops */ - km = WM_keymap_add_item(keymap, "WM_OT_context_cycle_enum", OKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "tool_settings.proportional_editing_falloff"); - - km = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, 0, 0); - RNA_string_set(km->ptr, "path", "tool_settings.proportional_editing"); - RNA_string_set(km->ptr, "value_1", "DISABLED"); - RNA_string_set(km->ptr, "value_2", "ENABLED"); - - km = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, KM_ALT, 0); - RNA_string_set(km->ptr, "path", "tool_settings.proportional_editing"); - RNA_string_set(km->ptr, "value_1", "DISABLED"); - RNA_string_set(km->ptr, "value_2", "CONNECTED"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_enum", OKEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.proportional_editing_falloff"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.proportional_editing"); + RNA_string_set(kmi->ptr, "value_1", "DISABLED"); + RNA_string_set(kmi->ptr, "value_2", "ENABLED"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, KM_ALT, 0); + RNA_string_set(kmi->ptr, "path", "tool_settings.proportional_editing"); + RNA_string_set(kmi->ptr, "value_1", "DISABLED"); + RNA_string_set(kmi->ptr, "value_2", "CONNECTED"); } } diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index ca6d8959d00..3a708cc8563 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -453,9 +453,9 @@ static EnumPropertyItem *rna_KeyMapItem_propvalue_itemf(bContext *C, PointerRNA /* check user keymaps */ for(km=U.keymaps.first; km; km=km->next) { - wmKeyMapItem *ki; - for (ki=km->items.first; ki; ki=ki->next) { - if (ki == ptr->data) { + wmKeyMapItem *kmi; + for (kmi=km->items.first; kmi; kmi=kmi->next) { + if (kmi == ptr->data) { if (!km->modal_items) { if (!WM_keymap_user_init(wm, km)) { return keymap_propvalue_items; /* ERROR */ @@ -471,9 +471,9 @@ static EnumPropertyItem *rna_KeyMapItem_propvalue_itemf(bContext *C, PointerRNA for(km=kc->keymaps.first; km; km=km->next) { /* only check if it's a modal keymap */ if (km->modal_items) { - wmKeyMapItem *ki; - for (ki=km->items.first; ki; ki=ki->next) { - if (ki == ptr->data) { + wmKeyMapItem *kmi; + for (kmi=km->items.first; kmi; kmi=kmi->next) { + if (kmi == ptr->data) { return km->modal_items; } } diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index d65580681eb..4ad067e8743 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2802,7 +2802,7 @@ static void gesture_border_modal_keymap(wmKeyConfig *keyconf) void wm_window_keymap(wmKeyConfig *keyconf) { wmKeyMap *keymap= WM_keymap_find(keyconf, "Window", 0, 0); - wmKeyMapItem *km; + wmKeyMapItem *kmi; /* note, this doesn't replace existing keymap items */ WM_keymap_verify_item(keymap, "WM_OT_window_duplicate", WKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); @@ -2820,8 +2820,8 @@ void wm_window_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "WM_OT_open_mainfile", OKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "WM_OT_open_mainfile", F1KEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "WM_OT_link_append", OKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); - km= WM_keymap_add_item(keymap, "WM_OT_link_append", F1KEY, KM_PRESS, KM_SHIFT, 0); - RNA_boolean_set(km->ptr, "link", FALSE); + kmi= WM_keymap_add_item(keymap, "WM_OT_link_append", F1KEY, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "link", FALSE); WM_keymap_add_item(keymap, "WM_OT_save_mainfile", SKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "WM_OT_save_mainfile", WKEY, KM_PRESS, KM_CTRL, 0); @@ -2839,49 +2839,49 @@ void wm_window_keymap(wmKeyConfig *keyconf) /* Space switching */ - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F2KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was DXF export */ - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "LOGIC_EDITOR"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F2KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was DXF export */ + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "LOGIC_EDITOR"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F3KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "NODE_EDITOR"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F3KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "NODE_EDITOR"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F4KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was data browser */ - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "CONSOLE"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F4KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was data browser */ + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "CONSOLE"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F5KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "VIEW_3D"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F5KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "VIEW_3D"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F6KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "GRAPH_EDITOR"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F6KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "GRAPH_EDITOR"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F7KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "PROPERTIES"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F7KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "PROPERTIES"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F8KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "SEQUENCE_EDITOR"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F8KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "SEQUENCE_EDITOR"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F9KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "OUTLINER"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F9KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "OUTLINER"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F10KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "IMAGE_EDITOR"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F10KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "IMAGE_EDITOR"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F11KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "TEXT_EDITOR"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F11KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "TEXT_EDITOR"); - km = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F12KEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(km->ptr, "path", "area.type"); - RNA_string_set(km->ptr, "value", "DOPESHEET_EDITOR"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F12KEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(kmi->ptr, "path", "area.type"); + RNA_string_set(kmi->ptr, "value", "DOPESHEET_EDITOR"); gesture_circle_modal_keymap(keyconf); gesture_border_modal_keymap(keyconf); -- cgit v1.2.3 From 73c62183f80d129cad61f21ec0fe16d5bbec873d Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 24 Dec 2009 10:39:30 +0000 Subject: Removed a few operators that were just used to generate popup menus and replaced with python defined menus. --- source/blender/editors/curve/curve_ops.c | 35 +------------------ source/blender/editors/physics/particle_edit.c | 36 -------------------- source/blender/editors/physics/physics_intern.h | 2 -- source/blender/editors/physics/physics_ops.c | 4 +-- .../blender/editors/space_view3d/view3d_intern.h | 1 - source/blender/editors/space_view3d/view3d_ops.c | 3 +- source/blender/editors/space_view3d/view3d_snap.c | 39 ---------------------- 7 files changed, 3 insertions(+), 117 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c index be52952b474..660db2f0951 100644 --- a/source/blender/editors/curve/curve_ops.c +++ b/source/blender/editors/curve/curve_ops.c @@ -62,37 +62,6 @@ #include "curve_intern.h" -/**************************** menus *****************************/ - -static int specials_menu_invoke(bContext *C, wmOperator *op, wmEvent *event) -{ - uiPopupMenu *pup; - uiLayout *layout; - - pup= uiPupMenuBegin(C, "Specials", 0); - layout= uiPupMenuLayout(pup); - uiItemO(layout, NULL, 0, "CURVE_OT_subdivide"); - uiItemO(layout, NULL, 0, "CURVE_OT_switch_direction"); - uiItemO(layout, NULL, 0, "CURVE_OT_spline_weight_set"); - uiItemO(layout, NULL, 0, "CURVE_OT_radius_set"); - uiItemO(layout, NULL, 0, "CURVE_OT_smooth"); - uiItemO(layout, NULL, 0, "CURVE_OT_smooth_radius"); - uiPupMenuEnd(C, pup); - - return OPERATOR_CANCELLED; -} - -void CURVE_OT_specials_menu(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Specials Menu"; - ot->idname= "CURVE_OT_specials_menu"; - - /* api clastbacks */ - ot->invoke= specials_menu_invoke; - ot->poll= ED_operator_editsurfcurve; -} - /************************* registration ****************************/ void ED_operatortypes_curve(void) @@ -157,8 +126,6 @@ void ED_operatortypes_curve(void) WM_operatortype_append(CURVE_OT_vertex_add); WM_operatortype_append(CURVE_OT_extrude); WM_operatortype_append(CURVE_OT_cyclic_toggle); - - WM_operatortype_append(CURVE_OT_specials_menu); } void ED_keymap_curve(wmKeyConfig *keyconf) @@ -248,7 +215,7 @@ void ED_keymap_curve(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0)->ptr, "unselected", 1); - WM_keymap_add_item(keymap, "CURVE_OT_specials_menu", WKEY, KM_PRESS, 0, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_curve_specials", WKEY, KM_PRESS, 0, 0); /* menus */ WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0); diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index 8bacad3c132..c29214f4633 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -4035,39 +4035,3 @@ void PARTICLE_OT_edited_clear(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -/*********************** specials menu **************************/ - -static int specials_menu_invoke(bContext *C, wmOperator *op, wmEvent *event) -{ - Scene *scene= CTX_data_scene(C); - ParticleEditSettings *pset=PE_settings(scene); - uiPopupMenu *pup; - uiLayout *layout; - - pup= uiPupMenuBegin(C, "Specials", 0); - layout= uiPupMenuLayout(pup); - - uiItemO(layout, NULL, 0, "PARTICLE_OT_rekey"); - if(pset->selectmode & SCE_SELECT_POINT) { - uiItemO(layout, NULL, 0, "PARTICLE_OT_subdivide"); - uiItemO(layout, NULL, 0, "PARTICLE_OT_select_first"); - uiItemO(layout, NULL, 0, "PARTICLE_OT_select_last"); - } - uiItemO(layout, NULL, 0, "PARTICLE_OT_remove_doubles"); - - uiPupMenuEnd(C, pup); - - return OPERATOR_CANCELLED; -} - -void PARTICLE_OT_specials_menu(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Specials Menu"; - ot->idname= "PARTICLE_OT_specials_menu"; - - /* api callbacks */ - ot->invoke= specials_menu_invoke; - ot->poll= PE_hair_poll; -} - diff --git a/source/blender/editors/physics/physics_intern.h b/source/blender/editors/physics/physics_intern.h index 085332b1788..e1b1a8b90a8 100644 --- a/source/blender/editors/physics/physics_intern.h +++ b/source/blender/editors/physics/physics_intern.h @@ -57,8 +57,6 @@ void PARTICLE_OT_brush_set(struct wmOperatorType *ot); void PARTICLE_OT_brush_edit(struct wmOperatorType *ot); void PARTICLE_OT_brush_radial_control(struct wmOperatorType *ot); -void PARTICLE_OT_specials_menu(struct wmOperatorType *ot); - void PARTICLE_OT_particle_edit_toggle(struct wmOperatorType *ot); void PARTICLE_OT_edited_clear(struct wmOperatorType *ot); diff --git a/source/blender/editors/physics/physics_ops.c b/source/blender/editors/physics/physics_ops.c index 09b4ebec7a2..24b3881d6b8 100644 --- a/source/blender/editors/physics/physics_ops.c +++ b/source/blender/editors/physics/physics_ops.c @@ -64,8 +64,6 @@ static void operatortypes_particle(void) WM_operatortype_append(PARTICLE_OT_brush_edit); WM_operatortype_append(PARTICLE_OT_brush_radial_control); - WM_operatortype_append(PARTICLE_OT_specials_menu); - WM_operatortype_append(PARTICLE_OT_particle_edit_toggle); WM_operatortype_append(PARTICLE_OT_edited_clear); @@ -113,7 +111,7 @@ static void keymap_particle(wmKeyConfig *keyconf) RNA_enum_set(WM_keymap_add_item(keymap, "PARTICLE_OT_brush_radial_control", FKEY, KM_PRESS, 0, 0)->ptr, "mode", WM_RADIALCONTROL_SIZE); RNA_enum_set(WM_keymap_add_item(keymap, "PARTICLE_OT_brush_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH); - WM_keymap_add_item(keymap, "PARTICLE_OT_specials_menu", WKEY, KM_PRESS, 0, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_particle_specials", WKEY, KM_PRESS, 0, 0); ED_object_generic_keymap(keyconf, keymap, 1); } diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index b32a067206e..bf5d516c03a 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -161,7 +161,6 @@ void VIEW3D_OT_snap_selected_to_center(struct wmOperatorType *ot); void VIEW3D_OT_snap_cursor_to_grid(struct wmOperatorType *ot); void VIEW3D_OT_snap_cursor_to_selected(struct wmOperatorType *ot); void VIEW3D_OT_snap_cursor_to_active(struct wmOperatorType *ot); -void VIEW3D_OT_snap_menu(struct wmOperatorType *ot); /* space_view3d.c */ ARegion *view3d_has_buttons_region(ScrArea *sa); diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 4bb65ec4ed4..c211e55d7a0 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -98,7 +98,6 @@ void view3d_operatortypes(void) WM_operatortype_append(VIEW3D_OT_snap_cursor_to_grid); WM_operatortype_append(VIEW3D_OT_snap_cursor_to_selected); WM_operatortype_append(VIEW3D_OT_snap_cursor_to_active); - WM_operatortype_append(VIEW3D_OT_snap_menu); transform_operatortypes(); } @@ -241,7 +240,7 @@ void view3d_keymap(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "VIEW3D_OT_camera_to_view", PAD0, KM_PRESS, KM_ALT|KM_CTRL, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_object_as_camera", PAD0, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "VIEW3D_OT_snap_menu", SKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_menu(keymap, "VIEW3D_MT_snap", SKEY, KM_PRESS, KM_SHIFT, 0); /* context ops */ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index a23163f4a5c..3147abd499b 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -1112,42 +1112,3 @@ int minmax_verts(Object *obedit, float *min, float *max) return 1; } -/* ************************************************* */ - -static int snap_menu_invoke(bContext *C, wmOperator *unused, wmEvent *event) -{ - uiPopupMenu *pup= uiPupMenuBegin(C, "Snap", 0); - uiLayout *layout= uiPupMenuLayout(pup); - - uiItemO(layout, "Selected to Grid", 0, "VIEW3D_OT_snap_selected_to_grid"); - uiItemO(layout, "Selected to Cursor", 0, "VIEW3D_OT_snap_selected_to_cursor"); - uiItemO(layout, "Selected to Center", 0, "VIEW3D_OT_snap_selected_to_center"); - uiItemS(layout); - uiItemO(layout, "Cursor to Selected", 0, "VIEW3D_OT_snap_cursor_to_selected"); - uiItemO(layout, "Cursor to Grid", 0, "VIEW3D_OT_snap_cursor_to_grid"); - uiItemO(layout, "Cursor to Active", 0, "VIEW3D_OT_snap_cursor_to_active"); - - uiPupMenuEnd(C, pup); - - /* this operator is only for a menu, not used further */ - return OPERATOR_CANCELLED; -} - -/* only used as menu */ -void VIEW3D_OT_snap_menu(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Snap Menu"; - ot->description= "Display snap menu."; - ot->idname= "VIEW3D_OT_snap_menu"; - - /* api callbacks */ - ot->invoke= snap_menu_invoke; - - ot->poll= ED_operator_view3d_active; - - /* flags */ - ot->flag= 0; -} - - -- cgit v1.2.3 From bb452f29d6c8bce1c34ba56f521e2876377e6bda Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 24 Dec 2009 11:40:14 +0000 Subject: minor pyapi changes --- source/blender/makesrna/RNA_access.h | 2 +- source/blender/makesrna/intern/rna_access.c | 5 ++--- source/blender/python/intern/bpy_rna.c | 19 +++++++++---------- 3 files changed, 12 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 96921ba2f48..a5978937ed5 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -587,7 +587,7 @@ void *RNA_struct_blender_type_get(StructRNA *srna); void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); struct IDProperty *RNA_struct_idproperties(PointerRNA *ptr, int create); -int RNA_struct_idproperties_check(PointerRNA *ptr); +int RNA_struct_idproperties_check(StructRNA *srna); PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 59200a2de55..e2960d2bf3a 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -226,10 +226,9 @@ IDProperty *RNA_struct_idproperties(PointerRNA *ptr, int create) return NULL; } -int RNA_struct_idproperties_check(PointerRNA *ptr) +int RNA_struct_idproperties_check(StructRNA *srna) { - StructRNA *type= ptr->type; - return (type && type->idproperties) ? 1 : 0; + return (srna && srna->idproperties) ? 1 : 0; } static IDProperty *rna_idproperty_find(PointerRNA *ptr, const char *name) diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 9142aaed9ea..65d2b687275 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1204,7 +1204,7 @@ static int pyrna_struct_contains(BPy_StructRNA *self, PyObject *value) return -1; } - if(RNA_struct_idproperties_check(&self->ptr)==0) { + if(RNA_struct_idproperties_check(self->ptr.type)==0) { PyErr_SetString( PyExc_TypeError, "this type doesnt support IDProperties"); return -1; } @@ -1258,7 +1258,7 @@ static PyObject *pyrna_struct_subscript( BPy_StructRNA *self, PyObject *key ) IDProperty *group, *idprop; char *name= _PyUnicode_AsString(key); - if(RNA_struct_idproperties_check(&self->ptr)==0) { + if(RNA_struct_idproperties_check(self->ptr.type)==0) { PyErr_SetString( PyExc_TypeError, "this type doesn't support IDProperties"); return NULL; } @@ -1307,7 +1307,7 @@ static PyObject *pyrna_struct_keys(BPy_PropertyRNA *self) { IDProperty *group; - if(RNA_struct_idproperties_check(&self->ptr)==0) { + if(RNA_struct_idproperties_check(self->ptr.type)==0) { PyErr_SetString( PyExc_TypeError, "this type doesnt support IDProperties"); return NULL; } @@ -1324,7 +1324,7 @@ static PyObject *pyrna_struct_items(BPy_PropertyRNA *self) { IDProperty *group; - if(RNA_struct_idproperties_check(&self->ptr)==0) { + if(RNA_struct_idproperties_check(self->ptr.type)==0) { PyErr_SetString( PyExc_TypeError, "this type doesnt support IDProperties"); return NULL; } @@ -1342,7 +1342,7 @@ static PyObject *pyrna_struct_values(BPy_PropertyRNA *self) { IDProperty *group; - if(RNA_struct_idproperties_check(&self->ptr)==0) { + if(RNA_struct_idproperties_check(self->ptr.type)==0) { PyErr_SetString( PyExc_TypeError, "this type doesnt support IDProperties"); return NULL; } @@ -1671,7 +1671,7 @@ static PyObject *pyrna_struct_getattro( BPy_StructRNA *self, PyObject *pyname ) if(name[0]=='_') { // rna can't start with a "_", so for __dict__ and similar we can skip using rna lookups /* annoying exception, maybe we need to have different types for this... */ - if((strcmp(name, "__getitem__")==0 || strcmp(name, "__setitem__")==0) && !RNA_struct_idproperties_check(&self->ptr)) { + if((strcmp(name, "__getitem__")==0 || strcmp(name, "__setitem__")==0) && !RNA_struct_idproperties_check(self->ptr.type)) { PyErr_SetString(PyExc_AttributeError, "StructRNA - no __getitem__ support for this type"); ret = NULL; } @@ -2027,7 +2027,7 @@ static PyObject *pyrna_struct_get(BPy_StructRNA *self, PyObject *args) return NULL; /* mostly copied from BPy_IDGroup_Map_GetItem */ - if(RNA_struct_idproperties_check(&self->ptr)==0) { + if(RNA_struct_idproperties_check(self->ptr.type)==0) { PyErr_SetString( PyExc_TypeError, "this type doesn't support IDProperties"); return NULL; } @@ -3011,8 +3011,9 @@ static PyObject* pyrna_srna_ExternalType(StructRNA *srna) /* sanity check, could skip this unless in debug mode */ if(newclass) { PyObject *base_compare= pyrna_srna_PyBase(srna); - PyObject *bases= PyObject_GetAttrString(newclass, "__bases__"); //PyObject *slots= PyObject_GetAttrString(newclass, "__slots__"); // cant do this because it gets superclasses values! + //PyObject *bases= PyObject_GetAttrString(newclass, "__bases__"); // can do this but faster not to. + PyObject *bases= ((PyTypeObject *)newclass)->tp_bases; PyObject *slots = PyDict_GetItemString(((PyTypeObject *)newclass)->tp_dict, "__slots__"); if(slots==NULL) { @@ -3032,8 +3033,6 @@ static PyObject* pyrna_srna_ExternalType(StructRNA *srna) fprintf(stderr, "SRNA Subclassed: '%s'\n", idname); } } - - Py_DECREF(bases); } return newclass; -- cgit v1.2.3 From a2b0020e11e27c6d7ecdacf747a4543ab733867b Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Thu, 24 Dec 2009 14:01:22 +0000 Subject: Reverted the addition of the f-curve sound modifier (was added in revision 24759) due to unusability and performance issues. The ability to use a sound as animation source will be added as an import operator later that renders a sound to an f-curve which brings the advantage that you can edit the generated curve later and the disadvantage it is not automatically updated when the sound changes. --- source/blender/blenkernel/intern/fmodifier.c | 93 ---------------------- source/blender/blenloader/intern/readfile.c | 13 --- source/blender/editors/animation/fmodifier_ui.c | 49 +----------- source/blender/editors/include/ED_anim_api.h | 2 +- source/blender/editors/space_graph/graph_buttons.c | 2 +- source/blender/editors/space_nla/nla_buttons.c | 2 +- source/blender/makesdna/DNA_anim_types.h | 21 ----- source/blender/makesrna/RNA_access.h | 1 - source/blender/makesrna/intern/rna_fcurve.c | 45 ----------- 9 files changed, 6 insertions(+), 222 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index 877c6d6b62e..5daa2ed1924 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -53,8 +53,6 @@ #include "RNA_access.h" #include "RNA_types.h" -#include "AUD_C-API.h" - #ifndef DISABLE_PYTHON #include "BPY_extern.h" /* for BPY_pydriver_eval() */ #endif @@ -873,96 +871,6 @@ static FModifierTypeInfo FMI_LIMITS = { fcm_limits_evaluate /* evaluate */ }; -/* Sound F-Curve Modifier --------------------------- */ - -static void fcm_sound_new_data (void *mdata) -{ - FMod_Sound *data= (FMod_Sound *)mdata; - - /* defaults */ - data->strength= 1.0f; - data->delay = 0.0f; - data->modification = FCM_SOUND_MODIF_REPLACE; - data->sound = NULL; -} - -static void fcm_sound_evaluate (FCurve *fcu, FModifier *fcm, float *cvalue, float evaltime) -{ - FMod_Sound *data= (FMod_Sound *)fcm->data; - float amplitude; - - AUD_Device *device; - AUD_Sound *limiter; - AUD_SoundInfo info; - - // XXX fixme - need to get in terms of time instead of frames to be really useful -// evaltime = FRA2TIME(evaltime); - evaltime -= data->delay; - - /* sound-system cannot cope with negative times/frames */ - if (evaltime < 0.0f) - return; - /* must have a sound with a cache so that this can be used */ - if (ELEM(NULL, data->sound, data->sound->cache)) - return; - - /* examine this snippet of the wave, and extract the amplitude from it */ - info = AUD_getInfo(data->sound->cache); - info.specs.channels = 1; - info.specs.format = AUD_FORMAT_FLOAT32; - device = AUD_openReadDevice(info.specs); - limiter = AUD_limitSound(data->sound->cache, evaltime, evaltime + 1); - AUD_playDevice(device, limiter); - AUD_unload(limiter); - AUD_readDevice(device, (sample_t*)&litude, 1); - AUD_closeReadDevice(device); - - /* combine the amplitude with existing motion data */ - switch (data->modification) { - case FCM_SOUND_MODIF_ADD: - *cvalue= *cvalue + amplitude * data->strength; - break; - case FCM_SOUND_MODIF_SUBTRACT: - *cvalue= *cvalue - amplitude * data->strength; - break; - case FCM_SOUND_MODIF_MULTIPLY: - *cvalue= *cvalue * amplitude * data->strength; - break; - case FCM_SOUND_MODIF_REPLACE: - default: - *cvalue= *cvalue + amplitude * data->strength; - break; - } -} - -static float fcm_sound_time (FCurve *fcu, FModifier *fcm, float cvalue, float evaltime) -{ - FMod_Sound *data= (FMod_Sound *)fcm->data; - - /* check for the time delay */ -// evaltime = FRA2TIME(evaltime); - if(evaltime < data->delay) - return data->delay; - - /* modifier doesn't change time */ - return evaltime; -} - -static FModifierTypeInfo FMI_SOUND = { - FMODIFIER_TYPE_SOUND, /* type */ - sizeof(FMod_Sound), /* size */ - FMI_TYPE_REPLACE_VALUES, /* action type */ - 0, /* requirements */ - "Sound", /* name */ - "FMod_Sound", /* struct name */ - NULL, /* free data */ - NULL, /* copy data */ - fcm_sound_new_data, /* new data */ - NULL, /* verify */ - fcm_sound_time, /* evaluate time */ - fcm_sound_evaluate /* evaluate */ -}; - /* F-Curve Modifier API --------------------------- */ /* All of the F-Curve Modifier api functions use FModifierTypeInfo structs to carry out * and operations that involve F-Curve modifier specific code. @@ -984,7 +892,6 @@ static void fmods_init_typeinfo () fmodifiersTypeInfo[6]= NULL/*&FMI_FILTER*/; /* Filter F-Curve Modifier */ // XXX unimplemented fmodifiersTypeInfo[7]= &FMI_PYTHON; /* Custom Python F-Curve Modifier */ fmodifiersTypeInfo[8]= &FMI_LIMITS; /* Limits F-Curve Modifier */ - fmodifiersTypeInfo[9]= &FMI_SOUND; /* Sound F-Curve Modifier */ } /* This function should be used for getting the appropriate type-info when only diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 7512a7ebb02..d6858f664a3 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1695,12 +1695,6 @@ static void lib_link_fmodifiers(FileData *fd, ID *id, ListBase *list) data->script = newlibadr(fd, id->lib, data->script); } break; - case FMODIFIER_TYPE_SOUND: - { - FMod_Sound *data= (FMod_Sound *)fcm->data; - data->sound = newlibadr(fd, id->lib, data->sound); - } - break; } } } @@ -10663,13 +10657,6 @@ static void expand_fmodifiers(FileData *fd, Main *mainvar, ListBase *list) expand_doit(fd, mainvar, data->script); } break; - case FMODIFIER_TYPE_SOUND: - { - FMod_Sound *data= (FMod_Sound *)fcm->data; - - expand_doit(fd, mainvar, data->sound); - } - break; } } } diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index ebddcd45a8b..3ba20ca3e88 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -321,45 +321,6 @@ static void draw_modifier__noise(uiLayout *layout, ID *id, FModifier *fcm, short /* --------------- */ -/* draw settings for sound modifier */ -static void draw_modifier__sound(const bContext *C, uiLayout *layout, ID *id, FModifier *fcm, short width) -{ - FMod_Sound *data= (FMod_Sound *)fcm->data; - PointerRNA ptr; - - /* init the RNA-pointer */ - RNA_pointer_create(id, &RNA_FModifierSound, fcm, &ptr); - - /* sound */ - uiTemplateID(layout, (bContext*)C, &ptr, "sound", NULL, "sound.open", NULL); - - if (data->sound) - { - /* only sounds that are cached can be used, so display error if not cached */ - if (data->sound->cache) - { - /* blending mode */ - uiItemR(layout, NULL, 0, &ptr, "modification", 0); - - /* settings */ - uiItemR(layout, NULL, 0, &ptr, "strength", 0); - uiItemR(layout, NULL, 0, &ptr, "delay", 0); - } - else - { - PointerRNA id_ptr; - - RNA_id_pointer_create((ID *)data->sound, &id_ptr); - - /* error message with a button underneath allowing users to rectify the issue */ - uiItemL(layout, "Sound must be cached.", ICON_ERROR); - uiItemR(layout, NULL, 0, &id_ptr, "caching", UI_ITEM_R_TOGGLE); - } - } -} - -/* --------------- */ - #define BINARYSEARCH_FRAMEEQ_THRESH 0.0001 /* Binary search algorithm for finding where to insert Envelope Data Point. @@ -623,7 +584,7 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor /* --------------- */ -void ANIM_uiTemplate_fmodifier_draw (const bContext *C, uiLayout *layout, ID *id, ListBase *modifiers, FModifier *fcm) +void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifiers, FModifier *fcm) { FModifierTypeInfo *fmi= fmodifier_get_typeinfo(fcm); uiLayout *box, *row, *subrow; @@ -704,15 +665,11 @@ void ANIM_uiTemplate_fmodifier_draw (const bContext *C, uiLayout *layout, ID *id case FMODIFIER_TYPE_LIMITS: /* Limits */ draw_modifier__limits(box, id, fcm, width); break; - + case FMODIFIER_TYPE_NOISE: /* Noise */ draw_modifier__noise(box, id, fcm, width); break; - - case FMODIFIER_TYPE_SOUND: /* Sound */ - draw_modifier__sound(C, box, id, fcm, width); - break; - + default: /* unknown type */ break; } diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index 48e2eff0d31..b971abac995 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -428,7 +428,7 @@ void ANIM_draw_previewrange(const struct bContext *C, struct View2D *v2d); /* F-MODIFIER TOOLS */ /* draw a given F-Modifier for some layout/UI-Block */ -void ANIM_uiTemplate_fmodifier_draw(const struct bContext *C, struct uiLayout *layout, struct ID *id, ListBase *modifiers, struct FModifier *fcm); +void ANIM_uiTemplate_fmodifier_draw(struct uiLayout *layout, struct ID *id, ListBase *modifiers, struct FModifier *fcm); /* ************************************************* */ /* ASSORTED TOOLS */ diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 1eaac8ffd20..3faba9bbba7 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -452,7 +452,7 @@ static void graph_panel_modifiers(const bContext *C, Panel *pa) for (fcm= fcu->modifiers.first; fcm; fcm= fcm->next) { col= uiLayoutColumn(pa->layout, 1); - ANIM_uiTemplate_fmodifier_draw(C, col, ale->id, &fcu->modifiers, fcm); + ANIM_uiTemplate_fmodifier_draw(col, ale->id, &fcu->modifiers, fcm); } MEM_freeN(ale); diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c index e8eca9de281..df791297967 100644 --- a/source/blender/editors/space_nla/nla_buttons.c +++ b/source/blender/editors/space_nla/nla_buttons.c @@ -434,7 +434,7 @@ static void nla_panel_modifiers(const bContext *C, Panel *pa) for (fcm= strip->modifiers.first; fcm; fcm= fcm->next) { col= uiLayoutColumn(pa->layout, 1); - ANIM_uiTemplate_fmodifier_draw(C, col, strip_ptr.id.data, &strip->modifiers, fcm); + ANIM_uiTemplate_fmodifier_draw(col, strip_ptr.id.data, &strip->modifiers, fcm); } } diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 31d50e03cce..dcb10d0f2cf 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -36,7 +36,6 @@ extern "C" { #include "DNA_listBase.h" #include "DNA_action_types.h" #include "DNA_curve_types.h" -#include "DNA_sound_types.h" /* ************************************************ */ /* F-Curve DataTypes */ @@ -74,7 +73,6 @@ typedef enum eFModifier_Types { FMODIFIER_TYPE_FILTER, /* unimplemented - for applying: fft, high/low pass filters, etc. */ FMODIFIER_TYPE_PYTHON, FMODIFIER_TYPE_LIMITS, - FMODIFIER_TYPE_SOUND, /* NOTE: all new modifiers must be added above this line */ FMODIFIER_NUM_TYPES @@ -232,25 +230,6 @@ typedef enum eFMod_Noise_Modifications { FCM_NOISE_MODIF_MULTIPLY, /* Multiply the curve by noise */ } eFMod_Noise_Modifications; -/* sound modifier data */ -typedef struct FMod_Sound { - float strength; - float delay; - - short modification; - short pad[3]; - - bSound *sound; -} FMod_Sound; - -/* modification modes */ -typedef enum eFMod_Sound_Modifications { - FCM_SOUND_MODIF_REPLACE = 0, /* Modify existing curve, matching it's shape */ - FCM_SOUND_MODIF_ADD, /* Add amplitude to the curve */ - FCM_SOUND_MODIF_SUBTRACT, /* Subtract amplitude from the curve */ - FCM_SOUND_MODIF_MULTIPLY, /* Multiply the curve by amplitude */ -} eFMod_Sound_Modifications; - /* Drivers -------------------------------------- */ /* Driver Target diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index a5978937ed5..fc374ff093a 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -211,7 +211,6 @@ extern StructRNA RNA_FModifierGenerator; extern StructRNA RNA_FModifierLimits; extern StructRNA RNA_FModifierNoise; extern StructRNA RNA_FModifierPython; -extern StructRNA RNA_FModifierSound; extern StructRNA RNA_FollowPathConstraint; extern StructRNA RNA_Function; extern StructRNA RNA_GameBooleanProperty; diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index f3d36d60c23..62ee19df352 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -34,7 +34,6 @@ #include "DNA_anim_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" -#include "DNA_sound_types.h" #include "MEM_guardedalloc.h" @@ -50,7 +49,6 @@ EnumPropertyItem fmodifier_type_items[] = { {FMODIFIER_TYPE_FILTER, "FILTER", 0, "Filter", ""}, {FMODIFIER_TYPE_PYTHON, "PYTHON", 0, "Python", ""}, {FMODIFIER_TYPE_LIMITS, "LIMITS", 0, "Limits", ""}, - {FMODIFIER_TYPE_SOUND, "SOUND", 0, "Sound", ""}, {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -78,8 +76,6 @@ static StructRNA *rna_FModifierType_refine(struct PointerRNA *ptr) return &RNA_FModifierPython; case FMODIFIER_TYPE_LIMITS: return &RNA_FModifierLimits; - case FMODIFIER_TYPE_SOUND: - return &RNA_FModifierSound; default: return &RNA_UnknownType; } @@ -620,46 +616,6 @@ static void rna_def_fmodifier_noise(BlenderRNA *brna) } -/* --------- */ - -static void rna_def_fmodifier_sound(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - static EnumPropertyItem prop_modification_items[] = { - {FCM_SOUND_MODIF_REPLACE, "REPLACE", 0, "Replace", ""}, - {FCM_SOUND_MODIF_ADD, "ADD", 0, "Add", ""}, - {FCM_SOUND_MODIF_SUBTRACT, "SUBTRACT", 0, "Subtract", ""}, - {FCM_SOUND_MODIF_MULTIPLY, "MULTIPLY", 0, "Multiply", ""}, - {0, NULL, 0, NULL, NULL}}; - - srna= RNA_def_struct(brna, "FModifierSound", "FModifier"); - RNA_def_struct_ui_text(srna, "Sound F-Modifier", "Modifies an F-Curve based on the amplitudes in a sound."); - RNA_def_struct_sdna_from(srna, "FMod_Sound", "data"); - - prop= RNA_def_property(srna, "modification", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, prop_modification_items); - RNA_def_property_ui_text(prop, "Modification", "Method of modifying the existing F-Curve."); - RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL); - - prop= RNA_def_property(srna, "strength", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "strength"); - RNA_def_property_ui_text(prop, "Strength", "Amplitude of the sound - the amount that it modifies the underlying curve"); - RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL); - - prop= RNA_def_property(srna, "delay", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "delay"); - RNA_def_property_ui_text(prop, "delay", "The delay before the sound curve modification should start"); - RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL); - - prop= RNA_def_property(srna, "sound", PROP_POINTER, PROP_NONE); - RNA_def_property_struct_type(prop, "Sound"); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Sound", "Sound datablock used by this modifier."); - -} - /* --------- */ static void rna_def_fmodifier(BlenderRNA *brna) @@ -989,7 +945,6 @@ void RNA_def_fcurve(BlenderRNA *brna) rna_def_fmodifier_python(brna); rna_def_fmodifier_limits(brna); rna_def_fmodifier_noise(brna); - rna_def_fmodifier_sound(brna); } -- cgit v1.2.3 From 4dd3e6c36070e64d8b1d784a34d9881ae2c3eed8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 24 Dec 2009 16:10:26 +0000 Subject: support for registering operators using the same internal rna api as panels, menus, headers & render engines since there was a fair bit of duplicate functionality. will remove the old system and update scripts next. --- source/blender/blenkernel/BKE_sequencer.h | 2 +- source/blender/blenkernel/intern/brush.c | 4 + source/blender/editors/mesh/mesh_intern.h | 4 +- .../blender/editors/space_console/console_intern.h | 32 ++-- source/blender/editors/uvedit/uvedit_ops.c | 2 +- source/blender/makesdna/DNA_windowmanager_types.h | 63 +----- source/blender/makesrna/intern/rna_wm.c | 212 ++++++++++++++++++++- source/blender/makesrna/intern/rna_wm_api.c | 32 ++++ source/blender/python/intern/bpy_operator.c | 2 +- source/blender/python/intern/bpy_rna.c | 16 +- source/blender/windowmanager/WM_api.h | 22 ++- source/blender/windowmanager/WM_types.h | 54 +++++- source/blender/windowmanager/wm_window.h | 5 +- 13 files changed, 352 insertions(+), 98 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 070d98ce25f..dc7b6d3ad9b 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -195,7 +195,7 @@ void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_m void seq_update_sound(struct Sequence *seq); void seq_update_muting(struct Editing *ed); - +void seqbase_sound_reload(Scene *scene, ListBase *seqbase); void clear_scene_in_allseqs(struct Scene *sce); struct Sequence *get_seq_by_name(struct ListBase *seqbase, const char *name, int recursive); diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index 09d73f20b9a..667b0d50ee9 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -40,6 +40,8 @@ #include "DNA_scene_types.h" #include "DNA_windowmanager_types.h" +#include "WM_types.h" + #include "RNA_access.h" #include "BLI_math.h" @@ -56,6 +58,8 @@ #include "BKE_texture.h" #include "BKE_utildefines.h" + + #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h index e8ec85d8bd0..31e8cb16abc 100644 --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@ -34,6 +34,8 @@ struct bContext; struct wmOperatorType; +struct wmOperator; + #define UVCOPY(t, s) memcpy(t, s, 2 * sizeof(float)); @@ -197,7 +199,7 @@ extern EditVert *findnearestvert(ViewContext *vc, int *dist, short sel, short st void join_triangles(EditMesh *em); int removedoublesflag(EditMesh *em, short flag, short automerge, float limit); /* return amount */ void esubdivideflag(Object *obedit, EditMesh *em, int flag, float smooth, float fractal, int beauty, int numcuts, int seltype); -int EdgeSlide(EditMesh *em, wmOperator *op, short immediate, float imperc); +int EdgeSlide(EditMesh *em, struct wmOperator *op, short immediate, float imperc); void MESH_OT_merge(struct wmOperatorType *ot); void MESH_OT_subdivide(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_console/console_intern.h b/source/blender/editors/space_console/console_intern.h index 6d002efcc8e..889ed2dae81 100644 --- a/source/blender/editors/space_console/console_intern.h +++ b/source/blender/editors/space_console/console_intern.h @@ -51,28 +51,28 @@ ConsoleLine *console_history_verify(const struct bContext *C); int console_report_mask(SpaceConsole *sc); -void CONSOLE_OT_move(wmOperatorType *ot); -void CONSOLE_OT_delete(wmOperatorType *ot); -void CONSOLE_OT_insert(wmOperatorType *ot); +void CONSOLE_OT_move(struct wmOperatorType *ot); +void CONSOLE_OT_delete(struct wmOperatorType *ot); +void CONSOLE_OT_insert(struct wmOperatorType *ot); -void CONSOLE_OT_history_append(wmOperatorType *ot); -void CONSOLE_OT_scrollback_append(wmOperatorType *ot); +void CONSOLE_OT_history_append(struct wmOperatorType *ot); +void CONSOLE_OT_scrollback_append(struct wmOperatorType *ot); -void CONSOLE_OT_clear(wmOperatorType *ot); -void CONSOLE_OT_history_cycle(wmOperatorType *ot); -void CONSOLE_OT_copy(wmOperatorType *ot); -void CONSOLE_OT_paste(wmOperatorType *ot); -void CONSOLE_OT_zoom(wmOperatorType *ot); +void CONSOLE_OT_clear(struct wmOperatorType *ot); +void CONSOLE_OT_history_cycle(struct wmOperatorType *ot); +void CONSOLE_OT_copy(struct wmOperatorType *ot); +void CONSOLE_OT_paste(struct wmOperatorType *ot); +void CONSOLE_OT_zoom(struct wmOperatorType *ot); /* console_report.c */ -void CONSOLE_OT_select_pick(wmOperatorType *ot); /* report selection */ -void CONSOLE_OT_select_all_toggle(wmOperatorType *ot); -void CONSOLE_OT_select_border(wmOperatorType *ot); +void CONSOLE_OT_select_pick(struct wmOperatorType *ot); /* report selection */ +void CONSOLE_OT_select_all_toggle(struct wmOperatorType *ot); +void CONSOLE_OT_select_border(struct wmOperatorType *ot); -void CONSOLE_OT_report_replay(wmOperatorType *ot); -void CONSOLE_OT_report_delete(wmOperatorType *ot); -void CONSOLE_OT_report_copy(wmOperatorType *ot); +void CONSOLE_OT_report_replay(struct wmOperatorType *ot); +void CONSOLE_OT_report_delete(struct wmOperatorType *ot); +void CONSOLE_OT_report_copy(struct wmOperatorType *ot); diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index 0ee6115bbfe..a0e0ec30912 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -1814,7 +1814,7 @@ void UV_OT_select_loop(wmOperatorType *ot) /* ******************** linked select operator **************** */ -static select_linked_internal(bContext *C, wmOperator *op, wmEvent *event, int pick) +static int select_linked_internal(bContext *C, wmOperator *op, wmEvent *event, int pick) { SpaceImage *sima= CTX_wm_space_image(C); Scene *scene= CTX_data_scene(C); diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 2f640d3dfd4..66b50fbad04 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -180,64 +180,15 @@ typedef struct wmWindow { # typedef struct wmOperatorTypeMacro { struct wmOperatorTypeMacro *next, *prev; - + /* operator id */ char idname[MAX_ID_NAME]; /* rna pointer to access properties, like keymap */ struct IDProperty *properties; /* operator properties, assigned to ptr->data and can be written to a file */ - struct PointerRNA *ptr; + struct PointerRNA *ptr; } wmOperatorTypeMacro; -# -# -typedef struct wmOperatorType { - struct wmOperatorType *next, *prev; - - char *name; /* text for ui, undo */ - char *idname; /* unique identifier */ - char *description; /* tooltips and python docs */ - - /* this callback executes the operator without any interactive input, - * parameters may be provided through operator properties. cannot use - * any interface code or input device state. - * - see defines below for return values */ - int (*exec)(struct bContext *, struct wmOperator *); - - /* for modal temporary operators, initially invoke is called. then - * any further events are handled in modal. if the operation is - * cancelled due to some external reason, cancel is called - * - see defines below for return values */ - int (*invoke)(struct bContext *, struct wmOperator *, struct wmEvent *); - int (*cancel)(struct bContext *, struct wmOperator *); - int (*modal)(struct bContext *, struct wmOperator *, struct wmEvent *); - - /* verify if the operator can be executed in the current context, note - * that the operator might still fail to execute even if this return true */ - int (*poll)(struct bContext *); - - /* optional panel for redo and repeat, autogenerated if not set */ - void (*ui)(struct bContext *, struct wmOperator *, struct uiLayout *); - - /* rna for properties */ - struct StructRNA *srna; - - /* struct wmOperatorTypeMacro */ - ListBase macro; - - short flag; - - /* pointer to modal keymap, do not free! */ - struct wmKeyMap *modalkeymap; - - /* only used for operators defined with python - * use to store pointers to python functions */ - void *pyop_data; - int (*pyop_poll)(struct bContext *, struct wmOperatorType *ot); - -} wmOperatorType; - - /* partial copy of the event, for matching by eventhandler */ typedef struct wmKeyMapItem { struct wmKeyMapItem *next, *prev; @@ -318,18 +269,18 @@ typedef struct wmOperator { /* saved */ char idname[64]; /* used to retrieve type pointer */ IDProperty *properties; /* saved, user-settable properties */ - + /* runtime */ - wmOperatorType *type; /* operator type definition from idname */ + struct wmOperatorType *type; /* operator type definition from idname */ void *customdata; /* custom storage, only while operator runs */ - + struct PointerRNA *ptr; /* rna pointer to access properties */ struct ReportList *reports; /* errors and warnings storage */ - + ListBase macro; /* list of operators, can be a tree */ struct wmOperator *opm; /* current running macro, not saved */ short flag, pad[3]; - + } wmOperator; /* operator type exec(), invoke() modal(), return values */ diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 3a708cc8563..fdad021291a 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -584,6 +584,196 @@ static int rna_wmKeyMapItem_name_length(PointerRNA *ptr) return 0; } +static void rna_Operator_unregister(const bContext *C, StructRNA *type) +{ + char *idname; + wmOperatorType *ot= RNA_struct_blender_type_get(type); + + if(!ot) + return; + + RNA_struct_free_extension(type, &ot->ext); + + idname= ot->idname; + WM_operatortype_remove(ot->idname); + MEM_freeN(idname); + + // RNA_struct_free(&BLENDER_RNA, type); // WM_operatortype_remove calls this + + /* update while blender is running */ + if(C) + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); +} + +void operator_wrapper(wmOperatorType *ot, void *userdata) +{ + /* take care not to overwrite anything set in + * WM_operatortype_append_ptr before opfunc() is called */ + StructRNA *srna = ot->srna; + *ot= *((wmOperatorType *)userdata); + ot->srna= srna; /* restore */ + + RNA_struct_blender_type_set(ot->ext.srna, ot); +} + +#if 0 +static int PYTHON_OT_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + return PYTHON_OT_generic(PYOP_INVOKE, C, op->type, op, event, NULL); +} + +static int PYTHON_OT_execute(bContext *C, wmOperator *op) +{ + return PYTHON_OT_generic(PYOP_EXEC, C, op->type, op, NULL, NULL); +} + +static int PYTHON_OT_poll(bContext *C, wmOperatorType *ot) +{ + return PYTHON_OT_generic(PYOP_POLL, C, ot, NULL, NULL, NULL); +} + +static void PYTHON_OT_draw(bContext *C, wmOperator *op, uiLayout *layout) +{ + PYTHON_OT_generic(PYOP_DRAW, C, op->type, op, NULL, layout); +} +#endif + +static int operator_poll(bContext *C, wmOperatorType *ot) +{ + PointerRNA ptr; + ParameterList list; + FunctionRNA *func; + void *ret; + int visible; + + RNA_pointer_create(NULL, ot->ext.srna, NULL, &ptr); /* dummy */ + func= RNA_struct_find_function(&ptr, "poll"); + + RNA_parameter_list_create(&list, &ptr, func); + RNA_parameter_set_lookup(&list, "context", &C); + ot->ext.call(&ptr, func, &list); + + RNA_parameter_get_lookup(&list, "visible", &ret); + visible= *(int*)ret; + + RNA_parameter_list_free(&list); + + return visible; +} + +static int operator_exec(bContext *C, wmOperator *op) +{ + PointerRNA opr; + ParameterList list; + FunctionRNA *func; + void *ret; + int result; + + RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr); + func= RNA_struct_find_function(&opr, "execute"); + + RNA_parameter_list_create(&list, &opr, func); + RNA_parameter_set_lookup(&list, "context", &C); + op->type->ext.call(&opr, func, &list); + + RNA_parameter_get_lookup(&list, "result", &ret); + result= *(int*)ret; + + RNA_parameter_list_free(&list); + + return result; +} + +static int operator_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + PointerRNA opr; + ParameterList list; + FunctionRNA *func; + void *ret; + int result; + + RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr); + func= RNA_struct_find_function(&opr, "invoke"); + + RNA_parameter_list_create(&list, &opr, func); + RNA_parameter_set_lookup(&list, "context", &C); + RNA_parameter_set_lookup(&list, "event", &event); + op->type->ext.call(&opr, func, &list); + + RNA_parameter_get_lookup(&list, "result", &ret); + result= *(int*)ret; + + RNA_parameter_list_free(&list); + + return result; +} + +static char _operator_idname[OP_MAX_TYPENAME]; +static char _operator_descr[1024]; +static StructRNA *rna_Operator_register(const bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) +{ + wmOperatorType dummyot = {0}; + wmOperator dummyop= {0}; + PointerRNA dummyotr; + int have_function[3]; + + /* setup dummy operator & operator type to store static properties in */ + dummyop.type= &dummyot; + dummyot.idname= _operator_idname; /* only assigne the pointer, string is NULL'd */ + dummyot.description= _operator_descr; /* only assigne the pointer, string is NULL'd */ + RNA_pointer_create(NULL, &RNA_Operator, &dummyop, &dummyotr); + + /* validate the python class */ + if(validate(&dummyotr, data, have_function) != 0) + return NULL; + + { /* convert foo.bar to FOO_OT_bar + * allocate the description and the idname in 1 go */ + int idlen = strlen(_operator_idname); + int desclen = strlen(_operator_descr); + dummyot.idname= MEM_callocN(sizeof(char) * (idlen + desclen + 2 + 3), "_operator_idname"); /* 2 terminators and 3 to convert a.b -> A_OT_b */ + WM_operator_bl_idname(dummyot.idname, _operator_idname); /* convert the idname from python */ + dummyot.description = dummyot.idname + (idlen + 4); + strcpy(dummyot.description, _operator_descr); + } + + if(strlen(identifier) >= sizeof(dummyop.idname)) { + BKE_reportf(reports, RPT_ERROR, "registering operator class: '%s' is too long, maximum length is %d.", identifier, sizeof(dummyop.idname)); + return NULL; + } + + /* check if we have registered this operator type before, and remove it */ + { + wmOperatorType *ot= WM_operatortype_exists(dummyot.idname); + if(ot && ot->ext.srna) + rna_Operator_unregister(C, ot->ext.srna); + } + + /* create a new menu type */ + dummyot.ext.srna= RNA_def_struct(&BLENDER_RNA, dummyot.idname, "Operator"); + dummyot.ext.data= data; + dummyot.ext.call= call; + dummyot.ext.free= free; + + dummyot.pyop_poll= (have_function[0])? operator_poll: NULL; + dummyot.exec= (have_function[1])? operator_exec: NULL; + dummyot.invoke= (have_function[2])? operator_invoke: NULL; + + WM_operatortype_append_ptr(operator_wrapper, (void *)&dummyot); + + /* update while blender is running */ + if(C) + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); + + return dummyot.ext.srna; +} + +static StructRNA* rna_Operator_refine(PointerRNA *opr) +{ + wmOperator *op= (wmOperator*)opr->data; + return (op->type && op->type->ext.srna)? op->type->ext.srna: &RNA_Operator; +} + #else static void rna_def_operator(BlenderRNA *brna) @@ -594,6 +784,8 @@ static void rna_def_operator(BlenderRNA *brna) srna= RNA_def_struct(brna, "Operator", NULL); RNA_def_struct_ui_text(srna, "Operator", "Storage of an operator being executed, or registered after execution."); RNA_def_struct_sdna(srna, "wmOperator"); + RNA_def_struct_refine_func(srna, "rna_Operator_refine"); + RNA_def_struct_register_funcs(srna, "rna_Operator_register", "rna_Operator_unregister"); prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); @@ -607,13 +799,31 @@ static void rna_def_operator(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Properties", ""); RNA_def_property_pointer_funcs(prop, "rna_Operator_properties_get", NULL, NULL); + /* Registration */ + prop= RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "type->idname"); + RNA_def_property_string_maxlength(prop, OP_MAX_TYPENAME); /* else it uses the pointer size! */ + RNA_def_property_flag(prop, PROP_REGISTER); + + prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "type->description"); + RNA_def_property_string_maxlength(prop, 1024); /* else it uses the pointer size! */ + RNA_def_property_flag(prop, PROP_REGISTER); + + prop= RNA_def_property(srna, "bl_register", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", OPTYPE_REGISTER); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + + prop= RNA_def_property(srna, "bl_undo", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", OPTYPE_UNDO); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + RNA_api_operator(srna); srna= RNA_def_struct(brna, "OperatorProperties", NULL); RNA_def_struct_ui_text(srna, "Operator Properties", "Input properties of an Operator."); RNA_def_struct_refine_func(srna, "rna_OperatorProperties_refine"); RNA_def_struct_idproperties_func(srna, "rna_OperatorProperties_idproperties"); - } static void rna_def_macro_operator(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index 0cec66fe264..dcaff1a7c07 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -192,11 +192,43 @@ void RNA_api_operator(StructRNA *srna) FunctionRNA *func; PropertyRNA *parm; + /* utility, not for registering */ func= RNA_def_function(srna, "report", "rna_Operator_report"); parm= RNA_def_enum(func, "type", wm_report_items, 0, "Type", ""); RNA_def_property_flag(parm, PROP_REQUIRED|PROP_ENUM_FLAG); parm= RNA_def_string(func, "message", "", 0, "Report Message", ""); RNA_def_property_flag(parm, PROP_REQUIRED); + + + /* Registration */ + + /* poll */ + func= RNA_def_function(srna, "poll", NULL); + RNA_def_function_ui_description(func, "Test if the operator can be called or not."); + RNA_def_function_flag(func, FUNC_REGISTER|FUNC_REGISTER_OPTIONAL); + RNA_def_function_return(func, RNA_def_boolean(func, "visible", 1, "", "")); + RNA_def_pointer(func, "context", "Context", "", ""); + + /* exec */ + func= RNA_def_function(srna, "execute", NULL); + RNA_def_function_ui_description(func, "Execute the operator."); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "context", "Context", "", ""); + + parm= RNA_def_enum(func, "result", operator_return_items, 0, "result", ""); // better name? + RNA_def_property_flag(parm, PROP_ENUM_FLAG); + RNA_def_function_return(func, parm); + + /* invoke */ + func= RNA_def_function(srna, "invoke", NULL); + RNA_def_function_ui_description(func, "Invoke the operator."); + RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_pointer(func, "event", "Event", "", ""); + + parm= RNA_def_enum(func, "result", operator_return_items, 0, "result", ""); // better name? + RNA_def_property_flag(parm, PROP_ENUM_FLAG); + RNA_def_function_return(func, parm); } void RNA_api_keyconfig(StructRNA *srna) diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index b4a2fb36a97..7ccbe1c16a4 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -63,7 +63,7 @@ static PyObject *pyop_call( PyObject * self, PyObject * args) ot= WM_operatortype_exists(opname); if (ot == NULL) { - PyErr_Format( PyExc_SystemError, "_bpy.ops.call: operator \"%s\"could not be found", opname); + PyErr_Format( PyExc_SystemError, "_bpy.ops.call: operator \"%s\" could not be found", opname); return NULL; } diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 65d2b687275..d0cc3e95097 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -3824,13 +3824,12 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun PyObject *item, *fitem; PyObject *py_arg_count; int i, flag, arg_count, func_arg_count; - const char *identifier; + const char *py_class_name = ((PyTypeObject *)py_class)->tp_name; // __name__ + if (base_class) { if (!PyObject_IsSubclass(py_class, base_class)) { - PyObject *name= PyObject_GetAttrString(base_class, "__name__"); - PyErr_Format( PyExc_TypeError, "expected %.200s subclass of class \"%.200s\"", class_type, name ? _PyUnicode_AsString(name):""); - Py_XDECREF(name); + PyErr_Format( PyExc_TypeError, "expected %.200s subclass of class \"%.200s\"", class_type, py_class_name); return -1; } } @@ -3852,7 +3851,7 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun if (item==NULL) { if ((flag & FUNC_REGISTER_OPTIONAL)==0) { - PyErr_Format( PyExc_AttributeError, "expected %.200s class to have an \"%.200s\" attribute", class_type, RNA_function_identifier(func)); + PyErr_Format( PyExc_AttributeError, "expected %.200s, %.200s class to have an \"%.200s\" attribute", class_type, py_class_name, RNA_function_identifier(func)); return -1; } @@ -3867,7 +3866,7 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun fitem= item; /* py 3.x */ if (PyFunction_Check(fitem)==0) { - PyErr_Format( PyExc_TypeError, "expected %.200s class \"%.200s\" attribute to be a function", class_type, RNA_function_identifier(func)); + PyErr_Format( PyExc_TypeError, "expected %.200s, %.200s class \"%.200s\" attribute to be a function", class_type, py_class_name, RNA_function_identifier(func)); return -1; } @@ -3879,7 +3878,7 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun Py_DECREF(py_arg_count); if (arg_count != func_arg_count) { - PyErr_Format( PyExc_AttributeError, "expected %.200s class \"%.200s\" function to have %d args", class_type, RNA_function_identifier(func), func_arg_count); + PyErr_Format( PyExc_AttributeError, "expected %.200s, %.200s class \"%.200s\" function to have %d args", class_type, py_class_name, RNA_function_identifier(func), func_arg_count); return -1; } } @@ -3889,6 +3888,7 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun /* verify properties */ lb= RNA_struct_defined_properties(srna); for(link=lb->first; link; link=link->next) { + const char *identifier; prop= (PropertyRNA*)link; flag= RNA_property_flag(prop); @@ -3914,7 +3914,7 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun if (item == NULL && (((flag & PROP_REGISTER_OPTIONAL) != PROP_REGISTER_OPTIONAL))) { - PyErr_Format( PyExc_AttributeError, "expected %.200s class to have an \"%.200s\" attribute", class_type, identifier); + PyErr_Format( PyExc_AttributeError, "expected %.200s, %.200s class to have an \"%.200s\" attribute", class_type, py_class_name, identifier); return -1; } diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 8fe7ac39b35..d2b67142eb5 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -38,6 +38,8 @@ struct wmEventHandler; struct wmGesture; struct wmJob; struct wmNotifier; +struct wmOperatorType; +struct wmOperator; struct rcti; struct PointerRNA; struct EnumPropertyItem; @@ -185,16 +187,16 @@ int WM_operator_confirm_message(struct bContext *C, struct wmOperator *op, cha void WM_operator_free (struct wmOperator *op); void WM_operator_stack_clear(struct bContext *C); -wmOperatorType *WM_operatortype_find(const char *idnamem, int quiet); -wmOperatorType *WM_operatortype_exists(const char *idname); -wmOperatorType *WM_operatortype_first(void); -void WM_operatortype_append (void (*opfunc)(wmOperatorType*)); -void WM_operatortype_append_ptr (void (*opfunc)(wmOperatorType*, void *), void *userdata); -void WM_operatortype_append_macro_ptr (void (*opfunc)(wmOperatorType*, void *), void *userdata); +struct wmOperatorType *WM_operatortype_find(const char *idnamem, int quiet); +struct wmOperatorType *WM_operatortype_exists(const char *idname); +struct wmOperatorType *WM_operatortype_first(void); +void WM_operatortype_append (void (*opfunc)(struct wmOperatorType*)); +void WM_operatortype_append_ptr (void (*opfunc)(struct wmOperatorType*, void *), void *userdata); +void WM_operatortype_append_macro_ptr (void (*opfunc)(struct wmOperatorType*, void *), void *userdata); int WM_operatortype_remove(const char *idname); -wmOperatorType *WM_operatortype_append_macro(char *idname, char *name, int flag); -wmOperatorTypeMacro *WM_operatortype_macro_define(wmOperatorType *ot, const char *idname); +struct wmOperatorType *WM_operatortype_append_macro(char *idname, char *name, int flag); +struct wmOperatorTypeMacro *WM_operatortype_macro_define(struct wmOperatorType *ot, const char *idname); int WM_operator_poll (struct bContext *C, struct wmOperatorType *ot); @@ -208,8 +210,8 @@ void WM_operator_properties_create(struct PointerRNA *ptr, const char *opstring void WM_operator_properties_create_ptr(struct PointerRNA *ptr, struct wmOperatorType *ot); void WM_operator_properties_free(struct PointerRNA *ptr); void WM_operator_properties_filesel(struct wmOperatorType *ot, int filter, short type); -void WM_operator_properties_gesture_border(wmOperatorType *ot, int extend); -void WM_operator_properties_select_all(wmOperatorType *ot); +void WM_operator_properties_gesture_border(struct wmOperatorType *ot, int extend); +void WM_operator_properties_select_all(struct wmOperatorType *ot); /* MOVE THIS SOMEWHERE ELSE */ #define SEL_TOGGLE 0 diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 318945918e7..f0ccbed06c3 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -31,9 +31,13 @@ struct bContext; struct wmEvent; struct wmWindowManager; +struct uiLayout; +struct wmOperator; -/* exported types for WM */ +#include "RNA_types.h" +#include "DNA_listBase.h" +/* exported types for WM */ #include "wm_cursors.h" #include "wm_event_types.h" @@ -353,6 +357,54 @@ typedef struct wmTimer { } wmTimer; +typedef struct wmOperatorType { + struct wmOperatorType *next, *prev; + + char *name; /* text for ui, undo */ + char *idname; /* unique identifier */ + char *description; /* tooltips and python docs */ + + /* this callback executes the operator without any interactive input, + * parameters may be provided through operator properties. cannot use + * any interface code or input device state. + * - see defines below for return values */ + int (*exec)(struct bContext *, struct wmOperator *); + + /* for modal temporary operators, initially invoke is called. then + * any further events are handled in modal. if the operation is + * cancelled due to some external reason, cancel is called + * - see defines below for return values */ + int (*invoke)(struct bContext *, struct wmOperator *, struct wmEvent *); + int (*cancel)(struct bContext *, struct wmOperator *); + int (*modal)(struct bContext *, struct wmOperator *, struct wmEvent *); + + /* verify if the operator can be executed in the current context, note + * that the operator might still fail to execute even if this return true */ + int (*poll)(struct bContext *); + + /* optional panel for redo and repeat, autogenerated if not set */ + void (*ui)(struct bContext *, struct wmOperator *, struct uiLayout *); + + /* rna for properties */ + struct StructRNA *srna; + + /* struct wmOperatorTypeMacro */ + ListBase macro; + + short flag; + + /* pointer to modal keymap, do not free! */ + struct wmKeyMap *modalkeymap; + + /* only used for operators defined with python + * use to store pointers to python functions */ + void *pyop_data; + int (*pyop_poll)(struct bContext *, struct wmOperatorType *ot); + + /* RNA integration */ + ExtensionRNA ext; +} wmOperatorType; + /* **************** Paint Cursor ******************* */ typedef void (*wmPaintCursorDraw)(struct bContext *C, int, int, void *customdata); diff --git a/source/blender/windowmanager/wm_window.h b/source/blender/windowmanager/wm_window.h index 84e246937e4..28b12a93b18 100644 --- a/source/blender/windowmanager/wm_window.h +++ b/source/blender/windowmanager/wm_window.h @@ -30,6 +30,7 @@ #define WM_WINDOW_H struct bScreen; +struct wmOperator; /* *************** internal api ************** */ void wm_ghost_init (bContext *C); @@ -62,8 +63,8 @@ wmWindow *wm_window_copy (bContext *C, wmWindow *winorig); void wm_window_testbreak (void); /* *************** window operators ************** */ -int wm_window_duplicate_op (bContext *C, wmOperator *op); -int wm_window_fullscreen_toggle_op(bContext *C, wmOperator *op); +int wm_window_duplicate_op (bContext *C, struct wmOperator *op); +int wm_window_fullscreen_toggle_op(bContext *C, struct wmOperator *op); #endif /* WM_WINDOW_H */ -- cgit v1.2.3 From bbe13e7823d916523ed9434023dee34f34d6cb8e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 24 Dec 2009 19:50:43 +0000 Subject: * register operators like other classes * operators now return sets (converted into flags) * can't remove bpy_operator_wrap.c since macro's still use the custom register funcs --- source/blender/editors/animation/keyframes_edit.c | 2 +- source/blender/editors/include/ED_keyframes_edit.h | 2 +- .../editors/space_sequencer/sequencer_edit.c | 12 ++-- source/blender/makesrna/intern/rna_wm.c | 59 ++++++------------ source/blender/python/intern/bpy_operator.c | 4 +- source/blender/python/intern/bpy_operator_wrap.c | 71 +++++++++++++++++----- source/blender/python/intern/bpy_rna.c | 12 ++++ source/blender/windowmanager/intern/wm_operators.c | 6 +- 8 files changed, 103 insertions(+), 65 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index 9476aa479a7..413f01590ed 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -562,7 +562,7 @@ short bezt_to_cfraelem(BeztEditData *bed, BezTriple *bezt) /* used to remap times from one range to another * requires: bed->data = BeztEditCD_Remap */ -short bezt_remap_times(BeztEditData *bed, BezTriple *bezt) +void bezt_remap_times(BeztEditData *bed, BezTriple *bezt) { BeztEditCD_Remap *rmap= (BeztEditCD_Remap*)bed->data; const float scale = (rmap->newMax - rmap->newMin) / (rmap->oldMax - rmap->oldMin); diff --git a/source/blender/editors/include/ED_keyframes_edit.h b/source/blender/editors/include/ED_keyframes_edit.h index 26290d8771c..9e29d747d4a 100644 --- a/source/blender/editors/include/ED_keyframes_edit.h +++ b/source/blender/editors/include/ED_keyframes_edit.h @@ -154,7 +154,7 @@ short bezt_to_cfraelem(BeztEditData *bed, struct BezTriple *bezt); /* used to remap times from one range to another * requires: bed->custom = BeztEditCD_Remap */ -short bezt_remap_times(BeztEditData *bed, struct BezTriple *bezt); +void bezt_remap_times(BeztEditData *bed, struct BezTriple *bezt); /* ************************************************ */ /* Destructive Editing API (keyframes_general.c) */ diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index bfb7d139074..f174e96120c 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2102,7 +2102,7 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) Sequence *seq, *seqm, *next; - int tot, channel_max= 1; + int channel_max= 1; if(ed==NULL) return OPERATOR_CANCELLED; @@ -2241,10 +2241,10 @@ void SEQUENCER_OT_meta_separate(wmOperatorType *ot) /* view_all operator */ static int sequencer_view_all_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + //Scene *scene= CTX_data_scene(C); bScreen *sc= CTX_wm_screen(C); ScrArea *area= CTX_wm_area(C); - ARegion *ar= CTX_wm_region(C); + //ARegion *ar= CTX_wm_region(C); View2D *v2d= UI_view2d_fromcontext(C); v2d->cur= v2d->tot; @@ -2275,11 +2275,11 @@ void SEQUENCER_OT_view_all(wmOperatorType *ot) static int sequencer_view_all_preview_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); - bScreen *sc= CTX_wm_screen(C); + //bScreen *sc= CTX_wm_screen(C); ScrArea *area= CTX_wm_area(C); ARegion *ar= CTX_wm_region(C); SpaceSeq *sseq= area->spacedata.first; - View2D *v2d= UI_view2d_fromcontext(C); + //View2D *v2d= UI_view2d_fromcontext(C); /* Like zooming on an image view */ @@ -2735,7 +2735,7 @@ static int sequencer_copy_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); Editing *ed= seq_give_editing(scene, FALSE); - Sequence *seq, *seq_act; + Sequence *seq; if(ed==NULL) return OPERATOR_CANCELLED; diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index fdad021291a..51cd9d5d3ac 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -605,39 +605,6 @@ static void rna_Operator_unregister(const bContext *C, StructRNA *type) WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); } -void operator_wrapper(wmOperatorType *ot, void *userdata) -{ - /* take care not to overwrite anything set in - * WM_operatortype_append_ptr before opfunc() is called */ - StructRNA *srna = ot->srna; - *ot= *((wmOperatorType *)userdata); - ot->srna= srna; /* restore */ - - RNA_struct_blender_type_set(ot->ext.srna, ot); -} - -#if 0 -static int PYTHON_OT_invoke(bContext *C, wmOperator *op, wmEvent *event) -{ - return PYTHON_OT_generic(PYOP_INVOKE, C, op->type, op, event, NULL); -} - -static int PYTHON_OT_execute(bContext *C, wmOperator *op) -{ - return PYTHON_OT_generic(PYOP_EXEC, C, op->type, op, NULL, NULL); -} - -static int PYTHON_OT_poll(bContext *C, wmOperatorType *ot) -{ - return PYTHON_OT_generic(PYOP_POLL, C, ot, NULL, NULL, NULL); -} - -static void PYTHON_OT_draw(bContext *C, wmOperator *op, uiLayout *layout) -{ - PYTHON_OT_generic(PYOP_DRAW, C, op->type, op, NULL, layout); -} -#endif - static int operator_poll(bContext *C, wmOperatorType *ot) { PointerRNA ptr; @@ -708,7 +675,11 @@ static int operator_invoke(bContext *C, wmOperator *op, wmEvent *event) return result; } + +void operator_wrapper(wmOperatorType *ot, void *userdata); + static char _operator_idname[OP_MAX_TYPENAME]; +static char _operator_name[OP_MAX_TYPENAME]; static char _operator_descr[1024]; static StructRNA *rna_Operator_register(const bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) { @@ -720,6 +691,7 @@ static StructRNA *rna_Operator_register(const bContext *C, ReportList *reports, /* setup dummy operator & operator type to store static properties in */ dummyop.type= &dummyot; dummyot.idname= _operator_idname; /* only assigne the pointer, string is NULL'd */ + dummyot.name= _operator_name; /* only assigne the pointer, string is NULL'd */ dummyot.description= _operator_descr; /* only assigne the pointer, string is NULL'd */ RNA_pointer_create(NULL, &RNA_Operator, &dummyop, &dummyotr); @@ -729,12 +701,19 @@ static StructRNA *rna_Operator_register(const bContext *C, ReportList *reports, { /* convert foo.bar to FOO_OT_bar * allocate the description and the idname in 1 go */ - int idlen = strlen(_operator_idname); - int desclen = strlen(_operator_descr); - dummyot.idname= MEM_callocN(sizeof(char) * (idlen + desclen + 2 + 3), "_operator_idname"); /* 2 terminators and 3 to convert a.b -> A_OT_b */ - WM_operator_bl_idname(dummyot.idname, _operator_idname); /* convert the idname from python */ - dummyot.description = dummyot.idname + (idlen + 4); - strcpy(dummyot.description, _operator_descr); + int idlen = strlen(_operator_idname) + 4; + int namelen = strlen(_operator_name) + 1; + int desclen = strlen(_operator_descr) + 1; + char *ch, *ch_arr; + ch_arr= ch= MEM_callocN(sizeof(char) * (idlen + namelen + desclen), "_operator_idname"); /* 2 terminators and 3 to convert a.b -> A_OT_b */ + WM_operator_bl_idname(ch, _operator_idname); /* convert the idname from python */ + dummyot.idname= ch; + ch += idlen; + strcpy(ch, _operator_name); + dummyot.name = ch; + ch += namelen; + strcpy(ch, _operator_descr); + dummyot.description = ch; } if(strlen(identifier) >= sizeof(dummyop.idname)) { @@ -806,7 +785,7 @@ static void rna_def_operator(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_REGISTER); prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE); - RNA_def_property_string_sdna(prop, NULL, "type->description"); + RNA_def_property_string_sdna(prop, NULL, "type->name"); RNA_def_property_string_maxlength(prop, 1024); /* else it uses the pointer size! */ RNA_def_property_flag(prop, PROP_REGISTER); diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index 7ccbe1c16a4..101f3619da4 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -244,7 +244,7 @@ PyObject *BPY_operator_module( void ) static PyMethodDef pyop_as_string_meth ={"as_string", (PyCFunction) pyop_as_string, METH_VARARGS, NULL}; static PyMethodDef pyop_dir_meth = {"dir", (PyCFunction) pyop_dir, METH_NOARGS, NULL}; static PyMethodDef pyop_getrna_meth = {"get_rna", (PyCFunction) pyop_getrna, METH_O, NULL}; - static PyMethodDef pyop_add_meth = {"add", (PyCFunction) PYOP_wrap_add, METH_O, NULL}; +// static PyMethodDef pyop_add_meth = {"add", (PyCFunction) PYOP_wrap_add, METH_O, NULL}; static PyMethodDef pyop_add_macro_meth ={"add_macro", (PyCFunction) PYOP_wrap_add_macro, METH_O, NULL}; static PyMethodDef pyop_macro_def_meth ={"macro_define", (PyCFunction) PYOP_wrap_macro_define, METH_VARARGS, NULL}; static PyMethodDef pyop_remove_meth = {"remove", (PyCFunction) PYOP_wrap_remove, METH_O, NULL}; @@ -256,7 +256,7 @@ PyObject *BPY_operator_module( void ) PyModule_AddObject( submodule, "as_string",PyCFunction_New(&pyop_as_string_meth,NULL) ); PyModule_AddObject( submodule, "dir", PyCFunction_New(&pyop_dir_meth, NULL) ); PyModule_AddObject( submodule, "get_rna", PyCFunction_New(&pyop_getrna_meth, NULL) ); - PyModule_AddObject( submodule, "add", PyCFunction_New(&pyop_add_meth, NULL) ); +// PyModule_AddObject( submodule, "add", PyCFunction_New(&pyop_add_meth, NULL) ); PyModule_AddObject( submodule, "add_macro", PyCFunction_New(&pyop_add_macro_meth, NULL) ); PyModule_AddObject( submodule, "macro_define",PyCFunction_New(&pyop_macro_def_meth, NULL) ); PyModule_AddObject( submodule, "remove", PyCFunction_New(&pyop_remove_meth, NULL) ); diff --git a/source/blender/python/intern/bpy_operator_wrap.c b/source/blender/python/intern/bpy_operator_wrap.c index cd5b0756531..3bd18d98563 100644 --- a/source/blender/python/intern/bpy_operator_wrap.c +++ b/source/blender/python/intern/bpy_operator_wrap.c @@ -105,7 +105,7 @@ static int PYTHON_OT_generic(int mode, bContext *C, wmOperatorType *ot, wmOperat py_class_instance = PyObject_Call(py_class, args, NULL); Py_DECREF(args); - + if (py_class_instance==NULL) { /* Initializing the class worked, now run its invoke function */ PyErr_Print(); PyErr_Clear(); @@ -128,7 +128,7 @@ static int PYTHON_OT_generic(int mode, bContext *C, wmOperatorType *ot, wmOperat else if (mode==PYOP_EXEC) { item= PyObject_GetAttrString(py_class, "execute"); args = PyTuple_New(2); - + PyTuple_SET_ITEM(args, 1, pyrna_struct_CreatePyObject(&ptr_context)); } else if (mode==PYOP_POLL) { @@ -173,7 +173,7 @@ static int PYTHON_OT_generic(int mode, bContext *C, wmOperatorType *ot, wmOperat Py_DECREF(args); Py_DECREF(item); } - + if (ret == NULL) { /* covers py_class_instance failing too */ if(op) BPy_errors_to_report(op->reports); @@ -202,7 +202,7 @@ static int PYTHON_OT_generic(int mode, bContext *C, wmOperatorType *ot, wmOperat * If we ever want to do this and use the props again, * it can be done with - pyrna_pydict_to_props(op->ptr, kw, "") */ - + Py_DECREF(ret); } @@ -215,7 +215,7 @@ static int PYTHON_OT_generic(int mode, bContext *C, wmOperatorType *ot, wmOperat BPY_flag_def *flag_def = pyop_ret_flags; strcpy(flag_str, ""); - + while(flag_def->name) { if (ret_flag & flag_def->flag) { if(flag_str[1]) @@ -260,6 +260,49 @@ static void PYTHON_OT_draw(bContext *C, wmOperator *op, uiLayout *layout) PYTHON_OT_generic(PYOP_DRAW, C, op->type, op, NULL, layout); } + + +void operator_wrapper(wmOperatorType *ot, void *userdata) +{ + /* take care not to overwrite anything set in + * WM_operatortype_append_ptr before opfunc() is called */ + StructRNA *srna = ot->srna; + *ot= *((wmOperatorType *)userdata); + ot->srna= srna; /* restore */ + + RNA_struct_blender_type_set(ot->ext.srna, ot); + + + /* Can't use this because it returns a dict proxy + * + * item= PyObject_GetAttrString(py_class, "__dict__"); + */ + { + PyObject *py_class = ot->ext.data; + PyObject *item= ((PyTypeObject*)py_class)->tp_dict; + if(item) { + /* only call this so pyrna_deferred_register_props gives a useful error + * WM_operatortype_append_ptr will call RNA_def_struct_identifier + * later */ + RNA_def_struct_identifier(ot->srna, ot->idname); + + if(pyrna_deferred_register_props(ot->srna, item)!=0) { + /* failed to register operator props */ + PyErr_Print(); + PyErr_Clear(); + + } + } + else { + PyErr_Clear(); + } + } +} + + + + + void PYTHON_OT_wrapper(wmOperatorType *ot, void *userdata) { PyObject *py_class = (PyObject *)userdata; @@ -283,8 +326,8 @@ void PYTHON_OT_wrapper(wmOperatorType *ot, void *userdata) item= PyObject_GetAttrString(py_class, PYOP_ATTR_DESCRIPTION); ot->description= (item && PyUnicode_Check(item)) ? _PyUnicode_AsString(item):"undocumented python operator"; Py_XDECREF(item); - - /* api callbacks, detailed checks dont on adding */ + + /* api callbacks, detailed checks dont on adding */ if (PyObject_HasAttrString(py_class, "invoke")) ot->invoke= PYTHON_OT_invoke; //else @@ -296,9 +339,9 @@ void PYTHON_OT_wrapper(wmOperatorType *ot, void *userdata) ot->pyop_poll= PYTHON_OT_poll; if (PyObject_HasAttrString(py_class, "draw")) ot->ui= PYTHON_OT_draw; - + ot->pyop_data= userdata; - + /* flags */ ot->flag= 0; @@ -419,11 +462,11 @@ void PYTHON_OT_MACRO_wrapper(wmOperatorType *ot, void *userdata) /* pyOperators - Operators defined IN Python */ PyObject *PYOP_wrap_add(PyObject *self, PyObject *py_class) -{ +{ PyObject *base_class, *item; wmOperatorType *ot; - - + + char *idname= NULL; char idname_bl[OP_MAX_TYPENAME]; /* converted to blender syntax */ @@ -466,7 +509,7 @@ PyObject *PYOP_wrap_add(PyObject *self, PyObject *py_class) Py_DECREF(item); /* end annoying conversion! */ - + /* remove if it already exists */ if ((ot=WM_operatortype_exists(idname))) { if(ot->pyop_data) { @@ -474,7 +517,7 @@ PyObject *PYOP_wrap_add(PyObject *self, PyObject *py_class) } WM_operatortype_remove(idname); } - + Py_INCREF(py_class); WM_operatortype_append_ptr(PYTHON_OT_wrapper, py_class); diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index d0cc3e95097..8eda19d8198 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -3912,7 +3912,18 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun } } +#if 0 + if(strcmp(identifier, "bl_label") == 0) { + item= PyObject_GetAttrString(py_class, "__doc__"); + if(item) { + Py_DECREF(item); /* no need to keep a ref, the class owns it */ + + if(pyrna_py_to_prop(dummyptr, prop, NULL, item, "validating class error:") != 0) + return -1; + } + } +#endif if (item == NULL && (((flag & PROP_REGISTER_OPTIONAL) != PROP_REGISTER_OPTIONAL))) { PyErr_Format( PyExc_AttributeError, "expected %.200s, %.200s class to have an \"%.200s\" attribute", class_type, py_class_name, identifier); return -1; @@ -4092,6 +4103,7 @@ void pyrna_free_types(void) } } RNA_PROP_END; + } /* Note! MemLeak XXX diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 4ad067e8743..6d008d5cbb3 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2655,9 +2655,13 @@ void wm_operatortype_free(void) { wmOperatorType *ot; - for(ot= global_ops.first; ot; ot= ot->next) + for(ot= global_ops.first; ot; ot= ot->next) { if(ot->macro.first) wm_operatortype_free_macro(ot); + + if(ot->ext.srna) /* python operator, allocs own string */ + MEM_freeN(ot->idname); + } BLI_freelistN(&global_ops); } -- cgit v1.2.3 From 5f4e24d5990a7ecd6198ee394da8b7c07277cd91 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 24 Dec 2009 21:17:14 +0000 Subject: operator draw function working again. needed to add layout to the operator to give access to "self.layout" - like panels, headers and manu's have --- source/blender/editors/space_file/file_panels.c | 4 +++- .../blender/editors/space_view3d/view3d_toolbar.c | 7 +++++-- source/blender/makesdna/DNA_windowmanager_types.h | 1 + source/blender/makesrna/intern/rna_wm.c | 21 ++++++++++++++++++++- source/blender/makesrna/intern/rna_wm_api.c | 12 +++++++++--- source/blender/windowmanager/WM_types.h | 2 +- source/blender/windowmanager/intern/wm_operators.c | 21 +++++++++++++++------ 7 files changed, 54 insertions(+), 14 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_file/file_panels.c b/source/blender/editors/space_file/file_panels.c index fb52a36cdcf..4e731cda5f3 100644 --- a/source/blender/editors/space_file/file_panels.c +++ b/source/blender/editors/space_file/file_panels.c @@ -175,7 +175,9 @@ static void file_panel_operator(const bContext *C, Panel *pa) int empty= 1, flag; if(op->type->ui) { - op->type->ui((bContext*)C, op, pa->layout); + op->layout= pa->layout; + op->type->ui((bContext*)C, op); + op->layout= NULL; } else { RNA_STRUCT_BEGIN(op->ptr, prop) { diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c index 5dbc6cc232c..0384a23579e 100644 --- a/source/blender/editors/space_view3d/view3d_toolbar.c +++ b/source/blender/editors/space_view3d/view3d_toolbar.c @@ -142,8 +142,11 @@ static void view3d_panel_operator_redo_buts(const bContext *C, Panel *pa, wmOper } RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); - if(op->type->ui) - op->type->ui((bContext*)C, op, pa->layout); + if(op->type->ui) { + op->layout= pa->layout; + op->type->ui((bContext*)C, op); + op->layout= NULL; + } else uiDefAutoButsRNA(C, pa->layout, &ptr, 1); } diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 66b50fbad04..48d67714f15 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -279,6 +279,7 @@ typedef struct wmOperator { ListBase macro; /* list of operators, can be a tree */ struct wmOperator *opm; /* current running macro, not saved */ + struct uiLayout *layout; /* runtime for drawing */ short flag, pad[3]; } wmOperator; diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 51cd9d5d3ac..7abba3c004a 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -675,6 +675,21 @@ static int operator_invoke(bContext *C, wmOperator *op, wmEvent *event) return result; } +static void operator_draw(bContext *C, wmOperator *op) +{ + PointerRNA opr; + ParameterList list; + FunctionRNA *func; + + RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr); + func= RNA_struct_find_function(&opr, "draw"); + + RNA_parameter_list_create(&list, &opr, func); + RNA_parameter_set_lookup(&list, "context", &C); + op->type->ext.call(&opr, func, &list); + + RNA_parameter_list_free(&list); +} void operator_wrapper(wmOperatorType *ot, void *userdata); @@ -686,7 +701,7 @@ static StructRNA *rna_Operator_register(const bContext *C, ReportList *reports, wmOperatorType dummyot = {0}; wmOperator dummyop= {0}; PointerRNA dummyotr; - int have_function[3]; + int have_function[4]; /* setup dummy operator & operator type to store static properties in */ dummyop.type= &dummyot; @@ -737,6 +752,7 @@ static StructRNA *rna_Operator_register(const bContext *C, ReportList *reports, dummyot.pyop_poll= (have_function[0])? operator_poll: NULL; dummyot.exec= (have_function[1])? operator_exec: NULL; dummyot.invoke= (have_function[2])? operator_invoke: NULL; + dummyot.ui= (have_function[3])? operator_draw: NULL; WM_operatortype_append_ptr(operator_wrapper, (void *)&dummyot); @@ -778,6 +794,9 @@ static void rna_def_operator(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Properties", ""); RNA_def_property_pointer_funcs(prop, "rna_Operator_properties_get", NULL, NULL); + prop= RNA_def_property(srna, "layout", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "UILayout"); + /* Registration */ prop= RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "type->idname"); diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index dcaff1a7c07..1afedf1c6a6 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -205,14 +205,14 @@ void RNA_api_operator(StructRNA *srna) /* poll */ func= RNA_def_function(srna, "poll", NULL); RNA_def_function_ui_description(func, "Test if the operator can be called or not."); - RNA_def_function_flag(func, FUNC_REGISTER|FUNC_REGISTER_OPTIONAL); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_function_return(func, RNA_def_boolean(func, "visible", 1, "", "")); RNA_def_pointer(func, "context", "Context", "", ""); /* exec */ func= RNA_def_function(srna, "execute", NULL); RNA_def_function_ui_description(func, "Execute the operator."); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "context", "Context", "", ""); parm= RNA_def_enum(func, "result", operator_return_items, 0, "result", ""); // better name? @@ -222,13 +222,19 @@ void RNA_api_operator(StructRNA *srna) /* invoke */ func= RNA_def_function(srna, "invoke", NULL); RNA_def_function_ui_description(func, "Invoke the operator."); - RNA_def_function_flag(func, FUNC_REGISTER); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); RNA_def_pointer(func, "context", "Context", "", ""); RNA_def_pointer(func, "event", "Event", "", ""); parm= RNA_def_enum(func, "result", operator_return_items, 0, "result", ""); // better name? RNA_def_property_flag(parm, PROP_ENUM_FLAG); RNA_def_function_return(func, parm); + + /* draw */ + func= RNA_def_function(srna, "draw", NULL); + RNA_def_function_ui_description(func, "Draw function for the operator."); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); + RNA_def_pointer(func, "context", "Context", "", ""); } void RNA_api_keyconfig(StructRNA *srna) diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index f0ccbed06c3..78125954816 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -383,7 +383,7 @@ typedef struct wmOperatorType { int (*poll)(struct bContext *); /* optional panel for redo and repeat, autogenerated if not set */ - void (*ui)(struct bContext *, struct wmOperator *, struct uiLayout *); + void (*ui)(struct bContext *, struct wmOperator *); /* rna for properties */ struct StructRNA *srna; diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 6d008d5cbb3..8a9fb1fa5b5 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -774,8 +774,11 @@ static uiBlock *wm_block_create_redo(bContext *C, ARegion *ar, void *arg_op) layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, width, 20, style); uiItemL(layout, op->type->name, 0); - if(op->type->ui) - op->type->ui((bContext*)C, op, layout); + if(op->type->ui) { + op->layout= layout; + op->type->ui((bContext*)C, op); + op->layout= NULL; + } else uiDefAutoButsRNA(C, layout, &ptr, columns); @@ -808,8 +811,11 @@ static uiBlock *wm_operator_create_ui(bContext *C, ARegion *ar, void *userData) RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr); layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, data->width, data->height, style); - if(op->type->ui) - op->type->ui((bContext*)C, op, layout); + if(op->type->ui) { + op->layout= layout; + op->type->ui((bContext*)C, op); + op->layout= NULL; + } uiPopupBoundsBlock(block, 4.0f, 0, 0); uiEndBlock(C, block); @@ -862,8 +868,11 @@ static uiBlock *wm_block_create_menu(bContext *C, ARegion *ar, void *arg_op) layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, 300, 20, style); uiItemL(layout, op->type->name, 0); - if(op->type->ui) - op->type->ui(C, op, layout); + if(op->type->ui) { + op->layout= layout; + op->type->ui(C, op); + op->layout= NULL; + } else uiDefAutoButsRNA(C, layout, op->ptr, 2); -- cgit v1.2.3 From 4f3c477a85aa9c395f21830ed18e89407e9275db Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Dec 2009 09:01:23 +0000 Subject: fix for segfault getting RNA Enum default values, minor updates to introspection class --- source/blender/makesrna/intern/rna_rna.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c index 5997867030d..5fd87728fb8 100644 --- a/source/blender/makesrna/intern/rna_rna.c +++ b/source/blender/makesrna/intern/rna_rna.c @@ -641,13 +641,18 @@ static EnumPropertyItem *rna_EnumProperty_default_itemf(bContext *C, PointerRNA rna_idproperty_check(&prop, ptr); eprop= (EnumPropertyRNA*)prop; - if(eprop->itemf==NULL || eprop->itemf==rna_EnumProperty_default_itemf || !C) + if( (eprop->itemf == NULL) || + (eprop->itemf == rna_EnumProperty_default_itemf) || + (ptr->type == &RNA_EnumProperty) || + (C == NULL)) + { return eprop->item; + } return eprop->itemf(C, ptr, free); } -/* XXX - not sore this is needed? */ +/* XXX - not sure this is needed? */ static int rna_EnumProperty_default_get(PointerRNA *ptr) { PropertyRNA *prop= (PropertyRNA*)ptr->data; -- cgit v1.2.3 From 4c5a314fef8cb15f1a5990180cf5025597afdd01 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Dec 2009 14:42:00 +0000 Subject: update rna_info and rna_rna for better introspection --- source/blender/makesrna/intern/rna_rna.c | 34 ++++++++++++++++++++++++++------ source/blender/python/epy_doc_gen.py | 4 ++-- 2 files changed, 30 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c index 5fd87728fb8..e6c21d8fede 100644 --- a/source/blender/makesrna/intern/rna_rna.c +++ b/source/blender/makesrna/intern/rna_rna.c @@ -425,7 +425,7 @@ static int rna_Property_unit_get(PointerRNA *ptr) return RNA_SUBTYPE_UNIT(prop->subtype); } -static int rna_Property_editable_get(PointerRNA *ptr) +static int rna_Property_readonly_get(PointerRNA *ptr) { PropertyRNA *prop= (PropertyRNA*)ptr->data; @@ -433,7 +433,7 @@ static int rna_Property_editable_get(PointerRNA *ptr) * data for introspection we only need to know if it can be edited so the * flag is better for this */ // return RNA_property_editable(ptr, prop); - return prop->flag & PROP_EDITABLE ? 1:0; + return prop->flag & PROP_EDITABLE ? 0:1; } static int rna_Property_use_return_get(PointerRNA *ptr) @@ -442,6 +442,18 @@ static int rna_Property_use_return_get(PointerRNA *ptr) return prop->flag & PROP_RETURN ? 1:0; } +static int rna_Property_is_required_get(PointerRNA *ptr) +{ + PropertyRNA *prop= (PropertyRNA*)ptr->data; + return prop->flag & PROP_REQUIRED ? 1:0; +} + +static int rna_Property_is_never_none_get(PointerRNA *ptr) +{ + PropertyRNA *prop= (PropertyRNA*)ptr->data; + return prop->flag & PROP_NEVER_NULL ? 1:0; +} + static int rna_Property_array_length_get(PointerRNA *ptr) { PropertyRNA *prop= (PropertyRNA*)ptr->data; @@ -934,15 +946,25 @@ static void rna_def_property(BlenderRNA *brna) RNA_def_property_enum_funcs(prop, "rna_Property_unit_get", NULL, NULL); RNA_def_property_ui_text(prop, "Unit", "Type of units for this property."); - prop= RNA_def_property(srna, "editable", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "is_readonly", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Property_readonly_get", NULL); + RNA_def_property_ui_text(prop, "Read Only", "Property is editable through RNA."); + + prop= RNA_def_property(srna, "is_required", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_Property_is_required_get", NULL); + RNA_def_property_ui_text(prop, "Required", "False when this property is an optional argument in an rna function."); + + prop= RNA_def_property(srna, "is_never_none", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_boolean_funcs(prop, "rna_Property_editable_get", NULL); - RNA_def_property_ui_text(prop, "Editable", "Property is editable through RNA."); + RNA_def_property_boolean_funcs(prop, "rna_Property_is_never_none_get", NULL); + RNA_def_property_ui_text(prop, "Never None", "True when this value can't be set to None."); prop= RNA_def_property(srna, "use_return", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_boolean_funcs(prop, "rna_Property_use_return_get", NULL); - RNA_def_property_ui_text(prop, "Return", "True when this property is a return value from an rna function.."); + RNA_def_property_ui_text(prop, "Return", "True when this property is a return value from an rna function."); prop= RNA_def_property(srna, "registered", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); diff --git a/source/blender/python/epy_doc_gen.py b/source/blender/python/epy_doc_gen.py index 8783cec93ab..7e32b29aa1f 100644 --- a/source/blender/python/epy_doc_gen.py +++ b/source/blender/python/epy_doc_gen.py @@ -397,8 +397,8 @@ def rna2epy(BASEPATH): array_str = get_array_str(length) - if rna_prop.editable: readonly_str = '' - else: readonly_str = ' (readonly)' + if rna_prop.is_readonly: readonly_str = ' (readonly)' + else: readonly_str = '' if rna_prop_ptr: # Use the pointer type out.write(ident+ '\t@ivar %s: %s\n' % (rna_prop_identifier, rna_desc)) -- cgit v1.2.3 From 693d9fd7714c6f61bbdcc046d5e52eedaca4272a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Dec 2009 15:50:53 +0000 Subject: sphinx rna api documentation generator to replace epydocs - view docs menu item opens sphinx URL - can be searched (even when local) - uses rna_info module for introspection - also documents python defined functions and decorator properties (defined in bpy_types.py) - experemental python file:line references for python operators. --- source/blender/python/epy_doc_gen.py | 760 -------------------------------- source/blender/python/sphinx_doc_gen.py | 324 ++++++++++++++ 2 files changed, 324 insertions(+), 760 deletions(-) delete mode 100644 source/blender/python/epy_doc_gen.py create mode 100644 source/blender/python/sphinx_doc_gen.py (limited to 'source/blender') diff --git a/source/blender/python/epy_doc_gen.py b/source/blender/python/epy_doc_gen.py deleted file mode 100644 index 7e32b29aa1f..00000000000 --- a/source/blender/python/epy_doc_gen.py +++ /dev/null @@ -1,760 +0,0 @@ - # ***** BEGIN GPL LICENSE BLOCK ***** - # - # This program is free software; you can redistribute it and/or - # modify it under the terms of the GNU General Public License - # as published by the Free Software Foundation; either version 2 - # of the License, or (at your option) any later version. - # - # This program 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 General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software Foundation, - # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - # - # Contributor(s): Campbell Barton - # - # #**** END GPL LICENSE BLOCK #**** - -script_help_msg = ''' -Usage, -run this script from blenders root path once you have compiled blender - ./blender.bin -P source/blender/python/epy_doc_gen.py - -This will generate python files in "./source/blender/python/doc/bpy" -Generate html docs by running... - - epydoc source/blender/python/doc/bpy/ -v \\ - -o source/blender/python/doc/html \\ - --inheritance=included \\ - --no-sourcecode \\ - --graph=classtree \\ - --graph-font-size=8 - -''' - -# if you dont have graphvis installed ommit the --graph arg. - -# GLOBALS['BASEDIR'] = './source/blender/python/doc' - -import os - -SUBMODULES = {} -INIT_SUBMODULES = {} # store initialized files - -INIT_SUBMODULES_IMPORTS = {} # dont import the same module twice - -def append_package(package_path, mod_name): - - init_path = os.path.join(os.path.dirname(package_path), "__init__.py") - - # avoid double ups - if mod_name: - imports = INIT_SUBMODULES_IMPORTS.setdefault(init_path, []) - if mod_name in imports: - return - imports.append(mod_name) - - try: - os.makedirs(os.path.dirname(init_path)) # make the dirs if they are not there - except: - pass - - # Open the new file for the first time, otherwise keep it open. - f = INIT_SUBMODULES.get(init_path) - if f == None: - f = INIT_SUBMODULES[init_path] = open(init_path, 'w') - - if mod_name: - f.write("import %s\n" % mod_name) - - return f - -def append_package_recursive(package_path, BASEPATH): - ''' - assume the last item of package_path will be a file (not a dir thats created) - ''' - - package_path = os.path.splitext(package_path)[0] # incase of .py - - try: - os.makedirs(os.path.join(BASEPATH, os.path.dirname(package_path))) # make the dirs if they are not there - except: - pass - - new_path = BASEPATH - - for mod_name in package_path.split(os.sep): - init_path = os.path.join(new_path, "__init__.py") - new_path = os.path.join(new_path, mod_name) - append_package(init_path, mod_name) - - -def open_submodule(subpath, BASEPATH): - ''' - This is a utility function that lets us quickly add submodules - ''' - - # create all the package paths leading up to this module - append_package_recursive(subpath, BASEPATH) - - module_name = os.path.basename( os.path.splitext(subpath)[0] ) - mod_path = os.path.join(BASEPATH, subpath) - - # Open the new file for the first time, otherwise keep it open. - f = SUBMODULES.get(mod_path) - if f == None: - f = SUBMODULES[mod_path] = open(mod_path, 'w') - - f = open(mod_path, 'w') - return f - -def close_all(): - for files in (INIT_SUBMODULES.values(), SUBMODULES.values()): - for f in files: - if f.name.endswith('.py'): - f_name = f.name - f.close() - - f = open(f_name, 'a') - f.write("\ndel __package__\n") # annoying, no need do show this - - - f.close() - - -def range_str(val): - if val < -10000000: return '-inf' - if val > 10000000: return 'inf' - if type(val)==float: - return '%g' % val - else: - return str(val) - -def get_array_str(length): - if length > 0: return ' array of %d items' % length - else: return '' - -def full_rna_struct_path(rna_struct): - ''' - Needed when referencing one struct from another - ''' - nested = rna_struct.nested - if nested: - return "%s.%s" % (full_rna_struct_path(nested), rna_struct.identifier) - else: - return rna_struct.identifier - -def rna_id_ignore(rna_id): - if rna_id == "rna_type": - return True - - if "_OT_" in rna_id: - return True - if "_MT_" in rna_id: - return True - if "_PT_" in rna_id: - return True - - return False - -def write_func(rna, ident, out, func_type): - # Keyword attributes - kw_args = [] # "foo = 1", "bar=0.5", "spam='ENUM'" - kw_arg_attrs = [] # "@type mode: int" - - rna_struct= rna.rna_type - - # Operators and functions work differently - if func_type=='OPERATOR': - rna_func_name = rna_struct.identifier.split("_OT_")[-1] - rna_func_desc = rna_struct.description.strip() - items = rna_struct.properties.items() - else: - rna_func_name = rna.identifier - rna_func_desc = rna.description.strip() - items = rna.parameters.items() - - - for rna_prop_identifier, rna_prop in items: - if rna_id_ignore(rna_prop_identifier): - continue - - # clear vars - val = val_error = val_str = rna_prop_type = None - - # ['rna_type', 'name', 'array_length', 'description', 'hard_max', 'hard_min', 'identifier', 'precision', 'readonly', 'soft_max', 'soft_min', 'step', 'subtype', 'type'] - #rna_prop= op_rna.rna_type.properties[attr] - rna_prop_type = rna_prop.type.lower() # enum, float, int, boolean - - - # only for rna functions, operators should not get pointers as args - if rna_prop_type=='pointer': - rna_prop_type_refine = "L{%s}" % rna_prop.fixed_type.identifier - else: - # Collections/Arrays can have a srna type - rna_prop_srna_type = rna_prop.srna - if rna_prop_srna_type: - print(rna_prop_srna_type.identifier) - rna_prop_type_refine = "L{%s}" % rna_prop_srna_type.identifier - else: - rna_prop_type_refine = rna_prop_type - - del rna_prop_srna_type - - - try: length = rna_prop.array_length - except: length = 0 - - array_str = get_array_str(length) - - if rna_prop.use_return: - kw_type_str= "@rtype: %s%s" % (rna_prop_type_refine, array_str) - kw_param_str= "@return: %s" % (rna_prop.description.strip()) - else: - kw_type_str= "@type %s: %s%s" % (rna_prop_identifier, rna_prop_type_refine, array_str) - kw_param_str= "@param %s: %s" % (rna_prop_identifier, rna_prop.description.strip()) - - kw_param_set = False - - if func_type=='OPERATOR': - try: - val = getattr(rna, rna_prop_identifier) - val_error = False - except: - val = "''" - val_error = True - - - if val_error: - val_str = val - elif rna_prop_type=='float': - if length==0: - val_str= '%g' % val - if '.' not in val_str and '-' not in val_str: # value could be 1e-05 - val_str += '.0' - else: - # array - val_str = str(tuple(val)) - - kw_param_str += (' in (%s, %s)' % (range_str(rna_prop.hard_min), range_str(rna_prop.hard_max))) - kw_param_set= True - - elif rna_prop_type=='int': - if length==0: - val_str='%d' % val - else: - val_str = str(tuple(val)) - - # print(dir(rna_prop)) - kw_param_str += (' in (%s, %s)' % (range_str(rna_prop.hard_min), range_str(rna_prop.hard_max))) - # These strings dont have a max length??? - #kw_param_str += ' (maximum length of %s)' % (rna_prop.max_length) - kw_param_set= True - - elif rna_prop_type=='boolean': - if length==0: - if val: val_str='True' - else: val_str='False' - else: - val_str = str(tuple(val)) - - elif rna_prop_type=='enum': - # no array here? - val_str="'%s'" % val - # Too cramped - kw_param_str += (' in (%s)' % ', '.join(rna_prop.items.keys())) - - kw_param_set= True - - elif rna_prop_type=='string': - # no array here? - val_str='"%s"' % val - - # todo - collection - array - # print (rna_prop.type) - - kw_args.append('%s = %s' % (rna_prop_identifier, val_str)) - - # stora - else: - # currently functions dont have a default value - if not rna_prop.use_return: - kw_args.append('%s' % (rna_prop_identifier)) - else: - kw_param_set = True - - - # Same for operators and functions - kw_arg_attrs.append(kw_type_str) - if kw_param_set: - kw_arg_attrs.append(kw_param_str) - - - - out.write(ident+'def %s(%s):\n' % (rna_func_name, ', '.join(kw_args))) - out.write(ident+'\t"""\n') - - # Descriptions could be multiline - for rna_func_desc_line in rna_func_desc.split('\n'): - out.write(ident+'\t%s\n' % rna_func_desc_line.strip()) - - for desc in kw_arg_attrs: - out.write(ident+'\t%s\n' % desc) - - # out.write(ident+'\t@rtype: None\n') # implicit - out.write(ident+'\t"""\n') - - - -def rna2epy(BASEPATH): - - # Use for faster lookups - # use rna_struct.identifier as the key for each dict - rna_struct_dict = {} # store identifier:rna lookups - rna_full_path_dict = {} # store the result of full_rna_struct_path(rna_struct) - rna_children_dict = {} # store all rna_structs nested from here - rna_references_dict = {} # store a list of rna path strings that reference this type - rna_functions_dict = {} # store all functions directly in this type (not inherited) - rna_words = set() - - # def write_func(rna_func, ident): - - - def write_struct(rna_struct, ident): - identifier = rna_struct.identifier - - rna_base = rna_struct.base - - if rna_base: - out.write(ident+ 'class %s(%s):\n' % (identifier, rna_base.identifier)) - rna_base_prop_keys = rna_base.properties.keys() # could be cached - rna_base_func_keys = [f.identifier for f in rna_base.functions] - else: - out.write(ident+ 'class %s:\n' % identifier) - rna_base_prop_keys = [] - rna_base_func_keys = [] - - out.write(ident+ '\t"""\n') - - title = 'The %s Object' % rna_struct.name - description = rna_struct.description.strip() - out.write(ident+ '\t%s\n' % title) - out.write(ident+ '\t%s\n' % ('=' * len(title))) - out.write(ident+ '\t\t%s\n' % description) - rna_words.update(description.split()) - - - # For convenience, give a list of all places were used. - rna_refs= rna_references_dict[identifier] - - if rna_refs: - out.write(ident+ '\t\t\n') - out.write(ident+ '\t\tReferences\n') - out.write(ident+ '\t\t==========\n') - - for rna_ref_string in rna_refs: - out.write(ident+ '\t\t\t- L{%s}\n' % rna_ref_string) - - out.write(ident+ '\t\t\n') - - else: - out.write(ident+ '\t\t\n') - out.write(ident+ '\t\t(no references to this struct found)\n') - out.write(ident+ '\t\t\n') - - for rna_prop_identifier, rna_prop in rna_struct.properties.items(): - - if rna_prop_identifier=='RNA': continue - if rna_id_ignore(rna_prop_identifier): continue - if rna_prop_identifier in rna_base_prop_keys: continue # does this prop exist in our parent class, if so skip - - rna_desc = rna_prop.description.strip() - - if rna_desc: rna_words.update(rna_desc.split()) - if not rna_desc: rna_desc = rna_prop.name - if not rna_desc: rna_desc = 'Note - No documentation for this property!' - - rna_prop_type = rna_prop.type.lower() - - if rna_prop_type=='collection': collection_str = 'Collection of ' - else: collection_str = '' - - # some collections have a srna for their own properties - # TODO - arrays, however this isnt used yet - rna_prop_srna_type = rna_prop.srna - if rna_prop_srna_type: - collection_str = "L{%s} %s" % (rna_prop_srna_type.identifier, collection_str) - del rna_prop_srna_type - - try: rna_prop_ptr = rna_prop.fixed_type - except: rna_prop_ptr = None - - try: length = rna_prop.array_length - except: length = 0 - - array_str = get_array_str(length) - - if rna_prop.is_readonly: readonly_str = ' (readonly)' - else: readonly_str = '' - - if rna_prop_ptr: # Use the pointer type - out.write(ident+ '\t@ivar %s: %s\n' % (rna_prop_identifier, rna_desc)) - out.write(ident+ '\t@type %s: %sL{%s}%s%s\n' % (rna_prop_identifier, collection_str, rna_prop_ptr.identifier, array_str, readonly_str)) - else: - if rna_prop_type == 'enum': - if 0: - out.write(ident+ '\t@ivar %s: %s in (%s)\n' % (rna_prop_identifier, rna_desc, ', '.join(rna_prop.items.keys()))) - else: - out.write(ident+ '\t@ivar %s: %s in...\n' % (rna_prop_identifier, rna_desc)) - for e, e_rna_prop in rna_prop.items.items(): - #out.write(ident+ '\t\t- %s: %s\n' % (e, e_rna_prop.description)) # XXX - segfaults, FIXME - out.write(ident+ '\t\t- %s\n' % e) - - out.write(ident+ '\t@type %s: %s%s%s\n' % (rna_prop_identifier, rna_prop_type, array_str, readonly_str)) - elif rna_prop_type == 'int' or rna_prop_type == 'float': - out.write(ident+ '\t@ivar %s: %s\n' % (rna_prop_identifier, rna_desc)) - out.write(ident+ '\t@type %s: %s%s%s in [%s, %s]\n' % (rna_prop_identifier, rna_prop_type, array_str, readonly_str, range_str(rna_prop.hard_min), range_str(rna_prop.hard_max) )) - elif rna_prop_type == 'string': - out.write(ident+ '\t@ivar %s: %s (maximum length of %s)\n' % (rna_prop_identifier, rna_desc, rna_prop.max_length)) - out.write(ident+ '\t@type %s: %s%s%s\n' % (rna_prop_identifier, rna_prop_type, array_str, readonly_str)) - else: - out.write(ident+ '\t@ivar %s: %s\n' % (rna_prop_identifier, rna_desc)) - out.write(ident+ '\t@type %s: %s%s%s\n' % (rna_prop_identifier, rna_prop_type, array_str, readonly_str)) - - - out.write(ident+ '\t"""\n\n') - - - # Write functions - # for rna_func in rna_struct.functions: # Better ignore inherited (line below) - for rna_func in rna_functions_dict[identifier]: - if rna_func not in rna_base_func_keys: - write_func(rna_func, ident+'\t', out, 'FUNCTION') - - out.write('\n') - - # Now write children recursively - for child in rna_children_dict[identifier]: - write_struct(child, ident + '\t') - - - - # out = open(target_path, 'w') - out = open_submodule("types.py", BASEPATH) # bpy.types - - def base_id(rna_struct): - try: return rna_struct.base.identifier - except: return '' # invalid id - - #structs = [(base_id(rna_struct), rna_struct.identifier, rna_struct) for rna_struct in bpy.doc.structs.values()] - ''' - structs = [] - for rna_struct in bpy.doc.structs.values(): - structs.append( (base_id(rna_struct), rna_struct.identifier, rna_struct) ) - ''' - structs = [] - for rna_type_name in dir(bpy.types): - rna_type = getattr(bpy.types, rna_type_name) - - try: rna_struct = rna_type.bl_rna - except: rna_struct = None - - if rna_struct: - #if not rna_type_name.startswith('__'): - - identifier = rna_struct.identifier - - if not rna_id_ignore(identifier): - structs.append( (base_id(rna_struct), identifier, rna_struct) ) - - # Simple lookup - rna_struct_dict[identifier] = rna_struct - - # Store full rna path 'GameObjectSettings' -> 'Object.GameObjectSettings' - rna_full_path_dict[identifier] = full_rna_struct_path(rna_struct) - - # Store a list of functions, remove inherited later - rna_functions_dict[identifier]= list(rna_struct.functions) - - - # fill in these later - rna_children_dict[identifier]= [] - rna_references_dict[identifier]= [] - - - else: - print("Ignoring", rna_type_name) - - - # Sucks but we need to copy this so we can check original parent functions - rna_functions_dict__copy = {} - for key, val in rna_functions_dict.items(): - rna_functions_dict__copy[key] = val[:] - - - structs.sort() # not needed but speeds up sort below, setting items without an inheritance first - - # Arrange so classes are always defined in the correct order - deps_ok = False - while deps_ok == False: - deps_ok = True - rna_done = set() - - for i, (rna_base, identifier, rna_struct) in enumerate(structs): - - rna_done.add(identifier) - - if rna_base and rna_base not in rna_done: - deps_ok = False - data = structs.pop(i) - ok = False - while i < len(structs): - if structs[i][1]==rna_base: - structs.insert(i+1, data) # insert after the item we depend on. - ok = True - break - i+=1 - - if not ok: - print('Dependancy "%s" could not be found for "%s"' % (identifier, rna_base)) - - break - - # Done ordering structs - - - # precalc vars to avoid a lot of looping - for (rna_base, identifier, rna_struct) in structs: - - if rna_base: - rna_base_prop_keys = rna_struct_dict[rna_base].properties.keys() # could cache - rna_base_func_keys = [f.identifier for f in rna_struct_dict[rna_base].functions] - else: - rna_base_prop_keys = [] - rna_base_func_keys= [] - - # rna_struct_path = full_rna_struct_path(rna_struct) - rna_struct_path = rna_full_path_dict[identifier] - - for rna_prop_identifier, rna_prop in rna_struct.properties.items(): - - if rna_prop_identifier=='RNA': continue - if rna_id_ignore(rna_prop_identifier): continue - if rna_prop_identifier in rna_base_prop_keys: continue - - - for rna_prop_ptr in (getattr(rna_prop, "fixed_type", None), getattr(rna_prop, "srna", None)): - # Does this property point to me? - if rna_prop_ptr: - rna_references_dict[rna_prop_ptr.identifier].append( "%s.%s" % (rna_struct_path, rna_prop_identifier) ) - - for rna_func in rna_struct.functions: - for rna_prop_identifier, rna_prop in rna_func.parameters.items(): - - if rna_prop_identifier=='RNA': continue - if rna_id_ignore(rna_prop_identifier): continue - if rna_prop_identifier in rna_base_func_keys: continue - - - try: rna_prop_ptr = rna_prop.fixed_type - except: rna_prop_ptr = None - - # Does this property point to me? - if rna_prop_ptr: - rna_references_dict[rna_prop_ptr.identifier].append( "%s.%s" % (rna_struct_path, rna_func.identifier) ) - - - # Store nested children - nested = rna_struct.nested - if nested: - rna_children_dict[nested.identifier].append(rna_struct) - - - if rna_base: - rna_funcs = rna_functions_dict[identifier] - if rna_funcs: - # Remove inherited functions if we have any - rna_base_funcs = rna_functions_dict__copy[rna_base] - rna_funcs[:] = [f for f in rna_funcs if f not in rna_base_funcs] - - rna_functions_dict__copy.clear() - del rna_functions_dict__copy - - # Sort the refs, just reads nicer - for rna_refs in rna_references_dict.values(): - rna_refs.sort() - - for (rna_base, identifier, rna_struct) in structs: - if rna_struct.nested: - continue - - write_struct(rna_struct, '') - - - out.write('\n') - out.close() - - # # We could also just run.... - # os.system('epydoc source/blender/python/doc/rna.py -o ./source/blender/python/doc/html -v') - - target_path = os.path.join(BASEPATH, "dump.py") # XXX - used for other funcs - - # Write graphviz - out= open(target_path.replace('.py', '.dot'), 'w') - out.write('digraph "rna data api" {\n') - out.write('\tnode [style=filled, shape = "box"];\n') - out.write('\toverlap=false;\n') - out.write('\trankdir = LR;\n') - out.write('\tsplines=true;\n') - out.write('\tratio=auto;\n') - - - - out.write('\tsize="10,10"\n') - #out.write('\tpage="8.5,11"\n') - #out.write('\tcenter=""\n') - - def isop(rna_struct): - return '_OT_' in rna_struct.identifier - - - for (rna_base, identifier, rna_struct) in structs: - if isop(rna_struct): - continue - - base = rna_struct.base - - - out.write('\t"%s";\n' % identifier) - - for (rna_base, identifier, rna_struct) in structs: - - if isop(rna_struct): - continue - - base = rna_struct.base - - if base and not isop(base): - out.write('\t"%s" -> "%s" [label="(base)" weight=1.0];\n' % (base.identifier, identifier)) - - nested = rna_struct.nested - if nested and not isop(nested): - out.write('\t"%s" -> "%s" [label="(nested)" weight=1.0];\n' % (nested.identifier, identifier)) - - - - rna_refs= rna_references_dict[identifier] - - for rna_ref_string in rna_refs: - - if '_OT_' in rna_ref_string: - continue - - ref = rna_ref_string.split('.')[-2] - out.write('\t"%s" -> "%s" [label="%s" weight=0.01];\n' % (ref, identifier, rna_ref_string)) - - - out.write('}\n') - out.close() - - # # We could also just run.... - # os.system('dot source/blender/python/doc/rna.dot -Tsvg -o ./source/blender/python/doc/rna.svg') - - - out= open(target_path.replace('.py', '.words'), 'w') - rna_words = list(rna_words) - rna_words.sort() - for w in rna_words: - out.write('%s\n' % w) - - -def op2epy(BASEPATH): - # out = open(target_path, 'w') - - op_mods = dir(bpy.ops) - op_mods.remove('add') - op_mods.remove('remove') - - for op_mod_name in sorted(op_mods): - if op_mod_name.startswith('__'): - continue - - # open the submodule - mod_path = os.path.join("ops", op_mod_name + ".py") - out = open_submodule(mod_path, BASEPATH) - - - op_mod = getattr(bpy.ops, op_mod_name) - operators = dir(op_mod) - for op in sorted(operators): - # rna = getattr(bpy.types, op).bl_rna - try: - rna = getattr(op_mod, op).get_rna() - except AttributeError: - rna = None - except TypeError: - rna = None - - if rna: - write_func(rna, '', out, 'OPERATOR') - - out.write('\n') - out.close() - -def misc2epy(BASEPATH): - ''' - Hard coded modules, try to avoid adding stuff here - ''' - - f = append_package(os.path.join(BASEPATH, ""), ""); # add a slash on the end of the base path - f.write(''' -""" -@type data: L{bpy.types.Main} -@var data: blender data is accessed from here -""" -''') - - f = open_submodule("props.py", BASEPATH) - f.write(''' -MAX_INT= 2**31 -MAX_FLOAT= 1e+37 -def BoolProperty(attr, name="", description="", default=False): - """ - return a new bool property - """ -def IntProperty(attr, name="", description="", min=-MAX_INT, max=MAX_INT, soft_min=-MAX_INT, soft_max=MAX_INT, default=0): - """ - return a new int property - """ -def FloatProperty(attr, name="", description="", min=-MAX_FLOAT, max=MAX_FLOAT, soft_min=-MAX_FLOAT, soft_max=MAX_FLOAT, default=0.0): - """ - return a new float property - """ -def StringProperty(attr, name="", description="", maxlen=0, default=""): - """ - return a new string property - """ -def EnumProperty(attr, items, name="", description="", default=""): - """ - return a new enum property - """ -''') - - -if __name__ == '__main__': - if 'bpy' not in dir(): - print("\nError, this script must run from inside blender2.5") - print(script_help_msg) - else: - misc2epy('source/blender/python/doc/bpy') # first to write in info in some of the modules. - rna2epy('source/blender/python/doc/bpy') - op2epy('source/blender/python/doc/bpy') - - - close_all() - - import sys - sys.exit() diff --git a/source/blender/python/sphinx_doc_gen.py b/source/blender/python/sphinx_doc_gen.py new file mode 100644 index 00000000000..3c15c09403d --- /dev/null +++ b/source/blender/python/sphinx_doc_gen.py @@ -0,0 +1,324 @@ + # ***** BEGIN GPL LICENSE BLOCK ***** + # + # This program is free software; you can redistribute it and/or + # modify it under the terms of the GNU General Public License + # as published by the Free Software Foundation; either version 2 + # of the License, or (at your option) any later version. + # + # This program 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 General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software Foundation, + # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + # + # Contributor(s): Campbell Barton + # + # #**** END GPL LICENSE BLOCK #**** + +script_help_msg = ''' +Usage, +run this script from blenders root path once you have compiled blender + ./blender.bin -b -P /b/source/blender/python/sphinx_doc_gen.py + +This will generate python files in "./source/blender/python/doc/bpy/sphinx-in" +Generate html docs by running... + + sphinx-build source/blender/python/doc/bpy/sphinx-in source/blender/python/doc/bpy/sphinx-out + + +''' + +# if you dont have graphvis installed ommit the --graph arg. + +# GLOBALS['BASEDIR'] = './source/blender/python/doc' + +import os +import bpy +import rna_info +reload(rna_info) + +def range_str(val): + if val < -10000000: return '-inf' + if val > 10000000: return 'inf' + if type(val)==float: + return '%g' % val + else: + return str(val) + +def write_indented_lines(ident, fn, text): + if text is None: + return + for l in text.split("\n"): + fn(ident + l.strip() + "\n") + + +def py_function_args(func): + """Get the python functions args with keyword defaults where possible.""" + text = "" + code = func.__code__ + + defaults = func.__defaults__ + if defaults is None: + defaults = [] + else: + defaults = list(defaults) + + names = code.co_varnames + if names is None: + names = [] + else: + names = list(names) + + INVALID = py_function_args + defaults = ([INVALID] * (len(names) - len(defaults))) + defaults + + if names[0] == "self": + del names[0] + del defaults[0] + + for var, default in zip(names, defaults): + if default is INVALID: + text += var + else: + if type(default) == str: + text += "%s=\"%s\"" % (var, default) + elif type(default) == float: + text += rna_info.float_as_string(default) + else: + text += "%s=%s" % (var, repr(default)) + + if not var == names[-1]: + text += ", " + + return text + + +def rna2sphinx(BASEPATH): + + structs, funcs, ops, props = rna_info.BuildRNAInfo() + + try: + os.mkdir(BASEPATH) + except: + pass + + # conf.py - empty for now + filepath = os.path.join(BASEPATH, "conf.py") + file = open(filepath, "w") + fw = file.write + + fw("project = 'Blender 3D'\n") + # fw("master_doc = 'index'\n") + fw("copyright = u'Blender Foundation'\n") + fw("version = '2.5'\n") + fw("release = '2.5'\n") + file.close() + + + filepath = os.path.join(BASEPATH, "contents.rst") + file = open(filepath, "w") + fw = file.write + + fw("\n") + fw(".. toctree::\n") + fw(" :glob:\n\n") + fw(" bpy.ops.*\n\n") + fw(" bpy.types.*\n\n") + file.close() + + if 0: + filepath = os.path.join(BASEPATH, "bpy.rst") + file = open(filepath, "w") + fw = file.write + + fw("\n") + + title = ":mod:`bpy` --- Blender Python Module" + fw("%s\n%s\n\n" % (title, "=" * len(title))) + fw(".. module:: bpy.types\n\n") + file.close() + + + def write_property(ident, fw, prop, as_arg=False): + + if prop.description: + fw(ident + " %s\n\n" % prop.description) + + if prop.fixed_type is None: + fw(ident + " *type* %s " % prop.type) + if prop.array_length: + fw("array of %d items " % (prop.array_length)) + + if prop.type in ("float", "int"): + fw("in [%s, %s]" % (range_str(prop.min), range_str(prop.max))) + elif prop.type == "enum": + fw("in [%s]" % ', '.join(["`" + s + "`" for s in prop.enum_items])) + else: + if prop.type == "collection": + if prop.collection_type: + collection_str = ":class:`%s` collection of " % prop.collection_type.identifier + else: + collection_str = "Collection of " + else: + collection_str = " " + + fw(ident + " *type* %s:class:`%s`" % (collection_str, prop.fixed_type.identifier)) + + if not as_arg: # readonly is only useful for props, not args + if prop.is_readonly: + fw(", (readonly)") + + if prop.is_never_none: + fw(", (never None)") + + fw("\n\n") + + + def write_struct(struct): + #if not struct.identifier.startswith("Sc") and not struct.identifier.startswith("I"): + # return + + #if not struct.identifier.startswith("Bone"): + # return + + filepath = os.path.join(BASEPATH, "bpy.types.%s.rst" % struct.identifier) + file = open(filepath, "w") + fw = file.write + + if struct.base: + title = "%s(%s)" % (struct.identifier, struct.base.identifier) + else: + title = struct.identifier + + fw("%s\n%s\n\n" % (title, "=" * len(title))) + + fw(".. module:: bpy.types\n\n") + + bases = struct.get_bases() + if bases: + if len(bases) > 1: + fw("base classes --- ") + else: + fw("base class --- ") + + fw(", ".join([(":class:`%s`" % base.identifier) for base in reversed(bases)])) + fw("\n\n") + + subclasses = [s for s in structs.values() if s.base is struct] + + if subclasses: + fw("subclasses --- \n") + fw(", ".join([(":class:`%s`" % s.identifier) for s in subclasses])) + fw("\n\n") + + + if struct.base: + fw(".. class:: %s(%s)\n\n" % (struct.identifier, struct.base.identifier)) + else: + fw(".. class:: %s\n\n" % struct.identifier) + + fw(" %s\n\n" % struct.description) + + for prop in struct.properties: + fw(" .. attribute:: %s\n\n" % prop.identifier) + write_property(" ", fw, prop) + + # python attributes + py_properties = struct.get_py_properties() + py_prop = None + for identifier, py_prop in py_properties: + fw(" .. attribute:: %s\n\n" % identifier) + write_indented_lines(" ", fw, py_prop.__doc__) + if py_prop.fset is None: + fw(" (readonly)\n\n") + del py_properties, py_prop + + for func in struct.functions: + args_str = ", ".join([prop.get_arg_default(force=False) for prop in func.args]) + + fw(" .. method:: %s(%s)\n\n" % (func.identifier, args_str)) + fw(" %s\n\n" % func.description) + + for prop in func.args: + fw(" * %s: %s\n" % (prop.identifier, prop.name)) + write_property(" ", fw, prop, as_arg=True) + + if func.return_value: + prop = func.return_value + fw(" Returns %s: %s\n" % (prop.identifier, prop.name)) + write_property(" ", fw, prop, as_arg=True) + + + # python methods + py_funcs = struct.get_py_functions() + py_func = None + + for identifier, py_func in py_funcs: + fw(" .. method:: %s(%s)\n\n" % (identifier, py_function_args(py_func))) + write_indented_lines(" ", fw, py_func.__doc__) + del py_funcs, py_func + + if struct.references: + # use this otherwise it gets in the index for a normal heading. + fw(".. rubric:: References\n\n") + + for ref in struct.references: + ref_split = ref.split(".") + if len(ref_split) > 2: + ref = ref_split[-2] + "." + ref_split[-1] + fw("* :class:`%s`\n" % ref) + fw("\n") + + + for struct in structs.values(): + write_struct(struct) + + # oeprators + def write_ops(): + fw = None + + last_mod = '' + + for op_key in sorted(ops.keys()): + op = ops[op_key] + + if last_mod != op.module_name: + filepath = os.path.join(BASEPATH, "bpy.ops.%s.rst" % op.module_name) + file = open(filepath, "w") + fw = file.write + + title = "%s Operators" % (op.module_name[0].upper() + op.module_name[1:]) + fw("%s\n%s\n\n" % (title, "=" * len(title))) + + fw(".. module:: bpy.ops.%s\n\n" % op.module_name) + last_mod = op.module_name + + args_str = ", ".join([prop.get_arg_default(force=True) for prop in op.args]) + fw(".. function:: %s(%s)\n\n" % (op.func_name, args_str)) + fw(" %s\n\n" % op.description) + for prop in op.args: + fw(" * %s: %s\n" % (prop.identifier, prop.name)) + write_property(" ", fw, prop, as_arg=True) + + location = op.get_location() + if location != (None, None): + fw(" *python operator source --- `%s:%d`* \n\n" % location) + + write_ops() + + file.close() + +if __name__ == '__main__': + if 'bpy' not in dir(): + print("\nError, this script must run from inside blender2.5") + print(script_help_msg) + else: + # os.system("rm source/blender/python/doc/bpy/sphinx-in/*.rst") + # os.system("rm -rf source/blender/python/doc/bpy/sphinx-out/*") + rna2sphinx('source/blender/python/doc/bpy/sphinx-in') + + import sys + sys.exit() -- cgit v1.2.3 From 6c6786f1f0718a4ec1a3589c8669e8762230110e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Dec 2009 18:06:05 +0000 Subject: bad rna limit referred to in [#20483] Inputs are capped enable distance for some settings --- source/blender/makesrna/intern/rna_modifier.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index fe8d6d6a367..1516ae2536d 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -746,7 +746,7 @@ static void rna_def_modifier_mirror(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Mirror V", "Mirror the V texture coordinate around the 0.5 point."); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "merge_limit", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "merge_limit", PROP_FLOAT, PROP_DISTANCE); RNA_def_property_float_sdna(prop, NULL, "tolerance"); RNA_def_property_range(prop, 0, FLT_MAX); RNA_def_property_ui_range(prop, 0, 1, 0.01, 6); @@ -913,19 +913,19 @@ static void rna_def_modifier_wave(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Speed", ""); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "height", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "height", PROP_FLOAT, PROP_DISTANCE); RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); RNA_def_property_ui_range(prop, -2, 2, 10, 2); RNA_def_property_ui_text(prop, "Height", ""); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "width", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "width", PROP_FLOAT, PROP_DISTANCE); RNA_def_property_range(prop, 0, FLT_MAX); RNA_def_property_ui_range(prop, 0, 5, 10, 2); RNA_def_property_ui_text(prop, "Width", ""); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "narrowness", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "narrowness", PROP_FLOAT, PROP_DISTANCE); RNA_def_property_float_sdna(prop, NULL, "narrow"); RNA_def_property_range(prop, 0, FLT_MAX); RNA_def_property_ui_range(prop, 0, 10, 10, 2); @@ -1244,7 +1244,7 @@ static void rna_def_modifier_displace(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "midlevel", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "midlevel", PROP_FLOAT, PROP_DISTANCE); RNA_def_property_range(prop, 0, 1); RNA_def_property_ui_range(prop, 0, 1, 10, 3); RNA_def_property_ui_text(prop, "Midlevel", "Material value that gives no displacement."); @@ -1755,9 +1755,10 @@ static void rna_def_modifier_bevel(BlenderRNA *brna) RNA_def_struct_sdna(srna, "BevelModifierData"); RNA_def_struct_ui_icon(srna, ICON_MOD_BEVEL); - prop= RNA_def_property(srna, "width", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "width", PROP_FLOAT, PROP_DISTANCE); RNA_def_property_float_sdna(prop, NULL, "value"); - RNA_def_property_range(prop, 0, 0.5); + RNA_def_property_range(prop, 0, FLT_MAX); + RNA_def_property_ui_range(prop, 0, 10, 0.1, 4); RNA_def_property_ui_text(prop, "Width", "Bevel value/amount."); RNA_def_property_update(prop, 0, "rna_Modifier_update"); @@ -2020,28 +2021,28 @@ static void rna_def_modifier_solidify(BlenderRNA *brna) RNA_def_struct_sdna(srna, "SolidifyModifierData"); RNA_def_struct_ui_icon(srna, ICON_MOD_DISPLACE); - prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_DISTANCE); RNA_def_property_float_sdna(prop, NULL, "offset"); RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); RNA_def_property_ui_range(prop, -10, 10, 0.1, 4); RNA_def_property_ui_text(prop, "Thickness", "Thickness of the shell."); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "edge_crease_inner", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "edge_crease_inner", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, NULL, "crease_inner"); RNA_def_property_range(prop, 0, 1); RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); RNA_def_property_ui_text(prop, "Inner Crease", "Assign a crease to inner edges."); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "edge_crease_outer", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "edge_crease_outer", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, NULL, "crease_outer"); RNA_def_property_range(prop, 0, 1); RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); RNA_def_property_ui_text(prop, "Outer Crease", "Assign a crease to outer edges."); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "edge_crease_rim", PROP_FLOAT, PROP_NONE); + prop= RNA_def_property(srna, "edge_crease_rim", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, NULL, "crease_rim"); RNA_def_property_range(prop, 0, 1); RNA_def_property_ui_range(prop, 0, 1, 0.1, 3); -- cgit v1.2.3 From be679703032e28190d0c7357de6b67449b78834f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Dec 2009 20:40:00 +0000 Subject: fix for [#20244] importing .obj without "Object" option checked crashes blender --- source/blender/editors/mesh/mesh_data.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index 1cdc059f57e..050152821f5 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -676,7 +676,8 @@ void ED_mesh_material_add(Mesh *me, Material *ma) me->mat = mat; me->mat[me->totcol++] = ma; - ma->id.us++; + if(ma) + ma->id.us++; test_object_materials((ID*)me); } -- cgit v1.2.3 From 5afd084513f799a8d5e725e12a756a9464e711ba Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Dec 2009 22:16:19 +0000 Subject: replace dynamic_menu.py with Menu classmethods much less complicated. access append/prepend eg. bpy.types.INFO_MT_file_import.append(lambda self, context: self.layout.operator("import_some.format")) --- source/blender/python/sphinx_doc_gen.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/sphinx_doc_gen.py b/source/blender/python/sphinx_doc_gen.py index 3c15c09403d..24910b911e4 100644 --- a/source/blender/python/sphinx_doc_gen.py +++ b/source/blender/python/sphinx_doc_gen.py @@ -27,8 +27,6 @@ This will generate python files in "./source/blender/python/doc/bpy/sphinx-in" Generate html docs by running... sphinx-build source/blender/python/doc/bpy/sphinx-in source/blender/python/doc/bpy/sphinx-out - - ''' # if you dont have graphvis installed ommit the --graph arg. @@ -75,7 +73,7 @@ def py_function_args(func): INVALID = py_function_args defaults = ([INVALID] * (len(names) - len(defaults))) + defaults - if names[0] == "self": + if names[0] in ("self", "cls"): # normal class function or classmethod del names[0] del defaults[0] -- cgit v1.2.3 From b0b3e27471fb84f139d4aa3033aa093ac708f467 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 25 Dec 2009 22:58:11 +0000 Subject: Particles bug fix: using virtual parents for child particles crashed in some cases. --- source/blender/blenkernel/intern/particle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 1968673e568..b19b0f9fa20 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -2444,7 +2444,7 @@ static void psys_thread_create_path(ParticleThread *thread, struct ChildParticle mul_m4_v3(ob->obmat,cpa_1st); } - pa = psys->particles + cpa->parent; + pa = psys->particles + cpa->pa[0]; psys_mat_hair_to_global(ob, ctx->sim.psmd->dm, psys->part->from, pa, hairmat); -- cgit v1.2.3 From 99e3423a500d59e3493c4e8db8665c97aa02e110 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Dec 2009 23:50:35 +0000 Subject: fix for accessing invalid memory when loading a new file. --- source/blender/blenkernel/intern/scene.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 0a2edf82cb0..eadeac585b2 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -249,7 +249,12 @@ void free_scene(Scene *sce) /* do not free objects! */ if(sce->gpd) { +#if 0 // removed since this can be invalid memory when freeing everything + // since the grease pencil data is free'd before the scene. + // since grease pencil data is not (yet?), shared between objects + // its probably safe not to do this, some save and reload will free this. sce->gpd->id.us--; +#endif sce->gpd= NULL; } -- cgit v1.2.3 From fc066a6a5d01718981c9dcae23c5f4f47f3d7b1e Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 25 Dec 2009 23:51:29 +0000 Subject: Fix for [#20458] Segmentation fault when trying to enable Hair dynamics * The hair mesh vertex index was stored as a short, but vertex counts can easily go higher than what fits in a short so changed this to an int. * Also removed particle life looping, which didn't work correctly anyways. Similar functionality will become available when I get to recoding reactor particles into a better system. --- source/blender/blenkernel/intern/particle.c | 2 +- source/blender/blenkernel/intern/particle_system.c | 46 ++++++---------------- source/blender/makesdna/DNA_particle_types.h | 5 +-- source/blender/makesrna/intern/rna_particle.c | 11 ------ 4 files changed, 16 insertions(+), 48 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index b19b0f9fa20..992f63520ab 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -4069,7 +4069,7 @@ int psys_get_particle_state(ParticleSimulationData *sim, int p, ParticleKey *sta else{ if(cpa){ ParticleKey *key1; - float t = (cfra - pa->time + pa->loop * pa->lifetime) / pa->lifetime; + float t = (cfra - pa->time) / pa->lifetime; key1=&pa->state; offset_child(cpa, key1, state, part->childflat, part->childrad); diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index ce595bb280d..9882bfea137 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -389,7 +389,7 @@ static void distribute_particles_in_grid(DerivedMesh *dm, ParticleSystem *psys) pa->fuv[1]=min[1]+(float)j*d; pa->fuv[2]=min[2]+(float)k*d; pa->flag |= PARS_UNEXIST; - pa->loop=0; /* abused in volume calculation */ + pa->hair_index=0; /* abused in volume calculation */ } } } @@ -451,7 +451,7 @@ static void distribute_particles_in_grid(DerivedMesh *dm, ParticleSystem *psys) if(from==PART_FROM_FACE) (pa+(int)(lambda*size[a])*a0mul)->flag &= ~PARS_UNEXIST; else /* store number of intersections */ - (pa+(int)(lambda*size[a])*a0mul)->loop++; + (pa+(int)(lambda*size[a])*a0mul)->hair_index++; } if(mface->v4){ @@ -461,20 +461,20 @@ static void distribute_particles_in_grid(DerivedMesh *dm, ParticleSystem *psys) if(from==PART_FROM_FACE) (pa+(int)(lambda*size[a])*a0mul)->flag &= ~PARS_UNEXIST; else - (pa+(int)(lambda*size[a])*a0mul)->loop++; + (pa+(int)(lambda*size[a])*a0mul)->hair_index++; } } } if(from==PART_FROM_VOLUME){ - int in=pa->loop%2; - if(in) pa->loop++; + int in=pa->hair_index%2; + if(in) pa->hair_index++; for(i=0; iloop%2) + if(in || (pa+i*a0mul)->hair_index%2) (pa+i*a0mul)->flag &= ~PARS_UNEXIST; /* odd intersections == in->out / out->in */ /* even intersections -> in stays same */ - in=(in + (pa+i*a0mul)->loop) % 2; + in=(in + (pa+i*a0mul)->hair_index) % 2; } } } @@ -1584,7 +1584,7 @@ void initialize_particle(ParticleSimulationData *sim, ParticleData *pa, int p) pa->flag &= ~PARS_UNEXIST; } - pa->loop=0; + pa->hair_index=0; /* we can't reset to -1 anymore since we've figured out correct index in distribute_particles */ /* usage other than straight after distribute has to handle this index by itself - jahka*/ //pa->num_dmcache = DMCACHE_NOTFOUND; /* assume we dont have a derived mesh face */ @@ -3215,14 +3215,6 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1); reset_particle(sim, pa, dtime, cfra); - - if(cfra > pa->time && part->flag & PART_LOOP && part->type!=PART_HAIR){ - pa->loop = (short)((cfra-pa->time)/pa->lifetime); - pa->alive = PARS_UNBORN; - } - else{ - pa->loop = 0; - } } if(vg_size) @@ -3276,7 +3268,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) //if(psys->reactevents.first && ELEM(pa->alive,PARS_DEAD,PARS_KILLED)==0) // react_to_events(psys,p); - birthtime = pa->time + pa->loop * pa->lifetime; + birthtime = pa->time; dietime = birthtime + pa->lifetime; pa_dfra = dfra; @@ -3335,15 +3327,8 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) if(pa->alive == PARS_DYING){ //push_reaction(ob,psys,p,PART_EVENT_DEATH,&pa->state); - if(part->flag & PART_LOOP && part->type!=PART_HAIR){ - pa->loop++; - reset_particle(sim, pa, 0.0, cfra); - pa->alive=PARS_ALIVE; - } - else{ - pa->alive=PARS_DEAD; - pa->state.time=pa->dietime; - } + pa->alive=PARS_DEAD; + pa->state.time=pa->dietime; } else pa->state.time=cfra; @@ -3394,13 +3379,8 @@ static void cached_step(ParticleSimulationData *sim, float cfra) psys->lattice= psys_get_lattice(sim); - if(part->flag & PART_LOOP && part->type!=PART_HAIR) - pa->loop = (short)((cfra - pa->time) / pa->lifetime); - else - pa->loop = 0; - - birthtime = pa->time + pa->loop * pa->lifetime; - dietime = birthtime + (1 + pa->loop) * (pa->dietime - pa->time); + birthtime = pa->time; + dietime = pa->dietime; /* update alive status and push events */ if(pa->time > cfra) { diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index 81510ef96a3..abcdbcefc0f 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -109,10 +109,9 @@ typedef struct ParticleData { float size; /* size and multiplier so that we can update size when ever */ + int hair_index; short flag; short alive; /* the life state of a particle */ - short loop; /* how many times particle life has looped */ - short hair_index; } ParticleData; typedef struct ParticleSettings { @@ -261,7 +260,7 @@ typedef struct ParticleSystem{ /* note, make sure all (runtime) are NULL's in #define PART_REACT_STA_END 1 #define PART_REACT_MULTIPLE 2 -#define PART_LOOP 4 +//#define PART_LOOP 4 /* not used anymore */ /* for dopesheet */ #define PART_DS_EXPAND 8 diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index c5b1aafb1a3..543965a337e 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -814,11 +814,6 @@ static void rna_def_particle(BlenderRNA *brna) RNA_def_property_enum_items(prop, alive_items); RNA_def_property_ui_text(prop, "Alive State", ""); - prop= RNA_def_property(srna, "loop", PROP_INT, PROP_NONE); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - //TODO: bounds - RNA_def_property_ui_text(prop, "Loop", "How may times the particle life has looped"); - // short rt2; } @@ -978,12 +973,6 @@ static void rna_def_particle_settings(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Multi React", "React multiple times."); RNA_def_property_update(prop, 0, "rna_Particle_reset"); - prop= RNA_def_property(srna, "loop", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", PART_LOOP); - RNA_def_property_clear_flag(prop, PROP_ANIMATEABLE); - RNA_def_property_ui_text(prop, "Loop", "Loop particle lives."); - RNA_def_property_update(prop, 0, "rna_Particle_reset"); - /* TODO: used somewhere? */ prop= RNA_def_property(srna, "hair_geometry", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", PART_HAIR_GEOMETRY); -- cgit v1.2.3 From fb4f78513e0cba6187646e950806f71cd42b7bae Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Dec 2009 23:59:12 +0000 Subject: invalid memory access fix --- source/blender/makesrna/intern/rna_access.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index e2960d2bf3a..9cc08b297e5 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -946,7 +946,7 @@ void RNA_property_enum_items(bContext *C, PointerRNA *ptr, PropertyRNA *prop, En int RNA_property_enum_value(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value) { EnumPropertyItem *item, *item_array; - int free; + int free, found; RNA_property_enum_items(C, ptr, prop, &item_array, NULL, &free); @@ -956,11 +956,13 @@ int RNA_property_enum_value(bContext *C, PointerRNA *ptr, PropertyRNA *prop, con break; } } + + found= (item->identifier != NULL); /* could be alloc'd, assign before free */ if(free) MEM_freeN(item_array); - return (item->identifier) ? 1:0; + return found; } int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier) -- cgit v1.2.3 From 266271d65a5aaeb0040848a2e288695b3e9ed7c9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 26 Dec 2009 00:17:45 +0000 Subject: - closing the user prefs accessed the temp screen after removing it. - colorband drawing could use un-initialized vars (probably wouldnt crash) --- source/blender/editors/interface/interface_draw.c | 2 +- source/blender/editors/screen/screen_edit.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index e6e5cb198aa..0602ca656b9 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -698,7 +698,7 @@ void ui_draw_but_COLORBAND(uiBut *but, uiWidgetColors *wcol, rcti *rect) float x1, y1, sizex, sizey; float dx, v3[2], v1[2], v2[2], v1a[2], v2a[2]; int a; - float pos, colf[4]; + float pos, colf[4]= {0,0,0,0}; /* initialize incase the colorband isnt valid */ coba= (ColorBand *)(but->editcoba? but->editcoba: but->poin); if(coba==NULL) return; diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 6bf01a69d12..f0003669a12 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1124,13 +1124,14 @@ void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen) /* mark it available for use for other windows */ screen->winid= 0; + /* before deleting the temp screen or we get invalid access */ + CTX_wm_window_set(C, prevwin); + /* if temp screen, delete it */ if(screen->full == SCREENTEMP) { Main *bmain= CTX_data_main(C); free_libblock(&bmain->screen, screen); } - - CTX_wm_window_set(C, prevwin); } /* *********************************** */ -- cgit v1.2.3 From 7a19832a78bea88d0a9c64809ef6e6576e870456 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sat, 26 Dec 2009 00:17:54 +0000 Subject: Fix for [#20294] Switching to particle mode after changing number of hair particles causes blender to crash. * Particle edit mode wasn't freed when the particle amount was changed. --- source/blender/blenkernel/intern/particle_system.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 9882bfea137..d3dacadca53 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -170,6 +170,12 @@ static void realloc_particles(ParticleSimulationData *sim, int new_totpart) PARTICLE_P; int totpart, totsaved = 0; + if(psys->edit && psys->free_edit) { + psys->free_edit(psys->edit); + psys->edit = NULL; + psys->free_edit = NULL; + } + if(new_totpart<0) { if(part->distr==PART_DISTR_GRID && part->from != PART_FROM_VERT) { totpart= part->grid_res; -- cgit v1.2.3 From ffe13aeb232ac6bad3a98997b4a352f434293193 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 26 Dec 2009 01:04:46 +0000 Subject: the user interface could access invalid RNA on deleting objects since checking the button ran after freeing the data. --- source/blender/editors/interface/interface_handlers.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index b41f47db271..fa5d60a20f6 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4100,7 +4100,11 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s data->state= state; - ui_check_but(but); + if(state != BUTTON_STATE_EXIT) { + /* When objects for eg. are removed, running ui_check_but() + * can access the removed data - so disable update on exit */ + ui_check_but(but); + } /* redraw */ ED_region_tag_redraw(data->region); -- cgit v1.2.3 From 20ab9a4d9bcfab7c0843ee21f9a3f7976ab530cc Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sat, 26 Dec 2009 15:59:07 +0000 Subject: Particles bug fix: Particle birth location between frames weren't calculated correctly for moving emitters as the functionality of where_is_object_time has changed a bit in the new anim system. --- source/blender/blenkernel/intern/particle_system.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index d3dacadca53..bf8721fd0b0 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -37,6 +37,7 @@ #include "MEM_guardedalloc.h" +#include "DNA_anim_types.h" #include "DNA_boid_types.h" #include "DNA_particle_types.h" #include "DNA_mesh_types.h" @@ -62,6 +63,7 @@ #include "BLI_threads.h" #include "BKE_anim.h" +#include "BKE_animsys.h" #include "BKE_boids.h" #include "BKE_cdderivedmesh.h" #include "BKE_collision.h" @@ -1720,8 +1722,11 @@ void reset_particle(ParticleSimulationData *sim, ParticleData *pa, float dtime, } else{ /* get precise emitter matrix if particle is born */ - if(part->type!=PART_HAIR && pa->time < cfra && pa->time >= sim->psys->cfra) + if(part->type!=PART_HAIR && pa->time < cfra && pa->time >= sim->psys->cfra) { + /* we have to force RECALC_ANIM here since where_is_objec_time only does drivers */ + BKE_animsys_evaluate_animdata(&sim->ob->id, sim->ob->adt, pa->time, ADT_RECALC_ANIM); where_is_object_time(sim->scene, sim->ob, pa->time); + } /* get birth location from object */ if(part->tanfac!=0.0) @@ -3298,8 +3303,9 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) /* nothing to be done when particle is dead */ } - /* only reset unborn particles if they're shown */ - if(pa->alive==PARS_UNBORN && part->flag & PART_UNBORN) + /* only reset unborn particles if they're shown or if the particle is born soon*/ + if(pa->alive==PARS_UNBORN + && (part->flag & PART_UNBORN || cfra + psys->pointcache->step > pa->time)) reset_particle(sim, pa, dtime, cfra); if(dfra>0.0 && ELEM(pa->alive,PARS_ALIVE,PARS_DYING)){ -- cgit v1.2.3 From 24ab5416da537bd5073d1e19431143f381b7922f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 26 Dec 2009 16:47:25 +0000 Subject: * sphinx docgen * py_function_args wasnt working right (was using function namespace for function args), use pythons inspect module instead. move the function to get a type description into rna_info --- source/blender/python/sphinx_doc_gen.py | 113 ++++++++------------------------ 1 file changed, 26 insertions(+), 87 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/sphinx_doc_gen.py b/source/blender/python/sphinx_doc_gen.py index 24910b911e4..fcf0f274bcf 100644 --- a/source/blender/python/sphinx_doc_gen.py +++ b/source/blender/python/sphinx_doc_gen.py @@ -34,6 +34,7 @@ Generate html docs by running... # GLOBALS['BASEDIR'] = './source/blender/python/doc' import os +import inspect import bpy import rna_info reload(rna_info) @@ -52,48 +53,6 @@ def write_indented_lines(ident, fn, text): for l in text.split("\n"): fn(ident + l.strip() + "\n") - -def py_function_args(func): - """Get the python functions args with keyword defaults where possible.""" - text = "" - code = func.__code__ - - defaults = func.__defaults__ - if defaults is None: - defaults = [] - else: - defaults = list(defaults) - - names = code.co_varnames - if names is None: - names = [] - else: - names = list(names) - - INVALID = py_function_args - defaults = ([INVALID] * (len(names) - len(defaults))) + defaults - - if names[0] in ("self", "cls"): # normal class function or classmethod - del names[0] - del defaults[0] - - for var, default in zip(names, defaults): - if default is INVALID: - text += var - else: - if type(default) == str: - text += "%s=\"%s\"" % (var, default) - elif type(default) == float: - text += rna_info.float_as_string(default) - else: - text += "%s=%s" % (var, repr(default)) - - if not var == names[-1]: - text += ", " - - return text - - def rna2sphinx(BASEPATH): structs, funcs, ops, props = rna_info.BuildRNAInfo() @@ -139,41 +98,18 @@ def rna2sphinx(BASEPATH): fw(".. module:: bpy.types\n\n") file.close() - - def write_property(ident, fw, prop, as_arg=False): - - if prop.description: - fw(ident + " %s\n\n" % prop.description) - - if prop.fixed_type is None: - fw(ident + " *type* %s " % prop.type) - if prop.array_length: - fw("array of %d items " % (prop.array_length)) - - if prop.type in ("float", "int"): - fw("in [%s, %s]" % (range_str(prop.min), range_str(prop.max))) - elif prop.type == "enum": - fw("in [%s]" % ', '.join(["`" + s + "`" for s in prop.enum_items])) + def write_param(ident, fw, prop, is_return=False): + if is_return: + id_name = "return" + id_type = "rtype" else: - if prop.type == "collection": - if prop.collection_type: - collection_str = ":class:`%s` collection of " % prop.collection_type.identifier - else: - collection_str = "Collection of " - else: - collection_str = " " - - fw(ident + " *type* %s:class:`%s`" % (collection_str, prop.fixed_type.identifier)) - - if not as_arg: # readonly is only useful for props, not args - if prop.is_readonly: - fw(", (readonly)") - - if prop.is_never_none: - fw(", (never None)") - - fw("\n\n") + id_name = "arg" + id_type = "type" + type_descr = prop.get_type_description(as_arg=True, class_fmt=":class:`%s`") + if prop.name or prop.description: + fw(ident + " :%s %s: %s\n" % (id_name, prop.identifier, ", ".join([val for val in (prop.name, prop.description) if val]))) + fw(ident + " :%s %s: %s\n" % (id_type, prop.identifier, type_descr)) def write_struct(struct): #if not struct.identifier.startswith("Sc") and not struct.identifier.startswith("I"): @@ -222,7 +158,10 @@ def rna2sphinx(BASEPATH): for prop in struct.properties: fw(" .. attribute:: %s\n\n" % prop.identifier) - write_property(" ", fw, prop) + if prop.description: + fw(" %s\n\n" % prop.description) + type_descr = prop.get_type_description(as_arg=False, class_fmt=":class:`%s`") + fw(" *type* %s\n\n" % type_descr) # python attributes py_properties = struct.get_py_properties() @@ -241,13 +180,11 @@ def rna2sphinx(BASEPATH): fw(" %s\n\n" % func.description) for prop in func.args: - fw(" * %s: %s\n" % (prop.identifier, prop.name)) - write_property(" ", fw, prop, as_arg=True) - + write_param(" ", fw, prop) + if func.return_value: - prop = func.return_value - fw(" Returns %s: %s\n" % (prop.identifier, prop.name)) - write_property(" ", fw, prop, as_arg=True) + write_param(" ", fw, func.return_value, is_return=True) + fw("\n") # python methods @@ -255,7 +192,7 @@ def rna2sphinx(BASEPATH): py_func = None for identifier, py_func in py_funcs: - fw(" .. method:: %s(%s)\n\n" % (identifier, py_function_args(py_func))) + fw(" .. method:: %s%s\n\n" % (identifier, inspect.formatargspec(*inspect.getargspec(py_func)))) write_indented_lines(" ", fw, py_func.__doc__) del py_funcs, py_func @@ -296,11 +233,13 @@ def rna2sphinx(BASEPATH): args_str = ", ".join([prop.get_arg_default(force=True) for prop in op.args]) fw(".. function:: %s(%s)\n\n" % (op.func_name, args_str)) - fw(" %s\n\n" % op.description) + if op.description: + fw(" %s\n\n" % op.description) for prop in op.args: - fw(" * %s: %s\n" % (prop.identifier, prop.name)) - write_property(" ", fw, prop, as_arg=True) - + write_param(" ", fw, prop) + if op.args: + fw("\n") + location = op.get_location() if location != (None, None): fw(" *python operator source --- `%s:%d`* \n\n" % location) -- cgit v1.2.3 From 5689ab39754dcd7229f616e3eed206bea5611545 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 26 Dec 2009 17:49:08 +0000 Subject: classmethods were excluded from docs, hide self & cls arguments for functions and class methods, made some rna ui funcs not display as optional. --- source/blender/makesrna/intern/rna_ui.c | 21 +++++++++++++++------ source/blender/python/sphinx_doc_gen.py | 16 ++++++++++++++-- 2 files changed, 29 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index cbd524680c1..695eb76cb53 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -573,6 +573,7 @@ static void rna_def_panel(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + PropertyRNA *parm; FunctionRNA *func; srna= RNA_def_struct(brna, "Panel", NULL); @@ -586,18 +587,21 @@ static void rna_def_panel(BlenderRNA *brna) RNA_def_function_ui_description(func, "Test if the panel is visible or not."); RNA_def_function_flag(func, FUNC_REGISTER|FUNC_REGISTER_OPTIONAL); RNA_def_function_return(func, RNA_def_boolean(func, "visible", 1, "", "")); - RNA_def_pointer(func, "context", "Context", "", ""); + parm= RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); /* draw */ func= RNA_def_function(srna, "draw", NULL); RNA_def_function_ui_description(func, "Draw buttons into the panel UI layout."); RNA_def_function_flag(func, FUNC_REGISTER); - RNA_def_pointer(func, "context", "Context", "", ""); + parm= RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); func= RNA_def_function(srna, "draw_header", NULL); RNA_def_function_ui_description(func, "Draw buttons into the panel header UI layout."); RNA_def_function_flag(func, FUNC_REGISTER); - RNA_def_pointer(func, "context", "Context", "", ""); + parm= RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); prop= RNA_def_property(srna, "layout", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "UILayout"); @@ -641,6 +645,7 @@ static void rna_def_header(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + PropertyRNA *parm; FunctionRNA *func; srna= RNA_def_struct(brna, "Header", NULL); @@ -653,7 +658,8 @@ static void rna_def_header(BlenderRNA *brna) func= RNA_def_function(srna, "draw", NULL); RNA_def_function_ui_description(func, "Draw buttons into the header UI layout."); RNA_def_function_flag(func, FUNC_REGISTER); - RNA_def_pointer(func, "context", "Context", "", ""); + parm= RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); RNA_define_verify_sdna(0); // not in sdna @@ -678,6 +684,7 @@ static void rna_def_menu(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + PropertyRNA *parm; FunctionRNA *func; srna= RNA_def_struct(brna, "Menu", NULL); @@ -691,13 +698,15 @@ static void rna_def_menu(BlenderRNA *brna) RNA_def_function_ui_description(func, "Test if the menu is visible or not."); RNA_def_function_flag(func, FUNC_REGISTER|FUNC_REGISTER_OPTIONAL); RNA_def_function_return(func, RNA_def_boolean(func, "visible", 1, "", "")); - RNA_def_pointer(func, "context", "Context", "", ""); + parm= RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); /* draw */ func= RNA_def_function(srna, "draw", NULL); RNA_def_function_ui_description(func, "Draw buttons into the menu UI layout."); RNA_def_function_flag(func, FUNC_REGISTER); - RNA_def_pointer(func, "context", "Context", "", ""); + parm= RNA_def_pointer(func, "context", "Context", "", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); RNA_define_verify_sdna(0); // not in sdna diff --git a/source/blender/python/sphinx_doc_gen.py b/source/blender/python/sphinx_doc_gen.py index fcf0f274bcf..c8e283ac447 100644 --- a/source/blender/python/sphinx_doc_gen.py +++ b/source/blender/python/sphinx_doc_gen.py @@ -192,8 +192,20 @@ def rna2sphinx(BASEPATH): py_func = None for identifier, py_func in py_funcs: - fw(" .. method:: %s%s\n\n" % (identifier, inspect.formatargspec(*inspect.getargspec(py_func)))) - write_indented_lines(" ", fw, py_func.__doc__) + arg_str = inspect.formatargspec(*inspect.getargspec(py_func)) + if arg_str.startswith("(self, "): + arg_str = "(" + arg_str[7:] + func_type = "method" + elif arg_str.startswith("(cls, "): + arg_str = "(" + arg_str[6:] + func_type = "classmethod" + else: + func_type = "staticmethod" + + fw(" .. %s:: %s%s\n\n" % (func_type, identifier, arg_str)) + if py_func.__doc__: + write_indented_lines(" ", fw, py_func.__doc__) + fw("\n") del py_funcs, py_func if struct.references: -- cgit v1.2.3 From d5592fe254c7061ca8bbcea93b6098dc9bf3d683 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 26 Dec 2009 20:23:13 +0000 Subject: fixes for errors/warnings found with cppcheck --- source/blender/avi/intern/avi.c | 4 +-- source/blender/blenkernel/intern/customdata_file.c | 3 +- source/blender/blenkernel/intern/script.c | 10 ------ source/blender/blenlib/intern/fileops.c | 2 +- source/blender/blenlib/intern/storage.c | 2 +- source/blender/editors/mesh/editmesh_loop.c | 8 ++--- source/blender/editors/physics/particle_edit.c | 6 ++-- .../editors/space_buttons/buttons_context.c | 2 -- source/blender/editors/space_view3d/drawobject.c | 36 ++++++++++++---------- source/blender/editors/space_view3d/view3d_draw.c | 2 +- source/blender/imbuf/intern/readimage.c | 4 +-- source/blender/imbuf/intern/targa.c | 5 ++- source/blender/python/BPY_extern.h | 1 - source/blender/python/intern/stubs.c | 1 - .../blender/render/intern/source/convertblender.c | 2 +- 15 files changed, 38 insertions(+), 50 deletions(-) (limited to 'source/blender') diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c index 005c05dec1d..2aedddfb97e 100644 --- a/source/blender/avi/intern/avi.c +++ b/source/blender/avi/intern/avi.c @@ -182,11 +182,11 @@ AviError AVI_print_error (AviError in_error) { return in_error; } - +/* void AVI_set_debug (int mode) { AVI_DEBUG= mode; } - +*/ /* int AVI_is_avi (char *name) { FILE *fp; diff --git a/source/blender/blenkernel/intern/customdata_file.c b/source/blender/blenkernel/intern/customdata_file.c index b58ada878de..fa1490620d6 100644 --- a/source/blender/blenkernel/intern/customdata_file.c +++ b/source/blender/blenkernel/intern/customdata_file.c @@ -352,7 +352,8 @@ int cdf_write_open(CDataFile *cdf, char *filename) /* fill header */ header= &cdf->header; - strcpy(header->ID, "BCDF"); + /* strcpy(, "BCDF"); // terminator out of range */ + header->ID[0]= 'B'; header->ID[1]= 'C'; header->ID[2]= 'D'; header->ID[3]= 'F'; header->endian= cdf_endian(); header->version= CDF_VERSION; header->subversion= CDF_SUBVERSION; diff --git a/source/blender/blenkernel/intern/script.c b/source/blender/blenkernel/intern/script.c index e34b1d0a1dd..98298950c19 100644 --- a/source/blender/blenkernel/intern/script.c +++ b/source/blender/blenkernel/intern/script.c @@ -52,13 +52,3 @@ * since we have to force clearing all Python related data before freeing * Blender's library. Still testing, will decide later (Willian). */ -//XXX -#if 0 -void free_script (Script *script) -{ - if (!script) return; -#ifndef DISABLE_PYTHON - BPY_clear_script(script); -#endif -} -#endif diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c index 15277c438f4..ae20eda5a59 100644 --- a/source/blender/blenlib/intern/fileops.c +++ b/source/blender/blenlib/intern/fileops.c @@ -159,7 +159,7 @@ int BLI_gzip(char *from, char *to) { file = open(from,O_BINARY|O_RDONLY); - if ( -1 == file ) return -2; + if (file < 0) return -2; while ( 1 ) { diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c index c830e5fc2c8..09bca168e64 100644 --- a/source/blender/blenlib/intern/storage.c +++ b/source/blender/blenlib/intern/storage.c @@ -440,7 +440,7 @@ int BLI_filepathsize(const char *path) { int size, file = open(path, O_BINARY|O_RDONLY); - if (file <= 0) + if (file < 0) return -1; size = BLI_filesize(file); diff --git a/source/blender/editors/mesh/editmesh_loop.c b/source/blender/editors/mesh/editmesh_loop.c index fd665f07767..ea444b2d014 100644 --- a/source/blender/editors/mesh/editmesh_loop.c +++ b/source/blender/editors/mesh/editmesh_loop.c @@ -230,12 +230,8 @@ void CutEdgeloop(Object *obedit, wmOperator *op, EditMesh *em, int numcuts) nearest = findnearestedge(&vc, &dist); // returns actual distance in dist // scrarea_do_windraw(curarea); // after findnearestedge, backbuf! - sprintf(msg,"Number of Cuts: %d",numcuts); - if(smooth){ - sprintf(msg,"%s (S)mooth: on",msg); - } else { - sprintf(msg,"%s (S)mooth: off",msg); - } + sprintf(msg,"Number of Cuts: %d (S)mooth: ",numcuts); + strcat(msg, smooth ? "on":"off"); // headerprint(msg); /* Need to figure preview */ diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index c29214f4633..eccb257dab5 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -3803,15 +3803,15 @@ int PE_minmax(Scene *scene, float *min, float *max) { Object *ob= OBACT; PTCacheEdit *edit= PE_get_current(scene, ob); - ParticleSystem *psys = edit->psys; + ParticleSystem *psys; ParticleSystemModifierData *psmd = NULL; POINT_P; KEY_K; float co[3], mat[4][4]; int ok= 0; if(!edit) return ok; - - if(psys) + + if((psys = edit->psys)) psmd= psys_get_modifier(ob, psys); else unit_m4(mat); diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index ade906ce678..18ba149d7ed 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -298,7 +298,6 @@ static int buttons_context_path_particle(ButsContextPath *path) static int buttons_context_path_brush(const bContext *C, ButsContextPath *path) { Scene *scene; - ToolSettings *ts; Brush *br= NULL; PointerRNA *ptr= &path->ptr[path->len-1]; @@ -309,7 +308,6 @@ static int buttons_context_path_brush(const bContext *C, ButsContextPath *path) /* if we have a scene, use the toolsettings brushes */ else if(buttons_context_path_scene(path)) { scene= path->ptr[path->len-1].data; - ts= scene->toolsettings; if(scene) br= paint_brush(paint_get_active(scene)); diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 8060514accd..8f20b53c296 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -402,12 +402,12 @@ void drawaxes(float size, int flag, char drawtype) break; case OB_EMPTY_SPHERE: - draw_empty_sphere(size); - break; + draw_empty_sphere(size); + break; case OB_EMPTY_CONE: - draw_empty_cone(size); - break; + draw_empty_cone(size); + break; case OB_ARROWS: default: @@ -1361,7 +1361,7 @@ static void mesh_foreachScreenEdge__mapFunc(void *userData, int index, float *v0 view3d_project_short_noclip(data->vc.ar, v1co, s[1]); if (data->clipVerts==2) { - if (!(s[0][0]>=0 && s[0][1]>= 0 && s[0][0]vc.ar->winx && s[0][1]vc.ar->winy)) + if (!(s[0][0]>=0 && s[0][1]>= 0 && s[0][0]vc.ar->winx && s[0][1]vc.ar->winy)) if (!(s[1][0]>=0 && s[1][1]>= 0 && s[1][0]vc.ar->winx && s[1][1]vc.ar->winy)) return; } @@ -2399,7 +2399,7 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d, Object *ob, E } } } - } + } if(v3d->zbuf) { glEnable(GL_DEPTH_TEST); @@ -2971,7 +2971,7 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D finalDM = cageDM = editmesh_get_derived_base(ob, em); else cageDM = editmesh_get_derived_cage_and_final(scene, ob, em, &finalDM, - v3d->customdata_mask); + v3d->customdata_mask); if(dt>OB_WIRE) { // no transp in editmode, the fancy draw over goes bad then @@ -4003,11 +4003,13 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv sprintf(val, " %i", a); if(part->draw&PART_DRAW_NUM && part->draw&PART_DRAW_HEALTH) - sprintf(val, "%s:", val); - - if(part->draw&PART_DRAW_HEALTH && a < totpart && part->phystype==PART_PHYS_BOIDS) - sprintf(val, "%s %.2f", val, pa_health); + strcat(val, ":"); + if(part->draw&PART_DRAW_HEALTH && a < totpart && part->phystype==PART_PHYS_BOIDS) { + char tval[8]; + sprintf(tval, " %.2f", pa_health); + strcat(val, tval); + } /* in path drawing state.co is the end point */ view3d_cached_text_draw_add(state.co[0], state.co[1], state.co[2], val, 0); } @@ -4826,7 +4828,7 @@ static void draw_empty_sphere (float size) static void draw_empty_cone (float size) { float cent=0; - float radius; + float radius; GLUquadricObj *qobj = gluNewQuadric(); gluQuadricDrawStyle(qobj, GLU_SILHOUETTE); @@ -4946,11 +4948,11 @@ static void drawspiral(float *cent, float rad, float tmat[][4], int start) */ static void drawcircle_size(float size) { - float x, y; + float x, y; short degrees; glBegin(GL_LINE_LOOP); - + /* coordinates are: cos(degrees*11.25)=x, sin(degrees*11.25)=y, 0.0f=z */ for (degrees=0; degrees<32; degrees++) { x= *(cosval + degrees); @@ -5824,7 +5826,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) float selboxw; cpack(0xffffff); - set_inverted_drawing(1); + set_inverted_drawing(1); for (i=0; i<(selend-selstart+1); i++) { SelBox *sb = &(cu->selboxes[i]); @@ -5839,12 +5841,12 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) } glBegin(GL_QUADS); glVertex3f(sb->x, sb->y, 0.001); - glVertex3f(sb->x+selboxw, sb->y, 0.001); + glVertex3f(sb->x+selboxw, sb->y, 0.001); glVertex3f(sb->x+selboxw, sb->y+sb->h, 0.001); glVertex3f(sb->x, sb->y+sb->h, 0.001); glEnd(); } - set_inverted_drawing(0); + set_inverted_drawing(0); } } else if(dt==OB_BOUNDBOX) diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index a680a3bd40d..be607d7ea77 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -829,7 +829,7 @@ static void draw_selected_name(Scene *scene, Object *ob, View3D *v3d) if(kb){ sprintf(shapes, ": %s ", kb->name); if(ob->shapeflag == OB_SHAPE_LOCK){ - sprintf(shapes, "%s (Pinned)",shapes); + strcat(shapes, " (Pinned)"); } } } diff --git a/source/blender/imbuf/intern/readimage.c b/source/blender/imbuf/intern/readimage.c index f248e6bb6c4..61254944001 100644 --- a/source/blender/imbuf/intern/readimage.c +++ b/source/blender/imbuf/intern/readimage.c @@ -279,7 +279,7 @@ struct ImBuf *IMB_loadiffname(const char *naam, int flags) { file = open(naam, O_BINARY|O_RDONLY); - if (file == -1) return (0); + if (file < 0) return (0); ibuf= IMB_loadifffile(file, flags); @@ -304,7 +304,7 @@ struct ImBuf *IMB_testiffname(char *naam,int flags) { flags |= IB_test; file = open(naam,O_BINARY|O_RDONLY); - if (file<=0) return (0); + if (file < 0) return (0); ibuf=IMB_loadifffile(file,flags); if (ibuf) { diff --git a/source/blender/imbuf/intern/targa.c b/source/blender/imbuf/intern/targa.c index c89bc6a632f..acc3e06448f 100644 --- a/source/blender/imbuf/intern/targa.c +++ b/source/blender/imbuf/intern/targa.c @@ -296,7 +296,10 @@ short imb_savetarga(struct ImBuf * ibuf, char *name, int flags) if (ibuf->cmap){ for (i = 0 ; imaxcol ; i++){ - if (fwrite(((uchar *)(ibuf->cmap + i)) + 1,1,3,fildes) != 3) return (0); + if (fwrite(((uchar *)(ibuf->cmap + i)) + 1,1,3,fildes) != 3) { + fclose(fildes); + return (0); + } } } diff --git a/source/blender/python/BPY_extern.h b/source/blender/python/BPY_extern.h index 6a94443dd8b..6ddcb5ff246 100644 --- a/source/blender/python/BPY_extern.h +++ b/source/blender/python/BPY_extern.h @@ -129,7 +129,6 @@ extern "C" { // void BPY_spacescript_do_pywin_draw( struct SpaceScript *sc ); // void BPY_spacescript_do_pywin_event( struct SpaceScript *sc, // unsigned short event, short val, char ascii ); -// void BPY_clear_script( struct Script *script ); // void BPY_free_finished_script( struct Script *script ); // void BPY_scripts_clear_pyobjects( void ); // diff --git a/source/blender/python/intern/stubs.c b/source/blender/python/intern/stubs.c index 303fd84ee60..7acc62b883e 100644 --- a/source/blender/python/intern/stubs.c +++ b/source/blender/python/intern/stubs.c @@ -30,7 +30,6 @@ //void BPY_run_python_script() {} //void BPY_start_python() {} void BPY_call_importloader() {} -void BPY_clear_script() {} //void BPY_free_compiled_text() {} void BPY_pyconstraint_eval() {} void BPY_pyconstraint_target() {} diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index c89811a62e0..05153113a55 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -5200,7 +5200,7 @@ static int load_fluidsimspeedvectors(Render *re, ObjectInstanceRen *obi, float * float mat[4][4], winmat[4][4]; float imat[4][4]; FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(fsob, eModifierType_Fluidsim); - FluidsimSettings *fss = fluidmd->fss; + FluidsimSettings *fss; float *velarray = NULL; /* only one step needed */ -- cgit v1.2.3 From 9c82e1efc32bdff04c3136ef5a2959ed73711ca7 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 27 Dec 2009 01:28:13 +0000 Subject: Bugfix 20469: Graph Editor Keyframes jumping around with NLA strips NLA corrections for Graph Editor transforms was wrong way around, causing jumping issues when trying to transform the keyframes. --- source/blender/editors/transform/transform_conversions.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index d5b9a85e347..822c0e5a961 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -3326,13 +3326,13 @@ static void bezt_to_transdata (TransData *td, TransData2D *td2d, AnimData *adt, */ if (adt) { - td2d->loc[0] = BKE_nla_tweakedit_remap(adt, loc[0], NLATIME_CONVERT_UNMAP); + td2d->loc[0] = BKE_nla_tweakedit_remap(adt, loc[0], NLATIME_CONVERT_MAP); td2d->loc[1] = loc[1]; td2d->loc[2] = 0.0f; td2d->loc2d = loc; td->loc = td2d->loc; - td->center[0] = BKE_nla_tweakedit_remap(adt, cent[0], NLATIME_CONVERT_UNMAP); + td->center[0] = BKE_nla_tweakedit_remap(adt, cent[0], NLATIME_CONVERT_MAP); td->center[1] = cent[1]; td->center[2] = 0.0f; -- cgit v1.2.3 From fde4686d77dd72ccfa88febdea360136bfd17a36 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 27 Dec 2009 01:32:58 +0000 Subject: barycentric transform utility geometry function. From 2 triangles and 1 point, the relative position between the point and the first triangle is applied to the second triangle to find the target point. the barycentric weights are calculated in 2D space with a signed area so values outside the triangle bounds are supported. wrapped by python: pt_to = Geometry.BarycentricTransform(pt_from, t1a, t1b, t1c, t2a, t1b, t1c) NOTE: - moved some barycentric weight functions out of projection painting into the math lib. - ended up making some of the math functions use const args. TODO: - support exceptional cases. zero area tries and similar. --- source/blender/blenlib/BLI_math_geom.h | 18 +++-- source/blender/blenlib/BLI_math_rotation.h | 3 +- source/blender/blenlib/BLI_math_vector.h | 20 ++--- source/blender/blenlib/intern/math_geom.c | 88 ++++++++++++++++++++-- source/blender/blenlib/intern/math_rotation.c | 2 +- source/blender/blenlib/intern/math_vector.c | 12 +-- source/blender/blenlib/intern/math_vector_inline.c | 8 +- source/blender/editors/sculpt_paint/paint_image.c | 72 ++++++------------ source/blender/python/generic/Geometry.c | 35 +++++++++ 9 files changed, 176 insertions(+), 82 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h index 49d335f6c5c..e676001fba5 100644 --- a/source/blender/blenlib/BLI_math_geom.h +++ b/source/blender/blenlib/BLI_math_geom.h @@ -37,12 +37,13 @@ extern "C" { void cent_tri_v3(float r[3], float a[3], float b[3], float c[3]); void cent_quad_v3(float r[3], float a[3], float b[3], float c[3], float d[3]); -float normal_tri_v3(float r[3], float a[3], float b[3], float c[3]); -float normal_quad_v3(float r[3], float a[3], float b[3], float c[3], float d[3]); +float normal_tri_v3(float r[3], const float a[3], const float b[3], const float c[3]); +float normal_quad_v3(float r[3], const float a[3], const float b[3], const float c[3], const float d[3]); -float area_tri_v2(float a[2], float b[2], float c[2]); -float area_tri_v3(float a[3], float b[3], float c[3]); -float area_quad_v3(float a[3], float b[3], float c[3], float d[3]); +float area_tri_v2(const float a[2], const float b[2], const float c[2]); +float area_tri_signed_v2(const float v1[2], const float v2[2], const float v3[2]); +float area_tri_v3(const float a[3], const float b[3], const float c[3]); +float area_quad_v3(const float a[3], const float b[3], const float c[3], const float d[3]); float area_poly_v3(int nr, float verts[][3], float normal[3]); /********************************* Distance **********************************/ @@ -120,6 +121,13 @@ void interp_weights_poly_v3(float w[], float v[][3], int n, float p[3]); void interp_cubic_v3(float x[3], float v[3], float x1[3], float v1[3], float x2[3], float v2[3], float t); +void barycentric_transform(float pt_tar[3], float const pt_src[3], + const float tri_tar_p1[3], const float tri_tar_p2[3], const float tri_tar_p3[3], + const float tri_src_p1[3], const float tri_src_p2[3], const float tri_src_p3[3]); + +void barycentric_weights_v2(const float v1[2], const float v2[2], const float v3[2], + const float co[2], float w[3]); + /***************************** View & Projection *****************************/ void lookat_m4(float mat[4][4], float vx, float vy, diff --git a/source/blender/blenlib/BLI_math_rotation.h b/source/blender/blenlib/BLI_math_rotation.h index b221d89487f..b640cf6dc3c 100644 --- a/source/blender/blenlib/BLI_math_rotation.h +++ b/source/blender/blenlib/BLI_math_rotation.h @@ -70,7 +70,8 @@ void mat3_to_quat(float q[4], float mat[3][3]); void mat4_to_quat(float q[4], float mat[4][4]); void tri_to_quat(float q[4], float a[3], float b[3], float c[3]); void vec_to_quat(float q[4], float vec[3], short axis, short upflag); -void rotation_between_vecs_to_quat(float q[4], float v1[3], float v2[3]); +/* note: v1 and v2 must be normalized */ +void rotation_between_vecs_to_quat(float q[4], const float v1[3], const float v2[3]); /* TODO: don't what this is, but it's not the same as mat3_to_quat */ void mat3_to_quat_is_ok(float q[4], float mat[3][3]); diff --git a/source/blender/blenlib/BLI_math_vector.h b/source/blender/blenlib/BLI_math_vector.h index e915a9a85f3..26e7ff5abe9 100644 --- a/source/blender/blenlib/BLI_math_vector.h +++ b/source/blender/blenlib/BLI_math_vector.h @@ -51,8 +51,8 @@ extern "C" { MINLINE void zero_v2(float r[2]); MINLINE void zero_v3(float r[3]); -MINLINE void copy_v2_v2(float r[2], float a[2]); -MINLINE void copy_v3_v3(float r[3], float a[3]); +MINLINE void copy_v2_v2(float r[2], const float a[2]); +MINLINE void copy_v3_v3(float r[3], const float a[3]); MINLINE void swap_v2_v2(float a[2], float b[2]); MINLINE void swap_v3_v3(float a[3], float b[3]); @@ -67,7 +67,7 @@ MINLINE void add_v3_v3v3(float r[3], float a[3], float b[3]); MINLINE void sub_v2_v2(float r[2], float a[2]); MINLINE void sub_v2_v2v2(float r[2], float a[2], float b[2]); MINLINE void sub_v3_v3(float r[3], float a[3]); -MINLINE void sub_v3_v3v3(float r[3], float a[3], float b[3]); +MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3]); MINLINE void mul_v2_fl(float r[2], float f); MINLINE void mul_v3_fl(float r[3], float f); @@ -87,7 +87,7 @@ MINLINE float dot_v2v2(float a[2], float b[2]); MINLINE float dot_v3v3(float a[3], float b[3]); MINLINE float cross_v2v2(float a[2], float b[2]); -MINLINE void cross_v3_v3v3(float r[3], float a[3], float b[3]); +MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3]); MINLINE void star_m3_v3(float R[3][3],float a[3]); @@ -103,11 +103,11 @@ MINLINE float normalize_v3(float r[3]); /******************************* Interpolation *******************************/ -void interp_v2_v2v2(float r[2], float a[2], float b[2], float t); -void interp_v2_v2v2v2(float r[2], float a[2], float b[2], float c[3], float t[3]); -void interp_v3_v3v3(float r[3], float a[3], float b[3], float t); -void interp_v3_v3v3v3(float p[3], float v1[3], float v2[3], float v3[3], float w[3]); -void interp_v3_v3v3v3v3(float p[3], float v1[3], float v2[3], float v3[3], float v4[3], float w[4]); +void interp_v2_v2v2(float r[2], const float a[2], const float b[2], const float t); +void interp_v2_v2v2v2(float r[2], const float a[2], const float b[2], const float c[3], const float t[3]); +void interp_v3_v3v3(float r[3], const float a[3], const float b[3], const float t); +void interp_v3_v3v3v3(float p[3], const float v1[3], const float v2[3], const float v3[3], const float w[3]); +void interp_v3_v3v3v3v3(float p[3], const float v1[3], const float v2[3], const float v3[3], const float v4[3], const float w[4]); void mid_v3_v3v3(float r[3], float a[3], float b[3]); @@ -130,7 +130,7 @@ float angle_v2v2v2(float a[2], float b[2], float c[2]); float angle_normalized_v2v2(float a[2], float b[2]); float angle_v3v3(float a[2], float b[2]); float angle_v3v3v3(float a[2], float b[2], float c[2]); -float angle_normalized_v3v3(float a[3], float b[3]); +float angle_normalized_v3v3(const float v1[3], const float v2[3]); void angle_tri_v3(float angles[3], const float v1[3], const float v2[3], const float v3[3]); void angle_quad_v3(float angles[4], const float v1[3], const float v2[3], const float v3[3], const float v4[3]); diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 3e714b384a7..dd773cb00c1 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -49,7 +49,7 @@ void cent_quad_v3(float *cent, float *v1, float *v2, float *v3, float *v4) cent[2]= 0.25f*(v1[2]+v2[2]+v3[2]+v4[2]); } -float normal_tri_v3(float *n, float *v1, float *v2, float *v3) +float normal_tri_v3(float n[3], const float v1[3], const float v2[3], const float v3[3]) { float n1[3],n2[3]; @@ -65,7 +65,7 @@ float normal_tri_v3(float *n, float *v1, float *v2, float *v3) return normalize_v3(n); } -float normal_quad_v3(float *n, float *v1, float *v2, float *v3, float *v4) +float normal_quad_v3(float n[3], const float v1[3], const float v2[3], const float v3[3], const float v4[3]) { /* real cross! */ float n1[3],n2[3]; @@ -85,13 +85,17 @@ float normal_quad_v3(float *n, float *v1, float *v2, float *v3, float *v4) return normalize_v3(n); } -float area_tri_v2(float *v1, float *v2, float *v3) +float area_tri_v2(const float v1[2], const float v2[2], const float v3[2]) { - return (float)(0.5*fabs((v1[0]-v2[0])*(v2[1]-v3[1]) + (v1[1]-v2[1])*(v3[0]-v2[0]))); + return (float)(0.5f*fabs((v1[0]-v2[0])*(v2[1]-v3[1]) + (v1[1]-v2[1])*(v3[0]-v2[0]))); } +float area_tri_signed_v2(const float v1[2], const float v2[2], const float v3[2]) +{ + return (float)(0.5f*((v1[0]-v2[0])*(v2[1]-v3[1]) + (v1[1]-v2[1])*(v3[0]-v2[0]))); +} -float area_quad_v3(float *v1, float *v2, float *v3, float *v4) /* only convex Quadrilaterals */ +float area_quad_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3]) /* only convex Quadrilaterals */ { float len, vec1[3], vec2[3], n[3]; @@ -108,7 +112,7 @@ float area_quad_v3(float *v1, float *v2, float *v3, float *v4) /* only convex return (len/2.0f); } -float area_tri_v3(float *v1, float *v2, float *v3) /* Triangles */ +float area_tri_v3(const float v1[3], const float v2[3], const float v3[3]) /* Triangles */ { float len, vec1[3], vec2[3], n[3]; @@ -1334,6 +1338,77 @@ void interp_weights_face_v3(float *w,float *v1, float *v2, float *v3, float *v4, } } +/* used by projection painting + * note: using area_tri_signed_v2 means locations outside the triangle are correctly weighted */ +void barycentric_weights_v2(const float v1[2], const float v2[2], const float v3[2], const float co[2], float w[3]) +{ + float wtot_inv, wtot; + + w[0] = area_tri_signed_v2(v2, v3, co); + w[1] = area_tri_signed_v2(v3, v1, co); + w[2] = area_tri_signed_v2(v1, v2, co); + wtot = w[0]+w[1]+w[2]; + + if (wtot != 0.0f) { + wtot_inv = 1.0f/wtot; + + w[0] = w[0]*wtot_inv; + w[1] = w[1]*wtot_inv; + w[2] = w[2]*wtot_inv; + } + else /* dummy values for zero area face */ + w[0] = w[1] = w[2] = 1.0f/3.0f; +} + +/* given 2 triangles in 3D space, and a point in relation to the first triangle. + * calculate the location of a point in relation to the second triangle. + * Useful for finding relative positions with geometry */ +void barycentric_transform(float pt_tar[3], float const pt_src[3], + const float tri_tar_p1[3], const float tri_tar_p2[3], const float tri_tar_p3[3], + const float tri_src_p1[3], const float tri_src_p2[3], const float tri_src_p3[3]) +{ + /* this works by moving the source triangle so its normal is pointing on the Z + * axis where its barycentric wights can be calculated in 2D and its Z offset can + * be re-applied. The weights are applied directly to the targets 3D points and the + * z-depth is used to scale the targets normal as an offset. + * This saves transforming the target into its Z-Up orientation and back (which could also work) */ + const float z_up[3] = {0, 0, 1}; + float no_tar[3], no_src[3]; + float quat_src[4]; + float pt_src_xy[3]; + float tri_xy_src[3][3]; + float w_src[3]; + float area_tar, area_src; + float z_ofs_src; + + normal_tri_v3(no_tar, tri_tar_p1, tri_tar_p2, tri_tar_p3); + normal_tri_v3(no_src, tri_src_p1, tri_src_p2, tri_src_p3); + + rotation_between_vecs_to_quat(quat_src, no_src, z_up); + normalize_qt(quat_src); + + copy_v3_v3(pt_src_xy, pt_src); + copy_v3_v3(tri_xy_src[0], tri_src_p1); + copy_v3_v3(tri_xy_src[1], tri_src_p2); + copy_v3_v3(tri_xy_src[2], tri_src_p3); + + /* make the source tri xy space */ + mul_qt_v3(quat_src, pt_src_xy); + mul_qt_v3(quat_src, tri_xy_src[0]); + mul_qt_v3(quat_src, tri_xy_src[1]); + mul_qt_v3(quat_src, tri_xy_src[2]); + + barycentric_weights_v2(tri_xy_src[0], tri_xy_src[1], tri_xy_src[2], pt_src_xy, w_src); + interp_v3_v3v3v3(pt_tar, tri_tar_p1, tri_tar_p2, tri_tar_p3, w_src); + + area_tar= sqrtf(area_tri_v3(tri_tar_p1, tri_tar_p2, tri_tar_p3)); + area_src= sqrtf(area_tri_v2(tri_xy_src[0], tri_xy_src[1], tri_xy_src[2])); + + z_ofs_src= tri_xy_src[0][2] - pt_src_xy[2]; + madd_v3_v3v3fl(pt_tar, pt_tar, no_tar, (z_ofs_src / area_src) * area_tar); +} + + /* Mean value weights - smooth interpolation weights for polygons with * more than 3 vertices */ static float mean_value_half_tan(float *v1, float *v2, float *v3) @@ -1789,3 +1864,4 @@ void vcloud_estimate_transform(int list_size, float (*pos)[3], float *weight,flo } } } + diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c index 084db725409..61d5eeaaa2c 100644 --- a/source/blender/blenlib/intern/math_rotation.c +++ b/source/blender/blenlib/intern/math_rotation.c @@ -327,7 +327,7 @@ void normalize_qt(float *q) } } -void rotation_between_vecs_to_quat(float *q, float v1[3], float v2[3]) +void rotation_between_vecs_to_quat(float *q, const float v1[3], const float v2[3]) { float axis[3]; float angle; diff --git a/source/blender/blenlib/intern/math_vector.c b/source/blender/blenlib/intern/math_vector.c index 3188587a96c..d99d96d28ff 100644 --- a/source/blender/blenlib/intern/math_vector.c +++ b/source/blender/blenlib/intern/math_vector.c @@ -34,7 +34,7 @@ //******************************* Interpolation *******************************/ -void interp_v2_v2v2(float *target, float *a, float *b, float t) +void interp_v2_v2v2(float *target, const float *a, const float *b, const float t) { float s = 1.0f-t; @@ -44,13 +44,13 @@ void interp_v2_v2v2(float *target, float *a, float *b, float t) /* weight 3 2D vectors, * 'w' must be unit length but is not a vector, just 3 weights */ -void interp_v2_v2v2v2(float p[2], float v1[2], float v2[2], float v3[2], float w[3]) +void interp_v2_v2v2v2(float p[2], const float v1[2], const float v2[2], const float v3[2], const float w[3]) { p[0] = v1[0]*w[0] + v2[0]*w[1] + v3[0]*w[2]; p[1] = v1[1]*w[0] + v2[1]*w[1] + v3[1]*w[2]; } -void interp_v3_v3v3(float *target, float *a, float *b, float t) +void interp_v3_v3v3(float target[3], const float a[3], const float b[3], const float t) { float s = 1.0f-t; @@ -61,7 +61,7 @@ void interp_v3_v3v3(float *target, float *a, float *b, float t) /* weight 3 vectors, * 'w' must be unit length but is not a vector, just 3 weights */ -void interp_v3_v3v3v3(float p[3], float v1[3], float v2[3], float v3[3], float w[3]) +void interp_v3_v3v3v3(float p[3], const float v1[3], const float v2[3], const float v3[3], const float w[3]) { p[0] = v1[0]*w[0] + v2[0]*w[1] + v3[0]*w[2]; p[1] = v1[1]*w[0] + v2[1]*w[1] + v3[1]*w[2]; @@ -70,7 +70,7 @@ void interp_v3_v3v3v3(float p[3], float v1[3], float v2[3], float v3[3], float w /* weight 3 vectors, * 'w' must be unit length but is not a vector, just 3 weights */ -void interp_v3_v3v3v3v3(float p[3], float v1[3], float v2[3], float v3[3], float v4[3], float w[4]) +void interp_v3_v3v3v3v3(float p[3], const float v1[3], const float v2[3], const float v3[3], const float v4[3], const float w[4]) { p[0] = v1[0]*w[0] + v2[0]*w[1] + v3[0]*w[2] + v4[0]*w[3]; p[1] = v1[1]*w[0] + v2[1]*w[1] + v3[1]*w[2] + v4[1]*w[3]; @@ -191,7 +191,7 @@ float angle_v2v2(float *v1, float *v2) return angle_normalized_v2v2(vec1, vec2); } -float angle_normalized_v3v3(float *v1, float *v2) +float angle_normalized_v3v3(const float v1[3], const float v2[3]) { /* this is the same as acos(dot_v3v3(v1, v2)), but more accurate */ if (dot_v3v3(v1, v2) < 0.0f) { diff --git a/source/blender/blenlib/intern/math_vector_inline.c b/source/blender/blenlib/intern/math_vector_inline.c index cb629312712..16f35dbc5fa 100644 --- a/source/blender/blenlib/intern/math_vector_inline.c +++ b/source/blender/blenlib/intern/math_vector_inline.c @@ -45,13 +45,13 @@ MINLINE void zero_v3(float r[3]) r[2]= 0.0f; } -MINLINE void copy_v2_v2(float r[2], float a[2]) +MINLINE void copy_v2_v2(float r[2], const float a[2]) { r[0]= a[0]; r[1]= a[1]; } -MINLINE void copy_v3_v3(float r[3], float a[3]) +MINLINE void copy_v3_v3(float r[3], const float a[3]) { r[0]= a[0]; r[1]= a[1]; @@ -118,7 +118,7 @@ MINLINE void sub_v3_v3(float *r, float *a) r[2] -= a[2]; } -MINLINE void sub_v3_v3v3(float *r, float *a, float *b) +MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3]) { r[0]= a[0] - b[0]; r[1]= a[1] - b[1]; @@ -216,7 +216,7 @@ MINLINE float cross_v2v2(float a[2], float b[2]) return a[0]*b[1] - a[1]*b[0]; } -MINLINE void cross_v3_v3v3(float r[3], float a[3], float b[3]) +MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3]) { r[0]= a[1]*b[2] - a[2]*b[1]; r[1]= a[2]*b[0] - a[0]*b[2]; diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 058dab4ba15..526eb2d6661 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -464,40 +464,14 @@ static int project_bucket_offset_safe(const ProjPaintState *ps, const float proj #define SIDE_OF_LINE(pa, pb, pp) ((pa[0]-pp[0])*(pb[1]-pp[1]))-((pb[0]-pp[0])*(pa[1]-pp[1])) -static float AreaSignedF2Dfl(float *v1, float *v2, float *v3) -{ - return (float)(0.5f*((v1[0]-v2[0])*(v2[1]-v3[1]) + -(v1[1]-v2[1])*(v3[0]-v2[0]))); -} - -static void BarycentricWeights2f(float pt[2], float v1[2], float v2[2], float v3[2], float w[3]) -{ - float wtot_inv, wtot; - - w[0] = AreaSignedF2Dfl(v2, v3, pt); - w[1] = AreaSignedF2Dfl(v3, v1, pt); - w[2] = AreaSignedF2Dfl(v1, v2, pt); - wtot = w[0]+w[1]+w[2]; - - if (wtot != 0.0f) { - wtot_inv = 1.0f/wtot; - - w[0] = w[0]*wtot_inv; - w[1] = w[1]*wtot_inv; - w[2] = w[2]*wtot_inv; - } - else /* dummy values for zero area face */ - w[0] = w[1] = w[2] = 1.0f/3.0f; -} - /* still use 2D X,Y space but this works for verts transformed by a perspective matrix, using their 4th component as a weight */ -static void BarycentricWeightsPersp2f(float pt[2], float v1[4], float v2[4], float v3[4], float w[3]) +static void barycentric_weights_v2_persp(float v1[4], float v2[4], float v3[4], float co[2], float w[3]) { float wtot_inv, wtot; - w[0] = AreaSignedF2Dfl(v2, v3, pt) / v1[3]; - w[1] = AreaSignedF2Dfl(v3, v1, pt) / v2[3]; - w[2] = AreaSignedF2Dfl(v1, v2, pt) / v3[3]; + w[0] = area_tri_signed_v2(v2, v3, co) / v1[3]; + w[1] = area_tri_signed_v2(v3, v1, co) / v2[3]; + w[2] = area_tri_signed_v2(v1, v2, co) / v3[3]; wtot = w[0]+w[1]+w[2]; if (wtot != 0.0f) { @@ -513,13 +487,13 @@ static void BarycentricWeightsPersp2f(float pt[2], float v1[4], float v2[4], flo static float VecZDepthOrtho(float pt[2], float v1[3], float v2[3], float v3[3], float w[3]) { - BarycentricWeights2f(pt, v1, v2, v3, w); + barycentric_weights_v2(v1, v2, v3, pt, w); return (v1[2]*w[0]) + (v2[2]*w[1]) + (v3[2]*w[2]); } static float VecZDepthPersp(float pt[2], float v1[3], float v2[3], float v3[3], float w[3]) { - BarycentricWeightsPersp2f(pt, v1, v2, v3, w); + barycentric_weights_v2_persp(v1, v2, v3, pt, w); return (v1[2]*w[0]) + (v2[2]*w[1]) + (v3[2]*w[2]); } @@ -738,8 +712,8 @@ static int project_paint_occlude_ptv_clip( return ret; if (ret==1) { /* weights not calculated */ - if (ps->is_ortho) BarycentricWeights2f(pt, v1, v2, v3, w); - else BarycentricWeightsPersp2f(pt, v1, v2, v3, w); + if (ps->is_ortho) barycentric_weights_v2(v1, v2, v3, pt, w); + else barycentric_weights_v2_persp(v1, v2, v3, pt, w); } /* Test if we're in the clipped area, */ @@ -1187,7 +1161,7 @@ static void screen_px_from_ortho( float pixelScreenCo[4], float w[3]) { - BarycentricWeights2f(uv, uv1co, uv2co, uv3co, w); + barycentric_weights_v2(uv1co, uv2co, uv3co, uv, w); interp_v3_v3v3v3(pixelScreenCo, v1co, v2co, v3co, w); } @@ -1202,7 +1176,7 @@ static void screen_px_from_persp( { float wtot_inv, wtot; - BarycentricWeights2f(uv, uv1co, uv2co, uv3co, w); + barycentric_weights_v2(uv1co, uv2co, uv3co, uv, w); /* re-weight from the 4th coord of each screen vert */ w[0] *= v1co[3]; @@ -1774,26 +1748,26 @@ static void rect_to_uvspace_ortho( /* get the UV space bounding box */ uv[0] = bucket_bounds->xmax; uv[1] = bucket_bounds->ymin; - BarycentricWeights2f(uv, v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2(v1coSS, v2coSS, v3coSS, uv, w); interp_v2_v2v2v2(bucket_bounds_uv[flip?3:0], uv1co, uv2co, uv3co, w); //uv[0] = bucket_bounds->xmax; // set above uv[1] = bucket_bounds->ymax; - BarycentricWeights2f(uv, v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2(v1coSS, v2coSS, v3coSS, uv, w); interp_v2_v2v2v2(bucket_bounds_uv[flip?2:1], uv1co, uv2co, uv3co, w); uv[0] = bucket_bounds->xmin; //uv[1] = bucket_bounds->ymax; // set above - BarycentricWeights2f(uv, v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2(v1coSS, v2coSS, v3coSS, uv, w); interp_v2_v2v2v2(bucket_bounds_uv[flip?1:2], uv1co, uv2co, uv3co, w); //uv[0] = bucket_bounds->xmin; // set above uv[1] = bucket_bounds->ymin; - BarycentricWeights2f(uv, v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2(v1coSS, v2coSS, v3coSS, uv, w); interp_v2_v2v2v2(bucket_bounds_uv[flip?0:3], uv1co, uv2co, uv3co, w); } -/* same as above but use BarycentricWeightsPersp2f */ +/* same as above but use barycentric_weights_v2_persp */ static void rect_to_uvspace_persp( rctf *bucket_bounds, float *v1coSS, float *v2coSS, float *v3coSS, @@ -1808,22 +1782,22 @@ static void rect_to_uvspace_persp( /* get the UV space bounding box */ uv[0] = bucket_bounds->xmax; uv[1] = bucket_bounds->ymin; - BarycentricWeightsPersp2f(uv, v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, uv, w); interp_v2_v2v2v2(bucket_bounds_uv[flip?3:0], uv1co, uv2co, uv3co, w); //uv[0] = bucket_bounds->xmax; // set above uv[1] = bucket_bounds->ymax; - BarycentricWeightsPersp2f(uv, v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, uv, w); interp_v2_v2v2v2(bucket_bounds_uv[flip?2:1], uv1co, uv2co, uv3co, w); uv[0] = bucket_bounds->xmin; //uv[1] = bucket_bounds->ymax; // set above - BarycentricWeightsPersp2f(uv, v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, uv, w); interp_v2_v2v2v2(bucket_bounds_uv[flip?1:2], uv1co, uv2co, uv3co, w); //uv[0] = bucket_bounds->xmin; // set above uv[1] = bucket_bounds->ymin; - BarycentricWeightsPersp2f(uv, v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, uv, w); interp_v2_v2v2v2(bucket_bounds_uv[flip?0:3], uv1co, uv2co, uv3co, w); } @@ -2067,13 +2041,13 @@ static void project_bucket_clip_face( if (is_ortho) { for(i=0; i<(*tot); i++) { - BarycentricWeights2f(isectVCosSS[i], v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2(v1coSS, v2coSS, v3coSS, isectVCosSS[i], w); interp_v2_v2v2v2(bucket_bounds_uv[i], uv1co, uv2co, uv3co, w); } } else { for(i=0; i<(*tot); i++) { - BarycentricWeightsPersp2f(isectVCosSS[i], v1coSS, v2coSS, v3coSS, w); + barycentric_weights_v2_persp(v1coSS, v2coSS, v3coSS, isectVCosSS[i], w); interp_v2_v2v2v2(bucket_bounds_uv[i], uv1co, uv2co, uv3co, w); } } @@ -2521,10 +2495,10 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i #if 0 /* This is not QUITE correct since UV is not inside the UV's but good enough for seams */ if (side) { - BarycentricWeights2f(uv, tf_uv_pxoffset[0], tf_uv_pxoffset[2], tf_uv_pxoffset[3], w); + barycentric_weights_v2(tf_uv_pxoffset[0], tf_uv_pxoffset[2], tf_uv_pxoffset[3], uv, w); } else { - BarycentricWeights2f(uv, tf_uv_pxoffset[0], tf_uv_pxoffset[1], tf_uv_pxoffset[2], w); + barycentric_weights_v2(tf_uv_pxoffset[0], tf_uv_pxoffset[1], tf_uv_pxoffset[2], uv, w); } #endif #if 1 diff --git a/source/blender/python/generic/Geometry.c b/source/blender/python/generic/Geometry.c index 0d59df6ceca..579c9d987cf 100644 --- a/source/blender/python/generic/Geometry.c +++ b/source/blender/python/generic/Geometry.c @@ -55,6 +55,7 @@ static PyObject *M_Geometry_PointInTriangle2D( PyObject * self, PyObject * args static PyObject *M_Geometry_PointInQuad2D( PyObject * self, PyObject * args ); static PyObject *M_Geometry_BoxPack2D( PyObject * self, PyObject * args ); static PyObject *M_Geometry_BezierInterp( PyObject * self, PyObject * args ); +static PyObject *M_Geometry_BarycentricTransform( PyObject * self, PyObject * args ); /*-------------------------DOC STRINGS ---------------------------*/ @@ -75,6 +76,7 @@ struct PyMethodDef M_Geometry_methods[] = { {"PointInQuad2D", ( PyCFunction ) M_Geometry_PointInQuad2D, METH_VARARGS, M_Geometry_PointInQuad2D_doc}, {"BoxPack2D", ( PyCFunction ) M_Geometry_BoxPack2D, METH_O, M_Geometry_BoxPack2D_doc}, {"BezierInterp", ( PyCFunction ) M_Geometry_BezierInterp, METH_VARARGS, M_Geometry_BezierInterp_doc}, + {"BarycentricTransform", ( PyCFunction ) M_Geometry_BarycentricTransform, METH_VARARGS, NULL}, {NULL, NULL, 0, NULL} }; @@ -534,3 +536,36 @@ static PyObject *M_Geometry_BezierInterp( PyObject * self, PyObject * args ) MEM_freeN(coord_array); return list; } + +static PyObject *M_Geometry_BarycentricTransform(PyObject * self, PyObject * args) +{ + VectorObject *vec_pt; + VectorObject *vec_t1_tar, *vec_t2_tar, *vec_t3_tar; + VectorObject *vec_t1_src, *vec_t2_src, *vec_t3_src; + float vec[3]; + + if( !PyArg_ParseTuple ( args, "O!O!O!O!O!O!O!", + &vector_Type, &vec_pt, + &vector_Type, &vec_t1_src, + &vector_Type, &vec_t2_src, + &vector_Type, &vec_t3_src, + &vector_Type, &vec_t1_tar, + &vector_Type, &vec_t2_tar, + &vector_Type, &vec_t3_tar) || ( vec_pt->size != 3 || + vec_t1_src->size != 3 || + vec_t2_src->size != 3 || + vec_t3_src->size != 3 || + vec_t1_tar->size != 3 || + vec_t2_tar->size != 3 || + vec_t3_tar->size != 3) + ) { + PyErr_SetString( PyExc_TypeError, "expected 7, 3D vector types\n" ); + return NULL; + } + + barycentric_transform(vec, vec_pt->vec, + vec_t1_tar->vec, vec_t2_tar->vec, vec_t3_tar->vec, + vec_t1_src->vec, vec_t2_src->vec, vec_t3_src->vec); + + return newVectorObject(vec, 3, Py_NEW, NULL); +} -- cgit v1.2.3 From eb766f1d3ff7f8ebb1ff257e2bdd154c20ed3c1d Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 27 Dec 2009 01:36:32 +0000 Subject: DopeSheet + Graph Editor hotkey tweak: Made the TAB key toggle the editability of selected channels in the keyframes area in addition to the channels list. --- source/blender/editors/space_action/action_ops.c | 11 +++++++---- source/blender/editors/space_graph/graph_ops.c | 5 +++++ 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c index 68c354b2b87..f02974c2ea4 100644 --- a/source/blender/editors/space_action/action_ops.c +++ b/source/blender/editors/space_action/action_ops.c @@ -155,11 +155,14 @@ static void action_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap) WM_keymap_add_item(keymap, "ACTION_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); WM_keymap_add_item(keymap, "ACTION_OT_view_all", HOMEKEY, KM_PRESS, 0, 0); + /* animation module */ + /* channels list + * NOTE: these operators were originally for the channels list, but are added here too for convenience... + */ + WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0); + /* transform system */ transform_keymap_for_space(keyconf, keymap, SPACE_ACTION); - - /* test */ - /* WM_keymap_add_item(keymap, "ACTION_OT_test", QKEY, KM_PRESS, 0, 0); */ } /* --------------- */ @@ -171,7 +174,7 @@ void action_keymap(wmKeyConfig *keyconf) /* channels */ /* Channels are not directly handled by the Action Editor module, but are inherited from the Animation module. * All the relevant operations, keymaps, drawing, etc. can therefore all be found in that module instead, as these - * are all used for the IPO-Editor too. + * are all used for the Graph-Editor too. */ /* keyframes */ diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index 5b62761ae74..295ee869979 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -351,6 +351,11 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap) /* F-Modifiers */ RNA_boolean_set(WM_keymap_add_item(keymap, "GRAPH_OT_fmodifier_add", MKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "only_active", 0); + /* animation module */ + /* channels list + * NOTE: these operators were originally for the channels list, but are added here too for convenience... + */ + WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0); /* transform system */ transform_keymap_for_space(keyconf, keymap, SPACE_IPO); -- cgit v1.2.3 From 0767cdd4a00e217320a2b9e090373efb0d41209e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 27 Dec 2009 11:14:06 +0000 Subject: Transfer Shape Key Useful if you have 2 different characters with the same base mesh (matching indicies), and want to copy a facial expression for eg, from one to another. Durian request to re-use shapes between characters. * Copies the active shape to other selected objects * Different methods to apply the shape * * OFFSET, simple translation offset * * RELATIVE (EDGE/FACE), Use Barycentric transformation to copy the shape. This means the target mesh can be a different orientation and scale and the shape should still apply since the surrounding geometry is used as a basis for the offset. bug: barycentric transform's depth was inverted. Note: * This isnt added into a menu yet, * This cant be redone since adding a shape key messes up the redo stack. needs fixing for other scripts too. --- source/blender/blenlib/intern/math_geom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index dd773cb00c1..470e5d71a45 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -1404,7 +1404,7 @@ void barycentric_transform(float pt_tar[3], float const pt_src[3], area_tar= sqrtf(area_tri_v3(tri_tar_p1, tri_tar_p2, tri_tar_p3)); area_src= sqrtf(area_tri_v2(tri_xy_src[0], tri_xy_src[1], tri_xy_src[2])); - z_ofs_src= tri_xy_src[0][2] - pt_src_xy[2]; + z_ofs_src= pt_src_xy[2] - tri_xy_src[0][2]; madd_v3_v3v3fl(pt_tar, pt_tar, no_tar, (z_ofs_src / area_src) * area_tar); } -- cgit v1.2.3 From d1f1583c7979369d3fcc91ff25aea1b8152dcce7 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sun, 27 Dec 2009 17:57:24 +0000 Subject: Wrong description in WM_OT_call_menu --- source/blender/windowmanager/intern/wm_operators.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 8a9fb1fa5b5..69d6ef541dc 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1098,7 +1098,7 @@ static void WM_OT_call_menu(wmOperatorType *ot) ot->invoke= wm_call_menu_invoke; - RNA_def_string(ot->srna, "name", "", BKE_ST_MAXNAME, "Name", "Name of the new sequence strip"); + RNA_def_string(ot->srna, "name", "", BKE_ST_MAXNAME, "Name", "Name of the menu"); } /* ************ window / screen operator definitions ************** */ -- cgit v1.2.3 From 280a1d09f6cafa5bd9b117b5b39bf90b2d21bdf0 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sun, 27 Dec 2009 18:09:17 +0000 Subject: Partial fix for [#20166] Snap to grid issues Move gridview (the actual drawn grid size, including adaptation to zoom) to RegionView3D from View3D. This solves the transform increment bug but not the Snap Menu bug (context is not set to the correct rv3d when executing operator from menu). --- source/blender/editors/space_view3d/view3d_draw.c | 14 ++++++------- source/blender/editors/space_view3d/view3d_snap.c | 25 ++++++++++++----------- source/blender/editors/transform/transform.c | 4 ++-- source/blender/makesdna/DNA_view3d_types.h | 9 +++++--- 4 files changed, 28 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index be607d7ea77..2cef7461e85 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -307,7 +307,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u /* Store the smallest drawn grid size units name so users know how big each grid cell is */ if(*grid_unit==NULL) { *grid_unit= bUnit_GetNameDisplay(usys, i); - v3d->gridview= (scalar * unit->scale_length); + rv3d->gridview= (scalar * unit->scale_length); } blend_fac= 1-((GRID_MIN_PX*2)/dx_scalar); @@ -326,15 +326,15 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u short sublines = v3d->gridsubdiv; if(dxgridview*= sublines; + rv3d->gridview*= sublines; dx*= sublines; if(dxgridview*= sublines; + rv3d->gridview*= sublines; dx*= sublines; if(dxgridview*= sublines; + rv3d->gridview*= sublines; dx*=sublines; if(dx(GRID_MIN_PX*10)) { // start blending in - v3d->gridview/= sublines; + rv3d->gridview/= sublines; dx/= sublines; if(dx>(GRID_MIN_PX*10)) { // start blending in - v3d->gridview/= sublines; + rv3d->gridview/= sublines; dx/= sublines; if(dx>(GRID_MIN_PX*10)) { UI_ThemeColor(TH_GRID); @@ -2034,7 +2034,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) v3d->zbuf= FALSE; // needs to be done always, gridview is adjusted in drawgrid() now - v3d->gridview= v3d->grid; + rv3d->gridview= v3d->grid; if(rv3d->view==0 || rv3d->persp!=0) { drawfloor(scene, v3d); diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index 3147abd499b..b56a853d5b7 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -440,12 +440,12 @@ static int snap_sel_to_grid(bContext *C, wmOperator *op) extern float originmat[3][3]; /* XXX object.c */ Object *obedit= CTX_data_edit_object(C); Scene *scene= CTX_data_scene(C); - View3D *v3d= CTX_wm_view3d(C); + RegionView3D *rv3d= CTX_wm_region_data(C); TransVert *tv; float gridf, imat[3][3], bmat[3][3], vec[3]; int a; - gridf= v3d->gridview; + gridf= rv3d->gridview; if(obedit) { tottrans= 0; @@ -463,9 +463,9 @@ static int snap_sel_to_grid(bContext *C, wmOperator *op) VECCOPY(vec, tv->loc); mul_m3_v3(bmat, vec); add_v3_v3v3(vec, vec, obedit->obmat[3]); - vec[0]= v3d->gridview*floor(.5+ vec[0]/gridf); - vec[1]= v3d->gridview*floor(.5+ vec[1]/gridf); - vec[2]= v3d->gridview*floor(.5+ vec[2]/gridf); + vec[0]= gridf*floor(.5+ vec[0]/gridf); + vec[1]= gridf*floor(.5+ vec[1]/gridf); + vec[2]= gridf*floor(.5+ vec[2]/gridf); sub_v3_v3v3(vec, vec, obedit->obmat[3]); mul_m3_v3(imat, vec); @@ -518,9 +518,9 @@ static int snap_sel_to_grid(bContext *C, wmOperator *op) else { ob->recalc |= OB_RECALC_OB; - vec[0]= -ob->obmat[3][0]+v3d->gridview*floor(.5+ ob->obmat[3][0]/gridf); - vec[1]= -ob->obmat[3][1]+v3d->gridview*floor(.5+ ob->obmat[3][1]/gridf); - vec[2]= -ob->obmat[3][2]+v3d->gridview*floor(.5+ ob->obmat[3][2]/gridf); + vec[0]= -ob->obmat[3][0]+gridf*floor(.5+ ob->obmat[3][0]/gridf); + vec[1]= -ob->obmat[3][1]+gridf*floor(.5+ ob->obmat[3][1]/gridf); + vec[2]= -ob->obmat[3][2]+gridf*floor(.5+ ob->obmat[3][2]/gridf); if(ob->parent) { where_is_object(scene, ob); @@ -696,15 +696,16 @@ void VIEW3D_OT_snap_selected_to_cursor(wmOperatorType *ot) static int snap_curs_to_grid(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); + RegionView3D *rv3d= CTX_wm_region_data(C); View3D *v3d= CTX_wm_view3d(C); float gridf, *curs; - gridf= v3d->gridview; + gridf= rv3d->gridview; curs= give_cursor(scene, v3d); - curs[0]= v3d->gridview*floor(.5+curs[0]/gridf); - curs[1]= v3d->gridview*floor(.5+curs[1]/gridf); - curs[2]= v3d->gridview*floor(.5+curs[2]/gridf); + curs[0]= gridf*floor(.5+curs[0]/gridf); + curs[1]= gridf*floor(.5+curs[1]/gridf); + curs[2]= gridf*floor(.5+curs[2]/gridf); WM_event_add_notifier(C, NC_SCENE|ND_TRANSFORM, scene); // hrm diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 40db0f7b272..fa435f29773 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -3083,10 +3083,10 @@ void initTranslation(TransInfo *t) t->ndof.axis = (t->flag & T_2D_EDIT)? 1|2: 1|2|4; if(t->spacetype == SPACE_VIEW3D) { - View3D *v3d = t->view; + RegionView3D *rv3d = t->ar->regiondata; t->snap[0] = 0.0f; - t->snap[1] = v3d->gridview * 1.0f; + t->snap[1] = rv3d->gridview * 1.0f; t->snap[2] = t->snap[1] * 0.1f; } else if(t->spacetype == SPACE_IMAGE) { diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 5326c17688d..1ea060c2eea 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -114,8 +114,9 @@ typedef struct RegionView3D { /* last view */ float lviewquat[4]; short lpersp, lview; - int pad3; + float gridview; + } RegionView3D; /* 3D ViewPort Struct */ @@ -151,8 +152,10 @@ typedef struct View3D { short pivot_last; /* pivot_last is for rotating around the last edited element */ - float lens, grid, gridview, padf, near, far; - float ofs[3]; /* XXX depricated */ + float lens, grid; + float gridview; /* XXX deprecated, now in RegionView3D */ + float padf, near, far; + float ofs[3]; /* XXX deprecated */ float cursor[3]; short gridlines, pad4; -- cgit v1.2.3 From 532b5e7bba1d229600eb0aa48684692cd630cfa6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 27 Dec 2009 20:22:06 +0000 Subject: WIP console text selection, modal selection operator and selection drawing. word wrap and clipboard are not working yet. --- .../blender/editors/space_console/console_draw.c | 212 ++++++++++++++------- .../blender/editors/space_console/console_intern.h | 3 + source/blender/editors/space_console/console_ops.c | 121 ++++++++++++ .../blender/editors/space_console/space_console.c | 3 +- source/blender/makesdna/DNA_space_types.h | 2 + source/blender/makesrna/intern/rna_space.c | 8 + 6 files changed, 284 insertions(+), 65 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_console/console_draw.c b/source/blender/editors/space_console/console_draw.c index 4f225bb8fcb..ab1fc8a5fca 100644 --- a/source/blender/editors/space_console/console_draw.c +++ b/source/blender/editors/space_console/console_draw.c @@ -123,63 +123,120 @@ static void console_report_color(unsigned char *fg, unsigned char *bg, Report *r } } +} +typedef struct ConsoleDrawContext { + int cwidth; + int lheight; + int console_width; + int winx; + int ymin, ymax; + int *xy; // [2] + int *sel; // [2] + int *pos_pick; + int *mval; // [2] + int draw; +} ConsoleDrawContext; + +static void console_draw_sel(int sel[2], int xy[2], int str_len, int cwidth, int console_width, int lheight) +{ + if(sel[0] < str_len && sel[1] > 0) { + int sta = MAX2(sel[0], 0); + int end = MIN2(sel[1], str_len); + { + glEnable(GL_POLYGON_STIPPLE); + glPolygonStipple(stipple_halftone); + glEnable( GL_BLEND ); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glColor4ub(255, 255, 255, 96); + } + glRecti(xy[0]+(cwidth*sta), xy[1]-2 + lheight, xy[0]+(cwidth*end), xy[1]-2); + { + glDisable(GL_POLYGON_STIPPLE); + glDisable( GL_BLEND ); + } + } - + sel[0] -= str_len; + sel[1] -= str_len; } /* return 0 if the last line is off the screen * should be able to use this for any string type */ -static int console_draw_string( char *str, int str_len, - int console_width, int lheight, - unsigned char *fg, unsigned char *bg, - int winx, - int ymin, int ymax, - int *x, int *y, int draw) -{ - int rct_ofs= lheight/4; - int tot_lines = (str_len/console_width)+1; /* total number of lines for wrapping */ - int y_next = (str_len > console_width) ? (*y)+lheight*tot_lines : (*y)+lheight; + +static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len, unsigned char *fg, unsigned char *bg) +{ + int rct_ofs= cdc->lheight/4; + int tot_lines = (str_len/cdc->console_width)+1; /* total number of lines for wrapping */ + int y_next = (str_len > cdc->console_width) ? cdc->xy[1]+cdc->lheight*tot_lines : cdc->xy[1]+cdc->lheight; /* just advance the height */ - if(draw==0) { - *y= y_next; + if(cdc->draw==0) { + if(cdc->pos_pick) { + if((cdc->mval[1] != INT_MAX) && cdc->xy[1] <= cdc->mval[1]) { + if((cdc->xy[1]+cdc->lheight >= cdc->mval[1])) { + int ofs = (int)floor(((float)cdc->mval[0] / (float)cdc->cwidth)); + *cdc->pos_pick += MIN2(ofs, str_len); + } else + *cdc->pos_pick += str_len; + } + + } + + cdc->xy[1]= y_next; return 1; } - else if (y_next-lheight < ymin) { + else if (y_next-cdc->lheight < cdc->ymin) { /* have not reached the drawable area so don't break */ - *y= y_next; + cdc->xy[1]= y_next; return 1; } - if(str_len > console_width) { /* wrap? */ - char *line_stride= str + ((tot_lines-1) * console_width); /* advance to the last line and draw it first */ + if(str_len > cdc->console_width) { /* wrap? */ + char *line_stride= str + ((tot_lines-1) * cdc->console_width); /* advance to the last line and draw it first */ char eol; /* baclup the end of wrapping */ if(bg) { glColor3ub(bg[0], bg[1], bg[2]); - glRecti(0, *y-rct_ofs, winx, (*y+(lheight*tot_lines))+rct_ofs); + glRecti(0, cdc->xy[1]-rct_ofs, cdc->winx, (cdc->xy[1]+(cdc->lheight*tot_lines))+rct_ofs); } glColor3ub(fg[0], fg[1], fg[2]); /* last part needs no clipping */ - BLF_position(*x, *y, 0); (*y) += lheight; + BLF_position(cdc->xy[0], cdc->xy[1], 0); BLF_draw(line_stride); - line_stride -= console_width; + + if(cdc->sel[0] != cdc->sel[1]) { + cdc->sel[0] += str_len - (cdc->console_width % str_len); + cdc->sel[1] += str_len - (cdc->console_width % str_len); + console_draw_sel(cdc->sel, cdc->xy, cdc->console_width % str_len, cdc->cwidth, cdc->console_width, cdc->lheight); + glColor3ub(fg[0], fg[1], fg[2]); + } + + cdc->xy[1] += cdc->lheight; + + line_stride -= cdc->console_width; - for(; line_stride >= str; line_stride -= console_width) { - eol = line_stride[console_width]; - line_stride[console_width]= '\0'; + for(; line_stride >= str; line_stride -= cdc->console_width) { + eol = line_stride[cdc->console_width]; + line_stride[cdc->console_width]= '\0'; - BLF_position(*x, *y, 0); (*y) += lheight; + BLF_position(cdc->xy[0], cdc->xy[1], 0); BLF_draw(line_stride); - line_stride[console_width] = eol; /* restore */ + if(cdc->sel[0] != cdc->sel[1]) { + console_draw_sel(cdc->sel, cdc->xy, cdc->console_width, cdc->cwidth, cdc->console_width, cdc->lheight); + glColor3ub(fg[0], fg[1], fg[2]); + } + + cdc->xy[1] += cdc->lheight; + + line_stride[cdc->console_width] = eol; /* restore */ /* check if were out of view bounds */ - if(*y > ymax) + if(cdc->xy[1] > cdc->ymax) return 0; } } @@ -187,15 +244,20 @@ static int console_draw_string( char *str, int str_len, if(bg) { glColor3ub(bg[0], bg[1], bg[2]); - glRecti(0, *y-rct_ofs, winx, *y+lheight-rct_ofs); + glRecti(0, cdc->xy[1]-rct_ofs, cdc->winx, cdc->xy[1]+cdc->lheight-rct_ofs); } glColor3ub(fg[0], fg[1], fg[2]); - BLF_position(*x, *y, 0); (*y) += lheight; + BLF_position(cdc->xy[0], cdc->xy[1], 0); BLF_draw(str); - if(*y > ymax) + if(cdc->sel[0] != cdc->sel[1]) + console_draw_sel(cdc->sel, cdc->xy, str_len, cdc->cwidth, cdc->console_width, cdc->lheight); + + cdc->xy[1] += cdc->lheight; + + if(cdc->xy[1] > cdc->ymax) return 0; } @@ -205,32 +267,54 @@ static int console_draw_string( char *str, int str_len, #define CONSOLE_DRAW_MARGIN 4 #define CONSOLE_DRAW_SCROLL 16 -static int console_text_main__internal(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int draw, int mouse_y, void **mouse_pick) +static int console_text_main__internal(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int draw, int mval[2], void **mouse_pick, int *pos_pick) { View2D *v2d= &ar->v2d; ConsoleLine *cl= sc->history.last; + ConsoleDrawContext cdc; int x_orig=CONSOLE_DRAW_MARGIN, y_orig=CONSOLE_DRAW_MARGIN; - int x,y, y_prev; + int xy[2], y_prev; int cwidth; int console_width; /* number of characters that fit into the width of the console (fixed width) */ + int sel[2]= {-1, -1}; /* defaults disabled */ unsigned char fg[3]; - + console_font_begin(sc); cwidth = BLF_fixed_width(); console_width= (ar->winx - (CONSOLE_DRAW_SCROLL + CONSOLE_DRAW_MARGIN*2) )/cwidth; if (console_width < 8) console_width= 8; - x= x_orig; y= y_orig; + xy[0]= x_orig; xy[1]= y_orig; - if(mouse_y != INT_MAX) - mouse_y += (v2d->cur.ymin+CONSOLE_DRAW_MARGIN); - + if(mval[1] != INT_MAX) + mval[1] += (v2d->cur.ymin + CONSOLE_DRAW_MARGIN); + + if(pos_pick) + *pos_pick = 0; + + /* constants for the sequencer context */ + cdc.cwidth= cwidth; + cdc.lheight= sc->lheight; + cdc.console_width= console_width; + cdc.winx= ar->winx-(CONSOLE_DRAW_MARGIN+CONSOLE_DRAW_SCROLL); + cdc.ymin= v2d->cur.ymin; + cdc.ymax= v2d->cur.ymax; + cdc.xy= xy; + cdc.sel= sel; + cdc.pos_pick= pos_pick; + cdc.mval= mval; + cdc.draw= draw; if(sc->type==CONSOLE_TYPE_PYTHON) { int prompt_len; + + if(sc->sel_start != sc->sel_end) { + sel[0]= sc->sel_start; + sel[1]= sc->sel_end; + } /* text */ if(draw) { @@ -240,42 +324,36 @@ static int console_text_main__internal(struct SpaceConsole *sc, struct ARegion * /* command line */ if(prompt_len) { - BLF_position(x, y, 0); x += cwidth * prompt_len; + BLF_position(xy[0], xy[1], 0); xy[0] += cwidth * prompt_len; BLF_draw(sc->prompt); } - BLF_position(x, y, 0); + BLF_position(xy[0], xy[1], 0); BLF_draw(cl->line); /* cursor */ console_line_color(fg, CONSOLE_LINE_ERROR); /* lazy */ glColor3ub(fg[0], fg[1], fg[2]); - glRecti(x+(cwidth*cl->cursor) -1, y-2, x+(cwidth*cl->cursor) +1, y+sc->lheight-2); + glRecti(xy[0]+(cwidth*cl->cursor) -1, xy[1]-2, xy[0]+(cwidth*cl->cursor) +1, xy[1]+sc->lheight-2); - x= x_orig; /* remove prompt offset */ + xy[0]= x_orig; /* remove prompt offset */ } - y += sc->lheight; + xy[1] += sc->lheight; for(cl= sc->scrollback.last; cl; cl= cl->prev) { - y_prev= y; + y_prev= xy[1]; if(draw) console_line_color(fg, cl->type); - if(!console_draw_string( cl->line, cl->len, - console_width, sc->lheight, - fg, NULL, - ar->winx-(CONSOLE_DRAW_MARGIN+CONSOLE_DRAW_SCROLL), - v2d->cur.ymin, v2d->cur.ymax, - &x, &y, draw)) - { + if(!console_draw_string(&cdc, cl->line, cl->len, fg, NULL)) { /* when drawing, if we pass v2d->cur.ymax, then quit */ if(draw) { break; /* past the y limits */ } } - if((mouse_y != INT_MAX) && (mouse_y >= y_prev && mouse_y <= y)) { + if((mval[1] != INT_MAX) && (mval[1] >= y_prev && mval[1] <= xy[1])) { *mouse_pick= (void *)cl; break; } @@ -298,24 +376,18 @@ static int console_text_main__internal(struct SpaceConsole *sc, struct ARegion * for(report=reports->list.last; report; report=report->prev) { if(report->type & report_mask) { - y_prev= y; + y_prev= xy[1]; if(draw) console_report_color(fg, bg, report, bool); - if(!console_draw_string( report->message, report->len, - console_width, sc->lheight, - fg, bg, - ar->winx-(CONSOLE_DRAW_MARGIN+CONSOLE_DRAW_SCROLL), - v2d->cur.ymin, v2d->cur.ymax, - &x, &y, draw)) - { + if(!console_draw_string(&cdc, report->message, report->len, fg, bg)) { /* when drawing, if we pass v2d->cur.ymax, then quit */ if(draw) { break; /* past the y limits */ } } - if((mouse_y != INT_MAX) && (mouse_y >= y_prev && mouse_y <= y)) { + if((mval[1] != INT_MAX) && (mval[1] >= y_prev && mval[1] <= xy[1])) { *mouse_pick= (void *)report; break; } @@ -324,25 +396,37 @@ static int console_text_main__internal(struct SpaceConsole *sc, struct ARegion * } } } - y += sc->lheight*2; + xy[1] += sc->lheight*2; - return y-y_orig; + return xy[1]-y_orig; } void console_text_main(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports) { - console_text_main__internal(sc, ar, reports, 1, INT_MAX, NULL); + int mval[2] = {INT_MAX, INT_MAX}; + console_text_main__internal(sc, ar, reports, 1, mval, NULL, NULL); } int console_text_height(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports) { - return console_text_main__internal(sc, ar, reports, 0, INT_MAX, NULL); + int mval[2] = {INT_MAX, INT_MAX}; + return console_text_main__internal(sc, ar, reports, 0, mval, NULL, NULL); } void *console_text_pick(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int mouse_y) { + int mval[2] = {0, mouse_y}; void *mouse_pick= NULL; - console_text_main__internal(sc, ar, reports, 0, mouse_y, &mouse_pick); + console_text_main__internal(sc, ar, reports, 0, mval, &mouse_pick, NULL); return (void *)mouse_pick; } + +// XXX - breaks with line wrap +int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int mval[2]) +{ + int pos_pick= 0; + void *mouse_pick= NULL; + console_text_main__internal(sc, ar, reports, 0, mval, &mouse_pick, &pos_pick); + return pos_pick; +} diff --git a/source/blender/editors/space_console/console_intern.h b/source/blender/editors/space_console/console_intern.h index 889ed2dae81..92ab3eb3d0c 100644 --- a/source/blender/editors/space_console/console_intern.h +++ b/source/blender/editors/space_console/console_intern.h @@ -39,6 +39,7 @@ struct bContext; void console_text_main(struct SpaceConsole *sc, struct ARegion *ar, struct ReportList *reports); int console_text_height(struct SpaceConsole *sc, struct ARegion *ar, struct ReportList *reports); /* needed to calculate the scrollbar */ void *console_text_pick(struct SpaceConsole *sc, struct ARegion *ar, struct ReportList *reports, int mouse_y); /* needed for selection */ +int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int mval[2]); /* console_ops.c */ void console_history_free(SpaceConsole *sc, ConsoleLine *cl); @@ -63,6 +64,8 @@ void CONSOLE_OT_history_cycle(struct wmOperatorType *ot); void CONSOLE_OT_copy(struct wmOperatorType *ot); void CONSOLE_OT_paste(struct wmOperatorType *ot); void CONSOLE_OT_zoom(struct wmOperatorType *ot); +void CONSOLE_OT_select_set(struct wmOperatorType *ot); + /* console_report.c */ diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index 89c058ad7f3..e615ae8f140 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -675,6 +675,7 @@ void CONSOLE_OT_scrollback_append(wmOperatorType *ot) static int copy_exec(bContext *C, wmOperator *op) { SpaceConsole *sc= CTX_wm_space_console(C); + int buf_len; DynStr *buf_dyn= BLI_dynstr_new(); char *buf_str; @@ -687,8 +688,16 @@ static int copy_exec(bContext *C, wmOperator *op) } buf_str= BLI_dynstr_get_cstring(buf_dyn); + buf_len= BLI_dynstr_get_len(buf_dyn); BLI_dynstr_free(buf_dyn); + /* hack for selection */ +#if 0 + if(sc->sel_start != sc->sel_end) { + buf_str[buf_len - sc->sel_start]= '\0'; + WM_clipboard_text_set(buf_str+(buf_len - sc->sel_end), 0); + } +#endif WM_clipboard_text_set(buf_str, 0); MEM_freeN(buf_str); @@ -772,3 +781,115 @@ void CONSOLE_OT_zoom(wmOperatorType *ot) /* properties */ RNA_def_int(ot->srna, "delta", 0, 0, INT_MAX, "Delta", "Scale the view font.", 0, 1000); } + +typedef struct SetConsoleCursor { + int sel_old[2]; + int sel_init; +} SetConsoleCursor; + +static void set_cursor_to_pos(SpaceConsole *sc, ARegion *ar, SetConsoleCursor *scu, int mval[2], int sel) +{ + int pos; + pos= console_char_pick(sc, ar, NULL, mval); + + if(scu->sel_init == INT_MAX) { + scu->sel_init= pos; + sc->sel_start = sc->sel_end = pos; + return; + } + + if (pos < scu->sel_init) { + sc->sel_start = pos; + sc->sel_end = scu->sel_init; + } + else if (pos > sc->sel_start) { + sc->sel_start = scu->sel_init; + sc->sel_end = pos; + } + else { + sc->sel_start = sc->sel_end = pos; + } +} + +static void console_modal_select_apply(bContext *C, wmOperator *op, wmEvent *event) +{ + SpaceConsole *sc= CTX_wm_space_console(C); + ARegion *ar= CTX_wm_region(C); + SetConsoleCursor *scu= op->customdata; + int mval[2] = {event->mval[0], event->mval[1]}; + + set_cursor_to_pos(sc, ar, scu, mval, TRUE); + ED_area_tag_redraw(CTX_wm_area(C)); +} + +static void set_cursor_exit(bContext *C, wmOperator *op) +{ + SpaceConsole *sc= CTX_wm_space_console(C); + SetConsoleCursor *scu= op->customdata; + + /* + if(txt_has_sel(text)) { + buffer = txt_sel_to_buf(text); + WM_clipboard_text_set(buffer, 1); + MEM_freeN(buffer); + }*/ + + MEM_freeN(scu); +} + +static int console_modal_select_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + SpaceConsole *sc= CTX_wm_space_console(C); + ARegion *ar= CTX_wm_region(C); + SetConsoleCursor *scu; + + op->customdata= MEM_callocN(sizeof(SetConsoleCursor), "SetConsoleCursor"); + scu= op->customdata; + + scu->sel_old[0]= sc->sel_start; + scu->sel_old[1]= sc->sel_end; + + scu->sel_init = INT_MAX; + + WM_event_add_modal_handler(C, op); + + console_modal_select_apply(C, op, event); + + return OPERATOR_RUNNING_MODAL; +} + +static int console_modal_select(bContext *C, wmOperator *op, wmEvent *event) +{ + switch(event->type) { + case LEFTMOUSE: + case MIDDLEMOUSE: + case RIGHTMOUSE: + set_cursor_exit(C, op); + return OPERATOR_FINISHED; + case MOUSEMOVE: + console_modal_select_apply(C, op, event); + break; + } + + return OPERATOR_RUNNING_MODAL; +} + +static int console_modal_select_cancel(bContext *C, wmOperator *op) +{ + set_cursor_exit(C, op); + return OPERATOR_FINISHED; +} + +void CONSOLE_OT_select_set(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Set Selection"; + ot->idname= "CONSOLE_OT_select_set"; + ot->description= "Set the console selection."; + + /* api callbacks */ + ot->invoke= console_modal_select_invoke; + ot->modal= console_modal_select; + ot->cancel= console_modal_select_cancel; + ot->poll= console_poll; +} diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c index 7d23421c5cf..f4058f4eefb 100644 --- a/source/blender/editors/space_console/space_console.c +++ b/source/blender/editors/space_console/space_console.c @@ -208,7 +208,7 @@ void console_operatortypes(void) WM_operatortype_append(CONSOLE_OT_copy); WM_operatortype_append(CONSOLE_OT_paste); WM_operatortype_append(CONSOLE_OT_zoom); - + WM_operatortype_append(CONSOLE_OT_select_set); /* console_report.c */ WM_operatortype_append(CONSOLE_OT_select_pick); @@ -287,6 +287,7 @@ void console_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "CONSOLE_OT_select_set", LEFTMOUSE, KM_PRESS, 0, 0); RNA_string_set(WM_keymap_add_item(keymap, "CONSOLE_OT_insert", TABKEY, KM_PRESS, 0, 0)->ptr, "text", " "); /* fake tabs */ WM_keymap_add_item(keymap, "CONSOLE_OT_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last! diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 72d57df555c..e06aa899c49 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -510,6 +510,8 @@ typedef struct SpaceConsole { char prompt[256]; char language[32]; /* multiple consoles are possible, not just python */ + int sel_start; + int sel_end; } SpaceConsole; typedef struct SpaceUserPref { diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 2fd0bf1810a..7ab01d5ef99 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1572,7 +1572,15 @@ static void rna_def_space_console(BlenderRNA *brna) RNA_def_property_enum_items(prop, console_type_items); RNA_def_property_ui_text(prop, "Type", "Console type."); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CONSOLE, NULL); + + prop= RNA_def_property(srna, "selection_start", PROP_INT, PROP_UNSIGNED); /* copied from text editor */ + RNA_def_property_int_sdna(prop, NULL, "sel_start"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CONSOLE, NULL); + prop= RNA_def_property(srna, "selection_end", PROP_INT, PROP_UNSIGNED); /* copied from text editor */ + RNA_def_property_int_sdna(prop, NULL, "sel_end"); + RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CONSOLE, NULL); + /* reporting display */ prop= RNA_def_property(srna, "show_report_debug", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "rpt_mask", CONSOLE_RPT_DEBUG); -- cgit v1.2.3 From 351f5d1837d3660d1f9fb8921b60513787737442 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 27 Dec 2009 23:29:34 +0000 Subject: - loading missing files didnt give any warning - shape key transfer poll function --- source/blender/windowmanager/intern/wm_files.c | 4 ++-- source/blender/windowmanager/intern/wm_operators.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 87e4048971b..05fdb500d9e 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -286,8 +286,8 @@ void WM_read_file(bContext *C, char *name, ReportList *reports) else if(retval==1) BKE_write_undo(C, "Import file"); else if(retval == -1) { - if(reports && reports->list.first == NULL) - BKE_report(reports, RPT_ERROR, "Cannot read file."); + if(reports) + BKE_reportf(reports, RPT_ERROR, "Can't read file \"%s\".", name); } } diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 69d6ef541dc..db79fcd70b9 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1160,7 +1160,7 @@ static int recentfile_exec(bContext *C, wmOperator *op) } } } - return 0; + return OPERATOR_FINISHED; } static int wm_recentfile_invoke(bContext *C, wmOperator *op, wmEvent *event) -- cgit v1.2.3 From 310d41733402ffcd9c8ff1eda2a4ab7810922167 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 27 Dec 2009 23:37:13 +0000 Subject: Curve/Nurbs/Font Animation Bugfixes: * NURBS and Font animation data now appear in the animation editors. * Fixed depsgraph tagging code for determining if the AnimData attached to object data blocks (i.e. animation for curve or lamp data) needs to be tagged for updates on frame changes. This means that animating curve settings now works. --- source/blender/blenkernel/intern/depsgraph.c | 7 +++++++ source/blender/editors/animation/anim_channels_defines.c | 13 ++++++++++++- source/blender/editors/animation/anim_filter.c | 10 +++++++++- source/blender/editors/animation/keyframes_draw.c | 2 ++ source/blender/editors/animation/keyframes_edit.c | 2 ++ 5 files changed, 32 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 8535bfc6d0c..aaaf54b3225 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -65,6 +65,7 @@ #include "BLI_ghash.h" +#include "BKE_animsys.h" #include "BKE_action.h" #include "BKE_effect.h" #include "BKE_global.h" @@ -2027,6 +2028,7 @@ static void dag_object_time_update_flags(Object *ob) if((ob->pose) && (ob->pose->flag & POSE_CONSTRAINTS_TIMEDEPEND)) ob->recalc |= OB_RECALC_DATA; { + AnimData *adt= BKE_animdata_from_id((ID *)ob->data); Mesh *me; Curve *cu; Lattice *lt; @@ -2068,6 +2070,11 @@ static void dag_object_time_update_flags(Object *ob) if(ob->transflag & OB_DUPLI) ob->recalc |= OB_RECALC_DATA; break; } + + if(animdata_use_time(adt)) { + ob->recalc |= OB_RECALC_DATA; + adt->recalc |= ADT_RECALC_ANIM; + } if(ob->particlesystem.first) { ParticleSystem *psys= ob->particlesystem.first; diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 0a71f79f132..5398238a43b 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -66,6 +66,7 @@ #include "BKE_animsys.h" #include "BKE_action.h" +#include "BKE_curve.h" #include "BKE_depsgraph.h" #include "BKE_fcurve.h" #include "BKE_key.h" @@ -1303,7 +1304,17 @@ static bAnimChannelType ACF_DSCAM= // TODO: just get this from RNA? static int acf_dscur_icon(bAnimListElem *ale) { - return ICON_CURVE_DATA; + Curve *cu= (Curve *)ale->data; + short obtype= curve_type(cu); + + switch (obtype) { + case OB_FONT: + return ICON_FONT_DATA; + case OB_SURF: + return ICON_SURFACE_DATA; + default: + return ICON_CURVE_DATA; + } } /* get the appropriate flag(s) for the setting when it is valid */ diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 89f9511688f..392f435d017 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1323,6 +1323,8 @@ static int animdata_filter_dopesheet_obdata (ListBase *anim_data, bDopeSheet *ad } break; case OB_CURVE: /* ------- Curve ---------- */ + case OB_SURF: /* ------- Nurbs Surface ---------- */ + case OB_FONT: /* ------- Text Curve ---------- */ { Curve *cu= (Curve *)ob->data; @@ -1540,6 +1542,8 @@ static int animdata_filter_dopesheet_ob (ListBase *anim_data, bDopeSheet *ads, B } break; case OB_CURVE: /* ------- Curve ---------- */ + case OB_SURF: /* ------- Nurbs Surface ---------- */ + case OB_FONT: /* ------- Text Curve ---------- */ { Curve *cu= (Curve *)ob->data; @@ -1962,6 +1966,8 @@ static int animdata_filter_dopesheet (ListBase *anim_data, bAnimContext *ac, bDo } break; case OB_CURVE: /* ------- Curve ---------- */ + case OB_SURF: /* ------- Nurbs Surface ---------- */ + case OB_FONT: /* ------- Text Curve ---------- */ { Curve *cu= (Curve *)ob->data; dataOk= 0; @@ -2082,7 +2088,9 @@ static int animdata_filter_dopesheet (ListBase *anim_data, bAnimContext *ac, bDo dataOk= ANIMDATA_HAS_KEYS(la); } break; - case OB_CURVE: /* -------- Curve ---------- */ + case OB_CURVE: /* ------- Curve ---------- */ + case OB_SURF: /* ------- Nurbs Surface ---------- */ + case OB_FONT: /* ------- Text Curve ---------- */ { Curve *cu= (Curve *)ob->data; dataOk= ANIMDATA_HAS_KEYS(cu); diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index b19ee5d1dab..631cec87c96 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -797,6 +797,8 @@ void ob_to_keylist(bDopeSheet *ads, Object *ob, DLRBT_Tree *keys, DLRBT_Tree *bl } break; case OB_CURVE: /* ------- Curve ---------- */ + case OB_SURF: /* ------- Nurbs Surface ---------- */ + case OB_FONT: /* ------- Text Curve ---------- */ { Curve *cu= (Curve *)ob->data; diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index 413f01590ed..039041d1efd 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -254,6 +254,8 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez } break; case OB_CURVE: /* ------- Curve ---------- */ + case OB_SURF: /* ------- Nurbs Surface ---------- */ + case OB_FONT: /* ------- Text Curve ---------- */ { Curve *cu= (Curve *)ob->data; -- cgit v1.2.3 From ff31d2d65cd6ab8bff2dc45939a8e7a2dab57c86 Mon Sep 17 00:00:00 2001 From: Jens Ole Wund Date: Mon, 28 Dec 2009 00:07:24 +0000 Subject: Try to get soft body to curve working --- source/blender/blenkernel/intern/softbody.c | 14 +++++++++-- source/blender/editors/space_view3d/drawobject.c | 2 +- source/blender/makesrna/intern/rna_object_force.c | 29 +++++++++++++++++++++++ 3 files changed, 42 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c index f53700976fd..735c57ea0ce 100644 --- a/source/blender/blenkernel/intern/softbody.c +++ b/source/blender/blenkernel/intern/softbody.c @@ -3608,7 +3608,7 @@ static void softbody_to_object(Object *ob, float (*vertexCos)[3], int numVerts, if(sb){ BodyPoint *bp= sb->bpoint; int a; - if(sb->solverflags & SBSO_MONITOR ||sb->solverflags & SBSO_ESTIMATEIPO){SB_estimate_transform(ob,sb->lcom,sb->lrot,sb->lscale);} + if(sb->solverflags & SBSO_ESTIMATEIPO){SB_estimate_transform(ob,sb->lcom,sb->lrot,sb->lscale);} /* inverse matrix is not uptodate... */ invert_m4_m4(ob->imat, ob->obmat); @@ -3836,9 +3836,19 @@ static void softbody_reset(Object *ob, SoftBody *sb, float (*vertexCos)[3], int free_scratch(sb); /* clear if any */ sb_new_scratch(sb); /* make a new */ sb->scratch->needstobuildcollider=1; + zero_v3(sb->lcom); + unit_m3(sb->lrot); + unit_m3(sb->lscale); + + /* copy some info to scratch */ - if (1) reference_to_scratch(ob); /* wa only need that if we want to reconstruct IPO */ + /* we only need that if we want to reconstruct IPO */ + if(1) { + reference_to_scratch(ob); + SB_estimate_transform(ob,NULL,NULL,NULL); + SB_estimate_transform(ob,NULL,NULL,NULL); + } switch(ob->type) { case OB_MESH: if (ob->softflag & OB_SB_FACECOLL) mesh_faces_to_scratch(ob); diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 8f20b53c296..c689b4d338f 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5909,7 +5909,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) SoftBody *sb = 0; float tipw = 0.5f, tiph = 0.5f,drawsize = 4.0f; if ((sb= ob->soft)){ - if(sb->solverflags & SBSO_MONITOR ||sb->solverflags & SBSO_ESTIMATEIPO){ + if(sb->solverflags & SBSO_ESTIMATEIPO){ wmLoadMatrix(rv3d->viewmat); copy_m3_m3(msc,sb->lscale); diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index 67c7a9aa078..f4ff066f2b4 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -1381,6 +1381,8 @@ static void rna_def_softbody(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + int matrix_dimsize[]= {3, 3}; + static EnumPropertyItem collision_type_items[] = { {SBC_MODE_MANUAL, "MANUAL", 0, "Manual", "Manual adjust"}, @@ -1586,6 +1588,33 @@ static void rna_def_softbody(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "solverflags", SBSO_MONITOR); RNA_def_property_ui_text(prop, "Print Performance to Console", "Turn on SB diagnose console prints"); + prop= RNA_def_property(srna, "estimate_matrix", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "solverflags", SBSO_ESTIMATEIPO); + RNA_def_property_ui_text(prop, "Estimate matrix", "esimate matrix .. split to COM , ROT ,SCALE "); + + + /***********************************************************************************/ + /* these are not exactly settings, but reading calculated results*/ + /* but i did not want to start a new property struct */ + /* so rather rename this from SoftBodySettings to SoftBody */ + /* translation */ + prop= RNA_def_property(srna, "lcom", PROP_FLOAT, PROP_TRANSLATION); + RNA_def_property_float_sdna(prop, NULL, "lcom"); + RNA_def_property_ui_text(prop, "Center of mass", "Location of Center of mass."); + + /* matrix */ + prop= RNA_def_property(srna, "lrot", PROP_FLOAT, PROP_MATRIX); + RNA_def_property_float_sdna(prop, NULL, "lrot"); + RNA_def_property_multi_array(prop, 2, matrix_dimsize); + RNA_def_property_ui_text(prop, "Rot Matrix", "Estimated rotation matrix."); + + prop= RNA_def_property(srna, "lscale", PROP_FLOAT, PROP_MATRIX); + RNA_def_property_float_sdna(prop, NULL, "lscale"); + RNA_def_property_multi_array(prop, 2, matrix_dimsize); + RNA_def_property_ui_text(prop, "Scale Matrix", "Estimated scale matrix."); + /***********************************************************************************/ + + /* Flags */ prop= RNA_def_property(srna, "use_goal", PROP_BOOLEAN, PROP_NONE); -- cgit v1.2.3 From be55097353069b56a2726ebfe87bb2dd0a4b46a6 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 28 Dec 2009 00:52:31 +0000 Subject: Mesh Animation + Depsgraph Tweaks: * Mesh data/settings can now be animated. It is not recommended that geometry be animated directly, but other settings such as autosmooth, etc. can be... * Code cleanups for depsgraph, making sure that drivers get included for all object data types. --- source/blender/blenkernel/intern/anim_sys.c | 4 +- source/blender/blenkernel/intern/depsgraph.c | 94 +++++++++++++--------- source/blender/blenkernel/intern/mesh.c | 7 +- source/blender/blenkernel/intern/object.c | 6 +- .../editors/animation/anim_channels_defines.c | 74 +++++++++++++++++ .../blender/editors/animation/anim_channels_edit.c | 5 ++ source/blender/editors/animation/anim_filter.c | 57 +++++++++++++ source/blender/editors/animation/keyframes_draw.c | 9 +++ source/blender/editors/animation/keyframes_edit.c | 11 +++ source/blender/editors/include/ED_anim_api.h | 2 + .../editors/interface/interface_templates.c | 2 + source/blender/makesdna/DNA_action_types.h | 11 +-- source/blender/makesdna/DNA_mesh_types.h | 5 +- source/blender/makesrna/intern/rna_action.c | 8 +- source/blender/makesrna/intern/rna_mesh.c | 3 +- 15 files changed, 246 insertions(+), 52 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index a6f733708c7..4f96b031daa 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -72,7 +72,7 @@ static short id_has_animdata (ID *id) switch (GS(id->name)) { /* has AnimData */ case ID_OB: - case ID_MB: case ID_CU: case ID_AR: + case ID_ME: case ID_MB: case ID_CU: case ID_AR: case ID_KE: case ID_PA: case ID_MA: case ID_TE: case ID_NT: @@ -1774,7 +1774,7 @@ void BKE_animsys_evaluate_all_animation (Main *main, float ctime) EVAL_ANIM_IDS(main->armature.first, ADT_RECALC_ANIM); /* meshes */ - // TODO... + EVAL_ANIM_IDS(main->mesh.first, ADT_RECALC_ANIM); /* particles */ EVAL_ANIM_IDS(main->particle.first, ADT_RECALC_ANIM); diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index aaaf54b3225..2f08abd82b3 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -491,22 +491,6 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O /* inverted relation, so addtoroot shouldn't be set to zero */ } - - if (ob->type==OB_CAMERA) { - Camera *cam = (Camera *)ob->data; - if (cam->adt) - dag_add_driver_relation(cam->adt, dag, node, 1); - if (cam->dof_ob) { - node2 = dag_get_node(dag, cam->dof_ob); - dag_add_relation(dag,node2,node,DAG_RL_OB_OB, "Camera DoF"); - } - } - if (ob->type==OB_LAMP) { - Lamp *la = (Lamp *)ob->data; - if (la->adt) - dag_add_driver_relation(la->adt, dag, node, 1); - } - if (ob->transflag & OB_DUPLI) { if((ob->transflag & OB_DUPLIGROUP) && ob->dup_group) { GroupObject *go; @@ -521,38 +505,67 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O } /* softbody collision */ - if((ob->type==OB_MESH) || (ob->type==OB_CURVE) || (ob->type==OB_LATTICE)) + if ((ob->type==OB_MESH) || (ob->type==OB_CURVE) || (ob->type==OB_LATTICE)) { if(modifiers_isSoftbodyEnabled(ob) || modifiers_isClothEnabled(ob) || ob->particlesystem.first) dag_add_collision_field_relation(dag, scene, ob, node); /* TODO: use effectorweight->group */ - - if (ob->type==OB_MBALL) { - Object *mom= find_basis_mball(scene, ob); - if(mom!=ob) { - node2 = dag_get_node(dag, mom); - dag_add_relation(dag,node,node2,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Metaball"); // mom depends on children! - } } - else if (ob->type==OB_CURVE) { - Curve *cu= ob->data; - if(cu->bevobj) { - node2 = dag_get_node(dag, cu->bevobj); - dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Curve Bevel"); + + /* object data drivers */ + if (ob->data) { + AnimData *adt= BKE_animdata_from_id((ID *)ob->data); + if (adt) + dag_add_driver_relation(adt, dag, node, 1); + } + + /* object type/data relationships */ + switch (ob->type) { + case OB_CAMERA: + { + Camera *cam = (Camera *)ob->data; + + if (cam->dof_ob) { + node2 = dag_get_node(dag, cam->dof_ob); + dag_add_relation(dag,node2,node,DAG_RL_OB_OB, "Camera DoF"); + } } - if(cu->taperobj) { - node2 = dag_get_node(dag, cu->taperobj); - dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Curve Taper"); + break; + case OB_MBALL: + { + Object *mom= find_basis_mball(scene, ob); + + if(mom!=ob) { + node2 = dag_get_node(dag, mom); + dag_add_relation(dag,node,node2,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Metaball"); // mom depends on children! + } } - if (cu->adt) - dag_add_driver_relation(cu->adt, dag, node, 1); - } - else if(ob->type==OB_FONT) { - Curve *cu= ob->data; - if(cu->textoncurve) { - node2 = dag_get_node(dag, cu->textoncurve); - dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Texture On Curve"); + break; + case OB_CURVE: + { + Curve *cu= ob->data; + + if(cu->bevobj) { + node2 = dag_get_node(dag, cu->bevobj); + dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Curve Bevel"); + } + if(cu->taperobj) { + node2 = dag_get_node(dag, cu->taperobj); + dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Curve Taper"); + } + } + break; + case OB_FONT: + { + Curve *cu= ob->data; + + if(cu->textoncurve) { + node2 = dag_get_node(dag, cu->textoncurve); + dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Texture On Curve"); + } } + break; } + /* particles */ psys= ob->particlesystem.first; if(psys) { GroupObject *go; @@ -624,6 +637,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O } } + /* object constraints */ for (con = ob->constraints.first; con; con=con->next) { bConstraintTypeInfo *cti= constraint_get_typeinfo(con); ListBase targets = {NULL, NULL}; diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index d5c597b802c..0b48d5bd0ad 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -143,7 +143,12 @@ void free_mesh(Mesh *me) CustomData_free(&me->vdata, me->totvert); CustomData_free(&me->edata, me->totedge); CustomData_free(&me->fdata, me->totface); - + + if(me->adt) { + BKE_free_animdata(&me->id); + me->adt= NULL; + } + if(me->mat) MEM_freeN(me->mat); if(me->bb) MEM_freeN(me->bb); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 676ab081533..06ae9874180 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2396,7 +2396,11 @@ void object_handle_update(Scene *scene, Object *ob) /* includes all keys and modifiers */ if(ob->type==OB_MESH) { EditMesh *em = BKE_mesh_get_editmesh(ob->data); - + + /* evaluate drivers */ + // XXX: should we push this to derivedmesh instead? + BKE_animsys_evaluate_animdata(data_id, adt, ctime, ADT_RECALC_DRIVERS); + // here was vieweditdatamask? XXX if(ob->mode & OB_MODE_EDIT) { makeDerivedMesh(scene, ob, em, CD_MASK_BAREMESH); diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 5398238a43b..aa0fcab3e36 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -53,6 +53,7 @@ #include "DNA_constraint_types.h" #include "DNA_key_types.h" #include "DNA_lamp_types.h" +#include "DNA_mesh_types.h" #include "DNA_material_types.h" #include "DNA_meta_types.h" #include "DNA_node_types.h" @@ -1820,6 +1821,78 @@ static bAnimChannelType ACF_DSNTREE= acf_dsntree_setting_ptr /* pointer for setting */ }; +/* Mesh Expander ------------------------------------------- */ + +// TODO: just get this from RNA? +static int acf_dsmesh_icon(bAnimListElem *ale) +{ + return ICON_MESH_DATA; +} + +/* get the appropriate flag(s) for the setting when it is valid */ +static int acf_dsmesh_setting_flag(int setting, short *neg) +{ + /* clear extra return data first */ + *neg= 0; + + switch (setting) { + case ACHANNEL_SETTING_EXPAND: /* expanded */ + return ME_DS_EXPAND; + + case ACHANNEL_SETTING_MUTE: /* mute (only in NLA) */ + return ADT_NLA_EVAL_OFF; + + case ACHANNEL_SETTING_VISIBLE: /* visible (only in Graph Editor) */ + *neg= 1; + return ADT_CURVES_NOT_VISIBLE; + + case ACHANNEL_SETTING_SELECT: /* selected */ + return ADT_UI_SELECTED; + + default: /* unsupported */ + return 0; + } +} + +/* get pointer to the setting */ +static void *acf_dsmesh_setting_ptr(bAnimListElem *ale, int setting, short *type) +{ + Mesh *me= (Mesh *)ale->data; + + /* clear extra return data first */ + *type= 0; + + switch (setting) { + case ACHANNEL_SETTING_EXPAND: /* expanded */ + GET_ACF_FLAG_PTR(me->flag); + + case ACHANNEL_SETTING_SELECT: /* selected */ + case ACHANNEL_SETTING_MUTE: /* muted (for NLA only) */ + case ACHANNEL_SETTING_VISIBLE: /* visible (for Graph Editor only) */ + if (me->adt) + GET_ACF_FLAG_PTR(me->adt->flag) + else + return NULL; + + default: /* unsupported */ + return NULL; + } +} + +/* node tree expander type define */ +static bAnimChannelType ACF_DSMESH= +{ + acf_generic_dataexpand_backdrop,/* backdrop */ + acf_generic_indention_1, /* indent level */ // XXX this only works for compositing + acf_generic_basic_offset, /* offset */ + + acf_generic_idblock_name, /* name */ + acf_dsmesh_icon, /* icon */ + + acf_generic_dataexpand_setting_valid, /* has setting */ + acf_dsmesh_setting_flag, /* flag for setting */ + acf_dsmesh_setting_ptr /* pointer for setting */ +}; /* ShapeKey Entry ------------------------------------------- */ @@ -2071,6 +2144,7 @@ void ANIM_init_channel_typeinfo_data (void) animchannelTypeInfo[type++]= &ACF_DSPART; /* Particle Channel */ animchannelTypeInfo[type++]= &ACF_DSMBALL; /* MetaBall Channel */ animchannelTypeInfo[type++]= &ACF_DSARM; /* Armature Channel */ + animchannelTypeInfo[type++]= &ACF_DSMESH; /* Mesh Channel */ animchannelTypeInfo[type++]= &ACF_SHAPEKEY; /* ShapeKey */ diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 0c77c2b0010..ebb3136d530 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -142,6 +142,7 @@ void ANIM_set_active_channel (bAnimContext *ac, void *data, short datatype, int case ANIMTYPE_DSPART: case ANIMTYPE_DSMBALL: case ANIMTYPE_DSARM: + case ANIMTYPE_DSMESH: { /* need to verify that this data is valid for now */ if (ale->adt) { @@ -184,6 +185,7 @@ void ANIM_set_active_channel (bAnimContext *ac, void *data, short datatype, int case ANIMTYPE_DSPART: case ANIMTYPE_DSMBALL: case ANIMTYPE_DSARM: + case ANIMTYPE_DSMESH: { /* need to verify that this data is valid for now */ if (ale->adt) @@ -257,6 +259,7 @@ void ANIM_deselect_anim_channels (void *data, short datatype, short test, short case ANIMTYPE_DSPART: case ANIMTYPE_DSMBALL: case ANIMTYPE_DSARM: + case ANIMTYPE_DSMESH: { if ((ale->adt) && (ale->adt->flag & ADT_UI_SELECTED)) sel= ACHANNEL_SETFLAG_CLEAR; @@ -337,6 +340,7 @@ void ANIM_deselect_anim_channels (void *data, short datatype, short test, short case ANIMTYPE_DSPART: case ANIMTYPE_DSMBALL: case ANIMTYPE_DSARM: + case ANIMTYPE_DSMESH: { /* need to verify that this data is valid for now */ if (ale->adt) { @@ -1651,6 +1655,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh case ANIMTYPE_DSPART: case ANIMTYPE_DSMBALL: case ANIMTYPE_DSARM: + case ANIMTYPE_DSMESH: { /* sanity checking... */ if (ale->adt) { diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 392f435d017..0b63dd73cda 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -613,6 +613,19 @@ bAnimListElem *make_new_animlistelem (void *data, short datatype, void *owner, s ale->key_data= (adt) ? adt->action : NULL; ale->datatype= ALE_ACT; + ale->adt= BKE_animdata_from_id(data); + } + break; + case ANIMTYPE_DSMESH: + { + Mesh *me= (Mesh *)data; + AnimData *adt= me->adt; + + ale->flag= FILTER_MESH_OBJD(me); + + ale->key_data= (adt) ? adt->action : NULL; + ale->datatype= ALE_ACT; + ale->adt= BKE_animdata_from_id(data); } break; @@ -1348,6 +1361,14 @@ static int animdata_filter_dopesheet_obdata (ListBase *anim_data, bDopeSheet *ad expanded= FILTER_ARM_OBJD(arm); } break; + case OB_MESH: /* ------- Mesh ---------- */ + { + Mesh *me= (Mesh *)ob->data; + + type= ANIMTYPE_DSMESH; + expanded= FILTER_MESH_OBJD(me); + } + break; } /* special exception for drivers instead of action */ @@ -1582,6 +1603,19 @@ static int animdata_filter_dopesheet_ob (ListBase *anim_data, bDopeSheet *ads, B } } break; + case OB_MESH: /* ------- Mesh ---------- */ + { + Mesh *me= (Mesh *)ob->data; + + if ((ads->filterflag & ADS_FILTER_NOMESH) == 0) { + ANIMDATA_FILTER_CASES(me, + { /* AnimData blocks - do nothing... */ }, + obdata_ok= 1;, + obdata_ok= 1;, + obdata_ok= 1;) + } + } + break; } if (obdata_ok) items += animdata_filter_dopesheet_obdata(anim_data, ads, base, filter_mode); @@ -2018,6 +2052,23 @@ static int animdata_filter_dopesheet (ListBase *anim_data, bAnimContext *ac, bDo dataOk= !(ads->filterflag & ADS_FILTER_NOARM);) } break; + case OB_MESH: /* ------- Mesh ---------- */ + { + Mesh *me= (Mesh *)ob->data; + dataOk= 0; + ANIMDATA_FILTER_CASES(me, + if ((ads->filterflag & ADS_FILTER_NOMESH)==0) { + /* for the special AnimData blocks only case, we only need to add + * the block if it is valid... then other cases just get skipped (hence ok=0) + */ + ANIMDATA_ADD_ANIMDATA(me); + dataOk=0; + }, + dataOk= !(ads->filterflag & ADS_FILTER_NOMESH);, + dataOk= !(ads->filterflag & ADS_FILTER_NOMESH);, + dataOk= !(ads->filterflag & ADS_FILTER_NOMESH);) + } + break; default: /* --- other --- */ dataOk= 0; break; @@ -2108,6 +2159,12 @@ static int animdata_filter_dopesheet (ListBase *anim_data, bAnimContext *ac, bDo dataOk= ANIMDATA_HAS_KEYS(arm); } break; + case OB_MESH: /* -------- Mesh ---------- */ + { + Mesh *me= (Mesh *)ob->data; + dataOk= ANIMDATA_HAS_KEYS(me); + } + break; default: /* --- other --- */ dataOk= 0; break; diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 631cec87c96..42fe9160946 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -56,6 +56,7 @@ #include "DNA_space_types.h" #include "DNA_key_types.h" #include "DNA_lamp_types.h" +#include "DNA_mesh_types.h" #include "DNA_material_types.h" #include "DNA_meta_types.h" #include "DNA_node_types.h" @@ -822,6 +823,14 @@ void ob_to_keylist(bDopeSheet *ads, Object *ob, DLRBT_Tree *keys, DLRBT_Tree *bl action_to_keylist(arm->adt, arm->adt->action, keys, blocks); } break; + case OB_MESH: /* ------- Mesh ---------- */ + { + Mesh *me= (Mesh *)ob->data; + + if ((me->adt) && !(filterflag & ADS_FILTER_NOMESH)) + action_to_keylist(me->adt, me->adt->action, keys, blocks); + } + break; } /* Add Particle System Keyframes */ diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index 039041d1efd..b3b0d6308a7 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -41,6 +41,7 @@ #include "DNA_curve_types.h" #include "DNA_key_types.h" #include "DNA_lamp_types.h" +#include "DNA_mesh_types.h" #include "DNA_material_types.h" #include "DNA_object_types.h" #include "DNA_meta_types.h" @@ -285,6 +286,16 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez } } break; + case OB_MESH: /* ------- Mesh ---------- */ + { + Mesh *me= (Mesh *)ob->data; + + if ((me->adt) && !(filterflag & ADS_FILTER_NOMESH)) { + if (adt_keys_bezier_loop(bed, me->adt, bezt_ok, bezt_cb, fcu_cb, filterflag)) + return 1; + } + } + break; } /* Add Particle System Keyframes */ diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index b971abac995..c34885fbe6b 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -144,6 +144,7 @@ typedef enum eAnim_ChannelType { ANIMTYPE_DSPART, ANIMTYPE_DSMBALL, ANIMTYPE_DSARM, + ANIMTYPE_DSMESH, ANIMTYPE_SHAPEKEY, @@ -219,6 +220,7 @@ typedef enum eAnimFilter_Flags { #define FILTER_PART_OBJD(part) ((part->flag & PART_DS_EXPAND)) #define FILTER_MBALL_OBJD(mb) ((mb->flag2 & MB_DS_EXPAND)) #define FILTER_ARM_OBJD(arm) ((arm->flag & ARM_DS_EXPAND)) +#define FILTER_MESH_OBJD(me) ((me->flag & ME_DS_EXPAND)) /* 'Sub-object/Action' channels (flags stored in Action) */ #define SEL_ACTC(actc) ((actc->flag & ACT_SELECTED)) #define EXPANDED_ACTC(actc) ((actc->flag & ACT_COLLAPSED)==0) diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index d2b58e61757..f89c267112b 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -94,6 +94,8 @@ void uiTemplateDopeSheetFilter(uiLayout *layout, bContext *C, PointerRNA *ptr) uiItemR(row, "", 0, ptr, "display_world", 0); uiItemR(row, "", 0, ptr, "display_node", 0); + if (mainptr && mainptr->mesh.first) + uiItemR(row, "", 0, ptr, "display_mesh", 0); if (mainptr && mainptr->key.first) uiItemR(row, "", 0, ptr, "display_shapekeys", 0); if (mainptr && mainptr->mat.first) diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index ee6af076f59..9847b3a9219 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -425,7 +425,7 @@ typedef struct bDopeSheet { /* DopeSheet filter-flag */ -typedef enum DOPESHEET_FILTERFLAG { +typedef enum eDopeSheet_FilterFlag { /* general filtering */ ADS_FILTER_ONLYSEL = (1<<0), /* only include channels relating to selected data */ @@ -437,6 +437,7 @@ typedef enum DOPESHEET_FILTERFLAG { /* datatype-based filtering */ ADS_FILTER_NOSHAPEKEYS = (1<<6), + ADS_FILTER_NOMESH = (1<<7), ADS_FILTER_NOCAM = (1<<10), ADS_FILTER_NOMAT = (1<<11), ADS_FILTER_NOLAM = (1<<12), @@ -449,16 +450,16 @@ typedef enum DOPESHEET_FILTERFLAG { ADS_FILTER_NONTREE = (1<<19), /* NLA-specific filters */ - ADS_FILTER_NLA_NOACT = (1<<20), /* if the AnimData block has no NLA data, don't include to just show Action-line */ + ADS_FILTER_NLA_NOACT = (1<<25), /* if the AnimData block has no NLA data, don't include to just show Action-line */ /* combination filters (some only used at runtime) */ ADS_FILTER_NOOBDATA = (ADS_FILTER_NOCAM|ADS_FILTER_NOMAT|ADS_FILTER_NOLAM|ADS_FILTER_NOCUR|ADS_FILTER_NOPART|ADS_FILTER_NOARM), -} DOPESHEET_FILTERFLAG; +} eDopeSheet_FilterFlag; /* DopeSheet general flags */ -typedef enum DOPESHEET_FLAG { +typedef enum eDopeSheet_Flag { ADS_FLAG_SUMMARY_COLLAPSED = (1<<0), /* when summary is shown, it is collapsed, so all other channels get hidden */ -} DOPESHEET_FLAG; +} eDopeSheet_Flag; diff --git a/source/blender/makesdna/DNA_mesh_types.h b/source/blender/makesdna/DNA_mesh_types.h index d12d81bb9f7..fae89284e32 100644 --- a/source/blender/makesdna/DNA_mesh_types.h +++ b/source/blender/makesdna/DNA_mesh_types.h @@ -47,15 +47,17 @@ struct OcInfo; struct Multires; struct PartialVisibility; struct EditMesh; +struct AnimData; typedef struct Mesh { ID id; + struct AnimData *adt; /* animation data (must be immediately after id for utilities to use it) */ struct BoundBox *bb; ListBase effect; - struct Ipo *ipo; + struct Ipo *ipo; // XXX depreceated... old animation system struct Key *key; struct Material **mat; @@ -133,6 +135,7 @@ typedef struct TFace { #define ME_SMESH 64 #define ME_SUBSURF 128 #define ME_OPT_EDGES 256 +#define ME_DS_EXPAND 512 /* me->drawflag, int */ #define ME_DRAWEDGES (1 << 0) diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 3f6729136d5..74194e8ee6c 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -94,10 +94,16 @@ static void rna_def_dopesheet(BlenderRNA *brna) prop= RNA_def_property(srna, "display_shapekeys", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSHAPEKEYS); - RNA_def_property_ui_text(prop, "Display Shapekeys", "Include visualization of Shapekey related Animation data."); + RNA_def_property_ui_text(prop, "Display Shapekeys", "Include visualization of ShapeKey related Animation data."); RNA_def_property_ui_icon(prop, ICON_SHAPEKEY_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); + prop= RNA_def_property(srna, "display_meshes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMESH); + RNA_def_property_ui_text(prop, "Display Meshes", "Include visualization of Mesh related Animation data."); + RNA_def_property_ui_icon(prop, ICON_MESH_DATA, 0); + RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); + prop= RNA_def_property(srna, "display_camera", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCAM); RNA_def_property_ui_text(prop, "Display Camera", "Include visualization of Camera related Animation data."); diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index c298d83850b..528544d09dd 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -1798,7 +1798,8 @@ static void rna_def_mesh(BlenderRNA *brna) RNA_def_property_ui_icon(prop, ICON_FACESEL_HLT, 0); RNA_def_property_update(prop, 0, "rna_Mesh_update_draw"); - + /* pointers */ + rna_def_animdata_common(srna); rna_def_texmat_common(srna, "rna_Mesh_texspace_editable"); RNA_api_mesh(srna); -- cgit v1.2.3 From 78aa9242066a7b4e7723c01a7a538ef8d033ae4b Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 28 Dec 2009 01:27:05 +0000 Subject: Change to the way brush/tool selection works, as discussed a while ago Now, there are preset brushes made for each tool type (eg. for sculpt mode, Grab, Draw, Inflate, etc), and the recommended method for changing sculpt tools is to change between Brushes. The shortcut keys for changing between tools have now been changed to change between named brushes - the G key in sculpt mode now changes to any brush named 'Grab'. The advantages of this are: * Changing between brushes remembers the strength/size/texture etc settings for each brush. This means that for example, you can draw with a strong textured Clay brush, but then switch quickly to a weaker, untextured Smooth brush, without having to re-do your settings each time. * You can now add your own custom shortcut keys to your own custom brushes - just add a keymap entry similar to the existing ones, that references your own custom brush names. To bring over these new default brushes to an existing B.blend setup, just append them in from the new B.blend in svn. --- source/blender/editors/datafiles/B.blend.c | 16836 ++++++++++--------- source/blender/editors/include/UI_interface.h | 2 +- .../editors/interface/interface_templates.c | 6 +- source/blender/editors/sculpt_paint/paint_ops.c | 42 +- source/blender/makesrna/intern/rna_sculpt_paint.c | 39 + source/blender/makesrna/intern/rna_ui_api.c | 1 + 6 files changed, 8746 insertions(+), 8180 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/datafiles/B.blend.c b/source/blender/editors/datafiles/B.blend.c index a3b4798fd5e..6d77b3dd0e9 100644 --- a/source/blender/editors/datafiles/B.blend.c +++ b/source/blender/editors/datafiles/B.blend.c @@ -1,3030 +1,2851 @@ /* DataToC output of file */ -int datatoc_B_blend_size= 320520; +int datatoc_B_blend_size= 337300; char datatoc_B_blend[]= { - 66, 76, 69, 78, 68, 69, 82, 45, -118, 50, 53, 48, 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, -250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, - 24, 1, 0, 0,240,236,191, 95,255,127, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 56, 8, 0, 0, 0,250, 0, 0, 0, - 1, 0, 0, 1, 32,158,131, 29, 1, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 60,109,101,109, -111,114,121, 50, 62, 0, 0, 0, 0, 0, 0, 0,178, 38, 29, 1, 1, 0, 0, 0, 40, 0, 0, 0, 48, 0, 0, 0, 32,238,191, 95, -255,127, 0, 0, 80,237,191, 95,255,127, 0, 0,208,230, 29, 29, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0,208, 78,111, 27, - 1, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 0, 0, 0, 0,192,237,191, 95,255,127, 0, 0, 13,241, 93, 0, - 1, 0, 0, 0,160,237,191, 95,255,127, 0, 0,224,237,191, 95,255,127, 0, 0, 32, 0, 0, 0, 82, 69, 78, 68,208, 78,111, 27, - 1, 0, 0, 0, 82, 69, 78, 68, 32, 0, 0, 0,224,237,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 16,238,191, 95, -255,127, 0, 0, 16,238,191, 95,255,127, 0, 0,211,247, 93, 0, 1, 0, 0, 0, 48, 88,131, 27, 1, 0, 0, 0,208, 78,111, 27, - 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,158,131, 29, 1, 0, 0, 0, 87, 77, 0, 0, 8, 1, 0, 0,208, 87,128, 29, 1, 0, 0, 0, 98, 1, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 89,128, 29, 1, 0, 0, 0, 16, 89,128, 29, 1, 0, 0, 0, 16, 89,128, 29, - 1, 0, 0, 0, 16, 89,128, 29, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,200,129, 29, 1, 0, 0, 0,192,200,129, 29, - 1, 0, 0, 0,192,200,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 85,107, 27, 1, 0, 0, 0, 48, 85,107, 27, - 1, 0, 0, 0, 48, 85,107, 27, 1, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0, 16, 89,128, 29, 1, 0, 0, 0, 99, 1, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,254,195, 20, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 32,158,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, - 1, 0,238, 3, 0, 0, 1, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,181,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,178,178, 21, 1, 0, 0, 0, 64,117,129, 29, - 1, 0, 0, 0, 64,117,129, 29, 1, 0, 0, 0,208, 85,107, 27, 1, 0, 0, 0,144, 86,107, 27, 1, 0, 0, 0, 80, 87,107, 27, - 1, 0, 0, 0, 80, 87,107, 27, 1, 0, 0, 0,128, 2,128, 29, 1, 0, 0, 0,240, 54,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 48, 90,128, 29, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,240,200,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,242,129, 29, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0, 0, 9,130, 29, - 1, 0, 0, 0,192, 92,128, 29, 1, 0, 0, 0, 32, 93,128, 29, 1, 0, 0, 0, 32,189,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,242,129, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,160, 55,130, 29, 1, 0, 0, 0, 96,242,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 55,130, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,244,129, 29, - 1, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 16,244,129, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0,160, 55,130, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,176,129, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 16,244,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160, 56,130, 29, - 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0,240, 39,245, 26, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,252,130, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 6,228, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,228, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,227,179, 21, - 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,144,239,129, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 35,245, 26, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,156, 2,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,100, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208, 40,108, 27, - 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0,128, 65,129, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,106,130, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 6,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 9,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208, 50,130, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0,160, 55,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 50,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 42,131, 29, - 1, 0, 0, 0, 0, 9,130, 29, 1, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 42,131, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 89,244, 26, - 1, 0, 0, 0,208, 50,130, 29, 1, 0, 0, 0,160, 55,130, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 89,244, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,110,129, 29, - 1, 0, 0, 0,240, 42,131, 29, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,110,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,184,130, 29, - 1, 0, 0, 0,224, 89,244, 26, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 96,242,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,184,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,243,130, 29, - 1, 0, 0, 0, 16,110,129, 29, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 16,244,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,243,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,223,129, 29, - 1, 0, 0, 0,160,184,130, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,223,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 45,244, 26, - 1, 0, 0, 0,160,243,130, 29, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 45,244, 26, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,171,129, 29, - 1, 0, 0, 0, 32,223,129, 29, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 16,244,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,171,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,199,129, 29, - 1, 0, 0, 0, 64, 45,244, 26, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,199,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80, 79,129, 29, - 1, 0, 0, 0,128,171,129, 29, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 96,242,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 79,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 66,129, 29, - 1, 0, 0, 0,160,199,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 66,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 47,130, 29, - 1, 0, 0, 0, 80, 79,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 47,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,184,109, 27, - 1, 0, 0, 0, 32, 66,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,184,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 56,131, 29, - 1, 0, 0, 0, 16, 47,130, 29, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 56,131, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,108,129, 29, - 1, 0, 0, 0,192,184,109, 27, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,108,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,150,129, 29, - 1, 0, 0, 0,144, 56,131, 29, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,150,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 41,108, 27, - 1, 0, 0, 0, 96,108,129, 29, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 41,108, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,195,129, 29, - 1, 0, 0, 0, 32,150,129, 29, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,195,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,242,108, 27, - 1, 0, 0, 0,128, 41,108, 27, 1, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,242,108, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 20,130, 29, - 1, 0, 0, 0, 16,195,129, 29, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 20,130, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,185,129, 29, - 1, 0, 0, 0,160,242,108, 27, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,185,129, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,177,176, 21, - 1, 0, 0, 0, 64, 20,130, 29, 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,177,176, 21, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 91,128, 29, - 1, 0, 0, 0, 96,185,129, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 91,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 91,128, 29, - 1, 0, 0, 0, 48,177,176, 21, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 91,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 92,128, 29, - 1, 0, 0, 0, 64, 91,128, 29, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 92,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 92,128, 29, - 1, 0, 0, 0,160, 91,128, 29, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 92,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 92,128, 29, - 1, 0, 0, 0, 0, 92,128, 29, 1, 0, 0, 0,128, 65,129, 29, 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 92,128, 29, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 92,128, 29, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32, 93,128, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192, 96,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0, 48,240,107, 27, 1, 0, 0, 0,160, 55,130, 29, - 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0, -128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,200,110, 27, - 1, 0, 0, 0,112,200,110, 27, 1, 0, 0, 0, 0, 94,128, 29, 1, 0, 0, 0, 96, 95,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0, 94,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 95,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96, 95,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, - 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, + 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 53, 48, 82, 69, 78, 68, 32, 0, 0, 0, +176,231,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 24, 1, 0, 0,192,230,191, 95,255,127, 0, 0, +198, 0, 0, 0, 1, 0, 0, 0, 32, 32, 49, 49, 11, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1,192,100,232, 19, 1, 0, 0, 0, + 48,154, 5, 3, 1, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 47, 85,115,101,114,115, 47,109, 97,116,116, 47, 46, 66, 50, 53, + 46, 98,108,101,110,100, 0, 0, 40, 0, 0, 0, 48, 0, 0, 0,240,231,191, 95,255,127, 0, 0, 32,231,191, 95,255,127, 0, 0, +208,150,170, 28, 32, 0, 0, 0,176,231,191, 95,255,127, 0, 0, 16,119,230, 2, 1, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, +118, 0, 0, 0, 0, 0, 0, 0,144,231,191, 95,255,127, 0, 0,209,227, 94, 0, 1, 0, 0, 0,112,231,191, 95,255,127, 0, 0, +176,231,191, 95,255,127, 0, 0, 32, 0, 0, 0, 82, 69, 78, 68, 16,119,230, 2, 1, 0, 0, 0, 82, 69, 78, 68, 32, 0, 0, 0, +176,231,191, 95,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,224,231,191, 95,255,127, 0, 0,224,231,191, 95,255,127, 0, 0, +151,234, 94, 0, 1, 0, 0, 0, 48, 6, 5, 3, 1, 0, 0, 0, 16,119,230, 2, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,100,232, 19, 1, 0, 0, 0, + 87, 77, 0, 0, 0, 1, 0, 0, 16, 38,231, 19, 1, 0, 0, 0,100, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 39,231, 19, 1, 0, 0, 0, 96, 39,231, 19, 1, 0, 0, 0, 96, 39,231, 19, 1, 0, 0, 0, 96, 39,231, 19, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0,176,202,212, 27, 1, 0, 0, 0,240, 51,212, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160,210,211, 27, 1, 0, 0, 0,160, 32,213, 27, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 89,209, 27, 1, 0, 0, 0, +144, 89,209, 27, 1, 0, 0, 0,160,187,226, 19, 1, 0, 0, 0,160,187,226, 19, 1, 0, 0, 0,160,187,226, 19, 1, 0, 0, 0, +192,188,226, 19, 1, 0, 0, 0,192,188,226, 19, 1, 0, 0, 0,192,188,226, 19, 1, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, + 96, 39,231, 19, 1, 0, 0, 0,101, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160,202,226, 19, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192,100,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 1, 0, 0, 0, 0, 0, 64,179,230, 2, 1, 0, 0, 0, +128,109,239, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,109, 47, 27, 1, 0, 0, 0, + 64,161,212, 27, 1, 0, 0, 0, 64,161,212, 27, 1, 0, 0, 0, 64,100,227, 19, 1, 0, 0, 0,112,101,239, 19, 1, 0, 0, 0, + 80,248,192, 24, 1, 0, 0, 0, 80,248,192, 24, 1, 0, 0, 0,128,109,239, 19, 1, 0, 0, 0,176, 91,194, 24, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,128, 40,231, 19, 1, 0, 0, 0, +192, 0, 0, 0, 1, 0, 0, 0, 0,211,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 41,231, 19, 1, 0, 0, 0,240, 47,231, 19, 1, 0, 0, 0, + 80, 48,231, 19, 1, 0, 0, 0,208, 58,231, 19, 1, 0, 0, 0, 48, 59,231, 19, 1, 0, 0, 0, 0,196,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +144, 41,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 41,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 41,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 80, 42,231, 19, 1, 0, 0, 0,144, 41,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80, 42,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +176, 42,231, 19, 1, 0, 0, 0,240, 41,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,176, 42,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 43,231, 19, 1, 0, 0, 0, + 80, 42,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 16, 43,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0,176, 42,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,208, 43,231, 19, 1, 0, 0, 0, 16, 43,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208, 43,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 48, 44,231, 19, 1, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 48, 44,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 44,231, 19, 1, 0, 0, 0, +208, 43,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +144, 44,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 44,231, 19, 1, 0, 0, 0, 48, 44,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,228, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 44,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 80, 45,231, 19, 1, 0, 0, 0,144, 44,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,228, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80, 45,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +176, 45,231, 19, 1, 0, 0, 0,240, 44,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,176, 45,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 46,231, 19, 1, 0, 0, 0, + 80, 45,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 16, 46,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0,176, 45,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,156, 2,128, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,208, 46,231, 19, 1, 0, 0, 0, 16, 46,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +156, 2,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208, 46,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 48, 47,231, 19, 1, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 1, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 48, 47,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144, 47,231, 19, 1, 0, 0, 0, +208, 46,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2,148, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +144, 47,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240, 47,231, 19, 1, 0, 0, 0, 48, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 47,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 47,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 48,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +176, 48,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 41,231, 19, 1, 0, 0, 0, 80, 42,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 48,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 16, 49,231, 19, 1, 0, 0, 0, 80, 48,231, 19, 1, 0, 0, 0,240, 41,231, 19, 1, 0, 0, 0, 16, 43,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 49,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +112, 49,231, 19, 1, 0, 0, 0,176, 48,231, 19, 1, 0, 0, 0, 80, 42,231, 19, 1, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 49,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +208, 49,231, 19, 1, 0, 0, 0, 16, 49,231, 19, 1, 0, 0, 0, 16, 43,231, 19, 1, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 49,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 48, 50,231, 19, 1, 0, 0, 0,112, 49,231, 19, 1, 0, 0, 0,144, 41,231, 19, 1, 0, 0, 0,208, 43,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48, 50,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +144, 50,231, 19, 1, 0, 0, 0,208, 49,231, 19, 1, 0, 0, 0,176, 42,231, 19, 1, 0, 0, 0,208, 43,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 50,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +240, 50,231, 19, 1, 0, 0, 0, 48, 50,231, 19, 1, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0, 48, 44,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 50,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 80, 51,231, 19, 1, 0, 0, 0,144, 50,231, 19, 1, 0, 0, 0,208, 43,231, 19, 1, 0, 0, 0,144, 44,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 51,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +176, 51,231, 19, 1, 0, 0, 0,240, 50,231, 19, 1, 0, 0, 0,176, 42,231, 19, 1, 0, 0, 0,240, 44,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 51,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 16, 52,231, 19, 1, 0, 0, 0, 80, 51,231, 19, 1, 0, 0, 0,144, 44,231, 19, 1, 0, 0, 0,240, 44,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 52,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +112, 52,231, 19, 1, 0, 0, 0,176, 51,231, 19, 1, 0, 0, 0,144, 41,231, 19, 1, 0, 0, 0, 80, 45,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 52,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +208, 52,231, 19, 1, 0, 0, 0, 16, 52,231, 19, 1, 0, 0, 0, 48, 44,231, 19, 1, 0, 0, 0,176, 45,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 52,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 48, 53,231, 19, 1, 0, 0, 0,112, 52,231, 19, 1, 0, 0, 0,208, 43,231, 19, 1, 0, 0, 0,176, 45,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48, 53,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +144, 53,231, 19, 1, 0, 0, 0,208, 52,231, 19, 1, 0, 0, 0, 80, 45,231, 19, 1, 0, 0, 0,176, 45,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 53,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +240, 53,231, 19, 1, 0, 0, 0, 48, 53,231, 19, 1, 0, 0, 0, 80, 45,231, 19, 1, 0, 0, 0, 16, 46,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 53,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 80, 54,231, 19, 1, 0, 0, 0,144, 53,231, 19, 1, 0, 0, 0,176, 45,231, 19, 1, 0, 0, 0, 16, 46,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 54,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +176, 54,231, 19, 1, 0, 0, 0,240, 53,231, 19, 1, 0, 0, 0, 16, 43,231, 19, 1, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 54,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 16, 55,231, 19, 1, 0, 0, 0, 80, 54,231, 19, 1, 0, 0, 0, 48, 44,231, 19, 1, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 55,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +112, 55,231, 19, 1, 0, 0, 0,176, 54,231, 19, 1, 0, 0, 0, 16, 46,231, 19, 1, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 55,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +208, 55,231, 19, 1, 0, 0, 0, 16, 55,231, 19, 1, 0, 0, 0, 80, 45,231, 19, 1, 0, 0, 0,208, 46,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 55,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 48, 56,231, 19, 1, 0, 0, 0,112, 55,231, 19, 1, 0, 0, 0, 16, 46,231, 19, 1, 0, 0, 0, 48, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48, 56,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +144, 56,231, 19, 1, 0, 0, 0,208, 55,231, 19, 1, 0, 0, 0,208, 46,231, 19, 1, 0, 0, 0, 48, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 56,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +240, 56,231, 19, 1, 0, 0, 0, 48, 56,231, 19, 1, 0, 0, 0,144, 44,231, 19, 1, 0, 0, 0,144, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 56,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 80, 57,231, 19, 1, 0, 0, 0,144, 56,231, 19, 1, 0, 0, 0, 48, 44,231, 19, 1, 0, 0, 0,144, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 57,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +176, 57,231, 19, 1, 0, 0, 0,240, 56,231, 19, 1, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0,240, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 57,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 16, 58,231, 19, 1, 0, 0, 0, 80, 57,231, 19, 1, 0, 0, 0,240, 44,231, 19, 1, 0, 0, 0,240, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 58,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +112, 58,231, 19, 1, 0, 0, 0,176, 57,231, 19, 1, 0, 0, 0,144, 47,231, 19, 1, 0, 0, 0,240, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 58,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, +208, 58,231, 19, 1, 0, 0, 0, 16, 58,231, 19, 1, 0, 0, 0, 16, 43,231, 19, 1, 0, 0, 0,208, 46,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 58,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112, 58,231, 19, 1, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0, 48, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48, 59,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +208, 62,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 43,231, 19, 1, 0, 0, 0,240, 41,231, 19, 1, 0, 0, 0, + 80, 42,231, 19, 1, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128,210,231, 19, 1, 0, 0, 0,128,210,231, 19, 1, 0, 0, 0, 16, 60,231, 19, 1, 0, 0, 0,112, 61,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 16, 60,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,112, 61,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, + 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112, 61,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 60,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, + 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, + 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,208, 62,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 93,231, 19, 1, 0, 0, 0, + 48, 59,231, 19, 1, 0, 0, 0,208, 43,231, 19, 1, 0, 0, 0,144, 44,231, 19, 1, 0, 0, 0,240, 44,231, 19, 1, 0, 0, 0, +176, 42,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, + 4, 4, 80, 1,228, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 88,231, 19, 1, 0, 0, 0, + 80, 92,231, 19, 1, 0, 0, 0,176, 63,231, 19, 1, 0, 0, 0, 16, 65,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176, 63,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 16, 65,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,248, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, 31, 0, 80, 1, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, +197, 1, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 16, 65,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 63,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0,128,159, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0, 1,128,159, 67, 1,128,217,195, 0, 0, 0, 0, + 63, 1, 0, 0, 80, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 62, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 80, 1,197, 1, 63, 1,179, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,197, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,192, 96,128, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,127,128, 29, 1, 0, 0, 0, 32, 93,128, 29, - 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 0,252,130, 29, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 16,244,129, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 4, 4, 80, 1, -228, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,122,128, 29, 1, 0, 0, 0, 64,126,128, 29, - 1, 0, 0, 0,160, 97,128, 29, 1, 0, 0, 0, 0, 99,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 97,128, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 99,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112, 66,231, 19, 1, 0, 0, 0,192, 86,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +112, 66,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 68,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101, +120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101, +120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, 31, 0, 80, 1, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,197, 1, 0, 0, -227, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 63, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 99,128, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 97,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,159, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0, 1,128,159, 67, 1,128,217,195, 0, 0, 0, 0, 63, 1, 0, 0, - 80, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 62, 1, 0, 0, 18, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 80, 1,197, 1, 63, 1,179, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, -196, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,197, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,100,128, 29, 1, 0, 0, 0,176,120,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,100,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,101,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0, 68,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +144, 69,231, 19, 1, 0, 0, 0,112, 66,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, + 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 63, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,135,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +144, 69,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32, 71,231, 19, 1, 0, 0, 0, 0, 68,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,101,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,103,128, 29, - 1, 0, 0, 0, 96,100,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, - 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,103,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,105,128, 29, 1, 0, 0, 0,240,101,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32, 71,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +176, 72,231, 19, 1, 0, 0, 0,144, 69,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75,101,121,105,110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,105,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,106,128, 29, - 1, 0, 0, 0,128,103,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, - 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105, -110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,254, - 63, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,213,254, 63, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,106,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,108,128, 29, 1, 0, 0, 0, 16,105,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +176, 72,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64, 74,231, 19, 1, 0, 0, 0, 32, 71,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,254, 63, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,254, 63, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,108,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,109,128, 29, - 1, 0, 0, 0,160,106,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, -101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, - 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64, 74,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +208, 75,231, 19, 1, 0, 0, 0,176, 72,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,109,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,111,128, 29, 1, 0, 0, 0, 48,108,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 0, 0,135,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +208, 75,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96, 77,231, 19, 1, 0, 0, 0, 64, 74,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,111,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,112,128, 29, - 1, 0, 0, 0,192,109,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, -110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, - 63, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,112,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,114,128, 29, 1, 0, 0, 0, 80,111,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 63, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96, 77,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +240, 78,231, 19, 1, 0, 0, 0,208, 75,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,114,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,116,128, 29, - 1, 0, 0, 0,224,112,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, - 63, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,140,254, 63, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,116,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,117,128, 29, 1, 0, 0, 0,112,114,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +240, 78,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 80,231, 19, 1, 0, 0, 0, 96, 77,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108, +105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108, +105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 63, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 63, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128, 80,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 16, 82,231, 19, 1, 0, 0, 0,240, 78,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,117,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32,119,128, 29, - 1, 0, 0, 0, 0,116,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, -111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, - 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,119,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,120,128, 29, 1, 0, 0, 0,144,117,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, + 0, 0,188,253, 63, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 16, 82,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160, 83,231, 19, 1, 0, 0, 0,128, 80,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,120,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,119,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, - 63, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64,122,128, 29, - 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 64,126,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 63, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 83,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 48, 85,231, 19, 1, 0, 0, 0, 16, 82,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,123,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,224,124,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,124,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,123,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 48, 85,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192, 86,231, 19, 1, 0, 0, 0,160, 83,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112, +114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112, +114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 63, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 86,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 85,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 92,131, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 92,131, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, -129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,243,252, 63, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, + 80, 88,231, 19, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 80, 92,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 89,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,240, 90,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 64,126,128, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,122,128, 29, - 1, 0, 0, 0,128,123,128, 29, 1, 0, 0, 0,224,124,128, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,160,127,128, 29, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,136,128, 29, 1, 0, 0, 0,192, 96,128, 29, 1, 0, 0, 0, 96,242,129, 29, - 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0,192,227,179, 21, 1, 0, 0, 0,240, 39,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0,127, 0, 0, 0, 15, 15, 48, 6,128, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,131,128, 29, 1, 0, 0, 0, 0,135,128, 29, 1, 0, 0, 0,128,128,128, 29, - 1, 0, 0, 0,224,129,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,128,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,224,129,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,198, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6, 26, 0, 48, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 90,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 89,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,129,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,128, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 18, 0, 0, 0, -101, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 48, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 26, 0, 0, 0,127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64,131,128, 29, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 0,135,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 10, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 10, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, + 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,132,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,160,133,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,133,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,132,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 80, 92,231, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 88,231, 19, 1, 0, 0, 0,144, 89,231, 19, 1, 0, 0, 0,240, 90,231, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,192, 7, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,192, 7, 3, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, -129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +176, 93,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,102,231, 19, 1, 0, 0, 0,208, 62,231, 19, 1, 0, 0, 0, +144, 41,231, 19, 1, 0, 0, 0, 80, 45,231, 19, 1, 0, 0, 0,176, 45,231, 19, 1, 0, 0, 0,208, 43,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0,127, 0, 0, 0, 15, 15, 48, 6,128, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 97,231, 19, 1, 0, 0, 0, 16,101,231, 19, 1, 0, 0, 0, +144, 94,231, 19, 1, 0, 0, 0,240, 95,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 94,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,240, 95,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,198, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6, 26, 0, 48, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 95,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 94,231, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, + 18, 0, 0, 0,101, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 48, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 26, 0, 0, 0,127, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 80, 97,231, 19, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0, 16,101,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 0,135,128, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,131,128, 29, - 1, 0, 0, 0, 64,132,128, 29, 1, 0, 0, 0,160,133,128, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 98,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,176, 99,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,136,128, 29, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,144,150,128, 29, 1, 0, 0, 0,160,127,128, 29, 1, 0, 0, 0, 0,252,130, 29, - 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0, 0,160,129, 29, 1, 0, 0, 0,160,201,129, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,229, 1, 0, 0,115, 3, 0, 0, 3, 3, 80, 1,143, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,128, 29, 1, 0, 0, 0, 48,149,128, 29, 1, 0, 0, 0, 64,137,128, 29, - 1, 0, 0, 0,160,138,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,137,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,160,138,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, 26, 0, 80, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 90, 3, 0, 0,115, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 99,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 98,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,138,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,137,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,159, 67, 0,128,177,195, 0, 0, 0, 0, 63, 1, 0, 0, 80, 1, 0, 0, 18, 0, 0, 0, -116, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 18, 0, 0, 0, -116, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 80, 1,117, 1, 63, 1, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,229, 1, 0, 0, 89, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,140,128, 29, 1, 0, 0, 0,167, 0, 0, 0, - 1, 0, 0, 0, 48,145,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 14, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 14, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, + 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176,238,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,176,238,109, 27, 1, 0, 0, 0,219, 0, 0, 0, - 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 96,141,128, 29, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 96,141,128, 29, - 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 19, 0, 0, 0, - 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 21, 0, 1, 0, - 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112,142,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,143,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0, -247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208,143,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,142,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, - 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0, -156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0, -247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 1, 0, 0, 48,145,128, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 48,149,128, 29, 1, 0, 0, 0, 0,140,128, 29, - 1, 0, 0, 0,112,142,128, 29, 1, 0, 0, 0,208,143,128, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 16,101,231, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 97,231, 19, 1, 0, 0, 0, 80, 98,231, 19, 1, 0, 0, 0,176, 99,231, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +112,102,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,116,231, 19, 1, 0, 0, 0,176, 93,231, 19, 1, 0, 0, 0, +144, 44,231, 19, 1, 0, 0, 0,144, 47,231, 19, 1, 0, 0, 0,240, 47,231, 19, 1, 0, 0, 0,240, 44,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,229, 1, 0, 0,115, 3, 0, 0, 3, 3, 80, 1,143, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,106,231, 19, 1, 0, 0, 0,144,115,231, 19, 1, 0, 0, 0, + 80,103,231, 19, 1, 0, 0, 0,176,104,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,103,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,176,104,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,168, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 1, 26, 0, 80, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, 90, 3, 0, 0,115, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,104,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,103,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, + 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,159, 67, 0,128,177,195, 0, 0, 0, 0, 63, 1, 0, 0, 80, 1, 0, 0, + 18, 0, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, + 18, 0, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 80, 1,117, 1, 63, 1, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,229, 1, 0, 0, 89, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,117, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,106,231, 19, 1, 0, 0, 0, +168, 0, 0, 0, 1, 0, 0, 0,144,111,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,146,128, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,147,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,147,128, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,146,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,107,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,112,107,231, 19, 1, 0, 0, 0, +220, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,192,107,231, 19, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, +192,107,231, 19, 1, 0, 0, 0,219, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, + 19, 0, 0, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, + 21, 0, 1, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,166, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,182, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,193,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,194, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,191,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,162, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,128,185,234, 19, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,108,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48,110,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, + 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, + 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48,110,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,108,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67, +223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0, +156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, - 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 1, 0, 0,144,111,231, 19, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,144,115,231, 19, 1, 0, 0, 0, + 16,106,231, 19, 1, 0, 0, 0,208,108,231, 19, 1, 0, 0, 0, 48,110,231, 19, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,196, 7, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,196, 7, 3, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, - 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208,112,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48,114,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48,114,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,112,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,149,128, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,145,128, 29, 1, 0, 0, 0,112,146,128, 29, 1, 0, 0, 0,208,147,128, 29, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,144,150,128, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,174,128, 29, 1, 0, 0, 0, 96,136,128, 29, - 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0,192,227,179, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0, 99, 4, 0, 0, 1, 1,147, 3, -227, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,169,128, 29, 1, 0, 0, 0, 96,173,128, 29, - 1, 0, 0, 0,112,151,128, 29, 1, 0, 0, 0,224,167,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,151,128, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,152,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, + 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,147, 3, 26, 0,147, 3, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0, -154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 18, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, + 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,152,128, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,154,128, 29, 1, 0, 0, 0,112,151,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0,157, 2, 0, 0,155, 0, 0, 0, - 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,201, 3, 0, 0, 5, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,154,128, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,155,128, 29, 1, 0, 0, 0,208,152,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, -155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,155,128, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,167,128, 29, 1, 0, 0, 0, 48,154,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, - 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,156,128, 29, 1, 0, 0, 0, 80,166,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,156,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,158,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,144,115,231, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,111,231, 19, 1, 0, 0, 0,208,112,231, 19, 1, 0, 0, 0, 48,114,231, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,158,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,160,128, 29, - 1, 0, 0, 0,240,156,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97, -115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252, -163, 0, 58, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,240,116,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,140,231, 19, 1, 0, 0, 0, +112,102,231, 19, 1, 0, 0, 0, 16, 46,231, 19, 1, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0, 48, 44,231, 19, 1, 0, 0, 0, +176, 45,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,129, 0, 0, 0, 99, 4, 0, 0, + 1, 1,147, 3,227, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,135,231, 19, 1, 0, 0, 0, +192,139,231, 19, 1, 0, 0, 0,208,117,231, 19, 1, 0, 0, 0, 64,134,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208,117,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48,119,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,100, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,146, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,147, 3, 26, 0,147, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0, +129, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,160,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,161,128, 29, 1, 0, 0, 0,128,158,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111, -112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111, -112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48,119,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,144,120,231, 19, 1, 0, 0, 0,208,117,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0,157, 2, 0, 0, +155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,201, 3, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144,120,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,240,121,231, 19, 1, 0, 0, 0, 48,119,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0, +155, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,121,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 64,134,231, 19, 1, 0, 0, 0,144,120,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 47, 6, 0, 0, +155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,123,231, 19, 1, 0, 0, 0,176,132,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 80,123,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,124,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,124,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +112,126,231, 19, 1, 0, 0, 0, 80,123,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,161,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,163,128, 29, - 1, 0, 0, 0, 16,160,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112, -108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211,252, -163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,163,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,164,128, 29, 1, 0, 0, 0,160,161,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, - 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, - 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, + 0, 0, 81,252,163, 0, 58, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +112,126,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,128,231, 19, 1, 0, 0, 0,224,124,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,164,128, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,166,128, 29, - 1, 0, 0, 0, 48,163,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110, -115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163,252, -163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80,166,128, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,164,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,128,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +144,129,231, 19, 1, 0, 0, 0,112,126,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,211,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,167,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,144,155,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +144,129,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,131,231, 19, 1, 0, 0, 0, 0,128,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114, +111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114, +111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,147, 3,201, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,131,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +176,132,231, 19, 1, 0, 0, 0,144,129,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,120,131, 27, - 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,120,131, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 38, 67,148, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, - 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, - 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,200, 42,243, 62, -208,249,224,190, 48,180, 81,191,184,158, 81,191, 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,222,187,123,188, -206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 88, 62,181, 62, - 47,143, 73, 63,144,162, 59,188, 0, 0, 96,179,191, 15,188,190,128, 75, 53, 62,217,125, 81, 63, 0, 0, 96,178, 67,108,117,194, -185,204,216, 65,104,156, 5,194,212,247,159,192,235, 62,114, 66, 61,254,213,193,157,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,200, 42,243, 62, -208,249,224,190, 48,180, 81,191,184,158, 81,191, 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,222,187,123,188, -206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65,124,197, 7, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,149, 87,247, 58, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,163,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +176,132,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,131,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 64,169,128, 29, - 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 96,173,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,134,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,121,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,170,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0,172,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,172,128, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,170,128, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 2, 0, 0, 47, 6, 0, 0,155, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,147, 3,201, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96,173,128, 29, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,169,128, 29, 1, 0, 0, 0,160,170,128, 29, 1, 0, 0, 0, 0,172,128, 29, - 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 22, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 22, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, + 38, 67,148, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, + 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0, +185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63, +200, 42,243, 62,208,249,224,190, 48,180, 81,191,184,158, 81,191, 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, +222,187,123,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, + 88, 62,181, 62, 47,143, 73, 63,144,162, 59,188, 0, 0, 96,179,191, 15,188,190,128, 75, 53, 62,217,125, 81, 63, 0, 0, 96,178, + 67,108,117,194,185,204,216, 65,104,156, 5,194,212,247,159,192,235, 62,114, 66, 61,254,213,193,157,225, 3, 66, 55, 8,160, 64, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, +200, 42,243, 62,208,249,224,190, 48,180, 81,191,184,158, 81,191, 49, 54,135, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, +222,187,123,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, +124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,124,197, 7, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +149, 87,247, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,174,128, 29, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 48,159,111, 27, 1, 0, 0, 0,144,150,128, 29, 1, 0, 0, 0,144,239,129, 29, 1, 0, 0, 0,128, 65,129, 29, - 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0,144, 35,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -155, 2, 0, 0,129, 0, 0, 0,147, 1, 0, 0, 2, 2,156, 2, 19, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,183,110, 27, 1, 0, 0, 0, 48,158,111, 27, 1, 0, 0, 0, 64,175,128, 29, 1, 0, 0, 0, 96,179,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,175,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,176,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, - 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,129, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,176,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,178,128, 29, - 1, 0, 0, 0, 64,175,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 67, 0, 0,103,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, - 6, 0,217, 0,249, 0,200, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0,249, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,178,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,179,128, 29, - 1, 0, 0, 0,160,176,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, +160,135,231, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,192,139,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 3, 0,255,255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,137,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 96,138,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,155, 2, 0, 0,155, 2, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,138,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,137,231, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,179,128, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,178,128, 29, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0, -194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0,248, 0, 0, 0,111, 18,131, 58, -111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0,195, 1,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0, 0, 0,155, 2, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 1,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,192,139,231, 19, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,135,231, 19, 1, 0, 0, 0, 0,137,231, 19, 1, 0, 0, 0, + 96,138,231, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 0,183,110, 27, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,128, 24,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,192,140,231, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,176,165,231, 19, 1, 0, 0, 0,240,116,231, 19, 1, 0, 0, 0, 80, 45,231, 19, 1, 0, 0, 0, +208, 46,231, 19, 1, 0, 0, 0, 48, 47,231, 19, 1, 0, 0, 0, 16, 46,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,155, 2, 0, 0,129, 0, 0, 0,147, 1, 0, 0, 2, 2,156, 2, 19, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32,147,231, 19, 1, 0, 0, 0,176,164,231, 19, 1, 0, 0, 0,160,141,231, 19, 1, 0, 0, 0, +192,145,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,141,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0,143,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,129, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,143,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 96,144,231, 19, 1, 0, 0, 0,160,141,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,103,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, + 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, + 0, 0, 0, 4, 6, 0,217, 0,249, 0,200, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,217, 0,249, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,184,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,184,110, 27, - 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,184,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 23,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,144,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +192,145,231, 19, 1, 0, 0, 0, 0,143,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 23,131, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,208,145,111, 27, 1, 0, 0, 0,144,184,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0, -163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0, -163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,145,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 23,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0, -164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,155, 2, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,128, 24,131, 29, 1, 0, 0, 0,168, 0, 0, 0, - 1, 0, 0, 0, 16,154,111, 27, 1, 0, 0, 0, 0,183,110, 27, 1, 0, 0, 0,144,184,110, 27, 1, 0, 0, 0,208,145,111, 27, - 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,145,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,144,231, 19, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, + 18, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, +111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0,195, 1,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,155, 2, 0, 0,155, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,195, 1,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,147,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,144,148,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 32,147,231, 19, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, +208,152,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,148,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,240,149,111, 27, 1, 0, 0, 0, 48,147,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,149,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 80,151,111, 27, 1, 0, 0, 0,144,148,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,148,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 80,148,231, 19, 1, 0, 0, 0, 22, 1, 0, 0, 1, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,148,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 16,150,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,151,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,176,152,111, 27, 1, 0, 0, 0,240,149,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,150,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,112,151,231, 19, 1, 0, 0, 0,176,148,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, + 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, + 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, + 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,152,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,151,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,151,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,150,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, + 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,124,131, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,124,131, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, - 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,208,152,231, 19, 1, 0, 0, 0, +169, 0, 0, 0, 1, 0, 0, 0,144,160,231, 19, 1, 0, 0, 0, 32,147,231, 19, 1, 0, 0, 0,176,148,231, 19, 1, 0, 0, 0, +112,151,231, 19, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,153,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 16,155,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,155,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,112,156,231, 19, 1, 0, 0, 0,176,153,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,156,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,208,157,231, 19, 1, 0, 0, 0, 16,155,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,157,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 48,159,231, 19, 1, 0, 0, 0,112,156,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,159,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,157,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 26, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 26, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, +248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, + 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, + 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195, +205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, + 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 16,154,111, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 48,158,111, 27, 1, 0, 0, 0,128, 24,131, 29, - 1, 0, 0, 0, 48,147,111, 27, 1, 0, 0, 0,176,152,111, 27, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,155,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,156,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,144,160,231, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,176,164,231, 19, 1, 0, 0, 0, +208,152,231, 19, 1, 0, 0, 0,176,153,231, 19, 1, 0, 0, 0, 48,159,231, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,161,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 80,163,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,163,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,161,231, 19, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,156,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,155,111, 27, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +176,164,231, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,160,231, 19, 1, 0, 0, 0, +240,161,231, 19, 1, 0, 0, 0, 80,163,231, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48,158,111, 27, - 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,154,111, 27, 1, 0, 0, 0,112,155,111, 27, - 1, 0, 0, 0,208,156,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +176,165,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,196,231, 19, 1, 0, 0, 0,192,140,231, 19, 1, 0, 0, 0, +208, 46,231, 19, 1, 0, 0, 0, 16, 43,231, 19, 1, 0, 0, 0,112, 46,231, 19, 1, 0, 0, 0, 48, 47,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,149, 1, 0, 0, 99, 4, 0, 0, 12, 12,156, 2,207, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,170,231, 19, 1, 0, 0, 0, 0,195,231, 19, 1, 0, 0, 0, +144,166,231, 19, 1, 0, 0, 0, 80,169,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,166,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,240,167,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,149, 1, 0, 0,174, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48,159,111, 27, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,189,111, 27, 1, 0, 0, 0, 96,174,128, 29, 1, 0, 0, 0,128, 65,129, 29, - 1, 0, 0, 0,112,176,129, 29, 1, 0, 0, 0,160, 78,129, 29, 1, 0, 0, 0,208, 40,108, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,149, 1, 0, 0, 99, 4, 0, 0, 12, 12,156, 2,207, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,164,111, 27, 1, 0, 0, 0, 32,188,111, 27, 1, 0, 0, 0, 16,160,111, 27, - 1, 0, 0, 0,208,162,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,160,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,112,161,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,156, 2, 26, 0,156, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 2, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,167,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 80,169,231, 19, 1, 0, 0, 0,144,166,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, + 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0,192, 40,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, + 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,181, 2,200, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,181, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,161,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,208,162,111, 27, 1, 0, 0, 0, 16,160,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0,192, 40,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, -180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,181, 2,200, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,181, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,169,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,167,231, 19, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, + 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0,192, 40,196, 0, 0, 0, 0,195, 1, 0, 0,212, 1, 0, 0, + 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, + 18, 0, 0, 0,180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, + 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,212, 1,181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,155, 2, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 1,181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,162,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,161,111, 27, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0,192, 40,196, 0, 0, 0, 0,195, 1, 0, 0,212, 1, 0, 0, 18, 0, 0, 0, -180, 2, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,194, 1, 0, 0, 18, 0, 0, 0, -180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,212, 1,181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,155, 2, 0, 0,175, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 1,181, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,176,170,231, 19, 1, 0, 0, 0, + 23, 1, 0, 0, 1, 0, 0, 0,112,177,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, 48,164,111, 27, 1, 0, 0, 0, 22, 1, 0, 0, - 1, 0, 0, 0,240,170,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,165,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,208,166,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 78, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 49, 2, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,171,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 80,173,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 78, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 49, 2, 0, 0, 74, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,166,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 48,168,111, 27, 1, 0, 0, 0,112,165,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,219,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, -199, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, -199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,200, 1,200, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,200, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,173,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,176,174,231, 19, 1, 0, 0, 0,240,171,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, + 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,219,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, + 18, 0, 0, 0,199, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, + 18, 0, 0, 0,199, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,200, 1,200, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,200, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,168,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,144,169,111, 27, 1, 0, 0, 0,208,166,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,174,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 16,176,231, 19, 1, 0, 0, 0, 80,173,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,169,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,168,111, 27, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, - 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -199, 1, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 18, 0, 0, 0, -199, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,176,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,174,231, 19, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, + 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,199, 1, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, + 18, 0, 0, 0,199, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 2,200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,240,170,111, 27, 1, 0, 0, 0,162, 0, 0, 0, - 1, 0, 0, 0, 64,176,111, 27, 1, 0, 0, 0, 48,164,111, 27, 1, 0, 0, 0,112,165,111, 27, 1, 0, 0, 0,144,169,111, 27, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,112,177,231, 19, 1, 0, 0, 0, +163, 0, 0, 0, 1, 0, 0, 0, 32,183,231, 19, 1, 0, 0, 0,176,170,231, 19, 1, 0, 0, 0,240,171,231, 19, 1, 0, 0, 0, + 16,176,231, 19, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,185,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,240,185,110, 27, 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,172,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,173,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,178,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,160,178,231, 19, 1, 0, 0, 0, 22, 1, 0, 0, 1, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,179,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96,180,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, + 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,180,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192,181,231, 19, 1, 0, 0, 0, 0,179,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, +172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,173,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,174,111, 27, 1, 0, 0, 0, 32,172,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0, -189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,181,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,180,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,174,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,173,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, + 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, + 32,183,231, 19, 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0,224,190,231, 19, 1, 0, 0, 0,112,177,231, 19, 1, 0, 0, 0, + 0,179,231, 19, 1, 0, 0, 0,192,181,231, 19, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 64,176,111, 27, - 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 0,184,111, 27, 1, 0, 0, 0,240,170,111, 27, 1, 0, 0, 0, 32,172,111, 27, - 1, 0, 0, 0,224,174,111, 27, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,177,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,178,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,178,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,179,111, 27, 1, 0, 0, 0, 32,177,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,179,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,181,111, 27, 1, 0, 0, 0,128,178,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,181,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,182,111, 27, 1, 0, 0, 0,224,179,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,182,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,181,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,128,131, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,128,131, 27, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, -142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, -111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63, -140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190, -191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68, -159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63, -140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,184,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96,185,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, + 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,185,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192,186,231, 19, 1, 0, 0, 0, 0,184,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,186,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32,188,231, 19, 1, 0, 0, 0, 96,185,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, +111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,188,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128,189,231, 19, 1, 0, 0, 0,192,186,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128,189,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,188,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 30, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 30, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, + 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, +164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191, +253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181, +195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, + 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191, +253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, +214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 0,184,111, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 32,188,111, 27, - 1, 0, 0, 0, 64,176,111, 27, 1, 0, 0, 0, 32,177,111, 27, 1, 0, 0, 0,160,182,111, 27, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96,185,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,186,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,186,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,185,111, 27, - 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,224,190,231, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0,195,231, 19, 1, 0, 0, 0, 32,183,231, 19, 1, 0, 0, 0, 0,184,231, 19, 1, 0, 0, 0,128,189,231, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64,192,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,160,193,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, + 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -200, 0, 0, 0, 32,188,111, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,111, 27, - 1, 0, 0, 0, 96,185,111, 27, 1, 0, 0, 0,192,186,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,160,193,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,192,231, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, +122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0, 0,195,231, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224,190,231, 19, 1, 0, 0, 0, 64,192,231, 19, 1, 0, 0, 0,160,193,231, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 32,189,111, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,159,111, 27, - 1, 0, 0, 0, 32,106,130, 29, 1, 0, 0, 0,160, 56,130, 29, 1, 0, 0, 0, 0, 61,131, 29, 1, 0, 0, 0, 0,160,129, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 99, 4, 0, 0, 1, 1, 80, 1, -239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,192,110, 27, 1, 0, 0, 0, 96,191,111, 27, - 1, 0, 0, 0, 0,190,111, 27, 1, 0, 0, 0,176, 18,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,190,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 18,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,132, 1, 24, 0,132, 1, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, -117, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 18,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 0,196,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,165,231, 19, 1, 0, 0, 0,144, 47,231, 19, 1, 0, 0, 0, 48, 44,231, 19, 1, 0, 0, 0,112, 43,231, 19, 1, 0, 0, 0, +240, 47,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, 99, 4, 0, 0, + 1, 1, 80, 1,239, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,199,231, 19, 1, 0, 0, 0, + 64,209,231, 19, 1, 0, 0, 0,224,196,231, 19, 1, 0, 0, 0, 64,198,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +224,196,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 64,198,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,132, 1, 24, 0,132, 1, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, +117, 3, 0, 0,117, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, + 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64,198,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,196,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, - 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,240,133, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,240,133, 27, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120,160, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, -225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, -254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190, -228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64, -151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, - 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191, -118,101,150,191,216, 49, 49, 65,152, 9, 52, 65,231, 70,158, 62, 23,234,167, 62,160,206,159,187, 0, 0,168,180, 27, 97,208,189, - 70, 41,205, 61,173,247,146, 62, 0, 0,166, 51,211,120, 21,194,145, 5, 2, 66, 9,136,213,193,193,214,159,192,219, 38, 19, 66, -197,173,255,193,157,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, -225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, -254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191,143,164,206, 63, - 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, 82, 21, 64,191, -118,101,150,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,128, 7, 0, 0, +117, 3, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,210, 47, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 34, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 34, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 24,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,160, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, + 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, + 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, + 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0, +110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191, +143,164,206, 63, 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, + 82, 21, 64,191,118,101,150,191,216, 49, 49, 65,152, 9, 52, 65,231, 70,158, 62, 23,234,167, 62,160,206,159,187, 0, 0,168,180, + 27, 97,208,189, 70, 41,205, 61,173,247,146, 62, 0, 0,166, 51,211,120, 21,194,145, 5, 2, 66, 9,136,213,193,193,214,159,192, +219, 38, 19, 66,197,173,255,193,157,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, + 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, + 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 3,201,194, 63, 30,108,125,191,244,250, 39,191, 8,165, 39,191, +143,164,206, 63, 41,130,121, 63,180,164, 28, 63,149, 84, 28, 63,179,153,196,188, 10,188, 50, 64, 8,108,228,190, 50,247,227,190, + 82, 21, 64,191,118,101,150,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,210, 47, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,192,110, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 80,196,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144,193,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,194,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 1, 26, 0,132, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0, -128, 7, 0, 0,249, 3, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1, 26, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240,194,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,193,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,185, 67, 0, 0, 62,195, - 0, 0, 0, 0,115, 1, 0, 0,132, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,132, 1,208, 0,115, 1, -190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0, -128, 7, 0, 0, 41, 3, 0, 0,248, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1,208, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,199,231, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, +192,203,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 80,196,110, 27, 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 96,191,111, 27, 1, 0, 0, 0, 48,192,110, 27, - 1, 0, 0, 0,144,193,110, 27, 1, 0, 0, 0,240,194,110, 27, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 0,201,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96,202,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, + 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 1, + 26, 0,132, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +253, 5, 0, 0,128, 7, 0, 0,249, 3, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +132, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,202,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,185, 67, + 0, 0, 62,195, 0, 0, 0, 0,115, 1, 0, 0,132, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,132, 1, +208, 0,115, 1,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +253, 5, 0, 0,128, 7, 0, 0, 41, 3, 0, 0,248, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +132, 1,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192,203,231, 19, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 64,209,231, 19, 1, 0, 0, 0, +160,199,231, 19, 1, 0, 0, 0, 0,201,231, 19, 1, 0, 0, 0, 96,202,231, 19, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,186,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, - 16, 0, 0, 0, 80,186,110, 27, 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 16, 20,131, 29, - 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 16, 20,131, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, - 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 58,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48,171,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 64,198,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 54,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 32,163,176, 21, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,197,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 16,199,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,199,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,197,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, - 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, -155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, - 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,205,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 96,191,111, 27, 1, 0, 0, 0,163, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,196,110, 27, 1, 0, 0, 0,176,197,110, 27, 1, 0, 0, 0, 16,199,110, 27, - 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 68, 65, 84, 65, 16, 0, 0, 0, 32,205,231, 19, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, +112,205,231, 19, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,112,205,231, 19, 1, 0, 0, 0,219, 0, 0, 0, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, + 20, 0, 0, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,166, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,182, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0,112,193,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,194, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0,112,191,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 48,162, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,176, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0,128,185,234, 19, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,206,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,224,207,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,207,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,206,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, + 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, + 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64,209,231, 19, 1, 0, 0, 0, +164, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,203,231, 19, 1, 0, 0, 0,128,206,231, 19, 1, 0, 0, 0, +224,207,231, 19, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,240,200,110, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 32,158,131, 29, - 1, 0, 0, 0, 48, 90,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111, -109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 64,207,110, 27, 1, 0, 0, 0, 32,215,110, 27, - 1, 0, 0, 0,128,215,110, 27, 1, 0, 0, 0, 96, 57,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,202,110, 27, - 1, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0, 96,202,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,203,110, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64,204,110, 27, - 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0,224,203,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160,204,110, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,100, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192,205,110, 27, - 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0, 96,205,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32,206,110, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 64,207,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,207,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,160,207,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,208,110, 27, 1, 0, 0, 0, 64,207,110, 27, - 1, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 0,208,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,208,110, 27, 1, 0, 0, 0,160,207,110, 27, - 1, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 96,208,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,208,110, 27, 1, 0, 0, 0, 0,208,110, 27, - 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,192,208,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,209,110, 27, 1, 0, 0, 0, 96,208,110, 27, - 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 32,209,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,209,110, 27, 1, 0, 0, 0,192,208,110, 27, - 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,128,209,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,209,110, 27, 1, 0, 0, 0, 32,209,110, 27, - 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,224,209,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,210,110, 27, 1, 0, 0, 0,128,209,110, 27, - 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 64,210,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,210,110, 27, 1, 0, 0, 0,224,209,110, 27, - 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,160,210,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,211,110, 27, 1, 0, 0, 0, 64,210,110, 27, - 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 0,211,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,211,110, 27, 1, 0, 0, 0,160,210,110, 27, - 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 96,211,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,211,110, 27, 1, 0, 0, 0, 0,211,110, 27, - 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,192,211,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,212,110, 27, 1, 0, 0, 0, 96,211,110, 27, - 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 32,212,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128,212,110, 27, 1, 0, 0, 0,192,211,110, 27, - 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,128,212,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224,212,110, 27, 1, 0, 0, 0, 32,212,110, 27, - 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,224,212,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64,213,110, 27, 1, 0, 0, 0,128,212,110, 27, - 1, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 64,213,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160,213,110, 27, 1, 0, 0, 0,224,212,110, 27, - 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,160,213,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0,214,110, 27, 1, 0, 0, 0, 64,213,110, 27, - 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 0,214,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96,214,110, 27, 1, 0, 0, 0,160,213,110, 27, - 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 96,214,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192,214,110, 27, 1, 0, 0, 0, 0,214,110, 27, - 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,192,214,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32,215,110, 27, 1, 0, 0, 0, 96,214,110, 27, - 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 32,215,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,214,110, 27, - 1, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,128,215,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,219,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 96,202,110, 27, 1, 0, 0, 0,192,202,110, 27, 1, 0, 0, 0,224,203,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, - 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,142,111, 27, 1, 0, 0, 0, 80,142,111, 27, - 1, 0, 0, 0, 96,216,110, 27, 1, 0, 0, 0,192,217,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,216,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,217,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0, -126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,217,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,216,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, -129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0, -128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,219,110, 27, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,227,110, 27, 1, 0, 0, 0,128,215,110, 27, 1, 0, 0, 0,224,206,110, 27, - 1, 0, 0, 0, 64,204,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 32,203,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,100, 1,100, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,222,110, 27, 1, 0, 0, 0,128,226,110, 27, 1, 0, 0, 0, 0,220,110, 27, - 1, 0, 0, 0, 96,221,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,220,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 96,221,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0,221, 67, 0,128, 71, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, 26, 0,100, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,221,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,110, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 18, 0, 0, 0, - 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,100, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,192,222,110, 27, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0,128,226,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,223,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32,225,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,225,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,223,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,244,133, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,244,133, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, -129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,128,226,110, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,222,110, 27, - 1, 0, 0, 0,192,223,110, 27, 1, 0, 0, 0, 32,225,110, 27, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224,227,110, 27, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208, 1,111, 27, 1, 0, 0, 0, 32,219,110, 27, 1, 0, 0, 0, 64,204,110, 27, - 1, 0, 0, 0, 0,205,110, 27, 1, 0, 0, 0,224,203,110, 27, 1, 0, 0, 0,160,204,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 99, 4, 0, 0, 4, 4,100, 1,255, 3, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,247,110, 27, 1, 0, 0, 0,112, 0,111, 27, 1, 0, 0, 0,192,228,110, 27, - 1, 0, 0, 0, 32,230,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,228,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32,230,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,178, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, 31, 0,100, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 69, 4, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,230,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,228,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 67, 0, 64,115,196, - 0, 0, 0, 0, 0, 0, 0, 0,255,127,169, 67,254,127,115,196, 0, 0, 0, 0, 83, 1, 0, 0,100, 1, 0, 0, 18, 0, 0, 0, -223, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 18, 0, 0, 0, -223, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,100, 1,224, 3, 83, 1,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 68, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1,224, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,231,110, 27, - 1, 0, 0, 0,144,245,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,231,110, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 16,233,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 0,211,231, 19, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +192,100,232, 19, 1, 0, 0, 0,128, 40,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16,212,231, 19, 1, 0, 0, 0,240,216,231, 19, 1, 0, 0, 0, 80,217,231, 19, 1, 0, 0, 0, + 48,225,231, 19, 1, 0, 0, 0,144,225,231, 19, 1, 0, 0, 0,144, 71,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,212,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,112,212,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,212,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +208,212,231, 19, 1, 0, 0, 0, 16,212,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,208,212,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,213,231, 19, 1, 0, 0, 0, +112,212,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 48,213,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0,208,212,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,240,213,231, 19, 1, 0, 0, 0, 48,213,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,213,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 80,214,231, 19, 1, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 80,214,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,214,231, 19, 1, 0, 0, 0, +240,213,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +176,214,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0, 80,214,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,112,215,231, 19, 1, 0, 0, 0,176,214,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 6,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,215,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +208,215,231, 19, 1, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,208,215,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,216,231, 19, 1, 0, 0, 0, +112,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 48,216,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,216,231, 19, 1, 0, 0, 0,208,215,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,216,231, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,240,216,231, 19, 1, 0, 0, 0, 48,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,216,231, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 80,217,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,217,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,212,231, 19, 1, 0, 0, 0,208,212,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,176,217,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,218,231, 19, 1, 0, 0, 0, + 80,217,231, 19, 1, 0, 0, 0,112,212,231, 19, 1, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 16,218,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,218,231, 19, 1, 0, 0, 0, +176,217,231, 19, 1, 0, 0, 0,208,212,231, 19, 1, 0, 0, 0,240,213,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,112,218,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,218,231, 19, 1, 0, 0, 0, + 16,218,231, 19, 1, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0,240,213,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,208,218,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,219,231, 19, 1, 0, 0, 0, +112,218,231, 19, 1, 0, 0, 0, 48,213,231, 19, 1, 0, 0, 0,176,214,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 48,219,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,219,231, 19, 1, 0, 0, 0, +208,218,231, 19, 1, 0, 0, 0, 80,214,231, 19, 1, 0, 0, 0,176,214,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,144,219,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,219,231, 19, 1, 0, 0, 0, + 48,219,231, 19, 1, 0, 0, 0,240,213,231, 19, 1, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,240,219,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,220,231, 19, 1, 0, 0, 0, +144,219,231, 19, 1, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 80,220,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,220,231, 19, 1, 0, 0, 0, +240,219,231, 19, 1, 0, 0, 0, 80,214,231, 19, 1, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,176,220,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,221,231, 19, 1, 0, 0, 0, + 80,220,231, 19, 1, 0, 0, 0,240,213,231, 19, 1, 0, 0, 0,176,214,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 16,221,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,221,231, 19, 1, 0, 0, 0, +176,220,231, 19, 1, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0,112,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,112,221,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,221,231, 19, 1, 0, 0, 0, + 16,221,231, 19, 1, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0,208,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,208,221,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,222,231, 19, 1, 0, 0, 0, +112,221,231, 19, 1, 0, 0, 0,112,215,231, 19, 1, 0, 0, 0,208,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 48,222,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,222,231, 19, 1, 0, 0, 0, +208,221,231, 19, 1, 0, 0, 0,112,215,231, 19, 1, 0, 0, 0, 48,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,144,222,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,222,231, 19, 1, 0, 0, 0, + 48,222,231, 19, 1, 0, 0, 0,208,215,231, 19, 1, 0, 0, 0, 48,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,240,222,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80,223,231, 19, 1, 0, 0, 0, +144,222,231, 19, 1, 0, 0, 0, 16,212,231, 19, 1, 0, 0, 0,144,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 80,223,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,223,231, 19, 1, 0, 0, 0, +240,222,231, 19, 1, 0, 0, 0,144,216,231, 19, 1, 0, 0, 0,240,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,176,223,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,224,231, 19, 1, 0, 0, 0, + 80,223,231, 19, 1, 0, 0, 0, 48,213,231, 19, 1, 0, 0, 0,240,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 16,224,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,224,231, 19, 1, 0, 0, 0, +176,223,231, 19, 1, 0, 0, 0, 80,214,231, 19, 1, 0, 0, 0,240,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,112,224,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,224,231, 19, 1, 0, 0, 0, + 16,224,231, 19, 1, 0, 0, 0, 48,216,231, 19, 1, 0, 0, 0,144,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0,208,224,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,225,231, 19, 1, 0, 0, 0, +112,224,231, 19, 1, 0, 0, 0,208,215,231, 19, 1, 0, 0, 0,240,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 0, 0, 0, 48,225,231, 19, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,224,231, 19, 1, 0, 0, 0, 16,212,231, 19, 1, 0, 0, 0,112,215,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,144,225,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,229,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0,112,212,231, 19, 1, 0, 0, 0,208,212,231, 19, 1, 0, 0, 0, +240,213,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, + 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,100,232, 19, 1, 0, 0, 0, + 64,100,232, 19, 1, 0, 0, 0,112,226,231, 19, 1, 0, 0, 0,208,227,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +112,226,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208,227,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208,227,231, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,226,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, +112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,220,255, 82, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, + 48,229,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,237,231, 19, 1, 0, 0, 0,144,225,231, 19, 1, 0, 0, 0, +240,216,231, 19, 1, 0, 0, 0, 80,214,231, 19, 1, 0, 0, 0,176,214,231, 19, 1, 0, 0, 0, 48,213,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,100, 1,100, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,232,231, 19, 1, 0, 0, 0,144,236,231, 19, 1, 0, 0, 0, + 16,230,231, 19, 1, 0, 0, 0,112,231,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,230,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,112,231,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0,221, 67, 0,128, 71, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, 26, 0,100, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 16,233,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,234,110, 27, 1, 0, 0, 0,128,231,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, -110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 82, 1, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,231,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,230,231, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, + 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,100, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,234,110, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 48,236,110, 27, 1, 0, 0, 0, 16,233,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,208,232,231, 19, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0,144,236,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,111,255, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,233,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 48,235,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 48,236,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,237,110, 27, 1, 0, 0, 0,160,234,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, -109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 82, 1,203, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,235,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,233,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,237,110, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 80,239,110, 27, 1, 0, 0, 0, 48,236,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 58,254, 82, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 38, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 38, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, + 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, +184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 80,239,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,240,110, 27, 1, 0, 0, 0,192,237,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 82, 1,102, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,240,110, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,112,242,110, 27, 1, 0, 0, 0, 80,239,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 59,253, 82, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,112,242,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,244,110, 27, 1, 0, 0, 0,224,240,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, -114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, + 68, 65, 84, 65, 32, 1, 0, 0,144,236,231, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208,232,231, 19, 1, 0, 0, 0,208,233,231, 19, 1, 0, 0, 0, 48,235,231, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +240,237,231, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 13,232, 19, 1, 0, 0, 0, 48,229,231, 19, 1, 0, 0, 0, + 80,214,231, 19, 1, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0,240,213,231, 19, 1, 0, 0, 0,176,214,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 99, 4, 0, 0, 4, 4,100, 1,255, 3, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 1,232, 19, 1, 0, 0, 0,224, 11,232, 19, 1, 0, 0, 0, +208,238,231, 19, 1, 0, 0, 0, 48,240,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,238,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 48,240,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,178, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,100, 1, 31, 0,100, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0, 69, 4, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,240,231, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,238,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 67, + 0, 64,115,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,169, 67,254,127,115,196, 0, 0, 0, 0, 83, 1, 0, 0,100, 1, 0, 0, + 18, 0, 0, 0,223, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, + 18, 0, 0, 0,223, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,100, 1,224, 3, 83, 1,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 6, 0, 0,128, 7, 0, 0,101, 0, 0, 0, 68, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 1,224, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144,241,231, 19, 1, 0, 0, 0,160,255,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,241,231, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 32,243,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 82, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 32,243,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176,244,231, 19, 1, 0, 0, 0, +144,241,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 82, 1, 61, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 82, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,244,231, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 64,246,231, 19, 1, 0, 0, 0, 32,243,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,244,110, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,144,245,110, 27, 1, 0, 0, 0,112,242,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11,253, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,144,245,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, - 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 64,246,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,208,247,231, 19, 1, 0, 0, 0, +176,244,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111, +110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 82, 1,203, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 82, 1, 0, 0, 20, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,247,231, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 96,249,231, 19, 1, 0, 0, 0, 64,246,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 32,247,110, 27, 1, 0, 0, 0,163, 0, 0, 0, - 1, 0, 0, 0,128,252,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 82, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,248,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,249,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, - 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, - 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 96,249,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240,250,231, 19, 1, 0, 0, 0, +208,247,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 82, 1,102, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,249,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,251,110, 27, - 1, 0, 0, 0, 96,248,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,250,231, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,128,252,231, 19, 1, 0, 0, 0, 96,249,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 82, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,251,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192,249,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0, -227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, - 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,128,252,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,254,231, 19, 1, 0, 0, 0, +240,250,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97, +110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 82, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,128,252,110, 27, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,112, 0,111, 27, - 1, 0, 0, 0, 32,247,110, 27, 1, 0, 0, 0, 96,248,110, 27, 1, 0, 0, 0, 32,251,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,254,231, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,160,255,231, 19, 1, 0, 0, 0,128,252,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110, +103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 82, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,253,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 16,255,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,160,255,231, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16,254,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 82, 1, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,255,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,253,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 48, 1,232, 19, 1, 0, 0, 0, +164, 0, 0, 0, 1, 0, 0, 0,240, 7,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,248,133, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,248,133, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67, -129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, - 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 2,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +208, 3,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 3,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 48, 5,232, 19, 1, 0, 0, 0,112, 2,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,112, 0,111, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,252,110, 27, - 1, 0, 0, 0,176,253,110, 27, 1, 0, 0, 0, 16,255,110, 27, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 5,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +144, 6,232, 19, 1, 0, 0, 0,208, 3,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208, 1,111, 27, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16, 35,111, 27, 1, 0, 0, 0,224,227,110, 27, 1, 0, 0, 0,128,206,110, 27, - 1, 0, 0, 0, 32,206,110, 27, 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0,224,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 1, 1, 27, 3,180, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 20,111, 27, 1, 0, 0, 0, 16, 34,111, 27, 1, 0, 0, 0,176, 2,111, 27, - 1, 0, 0, 0, 32, 19,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 2,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 16, 4,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 4,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,112, 5,111, 27, 1, 0, 0, 0,176, 2,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,154, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 5,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,208, 6,111, 27, 1, 0, 0, 0, 16, 4,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 6,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 19,111, 27, 1, 0, 0, 0,112, 5,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 8,111, 27, - 1, 0, 0, 0,144, 17,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 8,111, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,192, 9,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 6,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 5,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, + 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,240, 7,232, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, +224, 11,232, 19, 1, 0, 0, 0, 48, 1,232, 19, 1, 0, 0, 0,112, 2,232, 19, 1, 0, 0, 0,144, 6,232, 19, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,192, 9,111, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 11,111, 27, 1, 0, 0, 0, 48, 8,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 11,111, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,224, 12,111, 27, 1, 0, 0, 0,192, 9,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32, 9,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128, 10,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128, 10,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 9,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,224, 12,111, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112, 14,111, 27, 1, 0, 0, 0, 80, 11,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, + 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 42, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 42, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, + 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 14,111, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 16,111, 27, 1, 0, 0, 0,224, 12,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 0, 16,111, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144, 17,111, 27, 1, 0, 0, 0,112, 14,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, - 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, - 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114, -105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144, 17,111, 27, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,224, 11,232, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 7,232, 19, 1, 0, 0, 0, 32, 9,232, 19, 1, 0, 0, 0,128, 10,232, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 64, 13,232, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 47,232, 19, 1, 0, 0, 0, +240,237,231, 19, 1, 0, 0, 0,144,216,231, 19, 1, 0, 0, 0, 48,216,231, 19, 1, 0, 0, 0,208,215,231, 19, 1, 0, 0, 0, +240,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, + 1, 1, 27, 3,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 31,232, 19, 1, 0, 0, 0, +224, 46,232, 19, 1, 0, 0, 0, 32, 14,232, 19, 1, 0, 0, 0,144, 30,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32, 14,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128, 15,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32, 19,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 6,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128, 15,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,224, 16,232, 19, 1, 0, 0, 0, 32, 14,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, + 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,154, 1, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +224, 16,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 64, 18,232, 19, 1, 0, 0, 0,128, 15,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, + 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64, 18,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,144, 30,232, 19, 1, 0, 0, 0,224, 16,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, 27, 6, 0, 0, + 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 19,232, 19, 1, 0, 0, 0, 0, 29,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +160, 19,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 21,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 21,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +192, 22,232, 19, 1, 0, 0, 0,160, 19,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, - 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,154, 1, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,252,133, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48,252,133, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 37,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 94, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, - 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, - 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, - 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, - 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 4, 6,158, 63, 79,200,141,191,244,250, 39,191, - 8,165, 39,191,170,164,167, 63,189,151,139, 63,180,164, 28, 63,149, 84, 28, 63, 1,127,159,188, 90,254, 71, 64, 8,108,228,190, - 50,247,227,190,222,212, 27,191,231, 72,168,191,216, 49, 49, 65,152, 9, 52, 65, 80, 25,195, 62,218,249,206, 62, 0,237,196,187, - 0, 0, 96,179,204, 58,186,189,131, 90,183, 61, 76, 88,131, 62, 0, 0,152, 50,254,120, 21,194,182, 5, 2, 66, 70,136,213,193, -239,214,159,192, 5, 39, 19, 66, 15,174,255,193,217,101,210, 65,219, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, - 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, - 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 4, 6,158, 63, 79,200,141,191,244,250, 39,191, - 8,165, 39,191,170,164,167, 63,189,151,139, 63,180,164, 28, 63,149, 84, 28, 63, 1,127,159,188, 90,254, 71, 64, 8,108,228,190, - 50,247,227,190,222,212, 27,191,231, 72,168,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, - 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,123, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +192, 22,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80, 24,232, 19, 1, 0, 0, 0, 48, 21,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 24,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, +224, 25,232, 19, 1, 0, 0, 0,192, 22,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128, 20,111, 27, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0,160, 24,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 21,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 23,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,192, 59, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, - 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,239, 2, 26, 0,239, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, +224, 25,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112, 27,232, 19, 1, 0, 0, 0, 80, 24,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114, +111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114, +111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 23,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224, 21,111, 27, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 40, 57, 61,194, -146,211, 11, 68,174,122,214, 66, 82, 97,202, 67,222, 2, 0, 0,239, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0, -221, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,221, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, - 0, 0,239, 2,122, 1,222, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 2,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160, 24,111, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 32, 30,111, 27, - 1, 0, 0, 0,128, 20,111, 27, 1, 0, 0, 0,224, 21,111, 27, 1, 0, 0, 0, 64, 23,111, 27, 1, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 27,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, + 0, 29,232, 19, 1, 0, 0, 0,224, 25,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -242,199, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0, 26,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 27,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, - 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, - 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, + 0, 29,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 27,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, + 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96, 27,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 28,111, 27, 1, 0, 0, 0, 0, 26,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 30,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 18,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192, 28,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 27,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0, 32, 30,111, 27, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16, 34,111, 27, 1, 0, 0, 0,160, 24,111, 27, - 1, 0, 0, 0, 0, 26,111, 27, 1, 0, 0, 0,192, 28,111, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 27, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 46, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 46, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, + 37,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 94, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 72, 1, 77,190, 0, 0, 0,128, +221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0, +191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, +223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, + 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, + 4, 6,158, 63, 79,200,141,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,189,151,139, 63,180,164, 28, 63,149, 84, 28, 63, + 1,127,159,188, 90,254, 71, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,231, 72,168,191,216, 49, 49, 65,152, 9, 52, 65, + 80, 25,195, 62,218,249,206, 62, 0,237,196,187, 0, 0, 96,179,204, 58,186,189,131, 90,183, 61, 76, 88,131, 62, 0, 0,152, 50, +254,120, 21,194,182, 5, 2, 66, 70,136,213,193,239,214,159,192, 5, 39, 19, 66, 15,174,255,193,217,101,210, 65,219, 40,160, 64, +221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0, +191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, + 4, 6,158, 63, 79,200,141,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,189,151,139, 63,180,164, 28, 63,149, 84, 28, 63, + 1,127,159,188, 90,254, 71, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,231, 72,168,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +123, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 31,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 32,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 32,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 31,111, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 16, 34,111, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 30,111, 27, 1, 0, 0, 0, 80, 31,111, 27, 1, 0, 0, 0,176, 32,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, +240, 31,232, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 16, 36,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16, 35,111, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96, 57,111, 27, - 1, 0, 0, 0,208, 1,111, 27, 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0,128,203,110, 27, 1, 0, 0, 0, 0,205,110, 27, - 1, 0, 0, 0,192,205,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,181, 1, 0, 0, - 99, 4, 0, 0, 16, 16, 28, 6,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 38,111, 27, - 1, 0, 0, 0, 96, 56,111, 27, 1, 0, 0, 0,240, 35,111, 27, 1, 0, 0, 0, 80, 37,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240, 35,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80, 37,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,195, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 28, 6, 26, 0, 28, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 6, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 33,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,176, 34,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 59, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,239, 2, 26, 0,239, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 80, 37,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 35,111, 27, - 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 84, 64,199,195, 42,160, 99, 68,240, 80,128,193, -136, 2, 4, 68, 11, 6, 0, 0, 28, 6, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 28, 6,149, 2, 11, 6, -131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 6, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 34,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 33,232, 19, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, + 0, 0, 32,193, 0, 0, 0, 68, 40, 57, 61,194,146,211, 11, 68,174,122,214, 66, 82, 97,202, 67,222, 2, 0, 0,239, 2, 0, 0, + 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,221, 2, 0, 0, + 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, + 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,239, 2,122, 1,222, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,176, 38,111, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 48, 44,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 16, 36,232, 19, 1, 0, 0, 0, +175, 0, 0, 0, 1, 0, 0, 0,240, 42,232, 19, 1, 0, 0, 0,240, 31,232, 19, 1, 0, 0, 0, 80, 33,232, 19, 1, 0, 0, 0, +176, 34,232, 19, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 66, 86, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,199, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 37,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +208, 38,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 40,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 41,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 38,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 48, 40,232, 19, 1, 0, 0, 0,112, 37,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 41,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 42,111, 27, 1, 0, 0, 0, 16, 40,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 40,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +144, 41,232, 19, 1, 0, 0, 0,208, 38,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 42,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 41,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 48, 44,111, 27, - 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 64, 52,111, 27, 1, 0, 0, 0,176, 38,111, 27, 1, 0, 0, 0, 16, 40,111, 27, - 1, 0, 0, 0,208, 42,111, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 41,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 40,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96, 45,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 46,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,240, 42,232, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, +224, 46,232, 19, 1, 0, 0, 0, 16, 36,232, 19, 1, 0, 0, 0,112, 37,232, 19, 1, 0, 0, 0,144, 41,232, 19, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192, 46,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 48,111, 27, 1, 0, 0, 0, 96, 45,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, - 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32, 48,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 49,111, 27, 1, 0, 0, 0,192, 46,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128, 49,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 50,111, 27, 1, 0, 0, 0, 32, 48,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, -104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,224, 50,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 49,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32, 44,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128, 45,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128, 45,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 44,232, 19, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +224, 46,232, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 42,232, 19, 1, 0, 0, 0, + 32, 44,232, 19, 1, 0, 0, 0,128, 45,232, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,134, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48, 0,134, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, - 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, - 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, -136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +224, 47,232, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 71,232, 19, 1, 0, 0, 0, 64, 13,232, 19, 1, 0, 0, 0, +112,215,231, 19, 1, 0, 0, 0,144,213,231, 19, 1, 0, 0, 0, 16,215,231, 19, 1, 0, 0, 0,208,215,231, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 16, 16, 28, 6,175, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51,232, 19, 1, 0, 0, 0,144, 70,232, 19, 1, 0, 0, 0, +192, 48,232, 19, 1, 0, 0, 0, 32, 50,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 48,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 32, 50,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 28, 6, 26, 0, 28, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,181, 1, 0, 0,206, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 50,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 48,232, 19, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, + 0, 0, 32,193, 0, 0, 0, 68, 84, 64,199,195, 42,160, 99, 68,240, 80,128,193,136, 2, 4, 68, 11, 6, 0, 0, 28, 6, 0, 0, + 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, + 18, 0, 0, 0,148, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, + 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 28, 6,149, 2, 11, 6,131, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 6, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 6,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128, 51,232, 19, 1, 0, 0, 0, +175, 0, 0, 0, 1, 0, 0, 0, 96, 58,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 64, 52,111, 27, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0, 96, 56,111, 27, 1, 0, 0, 0, 48, 44,111, 27, 1, 0, 0, 0, 96, 45,111, 27, 1, 0, 0, 0,224, 50,111, 27, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 53,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 55,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 66, 86, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 52,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 64, 54,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 55,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 53,111, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 54,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +160, 55,232, 19, 1, 0, 0, 0,224, 52,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96, 56,111, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 52,111, 27, 1, 0, 0, 0,160, 53,111, 27, 1, 0, 0, 0, 0, 55,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96, 57,111, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 35,111, 27, 1, 0, 0, 0, 0,202,110, 27, 1, 0, 0, 0, 96,205,110, 27, 1, 0, 0, 0, 32,206,110, 27, - 1, 0, 0, 0,128,206,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, -179, 1, 0, 0, 6, 6, 0, 3,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 62,111, 27, - 1, 0, 0, 0, 96,134,110, 27, 1, 0, 0, 0, 64, 58,111, 27, 1, 0, 0, 0, 0, 61,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64, 58,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 59,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160, 59,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 61,111, 27, 1, 0, 0, 0, 64, 58,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 55,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 57,232, 19, 1, 0, 0, 0, 64, 54,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0, 61,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 59,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,154,190, - 0,128,166, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 2, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 57,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 55,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -168, 0, 0, 0, 96, 62,111, 27, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 0, 66,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64, 63,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 64,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 96, 58,232, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, +112, 66,232, 19, 1, 0, 0, 0,128, 51,232, 19, 1, 0, 0, 0,224, 52,232, 19, 1, 0, 0, 0, 0, 57,232, 19, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160, 64,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 63,111, 27, - 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, - 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2, -104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 0, 66,111, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 16,129,110, 27, 1, 0, 0, 0, 96, 62,111, 27, - 1, 0, 0, 0, 64, 63,111, 27, 1, 0, 0, 0,160, 64,111, 27, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144, 59,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,240, 60,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, +225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240, 60,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 80, 62,232, 19, 1, 0, 0, 0,144, 59,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0, +251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80, 62,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,176, 63,232, 19, 1, 0, 0, 0,240, 60,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, +251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176, 63,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 16, 65,232, 19, 1, 0, 0, 0, 80, 62,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, +251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 16, 65,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 63,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0, +251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 50, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 50, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, + 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, +164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191, +118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, + 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, + 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191, +118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, +214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 67,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 68,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 68,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,127,110, 27, 1, 0, 0, 0, 96, 67,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,112, 66,232, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, +144, 70,232, 19, 1, 0, 0, 0, 96, 58,232, 19, 1, 0, 0, 0,144, 59,232, 19, 1, 0, 0, 0, 16, 65,232, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208, 67,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48, 69,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, + 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48, 69,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208, 67,232, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, +122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,127,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 68,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0,144, 70,232, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 66,232, 19, 1, 0, 0, 0,208, 67,232, 19, 1, 0, 0, 0, 48, 69,232, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 16,129,110, 27, - 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 0,154,131, 29, 1, 0, 0, 0, 0, 66,111, 27, 1, 0, 0, 0, 96, 67,111, 27, - 1, 0, 0, 0,176,127,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,144, 71,232, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224, 47,232, 19, 1, 0, 0, 0, 16,212,231, 19, 1, 0, 0, 0,112,215,231, 19, 1, 0, 0, 0, 48,216,231, 19, 1, 0, 0, 0, +144,216,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, + 6, 6, 0, 3,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 76,232, 19, 1, 0, 0, 0, + 64, 99,232, 19, 1, 0, 0, 0,112, 72,232, 19, 1, 0, 0, 0, 48, 75,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +112, 72,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208, 73,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64,130,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,131,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208, 73,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48, 75,232, 19, 1, 0, 0, 0,112, 72,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160,131,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,133,110, 27, 1, 0, 0, 0, 64,130,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, - 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0,133,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,140,111, 27, 1, 0, 0, 0,160,131,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240,140,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,152,131, 29, 1, 0, 0, 0, 0,133,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, -104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160,152,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,140,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48, 75,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 73,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,154,190, 0,128,166, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4,134, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48, 4,134, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, - 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, - 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, -136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, +144, 76,232, 19, 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0, 48, 80,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +112, 77,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208, 78,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208, 78,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 77,232, 19, 1, 0, 0, 0, + 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67, +239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, +205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2,104, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 48, 80,232, 19, 1, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 16, 87,232, 19, 1, 0, 0, 0,144, 76,232, 19, 1, 0, 0, 0, +112, 77,232, 19, 1, 0, 0, 0,208, 78,232, 19, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 0,154,131, 29, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0, 96,134,110, 27, 1, 0, 0, 0, 16,129,110, 27, 1, 0, 0, 0, 64,130,110, 27, 1, 0, 0, 0,160,152,131, 29, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,155,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,156,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 81,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,240, 82,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,156,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,155,131, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 82,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 80, 84,232, 19, 1, 0, 0, 0,144, 81,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96,134,110, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,154,131, 29, 1, 0, 0, 0, 96,155,131, 29, 1, 0, 0, 0,192,156,131, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 32,158,131, 29, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,240,254,131, 29, - 1, 0, 0, 0,240,200,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101, -102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0,240,162,131, 29, 1, 0, 0, 0, 80,163,131, 29, 1, 0, 0, 0,176,169,131, 29, - 1, 0, 0, 0, 16,170,131, 29, 1, 0, 0, 0, 64,221,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 46, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48,159,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,159,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,159,131, 29, - 1, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,144,159,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 48,159,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,159,131, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,144,159,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,161,131, 29, - 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0,176,160,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,161,131, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 6,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 48,162,131, 29, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,116, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,162,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144,162,131, 29, - 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240,162,131, 29, 1, 0, 0, 0, 48,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,162,131, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,163,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,176,163,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,159,131, 29, 1, 0, 0, 0,144,159,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,163,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 16,164,131, 29, 1, 0, 0, 0, 80,163,131, 29, 1, 0, 0, 0, 48,159,131, 29, 1, 0, 0, 0, 80,160,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,164,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,112,164,131, 29, 1, 0, 0, 0,176,163,131, 29, 1, 0, 0, 0,144,159,131, 29, 1, 0, 0, 0,176,160,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,164,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,208,164,131, 29, 1, 0, 0, 0, 16,164,131, 29, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,176,160,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,164,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 48,165,131, 29, 1, 0, 0, 0,112,164,131, 29, 1, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0, 16,161,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,165,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,144,165,131, 29, 1, 0, 0, 0,208,164,131, 29, 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 16,161,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,165,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,240,165,131, 29, 1, 0, 0, 0, 48,165,131, 29, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,112,161,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,165,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 80,166,131, 29, 1, 0, 0, 0,144,165,131, 29, 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0,112,161,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,166,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,176,166,131, 29, 1, 0, 0, 0,240,165,131, 29, 1, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0,208,161,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,166,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 16,167,131, 29, 1, 0, 0, 0, 80,166,131, 29, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0,208,161,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,167,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,112,167,131, 29, 1, 0, 0, 0,176,166,131, 29, 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0, 48,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,167,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,208,167,131, 29, 1, 0, 0, 0, 16,167,131, 29, 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 48,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,167,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 48,168,131, 29, 1, 0, 0, 0,112,167,131, 29, 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0, 48,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,168,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,144,168,131, 29, 1, 0, 0, 0,208,167,131, 29, 1, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0,144,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,168,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,240,168,131, 29, 1, 0, 0, 0, 48,168,131, 29, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,144,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,168,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 80,169,131, 29, 1, 0, 0, 0,144,168,131, 29, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0,240,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,169,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,176,169,131, 29, 1, 0, 0, 0,240,168,131, 29, 1, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0,240,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,169,131, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,169,131, 29, 1, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0,240,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,170,131, 29, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,176,173,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0, 48,159,131, 29, - 1, 0, 0, 0,144,159,131, 29, 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,102, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 16,162,217, 2, - 1, 0, 0, 0,112,254,131, 29, 1, 0, 0, 0,112,254,131, 29, 1, 0, 0, 0,240,170,131, 29, 1, 0, 0, 0, 80,172,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,205,129, 29, 1, 0, 0, 0,224,104,111, 27, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,170,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,172,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,102, 4, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,163,217, 2, - 1, 0, 0, 0, 48,202,139, 27, 1, 0, 0, 0, 48,202,139, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 5,128, 29, 1, 0, 0, 0,128, 7,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,172,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,170,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, -255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240,162,217, 2, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176,173,131, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 80,198,131, 29, - 1, 0, 0, 0, 16,170,131, 29, 1, 0, 0, 0, 16,161,131, 29, 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0, 48,162,131, 29, - 1, 0, 0, 0,240,159,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, -115, 3, 0, 0, 4, 4, 92, 1,116, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,158,217, 2, 1, 0, 0, 0,240,192,131, 29, - 1, 0, 0, 0,240,196,131, 29, 1, 0, 0, 0,144,174,131, 29, 1, 0, 0, 0,240,175,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 9,128, 29, 1, 0, 0, 0,224,134,133, 29, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144,174,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,175,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, - 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 31, 0, 92, 1, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0, -128, 7, 0, 0, 85, 3, 0, 0,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 31, 0, - 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,161,217, 2, 1, 0, 0, 0, 48,182, 13, 3, - 1, 0, 0, 0, 48,182, 13, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 10,128, 29, - 1, 0, 0, 0, 48, 13,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240,175,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,174,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 67, 0, 0, 85,196, 0, 0, 0, 0, 0, 0, 0, 0,252,127,165, 67,251, 63, 85,196, - 0, 0, 0, 0, 75, 1, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 92, 1, 85, 3, 75, 1, - 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,183,129, 29, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 85, 3, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,159,217, 2, 1, 0, 0, 0, 48, 40,138, 27, - 1, 0, 0, 0, 48,102,139, 27, 1, 0, 0, 0, 80,177,131, 29, 1, 0, 0, 0, 96,191,131, 29, 1, 0, 0, 0, 80, 15,128, 29, - 1, 0, 0, 0,144, 17,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 80,177,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224,178,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,160,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 74, 1, 36, 0, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,178,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,112,180,131, 29, 1, 0, 0, 0, 80,177,131, 29, 1, 0, 0, 0,176, 12,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,135,255, 74, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,112,180,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0,182,131, 29, 1, 0, 0, 0,224,178,131, 29, - 1, 0, 0, 0,144, 14,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,253, 74, 1,240, 1, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,182,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,144,183,131, 29, 1, 0, 0, 0,112,180,131, 29, 1, 0, 0, 0,240, 16,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140,254, 74, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,144,183,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32,185,131, 29, 1, 0, 0, 0, 0,182,131, 29, - 1, 0, 0, 0, 80, 19,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 74, 1, 58, 0, 20, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 84,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,176, 85,232, 19, 1, 0, 0, 0,240, 82,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,185,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,176,186,131, 29, 1, 0, 0, 0,144,183,131, 29, 1, 0, 0, 0,176, 21,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,188,253, 74, 1,102, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,176,186,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 64,188,131, 29, 1, 0, 0, 0, 32,185,131, 29, - 1, 0, 0, 0, 16, 24,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 85,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 84,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 74, 1,105, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 16, 87,232, 19, 1, 0, 0, 0, +165, 0, 0, 0, 1, 0, 0, 0, 32, 95,232, 19, 1, 0, 0, 0, 48, 80,232, 19, 1, 0, 0, 0,144, 81,232, 19, 1, 0, 0, 0, +176, 85,232, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,188,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,208,189,131, 29, 1, 0, 0, 0,176,186,131, 29, 1, 0, 0, 0, 80,246,240, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,123,252, 74, 1,168, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64, 88,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,160, 89,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, + 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,208,189,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,191,131, 29, 1, 0, 0, 0, 64,188,131, 29, - 1, 0, 0, 0,192, 29,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 74, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,160, 89,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 91,232, 19, 1, 0, 0, 0, + 64, 88,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,191,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,189,131, 29, 1, 0, 0, 0, 32, 32,241, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 0, 91,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96, 92,232, 19, 1, 0, 0, 0, +160, 89,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,243,252, 74, 1, 0, 0, 20, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96, 92,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192, 93,232, 19, 1, 0, 0, 0, + 0, 91,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 1, 0, 0,240,192,131, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,240,196,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192, 93,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 92,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,160,149,176, 21, - 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,194,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,195,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 54, 5, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48, 54, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, +224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, + 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,195,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,194,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, - 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 8,134, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 8,134, 27, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, - 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 32, 95,232, 19, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0, 64, 99,232, 19, 1, 0, 0, 0, 16, 87,232, 19, 1, 0, 0, 0, 64, 88,232, 19, 1, 0, 0, 0, +192, 93,232, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 96,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +224, 97,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 97,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 96,232, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64, 99,232, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 95,232, 19, 1, 0, 0, 0,128, 96,232, 19, 1, 0, 0, 0,224, 97,232, 19, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,192,100,232, 19, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, +160,207,232, 19, 1, 0, 0, 0, 0,211,231, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,101,232, 19, 1, 0, 0, 0,240,105,232, 19, 1, 0, 0, 0, 80,106,232, 19, 1, 0, 0, 0, +176,112,232, 19, 1, 0, 0, 0, 16,113,232, 19, 1, 0, 0, 0,144,164,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,110, 21, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,101,232, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 48,102,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,102,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +144,102,232, 19, 1, 0, 0, 0,208,101,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,144,102,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,102,232, 19, 1, 0, 0, 0, + 48,102,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +240,102,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,103,232, 19, 1, 0, 0, 0,144,102,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,103,232, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,176,103,232, 19, 1, 0, 0, 0,240,102,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,103,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 16,104,232, 19, 1, 0, 0, 0, 80,103,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,101, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 16,104,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,104,232, 19, 1, 0, 0, 0, +176,103,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +112,104,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,104,232, 19, 1, 0, 0, 0, 16,104,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,101, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,104,232, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 48,105,232, 19, 1, 0, 0, 0,112,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36, 6,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,105,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +144,105,232, 19, 1, 0, 0, 0,208,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,116, 3, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,144,105,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,105,232, 19, 1, 0, 0, 0, + 48,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +240,105,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,105,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,106,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,106,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,102,232, 19, 1, 0, 0, 0, +144,102,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,106,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,107,232, 19, 1, 0, 0, 0, 80,106,232, 19, 1, 0, 0, 0, 48,102,232, 19, 1, 0, 0, 0, + 80,103,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,107,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112,107,232, 19, 1, 0, 0, 0,176,106,232, 19, 1, 0, 0, 0,144,102,232, 19, 1, 0, 0, 0, +176,103,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,107,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,208,107,232, 19, 1, 0, 0, 0, 16,107,232, 19, 1, 0, 0, 0, 80,103,232, 19, 1, 0, 0, 0, +176,103,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,107,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48,108,232, 19, 1, 0, 0, 0,112,107,232, 19, 1, 0, 0, 0,208,101,232, 19, 1, 0, 0, 0, + 16,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,108,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144,108,232, 19, 1, 0, 0, 0,208,107,232, 19, 1, 0, 0, 0,240,102,232, 19, 1, 0, 0, 0, + 16,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,108,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240,108,232, 19, 1, 0, 0, 0, 48,108,232, 19, 1, 0, 0, 0, 80,103,232, 19, 1, 0, 0, 0, +112,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,108,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,109,232, 19, 1, 0, 0, 0,144,108,232, 19, 1, 0, 0, 0,176,103,232, 19, 1, 0, 0, 0, +112,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,109,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,109,232, 19, 1, 0, 0, 0,240,108,232, 19, 1, 0, 0, 0, 16,104,232, 19, 1, 0, 0, 0, +208,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,109,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,110,232, 19, 1, 0, 0, 0, 80,109,232, 19, 1, 0, 0, 0,112,104,232, 19, 1, 0, 0, 0, +208,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,110,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112,110,232, 19, 1, 0, 0, 0,176,109,232, 19, 1, 0, 0, 0,176,103,232, 19, 1, 0, 0, 0, + 48,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,110,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,208,110,232, 19, 1, 0, 0, 0, 16,110,232, 19, 1, 0, 0, 0,240,102,232, 19, 1, 0, 0, 0, + 48,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,110,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48,111,232, 19, 1, 0, 0, 0,112,110,232, 19, 1, 0, 0, 0,208,104,232, 19, 1, 0, 0, 0, + 48,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,111,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144,111,232, 19, 1, 0, 0, 0,208,110,232, 19, 1, 0, 0, 0,208,101,232, 19, 1, 0, 0, 0, +144,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,111,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240,111,232, 19, 1, 0, 0, 0, 48,111,232, 19, 1, 0, 0, 0, 80,103,232, 19, 1, 0, 0, 0, +144,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,111,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,112,232, 19, 1, 0, 0, 0,144,111,232, 19, 1, 0, 0, 0,112,104,232, 19, 1, 0, 0, 0, +240,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,112,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,112,232, 19, 1, 0, 0, 0,240,111,232, 19, 1, 0, 0, 0, 16,104,232, 19, 1, 0, 0, 0, +240,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,112,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,112,232, 19, 1, 0, 0, 0,144,105,232, 19, 1, 0, 0, 0, +240,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,113,232, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,176,116,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,103,232, 19, 1, 0, 0, 0, + 48,102,232, 19, 1, 0, 0, 0,144,102,232, 19, 1, 0, 0, 0,176,103,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,102, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, +112,148,231, 2, 1, 0, 0, 0, 32,207,232, 19, 1, 0, 0, 0, 32,207,232, 19, 1, 0, 0, 0,240,113,232, 19, 1, 0, 0, 0, + 80,115,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 75,239, 19, 1, 0, 0, 0, + 48, 86,193, 24, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,113,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 80,115,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,102, 4, 0, 0,127, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,150,231, 2, 1, 0, 0, 0, 48, 76, 6, 28, 1, 0, 0, 0, 48, 76, 6, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16,113,239, 19, 1, 0, 0, 0, 96,117,239, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,115,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,113,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +112,149,231, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176,116,232, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 80,141,232, 19, 1, 0, 0, 0, 16,113,232, 19, 1, 0, 0, 0, 16,104,232, 19, 1, 0, 0, 0,208,104,232, 19, 1, 0, 0, 0, + 48,105,232, 19, 1, 0, 0, 0,240,102,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0,115, 3, 0, 0, 4, 4, 92, 1,116, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,144,231, 2, 1, 0, 0, 0, +240,135,232, 19, 1, 0, 0, 0,240,139,232, 19, 1, 0, 0, 0,144,117,232, 19, 1, 0, 0, 0,240,118,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,120,239, 19, 1, 0, 0, 0, 32,118,239, 19, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144,117,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,240,118,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, + 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, + 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, + 31, 0, 92, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 37, 6, 0, 0,128, 7, 0, 0, 85, 3, 0, 0,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 1, 31, 0, 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,147,231, 2, 1, 0, 0, 0, + 48, 24, 7, 28, 1, 0, 0, 0, 48, 24, 7, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96,122,239, 19, 1, 0, 0, 0,160,124,239, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,240,118,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144,117,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 67, 0, 0, 85,196, 0, 0, 0, 0, 0, 0, 0, 0,252,127,165, 67, +251, 63, 85,196, 0, 0, 0, 0, 75, 1, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 92, 1, + 85, 3, 75, 1, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,218,206, 24, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 37, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 1, 85, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,145,231, 2, 1, 0, 0, 0, + 48,168, 6, 28, 1, 0, 0, 0, 48,246, 11, 28, 1, 0, 0, 0, 80,120,232, 19, 1, 0, 0, 0, 96,134,232, 19, 1, 0, 0, 0, +192,126,239, 19, 1, 0, 0, 0, 96,130,239, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 80,120,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,121,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,146,231, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 74, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,121,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,112,123,232, 19, 1, 0, 0, 0, 80,120,232, 19, 1, 0, 0, 0, 0, 40, 34, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 74, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,112,123,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,125,232, 19, 1, 0, 0, 0, +224,121,232, 19, 1, 0, 0, 0, 64, 42, 34, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,253, 74, 1,240, 1, + 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,125,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,144,126,232, 19, 1, 0, 0, 0,112,123,232, 19, 1, 0, 0, 0,128, 44, 34, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 74, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,144,126,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,128,232, 19, 1, 0, 0, 0, + 0,125,232, 19, 1, 0, 0, 0, 64, 47, 34, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, + 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 74, 1, 58, 0, + 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,128,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,176,129,232, 19, 1, 0, 0, 0,144,126,232, 19, 1, 0, 0, 0, 0, 50, 34, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240,196,131, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,192,131, 29, 1, 0, 0, 0, 48,194,131, 29, 1, 0, 0, 0,144,195,131, 29, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 74, 1,102, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 80,198,131, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 16,207,131, 29, 1, 0, 0, 0,176,173,131, 29, - 1, 0, 0, 0,208,142,111, 27, 1, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0,240,162,131, 29, 1, 0, 0, 0, 16,161,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 15, 15, 36, 6, -100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,126,217, 2, 1, 0, 0, 0,240,201,131, 29, 1, 0, 0, 0,176,205,131, 29, - 1, 0, 0, 0, 48,199,131, 29, 1, 0, 0, 0,144,200,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 19,128, 29, 1, 0, 0, 0, 32,165,201, 20, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,199,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,200,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, 5, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,128,217, 2, 1, 0, 0, 0, 48,244,136, 27, 1, 0, 0, 0, 48,244,136, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,128, 29, 1, 0, 0, 0, 64, 23,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,200,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,199,131, 29, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 35, 6, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 36, 6, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 26, 0, 0, 0, - 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 74, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,127,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 25,128, 29, 1, 0, 0, 0, 96, 28,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,240,201,131, 29, - 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,176,205,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,176,129,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,131,232, 19, 1, 0, 0, 0, + 32,128,232, 19, 1, 0, 0, 0,192, 52, 34, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 74, 1,105, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,202,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,204,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,131,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,208,132,232, 19, 1, 0, 0, 0,176,129,232, 19, 1, 0, 0, 0,160, 26, 34, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,204,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,202,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123,252, 74, 1,168, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,208,132,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,134,232, 19, 1, 0, 0, 0, + 64,131,232, 19, 1, 0, 0, 0,176, 59, 34, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, + 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 74, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,134,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,132,232, 19, 1, 0, 0, 0,112, 62, 34, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,230,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,230,135, 27, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, - 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,176,205,131, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,201,131, 29, 1, 0, 0, 0,240,202,131, 29, 1, 0, 0, 0, 80,204,131, 29, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 16,207,131, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,221,131, 29, 1, 0, 0, 0, 80,198,131, 29, - 1, 0, 0, 0,208,161,131, 29, 1, 0, 0, 0,112,161,131, 29, 1, 0, 0, 0,176,160,131, 29, 1, 0, 0, 0, 48,162,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0,100, 4, 0, 0, 3, 3, 92, 1, -240, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,123,217, 2, 1, 0, 0, 0,176,210,131, 29, 1, 0, 0, 0,224,219,131, 29, - 1, 0, 0, 0,240,207,131, 29, 1, 0, 0, 0, 80,209,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 30,128, 29, 1, 0, 0, 0, 48,121,129, 29, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,207,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,209,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 91, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 26, 0, 92, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, 75, 4, 0, 0, -100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 26, 0, 7, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,125,217, 2, 1, 0, 0, 0, 48,236,138, 27, 1, 0, 0, 0, 48,236,138, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 31,128, 29, 1, 0, 0, 0, 16, 34,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,209,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,207,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,165, 67, 0, 0, 68,195, 0, 0, 0, 0, 75, 1, 0, 0, - 92, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 74, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 92, 1,214, 0, 75, 1,196, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0, - 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1,214, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,124,217, 2, 1, 0, 0, 0, 48,150,132, 27, 1, 0, 0, 0, 48,150,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 36,128, 29, 1, 0, 0, 0,176, 37,128, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,210,131, 29, - 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0,224,215,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 74, 1, 0, 0, 20, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1,128, 29, - 1, 0, 0, 0,144, 1,128, 29, 1, 0, 0, 0, 32, 18,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 32, 18,130, 29, - 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 16,212,131, 29, 1, 0, 0, 0, 68, 65, 84, 65, -208, 0, 0, 0, 16,212,131, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, - 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, - 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,213,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,214,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, - 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, - 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 1, 0, 0,240,135,232, 19, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,240,139,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,214,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,213,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0, -205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, - 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,224,215,131, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,224,219,131, 29, - 1, 0, 0, 0,176,210,131, 29, 1, 0, 0, 0, 32,213,131, 29, 1, 0, 0, 0,128,214,131, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, + 32, 9,209, 27, 1, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48,137,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,144,138,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144,138,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,137,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,217,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,218,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128,218,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,217,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, + 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 58, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 58, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, + 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,234,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48,234,135, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, -115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3032,2169 +2853,1820 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240,139,232, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,135,232, 19, 1, 0, 0, 0, 48,137,232, 19, 1, 0, 0, 0,144,138,232, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,224,219,131, 29, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,215,131, 29, 1, 0, 0, 0, 32,217,131, 29, 1, 0, 0, 0,128,218,131, 29, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 64,221,131, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16,207,131, 29, 1, 0, 0, 0,144,162,131, 29, 1, 0, 0, 0, 80,160,131, 29, 1, 0, 0, 0,112,161,131, 29, - 1, 0, 0, 0,240,162,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0,101, 0, 0, 0, -100, 4, 0, 0, 1, 1, 36, 6, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,128,217, 2, 1, 0, 0, 0, 80,249,131, 29, - 1, 0, 0, 0,112,253,131, 29, 1, 0, 0, 0, 32,222,131, 29, 1, 0, 0, 0,240,247,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 40,128, 29, 1, 0, 0, 0, 48, 92,135, 29, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,222,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,223,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 6, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, - 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,137,217, 2, 1, 0, 0, 0, 48,216,129, 27, - 1, 0, 0, 0, 48,216,129, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 42,128, 29, - 1, 0, 0, 0,112, 45,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128,223,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,231,131, 29, 1, 0, 0, 0, 32,222,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0,128, 91,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,128, 91,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,110, 3,143, 0, -110, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0,247, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,110, 3, - 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,133,217, 2, 1, 0, 0, 0, 48, 6, 21, 3, - 1, 0, 0, 0, 48, 46, 21, 3, 1, 0, 0, 0,224,224,131, 29, 1, 0, 0, 0,144,229,131, 29, 1, 0, 0, 0,144, 47,128, 29, - 1, 0, 0, 0,208, 49,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,224,224,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,226,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,134,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,226,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0,228,131, 29, 1, 0, 0, 0,224,224,131, 29, 1, 0, 0, 0, 16, 88,245, 26, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 0,228,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,229,131, 29, 1, 0, 0, 0,112,226,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111,108,115, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,252,143, 0,244, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 80,141,232, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,150,232, 19, 1, 0, 0, 0, +176,116,232, 19, 1, 0, 0, 0,208,101,232, 19, 1, 0, 0, 0,144,105,232, 19, 1, 0, 0, 0,240,105,232, 19, 1, 0, 0, 0, + 16,104,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, + 15, 15, 36, 6,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,106,231, 2, 1, 0, 0, 0,240,144,232, 19, 1, 0, 0, 0, +176,148,232, 19, 1, 0, 0, 0, 48,142,232, 19, 1, 0, 0, 0,144,143,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,132,239, 19, 1, 0, 0, 0,144,163,208, 27, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48,142,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,144,143,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,229,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116, -105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116, -105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77,101,115,104, 32, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,124,252,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,231,131, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,234,131, 29, 1, 0, 0, 0,128,223,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0,127, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, - 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,135,217, 2, 1, 0, 0, 0, 48, 48,134, 27, - 1, 0, 0, 0, 48, 48,134, 27, 1, 0, 0, 0,128,232,131, 29, 1, 0, 0, 0,128,232,131, 29, 1, 0, 0, 0,240, 51,128, 29, - 1, 0, 0, 0, 48, 54,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,128,232,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,136,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97, -115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97, -115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0,116, 32, 77, -111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,234,131, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,240,247,131, 29, 1, 0, 0, 0, 32,231,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,143,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,102,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -171, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -171, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,172, 3,163, 0,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,176,130,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,235,131, 29, - 1, 0, 0, 0, 96,246,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,235,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0,237,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 0,237,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144,238,131, 29, 1, 0, 0, 0,112,235,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112, -101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,251,163, 0, 58, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, 26, 0, 36, 6, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 26, 0, 5, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,108,231, 2, 1, 0, 0, 0, 48,106, 7, 28, 1, 0, 0, 0, + 48,106, 7, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,138,239, 19, 1, 0, 0, 0, + 0,141,239, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144,143,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,142,232, 19, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 35, 6, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 36, 6, 74, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, + 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 6, 74, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,107,231, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,143,239, 19, 1, 0, 0, 0, + 48,148,239, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +240,144,232, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,176,148,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144,238,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 32,240,131, 29, 1, 0, 0, 0, 0,237,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,145,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 80,147,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,147,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,145,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 32,240,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176,241,131, 29, 1, 0, 0, 0,144,238,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,251,163, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176,241,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 64,243,131, 29, 1, 0, 0, 0, 32,240,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, + 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 62, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48, 62, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, + 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,184,251,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 64,243,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,208,244,131, 29, 1, 0, 0, 0,176,241,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, - 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, - 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114, -105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,251,163, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,244,131, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 96,246,131, 29, 1, 0, 0, 0, 64,243,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77,101,115,104, 32, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 23,252,163, 0,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,176,148,232, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,144,232, 19, 1, 0, 0, 0,240,145,232, 19, 1, 0, 0, 0, 80,147,232, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 96,246,131, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,244,131, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 16,150,232, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,164,232, 19, 1, 0, 0, 0, + 80,141,232, 19, 1, 0, 0, 0,208,104,232, 19, 1, 0, 0, 0,112,104,232, 19, 1, 0, 0, 0,176,103,232, 19, 1, 0, 0, 0, + 48,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0,117, 3, 0, 0,100, 4, 0, 0, + 3, 3, 92, 1,240, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,104,231, 2, 1, 0, 0, 0,176,153,232, 19, 1, 0, 0, 0, + 48,163,232, 19, 1, 0, 0, 0,240,150,232, 19, 1, 0, 0, 0, 80,152,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,208,149,239, 19, 1, 0, 0, 0,208, 20,128, 27, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,150,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 80,152,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,174, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 92, 1, 26, 0, 92, 1, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, + 75, 4, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 26, 0, 7, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,105,231, 2, 1, 0, 0, 0, 48, 20, 8, 28, 1, 0, 0, 0, + 48, 20, 8, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,151,239, 19, 1, 0, 0, 0, + 16,154,239, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,152,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,150,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,165, 67, 0, 0, 68,195, 0, 0, 0, 0, + 75, 1, 0, 0, 92, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 74, 1, 0, 0, 18, 0, 0, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 92, 1,214, 0, 75, 1,196, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 6, 0, 0,128, 7, 0, 0, +117, 3, 0, 0, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1,214, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,119,230, 2, 1, 0, 0, 0, 48, 48, 5, 28, 1, 0, 0, 0, + 48, 48, 5, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,156,239, 19, 1, 0, 0, 0, + 96,158,239, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176,153,232, 19, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, 48,159,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,247,131, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,234,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 86,209, 27, 1, 0, 0, 0,144, 86,209, 27, 1, 0, 0, 0, 16,155,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 5,230, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,208,129,217, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 56,128, 29, 1, 0, 0, 0, 64, 71,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,238,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,238,135, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 19,198, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, 26, 63,185, 62, - 35, 44,185, 62,147,180,109,188,122, 73,177, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65, -214,211,111, 65, 99,240,191, 62,110,116, 85, 63, 48,185, 70,188, 0, 0, 78,180,246,235,132,190,156, 35, 0, 62,130, 17, 20, 63, - 0, 0,192,178, 67,108,117,194,185,204,216, 65,105,156, 5,194,213,247,159,192,235, 62,114, 66, 61,254,213,193,158,225, 3, 66, - 56, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, 26, 63,185, 62, - 35, 44,185, 62,147,180,109,188,122, 73,177, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65, -214,211,111, 65, 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 89,186, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,188,189,169, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, + 16,155,232, 19, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 96,155,232, 19, 1, 0, 0, 0, + 68, 65, 84, 65,208, 0, 0, 0, 96,155,232, 19, 1, 0, 0, 0,219, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 48,154, 5, 3, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, + 48,154, 5, 3, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,166, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,182, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +112,193,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,194, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +112,191,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,162, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +128,185,234, 19, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,156,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +208,157,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 55, 0, 0, 67, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,157,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,156,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, + 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 3, 0, + 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 48,159,232, 19, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, + 48,163,232, 19, 1, 0, 0, 0,176,153,232, 19, 1, 0, 0, 0,112,156,232, 19, 1, 0, 0, 0,208,157,232, 19, 1, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 80,249,131, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,112,253,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,250,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,252,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,252,131, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,250,131, 29, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,112,253,131, 29, - 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,249,131, 29, 1, 0, 0, 0,176,250,131, 29, - 1, 0, 0, 0, 16,252,131, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,240,254,131, 29, - 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,240, 38,110, 27, 1, 0, 0, 0, 32,158,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0,224, 4,132, 29, - 1, 0, 0, 0, 64, 5,132, 29, 1, 0, 0, 0,192, 12,132, 29, 1, 0, 0, 0, 32, 13,132, 29, 1, 0, 0, 0, 48, 16,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 0,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96, 0,132, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0, 96, 0,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 1,132, 29, - 1, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 32, 1,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 1,132, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 3,132, 29, - 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 0, 3,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96, 3,132, 29, 1, 0, 0, 0,160, 2,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96, 3,132, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0, 0, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0, 96, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,180, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 4,132, 29, - 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,128, 4,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224, 4,132, 29, 1, 0, 0, 0, 32, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224, 4,132, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 60, 1,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 5,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,160, 5,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0,132, 29, 1, 0, 0, 0,192, 0,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 5,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 6,132, 29, 1, 0, 0, 0, 64, 5,132, 29, 1, 0, 0, 0, 96, 0,132, 29, 1, 0, 0, 0,128, 1,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 6,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 96, 6,132, 29, 1, 0, 0, 0,160, 5,132, 29, 1, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0,224, 1,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 6,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,192, 6,132, 29, 1, 0, 0, 0, 0, 6,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0,224, 1,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 6,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 32, 7,132, 29, 1, 0, 0, 0, 96, 6,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0, 64, 2,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 7,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,128, 7,132, 29, 1, 0, 0, 0,192, 6,132, 29, 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,160, 2,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 7,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,224, 7,132, 29, 1, 0, 0, 0, 32, 7,132, 29, 1, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0, 0, 3,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 7,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 64, 8,132, 29, 1, 0, 0, 0,128, 7,132, 29, 1, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0, 0, 3,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 8,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,160, 8,132, 29, 1, 0, 0, 0,224, 7,132, 29, 1, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0, 64, 2,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 8,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 9,132, 29, 1, 0, 0, 0, 64, 8,132, 29, 1, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0, 0, 3,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 9,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 96, 9,132, 29, 1, 0, 0, 0,160, 8,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 96, 3,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 9,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,192, 9,132, 29, 1, 0, 0, 0, 0, 9,132, 29, 1, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0, 96, 3,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 9,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 32, 10,132, 29, 1, 0, 0, 0, 96, 9,132, 29, 1, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0, 96, 3,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 10,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,128, 10,132, 29, 1, 0, 0, 0,192, 9,132, 29, 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0, 32, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 10,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,224, 10,132, 29, 1, 0, 0, 0, 32, 10,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 32, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 10,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 64, 11,132, 29, 1, 0, 0, 0,128, 10,132, 29, 1, 0, 0, 0, 96, 3,132, 29, 1, 0, 0, 0,192, 3,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 11,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,160, 11,132, 29, 1, 0, 0, 0,224, 10,132, 29, 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,128, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 11,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 12,132, 29, 1, 0, 0, 0, 64, 11,132, 29, 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0,128, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 12,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 96, 12,132, 29, 1, 0, 0, 0,160, 11,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0,224, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 12,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,192, 12,132, 29, 1, 0, 0, 0, 0, 12,132, 29, 1, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0,224, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 12,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 12,132, 29, 1, 0, 0, 0,128, 4,132, 29, 1, 0, 0, 0,224, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32, 13,132, 29, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,192, 16,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0, 96, 0,132, 29, - 1, 0, 0, 0,192, 0,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,122,132, 29, 1, 0, 0, 0,128,122,132, 29, 1, 0, 0, 0, 0, 14,132, 29, 1, 0, 0, 0, 96, 15,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 14,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 15,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 15,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 14,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, -255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,192, 16,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,176, 46,132, 29, - 1, 0, 0, 0, 32, 13,132, 29, 1, 0, 0, 0, 0, 3,132, 29, 1, 0, 0, 0,160, 2,132, 29, 1, 0, 0, 0, 96, 3,132, 29, - 1, 0, 0, 0, 32, 1,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, -179, 1, 0, 0, 4, 4, 96, 1,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,132, 29, - 1, 0, 0, 0, 80, 45,132, 29, 1, 0, 0, 0,160, 17,132, 29, 1, 0, 0, 0, 0, 19,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160, 17,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 19,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,176, 67, 0, 0, 0, 0, - 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 1, 31, 0, 96, 1, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0, -128, 7, 0, 0,149, 1, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 31, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0, 19,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 17,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,167, 67,254,127,193,195, - 0, 0, 0, 0, 79, 1, 0, 0, 96, 1, 0, 0, 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 96, 1,149, 1, 79, 1, -131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1,149, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 20,132, 29, 1, 0, 0, 0,112, 34,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 96, 20,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240, 21,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 78, 1, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240, 21,132, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,128, 23,132, 29, 1, 0, 0, 0, 96, 20,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,135,255, 78, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,128, 23,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16, 25,132, 29, 1, 0, 0, 0,240, 21,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 78, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16, 25,132, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,160, 26,132, 29, 1, 0, 0, 0,128, 23,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140,254, 78, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,160, 26,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48, 28,132, 29, 1, 0, 0, 0, 16, 25,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 78, 1, 58, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 28,132, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,192, 29,132, 29, 1, 0, 0, 0,160, 26,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,160,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208,161,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, + 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,161,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,160,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,188,253, 78, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,192, 29,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 31,132, 29, 1, 0, 0, 0, 48, 28,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 78, 1,105, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66, 5, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48, 66, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 31,132, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,224, 32,132, 29, 1, 0, 0, 0,192, 29,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,163,232, 19, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,159,232, 19, 1, 0, 0, 0,112,160,232, 19, 1, 0, 0, 0, +208,161,232, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144,164,232, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16,150,232, 19, 1, 0, 0, 0,144,105,232, 19, 1, 0, 0, 0, 80,103,232, 19, 1, 0, 0, 0, +112,104,232, 19, 1, 0, 0, 0,240,105,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, +101, 0, 0, 0,100, 4, 0, 0, 1, 1, 36, 6, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,109,231, 2, 1, 0, 0, 0, + 0,202,232, 19, 1, 0, 0, 0, 32,206,232, 19, 1, 0, 0, 0,112,165,232, 19, 1, 0, 0, 0,160,200,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,162,239, 19, 1, 0, 0, 0,112,137, 47, 27, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112,165,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208,166,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,196, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 36, 6, + 26, 0, 36, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 6, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36, 6, 26, 0, 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,118,231, 2, 1, 0, 0, 0, + 48,230, 4, 28, 1, 0, 0, 0, 48,230, 4, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,163,239, 19, 1, 0, 0, 0, 48, 82,194, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,166,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208,183,232, 19, 1, 0, 0, 0, +112,165,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0,128, 91,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0,128, 91,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +110, 3,143, 0,110, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,159, 0, 0, 0,247, 0, 0, 0,100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 0,110, 3, 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,114,231, 2, 1, 0, 0, 0, + 48,232, 6, 28, 1, 0, 0, 0, 48, 30, 12, 28, 1, 0, 0, 0, 48,168,232, 19, 1, 0, 0, 0, 64,182,232, 19, 1, 0, 0, 0, + 80, 84,194, 24, 1, 0, 0, 0,144, 86,194, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48,168,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,169,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,115,231, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101, +108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,169,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 80,171,232, 19, 1, 0, 0, 0, 48,168,232, 19, 1, 0, 0, 0, 80,239, 36, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, +100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, +100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35,253, 78, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,224, 32,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112, 34,132, 29, 1, 0, 0, 0, 80, 31,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 78, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 80,171,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,172,232, 19, 1, 0, 0, 0, +192,169,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111, +108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,252,143, 0,244, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,172,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,112,174,232, 19, 1, 0, 0, 0, 80,171,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, + 95,111,112,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, + 95,111,112,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,252,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,112,174,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,176,232, 19, 1, 0, 0, 0, +224,172,232, 19, 1, 0, 0, 0, 48,159, 38, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,114,117,115,104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115,254,143, 0, 57, 1, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 34,132, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 32,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,176,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,144,177,232, 19, 1, 0, 0, 0,112,174,232, 19, 1, 0, 0, 0,112,161, 38, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111, +111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111, +111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171,253,143, 0,176, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,144,177,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,179,232, 19, 1, 0, 0, 0, + 0,176,232, 19, 1, 0, 0, 0,176,163, 38, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116,114,111,107,101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,253,143, 0,233, 0, + 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,179,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,176,180,232, 19, 1, 0, 0, 0,144,177,232, 19, 1, 0, 0, 0,240,165, 38, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 99,117, +114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 99,117, +114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,176,180,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,182,232, 19, 1, 0, 0, 0, + 32,179,232, 19, 1, 0, 0, 0,240,174, 38, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,112,114,111,106,101, 99,116,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,112,114,111,106,101, 99,116,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,106,101, 99,116, 32, + 80, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,189,253,143, 0,155, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,182,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,180,232, 19, 1, 0, 0, 0, 48,168, 38, 27, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,243,252, 78, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 1, 0, 0, 0, 36,132, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 96, 41,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126,253,143, 0,149, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208,183,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192,186,232, 19, 1, 0, 0, 0, +208,166,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0, 1,195, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,159, 0, 0, 0,127, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 0,120, 0, 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,116,231, 2, 1, 0, 0, 0, + 48,102, 9, 28, 1, 0, 0, 0, 48,102, 9, 28, 1, 0, 0, 0, 48,185,232, 19, 1, 0, 0, 0, 48,185,232, 19, 1, 0, 0, 0, +176, 88,194, 24, 1, 0, 0, 0,240, 90,194, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48,185,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160,117,231, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,101,116, 32, 79, 98,106,101, + 99,116, 32, 77,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,255,144, 0,101, 0, + 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 37,132, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 38,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,186,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,160,200,232, 19, 1, 0, 0, 0,208,183,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,143,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,102,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,171, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0,171, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,172, 3,163, 0,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 6, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 16,111,231, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32,188,232, 19, 1, 0, 0, 0, 16,199,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,188,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,176,189,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 38,132, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 40,132, 29, 1, 0, 0, 0, 64, 37,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,176,189,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,191,232, 19, 1, 0, 0, 0, + 32,188,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80, +101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,251,163, 0, 58, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0, -235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,191,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,208,192,232, 19, 1, 0, 0, 0,176,189,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116, +105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116, +105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 40,132, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 38,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0, -235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 96, 41,132, 29, - 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 80, 45,132, 29, 1, 0, 0, 0, 0, 36,132, 29, 1, 0, 0, 0, 64, 37,132, 29, - 1, 0, 0, 0, 0, 40,132, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,208,192,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,194,232, 19, 1, 0, 0, 0, + 64,191,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,251,163, 0, 3, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,194,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,240,195,232, 19, 1, 0, 0, 0,208,192,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97, +103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97, +103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144, 42,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 43,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,251,163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240, 43,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 42,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,240,195,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,197,232, 19, 1, 0, 0, 0, + 96,194,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, +109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,251,163, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,197,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 16,199,232, 19, 1, 0, 0, 0,240,195,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115, +112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115, +112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,242,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48,242,135, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, -115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,252,163, 0,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 16,199,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128,197,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,200,232, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,186,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 80, 45,132, 29, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 41,132, 29, 1, 0, 0, 0,144, 42,132, 29, 1, 0, 0, 0,240, 43,132, 29, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176, 46,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 48, 80,132, 29, - 1, 0, 0, 0,192, 16,132, 29, 1, 0, 0, 0, 0, 0,132, 29, 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,160, 2,132, 29, - 1, 0, 0, 0, 0, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, -179, 1, 0, 0, 17, 17, 32, 6,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 53,132, 29, - 1, 0, 0, 0, 48, 79,132, 29, 1, 0, 0, 0,144, 47,132, 29, 1, 0, 0, 0,224, 51,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,144, 47,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 48,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 32, 6, 26, 0, 32, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,240, 48,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 51,132, 29, 1, 0, 0, 0,144, 47,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,196,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,196,195, - 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,154, 1,203, 0, -136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,154, 1, - 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 50,132, 29, 1, 0, 0, 0, 80, 50,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 80, 50,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111, -112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111, -112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 51,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 48,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, - 0, 0,112, 67,228, 46, 44,195,220,133,181, 68,162,102,238,194,168,153,179, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0, -153, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0, -153, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,154, 1, 51, 5,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 64, 53,132, 29, 1, 0, 0, 0,175, 0, 0, 0, - 1, 0, 0, 0,224, 57,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 53,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 55,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 55,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,128, 56,132, 29, 1, 0, 0, 0,192, 53,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 56,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 55,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,116,190, 0,128,158, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, -122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,224, 57,132, 29, 1, 0, 0, 0,168, 0, 0, 0, - 1, 0, 0, 0,128, 61,132, 29, 1, 0, 0, 0, 64, 53,132, 29, 1, 0, 0, 0,192, 53,132, 29, 1, 0, 0, 0,128, 56,132, 29, - 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 58,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 60,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 60,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 58,132, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, - 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0, -121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0, -121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2,104, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128, 61,132, 29, 1, 0, 0, 0,174, 0, 0, 0, - 1, 0, 0, 0, 0, 67,132, 29, 1, 0, 0, 0,224, 57,132, 29, 1, 0, 0, 0,192, 58,132, 29, 1, 0, 0, 0, 32, 60,132, 29, - 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0, +160, 0, 0, 0, 35, 6, 0, 0,127, 0, 0, 0,100, 4, 0, 0,132, 5,230, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,110,231, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 93,194, 24, 1, 0, 0, 0,176,119,194, 24, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 70, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 70, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 19,198, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, + 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, +248,209,213, 64, 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, + 26, 63,185, 62, 35, 44,185, 62,147,180,109,188,122, 73,177, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 9,185,108, 65,214,211,111, 65, 99,240,191, 62,110,116, 85, 63, 48,185, 70,188, 0, 0, 78,180,246,235,132,190,156, 35, 0, 62, +130, 17, 20, 63, 0, 0,192,178, 67,108,117,194,185,204,216, 65,105,156, 5,194,213,247,159,192,235, 62,114, 66, 61,254,213,193, +158,225, 3, 66, 56, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63,180,157,229, 62,184, 38, 31,191, 48,180, 81,191,184,158, 81,191,118, 90,127, 63,197,108,153, 62, + 26, 63,185, 62, 35, 44,185, 62,147,180,109,188,122, 73,177, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 9,185,108, 65,214,211,111, 65, 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 89,186, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 89,186, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,188,189,169, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 62,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 64,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, - 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 64,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 65,132, 29, - 1, 0, 0, 0,224, 62,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 68, 65, 84, 65, 32, 1, 0, 0, 0,202,232, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 32,206,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,203,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192,204,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,204,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,203,232, 19, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, + 32,206,232, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202,232, 19, 1, 0, 0, 0, + 96,203,232, 19, 1, 0, 0, 0,192,204,232, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, +160,207,232, 19, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,123,233, 19, 1, 0, 0, 0,192,100,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, + 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,208,232, 19, 1, 0, 0, 0, +144,213,232, 19, 1, 0, 0, 0,240,213,232, 19, 1, 0, 0, 0,112,221,232, 19, 1, 0, 0, 0,208,221,232, 19, 1, 0, 0, 0, + 48, 94,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,176,208,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,209,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 16,209,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,209,232, 19, 1, 0, 0, 0,176,208,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,209,232, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,208,209,232, 19, 1, 0, 0, 0, 16,209,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,209,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 48,210,232, 19, 1, 0, 0, 0,112,209,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 48,210,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,210,232, 19, 1, 0, 0, 0, +208,209,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +144,210,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,240,210,232, 19, 1, 0, 0, 0, 48,210,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240,210,232, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 80,211,232, 19, 1, 0, 0, 0,144,210,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,211,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +176,211,232, 19, 1, 0, 0, 0,240,210,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,180, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,176,211,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16,212,232, 19, 1, 0, 0, 0, + 80,211,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 16,212,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,112,212,232, 19, 1, 0, 0, 0,176,211,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112,212,232, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,208,212,232, 19, 1, 0, 0, 0, 16,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 5,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,208,212,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 48,213,232, 19, 1, 0, 0, 0,112,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 5,100, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 48,213,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,144,213,232, 19, 1, 0, 0, 0, +208,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,180, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +144,213,232, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,213,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,213,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,214,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,209,232, 19, 1, 0, 0, 0, +112,209,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,214,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,214,232, 19, 1, 0, 0, 0,240,213,232, 19, 1, 0, 0, 0, 16,209,232, 19, 1, 0, 0, 0, + 48,210,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,214,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,215,232, 19, 1, 0, 0, 0, 80,214,232, 19, 1, 0, 0, 0,112,209,232, 19, 1, 0, 0, 0, +144,210,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,215,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112,215,232, 19, 1, 0, 0, 0,176,214,232, 19, 1, 0, 0, 0, 48,210,232, 19, 1, 0, 0, 0, +144,210,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,215,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,208,215,232, 19, 1, 0, 0, 0, 16,215,232, 19, 1, 0, 0, 0, 48,210,232, 19, 1, 0, 0, 0, +240,210,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,215,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48,216,232, 19, 1, 0, 0, 0,112,215,232, 19, 1, 0, 0, 0,240,210,232, 19, 1, 0, 0, 0, + 80,211,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,216,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144,216,232, 19, 1, 0, 0, 0,208,215,232, 19, 1, 0, 0, 0,208,209,232, 19, 1, 0, 0, 0, +176,211,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,216,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240,216,232, 19, 1, 0, 0, 0, 48,216,232, 19, 1, 0, 0, 0, 80,211,232, 19, 1, 0, 0, 0, +176,211,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,216,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,217,232, 19, 1, 0, 0, 0,144,216,232, 19, 1, 0, 0, 0,176,208,232, 19, 1, 0, 0, 0, +240,210,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,217,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,217,232, 19, 1, 0, 0, 0,240,216,232, 19, 1, 0, 0, 0,176,208,232, 19, 1, 0, 0, 0, +176,211,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,217,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,218,232, 19, 1, 0, 0, 0, 80,217,232, 19, 1, 0, 0, 0,144,210,232, 19, 1, 0, 0, 0, + 16,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,218,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112,218,232, 19, 1, 0, 0, 0,176,217,232, 19, 1, 0, 0, 0,208,209,232, 19, 1, 0, 0, 0, + 16,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,218,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,208,218,232, 19, 1, 0, 0, 0, 16,218,232, 19, 1, 0, 0, 0, 80,211,232, 19, 1, 0, 0, 0, + 16,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,218,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48,219,232, 19, 1, 0, 0, 0,112,218,232, 19, 1, 0, 0, 0,112,212,232, 19, 1, 0, 0, 0, +208,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,219,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144,219,232, 19, 1, 0, 0, 0,208,218,232, 19, 1, 0, 0, 0,144,210,232, 19, 1, 0, 0, 0, +208,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,219,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240,219,232, 19, 1, 0, 0, 0, 48,219,232, 19, 1, 0, 0, 0, 16,212,232, 19, 1, 0, 0, 0, +112,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,219,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,220,232, 19, 1, 0, 0, 0,144,219,232, 19, 1, 0, 0, 0,240,210,232, 19, 1, 0, 0, 0, + 48,213,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,220,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,220,232, 19, 1, 0, 0, 0,240,219,232, 19, 1, 0, 0, 0,112,212,232, 19, 1, 0, 0, 0, + 48,213,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,220,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,221,232, 19, 1, 0, 0, 0, 80,220,232, 19, 1, 0, 0, 0, 48,210,232, 19, 1, 0, 0, 0, +144,213,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,221,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112,221,232, 19, 1, 0, 0, 0,176,220,232, 19, 1, 0, 0, 0,208,212,232, 19, 1, 0, 0, 0, +144,213,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,221,232, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,221,232, 19, 1, 0, 0, 0, 48,213,232, 19, 1, 0, 0, 0, +144,213,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208,221,232, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,112,225,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,210,232, 19, 1, 0, 0, 0, + 16,209,232, 19, 1, 0, 0, 0,112,209,232, 19, 1, 0, 0, 0,144,210,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96,123,233, 19, 1, 0, 0, 0, 96,123,233, 19, 1, 0, 0, 0,176,222,232, 19, 1, 0, 0, 0, + 16,224,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,222,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 16,224,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,224,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,222,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,225,232, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +192, 0,233, 19, 1, 0, 0, 0,208,221,232, 19, 1, 0, 0, 0,176,211,232, 19, 1, 0, 0, 0, 80,211,232, 19, 1, 0, 0, 0, + 16,212,232, 19, 1, 0, 0, 0,208,209,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0,179, 1, 0, 0, 4, 4, 96, 1,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +176,244,232, 19, 1, 0, 0, 0, 96,255,232, 19, 1, 0, 0, 0, 80,226,232, 19, 1, 0, 0, 0,176,227,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,226,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,176,227,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,176, 67, + 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, + 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 96, 1, + 31, 0, 96, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 6, 0, 0,128, 7, 0, 0,149, 1, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,176,227,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,226,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,167, 67, +254,127,193,195, 0, 0, 0, 0, 79, 1, 0, 0, 96, 1, 0, 0, 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 18, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 96, 1, +149, 1, 79, 1,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 6, 0, 0,128, 7, 0, 0, 0, 0, 0, 0,148, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 1,149, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,229,232, 19, 1, 0, 0, 0, 32,243,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 16,229,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,230,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 78, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,230,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 48,232,232, 19, 1, 0, 0, 0, 16,229,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 78, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 65,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 64,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, - 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 0, 67,132, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16, 75,132, 29, - 1, 0, 0, 0,128, 61,132, 29, 1, 0, 0, 0,224, 62,132, 29, 1, 0, 0, 0,160, 65,132, 29, 1, 0, 0, 0, 8, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48,232,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,233,232, 19, 1, 0, 0, 0, +160,230,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 78, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,233,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 80,235,232, 19, 1, 0, 0, 0, 48,232,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 68,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,144, 69,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 69,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,240, 70,132, 29, 1, 0, 0, 0, 48, 68,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 70,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 80, 72,132, 29, 1, 0, 0, 0,144, 69,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 72,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,176, 73,132, 29, 1, 0, 0, 0,240, 70,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 73,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 72,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48,246,135, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,246,135, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, - 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, - 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, - 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 78, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 80,235,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,236,232, 19, 1, 0, 0, 0, +192,233,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, + 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 78, 1, 58, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224,236,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,112,238,232, 19, 1, 0, 0, 0, 80,235,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 16, 75,132, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 48, 79,132, 29, 1, 0, 0, 0, 0, 67,132, 29, - 1, 0, 0, 0, 48, 68,132, 29, 1, 0, 0, 0,176, 73,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 76,132, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 77,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, 78, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 77,132, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 76,132, 29, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,112,238,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,240,232, 19, 1, 0, 0, 0, +224,236,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 48, 79,132, 29, - 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 75,132, 29, 1, 0, 0, 0,112, 76,132, 29, - 1, 0, 0, 0,208, 77,132, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253, 78, 1,105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0,240,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,144,241,232, 19, 1, 0, 0, 0,112,238,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48, 80,132, 29, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,112,102,132, 29, 1, 0, 0, 0,176, 46,132, 29, 1, 0, 0, 0,192, 3,132, 29, - 1, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0,224, 1,132, 29, 1, 0, 0, 0, 96, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 9, 9, 72, 2,175, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,250,135, 27, 1, 0, 0, 0, 16,101,132, 29, 1, 0, 0, 0, 16, 81,132, 29, - 1, 0, 0, 0,112, 82,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 81,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,112, 82,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 18, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,181, 67, 0, 0,200, 65, 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 72, 2, 26, 0, 72, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, 78, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 82,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 81,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, - 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0,120, 27, 19, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, -148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, - 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 72, 2,149, 2, 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48,250,135, 27, 1, 0, 0, 0,170, 0, 0, 0, - 1, 0, 0, 0,144, 86,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,144,241,232, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 32,243,232, 19, 1, 0, 0, 0, + 0,240,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, + 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253, 78, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32,243,232, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,241,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, 78, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 1, 0, 0,176,244,232, 19, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,112,251,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,245,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 80,247,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, + 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,247,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,176,248,232, 19, 1, 0, 0, 0,240,245,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 83,132, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 85,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,182, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,108, 1, 26, 0,108, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 41, 1, 0, 0, - 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, +112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 85,132, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 83,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 67, 0, 0,210,195, 0, 0, 0, 0, 91, 1, 0, 0, -108, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 90, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,108, 1,182, 1, 91, 1,164, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 67, 1, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176,248,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 16,250,232, 19, 1, 0, 0, 0, 80,247,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 86,132, 29, - 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0,192, 91,132, 29, 1, 0, 0, 0, 48,250,135, 27, 1, 0, 0, 0,208, 83,132, 29, - 1, 0, 0, 0, 48, 85,132, 29, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 16,250,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,248,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, +112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,203,107, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 80,203,107, 27, - 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,240, 87,132, 29, 1, 0, 0, 0, 68, 65, 84, 65, -208, 0, 0, 0,240, 87,132, 29, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, - 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, - 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 89,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 90,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,162, 67, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,128,137, 67, - 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0, 68, 1, 30, 0, 68, 1, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0,252, 3, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 1, 30, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +112,251,232, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, 96,255,232, 19, 1, 0, 0, 0,176,244,232, 19, 1, 0, 0, 0, +240,245,232, 19, 1, 0, 0, 0, 16,250,232, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 90,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 89,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 67, 0, 0,137,196, 0, 0, 0, 0, 0, 0, 0, 0, -254,127,153, 67,253,127,198,195, 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, - 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0, 68, 1,159, 1, 51, 1,141, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, 93, 2, 0, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 1,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,192, 91,132, 29, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 32, 97,132, 29, - 1, 0, 0, 0,144, 86,132, 29, 1, 0, 0, 0, 0, 89,132, 29, 1, 0, 0, 0, 96, 90,132, 29, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,252,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0,254,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,254,232, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160,252,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0, 93,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96, 94,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, - 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, - 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0, -128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96, 94,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 95,132, 29, 1, 0, 0, 0, 0, 93,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 74, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 74, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, +237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192, 95,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 94,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0, -128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0, 32, 97,132, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16,101,132, 29, 1, 0, 0, 0,192, 91,132, 29, - 1, 0, 0, 0, 0, 93,132, 29, 1, 0, 0, 0,192, 95,132, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 98,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 99,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 99,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 98,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 96,255,232, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,251,232, 19, 1, 0, 0, 0, +160,252,232, 19, 1, 0, 0, 0, 0,254,232, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,192, 0,233, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0,160, 35,233, 19, 1, 0, 0, 0,112,225,232, 19, 1, 0, 0, 0,176,208,232, 19, 1, 0, 0, 0, +240,210,232, 19, 1, 0, 0, 0, 80,211,232, 19, 1, 0, 0, 0,176,211,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 17, 17, 32, 6,180, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 7,233, 19, 1, 0, 0, 0,160, 34,233, 19, 1, 0, 0, 0,160, 1,233, 19, 1, 0, 0, 0, +240, 5,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 1,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 3,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 3,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +240, 5,233, 19, 1, 0, 0, 0,160, 1,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,196,195, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,196,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, + 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,220, 0,154, 1,203, 0,136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,220, 0,154, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 4,233, 19, 1, 0, 0, 0, + 96, 4,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96, 4,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,254,135, 27, - 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,254,135, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, + 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, + 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240, 5,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67,228, 46, 44,195,220,133,181, 68,162,102,238,194,168,153,179, 67, + 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0,153, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, + 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,154, 1, 51, 5,136, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, + 26, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, + 80, 7,233, 19, 1, 0, 0, 0,176, 0, 0, 0, 1, 0, 0, 0,240, 11,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208, 7,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48, 9,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48, 9,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,144, 10,233, 19, 1, 0, 0, 0,208, 7,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 16,101,132, 29, - 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 97,132, 29, 1, 0, 0, 0, 80, 98,132, 29, - 1, 0, 0, 0,176, 99,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,102,132, 29, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 48, 16,110, 27, 1, 0, 0, 0, 48, 80,132, 29, 1, 0, 0, 0,128, 4,132, 29, 1, 0, 0, 0,224, 4,132, 29, - 1, 0, 0, 0, 32, 4,132, 29, 1, 0, 0, 0,192, 3,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, - 55, 5, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 1, 1,251, 3,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,121,132, 29, 1, 0, 0, 0,160,138,110, 27, 1, 0, 0, 0, 80,103,132, 29, 1, 0, 0, 0,192,119,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,103,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,104,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,104,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16,106,132, 29, - 1, 0, 0, 0, 80,103,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 1, 0, 0, 61, 1, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0,149, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,106,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112,107,132, 29, - 1, 0, 0, 0,176,104,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,207, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,107,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,119,132, 29, - 1, 0, 0, 0, 16,106,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128, 23,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,112, 2,163, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 5, 0, 0, 55, 5, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,108,132, 29, 1, 0, 0, 0, 48,118,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,208,108,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 96,110,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110, -115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254, -163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,110,132, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,240,111,132, 29, 1, 0, 0, 0,208,108,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, + 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144, 10,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 9,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191, 0, 0, 0, 64, 0, 0,116,190, 0,128,158, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,240,111,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,128,113,132, 29, - 1, 0, 0, 0, 96,110,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252, -163, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, +240, 11,233, 19, 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0,144, 15,233, 19, 1, 0, 0, 0, 80, 7,233, 19, 1, 0, 0, 0, +208, 7,233, 19, 1, 0, 0, 0,144, 10,233, 19, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208, 12,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48, 14,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,113,132, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 16,115,132, 29, 1, 0, 0, 0,240,111,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115, -112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115, -112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48, 14,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 12,233, 19, 1, 0, 0, 0, + 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67, +239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, +205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2,104, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 0, 0, + 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 16,115,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,160,116,132, 29, - 1, 0, 0, 0,128,113,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107, -103,114,111,117,110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252, -163, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,116,132, 29, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,118,132, 29, 1, 0, 0, 0, 16,115,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95, -111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95, -111,114,105,101,110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111, -110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, +144, 15,233, 19, 1, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0,112, 22,233, 19, 1, 0, 0, 0,240, 11,233, 19, 1, 0, 0, 0, +208, 12,233, 19, 1, 0, 0, 0, 48, 14,233, 19, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,118,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160,116,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, - 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255, -163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,119,132, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,107,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, + 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 16,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 80, 18,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 18,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,176, 19,233, 19, 1, 0, 0, 0,240, 16,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,207, 1, 0, 0, - 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 2,136, 27, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 90,105,134, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226,201,115, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 19,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 16, 21,233, 19, 1, 0, 0, 0, 80, 18,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 32,121,132, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 32, 8,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96, 5,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192, 6,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192, 6,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 5,110, 27, - 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64, -110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, - 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 21,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 19,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0, 32, 8,110, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,160, 13,110, 27, 1, 0, 0, 0, 32,121,132, 29, - 1, 0, 0, 0, 96, 5,110, 27, 1, 0, 0, 0,192, 6,110, 27, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,112, 22,233, 19, 1, 0, 0, 0, +165, 0, 0, 0, 1, 0, 0, 0,128, 30,233, 19, 1, 0, 0, 0,144, 15,233, 19, 1, 0, 0, 0,240, 16,233, 19, 1, 0, 0, 0, + 16, 21,233, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,160, 23,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 25,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, + 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 9,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 10,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 0, 25,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96, 26,233, 19, 1, 0, 0, 0, +160, 23,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 10,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 12,110, 27, 1, 0, 0, 0,128, 9,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96, 26,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192, 27,233, 19, 1, 0, 0, 0, + 0, 25,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192, 27,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32, 29,233, 19, 1, 0, 0, 0, + 96, 26,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32, 29,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 27,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 12,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 10,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,160, 13,110, 27, - 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,160,138,110, 27, 1, 0, 0, 0, 32, 8,110, 27, 1, 0, 0, 0,128, 9,110, 27, - 1, 0, 0, 0, 64, 12,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 78, 5, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48, 78, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, +224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, + 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208, 14,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,137,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64,137,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 14,110, 27, - 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -200, 0, 0, 0,160,138,110, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 13,110, 27, - 1, 0, 0, 0,208, 14,110, 27, 1, 0, 0, 0, 64,137,110, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128, 30,233, 19, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0,160, 34,233, 19, 1, 0, 0, 0,112, 22,233, 19, 1, 0, 0, 0,160, 23,233, 19, 1, 0, 0, 0, + 32, 29,233, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 31,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 64, 33,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 48, 16,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,102,132, 29, - 1, 0, 0, 0, 64, 2,132, 29, 1, 0, 0, 0,128, 1,132, 29, 1, 0, 0, 0,224, 4,132, 29, 1, 0, 0, 0,128, 4,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, 3, 3, 60, 1, -175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,142,110, 27, 1, 0, 0, 0,240, 37,110, 27, - 1, 0, 0, 0,160,139,110, 27, 1, 0, 0, 0, 0,141,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,139,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,141,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,158, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 59, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 60, 1, 26, 0, 60, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0, -206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 33,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,224, 31,233, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,141,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,139,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,149, 67, 0,192, 32,196, 0, 0, 0, 0, 43, 1, 0, 0, - 60, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 42, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 60, 1,149, 2, 43, 1,131, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,207, 1, 0, 0, - 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,160, 34,233, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 30,233, 19, 1, 0, 0, 0,224, 31,233, 19, 1, 0, 0, 0, 64, 33,233, 19, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,142,110, 27, - 1, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 96, 24,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,160, 35,233, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +144, 59,233, 19, 1, 0, 0, 0,192, 0,233, 19, 1, 0, 0, 0,112,212,232, 19, 1, 0, 0, 0,208,212,232, 19, 1, 0, 0, 0, +144,210,232, 19, 1, 0, 0, 0, 16,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 5, 0, 0,128, 7, 0, 0, +181, 1, 0, 0, 99, 4, 0, 0, 9, 9, 72, 2,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 82, 5, 3, 1, 0, 0, 0, 48, 58,233, 19, 1, 0, 0, 0,128, 36,233, 19, 1, 0, 0, 0,224, 37,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,128, 36,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,224, 37,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 18, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,181, 67, 0, 0,200, 65, + 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 72, 2, + 26, 0, 72, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 5, 0, 0,128, 7, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 7,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,224, 37,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 36,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, + 0, 0, 0, 0,120, 27, 19, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 2, 0, 0, 0, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 72, 2, +149, 2, 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 5, 0, 0,128, 7, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 2,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,160, 7,130, 29, - 1, 0, 0, 0,219, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,192,143,110, 27, 1, 0, 0, 0, 68, 65, 84, 65, -208, 0, 0, 0,192,143,110, 27, 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, - 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, - 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,144,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48,146,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 68, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 84, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,212, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,144, 2, 0, 0, 48, 82, 5, 3, 1, 0, 0, 0,171, 0, 0, 0, 1, 0, 0, 0, 0, 42,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,146,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144,147,110, 27, - 1, 0, 0, 0,208,144,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0,182, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,147,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240,148,110, 27, - 1, 0, 0, 0, 48,146,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,148,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80,150,110, 27, - 1, 0, 0, 0,144,147,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,211, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,150,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,148,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,212, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,136, 27, - 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 6,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,121, 92,163, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, - 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 15,150, 72, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,159, 55,242, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 39,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +160, 40,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,182, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,108, 1, 26, 0,108, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,108, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96, 24,110, 27, - 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,128, 28,110, 27, 1, 0, 0, 0, 96,142,110, 27, 1, 0, 0, 0,208,144,110, 27, - 1, 0, 0, 0, 80,150,110, 27, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 40,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 39,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,173, 67, 0, 0,210,195, 0, 0, 0, 0, 91, 1, 0, 0,108, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, + 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, + 0, 0, 0, 4, 6, 0,108, 1,182, 1, 91, 1,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,108, 1,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 25,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 27,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 42,233, 19, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, +128, 47,233, 19, 1, 0, 0, 0, 48, 82, 5, 3, 1, 0, 0, 0, 64, 39,233, 19, 1, 0, 0, 0,160, 40,233, 19, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 27,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 25,110, 27, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, - 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0, -106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0, -106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128, 28,110, 27, 1, 0, 0, 0,174, 0, 0, 0, - 1, 0, 0, 0, 0, 34,110, 27, 1, 0, 0, 0, 96, 24,110, 27, 1, 0, 0, 0,192, 25,110, 27, 1, 0, 0, 0, 32, 27,110, 27, - 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 43,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 96, 43,233, 19, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 13, 0, 0, 0,176, 43,233, 19, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,176, 43,233, 19, 1, 0, 0, 0, +219, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, + 48,154, 5, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, + 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,166, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,182, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,193,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,194, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,191,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,188, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,162, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,128,185,234, 19, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192, 44,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32, 46,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 29,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 31,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, - 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 68, 1, 30, 0, 68, 1, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, +252, 3, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 30, 0, 0, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32, 46,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 44,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,153, 67, 0, 0,137,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,153, 67,253,127,198,195, 0, 0, 0, 0, + 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 68, 1,159, 1, 51, 1,141, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, + 93, 2, 0, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,159, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 31,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 32,110, 27, - 1, 0, 0, 0,224, 29,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, +128, 47,233, 19, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 64, 54,233, 19, 1, 0, 0, 0, 0, 42,233, 19, 1, 0, 0, 0, +192, 44,233, 19, 1, 0, 0, 0, 32, 46,233, 19, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 32,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 31,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, - 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 48,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 32, 50,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 0, 34,110, 27, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,240, 37,110, 27, - 1, 0, 0, 0,128, 28,110, 27, 1, 0, 0, 0,224, 29,110, 27, 1, 0, 0, 0,160, 32,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 50,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,128, 51,233, 19, 1, 0, 0, 0,192, 48,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 35,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,144, 36,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 36,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 35,110, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,240, 37,110, 27, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,110, 27, 1, 0, 0, 0, 48, 35,110, 27, 1, 0, 0, 0,144, 36,110, 27, - 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,240, 38,110, 27, 1, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0,128, 74,111, 27, 1, 0, 0, 0,240,254,131, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 96, 45,109, 27, - 1, 0, 0, 0, 0, 42,110, 27, 1, 0, 0, 0, 96, 42,110, 27, 1, 0, 0, 0, 16,113,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,151,110, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,192,108,109, 27, 1, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192,108,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,109,109, 27, - 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 32,109,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0,192,108,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,109,109, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 32,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,110,109, 27, - 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 64,110,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,111,109, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,192, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,112,109, 27, - 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0,192,111,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,112,109, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 64, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 64, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 45,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 45,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108,109, 27, 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 45,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 46,109, 27, - 1, 0, 0, 0, 96, 45,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 46,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 46,109, 27, - 1, 0, 0, 0,192, 45,109, 27, 1, 0, 0, 0,192,108,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 46,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 46,109, 27, - 1, 0, 0, 0, 32, 46,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 46,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 47,109, 27, - 1, 0, 0, 0,128, 46,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 47,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 47,109, 27, - 1, 0, 0, 0,224, 46,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 47,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 48,109, 27, - 1, 0, 0, 0, 64, 47,109, 27, 1, 0, 0, 0, 32,109,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 48,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 48,109, 27, - 1, 0, 0, 0,160, 47,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 48,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 48,109, 27, - 1, 0, 0, 0, 0, 48,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 48,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 49,109, 27, - 1, 0, 0, 0, 96, 48,109, 27, 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 49,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,128, 49,109, 27, - 1, 0, 0, 0,192, 48,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 49,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 49,109, 27, - 1, 0, 0, 0, 32, 49,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 49,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 50,109, 27, - 1, 0, 0, 0,128, 49,109, 27, 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 50,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 50,109, 27, - 1, 0, 0, 0,224, 49,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 50,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 51,109, 27, - 1, 0, 0, 0, 64, 50,109, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 51,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 51,109, 27, - 1, 0, 0, 0,160, 50,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 51,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 51,109, 27, - 1, 0, 0, 0, 0, 51,109, 27, 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 51,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 32, 52,109, 27, - 1, 0, 0, 0, 96, 51,109, 27, 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 52,109, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 41,110, 27, - 1, 0, 0, 0,192, 51,109, 27, 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 41,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,160, 41,110, 27, - 1, 0, 0, 0, 32, 52,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 41,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 42,110, 27, - 1, 0, 0, 0, 64, 41,110, 27, 1, 0, 0, 0, 32,109,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 42,110, 27, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 41,110, 27, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96, 42,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 46,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 16,152,110, 27, 1, 0, 0, 0,192,108,109, 27, - 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0, -128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,132,111, 27, - 1, 0, 0, 0,144,132,111, 27, 1, 0, 0, 0, 64, 43,110, 27, 1, 0, 0, 0,160, 44,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64, 43,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 44,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160, 44,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 43,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, - 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 51,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,224, 52,233, 19, 1, 0, 0, 0, 32, 50,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 0, 46,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,240, 75,110, 27, 1, 0, 0, 0, 96, 42,110, 27, - 1, 0, 0, 0,160,110,109, 27, 1, 0, 0, 0,128,112,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 32,109,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 63, 3, 0, 0, 4, 4,144, 1, - 64, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,110, 27, 1, 0, 0, 0,144, 74,110, 27, - 1, 0, 0, 0,224, 46,110, 27, 1, 0, 0, 0, 64, 48,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 46,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 48,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, 31, 0,144, 1, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 33, 3, 0, 0, - 63, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 48,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 46,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,191, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,191, 67,255,191, 67,196, 0, 0, 0, 0,127, 1, 0, 0, -144, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -126, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,144, 1, 33, 3,127, 1, 15, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 49,110, 27, 1, 0, 0, 0,176, 63,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 49,110, 27, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48, 51,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 52,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, + 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,126, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 64, 54,233, 19, 1, 0, 0, 0, +165, 0, 0, 0, 1, 0, 0, 0, 48, 58,233, 19, 1, 0, 0, 0,128, 47,233, 19, 1, 0, 0, 0,192, 48,233, 19, 1, 0, 0, 0, +224, 52,233, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48, 51,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192, 52,110, 27, - 1, 0, 0, 0,160, 49,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, -101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, -126, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 52,110, 27, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 80, 54,110, 27, 1, 0, 0, 0, 48, 51,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112, 55,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208, 56,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, + 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208, 56,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 55,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 80, 54,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,224, 55,110, 27, - 1, 0, 0, 0,192, 52,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, -110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, -126, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 55,110, 27, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112, 57,110, 27, 1, 0, 0, 0, 80, 54,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, -110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,126, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 86, 5, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48, 86, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112, 57,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 59,110, 27, - 1, 0, 0, 0,224, 55,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253, -126, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 0, 59,110, 27, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,144, 60,110, 27, 1, 0, 0, 0,112, 57,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253,126, 1,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,144, 60,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 32, 62,110, 27, - 1, 0, 0, 0, 0, 59,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, -111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253, -126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48, 58,233, 19, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 54,233, 19, 1, 0, 0, 0,112, 55,233, 19, 1, 0, 0, 0, +208, 56,233, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 32, 62,110, 27, - 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,176, 63,110, 27, 1, 0, 0, 0,144, 60,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, -115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,144, 59,233, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 48, 94,233, 19, 1, 0, 0, 0,160, 35,233, 19, 1, 0, 0, 0, 48,213,232, 19, 1, 0, 0, 0,144,213,232, 19, 1, 0, 0, 0, +208,212,232, 19, 1, 0, 0, 0,112,212,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0, +181, 1, 0, 0, 99, 4, 0, 0, 1, 1,251, 3,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 78,233, 19, 1, 0, 0, 0, 48, 93,233, 19, 1, 0, 0, 0,112, 60,233, 19, 1, 0, 0, 0,224, 76,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112, 60,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208, 61,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 3, + 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 1, 0, 0, 55, 5, 0, 0,181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,176, 63,110, 27, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 62,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252, -126, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208, 61,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48, 63,233, 19, 1, 0, 0, 0, +112, 60,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 1, 0, 0, 61, 1, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0,149, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 64, 65,110, 27, - 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,160, 70,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48, 63,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,144, 64,233, 19, 1, 0, 0, 0, +208, 61,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 1, 0, 0, 55, 5, 0, 0,207, 1, 0, 0,207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144, 64,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,224, 76,233, 19, 1, 0, 0, 0, + 48, 63,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128, 23,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,111, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +112, 2,163, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 5, 0, 0, 55, 5, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65,233, 19, 1, 0, 0, 0, 80, 75,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,240, 65,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 67,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, +109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 66,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,224, 67,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, - 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128, 67,233, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 16, 69,233, 19, 1, 0, 0, 0,240, 65,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 67,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 64, 69,110, 27, 1, 0, 0, 0,128, 66,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 16, 69,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160, 70,233, 19, 1, 0, 0, 0, +128, 67,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 69,110, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 67,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, -123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 70,233, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 48, 72,233, 19, 1, 0, 0, 0, 16, 69,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,160, 70,110, 27, 1, 0, 0, 0,164, 0, 0, 0, - 1, 0, 0, 0,144, 74,110, 27, 1, 0, 0, 0, 64, 65,110, 27, 1, 0, 0, 0,128, 66,110, 27, 1, 0, 0, 0, 64, 69,110, 27, - 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 71,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 73,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48, 72,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192, 73,233, 19, 1, 0, 0, 0, +160, 70,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117, +110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,252,163, 0, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 73,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 71,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192, 73,233, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 80, 75,233, 19, 1, 0, 0, 0, 48, 72,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, +110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, +110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, - 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 80, 75,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 73,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 10,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 10,136, 27, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, - 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 76,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 64,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 1, 0, 0, 55, 5, 0, 0,207, 1, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 90, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 90, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,105,134, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,201,115, 61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,144, 74,110, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 70,110, 27, 1, 0, 0, 0,208, 71,110, 27, 1, 0, 0, 0, 48, 73,110, 27, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,240, 75,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,105,110, 27, 1, 0, 0, 0, 0, 46,110, 27, - 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0,160,110,109, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 18, 18,255, 2, -192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 79,110, 27, 1, 0, 0, 0,128,104,110, 27, - 1, 0, 0, 0,208, 76,110, 27, 1, 0, 0, 0, 48, 78,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 76,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 78,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 63, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -254, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 2, 26, 0,255, 2, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 78,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 76,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0,128, 63, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,128, 59, 68, 0, 0, 0, 0, 0, 0,211, 67,238, 2, 0, 0, -255, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -237, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,255, 2,166, 1,238, 2,166, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 26, 0, 0, 0, -191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,144, 79,110, 27, - 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 48, 14,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 64, 78,233, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 96, 82,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160, 79,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 81,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, +149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0, 81,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 79,233, 19, 1, 0, 0, 0, + 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64,110, 44,252, 67, + 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, +205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, 89, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, +175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 96, 82,233, 19, 1, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 64, 89,233, 19, 1, 0, 0, 0, 64, 78,233, 19, 1, 0, 0, 0, +160, 79,233, 19, 1, 0, 0, 0, 0, 81,233, 19, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 81,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 82,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 83,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 32, 85,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 82,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 81,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0, -155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 85,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,128, 86,233, 19, 1, 0, 0, 0,192, 83,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48, 14,136, 27, - 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,208, 86,110, 27, 1, 0, 0, 0,144, 79,110, 27, 1, 0, 0, 0, 80, 81,110, 27, - 1, 0, 0, 0,176, 82,110, 27, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 86,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,224, 87,233, 19, 1, 0, 0, 0, 32, 85,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 87,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 86,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 64, 89,233, 19, 1, 0, 0, 0, +165, 0, 0, 0, 1, 0, 0, 0, 48, 93,233, 19, 1, 0, 0, 0, 96, 82,233, 19, 1, 0, 0, 0,192, 83,233, 19, 1, 0, 0, 0, +224, 87,233, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 16, 84,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 85,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112, 85,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 84,110, 27, - 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66, -116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, - 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5, -112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112, 90,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,208, 91,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, + 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,208, 86,110, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 80, 92,110, 27, 1, 0, 0, 0, 48, 14,136, 27, - 1, 0, 0, 0, 16, 84,110, 27, 1, 0, 0, 0,112, 85,110, 27, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,208, 91,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 90,233, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, +122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0, 48, 93,233, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 89,233, 19, 1, 0, 0, 0,112, 90,233, 19, 1, 0, 0, 0,208, 91,233, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 88,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 89,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0, 48, 94,233, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 59,233, 19, 1, 0, 0, 0,240,210,232, 19, 1, 0, 0, 0, 48,210,232, 19, 1, 0, 0, 0,144,213,232, 19, 1, 0, 0, 0, + 48,213,232, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0,181, 1, 0, 0, 99, 4, 0, 0, + 3, 3, 60, 1,175, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 97,233, 19, 1, 0, 0, 0, + 96,122,233, 19, 1, 0, 0, 0, 16, 95,233, 19, 1, 0, 0, 0,112, 96,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 16, 95,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,112, 96,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,158, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 60, 1, 26, 0, 60, 1, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, +181, 1, 0, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 89,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 90,110, 27, 1, 0, 0, 0, 48, 88,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +112, 96,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 95,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,149, 67, 0,192, 32,196, 0, 0, 0, 0, + 43, 1, 0, 0, 60, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 42, 1, 0, 0, 18, 0, 0, 0,148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 60, 1,149, 2, 43, 1,131, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, +207, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 1,149, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +208, 97,233, 19, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0,112,107,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 90,110, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 89,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 99,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 80, 92,110, 27, - 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 96,100,110, 27, 1, 0, 0, 0,208, 86,110, 27, 1, 0, 0, 0, 48, 88,110, 27, - 1, 0, 0, 0,240, 90,110, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, + 48, 99,233, 19, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,128, 99,233, 19, 1, 0, 0, 0, + 68, 65, 84, 65,208, 0, 0, 0,128, 99,233, 19, 1, 0, 0, 0,219, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 48,154, 5, 3, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, + 48,154, 5, 3, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,166, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,182, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +112,193,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,194, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +112,191,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,188, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,162, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +128,185,234, 19, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,100,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +240,101,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 68, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 84, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,212, 0, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,101,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 80,103,233, 19, 1, 0, 0, 0,144,100,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,182, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,103,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +176,104,233, 19, 1, 0, 0, 0,240,101,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, + 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128, 93,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224, 94,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,224, 94,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64, 96,110, 27, 1, 0, 0, 0,128, 93,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, - 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,104,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 16,106,233, 19, 1, 0, 0, 0, 80,103,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64, 96,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160, 97,110, 27, 1, 0, 0, 0,224, 94,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160, 97,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 99,110, 27, 1, 0, 0, 0, 64, 96,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, -104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,106,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,104,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0, 99,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 97,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0, -128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,212, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48, 18,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, - 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, - 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195, -136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191, -184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 94, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 94, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, +121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 15,150, 72, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, +121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +159, 55,242, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5202,490 +4674,546 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,100,110, 27, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0,128,104,110, 27, 1, 0, 0, 0, 80, 92,110, 27, 1, 0, 0, 0,128, 93,110, 27, 1, 0, 0, 0, 0, 99,110, 27, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,101,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,103,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, +112,107,233, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,144,111,233, 19, 1, 0, 0, 0,208, 97,233, 19, 1, 0, 0, 0, +144,100,233, 19, 1, 0, 0, 0, 16,106,233, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,108,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 48,110,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,174, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,103,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192,101,110, 27, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,110,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,108,233, 19, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, + 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,156,102, 95, 68,160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, + 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, + 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, 89, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 6,107, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,128,104,110, 27, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,100,110, 27, 1, 0, 0, 0,192,101,110, 27, 1, 0, 0, 0, 32,103,110, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,144,111,233, 19, 1, 0, 0, 0, +175, 0, 0, 0, 1, 0, 0, 0,112,118,233, 19, 1, 0, 0, 0,112,107,233, 19, 1, 0, 0, 0,208,108,233, 19, 1, 0, 0, 0, + 48,110,233, 19, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,128,105,110, 27, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0,116,110, 27, - 1, 0, 0, 0,240, 75,110, 27, 1, 0, 0, 0, 0,111,109, 27, 1, 0, 0, 0,128,109,109, 27, 1, 0, 0, 0, 64,110,109, 27, - 1, 0, 0, 0, 96,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,193, 1, 0, 0, - 99, 4, 0, 0, 9, 9,240, 5,163, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 22,136, 27, - 1, 0, 0, 0, 64,234,132, 29, 1, 0, 0, 0, 96,106,110, 27, 1, 0, 0, 0,192,107,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96,106,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,107,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0,193, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,107,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,106,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,168, 86,234, 67, 86, 74,131, 68,133, 83, 49, 67, - 62,214,212, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,137, 2,240, 5, -137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0,219, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,137, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,112,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 80,114,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -144, 2, 0, 0, 48, 22,136, 27, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,224,111,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,114,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +176,115,233, 19, 1, 0, 0, 0,240,112,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,115,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 16,117,233, 19, 1, 0, 0, 0, 80,114,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,117,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,115,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, + 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,112,118,233, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, + 96,122,233, 19, 1, 0, 0, 0,144,111,233, 19, 1, 0, 0, 0,240,112,233, 19, 1, 0, 0, 0, 16,117,233, 19, 1, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,109,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,110,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, - 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160,119,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0,121,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,110,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,109,110, 27, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,132,137,182,195, -194, 68, 91, 68,112,158, 93, 65, 8, 19,249, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0, -222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, - 0, 0,240, 5, 92, 2,223, 5, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,183, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,121,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,119,233, 19, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, + 96,122,233, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,118,233, 19, 1, 0, 0, 0, +160,119,233, 19, 1, 0, 0, 0, 0,121,233, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, +224,123,233, 19, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128, 27,234, 19, 1, 0, 0, 0,160,207,232, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, + 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,124,233, 19, 1, 0, 0, 0, +208,129,233, 19, 1, 0, 0, 0, 48,130,233, 19, 1, 0, 0, 0, 16,138,233, 19, 1, 0, 0, 0,112,138,233, 19, 1, 0, 0, 0, +208, 5,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,240,124,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,125,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 80,125,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,125,233, 19, 1, 0, 0, 0,240,124,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,125,233, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 16,126,233, 19, 1, 0, 0, 0, 80,125,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,126,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +112,126,233, 19, 1, 0, 0, 0,176,125,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,112,126,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,126,233, 19, 1, 0, 0, 0, + 16,126,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +208,126,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48,127,233, 19, 1, 0, 0, 0,112,126,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 48,127,233, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,144,127,233, 19, 1, 0, 0, 0,208,126,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,127,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +240,127,233, 19, 1, 0, 0, 0, 48,127,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,240,127,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 80,128,233, 19, 1, 0, 0, 0, +144,127,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 80,128,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176,128,233, 19, 1, 0, 0, 0,240,127,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5,192, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,128,233, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 16,129,233, 19, 1, 0, 0, 0, 80,128,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,129,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +112,129,233, 19, 1, 0, 0, 0,176,128,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2,192, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,112,129,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,208,129,233, 19, 1, 0, 0, 0, + 16,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 64, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +208,129,233, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,129,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 64, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,130,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144,130,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,125,233, 19, 1, 0, 0, 0, +176,125,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,130,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240,130,233, 19, 1, 0, 0, 0, 48,130,233, 19, 1, 0, 0, 0, 80,125,233, 19, 1, 0, 0, 0, +112,126,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,130,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,131,233, 19, 1, 0, 0, 0,144,130,233, 19, 1, 0, 0, 0,176,125,233, 19, 1, 0, 0, 0, +208,126,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,131,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,131,233, 19, 1, 0, 0, 0,240,130,233, 19, 1, 0, 0, 0,112,126,233, 19, 1, 0, 0, 0, +208,126,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,131,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,132,233, 19, 1, 0, 0, 0, 80,131,233, 19, 1, 0, 0, 0,208,126,233, 19, 1, 0, 0, 0, + 48,127,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,132,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112,132,233, 19, 1, 0, 0, 0,176,131,233, 19, 1, 0, 0, 0,112,126,233, 19, 1, 0, 0, 0, + 48,127,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,132,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,208,132,233, 19, 1, 0, 0, 0, 16,132,233, 19, 1, 0, 0, 0, 16,126,233, 19, 1, 0, 0, 0, +144,127,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,132,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48,133,233, 19, 1, 0, 0, 0,112,132,233, 19, 1, 0, 0, 0,240,124,233, 19, 1, 0, 0, 0, +240,127,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,133,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144,133,233, 19, 1, 0, 0, 0,208,132,233, 19, 1, 0, 0, 0,112,126,233, 19, 1, 0, 0, 0, +240,127,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,133,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240,133,233, 19, 1, 0, 0, 0, 48,133,233, 19, 1, 0, 0, 0, 48,127,233, 19, 1, 0, 0, 0, + 80,128,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,133,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,134,233, 19, 1, 0, 0, 0,144,133,233, 19, 1, 0, 0, 0,144,127,233, 19, 1, 0, 0, 0, + 80,128,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,134,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,134,233, 19, 1, 0, 0, 0,240,133,233, 19, 1, 0, 0, 0,240,127,233, 19, 1, 0, 0, 0, + 80,128,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,134,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,135,233, 19, 1, 0, 0, 0, 80,134,233, 19, 1, 0, 0, 0,240,124,233, 19, 1, 0, 0, 0, +176,128,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,135,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112,135,233, 19, 1, 0, 0, 0,176,134,233, 19, 1, 0, 0, 0,144,127,233, 19, 1, 0, 0, 0, +176,128,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,135,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,208,135,233, 19, 1, 0, 0, 0, 16,135,233, 19, 1, 0, 0, 0,240,127,233, 19, 1, 0, 0, 0, + 16,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,135,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48,136,233, 19, 1, 0, 0, 0,112,135,233, 19, 1, 0, 0, 0, 80,128,233, 19, 1, 0, 0, 0, + 16,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,136,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144,136,233, 19, 1, 0, 0, 0,208,135,233, 19, 1, 0, 0, 0,176,128,233, 19, 1, 0, 0, 0, + 16,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,136,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240,136,233, 19, 1, 0, 0, 0, 48,136,233, 19, 1, 0, 0, 0,144,127,233, 19, 1, 0, 0, 0, +112,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240,136,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80,137,233, 19, 1, 0, 0, 0,144,136,233, 19, 1, 0, 0, 0, 48,127,233, 19, 1, 0, 0, 0, +112,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80,137,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176,137,233, 19, 1, 0, 0, 0,240,136,233, 19, 1, 0, 0, 0,208,126,233, 19, 1, 0, 0, 0, +208,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,137,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16,138,233, 19, 1, 0, 0, 0, 80,137,233, 19, 1, 0, 0, 0, 16,126,233, 19, 1, 0, 0, 0, +208,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,138,233, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,137,233, 19, 1, 0, 0, 0,112,129,233, 19, 1, 0, 0, 0, +208,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,112,138,233, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 16,142,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,126,233, 19, 1, 0, 0, 0, + 80,125,233, 19, 1, 0, 0, 0,176,125,233, 19, 1, 0, 0, 0,208,126,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,234, 19, 1, 0, 0, 0, 0, 27,234, 19, 1, 0, 0, 0, 80,139,233, 19, 1, 0, 0, 0, +176,140,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,139,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +176,140,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,140,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,139,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,142,233, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, + 96,173,233, 19, 1, 0, 0, 0,112,138,233, 19, 1, 0, 0, 0,144,127,233, 19, 1, 0, 0, 0,112,129,233, 19, 1, 0, 0, 0, +208,129,233, 19, 1, 0, 0, 0, 16,126,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 63, 3, 0, 0, 4, 4,144, 1, 64, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80,161,233, 19, 1, 0, 0, 0, 0,172,233, 19, 1, 0, 0, 0,240,142,233, 19, 1, 0, 0, 0, 80,144,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,240,142,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 80,144,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, + 0, 0, 0, 0, 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, + 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, + 31, 0,144, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,128, 7, 0, 0, 33, 3, 0, 0, 63, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 80,144,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,142,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,191, 67, +255,191, 67,196, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,144, 1, + 33, 3,127, 1, 15, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +144, 1, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,145,233, 19, 1, 0, 0, 0,192,159,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,176,145,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 64,147,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, + 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,126, 1, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 64,147,233, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,208,148,233, 19, 1, 0, 0, 0,176,145,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,224,111,110, 27, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,144, 2,133, 29, - 1, 0, 0, 0, 48, 22,136, 27, 1, 0, 0, 0, 32,109,110, 27, 1, 0, 0, 0,128,110,110, 27, 1, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,126, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,208,148,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96,150,233, 19, 1, 0, 0, 0, + 64,147,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64,113,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,114,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, - 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, - 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,126, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,160,114,110, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 1,133, 29, 1, 0, 0, 0, 64,113,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96,150,233, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,240,151,233, 19, 1, 0, 0, 0,208,148,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, -239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 48, 1,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,114,110, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,126, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0,144, 2,133, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,224,238,132, 29, 1, 0, 0, 0,224,111,110, 27, - 1, 0, 0, 0, 64,113,110, 27, 1, 0, 0, 0, 48, 1,133, 29, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,240,151,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128,153,233, 19, 1, 0, 0, 0, + 96,150,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, + 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,126, 1, 58, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128,153,233, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 16,155,233, 19, 1, 0, 0, 0,240,151,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 3,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,231,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,253,126, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,231,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,232,132, 29, - 1, 0, 0, 0,192, 3,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 16,155,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160,156,233, 19, 1, 0, 0, 0, +128,153,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,232,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,236,132, 29, - 1, 0, 0, 0,128,231,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,253,126, 1,105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,236,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,237,132, 29, - 1, 0, 0, 0,224,232,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,156,233, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 48,158,233, 19, 1, 0, 0, 0, 16,155,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,237,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,236,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,253,126, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 48,158,233, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,159,233, 19, 1, 0, 0, 0, +160,156,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, + 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, + 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,253,126, 1, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 26,136, 27, - 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 26,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, - 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, - 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62, -169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188, -102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, - 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196, -135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62, -169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188, -102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,159,233, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,158,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,252,126, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 0, 1, 0, 0, 80,161,233, 19, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 16,168,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,224,238,132, 29, - 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 64,234,132, 29, 1, 0, 0, 0,144, 2,133, 29, 1, 0, 0, 0,192, 3,133, 29, - 1, 0, 0, 0,128,237,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,240,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,160,241,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,241,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,240,132, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144,162,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,240,163,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, + 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 64,234,132, 29, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,238,132, 29, 1, 0, 0, 0, 64,240,132, 29, 1, 0, 0, 0,160,241,132, 29, - 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,163,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 80,165,233, 19, 1, 0, 0, 0,144,162,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 0,116,110, 27, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 16,113,111, 27, 1, 0, 0, 0,128,105,110, 27, 1, 0, 0, 0,176,151,110, 27, 1, 0, 0, 0, 0,111,109, 27, - 1, 0, 0, 0, 32,112,109, 27, 1, 0, 0, 0,192,111,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 2, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 18, 18,240, 2,192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192,245,132, 29, 1, 0, 0, 0, 16,112,111, 27, 1, 0, 0, 0, 0,243,132, 29, 1, 0, 0, 0, 96,244,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,243,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,244,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,231, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 60, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, - 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 2, 26, 0,240, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,244,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,243,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,192, 59, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, - 0,192, 55, 68, 0, 0, 0, 0, 0, 0,211, 67,223, 2, 0, 0,240, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, - 10, 0,240, 2,166, 1,223, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 26, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0,192,245,132, 29, 1, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 48, 30,136, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, +112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 80,165,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,176,166,233, 19, 1, 0, 0, 0,240,163,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,247,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,248,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, - 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176,166,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,165,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, +112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,248,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,247,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63, -254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, - 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, + 16,168,233, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, 0,172,233, 19, 1, 0, 0, 0, 80,161,233, 19, 1, 0, 0, 0, +144,162,233, 19, 1, 0, 0, 0,176,166,233, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48, 30,136, 27, 1, 0, 0, 0,170, 0, 0, 0, 1, 0, 0, 0,160,228,109, 27, - 1, 0, 0, 0,192,245,132, 29, 1, 0, 0, 0,128,247,132, 29, 1, 0, 0, 0,224,248,132, 29, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,169,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +160,170,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,170,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,169,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 98, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 98, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, +237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, +103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,250,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,160,251,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,251,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,250,132, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, - 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, -129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 0,172,233, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,168,233, 19, 1, 0, 0, 0, + 64,169,233, 19, 1, 0, 0, 0,160,170,233, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,228,109, 27, 1, 0, 0, 0,174, 0, 0, 0, - 1, 0, 0, 0, 0,230,109, 27, 1, 0, 0, 0, 48, 30,136, 27, 1, 0, 0, 0, 64,250,132, 29, 1, 0, 0, 0,160,251,132, 29, - 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,173,233, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 96,204,233, 19, 1, 0, 0, 0, 16,142,233, 19, 1, 0, 0, 0,176,128,233, 19, 1, 0, 0, 0, + 16,129,233, 19, 1, 0, 0, 0, 80,128,233, 19, 1, 0, 0, 0,144,127,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 18, 18,255, 2,192, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,177,233, 19, 1, 0, 0, 0, 96,203,233, 19, 1, 0, 0, 0, 64,174,233, 19, 1, 0, 0, 0, +160,175,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,174,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +160,175,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0,192, 63, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,255, 2, 26, 0,255, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,175,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,174,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 68, 0, 0, 0, 0, 0, 0, 51, 67, + 0, 0, 0, 0, 0,128, 59, 68, 0, 0, 0, 0, 0, 0,211, 67,238, 2, 0, 0,255, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,237, 2, 0, 0, 0, 0, 0, 0,165, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, + 2, 0, 0, 4, 10, 0,255, 2,166, 1,238, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 2, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64,136,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,160,137,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, - 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, - 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 1, 0, 0, 0,177,233, 19, 1, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, + 48,102, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,137,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,139,132, 29, - 1, 0, 0, 0, 64,136,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,139,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160,137,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, - 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,178,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 48,180,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 0,230,109, 27, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,240,107,111, 27, - 1, 0, 0, 0,160,228,109, 27, 1, 0, 0, 0, 64,136,132, 29, 1, 0, 0, 0, 0,139,132, 29, 1, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,180,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,178,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, + 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, + 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, 48,102, 5, 3, 1, 0, 0, 0, +171, 0, 0, 0, 1, 0, 0, 0, 80,184,233, 19, 1, 0, 0, 0, 0,177,233, 19, 1, 0, 0, 0,208,178,233, 19, 1, 0, 0, 0, + 48,180,233, 19, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,140,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,192,141,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,141,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32,143,132, 29, 1, 0, 0, 0, 96,140,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,143,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,128,144,132, 29, 1, 0, 0, 0,192,141,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,144,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,224,145,132, 29, 1, 0, 0, 0, 32,143,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,145,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,144,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 34,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 34,136, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, - 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, - 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, - 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5693,195 +5221,160 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,240,107,111, 27, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 16,112,111, 27, 1, 0, 0, 0, 0,230,109, 27, - 1, 0, 0, 0, 96,140,132, 29, 1, 0, 0, 0,224,145,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,109,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176,110,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,110,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,109,111, 27, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 16,112,111, 27, - 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,107,111, 27, 1, 0, 0, 0, 80,109,111, 27, - 1, 0, 0, 0,176,110,111, 27, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144,181,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,240,182,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +240,182,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,181,233, 19, 1, 0, 0, 0, + 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66,116, 8,204, 67, +223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, +205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5,112, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,113,111, 27, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,110, 27, 1, 0, 0, 0,128,112,109, 27, - 1, 0, 0, 0, 64,110,109, 27, 1, 0, 0, 0,224,109,109, 27, 1, 0, 0, 0,224,112,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 65, 3, 0, 0, 99, 4, 0, 0, 3, 3,144, 1, 35, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,116,111, 27, 1, 0, 0, 0, 48,131,111, 27, 1, 0, 0, 0,240,113,111, 27, - 1, 0, 0, 0, 80,115,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,113,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 80,115,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,149, 67, 0, 0,200, 65, 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,144, 1, 26, 0,144, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 65, 3, 0, 0, 90, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 80,184,233, 19, 1, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 48,191,233, 19, 1, 0, 0, 0, 48,102, 5, 3, 1, 0, 0, 0, +144,181,233, 19, 1, 0, 0, 0,240,182,233, 19, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,115,111, 27, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,113,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 67, 0, 0,119,195, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, - 8, 1, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, - 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,144, 1, 9, 1,127, 1,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 91, 3, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,116,111, 27, 1, 0, 0, 0,167, 0, 0, 0, - 1, 0, 0, 0,224,121,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,185,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 16,187,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,187,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,112,188,233, 19, 1, 0, 0, 0,176,185,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,113,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 64,113,109, 27, 1, 0, 0, 0,219, 0, 0, 0, - 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 16,118,111, 27, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 16,118,111, 27, - 1, 0, 0, 0,218, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 19, 0, 0, 0, - 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 21, 0, 1, 0, - 1, 0, 1, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 58,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,171,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 86,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 64,198,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 80,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48, 54,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 32,163,176, 21, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,119,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,120,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, - 0, 0,248, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 1, 31, 0, 44, 1, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0, -160, 5, 0, 0,218, 2, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1, 31, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128,120,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,119,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,246,194, - 0, 0, 0, 0, 27, 1, 0, 0, 44, 1, 0, 0, 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 44, 1,141, 0, 27, 1, -123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0, -160, 5, 0, 0, 77, 2, 0, 0,217, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 1, 0, 0,224,121,111, 27, 1, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 64,127,111, 27, 1, 0, 0, 0,176,116,111, 27, - 1, 0, 0, 0, 32,119,111, 27, 1, 0, 0, 0,128,120,111, 27, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,188,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,208,189,233, 19, 1, 0, 0, 0, 16,187,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32,123,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,124,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,124,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,224,125,111, 27, 1, 0, 0, 0, 32,123,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,189,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,188,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, + 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48,191,233, 19, 1, 0, 0, 0, +165, 0, 0, 0, 1, 0, 0, 0, 64,199,233, 19, 1, 0, 0, 0, 80,184,233, 19, 1, 0, 0, 0,176,185,233, 19, 1, 0, 0, 0, +208,189,233, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0, -235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224,125,111, 27, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,124,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, - 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0, -235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,192,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192,193,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, + 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 64,127,111, 27, - 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 48,131,111, 27, 1, 0, 0, 0,224,121,111, 27, 1, 0, 0, 0, 32,123,111, 27, - 1, 0, 0, 0,224,125,111, 27, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192,193,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32,195,233, 19, 1, 0, 0, 0, + 96,192,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, +255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, + 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32,195,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128,196,233, 19, 1, 0, 0, 0, +192,193,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112,128,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208,129,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,128,196,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,224,197,233, 19, 1, 0, 0, 0, + 32,195,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, +122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,208,129,111, 27, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,128,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,224,197,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128,196,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0, -108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 38,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48, 38,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, -115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,106, 5, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,106, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, +224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, + 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191, +222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64, +129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5889,1646 +5382,2393 @@ char datatoc_B_blend[]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 48,131,111, 27, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,127,111, 27, 1, 0, 0, 0,112,128,111, 27, 1, 0, 0, 0,208,129,111, 27, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,128, 74,111, 27, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,192,159,176, 21, - 1, 0, 0, 0,240, 38,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, - 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,147,132, 29, 1, 0, 0, 0, 16, 77,111, 27, 1, 0, 0, 0,112, 71,111, 27, 1, 0, 0, 0,208,203,132, 29, - 1, 0, 0, 0, 48,204,132, 29, 1, 0, 0, 0,224, 75,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,147,132, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 16,133,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16,133,111, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,112,133,111, 27, - 1, 0, 0, 0, 64,147,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,112,133,111, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 16,133,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 75,111, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0,112,133,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176, 76,111, 27, - 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,176, 76,111, 27, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 16, 77,111, 27, 1, 0, 0, 0, 80, 76,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16, 77,111, 27, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 76,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,196, 3, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 71,111, 27, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,208, 71,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,133,111, 27, 1, 0, 0, 0,112,133,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 71,111, 27, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 48, 72,111, 27, 1, 0, 0, 0,112, 71,111, 27, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 16,133,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48, 72,111, 27, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,144, 72,111, 27, 1, 0, 0, 0,208, 71,111, 27, 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,112,133,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 72,111, 27, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,240, 72,111, 27, 1, 0, 0, 0, 48, 72,111, 27, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 80, 76,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 72,111, 27, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 80, 73,111, 27, 1, 0, 0, 0,144, 72,111, 27, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0,176, 76,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 73,111, 27, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,176, 73,111, 27, 1, 0, 0, 0,240, 72,111, 27, 1, 0, 0, 0, 16, 77,111, 27, 1, 0, 0, 0, 64,147,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 73,111, 27, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,176,202,132, 29, 1, 0, 0, 0, 80, 73,111, 27, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 64,147,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176,202,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 16,203,132, 29, 1, 0, 0, 0,176, 73,111, 27, 1, 0, 0, 0,176, 76,111, 27, 1, 0, 0, 0, 16, 77,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,203,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,112,203,132, 29, 1, 0, 0, 0,176,202,132, 29, 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,176, 76,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112,203,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,208,203,132, 29, 1, 0, 0, 0, 16,203,132, 29, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 16, 77,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,203,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,203,132, 29, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 80, 76,111, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 48,204,132, 29, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 16,205,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0, 16,133,111, 27, - 1, 0, 0, 0,112,133,111, 27, 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,125,132, 29, 1, 0, 0, 0, 0,125,132, 29, 1, 0, 0, 0, 80, 6,133, 29, 1, 0, 0, 0,176, 7,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 6,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 7,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 7,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 6,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, -255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 16,205,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224, 75,133, 29, - 1, 0, 0, 0, 48,204,132, 29, 1, 0, 0, 0, 64,147,132, 29, 1, 0, 0, 0,240, 75,111, 27, 1, 0, 0, 0,176, 76,111, 27, - 1, 0, 0, 0, 16, 77,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, - 99, 4, 0, 0, 6, 6,196, 3,100, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,222,132, 29, - 1, 0, 0, 0,224, 74,133, 29, 1, 0, 0, 0, 16, 9,133, 29, 1, 0, 0, 0,208, 11,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 16, 9,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 10,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,113, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,196, 3, 26, 0,196, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,112, 10,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 11,133, 29, 1, 0, 0, 0, 16, 9,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, 0,224,134,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,255,255,134,196, - 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, 74, 4,203, 0, - 56, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 74, 4, - 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,221,132, 29, 1, 0, 0, 0, 96,221,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 96,221,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, -110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101, -110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,202, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 11,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 10,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67,154,153, 41,191,205,204,212, 63,154,153,155,191,205,204, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 0, 0, 0, 0, 0, 0, - 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,195, 3, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,240,222,132, 29, 1, 0, 0, 0,168, 0, 0, 0, - 1, 0, 0, 0,192, 70,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,223,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 48,225,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,225,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,144,226,132, 29, 1, 0, 0, 0,208,223,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,226,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,240,227,132, 29, 1, 0, 0, 0, 48,225,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,227,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 80,229,132, 29, 1, 0, 0, 0,144,226,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,229,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,227,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 42,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 42,136, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, - 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 64,199,233, 19, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0, 96,203,233, 19, 1, 0, 0, 0, 48,191,233, 19, 1, 0, 0, 0, 96,192,233, 19, 1, 0, 0, 0, +224,197,233, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160,200,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0,202,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,202,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160,200,233, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 96,203,233, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64,199,233, 19, 1, 0, 0, 0,160,200,233, 19, 1, 0, 0, 0, 0,202,233, 19, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 96,204,233, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +208,230,233, 19, 1, 0, 0, 0, 96,173,233, 19, 1, 0, 0, 0,240,127,233, 19, 1, 0, 0, 0,112,126,233, 19, 1, 0, 0, 0, + 48,127,233, 19, 1, 0, 0, 0, 80,128,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +193, 1, 0, 0, 99, 4, 0, 0, 9, 9,240, 5,163, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,110, 5, 3, 1, 0, 0, 0,208,229,233, 19, 1, 0, 0, 0, 64,205,233, 19, 1, 0, 0, 0,160,206,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64,205,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,160,206,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, + 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, + 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0,193, 1, 0, 0,218, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,160,206,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,205,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,168, 86,234, 67, 86, 74,131, 68, +133, 83, 49, 67, 62,214,212, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5, +137, 2,240, 5,137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0,219, 1, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5,137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,144, 2, 0, 0, 48,110, 5, 3, 1, 0, 0, 0,171, 0, 0, 0, 1, 0, 0, 0,192,210,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,208,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 96,209,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96,209,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,208,233, 19, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, +132,137,182,195,194, 68, 91, 68,112,158, 93, 65, 8, 19,249, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, + 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 4, 0, 0,240, 5, 92, 2,223, 5, 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,183, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 92, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,192,210,233, 19, 1, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, +160,217,233, 19, 1, 0, 0, 0, 48,110, 5, 3, 1, 0, 0, 0, 0,208,233, 19, 1, 0, 0, 0, 96,209,233, 19, 1, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 52, 81, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32,212,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128,213,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, + 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, + 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,128,213,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,224,214,233, 19, 1, 0, 0, 0, + 32,212,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,224,214,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 64,216,233, 19, 1, 0, 0, 0, +128,213,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64,216,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224,214,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, + 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5, +163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0,160,217,233, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0,176,225,233, 19, 1, 0, 0, 0, +192,210,233, 19, 1, 0, 0, 0, 32,212,233, 19, 1, 0, 0, 0, 64,216,233, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,218,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 48,220,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,220,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,144,221,233, 19, 1, 0, 0, 0,208,218,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,221,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,240,222,233, 19, 1, 0, 0, 0, 48,220,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,222,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 80,224,233, 19, 1, 0, 0, 0,144,221,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,224,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,222,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,114, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,114, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, +248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, + 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61, +170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195, +205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, + 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,176,225,233, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,208,229,233, 19, 1, 0, 0, 0, +160,217,233, 19, 1, 0, 0, 0,208,218,233, 19, 1, 0, 0, 0, 80,224,233, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 16,227,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,112,228,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +112,228,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,227,233, 19, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +208,229,233, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,225,233, 19, 1, 0, 0, 0, + 16,227,233, 19, 1, 0, 0, 0,112,228,233, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +208,230,233, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 5,234, 19, 1, 0, 0, 0, 96,204,233, 19, 1, 0, 0, 0, +240,124,233, 19, 1, 0, 0, 0,240,127,233, 19, 1, 0, 0, 0, 16,129,233, 19, 1, 0, 0, 0,176,128,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 18, 18,240, 2,192, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,234,233, 19, 1, 0, 0, 0,208, 4,234, 19, 1, 0, 0, 0, +176,231,233, 19, 1, 0, 0, 0, 16,233,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,231,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 16,233,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,231, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 60, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 2, 26, 0,240, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,233,233, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,231,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,192, 59, 68, + 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,192, 55, 68, 0, 0, 0, 0, 0, 0,211, 67,223, 2, 0, 0,240, 2, 0, 0, + 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, + 0, 0, 0, 0,165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 2,166, 1,223, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2, 0, 0, 26, 0, 0, 0,191, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 2,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 1, 0, 0,112,234,233, 19, 1, 0, 0, 0, +179, 0, 0, 0, 1, 0, 0, 0, 48,118, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64,236,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,160,237,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160,237,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,236,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 2, 0, 0, + 48,118, 5, 3, 1, 0, 0, 0,171, 0, 0, 0, 1, 0, 0, 0,192,241,233, 19, 1, 0, 0, 0,112,234,233, 19, 1, 0, 0, 0, + 64,236,233, 19, 1, 0, 0, 0,160,237,233, 19, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 0,239,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96,240,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, + 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, + 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,240,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,239,233, 19, 1, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, + 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5, +130, 1,223, 5,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 5,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,192,241,233, 19, 1, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0,160,248,233, 19, 1, 0, 0, 0, + 48,118, 5, 3, 1, 0, 0, 0, 0,239,233, 19, 1, 0, 0, 0, 96,240,233, 19, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 52, 81, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,243,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128,244,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, + 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128,244,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,224,245,233, 19, 1, 0, 0, 0, 32,243,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0, +112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +224,245,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 64,247,233, 19, 1, 0, 0, 0,128,244,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64,247,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,245,233, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, +112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, +160,248,233, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0,176, 0,234, 19, 1, 0, 0, 0,192,241,233, 19, 1, 0, 0, 0, + 32,243,233, 19, 1, 0, 0, 0, 64,247,233, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,249,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 48,251,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,251,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +144,252,233, 19, 1, 0, 0, 0,208,249,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,252,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +240,253,233, 19, 1, 0, 0, 0, 48,251,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, + 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,253,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 80,255,233, 19, 1, 0, 0, 0,144,252,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,255,233, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240,253,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,122, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,122, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, + 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, + 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0, +185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63, +180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62, +147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, +217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53, +215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, +180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62, +147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, +176, 0,234, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,208, 4,234, 19, 1, 0, 0, 0,160,248,233, 19, 1, 0, 0, 0, +208,249,233, 19, 1, 0, 0, 0, 80,255,233, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 2,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,112, 3,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 3,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2,234, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,208, 4,234, 19, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 0,234, 19, 1, 0, 0, 0, 16, 2,234, 19, 1, 0, 0, 0, +112, 3,234, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,208, 5,234, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,230,233, 19, 1, 0, 0, 0,112,129,233, 19, 1, 0, 0, 0, + 48,127,233, 19, 1, 0, 0, 0,208,126,233, 19, 1, 0, 0, 0,208,129,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 5, 0, 0,128, 7, 0, 0, 65, 3, 0, 0, 99, 4, 0, 0, 3, 3,144, 1, 35, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112, 9,234, 19, 1, 0, 0, 0,160, 25,234, 19, 1, 0, 0, 0,176, 6,234, 19, 1, 0, 0, 0, + 16, 8,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 6,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 16, 8,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,200, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,149, 67, 0, 0,200, 65, 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,144, 1, 26, 0,144, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 65, 3, 0, 0, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 8,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176, 6,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,191, 67, 0, 0,119,195, 0, 0, 0, 0,127, 1, 0, 0,144, 1, 0, 0, 18, 0, 0, 0, 8, 1, 0, 0, + 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 18, 0, 0, 0, 8, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, + 0, 0, 0, 4, 6, 0,144, 1, 9, 1,127, 1,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,128, 7, 0, 0, 91, 3, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 9,234, 19, 1, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, +240, 14,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +208, 10,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,208, 10,234, 19, 1, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 13, 0, 0, 0, 32, 11,234, 19, 1, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 32, 11,234, 19, 1, 0, 0, 0, +219, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, + 48,154, 5, 3, 1, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 48,154, 5, 3, 1, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0, + 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,166, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,182, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,193,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,194, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,112,191,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,188, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 48,162, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,128,185,234, 19, 1, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 48, 12,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,144, 13,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0, 0, 0,248, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 1, 31, 0, 44, 1, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,160, 5, 0, 0, +218, 2, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1, 31, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +144, 13,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 12,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0,128,141, 67, 0, 0, 62,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,246,194, 0, 0, 0, 0, + 27, 1, 0, 0, 44, 1, 0, 0, 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 26, 1, 0, 0, 18, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 44, 1,141, 0, 27, 1,123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,160, 5, 0, 0, + 77, 2, 0, 0,217, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1,141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, +240, 14,234, 19, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,176, 21,234, 19, 1, 0, 0, 0,112, 9,234, 19, 1, 0, 0, 0, + 48, 12,234, 19, 1, 0, 0, 0,144, 13,234, 19, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 16,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,144, 17,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, + 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 17,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,240, 18,234, 19, 1, 0, 0, 0, 48, 16,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 18,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 80, 20,234, 19, 1, 0, 0, 0,144, 17,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 20,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 18,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, + 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,176, 21,234, 19, 1, 0, 0, 0, +165, 0, 0, 0, 1, 0, 0, 0,160, 25,234, 19, 1, 0, 0, 0,240, 14,234, 19, 1, 0, 0, 0, 48, 16,234, 19, 1, 0, 0, 0, + 80, 20,234, 19, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,224, 22,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 64, 24,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 67, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, + 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 64, 24,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224, 22,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 1, 55, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,126, 5, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,126, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160, 25,234, 19, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 21,234, 19, 1, 0, 0, 0,224, 22,234, 19, 1, 0, 0, 0, + 64, 24,234, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,128, 27,234, 19, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 48, 86,234, 19, 1, 0, 0, 0,224,123,233, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144, 28,234, 19, 1, 0, 0, 0, 48, 31,234, 19, 1, 0, 0, 0,144, 31,234, 19, 1, 0, 0, 0, + 80, 35,234, 19, 1, 0, 0, 0,176, 35,234, 19, 1, 0, 0, 0,192, 58,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144, 28,234, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,240, 28,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,240, 28,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 80, 29,234, 19, 1, 0, 0, 0,144, 28,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 80, 29,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,176, 29,234, 19, 1, 0, 0, 0, +240, 28,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +176, 29,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 16, 30,234, 19, 1, 0, 0, 0, 80, 29,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 16, 30,234, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,112, 30,234, 19, 1, 0, 0, 0,176, 29,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,100, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,112, 30,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +208, 30,234, 19, 1, 0, 0, 0, 16, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,208, 30,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 48, 31,234, 19, 1, 0, 0, 0, +112, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 3,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 48, 31,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 30,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,196, 3, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 31,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240, 31,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 28,234, 19, 1, 0, 0, 0, + 80, 29,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 31,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80, 32,234, 19, 1, 0, 0, 0,144, 31,234, 19, 1, 0, 0, 0,240, 28,234, 19, 1, 0, 0, 0, + 16, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 32,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,176, 32,234, 19, 1, 0, 0, 0,240, 31,234, 19, 1, 0, 0, 0, 80, 29,234, 19, 1, 0, 0, 0, +112, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,176, 32,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 16, 33,234, 19, 1, 0, 0, 0, 80, 32,234, 19, 1, 0, 0, 0, 16, 30,234, 19, 1, 0, 0, 0, +112, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16, 33,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,112, 33,234, 19, 1, 0, 0, 0,176, 32,234, 19, 1, 0, 0, 0, 16, 30,234, 19, 1, 0, 0, 0, +208, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,112, 33,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,208, 33,234, 19, 1, 0, 0, 0, 16, 33,234, 19, 1, 0, 0, 0,144, 28,234, 19, 1, 0, 0, 0, + 48, 31,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208, 33,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 48, 34,234, 19, 1, 0, 0, 0,112, 33,234, 19, 1, 0, 0, 0,144, 28,234, 19, 1, 0, 0, 0, + 16, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48, 34,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,144, 34,234, 19, 1, 0, 0, 0,208, 33,234, 19, 1, 0, 0, 0,208, 30,234, 19, 1, 0, 0, 0, + 48, 31,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144, 34,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,240, 34,234, 19, 1, 0, 0, 0, 48, 34,234, 19, 1, 0, 0, 0,112, 30,234, 19, 1, 0, 0, 0, +208, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,240, 34,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 80, 35,234, 19, 1, 0, 0, 0,144, 34,234, 19, 1, 0, 0, 0,176, 29,234, 19, 1, 0, 0, 0, + 48, 31,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 80, 35,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 34,234, 19, 1, 0, 0, 0,176, 29,234, 19, 1, 0, 0, 0, +112, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,176, 35,234, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 80, 39,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 30,234, 19, 1, 0, 0, 0, +240, 28,234, 19, 1, 0, 0, 0, 80, 29,234, 19, 1, 0, 0, 0,112, 30,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176, 85,234, 19, 1, 0, 0, 0,176, 85,234, 19, 1, 0, 0, 0,144, 36,234, 19, 1, 0, 0, 0, +240, 37,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 36,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +240, 37,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 37,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144, 36,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 80, 39,234, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +192, 58,234, 19, 1, 0, 0, 0,176, 35,234, 19, 1, 0, 0, 0,144, 28,234, 19, 1, 0, 0, 0, 16, 30,234, 19, 1, 0, 0, 0, +208, 30,234, 19, 1, 0, 0, 0, 48, 31,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, + 0, 0, 0, 0, 99, 4, 0, 0, 6, 6,196, 3,100, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +224, 45,234, 19, 1, 0, 0, 0,192, 57,234, 19, 1, 0, 0, 0, 48, 40,234, 19, 1, 0, 0, 0,128, 44,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48, 40,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,144, 41,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,113, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, + 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,196, 3, + 26, 0,196, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,195, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +196, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,144, 41,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128, 44,234, 19, 1, 0, 0, 0, + 48, 40,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, 0,224,134,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67, +255,255,134,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, + 74, 4,203, 0, 56, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0, 74, 4, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 42,234, 19, 1, 0, 0, 0,240, 42,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,240, 42,234, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, + 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, + 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80, +101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,202, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 44,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 41,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 67,154,153, 41,191,205,204,212, 63,154,153,155,191,205,204, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 0, 0, + 0, 0, 0, 0, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,195, 3, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 2, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0,224, 45,234, 19, 1, 0, 0, 0, +169, 0, 0, 0, 1, 0, 0, 0,160, 53,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 46,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 32, 48,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 48,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,128, 49,234, 19, 1, 0, 0, 0,192, 46,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 49,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,224, 50,234, 19, 1, 0, 0, 0, 32, 48,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 50,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 64, 52,234, 19, 1, 0, 0, 0,128, 49,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 52,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 50,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,130, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,130, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, +248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, + 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, + 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195, +205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, + 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0,160, 53,234, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,192, 57,234, 19, 1, 0, 0, 0, +224, 45,234, 19, 1, 0, 0, 0,192, 46,234, 19, 1, 0, 0, 0, 64, 52,234, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0, 55,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96, 56,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96, 56,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,234, 19, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +192, 57,234, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 53,234, 19, 1, 0, 0, 0, + 0, 55,234, 19, 1, 0, 0, 0, 96, 56,234, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,192, 70,133, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,224, 74,133, 29, 1, 0, 0, 0,240,222,132, 29, - 1, 0, 0, 0,208,223,132, 29, 1, 0, 0, 0, 80,229,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +192, 58,234, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 39,234, 19, 1, 0, 0, 0, + 48, 31,234, 19, 1, 0, 0, 0,208, 30,234, 19, 1, 0, 0, 0,112, 30,234, 19, 1, 0, 0, 0,176, 29,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 99, 4, 0, 0, 1, 1,188, 3,100, 4, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 80,234, 19, 1, 0, 0, 0,176, 84,234, 19, 1, 0, 0, 0, +160, 59,234, 19, 1, 0, 0, 0, 48, 79,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 59,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 61,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,111, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,188, 3, 26, 0,188, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 72,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 73,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 61,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,128, 65,234, 19, 1, 0, 0, 0,160, 59,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 0,112,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,112,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,209, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,209, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,210, 3,143, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0,146, 0, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,210, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 62,234, 19, 1, 0, 0, 0,240, 63,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96, 62,234, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,240, 63,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 73,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 72,133, 29, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,224, 74,133, 29, - 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 70,133, 29, 1, 0, 0, 0, 32, 72,133, 29, - 1, 0, 0, 0,128, 73,133, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,240, 63,234, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 62,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84, +111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224, 75,133, 29, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,205,132, 29, 1, 0, 0, 0, 16, 77,111, 27, - 1, 0, 0, 0,176, 76,111, 27, 1, 0, 0, 0, 80, 76,111, 27, 1, 0, 0, 0,144, 75,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 99, 4, 0, 0, 1, 1,188, 3,100, 4, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,218,132, 29, 1, 0, 0, 0, 0,220,132, 29, 1, 0, 0, 0,192, 76,133, 29, - 1, 0, 0, 0, 64,217,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 76,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 78,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,111, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,188, 3, 26, 0,188, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 65,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,112, 68,234, 19, 1, 0, 0, 0, 0, 61,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 78,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,160, 82,133, 29, 1, 0, 0, 0,192, 76,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,112,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,112,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -209, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -209, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,210, 3,143, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0,146, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,210, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 79,133, 29, - 1, 0, 0, 0, 16, 81,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128, 79,133, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 16, 81,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, +224, 66,234, 19, 1, 0, 0, 0,224, 66,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,224, 66,234, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,196,255,143, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 16, 81,133, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 79,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,254,143, 0,165, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,112, 68,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 48, 79,234, 19, 1, 0, 0, 0, +128, 65,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, +255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, + 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128, 7, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 69,234, 19, 1, 0, 0, 0,160, 77,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,208, 69,234, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 96, 71,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,111, 98,106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114, +109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 82,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 84,133, 29, 1, 0, 0, 0, 32, 78,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197, 3, 0, 0,100, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,156,176, 21, - 1, 0, 0, 0,160,156,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160,156,176, 21, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 96, 71,234, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0,240, 72,234, 19, 1, 0, 0, 0,208, 69,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0, 84,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 64,217,132, 29, 1, 0, 0, 0,160, 82,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0, -251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, -128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,158,176, 21, 1, 0, 0, 0,112,123,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 48,158,176, 21, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,192,229,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98, -106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98, -106,101, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,254,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,163, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,240, 72,234, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,128, 74,234, 19, 1, 0, 0, 0, + 96, 71,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,192,229,130, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,160,128,132, 29, 1, 0, 0, 0, 48,158,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,252,163, 0, 59, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,128, 74,234, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 16, 76,234, 19, 1, 0, 0, 0,240, 72,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40,254,163, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,160,128,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 48,130,132, 29, 1, 0, 0, 0,192,229,130, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100, -118,105,101,119, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,189,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,252,163, 0, 59, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 48,130,132, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0,192,131,132, 29, 1, 0, 0, 0,160,128,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0, 16, 76,234, 19, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,160, 77,234, 19, 1, 0, 0, 0, +128, 74,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117, +110,100, 32, 73,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,252,163, 0, 0, 0, + 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,160, 77,234, 19, 1, 0, 0, 0, +195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 76,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, +110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101, +110,116, 97,116,105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,189,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,192,131,132, 29, 1, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,112,123,132, 29, 1, 0, 0, 0, 48,130,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, - 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, - 99,107,103,114,111,117,110,100, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97, 99,107,103,114,111,117,110,100, 32, 73, -109, 97,103,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,252,163, 0, 0, 0, 20, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 48, 79,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112, 68,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,112,123,132, 29, 1, 0, 0, 0,194, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,131,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116, -105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116, -105,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,141,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 64,217,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +101, 4, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 3, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,134, 5, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,134, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,151, 29,193, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 13,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, +160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, + 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191,147,231,198, 63, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, + 48,180, 81,191,184,158, 81,191,232, 29,176, 63,139,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63, +138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,227, 37,139, 62,171,190, 26, 63, +112, 12, 16,188, 0, 0, 64, 51,195, 15,188,190,131, 75, 53, 62,218,125, 81, 63, 0, 0,160,179,115, 77,100,193, 16,173,201, 64, +182,148,248,192,203,247,159,192,233, 74, 87, 65,246, 46,190,192, 89,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190, +184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, + 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, + 48,180, 81,191,184,158, 81,191,232, 29,176, 63,139,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63, +138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190, +237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,104, 72,218, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 4, 0, 0, -128, 7, 0, 0, 26, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 3, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 46,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48, 46,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0,151, 29,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, 74,215, 76,190, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, - 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191,147,231,198, 63, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, 48,180, 81,191, -184,158, 81,191,232, 29,176, 63,139,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63,138, 84,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,227, 37,139, 62,171,190, 26, 63,112, 12, 16,188, - 0, 0, 64, 51,195, 15,188,190,131, 75, 53, 62,218,125, 81, 63, 0, 0,160,179,115, 77,100,193, 16,173,201, 64,182,148,248,192, -203,247,159,192,233, 74, 87, 65,246, 46,190,192, 89,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63,166, 93, 30, 63,206,249,224,190, 48,180, 81,191, -184,158, 81,191,232, 29,176, 63,139,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,237,241,163,188,204,156,122, 63,138, 84,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,104, 72,218, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,144, 80,234, 19, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0,176, 84,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 81,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 80, 83,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 83,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 81,234, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, +112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, + 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,176, 84,234, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,144, 80,234, 19, 1, 0, 0, 0,240, 81,234, 19, 1, 0, 0, 0, 80, 83,234, 19, 1, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0, 48, 86,234, 19, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 27,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 87,234, 19, 1, 0, 0, 0, 96, 91,234, 19, 1, 0, 0, 0,192, 91,234, 19, 1, 0, 0, 0, + 32, 98,234, 19, 1, 0, 0, 0,128, 98,234, 19, 1, 0, 0, 0,192,160,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 87,234, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,160, 87,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 87,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 0, 88,234, 19, 1, 0, 0, 0, 64, 87,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 0, 88,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 88,234, 19, 1, 0, 0, 0, +160, 87,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 96, 88,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,192, 88,234, 19, 1, 0, 0, 0, 0, 88,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,192, 88,234, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0, 32, 89,234, 19, 1, 0, 0, 0, 96, 88,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 32, 89,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, +128, 89,234, 19, 1, 0, 0, 0,192, 88,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,128, 89,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,224, 89,234, 19, 1, 0, 0, 0, + 32, 89,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +224, 89,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 64, 90,234, 19, 1, 0, 0, 0,128, 89,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64, 90,234, 19, 1, 0, 0, 0, +193, 0, 0, 0, 1, 0, 0, 0,160, 90,234, 19, 1, 0, 0, 0,224, 89,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 3,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,160, 90,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, + 0, 91,234, 19, 1, 0, 0, 0, 64, 90,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 0, 91,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 96, 91,234, 19, 1, 0, 0, 0, +160, 90,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 96, 91,234, 19, 1, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 91,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 32, 92,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 87,234, 19, 1, 0, 0, 0, + 0, 88,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 92,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,128, 92,234, 19, 1, 0, 0, 0,192, 91,234, 19, 1, 0, 0, 0,160, 87,234, 19, 1, 0, 0, 0, +192, 88,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 92,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,224, 92,234, 19, 1, 0, 0, 0, 32, 92,234, 19, 1, 0, 0, 0, 0, 88,234, 19, 1, 0, 0, 0, + 32, 89,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 92,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 64, 93,234, 19, 1, 0, 0, 0,128, 92,234, 19, 1, 0, 0, 0,192, 88,234, 19, 1, 0, 0, 0, + 32, 89,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 93,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,160, 93,234, 19, 1, 0, 0, 0,224, 92,234, 19, 1, 0, 0, 0, 32, 89,234, 19, 1, 0, 0, 0, +128, 89,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 93,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 94,234, 19, 1, 0, 0, 0, 64, 93,234, 19, 1, 0, 0, 0, 64, 87,234, 19, 1, 0, 0, 0, +224, 89,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 94,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 96, 94,234, 19, 1, 0, 0, 0,160, 93,234, 19, 1, 0, 0, 0,192, 88,234, 19, 1, 0, 0, 0, + 64, 90,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 94,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,192, 94,234, 19, 1, 0, 0, 0, 0, 94,234, 19, 1, 0, 0, 0,224, 89,234, 19, 1, 0, 0, 0, +160, 90,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 94,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 32, 95,234, 19, 1, 0, 0, 0, 96, 94,234, 19, 1, 0, 0, 0,160, 90,234, 19, 1, 0, 0, 0, + 0, 91,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 95,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,128, 95,234, 19, 1, 0, 0, 0,192, 94,234, 19, 1, 0, 0, 0, 64, 90,234, 19, 1, 0, 0, 0, + 0, 91,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128, 95,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,224, 95,234, 19, 1, 0, 0, 0, 32, 95,234, 19, 1, 0, 0, 0,128, 89,234, 19, 1, 0, 0, 0, + 96, 91,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224, 95,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 64, 96,234, 19, 1, 0, 0, 0,128, 95,234, 19, 1, 0, 0, 0, 96, 88,234, 19, 1, 0, 0, 0, + 96, 91,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64, 96,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,160, 96,234, 19, 1, 0, 0, 0,224, 95,234, 19, 1, 0, 0, 0,224, 89,234, 19, 1, 0, 0, 0, + 96, 91,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160, 96,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 97,234, 19, 1, 0, 0, 0, 64, 96,234, 19, 1, 0, 0, 0, 64, 87,234, 19, 1, 0, 0, 0, + 96, 88,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0, 97,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 96, 97,234, 19, 1, 0, 0, 0,160, 96,234, 19, 1, 0, 0, 0, 32, 89,234, 19, 1, 0, 0, 0, + 64, 90,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96, 97,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0,192, 97,234, 19, 1, 0, 0, 0, 0, 97,234, 19, 1, 0, 0, 0,128, 89,234, 19, 1, 0, 0, 0, + 0, 91,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192, 97,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 32, 98,234, 19, 1, 0, 0, 0, 96, 97,234, 19, 1, 0, 0, 0,192, 88,234, 19, 1, 0, 0, 0, +160, 90,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32, 98,234, 19, 1, 0, 0, 0, +194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 97,234, 19, 1, 0, 0, 0,128, 89,234, 19, 1, 0, 0, 0, +160, 90,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,128, 98,234, 19, 1, 0, 0, 0, +196, 0, 0, 0, 1, 0, 0, 0, 32,102,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 88,234, 19, 1, 0, 0, 0, +160, 87,234, 19, 1, 0, 0, 0, 0, 88,234, 19, 1, 0, 0, 0, 32, 89,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80,180,234, 19, 1, 0, 0, 0, 80,180,234, 19, 1, 0, 0, 0, 96, 99,234, 19, 1, 0, 0, 0, +192,100,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 99,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +192,100,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,100,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 99,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,102,234, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +224,110,234, 19, 1, 0, 0, 0,128, 98,234, 19, 1, 0, 0, 0, 64, 87,234, 19, 1, 0, 0, 0,224, 89,234, 19, 1, 0, 0, 0, + 96, 91,234, 19, 1, 0, 0, 0, 96, 88,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 99, 0, 0, 0, 15, 15,129, 7,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192,105,234, 19, 1, 0, 0, 0,128,109,234, 19, 1, 0, 0, 0, 0,103,234, 19, 1, 0, 0, 0, 96,104,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 0,103,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96,104,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, + 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,104,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,103,234, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,129, 7, + 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +129, 7, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0,192,105,234, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0,128,109,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192,106,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32,108,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, + 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, + 26, 0, 88, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32,108,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192,106,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,138, 5, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 3, 0, 0, 48,138, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,218,132, 29, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0, 0,220,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128,165,196, 20, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,164,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, - 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192,164,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128,165,196, 20, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192, -246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 0,220,132, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160,218,132, 29, 1, 0, 0, 0,128,165,196, 20, 1, 0, 0, 0,192,164,132, 29, 1, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128,109,234, 19, 1, 0, 0, 0, +159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,105,234, 19, 1, 0, 0, 0,192,106,234, 19, 1, 0, 0, 0, + 32,108,234, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, + 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224,110,234, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, +112,130,234, 19, 1, 0, 0, 0, 32,102,234, 19, 1, 0, 0, 0,224, 89,234, 19, 1, 0, 0, 0,160, 90,234, 19, 1, 0, 0, 0, +128, 89,234, 19, 1, 0, 0, 0, 96, 91,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, +101, 0, 0, 0, 23, 2, 0, 0, 8, 8,129, 7,179, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64,117,234, 19, 1, 0, 0, 0,112,129,234, 19, 1, 0, 0, 0,192,111,234, 19, 1, 0, 0, 0,224,115,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,192,111,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32,113,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 38, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, + 0, 96,191, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, + 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 7, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 6, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,192,159,176, 21, 1, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 74,111, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105, -100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0, 0,168,132, 29, 1, 0, 0, 0, 96,168,132, 29, 1, 0, 0, 0,192,174,132, 29, - 1, 0, 0, 0, 32,175,132, 29, 1, 0, 0, 0,224, 50,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0,176,133,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,133,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 80,231,130, 29, - 1, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 80,231,130, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0,176,133,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,128, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,176,231,130, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0, 80,231,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 32,166,132, 29, - 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 64,167,196, 20, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,166,132, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0,192, 0, 0, 0, - 1, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3,100, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,160,167,132, 29, - 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,160,167,132, 29, 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0,168,132, 29, 1, 0, 0, 0, 64,167,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 24, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 0,168,132, 29, - 1, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,167,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,128, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,168,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,192,168,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,231,130, 29, 1, 0, 0, 0,176,133,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,168,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 32,169,132, 29, 1, 0, 0, 0, 96,168,132, 29, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0,176,133,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,169,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,128,169,132, 29, 1, 0, 0, 0,192,168,132, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0, 80,231,130, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,169,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,224,169,132, 29, 1, 0, 0, 0, 32,169,132, 29, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0, 64,167,196, 20, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,169,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 64,170,132, 29, 1, 0, 0, 0,128,169,132, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0, 32,166,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,170,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,160,170,132, 29, 1, 0, 0, 0,224,169,132, 29, 1, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0,128,166,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,170,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0,171,132, 29, 1, 0, 0, 0, 64,170,132, 29, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0,224,166,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0,171,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 96,171,132, 29, 1, 0, 0, 0,160,170,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 64,167,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,171,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,192,171,132, 29, 1, 0, 0, 0, 0,171,132, 29, 1, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0,160,167,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,171,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 32,172,132, 29, 1, 0, 0, 0, 96,171,132, 29, 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0,160,167,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 32,172,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,128,172,132, 29, 1, 0, 0, 0,192,171,132, 29, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0, 0,168,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,128,172,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,224,172,132, 29, 1, 0, 0, 0, 32,172,132, 29, 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0, 0,168,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,224,172,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 64,173,132, 29, 1, 0, 0, 0,128,172,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 0,168,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 64,173,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,160,173,132, 29, 1, 0, 0, 0,224,172,132, 29, 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0, 80,133,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,160,173,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0,174,132, 29, 1, 0, 0, 0, 64,173,132, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0,224,166,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 0,174,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 96,174,132, 29, 1, 0, 0, 0,160,173,132, 29, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0,160,167,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,174,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0,192,174,132, 29, 1, 0, 0, 0, 0,174,132, 29, 1, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0, 64,167,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,192,174,132, 29, 1, 0, 0, 0,193, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,174,132, 29, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0, 64,167,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,175,132, 29, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0, 32,148,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,166,196, 20, 1, 0, 0, 0,176,133,132, 29, - 1, 0, 0, 0, 80,231,130, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,101, 4, 0, 0,128, 4, 0, 0, 7, 7,129, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96,177,132, 29, 1, 0, 0, 0, 96,177,132, 29, 1, 0, 0, 0, 0,176,132, 29, 1, 0, 0, 0, 32, 16,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,176,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 16,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 32,240, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,129, 7, 26, 0,129, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 16,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,176,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, -255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,127, 4, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,129, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 32,148,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,224,156,132, 29, - 1, 0, 0, 0, 32,175,132, 29, 1, 0, 0, 0, 80,133,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 0,168,132, 29, - 1, 0, 0, 0,176,231,130, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 99, 0, 0, 0, 15, 15,129, 7,100, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,151,132, 29, - 1, 0, 0, 0,128,155,132, 29, 1, 0, 0, 0, 0,149,132, 29, 1, 0, 0, 0, 96,150,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 0,149,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 96,150,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,136, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 96,150,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,132, 29, - 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,129, 7, 74, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0, 26, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 74, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -200, 0, 0, 0,192,151,132, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,128,155,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,152,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,154,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 6, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,154,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,152,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 32,113,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128,114,234, 19, 1, 0, 0, 0, +192,111,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,195,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, + 0,128,195,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, +153, 1,203, 0,135, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +165, 6, 0, 0,128, 7, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0,153, 1, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,128,114,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,224,115,234, 19, 1, 0, 0, 0, + 32,113,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 50,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 88, 3, 0, 0, 48, 50,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195, -115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,224,115,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +128,114,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, + 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,165, 6, +153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,164, 6, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +165, 6,153, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,248, 0, 0, 0, 64,117,234, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, 80,125,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,128,155,132, 29, 1, 0, 0, 0,158, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,151,132, 29, 1, 0, 0, 0,192,152,132, 29, 1, 0, 0, 0, 32,154,132, 29, - 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224,156,132, 29, 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,192,169,176, 21, - 1, 0, 0, 0, 32,148,132, 29, 1, 0, 0, 0,128,166,132, 29, 1, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0, 32,166,132, 29, - 1, 0, 0, 0, 0,168,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,101, 0, 0, 0, - 23, 2, 0, 0, 8, 8,129, 7,179, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,161,132, 29, - 1, 0, 0, 0, 16,215,132, 29, 1, 0, 0, 0,192,157,132, 29, 1, 0, 0, 0,128,160,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,192,157,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32,159,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 38, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,240, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, 0, 96,191, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,129, 7, 26, 0,129, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 7, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 32,159,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128,160,132, 29, 1, 0, 0, 0,192,157,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,195,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0,128,195,195, - 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,153, 1,203, 0, -135, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6, 0, 0, -128, 7, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,153, 1, - 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,128,160,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,159,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 18, 0, 0, 0,164, 6, 0, 0, 18, 0, 0, 0,152, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, - 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,165, 6,153, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -164, 6, 0, 0,127, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 6,153, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -240, 0, 0, 0,224,161,132, 29, 1, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 96,168,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,163,132, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,240, 85,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,128,191, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, - 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0,252, 5, 26, 0,252, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,252, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240, 85,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 80, 87,133, 29, - 1, 0, 0, 0, 16,163,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0,113, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80, 87,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 88,133, 29, - 1, 0, 0, 0,240, 85,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0, -231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 88,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0,167,176, 21, - 1, 0, 0, 0, 80, 87,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,251, 5, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0,167,176, 21, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,176, 88,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,252, 5,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 54,136, 27, - 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 54,136, 27, 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 79,145, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, - 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, - 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, -241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188, -119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,112,240,191, 62, -108,116, 85, 63, 80,184, 70,188, 0, 0, 46,180,159, 49,181,189,125,172, 46, 61, 7,213, 73, 62, 0, 64,143,180,182,107, 25,196, - 13,135,135, 67, 70, 12,167,195, 71, 0, 72,194,225, 56, 25, 68, 38, 90,135,195,237,212,166, 67, 84, 2, 72, 66, 68,239,209, 62, - 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188, -166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, -241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188, -119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, - 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 13,114,156, 58, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,118,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,208,119,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,191, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,252, 5, 26, 0,252, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,119,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 48,121,234, 19, 1, 0, 0, 0,112,118,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, + 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,223, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,113, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48,121,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,144,122,234, 19, 1, 0, 0, 0,208,119,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, + 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, 96,168,176, 21, - 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 16,215,132, 29, 1, 0, 0, 0,224,161,132, 29, 1, 0, 0, 0, 16,163,132, 29, - 1, 0, 0, 0, 0,167,176, 21, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,122,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,240,123,234, 19, 1, 0, 0, 0, 48,121,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,212,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,176,213,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,123,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,122,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,213,132, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,212,132, 29, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 16,215,132, 29, 1, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,168,176, 21, 1, 0, 0, 0, 80,212,132, 29, 1, 0, 0, 0,176,213,132, 29, - 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 5,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,142, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,142, 5, 3, 1, 0, 0, 0, +158, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 79,145, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128, +226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192, +248,209,213, 64, 0, 0,128, 63,178,157,229, 62,241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, + 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65,112,240,191, 62,108,116, 85, 63, 80,184, 70,188, 0, 0, 46,180,159, 49,181,189,125,172, 46, 61, + 7,213, 73, 62, 0, 64,143,180,182,107, 25,196, 13,135,135, 67, 70, 12,167,195, 71, 0, 72,194,225, 56, 25, 68, 38, 90,135,195, +237,212,166, 67, 84, 2, 72, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +214,211,111,193, 0, 0,128, 63,178,157,229, 62,241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, + 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, + 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,192,169,176, 21, 1, 0, 0, 0,195, 0, 0, 0, - 1, 0, 0, 0,224, 50,133, 29, 1, 0, 0, 0,224,156,132, 29, 1, 0, 0, 0, 64,167,132, 29, 1, 0, 0, 0,224,166,196, 20, - 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0,160,167,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 3, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 2, 2, 80, 3, 75, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 28,133, 29, 1, 0, 0, 0,224, 49,133, 29, 1, 0, 0, 0,176, 22,133, 29, 1, 0, 0, 0,208, 26,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176, 22,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 16, 24,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 83, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 84, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, - 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, - 10, 0, 80, 3, 26, 0, 80, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 25, 2, 0, 0, 50, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 13,114,156, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 24,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 25,133, 29, - 1, 0, 0, 0,176, 22,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 67, 0,192, 7,196, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, - 6, 0,217, 0, 49, 2,200, 0, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0, 49, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 25,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 26,133, 29, - 1, 0, 0, 0, 16, 24,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 3, 0, 0, 79, 3, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 1, 0, 0, 80,125,234, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,112,129,234, 19, 1, 0, 0, 0, + 64,117,234, 19, 1, 0, 0, 0,112,118,234, 19, 1, 0, 0, 0,240,123,234, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +176,126,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 16,128,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 16,128,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,126,234, 19, 1, 0, 0, 0, + 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66, +205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, +127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 26,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,112, 25,133, 29, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0, 18, 0, 0, 0, -118, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0,111, 18,131, 58, -111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0,119, 2, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0, 0, 0, 79, 3, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,119, 2, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, +112,129,234, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,125,234, 19, 1, 0, 0, 0, +176,126,234, 19, 1, 0, 0, 0, 16,128,234, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48, 28,133, 29, 1, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,128, 33,133, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +112,130,234, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,192,160,234, 19, 1, 0, 0, 0,224,110,234, 19, 1, 0, 0, 0, +160, 90,234, 19, 1, 0, 0, 0,192, 88,234, 19, 1, 0, 0, 0, 64, 90,234, 19, 1, 0, 0, 0, 0, 91,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 2, 2, 80, 3, 75, 2, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,136,234, 19, 1, 0, 0, 0,192,159,234, 19, 1, 0, 0, 0, + 80,131,234, 19, 1, 0, 0, 0,112,135,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,131,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,176,132,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 83, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 80, 3, 26, 0, 80, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 25, 2, 0, 0, 50, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,132,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 16,134,234, 19, 1, 0, 0, 0, 80,131,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, + 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0,192, 7,196, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, + 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, + 18, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, 49, 2,200, 0, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 49, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 17,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128, 17,133, 29, - 1, 0, 0, 0, 21, 1, 0, 0, 1, 0, 0, 0, 48, 66,136, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 29,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,192, 30,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 38, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 2, 26, 0,152, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,134,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,112,135,234, 19, 1, 0, 0, 0,176,132,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 30,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 32,133, 29, 1, 0, 0, 0, 96, 29,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 67, 0,128, 4,196, 0, 0, 64,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, - 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,181, 0, 24, 2,181, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 24, 2, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 32,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 30,133, 29, 1, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, - 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0,128, 4,196, 0, 0, 64,193,210, 1, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 18, 0, 0, 0, - 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 0, 0,151, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 3, 0, 0, 79, 3, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,128, 33,133, 29, 1, 0, 0, 0, 22, 1, 0, 0, - 1, 0, 0, 0, 16,216,132, 29, 1, 0, 0, 0, 48, 28,133, 29, 1, 0, 0, 0, 96, 29,133, 29, 1, 0, 0, 0, 32, 32,133, 29, - 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,135,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,134,234, 19, 1, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, + 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0, 48, 2, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,118, 2, 0, 0, + 18, 0, 0, 0, 48, 2, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0, +105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,119, 2, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 79, 3, 0, 0, 51, 2, 0, 0, 99, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 2, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,208,136,234, 19, 1, 0, 0, 0, +163, 0, 0, 0, 1, 0, 0, 0,128,142,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 66,136, 27, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 34,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 36,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 36,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,128, 37,133, 29, 1, 0, 0, 0,192, 34,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0, -163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0, -163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 0,138,234, 19, 1, 0, 0, 0, 22, 1, 0, 0, 1, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,138,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192,139,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 73, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 38, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 37,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 36,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0, -164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 2, 26, 0,152, 2, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 2, 0, 0, +225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,139,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32,141,234, 19, 1, 0, 0, 0, 96,138,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 67, 0,128, 4,196, 0, 0, 64,193, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,181, 0, 24, 2,181, 0, 6, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, +251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 24, 2, 0, 0, 2, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,141,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,139,234, 19, 1, 0, 0, 0, + 0, 0, 32,193, 0, 0,104, 68, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0,128, 4,196, 0, 0, 64,193, +210, 1, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,209, 1, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, + 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,227, 1, 24, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 0, 0,151, 2, 0, 0, +251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, 16,216,132, 29, 1, 0, 0, 0,168, 0, 0, 0, - 1, 0, 0, 0,192, 45,133, 29, 1, 0, 0, 0,128, 33,133, 29, 1, 0, 0, 0,192, 34,133, 29, 1, 0, 0, 0,128, 37,133, 29, - 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,224, 38,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 64, 40,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, +128,142,234, 19, 1, 0, 0, 0, 23, 1, 0, 0, 1, 0, 0, 0,224,147,234, 19, 1, 0, 0, 0,208,136,234, 19, 1, 0, 0, 0, + 96,138,234, 19, 1, 0, 0, 0, 32,141,234, 19, 1, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 64, 40,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,160, 41,133, 29, 1, 0, 0, 0,224, 38,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, - 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,160, 41,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 43,133, 29, 1, 0, 0, 0, 64, 40,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, - 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 0, 43,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 96, 44,133, 29, 1, 0, 0, 0,160, 41,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, -121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 96, 44,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,143,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32,145,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, + 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 58,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 58,136, 27, 1, 0, 0, 0,157, 0, 0, 0, - 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, - 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, - 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, - 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67, -151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, - 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, - 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, - 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, - 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,145,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128,146,234, 19, 1, 0, 0, 0,192,143,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, +172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,189, 0,164, 3,172, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128,146,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,145,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 1, 0, 0,192, 45,133, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,224, 49,133, 29, 1, 0, 0, 0, 16,216,132, 29, - 1, 0, 0, 0,224, 38,133, 29, 1, 0, 0, 0, 96, 44,133, 29, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 47,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,128, 48,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,168, 0, 0, 0, +224,147,234, 19, 1, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0,160,155,234, 19, 1, 0, 0, 0,128,142,234, 19, 1, 0, 0, 0, +192,143,234, 19, 1, 0, 0, 0,128,146,234, 19, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,148,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 32,150,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 2, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, + 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 48,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 47,133, 29, 1, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0, -248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 32,150,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,128,151,234, 19, 1, 0, 0, 0,192,148,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 0, 0, 5, 0, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +128,151,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,224,152,234, 19, 1, 0, 0, 0, 32,150,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0, +143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, +111, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, + 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +224,152,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 64,154,234, 19, 1, 0, 0, 0,128,151,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0, +163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 64,154,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,152,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0, +111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,146, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, + 48,146, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, + 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, + 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, +164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191, +253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181, +195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, + 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, + 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191, +253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, + 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, +214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,172,148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0,224, 49,133, 29, - 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 45,133, 29, 1, 0, 0, 0, 32, 47,133, 29, - 1, 0, 0, 0,128, 48,133, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,224, 50,133, 29, - 1, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,169,176, 21, 1, 0, 0, 0,160,167,132, 29, - 1, 0, 0, 0,224,166,132, 29, 1, 0, 0, 0, 64,167,196, 20, 1, 0, 0, 0, 32,166,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 8, 8, 48, 4, 75, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 55,133, 29, 1, 0, 0, 0, 16, 68,133, 29, 1, 0, 0, 0,192, 51,133, 29, - 1, 0, 0, 0,128, 54,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,192, 51,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 32, 53,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,135, 68, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 4, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0,224,156, 68, 0, 0,200, 65, 0,224,156, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 56, 4, 24, 0, 56, 4, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 32, 53,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0,128, 54,133, 29, 1, 0, 0, 0,192, 51,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,160,155,234, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, +192,159,234, 19, 1, 0, 0, 0,224,147,234, 19, 1, 0, 0, 0,192,148,234, 19, 1, 0, 0, 0, 64,154,234, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 0,157,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96,158,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, + 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, + 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 96,158,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,157,234, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4, +122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,128, 54,133, 29, 1, 0, 0, 0,196, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 53,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, - 74, 2, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 18, 0, 0, 0, - 74, 2, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 48, 4, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,200, 0, 0, 0,192,159,234, 19, 1, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160,155,234, 19, 1, 0, 0, 0, 0,157,234, 19, 1, 0, 0, 0, 96,158,234, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,224, 55,133, 29, 1, 0, 0, 0,164, 0, 0, 0, - 1, 0, 0, 0,240, 63,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,192,160,234, 19, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,130,234, 19, 1, 0, 0, 0, 0, 91,234, 19, 1, 0, 0, 0, 64, 90,234, 19, 1, 0, 0, 0, 32, 89,234, 19, 1, 0, 0, 0, +128, 89,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, 25, 2, 0, 0, 99, 4, 0, 0, + 8, 8, 48, 4, 75, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,167,234, 19, 1, 0, 0, 0, + 80,179,234, 19, 1, 0, 0, 0,160,161,234, 19, 1, 0, 0, 0,192,165,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +160,161,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0,163,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,135, 68, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 4, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,224,156, 68, 0, 0,200, 65, 0,224,156, 68, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 56, 4, 24, 0, 56, 4, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, + 25, 2, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, + 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16, 57,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,112, 58,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0, -250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112, 58,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,208, 59,133, 29, 1, 0, 0, 0, 16, 57,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208, 59,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 48, 61,133, 29, 1, 0, 0, 0,112, 58,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, -251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 48, 61,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,144, 62,133, 29, 1, 0, 0, 0,208, 59,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144, 62,133, 29, - 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 61,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, - 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 62,136, 27, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48, 62,136, 27, - 1, 0, 0, 0,157, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, - 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, -142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, -111,121,173,192,248,209,213, 64, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, - 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190, -250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68, -160, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, - 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 0,163,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 96,164,234, 19, 1, 0, 0, 0,160,161,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0, + 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 96,164,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,192,165,234, 19, 1, 0, 0, 0, 0,163,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,240, 63,133, 29, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 16, 68,133, 29, - 1, 0, 0, 0,224, 55,133, 29, 1, 0, 0, 0, 16, 57,133, 29, 1, 0, 0, 0,144, 62,133, 29, 1, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 80, 65,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,176, 66,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,176, 66,133, 29, 1, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 65,133, 29, - 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +192,165,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,164,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 74, 2, 0, 0, 18, 0, 0, 0, 47, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 18, 0, 0, 0, 47, 4, 0, 0, 18, 0, 0, 0, 74, 2, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, + 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 48, 4, 75, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 3, 0, 0,128, 7, 0, 0, + 25, 2, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4, 75, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -200, 0, 0, 0, 16, 68,133, 29, 1, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 63,133, 29, - 1, 0, 0, 0, 80, 65,133, 29, 1, 0, 0, 0,176, 66,133, 29, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, + 32,167,234, 19, 1, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, 48,175,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 67, 0, 0, - 40, 6, 0, 0, 48, 66,136, 27, 1, 0, 0, 0,155, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, - 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 68,132, 27, 1, 0, 0, 0, 48, 58,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,224, 17,133, 29, 1, 0, 0, 0,112, 69,133, 29, 1, 0, 0, 0,224, 17,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,161,176, 21, 1, 0, 0, 0, 48, 26,139, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 80,168,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +176,169,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,157, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, - 6, 0, 25, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, - 81, 0, 0, 0, 23, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 69,133, 29, 1, 0, 0, 0,208, 69,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0,200, 66, 0, 0,200, 66, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,176,169,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 16,171,234, 19, 1, 0, 0, 0, 80,168,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 98, 97, - 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 16,171,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +112,172,234, 19, 1, 0, 0, 0,176,169,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, + 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,112,172,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, +208,173,234, 19, 1, 0, 0, 0, 16,171,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,208,173,234, 19, 1, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,112,172,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,150, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 88, 3, 0, 0, 48,150, 5, 3, 1, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, + 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, + 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0, +185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63, +180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62, +147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, +217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53, +215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, + 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0, +162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, +180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62, +147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 62, 6, 0, 0, 0, 16, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, - 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, - 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,174,135, 29, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, - 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, -180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,224, 17,133, 29, 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0, 16, 69,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,194, 2,243, 1, 48, 74,132, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 16, 69,133, 29, 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0,112, 69,133, 29, 1, 0, 0, 0,224, 17,133, 29, - 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0,144, 3, 47, 3, 48, 80,132, 27, 1, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,112, 69,133, 29, 1, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 69,133, 29, - 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,156, 0, 83, 2, 48, 68,132, 27, 1, 0, 0, 0, 68, 65, 84, 65, -120, 1, 0, 0,112,161,176, 21, 1, 0, 0, 0,151, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, - 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0,100, 0, 10, 0, 0, 0, 50, 0, 50, 0, - 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, - 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 0, 0, 0,208, 69,133, 29, 1, 0, 0, 0,137, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97,121,101,114, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0,255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0, -152, 0, 0, 0, 32,163,176, 21, 1, 0, 0, 0, 29, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101, -114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,145,137, 68, 66,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,248, 1, 0, 0, 48, 54,132, 27, 1, 0, 0, 0, 41, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 65, 83,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,240,163,176, 21, - 1, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, +218,210,190, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,165,176, 21, 1, 0, 0, 0, 68, 65, 84, 65, - 56, 1, 0, 0,240,163,176, 21, 1, 0, 0, 0, 75, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, - 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,224,177,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0, + 48,175,234, 19, 1, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 80,179,234, 19, 1, 0, 0, 0, 32,167,234, 19, 1, 0, 0, 0, + 80,168,234, 19, 1, 0, 0, 0,208,173,234, 19, 1, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 7, 0, 48,176, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,144,176,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0,240,177,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,177,132, 29, 1, 0, 0, 0, 73, 1, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 96,165,176, 21, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0, -224, 1, 0, 0, 48, 58,132, 27, 1, 0, 0, 0,130, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61, 0, 0, 0, 0,199, 54, 36, 60, -199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0, -128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, - 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,240,177,234, 19, 1, 0, 0, 0, +197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,176,234, 19, 1, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, + 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, + 18, 0, 0, 0,121, 2, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, + 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,200, 0, 0, 0, 80,179,234, 19, 1, 0, 0, 0, +174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,175,234, 19, 1, 0, 0, 0,144,176,234, 19, 1, 0, 0, 0, +240,177,234, 19, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 0, 0,176, 0, 0, 0, 0,196,132, 29, - 1, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 84,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 1, 0, 0, 0,192,165,176, 21, 1, 0, 0, 0,192,165,176, 21, 1, 0, 0, 0,192,165,176, 21, 1, 0, 0, 0,192,165,176, 21, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 62,132, 27, - 1, 0, 0, 0,255,255,255,255, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,192,165,176, 21, 1, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 90,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, - 4, 0, 0, 0, 16, 90,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 79, 66, 0, 0,152, 4, 0, 0, - 48, 68,132, 27, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, - 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 83, 67, 0, 0, 40, 6, 0, 0, 48,154, 5, 3, 1, 0, 0, 0, +156, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,176, 5, 3, 1, 0, 0, 0, + 48,166, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,180,234, 19, 1, 0, 0, 0, +144,181,234, 19, 1, 0, 0, 0,208,180,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156,190,120,191,169, 18, 75,193, +102, 50, 8,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,181,234, 19, 1, 0, 0, 0, 48,138, 9, 28, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,163,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, +100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 25, 0,141, 0,128, 7, 56, 4, 8, 0, + 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 23, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,184,234, 19, 1, 0, 0, 0,240,184,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0,128, 63, + 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, - 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, - 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, - 0, 0,128, 63, 0, 0,128, 63,157,190,215, 49,167,170, 4, 52, 0, 0, 0,128,129,116,157,178, 1, 0,128, 63, 33, 69, 15, 51, - 0, 0, 0,128, 73,254, 67, 51,243, 97,106, 49, 0, 0,128, 63, 0, 0, 0,128, 3, 0, 64, 52,183,164,157, 39, 0, 0,128, 53, - 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, - 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 98, 97, 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, 48, 74,132, 27, 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, - 48, 80,132, 27, 1, 0, 0, 0, 48, 68,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112,118,133, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48,171,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63, +205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 6, 0, 0, 0, 16, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,131,226, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, + 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,208,180,234, 19, 1, 0, 0, 0, +132, 0, 0, 0, 1, 0, 0, 0, 48,181,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0,194, 2,243, 1, 48,182, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 48,181,234, 19, 1, 0, 0, 0, +132, 0, 0, 0, 1, 0, 0, 0,144,181,234, 19, 1, 0, 0, 0,208,180,234, 19, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 4, 0, 0,144, 3, 47, 3, 48,188, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,144,181,234, 19, 1, 0, 0, 0, +132, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,181,234, 19, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, + 0, 4, 0, 0,156, 0, 83, 2, 48,176, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65,120, 1, 0, 0,240,181,234, 19, 1, 0, 0, 0, +152, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,183,234, 19, 1, 0, 0, 0, + 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, + 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0,144,184,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,128, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, + 50, 0, 50, 0, 10, 0, 0, 0, 50, 0,100, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, + 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0, +205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 56, 0, 0, 0,160,183,234, 19, 1, 0, 0, 0,150, 0, 0, 0, 1, 0, 0, 0, 16,184,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 8, 0, 0, 0,144, 89,209, 27, 1, 0, 0, 0,255,100,100,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 0, 0, 0, 16,184,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,208,213,234, 19, 1, 0, 0, 0,144,236,234, 19, 1, 0, 0, 0, 16,230,234, 19, 1, 0, 0, 0, +144,223,234, 19, 1, 0, 0, 0, 80,220,234, 19, 1, 0, 0, 0,208,226,234, 19, 1, 0, 0, 0, 16,217,234, 19, 1, 0, 0, 0, + 80,207,234, 19, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,184,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +208,213,234, 19, 1, 0, 0, 0,208,239,234, 19, 1, 0, 0, 0,144,210,234, 19, 1, 0, 0, 0, 80,233,234, 19, 1, 0, 0, 0, + 68, 65, 84, 65, 88, 0, 0, 0,240,184,234, 19, 1, 0, 0, 0,138, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, +255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,152, 0, 0, 0,128,185,234, 19, 1, 0, 0, 0, + 29, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63, +145,137, 68, 66,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 65, 0, 0,248, 1, 0, 0, 48,162, 5, 3, 1, 0, 0, 0, 41, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66, +154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 80,186,234, 19, 1, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, + 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16,188,234, 19, 1, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80,186,234, 19, 1, 0, 0, 0, + 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, +243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,192,187,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,208,160,176, 21, 1, 0, 0, 0,128,125,132, 29, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, - 0, 0, 0,128, 86,126,162,190,227,251,159, 62, 56, 53,101, 63, 0, 0, 0,128, 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, - 0, 0, 0,128,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0, -143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 24, 0, 0, 0,192,187,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,188,234, 19, 1, 0, 0, 0, + 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,224, 1, 0, 0, 48,166, 5, 3, 1, 0, 0, 0, +131, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61, 0, 0, 0, 0,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, + 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 0, 0,176, 0, 0, 0,112,188,234, 19, 1, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 84, 88, 84,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 96,189,234, 19, 1, 0, 0, 0, + 96,189,234, 19, 1, 0, 0, 0, 96,189,234, 19, 1, 0, 0, 0, 96,189,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,170, 5, 3, 1, 0, 0, 0,255,255,255,255, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 96,189,234, 19, 1, 0, 0, 0, + 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,200,230, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, 4, 0, 0, 0, 96,200,230, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 79, 66, 0, 0,152, 4, 0, 0, 48,176, 5, 3, 1, 0, 0, 0,120, 0, 0, 0, + 1, 0, 0, 0, 48,182, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,244,138, 27, 1, 0, 0, 0, 48,248,138, 27, 1, 0, 0, 0, - 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, -208,160,176, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, -128,125,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, 48, 80,132, 27, - 1, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 74,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128,185,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 54,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63, +222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, + 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, + 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, + 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63, 0, 0,128, 63,157,190,215, 49, +167,170, 4, 52, 0, 0, 0,128,129,116,157,178, 1, 0,128, 63, 33, 69, 15, 51, 0, 0, 0,128, 73,254, 67, 51,243, 97,106, 49, + 0, 0,128, 63, 0, 0, 0,128, 3, 0, 64, 52,183,164,157, 39, 0, 0,128, 53, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, + 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, - 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0, +152, 4, 0, 0, 48,182, 5, 3, 1, 0, 0, 0,120, 0, 0, 0, 1, 0, 0, 0, 48,188, 5, 3, 1, 0, 0, 0, 48,176, 5, 3, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,216,212, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,193,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,133,226, 19, + 1, 0, 0, 0, 16,154,226, 19, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, - 53,236,148,190,222,102, 69,191, 37,255, 16, 63, 0, 0, 0,128, 24,134,116, 63, 57,174, 76,190,240,161, 95, 62, 0, 0, 0,128, -235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63, 0, 0, 0,128,208, 19, 13, 63,234, 65,102,190, 10, 10,231,192, 0, 0,128, 63, - 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63, -205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, - 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63,222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, 0, 0, 0,128, 86,126,162,190,227,251,159, 62, + 56, 53,101, 63, 0, 0, 0,128, 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, 0, 0, 0,128,110,101,239, 64,151, 62,208,192, + 77,255,170, 64, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, + 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, +169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48,162, 9, 28, 1, 0, 0, 0, 48,166, 9, 28, 1, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, 48, 86,132, 27, 1, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97, -116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 3, 67, 0, 0, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,128,133,226, 19, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 16,154,226, 19, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,152, 4, 0, 0, 48,188, 5, 3, 1, 0, 0, 0,120, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48,182, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48,162, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, + 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, + 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, + 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, + 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 53,236,148,190,222,102, 69,191, 37,255, 16, 63, + 0, 0, 0,128, 24,134,116, 63, 57,174, 76,190,240,161, 95, 62, 0, 0, 0,128,235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63, + 0, 0, 0,128,208, 19, 13, 63,234, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, + 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, + 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0, +143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0, + 48,194, 5, 3, 1, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, + 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, + 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, + 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 3, + 67, 0, 0, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63,240,196,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63, +205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,192,189,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,166,176, 21, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63, -111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 16, 1, 0, 0,240,196,132, 29, 1, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64,198,132, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16,191,234, 19, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61, +102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,192,189,234, 19, 1, 0, 0, 0, + 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,191,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, +144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, 32,166,176, 21, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 48, 90,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 48, 90,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, - 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, - 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, - 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, - 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, - 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, - 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, - 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, - 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, - 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, - 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, - 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, - 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, - 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, - 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, - 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, - 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, - 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, - 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, - 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, - 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, - 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, - 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, - 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, - 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, - 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, - 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, - 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, - 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, - 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, - 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, - 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, - 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, - 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255, -102,102,102,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, - 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, - 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, - 80, 80, 80,255, 93, 93, 93,255,100,100,100,255,104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255, -109,109,109,255,107,107,107,255,106,106,106,255,103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, - 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, - 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, - 89, 89, 89,255,100,100,100,255,107,107,107,255,112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255, -115,115,115,255,114,114,114,255,112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, - 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, - 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, - 95, 95, 95,255,107,107,107,255,114,114,114,255,118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255, -122,122,122,255,122,122,122,255,120,120,120,255,118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, - 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, - 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153, -101,101,101,255,113,113,113,255,120,120,120,255,125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255, -131,131,131,255,131,131,131,255,131,131,131,255,129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255, -103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, - 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153, -106,106,106,255,118,118,118,255,126,126,126,255,131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255, -142,142,142,255,147,147,147,255,149,149,149,255,148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255, -108,108,108,255,102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, - 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102, -109,109,109,255,123,123,123,255,131,131,131,255,136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255, -156,156,156,255,168,168,168,255,176,176,176,255,177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255, -114,114,114,255,107,107,107,255,101,101,101,255, 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, - 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51, -110,110,110,255,127,127,127,255,136,136,136,255,142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255, -174,174,174,255,195,195,195,255,212,212,212,255,216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255, -121,121,121,255,112,112,112,255,106,106,106,255, 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, - 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0, -107,107,107,255,130,130,130,255,140,140,140,255,146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255, -191,191,191,255,219,219,219,255,246,246,246,255,254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255, -127,127,127,255,117,117,117,255,110,110,110,255,103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, - 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, - 65, 65, 65,153,129,129,129,255,142,142,142,255,149,149,149,255,154,154,154,255,157,157,157,255,163,163,163,255,176,176,176,255, -199,199,199,255,232,232,232,255,255,255,255,255,255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255, -132,132,132,255,121,121,121,255,113,113,113,255,106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, - 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, - 21, 21, 21, 51,127,127,127,255,143,143,143,255,152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255, -198,198,198,255,227,227,227,255,253,253,253,255,255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255, -135,135,135,255,124,124,124,255,117,117,117,255,110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, - 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255,153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255, -188,188,188,255,209,209,209,255,228,228,228,255,234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255, -136,136,136,255,127,127,127,255,119,119,119,255,112,112,112,255,105,105,105,255, 98, 98, 98,255, 91, 91, 91,255, 83, 83, 83,255, - 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255,151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255, -178,178,178,255,189,189,189,255,200,200,200,255,202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255, -137,137,137,255,129,129,129,255,121,121,121,255,114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, - 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255, -172,172,172,255,176,176,176,255,180,180,180,255,179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255, -137,137,137,255,130,130,130,255,122,122,122,255,115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, - 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255, -169,169,169,255,170,170,170,255,169,169,169,255,167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255, -137,137,137,255,130,130,130,255,123,123,123,255,115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, - 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255, -167,167,167,255,167,167,167,255,166,166,166,255,163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255, -137,137,137,255,129,129,129,255,121,121,121,255,113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, - 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255, -161,161,161,255,163,163,163,255,162,162,162,255,160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255, -135,135,135,255,127,127,127,255,119,119,119,255,110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, - 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255, -148,148,148,255,154,154,154,255,155,155,155,255,154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255, -130,130,130,255,122,122,122,255,114,114,114,255,104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 73, 73, 73,153,103,103,103,204,137,137,137,255,140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255, -120,120,120,255,113,113,113,255,102,102,102,255, 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, - 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0, -104, 1, 0, 0, 64,198,132, 29, 1, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 5, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, - 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,199,132, 29, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,224,199,132, 29, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 48,108,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 16, 0, 0, 48,108,132, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, + 16,191,234, 19, 1, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 48,198, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, + 48,198, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, + 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, + 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, + 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, + 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, + 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, + 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, + 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, + 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, + 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, + 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, + 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, + 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, + 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, + 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, + 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, + 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, + 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, + 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, + 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, + 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, + 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, + 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, + 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, + 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, + 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, + 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, + 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, + 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, + 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, + 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, + 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, + 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, + 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, + 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, + 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, + 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, + 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, + 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255, +104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255, +103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, + 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, + 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255, +112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255, +110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, + 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, + 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255, +118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255, +118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, + 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, + 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255, +125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255, +129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, + 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, + 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255, +131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255, +148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, + 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, + 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255, +136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255, +177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, + 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, + 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255, +142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255, +216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, + 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, + 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255, +146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255, +254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255, +103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, + 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255, +149,149,149,255,154,154,154,255,157,157,157,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255, +255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255, +106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, + 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255, +152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255, +255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255, +110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, + 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255, +153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255, +234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255, +112,112,112,255,105,105,105,255, 98, 98, 98,255, 91, 91, 91,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, + 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255, +151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255, +202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255, +114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, + 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102, +145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255, +179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255, +115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, + 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255, +167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255, +115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, + 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255, +163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255, +113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255, +160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255, +110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255, +154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255, +104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255, +140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, + 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, + 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,104, 1, 0, 0,112,191,234, 19, 1, 0, 0, 0, + 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, + 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,193,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 16,193,234, 19, 1, 0, 0, 0, + 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 48,216, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 48,216, 5, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, @@ -7656,2070 +7896,2357 @@ char datatoc_B_blend[]= { 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, - 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 77, 69, 0, 0,144, 1, 0, 0, 48,171,109, 27, - 1, 0, 0, 0, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,116,110, 27, - 1, 0, 0, 0,224,184,135, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,174,109, 27, - 1, 0, 0, 0, 64,177,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173,109, 27, - 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,175,109, 27, - 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,178,109, 27, - 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, - 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, - 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, - 30, 0, 4, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 8, 0, 0, 0,224,116,110, 27, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 48, 86,132, 27, 1, 0, 0, 0, 68, 65, 84, 65, -104, 1, 0, 0, 0,173,109, 27, 1, 0, 0, 0, 78, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0, 0, 0,255, 77, 69, 0, 0,168, 1, 0, 0,112,193,234, 19, 1, 0, 0, 0, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,174,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, + 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,175,226, 19, 1, 0, 0, 0, 0,202,234, 19, 1, 0, 0, 0, +176,202,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,196,234, 19, 1, 0, 0, 0,144,199,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,195,234, 19, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,197,234, 19, 1, 0, 0, 0, + 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96,200,234, 19, 1, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 32,175,226, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 48,194, 5, 3, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, 80,195,234, 19, 1, 0, 0, 0, 79, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240,196,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -192, 0, 0, 0,160,174,109, 27, 1, 0, 0, 0, 60, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191, -230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255,127, - 1, 0, 0, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,250,255,127,191, - 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182,255,127, 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63, -230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, - 1, 0, 0, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,255,255,127,191, - 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73,255,127, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,160,175,109, 27, - 1, 0, 0, 0, 78, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,177,109, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0,240,196,234, 19, 1, 0, 0, 0, 60, 0, 0, 0, 8, 0, 0, 0, + 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128,191, + 0, 0,128,191,230, 73, 26,182, 26,182,255,127, 1, 0, 0, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, + 26,182,255,127, 1, 0, 0, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182,255,127, 1, 0, 0, 0, + 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0,245,255,127, 63, 5, 0,128,191, + 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, 1, 0, 0, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182, +230, 73,255,127, 1, 0, 0, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73,255,127, 1, 0, 0, 0, + 68, 65, 84, 65,104, 1, 0, 0,240,197,234, 19, 1, 0, 0, 0, 79, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,199,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 64,177,109, 27, - 1, 0, 0, 0, 57, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, - 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, - 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, -104, 1, 0, 0, 16,178,109, 27, 1, 0, 0, 0, 78, 1, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,184,135, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,144, 0, 0, 0,144,199,234, 19, 1, 0, 0, 0, 57, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, + 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0, 96,200,234, 19, 1, 0, 0, 0, 79, 1, 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,202,234, 19, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,176,202,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -120, 0, 0, 0,224,184,135, 29, 1, 0, 0, 0, 56, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, 85, 83, 69, 82,160, 11, 0, 0,224,252,251, 1, 1, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0, 33,152, 1, 0, 63, 2, 0, 0, 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0, 0,202,234, 19, 1, 0, 0, 0, 56, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, + 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 32, 1, 0, 0, +176,202,234, 19, 1, 0, 0, 0, 67, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, 16,204,234, 19, 1, 0, 0, 0, + 78, 1, 0, 0, 1, 0, 0, 0, 80,207,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0,112,205,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115, -107,116,111,112, 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67, -111,110,116,101,110,116,115, 47, 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 1, 0, 68, 65, 84, 65, 56, 1, 0, 0,112,205,234, 19, 1, 0, 0, 0, + 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, + 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,224,206,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 48, 0, 0, 0,224,206,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, 80,207,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0, +144,210,234, 19, 1, 0, 0, 0, 16,204,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 67,108, 97,121, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, +176,208,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 8, 0, 68, 65, 84, 65, 56, 1, 0, 0,176,208,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, + 14,215,126,191, 46,189,194, 61, 32,210,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, + 32,210,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, + 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 0, 0, 40, 1, 0, 0,144,210,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0,208,213,234, 19, 1, 0, 0, 0, + 80,207,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, + 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,240,211,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, + 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 1, 0, + 68, 65, 84, 65, 56, 1, 0, 0,240,211,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, + 96,213,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 96,213,234, 19, 1, 0, 0, 0, + 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, + 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, +208,213,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0, 16,217,234, 19, 1, 0, 0, 0,144,210,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 48,215,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63, +205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 1, 0, 68, 65, 84, 65, 56, 1, 0, 0, + 48,215,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,160,216,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 48, 52, 6, 1, - 0, 0, 0, 0, 1, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, - 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, 48, 98, 21, 3, 1, 0, 0, 0, 48,122, 21, 3, 1, 0, 0, 0, 0, 72,128, 29, - 1, 0, 0, 0, 0, 72,128, 29, 1, 0, 0, 0, 80, 73,128, 29, 1, 0, 0, 0, 80, 73,128, 29, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,160,216,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, 16,217,234, 19, 1, 0, 0, 0, + 78, 1, 0, 0, 1, 0, 0, 0, 80,220,234, 19, 1, 0, 0, 0,208,213,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, 97,116,116,101,110, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0,112,218,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, - 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 30, 90,100,191,154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, - 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, - 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, - 0, 0, 0, 0, 14, 0, 0, 0, 25, 0, 15, 0,120, 0, 60, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, - 6, 0, 15, 0, 8, 0, 10, 0,250, 0, 0, 0,100, 0,100, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 7, 0, 68, 65, 84, 65, 56, 1, 0, 0,112,218,234, 19, 1, 0, 0, 0, + 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, + 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,224,219,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 48, 0, 0, 0,224,219,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, 80,220,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0, +144,223,234, 19, 1, 0, 0, 0, 16,217,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 71,114, 97, 98, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, +176,221,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, - 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, 48, 98, 21, 3, 1, 0, 0, 0,188, 0, 0, 0, 1, 0, 0, 0, 48,122, 21, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, -255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, - 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255, -255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255, -255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255, -255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255, -204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, - 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255, -255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, - 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, -255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255, -255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, - 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255, -153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, - 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255, -250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, -112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, -135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255, -127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255, -255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100, -112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255, -135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128, -255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, - 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,110,110,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255, -198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, - 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255, -127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0,155,155,155,160,100,100,100,255,108,105,111,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, - 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, - 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255, -241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, - 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255, -246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, - 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, - 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255, -106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, - 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255, -127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255, -139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, 48,122, 21, 3, - 1, 0, 0, 0,188, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 98, 21, 3, 1, 0, 0, 0, 82,111,117,110, -100,101,100, 0, 0,101,119, 32, 85,115,101,114, 32, 84,104,101,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 25, 0,231,255, 0, 0, 25, 25, 25,255, -153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255, -180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255, -180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, - 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, - 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, - 25, 25, 25,230, 46,124,217,204,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, - 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,175,175,175, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255, -217,217,217,255, 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, - 0, 0, 0,255,255,255,255,255,230,150, 50,255,255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100,255,130, 0,255, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,100,143,143,143,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,135,177,125,255,255,255,255,255,255,255,255,255,255,130, 0,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, -255,130, 0,255, 2, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255, -178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255, -135,177,125,255,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,143,143,143,255,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,204, -255,255,170,204, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,143,143,143,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255,178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,255,255,255,170,255, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, - 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255, -162, 95,111,255,109,145,131,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60,255,133, 0,255, - 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255, -127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,153,153,153,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 88, 88, 88,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255, -255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, - 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 5, 0, 68, 65, 84, 65, 56, 1, 0, 0,176,221,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, + 14,215,126,191, 46,189,194, 61, 32,223,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, + 32,223,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, + 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 0, 0, 40, 1, 0, 0,144,223,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0,208,226,234, 19, 1, 0, 0, 0, + 80,220,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116, +101, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,240,224,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, + 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 4, 0, + 68, 65, 84, 65, 56, 1, 0, 0,240,224,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, + 96,226,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 96,226,234, 19, 1, 0, 0, 0, + 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, + 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, +208,226,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0, 16,230,234, 19, 1, 0, 0, 0,144,223,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 48,228,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63, +205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 6, 0, 68, 65, 84, 65, 56, 1, 0, 0, + 48,228,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,160,229,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,160,229,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, 16,230,234, 19, 1, 0, 0, 0, + 78, 1, 0, 0, 1, 0, 0, 0, 80,233,234, 19, 1, 0, 0, 0,208,226,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105,110, 99,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0,112,231,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 3, 0, 68, 65, 84, 65, 56, 1, 0, 0,112,231,234, 19, 1, 0, 0, 0, + 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, + 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,224,232,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 48, 0, 0, 0,224,232,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, 80,233,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0, +144,236,234, 19, 1, 0, 0, 0, 16,230,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, +176,234,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +205,204, 76, 62, 0, 0, 1, 0, 68, 65, 84, 65, 56, 1, 0, 0,176,234,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, + 14,215,126,191, 46,189,194, 61, 32,236,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, + 32,236,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, + 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 82, 0, 0, 40, 1, 0, 0,144,236,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0,208,239,234, 19, 1, 0, 0, 0, + 80,233,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,111,111,116,104, + 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,240,237,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, + 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 2, 0, + 68, 65, 84, 65, 56, 1, 0, 0,240,237,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, + 96,239,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 96,239,234, 19, 1, 0, 0, 0, + 74, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, + 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 40, 1, 0, 0, +208,239,234, 19, 1, 0, 0, 0, 78, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,236,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 48,241,234, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100, -127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,150,150,150,255,129,131,144,255,127,127,127,255, -142,138,145,255,120,145,120,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, - 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255, -217,217,217,255, 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, - 0, 0, 0,255,255,255,255,255,230,150, 50,255,255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, - 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, - 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255, -189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, - 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255, -193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, - 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255, -238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255, -152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255, -176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, - 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 78, 65, 49, 44,231, 0, 0, 48,112, 27, 29, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, - 78, 65, 77, 69, 68, 11, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, - 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,119, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, - 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0, -115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, - 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, - 52, 93, 0,117,115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, - 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,110, 97, -109,101, 91, 50, 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, - 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0,112, 97,100, 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116, 91, 50, 93, 0, - 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, - 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0, -116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108, -105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, - 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114, -101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103, -114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100, -116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98, -108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108, -105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110, -100, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108, -105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, - 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, - 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,112, - 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 97,110,103,108,101, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112, -101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104, -105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 89, 70, 95, 97,112,101,114,116,117, -114,101, 0, 89, 70, 95, 98,107,104,116,121,112,101, 0, 89, 70, 95, 98,107,104, 98,105, 97,115, 0, 89, 70, 95, 98,107,104,114, -111,116, 0, 42,100,111,102, 95,111, 98, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, - 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101, -120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,109,101,110,117,110,114, 0, 42,115, 99,101,110,101, 0,105, 98,117,102,115, - 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0,115,111,117,114, 99,101, 0,108, 97, -115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121, -114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110, -100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0, 42,114,101,110,100,101,114, 95,116, -101,120,116, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101, -100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, - 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, - 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114, -111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, - 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112, -109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117, -116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0, -100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115, -112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, - 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, - 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, - 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, - 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, - 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,107,105,110, -107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0, -115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,112,118,101,108,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, - 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, - 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, - 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102, -114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, - 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, - 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, - 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110, -111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115, -105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115, -115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0, -112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, - 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97, -116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95, -105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0, -110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0, 42, 99,111, 98, 97, 0,114,101,115,111, -108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116, -101,110,100, 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115, -111,117,114, 99,101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0,110,111,105,115,101,115,105, -122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,114,102, 97, 99, 0,103, -102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117, -110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, - 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, - 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100, -105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101, -116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102, -108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99, -114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0, -121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, - 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117, -115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, - 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0, -115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0, -115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116, -116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, - 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102, -115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102, -102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0, -114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97, -112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122, -101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, -116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116, -121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110, -101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105, -122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110, -115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114, -105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, - 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, - 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, - 52, 0, 89, 70, 95,110,117,109,112,104,111,116,111,110,115, 0, 89, 70, 95,110,117,109,115,101, 97,114, 99,104, 0, 89, 70, 95, -112,104,100,101,112,116,104, 0, 89, 70, 95,117,115,101,113,109, 99, 0, 89, 70, 95, 98,117,102,115,105,122,101, 0, 89, 70, 95, -112, 97,100, 0, 89, 70, 95, 99, 97,117,115,116,105, 99, 98,108,117,114, 0, 89, 70, 95,108,116,114, 97,100,105,117,115, 0, 89, - 70, 95,103,108,111,119,105,110,116, 0, 89, 70, 95,103,108,111,119,111,102,115, 0, 89, 70, 95,103,108,111,119,116,121,112,101, - 0, 89, 70, 95,112, 97,100, 50, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97, -100, 91, 51, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, - 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110, -115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, - 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121, -109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115, -104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116, -101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115, -116,101,112,115, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115, -112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, - 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114, -111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110, -115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, - 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, - 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95, -100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101, -101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111, -115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101, -115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108, -111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100, -101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, - 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0, -102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, - 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97, -110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117, -118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, - 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112, -114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95, -115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, - 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112, -101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108, -101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, - 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42, -103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, - 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0, -115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115, -115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, - 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101, -115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, - 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115, -101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, - 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109, -115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111, -116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, - 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0, -104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110, -114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101, -114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107, -110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, - 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,104, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98, -101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97, -116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0, -112, 97,100, 91, 50, 93, 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114, -101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0, -114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, 98,112, 0,115,112, 97, 99, -101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115,105, -122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, 0, -121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101,100, -105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, 98, - 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0, -116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110, -100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0,101,102,102,101, 99,116, 0, 42,109,102, 97, 99,101, - 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100, -118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42, -109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102, -100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, - 99,116, 95,102, 97, 99,101, 0,101,100,105,116,102,108, 97,103, 0, 99,117, 98,101,109, 97,112,115,105,122,101, 0,115,109,111, -111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121, -112,101, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, - 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, - 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100, -119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, - 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100, -105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,100, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111, -108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101, -108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112, -105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, - 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103, -101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0, 42,101,114,114, -111,114, 0,109,111,100,105,102,105,101,114, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118, -101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, - 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114, -109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, - 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101, -114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111, -117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112, -108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105, -109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103, -114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0, -116,105,109,101, 0, 42,116,101,120,116,117,114,101, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, - 0,109,105,100,108,101,118,101,108, 0,116,101,120,109, 97,112,112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, - 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112, -114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116, -111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, - 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115, -116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, - 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0, -100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114, -103,101,116, 91, 51, 50, 93, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, - 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98, -106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105, -110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, - 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101, -110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0, 42, - 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101, -114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100, -119,101,105,103,104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121, -110,103,114,105,100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42, -112, 97,100, 50, 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100, -121,110, 99,101,108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 40, 42, 98,105,110,100, -102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103, -101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105, -116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0, 42,117,110,100, -111, 95,118,101,114,116,115, 0,117,110,100,111, 95,118,101,114,116,115, 95,116,111,116, 0,117,110,100,111, 95,115,105,103,110, - 97,108, 0,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101, -116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101, -112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, - 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111, -114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,116,115, 0,112,110,116,115,119, 0,111,112,110,116, -115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112, -101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, - 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, - 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, - 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111, -120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116, -105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 99,111,110,115,116,114, 97,105, -110,116, 67,104, 97,110,110,101,108,115, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115, -116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, - 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, - 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110, -103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105, -110,118, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112, -114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102, -108, 97,103, 0,105,112,111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105, -115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112, -115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116, -105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97, -120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110, -103, 84,104,114,101,115,104,111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,100,116,120, 0,101,109,112,116,121, 95, -100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0, -100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108, -101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, - 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97, -103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97, -105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115, -116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97, -103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,110,114, 0,115,104, 97,112,101,102,108, 97,103, - 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116, -105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97, -108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0, -103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0, 99,117,114,105,110,100, -101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116, -101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111, -114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110, -107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95, -102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100, -105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, - 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95, -102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101, -102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99, -108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110, -107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, - 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, - 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0, -100, 97,116, 97, 95,116,121,112,101,115, 0, 42,105,110,100,101,120, 95, 97,114,114, 97,121, 0, 42,100, 97,116, 97, 91, 56, 93, - 0, 42, 99,117,114, 91, 56, 93, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109, -101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0, -110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0, -112, 97,116,104, 91, 50, 52, 48, 93, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, - 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109, -101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97, -116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, - 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, - 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, - 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, - 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105, -116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111, -105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0, -110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109, -101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0, -103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120, -103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83, -111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105, -110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, - 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101, -121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, - 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, - 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, - 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, - 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105, -110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, - 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, - 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111, -108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, - 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100, -101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118, -105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118,120, 0,103,114, 97,118,121, 0,103,114, 97, -118,122, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101, -102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114, -103, 77,101,115,104, 0, 42,109,101,115,104, 83,117,114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, - 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, - 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109, -101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, - 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99, -101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99, -108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105, -101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 83,117,114,102, 78,111,114,109, 97,108,115, 0, 99,112,115, 84,105,109,101, - 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, - 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100, -105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105, -116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116, -121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,104,111,114,107, 0,122,101,110,114, 0,122,101,110, -103, 0,122,101,110, 98, 0,122,101,110,107, 0, 97,109, 98,107, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114, -101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116, -121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108, -117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, - 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101, -112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115, -116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0, -115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115, -101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111, -100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97, -111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, - 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, - 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105, -111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,105,110,100,105,114,101, 99, -116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, - 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101, -115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111,108, 0,115,120, 0, -115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, - 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70, -114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, - 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97, -118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99, -100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, - 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, - 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, - 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111, -114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, - 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, - 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117, -109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, - 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105, -122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111, -102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95, -109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114, -105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, - 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97, -116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,112, -115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97, -100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0, -101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101, -113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,114,116, 50, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114, -101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122, -101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,119,105,110,112,111,115, - 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, - 0,100,105,115,112,108, 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 0,115, 99,101,109,111,100,101, - 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99, -116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, - 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0, -100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,120, 97,115,112, 0,121, 97,115,112, - 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, - 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116, -104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116, -101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, - 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97, -120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0, 71, 73,113, -117, 97,108,105,116,121, 0, 71, 73, 99, 97, 99,104,101, 0, 71, 73,109,101,116,104,111,100, 0, 71, 73,112,104,111,116,111,110, -115, 0, 71, 73,100,105,114,101, 99,116, 0, 89, 70, 95, 65, 65, 0, 89, 70,101,120,112,111,114,116,120,109,108, 0, 89, 70, 95, -110,111, 98,117,109,112, 0, 89, 70, 95, 99,108, 97,109,112,114,103, 98, 0,121,102,112, 97,100, 49, 0, 71, 73,100,101,112,116, -104, 0, 71, 73, 99, 97,117,115,100,101,112,116,104, 0, 71, 73,112,105,120,101,108,115,112,101,114,115, 97,109,112,108,101, 0, - 71, 73,112,104,111,116,111,110, 99,111,117,110,116, 0, 71, 73,109,105,120,112,104,111,116,111,110,115, 0, 71, 73,112,104,111, -116,111,110,114, 97,100,105,117,115, 0, 89, 70, 95,114, 97,121,100,101,112,116,104, 0, 89, 70, 95, 65, 65,112, 97,115,115,101, -115, 0, 89, 70, 95, 65, 65,115, 97,109,112,108,101,115, 0,121,102,112, 97,100, 50, 0, 71, 73,115,104, 97,100,111,119,113,117, - 97,108,105,116,121, 0, 71, 73,114,101,102,105,110,101,109,101,110,116, 0, 71, 73,112,111,119,101,114, 0, 71, 73,105,110,100, -105,114,112,111,119,101,114, 0, 89, 70, 95,103, 97,109,109, 97, 0, 89, 70, 95,101,120,112,111,115,117,114,101, 0, 89, 70, 95, -114, 97,121, 98,105, 97,115, 0, 89, 70, 95, 65, 65,112,105,120,101,108,115,105,122,101, 0, 89, 70, 95, 65, 65,116,104,114,101, -115,104,111,108,100, 0, 98, 97, 99,107, 98,117,102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 93, 0,115,116, 97,109, -112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, - 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,105,109,112,108,105,102, -121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, - 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115, -115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111, -110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, - 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109, -101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110, -101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0, -115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0, -114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,109,111,100,101, 0, -102,114, 97,109,105,110,103, 0,114,116, 49, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0, 42, 42, 98,114, -117,115,104,101,115, 0, 97, 99,116,105,118,101, 95, 98,114,117,115,104, 95,105,110,100,101,120, 0, 98,114,117,115,104, 95, 99, -111,117,110,116, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, - 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,116,111,111,108, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114, -109, 97,108, 95, 97,110,103,108,101, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111, -116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, - 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116, -121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, - 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,112,105,118,111,116, 91, 51, 93, 0,116, 97, 98,108,101,116, 95,115,105,122, -101, 0,116, 97, 98,108,101,116, 95,115,116,114,101,110,103,116,104, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42, -119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111, -117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, - 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102, -115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, - 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112, -101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, - 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, - 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, - 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, 97,100, 91, 50, 93, 0, 97,117,116,111,105,107, 95, - 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111, -114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, - 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97, -103, 0,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0, -108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115, -112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114, -101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, - 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101, -110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105, -116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, - 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, - 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103, -101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95, -114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111, -112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112, -114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0, -115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116, -101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, - 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, - 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101, -116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, - 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,115, -110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112, -114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0, 97,117,116,111, 95,110,111,114,109, 97, -108,105,122,101, 0,105,110,116,112, 97,100, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98, -106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114, -101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121,115,116,101,109, 0,103,114, 97,118,105,116,121, 91, 51, 93, - 0, 42, 99, 97,109,101,114, 97, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99, -116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119, -109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103, -115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, -115,111,117,110,100, 95,104, 97,110,100,108,101,115, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, - 0,100, 97,103,102,108, 97,103,115, 0,106,117,109,112,102,114, 97,109,101, 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95, -107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121, -115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, - 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114, -115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, -111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, - 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100, -121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,118,105,101,119, 98,117,116, 0,114,102,108, 97,103, 0, -118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 0,118,105,101,119, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99, -108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, - 0, 42,114,105, 0, 42,114,101,116,111,112,111, 95,118,105,101,119, 95,100, 97,116, 97, 0, 42,100,101,112,116,104,115, 0, 42, -115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108, -112,101,114,115,112, 0,108,118,105,101,119, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, - 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95, -117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, - 95, 98,111,110,101, 91, 51, 50, 93, 0,108, 97,121, 97, 99,116, 0,100,114, 97,119,116,121,112,101, 0,115, 99,101,110,101,108, -111, 99,107, 0, 97,114,111,117,110,100, 0,112,105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,103,114,105,100,118, -105,101,119, 0,112, 97,100,102, 0,110,101, 97,114, 0,102, 97,114, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100, -102,108, 97,103, 0,103,114,105,100,115,117, 98,100,105,118, 0,109,111,100,101,115,101,108,101, 99,116, 0,107,101,121,102,108, - 97,103,115, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,116,119,100,114, 97,119,102, -108, 97,103, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97,119, 0,122, 98, -117,102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111, -112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105, -110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111, -108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101, -101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108, -100,119,105,110,121, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95, -110,117,109, 0,116, 97, 98, 95, 99,117,114, 0, 42,115, 99,114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111, -115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, - 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118, -105,101,119, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110, -100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105, -116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101, -102,105,108,101, 91, 56, 48, 93, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,111, -107,109, 97,114,107, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 0,102, 95,102,112, 0, -109,101,110,117, 0,102,112, 95,115,116,114, 91, 56, 93, 0, 42,112,117,112,109,101,110,117, 0, 42,112, 97,114, 97,109,115, 0, - 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101, -120,116, 0, 42,111,112, 0, 42,108,111, 97,100,105,109, 97,103,101, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0, -114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101, -101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115, -101, 97,114, 99,104, 95,116,115,101, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,117,116,108,105, -110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, 0, 99,117,114, -116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, - 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 42,116,101, -120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0, -108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98, -110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, - 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, - 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, - 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, - 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108, -108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, - 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, - 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, - 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101, -116,121,112,101, 0,116,101,120,102,114,111,109, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, - 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, - 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0, -112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101, -116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97, -114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,105,109,103, 0,108, -101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,114,112,116, 95,109, 97,115,107, 0,115, 99,114,111,108,108, 98, - 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, - 91, 51, 50, 93, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, - 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, - 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97, -108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117, -112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122, -111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, - 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, - 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97, -110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105, -110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, - 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115, -104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0, -105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105, -110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0, -105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, - 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0, -119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, - 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112, -117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, - 95,105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95, -108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, - 93, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, - 97,100,101,114, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116, -101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, - 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, - 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, - 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, - 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, - 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, - 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, - 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99, -116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, - 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115, -101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0, -101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95, -102, 97, 99,101,115,101,108, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, - 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108, -105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105, -112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, - 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, - 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, 97,100, 91, 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, - 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, - 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, - 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105, -110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109, -101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, - 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, -114,116,101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 51, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, - 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0, -116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, - 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112, -114,101,102, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95,103,114,111,117,112, 0, -115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, - 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, - 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0, -112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115, -111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0,121,102,101,120,112,111,114,116,100,105,114, 91, 49, 54, 48, 93, 0,118,101, -114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0, -119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0, -117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100, -105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97, -117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111, -112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, - 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112, -115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100, -111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108, -105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0, -116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, - 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101, -115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, - 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, 97,100, 0,109,101,109, 99, 97, 99, -104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118, -101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, - 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, - 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, - 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0,105,112,111, 95,110,101,119, 0, -118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49, 54, 48, 93, 0, -103,108, 97,108,112,104, 97, 99,108,105,112, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,118,101,114,116, 98, 97,115,101, - 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,102,117,108, -108, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, - 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,115, -119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105, -109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, - 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, - 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, - 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, - 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108, -116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, - 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105, -122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, - 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97, -116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100, -114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101, -110,116, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114, -101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0, -112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0, 42, 99, -117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, - 98, 97,108,102, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,105, 98,117,102, 0, 42,105, 98,117,102, 95, 99,111,109,112, 0, 42, -115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,114, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111, -102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, - 0,115, 97,116,117,114, 97,116,105,111,110, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116,115, -116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0,111,114,120, 0,111,114,121, - 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, - 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,115,116, 97,114,116,115,116, -105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116,105,108,108, 0, 42,105, 98,117,102, 95,115, -116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116,105,108,108, 0, 42,105,110,115,116, 97,110, - 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116, -101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104, -105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,109,117,108, 0,104, 97,110,100,115,105, -122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0,101,102,102,101, 99,116, 95,102, 97, -100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, - 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115,111,117,110,100, 95,104, 97,110,100,108,101, 0,108, -101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, - 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108, -101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, - 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99, -116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110, -100,100,105,114, 91, 50, 53, 54, 93, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101, -116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, - 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, - 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105, -110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101,114,112, -111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0, -103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121, -112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, - 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, - 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0, -109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0, -116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116, -105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111, -117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, - 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, - 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0, -113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, - 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0, -100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0, -100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, - 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115, -116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, - 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116, -108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95, -115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, - 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0, 42,109,121,110,101, -119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, - 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93, 0, 98, -108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, - 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,115,110,100,110,114, 0,112, 97,100, 49, 91, 50, 93, 0, -112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,109, 97,107,101, 99,111,112,121, 0, 99,111,112,121,109, 97,100,101, 0, -112, 97,100, 50, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101, -108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111, -110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114, -118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42, -114,101,102,101,114,101,110, 99,101, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,109,105,110, 0,109, 97,120, 0, -118,105,115,105,102, 97, 99, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, - 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, - 51, 50, 93, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97, -114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80, -114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102, -105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, - 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,103,111, 0, 97, 99, 99,101, -108,108,101,114, 97,116,105,111,110, 0,109, 97,120,115,112,101,101,100, 0,109, 97,120,114,111,116,115,112,101,101,100, 0,109, - 97,120,116,105,108,116,115,112,101,101,100, 0,116,105,108,116,100, 97,109,112, 0,115,112,101,101,100,100, 97,109,112, 0, 42, -115,111,117,114, 99,101, 0,102,114, 97,109,101,115,107,105,112, 0,109,117,116,101, 0, 99,104, 97,110,103,101,100, 0,109,105, -110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, - 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99, -111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, - 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, - 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42, 97,114,101, - 97, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, - 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105, -108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, - 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,120,119,105,100,116,104, - 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, - 95,116, 97,105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, - 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121, -101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103, -104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101, -102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112, -111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0, 99,111,110,115, -116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100, -101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, 42, 98, 95, 98,111,110,101, 95,109, - 97,116,115, 0, 42,100,117, 97,108, 95,113,117, 97,116, 0, 42, 98, 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116, -115, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, - 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, - 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101, -115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105, -110,119,101,105,103,104,116, 0, 42, 99,117,115,116,111,109, 0, 99,104, 97,110, 98, 97,115,101, 0,112,114,111,120,121, 95,108, - 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102, -115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111, -108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,110,117,109,105,116,101,114, 0,110,117, -109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101, -100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97, -110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, - 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0, 97, 99, -116,110,114, 0, 97, 99,116,119,105,100,116,104, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,116,101,109,112, - 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111, -114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, - 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101, -114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, - 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115, -117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105, -103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105, -110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114, -118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108, -111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, - 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, - 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, - 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, - 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97, -120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,122,109,105,110, 0,122,109, - 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105, -115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99, -116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101, -110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110, -101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112, -101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,109,105,116, 0, -115,116, 97, 99,107, 95,105,110,100,101,120, 0,105,110,116,101,114,110, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 95,101, -120,116, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, - 42,116,111,115,111, 99,107, 0, 42,108,105,110,107, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117, -116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0, 99,117,115,116,111,109, 49, - 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120, -101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114, -118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116, -111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, - 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99, -117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 42,111,119,110,116,121,112,101, 0, 42,115,101,108,105, -110, 0, 42,115,101,108,111,117,116, 0, 40, 42,116,105,109,101, 99,117,114,115,111,114, 41, 40, 41, 0, 40, 42,115,116, 97,116, -115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42, -116, 99,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109,105, -110,115,112,101,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, - 97,109,109, 97, 0, 99,117,114,118,101,100, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, - 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105, -110, 0,105,116,101,114, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, - 97, 99,101, 0,104,117,101, 0,115, 97,116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, - 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0, 99,111,108,110, 97,109,101, - 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98, -117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,100,105, 99,116, 0, 42, -110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,116,104,114,101,115,104, -111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,104,111,114,116,121, - 0,109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, - 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98, -108,101, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105, -116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,111,102,102,115,101,116, 91, - 50, 93, 0, 99,108,111,110,101, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97, -100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114, -103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116, -105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111, -116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0,118,101, -108, 91, 51, 93, 0,114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101, -114, 91, 51, 93, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, - 93, 0,102,111,102,102,115,101,116, 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, - 0, 42, 98,111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0, 97,108,105,118,101, - 0,108,111,111,112, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 42, 98,111,105,100,115, 0,100,105,115,116,114, 0,112,104, -121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100, -114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97, -115, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97, -100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116, -101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, - 97,110,105,109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95, -114, 97,110,100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0,115,105,109,112,108,105,102,121, 95, -102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, - 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, - 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, - 97,105,114, 0,103,114,105,100, 95,114,101,115, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112, -104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112, -104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0, -114, 97,110,100,115,105,122,101, 0,114,101, 97, 99,116,115,104, 97,112,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, - 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99, -104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99, -104,105,108,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, - 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109,112,112,111,119, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, - 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95, -116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, - 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, 0, 98,114, 97,110, 99,104, 95,116,104,114, -101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95, -101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108, -105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95, -111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, - 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, - 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, - 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99, -101, 0,116,114,101,101, 95,102,114, 97,109,101, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0, -116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121, -101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103, -114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, - 42,101,102,102,101, 99,116,111,114,115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105, -115, 0, 67,118,105, 0, 91, 51, 93, 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, - 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115, -112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, - 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0, -118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114, -101,114,111,108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118, -103,114,111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116, -114,117, 99,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105, -115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115, -105,108,111,110, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0, -112,114,101,115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101, -110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98, -117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101, -114, 0, 42,116,121,112,101,115,116,114, 0, 42,109,101,115,115, 97,103,101, 0,108,105,115,116, 0,112,114,105,110,116,108,101, -118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, - 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95, -115, 97,118,101,100, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, - 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,107,101,121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97, -117,108,116, 99,111,110,102, 0,100,101,102, 97,117,108,116, 97, 99,116,109, 97,112, 0,116,105,109,101,114,115, 0, 42, 97,117, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63, +205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 1, 0, 68, 65, 84, 65, 56, 1, 0, 0, + 48,241,234, 19, 1, 0, 0, 0, 76, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,160,242,234, 19, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,160,242,234, 19, 1, 0, 0, 0, 74, 1, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82,248, 11, 0, 0,192,190, 4, 2, 1, 0, 0, 0, +191, 0, 0, 0, 1, 0, 0, 0, 33,152, 1, 0, 63, 2, 0, 0, 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, + 47, 68,101,115,107,116,111,112, 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97, +112,112, 47, 67,111,110,116,101,110,116,115, 47, 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 48, 52, 6, 1, 0, 0, 0, 0, + 1, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, 72, 0, 0, 0, + 0, 0, 64, 0, 5, 0, 2, 0, 48,248, 5, 3, 1, 0, 0, 0, 48, 16, 6, 3, 1, 0, 0, 0,112,120,194, 24, 1, 0, 0, 0, +112,120,194, 24, 1, 0, 0, 0, 32,126,194, 24, 1, 0, 0, 0, 32,126,194, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, +205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 30, 90,100,191,154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63, +156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62, +184,243,125, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, + 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, + 14, 0, 0, 0, 25, 0, 15, 0,120, 0, 60, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 15, 0, + 8, 0, 10, 0,250, 0, 0, 0,100, 0,100, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,216, 21, 0, 0, 48,248, 5, 3, 1, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, 48, 16, 6, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, + 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, + 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, + 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, + 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, + 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, + 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, + 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, + 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, + 0, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, + 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, + 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0, +250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, + 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, + 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, + 3, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, + 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, + 96,192, 64,255, 82, 96,110,255,124,137,150,255, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, + 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, +255,255,255, 10,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,110,110,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255, +255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, + 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, + 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, +155,155,155,160,100,100,100,255,108,105,111,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255, +255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, + 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, + 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255, +255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255, +250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, + 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255, +135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255, +155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255, +255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255, +187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255, +189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 21, 0, 0, 48, 16, 6, 3, 1, 0, 0, 0, +189, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,248, 5, 3, 1, 0, 0, 0, 82,111,117,110,100,101,100, 0, + 0,101,119, 32, 85,115,101,114, 32, 84,104,101,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255, +100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255, +100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 25, 0,231,255, 0, 0, 25, 25, 25,255,153,153,153,255, +153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, + 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, + 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255, +153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255, +153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, + 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, + 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, + 46,124,217,204,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, + 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,175,175,175, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, + 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255, +255,255,255,255,230,150, 50,255,255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, +255,130, 0,255, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,150, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,107,107,107,100,143,143,143,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, + 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,135,177,125,255,255,255,255,255,255,255,255,255,255,130, 0,255, 0, 0, 0,255, +144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,130, 0,255, + 2, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,255,136,255,255, + 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255, +144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255,178,178,178,100, +255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,135,177,125,255, +255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +143,143,143,255,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,204,255,255,170,204, + 96,192, 64,255, 82, 96,110,255,124,137,150,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,143,143,143,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,107,107,107,255,178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, + 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255, +144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,255,255,255,170,255, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,112,255,255,255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, + 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255, +109,145,131,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, + 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255, +144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60,255,133, 0,255, 0, 0, 0, 0, + 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,127,112,112,100, + 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,153,153,153,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, + 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255, +144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, +100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,255,136,255,255, + 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255, +144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, + 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, +255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0,150,150,150,255,129,131,144,255,127,127,127,255,142,138,145,255, +120,145,120,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, + 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255, +255,255,255,255,230,150, 50,255,255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255, +200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, + 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255, +247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255, +131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255, +240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255, +111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255, +243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255, +211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255, +222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, + 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 78, 65, 49,240,230, 0, 0, 48, 80,245, 19, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, + 63, 11, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97, +115,116, 0,120, 0,121, 0,122, 0,119, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42, +112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116, +121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, + 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117, +115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99, +107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,110, 97,109,101, 91, 50, + 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104, + 97,110,103,101,100, 91, 50, 93, 0,112, 97,100, 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, + 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, + 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118, +101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95, +109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114, +118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101,108, 97,116, +105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112, + 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114, +101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107, + 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105,110,101, 0, + 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,102,108, + 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115, + 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114, +107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110, + 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,112, 97,115,115,101, +112, 97,114,116, 97,108,112,104, 97, 0, 97,110,103,108,101, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0, +108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104,105,102,116,120, + 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 89, 70, 95, 97,112,101,114,116,117,114,101, 0, 89, + 70, 95, 98,107,104,116,121,112,101, 0, 89, 70, 95, 98,107,104, 98,105, 97,115, 0, 89, 70, 95, 98,107,104,114,111,116, 0, 42, +100,111,102, 95,111, 98, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, + 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97, +121,101,114, 0,112, 97,115,115, 0,109,101,110,117,110,114, 0, 42,115, 99,101,110,101, 0,105, 98,117,102,115, 0, 42,103,112, +117,116,101,120,116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, + 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0, +116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, + 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0, 42,114,101,110,100,101,114, 95,116,101,120,116, 0, +108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101, +110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, + 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106, +101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0, +112,114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, + 0,116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116, +111,110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114, +117,115,104, 95,109, 97,112, 95,109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95, +118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, + 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, + 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114, +100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, + 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, + 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105, +109,101,102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, + 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,108,105,102,101,102, 97, 99, 0,115,105,122,101, +102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,112,118,101,108,102, 97, 99, 0,115,104, 97,100,111,119,102, 97, 99, 0,122,101, +110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99, 0,110, 97,109,101, 91, + 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0,115,116,121, +112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, 97, 0,100, + 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95,105,110,105, +116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0,105,112,111, +116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98, +105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97, +121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0, +102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, 0,114, 97, +100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112,100,112, 97, +100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, + 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, 97, 0,110, +111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105,110,102,108, +117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110,111,105,115, +101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0, 42, 99,111, 98, 97, 0,114,101,115,111,108, 91, 51, 93, + 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0, +105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99, +101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0, 42,100, 97,116, 97,115,101,116, 0,110,111,105,115,101,115,105,122,101, 0,116, +117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, + 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105, +116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0, +100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, + 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, + 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, + 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, + 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121, +109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112, +101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100, +101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110, +111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, + 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119, +103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116, +115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, + 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102, +116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, + 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, + 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95, +115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97, +114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97, +100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, + 99,116, 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0, +115,107,121, 98,108,101,110,100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0, +115,112,114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, + 97, 99,107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, + 0, 97,116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95, +102, 97, 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, + 95,100,105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, + 95,101,120,112,111,115,117,114,101, 0,115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 0, 89, 70, + 95,110,117,109,112,104,111,116,111,110,115, 0, 89, 70, 95,110,117,109,115,101, 97,114, 99,104, 0, 89, 70, 95,112,104,100,101, +112,116,104, 0, 89, 70, 95,117,115,101,113,109, 99, 0, 89, 70, 95, 98,117,102,115,105,122,101, 0, 89, 70, 95,112, 97,100, 0, + 89, 70, 95, 99, 97,117,115,116,105, 99, 98,108,117,114, 0, 89, 70, 95,108,116,114, 97,100,105,117,115, 0, 89, 70, 95,103,108, +111,119,105,110,116, 0, 89, 70, 95,103,108,111,119,111,102,115, 0, 89, 70, 95,103,108,111,119,116,121,112,101, 0, 89, 70, 95, +112, 97,100, 50, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 91, 51, 93, + 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102, +108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115, +115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101, +110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116, +114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, + 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105, +122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,116,101,112,115, + 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, + 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97, +109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97, +108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99, +101,110, 99,121, 0,118,111,108, 0,102,114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, + 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108, +116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116, +104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0, +103,108,111,115,115, 95,109,105,114, 0,103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109, +105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109, +105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95, +109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, + 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110, +103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114, +101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, + 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109, +105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109, +101, 91, 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112, +116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97, +109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100, +101,114, 0,114,111,117,103,104,110,101,115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, + 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, + 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, + 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, + 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117, +112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102, +114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, + 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105, +111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111, +110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0, +109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, + 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111, +108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112, +122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105, +115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, + 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115, +116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, + 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110, +116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111, +114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115, +118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114, +105,100,120, 0,107,101,114,110, 0,104, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98, +106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42, +107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,112, 97,100, 91, + 50, 93, 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, + 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111, +108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,115,101,108, 98,112, 0,115,112, 97, 99,101,109,111,100, +101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119, +111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0, +108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111, +110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102, +111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98, +111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115, +116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0,101,102,102,101, 99,116, 0, 42,109,102, 97, 99,101, 0, 42,109,116, +102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, + 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108, +101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, + 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, + 97, 99,101, 0,101,100,105,116,102,108, 97,103, 0, 99,117, 98,101,109, 97,112,115,105,122,101, 0,115,109,111,111,116,104,114, +101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0, 42, +109,114, 0, 42,112,118, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, + 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99, +111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111, +116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0, +105,110,100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, + 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,100, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99, +101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111, +117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118, +108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, + 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97, +112, 0, 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,101,100,103,101,115, 0, 42,101,114,114,111,114, 0,109, +111,100,105,102,105,101,114, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, + 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0, +108,101,110,103,116,104, 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115, +116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102, +115,101,116, 95,111, 98, 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95, +100,105,115,116, 0,102,105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, + 97,120,105,115, 0,116,111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, + 97,110,103,108,101, 0,118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, + 97,103,115, 0,101, 95,102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, + 97,109,101, 91, 51, 50, 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, + 0, 42,116,101,120,116,117,114,101, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100, +108,101,118,101,108, 0,116,101,120,109, 97,112,112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, + 97,121,101,114, 95,110, 97,109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112,114,111,106,101, + 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, + 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110, +116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116, +120, 0,115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109, +112, 0,102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111, +114,109,102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, + 51, 50, 93, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100, +101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, + 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, + 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117, +114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, + 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0, 42, 98,118,104,116, +114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, + 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,119,101,105,103, +104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105, +100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, + 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101, +108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 40, 42, 98,105,110,100,102,117,110, 99, + 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111, +116,100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, + 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108, +112,116,108,118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, + 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, + 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65, +120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, + 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,116,115, 0, 99,114,101, 97,115,101, 95,105,110,110,101, +114, 0, 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,112,110,116,115,119, 0, +111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, + 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, + 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116, +116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, + 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, + 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, + 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 99,111,110,115, +116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, + 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108, +111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100, +113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114, +111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111, +110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, + 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0, +110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, + 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, + 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105, +110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105, +110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101, +115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,100,116,120, 0,101,109, +112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115, +105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116, +114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100, +101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102, +116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110, +115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108, +101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105, +109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,110,114, 0,115,104, 97,112,101, +102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, + 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, + 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, + 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0, 99,117, +114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110, +105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99, +116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, + 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109, +112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0, +109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0, +112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112, +100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0, 97, 98,115,111,114,112,116,105,111,110, + 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111, +102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, + 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101, +120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0, +103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,102,114, 97,109,101, 0,116,111,116,112,111, +105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,105,110,100,101,120, 95, 97,114,114, 97,121, 0, 42,100, 97,116, + 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116, +102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, + 97, 99,116, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, + 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42, +102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118, +111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105, +116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, + 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, + 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, + 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0, +107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115, +116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, + 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97, +108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, + 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112, +101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, + 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, + 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105, +110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0, +101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, + 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, + 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109, +111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99, +104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101, +108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, + 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99, +111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97, +100, 52, 91, 52, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0, +114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108, +115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97, +121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111, +100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118,120, 0,103,114, 97,118,121, + 0,103,114, 97,118,122, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0,103,115,116, 97,114, 0,109, + 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, + 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 83,117,114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115, +117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105, +122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118, +111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101, +114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117, +114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97, +114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, + 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 83,117,114,102, 78,111,114,109, 97,108,115, 0, 99,112,115, + 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, + 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99, +101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101, +108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0, +109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,104,111,114,107, 0,122,101,110,114, + 0,122,101,110,103, 0,122,101,110, 98, 0,122,101,110,107, 0, 97,109, 98,107, 0,102, 97,115,116, 99,111,108, 0,101,120,112, +111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, + 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0, +111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97, +116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104, +121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116, +104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115, +105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108, +110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97, +120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, + 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97, +111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, + 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114, +101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,105,110,100, +105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116, +104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, + 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111,108, + 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, + 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, + 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80, +101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101, +114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, + 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, + 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99, +111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, + 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84, +101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, + 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117, +100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95, +118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, + 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101, +116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101, +101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97, +110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111, +118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, + 97,103, 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100, +101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97, +116, 97, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116, +104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100, +103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, + 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,114,116, 50, 0,102,114, 97,109,101, 95,115,116,101,112, 0, +115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105, +109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,119,105, +110,112,111,115, 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97, +108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 0,115, 99,101, +109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115, +116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0, 97,108,112,104, 97,109,111,100, +101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114, +100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,120, 97,115,112, 0, +121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103, +116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, + 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95, +102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95, +110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107, +101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, + 0, 71, 73,113,117, 97,108,105,116,121, 0, 71, 73, 99, 97, 99,104,101, 0, 71, 73,109,101,116,104,111,100, 0, 71, 73,112,104, +111,116,111,110,115, 0, 71, 73,100,105,114,101, 99,116, 0, 89, 70, 95, 65, 65, 0, 89, 70,101,120,112,111,114,116,120,109,108, + 0, 89, 70, 95,110,111, 98,117,109,112, 0, 89, 70, 95, 99,108, 97,109,112,114,103, 98, 0,121,102,112, 97,100, 49, 0, 71, 73, +100,101,112,116,104, 0, 71, 73, 99, 97,117,115,100,101,112,116,104, 0, 71, 73,112,105,120,101,108,115,112,101,114,115, 97,109, +112,108,101, 0, 71, 73,112,104,111,116,111,110, 99,111,117,110,116, 0, 71, 73,109,105,120,112,104,111,116,111,110,115, 0, 71, + 73,112,104,111,116,111,110,114, 97,100,105,117,115, 0, 89, 70, 95,114, 97,121,100,101,112,116,104, 0, 89, 70, 95, 65, 65,112, + 97,115,115,101,115, 0, 89, 70, 95, 65, 65,115, 97,109,112,108,101,115, 0,121,102,112, 97,100, 50, 0, 71, 73,115,104, 97,100, +111,119,113,117, 97,108,105,116,121, 0, 71, 73,114,101,102,105,110,101,109,101,110,116, 0, 71, 73,112,111,119,101,114, 0, 71, + 73,105,110,100,105,114,112,111,119,101,114, 0, 89, 70, 95,103, 97,109,109, 97, 0, 89, 70, 95,101,120,112,111,115,117,114,101, + 0, 89, 70, 95,114, 97,121, 98,105, 97,115, 0, 89, 70, 95, 65, 65,112,105,120,101,108,115,105,122,101, 0, 89, 70, 95, 65, 65, +116,104,114,101,115,104,111,108,100, 0, 98, 97, 99,107, 98,117,102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 93, 0, +115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, + 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,105,109, +112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109, +112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, + 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99, +105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0, +114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, + 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101, +110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95, +109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116, +105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,109, +111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0, + 42, 99, 97,109,101,114, 97, 0, 42, 42, 98,114,117,115,104,101,115, 0, 97, 99,116,105,118,101, 95, 98,114,117,115,104, 95,105, +110,100,101,120, 0, 98,114,117,115,104, 95, 99,111,117,110,116, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, + 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,116,111,111,108, 0,115,101, + 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0, 42,112, 97,105,110,116, 99,117,114,115, +111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117, +115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, + 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102, +114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,112,105,118,111,116, 91, 51, + 93, 0,116, 97, 98,108,101,116, 95,115,105,122,101, 0,116, 97, 98,108,101,116, 95,115,116,114,101,110,103,116,104, 0, 42,118, +112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, 0, + 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, + 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116, +117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105, +122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116, +105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, + 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, + 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95, +102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, 97, +100, 91, 50, 93, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97, +114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95, +116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, + 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, + 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, + 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95, +116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101, +115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101, +120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, + 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0, +115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121, +109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108, +101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119, +101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101, +105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, + 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100, +105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115, +107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110, +101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118, +105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105, +111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105, +100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, + 0,101,100,103,101, 95,109,111,100,101, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115, +110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100, +101, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,105,110,116,112, 97,100, 0,116,111,116,111, 98,106, 0,116, +111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116,109,101,115, +104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121,115,116,101, +109, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, + 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, + 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116, +116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, + 99,101,115, 0,115,111,117,110,100, 95,104, 97,110,100,108,101,115, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, + 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,106,117,109,112,102,114, 97,109,101, 0,112, 97,100, 53, 0, 97, 99,116, +105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, + 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,119,105,110,109, 97,116, 91, 52, + 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, + 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101, +119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, + 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, + 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,118,105,101,119, 98,117,116, 0,114,102, +108, 97,103, 0,118,105,101,119,108,111, 99,107, 0,112,101,114,115,112, 0,118,105,101,119, 0, 99,108,105,112, 91, 54, 93, 91, + 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, + 97,108,118,100, 0, 42,114,105, 0, 42,114,101,116,111,112,111, 95,118,105,101,119, 95,100, 97,116, 97, 0, 42,100,101,112,116, +104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, + 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,114,101,103,105,111,110, 98, + 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97, +110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 42, 98,103, +112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51, 50, 93, 0,108, 97,121, 97, 99,116, 0,100,114, + 97,119,116,121,112,101, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,112,105,118,111,116, 95,108, 97, +115,116, 0,103,114,105,100, 0,112, 97,100,102, 0,110,101, 97,114, 0,102, 97,114, 0,103,114,105,100,108,105,110,101,115, 0, +103,114,105,100,102,108, 97,103, 0,103,114,105,100,115,117, 98,100,105,118, 0,109,111,100,101,115,101,108,101, 99,116, 0,107, +101,121,102,108, 97,103,115, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,116,119,100, +114, 97,119,102,108, 97,103, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97, +119, 0,122, 98,117,102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, + 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115, +107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0, +115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111, +109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110, +120, 0,111,108,100,119,105,110,121, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0, +116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0, 42,115, 99,114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, + 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0, +109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0, +112,114,101,118,105,101,119, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, + 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111, +109, 0,116,105,116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101, +110, 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, + 95, 98,111,111,107,109, 97,114,107, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 0,102, + 95,102,112, 0,109,101,110,117, 0,102,112, 95,115,116,114, 91, 56, 93, 0, 42,112,117,112,109,101,110,117, 0, 42,112, 97,114, + 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114, +115, 95,110,101,120,116, 0, 42,111,112, 0, 42,108,111, 97,100,105,109, 97,103,101, 95,116,105,109,101,114, 0, 42,108, 97,121, +111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, + 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, + 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111, +117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, + 0, 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, + 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 99,101,110,116,120, 0, 99,101,110,116,121, + 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,105, +100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, + 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101, 0, +108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, + 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115, +116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,119, + 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101, +114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, + 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, + 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, + 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0, +116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105, +108,101,115,121, 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108, +108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116, +118, 97,108, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, + 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117, +110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,105, +109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,114,112,116, 95,109, 97,115,107, 0,115, 99,114, +111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103, +117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,101,110, + 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, + 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100, +111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111, +119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100, +103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98, +101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, + 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110, +115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, + 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101, +114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, + 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, + 97,100,101,100,111,119,110, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, + 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115, +101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118, +101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, + 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111, +110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115, +108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99, +111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, + 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0, +119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93, 0, +116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,101, + 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97, +100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95, +116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116, +101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0, +108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110, +101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, + 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, + 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, + 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114, +111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, + 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101, +100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, + 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, + 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, + 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, + 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, + 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, + 99,104, 97,110,110,101,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,102, 97, 99,101,100,111,116, 95,115, +105,122,101, 0, 98,112, 97,100, 91, 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, + 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, + 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117, +100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115, +105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, + 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116, +101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0, +104,112, 97,100, 91, 51, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0, +116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0, +116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105, +109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 97,114,109, 91, 50, + 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95,103,114,111,117,112, 0,115,112,101, 99, 91, 52, 93, 0,100,117, +112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,111,110,116, +100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,100,105,114, + 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,100,105,114, + 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114, 91, 49, 54, + 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95, +112,114,101,115,101,116, 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, + 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0, +108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117, +102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105, +111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105, +110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117, +116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108, +101,115, 0,107,101,121,109, 97,112,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111, +115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115, +116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95, +115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111, +117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0, +116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, + 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, + 97,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0, +102,114, 97,109,101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, + 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99, +101,110,116, 95,102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109, +105,116, 0,110,100,111,102, 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, + 0,105,112,111, 95,110,101,119, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117, +115,101,114, 91, 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, + 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119, +115, 99,101,110,101, 0,102,117,108,108, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114, +101,115,104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110, +116, 99,117,114,115,111,114, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118, +101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, + 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97, +109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0, +111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114, +117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100, +101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99, +114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115, +116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, + 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112, +101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, + 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112, +101, 0, 97,108,105,103,110,109,101,110,116, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97, +100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, + 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118, +101,114,115,105,111,110, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101, +102,108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,105, 98,117,102, 0, 42,105, 98, +117,102, 95, 99,111,109,112, 0, 42,115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,114, 0, 98,111,116,116,111,109, + 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, + 93, 0,103, 97,105,110, 91, 51, 93, 0,115, 97,116,117,114, 97,116,105,111,110, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111, +110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, + 97, 0,111,114,120, 0,111,114,121, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111, +114, 95, 98, 97,108, 97,110, 99,101, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, 97,116, + 97, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116,105,108, +108, 0, 42,105, 98,117,102, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116,105,108, +108, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101, +110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110, +100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,109, +117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0, +101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42, +115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115,111,117,110,100, + 95,104, 97,110,100,108,101, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114, 0,115,116,114,111, 98,101, + 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95, +101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, + 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97, +115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, + 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114, +119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115, +116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73, +110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,121, 70,105,110, + 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,114,111,116, 70, +105,110, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42, +102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, + 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0, +110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110, +100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100, +101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, + 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116, +101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101, +103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93, 0,118,103,114, +111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,117,115,101,100, 0, +117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, + 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 51, + 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,109, 97,120,118, + 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, + 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 51, 50, 93, 0, +109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, + 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0, +115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, + 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110, +100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, + 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0,109,111,100,117,108,101, 91, + 54, 52, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108, +105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80, +114,111,112, 91, 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115, +101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,115,110,100,110,114, + 0,112, 97,100, 49, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,109, 97,107,101, 99,111,112,121, 0, + 99,111,112,121,109, 97,100,101, 0,112, 97,100, 50, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, + 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, + 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, + 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, + 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, + 0,109,105,110, 0,109, 97,120, 0,118,105,115,105,102, 97, 99, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, + 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, + 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114, +103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, + 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98, +111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, + 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101, +116, 0,103,111, 0, 97, 99, 99,101,108,108,101,114, 97,116,105,111,110, 0,109, 97,120,115,112,101,101,100, 0,109, 97,120,114, +111,116,115,112,101,101,100, 0,109, 97,120,116,105,108,116,115,112,101,101,100, 0,116,105,108,116,100, 97,109,112, 0,115,112, +101,101,100,100, 97,109,112, 0, 42,115,111,117,114, 99,101, 0,102,114, 97,109,101,115,107,105,112, 0,109,117,116,101, 0, 99, +104, 97,110,103,101,100, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, + 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, + 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117, +116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0, 42,110,101,119,112, 97, + 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, + 97, 99,104,101, 0, 42, 97,114,101, 97, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108, +105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, + 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, + 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, + 52, 93, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, + 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115, +101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115, +107,101,116, 99,104, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104, +111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116, +115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0, +112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102, +114, 97,109,101, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, + 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0, + 42, 98, 95, 98,111,110,101, 95,109, 97,116,115, 0, 42,100,117, 97,108, 95,113,117, 97,116, 0, 42, 98, 95, 98,111,110,101, 95, +100,117, 97,108, 95,113,117, 97,116,115, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, + 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115, +101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, + 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101, +105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 42, 99,117,115,116,111,109, 0, 99,104, 97,110, 98, 97,115, +101, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99, +121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103, +114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,110, +117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115, +111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97, +109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118, +101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,102,105,108,116,101,114,102,108, + 97,103, 0, 97,100,115, 0, 97, 99,116,110,114, 0, 97, 99,116,119,105,100,116,104, 0,116,105,109,101,115,108,105,100,101, 0, + 42,103,114,112, 0,116,101,109,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115, +112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0, +114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99, +101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116, +105,111,110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101, +116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0, +111,114,105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111, +105,110,116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118, +101,100, 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, + 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109, +111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112, +105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, + 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, + 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, + 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, + 93, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110, +111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99, +116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0, +115, 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, + 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117, +116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0, +110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,105,110,116,101,114,110, 0,115,116, 97, 99, +107, 95,105,110,100,101,120, 95,101,120,116, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0, +116,111, 95,105,110,100,101,120, 0, 42,116,111,115,111, 99,107, 0, 42,108,105,110,107, 0, 42,110,101,119, 95,110,111,100,101, + 0,108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116, +104, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, + 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116, +114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114, +111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0,110,111,100,101,115, 0,108, +105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, + 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 42,111,119,110,116, +121,112,101, 0, 42,115,101,108,105,110, 0, 42,115,101,108,111,117,116, 0, 40, 42,116,105,109,101, 99,117,114,115,111,114, 41, + 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, + 40, 41, 0, 42,116, 98,104, 0, 42,116, 99,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, + 97,109,112,108,101,115, 0,109,105,110,115,112,101,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116, +121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, 0, 99,117,114,118,101,100, 0,105,109, 97,103,101, 95,105,110, 95,119,105, +100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110, +116,101,114, 95,121, 0,115,112,105,110, 0,105,116,101,114, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, + 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,115, 97,116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115, +116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, + 50, 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97, +109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115, +104, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109, +105,120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102, +105,116, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95, +105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42, +112,114,101,109,117,108,116, 97, 98,108,101, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, + 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, + 93, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95, +115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116, +111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0, 97, 99,116,105,118, +101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42, +108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, + 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,118,101,108, 91, 51, 93, 0,114,111,116, 91, 52, 93, 0, 97, +118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,110,117,109, 0,112, 97,114,101, +110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,114,116, 91, + 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105,101,116,105,109, +101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105,118,101, 0, 42, + 98,111,105,100,115, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, + 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99, +104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116, +101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112, +105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, + 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115, +101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101, +116, 91, 50, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115, +105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115, +105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97, +107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114,101,115, 0,112, 97,114,116,102, + 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118, +101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, + 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0,114,101, 97, 99,116,115,104, 97,112, +101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,100, 97,109,112,102, 97, + 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, + 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,110,100, +115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109,112,112,111,119, + 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, + 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111, +117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104, +114,101,115, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, 97, +116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107,101, +121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111,117, +112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97,114, +116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, 0, +112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99,108, +109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97,114, +103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, 97,109,101, 0,116,111,116, 99,104, +105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103, +101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118, +110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, + 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114,115, 0, 42,116,114,101,101, 0, 42, +112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0, 91, 51, 93, 0,115,116,114,117, 99,116,117,114, + 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, + 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108, +101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, + 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0,115,116, +101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, + 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95, +109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, + 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114, +105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117, +110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, + 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101, +112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, + 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0, 42,116,121,112,101,115,116,114, 0, 42,109,101,115,115, 97,103, +101, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,119,105, +110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105,110,100,111,119,115, 0,105,110,105, +116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112,101,114, 97,116,111,114,115, 0,113,117, +101,117,101, 0,114,101,112,111,114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,107,101, +121, 99,111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117, 116,111,115, 97,118,101,116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,110,101,119,115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0, 112,111,115,121, 0,119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114, -115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0,108, 97,115,116, 95,116,121,112,101, 0,108, 97,115,116, 95, -118, 97,108, 0,108, 97,115,116, 95, 99,108,105, 99,107, 95,116,105,109,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, - 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, - 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119, -105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97, -108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105, -102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0, -114,101,103,105,111,110,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, - 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97, -116, 97, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0,109,118, 97,108, 91, 50, 93, 0,112, -114,101,118,120, 0,112,114,101,118,121, 0,117,110,105, 99,111,100,101, 0, 97,115, 99,105,105, 0, 42,107,101,121,109, 97,112, - 95,105,100,110, 97,109,101, 0, 99,117,115,116,111,109, 0, 99,117,115,116,111,109,100, 97,116, 97,102,114,101,101, 0, 42,101, -100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, - 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115, -101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95, -111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95, -109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0, -114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0, 42,114,110, 97, 95,112, 97,116, -104, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0,105,100,116,121,112,101, 0,101,120,112,114,101,115,115,105,111,110, 91, - 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 99,111,108,111, -114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, - 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, - 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, - 0,103,114,111,117,112, 91, 54, 52, 93, 0,116,101,109,112,108, 97,116,101,115, 0,103,114,111,117,112,109,111,100,101, 0,112, - 97,116,104,115, 0,107,101,121,105,110,103,102,108, 97,103, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, - 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, - 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116, -101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111, -110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104, -101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108, -101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101, -115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112, -101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, - 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115, -115,105,111,110, 0, 97, 99, 99,117,114, 97, 99,121, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95, -109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118, -101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115, -112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, - 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99, -101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42, -102,108,117,105,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42, -119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, - 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, - 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105, -110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101, -100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 42,112,111,105,110,116, 95, - 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0,118,101,108,111, 99,105,116,121, 91, 51, 93, - 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0, -118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110, -116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 0, 84, 89, 80, 69, -198, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0, -108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110, -107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,105, 0, -118,101, 99, 50,102, 0,118,101, 99, 50,100, 0,118,101, 99, 51,105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,100, 0,118,101, - 99, 52,105, 0,118,101, 99, 52,102, 0,118,101, 99, 52,100, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112, -101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70, -105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, - 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, - 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105, -110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97, -109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101, -120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, - 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, - 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 86,111,120,101,108, 68, 97,116, 97, 0, - 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, - 97,112,112,105,110,103, 0, 87, 97,118,101, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114, -105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108, -101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110, -102,111, 0, 84,101,120,116, 66,111,120, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105, -116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86, -101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99, -107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77, -117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114, -109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111, -108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83, -116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115, -112,115, 0, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 32, 40, 49, 60, 60, 49, 41, 32, 35, -100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 32, 40, 49, 60, 60, 50, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, - 95, 70, 71, 79, 78, 32, 40, 49, 60, 60, 51, 41, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, - 68, 69, 82, 32, 40, 49, 60, 60, 53, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 32, - 40, 49, 60, 60, 55, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 32, 40, 49, 60, 60, - 56, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, 32, 40, 49, 60, 60, 57, 41, 32, 32, 32, 35,100,101, -102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, - 86, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 32, 52, 32, 35,100,101,102,105,110,101, - 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 32, 49, - 54, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 77, - 69, 95, 80, 82, 79, 74, 89, 90, 32, 54, 52, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 32, 49, 32, 35, -100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, - 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 86, 52, 86, 49, 32, 56, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 32, 49, 32, 35,100,101,102, -105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 32, 50, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, - 83, 69,108, 32, 48, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 32, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 70, 83, 69, 76, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 49, 32, 32, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 83, 69, 76, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 50, 32, 56, 32, 35,100,101,102,105,110,101, - 32, 84, 70, 95, 83, 69, 76, 51, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 32, 51, 50, 32, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 32, 54, 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, - 89, 78, 65, 77, 73, 67, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 32, 50, 32, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, - 69, 68, 86, 69, 82, 84, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 32, 49, 54, 32, 35,100,101, -102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 84, 73, 76, 69, 83, 32, 49, 50, 56, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 32, - 50, 53, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, 73, 68, 69, 32, 53, 49, 50, 32, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 32, 49, 48, 50, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, - 79, 66, 67, 79, 76, 32, 50, 48, 52, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, - 32, 52, 48, 57, 54, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 32, 56, 49, 57, 50, 32, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 32, 49, 54, 51, 56, 52, 32, 32, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 83, 79, 76, 73, 68, 32, 48, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 32, 49, 32, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 32, 52, 32, - 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 32, 51, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, - 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, - 69, 68, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 32, 52, 32, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, - 84, 70, 95, 80, 73, 78, 49, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 32, 51, 50, 32, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, - 32, 49, 50, 56, 32, 35,101,110,100,105,102,100, 32, 99,104, 97,114, 32,117,115,101, 95, 99,111,108, 44, 32,102,108, 97,103, 59, - 10, 10, 9, 47, 42, 32, 83,112,101, 99,105, 97,108, 32,108,101,118,101,108, 32, 49, 32,100, 97,116, 97, 32,116,104, 97,116, 32, - 99, 97,110,110,111,116, 32, 98,101, 32,109,111,100,105,102,105,101,100, 32,102,114,111,109, 32,111,116,104,101,114, 32,108,101, -118,101,108,115, 32, 42, 47, 10, 9, 67,117,115,116,111,109, 68, 97,116, 97, 32,118,100, 97,116, 97, 59, 10, 9, 67,117,115,116, -111,109, 68, 97,116, 97, 32,102,100, 97,116, 97, 59, 10, 9,115,104,111,114,116, 32, 42,101,100,103,101, 95,102,108, 97,103,115, - 59, 10, 9, 99,104, 97,114, 32, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 59, 10,125, 32, 77,117,108,116,105,114,101, -115, 59, 10, 10, 47, 42, 42, 32, 69,110,100, 32, 77,117,108,116,105,114,101,115, 32, 42, 42, 47, 10, 10,116,121,112,101,100,101, -102, 32,115,116,114,117, 99,116, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 32,123, 10, 9,117,110, -115,105,103,110,101,100, 32,105,110,116, 32, 42,118,101,114,116, 95,109, 97,112, 59, 32, 47, 42, 32,118,101,114,116, 95,109, 97, -112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 32, 42, 47, 10, 9,105,110,116, 32, - 42,101,100,103,101, 95,109, 97,112, 59, 32, 47, 42, 32,101,100,103,101, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, - 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 44, 32, 45, 49, 61, 32,104,105,100,100,101,110, 32, 42, 47, 10, 9, 77, 70, 97, - 99,101, 32, 42,111,108,100, 95,102, 97, 99,101,115, 59, 10, 9, 77, 69,100,103,101, 32, 42,111,108,100, 95,101,100,103,101,115, - 59, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32,116,111,116,102, 97, 99,101, 44, 32,116,111,116,101,100,103,101, - 44, 32,116,111,116,118,101,114,116, 44, 32,112, 97,100, 59, 10,125, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108, -105,116,121, 59, 10, 10, 47, 42, 32,109,118,101,114,116, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 32, - 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 83, 84, 9, 50, 10, 35,100,101,102,105, -110,101, 32, 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 77, 80, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 72, 73, - 68, 69, 9, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 69, 82, 84, 95, 77, 69, 82, 71, 69, 68, 9, 9, - 40, 49, 60, 60, 54, 41, 10, 10, 47, 42, 32,109,101,100,103,101, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, - 41, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 9, 9, 9, 40, 49, 60, 60, 49, 41, - 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 9, 9, 9, 9, 40, 49, 60, 60, 50, 41, 10, 35,100,101,102,105, -110,101, 32, 77, 69, 95, 70, 71, 79, 78, 9, 9, 9, 9, 40, 49, 60, 60, 51, 41, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,114,101, -115,101,114,118,101, 32, 49, 54, 32,102,111,114, 32, 77, 69, 95, 72, 73, 68, 69, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, - 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 9, 9, 40, 49, 60, 60, 53, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, - 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 9, 9, 40, 49, 60, 60, 55, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, - 65, 77, 95, 76, 65, 83, 84, 9, 9, 40, 49, 60, 60, 56, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, - 9, 9, 9, 40, 49, 60, 60, 57, 41, 10, 10, 47, 42, 32,112,117,110,111, 32, 61, 32,118,101,114,116,101,120,110,111,114,109, 97, -108, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 47, 42, 32,114,101,110,100,101,114, 32, 97,115,115,117,109,101,115, 32,102, -108,105,112,115, 32,116,111, 32, 98,101, 32,111,114,100,101,114,101,100, 32,108,105,107,101, 32,116,104,105,115, 32, 42, 47, 10, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 70, 76, 73, 80, 86, 50, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 9, 9, 52, 10, 35, -100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, - 82, 79, 74, 88, 89, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 9, 9, 51, 50, 10, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, 90, 9, 9, 54, 52, 10, 10, 47, 42, 32,101,100, 99,111,100,101, - 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 9, 9, 9, 49, 10, - 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 9, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, - 51, 86, 49, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 9, 9, 9, 52, 10, 35,100,101,102, -105,110,101, 32, 77, 69, 95, 86, 52, 86, 49, 9, 9, 9, 56, 10, 10, 47, 42, 32,102,108, 97,103, 32, 40,109,102, 97, 99,101, 41, - 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 9, 9, 9, 49, 10, 35,100,101,102,105,110, -101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 9, 9, 9, 50, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,102,108, 97,103, 32, - 77, 69, 95, 72, 73, 68, 69, 61, 61, 49, 54, 32,105,115, 32,117,115,101,100, 32,104,101,114,101, 32,116,111,111, 32, 42, 47, 32, - 10, 47, 42, 32,109,115,101,108,101, 99,116, 45, 62,116,121,112,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, - 86, 83, 69,108, 9, 48, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 10, 35,100,101,102,105,110,101, - 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,102,108, 97,103, 32, 42, 47, 10, 35, -100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 9, 49, 32, 47, 42, 32,117,115,101, 32, 77, 70, 97, 99,101, 32, -104,105,100,101, 32,102,108, 97,103, 32, 40, 97,102,116,101,114, 32, 50, 46, 52, 51, 41, 44, 32,115,104,111,117,108,100, 32, 98, -101, 32, 97, 98,108,101, 32,116,111, 32,114,101,117,115,101, 32, 97,102,116,101,114, 32, 50, 46, 52, 52, 32, 42, 47, 10, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 9, 50, 32, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 33, - 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 49, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 83, 69, 76, 50, 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 51, 9, 9, 49, 54, 10, 35,100, -101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 9, 9, 51, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, - 69, 9, 9, 54, 52, 32, 47, 42, 32,117,110,117,115,101,100, 44, 32,115, 97,109,101, 32, 97,115, 32, 84, 70, 95, 83, 69, 76, 69, - 67, 84, 32, 42, 47, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,109,111,100,101, 32, 42, 47, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, - 83, 79, 82, 84, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 9, 9, 9, 52, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, - 72, 84, 9, 9, 49, 54, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 9, 54, 52, 10, - 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, 9, 9, 49, 50, 56, 9, 9, 47, 42, 32,100,101,112,114,101, 99, - 97,116,101,100, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 9, 50, 53, 54, - 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, 73, 68, 69, 9, 9, 53, 49, 50, 10, 35,100,101,102,105,110,101, - 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 9, 49, 48, 50, 52, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, - 66, 67, 79, 76, 9, 9, 50, 48, 52, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, - 9, 52, 48, 57, 54, 9, 47, 42, 32,119,105,116,104, 32, 90, 32, 97,120,105,115, 32, 99,111,110,115,116,114, 97,105,110,116, 32, - 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 9, 9, 56, 49, 57, 50, 10, 35,100,101,102,105, -110,101, 32, 84, 70, 95, 66, 77, 70, 79, 78, 84, 9, 9, 49, 54, 51, 56, 52, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62, -116,114, 97,110,115,112, 44, 32,118, 97,108,117,101,115, 32, 49, 45, 52, 32, 97,114,101, 32,117,115,101,100, 32, 97,115, 32,102, -108, 97,103,115, 32,105,110, 32,116,104,101, 32, 71, 76, 44, 32, 87, 65, 82, 78, 73, 78, 71, 44, 32, 84, 70, 95, 83, 85, 66, 32, - 99, 97,110,116, 32,119,111,114,107, 32,119,105,116,104, 32,116,104,105,115, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, - 70, 95, 83, 79, 76, 73, 68, 9, 48, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 9, 9, 49, 10, 35,100,101,102, -105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 9, 9, - 52, 32, 47, 42, 32, 99,108,105,112,109, 97,112, 32, 97,108,112,104, 97, 47, 98,105,110, 97,114,121, 32, 97,108,112,104, 97, 32, - 97,108,108, 32,111,114, 32,110,111,116,104,105,110,103, 33, 32, 42, 47, 10, 10, 47, 42, 32,115,117, 98, 32,105,115, 32,110,111, -116, 32, 97,118, 97,105,108, 97, 98,108,101, 32,105,110, 32,116,104,101, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99, -101, 32, 97,110,121,109,111,114,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 9, 9, 51, 10, 10, - 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,117,110,119,114, 97,112, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, - 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, - 65, 84, 69, 68, 50, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 9, 52, - 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 52, 9, 56, 10, 35,100,101,102,105,110, -101, 32, 84, 70, 95, 80, 73, 78, 49, 9, 9, 32, 32, 32, 32, 49, 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, - 50, 9, 9, 32, 32, 32, 32, 51, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 9, 32, 32, 32, 9, 9, 54, - 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, 9, 32, 32, 32, 32, 9, 49, 50, 56, 10, 10, 35,101,110,100, -105,102, 10,100,105, 79, 67, 75, 33,110,100,101,120, 32,105,110, 32,110,117,114, 98, 32,108,105,115,116, 32, 42, 47, 10, 9,105, -110,116, 32, 97, 99,116,110,117, 59, 10, 9, 47, 42, 32,101,100,105,116, 44, 32,108, 97,115,116, 32,115,101,108,101, 99,116,101, -100, 32, 98,112,111,105,110,116, 32, 42, 47, 10, 9, 66, 80,111,105,110,116, 32, 42,108, 97,115,116,115,101,108, 98,112, 59, 10, - 9, 10, 9, 47, 42, 32,102,111,110,116, 32,112, 97,114,116, 32, 42, 47, 10, 9,115,104,111,114,116, 32,108,101,110, 44, 32,108, -105,110,101,115, 44, 32,112,111,115, 44, 32,115,112, 97, 99,101,109,111,100,101, 59, 10, 9,102,108,111, 97,116, 32,115,112, 97, - 99,105,110,103, 44, 32,108,105,110,101,100,105,115,116, 44, 32,115,104,101, 97,114, 44, 32,102,115,105,122,101, 44, 32,119,111, -114,100,115,112, 97, 99,101, 44, 32,117,108,112,111,115, 44, 32,117,108,104,101,105,103,104,116, 59, 10, 9,102,108,111, 97,116, - 32,120,111,102, 44, 32,121,111,102, 59, 10, 9,102,108,111, 97,116, 32,108,105,110,101,119,105,100,116,104, 59, 10, 70, 82, 69, - 69,216, 24, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, - 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114, -101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105, -102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114, -118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, - 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, - 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97, -116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, - 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, - 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116, -104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, - 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, - 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111, -100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111, -116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116, -116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97, -116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66, -111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, - 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116, -105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102, -105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116, -105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97, -112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116, -105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, - 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 66,117,108,108,101,116, 83,111,102,116, 66, -111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, - 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, - 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, - 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 87, -111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, - 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, - 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, - 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111, -102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97, -116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, - 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, - 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105, -101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105, -110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83, -101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111, -114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110, -102,111, 0, 82,101,116,111,112,111, 86,105,101,119, 68, 97,116, 97, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111, -111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99, -101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 98, 83, 99,114,101,101,110, 0, 83, -112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, - 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, - 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, - 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101, -109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, - 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, - 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111, -110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, - 80,114,101,102, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0, -117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111, -114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67, -111,108,111,114, 0, 98, 84,104,101,109,101, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 83, - 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117, -105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111, -110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108, -101,109, 0, 84, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97, -110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114, -111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111, -117,110,100, 0, 83,111,117,110,100, 72, 97,110,100,108,101, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97, -114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67, -111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, - 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69, -102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83, -101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115, -111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115, -111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, - 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, - 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83, -101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116, -105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111, -110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116, -111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111, -114, 0, 83,111,117,110,100, 51, 68, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, - 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, - 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109, -101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, - 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, - 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86, -105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116, -117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, - 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 70,114,101,101, 67, 97,109,101,114, - 97, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65, -114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 77,111,116,105,111,110, 80, - 97,116,104, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 80,111,115,101, 67,104, 97,110,110,101, -108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83, -112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116, -114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, - 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105, -110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116, -114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, - 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, - 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, - 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, - 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115, -116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116, -114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110, -116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, - 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115, -116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76, -105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, 97, -105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110,107, -119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, - 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107, -101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, -117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, - 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66, -105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, - 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, - 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, 86, -101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68, -105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,101, -110,115, 68,105,115,116, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105, -110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, - 97, 76, 97,121,101,114, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, - 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, - 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104, -116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, - 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, - 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, - 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, - 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110, -100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0, -119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, - 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119, -109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110, -101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, - 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111, -100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, - 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, 83,111,117,110,100, 0, 68,114,105,118,101,114, 84, 97,114, -103,101,116, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, - 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, - 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79, -118,101,114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66, -111,105,100, 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111, -108,108,105,115,105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105, -100, 82,117,108,101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, - 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 0, - 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, - 8, 0, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0, 16, 0, 16, 0, 32, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, - 40, 0,144, 0,152, 4,112, 0, 36, 0, 56, 0,112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,152, 0, 40, 0, - 40, 6,184, 1, 0, 0, 0, 0, 0, 0, 16, 1,104, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0, 88, 0, 32, 1,248, 0,136, 0, -248, 1, 56, 1, 80, 0, 88, 0, 32, 3,104, 0, 88, 1, 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0,216, 1, 0, 0, - 0, 0, 0, 0,144, 1, 20, 0, 48, 0, 64, 0, 24, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 32, 0,112, 0, 48, 0, - 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 16, 0, 0, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 72, 0, - 96, 0,112, 0,120, 0, 88, 0,120, 0,152, 0, 88, 0, 80, 0,128, 0, 80, 0,104, 0,248, 0, 56, 0,192, 0,176, 0,216, 0, - 80, 0,112, 0,128, 0,216, 0,128, 0,240, 0, 72, 0,128, 0, 0, 0,144, 0, 32, 0, 8, 2,152, 0, 0, 0,112, 0, 0, 0, - 0, 0, 88, 0, 8, 0, 8, 0, 16, 1,104, 0,240, 1, 96, 0, 88, 0, 88, 0, 88, 0,192, 1,136, 0,128, 0, 72, 0,232, 0, - 48, 0, 0, 0,144, 0, 88, 0,104, 0,120, 0,152, 0,120, 1,224, 0,192, 0, 0, 0, 72, 0,168, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0,224, 1, 40, 0,184, 0,152, 0, 40, 0, 64, 0, 24, 0, 88, 0, 64, 4, 64, 0, 24, 0, 16, 0, 96, 0, 88, 0, - 32, 0, 40, 1, 48, 0, 8, 0,112, 0, 88, 0, 56, 0, 64, 0,120, 1, 32, 0, 8, 0, 16, 0, 48, 2, 0, 0, 0, 0, 64, 0, - 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 56, 0,152, 0, 72, 0,208, 0,248, 0, 32, 0, 0, 1,240, 0,208, 1, -104, 0, 0, 0,152, 0, 0, 0, 40, 1, 16, 0, 16, 0,168, 0,224, 0,144, 2,120, 2, 64, 0,200, 0, 32, 1, 72, 0,208, 2, - 40, 0,136, 1, 40, 0, 24, 1, 32, 0,232, 0, 32, 0, 32, 0, 80, 2, 16, 1, 16, 0,216, 21, 56, 0,160, 11, 32, 0, 40, 0, - 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 24, 1, 80, 0, 48, 0, 16, 0, 8, 0, 52, 0, 0, 1, 32, 1,200, 1, - 8, 1, 48, 1, 64, 0, 32, 0, 12, 0, 24, 0, 52, 0, 16, 0, 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, - 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 72, 0, 96, 0,104, 0, 60, 0,128, 0, - 80, 0, 80, 0, 16, 0, 96, 0, 72, 0, 32, 0, 88, 0, 24, 0, 80, 0,112, 0, 84, 0, 32, 0, 96, 0, 56, 0, 56, 0,112, 0, -140, 0, 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0,224, 0, 40, 0, 40, 1,200, 0, 16, 0, 24, 0, 24, 0, 0, 2, 4, 0, - 40, 0,120, 0, 8, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0,120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 72, 0, 48, 0, 72, 0, - 48, 0, 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, 28, 0, 28, 0, 28, 0, 56, 0, 24, 0, 72, 0,168, 0, 40, 0, -144, 0, 56, 0,232, 0, 0, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, 40, 0, 8, 0, 8, 0, 64, 0, - 32, 0, 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 32, 0, 12, 0, 56, 0, 24, 0, 72, 0, 24, 0, 56, 0, 56, 0, 20, 0, 64, 0, - 40, 0, 32, 0,192, 0, 8, 2,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 32, 0, 8, 1, -232, 0,168, 0, 72, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, - 24, 0, 20, 0, 24, 0,112, 0, 40, 1, 16, 0,104, 0, 0, 1, 40, 0,200, 0,104, 0,112, 0,104, 0, 32, 0, 80, 0, 56, 0, - 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0, 83, 84, 82, 67,140, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, - 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, - 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 4, 0, 5, 0, 4, 0, 6, 0, 15, 0, 2, 0, 7, 0, 5, 0, - 7, 0, 6, 0, 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, - 18, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, - 20, 0, 4, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, - 7, 0, 7, 0, 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, - 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, - 7, 0, 12, 0, 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, - 26, 0, 1, 0, 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, - 4, 0, 24, 0, 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, - 2, 0, 19, 0, 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, - 0, 0, 35, 0, 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, - 2, 0, 42, 0, 2, 0, 43, 0, 4, 0, 44, 0, 31, 0, 6, 0, 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, - 2, 0, 19, 0, 0, 0, 48, 0, 33, 0, 21, 0, 33, 0, 0, 0, 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, - 24, 0, 52, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, - 2, 0, 57, 0, 7, 0, 11, 0, 7, 0, 12, 0, 4, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, - 36, 0, 7, 0, 27, 0, 31, 0, 12, 0, 63, 0, 24, 0, 64, 0, 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, - 37, 0, 16, 0, 37, 0, 0, 0, 37, 0, 1, 0, 7, 0, 67, 0, 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, - 2, 0, 19, 0, 4, 0, 69, 0, 4, 0, 70, 0, 9, 0, 2, 0, 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, - 7, 0, 74, 0, 38, 0, 13, 0, 27, 0, 31, 0, 39, 0, 75, 0, 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, - 12, 0, 79, 0, 36, 0, 80, 0, 27, 0, 81, 0, 2, 0, 17, 0, 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 6, 0, - 40, 0, 0, 0, 40, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, 4, 0, 23, 0, 4, 0, 86, 0, 41, 0, 10, 0, 41, 0, 0, 0, - 41, 0, 1, 0, 4, 0, 87, 0, 4, 0, 88, 0, 4, 0, 89, 0, 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, - 0, 0, 92, 0, 42, 0, 15, 0, 27, 0, 31, 0, 0, 0, 93, 0, 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, - 40, 0, 97, 0, 4, 0, 98, 0, 4, 0, 99, 0, 12, 0,100, 0, 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, - 8, 0,105, 0, 43, 0, 3, 0, 4, 0,106, 0, 4, 0,107, 0, 9, 0, 2, 0, 44, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, - 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, - 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 2, 0,119, 0, 2, 0,120, 0, 7, 0,121, 0, - 36, 0, 80, 0, 32, 0,122, 0, 45, 0, 13, 0, 4, 0,123, 0, 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 2, 0,127, 0, - 2, 0,128, 0, 2, 0, 19, 0, 2, 0,129, 0, 2, 0,130, 0, 2, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 46, 0,134, 0, - 47, 0, 32, 0, 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,135, 0, 48, 0,136, 0, 49, 0,137, 0, 50, 0,138, 0, 2, 0,129, 0, - 2, 0, 19, 0, 2, 0,139, 0, 2, 0, 17, 0, 2, 0, 37, 0, 2, 0, 43, 0, 4, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, - 2, 0,143, 0, 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, 4, 0,147, 0, 4, 0,148, 0, 43, 0,149, 0, 30, 0,150, 0, - 0, 0,151, 0, 7, 0,152, 0, 4, 0,153, 0, 2, 0,154, 0, 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 7, 0,158, 0, - 7, 0,159, 0, 51, 0, 63, 0, 2, 0,160, 0, 2, 0,161, 0, 2, 0,162, 0, 2, 0,163, 0, 32, 0,164, 0, 52, 0,165, 0, - 0, 0,166, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,169, 0, 0, 0,170, 0, 7, 0,171, 0, 7, 0,172, 0, 7, 0,173, 0, - 2, 0,174, 0, 2, 0,175, 0, 2, 0,176, 0, 2, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, - 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0, 57, 0, 7, 0,187, 0, 7, 0,188, 0, - 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, - 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, - 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, - 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, - 7, 0,221, 0, 53, 0, 15, 0, 0, 0,222, 0, 9, 0,223, 0, 0, 0,224, 0, 0, 0,225, 0, 4, 0,226, 0, 4, 0,227, 0, - 9, 0,228, 0, 7, 0,229, 0, 7, 0,230, 0, 7, 0,231, 0, 4, 0,232, 0, 9, 0,233, 0, 9, 0,234, 0, 4, 0,235, 0, - 4, 0, 37, 0, 54, 0, 6, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,236, 0, 7, 0, 67, 0, 4, 0, 64, 0, - 55, 0, 5, 0, 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 64, 0, 2, 0,237, 0, 54, 0,231, 0, 56, 0, 17, 0, 32, 0,164, 0, - 47, 0,238, 0, 57, 0,239, 0, 7, 0,240, 0, 7, 0,241, 0, 2, 0, 17, 0, 2, 0,242, 0, 7, 0,110, 0, 7, 0,111, 0, - 7, 0,243, 0, 4, 0,244, 0, 2, 0,245, 0, 2, 0,246, 0, 4, 0,129, 0, 4, 0,140, 0, 2, 0,247, 0, 2, 0,248, 0, - 58, 0, 22, 0, 2, 0, 19, 0, 2, 0,249, 0, 7, 0,250, 0, 7, 0,251, 0, 2, 0,139, 0, 2, 0,252, 0, 4, 0,253, 0, - 4, 0,254, 0, 32, 0,164, 0, 4, 0,255, 0, 2, 0, 0, 1, 2, 0, 1, 1, 9, 0, 2, 1, 7, 0, 3, 1, 7, 0, 4, 1, - 2, 0, 5, 1, 2, 0, 6, 1, 2, 0, 7, 1, 2, 0, 8, 1, 7, 0, 9, 1, 7, 0, 10, 1, 55, 0, 11, 1, 59, 0, 11, 0, - 4, 0, 12, 1, 4, 0, 13, 1, 2, 0, 14, 1, 2, 0, 19, 0, 2, 0, 15, 1, 2, 0, 37, 0, 32, 0,164, 0, 7, 0, 16, 1, - 4, 0, 17, 1, 0, 0, 18, 1, 7, 0, 19, 1, 52, 0, 61, 0, 27, 0, 31, 0, 39, 0, 75, 0, 7, 0, 20, 1, 7, 0, 21, 1, - 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, - 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, - 7, 0, 38, 1, 7, 0, 39, 1, 2, 0, 40, 1, 2, 0, 41, 1, 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, - 2, 0, 46, 1, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,242, 0, 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, - 4, 0, 51, 1, 4, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, 2, 0, 15, 1, 2, 0,127, 0, 4, 0, 23, 0, 4, 0,124, 0, - 4, 0,125, 0, 4, 0,126, 0, 7, 0, 55, 1, 7, 0, 56, 1, 7, 0,189, 0, 45, 0, 57, 1, 60, 0, 58, 1, 36, 0, 80, 0, - 47, 0,238, 0, 53, 0, 59, 1, 55, 0, 11, 1, 56, 0, 60, 1, 30, 0,150, 0, 58, 0, 61, 1, 59, 0, 62, 1, 0, 0, 63, 1, - 0, 0,181, 0, 61, 0, 8, 0, 7, 0, 64, 1, 7, 0, 65, 1, 7, 0,172, 0, 4, 0, 19, 0, 7, 0, 66, 1, 7, 0, 67, 1, - 7, 0, 68, 1, 32, 0, 45, 0, 62, 0, 84, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 69, 1, - 2, 0,175, 0, 2, 0, 70, 1, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0, 71, 1, 7, 0, 72, 1, - 7, 0, 73, 1, 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1, 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, - 7, 0, 81, 1, 63, 0, 82, 1, 2, 0,249, 0, 2, 0, 70, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0, 83, 1, 7, 0, 84, 1, - 7, 0, 85, 1, 7, 0, 86, 1, 7, 0, 87, 1, 2, 0, 88, 1, 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 0, 0, 92, 1, - 0, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1, 2, 0, 97, 1, 2, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, - 7, 0,101, 1, 7, 0,102, 1, 2, 0,103, 1, 2, 0, 43, 0, 2, 0,104, 1, 2, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, - 7, 0,108, 1, 7, 0,109, 1, 7, 0,110, 1, 7, 0,111, 1, 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, - 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 2, 0,120, 1, 2, 0,121, 1, 4, 0,122, 1, 4, 0,123, 1, - 2, 0,124, 1, 2, 0,125, 1, 2, 0,126, 1, 2, 0,127, 1, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, - 2, 0,132, 1, 2, 0,133, 1, 36, 0, 80, 0, 51, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0, 64, 0, 2, 0, - 27, 0, 31, 0, 36, 0, 80, 0, 65, 0, 18, 0, 7, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 7, 0,141, 1, - 7, 0,142, 1, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1, 2, 0,147, 1, 2, 0,148, 1, 2, 0,149, 1, - 2, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 4, 0,154, 1, 66, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0, - 2, 0,155, 1, 2, 0, 19, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, - 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, - 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, - 7, 0,175, 1, 65, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, - 7, 0,183, 1, 2, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1, 0, 0,187, 1, 0, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, - 2, 0,191, 1, 2, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, 7, 0,195, 1, 7, 0,196, 1, 2, 0,197, 1, 2, 0,198, 1, - 4, 0, 69, 1, 4, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1, 2, 0,202, 1, 2, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, - 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 7, 0,209, 1, 7, 0,210, 1, 7, 0,211, 1, 7, 0,212, 1, 7, 0,213, 1, - 0, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, 4, 0,218, 1, 0, 0,219, 1, 0, 0,104, 1, 0, 0,220, 1, - 0, 0, 63, 1, 2, 0,221, 1, 2, 0,222, 1, 2, 0,135, 1, 2, 0,223, 1, 2, 0,224, 1, 2, 0,225, 1, 7, 0,226, 1, - 7, 0,227, 1, 7, 0,228, 1, 7, 0,229, 1, 7, 0,230, 1, 2, 0,160, 0, 2, 0,161, 0, 55, 0,231, 1, 55, 0,232, 1, - 0, 0,233, 1, 0, 0,234, 1, 0, 0,235, 1, 0, 0,236, 1, 2, 0,237, 1, 2, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, - 51, 0,134, 1, 60, 0, 58, 1, 36, 0, 80, 0, 67, 0,241, 1, 30, 0,150, 0, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, - 7, 0,245, 1, 7, 0,246, 1, 2, 0,247, 1, 2, 0, 70, 0, 7, 0,248, 1, 7, 0,249, 1, 7, 0,250, 1, 7, 0,251, 1, - 7, 0,252, 1, 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, 7, 0, 0, 2, 2, 0, 1, 2, 2, 0, 2, 2, 4, 0, 3, 2, - 4, 0,121, 1, 12, 0, 4, 2, 68, 0, 4, 0, 27, 0, 31, 0, 0, 0, 5, 2, 69, 0, 2, 0, 43, 0,149, 0, 70, 0, 26, 0, - 70, 0, 0, 0, 70, 0, 1, 0, 71, 0, 6, 2, 4, 0, 7, 2, 4, 0, 8, 2, 4, 0, 9, 2, 4, 0, 10, 2, 4, 0, 11, 2, - 4, 0, 12, 2, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 13, 2, 2, 0, 14, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, - 7, 0, 15, 2, 7, 0, 16, 2, 7, 0, 17, 2, 7, 0, 18, 2, 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 23, 0, - 7, 0, 22, 2, 7, 0, 23, 2, 72, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 24, 2, 12, 0, 25, 2, - 12, 0, 26, 2, 36, 0, 80, 0, 66, 0, 27, 2, 0, 0, 19, 0, 0, 0, 28, 2, 2, 0, 29, 2, 2, 0,174, 0, 2, 0, 37, 0, - 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0, 30, 2, 7, 0, 31, 2, 7, 0, 32, 2, 70, 0, 33, 2, 35, 0, 11, 0, - 7, 0, 34, 2, 7, 0, 35, 2, 7, 0, 36, 2, 7, 0,251, 0, 2, 0, 55, 0, 0, 0, 37, 2, 0, 0, 38, 2, 0, 0, 39, 2, - 0, 0, 40, 2, 0, 0, 41, 2, 0, 0, 42, 2, 34, 0, 7, 0, 7, 0, 43, 2, 7, 0, 35, 2, 7, 0, 36, 2, 2, 0, 39, 2, - 2, 0, 42, 2, 7, 0,251, 0, 7, 0, 37, 0, 73, 0, 21, 0, 73, 0, 0, 0, 73, 0, 1, 0, 2, 0, 17, 0, 2, 0, 44, 2, - 2, 0, 42, 2, 2, 0, 19, 0, 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 49, 2, 2, 0, 50, 2, - 2, 0, 51, 2, 2, 0, 52, 2, 7, 0, 53, 2, 7, 0, 54, 2, 34, 0, 49, 0, 35, 0, 50, 0, 2, 0, 55, 2, 2, 0, 56, 2, - 4, 0, 57, 2, 74, 0, 5, 0, 2, 0, 58, 2, 2, 0, 44, 2, 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 70, 0, 75, 0, 4, 0, - 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 0, 7, 0, 59, 2, 76, 0, 68, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, - 12, 0, 60, 2, 12, 0, 25, 2, 12, 0, 61, 2, 32, 0, 62, 2, 32, 0, 63, 2, 32, 0, 64, 2, 36, 0, 80, 0, 77, 0, 65, 2, - 38, 0, 66, 2, 66, 0, 27, 2, 12, 0, 67, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 2, 0,174, 0, 2, 0, 43, 0, - 2, 0, 68, 2, 2, 0, 69, 2, 2, 0, 70, 2, 7, 0, 71, 2, 7, 0, 70, 0, 2, 0, 72, 2, 2, 0, 29, 2, 2, 0, 19, 0, - 2, 0, 73, 2, 7, 0, 74, 2, 7, 0, 75, 2, 7, 0, 76, 2, 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 77, 2, 2, 0, 78, 2, - 4, 0, 79, 2, 34, 0, 80, 2, 2, 0, 23, 0, 2, 0, 95, 0, 2, 0, 67, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, - 7, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, - 0, 0, 92, 2, 78, 0, 93, 2, 79, 0, 94, 2, 0, 0, 95, 2, 68, 0, 96, 2, 68, 0, 97, 2, 68, 0, 98, 2, 68, 0, 99, 2, - 4, 0,100, 2, 7, 0,101, 2, 4, 0,102, 2, 4, 0,103, 2, 75, 0,104, 2, 4, 0,105, 2, 4, 0,106, 2, 74, 0,107, 2, - 74, 0,108, 2, 80, 0, 40, 0, 27, 0, 31, 0, 71, 0, 6, 2, 12, 0,109, 2, 36, 0, 80, 0, 38, 0, 66, 2, 66, 0, 27, 2, - 81, 0,110, 2, 82, 0,111, 2, 83, 0,112, 2, 84, 0,113, 2, 85, 0,114, 2, 86, 0,115, 2, 87, 0,116, 2, 88, 0,117, 2, - 80, 0,118, 2, 89, 0,119, 2, 90, 0,120, 2, 91, 0,121, 2, 91, 0,122, 2, 91, 0,123, 2, 4, 0, 54, 0, 4, 0,124, 2, - 4, 0,125, 2, 4, 0,126, 2, 4, 0,127, 2, 2, 0,174, 0, 2, 0,128, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, - 7, 0,129, 2, 4, 0, 68, 2, 2, 0,130, 2, 2, 0, 19, 0, 2, 0,131, 2, 2, 0,132, 2, 2, 0, 29, 2, 2, 0,133, 2, - 92, 0,134, 2, 93, 0,135, 2, 83, 0, 8, 0, 9, 0,136, 2, 7, 0,137, 2, 4, 0,138, 2, 0, 0, 19, 0, 0, 0,139, 2, - 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 81, 0, 7, 0, 4, 0,142, 2, 4, 0,143, 2, 4, 0,144, 2, 4, 0,145, 2, - 2, 0, 44, 2, 0, 0,146, 2, 0, 0, 19, 0, 85, 0, 5, 0, 4, 0,142, 2, 4, 0,143, 2, 0, 0,147, 2, 0, 0,148, 2, - 2, 0, 19, 0, 94, 0, 2, 0, 4, 0,149, 2, 7, 0, 36, 2, 86, 0, 3, 0, 94, 0,150, 2, 4, 0,151, 2, 4, 0, 19, 0, - 84, 0, 6, 0, 7, 0,152, 2, 2, 0,153, 2, 2, 0, 44, 2, 0, 0, 19, 0, 0, 0,148, 2, 0, 0, 70, 2, 87, 0, 4, 0, - 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 95, 0, 6, 0, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, - 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 96, 0, 1, 0, 7, 0,154, 2, 97, 0, 5, 0, 0, 0,236, 0, 0, 0,182, 0, - 0, 0,183, 0, 0, 0,184, 0, 4, 0, 37, 0, 88, 0, 1, 0, 7, 0,155, 2, 89, 0, 2, 0, 4, 0,156, 2, 4, 0, 17, 0, - 82, 0, 7, 0, 7, 0,137, 2, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, - 98, 0, 1, 0, 7, 0,157, 2, 99, 0, 1, 0, 4, 0,158, 2,100, 0, 1, 0, 0, 0,159, 2,101, 0, 1, 0, 7, 0,137, 2, -102, 0, 3, 0, 4, 0,160, 2, 0, 0, 92, 0, 7, 0,161, 2,104, 0, 4, 0, 7, 0,236, 0, 7, 0,182, 0, 7, 0,183, 0, - 7, 0,184, 0,105, 0, 1, 0,104, 0,138, 2,106, 0, 5, 0, 4, 0,162, 2, 4, 0,163, 2, 0, 0, 19, 0, 0, 0, 44, 2, - 0, 0, 70, 2,107, 0, 2, 0, 4, 0,164, 2, 4, 0,163, 2,108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,165, 2, -105, 0,166, 2,107, 0,167, 2, 4, 0, 54, 0, 4, 0,125, 2, 4, 0,124, 2, 4, 0, 37, 0, 84, 0,168, 2, 92, 0, 14, 0, - 12, 0,169, 2, 84, 0,168, 2, 0, 0,170, 2, 0, 0,171, 2, 0, 0,172, 2, 0, 0,173, 2, 0, 0,174, 2, 0, 0,175, 2, - 0, 0,176, 2, 0, 0, 19, 0, 91, 0,121, 2, 91, 0,123, 2, 2, 0,177, 2, 0, 0,178, 2, 93, 0, 8, 0, 4, 0,179, 2, - 4, 0,180, 2, 81, 0,181, 2, 85, 0,182, 2, 4, 0,125, 2, 4, 0,124, 2, 4, 0, 54, 0, 4, 0, 37, 0,109, 0, 7, 0, -109, 0, 0, 0,109, 0, 1, 0, 4, 0, 17, 0, 4, 0, 69, 1, 0, 0, 20, 0, 46, 0,134, 0, 0, 0,183, 2,110, 0, 7, 0, -109, 0,184, 2, 2, 0,185, 2, 2, 0,169, 2, 2, 0,186, 2, 2, 0, 90, 0, 9, 0,187, 2, 9, 0,188, 2,111, 0, 3, 0, -109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0,112, 0, 5, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0, 2, 0,189, 2, - 0, 0,190, 2,113, 0, 5, 0,109, 0,184, 2, 7, 0, 88, 0, 7, 0,191, 2, 4, 0,192, 2, 4, 0,193, 2,114, 0, 5, 0, -109, 0,184, 2, 32, 0,194, 2, 0, 0, 72, 0, 4, 0, 69, 1, 4, 0, 19, 0,115, 0, 13, 0,109, 0,184, 2, 32, 0,195, 2, - 32, 0,196, 2, 32, 0,197, 2, 32, 0,198, 2, 7, 0,199, 2, 7, 0,200, 2, 7, 0,191, 2, 7, 0,201, 2, 4, 0,202, 2, - 4, 0,203, 2, 4, 0, 90, 0, 4, 0,204, 2,116, 0, 5, 0,109, 0,184, 2, 2, 0,205, 2, 2, 0, 19, 0, 7, 0,206, 2, - 32, 0,207, 2,117, 0, 3, 0,109, 0,184, 2, 7, 0,208, 2, 4, 0, 90, 0,118, 0, 10, 0,109, 0,184, 2, 7, 0,209, 2, - 4, 0,210, 2, 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,211, 2, 2, 0,212, 2, 2, 0,213, 2, 7, 0,214, 2, 0, 0,215, 2, -119, 0, 3, 0,109, 0,184, 2, 7, 0, 37, 0, 4, 0, 17, 0,120, 0, 6, 0,109, 0,184, 2,121, 0,216, 2,122, 0,217, 2, -123, 0,218, 2, 7, 0,219, 2, 4, 0, 17, 0,124, 0, 11, 0,109, 0,184, 2, 52, 0,220, 2, 7, 0,221, 2, 4, 0,222, 2, - 0, 0,215, 2, 7, 0,223, 2, 4, 0,224, 2, 32, 0,225, 2, 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,125, 0, 10, 0, -109, 0,184, 2, 32, 0,228, 2, 47, 0,229, 2, 4, 0, 90, 0, 4, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 0, 0,226, 2, - 4, 0,227, 2, 4, 0, 37, 0,126, 0, 3, 0,109, 0,184, 2, 7, 0,233, 2, 4, 0,234, 2,127, 0, 5, 0,109, 0,184, 2, - 7, 0,235, 2, 0, 0,215, 2, 2, 0, 19, 0, 2, 0,236, 2,128, 0, 8, 0,109, 0,184, 2, 32, 0,164, 0, 7, 0,235, 2, - 7, 0,251, 0, 7, 0,106, 0, 0, 0,215, 2, 2, 0, 19, 0, 2, 0, 17, 0,129, 0, 21, 0,109, 0,184, 2, 32, 0,237, 2, - 0, 0,215, 2, 52, 0,220, 2, 32, 0,225, 2, 2, 0, 19, 0, 2, 0, 37, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, - 7, 0, 74, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,243, 2, 7, 0,244, 2, 4, 0,224, 2, 4, 0,227, 2, 0, 0,226, 2, - 7, 0,245, 2, 7, 0,246, 2, 7, 0, 43, 0,130, 0, 7, 0,109, 0,184, 2, 2, 0,247, 2, 2, 0,248, 2, 4, 0, 70, 0, - 32, 0,164, 0, 7, 0,249, 2, 0, 0,215, 2,131, 0, 10, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0,250, 2, 7, 0,251, 2, - 7, 0,252, 2, 7, 0,244, 2, 4, 0,253, 2, 4, 0,254, 2, 7, 0,255, 2, 0, 0, 20, 0,132, 0, 1, 0,109, 0,184, 2, -133, 0, 7, 0,109, 0,184, 2, 46, 0,134, 0,134, 0, 0, 3,135, 0, 1, 3,136, 0, 2, 3,137, 0, 3, 3, 12, 0, 4, 3, -138, 0, 13, 0,109, 0,184, 2, 84, 0, 5, 3, 84, 0, 6, 3, 84, 0, 7, 3, 84, 0, 8, 3, 84, 0, 9, 3, 84, 0, 10, 3, - 81, 0, 11, 3, 4, 0, 12, 3, 4, 0, 13, 3, 7, 0,219, 2, 7, 0, 37, 0,139, 0, 14, 3,140, 0, 7, 0,109, 0,184, 2, - 84, 0, 5, 3, 84, 0, 15, 3,141, 0, 16, 3,142, 0, 14, 3, 4, 0, 17, 3, 4, 0, 12, 3,143, 0, 4, 0,109, 0,184, 2, - 32, 0,164, 0, 4, 0, 18, 3, 4, 0, 37, 0,144, 0, 2, 0, 4, 0, 19, 3, 7, 0, 36, 2,145, 0, 2, 0, 4, 0,125, 0, - 4, 0, 20, 3,146, 0, 21, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0,215, 2, 2, 0, 21, 3, 2, 0, 19, 0, 2, 0, 69, 1, - 2, 0, 37, 0, 7, 0, 22, 3, 7, 0, 23, 3, 4, 0, 54, 0, 4, 0, 24, 3,145, 0, 25, 3,144, 0, 26, 3, 4, 0, 27, 3, - 4, 0, 28, 3, 4, 0, 29, 3, 4, 0, 20, 3, 7, 0, 30, 3, 7, 0, 31, 3, 7, 0, 32, 3, 9, 0, 33, 3,147, 0, 8, 0, -109, 0,184, 2,148, 0, 34, 3,141, 0, 16, 3, 4, 0, 35, 3, 4, 0, 36, 3, 4, 0, 37, 3, 2, 0, 19, 0, 2, 0, 57, 0, -149, 0, 8, 0,109, 0,184, 2, 32, 0, 45, 0, 2, 0,255, 0, 2, 0, 19, 0, 2, 0,205, 2, 2, 0, 57, 0, 7, 0, 38, 3, - 7, 0, 39, 3,150, 0, 5, 0,109, 0,184, 2, 4, 0, 40, 3, 2, 0, 19, 0, 2, 0, 41, 3, 7, 0, 42, 3,151, 0, 7, 0, -109, 0,184, 2, 84, 0, 43, 3, 4, 0, 44, 3, 0, 0, 45, 3, 0, 0, 46, 3, 0, 0, 47, 3, 0, 0, 48, 3,152, 0, 3, 0, -109, 0,184, 2,153, 0, 49, 3,137, 0, 3, 3,154, 0, 10, 0,109, 0,184, 2, 32, 0, 50, 3, 32, 0, 51, 3, 0, 0, 52, 3, - 7, 0, 53, 3, 2, 0, 54, 3, 2, 0, 55, 3, 0, 0, 56, 3, 0, 0, 57, 3, 0, 0,190, 2,155, 0, 9, 0,109, 0,184, 2, - 32, 0, 58, 3, 0, 0, 52, 3, 7, 0, 59, 3, 7, 0, 60, 3, 0, 0, 69, 1, 0, 0,205, 2, 0, 0, 61, 3, 0, 0, 37, 0, -156, 0, 1, 0,109, 0,184, 2,157, 0, 27, 0, 27, 0, 31, 0, 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 62, 3, 2, 0, 19, 0, - 2, 0, 63, 3, 2, 0, 64, 3, 2, 0, 65, 3, 2, 0, 70, 0, 0, 0, 66, 3, 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 17, 0, - 4, 0, 37, 0, 7, 0, 69, 3, 7, 0, 70, 3, 7, 0, 71, 3, 7, 0, 72, 3, 7, 0, 73, 3, 7, 0, 74, 3, 34, 0, 75, 3, - 36, 0, 80, 0, 38, 0, 66, 2, 86, 0,115, 2, 7, 0, 76, 3, 7, 0, 77, 3,157, 0, 78, 3,158, 0, 3, 0,158, 0, 0, 0, -158, 0, 1, 0, 0, 0, 20, 0, 71, 0, 3, 0, 7, 0, 79, 3, 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,124, 0, 27, 0, 31, 0, - 39, 0, 75, 0,159, 0, 80, 3, 2, 0, 17, 0, 2, 0, 81, 3, 4, 0, 82, 3, 4, 0, 83, 3, 4, 0, 84, 3, 0, 0, 85, 3, - 32, 0, 38, 0, 32, 0, 86, 3, 32, 0, 87, 3, 32, 0, 88, 3, 32, 0, 89, 3, 36, 0, 80, 0, 77, 0, 65, 2, 71, 0, 6, 2, -160, 0, 90, 3,160, 0, 91, 3,161, 0, 92, 3, 9, 0, 2, 0,162, 0, 93, 3, 12, 0, 94, 3, 12, 0,109, 2, 12, 0, 25, 2, - 12, 0, 95, 3, 12, 0, 96, 3, 4, 0, 69, 1, 4, 0, 97, 3, 66, 0, 27, 2, 0, 0, 98, 3, 4, 0, 29, 2, 4, 0, 99, 3, - 7, 0, 64, 1, 7, 0,100, 3, 7, 0,101, 3, 7, 0,172, 0, 7, 0,102, 3, 7, 0, 65, 1, 7, 0,103, 3, 7, 0, 15, 2, - 7, 0,104, 3, 7, 0,105, 3, 7, 0,106, 3, 7, 0,107, 3, 7, 0,108, 3, 7, 0,109, 3, 7, 0,251, 2, 7, 0,110, 3, - 7, 0,240, 0, 4, 0,111, 3, 2, 0, 19, 0, 2, 0,112, 3, 2, 0,113, 3, 2, 0,114, 3, 2, 0,115, 3, 2, 0,116, 3, - 2, 0,117, 3, 2, 0,118, 3, 2, 0,119, 3, 2, 0,120, 3, 2, 0,121, 3, 2, 0,122, 3, 4, 0,123, 3, 4, 0,124, 3, - 4, 0,125, 3, 4, 0,126, 3, 7, 0,127, 3, 7, 0,101, 2, 7, 0,128, 3, 7, 0,129, 3, 7, 0,130, 3, 7, 0,131, 3, - 7, 0,132, 3, 7, 0,215, 0, 7, 0,133, 3, 7, 0,134, 3, 7, 0,135, 3, 7, 0,136, 3, 2, 0,137, 3, 0, 0,138, 3, - 0, 0,139, 3, 0, 0,140, 3, 0, 0,141, 3, 7, 0,142, 3, 7, 0,143, 3, 12, 0,144, 3, 12, 0,145, 3, 12, 0,146, 3, - 12, 0,147, 3, 7, 0,148, 3, 2, 0,156, 2, 2, 0,149, 3, 7, 0,138, 2, 4, 0,150, 3, 4, 0,151, 3,163, 0,152, 3, - 2, 0,153, 3, 2, 0,247, 0, 7, 0,154, 3, 12, 0,155, 3, 12, 0,156, 3, 12, 0,157, 3, 12, 0,158, 3,164, 0, 61, 1, -165, 0,159, 3, 67, 0,160, 3, 2, 0,161, 3, 2, 0,162, 3, 2, 0,163, 3, 2, 0,164, 3, 7, 0,130, 2, 2, 0,165, 3, - 2, 0,166, 3,153, 0,167, 3,141, 0,168, 3,141, 0,169, 3, 4, 0,170, 3, 4, 0,171, 3, 4, 0,172, 3, 4, 0, 70, 0, - 12, 0,173, 3, 12, 0,174, 3, 12, 0,175, 3,166, 0, 14, 0,166, 0, 0, 0,166, 0, 1, 0, 32, 0, 38, 0, 7, 0,251, 2, - 7, 0, 66, 1, 7, 0,252, 2, 7, 0,244, 2, 0, 0, 20, 0, 4, 0,253, 2, 4, 0,254, 2, 4, 0,176, 3, 2, 0, 17, 0, - 2, 0,177, 3, 7, 0,255, 2,167, 0, 12, 0,167, 0, 0, 0,167, 0, 1, 0, 32, 0, 45, 0, 4, 0,178, 3, 4, 0,156, 2, - 4, 0,179, 3, 4, 0, 17, 0, 4, 0,180, 3, 7, 0, 66, 1, 7, 0,181, 3, 7, 0,182, 3, 7, 0,154, 2,164, 0, 40, 0, - 4, 0, 19, 0, 2, 0,183, 3, 2, 0,184, 3, 2, 0,244, 2, 2, 0,185, 3, 2, 0,186, 3, 2, 0,187, 3, 2, 0,188, 3, - 2, 0,189, 3, 7, 0,190, 3, 7, 0,191, 3, 7, 0,192, 3, 7, 0,193, 3, 7, 0,194, 3, 7, 0,195, 3, 7, 0,196, 3, - 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3, 7, 0,204, 3, - 7, 0,205, 3, 7, 0, 37, 0, 7, 0,206, 3, 7, 0,207, 3, 7, 0,208, 3, 7, 0,209, 3, 7, 0,210, 3, 7, 0,211, 3, - 7, 0,212, 3, 7, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, 52, 0,165, 0,168, 0,216, 3, 7, 0,217, 3, 4, 0,193, 2, -169, 0, 5, 0, 67, 0,241, 1, 7, 0,218, 3, 7, 0,219, 3, 2, 0, 19, 0, 2, 0,220, 3,170, 0, 9, 0,170, 0, 0, 0, -170, 0, 1, 0, 4, 0,221, 3, 4, 0,222, 3, 4, 0,223, 3, 4, 0, 19, 0, 4, 0,224, 3, 9, 0,225, 3, 9, 0,226, 3, -137, 0, 19, 0,137, 0, 0, 0,137, 0, 1, 0, 4, 0, 19, 0, 4, 0,227, 3, 4, 0,228, 3, 4, 0,229, 3, 4, 0,230, 3, - 4, 0,231, 3, 4, 0,232, 3, 4, 0,222, 3, 4, 0,156, 2, 4, 0, 57, 0, 0, 0,233, 3, 0, 0,234, 3, 0, 0,235, 3, - 0, 0,236, 3, 12, 0,237, 3,171, 0,238, 3, 9, 0,239, 3,172, 0, 1, 0, 7, 0, 43, 2,163, 0, 30, 0, 4, 0, 19, 0, - 7, 0,240, 3, 7, 0,241, 3, 7, 0,242, 3, 4, 0,243, 3, 4, 0,244, 3, 4, 0,245, 3, 4, 0,246, 3, 7, 0,247, 3, - 7, 0,248, 3, 7, 0,249, 3, 7, 0,250, 3, 7, 0,251, 3, 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, 7, 0,255, 3, - 7, 0, 0, 4, 7, 0, 1, 4, 7, 0, 2, 4, 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, - 7, 0, 8, 4, 4, 0, 9, 4, 4, 0, 10, 4, 7, 0, 11, 4, 7, 0,133, 3,165, 0, 54, 0, 4, 0,222, 3, 4, 0, 12, 4, -173, 0, 13, 4,174, 0, 14, 4, 0, 0, 37, 0, 0, 0, 15, 4, 2, 0, 16, 4, 7, 0, 17, 4, 0, 0, 18, 4, 7, 0, 19, 4, - 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, - 2, 0, 28, 4, 0, 0, 29, 4, 2, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 0, 0, 33, 4, 4, 0,126, 0, 4, 0, 34, 4, - 4, 0, 35, 4, 2, 0, 36, 4, 2, 0, 37, 4,172, 0, 38, 4, 4, 0, 39, 4, 4, 0, 82, 0, 7, 0, 40, 4, 7, 0, 41, 4, - 7, 0, 42, 4, 7, 0, 43, 4, 2, 0, 44, 4, 2, 0, 45, 4, 2, 0, 46, 4, 2, 0, 47, 4, 2, 0, 48, 4, 2, 0, 49, 4, - 2, 0, 50, 4, 2, 0, 51, 4,175, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4,137, 0, 55, 4, 12, 0, 4, 3,169, 0, 56, 4, - 7, 0, 57, 4, 7, 0, 58, 4, 7, 0, 59, 4, 0, 0, 60, 4,153, 0, 49, 0,152, 0, 61, 4, 2, 0, 17, 0, 2, 0, 62, 4, - 2, 0, 63, 4, 2, 0, 64, 4, 7, 0, 65, 4, 2, 0, 66, 4, 2, 0, 67, 4, 7, 0, 68, 4, 2, 0, 69, 4, 2, 0, 70, 4, - 7, 0, 71, 4, 7, 0, 72, 4, 7, 0, 73, 4, 7, 0, 74, 4, 7, 0, 75, 4, 7, 0, 76, 4, 4, 0, 77, 4, 7, 0, 78, 4, - 7, 0, 79, 4, 7, 0, 80, 4, 80, 0, 81, 4, 80, 0, 82, 4, 80, 0, 83, 4, 0, 0, 84, 4, 7, 0, 85, 4, 7, 0, 86, 4, - 36, 0, 80, 0, 2, 0, 87, 4, 0, 0, 88, 4, 0, 0, 89, 4, 7, 0, 90, 4, 4, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, - 4, 0, 94, 4, 4, 0, 19, 0, 7, 0, 95, 4, 7, 0, 96, 4, 7, 0, 97, 4, 84, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, - 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 4, 0,106, 4,176, 0, 76, 0, 27, 0, 31, 0, - 39, 0, 75, 0, 2, 0,175, 0, 2, 0, 70, 1, 2, 0,104, 1, 2, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, - 7, 0,111, 4, 7, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, 7, 0,115, 4, 7, 0,162, 1, 7, 0,164, 1, 7, 0,163, 1, - 7, 0,116, 4, 4, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, - 7, 0,124, 4, 2, 0,125, 4, 2, 0, 69, 1, 2, 0,126, 4, 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, - 2, 0,131, 4, 7, 0,132, 4, 7, 0,133, 4, 7, 0,134, 4, 7, 0,135, 4, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, - 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 7, 0,143, 4, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, - 2, 0,147, 4, 7, 0,148, 4, 7, 0,149, 4, 7, 0,150, 4, 7, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, - 2, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 2, 0,161, 4, 2, 0,162, 4, - 2, 0,163, 4, 2, 0,164, 4, 2, 0,165, 4, 2, 0, 19, 0, 7, 0,166, 4, 7, 0,167, 4, 36, 0, 80, 0, 51, 0,134, 1, - 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0,177, 0, 8, 0,177, 0, 0, 0,177, 0, 1, 0, 4, 0,111, 3, 4, 0,168, 4, - 4, 0, 19, 0, 2, 0,169, 4, 2, 0,170, 4, 32, 0,164, 0,178, 0, 13, 0, 9, 0,171, 4, 9, 0,172, 4, 4, 0,173, 4, - 4, 0,174, 4, 4, 0,175, 4, 4, 0,176, 4, 4, 0,177, 4, 4, 0,178, 4, 4, 0,179, 4, 4, 0,180, 4, 4, 0,181, 4, - 4, 0, 37, 0, 0, 0,182, 4,179, 0, 5, 0, 9, 0,183, 4, 9, 0,184, 4, 4, 0,185, 4, 4, 0, 70, 0, 0, 0,186, 4, -180, 0, 10, 0, 4, 0,187, 4, 4, 0,188, 4, 4, 0,189, 4, 4, 0,190, 4, 4, 0,191, 4, 4, 0,192, 4, 4, 0,193, 4, - 4, 0,194, 4, 4, 0,195, 4, 4, 0,196, 4,181, 0, 15, 0, 4, 0, 17, 0, 4, 0,189, 4, 4, 0,197, 4, 4, 0,198, 4, - 4, 0,199, 4, 4, 0,200, 4, 7, 0,201, 4, 4, 0,202, 4, 4, 0, 90, 0, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, - 4, 0,206, 4, 4, 0,207, 4, 26, 0, 30, 0,182, 0, 7, 0, 4, 0,208, 4, 7, 0,209, 4, 7, 0,210, 4, 7, 0,211, 4, - 4, 0,212, 4, 2, 0, 19, 0, 2, 0, 37, 0,183, 0, 11, 0,183, 0, 0, 0,183, 0, 1, 0, 0, 0, 20, 0, 66, 0,213, 4, - 67, 0,214, 4, 4, 0,111, 3, 4, 0,215, 4, 4, 0,216, 4, 4, 0, 37, 0, 4, 0,217, 4, 4, 0,218, 4,184, 0,135, 0, -178, 0,219, 4,179, 0,220, 4,180, 0,221, 4,181, 0,222, 4, 4, 0, 17, 3, 4, 0,126, 0, 4, 0, 34, 4, 4, 0,223, 4, - 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 2, 0, 19, 0, 2, 0,227, 4, 7, 0,101, 2, 7, 0,228, 4, 7, 0,229, 4, - 7, 0,230, 4, 7, 0,231, 4, 7, 0,232, 4, 2, 0,233, 4, 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,246, 0, - 2, 0,237, 4, 2, 0,238, 4, 2, 0,239, 4, 2, 0,240, 4, 2, 0,241, 4, 2, 0, 91, 1, 2, 0,106, 0, 2, 0,242, 4, - 2, 0,243, 4, 2, 0,244, 4, 2, 0,245, 4, 2, 0,246, 4, 2, 0,247, 4, 2, 0,248, 4, 2, 0,249, 4, 2, 0,250, 4, - 2, 0, 92, 1, 2, 0,251, 4, 2, 0,252, 4, 2, 0,253, 4, 2, 0,254, 4, 4, 0,255, 4, 4, 0, 69, 1, 4, 0, 0, 5, - 2, 0, 1, 5, 2, 0, 2, 5, 2, 0, 3, 5, 2, 0,121, 1, 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, - 24, 0, 8, 5, 24, 0, 9, 5, 23, 0, 10, 5, 12, 0, 11, 5, 2, 0, 12, 5, 2, 0, 37, 0, 7, 0, 13, 5, 7, 0, 14, 5, - 7, 0, 15, 5, 7, 0, 16, 5, 4, 0, 17, 5, 7, 0, 18, 5, 7, 0, 19, 5, 7, 0, 20, 5, 7, 0, 21, 5, 2, 0, 22, 5, - 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5, 2, 0, 27, 5, 7, 0, 28, 5, 7, 0, 29, 5, 7, 0, 30, 5, - 2, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 2, 0, 34, 5, 2, 0, 35, 5, 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, - 2, 0, 39, 5, 2, 0, 40, 5, 4, 0, 41, 5, 4, 0, 42, 5, 4, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 7, 0, 46, 5, - 4, 0, 47, 5, 4, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5, 7, 0, 51, 5, 7, 0, 52, 5, 7, 0, 53, 5, 7, 0, 54, 5, - 7, 0, 55, 5, 7, 0, 56, 5, 7, 0, 57, 5, 7, 0, 58, 5, 7, 0, 59, 5, 0, 0, 60, 5, 0, 0, 61, 5, 4, 0, 62, 5, - 2, 0, 63, 5, 2, 0,238, 1, 0, 0, 64, 5, 7, 0, 65, 5, 7, 0, 66, 5, 4, 0, 67, 5, 4, 0, 68, 5, 7, 0, 69, 5, - 7, 0, 70, 5, 2, 0, 71, 5, 2, 0, 72, 5, 7, 0, 73, 5, 2, 0, 74, 5, 2, 0, 75, 5, 4, 0, 76, 5, 2, 0, 77, 5, - 2, 0, 78, 5, 2, 0, 79, 5, 2, 0, 80, 5, 7, 0, 81, 5, 7, 0, 70, 0, 42, 0, 82, 5, 0, 0, 83, 5,185, 0, 9, 0, -185, 0, 0, 0,185, 0, 1, 0, 0, 0, 20, 0, 2, 0, 84, 5, 2, 0, 85, 5, 2, 0, 86, 5, 2, 0, 43, 0, 7, 0, 87, 5, - 7, 0, 70, 0,186, 0, 7, 0, 2, 0,210, 2, 2, 0, 69, 1, 2, 0,109, 0, 2, 0, 88, 5, 7, 0, 89, 5, 7, 0, 70, 0, - 42, 0, 90, 5,187, 0, 5, 0, 7, 0, 91, 5, 0, 0, 17, 0, 0, 0, 43, 0, 0, 0, 70, 0, 0, 0,238, 1,188, 0, 26, 0, - 7, 0,123, 4, 7, 0,124, 4, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0, 92, 5, 2, 0,136, 1, 2, 0,126, 4, 2, 0,127, 4, - 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, 2, 0,131, 4,187, 0, 93, 5, 2, 0,233, 4, 2, 0,234, 4, 2, 0,235, 4, - 2, 0,236, 4, 2, 0,246, 0, 2, 0,237, 4, 2, 0, 94, 5, 2, 0,238, 4,186, 0, 95, 5, 2, 0, 96, 5, 2, 0,240, 4, - 2, 0,243, 4, 2, 0,244, 4,189, 0, 5, 0,189, 0, 0, 0,189, 0, 1, 0, 4, 0,221, 3, 0, 0,233, 3, 4, 0, 19, 0, -190, 0, 6, 0,191, 0, 97, 5, 4, 0, 98, 5, 4, 0, 99, 5, 9, 0,100, 5, 0, 0,101, 5, 4, 0, 37, 0,192, 0, 6, 0, -190, 0,102, 5, 2, 0, 19, 0, 2, 0,103, 5, 2, 0,104, 5, 2, 0,105, 5, 9, 0,106, 5,193, 0, 4, 0, 2, 0,106, 0, - 2, 0,221, 2, 2, 0,227, 3, 2, 0,107, 5,194, 0, 14, 0, 2, 0, 19, 0, 2, 0,108, 5, 2, 0,109, 5, 2, 0,110, 5, -193, 0,111, 5, 9, 0,106, 5, 7, 0,112, 5, 7, 0, 57, 0, 4, 0,113, 5, 4, 0,114, 5, 4, 0,115, 5, 4, 0,116, 5, - 46, 0,134, 0, 32, 0,164, 0,195, 0, 4, 0,195, 0, 0, 0,195, 0, 1, 0, 0, 0,117, 5, 7, 0,118, 5,196, 0, 6, 0, -190, 0,102, 5, 7, 0,119, 5, 4, 0, 90, 0, 0, 0,120, 5, 0, 0,121, 5, 0, 0,190, 2,197, 0, 7, 0,190, 0,102, 5, - 2, 0, 69, 1, 2, 0, 19, 0, 4, 0, 36, 0, 4, 0,122, 5, 86, 0,123, 5, 9, 0,106, 5,198, 0, 74, 0,197, 0,124, 5, -197, 0,125, 5,196, 0, 80, 3, 7, 0,126, 5, 2, 0,127, 5, 2, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, 2, 0,227, 3, - 2, 0,131, 5, 7, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5, 2, 0,135, 5, 2, 0,113, 5, 2, 0,136, 5, 2, 0,137, 5, - 2, 0,138, 5, 2, 0,139, 5, 7, 0,140, 5, 7, 0,141, 5, 7, 0,142, 5, 2, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5, - 2, 0,146, 5, 2, 0,147, 5, 2, 0,148, 5, 2, 0,149, 5,192, 0,150, 5,194, 0,151, 5, 7, 0,152, 5, 7, 0,153, 5, - 7, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 0, 0,157, 5, 0, 0,158, 5, 0, 0,159, 5, 0, 0,160, 5, 0, 0,161, 5, - 0, 0,162, 5, 2, 0,163, 5, 7, 0,164, 5, 7, 0,165, 5, 7, 0,166, 5, 7, 0,167, 5, 7, 0,168, 5, 7, 0,169, 5, - 7, 0,170, 5, 7, 0,171, 5, 7, 0,172, 5, 7, 0,173, 5, 2, 0,174, 5, 0, 0,175, 5, 0, 0,176, 5, 0, 0,177, 5, - 0, 0,178, 5, 32, 0,179, 5, 0, 0,180, 5, 0, 0,181, 5, 0, 0,182, 5, 0, 0,183, 5, 0, 0,184, 5, 0, 0,185, 5, - 0, 0,186, 5, 0, 0,187, 5, 2, 0,188, 5, 2, 0,189, 5, 2, 0,190, 5, 2, 0,191, 5, 2, 0,192, 5, 4, 0,193, 5, - 4, 0,194, 5,199, 0, 8, 0, 4, 0,195, 5, 4, 0,196, 5, 4, 0,197, 5, 4, 0,198, 5, 4, 0,199, 5, 4, 0,200, 5, - 4, 0, 54, 0, 4, 0,125, 2,200, 0, 3, 0, 7, 0,201, 5, 2, 0,202, 5, 2, 0, 19, 0,201, 0, 2, 0, 7, 0,203, 5, - 4, 0, 19, 0, 46, 0, 38, 0, 27, 0, 31, 0, 39, 0, 75, 0, 32, 0,204, 5,176, 0,205, 5, 46, 0,206, 5, 47, 0,238, 0, - 12, 0,207, 5,177, 0,208, 5, 32, 0,209, 5, 7, 0,210, 5, 7, 0,211, 5, 7, 0,212, 5, 7, 0,213, 5, 4, 0,111, 3, - 2, 0, 19, 0, 2, 0, 63, 1, 60, 0, 58, 1,202, 0,214, 5,198, 0,215, 5,203, 0,216, 5,184, 0,182, 0,182, 0,217, 5, - 12, 0,100, 0, 12, 0,218, 5, 12, 0,219, 5,204, 0,220, 5, 2, 0,221, 5, 2, 0,222, 5, 2, 0,247, 0, 2, 0,223, 5, - 4, 0,224, 5, 4, 0,225, 5, 12, 0,226, 5,187, 0, 93, 5,188, 0,227, 5,200, 0,228, 5,162, 0, 93, 3,201, 0,229, 5, -205, 0, 6, 0, 47, 0,238, 0, 45, 0, 57, 1, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,106, 0, 7, 0,230, 5,206, 0, 36, 0, - 7, 0,231, 5, 7, 0,232, 5, 7, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, - 7, 0,239, 5, 7, 0, 76, 1, 7, 0,240, 5, 7, 0,241, 5, 7, 0,242, 5, 7, 0,243, 5, 7, 0,171, 0, 2, 0,244, 5, - 2, 0,245, 5, 2, 0, 70, 2, 2, 0,246, 5, 2, 0,247, 5, 2, 0,248, 5, 2, 0,249, 5, 7, 0,250, 5, 7, 0,251, 5, - 71, 0,252, 5,162, 0, 93, 3,206, 0,253, 5,207, 0,254, 5,208, 0,255, 5,209, 0, 0, 6,210, 0, 1, 6,211, 0, 2, 6, - 7, 0, 3, 6, 2, 0, 4, 6, 2, 0, 5, 6, 4, 0,238, 1,212, 0, 54, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, - 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 7, 0,239, 5, 7, 0, 76, 1, 7, 0, 43, 0, 4, 0, 10, 6, 2, 0,248, 5, - 2, 0,249, 5, 32, 0,204, 5, 32, 0, 11, 6,205, 0, 12, 6,212, 0,253, 5, 0, 0, 13, 6, 4, 0,111, 3, 4, 0, 14, 6, - 2, 0, 15, 6, 2, 0, 70, 0, 2, 0, 16, 6, 2, 0, 17, 6, 2, 0,238, 1, 2, 0, 19, 0, 2, 0, 28, 2, 2, 0, 18, 6, - 7, 0,112, 0, 7, 0, 19, 6, 7, 0, 20, 6, 7, 0, 21, 6, 7, 0, 22, 6, 7, 0, 23, 6, 7, 0,171, 0, 7, 0,210, 5, - 2, 0, 24, 6, 2, 0,121, 1, 2, 0, 25, 6, 2, 0, 26, 6, 2, 0, 27, 6, 2, 0, 28, 6, 2, 0, 29, 6, 2, 0, 30, 6, - 2, 0, 31, 6, 2, 0, 32, 6, 4, 0, 33, 6, 12, 0, 34, 6, 2, 0, 35, 6, 2, 0,139, 2, 2, 0, 36, 6, 0, 0, 37, 6, - 0, 0, 38, 6, 9, 0, 39, 6,162, 0, 93, 3,214, 0, 25, 0, 24, 0, 36, 0, 24, 0, 64, 0, 23, 0, 40, 6, 23, 0, 41, 6, - 23, 0, 42, 6, 7, 0, 43, 6, 7, 0, 44, 6, 7, 0, 45, 6, 7, 0, 46, 6, 2, 0, 47, 6, 2, 0, 48, 6, 2, 0, 49, 6, - 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 19, 0, 2, 0, 52, 6, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, - 2, 0, 17, 6, 7, 0, 57, 6, 7, 0, 58, 6, 4, 0, 59, 6, 4, 0, 60, 6,213, 0, 6, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,215, 0, 8, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, - 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,216, 0, 61, 6, 46, 0,134, 0,217, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6,218, 0, 63, 6, 12, 0, 64, 6, 2, 0, 69, 1, - 2, 0, 65, 6, 4, 0, 19, 0, 7, 0, 66, 6, 4, 0, 17, 6,219, 0, 20, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, - 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,207, 0,254, 5,214, 0, 62, 6, 2, 0, 67, 6, 2, 0, 68, 6, 2, 0, 69, 6, - 2, 0, 70, 6, 2, 0, 52, 6, 2, 0, 71, 6, 0, 0, 19, 0, 0, 0,136, 1, 9, 0, 65, 2, 4, 0, 72, 6, 4, 0, 73, 6, - 27, 0, 74, 6,220, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, -214, 0, 62, 6, 7, 0, 89, 2, 7, 0, 90, 2, 2, 0, 67, 6, 2, 0, 75, 6, 2, 0, 76, 6, 2, 0, 77, 6, 4, 0, 19, 0, - 7, 0, 78, 6,162, 0, 93, 3,221, 0, 16, 0, 0, 0, 79, 6, 0, 0, 80, 6, 0, 0, 81, 6, 0, 0, 82, 6, 2, 0, 17, 0, - 2, 0, 19, 0, 2, 0, 83, 6, 2, 0, 84, 6, 2, 0,181, 1, 2, 0, 85, 6, 4, 0, 86, 6, 4, 0, 87, 6, 2, 0, 88, 6, - 2, 0, 89, 6, 0, 0, 90, 6, 0, 0, 91, 6,222, 0, 16, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, - 4, 0, 37, 0,221, 0, 92, 6,223, 0, 93, 6, 12, 0, 94, 6, 12, 0, 95, 6,224, 0, 96, 6,211, 0, 97, 6,225, 0, 98, 6, - 2, 0, 99, 6, 2, 0,100, 6, 2, 0,101, 6, 2, 0, 70, 0,226, 0, 17, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, - 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, 12, 0,102, 6,227, 0,103, 6, 0, 0,104, 6,228, 0,105, 6, - 4, 0,106, 6, 4, 0,107, 6, 2, 0, 19, 0, 2, 0,108, 6, 2, 0,109, 6, 2, 0, 37, 0,229, 0, 29, 0,213, 0, 0, 0, -213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 47, 0,229, 2, 45, 0, 57, 1, 63, 0,110, 6, - 2, 0,133, 0, 2, 0,111, 6, 2, 0, 70, 0, 2, 0,112, 6, 4, 0, 19, 0, 2, 0,113, 6, 2, 0,114, 6, 2, 0,115, 6, - 2, 0,238, 1, 0, 0,116, 6, 0, 0,117, 6, 0, 0,118, 6, 0, 0, 17, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 78, 6, - 7, 0,121, 1, 7, 0,119, 6, 7, 0,120, 6,162, 0, 93, 3,230, 0, 11, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, - 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 65, 6, 2, 0, 19, 0, 4, 0, 37, 0,218, 0, 63, 6,214, 0, 62, 6, -231, 0, 27, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 42, 0,121, 6, - 4, 0,122, 6, 4, 0,123, 6, 2, 0, 90, 0, 2, 0,133, 0, 2, 0,124, 6, 0, 0,125, 6, 0, 0,126, 6, 4, 0,127, 6, - 4, 0,128, 6, 4, 0,129, 6, 4, 0,130, 6, 2, 0,131, 6, 2, 0,132, 6, 7, 0,133, 6, 23, 0,134, 6, 23, 0,135, 6, - 4, 0,136, 6, 4, 0,137, 6, 0, 0,138, 6, 0, 0,139, 6,232, 0, 10, 0, 27, 0, 31, 0, 9, 0,140, 6, 9, 0,141, 6, - 9, 0,142, 6, 9, 0,143, 6, 9, 0,144, 6, 4, 0, 90, 0, 4, 0,145, 6, 0, 0,146, 6, 0, 0,147, 6,233, 0, 10, 0, -213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6,232, 0,148, 6, 2, 0, 90, 0, 2, 0,133, 0, - 4, 0, 43, 0, 9, 0,149, 6,234, 0, 8, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, -214, 0, 62, 6, 4, 0, 19, 0, 4, 0,150, 6,235, 0, 23, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, - 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6, 27, 0,151, 6, 27, 0, 81, 0, 2, 0, 19, 0, 2, 0,133, 0, 7, 0,152, 6, - 9, 0,153, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,154, 6, 7, 0,155, 6, 60, 0, 58, 1, 60, 0,156, 6, 4, 0,157, 6, - 2, 0,158, 6, 2, 0, 37, 0,162, 0, 93, 3,236, 0, 10, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, - 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 19, 0, 2, 0,120, 3, 4, 0, 37, 0,162, 0, 93, 3,237, 0, 42, 0,213, 0, 0, 0, -213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6,223, 0, 93, 6, 0, 0, 79, 6, - 0, 0, 80, 6, 0, 0, 81, 6, 2, 0, 17, 0, 2, 0, 89, 6, 2, 0, 19, 0, 2, 0, 83, 6, 9, 0,153, 6, 4, 0, 86, 6, - 4, 0,159, 6, 4, 0,160, 6, 4, 0, 87, 6, 23, 0,161, 6, 23, 0,162, 6, 7, 0,163, 6, 7, 0,164, 6, 7, 0,165, 6, - 7, 0,152, 6, 2, 0,166, 6, 2, 0,237, 0, 2, 0,181, 1, 2, 0, 85, 6, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0,167, 6, - 2, 0,168, 6, 9, 0,169, 6, 9, 0,170, 6, 9, 0,171, 6, 9, 0,172, 6, 9, 0,173, 6, 2, 0,174, 6, 0, 0, 91, 6, - 57, 0,175, 6,238, 0, 7, 0,238, 0, 0, 0,238, 0, 1, 0, 4, 0,176, 6, 4, 0, 23, 0, 0, 0, 84, 0, 4, 0,177, 6, - 4, 0, 17, 0,239, 0, 14, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, - 4, 0, 17, 0, 4, 0,178, 6, 4, 0, 19, 0, 4, 0,124, 6, 12, 0,179, 6, 12, 0,180, 6, 0, 0,181, 6, 0, 0,182, 6, -240, 0, 5, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 4, 0, 37, 0,241, 0, 7, 0,241, 0, 0, 0, -241, 0, 1, 0, 0, 0,183, 6, 2, 0,184, 6, 2, 0,185, 6, 2, 0,186, 6, 2, 0, 37, 0,242, 0, 12, 0, 2, 0,185, 6, - 2, 0,187, 6, 2, 0,188, 6, 0, 0,190, 2, 2, 0,189, 6, 2, 0,190, 6, 2, 0,191, 6, 2, 0,192, 6, 2, 0,193, 6, - 2, 0, 52, 6, 7, 0,194, 6, 7, 0,195, 6,243, 0, 18, 0,243, 0, 0, 0,243, 0, 1, 0, 0, 0,233, 3,242, 0,196, 6, -242, 0,197, 6,242, 0,198, 6,242, 0,199, 6, 7, 0,200, 6, 2, 0,201, 6, 2, 0,202, 6, 2, 0,203, 6, 2, 0,204, 6, - 2, 0,205, 6, 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, 2, 0,209, 6, 2, 0,210, 6,244, 0, 10, 0, 0, 0,211, 6, - 0, 0,212, 6, 0, 0,213, 6, 0, 0,214, 6, 0, 0,215, 6, 0, 0,216, 6, 2, 0,217, 6, 2, 0,218, 6, 2, 0,219, 6, - 2, 0, 37, 0,245, 0, 8, 0, 0, 0,220, 6, 0, 0,221, 6, 0, 0,222, 6, 0, 0,223, 6, 0, 0,224, 6, 0, 0,225, 6, - 7, 0,230, 5, 7, 0, 37, 0,246, 0, 17, 0,244, 0,226, 6,244, 0,227, 6,244, 0,228, 6,244, 0,229, 6,244, 0,230, 6, -244, 0,231, 6,244, 0,232, 6,244, 0,233, 6,244, 0,234, 6,244, 0,235, 6,244, 0,236, 6,244, 0,237, 6,244, 0,238, 6, -244, 0,239, 6,244, 0,240, 6,245, 0,241, 6, 0, 0,242, 6,247, 0, 71, 0, 0, 0,243, 6, 0, 0,244, 6, 0, 0,215, 6, - 0, 0,245, 6, 0, 0,246, 6, 0, 0,247, 6, 0, 0,248, 6, 0, 0,249, 6, 0, 0,250, 6, 0, 0,251, 6, 0, 0,252, 6, +115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0,112, 97,100, 50, 91, 50, 93, 0, 42,101,118,101,110,116,115, +116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0, +100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, + 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112, +114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101, +121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, + 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42, +109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0,102,105,108,116,101,114, 91, + 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,114,101,112,111,114, +116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, + 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101, +114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97, +115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101, +102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108, +101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102, +105, 99, 97,116,105,111,110, 0, 42,114,110, 97, 95,112, 97,116,104, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0,105,100, +116,121,112,101, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0, +118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0, +102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112, +115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110, +100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,116,101,109,112,108, + 97,116,101,115, 0,103,114,111,117,112,109,111,100,101, 0,112, 97,116,104,115, 0,107,101,121,105,110,103,102,108, 97,103, 0, + 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, + 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98, +108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108, +117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115, +105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117, +101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108, +116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116, +105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, + 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115, +115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97, 99, 99,117,114, 97, 99,121, 0, 97,105, +114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97, +120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115, +112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112, +101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97, +110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, + 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 0, 42,102,108,117,105,100, 95,103,114,111, +117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95, +115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109, +101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0, +109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112, +101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119, +116, 0,118, 51,100,110,117,109, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101, +115, 91, 50, 93, 0,118,101,108,111, 99,105,116,121, 91, 51, 93, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, + 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118, +103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95, +111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 0, 84, 89, 80, 69,199, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115, +104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, + 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, + 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,105, 0,118,101, 99, 50,102, 0,118,101, 99, 50,100, 0,118,101, 99, 51, +105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,100, 0,118,101, 99, 52,105, 0,118,101, 99, 52,102, 0,118,101, 99, 52,100, 0, +114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101, +114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73, +109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, + 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, + 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101, +120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, + 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101, +114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, + 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101, +110,115,105,116,121, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112, +112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 87, 97,118,101, 0, 86,111,108,117, +109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, + 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, + 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 67,117,114,118,101, + 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, + 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114, +109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77, +101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86, +105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, + 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, + 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114, +105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115,112,115, 0, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 69, + 82, 84, 95, 80, 66, 86, 72, 95, 85, 80, 68, 65, 84, 69, 32, 40, 49, 60, 60, 55, 41, 32, 32, 35,100,101,102,105,110,101, 32, 77, + 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 32, 40, 49, 60, 60, 49, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, + 77, 32, 40, 49, 60, 60, 50, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 71, 79, 78, 32, 40, 49, 60, 60, 51, 41, 32, + 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 32, 40, 49, 60, 60, 53, 41, 32, 35,100, +101,102,105,110,101, 32, 77, 69, 95, 76, 79, 79, 83, 69, 69, 68, 71, 69, 32, 40, 49, 60, 60, 55, 41, 32, 35,100,101,102,105,110, +101, 32, 77, 69, 95, 83, 69, 65, 77, 95, 76, 65, 83, 84, 32, 40, 49, 60, 60, 56, 41, 32, 35,100,101,102,105,110,101, 32, 77, 69, + 95, 83, 72, 65, 82, 80, 32, 40, 49, 60, 60, 57, 41, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, + 49, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 50, 32, 50, 32, 35,100,101,102,105,110,101, 32, + 77, 69, 95, 70, 76, 73, 80, 86, 51, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 32, 56, 32, + 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 89, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, + 80, 82, 79, 74, 88, 90, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, 90, 32, 54, 52, 32, 32, + 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 50, 86, + 51, 32, 50, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, + 95, 86, 51, 86, 52, 32, 52, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 52, 86, 49, 32, 56, 32, 32, 35,100,101,102,105, +110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 65, 67, 69, 95, 83, + 69, 76, 32, 50, 32, 32, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 83, 69,108, 32, 48, 32, 35,100,101,102,105,110,101, + 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 32, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 83, 69, 76, 32, 50, 32, 32, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, 49, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 67, + 84, 73, 86, 69, 32, 50, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 49, 32, 52, 32, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 83, 69, 76, 50, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 51, 32, 49, 54, 32, 35, +100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 52, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, + 69, 32, 54, 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 89, 78, 65, 77, 73, 67, 32, 49, 32, 35,100,101,102, +105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, 84, 32, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, + 88, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 32, 56, 32, 35,100,101,102, +105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 32, 49, 54, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, + 68, 67, 79, 76, 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, 32, 49, 50, 56, 32, 32, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 32, 50, 53, 54, 32, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 84, 87, 79, 83, 73, 68, 69, 32, 53, 49, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 73, 78, 86, 73, 83, 73, 66, + 76, 69, 32, 49, 48, 50, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, 66, 67, 79, 76, 32, 50, 48, 52, 56, 32, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, 32, 52, 48, 57, 54, 32, 32, 35,100,101,102,105,110, +101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 32, 56, 49, 57, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 77, 70, 79, + 78, 84, 32, 49, 54, 51, 56, 52, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 79, 76, 73, 68, 32, 48, 32, 35,100,101, +102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 32, 49, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 32, 50, + 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 32, 52, 32, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, + 83, 85, 66, 32, 51, 32, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 49, 32, 49, 32, + 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 50, 32, 50, 32, 35,100,101,102,105,110,101, + 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 32, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, + 82, 69, 67, 65, 84, 69, 68, 52, 32, 56, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 49, 32, 49, 54, 32, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 32, 51, 50, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, + 32, 54, 52, 32, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, 32, 49, 50, 56, 32, 35,101,110,100,105,102, 32,105, + 97,108, 32,108,101,118,101,108, 32, 49, 32,100, 97,116, 97, 32,116,104, 97,116, 32, 99, 97,110,110,111,116, 32, 98,101, 32,109, +111,100,105,102,105,101,100, 32,102,114,111,109, 32,111,116,104,101,114, 32,108,101,118,101,108,115, 32, 42, 47, 10, 9, 67,117, +115,116,111,109, 68, 97,116, 97, 32,118,100, 97,116, 97, 59, 10, 9, 67,117,115,116,111,109, 68, 97,116, 97, 32,102,100, 97,116, + 97, 59, 10, 9,115,104,111,114,116, 32, 42,101,100,103,101, 95,102,108, 97,103,115, 59, 10, 9, 99,104, 97,114, 32, 42,101,100, +103,101, 95, 99,114,101, 97,115,101,115, 59, 10,125, 32, 77,117,108,116,105,114,101,115, 59, 10, 10, 47, 42, 42, 32, 69,110,100, + 32, 77,117,108,116,105,114,101,115, 32, 42, 42, 47, 10, 10,116,121,112,101,100,101,102, 32,115,116,114,117, 99,116, 32, 80, 97, +114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 32,123, 10, 9,117,110,115,105,103,110,101,100, 32,105,110,116, 32, + 42,118,101,114,116, 95,109, 97,112, 59, 32, 47, 42, 32,118,101,114,116, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, + 93, 61, 32, 78,101,119, 32, 73,110,100,101,120, 32, 42, 47, 10, 9,105,110,116, 32, 42,101,100,103,101, 95,109, 97,112, 59, 32, + 47, 42, 32,101,100,103,101, 95,109, 97,112, 91, 79,108,100, 32, 73,110,100,101,120, 93, 61, 32, 78,101,119, 32, 73,110,100,101, +120, 44, 32, 45, 49, 61, 32,104,105,100,100,101,110, 32, 42, 47, 10, 9, 77, 70, 97, 99,101, 32, 42,111,108,100, 95,102, 97, 99, +101,115, 59, 10, 9, 77, 69,100,103,101, 32, 42,111,108,100, 95,101,100,103,101,115, 59, 10, 9,117,110,115,105,103,110,101,100, + 32,105,110,116, 32,116,111,116,102, 97, 99,101, 44, 32,116,111,116,101,100,103,101, 44, 32,116,111,116,118,101,114,116, 44, 32, +112, 97,100, 59, 10,125, 32, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 59, 10, 10, 47, 42, 32,109,118, +101,114,116, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, + 77, 69, 95, 83, 80, 72, 69, 82, 69, 84, 69, 83, 84, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 69, 82, 84, + 95, 84, 77, 80, 95, 84, 65, 71, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 72, 73, 68, 69, 9, 9, 9, 9, 49, + 54, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 69, 82, 84, 95, 77, 69, 82, 71, 69, 68, 9, 9, 40, 49, 60, 60, 54, 41, + 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 69, 82, 84, 95, 80, 66, 86, 72, 95, 85, 80, 68, 65, 84, 69, 9, 40, 49, 60, + 60, 55, 41, 10, 10, 47, 42, 32,109,101,100,103,101, 45, 62,102,108, 97,103, 32, 40, 49, 61, 83, 69, 76, 69, 67, 84, 41, 42, 47, + 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 68, 71, 69, 68, 82, 65, 87, 9, 9, 9, 40, 49, 60, 60, 49, 41, 10, 35,100, +101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 9, 9, 9, 9, 40, 49, 60, 60, 50, 41, 10, 35,100,101,102,105,110,101, 32, + 77, 69, 95, 70, 71, 79, 78, 9, 9, 9, 9, 40, 49, 60, 60, 51, 41, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,114,101,115,101,114, +118,101, 32, 49, 54, 32,102,111,114, 32, 77, 69, 95, 72, 73, 68, 69, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, + 69, 68, 71, 69, 82, 69, 78, 68, 69, 82, 9, 9, 40, 49, 60, 60, 53, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 76, 79, + 79, 83, 69, 69, 68, 71, 69, 9, 9, 40, 49, 60, 60, 55, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 69, 65, 77, 95, + 76, 65, 83, 84, 9, 9, 40, 49, 60, 60, 56, 41, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 72, 65, 82, 80, 9, 9, 9, + 40, 49, 60, 60, 57, 41, 10, 10, 47, 42, 32,112,117,110,111, 32, 61, 32,118,101,114,116,101,120,110,111,114,109, 97,108, 32, 40, +109,102, 97, 99,101, 41, 32, 42, 47, 10, 47, 42, 32,114,101,110,100,101,114, 32, 97,115,115,117,109,101,115, 32,102,108,105,112, +115, 32,116,111, 32, 98,101, 32,111,114,100,101,114,101,100, 32,108,105,107,101, 32,116,104,105,115, 32, 42, 47, 10, 35,100,101, +102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 49, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, + 80, 86, 50, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 51, 9, 9, 52, 10, 35,100,101,102, +105,110,101, 32, 77, 69, 95, 70, 76, 73, 80, 86, 52, 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, + 88, 89, 9, 9, 49, 54, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 88, 90, 9, 9, 51, 50, 10, 35,100,101, +102,105,110,101, 32, 77, 69, 95, 80, 82, 79, 74, 89, 90, 9, 9, 54, 52, 10, 10, 47, 42, 32,101,100, 99,111,100,101, 32, 40,109, +102, 97, 99,101, 41, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 49, 86, 50, 9, 9, 9, 49, 10, 35,100,101, +102,105,110,101, 32, 77, 69, 95, 86, 50, 86, 51, 9, 9, 9, 50, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 49, + 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 51, 86, 52, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, + 32, 77, 69, 95, 86, 52, 86, 49, 9, 9, 9, 56, 10, 10, 47, 42, 32,102,108, 97,103, 32, 40,109,102, 97, 99,101, 41, 32, 42, 47, + 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 83, 77, 79, 79, 84, 72, 9, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 77, + 69, 95, 70, 65, 67, 69, 95, 83, 69, 76, 9, 9, 9, 50, 10, 9, 9, 9, 9, 9, 9, 47, 42, 32,102,108, 97,103, 32, 77, 69, 95, + 72, 73, 68, 69, 61, 61, 49, 54, 32,105,115, 32,117,115,101,100, 32,104,101,114,101, 32,116,111,111, 32, 42, 47, 32, 10, 47, 42, + 32,109,115,101,108,101, 99,116, 45, 62,116,121,112,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 86, 83, 69, +108, 9, 48, 10, 35,100,101,102,105,110,101, 32, 77, 69, 95, 69, 83, 69,108, 32, 49, 10, 35,100,101,102,105,110,101, 32, 77, 69, + 95, 70, 83, 69, 76, 32, 50, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,102,108, 97,103, 32, 42, 47, 10, 35,100,101,102, +105,110,101, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 9, 49, 32, 47, 42, 32,117,115,101, 32, 77, 70, 97, 99,101, 32,104,105,100, +101, 32,102,108, 97,103, 32, 40, 97,102,116,101,114, 32, 50, 46, 52, 51, 41, 44, 32,115,104,111,117,108,100, 32, 98,101, 32, 97, + 98,108,101, 32,116,111, 32,114,101,117,115,101, 32, 97,102,116,101,114, 32, 50, 46, 52, 52, 32, 42, 47, 10, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 65, 67, 84, 73, 86, 69, 9, 50, 32, 47, 42, 32,100,101,112,114,101, 99, 97,116,101,100, 33, 32, 42, 47, + 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 49, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, + 69, 76, 50, 9, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 69, 76, 51, 9, 9, 49, 54, 10, 35,100,101,102,105, +110,101, 32, 84, 70, 95, 83, 69, 76, 52, 9, 9, 51, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 72, 73, 68, 69, 9, 9, + 54, 52, 32, 47, 42, 32,117,110,117,115,101,100, 44, 32,115, 97,109,101, 32, 97,115, 32, 84, 70, 95, 83, 69, 76, 69, 67, 84, 32, + 42, 47, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,109,111,100,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 68, 89, 78, 65, 77, 73, 67, 9, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 76, 80, 72, 65, 83, 79, 82, + 84, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 84, 69, 88, 9, 9, 9, 52, 10, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 83, 72, 65, 82, 69, 68, 86, 69, 82, 84, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 76, 73, 71, 72, 84, 9, + 9, 49, 54, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 82, 69, 68, 67, 79, 76, 9, 54, 52, 10, 35,100,101, +102,105,110,101, 32, 84, 70, 95, 84, 73, 76, 69, 83, 9, 9, 49, 50, 56, 9, 9, 47, 42, 32,100,101,112,114,101, 99, 97,116,101, +100, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 9, 50, 53, 54, 10, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 84, 87, 79, 83, 73, 68, 69, 9, 9, 53, 49, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, + 95, 73, 78, 86, 73, 83, 73, 66, 76, 69, 9, 49, 48, 50, 52, 10, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 79, 66, 67, 79, + 76, 9, 9, 50, 48, 52, 56, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 66, 73, 76, 76, 66, 79, 65, 82, 68, 50, 9, 52, 48, + 57, 54, 9, 47, 42, 32,119,105,116,104, 32, 90, 32, 97,120,105,115, 32, 99,111,110,115,116,114, 97,105,110,116, 32, 42, 47, 10, + 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 72, 65, 68, 79, 87, 9, 9, 56, 49, 57, 50, 10, 35,100,101,102,105,110,101, 32, + 84, 70, 95, 66, 77, 70, 79, 78, 84, 9, 9, 49, 54, 51, 56, 52, 10, 10, 47, 42, 32,109,116,102, 97, 99,101, 45, 62,116,114, 97, +110,115,112, 44, 32,118, 97,108,117,101,115, 32, 49, 45, 52, 32, 97,114,101, 32,117,115,101,100, 32, 97,115, 32,102,108, 97,103, +115, 32,105,110, 32,116,104,101, 32, 71, 76, 44, 32, 87, 65, 82, 78, 73, 78, 71, 44, 32, 84, 70, 95, 83, 85, 66, 32, 99, 97,110, +116, 32,119,111,114,107, 32,119,105,116,104, 32,116,104,105,115, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, + 79, 76, 73, 68, 9, 48, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 65, 68, 68, 9, 9, 49, 10, 35,100,101,102,105,110,101, + 32, 84, 70, 95, 65, 76, 80, 72, 65, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 67, 76, 73, 80, 9, 9, 52, 32, 47, + 42, 32, 99,108,105,112,109, 97,112, 32, 97,108,112,104, 97, 47, 98,105,110, 97,114,121, 32, 97,108,112,104, 97, 32, 97,108,108, + 32,111,114, 32,110,111,116,104,105,110,103, 33, 32, 42, 47, 10, 10, 47, 42, 32,115,117, 98, 32,105,115, 32,110,111,116, 32, 97, +118, 97,105,108, 97, 98,108,101, 32,105,110, 32,116,104,101, 32,117,115,101,114, 32,105,110,116,101,114,102, 97, 99,101, 32, 97, +110,121,109,111,114,101, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 83, 85, 66, 9, 9, 51, 10, 10, 10, 47, 42, + 32,109,116,102, 97, 99,101, 45, 62,117,110,119,114, 97,112, 32, 42, 47, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, + 80, 82, 69, 67, 65, 84, 69, 68, 49, 9, 49, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, + 68, 50, 9, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 51, 9, 52, 10, 35,100, +101,102,105,110,101, 32, 84, 70, 95, 68, 69, 80, 82, 69, 67, 65, 84, 69, 68, 52, 9, 56, 10, 35,100,101,102,105,110,101, 32, 84, + 70, 95, 80, 73, 78, 49, 9, 9, 32, 32, 32, 32, 49, 54, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 50, 9, 9, + 32, 32, 32, 32, 51, 50, 10, 35,100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 51, 9, 32, 32, 32, 9, 9, 54, 52, 10, 35, +100,101,102,105,110,101, 32, 84, 70, 95, 80, 73, 78, 52, 9, 32, 32, 32, 32, 9, 49, 50, 56, 10, 10, 35,101,110,100,105,102, 10, + 44, 32,108, 79, 67, 75, 33,115,101,108,101, 99,116,101,100, 32, 98,112,111,105,110,116, 32, 42, 47, 10, 9, 66, 80,111,105,110, +116, 32, 42,108, 97,115,116,115,101,108, 98,112, 59, 10, 9, 10, 9, 47, 42, 32,102,111,110,116, 32,112, 97,114,116, 32, 42, 47, + 10, 9,115,104,111,114,116, 32,108,101,110, 44, 32,108,105,110,101,115, 44, 32,112,111,115, 44, 32,115,112, 97, 99,101,109,111, +100,101, 59, 10, 9,102,108,111, 97,116, 32,115,112, 97, 99,105,110,103, 44, 32,108,105,110,101,100,105,115,116, 44, 32,115,104, +101, 97,114, 44, 32,102,115,105,122,101, 44, 32,119,111,114,100,115,112, 97, 99,101, 44, 32,117,108,112,111,115, 44, 32,117,108, +104,101,105,103,104,116, 59, 10, 9,102,108,111, 97,116, 32,120,111,102, 44, 32,121,111,102, 59, 10, 9,102,108,111, 97,116, 32, +108,105,110,101,119,105,100,116,104, 59, 10, 70, 82, 69, 69, 8, 25, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117, +108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105, +114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, 68, 97, +116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111, +100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105, +108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, + 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, + 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, +109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116, +105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, + 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, + 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105, +102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114, +109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111, +100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103, +115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67, +111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114, +102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, + 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111, +114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100, +105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108, +101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100, +105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70, +108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116, +105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112, +108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100, +105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, + 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111, +110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 66,117,108,108,101,116, 83,111, +102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111, +111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104, +116,115, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116, +101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99, +104, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116, +105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105, +110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99, +101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, + 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109, +101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97, +103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, + 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, 84,114, 97,110,115,102,111,114,109, + 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101, +116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, + 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97, +103, 70,111,114,101,115,116, 0, 66, 71,112,105, 99, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101, +114, 73,110,102,111, 0, 82,101,116,111,112,111, 86,105,101,119, 68, 97,116, 97, 0, 86,105,101,119, 68,101,112,116,104,115, 0, + 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83, +112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 98, 83, 99,114,101,101, +110, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, + 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70, +105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111, +117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, + 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101, +120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 0, + 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, + 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85, +115,101,114, 80,114,101,102, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121, +108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67, +111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105, +114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101, +102, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112, +101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101, +103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105, +112, 69,108,101,109, 0, 84, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, + 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105, +112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, + 98, 83,111,117,110,100, 0, 83,111,117,110,100, 72, 97,110,100,108,101, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112, +101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108, +105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102, +101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97, +118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117, +115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83, +101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83, +101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110, +115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, + 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97, +103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111, +121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121, +116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116, +117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 98, 83,111,117,110,100, 65, 99,116,117, + 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, + 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111, +114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, + 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116, +111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111, +114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, + 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, + 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, + 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 70,114,101,101, 67, 97, +109,101,114, 97, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, + 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 77,111,116,105, +111,110, 80, 97,116,104, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 80,111,115,101, 67,104, 97, +110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117, +112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111, +110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110, +115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111, +110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, + 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110, +115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76, +105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67, +111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74, +111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110, +116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67, +111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82, +111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115, +116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114, +105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101, +114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83, +111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 0, 98, 78,111,100,101, 80,114,101,118,105, +101,119, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110, +105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111, +100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78, +111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, + 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111, +100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105, +112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100, +101, 76,101,110,115, 68,105,115,116, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, + 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, + 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105, +114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111, +105,100, 68, 97,116, 97, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114, +103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, + 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110, +103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, + 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, + 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82, +101,112,111,114,116, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, + 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, + 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, + 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84, +121,112,101, 0, 70, 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111, +100, 95, 70,117,110, 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, + 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, + 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115, +101, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111, +105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101, +114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105, +110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, + 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, + 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111, +119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105, +100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, + 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 0, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0, 16, 0, 16, 0, 32, 0, 16, 0, + 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0,152, 4,112, 0, 36, 0, 56, 0,112, 0,128, 0,168, 0, 96, 0, + 40, 0, 48, 0,176, 0, 16, 0,152, 0, 40, 0, 40, 6,184, 1, 0, 0, 0, 0, 0, 0, 16, 1,104, 1,120, 1, 24, 0, 8, 3, +200, 0, 0, 0, 88, 0, 32, 1,248, 0,136, 0,248, 1, 56, 1, 80, 0, 88, 0, 32, 3,104, 0, 88, 1, 0, 0,128, 0,104, 0, +208, 0, 80, 0, 8, 0, 16, 0,216, 1, 0, 0, 0, 0, 0, 0,168, 1, 20, 0, 48, 0, 64, 0, 24, 0, 12, 0, 16, 0, 4, 0, + 8, 0, 8, 0, 0, 0, 40, 0,128, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 16, 0, 0, 0, + 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 72, 0, 96, 0,112, 0,120, 0, 88, 0,120, 0,152, 0, 88, 0, 80, 0,128, 0, 80, 0, +104, 0,248, 0, 56, 0,192, 0,176, 0,216, 0, 80, 0,112, 0,128, 0,216, 0,128, 0,240, 0, 72, 0,128, 0, 0, 0,144, 0, + 32, 0, 8, 2,152, 0, 0, 0,112, 0, 0, 0, 0, 0, 88, 0, 8, 0, 8, 0, 16, 1,104, 0,240, 1, 96, 0, 88, 0, 80, 0, + 88, 0,192, 1,136, 0,128, 0, 72, 0,128, 0,232, 0, 48, 0, 0, 0,144, 0, 88, 0,104, 0,120, 0,152, 0,120, 1,224, 0, +192, 0, 0, 0, 72, 0,168, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,224, 1, 40, 0,184, 0,152, 0, 40, 0, 64, 0, 24, 0, + 88, 0, 64, 4, 64, 0, 24, 0, 16, 0, 96, 0, 96, 0, 32, 0, 40, 1, 48, 0, 8, 0,112, 0, 88, 0, 56, 0, 64, 0,120, 1, + 32, 0, 8, 0, 16, 0, 48, 2, 0, 0, 0, 0, 64, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 56, 0,152, 0, + 72, 0,208, 0,248, 0, 32, 0, 0, 1,248, 0,208, 1,104, 0, 0, 0,160, 0, 0, 0, 40, 1, 16, 0, 16, 0,168, 0,224, 0, +144, 2,120, 2, 64, 0,200, 0, 32, 1, 72, 0,208, 2, 40, 0,144, 1, 40, 0, 24, 1, 32, 0,232, 0, 32, 0, 32, 0, 80, 2, + 16, 1, 16, 0,216, 21, 56, 0,248, 11, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 24, 1, 80, 0, + 48, 0, 16, 0, 8, 0, 52, 0, 0, 1, 32, 1,200, 1, 8, 1, 48, 1, 64, 0, 32, 0, 12, 0, 24, 0, 52, 0, 16, 0, 24, 0, + 24, 0, 32, 0, 72, 1, 0, 0, 64, 0, 64, 0, 48, 0, 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0, +108, 0, 72, 0, 72, 0, 96, 0,104, 0, 60, 0,128, 0, 80, 0, 80, 0, 16, 0, 96, 0, 72, 0, 32, 0, 88, 0, 24, 0, 80, 0, +112, 0, 84, 0, 32, 0, 96, 0, 56, 0, 56, 0,112, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0,224, 0, 40, 0, + 40, 1,200, 0, 16, 0, 24, 0, 24, 0, 0, 2, 4, 0, 40, 0,120, 0, 8, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0,120, 0, + 24, 0, 56, 0, 48, 0, 48, 0, 72, 0, 48, 0, 72, 0, 48, 0, 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, 28, 0, + 28, 0, 28, 0, 56, 0, 24, 0, 72, 0,168, 0, 40, 0,144, 0, 56, 0,232, 0, 0, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, + 12, 0, 12, 0, 16, 1, 40, 0, 8, 0, 8, 0, 64, 0, 32, 0, 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 32, 0, 12, 0, 56, 0, + 24, 0, 72, 0,240, 0, 24, 0, 56, 0, 56, 0, 20, 0, 64, 0, 40, 0, 32, 0,192, 0, 8, 2,104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 32, 0, 0, 1,224, 0,232, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,120, 0, + 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0,112, 0, 40, 1, 16, 0,104, 0, 0, 1, 40, 0, +200, 0,104, 0,112, 0,104, 0, 32, 0, 80, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0, 0, 0, + 83, 84, 82, 67,140, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, + 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, + 4, 0, 5, 0, 4, 0, 6, 0, 15, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, + 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 18, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, + 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 20, 0, 4, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, + 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, + 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, + 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, + 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, 26, 0, 1, 0, 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, + 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, 4, 0, 24, 0, 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, + 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, 2, 0, 19, 0, 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, + 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, + 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0, 2, 0, 43, 0, 4, 0, 44, 0, 31, 0, 6, 0, + 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 48, 0, 33, 0, 21, 0, 33, 0, 0, 0, + 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, 24, 0, 52, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 53, 0, + 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, 2, 0, 57, 0, 7, 0, 11, 0, 7, 0, 12, 0, 4, 0, 58, 0, + 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, 36, 0, 7, 0, 27, 0, 31, 0, 12, 0, 63, 0, 24, 0, 64, 0, + 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, 37, 0, 16, 0, 37, 0, 0, 0, 37, 0, 1, 0, 7, 0, 67, 0, + 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, 2, 0, 19, 0, 4, 0, 69, 0, 4, 0, 70, 0, 9, 0, 2, 0, + 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, 7, 0, 74, 0, 38, 0, 13, 0, 27, 0, 31, 0, 39, 0, 75, 0, + 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, 12, 0, 79, 0, 36, 0, 80, 0, 27, 0, 81, 0, 2, 0, 17, 0, + 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 6, 0, 40, 0, 0, 0, 40, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, + 4, 0, 23, 0, 4, 0, 86, 0, 41, 0, 10, 0, 41, 0, 0, 0, 41, 0, 1, 0, 4, 0, 87, 0, 4, 0, 88, 0, 4, 0, 89, 0, + 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 42, 0, 15, 0, 27, 0, 31, 0, 0, 0, 93, 0, + 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, 40, 0, 97, 0, 4, 0, 98, 0, 4, 0, 99, 0, 12, 0,100, 0, + 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, 8, 0,105, 0, 43, 0, 3, 0, 4, 0,106, 0, 4, 0,107, 0, + 9, 0, 2, 0, 44, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,108, 0, 7, 0,109, 0, + 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, + 7, 0,118, 0, 2, 0,119, 0, 2, 0,120, 0, 7, 0,121, 0, 36, 0, 80, 0, 32, 0,122, 0, 45, 0, 13, 0, 4, 0,123, 0, + 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 2, 0,127, 0, 2, 0,128, 0, 2, 0, 19, 0, 2, 0,129, 0, 2, 0,130, 0, + 2, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 46, 0,134, 0, 47, 0, 32, 0, 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,135, 0, + 48, 0,136, 0, 49, 0,137, 0, 50, 0,138, 0, 2, 0,129, 0, 2, 0, 19, 0, 2, 0,139, 0, 2, 0, 17, 0, 2, 0, 37, 0, + 2, 0, 43, 0, 4, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,143, 0, 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, + 4, 0,147, 0, 4, 0,148, 0, 43, 0,149, 0, 30, 0,150, 0, 0, 0,151, 0, 7, 0,152, 0, 4, 0,153, 0, 2, 0,154, 0, + 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 7, 0,158, 0, 7, 0,159, 0, 51, 0, 63, 0, 2, 0,160, 0, 2, 0,161, 0, + 2, 0,162, 0, 2, 0,163, 0, 32, 0,164, 0, 52, 0,165, 0, 0, 0,166, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,169, 0, + 0, 0,170, 0, 7, 0,171, 0, 7, 0,172, 0, 7, 0,173, 0, 2, 0,174, 0, 2, 0,175, 0, 2, 0,176, 0, 2, 0,177, 0, + 2, 0,178, 0, 2, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, + 7, 0,186, 0, 7, 0, 57, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, + 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, + 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, + 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, + 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0, 53, 0, 15, 0, 0, 0,222, 0, 9, 0,223, 0, + 0, 0,224, 0, 0, 0,225, 0, 4, 0,226, 0, 4, 0,227, 0, 9, 0,228, 0, 7, 0,229, 0, 7, 0,230, 0, 7, 0,231, 0, + 4, 0,232, 0, 9, 0,233, 0, 9, 0,234, 0, 4, 0,235, 0, 4, 0, 37, 0, 54, 0, 6, 0, 7, 0,182, 0, 7, 0,183, 0, + 7, 0,184, 0, 7, 0,236, 0, 7, 0, 67, 0, 4, 0, 64, 0, 55, 0, 5, 0, 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 64, 0, + 2, 0,237, 0, 54, 0,231, 0, 56, 0, 17, 0, 32, 0,164, 0, 47, 0,238, 0, 57, 0,239, 0, 7, 0,240, 0, 7, 0,241, 0, + 2, 0, 17, 0, 2, 0,242, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,243, 0, 4, 0,244, 0, 2, 0,245, 0, 2, 0,246, 0, + 4, 0,129, 0, 4, 0,140, 0, 2, 0,247, 0, 2, 0,248, 0, 58, 0, 22, 0, 2, 0, 19, 0, 2, 0,249, 0, 7, 0,250, 0, + 7, 0,251, 0, 2, 0,139, 0, 2, 0,252, 0, 4, 0,253, 0, 4, 0,254, 0, 32, 0,164, 0, 4, 0,255, 0, 2, 0, 0, 1, + 2, 0, 1, 1, 9, 0, 2, 1, 7, 0, 3, 1, 7, 0, 4, 1, 2, 0, 5, 1, 2, 0, 6, 1, 2, 0, 7, 1, 2, 0, 8, 1, + 7, 0, 9, 1, 7, 0, 10, 1, 55, 0, 11, 1, 59, 0, 11, 0, 4, 0, 12, 1, 4, 0, 13, 1, 2, 0, 14, 1, 2, 0, 19, 0, + 2, 0, 15, 1, 2, 0, 37, 0, 32, 0,164, 0, 7, 0, 16, 1, 4, 0, 17, 1, 0, 0, 18, 1, 7, 0, 19, 1, 52, 0, 61, 0, + 27, 0, 31, 0, 39, 0, 75, 0, 7, 0, 20, 1, 7, 0, 21, 1, 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, + 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, + 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 2, 0, 40, 1, 2, 0, 41, 1, + 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,242, 0, + 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 4, 0, 51, 1, 4, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, + 2, 0, 15, 1, 2, 0,127, 0, 4, 0, 23, 0, 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 7, 0, 55, 1, 7, 0, 56, 1, + 7, 0,189, 0, 45, 0, 57, 1, 60, 0, 58, 1, 36, 0, 80, 0, 47, 0,238, 0, 53, 0, 59, 1, 55, 0, 11, 1, 56, 0, 60, 1, + 30, 0,150, 0, 58, 0, 61, 1, 59, 0, 62, 1, 0, 0, 63, 1, 0, 0,181, 0, 61, 0, 8, 0, 7, 0, 64, 1, 7, 0, 65, 1, + 7, 0,172, 0, 4, 0, 19, 0, 7, 0, 66, 1, 7, 0, 67, 1, 7, 0, 68, 1, 32, 0, 45, 0, 62, 0, 84, 0, 27, 0, 31, 0, + 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 69, 1, 2, 0,175, 0, 2, 0, 70, 1, 7, 0,182, 0, 7, 0,183, 0, + 7, 0,184, 0, 7, 0,185, 0, 7, 0, 71, 1, 7, 0, 72, 1, 7, 0, 73, 1, 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1, + 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 63, 0, 82, 1, 2, 0,249, 0, 2, 0, 70, 0, + 7, 0,110, 0, 7, 0,111, 0, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1, 7, 0, 86, 1, 7, 0, 87, 1, 2, 0, 88, 1, + 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 0, 0, 92, 1, 0, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1, + 2, 0, 97, 1, 2, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, 7, 0,102, 1, 2, 0,103, 1, 2, 0, 43, 0, + 2, 0,104, 1, 2, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, 7, 0,108, 1, 7, 0,109, 1, 7, 0,110, 1, 7, 0,111, 1, + 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, + 2, 0,120, 1, 2, 0,121, 1, 4, 0,122, 1, 4, 0,123, 1, 2, 0,124, 1, 2, 0,125, 1, 2, 0,126, 1, 2, 0,127, 1, + 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 2, 0,132, 1, 2, 0,133, 1, 36, 0, 80, 0, 51, 0,134, 1, + 2, 0,135, 1, 2, 0,136, 1, 30, 0,150, 0, 64, 0, 2, 0, 27, 0, 31, 0, 36, 0, 80, 0, 65, 0, 18, 0, 7, 0,137, 1, + 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 7, 0,141, 1, 7, 0,142, 1, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, + 7, 0,146, 1, 2, 0,147, 1, 2, 0,148, 1, 2, 0,149, 1, 2, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, + 4, 0,154, 1, 66, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,155, 1, 2, 0, 19, 0, 7, 0,182, 0, 7, 0,183, 0, + 7, 0,184, 0, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, + 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, + 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1, 65, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, + 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 2, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1, + 0, 0,187, 1, 0, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, 2, 0,191, 1, 2, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, + 7, 0,195, 1, 7, 0,196, 1, 2, 0,197, 1, 2, 0,198, 1, 4, 0, 69, 1, 4, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1, + 2, 0,202, 1, 2, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 7, 0,209, 1, + 7, 0,210, 1, 7, 0,211, 1, 7, 0,212, 1, 7, 0,213, 1, 0, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, + 4, 0,218, 1, 0, 0,219, 1, 0, 0,104, 1, 0, 0,220, 1, 0, 0, 63, 1, 2, 0,221, 1, 2, 0,222, 1, 2, 0,135, 1, + 2, 0,223, 1, 2, 0,224, 1, 2, 0,225, 1, 7, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1, 7, 0,229, 1, 7, 0,230, 1, + 2, 0,160, 0, 2, 0,161, 0, 55, 0,231, 1, 55, 0,232, 1, 0, 0,233, 1, 0, 0,234, 1, 0, 0,235, 1, 0, 0,236, 1, + 2, 0,237, 1, 2, 0,238, 1, 7, 0,239, 1, 7, 0,240, 1, 51, 0,134, 1, 60, 0, 58, 1, 36, 0, 80, 0, 67, 0,241, 1, + 30, 0,150, 0, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, 7, 0,245, 1, 7, 0,246, 1, 2, 0,247, 1, 2, 0, 70, 0, + 7, 0,248, 1, 7, 0,249, 1, 7, 0,250, 1, 7, 0,251, 1, 7, 0,252, 1, 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, + 7, 0, 0, 2, 2, 0, 1, 2, 2, 0, 2, 2, 4, 0, 3, 2, 4, 0,121, 1, 12, 0, 4, 2, 68, 0, 4, 0, 27, 0, 31, 0, + 0, 0, 5, 2, 69, 0, 2, 0, 43, 0,149, 0, 70, 0, 26, 0, 70, 0, 0, 0, 70, 0, 1, 0, 71, 0, 6, 2, 4, 0, 7, 2, + 4, 0, 8, 2, 4, 0, 9, 2, 4, 0, 10, 2, 4, 0, 11, 2, 4, 0, 12, 2, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 13, 2, + 2, 0, 14, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 15, 2, 7, 0, 16, 2, 7, 0, 17, 2, 7, 0, 18, 2, + 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 23, 0, 7, 0, 22, 2, 7, 0, 23, 2, 72, 0, 20, 0, 27, 0, 31, 0, + 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 24, 2, 12, 0, 25, 2, 12, 0, 26, 2, 36, 0, 80, 0, 66, 0, 27, 2, 0, 0, 19, 0, + 0, 0, 28, 2, 2, 0, 29, 2, 2, 0,174, 0, 2, 0, 37, 0, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0, 30, 2, + 7, 0, 31, 2, 7, 0, 32, 2, 70, 0, 33, 2, 35, 0, 11, 0, 7, 0, 34, 2, 7, 0, 35, 2, 7, 0, 36, 2, 7, 0,251, 0, + 2, 0, 55, 0, 0, 0, 37, 2, 0, 0, 38, 2, 0, 0, 39, 2, 0, 0, 40, 2, 0, 0, 41, 2, 0, 0, 42, 2, 34, 0, 7, 0, + 7, 0, 43, 2, 7, 0, 35, 2, 7, 0, 36, 2, 2, 0, 39, 2, 2, 0, 42, 2, 7, 0,251, 0, 7, 0, 37, 0, 73, 0, 21, 0, + 73, 0, 0, 0, 73, 0, 1, 0, 2, 0, 17, 0, 2, 0, 44, 2, 2, 0, 42, 2, 2, 0, 19, 0, 2, 0, 45, 2, 2, 0, 46, 2, + 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 49, 2, 2, 0, 50, 2, 2, 0, 51, 2, 2, 0, 52, 2, 7, 0, 53, 2, 7, 0, 54, 2, + 34, 0, 49, 0, 35, 0, 50, 0, 2, 0, 55, 2, 2, 0, 56, 2, 4, 0, 57, 2, 74, 0, 5, 0, 2, 0, 58, 2, 2, 0, 44, 2, + 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 70, 0, 75, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 0, 7, 0, 59, 2, + 76, 0, 68, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 6, 2, 12, 0, 60, 2, 12, 0, 25, 2, 12, 0, 61, 2, 32, 0, 62, 2, + 32, 0, 63, 2, 32, 0, 64, 2, 36, 0, 80, 0, 77, 0, 65, 2, 38, 0, 66, 2, 66, 0, 27, 2, 12, 0, 67, 2, 7, 0, 64, 1, + 7, 0,172, 0, 7, 0, 65, 1, 2, 0,174, 0, 2, 0, 43, 0, 2, 0, 68, 2, 2, 0, 69, 2, 2, 0, 70, 2, 7, 0, 71, 2, + 7, 0, 70, 0, 2, 0, 72, 2, 2, 0, 29, 2, 2, 0, 19, 0, 2, 0, 73, 2, 7, 0, 74, 2, 7, 0, 75, 2, 7, 0, 76, 2, + 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 77, 2, 2, 0, 78, 2, 4, 0, 79, 2, 34, 0, 80, 2, 2, 0, 23, 0, 2, 0, 95, 0, + 2, 0, 67, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2, 7, 0, 87, 2, + 7, 0, 88, 2, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, 0, 0, 92, 2, 78, 0, 93, 2, 79, 0, 94, 2, 0, 0, 95, 2, + 68, 0, 96, 2, 68, 0, 97, 2, 68, 0, 98, 2, 68, 0, 99, 2, 4, 0,100, 2, 7, 0,101, 2, 4, 0,102, 2, 4, 0,103, 2, + 75, 0,104, 2, 4, 0,105, 2, 4, 0,106, 2, 74, 0,107, 2, 74, 0,108, 2, 80, 0, 40, 0, 27, 0, 31, 0, 71, 0, 6, 2, + 12, 0,109, 2, 36, 0, 80, 0, 38, 0, 66, 2, 66, 0, 27, 2, 81, 0,110, 2, 82, 0,111, 2, 83, 0,112, 2, 84, 0,113, 2, + 85, 0,114, 2, 86, 0,115, 2, 87, 0,116, 2, 88, 0,117, 2, 80, 0,118, 2, 89, 0,119, 2, 90, 0,120, 2, 91, 0,121, 2, + 91, 0,122, 2, 91, 0,123, 2, 4, 0, 54, 0, 4, 0,124, 2, 4, 0,125, 2, 4, 0,126, 2, 4, 0,127, 2, 2, 0,174, 0, + 2, 0,128, 2, 7, 0, 64, 1, 7, 0,172, 0, 7, 0, 65, 1, 7, 0,129, 2, 4, 0, 68, 2, 2, 0,130, 2, 2, 0, 19, 0, + 2, 0,131, 2, 2, 0,132, 2, 2, 0, 29, 2, 2, 0,133, 2, 92, 0,134, 2, 93, 0,135, 2, 83, 0, 8, 0, 9, 0,136, 2, + 7, 0,137, 2, 4, 0,138, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 81, 0, 7, 0, + 4, 0,142, 2, 4, 0,143, 2, 4, 0,144, 2, 4, 0,145, 2, 2, 0, 44, 2, 0, 0,146, 2, 0, 0, 19, 0, 85, 0, 5, 0, + 4, 0,142, 2, 4, 0,143, 2, 0, 0,147, 2, 0, 0,148, 2, 2, 0, 19, 0, 94, 0, 2, 0, 4, 0,149, 2, 7, 0, 36, 2, + 86, 0, 3, 0, 94, 0,150, 2, 4, 0,151, 2, 4, 0, 19, 0, 84, 0, 6, 0, 7, 0,152, 2, 2, 0,153, 2, 2, 0, 44, 2, + 0, 0, 19, 0, 0, 0,148, 2, 0, 0, 70, 2, 87, 0, 4, 0, 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, + 95, 0, 6, 0, 47, 0,136, 2, 0, 0, 19, 0, 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 96, 0, 1, 0, + 7, 0,154, 2, 97, 0, 5, 0, 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 4, 0, 37, 0, 88, 0, 1, 0, + 7, 0,155, 2, 89, 0, 2, 0, 4, 0,156, 2, 4, 0, 17, 0, 82, 0, 7, 0, 7, 0,137, 2, 47, 0,136, 2, 0, 0, 19, 0, + 0, 0,139, 2, 2, 0, 69, 1, 2, 0,140, 2, 2, 0,141, 2, 98, 0, 1, 0, 7, 0,157, 2, 99, 0, 1, 0, 4, 0,158, 2, +100, 0, 1, 0, 0, 0,159, 2,101, 0, 1, 0, 7, 0,137, 2,102, 0, 3, 0, 4, 0,160, 2, 0, 0, 92, 0, 7, 0,161, 2, +104, 0, 4, 0, 7, 0,236, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0,105, 0, 1, 0,104, 0,138, 2,106, 0, 5, 0, + 4, 0,162, 2, 4, 0,163, 2, 0, 0, 19, 0, 0, 0, 44, 2, 0, 0, 70, 2,107, 0, 2, 0, 4, 0,164, 2, 4, 0,163, 2, +108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,165, 2,105, 0,166, 2,107, 0,167, 2, 4, 0, 54, 0, 4, 0,125, 2, + 4, 0,124, 2, 4, 0, 37, 0, 84, 0,168, 2, 92, 0, 14, 0, 12, 0,169, 2, 84, 0,168, 2, 0, 0,170, 2, 0, 0,171, 2, + 0, 0,172, 2, 0, 0,173, 2, 0, 0,174, 2, 0, 0,175, 2, 0, 0,176, 2, 0, 0, 19, 0, 91, 0,121, 2, 91, 0,123, 2, + 2, 0,177, 2, 0, 0,178, 2, 93, 0, 8, 0, 4, 0,179, 2, 4, 0,180, 2, 81, 0,181, 2, 85, 0,182, 2, 4, 0,125, 2, + 4, 0,124, 2, 4, 0, 54, 0, 4, 0, 37, 0,109, 0, 7, 0,109, 0, 0, 0,109, 0, 1, 0, 4, 0, 17, 0, 4, 0, 69, 1, + 0, 0, 20, 0, 46, 0,134, 0, 0, 0,183, 2,110, 0, 7, 0,109, 0,184, 2, 2, 0,185, 2, 2, 0,169, 2, 2, 0,186, 2, + 2, 0, 90, 0, 9, 0,187, 2, 9, 0,188, 2,111, 0, 3, 0,109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0,112, 0, 5, 0, +109, 0,184, 2, 32, 0,164, 0, 0, 0, 20, 0, 2, 0,189, 2, 0, 0,190, 2,113, 0, 5, 0,109, 0,184, 2, 7, 0, 88, 0, + 7, 0,191, 2, 4, 0,192, 2, 4, 0,193, 2,114, 0, 5, 0,109, 0,184, 2, 32, 0,194, 2, 0, 0, 72, 0, 4, 0, 69, 1, + 4, 0, 19, 0,115, 0, 13, 0,109, 0,184, 2, 32, 0,195, 2, 32, 0,196, 2, 32, 0,197, 2, 32, 0,198, 2, 7, 0,199, 2, + 7, 0,200, 2, 7, 0,191, 2, 7, 0,201, 2, 4, 0,202, 2, 4, 0,203, 2, 4, 0, 90, 0, 4, 0,204, 2,116, 0, 5, 0, +109, 0,184, 2, 2, 0,205, 2, 2, 0, 19, 0, 7, 0,206, 2, 32, 0,207, 2,117, 0, 3, 0,109, 0,184, 2, 7, 0,208, 2, + 4, 0, 90, 0,118, 0, 10, 0,109, 0,184, 2, 7, 0,209, 2, 4, 0,210, 2, 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,211, 2, + 2, 0,212, 2, 2, 0,213, 2, 7, 0,214, 2, 0, 0,215, 2,119, 0, 3, 0,109, 0,184, 2, 7, 0, 37, 0, 4, 0, 17, 0, +120, 0, 6, 0,109, 0,184, 2,121, 0,216, 2,122, 0,217, 2,123, 0,218, 2, 7, 0,219, 2, 4, 0, 17, 0,124, 0, 11, 0, +109, 0,184, 2, 52, 0,220, 2, 7, 0,221, 2, 4, 0,222, 2, 0, 0,215, 2, 7, 0,223, 2, 4, 0,224, 2, 32, 0,225, 2, + 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,125, 0, 10, 0,109, 0,184, 2, 32, 0,228, 2, 47, 0,229, 2, 4, 0, 90, 0, + 4, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 0, 0,226, 2, 4, 0,227, 2, 4, 0, 37, 0,126, 0, 3, 0,109, 0,184, 2, + 7, 0,233, 2, 4, 0,234, 2,127, 0, 5, 0,109, 0,184, 2, 7, 0,235, 2, 0, 0,215, 2, 2, 0, 19, 0, 2, 0,236, 2, +128, 0, 8, 0,109, 0,184, 2, 32, 0,164, 0, 7, 0,235, 2, 7, 0,251, 0, 7, 0,106, 0, 0, 0,215, 2, 2, 0, 19, 0, + 2, 0, 17, 0,129, 0, 21, 0,109, 0,184, 2, 32, 0,237, 2, 0, 0,215, 2, 52, 0,220, 2, 32, 0,225, 2, 2, 0, 19, 0, + 2, 0, 37, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0,243, 2, + 7, 0,244, 2, 4, 0,224, 2, 4, 0,227, 2, 0, 0,226, 2, 7, 0,245, 2, 7, 0,246, 2, 7, 0, 43, 0,130, 0, 7, 0, +109, 0,184, 2, 2, 0,247, 2, 2, 0,248, 2, 4, 0, 70, 0, 32, 0,164, 0, 7, 0,249, 2, 0, 0,215, 2,131, 0, 10, 0, +109, 0,184, 2, 32, 0,164, 0, 0, 0,250, 2, 7, 0,251, 2, 7, 0,252, 2, 7, 0,244, 2, 4, 0,253, 2, 4, 0,254, 2, + 7, 0,255, 2, 0, 0, 20, 0,132, 0, 1, 0,109, 0,184, 2,133, 0, 7, 0,109, 0,184, 2, 46, 0,134, 0,134, 0, 0, 3, +135, 0, 1, 3,136, 0, 2, 3,137, 0, 3, 3, 12, 0, 4, 3,138, 0, 13, 0,109, 0,184, 2, 84, 0, 5, 3, 84, 0, 6, 3, + 84, 0, 7, 3, 84, 0, 8, 3, 84, 0, 9, 3, 84, 0, 10, 3, 81, 0, 11, 3, 4, 0, 12, 3, 4, 0, 13, 3, 7, 0,219, 2, + 7, 0, 37, 0,139, 0, 14, 3,140, 0, 7, 0,109, 0,184, 2, 84, 0, 5, 3, 84, 0, 15, 3,141, 0, 16, 3,142, 0, 14, 3, + 4, 0, 17, 3, 4, 0, 12, 3,143, 0, 4, 0,109, 0,184, 2, 32, 0,164, 0, 4, 0, 18, 3, 4, 0, 37, 0,144, 0, 2, 0, + 4, 0, 19, 3, 7, 0, 36, 2,145, 0, 2, 0, 4, 0,125, 0, 4, 0, 20, 3,146, 0, 21, 0,109, 0,184, 2, 32, 0,164, 0, + 0, 0,215, 2, 2, 0, 21, 3, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 37, 0, 7, 0, 22, 3, 7, 0, 23, 3, 4, 0, 54, 0, + 4, 0, 24, 3,145, 0, 25, 3,144, 0, 26, 3, 4, 0, 27, 3, 4, 0, 28, 3, 4, 0, 29, 3, 4, 0, 20, 3, 7, 0, 30, 3, + 7, 0, 31, 3, 7, 0, 32, 3, 9, 0, 33, 3,147, 0, 8, 0,109, 0,184, 2,148, 0, 34, 3,141, 0, 16, 3, 4, 0, 35, 3, + 4, 0, 36, 3, 4, 0, 37, 3, 2, 0, 19, 0, 2, 0, 57, 0,149, 0, 8, 0,109, 0,184, 2, 32, 0, 45, 0, 2, 0,255, 0, + 2, 0, 19, 0, 2, 0,205, 2, 2, 0, 57, 0, 7, 0, 38, 3, 7, 0, 39, 3,150, 0, 5, 0,109, 0,184, 2, 4, 0, 40, 3, + 2, 0, 19, 0, 2, 0, 41, 3, 7, 0, 42, 3,151, 0, 8, 0,109, 0,184, 2, 0, 0, 43, 3, 0, 0, 44, 3, 0, 0,175, 2, + 0, 0, 45, 3, 0, 0, 46, 3, 0, 0, 90, 0, 0, 0, 70, 2,152, 0, 3, 0,109, 0,184, 2,153, 0, 47, 3,137, 0, 3, 3, +154, 0, 10, 0,109, 0,184, 2, 32, 0, 48, 3, 32, 0, 49, 3, 0, 0, 50, 3, 7, 0, 51, 3, 2, 0, 52, 3, 2, 0, 53, 3, + 0, 0, 54, 3, 0, 0, 55, 3, 0, 0,190, 2,155, 0, 9, 0,109, 0,184, 2, 32, 0, 56, 3, 0, 0, 50, 3, 7, 0, 57, 3, + 7, 0, 58, 3, 0, 0, 69, 1, 0, 0,205, 2, 0, 0, 59, 3, 0, 0, 37, 0,156, 0, 1, 0,109, 0,184, 2,157, 0, 8, 0, +109, 0,184, 2, 0, 0, 72, 0, 7, 0,125, 0, 7, 0, 60, 3, 7, 0, 61, 3, 7, 0, 62, 3, 4, 0, 19, 0, 0, 0, 92, 0, +158, 0, 27, 0, 27, 0, 31, 0, 2, 0, 45, 2, 2, 0, 46, 2, 2, 0, 63, 3, 2, 0, 19, 0, 2, 0, 64, 3, 2, 0, 65, 3, + 2, 0, 66, 3, 2, 0, 70, 0, 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 69, 3, 0, 0, 17, 0, 4, 0, 37, 0, 7, 0, 70, 3, + 7, 0, 71, 3, 7, 0, 72, 3, 7, 0, 73, 3, 7, 0, 74, 3, 7, 0, 75, 3, 34, 0, 76, 3, 36, 0, 80, 0, 38, 0, 66, 2, + 86, 0,115, 2, 7, 0, 77, 3, 7, 0, 78, 3,158, 0, 79, 3,159, 0, 3, 0,159, 0, 0, 0,159, 0, 1, 0, 0, 0, 20, 0, + 71, 0, 3, 0, 7, 0, 80, 3, 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0,160, 0, 81, 3, + 2, 0, 17, 0, 2, 0, 82, 3, 4, 0, 83, 3, 4, 0, 84, 3, 4, 0, 85, 3, 0, 0, 86, 3, 32, 0, 38, 0, 32, 0, 87, 3, + 32, 0, 88, 3, 32, 0, 89, 3, 32, 0, 90, 3, 36, 0, 80, 0, 77, 0, 65, 2, 71, 0, 6, 2,161, 0, 91, 3,161, 0, 92, 3, +162, 0, 93, 3, 9, 0, 2, 0,163, 0, 94, 3, 12, 0, 95, 3, 12, 0,109, 2, 12, 0, 25, 2, 12, 0, 96, 3, 12, 0, 97, 3, + 4, 0, 69, 1, 4, 0, 98, 3, 66, 0, 27, 2, 0, 0, 99, 3, 4, 0, 29, 2, 4, 0,100, 3, 7, 0, 64, 1, 7, 0,101, 3, + 7, 0,102, 3, 7, 0,172, 0, 7, 0,103, 3, 7, 0, 65, 1, 7, 0,104, 3, 7, 0, 15, 2, 7, 0,105, 3, 7, 0,106, 3, + 7, 0,107, 3, 7, 0,108, 3, 7, 0,109, 3, 7, 0,110, 3, 7, 0,251, 2, 7, 0,111, 3, 7, 0,240, 0, 4, 0,112, 3, + 2, 0, 19, 0, 2, 0,113, 3, 2, 0,114, 3, 2, 0,115, 3, 2, 0,116, 3, 2, 0,117, 3, 2, 0,118, 3, 2, 0,119, 3, + 2, 0,120, 3, 2, 0,121, 3, 2, 0,122, 3, 2, 0,123, 3, 4, 0,124, 3, 4, 0,125, 3, 4, 0,126, 3, 4, 0,127, 3, + 7, 0,128, 3, 7, 0,101, 2, 7, 0,129, 3, 7, 0,130, 3, 7, 0,131, 3, 7, 0,132, 3, 7, 0,133, 3, 7, 0,215, 0, + 7, 0,134, 3, 7, 0,135, 3, 7, 0,136, 3, 7, 0,137, 3, 2, 0,138, 3, 0, 0,139, 3, 0, 0,140, 3, 0, 0,141, 3, + 0, 0,142, 3, 7, 0,143, 3, 7, 0,144, 3, 12, 0,145, 3, 12, 0,146, 3, 12, 0,147, 3, 12, 0,148, 3, 7, 0,149, 3, + 2, 0,156, 2, 2, 0,150, 3, 7, 0,138, 2, 4, 0,151, 3, 4, 0,152, 3,164, 0,153, 3, 2, 0,154, 3, 2, 0,247, 0, + 7, 0,155, 3, 12, 0,156, 3, 12, 0,157, 3, 12, 0,158, 3, 12, 0,159, 3,165, 0, 61, 1,166, 0,160, 3, 67, 0,161, 3, + 2, 0,162, 3, 2, 0,163, 3, 2, 0,164, 3, 2, 0,165, 3, 7, 0,130, 2, 2, 0,166, 3, 2, 0,167, 3,153, 0,168, 3, +141, 0,169, 3,141, 0,170, 3, 4, 0,171, 3, 4, 0,172, 3, 4, 0,173, 3, 4, 0, 70, 0, 12, 0,174, 3, 12, 0,175, 3, + 12, 0,176, 3,167, 0, 14, 0,167, 0, 0, 0,167, 0, 1, 0, 32, 0, 38, 0, 7, 0,251, 2, 7, 0, 66, 1, 7, 0,252, 2, + 7, 0,244, 2, 0, 0, 20, 0, 4, 0,253, 2, 4, 0,254, 2, 4, 0,177, 3, 2, 0, 17, 0, 2, 0,178, 3, 7, 0,255, 2, +168, 0, 12, 0,168, 0, 0, 0,168, 0, 1, 0, 32, 0, 45, 0, 4, 0,179, 3, 4, 0,156, 2, 4, 0,180, 3, 4, 0, 17, 0, + 4, 0,181, 3, 7, 0, 66, 1, 7, 0,182, 3, 7, 0,183, 3, 7, 0,154, 2,165, 0, 40, 0, 4, 0, 19, 0, 2, 0,184, 3, + 2, 0,185, 3, 2, 0,244, 2, 2, 0,186, 3, 2, 0,187, 3, 2, 0,188, 3, 2, 0,189, 3, 2, 0,190, 3, 7, 0,191, 3, + 7, 0,192, 3, 7, 0,193, 3, 7, 0,194, 3, 7, 0,195, 3, 7, 0,196, 3, 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, + 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3, 7, 0,204, 3, 7, 0,205, 3, 7, 0,206, 3, 7, 0, 37, 0, + 7, 0,207, 3, 7, 0,208, 3, 7, 0,209, 3, 7, 0,210, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0,213, 3, 7, 0,214, 3, + 7, 0,215, 3, 7, 0,216, 3, 52, 0,165, 0,169, 0,217, 3, 7, 0,218, 3, 4, 0,193, 2,170, 0, 5, 0, 67, 0,241, 1, + 7, 0,219, 3, 7, 0,220, 3, 2, 0, 19, 0, 2, 0,221, 3,171, 0, 9, 0,171, 0, 0, 0,171, 0, 1, 0, 4, 0,222, 3, + 4, 0,223, 3, 4, 0,224, 3, 4, 0, 19, 0, 4, 0,225, 3, 9, 0,226, 3, 9, 0,227, 3,137, 0, 19, 0,137, 0, 0, 0, +137, 0, 1, 0, 4, 0, 19, 0, 4, 0,228, 3, 4, 0,229, 3, 4, 0,230, 3, 4, 0,231, 3, 4, 0,232, 3, 4, 0,233, 3, + 4, 0,223, 3, 4, 0,156, 2, 4, 0, 57, 0, 0, 0,234, 3, 0, 0,235, 3, 0, 0,236, 3, 0, 0,237, 3, 12, 0,238, 3, +172, 0,239, 3, 9, 0,240, 3,173, 0, 1, 0, 7, 0, 43, 2,164, 0, 30, 0, 4, 0, 19, 0, 7, 0,241, 3, 7, 0,242, 3, + 7, 0,243, 3, 4, 0,244, 3, 4, 0,245, 3, 4, 0,246, 3, 4, 0,247, 3, 7, 0,248, 3, 7, 0,249, 3, 7, 0,250, 3, + 7, 0,251, 3, 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, 7, 0,255, 3, 7, 0, 0, 4, 7, 0, 1, 4, 7, 0, 2, 4, + 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, 7, 0, 8, 4, 7, 0, 9, 4, 4, 0, 10, 4, + 4, 0, 11, 4, 7, 0, 12, 4, 7, 0,134, 3,166, 0, 54, 0, 4, 0,223, 3, 4, 0, 13, 4,174, 0, 14, 4,175, 0, 15, 4, + 0, 0, 37, 0, 0, 0, 16, 4, 2, 0, 17, 4, 7, 0, 18, 4, 0, 0, 19, 4, 7, 0, 20, 4, 7, 0, 21, 4, 7, 0, 22, 4, + 7, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 7, 0, 28, 4, 2, 0, 29, 4, 0, 0, 30, 4, + 2, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 0, 0, 34, 4, 4, 0,126, 0, 4, 0, 35, 4, 4, 0, 36, 4, 2, 0, 37, 4, + 2, 0, 38, 4,173, 0, 39, 4, 4, 0, 40, 4, 4, 0, 82, 0, 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, 7, 0, 44, 4, + 2, 0, 45, 4, 2, 0, 46, 4, 2, 0, 47, 4, 2, 0, 48, 4, 2, 0, 49, 4, 2, 0, 50, 4, 2, 0, 51, 4, 2, 0, 52, 4, +176, 0, 53, 4, 7, 0, 54, 4, 7, 0, 55, 4,137, 0, 56, 4, 12, 0, 4, 3,170, 0, 57, 4, 7, 0, 58, 4, 7, 0, 59, 4, + 7, 0, 60, 4, 0, 0, 61, 4,153, 0, 49, 0,152, 0, 62, 4, 2, 0, 17, 0, 2, 0, 63, 4, 2, 0, 64, 4, 2, 0, 65, 4, + 7, 0, 66, 4, 2, 0, 67, 4, 2, 0, 68, 4, 7, 0, 69, 4, 2, 0, 70, 4, 2, 0, 71, 4, 7, 0, 72, 4, 7, 0, 73, 4, + 7, 0, 74, 4, 7, 0, 75, 4, 7, 0, 76, 4, 7, 0, 77, 4, 4, 0, 78, 4, 7, 0, 79, 4, 7, 0, 80, 4, 7, 0, 81, 4, + 80, 0, 82, 4, 80, 0, 83, 4, 80, 0, 84, 4, 0, 0, 85, 4, 7, 0, 86, 4, 7, 0, 87, 4, 36, 0, 80, 0, 2, 0, 88, 4, + 0, 0, 89, 4, 0, 0, 90, 4, 7, 0, 91, 4, 4, 0, 92, 4, 7, 0, 93, 4, 7, 0, 94, 4, 4, 0, 95, 4, 4, 0, 19, 0, + 7, 0, 96, 4, 7, 0, 97, 4, 7, 0, 98, 4, 84, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, + 7, 0,104, 4, 7, 0,105, 4, 7, 0,106, 4, 4, 0,107, 4,177, 0, 76, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,175, 0, + 2, 0, 70, 1, 2, 0,104, 1, 2, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, 7, 0,111, 4, 7, 0,112, 4, 7, 0,113, 4, + 7, 0,114, 4, 7, 0,115, 4, 7, 0,116, 4, 7, 0,162, 1, 7, 0,164, 1, 7, 0,163, 1, 7, 0,117, 4, 4, 0,118, 4, + 7, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 7, 0,125, 4, 2, 0,126, 4, + 2, 0, 69, 1, 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, 2, 0,131, 4, 2, 0,132, 4, 7, 0,133, 4, + 7, 0,134, 4, 7, 0,135, 4, 7, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, + 7, 0,142, 4, 7, 0,143, 4, 7, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, 2, 0,147, 4, 2, 0,148, 4, 7, 0,149, 4, + 7, 0,150, 4, 7, 0,151, 4, 7, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4, 7, 0,157, 4, + 7, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 2, 0,162, 4, 2, 0,163, 4, 2, 0,164, 4, 2, 0,165, 4, + 2, 0,166, 4, 2, 0, 19, 0, 7, 0,167, 4, 7, 0,168, 4, 36, 0, 80, 0, 51, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, + 30, 0,150, 0,178, 0, 8, 0,178, 0, 0, 0,178, 0, 1, 0, 4, 0,112, 3, 4, 0,169, 4, 4, 0, 19, 0, 2, 0,170, 4, + 2, 0,171, 4, 32, 0,164, 0,179, 0, 13, 0, 9, 0,172, 4, 9, 0,173, 4, 4, 0,174, 4, 4, 0,175, 4, 4, 0,176, 4, + 4, 0,177, 4, 4, 0,178, 4, 4, 0,179, 4, 4, 0,180, 4, 4, 0,181, 4, 4, 0,182, 4, 4, 0, 37, 0, 0, 0,183, 4, +180, 0, 5, 0, 9, 0,184, 4, 9, 0,185, 4, 4, 0,186, 4, 4, 0, 70, 0, 0, 0,187, 4,181, 0, 10, 0, 4, 0,188, 4, + 4, 0,189, 4, 4, 0,190, 4, 4, 0,191, 4, 4, 0,192, 4, 4, 0,193, 4, 4, 0,194, 4, 4, 0,195, 4, 4, 0,196, 4, + 4, 0,197, 4,182, 0, 15, 0, 4, 0, 17, 0, 4, 0,190, 4, 4, 0,198, 4, 4, 0,199, 4, 4, 0,200, 4, 4, 0,201, 4, + 7, 0,202, 4, 4, 0,203, 4, 4, 0, 90, 0, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, 4, 0,208, 4, + 26, 0, 30, 0,183, 0, 7, 0, 4, 0,209, 4, 7, 0,210, 4, 7, 0,211, 4, 7, 0,212, 4, 4, 0,213, 4, 2, 0, 19, 0, + 2, 0, 37, 0,184, 0, 11, 0,184, 0, 0, 0,184, 0, 1, 0, 0, 0, 20, 0, 66, 0,214, 4, 67, 0,215, 4, 4, 0,112, 3, + 4, 0,216, 4, 4, 0,217, 4, 4, 0, 37, 0, 4, 0,218, 4, 4, 0,219, 4,185, 0,135, 0,179, 0,220, 4,180, 0,221, 4, +181, 0,222, 4,182, 0,223, 4, 4, 0, 17, 3, 4, 0,126, 0, 4, 0, 35, 4, 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, + 4, 0,227, 4, 2, 0, 19, 0, 2, 0,228, 4, 7, 0,101, 2, 7, 0,229, 4, 7, 0,230, 4, 7, 0,231, 4, 7, 0,232, 4, + 7, 0,233, 4, 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,237, 4, 2, 0,246, 0, 2, 0,238, 4, 2, 0,239, 4, + 2, 0,240, 4, 2, 0,241, 4, 2, 0,242, 4, 2, 0, 91, 1, 2, 0,106, 0, 2, 0,243, 4, 2, 0,244, 4, 2, 0,245, 4, + 2, 0,246, 4, 2, 0,247, 4, 2, 0,248, 4, 2, 0,249, 4, 2, 0,250, 4, 2, 0,251, 4, 2, 0, 92, 1, 2, 0,252, 4, + 2, 0,253, 4, 2, 0,254, 4, 2, 0,255, 4, 4, 0, 0, 5, 4, 0, 69, 1, 4, 0, 1, 5, 2, 0, 2, 5, 2, 0, 3, 5, + 2, 0, 4, 5, 2, 0,121, 1, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 2, 0, 8, 5, 24, 0, 9, 5, 24, 0, 10, 5, + 23, 0, 11, 5, 12, 0, 12, 5, 2, 0, 13, 5, 2, 0, 37, 0, 7, 0, 14, 5, 7, 0, 15, 5, 7, 0, 16, 5, 7, 0, 17, 5, + 4, 0, 18, 5, 7, 0, 19, 5, 7, 0, 20, 5, 7, 0, 21, 5, 7, 0, 22, 5, 2, 0, 23, 5, 2, 0, 24, 5, 2, 0, 25, 5, + 2, 0, 26, 5, 2, 0, 27, 5, 2, 0, 28, 5, 7, 0, 29, 5, 7, 0, 30, 5, 7, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, + 2, 0, 34, 5, 2, 0, 35, 5, 2, 0, 36, 5, 2, 0, 37, 5, 2, 0, 38, 5, 2, 0, 39, 5, 2, 0, 40, 5, 2, 0, 41, 5, + 4, 0, 42, 5, 4, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 4, 0, 46, 5, 7, 0, 47, 5, 4, 0, 48, 5, 4, 0, 49, 5, + 4, 0, 50, 5, 4, 0, 51, 5, 7, 0, 52, 5, 7, 0, 53, 5, 7, 0, 54, 5, 7, 0, 55, 5, 7, 0, 56, 5, 7, 0, 57, 5, + 7, 0, 58, 5, 7, 0, 59, 5, 7, 0, 60, 5, 0, 0, 61, 5, 0, 0, 62, 5, 4, 0, 63, 5, 2, 0, 64, 5, 2, 0,238, 1, + 0, 0, 65, 5, 7, 0, 66, 5, 7, 0, 67, 5, 4, 0, 68, 5, 4, 0, 69, 5, 7, 0, 70, 5, 7, 0, 71, 5, 2, 0, 72, 5, + 2, 0, 73, 5, 7, 0, 74, 5, 2, 0, 75, 5, 2, 0, 76, 5, 4, 0, 77, 5, 2, 0, 78, 5, 2, 0, 79, 5, 2, 0, 80, 5, + 2, 0, 81, 5, 7, 0, 82, 5, 7, 0, 70, 0, 42, 0, 83, 5, 0, 0, 84, 5,186, 0, 9, 0,186, 0, 0, 0,186, 0, 1, 0, + 0, 0, 20, 0, 2, 0, 85, 5, 2, 0, 86, 5, 2, 0, 87, 5, 2, 0, 43, 0, 7, 0, 88, 5, 7, 0, 70, 0,187, 0, 7, 0, + 2, 0,210, 2, 2, 0, 69, 1, 2, 0,109, 0, 2, 0, 89, 5, 7, 0, 90, 5, 7, 0, 70, 0, 42, 0, 91, 5,188, 0, 5, 0, + 7, 0, 92, 5, 0, 0, 17, 0, 0, 0, 43, 0, 0, 0, 70, 0, 0, 0,238, 1,189, 0, 26, 0, 7, 0,124, 4, 7, 0,125, 4, + 2, 0, 69, 1, 2, 0, 19, 0, 2, 0, 93, 5, 2, 0,136, 1, 2, 0,127, 4, 2, 0,128, 4, 2, 0,129, 4, 2, 0,130, 4, + 2, 0,131, 4, 2, 0,132, 4,188, 0, 94, 5, 2, 0,234, 4, 2, 0,235, 4, 2, 0,236, 4, 2, 0,237, 4, 2, 0,246, 0, + 2, 0,238, 4, 2, 0, 95, 5, 2, 0,239, 4,187, 0, 96, 5, 2, 0, 97, 5, 2, 0,241, 4, 2, 0,244, 4, 2, 0,245, 4, +190, 0, 6, 0,190, 0, 0, 0,190, 0, 1, 0, 4, 0,222, 3, 0, 0,234, 3, 4, 0, 19, 0, 32, 0, 98, 5,191, 0, 6, 0, +192, 0, 99, 5, 4, 0,100, 5, 4, 0,101, 5, 9, 0,102, 5, 0, 0,103, 5, 4, 0, 90, 0,193, 0, 6, 0,191, 0,104, 5, + 2, 0, 19, 0, 2, 0,105, 5, 2, 0,106, 5, 2, 0,107, 5, 9, 0,108, 5,194, 0, 4, 0, 2, 0,106, 0, 2, 0,221, 2, + 2, 0,228, 3, 2, 0,109, 5,195, 0, 14, 0, 2, 0, 19, 0, 2, 0,110, 5, 2, 0,111, 5, 2, 0,112, 5,194, 0,113, 5, + 9, 0,108, 5, 7, 0,114, 5, 7, 0, 57, 0, 4, 0,115, 5, 4, 0,116, 5, 4, 0,117, 5, 4, 0,118, 5, 46, 0,134, 0, + 32, 0,164, 0,196, 0, 4, 0,196, 0, 0, 0,196, 0, 1, 0, 0, 0,119, 5, 7, 0,120, 5,197, 0, 6, 0,191, 0,104, 5, + 7, 0,121, 5, 4, 0, 90, 0, 0, 0,122, 5, 0, 0,123, 5, 0, 0,190, 2,198, 0, 7, 0,191, 0,104, 5, 2, 0, 69, 1, + 2, 0, 19, 0, 4, 0, 36, 0, 4, 0,124, 5, 86, 0,125, 5, 9, 0,108, 5,199, 0, 74, 0,198, 0,126, 5,198, 0,127, 5, +197, 0, 81, 3, 7, 0,128, 5, 2, 0,129, 5, 2, 0,130, 5, 7, 0,131, 5, 7, 0,132, 5, 2, 0,228, 3, 2, 0,133, 5, + 7, 0,134, 5, 7, 0,135, 5, 7, 0,136, 5, 2, 0,137, 5, 2, 0,115, 5, 2, 0,138, 5, 2, 0,139, 5, 2, 0,140, 5, + 2, 0,141, 5, 7, 0,142, 5, 7, 0,143, 5, 7, 0,144, 5, 2, 0,145, 5, 2, 0,146, 5, 2, 0,147, 5, 2, 0,148, 5, + 2, 0,149, 5, 2, 0,150, 5, 2, 0,151, 5,193, 0,152, 5,195, 0,153, 5, 7, 0,154, 5, 7, 0,155, 5, 7, 0,156, 5, + 2, 0,157, 5, 2, 0,158, 5, 0, 0,159, 5, 0, 0,160, 5, 0, 0,161, 5, 0, 0,162, 5, 0, 0,163, 5, 0, 0,164, 5, + 2, 0,165, 5, 7, 0,166, 5, 7, 0,167, 5, 7, 0,168, 5, 7, 0,169, 5, 7, 0,170, 5, 7, 0,171, 5, 7, 0,172, 5, + 7, 0,173, 5, 7, 0,174, 5, 7, 0,175, 5, 2, 0,176, 5, 0, 0,177, 5, 0, 0,178, 5, 0, 0,179, 5, 0, 0,180, 5, + 32, 0,181, 5, 0, 0,182, 5, 0, 0,183, 5, 0, 0,184, 5, 0, 0,185, 5, 0, 0,186, 5, 0, 0,187, 5, 0, 0,188, 5, + 0, 0,189, 5, 2, 0,190, 5, 2, 0,191, 5, 2, 0,192, 5, 2, 0,193, 5, 2, 0,194, 5, 4, 0,195, 5, 4, 0,196, 5, +200, 0, 8, 0, 4, 0,197, 5, 4, 0,198, 5, 4, 0,199, 5, 4, 0,200, 5, 4, 0,201, 5, 4, 0,202, 5, 4, 0, 54, 0, + 4, 0,125, 2,201, 0, 3, 0, 7, 0,203, 5, 2, 0,204, 5, 2, 0, 19, 0,202, 0, 2, 0, 7, 0,205, 5, 4, 0, 19, 0, + 46, 0, 38, 0, 27, 0, 31, 0, 39, 0, 75, 0, 32, 0, 98, 5,177, 0,206, 5, 46, 0,207, 5, 47, 0,238, 0, 12, 0,208, 5, +178, 0,209, 5, 32, 0,210, 5, 7, 0,211, 5, 7, 0,212, 5, 7, 0,213, 5, 7, 0,214, 5, 4, 0,112, 3, 2, 0, 19, 0, + 2, 0, 63, 1, 60, 0, 58, 1,203, 0,215, 5,199, 0,216, 5,204, 0,217, 5,185, 0,182, 0,183, 0,218, 5, 12, 0,100, 0, + 12, 0,219, 5, 12, 0,220, 5,205, 0,221, 5, 2, 0,222, 5, 2, 0,223, 5, 2, 0,247, 0, 2, 0,224, 5, 4, 0,225, 5, + 4, 0,226, 5, 12, 0,227, 5,188, 0, 94, 5,189, 0,228, 5,201, 0,229, 5,163, 0, 94, 3,202, 0,230, 5,206, 0, 6, 0, + 47, 0,238, 0, 45, 0, 57, 1, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,106, 0, 7, 0,231, 5,207, 0, 36, 0, 7, 0,232, 5, + 7, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, 7, 0,239, 5, 7, 0,240, 5, + 7, 0, 76, 1, 7, 0,241, 5, 7, 0,242, 5, 7, 0,243, 5, 7, 0,244, 5, 7, 0,171, 0, 2, 0,245, 5, 2, 0,246, 5, + 2, 0, 70, 2, 2, 0,247, 5, 2, 0,248, 5, 2, 0,249, 5, 2, 0,250, 5, 7, 0,251, 5, 7, 0,252, 5, 71, 0,253, 5, +163, 0, 94, 3,207, 0,254, 5,208, 0,255, 5,209, 0, 0, 6,210, 0, 1, 6,211, 0, 2, 6,212, 0, 3, 6, 7, 0, 4, 6, + 2, 0, 5, 6, 2, 0, 6, 6, 7, 0, 7, 6,213, 0, 54, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, + 7, 0, 10, 6, 2, 0, 11, 6, 7, 0,240, 5, 7, 0, 76, 1, 7, 0, 43, 0, 4, 0, 12, 6, 2, 0,249, 5, 2, 0,250, 5, + 32, 0, 98, 5, 32, 0, 13, 6,206, 0, 14, 6,213, 0,254, 5, 0, 0, 15, 6, 4, 0,112, 3, 4, 0, 16, 6, 2, 0, 17, 6, + 2, 0, 70, 0, 2, 0, 18, 6, 2, 0, 19, 6, 2, 0,238, 1, 2, 0, 19, 0, 2, 0, 28, 2, 2, 0, 20, 6, 7, 0,112, 0, + 7, 0, 21, 6, 7, 0, 7, 6, 7, 0, 22, 6, 7, 0, 23, 6, 7, 0, 24, 6, 7, 0,171, 0, 7, 0,211, 5, 2, 0, 25, 6, + 2, 0,121, 1, 2, 0, 26, 6, 2, 0, 27, 6, 2, 0, 28, 6, 2, 0, 29, 6, 2, 0, 30, 6, 2, 0, 31, 6, 2, 0, 32, 6, + 2, 0, 33, 6, 4, 0, 34, 6, 12, 0, 35, 6, 2, 0, 36, 6, 2, 0,139, 2, 2, 0, 37, 6, 0, 0, 38, 6, 0, 0, 39, 6, + 9, 0, 40, 6,163, 0, 94, 3,215, 0, 25, 0, 24, 0, 36, 0, 24, 0, 64, 0, 23, 0, 41, 6, 23, 0, 42, 6, 23, 0, 43, 6, + 7, 0, 44, 6, 7, 0, 45, 6, 7, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, + 2, 0, 52, 6, 2, 0, 19, 0, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6, 2, 0, 19, 6, + 7, 0, 58, 6, 7, 0, 59, 6, 4, 0, 60, 6, 4, 0, 61, 6,214, 0, 6, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, + 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6,216, 0, 8, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, + 7, 0, 10, 6, 2, 0, 11, 6,217, 0, 62, 6, 46, 0,134, 0,218, 0, 14, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, + 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6,215, 0, 63, 6,219, 0, 64, 6, 12, 0, 65, 6, 2, 0, 69, 1, 2, 0, 66, 6, + 4, 0, 19, 0, 7, 0, 67, 6, 4, 0, 19, 6,220, 0, 20, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, + 7, 0, 10, 6, 2, 0, 11, 6,208, 0,255, 5,215, 0, 63, 6, 2, 0, 68, 6, 2, 0, 69, 6, 2, 0, 70, 6, 2, 0, 71, 6, + 2, 0, 53, 6, 2, 0, 72, 6, 0, 0, 19, 0, 0, 0,136, 1, 9, 0, 65, 2, 4, 0, 73, 6, 4, 0, 74, 6, 27, 0, 75, 6, +221, 0, 18, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6,215, 0, 63, 6, + 7, 0, 89, 2, 7, 0, 90, 2, 2, 0, 68, 6, 2, 0, 76, 6, 2, 0, 77, 6, 2, 0, 78, 6, 4, 0, 19, 0, 7, 0, 79, 6, + 4, 0,250, 5, 4, 0, 37, 0,163, 0, 94, 3,222, 0, 16, 0, 0, 0, 80, 6, 0, 0, 81, 6, 0, 0, 82, 6, 0, 0, 83, 6, + 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 84, 6, 2, 0, 85, 6, 2, 0,181, 1, 2, 0, 86, 6, 4, 0, 87, 6, 4, 0, 88, 6, + 2, 0, 89, 6, 2, 0, 90, 6, 0, 0, 91, 6, 0, 0, 92, 6,223, 0, 16, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, + 4, 0, 9, 6, 4, 0, 37, 0,222, 0, 93, 6,224, 0, 94, 6, 12, 0, 95, 6, 12, 0, 96, 6,225, 0, 97, 6,212, 0, 98, 6, +226, 0, 99, 6, 2, 0,100, 6, 2, 0,101, 6, 2, 0,102, 6, 2, 0, 70, 0,227, 0, 17, 0,214, 0, 0, 0,214, 0, 1, 0, + 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6,215, 0, 63, 6, 12, 0,103, 6,228, 0,104, 6, 0, 0,105, 6, +229, 0,106, 6, 4, 0,107, 6, 4, 0,108, 6, 2, 0, 19, 0, 2, 0,109, 6, 2, 0,110, 6, 2, 0, 37, 0,230, 0, 29, 0, +214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6, 47, 0,229, 2, 45, 0, 57, 1, + 63, 0,111, 6, 2, 0,133, 0, 2, 0,112, 6, 2, 0, 70, 0, 2, 0,113, 6, 4, 0, 19, 0, 2, 0,114, 6, 2, 0,115, 6, + 2, 0,116, 6, 2, 0,238, 1, 0, 0,117, 6, 0, 0,118, 6, 0, 0,119, 6, 0, 0, 19, 6, 7, 0, 89, 2, 7, 0, 90, 2, + 7, 0, 79, 6, 7, 0,121, 1, 7, 0,120, 6, 7, 0,121, 6,163, 0, 94, 3,231, 0, 11, 0,214, 0, 0, 0,214, 0, 1, 0, + 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6, 2, 0, 66, 6, 2, 0, 19, 0, 4, 0, 37, 0,219, 0, 64, 6, +215, 0, 63, 6,232, 0, 27, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6, + 42, 0,122, 6, 4, 0,123, 6, 4, 0,124, 6, 2, 0, 90, 0, 2, 0,133, 0, 2, 0,125, 6, 0, 0,126, 6, 0, 0,127, 6, + 4, 0,128, 6, 4, 0,129, 6, 4, 0,130, 6, 4, 0,131, 6, 2, 0,132, 6, 2, 0,133, 6, 7, 0,134, 6, 23, 0,135, 6, + 23, 0,136, 6, 4, 0,137, 6, 4, 0,138, 6, 0, 0,139, 6, 0, 0,140, 6,233, 0, 10, 0, 27, 0, 31, 0, 9, 0,141, 6, + 9, 0,142, 6, 9, 0,143, 6, 9, 0,144, 6, 9, 0,145, 6, 4, 0, 90, 0, 4, 0,146, 6, 0, 0,147, 6, 0, 0,148, 6, +234, 0, 10, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6,233, 0,149, 6, 2, 0, 90, 0, + 2, 0,133, 0, 4, 0, 43, 0, 9, 0,150, 6,235, 0, 8, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, + 7, 0, 10, 6,215, 0, 63, 6, 4, 0, 19, 0, 4, 0,151, 6,236, 0, 23, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, + 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6,215, 0, 63, 6, 27, 0,152, 6, 27, 0, 81, 0, 2, 0, 19, 0, 2, 0,133, 0, + 7, 0,153, 6, 9, 0,154, 6, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0,155, 6, 7, 0,156, 6, 60, 0, 58, 1, 60, 0,157, 6, + 4, 0,158, 6, 2, 0,159, 6, 2, 0, 37, 0,163, 0, 94, 3,237, 0, 10, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, + 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6, 2, 0, 19, 0, 2, 0,121, 3, 4, 0, 37, 0,163, 0, 94, 3,238, 0, 42, 0, +214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, 2, 0, 11, 6,215, 0, 63, 6,224, 0, 94, 6, + 0, 0, 80, 6, 0, 0, 81, 6, 0, 0, 82, 6, 2, 0, 17, 0, 2, 0, 90, 6, 2, 0, 19, 0, 2, 0, 84, 6, 9, 0,154, 6, + 4, 0, 87, 6, 4, 0,160, 6, 4, 0,161, 6, 4, 0, 88, 6, 23, 0,162, 6, 23, 0,163, 6, 7, 0,164, 6, 7, 0,165, 6, + 7, 0,166, 6, 7, 0,153, 6, 2, 0,167, 6, 2, 0,237, 0, 2, 0,181, 1, 2, 0, 86, 6, 2, 0, 37, 0, 2, 0, 43, 0, + 2, 0,168, 6, 2, 0,169, 6, 9, 0,170, 6, 9, 0,171, 6, 9, 0,172, 6, 9, 0,173, 6, 9, 0,174, 6, 2, 0,175, 6, + 0, 0, 92, 6, 57, 0,176, 6,239, 0, 7, 0,239, 0, 0, 0,239, 0, 1, 0, 4, 0,177, 6, 4, 0, 23, 0, 0, 0, 84, 0, + 4, 0,178, 6, 4, 0, 17, 0,240, 0, 16, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, + 2, 0, 11, 6, 4, 0, 17, 0, 4, 0,179, 6, 4, 0, 19, 0, 4, 0,125, 6, 12, 0,180, 6, 12, 0,181, 6, 0, 0,182, 6, + 0, 0,183, 6, 4, 0,184, 6, 4, 0,185, 6,241, 0, 5, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, + 4, 0, 37, 0,242, 0, 7, 0,242, 0, 0, 0,242, 0, 1, 0, 0, 0,186, 6, 2, 0,187, 6, 2, 0,188, 6, 2, 0,189, 6, + 2, 0, 37, 0,243, 0, 12, 0, 2, 0,188, 6, 2, 0,190, 6, 2, 0,191, 6, 0, 0,190, 2, 2, 0,192, 6, 2, 0,193, 6, + 2, 0,194, 6, 2, 0,195, 6, 2, 0,196, 6, 2, 0, 53, 6, 7, 0,197, 6, 7, 0,198, 6,244, 0, 18, 0,244, 0, 0, 0, +244, 0, 1, 0, 0, 0,234, 3,243, 0,199, 6,243, 0,200, 6,243, 0,201, 6,243, 0,202, 6, 7, 0,203, 6, 2, 0,204, 6, + 2, 0,205, 6, 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, 2, 0,209, 6, 2, 0,210, 6, 2, 0,211, 6, 2, 0,212, 6, + 2, 0,213, 6,245, 0, 10, 0, 0, 0,214, 6, 0, 0,215, 6, 0, 0,216, 6, 0, 0,217, 6, 0, 0,218, 6, 0, 0,219, 6, + 2, 0,220, 6, 2, 0,221, 6, 2, 0,222, 6, 2, 0, 37, 0,246, 0, 8, 0, 0, 0,223, 6, 0, 0,224, 6, 0, 0,225, 6, + 0, 0,226, 6, 0, 0,227, 6, 0, 0,228, 6, 7, 0,231, 5, 7, 0, 37, 0,247, 0, 17, 0,245, 0,229, 6,245, 0,230, 6, +245, 0,231, 6,245, 0,232, 6,245, 0,233, 6,245, 0,234, 6,245, 0,235, 6,245, 0,236, 6,245, 0,237, 6,245, 0,238, 6, +245, 0,239, 6,245, 0,240, 6,245, 0,241, 6,245, 0,242, 6,245, 0,243, 6,246, 0,244, 6, 0, 0,245, 6,248, 0, 71, 0, + 0, 0,246, 6, 0, 0,247, 6, 0, 0,218, 6, 0, 0,248, 6, 0, 0,249, 6, 0, 0,250, 6, 0, 0,251, 6, 0, 0,252, 6, 0, 0,253, 6, 0, 0,254, 6, 0, 0,255, 6, 0, 0, 0, 7, 0, 0, 1, 7, 0, 0, 2, 7, 0, 0, 3, 7, 0, 0, 4, 7, 0, 0, 5, 7, 0, 0, 6, 7, 0, 0, 7, 7, 0, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7, 0, 0, 11, 7, 0, 0, 12, 7, 0, 0, 13, 7, 0, 0, 14, 7, 0, 0, 15, 7, 0, 0, 16, 7, 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, @@ -9727,297 +10254,294 @@ char datatoc_B_blend[]= { 0, 0, 29, 7, 0, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7, 0, 0, 33, 7, 0, 0, 34, 7, 0, 0, 35, 7, 0, 0, 36, 7, 0, 0, 37, 7, 0, 0, 38, 7, 0, 0, 39, 7, 0, 0, 40, 7, 0, 0, 41, 7, 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, - 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 92, 0,248, 0, 5, 0, 0, 0, 56, 7, 0, 0, 11, 7, 0, 0, 13, 7, - 2, 0, 19, 0, 2, 0, 37, 0,249, 0, 24, 0,249, 0, 0, 0,249, 0, 1, 0, 0, 0, 20, 0,246, 0, 57, 7,247, 0, 58, 7, -247, 0, 59, 7,247, 0, 60, 7,247, 0, 61, 7,247, 0, 62, 7,247, 0, 63, 7,247, 0, 64, 7,247, 0, 65, 7,247, 0, 66, 7, -247, 0, 67, 7,247, 0, 68, 7,247, 0, 69, 7,247, 0, 70, 7,247, 0, 71, 7,247, 0, 72, 7,247, 0, 73, 7,247, 0, 74, 7, -248, 0, 75, 7, 4, 0, 76, 7, 4, 0, 37, 0,250, 0, 5, 0, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,138, 2, 7, 0, 77, 7, - 7, 0, 43, 2,251, 0, 73, 0, 4, 0, 19, 0, 4, 0, 78, 7, 4, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, 0, 0, 82, 7, - 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, 2, 0, 89, 7, 2, 0, 90, 7, - 4, 0, 91, 7, 4, 0, 92, 7, 4, 0, 93, 7, 4, 0, 94, 7, 2, 0, 95, 7, 2, 0, 96, 7, 4, 0, 97, 7, 4, 0, 98, 7, - 4, 0, 99, 7, 4, 0,100, 7, 4, 0,101, 7, 4, 0,179, 6, 4, 0,102, 7, 2, 0,103, 7, 2, 0,104, 7, 2, 0,105, 7, - 2, 0,106, 7, 12, 0,107, 7, 12, 0,108, 7, 12, 0,109, 7, 12, 0,110, 7, 0, 0,111, 7, 2, 0,112, 7, 2, 0,113, 7, - 2, 0,114, 7, 2, 0,115, 7, 2, 0,116, 7, 2, 0,117, 7, 2, 0,118, 7, 2, 0,119, 7,250, 0,120, 7, 2, 0,121, 7, - 2, 0,122, 7, 2, 0,123, 7, 2, 0,124, 7, 2, 0,125, 7, 2, 0,126, 7, 2, 0,127, 7, 2, 0,128, 7, 4, 0,129, 7, - 4, 0,130, 7, 2, 0,131, 7, 2, 0,132, 7, 2, 0,133, 7, 2, 0,134, 7, 2, 0,135, 7, 2, 0,136, 7, 2, 0,137, 7, - 2, 0,138, 7, 2, 0,139, 7, 2, 0,140, 7, 2, 0,141, 7, 2, 0,142, 7, 0, 0,143, 7, 0, 0,144, 7, 7, 0,145, 7, - 2, 0,155, 5, 2, 0,156, 5, 55, 0,146, 7,216, 0, 21, 0, 27, 0, 31, 0, 12, 0,147, 7, 12, 0,148, 7, 12, 0,149, 7, - 12, 0, 6, 6, 46, 0,134, 0, 46, 0,150, 7, 2, 0,151, 7, 2, 0,152, 7, 2, 0,153, 7, 2, 0,154, 7, 2, 0,155, 7, - 2, 0,156, 7, 2, 0,157, 7, 2, 0, 37, 0, 2, 0,158, 7, 2, 0,159, 7, 4, 0, 70, 0,211, 0,160, 7, 9, 0,161, 7, - 2, 0,162, 7,252, 0, 5, 0,252, 0, 0, 0,252, 0, 1, 0,252, 0,163, 7, 13, 0,164, 7, 4, 0, 19, 0,253, 0, 7, 0, -253, 0, 0, 0,253, 0, 1, 0,252, 0,165, 7,252, 0,166, 7, 2, 0, 9, 5, 2, 0, 19, 0, 4, 0, 37, 0,254, 0, 25, 0, -254, 0, 0, 0,254, 0, 1, 0,255, 0,167, 7, 0, 1, 98, 6, 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, 2, 0,171, 7, - 2, 0,172, 7, 2, 0,173, 7, 2, 0,174, 7, 2, 0,175, 7, 2, 0, 37, 0, 2, 0, 19, 0, 2, 0,176, 7, 2, 0,177, 7, - 2, 0,178, 7, 4, 0,179, 7,254, 0,180, 7, 9, 0,181, 7, 4, 0,182, 7, 4, 0,183, 7, 4, 0,184, 7, 4, 0,185, 7, - 0, 0,186, 7, 1, 1, 22, 0, 1, 1, 0, 0, 1, 1, 1, 0,252, 0,165, 7,252, 0,166, 7,252, 0,187, 7,252, 0,188, 7, -216, 0,189, 7, 23, 0, 52, 0, 0, 0, 7, 6, 0, 0,190, 7, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0,191, 7, 2, 0, 37, 0, - 2, 0,154, 7, 2, 0,177, 6, 2, 0, 19, 0, 2, 1,167, 7, 12, 0,192, 7, 12, 0, 6, 6, 12, 0,193, 7, 12, 0,194, 7, - 3, 1, 21, 0, 3, 1, 0, 0, 3, 1, 1, 0,214, 0, 62, 6, 23, 0,195, 7, 23, 0,196, 7, 2, 0, 53, 6, 2, 0, 54, 6, - 2, 0,197, 7, 2, 0,198, 7, 2, 0,199, 7, 2, 0, 19, 0, 7, 0, 85, 2, 2, 0,153, 7, 2, 0,157, 7, 4, 0, 43, 0, - 4, 1,167, 7, 12, 0,200, 7, 12, 0,201, 7, 12, 0,193, 7, 0, 0,202, 7, 9, 0,203, 7, 5, 1, 12, 0, 0, 0,204, 7, - 2, 0,205, 7, 2, 0,206, 7, 2, 0,207, 7, 2, 0,208, 7, 2, 0,252, 4, 2, 0,247, 4,216, 0,209, 7, 46, 0,210, 7, - 4, 0,211, 7, 4, 0,212, 7, 0, 0, 35, 0, 6, 1, 1, 0, 0, 0,213, 7, 7, 1, 8, 0, 57, 0,214, 7, 57, 0,215, 7, - 7, 1,216, 7, 7, 1,217, 7, 7, 1,218, 7, 2, 0,129, 0, 2, 0, 19, 0, 4, 0,219, 7, 8, 1, 4, 0, 4, 0,122, 6, - 4, 0,220, 7, 4, 0,127, 6, 4, 0,221, 7, 9, 1, 2, 0, 4, 0,222, 7, 4, 0,223, 7, 10, 1, 7, 0, 7, 0,224, 7, - 7, 0,225, 7, 7, 0,226, 7, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,118, 4, 7, 0,227, 7, 11, 1, 6, 0, 0, 0,228, 7, - 0, 0, 81, 6, 49, 0,137, 0, 2, 0,106, 0, 2, 0,251, 4, 4, 0, 37, 0, 12, 1, 21, 0, 12, 1, 0, 0, 12, 1, 1, 0, - 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, 4, 0,229, 7, 4, 0,230, 7, 4, 0,231, 7, 6, 1,232, 7, 0, 0,228, 7, - 4, 0,233, 7, 4, 0,234, 7, 11, 1, 87, 3, 8, 1,235, 7, 9, 1,236, 7, 10, 1,237, 7, 7, 1,238, 7, 7, 1,239, 7, - 7, 1,240, 7, 57, 0,241, 7, 57, 0,242, 7, 13, 1, 12, 0, 0, 0, 5, 2, 9, 0,223, 0, 0, 0,224, 0, 4, 0,227, 0, - 4, 0,235, 0, 9, 0,228, 0, 7, 0,230, 0, 7, 0,231, 0, 9, 0,243, 7, 9, 0,244, 7, 9, 0,232, 0, 9, 0,234, 0, - 14, 1, 43, 0, 14, 1, 0, 0, 14, 1, 1, 0, 9, 0,245, 7, 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0, - 4, 0, 23, 0, 4, 0, 88, 0, 4, 0,246, 7, 4, 0,247, 7, 4, 0,230, 7, 4, 0,231, 7, 4, 0,248, 7, 4, 0,246, 0, - 4, 0,249, 7, 4, 0,250, 7, 7, 0,251, 7, 7, 0,252, 7, 4, 0,126, 0, 4, 0,253, 7, 12, 1,254, 7, 36, 0, 80, 0, - 46, 0,134, 0, 49, 0,137, 0, 7, 0,255, 7, 7, 0, 0, 8, 13, 1, 59, 1, 14, 1, 1, 8, 14, 1, 2, 8, 14, 1, 3, 8, - 12, 0, 4, 8, 15, 1, 5, 8, 16, 1, 6, 8, 7, 0, 7, 8, 7, 0, 8, 8, 4, 0, 9, 8, 7, 0, 10, 8, 9, 0, 11, 8, - 4, 0, 12, 8, 4, 0, 13, 8, 4, 0, 14, 8, 7, 0, 15, 8, 17, 1, 4, 0, 17, 1, 0, 0, 17, 1, 1, 0, 12, 0, 16, 8, - 14, 1, 17, 8,202, 0, 6, 0, 12, 0, 18, 8, 12, 0, 4, 8, 12, 0, 19, 8, 14, 1, 20, 8, 0, 0, 21, 8, 0, 0, 22, 8, - 18, 1, 4, 0, 7, 0, 23, 8, 7, 0,109, 0, 2, 0, 24, 8, 2, 0, 25, 8, 19, 1, 6, 0, 7, 0, 26, 8, 7, 0, 27, 8, - 7, 0, 28, 8, 7, 0, 29, 8, 4, 0, 30, 8, 4, 0, 31, 8, 20, 1, 13, 0, 7, 0, 32, 8, 7, 0, 33, 8, 7, 0, 34, 8, - 7, 0, 35, 8, 7, 0, 36, 8, 7, 0, 37, 8, 7, 0, 38, 8, 7, 0, 39, 8, 7, 0, 40, 8, 7, 0, 41, 8, 4, 0,233, 2, - 4, 0, 42, 8, 4, 0, 43, 8, 21, 1, 2, 0, 7, 0, 91, 5, 7, 0, 37, 0, 22, 1, 5, 0, 7, 0, 44, 8, 7, 0, 45, 8, - 4, 0, 90, 0, 4, 0,191, 2, 4, 0, 46, 8, 23, 1, 6, 0, 23, 1, 0, 0, 23, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, - 2, 0, 47, 8, 2, 0, 57, 0, 24, 1, 8, 0, 24, 1, 0, 0, 24, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 47, 8, - 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,126, 0, 25, 1, 45, 0, 25, 1, 0, 0, 25, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, - 2, 0, 47, 8, 2, 0,242, 0, 2, 0, 28, 4, 2, 0, 48, 8, 7, 0, 49, 8, 7, 0, 89, 0, 7, 0,246, 2, 4, 0, 50, 8, - 4, 0, 82, 0, 4, 0,193, 2, 7, 0, 51, 8, 7, 0, 52, 8, 7, 0, 53, 8, 7, 0, 54, 8, 7, 0, 55, 8, 7, 0, 56, 8, - 7, 0,243, 2, 7, 0, 56, 1, 7, 0, 57, 8, 7, 0, 58, 8, 7, 0, 37, 0, 7, 0, 59, 8, 7, 0, 60, 8, 7, 0, 61, 8, - 2, 0, 62, 8, 2, 0, 63, 8, 2, 0, 64, 8, 2, 0, 65, 8, 2, 0, 66, 8, 2, 0, 67, 8, 2, 0, 68, 8, 2, 0, 69, 8, - 2, 0, 28, 2, 2, 0, 70, 8, 2, 0, 25, 2, 2, 0, 71, 8, 0, 0, 72, 8, 0, 0, 73, 8, 7, 0,240, 0, 26, 1, 74, 8, - 67, 0,241, 1, 27, 1, 16, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 47, 8, 2, 0,242, 0, - 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, 7, 0, 74, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0, 75, 8, 7, 0,243, 2, - 7, 0,245, 2, 7, 0,246, 2,228, 0, 5, 0, 2, 0, 17, 0, 2, 0,219, 7, 2, 0, 19, 0, 2, 0, 76, 8, 27, 0,151, 6, -227, 0, 3, 0, 4, 0, 69, 0, 4, 0, 77, 8,228, 0, 2, 0, 28, 1, 7, 0, 28, 1, 0, 0, 28, 1, 1, 0, 0, 0, 20, 0, - 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, 9, 0, 78, 8, 29, 1, 5, 0, 0, 0, 20, 0, 7, 0, 76, 1, 7, 0, 79, 8, - 4, 0, 80, 8, 4, 0, 37, 0, 30, 1, 4, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 43, 0, 2, 0, 70, 0, 31, 1, 4, 0, - 0, 0, 20, 0, 66, 0, 81, 8, 7, 0, 76, 1, 7, 0, 37, 0, 32, 1, 6, 0, 2, 0, 82, 8, 2, 0, 83, 8, 2, 0, 17, 0, - 2, 0, 84, 8, 0, 0, 85, 8, 0, 0, 86, 8, 33, 1, 5, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 0, 0, 87, 8, - 0, 0, 88, 8, 34, 1, 3, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 35, 1, 4, 0, 2, 0, 89, 8, 2, 0, 90, 8, - 2, 0, 19, 0, 2, 0, 37, 0, 36, 1, 6, 0, 0, 0, 20, 0, 0, 0, 91, 8, 2, 0, 92, 8, 2, 0,243, 2, 2, 0, 69, 1, - 2, 0, 70, 0, 37, 1, 5, 0, 0, 0, 20, 0, 7, 0,109, 0, 7, 0,120, 4, 2, 0, 19, 0, 2, 0,205, 2, 38, 1, 3, 0, - 0, 0, 20, 0, 4, 0,193, 2, 4, 0, 89, 8, 39, 1, 7, 0, 0, 0, 20, 0, 7, 0,120, 4, 0, 0, 93, 8, 0, 0, 94, 8, - 2, 0, 69, 1, 2, 0, 43, 0, 4, 0, 95, 8, 40, 1, 4, 0, 0, 0, 96, 8, 0, 0, 97, 8, 4, 0, 17, 0, 7, 0,209, 2, - 41, 1, 3, 0, 32, 0, 98, 8, 0, 0, 99, 8, 0, 0,100, 8, 42, 1, 18, 0, 42, 1, 0, 0, 42, 1, 1, 0, 2, 0, 17, 0, - 2, 0,101, 8, 2, 0, 19, 0, 2, 0,102, 8, 2, 0,103, 8, 2, 0,104, 8, 2, 0, 43, 0, 2, 0, 70, 0, 0, 0, 20, 0, - 9, 0, 2, 0, 43, 1,105, 8, 32, 0, 45, 0, 2, 0,107, 5, 2, 0, 7, 8, 2, 0,106, 8, 2, 0, 37, 0, 44, 1, 11, 0, - 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,107, 8, 2, 0, 19, 0, 2, 0,205, 2, 2, 0,108, 8, 4, 0,109, 8, 4, 0,110, 8, - 4, 0,111, 8, 4, 0,112, 8, 4, 0,113, 8, 45, 1, 1, 0, 0, 0,114, 8, 46, 1, 4, 0, 42, 0,121, 6, 0, 0,115, 8, - 4, 0, 69, 1, 4, 0, 19, 0, 43, 1, 18, 0, 43, 1, 0, 0, 43, 1, 1, 0, 43, 1,116, 8, 2, 0, 17, 0, 2, 0, 19, 0, - 2, 0,117, 8, 2, 0,104, 8, 2, 0,101, 8, 2, 0,118, 8, 2, 0, 70, 0, 2, 0,238, 1, 0, 0, 20, 0, 9, 0, 2, 0, - 47, 1,105, 8, 42, 1,119, 8, 2, 0, 15, 0, 2, 0,120, 8, 4, 0,121, 8, 48, 1, 3, 0, 4, 0,219, 2, 4, 0, 37, 0, - 32, 0, 45, 0, 49, 1, 12, 0,160, 0,122, 8, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 49, 8, 4, 0, 89, 0, 0, 0, 20, 0, - 0, 0,123, 8, 2, 0,124, 8, 2, 0,125, 8, 2, 0,126, 8, 2, 0,127, 8, 7, 0,128, 8, 50, 1, 13, 0, 2, 0, 19, 0, - 2, 0,129, 8, 4, 0, 49, 8, 4, 0, 89, 0, 2, 0,130, 8, 7, 0,242, 3, 7, 0,131, 8, 15, 1, 5, 8, 51, 1,132, 8, - 2, 0, 17, 0, 2, 0,133, 8, 2, 0,134, 8, 2, 0,135, 8, 52, 1, 11, 0, 4, 0,219, 2, 2, 0, 17, 0, 2, 0, 19, 0, - 32, 0, 45, 0, 80, 0,136, 8, 0, 0, 20, 0, 7, 0,137, 8, 7, 0,138, 8, 7, 0,128, 3, 2, 0,139, 8, 2, 0,140, 8, - 53, 1, 5, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 37, 0, 46, 0,134, 0, 32, 0,204, 5, 54, 1, 5, 0, 4, 0, 19, 0, - 4, 0, 17, 0, 0, 0, 20, 0, 0, 0, 87, 8, 32, 0, 45, 0, 55, 1, 13, 0, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,101, 8, - 2, 0,129, 3, 7, 0,141, 8, 7, 0,142, 8, 7, 0, 64, 1, 7, 0, 65, 1, 7, 0,100, 3, 7, 0,103, 3, 7, 0,143, 8, - 7, 0,144, 8, 32, 0,145, 8, 56, 1, 10, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 49, 8, 4, 0, 89, 0, 0, 0, 20, 0, - 0, 0,123, 8, 2, 0, 43, 0, 2, 0, 64, 0, 2, 0,146, 8, 2, 0,147, 8, 57, 1, 8, 0, 32, 0, 45, 0, 7, 0,240, 2, - 7, 0,148, 8, 7, 0,149, 8, 7, 0,235, 2, 2, 0, 19, 0, 2, 0,205, 2, 7, 0,150, 8, 58, 1, 12, 0, 2, 0, 17, 0, - 2, 0, 69, 1, 2, 0, 19, 0, 2, 0,243, 2, 2, 0,219, 2, 2, 0,151, 8, 4, 0, 37, 0, 7, 0,152, 8, 7, 0,153, 8, - 7, 0,154, 8, 7, 0,155, 8, 0, 0,156, 8, 59, 1, 9, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 49, 8, 4, 0, 89, 0, - 0, 0, 20, 0, 2, 0,136, 1, 2, 0, 64, 0, 2, 0,146, 8, 2, 0,147, 8, 60, 1, 7, 0, 4, 0,193, 2, 4, 0,157, 8, - 4, 0,158, 8, 4, 0,159, 8, 7, 0,160, 8, 7, 0,161, 8, 0, 0, 93, 8, 61, 1, 7, 0, 0, 0,162, 8, 32, 0,163, 8, - 0, 0, 99, 8, 2, 0,164, 8, 2, 0, 43, 0, 4, 0, 70, 0, 0, 0,100, 8, 62, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, - 4, 0, 49, 8, 4, 0, 89, 0, 0, 0,165, 8, 0, 0,166, 8, 63, 1, 1, 0, 4, 0, 19, 0, 64, 1, 6, 0, 0, 0, 92, 0, - 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,167, 8, 7, 0,168, 8, 42, 0,121, 6, 65, 1, 4, 0, 0, 0, 70, 2, 2, 0, 19, 0, - 4, 0, 17, 0, 32, 0, 45, 0, 66, 1, 2, 0, 4, 0, 17, 0, 4, 0, 42, 6, 67, 1, 6, 0, 0, 0, 96, 8, 0, 0, 97, 8, - 4, 0, 17, 0, 7, 0, 36, 2, 32, 0, 50, 3, 32, 0,169, 8, 47, 1, 10, 0, 47, 1, 0, 0, 47, 1, 1, 0, 47, 1,116, 8, - 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,101, 8, 2, 0,170, 8, 0, 0, 20, 0, 9, 0, 2, 0, 32, 0, 45, 0, 68, 1, 10, 0, - 7, 0,128, 3, 7, 0,171, 8, 7, 0,172, 8, 7, 0,173, 8, 7, 0,174, 8, 4, 0, 19, 0, 7, 0,151, 8, 7, 0,175, 8, - 7, 0,176, 8, 7, 0, 37, 0, 16, 1, 12, 0, 16, 1, 0, 0, 16, 1, 1, 0, 15, 1,177, 8, 9, 0,223, 0, 4, 0,171, 3, - 4, 0,229, 3, 4, 0,230, 3, 4, 0,178, 8, 4, 0,179, 8, 4, 0,180, 8, 7, 0,242, 3, 7, 0, 37, 0, 51, 1, 8, 0, - 7, 0,181, 8, 7, 0,182, 8, 7, 0,183, 8, 7, 0,184, 8, 7, 0,185, 8, 7, 0,186, 8, 7, 0,187, 8, 7, 0,188, 8, - 15, 1, 15, 0, 27, 0, 31, 0, 0, 0,222, 0, 43, 0,149, 0, 9, 0,223, 0, 43, 0,189, 8, 36, 0, 80, 0, 7, 0,242, 3, - 7, 0,190, 8, 7, 0,131, 8, 7, 0,181, 8, 7, 0,182, 8, 7, 0,191, 8, 4, 0, 90, 0, 4, 0,180, 8, 9, 0,192, 8, - 69, 1, 15, 0,213, 0, 0, 0,213, 0, 1, 0, 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 1, 1,193, 8,214, 0, 62, 6, - 15, 1, 5, 8, 2, 0, 69, 1, 2, 0,129, 8, 2, 0, 89, 2, 2, 0, 90, 2, 2, 0, 19, 0, 2, 0,114, 6, 4, 0, 70, 0, - 70, 1, 6, 0, 70, 1, 0, 0, 70, 1, 1, 0, 32, 0, 45, 0, 9, 0,194, 8, 4, 0,247, 0, 4, 0, 37, 0, 67, 0, 4, 0, - 27, 0, 31, 0, 12, 0,195, 8, 4, 0,131, 0, 7, 0,196, 8, 71, 1, 27, 0, 71, 1, 0, 0, 71, 1, 1, 0, 26, 0,197, 8, - 71, 1, 38, 0, 12, 0,198, 8, 0, 0, 20, 0, 7, 0,199, 8, 7, 0,200, 8, 7, 0,201, 8, 7, 0,202, 8, 4, 0, 19, 0, - 7, 0,203, 8, 7, 0,204, 8, 7, 0,205, 8, 7, 0, 76, 1, 7, 0, 36, 2, 7, 0,206, 8, 7, 0,191, 2, 7, 0,207, 8, - 7, 0,208, 8, 7, 0,209, 8, 7, 0,210, 8, 7, 0,211, 8, 7, 0,172, 0, 4, 0,131, 0, 2, 0,136, 5, 2, 0,136, 1, - 72, 1, 25, 0, 27, 0, 31, 0, 39, 0, 75, 0, 12, 0,212, 8, 12, 0,213, 8, 12, 0,214, 8, 71, 1,215, 8, 9, 0,216, 8, - 9, 0,217, 8, 4, 0, 19, 0, 4, 0, 15, 6, 2, 0,247, 2, 2, 0, 72, 6, 4, 0, 37, 0, 4, 0,131, 0, 4, 0,218, 8, - 2, 0,219, 8, 2, 0,220, 8, 2, 0,221, 8, 2, 0,222, 8, 4, 0,223, 8, 4, 0,224, 8, 4, 0,225, 8, 4, 0,226, 8, - 4, 0,227, 8, 4, 0,228, 8, 73, 1, 2, 0, 7, 0,152, 2, 4, 0, 19, 0, 74, 1, 5, 0, 73, 1,229, 8, 4, 0,191, 2, - 4, 0,230, 8, 4, 0,231, 8, 4, 0, 19, 0, 75, 1, 6, 0, 4, 0, 37, 0, 4, 0, 72, 6, 4, 0,225, 8, 4, 0,226, 8, - 4, 0,227, 8, 4, 0,228, 8, 76, 1, 42, 0, 76, 1, 0, 0, 76, 1, 1, 0, 26, 0,197, 8, 12, 0,155, 3, 0, 0, 20, 0, - 2, 0, 19, 0, 2, 0,232, 8, 2, 0,233, 8, 2, 0,234, 8, 2, 0,114, 3, 2, 0,235, 8, 4, 0, 72, 2, 4, 0,225, 8, - 4, 0,226, 8, 71, 1,236, 8, 76, 1, 38, 0, 76, 1,237, 8, 12, 0,238, 8, 9, 0,239, 8, 9, 0,240, 8, 9, 0,241, 8, - 7, 0, 64, 1, 7, 0,172, 0, 7, 0,242, 8, 7, 0, 15, 2, 7, 0,105, 3, 7, 0,107, 3, 2, 0,137, 3, 2, 0, 37, 0, - 7, 0,243, 8, 7, 0,244, 8, 7, 0,110, 3, 7, 0,245, 8, 7, 0,246, 8, 7, 0,247, 8, 7, 0,248, 8, 7, 0,249, 8, - 7, 0,250, 8, 7, 0,251, 8, 7, 0,252, 8, 7, 0, 65, 2, 32, 0,253, 8,161, 0, 11, 0, 12, 0,254, 8, 2, 0, 19, 0, - 2, 0,255, 8, 7, 0,101, 2, 7, 0, 0, 9, 7, 0, 1, 9, 12, 0, 2, 9, 4, 0, 3, 9, 4, 0, 4, 9, 9, 0, 5, 9, - 9, 0, 6, 9, 77, 1, 1, 0, 4, 0, 4, 9, 78, 1, 12, 0, 4, 0, 4, 9, 7, 0,113, 8, 2, 0, 7, 9, 2, 0, 8, 9, - 7, 0, 9, 9, 7, 0, 10, 9, 2, 0, 11, 9, 2, 0, 19, 0, 7, 0, 12, 9, 7, 0, 13, 9, 7, 0, 14, 9, 7, 0, 15, 9, - 79, 1, 7, 0, 79, 1, 0, 0, 79, 1, 1, 0, 12, 0, 16, 9, 4, 0, 19, 0, 4, 0, 17, 9, 0, 0,233, 3,248, 0, 18, 9, -160, 0, 7, 0, 27, 0, 31, 0, 12, 0, 19, 9, 12, 0,254, 8, 12, 0, 20, 9, 12, 0,100, 0, 4, 0, 19, 0, 4, 0, 21, 9, -218, 0, 4, 0, 27, 0,177, 8, 12, 0,254, 8, 4, 0, 22, 9, 4, 0, 19, 0, 80, 1, 17, 0,213, 0, 0, 0,213, 0, 1, 0, - 12, 0, 6, 6, 4, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6,214, 0, 62, 6,160, 0, 90, 3,218, 0, 23, 9, 0, 0, 69, 1, - 0, 0, 65, 6, 2, 0, 19, 0, 2, 0, 24, 9, 2, 0,115, 6, 2, 0,114, 6, 2, 0, 25, 9, 7, 0, 26, 9, 81, 1, 8, 0, - 81, 1, 0, 0, 81, 1, 1, 0, 79, 1, 27, 9, 36, 0, 80, 0, 12, 0, 94, 3, 4, 0, 19, 0, 0, 0, 20, 0, 4, 0, 28, 9, - 82, 1, 5, 0, 82, 1, 0, 0, 82, 1, 1, 0, 36, 0, 80, 0, 2, 0, 19, 0, 0, 0, 29, 9, 83, 1, 14, 0, 83, 1, 0, 0, - 83, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 30, 9, 0, 0, 31, 9, 0, 0, 29, 9, 7, 0, 32, 9, - 7, 0, 33, 9, 4, 0, 37, 0, 36, 0, 80, 0, 7, 0, 34, 9, 7, 0, 35, 9, 84, 1, 9, 0, 84, 1, 0, 0, 84, 1, 1, 0, - 32, 0, 36, 9, 0, 0,250, 2, 7, 0, 37, 9, 2, 0, 38, 9, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0, 39, 9, 85, 1, 7, 0, - 42, 0,121, 6, 26, 0,197, 8, 4, 0, 19, 0, 4, 0, 40, 9, 12, 0, 41, 9, 32, 0, 36, 9, 0, 0,250, 2, 86, 1, 15, 0, - 32, 0, 36, 9, 2, 0, 42, 9, 2, 0, 19, 0, 2, 0, 43, 9, 2, 0, 44, 9, 0, 0,250, 2, 32, 0, 45, 9, 0, 0, 46, 9, - 7, 0, 47, 9, 7, 0, 36, 2, 7, 0, 48, 9, 7, 0, 49, 9, 2, 0, 17, 0, 2, 0, 69, 1, 7, 0, 76, 1, 87, 1, 6, 0, - 32, 0, 36, 9, 7, 0,229, 8, 2, 0, 50, 9, 2, 0, 51, 9, 2, 0, 19, 0, 2, 0, 52, 9, 88, 1, 6, 0, 32, 0, 36, 9, - 4, 0, 53, 9, 4, 0, 54, 9, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,250, 2, 89, 1, 4, 0, 32, 0, 36, 9, 4, 0, 19, 0, - 4, 0, 53, 9, 0, 0,250, 2, 90, 1, 4, 0, 32, 0, 36, 9, 4, 0, 19, 0, 4, 0, 53, 9, 0, 0,250, 2, 91, 1, 10, 0, - 32, 0, 36, 9, 4, 0, 55, 9, 7, 0,125, 0, 4, 0, 19, 0, 2, 0,117, 6, 2, 0, 56, 9, 2, 0, 43, 0, 2, 0, 70, 0, - 7, 0, 57, 9, 0, 0,250, 2, 92, 1, 4, 0, 32, 0, 36, 9, 4, 0, 19, 0, 4, 0, 53, 9, 0, 0,250, 2, 93, 1, 10, 0, - 32, 0, 36, 9, 2, 0, 17, 0, 2, 0, 36, 4, 4, 0, 88, 0, 4, 0, 89, 0, 7, 0,148, 8, 7, 0,149, 8, 4, 0, 37, 0, -160, 0,122, 8, 0, 0,250, 2, 94, 1, 4, 0, 32, 0, 36, 9, 4, 0,115, 3, 4, 0, 58, 9, 0, 0,250, 2, 95, 1, 4, 0, - 32, 0, 36, 9, 4, 0,115, 3, 4, 0, 37, 0, 0, 0,250, 2, 96, 1, 5, 0, 32, 0, 36, 9, 7, 0,125, 0, 4, 0, 59, 9, - 4, 0,115, 3, 4, 0,116, 3, 97, 1, 6, 0, 32, 0, 36, 9, 4, 0, 60, 9, 4, 0, 61, 9, 7, 0, 62, 9, 7, 0, 63, 9, - 0, 0,250, 2, 98, 1, 16, 0, 32, 0, 36, 9, 32, 0,237, 8, 4, 0, 17, 0, 7, 0, 64, 9, 7, 0, 65, 9, 7, 0, 66, 9, - 7, 0, 67, 9, 7, 0, 68, 9, 7, 0, 69, 9, 7, 0, 70, 9, 7, 0, 71, 9, 7, 0, 72, 9, 2, 0, 19, 0, 2, 0, 37, 0, - 2, 0, 43, 0, 2, 0, 70, 0, 99, 1, 3, 0, 32, 0, 36, 9, 4, 0, 19, 0, 4, 0, 28, 2,100, 1, 5, 0, 32, 0, 36, 9, - 4, 0, 19, 0, 4, 0, 37, 0, 7, 0, 73, 9, 0, 0,250, 2,101, 1, 10, 0, 32, 0, 36, 9, 0, 0,250, 2, 2, 0, 74, 9, - 2, 0, 75, 9, 0, 0, 76, 9, 0, 0, 77, 9, 7, 0, 78, 9, 7, 0, 79, 9, 7, 0, 80, 9, 7, 0, 81, 9,102, 1, 8, 0, - 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 82, 9, 7, 0, 83, 9, 2, 0, 19, 0, 2, 0, 28, 2, -103, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 82, 9, 7, 0, 83, 9, 2, 0, 19, 0, - 2, 0, 28, 2,104, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 82, 9, 7, 0, 83, 9, - 2, 0, 19, 0, 2, 0, 28, 2,105, 1, 7, 0, 32, 0, 36, 9, 0, 0,250, 2, 7, 0, 76, 1, 7, 0, 85, 1, 2, 0, 19, 0, - 2, 0, 69, 1, 4, 0, 37, 0,106, 1, 5, 0, 32, 0, 50, 3, 7, 0, 76, 1, 2, 0, 54, 3, 0, 0, 56, 3, 0, 0, 84, 9, -107, 1, 10, 0,107, 1, 0, 0,107, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 85, 9, 7, 0, 20, 1, 7, 0, 21, 1, - 2, 0, 16, 9, 2, 0, 86, 9, 32, 0, 45, 0,108, 1, 22, 0,108, 1, 0, 0,108, 1, 1, 0, 2, 0, 19, 0, 2, 0, 69, 1, - 2, 0, 87, 9, 2, 0, 88, 9, 36, 0, 80, 0,160, 0,122, 8, 32, 0,164, 0, 7, 0, 88, 0, 7, 0, 89, 0, 7, 0, 89, 9, - 7, 0, 90, 9, 7, 0, 91, 9, 7, 0, 92, 9, 7, 0,236, 2, 7, 0, 93, 9, 7, 0,124, 8, 7, 0, 94, 9, 0, 0, 95, 9, - 0, 0, 96, 9, 12, 0, 96, 3,109, 1, 8, 0, 7, 0, 43, 2, 7, 0,148, 8, 7, 0,149, 8, 9, 0, 2, 0, 2, 0, 97, 9, - 2, 0, 98, 9, 2, 0, 99, 9, 2, 0,100, 9,110, 1, 18, 0,110, 1, 0, 0,110, 1, 1, 0,110, 1,101, 9, 0, 0, 20, 0, -109, 1,102, 9, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,103, 9, 2, 0,104, 9, 2, 0,105, 9, 2, 0,106, 9, 4, 0, 43, 0, - 7, 0,107, 9, 7, 0,108, 9, 4, 0,109, 9, 4, 0,110, 9,110, 1,111, 9,111, 1,112, 9,112, 1, 33, 0,112, 1, 0, 0, -112, 1, 1, 0,112, 1,113, 9, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,229, 7, 2, 0, 7, 8, 2, 0,114, 9, - 2, 0,133, 0, 2, 0,104, 9, 2, 0,219, 7, 12, 0,117, 8, 12, 0,115, 9, 27, 0,151, 6, 9, 0,116, 9, 7, 0,107, 9, - 7, 0,108, 9, 7, 0, 74, 2, 7, 0,117, 9, 2, 0,118, 9, 2, 0,119, 9, 7, 0,120, 9, 7, 0,121, 9, 2, 0,122, 9, - 2, 0,123, 9, 9, 0,124, 9, 24, 0,125, 9, 24, 0,126, 9, 24, 0,127, 9,113, 1,150, 0,114, 1,128, 9,115, 1,129, 9, -111, 1, 8, 0,111, 1, 0, 0,111, 1, 1, 0,112, 1,130, 9,112, 1,131, 9,110, 1,132, 9,110, 1,111, 9, 4, 0, 19, 0, - 4, 0, 37, 0, 60, 0, 23, 0, 27, 0, 31, 0, 39, 0, 75, 0,162, 0, 93, 3, 12, 0,133, 9, 12, 0,134, 9,109, 1,135, 9, - 12, 0,136, 9, 4, 0, 17, 0, 4, 0,137, 9, 4, 0,138, 9, 4, 0,139, 9, 4, 0, 19, 0, 4, 0, 37, 0, 12, 0,140, 9, -115, 1,141, 9,110, 1,142, 9,110, 1,143, 9, 9, 0,144, 9, 9, 0,145, 9, 4, 0,146, 9, 9, 0,147, 9, 9, 0,148, 9, - 9, 0,149, 9,116, 1, 6, 0, 4, 0,124, 0, 4, 0,126, 0, 4, 0,219, 7, 0, 0,150, 9, 0, 0,151, 9, 2, 0, 37, 0, -117, 1, 16, 0, 2, 0,173, 7, 2, 0,174, 7, 2, 0,152, 9, 2, 0,172, 8, 2, 0,153, 9, 2, 0, 68, 0, 7, 0,235, 2, - 7, 0,154, 9, 7, 0,155, 9, 2, 0, 91, 1, 0, 0,156, 9, 0, 0,157, 9, 2, 0,158, 9, 2, 0, 37, 0, 4, 0,159, 9, - 4, 0,160, 9,118, 1, 9, 0, 7, 0,161, 9, 7, 0,162, 9, 7, 0,191, 8, 7, 0,109, 0, 7, 0,163, 9, 7, 0, 78, 6, - 2, 0,164, 9, 0, 0,165, 9, 0, 0, 37, 0,119, 1, 4, 0, 7, 0,166, 9, 7, 0,167, 9, 2, 0,164, 9, 2, 0, 37, 0, -120, 1, 3, 0, 7, 0,168, 9, 7, 0,169, 9, 7, 0, 15, 0,121, 1, 7, 0, 0, 0, 5, 2, 2, 0,249, 4, 2, 0,250, 4, - 2, 0,251, 4, 2, 0,189, 4, 4, 0,126, 0, 4, 0, 34, 4,122, 1, 7, 0, 7, 0,170, 9, 7, 0,171, 9, 7, 0,172, 9, - 7, 0, 85, 2, 7, 0,173, 9, 7, 0,174, 9, 7, 0,175, 9,123, 1, 4, 0, 2, 0,176, 9, 2, 0,177, 9, 2, 0,178, 9, - 2, 0,179, 9,124, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,125, 1, 2, 0, 0, 0,166, 0, 0, 0,180, 9,126, 1, 1, 0, - 0, 0, 20, 0,127, 1, 10, 0, 0, 0,181, 9, 0, 0,182, 9, 0, 0, 71, 6, 0, 0,183, 9, 2, 0,152, 9, 2, 0,184, 9, - 7, 0,185, 9, 7, 0,186, 9, 7, 0,187, 9, 7, 0, 93, 9,128, 1, 2, 0, 9, 0,188, 9, 9, 0,189, 9,129, 1, 11, 0, - 0, 0,251, 4, 0, 0, 17, 0, 0, 0,164, 9, 0, 0,109, 0, 0, 0,190, 9, 0, 0,106, 0, 0, 0, 70, 2, 7, 0,191, 9, - 7, 0,192, 9, 7, 0,193, 9, 7, 0,194, 9,130, 1, 8, 0, 7, 0, 82, 8, 7, 0,125, 0, 7, 0,157, 9, 7, 0,157, 2, - 7, 0,195, 9, 7, 0,236, 0, 7, 0,196, 9, 4, 0, 17, 0,131, 1, 4, 0, 2, 0,197, 9, 2, 0,198, 9, 2, 0,199, 9, - 2, 0, 37, 0,132, 1, 1, 0, 0, 0, 20, 0,133, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 19, 0, 2, 0,200, 9, -134, 1, 10, 0, 2, 0,222, 3, 2, 0, 19, 0, 7, 0,120, 4, 7, 0,201, 9, 7, 0,202, 9, 7, 0,203, 9, 7, 0,204, 9, -133, 1,205, 9,133, 1,206, 9,133, 1,207, 9, 63, 0, 9, 0, 4, 0, 19, 0, 4, 0, 64, 0, 24, 0,208, 9, 24, 0,209, 9, -134, 1,210, 9, 7, 0,211, 9, 7, 0,212, 9, 7, 0,213, 9, 7, 0,214, 9,135, 1, 4, 0, 47, 0,229, 2, 7, 0,215, 9, - 7, 0,170, 1, 7, 0, 37, 0,191, 0, 17, 0, 27, 0, 31, 0,135, 1,216, 9, 63, 0,205, 9, 51, 0,134, 1, 2, 0, 19, 0, - 2, 0,230, 5, 4, 0,106, 0, 7, 0,217, 9, 7, 0, 82, 2, 4, 0,218, 9, 7, 0,219, 9, 7, 0,220, 9, 7, 0,221, 9, - 7, 0,170, 1, 2, 0,104, 1, 0, 0,222, 9, 0, 0,210, 6,136, 1, 10, 0, 4, 0, 17, 0, 4, 0,125, 0, 4, 0, 19, 0, - 4, 0,177, 3, 4, 0,223, 9, 4, 0,224, 9, 4, 0,225, 9, 0, 0, 92, 0, 0, 0, 20, 0, 9, 0, 2, 0, 91, 0, 6, 0, -136, 1,226, 9, 4, 0,227, 9, 4, 0,228, 9, 4, 0,229, 9, 4, 0, 37, 0, 9, 0,230, 9,137, 1, 5, 0, 7, 0,152, 2, - 7, 0,219, 2, 7, 0, 36, 2, 2, 0,128, 2, 2, 0, 37, 0,138, 1, 5, 0, 7, 0,152, 2, 7, 0,231, 9, 7, 0,232, 9, - 7, 0,233, 9, 7, 0,219, 2,139, 1, 5, 0, 32, 0,234, 9,140, 1, 22, 0, 7, 0,203, 5, 7, 0,235, 9, 7, 0, 57, 0, -141, 1, 7, 0, 4, 0,236, 9, 4, 0,237, 9, 4, 0,238, 9, 7, 0,239, 9, 7, 0,240, 9, 7, 0,241, 9, 7, 0, 57, 0, -142, 1, 8, 0,142, 1, 0, 0,142, 1, 1, 0, 32, 0, 45, 0, 4, 0,255, 0, 2, 0, 19, 0, 2, 0, 69, 1, 7, 0,219, 2, - 7, 0, 90, 8,143, 1, 6, 0,143, 1, 0, 0,143, 1, 1, 0, 32, 0, 45, 0, 2, 0,204, 2, 2, 0, 19, 0, 2, 0,242, 9, -144, 1, 18, 0,138, 1,171, 3,138, 1,243, 9,137, 1,244, 9,138, 1, 74, 8,139, 1,245, 9, 4, 0, 82, 0, 7, 0,219, 2, - 7, 0,246, 2, 7, 0,246, 9, 4, 0,236, 9, 4, 0,247, 9, 7, 0,240, 9, 7, 0,241, 9, 7, 0,106, 0, 2, 0, 19, 0, - 2, 0,248, 9, 2, 0,249, 9, 2, 0,250, 9,145, 1,110, 0, 27, 0, 31, 0, 39, 0, 75, 0,146, 1,251, 9,169, 0, 56, 4, - 4, 0, 19, 0, 2, 0, 17, 0, 2, 0, 74, 9, 2, 0,252, 9, 2, 0,253, 9, 2, 0,137, 3, 2, 0,254, 9, 2, 0,255, 9, - 2, 0, 0, 10, 2, 0, 1, 10, 2, 0, 2, 10, 2, 0, 3, 10, 2, 0, 4, 10, 2, 0,238, 4, 2, 0,115, 5, 2, 0, 5, 10, - 2, 0, 6, 10, 2, 0, 7, 10, 2, 0, 8, 10, 2, 0, 9, 10, 2, 0, 25, 2, 2, 0, 67, 8, 2, 0, 42, 8, 2, 0, 10, 10, - 2, 0, 11, 10, 2, 0,187, 3, 2, 0,188, 3, 2, 0, 12, 10, 2, 0, 13, 10, 2, 0, 14, 10, 2, 0, 15, 10, 7, 0, 16, 10, - 7, 0, 17, 10, 7, 0, 18, 10, 2, 0, 19, 10, 2, 0, 20, 10, 7, 0, 21, 10, 7, 0, 22, 10, 7, 0, 23, 10, 7, 0, 49, 8, - 7, 0, 89, 0, 7, 0,246, 2, 7, 0, 55, 8, 7, 0, 24, 10, 7, 0, 25, 10, 7, 0, 26, 10, 4, 0, 50, 8, 4, 0, 48, 8, - 4, 0, 27, 10, 7, 0, 51, 8, 7, 0, 52, 8, 7, 0, 53, 8, 7, 0, 28, 10, 7, 0, 29, 10, 7, 0, 30, 10, 7, 0, 31, 10, - 7, 0, 32, 10, 7, 0, 57, 0, 7, 0, 33, 10, 7, 0, 34, 10, 7, 0, 35, 10, 7, 0, 36, 10, 7, 0,128, 3, 7, 0,106, 0, - 7, 0, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10, 7, 0, 42, 10, 7, 0, 43, 10, 4, 0, 44, 10, - 4, 0, 45, 10, 7, 0, 46, 10, 7, 0, 47, 10, 7, 0, 48, 10, 7, 0, 49, 10, 7, 0, 50, 10, 7, 0,210, 0, 7, 0, 51, 10, - 7, 0,213, 3, 7, 0,211, 3, 7, 0,212, 3, 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10, 7, 0, 55, 10, 7, 0, 56, 10, - 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, 7, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, 7, 0, 63, 10, 7, 0, 64, 10, - 4, 0, 65, 10, 4, 0, 66, 10, 67, 0,160, 3, 12, 0, 67, 10, 67, 0, 68, 10, 32, 0, 69, 10, 32, 0, 70, 10, 36, 0, 80, 0, -164, 0, 61, 1,164, 0, 71, 10,148, 0, 44, 0,148, 0, 0, 0,148, 0, 1, 0,145, 1, 72, 10,144, 1, 73, 10,141, 1,237, 8, -171, 0,238, 3, 9, 0,239, 3,147, 1, 74, 10,147, 1, 75, 10, 12, 0, 76, 10, 12, 0, 77, 10,133, 0, 78, 10,141, 0, 79, 10, -141, 0, 80, 10, 32, 0, 81, 10, 32, 0, 82, 10, 32, 0, 38, 0, 12, 0, 41, 9, 0, 0, 20, 0, 7, 0,240, 0, 7, 0, 17, 3, - 7, 0, 83, 10, 4, 0,193, 2, 4, 0, 57, 0, 4, 0, 19, 0, 4, 0, 50, 8, 4, 0, 84, 10, 4, 0, 85, 10, 4, 0, 86, 10, - 2, 0,247, 0, 2, 0, 87, 10, 2, 0, 88, 10, 2, 0, 89, 10, 0, 0, 90, 10, 2, 0, 91, 10, 2, 0, 92, 10, 2, 0, 93, 10, - 9, 0, 94, 10,137, 0, 55, 4, 12, 0, 4, 3, 12, 0, 95, 10,148, 1, 96, 10,149, 1, 97, 10, 7, 0, 98, 10,135, 0, 35, 0, -150, 1,192, 8, 7, 0, 25, 4, 7, 0, 99, 10, 7, 0,100, 10, 7, 0,123, 4, 7, 0,101, 10, 7, 0,138, 3, 7, 0,128, 3, - 7, 0,102, 10, 7, 0, 84, 2, 7, 0,103, 10, 7, 0,104, 10, 7, 0,105, 10, 7, 0,106, 10, 7, 0,107, 10, 7, 0,108, 10, - 7, 0, 26, 4, 7, 0,109, 10, 7, 0,110, 10, 7, 0,111, 10, 7, 0, 27, 4, 7, 0, 23, 4, 7, 0, 24, 4, 7, 0,112, 10, - 4, 0,113, 10, 4, 0, 90, 0, 4, 0,114, 10, 4, 0,115, 10, 2, 0,116, 10, 2, 0,117, 10, 2, 0,118, 10, 2, 0,119, 10, - 2, 0,120, 10, 2, 0,121, 10,169, 0, 56, 4,136, 0, 8, 0,150, 1,122, 10, 7, 0,123, 10, 7, 0,124, 10, 7, 0,242, 1, - 7, 0,125, 10, 4, 0, 90, 0, 2, 0,126, 10, 2, 0,127, 10,151, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, - 7, 0,128, 10,152, 1, 6, 0,152, 1, 0, 0,152, 1, 1, 0,151, 1,229, 8, 4, 0,253, 0, 2, 0,129, 10, 2, 0, 19, 0, -153, 1, 5, 0,153, 1, 0, 0,153, 1, 1, 0, 12, 0,130, 10, 4, 0,131, 10, 4, 0, 19, 0,154, 1, 9, 0,154, 1, 0, 0, -154, 1, 1, 0, 12, 0,124, 0,153, 1,132, 10, 4, 0, 19, 0, 2, 0,129, 10, 2, 0,133, 10, 7, 0, 91, 0, 0, 0,134, 10, -162, 0, 6, 0, 27, 0, 31, 0, 12, 0, 11, 5, 4, 0, 19, 0, 2, 0,135, 10, 2, 0,136, 10, 9, 0,137, 10,155, 1, 7, 0, -155, 1, 0, 0,155, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, 0, 0,138, 10, 0, 0,139, 10,156, 1, 5, 0, - 12, 0,140, 10, 4, 0,141, 10, 4, 0,142, 10, 4, 0, 19, 0, 4, 0, 37, 0,157, 1, 18, 0, 27, 0, 31, 0,158, 1,143, 10, -158, 1,144, 10, 12, 0,145, 10, 4, 0,146, 10, 2, 0,147, 10, 2, 0, 37, 0, 12, 0,148, 10, 12, 0,149, 10,156, 1,150, 10, - 12, 0,151, 10, 12, 0,152, 10, 12, 0,153, 10,159, 1,154, 10, 4, 0,155, 10, 4, 0, 70, 0, 12, 0,156, 10,211, 0,157, 10, -158, 1, 33, 0,158, 1, 0, 0,158, 1, 1, 0, 9, 0,158, 10, 4, 0,152, 7, 2, 0,159, 10, 2, 0, 37, 0,216, 0, 61, 6, -216, 0,160, 10, 0, 0,161, 10, 2, 0,162, 10, 2, 0,163, 10, 2, 0,173, 7, 2, 0,174, 7, 2, 0,164, 10, 2, 0,165, 10, - 2, 0,177, 3, 2, 0,177, 6, 2, 0,166, 10, 2, 0,167, 10, 2, 0,168, 10, 2, 0,169, 10, 8, 0,170, 10,160, 1,171, 10, -161, 1,172, 10,162, 1,173, 10, 4, 0,174, 10, 4, 0,175, 10, 9, 0,176, 10, 12, 0,149, 10, 12, 0,193, 7, 12, 0,177, 10, - 12, 0,178, 10, 12, 0,179, 10,163, 1, 16, 0,163, 1, 0, 0,163, 1, 1, 0, 0, 0,180, 10, 26, 0, 30, 0, 2, 0,181, 10, - 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,182, 10, 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, 2, 0,186, 10, 2, 0, 19, 0, - 2, 0,187, 10, 2, 0, 70, 2,164, 1,188, 10,165, 1, 10, 0,165, 1, 0, 0,165, 1, 1, 0, 12, 0,189, 10, 0, 0,180, 10, - 2, 0,190, 10, 2, 0,191, 10, 2, 0, 19, 0, 2, 0, 37, 0, 4, 0,192, 10, 9, 0,193, 10,159, 1, 7, 0,159, 1, 0, 0, -159, 1, 1, 0, 0, 0,180, 10, 0, 0,194, 10, 12, 0,110, 7, 4, 0,195, 10, 4, 0, 19, 0,224, 0, 12, 0,224, 0, 0, 0, -224, 0, 1, 0, 0, 0,180, 10, 26, 0, 30, 0,166, 1,167, 7, 9, 0,196, 10,164, 1,188, 10,156, 1,197, 10, 12, 0,198, 10, -224, 0,199, 10, 2, 0, 19, 0, 2, 0,136, 1,160, 1, 23, 0,160, 1, 0, 0,160, 1, 1, 0, 2, 0, 17, 0, 2, 0, 15, 0, - 2, 0, 5, 0, 2, 0, 6, 0, 2, 0,200, 10, 2, 0,201, 10, 2, 0,202, 10, 2, 0,203, 10, 0, 0,204, 10, 0, 0, 37, 0, - 2, 0,182, 10, 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, 2, 0,186, 10, 2, 0, 43, 0, 0, 0,205, 10, 2, 0,206, 10, - 2, 0,207, 10, 4, 0, 70, 0, 9, 0,196, 10,167, 1, 8, 0,167, 1, 0, 0,167, 1, 1, 0, 9, 0, 2, 0, 9, 0,208, 10, - 0, 0,233, 3, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,209, 10,168, 1, 5, 0, 7, 0,210, 10, 4, 0,211, 10, 4, 0,212, 10, - 4, 0, 69, 1, 4, 0, 19, 0,169, 1, 6, 0, 7, 0,213, 10, 7, 0,214, 10, 7, 0,215, 10, 7, 0,216, 10, 4, 0, 17, 0, - 4, 0, 19, 0,170, 1, 5, 0, 7, 0,148, 8, 7, 0,149, 8, 7, 0,219, 2, 2, 0, 39, 2, 2, 0, 40, 2,171, 1, 5, 0, -170, 1, 2, 0, 4, 0, 54, 0, 7, 0,217, 10, 7, 0,148, 8, 7, 0,149, 8,172, 1, 4, 0, 2, 0,218, 10, 2, 0,219, 10, - 2, 0,220, 10, 2, 0,221, 10,173, 1, 2, 0, 42, 0,148, 6, 26, 0,197, 8,174, 1, 3, 0, 24, 0,222, 10, 4, 0, 19, 0, - 4, 0, 37, 0,175, 1, 6, 0, 7, 0,106, 0, 7, 0,221, 2, 7, 0,223, 10, 7, 0, 37, 0, 2, 0,246, 0, 2, 0,224, 10, -176, 1, 5, 0, 7, 0,221, 2, 7, 0, 89, 8, 2, 0,224, 10, 2, 0,136, 1, 15, 1, 5, 8,177, 1, 9, 0,177, 1, 0, 0, -177, 1, 1, 0, 27, 0,151, 6, 0, 0,225, 10, 4, 0,226, 10, 4, 0,227, 10, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,233, 3, -178, 1, 7, 0, 12, 0, 41, 9, 0, 0,228, 10, 9, 0,229, 10, 7, 0, 61, 0, 7, 0,209, 10, 4, 0, 17, 0, 4, 0, 19, 0, -179, 1, 3, 0, 7, 0,230, 10, 4, 0, 19, 0, 4, 0, 37, 0,180, 1, 15, 0,180, 1, 0, 0,180, 1, 1, 0, 79, 1, 27, 9, -178, 1, 62, 0, 12, 0, 96, 3, 35, 0, 50, 0,179, 1,231, 10, 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0, 15, 1, - 4, 0,226, 10, 0, 0,225, 10, 4, 0,232, 10, 7, 0,233, 10,181, 1, 2, 0, 0, 0,234, 10, 0, 0,235, 10,182, 1, 4, 0, -182, 1, 0, 0,182, 1, 1, 0,160, 0, 50, 3, 12, 0,236, 10,183, 1, 24, 0,183, 1, 0, 0,183, 1, 1, 0, 12, 0,237, 10, -160, 0,122, 8,182, 1,238, 10, 12, 0,239, 10, 12, 0, 96, 3, 0, 0,233, 3, 7, 0,209, 10, 7, 0,240, 10, 7, 0, 88, 0, - 7, 0, 89, 0, 7, 0, 89, 9, 7, 0, 90, 9, 7, 0,236, 2, 7, 0, 93, 9, 7, 0,124, 8, 7, 0, 94, 9, 2, 0,241, 10, - 2, 0,242, 10, 2, 0, 43, 0, 2, 0, 17, 0, 4, 0, 19, 0, 4, 0, 70, 0,184, 1, 6, 0,184, 1, 0, 0,184, 1, 1, 0, - 12, 0,237, 10, 4, 0, 19, 0, 4, 0,156, 2, 0, 0,233, 3,185, 1, 10, 0,185, 1, 0, 0,185, 1, 1, 0, 27, 0,151, 6, - 0, 0,243, 10, 4, 0,227, 10, 4, 0,244, 10, 0, 0,225, 10, 4, 0,226, 10, 2, 0, 19, 0, 2, 0,245, 10,186, 1, 7, 0, -186, 1, 0, 0,186, 1, 1, 0, 12, 0,246, 10, 0, 0,233, 3, 2, 0, 19, 0, 2, 0,247, 10, 4, 0,248, 10,187, 1, 5, 0, -187, 1, 0, 0,187, 1, 1, 0, 0, 0,225, 10, 4, 0,226, 10, 7, 0,209, 2, 39, 0, 12, 0,160, 0, 90, 3,160, 0,249, 10, -182, 1,238, 10, 12, 0,250, 10,183, 1,251, 10, 12, 0,252, 10, 12, 0,253, 10, 4, 0, 19, 0, 4, 0,247, 0, 2, 0,254, 10, - 2, 0,255, 10, 7, 0, 0, 11,188, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0,189, 1, 5, 0,189, 1, 0, 0,189, 1, 1, 0, - 4, 0, 17, 0, 4, 0, 19, 0, 0, 0, 20, 0,190, 1, 6, 0,189, 1, 1, 11, 32, 0, 45, 0, 4, 0, 2, 11, 7, 0, 3, 11, - 4, 0, 4, 11, 4, 0, 16, 9,191, 1, 3, 0,189, 1, 1, 11, 4, 0, 2, 11, 7, 0, 5, 11,192, 1, 8, 0,189, 1, 1, 11, - 32, 0, 45, 0, 7, 0, 64, 1, 7, 0, 6, 11, 7, 0, 17, 3, 7, 0,191, 8, 4, 0, 2, 11, 4, 0, 7, 11,193, 1, 5, 0, -189, 1, 1, 11, 7, 0, 8, 11, 7, 0, 7, 8, 7, 0,242, 2, 7, 0, 57, 0,194, 1, 3, 0,189, 1, 1, 11, 7, 0,191, 8, - 7, 0, 9, 11,140, 1, 4, 0, 7, 0, 10, 11, 7, 0, 39, 10, 2, 0, 11, 11, 2, 0, 69, 1,195, 1, 14, 0,195, 1, 0, 0, -195, 1, 1, 0, 12, 0, 12, 11, 12, 0, 13, 11, 12, 0, 14, 11, 0, 0, 20, 0, 4, 0, 31, 0, 4, 0, 19, 0, 4, 0, 15, 11, - 7, 0, 16, 11, 4, 0, 4, 11, 4, 0, 16, 9, 7, 0,242, 3, 7, 0,244, 2,146, 1, 23, 0, 4, 0, 2, 11, 4, 0, 17, 11, - 7, 0, 18, 11, 7, 0, 57, 0, 7, 0, 19, 11, 7, 0,240, 2, 7, 0, 10, 11, 7, 0, 20, 11, 7, 0,221, 2, 7, 0, 21, 11, - 7, 0,120, 4, 7, 0, 22, 11, 7, 0, 23, 11, 7, 0, 24, 11, 7, 0, 25, 11, 7, 0, 26, 11, 7, 0, 27, 11, 7, 0, 28, 11, - 7, 0, 29, 11, 7, 0, 30, 11, 7, 0, 31, 11, 7, 0, 32, 11, 12, 0, 33, 11,121, 0, 34, 0,120, 0, 34, 11,196, 1, 35, 11, - 67, 0, 36, 11, 67, 0, 68, 10, 67, 0, 37, 11,197, 1, 38, 11, 48, 0,165, 0, 48, 0, 39, 11, 48, 0, 40, 11, 7, 0, 41, 11, - 7, 0, 42, 11, 7, 0, 43, 11, 7, 0, 44, 11, 7, 0, 45, 11, 7, 0, 28, 9, 7, 0, 46, 11, 7, 0,170, 1, 7, 0, 47, 11, - 4, 0, 48, 11, 4, 0, 49, 11, 4, 0, 50, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0, 51, 11, 2, 0, 52, 11, 2, 0, 53, 11, - 4, 0, 54, 11, 7, 0,221, 2, 4, 0, 55, 11, 7, 0, 56, 11, 4, 0, 57, 11,137, 0, 58, 11, 12, 0, 59, 11,169, 0, 56, 4, -122, 0, 11, 0,120, 0, 34, 11,148, 0, 34, 3, 7, 0,137, 1, 7, 0, 28, 9, 7, 0, 60, 11, 7, 0, 61, 11, 2, 0, 62, 11, - 2, 0, 63, 11, 2, 0, 64, 11, 2, 0, 17, 0, 4, 0, 37, 0,123, 0, 13, 0,120, 0, 34, 11,139, 0, 14, 3,141, 0, 16, 3, - 7, 0,229, 8, 7, 0, 65, 11, 7, 0, 66, 11, 7, 0, 66, 1, 7, 0, 67, 11, 4, 0, 50, 9, 4, 0, 12, 3, 2, 0, 17, 0, + 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7, 0, 0, 57, 7, 0, 0, 58, 7, 0, 0, 92, 0,249, 0, 5, 0, + 0, 0, 59, 7, 0, 0, 14, 7, 0, 0, 16, 7, 2, 0, 19, 0, 2, 0, 37, 0,250, 0, 24, 0,250, 0, 0, 0,250, 0, 1, 0, + 0, 0, 20, 0,247, 0, 60, 7,248, 0, 61, 7,248, 0, 62, 7,248, 0, 63, 7,248, 0, 64, 7,248, 0, 65, 7,248, 0, 66, 7, +248, 0, 67, 7,248, 0, 68, 7,248, 0, 69, 7,248, 0, 70, 7,248, 0, 71, 7,248, 0, 72, 7,248, 0, 73, 7,248, 0, 74, 7, +248, 0, 75, 7,248, 0, 76, 7,248, 0, 77, 7,249, 0, 78, 7, 4, 0, 79, 7, 4, 0, 37, 0,251, 0, 5, 0, 4, 0, 19, 0, + 4, 0, 37, 0, 7, 0,138, 2, 7, 0, 80, 7, 7, 0, 43, 2,252, 0, 75, 0, 4, 0, 19, 0, 4, 0, 81, 7, 4, 0, 82, 7, + 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, 0, 0, 89, 7, 0, 0, 90, 7, + 0, 0, 91, 7, 4, 0, 92, 7, 4, 0, 37, 0, 2, 0, 93, 7, 2, 0, 94, 7, 4, 0, 95, 7, 4, 0, 96, 7, 4, 0, 97, 7, + 4, 0, 98, 7, 2, 0, 99, 7, 2, 0,100, 7, 4, 0,101, 7, 4, 0,102, 7, 4, 0,103, 7, 4, 0,104, 7, 4, 0,105, 7, + 4, 0,180, 6, 4, 0,106, 7, 2, 0,107, 7, 2, 0,108, 7, 2, 0,109, 7, 2, 0,110, 7, 12, 0,111, 7, 12, 0,112, 7, + 12, 0,113, 7, 12, 0,114, 7, 0, 0,115, 7, 2, 0,116, 7, 2, 0,117, 7, 2, 0,118, 7, 2, 0,119, 7, 2, 0,120, 7, + 2, 0,121, 7, 2, 0,122, 7, 2, 0,123, 7,251, 0,124, 7, 2, 0,125, 7, 2, 0,126, 7, 2, 0,127, 7, 2, 0,128, 7, + 2, 0,129, 7, 2, 0,130, 7, 2, 0,131, 7, 2, 0,132, 7, 4, 0,133, 7, 4, 0,134, 7, 2, 0,135, 7, 2, 0,136, 7, + 2, 0,137, 7, 2, 0,138, 7, 2, 0,139, 7, 2, 0,140, 7, 2, 0,141, 7, 2, 0,142, 7, 2, 0,143, 7, 2, 0,144, 7, + 2, 0,145, 7, 2, 0,146, 7, 0, 0,147, 7, 0, 0,148, 7, 7, 0,149, 7, 2, 0,157, 5, 2, 0,158, 5, 55, 0,150, 7, +217, 0, 21, 0, 27, 0, 31, 0, 12, 0,151, 7, 12, 0,152, 7, 12, 0,153, 7, 12, 0, 8, 6, 46, 0,134, 0, 46, 0,154, 7, + 2, 0,155, 7, 2, 0,156, 7, 2, 0,157, 7, 2, 0,158, 7, 2, 0,159, 7, 2, 0,160, 7, 2, 0,161, 7, 2, 0, 37, 0, + 2, 0,162, 7, 2, 0,163, 7, 4, 0, 70, 0,212, 0,164, 7, 9, 0,165, 7, 2, 0,166, 7,253, 0, 5, 0,253, 0, 0, 0, +253, 0, 1, 0,253, 0,167, 7, 13, 0,168, 7, 4, 0, 19, 0,254, 0, 7, 0,254, 0, 0, 0,254, 0, 1, 0,253, 0,169, 7, +253, 0,170, 7, 2, 0, 10, 5, 2, 0, 19, 0, 4, 0, 37, 0,255, 0, 25, 0,255, 0, 0, 0,255, 0, 1, 0, 0, 1,171, 7, + 1, 1, 99, 6, 0, 0,172, 7, 0, 0,173, 7, 0, 0,174, 7, 2, 0,175, 7, 2, 0,176, 7, 2, 0,177, 7, 2, 0,178, 7, + 2, 0,179, 7, 2, 0, 37, 0, 2, 0, 19, 0, 2, 0,180, 7, 2, 0,181, 7, 2, 0,182, 7, 4, 0,183, 7,255, 0,184, 7, + 9, 0,185, 7, 4, 0,186, 7, 4, 0,187, 7, 4, 0,188, 7, 4, 0,189, 7, 0, 0,190, 7, 2, 1, 22, 0, 2, 1, 0, 0, + 2, 1, 1, 0,253, 0,169, 7,253, 0,170, 7,253, 0,191, 7,253, 0,192, 7,217, 0,193, 7, 23, 0, 52, 0, 0, 0, 9, 6, + 0, 0,194, 7, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0,195, 7, 2, 0, 37, 0, 2, 0,158, 7, 2, 0,178, 6, 2, 0, 19, 0, + 3, 1,171, 7, 12, 0,196, 7, 12, 0, 8, 6, 12, 0,197, 7, 12, 0,198, 7, 4, 1, 21, 0, 4, 1, 0, 0, 4, 1, 1, 0, +215, 0, 63, 6, 23, 0,199, 7, 23, 0,200, 7, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0,201, 7, 2, 0,202, 7, 2, 0,203, 7, + 2, 0, 19, 0, 7, 0, 85, 2, 2, 0,157, 7, 2, 0,161, 7, 4, 0, 43, 0, 5, 1,171, 7, 12, 0,204, 7, 12, 0,205, 7, + 12, 0,197, 7, 0, 0,206, 7, 9, 0,207, 7, 6, 1, 12, 0, 0, 0,208, 7, 2, 0,209, 7, 2, 0,210, 7, 2, 0,211, 7, + 2, 0,212, 7, 2, 0,253, 4, 2, 0,248, 4,217, 0,213, 7, 46, 0,214, 7, 4, 0,215, 7, 4, 0,216, 7, 0, 0, 35, 0, + 7, 1, 1, 0, 0, 0,217, 7, 8, 1, 8, 0, 57, 0,218, 7, 57, 0,219, 7, 8, 1,220, 7, 8, 1,221, 7, 8, 1,222, 7, + 2, 0,129, 0, 2, 0, 19, 0, 4, 0,223, 7, 9, 1, 4, 0, 4, 0,123, 6, 4, 0,224, 7, 4, 0,128, 6, 4, 0,225, 7, + 10, 1, 2, 0, 4, 0,226, 7, 4, 0,227, 7, 11, 1, 7, 0, 7, 0,228, 7, 7, 0,229, 7, 7, 0,230, 7, 4, 0, 19, 0, + 4, 0, 37, 0, 7, 0,119, 4, 7, 0,231, 7, 12, 1, 6, 0, 0, 0,232, 7, 0, 0, 82, 6, 49, 0,137, 0, 2, 0,106, 0, + 2, 0,252, 4, 4, 0, 37, 0, 13, 1, 21, 0, 13, 1, 0, 0, 13, 1, 1, 0, 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, + 4, 0,233, 7, 4, 0,234, 7, 4, 0,235, 7, 7, 1,236, 7, 0, 0,232, 7, 4, 0,237, 7, 4, 0,238, 7, 12, 1, 88, 3, + 9, 1,239, 7, 10, 1,240, 7, 11, 1,241, 7, 8, 1,242, 7, 8, 1,243, 7, 8, 1,244, 7, 57, 0,245, 7, 57, 0,246, 7, + 14, 1, 12, 0, 0, 0, 5, 2, 9, 0,223, 0, 0, 0,224, 0, 4, 0,227, 0, 4, 0,235, 0, 9, 0,228, 0, 7, 0,230, 0, + 7, 0,231, 0, 9, 0,247, 7, 9, 0,248, 7, 9, 0,232, 0, 9, 0,234, 0, 15, 1, 43, 0, 15, 1, 0, 0, 15, 1, 1, 0, + 9, 0,249, 7, 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0, 4, 0, 23, 0, 4, 0, 88, 0, 4, 0,250, 7, + 4, 0,251, 7, 4, 0,234, 7, 4, 0,235, 7, 4, 0,252, 7, 4, 0,246, 0, 4, 0,253, 7, 4, 0,254, 7, 7, 0,255, 7, + 7, 0, 0, 8, 4, 0,126, 0, 4, 0, 1, 8, 13, 1, 2, 8, 36, 0, 80, 0, 46, 0,134, 0, 49, 0,137, 0, 7, 0, 3, 8, + 7, 0, 4, 8, 14, 1, 59, 1, 15, 1, 5, 8, 15, 1, 6, 8, 15, 1, 7, 8, 12, 0, 8, 8, 16, 1, 9, 8, 17, 1, 10, 8, + 7, 0, 11, 8, 7, 0, 12, 8, 4, 0, 13, 8, 7, 0, 14, 8, 9, 0, 15, 8, 4, 0, 16, 8, 4, 0, 17, 8, 4, 0, 18, 8, + 7, 0, 19, 8, 18, 1, 4, 0, 18, 1, 0, 0, 18, 1, 1, 0, 12, 0, 20, 8, 15, 1, 21, 8,203, 0, 6, 0, 12, 0, 22, 8, + 12, 0, 8, 8, 12, 0, 23, 8, 15, 1, 24, 8, 0, 0, 25, 8, 0, 0, 26, 8, 19, 1, 4, 0, 7, 0, 27, 8, 7, 0,109, 0, + 2, 0, 28, 8, 2, 0, 29, 8, 20, 1, 6, 0, 7, 0, 30, 8, 7, 0, 31, 8, 7, 0, 32, 8, 7, 0, 33, 8, 4, 0, 34, 8, + 4, 0, 35, 8, 21, 1, 13, 0, 7, 0, 36, 8, 7, 0, 37, 8, 7, 0, 38, 8, 7, 0, 39, 8, 7, 0, 40, 8, 7, 0, 41, 8, + 7, 0, 42, 8, 7, 0, 43, 8, 7, 0, 44, 8, 7, 0, 45, 8, 4, 0,233, 2, 4, 0, 46, 8, 4, 0, 47, 8, 22, 1, 2, 0, + 7, 0, 92, 5, 7, 0, 37, 0, 23, 1, 5, 0, 7, 0, 48, 8, 7, 0, 49, 8, 4, 0, 90, 0, 4, 0,191, 2, 4, 0, 50, 8, + 24, 1, 6, 0, 24, 1, 0, 0, 24, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 51, 8, 2, 0, 57, 0, 25, 1, 8, 0, + 25, 1, 0, 0, 25, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 51, 8, 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,126, 0, + 26, 1, 45, 0, 26, 1, 0, 0, 26, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 51, 8, 2, 0,242, 0, 2, 0, 29, 4, + 2, 0, 52, 8, 7, 0, 53, 8, 7, 0, 89, 0, 7, 0,246, 2, 4, 0, 54, 8, 4, 0, 82, 0, 4, 0,193, 2, 7, 0, 55, 8, + 7, 0, 56, 8, 7, 0, 57, 8, 7, 0, 58, 8, 7, 0, 59, 8, 7, 0, 60, 8, 7, 0,243, 2, 7, 0, 56, 1, 7, 0, 61, 8, + 7, 0, 62, 8, 7, 0, 37, 0, 7, 0, 63, 8, 7, 0, 64, 8, 7, 0, 65, 8, 2, 0, 66, 8, 2, 0, 67, 8, 2, 0, 68, 8, + 2, 0, 69, 8, 2, 0, 70, 8, 2, 0, 71, 8, 2, 0, 72, 8, 2, 0, 73, 8, 2, 0, 28, 2, 2, 0, 74, 8, 2, 0, 25, 2, + 2, 0, 75, 8, 0, 0, 76, 8, 0, 0, 77, 8, 7, 0,240, 0, 27, 1, 78, 8, 67, 0,241, 1, 28, 1, 16, 0, 28, 1, 0, 0, + 28, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 51, 8, 2, 0,242, 0, 7, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2, + 7, 0, 74, 2, 7, 0,241, 2, 7, 0,242, 2, 7, 0, 79, 8, 7, 0,243, 2, 7, 0,245, 2, 7, 0,246, 2,229, 0, 5, 0, + 2, 0, 17, 0, 2, 0,223, 7, 2, 0, 19, 0, 2, 0, 80, 8, 27, 0,152, 6,228, 0, 3, 0, 4, 0, 69, 0, 4, 0, 81, 8, +229, 0, 2, 0, 29, 1, 7, 0, 29, 1, 0, 0, 29, 1, 1, 0, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, + 9, 0, 82, 8, 30, 1, 5, 0, 0, 0, 20, 0, 7, 0, 76, 1, 7, 0, 83, 8, 4, 0, 84, 8, 4, 0, 37, 0, 31, 1, 4, 0, + 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 43, 0, 2, 0, 70, 0, 32, 1, 4, 0, 0, 0, 20, 0, 66, 0, 85, 8, 7, 0, 76, 1, + 7, 0, 37, 0, 33, 1, 6, 0, 2, 0, 86, 8, 2, 0, 87, 8, 2, 0, 17, 0, 2, 0, 88, 8, 0, 0, 89, 8, 0, 0, 90, 8, + 34, 1, 5, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 0, 0, 91, 8, 0, 0, 92, 8, 35, 1, 3, 0, 4, 0, 17, 0, + 4, 0, 37, 0, 0, 0, 20, 0, 36, 1, 4, 0, 2, 0, 93, 8, 2, 0, 94, 8, 2, 0, 19, 0, 2, 0, 37, 0, 37, 1, 6, 0, + 0, 0, 20, 0, 0, 0, 95, 8, 2, 0, 96, 8, 2, 0,243, 2, 2, 0, 69, 1, 2, 0, 70, 0, 38, 1, 5, 0, 0, 0, 20, 0, + 7, 0,109, 0, 7, 0,121, 4, 2, 0, 19, 0, 2, 0,205, 2, 39, 1, 3, 0, 0, 0, 20, 0, 4, 0,193, 2, 4, 0, 93, 8, + 40, 1, 7, 0, 0, 0, 20, 0, 7, 0,121, 4, 0, 0, 97, 8, 0, 0, 98, 8, 2, 0, 69, 1, 2, 0, 43, 0, 4, 0, 99, 8, + 41, 1, 4, 0, 0, 0,100, 8, 0, 0,101, 8, 4, 0, 17, 0, 7, 0,209, 2, 42, 1, 3, 0, 32, 0,102, 8, 0, 0,103, 8, + 0, 0,104, 8, 43, 1, 18, 0, 43, 1, 0, 0, 43, 1, 1, 0, 2, 0, 17, 0, 2, 0,105, 8, 2, 0, 19, 0, 2, 0,106, 8, + 2, 0,107, 8, 2, 0,108, 8, 2, 0, 43, 0, 2, 0, 70, 0, 0, 0, 20, 0, 9, 0, 2, 0, 44, 1,109, 8, 32, 0, 45, 0, + 2, 0,109, 5, 2, 0, 11, 8, 2, 0,110, 8, 2, 0, 37, 0, 45, 1, 11, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,111, 8, + 2, 0, 19, 0, 2, 0,205, 2, 2, 0,112, 8, 4, 0,113, 8, 4, 0,114, 8, 4, 0,115, 8, 4, 0,116, 8, 4, 0,117, 8, + 46, 1, 1, 0, 0, 0,118, 8, 47, 1, 4, 0, 42, 0,122, 6, 0, 0,119, 8, 4, 0, 69, 1, 4, 0, 19, 0, 44, 1, 18, 0, + 44, 1, 0, 0, 44, 1, 1, 0, 44, 1,120, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,121, 8, 2, 0,108, 8, 2, 0,105, 8, + 2, 0,122, 8, 2, 0, 70, 0, 2, 0,238, 1, 0, 0, 20, 0, 9, 0, 2, 0, 48, 1,109, 8, 43, 1,123, 8, 2, 0, 15, 0, + 2, 0,124, 8, 4, 0,125, 8, 49, 1, 3, 0, 4, 0,219, 2, 4, 0, 37, 0, 32, 0, 45, 0, 50, 1, 12, 0,161, 0,126, 8, + 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 53, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,127, 8, 2, 0,128, 8, 2, 0,129, 8, + 2, 0,130, 8, 2, 0,131, 8, 7, 0,132, 8, 51, 1, 13, 0, 2, 0, 19, 0, 2, 0,133, 8, 4, 0, 53, 8, 4, 0, 89, 0, + 2, 0,134, 8, 7, 0,243, 3, 7, 0,135, 8, 16, 1, 9, 8, 52, 1,136, 8, 2, 0, 17, 0, 2, 0,137, 8, 2, 0,138, 8, + 2, 0,139, 8, 53, 1, 11, 0, 4, 0,219, 2, 2, 0, 17, 0, 2, 0, 19, 0, 32, 0, 45, 0, 80, 0,140, 8, 0, 0, 20, 0, + 7, 0,141, 8, 7, 0,142, 8, 7, 0,129, 3, 2, 0,143, 8, 2, 0,144, 8, 54, 1, 5, 0, 2, 0, 17, 0, 2, 0, 19, 0, + 4, 0, 37, 0, 46, 0,134, 0, 32, 0, 98, 5, 55, 1, 5, 0, 4, 0, 19, 0, 4, 0, 17, 0, 0, 0, 20, 0, 0, 0, 91, 8, + 32, 0, 45, 0, 56, 1, 13, 0, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,105, 8, 2, 0,130, 3, 7, 0,145, 8, 7, 0,146, 8, + 7, 0, 64, 1, 7, 0, 65, 1, 7, 0,101, 3, 7, 0,104, 3, 7, 0,147, 8, 7, 0,148, 8, 32, 0,149, 8, 57, 1, 10, 0, + 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 53, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,127, 8, 2, 0, 43, 0, 2, 0, 64, 0, + 2, 0,150, 8, 2, 0,151, 8, 58, 1, 8, 0, 32, 0, 45, 0, 7, 0,240, 2, 7, 0,152, 8, 7, 0,153, 8, 7, 0,235, 2, + 2, 0, 19, 0, 2, 0,205, 2, 7, 0,154, 8, 59, 1, 12, 0, 2, 0, 17, 0, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0,243, 2, + 2, 0,219, 2, 2, 0,155, 8, 4, 0, 37, 0, 7, 0,156, 8, 7, 0,157, 8, 7, 0,158, 8, 7, 0,159, 8, 0, 0,160, 8, + 60, 1, 9, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 53, 8, 4, 0, 89, 0, 0, 0, 20, 0, 2, 0,136, 1, 2, 0, 64, 0, + 2, 0,150, 8, 2, 0,151, 8, 61, 1, 7, 0, 4, 0,193, 2, 4, 0,161, 8, 4, 0,162, 8, 4, 0,163, 8, 7, 0,164, 8, + 7, 0,165, 8, 0, 0, 97, 8, 62, 1, 7, 0, 0, 0,166, 8, 32, 0,167, 8, 0, 0,103, 8, 2, 0,168, 8, 2, 0, 43, 0, + 4, 0, 70, 0, 0, 0,104, 8, 63, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 53, 8, 4, 0, 89, 0, 0, 0,169, 8, + 0, 0,170, 8, 64, 1, 1, 0, 4, 0, 19, 0, 65, 1, 6, 0, 0, 0, 92, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,171, 8, + 7, 0,172, 8, 42, 0,122, 6, 66, 1, 4, 0, 0, 0, 70, 2, 2, 0, 19, 0, 4, 0, 17, 0, 32, 0, 45, 0, 67, 1, 2, 0, + 4, 0, 17, 0, 4, 0, 43, 6, 68, 1, 6, 0, 0, 0,100, 8, 0, 0,101, 8, 4, 0, 17, 0, 7, 0, 36, 2, 32, 0, 48, 3, + 32, 0,173, 8, 48, 1, 10, 0, 48, 1, 0, 0, 48, 1, 1, 0, 48, 1,120, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,105, 8, + 2, 0,174, 8, 0, 0, 20, 0, 9, 0, 2, 0, 32, 0, 45, 0, 69, 1, 10, 0, 7, 0,129, 3, 7, 0,175, 8, 7, 0,176, 8, + 7, 0,177, 8, 7, 0,178, 8, 4, 0, 19, 0, 7, 0,155, 8, 7, 0,179, 8, 7, 0,180, 8, 7, 0, 37, 0, 17, 1, 12, 0, + 17, 1, 0, 0, 17, 1, 1, 0, 16, 1,181, 8, 9, 0,223, 0, 4, 0,172, 3, 4, 0,230, 3, 4, 0,231, 3, 4, 0,182, 8, + 4, 0,183, 8, 4, 0,184, 8, 7, 0,243, 3, 7, 0, 37, 0, 52, 1, 8, 0, 7, 0,185, 8, 7, 0,186, 8, 7, 0,187, 8, + 7, 0,188, 8, 7, 0,189, 8, 7, 0,190, 8, 7, 0,191, 8, 7, 0,192, 8, 16, 1, 15, 0, 27, 0, 31, 0, 0, 0,222, 0, + 43, 0,149, 0, 9, 0,223, 0, 43, 0,193, 8, 36, 0, 80, 0, 7, 0,243, 3, 7, 0,194, 8, 7, 0,135, 8, 7, 0,185, 8, + 7, 0,186, 8, 7, 0,195, 8, 4, 0, 90, 0, 4, 0,184, 8, 9, 0,196, 8, 70, 1, 15, 0,214, 0, 0, 0,214, 0, 1, 0, + 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, 2, 1,197, 8,215, 0, 63, 6, 16, 1, 9, 8, 2, 0, 69, 1, 2, 0,133, 8, + 2, 0, 89, 2, 2, 0, 90, 2, 2, 0, 19, 0, 2, 0,115, 6, 4, 0, 70, 0, 71, 1, 6, 0, 71, 1, 0, 0, 71, 1, 1, 0, + 32, 0, 45, 0, 9, 0,198, 8, 4, 0,247, 0, 4, 0, 37, 0, 67, 0, 4, 0, 27, 0, 31, 0, 12, 0,199, 8, 4, 0,131, 0, + 7, 0,200, 8, 72, 1, 27, 0, 72, 1, 0, 0, 72, 1, 1, 0, 26, 0,201, 8, 72, 1, 38, 0, 12, 0,202, 8, 0, 0, 20, 0, + 7, 0,203, 8, 7, 0,204, 8, 7, 0,205, 8, 7, 0,206, 8, 4, 0, 19, 0, 7, 0,207, 8, 7, 0,208, 8, 7, 0,209, 8, + 7, 0, 76, 1, 7, 0, 36, 2, 7, 0,210, 8, 7, 0,191, 2, 7, 0,211, 8, 7, 0,212, 8, 7, 0,213, 8, 7, 0,214, 8, + 7, 0,215, 8, 7, 0,172, 0, 4, 0,131, 0, 2, 0,138, 5, 2, 0,136, 1, 73, 1, 25, 0, 27, 0, 31, 0, 39, 0, 75, 0, + 12, 0,216, 8, 12, 0,217, 8, 12, 0,218, 8, 72, 1,219, 8, 9, 0,220, 8, 9, 0,221, 8, 4, 0, 19, 0, 4, 0, 17, 6, + 2, 0,247, 2, 2, 0, 73, 6, 4, 0, 37, 0, 4, 0,131, 0, 4, 0,222, 8, 2, 0,223, 8, 2, 0,224, 8, 2, 0,225, 8, + 2, 0,226, 8, 4, 0,227, 8, 4, 0,228, 8, 4, 0,229, 8, 4, 0,230, 8, 4, 0,231, 8, 4, 0,232, 8, 74, 1, 2, 0, + 7, 0,152, 2, 4, 0, 19, 0, 75, 1, 5, 0, 74, 1,233, 8, 4, 0,191, 2, 4, 0,234, 8, 4, 0,235, 8, 4, 0, 19, 0, + 76, 1, 6, 0, 4, 0, 37, 0, 4, 0, 73, 6, 4, 0,229, 8, 4, 0,230, 8, 4, 0,231, 8, 4, 0,232, 8, 77, 1, 42, 0, + 77, 1, 0, 0, 77, 1, 1, 0, 26, 0,201, 8, 12, 0,156, 3, 0, 0, 20, 0, 2, 0, 19, 0, 2, 0,236, 8, 2, 0,237, 8, + 2, 0,238, 8, 2, 0,115, 3, 2, 0,239, 8, 4, 0, 72, 2, 4, 0,229, 8, 4, 0,230, 8, 72, 1,240, 8, 77, 1, 38, 0, + 77, 1,241, 8, 12, 0,242, 8, 9, 0,243, 8, 9, 0,244, 8, 9, 0,245, 8, 7, 0, 64, 1, 7, 0,172, 0, 7, 0,246, 8, + 7, 0, 15, 2, 7, 0,106, 3, 7, 0,108, 3, 2, 0,138, 3, 2, 0, 37, 0, 7, 0,247, 8, 7, 0,248, 8, 7, 0,111, 3, + 7, 0,249, 8, 7, 0,250, 8, 7, 0,251, 8, 7, 0,252, 8, 7, 0,253, 8, 7, 0,254, 8, 7, 0,255, 8, 7, 0, 0, 9, + 7, 0, 65, 2, 32, 0, 1, 9,162, 0, 11, 0, 12, 0, 2, 9, 2, 0, 19, 0, 2, 0, 3, 9, 7, 0,101, 2, 7, 0, 4, 9, + 7, 0, 5, 9, 12, 0, 6, 9, 4, 0, 7, 9, 4, 0, 8, 9, 9, 0, 9, 9, 9, 0, 10, 9, 78, 1, 1, 0, 4, 0, 8, 9, + 79, 1, 12, 0, 4, 0, 8, 9, 7, 0,117, 8, 2, 0, 11, 9, 2, 0, 12, 9, 7, 0, 13, 9, 7, 0, 14, 9, 2, 0, 15, 9, + 2, 0, 19, 0, 7, 0, 16, 9, 7, 0, 17, 9, 7, 0, 18, 9, 7, 0, 19, 9, 80, 1, 7, 0, 80, 1, 0, 0, 80, 1, 1, 0, + 12, 0, 20, 9, 4, 0, 19, 0, 4, 0, 21, 9, 0, 0,234, 3,249, 0, 22, 9,161, 0, 7, 0, 27, 0, 31, 0, 12, 0, 23, 9, + 12, 0, 2, 9, 12, 0, 24, 9, 12, 0,100, 0, 4, 0, 19, 0, 4, 0, 25, 9,219, 0, 4, 0, 27, 0,181, 8, 12, 0, 2, 9, + 4, 0, 26, 9, 4, 0, 19, 0, 81, 1, 17, 0,214, 0, 0, 0,214, 0, 1, 0, 12, 0, 8, 6, 4, 0, 9, 6, 7, 0, 10, 6, + 2, 0, 11, 6,215, 0, 63, 6,161, 0, 91, 3,219, 0, 27, 9, 0, 0, 69, 1, 0, 0, 66, 6, 2, 0, 19, 0, 2, 0, 28, 9, + 2, 0,116, 6, 2, 0,115, 6, 2, 0, 29, 9, 7, 0, 30, 9, 82, 1, 8, 0, 82, 1, 0, 0, 82, 1, 1, 0, 80, 1, 31, 9, + 36, 0, 80, 0, 12, 0, 95, 3, 4, 0, 19, 0, 0, 0, 20, 0, 4, 0, 32, 9, 83, 1, 5, 0, 83, 1, 0, 0, 83, 1, 1, 0, + 36, 0, 80, 0, 2, 0, 19, 0, 0, 0, 33, 9, 84, 1, 14, 0, 84, 1, 0, 0, 84, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, + 2, 0, 19, 0, 0, 0, 34, 9, 0, 0, 35, 9, 0, 0, 33, 9, 7, 0, 36, 9, 7, 0, 37, 9, 4, 0, 37, 0, 36, 0, 80, 0, + 7, 0, 38, 9, 7, 0, 39, 9, 85, 1, 9, 0, 85, 1, 0, 0, 85, 1, 1, 0, 32, 0, 40, 9, 0, 0,250, 2, 7, 0, 41, 9, + 2, 0, 42, 9, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0, 43, 9, 86, 1, 7, 0, 42, 0,122, 6, 26, 0,201, 8, 4, 0, 19, 0, + 4, 0, 44, 9, 12, 0, 45, 9, 32, 0, 40, 9, 0, 0,250, 2, 87, 1, 15, 0, 32, 0, 40, 9, 2, 0, 46, 9, 2, 0, 19, 0, + 2, 0, 47, 9, 2, 0, 48, 9, 0, 0,250, 2, 32, 0, 49, 9, 0, 0, 50, 9, 7, 0, 51, 9, 7, 0, 36, 2, 7, 0, 52, 9, + 7, 0, 53, 9, 2, 0, 17, 0, 2, 0, 69, 1, 7, 0, 76, 1, 88, 1, 6, 0, 32, 0, 40, 9, 7, 0,233, 8, 2, 0, 54, 9, + 2, 0, 55, 9, 2, 0, 19, 0, 2, 0, 56, 9, 89, 1, 6, 0, 32, 0, 40, 9, 4, 0, 57, 9, 4, 0, 58, 9, 4, 0, 90, 0, + 4, 0, 37, 0, 0, 0,250, 2, 90, 1, 4, 0, 32, 0, 40, 9, 4, 0, 19, 0, 4, 0, 57, 9, 0, 0,250, 2, 91, 1, 4, 0, + 32, 0, 40, 9, 4, 0, 19, 0, 4, 0, 57, 9, 0, 0,250, 2, 92, 1, 10, 0, 32, 0, 40, 9, 4, 0, 59, 9, 7, 0,125, 0, + 4, 0, 19, 0, 2, 0,118, 6, 2, 0, 60, 9, 2, 0, 43, 0, 2, 0, 70, 0, 7, 0, 61, 9, 0, 0,250, 2, 93, 1, 4, 0, + 32, 0, 40, 9, 4, 0, 19, 0, 4, 0, 57, 9, 0, 0,250, 2, 94, 1, 10, 0, 32, 0, 40, 9, 2, 0, 17, 0, 2, 0, 37, 4, + 4, 0, 88, 0, 4, 0, 89, 0, 7, 0,152, 8, 7, 0,153, 8, 4, 0, 37, 0,161, 0,126, 8, 0, 0,250, 2, 95, 1, 4, 0, + 32, 0, 40, 9, 4, 0,116, 3, 4, 0, 62, 9, 0, 0,250, 2, 96, 1, 4, 0, 32, 0, 40, 9, 4, 0,116, 3, 4, 0, 37, 0, + 0, 0,250, 2, 97, 1, 5, 0, 32, 0, 40, 9, 7, 0,125, 0, 4, 0, 63, 9, 4, 0,116, 3, 4, 0,117, 3, 98, 1, 6, 0, + 32, 0, 40, 9, 4, 0, 64, 9, 4, 0, 65, 9, 7, 0, 66, 9, 7, 0, 67, 9, 0, 0,250, 2, 99, 1, 16, 0, 32, 0, 40, 9, + 32, 0,241, 8, 4, 0, 17, 0, 7, 0, 68, 9, 7, 0, 69, 9, 7, 0, 70, 9, 7, 0, 71, 9, 7, 0, 72, 9, 7, 0, 73, 9, + 7, 0, 74, 9, 7, 0, 75, 9, 7, 0, 76, 9, 2, 0, 19, 0, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0, 70, 0,100, 1, 3, 0, + 32, 0, 40, 9, 4, 0, 19, 0, 4, 0, 28, 2,101, 1, 5, 0, 32, 0, 40, 9, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0, 77, 9, + 0, 0,250, 2,102, 1, 10, 0, 32, 0, 40, 9, 0, 0,250, 2, 2, 0, 78, 9, 2, 0, 79, 9, 0, 0, 80, 9, 0, 0, 81, 9, + 7, 0, 82, 9, 7, 0, 83, 9, 7, 0, 84, 9, 7, 0, 85, 9,103, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, + 7, 0, 12, 0, 7, 0, 86, 9, 7, 0, 87, 9, 2, 0, 19, 0, 2, 0, 28, 2,104, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, + 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 86, 9, 7, 0, 87, 9, 2, 0, 19, 0, 2, 0, 28, 2,105, 1, 8, 0, 7, 0, 9, 0, + 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0, 86, 9, 7, 0, 87, 9, 2, 0, 19, 0, 2, 0, 28, 2,106, 1, 7, 0, + 32, 0, 40, 9, 0, 0,250, 2, 7, 0, 76, 1, 7, 0, 85, 1, 2, 0, 19, 0, 2, 0, 69, 1, 4, 0, 37, 0,107, 1, 5, 0, + 32, 0, 48, 3, 7, 0, 76, 1, 2, 0, 52, 3, 0, 0, 54, 3, 0, 0, 88, 9,108, 1, 10, 0,108, 1, 0, 0,108, 1, 1, 0, + 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 89, 9, 7, 0, 20, 1, 7, 0, 21, 1, 2, 0, 20, 9, 2, 0, 90, 9, 32, 0, 45, 0, +109, 1, 22, 0,109, 1, 0, 0,109, 1, 1, 0, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 91, 9, 2, 0, 92, 9, 36, 0, 80, 0, +161, 0,126, 8, 32, 0,164, 0, 7, 0, 88, 0, 7, 0, 89, 0, 7, 0, 93, 9, 7, 0, 94, 9, 7, 0, 95, 9, 7, 0, 96, 9, + 7, 0,236, 2, 7, 0, 97, 9, 7, 0,128, 8, 7, 0, 98, 9, 0, 0, 99, 9, 0, 0,100, 9, 12, 0, 97, 3,110, 1, 8, 0, + 7, 0, 43, 2, 7, 0,152, 8, 7, 0,153, 8, 9, 0, 2, 0, 2, 0,101, 9, 2, 0,102, 9, 2, 0,103, 9, 2, 0,104, 9, +111, 1, 18, 0,111, 1, 0, 0,111, 1, 1, 0,111, 1,105, 9, 0, 0, 20, 0,110, 1,106, 9, 2, 0, 17, 0, 2, 0, 19, 0, + 2, 0,107, 9, 2, 0,108, 9, 2, 0,109, 9, 2, 0,110, 9, 4, 0, 43, 0, 7, 0,111, 9, 7, 0,112, 9, 4, 0,113, 9, + 4, 0,114, 9,111, 1,115, 9,112, 1,116, 9,113, 1, 33, 0,113, 1, 0, 0,113, 1, 1, 0,113, 1,117, 9, 0, 0, 20, 0, + 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,233, 7, 2, 0, 11, 8, 2, 0,118, 9, 2, 0,133, 0, 2, 0,108, 9, 2, 0,223, 7, + 12, 0,121, 8, 12, 0,119, 9, 27, 0,152, 6, 9, 0,120, 9, 7, 0,111, 9, 7, 0,112, 9, 7, 0, 74, 2, 7, 0,121, 9, + 2, 0,122, 9, 2, 0,123, 9, 7, 0,124, 9, 7, 0,125, 9, 2, 0,126, 9, 2, 0,127, 9, 9, 0,128, 9, 24, 0,129, 9, + 24, 0,130, 9, 24, 0,131, 9,114, 1,150, 0,115, 1,132, 9,116, 1,133, 9,112, 1, 8, 0,112, 1, 0, 0,112, 1, 1, 0, +113, 1,134, 9,113, 1,135, 9,111, 1,136, 9,111, 1,115, 9, 4, 0, 19, 0, 4, 0, 37, 0, 60, 0, 23, 0, 27, 0, 31, 0, + 39, 0, 75, 0,163, 0, 94, 3, 12, 0,137, 9, 12, 0,138, 9,110, 1,139, 9, 12, 0,140, 9, 4, 0, 17, 0, 4, 0,141, 9, + 4, 0,142, 9, 4, 0,143, 9, 4, 0, 19, 0, 4, 0, 37, 0, 12, 0,144, 9,116, 1,145, 9,111, 1,146, 9,111, 1,147, 9, + 9, 0,148, 9, 9, 0,149, 9, 4, 0,150, 9, 9, 0,151, 9, 9, 0,152, 9, 9, 0,153, 9,117, 1, 6, 0, 4, 0,124, 0, + 4, 0,126, 0, 4, 0,223, 7, 0, 0,154, 9, 0, 0,155, 9, 2, 0, 37, 0,118, 1, 16, 0, 2, 0,177, 7, 2, 0,178, 7, + 2, 0,156, 9, 2, 0,176, 8, 2, 0,157, 9, 2, 0, 68, 0, 7, 0,235, 2, 7, 0,158, 9, 7, 0,159, 9, 2, 0, 91, 1, + 0, 0,160, 9, 0, 0,161, 9, 2, 0,162, 9, 2, 0, 37, 0, 4, 0,163, 9, 4, 0,164, 9,119, 1, 9, 0, 7, 0,165, 9, + 7, 0,166, 9, 7, 0,195, 8, 7, 0,109, 0, 7, 0,167, 9, 7, 0, 79, 6, 2, 0,168, 9, 0, 0,169, 9, 0, 0, 37, 0, +120, 1, 4, 0, 7, 0,170, 9, 7, 0,171, 9, 2, 0,168, 9, 2, 0, 37, 0,121, 1, 3, 0, 7, 0,172, 9, 7, 0,173, 9, + 7, 0, 15, 0,122, 1, 7, 0, 0, 0, 5, 2, 2, 0,250, 4, 2, 0,251, 4, 2, 0,252, 4, 2, 0,190, 4, 4, 0,126, 0, + 4, 0, 35, 4,123, 1, 7, 0, 7, 0,174, 9, 7, 0,175, 9, 7, 0,176, 9, 7, 0, 85, 2, 7, 0,177, 9, 7, 0,178, 9, + 7, 0,179, 9,124, 1, 4, 0, 2, 0,180, 9, 2, 0,181, 9, 2, 0,182, 9, 2, 0,183, 9,125, 1, 2, 0, 7, 0, 5, 0, + 7, 0, 6, 0,126, 1, 2, 0, 0, 0,166, 0, 0, 0,184, 9,127, 1, 1, 0, 0, 0, 20, 0,128, 1, 10, 0, 0, 0,185, 9, + 0, 0,186, 9, 0, 0, 72, 6, 0, 0,187, 9, 2, 0,156, 9, 2, 0,188, 9, 7, 0,189, 9, 7, 0,190, 9, 7, 0,191, 9, + 7, 0, 97, 9,129, 1, 2, 0, 9, 0,192, 9, 9, 0,193, 9,130, 1, 11, 0, 0, 0,252, 4, 0, 0, 17, 0, 0, 0,168, 9, + 0, 0,109, 0, 0, 0,194, 9, 0, 0,106, 0, 0, 0, 70, 2, 7, 0,195, 9, 7, 0,196, 9, 7, 0,197, 9, 7, 0,198, 9, +131, 1, 8, 0, 7, 0, 86, 8, 7, 0,125, 0, 7, 0,161, 9, 7, 0,157, 2, 7, 0,199, 9, 7, 0,236, 0, 7, 0,200, 9, + 4, 0, 17, 0,132, 1, 4, 0, 2, 0,201, 9, 2, 0,202, 9, 2, 0,203, 9, 2, 0, 37, 0,133, 1, 1, 0, 0, 0, 20, 0, +134, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 19, 0, 2, 0,204, 9,135, 1, 10, 0, 2, 0,223, 3, 2, 0, 19, 0, + 7, 0,121, 4, 7, 0,205, 9, 7, 0,206, 9, 7, 0,207, 9, 7, 0,208, 9,134, 1,209, 9,134, 1,210, 9,134, 1,211, 9, + 63, 0, 9, 0, 4, 0, 19, 0, 4, 0, 64, 0, 24, 0,212, 9, 24, 0,213, 9,135, 1,214, 9, 7, 0,215, 9, 7, 0,216, 9, + 7, 0,217, 9, 7, 0,218, 9,136, 1, 4, 0, 47, 0,229, 2, 7, 0,219, 9, 7, 0,170, 1, 7, 0, 37, 0,192, 0, 17, 0, + 27, 0, 31, 0,136, 1,220, 9, 63, 0,209, 9, 51, 0,134, 1, 2, 0, 19, 0, 2, 0,231, 5, 4, 0,106, 0, 7, 0,221, 9, + 7, 0, 82, 2, 4, 0,222, 9, 7, 0,223, 9, 7, 0,224, 9, 7, 0,225, 9, 7, 0,170, 1, 2, 0,104, 1, 0, 0,226, 9, + 0, 0,213, 6,137, 1, 10, 0, 4, 0, 17, 0, 4, 0,125, 0, 4, 0, 19, 0, 4, 0,178, 3, 4, 0,227, 9, 4, 0,228, 9, + 4, 0,229, 9, 0, 0, 92, 0, 0, 0, 20, 0, 9, 0, 2, 0,138, 1, 1, 0, 0, 0, 35, 0, 91, 0, 7, 0,137, 1,230, 9, + 4, 0,231, 9, 4, 0,232, 9, 4, 0,233, 9, 4, 0, 37, 0, 9, 0,234, 9,138, 1,235, 9,139, 1, 5, 0, 7, 0,152, 2, + 7, 0,219, 2, 7, 0, 36, 2, 2, 0,128, 2, 2, 0, 37, 0,140, 1, 5, 0, 7, 0,152, 2, 7, 0,236, 9, 7, 0,237, 9, + 7, 0,238, 9, 7, 0,219, 2,141, 1, 5, 0, 32, 0,239, 9,142, 1, 22, 0, 7, 0,205, 5, 7, 0,240, 9, 7, 0, 57, 0, +143, 1, 7, 0, 4, 0,241, 9, 4, 0,242, 9, 4, 0,243, 9, 7, 0,244, 9, 7, 0,245, 9, 7, 0,246, 9, 7, 0, 57, 0, +144, 1, 8, 0,144, 1, 0, 0,144, 1, 1, 0, 32, 0, 45, 0, 4, 0,255, 0, 2, 0, 19, 0, 2, 0, 69, 1, 7, 0,219, 2, + 7, 0, 94, 8,145, 1, 6, 0,145, 1, 0, 0,145, 1, 1, 0, 32, 0, 45, 0, 2, 0,204, 2, 2, 0, 19, 0, 2, 0,247, 9, +146, 1, 17, 0,140, 1,172, 3,140, 1,248, 9,139, 1,249, 9,140, 1, 78, 8,141, 1,250, 9, 4, 0, 82, 0, 7, 0,219, 2, + 7, 0,246, 2, 7, 0,251, 9, 4, 0,241, 9, 4, 0,252, 9, 7, 0,245, 9, 7, 0,246, 9, 7, 0,106, 0, 4, 0,253, 9, + 2, 0, 19, 0, 2, 0,254, 9,147, 1,110, 0, 27, 0, 31, 0, 39, 0, 75, 0,148, 1,255, 9,170, 0, 57, 4, 4, 0, 19, 0, + 2, 0, 17, 0, 2, 0, 78, 9, 2, 0, 0, 10, 2, 0, 1, 10, 2, 0,138, 3, 2, 0, 2, 10, 2, 0, 3, 10, 2, 0, 4, 10, + 2, 0, 5, 10, 2, 0, 6, 10, 2, 0, 7, 10, 2, 0, 8, 10, 2, 0,239, 4, 2, 0,117, 5, 2, 0, 9, 10, 2, 0, 10, 10, + 2, 0, 11, 10, 2, 0, 12, 10, 2, 0, 13, 10, 2, 0, 25, 2, 2, 0, 71, 8, 2, 0, 46, 8, 2, 0, 14, 10, 2, 0, 15, 10, + 2, 0,188, 3, 2, 0,189, 3, 2, 0, 16, 10, 2, 0, 17, 10, 2, 0, 18, 10, 2, 0, 19, 10, 7, 0, 20, 10, 7, 0, 21, 10, + 7, 0, 22, 10, 2, 0, 23, 10, 2, 0, 24, 10, 7, 0, 25, 10, 7, 0, 26, 10, 7, 0, 27, 10, 7, 0, 53, 8, 7, 0, 89, 0, + 7, 0,246, 2, 7, 0, 59, 8, 7, 0, 28, 10, 7, 0, 29, 10, 7, 0, 30, 10, 4, 0, 54, 8, 4, 0, 52, 8, 4, 0, 31, 10, + 7, 0, 55, 8, 7, 0, 56, 8, 7, 0, 57, 8, 7, 0, 32, 10, 7, 0, 33, 10, 7, 0, 34, 10, 7, 0, 35, 10, 7, 0, 36, 10, + 7, 0, 57, 0, 7, 0, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0,129, 3, 7, 0,106, 0, 7, 0, 41, 10, + 7, 0, 42, 10, 7, 0, 43, 10, 7, 0, 44, 10, 7, 0, 45, 10, 7, 0, 46, 10, 7, 0, 47, 10, 4, 0, 48, 10, 4, 0, 49, 10, + 7, 0, 50, 10, 7, 0, 51, 10, 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10, 7, 0,210, 0, 7, 0, 55, 10, 7, 0,214, 3, + 7, 0,212, 3, 7, 0,213, 3, 7, 0, 56, 10, 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, 7, 0, 60, 10, 7, 0, 61, 10, + 7, 0, 62, 10, 7, 0, 63, 10, 7, 0, 64, 10, 7, 0, 65, 10, 7, 0, 66, 10, 7, 0, 67, 10, 7, 0, 68, 10, 4, 0, 69, 10, + 4, 0, 70, 10, 67, 0,161, 3, 12, 0, 71, 10, 67, 0, 72, 10, 32, 0, 73, 10, 32, 0, 74, 10, 36, 0, 80, 0,165, 0, 61, 1, +165, 0, 75, 10,148, 0, 44, 0,148, 0, 0, 0,148, 0, 1, 0,147, 1, 76, 10,146, 1, 77, 10,143, 1,241, 8,172, 0,239, 3, + 9, 0,240, 3,149, 1, 78, 10,149, 1, 79, 10, 12, 0, 80, 10, 12, 0, 81, 10,133, 0, 82, 10,141, 0, 83, 10,141, 0, 84, 10, + 32, 0, 85, 10, 32, 0, 86, 10, 32, 0, 38, 0, 12, 0, 45, 9, 0, 0, 20, 0, 7, 0,240, 0, 7, 0, 17, 3, 7, 0, 87, 10, + 4, 0,193, 2, 4, 0, 57, 0, 4, 0, 19, 0, 4, 0, 54, 8, 4, 0, 88, 10, 4, 0, 89, 10, 4, 0, 90, 10, 2, 0,247, 0, + 2, 0, 91, 10, 2, 0, 92, 10, 2, 0, 93, 10, 0, 0, 94, 10, 2, 0, 95, 10, 2, 0, 96, 10, 2, 0, 97, 10, 9, 0, 98, 10, +137, 0, 56, 4, 12, 0, 4, 3, 12, 0, 99, 10,150, 1,100, 10,151, 1,101, 10, 7, 0,102, 10,135, 0, 35, 0,152, 1,196, 8, + 7, 0, 26, 4, 7, 0,103, 10, 7, 0,104, 10, 7, 0,124, 4, 7, 0,105, 10, 7, 0,139, 3, 7, 0,129, 3, 7, 0,106, 10, + 7, 0, 84, 2, 7, 0,107, 10, 7, 0,108, 10, 7, 0,109, 10, 7, 0,110, 10, 7, 0,111, 10, 7, 0,112, 10, 7, 0, 27, 4, + 7, 0,113, 10, 7, 0,114, 10, 7, 0,115, 10, 7, 0, 28, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0,116, 10, 4, 0,117, 10, + 4, 0, 90, 0, 4, 0,118, 10, 4, 0,119, 10, 2, 0,120, 10, 2, 0,121, 10, 2, 0,122, 10, 2, 0,123, 10, 2, 0,124, 10, + 2, 0,125, 10,170, 0, 57, 4,136, 0, 8, 0,152, 1,126, 10, 7, 0,127, 10, 7, 0,128, 10, 7, 0,242, 1, 7, 0,129, 10, + 4, 0, 90, 0, 2, 0,130, 10, 2, 0,131, 10,153, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,132, 10, +154, 1, 6, 0,154, 1, 0, 0,154, 1, 1, 0,153, 1,233, 8, 4, 0,253, 0, 2, 0,133, 10, 2, 0, 19, 0,155, 1, 5, 0, +155, 1, 0, 0,155, 1, 1, 0, 12, 0,134, 10, 4, 0,135, 10, 4, 0, 19, 0,156, 1, 9, 0,156, 1, 0, 0,156, 1, 1, 0, + 12, 0,124, 0,155, 1,136, 10, 4, 0, 19, 0, 2, 0,133, 10, 2, 0,137, 10, 7, 0, 91, 0, 0, 0,138, 10,163, 0, 6, 0, + 27, 0, 31, 0, 12, 0, 12, 5, 4, 0, 19, 0, 2, 0,139, 10, 2, 0,140, 10, 9, 0,141, 10,157, 1, 7, 0,157, 1, 0, 0, +157, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, 0, 0,142, 10, 0, 0,143, 10,158, 1, 5, 0, 12, 0,144, 10, + 4, 0,145, 10, 4, 0,146, 10, 4, 0, 19, 0, 4, 0, 37, 0,159, 1, 16, 0, 27, 0, 31, 0,160, 1,147, 10,160, 1,148, 10, + 12, 0,149, 10, 4, 0,150, 10, 2, 0,151, 10, 2, 0, 37, 0, 12, 0,152, 10, 12, 0,153, 10,158, 1,154, 10, 12, 0,155, 10, + 12, 0,156, 10, 12, 0,157, 10,161, 1,158, 10, 12, 0,159, 10,212, 0,160, 10,160, 1, 31, 0,160, 1, 0, 0,160, 1, 1, 0, + 9, 0,161, 10, 4, 0,156, 7, 2, 0,162, 10, 2, 0, 37, 0,217, 0, 62, 6,217, 0,163, 10, 0, 0,164, 10, 2, 0,165, 10, + 2, 0,166, 10, 2, 0,177, 7, 2, 0,178, 7, 2, 0,167, 10, 2, 0,168, 10, 2, 0,178, 3, 2, 0,178, 6, 2, 0,169, 10, + 2, 0,170, 10, 2, 0,171, 10,162, 1,172, 10,163, 1,173, 10,164, 1,174, 10, 4, 0,175, 10, 4, 0,176, 10, 9, 0,177, 10, + 12, 0,153, 10, 12, 0,197, 7, 12, 0,178, 10, 12, 0,179, 10, 12, 0,180, 10,165, 1, 17, 0,165, 1, 0, 0,165, 1, 1, 0, + 0, 0,181, 10, 26, 0, 30, 0, 2, 0,182, 10, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,183, 10, 2, 0,184, 10, 2, 0,185, 10, + 2, 0,186, 10, 2, 0,187, 10, 2, 0, 19, 0, 2, 0,188, 10, 2, 0, 31, 0, 2, 0, 37, 0,166, 1,189, 10,167, 1, 10, 0, +167, 1, 0, 0,167, 1, 1, 0, 12, 0,190, 10, 0, 0,181, 10, 2, 0,191, 10, 2, 0,192, 10, 2, 0, 19, 0, 2, 0,193, 10, + 4, 0,194, 10, 9, 0,195, 10,161, 1, 8, 0,161, 1, 0, 0,161, 1, 1, 0, 0, 0,181, 10, 0, 0,196, 10, 0, 0,197, 10, + 12, 0,114, 7, 4, 0,198, 10, 4, 0, 19, 0,225, 0, 13, 0,225, 0, 0, 0,225, 0, 1, 0, 0, 0,181, 10, 26, 0, 30, 0, +168, 1,171, 7, 9, 0,199, 10,166, 1,189, 10,158, 1,200, 10, 12, 0,201, 10,225, 0,202, 10, 1, 1, 99, 6, 2, 0, 19, 0, + 2, 0,136, 1,169, 1, 8, 0,169, 1, 0, 0,169, 1, 1, 0, 9, 0, 2, 0, 9, 0,203, 10, 0, 0,234, 3, 2, 0, 17, 0, + 2, 0, 19, 0, 7, 0,204, 10,170, 1, 5, 0, 7, 0,205, 10, 4, 0,206, 10, 4, 0,207, 10, 4, 0, 69, 1, 4, 0, 19, 0, +171, 1, 6, 0, 7, 0,208, 10, 7, 0,209, 10, 7, 0,210, 10, 7, 0,211, 10, 4, 0, 17, 0, 4, 0, 19, 0,172, 1, 5, 0, + 7, 0,152, 8, 7, 0,153, 8, 7, 0,219, 2, 2, 0, 39, 2, 2, 0, 40, 2,173, 1, 5, 0,172, 1, 2, 0, 4, 0, 54, 0, + 7, 0,212, 10, 7, 0,152, 8, 7, 0,153, 8,174, 1, 4, 0, 2, 0,213, 10, 2, 0,214, 10, 2, 0,215, 10, 2, 0,216, 10, +175, 1, 2, 0, 42, 0,149, 6, 26, 0,201, 8,176, 1, 3, 0, 24, 0,217, 10, 4, 0, 19, 0, 4, 0, 37, 0,177, 1, 6, 0, + 7, 0,106, 0, 7, 0,221, 2, 7, 0,218, 10, 7, 0, 37, 0, 2, 0,246, 0, 2, 0,219, 10,178, 1, 9, 0,178, 1, 0, 0, +178, 1, 1, 0, 27, 0,152, 6, 0, 0,220, 10, 4, 0,221, 10, 4, 0,222, 10, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,234, 3, +179, 1, 7, 0, 12, 0, 45, 9, 0, 0,223, 10, 9, 0,224, 10, 7, 0, 61, 0, 7, 0,204, 10, 4, 0, 17, 0, 4, 0, 19, 0, +180, 1, 3, 0, 7, 0,225, 10, 4, 0, 19, 0, 4, 0, 37, 0,181, 1, 15, 0,181, 1, 0, 0,181, 1, 1, 0, 80, 1, 31, 9, +179, 1, 62, 0, 12, 0, 97, 3, 35, 0, 50, 0,180, 1,226, 10, 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0, 15, 1, + 4, 0,221, 10, 0, 0,220, 10, 4, 0,227, 10, 7, 0,228, 10,182, 1, 2, 0, 0, 0,229, 10, 0, 0,230, 10,183, 1, 4, 0, +183, 1, 0, 0,183, 1, 1, 0,161, 0, 48, 3, 12, 0,231, 10,184, 1, 24, 0,184, 1, 0, 0,184, 1, 1, 0, 12, 0,232, 10, +161, 0,126, 8,183, 1,233, 10, 12, 0,234, 10, 12, 0, 97, 3, 0, 0,234, 3, 7, 0,204, 10, 7, 0,235, 10, 7, 0, 88, 0, + 7, 0, 89, 0, 7, 0, 93, 9, 7, 0, 94, 9, 7, 0,236, 2, 7, 0, 97, 9, 7, 0,128, 8, 7, 0, 98, 9, 2, 0,236, 10, + 2, 0,237, 10, 2, 0, 43, 0, 2, 0, 17, 0, 4, 0, 19, 0, 4, 0, 70, 0,185, 1, 6, 0,185, 1, 0, 0,185, 1, 1, 0, + 12, 0,232, 10, 4, 0, 19, 0, 4, 0,156, 2, 0, 0,234, 3,186, 1, 10, 0,186, 1, 0, 0,186, 1, 1, 0, 27, 0,152, 6, + 0, 0,238, 10, 4, 0,222, 10, 4, 0,239, 10, 0, 0,220, 10, 4, 0,221, 10, 2, 0, 19, 0, 2, 0,240, 10,187, 1, 7, 0, +187, 1, 0, 0,187, 1, 1, 0, 12, 0,241, 10, 0, 0,234, 3, 2, 0, 19, 0, 2, 0,242, 10, 4, 0,243, 10,188, 1, 5, 0, +188, 1, 0, 0,188, 1, 1, 0, 0, 0,220, 10, 4, 0,221, 10, 7, 0,209, 2, 39, 0, 12, 0,161, 0, 91, 3,161, 0,244, 10, +183, 1,233, 10, 12, 0,245, 10,184, 1,246, 10, 12, 0,247, 10, 12, 0,248, 10, 4, 0, 19, 0, 4, 0,247, 0, 2, 0,249, 10, + 2, 0,250, 10, 7, 0,251, 10,189, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0,190, 1, 5, 0,190, 1, 0, 0,190, 1, 1, 0, + 4, 0, 17, 0, 4, 0, 19, 0, 0, 0, 20, 0,191, 1, 6, 0,190, 1,252, 10, 32, 0, 45, 0, 4, 0,253, 10, 7, 0,254, 10, + 4, 0,255, 10, 4, 0, 20, 9,192, 1, 3, 0,190, 1,252, 10, 4, 0,253, 10, 7, 0, 0, 11,193, 1, 8, 0,190, 1,252, 10, + 32, 0, 45, 0, 7, 0, 64, 1, 7, 0, 1, 11, 7, 0, 17, 3, 7, 0,195, 8, 4, 0,253, 10, 4, 0, 2, 11,194, 1, 5, 0, +190, 1,252, 10, 7, 0, 3, 11, 7, 0, 11, 8, 7, 0,242, 2, 7, 0, 57, 0,195, 1, 3, 0,190, 1,252, 10, 7, 0,195, 8, + 7, 0, 4, 11,142, 1, 4, 0, 7, 0, 5, 11, 7, 0, 43, 10, 2, 0, 6, 11, 2, 0, 69, 1,196, 1, 14, 0,196, 1, 0, 0, +196, 1, 1, 0, 12, 0, 7, 11, 12, 0, 8, 11, 12, 0, 9, 11, 0, 0, 20, 0, 4, 0, 31, 0, 4, 0, 19, 0, 4, 0, 10, 11, + 7, 0, 11, 11, 4, 0,255, 10, 4, 0, 20, 9, 7, 0,243, 3, 7, 0,244, 2,148, 1, 23, 0, 4, 0,253, 10, 4, 0, 12, 11, + 7, 0, 13, 11, 7, 0, 57, 0, 7, 0, 14, 11, 7, 0,240, 2, 7, 0, 5, 11, 7, 0, 15, 11, 7, 0,221, 2, 7, 0, 16, 11, + 7, 0,121, 4, 7, 0, 17, 11, 7, 0, 18, 11, 7, 0, 19, 11, 7, 0, 20, 11, 7, 0, 21, 11, 7, 0, 22, 11, 7, 0, 23, 11, + 7, 0, 24, 11, 7, 0, 25, 11, 7, 0, 26, 11, 7, 0, 27, 11, 12, 0, 28, 11,121, 0, 34, 0,120, 0, 29, 11,197, 1, 30, 11, + 67, 0, 31, 11, 67, 0, 72, 10, 67, 0, 32, 11,198, 1, 33, 11, 48, 0,165, 0, 48, 0, 34, 11, 48, 0, 35, 11, 7, 0, 36, 11, + 7, 0, 37, 11, 7, 0, 38, 11, 7, 0, 39, 11, 7, 0, 40, 11, 7, 0, 32, 9, 7, 0, 41, 11, 7, 0,170, 1, 7, 0, 42, 11, + 4, 0, 43, 11, 4, 0, 44, 11, 4, 0, 45, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0, 46, 11, 2, 0, 47, 11, 2, 0, 48, 11, + 4, 0, 49, 11, 7, 0,221, 2, 4, 0, 50, 11, 7, 0, 51, 11, 4, 0, 52, 11,137, 0, 53, 11, 12, 0, 54, 11,170, 0, 57, 4, +122, 0, 11, 0,120, 0, 29, 11,148, 0, 34, 3, 7, 0,137, 1, 7, 0, 32, 9, 7, 0, 55, 11, 7, 0, 56, 11, 2, 0, 57, 11, + 2, 0, 58, 11, 2, 0, 59, 11, 2, 0, 17, 0, 4, 0, 37, 0,123, 0, 13, 0,120, 0, 29, 11,139, 0, 14, 3,141, 0, 16, 3, + 7, 0,233, 8, 7, 0, 60, 11, 7, 0, 61, 11, 7, 0, 66, 1, 7, 0, 62, 11, 4, 0, 54, 9, 4, 0, 12, 3, 2, 0, 17, 0, 2, 0, 37, 0, 4, 0, 70, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 2af7fe09509..77a8ea8e912 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -660,7 +660,7 @@ void uiTemplateOperatorSearch(uiLayout *layout); void uiTemplateHeader3D(uiLayout *layout, struct bContext *C); void uiTemplateTextureImage(uiLayout *layout, struct bContext *C, struct Tex *tex); -void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *activeptr, char *activeprop, int rows, int type); +void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *activeptr, char *activeprop, int rows, int maxrows, int type); /* items */ void uiItemO(uiLayout *layout, char *name, int icon, char *opname); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index f89c267112b..74787e492c4 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2138,7 +2138,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe MEM_freeN(namebuf); } -void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, PointerRNA *activeptr, char *activepropname, int rows, int listtype) +void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, PointerRNA *activeptr, char *activepropname, int rows, int maxrows, int listtype) { //Scene *scene= CTX_data_scene(C); PropertyRNA *prop= NULL, *activeprop; @@ -2261,6 +2261,8 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propna /* default rows */ if(rows == 0) rows= 5; + if (maxrows == 0) + maxrows = 5; if(pa->list_grip_size != 0) rows= pa->list_grip_size; @@ -2274,7 +2276,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propna if(prop) len= RNA_property_collection_length(ptr, prop); - items= CLAMPIS(len, rows, MAX2(rows, 5)); + items= CLAMPIS(len, rows, MAX2(rows, maxrows)); /* if list length changes and active is out of view, scroll to it */ if(pa->list_last_len != len) diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index 5cfda009514..57b56da2fcd 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -193,8 +193,6 @@ void ED_keymap_paint(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0); - ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index"); - for(i=0; i<=5; i++) RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i); @@ -208,6 +206,8 @@ void ED_keymap_paint(wmKeyConfig *keyconf) RNA_boolean_set(kmi->ptr, "relative", 1); /* toggles */ + ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", AKEY, KM_PRESS, 0, 0); RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_anchor"); @@ -222,29 +222,29 @@ void ED_keymap_paint(wmKeyConfig *keyconf) /* brush switching */ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", DKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); - RNA_string_set(kmi->ptr, "value", "DRAW"); - + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name"); + RNA_string_set(kmi->ptr, "value", "Draw"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", SKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); - RNA_string_set(kmi->ptr, "value", "SMOOTH"); - + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name"); + RNA_string_set(kmi->ptr, "value", "Smooth"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); - RNA_string_set(kmi->ptr, "value", "PINCH"); - + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name"); + RNA_string_set(kmi->ptr, "value", "Pinch"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", GKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); - RNA_string_set(kmi->ptr, "value", "GRAB"); - + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name"); + RNA_string_set(kmi->ptr, "value", "Grab"); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", LKEY, KM_PRESS, 0, 0); - RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); - RNA_string_set(kmi->ptr, "value", "LAYER"); - - kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", TKEY, KM_PRESS, KM_SHIFT, 0); /* was just T in 2.4x */ - RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.sculpt_tool"); - RNA_string_set(kmi->ptr, "value", "FLATTEN"); - + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name"); + RNA_string_set(kmi->ptr, "value", "Layer"); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", TKEY, KM_PRESS, KM_SHIFT, 0); // was just T in 2.4x + RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name"); + RNA_string_set(kmi->ptr, "value", "Flatten"); + /* Vertex Paint mode */ keymap= WM_keymap_find(keyconf, "Vertex Paint", 0, 0); diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index 13c3b15549b..4d17da668b2 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -29,6 +29,7 @@ #include "rna_internal.h" +#include "DNA_ID.h" #include "DNA_scene_types.h" #include "BKE_paint.h" @@ -159,6 +160,38 @@ static void rna_Paint_active_brush_index_range(PointerRNA *ptr, int *min, int *m *max= MAX2(p->brush_count-1, 0); } +static void rna_Paint_active_brush_name_get(PointerRNA *ptr, char *value) +{ + Paint *p= ptr->data; + Brush *br = paint_brush(p); + + BLI_strncpy(value, br->id.name+2, sizeof(br->id.name-2)); +} + + +static int rna_Paint_active_brush_name_length(PointerRNA *ptr) +{ + Paint *p= ptr->data; + Brush *br = paint_brush(p); + return strlen(br->id.name+2); +} + +static void rna_Paint_active_brush_name_set(PointerRNA *ptr, const char *value) +{ + Paint *p= ptr->data; + Brush *br; + int i; + + for(i = 0; i < p->brush_count; ++i) { + br = p->brushes[i]; + + if (strcmp(br->id.name+2, value)==0) { + paint_brush_set(p, br); + return; + } + } +} + #else static void rna_def_paint(BlenderRNA *brna) @@ -182,6 +215,12 @@ static void rna_def_paint(BlenderRNA *brna) RNA_def_property_int_funcs(prop, NULL, "rna_Paint_active_brush_index_set", "rna_Paint_active_brush_index_range"); RNA_def_property_range(prop, 0, INT_MAX); RNA_def_property_update(prop, NC_BRUSH|NA_EDITED, NULL); + + prop= RNA_def_property(srna, "active_brush_name", PROP_STRING, PROP_NONE); + RNA_def_property_string_funcs(prop, "rna_Paint_active_brush_name_get", "rna_Paint_active_brush_name_length", "rna_Paint_active_brush_name_set"); + RNA_def_property_string_maxlength(prop, sizeof(((ID*)NULL)->name)-2); + RNA_def_property_ui_text(prop, "Active Brush Name", ""); + RNA_def_property_update(prop, NC_BRUSH|NA_EDITED, NULL); /* Fake property to get active brush directly, rather than integer index */ prop= RNA_def_property(srna, "brush", PROP_POINTER, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 67383074497..9c4cc64fbb7 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -353,6 +353,7 @@ void RNA_api_ui_layout(StructRNA *srna) parm= RNA_def_string(func, "active_property", "", 0, "", "Identifier of property in data, for the active element."); RNA_def_property_flag(parm, PROP_REQUIRED); parm= RNA_def_int(func, "rows", 5, 0, INT_MAX, "", "Number of rows to display.", 0, INT_MAX); + parm= RNA_def_int(func, "maxrows", 5, 0, INT_MAX, "", "Maximum number of rows to display.", 0, INT_MAX); parm= RNA_def_enum(func, "type", list_type_items, 0, "Type", "Type of list to use."); func= RNA_def_function(srna, "template_running_jobs", "uiTemplateRunningJobs"); -- cgit v1.2.3 From 03c1e4374bbc796d3128057ee2efe870b366a760 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 28 Dec 2009 01:31:47 +0000 Subject: Fix for [#20032] outliner cuts off long names after pasing them The system that ensures unique ID names chopped off the end of the name to add a number suffix (.001 or so) regardless of whether it already had a number or not. In this particular case, (no suffix number) it now just shaves off the last letter of the name until it's unique. I've been testing this patch here for a while, and seems to work properly, if anyone would like to have a quick look over this commit and doublecheck, that would be great too. --- source/blender/blenkernel/intern/library.c | 65 +++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index a79c3472426..a32746e3093 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -1033,6 +1033,28 @@ static void sort_alpha_id(ListBase *lb, ID *id) } +/* + * Check to see if there is an ID with the same name as 'name'. + * Returns the ID if so, if not, returns NULL + */ +static ID *is_dupid(ListBase *lb, ID *id, char *name) +{ + ID *idtest=NULL; + + for( idtest = lb->first; idtest; idtest = idtest->next ) { + /* if idtest is not a lib */ + if( id != idtest && idtest->lib == NULL ) { + /* do not test alphabetic! */ + /* optimized */ + if( idtest->name[2] == name[0] ) { + if(strcmp(name, idtest->name+2)==0) break; + } + } + } + + return idtest; +} + /* * Check to see if an ID name is already used, and find a new one if so. * Return 1 if created a new name (returned in name). @@ -1056,16 +1078,7 @@ int check_for_dupid(ListBase *lb, ID *id, char *name) while (1) { /* phase 1: id already exists? */ - for( idtest = lb->first; idtest; idtest = idtest->next ) { - /* if idtest is not a lib */ - if( id != idtest && idtest->lib == NULL ) { - /* do not test alphabetic! */ - /* optimized */ - if( idtest->name[2] == name[0] ) { - if(strcmp(name, idtest->name+2)==0) break; - } - } - } + idtest = is_dupid(lb, id, name); /* if there is no double, done */ if( idtest == NULL ) return 0; @@ -1104,18 +1117,30 @@ int check_for_dupid(ListBase *lb, ID *id, char *name) } } - /* if non-numbered name was not in use, reuse it */ - if(nr==0) strcpy( name, left ); - else { - if(nr > 999 && strlen(left) > 16) { - /* this would overflow name buffer */ - left[16] = 0; - strcpy( name, left ); - continue; + /* If the original name has no numeric suffix, + * rather than just chopping and adding numbers, + * shave off the end chars until we have a unique name */ + if (nr==0) { + int len = strlen(name)-1; + idtest= is_dupid(lb, id, name); + + while (idtest && len> 1) { + name[len--] = '\0'; + idtest= is_dupid(lb, id, name); } - /* this format specifier is from hell... */ - sprintf(name, "%s.%.3d", left, nr); + if (idtest == NULL) return 1; + /* otherwise just continue and use a number suffix */ } + + if(nr > 999 && strlen(left) > 16) { + /* this would overflow name buffer */ + left[16] = 0; + strcpy( name, left ); + continue; + } + /* this format specifier is from hell... */ + sprintf(name, "%s.%.3d", left, nr); + return 1; } } -- cgit v1.2.3 From 860e46082f24afdad9e40e15ac04d35f06924c10 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 28 Dec 2009 03:45:24 +0000 Subject: Assorted Animation/RNA fixes: * Fix for compiler warning in mesh.c from previous commit * Fix for wrong name for dopesheet filter button used for meshes * Added RNA defines for the default values for quaternion and axis-angle rotations, so that clearing these to their default values "does the right thing (TM)" --- source/blender/blenkernel/intern/mesh.c | 2 ++ source/blender/makesrna/intern/rna_action.c | 2 +- source/blender/makesrna/intern/rna_object.c | 8 +++++++- source/blender/makesrna/intern/rna_pose.c | 7 ++++++- 4 files changed, 16 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 0b48d5bd0ad..1ab4c06bc4c 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -41,6 +41,7 @@ #include "MEM_guardedalloc.h" #include "DNA_ID.h" +#include "DNA_anim_types.h" #include "DNA_curve_types.h" #include "DNA_scene_types.h" #include "DNA_material_types.h" @@ -51,6 +52,7 @@ #include "DNA_meshdata_types.h" #include "DNA_ipo_types.h" +#include "BKE_animsys.h" #include "BKE_customdata.h" #include "BKE_depsgraph.h" #include "BKE_main.h" diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 74194e8ee6c..00c5b8ce7c4 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -98,7 +98,7 @@ static void rna_def_dopesheet(BlenderRNA *brna) RNA_def_property_ui_icon(prop, ICON_SHAPEKEY_DATA, 0); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); - prop= RNA_def_property(srna, "display_meshes", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "display_mesh", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMESH); RNA_def_property_ui_text(prop, "Display Meshes", "Include visualization of Mesh related Animation data."); RNA_def_property_ui_icon(prop, ICON_MESH_DATA, 0); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index b4e288e776d..a670fb244f6 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1427,7 +1427,9 @@ static void rna_def_object(BlenderRNA *brna) {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order. Prone to Gimbal Lock"}, {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle", "Axis Angle (W+XYZ). Defines a rotation around some axis defined by 3D-Vector."}, {0, NULL, 0, NULL, NULL}}; - + + static float default_quat[4] = {1,0,0,0}; /* default quaternion values */ + static float default_axisAngle[4] = {0,0,1,0}; /* default axis-angle rotation values */ int matrix_dimsize[]= {4, 4}; srna= RNA_def_struct(brna, "Object", "ID"); @@ -1549,6 +1551,7 @@ static void rna_def_object(BlenderRNA *brna) prop= RNA_def_property(srna, "rotation_quaternion", PROP_FLOAT, PROP_QUATERNION); RNA_def_property_float_sdna(prop, NULL, "quat"); RNA_def_property_editable_array_func(prop, "rna_Object_rotation_4d_editable"); + RNA_def_property_float_array_default(prop, default_quat); RNA_def_property_ui_text(prop, "Quaternion Rotation", "Rotation in Quaternions."); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update"); @@ -1559,6 +1562,7 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_array(prop, 4); // TODO: maybe we'll need to define the 'default value' getter too... RNA_def_property_float_funcs(prop, "rna_Object_rotation_axis_angle_get", "rna_Object_rotation_axis_angle_set", NULL); RNA_def_property_editable_array_func(prop, "rna_Object_rotation_4d_editable"); + RNA_def_property_float_array_default(prop, default_axisAngle); RNA_def_property_ui_text(prop, "Axis-Angle Rotation", "Angle of Rotation for Axis-Angle rotation representation."); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update"); @@ -1601,12 +1605,14 @@ static void rna_def_object(BlenderRNA *brna) prop= RNA_def_property(srna, "delta_rotation_quaternion", PROP_FLOAT, PROP_QUATERNION); RNA_def_property_float_sdna(prop, NULL, "dquat"); + RNA_def_property_float_array_default(prop, default_quat); RNA_def_property_ui_text(prop, "Delta Rotation (Quaternion)", "Extra added rotation to the rotation of the object (when using Quaternion rotations)."); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update"); #if 0 // XXX not supported well yet... prop= RNA_def_property(srna, "delta_rotation_axis_angle", PROP_FLOAT, PROP_AXISANGLE); RNA_def_property_float_sdna(prop, NULL, "dquat"); // FIXME: this is not a single field any more! (drotAxis and drotAngle) + RNA_def_property_float_array_default(prop, default_axisAngle); RNA_def_property_ui_text(prop, "Delta Rotation (Axis Angle)", "Extra added rotation to the rotation of the object (when using Axis-Angle rotations)."); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update"); #endif diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index c7aca9c9738..7e2b9d7875b 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -638,6 +638,9 @@ static void rna_def_pose_channel(BlenderRNA *brna) {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order. Prone to Gimbal Lock"}, {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle", "Axis Angle (W+XYZ). Defines a rotation around some axis defined by 3D-Vector."}, {0, NULL, 0, NULL, NULL}}; + + static float default_quat[4] = {1,0,0,0}; /* default quaternion values */ + static float default_axisAngle[4] = {0,0,1,0}; /* default axis-angle rotation values */ StructRNA *srna; PropertyRNA *prop; @@ -665,7 +668,7 @@ static void rna_def_pose_channel(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "selectflag", BONE_SELECTED); RNA_def_property_ui_text(prop, "Selected", ""); - /* Baked Bone Path cache data s*/ + /* Baked Bone Path cache data */ prop= RNA_def_property(srna, "path_start_frame", PROP_INT, PROP_TIME); RNA_def_property_int_sdna(prop, NULL, "pathsf"); RNA_def_property_clear_flag(prop, PROP_EDITABLE); @@ -711,6 +714,7 @@ static void rna_def_pose_channel(BlenderRNA *brna) prop= RNA_def_property(srna, "rotation_quaternion", PROP_FLOAT, PROP_QUATERNION); RNA_def_property_float_sdna(prop, NULL, "quat"); RNA_def_property_editable_array_func(prop, "rna_PoseChannel_rotation_4d_editable"); + RNA_def_property_float_array_default(prop, default_quat); RNA_def_property_ui_text(prop, "Quaternion Rotation", "Rotation in Quaternions."); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Pose_update"); @@ -721,6 +725,7 @@ static void rna_def_pose_channel(BlenderRNA *brna) RNA_def_property_array(prop, 4); // TODO: maybe we'll need to define the 'default value' getter too... RNA_def_property_float_funcs(prop, "rna_PoseChannel_rotation_axis_angle_get", "rna_PoseChannel_rotation_axis_angle_set", NULL); RNA_def_property_editable_array_func(prop, "rna_PoseChannel_rotation_4d_editable"); + RNA_def_property_float_array_default(prop, default_axisAngle); RNA_def_property_ui_text(prop, "Axis-Angle Rotation", "Angle of Rotation for Axis-Angle rotation representation."); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Pose_update"); -- cgit v1.2.3 From dbf295b904fb0bcb59656a57e32474b1f5adf77a Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 28 Dec 2009 04:09:46 +0000 Subject: Added location and rotation operator properties for adding objects. The Align to View boolean is now just used to set the rotation property value during invoke. This removes some reliance on 3d view info for non-interactive use, and also lets you specify new object's locations/rotations explicitly when calling from Python. --- source/blender/editors/armature/editarmature.c | 2 +- source/blender/editors/curve/editfont.c | 6 +- source/blender/editors/include/ED_object.h | 9 +- source/blender/editors/mesh/editmesh_add.c | 102 ++++++++------- source/blender/editors/object/object_add.c | 172 ++++++++++++++++--------- 5 files changed, 180 insertions(+), 111 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 4564ec49477..f382896c868 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -5785,7 +5785,7 @@ void generateSkeletonFromReebGraph(Scene *scene, ReebGraph *rg) } dst = add_object(scene, OB_ARMATURE); - ED_object_base_init_from_view(NULL, scene->basact); // XXX NULL is C + ED_object_base_init_transform(NULL, scene->basact, NULL, NULL); // XXX NULL is C, loc, rot obedit= scene->basact->object; /* Copy orientation from source */ diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index b6b0289e871..da794eb1c25 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -475,11 +475,13 @@ static void txt_add_object(bContext *C, TextLine *firstline, int totline, float Base *base; struct TextLine *tmp; int nchars = 0, a; - + float rot[3] = {0.f, 0.f, 0.f}; + obedit= add_object(scene, OB_FONT); base= scene->basact; - ED_object_base_init_from_view(C, base, 1); /* seems to assume view align ? TODO - look into this, could be an operator option */ + + ED_object_base_init_transform(C, base, NULL, rot); /* seems to assume view align ? TODO - look into this, could be an operator option */ where_is_object(scene, obedit); obedit->loc[0] += offset[0]; diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h index 1b77d298e3a..0ba5c938377 100644 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@ -79,11 +79,14 @@ void ED_object_toggle_modes(struct bContext *C, int mode); void ED_object_exit_editmode(struct bContext *C, int flag); void ED_object_enter_editmode(struct bContext *C, int flag); -void ED_object_base_init_from_view(struct bContext *C, struct Base *base, int view_align); +void ED_object_location_from_view(struct bContext *C, float *loc); +void ED_object_rotation_from_view(struct bContext *C, float *rot); +void ED_object_base_init_transform(struct bContext *C, struct Base *base, float *loc, float *rot); + void ED_object_add_generic_props(struct wmOperatorType *ot, int do_editmode); int ED_object_add_generic_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event); -void ED_object_add_generic_get_opts(struct wmOperator *op, int *view_align, int *enter_editmode); -struct Object *ED_object_add_type(struct bContext *C, int type, int view_align, int enter_editmode); +void ED_object_add_generic_get_opts(struct wmOperator *op, float *loc, float *rot, int *enter_editmode); +struct Object *ED_object_add_type(struct bContext *C, int type, float *loc, float *rot, int enter_editmode); void ED_object_single_users(struct Scene *scene, int full); diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c index 26fde849f9f..d7f421331e5 100644 --- a/source/blender/editors/mesh/editmesh_add.c +++ b/source/blender/editors/mesh/editmesh_add.c @@ -1273,30 +1273,25 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se /* uses context to figure out transform for primitive */ /* returns standard diameter */ -static float new_primitive_matrix(bContext *C, int view_align, float primmat[][4]) +static float new_primitive_matrix(bContext *C, float *loc, float *rot, float primmat[][4]) { Object *obedit= CTX_data_edit_object(C); - Scene *scene = CTX_data_scene(C); View3D *v3d =CTX_wm_view3d(C); - RegionView3D *rv3d= ED_view3d_context_rv3d(C); - float *curs, mat[3][3], vmat[3][3], cmat[3][3], imat[3][3]; + float mat[3][3], rmat[3][3], cmat[3][3], imat[3][3]; unit_m4(primmat); + + eul_to_mat3(rmat, rot); + invert_m3(rmat); - if(rv3d && view_align) { - copy_m3_m4(vmat, rv3d->viewmat); - } else - unit_m3(vmat); - - /* inverse transform for view and object */ + /* inverse transform for initial rotation and object */ copy_m3_m4(mat, obedit->obmat); - mul_m3_m3m3(cmat, vmat, mat); + mul_m3_m3m3(cmat, rmat, mat); invert_m3_m3(imat, cmat); copy_m4_m3(primmat, imat); /* center */ - curs= give_cursor(scene, v3d); - VECCOPY(primmat[3], curs); + VECCOPY(primmat[3], loc); VECSUB(primmat[3], primmat[3], obedit->obmat[3]); invert_m3_m3(imat, mat); mul_m3_v3(imat, primmat[3]); @@ -1307,7 +1302,7 @@ static float new_primitive_matrix(bContext *C, int view_align, float primmat[][4 /* ********* add primitive operators ************* */ -static void make_prim_ext(bContext *C, int view_align, int enter_editmode, +static void make_prim_ext(bContext *C, float *loc, float *rot, int enter_editmode, int type, int tot, int seg, int subdiv, float dia, float depth, int ext, int fill) { @@ -1316,14 +1311,15 @@ static void make_prim_ext(bContext *C, int view_align, int enter_editmode, float mat[4][4]; if(obedit==NULL || obedit->type!=OB_MESH) { + obedit= ED_object_add_type(C, OB_MESH, loc, rot, FALSE); + /* create editmode */ - obedit= ED_object_add_type(C, OB_MESH, view_align, FALSE); ED_object_enter_editmode(C, EM_DO_UNDO|EM_IGNORE_LAYER); /* rare cases the active layer is messed up */ newob = 1; } else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA); - dia *= new_primitive_matrix(C, view_align, mat); + dia *= new_primitive_matrix(C, loc, rot, mat); make_prim(obedit, type, mat, tot, seg, subdiv, dia, depth, ext, fill); @@ -1340,11 +1336,14 @@ static void make_prim_ext(bContext *C, int view_align, int enter_editmode, static int add_primitive_plane_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); /* sqrt(2.0f) - plane (diameter of 1.41 makes it unit size) */ - make_prim_ext(C, view_align, enter_editmode, PRIM_PLANE, 4, 0, 0, sqrt(2.0f), 0.0f, 0, 1); + make_prim_ext(C, loc, rot, enter_editmode, + PRIM_PLANE, 4, 0, 0, sqrt(2.0f), 0.0f, 0, 1); return OPERATOR_FINISHED; } @@ -1368,11 +1367,14 @@ void MESH_OT_primitive_plane_add(wmOperatorType *ot) static int add_primitive_cube_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); /* sqrt(2.0f) - plane (diameter of 1.41 makes it unit size) */ - make_prim_ext(C, view_align, enter_editmode, PRIM_CUBE, 4, 0, 0, sqrt(2.0f), 1.0f, 1, 1); + make_prim_ext(C, loc, rot, enter_editmode, + PRIM_CUBE, 4, 0, 0, sqrt(2.0f), 1.0f, 1, 1); return OPERATOR_FINISHED; } @@ -1396,10 +1398,12 @@ void MESH_OT_primitive_cube_add(wmOperatorType *ot) static int add_primitive_circle_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); - make_prim_ext(C, view_align, enter_editmode, + make_prim_ext(C, loc, rot, enter_editmode, PRIM_CIRCLE, RNA_int_get(op->ptr, "vertices"), 0, 0, RNA_float_get(op->ptr,"radius"), 0.0f, 0, RNA_boolean_get(op->ptr, "fill")); @@ -1432,10 +1436,12 @@ void MESH_OT_primitive_circle_add(wmOperatorType *ot) static int add_primitive_tube_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); - make_prim_ext(C, view_align, enter_editmode, + make_prim_ext(C, loc, rot, enter_editmode, PRIM_CYLINDER, RNA_int_get(op->ptr, "vertices"), 0, 0, RNA_float_get(op->ptr,"radius"), RNA_float_get(op->ptr, "depth"), 1, @@ -1470,10 +1476,12 @@ void MESH_OT_primitive_tube_add(wmOperatorType *ot) static int add_primitive_cone_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); - make_prim_ext(C, view_align, enter_editmode, + make_prim_ext(C, loc, rot, enter_editmode, PRIM_CONE, RNA_int_get(op->ptr, "vertices"), 0, 0, RNA_float_get(op->ptr,"radius"), RNA_float_get(op->ptr, "depth"), 0, RNA_boolean_get(op->ptr, "cap_end")); @@ -1507,10 +1515,12 @@ void MESH_OT_primitive_cone_add(wmOperatorType *ot) static int add_primitive_grid_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); - make_prim_ext(C, view_align, enter_editmode, + make_prim_ext(C, loc, rot, enter_editmode, PRIM_GRID, RNA_int_get(op->ptr, "x_subdivisions"), RNA_int_get(op->ptr, "y_subdivisions"), 0, RNA_float_get(op->ptr,"size"), 0.0f, 0, 1); @@ -1543,10 +1553,12 @@ void MESH_OT_primitive_grid_add(wmOperatorType *ot) static int add_primitive_monkey_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); - make_prim_ext(C, view_align, enter_editmode, + make_prim_ext(C, loc, rot, enter_editmode, PRIM_MONKEY, 0, 0, 2, 0.0f, 0.0f, 0, 0); return OPERATOR_FINISHED; @@ -1572,10 +1584,12 @@ void MESH_OT_primitive_monkey_add(wmOperatorType *ot) static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); - make_prim_ext(C, view_align, enter_editmode, + make_prim_ext(C, loc, rot, enter_editmode, PRIM_UVSPHERE, RNA_int_get(op->ptr, "rings"), RNA_int_get(op->ptr, "segments"), 0, RNA_float_get(op->ptr,"size"), 0.0f, 0, 0); @@ -1608,10 +1622,12 @@ void MESH_OT_primitive_uv_sphere_add(wmOperatorType *ot) static int add_primitive_icosphere_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); - make_prim_ext(C, view_align, enter_editmode, + make_prim_ext(C, loc, rot, enter_editmode, PRIM_ICOSPHERE, 0, 0, RNA_int_get(op->ptr, "subdivisions"), RNA_float_get(op->ptr,"size"), 0.0f, 0, 0); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 5ad6e2d557c..abc182ef7ae 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -99,38 +99,47 @@ /************************** Exported *****************************/ -void ED_object_base_init_from_view(bContext *C, Base *base, int view_align) +void ED_object_location_from_view(bContext *C, float *loc) { View3D *v3d= CTX_wm_view3d(C); Scene *scene= CTX_data_scene(C); - Object *ob= base->object; - if (scene==NULL) - return; + if (v3d) { + if (v3d->localvd) + copy_v3_v3(loc, v3d->cursor); + else + copy_v3_v3(loc, scene->cursor); + } else { + copy_v3_v3(loc, scene->cursor); + } +} + +void ED_object_rotation_from_view(bContext *C, float *rot) +{ + RegionView3D *rv3d = CTX_wm_region_view3d(C); - if (v3d==NULL) { - base->lay = scene->lay; - VECCOPY(ob->loc, scene->cursor); - } - else { - if (v3d->localvd) { - base->lay= ob->lay= v3d->layact | v3d->lay; - VECCOPY(ob->loc, v3d->cursor); - } - else { - base->lay= ob->lay= v3d->layact; - VECCOPY(ob->loc, scene->cursor); - } - - if (view_align) { - RegionView3D *rv3d = CTX_wm_region_view3d(C); - if(rv3d) { - rv3d->viewquat[0]= -rv3d->viewquat[0]; - quat_to_eul( ob->rot,rv3d->viewquat); - rv3d->viewquat[0]= -rv3d->viewquat[0]; - } - } + if(rv3d) { + rv3d->viewquat[0]= -rv3d->viewquat[0]; + quat_to_eul( rot, rv3d->viewquat); + rv3d->viewquat[0]= -rv3d->viewquat[0]; } + else + rot[0] = rot[1] = rot[2] = 0.f; +} + +void ED_object_base_init_transform(bContext *C, Base *base, float *loc, float *rot) +{ + Object *ob= base->object; + Scene *scene= CTX_data_scene(C); + + if (!scene) return; + + if (loc) + copy_v3_v3(ob->loc, loc); + + if (rot) + copy_v3_v3(ob->rot, rot); + where_is_object(scene, ob); } @@ -143,20 +152,44 @@ void add_object_draw(Scene *scene, View3D *v3d, int type) /* for toolbox or menu void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode) { - RNA_def_boolean(ot->srna, "view_align", 0, "View Align", "Align the new object to the view."); + RNA_def_boolean(ot->srna, "view_align", 0, "Align to View", "Align the new object to the view."); if(do_editmode) RNA_def_boolean(ot->srna, "enter_editmode", 0, "Enter Editmode", "Enter editmode when adding this object."); + + RNA_def_float_vector(ot->srna, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "Location for the newly added object.", -FLT_MAX, FLT_MAX); + RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -FLT_MAX, FLT_MAX); } static void object_add_generic_invoke_options(bContext *C, wmOperator *op) { - if (!RNA_property_is_set(op->ptr, "view_align")) - RNA_boolean_set(op->ptr, "view_align", U.flag & USER_ADD_VIEWALIGNED); - if(RNA_struct_find_property(op->ptr, "enter_editmode")) /* optional */ if (!RNA_property_is_set(op->ptr, "enter_editmode")) RNA_boolean_set(op->ptr, "enter_editmode", U.flag & USER_ADD_EDITMODE); + + if (!RNA_property_is_set(op->ptr, "location")) { + float loc[3]; + + ED_object_location_from_view(C, loc); + RNA_float_set_array(op->ptr, "location", loc); + } + + if (!RNA_property_is_set(op->ptr, "rotation")) { + int view_align; + float rot[3] = {0.f, 0.f, 0.f}; + + /* view align property is just used to set rotation property */ + if (!RNA_property_is_set(op->ptr, "view_align")) + view_align = U.flag & USER_ADD_VIEWALIGNED; + else + view_align = RNA_boolean_get(op->ptr, "view_align"); + + if (view_align) + ED_object_rotation_from_view(C, rot); + + RNA_float_set_array(op->ptr, "rotation", rot); + } + } int ED_object_add_generic_invoke(bContext *C, wmOperator *op, wmEvent *event) @@ -165,18 +198,20 @@ int ED_object_add_generic_invoke(bContext *C, wmOperator *op, wmEvent *event) return op->type->exec(C, op); } -void ED_object_add_generic_get_opts(wmOperator *op, int *view_align, int *enter_editmode) +void ED_object_add_generic_get_opts(wmOperator *op, float *loc, float *rot, int *enter_editmode) { - *view_align= RNA_boolean_get(op->ptr, "view_align"); *enter_editmode = FALSE; if(RNA_struct_find_property(op->ptr, "enter_editmode") && RNA_boolean_get(op->ptr, "enter_editmode")) { *enter_editmode = TRUE; } + + RNA_float_get_array(op->ptr, "location", loc); + RNA_float_get_array(op->ptr, "rotation", rot); } /* for object add primitive operators */ -Object *ED_object_add_type(bContext *C, int type, int view_align, int enter_editmode) +Object *ED_object_add_type(bContext *C, int type, float *loc, float *rot, int enter_editmode) { Scene *scene= CTX_data_scene(C); Object *ob; @@ -191,7 +226,7 @@ Object *ED_object_add_type(bContext *C, int type, int view_align, int enter_edit ED_base_object_activate(C, BASACT); /* more editor stuff */ - ED_object_base_init_from_view(C, BASACT, view_align); + ED_object_base_init_transform(C, BASACT, loc, rot); DAG_scene_sort(scene); @@ -204,9 +239,11 @@ Object *ED_object_add_type(bContext *C, int type, int view_align, int enter_edit /* for object add operator */ static int object_add_exec(bContext *C, wmOperator *op) { - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); - ED_object_add_type(C, RNA_enum_get(op->ptr, "type"), view_align, enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); + ED_object_add_type(C, RNA_enum_get(op->ptr, "type"), loc, rot, enter_editmode); return OPERATOR_FINISHED; } @@ -258,11 +295,13 @@ void add_effector_draw(Scene *scene, View3D *v3d, int type) /* for toolbox or me static Object *effector_add_type(bContext *C, wmOperator *op, int type) { Object *ob; - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); if(type==PFIELD_GUIDE) { - ob= ED_object_add_type(C, OB_CURVE, view_align, FALSE); + ob= ED_object_add_type(C, OB_CURVE, loc, rot, FALSE); rename_id(&ob->id, "CurveGuide"); ((Curve*)ob->data)->flag |= CU_PATH|CU_3D; @@ -273,7 +312,7 @@ static Object *effector_add_type(bContext *C, wmOperator *op, int type) ED_object_exit_editmode(C, EM_FREEDATA|EM_DO_UNDO); } else { - ob= ED_object_add_type(C, OB_EMPTY, view_align, FALSE); + ob= ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE); rename_id(&ob->id, "Field"); switch(type) { @@ -335,13 +374,14 @@ static int object_add_curve_exec(bContext *C, wmOperator *op) ListBase *editnurb; Nurb *nu; int newob= 0, type= RNA_enum_get(op->ptr, "type"); - int view_align, enter_editmode; + int enter_editmode; + float loc[3], rot[3]; object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); if(obedit==NULL || obedit->type!=OB_CURVE) { - obedit= ED_object_add_type(C, OB_CURVE, view_align, TRUE); + obedit= ED_object_add_type(C, OB_CURVE, loc, rot, TRUE); newob = 1; if(type & CU_PRIM_PATH) @@ -419,13 +459,14 @@ static int object_add_surface_exec(bContext *C, wmOperator *op) ListBase *editnurb; Nurb *nu; int newob= 0; - int view_align, enter_editmode; + int enter_editmode; + float loc[3], rot[3]; object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); if(obedit==NULL || obedit->type!=OB_SURF) { - obedit= ED_object_add_type(C, OB_SURF, view_align, TRUE); + obedit= ED_object_add_type(C, OB_SURF, loc, rot, TRUE); newob = 1; } else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA); @@ -479,13 +520,14 @@ static int object_metaball_add_exec(bContext *C, wmOperator *op) MetaBall *mball; MetaElem *elem; int newob= 0; - int view_align, enter_editmode; + int enter_editmode; + float loc[3], rot[3]; object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); if(obedit==NULL || obedit->type!=OB_MBALL) { - obedit= ED_object_add_type(C, OB_MBALL, view_align, TRUE); + obedit= ED_object_add_type(C, OB_MBALL, loc, rot, TRUE); newob = 1; } else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA); @@ -544,15 +586,16 @@ void OBJECT_OT_metaball_add(wmOperatorType *ot) static int object_add_text_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - int view_align, enter_editmode; + int enter_editmode; + float loc[3], rot[3]; object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); if(obedit && obedit->type==OB_FONT) return OPERATOR_CANCELLED; - obedit= ED_object_add_type(C, OB_FONT, view_align, enter_editmode); + obedit= ED_object_add_type(C, OB_FONT, loc, rot, enter_editmode); WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit); @@ -582,13 +625,14 @@ static int object_armature_add_exec(bContext *C, wmOperator *op) View3D *v3d= CTX_wm_view3d(C); RegionView3D *rv3d= NULL; int newob= 0; - int view_align, enter_editmode; + int enter_editmode; + float loc[3], rot[3]; object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); if ((obedit==NULL) || (obedit->type != OB_ARMATURE)) { - obedit= ED_object_add_type(C, OB_ARMATURE, view_align, TRUE); + obedit= ED_object_add_type(C, OB_ARMATURE, loc, rot, TRUE); ED_object_enter_editmode(C, 0); newob = 1; } @@ -636,10 +680,12 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op) { Object *ob; int type= RNA_enum_get(op->ptr, "type"); - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); - ob= ED_object_add_type(C, OB_LAMP, view_align, FALSE); + ob= ED_object_add_type(C, OB_LAMP, loc, rot, FALSE); if(ob && ob->data) ((Lamp*)ob->data)->type= type; @@ -679,11 +725,13 @@ static int group_instance_add_exec(bContext *C, wmOperator *op) { Group *group= BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "type")); - int view_align, enter_editmode; - ED_object_add_generic_get_opts(op, &view_align, &enter_editmode); + int enter_editmode; + float loc[3], rot[3]; + + ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode); if(group) { - Object *ob= ED_object_add_type(C, OB_EMPTY, view_align, FALSE); + Object *ob= ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE); rename_id(&ob->id, group->id.name+2); ob->dup_group= group; ob->transflag |= OB_DUPLIGROUP; -- cgit v1.2.3 From f9ee03f1b195a55ea8298783215d50d0ad4f3795 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 28 Dec 2009 05:14:32 +0000 Subject: Got rid of some dead code --- .../editors/interface/interface_templates.c | 108 ------- source/blender/editors/space_image/image_header.c | 337 --------------------- source/blender/editors/space_image/space_image.c | 24 -- source/blender/editors/space_info/info_ops.c | 63 ---- source/blender/editors/space_node/drawnode.c | 41 --- source/blender/editors/space_node/node_edit.c | 59 ---- source/blender/editors/space_text/text_header.c | 70 ----- .../blender/editors/space_view3d/view3d_buttons.c | 107 ------- 8 files changed, 809 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 74787e492c4..b009581703f 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -1210,114 +1210,6 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr) return draw_constraint(layout, ob, con); } -/************************* Group Template ***************************/ - -#if 0 -static void do_add_groupmenu(void *arg, int event) -{ - Object *ob= OBACT; - - if(ob) { - - if(event== -1) { - Group *group= add_group( "Group" ); - add_to_group(group, ob); - } - else - add_to_group(BLI_findlink(&G.main->group, event), ob); - - ob->flag |= OB_FROMGROUP; - BASACT->flag |= OB_FROMGROUP; - allqueue(REDRAWBUTSOBJECT, 0); - allqueue(REDRAWVIEW3D, 0); - } -} - -static uiBlock *add_groupmenu(void *arg_unused) -{ - uiBlock *block; - Group *group; - short xco=0, yco= 0, index=0; - char str[32]; - - block= uiNewBlock(&curarea->uiblocks, "add_constraintmenu", UI_EMBOSSP, UI_HELV, curarea->win); - uiBlockSetButmFunc(block, do_add_groupmenu, NULL); - - uiDefBut(block, BUTM, B_NOP, "ADD NEW", 0, 20, 160, 19, NULL, 0.0, 0.0, 1, -1, ""); - for(group= G.main->group.first; group; group= group->id.next, index++) { - - /*if(group->id.lib) strcpy(str, "L ");*/ /* we cant allow adding objects inside linked groups, it wont be saved anyway */ - if(group->id.lib==0) { - strcpy(str, " "); - strcat(str, group->id.name+2); - uiDefBut(block, BUTM, B_NOP, str, xco*160, -20*yco, 160, 19, NULL, 0.0, 0.0, 1, index, ""); - - yco++; - if(yco>24) { - yco= 0; - xco++; - } - } - } - - uiTextBoundsBlock(block, 50); - uiBlockSetDirection(block, UI_DOWN); - - return block; -} - -static void group_ob_rem(void *gr_v, void *ob_v) -{ - Object *ob= OBACT; - - if(rem_from_group(gr_v, ob) && find_group(ob, NULL)==NULL) { - ob->flag &= ~OB_FROMGROUP; - BASACT->flag &= ~OB_FROMGROUP; - } - allqueue(REDRAWBUTSOBJECT, 0); - allqueue(REDRAWVIEW3D, 0); - -} - -static void group_local(void *gr_v, void *unused) -{ - Group *group= gr_v; - - group->id.lib= NULL; - - allqueue(REDRAWBUTSOBJECT, 0); - allqueue(REDRAWVIEW3D, 0); - -} - -uiLayout *uiTemplateGroup(uiLayout *layout, Object *ob, Group *group) -{ - uiSetButLock(1, NULL); - uiDefBlockBut(block, add_groupmenu, NULL, "Add to Group", 10,150,150,20, "Add Object to a new Group"); - - /* all groups */ - if(group->id.lib) { - uiLayoutRow() - uiBlockBeginAlign(block); - uiSetButLock(GET_INT_FROM_POINTER(group->id.lib), ERROR_LIBDATA_MESSAGE); /* We cant actually use this button */ - uiDefBut(block, TEX, B_IDNAME, "GR:", 10, 120-yco, 100, 20, group->id.name+2, 0.0, 21.0, 0, 0, "Displays Group name. Click to change."); - uiClearButLock(); - - but= uiDefIconBut(block, BUT, B_NOP, ICON_PARLIB, 110, 120-yco, 20, 20, NULL, 0.0, 0.0, 0.0, 0.0, "Make Group local"); - uiButSetFunc(but, group_local, group, NULL); - uiBlockEndAlign(block); - } else { - but = uiDefBut(block, TEX, B_IDNAME, "GR:", 10, 120-yco, 120, 20, group->id.name+2, 0.0, 21.0, 0, 0, "Displays Group name. Click to change."); - uiButSetFunc(but, test_idbutton_cb, group->id.name, NULL); - } - - xco = 290; - if(group->id.lib==0) { /* cant remove objects from linked groups */ - but = uiDefIconBut(block, BUT, B_NOP, ICON_X, xco, 120-yco, 20, 20, NULL, 0.0, 0.0, 0.0, 0.0, "Remove Group membership"); - uiButSetFunc(but, group_ob_rem, group, ob); - } -} -#endif /************************* Preview Template ***************************/ diff --git a/source/blender/editors/space_image/image_header.c b/source/blender/editors/space_image/image_header.c index e0fd652bf92..dbe2acd603f 100644 --- a/source/blender/editors/space_image/image_header.c +++ b/source/blender/editors/space_image/image_header.c @@ -75,343 +75,6 @@ #include "image_intern.h" -/* ************************ header area region *********************** */ - -#define B_NOP -1 -#define B_REDR 1 -#define B_SIMAGEPAINTTOOL 4 -#define B_SIMA_USE_ALPHA 5 -#define B_SIMA_SHOW_ALPHA 6 -#define B_SIMA_SHOW_ZBUF 7 -#define B_SIMA_RECORD 8 -#define B_SIMA_PLAY 9 - -#if 0 -static void do_image_imagemenu(void *arg, int event) -{ - /* events >=20 are registered bpython scripts */ -#ifndef DISABLE_PYTHON - if (event >= 20) BPY_menu_do_python(PYMENU_IMAGE, event - 20); -#endif -} - -#ifndef DISABLE_PYTHON - { - BPyMenu *pym; - int i = 0; - - /* note that we acount for the N previous entries with i+20: */ - for (pym = BPyMenuTable[PYMENU_IMAGE]; pym; pym = pym->next, i++) { - - uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, menuwidth, 19, - NULL, 0.0, 0.0, 1, i+20, - pym->tooltip?pym->tooltip:pym->filename); - } - } -#endif -#endif - -#if 0 -#ifndef DISABLE_PYTHON -static void do_image_uvs_scriptsmenu(void *arg, int event) -{ - BPY_menu_do_python(PYMENU_UV, event); - - allqueue(REDRAWIMAGE, 0); -} - -static void image_uvs_scriptsmenu (void *args_unused) -{ - uiBlock *block; - BPyMenu *pym; - int i= 0; - short yco = 20, menuwidth = 120; - - block= uiNewBlock(&curarea->uiblocks, "image_uvs_scriptsmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_image_uvs_scriptsmenu, NULL); - - /* note that we acount for the N previous entries with i+20: */ - for (pym = BPyMenuTable[PYMENU_UV]; pym; pym = pym->next, i++) { - - uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, menuwidth, 19, - NULL, 0.0, 0.0, 1, i, - pym->tooltip?pym->tooltip:pym->filename); - } - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - - return block; -} -#endif /* DISABLE_PYTHON */ -#endif - -#if 0 -static void do_image_buttons(bContext *C, void *arg, int event) -{ - switch(event) { - case B_REDR: - ED_area_tag_redraw(CTX_wm_area(C)); - break; - } - - ToolSettings *settings= G.scene->toolsettings; - ID *id, *idtest; - int nr; - - if(curarea->win==0) return; - - if(event<=100) { - if(event<=50) do_global_buttons2(event); - else do_global_buttons(event); - return; - } - - switch(event) { - case B_SIMABROWSE: - if(sima->imanr== -2) { - if(G.qual & LR_CTRLKEY) { - activate_databrowse_imasel((ID *)sima->image, ID_IM, 0, B_SIMABROWSE, - &sima->imanr, do_image_buttons); - } else { - activate_databrowse((ID *)sima->image, ID_IM, 0, B_SIMABROWSE, - &sima->imanr, do_image_buttons); - } - return; - } - if(sima->imanr < 0) break; - - nr= 1; - id= (ID *)sima->image; - - idtest= BLI_findlink(&G.main->image, sima->imanr-1); - if(idtest==NULL) { /* no new */ - return; - } - - if(idtest!=id) { - sima->image= (Image *)idtest; - if(idtest->us==0) idtest->us= 1; - BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE); - allqueue(REDRAWIMAGE, 0); - } - /* also when image is the same: assign! 0==no tileflag: */ - image_changed(sima, (Image *)idtest); - BIF_undo_push("Assign image UV"); - - break; - case B_SIMAGETILE: - image_set_tile(sima, 1); /* 1: only tileflag */ - allqueue(REDRAWVIEW3D, 0); - allqueue(REDRAWIMAGE, 0); - break; - case B_SIMA3DVIEWDRAW: - allqueue(REDRAWVIEW3D, 0); - break; - case B_SIMA_REDR_IMA_3D: - allqueue(REDRAWVIEW3D, 0); - allqueue(REDRAWIMAGE, 0); - break; - - case B_SIMAPACKIMA: - pack_image_sima(); - break; - - case B_SIMA_REPACK: - BKE_image_memorypack(sima->image); - allqueue(REDRAWIMAGE, 0); - break; - - case B_SIMA_USE_ALPHA: - sima->flag &= ~(SI_SHOW_ALPHA|SI_SHOW_ZBUF); - scrarea_queue_winredraw(curarea); - scrarea_queue_headredraw(curarea); - break; - case B_SIMA_SHOW_ALPHA: - sima->flag &= ~(SI_USE_ALPHA|SI_SHOW_ZBUF); - scrarea_queue_winredraw(curarea); - scrarea_queue_headredraw(curarea); - break; - case B_SIMA_SHOW_ZBUF: - sima->flag &= ~(SI_SHOW_ALPHA|SI_USE_ALPHA); - scrarea_queue_winredraw(curarea); - scrarea_queue_headredraw(curarea); - break; - case B_SIMARELOAD: - reload_image_sima(); - break; - case B_SIMAGELOAD: - open_image_sima(0); - break; - case B_SIMANAME: - if(sima->image) { - Image *ima; - char str[FILE_MAXDIR+FILE_MAXFILE]; - - /* name in ima has been changed by button! */ - BLI_strncpy(str, sima->image->name, sizeof(str)); - ima= BKE_add_image_file(str); - if(ima) { - BKE_image_signal(ima, &sima->iuser, IMA_SIGNAL_RELOAD); - image_changed(sima, ima); - } - BIF_undo_push("Load image"); - allqueue(REDRAWIMAGE, 0); - } - break; - case B_SIMAMULTI: - if(sima && sima->image) { - BKE_image_multilayer_index(sima->image->rr, &sima->iuser); - allqueue(REDRAWIMAGE, 0); - } - break; - case B_TRANS_IMAGE: - image_editvertex_buts(NULL); - break; - case B_CURSOR_IMAGE: - image_editcursor_buts(NULL); - break; - - case B_TWINANIM: - { - Image *ima; - int nr; - - ima = sima->image; - if (ima) { - if(ima->flag & IMA_TWINANIM) { - nr= ima->xrep*ima->yrep; - if(ima->twsta>=nr) ima->twsta= 1; - if(ima->twend>=nr) ima->twend= nr-1; - if(ima->twsta>ima->twend) ima->twsta= 1; - } - - allqueue(REDRAWIMAGE, 0); - allqueue(REDRAWVIEW3D, 0); - } - break; - } - case B_SIMACLONEBROWSE: - if(settings->imapaint.brush) { - Brush *brush= settings->imapaint.brush; - - if(sima->menunr== -2) { - if(G.qual & LR_CTRLKEY) { - activate_databrowse_imasel((ID *)brush->clone.image, ID_IM, 0, B_SIMACLONEBROWSE, - &sima->menunr, do_image_buttons); - } else { - activate_databrowse((ID *)brush->clone.image, ID_IM, 0, B_SIMACLONEBROWSE, - &sima->menunr, do_image_buttons); - } - break; - } - if(sima->menunr < 0) break; - - if(brush_clone_image_set_nr(brush, sima->menunr)) - allqueue(REDRAWIMAGE, 0); - } - break; - - case B_SIMACLONEDELETE: - if (settings->imapaint.brush) - if (brush_clone_image_delete(settings->imapaint.brush)) - allqueue(REDRAWIMAGE, 0); - break; - - case B_SIMABRUSHCHANGE: - allqueue(REDRAWIMAGE, 0); - allqueue(REDRAWBUTSEDIT, 0); - break; - - case B_SIMACURVES: - curvemapping_do_ibuf(sima->cumap, imagewindow_get_ibuf(sima)); - allqueue(REDRAWIMAGE, 0); - break; - - case B_SIMARANGE: - curvemapping_set_black_white(sima->cumap, NULL, NULL); - curvemapping_do_ibuf(sima->cumap, imagewindow_get_ibuf(sima)); - allqueue(REDRAWIMAGE, 0); - break; - - case B_SIMABRUSHBROWSE: - if(sima->menunr==-2) { - activate_databrowse((ID*)settings->imapaint.brush, ID_BR, 0, B_SIMABRUSHBROWSE, &sima->menunr, do_global_buttons); - break; - } - else if(sima->menunr < 0) break; - - if(brush_set_nr(&settings->imapaint.brush, sima->menunr)) { - BIF_undo_push("Browse Brush"); - allqueue(REDRAWBUTSEDIT, 0); - allqueue(REDRAWIMAGE, 0); - } - break; - case B_SIMABRUSHDELETE: - if(brush_delete(&settings->imapaint.brush)) { - BIF_undo_push("Unlink Brush"); - allqueue(REDRAWIMAGE, 0); - allqueue(REDRAWBUTSEDIT, 0); - } - break; - case B_KEEPDATA: - brush_toggled_fake_user(settings->imapaint.brush); - allqueue(REDRAWIMAGE, 0); - allqueue(REDRAWBUTSEDIT, 0); - break; - case B_SIMABRUSHLOCAL: - if(settings->imapaint.brush && settings->imapaint.brush->id.lib) { - if(okee("Make local")) { - make_local_brush(settings->imapaint.brush); - allqueue(REDRAWIMAGE, 0); - allqueue(REDRAWBUTSEDIT, 0); - } - } - break; - case B_SIMABTEXBROWSE: - if(settings->imapaint.brush) { - Brush *brush= settings->imapaint.brush; - - if(sima->menunr==-2) { - MTex *mtex= brush->mtex[brush->texact]; - ID *id= (ID*)((mtex)? mtex->tex: NULL); - if(G.qual & LR_CTRLKEY) { - activate_databrowse_imasel(id, ID_TE, 0, B_SIMABTEXBROWSE, &sima->menunr, do_image_buttons); - } else { - activate_databrowse(id, ID_TE, 0, B_SIMABTEXBROWSE, &sima->menunr, do_image_buttons); - } - break; - } - else if(sima->menunr < 0) break; - - if(brush_texture_set_nr(brush, sima->menunr)) { - BIF_undo_push("Browse Brush Texture"); - allqueue(REDRAWBUTSSHADING, 0); - allqueue(REDRAWBUTSEDIT, 0); - allqueue(REDRAWIMAGE, 0); - } - } - break; - case B_SIMABTEXDELETE: - if(settings->imapaint.brush) { - if (brush_texture_delete(settings->imapaint.brush)) { - BIF_undo_push("Unlink Brush Texture"); - allqueue(REDRAWBUTSSHADING, 0); - allqueue(REDRAWBUTSEDIT, 0); - allqueue(REDRAWIMAGE, 0); - } - } - break; - case B_SIMA_PLAY: - play_anim(0); - break; - case B_SIMA_RECORD: - imagespace_composite_flipbook(curarea); - break; - } -} -#endif - /********************** toolbox operator *********************/ static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event) diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index d82364fed2f..a077357d03e 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -489,36 +489,12 @@ static void image_buttons_area_listener(ARegion *ar, wmNotifier *wmn) /* add handlers, stuff you only do once or on area/region changes */ static void image_header_area_init(wmWindowManager *wm, ARegion *ar) { -#if 0 - UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy); -#else ED_region_header_init(ar); -#endif } static void image_header_area_draw(const bContext *C, ARegion *ar) { ED_region_header(C, ar); -#if 0 - float col[3]; - - /* clear */ - if(ED_screen_area_active(C)) - UI_GetThemeColor3fv(TH_HEADER, col); - else - UI_GetThemeColor3fv(TH_HEADERDESEL, col); - - glClearColor(col[0], col[1], col[2], 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - /* set view2d view matrix for scrolling (without scrollers) */ - UI_view2d_view_ortho(C, &ar->v2d); - - image_header_buttons(C, ar); - - /* restore view matrix? */ - UI_view2d_view_restore(C); -#endif } /**************************** spacetype *****************************/ diff --git a/source/blender/editors/space_info/info_ops.c b/source/blender/editors/space_info/info_ops.c index f4d8682b8ea..13bcd3276af 100644 --- a/source/blender/editors/space_info/info_ops.c +++ b/source/blender/editors/space_info/info_ops.c @@ -332,66 +332,3 @@ void FILE_OT_find_missing_files(wmOperatorType *ot) /* properties */ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL); } - -#if 0 -static void info_filemenu(bContext *C, uiLayout *layout, void *arg_unused) -{ - - uiLayoutSetOperatorContext(layout, WM_OP_EXEC_AREA); - uiItemO(layout, NULL, 0, "WM_OT_read_homefile"); - uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_AREA); - uiItemO(layout, NULL, 0, "WM_OT_open_mainfile"); -// uiDefIconTextBlockBut(block, info_openrecentmenu, NULL, ICON_RIGHTARROW_THIN, "Open Recent",0, yco-=20, 120, 19, ""); -// uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Recover Last Session", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, ""); - - uiItemS(layout); - - uiLayoutSetOperatorContext(layout, WM_OP_EXEC_AREA); - uiItemO(layout, NULL, 0, "WM_OT_save_mainfile"); - uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_AREA); - uiItemO(layout, NULL, 0, "WM_OT_save_as_mainfile"); - -#if 0 - if(U.flag & USER_FILECOMPRESS) { - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Compress File", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 35, "Enable file compression"); - } else { - uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Compress File", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 35, "Enable file compression"); - } - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Save Rendered Image...|F3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Screenshot Subwindow|Ctrl F3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 24, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Screenshot All|Ctrl Shift F3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 25, ""); -#if GAMEBLENDER == 1 - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Save Game As Runtime...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 22, ""); -#endif - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Save Default Settings|Ctrl U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 31, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Load Factory Settings", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 32, ""); - - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Append or Link|Shift F1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Append or Link (Image Browser)|Ctrl F1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, ""); -// uiDefIconTextBlockBut(block, info_file_importmenu, NULL, ICON_RIGHTARROW_THIN, "Import", 0, yco-=20, menuwidth, 19, ""); -// uiDefIconTextBlockBut(block, info_file_exportmenu, NULL, ICON_RIGHTARROW_THIN, "Export", 0, yco-=20, menuwidth, 19, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBlockBut(block, info_externalfiles, NULL, ICON_RIGHTARROW_THIN, "External Data",0, yco-=20, 120, 19, ""); - - uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Quit Blender|Ctrl Q", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, ""); - uiBlockSetDirection(block, UI_DOWN); - uiTextBoundsBlock(block, 80); - - uiEndBlock(C, block); - return block; -#endif -} -#endif - diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index caff0968e54..30212abd4da 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -1228,47 +1228,6 @@ void ED_init_node_butfuncs(void) /* ************** Generic drawing ************** */ -#if 0 -void node_rename_but(char *s) -{ - uiBlock *block; - ListBase listb={0, 0}; - int dy, x1, y1, sizex=80, sizey=30; - short pivot[2], mval[2], ret=0; - - getmouseco_sc(mval); - - pivot[0]= CLAMPIS(mval[0], (sizex+10), G.curscreen->sizex-30); - pivot[1]= CLAMPIS(mval[1], (sizey/2)+10, G.curscreen->sizey-(sizey/2)-10); - - if (pivot[0]!=mval[0] || pivot[1]!=mval[1]) - warp_pointer(pivot[0], pivot[1]); - - mywinset(G.curscreen->mainwin); - - x1= pivot[0]-sizex+10; - y1= pivot[1]-sizey/2; - dy= sizey/2; - - block= uiNewBlock(&listb, "button", UI_EMBOSS, UI_HELV, G.curscreen->mainwin); - uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_NUMSELECT|UI_BLOCK_ENTER_OK); - - /* buttons have 0 as return event, to prevent menu to close on hotkeys */ - uiBlockBeginAlign(block); - - uiDefBut(block, TEX, B_NOP, "Name: ", (short)(x1),(short)(y1+dy), 150, 19, s, 0.0, 19.0, 0, 0, "Node user name"); - - uiBlockEndAlign(block); - - uiDefBut(block, BUT, 32767, "OK", (short)(x1+150), (short)(y1+dy), 29, 19, NULL, 0, 0, 0, 0, ""); - - uiBoundsBlock(block, 2); - - ret= uiDoBlocks(&listb, 0, 0); -} - -#endif - void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage) { diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index ce32c536389..f177e1a2622 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1142,31 +1142,6 @@ void NODE_OT_resize(wmOperatorType *ot) #if 0 -/* ******************** rename ******************* */ - - -/* should go through RNA */ -void node_rename(SpaceNode *snode) -{ - bNode *node, *rename_node; - short found_node= 0; - - /* check if a node is selected */ - for(node= snode->edittree->nodes.first; node; node= node->next) { - if(node->flag & SELECT) { - found_node= 1; - break; - } - } - - if(found_node) { - rename_node= nodeGetActive(snode->edittree); - node_rename_but((char *)rename_node->name); - - // allqueue(REDRAWNODE, 1); - } -} - /* ********************** select ******************** */ /* used in buttons to check context, also checks for edited groups */ @@ -2185,38 +2160,4 @@ void NODE_OT_show_cyclic_dependencies(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -#if 0 - -/* ******************** main event loop ****************** */ - -void winqreadnodespace(ScrArea *sa, void *spacedata, BWinEvent *evt) -{ - if(val) { - switch(event) { - case CKEY: /* sort again, showing cyclics */ - ntreeSolveOrder(snode->edittree); - doredraw= 1; - break; - case EKEY: - // XXX snode_handle_recalc(snode); - break; - - case RKEY: - if(G.qual==LR_CTRLKEY) { - node_rename(snode); - } - else if(G.qual==LR_SHIFTKEY) { - if(okee("Read saved Full Sample Layers")) - node_read_fullsamplelayers(snode); - } - else { - if(okee("Read saved Render Layers")) - node_read_renderlayers(snode); - } - break; - } - } -} -#endif - diff --git a/source/blender/editors/space_text/text_header.c b/source/blender/editors/space_text/text_header.c index d0a02f558e1..935103db02b 100644 --- a/source/blender/editors/space_text/text_header.c +++ b/source/blender/editors/space_text/text_header.c @@ -87,76 +87,6 @@ /* ************************ header area region *********************** */ -#ifndef DISABLE_PYTHON -#if 0 -static void do_text_template_scriptsmenu(bContext *C, void *arg, int event) -{ - // XXX BPY_menu_do_python(PYMENU_SCRIPTTEMPLATE, event); -} - -static uiBlock *text_template_scriptsmenu(bContext *C, void *args_unused) -{ - ARegion *ar= CTX_wm_region(C); - uiBlock *block; - // XXX BPyMenu *pym; - // int i= 0; - // short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "text_template_scriptsmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_text_template_scriptsmenu, NULL); - - /* note that we acount for the N previous entries with i+20: */ - /* XXX for (pym = BPyMenuTable[PYMENU_SCRIPTTEMPLATE]; pym; pym = pym->next, i++) { - - uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, menuwidth, 19, - NULL, 0.0, 0.0, 1, i, - pym->tooltip?pym->tooltip:pym->filename); - }*/ - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - - uiEndBlock(C, block); - uiDrawBlock(C, block); - - return block; -} - -static void do_text_plugin_scriptsmenu(bContext *C, void *arg, int event) -{ - // XXX BPY_menu_do_python(PYMENU_TEXTPLUGIN, event); -} - -static uiBlock *text_plugin_scriptsmenu(bContext *C, void *args_unused) -{ - ARegion *ar= CTX_wm_region(C); - uiBlock *block; - // XXX BPyMenu *pym; - // int i= 0; - // short yco = 20, menuwidth = 120; - - block= uiBeginBlock(C, ar, "text_plugin_scriptsmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_text_plugin_scriptsmenu, NULL); - - /* note that we acount for the N previous entries with i+20: */ - /* XXX for (pym = BPyMenuTable[PYMENU_TEXTPLUGIN]; pym; pym = pym->next, i++) { - - uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, menuwidth, 19, - NULL, 0.0, 0.0, 1, i, - pym->tooltip?pym->tooltip:pym->filename); - }*/ - - uiBlockSetDirection(block, UI_RIGHT); - uiTextBoundsBlock(block, 60); - - uiEndBlock(C, block); - uiDrawBlock(C, block); - - return block; -} -#endif -#endif - /************************** properties ******************************/ ARegion *text_has_properties_region(ScrArea *sa) diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index a21b8442c85..5ca10de8456 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -477,27 +477,6 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d } } -#if 0 -/* assumes armature active */ -static void validate_bonebutton_cb(bContext *C, void *bonev, void *namev) -{ - Object *ob= CTX_data_active_object(C); - - if(ob && ob->type==OB_ARMATURE) { - Bone *bone= bonev; - char oldname[32], newname[32]; - - /* need to be on the stack */ - BLI_strncpy(newname, bone->name, 32); - BLI_strncpy(oldname, (char *)namev, 32); - /* restore */ - BLI_strncpy(bone->name, oldname, 32); - - ED_armature_bone_rename(ob->data, oldname, newname); // editarmature.c - } -} -#endif - static void v3d_transform_butsR(uiLayout *layout, PointerRNA *ptr) { uiLayout *split, *colsub; @@ -934,92 +913,6 @@ void selectTransformOrientation_func(bContext *C, void *target, void *unused) BIF_selectTransformOrientation(C, (TransformOrientation *) target); } -#if 0 // XXX not used -static void view3d_panel_transform_spaces(const bContext *C, Panel *pa) -{ - Scene *scene= CTX_data_scene(C); - Object *obedit= CTX_data_edit_object(C); - View3D *v3d= CTX_wm_view3d(C); - ListBase *transform_spaces = &scene->transform_spaces; - TransformOrientation *ts = transform_spaces->first; - uiBlock *block; - uiBut *but; - int xco = 20, yco = 70; - int index; - - block= uiLayoutAbsoluteBlock(pa->layout); - - uiBlockBeginAlign(block); - - if (obedit) - uiDefBut(block, BUT, B_TRANSFORMSPACEADD, "Add", xco,120,80,20, 0, 0, 0, 0, 0, "Add the selected element as a Transform Orientation"); - else - uiDefBut(block, BUT, B_TRANSFORMSPACEADD, "Add", xco,120,80,20, 0, 0, 0, 0, 0, "Add the active object as a Transform Orientation"); - - uiDefBut(block, BUT, B_TRANSFORMSPACECLEAR, "Clear", xco + 80,120,80,20, 0, 0, 0, 0, 0, "Removal all Transform Orientations"); - - uiBlockEndAlign(block); - - uiBlockBeginAlign(block); - - uiDefButS(block, ROW, B_REDR, "Global", xco, 90, 40,20, &v3d->twmode, 5.0, (float)V3D_MANIP_GLOBAL,0, 0, "Global Transform Orientation"); - uiDefButS(block, ROW, B_REDR, "Local", xco + 40, 90, 40,20, &v3d->twmode, 5.0, (float)V3D_MANIP_LOCAL, 0, 0, "Local Transform Orientation"); - uiDefButS(block, ROW, B_REDR, "Normal", xco + 80, 90, 40,20, &v3d->twmode, 5.0, (float)V3D_MANIP_NORMAL,0, 0, "Normal Transform Orientation"); - uiDefButS(block, ROW, B_REDR, "View", xco + 120, 90, 40,20, &v3d->twmode, 5.0, (float)V3D_MANIP_VIEW, 0, 0, "View Transform Orientation"); - - for (index = V3D_MANIP_CUSTOM, ts = transform_spaces->first ; ts ; ts = ts->next, index++) { - - if (v3d->twmode == index) { - but = uiDefIconButS(block,ROW, B_REDR, ICON_CHECKBOX_HLT, xco,yco,XIC,YIC, &v3d->twmode, 5.0, (float)index, 0, 0, "Use this Custom Transform Orientation"); - } - else { - but = uiDefIconButS(block,ROW, B_REDR, ICON_CHECKBOX_DEHLT, xco,yco,XIC,YIC, &v3d->twmode, 5.0, (float)index, 0, 0, "Use this Custom Transform Orientation"); - } - uiButSetFunc(but, selectTransformOrientation_func, ts, NULL); - uiDefBut(block, TEX, 0, "", xco+=XIC, yco,100+XIC,20, &ts->name, 0, 30, 0, 0, "Edits the name of this Transform Orientation"); - but = uiDefIconBut(block, BUT, B_REDR, ICON_X, xco+=100+XIC,yco,XIC,YIC, 0, 0, 0, 0, 0, "Deletes this Transform Orientation"); - uiButSetFunc(but, removeTransformOrientation_func, ts, NULL); - - xco = 20; - yco -= 25; - } - uiBlockEndAlign(block); -} -#endif // XXX not used - -#if 0 -static void brush_idpoin_handle(bContext *C, ID *id, int event) -{ - Brush **br = current_brush_source(CTX_data_scene(C)); - - if(!br) - return; - - switch(event) { - case UI_ID_BROWSE: - (*br) = (Brush*)id; - break; - case UI_ID_DELETE: - brush_delete(br); - break; - case UI_ID_RENAME: - /* XXX ? */ - break; - case UI_ID_ADD_NEW: - if(id) { - (*br) = copy_brush((Brush*)id); - id->us--; - } - else - (*br) = add_brush("Brush"); - break; - case UI_ID_OPEN: - /* XXX not implemented */ - break; - } -} -#endif - static void view3d_panel_object(const bContext *C, Panel *pa) { uiBlock *block; -- cgit v1.2.3 From fa01205d9a01c39860b2793b8c9a3a20a425c82c Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 28 Dec 2009 08:01:19 +0000 Subject: Fix for [#19519] Dope sheet scrollbar goes out of bounds --- source/blender/editors/interface/view2d.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c index 0bd0435362f..6cc344b891e 100644 --- a/source/blender/editors/interface/view2d.c +++ b/source/blender/editors/interface/view2d.c @@ -1401,10 +1401,8 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short if ((scrollers->hor_max - scrollers->hor_min) < V2D_SCROLLER_HANDLE_SIZE) { scrollers->hor_max= scrollers->hor_min + V2D_SCROLLER_HANDLE_SIZE; - if(scrollers->hor_max > hor.xmax) { - scrollers->hor_max= hor.xmax; - scrollers->hor_min= MAX2(scrollers->hor_max - V2D_SCROLLER_HANDLE_SIZE, hor.xmin); - } + CLAMP(scrollers->hor_max, hor.xmin+V2D_SCROLLER_HANDLE_SIZE, hor.xmax); + CLAMP(scrollers->hor_min, hor.xmin, hor.xmax-V2D_SCROLLER_HANDLE_SIZE); } /* check whether sliders can disappear */ @@ -1437,14 +1435,13 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short scrollers->vert_min= scrollers->vert_max; /* prevent sliders from being too small, and disappearing */ if ((scrollers->vert_max - scrollers->vert_min) < V2D_SCROLLER_HANDLE_SIZE) { + scrollers->vert_max= scrollers->vert_min + V2D_SCROLLER_HANDLE_SIZE; - - if(scrollers->vert_max > vert.ymax) { - scrollers->vert_max= vert.ymax; - scrollers->vert_min= MAX2(scrollers->vert_max - V2D_SCROLLER_HANDLE_SIZE, vert.ymin); - } + + CLAMP(scrollers->vert_max, vert.ymin+V2D_SCROLLER_HANDLE_SIZE, vert.ymax); + CLAMP(scrollers->vert_min, vert.ymin, vert.ymax-V2D_SCROLLER_HANDLE_SIZE); } - + /* check whether sliders can disappear */ if(v2d->keeptot) { if(fac1 <= 0.0f && fac2 >= 1.0f) -- cgit v1.2.3 From 98f1d6957eccd3e7fab4274f29ee6a44de154210 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 28 Dec 2009 10:00:04 +0000 Subject: new python module constants * bpy.home - result of BLI_gethome() * bpy.version - BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION * bpy.version_string, as above, formatted: "%d.%02d (sub %d)" --- source/blender/python/intern/bpy_interface.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 44e3c5a2dd5..5ac3a233e11 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -59,6 +59,7 @@ #include "BLI_fileops.h" #include "BLI_string.h" +#include "BKE_blender.h" #include "BKE_context.h" #include "BKE_text.h" #include "BKE_context.h" @@ -220,6 +221,16 @@ static void bpy_init_modules( void ) PyModule_AddObject(mod, "context", (PyObject *)bpy_context_module); } + /* blender info that wont change at runtime, add into _bpy */ + { + PyObject *mod_dict= PyModule_GetDict(mod); + char tmpstr[256]; + PyModule_AddStringConstant(mod, "_HOME", BLI_gethome()); + PyDict_SetItemString(mod_dict, "_VERSION", Py_BuildValue("(iii)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION)); + sprintf(tmpstr, "%d.%02d (sub %d)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION); + PyModule_AddStringConstant(mod, "_VERSION_STR", tmpstr); + } + /* add our own modules dir, this is a python package */ bpy_import_test("bpy"); } -- cgit v1.2.3 From e09d77507e0d666d47b344a7043cc6f2154f1a5d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 28 Dec 2009 10:44:02 +0000 Subject: remove operators WM_OT_open_recentfile and WM_OT_open_recentfile_splash use a python menu instead. --- source/blender/windowmanager/intern/wm_operators.c | 132 ++------------------- 1 file changed, 7 insertions(+), 125 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index db79fcd70b9..f7054af9443 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -929,6 +929,8 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *arg_unuse uiBut *but; uiLayout *layout, *split, *col; uiStyle *style= U.uistyles.first; + struct RecentFile *recent; + int i; block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN|UI_BLOCK_RET_1); @@ -954,7 +956,9 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *arg_unuse col = uiLayoutColumn(split, 0); uiItemL(col, "Recent", 0); - uiItemsEnumO(col, "WM_OT_open_recentfile_splash", "file"); + for(recent = G.recent_files.first, i=0; (i<6) && (recent); recent = recent->next, i++) + uiItemStringO(col, BLI_last_slash(recent->filename)+1, ICON_FILE_BLEND, "WM_OT_open_mainfile", "path", recent->filename); + uiItemS(col); uiCenteredBoundsBlock(block, 0.0f); @@ -1137,126 +1141,6 @@ static void WM_OT_read_homefile(wmOperatorType *ot) RNA_def_boolean(ot->srna, "factory", 0, "Factory Settings", ""); } - -/* ********* recent file *********** */ - -static int recentfile_exec(bContext *C, wmOperator *op) -{ - int event= RNA_enum_get(op->ptr, "file"); - - // XXX wm in context is not set correctly after WM_read_file -> crash - // do it before for now, but is this correct with multiple windows? - - if(event>0) { - if (G.sce[0] && (event==1)) { - WM_event_add_notifier(C, NC_WINDOW, NULL); - WM_read_file(C, G.sce, op->reports); - } - else { - struct RecentFile *recent = BLI_findlink(&(G.recent_files), event-1); - if(recent) { - WM_event_add_notifier(C, NC_WINDOW, NULL); - WM_read_file(C, recent->filename, op->reports); - } - } - } - return OPERATOR_FINISHED; -} - -static int wm_recentfile_invoke(bContext *C, wmOperator *op, wmEvent *event) -{ - uiPopupMenu *pup; - uiLayout *layout; - - pup= uiPupMenuBegin(C, "Open Recent", 0); - layout= uiPupMenuLayout(pup); - uiItemsEnumO(layout, op->type->idname, "file"); - uiPupMenuEnd(C, pup); - - return OPERATOR_CANCELLED; -} - -static EnumPropertyItem *open_recentfile_itemf(bContext *C, PointerRNA *ptr, int *free) -{ - EnumPropertyItem tmp = {0, "", 0, "", ""}; - EnumPropertyItem *item= NULL; - struct RecentFile *recent; - int totitem= 0, i; - - /* dynamically construct enum */ - for(recent = G.recent_files.first, i=0; (inext, i++) { - tmp.value= i+1; - tmp.icon= ICON_FILE_BLEND; - tmp.identifier= recent->filename; - tmp.name= BLI_short_filename(recent->filename); - RNA_enum_item_add(&item, &totitem, &tmp); - } - - RNA_enum_item_end(&item, &totitem); - *free= 1; - - return item; -} - -static void WM_OT_open_recentfile(wmOperatorType *ot) -{ - PropertyRNA *prop; - static EnumPropertyItem file_items[]= { - {0, NULL, 0, NULL, NULL}}; - - ot->name= "Open Recent File"; - ot->idname= "WM_OT_open_recentfile"; - ot->description="Open recent files list."; - - ot->invoke= wm_recentfile_invoke; - ot->exec= recentfile_exec; - ot->poll= WM_operator_winactive; - - prop= RNA_def_enum(ot->srna, "file", file_items, 1, "File", ""); - RNA_def_enum_funcs(prop, open_recentfile_itemf); -} - -static EnumPropertyItem *open_recentfile_splash_itemf(bContext *C, PointerRNA *ptr, int *free) -{ - EnumPropertyItem tmp = {0, "", 0, "", ""}; - EnumPropertyItem *item= NULL; - struct RecentFile *recent; - int totitem= 0, i; - - /* dynamically construct enum */ - for(recent = G.recent_files.first, i=0; (i<6) && (recent); recent = recent->next, i++) { - tmp.value= i+1; - tmp.icon= ICON_FILE_BLEND; - tmp.identifier= recent->filename; - tmp.name= BLI_last_slash(recent->filename); - if(tmp.name) tmp.name += 1; - else tmp.name = recent->filename; - RNA_enum_item_add(&item, &totitem, &tmp); - } - - RNA_enum_item_end(&item, &totitem); - *free= 1; - - return item; -} - -static void WM_OT_open_recentfile_splash(wmOperatorType *ot) -{ - PropertyRNA *prop; - static EnumPropertyItem file_items[]= { - {0, NULL, 0, NULL, NULL}}; - - ot->name= "Open Recent File"; - ot->idname= "WM_OT_open_recentfile_splash"; - ot->description="Open recent files list."; - - ot->exec= recentfile_exec; - ot->poll= WM_operator_winactive; - - prop= RNA_def_enum(ot->srna, "file", file_items, 1, "File", ""); - RNA_def_enum_funcs(prop, open_recentfile_splash_itemf); -} - /* *************** open file **************** */ static void open_set_load_ui(wmOperator *op) @@ -2683,8 +2567,6 @@ void wm_operatortype_init(void) WM_operatortype_append(WM_OT_save_homefile); WM_operatortype_append(WM_OT_window_fullscreen_toggle); WM_operatortype_append(WM_OT_exit_blender); - WM_operatortype_append(WM_OT_open_recentfile); - WM_operatortype_append(WM_OT_open_recentfile_splash); WM_operatortype_append(WM_OT_open_mainfile); WM_operatortype_append(WM_OT_link_append); WM_operatortype_append(WM_OT_recover_last_session); @@ -2821,7 +2703,7 @@ void wm_window_keymap(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "WM_OT_window_duplicate", WKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); #ifdef __APPLE__ WM_keymap_add_item(keymap, "WM_OT_read_homefile", NKEY, KM_PRESS, KM_OSKEY, 0); - WM_keymap_add_item(keymap, "WM_OT_open_recentfile", OKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0); + WM_keymap_add_menu(keymap, "INFO_MT_file_open_recent", OKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0); WM_keymap_add_item(keymap, "WM_OT_open_mainfile", OKEY, KM_PRESS, KM_OSKEY, 0); WM_keymap_add_item(keymap, "WM_OT_save_mainfile", SKEY, KM_PRESS, KM_OSKEY, 0); WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0); @@ -2829,7 +2711,7 @@ void wm_window_keymap(wmKeyConfig *keyconf) #endif WM_keymap_add_item(keymap, "WM_OT_read_homefile", NKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "WM_OT_save_homefile", UKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "WM_OT_open_recentfile", OKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); + WM_keymap_add_menu(keymap, "INFO_MT_file_open_recent", OKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); WM_keymap_add_item(keymap, "WM_OT_open_mainfile", OKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "WM_OT_open_mainfile", F1KEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "WM_OT_link_append", OKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); -- cgit v1.2.3 From 32656ad4ba6af89fcbd8247bc219e55be802ebdc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 28 Dec 2009 15:26:36 +0000 Subject: moved shape key insert function into BKE_object.h --- source/blender/blenkernel/BKE_key.h | 10 +- source/blender/blenkernel/BKE_object.h | 1 + source/blender/blenkernel/intern/key.c | 184 ++++++++++++++- source/blender/blenkernel/intern/object.c | 94 ++++++++ source/blender/editors/include/ED_object.h | 2 +- source/blender/editors/mesh/meshtools.c | 4 +- source/blender/editors/object/object_modifier.c | 4 +- source/blender/editors/object/object_shapekey.c | 285 +----------------------- 8 files changed, 303 insertions(+), 281 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h index d5bae00d32e..e80e57ae63c 100644 --- a/source/blender/blenkernel/BKE_key.h +++ b/source/blender/blenkernel/BKE_key.h @@ -59,7 +59,7 @@ void key_curve_normal_weights(float t, float *data, int type); float *do_ob_key(struct Scene *scene, struct Object *ob); struct Key *ob_get_key(struct Object *ob); -struct KeyBlock *add_keyblock(struct Scene *scene, struct Key *key); +struct KeyBlock *add_keyblock(struct Key *key); struct KeyBlock *ob_get_keyblock(struct Object *ob); struct KeyBlock *ob_get_reference_keyblock(struct Object *ob); struct KeyBlock *key_get_keyblock(struct Key *key, int index); @@ -68,6 +68,14 @@ char *key_get_curValue_rnaPath(struct Key *key, struct KeyBlock *kb); // needed for the GE void do_rel_key(int start, int end, int tot, char *basispoin, struct Key *key, struct KeyBlock *actkb, int mode); +/* conversion functions */ +void key_to_mesh(struct KeyBlock *kb, struct Mesh *me); +void mesh_to_key(struct Mesh *me, struct KeyBlock *kb); +void key_to_latt(struct KeyBlock *kb, struct Lattice *lt); +void latt_to_key(struct Lattice *lt, struct KeyBlock *kb); +void key_to_curve(struct KeyBlock *kb, struct Curve *cu, struct ListBase *nurb); +void curve_to_key(struct Curve *cu, struct KeyBlock *kb, struct ListBase *nurb); + #ifdef __cplusplus }; #endif diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 3e239e91453..1dca3a597fe 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -120,6 +120,7 @@ int give_obdata_texspace(struct Object *ob, short **texflag, float **loc, float int object_insert_ptcache(struct Object *ob); // void object_delete_ptcache(struct Object *ob, int index); +int object_insert_shape_key(struct Scene *scene, struct Object *ob, int from_mix); #ifdef __cplusplus diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index c7b79756263..825dd7d441b 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1395,7 +1395,7 @@ Key *ob_get_key(Object *ob) return NULL; } -KeyBlock *add_keyblock(Scene *scene, Key *key) +KeyBlock *add_keyblock(Key *key) { KeyBlock *kb; float curpos= -0.1; @@ -1516,3 +1516,185 @@ char *key_get_curValue_rnaPath(Key *key, KeyBlock *kb) /* return the path */ return RNA_path_from_ID_to_property(&ptr, prop); } + + +/* conversion functions */ + +/************************* Lattice ************************/ +void latt_to_key(Lattice *lt, KeyBlock *kb) +{ + BPoint *bp; + float *fp; + int a, tot; + + tot= lt->pntsu*lt->pntsv*lt->pntsw; + if(tot==0) return; + + if(kb->data) MEM_freeN(kb->data); + + kb->data= MEM_callocN(lt->key->elemsize*tot, "kb->data"); + kb->totelem= tot; + + bp= lt->def; + fp= kb->data; + for(a=0; atotelem; a++, fp+=3, bp++) { + VECCOPY(fp, bp->vec); + } +} + +void key_to_latt(KeyBlock *kb, Lattice *lt) +{ + BPoint *bp; + float *fp; + int a, tot; + + bp= lt->def; + fp= kb->data; + + tot= lt->pntsu*lt->pntsv*lt->pntsw; + tot= MIN2(kb->totelem, tot); + + for(a=0; avec, fp); + } +} + +/************************* Curve ************************/ +void curve_to_key(Curve *cu, KeyBlock *kb, ListBase *nurb) +{ + Nurb *nu; + BezTriple *bezt; + BPoint *bp; + float *fp; + int a, tot; + + /* count */ + tot= count_curveverts(nurb); + if(tot==0) return; + + if(kb->data) MEM_freeN(kb->data); + + kb->data= MEM_callocN(cu->key->elemsize*tot, "kb->data"); + kb->totelem= tot; + + nu= nurb->first; + fp= kb->data; + while(nu) { + + if(nu->bezt) { + bezt= nu->bezt; + a= nu->pntsu; + while(a--) { + VECCOPY(fp, bezt->vec[0]); + fp+= 3; + VECCOPY(fp, bezt->vec[1]); + fp+= 3; + VECCOPY(fp, bezt->vec[2]); + fp+= 3; + fp[0]= bezt->alfa; + fp+= 3; /* alphas */ + bezt++; + } + } + else { + bp= nu->bp; + a= nu->pntsu*nu->pntsv; + while(a--) { + VECCOPY(fp, bp->vec); + fp[3]= bp->alfa; + + fp+= 4; + bp++; + } + } + nu= nu->next; + } +} + +void key_to_curve(KeyBlock *kb, Curve *cu, ListBase *nurb) +{ + Nurb *nu; + BezTriple *bezt; + BPoint *bp; + float *fp; + int a, tot; + + nu= nurb->first; + fp= kb->data; + + tot= count_curveverts(nurb); + + tot= MIN2(kb->totelem, tot); + + while(nu && tot>0) { + + if(nu->bezt) { + bezt= nu->bezt; + a= nu->pntsu; + while(a-- && tot>0) { + VECCOPY(bezt->vec[0], fp); + fp+= 3; + VECCOPY(bezt->vec[1], fp); + fp+= 3; + VECCOPY(bezt->vec[2], fp); + fp+= 3; + bezt->alfa= fp[0]; + fp+= 3; /* alphas */ + + tot-= 3; + bezt++; + } + } + else { + bp= nu->bp; + a= nu->pntsu*nu->pntsv; + while(a-- && tot>0) { + VECCOPY(bp->vec, fp); + bp->alfa= fp[3]; + + fp+= 4; + tot--; + bp++; + } + } + nu= nu->next; + } +} + +/************************* Mesh ************************/ +void mesh_to_key(Mesh *me, KeyBlock *kb) +{ + MVert *mvert; + float *fp; + int a; + + if(me->totvert==0) return; + + if(kb->data) MEM_freeN(kb->data); + + kb->data= MEM_callocN(me->key->elemsize*me->totvert, "kb->data"); + kb->totelem= me->totvert; + + mvert= me->mvert; + fp= kb->data; + for(a=0; atotelem; a++, fp+=3, mvert++) { + VECCOPY(fp, mvert->co); + + } +} + +void key_to_mesh(KeyBlock *kb, Mesh *me) +{ + MVert *mvert; + float *fp; + int a, tot; + + mvert= me->mvert; + fp= kb->data; + + tot= MIN2(kb->totelem, me->totvert); + + for(a=0; aco, fp); + } +} diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 06ae9874180..0a56bcff606 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -47,6 +47,7 @@ #include "DNA_constraint_types.h" #include "DNA_curve_types.h" #include "DNA_group_types.h" +#include "DNA_key_types.h" #include "DNA_lamp_types.h" #include "DNA_lattice_types.h" #include "DNA_material_types.h" @@ -2629,3 +2630,96 @@ void object_delete_ptcache(Object *ob, int index) BLI_freelinkN(&ob->pc_ids, link); } #endif + +/* shape key utility function */ + +/************************* Mesh ************************/ +static void insert_meshkey(Scene *scene, Object *ob, int from_mix) +{ + Mesh *me= ob->data; + Key *key= me->key; + KeyBlock *kb; + int newkey= 0; + + if(key == NULL) { + key= me->key= add_key((ID *)me); + key->type= KEY_RELATIVE; + newkey= 1; + } + + kb= add_keyblock(key); + + if(newkey || from_mix==FALSE) { + /* create from mesh */ + mesh_to_key(me, kb); + } + else { + /* copy from current values */ + kb->data= do_ob_key(scene, ob); + kb->totelem= me->totvert; + } +} +/************************* Lattice ************************/ +static void insert_lattkey(Scene *scene, Object *ob, int from_mix) +{ + Lattice *lt= ob->data; + Key *key= lt->key; + KeyBlock *kb; + int newkey= 0; + + if(key==NULL) { + key= lt->key= add_key( (ID *)lt); + key->type= KEY_RELATIVE; + newkey= 1; + } + + kb= add_keyblock(key); + + if(newkey || from_mix==FALSE) { + /* create from lattice */ + latt_to_key(lt, kb); + } + else { + /* copy from current values */ + kb->totelem= lt->pntsu*lt->pntsv*lt->pntsw; + kb->data= do_ob_key(scene, ob); + } +} +/************************* Curve ************************/ +static void insert_curvekey(Scene *scene, Object *ob, int from_mix) +{ + Curve *cu= ob->data; + Key *key= cu->key; + KeyBlock *kb; + ListBase *lb= (cu->editnurb)? cu->editnurb: &cu->nurb; + int newkey= 0; + + if(key==NULL) { + key= cu->key= add_key( (ID *)cu); + key->type = KEY_RELATIVE; + newkey= 1; + } + + kb= add_keyblock(key); + + if(newkey || from_mix==FALSE) { + /* create from curve */ + curve_to_key(cu, kb, lb); + } + else { + /* copy from current values */ + kb->totelem= count_curveverts(lb); + kb->data= do_ob_key(scene, ob); + } + +} + +int object_insert_shape_key(Scene *scene, Object *ob, int from_mix) +{ + if(ob->type==OB_MESH) insert_meshkey(scene, ob, from_mix); + else if ELEM(ob->type, OB_CURVE, OB_SURF) insert_curvekey(scene, ob, from_mix); + else if(ob->type==OB_LATTICE) insert_lattkey(scene, ob, from_mix); + else return 0; + return 1; +} + diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h index 0ba5c938377..272ee3b8699 100644 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@ -110,7 +110,7 @@ void ED_object_constraint_dependency_update(struct Scene *scene, struct Object * int mouse_lattice(struct bContext *C, short mval[2], int extend); void undo_push_lattice(struct bContext *C, char *name); -/* object_shapekey.c */ +/* key.c */ void key_to_mesh(struct KeyBlock *kb, struct Mesh *me); void mesh_to_key(struct Mesh *me, struct KeyBlock *kb); void key_to_latt(struct KeyBlock *kb, struct Lattice *lt); diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index 02833bdf3f7..b004fcb0deb 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -588,7 +588,7 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op) key->type= KEY_RELATIVE; /* first key added, so it was the basis. initialise it with the existing mesh */ - kb= add_keyblock(scene, key); + kb= add_keyblock(key); mesh_to_key(me, kb); } @@ -604,7 +604,7 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op) if (!dm) continue; - kb= add_keyblock(scene, key); + kb= add_keyblock(key); strcpy(kb->name, base->object->id.name+2); BLI_uniquename(&key->block, kb, "Key", '.', offsetof(KeyBlock, name), 32); diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 552de1f8f60..8bfc9a66690 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -370,11 +370,11 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M key->type= KEY_RELATIVE; /* if that was the first key block added, then it was the basis. * Initialise it with the mesh, and add another for the modifier */ - kb= add_keyblock(scene, key); + kb= add_keyblock(key); mesh_to_key(me, kb); } - kb= add_keyblock(scene, key); + kb= add_keyblock(key); DM_to_meshkey(dm, me, kb); dm->release(dm); diff --git a/source/blender/editors/object/object_shapekey.c b/source/blender/editors/object/object_shapekey.c index f8eff578839..5d839e60ca9 100644 --- a/source/blender/editors/object/object_shapekey.c +++ b/source/blender/editors/object/object_shapekey.c @@ -80,283 +80,16 @@ #include "object_intern.h" -/************************* Mesh ************************/ - -void mesh_to_key(Mesh *me, KeyBlock *kb) -{ - MVert *mvert; - float *fp; - int a; - - if(me->totvert==0) return; - - if(kb->data) MEM_freeN(kb->data); - - kb->data= MEM_callocN(me->key->elemsize*me->totvert, "kb->data"); - kb->totelem= me->totvert; - - mvert= me->mvert; - fp= kb->data; - for(a=0; atotelem; a++, fp+=3, mvert++) { - VECCOPY(fp, mvert->co); - - } -} - -void key_to_mesh(KeyBlock *kb, Mesh *me) -{ - MVert *mvert; - float *fp; - int a, tot; - - mvert= me->mvert; - fp= kb->data; - - tot= MIN2(kb->totelem, me->totvert); - - for(a=0; aco, fp); - } -} - -static void insert_meshkey(Scene *scene, Object *ob) -{ - Mesh *me= ob->data; - Key *key= me->key; - KeyBlock *kb; - int newkey= 0; - - if(key == NULL) { - key= me->key= add_key((ID *)me); - key->type= KEY_RELATIVE; - newkey= 1; - } - - kb= add_keyblock(scene, key); - - if(newkey) { - /* create from mesh */ - mesh_to_key(me, kb); - } - else { - /* copy from current values */ - kb->data= do_ob_key(scene, ob); - kb->totelem= me->totvert; - } -} - -/************************* Lattice ************************/ - -void latt_to_key(Lattice *lt, KeyBlock *kb) -{ - BPoint *bp; - float *fp; - int a, tot; - - tot= lt->pntsu*lt->pntsv*lt->pntsw; - if(tot==0) return; - - if(kb->data) MEM_freeN(kb->data); - - kb->data= MEM_callocN(lt->key->elemsize*tot, "kb->data"); - kb->totelem= tot; - - bp= lt->def; - fp= kb->data; - for(a=0; atotelem; a++, fp+=3, bp++) { - VECCOPY(fp, bp->vec); - } -} - -void key_to_latt(KeyBlock *kb, Lattice *lt) -{ - BPoint *bp; - float *fp; - int a, tot; - - bp= lt->def; - fp= kb->data; - - tot= lt->pntsu*lt->pntsv*lt->pntsw; - tot= MIN2(kb->totelem, tot); - - for(a=0; avec, fp); - } -} - -static void insert_lattkey(Scene *scene, Object *ob) -{ - Lattice *lt= ob->data; - Key *key= lt->key; - KeyBlock *kb; - int newkey= 0; - - if(key==NULL) { - key= lt->key= add_key( (ID *)lt); - key->type= KEY_RELATIVE; - newkey= 1; - } - - kb= add_keyblock(scene, key); - - if(newkey) { - /* create from lattice */ - latt_to_key(lt, kb); - } - else { - /* copy from current values */ - kb->totelem= lt->pntsu*lt->pntsv*lt->pntsw; - kb->data= do_ob_key(scene, ob); - } -} - -/************************* Curve ************************/ - -void curve_to_key(Curve *cu, KeyBlock *kb, ListBase *nurb) -{ - Nurb *nu; - BezTriple *bezt; - BPoint *bp; - float *fp; - int a, tot; - - /* count */ - tot= count_curveverts(nurb); - if(tot==0) return; - - if(kb->data) MEM_freeN(kb->data); - - kb->data= MEM_callocN(cu->key->elemsize*tot, "kb->data"); - kb->totelem= tot; - - nu= nurb->first; - fp= kb->data; - while(nu) { - - if(nu->bezt) { - bezt= nu->bezt; - a= nu->pntsu; - while(a--) { - VECCOPY(fp, bezt->vec[0]); - fp+= 3; - VECCOPY(fp, bezt->vec[1]); - fp+= 3; - VECCOPY(fp, bezt->vec[2]); - fp+= 3; - fp[0]= bezt->alfa; - fp+= 3; /* alphas */ - bezt++; - } - } - else { - bp= nu->bp; - a= nu->pntsu*nu->pntsv; - while(a--) { - VECCOPY(fp, bp->vec); - fp[3]= bp->alfa; - - fp+= 4; - bp++; - } - } - nu= nu->next; - } -} - -void key_to_curve(KeyBlock *kb, Curve *cu, ListBase *nurb) -{ - Nurb *nu; - BezTriple *bezt; - BPoint *bp; - float *fp; - int a, tot; - - nu= nurb->first; - fp= kb->data; - - tot= count_curveverts(nurb); - - tot= MIN2(kb->totelem, tot); - - while(nu && tot>0) { - - if(nu->bezt) { - bezt= nu->bezt; - a= nu->pntsu; - while(a-- && tot>0) { - VECCOPY(bezt->vec[0], fp); - fp+= 3; - VECCOPY(bezt->vec[1], fp); - fp+= 3; - VECCOPY(bezt->vec[2], fp); - fp+= 3; - bezt->alfa= fp[0]; - fp+= 3; /* alphas */ - - tot-= 3; - bezt++; - } - } - else { - bp= nu->bp; - a= nu->pntsu*nu->pntsv; - while(a-- && tot>0) { - VECCOPY(bp->vec, fp); - bp->alfa= fp[3]; - - fp+= 4; - tot--; - bp++; - } - } - nu= nu->next; - } -} - - -static void insert_curvekey(Scene *scene, Object *ob) -{ - Curve *cu= ob->data; - Key *key= cu->key; - KeyBlock *kb; - ListBase *lb= (cu->editnurb)? cu->editnurb: &cu->nurb; - int newkey= 0; - - if(key==NULL) { - key= cu->key= add_key( (ID *)cu); - key->type = KEY_RELATIVE; - newkey= 1; - } - - kb= add_keyblock(scene, key); - - if(newkey) { - /* create from curve */ - curve_to_key(cu, kb, lb); - } - else { - /* copy from current values */ - kb->totelem= count_curveverts(lb); - kb->data= do_ob_key(scene, ob); - } - -} - /*********************** add shape key ***********************/ -static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob) +static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int from_mix) { - Key *key; + if(object_insert_shape_key(scene, ob, from_mix)) { + Key *key= ob_get_key(ob); + ob->shapenr= BLI_countlist(&key->block); - if(ob->type==OB_MESH) insert_meshkey(scene, ob); - else if ELEM(ob->type, OB_CURVE, OB_SURF) insert_curvekey(scene, ob); - else if(ob->type==OB_LATTICE) insert_lattkey(scene, ob); - - key= ob_get_key(ob); - ob->shapenr= BLI_countlist(&key->block); - - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + } } /*********************** remove shape key ***********************/ @@ -505,8 +238,9 @@ static int shape_key_add_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data; + int from_mix = RNA_boolean_get(op->ptr, "from_mix"); - ED_object_shape_key_add(C, scene, ob); + ED_object_shape_key_add(C, scene, ob, from_mix); return OPERATOR_FINISHED; } @@ -524,6 +258,9 @@ void OBJECT_OT_shape_key_add(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* properties */ + RNA_def_boolean(ot->srna, "from_mix", 0, "From Mix", "Create the new shape key from the existing mix of keys."); } static int shape_key_remove_exec(bContext *C, wmOperator *op) -- cgit v1.2.3 From 8177f343a0303a66e36f2b78566045c0dea0b406 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 28 Dec 2009 18:03:04 +0000 Subject: - object.add_shape_key(name="Key", from_mix=True) - ensure new shape key names are unique - Transfer ShapeKey now can have its settings changes (redo operator) --- source/blender/blenkernel/BKE_key.h | 2 +- source/blender/blenkernel/BKE_object.h | 2 +- source/blender/blenkernel/intern/key.c | 15 +++++++++---- source/blender/blenkernel/intern/object.c | 28 ++++++++++++++----------- source/blender/editors/mesh/meshtools.c | 6 ++---- source/blender/editors/object/object_modifier.c | 4 ++-- source/blender/editors/object/object_shapekey.c | 4 ++-- source/blender/makesrna/intern/rna_object_api.c | 24 +++++++++++++++++++++ 8 files changed, 59 insertions(+), 26 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h index e80e57ae63c..8bbbf7b0749 100644 --- a/source/blender/blenkernel/BKE_key.h +++ b/source/blender/blenkernel/BKE_key.h @@ -59,7 +59,7 @@ void key_curve_normal_weights(float t, float *data, int type); float *do_ob_key(struct Scene *scene, struct Object *ob); struct Key *ob_get_key(struct Object *ob); -struct KeyBlock *add_keyblock(struct Key *key); +struct KeyBlock *add_keyblock(struct Key *key, char *name); struct KeyBlock *ob_get_keyblock(struct Object *ob); struct KeyBlock *ob_get_reference_keyblock(struct Object *ob); struct KeyBlock *key_get_keyblock(struct Key *key, int index); diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 1dca3a597fe..9e70251c782 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -120,7 +120,7 @@ int give_obdata_texspace(struct Object *ob, short **texflag, float **loc, float int object_insert_ptcache(struct Object *ob); // void object_delete_ptcache(struct Object *ob, int index); -int object_insert_shape_key(struct Scene *scene, struct Object *ob, int from_mix); +struct KeyBlock *object_insert_shape_key(struct Scene *scene, struct Object *ob, char *name, int from_mix); #ifdef __cplusplus diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index 825dd7d441b..1f5e0ca1624 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -32,6 +32,7 @@ #include #include +#include #include "MEM_guardedalloc.h" @@ -1395,7 +1396,7 @@ Key *ob_get_key(Object *ob) return NULL; } -KeyBlock *add_keyblock(Key *key) +KeyBlock *add_keyblock(Key *key, char *name) { KeyBlock *kb; float curpos= -0.1; @@ -1409,9 +1410,15 @@ KeyBlock *add_keyblock(Key *key) kb->type= KEY_CARDINAL; tot= BLI_countlist(&key->block); - if(tot==1) strcpy(kb->name, "Basis"); - else sprintf(kb->name, "Key %d", tot-1); - + if(name) { + strncpy(kb->name, name, sizeof(kb->name)); + } else { + if(tot==1) strcpy(kb->name, "Basis"); + else sprintf(kb->name, "Key %d", tot-1); + } + + BLI_uniquename(&key->block, kb, "Key", '.', offsetof(KeyBlock, name), sizeof(kb->name)); + // XXX this is old anim system stuff? (i.e. the 'index' of the shapekey) kb->adrcode= tot-1; diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 0a56bcff606..24d5b9cd882 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2634,7 +2634,7 @@ void object_delete_ptcache(Object *ob, int index) /* shape key utility function */ /************************* Mesh ************************/ -static void insert_meshkey(Scene *scene, Object *ob, int from_mix) +static KeyBlock *insert_meshkey(Scene *scene, Object *ob, char *name, int from_mix) { Mesh *me= ob->data; Key *key= me->key; @@ -2647,7 +2647,7 @@ static void insert_meshkey(Scene *scene, Object *ob, int from_mix) newkey= 1; } - kb= add_keyblock(key); + kb= add_keyblock(key, name); if(newkey || from_mix==FALSE) { /* create from mesh */ @@ -2658,9 +2658,11 @@ static void insert_meshkey(Scene *scene, Object *ob, int from_mix) kb->data= do_ob_key(scene, ob); kb->totelem= me->totvert; } + + return kb; } /************************* Lattice ************************/ -static void insert_lattkey(Scene *scene, Object *ob, int from_mix) +static KeyBlock *insert_lattkey(Scene *scene, Object *ob, char *name, int from_mix) { Lattice *lt= ob->data; Key *key= lt->key; @@ -2673,7 +2675,7 @@ static void insert_lattkey(Scene *scene, Object *ob, int from_mix) newkey= 1; } - kb= add_keyblock(key); + kb= add_keyblock(key, name); if(newkey || from_mix==FALSE) { /* create from lattice */ @@ -2684,9 +2686,11 @@ static void insert_lattkey(Scene *scene, Object *ob, int from_mix) kb->totelem= lt->pntsu*lt->pntsv*lt->pntsw; kb->data= do_ob_key(scene, ob); } + + return kb; } /************************* Curve ************************/ -static void insert_curvekey(Scene *scene, Object *ob, int from_mix) +static KeyBlock *insert_curvekey(Scene *scene, Object *ob, char *name, int from_mix) { Curve *cu= ob->data; Key *key= cu->key; @@ -2700,7 +2704,7 @@ static void insert_curvekey(Scene *scene, Object *ob, int from_mix) newkey= 1; } - kb= add_keyblock(key); + kb= add_keyblock(key, name); if(newkey || from_mix==FALSE) { /* create from curve */ @@ -2712,14 +2716,14 @@ static void insert_curvekey(Scene *scene, Object *ob, int from_mix) kb->data= do_ob_key(scene, ob); } + return kb; } -int object_insert_shape_key(Scene *scene, Object *ob, int from_mix) +KeyBlock *object_insert_shape_key(Scene *scene, Object *ob, char *name, int from_mix) { - if(ob->type==OB_MESH) insert_meshkey(scene, ob, from_mix); - else if ELEM(ob->type, OB_CURVE, OB_SURF) insert_curvekey(scene, ob, from_mix); - else if(ob->type==OB_LATTICE) insert_lattkey(scene, ob, from_mix); - else return 0; - return 1; + if(ob->type==OB_MESH) return insert_meshkey(scene, ob, name, from_mix); + else if ELEM(ob->type, OB_CURVE, OB_SURF)return insert_curvekey(scene, ob, name, from_mix); + else if(ob->type==OB_LATTICE) return insert_lattkey(scene, ob, name, from_mix); + else return NULL; } diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index b004fcb0deb..949faf16ef9 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -588,7 +588,7 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op) key->type= KEY_RELATIVE; /* first key added, so it was the basis. initialise it with the existing mesh */ - kb= add_keyblock(key); + kb= add_keyblock(key, NULL); mesh_to_key(me, kb); } @@ -604,9 +604,7 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op) if (!dm) continue; - kb= add_keyblock(key); - strcpy(kb->name, base->object->id.name+2); - BLI_uniquename(&key->block, kb, "Key", '.', offsetof(KeyBlock, name), 32); + kb= add_keyblock(key, base->object->id.name+2); DM_to_meshkey(dm, me, kb); diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 8bfc9a66690..3e9b1cfe7c7 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -370,11 +370,11 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M key->type= KEY_RELATIVE; /* if that was the first key block added, then it was the basis. * Initialise it with the mesh, and add another for the modifier */ - kb= add_keyblock(key); + kb= add_keyblock(key, NULL); mesh_to_key(me, kb); } - kb= add_keyblock(key); + kb= add_keyblock(key, md->name); DM_to_meshkey(dm, me, kb); dm->release(dm); diff --git a/source/blender/editors/object/object_shapekey.c b/source/blender/editors/object/object_shapekey.c index 5d839e60ca9..99b35b998c2 100644 --- a/source/blender/editors/object/object_shapekey.c +++ b/source/blender/editors/object/object_shapekey.c @@ -84,7 +84,7 @@ static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int from_mix) { - if(object_insert_shape_key(scene, ob, from_mix)) { + if(object_insert_shape_key(scene, ob, NULL, from_mix)) { Key *key= ob_get_key(ob); ob->shapenr= BLI_countlist(&key->block); @@ -241,7 +241,7 @@ static int shape_key_add_exec(bContext *C, wmOperator *op) int from_mix = RNA_boolean_get(op->ptr, "from_mix"); ED_object_shape_key_add(C, scene, ob, from_mix); - + return OPERATOR_FINISHED; } diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 63b4549f7c9..481e92d1ac9 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -309,6 +309,21 @@ static Object *rna_Object_find_armature(Object *ob) return ob_arm; } +static KeyBlock *rna_Object_add_shape_key(Object *ob, bContext *C, ReportList *reports, char *name, int from_mix) +{ + Scene *scene= CTX_data_scene(C); + KeyBlock *kb= NULL; + + if((kb=object_insert_shape_key(scene, ob, name, from_mix))) { + WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + } + else { + BKE_reportf(reports, RPT_ERROR, "Object \"%s\"does not support shapes.", ob->id.name+2); + } + + return kb; +} + int rna_Object_is_visible(Object *ob, bContext *C) { return !(ob->restrictflag & OB_RESTRICT_VIEW) && ob->lay & CTX_data_scene(C)->lay; @@ -414,6 +429,15 @@ void RNA_api_object(StructRNA *srna) parm= RNA_def_pointer(func, "ob_arm", "Object", "", "Armature object influencing this object or NULL."); RNA_def_function_return(func, parm); + /* Shape key */ + func= RNA_def_function(srna, "add_shape_key", "rna_Object_add_shape_key"); + RNA_def_function_ui_description(func, "Add shape key to an object."); + RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); + parm= RNA_def_string(func, "name", "Key", 0, "", "Unique name for the new keylock."); /* optional */ + parm= RNA_def_boolean(func, "from_mix", 1, "", "Create new shape from existing mix of shapes."); + parm= RNA_def_pointer(func, "key", "ShapeKey", "", "New shape keyblock."); + RNA_def_function_return(func, parm); + /* DAG */ func= RNA_def_function(srna, "make_display_list", "rna_Object_make_display_list"); RNA_def_function_ui_description(func, "Update object's display data."); /* XXX describe better */ -- cgit v1.2.3 From 17973dd33d9297fd56c0d614f65c3ad3320a7459 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 28 Dec 2009 18:09:16 +0000 Subject: dont register or undo 3D cursor setting --- source/blender/editors/include/ED_object.h | 8 -------- source/blender/editors/space_view3d/view3d_edit.c | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h index 272ee3b8699..4e3fed6b9f8 100644 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@ -110,14 +110,6 @@ void ED_object_constraint_dependency_update(struct Scene *scene, struct Object * int mouse_lattice(struct bContext *C, short mval[2], int extend); void undo_push_lattice(struct bContext *C, char *name); -/* key.c */ -void key_to_mesh(struct KeyBlock *kb, struct Mesh *me); -void mesh_to_key(struct Mesh *me, struct KeyBlock *kb); -void key_to_latt(struct KeyBlock *kb, struct Lattice *lt); -void latt_to_key(struct Lattice *lt, struct KeyBlock *kb); -void key_to_curve(struct KeyBlock *kb, struct Curve *cu, struct ListBase *nurb); -void curve_to_key(struct Curve *cu, struct KeyBlock *kb, struct ListBase *nurb); - /* object_lattice.c */ void ED_setflagsLatt(struct Object *obedit, int flag); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 43caf85e1bc..e8c2b48e4be 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -2133,7 +2133,7 @@ void VIEW3D_OT_cursor3d(wmOperatorType *ot) ot->poll= ED_operator_view3d_active; /* flags */ - ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +// ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* rna later */ -- cgit v1.2.3 From 1503c90f6b1bd1e910f018a8d6d1e13b9e27767f Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 28 Dec 2009 22:40:52 +0000 Subject: Utility function to get the view vector aligned with a specific 3d coordinate. --- source/blender/editors/include/ED_view3d.h | 2 ++ source/blender/editors/space_view3d/view3d_view.c | 25 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index 13ef235d8fe..de5a9fe4e07 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -93,6 +93,8 @@ void project_int_noclip(struct ARegion *ar, float *vec, int *adr); void project_float(struct ARegion *ar, float *vec, float *adr); void project_float_noclip(struct ARegion *ar, float *vec, float *adr); +void viewvector(struct RegionView3D *rv3d, float coord[3], float vec[3]); + void viewline(struct ARegion *ar, struct View3D *v3d, float mval[2], float ray_start[3], float ray_end[3]); void viewray(struct ARegion *ar, struct View3D *v3d, float mval[2], float ray_start[3], float ray_normal[3]); diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index bbf728d31c0..48f3c77091f 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -576,6 +576,31 @@ void viewray(ARegion *ar, View3D *v3d, float mval[2], float ray_start[3], float normalize_v3(ray_normal); } +void viewvector(RegionView3D *rv3d, float coord[3], float vec[3]) +{ + if (rv3d->persp != RV3D_ORTHO) + { + float p1[4], p2[4]; + + VECCOPY(p1, coord); + p1[3] = 1.0f; + VECCOPY(p2, p1); + p2[3] = 1.0f; + mul_m4_v4(rv3d->viewmat, p2); + + p2[0] = 2.0f * p2[0]; + p2[1] = 2.0f * p2[1]; + p2[2] = 2.0f * p2[2]; + + mul_m4_v4(rv3d->viewinv, p2); + + sub_v3_v3v3(vec, p1, p2); + } + else { + VECCOPY(vec, rv3d->viewinv[2]); + } + normalize_v3(vec); +} void initgrabz(RegionView3D *rv3d, float x, float y, float z) { -- cgit v1.2.3 From d64834a6ce5f079c7c6c14e4938efc1dc890ffd3 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 28 Dec 2009 22:48:10 +0000 Subject: Python attribute lookup. Don't use RNA functions that don't have defined callbacks (can happen for operator functions used for registration only). --- source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/rna_access.c | 5 +++++ source/blender/python/intern/bpy_rna.c | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index fc374ff093a..2528af6b57a 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -855,6 +855,7 @@ const char *RNA_function_identifier(FunctionRNA *func); PropertyRNA *RNA_function_return(FunctionRNA *func); const char *RNA_function_ui_description(FunctionRNA *func); int RNA_function_flag(FunctionRNA *func); +int RNA_function_defined(FunctionRNA *func); PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index); PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 9cc08b297e5..7dcc72e4158 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -3479,6 +3479,11 @@ int RNA_function_flag(FunctionRNA *func) return func->flag; } +int RNA_function_defined(FunctionRNA *func) +{ + return func->call != NULL; +} + PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index) { PropertyRNA *parm; diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 8eda19d8198..4351f69a44a 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1682,7 +1682,8 @@ static PyObject *pyrna_struct_getattro( BPy_StructRNA *self, PyObject *pyname ) else if ((prop = RNA_struct_find_property(&self->ptr, name))) { ret = pyrna_prop_to_py(&self->ptr, prop); } - else if ((func = RNA_struct_find_function(&self->ptr, name))) { + /* RNA function only if callback is declared (no optional functions) */ + else if ((func = RNA_struct_find_function(&self->ptr, name)) && RNA_function_defined(func)) { ret = pyrna_func_to_py((BPy_DummyPointerRNA *)self, func); } else if (self->ptr.type == &RNA_Context) { -- cgit v1.2.3 From d741b3723633f68c960d5fb1ff677f7a72e652ac Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 28 Dec 2009 22:59:09 +0000 Subject: flag to make rna props 'thick wrapped', so returning a property wont try maintain a reference to the original rna property with callbacks. also needed for functions that return vectors/matrix's --- source/blender/makesrna/RNA_types.h | 4 ++ source/blender/makesrna/intern/rna_armature.c | 1 + source/blender/python/generic/matrix.c | 2 +- source/blender/python/intern/bpy_rna.c | 69 ++++++++++++++++++++------- 4 files changed, 59 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 90603f98c7a..8cc949f628e 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -175,6 +175,10 @@ typedef enum PropertyFlag { /* need context for update function */ PROP_CONTEXT_UPDATE = 1<<22, + /* Use for arrays or for any data that should not have a referene kept + * most common case is functions that return arrays where the array */ + PROP_THICK_WRAP = 1<<23, + /* internal flags */ PROP_BUILTIN = 1<<7, PROP_EXPORT = 1<<8, diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 0f36ebda70e..22b16c13630 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -647,6 +647,7 @@ static void rna_def_edit_bone(BlenderRNA *brna) //RNA_def_property_float_sdna(prop, NULL, ""); // doesnt access any real data RNA_def_property_array(prop, 16); RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_flag(prop, PROP_THICK_WRAP); /* no reference to original data */ RNA_def_property_ui_text(prop, "Editbone Matrix", "Read-only matrix calculated from the roll (armature space)."); RNA_def_property_float_funcs(prop, "rna_EditBone_matrix_get", NULL, NULL); // TODO - this could be made writable also diff --git a/source/blender/python/generic/matrix.c b/source/blender/python/generic/matrix.c index a1ef4b53615..dcd1057f881 100644 --- a/source/blender/python/generic/matrix.c +++ b/source/blender/python/generic/matrix.c @@ -1136,7 +1136,7 @@ static PyGetSetDef Matrix_getseters[] = { {"rowSize", (getter)Matrix_getRowSize, (setter)NULL, "", NULL}, {"colSize", (getter)Matrix_getColSize, (setter)NULL, "", NULL}, {"wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, "", NULL}, - {"__owner__",(getter)BaseMathObject_getOwner, (setter)NULL, "", + {"_owner",(getter)BaseMathObject_getOwner, (setter)NULL, "", NULL}, {NULL,NULL,NULL,NULL,NULL} /* Sentinel */ }; diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 4351f69a44a..7c4e49e93e3 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -145,6 +145,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) #ifdef USE_MATHUTILS int subtype, totdim; int len; + int is_thick; /* disallow dynamic sized arrays to be wrapped since the size could change * to a size mathutils does not support */ @@ -154,9 +155,11 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) len= RNA_property_array_length(ptr, prop); subtype= RNA_property_subtype(prop); totdim= RNA_property_array_dimension(ptr, prop, NULL); + is_thick = (RNA_property_flag(prop) & PROP_THICK_WRAP); if (totdim == 1 || (totdim == 2 && subtype == PROP_MATRIX)) { - ret = pyrna_prop_CreatePyObject(ptr, prop); /* owned by the Mathutils PyObject */ + if(!is_thick) + ret = pyrna_prop_CreatePyObject(ptr, prop); /* owned by the Mathutils PyObject */ switch(RNA_property_subtype(prop)) { case PROP_TRANSLATION: @@ -166,40 +169,74 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) case PROP_XYZ: case PROP_XYZ|PROP_UNIT_LENGTH: if(len>=2 && len <= 4) { - PyObject *vec_cb= newVectorObject_cb(ret, len, mathutils_rna_array_cb_index, FALSE); - Py_DECREF(ret); /* the vector owns now */ - ret= vec_cb; /* return the vector instead */ + if(is_thick) { + ret= newVectorObject(NULL, len, Py_NEW, NULL); + RNA_property_float_get_array(ptr, prop, ((VectorObject *)ret)->vec); + } + else { + PyObject *vec_cb= newVectorObject_cb(ret, len, mathutils_rna_array_cb_index, FALSE); + Py_DECREF(ret); /* the vector owns now */ + ret= vec_cb; /* return the vector instead */ + } } break; case PROP_MATRIX: if(len==16) { - PyObject *mat_cb= newMatrixObject_cb(ret, 4,4, mathutils_rna_matrix_cb_index, FALSE); - Py_DECREF(ret); /* the matrix owns now */ - ret= mat_cb; /* return the matrix instead */ + if(is_thick) { + ret= newMatrixObject(NULL, 4, 4, Py_NEW, NULL); + RNA_property_float_get_array(ptr, prop, ((MatrixObject *)ret)->contigPtr); + } + else { + PyObject *mat_cb= newMatrixObject_cb(ret, 4,4, mathutils_rna_matrix_cb_index, FALSE); + Py_DECREF(ret); /* the matrix owns now */ + ret= mat_cb; /* return the matrix instead */ + } } else if (len==9) { - PyObject *mat_cb= newMatrixObject_cb(ret, 3,3, mathutils_rna_matrix_cb_index, FALSE); - Py_DECREF(ret); /* the matrix owns now */ - ret= mat_cb; /* return the matrix instead */ + if(is_thick) { + ret= newMatrixObject(NULL, 3, 3, Py_NEW, NULL); + RNA_property_float_get_array(ptr, prop, ((MatrixObject *)ret)->contigPtr); + } + else { + PyObject *mat_cb= newMatrixObject_cb(ret, 3,3, mathutils_rna_matrix_cb_index, FALSE); + Py_DECREF(ret); /* the matrix owns now */ + ret= mat_cb; /* return the matrix instead */ + } } break; case PROP_EULER: case PROP_QUATERNION: if(len==3) { /* euler */ - PyObject *eul_cb= newEulerObject_cb(ret, mathutils_rna_array_cb_index, FALSE); - Py_DECREF(ret); /* the matrix owns now */ - ret= eul_cb; /* return the matrix instead */ + if(is_thick) { + ret= newEulerObject(NULL, Py_NEW, NULL); + RNA_property_float_get_array(ptr, prop, ((EulerObject *)ret)->eul); + } + else { + PyObject *eul_cb= newEulerObject_cb(ret, mathutils_rna_array_cb_index, FALSE); + Py_DECREF(ret); /* the matrix owns now */ + ret= eul_cb; /* return the matrix instead */ + } } else if (len==4) { - PyObject *quat_cb= newQuaternionObject_cb(ret, mathutils_rna_array_cb_index, FALSE); - Py_DECREF(ret); /* the matrix owns now */ - ret= quat_cb; /* return the matrix instead */ + if(is_thick) { + ret= newQuaternionObject(NULL, Py_NEW, NULL); + RNA_property_float_get_array(ptr, prop, ((QuaternionObject *)ret)->quat); + } + else { + PyObject *quat_cb= newQuaternionObject_cb(ret, mathutils_rna_array_cb_index, FALSE); + Py_DECREF(ret); /* the matrix owns now */ + ret= quat_cb; /* return the matrix instead */ + } } break; default: break; } } + + if(ret==NULL) + ret = pyrna_prop_CreatePyObject(ptr, prop); /* TODO, convert to a python list */ + #endif return ret; -- cgit v1.2.3 From 793004319cf004ef14e6b081a5302722038ec463 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 29 Dec 2009 01:12:54 +0000 Subject: Make manipulator axis fade away and become invisible when perpendicular to the screen. Move some more vars to RegionView3D from View3D Also remove some code no longer used. --- .../editors/transform/transform_manipulator.c | 347 +++++++-------------- source/blender/makesdna/DNA_view3d_types.h | 10 +- 2 files changed, 115 insertions(+), 242 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c index 21e1ea42064..205d6f3479f 100644 --- a/source/blender/editors/transform/transform_manipulator.c +++ b/source/blender/editors/transform/transform_manipulator.c @@ -30,6 +30,7 @@ #include #include #include +#include #ifndef WIN32 #include @@ -157,23 +158,23 @@ static void protectflag_to_drawflags(short protectflag, short *drawflags) } /* for pose mode */ -static void stats_pose(Scene *scene, View3D *v3d, bPoseChannel *pchan) +static void stats_pose(Scene *scene, RegionView3D *rv3d, bPoseChannel *pchan) { Bone *bone= pchan->bone; if(bone) { if (bone->flag & BONE_TRANSFORM) { calc_tw_center(scene, pchan->pose_head); - protectflag_to_drawflags(pchan->protectflag, &v3d->twdrawflag); + protectflag_to_drawflags(pchan->protectflag, &rv3d->twdrawflag); } } } /* for editmode*/ -static void stats_editbone(View3D *v3d, EditBone *ebo) +static void stats_editbone(RegionView3D *rv3d, EditBone *ebo) { if (ebo->flag & BONE_EDITMODE_LOCKED) - protectflag_to_drawflags(OB_LOCK_LOC|OB_LOCK_ROT|OB_LOCK_SCALE, &v3d->twdrawflag); + protectflag_to_drawflags(OB_LOCK_LOC|OB_LOCK_ROT|OB_LOCK_SCALE, &rv3d->twdrawflag); } @@ -263,7 +264,7 @@ int calc_manipulator_stats(const bContext *C) /* transform widget matrix */ unit_m4(rv3d->twmat); - v3d->twdrawflag= 0xFFFF; + rv3d->twdrawflag= 0xFFFF; /* transform widget centroid/center */ scene->twcent[0]= scene->twcent[1]= scene->twcent[2]= 0.0f; @@ -308,7 +309,7 @@ int calc_manipulator_stats(const bContext *C) totsel++; } if (ebo->flag & BONE_SELECTED) { - stats_editbone(v3d, ebo); + stats_editbone(rv3d, ebo); } } } @@ -419,7 +420,7 @@ int calc_manipulator_stats(const bContext *C) if(totsel) { /* use channels to get stats */ for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { - stats_pose(scene, v3d, pchan); + stats_pose(scene, rv3d, pchan); } mul_v3_fl(scene->twcent, 1.0f/(float)totsel); // centroid! @@ -466,7 +467,7 @@ int calc_manipulator_stats(const bContext *C) if(ob==NULL) ob= base->object; calc_tw_center(scene, base->object->obmat[3]); - protectflag_to_drawflags(base->object->protectflag, &v3d->twdrawflag); + protectflag_to_drawflags(base->object->protectflag, &rv3d->twdrawflag); totsel++; } } @@ -529,6 +530,44 @@ int calc_manipulator_stats(const bContext *C) return totsel; } +/* don't draw axis perpendicular to the view */ +void test_manipulator_axis(const bContext *C) +{ + RegionView3D *rv3d= CTX_wm_region_view3d(C); + float angle; + float vec[3]; + + viewvector(rv3d, rv3d->twmat[3], vec); + + angle = fabs(angle_v3v3(rv3d->twmat[0], vec)); + if (angle > M_PI / 2) { + angle = M_PI - angle; + } + angle = rv3d->twangle[0] = 180.0f * angle / M_PI; + if (angle < 5) { + rv3d->twdrawflag &= ~(MAN_TRANS_X|MAN_SCALE_X); + } + + angle = fabs(angle_v3v3(rv3d->twmat[1], vec)); + if (angle > M_PI / 2) { + angle = M_PI - angle; + } + angle = rv3d->twangle[1] = 180.0f * angle / M_PI; + if (angle < 5) { + rv3d->twdrawflag &= ~(MAN_TRANS_Y|MAN_SCALE_Y); + } + + angle = fabs(angle_v3v3(rv3d->twmat[2], vec)); + if (angle > M_PI / 2) { + angle = M_PI - angle; + } + angle = rv3d->twangle[2] = 180.0f * angle / M_PI; + if (angle < 5) { + rv3d->twdrawflag &= ~(MAN_TRANS_Z|MAN_SCALE_Z); + } +} + + /* ******************** DRAWING STUFFIES *********** */ static float screen_aligned(RegionView3D *rv3d, float mat[][4]) @@ -631,24 +670,32 @@ static void partial_donut(float radring, float radhole, int start, int end, int } } +static char axisBlendAngle(float angle) +{ + if (angle > 20) + return 255; + + if (angle < 5) + return 0; + + return (char)(255.0f * (angle - 5) / 15.0f); +} + /* three colors can be set; grey for ghosting moving: in transform theme color else the red/green/blue */ -static void manipulator_setcolor(View3D *v3d, char axis, int colcode) +static void manipulator_setcolor(View3D *v3d, char axis, int colcode, char alpha) { - float vec[4]; char col[4]; - vec[3]= 0.7f; // alpha set on 0.5, can be glEnabled or not - if(colcode==MAN_GHOST) { glColor4ub(0, 0, 0, 70); } else if(colcode==MAN_MOVECOL) { UI_GetThemeColor3ubv(TH_TRANSFORM, col); - glColor4ub(col[0], col[1], col[2], 128); + glColor4ub(col[0], col[1], col[2], alpha); } else { switch(axis) { @@ -664,28 +711,28 @@ static void manipulator_setcolor(View3D *v3d, char axis, int colcode) col[1]= col[1]<55?0:col[1]-55; col[2]= col[2]<55?0:col[2]-55; } - glColor4ub(col[0], col[1], col[2], 128); + glColor4ub(col[0], col[1], col[2], alpha); break; case 'x': - glColor4ub(220, 0, 0, 128); + glColor4ub(220, 0, 0, alpha); break; case 'y': - glColor4ub(0, 220, 0, 128); + glColor4ub(0, 220, 0, alpha); break; case 'z': - glColor4ub(30, 30, 220, 128); + glColor4ub(30, 30, 220, alpha); break; } } } /* viewmatrix should have been set OK, also no shademode! */ -static void draw_manipulator_axes(View3D *v3d, int colcode, int flagx, int flagy, int flagz) +static void draw_manipulator_axes(View3D *v3d, RegionView3D *rv3d, int colcode, int flagx, int flagy, int flagz) { /* axes */ if(flagx) { - manipulator_setcolor(v3d, 'x', colcode); + manipulator_setcolor(v3d, 'x', colcode, axisBlendAngle(rv3d->twangle[0])); if(flagx & MAN_SCALE_X) glLoadName(MAN_SCALE_X); else if(flagx & MAN_TRANS_X) glLoadName(MAN_TRANS_X); glBegin(GL_LINES); @@ -696,7 +743,7 @@ static void draw_manipulator_axes(View3D *v3d, int colcode, int flagx, int flagy if(flagy) { if(flagy & MAN_SCALE_Y) glLoadName(MAN_SCALE_Y); else if(flagy & MAN_TRANS_Y) glLoadName(MAN_TRANS_Y); - manipulator_setcolor(v3d, 'y', colcode); + manipulator_setcolor(v3d, 'y', colcode, axisBlendAngle(rv3d->twangle[1])); glBegin(GL_LINES); glVertex3f(0.0f, 0.2f, 0.0f); glVertex3f(0.0f, 1.0f, 0.0f); @@ -705,7 +752,7 @@ static void draw_manipulator_axes(View3D *v3d, int colcode, int flagx, int flagy if(flagz) { if(flagz & MAN_SCALE_Z) glLoadName(MAN_SCALE_Z); else if(flagz & MAN_TRANS_Z) glLoadName(MAN_TRANS_Z); - manipulator_setcolor(v3d, 'z', colcode); + manipulator_setcolor(v3d, 'z', colcode, axisBlendAngle(rv3d->twangle[2])); glBegin(GL_LINES); glVertex3f(0.0f, 0.0f, 0.2f); glVertex3f(0.0f, 0.0f, 1.0f); @@ -713,17 +760,6 @@ static void draw_manipulator_axes(View3D *v3d, int colcode, int flagx, int flagy } } -static void preOrtho(int ortho, float twmat[][4], int axis) -{ - if (ortho == 0) { - float omat[4][4]; - copy_m4_m4(omat, twmat); - orthogonalize_m4(omat, axis); - glPushMatrix(); - wmMultMatrix(omat); - } -} - static void preOrthoFront(int ortho, float twmat[][4], int axis) { if (ortho == 0) { @@ -743,162 +779,6 @@ static void postOrtho(int ortho) } } -/* only called while G.moving */ -static void draw_manipulator_rotate_ghost(View3D *v3d, RegionView3D *rv3d, int drawflags) -{ - GLUquadricObj *qobj; - float size, phi, startphi, vec[3], svec[3], matt[4][4], cross[3], tmat[3][3]; - int arcs= (G.rt!=2); - int ortho; - - glDisable(GL_DEPTH_TEST); - - qobj= gluNewQuadric(); - gluQuadricDrawStyle(qobj, GLU_FILL); - - glColor4ub(0,0,0,64); - glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); - glEnable(GL_BLEND); - - /* we need both [4][4] transforms, t->mat seems to be premul, not post for mat[][4] */ - copy_m4_m4(matt, rv3d->twmat); // to copy the parts outside of [3][3] -// XXX mul_m4_m3m4(matt, t->mat, rv3d->twmat); - - /* Screen aligned view rot circle */ - if(drawflags & MAN_ROT_V) { - - /* prepare for screen aligned draw */ - glPushMatrix(); - size= screen_aligned(rv3d, rv3d->twmat); - - vec[0]= 0; // XXX (float)(t->con.imval[0] - t->center2d[0]); - vec[1]= 0; // XXX (float)(t->con.imval[1] - t->center2d[1]); - vec[2]= 0.0f; - normalize_v3(vec); - - startphi= saacos( vec[1] ); - if(vec[0]<0.0) startphi= -startphi; - - phi= 0; // XXX (float)fmod(180.0*t->val/M_PI, 360.0); - if(phi > 180.0) phi-= 360.0; - else if(phi<-180.0) phi+= 360.0; - - gluPartialDisk(qobj, 0.0, size, 32, 1, 180.0*startphi/M_PI, phi); - - glPopMatrix(); - } - else if(arcs) { - float imat[3][3], ivmat[3][3]; - /* try to get the start rotation */ - - svec[0]= 0; // XXX (float)(t->con.imval[0] - t->center2d[0]); - svec[1]= 0; // XXX (float)(t->con.imval[1] - t->center2d[1]); - svec[2]= 0.0f; - - /* screen aligned vec transform back to manipulator space */ - copy_m3_m4(ivmat, rv3d->viewinv); - copy_m3_m4(tmat, rv3d->twmat); - invert_m3_m3(imat, tmat); - mul_m3_m3m3(tmat, imat, ivmat); - - mul_m3_v3(tmat, svec); // tmat is used further on - normalize_v3(svec); - } - - ortho = is_orthogonal_m4(rv3d->twmat); - - if (ortho) { - wmMultMatrix(rv3d->twmat); // aligns with original widget - } - - - /* Z disk */ - if(drawflags & MAN_ROT_Z) { - preOrtho(ortho, rv3d->twmat, 2); - - if(arcs) { - /* correct for squeezed arc */ - svec[0]+= tmat[2][0]; - svec[1]+= tmat[2][1]; - normalize_v3(svec); - - startphi= (float)atan2(svec[0], svec[1]); - } - else startphi= 0.5f*(float)M_PI; - - VECCOPY(vec, rv3d->twmat[0]); // use x axis to detect rotation - normalize_v3(vec); - normalize_v3(matt[0]); - phi= saacos( dot_v3v3(vec, matt[0]) ); - if(phi!=0.0) { - cross_v3_v3v3(cross, vec, matt[0]); // results in z vector - if(dot_v3v3(cross, rv3d->twmat[2]) > 0.0) phi= -phi; - gluPartialDisk(qobj, 0.0, 1.0, 32, 1, 180.0*startphi/M_PI, 180.0*(phi)/M_PI); - } - - postOrtho(ortho); - } - /* X disk */ - if(drawflags & MAN_ROT_X) { - preOrtho(ortho, rv3d->twmat, 0); - - if(arcs) { - /* correct for squeezed arc */ - svec[1]+= tmat[2][1]; - svec[2]+= tmat[2][2]; - normalize_v3(svec); - - startphi= (float)(M_PI + atan2(svec[2], -svec[1])); - } - else startphi= 0.0f; - - VECCOPY(vec, rv3d->twmat[1]); // use y axis to detect rotation - normalize_v3(vec); - normalize_v3(matt[1]); - phi= saacos( dot_v3v3(vec, matt[1]) ); - if(phi!=0.0) { - cross_v3_v3v3(cross, vec, matt[1]); // results in x vector - if(dot_v3v3(cross, rv3d->twmat[0]) > 0.0) phi= -phi; - glRotatef(90.0, 0.0, 1.0, 0.0); - gluPartialDisk(qobj, 0.0, 1.0, 32, 1, 180.0*startphi/M_PI, 180.0*phi/M_PI); - glRotatef(-90.0, 0.0, 1.0, 0.0); - } - - postOrtho(ortho); - } - /* Y circle */ - if(drawflags & MAN_ROT_Y) { - preOrtho(ortho, rv3d->twmat, 1); - - if(arcs) { - /* correct for squeezed arc */ - svec[0]+= tmat[2][0]; - svec[2]+= tmat[2][2]; - normalize_v3(svec); - - startphi= (float)(M_PI + atan2(-svec[0], svec[2])); - } - else startphi= (float)M_PI; - - VECCOPY(vec, rv3d->twmat[2]); // use z axis to detect rotation - normalize_v3(vec); - normalize_v3(matt[2]); - phi= saacos( dot_v3v3(vec, matt[2]) ); - if(phi!=0.0) { - cross_v3_v3v3(cross, vec, matt[2]); // results in y vector - if(dot_v3v3(cross, rv3d->twmat[1]) > 0.0) phi= -phi; - glRotatef(-90.0, 1.0, 0.0, 0.0); - gluPartialDisk(qobj, 0.0, 1.0, 32, 1, 180.0*startphi/M_PI, 180.0*phi/M_PI); - glRotatef(90.0, 1.0, 0.0, 0.0); - } - - postOrtho(ortho); - } - - glDisable(GL_BLEND); - wmLoadMatrix(rv3d->viewmat); -} - static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, int drawflags, int combo) { GLUquadricObj *qobj; @@ -1002,7 +882,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, /* axis */ if( (drawflags & MAN_ROT_X) || (moving && (drawflags & MAN_ROT_Z)) ) { preOrthoFront(ortho, rv3d->twmat, 2); - manipulator_setcolor(v3d, 'x', colcode); + manipulator_setcolor(v3d, 'x', colcode, 255); glBegin(GL_LINES); glVertex3f(0.2f, 0.0f, 0.0f); glVertex3f(1.0f, 0.0f, 0.0f); @@ -1011,7 +891,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, } if( (drawflags & MAN_ROT_Y) || (moving && (drawflags & MAN_ROT_X)) ) { preOrthoFront(ortho, rv3d->twmat, 0); - manipulator_setcolor(v3d, 'y', colcode); + manipulator_setcolor(v3d, 'y', colcode, 255); glBegin(GL_LINES); glVertex3f(0.0f, 0.2f, 0.0f); glVertex3f(0.0f, 1.0f, 0.0f); @@ -1020,7 +900,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, } if( (drawflags & MAN_ROT_Z) || (moving && (drawflags & MAN_ROT_Y)) ) { preOrthoFront(ortho, rv3d->twmat, 1); - manipulator_setcolor(v3d, 'z', colcode); + manipulator_setcolor(v3d, 'z', colcode, 255); glBegin(GL_LINES); glVertex3f(0.0f, 0.0f, 0.2f); glVertex3f(0.0f, 0.0f, 1.0f); @@ -1037,7 +917,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, if(drawflags & MAN_ROT_Z) { preOrthoFront(ortho, matt, 2); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z); - manipulator_setcolor(v3d, 'z', colcode); + manipulator_setcolor(v3d, 'z', colcode, 255); drawcircball(GL_LINE_LOOP, unitmat[3], 1.0, unitmat); postOrtho(ortho); } @@ -1046,7 +926,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, preOrthoFront(ortho, matt, 0); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_X); glRotatef(90.0, 0.0, 1.0, 0.0); - manipulator_setcolor(v3d, 'x', colcode); + manipulator_setcolor(v3d, 'x', colcode, 255); drawcircball(GL_LINE_LOOP, unitmat[3], 1.0, unitmat); glRotatef(-90.0, 0.0, 1.0, 0.0); postOrtho(ortho); @@ -1056,7 +936,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, preOrthoFront(ortho, matt, 1); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Y); glRotatef(-90.0, 1.0, 0.0, 0.0); - manipulator_setcolor(v3d, 'y', colcode); + manipulator_setcolor(v3d, 'y', colcode, 255); drawcircball(GL_LINE_LOOP, unitmat[3], 1.0, unitmat); glRotatef(90.0, 1.0, 0.0, 0.0); postOrtho(ortho); @@ -1072,7 +952,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, if(drawflags & MAN_ROT_Z) { preOrthoFront(ortho, rv3d->twmat, 2); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z); - manipulator_setcolor(v3d, 'z', colcode); + manipulator_setcolor(v3d, 'z', colcode, 255); partial_donut(cusize/4.0f, 1.0f, 0, 48, 8, 48); postOrtho(ortho); } @@ -1081,7 +961,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, preOrthoFront(ortho, rv3d->twmat, 0); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_X); glRotatef(90.0, 0.0, 1.0, 0.0); - manipulator_setcolor(v3d, 'x', colcode); + manipulator_setcolor(v3d, 'x', colcode, 255); partial_donut(cusize/4.0f, 1.0f, 0, 48, 8, 48); glRotatef(-90.0, 0.0, 1.0, 0.0); postOrtho(ortho); @@ -1091,7 +971,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, preOrthoFront(ortho, rv3d->twmat, 1); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Y); glRotatef(-90.0, 1.0, 0.0, 0.0); - manipulator_setcolor(v3d, 'y', colcode); + manipulator_setcolor(v3d, 'y', colcode, 255); partial_donut(cusize/4.0f, 1.0f, 0, 48, 8, 48); glRotatef(90.0, 1.0, 0.0, 0.0); postOrtho(ortho); @@ -1107,7 +987,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, preOrthoFront(ortho, rv3d->twmat, 2); glPushMatrix(); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z); - manipulator_setcolor(v3d, 'z', colcode); + manipulator_setcolor(v3d, 'z', colcode, 255); partial_donut(0.7f*cusize, 1.0f, 31, 33, 8, 64); @@ -1120,7 +1000,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, preOrthoFront(ortho, rv3d->twmat, 1); glPushMatrix(); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Y); - manipulator_setcolor(v3d, 'y', colcode); + manipulator_setcolor(v3d, 'y', colcode, 255); glRotatef(90.0, 1.0, 0.0, 0.0); glRotatef(90.0, 0.0, 0.0, 1.0); @@ -1135,7 +1015,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving, preOrthoFront(ortho, rv3d->twmat, 0); glPushMatrix(); if(G.f & G_PICKSEL) glLoadName(MAN_ROT_X); - manipulator_setcolor(v3d, 'x', colcode); + manipulator_setcolor(v3d, 'x', colcode, 255); glRotatef(-90.0, 0.0, 1.0, 0.0); glRotatef(90.0, 0.0, 0.0, 1.0); @@ -1234,7 +1114,7 @@ static void draw_manipulator_scale(View3D *v3d, RegionView3D *rv3d, int moving, /* center circle, do not add to selection when shift is pressed (planar constraint) */ if( (G.f & G_PICKSEL) && shift==0) glLoadName(MAN_SCALE_C); - manipulator_setcolor(v3d, 'c', colcode); + manipulator_setcolor(v3d, 'c', colcode, 255); glPushMatrix(); size= screen_aligned(rv3d, rv3d->twmat); unit_m4(unitmat); @@ -1261,27 +1141,27 @@ static void draw_manipulator_scale(View3D *v3d, RegionView3D *rv3d, int moving, /* axis */ /* in combo mode, this is always drawn as first type */ - draw_manipulator_axes(v3d, colcode, drawflags & MAN_SCALE_X, drawflags & MAN_SCALE_Y, drawflags & MAN_SCALE_Z); + draw_manipulator_axes(v3d, rv3d, colcode, drawflags & MAN_SCALE_X, drawflags & MAN_SCALE_Y, drawflags & MAN_SCALE_Z); /* Z cube */ glTranslatef(0.0, 0.0, dz); if(drawflags & MAN_SCALE_Z) { if(G.f & G_PICKSEL) glLoadName(MAN_SCALE_Z); - manipulator_setcolor(v3d, 'z', colcode); + manipulator_setcolor(v3d, 'z', colcode, axisBlendAngle(rv3d->twangle[2])); drawsolidcube(cusize); } /* X cube */ glTranslatef(dz, 0.0, -dz); if(drawflags & MAN_SCALE_X) { if(G.f & G_PICKSEL) glLoadName(MAN_SCALE_X); - manipulator_setcolor(v3d, 'x', colcode); + manipulator_setcolor(v3d, 'x', colcode, axisBlendAngle(rv3d->twangle[0])); drawsolidcube(cusize); } /* Y cube */ glTranslatef(-dz, dz, 0.0); if(drawflags & MAN_SCALE_Y) { if(G.f & G_PICKSEL) glLoadName(MAN_SCALE_Y); - manipulator_setcolor(v3d, 'y', colcode); + manipulator_setcolor(v3d, 'y', colcode, axisBlendAngle(rv3d->twangle[1])); drawsolidcube(cusize); } @@ -1352,7 +1232,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi /* center circle, do not add to selection when shift is pressed (planar constraint) */ if( (G.f & G_PICKSEL) && shift==0) glLoadName(MAN_TRANS_C); - manipulator_setcolor(v3d, 'c', colcode); + manipulator_setcolor(v3d, 'c', colcode, 255); glPushMatrix(); size= screen_aligned(rv3d, rv3d->twmat); unit_m4(unitmat); @@ -1367,7 +1247,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi // translate drawn as last, only axis when no combo with scale, or for ghosting if((combo & V3D_MANIP_SCALE)==0 || colcode==MAN_GHOST) - draw_manipulator_axes(v3d, colcode, drawflags & MAN_TRANS_X, drawflags & MAN_TRANS_Y, drawflags & MAN_TRANS_Z); + draw_manipulator_axes(v3d, rv3d, colcode, drawflags & MAN_TRANS_X, drawflags & MAN_TRANS_Y, drawflags & MAN_TRANS_Z); /* offset in combo mode, for rotate a bit more */ @@ -1379,7 +1259,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi glTranslatef(0.0, 0.0, dz); if(drawflags & MAN_TRANS_Z) { if(G.f & G_PICKSEL) glLoadName(MAN_TRANS_Z); - manipulator_setcolor(v3d, 'z', colcode); + manipulator_setcolor(v3d, 'z', colcode, axisBlendAngle(rv3d->twangle[2])); draw_cone(qobj, cylen, cywid); } /* X Cone */ @@ -1387,7 +1267,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi if(drawflags & MAN_TRANS_X) { if(G.f & G_PICKSEL) glLoadName(MAN_TRANS_X); glRotatef(90.0, 0.0, 1.0, 0.0); - manipulator_setcolor(v3d, 'x', colcode); + manipulator_setcolor(v3d, 'x', colcode, axisBlendAngle(rv3d->twangle[0])); draw_cone(qobj, cylen, cywid); glRotatef(-90.0, 0.0, 1.0, 0.0); } @@ -1396,7 +1276,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi if(drawflags & MAN_TRANS_Y) { if(G.f & G_PICKSEL) glLoadName(MAN_TRANS_Y); glRotatef(-90.0, 1.0, 0.0, 0.0); - manipulator_setcolor(v3d, 'y', colcode); + manipulator_setcolor(v3d, 'y', colcode, axisBlendAngle(rv3d->twangle[1])); draw_cone(qobj, cylen, cywid); } @@ -1469,7 +1349,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov // only draw axis when combo didn't draw scale axes if((combo & V3D_MANIP_SCALE)==0) - draw_manipulator_axes(v3d, colcode, drawflags & MAN_ROT_X, drawflags & MAN_ROT_Y, drawflags & MAN_ROT_Z); + draw_manipulator_axes(v3d, rv3d, colcode, drawflags & MAN_ROT_X, drawflags & MAN_ROT_Y, drawflags & MAN_ROT_Z); /* only has to be set when not in picking */ gluQuadricDrawStyle(qobj, GLU_FILL); @@ -1479,7 +1359,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov glTranslatef(0.0, 0.0, 1.0); if(drawflags & MAN_ROT_Z) { if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z); - manipulator_setcolor(v3d, 'z', colcode); + manipulator_setcolor(v3d, 'z', colcode, 255); draw_cylinder(qobj, cylen, cywid); } /* X cyl */ @@ -1487,7 +1367,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov if(drawflags & MAN_ROT_X) { if(G.f & G_PICKSEL) glLoadName(MAN_ROT_X); glRotatef(90.0, 0.0, 1.0, 0.0); - manipulator_setcolor(v3d, 'x', colcode); + manipulator_setcolor(v3d, 'x', colcode, 255); draw_cylinder(qobj, cylen, cywid); glRotatef(-90.0, 0.0, 1.0, 0.0); } @@ -1496,7 +1376,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov if(drawflags & MAN_ROT_Y) { if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Y); glRotatef(-90.0, 1.0, 0.0, 0.0); - manipulator_setcolor(v3d, 'y', colcode); + manipulator_setcolor(v3d, 'y', colcode, 255); draw_cylinder(qobj, cylen, cywid); } @@ -1545,7 +1425,6 @@ void BIF_draw_manipulator(const bContext *C) totsel= calc_manipulator_stats(C); if(totsel==0) return; - drawflags= v3d->twdrawflag; /* set in calc_manipulator_stats */ v3d->twflag |= V3D_DRAW_MANIPULATOR; @@ -1574,42 +1453,30 @@ void BIF_draw_manipulator(const bContext *C) mul_mat3_m4_fl(rv3d->twmat, get_manipulator_drawsize(ar)); } + test_manipulator_axis(C); + drawflags= rv3d->twdrawflag; /* set in calc_manipulator_stats */ + if(v3d->twflag & V3D_DRAW_MANIPULATOR) { + glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); if(v3d->twtype & V3D_MANIP_ROTATE) { - /* rotate has special ghosting draw, for pie chart */ - if(G.moving) draw_manipulator_rotate_ghost(v3d, rv3d, drawflags); - - if(G.moving) glEnable(GL_BLEND); - if(G.rt==3) { if(G.moving) draw_manipulator_rotate_cyl(v3d, rv3d, 1, drawflags, v3d->twtype, MAN_MOVECOL); else draw_manipulator_rotate_cyl(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB); } else draw_manipulator_rotate(v3d, rv3d, 0 /* G.moving*/, drawflags, v3d->twtype); - - glDisable(GL_BLEND); } if(v3d->twtype & V3D_MANIP_SCALE) { - if(G.moving) { - glEnable(GL_BLEND); - draw_manipulator_scale(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_GHOST); - draw_manipulator_scale(v3d, rv3d, 1, drawflags, v3d->twtype, MAN_MOVECOL); - glDisable(GL_BLEND); - } - else draw_manipulator_scale(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB); + draw_manipulator_scale(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB); } if(v3d->twtype & V3D_MANIP_TRANSLATE) { - if(G.moving) { - glEnable(GL_BLEND); - draw_manipulator_translate(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_GHOST); - draw_manipulator_translate(v3d, rv3d, 1, drawflags, v3d->twtype, MAN_MOVECOL); - glDisable(GL_BLEND); - } - else draw_manipulator_translate(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB); + draw_manipulator_translate(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB); } + + glDisable(GL_BLEND); } } @@ -1639,13 +1506,13 @@ static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, short *mval, float ho /* do the drawing */ if(v3d->twtype & V3D_MANIP_ROTATE) { - if(G.rt==3) draw_manipulator_rotate_cyl(v3d, rv3d, 0, MAN_ROT_C & v3d->twdrawflag, v3d->twtype, MAN_RGB); - else draw_manipulator_rotate(v3d, rv3d, 0, MAN_ROT_C & v3d->twdrawflag, v3d->twtype); + if(G.rt==3) draw_manipulator_rotate_cyl(v3d, rv3d, 0, MAN_ROT_C & rv3d->twdrawflag, v3d->twtype, MAN_RGB); + else draw_manipulator_rotate(v3d, rv3d, 0, MAN_ROT_C & rv3d->twdrawflag, v3d->twtype); } if(v3d->twtype & V3D_MANIP_SCALE) - draw_manipulator_scale(v3d, rv3d, 0, MAN_SCALE_C & v3d->twdrawflag, v3d->twtype, MAN_RGB); + draw_manipulator_scale(v3d, rv3d, 0, MAN_SCALE_C & rv3d->twdrawflag, v3d->twtype, MAN_RGB); if(v3d->twtype & V3D_MANIP_TRANSLATE) - draw_manipulator_translate(v3d, rv3d, 0, MAN_TRANS_C & v3d->twdrawflag, v3d->twtype, MAN_RGB); + draw_manipulator_translate(v3d, rv3d, 0, MAN_TRANS_C & rv3d->twdrawflag, v3d->twtype, MAN_RGB); glPopName(); hits= glRenderMode(GL_RENDER); diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 1ea060c2eea..4ad18a90a6b 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -89,7 +89,9 @@ typedef struct RegionView3D { float camdx, camdy; /* camera view offsets, 1.0 = viewplane moves entire width/height */ float pixsize; float ofs[3]; - short camzoom, viewbut, pad[2]; + short camzoom, viewbut; + short twdrawflag; + short pad; short rflag, viewlock; short persp; @@ -116,6 +118,9 @@ typedef struct RegionView3D { short lpersp, lview; float gridview; + float twangle[3]; + + float padf; } RegionView3D; @@ -165,7 +170,8 @@ typedef struct View3D { short keyflags; /* flags for display of keyframes */ /* transform widget info */ - short twtype, twmode, twflag, twdrawflag; + short twtype, twmode, twflag; + short twdrawflag; /* XXX deprecated */ /* customdata flags from modes */ unsigned int customdata_mask; -- cgit v1.2.3 From 8db1349c2cf860dd46303505c7dae78855157c99 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 29 Dec 2009 10:25:14 +0000 Subject: Modifier Drawing Tweaks: * Reorganised the (template) drawing code for modifiers, removing some old/commented out code, and grouping related sets of info to draw * Separated the render/realtime/editmode toggles into a separate row below the modifier name so that the layout is less compressed with narrow properties windows (i.e. on the default setup). --- .../editors/interface/interface_templates.c | 163 ++++++++++----------- 1 file changed, 81 insertions(+), 82 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index b009581703f..7bad3ee0ecd 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -610,9 +610,9 @@ static uiLayout *draw_modifier(uiLayout *layout, Object *ob, ModifierData *md, i PointerRNA ptr; uiBut *but; uiBlock *block; - uiLayout *column, *row, *result= NULL; - int isVirtual = md->mode & eModifierMode_Virtual; - // XXX short color = md->error?TH_REDALERT:TH_BUT_NEUTRAL; + uiLayout *box, *column, *row; + uiLayout *result= NULL; + int isVirtual = (md->mode & eModifierMode_Virtual); char str[128]; /* create RNA pointer */ @@ -621,101 +621,100 @@ static uiLayout *draw_modifier(uiLayout *layout, Object *ob, ModifierData *md, i column= uiLayoutColumn(layout, 1); uiLayoutSetContextPointer(column, "modifier", &ptr); - /* rounded header */ - /* XXX uiBlockSetCol(block, color); */ - /* roundbox 4 free variables: corner-rounding, nop, roundbox type, shade */ - - row= uiLayoutRow(uiLayoutBox(column), 0); + /* rounded header ------------------------------------------------------------------- */ + box= uiLayoutBox(column); + + row= uiLayoutRow(box, 0); uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_EXPAND); - block= uiLayoutGetBlock(row); - - //uiDefBut(block, ROUNDBOX, 0, "", x-10, y-4, width, 25, NULL, 7.0, 0.0, - // (!isVirtual && (md->mode & eModifierMode_Expanded))?3:15, 20, ""); - /* XXX uiBlockSetCol(block, TH_AUTO); */ - - /* open/close icon */ - if(!isVirtual) { - uiBlockSetEmboss(block, UI_EMBOSSN); - uiDefIconButBitI(block, ICONTOG, eModifierMode_Expanded, 0, ICON_TRIA_RIGHT, 0, 0, UI_UNIT_X, UI_UNIT_Y, &md->mode, 0.0, 0.0, 0.0, 0.0, "Collapse/Expand Modifier"); - } - - /* modifier-type icon */ - uiItemL(row, "", RNA_struct_ui_icon(ptr.type)); - - uiBlockSetEmboss(block, UI_EMBOSS); - if(isVirtual) { - /* virtual modifier */ + if (isVirtual) { + /* VIRTUAL MODIFIER */ + // XXX this is not used now, since these cannot be accessed via RNA sprintf(str, "%s parent deform", md->name); uiDefBut(block, LABEL, 0, str, 0, 0, 185, UI_UNIT_Y, NULL, 0.0, 0.0, 0.0, 0.0, "Modifier name"); - + but = uiDefBut(block, BUT, 0, "Make Real", 0, 0, 80, 16, NULL, 0.0, 0.0, 0.0, 0.0, "Convert virtual modifier to a real modifier"); uiButSetFunc(but, modifiers_convertToReal, ob, md); } else { - /* real modifier */ - uiBlockBeginAlign(block); - uiItemR(row, "", 0, &ptr, "name", 0); - - /* Softbody not allowed in this situation, enforce! */ - if(((md->type!=eModifierType_Softbody && md->type!=eModifierType_Collision) || !(ob->pd && ob->pd->deflect)) && (md->type!=eModifierType_Surface)) { - uiItemR(row, "", ICON_SCENE, &ptr, "render", 0); - uiItemR(row, "", ICON_RESTRICT_VIEW_OFF, &ptr, "realtime", 0); - - if(mti->flags & eModifierTypeFlag_SupportsEditmode) - uiItemR(row, "", ICON_EDITMODE_HLT, &ptr, "editmode", 0); - } + /* REAL MODIFIER */ + uiLayout *subrow, *col2; - - /* XXX uiBlockSetEmboss(block, UI_EMBOSSR); */ - - if(ob->type==OB_MESH && modifier_couldBeCage(md) && index<=lastCageIndex) { - /* XXX uiBlockSetCol(block, color); */ - but = uiDefIconButBitI(block, TOG, eModifierMode_OnCage, 0, ICON_MESH_DATA, 0, 0, 16, 20, &md->mode, 0.0, 0.0, 0.0, 0.0, "Apply modifier to editing cage during Editmode"); - if(index < cageIndex) - uiButSetFlag(but, UI_BUT_DISABLED); - uiButSetFunc(but, modifiers_setOnCage, ob, md); - uiBlockEndAlign(block); - /* XXX uiBlockSetCol(block, TH_AUTO); */ - } - } - - /* up/down/delete */ - if(!isVirtual) { - /* XXX uiBlockSetCol(block, TH_BUT_ACTION); */ + /* Open/Close ................................. */ + uiBlockSetEmboss(block, UI_EMBOSSN); + uiDefIconButBitI(block, ICONTOG, eModifierMode_Expanded, 0, ICON_TRIA_RIGHT, 0, 0, UI_UNIT_X, UI_UNIT_Y, &md->mode, 0.0, 0.0, 0.0, 0.0, "Collapse/Expand Modifier"); + + /* modifier-type icon */ + uiItemL(row, "", RNA_struct_ui_icon(ptr.type)); + uiBlockSetEmboss(block, UI_EMBOSS); + + /* 'Middle Column' ............................ + * - first row is the name of the modifier + * - second row is the visibility settings, since the layouts were not wide enough to show all + */ + col2= uiLayoutColumn(row, 0); + /* First Row */ + subrow= uiLayoutRow(col2, 0); + /* modifier name */ + uiItemR(subrow, "", 0, &ptr, "name", 0); + + /* Second Row */ + subrow= uiLayoutRow(col2, 1); + uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_EXPAND); + block= uiLayoutGetBlock(subrow); + /* Softbody not allowed in this situation, enforce! */ + if ( ((md->type!=eModifierType_Softbody && md->type!=eModifierType_Collision) || !(ob->pd && ob->pd->deflect)) + && (md->type!=eModifierType_Surface) ) + { + uiItemR(subrow, "", ICON_SCENE, &ptr, "render", 0); + uiItemR(subrow, "", ICON_RESTRICT_VIEW_OFF, &ptr, "realtime", 0); + + if (mti->flags & eModifierTypeFlag_SupportsEditmode) + uiItemR(subrow, "", ICON_EDITMODE_HLT, &ptr, "editmode", 0); + } + + if ((ob->type==OB_MESH) && modifier_couldBeCage(md) && (index <= lastCageIndex)) + { + but = uiDefIconButBitI(block, TOG, eModifierMode_OnCage, 0, ICON_MESH_DATA, 0, 0, 16, 20, &md->mode, 0.0, 0.0, 0.0, 0.0, "Apply modifier to editing cage during Editmode"); + if (index < cageIndex) + uiButSetFlag(but, UI_BUT_DISABLED); + uiButSetFunc(but, modifiers_setOnCage, ob, md); + } + + /* Up/Down + Delete ........................... */ + block= uiLayoutGetBlock(row); uiBlockBeginAlign(block); - uiItemO(row, "", ICON_TRIA_UP, "OBJECT_OT_modifier_move_up"); - uiItemO(row, "", ICON_TRIA_DOWN, "OBJECT_OT_modifier_move_down"); + uiItemO(row, "", ICON_TRIA_UP, "OBJECT_OT_modifier_move_up"); + uiItemO(row, "", ICON_TRIA_DOWN, "OBJECT_OT_modifier_move_down"); uiBlockEndAlign(block); uiBlockSetEmboss(block, UI_EMBOSSN); - - if(modifier_can_delete(md)) + + if (modifier_can_delete(md)) uiItemO(row, "", ICON_X, "OBJECT_OT_modifier_remove"); - - /* XXX uiBlockSetCol(block, TH_AUTO); */ + + uiBlockSetEmboss(block, UI_EMBOSS); } - uiBlockSetEmboss(block, UI_EMBOSS); - - if(!isVirtual && (md->mode & eModifierMode_Expanded)) { + + /* modifier settings (under the header) --------------------------------------------------- */ + if (!isVirtual && (md->mode & eModifierMode_Expanded)) { /* apply/convert/copy */ - uiLayout *box; - box= uiLayoutBox(column); row= uiLayoutRow(box, 0); - - if(!isVirtual && (md->type!=eModifierType_Collision) && (md->type!=eModifierType_Surface)) { + + if (!ELEM(md->type, eModifierType_Collision, eModifierType_Surface)) { /* only here obdata, the rest of modifiers is ob level */ uiBlockSetButLock(block, object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE); - - if(md->type==eModifierType_ParticleSystem) { + + if (md->type==eModifierType_ParticleSystem) { ParticleSystem *psys= ((ParticleSystemModifierData *)md)->psys; - - if(!(ob->mode & OB_MODE_PARTICLE_EDIT)) + + if (!(ob->mode & OB_MODE_PARTICLE_EDIT)) { if(ELEM3(psys->part->ren_as, PART_DRAW_PATH, PART_DRAW_GR, PART_DRAW_OB) && psys->pathcache) uiItemO(row, "Convert", 0, "OBJECT_OT_modifier_convert"); + } } else { uiItemEnumO(row, "Apply", 0, "OBJECT_OT_modifier_apply", "apply_as", MODIFIER_APPLY_DATA); @@ -726,23 +725,23 @@ static uiLayout *draw_modifier(uiLayout *layout, Object *ob, ModifierData *md, i uiBlockClearButLock(block); uiBlockSetButLock(block, ob && ob->id.lib, ERROR_LIBDATA_MESSAGE); - - if(!ELEM4(md->type, eModifierType_Fluidsim, eModifierType_Softbody, eModifierType_ParticleSystem, eModifierType_Cloth)) + + if (!ELEM4(md->type, eModifierType_Fluidsim, eModifierType_Softbody, eModifierType_ParticleSystem, eModifierType_Cloth)) uiItemO(row, "Copy", 0, "OBJECT_OT_modifier_copy"); } - + + /* result is the layout block inside the box, that we return so that modifier settings can be drawn */ result= uiLayoutColumn(box, 0); block= uiLayoutAbsoluteBlock(box); } - + + /* error messages */ if(md->error) { - row = uiLayoutRow(uiLayoutBox(column), 0); - - /* XXX uiBlockSetCol(block, color); */ + box = uiLayoutBox(column); + row = uiLayoutRow(box, 0); uiItemL(row, md->error, ICON_ERROR); - /* XXX uiBlockSetCol(block, TH_AUTO); */ } - + return result; } -- cgit v1.2.3 From 03819244563df1f876003698f0c64cf49b9cc378 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 29 Dec 2009 11:21:51 +0000 Subject: Bugfix #20503: Add constraint (with targets) menu lacks a window refresh --- source/blender/editors/space_buttons/space_buttons.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 7f9c1477ee7..7e51ee2a5e9 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -292,6 +292,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) break; case ND_CONSTRAINT: buttons_area_redraw(sa, BCONTEXT_CONSTRAINT); + buttons_area_redraw(sa, BCONTEXT_BONE_CONSTRAINT); break; case ND_PARTICLE_DATA: buttons_area_redraw(sa, BCONTEXT_PARTICLE); -- cgit v1.2.3 From 5cd837a562d773cdff155ab05084af590341758d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 29 Dec 2009 15:40:26 +0000 Subject: * speedup for animating bones, in one scene with sintel and a dragon animated its over 4x faster. * utility function BLI_findstring to avoid listbase lookup loops everywhere. eg: ListBase *lb= objects= &CTX_data_main(C)->object; Object *ob= BLI_findstring(lb, name, offsetof(ID, name) + 2); * made some more math functions use const's, (fix warnings I made in previous commits) --- source/blender/blenkernel/BKE_screen.h | 2 - source/blender/blenkernel/intern/action.c | 11 +-- source/blender/blenkernel/intern/library.c | 21 +---- source/blender/blenlib/BLI_listbase.h | 1 + source/blender/blenlib/BLI_math_vector.h | 16 ++-- source/blender/blenlib/intern/listbase.c | 20 +++++ source/blender/blenlib/intern/math_vector_inline.c | 16 ++-- .../editors/interface/interface_templates.c | 16 ++-- source/blender/editors/space_logic/logic_window.c | 94 ++++------------------ source/blender/makesrna/intern/rna_pose.c | 14 +++- .../blender/python/generic/bpy_internal_import.c | 14 +--- 11 files changed, 80 insertions(+), 145 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h index c9d1caa1cfe..21150af7144 100644 --- a/source/blender/blenkernel/BKE_screen.h +++ b/source/blender/blenkernel/BKE_screen.h @@ -220,8 +220,6 @@ const struct ListBase *BKE_spacetypes_list(void); void BKE_spacetype_register(struct SpaceType *st); void BKE_spacetypes_free(void); /* only for quitting blender */ -// MenuType *BKE_spacemenu_find(const char *idname, int spacetype); - /* spacedata */ void BKE_spacedata_freelist(ListBase *lb); void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2); diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 303cd208b7c..9e89ae77caa 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -379,19 +379,10 @@ bActionGroup *action_groups_find_named (bAction *act, const char name[]) /* usually used within a loop, so we got a N^2 slowdown */ bPoseChannel *get_pose_channel(const bPose *pose, const char *name) { - bPoseChannel *chan; - if (ELEM(NULL, pose, name) || (name[0] == 0)) return NULL; - for (chan=pose->chanbase.first; chan; chan=chan->next) { - if (chan->name[0] == name[0]) { - if (!strcmp (chan->name, name)) - return chan; - } - } - - return NULL; + return BLI_findstring(&pose->chanbase, name, offsetof(bPoseChannel, name)); } /* Use with care, not on Armature poses but for temporal ones */ diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index a32746e3093..c38cfe4ee27 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -38,6 +38,7 @@ #include #include #include +#include #ifdef HAVE_CONFIG_H #include @@ -844,18 +845,8 @@ void free_main(Main *mainvar) ID *find_id(char *type, char *name) /* type: "OB" or "MA" etc */ { - ID *id; - ListBase *lb; - - lb= wich_libbase(G.main, GS(type)); - - id= lb->first; - while(id) { - if(id->name[2]==name[0] && strcmp(id->name+2, name)==0 ) - return id; - id= id->next; - } - return 0; + ListBase *lb= wich_libbase(G.main, GS(type)); + return BLI_findstring(lb, name, offsetof(ID, name) + 2); } static void get_flags_for_id(ID *id, char *buf) @@ -1336,11 +1327,7 @@ void test_idbutton(char *name) if(lb==0) return; /* search for id */ - idtest= lb->first; - while(idtest) { - if( strcmp(idtest->name+2, name)==0) break; - idtest= idtest->next; - } + idtest= BLI_findstring(lb, name, offsetof(ID, name) + 2); if(idtest) if( new_id(lb, idtest, name)==0 ) sort_alpha_id(lb, idtest); } diff --git a/source/blender/blenlib/BLI_listbase.h b/source/blender/blenlib/BLI_listbase.h index bd735888f95..f4841762227 100644 --- a/source/blender/blenlib/BLI_listbase.h +++ b/source/blender/blenlib/BLI_listbase.h @@ -44,6 +44,7 @@ void addlisttolist(struct ListBase *list1, struct ListBase *list2); void BLI_insertlink(struct ListBase *listbase, void *vprevlink, void *vnewlink); void *BLI_findlink(struct ListBase *listbase, int number); int BLI_findindex(struct ListBase *listbase, void *vlink); +void *BLI_findstring(struct ListBase *listbase, const char *id, int offset); void BLI_freelistN(struct ListBase *listbase); void BLI_addtail(struct ListBase *listbase, void *vlink); void BLI_remlink(struct ListBase *listbase, void *vlink); diff --git a/source/blender/blenlib/BLI_math_vector.h b/source/blender/blenlib/BLI_math_vector.h index 26e7ff5abe9..4dbef4ef07c 100644 --- a/source/blender/blenlib/BLI_math_vector.h +++ b/source/blender/blenlib/BLI_math_vector.h @@ -81,22 +81,22 @@ MINLINE void madd_v3_v3v3fl(float r[3], float a[3], float b[3], float f); MINLINE void madd_v3_v3v3v3(float r[3], float a[3], float b[3], float c[3]); MINLINE void negate_v3(float r[3]); -MINLINE void negate_v3_v3(float r[3], float a[3]); +MINLINE void negate_v3_v3(float r[3], const float a[3]); -MINLINE float dot_v2v2(float a[2], float b[2]); -MINLINE float dot_v3v3(float a[3], float b[3]); +MINLINE float dot_v2v2(const float a[2], const float b[2]); +MINLINE float dot_v3v3(const float a[3], const float b[3]); -MINLINE float cross_v2v2(float a[2], float b[2]); +MINLINE float cross_v2v2(const float a[2], const float b[2]); MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3]); MINLINE void star_m3_v3(float R[3][3],float a[3]); /*********************************** Length **********************************/ -MINLINE float len_v2(float a[2]); -MINLINE float len_v2v2(float a[2], float b[2]); -MINLINE float len_v3(float a[3]); -MINLINE float len_v3v3(float a[3], float b[3]); +MINLINE float len_v2(const float a[2]); +MINLINE float len_v2v2(const float a[2], const float b[2]); +MINLINE float len_v3(const float a[3]); +MINLINE float len_v3v3(const float a[3], const float b[3]); MINLINE float normalize_v2(float r[2]); MINLINE float normalize_v3(float r[3]); diff --git a/source/blender/blenlib/intern/listbase.c b/source/blender/blenlib/intern/listbase.c index 166f4ed029e..9b4e1720d8b 100644 --- a/source/blender/blenlib/intern/listbase.c +++ b/source/blender/blenlib/intern/listbase.c @@ -343,6 +343,26 @@ int BLI_findindex(ListBase *listbase, void *vlink) return -1; } +void *BLI_findstring(ListBase *listbase, const char *id, int offset) +{ + Link *link= NULL; + const char *id_iter; + + if (listbase == NULL) return NULL; + + link= listbase->first; + while (link) { + id_iter= ((const char *)link) + offset; + printf("ASS '%s'\n", id_iter); + if(id[0] == id_iter[0] && strcmp(id, id_iter)==0) + return link; + + link= link->next; + } + + return NULL; +} + void BLI_duplicatelist(ListBase *list1, const ListBase *list2) { struct Link *link1, *link2; diff --git a/source/blender/blenlib/intern/math_vector_inline.c b/source/blender/blenlib/intern/math_vector_inline.c index 16f35dbc5fa..8b09cb86d3a 100644 --- a/source/blender/blenlib/intern/math_vector_inline.c +++ b/source/blender/blenlib/intern/math_vector_inline.c @@ -194,24 +194,24 @@ MINLINE void negate_v3(float r[3]) r[2]= -r[2]; } -MINLINE void negate_v3_v3(float r[3], float a[3]) +MINLINE void negate_v3_v3(float r[3], const float a[3]) { r[0]= -a[0]; r[1]= -a[1]; r[2]= -a[2]; } -MINLINE float dot_v2v2(float *a, float *b) +MINLINE float dot_v2v2(const float a[2], const float b[2]) { return a[0]*b[0] + a[1]*b[1]; } -MINLINE float dot_v3v3(float a[3], float b[3]) +MINLINE float dot_v3v3(const float a[3], const float b[3]) { return a[0]*b[0] + a[1]*b[1] + a[2]*b[2]; } -MINLINE float cross_v2v2(float a[2], float b[2]) +MINLINE float cross_v2v2(const float a[2], const float b[2]) { return a[0]*b[1] - a[1]*b[0]; } @@ -236,12 +236,12 @@ MINLINE void star_m3_v3(float mat[][3], float *vec) /*********************************** Length **********************************/ -MINLINE float len_v2(float *v) +MINLINE float len_v2(const float v[2]) { return (float)sqrt(v[0]*v[0] + v[1]*v[1]); } -MINLINE float len_v2v2(float *v1, float *v2) +MINLINE float len_v2v2(const float v1[2], const float v2[2]) { float x, y; @@ -250,12 +250,12 @@ MINLINE float len_v2v2(float *v1, float *v2) return (float)sqrt(x*x+y*y); } -MINLINE float len_v3(float a[3]) +MINLINE float len_v3(const float a[3]) { return sqrtf(dot_v3v3(a, a)); } -MINLINE float len_v3v3(float a[3], float b[3]) +MINLINE float len_v3v3(const float a[3], const float b[3]) { float d[3]; diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 7bad3ee0ecd..a2b926003a7 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -23,6 +23,7 @@ */ #include +#include #include #include "MEM_guardedalloc.h" @@ -920,18 +921,11 @@ static void draw_constraint_spaceselect (uiBlock *block, bConstraint *con, short static void test_obpoin_but(bContext *C, char *name, ID **idpp) { - ID *id; + ID *id= BLI_findstring(&CTX_data_main(C)->object, name, offsetof(ID, name) + 2); + *idpp= id; /* can be NULL */ - id= CTX_data_main(C)->object.first; - while(id) { - if( strcmp(name, id->name+2)==0 ) { - *idpp= id; - id_lib_extern(id); /* checks lib data, sets correct flag for saving then */ - return; - } - id= id->next; - } - *idpp= NULL; + if(id) + id_lib_extern(id); /* checks lib data, sets correct flag for saving then */ } /* draw panel showing settings for a constraint */ diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index 8ba0577e3c7..dfc9b263ac2 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -975,107 +975,45 @@ static void verify_logicbutton_func(bContext *C, void *data1, void *data2) static void test_scriptpoin_but(struct bContext *C, char *name, ID **idpp) { - ID *id; - - id= CTX_data_main(C)->text.first; - while(id) { - if( strcmp(name, id->name+2)==0 ) { - *idpp= id; - return; - } - id= id->next; - } - *idpp= NULL; + *idpp= BLI_findstring(&CTX_data_main(C)->text, name, offsetof(ID, name) + 2); } static void test_actionpoin_but(struct bContext *C, char *name, ID **idpp) { - ID *id; - - id= CTX_data_main(C)->action.first; - while(id) { - if( strcmp(name, id->name+2)==0 ) { - id_us_plus(id); - *idpp= id; - return; - } - id= id->next; - } - *idpp= NULL; + *idpp= BLI_findstring(&CTX_data_main(C)->text, name, offsetof(ID, name) + 2); + if(*idpp) + id_us_plus(*idpp); } static void test_obpoin_but(struct bContext *C, char *name, ID **idpp) { - ID *id; - - id= CTX_data_main(C)->object.first; - while(id) { - if( strcmp(name, id->name+2)==0 ) { - *idpp= id; - id_lib_extern(id); /* checks lib data, sets correct flag for saving then */ - return; - } - id= id->next; - } - *idpp= NULL; + *idpp= BLI_findstring(&CTX_data_main(C)->object, name, offsetof(ID, name) + 2); + if(*idpp) + id_lib_extern(*idpp); /* checks lib data, sets correct flag for saving then */ } static void test_meshpoin_but(struct bContext *C, char *name, ID **idpp) { - ID *id; - - if( *idpp ) (*idpp)->us--; - - id= CTX_data_main(C)->mesh.first; - while(id) { - if( strcmp(name, id->name+2)==0 ) { - *idpp= id; - id_us_plus(id); - return; - } - id= id->next; - } - *idpp= NULL; + *idpp= BLI_findstring(&CTX_data_main(C)->mesh, name, offsetof(ID, name) + 2); + if(*idpp) + id_us_plus(*idpp); } static void test_matpoin_but(struct bContext *C, char *name, ID **idpp) { - ID *id; - - if( *idpp ) (*idpp)->us--; - - id= CTX_data_main(C)->mat.first; - while(id) { - if( strcmp(name, id->name+2)==0 ) { - *idpp= id; - id_us_plus(id); - return; - } - id= id->next; - } - *idpp= NULL; + *idpp= BLI_findstring(&CTX_data_main(C)->mat, name, offsetof(ID, name) + 2); + if(*idpp) + id_us_plus(*idpp); } static void test_scenepoin_but(struct bContext *C, char *name, ID **idpp) { - ID *id; - - if( *idpp ) (*idpp)->us--; - - id= CTX_data_main(C)->scene.first; - while(id) { - if( strcmp(name, id->name+2)==0 ) { - *idpp= id; - id_us_plus(id); - return; - } - id= id->next; - } - *idpp= NULL; + *idpp= BLI_findstring(&CTX_data_main(C)->scene, name, offsetof(ID, name) + 2); + if(*idpp) + id_us_plus(*idpp); } - static void test_keyboard_event(struct bContext *C, void *arg_ks, void *arg_unused) { bKeyboardSensor *ks= (bKeyboardSensor*)arg_ks; diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index 7e2b9d7875b..07c4445872e 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -58,6 +58,8 @@ #include "MEM_guardedalloc.h" +#include "RNA_access.h" + static void rna_Pose_update(Main *bmain, Scene *scene, PointerRNA *ptr) { // XXX when to use this? ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK); @@ -509,6 +511,16 @@ static int rna_PoseChannel_rotation_4d_editable(PointerRNA *ptr, int index) return PROP_EDITABLE; } +/* not essential, but much faster then the default lookup function */ +PointerRNA rna_PoseBones_lookup_string(PointerRNA *ptr, const char *key) +{ + PointerRNA rptr; + bPose *pose= (bPose*)ptr->data; + bPoseChannel *pchan= BLI_findstring(&pose->chanbase, key, offsetof(bPoseChannel, name)); + RNA_pointer_create(ptr->id.data, &RNA_PoseBone, pchan, &rptr); + return rptr; +} + #else static void rna_def_bone_group(BlenderRNA *brna) @@ -1077,7 +1089,7 @@ static void rna_def_pose(BlenderRNA *brna) RNA_def_property_collection_sdna(prop, NULL, "chanbase", NULL); RNA_def_property_struct_type(prop, "PoseBone"); RNA_def_property_ui_text(prop, "Pose Bones", "Individual pose bones for the armature."); - + RNA_def_property_collection_funcs(prop, 0, 0, 0, 0, 0, 0, "rna_PoseBones_lookup_string"); /* can be removed, only for fast lookup */ /* bone groups */ prop= RNA_def_property(srna, "bone_groups", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "agroups", NULL); diff --git a/source/blender/python/generic/bpy_internal_import.c b/source/blender/python/generic/bpy_internal_import.c index 002467687c4..e890dc11f05 100644 --- a/source/blender/python/generic/bpy_internal_import.c +++ b/source/blender/python/generic/bpy_internal_import.c @@ -33,6 +33,8 @@ #include "MEM_guardedalloc.h" #include "BKE_text.h" /* txt_to_buf */ #include "BKE_main.h" +#include "BLI_listbase.h" +#include static Main *bpy_import_main= NULL; @@ -100,10 +102,7 @@ PyObject *bpy_text_import_name( char *name, int *found ) memcpy( txtname, name, namelen ); memcpy( &txtname[namelen], ".py", 4 ); - for(text = maggie->text.first; text; text = text->id.next) { - if( !strcmp( txtname, text->id.name+2 ) ) - break; - } + text= BLI_findstring(&maggie->text, txtname, offsetof(ID, name) + 2); if( !text ) return NULL; @@ -142,12 +141,7 @@ PyObject *bpy_text_reimport( PyObject *module, int *found ) return NULL; /* look up the text object */ - text = ( Text * ) & ( maggie->text.first ); - while( text ) { - if( !strcmp( txtname, text->id.name+2 ) ) - break; - text = text->id.next; - } + text= BLI_findstring(&maggie->text, txtname, offsetof(ID, name) + 2); /* uh-oh.... didn't find it */ if( !text ) -- cgit v1.2.3 From 1cfb5ffb5dfc9fe10273c59d2cb1acffc303af25 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 29 Dec 2009 15:47:16 +0000 Subject: arg!, my secret testing keyword is exposed --- source/blender/blenlib/intern/listbase.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/listbase.c b/source/blender/blenlib/intern/listbase.c index 9b4e1720d8b..6626896d266 100644 --- a/source/blender/blenlib/intern/listbase.c +++ b/source/blender/blenlib/intern/listbase.c @@ -353,7 +353,7 @@ void *BLI_findstring(ListBase *listbase, const char *id, int offset) link= listbase->first; while (link) { id_iter= ((const char *)link) + offset; - printf("ASS '%s'\n", id_iter); + if(id[0] == id_iter[0] && strcmp(id, id_iter)==0) return link; -- cgit v1.2.3 From e37e3845a1d65501262f21a45b794a53c4c69a00 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Tue, 29 Dec 2009 15:47:20 +0000 Subject: BGE: stereoscopic settings changes: (1) eye separation is the UI (2) focallength uses camera focallength Now the default eye separation value is 0.10 (reasonable for games with 1 meter == 1 B.U. The focallength used is the camera focal length (DOF settings). It allow you to even use different focal lengths for different scenes (good for UI) In order to change it you can change the camera focal length or use Rasterizer.setFocalLength. If you use the Rasterizer method it will use this value for all the cameras. ToDo: - Blenderplayer settings - Update wiki documentation (any volunteer)? * Note to stereo fans: I don't have a real stereo environment to test it (other than cheap cyan-red glasses). If you can give it a try in a more robust system and report bugs or problems with BGE current system please let me know. I would be glad to help to make it work 100% by the time Blender 2.5 is out. For the record, BGE is using the method known as 'parallel axis asymmetric frustum perspective projection'. This method is well documented here: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/stereographics/stereorender/ --- source/blender/blenkernel/intern/scene.c | 2 ++ source/blender/blenloader/intern/readfile.c | 7 +++++++ source/blender/makesdna/DNA_scene_types.h | 1 + source/blender/makesrna/intern/rna_scene.c | 6 ++++++ 4 files changed, 16 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index eadeac585b2..f17d11c40ce 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -450,6 +450,8 @@ Scene *add_scene(char *name) /* game data */ sce->gm.stereoflag = STEREO_NOSTEREO; sce->gm.stereomode = STEREO_ANAGLYPH; + sce->gm.eyeseparation = 0.10; + sce->gm.dome.angle = 180; sce->gm.dome.mode = DOME_FISHEYE; sce->gm.dome.res = 4; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index d6858f664a3..b99efc5be88 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10304,6 +10304,13 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* put 2.50 compatibility code here until next subversion bump */ + if (1) { + Scene *sce; + + for(sce = main->scene.first; sce; sce = sce->id.next) { + sce->gm.eyeseparation = 0.10; + } + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 536d9ba2bc3..6d6e668e227 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -444,6 +444,7 @@ typedef struct GameData { /* stereo/dome mode */ struct GameDome dome; short stereoflag, stereomode, xsch, ysch; //xsch and ysch can be deleted !!! + float eyeseparation, pad1; } GameData; #define STEREO_NOSTEREO 1 diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index ba389f66438..e824a72c791 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1215,6 +1215,12 @@ static void rna_def_scene_game_data(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Stereo Mode", "Stereographic techniques"); RNA_def_property_update(prop, NC_SCENE, NULL); + prop= RNA_def_property(srna, "eye_separation", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "eyeseparation"); + RNA_def_property_range(prop, 0.01, 5.0); + RNA_def_property_ui_text(prop, "Eye Separation", "Set the distance between the eyes"); + RNA_def_property_update(prop, NC_SCENE, NULL); + /* Dome */ prop= RNA_def_property(srna, "dome_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "dome.mode"); -- cgit v1.2.3 From 010e3fccb2a6f64306047f2bc9afd0d74665a179 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 29 Dec 2009 18:55:38 +0000 Subject: bake operator and UI, no feedback while baking yet --- source/blender/editors/include/ED_mesh.h | 2 ++ source/blender/editors/mesh/meshtools.c | 2 +- source/blender/editors/object/object_edit.c | 26 ++++++++++++++++++++++++++ source/blender/editors/object/object_intern.h | 1 + source/blender/editors/object/object_ops.c | 1 + 5 files changed, 31 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index 174447c0f9f..66c32b06f95 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -85,6 +85,8 @@ int *mesh_get_x_mirror_faces(struct Object *ob, struct EditMesh *em); int join_mesh_exec(struct bContext *C, struct wmOperator *op); int join_mesh_shapes_exec(struct bContext *C, struct wmOperator *op); +void objects_bake_render(struct Scene *scene, short event, char **error_msg); + /* mesh_ops.c */ void ED_operatortypes_mesh(void); void ED_operatormacros_mesh(void); diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index 949faf16ef9..1feaa2dc83a 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -1197,7 +1197,7 @@ void objects_bake_render(Scene *scene, short event, char **error_msg) if(event>0) { bScreen *screen= NULL; // XXX CTX Render *re= RE_NewRender("_Bake View_"); - ScrArea *area= biggest_image_area(screen); + ScrArea *area= NULL; //biggest_image_area(screen); // XXX ListBase threads; BakeRender bkr; int timer=0, tot; // XXX, sculptmode= G.f & G_SCULPTMODE; diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 4fed6108f86..790db0dc564 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1671,8 +1671,34 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/* bake */ +static int bake_image_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + char *error_msg= NULL; + objects_bake_render(scene, 0, &error_msg); + + if(error_msg) { + BKE_report(op->reports, RPT_ERROR, error_msg); + return OPERATOR_CANCELLED; + } + else { + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); + return OPERATOR_FINISHED; + } +} +void OBJECT_OT_bake_image(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Bake"; + ot->description= "Bake selected objects."; + ot->idname= "OBJECT_OT_bake_image"; + + /* api callbacks */ + ot->exec= bake_image_exec; +} /* ********************** */ diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index 562216e5890..c5bb61b4403 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -79,6 +79,7 @@ void OBJECT_OT_restrictview_clear(struct wmOperatorType *ot); void OBJECT_OT_proxy_make(struct wmOperatorType *ot); void OBJECT_OT_shade_smooth(struct wmOperatorType *ot); void OBJECT_OT_shade_flat(struct wmOperatorType *ot); +void OBJECT_OT_bake_image(struct wmOperatorType *ot); /* object_select.c */ void OBJECT_OT_select_all(struct wmOperatorType *ot); diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 8272d989718..05eab6528fd 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -81,6 +81,7 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_restrictview_set); WM_operatortype_append(OBJECT_OT_shade_smooth); WM_operatortype_append(OBJECT_OT_shade_flat); + WM_operatortype_append(OBJECT_OT_bake_image); WM_operatortype_append(OBJECT_OT_parent_set); WM_operatortype_append(OBJECT_OT_parent_no_inverse_set); -- cgit v1.2.3 From 7831edbc5995a25636b466bc2c02e591aad7d45e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 29 Dec 2009 18:57:59 +0000 Subject: needed for win32's msvc. --- source/blender/editors/space_logic/logic_window.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index dfc9b263ac2..3e4c76f993f 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -28,6 +28,7 @@ #include #include +#include #include #include "DNA_actuator_types.h" -- cgit v1.2.3 From 8f2b2d32cf5821f95dde262aa72b550b999da873 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 29 Dec 2009 20:11:13 +0000 Subject: view3d orbit and rotate operators now check for rv3d viewlock in their poll functions (this means you can also set mmb = pan later in the keymap to pan locked views with mmb only). --- source/blender/editors/space_view3d/view3d_edit.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index e8c2b48e4be..4ce7aa48392 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -680,6 +680,15 @@ static int viewrotate_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_RUNNING_MODAL; } +static int ED_operator_view3d_rotate(bContext *C) +{ + if (!ED_operator_view3d_active(C)) { + return 0; + } else { + RegionView3D *rv3d= CTX_wm_region_view3d(C); + return rv3d->viewlock == 0; + } +} void VIEW3D_OT_rotate(wmOperatorType *ot) { @@ -692,7 +701,7 @@ void VIEW3D_OT_rotate(wmOperatorType *ot) /* api callbacks */ ot->invoke= viewrotate_invoke; ot->modal= viewrotate_modal; - ot->poll= ED_operator_view3d_active; + ot->poll= ED_operator_view3d_rotate; /* flags */ ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER; @@ -1874,7 +1883,7 @@ void VIEW3D_OT_view_orbit(wmOperatorType *ot) /* api callbacks */ ot->exec= vieworbit_exec; - ot->poll= ED_operator_view3d_active; + ot->poll= ED_operator_view3d_rotate; /* flags */ ot->flag= 0; -- cgit v1.2.3 From c947fbe43dece2b36c5daf411f51cc081c3aad67 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 29 Dec 2009 20:44:51 +0000 Subject: Bugfix for [#20511] Shift-MMB for user orientation constraint selection didn't work for global orientation (the matrix wasn't initialized properly). Also, MMB can be used to cancel a constraint again. --- source/blender/editors/transform/transform.c | 2 +- source/blender/editors/transform/transform_orientations.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index fa435f29773..896d9ec5c2f 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -742,11 +742,11 @@ int transformEvent(TransInfo *t, wmEvent *event) } } else { - t->modifiers |= MOD_CONSTRAINT_SELECT; if (t->con.mode & CON_APPLY) { stopConstraint(t); } else { + t->modifiers |= MOD_CONSTRAINT_SELECT; if (event->shift) { initSelectConstraint(t, t->spacemtx); } diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c index 98067291e07..c275c9a7a6e 100644 --- a/source/blender/editors/transform/transform_orientations.c +++ b/source/blender/editors/transform/transform_orientations.c @@ -518,6 +518,7 @@ void initTransformOrientation(bContext *C, TransInfo *t) switch(t->current_orientation) { case V3D_MANIP_GLOBAL: + unit_m3(t->spacemtx); strcpy(t->spacename, "global"); break; -- cgit v1.2.3 From d98811d414d0a30ae38397a2041613d332bcd4a8 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 29 Dec 2009 21:20:46 +0000 Subject: mmb only cancels constraint if mouse isn't moved (was broken since early 2.5 code, selection code needed to be earlier in event handling). --- source/blender/editors/transform/transform.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 896d9ec5c2f..7de2006a35c 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -533,6 +533,9 @@ int transformEvent(TransInfo *t, wmEvent *event) if (event->type == MOUSEMOVE) { + if (t->modifiers & MOD_CONSTRAINT_SELECT) + t->con.mode |= CON_SELECT; + t->mval[0] = event->x - t->ar->winrct.xmin; t->mval[1] = event->y - t->ar->winrct.ymin; @@ -742,11 +745,11 @@ int transformEvent(TransInfo *t, wmEvent *event) } } else { + t->modifiers |= MOD_CONSTRAINT_SELECT; if (t->con.mode & CON_APPLY) { stopConstraint(t); } else { - t->modifiers |= MOD_CONSTRAINT_SELECT; if (event->shift) { initSelectConstraint(t, t->spacemtx); } @@ -1606,9 +1609,6 @@ void transformApply(bContext *C, TransInfo *t) { if (t->redraw) { - if (t->modifiers & MOD_CONSTRAINT_SELECT) - t->con.mode |= CON_SELECT; - selectConstraint(t); if (t->transform) { t->transform(t, t->mval); // calls recalcData() -- cgit v1.2.3 From 76a0fa5590aa52961ae344810f890f90a7b3194e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 29 Dec 2009 23:25:46 +0000 Subject: Push Pose Tool - Quaternion Rotation fixes: This commit is an attempt at improving the behaviour of the Push Pose tool (Ctrl E) when dealing with quaternion rotations. Now the delta rotation from the previous keyframe to the current pose is taken and 'added' to the current pose. This may not be the best behaviour yet, but at least there are some visible results now (compared to before, when the method used resulted in minor twitching only). Also, fixed a number of bugs that went unnoticed for a while due to various refactors: - quaternion rotations were broken for the pose sliding tools, since the wrong RNA path was being used - the wrong keyframes were being picked up due to float vs ints being passed to the searching functions --- source/blender/editors/armature/poseSlide.c | 37 ++++++++++++++++------------- 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c index 7ceb50057ce..0e066b112b0 100644 --- a/source/blender/editors/armature/poseSlide.c +++ b/source/blender/editors/armature/poseSlide.c @@ -417,7 +417,7 @@ static void pose_slide_apply_quat (tPoseSlideOp *pso, tPChanFCurveLink *pfl) float cframe; /* get the path to use - this should be quaternion rotations only (needs care) */ - path= BLI_sprintfN("%s.%s", pfl->pchan_path, "rotation"); + path= BLI_sprintfN("%s.%s", pfl->pchan_path, "rotation_quaternion"); /* get the current frame number */ cframe= (float)pso->cframe; @@ -463,6 +463,19 @@ static void pose_slide_apply_quat (tPoseSlideOp *pso, tPChanFCurveLink *pfl) /* just perform the interpol between quat_prev and quat_next using pso->percentage as a guide */ interp_qt_qtqt(pchan->quat, quat_prev, quat_next, pso->percentage); } + else if (pso->mode == POSESLIDE_PUSH) { + float quat_diff[4], quat_orig[4]; + + /* calculate the delta transform from the previous to the current */ + // TODO: investigate ways to favour one transform more? + sub_qt_qtqt(quat_diff, pchan->quat, quat_prev); + + /* make a copy of the original rotation */ + QUATCOPY(quat_orig, pchan->quat); + + /* increase the original by the delta transform, by an amount determined by percentage */ + add_qt_qtqt(pchan->quat, quat_orig, quat_diff, pso->percentage); + } else { float quat_interp[4], quat_orig[4]; int iters= (int)ceil(10.0f*pso->percentage); // TODO: maybe a sensitivity ctrl on top of this is needed @@ -475,11 +488,8 @@ static void pose_slide_apply_quat (tPoseSlideOp *pso, tPChanFCurveLink *pfl) /* make a copy of the original rotation */ QUATCOPY(quat_orig, pchan->quat); - /* tricky interpolations - mode-dependent blending between original and new */ - if (pso->mode == POSESLIDE_RELAX) // xxx this was the original code, so should work fine - interp_qt_qtqt(pchan->quat, quat_orig, quat_interp, 1.0f/6.0f); - else // I'm just guessing here... - interp_qt_qtqt(pchan->quat, quat_orig, quat_interp, 6.0f/5.0f); + /* tricky interpolations - blending between original and new */ + interp_qt_qtqt(pchan->quat, quat_orig, quat_interp, 1.0f/6.0f); } } } @@ -612,22 +622,15 @@ static int pose_slide_invoke_common (bContext *C, wmOperator *op, tPoseSlideOp * /* cancel if no keyframes found... */ if (pso->keys.root) { ActKeyColumn *ak; + float cframe= (float)pso->cframe; /* firstly, check if the current frame is a keyframe... */ - ak= (ActKeyColumn *)BLI_dlrbTree_search_exact(&pso->keys, compare_ak_cfraPtr, &pso->cframe); + ak= (ActKeyColumn *)BLI_dlrbTree_search_exact(&pso->keys, compare_ak_cfraPtr, &cframe); if (ak == NULL) { /* current frame is not a keyframe, so search */ - ActKeyColumn *pk= (ActKeyColumn *)BLI_dlrbTree_search_prev(&pso->keys, compare_ak_cfraPtr, &pso->cframe); - ActKeyColumn *nk= (ActKeyColumn *)BLI_dlrbTree_search_next(&pso->keys, compare_ak_cfraPtr, &pso->cframe); - - /* check if we found good keyframes */ - if ((pk == nk) && (pk != NULL)) { - if (pk->cfra < pso->cframe) - nk= nk->next; - else if (nk->cfra > pso->cframe) - pk= pk->prev; - } + ActKeyColumn *pk= (ActKeyColumn *)BLI_dlrbTree_search_prev(&pso->keys, compare_ak_cfraPtr, &cframe); + ActKeyColumn *nk= (ActKeyColumn *)BLI_dlrbTree_search_next(&pso->keys, compare_ak_cfraPtr, &cframe); /* new set the frames */ /* prev frame */ -- cgit v1.2.3 From 35d629c97b9debd28378c8872ad5975d19f93420 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 30 Dec 2009 10:21:45 +0000 Subject: * Assorted comments/warnings fixes for animation code * Made the dotted lines drawn for markers extend all the way to the top of the relevant views * Shortened the default names for markers --- source/blender/editors/animation/anim_markers.c | 11 +++++------ source/blender/editors/animation/keyframes_edit.c | 5 ++--- .../blender/editors/animation/keyframes_general.c | 21 +++++++++++++-------- source/blender/makesrna/intern/rna_action.c | 2 +- 4 files changed, 21 insertions(+), 18 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index 4cc3a8d343f..7d1ddda1c6d 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -120,7 +120,7 @@ void ED_markers_get_minmax (ListBase *markers, short sel, float *first, float *l int selcount = 0; /* sanity check */ - printf("markers = %p - %p, %p \n", markers, markers->first, markers->last); + //printf("markers = %p - %p, %p \n", markers, markers->first, markers->last); if (markers == NULL) { *first = 0.0f; *last = 0.0f; @@ -240,9 +240,8 @@ static void draw_marker(View2D *v2d, TimeMarker *marker, int cfra, int flag) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); /* vertical line - dotted */ - // NOTE: currently only used for sequencer #ifdef DURIAN_CAMERA_SWITCH - if (marker->camera || flag & DRAW_MARKERS_LINES) { + if ((marker->camera) || (flag & DRAW_MARKERS_LINES)) { #else if (flag & DRAW_MARKERS_LINES) { #endif @@ -252,10 +251,10 @@ static void draw_marker(View2D *v2d, TimeMarker *marker, int cfra, int flag) glColor4ub(255, 255, 255, 96); else glColor4ub(0, 0, 0, 96); - + glBegin(GL_LINES); glVertex2f((xpos*xscale)+0.5f, 12.0f); - glVertex2f((xpos*xscale)+0.5f, 34.0f*yscale); /* a bit lazy but we know it cant be greater then 34 strips high */ + glVertex2f((xpos*xscale)+0.5f, (v2d->cur.ymax+12.0f)*yscale); glEnd(); setlinestyle(0); @@ -351,7 +350,7 @@ static int ed_marker_add(bContext *C, wmOperator *op) marker = MEM_callocN(sizeof(TimeMarker), "TimeMarker"); marker->flag= SELECT; marker->frame= frame; - sprintf(marker->name, "Frame %d", frame); // XXX - temp code only + sprintf(marker->name, "F_%02d", frame); // XXX - temp code only BLI_addtail(markers, marker); WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL); diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c index b3b0d6308a7..828ff9792be 100644 --- a/source/blender/editors/animation/keyframes_edit.c +++ b/source/blender/editors/animation/keyframes_edit.c @@ -455,11 +455,11 @@ void ANIM_editkeyframes_refresh(bAnimContext *ac) filter= ANIMFILTER_CURVESONLY; ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); - /* loop over ipo-curves that are likely to have been edited, and check them */ + /* loop over F-Curves that are likely to have been edited, and check them */ for (ale= anim_data.first; ale; ale= ale->next) { FCurve *fcu= ale->key_data; - /* make sure keyframes in F-curve are all in order, and handles are in valid positions */ + /* make sure keyframes in F-Curve are all in order, and handles are in valid positions */ sort_time_fcurve(fcu); testhandles_fcurve(fcu); } @@ -936,7 +936,6 @@ static short select_bezier_invert(BeztEditData *bed, BezTriple *bezt) return 0; } -// NULL BeztEditFunc ANIM_editkeyframes_select(short selectmode) { switch (selectmode) { diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c index fb9d4d53b0f..a1ff940e8b9 100644 --- a/source/blender/editors/animation/keyframes_general.c +++ b/source/blender/editors/animation/keyframes_general.c @@ -67,21 +67,26 @@ /* **************************************************** */ -/* Only delete the nominated keyframe from provided ipo-curve. +/* Only delete the nominated keyframe from provided F-Curve. * Not recommended to be used many times successively. For that - * there is delete_ipo_keys(). + * there is delete_fcurve_keys(). */ void delete_fcurve_key(FCurve *fcu, int index, short do_recalc) { - /* firstly check that index is valid */ - if (index < 0) - index *= -1; + /* sanity check */ if (fcu == NULL) return; - if (index >= fcu->totvert) + + /* verify the index: + * 1) cannot be greater than the number of available keyframes + * 2) negative indices are for specifying a value from the end of the array + */ + if (abs(index) >= fcu->totvert) return; + else if (index < 0) + index += fcu->totvert; - /* Delete this key */ + /* Delete this keyframe */ memmove(&fcu->bezt[index], &fcu->bezt[index+1], sizeof(BezTriple)*(fcu->totvert-index-1)); fcu->totvert--; @@ -250,7 +255,7 @@ void clean_fcurve(FCurve *fcu, float thresh) /* ---------------- */ -/* temp struct used for smooth_ipo */ +/* temp struct used for smooth_fcurve */ typedef struct tSmooth_Bezt { float *h1, *h2, *h3; /* bezt->vec[0,1,2][1] */ } tSmooth_Bezt; diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 00c5b8ce7c4..512e447f1c2 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -88,7 +88,7 @@ static void rna_def_dopesheet(BlenderRNA *brna) prop= RNA_def_property(srna, "display_summary", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SUMMARY); - RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line."); + RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line. (DopeSheet Editors only)"); RNA_def_property_ui_icon(prop, ICON_BORDERMOVE, 0); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); -- cgit v1.2.3 From 57cd505d3f29b83bea74f4132455f00b248d5808 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 30 Dec 2009 14:37:25 +0000 Subject: bake is now modal like render and updates the image view while baking. it also has an exec function which doesnt update (like render too) --- source/blender/editors/include/ED_mesh.h | 2 - source/blender/editors/mesh/meshtools.c | 200 ------------ source/blender/editors/object/object_bake.c | 341 +++++++++++++++++++++ source/blender/editors/object/object_edit.c | 28 -- source/blender/editors/object/object_intern.h | 3 + source/blender/editors/object/object_ops.c | 3 +- source/blender/editors/space_image/space_image.c | 2 +- .../blender/render/extern/include/RE_shader_ext.h | 2 +- source/blender/render/intern/source/rendercore.c | 11 +- 9 files changed, 358 insertions(+), 234 deletions(-) create mode 100644 source/blender/editors/object/object_bake.c (limited to 'source/blender') diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index 66c32b06f95..174447c0f9f 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -85,8 +85,6 @@ int *mesh_get_x_mirror_faces(struct Object *ob, struct EditMesh *em); int join_mesh_exec(struct bContext *C, struct wmOperator *op); int join_mesh_shapes_exec(struct bContext *C, struct wmOperator *op); -void objects_bake_render(struct Scene *scene, short event, char **error_msg); - /* mesh_ops.c */ void ED_operatortypes_mesh(void); void ED_operatormacros_mesh(void); diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index 1feaa2dc83a..b52447e111f 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -76,16 +76,6 @@ #include "BKE_utildefines.h" #include "BKE_report.h" -#include "RE_pipeline.h" -#include "RE_shader_ext.h" - -#include "PIL_time.h" - -#include "IMB_imbuf_types.h" -#include "IMB_imbuf.h" - -#include "GPU_draw.h" - #include "BLO_sys_types.h" // for intptr_t support #include "ED_mesh.h" @@ -99,8 +89,6 @@ #include "mesh_intern.h" /* XXX */ -static void waitcursor(int val) {} -static void error() {} static int pupmenu() {return 0;} /* XXX */ @@ -1132,191 +1120,3 @@ int *mesh_get_x_mirror_faces(Object *ob, EditMesh *em) return mirrorfaces; } - -/* ****************** render BAKING ********************** */ - -/* threaded break test */ -static int thread_break(void *unused) -{ - return G.afbreek; -} - -static ScrArea *biggest_image_area(bScreen *screen) -{ - ScrArea *sa, *big= NULL; - int size, maxsize= 0; - - for(sa= screen->areabase.first; sa; sa= sa->next) { - if(sa->spacetype==SPACE_IMAGE) { - size= sa->winx*sa->winy; - if(sa->winx > 10 && sa->winy > 10 && size > maxsize) { - maxsize= size; - big= sa; - } - } - } - return big; -} - - -typedef struct BakeRender { - Render *re; - struct Object *actob; - int event, tot, ready; -} BakeRender; - -static void *do_bake_render(void *bake_v) -{ - BakeRender *bkr= bake_v; - - bkr->tot= RE_bake_shade_all_selected(bkr->re, bkr->event, bkr->actob); - bkr->ready= 1; - - return NULL; -} - - -void objects_bake_render(Scene *scene, short event, char **error_msg) -{ - Object *actob= OBACT; - int active= scene->r.bake_flag & R_BAKE_TO_ACTIVE; - short prev_r_raytrace= 0, prev_wo_amb_occ= 0; - - if(event==0) event= scene->r.bake_mode; - - if(scene->r.renderer!=R_INTERN) { - *error_msg = "Bake only supported for Internal Renderer"; - return; - } - - if(active && !actob) { - *error_msg = "No active object"; - return; - } - - if(event>0) { - bScreen *screen= NULL; // XXX CTX - Render *re= RE_NewRender("_Bake View_"); - ScrArea *area= NULL; //biggest_image_area(screen); // XXX - ListBase threads; - BakeRender bkr; - int timer=0, tot; // XXX, sculptmode= G.f & G_SCULPTMODE; - -// XXX if(sculptmode) set_sculptmode(); - - if(event==1) event= RE_BAKE_ALL; - else if(event==2) event= RE_BAKE_AO; - else if(event==3) event= RE_BAKE_NORMALS; - else if(event==4) event= RE_BAKE_TEXTURE; - else if(event==5) event= RE_BAKE_DISPLACEMENT; - else event= RE_BAKE_SHADOW; - - if(event==RE_BAKE_AO) { - if(scene->world==NULL) { - *error_msg = "No world set up"; - return; - } - - /* If raytracing or AO is disabled, switch it on temporarily for baking. */ - prev_wo_amb_occ = (scene->world->mode & WO_AMB_OCC) != 0; - scene->world->mode |= WO_AMB_OCC; - } - if(event==RE_BAKE_AO || active) { - prev_r_raytrace = (scene->r.mode & R_RAYTRACE) != 0; - scene->r.mode |= R_RAYTRACE; - } - - waitcursor(1); - RE_test_break_cb(re, NULL, thread_break); - G.afbreek= 0; /* blender_test_break uses this global */ - - RE_Database_Baking(re, scene, event, (active)? actob: NULL); - - /* baking itself is threaded, cannot use test_break in threads. we also update optional imagewindow */ - - BLI_init_threads(&threads, do_bake_render, 1); - bkr.re= re; - bkr.event= event; - bkr.ready= 0; - bkr.actob= (active)? actob: NULL; - BLI_insert_thread(&threads, &bkr); - - while(bkr.ready==0) { - PIL_sleep_ms(50); - if(bkr.ready) - break; - - if (!G.background) { - blender_test_break(); - - timer++; - if(area && timer==20) { - Image *ima= RE_bake_shade_get_image(); - if(ima) ((SpaceImage *)area->spacedata.first)->image= ima; -// XX scrarea_do_windraw(area); -// myswapbuffers(); - timer= 0; - } - } - } - BLI_end_threads(&threads); - tot= bkr.tot; - - RE_Database_Free(re); - waitcursor(0); - - if(tot==0) *error_msg = "No Images found to bake to"; - else { - Image *ima; - /* force OpenGL reload and mipmap recalc */ - for(ima= G.main->image.first; ima; ima= ima->id.next) { - if(ima->ok==IMA_OK_LOADED) { - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - if(ibuf && (ibuf->userflags & IB_BITMAPDIRTY)) { - GPU_free_image(ima); - imb_freemipmapImBuf(ibuf); - } - } - } - } - - /* restore raytrace and AO */ - if(event==RE_BAKE_AO) - if(prev_wo_amb_occ == 0) - scene->world->mode &= ~WO_AMB_OCC; - - if(event==RE_BAKE_AO || active) - if(prev_r_raytrace == 0) - scene->r.mode &= ~R_RAYTRACE; - -// XXX if(sculptmode) set_sculptmode(); - - } -} - -/* all selected meshes with UV maps are rendered for current scene visibility */ -static void objects_bake_render_ui(Scene *scene, short event) -{ - char *error_msg = NULL; -// int is_editmode = (obedit!=NULL); - - /* Deal with editmode, this is a bit clunky but since UV's are in editmode, users are likely to bake from their */ -// XXX if (is_editmode) exit_editmode(0); - - objects_bake_render(scene, event, &error_msg); - -// XXX if (is_editmode) enter_editmode(0); - - if (error_msg) - error(error_msg); -} - -void objects_bake_render_menu(Scene *scene) -{ - short event; - - event= pupmenu("Bake Selected Meshes %t|Full Render %x1|Ambient Occlusion %x2|Normals %x3|Texture Only %x4|Displacement %x5|Shadow %x6"); - if (event < 1) return; - objects_bake_render_ui(scene, event); -} - diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c new file mode 100644 index 00000000000..4b02cd8e623 --- /dev/null +++ b/source/blender/editors/object/object_bake.c @@ -0,0 +1,341 @@ +/** + * $Id: + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2004 by Blender Foundation + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/* + meshtools.c: no editmode (violated already :), tools operating on meshes +*/ + +#include + +#include "MEM_guardedalloc.h" + +#include "DNA_image_types.h" +#include "DNA_scene_types.h" +#include "DNA_screen_types.h" +#include "DNA_space_types.h" +#include "DNA_world_types.h" + +#include "BLI_blenlib.h" +#include "BLI_threads.h" + +#include "BKE_blender.h" +#include "BKE_context.h" +#include "BKE_global.h" +#include "BKE_image.h" +#include "BKE_main.h" +#include "BKE_object.h" +#include "BKE_utildefines.h" +#include "BKE_report.h" + +#include "RE_pipeline.h" +#include "RE_shader_ext.h" + +#include "PIL_time.h" + +#include "IMB_imbuf_types.h" +#include "IMB_imbuf.h" + +#include "GPU_draw.h" /* GPU_free_image */ + +#include "WM_api.h" +#include "WM_types.h" + + +/* ****************** render BAKING ********************** */ + +/* threaded break test */ +static int thread_break(void *unused) +{ + return G.afbreek; +} + +static ScrArea *biggest_image_area(bScreen *screen) +{ + ScrArea *sa, *big= NULL; + int size, maxsize= 0; + + for(sa= screen->areabase.first; sa; sa= sa->next) { + if(sa->spacetype==SPACE_IMAGE) { + size= sa->winx*sa->winy; + if(sa->winx > 10 && sa->winy > 10 && size > maxsize) { + maxsize= size; + big= sa; + } + } + } + return big; +} + + +typedef struct BakeRender { + Render *re; + Scene *scene; + struct Object *actob; + int tot, ready; + + ReportList *reports; + + short *stop; + short *do_update; + + ListBase threads; + + /* backup */ + short prev_wo_amb_occ; + short prev_r_raytrace; + + /* for redrawing */ + ScrArea *sa; +} BakeRender; + +/* use by exec and invoke */ +int test_bake_internal(bContext *C, ReportList *reports) +{ + Scene *scene= CTX_data_scene(C); + + if(scene->r.renderer!=R_INTERN) { + BKE_report(reports, RPT_ERROR, "Bake only supported for Internal Renderer"); + } else if((scene->r.bake_flag & R_BAKE_TO_ACTIVE) && CTX_data_active_object(C)==NULL) { + BKE_report(reports, RPT_ERROR, "No active object"); + } + else if(scene->r.bake_mode==RE_BAKE_AO && scene->world==NULL) { + BKE_report(reports, RPT_ERROR, "No world set up"); + } + else { + return 1; + } + + return 0; +} + +static void init_bake_internal(BakeRender *bkr, bContext *C) +{ + Scene *scene= CTX_data_scene(C); + + bkr->sa= biggest_image_area(CTX_wm_screen(C)); /* can be NULL */ + bkr->scene= scene; + bkr->actob= (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL; + bkr->re= RE_NewRender("_Bake View_"); + + if(scene->r.bake_mode==RE_BAKE_AO) { + /* If raytracing or AO is disabled, switch it on temporarily for baking. */ + bkr->prev_wo_amb_occ = (scene->world->mode & WO_AMB_OCC) != 0; + scene->world->mode |= WO_AMB_OCC; + } + if(scene->r.bake_mode==RE_BAKE_AO || bkr->actob) { + bkr->prev_r_raytrace = (scene->r.mode & R_RAYTRACE) != 0; + scene->r.mode |= R_RAYTRACE; + } +} + +static void finish_bake_internal(BakeRender *bkr) +{ + RE_Database_Free(bkr->re); + + /* restore raytrace and AO */ + if(bkr->scene->r.bake_mode==RE_BAKE_AO) + if(bkr->prev_wo_amb_occ == 0) + bkr->scene->world->mode &= ~WO_AMB_OCC; + + if(bkr->scene->r.bake_mode==RE_BAKE_AO || bkr->actob) + if(bkr->prev_r_raytrace == 0) + bkr->scene->r.mode &= ~R_RAYTRACE; + + if(bkr->tot) { + Image *ima; + /* force OpenGL reload and mipmap recalc */ + for(ima= G.main->image.first; ima; ima= ima->id.next) { + if(ima->ok==IMA_OK_LOADED) { + ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + if(ibuf && (ibuf->userflags & IB_BITMAPDIRTY)) { + GPU_free_image(ima); + imb_freemipmapImBuf(ibuf); + } + } + } + } +} + +static void *do_bake_render(void *bake_v) +{ + BakeRender *bkr= bake_v; + + bkr->tot= RE_bake_shade_all_selected(bkr->re, bkr->scene->r.bake_mode, bkr->actob, NULL); + bkr->ready= 1; + + return NULL; +} + +static void bake_startjob(void *bkv, short *stop, short *do_update) +{ + BakeRender *bkr= bkv; + Scene *scene= bkr->scene; + + bkr->stop= stop; + bkr->do_update= do_update; + + RE_test_break_cb(bkr->re, NULL, thread_break); + G.afbreek= 0; /* blender_test_break uses this global */ + + RE_Database_Baking(bkr->re, scene, scene->r.bake_mode, bkr->actob); + + /* baking itself is threaded, cannot use test_break in threads. we also update optional imagewindow */ + bkr->tot= RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update); +} + +static void bake_update(void *bkv) +{ + BakeRender *bkr= bkv; + + if(bkr->sa && bkr->sa->spacetype==SPACE_IMAGE) { /* incase the user changed while baking */ + SpaceImage *sima= bkr->sa->spacedata.first; + sima->image= RE_bake_shade_get_image(); + } +} + +static void bake_freejob(void *bkv) +{ + BakeRender *bkr= bkv; + BLI_end_threads(&bkr->threads); + finish_bake_internal(bkr); + + if(bkr->tot==0) BKE_report(bkr->reports, RPT_ERROR, "No Images found to bake to"); + MEM_freeN(bkr); +} + +/* catch esc */ +static int objects_bake_render_modal(bContext *C, wmOperator *op, wmEvent *event) +{ + /* no running blender, remove handler and pass through */ + if(0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) + return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH; + + /* running render */ + switch (event->type) { + case ESCKEY: + return OPERATOR_RUNNING_MODAL; + break; + } + return OPERATOR_PASS_THROUGH; +} + +static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *_event) +{ + Scene *scene= CTX_data_scene(C); + + if(test_bake_internal(C, op->reports)==0) { + return OPERATOR_CANCELLED; + } + else { + BakeRender *bkr= MEM_callocN(sizeof(BakeRender), "render bake"); + wmJob *steve; + + init_bake_internal(bkr, C); + bkr->reports= op->reports; + + /* setup job */ + steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY); + WM_jobs_customdata(steve, bkr, bake_freejob); + WM_jobs_timer(steve, 0.2, NC_IMAGE, 0); /* TODO - only draw bake image, can we enforce this */ + WM_jobs_callbacks(steve, bake_startjob, NULL, bake_update); + + G.afbreek= 0; + + WM_jobs_start(CTX_wm_manager(C), steve); + + WM_cursor_wait(0); + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); + + /* add modal handler for ESC */ + WM_event_add_modal_handler(C, op); + } + + return OPERATOR_RUNNING_MODAL; +} + + +static int bake_image_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + + + if(test_bake_internal(C, op->reports)==0) { + return OPERATOR_CANCELLED; + } + else { + ListBase threads; + BakeRender bkr; + + memset(&bkr, 0, sizeof(bkr)); + + init_bake_internal(&bkr, C); + bkr.reports= op->reports; + + RE_test_break_cb(bkr.re, NULL, thread_break); + G.afbreek= 0; /* blender_test_break uses this global */ + + RE_Database_Baking(bkr.re, scene, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE)? OBACT: NULL); + + /* baking itself is threaded, cannot use test_break in threads */ + BLI_init_threads(&threads, do_bake_render, 1); + bkr.ready= 0; + BLI_insert_thread(&threads, &bkr); + + while(bkr.ready==0) { + PIL_sleep_ms(50); + if(bkr.ready) + break; + + /* used to redraw in 2.4x but this is just for exec in 2.5 */ + if (!G.background) + blender_test_break(); + } + BLI_end_threads(&threads); + + if(bkr.tot==0) BKE_report(op->reports, RPT_ERROR, "No Images found to bake to"); + + finish_bake_internal(&bkr); + } + + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); + return OPERATOR_FINISHED; +} + +void OBJECT_OT_bake_image(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Bake"; + ot->description= "Bake image textures of selected objects."; + ot->idname= "OBJECT_OT_bake_image"; + + /* api callbacks */ + ot->exec= bake_image_exec; + ot->invoke= objects_bake_render_invoke; + ot->modal= objects_bake_render_modal; +} diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 790db0dc564..9ef1fafff82 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1671,34 +1671,6 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -/* bake */ - -static int bake_image_exec(bContext *C, wmOperator *op) -{ - Scene *scene= CTX_data_scene(C); - char *error_msg= NULL; - objects_bake_render(scene, 0, &error_msg); - - if(error_msg) { - BKE_report(op->reports, RPT_ERROR, error_msg); - return OPERATOR_CANCELLED; - } - else { - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); - return OPERATOR_FINISHED; - } -} - -void OBJECT_OT_bake_image(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Bake"; - ot->description= "Bake selected objects."; - ot->idname= "OBJECT_OT_bake_image"; - - /* api callbacks */ - ot->exec= bake_image_exec; -} /* ********************** */ diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index c5bb61b4403..10ff93c540f 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -203,5 +203,8 @@ void OBJECT_OT_shape_key_move(struct wmOperatorType *ot); void OBJECT_OT_group_add(struct wmOperatorType *ot); void OBJECT_OT_group_remove(struct wmOperatorType *ot); +/* object_bake.c */ +void OBJECT_OT_bake_image(wmOperatorType *ot); + #endif /* ED_OBJECT_INTERN_H */ diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 05eab6528fd..eb2086fe95d 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -81,7 +81,6 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_restrictview_set); WM_operatortype_append(OBJECT_OT_shade_smooth); WM_operatortype_append(OBJECT_OT_shade_flat); - WM_operatortype_append(OBJECT_OT_bake_image); WM_operatortype_append(OBJECT_OT_parent_set); WM_operatortype_append(OBJECT_OT_parent_no_inverse_set); @@ -197,6 +196,8 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_hook_assign); WM_operatortype_append(OBJECT_OT_hook_reset); WM_operatortype_append(OBJECT_OT_hook_recenter); + + WM_operatortype_append(OBJECT_OT_bake_image); } void ED_operatormacros_object(void) diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index a077357d03e..4622962bac5 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -290,7 +290,7 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn) break; } break; - case NC_IMAGE: + case NC_IMAGE: ED_area_tag_redraw(sa); break; case NC_SPACE: diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index 2615be1440a..28d88e1f8b4 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -197,7 +197,7 @@ struct Image; struct Object; void RE_shade_external(struct Render *re, struct ShadeInput *shi, struct ShadeResult *shr); -int RE_bake_shade_all_selected(struct Render *re, int type, struct Object *actob); +int RE_bake_shade_all_selected(struct Render *re, int type, struct Object *actob, short *do_update); struct Image *RE_bake_shade_get_image(void); #endif /* RE_SHADER_EXT_H */ diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index cae6c640f8b..c55632b36dc 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -1988,6 +1988,8 @@ typedef struct BakeShade { char *rect_mask; /* bake pixel mask */ float dxco[3], dyco[3]; + + short *do_update; } BakeShade; /* bake uses a char mask to know what has been baked */ @@ -2587,6 +2589,11 @@ static void *do_bake_thread(void *bs_v) /* fast threadsafe break test */ if(R.test_break(R.tbh)) break; + + /* access is not threadsafe but since its just true/false probably ok + * only used for interactive baking */ + if(bs->do_update) + *bs->do_update= TRUE; } bs->ready= 1; @@ -2596,7 +2603,7 @@ static void *do_bake_thread(void *bs_v) /* using object selection tags, the faces with UV maps get baked */ /* render should have been setup */ /* returns 0 if nothing was handled */ -int RE_bake_shade_all_selected(Render *re, int type, Object *actob) +int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_update) { BakeShade handles[BLENDER_MAX_THREADS]; ListBase threads; @@ -2645,6 +2652,8 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob) handles[a].zspan= MEM_callocN(sizeof(ZSpan), "zspan for bake"); handles[a].usemask = usemask; + + handles[a].do_update = do_update; /* use to tell the view to update */ BLI_insert_thread(&threads, &handles[a]); } -- cgit v1.2.3 From 2d8c3076b295ca27c07a89956c5e9e5d4acfcdac Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 30 Dec 2009 15:45:41 +0000 Subject: fix for scons --- source/blender/editors/object/SConscript | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/SConscript b/source/blender/editors/object/SConscript index 06d68cd1021..fd799ef5fa7 100644 --- a/source/blender/editors/object/SConscript +++ b/source/blender/editors/object/SConscript @@ -6,6 +6,7 @@ sources = env.Glob('*.c') incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf' incs += ' ../../windowmanager #/intern/guardedalloc' incs += ' ../../makesrna ../../python ../../ikplugin' +incs += ' ../../render/extern/include ../../gpu' # for object_bake.c defs = [] -- cgit v1.2.3 From 74829be79a0828df182ff2541e6d7c0bccf41305 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Wed, 30 Dec 2009 15:58:59 +0000 Subject: Fix for [#20430] Boids options for Flying and climbing do not work * Boids didn't yet use global gravity --- source/blender/blenkernel/BKE_particle.h | 1 + source/blender/blenkernel/intern/boids.c | 20 ++++++++++---------- source/blender/blenkernel/intern/particle.c | 4 ++++ source/blender/blenkernel/intern/particle_system.c | 2 +- 4 files changed, 16 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index 2199240d77b..32202d9d462 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -203,6 +203,7 @@ int psys_check_enabled(struct Object *ob, struct ParticleSystem *psys); int psys_check_edited(struct ParticleSystem *psys); void psys_check_group_weights(struct ParticleSettings *part); +int psys_uses_gravity(struct ParticleSimulationData *sim); /* free */ void psys_free_settings(struct ParticleSettings *part); diff --git a/source/blender/blenkernel/intern/boids.c b/source/blender/blenkernel/intern/boids.c index 389009cca76..838e595d83f 100644 --- a/source/blender/blenkernel/intern/boids.c +++ b/source/blender/blenkernel/intern/boids.c @@ -557,8 +557,8 @@ static int rule_average_speed(BoidRule *rule, BoidBrainData *bbd, BoidValues *va add_v3_v3v3(bbd->wanted_co, bbd->wanted_co, vec); /* leveling */ - if(asbr->level > 0.0f) { - project_v3_v3v3(vec, bbd->wanted_co, bbd->sim->psys->part->acc); + if(asbr->level > 0.0f && psys_uses_gravity(bbd->sim)) { + project_v3_v3v3(vec, bbd->wanted_co, bbd->sim->scene->physics_settings.gravity); mul_v3_fl(vec, asbr->level); sub_v3_v3v3(bbd->wanted_co, bbd->wanted_co, vec); } @@ -574,8 +574,8 @@ static int rule_average_speed(BoidRule *rule, BoidBrainData *bbd, BoidValues *va } /* leveling */ - if(asbr->level > 0.0f) { - project_v3_v3v3(vec, bbd->wanted_co, bbd->sim->psys->part->acc); + if(asbr->level > 0.0f && psys_uses_gravity(bbd->sim)) { + project_v3_v3v3(vec, bbd->wanted_co, bbd->sim->scene->physics_settings.gravity); mul_v3_fl(vec, asbr->level); sub_v3_v3v3(bbd->wanted_co, bbd->wanted_co, vec); } @@ -1002,8 +1002,8 @@ void boid_brain(BoidBrainData *bbd, int p, ParticleData *pa) if(dot_v2v2(cvel, dir) > 0.95f / mul || len <= state->rule_fuzziness) { /* try to reach goal at highest point of the parabolic path */ cur_v = len_v2(pa->prev_state.vel); - z_v = sasqrt(-2.0f * bbd->part->acc[2] * bbd->wanted_co[2]); - ground_v = len_v2(bbd->wanted_co)*sasqrt(-0.5f * bbd->part->acc[2] / bbd->wanted_co[2]); + z_v = sasqrt(-2.0f * bbd->sim->scene->physics_settings.gravity[2] * bbd->wanted_co[2]); + ground_v = len_v2(bbd->wanted_co)*sasqrt(-0.5f * bbd->sim->scene->physics_settings.gravity[2] / bbd->wanted_co[2]); len = sasqrt((ground_v-cur_v)*(ground_v-cur_v) + z_v*z_v); @@ -1061,12 +1061,12 @@ void boid_body(BoidBrainData *bbd, ParticleData *pa) pa_mass*=pa->size; /* if boids can't fly they fall to the ground */ - if((boids->options & BOID_ALLOW_FLIGHT)==0 && ELEM(bpa->data.mode, eBoidMode_OnLand, eBoidMode_Climbing)==0 && bbd->part->acc[2] != 0.0f) + if((boids->options & BOID_ALLOW_FLIGHT)==0 && ELEM(bpa->data.mode, eBoidMode_OnLand, eBoidMode_Climbing)==0 && psys_uses_gravity(bbd->sim)) bpa->data.mode = eBoidMode_Falling; if(bpa->data.mode == eBoidMode_Falling) { /* Falling boids are only effected by gravity. */ - acc[2] = bbd->part->acc[2]; + acc[2] = bbd->sim->scene->physics_settings.gravity[2]; } else { /* figure out acceleration */ @@ -1221,7 +1221,7 @@ void boid_body(BoidBrainData *bbd, ParticleData *pa) switch(bpa->data.mode) { case eBoidMode_InAir: { - float grav[3] = {0.0f, 0.0f, bbd->part->acc[2] < 0.0f ? -1.0f : 0.0f}; + float grav[3] = {0.0f, 0.0f, bbd->sim->scene->physics_settings.gravity[2] < 0.0f ? -1.0f : 0.0f}; /* don't take forward acceleration into account (better banking) */ if(dot_v3v3(bpa->data.acc, pa->state.vel) > 0.0f) { @@ -1253,7 +1253,7 @@ void boid_body(BoidBrainData *bbd, ParticleData *pa) } case eBoidMode_Falling: { - float grav[3] = {0.0f, 0.0f, bbd->part->acc[2] < 0.0f ? -1.0f : 0.0f}; + float grav[3] = {0.0f, 0.0f, bbd->sim->scene->physics_settings.gravity[2] < 0.0f ? -1.0f : 0.0f}; /* gather apparent gravity */ VECADDFAC(bpa->gravity, bpa->gravity, grav, dtime); diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 992f63520ab..41ca5e1804a 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -361,6 +361,10 @@ void psys_check_group_weights(ParticleSettings *part) BLI_freelistN(&part->dupliweights); } } +int psys_uses_gravity(ParticleSimulationData *sim) +{ + return sim->scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY && sim->psys->part && sim->psys->part->effector_weights->global_gravity != 0.0f; +} /************************************************/ /* Freeing stuff */ /************************************************/ diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index bf8721fd0b0..767dc8fcf89 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -2332,7 +2332,7 @@ static void apply_particle_forces(ParticleSimulationData *sim, int p, float dfra mul_v3_fl(force,1.0f/pa_mass); /* add global acceleration (gravitation) */ - if(sim->scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY + if(psys_uses_gravity(sim) /* normal gravity is too strong for hair so it's disabled by default */ && (part->type != PART_HAIR || part->effector_weights->flag & EFF_WEIGHT_DO_HAIR)) { float gravity[3]; -- cgit v1.2.3 From c96305cea15a13d8c8217ed00f287ed642be404e Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Wed, 30 Dec 2009 16:18:06 +0000 Subject: Fix for poor negliected Makefiles. Kent --- source/blender/editors/object/Makefile | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/Makefile b/source/blender/editors/object/Makefile index fd2af305d87..7c081355ed5 100644 --- a/source/blender/editors/object/Makefile +++ b/source/blender/editors/object/Makefile @@ -48,6 +48,8 @@ CPPFLAGS += -I../../makesrna CPPFLAGS += -I../../python CPPFLAGS += -I../../imbuf CPPFLAGS += -I../../ikplugin +CPPFLAGS += -I../../gpu +CPPFLAGS += -I../../render/extern/include # own include -- cgit v1.2.3 From 9bf3ea58d295e62c0d8d67cf98da3ee89c66aaea Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Wed, 30 Dec 2009 19:55:41 +0000 Subject: Scons missed include for pthread. --- source/blender/editors/object/SConscript | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/object/SConscript b/source/blender/editors/object/SConscript index fd799ef5fa7..0a94de255cb 100644 --- a/source/blender/editors/object/SConscript +++ b/source/blender/editors/object/SConscript @@ -10,6 +10,13 @@ incs += ' ../../render/extern/include ../../gpu' # for object_bake.c defs = [] +if env['OURPLATFORM'] == 'linux2': + cflags='-pthread' + incs += ' ../../../extern/binreloc/include' + +if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'): + incs += ' ' + env['BF_PTHREADS_INC'] + if not env['WITH_BF_PYTHON']: defs.append('DISABLE_PYTHON') -- cgit v1.2.3 From 3702998fec6d237eb567bb8353ac93c8d4a68d4c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 30 Dec 2009 20:15:28 +0000 Subject: python macro operators didnt have a compatible draw function assigned. also remove duplicate define. --- source/blender/editors/object/object_intern.h | 1 - source/blender/python/intern/bpy_operator_wrap.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index 10ff93c540f..d47cecb762b 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -79,7 +79,6 @@ void OBJECT_OT_restrictview_clear(struct wmOperatorType *ot); void OBJECT_OT_proxy_make(struct wmOperatorType *ot); void OBJECT_OT_shade_smooth(struct wmOperatorType *ot); void OBJECT_OT_shade_flat(struct wmOperatorType *ot); -void OBJECT_OT_bake_image(struct wmOperatorType *ot); /* object_select.c */ void OBJECT_OT_select_all(struct wmOperatorType *ot); diff --git a/source/blender/python/intern/bpy_operator_wrap.c b/source/blender/python/intern/bpy_operator_wrap.c index 3bd18d98563..b3f281b4b3f 100644 --- a/source/blender/python/intern/bpy_operator_wrap.c +++ b/source/blender/python/intern/bpy_operator_wrap.c @@ -255,9 +255,9 @@ static int PYTHON_OT_poll(bContext *C, wmOperatorType *ot) return PYTHON_OT_generic(PYOP_POLL, C, ot, NULL, NULL, NULL); } -static void PYTHON_OT_draw(bContext *C, wmOperator *op, uiLayout *layout) +static void PYTHON_OT_draw(bContext *C, wmOperator *op) { - PYTHON_OT_generic(PYOP_DRAW, C, op->type, op, NULL, layout); + PYTHON_OT_generic(PYOP_DRAW, C, op->type, op, NULL, op->layout); } -- cgit v1.2.3 From b00cddeb66f2b9f51cad15ed597a6ca975bd31dd Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 30 Dec 2009 22:14:32 +0000 Subject: Macro registration using the normal rna registration methods (like operators). bpy.types.register(MacroClass) instead of bpy.ops.add_macro(MacroClass) The rest is unchanged. Also remove some now unused code for the old registration methods (there's still some remaining). --- source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/rna_internal.h | 1 + source/blender/makesrna/intern/rna_wm.c | 96 ++++++++++++++++++++++ source/blender/makesrna/intern/rna_wm_api.c | 29 +++++++ source/blender/python/intern/bpy_operator.c | 4 +- source/blender/python/intern/bpy_operator_wrap.c | 61 ++++++++++---- source/blender/python/intern/bpy_rna.c | 6 +- source/blender/python/intern/bpy_rna.h | 3 + source/blender/windowmanager/intern/wm_operators.c | 1 + 9 files changed, 179 insertions(+), 23 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 2528af6b57a..908d832daf1 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -319,6 +319,7 @@ extern StructRNA RNA_Object; extern StructRNA RNA_ObjectBase; extern StructRNA RNA_ObstacleFluidSettings; extern StructRNA RNA_Operator; +extern StructRNA RNA_Macro; extern StructRNA RNA_OperatorFileListElement; extern StructRNA RNA_OperatorMousePath; extern StructRNA RNA_OperatorProperties; diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 5bb3c82395d..22b8388f693 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -211,6 +211,7 @@ void RNA_api_armature_edit_bone(StructRNA *srna); void RNA_api_drivers(StructRNA *srna); void RNA_api_image(struct StructRNA *srna); void RNA_api_operator(struct StructRNA *srna); +void RNA_api_macro(struct StructRNA *srna); void RNA_api_keyconfig(struct StructRNA *srna); void RNA_api_keyingset(struct StructRNA *srna); void RNA_api_keymap(struct StructRNA *srna); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 7abba3c004a..e68681919eb 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -692,6 +692,7 @@ static void operator_draw(bContext *C, wmOperator *op) } void operator_wrapper(wmOperatorType *ot, void *userdata); +void macro_wrapper(wmOperatorType *ot, void *userdata); static char _operator_idname[OP_MAX_TYPENAME]; static char _operator_name[OP_MAX_TYPENAME]; @@ -763,12 +764,84 @@ static StructRNA *rna_Operator_register(const bContext *C, ReportList *reports, return dummyot.ext.srna; } + +static StructRNA *rna_MacroOperator_register(const bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) +{ + wmOperatorType dummyot = {0}; + wmOperator dummyop= {0}; + PointerRNA dummyotr; + int have_function[4]; + + /* setup dummy operator & operator type to store static properties in */ + dummyop.type= &dummyot; + dummyot.idname= _operator_idname; /* only assigne the pointer, string is NULL'd */ + dummyot.name= _operator_name; /* only assigne the pointer, string is NULL'd */ + dummyot.description= _operator_descr; /* only assigne the pointer, string is NULL'd */ + RNA_pointer_create(NULL, &RNA_Macro, &dummyop, &dummyotr); + + /* validate the python class */ + if(validate(&dummyotr, data, have_function) != 0) + return NULL; + + { /* convert foo.bar to FOO_OT_bar + * allocate the description and the idname in 1 go */ + int idlen = strlen(_operator_idname) + 4; + int namelen = strlen(_operator_name) + 1; + int desclen = strlen(_operator_descr) + 1; + char *ch, *ch_arr; + ch_arr= ch= MEM_callocN(sizeof(char) * (idlen + namelen + desclen), "_operator_idname"); /* 2 terminators and 3 to convert a.b -> A_OT_b */ + WM_operator_bl_idname(ch, _operator_idname); /* convert the idname from python */ + dummyot.idname= ch; + ch += idlen; + strcpy(ch, _operator_name); + dummyot.name = ch; + ch += namelen; + strcpy(ch, _operator_descr); + dummyot.description = ch; + } + + if(strlen(identifier) >= sizeof(dummyop.idname)) { + BKE_reportf(reports, RPT_ERROR, "registering operator class: '%s' is too long, maximum length is %d.", identifier, sizeof(dummyop.idname)); + return NULL; + } + + /* check if we have registered this operator type before, and remove it */ + { + wmOperatorType *ot= WM_operatortype_exists(dummyot.idname); + if(ot && ot->ext.srna) + rna_Operator_unregister(C, ot->ext.srna); + } + + /* create a new menu type */ + dummyot.ext.srna= RNA_def_struct(&BLENDER_RNA, dummyot.idname, "Operator"); + dummyot.ext.data= data; + dummyot.ext.call= call; + dummyot.ext.free= free; + + dummyot.pyop_poll= (have_function[0])? operator_poll: NULL; + dummyot.ui= (have_function[3])? operator_draw: NULL; + + WM_operatortype_append_macro_ptr(macro_wrapper, (void *)&dummyot); + + /* update while blender is running */ + if(C) + WM_main_add_notifier(NC_SCREEN|NA_EDITED, NULL); + + return dummyot.ext.srna; +} + static StructRNA* rna_Operator_refine(PointerRNA *opr) { wmOperator *op= (wmOperator*)opr->data; return (op->type && op->type->ext.srna)? op->type->ext.srna: &RNA_Operator; } +static StructRNA* rna_MacroOperator_refine(PointerRNA *opr) +{ + wmOperator *op= (wmOperator*)opr->data; + return (op->type && op->type->ext.srna)? op->type->ext.srna: &RNA_Macro; +} + #else static void rna_def_operator(BlenderRNA *brna) @@ -832,6 +905,8 @@ static void rna_def_macro_operator(BlenderRNA *brna) srna= RNA_def_struct(brna, "Macro", NULL); RNA_def_struct_ui_text(srna, "Macro Operator", "Storage of a macro operator being executed, or registered after execution."); RNA_def_struct_sdna(srna, "wmOperator"); + RNA_def_struct_refine_func(srna, "rna_MacroOperator_refine"); + RNA_def_struct_register_funcs(srna, "rna_MacroOperator_register", "rna_Operator_unregister"); prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); @@ -844,6 +919,27 @@ static void rna_def_macro_operator(BlenderRNA *brna) RNA_def_property_struct_type(prop, "OperatorProperties"); RNA_def_property_ui_text(prop, "Properties", ""); RNA_def_property_pointer_funcs(prop, "rna_Operator_properties_get", NULL, NULL); + + /* Registration */ + prop= RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "type->idname"); + RNA_def_property_string_maxlength(prop, OP_MAX_TYPENAME); /* else it uses the pointer size! */ + RNA_def_property_flag(prop, PROP_REGISTER); + + prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "type->name"); + RNA_def_property_string_maxlength(prop, 1024); /* else it uses the pointer size! */ + RNA_def_property_flag(prop, PROP_REGISTER); + + prop= RNA_def_property(srna, "bl_register", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", OPTYPE_REGISTER); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + + prop= RNA_def_property(srna, "bl_undo", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type->flag", OPTYPE_UNDO); + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); + + RNA_api_macro(srna); } static void rna_def_operator_type_macro(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c index 1afedf1c6a6..9ed6046ecd0 100644 --- a/source/blender/makesrna/intern/rna_wm_api.c +++ b/source/blender/makesrna/intern/rna_wm_api.c @@ -237,6 +237,35 @@ void RNA_api_operator(StructRNA *srna) RNA_def_pointer(func, "context", "Context", "", ""); } +void RNA_api_macro(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + /* utility, not for registering */ + func= RNA_def_function(srna, "report", "rna_Operator_report"); + parm= RNA_def_enum(func, "type", wm_report_items, 0, "Type", ""); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_ENUM_FLAG); + parm= RNA_def_string(func, "message", "", 0, "Report Message", ""); + RNA_def_property_flag(parm, PROP_REQUIRED); + + + /* Registration */ + + /* poll */ + func= RNA_def_function(srna, "poll", NULL); + RNA_def_function_ui_description(func, "Test if the operator can be called or not."); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); + RNA_def_function_return(func, RNA_def_boolean(func, "visible", 1, "", "")); + RNA_def_pointer(func, "context", "Context", "", ""); + + /* draw */ + func= RNA_def_function(srna, "draw", NULL); + RNA_def_function_ui_description(func, "Draw function for the operator."); + RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL); + RNA_def_pointer(func, "context", "Context", "", ""); +} + void RNA_api_keyconfig(StructRNA *srna) { FunctionRNA *func; diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index 101f3619da4..e7cce8e7812 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -245,7 +245,7 @@ PyObject *BPY_operator_module( void ) static PyMethodDef pyop_dir_meth = {"dir", (PyCFunction) pyop_dir, METH_NOARGS, NULL}; static PyMethodDef pyop_getrna_meth = {"get_rna", (PyCFunction) pyop_getrna, METH_O, NULL}; // static PyMethodDef pyop_add_meth = {"add", (PyCFunction) PYOP_wrap_add, METH_O, NULL}; - static PyMethodDef pyop_add_macro_meth ={"add_macro", (PyCFunction) PYOP_wrap_add_macro, METH_O, NULL}; +// static PyMethodDef pyop_add_macro_meth ={"add_macro", (PyCFunction) PYOP_wrap_add_macro, METH_O, NULL}; static PyMethodDef pyop_macro_def_meth ={"macro_define", (PyCFunction) PYOP_wrap_macro_define, METH_VARARGS, NULL}; static PyMethodDef pyop_remove_meth = {"remove", (PyCFunction) PYOP_wrap_remove, METH_O, NULL}; @@ -257,7 +257,7 @@ PyObject *BPY_operator_module( void ) PyModule_AddObject( submodule, "dir", PyCFunction_New(&pyop_dir_meth, NULL) ); PyModule_AddObject( submodule, "get_rna", PyCFunction_New(&pyop_getrna_meth, NULL) ); // PyModule_AddObject( submodule, "add", PyCFunction_New(&pyop_add_meth, NULL) ); - PyModule_AddObject( submodule, "add_macro", PyCFunction_New(&pyop_add_macro_meth, NULL) ); +// PyModule_AddObject( submodule, "add_macro", PyCFunction_New(&pyop_add_macro_meth, NULL) ); PyModule_AddObject( submodule, "macro_define",PyCFunction_New(&pyop_macro_def_meth, NULL) ); PyModule_AddObject( submodule, "remove", PyCFunction_New(&pyop_remove_meth, NULL) ); diff --git a/source/blender/python/intern/bpy_operator_wrap.c b/source/blender/python/intern/bpy_operator_wrap.c index b3f281b4b3f..0a468f2de73 100644 --- a/source/blender/python/intern/bpy_operator_wrap.c +++ b/source/blender/python/intern/bpy_operator_wrap.c @@ -299,7 +299,47 @@ void operator_wrapper(wmOperatorType *ot, void *userdata) } } +void macro_wrapper(wmOperatorType *ot, void *userdata) +{ + wmOperatorType *data = (wmOperatorType *)userdata; + /* only copy a couple of things, the rest is set by the macro registration */ + ot->name = data->name; + ot->idname = data->idname; + ot->description = data->description; + ot->flag |= data->flag; /* append flags to the one set by registration */ + ot->pyop_poll = data->pyop_poll; + ot->ui = data->ui; + ot->ext = data->ext; + + RNA_struct_blender_type_set(ot->ext.srna, ot); + + + /* Can't use this because it returns a dict proxy + * + * item= PyObject_GetAttrString(py_class, "__dict__"); + */ + { + PyObject *py_class = ot->ext.data; + PyObject *item= ((PyTypeObject*)py_class)->tp_dict; + if(item) { + /* only call this so pyrna_deferred_register_props gives a useful error + * WM_operatortype_append_ptr will call RNA_def_struct_identifier + * later */ + RNA_def_struct_identifier(ot->srna, ot->idname); + + if(pyrna_deferred_register_props(ot->srna, item)!=0) { + /* failed to register operator props */ + PyErr_Print(); + PyErr_Clear(); + + } + } + else { + PyErr_Clear(); + } + } +} @@ -588,11 +628,11 @@ PyObject *PYOP_wrap_macro_define(PyObject *self, PyObject *args) wmOperatorType *ot; wmOperatorTypeMacro *otmacro; PyObject *macro; - PyObject *item; PointerRNA ptr_otmacro; + StructRNA *srna; char *opname; - char *macroname; + const char *macroname; if (!PyArg_ParseTuple(args, "Os:_bpy.ops.macro_define", ¯o, &opname)) return NULL; @@ -603,21 +643,8 @@ PyObject *PYOP_wrap_macro_define(PyObject *self, PyObject *args) } /* identifiers */ - item= PyObject_GetAttrString(macro, PYOP_ATTR_IDNAME_BL); - - if (!item) { - item= PyObject_GetAttrString(macro, PYOP_ATTR_IDNAME); - - if (!item) { - PyErr_Format(PyExc_ValueError, "Macro Define: not a valid Macro class"); - } else { - macroname= _PyUnicode_AsString(item); - PyErr_Format(PyExc_ValueError, "Macro Define: '%s' hasn't been registered yet", macroname); - } - return NULL; - } - - macroname= _PyUnicode_AsString(item); + srna= srna_from_self(macro); + macroname = RNA_struct_identifier(srna); ot = WM_operatortype_exists(macroname); diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 7c4e49e93e3..c8f0a29ca64 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -244,8 +244,6 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) #endif -static StructRNA *pyrna_struct_as_srna(PyObject *self); - static int pyrna_struct_compare( BPy_StructRNA * a, BPy_StructRNA * b ) { return (a->ptr.data==b->ptr.data) ? 0 : -1; @@ -3354,7 +3352,7 @@ PyObject *BPY_rna_props( void ) return submodule; } -static StructRNA *pyrna_struct_as_srna(PyObject *self) +StructRNA *pyrna_struct_as_srna(PyObject *self) { BPy_StructRNA *py_srna = NULL; StructRNA *srna; @@ -3395,7 +3393,7 @@ static StructRNA *pyrna_struct_as_srna(PyObject *self) /* Orphan functions, not sure where they should go */ /* get the srna for methods attached to types */ /* */ -static StructRNA *srna_from_self(PyObject *self) +StructRNA *srna_from_self(PyObject *self) { /* a bit sloppy but would cause a very confusing bug if * an error happened to be set here */ diff --git a/source/blender/python/intern/bpy_rna.h b/source/blender/python/intern/bpy_rna.h index 37f6af36726..74a16b43dc1 100644 --- a/source/blender/python/intern/bpy_rna.h +++ b/source/blender/python/intern/bpy_rna.h @@ -62,6 +62,9 @@ typedef struct { /* cheap trick */ #define BPy_BaseTypeRNA BPy_PropertyRNA +StructRNA *srna_from_self(PyObject *self); +StructRNA *pyrna_struct_as_srna(PyObject *self); + void BPY_rna_init( void ); PyObject *BPY_rna_module( void ); void BPY_update_rna_module( void ); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index f7054af9443..e9bf1be5861 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -360,6 +360,7 @@ void WM_operatortype_append_macro_ptr(void (*opfunc)(wmOperatorType*, void*), vo ot= MEM_callocN(sizeof(wmOperatorType), "operatortype"); ot->srna= RNA_def_struct(&BLENDER_RNA, "", "OperatorProperties"); + ot->flag= OPTYPE_MACRO; ot->exec= wm_macro_exec; ot->invoke= wm_macro_invoke; ot->modal= wm_macro_modal; -- cgit v1.2.3 From 891e87f8f8acbe4d3ca21a52d5790f0288bbce75 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 30 Dec 2009 22:23:50 +0000 Subject: Fix crash in View -> Navigation menu (not all view3d regions have a regionview3d, especially not menus. Meh, stupid work around) --- source/blender/editors/space_view3d/view3d_edit.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 4ce7aa48392..9b0712ac255 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -686,7 +686,12 @@ static int ED_operator_view3d_rotate(bContext *C) return 0; } else { RegionView3D *rv3d= CTX_wm_region_view3d(C); - return rv3d->viewlock == 0; + /* rv3d is null in menus, but it's ok when the menu is clicked on */ + /* XXX of course, this doesn't work with quadview + * Maybe having exec return PASSTHROUGH would be better than polling here + * Poll functions are full of problems anyway. + * */ + return rv3d == NULL || rv3d->viewlock == 0; } } -- cgit v1.2.3 From 26de5e5f2bc14de8b3015a71492b2d97115b6102 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 30 Dec 2009 22:35:22 +0000 Subject: fix crash on baking from selected to active, however need to validate this against 2.4x to make sure displacement for eg gives the same results --- source/blender/render/intern/source/rendercore.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index c55632b36dc..23875b536c9 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2254,9 +2254,7 @@ static int bake_check_intersect(Isect *is, int ob, RayFace *face) static int bake_intersect_tree(RayObject* raytree, Isect* isect, float *start, float *dir, float sign, float *hitco, float *dist) { - //TODO - assert( 0 ); -#if 0 + //TODO, validate against blender 2.4x, results may have changed. float maxdist; int hit; @@ -2266,15 +2264,20 @@ static int bake_intersect_tree(RayObject* raytree, Isect* isect, float *start, f else maxdist= FLT_MAX + R.r.bake_biasdist; - //TODO normalized direction? - VECADDFAC(isect->start, start, dir, -R.r.bake_biasdist); - isect->dir[0] = dir[0]*sign; - isect->dir[1] = dir[1]*sign; - isect->dir[2] = dir[2]*sign; + /* 'dir' is always normalized */ + VECADDFAC(isect->start, start, dir, -R.r.bake_biasdist); + + isect->vec[0] = dir[0]*maxdist*sign; + isect->vec[1] = dir[1]*maxdist*sign; + isect->vec[2] = dir[2]*maxdist*sign; + isect->labda = maxdist; + /* TODO, 2.4x had this... + hit = RE_ray_tree_intersect_check(R.raytree, isect, bake_check_intersect); + ...the active object may NOT be ignored in some cases. + */ hit = RE_rayobject_raycast(raytree, isect); - //TODO bake_check_intersect if(hit) { hitco[0] = isect->start[0] + isect->labda*isect->vec[0]; hitco[1] = isect->start[1] + isect->labda*isect->vec[1]; @@ -2284,8 +2287,6 @@ static int bake_intersect_tree(RayObject* raytree, Isect* isect, float *start, f } return hit; -#endif - return 0; } static void bake_set_vlr_dxyco(BakeShade *bs, float *uv1, float *uv2, float *uv3) -- cgit v1.2.3 From 453945e9e3e2ef360976e57a01c587c3c8a0bb93 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 30 Dec 2009 22:51:44 +0000 Subject: remove python api cruft from custom operator registration --- source/blender/python/intern/bpy_operator.c | 6 - source/blender/python/intern/bpy_operator_wrap.c | 539 ----------------------- source/blender/python/intern/bpy_operator_wrap.h | 4 - source/blender/python/intern/bpy_util.c | 89 ---- source/blender/python/intern/bpy_util.h | 10 - 5 files changed, 648 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index e7cce8e7812..d5f4b2f6d08 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -244,10 +244,7 @@ PyObject *BPY_operator_module( void ) static PyMethodDef pyop_as_string_meth ={"as_string", (PyCFunction) pyop_as_string, METH_VARARGS, NULL}; static PyMethodDef pyop_dir_meth = {"dir", (PyCFunction) pyop_dir, METH_NOARGS, NULL}; static PyMethodDef pyop_getrna_meth = {"get_rna", (PyCFunction) pyop_getrna, METH_O, NULL}; -// static PyMethodDef pyop_add_meth = {"add", (PyCFunction) PYOP_wrap_add, METH_O, NULL}; -// static PyMethodDef pyop_add_macro_meth ={"add_macro", (PyCFunction) PYOP_wrap_add_macro, METH_O, NULL}; static PyMethodDef pyop_macro_def_meth ={"macro_define", (PyCFunction) PYOP_wrap_macro_define, METH_VARARGS, NULL}; - static PyMethodDef pyop_remove_meth = {"remove", (PyCFunction) PYOP_wrap_remove, METH_O, NULL}; PyObject *submodule = PyModule_New("_bpy.ops"); PyDict_SetItemString(PySys_GetObject("modules"), "_bpy.ops", submodule); @@ -256,10 +253,7 @@ PyObject *BPY_operator_module( void ) PyModule_AddObject( submodule, "as_string",PyCFunction_New(&pyop_as_string_meth,NULL) ); PyModule_AddObject( submodule, "dir", PyCFunction_New(&pyop_dir_meth, NULL) ); PyModule_AddObject( submodule, "get_rna", PyCFunction_New(&pyop_getrna_meth, NULL) ); -// PyModule_AddObject( submodule, "add", PyCFunction_New(&pyop_add_meth, NULL) ); -// PyModule_AddObject( submodule, "add_macro", PyCFunction_New(&pyop_add_macro_meth, NULL) ); PyModule_AddObject( submodule, "macro_define",PyCFunction_New(&pyop_macro_def_meth, NULL) ); - PyModule_AddObject( submodule, "remove", PyCFunction_New(&pyop_remove_meth, NULL) ); return submodule; } diff --git a/source/blender/python/intern/bpy_operator_wrap.c b/source/blender/python/intern/bpy_operator_wrap.c index 0a468f2de73..11f36d5f8ec 100644 --- a/source/blender/python/intern/bpy_operator_wrap.c +++ b/source/blender/python/intern/bpy_operator_wrap.c @@ -42,226 +42,6 @@ #include "../generic/bpy_internal_import.h" // our own imports -#define PYOP_ATTR_UINAME "bl_label" -#define PYOP_ATTR_IDNAME "bl_idname" /* the name given by python */ -#define PYOP_ATTR_IDNAME_BL "_bl_idname" /* our own name converted into blender syntax, users wont see this */ -#define PYOP_ATTR_DESCRIPTION "__doc__" /* use pythons docstring */ -#define PYOP_ATTR_REGISTER "bl_register" /* True/False. if this python operator should be registered */ -#define PYOP_ATTR_UNDO "bl_undo" /* True/False. if this python operator should be undone */ - -static struct BPY_flag_def pyop_ret_flags[] = { - {"RUNNING_MODAL", OPERATOR_RUNNING_MODAL}, - {"CANCELLED", OPERATOR_CANCELLED}, - {"FINISHED", OPERATOR_FINISHED}, - {"PASS_THROUGH", OPERATOR_PASS_THROUGH}, - {NULL, 0} -}; - -/* This invoke function can take events and - * - * It is up to the pyot->py_invoke() python func to run pyot->py_exec() - * the invoke function gets the keyword props as a dict, but can parse them - * to py_exec like this... - * - * def op_exec(x=-1, y=-1, text=""): - * ... - * - * def op_invoke(event, prop_defs): - * prop_defs['x'] = event['x'] - * ... - * op_exec(**prop_defs) - * - * when there is no invoke function, C calls exec and sets the props. - * python class instance is stored in op->customdata so exec() can access - */ - - -#define PYOP_EXEC 1 -#define PYOP_INVOKE 2 -#define PYOP_POLL 3 -#define PYOP_DRAW 4 - -extern void BPY_update_modules( void ); //XXX temp solution - -static int PYTHON_OT_generic(int mode, bContext *C, wmOperatorType *ot, wmOperator *op, wmEvent *event, uiLayout *layout) -{ - PyObject *py_class = ot->pyop_data; - PyObject *args; - PyObject *ret= NULL, *py_class_instance, *item= NULL; - int ret_flag= (mode==PYOP_POLL ? 0:OPERATOR_CANCELLED); - PointerRNA ptr_context; - PointerRNA ptr_operator; - - PyGILState_STATE gilstate; - - bpy_context_set(C, &gilstate); - - args = PyTuple_New(1); - - /* poll has no 'op', should be ok still */ - /* use an rna instance as the first arg */ - RNA_pointer_create(NULL, &RNA_Operator, op, &ptr_operator); - PyTuple_SET_ITEM(args, 0, pyrna_struct_CreatePyObject(&ptr_operator)); - - py_class_instance = PyObject_Call(py_class, args, NULL); - Py_DECREF(args); - - if (py_class_instance==NULL) { /* Initializing the class worked, now run its invoke function */ - PyErr_Print(); - PyErr_Clear(); - } - else { - RNA_pointer_create(NULL, &RNA_Context, C, &ptr_context); - - if (mode==PYOP_INVOKE) { - PointerRNA ptr_event; - item= PyObject_GetAttrString(py_class, "invoke"); - args = PyTuple_New(3); - - RNA_pointer_create(NULL, &RNA_Event, event, &ptr_event); - - // PyTuple_SET_ITEM "steals" object reference, it is - // an object passed shouldn't be DECREF'ed - PyTuple_SET_ITEM(args, 1, pyrna_struct_CreatePyObject(&ptr_context)); - PyTuple_SET_ITEM(args, 2, pyrna_struct_CreatePyObject(&ptr_event)); - } - else if (mode==PYOP_EXEC) { - item= PyObject_GetAttrString(py_class, "execute"); - args = PyTuple_New(2); - - PyTuple_SET_ITEM(args, 1, pyrna_struct_CreatePyObject(&ptr_context)); - } - else if (mode==PYOP_POLL) { - item= PyObject_GetAttrString(py_class, "poll"); - args = PyTuple_New(2); - PyTuple_SET_ITEM(args, 1, pyrna_struct_CreatePyObject(&ptr_context)); - } - else if (mode==PYOP_DRAW) { - PointerRNA ptr_layout; - item= PyObject_GetAttrString(py_class, "draw"); - args = PyTuple_New(2); - - RNA_pointer_create(NULL, &RNA_UILayout, layout, &ptr_layout); - - // PyTuple_SET_ITEM "steals" object reference, it is - // an object passed shouldn't be DECREF'ed - PyTuple_SET_ITEM(args, 1, pyrna_struct_CreatePyObject(&ptr_context)); -#if 0 - PyTuple_SET_ITEM(args, 2, pyrna_struct_CreatePyObject(&ptr_layout)); -#else - { - /* mimic panels */ - PyObject *py_layout= pyrna_struct_CreatePyObject(&ptr_layout); - PyObject *pyname= PyUnicode_FromString("layout"); - - if(PyObject_GenericSetAttr(py_class_instance, pyname, py_layout)) { - PyErr_Print(); - PyErr_Clear(); - } - else { - Py_DECREF(py_layout); - } - - Py_DECREF(pyname); - } -#endif - } - PyTuple_SET_ITEM(args, 0, py_class_instance); - - ret = PyObject_Call(item, args, NULL); - - Py_DECREF(args); - Py_DECREF(item); - } - - if (ret == NULL) { /* covers py_class_instance failing too */ - if(op) - BPy_errors_to_report(op->reports); - } - else { - if (mode==PYOP_POLL) { - if (PyBool_Check(ret) == 0) { - PyErr_Format(PyExc_ValueError, "Python operator '%s.poll', did not return a bool value", ot->idname); - BPy_errors_to_report(op ? op->reports:NULL); /* prints and clears if NULL given */ - } - else { - ret_flag= ret==Py_True ? 1:0; - } - } else if(mode==PYOP_DRAW) { - /* pass */ - } else if (BPY_flag_from_seq(pyop_ret_flags, ret, &ret_flag) == -1) { - /* the returned value could not be converted into a flag */ - PyErr_Format(PyExc_ValueError, "Python operator, error using return value from \"%s\"\n", ot->idname); - BPy_errors_to_report(op ? op->reports:NULL); - ret_flag = OPERATOR_CANCELLED; - } - /* there is no need to copy the py keyword dict modified by - * pyot->py_invoke(), back to the operator props since they are just - * thrown away anyway - * - * If we ever want to do this and use the props again, - * it can be done with - pyrna_pydict_to_props(op->ptr, kw, "") - */ - - Py_DECREF(ret); - } - -#if 0 /* only for testing */ - - /* print operator return value */ - if (mode != PYOP_POLL) { - char flag_str[100]; - char class_name[100]; - BPY_flag_def *flag_def = pyop_ret_flags; - - strcpy(flag_str, ""); - - while(flag_def->name) { - if (ret_flag & flag_def->flag) { - if(flag_str[1]) - sprintf(flag_str, "%s | %s", flag_str, flag_def->name); - else - strcpy(flag_str, flag_def->name); - } - flag_def++; - } - - /* get class name */ - item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME); - strcpy(class_name, _PyUnicode_AsString(item)); - Py_DECREF(item); - - fprintf(stderr, "%s's %s returned %s\n", class_name, mode == PYOP_EXEC ? "execute" : "invoke", flag_str); - } -#endif - - bpy_context_clear(C, &gilstate); - - return ret_flag; -} - -static int PYTHON_OT_invoke(bContext *C, wmOperator *op, wmEvent *event) -{ - return PYTHON_OT_generic(PYOP_INVOKE, C, op->type, op, event, NULL); -} - -static int PYTHON_OT_execute(bContext *C, wmOperator *op) -{ - return PYTHON_OT_generic(PYOP_EXEC, C, op->type, op, NULL, NULL); -} - -static int PYTHON_OT_poll(bContext *C, wmOperatorType *ot) -{ - return PYTHON_OT_generic(PYOP_POLL, C, ot, NULL, NULL, NULL); -} - -static void PYTHON_OT_draw(bContext *C, wmOperator *op) -{ - PYTHON_OT_generic(PYOP_DRAW, C, op->type, op, NULL, op->layout); -} - - - void operator_wrapper(wmOperatorType *ot, void *userdata) { /* take care not to overwrite anything set in @@ -341,288 +121,6 @@ void macro_wrapper(wmOperatorType *ot, void *userdata) } } - - -void PYTHON_OT_wrapper(wmOperatorType *ot, void *userdata) -{ - PyObject *py_class = (PyObject *)userdata; - PyObject *item; - - /* identifiers */ - item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME_BL); - ot->idname= _PyUnicode_AsString(item); - Py_DECREF(item); - - item= PyObject_GetAttrString(py_class, PYOP_ATTR_UINAME); - if (item) { - ot->name= _PyUnicode_AsString(item); - Py_DECREF(item); - } - else { - ot->name= ot->idname; - PyErr_Clear(); - } - - item= PyObject_GetAttrString(py_class, PYOP_ATTR_DESCRIPTION); - ot->description= (item && PyUnicode_Check(item)) ? _PyUnicode_AsString(item):"undocumented python operator"; - Py_XDECREF(item); - - /* api callbacks, detailed checks dont on adding */ - if (PyObject_HasAttrString(py_class, "invoke")) - ot->invoke= PYTHON_OT_invoke; - //else - // ot->invoke= WM_operator_props_popup; /* could have an option for standard invokes */ - - if (PyObject_HasAttrString(py_class, "execute")) - ot->exec= PYTHON_OT_execute; - if (PyObject_HasAttrString(py_class, "poll")) - ot->pyop_poll= PYTHON_OT_poll; - if (PyObject_HasAttrString(py_class, "draw")) - ot->ui= PYTHON_OT_draw; - - ot->pyop_data= userdata; - - /* flags */ - ot->flag= 0; - - item= PyObject_GetAttrString(py_class, PYOP_ATTR_REGISTER); - if (item) { - ot->flag |= PyObject_IsTrue(item)!=0 ? OPTYPE_REGISTER:0; - Py_DECREF(item); - } - else { - PyErr_Clear(); - } - item= PyObject_GetAttrString(py_class, PYOP_ATTR_UNDO); - if (item) { - ot->flag |= PyObject_IsTrue(item)!=0 ? OPTYPE_UNDO:0; - Py_DECREF(item); - } - else { - PyErr_Clear(); - } - - /* Can't use this because it returns a dict proxy - * - * item= PyObject_GetAttrString(py_class, "__dict__"); - */ - item= ((PyTypeObject*)py_class)->tp_dict; - if(item) { - /* only call this so pyrna_deferred_register_props gives a useful error - * WM_operatortype_append_ptr will call RNA_def_struct_identifier - * later */ - RNA_def_struct_identifier(ot->srna, ot->idname); - - if(pyrna_deferred_register_props(ot->srna, item)!=0) { - /* failed to register operator props */ - PyErr_Print(); - PyErr_Clear(); - - } - } - else { - PyErr_Clear(); - } -} - -void PYTHON_OT_MACRO_wrapper(wmOperatorType *ot, void *userdata) -{ - PyObject *py_class = (PyObject *)userdata; - PyObject *item; - - /* identifiers */ - item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME_BL); - ot->idname= _PyUnicode_AsString(item); - Py_DECREF(item); - - item= PyObject_GetAttrString(py_class, PYOP_ATTR_UINAME); - if (item) { - ot->name= _PyUnicode_AsString(item); - Py_DECREF(item); - } - else { - ot->name= ot->idname; - PyErr_Clear(); - } - - item= PyObject_GetAttrString(py_class, PYOP_ATTR_DESCRIPTION); - ot->description= (item && PyUnicode_Check(item)) ? _PyUnicode_AsString(item):"undocumented python operator"; - Py_XDECREF(item); - - if (PyObject_HasAttrString(py_class, "poll")) - ot->pyop_poll= PYTHON_OT_poll; - if (PyObject_HasAttrString(py_class, "draw")) - ot->ui= PYTHON_OT_draw; - - ot->pyop_data= userdata; - - /* flags */ - ot->flag= OPTYPE_MACRO; /* macro at least */ - - item= PyObject_GetAttrString(py_class, PYOP_ATTR_REGISTER); - if (item) { - ot->flag |= PyObject_IsTrue(item)!=0 ? OPTYPE_REGISTER:0; - Py_DECREF(item); - } - else { - PyErr_Clear(); - } - item= PyObject_GetAttrString(py_class, PYOP_ATTR_UNDO); - if (item) { - ot->flag |= PyObject_IsTrue(item)!=0 ? OPTYPE_UNDO:0; - Py_DECREF(item); - } - else { - PyErr_Clear(); - } - - /* Can't use this because it returns a dict proxy - * - * item= PyObject_GetAttrString(py_class, "__dict__"); - */ - item= ((PyTypeObject*)py_class)->tp_dict; - if(item) { - /* only call this so pyrna_deferred_register_props gives a useful error - * WM_operatortype_append_macro_ptr will call RNA_def_struct_identifier - * later */ - RNA_def_struct_identifier(ot->srna, ot->idname); - - if(pyrna_deferred_register_props(ot->srna, item)!=0) { - /* failed to register operator props */ - PyErr_Print(); - PyErr_Clear(); - - } - } - else { - PyErr_Clear(); - } -} - - -/* pyOperators - Operators defined IN Python */ -PyObject *PYOP_wrap_add(PyObject *self, PyObject *py_class) -{ - PyObject *base_class, *item; - wmOperatorType *ot; - - - char *idname= NULL; - char idname_bl[OP_MAX_TYPENAME]; /* converted to blender syntax */ - - static struct BPY_class_attr_check pyop_class_attr_values[]= { - {PYOP_ATTR_IDNAME, 's', -1, OP_MAX_TYPENAME-3, 0}, /* -3 because a.b -> A_OT_b */ - {PYOP_ATTR_UINAME, 's', -1,-1, BPY_CLASS_ATTR_OPTIONAL}, - {PYOP_ATTR_DESCRIPTION, 's', -1,-1, BPY_CLASS_ATTR_NONE_OK}, - {"execute", 'f', 2, -1, BPY_CLASS_ATTR_OPTIONAL}, - {"invoke", 'f', 3, -1, BPY_CLASS_ATTR_OPTIONAL}, - {"poll", 'f', 2, -1, BPY_CLASS_ATTR_OPTIONAL}, - {"draw", 'f', 2, -1, BPY_CLASS_ATTR_OPTIONAL}, - {NULL, 0, 0, 0} - }; - - // in python would be... - //PyObject *optype = PyObject_GetAttrString(PyObject_GetAttrString(PyDict_GetItemString(PyEval_GetGlobals(), "bpy"), "types"), "Operator"); - - //PyObject bpy_mod= PyDict_GetItemString(PyEval_GetGlobals(), "bpy"); - PyObject *bpy_mod= PyImport_ImportModuleLevel("bpy", NULL, NULL, NULL, 0); - base_class = PyObject_GetAttrStringArgs(bpy_mod, 2, "types", "Operator"); - Py_DECREF(bpy_mod); - - if(BPY_class_validate("Operator", py_class, base_class, pyop_class_attr_values, NULL) < 0) { - return NULL; /* BPY_class_validate sets the error */ - } - Py_DECREF(base_class); - - /* class name is used for operator ID - this can be changed later if we want */ - item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME); - idname = _PyUnicode_AsString(item); - - - /* annoying conversion! */ - WM_operator_bl_idname(idname_bl, idname); - Py_DECREF(item); - - item= PyUnicode_FromString(idname_bl); - PyObject_SetAttrString(py_class, PYOP_ATTR_IDNAME_BL, item); - idname = _PyUnicode_AsString(item); - Py_DECREF(item); - /* end annoying conversion! */ - - - /* remove if it already exists */ - if ((ot=WM_operatortype_exists(idname))) { - if(ot->pyop_data) { - Py_XDECREF((PyObject*)ot->pyop_data); - } - WM_operatortype_remove(idname); - } - - Py_INCREF(py_class); - WM_operatortype_append_ptr(PYTHON_OT_wrapper, py_class); - - Py_RETURN_NONE; -} - -/* pyOperators - Macro Operators defined IN Python */ -PyObject *PYOP_wrap_add_macro(PyObject *self, PyObject *py_class) -{ - PyObject *base_class, *item; - wmOperatorType *ot; - - - char *idname= NULL; - char idname_bl[OP_MAX_TYPENAME]; /* converted to blender syntax */ - - static struct BPY_class_attr_check pyop_class_attr_values[]= { - {PYOP_ATTR_IDNAME, 's', -1, OP_MAX_TYPENAME-3, 0}, /* -3 because a.b -> A_OT_b */ - {PYOP_ATTR_UINAME, 's', -1,-1, BPY_CLASS_ATTR_OPTIONAL}, - {PYOP_ATTR_DESCRIPTION, 's', -1,-1, BPY_CLASS_ATTR_NONE_OK}, - {"poll", 'f', 2, -1, BPY_CLASS_ATTR_OPTIONAL}, - {"draw", 'f', 2, -1, BPY_CLASS_ATTR_OPTIONAL}, - {NULL, 0, 0, 0} - }; - - //PyObject bpy_mod= PyDict_GetItemString(PyEval_GetGlobals(), "bpy"); - PyObject *bpy_mod= PyImport_ImportModuleLevel("bpy", NULL, NULL, NULL, 0); - base_class = PyObject_GetAttrStringArgs(bpy_mod, 2, "types", "Macro"); - Py_DECREF(bpy_mod); - - if(BPY_class_validate("Macro", py_class, base_class, pyop_class_attr_values, NULL) < 0) { - return NULL; /* BPY_class_validate sets the error */ - } - Py_DECREF(base_class); - - /* class name is used for operator ID - this can be changed later if we want */ - item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME); - idname = _PyUnicode_AsString(item); - - - /* annoying conversion! */ - WM_operator_bl_idname(idname_bl, idname); - Py_DECREF(item); - - item= PyUnicode_FromString(idname_bl); - PyObject_SetAttrString(py_class, PYOP_ATTR_IDNAME_BL, item); - idname = _PyUnicode_AsString(item); - Py_DECREF(item); - /* end annoying conversion! */ - - - /* remove if it already exists */ - if ((ot=WM_operatortype_exists(idname))) { - if(ot->pyop_data) { - Py_XDECREF((PyObject*)ot->pyop_data); - } - WM_operatortype_remove(idname); - } - - Py_INCREF(py_class); - WM_operatortype_append_macro_ptr(PYTHON_OT_MACRO_wrapper, py_class); - - Py_RETURN_NONE; -} - PyObject *PYOP_wrap_macro_define(PyObject *self, PyObject *args) { wmOperatorType *ot; @@ -660,40 +158,3 @@ PyObject *PYOP_wrap_macro_define(PyObject *self, PyObject *args) return pyrna_struct_CreatePyObject(&ptr_otmacro); } - -PyObject *PYOP_wrap_remove(PyObject *self, PyObject *value) -{ - PyObject *py_class; - char *idname= NULL; - wmOperatorType *ot; - - - if (PyUnicode_Check(value)) - idname = _PyUnicode_AsString(value); - else if (PyCFunction_Check(value)) { - PyObject *cfunc_self = PyCFunction_GetSelf(value); - if (cfunc_self) - idname = _PyUnicode_AsString(cfunc_self); - } - - if (idname==NULL) { - PyErr_SetString( PyExc_ValueError, "Expected the operator name as a string or the operator function"); - return NULL; - } - - if (!(ot= WM_operatortype_exists(idname))) { - PyErr_Format( PyExc_AttributeError, "Operator \"%s\" does not exists, cant remove", idname); - return NULL; - } - - if (!(py_class= (PyObject *)ot->pyop_data)) { - PyErr_Format( PyExc_AttributeError, "Operator \"%s\" was not created by python", idname); - return NULL; - } - - Py_XDECREF(py_class); - - WM_operatortype_remove(idname); - - Py_RETURN_NONE; -} diff --git a/source/blender/python/intern/bpy_operator_wrap.h b/source/blender/python/intern/bpy_operator_wrap.h index 939fedd1f2b..b55dd674dbf 100644 --- a/source/blender/python/intern/bpy_operator_wrap.h +++ b/source/blender/python/intern/bpy_operator_wrap.h @@ -28,9 +28,5 @@ #include /* these are used for operator methods, used by bpy_operator.c */ -PyObject *PYOP_wrap_add(PyObject *self, PyObject *args); -PyObject *PYOP_wrap_add_macro(PyObject *self, PyObject *args); PyObject *PYOP_wrap_macro_define(PyObject *self, PyObject *args); -PyObject *PYOP_wrap_remove(PyObject *self, PyObject *args); - #endif diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c index db3798146d3..2cd1337fba7 100644 --- a/source/blender/python/intern/bpy_util.c +++ b/source/blender/python/intern/bpy_util.c @@ -35,95 +35,6 @@ bContext* __py_context = NULL; bContext* BPy_GetContext(void) { return __py_context; }; void BPy_SetContext(bContext *C) { __py_context= C; }; - -PyObject *BPY_flag_to_list(struct BPY_flag_def *flagdef, int flag) -{ - PyObject *list = PyList_New(0); - - PyObject *item; - BPY_flag_def *fd; - - fd= flagdef; - while(fd->name) { - if (fd->flag & flag) { - item = PyUnicode_FromString(fd->name); - PyList_Append(list, item); - Py_DECREF(item); - } - fd++; - } - - return list; - -} - -static char *bpy_flag_error_str(BPY_flag_def *flagdef) -{ - BPY_flag_def *fd= flagdef; - DynStr *dynstr= BLI_dynstr_new(); - char *cstring; - - BLI_dynstr_append(dynstr, "Error converting a sequence of strings into a flag.\n\tExpected only these strings...\n\t"); - - while(fd->name) { - BLI_dynstr_appendf(dynstr, fd!=flagdef?", '%s'":"'%s'", fd->name); - fd++; - } - - cstring = BLI_dynstr_get_cstring(dynstr); - BLI_dynstr_free(dynstr); - return cstring; -} - -int BPY_flag_from_seq(BPY_flag_def *flagdef, PyObject *seq, int *flag) -{ - int i, error_val= 0; - char *cstring; - PyObject *item; - BPY_flag_def *fd; - *flag = 0; - - if (PySequence_Check(seq)) { - i= PySequence_Length(seq); - - while(i--) { - item = PySequence_ITEM(seq, i); - cstring= _PyUnicode_AsString(item); - if(cstring) { - fd= flagdef; - while(fd->name) { - if (strcmp(cstring, fd->name) == 0) { - (*flag) |= fd->flag; - break; - } - fd++; - } - if (fd->name==NULL) { /* could not find a match */ - error_val= 1; - } - } else { - error_val= 1; - } - Py_DECREF(item); - } - } - else { - error_val= 1; - } - - if (*flag == 0) - error_val = 1; - - if (error_val) { - char *buf = bpy_flag_error_str(flagdef); - PyErr_SetString(PyExc_AttributeError, buf); - MEM_freeN(buf); - return -1; /* error value */ - } - - return 0; /* ok */ -} - /* for debugging */ void PyObSpit(char *name, PyObject *var) { fprintf(stderr, "<%s> : ", name); diff --git a/source/blender/python/intern/bpy_util.h b/source/blender/python/intern/bpy_util.h index 83fa7a5b7c4..dcf957969e8 100644 --- a/source/blender/python/intern/bpy_util.h +++ b/source/blender/python/intern/bpy_util.h @@ -36,16 +36,6 @@ struct EnumPropertyItem; struct ReportList; -/* for internal use only, so python can interchange a sequence of strings with flags */ -typedef struct BPY_flag_def { - const char *name; - int flag; -} BPY_flag_def; - - -PyObject *BPY_flag_to_list(BPY_flag_def *flagdef, int flag); -int BPY_flag_from_seq(BPY_flag_def *flagdef, PyObject *seq, int *flag); - void PyObSpit(char *name, PyObject *var); void PyLineSpit(void); void BPY_getFileAndNum(char **filename, int *lineno); -- cgit v1.2.3 From 3e5b6ed469f84df5eb25eb9da49592218ec18c05 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Thu, 31 Dec 2009 04:56:23 +0000 Subject: BGE: (1) stereo tooltip update (2) blenderplayer working with new stereo setting (3) blenderplayer building again (patch by Mitchell Stokes - Moguri) (1) the new text suggest what was the default eye separation before. Now I'm confident that changing the eye separation for the UI is a good move (2) no big deal here. It's not reading the parameter from the command line. But does it ever read it? (3) stubs.c update and glew linking statically. patch by Mitchell Stokes, thanks for that. And now we finish 2009 with a building blenderplayer =D --- source/blender/makesrna/intern/rna_scene.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index e824a72c791..6fd1ec51b60 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1218,7 +1218,7 @@ static void rna_def_scene_game_data(BlenderRNA *brna) prop= RNA_def_property(srna, "eye_separation", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "eyeseparation"); RNA_def_property_range(prop, 0.01, 5.0); - RNA_def_property_ui_text(prop, "Eye Separation", "Set the distance between the eyes"); + RNA_def_property_ui_text(prop, "Eye Separation", "Set the distance between the eyes - the camera focal length/30 should be fine"); RNA_def_property_update(prop, NC_SCENE, NULL); /* Dome */ -- cgit v1.2.3 From b800fbd13fe5fc3492569e7c70b4ae6117c5c109 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 31 Dec 2009 10:07:59 +0000 Subject: - modify the baking layout to be more compact and made a bit more sense. - add back quad split order option. note: tested displacement baking and found it matches 2.4x. there is still a missing check which ignores the active object when baking selected to active but Im not sure in what cases this is needed. --- source/blender/makesrna/intern/rna_scene.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 6fd1ec51b60..b8a85b6521b 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1453,7 +1453,13 @@ static void rna_def_scene_render_data(BlenderRNA *brna) {R_BAKE_SPACE_OBJECT, "OBJECT", 0, "Object", ""}, {R_BAKE_SPACE_TANGENT, "TANGENT", 0, "Tangent", ""}, {0, NULL, 0, NULL, NULL}}; - + + static EnumPropertyItem bake_qyad_split_items[] ={ + {0, "AUTO", 0, "Automatic", "Split quads to give the least distortion while baking"}, + {1, "FIXED", 0, "Fixed", "Split quads pradictably (0,1,2) (0,2,3)"}, + {2, "FIXED_ALT", 0, "Fixed Alternate", "Split quads pradictably (1,2,3) (1,3,0)"}, + {0, NULL, 0, NULL, NULL}}; + static EnumPropertyItem bake_aa_items[] ={ {5, "AA_5", 0, "5", ""}, {8, "AA_8", 0, "8", ""}, @@ -2148,13 +2154,17 @@ static void rna_def_scene_render_data(BlenderRNA *brna) prop= RNA_def_property(srna, "bake_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "bake_mode"); RNA_def_property_enum_items(prop, bake_mode_items); - RNA_def_property_ui_text(prop, "Bake Mode", ""); + RNA_def_property_ui_text(prop, "Bake Mode", "Choose shading information to bake into the image"); prop= RNA_def_property(srna, "bake_normal_space", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "bake_normal_space"); RNA_def_property_enum_items(prop, bake_normal_space_items); RNA_def_property_ui_text(prop, "Normal Space", "Choose normal space for baking"); + prop= RNA_def_property(srna, "bake_quad_split", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, bake_qyad_split_items); + RNA_def_property_ui_text(prop, "Quad Split", "Choose the method used to split a quad into 2 triangles for baking"); + prop= RNA_def_property(srna, "bake_aa_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "bake_osa"); RNA_def_property_enum_items(prop, bake_aa_items); @@ -2166,10 +2176,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna) prop= RNA_def_property(srna, "bake_normalized", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "bake_flag", R_BAKE_NORMALIZE); - RNA_def_property_ui_text(prop, "Normalized", ""); - //"Bake ambient occlusion normalized, without taking into acount material settings" - //"Normalized displacement value to fit the 'Dist' range" - // XXX: Need 1 tooltip here... + RNA_def_property_ui_text(prop, "Normalized", "With displacement normalize to the distance, with ambient occlusion normalize without using material settings."); prop= RNA_def_property(srna, "bake_clear", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "bake_flag", R_BAKE_CLEAR); -- cgit v1.2.3 From 3fa927a42e893709ac78f7d9419c22979b05bf3f Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 31 Dec 2009 23:56:45 +0000 Subject: DopeSheet/Action Editor: Fixed operator name that did not get correctly during the operator renaming fixes done by Campbell's script --- source/blender/editors/space_action/action_edit.c | 4 ++-- source/blender/editors/space_action/action_intern.h | 2 +- source/blender/editors/space_action/action_ops.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index e7b1dcb677d..687e7c53644 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -497,11 +497,11 @@ static int actkeys_insertkey_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void ACT_OT_keyframe_insert (wmOperatorType *ot) +void ACTION_OT_keyframe_insert (wmOperatorType *ot) { /* identifiers */ ot->name= "Insert Keyframes"; - ot->idname= "ACT_OT_keyframe_insert"; + ot->idname= "ACTION_OT_keyframe_insert"; ot->description= "Insert keyframes for the specified channels."; /* api callbacks */ diff --git a/source/blender/editors/space_action/action_intern.h b/source/blender/editors/space_action/action_intern.h index e45b2d05fac..166004a5742 100644 --- a/source/blender/editors/space_action/action_intern.h +++ b/source/blender/editors/space_action/action_intern.h @@ -83,7 +83,7 @@ void ACTION_OT_view_all(struct wmOperatorType *ot); void ACTION_OT_copy(struct wmOperatorType *ot); void ACTION_OT_paste(struct wmOperatorType *ot); -void ACT_OT_keyframe_insert(struct wmOperatorType *ot); +void ACTION_OT_keyframe_insert(struct wmOperatorType *ot); void ACTION_OT_duplicate(struct wmOperatorType *ot); void ACTION_OT_delete(struct wmOperatorType *ot); void ACTION_OT_clean(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c index f02974c2ea4..7792247fe81 100644 --- a/source/blender/editors/space_action/action_ops.c +++ b/source/blender/editors/space_action/action_ops.c @@ -80,7 +80,7 @@ void action_operatortypes(void) WM_operatortype_append(ACTION_OT_clean); WM_operatortype_append(ACTION_OT_delete); WM_operatortype_append(ACTION_OT_duplicate); - WM_operatortype_append(ACT_OT_keyframe_insert); + WM_operatortype_append(ACTION_OT_keyframe_insert); WM_operatortype_append(ACTION_OT_copy); WM_operatortype_append(ACTION_OT_paste); WM_operatortype_append(ACTION_OT_new); @@ -145,7 +145,7 @@ static void action_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap) WM_keymap_add_item(keymap, "ACTION_OT_delete", DELKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "ACTION_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0); - WM_keymap_add_item(keymap, "ACT_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "ACTION_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0); /* copy/paste */ WM_keymap_add_item(keymap, "ACTION_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0); -- cgit v1.2.3 From 174eccf07851c4e7f669b194cd8951ca98bc5c81 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Fri, 1 Jan 2010 05:09:30 +0000 Subject: Huge new year audio commit! * Refactored the whole audaspace library to use float as sample format over all readers. * Added new Readers like the linear resampler, envelope, lowpass, highpass and butterworth. * Note: The butterworth filter isn't working correctly, some bug in there... Maybe also true for the envelope. * Added a sound to f-curve operator that behaves mostly like the soundtracker script of technoestupido. --- source/blender/blenkernel/BKE_sound.h | 2 +- source/blender/blenkernel/intern/sequencer.c | 2 +- source/blender/blenkernel/intern/sound.c | 4 +- source/blender/blenkernel/intern/writeffmpeg.c | 2 +- source/blender/editors/sound/sound_ops.c | 2 +- source/blender/editors/space_graph/graph_edit.c | 135 ++++++++++++++++++++++ source/blender/editors/space_graph/graph_intern.h | 1 + source/blender/editors/space_graph/graph_ops.c | 1 + 8 files changed, 143 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index 64ce1983e7d..8722485b97d 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -73,7 +73,7 @@ void sound_update_playing(struct bContext *C); void sound_scrub(struct bContext *C); #ifdef AUD_CAPI -AUD_Device* sound_mixdown(struct Scene *scene, AUD_Specs specs, int start, int end, float volume); +AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, int end, float volume); #endif void sound_stop_all(struct bContext *C); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index aa81cea79f5..767834159b2 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3792,7 +3792,7 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo info = AUD_getInfo(sound->handle); - if (info.specs.format == AUD_FORMAT_INVALID) { + if (info.specs.channels == AUD_CHANNELS_INVALID) { sound_delete(C, sound); //if(op) // BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 74c6afdc018..3232e2677b5 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -40,7 +40,7 @@ void sound_disable() void sound_init() { - AUD_Specs specs; + AUD_DeviceSpecs specs; int device, buffersize; device = U.audiodevice; @@ -455,7 +455,7 @@ void sound_scrub(struct bContext *C) } } -AUD_Device* sound_mixdown(struct Scene *scene, AUD_Specs specs, int start, int end, float volume) +AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, int end, float volume) { AUD_Device* mixdown = AUD_openReadDevice(specs); SoundHandle *handle; diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 417679417e4..5b58f0bfedc 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -832,7 +832,7 @@ int start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty, Repo if(ffmpeg_multiplex_audio && audio_stream) { AVCodecContext* c = get_codec_from_stream(audio_stream); - AUD_Specs specs; + AUD_DeviceSpecs specs; specs.channels = c->channels; specs.format = AUD_FORMAT_S16; specs.rate = rd->ffcodecdata.audio_mixrate; diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 3b42fc7b382..d48a322f562 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -81,7 +81,7 @@ static int open_exec(bContext *C, wmOperator *op) info = AUD_getInfo(sound->handle); - if (info.specs.format == AUD_FORMAT_INVALID) { + if (info.specs.channels == AUD_CHANNELS_INVALID) { sound_delete(C, sound); BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); return OPERATOR_CANCELLED; diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 8ac3f2efefb..607425665af 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -36,6 +36,8 @@ #include #endif +#include "AUD_C-API.h" + #include "MEM_guardedalloc.h" #include "BLI_blenlib.h" @@ -990,6 +992,139 @@ void GRAPH_OT_bake (wmOperatorType *ot) // todo: add props for start/end frames } +/* ******************** Sound Bake F-Curve Operator *********************** */ +/* This operator bakes the given sound to the selected F-Curves */ + +/* ------------------- */ + +/* Custom data storage passed to the F-Sample-ing function, + * which provides the necessary info for baking the sound + */ +typedef struct tSoundBakeInfo { + float* samples; + int length; + int cfra; +} tSoundBakeInfo; + +/* ------------------- */ + +/* Sampling callback used to determine the value from the sound to + * save in the F-Curve at the specified frame + */ +static float fcurve_samplingcb_sound (FCurve *fcu, void *data, float evaltime) +{ + tSoundBakeInfo *sbi= (tSoundBakeInfo *)data; + + int position = evaltime - sbi->cfra; + if((position < 0) || (position >= sbi->length)) + return 0.0f; + + return sbi->samples[position]; +} + +/* ------------------- */ + +static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op) +{ + bAnimContext ac; + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + tSoundBakeInfo sbi; + Scene *scene= NULL; + int start, end; + + char path[FILE_MAX]; + + /* get editor data */ + if (ANIM_animdata_get_context(C, &ac) == 0) + return OPERATOR_CANCELLED; + + RNA_string_get(op->ptr, "path", path); + + scene= ac.scene; /* current scene */ + + /* store necessary data for the baking steps */ + sbi.samples = AUD_readSoundBuffer(path, + RNA_float_get(op->ptr, "low"), + RNA_float_get(op->ptr, "high"), + RNA_float_get(op->ptr, "attack"), + RNA_float_get(op->ptr, "release"), + RNA_float_get(op->ptr, "threshold"), + FPS, &sbi.length); + + if (sbi.samples == NULL) { + BKE_report(op->reports, RPT_ERROR, "Unsupported audio format"); + return OPERATOR_CANCELLED; + } + + /* determine extents of the baking */ + sbi.cfra = start = CFRA; + end = CFRA + sbi.length - 1; + + /* filter anim channels */ + filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); + ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); + + /* loop through all selected F-Curves, replacing its data with the sound samples */ + for (ale= anim_data.first; ale; ale= ale->next) { + FCurve *fcu= (FCurve *)ale->key_data; + + /* sample the sound */ + fcurve_store_samples(fcu, &sbi, start, end, fcurve_samplingcb_sound); + } + + /* free sample data */ + free(sbi.samples); + + /* admin and redraws */ + BLI_freelistN(&anim_data); + + /* validate keyframes after editing */ + ANIM_editkeyframes_refresh(&ac); + + /* set notifier that 'keyframes' have changed */ + WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL); + + return OPERATOR_FINISHED; +} + +static int graphkeys_sound_bake_invoke (bContext *C, wmOperator *op, wmEvent *event) +{ + bAnimContext ac; + + /* verify editor data */ + if (ANIM_animdata_get_context(C, &ac) == 0) + return OPERATOR_CANCELLED; + + return WM_operator_filesel(C, op, event); +} + +void GRAPH_OT_sound_bake (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Bake Sound to F-Curves"; + ot->idname= "GRAPH_OT_sound_bake"; + ot->description= "Bakes a sound wave to selected F-Curves."; + + /* api callbacks */ + ot->invoke= graphkeys_sound_bake_invoke; + ot->exec= graphkeys_sound_bake_exec; + ot->poll= graphop_selected_fcurve_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* properties */ + WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE|MOVIEFILE, FILE_SPECIAL); + RNA_def_float(ot->srna, "low", 0.0f, 0.0, 100000.0, "Lowest frequency", "", 0.1, 1000.00); + RNA_def_float(ot->srna, "high", 100000.0, 0.0, 100000.0, "Highest frequency", "", 0.1, 1000.00); + RNA_def_float(ot->srna, "attack", 0.005, 0.0, 2.0, "Attack time", "", 0.01, 0.1); + RNA_def_float(ot->srna, "release", 0.2, 0.0, 5.0, "Release time", "", 0.01, 0.2); + RNA_def_float(ot->srna, "threshold", 0.0, 0.0, 1.0, "Threshold", "", 0.01, 0.1); +} + /* ******************** Sample Keyframes Operator *********************** */ /* This operator 'bakes' the values of the curve into new keyframes between pairs * of selected keyframes. It is useful for creating keyframes for tweaking overlap. diff --git a/source/blender/editors/space_graph/graph_intern.h b/source/blender/editors/space_graph/graph_intern.h index 87e03247353..ec6f38c93b7 100644 --- a/source/blender/editors/space_graph/graph_intern.h +++ b/source/blender/editors/space_graph/graph_intern.h @@ -100,6 +100,7 @@ void GRAPH_OT_delete(struct wmOperatorType *ot); void GRAPH_OT_clean(struct wmOperatorType *ot); void GRAPH_OT_sample(struct wmOperatorType *ot); void GRAPH_OT_bake(struct wmOperatorType *ot); +void GRAPH_OT_sound_bake(struct wmOperatorType *ot); void GRAPH_OT_smooth(struct wmOperatorType *ot); void GRAPH_OT_handle_type(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index 295ee869979..7be2d7b3e4b 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -247,6 +247,7 @@ void graphedit_operatortypes(void) WM_operatortype_append(GRAPH_OT_extrapolation_type); WM_operatortype_append(GRAPH_OT_sample); WM_operatortype_append(GRAPH_OT_bake); + WM_operatortype_append(GRAPH_OT_sound_bake); WM_operatortype_append(GRAPH_OT_smooth); WM_operatortype_append(GRAPH_OT_clean); WM_operatortype_append(GRAPH_OT_delete); -- cgit v1.2.3 From 8ac9ec415627c518b687e8fff5a7a2516c7f3701 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 1 Jan 2010 09:41:53 +0000 Subject: Scons compiling fix fox neXyon's new-year audio commit --- source/blender/editors/space_graph/SConscript | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/SConscript b/source/blender/editors/space_graph/SConscript index cc9812678e9..174894ddfad 100644 --- a/source/blender/editors/space_graph/SConscript +++ b/source/blender/editors/space_graph/SConscript @@ -5,5 +5,6 @@ sources = env.Glob('*.c') incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf' incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include' +incs += ' #/intern/audaspace/intern' env.BlenderLib ( 'bf_editors_space_graph', sources, Split(incs), [], libtype=['core'], priority=[50] ) -- cgit v1.2.3 From e6f26957ea56c7cfdaecd26e192a2ccbd1f6c97a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 1 Jan 2010 12:24:16 +0000 Subject: Cleanup of MotionPaths+Ghosts (AnimViz) - Part 1 This commit sets up some of the groundwork necessary to extend the animation visualisation capabilities, previously only available for bones in PoseMode, to Objects as well. Also, some of the other goals of this refactor is to make future visualisation goodies (i.e. editable paths) more feasible... (There's really nothing to see here yet. The following log notes are really just for my own reference to keep track of things.) Currently, the following things have been done: * New datastructures + settings have been tidied up, ready for usage * Added these new types into the Object and PoseBone code as necessary, with freeing/adding/copying accounted for * File IO code for the new data, including version patching to convert the old system to the new one. * Set up the drawing system for motionpaths based on the old armature path drawing code. Armatures still draw using the old system, since the two systems use different storage systems. * Started setting up the motionpath 'baking' code, but the core of this still needs to be coded... Next Steps (after some semi-urgent Durian Driver changes): * Port the ghosting/onionskinning code over too * Finish motionpath baking code * RNA wrapping for the new types * Hooking up all the new code into the operators, etc. --- source/blender/blenkernel/BKE_anim.h | 16 + source/blender/blenkernel/intern/action.c | 37 +- source/blender/blenkernel/intern/anim.c | 184 ++++++- source/blender/blenkernel/intern/object.c | 16 +- source/blender/blenloader/intern/readfile.c | 75 +++ source/blender/blenloader/intern/writefile.c | 16 + source/blender/editors/armature/poseobject.c | 1 + source/blender/editors/space_view3d/drawanimviz.c | 563 +++++++++++++++++++++ .../blender/editors/space_view3d/view3d_intern.h | 12 + .../blender/editors/space_view3d/view3d_select.c | 4 +- source/blender/makesdna/DNA_action_types.h | 112 +++- source/blender/makesdna/DNA_armature_types.h | 5 + source/blender/makesdna/DNA_object_types.h | 7 +- 13 files changed, 983 insertions(+), 65 deletions(-) create mode 100644 source/blender/editors/space_view3d/drawanimviz.c (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_anim.h index 32c5ff81740..5507a8b380e 100644 --- a/source/blender/blenkernel/BKE_anim.h +++ b/source/blender/blenkernel/BKE_anim.h @@ -38,14 +38,30 @@ struct Object; struct PartEff; struct Scene; struct ListBase; +struct bAnimVizSettings; +struct bMotionPath; #include "DNA_object_types.h" +/* ---------------------------------------------------- */ +/* Animation Visualisation */ + +void animviz_settings_init(struct bAnimVizSettings *avs); + +void animviz_free_motionpath_cache(struct bMotionPath *mpath); +void animviz_free_motionpath(struct bMotionPath *mpath); + +/* ---------------------------------------------------- */ +/* Curve Paths */ + void free_path(struct Path *path); void calc_curvepath(struct Object *ob); int interval_test(int min, int max, int p1, int cycl); int where_on_path(struct Object *ob, float ctime, float *vec, float *dir, float *quat, float *radius); +/* ---------------------------------------------------- */ +/* Dupli-Geometry */ + struct ListBase *object_duplilist(struct Scene *sce, struct Object *ob); void free_object_duplilist(struct ListBase *lb); int count_duplilist(struct Object *ob); diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 9e89ae77caa..a95cc7d1816 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -382,12 +382,12 @@ bPoseChannel *get_pose_channel(const bPose *pose, const char *name) if (ELEM(NULL, pose, name) || (name[0] == 0)) return NULL; - return BLI_findstring(&pose->chanbase, name, offsetof(bPoseChannel, name)); + return BLI_findstring(&((bPose *)pose)->chanbase, name, offsetof(bPoseChannel, name)); } /* Use with care, not on Armature poses but for temporal ones */ /* (currently used for action constraints and in rebuild_pose) */ -bPoseChannel *verify_pose_channel(bPose* pose, const char* name) +bPoseChannel *verify_pose_channel(bPose *pose, const char *name) { bPoseChannel *chan; @@ -455,10 +455,10 @@ const char *get_ikparam_name(bPose *pose) void copy_pose (bPose **dst, bPose *src, int copycon) { bPose *outPose; - bPoseChannel *pchan; + bPoseChannel *pchan; ListBase listb; - if (!src){ + if (!src) { *dst=NULL; return; } @@ -482,7 +482,8 @@ void copy_pose (bPose **dst, bPose *src, int copycon) if (copycon) { copy_constraints(&listb, &pchan->constraints); // copy_constraints NULLs listb pchan->constraints= listb; - pchan->path= NULL; + pchan->path= NULL; // XXX remove this line when the new motionpaths are ready... (depreceated code) + pchan->mpath= NULL; /* motion paths should not get copied yet... */ } if(pchan->prop) { @@ -491,7 +492,7 @@ void copy_pose (bPose **dst, bPose *src, int copycon) } /* for now, duplicate Bone Groups too when doing this */ - if(copycon) + if (copycon) BLI_duplicatelist(&outPose->agroups, &src->agroups); *dst=outPose; @@ -532,12 +533,20 @@ void init_pose_ikparam(bPose *pose) void free_pose_channel(bPoseChannel *pchan) { - if (pchan->path) + // XXX this case here will need to be removed when the new motionpaths are ready + if (pchan->path) { MEM_freeN(pchan->path); - + pchan->path= NULL; + } + + if (pchan->mpath) { + animviz_free_motionpath(pchan->mpath); + pchan->mpath= NULL; + } + free_constraints(&pchan->constraints); - - if(pchan->prop) { + + if (pchan->prop) { IDP_FreeProperty(pchan->prop); MEM_freeN(pchan->prop); } @@ -550,7 +559,7 @@ void free_pose_channels(bPose *pose) if (pose->chanbase.first) { for (pchan = pose->chanbase.first; pchan; pchan=pchan->next) free_pose_channel(pchan); - + BLI_freelistN(&pose->chanbase); } } @@ -564,14 +573,14 @@ void free_pose(bPose *pose) /* free pose-groups */ if (pose->agroups.first) BLI_freelistN(&pose->agroups); - + /* free IK solver state */ BIK_clear_data(pose); - + /* free IK solver param */ if (pose->ikparam) MEM_freeN(pose->ikparam); - + /* free pose */ MEM_freeN(pose); } diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 6b8b604cb94..a7d1ac10195 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -29,16 +29,21 @@ * ***** END GPL LICENSE BLOCK ***** */ +#include #include #include #include "MEM_guardedalloc.h" + #include "BLI_blenlib.h" #include "BLI_editVert.h" #include "BLI_math.h" #include "BLI_rand.h" + #include "DNA_listBase.h" +#include "DNA_anim_types.h" +#include "DNA_action_types.h" #include "DNA_curve_types.h" #include "DNA_effect_types.h" #include "DNA_group_types.h" @@ -53,6 +58,7 @@ #include "DNA_vfont_types.h" #include "BKE_anim.h" +#include "BKE_animsys.h" #include "BKE_curve.h" #include "BKE_DerivedMesh.h" #include "BKE_displist.h" @@ -60,7 +66,6 @@ #include "BKE_font.h" #include "BKE_group.h" #include "BKE_global.h" -#include "BKE_ipo.h" #include "BKE_key.h" #include "BKE_lattice.h" #include "BKE_main.h" @@ -73,17 +78,157 @@ #include #endif +// XXX bad level call... #include "ED_mesh.h" +/* --------------------- */ +/* forward declarations */ + static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int level, int animated); +/* ******************************************************************** */ +/* Animation Visualisation */ + +/* Initialise the default settings for animation visualisation */ +void animviz_settings_init(bAnimVizSettings *avs) +{ + /* sanity check */ + if (avs == NULL) + return; + + /* ghosting settings */ + avs->ghost_bc= avs->ghost_ac= 10; + + avs->ghost_sf= 1; // xxx - take from scene instead? + avs->ghost_ef= 250; // xxx - take from scene instead? + + avs->ghost_step= 1; + + + /* path settings */ + avs->path_bc= avs->path_ac= 10; + + avs->path_sf= 1; // xxx - take from scene instead? + avs->path_ef= 250; // xxx - take from scene instead? + + avs->path_viewflag= (MOTIONPATH_VIEW_KFRAS|MOTIONPATH_VIEW_KFNOS); + + avs->path_step= 1; +} + +/* ------------------- */ + +/* Free the given motion path's cache */ +void animviz_free_motionpath_cache(bMotionPath *mpath) +{ + /* sanity check */ + if (mpath == NULL) + return; + + /* free the path if necessary */ + if (mpath->points) + MEM_freeN(mpath->points); + + /* reset the relevant parameters */ + mpath->points= NULL; + mpath->length= 0; +} + +/* Free the given motion path instance and its data + * NOTE: this frees the motion path given! + */ +void animviz_free_motionpath(bMotionPath *mpath) +{ + /* sanity check */ + if (mpath == NULL) + return; + + /* free the cache first */ + animviz_free_motionpath_cache(mpath); + + /* now the instance itself */ + MEM_freeN(mpath); +} + +/* ------------------- */ + +/* Setup motion paths for the given data + * - scene: current scene (for frame ranges, etc.) + * - ob: object to add paths for (must be provided) + * - pchan: posechannel to add paths for (optional; if not provided, object-paths are assumed) + */ +bMotionPath *animviz_verify_motionpaths(Scene *scene, Object *ob, bPoseChannel *pchan) +{ + bAnimVizSettings *avs; + bMotionPath *mpath, **dst; + + /* sanity checks */ + if (ELEM(NULL, scene, ob)) + return NULL; + + /* get destination data */ + if (pchan) { + /* paths for posechannel - assume that posechannel belongs to the object */ + avs= &ob->pose->avs; + dst= &pchan->mpath; + } + else { + /* paths for object */ + avs= &ob->avs; + dst= &ob->mpath; + } + + /* if there is already a motionpath, just return that... */ + // TODO: maybe we should validate the settings in this case + if (*dst != NULL) + return *dst; + + /* create a new motionpath, and assign it */ + mpath= MEM_callocN(sizeof(bMotionPath), "bMotionPath"); + *dst= mpath; + + /* set settings from the viz settings */ + mpath->start_frame= avs->path_sf; + mpath->end_frame= avs->path_ef; + + mpath->length= mpath->end_frame - mpath->start_frame; + + if (avs->path_bakeflag & MOTIONPATH_BAKE_HEADS) + mpath->flag |= MOTIONPATH_FLAG_BHEAD; + + /* allocate a cache */ + mpath->points= MEM_callocN(sizeof(bMotionPathVert)*mpath->length, "bMotionPathVerts"); + + /* return it */ + return mpath; +} + + +/* Perform baking of the given object's and/or its bones' transforms to motion paths + * - scene: current scene + * - ob: object whose flagged motionpaths should get calculated + * - recalc: whether we need to + */ +void animviz_calc_motionpaths(Scene *scene, Object *ob) +{ + +} + +/* ******************************************************************** */ +/* Curve Paths - for curve deforms and/or curve following */ + +/* free curve path data + * NOTE: frees the path itself! + */ void free_path(Path *path) { if(path->data) MEM_freeN(path->data); MEM_freeN(path); } - +/* calculate a curve-deform path for a curve + * - only called from displist.c -> makeDispListCurveTypes + */ void calc_curvepath(Object *ob) { BevList *bl; @@ -96,7 +241,6 @@ void calc_curvepath(Object *ob) float fac, d=0, fac1, fac2; int a, tot, cycl=0; - /* in a path vertices are with equal differences: path->len = number of verts */ /* NOW WITH BEVELCURVE!!! */ @@ -143,7 +287,7 @@ void calc_curvepath(Object *ob) } path->totdist= *fp; - + /* the path verts in path->data */ /* now also with TILT value */ pp= path->data = (PathPoint *)MEM_callocN(sizeof(PathPoint)*4*path->len, "pathdata"); // XXX - why *4? - in 2.4x each element was 4 and the size was 16, so better leave for now - Campbell @@ -155,7 +299,7 @@ void calc_curvepath(Object *ob) maxdist= dist+tot; fac= 1.0f/((float)path->len-1.0f); fac = fac * path->totdist; - + for(a=0; alen; a++) { d= ((float)a)*fac; @@ -175,7 +319,7 @@ void calc_curvepath(Object *ob) fac2= *(fp)-d; fac1= fac2/fac1; fac2= 1.0f-fac1; - + interp_v3_v3v3(pp->vec, bevp->vec, bevpn->vec, fac2); pp->vec[3]= fac1*bevp->alfa + fac2*bevpn->alfa; pp->radius= fac1*bevp->radius + fac2*bevpn->radius; @@ -188,11 +332,12 @@ void calc_curvepath(Object *ob) MEM_freeN(dist); } + +/* is this only used internally?*/ int interval_test(int min, int max, int p1, int cycl) { - if(cycl) { - if( p1 < min) + if(p1 < min) p1= ((p1 -min) % (max-min+1)) + max+1; else if(p1 > max) p1= ((p1 -min) % (max-min+1)) + min; @@ -204,8 +349,11 @@ int interval_test(int min, int max, int p1, int cycl) return p1; } -/* warning, *vec needs FOUR items! */ -/* ctime is normalized range <0-1> */ + +/* calculate the deformation implied by the curve path at a given parametric position, and returns whether this operation succeeded + * - *vec needs FOUR items! + * - ctime is normalized range <0-1> + */ int where_on_path(Object *ob, float ctime, float *vec, float *dir, float *quat, float *radius) /* returns OK */ { Curve *cu; @@ -305,7 +453,8 @@ int where_on_path(Object *ob, float ctime, float *vec, float *dir, float *quat, return 1; } -/* ****************** DUPLICATOR ************** */ +/* ******************************************************************** */ +/* Dupli-Geometry */ static DupliObject *new_dupli_object(ListBase *lb, Object *ob, float mat[][4], int lay, int index, int type, int animated) { @@ -407,7 +556,7 @@ static void frames_duplilist(ListBase *lb, Scene *scene, Object *ob, int level, enable_cu_speed= 1; } -struct vertexDupliData { +typedef struct vertexDupliData { ID *id; /* scene or group, for recursive loops */ int level; int animated; @@ -417,12 +566,14 @@ struct vertexDupliData { Scene *scene; Object *ob, *par; float (*orco)[3]; -}; +} vertexDupliData; + +/* ------------- */ static void vertex_dupli__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s) { DupliObject *dob; - struct vertexDupliData *vdd= userData; + vertexDupliData *vdd= userData; float vec[3], q2[4], mat[3][3], tmat[4][4], obmat[4][4]; VECCOPY(vec, co); @@ -466,7 +617,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl Mesh *me= par->data; Base *base = NULL; DerivedMesh *dm; - struct vertexDupliData vdd; + vertexDupliData vdd; Scene *sce = NULL; Group *group = NULL; GroupObject * go = NULL; @@ -1070,7 +1221,8 @@ static void font_duplilist(ListBase *lb, Scene *scene, Object *par, int level, i MEM_freeN(chartransdata); } -/* ***************************** */ +/* ------------- */ + static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int level, int animated) { if((ob->transflag & OB_DUPLI)==0) diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 24d5b9cd882..55cea3de188 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -167,9 +167,9 @@ void object_free_particlesystems(Object *ob) { while(ob->particlesystem.first){ ParticleSystem *psys = ob->particlesystem.first; - + BLI_remlink(&ob->particlesystem,psys); - + psys_free(ob,psys); } } @@ -194,9 +194,9 @@ void object_free_modifiers(Object *ob) { while (ob->modifiers.first) { ModifierData *md = ob->modifiers.first; - + BLI_remlink(&ob->modifiers, md); - + modifier_free(md); } @@ -283,6 +283,8 @@ void free_object(Object *ob) BLI_freelistN(&ob->defbase); if(ob->pose) free_pose(ob->pose); + if(ob->mpath) + animviz_free_motionpath(ob->mpath); free_properties(&ob->prop); object_free_modifiers(ob); @@ -332,6 +334,7 @@ void unlink_object(Scene *scene, Object *ob) unlink_actuators(&ob->actuators); /* check all objects: parents en bevels and fields, also from libraries */ + // FIXME: need to check all animation blocks (drivers) obt= G.main->object.first; while(obt) { if(obt->proxy==ob) @@ -982,7 +985,7 @@ Object *add_only_object(int type, char *name) ob->quat[0]= ob->dquat[0]= 1.0f; /* rotation locks should be 4D for 4 component rotations by default... */ ob->protectflag = OB_LOCK_ROT4D; - + unit_m4(ob->constinv); unit_m4(ob->parentinv); unit_m4(ob->obmat); @@ -1021,6 +1024,9 @@ Object *add_only_object(int type, char *name) ob->fluidsimSettings = NULL; ob->pc_ids.first = ob->pc_ids.last = NULL; + + /* Animation Visualisation defaults */ + animviz_settings_init(&ob->avs); return ob; } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index b99efc5be88..8f127fc65cf 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1981,6 +1981,19 @@ static void direct_link_animdata(FileData *fd, AnimData *adt) adt->actstrip= NULL; } +/* ************ READ MOTION PATHS *************** */ + +/* direct data for cache */ +static void direct_link_motionpath(FileData *fd, bMotionPath *mpath) +{ + /* sanity check */ + if (mpath == NULL) + return; + + /* relink points cache */ + mpath->points= newdataadr(fd, mpath->points); +} + /* ************ READ NODE TREE *************** */ /* singe node tree (also used for material/scene trees), ntree is not NULL */ @@ -3763,6 +3776,10 @@ static void direct_link_pose(FileData *fd, bPose *pose) if (pchan->prop) IDP_DirectLinkProperty(pchan->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); + pchan->mpath= newdataadr(fd, pchan->mpath); + if (pchan->mpath) + direct_link_motionpath(fd, pchan->mpath); + pchan->iktree.first= pchan->iktree.last= NULL; pchan->path= NULL; } @@ -3975,6 +3992,10 @@ static void direct_link_object(FileData *fd, Object *ob) ob->pose= newdataadr(fd, ob->pose); direct_link_pose(fd, ob->pose); + + ob->mpath= newdataadr(fd, ob->mpath); + if (ob->mpath) + direct_link_motionpath(fd, ob->mpath); link_list(fd, &ob->defbase); // XXX depreceated - old animation system <<< @@ -10306,10 +10327,64 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if (1) { Scene *sce; + Object *ob; + /* game engine changes */ for(sce = main->scene.first; sce; sce = sce->id.next) { sce->gm.eyeseparation = 0.10; } + + /* anim viz changes */ + for (ob= main->object.first; ob; ob= ob->id.next) { + /* initialise object defaults */ + animviz_settings_init(&ob->avs); + + /* if armature, copy settings for pose from armature data */ + if (ob->pose && ob->data) { + bArmature *arm= (bArmature *)ob->data; + bAnimVizSettings *avs= &ob->pose->avs; + + /* ghosting settings ---------------- */ + /* ranges */ + avs->ghost_bc= avs->ghost_ac= arm->ghostep; + + avs->ghost_sf= arm->ghostsf; + avs->ghost_ef= arm->ghostef; + + /* type */ + avs->ghost_type= arm->ghosttype; + + /* stepsize */ + avs->ghost_step= arm->ghostsize; + + /* path settings --------------------- */ + /* ranges */ + avs->path_bc= arm->pathbc; + avs->path_ac= arm->pathac; + + avs->path_sf= arm->pathsf; + avs->path_ef= arm->pathef; + + /* flags */ + if (arm->pathflag & ARM_PATH_FNUMS) + avs->path_viewflag |= MOTIONPATH_VIEW_FNUMS; + if (arm->pathflag & ARM_PATH_KFRAS) + avs->path_viewflag |= MOTIONPATH_VIEW_KFRAS; + if (arm->pathflag & ARM_PATH_KFNOS) + avs->path_viewflag |= MOTIONPATH_VIEW_KFNOS; + + /* bake flags */ + if (arm->pathflag & ARM_PATH_HEADS) + avs->path_bakeflag |= MOTIONPATH_BAKE_HEADS; + + /* type */ + if (arm->pathflag & ARM_PATH_ACFRA) + avs->path_type = MOTIONPATH_TYPE_ACFRA; + + /* stepsize */ + avs->path_step= arm->pathsize; + } + } } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index d60d65f81c2..3373cc1ca71 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1058,6 +1058,19 @@ static void write_animdata(WriteData *wd, AnimData *adt) write_nladata(wd, &adt->nla_tracks); } +static void write_motionpath(WriteData *wd, bMotionPath *mpath) +{ + /* sanity checks */ + if (mpath == NULL) + return; + + /* firstly, just write the motionpath struct */ + writestruct(wd, DATA, "bMotionPath", 1, mpath); + + /* now write the array of data */ + writestruct(wd, DATA, "bMotionPathVert", mpath->length, mpath->points); +} + static void write_constraints(WriteData *wd, ListBase *conlist) { bConstraint *con; @@ -1120,6 +1133,8 @@ static void write_pose(WriteData *wd, bPose *pose) write_constraints(wd, &chan->constraints); + write_motionpath(wd, chan->mpath); + /* prevent crashes with autosave, when a bone duplicated in editmode has not yet been assigned to its posechannel */ if (chan->bone) chan->selectflag= chan->bone->flag & BONE_SELECTED; /* gets restored on read, for library armatures */ @@ -1252,6 +1267,7 @@ static void write_objects(WriteData *wd, ListBase *idbase) write_pose(wd, ob->pose); write_defgroups(wd, &ob->defbase); write_constraints(wd, &ob->constraints); + write_motionpath(wd, ob->mpath); writestruct(wd, DATA, "PartDeflect", 1, ob->pd); writestruct(wd, DATA, "SoftBody", 1, ob->soft); diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index aeb42142abd..df5f551fb0c 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -227,6 +227,7 @@ void ED_pose_recalculate_paths(bContext *C, Scene *scene, Object *ob) if ((pchan->bone) && (arm->layer & pchan->bone->layer)) { if (pchan->path) { /* if the pathsf and pathef aren't initialised, abort! */ + // XXX can now have negative frames, so this check needs improvement if (ELEM(0, pchan->pathsf, pchan->pathef)) return; diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c new file mode 100644 index 00000000000..c999de92ea2 --- /dev/null +++ b/source/blender/editors/space_view3d/drawanimviz.c @@ -0,0 +1,563 @@ +/** + * $Id: drawanim.c 24637 2009-11-18 11:40:55Z campbellbarton $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2009 by the Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Joshua Leung + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include +#include +#include + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "MEM_guardedalloc.h" + +#include "DNA_anim_types.h" +#include "DNA_action_types.h" +#include "DNA_armature_types.h" +#include "DNA_constraint_types.h" +#include "DNA_ID.h" +#include "DNA_object_types.h" +#include "DNA_scene_types.h" +#include "DNA_screen_types.h" +#include "DNA_space_types.h" +#include "DNA_view3d_types.h" +#include "DNA_userdef_types.h" + +#include "BLI_blenlib.h" +#include "BLI_math.h" +#include "BLI_dlrbTree.h" + +#include "BKE_anim.h" +#include "BKE_animsys.h" +#include "BKE_action.h" +#include "BKE_armature.h" +#include "BKE_constraint.h" +#include "BKE_context.h" +#include "BKE_depsgraph.h" +#include "BKE_DerivedMesh.h" +#include "BKE_global.h" +#include "BKE_main.h" +#include "BKE_modifier.h" +#include "BKE_nla.h" +#include "BKE_object.h" +#include "BKE_utildefines.h" + +#include "BIF_gl.h" +#include "BIF_glutil.h" + +#include "ED_armature.h" +#include "ED_anim_api.h" +#include "ED_keyframes_draw.h" + +#include "WM_api.h" +#include "WM_types.h" +#include "BLF_api.h" + +#include "UI_resources.h" + +#include "view3d_intern.h" + +/* ************************************ Motion Paths ************************************* */ + +// TODO: +// - options to draw paths with lines +// - include support for editing the path verts + +/* Set up drawing environment for drawing motion paths */ +void draw_motion_paths_init(Scene *scene, View3D *v3d, ARegion *ar) +{ + RegionView3D *rv3d= ar->regiondata; + + if (v3d->zbuf) glDisable(GL_DEPTH_TEST); + + glPushMatrix(); + glLoadMatrixf(rv3d->viewmat); +} + +/* Draw the given motion path for an Object or a Bone + * - assumes that the viewport has already been initialised properly + * i.e. draw_motion_paths_init() has been called + */ +void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar, + Object *ob, bPoseChannel *pchan, bAnimVizSettings *avs, bMotionPath *mpath) +{ + //RegionView3D *rv3d= ar->regiondata; + bMotionPathVert *mpv, *mpv_start; + int sfra, efra, len; + int i, stepsize; + + /* get frame ranges */ + if (avs->path_type == MOTIONPATH_TYPE_ACFRA) { + int sind; + + /* With "Around Current", we only choose frames from around + * the current frame to draw. However, this range is still + * restricted by the limits of the original path. + */ + sfra= CFRA - avs->path_bc; + efra= CFRA + avs->path_ac; + if (sfra < mpath->start_frame) sfra= mpath->start_frame; + if (efra > mpath->end_frame) efra= mpath->end_frame; + + len= efra - sfra; + + sind= sfra - mpath->start_frame; + mpv_start= (mpath->points + sind); + } + else { + sfra= mpath->start_frame; + efra = sfra + mpath->length; + len = mpath->length; + mpv_start= mpath->points; + } + + /* draw curve-line of path */ + glShadeModel(GL_SMOOTH); + + glBegin(GL_LINE_STRIP); + for (i=0, mpv=mpv_start; i < len; i++, mpv++) { + short sel= (pchan) ? (pchan->bone->flag & BONE_SELECTED) : (ob->flag & SELECT); + float intensity; /* how faint */ + + /* set color + * - more intense for active/selected bones, less intense for unselected bones + * - black for before current frame, green for current frame, blue for after current frame + * - intensity decreases as distance from current frame increases + */ + #define SET_INTENSITY(A, B, C, min, max) (((1.0f - ((C - B) / (C - A))) * (max-min)) + min) + if ((sfra+i) < CFRA) { + /* black - before cfra */ + if (sel) { + // intensity= 0.5f; + intensity = SET_INTENSITY(sfra, i, CFRA, 0.25f, 0.75f); + } + else { + //intensity= 0.8f; + intensity = SET_INTENSITY(sfra, i, CFRA, 0.68f, 0.92f); + } + UI_ThemeColorBlend(TH_WIRE, TH_BACK, intensity); + } + else if ((sfra+i) > CFRA) { + /* blue - after cfra */ + if (sel) { + //intensity = 0.5f; + intensity = SET_INTENSITY(CFRA, i, efra, 0.25f, 0.75f); + } + else { + //intensity = 0.8f; + intensity = SET_INTENSITY(CFRA, i, efra, 0.68f, 0.92f); + } + UI_ThemeColorBlend(TH_BONE_POSE, TH_BACK, intensity); + } + else { + /* green - on cfra */ + if (sel) { + intensity= 0.5f; + } + else { + intensity= 0.99f; + } + UI_ThemeColorBlendShade(TH_CFRAME, TH_BACK, intensity, 10); + } + + /* draw a vertex with this color */ + glVertex3fv(mpv->co); + } + + glEnd(); + glShadeModel(GL_FLAT); + + glPointSize(1.0); + + /* draw little black point at each frame + * NOTE: this is not really visible/noticable + */ + glBegin(GL_POINTS); + for (i=0, mpv=mpv_start; i < len; i++, mpv++) + glVertex3fv(mpv->co); + glEnd(); + + /* Draw little white dots at each framestep value */ + UI_ThemeColor(TH_TEXT_HI); + glBegin(GL_POINTS); + for (i=0, mpv=mpv_start; i < len; i+=stepsize, mpv+=stepsize) + glVertex3fv(mpv->co); + glEnd(); + + /* Draw frame numbers at each framestep value */ + if (avs->path_viewflag & MOTIONPATH_VIEW_FNUMS) { + for (i=0, mpv=mpv_start; i < len; i+=stepsize, mpv+=stepsize) { + char str[32]; + + /* only draw framenum if several consecutive highlighted points don't occur on same point */ + if (i == 0) { + sprintf(str, "%d", (i+sfra)); + view3d_cached_text_draw_add(mpv->co[0], mpv->co[1], mpv->co[2], str, 0); + } + else if ((i > stepsize) && (i < len-stepsize)) { + bMotionPathVert *mpvP = (mpv - stepsize); + bMotionPathVert *mpvN = (mpv + stepsize); + + if ((equals_v3v3(mpv->co, mpvP->co)==0) || (equals_v3v3(mpv->co, mpvN->co)==0)) { + sprintf(str, "%d", (sfra+i)); + view3d_cached_text_draw_add(mpv->co[0], mpv->co[1], mpv->co[2], str, 0); + } + } + } + } + + /* Keyframes - dots and numbers */ + if (avs->path_viewflag & MOTIONPATH_VIEW_KFNOS) { + AnimData *adt= BKE_animdata_from_id(&ob->id); + DLRBT_Tree keys; + + /* build list of all keyframes in active action for object or pchan */ + BLI_dlrbTree_init(&keys); + + if (adt) { + /* for now, it is assumed that keyframes for bones are all grouped in a single group */ + if (pchan) { + bActionGroup *agrp= action_groups_find_named(adt->action, pchan->name); + + if (agrp) { + agroup_to_keylist(adt, agrp, &keys, NULL); + BLI_dlrbTree_linkedlist_sync(&keys); + } + } + else { + action_to_keylist(adt, adt->action, &keys, NULL); + BLI_dlrbTree_linkedlist_sync(&keys); + } + } + + /* Draw slightly-larger yellow dots at each keyframe */ + UI_ThemeColor(TH_VERTEX_SELECT); + glPointSize(4.0f); // XXX perhaps a bit too big + + glBegin(GL_POINTS); + for (i=0, mpv=mpv_start; i < len; i++, mpv++) { + float mframe= (float)(sfra + i); + + if (BLI_dlrbTree_search_exact(&keys, compare_ak_cfraPtr, &mframe)) + glVertex3fv(mpv->co); + } + glEnd(); + + glPointSize(1.0f); + + /* Draw frame numbers of keyframes */ + if (avs->path_viewflag & (MOTIONPATH_VIEW_FNUMS|MOTIONPATH_VIEW_KFNOS)) { + for (i=0, mpv=mpv_start; i < len; i++, mpv++) { + float mframe= (float)(sfra + i); + + if (BLI_dlrbTree_search_exact(&keys, compare_ak_cfraPtr, &mframe)) { + char str[32]; + + sprintf(str, "%d", (sfra+i)); + view3d_cached_text_draw_add(mpv->co[0], mpv->co[1], mpv->co[2], str, 0); + } + } + } + + BLI_dlrbTree_free(&keys); + } +} + +/* Clean up drawing environment after drawing motion paths */ +void draw_motion_paths_cleanup(Scene *scene, View3D *v3d, ARegion *ar) +{ + if (v3d->zbuf) glEnable(GL_DEPTH_TEST); + glPopMatrix(); +} + +#if 0 // XXX temp file guards + +/* ***************************** Onion Skinning (Ghosts) ******************************** */ + +#if 0 // XXX only for bones +/* helper function for ghost drawing - sets/removes flags for temporarily + * hiding unselected bones while drawing ghosts + */ +static void ghost_poses_tag_unselected(Object *ob, short unset) +{ + bArmature *arm= ob->data; + bPose *pose= ob->pose; + bPoseChannel *pchan; + + /* don't do anything if no hiding any bones */ + if ((arm->flag & ARM_GHOST_ONLYSEL)==0) + return; + + /* loop over all pchans, adding/removing tags as appropriate */ + for (pchan= pose->chanbase.first; pchan; pchan= pchan->next) { + if ((pchan->bone) && (arm->layer & pchan->bone->layer)) { + if (unset) { + /* remove tags from all pchans if cleaning up */ + pchan->bone->flag &= ~BONE_HIDDEN_PG; + } + else { + /* set tags on unselected pchans only */ + if ((pchan->bone->flag & BONE_SELECTED)==0) + pchan->bone->flag |= BONE_HIDDEN_PG; + } + } + } +} +#endif // XXX only for bones + +/* draw ghosts that occur within a frame range + * note: object should be in posemode + */ +static void draw_ghost_poses_range(Scene *scene, View3D *v3d, ARegion *ar, Base *base) +{ + Object *ob= base->object; + AnimData *adt= BKE_animdata_from_id(&ob->id); + bArmature *arm= ob->data; + bPose *posen, *poseo; + float start, end, stepsize, range, colfac; + int cfrao, flago, ipoflago; + + start = (float)arm->ghostsf; + end = (float)arm->ghostef; + if (end <= start) + return; + + stepsize= (float)(arm->ghostsize); + range= (float)(end - start); + + /* store values */ + ob->mode &= ~OB_MODE_POSE; + cfrao= CFRA; + flago= arm->flag; + arm->flag &= ~(ARM_DRAWNAMES|ARM_DRAWAXES); + ipoflago= ob->ipoflag; + ob->ipoflag |= OB_DISABLE_PATH; + + /* copy the pose */ + poseo= ob->pose; + copy_pose(&posen, ob->pose, 1); + ob->pose= posen; + armature_rebuild_pose(ob, ob->data); /* child pointers for IK */ + ghost_poses_tag_unselected(ob, 0); /* hide unselected bones if need be */ + + glEnable(GL_BLEND); + if (v3d->zbuf) glDisable(GL_DEPTH_TEST); + + /* draw from first frame of range to last */ + for (CFRA= (int)start; CFRA < end; CFRA += (int)stepsize) { + colfac = (end - (float)CFRA) / range; + UI_ThemeColorShadeAlpha(TH_WIRE, 0, -128-(int)(120.0*sqrt(colfac))); + + BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + where_is_pose(scene, ob); + draw_pose_bones(scene, v3d, ar, base, OB_WIRE); + } + glDisable(GL_BLEND); + if (v3d->zbuf) glEnable(GL_DEPTH_TEST); + + ghost_poses_tag_unselected(ob, 1); /* unhide unselected bones if need be */ + free_pose(posen); + + /* restore */ + CFRA= cfrao; + ob->pose= poseo; + arm->flag= flago; + armature_rebuild_pose(ob, ob->data); + ob->mode |= OB_MODE_POSE; + ob->ipoflag= ipoflago; +} + +/* draw ghosts on keyframes in action within range + * - object should be in posemode + */ +static void draw_ghost_poses_keys(Scene *scene, View3D *v3d, ARegion *ar, Base *base) +{ + Object *ob= base->object; + AnimData *adt= BKE_animdata_from_id(&ob->id); + bAction *act= (adt) ? adt->action : NULL; + bArmature *arm= ob->data; + bPose *posen, *poseo; + DLRBT_Tree keys; + ActKeyColumn *ak, *akn; + float start, end, range, colfac, i; + int cfrao, flago; + + start = (float)arm->ghostsf; + end = (float)arm->ghostef; + if (end <= start) + return; + + /* get keyframes - then clip to only within range */ + BLI_dlrbTree_init(&keys); + action_to_keylist(adt, act, &keys, NULL); + BLI_dlrbTree_linkedlist_sync(&keys); + + range= 0; + for (ak= keys.first; ak; ak= akn) { + akn= ak->next; + + if ((ak->cfra < start) || (ak->cfra > end)) + BLI_freelinkN((ListBase *)&keys, ak); + else + range++; + } + if (range == 0) return; + + /* store values */ + ob->mode &= ~OB_MODE_POSE; + cfrao= CFRA; + flago= arm->flag; + arm->flag &= ~(ARM_DRAWNAMES|ARM_DRAWAXES); + ob->ipoflag |= OB_DISABLE_PATH; + + /* copy the pose */ + poseo= ob->pose; + copy_pose(&posen, ob->pose, 1); + ob->pose= posen; + armature_rebuild_pose(ob, ob->data); /* child pointers for IK */ + ghost_poses_tag_unselected(ob, 0); /* hide unselected bones if need be */ + + glEnable(GL_BLEND); + if (v3d->zbuf) glDisable(GL_DEPTH_TEST); + + /* draw from first frame of range to last */ + for (ak=keys.first, i=0; ak; ak=ak->next, i++) { + colfac = i/range; + UI_ThemeColorShadeAlpha(TH_WIRE, 0, -128-(int)(120.0*sqrt(colfac))); + + CFRA= (int)ak->cfra; + + BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + where_is_pose(scene, ob); + draw_pose_bones(scene, v3d, ar, base, OB_WIRE); + } + glDisable(GL_BLEND); + if (v3d->zbuf) glEnable(GL_DEPTH_TEST); + + ghost_poses_tag_unselected(ob, 1); /* unhide unselected bones if need be */ + BLI_dlrbTree_free(&keys); + free_pose(posen); + + /* restore */ + CFRA= cfrao; + ob->pose= poseo; + arm->flag= flago; + armature_rebuild_pose(ob, ob->data); + ob->mode |= OB_MODE_POSE; +} + +/* draw ghosts around current frame + * - object is supposed to be armature in posemode + */ +static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base) +{ + Object *ob= base->object; + AnimData *adt= BKE_animdata_from_id(&ob->id); + bArmature *arm= ob->data; + bPose *posen, *poseo; + float cur, start, end, stepsize, range, colfac, actframe, ctime; + int cfrao, flago; + + /* pre conditions, get an action with sufficient frames */ + if ELEM(NULL, adt, adt->action) + return; + + calc_action_range(adt->action, &start, &end, 0); + if (start == end) + return; + + stepsize= (float)(arm->ghostsize); + range= (float)(arm->ghostep)*stepsize + 0.5f; /* plus half to make the for loop end correct */ + + /* store values */ + ob->mode &= ~OB_MODE_POSE; + cfrao= CFRA; + actframe= BKE_nla_tweakedit_remap(adt, (float)CFRA, 0); + flago= arm->flag; + arm->flag &= ~(ARM_DRAWNAMES|ARM_DRAWAXES); + + /* copy the pose */ + poseo= ob->pose; + copy_pose(&posen, ob->pose, 1); + ob->pose= posen; + armature_rebuild_pose(ob, ob->data); /* child pointers for IK */ + ghost_poses_tag_unselected(ob, 0); /* hide unselected bones if need be */ + + glEnable(GL_BLEND); + if (v3d->zbuf) glDisable(GL_DEPTH_TEST); + + /* draw from darkest blend to lowest */ + for(cur= stepsize; cur= start && actframe+ctime <= end) { + CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe+ctime, NLATIME_CONVERT_MAP); + + if (CFRA != cfrao) { + BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + where_is_pose(scene, ob); + draw_pose_bones(scene, v3d, ar, base, OB_WIRE); + } + } + + ctime= cur + (float)fmod((float)cfrao, stepsize) - stepsize+1.0f; /* ensures consistant stepping */ + colfac= ctime/range; + UI_ThemeColorShadeAlpha(TH_WIRE, 0, -128-(int)(120.0*sqrt(colfac))); + + /* only within action range */ + if ((actframe-ctime >= start) && (actframe-ctime <= end)) { + CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe-ctime, NLATIME_CONVERT_MAP); + + if (CFRA != cfrao) { + BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL); + where_is_pose(scene, ob); + draw_pose_bones(scene, v3d, ar, base, OB_WIRE); + } + } + } + glDisable(GL_BLEND); + if (v3d->zbuf) glEnable(GL_DEPTH_TEST); + + ghost_poses_tag_unselected(ob, 1); /* unhide unselected bones if need be */ + free_pose(posen); + + /* restore */ + CFRA= cfrao; + ob->pose= poseo; + arm->flag= flago; + armature_rebuild_pose(ob, ob->data); + ob->mode |= OB_MODE_POSE; +} + + + +#endif // XXX temp file guards diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index bf5d516c03a..a8e140dbca3 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -43,6 +43,9 @@ struct wmWindowManager; struct EditMesh; struct ViewContext; struct ARegionType; +struct bPoseChannel; +struct bAnimVizSettings; +struct bMotionPath; #define BL_NEAR_CLIP 0.001 @@ -84,6 +87,15 @@ void VIEW3D_OT_drawtype(struct wmOperatorType *ot); void view3d_boxview_copy(ScrArea *sa, ARegion *ar); +/* drawanim.c */ +void draw_motion_paths_init(Scene *scene, View3D *v3d, struct ARegion *ar); +void draw_motion_path_instance(Scene *scene, View3D *v3d, struct ARegion *ar, + struct Object *ob, struct bPoseChannel *pchan, + struct bAnimVizSettings *avs, struct bMotionPath *mpath); +void draw_motion_paths_cleanup(Scene *scene, View3D *v3d, struct ARegion *ar); + + + /* drawobject.c */ void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, int flag); int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt); diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index e7c8070b7c5..17af631350a 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -94,14 +94,14 @@ #include "view3d_intern.h" // own include - +// TODO: should return whether there is valid context to continue void view3d_set_viewcontext(bContext *C, ViewContext *vc) { memset(vc, 0, sizeof(ViewContext)); vc->ar= CTX_wm_region(C); vc->scene= CTX_data_scene(C); vc->v3d= CTX_wm_view3d(C); - vc->rv3d= vc->ar->regiondata; + vc->rv3d= CTX_wm_region_view3d(C); vc->obact= CTX_data_active_object(C); vc->obedit= CTX_data_edit_object(C); } diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 9847b3a9219..aa3b921565f 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -46,13 +46,23 @@ struct Object; /* Motion Paths ------------------------------------ */ /* (used for Pose Channels and Objects) */ -/* Data point for motion path */ +/* Data point for motion path (mpv) */ typedef struct bMotionPathVert { float co[3]; /* coordinates of point in 3D-space */ int flag; /* quick settings */ } bMotionPathVert; -/* Motion Path data cache - for elements providing transforms (i.e. Objects or PoseChannels) */ +/* bMotionPathVert->flag */ +typedef enum eMotionPathVert_Flag { + /* vert is selected */ + MOTIONPATH_VERT_SEL = (1<<0), +} eMotionPathVert_Flag; + +/* ........ */ + +/* Motion Path data cache (mpath) + * - for elements providing transforms (i.e. Objects or PoseChannels) + */ typedef struct bMotionPath { bMotionPathVert *points; /* path samples */ int length; /* the number of cached verts */ @@ -60,33 +70,79 @@ typedef struct bMotionPath { int start_frame; /* for drawing paths, the start frame number */ int end_frame; /* for drawing paths, the end frame number */ - int flag; /* extra settings */ + int flag; /* baking settings - eMotionPath_Flag */ } bMotionPath; +/* bMotionPath->flag */ +typedef enum eMotionPath_Flag { + /* (for bones) path represents the head of the bone */ + MOTIONPATH_FLAG_BHEAD = (1<<0), + /* motion path is being edited */ + MOTIONPATH_FLAG_EDIT = (1<<1), +} eMotionPath_Flag; +/* Visualisation General --------------------------- */ +/* for Objects or Poses (but NOT PoseChannels) */ -/* Animation Visualisation Settings - for Objects or Armatures (not PoseChannels) */ +/* Animation Visualisation Settings (avs) */ typedef struct bAnimVizSettings { + /* Onion-Skinning Settings ----------------- */ + int ghost_sf, ghost_ef; /* start and end frames of ghost-drawing range (only used for GHOST_TYPE_RANGE) */ + int ghost_bc, ghost_ac; /* number of frames before/after current frame to show */ + + short ghost_type; /* eOnionSkinTypes */ + short ghost_step; /* number of frames between each ghost shown (not for GHOST_TYPE_KEYS) */ + int pad; - int pathflag; /* eMotionPath_Settings */ - int pathsf, pathef; /* start and end frames of path-calculation range */ - int pathbc, pathac; /* number of frames before/after current frame of path-calculation */ + /* Motion Path Settings ------------------- */ + short path_type; /* eMotionPath_Types */ + short path_step; /* number of frames between points indicated on the paths */ + + short path_viewflag; /* eMotionPaths_ViewFlag */ + short path_bakeflag; /* eMotionPaths_BakeFlag */ + + int path_sf, path_ef; /* start and end frames of path-calculation range */ + int path_bc, path_ac; /* number of frames before/after current frame to show */ } bAnimVizSettings; -/* bMotionPathSettings->flag */ -typedef enum eMotionPath_Settings { + +/* bAnimVizSettings->ghost_type */ +typedef enum eOnionSkin_Types { + /* around current frame */ + GHOST_TYPE_ACFRA = 0, + /* show ghosts within the specified frame range */ + GHOST_TYPE_RANGE, + /* show ghosts on keyframes within the specified range only */ + GHOST_TYPE_KEYS, +} eOnionSkin_Types; + + +/* bAnimVizSettings->path_type */ +typedef enum eMotionPaths_Types { + /* show the paths along their entire ranges */ + MOTIONPATH_TYPE_RANGE = 0, + /* only show the parts of the paths around the current frame */ + MOTIONPATH_TYPE_ACFRA, +} eMotionPath_Types; + +/* bAnimVizSettings->path_viewflag */ +typedef enum eMotionPaths_ViewFlag { /* show frames on path */ - MOTIONPATH_FLAG_FNUMS = (1<<0), + MOTIONPATH_VIEW_FNUMS = (1<<0), /* show keyframes on path */ - MOTIONPATH_FLAG_KFRAS = (1<<1), - /* for bones - calculate head-points for curves instead of tips */ - MOTIONPATH_FLAG_HEADS = (1<<2), - /* show path around current frame */ - MOTIONPATH_FLAG_ACFRA = (1<<3), + MOTIONPATH_VIEW_KFRAS = (1<<1), /* show keyframe/frame numbers */ - MOTIONPATH_FLAG_KFNOS = (1<<4) -} eMotionPath_Settings; + MOTIONPATH_VIEW_KFNOS = (1<<2), +} eMotionPath_ViewFlag; + +/* bAnimVizSettings->path_bakeflag */ +typedef enum eMotionPaths_BakeFlag { + /* motion paths directly associated with this block of settings needs updating */ + MOTIONPATH_BAKE_NEEDS_RECALC = (1<<0), + /* for bones - calculate head-points for curves instead of tips */ + MOTIONPATH_BAKE_HEADS = (1<<1), +} eMotionPath_BakeFlag; /* ************************************************ */ /* Poses */ @@ -113,9 +169,11 @@ typedef struct bPoseChannel { short protectflag; /* protect channels from being transformed */ short agrp_index; /* index of action-group this bone belongs to (0 = default/no group) */ +// XXX depreceated.... old animation system (armature only viz) ---- int pathlen; /* for drawing paths, the amount of frames */ int pathsf; /* for drawing paths, the start frame number */ int pathef; /* for drawing paths, the end frame number */ +// XXX end of depreceated code ------------------------------------- struct Bone *bone; /* set on read file or rebuild pose */ struct bPoseChannel *parent; /* set on read file or rebuild pose */ @@ -152,8 +210,9 @@ typedef struct bPoseChannel { float ikrotweight; /* weight of joint rotation constraint */ float iklinweight; /* weight of joint stretch constraint */ - float *path; /* totpath x 3 x float */ - struct Object *custom; /* draws custom object instead of this channel */ + float *path; /* totpath x 3 x float */ // XXX depreceated... old animation system (armature only viz) + bMotionPath *mpath; /* motion path cache for this bone */ + struct Object *custom; /* draws custom object instead of default bone shape */ } bPoseChannel; @@ -259,6 +318,8 @@ typedef struct bPose { int iksolver; /* ik solver to use, see ePose_IKSolverType */ void *ikdata; /* temporary IK data, depends on the IK solver. Not saved in file */ void *ikparam; /* IK solver parameters, structure depends on iksolver */ + + bAnimVizSettings avs; /* settings for visualisation of bone animation */ } bPose; @@ -283,7 +344,7 @@ typedef enum ePose_Flags { /* IK Solvers ------------------------------------ */ /* bPose->iksolver and bPose->ikparam->iksolver */ -typedef enum { +typedef enum ePose_IKSolverType { IKSOLVER_LEGACY = 0, IKSOLVER_ITASC, } ePose_IKSolverType; @@ -310,7 +371,7 @@ typedef struct bItasc { } bItasc; /* bItasc->flag */ -typedef enum { +typedef enum eItasc_Flags { ITASC_AUTO_STEP = (1<<0), ITASC_INITIAL_REITERATION = (1<<1), ITASC_REITERATION = (1<<2), @@ -318,7 +379,7 @@ typedef enum { } eItasc_Flags; /* bItasc->solver */ -typedef enum { +typedef enum eItasc_Solver { ITASC_SOLVER_SDLS = 0, /* selective damped least square, suitable for CopyPose constraint */ ITASC_SOLVER_DLS /* damped least square with numerical filtering of damping */ } eItasc_Solver; @@ -509,15 +570,14 @@ typedef enum eSAction_Flag { } eSAction_Flag; /* SpaceAction Mode Settings */ -// XXX should this be used by other editors too? typedef enum eAnimEdit_Context { - /* action (default) */ + /* action on the active object */ SACTCONT_ACTION = 0, - /* editing of shapekey's IPO block */ + /* list of all shapekeys on the active object, linked with their F-Curves */ SACTCONT_SHAPEKEY, /* editing of gpencil data */ SACTCONT_GPENCIL, - /* dopesheet */ + /* dopesheet (default) */ SACTCONT_DOPESHEET, } eAnimEdit_Context; diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h index ea549f9aeba..1b0da09058a 100644 --- a/source/blender/makesdna/DNA_armature_types.h +++ b/source/blender/makesdna/DNA_armature_types.h @@ -92,11 +92,14 @@ typedef struct bArmature { int pad; int layer, layer_protected; /* for buttons to work, both variables in this order together */ + +// XXX depreceated... old animaton system (armature only viz) --- short ghostep, ghostsize; /* number of frames to ghosts to show, and step between them */ short ghosttype, pathsize; /* ghost drawing options and number of frames between points of path */ int ghostsf, ghostef; /* start and end frames of ghost-drawing range */ int pathsf, pathef; /* start and end frames of path-calculation range for all bones */ int pathbc, pathac; /* number of frames before/after current frame of path-calculation for all bones */ +// XXX end of depreceated code ---------------------------------- } bArmature; /* armature->flag */ @@ -136,6 +139,7 @@ typedef enum eArmature_DeformFlag { } eArmature_DeformFlag; /* armature->pathflag */ +// XXX depreceated... old animation system (armature only viz) typedef enum eArmature_PathFlag { ARM_PATH_FNUMS = (1<<0), ARM_PATH_KFRAS = (1<<1), @@ -145,6 +149,7 @@ typedef enum eArmature_PathFlag { } eArmature_PathFlag; /* armature->ghosttype */ +// XXX depreceated... old animation system (armature only viz) typedef enum eArmature_GhostType { ARM_GHOST_CUR = 0, ARM_GHOST_RANGE, diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index d780aec7895..ace56e78a46 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -35,12 +35,12 @@ #include "DNA_listBase.h" #include "DNA_ID.h" +#include "DNA_action_types.h" #ifdef __cplusplus extern "C" { #endif - -struct bPose; + struct Object; struct AnimData; struct Ipo; @@ -115,6 +115,9 @@ typedef struct Object { struct bGPdata *gpd; /* Grease Pencil data */ + bAnimVizSettings avs; /* settings for visualisation of object-transform animation */ + bMotionPath *mpath; /* motion path cache for this object */ + ListBase constraintChannels; // XXX depreceated... old animation system ListBase effect; ListBase disp; -- cgit v1.2.3 From 053093fb7a3643c2a1843749fb36477d2d165036 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jan 2010 13:56:30 +0000 Subject: displacement was crashing because of the improved bumpmap. now its skipped when the ShaderInput's verts are not set. --- source/blender/render/intern/source/convertblender.c | 8 ++++++++ source/blender/render/intern/source/texture.c | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 05153113a55..feac12d931f 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -2284,6 +2284,14 @@ static void displace_render_face(Render *re, ObjectRen *obr, VlakRen *vlr, float shi.mat= vlr->mat; /* current input material */ shi.thread= 0; + /* TODO, assign these, displacement with new bumpmap is skipped without - campbell */ +#if 0 + /* order is not known ? */ + shi.v1= vlr->v1; + shi.v2= vlr->v2; + shi.v3= vlr->v3; +#endif + /* Displace the verts, flag is set when done */ if (!vlr->v1->flag) displace_render_vert(re, obr, &shi, vlr->v1,0, scale, mat, imat); diff --git a/source/blender/render/intern/source/texture.c b/source/blender/render/intern/source/texture.c index 9d03889a747..7bf349705cb 100644 --- a/source/blender/render/intern/source/texture.c +++ b/source/blender/render/intern/source/texture.c @@ -1737,7 +1737,8 @@ void do_material_tex(ShadeInput *shi) // (should not be here, dudnu, dudnv, dvdnu & dvdnv should probably be part of ShadeInputUV struct, // nu/nv in ShadeInput and this calculation should then move to shadeinput.c, shade_input_set_shade_texco() func.) // NOTE: test for shi->obr->ob here, since vlr/obr/obi can be 'fake' when called from fastshade(), another reason to move it.. - if ((mtex->texflag & MTEX_NEW_BUMP) && shi->obr && shi->obr->ob) { + // NOTE: shi->v1 is NULL when called from displace_render_vert, assigning verts in this case is not trivial because the shi quad face side is not know. + if ((mtex->texflag & MTEX_NEW_BUMP) && shi->obr && shi->obr->ob && shi->v1) { if(mtex->mapto & (MAP_NORM|MAP_DISPLACE|MAP_WARP)) { MTFace* tf = RE_vlakren_get_tface(shi->obr, shi->vlr, i, NULL, 0); int j1 = shi->i1, j2 = shi->i2, j3 = shi->i3; -- cgit v1.2.3 From 422335b3a247a719031cb5c8da83df1ae3c5fc03 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jan 2010 14:04:39 +0000 Subject: fix for crash in recent ghost/do_versions --- source/blender/blenloader/intern/readfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 8f127fc65cf..6717bb2b89c 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10341,7 +10341,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* if armature, copy settings for pose from armature data */ if (ob->pose && ob->data) { - bArmature *arm= (bArmature *)ob->data; + bArmature *arm= newlibadr(fd, lib, ob->data); bAnimVizSettings *avs= &ob->pose->avs; /* ghosting settings ---------------- */ -- cgit v1.2.3 From 30aff3b830ac222bae90bea02fef0d41fd9d197c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jan 2010 15:05:31 +0000 Subject: - grease pencil mode for drawing onto geometry (using the z-buffer), access in the 3D view panel. - account for parts of the line going off into infinity by making the stroke stretch between the last valid depth values (like an elastic band), if the endpoints are not over any geometry then use the closest valid depth. --- source/blender/editors/gpencil/gpencil_buttons.c | 8 +- source/blender/editors/gpencil/gpencil_paint.c | 110 ++++++++++++++++++---- source/blender/editors/include/ED_view3d.h | 3 +- source/blender/editors/space_view3d/view3d_edit.c | 34 ++++++- source/blender/makesdna/DNA_gpencil_types.h | 2 + source/blender/makesrna/intern/rna_gpencil.c | 13 ++- 6 files changed, 143 insertions(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c index 5deffbabb77..54dd43160a6 100644 --- a/source/blender/editors/gpencil/gpencil_buttons.c +++ b/source/blender/editors/gpencil/gpencil_buttons.c @@ -229,7 +229,7 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi { PointerRNA gpd_ptr; bGPDlayer *gpl; - uiLayout *col; + uiLayout *col, *row; /* make new PointerRNA for Grease Pencil block */ RNA_id_pointer_create((ID *)gpd, &gpd_ptr); @@ -259,7 +259,11 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi uiItemL(col, "Drawing Settings:", 0); /* 'stick to view' option */ - uiItemR(col, NULL, 0, &gpd_ptr, "view_space_draw", 0); + //uiItemR(col, NULL, 0, &gpd_ptr, "draw_mode", 0); + row= uiLayoutRow(layout, 1); + uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "VIEW"); + uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "CURSOR"); + uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "DEPTH"); } diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 3f9e3e04411..86ca69f6cf6 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -155,15 +155,7 @@ static int gpencil_draw_poll (bContext *C) static int gpencil_project_check (tGPsdata *p) { bGPdata *gpd= p->gpd; - - if( (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && - (p->scene->toolsettings->snap_mode==SCE_SNAP_MODE_FACE) && - (p->scene->toolsettings->snap_flag & SCE_SNAP_PROJECT) ) - { - return 1; - } - - return 0; + return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & GP_DATA_VIEWDEPTH)) ? 1:0; } /* ******************************************* */ @@ -220,13 +212,13 @@ static short gp_stroke_filtermval (tGPsdata *p, int mval[2], int pmval[2]) /* convert screen-coordinates to buffer-coordinates */ // XXX this method needs a total overhaul! -static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[]) +static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[], float *depth) { bGPdata *gpd= p->gpd; /* in 3d-space - pt->x/y/z are 3 side-by-side floats */ if (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) { - if(gpencil_project_check(p) && (view_autodist_simple(p->ar, mval, out))) { + if(gpencil_project_check(p) && (view_autodist_simple(p->ar, mval, out, depth))) { /* projecting onto 3D-Geometry * - nothing more needs to be done here, since view_autodist_simple() has already done it */ @@ -501,7 +493,7 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) ptc= gpd->sbuffer; /* convert screen-coordinates to appropriate coordinates (and store them) */ - gp_stroke_convertcoords(p, &ptc->x, &pt->x); + gp_stroke_convertcoords(p, &ptc->x, &pt->x, NULL); /* copy pressure */ pt->pressure= ptc->pressure; @@ -514,23 +506,107 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) ptc= ((tGPspoint *)gpd->sbuffer) + (gpd->sbuffer_size - 1); /* convert screen-coordinates to appropriate coordinates (and store them) */ - gp_stroke_convertcoords(p, &ptc->x, &pt->x); + gp_stroke_convertcoords(p, &ptc->x, &pt->x, NULL); /* copy pressure */ pt->pressure= ptc->pressure; } } else { + float *depth_arr= NULL; + + /* get an array of depths, far depths are blended */ + if(gpencil_project_check(p)) { + short mval[2]; + int interp_depth = 0; + int found_depth = 0; + + depth_arr= MEM_mallocN(sizeof(float) * gpd->sbuffer_size, "depth_points"); + + for (i=0, ptc=gpd->sbuffer; i < gpd->sbuffer_size; i++, ptc++, pt++) { + mval[0]= ptc->x; mval[1]= ptc->y; + if(view_autodist_depth(p->ar, mval, depth_arr+i) == 0) + interp_depth= TRUE; + else + found_depth= TRUE; + } + + if(found_depth==FALSE) { + /* eeh... not much we can do.. :/, ignore depth in this case, use the 3D cursor */ + for (i=gpd->sbuffer_size-1; i >= 0; i--) + depth_arr[i] = 0.9999f; + } + else if(interp_depth) { + /* found invalid depths, interpolate */ + float valid_last= FLT_MAX; + int valid_ofs= 0; + + float *depth_arr_up= MEM_callocN(sizeof(float) * gpd->sbuffer_size, "depth_points_up"); + float *depth_arr_down= MEM_callocN(sizeof(float) * gpd->sbuffer_size, "depth_points_down"); + + int *depth_tot_up= MEM_callocN(sizeof(int) * gpd->sbuffer_size, "depth_tot_up"); + int *depth_tot_down= MEM_callocN(sizeof(int) * gpd->sbuffer_size, "depth_tot_down"); + + for (i=0; i < gpd->sbuffer_size; i++) { + if(depth_arr[i] == FLT_MAX) { + depth_arr_up[i]= valid_last; + depth_tot_up[i]= ++valid_ofs; + } + else { + valid_last= depth_arr[i]; + valid_ofs= 0; + } + } + + valid_last= FLT_MAX; + valid_ofs= 0; + + for (i=gpd->sbuffer_size-1; i >= 0; i--) { + if(depth_arr[i] == FLT_MAX) { + depth_arr_down[i]= valid_last; + depth_tot_down[i]= ++valid_ofs; + } + else { + valid_last= depth_arr[i]; + valid_ofs= 0; + } + } + + /* now blend */ + for (i=0; i < gpd->sbuffer_size; i++) { + if(depth_arr[i] == FLT_MAX) { + if(depth_arr_up[i] != FLT_MAX && depth_arr_down[i] != FLT_MAX) { + depth_arr[i]= ((depth_arr_up[i] * depth_tot_down[i]) + (depth_arr_down[i] * depth_tot_up[i])) / (float)(depth_tot_down[i] + depth_tot_up[i]); + } else if (depth_arr_up[i] != FLT_MAX) { + depth_arr[i]= depth_arr_up[i]; + } else if (depth_arr_down[i] != FLT_MAX) { + depth_arr[i]= depth_arr_down[i]; + } + } + } + + MEM_freeN(depth_arr_up); + MEM_freeN(depth_arr_down); + + MEM_freeN(depth_tot_up); + MEM_freeN(depth_tot_down); + } + } + + + pt= gps->points; + /* convert all points (normal behaviour) */ - for (i=0, ptc=gpd->sbuffer; i < gpd->sbuffer_size && ptc; i++, ptc++) { + for (i=0, ptc=gpd->sbuffer; i < gpd->sbuffer_size && ptc; i++, ptc++, pt++) { /* convert screen-coordinates to appropriate coordinates (and store them) */ - gp_stroke_convertcoords(p, &ptc->x, &pt->x); + gp_stroke_convertcoords(p, &ptc->x, &pt->x, depth_arr ? depth_arr+i:NULL); /* copy pressure */ pt->pressure= ptc->pressure; - - pt++; } + + if(depth_arr) + MEM_freeN(depth_arr); } /* add stroke to frame */ diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index de5a9fe4e07..2e439f8fdef 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -128,7 +128,8 @@ int view_autodist(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, s /* only draw so view_autodist_simple can be called many times after */ int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d); -int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3]); +int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3], float *force_depth); +int view_autodist_depth(struct ARegion *ar, short *mval, float *depth); /* select */ #define MAXPICKBUF 10000 diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 9b0712ac255..bfd2ecb4939 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -2282,7 +2282,7 @@ int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d) //, float *autodi } // no 4x4 sampling, run view_autodist_init first -int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3] ) //, float *autodist ) +int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3], float *force_depth) //, float *autodist ) { RegionView3D *rv3d= ar->regiondata; bglMats mats; /* ZBuffer depth vars, could cache? */ @@ -2295,15 +2295,18 @@ int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3] ) //, if (mval[1] >= rv3d->depths->h) return 0; /* Get Z Depths, needed for perspective, nice for ortho */ - bgl_get_mats(&mats); - depth= rv3d->depths->depths[mval[1]*rv3d->depths->w+mval[0]]; + if(force_depth) + depth= *force_depth; + else + depth= rv3d->depths->depths[mval[1]*rv3d->depths->w+mval[0]]; - if (depth==MAXFLOAT) + if (depth==FLT_MAX) return 0; cent[0] = (double)mval[0]; cent[1] = (double)mval[1]; + bgl_get_mats(&mats); if (!gluUnProject(cent[0], cent[1], depth, mats.modelview, mats.projection, (GLint *)mats.viewport, &p[0], &p[1], &p[2])) return 0; @@ -2313,6 +2316,29 @@ int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3] ) //, return 1; } +int view_autodist_depth(struct ARegion *ar, short *mval, float *depth) +{ + RegionView3D *rv3d= ar->regiondata; + *depth= FLT_MAX; + + if (mval[0] < 0) return 0; + if (mval[1] < 0) return 0; + if (mval[0] >= rv3d->depths->w) return 0; + if (mval[1] >= rv3d->depths->h) return 0; + + /* Get Z Depths, needed for perspective, nice for ortho */ + *depth= rv3d->depths->depths[mval[1]*rv3d->depths->w+mval[0]]; + + /* float error means we need to shave off some */ + + if(*depth >= 1.0) { + *depth= FLT_MAX; + } + + return (*depth==FLT_MAX) ? 0:1; + return 0; +} + /* ********************* NDOF ************************ */ /* note: this code is confusing and unclear... (ton) */ /* **************************************************** */ diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index 4bae9935ea7..9ba3c243d20 100644 --- a/source/blender/makesdna/DNA_gpencil_types.h +++ b/source/blender/makesdna/DNA_gpencil_types.h @@ -146,5 +146,7 @@ typedef struct bGPdata { #define GP_DATA_EDITPAINT (1<<3) /* new strokes are added in viewport space */ #define GP_DATA_VIEWALIGN (1<<4) + /* Project into the screens Z values */ +#define GP_DATA_VIEWDEPTH (1<<5) #endif /* DNA_GPENCIL_TYPES_H */ diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 129fad4e98c..d55f5f21e72 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -220,6 +220,12 @@ static void rna_def_gpencil_data(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; + static EnumPropertyItem draw_mode_items[] = { + {GP_DATA_VIEWALIGN, "CURSOR", 0, "Cursor", ""}, + {0, "VIEW", 0, "View", ""}, /* weired, GP_DATA_VIEWALIGN is inverted */ + {GP_DATA_VIEWALIGN|GP_DATA_VIEWDEPTH, "DEPTH", 0, "Depth", ""}, + {0, NULL, 0, NULL, NULL}}; + srna= RNA_def_struct(brna, "GreasePencil", "ID"); RNA_def_struct_sdna(srna, "bGPdata"); RNA_def_struct_ui_text(srna, "Grease Pencil", "Freehand annotation sketchbook."); @@ -232,9 +238,10 @@ static void rna_def_gpencil_data(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layers", "Similar to layers in Photoshop."); /* Flags */ - prop= RNA_def_property(srna, "view_space_draw", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", GP_DATA_VIEWALIGN); - RNA_def_property_ui_text(prop, "Stick to View", "Newly drawn strokes get added in view space (i.e. sketches stick to data when view is manipulated)."); + prop= RNA_def_property(srna, "draw_mode", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag"); + RNA_def_property_enum_items(prop, draw_mode_items); + RNA_def_property_ui_text(prop, "Draw Mode", ""); } /* --- */ -- cgit v1.2.3 From 4ab4d2dd20791101215b39609bf174762e42e58d Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Fri, 1 Jan 2010 15:48:14 +0000 Subject: Fix some build warnings --- source/blender/blenkernel/BKE_utildefines.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h index c052af775f2..77015876290 100644 --- a/source/blender/blenkernel/BKE_utildefines.h +++ b/source/blender/blenkernel/BKE_utildefines.h @@ -97,7 +97,9 @@ /* some math and copy defines */ +#ifndef SWAP #define SWAP(type, a, b) { type sw_ap; sw_ap=(a); (a)=(b); (b)=sw_ap; } +#endif #define ABS(a) ( (a)<0 ? (-(a)) : (a) ) -- cgit v1.2.3 From 11e529f4f77e6eae519f7b2b91055cf8b2d459ba Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jan 2010 15:57:17 +0000 Subject: made the array interpolation function from last commit into a generic function /* given an array with some invalid values this function interpolates valid values * replacing the invalid ones */ int interp_sparse_array(float *array, int list_size, float skipval) --- source/blender/blenlib/BLI_math_geom.h | 2 + source/blender/blenlib/intern/math_geom.c | 80 ++++++++++++++++++++++++++ source/blender/editors/gpencil/gpencil_paint.c | 54 +---------------- 3 files changed, 83 insertions(+), 53 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h index e676001fba5..0bbe8fac976 100644 --- a/source/blender/blenlib/BLI_math_geom.h +++ b/source/blender/blenlib/BLI_math_geom.h @@ -121,6 +121,8 @@ void interp_weights_poly_v3(float w[], float v[][3], int n, float p[3]); void interp_cubic_v3(float x[3], float v[3], float x1[3], float v1[3], float x2[3], float v2[3], float t); +int interp_sparse_array(float *array, int list_size, float invalid); + void barycentric_transform(float pt_tar[3], float const pt_src[3], const float tri_tar_p1[3], const float tri_tar_p2[3], const float tri_tar_p3[3], const float tri_src_p1[3], const float tri_src_p2[3], const float tri_src_p3[3]); diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 470e5d71a45..2b94227099c 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -32,6 +32,7 @@ #include "BLI_math.h" #include "BLI_memarena.h" +#include "MEM_guardedalloc.h" /********************************** Polygons *********************************/ @@ -1408,6 +1409,85 @@ void barycentric_transform(float pt_tar[3], float const pt_src[3], madd_v3_v3v3fl(pt_tar, pt_tar, no_tar, (z_ofs_src / area_src) * area_tar); } +/* given an array with some invalid values this function interpolates valid values + * replacing the invalid ones */ +int interp_sparse_array(float *array, int list_size, float skipval) +{ + int found_invalid = 0; + int found_valid = 0; + int i; + + for (i=0; i < list_size; i++) { + if(array[i] == skipval) + found_invalid= 1; + else + found_valid= 1; + } + + if(found_valid==0) { + return -1; + } + else if (found_invalid==0) { + return 0; + } + else { + /* found invalid depths, interpolate */ + float valid_last= skipval; + int valid_ofs= 0; + + float *array_up= MEM_callocN(sizeof(float) * list_size, "interp_sparse_array up"); + float *array_down= MEM_callocN(sizeof(float) * list_size, "interp_sparse_array up"); + + int *ofs_tot_up= MEM_callocN(sizeof(int) * list_size, "interp_sparse_array tup"); + int *ofs_tot_down= MEM_callocN(sizeof(int) * list_size, "interp_sparse_array tdown"); + + for (i=0; i < list_size; i++) { + if(array[i] == skipval) { + array_up[i]= valid_last; + ofs_tot_up[i]= ++valid_ofs; + } + else { + valid_last= array[i]; + valid_ofs= 0; + } + } + + valid_last= skipval; + valid_ofs= 0; + + for (i=list_size-1; i >= 0; i--) { + if(array[i] == skipval) { + array_down[i]= valid_last; + ofs_tot_down[i]= ++valid_ofs; + } + else { + valid_last= array[i]; + valid_ofs= 0; + } + } + + /* now blend */ + for (i=0; i < list_size; i++) { + if(array[i] == skipval) { + if(array_up[i] != skipval && array_down[i] != skipval) { + array[i]= ((array_up[i] * ofs_tot_down[i]) + (array_down[i] * ofs_tot_up[i])) / (float)(ofs_tot_down[i] + ofs_tot_up[i]); + } else if (array_up[i] != skipval) { + array[i]= array_up[i]; + } else if (array_down[i] != skipval) { + array[i]= array_down[i]; + } + } + } + + MEM_freeN(array_up); + MEM_freeN(array_down); + + MEM_freeN(ofs_tot_up); + MEM_freeN(ofs_tot_down); + } + + return 1; +} /* Mean value weights - smooth interpolation weights for polygons with * more than 3 vertices */ diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 86ca69f6cf6..905f8c482e9 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -537,59 +537,7 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) depth_arr[i] = 0.9999f; } else if(interp_depth) { - /* found invalid depths, interpolate */ - float valid_last= FLT_MAX; - int valid_ofs= 0; - - float *depth_arr_up= MEM_callocN(sizeof(float) * gpd->sbuffer_size, "depth_points_up"); - float *depth_arr_down= MEM_callocN(sizeof(float) * gpd->sbuffer_size, "depth_points_down"); - - int *depth_tot_up= MEM_callocN(sizeof(int) * gpd->sbuffer_size, "depth_tot_up"); - int *depth_tot_down= MEM_callocN(sizeof(int) * gpd->sbuffer_size, "depth_tot_down"); - - for (i=0; i < gpd->sbuffer_size; i++) { - if(depth_arr[i] == FLT_MAX) { - depth_arr_up[i]= valid_last; - depth_tot_up[i]= ++valid_ofs; - } - else { - valid_last= depth_arr[i]; - valid_ofs= 0; - } - } - - valid_last= FLT_MAX; - valid_ofs= 0; - - for (i=gpd->sbuffer_size-1; i >= 0; i--) { - if(depth_arr[i] == FLT_MAX) { - depth_arr_down[i]= valid_last; - depth_tot_down[i]= ++valid_ofs; - } - else { - valid_last= depth_arr[i]; - valid_ofs= 0; - } - } - - /* now blend */ - for (i=0; i < gpd->sbuffer_size; i++) { - if(depth_arr[i] == FLT_MAX) { - if(depth_arr_up[i] != FLT_MAX && depth_arr_down[i] != FLT_MAX) { - depth_arr[i]= ((depth_arr_up[i] * depth_tot_down[i]) + (depth_arr_down[i] * depth_tot_up[i])) / (float)(depth_tot_down[i] + depth_tot_up[i]); - } else if (depth_arr_up[i] != FLT_MAX) { - depth_arr[i]= depth_arr_up[i]; - } else if (depth_arr_down[i] != FLT_MAX) { - depth_arr[i]= depth_arr_down[i]; - } - } - } - - MEM_freeN(depth_arr_up); - MEM_freeN(depth_arr_down); - - MEM_freeN(depth_tot_up); - MEM_freeN(depth_tot_down); + interp_sparse_array(depth_arr, gpd->sbuffer_size, FLT_MAX); } } -- cgit v1.2.3 From 7cc72d5830c8440a2b05ef15f1eeba42c615fdc3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jan 2010 16:46:27 +0000 Subject: grease pencil stroke depth option, rather then snapping to geometry you can draw over existing grease pencil lines. makes it easuer to draw 3D shapes with grease pencil. --- source/blender/editors/gpencil/gpencil_buttons.c | 8 +++++--- source/blender/editors/gpencil/gpencil_paint.c | 4 ++-- source/blender/editors/include/ED_view3d.h | 2 +- source/blender/editors/space_view3d/view3d_draw.c | 23 ++++++++++++++++++++++ source/blender/editors/space_view3d/view3d_edit.c | 11 +++++++++-- .../blender/editors/space_view3d/view3d_intern.h | 1 + source/blender/makesdna/DNA_gpencil_types.h | 3 ++- source/blender/makesrna/intern/rna_gpencil.c | 3 ++- 8 files changed, 45 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c index 54dd43160a6..4f12f072e72 100644 --- a/source/blender/editors/gpencil/gpencil_buttons.c +++ b/source/blender/editors/gpencil/gpencil_buttons.c @@ -254,16 +254,18 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi } /* draw gpd drawing settings first ------------------------------------- */ - col= uiLayoutColumn(layout, 0); + col= uiLayoutColumn(layout, 1); /* label */ uiItemL(col, "Drawing Settings:", 0); /* 'stick to view' option */ //uiItemR(col, NULL, 0, &gpd_ptr, "draw_mode", 0); - row= uiLayoutRow(layout, 1); + row= uiLayoutRow(col, 1); uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "VIEW"); uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "CURSOR"); - uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "DEPTH"); + row= uiLayoutRow(col, 1); + uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "SURFACE"); + uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "STROKE"); } diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 905f8c482e9..d48ff411f10 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -155,7 +155,7 @@ static int gpencil_draw_poll (bContext *C) static int gpencil_project_check (tGPsdata *p) { bGPdata *gpd= p->gpd; - return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & GP_DATA_VIEWDEPTH)) ? 1:0; + return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & (GP_DATA_DEPTH_VIEW | GP_DATA_DEPTH_STROKE))) ? 1:0; } /* ******************************************* */ @@ -1165,7 +1165,7 @@ static void gpencil_draw_exit (bContext *C, wmOperator *op) /* need to restore the original projection settings before packing up */ view3d_operator_needs_opengl(C); - view_autodist_init(p->scene, p->ar, v3d); + view_autodist_init(p->scene, p->ar, v3d, (p->gpd->flag & GP_DATA_DEPTH_STROKE) ? 1:0); } gp_paint_cleanup(p); diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index 2e439f8fdef..b087829d6b0 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -127,7 +127,7 @@ unsigned int view3d_sample_backbuf(struct ViewContext *vc, int x, int y); int view_autodist(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, short *mval, float mouse_worldloc[3]); /* only draw so view_autodist_simple can be called many times after */ -int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d); +int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, int mode); int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3], float *force_depth); int view_autodist_depth(struct ARegion *ar, short *mval, float *depth); diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 2cef7461e85..f251e54ead1 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1643,6 +1643,29 @@ void view3d_update_depths(ARegion *ar, View3D *v3d) } } +void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d) +{ + RegionView3D *rv3d= ar->regiondata; + Scene *sce; + + setwinmatrixview3d(ar, v3d, NULL); /* 0= no pick rect */ + setviewmatrixview3d(scene, v3d, rv3d); /* note: calls where_is_object for camera... */ + + mul_m4_m4m4(rv3d->persmat, rv3d->viewmat, rv3d->winmat); + invert_m4_m4(rv3d->persinv, rv3d->persmat); + invert_m4_m4(rv3d->viewinv, rv3d->viewmat); + + glClear(GL_DEPTH_BUFFER_BIT); + + wmLoadMatrix(rv3d->viewmat); + + v3d->zbuf= TRUE; + glEnable(GL_DEPTH_TEST); + + draw_gpencil_3dview_ext(scene, ar, 1); + return; +} + void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *)) { RegionView3D *rv3d= ar->regiondata; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index bfd2ecb4939..87219b16dd2 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -2265,12 +2265,19 @@ int view_autodist(Scene *scene, ARegion *ar, View3D *v3d, short *mval, float mou return 1; } -int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d) //, float *autodist ) +int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode) //, float *autodist ) { RegionView3D *rv3d= ar->regiondata; /* Get Z Depths, needed for perspective, nice for ortho */ - draw_depth(scene, ar, v3d, NULL); + switch(mode) { + case 0: + draw_depth(scene, ar, v3d, NULL); + break; + case 1: + draw_depth_gpencil(scene, ar, v3d); + break; + } /* force updating */ if (rv3d->depths) { diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index a8e140dbca3..a5d4c61bc01 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -116,6 +116,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o /* view3d_draw.c */ void view3d_main_area_draw(const struct bContext *C, struct ARegion *ar); void draw_depth(Scene *scene, struct ARegion *ar, View3D *v3d, int (* func)(void *)); +void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d); void view3d_clr_clipping(void); void view3d_set_clipping(RegionView3D *rv3d); void add_view3d_after(View3D *v3d, Base *base, int type, int flag); diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index 9ba3c243d20..5755e23675a 100644 --- a/source/blender/makesdna/DNA_gpencil_types.h +++ b/source/blender/makesdna/DNA_gpencil_types.h @@ -147,6 +147,7 @@ typedef struct bGPdata { /* new strokes are added in viewport space */ #define GP_DATA_VIEWALIGN (1<<4) /* Project into the screens Z values */ -#define GP_DATA_VIEWDEPTH (1<<5) +#define GP_DATA_DEPTH_VIEW (1<<5) +#define GP_DATA_DEPTH_STROKE (1<<6) #endif /* DNA_GPENCIL_TYPES_H */ diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index d55f5f21e72..71c87fe9fa1 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -223,7 +223,8 @@ static void rna_def_gpencil_data(BlenderRNA *brna) static EnumPropertyItem draw_mode_items[] = { {GP_DATA_VIEWALIGN, "CURSOR", 0, "Cursor", ""}, {0, "VIEW", 0, "View", ""}, /* weired, GP_DATA_VIEWALIGN is inverted */ - {GP_DATA_VIEWALIGN|GP_DATA_VIEWDEPTH, "DEPTH", 0, "Depth", ""}, + {GP_DATA_VIEWALIGN|GP_DATA_DEPTH_VIEW, "SURFACE", 0, "Surface", ""}, + {GP_DATA_VIEWALIGN|GP_DATA_DEPTH_STROKE, "STROKE", 0, "Stroke", ""}, {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "GreasePencil", "ID"); -- cgit v1.2.3 From d0ec3f428c5bafd46d7bd80dedff15c6c7f9f8e6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jan 2010 17:48:48 +0000 Subject: - grease pencil option to only use the endpoint depths. this makes drawing shapes in 3D easier since it wont stick to every depth the line passes through. - use a 8x8 area when finding stroke depths since thin lines can get ignored if the point is not close enough to them. --- source/blender/editors/gpencil/gpencil_buttons.c | 4 + source/blender/editors/gpencil/gpencil_paint.c | 26 ++++- source/blender/editors/include/ED_view3d.h | 4 +- source/blender/editors/space_view3d/view3d_edit.c | 117 ++++++++++++---------- source/blender/makesdna/DNA_gpencil_types.h | 2 + source/blender/makesrna/intern/rna_gpencil.c | 6 ++ 6 files changed, 100 insertions(+), 59 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c index 4f12f072e72..e93788bc495 100644 --- a/source/blender/editors/gpencil/gpencil_buttons.c +++ b/source/blender/editors/gpencil/gpencil_buttons.c @@ -266,6 +266,10 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi row= uiLayoutRow(col, 1); uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "SURFACE"); uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "STROKE"); + + row= uiLayoutRow(col, 0); + uiLayoutSetActive(row, (gpd->flag & GP_DATA_DEPTH_STROKE) ? 1:0); + uiItemR(row, NULL, 0, &gpd_ptr, "use_stroke_endpoints", 0); } diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index d48ff411f10..5efc9d916c1 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -218,7 +218,7 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[], flo /* in 3d-space - pt->x/y/z are 3 side-by-side floats */ if (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) { - if(gpencil_project_check(p) && (view_autodist_simple(p->ar, mval, out, depth))) { + if(gpencil_project_check(p) && (view_autodist_simple(p->ar, mval, out, 0, depth))) { /* projecting onto 3D-Geometry * - nothing more needs to be done here, since view_autodist_simple() has already done it */ @@ -458,6 +458,8 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) bGPDspoint *pt; tGPspoint *ptc; int i, totelem; + /* since strokes are so fine, when using their depth we need a margin otherwise they might get missed */ + int depth_margin = (p->gpd->flag & GP_DATA_DEPTH_STROKE) ? 4 : 0; /* get total number of points to allocate space for * - drawing straight-lines only requires the endpoints @@ -525,7 +527,7 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) for (i=0, ptc=gpd->sbuffer; i < gpd->sbuffer_size; i++, ptc++, pt++) { mval[0]= ptc->x; mval[1]= ptc->y; - if(view_autodist_depth(p->ar, mval, depth_arr+i) == 0) + if(view_autodist_depth(p->ar, mval, depth_margin, depth_arr+i) == 0) interp_depth= TRUE; else found_depth= TRUE; @@ -537,6 +539,26 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) depth_arr[i] = 0.9999f; } else if(interp_depth) { + if(p->gpd->flag & GP_DATA_DEPTH_STROKE_ENDPOINTS) { + /* remove all info between the valid endpoints */ + int first_valid = 0; + int last_valid = 0; + + for (i=0; i < gpd->sbuffer_size; i++) + if(depth_arr[i] != FLT_MAX) + break; + first_valid= i; + + for (i=gpd->sbuffer_size-1; i >= 0; i--) + if(depth_arr[i] != FLT_MAX) + break; + last_valid= i; + + /* invalidate non-endpoints, so only blend between first and last */ + for (i=first_valid+1; i < last_valid; i++) + depth_arr[i]= FLT_MAX; + } + interp_sparse_array(depth_arr, gpd->sbuffer_size, FLT_MAX); } } diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index b087829d6b0..a7879c7b70d 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -128,8 +128,8 @@ int view_autodist(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, s /* only draw so view_autodist_simple can be called many times after */ int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, int mode); -int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3], float *force_depth); -int view_autodist_depth(struct ARegion *ar, short *mval, float *depth); +int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3], int margin, float *force_depth); +int view_autodist_depth(struct ARegion *ar, short *mval, int margin, float *depth); /* select */ #define MAXPICKBUF 10000 diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 87219b16dd2..029bb84ca2f 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1474,7 +1474,7 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op) /* ZBuffer depth vars */ bglMats mats; - float depth, depth_close= MAXFLOAT; + float depth, depth_close= FLT_MAX; int had_depth = 0; double cent[2], p[3]; int xs, ys; @@ -1531,7 +1531,7 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op) double p_corner[3]; /* no depths to use, we cant do anything! */ - if (depth_close==MAXFLOAT){ + if (depth_close==FLT_MAX){ BKE_report(op->reports, RPT_ERROR, "Depth Too Large"); return OPERATOR_CANCELLED; } @@ -1559,7 +1559,7 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op) new_dist = rv3d->dist; /* convert the drawn rectangle into 3d space */ - if (depth_close!=MAXFLOAT && gluUnProject(cent[0], cent[1], depth_close, mats.modelview, mats.projection, (GLint *)mats.viewport, &p[0], &p[1], &p[2])) { + if (depth_close!=FLT_MAX && gluUnProject(cent[0], cent[1], depth_close, mats.modelview, mats.projection, (GLint *)mats.viewport, &p[0], &p[1], &p[2])) { new_ofs[0] = -p[0]; new_ofs[1] = -p[1]; new_ofs[2] = -p[2]; @@ -2197,22 +2197,66 @@ void VIEW3D_OT_manipulator(wmOperatorType *ot) /* ************************* below the line! *********************** */ +static float view_autodist_depth_margin(ARegion *ar, short *mval, int margin) +{ + RegionView3D *rv3d= ar->regiondata; + float depth= FLT_MAX; + + if(margin==0) { + if (mval[0] < 0) return 0; + if (mval[1] < 0) return 0; + if (mval[0] >= rv3d->depths->w) return 0; + if (mval[1] >= rv3d->depths->h) return 0; + + /* Get Z Depths, needed for perspective, nice for ortho */ + depth= rv3d->depths->depths[mval[1]*rv3d->depths->w+mval[0]]; + if(depth >= rv3d->depths->depth_range[1] || depth <= rv3d->depths->depth_range[0]) { + depth= FLT_MAX; + } + } + else { + rcti rect; + float depth_close= FLT_MAX; + int xs, ys; + + rect.xmax = mval[0] + margin; + rect.ymax = mval[1] + margin; + + rect.xmin = mval[0] - margin; + rect.ymin = mval[1] - margin; + + /* Constrain rect to depth bounds */ + if (rect.xmin < 0) rect.xmin = 0; + if (rect.ymin < 0) rect.ymin = 0; + if (rect.xmax >= rv3d->depths->w) rect.xmax = rv3d->depths->w-1; + if (rect.ymax >= rv3d->depths->h) rect.ymax = rv3d->depths->h-1; + + /* Find the closest Z pixel */ + for (xs=rect.xmin; xs < rect.xmax; xs++) { + for (ys=rect.ymin; ys < rect.ymax; ys++) { + depth= rv3d->depths->depths[ys*rv3d->depths->w+xs]; + if(depth < rv3d->depths->depth_range[1] && depth > rv3d->depths->depth_range[0]) { + if (depth_close > depth) { + depth_close = depth; + } + } + } + } + + depth= depth_close; + } + + return depth; +} + /* XXX todo Zooms in on a border drawn by the user */ int view_autodist(Scene *scene, ARegion *ar, View3D *v3d, short *mval, float mouse_worldloc[3] ) //, float *autodist ) { RegionView3D *rv3d= ar->regiondata; bglMats mats; /* ZBuffer depth vars */ - rcti rect; - float depth, depth_close= MAXFLOAT; + float depth_close= FLT_MAX; int had_depth = 0; double cent[2], p[3]; - int xs, ys; - - rect.xmax = mval[0] + 4; - rect.ymax = mval[1] + 4; - - rect.xmin = mval[0] - 4; - rect.ymin = mval[1] - 4; /* Get Z Depths, needed for perspective, nice for ortho */ bgl_get_mats(&mats); @@ -2226,25 +2270,9 @@ int view_autodist(Scene *scene, ARegion *ar, View3D *v3d, short *mval, float mou view3d_update_depths(ar, v3d); - /* Constrain rect to depth bounds */ - if (rect.xmin < 0) rect.xmin = 0; - if (rect.ymin < 0) rect.ymin = 0; - if (rect.xmax >= rv3d->depths->w) rect.xmax = rv3d->depths->w-1; - if (rect.ymax >= rv3d->depths->h) rect.ymax = rv3d->depths->h-1; - - /* Find the closest Z pixel */ - for (xs=rect.xmin; xs < rect.xmax; xs++) { - for (ys=rect.ymin; ys < rect.ymax; ys++) { - depth= rv3d->depths->depths[ys*rv3d->depths->w+xs]; - if(depth < rv3d->depths->depth_range[1] && depth > rv3d->depths->depth_range[0]) { - if (depth_close > depth) { - depth_close = depth; - } - } - } - } + depth_close= view_autodist_depth_margin(ar, mval, 4); - if (depth_close==MAXFLOAT) + if (depth_close==FLT_MAX) return 0; if (had_depth==0) { @@ -2289,23 +2317,17 @@ int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode) //, flo } // no 4x4 sampling, run view_autodist_init first -int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3], float *force_depth) //, float *autodist ) +int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3], int margin, float *force_depth) //, float *autodist ) { - RegionView3D *rv3d= ar->regiondata; bglMats mats; /* ZBuffer depth vars, could cache? */ float depth; double cent[2], p[3]; - if (mval[0] < 0) return 0; - if (mval[1] < 0) return 0; - if (mval[0] >= rv3d->depths->w) return 0; - if (mval[1] >= rv3d->depths->h) return 0; - /* Get Z Depths, needed for perspective, nice for ortho */ if(force_depth) depth= *force_depth; else - depth= rv3d->depths->depths[mval[1]*rv3d->depths->w+mval[0]]; + depth= view_autodist_depth_margin(ar, mval, margin); if (depth==FLT_MAX) return 0; @@ -2323,24 +2345,9 @@ int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3], floa return 1; } -int view_autodist_depth(struct ARegion *ar, short *mval, float *depth) +int view_autodist_depth(struct ARegion *ar, short *mval, int margin, float *depth) { - RegionView3D *rv3d= ar->regiondata; - *depth= FLT_MAX; - - if (mval[0] < 0) return 0; - if (mval[1] < 0) return 0; - if (mval[0] >= rv3d->depths->w) return 0; - if (mval[1] >= rv3d->depths->h) return 0; - - /* Get Z Depths, needed for perspective, nice for ortho */ - *depth= rv3d->depths->depths[mval[1]*rv3d->depths->w+mval[0]]; - - /* float error means we need to shave off some */ - - if(*depth >= 1.0) { - *depth= FLT_MAX; - } + *depth= view_autodist_depth_margin(ar, mval, margin); return (*depth==FLT_MAX) ? 0:1; return 0; diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index 5755e23675a..332442b9f42 100644 --- a/source/blender/makesdna/DNA_gpencil_types.h +++ b/source/blender/makesdna/DNA_gpencil_types.h @@ -150,4 +150,6 @@ typedef struct bGPdata { #define GP_DATA_DEPTH_VIEW (1<<5) #define GP_DATA_DEPTH_STROKE (1<<6) +#define GP_DATA_DEPTH_STROKE_ENDPOINTS (1<<7) + #endif /* DNA_GPENCIL_TYPES_H */ diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 71c87fe9fa1..87cf9502c69 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -243,6 +243,12 @@ static void rna_def_gpencil_data(BlenderRNA *brna) RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag"); RNA_def_property_enum_items(prop, draw_mode_items); RNA_def_property_ui_text(prop, "Draw Mode", ""); + + prop= RNA_def_property(srna, "use_stroke_endpoints", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_DATA_DEPTH_STROKE_ENDPOINTS); + RNA_def_property_ui_text(prop, "Only Endpoints", "When snapping the stroke to existing lines, only use the first and last parts of the line."); + + } /* --- */ -- cgit v1.2.3 From 637873deb0952bdd64d4fb461145685379191210 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Fri, 1 Jan 2010 18:45:21 +0000 Subject: Added another three effects that you can use with the Sound to F-Curve modifier, have fun! --- source/blender/editors/space_graph/graph_edit.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c index 607425665af..ffc450b5368 100644 --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@ -1052,6 +1052,10 @@ static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op) RNA_float_get(op->ptr, "attack"), RNA_float_get(op->ptr, "release"), RNA_float_get(op->ptr, "threshold"), + RNA_boolean_get(op->ptr, "accumulate"), + RNA_boolean_get(op->ptr, "additive"), + RNA_boolean_get(op->ptr, "square"), + RNA_float_get(op->ptr, "sthreshold"), FPS, &sbi.length); if (sbi.samples == NULL) { @@ -1123,6 +1127,10 @@ void GRAPH_OT_sound_bake (wmOperatorType *ot) RNA_def_float(ot->srna, "attack", 0.005, 0.0, 2.0, "Attack time", "", 0.01, 0.1); RNA_def_float(ot->srna, "release", 0.2, 0.0, 5.0, "Release time", "", 0.01, 0.2); RNA_def_float(ot->srna, "threshold", 0.0, 0.0, 1.0, "Threshold", "", 0.01, 0.1); + RNA_def_boolean(ot->srna, "accumulate", 0, "Accumulate", ""); + RNA_def_boolean(ot->srna, "additive", 0, "Additive", ""); + RNA_def_boolean(ot->srna, "square", 0, "Square", ""); + RNA_def_float(ot->srna, "sthreshold", 0.1, 0.0, 1.0, "Square Threshold", "", 0.01, 0.1); } /* ******************** Sample Keyframes Operator *********************** */ -- cgit v1.2.3 From a2fe0cf5d79b399c0dd97d9a144333ddece71015 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jan 2010 19:10:31 +0000 Subject: armature ghost stepsize was not initialized, Aligorith: can you check this is correct? remove other small warnings --- source/blender/blenlib/intern/BLI_kdopbvh.c | 4 +++- source/blender/blenloader/intern/readfile.c | 1 + source/blender/editors/space_console/console_ops.c | 4 ++-- source/blender/editors/space_sequencer/sequencer_edit.c | 2 ++ source/blender/editors/space_view3d/drawanimviz.c | 2 +- source/blender/editors/space_view3d/view3d_draw.c | 1 - 6 files changed, 9 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index 3f4b9fbae25..eebff8dfaef 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -302,6 +302,8 @@ static BVHNode *bvh_medianof3(BVHNode **a, int lo, int mid, int hi, int axis) // return a[mid]; } } + +#if 0 /* * Quicksort algorithm modified for Introsort */ @@ -332,7 +334,7 @@ static void sort(BVHNode **a0, int begin, int end, int axis) bvh_insertionsort(a, begin, end, axis); } } -#if 0 + static void sort_along_axis(BVHTree *tree, int start, int end, int axis) { sort(tree->nodes, start, end, axis); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6717bb2b89c..88c120dc1e1 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -106,6 +106,7 @@ #include "BLI_storage_types.h" // for relname flags #include "BKE_animsys.h" +#include "BKE_anim.h" #include "BKE_action.h" #include "BKE_armature.h" #include "BKE_brush.h" diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index e615ae8f140..f3f3853f63b 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -824,7 +824,7 @@ static void console_modal_select_apply(bContext *C, wmOperator *op, wmEvent *eve static void set_cursor_exit(bContext *C, wmOperator *op) { - SpaceConsole *sc= CTX_wm_space_console(C); +// SpaceConsole *sc= CTX_wm_space_console(C); SetConsoleCursor *scu= op->customdata; /* @@ -840,7 +840,7 @@ static void set_cursor_exit(bContext *C, wmOperator *op) static int console_modal_select_invoke(bContext *C, wmOperator *op, wmEvent *event) { SpaceConsole *sc= CTX_wm_space_console(C); - ARegion *ar= CTX_wm_region(C); +// ARegion *ar= CTX_wm_region(C); SetConsoleCursor *scu; op->customdata= MEM_callocN(sizeof(SetConsoleCursor), "SetConsoleCursor"); diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index f174e96120c..0f3adae8c20 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2331,11 +2331,13 @@ void SEQUENCER_OT_view_all_preview(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER; } +#if 0 static EnumPropertyItem view_type_items[] = { {SEQ_VIEW_SEQUENCE, "SEQUENCER", ICON_SEQ_SEQUENCER, "Sequencer", ""}, {SEQ_VIEW_PREVIEW, "PREVIEW", ICON_SEQ_PREVIEW, "Image Preview", ""}, {SEQ_VIEW_SEQUENCE_PREVIEW, "SEQUENCER_PREVIEW", ICON_SEQ_SEQUENCER, "Sequencer and Image Preview", ""}, {0, NULL, 0, NULL, NULL}}; +#endif /* view_all operator */ static int sequencer_view_toggle_exec(bContext *C, wmOperator *op) diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c index c999de92ea2..8a9e1077530 100644 --- a/source/blender/editors/space_view3d/drawanimviz.c +++ b/source/blender/editors/space_view3d/drawanimviz.c @@ -110,7 +110,7 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar, //RegionView3D *rv3d= ar->regiondata; bMotionPathVert *mpv, *mpv_start; int sfra, efra, len; - int i, stepsize; + int i, stepsize= avs->ghost_step; /* get frame ranges */ if (avs->path_type == MOTIONPATH_TYPE_ACFRA) { diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index f251e54ead1..4e9d92e8c17 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1646,7 +1646,6 @@ void view3d_update_depths(ARegion *ar, View3D *v3d) void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d) { RegionView3D *rv3d= ar->regiondata; - Scene *sce; setwinmatrixview3d(ar, v3d, NULL); /* 0= no pick rect */ setviewmatrixview3d(scene, v3d, rv3d); /* note: calls where_is_object for camera... */ -- cgit v1.2.3 From a81a98148a627558dc7fbd64b71c653e8216ba03 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 1 Jan 2010 20:50:58 +0000 Subject: made region type into an enum --- source/blender/makesdna/DNA_screen_types.h | 18 ++++++++++-------- source/blender/makesrna/intern/rna_screen.c | 9 ++++++--- 2 files changed, 16 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h index 2bc7b1e8431..12f61cbb026 100644 --- a/source/blender/makesdna/DNA_screen_types.h +++ b/source/blender/makesdna/DNA_screen_types.h @@ -212,14 +212,16 @@ typedef struct ARegion { #define SCREEN_HANDLER_VERSE 3 /* regiontype, first two are the default set */ -#define RGN_TYPE_WINDOW 0 -#define RGN_TYPE_HEADER 1 -#define RGN_TYPE_CHANNELS 2 -#define RGN_TYPE_TEMPORARY 3 -#define RGN_TYPE_UI 4 -#define RGN_TYPE_TOOLS 5 -#define RGN_TYPE_TOOL_PROPS 6 -#define RGN_TYPE_PREVIEW 7 +enum { + RGN_TYPE_WINDOW = 0, + RGN_TYPE_HEADER, + RGN_TYPE_CHANNELS, + RGN_TYPE_TEMPORARY, + RGN_TYPE_UI, + RGN_TYPE_TOOLS, + RGN_TYPE_TOOL_PROPS, + RGN_TYPE_PREVIEW +}; /* region alignment */ #define RGN_ALIGN_NONE 0 diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c index 883c77b3faa..5a29eee5cf2 100644 --- a/source/blender/makesrna/intern/rna_screen.c +++ b/source/blender/makesrna/intern/rna_screen.c @@ -23,6 +23,7 @@ */ #include +#include #include "RNA_define.h" #include "RNA_types.h" @@ -37,9 +38,10 @@ EnumPropertyItem region_type_items[] = { {RGN_TYPE_WINDOW, "WINDOW", 0, "Window", ""}, {RGN_TYPE_HEADER, "HEADER", 0, "Header", ""}, {RGN_TYPE_CHANNELS, "CHANNELS", 0, "Channels", ""}, - {RGN_TYPE_TOOLS, "TOOLS", 0, "Tools", ""}, {RGN_TYPE_TEMPORARY, "TEMPORARY", 0, "Temporary", ""}, {RGN_TYPE_UI, "UI", 0, "UI", ""}, + {RGN_TYPE_TOOLS, "TOOLS", 0, "Tools", ""}, + {RGN_TYPE_TOOL_PROPS, "TOOL_PROPS", 0, "Tool Properties", ""}, {RGN_TYPE_PREVIEW, "PREVIEW", 0, "Preview", ""}, {0, NULL, 0, NULL, NULL}}; @@ -154,8 +156,9 @@ static void rna_def_region(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Region ID", "Unique ID for this region."); - prop= RNA_def_property(srna, "type", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "regiontype"); + prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "regiontype"); + RNA_def_property_enum_items(prop, region_type_items); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Region Type", "Type of this region."); -- cgit v1.2.3 From 55a62b34c1519622c64351d5b7d35b71d0ab1ba9 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 1 Jan 2010 21:53:55 +0000 Subject: Fix for 25657 - wrong var was getting used ("path" NOT "ghost") --- source/blender/editors/space_view3d/drawanimviz.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c index 8a9e1077530..ac9fc83f787 100644 --- a/source/blender/editors/space_view3d/drawanimviz.c +++ b/source/blender/editors/space_view3d/drawanimviz.c @@ -109,8 +109,9 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar, { //RegionView3D *rv3d= ar->regiondata; bMotionPathVert *mpv, *mpv_start; + int i, stepsize= avs->path_step; int sfra, efra, len; - int i, stepsize= avs->ghost_step; + /* get frame ranges */ if (avs->path_type == MOTIONPATH_TYPE_ACFRA) { -- cgit v1.2.3 From 028d7998bab7228dfe42882b828cc7ceb37202de Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Sat, 2 Jan 2010 00:47:26 +0000 Subject: SVN maintenance. --- source/blender/editors/space_view3d/drawanimviz.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c index ac9fc83f787..b8184a60cee 100644 --- a/source/blender/editors/space_view3d/drawanimviz.c +++ b/source/blender/editors/space_view3d/drawanimviz.c @@ -1,5 +1,5 @@ /** - * $Id: drawanim.c 24637 2009-11-18 11:40:55Z campbellbarton $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * -- cgit v1.2.3 From bbac520987e68492d27c12a2b863c7839309008b Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Sat, 2 Jan 2010 01:33:03 +0000 Subject: Add audaspace includes. And some reorg/cleaning. --- source/blender/editors/space_graph/Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/Makefile b/source/blender/editors/space_graph/Makefile index e04a354fb1d..65cdf1a3ffb 100644 --- a/source/blender/editors/space_graph/Makefile +++ b/source/blender/editors/space_graph/Makefile @@ -1,3 +1,5 @@ +# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*- +# vim: tabstop=8 # # $Id$ # @@ -37,6 +39,8 @@ CFLAGS += $(LEVEL_1_C_WARNINGS) CPPFLAGS += -I$(NAN_GLEW)/include CPPFLAGS += -I$(OPENGL_HEADERS) +CPPFLAGS += -I$(NAN_AUDASPACE)/include +CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include # not very neat.... CPPFLAGS += -I../../windowmanager @@ -47,8 +51,6 @@ CPPFLAGS += -I../../makesdna CPPFLAGS += -I../../makesrna CPPFLAGS += -I../../imbuf CPPFLAGS += -I../../python -CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include - -# own include -CPPFLAGS += -I../include +# own include +CPPFLAGS += -I../include -- cgit v1.2.3 From a7d268d38e348722977a9fcf72624af691e724cd Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 2 Jan 2010 04:14:17 +0000 Subject: Cessen Rigging Request: "Copy Transforms" Constraint This constraint simply copies the transformation matrix of the target, and assigns it to the owner. --- source/blender/blenkernel/intern/constraint.c | 57 +++++++- source/blender/blenloader/intern/readfile.c | 13 ++ source/blender/makesdna/DNA_constraint_types.h | 23 ++-- source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/rna_constraint.c | 174 ++++++++++++++---------- 5 files changed, 186 insertions(+), 82 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 797fe8f7324..4de148803f8 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -1690,8 +1690,8 @@ static void sizelike_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *t if (VALID_CONS_TARGET(ct)) { float obsize[3], size[3]; - mat4_to_size( size,ct->matrix); - mat4_to_size( obsize,cob->matrix); + mat4_to_size(size, ct->matrix); + mat4_to_size(obsize, cob->matrix); if ((data->flag & SIZELIKE_X) && (obsize[0] != 0)) { if (data->flag & SIZELIKE_OFFSET) { @@ -1735,6 +1735,58 @@ static bConstraintTypeInfo CTI_SIZELIKE = { sizelike_evaluate /* evaluate */ }; +/* ----------- Copy Transforms ------------- */ + +static int translike_get_tars (bConstraint *con, ListBase *list) +{ + if (con && list) { + bTransLikeConstraint *data= con->data; + bConstraintTarget *ct; + + /* standard target-getting macro for single-target constraints */ + SINGLETARGET_GET_TARS(con, data->tar, data->subtarget, ct, list) + + return 1; + } + + return 0; +} + +static void translike_flush_tars (bConstraint *con, ListBase *list, short nocopy) +{ + if (con && list) { + bTransLikeConstraint *data= con->data; + bConstraintTarget *ct= list->first; + + /* the following macro is used for all standard single-target constraints */ + SINGLETARGET_FLUSH_TARS(con, data->tar, data->subtarget, ct, list, nocopy) + } +} + +static void translike_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets) +{ + bConstraintTarget *ct= targets->first; + + if (VALID_CONS_TARGET(ct)) { + /* just copy the entire transform matrix of the target */ + copy_m4_m4(cob->matrix, ct->matrix); + } +} + +static bConstraintTypeInfo CTI_TRANSLIKE = { + CONSTRAINT_TYPE_TRANSLIKE, /* type */ + sizeof(bTransLikeConstraint), /* size */ + "Copy Transforms", /* name */ + "bTransLikeConstraint", /* struct name */ + NULL, /* free data */ + NULL, /* relink data */ + NULL, /* copy data */ + NULL, /* new data */ + translike_get_tars, /* get constraint targets */ + translike_flush_tars, /* flush constraint targets */ + default_get_tarmat, /* get target matrix */ + translike_evaluate /* evaluate */ +}; /* ----------- Python Constraint -------------- */ @@ -3565,6 +3617,7 @@ static void constraints_init_typeinfo () { constraintsTypeInfo[20]= &CTI_SHRINKWRAP; /* Shrinkwrap Constraint */ constraintsTypeInfo[21]= &CTI_DAMPTRACK; /* Damped TrackTo Constraint */ constraintsTypeInfo[22]= &CTI_SPLINEIK; /* Spline IK Constraint */ + constraintsTypeInfo[23]= &CTI_TRANSLIKE; /* Copy Transforms Constraint */ } /* This function should be used for getting the appropriate type-info when only diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 88c120dc1e1..b3cc52add49 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2302,6 +2302,13 @@ static void lib_link_constraints(FileData *fd, ID *id, ListBase *conlist) data->tar = newlibadr(fd, id->lib, data->tar); } break; + case CONSTRAINT_TYPE_TRANSLIKE: + { + bTransLikeConstraint *data; + data= ((bTransLikeConstraint*)con->data); + data->tar = newlibadr(fd, id->lib, data->tar); + } + break; case CONSTRAINT_TYPE_NULL: break; } @@ -11154,6 +11161,12 @@ static void expand_constraints(FileData *fd, Main *mainvar, ListBase *lb) expand_doit(fd, mainvar, data->tar); } break; + case CONSTRAINT_TYPE_TRANSLIKE: + { + bTransLikeConstraint *data = (bTransLikeConstraint*)curcon->data; + expand_doit(fd, mainvar, data->tar); + } + break; default: break; } diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index 0476d69544a..163933da12a 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -200,6 +200,20 @@ typedef struct bLocateLikeConstraint { char subtarget[32]; } bLocateLikeConstraint; +/* Copy Scale Constraint */ +typedef struct bSizeLikeConstraint { + Object *tar; + int flag; + int reserved1; + char subtarget[32]; +} bSizeLikeConstraint; + +/* Copy Transform Constraint */ +typedef struct bTransLikeConstraint { + Object *tar; + char subtarget[32]; +} bTransLikeConstraint; + /* Floor Constraint */ typedef struct bMinMaxConstraint { Object *tar; @@ -211,14 +225,6 @@ typedef struct bMinMaxConstraint { char subtarget[32]; } bMinMaxConstraint; -/* Copy Scale Constraint */ -typedef struct bSizeLikeConstraint { - Object *tar; - int flag; - int reserved1; - char subtarget[32]; -} bSizeLikeConstraint; - /* Action Constraint */ typedef struct bActionConstraint { Object *tar; @@ -401,6 +407,7 @@ typedef enum eBConstraint_Types { CONSTRAINT_TYPE_SHRINKWRAP, /* shrinkwrap (loc/rot) constraint */ CONSTRAINT_TYPE_DAMPTRACK, /* New Tracking constraint that minimises twisting */ CONSTRAINT_TYPE_SPLINEIK, /* Spline-IK - Align 'n' bones to a curve */ + CONSTRAINT_TYPE_TRANSLIKE, /* Copy transform matrix */ /* NOTE: no constraints are allowed to be added after this */ NUM_CONSTRAINT_TYPES diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 908d832daf1..39232113581 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -167,6 +167,7 @@ extern StructRNA RNA_Controller; extern StructRNA RNA_CopyLocationConstraint; extern StructRNA RNA_CopyRotationConstraint; extern StructRNA RNA_CopyScaleConstraint; +extern StructRNA RNA_CopyTransformsConstraint; extern StructRNA RNA_Curve; extern StructRNA RNA_CurveMap; extern StructRNA RNA_CurveMapping; diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index f9405dec531..5ec8d438c42 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -43,6 +43,7 @@ EnumPropertyItem constraint_type_items[] ={ {CONSTRAINT_TYPE_LOCLIKE, "COPY_LOCATION", ICON_CONSTRAINT_DATA, "Copy Location", ""}, {CONSTRAINT_TYPE_ROTLIKE, "COPY_ROTATION", ICON_CONSTRAINT_DATA, "Copy Rotation", ""}, {CONSTRAINT_TYPE_SIZELIKE, "COPY_SCALE", ICON_CONSTRAINT_DATA, "Copy Scale", ""}, + {CONSTRAINT_TYPE_TRANSLIKE, "COPY_TRANSFORMS", ICON_CONSTRAINT_DATA, "Copy Transforms", ""}, {CONSTRAINT_TYPE_DISTLIMIT, "LIMIT_DISTANCE", ICON_CONSTRAINT_DATA, "Limit Distance", ""}, {CONSTRAINT_TYPE_LOCLIMIT, "LIMIT_LOCATION", ICON_CONSTRAINT_DATA, "Limit Location", ""}, {CONSTRAINT_TYPE_ROTLIMIT, "LIMIT_ROTATION", ICON_CONSTRAINT_DATA, "Limit Rotation", ""}, @@ -151,6 +152,8 @@ static StructRNA *rna_ConstraintType_refine(struct PointerRNA *ptr) return &RNA_DampedTrackConstraint; case CONSTRAINT_TYPE_SPLINEIK: return &RNA_SplineIKConstraint; + case CONSTRAINT_TYPE_TRANSLIKE: + return &RNA_CopyTransformsConstraint; default: return &RNA_UnknownType; } @@ -647,6 +650,69 @@ static void rna_def_constraint_track_to(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); } +static void rna_def_constraint_locate_like(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "CopyLocationConstraint", "Constraint"); + RNA_def_struct_ui_text(srna, "Copy Location Constraint", "Copies the location of the target."); + + prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, "bConstraint", "headtail"); + RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1."); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + RNA_def_struct_sdna_from(srna, "bLocateLikeConstraint", "data"); + + prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "tar"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Target", "Target Object"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); + + prop= RNA_def_property(srna, "subtarget", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "subtarget"); + RNA_def_property_ui_text(prop, "Sub-Target", ""); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); + + prop= RNA_def_property(srna, "use_x", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_X); + RNA_def_property_ui_text(prop, "Copy X", "Copy the target's X location."); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + prop= RNA_def_property(srna, "use_y", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_Y); + RNA_def_property_ui_text(prop, "Copy Y", "Copy the target's Y location."); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + prop= RNA_def_property(srna, "use_z", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_Z); + RNA_def_property_ui_text(prop, "Copy Z", "Copy the target's Z location."); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + prop= RNA_def_property(srna, "invert_x", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_X_INVERT); + RNA_def_property_ui_text(prop, "Invert X", "Invert the X location."); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + prop= RNA_def_property(srna, "invert_y", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_Y_INVERT); + RNA_def_property_ui_text(prop, "Invert Y", "Invert the Y location."); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + prop= RNA_def_property(srna, "invert_z", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_Z_INVERT); + RNA_def_property_ui_text(prop, "Invert Z", "Invert the Z location."); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + + prop= RNA_def_property(srna, "use_offset", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_OFFSET); + RNA_def_property_ui_text(prop, "Offset", "Add original location into copied location."); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); +} + static void rna_def_constraint_rotate_like(BlenderRNA *brna) { StructRNA *srna; @@ -703,20 +769,14 @@ static void rna_def_constraint_rotate_like(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); } -static void rna_def_constraint_locate_like(BlenderRNA *brna) +static void rna_def_constraint_size_like(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; - srna= RNA_def_struct(brna, "CopyLocationConstraint", "Constraint"); - RNA_def_struct_ui_text(srna, "Copy Location Constraint", "Copies the location of the target."); - - prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR); - RNA_def_property_float_sdna(prop, "bConstraint", "headtail"); - RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1."); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); - - RNA_def_struct_sdna_from(srna, "bLocateLikeConstraint", "data"); + srna= RNA_def_struct(brna, "CopyScaleConstraint", "Constraint"); + RNA_def_struct_ui_text(srna, "Copy Scale Constraint", "Copies the scale of the target."); + RNA_def_struct_sdna_from(srna, "bSizeLikeConstraint", "data"); prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "tar"); @@ -731,39 +791,50 @@ static void rna_def_constraint_locate_like(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); prop= RNA_def_property(srna, "use_x", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_X); - RNA_def_property_ui_text(prop, "Copy X", "Copy the target's X location."); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SIZELIKE_X); + RNA_def_property_ui_text(prop, "Copy X", "Copy the target's X scale."); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); prop= RNA_def_property(srna, "use_y", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_Y); - RNA_def_property_ui_text(prop, "Copy Y", "Copy the target's Y location."); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SIZELIKE_Y); + RNA_def_property_ui_text(prop, "Copy Y", "Copy the target's Y scale."); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); prop= RNA_def_property(srna, "use_z", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_Z); - RNA_def_property_ui_text(prop, "Copy Z", "Copy the target's Z location."); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SIZELIKE_Z); + RNA_def_property_ui_text(prop, "Copy Z", "Copy the target's Z scale."); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); - prop= RNA_def_property(srna, "invert_x", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_X_INVERT); - RNA_def_property_ui_text(prop, "Invert X", "Invert the X location."); + prop= RNA_def_property(srna, "use_offset", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SIZELIKE_OFFSET); + RNA_def_property_ui_text(prop, "Offset", "Add original scale into copied scale."); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); +} - prop= RNA_def_property(srna, "invert_y", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_Y_INVERT); - RNA_def_property_ui_text(prop, "Invert Y", "Invert the Y location."); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); +static void rna_def_constraint_transform_like(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; - prop= RNA_def_property(srna, "invert_z", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_Z_INVERT); - RNA_def_property_ui_text(prop, "Invert Z", "Invert the Z location."); + srna= RNA_def_struct(brna, "CopyTransformsConstraint", "Constraint"); + RNA_def_struct_ui_text(srna, "Copy Transforms Constraint", "Copies all the transforms of the target."); + RNA_def_struct_sdna_from(srna, "bTransLikeConstraint", "data"); + + prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, "bConstraint", "headtail"); + RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1."); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); - prop= RNA_def_property(srna, "use_offset", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", LOCLIKE_OFFSET); - RNA_def_property_ui_text(prop, "Offset", "Add original location into copied location."); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "tar"); + RNA_def_property_ui_text(prop, "Target", "Target Object"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); + + prop= RNA_def_property(srna, "subtarget", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "subtarget"); + RNA_def_property_ui_text(prop, "Sub-Target", ""); + RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); } static void rna_def_constraint_minmax(BlenderRNA *brna) @@ -817,48 +888,6 @@ static void rna_def_constraint_minmax(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); } -static void rna_def_constraint_size_like(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna= RNA_def_struct(brna, "CopyScaleConstraint", "Constraint"); - RNA_def_struct_ui_text(srna, "Copy Scale Constraint", "Copies the scale of the target."); - RNA_def_struct_sdna_from(srna, "bSizeLikeConstraint", "data"); - - prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, NULL, "tar"); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Target", "Target Object"); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); - - prop= RNA_def_property(srna, "subtarget", PROP_STRING, PROP_NONE); - RNA_def_property_string_sdna(prop, NULL, "subtarget"); - RNA_def_property_ui_text(prop, "Sub-Target", ""); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); - - prop= RNA_def_property(srna, "use_x", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SIZELIKE_X); - RNA_def_property_ui_text(prop, "Copy X", "Copy the target's X scale."); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); - - prop= RNA_def_property(srna, "use_y", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SIZELIKE_Y); - RNA_def_property_ui_text(prop, "Copy Y", "Copy the target's Y scale."); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); - - prop= RNA_def_property(srna, "use_z", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SIZELIKE_Z); - RNA_def_property_ui_text(prop, "Copy Z", "Copy the target's Z scale."); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); - - prop= RNA_def_property(srna, "use_offset", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", SIZELIKE_OFFSET); - RNA_def_property_ui_text(prop, "Offset", "Add original scale into copied scale."); - RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); -} - static void rna_def_constraint_action(BlenderRNA *brna) { StructRNA *srna; @@ -1869,6 +1898,7 @@ void RNA_def_constraint(BlenderRNA *brna) rna_def_constraint_size_like(brna); rna_def_constraint_locate_like(brna); rna_def_constraint_rotate_like(brna); + rna_def_constraint_transform_like(brna); rna_def_constraint_minmax(brna); rna_def_constraint_track_to(brna); rna_def_constraint_kinematic(brna); -- cgit v1.2.3 From 382e52e5c7465ff8e76ed20bda98099b4506aa0a Mon Sep 17 00:00:00 2001 From: Stefan Gartner Date: Sat, 2 Jan 2010 09:32:32 +0000 Subject: OS X Makefiles: append -DPARALLEL=1 to CPPFLAGS when compiling with OPENMP --- source/blender/editors/physics/Makefile | 8 +++++++- source/blender/editors/screen/Makefile | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/Makefile b/source/blender/editors/physics/Makefile index 63968fdd537..e9260b66087 100644 --- a/source/blender/editors/physics/Makefile +++ b/source/blender/editors/physics/Makefile @@ -53,4 +53,10 @@ CPPFLAGS += -I../../render/extern/include # own include -CPPFLAGS += -I../include +CPPFLAGS += -I../include + +ifeq ($(OS), darwin) + ifeq ($(WITH_BF_OPENMP), true) + CPPFLAGS += -DPARALLEL=1 + endif +endif diff --git a/source/blender/editors/screen/Makefile b/source/blender/editors/screen/Makefile index 87ba3337caa..23c9d130eec 100644 --- a/source/blender/editors/screen/Makefile +++ b/source/blender/editors/screen/Makefile @@ -60,3 +60,8 @@ ifeq ($(WITH_OPENEXR), true) CPPFLAGS += -DWITH_OPENEXR endif +ifeq ($(OS), darwin) + ifeq ($(WITH_BF_OPENMP), true) + CPPFLAGS += -DPARALLEL=1 + endif +endif -- cgit v1.2.3 From e83940d994d9c7fae8a97ae36a735af1403dbe00 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Jan 2010 10:42:38 +0000 Subject: support for multiple return values from rna functions & support for returning arrays, (no functions are using this yet). patch from Elia Sarti, (vekoon) with some modifications mainly for the python api. - multiple values are returned as a typle in the order that are defined. - added support for registered types returning multiple arguments (untested). - renamed func->ret --> func->c_ret, since this only defines what the C function returns. --- source/blender/makesrna/RNA_access.h | 1 - source/blender/makesrna/RNA_define.h | 1 + source/blender/makesrna/intern/makesrna.c | 47 ++++++---- source/blender/makesrna/intern/rna_access.c | 12 +-- source/blender/makesrna/intern/rna_define.c | 9 +- .../blender/makesrna/intern/rna_internal_types.h | 5 +- source/blender/python/intern/bpy_rna.c | 101 +++++++++++++++++---- 7 files changed, 129 insertions(+), 47 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 39232113581..e631e037e74 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -854,7 +854,6 @@ char *RNA_pointer_as_string(PointerRNA *ptr); /* Function */ const char *RNA_function_identifier(FunctionRNA *func); -PropertyRNA *RNA_function_return(FunctionRNA *func); const char *RNA_function_ui_description(FunctionRNA *func); int RNA_function_flag(FunctionRNA *func); int RNA_function_defined(FunctionRNA *func); diff --git a/source/blender/makesrna/RNA_define.h b/source/blender/makesrna/RNA_define.h index 37abe44f128..f340834d93b 100644 --- a/source/blender/makesrna/RNA_define.h +++ b/source/blender/makesrna/RNA_define.h @@ -172,6 +172,7 @@ void RNA_def_property_srna(PropertyRNA *prop, const char *type); FunctionRNA *RNA_def_function(StructRNA *srna, const char *identifier, const char *call); FunctionRNA *RNA_def_function_runtime(StructRNA *srna, const char *identifier, CallFunc call); void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret); +void RNA_def_function_return_mark(FunctionRNA *func, PropertyRNA *ret); void RNA_def_function_flag(FunctionRNA *func, int flag); void RNA_def_function_ui_description(FunctionRNA *func, const char *description); diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 5bdfe228e89..ca14acb4060 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -1236,16 +1236,18 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA for(; dparm; dparm= dparm->next) { if(dparm->prop->arraydimension) ptrstr= "*"; - else if(dparm->prop==func->ret) + else if(dparm->prop==func->c_ret) ptrstr= ((dparm->prop->type == PROP_POINTER) && !(dparm->prop->flag & PROP_RNAPTR))? "*": ""; + else if ((dparm->prop->flag & PROP_RETURN)) + ptrstr= ((dparm->prop->type == PROP_POINTER) && !(dparm->prop->flag & PROP_RNAPTR))? "**": "*"; else ptrstr= (dparm->prop->type == PROP_POINTER)? "*": ""; - + fprintf(f, "\t%s%s %s%s;\n", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), ptrstr, dparm->prop->identifier); } fprintf(f, "\tchar *_data"); - if(func->ret) fprintf(f, ", *_retdata"); + if(func->c_ret) fprintf(f, ", *_retdata"); fprintf(f, ";\n"); fprintf(f, "\t\n"); @@ -1259,7 +1261,12 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA dparm= dfunc->cont.properties.first; for(; dparm; dparm= dparm->next) { - if(dparm->prop==func->ret) + if ((dparm->prop->flag & PROP_RETURN)) + ptrstr= ""; + else + ptrstr= "*"; + + if(dparm->prop==func->c_ret) fprintf(f, "\t_retdata= _data;\n"); else if(dparm->prop->arraydimension) fprintf(f, "\t%s= ((%s%s*)_data);\n", dparm->prop->identifier, rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop)); @@ -1267,10 +1274,10 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA if(dparm->prop->flag & PROP_RNAPTR) fprintf(f, "\t%s= ((%s%s*)_data);\n", dparm->prop->identifier, rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop)); else - fprintf(f, "\t%s= *((%s%s**)_data);\n", dparm->prop->identifier, rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop)); + fprintf(f, "\t%s= %s((%s%s**)_data);\n", dparm->prop->identifier, ptrstr, rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop)); } else - fprintf(f, "\t%s= *((%s%s*)_data);\n", dparm->prop->identifier, rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop)); + fprintf(f, "\t%s= %s((%s%s*)_data);\n", dparm->prop->identifier, ptrstr, rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop)); if(dparm->next) fprintf(f, "\t_data+= %d;\n", rna_parameter_size(dparm->prop)); @@ -1279,7 +1286,7 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA if(dfunc->call) { fprintf(f, "\t\n"); fprintf(f, "\t"); - if(func->ret) fprintf(f, "%s= ", func->ret->identifier); + if(func->c_ret) fprintf(f, "%s= ", func->c_ret->identifier); fprintf(f, "%s(", dfunc->call); first= 1; @@ -1303,7 +1310,7 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA dparm= dfunc->cont.properties.first; for(; dparm; dparm= dparm->next) { - if(dparm->prop==func->ret) + if(dparm->prop==func->c_ret) continue; if(!first) fprintf(f, ", "); @@ -1314,10 +1321,10 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA fprintf(f, ");\n"); - if(func->ret) { - dparm= rna_find_parameter_def(func->ret); + if(func->c_ret) { + dparm= rna_find_parameter_def(func->c_ret); ptrstr= (((dparm->prop->type == PROP_POINTER) && !(dparm->prop->flag & PROP_RNAPTR)) || (dparm->prop->arraydimension))? "*": ""; - fprintf(f, "\t*((%s%s%s*)_retdata)= %s;\n", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), ptrstr, func->ret->identifier); + fprintf(f, "\t*((%s%s%s*)_retdata)= %s;\n", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), ptrstr, func->c_ret->identifier); } } @@ -1552,13 +1559,14 @@ static void rna_generate_static_parameter_prototypes(BlenderRNA *brna, StructRNA PropertyDefRNA *dparm; StructDefRNA *dsrna; int first; + char *ptrstr; dsrna= rna_find_struct_def(srna); func= dfunc->func; /* return type */ for(dparm= dfunc->cont.properties.first; dparm; dparm= dparm->next) { - if(dparm->prop==func->ret) { + if(dparm->prop==func->c_ret) { if(dparm->prop->arraydimension) fprintf(f, "XXX no array return types yet"); /* XXX not supported */ else if(dparm->prop->type == PROP_POINTER && !(dparm->prop->flag & PROP_RNAPTR)) @@ -1600,18 +1608,23 @@ static void rna_generate_static_parameter_prototypes(BlenderRNA *brna, StructRNA /* defined parameters */ for(dparm= dfunc->cont.properties.first; dparm; dparm= dparm->next) { - if(dparm->prop==func->ret) + if(dparm->prop==func->c_ret) continue; if(!first) fprintf(f, ", "); first= 0; + if((dparm->prop->flag & PROP_RETURN)) + ptrstr= "*"; + else + ptrstr= ""; + if(dparm->prop->arraydimension) fprintf(f, "%s%s %s[%d]", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), dparm->prop->identifier, dparm->prop->totarraylength); else if(dparm->prop->type == PROP_POINTER) - fprintf(f, "%s%s *%s", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), dparm->prop->identifier); + fprintf(f, "%s%s *%s%s", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), (dparm->prop->flag & PROP_RNAPTR) ? "" : ptrstr, dparm->prop->identifier); else - fprintf(f, "%s%s %s", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), dparm->prop->identifier); + fprintf(f, "%s%s %s%s", rna_type_struct(dparm->prop), rna_parameter_type_name(dparm->prop), ptrstr, dparm->prop->identifier); } fprintf(f, ");\n"); @@ -1890,8 +1903,8 @@ static void rna_generate_struct(BlenderRNA *brna, StructRNA *srna, FILE *f) dfunc= rna_find_function_def(func); if(dfunc->gencall) fprintf(f, "\t%s,\n", dfunc->gencall); else fprintf(f, "\tNULL,\n"); - - if(func->ret) fprintf(f, "\t(PropertyRNA*)&rna_%s_%s_%s\n", srna->identifier, func->identifier, func->ret->identifier); + + if(func->c_ret) fprintf(f, "\t(PropertyRNA*)&rna_%s_%s_%s\n", srna->identifier, func->identifier, func->c_ret->identifier); else fprintf(f, "\tNULL\n"); fprintf(f, "};\n"); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 7dcc72e4158..d8b31f4093e 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -3464,11 +3464,6 @@ const char *RNA_function_identifier(FunctionRNA *func) return func->identifier; } -PropertyRNA *RNA_function_return(FunctionRNA *func) -{ - return func->ret; -} - const char *RNA_function_ui_description(FunctionRNA *func) { return func->description; @@ -3929,7 +3924,7 @@ int RNA_function_call_direct_va(bContext *C, ReportList *reports, PointerRNA *pt tid= RNA_struct_identifier(ptr->type); fid= RNA_function_identifier(func); - pret= RNA_function_return(func); + pret= func->c_ret; flen= strlen(format); RNA_parameter_list_create(&parms, ptr, func); @@ -3937,14 +3932,17 @@ int RNA_function_call_direct_va(bContext *C, ReportList *reports, PointerRNA *pt for(i= 0, ofs= 0; iter.valid; RNA_parameter_list_next(&iter), i++) { parm= iter.parm; + flag= RNA_property_flag(parm); if(parm==pret) { retdata= iter.data; continue; } + else if (flag & PROP_RETURN) { + continue; + } pid= RNA_property_identifier(parm); - flag= RNA_property_flag(parm); if (ofs>=flen || format[ofs]=='N') { if (flag & PROP_REQUIRED) { diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 9bf5afdac48..854776e8742 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -2417,9 +2417,16 @@ FunctionRNA *RNA_def_function_runtime(StructRNA *srna, const char *identifier, C return func; } +/* C return value only!, multiple rna returns can be done with RNA_def_function_return_mark */ void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret) { - func->ret= ret; + func->c_ret= ret; + + RNA_def_function_return_mark(func, ret); +} + +void RNA_def_function_return_mark(FunctionRNA *func, PropertyRNA *ret) +{ ret->flag|=PROP_RETURN; } diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h index 4f05e6132f7..bef568bfa7d 100644 --- a/source/blender/makesrna/intern/rna_internal_types.h +++ b/source/blender/makesrna/intern/rna_internal_types.h @@ -118,8 +118,9 @@ struct FunctionRNA { /* callback to execute the function */ CallFunc call; - /* parameter for the return value */ - PropertyRNA *ret; + /* parameter for the return value + * note: this is only the C return value, rna functions can have multiple return values */ + PropertyRNA *c_ret; }; struct PropertyRNA { diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index c8f0a29ca64..fd28fa04c06 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2564,11 +2564,13 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) PointerRNA funcptr; ParameterList parms; ParameterIterator iter; - PropertyRNA *pret, *parm; + PropertyRNA *parm; PyObject *ret, *item; - int i, args_len, parms_len, flag, err= 0, kw_tot= 0, kw_arg; + int i, args_len, parms_len, ret_len, flag, err= 0, kw_tot= 0, kw_arg; const char *parm_id; - void *retdata= NULL; + + PropertyRNA *pret_single= NULL; + void *retdata_single= NULL; /* Should never happen but it does in rare cases */ if(self_ptr==NULL) { @@ -2586,12 +2588,12 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) * the same ID as the functions. */ RNA_pointer_create(self_ptr->id.data, &RNA_Function, self_func, &funcptr); - pret= RNA_function_return(self_func); args_len= PyTuple_GET_SIZE(args); RNA_parameter_list_create(&parms, self_ptr, self_func); RNA_parameter_list_begin(&parms, &iter); - parms_len = RNA_parameter_list_size(&parms); + parms_len= RNA_parameter_list_size(&parms); + ret_len= 0; if(args_len + (kw ? PyDict_Size(kw):0) > parms_len) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s(): takes at most %d arguments, got %d", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), parms_len, args_len); @@ -2601,14 +2603,20 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) /* parse function parameters */ for (i= 0; iter.valid && err==0; RNA_parameter_list_next(&iter)) { parm= iter.parm; + flag= RNA_property_flag(parm); + + /* only useful for single argument returns, we'll need another list loop for multiple */ + if (flag & PROP_RETURN) { + ret_len++; + if (pret_single==NULL) { + pret_single= parm; + retdata_single= iter.data; + } - if (parm==pret) { - retdata= iter.data; continue; } parm_id= RNA_property_identifier(parm); - flag= RNA_property_flag(parm); item= NULL; if ((i < args_len) && (flag & PROP_REQUIRED)) { @@ -2740,8 +2748,25 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) /* return value */ if(err==0) { - if(pret) { - ret= pyrna_param_to_py(&funcptr, pret, retdata); + if (ret_len > 0) { + if (ret_len > 1) { + ret= PyTuple_New(ret_len); + i= 0; /* arg index */ + + RNA_parameter_list_begin(&parms, &iter); + + for(; iter.valid; RNA_parameter_list_next(&iter)) { + parm= iter.parm; + flag= RNA_property_flag(parm); + + if (flag & PROP_RETURN) + PyTuple_SET_ITEM(ret, i++, pyrna_param_to_py(&funcptr, parm, iter.data)); + } + + RNA_parameter_list_end(&iter); + } + else + ret= pyrna_param_to_py(&funcptr, pret_single, retdata_single); /* possible there is an error in conversion */ if(ret==NULL) @@ -3980,15 +4005,18 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun extern void BPY_update_modules( void ); //XXX temp solution +/* TODO - multiple return values like with rna functions */ static int bpy_class_call(PointerRNA *ptr, FunctionRNA *func, ParameterList *parms) { PyObject *args; PyObject *ret= NULL, *py_class, *py_class_instance, *item, *parmitem; - PropertyRNA *pret= NULL, *parm; + PropertyRNA *parm; ParameterIterator iter; PointerRNA funcptr; - void *retdata= NULL; - int err= 0, i, flag; + int err= 0, i, flag, ret_len=0; + + PropertyRNA *pret_single= NULL; + void *retdata_single= NULL; PyGILState_STATE gilstate; @@ -4014,10 +4042,9 @@ static int bpy_class_call(PointerRNA *ptr, FunctionRNA *func, ParameterList *par if (py_class_instance) { /* Initializing the class worked, now run its invoke function */ item= PyObject_GetAttrString(py_class, RNA_function_identifier(func)); - flag= RNA_function_flag(func); +// flag= RNA_function_flag(func); if(item) { - pret= RNA_function_return(func); RNA_pointer_create(NULL, &RNA_Function, func, &funcptr); args = PyTuple_New(rna_function_arg_count(func)); /* first arg is included in 'item' */ @@ -4028,9 +4055,16 @@ static int bpy_class_call(PointerRNA *ptr, FunctionRNA *func, ParameterList *par /* parse function parameters */ for (i= 1; iter.valid; RNA_parameter_list_next(&iter)) { parm= iter.parm; + flag= RNA_property_flag(parm); + + /* only useful for single argument returns, we'll need another list loop for multiple */ + if (flag & PROP_RETURN) { + ret_len++; + if (pret_single==NULL) { + pret_single= parm; + retdata_single= iter.data; + } - if (parm==pret) { - retdata= iter.data; continue; } @@ -4060,8 +4094,37 @@ static int bpy_class_call(PointerRNA *ptr, FunctionRNA *func, ParameterList *par err= -1; } else { - if(retdata) - err= pyrna_py_to_prop(&funcptr, pret, retdata, ret, "calling class function:"); + if(ret_len==1) { + err= pyrna_py_to_prop(&funcptr, pret_single, retdata_single, ret, "calling class function:"); + } + else if (ret_len > 1) { + + if(PyTuple_Check(ret)==0) { + PyErr_Format(PyExc_RuntimeError, "expected class %.200s, function %.200s to return a tuple of size %d.", RNA_struct_identifier(ptr->type), RNA_function_identifier(func), ret_len); + err= -1; + } + else if (PyTuple_GET_SIZE(ret) != ret_len) { + PyErr_Format(PyExc_RuntimeError, "class %.200s, function %.200s to returned %d items, expected %d.", RNA_struct_identifier(ptr->type), RNA_function_identifier(func), PyTuple_GET_SIZE(ret), ret_len); + err= -1; + } + else { + + RNA_parameter_list_begin(parms, &iter); + + /* parse function parameters */ + for (i= 0; iter.valid; RNA_parameter_list_next(&iter)) { + parm= iter.parm; + flag= RNA_property_flag(parm); + + /* only useful for single argument returns, we'll need another list loop for multiple */ + if (flag & PROP_RETURN) { + err= pyrna_py_to_prop(&funcptr, parm, iter.data, PyTuple_GET_ITEM(ret, i++), "calling class function:"); + if(err) + break; + } + } + } + } Py_DECREF(ret); } -- cgit v1.2.3 From c1b0239f06a84da5ebe7e2be51d7aa51226c859a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Jan 2010 15:31:02 +0000 Subject: RNA Ray casting function for python access, uses BVH acceleration structure (same as shrink wrap), very fast & useful for object placing scripts. Python Example. hit_location, hit_normal, face_index = object.ray_cast(ray_start, ray_end) - first rna func to use multiple return values - currently casts in object space, may want to cast in worldspace too. --- source/blender/makesrna/intern/rna_object_api.c | 63 +++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 481e92d1ac9..9426b9c9eb3 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -49,6 +49,7 @@ #include "BKE_object.h" #include "BKE_mesh.h" #include "BKE_DerivedMesh.h" +#include "BKE_bvhutils.h" #include "BKE_customdata.h" #include "BKE_anim.h" @@ -365,6 +366,45 @@ static void rna_Mesh_assign_verts_to_group(Object *ob, bDeformGroup *group, int } */ +void rna_Object_ray_cast(Object *ob, ReportList *reports, float ray_start[3], float ray_end[3], float r_location[3], float r_normal[3], int *index) +{ + BVHTreeFromMesh treeData; + + if(ob->derivedFinal==NULL) { + BKE_reportf(reports, RPT_ERROR, "object \"%s\" has no mesh data to be used for ray casting.", ob->id.name+2); + return; + } + + /* no need to managing allocation or freeing of the BVH data. this is generated and freed as needed */ + bvhtree_from_mesh_faces(&treeData, ob->derivedFinal, 0.0f, 4, 6); + + if(treeData.tree==NULL) { + BKE_reportf(reports, RPT_ERROR, "object \"%s\" could not create internal data for ray casting.", ob->id.name+2); + return; + } + else { + BVHTreeRayHit hit; + float ray_nor[3], dist; + sub_v3_v3v3(ray_nor, ray_end, ray_start); + + dist= hit.dist = normalize_v3(ray_nor); + hit.index = -1; + + if(BLI_bvhtree_ray_cast(treeData.tree, ray_start, ray_nor, 0.0f, &hit, treeData.raycast_callback, &treeData) != -1) { + if(hit.dist<=dist) { + copy_v3_v3(r_location, hit.co); + copy_v3_v3(r_normal, hit.no); + *index= hit.index; + return; + } + } + } + + zero_v3(r_location); + zero_v3(r_normal); + *index= -1; +} + #else void RNA_api_object(StructRNA *srna) @@ -438,6 +478,29 @@ void RNA_api_object(StructRNA *srna) parm= RNA_def_pointer(func, "key", "ShapeKey", "", "New shape keyblock."); RNA_def_function_return(func, parm); + /* Ray Cast */ + func= RNA_def_function(srna, "ray_cast", "rna_Object_ray_cast"); + RNA_def_function_ui_description(func, "Cast a ray onto in object space."); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + + /* ray start and end */ + parm= RNA_def_float_vector(func, "start", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); + RNA_def_property_flag(parm, PROP_REQUIRED); + parm= RNA_def_float_vector(func, "end", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); + RNA_def_property_flag(parm, PROP_REQUIRED); + + /* return location and normal */ + parm= RNA_def_float_vector(func, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "The hit location of this ray cast", -1e4, 1e4); + RNA_def_property_flag(parm, PROP_THICK_WRAP); + RNA_def_function_return_mark(func, parm); + parm= RNA_def_float_vector(func, "normal", 3, NULL, -FLT_MAX, FLT_MAX, "Normal", "The face normal at the ray cast hit location", -1e4, 1e4); + RNA_def_property_flag(parm, PROP_THICK_WRAP); + RNA_def_function_return_mark(func, parm); + + parm= RNA_def_int(func, "index", 0, 0, 0, "", "The face index, -1 when no intersection is found.", 0, 0); + RNA_def_function_return_mark(func, parm); + + /* DAG */ func= RNA_def_function(srna, "make_display_list", "rna_Object_make_display_list"); RNA_def_function_ui_description(func, "Update object's display data."); /* XXX describe better */ -- cgit v1.2.3 From 78b2eb8d3c1e328d0e932b9b285d8cbf20e9cfc2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Jan 2010 17:33:44 +0000 Subject: PyRna float/bool/int slicing. - fixed slice assignment. - fix for slowdown where getting a slice would get the entire array and free it for every item in the array (malloc and free for arrays >32). - fix for thick wrapped returning an array referencing the original pointer when coercing into a mathutils type failed. TODO - slice assignment currently only sypports lists. - dimensions are ignored for multidimensional arrays. --- source/blender/python/intern/bpy_rna.c | 175 +++++++++++++++++++++++++++------ 1 file changed, 147 insertions(+), 28 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index fd28fa04c06..14177220a94 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -53,6 +53,8 @@ #include "../generic/Mathutils.h" /* so we can have mathutils callbacks */ #include "../generic/IDProp.h" /* for IDprop lookups */ +static PyObject *prop_subscript_array_slice(PointerRNA *ptr, PropertyRNA *prop, int start, int stop, int length); + /* bpyrna vector/euler/quat callbacks */ static int mathutils_rna_array_cb_index= -1; /* index for our callbacks */ @@ -234,8 +236,15 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) } } - if(ret==NULL) - ret = pyrna_prop_CreatePyObject(ptr, prop); /* TODO, convert to a python list */ + if(ret==NULL) { + if(is_thick) { + /* this is an array we cant reference (since its not thin wrappable) + * and cannot be coerced into a mathutils type, so return as a list */ + ret = prop_subscript_array_slice(ptr, prop, 0, len, len); + } else { + ret = pyrna_prop_CreatePyObject(ptr, prop); /* owned by the Mathutils PyObject */ + } + } #endif @@ -999,7 +1008,7 @@ static PyObject *prop_subscript_collection_str(BPy_PropertyRNA *self, char *keyn } /* static PyObject *prop_subscript_array_str(BPy_PropertyRNA *self, char *keyname) */ -static PyObject *prop_subscript_collection_slice(BPy_PropertyRNA *self, int start, int stop) +static PyObject *prop_subscript_collection_slice(PointerRNA *ptr, PropertyRNA *prop, int start, int stop, int length) { PointerRNA newptr; PyObject *list = PyList_New(stop - start); @@ -1008,8 +1017,8 @@ static PyObject *prop_subscript_collection_slice(BPy_PropertyRNA *self, int star start = MIN2(start,stop); /* values are clamped from */ for(count = start; count < stop; count++) { - if(RNA_property_collection_lookup_int(&self->ptr, self->prop, count - start, &newptr)) { - PyList_SetItem(list, count - start, pyrna_struct_CreatePyObject(&newptr)); + if(RNA_property_collection_lookup_int(ptr, prop, count - start, &newptr)) { + PyList_SET_ITEM(list, count - start, pyrna_struct_CreatePyObject(&newptr)); } else { Py_DECREF(list); @@ -1021,16 +1030,72 @@ static PyObject *prop_subscript_collection_slice(BPy_PropertyRNA *self, int star return list; } -static PyObject *prop_subscript_array_slice(BPy_PropertyRNA *self, int start, int stop) + +/* TODO - dimensions + * note: could also use pyrna_prop_to_py_index(self, count) in a loop but its a lot slower + * since at the moment it reads (and even allocates) the entire array for each index. + */ +#define PYRNA_STACK_ARRAY 32 +static PyObject *prop_subscript_array_slice(PointerRNA *ptr, PropertyRNA *prop, int start, int stop, int length) { PyObject *list = PyList_New(stop - start); int count; - start = MIN2(start,stop); /* values are clamped from PySlice_GetIndicesEx */ + switch (RNA_property_type(prop)) { + case PROP_FLOAT: + { + float values_stack[PYRNA_STACK_ARRAY]; + float *values; + if(length > PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(float) * length); } + else { values= values_stack; } + RNA_property_float_get_array(ptr, prop, values); + + for(count=start; count PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(int) * length); } + else { values= values_stack; } - for(count = start; count < stop; count++) - PyList_SetItem(list, count - start, pyrna_prop_to_py_index(self, count)); + RNA_property_boolean_get_array(ptr, prop, values); + for(count=start; count PYRNA_STACK_ARRAY) { values= PyMem_MALLOC(sizeof(int) * length); } + else { values= values_stack; } + + RNA_property_int_get_array(ptr, prop, values); + for(count=start; countptr, self->prop, start, stop, len); } else { PyErr_SetString(PyExc_TypeError, "slice steps not supported with rna"); @@ -1092,7 +1157,7 @@ static PyObject *prop_subscript_array(BPy_PropertyRNA *self, PyObject *key) return PyList_New(0); } else if (step == 1) { - return prop_subscript_array_slice(self, start, stop); + return prop_subscript_array_slice(&self->ptr, self->prop, start, stop, len); } else { PyErr_SetString(PyExc_TypeError, "slice steps not supported with rna"); @@ -1117,21 +1182,81 @@ static PyObject *pyrna_prop_subscript( BPy_PropertyRNA *self, PyObject *key ) return NULL; } -static int prop_subscript_ass_array_slice(BPy_PropertyRNA *self, int begin, int end, PyObject *value) +/* could call (pyrna_py_to_prop_index(self, i, value) in a loop but it is slow */ +static int prop_subscript_ass_array_slice(PointerRNA *ptr, PropertyRNA *prop, int start, int stop, int length, PyObject *value) { int count; + void *values_alloc= NULL; + int ret= 0; + + /* TODO - fast list ? */ + if(!PyList_Check(value)) { + PyErr_Format(PyExc_TypeError, "invalid slice assignment, exitected a list instead of %.200s instance.", Py_TYPE(value)->tp_name); + return -1; + } + + switch (RNA_property_type(prop)) { + case PROP_FLOAT: + { + float values_stack[PYRNA_STACK_ARRAY]; + float *values; + if(length > PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(float) * length); } + else { values= values_stack; } + if(start != 0 || stop != length) /* partial assignment? - need to get the array */ + RNA_property_float_get_array(ptr, prop, values); + + for(count=start; count PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(int) * length); } + else { values= values_stack; } + + if(start != 0 || stop != length) /* partial assignment? - need to get the array */ + RNA_property_boolean_get_array(ptr, prop, values); + + for(count=start; count PYRNA_STACK_ARRAY) { values= values_alloc= PyMem_MALLOC(sizeof(int) * length); } + else { values= values_stack; } - /* values are clamped from */ - begin = MIN2(begin,end); + if(start != 0 || stop != length) /* partial assignment? - need to get the array */ + RNA_property_int_get_array(ptr, prop, values); - for(count = begin; count < end; count++) { - if(pyrna_py_to_prop_index(self, count - begin, value) == -1) { - /* TODO - this is wrong since some values have been assigned... will need to fix that */ - return -1; /* pyrna_struct_CreatePyObject should set the error */ + for(count=start; countptr, self->prop, start, stop, len, value); } else { PyErr_SetString(PyExc_TypeError, "slice steps not supported with rna"); @@ -2341,14 +2466,8 @@ PyObject *pyrna_prop_iter(BPy_PropertyRNA *self) PyObject *iter; if(RNA_property_array_check(&self->ptr, self->prop)) { - int len = pyrna_prop_array_length(self); - int i; - PyErr_Clear(); - ret = PyList_New(len); - - for (i=0; i < len; i++) { - PyList_SET_ITEM(ret, i, pyrna_prop_to_py_index(self, i)); - } + int len= pyrna_prop_array_length(self); + ret = prop_subscript_array_slice(&self->ptr, self->prop, 0, len, len); } else if ((ret = pyrna_prop_values(self))) { /* do nothing */ -- cgit v1.2.3 From cef8b2088f18ca4394f8aa25fa23ee28bb327a77 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Jan 2010 18:55:07 +0000 Subject: sphinx support for documenting multiple return values --- source/blender/python/sphinx_doc_gen.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/sphinx_doc_gen.py b/source/blender/python/sphinx_doc_gen.py index c8e283ac447..73ac95ff931 100644 --- a/source/blender/python/sphinx_doc_gen.py +++ b/source/blender/python/sphinx_doc_gen.py @@ -115,8 +115,8 @@ def rna2sphinx(BASEPATH): #if not struct.identifier.startswith("Sc") and not struct.identifier.startswith("I"): # return - #if not struct.identifier.startswith("Bone"): - # return + if not struct.identifier == "Object": + return filepath = os.path.join(BASEPATH, "bpy.types.%s.rst" % struct.identifier) file = open(filepath, "w") @@ -182,8 +182,17 @@ def rna2sphinx(BASEPATH): for prop in func.args: write_param(" ", fw, prop) - if func.return_value: - write_param(" ", fw, func.return_value, is_return=True) + if len(func.return_values) == 1: + write_param(" ", fw, func.return_values[0], is_return=True) + else: # multiple return values + fw(" :return (%s):\n" % ", ".join([prop.identifier for prop in func.return_values])) + for prop in func.return_values: + type_descr = prop.get_type_description(as_arg=True, class_fmt=":class:`%s`") + descr = prop.description + if not descr: + descr = prop.name + fw(" `%s`, %s, %s\n\n" % (prop.identifier, descr, type_descr)) + fw("\n") -- cgit v1.2.3 From cf7b19c0bab463a70ce5e364712ab61f6b11e336 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Jan 2010 19:01:19 +0000 Subject: fix for mistake in last commit. also forgot to call RNA_parameter_list_end() in some places, (ok the function does nothing now, but some day it might do) --- source/blender/python/intern/bpy_rna.c | 6 ++++++ source/blender/python/sphinx_doc_gen.py | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 14177220a94..a95a5dd1783 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2715,6 +2715,7 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) ret_len= 0; if(args_len + (kw ? PyDict_Size(kw):0) > parms_len) { + RNA_parameter_list_end(&iter); PyErr_Format(PyExc_TypeError, "%.200s.%.200s(): takes at most %d arguments, got %d", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), parms_len, args_len); err= -1; } @@ -2780,6 +2781,8 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) break; } } + + RNA_parameter_list_end(&iter); /* Check if we gave args that dont exist in the function @@ -4194,6 +4197,7 @@ static int bpy_class_call(PointerRNA *ptr, FunctionRNA *func, ParameterList *par ret = PyObject_Call(item, args, NULL); + RNA_parameter_list_end(&iter); Py_DECREF(item); Py_DECREF(args); } @@ -4242,6 +4246,8 @@ static int bpy_class_call(PointerRNA *ptr, FunctionRNA *func, ParameterList *par break; } } + + RNA_parameter_list_end(&iter); } } Py_DECREF(ret); diff --git a/source/blender/python/sphinx_doc_gen.py b/source/blender/python/sphinx_doc_gen.py index 73ac95ff931..df48bad980d 100644 --- a/source/blender/python/sphinx_doc_gen.py +++ b/source/blender/python/sphinx_doc_gen.py @@ -115,8 +115,8 @@ def rna2sphinx(BASEPATH): #if not struct.identifier.startswith("Sc") and not struct.identifier.startswith("I"): # return - if not struct.identifier == "Object": - return + #if not struct.identifier == "Object": + # return filepath = os.path.join(BASEPATH, "bpy.types.%s.rst" % struct.identifier) file = open(filepath, "w") -- cgit v1.2.3 From e7d863cee530d477f0aa494a4f0f9e70ac5012c7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Jan 2010 22:47:56 +0000 Subject: editbone.transform(matrix) function, requested by Cessen. Also added matrix.median_scale attribute to get the average scale from the matrix, use for scaling bone envalopes. --- source/blender/makesrna/intern/rna_armature_api.c | 2 +- source/blender/python/generic/euler.c | 2 +- source/blender/python/generic/matrix.c | 25 +++++++++++++++++++++-- source/blender/python/generic/quat.c | 2 +- source/blender/python/generic/vector.c | 2 +- 5 files changed, 27 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_armature_api.c b/source/blender/makesrna/intern/rna_armature_api.c index 22bd7313166..f3983a43b4f 100644 --- a/source/blender/makesrna/intern/rna_armature_api.c +++ b/source/blender/makesrna/intern/rna_armature_api.c @@ -58,7 +58,7 @@ void RNA_api_armature_edit_bone(StructRNA *srna) PropertyRNA *parm; func= RNA_def_function(srna, "align_roll", "rna_EditBone_align_roll"); - RNA_def_function_ui_description(func, "Align the bone to a localspace vector."); + RNA_def_function_ui_description(func, "Align the bone to a localspace roll so the Z axis points in the direction of the vector given."); parm= RNA_def_float_vector(func, "vector", 3, NULL, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX); RNA_def_property_flag(parm, PROP_REQUIRED); } diff --git a/source/blender/python/generic/euler.c b/source/blender/python/generic/euler.c index f6f2e337211..ae7a6783358 100644 --- a/source/blender/python/generic/euler.c +++ b/source/blender/python/generic/euler.c @@ -541,7 +541,7 @@ static PyGetSetDef Euler_getseters[] = { {"z", (getter)Euler_getAxis, (setter)Euler_setAxis, "Euler Z axis", (void *)2}, {"wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, "True when this wraps blenders internal data", NULL}, - {"__owner__", (getter)BaseMathObject_getOwner, (setter)NULL, "Read only owner for vectors that depend on another object", NULL}, + {"_owner", (getter)BaseMathObject_getOwner, (setter)NULL, "Read only owner for vectors that depend on another object", NULL}, {NULL,NULL,NULL,NULL,NULL} /* Sentinel */ }; diff --git a/source/blender/python/generic/matrix.c b/source/blender/python/generic/matrix.c index dcd1057f881..074a397b6d9 100644 --- a/source/blender/python/generic/matrix.c +++ b/source/blender/python/generic/matrix.c @@ -1129,12 +1129,33 @@ static PyObject *Matrix_getColSize( MatrixObject * self, void *type ) return PyLong_FromLong((long) self->colSize); } +static PyObject *Matrix_getMedianScale( MatrixObject * self, void *type ) +{ + float mat[3][3]; + + if(!BaseMath_ReadCallback(self)) + return NULL; + + /*must be 3-4 cols, 3-4 rows, square matrix*/ + if(self->colSize == 4 && self->rowSize == 4) + copy_m3_m4(mat, (float (*)[4])*self->matrix); + else if(self->colSize == 3 && self->rowSize == 3) + copy_m3_m3(mat, (float (*)[3])*self->matrix); + else { + PyErr_SetString(PyExc_AttributeError, "Matrix.median_scale: inappropriate matrix size - expects 3x3 or 4x4 matrix\n"); + return NULL; + } + + return PyFloat_FromDouble(mat3_to_scale(mat)); +} + /*****************************************************************************/ /* Python attributes get/set structure: */ /*****************************************************************************/ static PyGetSetDef Matrix_getseters[] = { - {"rowSize", (getter)Matrix_getRowSize, (setter)NULL, "", NULL}, - {"colSize", (getter)Matrix_getColSize, (setter)NULL, "", NULL}, + {"row_size", (getter)Matrix_getRowSize, (setter)NULL, "", NULL}, + {"col_size", (getter)Matrix_getColSize, (setter)NULL, "", NULL}, + {"median_scale", (getter)Matrix_getMedianScale, (setter)NULL, "", NULL}, {"wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, "", NULL}, {"_owner",(getter)BaseMathObject_getOwner, (setter)NULL, "", NULL}, diff --git a/source/blender/python/generic/quat.c b/source/blender/python/generic/quat.c index 2ee78235224..e739e1a5036 100644 --- a/source/blender/python/generic/quat.c +++ b/source/blender/python/generic/quat.c @@ -739,7 +739,7 @@ static PyGetSetDef Quaternion_getseters[] = { (getter)BaseMathObject_getWrapped, (setter)NULL, "True when this wraps blenders internal data", NULL}, - {"__owner__", + {"_owner", (getter)BaseMathObject_getOwner, (setter)NULL, "Read only owner for vectors that depend on another object", NULL}, diff --git a/source/blender/python/generic/vector.c b/source/blender/python/generic/vector.c index ae2c96fa86a..0713d60c6c2 100644 --- a/source/blender/python/generic/vector.c +++ b/source/blender/python/generic/vector.c @@ -1421,7 +1421,7 @@ static PyGetSetDef Vector_getseters[] = { (getter)BaseMathObject_getWrapped, (setter)NULL, "True when this wraps blenders internal data", NULL}, - {"__owner__", + {"_owner", (getter)BaseMathObject_getOwner, (setter)NULL, "Read only owner for vectors that depend on another object", NULL}, -- cgit v1.2.3 From 04d0261c37ccd28e8466312f5a2d8260c5a4c9e9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Jan 2010 23:14:01 +0000 Subject: new python submodule. eg. from bpy.app import binary_path, version, version_string, home can add constant variables from blender here as needed (maybe functions too... bpy.app.memory_usage() ?) --- source/blender/python/intern/bpy_interface.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 5ac3a233e11..2fcb36f6d5b 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -223,12 +223,15 @@ static void bpy_init_modules( void ) /* blender info that wont change at runtime, add into _bpy */ { + extern char bprogname[]; /* argv[0] from creator.c */ + PyObject *mod_dict= PyModule_GetDict(mod); char tmpstr[256]; PyModule_AddStringConstant(mod, "_HOME", BLI_gethome()); PyDict_SetItemString(mod_dict, "_VERSION", Py_BuildValue("(iii)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION)); sprintf(tmpstr, "%d.%02d (sub %d)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION); PyModule_AddStringConstant(mod, "_VERSION_STR", tmpstr); + PyModule_AddStringConstant(mod, "_BINPATH", bprogname); } /* add our own modules dir, this is a python package */ -- cgit v1.2.3 From 9cb975bd9b945da3f325d749634b3829c406f9f6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Jan 2010 23:56:14 +0000 Subject: grease pencil depth option 'Stroke Endpoints' works well when painting onto mesh surfaces as well as other grease pencil lines. change ui to show this. --- source/blender/editors/gpencil/gpencil_buttons.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c index e93788bc495..a63573b5381 100644 --- a/source/blender/editors/gpencil/gpencil_buttons.c +++ b/source/blender/editors/gpencil/gpencil_buttons.c @@ -268,7 +268,7 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "STROKE"); row= uiLayoutRow(col, 0); - uiLayoutSetActive(row, (gpd->flag & GP_DATA_DEPTH_STROKE) ? 1:0); + uiLayoutSetActive(row, (gpd->flag & (GP_DATA_DEPTH_STROKE|GP_DATA_DEPTH_VIEW)) ? 1:0); uiItemR(row, NULL, 0, &gpd_ptr, "use_stroke_endpoints", 0); } -- cgit v1.2.3 From e2f5d31453c8893ad072951e7bceeb3ad549ee17 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 01:55:20 +0000 Subject: dont draw object centers when drawing the depth buffer, grease pencil would get its depth messed up by object centers when with 'Surface' mode. Also fix own error with drawing grease pencil depths, wasnt setting v3d->zbuf back to its original value. --- source/blender/editors/space_view3d/drawobject.c | 44 +++++++++++++---------- source/blender/editors/space_view3d/view3d_draw.c | 19 +++++----- 2 files changed, 36 insertions(+), 27 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index c689b4d338f..66790d9b7f0 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -798,25 +798,28 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob) curcol[3]= 0.6; glColor4fv(curcol); - if(ob->id.us>1) { - if (ob==OBACT || (ob->flag & SELECT)) glColor4ub(0x88, 0xFF, 0xFF, 155); - else glColor4ub(0x77, 0xCC, 0xCC, 155); - } - - /* Inner Circle */ - VECCOPY(vec, ob->obmat[3]); - glEnable(GL_BLEND); - drawcircball(GL_LINE_LOOP, vec, lampsize, imat); - glDisable(GL_BLEND); - drawcircball(GL_POLYGON, vec, lampsize, imat); - - /* restore */ - if(ob->id.us>1) - glColor4fv(curcol); + if(lampsize > 0.0f) { + + if(ob->id.us>1) { + if (ob==OBACT || (ob->flag & SELECT)) glColor4ub(0x88, 0xFF, 0xFF, 155); + else glColor4ub(0x77, 0xCC, 0xCC, 155); + } + + /* Inner Circle */ + VECCOPY(vec, ob->obmat[3]); + glEnable(GL_BLEND); + drawcircball(GL_LINE_LOOP, vec, lampsize, imat); + glDisable(GL_BLEND); + drawcircball(GL_POLYGON, vec, lampsize, imat); - /* Outer circle */ - circrad = 3.0f*lampsize; - drawcircball(GL_LINE_LOOP, vec, circrad, imat); + /* restore */ + if(ob->id.us>1) + glColor4fv(curcol); + + /* Outer circle */ + circrad = 3.0f*lampsize; + drawcircball(GL_LINE_LOOP, vec, circrad, imat); + } setlinestyle(3); @@ -6154,7 +6157,10 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) } else if((flag & DRAW_CONSTCOLOR)==0) { /* we don't draw centers for duplicators and sets */ - drawcentercircle(v3d, rv3d, ob->obmat[3], do_draw_center, ob->id.lib || ob->id.us>1); + if(U.obcenter_dia > 0) { + /* check > 0 otherwise grease pencil can draw into the circle select which is annoying. */ + drawcentercircle(v3d, rv3d, ob->obmat[3], do_draw_center, ob->id.lib || ob->id.us>1); + } } } } diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 4e9d92e8c17..fc0af608dce 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1645,6 +1645,7 @@ void view3d_update_depths(ARegion *ar, View3D *v3d) void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d) { + short zbuf= v3d->zbuf; RegionView3D *rv3d= ar->regiondata; setwinmatrixview3d(ar, v3d, NULL); /* 0= no pick rect */ @@ -1662,7 +1663,9 @@ void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d) glEnable(GL_DEPTH_TEST); draw_gpencil_3dview_ext(scene, ar, 1); - return; + + v3d->zbuf= zbuf; + } void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *)) @@ -1670,17 +1673,16 @@ void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *)) RegionView3D *rv3d= ar->regiondata; Base *base; Scene *sce; - short zbuf, flag; - float glalphaclip; + short zbuf= v3d->zbuf; + short flag= v3d->flag; + float glalphaclip= U.glalphaclip; + int obcenter_dia= U.obcenter_dia; /* temp set drawtype to solid */ /* Setting these temporarily is not nice */ - zbuf = v3d->zbuf; - flag = v3d->flag; - glalphaclip = U.glalphaclip; - - U.glalphaclip = 0.5; /* not that nice but means we wont zoom into billboards */ v3d->flag &= ~V3D_SELECT_OUTLINE; + U.glalphaclip = 0.5; /* not that nice but means we wont zoom into billboards */ + U.obcenter_dia= 0; setwinmatrixview3d(ar, v3d, NULL); /* 0= no pick rect */ setviewmatrixview3d(scene, v3d, rv3d); /* note: calls where_is_object for camera... */ @@ -1764,6 +1766,7 @@ void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *)) v3d->zbuf = zbuf; U.glalphaclip = glalphaclip; v3d->flag = flag; + U.obcenter_dia= obcenter_dia; } typedef struct View3DShadow { -- cgit v1.2.3 From 9bda43ed27479534ca15a2189b957f4068d1ba8a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 02:24:53 +0000 Subject: - WM_OT_context_cycle_int wasnt working (also wasnt used anywhere) - remove console zoom operator, use WM_OT_context_cycle_int instead. - use WM_OT_context_cycle_int for text editor zoom also (Ctrl +/- and Ctrl+MouseWheel) --- .../blender/editors/space_console/console_intern.h | 1 - source/blender/editors/space_console/console_ops.c | 32 ---------------------- .../blender/editors/space_console/space_console.c | 21 ++++++++++---- source/blender/editors/space_text/space_text.c | 17 ++++++++++++ 4 files changed, 32 insertions(+), 39 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_console/console_intern.h b/source/blender/editors/space_console/console_intern.h index 92ab3eb3d0c..a90e434246f 100644 --- a/source/blender/editors/space_console/console_intern.h +++ b/source/blender/editors/space_console/console_intern.h @@ -63,7 +63,6 @@ void CONSOLE_OT_clear(struct wmOperatorType *ot); void CONSOLE_OT_history_cycle(struct wmOperatorType *ot); void CONSOLE_OT_copy(struct wmOperatorType *ot); void CONSOLE_OT_paste(struct wmOperatorType *ot); -void CONSOLE_OT_zoom(struct wmOperatorType *ot); void CONSOLE_OT_select_set(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index f3f3853f63b..bf4edb5941c 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -750,38 +750,6 @@ void CONSOLE_OT_paste(wmOperatorType *ot) /* properties */ } -static int zoom_exec(bContext *C, wmOperator *op) -{ - SpaceConsole *sc= CTX_wm_space_console(C); - - int delta= RNA_int_get(op->ptr, "delta"); - - sc->lheight += delta; - CLAMP(sc->lheight, 8, 32); - - ED_area_tag_redraw(CTX_wm_area(C)); - - return OPERATOR_FINISHED; -} - - -void CONSOLE_OT_zoom(wmOperatorType *ot) -{ - /* identifiers */ - ot->name= "Console Zoom"; - /*optionals - - "Zoom view font." */ - ot->description= "Zoom screen area."; - ot->idname= "CONSOLE_OT_zoom"; - - /* api callbacks */ - ot->exec= zoom_exec; - ot->poll= console_poll; - - /* properties */ - RNA_def_int(ot->srna, "delta", 0, 0, INT_MAX, "Delta", "Scale the view font.", 0, 1000); -} - typedef struct SetConsoleCursor { int sel_old[2]; int sel_init; diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c index f4058f4eefb..e9e87a865ef 100644 --- a/source/blender/editors/space_console/space_console.c +++ b/source/blender/editors/space_console/space_console.c @@ -207,7 +207,6 @@ void console_operatortypes(void) WM_operatortype_append(CONSOLE_OT_history_cycle); WM_operatortype_append(CONSOLE_OT_copy); WM_operatortype_append(CONSOLE_OT_paste); - WM_operatortype_append(CONSOLE_OT_zoom); WM_operatortype_append(CONSOLE_OT_select_set); /* console_report.c */ @@ -223,6 +222,7 @@ void console_operatortypes(void) void console_keymap(struct wmKeyConfig *keyconf) { wmKeyMap *keymap= WM_keymap_find(keyconf, "Console", SPACE_CONSOLE, 0); + wmKeyMapItem *kmi; #ifdef __APPLE__ RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_BEGIN); @@ -235,13 +235,22 @@ void console_keymap(struct wmKeyConfig *keyconf) RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", HOMEKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_BEGIN); RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END); - RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_zoom", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "delta", 1); - RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_zoom", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "delta", -1); - - RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_zoom", PADPLUSKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", 1); - RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_zoom", PADMINUS, KM_PRESS, KM_CTRL, 0)->ptr, "delta", -1); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0); + RNA_string_set(kmi->ptr, "path", "space_data.font_size"); + RNA_boolean_set(kmi->ptr, "reverse", 0); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0); + RNA_string_set(kmi->ptr, "path", "space_data.font_size"); + RNA_boolean_set(kmi->ptr, "reverse", 1); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0); + RNA_string_set(kmi->ptr, "path", "space_data.font_size"); + RNA_boolean_set(kmi->ptr, "reverse", 0); + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0); + RNA_string_set(kmi->ptr, "path", "space_data.font_size"); + RNA_boolean_set(kmi->ptr, "reverse", 1); + RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR); RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR); diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c index 2f0e631e927..292249bb0e8 100644 --- a/source/blender/editors/space_text/space_text.c +++ b/source/blender/editors/space_text/space_text.c @@ -209,6 +209,7 @@ static void text_operatortypes(void) static void text_keymap(struct wmKeyConfig *keyconf) { wmKeyMap *keymap; + wmKeyMapItem *kmi; keymap= WM_keymap_find(keyconf, "Text", SPACE_TEXT, 0); @@ -229,6 +230,22 @@ static void text_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "TEXT_OT_select_line", AKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0); #endif + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0); + RNA_string_set(kmi->ptr, "path", "space_data.font_size"); + RNA_boolean_set(kmi->ptr, "reverse", 0); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0); + RNA_string_set(kmi->ptr, "path", "space_data.font_size"); + RNA_boolean_set(kmi->ptr, "reverse", 1); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0); + RNA_string_set(kmi->ptr, "path", "space_data.font_size"); + RNA_boolean_set(kmi->ptr, "reverse", 0); + + kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0); + RNA_string_set(kmi->ptr, "path", "space_data.font_size"); + RNA_boolean_set(kmi->ptr, "reverse", 1); + WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "TEXT_OT_open", OKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "TEXT_OT_reload", RKEY, KM_PRESS, KM_ALT, 0); -- cgit v1.2.3 From 6b9d65549b48392ea09bfba33648b810fc13f181 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 02:34:00 +0000 Subject: bugfix [#20542] Crash 2.50a0 Click event in Console window Report mode --- source/blender/editors/space_console/console_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c index bf4edb5941c..76e1231b0d4 100644 --- a/source/blender/editors/space_console/console_ops.c +++ b/source/blender/editors/space_console/console_ops.c @@ -859,5 +859,5 @@ void CONSOLE_OT_select_set(wmOperatorType *ot) ot->invoke= console_modal_select_invoke; ot->modal= console_modal_select; ot->cancel= console_modal_select_cancel; - ot->poll= console_poll; + ot->poll= console_edit_poll; } -- cgit v1.2.3 From 310a84f13e819b8e2e6e62de29ef6dd56f1a6bce Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 02:53:01 +0000 Subject: bugfix [#20534] Blender crashes throghout compositing --- source/blender/blenloader/intern/readfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index b3cc52add49..de9841ec1c7 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4194,7 +4194,7 @@ static void composite_patch(bNodeTree *ntree, Scene *scene) bNode *node; for(node= ntree->nodes.first; node; node= node->next) - if(node->id==NULL && ELEM3(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE, CMP_NODE_DEFOCUS)) + if(node->id==NULL && ELEM4(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE, CMP_NODE_DEFOCUS, CMP_NODE_OUTPUT_FILE)) node->id= &scene->id; } -- cgit v1.2.3 From 5266969546fae7476f44d64353fdfd14a2ecac60 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 03:01:46 +0000 Subject: fix for [#20499] Smoot view doesn't work for all view keys. --- source/blender/editors/space_view3d/view3d_edit.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 029bb84ca2f..c0d9d49d188 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1836,9 +1836,8 @@ static EnumPropertyItem prop_view_orbit_items[] = { static int vieworbit_exec(bContext *C, wmOperator *op) { - ARegion *ar= CTX_wm_region(C); RegionView3D *rv3d= CTX_wm_region_view3d(C); - float phi, si, q1[4]; + float phi, si, q1[4], new_quat[4]; int orbitdir; orbitdir = RNA_enum_get(op->ptr, "type"); @@ -1854,10 +1853,10 @@ static int vieworbit_exec(bContext *C, wmOperator *op) q1[0]= (float)cos(phi); q1[1]= q1[2]= 0.0; q1[3]= si; - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + mul_qt_qtqt(new_quat, rv3d->viewquat, q1); rv3d->view= 0; } - if(orbitdir == V3D_VIEW_STEPDOWN || orbitdir == V3D_VIEW_STEPUP) { + else if(orbitdir == V3D_VIEW_STEPDOWN || orbitdir == V3D_VIEW_STEPUP) { /* horizontal axis */ VECCOPY(q1+1, rv3d->viewinv[0]); @@ -1869,10 +1868,11 @@ static int vieworbit_exec(bContext *C, wmOperator *op) q1[1]*= si; q1[2]*= si; q1[3]*= si; - mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1); + mul_qt_qtqt(new_quat, rv3d->viewquat, q1); rv3d->view= 0; } - ED_region_tag_redraw(ar); + + smooth_view(C, NULL, NULL, NULL, new_quat, NULL, NULL); } } -- cgit v1.2.3 From a93e2d3603cf25955141df497f497478da71e02f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 03:18:48 +0000 Subject: [#20455] Spotlight halo with deep buffers: render crashes --- source/blender/makesdna/DNA_lamp_types.h | 2 +- source/blender/render/intern/source/convertblender.c | 2 +- source/blender/render/intern/source/shadeoutput.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_lamp_types.h b/source/blender/makesdna/DNA_lamp_types.h index 0a0046f8470..c321c9feea7 100644 --- a/source/blender/makesdna/DNA_lamp_types.h +++ b/source/blender/makesdna/DNA_lamp_types.h @@ -136,7 +136,7 @@ typedef struct Lamp { #define LA_SQUARE 128 #define LA_TEXTURE 256 #define LA_OSATEX 512 -#define LA_DEEP_SHADOW 1024 +/* #define LA_DEEP_SHADOW 1024 */ /* not used anywhere */ #define LA_NO_DIFF 2048 #define LA_NO_SPEC 4096 #define LA_SHAD_RAY 8192 diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index feac12d931f..899ddbe4fb4 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -3630,7 +3630,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob) } /* set flag for spothalo en initvars */ - if(la->type==LA_SPOT && (la->mode & LA_HALO)) { + if(la->type==LA_SPOT && (la->mode & LA_HALO) && (la->buftype != LA_SHADBUF_DEEP)) { if(la->haint>0.0) { re->flag |= R_LAMPHALO; diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c index 958a2e34215..e9386bb0d94 100644 --- a/source/blender/render/intern/source/shadeoutput.c +++ b/source/blender/render/intern/source/shadeoutput.c @@ -354,7 +354,7 @@ void renderspothalo(ShadeInput *shi, float *col, float alpha) lar= go->lampren; if(lar==NULL) continue; - if(lar->type==LA_SPOT && (lar->mode & LA_HALO) && lar->haint>0) { + if(lar->type==LA_SPOT && (lar->mode & LA_HALO) && (lar->buftype != LA_SHADBUF_DEEP) && lar->haint>0) { if(lar->mode & LA_LAYER) if(shi->vlr && (lar->lay & shi->obi->lay)==0) -- cgit v1.2.3 From eb7ac3146e1cee6c1246c3772e11538c253559a0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 04:21:40 +0000 Subject: - disallow the change the layer operator in localview. - toggle setting the layers (mainly useful when accessed from the keys) --- source/blender/editors/space_view3d/view3d_header.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 9b6cfc6cbd0..98f0f2fec65 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -173,6 +173,7 @@ static int layers_exec(bContext *C, wmOperator *op) ScrArea *sa= CTX_wm_area(C); View3D *v3d= sa->spacedata.first; int nr= RNA_int_get(op->ptr, "nr"); + int toggle= RNA_boolean_get(op->ptr, "toggle"); if(nr < 0) return OPERATOR_CANCELLED; @@ -188,9 +189,12 @@ static int layers_exec(bContext *C, wmOperator *op) else { nr--; - if(RNA_boolean_get(op->ptr, "extend")) - v3d->lay |= (1<ptr, "extend")) { + if(toggle && v3d->lay & (1<lay & ~(1<lay &= ~(1<lay |= (1<lay = (1<localvd==NULL); +} + void VIEW3D_OT_layers(wmOperatorType *ot) { /* identifiers */ @@ -248,13 +257,14 @@ void VIEW3D_OT_layers(wmOperatorType *ot) /* api callbacks */ ot->invoke= layers_invoke; ot->exec= layers_exec; - ot->poll= ED_operator_view3d_active; + ot->poll= layers_poll; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; RNA_def_int(ot->srna, "nr", 1, 0, 20, "Number", "The layer number to set, zero for all layers", 0, 20); RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Add this layer to the current view layers"); + RNA_def_boolean(ot->srna, "toggle", 1, "Toggle", "Toggle the layer"); } static char *view3d_modeselect_pup(Scene *scene) -- cgit v1.2.3 From bf6fc751612c6a1ecef0573761a61daab9dc2983 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 04:35:51 +0000 Subject: freeing particle modifier would access freed memory (only to tak the psys to be deleted), set to NULL after freeing and check before tagging. --- source/blender/blenkernel/intern/modifier.c | 5 ++++- source/blender/editors/object/object_modifier.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index e0640a76f43..79fc117b4de 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6866,7 +6866,10 @@ static void particleSystemModifier_freeData(ModifierData *md) psmd->dm=0; } - psmd->psys->flag |= PSYS_DELETE; + /* ED_object_modifier_remove may have freed this first before calling + * modifier_free (which calls this function) */ + if(psmd->psys) + psmd->psys->flag |= PSYS_DELETE; } static void particleSystemModifier_copyData(ModifierData *md, ModifierData *target) { diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 3e9b1cfe7c7..a44ad47b94f 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -165,6 +165,7 @@ int ED_object_modifier_remove(ReportList *reports, Scene *scene, Object *ob, Mod BLI_remlink(&ob->particlesystem, psmd->psys); psys_free(ob, psmd->psys); + psmd->psys= NULL; } else if(md->type == eModifierType_Softbody) { if(ob->soft) { -- cgit v1.2.3 From 833ec130a3248b97c0d6d5f58b2bb182b14b4c46 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 05:08:56 +0000 Subject: bugfix [#20528] Crash when applying scale to a Bezier curve --- source/blender/editors/object/object_transform.c | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index a16b0f2a7ac..43382562a8a 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -506,7 +506,6 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo mul_m4_v3(mat, bezt->vec[1]); mul_m4_v3(mat, bezt->vec[2]); bezt->radius *= scale; - bezt++; } } else { -- cgit v1.2.3 From 28c137a8ebf759f9dd1c91645c0f98d4cc83974c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 05:34:53 +0000 Subject: bugfix [#20510] .blog file causes crash (again rev25592) --- source/blender/windowmanager/intern/wm_operators.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index e9bf1be5861..1264639454b 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -957,8 +957,12 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *arg_unuse col = uiLayoutColumn(split, 0); uiItemL(col, "Recent", 0); - for(recent = G.recent_files.first, i=0; (i<6) && (recent); recent = recent->next, i++) - uiItemStringO(col, BLI_last_slash(recent->filename)+1, ICON_FILE_BLEND, "WM_OT_open_mainfile", "path", recent->filename); + for(recent = G.recent_files.first, i=0; (i<6) && (recent); recent = recent->next, i++) { + char *display_name= BLI_last_slash(recent->filename); + if(display_name) display_name++; /* skip the slash */ + else display_name= recent->filename; + uiItemStringO(col, display_name, ICON_FILE_BLEND, "WM_OT_open_mainfile", "path", recent->filename); + } uiItemS(col); -- cgit v1.2.3 From 1286a16ea41d62519753b332bf015725e9da19ff Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 05:40:33 +0000 Subject: [#20450] Crash before creating a volumetric material. - volumetric material must be traceable --- source/blender/render/intern/source/rayshade.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index 85442480a9c..9fa23c73ec6 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -192,9 +192,10 @@ void freeraytree(Render *re) static int is_raytraceable_vlr(Render *re, VlakRen *vlr) { - if((re->flag & R_BAKE_TRACE) || (vlr->mat->mode & MA_TRACEBLE)) - if(vlr->mat->material_type != MA_TYPE_WIRE) - return 1; + /* note: volumetric must be tracable, wire must not */ + if((re->flag & R_BAKE_TRACE) || (vlr->mat->mode & MA_TRACEBLE) || (vlr->mat->material_type == MA_TYPE_VOLUME)) + if(vlr->mat->material_type != MA_TYPE_WIRE) + return 1; return 0; } -- cgit v1.2.3 From ca4a5f309eed9922eb7d5188173942f36a5adc0d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 3 Jan 2010 05:49:56 +0000 Subject: solidify supports original mapping, so enable in the modifier. this means you can select the copied face (as with the mirror modifier) --- source/blender/blenkernel/intern/modifier.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 79fc117b4de..36e00cc8f3c 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -9251,7 +9251,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type) mti = INIT_TYPE(Solidify); mti->type = eModifierTypeType_Constructive; mti->flags = eModifierTypeFlag_AcceptsMesh - //| eModifierTypeFlag_SupportsMapping + | eModifierTypeFlag_SupportsMapping | eModifierTypeFlag_SupportsEditmode | eModifierTypeFlag_EnableInEditmode; mti->initData = solidifyModifier_initData; -- cgit v1.2.3 From 251ef0a47f34806b911ab18b59f604dd0ef3ea5b Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Sun, 3 Jan 2010 08:37:18 +0000 Subject: Changes to Brush texture workflow This changes how textures are accessed from Brushes, with the intention of simplifying the workflow, and reducing the amount of clicking. Rather than the previous texture slots (which didn't work as a stack anyway), brushes now have a single texture linked. Rather than taking time having to set up your slots in advance, you can now select and change textures directly as you sculpt/paint on the fly. For complex brushes, node textures can be used, or for fast access, it's easy to make a duplicate of your brush with the texture you like and assign a hotkey. Brush textures can now be chosen from a new Textures panel in the brush tool properties - click on the thumbnail to open a texture selector. This is done using a new variation on the ID template - the number of rows and columns to display in the popup can be customised in the UI scripts. --- source/blender/blenkernel/intern/brush.c | 58 +++------- source/blender/blenkernel/intern/texture.c | 52 ++------- source/blender/blenloader/intern/readfile.c | 27 ++--- source/blender/blenloader/intern/writefile.c | 6 +- source/blender/editors/include/UI_interface.h | 14 ++- .../blender/editors/include/UI_interface_icons.h | 4 +- source/blender/editors/interface/interface.c | 5 +- source/blender/editors/interface/interface_icons.c | 26 ++++- .../blender/editors/interface/interface_intern.h | 5 +- .../blender/editors/interface/interface_layout.c | 2 +- .../blender/editors/interface/interface_regions.c | 125 +++++++++++++++------ .../editors/interface/interface_templates.c | 76 ++++++++++--- .../blender/editors/interface/interface_widgets.c | 48 ++++++++ source/blender/editors/sculpt_paint/paint_image.c | 2 +- source/blender/editors/sculpt_paint/sculpt.c | 5 +- .../editors/space_buttons/buttons_context.c | 2 +- .../blender/editors/space_buttons/space_buttons.c | 4 + source/blender/editors/space_outliner/outliner.c | 2 +- .../blender/editors/space_view3d/view3d_toolbar.c | 2 +- source/blender/makesdna/DNA_brush_types.h | 8 +- source/blender/makesrna/intern/rna_brush.c | 37 ++---- source/blender/makesrna/intern/rna_ui_api.c | 9 ++ source/blender/windowmanager/intern/wm_operators.c | 2 +- 23 files changed, 309 insertions(+), 212 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index 667b0d50ee9..444c6d2c903 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -100,19 +100,11 @@ Brush *add_brush(const char *name) Brush *copy_brush(Brush *brush) { Brush *brushn; - MTex *mtex; - int a; brushn= copy_libblock(brush); - for(a=0; amtex[a]; - if(mtex) { - brushn->mtex[a]= MEM_dupallocN(mtex); - if(mtex->tex) id_us_plus((ID*)mtex->tex); - } - } - + if(brush->mtex.tex) id_us_plus((ID*)brush->mtex.tex); + brushn->curve= curvemapping_copy(brush->curve); /* enable fake user by default */ @@ -127,17 +119,8 @@ Brush *copy_brush(Brush *brush) /* not brush itself */ void free_brush(Brush *brush) { - MTex *mtex; - int a; - - for(a=0; amtex[a]; - if(mtex) { - if(mtex->tex) mtex->tex->id.us--; - MEM_freeN(mtex); - } - } - + if(brush->mtex.tex) brush->mtex.tex->id.us--; + curvemapping_free(brush->curve); } @@ -295,8 +278,8 @@ void brush_curve_preset(Brush *b, BrushCurvePreset preset) static MTex *brush_active_texture(Brush *brush) { - if(brush && brush->texact >= 0) - return brush->mtex[brush->texact]; + if(brush) + return &brush->mtex; return NULL; } @@ -304,8 +287,7 @@ int brush_texture_set_nr(Brush *brush, int nr) { ID *idtest, *id=NULL; - if(brush->mtex[brush->texact]) - id= (ID *)brush->mtex[brush->texact]->tex; + id= (ID *)brush->mtex.tex; idtest= (ID*)BLI_findlink(&G.main->tex, nr-1); if(idtest==0) { /* new tex */ @@ -316,13 +298,7 @@ int brush_texture_set_nr(Brush *brush, int nr) if(idtest!=id) { brush_texture_delete(brush); - if(brush->mtex[brush->texact]==NULL) { - brush->mtex[brush->texact]= add_mtex(); - brush->mtex[brush->texact]->r = 1.0f; - brush->mtex[brush->texact]->g = 1.0f; - brush->mtex[brush->texact]->b = 1.0f; - } - brush->mtex[brush->texact]->tex= (Tex*)idtest; + brush->mtex.tex= (Tex*)idtest; id_us_plus(idtest); return 1; @@ -333,16 +309,10 @@ int brush_texture_set_nr(Brush *brush, int nr) int brush_texture_delete(Brush *brush) { - if(brush->mtex[brush->texact]) { - if(brush->mtex[brush->texact]->tex) - brush->mtex[brush->texact]->tex->id.us--; - MEM_freeN(brush->mtex[brush->texact]); - brush->mtex[brush->texact]= NULL; - - return 1; - } + if(brush->mtex.tex) + brush->mtex.tex->id.us--; - return 0; + return 1; } int brush_clone_image_set_nr(Brush *brush, int nr) @@ -383,7 +353,7 @@ void brush_check_exists(Brush **brush, const char *name) /* Brush Sampling */ void brush_sample_tex(Brush *brush, float *xy, float *rgba) { - MTex *mtex= brush->mtex[brush->texact]; + MTex *mtex= &brush->mtex; if (mtex && mtex->tex) { float co[3], tin, tr, tg, tb, ta; @@ -741,7 +711,7 @@ static void brush_painter_refresh_cache(BrushPainter *painter, float *pos) { Brush *brush= painter->brush; BrushPainterCache *cache= &painter->cache; - MTex *mtex= brush->mtex[brush->texact]; + MTex *mtex= &brush->mtex; int size; short flt; @@ -976,7 +946,7 @@ float brush_curve_strength(Brush *br, float p, const float len) unsigned int *brush_gen_texture_cache(Brush *br, int half_side) { unsigned int *texcache = NULL; - MTex *mtex = br->mtex[br->texact]; + MTex *mtex = &br->mtex; TexResult texres; int hasrgb, ix, iy; int side = half_side * 2; diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 818e6195049..c60001db314 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -703,11 +703,9 @@ void make_local_texture(Tex *tex) } br= G.main->brush.first; while(br) { - for(a=0; amtex[a] && br->mtex[a]->tex==tex) { - if(br->id.lib) lib= 1; - else local= 1; - } + if(br->mtex.tex==tex) { + if(br->id.lib) lib= 1; + else local= 1; } br= br->id.next; } @@ -762,13 +760,11 @@ void make_local_texture(Tex *tex) } br= G.main->brush.first; while(br) { - for(a=0; amtex[a] && br->mtex[a]->tex==tex) { - if(br->id.lib==0) { - br->mtex[a]->tex= texn; - texn->id.us++; - tex->id.us--; - } + if(br->mtex.tex==tex) { + if(br->id.lib==0) { + br->mtex.tex= texn; + texn->id.us++; + tex->id.us--; } } br= br->id.next; @@ -904,10 +900,6 @@ int give_active_mtex(ID *id, MTex ***mtex_ar, short *act) *mtex_ar= ((Lamp *)id)->mtex; if(act) *act= (((Lamp *)id)->texact); break; - case ID_BR: - *mtex_ar= ((Brush *)id)->mtex; - if(act) *act= (((Brush *)id)->texact); - break; default: *mtex_ar = NULL; if(act) *act= 0; @@ -932,9 +924,6 @@ void set_active_mtex(ID *id, short act) case ID_LA: ((Lamp *)id)->texact= act; break; - case ID_BR: - ((Brush *)id)->texact= act; - break; } } @@ -1016,35 +1005,18 @@ void set_current_world_texture(World *wo, Tex *newtex) Tex *give_current_brush_texture(Brush *br) { - MTex *mtex= NULL; - Tex *tex= NULL; - - if(br) { - mtex= br->mtex[(int)(br->texact)]; - if(mtex) tex= mtex->tex; - } - - return tex; + return br->mtex.tex; } void set_current_brush_texture(Brush *br, Tex *newtex) { - int act= br->texact; - - if(br->mtex[act] && br->mtex[act]->tex) - id_us_min(&br->mtex[act]->tex->id); + if(br->mtex.tex) + id_us_min(&br->mtex.tex->id); if(newtex) { - if(!br->mtex[act]) - br->mtex[act]= add_mtex(); - - br->mtex[act]->tex= newtex; + br->mtex.tex= newtex; id_us_plus(&newtex->id); } - else if(br->mtex[act]) { - MEM_freeN(br->mtex[act]); - br->mtex[act]= NULL; - } } /* ------------------------------------------------------------------------- */ diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index de9841ec1c7..18fc7b8e3be 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1532,22 +1532,13 @@ static void direct_link_curvemapping(FileData *fd, CurveMapping *cumap) static void lib_link_brush(FileData *fd, Main *main) { Brush *brush; - MTex *mtex; - int a; /* only link ID pointers */ for(brush= main->brush.first; brush; brush= brush->id.next) { if(brush->id.flag & LIB_NEEDLINK) { brush->id.flag -= LIB_NEEDLINK; - brush->clone.image= newlibadr_us(fd, brush->id.lib, brush->clone.image); - - for(a=0; amtex[a]; - if(mtex) - mtex->tex= newlibadr_us(fd, brush->id.lib, mtex->tex); - } - + brush->mtex.tex= newlibadr_us(fd, brush->id.lib, brush->mtex.tex); brush->clone.image= newlibadr_us(fd, brush->id.lib, brush->clone.image); } } @@ -1556,10 +1547,6 @@ static void lib_link_brush(FileData *fd, Main *main) static void direct_link_brush(FileData *fd, Brush *brush) { /* brush itself has been read */ - int a; - - for(a=0; amtex[a]= newdataadr(fd, brush->mtex[a]); /* fallof curve */ brush->curve= newdataadr(fd, brush->curve); @@ -10336,6 +10323,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if (1) { Scene *sce; Object *ob; + Brush *brush; /* game engine changes */ for(sce = main->scene.first; sce; sce = sce->id.next) { @@ -10393,6 +10381,11 @@ static void do_versions(FileData *fd, Library *lib, Main *main) avs->path_step= arm->pathsize; } } + + /* brush texture changes */ + for (brush= main->brush.first; brush; brush= brush->id.next) { + default_mtex(&brush->mtex); + } } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ @@ -10891,11 +10884,7 @@ static void expand_texture(FileData *fd, Main *mainvar, Tex *tex) static void expand_brush(FileData *fd, Main *mainvar, Brush *brush) { - int a; - - for(a=0; amtex[a]) - expand_doit(fd, mainvar, brush->mtex[a]->tex); + expand_doit(fd, mainvar, brush->mtex.tex); expand_doit(fd, mainvar, brush->clone.image); } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 3373cc1ca71..98d3dc5188a 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2317,16 +2317,12 @@ static void write_nodetrees(WriteData *wd, ListBase *idbase) static void write_brushes(WriteData *wd, ListBase *idbase) { Brush *brush; - int a; for(brush=idbase->first; brush; brush= brush->id.next) { if(brush->id.us>0 || wd->current) { writestruct(wd, ID_BR, "Brush", 1, brush); if (brush->id.properties) IDP_WriteProperty(brush->id.properties, wd); - for(a=0; amtex[a]) - writestruct(wd, DATA, "MTex", 1, brush->mtex[a]); - + if(brush->curve) write_curvemapping(wd, brush->curve); } diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 77a8ea8e912..1cca811d909 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -126,11 +126,12 @@ typedef struct uiLayout uiLayout; #define UI_TEXT_LEFT 64 #define UI_ICON_LEFT 128 #define UI_ICON_SUBMENU 256 +#define UI_ICON_PREVIEW 512 /* control for button type block */ -#define UI_MAKE_TOP 512 -#define UI_MAKE_DOWN 1024 -#define UI_MAKE_LEFT 2048 -#define UI_MAKE_RIGHT 4096 +#define UI_MAKE_TOP 1024 +#define UI_MAKE_DOWN 2048 +#define UI_MAKE_LEFT 4096 +#define UI_MAKE_RIGHT 8192 /* button align flag, for drawing groups together */ #define UI_BUT_ALIGN (15<<14) @@ -427,6 +428,7 @@ struct PointerRNA *uiButGetOperatorPtrRNA(uiBut *but); #define UI_ID_FAKE_USER 256 #define UI_ID_PIN 512 #define UI_ID_BROWSE_RENDER 1024 +#define UI_ID_PREVIEWS 2048 #define UI_ID_FULL (UI_ID_RENAME|UI_ID_BROWSE|UI_ID_ADD_NEW|UI_ID_OPEN|UI_ID_ALONE|UI_ID_DELETE|UI_ID_LOCAL) typedef void (*uiIDPoinFuncFP)(struct bContext *C, char *str, struct ID **idpp); @@ -451,7 +453,7 @@ uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, uiBut *uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *spoin, char *tip); uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *keypoin, short *modkeypoin, char *tip); -uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, short x1, short y1, short x2, short y2, char *tip); +uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, short x1, short y1, short x2, short y2, float a1, float a2, char *tip); void uiBlockPickerButtons(struct uiBlock *block, float *col, float *hsv, float *old, char *hexcol, char mode, short retval); void uiBlockColorbandButtons(struct uiBlock *block, struct ColorBand *coba, struct rctf *butr, int event); @@ -641,6 +643,8 @@ void uiTemplateHeader(uiLayout *layout, struct bContext *C, int menus); void uiTemplateDopeSheetFilter(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr); void uiTemplateID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop); +void uiTemplateIDPreview(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, + char *newop, char *openop, char *unlinkop, int rows, int cols); void uiTemplateAnyID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, char *proptypename, char *text); void uiTemplatePathBuilder(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, diff --git a/source/blender/editors/include/UI_interface_icons.h b/source/blender/editors/include/UI_interface_icons.h index afe6a2b9dcb..69e75d0e7c4 100644 --- a/source/blender/editors/include/UI_interface_icons.h +++ b/source/blender/editors/include/UI_interface_icons.h @@ -55,7 +55,9 @@ int UI_icon_get_width(int icon_id); int UI_icon_get_height(int icon_id); void UI_icon_draw(float x, float y, int icon_id); -void UI_icon_draw_preview(float x, float y, int icon_id, int nocreate); +void UI_icon_draw_preview(float x, float y, int icon_id); +void UI_icon_draw_preview_aspect(float x, float y, int icon_id, float aspect); +void UI_icon_draw_preview_aspect_size(float x, float y, int icon_id, float aspect, int size); void UI_icon_draw_aspect(float x, float y, int icon_id, float aspect, float alpha); void UI_icon_draw_aspect_color(float x, float y, int icon_id, float aspect, float *rgb); diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 88b9c7819fd..56157386d4b 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -3171,9 +3171,10 @@ uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, char *str, short x1, short /* arg is pointer to string/name, use uiButSetSearchFunc() below to make this work */ -uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, short x1, short y1, short x2, short y2, char *tip) +/* here a1 and a2, if set, control thumbnail preview rows/cols */ +uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, short x1, short y1, short x2, short y2, float a1, float a2, char *tip) { - uiBut *but= ui_def_but(block, SEARCH_MENU, retval, "", x1, y1, x2, y2, arg, 0.0, maxlen, 0.0, 0.0, tip); + uiBut *but= ui_def_but(block, SEARCH_MENU, retval, "", x1, y1, x2, y2, arg, 0.0, maxlen, a1, a2, tip); but->icon= (BIFIconID) icon; but->flag|= UI_HAS_ICON; diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c index e219198da0f..43c8b0b2c74 100644 --- a/source/blender/editors/interface/interface_icons.c +++ b/source/blender/editors/interface/interface_icons.c @@ -940,7 +940,7 @@ static void icon_draw_size(float x, float y, int icon_id, float aspect, float al } } -void ui_id_icon_render(bContext *C, ID *id) +void ui_id_icon_render(bContext *C, ID *id, int preview) { PreviewImage *pi = BKE_previewimg_get(id); @@ -948,13 +948,17 @@ void ui_id_icon_render(bContext *C, ID *id) if ((pi->changed[0] ||!pi->rect[0])) /* changed only ever set by dynamic icons */ { /* create the preview rect if necessary */ - icon_set_image(C, id, pi, 0); + + icon_set_image(C, id, pi, 0); /* icon size */ + if (preview) + icon_set_image(C, id, pi, 1); /* preview size */ + pi->changed[0] = 0; } } } -int ui_id_icon_get(bContext *C, ID *id) +int ui_id_icon_get(bContext *C, ID *id, int preview) { int iconid= 0; @@ -968,7 +972,7 @@ int ui_id_icon_get(bContext *C, ID *id) case ID_LA: /* fall through */ iconid= BKE_icon_getid(id); /* checks if not exists, or changed */ - ui_id_icon_render(C, id); + ui_id_icon_render(C, id, preview); break; default: break; @@ -1004,8 +1008,18 @@ void UI_icon_draw_size(float x, float y, int size, int icon_id, float alpha) icon_draw_size(x, y, icon_id, 1.0f, alpha, NULL, 0, size, 1); } -void UI_icon_draw_preview(float x, float y, int icon_id, int nocreate) +void UI_icon_draw_preview(float x, float y, int icon_id) +{ + icon_draw_mipmap(x, y, icon_id, 1.0f, 1.0f, PREVIEW_MIPMAP_LARGE, 0); +} + +void UI_icon_draw_preview_aspect(float x, float y, int icon_id, float aspect) +{ + icon_draw_mipmap(x, y, icon_id, aspect, 1.0f, PREVIEW_MIPMAP_LARGE, 0); +} + +void UI_icon_draw_preview_aspect_size(float x, float y, int icon_id, float aspect, int size) { - icon_draw_mipmap(x, y, icon_id, 1.0f, 1.0f, PREVIEW_MIPMAP_LARGE, nocreate); + icon_draw_size(x, y, icon_id, aspect, 1.0f, NULL, PREVIEW_MIPMAP_LARGE, size, 0); } diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 02808f9c2e7..72fa949c2b8 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -450,13 +450,14 @@ struct ThemeUI; void ui_widget_color_init(struct ThemeUI *tui); void ui_draw_menu_item(struct uiFontStyle *fstyle, rcti *rect, char *name, int iconid, int state); +void ui_draw_preview_item(struct uiFontStyle *fstyle, rcti *rect, char *name, int iconid, int state); /* interface_style.c */ void uiStyleInit(void); /* interface_icons.c */ -void ui_id_icon_render(struct bContext *C, struct ID *id); -int ui_id_icon_get(struct bContext *C, struct ID *id); +void ui_id_icon_render(struct bContext *C, struct ID *id, int preview); +int ui_id_icon_get(struct bContext *C, struct ID *id, int preview); /* resources.c */ void init_userdef_do_versions(void); diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index e512c1f6bf8..c2af4150aa2 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1115,7 +1115,7 @@ static void rna_search_cb(const struct bContext *C, void *arg_but, char *str, ui continue; if(RNA_struct_is_ID(itemptr.type)) - iconid= ui_id_icon_get((bContext*)C, itemptr.data); + iconid= ui_id_icon_get((bContext*)C, itemptr.data, 0); name= RNA_struct_name_get_alloc(&itemptr, NULL, 0); diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 8ebfed21dcc..b6956f84000 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -547,6 +547,8 @@ typedef struct uiSearchboxData { uiSearchItems items; int active; /* index in items array */ int noback; /* when menu opened with enough space for this */ + int preview; /* draw thumbnail previews, rather than list */ + int prv_rows, prv_cols; } uiSearchboxData; #define SEARCH_ITEMS 10 @@ -628,14 +630,34 @@ static void ui_searchbox_select(bContext *C, ARegion *ar, uiBut *but, int step) static void ui_searchbox_butrect(rcti *rect, uiSearchboxData *data, int itemnr) { - int buth= (data->bbox.ymax-data->bbox.ymin - 2*MENU_TOP)/SEARCH_ITEMS; - - *rect= data->bbox; - rect->xmin= data->bbox.xmin + 3.0f; - rect->xmax= data->bbox.xmax - 3.0f; - - rect->ymax= data->bbox.ymax - MENU_TOP - itemnr*buth; - rect->ymin= rect->ymax - buth; + /* thumbnail preview */ + if (data->preview) { + int buth = (data->bbox.ymax - data->bbox.ymin - 2*MENU_TOP) / data->prv_rows; + int butw = (data->bbox.xmax - data->bbox.xmin) / data->prv_cols; + int row, col; + + *rect= data->bbox; + + col = itemnr % data->prv_cols; + row = itemnr / data->prv_cols; + + rect->xmin += col * butw; + rect->xmax = rect->xmin + butw; + + rect->ymax = data->bbox.ymax - (row * buth); + rect->ymin = rect->ymax - buth; + } + /* list view */ + else { + int buth= (data->bbox.ymax-data->bbox.ymin - 2*MENU_TOP)/SEARCH_ITEMS; + + *rect= data->bbox; + rect->xmin= data->bbox.xmin + 3.0f; + rect->xmax= data->bbox.xmax - 3.0f; + + rect->ymax= data->bbox.ymax - MENU_TOP - itemnr*buth; + rect->ymin= rect->ymax - buth; + } } @@ -799,27 +821,55 @@ static void ui_searchbox_region_draw(const bContext *C, ARegion *ar) if(data->items.totitem) { rcti rect; int a; + + if (data->preview) { + /* draw items */ + for(a=0; aitems.totitem; a++) { + ui_searchbox_butrect(&rect, data, a); - /* draw items */ - for(a=0; aitems.totitem; a++) { - ui_searchbox_butrect(&rect, data, a); + /* widget itself */ + if (data->preview) + ui_draw_preview_item(&data->fstyle, &rect, data->items.names[a], data->items.icons[a], (a+1)==data->active?UI_ACTIVE:0); + else + ui_draw_menu_item(&data->fstyle, &rect, data->items.names[a], data->items.icons[a], (a+1)==data->active?UI_ACTIVE:0); + } - /* widget itself */ - ui_draw_menu_item(&data->fstyle, &rect, data->items.names[a], data->items.icons[a], (a+1)==data->active?UI_ACTIVE:0); + /* indicate more */ + if(data->items.more) { + ui_searchbox_butrect(&rect, data, data->items.maxitem-1); + glEnable(GL_BLEND); + UI_icon_draw(rect.xmax-18, rect.ymin-7, ICON_TRIA_DOWN); + glDisable(GL_BLEND); + } + if(data->items.offset) { + ui_searchbox_butrect(&rect, data, 0); + glEnable(GL_BLEND); + UI_icon_draw(rect.xmin, rect.ymax-9, ICON_TRIA_UP); + glDisable(GL_BLEND); + } - } - /* indicate more */ - if(data->items.more) { - ui_searchbox_butrect(&rect, data, data->items.maxitem-1); - glEnable(GL_BLEND); - UI_icon_draw((rect.xmax-rect.xmin)/2, rect.ymin-9, ICON_TRIA_DOWN); - glDisable(GL_BLEND); - } - if(data->items.offset) { - ui_searchbox_butrect(&rect, data, 0); - glEnable(GL_BLEND); - UI_icon_draw((rect.xmax-rect.xmin)/2, rect.ymax-7, ICON_TRIA_UP); - glDisable(GL_BLEND); + } else { + /* draw items */ + for(a=0; aitems.totitem; a++) { + ui_searchbox_butrect(&rect, data, a); + + /* widget itself */ + ui_draw_menu_item(&data->fstyle, &rect, data->items.names[a], data->items.icons[a], (a+1)==data->active?UI_ACTIVE:0); + + } + /* indicate more */ + if(data->items.more) { + ui_searchbox_butrect(&rect, data, data->items.maxitem-1); + glEnable(GL_BLEND); + UI_icon_draw((rect.xmax-rect.xmin)/2, rect.ymin-9, ICON_TRIA_DOWN); + glDisable(GL_BLEND); + } + if(data->items.offset) { + ui_searchbox_butrect(&rect, data, 0); + glEnable(GL_BLEND); + UI_icon_draw((rect.xmax-rect.xmin)/2, rect.ymax-7, ICON_TRIA_UP); + glDisable(GL_BLEND); + } } } } @@ -830,7 +880,7 @@ static void ui_searchbox_region_free(ARegion *ar) int a; /* free search data */ - for(a=0; aitems.maxitem; a++) MEM_freeN(data->items.names[a]); MEM_freeN(data->items.names); MEM_freeN(data->items.pointers); @@ -876,8 +926,13 @@ ARegion *ui_searchbox_create(bContext *C, ARegion *butregion, uiBut *but) if(but->block->flag & UI_BLOCK_LOOP) data->noback= 1; - /* compute position */ + if (but->a1 > 0 && but->a2 > 0) { + data->preview = 1; + data->prv_rows = but->a1; + data->prv_cols = but->a2; + } + /* compute position */ if(but->block->flag & UI_BLOCK_LOOP) { /* this case is search menu inside other menu */ /* we copy region size */ @@ -972,13 +1027,17 @@ ARegion *ui_searchbox_create(bContext *C, ARegion *butregion, uiBut *but) ED_region_tag_redraw(ar); /* prepare search data */ - data->items.maxitem= SEARCH_ITEMS; + if (data->preview) { + data->items.maxitem= data->prv_rows * data->prv_cols; + } else { + data->items.maxitem= SEARCH_ITEMS; + } data->items.maxstrlen= but->hardmax; data->items.totitem= 0; - data->items.names= MEM_callocN(SEARCH_ITEMS*sizeof(void *), "search names"); - data->items.pointers= MEM_callocN(SEARCH_ITEMS*sizeof(void *), "search pointers"); - data->items.icons= MEM_callocN(SEARCH_ITEMS*sizeof(int), "search icons"); - for(x1=0; x1items.names= MEM_callocN(data->items.maxitem*sizeof(void *), "search names"); + data->items.pointers= MEM_callocN(data->items.maxitem*sizeof(void *), "search pointers"); + data->items.icons= MEM_callocN(data->items.maxitem*sizeof(int), "search icons"); + for(x1=0; x1items.maxitem; x1++) data->items.names[x1]= MEM_callocN(but->hardmax+1, "search pointers"); return ar; diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index a2b926003a7..3c2387c7df0 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -122,6 +122,7 @@ typedef struct TemplateID { PropertyRNA *prop; ListBase *idlb; + int prv_rows, prv_cols; } TemplateID; /* Search browse menu, assign */ @@ -150,7 +151,7 @@ static void id_search_cb(const bContext *C, void *arg_template, char *str, uiSea /* ID listbase */ for(id= lb->first; id; id= id->next) { if(BLI_strcasestr(id->name+2, str)) { - iconid= ui_id_icon_get((bContext*)C, id); + iconid= ui_id_icon_get((bContext*)C, id, 0); if(!uiSearchItemAdd(items, id->name+2, id, iconid)) break; @@ -180,11 +181,26 @@ static uiBlock *id_search_menu(bContext *C, ARegion *ar, void *arg_litem) block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1); - /* fake button, it holds space for search items */ - uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); - - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, 19, ""); - uiButSetSearchFunc(but, id_search_cb, &template, id_search_call_cb, idptr.data); + /* preview thumbnails */ + if (template.prv_rows > 0 && template.prv_cols > 0) { + int w = 96 * template.prv_cols; + int h = 96 * template.prv_rows + 20; + + /* fake button, it holds space for search items */ + uiDefBut(block, LABEL, 0, "", 10, 15, w, h, NULL, 0, 0, 0, 0, NULL); + + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, w, 19, template.prv_rows, template.prv_cols, ""); + uiButSetSearchFunc(but, id_search_cb, &template, id_search_call_cb, idptr.data); + } + /* list view */ + else { + /* fake button, it holds space for search items */ + uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); + + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, 19, 0, 0, ""); + uiButSetSearchFunc(but, id_search_cb, &template, id_search_call_cb, idptr.data); + } + uiBoundsBlock(block, 6); uiBlockSetDirection(block, UI_DOWN); @@ -293,9 +309,10 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) } } -static void template_ID(bContext *C, uiBlock *block, TemplateID *template, StructRNA *type, int flag, char *newop, char *openop, char *unlinkop) +static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, StructRNA *type, int flag, char *newop, char *openop, char *unlinkop) { uiBut *but; + uiBlock *block; PointerRNA idptr; ListBase *lb; ID *id, *idfrom; @@ -305,11 +322,27 @@ static void template_ID(bContext *C, uiBlock *block, TemplateID *template, Struc idfrom= template->ptr.id.data; lb= template->idlb; + block= uiLayoutGetBlock(layout); uiBlockBeginAlign(block); if(idptr.type) type= idptr.type; + if(flag & UI_ID_PREVIEWS) { + + but= uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X*6, UI_UNIT_Y*6, "Browse ID data"); + if(type) { + but->icon= RNA_struct_ui_icon(type); + if (id) but->icon = ui_id_icon_get(C, id, 1); + uiButSetFlag(but, UI_HAS_ICON|UI_ICON_PREVIEW); + } + if((idfrom && idfrom->lib)) + uiButSetFlag(but, UI_BUT_DISABLED); + + + uiLayoutRow(layout, 1); + } else + if(flag & UI_ID_BROWSE) { but= uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X*1.6, UI_UNIT_Y, "Browse ID data"); if(type) { @@ -412,10 +445,9 @@ static void template_ID(bContext *C, uiBlock *block, TemplateID *template, Struc uiBlockEndAlign(block); } -void uiTemplateID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop) +static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, int previews, int prv_rows, int prv_cols) { TemplateID *template; - uiBlock *block; PropertyRNA *prop; StructRNA *type; int flag; @@ -430,14 +462,18 @@ void uiTemplateID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname template= MEM_callocN(sizeof(TemplateID), "TemplateID"); template->ptr= *ptr; template->prop= prop; - + template->prv_rows = prv_rows; + template->prv_cols = prv_cols; + flag= UI_ID_BROWSE|UI_ID_RENAME|UI_ID_DELETE; if(newop) flag |= UI_ID_ADD_NEW; if(openop) flag |= UI_ID_OPEN; - + if(previews) + flag |= UI_ID_PREVIEWS; + type= RNA_property_pointer_type(ptr, prop); template->idlb= wich_libbase(CTX_data_main(C), RNA_type_to_ID_code(type)); @@ -446,11 +482,21 @@ void uiTemplateID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname */ if(template->idlb) { uiLayoutRow(layout, 1); - block= uiLayoutGetBlock(layout); - template_ID(C, block, template, type, flag, newop, openop, unlinkop); + template_ID(C, layout, template, type, flag, newop, openop, unlinkop); } MEM_freeN(template); + +} + +void uiTemplateID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop) +{ + ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, 0, 0, 0); +} + +void uiTemplateIDPreview(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, int rows, int cols) +{ + ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, 1, rows, cols); } /************************ ID Chooser Template ***************************/ @@ -1944,7 +1990,7 @@ static int list_item_icon_get(bContext *C, PointerRNA *itemptr, int rnaicon) /* get icon from ID */ if(id) { - icon= ui_id_icon_get(C, id); + icon= ui_id_icon_get(C, id, 1); if(icon) return icon; @@ -2245,7 +2291,7 @@ void uiTemplateOperatorSearch(uiLayout *layout) block= uiLayoutGetBlock(layout); uiBlockSetCurLayout(block, layout); - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, sizeof(search), 0, 0, UI_UNIT_X*6, UI_UNIT_Y, ""); + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, sizeof(search), 0, 0, UI_UNIT_X*6, UI_UNIT_Y, 0, 0, ""); uiButSetSearchFunc(but, operator_search_cb, NULL, operator_call_cb, NULL); } diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 4c9698974b4..9e23530be4f 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -695,6 +695,27 @@ static void widgetbase_draw(uiWidgetBase *wtb, uiWidgetColors *wcol) /* *********************** text/icon ************************************** */ +#define PREVIEW_PAD 4 + +static void widget_draw_preview(BIFIconID icon, float aspect, float alpha, rcti *rect) +{ + int w, h, x, y, size; + + /* only display previews for actual preview images .. ? */ + if (icon < BIFICONID_LAST) + return; + + w = rect->xmax - rect->xmin; + h = rect->ymax - rect->ymin; + size = MIN2(w, h); + size -= PREVIEW_PAD*2; /* padding */ + + x = rect->xmin + w/2 - size/2; + y = rect->ymin + h/2 - size/2; + + UI_icon_draw_preview_aspect_size(x, y, icon, aspect, size); +} + /* icons have been standardized... and this call draws in untransformed coordinates */ #define ICON_HEIGHT 16.0f @@ -704,6 +725,11 @@ static void widget_draw_icon(uiBut *but, BIFIconID icon, float alpha, rcti *rect int xs=0, ys=0; float aspect, height; + if (but->flag & UI_ICON_PREVIEW) { + widget_draw_preview(icon, but->block->aspect, alpha, rect); + return; + } + /* this icon doesn't need draw... */ if(icon==ICON_BLANK1 && (but->flag & UI_ICON_SUBMENU)==0) return; @@ -2692,3 +2718,25 @@ void ui_draw_menu_item(uiFontStyle *fstyle, rcti *rect, char *name, int iconid, } } +void ui_draw_preview_item(uiFontStyle *fstyle, rcti *rect, char *name, int iconid, int state) +{ + rcti trect = *rect; + + uiWidgetType *wt= widget_type(UI_WTYPE_MENU_ITEM); + + wt->state(wt, state); + wt->draw(&wt->wcol, rect, 0, 0); + + widget_draw_preview(iconid, 1.f, 1.f, rect); + + if (state == UI_ACTIVE) + glColor3ubv((unsigned char*)wt->wcol.text); + else + glColor3ubv((unsigned char*)wt->wcol.text_sel); + + trect.xmin += 0; + trect.xmax = trect.xmin + BLF_width(name) + 10; + trect.ymin += 10; + trect.ymax = trect.ymin + BLF_height(name); + uiStyleFontDraw(fstyle, &trect, name); +} diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 526eb2d6661..4c903f66def 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -2890,7 +2890,7 @@ static void project_paint_begin(ProjPaintState *ps) ps->is_airbrush = (ps->brush->flag & BRUSH_AIRBRUSH) ? 1 : 0; - ps->is_texbrush = (ps->brush->mtex[ps->brush->texact] && ps->brush->mtex[ps->brush->texact]->tex) ? 1 : 0; + ps->is_texbrush = (ps->brush->mtex.tex) ? 1 : 0; /* calculate vert screen coords diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 09b99f4f43c..75cc927cf0e 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -614,12 +614,9 @@ static float get_texcache_pixel_bilinear(const SculptSession *ss, float u, float /* Return a multiplier for brush strength on a particular vertex. */ static float tex_strength(SculptSession *ss, Brush *br, float *point, const float len) { - MTex *tex = NULL; + MTex *tex = &br->mtex; float avg= 1; - if(br->texact >= 0) - tex = br->mtex[br->texact]; - if(!tex) { avg= 1; } diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 18ba149d7ed..c4bdd3a6c5b 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -626,7 +626,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r Brush *br= ptr->data; if(br) - CTX_data_pointer_set(result, &br->id, &RNA_BrushTextureSlot, br->mtex[(int)br->texact]); + CTX_data_pointer_set(result, &br->id, &RNA_BrushTextureSlot, &br->mtex); } return 1; diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 7e51ee2a5e9..6677a064e11 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -335,6 +335,10 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) buttons_area_redraw(sa, BCONTEXT_DATA); sbuts->preview= 1; break; + case NC_BRUSH: + buttons_area_redraw(sa, BCONTEXT_TEXTURE); + sbuts->preview= 1; + break; case NC_TEXTURE: ED_area_tag_redraw(sa); sbuts->preview= 1; diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index f3485328c52..1303168e78d 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -5029,7 +5029,7 @@ static uiBlock *operator_search_menu(bContext *C, ARegion *ar, void *arg_kmi) /* fake button, it holds space for search items */ uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, 19, ""); + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, 19, 0, 0, ""); uiButSetSearchFunc(but, operator_search_cb, arg_kmi, operator_call_cb, ot); uiBoundsBlock(block, 6); diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c index 0384a23579e..b05043cd76e 100644 --- a/source/blender/editors/space_view3d/view3d_toolbar.c +++ b/source/blender/editors/space_view3d/view3d_toolbar.c @@ -239,7 +239,7 @@ static uiBlock *tool_search_menu(bContext *C, ARegion *ar, void *arg_listbase) /* fake button, it holds space for search items */ uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL); - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, OP_MAX_TYPENAME, 10, 0, 150, 19, ""); + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, OP_MAX_TYPENAME, 10, 0, 150, 19, 0, 0, ""); uiButSetSearchFunc(but, operator_search_cb, arg_listbase, operator_call_cb, NULL); uiBoundsBlock(block, 6); diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h index c8fc14ca0f0..4738b0d81e8 100644 --- a/source/blender/makesdna/DNA_brush_types.h +++ b/source/blender/makesdna/DNA_brush_types.h @@ -31,6 +31,7 @@ #define DNA_BRUSH_TYPES_H #include "DNA_ID.h" +#include "DNA_texture_types.h" #ifndef MAX_MTEX #define MAX_MTEX 18 @@ -50,9 +51,8 @@ typedef struct Brush { ID id; struct BrushClone clone; - struct CurveMapping *curve; /* falloff curve */ - struct MTex *mtex[18]; /* MAX_MTEX */ + struct MTex mtex; short flag, blend; /* general purpose flag, blend mode */ int size; /* brush diameter */ @@ -65,10 +65,8 @@ typedef struct Brush { float rgb[3]; /* color */ float alpha; /* opacity */ - short texact; /* active texture */ char sculpt_tool; /* active tool */ - - char pad[1]; + char pad2[3]; } Brush; /* Brush.flag */ diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c index 7f7126c659a..8f8dd4681ab 100644 --- a/source/blender/makesrna/intern/rna_brush.c +++ b/source/blender/makesrna/intern/rna_brush.c @@ -33,6 +33,7 @@ #include "DNA_texture_types.h" #include "IMB_imbuf.h" +#include "WM_types.h" EnumPropertyItem brush_sculpt_tool_items[] = { {SCULPT_TOOL_DRAW, "DRAW", 0, "Draw", ""}, @@ -52,29 +53,6 @@ EnumPropertyItem brush_sculpt_tool_items[] = { #include "BKE_texture.h" #include "WM_api.h" -#include "WM_types.h" - -static void rna_Brush_mtex_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) -{ - Brush *brush= (Brush*)ptr->data; - rna_iterator_array_begin(iter, (void*)brush->mtex, sizeof(MTex*), MAX_MTEX, 0, NULL); -} - -static PointerRNA rna_Brush_active_texture_get(PointerRNA *ptr) -{ - Brush *br= (Brush*)ptr->data; - Tex *tex; - - tex= give_current_brush_texture(br); - return rna_pointer_inherit_refine(ptr, &RNA_Texture, tex); -} - -static void rna_Brush_active_texture_set(PointerRNA *ptr, PointerRNA value) -{ - Brush *br= (Brush*)ptr->data; - - set_current_brush_texture(br, value.data); -} static void rna_Brush_update(Main *bmain, Scene *scene, PointerRNA *ptr) { @@ -291,8 +269,17 @@ static void rna_def_brush(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Brush_update"); /* texture */ - rna_def_mtex_common(srna, "rna_Brush_mtex_begin", "rna_Brush_active_texture_get", - "rna_Brush_active_texture_set", "BrushTextureSlot", "rna_Brush_update"); + prop= RNA_def_property(srna, "texture_slot", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "BrushTextureSlot"); + RNA_def_property_pointer_sdna(prop, NULL, "mtex"); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Texture Slot", ""); + + prop= RNA_def_property(srna, "texture", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "mtex.tex"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Texture", ""); + RNA_def_property_update(prop, NC_TEXTURE, "rna_Brush_update"); /* clone tool */ prop= RNA_def_property(srna, "clone_image", PROP_POINTER, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 9c4cc64fbb7..37917bb7435 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -269,6 +269,15 @@ void RNA_api_ui_layout(StructRNA *srna) RNA_def_string(func, "open", "", 0, "", "Operator identifier to open a file for creating a new ID block."); RNA_def_string(func, "unlink", "", 0, "", "Operator identifier to unlink the ID block."); + func= RNA_def_function(srna, "template_ID_preview", "uiTemplateIDPreview"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + api_ui_item_rna_common(func); + RNA_def_string(func, "new", "", 0, "", "Operator identifier to create a new ID block."); + RNA_def_string(func, "open", "", 0, "", "Operator identifier to open a file for creating a new ID block."); + RNA_def_string(func, "unlink", "", 0, "", "Operator identifier to unlink the ID block."); + RNA_def_int(func, "rows", 0, 0, INT_MAX, "Number of thumbnail preview rows to display", "", 0, INT_MAX); + RNA_def_int(func, "cols", 0, 0, INT_MAX, "Number of thumbnail preview columns to display", "", 0, INT_MAX); + func= RNA_def_function(srna, "template_any_ID", "uiTemplateAnyID"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); parm= RNA_def_pointer(func, "data", "AnyType", "", "Data from which to take property."); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 1264639454b..ca53b0de795 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1037,7 +1037,7 @@ static uiBlock *wm_block_search_menu(bContext *C, ARegion *ar, void *arg_op) block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS); uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT); - but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 10, 180, 19, ""); + but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 10, 180, 19, 0, 0, ""); uiButSetSearchFunc(but, operator_search_cb, NULL, operator_call_cb, NULL); /* fake button, it holds space for search items */ -- cgit v1.2.3 From 7a33b5ce72dd245d89273d2ce9d16a713f0cc326 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Sun, 3 Jan 2010 08:38:42 +0000 Subject: Tweak to group operator naming --- source/blender/editors/object/object_group.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/object/object_group.c b/source/blender/editors/object/object_group.c index 1e5b93aa6dc..50fc5f5d2fe 100644 --- a/source/blender/editors/object/object_group.c +++ b/source/blender/editors/object/object_group.c @@ -287,8 +287,9 @@ void OBJECT_OT_group_add(wmOperatorType *ot) PropertyRNA *prop; /* identifiers */ - ot->name= "Add Group"; + ot->name= "Add to Group"; ot->idname= "OBJECT_OT_group_add"; + ot->description = "Add an object to an existing group, or create new."; /* api callbacks */ ot->exec= group_add_exec; -- cgit v1.2.3 From c6e40798fbbd6996310630198261fec194a2109e Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 3 Jan 2010 14:51:34 +0000 Subject: Stickness factor for particle collisions, patch submitted by Raul Fernandez Hernandez (farsthary). --- source/blender/blenkernel/intern/particle_system.c | 4 +++- source/blender/makesdna/DNA_object_force.h | 3 ++- source/blender/makesrna/intern/rna_object_force.c | 6 ++++++ 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 767dc8fcf89..27e0c632a81 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -2895,7 +2895,9 @@ static void deflect_particle(ParticleSimulationData *sim, int p, float dfra, flo } else { VECCOPY(pa->state.co, col.co2); - VECCOPY(pa->state.vel, vel); + /* Stickness to surface */ + normalize_v3(nor_vec); + VECADDFAC(pa->state.vel, vel, nor_vec, -pd->pdef_stickness); } } deflections++; diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index 99b8f400a5e..b3cdd6135e7 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -87,8 +87,9 @@ typedef struct PartDeflect { float pdef_perm; /* Chance of particle passing through mesh */ float pdef_frict; /* Friction factor for particle deflection */ float pdef_rfrict; /* Random element of friction for deflection */ + float pdef_stickness;/* surface particle stickness */ - float absorption, pad; /* used for forces */ + float absorption; /* used for forces */ /* softbody collisions */ float pdef_sbdamp; /* Damping factor for softbody deflection */ diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index f4ff066f2b4..0eb4f9b9da0 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -810,6 +810,12 @@ static void rna_def_collision(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flag", PDEFLE_KILL_PART); RNA_def_property_ui_text(prop, "Kill Particles", "Kill collided particles"); RNA_def_property_update(prop, 0, "rna_CollisionSettings_update"); + + prop= RNA_def_property(srna, "stickness", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "pdef_stickness"); + RNA_def_property_range(prop, 0.0f, 10.0f); + RNA_def_property_ui_text(prop, "Stickness", "Amount of stickness to surface collision"); + RNA_def_property_update(prop, 0, "rna_CollisionSettings_update"); /* Soft Body and Cloth Interaction */ -- cgit v1.2.3 From 1f33d574c2d18f0037f5e168dbd1a54d23dad6d7 Mon Sep 17 00:00:00 2001 From: Stefan Gartner Date: Sun, 3 Jan 2010 20:35:13 +0000 Subject: OS X Makefiles: * added some new variables (mostly the same as with scons): - USE_COCOA: use Cocoa for ghost (defaults to true) - MACOSX_ARCHITECTURE: can be ppc, ppc64, i386, x86_64. By default this is the host architecture (ppc for PowerPC Macs, i386 for Intel Macs). In theory this allows to cross compile blender for a different architecture, though cross compilation only works on Intel Macs, because makesdna and makesrna are built for the target architecture. For a 64 bit build, set MACOSX_ARCHITECTURE to x86_64 (Intel) or ppc64 (PowerPC). - MACOSX_MIN_VERS: minimum OS X version to run blender on (10.4 for 32 bit builds, 10.5 for 64 bit builds) - MACOSX_DEPLOYMENT_TARGET: needed by the linker to create an Application targeted for a specific OS version (defaults to 10.4 for 32 bit builds, 10.5 for 64 bit builds) - MACOSX_SDK: path to a specific SDK. currently not used - USE_QTKIT: use QTKit instead of QuickTime (defaults to true for 64 bit builds, as using QTKit is mandatory in that case)) * use the same compiler flags as scons * default compiler now is gcc-4.0 when building for 10.4 and gcc-4.2 when building for 10.5 * extract $(LCGDIR)/release/python_$(MACOSX_ARCHITECTURE).zip to Application bundle. This might break building on 10.4, to fix that, rename $(LCGDIR)/release/python.zip When compiling blender, only MACOSX_ARCHITECTURE might be of interest, as it allows doing 64 bit builds (or 32 bit PowerPC builds on Intel). All other variables are then set to reasonable defaults. For current users of the Makefile system, this commit shouldn't change much. --- source/blender/makesdna/intern/Makefile | 4 ++++ source/blender/makesrna/intern/Makefile | 4 ++++ source/blender/quicktime/apple/Makefile | 6 ++++++ source/blender/quicktime/apple/quicktime_export.c | 2 ++ source/blender/quicktime/apple/quicktime_import.c | 2 ++ 5 files changed, 18 insertions(+) (limited to 'source/blender') diff --git a/source/blender/makesdna/intern/Makefile b/source/blender/makesdna/intern/Makefile index 857e53d2573..01c4d87a4fc 100644 --- a/source/blender/makesdna/intern/Makefile +++ b/source/blender/makesdna/intern/Makefile @@ -56,6 +56,10 @@ ifeq ($(OS),windows) endif endif +ifeq ($(OS), darwin) + LDFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) +endif + clean:: @$(RM) $(DIR)/makesdna* $(DIR)/DNA.c @$(RM) $(DIR)/debug/makesdna* $(DIR)/debug/DNA.c diff --git a/source/blender/makesrna/intern/Makefile b/source/blender/makesrna/intern/Makefile index e4e4e859ed3..5fefb2ae15b 100644 --- a/source/blender/makesrna/intern/Makefile +++ b/source/blender/makesrna/intern/Makefile @@ -104,6 +104,10 @@ ifeq ($(OS),windows) endif endif +ifeq ($(OS), darwin) + LDFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) +endif + clean:: @$(RM) $(DIR)/makesrna* $(DIR)/rna* @$(RM) $(DIR)/debug/makesrna* $(DIR)/debug/rna* diff --git a/source/blender/quicktime/apple/Makefile b/source/blender/quicktime/apple/Makefile index 19f87ed31e3..70f3f05c5f0 100644 --- a/source/blender/quicktime/apple/Makefile +++ b/source/blender/quicktime/apple/Makefile @@ -31,6 +31,12 @@ LIBNAME = blenderqt DIR = $(OCGDIR)/blender/$(LIBNAME) +ifeq ($(OS), $(findstring $(OS), "darwin")) + ifeq ($(USE_QTKIT),true) + OCSRCS += $(wildcard *.m) + endif +endif + include nan_compile.mk CFLAGS += $(LEVEL1_C_WARNINGS) diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index abce6c08395..3f9a6de3c2a 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -30,6 +30,7 @@ #ifdef WITH_QUICKTIME #if defined(_WIN32) || defined(__APPLE__) +#ifndef USE_QTKIT #include "DNA_scene_types.h" #include "DNA_windowmanager_types.h" @@ -886,6 +887,7 @@ void SCENE_OT_render_data_set_quicktime_codec(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +#endif /* USE_QTKIT */ #endif /* _WIN32 || __APPLE__ */ #endif /* WITH_QUICKTIME */ diff --git a/source/blender/quicktime/apple/quicktime_import.c b/source/blender/quicktime/apple/quicktime_import.c index 571da92a292..6fd72131b00 100644 --- a/source/blender/quicktime/apple/quicktime_import.c +++ b/source/blender/quicktime/apple/quicktime_import.c @@ -30,6 +30,7 @@ #ifdef WITH_QUICKTIME #if defined(_WIN32) || defined(__APPLE__) +#ifndef USE_QTKIT #include "IMB_anim.h" #include "BLO_sys_types.h" @@ -771,6 +772,7 @@ bail: return ibuf; } +#endif /* USE_QTKIT */ #endif /* _WIN32 || __APPLE__ */ #endif /* WITH_QUICKTIME */ -- cgit v1.2.3 From f02dde5de7f1d54f489a124cea128bc993b708d7 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Sun, 3 Jan 2010 23:45:13 +0000 Subject: Patch from Raul Fernandez Hernandez - volume render multiple scattering fixes Also: Changed 'Spread' value to be proportional to the light cache voxel grid (i.e. 0.5 spreads half the width of the grid), so that it's independent of light cache resolution. This means that results should be similar as you increase/ decrease resolution. --- source/blender/blenkernel/intern/material.c | 3 + source/blender/blenloader/intern/readfile.c | 10 ++ source/blender/makesdna/DNA_material_types.h | 2 +- source/blender/makesrna/intern/rna_material.c | 9 +- .../blender/render/intern/source/volume_precache.c | 147 ++++++++++++--------- source/blender/render/intern/source/volumetric.c | 2 +- 6 files changed, 104 insertions(+), 69 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index a3e0ab04991..3567c061f04 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -184,6 +184,9 @@ void init_material(Material *ma) ma->vol.shade_type = MA_VOL_SHADE_SHADED; ma->vol.shadeflag |= MA_VOL_PRECACHESHADING; ma->vol.precache_resolution = 50; + ma->vol.ms_spread = 0.2f; + ma->vol.ms_diff = 1.f; + ma->vol.ms_intensity = 1.f; ma->mode= MA_TRACEBLE|MA_SHADBUF|MA_SHADOW|MA_RAYBIAS|MA_TANGENT_STR|MA_ZTRANSP; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 18fc7b8e3be..69186432d64 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10324,6 +10324,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) Scene *sce; Object *ob; Brush *brush; + Material *ma; /* game engine changes */ for(sce = main->scene.first; sce; sce = sce->id.next) { @@ -10386,6 +10387,15 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for (brush= main->brush.first; brush; brush= brush->id.next) { default_mtex(&brush->mtex); } + + for (ma= main->mat.first; ma; ma= ma->id.next) { + if (ma->vol.ms_spread < 0.0001f) { + ma->vol.ms_spread = 0.2f; + ma->vol.ms_diff = 1.f; + ma->vol.ms_intensity = 1.f; + } + } + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h index 36de890e6dc..7a19262b0cd 100644 --- a/source/blender/makesdna/DNA_material_types.h +++ b/source/blender/makesdna/DNA_material_types.h @@ -69,7 +69,7 @@ typedef struct VolumeSettings { float stepsize; float ms_diff; float ms_intensity; - int ms_steps; + float ms_spread; } VolumeSettings; typedef struct Material { diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index a5c1d8d5f57..b69e5130c0f 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -1023,10 +1023,11 @@ static void rna_def_material_volume(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Diffusion", "Diffusion factor, the strength of the blurring effect"); RNA_def_property_update(prop, 0, "rna_Material_update"); - prop= RNA_def_property(srna, "ms_spread", PROP_INT, PROP_NONE); - RNA_def_property_int_sdna(prop, NULL, "ms_steps"); - RNA_def_property_range(prop, 0, 1024); - RNA_def_property_ui_text(prop, "Spread", "Simulation steps, the effective distance over which the light is diffused"); + prop= RNA_def_property(srna, "ms_spread", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "ms_spread"); + RNA_def_property_range(prop, 0, FLT_MAX); + RNA_def_property_ui_range(prop, 0.0f, 1.0f, 1, 3); + RNA_def_property_ui_text(prop, "Spread", "Proportional distance over which the light is diffused"); RNA_def_property_update(prop, 0, "rna_Material_update"); prop= RNA_def_property(srna, "ms_intensity", PROP_FLOAT, PROP_NONE); diff --git a/source/blender/render/intern/source/volume_precache.c b/source/blender/render/intern/source/volume_precache.c index e9162b7367f..80a6dd9d6a0 100644 --- a/source/blender/render/intern/source/volume_precache.c +++ b/source/blender/render/intern/source/volume_precache.c @@ -21,7 +21,7 @@ * * The Original Code is: all of this file. * - * Contributor(s): Matt Ebb. + * Contributor(s): Matt Ebb, Ra˙l Fern·ndez Hern·ndez (Farsthary). * * ***** END GPL LICENSE BLOCK ***** */ @@ -134,9 +134,10 @@ static float get_avg_surrounds(float *cache, int *res, int xx, int yy, int zz) for (x=-1; x <= 1; x++) { x_ = xx+x; if (x_ >= 0 && x_ <= res[0]-1) { - - if (cache[ V_I(x_, y_, z_, res) ] > 0.0f) { - tot += cache[ V_I(x_, y_, z_, res) ]; + const int i= V_I(x_, y_, z_, res); + + if (cache[i] > 0.0f) { + tot += cache[i]; added++; } @@ -164,12 +165,14 @@ static void lightcache_filter(VolumePrecache *vp) for (y=0; y < vp->res[1]; y++) { for (x=0; x < vp->res[0]; x++) { /* trigger for outside mesh */ - if (vp->data_r[ V_I(x, y, z, vp->res) ] < -0.f) - vp->data_r[ V_I(x, y, z, vp->res) ] = get_avg_surrounds(vp->data_r, vp->res, x, y, z); - if (vp->data_g[ V_I(x, y, z, vp->res) ] < -0.f) - vp->data_g[ V_I(x, y, z, vp->res) ] = get_avg_surrounds(vp->data_g, vp->res, x, y, z); - if (vp->data_b[ V_I(x, y, z, vp->res) ] < -0.f) - vp->data_b[ V_I(x, y, z, vp->res) ] = get_avg_surrounds(vp->data_b, vp->res, x, y, z); + const int i= V_I(x, y, z, vp->res); + + if (vp->data_r[i] < -0.f) + vp->data_r[i] = get_avg_surrounds(vp->data_r, vp->res, x, y, z); + if (vp->data_g[i] < -0.f) + vp->data_g[i] = get_avg_surrounds(vp->data_g, vp->res, x, y, z); + if (vp->data_b[i] < -0.f) + vp->data_b[i] = get_avg_surrounds(vp->data_b, vp->res, x, y, z); } } } @@ -194,12 +197,13 @@ static void lightcache_filter2(VolumePrecache *vp) for (y=0; y < vp->res[1]; y++) { for (x=0; x < vp->res[0]; x++) { /* trigger for outside mesh */ - if (vp->data_r[ V_I(x, y, z, vp->res) ] < -0.f) - new_r[ V_I(x, y, z, vp->res) ] = get_avg_surrounds(vp->data_r, vp->res, x, y, z); - if (vp->data_g[ V_I(x, y, z, vp->res) ] < -0.f) - new_g[ V_I(x, y, z, vp->res) ] = get_avg_surrounds(vp->data_g, vp->res, x, y, z); - if (vp->data_b[ V_I(x, y, z, vp->res) ] < -0.f) - new_b[ V_I(x, y, z, vp->res) ] = get_avg_surrounds(vp->data_b, vp->res, x, y, z); + const int i= V_I(x, y, z, vp->res); + if (vp->data_r[i] < -0.f) + new_r[i] = get_avg_surrounds(vp->data_r, vp->res, x, y, z); + if (vp->data_g[i] < -0.f) + new_g[i] = get_avg_surrounds(vp->data_g, vp->res, x, y, z); + if (vp->data_b[i] < -0.f) + new_b[i] = get_avg_surrounds(vp->data_b, vp->res, x, y, z); } } } @@ -216,9 +220,21 @@ static void lightcache_filter2(VolumePrecache *vp) static inline int ms_I(int x, int y, int z, int *n) //has a pad of 1 voxel surrounding the core for boundary simulation { - return z*(n[1]+2)*(n[0]+2) + y*(n[0]+2) + x; + /* different ordering to light cache */ + return x*(n[1]+2)*(n[2]+2) + y*(n[2]+2) + z; +} + +static inline int v_I_pad(int x, int y, int z, int *n) //has a pad of 1 voxel surrounding the core for boundary simulation +{ + /* same ordering to light cache, with padding */ + return z*(n[1]+2)*(n[0]+2) + y*(n[0]+2) + x; } +static inline int lc_to_ms_I(int x, int y, int z, int *n) +{ + /* converting light cache index to multiple scattering index */ + return (x-1)*(n[1]*n[2]) + (y-1)*(n[2]) + z-1; +} /* *** multiple scattering approximation *** */ @@ -232,9 +248,11 @@ static float total_ss_energy(VolumePrecache *vp) for (z=0; z < res[2]; z++) { for (y=0; y < res[1]; y++) { for (x=0; x < res[0]; x++) { - if (vp->data_r[ V_I(x, y, z, res) ] > 0.f) energy += vp->data_r[ V_I(x, y, z, res) ]; - if (vp->data_g[ V_I(x, y, z, res) ] > 0.f) energy += vp->data_g[ V_I(x, y, z, res) ]; - if (vp->data_b[ V_I(x, y, z, res) ] > 0.f) energy += vp->data_b[ V_I(x, y, z, res) ]; + const int i=V_I(x, y, z, res); + + if (vp->data_r[i] > 0.f) energy += vp->data_r[i]; + if (vp->data_g[i] > 0.f) energy += vp->data_g[i]; + if (vp->data_b[i] > 0.f) energy += vp->data_b[i]; } } } @@ -244,14 +262,14 @@ static float total_ss_energy(VolumePrecache *vp) static float total_ms_energy(float *sr, float *sg, float *sb, int *res) { - int x, y, z, i; + int x, y, z; float energy=0.f; for (z=1;z<=res[2];z++) { for (y=1;y<=res[1];y++) { for (x=1;x<=res[0];x++) { - - i = ms_I(x,y,z,res); + const int i = ms_I(x,y,z,res); + if (sr[i] > 0.f) energy += sr[i]; if (sg[i] > 0.f) energy += sg[i]; if (sb[i] > 0.f) energy += sb[i]; @@ -262,7 +280,7 @@ static float total_ms_energy(float *sr, float *sg, float *sb, int *res) return energy; } -static void ms_diffuse(int b, float* x0, float* x, float diff, int *n) +static void ms_diffuse(float *x0, float *x, float diff, int *n) //n is the unpadded resolution { int i, j, k, l; const float dt = VOL_MS_TIMESTEP; @@ -276,10 +294,9 @@ static void ms_diffuse(int b, float* x0, float* x, float diff, int *n) { for (i=1; i<=n[0]; i++) { - x[ms_I(i,j,k,n)] = (x0[ms_I(i,j,k,n)] + a*( - x[ms_I(i-1,j,k,n)]+x[ms_I(i+1,j,k,n)]+ - x[ms_I(i,j-1,k,n)]+x[ms_I(i,j+1,k,n)]+ - x[ms_I(i,j,k-1,n)]+x[ms_I(i,j,k+1,n)]))/(1+6*a); + x[v_I_pad(i,j,k,n)] = (x0[v_I_pad(i,j,k,n)]) + a*( x0[v_I_pad(i-1,j,k,n)]+ x0[v_I_pad(i+1,j,k,n)]+ x0[v_I_pad(i,j-1,k,n)]+ + x0[v_I_pad(i,j+1,k,n)]+ x0[v_I_pad(i,j,k-1,n)]+x0[v_I_pad(i,j,k+1,n)] + ) / (1+6*a); } } } @@ -289,7 +306,7 @@ static void ms_diffuse(int b, float* x0, float* x, float diff, int *n) void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Material *ma) { const float diff = ma->vol.ms_diff * 0.001f; /* compensate for scaling for a nicer UI range */ - const float simframes = ma->vol.ms_steps; + const int simframes = (int)(ma->vol.ms_spread * (float)MAX3(vp->res[0], vp->res[1], vp->res[2])); const int shade_type = ma->vol.shade_type; float fac = ma->vol.ms_intensity; @@ -299,7 +316,6 @@ void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Material *ma) double time, lasttime= PIL_check_seconds_timer(); float total; float c=1.0f; - int i; float origf; /* factor for blending in original light cache */ float energy_ss, energy_ms; @@ -324,22 +340,22 @@ void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Material *ma) { for (x=1; x<=n[0]; x++) { - i = V_I((x-1), (y-1), (z-1), n); + const int i = lc_to_ms_I(x, y ,z, n); //lc index + const int j = ms_I(x, y, z, n); //ms index + time= PIL_check_seconds_timer(); - c++; - - if (vp->data_r[i] > 0.f) - sr[ms_I(x,y,z,n)] += vp->data_r[i]; - if (vp->data_g[i] > 0.f) - sg[ms_I(x,y,z,n)] += vp->data_g[i]; - if (vp->data_b[i] > 0.f) - sb[ms_I(x,y,z,n)] += vp->data_b[i]; + c++; + if (vp->data_r[i] > 0.0f) + sr[j] += vp->data_r[i]; + if (vp->data_g[i] > 0.0f) + sg[j] += vp->data_g[i]; + if (vp->data_b[i] > 0.0f) + sb[j] += vp->data_b[i]; /* Displays progress every second */ if(time-lasttime>1.0f) { char str[64]; - sprintf(str, "Simulating multiple scattering: %d%%", (int) - (100.0f * (c / total))); + sprintf(str, "Simulating multiple scattering: %d%%", (int)(100.0f * (c / total))); re->i.infostr= str; re->stats_draw(re->sdh, &re->i); re->i.infostr= NULL; @@ -348,14 +364,14 @@ void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Material *ma) } } } - SWAP(float *, sr, sr0); - SWAP(float *, sg, sg0); - SWAP(float *, sb, sb0); - + SWAP(float *,sr,sr0); + SWAP(float *,sg,sg0); + SWAP(float *,sb,sb0); + /* main diffusion simulation */ - ms_diffuse(0, sr0, sr, diff, n); - ms_diffuse(0, sg0, sg, diff, n); - ms_diffuse(0, sb0, sb, diff, n); + ms_diffuse(sr0, sr, diff, n); + ms_diffuse(sg0, sg, diff, n); + ms_diffuse(sb0, sb, diff, n); if (re->test_break(re->tbh)) break; } @@ -379,10 +395,12 @@ void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Material *ma) { for (x=1;x<=n[0];x++) { - int index=(x-1)*n[1]*n[2] + (y-1)*n[2] + z-1; - vp->data_r[index] = origf * vp->data_r[index] + fac * sr[ms_I(x,y,z,n)]; - vp->data_g[index] = origf * vp->data_g[index] + fac * sg[ms_I(x,y,z,n)]; - vp->data_b[index] = origf * vp->data_b[index] + fac * sb[ms_I(x,y,z,n)]; + const int i = lc_to_ms_I(x, y ,z, n); //lc index + const int j = ms_I(x, y, z, n); //ms index + + vp->data_r[i] = origf * vp->data_r[i] + fac * sr[j]; + vp->data_g[i] = origf * vp->data_g[i] + fac * sg[j]; + vp->data_b[i] = origf * vp->data_b[i] + fac * sb[j]; } } } @@ -426,7 +444,7 @@ static void *vol_precache_part(void *data) ShadeInput *shi = pa->shi; float scatter_col[3] = {0.f, 0.f, 0.f}; float co[3]; - int x, y, z; + int x, y, z, i; const int res[3]= {pa->res[0], pa->res[1], pa->res[2]}; for (z= pa->minz; z < pa->maxz; z++) { @@ -437,12 +455,14 @@ static void *vol_precache_part(void *data) for (x=pa->minx; x < pa->maxx; x++) { co[0] = pa->bbmin[0] + (pa->voxel[0] * (x + 0.5f)); + + i= V_I(x, y, z, res); // don't bother if the point is not inside the volume mesh if (!point_inside_obi(tree, obi, co)) { - obi->volume_precache->data_r[ V_I(x, y, z, res) ] = -1.0f; - obi->volume_precache->data_g[ V_I(x, y, z, res) ] = -1.0f; - obi->volume_precache->data_b[ V_I(x, y, z, res) ] = -1.0f; + obi->volume_precache->data_r[i] = -1.0f; + obi->volume_precache->data_g[i] = -1.0f; + obi->volume_precache->data_b[i] = -1.0f; continue; } @@ -450,9 +470,9 @@ static void *vol_precache_part(void *data) normalize_v3(shi->view); vol_get_scattering(shi, scatter_col, co); - obi->volume_precache->data_r[ V_I(x, y, z, res) ] = scatter_col[0]; - obi->volume_precache->data_g[ V_I(x, y, z, res) ] = scatter_col[1]; - obi->volume_precache->data_b[ V_I(x, y, z, res) ] = scatter_col[2]; + obi->volume_precache->data_r[i] = scatter_col[0]; + obi->volume_precache->data_g[i] = scatter_col[1]; + obi->volume_precache->data_b[i] = scatter_col[2]; } } } @@ -684,12 +704,13 @@ void vol_precache_objectinstance_threads(Render *re, ObjectInstanceRen *obi, Mat //tree= NULL; } - lightcache_filter(obi->volume_precache); - if (ELEM(ma->vol.shade_type, MA_VOL_SHADE_MULTIPLE, MA_VOL_SHADE_SHADEDPLUSMULTIPLE)) { - multiple_scattering_diffusion(re, vp, ma); + /* this should be before the filtering */ + multiple_scattering_diffusion(re, obi->volume_precache, ma); } + + lightcache_filter(obi->volume_precache); } static int using_lightcache(Material *ma) @@ -741,7 +762,7 @@ int point_inside_volume_objectinstance(Render *re, ObjectInstanceRen *obi, float RayObject *tree; int inside=0; - tree = makeraytree_object(re, obi); //create_raytree_obi(obi, obi->obr->boundbox[0], obi->obr->boundbox[1]); + tree = makeraytree_object(re, obi); if (!tree) return 0; inside = point_inside_obi(tree, obi, co); diff --git a/source/blender/render/intern/source/volumetric.c b/source/blender/render/intern/source/volumetric.c index 32ab2980316..e44064de606 100644 --- a/source/blender/render/intern/source/volumetric.c +++ b/source/blender/render/intern/source/volumetric.c @@ -493,7 +493,7 @@ void vol_shade_one_lamp(struct ShadeInput *shi, float *co, LampRen *lar, float * if (shi->mat->vol.shade_type == MA_VOL_SHADE_SHADOWED) { mul_v3_fl(lacol, vol_get_shadow(shi, lar, co)); } - else if (shi->mat->vol.shade_type == MA_VOL_SHADE_SHADED) + else if (ELEM3(shi->mat->vol.shade_type, MA_VOL_SHADE_SHADED, MA_VOL_SHADE_MULTIPLE, MA_VOL_SHADE_SHADEDPLUSMULTIPLE)) { Isect is; -- cgit v1.2.3 From 4494ec80191a4f7fe37d5f43bb9a2aab48035519 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Sun, 3 Jan 2010 23:46:19 +0000 Subject: * Fix tooltip for reset default values * Redraw 3D View tool shelf on texture changes (to reflect new brush textures) --- source/blender/editors/interface/interface_ops.c | 2 +- source/blender/editors/space_view3d/space_view3d.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c index 25bfaf3d682..f016ffe19ae 100644 --- a/source/blender/editors/interface/interface_ops.c +++ b/source/blender/editors/interface/interface_ops.c @@ -140,7 +140,7 @@ void UI_OT_reset_default_button(wmOperatorType *ot) /* identifiers */ ot->name= "Reset to Default Value"; ot->idname= "UI_OT_reset_default_button"; - ot->description= "Copy the RNA data path for this property to the clipboard."; + ot->description= "Reset this property's value to its default value"; /* callbacks */ ot->poll= reset_default_button_poll; diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index f1db3ca53fc..ae9638ac27a 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -636,6 +636,10 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn) break; } break; + case NC_TEXTURE: + /* for brush textures */ + ED_region_tag_redraw(ar); + break; case NC_BRUSH: if(wmn->action==NA_EDITED) ED_region_tag_redraw(ar); -- cgit v1.2.3 From 1cbe3c06d64e628c1f3a9a1ed157be39f5d2c9e1 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 4 Jan 2010 00:18:08 +0000 Subject: * Added new hotkeys [ and ] to decrease/increase brush size by 20 in all paint modes. The actual value to increment/decrement by can be customised in key maps. --- source/blender/editors/sculpt_paint/paint_ops.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index 57b56da2fcd..715a41e6431 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -176,6 +176,21 @@ static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *path) RNA_int_set(kmi->ptr, "value", 9); } +static void ed_keymap_paint_brush_size(wmKeyMap *keymap, const char *path) +{ + wmKeyMapItem *kmi; + + kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", LEFTBRACKETKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", path); + RNA_int_set(kmi->ptr, "value", -20); + RNA_boolean_set(kmi->ptr, "relative", 1); + + kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", RIGHTBRACKETKEY, KM_PRESS, 0, 0); + RNA_string_set(kmi->ptr, "path", path); + RNA_int_set(kmi->ptr, "value", 20); + RNA_boolean_set(kmi->ptr, "relative", 1); +} + void ED_keymap_paint(wmKeyConfig *keyconf) { wmKeyMap *keymap; @@ -205,8 +220,8 @@ void ED_keymap_paint(wmKeyConfig *keyconf) RNA_int_set(kmi->ptr, "level", -1); RNA_boolean_set(kmi->ptr, "relative", 1); - /* toggles */ ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index"); + ed_keymap_paint_brush_size(keymap, "tool_settings.sculpt.brush.size"); kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", AKEY, KM_PRESS, 0, 0); RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_anchor"); @@ -259,6 +274,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf) "PAINT_OT_vertex_color_set",KKEY, KM_PRESS, KM_SHIFT, 0); ed_keymap_paint_brush_switch(keymap, "tool_settings.vertex_paint.active_brush_index"); + ed_keymap_paint_brush_size(keymap, "tool_settings.vertex_paint.brush.size"); /* Weight Paint mode */ keymap= WM_keymap_find(keyconf, "Weight Paint", 0, 0); @@ -273,6 +289,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf) "PAINT_OT_weight_set", KKEY, KM_PRESS, KM_SHIFT, 0); ed_keymap_paint_brush_switch(keymap, "tool_settings.weight_paint.active_brush_index"); + ed_keymap_paint_brush_size(keymap, "tool_settings.weight_paint.brush.size"); /* Image/Texture Paint mode */ keymap= WM_keymap_find(keyconf, "Image Paint", 0, 0); @@ -286,6 +303,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "PAINT_OT_clone_cursor_set", LEFTMOUSE, KM_PRESS, KM_CTRL, 0); ed_keymap_paint_brush_switch(keymap, "tool_settings.image_paint.active_brush_index"); + ed_keymap_paint_brush_size(keymap, "tool_settings.image_paint.brush.size"); /* face-mask mode */ keymap= WM_keymap_find(keyconf, "Face Mask", 0, 0); -- cgit v1.2.3 From a37aa8d11d8881db9e97710e81230b030aa40a22 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 4 Jan 2010 00:39:55 +0000 Subject: * Added back some shortcuts from 2.4x using ctrl/alt/shift/etc mouse wheel to scrub frames, pan view, etc. * Redraw the 3D View on brush edit changes (for [ and ] keys) --- source/blender/editors/screen/screen_ops.c | 3 +++ source/blender/editors/space_view3d/space_view3d.c | 4 ++++ source/blender/editors/space_view3d/view3d_ops.c | 12 +++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index f0cf338be06..eb5f2885a3f 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3935,6 +3935,9 @@ void ED_keymap_screen(wmKeyConfig *keyconf) RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -1); RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 1); + RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELDOWNMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1); + RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELUPMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1); + WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0); RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 1); RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 0); diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index ae9638ac27a..6ee0e341849 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -488,6 +488,10 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn) /* all group ops for now */ ED_region_tag_redraw(ar); break; + case NC_BRUSH: + if(wmn->action == NA_EDITED) + ED_region_tag_redraw(ar); + break; case NC_MATERIAL: switch(wmn->data) { case ND_SHADING_DRAW: diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index c211e55d7a0..2bcd78b3d3d 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -159,7 +159,17 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD4, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANLEFT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD6, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANRIGHT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD8, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANUP); - + + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANRIGHT); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANLEFT); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_PANUP); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_PANDOWN); + + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELUPMOUSE, KM_PRESS, KM_CTRL|KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPLEFT); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL|KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELUPMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPUP); + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPDOWN); + /* active aligned, replaces '*' key in 2.4x */ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_SHIFT, 0); RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT); -- cgit v1.2.3 From 7a67b662bd51dae4ae735060faec30f095e5d1ca Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 4 Jan 2010 04:26:28 +0000 Subject: * Tweaks for node editor Make Links (F key) Testing a new method that hopefully will be faster to use than finicky socket selection - now just select multiple nodes and press F - available output sockets on the selected nodes will get automatically connected to the active node. It works for one socket type each time, to avoid getting lots of extra connections when you join up, but as a shortcut you can easily press F again to connect up other socket types. For example, to connect a render layer node (with vector pass) to a vector blur node, select the render layer then the vector blur, and press F three times to connect up the Image, Z and Vector sockets. It now also preferences sockets with the same name to connect up first. There's also another option (ctrl F) which will replace existing input links, rather than only connecting up links to available input sockets. * Also changed socket link knife cut to a more convenient shortcut - Ctrl LMB tweak --- source/blender/blenkernel/BKE_node.h | 1 + source/blender/blenkernel/intern/node.c | 12 ++++ source/blender/editors/space_node/node_edit.c | 94 ++++++++++++++++++++----- source/blender/editors/space_node/node_header.c | 2 +- source/blender/editors/space_node/node_intern.h | 2 +- source/blender/editors/space_node/node_ops.c | 3 +- 6 files changed, 94 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 3ed9ab8778e..8da732af2dd 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -174,6 +174,7 @@ struct bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node, int inte struct bNodeLink *nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock); void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link); +void nodeRemSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock); struct bNode *nodeFindNodebyName(struct bNodeTree *ntree, const char *name); int nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **nodep, int *sockindex); diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 84ef4fb6d1c..b02225bd429 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1063,6 +1063,18 @@ void nodeRemLink(bNodeTree *ntree, bNodeLink *link) MEM_freeN(link); } +void nodeRemSocketLinks(bNodeTree *ntree, bNodeSocket *sock) +{ + bNodeLink *link, *next; + + for(link= ntree->links.first; link; link= next) { + next= link->next; + if(link->fromsock==sock || link->tosock==sock) { + nodeRemLink(ntree, link); + } + } +} + bNodeTree *ntreeAddTree(int type) { diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index f177e1a2622..f2b3ed29067 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1353,7 +1353,33 @@ static int node_socket_hilights(SpaceNode *snode, int in_out) /* ****************** Add *********************** */ -void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag) +static bNodeSocket *get_next_outputsocket(bNodeSocket *sock, bNodeSocket **sockfrom, int totsock) +{ + int a; + + /* first try to find a sockets with matching name */ + for (a=0; atype==sockfrom[a]->type) { + if (strcmp(sockfrom[a]->name, sock->name)==0) + return sockfrom[a]; + } + } + } + + /* otherwise settle for the first available socket of the right type */ + for (a=0; atype==sockfrom[a]->type) { + return sockfrom[a]; + } + } + } + + return NULL; +} + +void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag, int replace) { bNodeSocket *sock, *sockfrom[8]; bNode *node, *nodefrom[8]; @@ -1361,14 +1387,14 @@ void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag) if(node_to==NULL || node_to->inputs.first==NULL) return; - - /* no inputs for node allowed (code it) */ - /* connect first 1 socket type now */ - for(sock= node_to->inputs.first; sock; sock= sock->next) + /* connect first 1 socket type or first available socket now */ + for(sock= node_to->inputs.first; sock; sock= sock->next) { + if (!replace && nodeCountSocketLinks(snode->edittree, sock)) + continue; if(socktypetype) socktype= sock->type; - + } /* find potential sockets, max 8 should work */ for(node= snode->edittree->nodes.first; node; node= node->next) { @@ -1389,17 +1415,27 @@ void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag) /* now just get matching socket types and create links */ for(sock= node_to->inputs.first; sock; sock= sock->next) { - int a; + bNodeSocket *sock_from; + bNode *node_from; - for(a=0; atype==sockfrom[a]->type && sock->type==socktype) { - nodeAddLink(snode->edittree, nodefrom[a], sockfrom[a], node_to, sock); - sockfrom[a]= NULL; - break; - } - } + if (sock->type != socktype) + continue; + + /* find a potential output socket and associated node */ + sock_from = get_next_outputsocket(sock, sockfrom, totsock); + if (!sock_from) + continue; + nodeFindNode(snode->edittree, sock_from, &node_from, NULL); + + /* then connect up the links */ + if (replace) { + nodeRemSocketLinks(snode->edittree, sock); + nodeAddLink(snode->edittree, node_from, sock_from, node_to, sock); + } else { + if (nodeCountSocketLinks(snode->edittree, sock)==0) + nodeAddLink(snode->edittree, node_from, sock_from, node_to, sock); } + sock_from = NULL; } ntreeSolveOrder(snode->edittree); @@ -1749,11 +1785,33 @@ static int node_make_link_exec(bContext *C, wmOperator *op) bNodeLink *link; bNodeSocket *outsock= snode->edittree->selout; bNodeSocket *insock= snode->edittree->selin; + int replace = RNA_boolean_get(op->ptr, "replace"); if (!insock || !outsock) { - BKE_report(op->reports, RPT_ERROR, "No input or output socket(s) selected"); - return OPERATOR_CANCELLED; + bNode *node; + + /* no socket selection, join nodes themselves, guessing connections */ + tonode = nodeGetActive(snode->edittree); + + if (!tonode) { + BKE_report(op->reports, RPT_ERROR, "No active node"); + return OPERATOR_CANCELLED; + } + + /* store selection in temp test flag */ + for(node= snode->edittree->nodes.first; node; node= node->next) { + if(node->flag & NODE_SELECT) node->flag |= NODE_TEST; + else node->flag &= ~NODE_TEST; + } + + snode_autoconnect(snode, tonode, NODE_TEST, replace); + node_tree_verify_groups(snode->nodetree); + snode_handle_recalc(C, snode); + + return OPERATOR_FINISHED; } + + if (nodeFindLink(snode->edittree, outsock, insock)) { BKE_report(op->reports, RPT_ERROR, "There is already a link between these sockets"); return OPERATOR_CANCELLED; @@ -1789,6 +1847,8 @@ void NODE_OT_link_make(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + RNA_def_boolean(ot->srna, "replace", 0, "Replace", "Replace socket connections with the new links"); } /* ********************** Cut Link operator ***************** */ diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 4cedbe3f666..6426856dfdd 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -79,7 +79,7 @@ static void do_node_add(bContext *C, void *arg, int event) node= node_add_node(snode, CTX_data_scene(C), event, snode->mx, snode->my); /* uses test flag */ - snode_autoconnect(snode, node, NODE_TEST); + snode_autoconnect(snode, node, NODE_TEST, 0); snode_handle_recalc(C, snode); } diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index 84729dd18ec..ff88b4fde77 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -81,7 +81,7 @@ void node_deselectall(SpaceNode *snode); void snode_composite_job(const struct bContext *C, ScrArea *sa); bNode *node_tree_get_editgroup(bNodeTree *ntree); void node_tree_verify_groups(bNodeTree *nodetree); -void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag); +void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag, int replace); int node_has_hidden_sockets(bNode *node); void NODE_OT_duplicate(struct wmOperatorType *ot); diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c index 534ca0aa99c..1bb38e9aad4 100644 --- a/source/blender/editors/space_node/node_ops.c +++ b/source/blender/editors/space_node/node_ops.c @@ -115,8 +115,9 @@ void node_keymap(struct wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "NODE_OT_resize", LEFTMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "NODE_OT_visibility_toggle", LEFTMOUSE, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "NODE_OT_links_cut", RIGHTMOUSE, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "NODE_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, 0, 0); + RNA_boolean_set(WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, KM_CTRL, 0)->ptr, "replace", 1); WM_keymap_add_menu(keymap, "NODE_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "NODE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0); -- cgit v1.2.3 From d1da5cb99a3dab9ed34fa95c6c5f9f9bb194802d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 13:29:55 +0000 Subject: support for rna functions returning mathutils types - so object.rat_cast() returns Mathutils vectors rather then tuples --- source/blender/python/intern/bpy_rna.c | 39 ++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index a95a5dd1783..1a08538ff0c 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -140,6 +140,8 @@ Mathutils_Callback mathutils_rna_matrix_cb = { (BaseMathSetIndexFunc) NULL }; +#define PROP_ALL_VECTOR_SUBTYPES PROP_TRANSLATION: case PROP_DIRECTION: case PROP_VELOCITY: case PROP_ACCELERATION: case PROP_XYZ: case PROP_XYZ|PROP_UNIT_LENGTH + PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) { PyObject *ret= NULL; @@ -148,28 +150,24 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, PropertyRNA *prop) int subtype, totdim; int len; int is_thick; + int flag= RNA_property_flag(prop); /* disallow dynamic sized arrays to be wrapped since the size could change * to a size mathutils does not support */ - if ((RNA_property_type(prop) != PROP_FLOAT) || (RNA_property_flag(prop) & PROP_DYNAMIC)) + if ((RNA_property_type(prop) != PROP_FLOAT) || (flag & PROP_DYNAMIC)) return NULL; len= RNA_property_array_length(ptr, prop); subtype= RNA_property_subtype(prop); totdim= RNA_property_array_dimension(ptr, prop, NULL); - is_thick = (RNA_property_flag(prop) & PROP_THICK_WRAP); + is_thick = (flag & PROP_THICK_WRAP); if (totdim == 1 || (totdim == 2 && subtype == PROP_MATRIX)) { if(!is_thick) ret = pyrna_prop_CreatePyObject(ptr, prop); /* owned by the Mathutils PyObject */ switch(RNA_property_subtype(prop)) { - case PROP_TRANSLATION: - case PROP_DIRECTION: - case PROP_VELOCITY: - case PROP_ACCELERATION: - case PROP_XYZ: - case PROP_XYZ|PROP_UNIT_LENGTH: + case PROP_ALL_VECTOR_SUBTYPES: if(len>=2 && len <= 4) { if(is_thick) { ret= newVectorObject(NULL, len, Py_NEW, NULL); @@ -2573,22 +2571,41 @@ PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *data) int len = RNA_property_array_length(ptr, prop); /* resolve the array from a new pytype */ - ret = PyTuple_New(len); /* kazanbas: TODO make multidim sequences here */ switch (type) { case PROP_BOOLEAN: + ret = PyTuple_New(len); for(a=0; a Date: Mon, 4 Jan 2010 14:22:22 +0000 Subject: check if newlibadr returns a valid pointer when running do-versions on animviz data --- source/blender/blenloader/intern/readfile.c | 84 +++++++++++++++-------------- 1 file changed, 43 insertions(+), 41 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 69186432d64..4165d2860a4 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -10339,47 +10339,49 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* if armature, copy settings for pose from armature data */ if (ob->pose && ob->data) { bArmature *arm= newlibadr(fd, lib, ob->data); - bAnimVizSettings *avs= &ob->pose->avs; - - /* ghosting settings ---------------- */ - /* ranges */ - avs->ghost_bc= avs->ghost_ac= arm->ghostep; - - avs->ghost_sf= arm->ghostsf; - avs->ghost_ef= arm->ghostef; - - /* type */ - avs->ghost_type= arm->ghosttype; - - /* stepsize */ - avs->ghost_step= arm->ghostsize; - - /* path settings --------------------- */ - /* ranges */ - avs->path_bc= arm->pathbc; - avs->path_ac= arm->pathac; - - avs->path_sf= arm->pathsf; - avs->path_ef= arm->pathef; - - /* flags */ - if (arm->pathflag & ARM_PATH_FNUMS) - avs->path_viewflag |= MOTIONPATH_VIEW_FNUMS; - if (arm->pathflag & ARM_PATH_KFRAS) - avs->path_viewflag |= MOTIONPATH_VIEW_KFRAS; - if (arm->pathflag & ARM_PATH_KFNOS) - avs->path_viewflag |= MOTIONPATH_VIEW_KFNOS; - - /* bake flags */ - if (arm->pathflag & ARM_PATH_HEADS) - avs->path_bakeflag |= MOTIONPATH_BAKE_HEADS; - - /* type */ - if (arm->pathflag & ARM_PATH_ACFRA) - avs->path_type = MOTIONPATH_TYPE_ACFRA; - - /* stepsize */ - avs->path_step= arm->pathsize; + if(arm) { /* XXX - why does this fail in some cases? */ + bAnimVizSettings *avs= &ob->pose->avs; + + /* ghosting settings ---------------- */ + /* ranges */ + avs->ghost_bc= avs->ghost_ac= arm->ghostep; + + avs->ghost_sf= arm->ghostsf; + avs->ghost_ef= arm->ghostef; + + /* type */ + avs->ghost_type= arm->ghosttype; + + /* stepsize */ + avs->ghost_step= arm->ghostsize; + + /* path settings --------------------- */ + /* ranges */ + avs->path_bc= arm->pathbc; + avs->path_ac= arm->pathac; + + avs->path_sf= arm->pathsf; + avs->path_ef= arm->pathef; + + /* flags */ + if (arm->pathflag & ARM_PATH_FNUMS) + avs->path_viewflag |= MOTIONPATH_VIEW_FNUMS; + if (arm->pathflag & ARM_PATH_KFRAS) + avs->path_viewflag |= MOTIONPATH_VIEW_KFRAS; + if (arm->pathflag & ARM_PATH_KFNOS) + avs->path_viewflag |= MOTIONPATH_VIEW_KFNOS; + + /* bake flags */ + if (arm->pathflag & ARM_PATH_HEADS) + avs->path_bakeflag |= MOTIONPATH_BAKE_HEADS; + + /* type */ + if (arm->pathflag & ARM_PATH_ACFRA) + avs->path_type = MOTIONPATH_TYPE_ACFRA; + + /* stepsize */ + avs->path_step= arm->pathsize; + } } } -- cgit v1.2.3 From d077ea6c6c1e8718773980dcd752f1f8af6094a5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 14:59:53 +0000 Subject: use a smaller threshold for mesh mirror, workaround for sintels face. Better solutions could be... - use a tool to set mirror locations (did a script for this in 2.4x), then run this if locations get messed up.. - find the closest mirror vertex, would be slower - have a configurable threshold. --- source/blender/editors/mesh/meshtools.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index b52447e111f..269fc278581 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -760,7 +760,7 @@ void sort_faces(Scene *scene, View3D *v3d) #define MOC_RES 8 #define MOC_NODE_RES 8 -#define MOC_THRESH 0.0002f +#define MOC_THRESH 0.00002f typedef struct MocNode { struct MocNode *next; -- cgit v1.2.3 From 61a8f370f547e9b39ada252b285b09a3aa92b42d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 15:25:21 +0000 Subject: patch from Guillaume Bouchard for setting vertex normals, (lost when existing editmode but still useful in some cases) --- source/blender/makesrna/intern/rna_mesh.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index 528544d09dd..f8bfa105c12 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -81,6 +81,15 @@ static void rna_MeshVertex_normal_get(PointerRNA *ptr, float *value) value[2]= mvert->no[2]/32767.0f; } +static void rna_MeshVertex_normal_set(PointerRNA *ptr, float *value) +{ + MVert *mvert= (MVert*)ptr->data; + + mvert->no[0] = (short) (value[0] * 32767.0f); + mvert->no[1] = (short) (value[1] * 32767.0f); + mvert->no[2] = (short) (value[2] * 32767.0f); +} + static float rna_MeshVertex_bevel_weight_get(PointerRNA *ptr) { MVert *mvert= (MVert*)ptr->data; @@ -1027,9 +1036,8 @@ static void rna_def_mvert(BlenderRNA *brna) prop= RNA_def_property(srna, "normal", PROP_FLOAT, PROP_DIRECTION); RNA_def_property_float_sdna(prop, NULL, "no"); - RNA_def_property_float_funcs(prop, "rna_MeshVertex_normal_get", NULL, NULL); + RNA_def_property_float_funcs(prop, "rna_MeshVertex_normal_get", "rna_MeshVertex_normal_set", NULL); RNA_def_property_ui_text(prop, "Normal", "Vertex Normal"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SELECT); -- cgit v1.2.3 From 589b2b4ca8af8a3b260c0dd33ddfdb0cc8ee8376 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 15:37:22 +0000 Subject: object.group_users, object.scene_users utility functions to find the groups and scenes this object is used in. button to set the group location from the cursor (UI is horrible but not any nice place to add?) smarp project would fail if there were linked meshes in the scene, made ID.tag ignore the library, so you can tag linked data since its only for tools to use. normalize the vertex normal before setting and use inline vector functions. --- source/blender/makesrna/intern/rna_ID.c | 1 + source/blender/makesrna/intern/rna_mesh.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index a250f0a49b4..e931f08c3a3 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -380,6 +380,7 @@ static void rna_def_ID(BlenderRNA *brna) prop= RNA_def_property(srna, "tag", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_DOIT); + RNA_def_property_flag(prop, PROP_LIB_EXCEPTION); RNA_def_property_ui_text(prop, "Tag", "Tools can use this to tag data, (initial state is undefined)."); prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index f8bfa105c12..56a1b170979 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -75,19 +75,17 @@ void rna_Mesh_update_draw(Main *bmain, Scene *scene, PointerRNA *ptr) static void rna_MeshVertex_normal_get(PointerRNA *ptr, float *value) { MVert *mvert= (MVert*)ptr->data; - - value[0]= mvert->no[0]/32767.0f; - value[1]= mvert->no[1]/32767.0f; - value[2]= mvert->no[2]/32767.0f; + normal_short_to_float_v3(value, mvert->no); } -static void rna_MeshVertex_normal_set(PointerRNA *ptr, float *value) +static void rna_MeshVertex_normal_set(PointerRNA *ptr, const float *value) { MVert *mvert= (MVert*)ptr->data; + float no[3]; - mvert->no[0] = (short) (value[0] * 32767.0f); - mvert->no[1] = (short) (value[1] * 32767.0f); - mvert->no[2] = (short) (value[2] * 32767.0f); + copy_v3_v3(no, value); + normalize_v3(no); + normal_float_to_short_v3(mvert->no, no); } static float rna_MeshVertex_bevel_weight_get(PointerRNA *ptr) -- cgit v1.2.3 From d92a6f140d0b9ba90de290feb8fdb8ef47125f08 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 16:26:07 +0000 Subject: copy modifiers, as "Link Modifiers" - in Ctrl+L menu. difference between copy and link is vague especially since particle systems are ID data. --- source/blender/blenkernel/BKE_object.h | 2 ++ source/blender/blenkernel/intern/object.c | 21 +++++++++++++++++++++ source/blender/editors/object/object_relations.c | 6 ++++++ 3 files changed, 29 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 9e70251c782..d0c2052f0d6 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -62,6 +62,8 @@ void update_base_layer(struct Scene *scene, struct Object *ob); void free_object(struct Object *ob); void object_free_display(struct Object *ob); + +void object_link_modifiers(struct Object *ob, struct Object *from); void object_free_modifiers(struct Object *ob); void object_make_proxy(struct Object *ob, struct Object *target, struct Object *gob); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 55cea3de188..0f9198df263 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -207,6 +207,27 @@ void object_free_modifiers(Object *ob) object_free_softbody(ob); } +void object_link_modifiers(struct Object *ob, struct Object *from) +{ + ModifierData *md; + object_free_modifiers(ob); + + for (md=from->modifiers.first; md; md=md->next) { + ModifierData *nmd = NULL; + + if(ELEM4(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_ParticleInstance, eModifierType_Collision)) continue; + + nmd = modifier_new(md->type); + modifier_copyData(md, nmd); + BLI_addtail(&ob->modifiers, nmd); + } + + copy_object_particlesystems(from, ob); + copy_object_softbody(from, ob); + + // TODO: smoke?, cloth? +} + /* here we will collect all local displist stuff */ /* also (ab)used in depsgraph */ void object_free_display(Object *ob) diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index b8839360296..d4bf721e14e 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1183,6 +1183,7 @@ enum { MAKE_LINKS_MATERIALS, MAKE_LINKS_ANIMDATA, MAKE_LINKS_DUPLIGROUP, + MAKE_LINKS_MODIFIERS }; static int make_links_data_exec(bContext *C, wmOperator *op) @@ -1235,6 +1236,10 @@ static int make_links_data_exec(bContext *C, wmOperator *op) obt->transflag |= OB_DUPLIGROUP; } break; + case MAKE_LINKS_MODIFIERS: + object_link_modifiers(obt, ob); + obt->recalc |= OB_RECALC; + break; } } } @@ -1274,6 +1279,7 @@ void OBJECT_OT_make_links_data(wmOperatorType *ot) {MAKE_LINKS_MATERIALS, "MATERIAL", 0, "Materials", ""}, {MAKE_LINKS_ANIMDATA, "ANIMATION", 0, "Animation Data", ""}, {MAKE_LINKS_DUPLIGROUP, "DUPLIGROUP", 0, "DupliGroup", ""}, + {MAKE_LINKS_MODIFIERS, "MODIFIERS", 0, "Modifiers", ""}, {0, NULL, 0, NULL, NULL}}; PropertyRNA *prop; -- cgit v1.2.3 From 4faf36e3add98d7b693eaeb369ee1c16225f65d8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 4 Jan 2010 16:28:59 +0000 Subject: Added OpenGL debugging function to print state information, was using this as a patch here for a while but might as well commit it. --- source/blender/gpu/GPU_draw.h | 4 + source/blender/gpu/intern/gpu_draw.c | 363 +++++++++++++++++++++++++++++++++++ 2 files changed, 367 insertions(+) (limited to 'source/blender') diff --git a/source/blender/gpu/GPU_draw.h b/source/blender/gpu/GPU_draw.h index fabe1420e83..36af91f140b 100644 --- a/source/blender/gpu/GPU_draw.h +++ b/source/blender/gpu/GPU_draw.h @@ -57,6 +57,10 @@ struct SmokeModifierData; void GPU_state_init(void); +/* Debugging */ + +void GPU_state_print(void); + /* Material drawing * - first the state is initialized by a particular object and * it's materials diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index db6c7fa5ce0..1353e151792 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -1315,3 +1315,366 @@ void GPU_state_init(void) glDisable(GL_CULL_FACE); } +/* debugging aid */ +static void gpu_get_print(const char *name, GLenum type) +{ + float value[16]; + int a; + + memset(value, 0, sizeof(value)); + glGetFloatv(type, value); + + printf("%s: ", name); + for(a=0; a<16; a++) + printf("%.2f ", value[a]); + printf("\n"); +} + +void GPU_state_print(void) +{ + gpu_get_print("GL_ACCUM_ALPHA_BITS", GL_ACCUM_ALPHA_BITS); + gpu_get_print("GL_ACCUM_BLUE_BITS", GL_ACCUM_BLUE_BITS); + gpu_get_print("GL_ACCUM_CLEAR_VALUE", GL_ACCUM_CLEAR_VALUE); + gpu_get_print("GL_ACCUM_GREEN_BITS", GL_ACCUM_GREEN_BITS); + gpu_get_print("GL_ACCUM_RED_BITS", GL_ACCUM_RED_BITS); + gpu_get_print("GL_ACTIVE_TEXTURE", GL_ACTIVE_TEXTURE); + gpu_get_print("GL_ALIASED_POINT_SIZE_RANGE", GL_ALIASED_POINT_SIZE_RANGE); + gpu_get_print("GL_ALIASED_LINE_WIDTH_RANGE", GL_ALIASED_LINE_WIDTH_RANGE); + gpu_get_print("GL_ALPHA_BIAS", GL_ALPHA_BIAS); + gpu_get_print("GL_ALPHA_BITS", GL_ALPHA_BITS); + gpu_get_print("GL_ALPHA_SCALE", GL_ALPHA_SCALE); + gpu_get_print("GL_ALPHA_TEST", GL_ALPHA_TEST); + gpu_get_print("GL_ALPHA_TEST_FUNC", GL_ALPHA_TEST_FUNC); + gpu_get_print("GL_ALPHA_TEST_REF", GL_ALPHA_TEST_REF); + gpu_get_print("GL_ARRAY_BUFFER_BINDING", GL_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_ATTRIB_STACK_DEPTH", GL_ATTRIB_STACK_DEPTH); + gpu_get_print("GL_AUTO_NORMAL", GL_AUTO_NORMAL); + gpu_get_print("GL_AUX_BUFFERS", GL_AUX_BUFFERS); + gpu_get_print("GL_BLEND", GL_BLEND); + gpu_get_print("GL_BLEND_COLOR", GL_BLEND_COLOR); + gpu_get_print("GL_BLEND_DST_ALPHA", GL_BLEND_DST_ALPHA); + gpu_get_print("GL_BLEND_DST_RGB", GL_BLEND_DST_RGB); + gpu_get_print("GL_BLEND_EQUATION_RGB", GL_BLEND_EQUATION_RGB); + gpu_get_print("GL_BLEND_EQUATION_ALPHA", GL_BLEND_EQUATION_ALPHA); + gpu_get_print("GL_BLEND_SRC_ALPHA", GL_BLEND_SRC_ALPHA); + gpu_get_print("GL_BLEND_SRC_RGB", GL_BLEND_SRC_RGB); + gpu_get_print("GL_BLUE_BIAS", GL_BLUE_BIAS); + gpu_get_print("GL_BLUE_BITS", GL_BLUE_BITS); + gpu_get_print("GL_BLUE_SCALE", GL_BLUE_SCALE); + gpu_get_print("GL_CLIENT_ACTIVE_TEXTURE", GL_CLIENT_ACTIVE_TEXTURE); + gpu_get_print("GL_CLIENT_ATTRIB_STACK_DEPTH", GL_CLIENT_ATTRIB_STACK_DEPTH); + gpu_get_print("GL_CLIP_PLANE0", GL_CLIP_PLANE0); + gpu_get_print("GL_COLOR_ARRAY", GL_COLOR_ARRAY); + gpu_get_print("GL_COLOR_ARRAY_BUFFER_BINDING", GL_COLOR_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_COLOR_ARRAY_SIZE", GL_COLOR_ARRAY_SIZE); + gpu_get_print("GL_COLOR_ARRAY_STRIDE", GL_COLOR_ARRAY_STRIDE); + gpu_get_print("GL_COLOR_ARRAY_TYPE", GL_COLOR_ARRAY_TYPE); + gpu_get_print("GL_COLOR_CLEAR_VALUE", GL_COLOR_CLEAR_VALUE); + gpu_get_print("GL_COLOR_LOGIC_OP", GL_COLOR_LOGIC_OP); + gpu_get_print("GL_COLOR_MATERIAL", GL_COLOR_MATERIAL); + gpu_get_print("GL_COLOR_MATERIAL_FACE", GL_COLOR_MATERIAL_FACE); + gpu_get_print("GL_COLOR_MATERIAL_PARAMETER", GL_COLOR_MATERIAL_PARAMETER); + gpu_get_print("GL_COLOR_MATRIX", GL_COLOR_MATRIX); + gpu_get_print("GL_COLOR_MATRIX_STACK_DEPTH", GL_COLOR_MATRIX_STACK_DEPTH); + gpu_get_print("GL_COLOR_SUM", GL_COLOR_SUM); + gpu_get_print("GL_COLOR_TABLE", GL_COLOR_TABLE); + gpu_get_print("GL_COLOR_WRITEMASK", GL_COLOR_WRITEMASK); + gpu_get_print("GL_COMPRESSED_TEXTURE_FORMATS", GL_COMPRESSED_TEXTURE_FORMATS); + gpu_get_print("GL_CONVOLUTION_1D", GL_CONVOLUTION_1D); + gpu_get_print("GL_CONVOLUTION_2D", GL_CONVOLUTION_2D); + gpu_get_print("GL_CULL_FACE", GL_CULL_FACE); + gpu_get_print("GL_CULL_FACE_MODE", GL_CULL_FACE_MODE); + gpu_get_print("GL_CURRENT_COLOR", GL_CURRENT_COLOR); + gpu_get_print("GL_CURRENT_FOG_COORD", GL_CURRENT_FOG_COORD); + gpu_get_print("GL_CURRENT_INDEX", GL_CURRENT_INDEX); + gpu_get_print("GL_CURRENT_NORMAL", GL_CURRENT_NORMAL); + gpu_get_print("GL_CURRENT_PROGRAM", GL_CURRENT_PROGRAM); + gpu_get_print("GL_CURRENT_RASTER_COLOR", GL_CURRENT_RASTER_COLOR); + gpu_get_print("GL_CURRENT_RASTER_DISTANCE", GL_CURRENT_RASTER_DISTANCE); + gpu_get_print("GL_CURRENT_RASTER_INDEX", GL_CURRENT_RASTER_INDEX); + gpu_get_print("GL_CURRENT_RASTER_POSITION", GL_CURRENT_RASTER_POSITION); + gpu_get_print("GL_CURRENT_RASTER_POSITION_VALID", GL_CURRENT_RASTER_POSITION_VALID); + gpu_get_print("GL_CURRENT_RASTER_SECONDARY_COLOR", GL_CURRENT_RASTER_SECONDARY_COLOR); + gpu_get_print("GL_CURRENT_RASTER_TEXTURE_COORDS", GL_CURRENT_RASTER_TEXTURE_COORDS); + gpu_get_print("GL_CURRENT_SECONDARY_COLOR", GL_CURRENT_SECONDARY_COLOR); + gpu_get_print("GL_CURRENT_TEXTURE_COORDS", GL_CURRENT_TEXTURE_COORDS); + gpu_get_print("GL_DEPTH_BIAS", GL_DEPTH_BIAS); + gpu_get_print("GL_DEPTH_BITS", GL_DEPTH_BITS); + gpu_get_print("GL_DEPTH_CLEAR_VALUE", GL_DEPTH_CLEAR_VALUE); + gpu_get_print("GL_DEPTH_FUNC", GL_DEPTH_FUNC); + gpu_get_print("GL_DEPTH_RANGE", GL_DEPTH_RANGE); + gpu_get_print("GL_DEPTH_SCALE", GL_DEPTH_SCALE); + gpu_get_print("GL_DEPTH_TEST", GL_DEPTH_TEST); + gpu_get_print("GL_DEPTH_WRITEMASK", GL_DEPTH_WRITEMASK); + gpu_get_print("GL_DITHER", GL_DITHER); + gpu_get_print("GL_DOUBLEBUFFER", GL_DOUBLEBUFFER); + gpu_get_print("GL_DRAW_BUFFER", GL_DRAW_BUFFER); + gpu_get_print("GL_DRAW_BUFFER0", GL_DRAW_BUFFER0); + gpu_get_print("GL_EDGE_FLAG", GL_EDGE_FLAG); + gpu_get_print("GL_EDGE_FLAG_ARRAY", GL_EDGE_FLAG_ARRAY); + gpu_get_print("GL_EDGE_FLAG_ARRAY_BUFFER_BINDING", GL_EDGE_FLAG_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_EDGE_FLAG_ARRAY_STRIDE", GL_EDGE_FLAG_ARRAY_STRIDE); + gpu_get_print("GL_ELEMENT_ARRAY_BUFFER_BINDING", GL_ELEMENT_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_FEEDBACK_BUFFER_SIZE", GL_FEEDBACK_BUFFER_SIZE); + gpu_get_print("GL_FEEDBACK_BUFFER_TYPE", GL_FEEDBACK_BUFFER_TYPE); + gpu_get_print("GL_FOG", GL_FOG); + gpu_get_print("GL_FOG_COORD_ARRAY", GL_FOG_COORD_ARRAY); + gpu_get_print("GL_FOG_COORD_ARRAY_BUFFER_BINDING", GL_FOG_COORD_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_FOG_COORD_ARRAY_STRIDE", GL_FOG_COORD_ARRAY_STRIDE); + gpu_get_print("GL_FOG_COORD_ARRAY_TYPE", GL_FOG_COORD_ARRAY_TYPE); + gpu_get_print("GL_FOG_COORD_SRC", GL_FOG_COORD_SRC); + gpu_get_print("GL_FOG_COLOR", GL_FOG_COLOR); + gpu_get_print("GL_FOG_DENSITY", GL_FOG_DENSITY); + gpu_get_print("GL_FOG_END", GL_FOG_END); + gpu_get_print("GL_FOG_HINT", GL_FOG_HINT); + gpu_get_print("GL_FOG_INDEX", GL_FOG_INDEX); + gpu_get_print("GL_FOG_MODE", GL_FOG_MODE); + gpu_get_print("GL_FOG_START", GL_FOG_START); + gpu_get_print("GL_FRAGMENT_SHADER_DERIVATIVE_HINT", GL_FRAGMENT_SHADER_DERIVATIVE_HINT); + gpu_get_print("GL_FRONT_FACE", GL_FRONT_FACE); + gpu_get_print("GL_GENERATE_MIPMAP_HINT", GL_GENERATE_MIPMAP_HINT); + gpu_get_print("GL_GREEN_BIAS", GL_GREEN_BIAS); + gpu_get_print("GL_GREEN_BITS", GL_GREEN_BITS); + gpu_get_print("GL_GREEN_SCALE", GL_GREEN_SCALE); + gpu_get_print("GL_HISTOGRAM", GL_HISTOGRAM); + gpu_get_print("GL_INDEX_ARRAY", GL_INDEX_ARRAY); + gpu_get_print("GL_INDEX_ARRAY_BUFFER_BINDING", GL_INDEX_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_INDEX_ARRAY_STRIDE", GL_INDEX_ARRAY_STRIDE); + gpu_get_print("GL_INDEX_ARRAY_TYPE", GL_INDEX_ARRAY_TYPE); + gpu_get_print("GL_INDEX_BITS", GL_INDEX_BITS); + gpu_get_print("GL_INDEX_CLEAR_VALUE", GL_INDEX_CLEAR_VALUE); + gpu_get_print("GL_INDEX_LOGIC_OP", GL_INDEX_LOGIC_OP); + gpu_get_print("GL_INDEX_MODE", GL_INDEX_MODE); + gpu_get_print("GL_INDEX_OFFSET", GL_INDEX_OFFSET); + gpu_get_print("GL_INDEX_SHIFT", GL_INDEX_SHIFT); + gpu_get_print("GL_INDEX_WRITEMASK", GL_INDEX_WRITEMASK); + gpu_get_print("GL_LIGHT0", GL_LIGHT0); + gpu_get_print("GL_LIGHTING", GL_LIGHTING); + gpu_get_print("GL_LIGHT_MODEL_AMBIENT", GL_LIGHT_MODEL_AMBIENT); + gpu_get_print("GL_LIGHT_MODEL_COLOR_CONTROL", GL_LIGHT_MODEL_COLOR_CONTROL); + gpu_get_print("GL_LIGHT_MODEL_LOCAL_VIEWER", GL_LIGHT_MODEL_LOCAL_VIEWER); + gpu_get_print("GL_LIGHT_MODEL_TWO_SIDE", GL_LIGHT_MODEL_TWO_SIDE); + gpu_get_print("GL_LINE_SMOOTH", GL_LINE_SMOOTH); + gpu_get_print("GL_LINE_SMOOTH_HINT", GL_LINE_SMOOTH_HINT); + gpu_get_print("GL_LINE_STIPPLE", GL_LINE_STIPPLE); + gpu_get_print("GL_LINE_STIPPLE_PATTERN", GL_LINE_STIPPLE_PATTERN); + gpu_get_print("GL_LINE_STIPPLE_REPEAT", GL_LINE_STIPPLE_REPEAT); + gpu_get_print("GL_LINE_WIDTH", GL_LINE_WIDTH); + gpu_get_print("GL_LINE_WIDTH_GRANULARITY", GL_LINE_WIDTH_GRANULARITY); + gpu_get_print("GL_LINE_WIDTH_RANGE", GL_LINE_WIDTH_RANGE); + gpu_get_print("GL_LIST_BASE", GL_LIST_BASE); + gpu_get_print("GL_LIST_INDEX", GL_LIST_INDEX); + gpu_get_print("GL_LIST_MODE", GL_LIST_MODE); + gpu_get_print("GL_LOGIC_OP_MODE", GL_LOGIC_OP_MODE); + gpu_get_print("GL_MAP1_COLOR_4", GL_MAP1_COLOR_4); + gpu_get_print("GL_MAP1_GRID_DOMAIN", GL_MAP1_GRID_DOMAIN); + gpu_get_print("GL_MAP1_GRID_SEGMENTS", GL_MAP1_GRID_SEGMENTS); + gpu_get_print("GL_MAP1_INDEX", GL_MAP1_INDEX); + gpu_get_print("GL_MAP1_NORMAL", GL_MAP1_NORMAL); + gpu_get_print("GL_MAP1_TEXTURE_COORD_1", GL_MAP1_TEXTURE_COORD_1); + gpu_get_print("GL_MAP1_TEXTURE_COORD_2", GL_MAP1_TEXTURE_COORD_2); + gpu_get_print("GL_MAP1_TEXTURE_COORD_3", GL_MAP1_TEXTURE_COORD_3); + gpu_get_print("GL_MAP1_TEXTURE_COORD_4", GL_MAP1_TEXTURE_COORD_4); + gpu_get_print("GL_MAP1_VERTEX_3", GL_MAP1_VERTEX_3); + gpu_get_print("GL_MAP1_VERTEX_4", GL_MAP1_VERTEX_4); + gpu_get_print("GL_MAP2_COLOR_4", GL_MAP2_COLOR_4); + gpu_get_print("GL_MAP2_GRID_DOMAIN", GL_MAP2_GRID_DOMAIN); + gpu_get_print("GL_MAP2_GRID_SEGMENTS", GL_MAP2_GRID_SEGMENTS); + gpu_get_print("GL_MAP2_INDEX", GL_MAP2_INDEX); + gpu_get_print("GL_MAP2_NORMAL", GL_MAP2_NORMAL); + gpu_get_print("GL_MAP2_TEXTURE_COORD_1", GL_MAP2_TEXTURE_COORD_1); + gpu_get_print("GL_MAP2_TEXTURE_COORD_2", GL_MAP2_TEXTURE_COORD_2); + gpu_get_print("GL_MAP2_TEXTURE_COORD_3", GL_MAP2_TEXTURE_COORD_3); + gpu_get_print("GL_MAP2_TEXTURE_COORD_4", GL_MAP2_TEXTURE_COORD_4); + gpu_get_print("GL_MAP2_VERTEX_3", GL_MAP2_VERTEX_3); + gpu_get_print("GL_MAP2_VERTEX_4", GL_MAP2_VERTEX_4); + gpu_get_print("GL_MAP_COLOR", GL_MAP_COLOR); + gpu_get_print("GL_MAP_STENCIL", GL_MAP_STENCIL); + gpu_get_print("GL_MATRIX_MODE", GL_MATRIX_MODE); + gpu_get_print("GL_MAX_3D_TEXTURE_SIZE", GL_MAX_3D_TEXTURE_SIZE); + gpu_get_print("GL_MAX_CLIENT_ATTRIB_STACK_DEPTH", GL_MAX_CLIENT_ATTRIB_STACK_DEPTH); + gpu_get_print("GL_MAX_ATTRIB_STACK_DEPTH", GL_MAX_ATTRIB_STACK_DEPTH); + gpu_get_print("GL_MAX_CLIP_PLANES", GL_MAX_CLIP_PLANES); + gpu_get_print("GL_MAX_COLOR_MATRIX_STACK_DEPTH", GL_MAX_COLOR_MATRIX_STACK_DEPTH); + gpu_get_print("GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS", GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS); + gpu_get_print("GL_MAX_CUBE_MAP_TEXTURE_SIZE", GL_MAX_CUBE_MAP_TEXTURE_SIZE); + gpu_get_print("GL_MAX_DRAW_BUFFERS", GL_MAX_DRAW_BUFFERS); + gpu_get_print("GL_MAX_ELEMENTS_INDICES", GL_MAX_ELEMENTS_INDICES); + gpu_get_print("GL_MAX_ELEMENTS_VERTICES", GL_MAX_ELEMENTS_VERTICES); + gpu_get_print("GL_MAX_EVAL_ORDER", GL_MAX_EVAL_ORDER); + gpu_get_print("GL_MAX_FRAGMENT_UNIFORM_COMPONENTS", GL_MAX_FRAGMENT_UNIFORM_COMPONENTS); + gpu_get_print("GL_MAX_LIGHTS", GL_MAX_LIGHTS); + gpu_get_print("GL_MAX_LIST_NESTING", GL_MAX_LIST_NESTING); + gpu_get_print("GL_MAX_MODELVIEW_STACK_DEPTH", GL_MAX_MODELVIEW_STACK_DEPTH); + gpu_get_print("GL_MAX_NAME_STACK_DEPTH", GL_MAX_NAME_STACK_DEPTH); + gpu_get_print("GL_MAX_PIXEL_MAP_TABLE", GL_MAX_PIXEL_MAP_TABLE); + gpu_get_print("GL_MAX_PROJECTION_STACK_DEPTH", GL_MAX_PROJECTION_STACK_DEPTH); + gpu_get_print("GL_MAX_TEXTURE_COORDS", GL_MAX_TEXTURE_COORDS); + gpu_get_print("GL_MAX_TEXTURE_IMAGE_UNITS", GL_MAX_TEXTURE_IMAGE_UNITS); + gpu_get_print("GL_MAX_TEXTURE_LOD_BIAS", GL_MAX_TEXTURE_LOD_BIAS); + gpu_get_print("GL_MAX_TEXTURE_SIZE", GL_MAX_TEXTURE_SIZE); + gpu_get_print("GL_MAX_TEXTURE_STACK_DEPTH", GL_MAX_TEXTURE_STACK_DEPTH); + gpu_get_print("GL_MAX_TEXTURE_UNITS", GL_MAX_TEXTURE_UNITS); + gpu_get_print("GL_MAX_VARYING_FLOATS", GL_MAX_VARYING_FLOATS); + gpu_get_print("GL_MAX_VERTEX_ATTRIBS", GL_MAX_VERTEX_ATTRIBS); + gpu_get_print("GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS", GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS); + gpu_get_print("GL_MAX_VERTEX_UNIFORM_COMPONENTS", GL_MAX_VERTEX_UNIFORM_COMPONENTS); + gpu_get_print("GL_MAX_VIEWPORT_DIMS", GL_MAX_VIEWPORT_DIMS); + gpu_get_print("GL_MINMAX", GL_MINMAX); + gpu_get_print("GL_MODELVIEW_MATRIX", GL_MODELVIEW_MATRIX); + gpu_get_print("GL_MODELVIEW_STACK_DEPTH", GL_MODELVIEW_STACK_DEPTH); + gpu_get_print("GL_NAME_STACK_DEPTH", GL_NAME_STACK_DEPTH); + gpu_get_print("GL_NORMAL_ARRAY", GL_NORMAL_ARRAY); + gpu_get_print("GL_NORMAL_ARRAY_BUFFER_BINDING", GL_NORMAL_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_NORMAL_ARRAY_STRIDE", GL_NORMAL_ARRAY_STRIDE); + gpu_get_print("GL_NORMAL_ARRAY_TYPE", GL_NORMAL_ARRAY_TYPE); + gpu_get_print("GL_NORMALIZE", GL_NORMALIZE); + gpu_get_print("GL_NUM_COMPRESSED_TEXTURE_FORMATS", GL_NUM_COMPRESSED_TEXTURE_FORMATS); + gpu_get_print("GL_PACK_ALIGNMENT", GL_PACK_ALIGNMENT); + gpu_get_print("GL_PACK_IMAGE_HEIGHT", GL_PACK_IMAGE_HEIGHT); + gpu_get_print("GL_PACK_LSB_FIRST", GL_PACK_LSB_FIRST); + gpu_get_print("GL_PACK_ROW_LENGTH", GL_PACK_ROW_LENGTH); + gpu_get_print("GL_PACK_SKIP_IMAGES", GL_PACK_SKIP_IMAGES); + gpu_get_print("GL_PACK_SKIP_PIXELS", GL_PACK_SKIP_PIXELS); + gpu_get_print("GL_PACK_SKIP_ROWS", GL_PACK_SKIP_ROWS); + gpu_get_print("GL_PACK_SWAP_BYTES", GL_PACK_SWAP_BYTES); + gpu_get_print("GL_PERSPECTIVE_CORRECTION_HINT", GL_PERSPECTIVE_CORRECTION_HINT); + gpu_get_print("GL_PIXEL_MAP_A_TO_A_SIZE", GL_PIXEL_MAP_A_TO_A_SIZE); + gpu_get_print("GL_PIXEL_MAP_B_TO_B_SIZE", GL_PIXEL_MAP_B_TO_B_SIZE); + gpu_get_print("GL_PIXEL_MAP_G_TO_G_SIZE", GL_PIXEL_MAP_G_TO_G_SIZE); + gpu_get_print("GL_PIXEL_MAP_I_TO_A_SIZE", GL_PIXEL_MAP_I_TO_A_SIZE); + gpu_get_print("GL_PIXEL_MAP_I_TO_B_SIZE", GL_PIXEL_MAP_I_TO_B_SIZE); + gpu_get_print("GL_PIXEL_MAP_I_TO_G_SIZE", GL_PIXEL_MAP_I_TO_G_SIZE); + gpu_get_print("GL_PIXEL_MAP_I_TO_I_SIZE", GL_PIXEL_MAP_I_TO_I_SIZE); + gpu_get_print("GL_PIXEL_MAP_I_TO_R_SIZE", GL_PIXEL_MAP_I_TO_R_SIZE); + gpu_get_print("GL_PIXEL_MAP_R_TO_R_SIZE", GL_PIXEL_MAP_R_TO_R_SIZE); + gpu_get_print("GL_PIXEL_MAP_S_TO_S_SIZE", GL_PIXEL_MAP_S_TO_S_SIZE); + gpu_get_print("GL_PIXEL_PACK_BUFFER_BINDING", GL_PIXEL_PACK_BUFFER_BINDING); + gpu_get_print("GL_PIXEL_UNPACK_BUFFER_BINDING", GL_PIXEL_UNPACK_BUFFER_BINDING); + gpu_get_print("GL_POINT_DISTANCE_ATTENUATION", GL_POINT_DISTANCE_ATTENUATION); + gpu_get_print("GL_POINT_FADE_THRESHOLD_SIZE", GL_POINT_FADE_THRESHOLD_SIZE); + gpu_get_print("GL_POINT_SIZE", GL_POINT_SIZE); + gpu_get_print("GL_POINT_SIZE_GRANULARITY", GL_POINT_SIZE_GRANULARITY); + gpu_get_print("GL_POINT_SIZE_MAX", GL_POINT_SIZE_MAX); + gpu_get_print("GL_POINT_SIZE_MIN", GL_POINT_SIZE_MIN); + gpu_get_print("GL_POINT_SIZE_RANGE", GL_POINT_SIZE_RANGE); + gpu_get_print("GL_POINT_SMOOTH", GL_POINT_SMOOTH); + gpu_get_print("GL_POINT_SMOOTH_HINT", GL_POINT_SMOOTH_HINT); + gpu_get_print("GL_POINT_SPRITE", GL_POINT_SPRITE); + gpu_get_print("GL_POLYGON_MODE", GL_POLYGON_MODE); + gpu_get_print("GL_POLYGON_OFFSET_FACTOR", GL_POLYGON_OFFSET_FACTOR); + gpu_get_print("GL_POLYGON_OFFSET_UNITS", GL_POLYGON_OFFSET_UNITS); + gpu_get_print("GL_POLYGON_OFFSET_FILL", GL_POLYGON_OFFSET_FILL); + gpu_get_print("GL_POLYGON_OFFSET_LINE", GL_POLYGON_OFFSET_LINE); + gpu_get_print("GL_POLYGON_OFFSET_POINT", GL_POLYGON_OFFSET_POINT); + gpu_get_print("GL_POLYGON_SMOOTH", GL_POLYGON_SMOOTH); + gpu_get_print("GL_POLYGON_SMOOTH_HINT", GL_POLYGON_SMOOTH_HINT); + gpu_get_print("GL_POLYGON_STIPPLE", GL_POLYGON_STIPPLE); + gpu_get_print("GL_POST_COLOR_MATRIX_COLOR_TABLE", GL_POST_COLOR_MATRIX_COLOR_TABLE); + gpu_get_print("GL_POST_COLOR_MATRIX_RED_BIAS", GL_POST_COLOR_MATRIX_RED_BIAS); + gpu_get_print("GL_POST_COLOR_MATRIX_GREEN_BIAS", GL_POST_COLOR_MATRIX_GREEN_BIAS); + gpu_get_print("GL_POST_COLOR_MATRIX_BLUE_BIAS", GL_POST_COLOR_MATRIX_BLUE_BIAS); + gpu_get_print("GL_POST_COLOR_MATRIX_ALPHA_BIAS", GL_POST_COLOR_MATRIX_ALPHA_BIAS); + gpu_get_print("GL_POST_COLOR_MATRIX_RED_SCALE", GL_POST_COLOR_MATRIX_RED_SCALE); + gpu_get_print("GL_POST_COLOR_MATRIX_GREEN_SCALE", GL_POST_COLOR_MATRIX_GREEN_SCALE); + gpu_get_print("GL_POST_COLOR_MATRIX_BLUE_SCALE", GL_POST_COLOR_MATRIX_BLUE_SCALE); + gpu_get_print("GL_POST_COLOR_MATRIX_ALPHA_SCALE", GL_POST_COLOR_MATRIX_ALPHA_SCALE); + gpu_get_print("GL_POST_CONVOLUTION_COLOR_TABLE", GL_POST_CONVOLUTION_COLOR_TABLE); + gpu_get_print("GL_POST_CONVOLUTION_RED_BIAS", GL_POST_CONVOLUTION_RED_BIAS); + gpu_get_print("GL_POST_CONVOLUTION_GREEN_BIAS", GL_POST_CONVOLUTION_GREEN_BIAS); + gpu_get_print("GL_POST_CONVOLUTION_BLUE_BIAS", GL_POST_CONVOLUTION_BLUE_BIAS); + gpu_get_print("GL_POST_CONVOLUTION_ALPHA_BIAS", GL_POST_CONVOLUTION_ALPHA_BIAS); + gpu_get_print("GL_POST_CONVOLUTION_RED_SCALE", GL_POST_CONVOLUTION_RED_SCALE); + gpu_get_print("GL_POST_CONVOLUTION_GREEN_SCALE", GL_POST_CONVOLUTION_GREEN_SCALE); + gpu_get_print("GL_POST_CONVOLUTION_BLUE_SCALE", GL_POST_CONVOLUTION_BLUE_SCALE); + gpu_get_print("GL_POST_CONVOLUTION_ALPHA_SCALE", GL_POST_CONVOLUTION_ALPHA_SCALE); + gpu_get_print("GL_PROJECTION_MATRIX", GL_PROJECTION_MATRIX); + gpu_get_print("GL_PROJECTION_STACK_DEPTH", GL_PROJECTION_STACK_DEPTH); + gpu_get_print("GL_READ_BUFFER", GL_READ_BUFFER); + gpu_get_print("GL_RED_BIAS", GL_RED_BIAS); + gpu_get_print("GL_RED_BITS", GL_RED_BITS); + gpu_get_print("GL_RED_SCALE", GL_RED_SCALE); + gpu_get_print("GL_RENDER_MODE", GL_RENDER_MODE); + gpu_get_print("GL_RESCALE_NORMAL", GL_RESCALE_NORMAL); + gpu_get_print("GL_RGBA_MODE", GL_RGBA_MODE); + gpu_get_print("GL_SAMPLE_BUFFERS", GL_SAMPLE_BUFFERS); + gpu_get_print("GL_SAMPLE_COVERAGE_VALUE", GL_SAMPLE_COVERAGE_VALUE); + gpu_get_print("GL_SAMPLE_COVERAGE_INVERT", GL_SAMPLE_COVERAGE_INVERT); + gpu_get_print("GL_SAMPLES", GL_SAMPLES); + gpu_get_print("GL_SCISSOR_BOX", GL_SCISSOR_BOX); + gpu_get_print("GL_SCISSOR_TEST", GL_SCISSOR_TEST); + gpu_get_print("GL_SECONDARY_COLOR_ARRAY", GL_SECONDARY_COLOR_ARRAY); + gpu_get_print("GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING", GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_SECONDARY_COLOR_ARRAY_SIZE", GL_SECONDARY_COLOR_ARRAY_SIZE); + gpu_get_print("GL_SECONDARY_COLOR_ARRAY_STRIDE", GL_SECONDARY_COLOR_ARRAY_STRIDE); + gpu_get_print("GL_SECONDARY_COLOR_ARRAY_TYPE", GL_SECONDARY_COLOR_ARRAY_TYPE); + gpu_get_print("GL_SELECTION_BUFFER_SIZE", GL_SELECTION_BUFFER_SIZE); + gpu_get_print("GL_SEPARABLE_2D", GL_SEPARABLE_2D); + gpu_get_print("GL_SHADE_MODEL", GL_SHADE_MODEL); + gpu_get_print("GL_SMOOTH_LINE_WIDTH_RANGE", GL_SMOOTH_LINE_WIDTH_RANGE); + gpu_get_print("GL_SMOOTH_LINE_WIDTH_GRANULARITY", GL_SMOOTH_LINE_WIDTH_GRANULARITY); + gpu_get_print("GL_SMOOTH_POINT_SIZE_RANGE", GL_SMOOTH_POINT_SIZE_RANGE); + gpu_get_print("GL_SMOOTH_POINT_SIZE_GRANULARITY", GL_SMOOTH_POINT_SIZE_GRANULARITY); + gpu_get_print("GL_STENCIL_BACK_FAIL", GL_STENCIL_BACK_FAIL); + gpu_get_print("GL_STENCIL_BACK_FUNC", GL_STENCIL_BACK_FUNC); + gpu_get_print("GL_STENCIL_BACK_PASS_DEPTH_FAIL", GL_STENCIL_BACK_PASS_DEPTH_FAIL); + gpu_get_print("GL_STENCIL_BACK_PASS_DEPTH_PASS", GL_STENCIL_BACK_PASS_DEPTH_PASS); + gpu_get_print("GL_STENCIL_BACK_REF", GL_STENCIL_BACK_REF); + gpu_get_print("GL_STENCIL_BACK_VALUE_MASK", GL_STENCIL_BACK_VALUE_MASK); + gpu_get_print("GL_STENCIL_BACK_WRITEMASK", GL_STENCIL_BACK_WRITEMASK); + gpu_get_print("GL_STENCIL_BITS", GL_STENCIL_BITS); + gpu_get_print("GL_STENCIL_CLEAR_VALUE", GL_STENCIL_CLEAR_VALUE); + gpu_get_print("GL_STENCIL_FAIL", GL_STENCIL_FAIL); + gpu_get_print("GL_STENCIL_FUNC", GL_STENCIL_FUNC); + gpu_get_print("GL_STENCIL_PASS_DEPTH_FAIL", GL_STENCIL_PASS_DEPTH_FAIL); + gpu_get_print("GL_STENCIL_PASS_DEPTH_PASS", GL_STENCIL_PASS_DEPTH_PASS); + gpu_get_print("GL_STENCIL_REF", GL_STENCIL_REF); + gpu_get_print("GL_STENCIL_TEST", GL_STENCIL_TEST); + gpu_get_print("GL_STENCIL_VALUE_MASK", GL_STENCIL_VALUE_MASK); + gpu_get_print("GL_STENCIL_WRITEMASK", GL_STENCIL_WRITEMASK); + gpu_get_print("GL_STEREO", GL_STEREO); + gpu_get_print("GL_SUBPIXEL_BITS", GL_SUBPIXEL_BITS); + gpu_get_print("GL_TEXTURE_1D", GL_TEXTURE_1D); + gpu_get_print("GL_TEXTURE_BINDING_1D", GL_TEXTURE_BINDING_1D); + gpu_get_print("GL_TEXTURE_2D", GL_TEXTURE_2D); + gpu_get_print("GL_TEXTURE_BINDING_2D", GL_TEXTURE_BINDING_2D); + gpu_get_print("GL_TEXTURE_3D", GL_TEXTURE_3D); + gpu_get_print("GL_TEXTURE_BINDING_3D", GL_TEXTURE_BINDING_3D); + gpu_get_print("GL_TEXTURE_BINDING_CUBE_MAP", GL_TEXTURE_BINDING_CUBE_MAP); + gpu_get_print("GL_TEXTURE_COMPRESSION_HINT", GL_TEXTURE_COMPRESSION_HINT); + gpu_get_print("GL_TEXTURE_COORD_ARRAY", GL_TEXTURE_COORD_ARRAY); + gpu_get_print("GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING", GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_TEXTURE_COORD_ARRAY_SIZE", GL_TEXTURE_COORD_ARRAY_SIZE); + gpu_get_print("GL_TEXTURE_COORD_ARRAY_STRIDE", GL_TEXTURE_COORD_ARRAY_STRIDE); + gpu_get_print("GL_TEXTURE_COORD_ARRAY_TYPE", GL_TEXTURE_COORD_ARRAY_TYPE); + gpu_get_print("GL_TEXTURE_CUBE_MAP", GL_TEXTURE_CUBE_MAP); + gpu_get_print("GL_TEXTURE_GEN_Q", GL_TEXTURE_GEN_Q); + gpu_get_print("GL_TEXTURE_GEN_R", GL_TEXTURE_GEN_R); + gpu_get_print("GL_TEXTURE_GEN_S", GL_TEXTURE_GEN_S); + gpu_get_print("GL_TEXTURE_GEN_T", GL_TEXTURE_GEN_T); + gpu_get_print("GL_TEXTURE_MATRIX", GL_TEXTURE_MATRIX); + gpu_get_print("GL_TEXTURE_STACK_DEPTH", GL_TEXTURE_STACK_DEPTH); + gpu_get_print("GL_TRANSPOSE_COLOR_MATRIX", GL_TRANSPOSE_COLOR_MATRIX); + gpu_get_print("GL_TRANSPOSE_MODELVIEW_MATRIX", GL_TRANSPOSE_MODELVIEW_MATRIX); + gpu_get_print("GL_TRANSPOSE_PROJECTION_MATRIX", GL_TRANSPOSE_PROJECTION_MATRIX); + gpu_get_print("GL_TRANSPOSE_TEXTURE_MATRIX", GL_TRANSPOSE_TEXTURE_MATRIX); + gpu_get_print("GL_UNPACK_ALIGNMENT", GL_UNPACK_ALIGNMENT); + gpu_get_print("GL_UNPACK_IMAGE_HEIGHT", GL_UNPACK_IMAGE_HEIGHT); + gpu_get_print("GL_UNPACK_LSB_FIRST", GL_UNPACK_LSB_FIRST); + gpu_get_print("GL_UNPACK_ROW_LENGTH", GL_UNPACK_ROW_LENGTH); + gpu_get_print("GL_UNPACK_SKIP_IMAGES", GL_UNPACK_SKIP_IMAGES); + gpu_get_print("GL_UNPACK_SKIP_PIXELS", GL_UNPACK_SKIP_PIXELS); + gpu_get_print("GL_UNPACK_SKIP_ROWS", GL_UNPACK_SKIP_ROWS); + gpu_get_print("GL_UNPACK_SWAP_BYTES", GL_UNPACK_SWAP_BYTES); + gpu_get_print("GL_VERTEX_ARRAY", GL_VERTEX_ARRAY); + gpu_get_print("GL_VERTEX_ARRAY_BUFFER_BINDING", GL_VERTEX_ARRAY_BUFFER_BINDING); + gpu_get_print("GL_VERTEX_ARRAY_SIZE", GL_VERTEX_ARRAY_SIZE); + gpu_get_print("GL_VERTEX_ARRAY_STRIDE", GL_VERTEX_ARRAY_STRIDE); + gpu_get_print("GL_VERTEX_ARRAY_TYPE", GL_VERTEX_ARRAY_TYPE); + gpu_get_print("GL_VERTEX_PROGRAM_POINT_SIZE", GL_VERTEX_PROGRAM_POINT_SIZE); + gpu_get_print("GL_VERTEX_PROGRAM_TWO_SIDE", GL_VERTEX_PROGRAM_TWO_SIDE); + gpu_get_print("GL_VIEWPORT", GL_VIEWPORT); + gpu_get_print("GL_ZOOM_X", GL_ZOOM_X); + gpu_get_print("GL_ZOOM_Y", GL_ZOOM_Y); +} + -- cgit v1.2.3 From 5dd7b4d4907c11315654cd788ce24fa7faaa5231 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 4 Jan 2010 16:53:32 +0000 Subject: Sculpt: * Fix #20482: grab brush + size pressure sensitivity don't work together, disabled the pressure sensitivty for that case now. * Fix for smooth brush messing up mesh sometimes, smooth factor is now clamped to reasonable range. * Fix #20449: smooth brush + mirror modifier could crash. --- source/blender/blenkernel/BKE_DerivedMesh.h | 2 +- source/blender/blenkernel/intern/cdderivedmesh.c | 10 ++++++---- source/blender/editors/sculpt_paint/sculpt.c | 24 ++++++++++++++++-------- 3 files changed, 23 insertions(+), 13 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index a3a1ead3924..821c963de1c 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -202,7 +202,7 @@ struct DerivedMesh { /* Get a map of vertices to faces */ - struct ListBase *(*getFaceMap)(DerivedMesh *dm); + struct ListBase *(*getFaceMap)(struct Object *ob, DerivedMesh *dm); /* Get the BVH used for paint modes */ diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 66c39c6571a..32cde20eb6b 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -177,13 +177,15 @@ static void cdDM_getVertNo(DerivedMesh *dm, int index, float no_r[3]) no_r[2] = no[2]/32767.f; } -static ListBase *cdDM_getFaceMap(DerivedMesh *dm) +static ListBase *cdDM_getFaceMap(Object *ob, DerivedMesh *dm) { CDDerivedMesh *cddm = (CDDerivedMesh*) dm; - if(!cddm->fmap) { - create_vert_face_map(&cddm->fmap, &cddm->fmap_mem, cddm->mface, - dm->getNumVerts(dm), dm->getNumFaces(dm)); + if(!cddm->fmap && ob->type == OB_MESH) { + Mesh *me= ob->data; + + create_vert_face_map(&cddm->fmap, &cddm->fmap_mem, me->mface, + me->totvert, me->totface); } return cddm->fmap; diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 75cc927cf0e..cfcd0d90e2c 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -914,6 +914,8 @@ static void do_mesh_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node) if(sculpt_brush_test(&test, vd.co)) { float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength; float avg[3], val[3]; + + CLAMP(fade, 0.0f, 1.0f); neighbor_average(ss, avg, vd.vert_indices[vd.i]); val[0] = vd.co[0]+(avg[0]-vd.co[0])*fade; @@ -990,6 +992,8 @@ static void do_multires_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *no if(y == 0 || y == gridsize - 1) mul_v3_fl(avg, 2.0f); + CLAMP(fade, 0.0f, 1.0f); + val[0] = co[0]+(avg[0]-co[0])*fade; val[1] = co[1]+(avg[1]-co[1])*fade; val[2] = co[2]+(avg[2]-co[2])*fade; @@ -1013,15 +1017,15 @@ static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int for(n=0; nfmap) - do_mesh_smooth_brush(sd, ss, nodes[n]); - else + if(ss->multires) do_multires_smooth_brush(sd, ss, nodes[n]); + else if(ss->fmap) + do_mesh_smooth_brush(sd, ss, nodes[n]); BLI_pbvh_node_mark_update(nodes[n]); } - if(!ss->fmap) + if(ss->multires) multires_stitch_grids(ss->ob); } } @@ -1544,7 +1548,7 @@ void sculpt_update_mesh_elements(Scene *scene, Object *ob, int need_fmap) } ss->tree = dm->getPBVH(ob, dm); - ss->fmap = (need_fmap && dm->getFaceMap)? dm->getFaceMap(dm): NULL; + ss->fmap = (need_fmap && dm->getFaceMap)? dm->getFaceMap(ob, dm): NULL; } static int sculpt_mode_poll(bContext *C) @@ -1743,7 +1747,7 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P if(cache->first_time) cache->initial_radius = unproject_brush_radius(ss->ob, cache->vc, cache->true_location, brush->size); - if(brush->flag & BRUSH_SIZE_PRESSURE) { + if(brush->flag & BRUSH_SIZE_PRESSURE && brush->sculpt_tool != SCULPT_TOOL_GRAB) { cache->pixel_radius *= cache->pressure; cache->radius = cache->initial_radius * cache->pressure; } @@ -1797,8 +1801,12 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct P static void sculpt_stroke_modifiers_check(bContext *C, SculptSession *ss) { - if(sculpt_modifiers_active(ss->ob)) - sculpt_update_mesh_elements(CTX_data_scene(C), ss->ob, 0); // XXX brush->sculpt_tool == SCULPT_TOOL_SMOOTH); + if(sculpt_modifiers_active(ss->ob)) { + Sculpt *sd = CTX_data_tool_settings(C)->sculpt; + Brush *brush = paint_brush(&sd->paint); + + sculpt_update_mesh_elements(CTX_data_scene(C), ss->ob, brush->sculpt_tool == SCULPT_TOOL_SMOOTH); + } } typedef struct { -- cgit v1.2.3 From 0e37b49a2c2f3693db834295262b2f041799c542 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 4 Jan 2010 17:03:44 +0000 Subject: Sculpt: fix, disable border/circle/mouse select operators in sculpt mode. --- source/blender/editors/space_view3d/view3d_select.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 17af631350a..0ed7f4c0d0a 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1424,6 +1424,8 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) else if(obedit==NULL && (obact && obact->mode & OB_MODE_PARTICLE_EDIT)) { return PE_border_select(C, &rect, selecting, extend); } + else if(obedit==NULL && (obact && obact->mode & OB_MODE_SCULPT)) + return OPERATOR_CANCELLED; if(obedit) { if(obedit->type==OB_MESH) { @@ -1689,6 +1691,8 @@ static int view3d_select_invoke(bContext *C, wmOperator *op, wmEvent *event) retval = mouse_mball(C, event->mval, extend); } + else if(obact && obact->mode & OB_MODE_SCULPT) + return OPERATOR_CANCELLED; else if(obact && obact->mode & OB_MODE_PARTICLE_EDIT) return PE_mouse_particles(C, event->mval, extend); else if(obact && paint_facesel_test(obact)) @@ -2012,6 +2016,9 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op) else return PE_circle_select(C, selecting, mval, (float)radius); } + else if(obact && obact->mode & OB_MODE_SCULPT) { + return OPERATOR_CANCELLED; + } else { Base *base; selecting= selecting?BA_SELECT:BA_DESELECT; -- cgit v1.2.3 From 8af456313ae4dd0fd29f66d87a07037a9289e091 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 17:27:23 +0000 Subject: dupli faces inherit scale wasnt using the right flag internally. renamed... dupli_frames_no_speed --> use_dupli_frames_speed dupli_verts_rotation --> use_dupli_verts_rotation dupli_faces_inherit_scale --> use_dupli_faces_scale --- source/blender/makesrna/intern/rna_object.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index a670fb244f6..0a4fa71c006 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1788,18 +1788,18 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Dupli Type", "If not None, object duplication method to use."); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_dependency_update"); - prop= RNA_def_property(srna, "dupli_frames_no_speed", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLINOSPEED); - RNA_def_property_ui_text(prop, "Dupli Frames No Speed", "Set dupliframes to still, regardless of frame."); + prop= RNA_def_property(srna, "use_dupli_frames_speed", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "transflag", OB_DUPLINOSPEED); + RNA_def_property_ui_text(prop, "Dupli Frames Speed", "Set dupliframes to use the frame."); // TODO, better descriptio! RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update"); - prop= RNA_def_property(srna, "dupli_verts_rotation", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "use_dupli_verts_rotation", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLIROT); RNA_def_property_ui_text(prop, "Dupli Verts Rotation", "Rotate dupli according to vertex normal."); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); - prop= RNA_def_property(srna, "dupli_faces_inherit_scale", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLIROT); + prop= RNA_def_property(srna, "use_dupli_faces_scale", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLIFACES_SCALE); RNA_def_property_ui_text(prop, "Dupli Faces Inherit Scale", "Scale dupli based on face size."); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update"); -- cgit v1.2.3 From 29f90af19cb5e8284f95d25e3f9c9519c588c742 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 4 Jan 2010 17:28:37 +0000 Subject: Fix: curve reset for brushes now gives proper smooth curve as default, also moved brush curve presets code into curvemapping code. --- source/blender/blenkernel/BKE_brush.h | 8 +--- source/blender/blenkernel/BKE_colortools.h | 9 +++- source/blender/blenkernel/intern/brush.c | 43 ++--------------- source/blender/blenkernel/intern/colortools.c | 56 ++++++++++++++++++---- source/blender/blenloader/intern/readfile.c | 2 +- source/blender/editors/include/UI_interface.h | 2 +- .../editors/interface/interface_templates.c | 43 ++++++++++++++--- source/blender/editors/sculpt_paint/paint_utils.c | 9 ++-- source/blender/editors/space_image/image_buttons.c | 2 +- source/blender/editors/space_node/drawnode.c | 6 +-- source/blender/makesrna/intern/rna_ui_api.c | 1 + 11 files changed, 108 insertions(+), 73 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_brush.h b/source/blender/blenkernel/BKE_brush.h index f302618e60d..40e1859ade2 100644 --- a/source/blender/blenkernel/BKE_brush.h +++ b/source/blender/blenkernel/BKE_brush.h @@ -36,6 +36,7 @@ struct Brush; struct ImBuf; struct Scene; struct wmOperator; +enum CurveMappingPreset; /* datablock functions */ struct Brush *add_brush(const char *name); @@ -54,12 +55,7 @@ int brush_clone_image_set_nr(struct Brush *brush, int nr); int brush_clone_image_delete(struct Brush *brush); /* brush curve */ -typedef enum { - BRUSH_PRESET_SHARP, - BRUSH_PRESET_SMOOTH, - BRUSH_PRESET_MAX -} BrushCurvePreset; -void brush_curve_preset(struct Brush *b, BrushCurvePreset preset); +void brush_curve_preset(struct Brush *b, enum CurveMappingPreset preset); float brush_curve_strength_clamp(struct Brush *br, float p, const float len); float brush_curve_strength(struct Brush *br, float p, const float len); /* used for sculpt */ diff --git a/source/blender/blenkernel/BKE_colortools.h b/source/blender/blenkernel/BKE_colortools.h index c571688737a..85215592ff0 100644 --- a/source/blender/blenkernel/BKE_colortools.h +++ b/source/blender/blenkernel/BKE_colortools.h @@ -34,6 +34,13 @@ struct CurveMap; struct ImBuf; struct rctf; +typedef enum CurveMappingPreset { + CURVE_PRESET_LINE, + CURVE_PRESET_SHARP, + CURVE_PRESET_SMOOTH, + CURVE_PRESET_MAX +} CurveMappingPreset; + void floatbuf_to_srgb_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int w); void floatbuf_to_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int w); @@ -44,7 +51,7 @@ void curvemapping_set_black_white(struct CurveMapping *cumap, float *black, f void curvemap_remove(struct CurveMap *cuma, int flag); void curvemap_insert(struct CurveMap *cuma, float x, float y); -void curvemap_reset(struct CurveMap *cuma, struct rctf *clipr); +void curvemap_reset(struct CurveMap *cuma, struct rctf *clipr, CurveMappingPreset preset); void curvemap_sethandle(struct CurveMap *cuma, int type); void curvemapping_changed(struct CurveMapping *cumap, int rem_doubles); diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index 444c6d2c903..ec761c27c64 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -88,7 +88,7 @@ Brush *add_brush(const char *name) brush->sculpt_tool = SCULPT_TOOL_DRAW; brush->flag |= BRUSH_SPACE; - brush_curve_preset(brush, BRUSH_PRESET_SMOOTH); + brush_curve_preset(brush, CURVE_PRESET_SMOOTH); /* enable fake user by default */ brush->id.flag |= LIB_FAKEUSER; @@ -225,7 +225,7 @@ void brush_toggled_fake_user(Brush *brush) } } -void brush_curve_preset(Brush *b, BrushCurvePreset preset) +void brush_curve_preset(Brush *b, CurveMappingPreset preset) { CurveMap *cm = NULL; @@ -233,46 +233,9 @@ void brush_curve_preset(Brush *b, BrushCurvePreset preset) b->curve = curvemapping_add(1, 0, 0, 1, 1); cm = b->curve->cm; - - if(cm->curve) - MEM_freeN(cm->curve); - - if(preset == BRUSH_PRESET_SHARP) - cm->totpoint= 3; - if(preset == BRUSH_PRESET_SMOOTH) - cm->totpoint= 4; - if(preset == BRUSH_PRESET_MAX) - cm->totpoint= 2; - - - cm->curve= MEM_callocN(cm->totpoint*sizeof(CurveMapPoint), "curve points"); cm->flag &= ~CUMA_EXTEND_EXTRAPOLATE; - if(preset == BRUSH_PRESET_SHARP) { - cm->curve[0].x= 0; - cm->curve[0].y= 1; - cm->curve[1].x= 0.33; - cm->curve[1].y= 0.33; - cm->curve[2].x= 1; - cm->curve[2].y= 0; - } - else if(preset == BRUSH_PRESET_SMOOTH) { - cm->curve[0].x= 0; - cm->curve[0].y= 1; - cm->curve[1].x= 0.25; - cm->curve[1].y= 0.92; - cm->curve[2].x= 0.75; - cm->curve[2].y= 0.08; - cm->curve[3].x= 1; - cm->curve[3].y= 0; - } - else if(preset == BRUSH_PRESET_MAX) { - cm->curve[0].x= 0; - cm->curve[0].y= 1; - cm->curve[1].x= 1; - cm->curve[1].y= 1; - } - + curvemap_reset(cm, &b->curve->clipr, preset); curvemapping_changed(b->curve, 0); } diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c index 48e42bc539f..cd8c0c24087 100644 --- a/source/blender/blenkernel/intern/colortools.c +++ b/source/blender/blenkernel/intern/colortools.c @@ -236,16 +236,54 @@ void curvemap_insert(CurveMap *cuma, float x, float y) cuma->curve= cmp; } -void curvemap_reset(CurveMap *cuma, rctf *clipr) +void curvemap_reset(CurveMap *cuma, rctf *clipr, CurveMappingPreset preset) { - cuma->totpoint= 2; - - cuma->curve[0].x= clipr->xmin; - cuma->curve[0].y= clipr->ymin; - cuma->curve[0].flag= 0; - cuma->curve[1].x= clipr->xmax; - cuma->curve[1].y= clipr->ymax; - cuma->curve[1].flag= 0; + if(cuma->curve) + MEM_freeN(cuma->curve); + + switch(preset) { + case CURVE_PRESET_LINE: cuma->totpoint= 2; break; + case CURVE_PRESET_SHARP: cuma->totpoint= 3; break; + case CURVE_PRESET_SMOOTH: cuma->totpoint= 4; break; + case CURVE_PRESET_MAX: cuma->totpoint= 2; break; + } + + cuma->curve= MEM_callocN(cuma->totpoint*sizeof(CurveMapPoint), "curve points"); + + switch(preset) { + case CURVE_PRESET_LINE: + cuma->curve[0].x= clipr->xmin; + cuma->curve[0].y= clipr->ymin; + cuma->curve[0].flag= 0; + cuma->curve[1].x= clipr->xmax; + cuma->curve[1].y= clipr->ymax; + cuma->curve[1].flag= 0; + break; + case CURVE_PRESET_SHARP: + cuma->curve[0].x= 0; + cuma->curve[0].y= 1; + cuma->curve[1].x= 0.33; + cuma->curve[1].y= 0.33; + cuma->curve[2].x= 1; + cuma->curve[2].y= 0; + break; + case CURVE_PRESET_SMOOTH: + cuma->curve[0].x= 0; + cuma->curve[0].y= 1; + cuma->curve[1].x= 0.25; + cuma->curve[1].y= 0.92; + cuma->curve[2].x= 0.75; + cuma->curve[2].y= 0.08; + cuma->curve[3].x= 1; + cuma->curve[3].y= 0; + break; + case CURVE_PRESET_MAX: + cuma->curve[0].x= 0; + cuma->curve[0].y= 1; + cuma->curve[1].x= 1; + cuma->curve[1].y= 1; + break; + } if(cuma->table) { MEM_freeN(cuma->table); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 4165d2860a4..3e35250bd74 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1553,7 +1553,7 @@ static void direct_link_brush(FileData *fd, Brush *brush) if(brush->curve) direct_link_curvemapping(fd, brush->curve); else - brush_curve_preset(brush, BRUSH_PRESET_SHARP); + brush_curve_preset(brush, CURVE_PRESET_SHARP); } static void direct_link_script(FileData *fd, Script *script) diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 1cca811d909..243e55b851a 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -653,7 +653,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, struct PointerRNA *ptr); uiLayout *uiTemplateConstraint(uiLayout *layout, struct PointerRNA *ptr); void uiTemplatePreview(uiLayout *layout, struct ID *id, struct ID *parent, struct MTex *slot); void uiTemplateColorRamp(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand); -void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, char *propname, int type, int levels); +void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, char *propname, int type, int levels, int brush); void uiTemplateTriColorSet(uiLayout *layout, struct PointerRNA *ptr, char *propname); void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, char *propname, PointerRNA *used_ptr, char *used_propname, int active_layer); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 3c2387c7df0..bbfd3a8786f 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -33,6 +33,7 @@ #include "BLI_string.h" +#include "BKE_colortools.h" #include "BKE_context.h" #include "BKE_icons.h" #include "BKE_global.h" @@ -1652,8 +1653,8 @@ static void curvemap_tools_dofunc(bContext *C, void *cumap_v, int event) CurveMap *cuma= cumap->cm+cumap->cur; switch(event) { - case 0: - curvemap_reset(cuma, &cumap->clipr); + case 0: /* reset */ + curvemap_reset(cuma, &cumap->clipr, CURVE_PRESET_LINE); curvemapping_changed(cumap, 0); break; case 1: @@ -1675,6 +1676,10 @@ static void curvemap_tools_dofunc(bContext *C, void *cumap_v, int event) cuma->flag |= CUMA_EXTEND_EXTRAPOLATE; curvemapping_changed(cumap, 0); break; + case 6: /* reset smooth */ + curvemap_reset(cuma, &cumap->clipr, CURVE_PRESET_SMOOTH); + curvemapping_changed(cumap, 0); + break; } ED_region_tag_redraw(CTX_wm_region(C)); } @@ -1701,6 +1706,26 @@ static uiBlock *curvemap_tools_func(bContext *C, struct ARegion *ar, void *cumap return block; } +static uiBlock *curvemap_brush_tools_func(bContext *C, struct ARegion *ar, void *cumap_v) +{ + uiBlock *block; + short yco= 0, menuwidth=120; + + block= uiBeginBlock(C, ar, "curvemap_tools_func", UI_EMBOSS); + uiBlockSetButmFunc(block, curvemap_tools_dofunc, cumap_v); + + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset View", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector Handle", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto Handle", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, ""); + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, ""); + + uiBlockSetDirection(block, UI_RIGHT); + uiTextBoundsBlock(block, 50); + + uiEndBlock(C, block); + return block; +} + static void curvemap_buttons_redraw(bContext *C, void *arg1, void *arg2) { ED_region_tag_redraw(CTX_wm_region(C)); @@ -1712,7 +1737,7 @@ static void curvemap_buttons_reset(bContext *C, void *cb_v, void *cumap_v) int a; for(a=0; acm+a, &cumap->clipr); + curvemap_reset(cumap->cm+a, &cumap->clipr, CURVE_PRESET_LINE); cumap->black[0]=cumap->black[1]=cumap->black[2]= 0.0f; cumap->white[0]=cumap->white[1]=cumap->white[2]= 1.0f; @@ -1724,7 +1749,7 @@ static void curvemap_buttons_reset(bContext *C, void *cb_v, void *cumap_v) } /* still unsure how this call evolves... we use labeltype for defining what curve-channels to show */ -static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labeltype, int levels, RNAUpdateCb *cb) +static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labeltype, int levels, int brush, RNAUpdateCb *cb) { CurveMapping *cumap= ptr->data; uiLayout *row, *sub, *split; @@ -1792,7 +1817,11 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMOUT, 0, 0, dx, 14, NULL, 0.0, 0.0, 0.0, 0.0, "Zoom out"); uiButSetFunc(bt, curvemap_buttons_zoom_out, cumap, NULL); - bt= uiDefIconBlockBut(block, curvemap_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, 18, "Tools"); + if(brush) + bt= uiDefIconBlockBut(block, curvemap_brush_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, 18, "Tools"); + else + bt= uiDefIconBlockBut(block, curvemap_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, 18, "Tools"); + uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL); if(cumap->flag & CUMA_DO_CLIP) icon= ICON_CLIPUV_HLT; else icon= ICON_CLIPUV_DEHLT; @@ -1825,7 +1854,7 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe uiBlockSetNFunc(block, NULL, NULL, NULL); } -void uiTemplateCurveMapping(uiLayout *layout, PointerRNA *ptr, char *propname, int type, int levels) +void uiTemplateCurveMapping(uiLayout *layout, PointerRNA *ptr, char *propname, int type, int levels, int brush) { RNAUpdateCb *cb; PropertyRNA *prop= RNA_struct_find_property(ptr, propname); @@ -1842,7 +1871,7 @@ void uiTemplateCurveMapping(uiLayout *layout, PointerRNA *ptr, char *propname, i cb->ptr= *ptr; cb->prop= prop; - curvemap_buttons_layout(layout, &cptr, type, levels, cb); + curvemap_buttons_layout(layout, &cptr, type, levels, brush, cb); MEM_freeN(cb); } diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c index b968930128a..606fae3d8bb 100644 --- a/source/blender/editors/sculpt_paint/paint_utils.c +++ b/source/blender/editors/sculpt_paint/paint_utils.c @@ -16,6 +16,7 @@ #include "BLI_math.h" #include "BKE_brush.h" +#include "BKE_colortools.h" #include "BKE_context.h" #include "BKE_DerivedMesh.h" #include "BKE_global.h" @@ -214,9 +215,9 @@ static int brush_curve_preset_poll(bContext *C) void BRUSH_OT_curve_preset(wmOperatorType *ot) { static EnumPropertyItem prop_shape_items[] = { - {BRUSH_PRESET_SHARP, "SHARP", 0, "Sharp", ""}, - {BRUSH_PRESET_SMOOTH, "SMOOTH", 0, "Smooth", ""}, - {BRUSH_PRESET_MAX, "MAX", 0, "Max", ""}, + {CURVE_PRESET_SHARP, "SHARP", 0, "Sharp", ""}, + {CURVE_PRESET_SMOOTH, "SMOOTH", 0, "Smooth", ""}, + {CURVE_PRESET_MAX, "MAX", 0, "Max", ""}, {0, NULL, 0, NULL, NULL}}; ot->name= "Preset"; @@ -228,7 +229,7 @@ void BRUSH_OT_curve_preset(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - RNA_def_enum(ot->srna, "shape", prop_shape_items, BRUSH_PRESET_SHARP, "Mode", ""); + RNA_def_enum(ot->srna, "shape", prop_shape_items, CURVE_PRESET_SMOOTH, "Mode", ""); } diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index 4811eb411ec..6b92fc3fe4f 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -389,7 +389,7 @@ static void image_panel_curves(const bContext *C, Panel *pa) levels= (ibuf->channels==4); RNA_pointer_create(&sc->id, &RNA_SpaceImageEditor, sima, &simaptr); - uiTemplateCurveMapping(pa->layout, &simaptr, "curves", 'c', levels); + uiTemplateCurveMapping(pa->layout, &simaptr, "curves", 'c', levels, 0); } ED_space_image_release_buffer(sima, lock); diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 30212abd4da..4c634c20440 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -196,7 +196,7 @@ static void node_buts_time(uiLayout *layout, bContext *C, PointerRNA *ptr) } #endif - uiTemplateCurveMapping(layout, ptr, "curve", 's', 0); + uiTemplateCurveMapping(layout, ptr, "curve", 's', 0, 0); row= uiLayoutRow(layout, 1); uiItemR(row, "Sta", 0, ptr, "start", 0); @@ -210,7 +210,7 @@ static void node_buts_colorramp(uiLayout *layout, bContext *C, PointerRNA *ptr) static void node_buts_curvevec(uiLayout *layout, bContext *C, PointerRNA *ptr) { - uiTemplateCurveMapping(layout, ptr, "mapping", 'v', 0); + uiTemplateCurveMapping(layout, ptr, "mapping", 'v', 0, 0); } static float *_sample_col= NULL; // bad bad, 2.5 will do better? @@ -231,7 +231,7 @@ static void node_buts_curvecol(uiLayout *layout, bContext *C, PointerRNA *ptr) else cumap->flag &= ~CUMA_DRAW_SAMPLE; - uiTemplateCurveMapping(layout, ptr, "mapping", 'c', 0); + uiTemplateCurveMapping(layout, ptr, "mapping", 'c', 0, 0); } static void node_buts_normal(uiLayout *layout, bContext *C, PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 37917bb7435..de20da0c0ca 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -320,6 +320,7 @@ void RNA_api_ui_layout(StructRNA *srna) api_ui_item_rna_common(func); RNA_def_enum(func, "type", curve_type_items, 0, "Type", "Type of curves to display."); RNA_def_boolean(func, "levels", 0, "", "Show black/white levels."); + RNA_def_boolean(func, "brush", 0, "", "Show brush options."); func= RNA_def_function(srna, "template_color_ramp", "uiTemplateColorRamp"); api_ui_item_rna_common(func); -- cgit v1.2.3 From a325b8b3b9c68b0c554ce91211280c640b50e981 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 4 Jan 2010 20:18:13 +0000 Subject: bugfix: macro redo could crash because of not nulled freed pointer. --- source/blender/windowmanager/intern/wm_operators.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index ca53b0de795..6c0ed9b585e 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -193,6 +193,7 @@ static int wm_macro_end(wmOperator *op, int retval) if (retval & (OPERATOR_FINISHED|OPERATOR_CANCELLED)) { if (op->customdata) { MEM_freeN(op->customdata); + op->customdata = NULL; } } -- cgit v1.2.3 From 05258297356fc2366506ac5dacc3feb74dcbba35 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 4 Jan 2010 20:49:42 +0000 Subject: transform: Rotation operator now saves axis of rotation (when not using a constraint). Better for operator redo and tweak (would use a Z axis because of matrix init) Also fix crash in Translation operator redo and tweak (rv3d is not always available). --- source/blender/editors/transform/transform.c | 35 ++++++++++++++++-------- source/blender/editors/transform/transform.h | 2 ++ source/blender/editors/transform/transform_ops.c | 13 +++++++++ 3 files changed, 39 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 7de2006a35c..e8e7e323496 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1384,6 +1384,11 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) RNA_float_set(op->ptr, "proportional_size", t->prop_size); } + if (RNA_struct_find_property(op->ptr, "axis")) + { + RNA_float_set_array(op->ptr, "axis", t->axis); + } + if (RNA_struct_find_property(op->ptr, "mirror")) { RNA_boolean_set(op->ptr, "mirror", t->flag & T_MIRROR); @@ -1577,6 +1582,13 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int t->flag |= T_AUTOVALUES; } + /* Transformation axis from operator */ + if (RNA_struct_find_property(op->ptr, "axis") && RNA_property_is_set(op->ptr, "axis")) + { + RNA_float_get_array(op->ptr, "axis", t->axis); + normalize_v3(t->axis); + } + /* Constraint init from operator */ if (RNA_struct_find_property(op->ptr, "constraint_axis") && RNA_property_is_set(op->ptr, "constraint_axis")) { @@ -2662,6 +2674,10 @@ void initRotation(TransInfo *t) if (t->flag & T_2D_EDIT) t->flag |= T_NO_CONSTRAINT; + + VECCOPY(t->axis, t->viewinv[2]); + mul_v3_fl(t->axis, -1.0f); + normalize_v3(t->axis); } static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short around) { @@ -2906,13 +2922,8 @@ int Rotation(TransInfo *t, short mval[2]) float final; - float axis[3]; float mat[3][3]; - VECCOPY(axis, t->viewinv[2]); - mul_v3_fl(axis, -1.0f); - normalize_v3(axis); - final = t->values[0]; applyNDofInput(&t->ndof, &final); @@ -2920,7 +2931,7 @@ int Rotation(TransInfo *t, short mval[2]) snapGrid(t, &final); if (t->con.applyRot) { - t->con.applyRot(t, NULL, axis, &final); + t->con.applyRot(t, NULL, t->axis, &final); } applySnapping(t, &final); @@ -2947,13 +2958,13 @@ int Rotation(TransInfo *t, short mval[2]) sprintf(str, "Rot: %.2f%s %s", 180.0*final/M_PI, t->con.text, t->proptext); } - vec_rot_to_mat3( mat,axis, final); + vec_rot_to_mat3( mat, t->axis, final); // TRANSFORM_FIX_ME // t->values[0] = final; // used in manipulator // copy_m3_m3(t->mat, mat); // used in manipulator - applyRotation(t, final, axis); + applyRotation(t, final, t->axis); recalcData(t); @@ -3085,9 +3096,11 @@ void initTranslation(TransInfo *t) if(t->spacetype == SPACE_VIEW3D) { RegionView3D *rv3d = t->ar->regiondata; - t->snap[0] = 0.0f; - t->snap[1] = rv3d->gridview * 1.0f; - t->snap[2] = t->snap[1] * 0.1f; + if (rv3d) { + t->snap[0] = 0.0f; + t->snap[1] = rv3d->gridview * 1.0f; + t->snap[2] = t->snap[1] * 0.1f; + } } else if(t->spacetype == SPACE_IMAGE) { t->snap[0] = 0.0f; diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 72d970c967a..fd4f67f4f27 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -315,6 +315,8 @@ typedef struct TransInfo { float values[4]; float auto_values[4]; + float axis[3]; + void *view; struct ScrArea *sa; struct ARegion *ar; diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 4c118aa2625..1ef0bdb0e05 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -385,6 +385,15 @@ void Properties_Proportional(struct wmOperatorType *ot) RNA_def_float(ot->srna, "proportional_size", 1, 0, FLT_MAX, "Proportional Size", "", 0, 100); } +void Properties_Axis(struct wmOperatorType *ot) +{ + PropertyRNA *prop; + + prop= RNA_def_property(ot->srna, "axis", PROP_FLOAT, PROP_DIRECTION); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Axis", "The axis around which the transformation occurs."); +} + void Properties_Snapping(struct wmOperatorType *ot, short fullsnap, short align) { RNA_def_boolean(ot->srna, "snap", 0, "Use Snapping Options", ""); @@ -504,6 +513,8 @@ void TRANSFORM_OT_rotate(struct wmOperatorType *ot) RNA_def_float_rotation(ot->srna, "value", 1, NULL, -FLT_MAX, FLT_MAX, "Angle", "", -M_PI*2, M_PI*2); + Properties_Axis(ot); + Properties_Proportional(ot); RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", ""); @@ -757,6 +768,8 @@ void TRANSFORM_OT_transform(struct wmOperatorType *ot) RNA_def_float_vector(ot->srna, "value", 4, NULL, -FLT_MAX, FLT_MAX, "Values", "", -FLT_MAX, FLT_MAX); + Properties_Axis(ot); + Properties_Proportional(ot); RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", ""); -- cgit v1.2.3 From bed3c5254ffd4dc617e4a91cfc3666141812304f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 20:53:52 +0000 Subject: pyrna array slice assignment - accept any sequence - disallow deleting & resizing via slices --- source/blender/python/intern/bpy_rna.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 1a08538ff0c..ddc221aa2e8 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1181,15 +1181,25 @@ static PyObject *pyrna_prop_subscript( BPy_PropertyRNA *self, PyObject *key ) } /* could call (pyrna_py_to_prop_index(self, i, value) in a loop but it is slow */ -static int prop_subscript_ass_array_slice(PointerRNA *ptr, PropertyRNA *prop, int start, int stop, int length, PyObject *value) +static int prop_subscript_ass_array_slice(PointerRNA *ptr, PropertyRNA *prop, int start, int stop, int length, PyObject *value_orig) { + PyObject *value; int count; void *values_alloc= NULL; int ret= 0; - - /* TODO - fast list ? */ - if(!PyList_Check(value)) { - PyErr_Format(PyExc_TypeError, "invalid slice assignment, exitected a list instead of %.200s instance.", Py_TYPE(value)->tp_name); + + if(value_orig == NULL) { + PyErr_SetString(PyExc_TypeError, "invalid slice assignment, deleting with list types is not supported by StructRNA."); + return -1; + } + + if(!(value=PySequence_Fast(value_orig, "invalid slice assignment, type is not a sequence"))) { + return -1; + } + + if(PySequence_Fast_GET_SIZE(value) != stop-start) { + Py_DECREF(value); + PyErr_SetString(PyExc_TypeError, "invalid slice assignment, resizing StructRNA arrays isn't supported."); return -1; } @@ -1204,7 +1214,7 @@ static int prop_subscript_ass_array_slice(PointerRNA *ptr, PropertyRNA *prop, in RNA_property_float_get_array(ptr, prop, values); for(count=start; count Date: Mon, 4 Jan 2010 21:15:45 +0000 Subject: Durian Request: Drivers Recode Highlights: * Support for Multi-Target Variables This was the main reason for this recode. Previously, variables could only be used to give some RNA property used as an input source to the driver a name. However, this meant that effects such as Rotational Difference couldn't be used in conjunction with other effects and/or settings to achieve the powerful results. Now, a variable can take several input targets, perform some interesting operations on them, and spit out a representative value based on that. * New Variable Types With the introduction of multi-target variables, there are now 3 types of variable that can be used: single property (i.e. the only type previously), Rotational Difference (angle between two bones), and Distance (distance between two objects or bones). * New Driver Types In addition to the existing 'Average', 'Sum', and 'Expression' types, there is now the additional options of 'Minimum' and 'Maximum'. These take the smallest/largest value that one of the variables evaluates to. * Fix for Driver F-Curve colouring bug Newly added drivers did not get automatically coloured in the Graph Editor properly. Was caused by inappropriate notifiers being used. Notes: * This commit breaks existing 2.5 files with drivers (in other words, they are lost forever). * Rigify has been corrected to work with the new system. The PyAPI for accessing targets used for the variables could still be made nicer (using subclassing to directly access?), but that is left for later. * Version patching for 2.49 files still needs to be put back in place. --- source/blender/blenkernel/BKE_fcurve.h | 34 +- source/blender/blenkernel/intern/anim_sys.c | 26 +- source/blender/blenkernel/intern/depsgraph.c | 49 +- source/blender/blenkernel/intern/fcurve.c | 549 ++++++++++++++------- source/blender/blenkernel/intern/ipo.c | 10 +- source/blender/blenkernel/intern/object.c | 17 +- source/blender/blenloader/intern/readfile.c | 46 +- source/blender/blenloader/intern/writefile.c | 21 +- source/blender/editors/animation/drivers.c | 6 +- source/blender/editors/space_graph/graph_buttons.c | 192 +++++-- source/blender/editors/space_outliner/outliner.c | 22 +- source/blender/makesdna/DNA_anim_types.h | 80 ++- source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/rna_fcurve.c | 129 +++-- source/blender/python/intern/bpy_driver.c | 22 +- source/blender/windowmanager/WM_types.h | 5 +- 16 files changed, 853 insertions(+), 356 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_fcurve.h b/source/blender/blenkernel/BKE_fcurve.h index fa6b8969edb..d3457a5f5ae 100644 --- a/source/blender/blenkernel/BKE_fcurve.h +++ b/source/blender/blenkernel/BKE_fcurve.h @@ -31,6 +31,7 @@ struct FCurve; struct FModifier; struct ChannelDriver; +struct DriverVar; struct DriverTarget; struct BezTriple; @@ -40,7 +41,6 @@ struct StructRNA; /* ************** Keyframe Tools ***************** */ -// XXX this stuff is defined in BKE_ipo.h too, so maybe skip for now? typedef struct CfraElem { struct CfraElem *next, *prev; float cfra; @@ -51,13 +51,39 @@ void bezt_add_to_cfra_elem(ListBase *lb, struct BezTriple *bezt); /* ************** F-Curve Drivers ***************** */ +/* With these iterators for convenience, the variables "tarIndex" and "dtar" can be + * accessed directly from the code using them, but it is not recommended that their + * values be changed to point at other slots... + */ + +/* convenience looper over ALL driver targets for a given variable (even the unused ones) */ +#define DRIVER_TARGETS_LOOPER(dvar) \ + { \ + DriverTarget *dtar= &dvar->targets[0]; \ + int tarIndex= 0; \ + for (; tarIndex < MAX_DRIVER_TARGETS; tarIndex++, dtar++) + +/* convenience looper over USED driver targets only */ +#define DRIVER_TARGETS_USED_LOOPER(dvar) \ + { \ + DriverTarget *dtar= &dvar->targets[0]; \ + int tarIndex= 0; \ + for (; tarIndex < dvar->num_targets; tarIndex++, dtar++) + +/* tidy up for driver targets loopers */ +#define DRIVER_TARGETS_LOOPER_END \ + } + +/* ---------------------- */ + void fcurve_free_driver(struct FCurve *fcu); struct ChannelDriver *fcurve_copy_driver(struct ChannelDriver *driver); -void driver_free_target(struct ChannelDriver *driver, struct DriverTarget *dtar); -struct DriverTarget *driver_add_new_target(struct ChannelDriver *driver); +void driver_free_variable(struct ChannelDriver *driver, struct DriverVar *dvar); +void driver_change_variable_type(struct DriverVar *dvar, int type); +struct DriverVar *driver_add_new_variable(struct ChannelDriver *driver); -float driver_get_target_value(struct ChannelDriver *driver, struct DriverTarget *dtar); +float driver_get_variable_value (struct ChannelDriver *driver, struct DriverVar *dvar); /* ************** F-Curve Modifiers *************** */ diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 4f96b031daa..4c63c64ccb9 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -319,16 +319,32 @@ static void fcurves_path_rename_fix (ID *owner_id, char *prefix, char *oldName, /* we need to check every curve... */ for (fcu= curves->first; fcu; fcu= fcu->next) { /* firstly, handle the F-Curve's own path */ - fcu->rna_path= rna_path_rename_fix(owner_id, prefix, oldName, newName, fcu->rna_path); + if (fcu->rna_path) + fcu->rna_path= rna_path_rename_fix(owner_id, prefix, oldName, newName, fcu->rna_path); /* driver? */ if (fcu->driver) { ChannelDriver *driver= fcu->driver; - DriverTarget *dtar; + DriverVar *dvar; - /* driver targets */ - for (dtar= driver->targets.first; dtar; dtar=dtar->next) { - dtar->rna_path= rna_path_rename_fix(dtar->id, prefix, oldName, newName, dtar->rna_path); + /* driver variables */ + for (dvar= driver->variables.first; dvar; dvar=dvar->next) { + /* all targets (even unused ones) */ + // XXX maybe we only need to modify the used ones, since the others can be manually fixed anyways + DRIVER_TARGETS_LOOPER(dvar) + { + /* rename RNA path */ + if (dtar->rna_path) + dtar->rna_path= rna_path_rename_fix(dtar->id, prefix, oldName, newName, dtar->rna_path); + + /* also fix the bone-name (if applicable) */ + if ( ((dtar->id) && (GS(dtar->id->name) == ID_OB)) && + (dtar->pchan_name[0]) && (strcmp(oldName, dtar->pchan_name)==0) ) + { + BLI_strncpy(dtar->pchan_name, newName, sizeof(dtar->pchan_name)); + } + } + DRIVER_TARGETS_LOOPER_END } } } diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 2f08abd82b3..e664dd01f4d 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -68,6 +68,7 @@ #include "BKE_animsys.h" #include "BKE_action.h" #include "BKE_effect.h" +#include "BKE_fcurve.h" #include "BKE_global.h" #include "BKE_group.h" #include "BKE_key.h" @@ -316,28 +317,38 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { ChannelDriver *driver= fcu->driver; - DriverTarget *dtar; + DriverVar *dvar; - /* loop over targets, adding relationships as appropriate */ - for (dtar= driver->targets.first; dtar; dtar= dtar->next) { - if (dtar->id) { - if (GS(dtar->id->name)==ID_OB) { - Object *ob= (Object *)dtar->id; - - /* normal channel-drives-channel */ - node1 = dag_get_node(dag, dtar->id); - - /* check if bone... */ - if ((ob->type==OB_ARMATURE) && dtar->rna_path && strstr(dtar->rna_path, "pose.bones[")) - dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); - /* check if ob data */ - else if (dtar->rna_path && strstr(dtar->rna_path, "data.")) - dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); - /* normal */ - else - dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Driver"); + /* loop over variables to get the target relationships */ + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + /* only used targets */ + DRIVER_TARGETS_USED_LOOPER(dvar) + { + if (dtar->id) { + // FIXME: other data types need to be added here so that they can work! + if (GS(dtar->id->name)==ID_OB) { + Object *ob= (Object *)dtar->id; + + /* normal channel-drives-channel */ + node1 = dag_get_node(dag, dtar->id); + + /* check if bone... */ + if ((ob->type==OB_ARMATURE) && + ( ((dtar->rna_path) && strstr(dtar->rna_path, "pose.bones[")) || + ((dtar->flag & DTAR_FLAG_STRUCT_REF) && (dtar->pchan_name[0])) )) + { + dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); + } + /* check if ob data */ + else if (dtar->rna_path && strstr(dtar->rna_path, "data.")) + dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver"); + /* normal */ + else + dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Driver"); + } } } + DRIVER_TARGETS_LOOPER_END } } } diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index d5e033652a8..9e84727fbf1 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -41,6 +41,7 @@ #include "MEM_guardedalloc.h" #include "DNA_anim_types.h" +#include "DNA_object_types.h" #include "BLI_blenlib.h" #include "BLI_math.h" @@ -48,6 +49,7 @@ #include "BKE_fcurve.h" #include "BKE_animsys.h" +#include "BKE_action.h" #include "BKE_curve.h" #include "BKE_global.h" @@ -735,108 +737,31 @@ short test_time_fcurve (FCurve *fcu) /* ***************************** Drivers ********************************* */ -/* Driver API --------------------------------- */ +/* Driver Variables --------------------------- */ -/* This frees the driver target itself */ -void driver_free_target (ChannelDriver *driver, DriverTarget *dtar) -{ - /* sanity checks */ - if (dtar == NULL) - return; - - /* free target vars */ - if (dtar->rna_path) - MEM_freeN(dtar->rna_path); +/* TypeInfo for Driver Variables (dvti) */ +typedef struct DriverVarTypeInfo { + /* evaluation callback */ + float (*get_value)(ChannelDriver *driver, DriverVar *dvar); - /* remove the target from the driver */ - if (driver) - BLI_freelinkN(&driver->targets, dtar); - else - MEM_freeN(dtar); -} + /* allocation of target slots */ + int num_targets; /* number of target slots required */ + char *target_names[MAX_DRIVER_TARGETS]; /* UI names that should be given to the slots */ + int target_flags[MAX_DRIVER_TARGETS]; /* flags defining the requirements for each slot */ +} DriverVarTypeInfo; -/* Add a new driver target variable */ -DriverTarget *driver_add_new_target (ChannelDriver *driver) -{ - DriverTarget *dtar; - - /* sanity checks */ - if (driver == NULL) - return NULL; - - /* make a new target */ - dtar= MEM_callocN(sizeof(DriverTarget), "DriverTarget"); - BLI_addtail(&driver->targets, dtar); - - /* make the default ID-type ID_OB, since most driver targets refer to objects */ - dtar->idtype= ID_OB; - - /* give the target a 'unique' name */ - strcpy(dtar->name, "var"); - BLI_uniquename(&driver->targets, dtar, "var", '_', offsetof(DriverTarget, name), 64); - - /* return the target */ - return dtar; -} - -/* This frees the driver itself */ -void fcurve_free_driver(FCurve *fcu) -{ - ChannelDriver *driver; - DriverTarget *dtar, *dtarn; - - /* sanity checks */ - if ELEM(NULL, fcu, fcu->driver) - return; - driver= fcu->driver; - - /* free driver targets */ - for (dtar= driver->targets.first; dtar; dtar= dtarn) { - dtarn= dtar->next; - driver_free_target(driver, dtar); - } - -#ifndef DISABLE_PYTHON - if(driver->expr_comp) - BPY_DECREF(driver->expr_comp); -#endif - - /* free driver itself, then set F-Curve's point to this to NULL (as the curve may still be used) */ - MEM_freeN(driver); - fcu->driver= NULL; -} - -/* This makes a copy of the given driver */ -ChannelDriver *fcurve_copy_driver (ChannelDriver *driver) -{ - ChannelDriver *ndriver; - DriverTarget *dtar; - - /* sanity checks */ - if (driver == NULL) - return NULL; - - /* copy all data */ - ndriver= MEM_dupallocN(driver); - - /* copy targets */ - ndriver->targets.first= ndriver->targets.last= NULL; - BLI_duplicatelist(&ndriver->targets, &driver->targets); +/* Macro to begin definitions */ +#define BEGIN_DVAR_TYPEDEF(type) \ + { - for (dtar= ndriver->targets.first; dtar; dtar= dtar->next) { - /* make a copy of target's rna path if available */ - if (dtar->rna_path) - dtar->rna_path = MEM_dupallocN(dtar->rna_path); +/* Macro to end definitions */ +#define END_DVAR_TYPEDEF \ } - - /* return the new driver */ - return ndriver; -} -/* Driver Evaluation -------------------------- */ +/* ......... */ /* Helper function to obtain a value using RNA from the specified source (for evaluating drivers) */ -float driver_get_target_value (ChannelDriver *driver, DriverTarget *dtar) +static float dtar_get_prop_val (ChannelDriver *driver, DriverTarget *dtar) { PointerRNA id_ptr, ptr; PropertyRNA *prop; @@ -853,22 +778,18 @@ float driver_get_target_value (ChannelDriver *driver, DriverTarget *dtar) RNA_id_pointer_create(dtar->id, &id_ptr); id= dtar->id; path= dtar->rna_path; - index= dtar->array_index; /* error check for missing pointer... */ + // TODO: tag the specific target too as having issues if (id == NULL) { - printf("Error: driver doesn't have any valid target to use \n"); - if (G.f & G_DEBUG) printf("\tpath = %s [%d] \n", path, index); + printf("Error: driver has an invalid target to use \n"); + if (G.f & G_DEBUG) printf("\tpath = %s\n", path); driver->flag |= DRIVER_FLAG_INVALID; return 0.0f; } /* get property to read from, and get value as appropriate */ if (RNA_path_resolve_full(&id_ptr, path, &ptr, &prop, &index)) { - /* for now, if there is no valid index, fall back to the array-index specified separately */ - if (index == -1) - index= dtar->array_index; - switch (RNA_property_type(prop)) { case PROP_BOOLEAN: if (RNA_property_array_length(&ptr, prop)) @@ -906,39 +827,326 @@ float driver_get_target_value (ChannelDriver *driver, DriverTarget *dtar) return value; } -/* Get two PoseChannels from the targets of the given Driver */ -static void driver_get_target_pchans2 (ChannelDriver *driver, bPoseChannel **pchan1, bPoseChannel **pchan2) +/* Helper function to obtain a pointer to a Pose Channel (for evaluating drivers) */ +static bPoseChannel *dtar_get_pchan_ptr (ChannelDriver *driver, DriverTarget *dtar) { - DriverTarget *dtar; - short i = 0; + /* sanity check */ + if ELEM(NULL, driver, dtar) + return NULL; + + /* check if the ID here is a valid object */ + if ((dtar->id) && GS(dtar->id->name)) { + Object *ob= (Object *)dtar->id; + + /* get pose, and subsequently, posechannel */ + return get_pose_channel(ob->pose, dtar->pchan_name); + } + else { + /* cannot find a posechannel this way */ + return NULL; + } +} + +/* ......... */ + +/* evaluate 'single prop' driver variable */ +static float dvar_eval_singleProp (ChannelDriver *driver, DriverVar *dvar) +{ + /* just evaluate the first target slot */ + return dtar_get_prop_val(driver, &dvar->targets[0]); +} + +/* evaluate 'rotation difference' driver variable */ +static float dvar_eval_rotDiff (ChannelDriver *driver, DriverVar *dvar) +{ + bPoseChannel *pchan, *pchan2; + float q1[4], q2[4], quat[4], angle; - /* before doing anything */ - *pchan1= NULL; - *pchan2= NULL; + /* get pose channels, and check if we've got two */ + pchan= dtar_get_pchan_ptr(driver, &dvar->targets[0]); + pchan2= dtar_get_pchan_ptr(driver, &dvar->targets[1]); - /* only take the first two targets */ - for (dtar= driver->targets.first; (dtar) && (i < 2); dtar=dtar->next, i++) { - PointerRNA id_ptr, ptr; - PropertyRNA *prop; + if (ELEM(NULL, pchan, pchan2)) { + /* disable this driver, since it doesn't work correctly... */ + driver->flag |= DRIVER_FLAG_INVALID; - /* get RNA-pointer for the ID-block given in target */ - if (dtar->id) - RNA_id_pointer_create(dtar->id, &id_ptr); - else - continue; + /* check what the error was */ + if ((pchan == NULL) && (pchan2 == NULL)) + printf("Driver Evaluation Error: Rotational difference failed - first 2 targets invalid \n"); + else if (pchan == NULL) + printf("Driver Evaluation Error: Rotational difference failed - first target not valid PoseChannel \n"); + else if (pchan2 == NULL) + printf("Driver Evaluation Error: Rotational difference failed - second target not valid PoseChannel \n"); + + /* stop here... */ + return 0.0f; + } + + /* use the final posed locations */ + mat4_to_quat(q1, pchan->pose_mat); + mat4_to_quat(q2, pchan2->pose_mat); + + invert_qt(q1); + mul_qt_qtqt(quat, q1, q2); + angle = 2.0f * (saacos(quat[0])); + angle= ABS(angle); + + return (angle > M_PI) ? (float)((2.0f * M_PI) - angle) : (float)(angle); +} + +/* evaluate 'location difference' driver variable */ +// TODO: this needs to take into account space conversions... +static float dvar_eval_locDiff (ChannelDriver *driver, DriverVar *dvar) +{ + float loc1[3] = {0.0f,0.0f,0.0f}; + float loc2[3] = {0.0f,0.0f,0.0f}; + + /* get two location values */ + // NOTE: for now, these are all just worldspace + DRIVER_TARGETS_USED_LOOPER(dvar) + { + /* get pointer to loc values to store in */ + Object *ob= (Object *)dtar->id; + bPoseChannel *pchan; + float tmp_loc[3]; - /* resolve path so that we have pointer to the right posechannel */ - if (RNA_path_resolve(&id_ptr, dtar->rna_path, &ptr, &prop)) { - /* is pointer valid (i.e. pointing to an actual posechannel */ - if ((ptr.type == &RNA_PoseBone) && (ptr.data)) { - /* first or second target? */ - if (i) - *pchan1= ptr.data; - else - *pchan2= ptr.data; - } + /* check if this target has valid data */ + if ((ob == NULL) || (GS(dtar->id->name) != ID_OB)) { + /* invalid target, so will not have enough targets */ + driver->flag |= DRIVER_FLAG_INVALID; + return 0.0f; + } + + /* try to get posechannel */ + pchan= get_pose_channel(ob->pose, dtar->pchan_name); + + /* check if object or bone */ + if (pchan) { + /* bone - need to convert to worldspace */ + VECCOPY(tmp_loc, pchan->pose_head); + mul_m4_v3(ob->obmat, tmp_loc); + } + else { + /* object, already in worldspace */ + VECCOPY(tmp_loc, ob->obmat[3]); + } + + /* copy the location to the right place */ + if (tarIndex) { + VECCOPY(loc2, tmp_loc); + } + else { + VECCOPY(loc1, tmp_loc); + } + } + DRIVER_TARGETS_LOOPER_END + + + /* if we're still here, there should now be two targets to use, + * so just take the length of the vector between these points + */ + return len_v3v3(loc1, loc2); +} + +/* ......... */ + +/* Table of Driver Varaiable Type Info Data */ +DriverVarTypeInfo dvar_types[MAX_DVAR_TYPES] = { + BEGIN_DVAR_TYPEDEF(DVAR_TYPE_SINGLE_PROP) + dvar_eval_singleProp, /* eval callback */ + 1, /* number of targets used */ + {"Property"}, /* UI names for targets */ + {0} /* flags */ + END_DVAR_TYPEDEF, + + BEGIN_DVAR_TYPEDEF(DVAR_TYPE_ROT_DIFF) + dvar_eval_rotDiff, /* eval callback */ + 2, /* number of targets used */ + {"Bone 1", "Bone 2"}, /* UI names for targets */ + {DTAR_FLAG_STRUCT_REF|DTAR_FLAG_ID_OB_ONLY, DTAR_FLAG_STRUCT_REF|DTAR_FLAG_ID_OB_ONLY} /* flags */ + END_DVAR_TYPEDEF, + + BEGIN_DVAR_TYPEDEF(DVAR_TYPE_LOC_DIFF) + dvar_eval_locDiff, /* eval callback */ + 2, /* number of targets used */ + {"Object/Bone 1", "Object/Bone 2"}, /* UI names for targets */ + {DTAR_FLAG_STRUCT_REF|DTAR_FLAG_ID_OB_ONLY, DTAR_FLAG_STRUCT_REF|DTAR_FLAG_ID_OB_ONLY} /* flags */ + END_DVAR_TYPEDEF +}; + +/* Get driver variable typeinfo */ +DriverVarTypeInfo *get_dvar_typeinfo (int type) +{ + /* check if valid type */ + if ((type >= 0) && (type < MAX_DVAR_TYPES)) + return &dvar_types[type]; + else + return NULL; +} + +/* Driver API --------------------------------- */ + +/* This frees the driver variable itself */ +void driver_free_variable (ChannelDriver *driver, DriverVar *dvar) +{ + /* sanity checks */ + if (dvar == NULL) + return; + + /* free target vars + * - need to go over all of them, not just up to the ones that are used + * currently, since there may be some lingering RNA paths from + * previous users needing freeing + */ + DRIVER_TARGETS_LOOPER(dvar) + { + /* free RNA path if applicable */ + if (dtar->rna_path) + MEM_freeN(dtar->rna_path); + } + DRIVER_TARGETS_LOOPER_END + + /* remove the variable from the driver */ + if (driver) + BLI_freelinkN(&driver->variables, dvar); + else + MEM_freeN(dvar); +} + +/* Change the type of driver variable */ +void driver_change_variable_type (DriverVar *dvar, int type) +{ + DriverVarTypeInfo *dvti= get_dvar_typeinfo(type); + + /* sanity check */ + if (ELEM(NULL, dvar, dvti)) + return; + + /* set the new settings */ + dvar->type= type; + dvar->num_targets= dvti->num_targets; + + /* make changes to the targets based on the defines for these types + * NOTE: only need to make sure the ones we're using here are valid... + */ + DRIVER_TARGETS_USED_LOOPER(dvar) + { + int flags = dvti->target_flags[tarIndex]; + + /* store the flags */ + dtar->flag = flags; + + /* object ID types only, or idtype not yet initialised*/ + if ((flags & DTAR_FLAG_ID_OB_ONLY) || (dtar->idtype == 0)) + dtar->idtype= ID_OB; + } + DRIVER_TARGETS_LOOPER_END +} + +/* Add a new driver variable */ +DriverVar *driver_add_new_variable (ChannelDriver *driver) +{ + DriverVar *dvar; + + /* sanity checks */ + if (driver == NULL) + return NULL; + + /* make a new variable */ + dvar= MEM_callocN(sizeof(DriverVar), "DriverVar"); + BLI_addtail(&driver->variables, dvar); + + /* give the variable a 'unique' name */ + strcpy(dvar->name, "var"); + BLI_uniquename(&driver->variables, dvar, "var", '_', offsetof(DriverVar, name), 64); + + /* set the default type to 'single prop' */ + driver_change_variable_type(dvar, DVAR_TYPE_SINGLE_PROP); + + /* return the target */ + return dvar; +} + +/* This frees the driver itself */ +void fcurve_free_driver(FCurve *fcu) +{ + ChannelDriver *driver; + DriverVar *dvar, *dvarn; + + /* sanity checks */ + if ELEM(NULL, fcu, fcu->driver) + return; + driver= fcu->driver; + + /* free driver targets */ + for (dvar= driver->variables.first; dvar; dvar= dvarn) { + dvarn= dvar->next; + driver_free_variable(driver, dvar); + } + +#ifndef DISABLE_PYTHON + /* free compiled driver expression */ + if (driver->expr_comp) + BPY_DECREF(driver->expr_comp); +#endif + + /* free driver itself, then set F-Curve's point to this to NULL (as the curve may still be used) */ + MEM_freeN(driver); + fcu->driver= NULL; +} + +/* This makes a copy of the given driver */ +ChannelDriver *fcurve_copy_driver (ChannelDriver *driver) +{ + ChannelDriver *ndriver; + DriverVar *dvar; + + /* sanity checks */ + if (driver == NULL) + return NULL; + + /* copy all data */ + ndriver= MEM_dupallocN(driver); + + /* copy variables */ + ndriver->variables.first= ndriver->variables.last= NULL; + BLI_duplicatelist(&ndriver->variables, &driver->variables); + + for (dvar= ndriver->variables.first; dvar; dvar= dvar->next) { + /* need to go over all targets so that we don't leave any dangling paths */ + DRIVER_TARGETS_LOOPER(dvar) + { + /* make a copy of target's rna path if available */ + if (dtar->rna_path) + dtar->rna_path = MEM_dupallocN(dtar->rna_path); } + DRIVER_TARGETS_LOOPER_END } + + /* return the new driver */ + return ndriver; +} + +/* Driver Evaluation -------------------------- */ + +/* Evaluate a Driver Variable to get a value that contributes to the final */ +float driver_get_variable_value (ChannelDriver *driver, DriverVar *dvar) +{ + DriverVarTypeInfo *dvti; + + /* sanity check */ + if (ELEM(NULL, driver, dvar)) + return 0.0f; + + /* call the relevant callbacks to get the variable value + * using the variable type info + */ + dvti= get_dvar_typeinfo(dvar->type); + + if (dvti && dvti->get_value) + return dvti->get_value(driver, dvar); + else + return 0.0f; } /* Evaluate an Channel-Driver to get a 'time' value to use instead of "evaltime" @@ -947,22 +1155,21 @@ static void driver_get_target_pchans2 (ChannelDriver *driver, bPoseChannel **pch */ static float evaluate_driver (ChannelDriver *driver, float evaltime) { - DriverTarget *dtar; + DriverVar *dvar; /* check if driver can be evaluated */ if (driver->flag & DRIVER_FLAG_INVALID) return 0.0f; - // TODO: the flags for individual targets need to be used too for more fine-grained support... switch (driver->type) { case DRIVER_TYPE_AVERAGE: /* average values of driver targets */ case DRIVER_TYPE_SUM: /* sum values of driver targets */ { - /* check how many targets there are first (i.e. just one?) */ - if (driver->targets.first == driver->targets.last) { + /* check how many variables there are first (i.e. just one?) */ + if (driver->variables.first == driver->variables.last) { /* just one target, so just use that */ - dtar= driver->targets.first; - return driver_get_target_value(driver, dtar); + dvar= driver->variables.first; + return driver_get_variable_value(driver, dvar); } else { /* more than one target, so average the values of the targets */ @@ -970,12 +1177,12 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime) float value = 0.0f; /* loop through targets, adding (hopefully we don't get any overflow!) */ - for (dtar= driver->targets.first; dtar; dtar=dtar->next) { - value += driver_get_target_value(driver, dtar); + for (dvar= driver->variables.first; dvar; dvar=dvar->next) { + value += driver_get_variable_value(driver, dvar); tot++; } - /* return the average of these */ + /* perform operations on the total if appropriate */ if (driver->type == DRIVER_TYPE_AVERAGE) return (value / (float)tot); else @@ -984,6 +1191,39 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime) } } break; + + case DRIVER_TYPE_MIN: /* smallest value */ + case DRIVER_TYPE_MAX: /* largest value */ + { + float value = 0.0f; + + /* loop through the variables, getting the values and comparing them to existing ones */ + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + /* get value */ + float tmp_val= driver_get_variable_value(driver, dvar); + + /* store this value if appropriate */ + if (dvar->prev) { + /* check if greater/smaller than the baseline */ + if (driver->type == DRIVER_TYPE_MAX) { + /* max? */ + if (tmp_val > value) + value= tmp_val; + } + else { + /* min? */ + if (tmp_val < value) + value= tmp_val; + } + } + else { + /* first item - make this the baseline for comparisons */ + value= tmp_val; + } + } + } + break; + case DRIVER_TYPE_PYTHON: /* expression */ { #ifndef DISABLE_PYTHON @@ -1001,43 +1241,6 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime) #endif /* DISABLE_PYTHON*/ } break; - - - case DRIVER_TYPE_ROTDIFF: /* difference of rotations of 2 bones (should ideally be in same armature) */ - { - bPoseChannel *pchan, *pchan2; - float q1[4], q2[4], quat[4], angle; - - /* get pose channels, and check if we've got two */ - driver_get_target_pchans2(driver, &pchan, &pchan2); - if (ELEM(NULL, pchan, pchan2)) { - /* disable this driver, since it doesn't work correctly... */ - driver->flag |= DRIVER_FLAG_INVALID; - - /* check what the error was */ - if ((pchan == NULL) && (pchan2 == NULL)) - printf("Driver Evaluation Error: Rotational difference failed - first 2 targets invalid \n"); - else if (pchan == NULL) - printf("Driver Evaluation Error: Rotational difference failed - first target not valid PoseChannel \n"); - else if (pchan2 == NULL) - printf("Driver Evaluation Error: Rotational difference failed - second target not valid PoseChannel \n"); - - /* stop here... */ - return 0.0f; - } - - /* use the final posed locations */ - mat4_to_quat(q1, pchan->pose_mat); - mat4_to_quat(q2, pchan2->pose_mat); - - invert_qt(q1); - mul_qt_qtqt(quat, q1, q2); - angle = 2.0f * (saacos(quat[0])); - angle= ABS(angle); - - return (angle > M_PI) ? (float)((2.0f * M_PI) - angle) : (float)(angle); - } - break; default: { diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 6fc3fc547df..988bd429185 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -969,7 +969,6 @@ static char *get_rna_access (int blocktype, int adrcode, char actname[], char co static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) { ChannelDriver *cdriver; - DriverTarget *dtar=NULL, *dtar2=NULL; /* allocate memory for new driver */ cdriver= MEM_callocN(sizeof(ChannelDriver), "ChannelDriver"); @@ -981,7 +980,10 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) cdriver->type = DRIVER_TYPE_PYTHON; strcpy(cdriver->expression, idriver->name); // XXX is this safe? } +#if 0 // XXX needs changes for the new system else { + DriverTarget *dtar=NULL, *dtar2=NULL; + /* what to store depends on the 'blocktype' (ID_OB or ID_PO - object or posechannel) */ if (idriver->blocktype == ID_AR) { /* ID_PO */ @@ -1058,6 +1060,7 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) dtar->rna_path= get_rna_access(ID_OB, idriver->adrcode, NULL, NULL, &dtar->array_index); } } +#endif // XXX fixme /* return the new one */ return cdriver; @@ -1288,8 +1291,9 @@ static void icu_to_fcurves (ListBase *groups, ListBase *list, IpoCurve *icu, cha * - need to go from degrees to radians... * - there's only really 1 target to worry about */ - if (fcu->driver && fcu->driver->targets.first) { - DriverTarget *dtar= fcu->driver->targets.first; + if (fcu->driver && fcu->driver->variables.first) { + DriverVar *dvar= fcu->driver->variables.first; + DriverTarget *dtar= &dvar->targets[0]; /* since drivers could only be for objects, we should just check for 'rotation' being * in the name of the path given diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 0f9198df263..762ad2432b0 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -1500,13 +1500,18 @@ void object_make_proxy(Object *ob, Object *target, Object *gob) for (fcu= ob->adt->drivers.first; fcu; fcu= fcu->next) { ChannelDriver *driver= fcu->driver; - DriverTarget *dtar; + DriverVar *dvar; - for (dtar= driver->targets.first; dtar; dtar= dtar->next) { - if ((Object *)dtar->id == target) - dtar->id= (ID *)ob; - else - id_lib_extern((ID *)dtar->id); + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + /* all drivers */ + DRIVER_TARGETS_LOOPER(dvar) + { + if ((Object *)dtar->id == target) + dtar->id= (ID *)ob; + else + id_lib_extern((ID *)dtar->id); + } + DRIVER_TARGETS_LOOPER_END } } } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 3e35250bd74..1eff6c8f8e3 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1699,10 +1699,19 @@ static void lib_link_fcurves(FileData *fd, ID *id, ListBase *list) /* driver data */ if (fcu->driver) { ChannelDriver *driver= fcu->driver; - DriverTarget *dtar; + DriverVar *dvar; - for (dtar= driver->targets.first; dtar; dtar= dtar->next) - dtar->id= newlibadr(fd, id->lib, dtar->id); + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + DRIVER_TARGETS_LOOPER(dvar) + { + /* only relink if still used */ + if (tarIndex < dvar->num_targets) + dtar->id= newlibadr(fd, id->lib, dtar->id); + else + dtar->id= NULL; + } + DRIVER_TARGETS_LOOPER_END + } } /* modifiers */ @@ -1770,12 +1779,21 @@ static void direct_link_fcurves(FileData *fd, ListBase *list) fcu->driver= newdataadr(fd, fcu->driver); if (fcu->driver) { ChannelDriver *driver= fcu->driver; - DriverTarget *dtar; + DriverVar *dvar; - /* relink targets and their paths */ - link_list(fd, &driver->targets); - for (dtar= driver->targets.first; dtar; dtar= dtar->next) - dtar->rna_path= newdataadr(fd, dtar->rna_path); + /* relink variables, targets and their paths */ + link_list(fd, &driver->variables); + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + DRIVER_TARGETS_LOOPER(dvar) + { + /* only relink the targets being used */ + if (tarIndex < dvar->num_targets) + dtar->rna_path= newdataadr(fd, dtar->rna_path); + else + dtar->rna_path= NULL; + } + DRIVER_TARGETS_LOOPER_END + } } /* modifiers */ @@ -10764,10 +10782,16 @@ static void expand_fcurves(FileData *fd, Main *mainvar, ListBase *list) /* Driver targets if there is a driver */ if (fcu->driver) { ChannelDriver *driver= fcu->driver; - DriverTarget *dtar; + DriverVar *dvar; - for (dtar= driver->targets.first; dtar; dtar= dtar->next) - expand_doit(fd, mainvar, dtar->id); + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + DRIVER_TARGETS_LOOPER(dvar) + { + // TODO: only expand those that are going to get used? + expand_doit(fd, mainvar, dtar->id); + } + DRIVER_TARGETS_LOOPER_END + } } /* F-Curve Modifiers */ diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 98d3dc5188a..061ed71d77e 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -932,22 +932,27 @@ static void write_fcurves(WriteData *wd, ListBase *fcurves) /* driver data */ if (fcu->driver) { ChannelDriver *driver= fcu->driver; - DriverTarget *dtar; + DriverVar *dvar; /* don't save compiled python bytecode */ void *expr_comp= driver->expr_comp; driver->expr_comp= NULL; - + writestruct(wd, DATA, "ChannelDriver", 1, driver); driver->expr_comp= expr_comp; /* restore */ - - /* targets */ - for (dtar= driver->targets.first; dtar; dtar= dtar->next) { - writestruct(wd, DATA, "DriverTarget", 1, dtar); + + + /* variables */ + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + writestruct(wd, DATA, "DriverVar", 1, dvar); - if (dtar->rna_path) - writedata(wd, DATA, strlen(dtar->rna_path)+1, dtar->rna_path); + DRIVER_TARGETS_USED_LOOPER(dvar) + { + if (dtar->rna_path) + writedata(wd, DATA, strlen(dtar->rna_path)+1, dtar->rna_path); + } + DRIVER_TARGETS_LOOPER_END } } diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index 59e52c0d489..b816ffbe905 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -404,8 +404,7 @@ static int add_driver_button_exec (bContext *C, wmOperator *op) /* send updates */ DAG_ids_flush_update(0); - /* for now, only send ND_KEYS for KeyingSets */ - WM_event_add_notifier(C, ND_KEYS, NULL); // XXX + WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX } return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED; @@ -468,8 +467,7 @@ static int remove_driver_button_exec (bContext *C, wmOperator *op) /* send updates */ DAG_ids_flush_update(0); - /* for now, only send ND_KEYS for KeyingSets */ - WM_event_add_notifier(C, ND_KEYS, NULL); // XXX + WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX } return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED; diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 3faba9bbba7..c42dfd0015d 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -264,18 +264,18 @@ static void driver_add_var_cb (bContext *C, void *driver_v, void *dummy_v) { ChannelDriver *driver= (ChannelDriver *)driver_v; - /* add a new var */ - driver_add_new_target(driver); + /* add a new variable */ + driver_add_new_variable(driver); } /* callback to remove target variable from active driver */ -static void driver_delete_var_cb (bContext *C, void *driver_v, void *dtar_v) +static void driver_delete_var_cb (bContext *C, void *driver_v, void *dvar_v) { ChannelDriver *driver= (ChannelDriver *)driver_v; - DriverTarget *dtar= (DriverTarget *)dtar_v; + DriverVar *dvar= (DriverVar *)dvar_v; - /* remove the active target */ - driver_free_target(driver, dtar); + /* remove the active variable */ + driver_free_variable(driver, dvar); } /* callback to reset the driver's flags */ @@ -301,13 +301,115 @@ static int graph_panel_drivers_poll(const bContext *C, PanelType *pt) } +/* settings for 'single property' driver variable type */ +static void graph_panel_driverVar__singleProp(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar) +{ + DriverTarget *dtar= &dvar->targets[0]; + PointerRNA dtar_ptr; + uiLayout *row, *col; + uiBlock *block; + + /* initialise RNA pointer to the target */ + RNA_pointer_create(id, &RNA_DriverTarget, dtar, &dtar_ptr); + + /* Target ID */ + row= uiLayoutRow(layout, 0); + uiTemplateAnyID(row, (bContext *)C, &dtar_ptr, "id", "id_type", "Value:"); + + /* Target Property */ + // TODO: make this less technical... + if (dtar->id) { + PointerRNA root_ptr; + + /* get pointer for resolving the property selected */ + RNA_id_pointer_create(dtar->id, &root_ptr); + + col= uiLayoutColumn(layout, 1); + block= uiLayoutGetBlock(col); + /* rna path */ + uiTemplatePathBuilder(col, (bContext *)C, &dtar_ptr, "data_path", &root_ptr, "Path"); + } +} + +/* settings for 'rotation difference' driver variable type */ +static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar) +{ + DriverTarget *dtar= &dvar->targets[0]; + DriverTarget *dtar2= &dvar->targets[1]; + Object *ob1 = (Object *)dtar->id; + Object *ob2 = (Object *)dtar2->id; + PointerRNA dtar_ptr, dtar2_ptr; + uiLayout *col; + + /* initialise RNA pointer to the target */ + RNA_pointer_create(id, &RNA_DriverTarget, dtar, &dtar_ptr); + RNA_pointer_create(id, &RNA_DriverTarget, dtar2, &dtar2_ptr); + + /* Bone 1 */ + col= uiLayoutColumn(layout, 1); + uiTemplateAnyID(col, (bContext *)C, &dtar_ptr, "id", "id_type", "Bone 1:"); + + if (dtar->id && ob1->pose) { + PointerRNA tar_ptr; + + RNA_pointer_create(dtar2->id, &RNA_Pose, ob1->pose, &tar_ptr); + uiItemPointerR(col, "", ICON_BONE_DATA, &dtar_ptr, "bone_target", &tar_ptr, "bones"); + } + + col= uiLayoutColumn(layout, 1); + uiTemplateAnyID(col, (bContext *)C, &dtar2_ptr, "id", "id_type", "Bone 2:"); + + if (dtar2->id && ob2->pose) { + PointerRNA tar_ptr; + + RNA_pointer_create(dtar2->id, &RNA_Pose, ob2->pose, &tar_ptr); + uiItemPointerR(col, "", ICON_BONE_DATA, &dtar2_ptr, "bone_target", &tar_ptr, "bones"); + } +} + +/* settings for 'rotation difference' driver variable type */ +static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar) +{ + DriverTarget *dtar= &dvar->targets[0]; + DriverTarget *dtar2= &dvar->targets[1]; + Object *ob1 = (Object *)dtar->id; + Object *ob2 = (Object *)dtar2->id; + PointerRNA dtar_ptr, dtar2_ptr; + uiLayout *col; + + /* initialise RNA pointer to the target */ + RNA_pointer_create(id, &RNA_DriverTarget, dtar, &dtar_ptr); + RNA_pointer_create(id, &RNA_DriverTarget, dtar2, &dtar2_ptr); + + /* Bone 1 */ + col= uiLayoutColumn(layout, 1); + uiTemplateAnyID(col, (bContext *)C, &dtar_ptr, "id", "id_type", "Ob/Bone 1:"); + + if (dtar->id && ob1->pose) { + PointerRNA tar_ptr; + + RNA_pointer_create(dtar2->id, &RNA_Pose, ob1->pose, &tar_ptr); + uiItemPointerR(col, "", ICON_BONE_DATA, &dtar_ptr, "bone_target", &tar_ptr, "bones"); + } + + col= uiLayoutColumn(layout, 1); + uiTemplateAnyID(col, (bContext *)C, &dtar2_ptr, "id", "id_type", "Ob/Bone 2:"); + + if (dtar2->id && ob2->pose) { + PointerRNA tar_ptr; + + RNA_pointer_create(dtar2->id, &RNA_Pose, ob2->pose, &tar_ptr); + uiItemPointerR(col, "", ICON_BONE_DATA, &dtar2_ptr, "bone_target", &tar_ptr, "bones"); + } +} + /* driver settings for active F-Curve (only for 'Drivers' mode) */ static void graph_panel_drivers(const bContext *C, Panel *pa) { bAnimListElem *ale; FCurve *fcu; ChannelDriver *driver; - DriverTarget *dtar; + DriverVar *dvar; PointerRNA driver_ptr; uiLayout *col; @@ -354,56 +456,54 @@ static void graph_panel_drivers(const bContext *C, Panel *pa) uiItemL(col, "ERROR: invalid target channel(s)", ICON_ERROR); } - /* add driver target variables */ + /* add driver variables */ col= uiLayoutColumn(pa->layout, 0); block= uiLayoutGetBlock(col); - but= uiDefBut(block, BUT, B_IPO_DEPCHANGE, "Add Target", 0, 0, 10*UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "Add a new target variable for this Driver"); + but= uiDefBut(block, BUT, B_IPO_DEPCHANGE, "Add Variable", 0, 0, 10*UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "Add a new target variable for this Driver"); uiButSetFunc(but, driver_add_var_cb, driver, NULL); /* loop over targets, drawing them */ - for (dtar= driver->targets.first; dtar; dtar= dtar->next) { - PointerRNA dtar_ptr; + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + PointerRNA dvar_ptr; uiLayout *box, *row; - /* panel holding the buttons */ - box= uiLayoutBox(pa->layout); - - /* first row context info for driver */ - RNA_pointer_create(ale->id, &RNA_DriverTarget, dtar, &dtar_ptr); - - row= uiLayoutRow(box, 0); - block= uiLayoutGetBlock(row); - /* variable name */ - uiItemR(row, "", 0, &dtar_ptr, "name", 0); - - /* remove button */ - but= uiDefIconBut(block, BUT, B_IPO_DEPCHANGE, ICON_X, 290, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0.0, 0.0, "Delete target variable."); - uiButSetFunc(but, driver_delete_var_cb, driver, dtar); - - - /* Target ID */ - row= uiLayoutRow(box, 0); - uiTemplateAnyID(row, (bContext *)C, &dtar_ptr, "id", "id_type", "Value:"); + /* sub-layout column for this variable's settings */ + col= uiLayoutColumn(pa->layout, 1); - /* Target Property */ - // TODO: make this less technical... - if (dtar->id) { - PointerRNA root_ptr; + /* header panel */ + box= uiLayoutBox(col); + /* first row context info for driver */ + RNA_pointer_create(ale->id, &RNA_DriverVariable, dvar, &dvar_ptr); - /* get pointer for resolving the property selected */ - RNA_id_pointer_create(dtar->id, &root_ptr); + row= uiLayoutRow(box, 0); + block= uiLayoutGetBlock(row); + /* variable name */ + uiItemR(row, "", 0, &dvar_ptr, "name", 0); + + /* remove button */ + uiBlockSetEmboss(block, UI_EMBOSSN); + but= uiDefIconBut(block, BUT, B_IPO_DEPCHANGE, ICON_X, 290, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0.0, 0.0, "Delete target variable."); + uiButSetFunc(but, driver_delete_var_cb, driver, dvar); + uiBlockSetEmboss(block, UI_EMBOSS); - col= uiLayoutColumn(box, 1); - block= uiLayoutGetBlock(col); - /* rna path */ - uiTemplatePathBuilder(col, (bContext *)C, &dtar_ptr, "data_path", &root_ptr, "Path"); + /* variable type */ + row= uiLayoutRow(box, 0); + uiItemR(row, "", 0, &dvar_ptr, "type", 0); - /* array index */ - // TODO: this needs selector which limits it to ok values - // NOTE: for for now, the array index box still gets shown when non-zero (i.e. for tweaking rigs as necessary) - if (dtar->array_index) - uiItemR(col, "Index", 0, &dtar_ptr, "array_index", 0); - } + /* variable type settings */ + box= uiLayoutBox(col); + /* controls to draw depends on the type of variable */ + switch (dvar->type) { + case DVAR_TYPE_SINGLE_PROP: /* single property */ + graph_panel_driverVar__singleProp(C, box, ale->id, dvar); + break; + case DVAR_TYPE_ROT_DIFF: /* rotational difference */ + graph_panel_driverVar__rotDiff(C, box, ale->id, dvar); + break; + case DVAR_TYPE_LOC_DIFF: /* location difference */ + graph_panel_driverVar__locDiff(C, box, ale->id, dvar); + break; + } } /* cleanup */ diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 1303168e78d..93b32086614 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -69,6 +69,7 @@ #include "BKE_context.h" #include "BKE_deform.h" #include "BKE_depsgraph.h" +#include "BKE_fcurve.h" #include "BKE_global.h" #include "BKE_group.h" #include "BKE_library.h" @@ -913,18 +914,25 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i TreeElement *ted= outliner_add_element(soops, &te->subtree, adt, te, TSE_DRIVER_BASE, 0); ID *lastadded= NULL; FCurve *fcu; - DriverTarget *dtar; ted->name= "Drivers"; for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { - if (fcu->driver && fcu->driver->targets.first) { - for (dtar= fcu->driver->targets.first; dtar; dtar= dtar->next) { - if (lastadded != dtar->id) { - // XXX this lastadded check is rather lame, and also fails quite badly... - outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0); - lastadded= dtar->id; + if (fcu->driver && fcu->driver->variables.first) { + ChannelDriver *driver= fcu->driver; + DriverVar *dvar; + + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + /* loop over all targets used here */ + DRIVER_TARGETS_USED_LOOPER(dvar) + { + if (lastadded != dtar->id) { + // XXX this lastadded check is rather lame, and also fails quite badly... + outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0); + lastadded= dtar->id; + } } + DRIVER_TARGETS_LOOPER_END } } } diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index dcb10d0f2cf..f2d4471607f 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -232,26 +232,72 @@ typedef enum eFMod_Noise_Modifications { /* Drivers -------------------------------------- */ -/* Driver Target +/* Driver Target (dtar) * - * A 'variable' for use as a target of the driver/expression. + * Defines how to access a dependency needed for a driver variable. + */ +typedef struct DriverTarget { + ID *id; /* ID-block which owns the target */ + + char *rna_path; /* target channel to use as driver value */ + char pchan_name[32]; /* name of the posebone to use (for certain types of variable only) */ + + int idtype; /* type of ID-block that this target can use */ + int flag; /* flags for the validity of the target (NOTE: these get reset everytime the types change) */ +} DriverTarget; + +/* Driver Target flags */ +typedef enum eDriverTarget_Flag { + /* used for targets that use the pchan_name instead of RNA path + * (i.e. rotation difference) + */ + DTAR_FLAG_STRUCT_REF = (1<<0), + /* idtype can only be 'Object' */ + DTAR_FLAG_ID_OB_ONLY = (1<<1), +} eDriverTarget_Flag; + +/* --- */ + +/* maximum number of driver targets per variable */ +// FIXME: make this get used below (for DriverVariable defines) if DNA supports preprocessor stuff.. +#define MAX_DRIVER_TARGETS 8 + + +/* Driver Variable (dvar) + * + * A 'variable' for use as an input for the driver evaluation. * Defines a way of accessing some channel to use, that can be * referred to in the expression as a variable, thus simplifying * expressions and also Depsgraph building. */ -typedef struct DriverTarget { - struct DriverTarget *next, *prev; +typedef struct DriverVar { + struct DriverVar *next, *prev; - ID *id; /* ID-block which owns the target */ - char *rna_path; /* target channel to use as driver value */ - int array_index; /* if applicable, the index of the RNA-array item to use as driver */ + char name[64]; /* name of the variable to use in py-expression (must be valid python identifier) */ - int idtype; /* type of ID-block that this target can use */ - int flags; /* flags for the validity of the target */ - int pad; + DriverTarget targets[8]; /* MAX_DRIVER_TARGETS - targets available for use for this type of variable */ + int num_targets; /* number of targets used by this variable */ - char name[64]; /* name of the variable */ -} DriverTarget; + int type; /* type of driver target (eDriverTarget_Types) */ +} DriverVar; + +/* Driver Variable Types */ +typedef enum eDriverVar_Types { + /* single RNA property */ + DVAR_TYPE_SINGLE_PROP = 0, + /* rotation difference (between 2 bones) */ + DVAR_TYPE_ROT_DIFF, + /* distance between objects/bones */ + DVAR_TYPE_LOC_DIFF, + + /* maximum number of variable types + * NOTE: this must always be th last item in this list, + * so add new types above this line + */ + MAX_DVAR_TYPES +} eDriverVar_Types; + +/* --- */ /* Channel Driver (i.e. Drivers / Expressions) (driver) * @@ -265,7 +311,7 @@ typedef struct DriverTarget { * evaluated in. This order is set by the Depsgraph's sorting stuff. */ typedef struct ChannelDriver { - ListBase targets; /* targets for this driver (i.e. list of DriverTarget) */ + ListBase variables; /* targets for this driver (i.e. list of DriverVar) */ /* python expression to execute (may call functions defined in an accessory file) * which relates the target 'variables' in some way to yield a single usable value @@ -287,10 +333,12 @@ typedef enum eDriver_Types { DRIVER_TYPE_AVERAGE = 0, /* python expression/function relates targets */ DRIVER_TYPE_PYTHON, - /* rotational difference (must use rotation channels only) */ - DRIVER_TYPE_ROTDIFF, /* sum of all values */ DRIVER_TYPE_SUM, + /* smallest value */ + DRIVER_TYPE_MIN, + /* largest value */ + DRIVER_TYPE_MAX, } eDriver_Types; /* driver flags */ @@ -301,7 +349,7 @@ typedef enum eDriver_Flags { DRIVER_FLAG_RECALC = (1<<1), /* driver does replace value, but overrides (for layering of animation over driver) */ // TODO: this needs to be implemented at some stage or left out... - DRIVER_FLAG_LAYERING = (1<<2), + //DRIVER_FLAG_LAYERING = (1<<2), /* use when the expression needs to be recompiled */ DRIVER_FLAG_RECOMPILE = (1<<3), } eDriver_Flags; diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index e631e037e74..5697747fcab 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -182,6 +182,7 @@ extern StructRNA RNA_DistortedNoiseTexture; extern StructRNA RNA_DomainFluidSettings; extern StructRNA RNA_Driver; extern StructRNA RNA_DriverTarget; +extern StructRNA RNA_DriverVariable; extern StructRNA RNA_DupliObject; extern StructRNA RNA_EdgeSplitModifier; extern StructRNA RNA_EditBone; diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 62ee19df352..10fece3391f 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -116,10 +116,12 @@ static void rna_DriverTarget_update_data(Main *bmain, Scene *scene, PointerRNA * AnimData *adt= BKE_animdata_from_id(ptr->id.data); /* find the driver this belongs to and update it */ - for(fcu=adt->drivers.first; fcu; fcu=fcu->next) { + for (fcu=adt->drivers.first; fcu; fcu=fcu->next) { driver= fcu->driver; - - if(driver && BLI_findindex(&driver->targets, ptr->data) != -1) { + + if (driver) { + // FIXME: need to be able to search targets for required one... + //BLI_findindex(&driver->targets, ptr->data) != -1) RNA_pointer_create(ptr->id.data, &RNA_Driver, driver, &driverptr); rna_ChannelDriver_update_data(bmain, scene, &driverptr); return; @@ -185,6 +187,14 @@ static void rna_DriverTarget_RnaPath_set(PointerRNA *ptr, const char *value) dtar->rna_path= NULL; } +static void rna_DriverVariable_type_set(PointerRNA *ptr, int value) +{ + DriverVar *dvar= (DriverVar *)ptr->data; + + /* call the API function for this */ + driver_change_variable_type(dvar, value); +} + /* ****************************** */ static void rna_FCurve_RnaPath_get(PointerRNA *ptr, char *value) @@ -220,15 +230,16 @@ static void rna_FCurve_RnaPath_set(PointerRNA *ptr, const char *value) fcu->rna_path= NULL; } -DriverTarget *rna_Driver_new_target(ChannelDriver *driver) +DriverVar *rna_Driver_new_variable(ChannelDriver *driver) { - return driver_add_new_target(driver); + /* call the API function for this */ + return driver_add_new_variable(driver); } -void rna_Driver_remove_target(ChannelDriver *driver, DriverTarget *dtar) +void rna_Driver_remove_variable(ChannelDriver *driver, DriverVar *dvar) { /* call the API function for this */ - driver_free_target(driver, dtar); + driver_free_variable(driver, dvar); } @@ -677,13 +688,7 @@ static void rna_def_drivertarget(BlenderRNA *brna) PropertyRNA *prop; srna= RNA_def_struct(brna, "DriverTarget", NULL); - RNA_def_struct_ui_text(srna, "Driver Target", "Variable from some source/target for driver relationship."); - - /* Variable Name */ - prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); - RNA_def_struct_name_property(srna, prop); - RNA_def_property_ui_text(prop, "Name", "Name to use in scripted expressions/functions. (No spaces or dots are allowed. Also, must not start with a symbol or digit)"); - RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); + RNA_def_struct_ui_text(srna, "Driver Target", "Source of input values for driver variables."); /* Target Properties - ID-block to Drive */ prop= RNA_def_property(srna, "id", PROP_POINTER, PROP_NONE); @@ -698,6 +703,7 @@ static void rna_def_drivertarget(BlenderRNA *brna) RNA_def_property_enum_sdna(prop, NULL, "idtype"); RNA_def_property_enum_items(prop, id_type_items); RNA_def_property_enum_default(prop, ID_OB); + // XXX need to add an 'editable func' for this, in the case where certain flags are set already... RNA_def_property_enum_funcs(prop, NULL, "rna_DriverTarget_id_type_set", NULL); RNA_def_property_ui_text(prop, "ID Type", "Type of ID-block that can be used."); RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); @@ -708,41 +714,78 @@ static void rna_def_drivertarget(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Data Path", "RNA Path (from Object) to property used"); RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); - prop= RNA_def_property(srna, "array_index", PROP_INT, PROP_NONE); - RNA_def_property_ui_text(prop, "RNA Array Index", "Index to the specific property used (if applicable)"); + prop= RNA_def_property(srna, "bone_target", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "pchan_name"); + RNA_def_property_ui_text(prop, "Bone Name", "Name of PoseBone to use as target."); RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); } +static void rna_def_drivervar(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + static EnumPropertyItem prop_type_items[] = { + {DVAR_TYPE_SINGLE_PROP, "SINGLE_PROP", 0, "Single Property", "Use the value from some RNA property (Default)"}, + {DVAR_TYPE_ROT_DIFF, "ROTATION_DIFF", 0, "Rotational Difference", "Use the angle between two bones"}, + {DVAR_TYPE_LOC_DIFF, "LOC_DIFF", 0, "Distance", "Distance between two bones or "}, + {0, NULL, 0, NULL, NULL}}; + + + srna= RNA_def_struct(brna, "DriverVariable", NULL); + RNA_def_struct_sdna(srna, "DriverVar"); + RNA_def_struct_ui_text(srna, "Driver Variable", "Variable from some source/target for driver relationship."); + + /* Variable Name */ + prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); + RNA_def_struct_name_property(srna, prop); + RNA_def_property_ui_text(prop, "Name", "Name to use in scripted expressions/functions. (No spaces or dots are allowed. Also, must not start with a symbol or digit)"); + RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); // XXX + + /* Enums */ + prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, prop_type_items); + RNA_def_property_enum_funcs(prop, NULL, "rna_DriverVariable_type_set", NULL); + RNA_def_property_ui_text(prop, "Type", "Driver variable type."); + RNA_def_property_update(prop, 0, "rna_ChannelDriver_update_data"); // XXX + + /* Targets */ + // TODO: for nicer api, only expose the relevant props via subclassing, instead of exposing the collection of targets + prop= RNA_def_property(srna, "targets", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "targets", "num_targets"); + RNA_def_property_struct_type(prop, "DriverTarget"); + RNA_def_property_ui_text(prop, "Targets", "Sources of input data for evaluating this variable."); +} + -/* channeldriver.targets.* */ -static void rna_def_channeldriver_targets(BlenderRNA *brna, PropertyRNA *cprop) +/* channeldriver.variables.* */ +static void rna_def_channeldriver_variables(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; // PropertyRNA *prop; - + FunctionRNA *func; PropertyRNA *parm; - - RNA_def_property_srna(cprop, "ChannelDriverTargets"); - srna= RNA_def_struct(brna, "ChannelDriverTargets", NULL); + + RNA_def_property_srna(cprop, "ChannelDriverVariables"); + srna= RNA_def_struct(brna, "ChannelDriverVariables", NULL); RNA_def_struct_sdna(srna, "ChannelDriver"); - RNA_def_struct_ui_text(srna, "ChannelDriver Targets", "Collection of channel driver Targets."); - - - /* add target */ - func= RNA_def_function(srna, "new", "rna_Driver_new_target"); - RNA_def_function_ui_description(func, "Add a new target for the driver."); + RNA_def_struct_ui_text(srna, "ChannelDriver Variables", "Collection of channel driver Variables."); + + + /* add variable */ + func= RNA_def_function(srna, "new", "rna_Driver_new_variable"); + RNA_def_function_ui_description(func, "Add a new variable for the driver."); /* return type */ - parm= RNA_def_pointer(func, "target", "DriverTarget", "", "Newly created Driver Target."); + parm= RNA_def_pointer(func, "var", "DriverVariable", "", "Newly created Driver Variable."); RNA_def_function_return(func, parm); - /* remove target */ - func= RNA_def_function(srna, "remove", "rna_Driver_remove_target"); - RNA_def_function_ui_description(func, "Remove an existing target from the driver."); - /* target to remove*/ - parm= RNA_def_pointer(func, "target", "DriverTarget", "", "Target to remove from the driver."); + /* remove variable */ + func= RNA_def_function(srna, "remove", "rna_Driver_remove_variable"); + RNA_def_function_ui_description(func, "Remove an existing variable from the driver."); + /* target to remove */ + parm= RNA_def_pointer(func, "var", "DriverVariable", "", "Variable to remove from the driver."); RNA_def_property_flag(parm, PROP_REQUIRED); - } static void rna_def_channeldriver(BlenderRNA *brna) @@ -754,7 +797,8 @@ static void rna_def_channeldriver(BlenderRNA *brna) {DRIVER_TYPE_AVERAGE, "AVERAGE", 0, "Averaged Value", ""}, {DRIVER_TYPE_SUM, "SUM", 0, "Sum Values", ""}, {DRIVER_TYPE_PYTHON, "SCRIPTED", 0, "Scripted Expression", ""}, - {DRIVER_TYPE_ROTDIFF, "ROTDIFF", 0, "Rotational Difference", ""}, + {DRIVER_TYPE_MIN, "MIN", 0, "Minimum Value", ""}, + {DRIVER_TYPE_MAX, "MAX", 0, "Maximum Value", ""}, {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "Driver", NULL); @@ -764,7 +808,7 @@ static void rna_def_channeldriver(BlenderRNA *brna) /* Enums */ prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, prop_type_items); - RNA_def_property_ui_text(prop, "Type", "Driver types."); + RNA_def_property_ui_text(prop, "Type", "Driver type."); RNA_def_property_update(prop, 0, "rna_ChannelDriver_update_data"); /* String values */ @@ -773,11 +817,11 @@ static void rna_def_channeldriver(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_ChannelDriver_update_expr"); /* Collections */ - prop= RNA_def_property(srna, "targets", PROP_COLLECTION, PROP_NONE); - RNA_def_property_collection_sdna(prop, NULL, "targets", NULL); - RNA_def_property_struct_type(prop, "DriverTarget"); - RNA_def_property_ui_text(prop, "Target Variables", "Properties acting as targets for this driver."); - rna_def_channeldriver_targets(brna, prop); + prop= RNA_def_property(srna, "variables", PROP_COLLECTION, PROP_NONE); + RNA_def_property_collection_sdna(prop, NULL, "variables", NULL); + RNA_def_property_struct_type(prop, "DriverVariable"); + RNA_def_property_ui_text(prop, "Variables", "Properties acting as inputs for this driver."); + rna_def_channeldriver_variables(brna, prop); /* Functions */ RNA_api_drivers(srna); @@ -933,6 +977,7 @@ void RNA_def_fcurve(BlenderRNA *brna) rna_def_fpoint(brna); rna_def_drivertarget(brna); + rna_def_drivervar(brna); rna_def_channeldriver(brna); rna_def_fmodifier(brna); diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c index 76df28494ac..016aed70c31 100644 --- a/source/blender/python/intern/bpy_driver.c +++ b/source/blender/python/intern/bpy_driver.c @@ -147,7 +147,7 @@ float BPY_pydriver_eval (ChannelDriver *driver) PyObject *retval= NULL; PyGILState_STATE gilstate; - DriverTarget *dtar; + DriverVar *dvar; float result = 0.0f; /* default return */ char *expr = NULL; short targets_ok= 1; @@ -174,24 +174,24 @@ float BPY_pydriver_eval (ChannelDriver *driver) /* add target values to a dict that will be used as '__locals__' dict */ driver_vars = PyDict_New(); // XXX do we need to decref this? - for (dtar= driver->targets.first; dtar; dtar= dtar->next) { + for (dvar= driver->variables.first; dvar; dvar= dvar->next) { PyObject *driver_arg = NULL; float tval = 0.0f; - + /* try to get variable value */ - tval= driver_get_target_value(driver, dtar); + tval= driver_get_variable_value(driver, dvar); driver_arg= PyFloat_FromDouble((double)tval); - + /* try to add to dictionary */ - if (PyDict_SetItemString(driver_vars, dtar->name, driver_arg)) { + if (PyDict_SetItemString(driver_vars, dvar->name, driver_arg)) { /* this target failed - bad name */ if (targets_ok) { /* first one - print some extra info for easier identification */ fprintf(stderr, "\nBPY_pydriver_eval() - Error while evaluating PyDriver:\n"); targets_ok= 0; } - - fprintf(stderr, "\tBPY_pydriver_eval() - couldn't add variable '%s' to namespace \n", dtar->name); + + fprintf(stderr, "\tBPY_pydriver_eval() - couldn't add variable '%s' to namespace \n", dvar->name); // BPy_errors_to_report(NULL); // TODO - reports PyErr_Print(); PyErr_Clear(); @@ -202,12 +202,14 @@ float BPY_pydriver_eval (ChannelDriver *driver) /* execute expression to get a value */ retval = PyRun_String(expr, Py_eval_input, bpy_pydriver_Dict, driver_vars); #else - if(driver->flag & DRIVER_FLAG_RECOMPILE || driver->expr_comp==NULL) { + /* compile the expression first if it hasn't been compiled or needs to be rebuilt */ + if((driver->flag & DRIVER_FLAG_RECOMPILE) || (driver->expr_comp==NULL)) { Py_XDECREF(driver->expr_comp); driver->expr_comp= Py_CompileString(expr, "", Py_eval_input); driver->flag &= ~DRIVER_FLAG_RECOMPILE; } - if(driver->expr_comp) + /* evaluate the compiled expression */ + if (driver->expr_comp) retval= PyEval_EvalCode(driver->expr_comp, bpy_pydriver_Dict, driver_vars); #endif diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 78125954816..9f52cde27e1 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -213,11 +213,12 @@ typedef struct wmNotifier { #define ND_NLA_SELECT (75<<16) #define ND_NLA_EDIT (76<<16) #define ND_NLA_ACTCHANGE (77<<16) +#define ND_FCURVES_ORDER (78<<16) /* NC_GEOM Geometry */ /* Mesh, Curve, MetaBall, Armature, .. */ -#define ND_SELECT (80<<16) -#define ND_DATA (81<<16) +#define ND_SELECT (90<<16) +#define ND_DATA (91<<16) /* NC_NODE Nodes */ #define ND_NODE_SELECT (1<<16) -- cgit v1.2.3 From 7f03297fc8f3625bbad8ecc18d44b916536ca71f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 21:37:09 +0000 Subject: grease pencil 'Only Endpoints' option wasnt working when the entire zbuffer was filled. --- source/blender/editors/gpencil/gpencil_paint.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index 5efc9d916c1..371e73cfb9b 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -538,7 +538,7 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) for (i=gpd->sbuffer_size-1; i >= 0; i--) depth_arr[i] = 0.9999f; } - else if(interp_depth) { + else { if(p->gpd->flag & GP_DATA_DEPTH_STROKE_ENDPOINTS) { /* remove all info between the valid endpoints */ int first_valid = 0; @@ -557,9 +557,13 @@ static void gp_stroke_newfrombuffer (tGPsdata *p) /* invalidate non-endpoints, so only blend between first and last */ for (i=first_valid+1; i < last_valid; i++) depth_arr[i]= FLT_MAX; + + interp_depth= TRUE; } - interp_sparse_array(depth_arr, gpd->sbuffer_size, FLT_MAX); + if(interp_depth) { + interp_sparse_array(depth_arr, gpd->sbuffer_size, FLT_MAX); + } } } -- cgit v1.2.3 From e90b6eefb191693b0ffe1d5a0b1bc399fc5b0aef Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jan 2010 22:30:09 +0000 Subject: patch from Benoit Bolsee (ben2610) for 4 bugs in report [#20527] Several bugs in RNA from the report... # bug 1. UV properties are not raw editable but are reported # as RAW_TYPE_INT by RNA causing wrong conversion # internally (bpy_rna.c line 2205) # bug 2. raw update of UV coordinates crash blender (rna_access.c line 252) mtfaces.foreach_set("uv", rawuvs) # workaround: #for i in range(int(len(faces)/4)): # mtfaces[i].uv = uvs[i] # bug 3. raw update of non-array property fails (rna_access.c line 2270) mfaces.foreach_set("material_index", mats) # workaround: # for i in range(int(len(mfaces))): # mfaces[i].material_index = mats[i] # bug 4. It is not possible to add a vertex color layer using mesh API. me.add_vertex_color() # no workaround... --- source/blender/makesrna/RNA_types.h | 1 + source/blender/makesrna/intern/makesrna.c | 2 +- source/blender/makesrna/intern/rna_access.c | 77 ++++++++++++++++++++++++--- source/blender/makesrna/intern/rna_define.c | 2 + source/blender/makesrna/intern/rna_mesh.c | 6 +++ source/blender/makesrna/intern/rna_mesh_api.c | 11 ++++ source/blender/python/intern/bpy_rna.c | 9 +++- 7 files changed, 99 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 8cc949f628e..4e60fb413db 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -210,6 +210,7 @@ typedef struct CollectionPointerLink { } CollectionPointerLink; typedef enum RawPropertyType { + PROP_RAW_UNSET=-1, PROP_RAW_INT, // XXX - abused for types that are not set, eg. MFace.verts, needs fixing. PROP_RAW_SHORT, PROP_RAW_CHAR, diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index ca14acb4060..35515e76f48 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -1779,7 +1779,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr fprintf(f, "\t%s%s, %d, %s, %s,\n", (prop->flag & PROP_CONTEXT_UPDATE)? "(UpdateFunc)": "", rna_function_string(prop->update), prop->noteflag, rna_function_string(prop->editable), rna_function_string(prop->itemeditable)); if(prop->flag & PROP_RAW_ACCESS) rna_set_raw_offset(f, srna, prop); - else fprintf(f, "\t0, 0"); + else fprintf(f, "\t0, -1"); /* our own type - collections/arrays only */ if(prop->srna) fprintf(f, ", &RNA_%s", (char*)prop->srna); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index d8b31f4093e..61fdbb27507 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -249,7 +249,7 @@ static int rna_ensure_property_array_length(PointerRNA *ptr, PropertyRNA *prop) { if(prop->magic == RNA_MAGIC) { int arraylen[RNA_MAX_ARRAY_DIMENSION]; - return (prop->getlength)? prop->getlength(ptr, arraylen): prop->totarraylength; + return (prop->getlength && ptr->data)? prop->getlength(ptr, arraylen): prop->totarraylength; } else { IDProperty *idprop= (IDProperty*)prop; @@ -2266,8 +2266,9 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro /* try to access as raw array */ if(RNA_property_collection_raw_array(ptr, prop, itemprop, &out)) { - if(in.len != itemlen*out.len) { - BKE_reportf(reports, RPT_ERROR, "Array length mismatch (expected %d, got %d).", out.len*itemlen, in.len); + int arraylen = (itemlen == 0) ? 1 : itemlen; + if(in.len != arraylen*out.len) { + BKE_reportf(reports, RPT_ERROR, "Array length mismatch (expected %d, got %d).", out.len*arraylen, in.len); return 0; } @@ -2277,8 +2278,7 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro void *outp= out.array; int a, size; - itemlen= (itemlen == 0)? 1: itemlen; - size= RNA_raw_type_sizeof(out.type) * itemlen; + size= RNA_raw_type_sizeof(out.type) * arraylen; for(a=0; arawtype == PROP_RAW_UNSET) { + /* this property has no raw access, yet we try to provide a raw type to help building the array */ + switch (prop->type) { + case PROP_BOOLEAN: + return PROP_RAW_INT; + case PROP_INT: + return PROP_RAW_INT; + case PROP_FLOAT: + return PROP_RAW_FLOAT; + case PROP_ENUM: + return PROP_RAW_INT; + default: + break; + } + } return prop->rawtype; } diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 854776e8742..767752af0ea 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -931,6 +931,8 @@ PropertyRNA *RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier prop->subtype= subtype; prop->name= identifier; prop->description= ""; + /* a priori not raw editable */ + prop->rawtype = -1; if(type != PROP_COLLECTION && type != PROP_POINTER) { prop->flag= PROP_EDITABLE; diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index 56a1b170979..9f317ec6be1 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -1358,6 +1358,12 @@ static void rna_def_mtface(BlenderRNA *brna) RNA_def_property_float_funcs(prop, "rna_MeshTextureFace_uv_get", "rna_MeshTextureFace_uv_set", NULL); RNA_def_property_ui_text(prop, "UV", ""); RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); + + prop= RNA_def_property(srna, "uv_raw", PROP_FLOAT, PROP_NONE); + RNA_def_property_multi_array(prop, 2, uv_dim); + RNA_def_property_float_sdna(prop, NULL, "uv"); + RNA_def_property_ui_text(prop, "UV", "Fixed size UV coordinates array"); + } static void rna_def_msticky(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_mesh_api.c b/source/blender/makesrna/intern/rna_mesh_api.c index 52ff98f66f0..4fba65b4db8 100644 --- a/source/blender/makesrna/intern/rna_mesh_api.c +++ b/source/blender/makesrna/intern/rna_mesh_api.c @@ -43,6 +43,11 @@ static void rna_Mesh_uv_texture_add(struct Mesh *me, struct bContext *C) ED_mesh_uv_texture_add(C, NULL, NULL, me); } +static void rna_Mesh_vertex_color_add(struct Mesh *me, struct bContext *C) +{ + ED_mesh_color_add(C, NULL, NULL, me); +} + #else void RNA_api_mesh(StructRNA *srna) @@ -68,6 +73,10 @@ void RNA_api_mesh(StructRNA *srna) RNA_def_function_flag(func, FUNC_USE_CONTEXT); RNA_def_function_ui_description(func, "Add a UV texture layer to Mesh."); + func= RNA_def_function(srna, "add_vertex_color", "rna_Mesh_vertex_color_add"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + RNA_def_function_ui_description(func, "Add a vertex color layer to Mesh."); + func= RNA_def_function(srna, "calc_normals", "ED_mesh_calc_normals"); RNA_def_function_ui_description(func, "Calculate vertex normals."); @@ -79,6 +88,8 @@ void RNA_api_mesh(StructRNA *srna) RNA_def_function_ui_description(func, "Add a new material to Mesh."); parm= RNA_def_pointer(func, "material", "Material", "", "Material to add."); RNA_def_property_flag(parm, PROP_REQUIRED); + + } #endif diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index ddc221aa2e8..cd607961788 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2237,7 +2237,7 @@ static void foreach_attr_type( BPy_PropertyRNA *self, char *attr, RawPropertyType *raw_type, int *attr_tot, int *attr_signed ) { PropertyRNA *prop; - *raw_type= -1; + *raw_type= PROP_RAW_UNSET; *attr_tot= 0; *attr_signed= FALSE; @@ -2263,7 +2263,8 @@ static int foreach_parse_args( int target_tot; #endif - *size= *raw_type= *attr_tot= *attr_signed= FALSE; + *size= *attr_tot= *attr_signed= FALSE; + *raw_type= PROP_RAW_UNSET; if(!PyArg_ParseTuple(args, "sO", attr, seq) || (!PySequence_Check(*seq) && PyObject_CheckBuffer(*seq))) { PyErr_SetString( PyExc_TypeError, "foreach_get(attr, sequence) expects a string and a sequence" ); @@ -2296,6 +2297,10 @@ static int foreach_parse_args( #endif } + if (*size == 0) { + PyErr_SetString( PyExc_AttributeError, "attribute does not support foreach method" ); + return -1; + } return 0; } -- cgit v1.2.3 From 665011e4103d10c205aaf459ca168a20c2410448 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 5 Jan 2010 00:45:05 +0000 Subject: Fix for some confusing terminology: Window type -> Editor type Correct hierarchy of terminology should be: * Window (OS level window with borders) * Area (top level subdivision in Blender UI), containing an * Editor (actual UI functionality such as 3D View, Properties) * Region (subdivision of an area, i.e. a header, a properties panel or toolbar) --- source/blender/editors/screen/area.c | 8 ++++---- source/blender/editors/space_buttons/buttons_header.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index d9d76e963a3..c494afac79e 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -1107,10 +1107,10 @@ void ED_area_prevspace(bContext *C, ScrArea *sa) ED_area_tag_redraw(sa); } -static char *windowtype_pup(void) +static char *editortype_pup(void) { return( - "Window type:%t" + "Editor type:%t" "|3D View %x1" "|%l" @@ -1160,9 +1160,9 @@ int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco) int xco= 8; but= uiDefIconTextButC(block, ICONTEXTROW, 0, ICON_VIEW3D, - windowtype_pup(), xco, yco, XIC+10, YIC, + editortype_pup(), xco, yco, XIC+10, YIC, &(sa->butspacetype), 1.0, SPACEICONMAX, 0, 0, - "Displays Current Window Type. " + "Displays Current Editor Type. " "Click for menu of available types."); uiButSetFunc(but, spacefunc, NULL, NULL); diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c index 0fb7ea9283c..c9df1f76dd9 100644 --- a/source/blender/editors/space_buttons/buttons_header.c +++ b/source/blender/editors/space_buttons/buttons_header.c @@ -67,7 +67,7 @@ static void do_buttons_buttons(bContext *C, void *arg, int event) { SpaceButs *sbuts= CTX_wm_space_buts(C); - if(!sbuts) /* window type switch */ + if(!sbuts) /* editor type switch */ return; switch(event) { -- cgit v1.2.3 From 0b4627c5d66e7676ade8861086c04e37ab058f67 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 5 Jan 2010 01:59:37 +0000 Subject: More specific notifiers for preview render jobs --- source/blender/editors/render/render_preview.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 74e1cca5579..1e0393479b0 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -1094,6 +1094,20 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat } } +static int preview_notifier_id(ShaderPreview *sp) +{ + switch (GS(sp->id)) { + case ID_MA: + return NC_MATERIAL; + case ID_TE: + return NC_TEXTURE; + case ID_WO: + return NC_WORLD; + case ID_LA: + return NC_LAMP; + } +} + /* use same function for icon & shader, so the job manager does not run two of them at the same time. */ @@ -1128,7 +1142,7 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r /* setup job */ WM_jobs_customdata(steve, sp, shader_preview_free); - WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL); + WM_jobs_timer(steve, 0.1, preview_notifier_id(sp), preview_notifier_id(sp)); WM_jobs_callbacks(steve, common_preview_startjob, NULL, NULL); WM_jobs_start(CTX_wm_manager(C), steve); @@ -1154,7 +1168,7 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M /* setup job */ WM_jobs_customdata(steve, sp, shader_preview_free); - WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL); + WM_jobs_timer(steve, 0.1, preview_notifier_id(sp), preview_notifier_id(sp)); WM_jobs_callbacks(steve, common_preview_startjob, NULL, shader_preview_updatejob); WM_jobs_start(CTX_wm_manager(C), steve); -- cgit v1.2.3 From 02cf88464dd14621683299310bd11744eec0e916 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 5 Jan 2010 03:01:04 +0000 Subject: Macro used wrong length for idname (also use OP_MAX_TYPENAME more often so it doesn't blow up if changed) --- source/blender/makesdna/DNA_windowmanager_types.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index 48d67714f15..0b2d0255f02 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -182,7 +182,7 @@ typedef struct wmOperatorTypeMacro { struct wmOperatorTypeMacro *next, *prev; /* operator id */ - char idname[MAX_ID_NAME]; + char idname[OP_MAX_TYPENAME]; /* rna pointer to access properties, like keymap */ struct IDProperty *properties; /* operator properties, assigned to ptr->data and can be written to a file */ struct PointerRNA *ptr; @@ -194,7 +194,7 @@ typedef struct wmKeyMapItem { struct wmKeyMapItem *next, *prev; /* operator */ - char idname[64]; /* used to retrieve operator type pointer */ + char idname[OP_MAX_TYPENAME]; /* used to retrieve operator type pointer */ IDProperty *properties; /* operator properties, assigned to ptr->data and can be written to a file */ /* modal */ @@ -267,7 +267,7 @@ typedef struct wmOperator { struct wmOperator *next, *prev; /* saved */ - char idname[64]; /* used to retrieve type pointer */ + char idname[OP_MAX_TYPENAME];/* used to retrieve type pointer */ IDProperty *properties; /* saved, user-settable properties */ /* runtime */ -- cgit v1.2.3 From 5838c800382502b8c4bfc819812a0d7cacf9ccda Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 5 Jan 2010 03:06:02 +0000 Subject: More "Window" terminology corrections --- source/blender/editors/screen/screen_ops.c | 4 ++-- source/blender/makesrna/intern/rna_action.c | 2 +- source/blender/makesrna/intern/rna_space.c | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index eb5f2885a3f..29d202e8631 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2262,9 +2262,9 @@ static int header_toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event) /* file browser should be fullscreen all the time, but other regions can be maximised/restored... */ if (sa->spacetype != SPACE_FILE) { if (sa->full) - uiItemO(layout, "Tile Window", 0, "SCREEN_OT_screen_full_area"); + uiItemO(layout, "Tile Area", 0, "SCREEN_OT_screen_full_area"); else - uiItemO(layout, "Maximize Window", 0, "SCREEN_OT_screen_full_area"); + uiItemO(layout, "Maximize Area", 0, "SCREEN_OT_screen_full_area"); } uiPupMenuEnd(C, pup); diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index 512e447f1c2..b9c5661b771 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -172,7 +172,7 @@ static void rna_def_dopesheet(BlenderRNA *brna) prop= RNA_def_property(srna, "collapse_summary", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", ADS_FLAG_SUMMARY_COLLAPSED); - RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden. (DopeSheet Window Editors Only)"); + RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden. (DopeSheet Editors Only)"); RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL); } diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 7ab01d5ef99..23a534562d0 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1481,37 +1481,37 @@ static void rna_def_space_time(BlenderRNA *brna) /* Define Anim Playback Areas */ prop= RNA_def_property(srna, "play_top_left", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_REGION); - RNA_def_property_ui_text(prop, "Top-Left 3D Window", ""); + RNA_def_property_ui_text(prop, "Top-Left 3D Editor", ""); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, "rna_SpaceTime_redraw_update"); prop= RNA_def_property(srna, "play_all_3d", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_ALL_3D_WIN); - RNA_def_property_ui_text(prop, "All 3D Windows", ""); + RNA_def_property_ui_text(prop, "All 3D View Editors", ""); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, "rna_SpaceTime_redraw_update"); prop= RNA_def_property(srna, "play_anim", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_ALL_ANIM_WIN); - RNA_def_property_ui_text(prop, "Animation Windows", ""); + RNA_def_property_ui_text(prop, "Animation Editors", ""); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, "rna_SpaceTime_redraw_update"); prop= RNA_def_property(srna, "play_buttons", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_ALL_BUTS_WIN); - RNA_def_property_ui_text(prop, "Properties Windows", ""); + RNA_def_property_ui_text(prop, "Property Editors", ""); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, "rna_SpaceTime_redraw_update"); prop= RNA_def_property(srna, "play_image", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_ALL_IMAGE_WIN); - RNA_def_property_ui_text(prop, "Image Windows", ""); + RNA_def_property_ui_text(prop, "Image Editors", ""); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, "rna_SpaceTime_redraw_update"); prop= RNA_def_property(srna, "play_sequencer", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_SEQ); - RNA_def_property_ui_text(prop, "Sequencer Windows", ""); + RNA_def_property_ui_text(prop, "Sequencer Editors", ""); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, "rna_SpaceTime_redraw_update"); prop= RNA_def_property(srna, "play_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "redraws", TIME_NODES); - RNA_def_property_ui_text(prop, "Node Windows", ""); + RNA_def_property_ui_text(prop, "Node Editors", ""); RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TIME, "rna_SpaceTime_redraw_update"); /* Other options */ -- cgit v1.2.3 From 3398dd032bab7f71555c29bc9faaa32274243229 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 5 Jan 2010 03:09:11 +0000 Subject: Added render layer 'enable' toggles for render layer list view --- source/blender/editors/interface/interface_templates.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/blender') diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index bbfd3a8786f..6b36e60fa6c 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2073,6 +2073,11 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe uiBlockSetEmboss(block, UI_EMBOSS); uiDefButR(block, OPTION, 0, "", 0, 0, UI_UNIT_X, UI_UNIT_Y, ptr, "use_textures", i, 0, 0, 0, 0, NULL); } + else if(RNA_struct_is_a(itemptr->type, &RNA_SceneRenderLayer)) { + uiItemL(sub, name, icon); + uiBlockSetEmboss(block, UI_EMBOSS); + uiDefButR(block, OPTION, 0, "", 0, 0, UI_UNIT_X, UI_UNIT_Y, itemptr, "enabled", 0, 0, 0, 0, 0, NULL); + } else if(itemptr->type == &RNA_ShapeKey) { ob= (Object*)activeptr->data; -- cgit v1.2.3 From 8f3db6bb241fbc7f01e0ce9f036007f77bf1b5e3 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 5 Jan 2010 03:26:11 +0000 Subject: Rename extrude macro "Extrude and Move" (less confusion with the Extrude operator that just creates geometry and doesn't move it) --- source/blender/editors/mesh/mesh_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index c41ac9f6550..8537d39fbd8 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -195,7 +195,7 @@ void ED_operatormacros_mesh(void) RNA_enum_set(otmacro->ptr, "constraint_orientation", V3D_MANIP_NORMAL); RNA_boolean_set_array(otmacro->ptr, "constraint_axis", constraint_axis); - ot= WM_operatortype_append_macro("MESH_OT_extrude_move", "Extrude", OPTYPE_UNDO|OPTYPE_REGISTER); + ot= WM_operatortype_append_macro("MESH_OT_extrude_move", "Extrude and Move", OPTYPE_UNDO|OPTYPE_REGISTER); WM_operatortype_macro_define(ot, "MESH_OT_extrude"); otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); RNA_enum_set(otmacro->ptr, "proportional", 0); -- cgit v1.2.3 From 22c32973e73363b7179303d601f59bd5c4d17d45 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 5 Jan 2010 03:29:41 +0000 Subject: IDGroup utility function to copy a group inside another one --- source/blender/blenkernel/BKE_idprop.h | 5 +++++ source/blender/blenkernel/intern/idprop.c | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_idprop.h b/source/blender/blenkernel/BKE_idprop.h index 9c7460851cb..7981fadccb6 100644 --- a/source/blender/blenkernel/BKE_idprop.h +++ b/source/blender/blenkernel/BKE_idprop.h @@ -82,6 +82,11 @@ void IDP_UnlinkID(struct IDProperty *prop); /*-------- Group Functions -------*/ +/* + replaces all properties with the same name in a destination group from a source group. +*/ +void IDP_ReplaceGroupInGroup(struct IDProperty *dest, struct IDProperty *src); + /*checks if a property with the same name as prop exists, and if so replaces it. Use this to preserve order!*/ void IDP_ReplaceInGroup(struct IDProperty *group, struct IDProperty *prop); diff --git a/source/blender/blenkernel/intern/idprop.c b/source/blender/blenkernel/intern/idprop.c index 7e081982f24..ddfb28437a9 100644 --- a/source/blender/blenkernel/intern/idprop.c +++ b/source/blender/blenkernel/intern/idprop.c @@ -385,6 +385,31 @@ IDProperty *IDP_CopyGroup(IDProperty *prop) return newp; } +/* + replaces all properties with the same name in a destination group from a source group. +*/ +void IDP_ReplaceGroupInGroup(IDProperty *dest, IDProperty *src) +{ + IDProperty *loop, *prop; + for (prop=src->data.group.first; prop; prop=prop->next) { + IDProperty *copy = IDP_CopyProperty(prop); + + for (loop=dest->data.group.first; loop; loop=loop->next) { + if (BSTR_EQ(loop->name, prop->name)) { + if (loop->next) BLI_insertlinkbefore(&dest->data.group, loop->next, copy); + else BLI_addtail(&dest->data.group, copy); + + BLI_remlink(&dest->data.group, loop); + IDP_FreeProperty(loop); + MEM_freeN(loop); + break; + } + } + + dest->len++; + BLI_addtail(&dest->data.group, copy); + } +} /* replaces a property with the same name in a group, or adds it if the propery doesn't exist. -- cgit v1.2.3 From 6e6560d9248e7bfad45409d6eb86640d7017d9f3 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 5 Jan 2010 03:31:57 +0000 Subject: Macro: insert macro properties into sub operator properties when run (this enables you to set a parameter on the macro itself and have the operator it runs use it). Note that macro properties are not initialized from its operators yet, you have to add them manually. Also, this isn't really nice if two operators in the macro have the same property. --- source/blender/windowmanager/intern/wm_event_system.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 825d8cbcf8c..aff843dc1cb 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -391,6 +391,8 @@ static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot, P wmOperatorType *otm= WM_operatortype_find(otmacro->idname, 0); wmOperator *opm= wm_operator_create(wm, otm, otmacro->ptr, NULL); + IDP_ReplaceGroupInGroup(opm->properties, motherop->properties); + BLI_addtail(&motherop->macro, opm); opm->opm= motherop; /* pointer to mom, for modal() */ } -- cgit v1.2.3 From d16ea70f51236d5272d9c93e25277974f1a7766b Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 5 Jan 2010 06:49:29 +0000 Subject: * Modifications to node editor 'make links' tool, after some requests by Soenke Now it automatically decides how to connect the nodes up, based on the node positions. This lets you do fun stuff like in this video: http://www.vimeo.com/8548698 --- source/blender/editors/space_node/node_edit.c | 227 +++++++++++++----------- source/blender/editors/space_node/node_header.c | 13 +- source/blender/editors/space_node/node_intern.h | 2 +- 3 files changed, 134 insertions(+), 108 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index f2b3ed29067..05926782a0d 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1353,95 +1353,155 @@ static int node_socket_hilights(SpaceNode *snode, int in_out) /* ****************** Add *********************** */ -static bNodeSocket *get_next_outputsocket(bNodeSocket *sock, bNodeSocket **sockfrom, int totsock) + +typedef struct bNodeListItem { + struct bNodeListItem *next, *prev; + struct bNode *node; +} bNodeListItem; + +int sort_nodes_locx(void *a, void *b) { - int a; + bNodeListItem *nli1 = (bNodeListItem *)a; + bNodeListItem *nli2 = (bNodeListItem *)b; + bNode *node1 = nli1->node; + bNode *node2 = nli2->node; - /* first try to find a sockets with matching name */ - for (a=0; atype==sockfrom[a]->type) { - if (strcmp(sockfrom[a]->name, sock->name)==0) - return sockfrom[a]; - } + if (node1->locx > node2->locx) + return 1; + else + return 0; +} + +static int socket_is_available(bNodeTree *ntree, bNodeSocket *sock, int allow_used) +{ + if (sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)) + return 0; + + if (!allow_used) { + if (nodeCountSocketLinks(ntree, sock) > 0) + return 0; + } + return 1; +} + +static bNodeSocket *best_socket_output(bNodeTree *ntree, bNode *node, bNodeSocket *sock_target, int allow_multiple) +{ + bNodeSocket *sock; + + /* first try to find a socket with a matching name */ + for (sock=node->outputs.first; sock; sock=sock->next) { + + if (!socket_is_available(ntree, sock, allow_multiple)) + continue; + + /* check for same types */ + if (sock->type == sock_target->type) { + if (strcmp(sock->name, sock_target->name)==0) + return sock; } } /* otherwise settle for the first available socket of the right type */ - for (a=0; atype==sockfrom[a]->type) { - return sockfrom[a]; - } + for (sock=node->outputs.first; sock; sock=sock->next) { + + if (!socket_is_available(ntree, sock, allow_multiple)) + continue; + + /* check for same types */ + if (sock->type == sock_target->type) { + return sock; } } return NULL; } -void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag, int replace) +/* this is a bit complicated, but designed to prioritise finding + * sockets of higher types, such as image, first */ +static bNodeSocket *best_socket_input(bNodeTree *ntree, bNode *node, int num, int replace) { - bNodeSocket *sock, *sockfrom[8]; - bNode *node, *nodefrom[8]; - int totsock= 0, socktype=0; - - if(node_to==NULL || node_to->inputs.first==NULL) - return; - - /* connect first 1 socket type or first available socket now */ - for(sock= node_to->inputs.first; sock; sock= sock->next) { - if (!replace && nodeCountSocketLinks(snode->edittree, sock)) - continue; - if(socktypetype) - socktype= sock->type; + bNodeSocket *sock; + int socktype, maxtype=0; + int a; + + for (sock=node->inputs.first; sock; sock=sock->next) { + maxtype = MAX2(sock->type, maxtype); } - /* find potential sockets, max 8 should work */ - for(node= snode->edittree->nodes.first; node; node= node->next) { - if((node->flag & flag) && node!=node_to) { - for(sock= node->outputs.first; sock; sock= sock->next) { - if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) { - sockfrom[totsock]= sock; - nodefrom[totsock]= node; - totsock++; - if(totsock>7) - break; - } + /* find sockets of higher 'types' first (i.e. image) */ + for (socktype=maxtype; socktype >= 0; socktype--) { + for (sock=node->inputs.first; sock; sock=sock->next) { + + if (!socket_is_available(ntree, sock, replace)) { + a++; + continue; + } + + if (sock->type == socktype) { + /* increment to make sure we don't keep finding + * the same socket on every attempt running this function */ + a++; + if (a > num) + return sock; } } - if(totsock>7) - break; } + + return NULL; +} - /* now just get matching socket types and create links */ - for(sock= node_to->inputs.first; sock; sock= sock->next) { - bNodeSocket *sock_from; - bNode *node_from; +void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) +{ + ListBase *nodelist = MEM_callocN(sizeof(ListBase), "items_list"); + bNodeListItem *nli; + bNode *node; + int i; + + for(node= snode->edittree->nodes.first; node; node= node->next) { + if(node->flag & NODE_SELECT) { + nli = MEM_mallocN(sizeof(bNodeListItem), "temporary node list item"); + nli->node = node; + BLI_addtail(nodelist, nli); + } + } + + /* sort nodes left to right */ + BLI_sortlist(nodelist, sort_nodes_locx); + + for (nli=nodelist->first; nli; nli=nli->next) { + bNode *node_fr, *node_to; + bNodeSocket *sock_fr, *sock_to; - if (sock->type != socktype) - continue; + if (nli->next == NULL) break; - /* find a potential output socket and associated node */ - sock_from = get_next_outputsocket(sock, sockfrom, totsock); - if (!sock_from) - continue; - nodeFindNode(snode->edittree, sock_from, &node_from, NULL); + node_fr = nli->node; + node_to = nli->next->node; - /* then connect up the links */ - if (replace) { - nodeRemSocketLinks(snode->edittree, sock); - nodeAddLink(snode->edittree, node_from, sock_from, node_to, sock); - } else { - if (nodeCountSocketLinks(snode->edittree, sock)==0) - nodeAddLink(snode->edittree, node_from, sock_from, node_to, sock); + /* check over input sockets first */ + for (i=0; iinputs); i++) { + + /* find the best guess input socket */ + sock_to = best_socket_input(snode->edittree, node_to, i, replace); + if (!sock_to) continue; + + /* check for an appropriate output socket to connect from */ + sock_fr = best_socket_output(snode->edittree, node_fr, sock_to, allow_multiple); + if (!sock_fr) continue; + + /* then we can connect */ + if (replace) + nodeRemSocketLinks(snode->edittree, sock_to); + nodeAddLink(snode->edittree, node_fr, sock_fr, node_to, sock_to); + break; } - sock_from = NULL; } ntreeSolveOrder(snode->edittree); + + BLI_freelistN(nodelist); + MEM_freeN(nodelist); } - /* can be called from menus too, but they should do own undopush and redraws */ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy) { @@ -1781,53 +1841,10 @@ void NODE_OT_link(wmOperatorType *ot) static int node_make_link_exec(bContext *C, wmOperator *op) { SpaceNode *snode= CTX_wm_space_node(C); - bNode *fromnode, *tonode; - bNodeLink *link; - bNodeSocket *outsock= snode->edittree->selout; - bNodeSocket *insock= snode->edittree->selin; int replace = RNA_boolean_get(op->ptr, "replace"); - - if (!insock || !outsock) { - bNode *node; - - /* no socket selection, join nodes themselves, guessing connections */ - tonode = nodeGetActive(snode->edittree); - - if (!tonode) { - BKE_report(op->reports, RPT_ERROR, "No active node"); - return OPERATOR_CANCELLED; - } - - /* store selection in temp test flag */ - for(node= snode->edittree->nodes.first; node; node= node->next) { - if(node->flag & NODE_SELECT) node->flag |= NODE_TEST; - else node->flag &= ~NODE_TEST; - } - - snode_autoconnect(snode, tonode, NODE_TEST, replace); - node_tree_verify_groups(snode->nodetree); - snode_handle_recalc(C, snode); - - return OPERATOR_FINISHED; - } - - - if (nodeFindLink(snode->edittree, outsock, insock)) { - BKE_report(op->reports, RPT_ERROR, "There is already a link between these sockets"); - return OPERATOR_CANCELLED; - } - if (nodeFindNode(snode->edittree, outsock, &fromnode, NULL) && - nodeFindNode(snode->edittree, insock, &tonode, NULL)) - { - link= nodeAddLink(snode->edittree, fromnode, outsock, tonode, insock); - NodeTagChanged(snode->edittree, tonode); - node_remove_extra_links(snode, insock, link); - } - else - return OPERATOR_CANCELLED; + snode_autoconnect(snode, 0, replace); - ntreeSolveOrder(snode->edittree); node_tree_verify_groups(snode->nodetree); snode_handle_recalc(C, snode); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 6426856dfdd..d8a14c6412b 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -78,8 +78,17 @@ static void do_node_add(bContext *C, void *arg, int event) node= node_add_node(snode, CTX_data_scene(C), event, snode->mx, snode->my); - /* uses test flag */ - snode_autoconnect(snode, node, NODE_TEST, 0); + /* select previous selection before autoconnect */ + for(node= snode->edittree->nodes.first; node; node= node->next) { + if(node->flag & NODE_TEST) node->flag |= NODE_SELECT; + } + + snode_autoconnect(snode, 1, 0); + + /* deselect after autoconnection */ + for(node= snode->edittree->nodes.first; node; node= node->next) { + if(node->flag & NODE_TEST) node->flag &= ~NODE_SELECT; + } snode_handle_recalc(C, snode); } diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index ff88b4fde77..1ff2f7d7128 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -81,7 +81,7 @@ void node_deselectall(SpaceNode *snode); void snode_composite_job(const struct bContext *C, ScrArea *sa); bNode *node_tree_get_editgroup(bNodeTree *ntree); void node_tree_verify_groups(bNodeTree *nodetree); -void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag, int replace); +void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace); int node_has_hidden_sockets(bNode *node); void NODE_OT_duplicate(struct wmOperatorType *ot); -- cgit v1.2.3 From 52a2b8285202cec6d5b03e5e0e6488e53018d473 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 5 Jan 2010 10:54:54 +0000 Subject: speedup for driver execution, use PyUnicode_InternFromString() for variable names, cache hash and string -> unicode conversion for driver variables. --- source/blender/python/intern/bpy_driver.c | 45 +++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 11 deletions(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c index 016aed70c31..6f2f7a6f3b3 100644 --- a/source/blender/python/intern/bpy_driver.c +++ b/source/blender/python/intern/bpy_driver.c @@ -26,6 +26,8 @@ #include "DNA_anim_types.h" +#include "BLI_listbase.h" + #include "BPY_extern.h" #include "BKE_fcurve.h" @@ -145,12 +147,15 @@ float BPY_pydriver_eval (ChannelDriver *driver) { PyObject *driver_vars=NULL; PyObject *retval= NULL; + PyObject *expr_vars; /* speed up by pre-hashing string & avoids re-converting unicode strings for every execution */ + PyObject *expr_code; PyGILState_STATE gilstate; DriverVar *dvar; float result = 0.0f; /* default return */ char *expr = NULL; short targets_ok= 1; + int i; /* sanity checks - should driver be executed? */ if ((driver == NULL) /*|| (G.f & G_DOSCRIPTLINKS)==0*/) @@ -172,9 +177,32 @@ float BPY_pydriver_eval (ChannelDriver *driver) } } + /* compile the expression first if it hasn't been compiled or needs to be rebuilt */ + if((driver->flag & DRIVER_FLAG_RECOMPILE) || (driver->expr_comp==NULL)) { + Py_XDECREF(driver->expr_comp); + driver->expr_comp= PyTuple_New(2); + + expr_code= Py_CompileString(expr, "", Py_eval_input); + PyTuple_SET_ITEM(((PyObject *)driver->expr_comp), 0, expr_code); + + /* intern the arg names so creating the namespace for every run is faster */ + expr_vars= PyTuple_New(BLI_countlist(&driver->variables)); + PyTuple_SET_ITEM(((PyObject *)driver->expr_comp), 1, expr_vars); + + for (dvar= driver->variables.first, i=0; dvar; dvar= dvar->next) { + PyTuple_SET_ITEM(expr_vars, i++, PyUnicode_InternFromString(dvar->name)); + } + + driver->flag &= ~DRIVER_FLAG_RECOMPILE; + } + else { + expr_code= PyTuple_GET_ITEM(((PyObject *)driver->expr_comp), 0); + expr_vars= PyTuple_GET_ITEM(((PyObject *)driver->expr_comp), 1); + } + /* add target values to a dict that will be used as '__locals__' dict */ driver_vars = PyDict_New(); // XXX do we need to decref this? - for (dvar= driver->variables.first; dvar; dvar= dvar->next) { + for (dvar= driver->variables.first, i=0; dvar; dvar= dvar->next) { PyObject *driver_arg = NULL; float tval = 0.0f; @@ -183,7 +211,8 @@ float BPY_pydriver_eval (ChannelDriver *driver) driver_arg= PyFloat_FromDouble((double)tval); /* try to add to dictionary */ - if (PyDict_SetItemString(driver_vars, dvar->name, driver_arg)) { + /* if (PyDict_SetItemString(driver_vars, dvar->name, driver_arg)) { */ + if (PyDict_SetItem(driver_vars, PyTuple_GET_ITEM(expr_vars, i++), driver_arg)) { /* use string interning for faster namespace creation */ /* this target failed - bad name */ if (targets_ok) { /* first one - print some extra info for easier identification */ @@ -198,19 +227,13 @@ float BPY_pydriver_eval (ChannelDriver *driver) } } -#if 0 // slow +#if 0 // slow, with this can avoid all Py_CompileString above. /* execute expression to get a value */ retval = PyRun_String(expr, Py_eval_input, bpy_pydriver_Dict, driver_vars); #else - /* compile the expression first if it hasn't been compiled or needs to be rebuilt */ - if((driver->flag & DRIVER_FLAG_RECOMPILE) || (driver->expr_comp==NULL)) { - Py_XDECREF(driver->expr_comp); - driver->expr_comp= Py_CompileString(expr, "", Py_eval_input); - driver->flag &= ~DRIVER_FLAG_RECOMPILE; - } /* evaluate the compiled expression */ - if (driver->expr_comp) - retval= PyEval_EvalCode(driver->expr_comp, bpy_pydriver_Dict, driver_vars); + if (expr_code) + retval= PyEval_EvalCode((PyCodeObject *)expr_code, bpy_pydriver_Dict, driver_vars); #endif /* decref the driver vars first... */ -- cgit v1.2.3 From cce1d178b8ea9ac948ca7be4017a28b57dda6785 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 5 Jan 2010 11:47:43 +0000 Subject: obscure feature: Display Custom Bone Shape at another bones transform. Brecht and I took a fair bit of convincing on this one however Cessen was jumping through hoops to do without this feature. Having the shape being an external mesh deformed by its own armature, which were both hidden but in the same layer *(so the depgraph would update them). Without this some of the bones in the rig also dont make much sense when animating with. --- source/blender/blenloader/intern/readfile.c | 1 + source/blender/editors/render/render_preview.c | 2 ++ source/blender/editors/space_view3d/drawarmature.c | 17 ++++++++++++++--- source/blender/makesdna/DNA_action_types.h | 1 + source/blender/makesrna/intern/rna_pose.c | 7 +++++++ 5 files changed, 25 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1eff6c8f8e3..8a38e575cfa 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3782,6 +3782,7 @@ static void direct_link_pose(FileData *fd, bPose *pose) pchan->bone= NULL; pchan->parent= newdataadr(fd, pchan->parent); pchan->child= newdataadr(fd, pchan->child); + pchan->custom_tx= newdataadr(fd, pchan->custom_tx); direct_link_constraints(fd, &pchan->constraints); diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 1e0393479b0..3b21373139e 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -1106,6 +1106,8 @@ static int preview_notifier_id(ShaderPreview *sp) case ID_LA: return NC_LAMP; } + + return 0; } /* use same function for icon & shader, so the job manager diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index d8c2fb9d43e..c59c5cddb3f 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -1622,8 +1622,14 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, if ( (bone) && !(bone->flag & (BONE_HIDDEN_P|BONE_HIDDEN_PG)) ) { if (bone->layer & arm->layer) { + int use_custom = (pchan->custom) && !(arm->flag & ARM_NO_CUSTOM); glPushMatrix(); - glMultMatrixf(pchan->pose_mat); + + if(use_custom && pchan->custom_tx) { + glMultMatrixf(pchan->custom_tx->pose_mat); + } else { + glMultMatrixf(pchan->pose_mat); + } /* catch exception for bone with hidden parent */ flag= bone->flag; @@ -1637,7 +1643,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, /* set color-set to use */ set_pchan_colorset(ob, pchan); - if ((pchan->custom) && !(arm->flag & ARM_NO_CUSTOM)) { + if (use_custom) { /* if drawwire, don't try to draw in solid */ if (pchan->bone->flag & BONE_DRAWWIRE) draw_wire= 1; @@ -1687,7 +1693,12 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, if (pchan->custom) { if ((dt < OB_SOLID) || (bone->flag & BONE_DRAWWIRE)) { glPushMatrix(); - glMultMatrixf(pchan->pose_mat); + + if(pchan->custom_tx) { + glMultMatrixf(pchan->custom_tx->pose_mat); + } else { + glMultMatrixf(pchan->pose_mat); + } /* prepare colors */ if (arm->flag & ARM_POSEMODE) diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index aa3b921565f..b6af91a9570 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -213,6 +213,7 @@ typedef struct bPoseChannel { float *path; /* totpath x 3 x float */ // XXX depreceated... old animation system (armature only viz) bMotionPath *mpath; /* motion path cache for this bone */ struct Object *custom; /* draws custom object instead of default bone shape */ + struct bPoseChannel *custom_tx; /* odd feature, display with another bones transform. needed in rare cases for advanced rigs, since the alternative is highly complicated - campbell */ } bPoseChannel; diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index 07c4445872e..ff8f21028eb 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -912,6 +912,13 @@ static void rna_def_pose_channel(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Custom Object", "Object that defines custom draw type for this bone."); RNA_def_property_update(prop, NC_OBJECT|ND_POSE, "rna_Pose_update"); + prop= RNA_def_property(srna, "custom_shape_transform", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "custom_tx"); + RNA_def_property_struct_type(prop, "PoseBone"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Custom Shape Transform", "Bone that defines the display transform of this custom shape."); + RNA_def_property_update(prop, NC_OBJECT|ND_POSE, "rna_Pose_update"); + /* bone groups */ prop= RNA_def_property(srna, "bone_group_index", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "agrp_index"); -- cgit v1.2.3 From 6fb1d0e6a371ef66a2a3598c3a919ce63b64a22c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 5 Jan 2010 11:59:12 +0000 Subject: More Driver Fixes: * Fixed Driver version-patching code to work correctly again with the new system. * Fix for bug #20484, by adding a new driver variable type ('Transform Channel') which makes it easier to use object/bone transforms as in the past. The main differences with using this (compared with the 'Single Prop' type) are that this allows for 'final' transforms to get used instead (i.e. constraints are also taken into account), and also that this variable type can only be used for transforms (more limited scope -> less flexibility -> point-n-click goodies can follow). Mancandy now loads correctly again. * Added toggle for local vs worldspace transforms when working with Rot/Loc Diff variable types, and also for the newly added Transform Channel * Removed some dead code from sequencer... --- source/blender/blenkernel/intern/anim_sys.c | 16 +- source/blender/blenkernel/intern/fcurve.c | 98 +++++++++++- source/blender/blenkernel/intern/ipo.c | 166 ++++++++++----------- source/blender/editors/space_graph/graph_buttons.c | 40 ++++- .../editors/space_sequencer/sequencer_edit.c | 49 ------ source/blender/makesdna/DNA_anim_types.h | 32 +++- source/blender/makesrna/intern/rna_fcurve.c | 28 +++- 7 files changed, 270 insertions(+), 159 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 4c63c64ccb9..8b86f6a5d1f 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -329,20 +329,20 @@ static void fcurves_path_rename_fix (ID *owner_id, char *prefix, char *oldName, /* driver variables */ for (dvar= driver->variables.first; dvar; dvar=dvar->next) { - /* all targets (even unused ones) */ - // XXX maybe we only need to modify the used ones, since the others can be manually fixed anyways - DRIVER_TARGETS_LOOPER(dvar) + /* only change the used targets, since the others will need fixing manually anyway */ + DRIVER_TARGETS_USED_LOOPER(dvar) { /* rename RNA path */ if (dtar->rna_path) dtar->rna_path= rna_path_rename_fix(dtar->id, prefix, oldName, newName, dtar->rna_path); /* also fix the bone-name (if applicable) */ - if ( ((dtar->id) && (GS(dtar->id->name) == ID_OB)) && - (dtar->pchan_name[0]) && (strcmp(oldName, dtar->pchan_name)==0) ) - { - BLI_strncpy(dtar->pchan_name, newName, sizeof(dtar->pchan_name)); - } + // XXX this has been disabled because the old/new names have padding which means this check will fail + //if ( ((dtar->id) && (GS(dtar->id->name) == ID_OB)) && + // (dtar->pchan_name[0]) && (strcmp(oldName, dtar->pchan_name)==0) ) + //{ + // BLI_strncpy(dtar->pchan_name, newName, sizeof(dtar->pchan_name)); + //} } DRIVER_TARGETS_LOOPER_END } diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 9e84727fbf1..67bee90e91c 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -54,6 +54,7 @@ #include "BKE_curve.h" #include "BKE_global.h" #include "BKE_idprop.h" +#include "BKE_object.h" #include "BKE_utildefines.h" #include "RNA_access.h" @@ -922,13 +923,27 @@ static float dvar_eval_locDiff (ChannelDriver *driver, DriverVar *dvar) /* check if object or bone */ if (pchan) { - /* bone - need to convert to worldspace */ - VECCOPY(tmp_loc, pchan->pose_head); - mul_m4_v3(ob->obmat, tmp_loc); + /* bone */ + if ((dtar->flag & DTAR_FLAG_LOCALSPACE) == 0) { + /* convert to worldspace */ + VECCOPY(tmp_loc, pchan->pose_head); + mul_m4_v3(ob->obmat, tmp_loc); + } + else { + /* local (use transform values directly) */ + VECCOPY(tmp_loc, pchan->loc); + } } else { - /* object, already in worldspace */ - VECCOPY(tmp_loc, ob->obmat[3]); + /* object */ + if ((dtar->flag & DTAR_FLAG_LOCALSPACE) == 0) { + /* worldspace */ + VECCOPY(tmp_loc, ob->obmat[3]); + } + else { + /* local (use transform values directly) */ + VECCOPY(tmp_loc, ob->loc); + } } /* copy the location to the right place */ @@ -948,6 +963,70 @@ static float dvar_eval_locDiff (ChannelDriver *driver, DriverVar *dvar) return len_v3v3(loc1, loc2); } +/* evaluate 'transform channel' driver variable */ +static float dvar_eval_transChan (ChannelDriver *driver, DriverVar *dvar) +{ + DriverTarget *dtar= &dvar->targets[0]; + Object *ob= (Object *)dtar->id; + bPoseChannel *pchan; + float mat[4][4]; + short rotOrder = 0; + + /* check if this target has valid data */ + if ((ob == NULL) || (GS(dtar->id->name) != ID_OB)) { + /* invalid target, so will not have enough targets */ + driver->flag |= DRIVER_FLAG_INVALID; + return 0.0f; + } + + /* try to get posechannel */ + pchan= get_pose_channel(ob->pose, dtar->pchan_name); + + /* check if object or bone, and get transform matrix accordingly */ + if (pchan) { + /* bone */ + rotOrder= (pchan->rotmode > 0) ? pchan->rotmode : ROT_MODE_EUL; + + if (dtar->flag & DTAR_FLAG_LOCALSPACE) + copy_m4_m4(mat, pchan->chan_mat); + else + mul_m4_m4m4(mat, pchan->pose_mat, ob->obmat); + } + else { + /* object */ + rotOrder= (ob->rotmode > 0) ? ob->rotmode : ROT_MODE_EUL; + + if (dtar->flag & DTAR_FLAG_LOCALSPACE) + object_to_mat4(ob, mat); + else + copy_m4_m4(mat, ob->obmat); + } + + /* check which transform */ + if (dtar->transChan >= MAX_DTAR_TRANSCHAN_TYPES) { + /* not valid channel */ + return 0.0f; + } + else if (dtar->transChan >= DTAR_TRANSCHAN_SCALEX) { + /* extract scale, and choose the right axis */ + float scale[3]; + + mat4_to_size(scale, mat); + return scale[dtar->transChan - DTAR_TRANSCHAN_SCALEX]; + } + else if (dtar->transChan >= DTAR_TRANSCHAN_ROTX) { + /* extract euler rotation, and choose the right axis */ + float eul[3]; + + mat4_to_eulO(eul, rotOrder, mat); + return eul[dtar->transChan - DTAR_TRANSCHAN_ROTX]; + } + else { + /* extract location and choose right axis */ + return mat[3][dtar->transChan]; + } +} + /* ......... */ /* Table of Driver Varaiable Type Info Data */ @@ -971,7 +1050,14 @@ DriverVarTypeInfo dvar_types[MAX_DVAR_TYPES] = { 2, /* number of targets used */ {"Object/Bone 1", "Object/Bone 2"}, /* UI names for targets */ {DTAR_FLAG_STRUCT_REF|DTAR_FLAG_ID_OB_ONLY, DTAR_FLAG_STRUCT_REF|DTAR_FLAG_ID_OB_ONLY} /* flags */ - END_DVAR_TYPEDEF + END_DVAR_TYPEDEF, + + BEGIN_DVAR_TYPEDEF(DVAR_TYPE_TRANSFORM_CHAN) + dvar_eval_transChan, /* eval callback */ + 1, /* number of targets used */ + {"Object/Bone"}, /* UI names for targets */ + {DTAR_FLAG_STRUCT_REF|DTAR_FLAG_ID_OB_ONLY} /* flags */ + END_DVAR_TYPEDEF, }; /* Get driver variable typeinfo */ diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 988bd429185..feb7fc3e382 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -295,10 +295,7 @@ static char *pchan_adrcodes_to_paths (int adrcode, int *array_index) *array_index= 1; return "rotation_euler"; case AC_EUL_Z: *array_index= 2; return "rotation_euler"; - - case -1: /* special case for euler-rotations used by old drivers */ - *array_index= 0; return "rotation_euler"; - + case AC_LOC_X: *array_index= 0; return "location"; case AC_LOC_Y: @@ -944,14 +941,17 @@ static char *get_rna_access (int blocktype, int adrcode, char actname[], char co strcpy(buf, ""); /* empty string */ BLI_dynstr_append(path, buf); - /* append property to path (only if applicable) */ - if (blocktype > 0) { - /* need to add dot before property if there was anything precceding this */ - if (buf[0]) - BLI_dynstr_append(path, "."); - - /* now write name of property */ - BLI_dynstr_append(path, propname); + /* need to add dot before property if there was anything precceding this */ + if (buf[0]) + BLI_dynstr_append(path, "."); + + /* now write name of property */ + BLI_dynstr_append(path, propname); + + /* if there was no array index pointer provided, add it to the path */ + if (array_index == NULL) { + sprintf(buf, "[\"%d\"]", dummy_index); + BLI_dynstr_append(path, buf); } /* convert to normal MEM_malloc'd string */ @@ -965,6 +965,36 @@ static char *get_rna_access (int blocktype, int adrcode, char actname[], char co /* *************************************************** */ /* Conversion Utilities */ +/* Convert adrcodes to driver target transform channel types */ +static short adrcode_to_dtar_transchan (short adrcode) +{ + switch (adrcode) { + case OB_LOC_X: + return DTAR_TRANSCHAN_LOCX; + case OB_LOC_Y: + return DTAR_TRANSCHAN_LOCY; + case OB_LOC_Z: + return DTAR_TRANSCHAN_LOCZ; + + case OB_ROT_X: + return DTAR_TRANSCHAN_ROTX; + case OB_ROT_Y: + return DTAR_TRANSCHAN_ROTY; + case OB_ROT_Z: + return DTAR_TRANSCHAN_ROTZ; + + case OB_SIZE_X: + return DTAR_TRANSCHAN_SCALEX; + case OB_SIZE_Y: + return DTAR_TRANSCHAN_SCALEX; + case OB_SIZE_Z: + return DTAR_TRANSCHAN_SCALEX; + + default: + return 0; + } +} + /* Convert IpoDriver to ChannelDriver - will free the old data (i.e. the old driver) */ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) { @@ -976,91 +1006,61 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) /* if 'pydriver', just copy data across */ if (idriver->type == IPO_DRIVER_TYPE_PYTHON) { /* PyDriver only requires the expression to be copied */ - // TODO: but the expression will be useless... + // FIXME: expression will be useless due to API changes, but at least not totally lost cdriver->type = DRIVER_TYPE_PYTHON; - strcpy(cdriver->expression, idriver->name); // XXX is this safe? + if (idriver->name[0]) + BLI_strncpy(cdriver->expression, idriver->name, sizeof(cdriver->expression)); } -#if 0 // XXX needs changes for the new system else { - DriverTarget *dtar=NULL, *dtar2=NULL; + DriverVar *dvar = NULL; + DriverTarget *dtar = NULL; - /* what to store depends on the 'blocktype' (ID_OB or ID_PO - object or posechannel) */ - if (idriver->blocktype == ID_AR) { - /* ID_PO */ + /* this should be ok for all types here... */ + cdriver->type= DRIVER_TYPE_AVERAGE; + + /* what to store depends on the 'blocktype' - object or posechannel */ + if (idriver->blocktype == ID_AR) { /* PoseChannel */ if (idriver->adrcode == OB_ROT_DIFF) { - /* Rotational Difference is a special type of driver now... */ - cdriver->type= DRIVER_TYPE_ROTDIFF; - - /* make 2 driver targets */ - dtar= driver_add_new_target(cdriver); - dtar2= driver_add_new_target(cdriver); + /* Rotational Difference requires a special type of variable */ + dvar= driver_add_new_variable(cdriver); + driver_change_variable_type(dvar, DVAR_TYPE_ROT_DIFF); - /* driver must use bones from same armature... */ - dtar->id= dtar2->id= (ID *)idriver->ob; + /* first bone target */ + dtar= &dvar->targets[0]; + dtar->id= (ID *)idriver->ob; + if (idriver->name[0]) + BLI_strncpy(dtar->pchan_name, idriver->name, 32); - /* paths for the two targets get the pointers to the relevant Pose-Channels - * - return pointers to Pose-Channels not rotation channels, as calculation code is picky - * - old bone names were stored in same var, in idriver->name - * - * - we use several hacks here - blocktype == -1 specifies that no property needs to be found, and - * providing a name for 'actname' will automatically imply Pose-Channel with name 'actname' - */ - dtar->rna_path= get_rna_access(-1, -1, idriver->name, NULL, NULL); - dtar2->rna_path= get_rna_access(-1, -1, idriver->name+DRIVER_NAME_OFFS, NULL, NULL); + /* second bone target (name was stored in same var as the first one) */ + dtar= &dvar->targets[1]; + dtar->id= (ID *)idriver->ob; + if (idriver->name[0]) // xxx... for safety + BLI_strncpy(dtar->pchan_name, idriver->name+DRIVER_NAME_OFFS, 32); } else { - /* 'standard' driver */ - cdriver->type= DRIVER_TYPE_AVERAGE; + /* only a single variable, of type 'transform channel' */ + dvar= driver_add_new_variable(cdriver); + driver_change_variable_type(dvar, DVAR_TYPE_TRANSFORM_CHAN); - /* make 1 driver target */ - dtar= driver_add_new_target(cdriver); + /* only requires a single target */ + dtar= &dvar->targets[0]; dtar->id= (ID *)idriver->ob; - - switch (idriver->adrcode) { - case OB_LOC_X: /* x,y,z location are quite straightforward */ - dtar->rna_path= get_rna_access(ID_PO, AC_LOC_X, idriver->name, NULL, &dtar->array_index); - break; - case OB_LOC_Y: - dtar->rna_path= get_rna_access(ID_PO, AC_LOC_Y, idriver->name, NULL, &dtar->array_index); - break; - case OB_LOC_Z: - dtar->rna_path= get_rna_access(ID_PO, AC_LOC_Z, idriver->name, NULL, &dtar->array_index); - break; - - case OB_SIZE_X: /* x,y,z scaling are also quite straightforward */ - dtar->rna_path= get_rna_access(ID_PO, AC_SIZE_X, idriver->name, NULL, &dtar->array_index); - break; - case OB_SIZE_Y: - dtar->rna_path= get_rna_access(ID_PO, AC_SIZE_Y, idriver->name, NULL, &dtar->array_index); - break; - case OB_SIZE_Z: - dtar->rna_path= get_rna_access(ID_PO, AC_SIZE_Z, idriver->name, NULL, &dtar->array_index); - break; - - case OB_ROT_X: /* rotation - we need to be careful with this... */ - case OB_ROT_Y: - case OB_ROT_Z: - { - /* -1 here, not rotation code, since old system didn't have eulers */ - dtar->rna_path= get_rna_access(ID_PO, -1, idriver->name, NULL, NULL); - dtar->array_index= idriver->adrcode - OB_ROT_X; - } - break; - } + if (idriver->name[0]) + BLI_strncpy(dtar->pchan_name, idriver->name, 32); + dtar->transChan= adrcode_to_dtar_transchan(idriver->adrcode); } } - else { - /* ID_OB */ - cdriver->type= DRIVER_TYPE_AVERAGE; - - /* make 1 driver target */ - dtar= driver_add_new_target(cdriver); + else { /* Object */ + /* only a single variable, of type 'transform channel' */ + dvar= driver_add_new_variable(cdriver); + driver_change_variable_type(dvar, DVAR_TYPE_TRANSFORM_CHAN); + /* only requires single target */ + dtar= &dvar->targets[0]; dtar->id= (ID *)idriver->ob; - dtar->rna_path= get_rna_access(ID_OB, idriver->adrcode, NULL, NULL, &dtar->array_index); + dtar->transChan= adrcode_to_dtar_transchan(idriver->adrcode); } } -#endif // XXX fixme /* return the new one */ return cdriver; @@ -1295,11 +1295,7 @@ static void icu_to_fcurves (ListBase *groups, ListBase *list, IpoCurve *icu, cha DriverVar *dvar= fcu->driver->variables.first; DriverTarget *dtar= &dvar->targets[0]; - /* since drivers could only be for objects, we should just check for 'rotation' being - * in the name of the path given - * - WARNING: this will break if we encounter a bone or object explictly named in that way... - */ - if ((dtar && dtar->rna_path) && strstr(dtar->rna_path, "rotation")) { + if (ELEM3(dtar->transChan, DTAR_TRANSCHAN_ROTX, DTAR_TRANSCHAN_ROTY, DTAR_TRANSCHAN_ROTZ)) { const float fac= (float)M_PI / 180.0f; dst->vec[0][0] *= fac; diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index c42dfd0015d..c7c58689a5f 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -352,7 +352,7 @@ static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout, if (dtar->id && ob1->pose) { PointerRNA tar_ptr; - RNA_pointer_create(dtar2->id, &RNA_Pose, ob1->pose, &tar_ptr); + RNA_pointer_create(dtar->id, &RNA_Pose, ob1->pose, &tar_ptr); uiItemPointerR(col, "", ICON_BONE_DATA, &dtar_ptr, "bone_target", &tar_ptr, "bones"); } @@ -367,7 +367,7 @@ static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout, } } -/* settings for 'rotation difference' driver variable type */ +/* settings for 'location difference' driver variable type */ static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar) { DriverTarget *dtar= &dvar->targets[0]; @@ -388,9 +388,11 @@ static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout, if (dtar->id && ob1->pose) { PointerRNA tar_ptr; - RNA_pointer_create(dtar2->id, &RNA_Pose, ob1->pose, &tar_ptr); + RNA_pointer_create(dtar->id, &RNA_Pose, ob1->pose, &tar_ptr); uiItemPointerR(col, "", ICON_BONE_DATA, &dtar_ptr, "bone_target", &tar_ptr, "bones"); } + + uiItemR(col, NULL, 0, &dtar_ptr, "use_local_space_transforms", 0); col= uiLayoutColumn(layout, 1); uiTemplateAnyID(col, (bContext *)C, &dtar2_ptr, "id", "id_type", "Ob/Bone 2:"); @@ -401,6 +403,35 @@ static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout, RNA_pointer_create(dtar2->id, &RNA_Pose, ob2->pose, &tar_ptr); uiItemPointerR(col, "", ICON_BONE_DATA, &dtar2_ptr, "bone_target", &tar_ptr, "bones"); } + + uiItemR(col, NULL, 0, &dtar2_ptr, "use_local_space_transforms", 0); +} + +/* settings for 'transform channel' driver variable type */ +static void graph_panel_driverVar__transChan(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar) +{ + DriverTarget *dtar= &dvar->targets[0]; + Object *ob = (Object *)dtar->id; + PointerRNA dtar_ptr; + uiLayout *col, *row; + + /* initialise RNA pointer to the target */ + RNA_pointer_create(id, &RNA_DriverTarget, dtar, &dtar_ptr); + + /* properties */ + col= uiLayoutColumn(layout, 1); + uiTemplateAnyID(col, (bContext *)C, &dtar_ptr, "id", "id_type", "Ob/Bone:"); + + if (dtar->id && ob->pose) { + PointerRNA tar_ptr; + + RNA_pointer_create(dtar->id, &RNA_Pose, ob->pose, &tar_ptr); + uiItemPointerR(col, "", ICON_BONE_DATA, &dtar_ptr, "bone_target", &tar_ptr, "bones"); + } + + row= uiLayoutRow(layout, 1); + uiItemR(row, NULL, 0, &dtar_ptr, "transform_type", 0); + uiItemR(row, NULL, 0, &dtar_ptr, "use_local_space_transforms", 0); } /* driver settings for active F-Curve (only for 'Drivers' mode) */ @@ -503,6 +534,9 @@ static void graph_panel_drivers(const bContext *C, Panel *pa) case DVAR_TYPE_LOC_DIFF: /* location difference */ graph_panel_driverVar__locDiff(C, box, ale->id, dvar); break; + case DVAR_TYPE_TRANSFORM_CHAN: /* transform channel */ + graph_panel_driverVar__transChan(C, box, ale->id, dvar); + break; } } diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 0f3adae8c20..bd1db4c29b6 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -382,55 +382,6 @@ Sequence *find_nearest_seq(Scene *scene, View2D *v2d, int *hand, short mval[2]) return 0; } -void update_seq_ipo_rect(Scene *scene, View2D *v2d, Sequence *seq) -{ - float start; - float end; - - if (!seq || !seq->ipo) { - return; - } - start = -5.0; - end = 105.0; - - - /* Adjust IPO window to sequence and - avoid annoying snap-back to startframe - when Lock Time is on */ - if (0) { // XXX v2d->flag & V2D_VIEWLOCK) { - if ((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { - start = -5.0 + seq->startdisp; - end = 5.0 + seq->enddisp; - } else { - start = (float)scene->r.sfra - 0.1; - end = scene->r.efra; - } - } - - seq->ipo->cur.xmin= start; - seq->ipo->cur.xmax= end; -} - -void update_seq_icu_rects(Sequence * seq) -{ - IpoCurve *icu= NULL; - struct SeqEffectHandle sh; - - if (!seq || !seq->ipo) { - return; - } - - if(!(seq->type & SEQ_EFFECT)) { - return; - } - - sh = get_sequence_effect(seq); - - for(icu= seq->ipo->curve.first; icu; icu= icu->next) { - sh.store_icu_yrange(seq, icu->adrcode, &icu->ymin, &icu->ymax); - } -} - static int seq_is_parent(Sequence *par, Sequence *seq) { diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index f2d4471607f..dda9073aa63 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -239,11 +239,13 @@ typedef enum eFMod_Noise_Modifications { typedef struct DriverTarget { ID *id; /* ID-block which owns the target */ - char *rna_path; /* target channel to use as driver value */ - char pchan_name[32]; /* name of the posebone to use (for certain types of variable only) */ + char *rna_path; /* RNA path defining the setting to use (for DVAR_TYPE_SINGLE_PROP) */ + char pchan_name[32]; /* name of the posebone to use (for vars where DTAR_FLAG_STRUCT_REF is used) */ + short transChan; /* transform channel index (for DVAR_TYPE_TRANSFORM_CHAN)*/ + + short flag; /* flags for the validity of the target (NOTE: these get reset everytime the types change) */ int idtype; /* type of ID-block that this target can use */ - int flag; /* flags for the validity of the target (NOTE: these get reset everytime the types change) */ } DriverTarget; /* Driver Target flags */ @@ -254,12 +256,28 @@ typedef enum eDriverTarget_Flag { DTAR_FLAG_STRUCT_REF = (1<<0), /* idtype can only be 'Object' */ DTAR_FLAG_ID_OB_ONLY = (1<<1), + /* toggles localspace (where transforms are manually obtained) */ + DTAR_FLAG_LOCALSPACE = (1<<2), } eDriverTarget_Flag; +/* Transform Channels for Driver Targets */ +typedef enum eDriverTarget_TransformChannels { + DTAR_TRANSCHAN_LOCX = 0, + DTAR_TRANSCHAN_LOCY, + DTAR_TRANSCHAN_LOCZ, + DTAR_TRANSCHAN_ROTX, + DTAR_TRANSCHAN_ROTY, + DTAR_TRANSCHAN_ROTZ, + DTAR_TRANSCHAN_SCALEX, + DTAR_TRANSCHAN_SCALEY, + DTAR_TRANSCHAN_SCALEZ, + + MAX_DTAR_TRANSCHAN_TYPES +} eDriverTarget_TransformChannels; + /* --- */ /* maximum number of driver targets per variable */ -// FIXME: make this get used below (for DriverVariable defines) if DNA supports preprocessor stuff.. #define MAX_DRIVER_TARGETS 8 @@ -275,8 +293,8 @@ typedef struct DriverVar { char name[64]; /* name of the variable to use in py-expression (must be valid python identifier) */ - DriverTarget targets[8]; /* MAX_DRIVER_TARGETS - targets available for use for this type of variable */ - int num_targets; /* number of targets used by this variable */ + DriverTarget targets[MAX_DRIVER_TARGETS]; /* target slots */ + int num_targets; /* number of targets actually used by this variable */ int type; /* type of driver target (eDriverTarget_Types) */ } DriverVar; @@ -289,6 +307,8 @@ typedef enum eDriverVar_Types { DVAR_TYPE_ROT_DIFF, /* distance between objects/bones */ DVAR_TYPE_LOC_DIFF, + /* 'final' transform for object/bones */ + DVAR_TYPE_TRANSFORM_CHAN, /* maximum number of variable types * NOTE: this must always be th last item in this list, diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 10fece3391f..e55603def9d 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -687,6 +687,18 @@ static void rna_def_drivertarget(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; + static EnumPropertyItem prop_trans_chan_items[] = { + {DTAR_TRANSCHAN_LOCX, "LOC_X", 0, "X Location", ""}, + {DTAR_TRANSCHAN_LOCY, "LOC_Y", 0, "Y Location", ""}, + {DTAR_TRANSCHAN_LOCZ, "LOC_Z", 0, "Z Location", ""}, + {DTAR_TRANSCHAN_ROTX, "ROT_X", 0, "X Rotation", ""}, + {DTAR_TRANSCHAN_ROTY, "ROT_Y", 0, "Y Rotation", ""}, + {DTAR_TRANSCHAN_ROTZ, "ROT_Z", 0, "Z Rotation", ""}, + {DTAR_TRANSCHAN_SCALEX, "SCALE_X", 0, "X Scale", ""}, + {DTAR_TRANSCHAN_SCALEY, "SCALE_Y", 0, "Y Scale", ""}, + {DTAR_TRANSCHAN_SCALEZ, "SCALE_Z", 0, "Z Scale", ""}, + {0, NULL, 0, NULL, NULL}}; + srna= RNA_def_struct(brna, "DriverTarget", NULL); RNA_def_struct_ui_text(srna, "Driver Target", "Source of input values for driver variables."); @@ -711,13 +723,24 @@ static void rna_def_drivertarget(BlenderRNA *brna) /* Target Properties - Property to Drive */ prop= RNA_def_property(srna, "data_path", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, "rna_DriverTarget_RnaPath_get", "rna_DriverTarget_RnaPath_length", "rna_DriverTarget_RnaPath_set"); - RNA_def_property_ui_text(prop, "Data Path", "RNA Path (from Object) to property used"); + RNA_def_property_ui_text(prop, "Data Path", "RNA Path (from ID-block) to property used."); RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); prop= RNA_def_property(srna, "bone_target", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "pchan_name"); RNA_def_property_ui_text(prop, "Bone Name", "Name of PoseBone to use as target."); RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); + + prop= RNA_def_property(srna, "transform_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "transChan"); + RNA_def_property_enum_items(prop, prop_trans_chan_items); + RNA_def_property_ui_text(prop, "Type", "Driver variable type."); + RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); + + prop= RNA_def_property(srna, "use_local_space_transforms", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", DTAR_FLAG_LOCALSPACE); + RNA_def_property_ui_text(prop, "Local Space", "Use transforms in Local Space (as opposed to the worldspace default)."); + RNA_def_property_update(prop, 0, "rna_DriverTarget_update_data"); } static void rna_def_drivervar(BlenderRNA *brna) @@ -728,7 +751,8 @@ static void rna_def_drivervar(BlenderRNA *brna) static EnumPropertyItem prop_type_items[] = { {DVAR_TYPE_SINGLE_PROP, "SINGLE_PROP", 0, "Single Property", "Use the value from some RNA property (Default)"}, {DVAR_TYPE_ROT_DIFF, "ROTATION_DIFF", 0, "Rotational Difference", "Use the angle between two bones"}, - {DVAR_TYPE_LOC_DIFF, "LOC_DIFF", 0, "Distance", "Distance between two bones or "}, + {DVAR_TYPE_LOC_DIFF, "LOC_DIFF", 0, "Distance", "Distance between two bones or objects"}, + {DVAR_TYPE_TRANSFORM_CHAN, "TRANSFORMS", 0, "Transform Channel", "Final transformation value of object or bone"}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From 05cddaa2806f22964821965fb7ab2b95b7fb5bb1 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 5 Jan 2010 12:03:32 +0000 Subject: Quick fix for previous commit - changing order of items in the variable type menu to make it easier to use the transform one. Also, forgot to mention in previous commit that I tweaked the path-renaming code to only rename driver targets that were being used, and commenting out some code there that wouldn't work... --- source/blender/makesrna/intern/rna_fcurve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index e55603def9d..1fa731f512b 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -750,9 +750,9 @@ static void rna_def_drivervar(BlenderRNA *brna) static EnumPropertyItem prop_type_items[] = { {DVAR_TYPE_SINGLE_PROP, "SINGLE_PROP", 0, "Single Property", "Use the value from some RNA property (Default)"}, + {DVAR_TYPE_TRANSFORM_CHAN, "TRANSFORMS", 0, "Transform Channel", "Final transformation value of object or bone"}, {DVAR_TYPE_ROT_DIFF, "ROTATION_DIFF", 0, "Rotational Difference", "Use the angle between two bones"}, {DVAR_TYPE_LOC_DIFF, "LOC_DIFF", 0, "Distance", "Distance between two bones or objects"}, - {DVAR_TYPE_TRANSFORM_CHAN, "TRANSFORMS", 0, "Transform Channel", "Final transformation value of object or bone"}, {0, NULL, 0, NULL, NULL}}; -- cgit v1.2.3 From b6598ed71053647d74935d74762e5e4e6e15eb27 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 5 Jan 2010 12:12:26 +0000 Subject: Quick fix for layout of Transform Channel var type, since on smaller regions, the widget sizes were too small to be useful. --- source/blender/editors/space_graph/graph_buttons.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index c7c58689a5f..a866ebd75e2 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -430,7 +430,7 @@ static void graph_panel_driverVar__transChan(const bContext *C, uiLayout *layout } row= uiLayoutRow(layout, 1); - uiItemR(row, NULL, 0, &dtar_ptr, "transform_type", 0); + uiItemR(row, "", 0, &dtar_ptr, "transform_type", 0); uiItemR(row, NULL, 0, &dtar_ptr, "use_local_space_transforms", 0); } -- cgit v1.2.3 From cc72f7e1b12779f215b75af890b45cfa5d78a5e8 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 5 Jan 2010 12:14:18 +0000 Subject: Revert previous preview render commit, causing some problems --- source/blender/editors/render/render_preview.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 3b21373139e..74e1cca5579 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -1094,22 +1094,6 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat } } -static int preview_notifier_id(ShaderPreview *sp) -{ - switch (GS(sp->id)) { - case ID_MA: - return NC_MATERIAL; - case ID_TE: - return NC_TEXTURE; - case ID_WO: - return NC_WORLD; - case ID_LA: - return NC_LAMP; - } - - return 0; -} - /* use same function for icon & shader, so the job manager does not run two of them at the same time. */ @@ -1144,7 +1128,7 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r /* setup job */ WM_jobs_customdata(steve, sp, shader_preview_free); - WM_jobs_timer(steve, 0.1, preview_notifier_id(sp), preview_notifier_id(sp)); + WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL); WM_jobs_callbacks(steve, common_preview_startjob, NULL, NULL); WM_jobs_start(CTX_wm_manager(C), steve); @@ -1170,7 +1154,7 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M /* setup job */ WM_jobs_customdata(steve, sp, shader_preview_free); - WM_jobs_timer(steve, 0.1, preview_notifier_id(sp), preview_notifier_id(sp)); + WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL); WM_jobs_callbacks(steve, common_preview_startjob, NULL, shader_preview_updatejob); WM_jobs_start(CTX_wm_manager(C), steve); -- cgit v1.2.3 From 01b762e8463ec6192d43b3bfac7d29b0c24757c0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 5 Jan 2010 13:55:51 +0000 Subject: fix for bpyob.foreach_set(), when the list is empty --- source/blender/python/intern/bpy_rna.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index cd607961788..58af86f077d 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2241,6 +2241,7 @@ static void foreach_attr_type( BPy_PropertyRNA *self, char *attr, *attr_tot= 0; *attr_signed= FALSE; + /* note: this is fail with zero length lists, so dont let this get caled in that case */ RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { prop = RNA_struct_find_property(&itemptr, attr); *raw_type= RNA_property_raw_type(prop); @@ -2297,7 +2298,9 @@ static int foreach_parse_args( #endif } - if (*size == 0) { + /* check 'attr_tot' otherwise we dont know if any values were set + * this isnt ideal because it means running on an empty list may fail silently when its not compatible. */ + if (*size == 0 && *attr_tot != 0) { PyErr_SetString( PyExc_AttributeError, "attribute does not support foreach method" ); return -1; } -- cgit v1.2.3 From d16547ab73e7086d5358bba67093173827d12afe Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jan 2010 14:26:38 +0000 Subject: Alt+B view clipping is now taken into account properly for sculpt, particle edit and snapping, by clipping the view ray. --- source/blender/blenlib/BLI_math_geom.h | 2 + source/blender/blenlib/intern/math_geom.c | 49 +++++++++++++++++++++++ source/blender/blenlib/intern/pbvh.c | 5 +++ source/blender/editors/sculpt_paint/sculpt.c | 8 ++-- source/blender/editors/space_view3d/view3d_view.c | 6 +++ 5 files changed, 67 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h index 0bbe8fac976..f650a55d8ad 100644 --- a/source/blender/blenlib/BLI_math_geom.h +++ b/source/blender/blenlib/BLI_math_geom.h @@ -111,6 +111,8 @@ int isect_axial_line_tri_v3(int axis, float co1[3], float co2[3], int isect_aabb_aabb_v3(float min1[3], float max1[3], float min2[3], float max2[3]); +int clip_line_plane(float clipco[3], float plane[4], float co[3]); + /****************************** Interpolation ********************************/ /* tri or quad, d can be NULL */ diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 2b94227099c..a80f999cdbb 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -1246,6 +1246,55 @@ int isect_point_tri_prism_v3(float p[3], float v1[3], float v2[3], float v3[3]) return 1; } +int clip_line_plane(float p1[3], float p2[3], float plane[4]) +{ + float dp[3], n[3], div, t, pc[3]; + + copy_v3_v3(n, plane); + sub_v3_v3v3(dp, p2, p1); + div= dot_v3v3(dp, n); + + if(div == 0.0f) /* parallel */ + return 1; + + t= -(dot_v3v3(p1, n) + plane[3])/div; + + if(div > 0.0f) { + /* behind plane, completely clipped */ + if(t >= 1.0f) { + zero_v3(p1); + zero_v3(p2); + return 0; + } + + /* intersect plane */ + if(t > 0.0f) { + madd_v3_v3v3fl(pc, p1, dp, t); + copy_v3_v3(p1, pc); + return 1; + } + + return 1; + } + else { + /* behind plane, completely clipped */ + if(t <= 0.0f) { + zero_v3(p1); + zero_v3(p2); + return 0; + } + + /* intersect plane */ + if(t < 1.0f) { + madd_v3_v3v3fl(pc, p1, dp, t); + copy_v3_v3(p2, pc); + return 1; + } + + return 1; + } +} + /****************************** Interpolation ********************************/ static float tri_signed_area(float *v1, float *v2, float *v3, int i, int j) diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index 6f33fab2571..c1bdbf32fac 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -694,6 +694,11 @@ void BLI_pbvh_search_gather(PBVH *bvh, pbvh_iter_end(&iter); + if(tot == 0 && array) { + MEM_freeN(array); + array= NULL; + } + *r_array= array; *r_tot= tot; } diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index cfcd0d90e2c..11ce41c5ff8 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1841,7 +1841,7 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou ViewContext *vc = paint_stroke_view_context(stroke); SculptSession *ss= vc->obact->sculpt; StrokeCache *cache= ss->cache; - float ray_start[3], ray_normal[3]; + float ray_start[3], ray_end[3], ray_normal[3], dist; float obimat[4][4]; float mval[2] = {mouse[0] - vc->ar->winrct.xmin, mouse[1] - vc->ar->winrct.ymin}; @@ -1849,7 +1849,9 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou sculpt_stroke_modifiers_check(C, ss); - viewray(vc->ar, vc->v3d, mval, ray_start, ray_normal); + viewline(vc->ar, vc->v3d, mval, ray_start, ray_end); + sub_v3_v3v3(ray_normal, ray_end, ray_start); + dist= normalize_v3(ray_normal); invert_m4_m4(obimat, ss->ob->obmat); mul_m4_v3(obimat, ray_start); @@ -1859,7 +1861,7 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou srd.ss = vc->obact->sculpt; srd.ray_start = ray_start; srd.ray_normal = ray_normal; - srd.dist = FLT_MAX; + srd.dist = dist; srd.hit = 0; srd.original = (cache)? cache->original: 0; BLI_pbvh_raycast(ss->tree, sculpt_raycast_cb, &srd, diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 48f3c77091f..c7b62dd7ef4 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -536,6 +536,7 @@ void viewline(ARegion *ar, View3D *v3d, float mval[2], float ray_start[3], float { RegionView3D *rv3d= ar->regiondata; float vec[4]; + int a; if(rv3d->persp != RV3D_ORTHO){ vec[0]= 2.0f * mval[0] / ar->winx - 1; @@ -564,6 +565,11 @@ void viewline(ARegion *ar, View3D *v3d, float mval[2], float ray_start[3], float VECADDFAC(ray_start, vec, rv3d->viewinv[2], 1000.0f); VECADDFAC(ray_end, vec, rv3d->viewinv[2], -1000.0f); } + + /* clipping */ + if(rv3d->rflag & RV3D_CLIPPING) + for(a=0; a<4; a++) + clip_line_plane(ray_start, ray_end, rv3d->clip[a]); } /* create intersection ray in view Z direction at mouse coordinates */ -- cgit v1.2.3 From a1034a0526aa81c5901ba924aec0bb74413edee7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jan 2010 14:27:13 +0000 Subject: Fix #20571: run script operator crashes in 3d view. --- source/blender/editors/space_text/text_ops.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c index 1a23b9ecc42..0504db51a72 100644 --- a/source/blender/editors/space_text/text_ops.c +++ b/source/blender/editors/space_text/text_ops.c @@ -526,6 +526,11 @@ void TEXT_OT_save_as(wmOperatorType *ot) /******************* run script operator *********************/ +static int run_script_poll(bContext *C) +{ + return (CTX_data_edit_text(C) != NULL); +} + static int run_script_exec(bContext *C, wmOperator *op) { #ifdef DISABLE_PYTHON @@ -534,12 +539,13 @@ static int run_script_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; #else Text *text= CTX_data_edit_text(C); + SpaceText *st= CTX_wm_space_text(C); if (BPY_run_python_script(C, NULL, text, op->reports)) return OPERATOR_FINISHED; /* Dont report error messages while live editing */ - if(!CTX_wm_space_text(C)->live_edit) + if(!(st && st->live_edit)) BKE_report(op->reports, RPT_ERROR, "Python script fail, look in the console for now..."); return OPERATOR_CANCELLED; @@ -554,8 +560,8 @@ void TEXT_OT_run_script(wmOperatorType *ot) ot->description= "Run active script."; /* api callbacks */ + ot->poll= run_script_poll; ot->exec= run_script_exec; -// ot->poll= text_edit_poll; // dont do this since linked texts cant run } -- cgit v1.2.3 From 9a3362c84f11b357121c43dd371e335096341f06 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jan 2010 14:56:48 +0000 Subject: BUGFIX: revision 25736 (about 3 hours ago) introduced a problem in SDNA for drivers, which will cause files that include drivers and saved since then to crash on load, and loading existing files to crash as well. This commit fixes that problem. So, don't use builds from revision 25736-25743. The problem is this line, SDNA does not support parsing #defines: DriverTarget targets[MAX_DRIVER_TARGETS]; --- source/blender/makesdna/DNA_anim_types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index dda9073aa63..5b0dfbdd574 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -293,7 +293,7 @@ typedef struct DriverVar { char name[64]; /* name of the variable to use in py-expression (must be valid python identifier) */ - DriverTarget targets[MAX_DRIVER_TARGETS]; /* target slots */ + DriverTarget targets[8]; /* MAX_DRIVER_TARGETS, target slots */ int num_targets; /* number of targets actually used by this variable */ int type; /* type of driver target (eDriverTarget_Types) */ -- cgit v1.2.3 From 73f84b24fca541caa4aaec02d946b887ddfb216b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 5 Jan 2010 15:23:09 +0000 Subject: Particles: * Fix crash in mirror tool. * Added X Mirror option back to the UI, flag is now same as the one for edit and paint modes, stored in the mesh. --- source/blender/editors/physics/particle_edit.c | 37 ++++++++++++++--------- source/blender/makesdna/DNA_scene_types.h | 2 +- source/blender/makesrna/intern/rna_sculpt_paint.c | 4 --- 3 files changed, 23 insertions(+), 20 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index eccb257dab5..101ec225cb2 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -316,6 +316,14 @@ void PE_hide_keys_time(Scene *scene, PTCacheEdit *edit, float cfra) } } +static int pe_x_mirror(Object *ob) +{ + if(ob->type == OB_MESH) + return (((Mesh*)ob->data)->editflag & ME_EDIT_MIRROR_X); + + return 0; +} + /****************** common struct passed to callbacks ******************/ typedef struct PEData { @@ -1185,7 +1193,7 @@ void PE_update_object(Scene *scene, Object *ob, int useflag) pe_iterate_lengths(scene, edit); pe_deflect_emitter(scene, ob, edit); PE_apply_lengths(scene, edit); - if(pset->flag & PE_X_MIRROR) + if(pe_x_mirror(ob)) PE_apply_mirror(ob,edit->psys); if(edit->psys) update_world_cos(ob, edit); @@ -1997,7 +2005,7 @@ static void rekey_particle_to_time(Scene *scene, Object *ob, int pa_index, float /************************* utilities **************************/ -static int remove_tagged_particles(Scene *scene, Object *ob, ParticleSystem *psys) +static int remove_tagged_particles(Scene *scene, Object *ob, ParticleSystem *psys, int mirror) { PTCacheEdit *edit = psys->edit; ParticleEditSettings *pset= PE_settings(scene); @@ -2007,7 +2015,7 @@ static int remove_tagged_particles(Scene *scene, Object *ob, ParticleSystem *psy ParticleSystemModifierData *psmd; int i, totpart, new_totpart= psys->totpart, removed= 0; - if(pset->flag & PE_X_MIRROR) { + if(mirror) { /* mirror tags */ psmd= psys_get_modifier(ob, psys); totpart= psys->totpart; @@ -2078,7 +2086,7 @@ static void remove_tagged_keys(Scene *scene, Object *ob, ParticleSystem *psys) ParticleSystemModifierData *psmd; short new_totkey; - if(pset->flag & PE_X_MIRROR) { + if(pe_x_mirror(ob)) { /* mirror key tags */ psmd= psys_get_modifier(ob, psys); @@ -2099,7 +2107,7 @@ static void remove_tagged_keys(Scene *scene, Object *ob, ParticleSystem *psys) if(new_totkey < 2) point->flag |= PEP_TAG; } - remove_tagged_particles(scene, ob, psys); + remove_tagged_particles(scene, ob, psys, pe_x_mirror(ob)); LOOP_POINTS { pa = psys->particles + p; @@ -2270,7 +2278,7 @@ static int remove_doubles_exec(bContext *C, wmOperator *op) KDTreeNearest nearest[10]; POINT_P; float mat[4][4], co[3], threshold= RNA_float_get(op->ptr, "threshold"); - int n, totn, removed, flag, totremoved; + int n, totn, removed, totremoved; if(psys->flag & PSYS_GLOBAL_HAIR) return OPERATOR_CANCELLED; @@ -2316,10 +2324,7 @@ static int remove_doubles_exec(bContext *C, wmOperator *op) BLI_kdtree_free(tree); /* remove tagged particles - don't do mirror here! */ - flag= pset->flag; - pset->flag &= ~PE_X_MIRROR; - remove_tagged_particles(scene, ob, psys); - pset->flag= flag; + remove_tagged_particles(scene, ob, psys, 0); totremoved += removed; } while(removed); @@ -2500,7 +2505,7 @@ static int delete_exec(bContext *C, wmOperator *op) } else if(type == DEL_PARTICLE) { foreach_selected_point(&data, set_delete_particle); - remove_tagged_particles(data.scene, data.ob, data.edit->psys); + remove_tagged_particles(data.scene, data.ob, data.edit->psys, pe_x_mirror(data.ob)); recalc_lengths(data.edit); } @@ -2603,9 +2608,11 @@ static void PE_mirror_x(Scene *scene, Object *ob, int tagged) newpa= psys->particles + totpart; newpoint= edit->points + totpart; - LOOP_VISIBLE_POINTS { + for(p=0, point=edit->points; pparticles + p; + if(point->flag & PEP_HIDE) + continue; if(!(point->flag & PEP_TAG) || mirrorfaces[pa->num*2] == -1) continue; @@ -3097,7 +3104,7 @@ static int brush_add(PEData *data, short number) initialize_particle(&sim, pa,i); reset_particle(&sim, pa, 0.0, 1.0); point->flag |= PEP_EDIT_RECALC; - if(pset->flag & PE_X_MIRROR) + if(pe_x_mirror(ob)) point->flag |= PEP_TAG; /* signal for duplicate */ framestep= pa->lifetime/(float)(pset->totaddkey-1); @@ -3304,7 +3311,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr) else foreach_point(&data, brush_cut); - removed= remove_tagged_particles(scene, ob, edit->psys); + removed= remove_tagged_particles(scene, ob, edit->psys, pe_x_mirror(ob)); if(pset->flag & PE_KEEP_LENGTHS) recalc_lengths(edit); } @@ -3403,7 +3410,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr) recalc_lengths(edit); if(ELEM(pset->brushtype, PE_BRUSH_ADD, PE_BRUSH_CUT) && (added || removed)) { - if(pset->brushtype == PE_BRUSH_ADD && (pset->flag & PE_X_MIRROR)) + if(pset->brushtype == PE_BRUSH_ADD && pe_x_mirror(ob)) PE_mirror_x(scene, ob, 1); update_world_cos(ob,edit); diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 6d6e668e227..974967c6aa6 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1124,7 +1124,7 @@ typedef enum SculptFlags { #define PE_DEFLECT_EMITTER 4 #define PE_INTERPOLATE_ADDED 8 #define PE_DRAW_PART 16 -#define PE_X_MIRROR 64 +#define PE_X_MIRROR 64 /* deprecated */ #define PE_FADE_TIME 128 #define PE_AUTO_VELOCITY 256 diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index 4d17da668b2..99bee9413cd 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -454,10 +454,6 @@ static void rna_def_particle_edit(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Draw Particles", "Draw actual particles."); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); - prop= RNA_def_property(srna, "mirror_x", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", PE_X_MIRROR); - RNA_def_property_ui_text(prop, "X-Axis Mirror", "Mirror operations over the X axis while editing."); - prop= RNA_def_property(srna, "add_interpolate", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", PE_INTERPOLATE_ADDED); RNA_def_property_ui_text(prop, "Interpolate", "Interpolate new particles from the existing ones."); -- cgit v1.2.3